Done 2016 challenge 5
authorNeil Smith <neil.git@njae.me.uk>
Fri, 18 Nov 2016 17:45:07 +0000 (17:45 +0000)
committerNeil Smith <neil.git@njae.me.uk>
Fri, 18 Nov 2016 17:45:07 +0000 (17:45 +0000)
2016/2016-challenge5.ipynb [new file with mode: 0644]
2016/5a.ciphertext [new file with mode: 0644]
2016/5b.ciphertext [new file with mode: 0644]

diff --git a/2016/2016-challenge5.ipynb b/2016/2016-challenge5.ipynb
new file mode 100644 (file)
index 0000000..d3a69a7
--- /dev/null
@@ -0,0 +1,330 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "import os,sys,inspect\n",
+    "currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))\n",
+    "parentdir = os.path.dirname(currentdir)\n",
+    "sys.path.insert(0,parentdir) \n",
+    "\n",
+    "import matplotlib.pyplot as plt\n",
+    "%matplotlib inline\n",
+    "\n",
+    "from cipherbreak import *\n",
+    "\n",
+    "c5a = open('5a.ciphertext').read()\n",
+    "c5b = open('5b.ciphertext').read()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'SCFFP TJTGS CFRJZ XCVLG LYGLZ IJSLW CJLGJ XLGGC ELIFZ XXCFJ TYNSC JTGJS LJLXB HCYVT GTJCY LJNZF VZIBC FJJTX LGBTL GUCXL WTCTX BWTLR JSCJT JNCGS LFAZR TYEGV TWWGJ SCJRP YCXTO NLFLT YJLFL GJLRT YGZTH LECYJ ZNZYR LFTIU CXLWT CNCGN ZFVTY EZYCF LAFKT JXLYJ JZZWK GTYEG ZATCW XLRTC HKJJS CJGZK YRGCH TJZWR GASZZ WAZKW RGSLC YRXCF JTYSC MLHLL YRLML WZBTY ECGAF LLYTY ECWEZ FTJSX IZFCE LYJGJ FPTYE JZBTA VZKJJ SLXZG JFLWT CHWLZ YLGHP RCJCX TYTYE SZNNZ KWRJS CJSCM LITJJ LRNTJ SSLFF LCWLO BLFJT GLTYG TEYCW YZTGL CYCWP GTGGK FLWPJ SLRCJ CTGYJ JSCJY ZTGPT RTRSC MLGZX LWKAV NTJSH CAVEF ZKYRZ YJSLB RGGPY RTACJ LJSLP NLFLT YTJTC WWPGL JKBJZ RLCWN TJSCI KJKFL TYNST ASDKC YJKXJ FCYGX TGGTZ YXCVL GTJTX BZGGT HWLJZ AFCAV ATBSL FGKGT YERTE TJCWX LJSZR GBRGG JCYRG IZFBZ GJRTE TJCWG KFMLT WWCYA LCYRJ SLPNL FLCYC FXGWL YEJSA CHTYL JZIIT ALTYT JTCJT MLVLB JAZXB WLJLW PGLBC FCJLI FZXJS LZJSL FTYJL WWTEL YALCE LYATL GTJST YVJSL BWCYN CGJZJ CWRLY TCHTW TJPZY CWWGT RLGCY RTJNC GGJFK AJKFL RJZBF LMLYJ TYJLF CELYA PFTMC WFPJS LGPYR TACJL SCRBF TXLXT YTGJL FTCWG TEYZI IHKJC IJLFJ SCJJS LFLTG YZBCB LFJFC TWCYR JSLFL SCGHL LYYZY LNGZI CYPBF ZEFLG GTYGT RLFGJ STYVJ SLGPY RTACJ LNCGA WZGLR RZNYT YUCYK CFPCI JLFFK XZKFG ZIKYC KJSZF TGLRG KFMLT WWCYA LHKJE TMLYJ SCJHK WVAZW WLAJT ZYTYJ SLKVT GCKJS ZFTGL RTJTG SCFRJ ZTXCE TYLNS CJJSL PNLFL KBJZT VYZNJ SCJGL MLFCW ZIJSL BLZBW LNSZW CKYAS LRBRG WLIJJ SLATM TWGLF MTALT YILHF KCFPC YRJNZ YZNSC MLHZC FRBZG TJTZY GCJAT JCRLW WLJZJ SLHLG JZIXP VYZNW LRELY ZYLZI JSLGL YTZFG SCRRT FLAJA ZYJCA JNTJS UCXLW TCZFX CFJTY HKJTG KBBZG LTJTG BZGGT HWLJS CJATJ CRLWW LNCGU KGJJS LMLST AWLIZ FBRGJ ZVLLB CYLPL ZYJSL JNZZI JSLXT GJTWW RZYJV YZNNS PJSLP NLFLF LECFR LRCGG BLATC WJSZK ESXCP HLJFT YTJPS CGGZX LJSTY EIZFK GGSLG LYJJS LIZWW ZNTYE XLGGC ELSTR RLYTY CYTXC ELITW LTYTY GJCEF CXCGZ FJZIN TGSPZ KNLFL SLFLJ STYEG ZTCXE KLGGT YEJSC JGSLI LLWGJ SLYLL RJZHL ICTFW PRTGA FLJLG SLSCG CWGZT YAFLC GLRJS LGLAK FTJPW LMLWZ ISLFA ZXXGH KJKYI ZFJKY CJLWP RKLJZ CXTOK BNTJS SZKGL VLLBT YENLN LFLYJ CHWLJ ZGLJK BCGLA KFLAS CYYLW IZFVL PLOAS CYELH LIZFL JFTYT JPWLI JJZUZ TYJSL RPYCX TOJLC XIZFJ KYCJL WPGSL TGEZZ RCJTX BFZMT GTYEC YRGSL SCGJC VLYCW LCRIF ZXXCF JTYCY RKGLR CAZWK XYJFC YGBZG TJTZY ATBSL FJSCJ CWGZL OBWCT YGJSL GJLEC YZEFC BSPJF TYTJP VYZNG JSCJJ SLZBB ZGTJT ZYNTW WITYR TJFLC GZYCH WPGJF CTESJ IZFNC FRJZA FCAVT IJSLP GBZJT JCNZF RZINC FYTYE JFTYT JPGAT BSLFT GJZKE SLFJZ AFCAV JSCYX CFJTY GCYRT SCRJZ SKYJC WTJJW LHTJI ZFJSL AFTHH KJXCP HLPZK NTWWI TYRTJ XZFLL CGTWP VYZNT YECWW JSTGC JWLCG JGSLR TRYJF LGZFJ JZXCF JTYGF LMLFG TYEJF TAVGZ XCPHL NLGSZ KWRAZ YGTRL FZKFG LWMLG WKAVP TRZYJ NCYJJ ZBKGS ZKFWK AVJZZ ICFCY RTRZY JNCYJ JZLOB ZGLJF TYTJP JZXZF LFTGV JSCYY LALGG CFPNS LYPZK FLBWP TGKEE LGJNL IZWWZ NJFTY TJPGC RMTAL CYRKG LCMTE LYLFL ATBSL FCVLP NZFRZ IWLYE JSJSF LLGSZ KWRHL CRLDK CJLHL GJASC FWTL\\n'"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "c5a"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(('charlie', <KeywordWrapAlphabet.from_largest: 3>), -2991.076271929155)"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "key_a, score = keyword_break_mp(c5a)\n",
+    "key_a, score"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "harry it is hard to make sense of the latest message from martin what is the temp bank is it a network of part time spies jamelia implied that it washer coding skills that dynamix were interested in so i began to wonder if jamelia was working on a recruitment tool using social media but that sounds abit oldschool could she and martin have been developing a screening algorithm for agents trying to pick out the most reliable ones by datamining how would that have fitted with her real expertise in signal noise analysis surely the data isnt that noisy i did have some luck with background on the pds syndicate they were initially setup to deal with a future in which quantum transmission makes it impossible to crack ciphers using digital methods pds stands for post digital surveillance and they were an arms length cabinet office initiative kept completely separate from the other intelligence agencies i think the plan was total deniability on all sides and it was structured to prevent interagency rivalry the syndicate had prime ministerial signoff but after that there is no paper trail and there has been no news of any progress insiders think the syndicate was closed down in january after rumours of unauthorised surveillance but given that bulk collection in the uk is authorised it is hard to imagine what they were up to i know that several of the people who launched pds left the civil service in february and two now have board positions at citadelle to the best of my knowledge none of the seniors had direct contact with jamelia or martin but i suppose it is possible that citadelle was just the vehicle for pds to keep an eye on the two of them i still dont know why they were regarded as special though maybe trinity has something for us she sent the following message hidden in an image file in in stag rama sort of wish you were here things oi am guessing that she feels the need to be fairly discrete she has also increased the security level of her comms but unfortunately due to a mixup with housekeeping we we rentable to setup a secure channel for key exchange before trinity left to join the dynamix team fortunately she is good at improvising and she has taken a lead from martin and used a column transposition cipher that also explains the steganography trinity knows that the opposition will find it reasonably straightforward to crack if they spot it a word of warning trinity s cipher is tougher to crack than martins and i had to hunt a littlebit for the crib but maybe you will find it more easily knowing all this atleast she didnt resort to martins reversing trick so maybe we should consider ourselves lucky i dont want to push our luck to of a randi dont want to expose trinity to more risk than necessary when you reply i suggest we follow trinity s advice and use avi genere cipher a keyword of length three should be adequate best charlie\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(wcat(segment(sanitise(keyword_decipher(c5a, key_a[0], key_a[1])))))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [],
+   "source": [
+    "transpositions[transpositions_of('edgarallenpoe')] += ['edgarallenpoe']"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "(((1, 2, 4, 3, 0), False, True), -3669.618471067677)"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "column_transposition_break_mp(c5b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'harry and charlie not much time and i need to spend the time i have carefully i have access to the dynamix network and used it to hack into citadelle they have a large database that a number of people here are working on mostly maintenance and data entry but jamelia steam seem to have been working on mining the data nothing too surprising really and at first i couldnt see what the fuss was about but again i got lucky jamelia s account on the machine they gave me had been wiped but they missed a configfile that showed me that she had used an online storage service for some of her files and one of them was huge the client software kept metadata about the file and it looks like a clone of the database i have seen here but the filesize is way off and the storage scheme seems to have been formatted with pointers to hidden parts of the file that dwarf the database i have seen in the citadelle servers i dont know about the database itself but i also found what looks like an encrypted db scheme file if you can send me jamelia sold laptop or phone i think there is a chance we could recover some of the documents that she had deleted by syncing it to the server if her keychain has been copied over that might also give me access to the citadelle database which i have codenamed titan i think we might be getting close to the truth but i am also sure that i am not trusted here and that will make it hard to get much more intelligence without raising alarm others seem to have fairly free access to the building but my pass only gets me to one floor and three rooms everyone is friendly but no one is talking and i dont want to push too hard and make them more suspicious i would suggest we switchback to substitution ciphers in the future this is getting serious maybe avi genere or hill cipher next time trinity'"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "wcat(segment(column_transposition_decipher(sanitise(c5b), (1, 2, 4, 3, 0), fillcolumnwise=False, emptycolumnwise=True)))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "['faced',\n",
+       " 'laced',\n",
+       " 'mable',\n",
+       " 'maced',\n",
+       " 'madge',\n",
+       " 'paced',\n",
+       " 'rabid',\n",
+       " 'raced',\n",
+       " 'radon',\n",
+       " 'ramon',\n",
+       " 'sable',\n",
+       " 'sabre',\n",
+       " 'sadie',\n",
+       " 'salon',\n",
+       " 'scion',\n",
+       " 'shirk',\n",
+       " 'simon',\n",
+       " 'table',\n",
+       " 'talon',\n",
+       " 'tempo',\n",
+       " 'think',\n",
+       " 'timon',\n",
+       " 'vacuo',\n",
+       " 'vents',\n",
+       " 'venus',\n",
+       " 'virus',\n",
+       " 'wacke',\n",
+       " 'wafts',\n",
+       " 'wagon',\n",
+       " 'waits',\n",
+       " 'walts',\n",
+       " 'wants',\n",
+       " 'warts',\n",
+       " 'wefts',\n",
+       " 'welts',\n",
+       " 'whirl',\n",
+       " 'whisk',\n",
+       " 'whits',\n",
+       " 'wilts',\n",
+       " 'yakut',\n",
+       " 'yalus',\n",
+       " 'zanys',\n",
+       " 'gabbed',\n",
+       " 'jabbed',\n",
+       " 'labile',\n",
+       " 'laddie',\n",
+       " 'nabbed',\n",
+       " 'nadine',\n",
+       " 'neglig',\n",
+       " 'paddle',\n",
+       " 'paglia',\n",
+       " 'rabble',\n",
+       " 'racier',\n",
+       " 'racoon',\n",
+       " 'ramona',\n",
+       " 'reform',\n",
+       " 'sables',\n",
+       " 'sabres',\n",
+       " 'sacral',\n",
+       " 'saddle',\n",
+       " 'sadies',\n",
+       " 'safari',\n",
+       " 'salons',\n",
+       " 'saloon',\n",
+       " 'samoan',\n",
+       " 'sampan',\n",
+       " 'samson',\n",
+       " 'scenic',\n",
+       " 'school',\n",
+       " 'scions',\n",
+       " 'scipio',\n",
+       " 'shirks',\n",
+       " 'simons',\n",
+       " 'tabbed',\n",
+       " 'tablet',\n",
+       " 'tacoma',\n",
+       " 'tenser',\n",
+       " 'thisll',\n",
+       " 'vacate',\n",
+       " 'vacuum',\n",
+       " 'vellum',\n",
+       " 'veneto',\n",
+       " 'venues',\n",
+       " 'venuss',\n",
+       " 'villon',\n",
+       " 'vinson',\n",
+       " 'viruss',\n",
+       " 'wabash',\n",
+       " 'waddle',\n",
+       " 'wanton',\n",
+       " 'welter',\n",
+       " 'whisks',\n",
+       " 'yaltas',\n",
+       " 'labeled',\n",
+       " 'nabbing',\n",
+       " 'pacific',\n",
+       " 'paddled',\n",
+       " 'pillion',\n",
+       " 'raccoon',\n",
+       " 'ragnark',\n",
+       " 'saddled',\n",
+       " 'saddles',\n",
+       " 'sadness',\n",
+       " 'safaris',\n",
+       " 'saloons',\n",
+       " 'samoans',\n",
+       " 'sampans',\n",
+       " 'schools',\n",
+       " 'scipios',\n",
+       " 'session',\n",
+       " 'simmons',\n",
+       " 'tabitha',\n",
+       " 'ubuntus',\n",
+       " 'vanuatu',\n",
+       " 'velvets',\n",
+       " 'venuses',\n",
+       " 'vinsons',\n",
+       " 'wabashs',\n",
+       " 'waddled',\n",
+       " 'walloon',\n",
+       " 'whitish',\n",
+       " 'zairian',\n",
+       " 'zillion',\n",
+       " 'labelled',\n",
+       " 'nanchang',\n",
+       " 'negligee',\n",
+       " 'paganini',\n",
+       " 'peephole',\n",
+       " 'reformer',\n",
+       " 'sadnesss',\n",
+       " 'sessions',\n",
+       " 'simmonss',\n",
+       " 'simonson',\n",
+       " 'velveteen']"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "transpositions[(1, 2, 4, 3, 0)]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.5.2"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}
diff --git a/2016/5a.ciphertext b/2016/5a.ciphertext
new file mode 100644 (file)
index 0000000..1ae1c40
--- /dev/null
@@ -0,0 +1 @@
+SCFFP TJTGS CFRJZ XCVLG LYGLZ IJSLW CJLGJ XLGGC ELIFZ XXCFJ TYNSC JTGJS LJLXB HCYVT GTJCY LJNZF VZIBC FJJTX LGBTL GUCXL WTCTX BWTLR JSCJT JNCGS LFAZR TYEGV TWWGJ SCJRP YCXTO NLFLT YJLFL GJLRT YGZTH LECYJ ZNZYR LFTIU CXLWT CNCGN ZFVTY EZYCF LAFKT JXLYJ JZZWK GTYEG ZATCW XLRTC HKJJS CJGZK YRGCH TJZWR GASZZ WAZKW RGSLC YRXCF JTYSC MLHLL YRLML WZBTY ECGAF LLYTY ECWEZ FTJSX IZFCE LYJGJ FPTYE JZBTA VZKJJ SLXZG JFLWT CHWLZ YLGHP RCJCX TYTYE SZNNZ KWRJS CJSCM LITJJ LRNTJ SSLFF LCWLO BLFJT GLTYG TEYCW YZTGL CYCWP GTGGK FLWPJ SLRCJ CTGYJ JSCJY ZTGPT RTRSC MLGZX LWKAV NTJSH CAVEF ZKYRZ YJSLB RGGPY RTACJ LJSLP NLFLT YTJTC WWPGL JKBJZ RLCWN TJSCI KJKFL TYNST ASDKC YJKXJ FCYGX TGGTZ YXCVL GTJTX BZGGT HWLJZ AFCAV ATBSL FGKGT YERTE TJCWX LJSZR GBRGG JCYRG IZFBZ GJRTE TJCWG KFMLT WWCYA LCYRJ SLPNL FLCYC FXGWL YEJSA CHTYL JZIIT ALTYT JTCJT MLVLB JAZXB WLJLW PGLBC FCJLI FZXJS LZJSL FTYJL WWTEL YALCE LYATL GTJST YVJSL BWCYN CGJZJ CWRLY TCHTW TJPZY CWWGT RLGCY RTJNC GGJFK AJKFL RJZBF LMLYJ TYJLF CELYA PFTMC WFPJS LGPYR TACJL SCRBF TXLXT YTGJL FTCWG TEYZI IHKJC IJLFJ SCJJS LFLTG YZBCB LFJFC TWCYR JSLFL SCGHL LYYZY LNGZI CYPBF ZEFLG GTYGT RLFGJ STYVJ SLGPY RTACJ LNCGA WZGLR RZNYT YUCYK CFPCI JLFFK XZKFG ZIKYC KJSZF TGLRG KFMLT WWCYA LHKJE TMLYJ SCJHK WVAZW WLAJT ZYTYJ SLKVT GCKJS ZFTGL RTJTG SCFRJ ZTXCE TYLNS CJJSL PNLFL KBJZT VYZNJ SCJGL MLFCW ZIJSL BLZBW LNSZW CKYAS LRBRG WLIJJ SLATM TWGLF MTALT YILHF KCFPC YRJNZ YZNSC MLHZC FRBZG TJTZY GCJAT JCRLW WLJZJ SLHLG JZIXP VYZNW LRELY ZYLZI JSLGL YTZFG SCRRT FLAJA ZYJCA JNTJS UCXLW TCZFX CFJTY HKJTG KBBZG LTJTG BZGGT HWLJS CJATJ CRLWW LNCGU KGJJS LMLST AWLIZ FBRGJ ZVLLB CYLPL ZYJSL JNZZI JSLXT GJTWW RZYJV YZNNS PJSLP NLFLF LECFR LRCGG BLATC WJSZK ESXCP HLJFT YTJPS CGGZX LJSTY EIZFK GGSLG LYJJS LIZWW ZNTYE XLGGC ELSTR RLYTY CYTXC ELITW LTYTY GJCEF CXCGZ FJZIN TGSPZ KNLFL SLFLJ STYEG ZTCXE KLGGT YEJSC JGSLI LLWGJ SLYLL RJZHL ICTFW PRTGA FLJLG SLSCG CWGZT YAFLC GLRJS LGLAK FTJPW LMLWZ ISLFA ZXXGH KJKYI ZFJKY CJLWP RKLJZ CXTOK BNTJS SZKGL VLLBT YENLN LFLYJ CHWLJ ZGLJK BCGLA KFLAS CYYLW IZFVL PLOAS CYELH LIZFL JFTYT JPWLI JJZUZ TYJSL RPYCX TOJLC XIZFJ KYCJL WPGSL TGEZZ RCJTX BFZMT GTYEC YRGSL SCGJC VLYCW LCRIF ZXXCF JTYCY RKGLR CAZWK XYJFC YGBZG TJTZY ATBSL FJSCJ CWGZL OBWCT YGJSL GJLEC YZEFC BSPJF TYTJP VYZNG JSCJJ SLZBB ZGTJT ZYNTW WITYR TJFLC GZYCH WPGJF CTESJ IZFNC FRJZA FCAVT IJSLP GBZJT JCNZF RZINC FYTYE JFTYT JPGAT BSLFT GJZKE SLFJZ AFCAV JSCYX CFJTY GCYRT SCRJZ SKYJC WTJJW LHTJI ZFJSL AFTHH KJXCP HLPZK NTWWI TYRTJ XZFLL CGTWP VYZNT YECWW JSTGC JWLCG JGSLR TRYJF LGZFJ JZXCF JTYGF LMLFG TYEJF TAVGZ XCPHL NLGSZ KWRAZ YGTRL FZKFG LWMLG WKAVP TRZYJ NCYJJ ZBKGS ZKFWK AVJZZ ICFCY RTRZY JNCYJ JZLOB ZGLJF TYTJP JZXZF LFTGV JSCYY LALGG CFPNS LYPZK FLBWP TGKEE LGJNL IZWWZ NJFTY TJPGC RMTAL CYRKG LCMTE LYLFL ATBSL FCVLP NZFRZ IWLYE JSJSF LLGSZ KWRHL CRLDK CJLHL GJASC FWTL
diff --git a/2016/5b.ciphertext b/2016/5b.ciphertext
new file mode 100644 (file)
index 0000000..d37a460
--- /dev/null
@@ -0,0 +1 @@
+ANROH AESTM VEYES HAEKS TKCEH VRTEA EEHRK NLNND EBMSS OBOGN HAIOR GLASU SAFAU AIUAA ONAEG EEPTM DFLTE HESOE ARFME EOTAE LSAPA ATLIK ENHAI SETIZ AAEAH EOBOT TNTDR TLTFA SVNED SRNWT ASETO DLLNY DELOS ELLTP IKEHW LOOTC TTAEY ITSRR HANER MAIAS EDDAI ADEAI MBTLO RUAUA NUHNT MTTMO TGWUS LTSOF YASED UALSO ODESY SNUNA GDAPO DAEEI SLGEC KBUCR HUIEG OYIRI PEMNR DLTTN EPHEE FIASE MTAEO IILEE GATNR OEEIM YTCDN UETEH EROIE NNSIR YTTLE TUSTG GCMSU TCTAH EETIA IESDA HENSG VOERS NHSTI ORTDB HETSA EEBHE RTLEY NSGEE HEREH TOETH EDTTE EICEE STATT ELIFW OIEPB MEUEJ IDOHT TIAED VMHUS SDTSN OEIKA SCDTI LVCTC EASCV EDNNI EIOTU TLRTO SEDWA HOURE EITIA HEHAF CTBIT SYMNO TREOF DTELA ONUOA KMSCI DESHT STISE RSTSU BGELH XEIYH EUMIT NTHAL ACOYX ODIAT AEHLD AAMFL EOGSA NATRJ IAMVN IMGAT TRIAN ICNWH SBUIT YLCTE IEEDW BESOF HOESD AIOSC SFINO MUENT KETUF NOILF ASVNB ESSFT OSESV NAWOR IPOFH AEBHE TTLVD NOEBT BLUAK ECECF FADMS AONIE ACOER ODEHE EDNIH VHYNE PVAHO METTL AWICA ITWHE GEEHA OTATE EHLER EHILC HAGMR MVREE TIGYO ETFAR OEEIY OSIDT THADT OSOOU TIASI OHNUT SIRMA NRCRT RYRCI MIDDE EICUH CTDIW NDHNT LYAEB HUOPR WNOME EATTL EEAEK NNDOG USEAF IDETS ABAOK EANHH HVAND HSCGT HMTAD LTEIR OFAEE HHEFE MAOEA LLCOD AAEEH EIODT EMMAE MDPEH NSETW HAISN ILRIK BHAIF AOHOK NTSEI CNAAL POHHS NCREE EMTHD EYGTR FEIBO OHGSE COILT EHENT IKGGN SHTIS EITTR TIKAG CELNT RNREE AIRCO UNMSG EERHO VNRLN IKNNT SHNEM UIWSS WBOTI PIFEI TESEE OLETT THAAN CENOD IARLV ETNNR UTCOD TAAAS TBPEA ROTIA NAYAA MTEWN ITTHO PNLDR OTHEW OTNLJ ICOMN YMBIU YENIA WTHUN NREEO HLDFW GCTWE TATID OKOTT EEHUF IWFHR CSTEF TIISD AFIAR DAAEH AEEOO UDASU SNTSA RDHIY NMEOP RENRC EUCSF ONAHL BCTEE ECHEI ETTGE SHAEB HHOMT HETTC TTBMS HMRDA ALIDT MNIEO IAOST ELESH LBPNT OLNEM RIEBO TNIWO TRMHR PUUGW TCUTN ETTHG NIAVE HINII