Done challenge 4
[cipher-tools.git] / SIGNED.md
index 3a869e9c062d39ca48e656e59538a2d62a3153c9..9e2c50b4f89215f708dc5ca9de30dac8fe511f01 100644 (file)
--- a/SIGNED.md
+++ b/SIGNED.md
@@ -3,19 +3,19 @@
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
-iQIcBAABCAAGBQJWTz/TAAoJEJPB2e07PgbqmWUP/3Hps+dixX3O6YHcemin0oHv
-q3DFujbaFJK+qHh6ofKMYk/vItdFE5mLXgpoSfCtn9aPyt9A8JuYnsxdpjs3Y6L5
-r+f38QUuMNa9xtqff05My4TSIjWq5XX6pM8sQE2u1t7TZEz1DVDghxb+aaFhbHK1
-fG9GvuOCo/7p+3nXAhg+JIoczYlZkN5huduAA/1w1g87rPCPQKovcQ/d17ZspqU0
-WyClNyAUiFg7sbYp+CqQqhQyYCKOe0fw9JU1Kyh23YeKMqsgS5DOu5ZW7Kl+Bcrl
-qQttbt0TInHhcPMzYTYCr1ylR0uCbCkTXyEfDTjcbd9VKcILIFWLGclkew25AKRr
-wmdbjfvmMpiwE5yqGh5tBpLVNZLJzQ1YoZuilNJnqQTtNN0qSB5SBKXHf+BA01tE
-Ryz1SW7K0ocgyKUf5hcZv+qAfX0EfyrxDnnxgIn80Pwua42m4cYQKqNLUywPdtkE
-wx9UnYirc9WnNW/ctma2b5Y0ANu4YxLMF1l9abjzzLhDXhxHdv6/2wSSPstyKOD1
-iZWHMeVQ4ntq3+S5W/TL2dKBgbDl4QUXs81aGNMQE72p1uoThFPiWWXuEwUVr+H3
-/c+2sIyGTixBKgGdP4k7TxXlhGSeL/rz61TLuziLQEDfYJrvuHKX6kW/CtkpPmIP
-mO/ClCMdn+yaHmn+t07o
-=xfaA
+iQIcBAABCAAGBQJWknovAAoJEJPB2e07Pgbqd8YQALEujIWisxG31Hy25uWt9dpL
+Fp1HeRaqTPe4bEZHVwrMLsKsqRpQWjoCLbSrtssuAVd1UD+IHCMT5pW39hnSASsf
+euNQW9MUrDP9CydAkNMfXEWG9Jp3fAUtm7SIiQc7D7n+/r8vrW5aa0uRCG9H56tn
+LeRLGLbkEA1dPOW08ehd772k/jMIf2Z7jEIhVoBm2tSE+1GpvvDXdbVm8iB1Yv3r
+7fCTQKTtsGqxtbhzcOABRIHze7m+U72nULK2Q24e165MNBPXPBu93J+JBphOPz4u
+apwq463oRAXA0LcjX1iU7t5rHJxngUV8VoXIWhqplaPoekmEGpH6zePYxLnpUrfT
++R/JxeGpPFEHcpHN7oUmNmeD1Xgir+7tKCy5mfI+ltTiw1ftaUthX8MImughMDGx
+KkMRkntleeAe5nIrk9NlaBEFVyah62CEE6F5h/EoZJS9UsiXF7HBpPdbtfar4glE
+t1iYNRg5zuEJEVN7j1ktmwrMtw/QufMCTinUqWhjNKlA+orRvgXgSAywpWNS9BBc
+n2Kf8HgtjeCkF9IjqfbB1yRlIwwnVN1Zfn2UsFs2/5lH6YXCSjdD7iMJLTTOgbBY
+mkHajKR3rR4uizA/jJ24MmqC+78/dldGQ1BwwYXOiTnpQEzZ52NpiTMAsmlXxt85
+5sbthAzP9pIV+/svQYEm
+=R1hh
 -----END PGP SIGNATURE-----
 
 ```
@@ -27,143 +27,156 @@ mO/ClCMdn+yaHmn+t07o
 #### Expect
 
 ```
-size     exec  file                                                                       contents                                                                                                                         
-               ./                                                                                                                                                                                                          
-60               .directory                                                               0e83b2cb4dc042236e38c6f8b2575dd0e30b70d4d396795008d5fb3facea2872                                                                 
-384              .gitignore                                                               a93de2ae5c2a47a38599751d1f914566569dfa09dd1778e207117db6c71421dd                                                                 
-                 2012/                                                                                                                                                                                                     
-1678               1a.ciphertext                                                          c7c16198650e7d91577683acca664a0e588ac5474046a028dea3d9dc4b388df8                                                                 
-1678               1a.plaintext                                                           1b34de5b1d1422a3089c54d751dfd3938449c98526137a0b8b3b6561a700f9b5                                                                 
-3312               1b.ciphertext                                                          ec263c5cb415f99924e5744846c618b2566a072ac79f6b3cfdde294b99c491fd                                                                 
-3323               1b.plaintext                                                           a7fde879259e64fccca52618a9c008f2111e485ed1c6bfad863c90d8e6ceacae                                                                 
-1716               2a.ciphertext                                                          2203112c5b43e09b61d8e2918554831559efc7a1157aafda85c25d5ae67f2f0f                                                                 
-1716               2a.plaintext                                                           28afae88a3b3f0e553f326be7efb896587cb4ac43b9fd664d2cc3f9b2489de35                                                                 
-2268               2b.ciphertext                                                          587ba7bb4c39d6bd23cbefdcef63d1211d81f6340d401027f9b8e97c97a71b6c                                                                 
-2268               2b.plaintext                                                           4ee16e37ec82a6ea5446c3d03689bcf608d7408cf79542accaabc297fe6d9f97                                                                 
-1549               3a.ciphertext                                                          fcfff1c90fb5e0cb4240b0617cd7a0bfb1f81ee513a572b44562a0e9db9b4a1b                                                                 
-1549               3a.plaintext                                                           54c6b1ec3364c34a824ee693c00fa41c466f4bfccad281c4111ce1966232c9f4                                                                 
-2009               3b.ciphertext                                                          4a568ac5e67430cd30a2bfd73214a7b3984b3117be16f649ea99c40d3de551c3                                                                 
-2118               3b.plaintext                                                           a2b398c99fe1f00d3e7c558c5a9ea9d6739120d63e84b17f19d8f524ae9adf26                                                                 
-1495               4a.ciphertext                                                          4cbf7aa5d463087f40c3ca724a3860f38b8cad1fc281374eb4567df004d3b5ca                                                                 
-1559               4a.plaintext                                                           b1c02b4ed9df29fcefb046aec75a7702f6e6c1cd28bd56cc67bec1f4ae2af4fb                                                                 
-2137               4b.ciphertext                                                          829ef4812a023567b9652c57f92da6f48c0b854694eac1a7c9452645723e15db                                                                 
-2212               4b.plaintext                                                           d811c945afab0212c346531fd557c0f1d9a3fb0207835152a1426deda9e0b2a1                                                                 
-1449               5a.ciphertext                                                          9fb9fbe92a26b3d1b2f54909e732a0d1afde90f97483affcfa9bbacb4edf3d77                                                                 
-1524               5a.plaintext                                                           203ea3702e17269cbed804f019dd887ae7fc27b2585f1551fc758692e5ba14dd                                                                 
-2561               5b.ciphertext                                                          c0bc2532c853e723fb7c3529c60ca859b7d61af238a98ddaabe0c01423e2a3ab                                                                 
-2618               5b.plaintext                                                           61431a5bfd9a0e1e21e8ac7ba764ba46cc4b2a3e7adf22fff13153fdc278a451                                                                 
-1225               6a.ciphertext                                                          d22c65b2445ab1228c8351239c37310188d4ec9e173825da43f79509d957aada                                                                 
-1285               6a.plaintext                                                           27e574c224ad11d7b6258ef6212e8961decac5af3e93c9b08b0919c82c376f98                                                                 
-1478               6b.ciphertext                                                          e80fc065648e8a4207a7d698cd0f39722d69df819fdf756a7d30e2886670542c                                                                 
-1544               6b.plaintext                                                           424fc647b26f1ef153ec73eda2745896813bc1c6b498a5a0b0b05ff931ec5bf6                                                                 
-1331               7a.ciphertext                                                          d73fe6633bafb097a283396bb5a9b8a5f025031453d1df14156f9c41e898fac3                                                                 
-1412               7a.plaintext                                                           e13149a6f2df3d7d466f761d58c4a8ca3a82fbbc4f6dca983e83442e5caa748f                                                                 
-2551               7b.ciphertext                                                          15200bf858dede4f6cabffaac54c14d37171cd4f7641a059258cd44b6cb98e7d                                                                 
-2661               7b.plaintext                                                           430d167225a8f8c98d6e3f69aaca5846ba7d112567b987f3481832b07b03fc05                                                                 
-1125               8a.ciphertext                                                          5c47ee5314dc118b515b2ab8dc5ed14c492294e70a67f9329ed10d3486fd9ba6                                                                 
-1195               8a.plaintext                                                           a1deee4fa908fb536035435eb066d5c1fed91f962cfd0390f5c51fbb60caceb7                                                                 
-1783               8b.ciphertext                                                          c782e2765c9e3cb0ec72cc77f063ad7f90f2a003d5078b452c24ce3a4549f696                                                                 
-1783               8b.plaintext                                                           925b270f35dce522f0447085f78795a6f8101013648c836b029f0535f4d752e6                                                                 
-                 2013/                                                                                                                                                                                                     
-1340               1a.ciphertext                                                          6b69f06bd684fdaa79ff35497715af6ded3c176277859d1d774bb2569dd53a97                                                                 
-1340               1a.plaintext                                                           cbdaac33a7943a752ba5dd21cf7af23bdbdd22e4a5feb0bccecce45d605d0581                                                                 
-1495               1b.ciphertext                                                          2e0389e2c7d3156892f7d361ee79f86eb79d34812fca37d8ce692cb6f3976446                                                                 
-1495               1b.plaintext                                                           717b1f8955515a5d5d2f049f0ffe137820d71f8b2a1689e1a29ec30ed7c9d473                                                                 
-1135               2a.ciphertext                                                          85ad3dac4751a8db90f391d0f06935a5ef2118d9ac72e05fe0518d7f77bff058                                                                 
-1135               2a.plaintext                                                           11cdf7c462c536085daced417023adaeff2f6b7a6162ccd12b340b079bd36b48                                                                 
-926                2b.ciphertext                                                          0fc59b28e4cd2db0aa9f28a603e2b25988a6688f05f90a59b205088093721340                                                                 
-973                2b.plaintext                                                           019c012f87531e2f9173acae952e7d4a304ed1a62ef341e71455a128d3e7056f                                                                 
-983                3a.ciphertext                                                          20ab3ad9342e51d82243a678eaf2bc9187553bcedb50c830541a54f34dc9b3dd                                                                 
-1090               3b.ciphertext                                                          c35efccfb68ce3eaa5e7c699ed36a09f23aa719125e4df9f2faef11da1cd5d8a                                                                 
-1134               4a.ciphertext                                                          523d35a8b412bf2e2a88b160529cae76c512d08f2a589ba53b2ac3c4d4184858                                                                 
-1061               4b.ciphertext                                                          2cdebce220d9d20ef4c85f208999f81940383a9181bbb0e63b37b7031edcb688                                                                 
-875                5a.ciphertext                                                          b841414d1fbf8af991df389b1b9466d0401c39074f7433dcf3e90648b4d9ab5f                                                                 
-957                5b.ciphertext                                                          5b6303144fde83cdcdb74976da515933444b7c29efd8ad15d33e65edd2ef78fb                                                                 
-712                6a.ciphertext                                                          1313d5ffe4e6d2ee82b4f4bbffbe522d5e073775baa53a11bec10c2a693bc7da                                                                 
-1888               6b.ciphertext                                                          137618d9d92a8a28b7b7fff9a385c4c2db76dff10e0d326895cb0723a63a6adc                                                                 
-2132               7a.ciphertext                                                          d604c136b793701d7501c72821d4069975ce098c2da55fac29331f0045c62b5f                                                                 
-1565               7b.ciphertext                                                          adeef9d9e985c534c40acee5c6734d04195895a32efd9452a89cafef1fdc91b8                                                                 
-182                mona-lisa-words.txt                                                    d7d05c9c86f6282fa66df5f4ca795c89f01cef88a9ce8c921ce4484b3d6078a7                                                                 
-1190               solutions.txt                                                          bd14d8cb1b6694ee4b07d7f38f4df7931e89c10247f101878b6056647bf67cee                                                                 
-135303           2013-challenge6.ipynb                                                    5b37a8b10db4c8d9831827a2acdffdcdb65369557d15b3e08a900ee8e088da73                                                                 
-31542            2013-challenge7.ipynb                                                    6de8c15b9cca8b166be4ab86df94898544803e7ed46f8042e363414bed1d2dcc                                                                 
-                 2014/                                                                                                                                                                                                     
-735                1a.ciphertext                                                          3adb9e2747c6e3b4033c8042a6dcccb7c2e45988d64c5c78ec0a2c472dc88f95                                                                 
-610                1b.ciphertext                                                          bc11485a47af830fa0ded0b07feebf042c0a6956dc71daa60b525067e96c220a                                                                 
-767                2a.ciphertext                                                          3881a4f1fc0fadc064bc27d3052800b5eb497e833b208c2cee381b466c9b1db8                                                                 
-398                2b.ciphertext                                                          78faf9d7a0aad25a9fa72f886c398bc0b684a389bc5624ab4514e93685157a93                                                                 
-958                3a.ciphertext                                                          0d0524b194961bdbe6fe200cfe983a9338abcca5adabb6776769387967a50711                                                                 
-658                3b.ciphertext                                                          f75662b32e941df727ef411f522ad348016b82e40f957fd6f51eb1b972c7456d                                                                 
-784                4a.ciphertext                                                          44ae2388243a1782045b0d105612696bf3505517aa7a64f84c7b890e311aa54b                                                                 
-798                4b.ciphertext                                                          d3c54580f2008f81f3a9d2bbc46ef861da192a5c9828ff79807a02dc20b5f3cb                                                                 
-1191               5a.ciphertext                                                          e2bb31d68c7d3359c28f28dabe31ca679f8128903fd91fddc0eceb49483ef169                                                                 
-994                5b.ciphertext                                                          b8087115c18209060ba9e0ce1032a9593fdeabbb55a86507c634b64c62a7c290                                                                 
-1168               6a.ciphertext                                                          b7718e6b9e2ee029f7987178f702aad2e829d5f96d17a0e48b4365de4f5f1f6b                                                                 
-634                6b.ciphertext                                                          6049395e22af4f76540970c90faf301cf2999cefbc008a651ab36fe413e8aedc                                                                 
-1650               7a.ciphertext                                                          8a856dc907c04dea27d7d12f530c1c3e11dff6b51fb593bea10a8d68e0240cf6                                                                 
-988                7b.ciphertext                                                          cfb66667a8011226be0be7c98e9deb7efa02e9a53cad67743baf166c20136ada                                                                 
-1391               8a.ciphertext                                                          ac2b18d13ef44be0fb233d2455c51897b4df59491bbdd23ef82fbd9490bc86b1                                                                 
-7001               8b.ciphertext                                                          8d7e366e8fbb5766717481eeec77b089d3e8f9e708ac198d56176cb0882a9472                                                                 
-3882             2014-challenge1.ipynb                                                    07715f100d97af32ad5a13b56ade2f5753e17e32404e2eda0dcb9634736298f5                                                                 
-28071            2014-challenge2.ipynb                                                    1535404ae5a412160c82d19e38f7069a2eaca600bd433e77877bd13e14929e6b                                                                 
-29190            2014-challenge3.ipynb                                                    1454c5e5014eac93c42e88611f3f6b3f014bf70a8e9d8e87ef4725f8d12a27b7                                                                 
-32758            2014-challenge4.ipynb                                                    1794b0b2c6fd4630f6d9ffe15ffdad52d04af23082eddc920ec02ba4740032e4                                                                 
-23322            2014-challenge5.ipynb                                                    fb3bb531c62ed943528715cc19e800293e3cd4a176ce3a3fe01e7e585386907e                                                                 
-40307            2014-challenge6.ipynb                                                    5085a4ae2a562c87983cbff817ac89826973341551980563ae0c77ab747a5dff                                                                 
-44472            2014-challenge7.ipynb                                                    9800d39c881f22f67f1182f6ca73bbf40a123d0deb598a6009f545f421955241                                                                 
-188080           2014-challenge8.ipynb                                                    c59bcfbb39e48e6e151cc0c86fe48add67844954cf3c65d560bbda0c972a8376                                                                 
-                 2015/                                                                                                                                                                                                     
-874                1a.ciphertext                                                          5d0d71f24522e1c05127feb601bf8dc82566f3d2795fb51c4a60e22d900bb5eb                                                                 
-394                1b.ciphertext                                                          a35e8265aea45ab5f7c5eb141e5e65c85ecc24c7d87f3e8197dfe6795a7d3226                                                                 
-1193               2a.ciphertext                                                          412db1381dcb01f858bf848e48ada16aa4603cbb348c1f092ae39b06d2efa5f9                                                                 
-544                2b.ciphertext                                                          5ff59d7cff1c4d27dee6414769bdbcfb0b0ab9c5931e772bf9f6442eeb9b6855                                                                 
-898                3a.ciphertext                                                          5a9f89002db8520dbad882565a0130d3a462ed967e9cebeca828e9f727a267c4                                                                 
-549                3b.ciphertext                                                          efe393ad39849468a04bec4a49d259074fa60c54aa3eac832af5f858fcd06bcd                                                                 
-917                4a.ciphertext                                                          9c30e8793c161f3f0e1ef0aeb39c854166f9e8e84c149541c9d71d07ff3d37bd                                                                 
-1032               4b.ciphertext                                                          e99143388a6eacb81442ef594bdb0820992eaf89f3a0def9250b4b60ce7ef04b                                                                 
-1576               5a.ciphertext                                                          73011f47f1412903e23a718da397ed3ba3a0306e72299d5abf401d93fc451205                                                                 
-840                5b.ciphertext                                                          69f3e64a2fa925a84f1f0b09b30bf901564436519f1c8b515121219fcd544638                                                                 
-3620             2015-challenge1.ipynb                                                    2ab544f48c22a3a2e665b03ae094ac2de04aee8bdb37366209276a937d248d6a                                                                 
-4092             2015-challenge2.ipynb                                                    58c2aeca6c73a8fef71d0cc8321469358803f392c02fd44631dd0b25c2755f4a                                                                 
-3987             2015-challenge3.ipynb                                                    dfec26ba881c7ad0af54d072aeba4d08162661e863266936963130548ff86b65                                                                 
-8030             2015-challenge4.ipynb                                                    f77ead0eae7fcd67039d500a31ad1748a4df115905adecd0e93e56f72bbdcfa0                                                                 
-5039             2015-challenge5.ipynb                                                    b0c28829c329d7a2752f4991006e6d78a10415d7609b893b80b3bdb788d6e533                                                                 
-18025            LICENSE                                                                  a01259a1b522cf0de95824f9860613b453153eebac468e96196d5d7dba84786c                                                                 
-7999             LJ!-Qt!-Fghxft-dferts%3B-hsjeukaxxn-sfedw.ipynb                          429b6c6995096ff19c28a5ee342bef8ea4774200bdf9aaf6268de3cb8b28df28                                                                 
-429647           Programming+for+A+level+Computing+through+automated+cipher+breaking.pdf  2f4008ad7217d7902c99bbfc7394c9b9128a3073f4c5d096ef4653d753358b9d|6c1eb93f74c8e3fd5a180e80ce7b315cb642a9f5f66805a4398f6b793dd9b852
-61               README.md                                                                277247b410300ee16477b12ca54ad878d81c8061f6134e2e1cadccaf299de3a3                                                                 
-469              affine_break_parameter_trials.csv                                        1a9d635d0af2f41fc6f1e83ae87d6372034259321ba288a11fb024e98ed52f4f|dd9c840434de596a30c84e79de26a9824b36c217a84876c2aab0579b76999735
-6488666          big.txt                                                                  fa066c7d40f0f201ac4144e652aa62430e58a6b3805ec70650f678da5804e87b                                                                 
-16832            cadenus-ciphers.ipynb                                                    50e49b3ec5e6440b86fe13472b9f4ab9e133e5665c7280b2abf7a6b57bb8a89a                                                                 
-514              caesar_break_parameter_trials.csv                                        6586223bcc00e06e3ff79d107202d6c29ef962a6dd544add00610c5907407e85|1cb7cc77831ef3ef4f994a9ea77e82a841b38acdde45ede9cedbe7a54f1e8e46
-41380            cipher.py                                                                39536843924325b9acdc6aad387c55240fc12a9c23caeaee6ef67e0d7b94e95c                                                                 
-28349            cipherbreak.py                                                           2a4cdf810302d5645064e460a4409f32173b02fc4e7c7ce0a84d1458a04007bc                                                                 
-11564            count_1edit.txt                                                          3bf563ef032ba151ec1a4b2d1f33f50c49f4a47e4dc5b8152394bc5b63f57655|b5fbacbebcc25f5011ce97bc9ac967a09c50eef28b4aa98379a6c426df6ac08b
-223              count_1l.txt                                                             335388d457db6ef1da05d8b55ab879e9be7d4e021085efc8d9dfeac0e4a79aa9                                                                 
-4956241          count_1w.txt                                                             51df159fd3de12b20e403c108f526e96dbd723d9cabdd5f17955cdc16059e690                                                                 
-9270             count_2l.txt                                                             bc2895f800189070c193907cd8bca956ad65fed2e25c14300d4bb5b6a243ba99                                                                 
-5566017          count_2w.txt                                                             781c0596c3eea532d30bef9f3dba1d5137d652f00376260822c761a7584dfb8c                                                                 
-220441           count_3l.txt                                                             8702c95530c7d0d182ab94dc03ed7681fcf969819f6db011a58de31411dc6365                                                                 
-320508           count_big.txt                                                            3ba257fba1934bd138413d8274e79b56c5992431a27692fd562929aa43ec01a3                                                                 
-3355             find_best_affine_break_parameters.py                                     6b11004bb93ac26ec7d42d33504e758edbaf9d55365ae2e4ca2fca7589263f25                                                                 
-3027             find_best_caesar_break_parameters.py                                     0347d80309179d937a88fd1c8684490a513ccd086366c5a0dd55b8a2fe5c565f                                                                 
-1236             find_wikipedia_titles.py                                                 f040bf855dfec7fff9d8e5eba2fb509179bc53bc02a20b26b7fc61fef983aa45                                                                 
-37128            hill-ciphers.ipynb                                                       ce802c2be807b4565858b568d3a82c65a3957aa625344189f8f2a055237b3fdd                                                                 
-5516             language_models.py                                                       9f6c60892b385a8443202edda95074eb28e2b66981e25e27f4153b887e2c9ee3                                                                 
-368              lettercount.py                                                           ed36497d62cf75b91994055e4a18848b2fabe5ce793cd76a77fabfc94d81d4f3                                                                 
-592              make-cracking-dictionary.py                                              71791e64e4853cd9ca292cb436bbe8c72dd60f509811174df93ed2067683d5c1                                                                 
-7077             norms.py                                                                 a657a36c1741e6f3a513386b318fcc99e6b11f98ec64a48284b47462ff2acf30                                                                 
-8411             norms.pyc                                                                ac7a18765c7bcc27e406d8f38d943408097b3384a271502185d53482e6ec0da7|002b186e716cec64869a00bd2d72e16614931e696daa0cf3529d634a0f270e42
-112847           plot-caesar-parameters.ipynb                                             639459b4b2e434f9f0852c012ed9a8a8d87bd1cb6c2d65ca5abfdb0e42c3dea6                                                                 
-23863            railfence-experiment-1.ipynb                                             e34a61cef19b3249a3d6d731fe054769c02233b0be661161ebf45bada3b7b97b                                                                 
-18628            railfence-experiment-2.ipynb                                             8c4d90c1c934b764deba0956bb4be81868e463789dc8fe02e5621ab3a95c0889                                                                 
-881              segment.py                                                               94d257cc6151861ef3d3033c4d2d03d8c121b0a982344abf400f65fd507fed28                                                                 
-4538523          shakespeare.txt                                                          6f9c770efced5c3d87efa6197cd3091b982341372e36c6357f865df91ddecde6                                                                 
-451530           spell-errors.txt                                                         a4abe6ce6c24280f9a8d0485cbf78ddd2e58279ca01293692630a08ba4b13407                                                                 
-69351            unknown-word-probability-investigation.ipynb                             8a9cd7163f10bf2bfb3e286445eddcfc953f80abfdef4e29dac27617a53c3d41                                                                 
-3291641          war-and-peace.txt                                                        3ed0f41cfdf660846878943bad5b9d575bcae1e4a92ee9a7f43d3c9dba2af344|6799e48d3fd0a6f4c40b9951ec86de6da81f0b9cd36e413490ac511542ca54d3
-868202           words.txt                                                                aa77abbcba3c6dee1306d93adcedc2b2ccb8a4e0344a39d0676732ff58ebd5e5                                                                 
-868384           words_2013.txt                                                           57faa4841fe28dd82a5da4488b6381c194df6e1ecc04e61fb9f60e842bbca18c                                                                 
+size     exec  file                                               contents                                                                                                                         
+               ./                                                                                                                                                                                  
+60               .directory                                       0e83b2cb4dc042236e38c6f8b2575dd0e30b70d4d396795008d5fb3facea2872                                                                 
+384              .gitignore                                       a93de2ae5c2a47a38599751d1f914566569dfa09dd1778e207117db6c71421dd                                                                 
+                 2012/                                                                                                                                                                             
+1678               1a.ciphertext                                  c7c16198650e7d91577683acca664a0e588ac5474046a028dea3d9dc4b388df8                                                                 
+1678               1a.plaintext                                   1b34de5b1d1422a3089c54d751dfd3938449c98526137a0b8b3b6561a700f9b5                                                                 
+3312               1b.ciphertext                                  ec263c5cb415f99924e5744846c618b2566a072ac79f6b3cfdde294b99c491fd                                                                 
+3323               1b.plaintext                                   a7fde879259e64fccca52618a9c008f2111e485ed1c6bfad863c90d8e6ceacae                                                                 
+1716               2a.ciphertext                                  2203112c5b43e09b61d8e2918554831559efc7a1157aafda85c25d5ae67f2f0f                                                                 
+1716               2a.plaintext                                   28afae88a3b3f0e553f326be7efb896587cb4ac43b9fd664d2cc3f9b2489de35                                                                 
+2268               2b.ciphertext                                  587ba7bb4c39d6bd23cbefdcef63d1211d81f6340d401027f9b8e97c97a71b6c                                                                 
+2268               2b.plaintext                                   4ee16e37ec82a6ea5446c3d03689bcf608d7408cf79542accaabc297fe6d9f97                                                                 
+1549               3a.ciphertext                                  fcfff1c90fb5e0cb4240b0617cd7a0bfb1f81ee513a572b44562a0e9db9b4a1b                                                                 
+1549               3a.plaintext                                   54c6b1ec3364c34a824ee693c00fa41c466f4bfccad281c4111ce1966232c9f4                                                                 
+2009               3b.ciphertext                                  4a568ac5e67430cd30a2bfd73214a7b3984b3117be16f649ea99c40d3de551c3                                                                 
+2118               3b.plaintext                                   a2b398c99fe1f00d3e7c558c5a9ea9d6739120d63e84b17f19d8f524ae9adf26                                                                 
+1495               4a.ciphertext                                  4cbf7aa5d463087f40c3ca724a3860f38b8cad1fc281374eb4567df004d3b5ca                                                                 
+1559               4a.plaintext                                   b1c02b4ed9df29fcefb046aec75a7702f6e6c1cd28bd56cc67bec1f4ae2af4fb                                                                 
+2137               4b.ciphertext                                  829ef4812a023567b9652c57f92da6f48c0b854694eac1a7c9452645723e15db                                                                 
+2212               4b.plaintext                                   d811c945afab0212c346531fd557c0f1d9a3fb0207835152a1426deda9e0b2a1                                                                 
+1449               5a.ciphertext                                  9fb9fbe92a26b3d1b2f54909e732a0d1afde90f97483affcfa9bbacb4edf3d77                                                                 
+1524               5a.plaintext                                   203ea3702e17269cbed804f019dd887ae7fc27b2585f1551fc758692e5ba14dd                                                                 
+2561               5b.ciphertext                                  c0bc2532c853e723fb7c3529c60ca859b7d61af238a98ddaabe0c01423e2a3ab                                                                 
+2618               5b.plaintext                                   61431a5bfd9a0e1e21e8ac7ba764ba46cc4b2a3e7adf22fff13153fdc278a451                                                                 
+1225               6a.ciphertext                                  d22c65b2445ab1228c8351239c37310188d4ec9e173825da43f79509d957aada                                                                 
+1285               6a.plaintext                                   27e574c224ad11d7b6258ef6212e8961decac5af3e93c9b08b0919c82c376f98                                                                 
+1478               6b.ciphertext                                  e80fc065648e8a4207a7d698cd0f39722d69df819fdf756a7d30e2886670542c                                                                 
+1544               6b.plaintext                                   424fc647b26f1ef153ec73eda2745896813bc1c6b498a5a0b0b05ff931ec5bf6                                                                 
+1331               7a.ciphertext                                  d73fe6633bafb097a283396bb5a9b8a5f025031453d1df14156f9c41e898fac3                                                                 
+1412               7a.plaintext                                   e13149a6f2df3d7d466f761d58c4a8ca3a82fbbc4f6dca983e83442e5caa748f                                                                 
+2551               7b.ciphertext                                  15200bf858dede4f6cabffaac54c14d37171cd4f7641a059258cd44b6cb98e7d                                                                 
+2661               7b.plaintext                                   430d167225a8f8c98d6e3f69aaca5846ba7d112567b987f3481832b07b03fc05                                                                 
+1125               8a.ciphertext                                  5c47ee5314dc118b515b2ab8dc5ed14c492294e70a67f9329ed10d3486fd9ba6                                                                 
+1195               8a.plaintext                                   a1deee4fa908fb536035435eb066d5c1fed91f962cfd0390f5c51fbb60caceb7                                                                 
+1783               8b.ciphertext                                  c782e2765c9e3cb0ec72cc77f063ad7f90f2a003d5078b452c24ce3a4549f696                                                                 
+1783               8b.plaintext                                   925b270f35dce522f0447085f78795a6f8101013648c836b029f0535f4d752e6                                                                 
+                 2013/                                                                                                                                                                             
+1340               1a.ciphertext                                  6b69f06bd684fdaa79ff35497715af6ded3c176277859d1d774bb2569dd53a97                                                                 
+1340               1a.plaintext                                   cbdaac33a7943a752ba5dd21cf7af23bdbdd22e4a5feb0bccecce45d605d0581                                                                 
+1495               1b.ciphertext                                  2e0389e2c7d3156892f7d361ee79f86eb79d34812fca37d8ce692cb6f3976446                                                                 
+1495               1b.plaintext                                   717b1f8955515a5d5d2f049f0ffe137820d71f8b2a1689e1a29ec30ed7c9d473                                                                 
+121429             2013-challenge6.ipynb                          4169b040ef2d648af0c5678c22756ab31933f663ec7f38fb27a0af81c8c8d4b8                                                                 
+25749              2013-challenge7.ipynb                          a651b44828eeb79c82f63eb00ba0f8d5a3f406e104cb1a59601a61f0aee7432b                                                                 
+1135               2a.ciphertext                                  85ad3dac4751a8db90f391d0f06935a5ef2118d9ac72e05fe0518d7f77bff058                                                                 
+1135               2a.plaintext                                   11cdf7c462c536085daced417023adaeff2f6b7a6162ccd12b340b079bd36b48                                                                 
+926                2b.ciphertext                                  0fc59b28e4cd2db0aa9f28a603e2b25988a6688f05f90a59b205088093721340                                                                 
+973                2b.plaintext                                   019c012f87531e2f9173acae952e7d4a304ed1a62ef341e71455a128d3e7056f                                                                 
+983                3a.ciphertext                                  20ab3ad9342e51d82243a678eaf2bc9187553bcedb50c830541a54f34dc9b3dd                                                                 
+1090               3b.ciphertext                                  c35efccfb68ce3eaa5e7c699ed36a09f23aa719125e4df9f2faef11da1cd5d8a                                                                 
+1134               4a.ciphertext                                  523d35a8b412bf2e2a88b160529cae76c512d08f2a589ba53b2ac3c4d4184858                                                                 
+1061               4b.ciphertext                                  2cdebce220d9d20ef4c85f208999f81940383a9181bbb0e63b37b7031edcb688                                                                 
+875                5a.ciphertext                                  b841414d1fbf8af991df389b1b9466d0401c39074f7433dcf3e90648b4d9ab5f                                                                 
+957                5b.ciphertext                                  5b6303144fde83cdcdb74976da515933444b7c29efd8ad15d33e65edd2ef78fb                                                                 
+712                6a.ciphertext                                  1313d5ffe4e6d2ee82b4f4bbffbe522d5e073775baa53a11bec10c2a693bc7da                                                                 
+1888               6b.ciphertext                                  137618d9d92a8a28b7b7fff9a385c4c2db76dff10e0d326895cb0723a63a6adc                                                                 
+2132               7a.ciphertext                                  d604c136b793701d7501c72821d4069975ce098c2da55fac29331f0045c62b5f                                                                 
+1565               7b.ciphertext                                  adeef9d9e985c534c40acee5c6734d04195895a32efd9452a89cafef1fdc91b8                                                                 
+182                mona-lisa-words.txt                            d7d05c9c86f6282fa66df5f4ca795c89f01cef88a9ce8c921ce4484b3d6078a7                                                                 
+1190               solutions.txt                                  bd14d8cb1b6694ee4b07d7f38f4df7931e89c10247f101878b6056647bf67cee                                                                 
+                 2014/                                                                                                                                                                             
+735                1a.ciphertext                                  3adb9e2747c6e3b4033c8042a6dcccb7c2e45988d64c5c78ec0a2c472dc88f95                                                                 
+610                1b.ciphertext                                  bc11485a47af830fa0ded0b07feebf042c0a6956dc71daa60b525067e96c220a                                                                 
+4061               2014-challenge1.ipynb                          a1d569b4c7d6d359a9c131244276fbbb61c035e7ffbdb6e224beabf3190c73e5                                                                 
+23543              2014-challenge2.ipynb                          92c301162a49bdda75ec939f77c015a025626bc728365d296187d764a89ef1bc                                                                 
+24088              2014-challenge3.ipynb                          e0db661b881ee1bc3d51e0edfa958b709677dace6eef7125ae9e034e131ca6c8                                                                 
+28626              2014-challenge4.ipynb                          11db485e9db34673b920635fbeeec85eeb85f776aabc687ebbd114a87039f38d                                                                 
+21102              2014-challenge5.ipynb                          085151062fb8b3d7f8d6d7cff5b73ec3053b5d22383301f416a2a29e6b5ab53e                                                                 
+34054              2014-challenge6.ipynb                          0e6f30c7296fe16b107ee5df2676e988c8b450b1cbf0e7347bf6e2ac9191f068                                                                 
+38294              2014-challenge7.ipynb                          176ead363cc1970d243ea2e7f7ba49eadc617058ad5144044ce4c8c0e9375c16                                                                 
+187296             2014-challenge8.ipynb                          11fb5200127f954536176cc3b3e4258ee3005fbe0c19e0138e6b9d18c290a71f                                                                 
+767                2a.ciphertext                                  3881a4f1fc0fadc064bc27d3052800b5eb497e833b208c2cee381b466c9b1db8                                                                 
+398                2b.ciphertext                                  78faf9d7a0aad25a9fa72f886c398bc0b684a389bc5624ab4514e93685157a93                                                                 
+958                3a.ciphertext                                  0d0524b194961bdbe6fe200cfe983a9338abcca5adabb6776769387967a50711                                                                 
+658                3b.ciphertext                                  f75662b32e941df727ef411f522ad348016b82e40f957fd6f51eb1b972c7456d                                                                 
+784                4a.ciphertext                                  44ae2388243a1782045b0d105612696bf3505517aa7a64f84c7b890e311aa54b                                                                 
+798                4b.ciphertext                                  d3c54580f2008f81f3a9d2bbc46ef861da192a5c9828ff79807a02dc20b5f3cb                                                                 
+1191               5a.ciphertext                                  e2bb31d68c7d3359c28f28dabe31ca679f8128903fd91fddc0eceb49483ef169                                                                 
+994                5b.ciphertext                                  b8087115c18209060ba9e0ce1032a9593fdeabbb55a86507c634b64c62a7c290                                                                 
+1168               6a.ciphertext                                  b7718e6b9e2ee029f7987178f702aad2e829d5f96d17a0e48b4365de4f5f1f6b                                                                 
+634                6b.ciphertext                                  6049395e22af4f76540970c90faf301cf2999cefbc008a651ab36fe413e8aedc                                                                 
+1650               7a.ciphertext                                  8a856dc907c04dea27d7d12f530c1c3e11dff6b51fb593bea10a8d68e0240cf6                                                                 
+988                7b.ciphertext                                  cfb66667a8011226be0be7c98e9deb7efa02e9a53cad67743baf166c20136ada                                                                 
+1391               8a.ciphertext                                  ac2b18d13ef44be0fb233d2455c51897b4df59491bbdd23ef82fbd9490bc86b1                                                                 
+7001               8b.ciphertext                                  8d7e366e8fbb5766717481eeec77b089d3e8f9e708ac198d56176cb0882a9472                                                                 
+                 2015/                                                                                                                                                                             
+874                1a.ciphertext                                  5d0d71f24522e1c05127feb601bf8dc82566f3d2795fb51c4a60e22d900bb5eb                                                                 
+394                1b.ciphertext                                  a35e8265aea45ab5f7c5eb141e5e65c85ecc24c7d87f3e8197dfe6795a7d3226                                                                 
+3835               2015-challenge1.ipynb                          4c9d020904f448c1a8c6443d5a8d6da48d615ce61508e67670ce01ac1c4c5b2e                                                                 
+4307               2015-challenge2.ipynb                          702cb83d7b0c52b2ddf360d475e5e1acaaee0419c4a82c17e32a009ce559e352                                                                 
+4199               2015-challenge3.ipynb                          7116fb88f407edd43695d00229479ba5413368a5cb3c2bfb083d7e47f732ff05                                                                 
+32985              2015-challenge4.ipynb                          7c8a2e5d7a2e210431ae273a2a298daea2cb58b71cdb549f0e87a7754990680e                                                                 
+5251               2015-challenge5.ipynb                          20037e3678a1290aaacdec2b4baeba315385bc2ff233a84272e6424ebdeecd23                                                                 
+14285              2015-challenge6.ipynb                          0cd2bbd2f67683f696275cd6041d26a54d7cc43971ca0bef8daf91d5b61a80de                                                                 
+76477              2015-challenge7.ipynb                          de19305ec9c87c0c7d7db34cdf54f8dc67bca1330b15876835c4208167d662ed                                                                 
+3953               2015-challenge8.ipynb                          6959c7a98353bda0028003491d2e558670f61ff5b0714756c8e18db93398c1be                                                                 
+1193               2a.ciphertext                                  412db1381dcb01f858bf848e48ada16aa4603cbb348c1f092ae39b06d2efa5f9                                                                 
+544                2b.ciphertext                                  5ff59d7cff1c4d27dee6414769bdbcfb0b0ab9c5931e772bf9f6442eeb9b6855                                                                 
+898                3a.ciphertext                                  5a9f89002db8520dbad882565a0130d3a462ed967e9cebeca828e9f727a267c4                                                                 
+549                3b.ciphertext                                  efe393ad39849468a04bec4a49d259074fa60c54aa3eac832af5f858fcd06bcd                                                                 
+917                4a.ciphertext                                  9c30e8793c161f3f0e1ef0aeb39c854166f9e8e84c149541c9d71d07ff3d37bd                                                                 
+1032               4b.ciphertext                                  e99143388a6eacb81442ef594bdb0820992eaf89f3a0def9250b4b60ce7ef04b                                                                 
+1576               5a.ciphertext                                  73011f47f1412903e23a718da397ed3ba3a0306e72299d5abf401d93fc451205                                                                 
+840                5b.ciphertext                                  69f3e64a2fa925a84f1f0b09b30bf901564436519f1c8b515121219fcd544638                                                                 
+2114               6a.ciphertext                                  64834f6db2055a3c1944d0c22e635fc411cb210ca71a7d737008f42de4febab9                                                                 
+867                6b.ciphertext                                  abc25188099a927323379ff6e3abad85312aca3cd01338848437c654f6ee5f72                                                                 
+1779               7a.ciphertext                                  e519e7120bc68dc433723b1408a5b50780ce15413dae6af3e6874e2b44993dfc                                                                 
+725                7b.ciphertext                                  9376b3432de0b238d17704cee5ebc029142018233339161c64b3f6ade9b7df04                                                                 
+1661               8a.ciphertext                                  e748aef744bd869ff60aa65993c0e0738af05e95b64a82c1047ae07ea2e353f5                                                                 
+1771               8b.ciphertext                                  669a7144433b0554e1de51583abb048ca396f2ffe6a79e53dad6e6ffbf06bc8c                                                                 
+7607               Solitaire.py                                   abb966d0aa4f23599204a1a75f3179903c175eac637c0847bcc772374f380126|9e3ee44bd5d7ec196b513afad0856ed4f2cd6bf3e0fe9b6bc0130bb7731d04c8
+63970              cards2.png                                     f2959fc211d97c9b16bf049eb5c9e99167b033f887c43f9ae20adb13717c7899|b42371c35b39715277627114132f8b261283b2b1d59e47b7066e06f4df5a4ad6
+5281               sol.py                                         dbea0e836eb158a26407ca3b74289d24fa7eae16ed1093eb7c598767a150fccc|e50319aa995f934a4cbd52bc28d8f49f376e62470170690cdbed7352f67a7942
+18025            LICENSE                                          a01259a1b522cf0de95824f9860613b453153eebac468e96196d5d7dba84786c                                                                 
+7999             LJ!-Qt!-Fghxft-dferts%3B-hsjeukaxxn-sfedw.ipynb  429b6c6995096ff19c28a5ee342bef8ea4774200bdf9aaf6268de3cb8b28df28                                                                 
+61               README.md                                        277247b410300ee16477b12ca54ad878d81c8061f6134e2e1cadccaf299de3a3                                                                 
+569              affine_break_parameter_trials.csv                6593e15e63e3e5632222fece8971ab473a7cdcf43020cd279e6f926cac0445fd|80705a44f33ed99ee08ed7d80e18945e84a2ae60afa1b39c331fa6bf58e21115
+6488666          big.txt                                          fa066c7d40f0f201ac4144e652aa62430e58a6b3805ec70650f678da5804e87b                                                                 
+16832            cadenus-ciphers.ipynb                            50e49b3ec5e6440b86fe13472b9f4ab9e133e5665c7280b2abf7a6b57bb8a89a                                                                 
+514              caesar_break_parameter_trials.csv                cafee5b7e752807f856090b527870fc3a189de325e41c09c2933fe7bf5efcbe5|54761ff222587ae788d3213505308b631a8a3f17793beb3fbf492bfdaba320c3
+318              cipher-training.sublime-project                  58e5d5b4e54fb29abecaef2d41266e3355adccb8b6a70bd595e509bd07c16587                                                                 
+42922            cipher.py                                        58637b8946b4fb973b19a374a2066a896d86c928dacaa1ccd2252e6f8bb6e810                                                                 
+28937            cipherbreak.py                                   5ba9424badfed9721f8f6f044e636b693105fbbdb03ad65907c10c25a26ac760                                                                 
+11564            count_1edit.txt                                  3bf563ef032ba151ec1a4b2d1f33f50c49f4a47e4dc5b8152394bc5b63f57655|b5fbacbebcc25f5011ce97bc9ac967a09c50eef28b4aa98379a6c426df6ac08b
+223              count_1l.txt                                     335388d457db6ef1da05d8b55ab879e9be7d4e021085efc8d9dfeac0e4a79aa9                                                                 
+4956241          count_1w.txt                                     51df159fd3de12b20e403c108f526e96dbd723d9cabdd5f17955cdc16059e690                                                                 
+9270             count_2l.txt                                     bc2895f800189070c193907cd8bca956ad65fed2e25c14300d4bb5b6a243ba99                                                                 
+5566017          count_2w.txt                                     781c0596c3eea532d30bef9f3dba1d5137d652f00376260822c761a7584dfb8c                                                                 
+220441           count_3l.txt                                     8702c95530c7d0d182ab94dc03ed7681fcf969819f6db011a58de31411dc6365                                                                 
+320508           count_big.txt                                    3ba257fba1934bd138413d8274e79b56c5992431a27692fd562929aa43ec01a3                                                                 
+3348             find_best_affine_break_parameters.py             b08fbccd56f7a3243cde14bd895e8ca417b89cd0faaced9a0e68ecb372ffcc14                                                                 
+3020             find_best_caesar_break_parameters.py             7119e2eea7c138e133b6f2df691af9e1128ff10d2b6ae16f32b0c0b35e488d76                                                                 
+1236             find_wikipedia_titles.py                         f040bf855dfec7fff9d8e5eba2fb509179bc53bc02a20b26b7fc61fef983aa45                                                                 
+37128            hill-ciphers.ipynb                               ce802c2be807b4565858b568d3a82c65a3957aa625344189f8f2a055237b3fdd                                                                 
+5645             language_models.py                               bfd5b60cdef8af20cdb061b24a1691f569984be3be333782c3d76e3370e16d14                                                                 
+368              lettercount.py                                   ed36497d62cf75b91994055e4a18848b2fabe5ce793cd76a77fabfc94d81d4f3                                                                 
+592              make-cracking-dictionary.py                      71791e64e4853cd9ca292cb436bbe8c72dd60f509811174df93ed2067683d5c1                                                                 
+7070             norms.py                                         c80289c5769e518ea40a7de85c869febab2e6d40c64a596bcd2a13ea2a9ece1a                                                                 
+8411             norms.pyc                                        ac7a18765c7bcc27e406d8f38d943408097b3384a271502185d53482e6ec0da7|002b186e716cec64869a00bd2d72e16614931e696daa0cf3529d634a0f270e42
+112847           plot-caesar-parameters.ipynb                     639459b4b2e434f9f0852c012ed9a8a8d87bd1cb6c2d65ca5abfdb0e42c3dea6                                                                 
+23863            railfence-experiment-1.ipynb                     e34a61cef19b3249a3d6d731fe054769c02233b0be661161ebf45bada3b7b97b                                                                 
+18628            railfence-experiment-2.ipynb                     8c4d90c1c934b764deba0956bb4be81868e463789dc8fe02e5621ab3a95c0889                                                                 
+881              segment.py                                       94d257cc6151861ef3d3033c4d2d03d8c121b0a982344abf400f65fd507fed28                                                                 
+4538523          shakespeare.txt                                  6f9c770efced5c3d87efa6197cd3091b982341372e36c6357f865df91ddecde6                                                                 
+592309           sherlock-holmes.txt                              0027de6f4110440ea51d67a2f3af3484898c630808f13b1d4db108e6283e67a3|2034ee1ebdec47e839607124d22b674d4614e1cc6209d758f7b6e99e69ae8e08
+451530           spell-errors.txt                                 a4abe6ce6c24280f9a8d0485cbf78ddd2e58279ca01293692630a08ba4b13407                                                                 
+69351            unknown-word-probability-investigation.ipynb     8a9cd7163f10bf2bfb3e286445eddcfc953f80abfdef4e29dac27617a53c3d41                                                                 
+3291641          war-and-peace.txt                                3ed0f41cfdf660846878943bad5b9d575bcae1e4a92ee9a7f43d3c9dba2af344|6799e48d3fd0a6f4c40b9951ec86de6da81f0b9cd36e413490ac511542ca54d3
+868202           words.txt                                        aa77abbcba3c6dee1306d93adcedc2b2ccb8a4e0344a39d0676732ff58ebd5e5                                                                 
+868384           words_2013.txt                                   57faa4841fe28dd82a5da4488b6381c194df6e1ecc04e61fb9f60e842bbca18c                                                                 
 ```
 
 #### Ignore