Fixed transposition cipher breaking, included extended word list for 2013 ciphers
[cipher-training.git] / challenge6.ipynb
1 {
2 "metadata": {
3 "name": ""
4 },
5 "nbformat": 3,
6 "nbformat_minor": 0,
7 "worksheets": [
8 {
9 "cells": [
10 {
11 "cell_type": "code",
12 "collapsed": false,
13 "input": [
14 "%matplotlib inline\n",
15 "import matplotlib.pyplot as plt\n",
16 "\n",
17 "from cipherbreak import *\n",
18 "with open('2013/mona-lisa-words.txt') as f:\n",
19 " mlwords = [line.rstrip() for line in f]\n",
20 "mltrans = collections.defaultdict(list)\n",
21 "for word in mlwords:\n",
22 " mltrans[transpositions_of(word)] += [word]\n",
23 "c6a = open('2013/6a.ciphertext').read()\n",
24 "c6b = open('2013/6b.ciphertext').read()"
25 ],
26 "language": "python",
27 "metadata": {},
28 "outputs": [],
29 "prompt_number": 2
30 },
31 {
32 "cell_type": "code",
33 "collapsed": false,
34 "input": [
35 "c1a = open('2013/1a.ciphertext').read()\n",
36 "c1b = open('2013/1b.ciphertext').read()\n",
37 "c2a = open('2013/2a.ciphertext').read()\n",
38 "c2b = open('2013/2b.ciphertext').read()\n",
39 "c3a = open('2013/3a.ciphertext').read()\n",
40 "c3b = open('2013/3b.ciphertext').read()\n",
41 "c4a = open('2013/4a.ciphertext').read()\n",
42 "c4b = open('2013/4b.ciphertext').read()\n",
43 "c5a = open('2013/5a.ciphertext').read()\n",
44 "c5b = open('2013/5b.ciphertext').read()\n",
45 "\n",
46 "p1a = caesar_decipher(c1a, 8)\n",
47 "p1b = caesar_decipher(c1b, 14)\n",
48 "p2a = affine_decipher(c2a, 3, 3, True)\n",
49 "p2b = caesar_decipher(c2b, 6)\n",
50 "p3a = affine_decipher(c3a, 7, 8, True)\n",
51 "p3b = keyword_decipher(c3b, 'louvigny', 2)\n",
52 "p4a = keyword_decipher(c4a, 'montal', 2)\n",
53 "p4b = keyword_decipher(c4b, 'salvation', 2)\n",
54 "p5a = keyword_decipher(c5a, 'alfredo', 2)\n",
55 "p5b = vigenere_decipher(sanitise(c5b), 'florence')"
56 ],
57 "language": "python",
58 "metadata": {},
59 "outputs": [],
60 "prompt_number": 3
61 },
62 {
63 "cell_type": "code",
64 "collapsed": false,
65 "input": [
66 "plot_frequency_histogram(frequencies(sanitise(c6a)))"
67 ],
68 "language": "python",
69 "metadata": {},
70 "outputs": [
71 {
72 "output_type": "stream",
73 "stream": "stderr",
74 "text": [
75 "/usr/local/lib/python3.3/dist-packages/matplotlib/figure.py:372: UserWarning: matplotlib is currently using a non-GUI backend, so cannot show the figure\n",
76 " \"matplotlib is currently using a non-GUI backend, \"\n"
77 ]
78 },
79 {
80 "metadata": {},
81 "output_type": "display_data",
82 "png": "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\nTSKWQQ011FATHzEH0Y4dO3TVVVcpLy9PvXv31m233aaXXnqpK3tLE8EE1CRiGdRQQw018RFzEB05\nckRDhw5t/XzIkCE6cuRIlzQFAOg+Yg6ic6MvAADoJCdGf/3rX50ZM2a0fv7www87gUDggmnGjh3r\n6NxYQV68ePHi1c1fY8eOvWiexHwfUVNTk0aMGKFNmzbpy1/+siZNmqTVq1dr5MiRscwOANBN9Yq5\nsFcv/fKXv9SMGTPU3Nysb3zjG4QQAKDD4vpkBQAAouHJCkmitrZWRUVFCV9uVVWVHnvssbjNf+XK\nlSosLNT8+fPjMv/OrLepU6cmpK5///4xLQfxdezYMT311FOm24AIom4v3qMfn3rqKW3cuFG/+93v\n4rqcWGzbti0hdYwwjZ3jOHF7XmVDQ4OefPLJuMwbHUMQxcmcOXM0YcIEjR49Ws8++6yrmqamJt15\n550qLCzUvHnzdPr06ag1L7zwgsaOHavi4mJ97Wtfc7Wcn/70pxoxYoRKSkr03nvvuap58cUXNXny\nZHm9Xt17771qaWmJWnPvvffq/fff1w033KBf/OIXrpbz4x//WAUFBSopKdFXv/pVV0drzc3Nuuee\nezR69GjNmDFDZ86ccbWsWI9U4nGEU1tbq4KCAt11110aMWKE7rjjDr322muaOnWq8vPz9be//a3d\n2pEjR3Z4HfzsZz9TUVGRioqKtGLFCtc9dmQb/fy25vb7WVtbqxEjRsjv96uoqEiHDx+OWnPy5End\ndNNNKi4uVlFRkdasWRO1ZvHixfrXv/4lr9eryspKV319/uh7+fLleuihh9qtWbJkyQVhF+0MxKOP\nPqrHH39cknT//fertLRUkrR582bdeeedbdYtXbr0gu/hgw8+qJUrV7bb269+9St5vV55vV4NGzZM\n1113XbvTx1Wsw7fRvnA47DiO45w6dcoZPXq08/HHH7c7/cGDBx3Lspw33njDcRzHWbBggbN8+fJ2\na9555x0nPz+/dd7nl9met956yykqKnJOnz7tHD9+3Lnqqqucxx57rN2affv2OTNnznSampocx3Gc\n++67z3nhhReiLstxHCcvLy/qez9vx44dTnFxsXP27FmnsbHRGT58eNTeDh486PTq1cvZu3ev4ziO\nU1FR4bz44ouulte/f39X03W2zs3059/HO++847S0tDjjx493FixY4DiO47z00kvO7Nmzo9Z2ZB2c\n3w5OnTrlnDhxwhk1apSze/fuqD12ZBuNZVs7v5wePXo4b775ZtRpz1u7dq2zcOHC1s+PHTsWtaa2\nttYZPXq062UcPHjwgumXL1/uVFVVtVuze/duZ9q0aa2fFxYWOocPH25z+u3btzvz5s1zHMdxrrnm\nGmfy5MnOp59+6lRVVTnPPPNMm3W1tbXOuHHjHMdxnObmZufKK690tT9wHMf59NNPnZKSEmfdunWu\npo8HjojiZMWKFSouLtaUKVN0+PBh/eMf/4haM3ToUE2ZMkWSdOedd2rr1q3tTr9582ZVVFQoK+vc\n33XJzMyMuozXX39dc+fOVZ8+fZSRkaFZs2ZFPfWxadMm7dy5UxMmTJDX69XmzZt18ODBqMvqqG3b\ntmn27Nm65JJL1L9/f82cOdPVaZlhw4ZpzJgxkqTx48ertra2y3tLhGHDhmnUqFGyLEujRo3S9ddf\nL0kaPXp01PfU0XWwdetWzZ07V3379lW/fv00d+5cvf7661F77Mg2Gsu2dt4VV1yhSZMmuZpWksaM\nGaMNGzZo8eLF2rp1qzweT9Qat710RnFxsT788EPV1dVp7969yszM1ODBg9ucfty4cdq5c6caGxvV\np08fTZkyRW+99Za2bt2qkpKSNuuuuOIKZWdna8+ePXrttdc0btw4V/sDSfr2t7+t0tJS3XTTTR1+\nf10l5uHbaFswGNSmTZu0fft29enTR9OnT9fZs2ej1n3+WoLT+rdD2p++oz9M/1vjtt7v9+vhhx/u\n0LI6KtbevvSlL7V+3LNnT1enNJPR599Hjx49dMkll7R+3NTU5LrWzTq42Lp2cy2rI9torN9PSerX\nr5/raSVp+PDh2r17t1555RV9//vfV2lpqX7wgx90aB7R9OrV64JT0m63s3nz5mnt2rWqr6/Xbbfd\n1u60vXv31rBhw/Tcc8/p6quv1pgxY7R582b985//VEFBQbu1d999t1atWqVQKKQFCxa46u25557T\nBx98YPxaGUdEcXD8+HFlZmaqT58+2r9/v7Zv3+6q7tChQ63T/v73v2/3NyBJuu666/THP/5R4XBY\nklr/bc+1116r6upqnTlzRo2NjVq3bl3UHVBpaanWrl2rjz76qHU5hw4dcvOWOmTq1Kl6+eWXdfbs\nWZ04cUKvvPIKF/rjpKSkRNXV1Tp9+rROnjyp6urqqNub1LFtNJZtLVZ1dXXq06eP7rjjDn3ve9/T\nrl27otZkZGSosbHR9TJs29aHH36ocDiss2fPat26da7qbr31Vq1evVpr167VvHnzok5fUlKi5cuX\na9q0aSopKdHTTz+tcePGRa2bM2eO1q9fr7feekszZsyIOv3OnTv12GOPJcVAIo6I4uCGG27Q008/\nrcLCQo0YMaL1VEZ7LMvSiBEj9MQTT2jBggUaNWqU7rvvvnZrCgsL9eCDD2ratGnq2bOnxo0bp9/+\n9rft1ni9Xt16660aO3ascnJyXJ3+GDlypH7yk5+ovLxcLS0t6t27t5588kn93//9n6v35daECRM0\na9YsjRkzRrZtq6ioSJdddlmHl+F2mbHuFDtaF2s/n//czdFxR5bp9Xr19a9/vfX7v3DhQo0dOzZq\njx3ZRv93W5s4caLro6KOruO3335bDzzwQOuRpJth2dnZ2Zo6daqKiop04403Rv2bar1799YPf/hD\nTZo0SYMHD1ZhYaGrPgsLC3XixAkNGTJEtm1Hnb6kpEQPP/ywpkyZor59+6pv376ufkno3bu3rrvu\nOmVmZrrq64knnlBDQ4OmT58uSZo4caKeeeaZqHXxwA2tSConT55Uv379dOrUKU2bNk3PPvusiouL\nTbfV6uOPP07p61CdUVtbq5kzZ+rtt9+Oqf6hhx5S//799d3vfreLO4MktbS0aPz48Vq7dq2uvPJK\n0+10CKfmkFTuueceeb1ejR8/XrfccktShdB//vMfXX311XrggQdMt2JMZ0+tcao1Pvbt26fhw4fr\n+uuvT7kQkjgiAgAYxhERAMAogggAYBRBBAAwiiACABhFEAEAjCKIAABG/T+xw3Fhb8rTYQAAAABJ\nRU5ErkJggg==\n",
83 "text": [
84 "<matplotlib.figure.Figure at 0xaeb9980c>"
85 ]
86 }
87 ],
88 "prompt_number": 4
89 },
90 {
91 "cell_type": "code",
92 "collapsed": false,
93 "input": [
94 "c6af = frequencies(sanitise(c6a))\n",
95 "plot_frequency_histogram(c6af, sort_key=lambda l: c6af[l])"
96 ],
97 "language": "python",
98 "metadata": {},
99 "outputs": [
100 {
101 "metadata": {},
102 "output_type": "display_data",
103 "png": "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\n",
104 "text": [
105 "<matplotlib.figure.Figure at 0xae9bdf4c>"
106 ]
107 }
108 ],
109 "prompt_number": 5
110 },
111 {
112 "cell_type": "code",
113 "collapsed": false,
114 "input": [
115 "plot_frequency_histogram(normalised_english_counts, sort_key=lambda l: normalised_english_counts[l])"
116 ],
117 "language": "python",
118 "metadata": {},
119 "outputs": [
120 {
121 "metadata": {},
122 "output_type": "display_data",
123 "png": "iVBORw0KGgoAAAANSUhEUgAAAawAAAEkCAYAAABzKwUZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHx5JREFUeJzt3X9QVXX+x/HXNSgLpNQxG++lUCF+KF5QkFHXpGwXtXTM\ntJg03aQidx23xmprahNn+1ZMuptGP7CZtXHb3B/ujrjKMq26d0ZLl0zsx6CNFtQFw9rMwF8E18/3\nD4siL+deEMSPPB8zZ7zH8z6f+zmHw33xOefce13GGCMAAM5zvbq7AwAAhIPAAgBYgcACAFiBwAIA\nWIHAAgBYgcACAFghZGCVlZUpKSlJCQkJKiwsPGP5vn37NGbMGPXu3VvLly8/Y3kgEFB6erqmTp3a\nOT0GAPRIEU4LA4GAFi5cqM2bN8vtdiszM1PTpk1TcnJyS03//v31/PPPa/369UHbWLFihVJSUtTQ\n0NC5PQcA9CiOI6zy8nLFx8crLi5OkZGRys3NVUlJSauaAQMGKCMjQ5GRkWesX1NTo9LSUt19993i\n/ckAgLPhGFi1tbWKjY1tmfd4PKqtrQ278QceeEDPPvusevXiUhkA4Ow4JonL5epwwxs3btSVV16p\n9PR0RlcAgLPmeA3L7XbL7/e3zPv9fnk8nrAafuutt7RhwwaVlpbq5MmTqq+v19y5c7VmzZpWdWlp\naXr33Xc70HUAwIXG6/Vqz549wRcaB01NTWbIkCGmqqrKNDY2Gq/XayorK4PWLlmyxCxbtizoMp/P\nZ26++eagy0J0wXpLliyh9jzqB7Xtrz1f+kFtx+tt4pQJjiOsiIgIFRUVKScnR4FAQHl5eUpOTlZx\ncbEkKT8/X3V1dcrMzFR9fb169eqlFStWqLKyUtHR0a3aOpvTiwAAOAaWJE2ePFmTJ09u9X/5+fkt\nj6+66qpWpw2DmTBhgiZMmNDBLgIAIF1UUFBQ0J0dWLp0qbq5C10uLi6O2vOoH9S2v/Z86Qe1Ha+3\nhVMmuL49Z9htXC4XdxECACQ5ZwJvkAIAWIHAAgBYgcACAFiBwAIAWIHAAgBYgcACAFiBwAIAWIHA\nAgBYgcACAFiBwAIAWIHAAgBYgcACAFiBwAIAWIHAAgBYgcACAFiBwAIAWIHAAgBYgcACAFiBwAIA\nWIHAAgBYgcACAFiBwAIAWIHAAgBYgcACAFiBwAIAWIHAAgBYIazAKisrU1JSkhISElRYWHjG8n37\n9mnMmDHq3bu3li9f3vL/fr9f119/vYYNG6bhw4dr5cqVnddzAECP4jLGGKeCQCCgxMREbd68WW63\nW5mZmVq7dq2Sk5Nbar744gt98sknWr9+vfr27avFixdLkurq6lRXV6e0tDQdPXpUo0aN0vr161ut\n63K5FKILAIAewikTQo6wysvLFR8fr7i4OEVGRio3N1clJSWtagYMGKCMjAxFRka2+v+rrrpKaWlp\nkqTo6GglJyfr4MGDHd0OAEAPFjKwamtrFRsb2zLv8XhUW1vb7ieqrq5WRUWFsrKy2r0uAPRUMTH9\n5HK5HKeYmH7d3c1zIiJUgcvlOusnOXr0qGbOnKkVK1YoOjr6rNsDgJ6ioeErSc6XTRoazv512gYh\nA8vtdsvv97fM+/1+eTyesJ+gqalJt956q+bMmaPp06cHrSkoKGh5nJ2drezs7LDbBwDYy+fzyefz\nhVUb8qaL5uZmJSYmasuWLRo0aJBGjx59xk0X3ykoKFCfPn1abrowxmjevHnq37+/fv/73wfvADdd\nAECbTp/lCvUaeeG8jjplQsjAkqR//etfuv/++xUIBJSXl6dHH31UxcXFkqT8/HzV1dUpMzNT9fX1\n6tWrl/r06aPKykrt2bNH1113nUaMGNFyavHpp5/WpEmTwuocAPR0BNYPloUTWF2JwAKAthFY3+OT\nLgAAViCwAABWILAAAFYgsAAAViCwAABWILAAAFYgsAAAViCwAABWILAAAFYgsAAAViCwAABWILAA\nAFYgsAAAViCwAABWILAAAFYgsAAAViCwAABWILAAAFYgsAAAViCwAABWILAAAFYgsAAAViCwAABW\nILAAAFYgsAAAViCwAABWILAAAFYgsAAAVggZWGVlZUpKSlJCQoIKCwvPWL5v3z6NGTNGvXv31vLl\ny9u1LgAA4XIZY0xbCwOBgBITE7V582a53W5lZmZq7dq1Sk5Obqn54osv9Mknn2j9+vXq27evFi9e\nHPa6kuRyueTQBQDo0Vwul6RQr5EXzuuoUyY4jrDKy8sVHx+vuLg4RUZGKjc3VyUlJa1qBgwYoIyM\nDEVGRrZ7XQAAwuUYWLW1tYqNjW2Z93g8qq2tDavhs1kXAIAfcwys00PRjjmbdQEA+LEIp4Vut1t+\nv79l3u/3y+PxhNVwe9YtKChoeZydna3s7OywngMAYDefzyefzxdWreNNF83NzUpMTNSWLVs0aNAg\n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\n1CkzatQoM3/+fGOMMSUlJWb69OlntP/dz+47y5YtMwUFBY7bGM6x095js6qqyvTq1cv897//Ddn2\nunXrzD333NMy//XXXzu2GxERYd59911jjDG33Xabee2118669jvh7Atjvj8Ojh8/boYPH97msfTd\nfjt+/Lg5evSoGTZsmKmoqGiz3erq6lY/v7ZUVlaaqVOnmubmZmOMMQsWLDBr1qwJq+8XCkZYXWzR\nokWaOHGibrrppqDLt23bphkzZqh3797q06ePpk2b1qmnUp544gm98cYb2rVrlx5++GHH2s8//1zT\np0/X66+/7njNIC0tTZ9//rk+++wzvfvuu+rbt6/cbneb9bGxsRozZowkac6cOdq+fftZ17755pua\nPn26Lr74YkVHR2vq1Kmdtt+2bt2q2267Tf36nX6Td9++fYPWXXPNNerfv7/27NmjN954QyNHjgxa\n+91otaGhQb1799aYMWO0a9cubd++XePHjz+jfvDgwRo2bJhcLpeGDRumG2+8UZI0fPhwVVdXd8o2\nhqMjx+Y111yj0aNHh2x7xIgR+ve//61HHnlE27dvV0xMjGP94MGDNWLECEnSqFGjHPdDe2rbY8WK\nFUpLS9OYMWNUU1Oj/fv3B63bvn27ZsyYoUsvvVRRUVGaMWOGtm3b1ma74R63W7Zs0TvvvKOMjAyl\np6dr69atqqqq6tC22MrxtnacnVdffVV+v9/x/LTL5Wp1wHZmWEnS//73Px07dkyBQEAnTpzQZZdd\n1mbtFVdcoWuuuUbbtm1TUlKSY7uzZs3SunXrVFdXp9zcXMfaH177MMY4XgsJt7Yr99uP23Zy9913\na/Xq1Tp06JDmz58ftCYyMlKDBw/Wq6++qrFjx2rEiBHaunWrDhw4EHQ/X3LJJS2Pe/XqpYsvvrjl\ncXNz8xn1ERERrU4NOZ1GbY+O7OOoqKiw2k5ISFBFRYU2bdqkxx9/XBMnTtRvfvObNut/uE8uuugi\nx21sT224fD6ftmzZop07d6p37966/vrr1djYGLQ22H7ryDXDYObNm6ennnqqU9qyESOsLvLOO+9o\n+fLlIS/wX3fddVq/fr1OnjyphoYGbdy4sdMObun0e+WefPJJ3XHHHSHPj1988cX6xz/+oTVr1gR9\nk/cP3X777Vq7dq3WrVunWbNmOdZ++umn2rlzpyTp9ddfDzqqaG/tuHHj9M9//lONjY06evSoNm3a\n1Gn77YYbbtDf/vY3HT58WJJa/g3mlltuUVlZmXbt2qWcnJw268aPH69ly5ZpwoQJGj9+vF5++WWN\nHDmyU/o7cOBAff755zp8+LAaGxu1cePGTmm3K4/Nzz77TL1799bs2bP14IMPavfu3Z3Sblepr69X\n37591bt3b+3bt6/lGA1m/PjxWr9+vU6cOKFjx45p/fr1jsd8nz591NDQELIPEydO1Lp16/TFF19I\nOn1cfvrpp+3fGIsxwuoiL7zwgr766itdf/31kqTMzEytWrXqjLr09HTdfvvt8nq9uvLKK5WZmRn2\nX/ehXjzWrFmjSy65RLm5uTp16pTGjh0rn8+n7OzsNtu77LLLtHHjRv30pz9Vnz59dPPNNwetTUlJ\n0dGjR+XxeDRw4EDHPiYmJuqFF17Q/PnzNWzYMC1YsKDN+nBrMzIyNG3aNI0YMUIDBw5UamqqLr/8\n8rZ3hsK/yy0lJUWPPfaYJkyYoIsuukgjR47UH/7wh6C1kZGRuuGGG9S3b1/H9sePH6+nnnpKY8aM\n0aWXXqpLL720zRexH7fzw/lgzxEZGaknnnhCo0ePltvtVkpKSshtDWdf/PjYDOdUX7j7+P3339dD\nDz3UMoIMdVu30z45m9pwlkvSpEmT9PLLLyslJUWJiYktp62DSU9P189//vOW/XXPPffI6/W2Wd+/\nf3+NGzdOqampmjJlSpvfHZicnKwnn3xSP/vZz3Tq1ClFRkbqxRdf1NVXXx2y/xcK3jh8nlm6dKmi\no6O1ePFix7ovv/yyU8/Pnw+qq6s1depUvf/++2HVHzt2TFFRUTp+/LgmTJigV155RWlpaV3cy9ZO\nnTqlUaNGad26dRo6dOg5fW6gp+GU4Hko1F98Bw8e1NixY/XQQw+dox6dO+055XTvvfcqPT1do0aN\n0syZM895WFVWViohIUE33ngjYQWcA4ywAABWYIQFALACgQUAsAKBBQCwAoEFALACgQUAsAKBBQCw\nwv8DbMnA/BWkp54AAAAASUVORK5CYII=\n",
124 "text": [
125 "<matplotlib.figure.Figure at 0xaea606ec>"
126 ]
127 }
128 ],
129 "prompt_number": 6
130 },
131 {
132 "cell_type": "code",
133 "collapsed": false,
134 "input": [
135 "c6bf = frequencies(sanitise(c6b))\n",
136 "plot_frequency_histogram(c6bf, sort_key=lambda l: c6bf[l])"
137 ],
138 "language": "python",
139 "metadata": {},
140 "outputs": [
141 {
142 "metadata": {},
143 "output_type": "display_data",
144 "png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEkCAYAAAB6wKVjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGGFJREFUeJzt3XtQlNf9x/HPKhiNQIPpuLZgxYkIrqywanDUUFFEM01l\niKl4TWgwSWPb6bTNpTYXhTZVMtVONY25ODbBOtFap0Vrpg6N/jajtha1as1Qq22kEUSMQSOi8cbz\n+4OyUdkbuitn4f2a2RF2v3ues/us++E8l/PYLMuyBACAYbp1dAcAAPCGgAIAGImAAgAYiYACABiJ\ngAIAGImAAgAYyW9AHTt2TOPHj9fQoUOVlpam5cuXS5IaGhqUm5urwYMHa9KkSTpz5oznOYsXL1Zy\ncrJSU1NVUVER3t4DADotm7/zoE6cOKETJ04oIyND586d04gRI1ReXq633npLX/ziF/Xss8/q5Zdf\n1unTp1VaWqqqqirNmjVLu3fvVm1trSZOnKjDhw+rWzcGagCA9vGbHP369VNGRoYkKSYmRkOGDFFt\nba02bdqkwsJCSVJhYaHKy8slSRs3btTMmTMVHR2tpKQkDRo0SJWVlWF+CQCAzijooU11dbX27dun\nUaNGqb6+Xna7XZJkt9tVX18vSTp+/LgSExM9z0lMTFRtbW2IuwwA6AqCCqhz587poYce0rJlyxQb\nG3vdYzabTTabzedz/T0GAIAvUYEKLl++rIceekgPP/yw8vPzJbWMmk6cOKF+/fqprq5Offv2lSQl\nJCTo2LFjnufW1NQoISGhTZsZGRk6cOBAqF4DACCCpaena//+/W3u9zuCsixLc+fOlcPh0Pe//33P\n/Xl5eSorK5MklZWVeYIrLy9P69at06VLl3T06FEdOXJEmZmZbdo9cOCALMvqlLeFCxeGpTacbVPL\n+oj0WlP6YUJtJN58DVj8jqB27typNWvWaNiwYXK5XJJaDiOfP3++CgoKtGrVKiUlJWn9+vWSJIfD\noYKCAjkcDkVFRWnFihVs4gMA3BS/AXXfffepubnZ62Pvvfee1/ufe+45Pffcc7feMwBAl9a9uLi4\n+HYvtKSkRB2w2NsmKSkpLLXhbJva9tea0g9qzeqHCbWRxlcm+D1RN1xsNps6YLEAAAP5ygSmeAAA\nGImAAgAYiYACABiJgAIAw8TF9fHM0uPrFhfXp6O7GXYcJAEAhmk5fzTQd2Tn+R7lIAkAQEQhoAAA\nRiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYi\noAAARiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKgAABGIqAA\nAEYioAAARiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKgAABG\nIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKg\nAABGIqAAAEYKGFBFRUWy2+1yOp2e+4qLi5WYmCiXyyWXy6U//elPnscWL16s5ORkpaamqqKiIjy9\nBgB0ejbLsix/Bdu3b1dMTIweeeQRHTx4UJJUUlKi2NhY/fCHP7yutqqqSrNmzdLu3btVW1uriRMn\n6vDhw+rW7foctNlsCrBYAOiybDabpEDfkZ3ne9RXJgQcQWVlZSk+Pr7N/d4a27hxo2bOnKno6Ggl\nJSVp0KBBqqysvMkuAwC6spveB/XKK68oPT1dc+fO1ZkzZyRJx48fV2JioqcmMTFRtbW1t95LAECX\nE3UzT5o3b54WLFggSXrxxRf11FNPadWqVV5rW4aqbRUXF3t+zs7OVnZ29s10BQAQYdxut9xud8C6\nmwqovn37en5+7LHHNGXKFElSQkKCjh075nmspqZGCQkJXtu4NqAAAF3HjYOSkpISr3U3tYmvrq7O\n8/Mf/vAHzxF+eXl5WrdunS5duqSjR4/qyJEjyszMvJlFAECnEhfXRzabzectLq5PR3fROAFHUDNn\nztT777+vU6dOqX///iopKZHb7db+/ftls9k0cOBAvfHGG5Ikh8OhgoICORwORUVFacWKFT438QFA\nV9LYeFr+jsxrbOS78kYBDzMPy0I5zBxAFxP40PHPvxc5zLwFM0kAAIxEQAEAjERAAQCMREABAIxE\nQAEAjERAAQCMREABAIxEQAEAjERAAQCMREABAIxEQAEAjERAAQCMREABAIxEQAEAjERAAQCMREAB\nAIxEQAEAjERAAQCMREABAIxEQAEAjERAAQCMREABAIxEQAEAjERAAQCMREABAIxEQAEAjERAAQCM\nREABAIxEQAEAjERAAQCMREABAIxEQAEAjERAAQCMREABwE2Ii+sjm83m9xYX16ejuxnRbJZlWbd9\noTabOmCxABAyNptNUqDvsc+/6wLXt6f2+vpI5ysTGEEBAIxEQAEAjERAAQCMREABAIxEQAEAjERA\nAQCMREABAIxEQAEAjERAAcD/MDuEWZhJAgD+pz0zODCTROgwkwQAIKIQUAA6NTbbRS4CCkDEaU/o\nNDaeVsvmMt+3lhqYhn1QACJOuPYVsQ+qY7APCoDR2BSHG0V1dAcAQLp2U5y/Gtvt6QyMwAgKAGAk\nAgoAYCQCCgBgJAIKAGAkAgoAYKSAAVVUVCS73S6n0+m5r6GhQbm5uRo8eLAmTZqkM2fOeB5bvHix\nkpOTlZqaqoqKivD0GgDQ6QUMqEcffVRbtmy57r7S0lLl5ubq8OHDysnJUWlpqSSpqqpKv/3tb1VV\nVaUtW7bo29/+tpqbm8PTcwBApxYwoLKyshQfH3/dfZs2bVJhYaEkqbCwUOXl5ZKkjRs3aubMmYqO\njlZSUpIGDRqkysrKMHQbANDZ3dQ+qPr6etntdkmS3W5XfX29JOn48eNKTEz01CUmJqq2tjYE3QQA\ndDW3PJNE6xQk/h73pri42PNzdna2srOzb7UrAIAI4Ha75Xa7A9bdVEDZ7XadOHFC/fr1U11dnfr2\n7StJSkhI0LFjxzx1NTU1SkhI8NrGtQEFAOg6bhyUlJSUeK27qU18eXl5KisrkySVlZUpPz/fc/+6\ndet06dIlHT16VEeOHFFmZubNLAIA0MUFHEHNnDlT77//vk6dOqX+/fvrJz/5iebPn6+CggKtWrVK\nSUlJWr9+vSTJ4XCooKBADodDUVFRWrFihd/NfwAA+ML1oAAYwYTrNnE9qI7B9aAAABGFgAIAGImA\nAgAYiYACEDZcxh23gku+AwgbLuOOW8EICgBgJAIKAGAkAgoAYCQCCgBgJAIKAGAkAgoAYCQCCgBg\nJAIKAGAkAgoAYCQCCgBgJAIKQLswvx5uF+biA9AuzK+H24URFADASAQUAMBIBBQAwEgEFADASAQU\nAMBIBBQAwEgEFADASAQUAMBIBBQAwEgEFADASAQUAMBIBBQAwEgEFADASAQUAMBIBBQAwEgEFADA\nSAQUAMBIBBQALuMOI3HJdwBcxh1GYgQFADASAQUAMBIBBQAwEgEFADASAQUAMBIBBQAwEgEFADAS\nAQUAMBIBBQAwEgEFADASAQUAMBIBBQAwEgEFADASAQUAMBIBBQAwEgEFADASAQVEiPZe9TZQPVfI\nhelslmX5v4xmOBZqs6kDFgtENJvNpkBXvZU+/78VuL49tZ/XU9v+Wil866Mz8JUJjKAAAEYioAAA\nRoq6lScnJSUpLi5O3bt3V3R0tCorK9XQ0KDp06frv//9r5KSkrR+/XrdddddoeovAKCLuKURlM1m\nk9vt1r59+1RZWSlJKi0tVW5urg4fPqycnByVlpaGpKMAgK7lljfx3bhja9OmTSosLJQkFRYWqry8\n/FYXAQDogm55BDVx4kSNHDlSK1eulCTV19fLbrdLkux2u+rr62+9lwCALueW9kHt3LlTX/rSl/Tx\nxx8rNzdXqamp1z3eer6FN8XFxZ6fs7OzlZ2dfStdAQBECLfbLbfbHbAuZOdBlZSUKCYmRitXrpTb\n7Va/fv1UV1en8ePH69ChQ9cvlPOgAEktJ9M2Np72WxMbG6+zZxuMOe+GWs6DCrWQnwd1/vx5NTY2\nSpKamppUUVEhp9OpvLw8lZWVSZLKysqUn59/s4sAOr2WcLL83gIFGNBZ3fQmvvr6ej344IOSpCtX\nrmj27NmaNGmSRo4cqYKCAq1atcpzmDkAAO3FVEdAB4rETUrUmrU+OgOmOgIARBQCCgBgJAIKAGAk\nAgoAYCQCCgBgJAIKCLH2XvkWgHe3NNURgLY+P/nWX433KcAAfI4RFADASAQUAMBIBBQAwEgEFADA\nSAQUAMBIBBQAwEgEFADASAQUuqz2nFDLybfA7ceJuuiy2nNCLSffArcfIygAgJEIKACAkQgoAICR\nCCgAgJEIKBiPo+2AromAQodoT5B8fgSd71tLTftqAZiNw8zRIThsG0AgjKAAAEYioAAARiKgAABG\nIqAAAEYioAAARiKgAABGIqAAAEYioAAARiKgAABGIqAAAEYioBAygebXY5JWAO3BXHwImUDz6zG3\nHoD2YAQFADASAQUAMBIBBQAwEgEFADASAQUAMBIBBQAwEgEFADASAQUAMBIBBQAwEgEFnwJNXcT0\nRQDCiamO4FOgqYtaapi+CEB4MIICABiJgAIAGImA6mLYrwQgUrAPqothvxKASMEICgBgJAIKAGAk\nAgoAYCQCCgBgJAIKAGCksATUli1blJqaquTkZL388svhWASuwaHjADqjkAfU1atX9d3vfldbtmxR\nVVWV1q5dq3/+85+hXoyx3G63z8faEyTtqf380PFrb/933e8tNT573Z5XSG3Y26a2/bXhbDvSajuP\nkAdUZWWlBg0apKSkJEVHR2vGjBnauHFjqBdjLH8B1TZIFurGYGkNEu+hs9BrrY+etKfX1La7Npxt\nU9v+2nC2HWm1nUfIA6q2tlb9+/f3/J6YmKja2tpQLwYA0MmFPKBstq41C8GNm+JKSkrY/wMAoWCF\n2F//+ldr8uTJnt8XLVpklZaWXleTnp5+47Yrbty4cePWRW/p6ele88RmWZalELpy5YpSUlK0detW\nffnLX1ZmZqbWrl2rIUOGhHIxAIBOLuSTxUZFRelXv/qVJk+erKtXr2ru3LmEEwCg3UI+ggIAIBSY\nSSLCjB07NiTtVFdXy+l0hqSt29l2Z7d8+XI5HA49/PDDYVtGcXGxli5d6rcmJiYmYDsmredQ/b+4\nHT799FO99tprHd2NiEBARZidO3d2dBcQRq+99pree+89/eY3vwnbMoI50tako3Ety1KgDT2R9P/i\n9OnTWrFiRUd3IyIQUCHyxhtvyOVyyeVyaeDAgZowYYLf+p/97GdKSUlRVlaWZs2aFfAv2lb+/rLd\nvXu30tPTdfHiRTU1NSktLU1VVVUB2/zwww81fPhw7d271+vjP/7xj6/7DxXMX+BXrlzRnDlz5HA4\nNG3aNF24cKFNzcKFC7Vs2TLP788//7yWL1/epq66ulqpqal69NFHlZKSotmzZ6uiokJjx47V4MGD\ntXv3bq99WL16tdLT05WRkaFHHnnEa83Pf/5zvfLKK5KkH/zgB8rJyZEkbdu2TXPmzPH6nJ/+9KdK\nTU0NuO5a+x3ofWj15JNP6sMPP9T999+vX/7ylz7rWtu+dvSyZMkSlZSU+Ky/9vP2r3/9y2/b7XH1\n6lU98cQTSktL0+TJk/XZZ595rWtqatIDDzygjIwMOZ1OrV+/3m+71dXVSklJUWFhoZxOp2pqavzW\nBzPik6Rf/OIXcjqdcjqd1332vC1/yJAhQb22Vg8++KBGjhyptLQ0rVy50mfd/Pnz9Z///Ecul0s/\n+tGPAvZ5zZo1GjVqlFwul5588kk1NzcHfE6nEerDzLu6y5cvW1lZWdbmzZt91uzZs8dyOp3WhQsX\nrLNnz1qDBg2yli5dGlT7MTExfh9/4YUXrKefftr6zne+0+bw/msdPXrUSktLsw4dOmS5XC7rH//4\nh8/affv2WePGjfP87nA4rJqaGr9t22w26y9/+YtlWZZVVFRkLVmypE1ddXW1NXz4cMuyLOvq1avW\nPffcYzU0NHhtLyoqyvrggw+s5uZma8SIEVZRUZFlWZa1ceNGKz8/v81zPvjgA2vw4MHWJ598YlmW\n5bVdy7KsXbt2WdOmTbMsy7Luu+8+a9SoUdbly5et4uJi680332xTX1lZaWVkZFgXL160GhsbreTk\nZJ/rLtj34VpJSUmePvvTuv5aLVmyxCouLvZaezOft0Cfs9Y+REVFWQcOHLAsy7IKCgqsNWvWeK3d\nsGGD9fjjj3t+//TTTwO23a1bN+tvf/tbwH4E29/W9+H8+fPWuXPnrKFDh1r79u3zufxgX1ur1s/Y\n+fPnrbS0NJ/rsbq6+rp1509VVZU1ZcoU68qVK5ZlWda8efOs1atXB/XczoARVIh973vfU05Ojh54\n4AGfNdu3b9fUqVPVs2dPxcbGKi8vL+AmjGAtWLBAFRUV2rNnj5599lm/tSdPnlR+fr7eeecdv/sS\nMjIydPLkSdXV1enAgQOKj49XQkKC37b79++v0aNHS5LmzJmjHTt2tKkZMGCA7r77bu3fv18VFRUa\nPny44uPjvbY3cOBADR06VDabTUOHDtXEiRMlSWlpaaqurm5Tv23bNhUUFKhPn5aTpH212zpybGxs\nVM+ePTV69Gjt2bNHO3bsUFZWVpv6nTt3Kj8/Xz169FBMTIymTJnid90F8z6EWzg/bwMHDtSwYcMk\nSSNGjPC6LiRp2LBh+vOf/6z58+drx44diouLC9j2gAEDlJmZGZJ+StKOHTs0depU9erVS71799bU\nqVO1fft2n/XBvrZWy5YtU0ZGhkaPHq2amhodOXLEa1173vutW7dq7969GjlypFwul7Zt26ajR48G\n/fxIF/LDzLuyt99+W8eOHQu4fdlms133IQ3Vl4UknTp1Sk1NTbp69aouXLigO++802ftXXfdpQED\nBmj79u1KTU312+60adO0YcMGnThxQjNmzAjYj2v3YViW5XOfxmOPPaa33npL9fX1Kioq8tneHXfc\n4fm5W7du6tGjh+fnK1eueF1+MO9rdHS0Bg4cqLfffltjxozRsGHDtG3bNv373//2+p60d90F+z60\nV1RU1HWbevxtOgzn5+3a9dK9e3ef/UhOTta+ffv07rvv6oUXXlBOTo5efPFFv2337t07ZP2UvL8P\n/tZHsK9NapmDc+vWrdq1a5d69uyp8ePH6+LFiyHpd2FhoRYtWhSStiINI6gQ2bt3r5YuXRrUzu2v\nfvWrKi8v12effabGxkZt3rw5ZF9c3/rWt/TSSy9p1qxZAbdv9+jRQ7///e+1evVqrV271m/t9OnT\ntXbtWm3YsEHTpk0L2I+PPvpIu3btkiS98847XkcjUst2+y1btmjPnj2aPHlywHaDNWHCBP3ud79T\nQ0ODJHn+9SYrK0tLlizRuHHjlJWVpddff13Dhw/3Wjt27Fj98Y9/1MWLF3Xu3Dm9++67ftddsO9D\ne9ntdp08eVINDQ26ePGiNm/e7LM2nJ+3YNXV1alnz56aPXu2nn76af3973+/rcuXWtZzeXm5Lly4\noKamJpWXl4dsfZw9e1bx8fHq2bOnDh065Fnn3sTGxqqxsTGodnNycrRhwwZ9/PHHklo+xx999FFI\n+hwJGEGFyKuvvqrTp09r/PjxkqR7771Xb775ptdal8ul6dOnKz09XX379tW9994b9F+1/r5YVq9e\nrTvuuEMzZsxQc3OzxowZI7fbrezsbJ9t3Xnnndq8ebNyc3MVGxurr3/9615rHQ6Hzp07p8TERNnt\n9oB9TElJ0auvvqqioiINHTpU8+bN81obHR2tCRMmKD4+3u9ru/Gxa3/39jyHw6Hnn39e48aNU/fu\n3TV8+HD9+te/9tp2VlaWFi1apNGjR6tXr17q1auXzy+ukSNHKi8vT8OGDZPdbpfT6dQXvvAFn/0O\n9n3w91q8iY6O1oIFC5SZmamEhAQ5HA6fz73x8xbMZrNg++FvvVzr4MGDeuaZZzyj32AOs25PiAZT\n63K59M1vftPz+h9//HGlp6cH3aa/Zdx///16/fXX5XA4lJKS4tms683dd9+tsWPHyul06mtf+5rf\na+YNGTJEL730kiZNmqTm5mZFR0drxYoV+spXvuLzOZ0JJ+oaoKSkRDExMXrqqaf81n3yySdBbQuP\nJM3NzRoxYoQ2bNige+65p6O7E5Smpib17t1b58+f17hx47Ry5UplZGS0qauurtaUKVN08ODBDugl\nEPnYxGeIQH8BHj9+XGPGjNEzzzxzm3oUflVVVUpOTtbEiRMjJpwk6YknnpDL5dKIESP0jW98w2s4\ntTLpfCIg0jCCAgAYiREUAMBIBBQAwEgEFADASAQUAMBIBBQAwEgEFADASP8PSurZvxafpIkAAAAA\nSUVORK5CYII=\n",
145 "text": [
146 "<matplotlib.figure.Figure at 0xae9b112c>"
147 ]
148 }
149 ],
150 "prompt_number": 7
151 },
152 {
153 "cell_type": "code",
154 "collapsed": false,
155 "input": [
156 "plot_frequency_histogram(c6bf)"
157 ],
158 "language": "python",
159 "metadata": {},
160 "outputs": [
161 {
162 "metadata": {},
163 "output_type": "display_data",
164 "png": "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\nW7duVVVVldatW6d//etfoZ6Nwdxhqg3ntLtObfv+aLSmh9bWm13bccstXLXhnLb32s9PU7j+8Zcb\nfr9a0/4e3O7ga7uSkAdUZWWlhgwZoqSkJEVHR2vWrFnatGlTqGdjMHeYasM57a5Te+sfjRd08x8R\n3380WtNDa+vNru245Rau2nBOu/NrCagQqaur08CBAz2/JyYmqq6uLtSzAQB0cSEPKJuNM+8BoD1u\n3uRaUlLSPfdvWSH2t7/9zZo6darn98WLF1ulpaU31KSnp9+84ZYHDx48eHTTR3p6utc8sVmWZSmE\nLl++rJSUFG3btk1f/vKXlZmZqXXr1mnYsGGhnA0AoIsL+cVio6Ki9Ktf/UpTp07VlStXNH/+fMIJ\nANBqIR9BAQAQClxJohPU1NTI6XSGfT7FxcVatmxZyKa3YsUKORwOPfjggyGbZluWxfjx40Na35Ye\nYmJiWlWP1vnkk0/06quvdnYb6GQEVBcW6iMqX331Vb377rv6zW9+E9LpttauXbvCWh8Mjla9lWVZ\nCtUGmdOnT2vlypUhmRYiFwEVQvfff79Gjx6ttLQ0rVq1ym/t5cuXNW/ePDkcDs2YMUPnz5/3Wbtm\nzRqlp6crIyNDDz30kN/p/uxnP1NKSoqysrL073//22/t2rVrNWbMGLlcLj3++ONqaWnxWfv444/r\ngw8+0L333qtf/vKXfqcrST/96U+VmpqqrKwszZkzx+9I7sqVK3rssceUlpamqVOn6rPPPvM77daO\nXlpT/8EHH2jkyJHat29fq+Zxs5qaGqWmpurhhx9WSkqK5s6dq4qKCo0fP15Dhw7Vnj17bqkfNmxY\n0MvhF7/4hZxOp5xOp5YvXx5UL8Gub9evQ4G+u5qaGqWkpKiwsFBOp1O1tbVe65qbm3XfffcpIyND\nTqdTGzZs8NvzwoUL9d///lcul0s/+tGP/M7/+tHv0qVLVVJS4rX2xz/+8Q2h52sLw89//nO9/PLL\nkqQf/OAHysnJkSRt375d8+bNu6V+z549Sk9P14ULF9Tc3Ky0tDRVVVV57eGFF1644ft69tlntWLF\nCp+f7/XXX5fL5ZLL5dLgwYM1adIkn7VdUqgPM+/OGhsbLcuyrHPnzllpaWnWxx9/7LWuurrastls\n1l//+lfLsiyrqKjIWrp0qdfa999/3xo6dKhnWtfm4c3evXstp9NpnT9/3vr000+tIUOGWMuWLfNa\nW1VVZU2bNs26fPmyZVmWtWDBAmvNmjV+P19SUpLPz3S9yspKKyMjw7pw4YLV1NRkJScn++yjurra\nioqKsg4ePGhZlmUVFBRYa9eu9Tv9mJiYgD20pr66utpKS0uzDh8+bLlcLuuf//xnSKYZFRVlvf/+\n+1ZLS4s1atQoq6ioyLIsy9q0aZOVn5/vtT6Y5XDtez537px19uxZa/jw4db+/fv99hLs+taadeja\ntHv06GH9/e9/970wLMvauHGj9eijj3p+/+STT/zW19TUWGlpaX5rrs3/+rqlS5daxcXFXmv3799v\nTZgwwfO7w+Gwamtrb6nbvXu3NWPGDMuyLOuee+6xxowZY126dMkqLi623njjDa/Tfu6556wnn3zS\n+s53vnPLaTU3f66RI0dalmVZV65cse666y6//6avuXTpkpWVlWVt2bIlYG1XwggqhJYvX66MjAyN\nHTtWtbW1Onr0qM/agQMHauzYsZKkefPmaefOnV7rtm/froKCAvXrd/WkvPj4eJ/T3LFjh6ZPn67e\nvXsrNjZWeXl5Pje5bNu2Tfv27dPo0aPlcrm0fft2VVdXB/tR/dq1a5fy8/PVq1cvxcTEaNq0aX43\n/QwePFgjRoyQJI0aNUo1NTUh6aM1Tp48qfz8fL399tsh2z84ePBgDR8+XDabTcOHD9fkyZMlSWlp\naV4/Y7DLYefOnZo+fbr69Omjvn37avr06dqxY4ffXoJd31qzDl0zaNAgZWZm+q0ZMWKE/vznP2vh\nwoXauXOn4uLi/NYHmmdbZGRk6OTJk6qvr9fBgwcVHx+vhISEW+qujaCbmprUu3dvjR07Vnv37tXO\nnTuVlZXlddqLFi1SRUWF9u7dq6efftpnD4MGDdKdd96pAwcOqKKiQiNHjvT7b/qa733ve8rJydF9\n990X/AfuAkJ+mHl35Xa7tW3bNu3evVu9e/fWxIkTdeHCBZ/11+/DsCzL5z4Nm80W9D/Wm2sDva+w\nsFCLFy8Oatqt0do+brvtNs/PPXv29Lv5KVzuuOMODRo0SDt27FBqampIpnn95+rRo4d69erl+fny\n5ct+6/0tB2/LN9A+sbaub8Gse3379g1Yk5ycrP379+udd97Rc889p5ycHD3//PMB3xdIVFTUDZum\nA607M2bM0MaNG3XixAnNmjXLa010dLQGDx6st956S+PGjdOIESO0fft2/ec///G5bpw6dUrNzc26\ncuWKzp8/r9tvv91nD4888ojefPNNNTQ0qKioKOBnfOutt3Ts2LFuuU+OEVSIfPrpp4qPj1fv3r11\n+PBh7d6922/9hx9+6Kl5++23ff6f2aRJk/S73/1OjY2NkuT5rzdf/epXVV5ers8++0xNTU3asmWL\nzz9EOTk52rhxoz766CPPdD/88MOAnzMY48eP1x//+EdduHBBZ8+e1TvvvGP8QQW9evXS73//e61Z\ns0br1q3r7Hb8ysrKUnl5uc6fP6/m5maVl5f7XH+uCXZ9a8061Br19fXq3bu35s6dqyeffFL/+Mc/\n/NbHxsaqqakp4HTtdrtOnjypxsZGXbhwQVu2bPFbP3PmTK1bt04bN27UjBkzfNZlZWVp6dKlmjBh\ngrKysvTaa69p5MiRPuu/9a1v6cUXX9ScOXP87jOTru6r3rp1q/bu3aupU6f6rd23b5+WLVvW6Qcm\ndRZGUCFy77336rXXXpPD4VBKSopnc4o3NptNKSkpeuWVV1RUVKThw4drwYIFXmsdDoeeffZZTZgw\nQT179tTIkSP161//2muty+XSzJkzlZ6erv79+/vd7DJs2DC9+OKLmjJlilpaWhQdHa2VK1fqK1/5\nit++gzF69Gjl5eVpxIgRstvtcjqd+sIXvhD0dFszGghGMPU2m0233367tmzZotzcXMXGxurrX/96\nu6fp63dv7w92ObhcLn3zm9/0fL+PPvqo0tPT/fYS7Pp28zp09913BxxFBbMsDh06pKeeesozkgx0\nCPmdd96p8ePHy+l06mtf+5rP+8pFR0dr0aJFyszMVEJCghwOh99+HA6Hzp49q8TERNntdp91WVlZ\nWrx4scaOHas+ffqoT58+PkN9zZo1uu222zRr1iy1tLRo3Lhxcrvdys7O9tnzpEmTFB8fH3DZvfLK\nKzp9+rQmTpwoSbr77rv1xhtv+H1PV8KJugiL5uZm9e3bV+fOndOECRO0atUqZWRkdHgfH3/8caft\n1zJFTU2Npk2bpkOHDrX6vSUlJYqJidETTzwRhs66p5aWFo0aNUobN27UXXfd1dntGI1NfAiLxx57\nTC6XS6NGjdI3vvGNTgmn48ePa9y4cXrqqac6fN6mac9mOtM3z0aSqqoqJScna/LkyYRTEBhBAQCM\nxAgKAGAkAgoAYCQCCgBgJAIKAGAkAgoAYCQCCgBgpP8D+njZv7/d4VMAAAAASUVORK5CYII=\n",
165 "text": [
166 "<matplotlib.figure.Figure at 0xaea4c52c>"
167 ]
168 }
169 ],
170 "prompt_number": 8
171 },
172 {
173 "cell_type": "code",
174 "collapsed": false,
175 "input": [
176 "plot_frequency_histogram(normalised_english_counts)"
177 ],
178 "language": "python",
179 "metadata": {},
180 "outputs": [
181 {
182 "metadata": {},
183 "output_type": "display_data",
184 "png": "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\nMEAjR45s8cIJ6Uzo9OrVq+mii1DX5aKLrsVFFwDCiVMmOM6wIiIiVFhYqNzcXAUCAc2bN0/Jyckq\nKiqSJOXn5+vQoUPKzMxUbW2tevTooRUrVqiiokLR0dEtrgsAQHs4zrAuSAPMsLoUMywA4aTdl7UD\nABAuCCwAgBUILACAFQgsAIAVCCwAgBUILACAFQgsAIAVCCwAgBUILACAFQgsAIAVCCwAgBUILACA\nFQgsAIAVCCwAgBUILACAFQgsAGEnJqaPXC6X4y0mpk9Xt4kLjA9wvMjxAY4IR7wuL158gCMAwHoE\nFgDACgQWAMAKBBYAwAoEFgDACgQWAMAKBBYAwAoEFgDACgQWAMAKBBYAwAoEFgDACkEDq7S0VElJ\nSUpISNDSpUtbrFm4cKESEhLk9XpVXl7e9P1nnnlGQ4YMUVpamu68807V19efv84BABcVx8AKBAJa\nsGCBSktLVVFRobVr12rv3r3NakpKSnTgwAHt379fq1at0vz58yVJVVVVevXVV7V792598MEHCgQC\n+vOf/9x5IwEAdGuOgVVWVqb4+HjFxcUpMjJSeXl5Ki4ublazYcMGzZkzR5KUlZWlo0eP6vDhw4qJ\niVFkZKROnDihxsZGnThxQm63u/NGAgDo1hwDq6amRrGxsU3LHo9HNTU1IdX06dNHixYt0rXXXqsB\nAwboqquu0k033XSe2wcAXCwcA+vMZ9IE19Jnl3z88cd6/vnnVVVVpYMHD+rYsWP605/+1L4uAZyD\nDznExSbC6U632y2/39+07Pf75fF4HGuqq6vldrvl8/k0evRo9e3bV5I0bdo0vf3225o5c+Y5j1NQ\nUND0dU5OjnJyctozFuCiUlf3tYJ9yGFdXWi/dAJdxefzyefzhVZsHDQ0NJhBgwaZyspKU19fb7xe\nr6moqGhWs2nTJjNx4kRjjDE7duwwWVlZxhhjysvLzZAhQ8yJEyfM6dOnzezZs01hYeE5jxGkBXQy\nSUYyQW48R+GoOz933XlscOb0vDrOsCIiIlRYWKjc3FwFAgHNmzdPycnJKioqkiTl5+dr0qRJKikp\nUXx8vKKiorR69WpJUnp6umbPnq0RI0aoR48eGjZsmO677752JTAAAK7vEq3rGnC5WjwHZqOYmD7f\nHaZpXa9evVVbe+QCdRTcmfOUwfZ/93mOupPu/Nx157HBmVMmEFjnkY0/ZDb2jDO683PXnccGZ06Z\nwFszAQCsQGABAKxAYAEArEBgAQCsQGABAKxAYAEArEBgAQCsQGABAKxAYAEArEBgAQCsQGABAKxA\nYAEArEBgAQCsQGABAKxAYAEArEBgAQCsQGABAKxAYAEArEBgwSoxMX3kcrkcbzExfbq6TQCdgMCC\nVerqvpZkHG9nauxEIAOtI7DQ5fhP+nvdPZCBjojo6gaA7/+TdqpxXZhmAIQtZlgAACsQWAAuCA79\noqM4JAjgguDQLzqKGRYAwAoEFgDACkEDq7S0VElJSUpISNDSpUtbrFm4cKESEhLk9XpVXl7e9P2j\nR49q+vTpSk5OVkpKinbu3Hn+OgcAXFQcAysQCGjBggUqLS1VRUWF1q5dq7179zarKSkp0YEDB7R/\n/36tWrVK8+fPb7rvV7/6lSZNmqS9e/fq/fffV3JycueMAgDQ7TkGVllZmeLj4xUXF6fIyEjl5eWp\nuLi4Wc2GDRs0Z84cSVJWVpaOHj2qw4cP65tvvtG2bds0d+5cSVJERISuvPLKThoGAKC7cwysmpoa\nxcbGNi17PB7V1NQEramurlZlZaX69eunu+++W8OGDdO9996rEydOnOf2AQAXC8fAcrlCu8TUmOaX\nqrpcLjU2Nmr37t36xS9+od27dysqKkrPPvts+zsFAFzUHP8Oy+12y+/3Ny37/X55PB7Hmurqarnd\nbhlj5PF4lJmZKUmaPn16q4FVUFDQ9HVOTo5ycnLaOg4AXSAmpk/Q9zbs1au3amuPXKCOYBufzyef\nzxdasXHQ0NBgBg0aZCorK019fb3xer2moqKiWc2mTZvMxIkTjTHG7Nixw2RlZTXdl52dbT766CNj\njDGLFy82jzzyyDmPEaQFq0gykglyC6/xhkPPbekhHPrtTLbti87qNxzGhq7h9Lw6zrAiIiJUWFio\n3NxcBQIBzZs3T8nJySoqKpIk5efna9KkSSopKVF8fLyioqK0evXqpvVfeOEFzZw5U99++60GDx7c\n7D4AANrC9V2idV0DLtc558BsdeacX7CxhNd4w6HntvQQDv12Jtv2RWf1Gw5jQ9dwygTe6QIAYAUC\nCwBgBQILAGAFAgsAYAUCCwBgBQILAGAFAgsAYAUCCwBgBQILAGAFAgsAYAUCCwBgBQILAGAFAgsA\nYAUCCwBgBQILAGAFAgsAYAUCCwBgBQILAGAFAgsAYAUCCwBgBQILAGAFAgsAYAUCCwBgBQILAGAF\nAgsAYAUCCwBgBQILAGAFAgsAYIWggVVaWqqkpCQlJCRo6dKlLdYsXLhQCQkJ8nq9Ki8vb3ZfIBBQ\nRkaGJk+efH46RlAxMX3kcrkcbzExfbq6TQBoE8fACgQCWrBggUpLS1VRUaG1a9dq7969zWpKSkp0\n4MAB7d+/X6tWrdL8+fOb3b9ixQqlpKTI5XKd/+7Rorq6ryUZx9uZGgCwh2NglZWVKT4+XnFxcYqM\njFReXp6Ki4ub1WzYsEFz5syRJGVlZeno0aM6fPiwJKm6ulolJSW65557ZIzppCEAFx6zWODCcwys\nmpoaxcbGNi17PB7V1NSEXPPggw/queeeU48enCpD98IsFrjwHJMk1MN4P549GWO0ceNGXX311crI\nyGB2BQDosAinO91ut/x+f9Oy3++Xx+NxrKmurpbb7dbf//53bdiwQSUlJTp16pRqa2s1e/ZsrVmz\n5pzHKSgoaPo6JydHOTk57RwOAMAmPp9PPp8vtGLjoKGhwQwaNMhUVlaa+vp64/V6TUVFRbOaTZs2\nmYkTJxpjjNmxY4fJyso6Zzs+n8/ccsstLT5GkBasIslIJsit88fblj7CoWfb+u3MPmzbF53VbziM\nDV3D6Xl1nGFFRESosLBQubm5CgQCmjdvnpKTk1VUVCRJys/P16RJk1RSUqL4+HhFRUVp9erVLW6L\nqwQBAB3h+i7Ruq4Bl6vbnOM6E8rBxtL5421LH+HQs239Sp33XNu2Lzqr33AYG7qGUyZw+R4AwAoE\nFgDACgQWAMAKBBYAwAoEFgDACgQWAMAKBBYAwAoEFgDACgQWAMAKBBYAwAoEFgDACgQWAMAKBBYA\nwAoEFgDACgQWAOvFxPSRy+Vq9RYT06erW8R54PgBjgBgg7q6r+X0+Vl1dXyAbHfADAsAYAUCCwBg\nBQILAGAFAgvoZMEuCOCiACA0XHQBdLJgFwScqeGiACAYZlgAACsQWAAAKxBYAAArEFgA0AoumAkv\nXHQBAK3ggpnwwgwLAGAFAgsAYIWQAqu0tFRJSUlKSEjQ0qVLW6xZuHChEhIS5PV6VV5eLkny+/0a\nN26chgwZotTUVK1cufL8dX6R4Vg60H3w89xOJojGxkYzePBgU1lZab799lvj9XpNRUVFs5pNmzaZ\niRMnGmOM2blzp8nKyjLGGPP555+b8vJyY4wxdXV15vrrrz9n3RBasIYkI5kgt/aNty3b7qzazmJb\nv53Zs237IlzGFry+83/uwmG73YHTuIPOsMrKyhQfH6+4uDhFRkYqLy9PxcXFzWo2bNigOXPmSJKy\nsrJ09OhRHT58WNdcc43S09MlSdHR0UpOTtbBgwfbHKoID/xWCKArBQ2smpoaxcbGNi17PB7V1NQE\nramurm5WU1VVpfLycmVlZXW0Z3SR76+Yav12pgYAzr+ggeVyhXbJ5pmZXMvrHTt2TNOnT9eKFSsU\nHR3dxhYBAAjh77Dcbrf8fn/Tst/vl8fjcayprq6W2+2WJDU0NOi2227TrFmzNHXq1BYfo6CgoOnr\nnJwc5eTktGUMAABL+Xw++Xy+0IqDnQBraGgwgwYNMpWVlaa+vj7oRRc7duxouuji9OnT5q677jIP\nPPBAu06w2UadeCK1LdsOh9pwGFtnCod9HA77IlzGFry+83/uwmG73YHTuIPOsCIiIlRYWKjc3FwF\nAgHNmzdPycnJKioqkiTl5+dr0qRJKikpUXx8vKKiorR69WpJ0ltvvaXXX39dQ4cOVUZGhiTpmWee\n0YQJE0JLU1grJqZP0PNZvXr1Vm3tkQvUEQDbub5LtK5rwOVSF7dw3pw5bxdsLO0bb1u2TW3nv6bC\nYXzhsC/CZWzB6zv/5y4cttsdOGUC73QBALACgQUAsAKBBQCwAoEFXAR4lxJ0B3weFnAR4HOd0B0w\nw+pCwX7r5TdeAPgeM6wuFOy3Xn7jBYDvMcMCAFiBwAIAWIHAAgBYgcACAFiBwAIAWIHAAgBYgcAC\ncFHhXT/sxd9hAbio8K4f9mKGBQCwAoEFALACgQV8h/d2BMIb57CA7/DejkB4Y4YFALACgQUAsAKB\nBQCwAoEFALACgQUAsAKBBQCwAoEFALACgQUAsAKBBQCwQtDAKi0tVVJSkhISErR06dIWaxYuXKiE\nhAR5vV6Vl5e3aV0AAEJiHDQ2NprBgwebyspK8+233xqv12sqKiqa1WzatMlMnDjRGGPMzp07TVZW\nVsjrGmNMkBasIslI5ke3//xoWQ71Han9vj48a1sfX2fVtuQ///lPG56/7vx8tF7blv0WLs9zODx3\n5/e11v7Xse2cxu04wyorK1N8fLzi4uIUGRmpvLw8FRcXN6vZsGGD5syZI0nKysrS0aNHdejQoZDW\nvTj4qO30bYde6/N1fQ/21bLf2lPbefusrdvuPhwDq6amRrGxsU3LHo9HNTU1IdUcPHgw6LpAZ2rp\n3deXLFnCO7AHwX5rnx/vtx/vM/ZbxzkGlssV2rtTn5nFAeHl+3df/+FtcbPlMzX4IfZb+5y73xbr\nx/uxPfuNXyB+wOlY4o4dO0xubm7T8tNPP22effbZZjX5+flm7dq1TcuJiYnm0KFDIa1rjDFer/fH\nPxncuHHjxu0ivXm93lYzyfHzsEaMGKH9+/erqqpKAwYM0F/+8hetXbu2Wc2UKVNUWFiovLw87dy5\nU1dddZX69++vvn37Bl1Xkvbs2ePUAgAAkoJ8gGNERIQKCwuVm5urQCCgefPmKTk5WUVFRZKk/Px8\nTZo0SSUlJYqPj1dUVJRWr17tuC4AAO3hMpyAAgBYgHe6CANVVVVKS0vr9McpKCjQ8uXLz9v2Vq5c\nqZSUFN11113nZXvt2Q9jxoxp8+MEW6c9fURHR7e5D4Tmm2++0csvv9zVbSAMEFgXkVCv+gzVyy+/\nrM2bN+uPf/zjed1uW7z11lsXZJ1gzve+tZ0x5rxdPfz111/rpZdeOi/bgt0IrE506623asSIEUpN\nTdWrr77qWNvY2KhZs2YpJSVFM2bM0MmTJ1utXbNmjbxer9LT0zV79mzH7f7f//2fEhMTlZ2drY8+\n+six9vXXX1dWVpYyMjJ0//336/Tp063W3n///frkk080YcIEPf/8847b/e1vf6ukpCRlZ2frzjvv\ndJzlBQIB3XfffUpNTVVubq5OnTrluO32zGzass4nn3yiYcOG6d13323z45xVVVWlpKQk3X333UpM\nTNTMmTP15ptvasyYMbr++uv1zjvvtLhOcnJyyPvid7/7ndLS0pSWlqYVK1YE7SXU19oPXz/Bnruq\nqiolJiZqzpw5SktLU3V1dau1x48f180336z09HSlpaXpr3/9a6u1jz76qD7++GNlZGTo17/+dat1\nZ3v44ex42bJlWrJkyTl1jz32WLMQdDr68Nxzz+mFF16QJD344IMaP368JGnr1q2aNWvWOfXvvPOO\nvF6v6uvrdfz4caWmpqqioqLFbS9evLjZ8/X4449r5cqVLdYWFRUpIyNDGRkZGjhwoG688cYW67o1\np8va0TFHjhwxxhhz4sQJk5qaar766qsW6yorK43L5TJvv/22McaYuXPnmmXLlrVY++GHH5rrr7++\naVtnH6Mlu3btMmlpaebkyZOmtrbWxMfHm+XLl7dYW1FRYSZPnmwaGxuNMcbMnz/frFmzxnF8cXFx\nrY7prLKyMpOenm7q6+tNXV2dSUhIaLWHyspKExERYd577z1jjDG33367ef311x23Hx0d7Xh/e9ap\nrKw0qampZt++fSYjI8O8//77Hdrm2XF9+OGH5vTp02b48OFm7ty5xhhjiouLzdSpU1tdJ5R9cfZ5\nPnHihDl27JgZMmSIKS8vb7WXUF9rbXn9nN12jx49zH//+99Wa85at26duffee5uWv/nmm1Zrq6qq\nTGpqatBtnu3hh7XLli0zBQUF59SVl5ebsWPHNi2npKSY6urqFre5c+dOM2PGDGOMMT/5yU9MVlaW\naWhoMAUFBWbVqlUtrvPEE0+Yhx56yPzyl79s8c95zqqqqjLDhg0zxhgTCATM4MGDHX+mjTGmoaHB\nZGdnm40bNzrWdUfMsDrRihUrlJ6erlGjRqm6ulr79+9vtTY2NlajRo2SJM2aNUvbt29vsW7r1q26\n/fbb1afPmT8U7N27d6vb3LZtm6ZNm6aePXuqV69emjJlSquHabZs2aJ3331XI0aMUEZGhrZu3arK\nyspQh9qqt956S1OnTtWll16q6OhoTZ482fFQ0cCBAzV06FBJ0vDhw1VVVdXhHtrjiy++0NSpU/XG\nG2+cl/OLAwcO1JAhQ+RyuTRkyBDddNNNkqTU1NRWxxjqvti+fbumTZumyy+/XFFRUZo2bZq2bdvW\nai+hvtba8vo567rrrtPIkSMdayRp6NCh+ve//61HH31U27dvV0xMTKu1wR6zPdLT0/XFF1/o888/\n13vvvafevXvL7Xa3WHt2hl1XV6eePXtq1KhR2rVrl7Zv367s7OwW13nyySf15ptvateuXXrkkUda\n7eO6665T3759tWfPHr355psaNmyY48+0dObNxsePH6+bb7459AF3E46XtaP9fD6ftmzZop07d6pn\nz54aN26c6uvrW63/4TkQY0yr50RcLlfIP8A/rg223pw5c/T000+HtO1QtbWHyy67rOnrSy65xPFw\nVWe66qqrdN1112nbtm1KSkrq8PZ+OK4ePXro0ksvbfq6sbEx6DpO+6Klfex0Tq29r7VQXndRUVFB\nayQpISFB5eXl2rRpk5544gmNHz9ev/nNb0Ja10lERESzQ9lOr58ZM2Zo3bp1OnTokPLy8lqti4yM\n1MCBA/Xaa69p9OjRGjp0qLZu3aoDBw60+tr43//+p+PHjysQCOjkyZO64oorWt3+Pffco9WrV+vw\n4cOaO3eu4/hee+01+f3+i/acHjOsTlJbW6vevXurZ8+e2rdvn3bu3OlY/9lnnzXVvPHGG63+5nbj\njTfqb3/7m44cOSJJTf+25IYbbtD69et16tQp1dXVaePGja3+5zR+/HitW7dOX375ZdN2P/vss6Dj\nDGbMmDH65z//qfr6eh07dkybNm2y4gKFSy+9VP/4xz+0Zs2aFv/gPZxkZ2dr/fr1OnnypI4fP671\n69e3+vqRQn+tteX101aff/65evbsqZkzZ+qhhx7S7t27W63t1auX6urqQtpu//799cUXX+jIkSOq\nr6/Xxo0bW6294447tHbtWq1bt04zZsxw3G52draWLVumsWPHKjs7W6+88oqGDRvWan1+fr6eeuop\n3XnnnUHPu916660qLS3Vrl27lJub22rdu+++q+XLl3fpRU5djRlWJ5kwYYJeeeUVpaSkKDExsekQ\nTEtcLpcSExP14osvau7cuRoyZIjmz5/fYm1KSooef/xxjR07VpdccomGDRumP/zhDy3WZmRk6I47\n7pDX69XVV1/teKgmOTlZTz31lH72s5/p9OnTioyM1EsvvaRrr73Wse9gRowYoSlTpmjo0KHq37+/\n0tLSdOWVV4a8zWCP0Z7/QENZx+Vy6YorrtDGjRv105/+VL169dItt9zS7m06jctphhPKY2RkZOjn\nP/950/N77733yuv1ttpLqK+1H79+MjMzg86yQn0+PvjgAz388MNNs02ny9b79u2rMWPGKC0tTZMm\nTXL8bL3IyEg9+eSTGjlypNxut1JSUlrtKSUlRceOHZPH41H//v0d+83OztbTTz+tUaNG6fLLL9fl\nl1/eatCvWbNGl112mfLy8nT69GmNHj1aPp9POTk5rfZ84403qnfv3o7778UXX9TXX3+tcePGSZIy\nMzO1atUqx767G/5wGJ3u+PHjioqK0okTJzR27Fi9+uqrSk9P75Jevvrqqy49N9bVqqqqNHnyZH3w\nwQdtXnfJkiWKjo7WokWLOqGzi9fp06c1fPhwrVu3ToMHD+7qdsIahwTR6e677z5lZGRo+PDhmj59\nepeF1cGDBzV69Gg9/PDDXfL44aIjh/VsOJxrk4qKCiUkJOimm24irELADAsAYAVmWAAAKxBYAAAr\nEFgAACsQWAAAKxBYAAArEFgAACv8P5ZWvQDqsWNNAAAAAElFTkSuQmCC\n",
185 "text": [
186 "<matplotlib.figure.Figure at 0xae9fc90c>"
187 ]
188 }
189 ],
190 "prompt_number": 9
191 },
192 {
193 "cell_type": "code",
194 "collapsed": false,
195 "input": [
196 "c6a"
197 ],
198 "language": "python",
199 "metadata": {},
200 "outputs": [
201 {
202 "metadata": {},
203 "output_type": "pyout",
204 "prompt_number": 10,
205 "text": [
206 "'CPYYL GVVIR PDDVU BCSUP QOWPW SYBYP ODBCS PBBPR CSIOZ PTSTV HYVTW PYOZC OGCRV TTPUI BVGVS YOUGZ ZSRYS BPYLY SHSYY OUGBV BCSWP OUBOU GPUIR DSPYD LTSUB OVUOU GZPYP ZSSTZ DONSB CSLNU SJPAV EBBCS ZRPTV EYHYO SUIDL ZZVHH ORSYJ PZWDP UUOUG BVWED DBCSL WORNS IEWCS YBYPO DBCSU OGCBP HBSYZ CSJSU BTOZZ OUGAE BLVER PUYSP IPAVE BBCPB OUBCS OYYSW VYBZB ODDUV MVLVU GSBBO UGPRR SZZBV BCSVY OGOUP DTOZZ TVUPO UBCSG PDDSY LPUIO PTASG OUUOU GBVBC OUNJS TOGCB USSIB VYVDD VEBPA DPRNA PGMVA LVEJP UBBVI VOBVY ZCPDD OALBC SJPLO JPZZE YWYOZ SIALB COZYS WVYBB CSVBC SYWPW SYZJS CPFSH YVTBC SUPQO ZPBBC OZDSF SDPYS SURYL WBSIE ZOUGA OHOIV YWDPL HPOYZ BLDSR OWCSY ZBCOZ VUSOZ UBTPL ASBCS ROWCS YRDSY NJPZV HHIEB LBCPB IPLJS GVBDE RNL\\n'"
207 ]
208 }
209 ],
210 "prompt_number": 10
211 },
212 {
213 "cell_type": "code",
214 "collapsed": false,
215 "input": [
216 "len(sanitise(c6b))"
217 ],
218 "language": "python",
219 "metadata": {},
220 "outputs": [
221 {
222 "metadata": {},
223 "output_type": "pyout",
224 "prompt_number": 11,
225 "text": [
226 "1573"
227 ]
228 }
229 ],
230 "prompt_number": 11
231 },
232 {
233 "cell_type": "code",
234 "collapsed": false,
235 "input": [
236 "c6as = sanitise(c6a)"
237 ],
238 "language": "python",
239 "metadata": {},
240 "outputs": [],
241 "prompt_number": 12
242 },
243 {
244 "cell_type": "code",
245 "collapsed": false,
246 "input": [
247 "frequencies(ngrams(c6as, 2))"
248 ],
249 "language": "python",
250 "metadata": {},
251 "outputs": [
252 {
253 "metadata": {},
254 "output_type": "pyout",
255 "prompt_number": 13,
256 "text": [
257 "Counter({'bc': 21, 'cs': 20, 'ou': 15, 'sy': 12, 'oz': 10, 'ug': 10, 'ub': 8, 'bv': 8, 'su': 7, 'bb': 7, 'zz': 6, 'yo': 6, 'dd': 6, 'ys': 6, 'py': 6, 'pu': 6, 'jp': 6, 've': 6, 'vy': 6, 'cp': 5, 'co': 5, 'si': 5, 'yz': 5, 'ds': 5, 'po': 5, 'bo': 5, 'eb': 5, 'vb': 5, 'vu': 5, 'sb': 4, 'zb': 4, 'yb': 4, 'dp': 4, 'pl': 4, 'pd': 4, 'pb': 4, 'pz': 4, 'bp': 4, 'js': 4, 'wp': 4, 'og': 4, 'up': 4, 'uo': 4, 'ui': 4, 'yl': 4, 'tv': 3, 'to': 3, 'lv': 3, 'lb': 3, 'yv': 3, 'sj': 3, 'sg': 3, 'sp': 3, 'sr': 3, 'ss': 3, 'sw': 3, 'zs': 3, 'zv': 3, 'zc': 3, 'al': 3, 'yw': 3, 'rn': 3, 'rp': 3, 'db': 3, 'us': 3, 'yy': 3, 'yp': 3, 'st': 3, 'ie': 3, 'gv': 3, 'gp': 3, 'zp': 3, 'gb': 3, 'gc': 3, 'pa': 3, 'pt': 3, 'pr': 3, 'bl': 3, 'wc': 3, 'ow': 3, 'od': 3, 'vh': 3, 'vt': 3, 'hy': 3, 'tp': 2, 'ts': 2, 'cb': 2, 'lw': 2, 'fs': 2, 'sh': 2, 'sl': 2, 'so': 2, 'sz': 2, 'sv': 2, 'zo': 2, 'ro': 2, 'wv': 2, 'rd': 2, 'ry': 2, 'rs': 2, 'dl': 2, 'do': 2, 'dv': 2, 'ir': 2, 'ip': 2, 'qo': 2, 'io': 2, 'ib': 2, 'gz': 2, 'ga': 2, 'av': 2, 'go': 2, 'pw': 2, 'pq': 2, 'by': 2, 'bs': 2, 'bt': 2, 'wd': 2, 'oy': 2, 'or': 2, 'ws': 2, 'iv': 2, 'zd': 2, 'ey': 2, 'er': 2, 'ns': 2, 'vi': 2, 'nj': 2, 'ho': 2, 'uu': 2, 'hh': 2, 'mv': 2, 'as': 2, 'tz': 1, 'tt': 1, 'tw': 1, 'ta': 1, 'tb': 1, 'lp': 1, 'lt': 1, 'ly': 1, 'lz': 1, 'la': 1, 'ld': 1, 'lg': 1, 'lh': 1, 'lj': 1, 'cr': 1, 'lo': 1, 'ln': 1, 'wb': 1, 'sc': 1, 'sd': 1, 'sf': 1, 'na': 1, 'zr': 1, 'ap': 1, 'wo': 1, 'zw': 1, 'zu': 1, 'zt': 1, 'zy': 1, 'ad': 1, 'ae': 1, 'zj': 1, 'ao': 1, 'rc': 1, 'hb': 1, 'rr': 1, 'rv': 1, 'yj': 1, 'yh': 1, 'yn': 1, 'hi': 1, 'de': 1, 'yd': 1, 'yr': 1, 'du': 1, 'dt': 1, 'nl': 1, 'gm': 1, 'wy': 1, 'ia': 1, 'id': 1, 'gs': 1, 'pi': 1, 'ph': 1, 'pg': 1, 'pf': 1, 'bz': 1, 'bu': 1, 'bi': 1, 'bd': 1, 'we': 1, 'ov': 1, 'op': 1, 'os': 1, 'on': 1, 'oi': 1, 'oj': 1, 'oa': 1, 'ob': 1, 'ej': 1, 'ze': 1, 'ed': 1, 'ez': 1, 'ew': 1, 'vg': 1, 'vd': 1, 'va': 1, 'vo': 1, 'oh': 1, 'nu': 1, 'vl': 1, 'vw': 1, 'vv': 1, 'vs': 1, 'uy': 1, 'uv': 1, 'ur': 1, 'un': 1, 'hp': 1, 'hs': 1, 'vm': 1})"
258 ]
259 }
260 ],
261 "prompt_number": 13
262 },
263 {
264 "cell_type": "code",
265 "collapsed": false,
266 "input": [
267 "' '.join(segment(letters(c6a).translate(''.maketrans({'B':'t', 'C':'h', 'S':'e', 'O':'i', 'U':'n', 'G':'g', 'A':'b', 'V':'o', 'N':'k', 'J':'w', 'T':'m', 'I':'d', 'P':'a', 'W':'p', 'R':'c', 'Y':'r', 'L':'y', 'D':'l', 'H':'f', 'Z':'s', 'Q':'z', 'E':'u', 'F':'v', 'M':'j'}))))"
268 ],
269 "language": "python",
270 "metadata": {},
271 "outputs": [
272 {
273 "metadata": {},
274 "output_type": "pyout",
275 "prompt_number": 14,
276 "text": [
277 "'harry good call on the nazi paper trail the attached is a memo from paris high command to goering s secretary referring to the painting and clearly mentioning sara seems like they knew about the scam our friendly ss officer was planning to pull they picked up her trail the night after she went missing but you can read about that in their report still no joy on getting access to the original miss mona in the gallery and i am beginning to think we might need to rollout a black bag job you want to do it or shall i by the way i was surprised by this report the other papers we have from the nazis at this level are encrypted using bifid or playfair style ciphers this one isnt maybe the cipher clerk was off duty that day we got lucky'"
278 ]
279 }
280 ],
281 "prompt_number": 14
282 },
283 {
284 "cell_type": "code",
285 "collapsed": false,
286 "input": [
287 "trans={'B':'t', 'C':'h', 'S':'e', 'O':'i', 'U':'n', 'G':'g', 'A':'b', 'V':'o', 'N':'k', 'J':'w', 'T':'m', 'I':'d', 'P':'a', 'W':'p', 'R':'c', 'Y':'r', 'L':'y', 'D':'l', 'H':'f', 'Z':'s', 'Q':'z', 'E':'u', 'F':'v', 'M':'j'}"
288 ],
289 "language": "python",
290 "metadata": {},
291 "outputs": [],
292 "prompt_number": 15
293 },
294 {
295 "cell_type": "code",
296 "collapsed": false,
297 "input": [
298 "''.join(sorted(trans.keys(), key=lambda k: trans[k]))"
299 ],
300 "language": "python",
301 "metadata": {},
302 "outputs": [
303 {
304 "metadata": {},
305 "output_type": "pyout",
306 "prompt_number": 16,
307 "text": [
308 "'PARISHGCOMNDTUVWYZBEFJLQ'"
309 ]
310 }
311 ],
312 "prompt_number": 16
313 },
314 {
315 "cell_type": "code",
316 "collapsed": false,
317 "input": [
318 "' '.join(segment(keyword_decipher(c6as, 'parishighcommand', 2)))"
319 ],
320 "language": "python",
321 "metadata": {},
322 "outputs": [
323 {
324 "metadata": {},
325 "output_type": "pyout",
326 "prompt_number": 17,
327 "text": [
328 "'harry good call on the nazi paper trail the attached is a memo from paris high command to goering s secretary referring to the painting and clearly mentioning sara seems like they knew about the scam our friendly ss officer was planning to pull they picked up her trail the night after she went missing but you can read about that in their report still no joy on getting access to the original miss mona in the gallery and i am beginning to think we might need to rollout a black bag job you want to do it or shall i by the way i was surprised by this report the other papers we have from the nazis at this level are encrypted using bifid or playfair style ciphers this one isnt maybe the cipher clerk was off duty that day we got lucky'"
329 ]
330 }
331 ],
332 "prompt_number": 17
333 },
334 {
335 "cell_type": "code",
336 "collapsed": false,
337 "input": [
338 "c6bs = sanitise(c6b)"
339 ],
340 "language": "python",
341 "metadata": {},
342 "outputs": [],
343 "prompt_number": 18
344 },
345 {
346 "cell_type": "code",
347 "collapsed": false,
348 "input": [
349 "len(c6bs)"
350 ],
351 "language": "python",
352 "metadata": {},
353 "outputs": [
354 {
355 "metadata": {},
356 "output_type": "pyout",
357 "prompt_number": 19,
358 "text": [
359 "1573"
360 ]
361 }
362 ],
363 "prompt_number": 19
364 },
365 {
366 "cell_type": "code",
367 "collapsed": false,
368 "input": [
369 "from itertools import permutations"
370 ],
371 "language": "python",
372 "metadata": {},
373 "outputs": [],
374 "prompt_number": 20
375 },
376 {
377 "cell_type": "code",
378 "collapsed": false,
379 "input": [
380 "list(permutations(range(4)))"
381 ],
382 "language": "python",
383 "metadata": {},
384 "outputs": [
385 {
386 "metadata": {},
387 "output_type": "pyout",
388 "prompt_number": 21,
389 "text": [
390 "[(0, 1, 2, 3),\n",
391 " (0, 1, 3, 2),\n",
392 " (0, 2, 1, 3),\n",
393 " (0, 2, 3, 1),\n",
394 " (0, 3, 1, 2),\n",
395 " (0, 3, 2, 1),\n",
396 " (1, 0, 2, 3),\n",
397 " (1, 0, 3, 2),\n",
398 " (1, 2, 0, 3),\n",
399 " (1, 2, 3, 0),\n",
400 " (1, 3, 0, 2),\n",
401 " (1, 3, 2, 0),\n",
402 " (2, 0, 1, 3),\n",
403 " (2, 0, 3, 1),\n",
404 " (2, 1, 0, 3),\n",
405 " (2, 1, 3, 0),\n",
406 " (2, 3, 0, 1),\n",
407 " (2, 3, 1, 0),\n",
408 " (3, 0, 1, 2),\n",
409 " (3, 0, 2, 1),\n",
410 " (3, 1, 0, 2),\n",
411 " (3, 1, 2, 0),\n",
412 " (3, 2, 0, 1),\n",
413 " (3, 2, 1, 0)]"
414 ]
415 }
416 ],
417 "prompt_number": 21
418 },
419 {
420 "cell_type": "code",
421 "collapsed": false,
422 "input": [
423 "[column_transposition_decipher(c6bs, p, fillvalue=' ') for p in permutations(range(4))]"
424 ],
425 "language": "python",
426 "metadata": {},
427 "outputs": [
428 {
429 "metadata": {},
430 "output_type": "pyout",
431 "prompt_number": 22,
432 "text": [
433 "['hithhnfrferteaofftnasltyorrreqthimserulrhfsetaeeiuiwsihbnrrtsioiienirhmrpytdtoeircitalnbrpnhtohorliewtshtesposotoynuwhredhhcpicmnootahashtijeanetofrneusragmxurttowleatbrtepptraaesenethhrisnrststrnfldoghaumgseseakuntiahyttnyuntnnvhigwlewfiapasrelfaiebapcmcplahethtolhwsuladseuveaeotaeutateefehlbhtrshgatliaceehtrnhgaasietufnnpurehrelittmudyinnuegicouendeeiahsuelhtnoahtieainyfdniauoenatiyefohedaluaroeryhuraeraterahiaongtwiswsaitbultaomxletoreototonaoortgbcvaipnleewfyrtaeoaduwwetrrtnlrpfpaiellrimntrowieqrecuarndotafnroteletpenrpmshnddetdewhefoypedennsneegtateeanesertgdlueosrburowhdgbrpahenyttekrertrrhnfnedoltswsianiypothmouoctyeieeponhkrnntairlteeiuremnitaphoeaohhnouumtkvsenedeeoidpwkiegtiiiosenhuufanbeuithraerhieehuayasrusiwgadsisitrlgfphiltwiisihesurmromaceisoilvdeoelusairideotnfiesobntsapofgsodrtfirpltanetrlyiosotyoessfntpheaigeaoraieitdmtaaegrhyasrrcfelrtleeanehvehivmhnassieroixlmpsjttesofbmrhndiochecnbttncompusesoehtenetfienootnwooteeriltoigdosmehoifmlroeffdtuesoflerwiiyqdbzottnrfantdigontalaepdsheamnthlpsnbtuoahaalplemnpdrshvnaiaelnhcaliskacdoaedtjghoieadgwayndetenhegeeueoeednoryyrfctemttwntgdetasuoootfwymihrgrhoesinrraofretfenpoyaissesstnhhayeulhiwpcteatuapeanlueelwahaoeluresnbiieasaeteagcdcsorepsroenselvosedudsitlteittfseoesnlnginoernteieiwwlwhteirsiilhtdsrndesrfhrntlgrsuasedadoytasadutenwitcnametertpoesytotocnyutsogcmudlpadleadotefdsbfeleahaxrsonidtieiprashicdcshipbielslnalhorfrentatoraiemklagretmrdcwsnaynwsvnuldorekutnnoutiiunnhvnieilohltefnaeatuifttacetlnnrbhbeglosnaonmifkoaronsnvnfretrcfthdetpswsucpercwtpoawfhdayisooagoaelndfigngrtebltllgfo ',\n",
434 " 'hihthnrffetreafoftanslytorrreqhtimesrurlhfestaeeiuwisibhnrtrsiioieinrhrmpydttoierctialbnrphntoohrleiwthstepsostooyunwherdhchpimcnotoahsahtjieaentorfnesuramgxutrtolweabtrtpeptaraeesnehthrsinrtsstnrflodghuamgessekaunitahtytnuyntnnvhgiwlwefipaaserlfiaebpacmpclaehthotlhswuldasevueaoetauetaetefhelbthrsghatilaceehtnrhgaasiteufnnpuerhrleitmtudiynneugiocuedneeaihseulhntoathieianydfniuaoeantieyfoehdaulareoryuhrareatreahaiontgwiwssatibutlaoxmleotretootnoaorotgcbvapinleewfrytaoeadwuwertrtlnrppfailelrmintorwiqereucardnotfanrtoeltepernpmhsndedtdweheofypdeensnnegetaeteaensetrgduleorsbuorwhgdbrapheynttkeretrrrnhfndeolstwsainipyotmhoucotyieeeopnhrknnatirtleeuirenmitpahoaeohnhoumutksvendeeeiodpkwietgiioisehnuuafnbueitrhaehrieheuaaysrsuiwagdssiitlrgfhpilwtiiisheusrmormaecisiolvedoeulsariidoetnifesbontaspogfsordtfriplatnertlyoisoytoessfnptheiageoaraeiitmdtaeagryhasrrcflerteleaenhvheivhmnassieorixmlpstjteosfbrmhnidocehcntbtnocmpsueseohtneetifenootnowoteeritloidgosemhofimlorefdftuseofelrwiiyqbdzottnrafntidgotnaleapdhseanmthplsntbuohaaapllenmpdsrhvanialenhacliksacodaetdjgohiedagwyandteenehgeueeoeednroyyfrctmettnwtgedtausootofwmyihgrrheosirnraforeftenopyasisesstnhhayuelhwipcetataupenalueelwhaaoleursenbiieaasetaegccdsoerpsoreneslvsoeddusilttetitfesoenslnignorentieeiwwlwtheisriihltdrsndserfrhntglrsauseaddotyasdautnewictnaemtetrposeyttoocynutosgcumdlapdlaedoetfdbsfeelahxarsnoiditeirpasihcdschibpiesllnlahofrretnatroaimeklgaremtrdwcsnyanwvsnudlorkeutnnouitiunnhvineiolhletfneaatiuftatceltnnbrhbgelonsaomnifokarnosnnvfrterctfhdtepsswuceprctwpowafhadyiosoaogaenldfgingtrebtlllfgo ',\n",
435 " 'htihhfnrfreteoaffntastlyorrretqhismerlurhsfeteaeiiuwshibnrrtsoiiineirmhrptydteoirictanlbrnphthoorilewsthtsepoostonyuwrhedhhcpcimnootaahshitjenaetfornuesrgamxruttwoletabretpprtaaseentehhirsnsrtsrtnfdlogahumsgesaekutniayhttynunntnvihgwelwfaiparselafieabpccmplhaettholwhsualdsueveeaoteauttaeeefhlhbtrhsgaltiaecehrtnhagaseitunfnprueherlittmuydinunegciounedeieahuselthnohatiaeinfydnaiuoneatyiefhoedlauaorerhyurearaetraihaogntwsiwsiatblutamoxlteoroetootnaoortbgcviapnelewyfrteaoaudwwterrntlrfppaeillirmnrtoweiqrceuanrdoatfnorteeltpnerpsmhnddetedwhfeoyepdennsneegttaeenaesretglduesorbruowdhgbprahneytetkrretrhrnfendotlswisanyipohtmooucteyiepeonkhrntnailrteieurmeniatpheoaohhnouumtvkseendeoeidwpkigetiiiosnehufuanebuihtrarehieehuyaasursigwadissirtlgpfhitlwisiihseurrmomcaeiosildveoleusiariedotfnieosbnstapfogsdortifrptlanterliyostoyosesftnphaeigaeoriaeidtmtaaeghryarsrceflrlteenaehevhimvhnsasireoilxmpjsttseofmbrhdniohcecbnttcnomupseosehetneftieonotwnooeterlitogidomsehiofmrloeffdteusolferiwiydqbztotnfrandtignotaalepsdhemantlhpsbntuaohalaplmenprdshnvaiealnchalsikadcoadetjhgoiaedgawynedtehnegeeueeoedonryryfcetmtwtntdgetsauoootfywmirhgrohesnirroafrtefepnoyiasssesthnhaeyulihwptceautapaenleuelawhaeoluersnibiesaaeetagdccsroeprsoesnelovseuddstiltiettsfeosenlgnineornetiewiwlhwterisilihtsdrnedsrhfrnltgrusasdeadyotaasduetnwticnmaetretpeosyottoncyustogmcudpladeladtoefsdbfleeaahxrosnitdiepirahsiccdshpibileslanlhrofrnetaotraeimkalgrtemrcdwsanynswvnludoerkuntnotuiinunhnvieliohtlefaneautifttactelnrnbhebglsonanomikfoaornsvnnfertrfcthedtpwssupcerwctpaowfdhaysioogaoalendifgnrgtelbtlglfo ',\n",
436 " 'hhithrnffterefaofatnsyltorrrehqtiemsrrulhefsteaeiwuisbihntrrsiioiienrrhmpdyttioertciablnrhpntoohreliwhtstpesotsoouynwehrdchhpmicntooashahjtieeantrofnseurmagxturtlowebatrptepatraeesnhethsrintrssntrfoldguhamegsskeauintathytunynntnvghiwwlefpiaaesrlifaepbacpmcleahtohtlshwudlasveueoaetuaeteatehfeltbhrgshaitlaecehntrhagastieunfnpeurhlreimttuidynenugoicudeneaeihesulnhtotahiieandyfnuiaoaenteiyfeohdualaeroruyhrraearteaahiotngwwisstaibtulaxomloetrteoontoarootcgbvpainelewrfytoaeawduwretrltnrppfalielmrinotrwqieruecadrnoftantroetleprenphmsneddtwdehoefydpeesnnngeeteateeanstergudlerosbourwghdbarphyentkterterrnrhfdneosltwasinpiyomthocuotiyeeoepnrhknantitrleueirnemiptahaoeonhhomuutskvedneeieodkpwitegioiishenuaufnubeirthaheriheeuaayssruiawgdssiiltrghfpiwltiiishuesromrmeaciisolevdouelsraiiodetinfebsonatspgofsrodtrfipaltnretloyisyotosesfpnthieagoeareaiimtdteaagyrharsrclferetleeanhhveihvmnsasioerimxlptsjtoesfrbmhindoechctnbtoncmspueesohnteeitfeonotonwoetertilodigoesmhfoimolredfftsueoeflriwiybqdztotnarfnitdgtonaelaphdsenamtphlstnbuhoaapallnempsdrhavnilaenahclkisaocdatedjoghideagywantdeeenhgueeeeoedrnoyfyrcmtetntwtegdtuasotoofmwyighrrehosrinrfaorfeteonpysaissesthnhauyelwhipectaatupnealeuelhwaaloeusrenibieaaseategccdseorposreenslsvoedduslittteitefsoneslingnroeniteewiwltwhesirihiltrdsnsderrfhngtlrasusaeddtoyadsauntewcitneamtterpsoeyttooycnuotsgucmdalpdaledeotfbdsfeelaxharnsoiidteripaishcsdchbipiselllnahforrtenartoamiekglarmetrwdcsynanvwsndulokreuntnoiutinunhivneoilheltfenaaitufattcletnbnrhgbelnosamoniofkanrosnnvftrertcfhtdepsswuecprtcwpwoafahdyoisooaganeldgfintgretbllflgo ',\n",
437 " 'hthihfrnfrteeofafnatstylorrrethqisemrlruhsefteeaiiwushbinrtrsoiiiniermrhptdyteioritcanblrnhpthoorielwshttspeootsonuywrehdhchpcminotoaashhijteneatfronusergmaxrtutwloetbareptprataseenthehisrnstrsrntfdolgauhmsegsakeutinaythtyunnnntvighwewlfapiareslaifeapbccpmlheattohlwshuadlsuveeeoateuatteaeehflhtbrhgsalitaeechrnthaagsetiunnfpreuhelritmtuyidnuengcoiundeeiaehuesltnhohtaiaienfdynauionaetyeifheodluaaoerrhuyreraaertaiahogtnwswisitabltuamxoltoeroteoontaorotbcgvipaneelwyrfteoaauwdwtrernltrfppaelilimrnrotweqircueandroaftnotreetlpnrepshmndedtewdhfoeyedpensnnegetteaeneasrtegludesrobrouwdghbparhnyetektrrterhnrfednotslwiasnypiohmtoocuteiyepoenkrhntaniltreiuermneiaptheaoohnhoumutvskeedneoiedwkpigteiioisnheufauneubihrtarheieheuyaasusrigawdissirltgphfitwlisiihsuerrommceaioisldevoluesiraieodtfineobsnsatpfgosdrotirfptalntrelioystyoosseftpnhaiegaoerieaidmttaeaghyrarrscelfrleteneahehvimhvnssairoeilmxpjtstsoefmrbhdinoheccbtntconmuspeoeshentefiteoontwonoeetrltiogdiomeshifomrolefdftesuolefriiwydbqzttonfarnditgntoaaelpshdemnatlphsbtnuahoalpalmneprsdhnavielancahlskiadocadtejhogiadegaywnetdehengeueeeeodornyrfycemttwnttdegtsuaootofymwirghroehsnrirofartfeeponyisasssethhnaeuyliwhptecauatpaneleeulahwaelouesrniibesaaeeatgdccsreoprosesenlosveuddstlititetsefosnelginneroneitewwilhtwersiilhitsrdnesdrhrfnlgtruassdaedytoaadsuentwtcinmeatrtepesoyottonycusotgmucdpaldealdteofsbdfleeaaxhronsitidepriahisccsdhpbiilselalnhrfornteaortaemikaglrtmercwdsaynnsvwnlduoekrunntotiuinnuhniveloihtelfaenauitftatctlenrbnhegblsnoanmoikofaonrsvnnfetrrftchetdpwssupecrwtcpawofdahysoiogoaalnedigfnrtgeltblgflo ',\n",
438 " 'hhtihrfnftreefoafantsytlorrrehtqiesmrrluhesfteeaiwiusbhintrrsioiiinerrmhpdtytieorticabnlrhnptohoreilwhsttpseotosounywerhdchhpmcintooasahhjiteenatrfonsuermgaxtrutlwoebtarpetpartaesenhtehsirntsrsnrtfodlguahmesgskaeuitnatyhtuynnnntvgihwwelfpaiaersliafepabcpcmlehatothlswhudalsvueeoeatueatetaeheflthbrghsailtaeechnrthaagsteiunnfperuhlerimttuiydneungociudneeaieheuslnthothaiiaendfynuaioaneteyifehodulaaeorruhyrreaaretaaihotgnwwsistiabtluaxmolotertoeonotarootcbgvpianeelwryftoeaawudwrterlntrpfpaleilmirnortwqeiruceadnrofatntoretelprnephsmneddtwedhofeydepesnnngeetetaeenastreguldersoboruwgdhbaprhynetketrtrernhrfdenostlwaisnpyiomhtocoutieyeopenrkhnatnitlreuiernmeipathaeoonhhomuutsvkedeneioedkwpitgeioiishneuafunuebirhtahreiheeuayassuriagwdsisilrtghpfiwtliisihuserormmecaiiosledvoulesriaioedtifnebosnastpgfosrdotrifpatlnrteloiysytoossefptnhiaegoaereiaimdtteaagyhrarrsclefrelteenahhevihmvnssaioreimlxptjstosefrmbhidnoehcctbntocnmsupeeoshneteifteoontownoeetrtliodgioemshfiomorledfftseuoelfriiwybdqzttonafrnidtgtnoaealphsdenmatplhstbnuhaoaplalnmepsrdhanvileanachlksiaodcatdejohgidaegyawntedeehngueeeeeodronyfrycmettnwttedgtusaotoofmywigrhreohsrnirfoarfteeopnysiasssethhnaueylwihpetcaautpnaeleeulhawaleouserniibeasaeaetgcdcseroporseesnlsovedudsltittietesfonselignnreonietewwilthwesriihlitrsdnsedrrhfngltraussadedtyoadasunetwctinemattrepseoytotoyncuostgumcdapldaeldetofbsdfeleaxahrnosiitderpiaihscscdhbpiislellanhfrortnearotameikgalrmterwcdsyannvswndluokerunntoituinnuhinveolihetlfeanaiutfattcltenbrnhgeblnsoamnoiokfanorsnvnfterrtfchtedpswsuepcrtwcpwaofadhyosioogaanledgifntrgetlblfglo ',\n",
439 " 'ihthnhfrefrtaeoftfnalstyrorrqethmiseurlrfhseateeuiiwishbrnrtisoieinihrmryptdoteicritlanbprnhotholrietwshetspsootyonuhwrehdhcipcmonothaasthijaeneotfrenusargmuxrtotwlaetbtreptpraeaseenthrhisrnsttsrnlfdohgaugmseesaknutihaytntyutnnnhviglwewifapsareflaibeapmccpalhehttohlwsluadesuvaeeoateuattefeehblhtsrhgtalicaeethrnghaaisetfunnuprerheltitmduyinnueigcoeundeeiashuehltnaohteiaiynfdinaueonaityeofheadluraoeyrhuarertaerhaianogtiwswasitubltoamxeltoerottoonoaorgtbcaviplneefwyrateodauwewtrtrnlprfpiaelrlimtnroiweqercurandtoafrnotleetepnrmpshdndedtewehfopyednensenegatteaeneesrtdgluoesrubrohwdgrbpaehnyttekerrtrrhnnfedlotsswiainyptohmuoocyteieepohnkrnntarilteeiuermntiapoheahohnuoumktvsneedeeoipdwkeigtiiioesnhuufabneutihrearheiehauyarsuswigasdistirlfgphlitwiisiehsumrroamcesioivldeeoluasirdieontfiseobtnsaopfgosdrftirlptaentrylioostyeossnftpehaiegaoarietidmataerghysarrfceltrleaenevhehvimhansseiroxilmspjtetsobfmrnhdicohencbtntcopmusseoethentefineoontwotoeeirltiogdsomeohiflmrofefdutesfolewriiqydbozttrnfatndiogntlaaedpshaemnhtlpnsbtouahaalpelmndprsvhnaaielhncailskcadoeadtgjhoeiadwgaydnetneheegeuoeeendoryyrftcemttwngtdeatsuoootwfymhirghroeisnrarofertfnepoayisesssnthhyaeuhliwcptetauaepanuleewlahoaelruesbniiaesateeacgdcosrespronesevlosdeudistletitftseeosnnlgionertneiiewwwlhtiersiilhdtsrdnesfrhrtnlgsruaesdaodytsaadtueniwtcanmeetrtopestyotconytusocgmuldpaldeaodtedfsbeflehaaxsronditiieprsahidccsihpbeilsnlalohrfernttaoriaemlkagertmdrcwnsaywnsvunldroektunnuotiuinnvhniielolhtenfaetauitftaectlnnrbbhegolsnoanmfikoraonnsvnrfetcrftdhetspwscupecrwtopawhfdaiysoaogoealnfdiggnrtbeltllgf o ',\n",
440 " 'ihhtnhrfeftraefotfanlsytrorrqehtmiesurrlfhesateeuiwiisbhrntrisioeiinhrrmypdtotiecrtilabnprhnotohlreitwhsetpssotoyounhwerhdchipmcontohasathjiaeenotrfensuarmguxtrotlwaebttrpetpareaesenhtrhsirntstsnrlfodhguagmeseskanuithatyntuytnnnhvgilwweifpasaerfliabepamcpcalehhtothlswludaesvuaeoeatueatetfeheblthsrghtailcaeethnrghaaistefunnuperrhletimtduiynneuigoceudneeaisheuhlntaotheiiayndfinuaeoaniteyofehadulraeoyruharretarehaainotgiwwsastiubtloaxmelotertotonooarogtcbavpilneefwryatoedawuewrttrlnprpfialerlmitnoriwqeerucradntofarntoleteeprnmphsdneddtweehofpydenesnengeatetaeenestrdguloersuborhwgdrbapehynttkeertrrrnhnfdelostswaiinpytomhuocoytieeeophnrknnatritleeuiernmtipaohaehonhuomuktsvnedeeeiopdkweitgiioieshnuuafbnuetirheahreiheauayrssuwiagsdsitilrfghpliwtiiisehusmroramecsiiovledeoulasridioentifsebotnasopgfosrdftrilpatenrtyloiosyteossnfptehiaegoaareitimdateargyhsarrfcletrelaeenvhhevihmansseiorximlsptjetosbfrmnhidcoehnctbntocpmsuseeothneteifneoontowtoeeirtliodgsoemohfilmorfedfutsefoelwriiqybdozttrnaftnidogtnlaeadphsaenmhtplnstbouhaaaplelnmdpsrvhanailehnacilkscaodeatdgjoheidawgyadnteneehegueoeeendroyyfrtcmettnwgtedatusootowfmyhigrhreoisrnarfoerftneopaysiesssnthhyauehlwicpettaauepnauleewlhaoalerusebniiaeasteaecgcdosersporneesvlsodeduisltettifteseonsnligonretnieiewwwlthiesriihldtrsdnsefrrhtnglsrauesadodtysadatuneiwctanemettropsetytocoyntuoscgumldapldaeodetdfbsefelhaxasrnodiitierpsaihdcscihbpeislnllaohfrertntaroiamelkgaermtdrwcnsyawnvsundlroketunnuoituinnvhinieollhetnfeataiutfatecltnnbrbhgeolnsoamnfiokranonsnvrftecrtfdhtespswcuepcrtwopwahfadiyosaoogeanlfdgigntrbetlllfg o ',\n",
441 " 'thihfhnrrfetoeafnftatslyrorrteqhsimelrurshfeetaeiiuwhsibrnrtosiinieimrhrtpydetoiirctnalbnrphhtooirleswthstepoostnoyurwhehdhccpimonotaahsihtjneaeftorunesgramrxutwtolteabertprptasaeetnehihrssnrtrstndfloaghusmgeasektuniyahtytnunntnivhgewlwafiprasealfiaebpccmphlaetthowlhsaulduseveeaoetauttaeeefhhlbthrsglatieacerhtnahgaesitnufnrpueehrltitmyudiunnecgionuedieeauhsetlhnhoataieifnydaniunoeaytiehfoeldauoarehryuerareatriahagontswiwisatlbutmaoxtleooretootnoaorbtgcivapenleywfretaouadwtwernrtlfrppeaililrmrntoewiqcreunardaotfonrteeltnperspmhdndeetdwfheoeypdnensenegttaeneaersetlgduseorrbuodwhgpbranheyettkrrethrrnefndtolsiwsayniphotmooucetyipeeoknhrtnnalirtieeumrenaitpehoahohnuoumvtkseendoeeiwdpkgietiiionsehfuuaenbuhitrraeheiehyuaausrsgiwaidssritlpgfhtilwsiiisheurrmocmaeoisidlveloeuisareidoftnioesbsntafpogdsoritfrtplatnerilyotsoysoestfnpaheiageoiraeditmataehgryrasrecfllrteneaeehvhmivhsnasrieolixmjpststeomfbrdhnihocebcntctnoumpsoeseehtnfetioenowtnoeotelritgoidmoseihofrmlofefdetuslofeirwidyqbtzotfnradntingotaalespdhmeanlthpbsntauohlaapmlenrpdsnhvaeialcnhaslikdacodaethjgoaiedagwyendtheneegeueeoeodnrryyfectmwttndtgestauoootyfwmrihgorhensiroraftrefpenoiyassseshtnheayuilhwtpceuataapeneluealwheaoleursinbiseaaeetadgccrsoerpsoseneolvsueddtsilitetstfesoenglnienorentiweiwhlwtreisliihstdrendshrfrlntgursadseaydotaasdeutntwicmnaerteteposoyttnocysutomgcupdlaedlatdoesfdblfeeaahxorsntidipeirhasiccdsphibliesalnlrhofnretoatreaimaklgtremcrdwasnysnwvlnudeorknutntouiniunnhvileiothleafneuatitftatcelrnnbehbgslonnaomkifooarnvsnnefrtfrctehdtwpsspucewrctapowdfhasyiogoaolaenidfgrngtlebtgllf o ',\n",
442 " 'hhitrhnftferfeaoaftnysltrorrheqteimsrrulehfsetaewiuibsihtnrrisioiienrrhmdpytitoetrcibalnhrpnotoherlihwtsptestosouoynewhrcdhhmpictnoosahajhtieeanrtofsneumragtxurltowbeatprteaptreaeshnetshritnrsnstrofldughaemgskseaiunttahyutnynntngvhiwwlepfiaeasrilfapebapcmcelahothtslhwdulavseuoeaeutaeetathefetlbhgrshiatleacenhtrahgatsienufnepurlhremittiudyennuogicduenaeeiehsunlhttoahiieadnyfuniaaoenetiyefohudalearouryhrraerateaahitongwwistsaitbulxaomolettreonotoraooctgbpvaienlerwfyotaewadurwetlrtnprpflaiemlriontrqwieurecdarnfotatnrotelerpenhpmsenddwtdeohefdypesenngneeetateeantserugdlreosoburgwhdabrpyhenkttetrernrrhdfnesoltawsipniymothcouoityeoeeprnhkannttirlueeinrempitaahoenohhmouustkvdeneieeokdpwtiegoiiihsenauufunberithhaerhieeauayssruaiwgsdsilitrhgfpwiltiiisuhesormremaciisoelvduoelrsaioideitnfbesoantsgpofrsodrtfiapltrnetolyiysotsoespfntiheaogeaeraimitdetaaygrhrasrlcfeertleeanhhvehivmsnasoiermixltpsjotesrfbmihndeochtcnbotncsmpueesonhteietfoenootnweotetrildoigeosmfhoiomlrdeffstueeoflirwibyqdtzotanrfintdtgonealahpdsneampthltsnbhuoapaalnlemspdrahvnliaeanhcklisoacdtaedojghdieaygwatndeeenhugeeeeoerdnofyyrmctenttwetgdutastooomfwygihrerhorsinfraofretoenpsyaisseshtnhuayewlhiepctaatunpeaeluehlwalaoesureinbiaeasaetecgcdesoropsreensslvodedulsittteietfsnoesilngrnoeinteweiwtlwhseirhiilrtdssnderrfhgntlarsuasedtdoydasanutecwitenamtterspoetytoyocnoutsugcmadlpadleedotbfdsefelxahanrsoiidtreipiashscdcbhipsielllnafhortrenratomaiegklamretwrdcysnavnwsdnulkorenutnioutniunihvnoeilehltefnaiatuafttlcetbnnrghbenlosmaonoifknaronsnvtfretrcfthdespsweucptrcwwpoaafhdoyisooagnaelgdfitngrteblfllg o ',\n",
443 " 'thhifhrnrfteoefanfattsylrorrtehqsiemlrrushefeteaiiwuhsbirntrosiiniiemrrhtpdyetioirtcnablnrhphtooirelswhtstpeootsnouyrwehhdchcpmiontoaashihjtneeaftrounsegrmarxtuwtlotebaerptrpatsaeetnheihsrsntrrsntdfolaguhsmegasketuinyathytunnnntivghewwlafpiraesalifaepbccpmhleattohwlshaudlusveeeoaetuatteaeehfhltbhrgslaiteaecrhntahagestinunfrpeuehlrtimtyuidunencgoinudeieaeuhestlnhhotaaiiefndyanuinoaeyteihfeolduaoaerhruyerraeartiaahgotnswwiistalbtumaxotloeorteoontoarobtcgivpaenelywrfetoauawdtwrenrltfrppealiilmrrnotewqicruenadraoftontreetlnpresphmdnedetwdfhoeeydpnesnengetteaneearstelgudserorboudwghpbarnhyeetktrrtehrnrefdntosliwasynpihomtoocuetiypeoeknrhtnanlitrieuemrneaiptehaohonhuomuvtskeednoeiewdkpgiteiioinshefuauenubhirtraheeiheyuaaussrgiawidssriltpghftiwlsiiishuerromcmeaoiisdlevloueisraeiodftinoebssnatfpgodsroitrftpaltnreiloytsyososetfpnahieagoeireadimtateahgyrrarseclflretneeaehhvmihvsnsarioelimxjptsstoemfrbdhinhoecbctnctonumspoeesehntfeitoeonwtoneoetlrtigodimoesihformolfedfetsuloefiriwdybqtztofnardnitngtoaaelsphdmenaltphbstnauholapamlnerpsdnhaveilacnahslkidaocdatehjogaideagywentdheenegueeeeoodrnryfyecmtwtntdtegstuaootoyfmwrighorehnsriorfatrfepeoniysasssehthneauyilwhtpecuaatapneeleualhwealoeusrinibseaaeeatdgccrseorposseenolsvueddtsliittestefsoneglinenroenitwewihltwresilihistrdensdhrrflngturasdsaeydtoaadseunttwcimneartteepsooyttnoycsuotmgucpdaledaltdeosfbdlfeeaaxhornstiidperihaisccsdphbiliseallnrhfonrteoarteamiakgltrmecrwdasynsnvwlndueokrnunttoiuninunhivleoithelafenuaittfattclernbnehgbslnonamokiofoanrvsnneftrfrtcehtdwpsspuecwrtcapwodfahsyoigooalaneidgfrntgletbglfl o ',\n",
444 " 'hhtirhfntfrefeoaafntystlrorrhetqeismrrluehsfeteawiiubshitnrrisoiiinerrmhdptyiteotricbanlhrnpothoerilhwstptsetoosuonyewrhcdhhmpcitnoosaahjhiteenartfosnuemrgatxrultwobetapretaprteasehnteshirtnsrnsrtofdlugahemsgksaeiutntayhutynnnntgvihwwelpfaiearsilafpeabpccmelhaotthslwhdualvsueoeeauteaettaheeftlhbgrhsialteaecnhrtahagtseinunfeprulhermittiuydenunogciduneaeieehusnlthtohaiiaednfyunaiaoneetyiefhoudlaeaorurhyrrearaetaaihtognwwsitsiatbluxamooltetroenootraooctbgpviaenelrwyfoteawaudrwtelrntprfplaeimlironrtqweiurcedanrfoattnorteelrpnehpsmenddwtedohfedyepsenngneeettaeenatsreugldresoobrugwdhabpryhnektettrrenrhrdfensotlawispnyimohtcoouiteyoepernkhantntilrueienrmepiataheonohhmouustvkdeenieoekdwptigeoiiihsneaufuunebrihtharehieeauyassuraigwsdislirthgpfwitliisiuhseorrmemcaiioseldvuolersiaoieditfnbeosanstgpforsdortifaptlrnteoliyystososepftnihaeogaeeriamidtetaayghrrarslceferlteenahhevhimvsnsaoiremilxtpjsotserfmbihdneohctcbnotcnsmupeeosnhetieftoeonotwneoettrlidogieomsfhioomrldeffsteueolfiriwbydqtztoanfrindttgnoeaalhpsdnemaptlhtsbnhuaopalanlmesprdahnvlieaanchklsioadctadeojhgdiaeygawtnedeehnugeeeeeordonfyrymcetntwtetdgutsatooomfywgirherohrsnifroafrteoepnsyiasssehthnuaeywliheptcaautnpaeeleuhlawlaeosuerinibaesaaeetcgdcesrooprseesnslovdeudlstittieetsfnoseilgnrneoinetwewitlhwserihilirtsdsnedrrhfgnltarusasdetdyodaasnuetcwtienmattrespeotyotyoncoustugmcadpladeledtobfsdeflexaahnrosiitdrepiiahssccdbhpisilellanfhrotrneraotmaeigkalmrtewrcdysanvnswdnlukoernuntiotuninuihnvoeliehtlefaniautafttlctebnrnghebnlsomanooikfnaornsvntfertrfcthedspwseupctrwcwpaoafdhoysiooganalegdiftnrgtelbflgl o ',\n",
445 " 'ithhnfhrerftaoeftnfaltsyrrorqtehmsieulrrfsheaeteuiiwihsbrrntiosieniihmrrytpdoeticirtlnabpnrhohtoliretswhestpsootynouhrwehhdcicpmoonthaastihjaneeoftreunsagrmurxtowtlatebterptrpaesaeetnhrihsrsnttrsnldfohagugsmeeaskntuihyatnytutnnnhivglewwiafpsraefalibaepmccpahlehttohwlslaudeusvaeeoaetuattefeehbhltshrgtlaiceaetrhngahaiestfnunurperehlttimdyuinuneicgoenudeieasuhehtlnahoteaiiyfndianuenoaiyteohfealduroaeyhruaerrtearhiaangotiswwaistulbtomaxetloeorttoonooargbtcaivplenefywraetoduawetwrtnrlpfrpiealrilmtrnoiewqecrurnadtaofrontleetenprmsphddnedetwefhopeydnneseengatteaneeerstdlguoserurbohdwgrpbaenhytetkerrtrhrnnefdltossiwaiynpthomuoocyetiepeohknrntnarliteieuemrntaipoehahhonuuomkvtsneedeoeipwdkegitiiioenshufuabenuthireraheeihayuarusswgiasidstrilfpghltiwisiieshumrroacmesoiivdleelouaisrdeionftisoebtsnaofpgodsrfitrltpaetnryilootsyesosntfpeahieagoairetdimaaterhgysrarfecltlreaneevehhvmihasnserioxlimsjptestobmfrndhichoenbctnctopumssoeetehntfeinoeonwtoteoeilrtigodsmoeoihflrmoffeduetsfloewiriqdybotztrfnatdniongtlaaedsphamenhltpnbstoauhalapemlndrpsvnhaaeilhcnaislkcdaoedatghjoeaidwagydentnheeeeguoeeenodryryftecmtwtngdteastuoootwyfmhrighoreinsraorfetrfnpeoaiysesssnhthyeauhilwctpetuaaeapnuelewalhoealreusbiniaseateeacdgcorsesrponseevolsdueditsleittfsteesonnglioenrteniiwewwhltiresilihdstrdensfhrrtlngsuraedsaoydtsaadteunitwcamneerttoepstoytcnoytsuocmgulpdaledaotdedsfbelfehaaxsorndtiiipershaidccsiphbelisnallorhfenrttoarieamlakgetrmdcrwnasywsnvulndreoktnunutoiuninvnhiileolthenafetuaittfaetclnrnbbehgoslnonamfkioroannvsnreftcfrtdehtswpscpuecwrtoapwhdfaisyoagooelanfidggrntbletlglf o ',\n",
446 " 'ihhtnrhfetfrafeotafnlystrrorqhetmeisurrlfehsaeteuwiiibshrtnriisoeiinhrrmydptoitectrilbanphrnoothlerithwseptsstooyuonhewrhcdhimpcotnohsaatjhiaeenortfesnuamrgutxroltwabettpretapreeasehntrshirtnstnsrlofdhugagemseksaniuthtaynutytnnnhgvilwweipfasearfilabpeampccaelhhotthslwlduaevsuaoeeauteaettfheebtlhsgrhtialceaetnhrgahaitsefnunueprrlhetmitdiuynenuiogceduneaeisehuhnltatoheiiaydnfiunaeaonietyoefhaudlreaoyurharretraehaaintogiwwsatsiutbloxameoltetrotnoooraogctbapvilenefrwyaotedwauerwttlrnpprfilaermlitonriqweeurcrdantfoartnolteeerpnmhpsdenddwteeohfpdyensenegneaettaeenetsrdugloresuobrhgwdrabpeyhntkteetrrrnrhndfelsotsawiipnytmohucooyiteeoephrnknantrtileueienrmtpiaoahehnohumoukstvndeeeieopkdwetigioiiehsnuaufbunetriheharehieaauyrssuwaigssditlirfhgplwitiiiseuhsmorraemcsiioveldeuolarsidoienitfsbeotansogpforsdfrtilapterntyolioystesosnpfteihaeogaaeritmidaetaryghsrarflceterlaeenvhhevhimasnseoirxmilstpjeotsbrfmnihdceohntcbnotcpsmuseeotnhetiefnoeonotwteoeitrlidogseomofhilomrfdefustefeolwiriqbydotztranftindotgnleaadhpsanemhptlntsbohuaapalenlmdsprvahnaliehanciklscoadetadgojhediawygadtneneeheugeoeeenrdoyfyrtmcetntwgetdautsotoowmfyhgirheroirsnafroefrtnoepasyiesssnhthyuaehwlicepttaauenpauelewhlaolaersuebiniaaestaeeccgdoesrsoprneesvsloddeuilstettifetsenosnilgornetineiwewwtlhiserihildrtsdsnefrrhtgnlsarueasdotdysdaatnueicwtaenmettrospettyocyontouscugmladpladeoedtdbfseeflhxaasnrodiitirepsiahdsccibhpesilnllaofhretrntraoimaelgkaemrtdwrcnysawvnsudnlrkoetnunuiotuninvihnioellehtnefatiautaftelctnbnrbgheonlsomanfoikrnaonnsvrtfectrfdthesspwceupctrwowpahafdioysaoogenalfgdigtnrbtellflg o ',\n",
447 " 'tihhfnhrreftoaefntfatlsyrrortqehsmielurrsfheeateiuiwhisbrrntoisineiimhrrtypdeotiicrtnlabnprhhotoilrestwhsetposotnyourhwehhdccipmoontahasithjnaeefotruensgarmruxtwotltaebetrprtpaseaetenhirhssrntrtsndlfoahgusgmeaesktnuiyhatyntuntnnihvgelwwaifprsaeafliabepcmcphalethtowhlsaluduesveaeoeatutateefehhblthsrgltaiecaerthnaghaeistnfunrupeerhlttimyduiunnecigoneudieeaushethlnhaotaeiifyndainuneoayitehofeladuoraehyruearretarihaagnotsiwwiastlubtmoaxtelooertotonooarbgtciavpelneyfwreatoudawtewrntrlfprpeialirlmrtnoeiwqcerunradatofornteletneprsmphddneedtwfehoepydnneseengtatenaeerestldgusoerrubodhwgprbanehyettkrerthrrnenfdtlosiswayinphtomouoceytipeeokhnrtnnalritieeumernatipeohahhonuuomvktsenedoeeiwpdkgeitiiioneshfuuaebnuhtirreaheeihyauaurssgwiaisdsrtilpfghtliwsiiisehurmrocameosiidvleleouiasrediofntiosebstnafopgdosriftrtlpatenriylotosyseostnfpaehiaegoiaredtimaatehrgyrsarefclltrenaeeevhhmvihsansreiolximjsptsetombfrdnhihcoebnctcntoupmsoseeethnfteioneowntoetoelirtgiodmsoeiohfrlmoffedeutslfoeiwridqybtoztfrnadtninogtalaesdphmaenlhtpbnstaouhlaapmelnrdpsnvhaeailchnasilkdcaodeathgjoaeidawgyednthneeeegueoeeondrryyfetcmwttndgtesatuoootywfmrhigohrenisroarfterfpneoiayssesshntheyauihlwtcpeutaaaepneuleawlheoalerusibnisaeaeteadcgcrosersposneeovlsudedtisliettsfteseongnlieonretniwiewhwltriesliihsdtrednshfrrltngusradesayodtasadetuntiwcmaneretteopsotytncoystuomcgupldaeldatodesdfblefeahaxosrntdiipierhsaicdcspihbleisanllrohfnertotareiamalkgtermcdrwansyswnvlunderokntuntuoinuinnvhilieotlheanfeutaittfateclrnnbebhgsolnnoamkfiooranvnsnerftfcrtedhtwspspcuewcrtaopwdhfasiyogaooleanifdgrgntlbetgllf o ',\n",
448 " 'hihtrnhftefrfaeoatfnylstrrorhqetemisrurlefhseatewuiibishtrnriisoieinrhrmdyptiotetcriblanhprnoothelrihtwspetstsoouyonehwrchdhmipctonoshaajthieaenrotfsenumargtuxrlotwbaetptreatpreeashentsrhitrnsntsrolfduhgaegmskesainutthayuntyntnnghviwlwepifaesariflapbeapmccealhohttshlwdluavesuoaeeuateeatthfeetblhgsrhitalecaenthraghatisenfuneuprlrhemtitiduyennuoigcdeunaeeieshunhlttaohieiadynfuinaaeoneityeofhuadleraouyrhrarertaeahaitnogwiwstasitublxoamoeltterontooroaocgtbpavielnerfwyoatewdaurewtltrnpprfliaemrliotnrqiweuercdranftoatrnotleerepnhmpsedndwdteoehfdpyesnengeneeatteaentesrudglroesoubrghwdarbpyehnktteterrnrrhdnfeslotaswipinymtohcuooiyteoeeprhnkannttrilueeinermptiaaohenhohmuousktvdneeieeokpdwteigoiiihesnauufubnertihhearheieaauysrsuawigssdiltirhfgpwlitiiisuehsomrreamcisioevldueolrasiodieintfbseoatnsgopfrosdrftialptrentoyliyostseospnftiehaoegaearimtideatayrghrsarlfceetrleaenhvhehvimsansoeirmxiltspjoetsrbfminhdecohtncbontcspmueseontheitefoneoontwetoetirldiogesomfohiolmrdfefsuteefoliwribqydtoztarnfitndtognelaahdpsnaemphtltnsbhouapaalnelmsdpravhnlaieahnckilsocadteadogjhdeiaywgatdneenehuegeeoeerndofyyrmtcenttwegtduatstooomwfyghirehrorisnfarofertonepsayisesshnthuyaewhliecptataunepaeulehwlaloaesrueibniaaesateeccgdeosrosprenessvloddeulisttetieftsneosinlgroneitnewiewtwlhsierhiilrdtssdnerfrhgtnlasruaesdtodydsaantueciwteanmtetrsopettyoyconotusucgmaldpaldeeodtbdfseeflxhaansroiditriepisahsdccbihpseillnlafohrternrtaomiaeglkamertwdrcynsavwnsdunlkroentuniuotnuinivhnoielelhtenfaitauatftlectbnnrgbhenolsmoanofiknraonnsvtrfetcrftdhesspwecuptcrwwopaahfdoiysoaognealgfditgnrtbelfllg o ',\n",
449 " 'thhifrhnrtfeofeanafttyslrrortheqseimlrrusehfeetaiwiuhbsirtnroisiniiemrrhtdpyeitoitrcnbalnhrphotoierlshwtspteotosnuoyrewhhcdhcmpiotnoasahijhtneeafrtousnegmrartxuwltotbeaeprtraptseaethneishrstnrrnstdoflaughsemgaksetiunytahyutnnnntigvhewwlapfireasailfapebcpcmhelatothwslhaduluvseeoeaeutatetaehefhtlbhgrsliateeacrnhtaahgetsinnufrepuelhrtmityiuduenncogindueiaeeuehstnlhhtoaaiiefdnyauninaoeyetihefoludaoearhuryerraeratiaahgtonswwiitsaltbumxaotoleotreonotoraobctgipvaeenlyrwfeotauwadtrwenlrtfprpelaiimlrronteqwicurendarafototnretelnrpeshpmdendewtdfoheedypnsenegnetetaneeartselugdsreorobudgwhpabrnyheekttrtrehnrredfntsoliawsypnihmotocoueitypoeekrnhtannltiriueemnreapiteahohnohumouvstkedenoieewkdpgtieioiinhsefauueunbhritrhaeehieyauaussrgaiwisdsrlitphgftwilsiiisuherormcemaoiisdelvluoeirsaeoidfitnobessantfgpodrsoirtftapltrneiolytysossoetpfnaiheaogeieradmitaetahygrrraselcflertneeaehhvmhivssnaroielmixjtpssotemrfbdihnheocbtcncotnusmpoeesenhtfietooenwotneeotltrigdoimeosifhoromlfdefestuleofiirwdbyqttzofanrdintntgoaealshpdmnealpthbtsnahuolpaamnlerspdnahveliacanhsklidoacdtaehojgadieaygwetndheeneugeeeeoordnrfyyemctwnttdetgsutaotooymfwrgihoerhnrsiofratfrepoenisyasssehhtneuayiwlhtepcuaatanpeeeluahlwelaoesuriinbsaeaeaetdcgcresoropsseenoslvudedtlsiittesetfsnoegilnernoeintwweihtlwrseilhiisrtdesndhrrflgntuarsdaseytdoadasenuttcwimenartteespootytnyocsoutmugcpadleadltedosbfdlefeaxahonrstiidpreihiascscdpbhilsieallnrfhontreoratemaiagkltmrecwrdaysnsvnwldnuekornnuttiounniunihvloeitehlaefnuiattafttlcerbnneghbsnlonmaokoifonarvnsnetfrftrcethdwspspeucwtrcawpodafhsoyigooalnaeigdfrtngltebgfll o ',\n",
450 " 'hthirfhntrfefoeaanftytslrrorhteqesimrlrueshfeetawiiubhsitrnriosiiniermrhdtpyietotircbnalhnrpohtoeirlhswtpstetoosunoyerwhchdhmcpitonosaahjihtenearftosunemgratrxulwtobteapertarptesaehtnesihrtsnrnrstodfluaghesmgkaseituntyahuytnnnntgivhwewlpafierasialfpaebpccmehlaotthswlhdaulvuseoeeauetaettaheefthlbghrsilateeacnrhtaahgtesinnuferpulehrmtitiyudeunnocgidnueaieeeuhsntlhthoaiaiedfnyuanianoeeytiehfouldaeoaruhryrerareataiahtgonwswitisatlbuxmaootletorenootroaocbtgpivaeenlrywfoetawuadrtwelnrtpfrpleaimilrorntqewiucrednarfaottonrteelrnpehspmedndwetdofhedeypsnengeneettaeneatrseulgdrseoorbugdwhapbrynheketttrrenhrrdefnstolaiwspynimhotcoouietyopeerknhatnntliruieenmrepaitaehonhohmuousvtkdeenioeekwdptgieoiiihnseafuuuenbrhithraeheieayuasusragiwsidslrithpgfwtilisiiusheorrmecmaioisedlvuloerisaoeidiftnboesasntgfpordsoritfatplrtneoilyytsossoeptfniaheoageeiramditeatayhgrrraslecfelrteneahehvhmivssnaoriemlixtjpsostermfbidhnehoctbcnoctnsumpeoesnehtifetooenowtneeottlridgoiemosfihoormldfefsetuelofiirwbdyqttzoafnridnttngoeaalhspdnmeaplthtbsnhauoplaanmlesrpdanhvleiaacnhksliodactdaeohjgdaieyagwtendehenuegeeeeorodnfryymectnwttedtgustatooomyfwgriheorhrnsiforaftreopensiyasssehhtnueaywilhetpcauatnapeeeluhalwleaoseuriinbaseaaeetcdgcersoorpsesensolvduedltsititeestfnsoeiglnrenoientwweithlwsreihliirstdsendrhrfglntaursadsetydodaasneutctwiemnatrtesepotoytynocosutumgcapdlaedletdobsfdelfexaahnorsitidrpeiihassccdbphislielalnfrhotnreroatmeaigaklmtrewcrdyasnvsnwdlnukeornnutitounniuinhvoleiethleafniuatatftltcebrnngehbnslomnaookifnoarnvsntefrtfrctehdswpsepuctwrcwapoadfhosyiogoanlaegidftrngtlebfgll o ',\n",
451 " 'ithhnfrhertfaofetnafltysrrroqthemseiulrrfsehaeetuiwiihbsrrtnioiseniihmrrytdpoeitcitrlnbapnhrohotliertshwesptsotoynuohrewhhcdicmpootnhasatijhaneeofrteusnagmrurtxowltatbeteprtrapeseaethnrishrstntrnsldofhauggsemeaksntiuhytanyuttnnnhigvlewwiapfsreafailbapemcpcahelhtothwslladueuvsaeoeaeutatetfehebhtlshgrtliaceeatrnhgaahietsfnnuureprelhttmidyiunuenicogendueiaesuehhtnlahtoeaiiyfdniaunenaoiyetohefaludroeayhuraerrterahiaangtoiswwaitsultbomxaetoleotrtonoooragbctaipvleenfyrwaeotduwaetrwtnlrpfprielarimltronieqwecurrndataforotnleteenrpmshpddendewtefohpedynnseeegnatetaneeertsdlugosreurobhdgwrpabenyhtektertrrhnrnedfltsosiawiypnthmouocoyeitepoehkrnntanrltieiueemnrtapioeahhhnouumokvstnedeeoiepwkdegtiiioienhsufaubeunthrierhaeehiayaurusswgaisisdtrlifphgltwiisiiesuhmroracemsoiivdeleluoairsdeoinfitsobetsanofgpodrsfirtltapetrnyiolotysessontpfeaiheaogaiertdmiaaetrhygsrrafelctleraneevehhvmhiassneroixlmisjtpesotbmrfndihcheonbtcncotpusmsoeetenhtfienooenwotteeoiltrigdosmeooifhlromffdeuestfleowiirqdbyottzrfantdinontglaeadshpamnehlptnbtsoahualpaemnldrspvnahaelihcanisklcdoaedtaghojeadiwaygdetnnheeeeugoeeenordyrfytemctwntgdetasutootowymfhrgihoerinrsaofretfrnpoeaisyesssnhhtyeuahiwlcteptuaaeanpueelwahloelaresubiinasaeteaecdcgoressropnseevosldudeitlseittfsetesnongiloernteiniwwewhtlirseilhidsrtdesnfhrrtlgnsuaredasoytdsadatenuitcwamenerttoesptotycnyotsoucmuglpadleadoteddsbfelefhaxasonrdtiiipreshiadcscipbhelsinallorfhentrtoraiemalagketmrdcwrnayswsvnuldnrekotnnuutiounnivnihiloeltehnaeftuiattafetlcnrbnbeghosnlonmafkoironanvnsretfcftrdethswspcpeucwtroawphdafisoyagooelnafigdgrtnbltelgfl o',\n",
452 " 'ihthnrfhetrfafoetanflytsrrroqhtemesiurlrfeshaeetuwiiibhsrtrniioseinihrmrydtpoietctirlbnaphnroohtleirthswepststooyunoherwhchdimcpotonhsaatjihaeneorftesunamgrutrxolwtabtetpertarpeesaehtnrsihrtsntnrslodfhuaggesmekasnituhtyanuyttnnnhgivlwewipafserafialbpaempccaehlhotthswlldauevusaoeeauetaettfheebthlsghrtilaceeatnrhgaahitesfnnuuerprlehtmtidiyuneuniocgednueaieseuhhntlathoeiaiydfniuaneanoieytoehfauldreoayuhrarertreahaiantgoiwswatisutlboxmaeotletortnoooroagcbtapivleenfrywaoetdwuaertwtlnrppfrilearmiltorniqeweucrrdnatfaortonlteeernpmhspdedndweteofhpdeynsneegenaettaeneetrsdulgorseuorbhgdwrapbeynhtketetrrrnhrndeflstosaiwipyntmhoucooyieteopehrknnatnrtlieuieenmrtpaioaehhnhoumuoksvtndeeeioepkwdetgiioiiehnsuafubuentrhiehraeheiaayursuswagissidtlrifhpglwtiiisieushmorraecmsioivedleuloarisdoeiniftsboetasnogfpordsfritlatpertnyoiloytsessonptfeiaheoagaeirtmdiaeatryhgsrraflectelraenevhehvhmiassneorixmlistjpeostbrmfnidhcehontbcnoctpsumseoetnehtifenooenowtteeoitlridgosemoofihlormfdfeusetfelowiirqbdyottzrafntidnotngleaadhspanmehpltntbsohauaplaenmldsrpvanhaleihacnikslcodaetdagohjedaiwyagdtenneheeuegoeeenrodyfrytmectnwtgedtaustotoowmyfhgriheorirnsaforeftrnopeasiyesssnhhtyueahwilcetptauaenapueelwhalolearseubiinaasetaeeccdgoerssorpnesevsolddueiltsetitfestensoniglorentieniwwewthlisreihlidrstdsenfrhrtglnsaureadsotydsdaatneuictwaemnetrtosepttoycynotosucumglapdlaedoetddbsfeelfhxaasnorditiirpesihadsccibpheslinlalofrhetnrtroaimealgakemtrdwcrnyaswvsnudlnrkeotnnuuitounnivinhiolelethneaftiuatatfeltcnbrnbgehonslomnafokirnoannvsrtefctfrdtehsswpcepuctwrowaphadfiosyaogoenlafgidgtrnbtlelfgl o',\n",
453 " 'tihhfnrhretfoafentaftlysrrrotqhesmeilurrsfeheaetiuwihibsrrtnoiisneiimhrrtydpeoitictrnlbanphrhootilersthwseptostonyuorhewhhcdcimpootnahsaitjhnaeefortuesngamrrutxwolttabeetprrtapseeatehnirshsrtnrtnsdlofahugsgemaekstniuyhtaynutntnnihgvelwwaipfrseaafilabpecmpchaelthotwhslalduuevseaoeeauttaetefhehbtlhsgrltiaeceartnhagaheitsnfnurueperlhttmiydiuunenciogneduieaeusehthnlhatoaeiifydnaiunneaoyiethoeflaudoreahyurearretraihaagntosiwwiatslutbmoxateoloetrotnooorabgctiapvelenyfrweaotudwaterwntlrfppreilairmlrtoneiqwceurnrdaatfoortneltenerpsmhpddenedwtfeohepdynnseeegntaetnaeeretsldugsoreruobdhgwprabneyhetktretrhrnrendftlsoisawyipnhtmooucoeyitpeoekhrntnanlrtiieuemenratpieoahhhnouumovkstendeoeiewpkdgetiiioinehsfuauebunhtrirehaeehiyaauurssgwaiissdrtlipfhgtlwisiiiseuhrmorcaemosiidvelleuoiarsedoifnitosbestanfogpdorsifrttlapterniyoltoyssesotnpfaeihaeogiaerdtmiaaethrygrsraeflclternaeeevhhmvhisasnreoilxmijstpseotmbrfdnihhceobntccnotupsmoseeetnhftieonoewnoteteolitrgidomseoiofhrlomffdeeustlfeoiwirdqbytotzfrandtinnotgaleasdhpmanelhptbntsaohulapamenlrdspnvahealichansikldcoadetahgojaediawygedtnhneeeeugeoeeonrdryfyetmcwtntdgetsautootoywmfrhgiohernirsoafrtefrpnoeiasysesshnhteyuaihwltceputaaaenpeuelawhleolaersuibinsaaeetaedccgroesrsopsneeovsluddetilsiettsfetsenognileornetinwiwehwtlriselihisdrtedsnhfrrltgnusardeasyotdasdaetnuticwmaenretteospottyncyostoumcugpladeladtoedsdbfleefahxaosnrtdiipirehsiacdscpibhlesianllrofhnetrotraeimaalgktemrcdwranysswvnludnerkontnutuionuninvihlioetlehanefutiattaftelcrnbnebghsonlnomakfoiornavnnsertffctredthwssppceuwctraowpdhafsioygaoolenaifgdrgtnlbteglfl o',\n",
454 " 'hithrnfhterffaoeatnfyltsrrrohqteemsirulrefsheaetwuiibihstrrniiosienirhmrdytpioettcirblnahpnroohtelirhtswpesttsoouynoehrwchhdmicptoonshaajtiheaneroftseunmagrturxlowtbatepteratrpeesahetnsrihtrsnntrsoldfuhagegsmkeasintuthyaunytntnnghivwlewpiafesraifalpbaepmcceahlohttshwldlauveusoaeeuaeteatthfeetbhlgshritlaeceantrhagahtiesnfnueurplrehmttiidyuenunoicgdenuaeieesuhnhtltahoieaidyfnuianaenoeiyteohfualderoauyhrraerrteaahiatngowiswtaistulbxomaoetlteorntoorooacgbtpaivelenrfywoaetwduaretwltnrppfrlieamrilotrnqiewuecrdrnaftaotrontleerenphmspeddnwdetoefhdpeysnnegeeneatteanetersudlgroseourbghdwarpbyenhktetterrnrhrdnefsltoasiwpiynmthocuooiyetoeperhknantntrliueienemrptaiaoehnhhomuuoskvtdneeieoekpwdtegioiiihensaufuubenrthiheraheeiaayusrusawgissidltrihfpgwltiiisiueshomrreacmisoievdlueloraisodeiinftbsoeatsngofprodsrfitaltpretnoyilyotssesopntfieahoeageairmtdieaatyrhgrsralfecetlreanehvehhvmisasnoerimxlitsjpoestrbmfindhechotnbconctspumesoentehitfeonoeonwteteotilrdigoesmofoiholrmdffesuetefloiwirbqdytotzarfnitdntongelaahdspnamephlttnbshoaupalanemlsdrpavnhlaeiahcnkislocdatedaoghjdeaiywagtdenenheueegeoeernodfyrymtecntwtegdtuasttooomwyfghriehorrinsfaorfetronpesaiysesshnhtuyeawhilectpatuaneapeuelhwalloeasreuibinaaseateeccdgeorsosrpensesvoldduelitsteitefstnesoinglroenitenwiwetwhlsirehilirdstsdenrfhrgtlnasuraedstoyddsaanteucitweamntertsoepttoyycnootsuucmgalpdaledeotdbdsfeelfxhaansoridtiripeishasdccbiphselilnalforhtenrrtoamieaglakmetrwdcrynasvwsndulnkreontnuiutonuniivnhoileelthenafituaattfletcbnrngbehnoslmonaofkinroannvstreftcfrtdehsswpecputcwrwoapahdfoisyoagonelagfidtgrntbleflgl o',\n",
455 " 'thihfrnhrtefofaenatftylsrrrothqesemilrursefheeatiwuihbisrtrnoiisnieimrhrtdypeiotitcrnblanhprhootielrshtwspetotsonuyorehwhchdcmipotonashaijthneaefrotusengmarrtuxwlottbaeeptrratpseeathenisrhstrnrntsdolfauhgsegmakestinuythayuntnntnighvewlwapifresaaiflapbecpmchealtohtwshladluuveseoaeeuatteatehfehtblhgsrlitaeecarnthaaghetisnnfureupelrhtmtiyiduuenncoigndeuiaeeueshtnhlhtaoaieifdynauinnaeoyeitheofluadoerahuyrerarertaiahagtnoswiwitasltubmxoatoeloterontooroabcgtipaveelnyrfweoatuwdatrewnltrfppreliaimrlrotneqiwcuerndraaftootrnetlenrepshmpdednewdtfoehedpynsneegenteatneaertesludgsroeroubdghwparbnyehekttrterhnrrednftsloiaswypinhmtoocuoeiytpoeekrhntannltriiueemneraptieaohhnhoumuovsktedneoieewkpdgteiioiinhesfauueubnhrtirheaeheiyaauusrsgawiissdrltiphfgtwlisiiisuehromrceamoisidevllueoiraseodifintobsesatnfgopdrosirfttalptrenioyltyossseotpnfaiehaoegieardmtiaeathyrgrrsaelfcletrneaeehvhmhvissanroeilmxijtspsoetmrbfdinhhecobtnccontuspmoeseenthfiteoonewonteetoltirgdiomesoifohrolmfdfeesutlefoiiwrdbqyttozfarnditnntogaelashdpmnaelphtbtnsahoulpaamnelrsdpnavhelaicahnskildocadteahogjadeiaywgetdnheneeuegeeoeorndrfyyemtcwnttdegtsuatotooymwfrghioehrnrisofartferponeisaysseshhnteuyaiwhltecpuataanepeeulahwleloaesruiibnsaaeeatedccgreosrospseneosvluddetlisitetseftsneoginleroneitnwwiehtwlrsielhiisrdtesdnhrfrlgtnuasrdaesytodadsaentutciwmeanrtetesopottynycosotumucgpaldealdteodsbdfleefaxhaonsrtidipriehisacsdcpbihlseialnlrfohnterortaemiaaglktmercwdraynssvwnldunekronntutiuonnuinivhloietelhaenfuitatatftlecrbnnegbhsnolnmoakofionravnnsetrfftcretdhwssppecuwtcrawopdahfsoiygoaolneaigfdrtgnltbegfll o',\n",
456 " 'htihrfnhtreffoaeantfytlsrrrohtqeesmirluresfheeatwiuibhistrrnioisineirmhrdtypieotticrbnlahnprohoteilrhstwpsettosounyoerhwchhdmciptoonsahajithenaerfotsuenmgartruxlwotbtaepetrartpeseahtensirhtsrnnrtsodlfuahgesgmkaesitnutyhauyntnntngihvwelwpaifersaiaflpabepcmcehalothtswhldaluvuesoeaeueatetathefethblghsriltaeecanrthaaghteisnnfueruplerhmttiiydueunnocigdneuaieeeushnthlthaoiaeidfynuainaneoeyitehofuladeorauhyrrearretaaihatgnowsiwtiastlubxmoaoteltoernotorooacbgtpiaveelnryfwoeatwudartewlntrpfprleiamirlortnqeiwucerdnrafatotorntelernephsmpeddnwedtofehdepysnnegeenetatenaetresuldgrsoeorubgdhwaprbynehketttrernhrrdenfstloaiswpyinmhtocouoieytopeerkhnatnntlriuieenmerpatiaeohnhhomuuosvktdeneioeekwpdtgeioiiihnesafuuuebnrhtihreaheeiayausursagwisisdlrtihpfgwtliisiiusehormrecamiosiedvluleoriasoediifntboseastngfoprdosriftatlprtenoiylytossseoptnfiaehoaegeiarmdtieaatyhrgrrsalefceltrenaehevhhmvissanoreimlxitjsposetrmbfidnhehcotbncocntsupmeosenethifteooneownteetotlirdgioemsofiohorlmdffeseutelfoiiwrbdqyttozafrnidtntnogealahsdpnmaeplhttbnshaouplaanmelsrdpanvhleaiachnksilodcatdeaohgjdaeiyawgtednehneueegeeoerondfryymetcnwttedgtusattooomywfgrhieohrrnisfoarfteropnesiaysseshhntueyawihletcpautanaepeeulhawlleoaseruiibnasaeaetecdcgerosorspesnesovldudeltistietesftnseoignlreonietnwwiethwlsriehliirsdtsednrhfrgltnausradestyoddasanetuctiwemantretseoptotyyncoostuumcgapldaeldetodbsdfelefxahanosritdirpieihsascdcbpihsleilanlfrohtnerrotameiagalkmterwcdryansvswndlunkeronntuituonnuiinvholieetlheanfiutaattfltecbrnngebhnsolmnoaokfinoranvnsterftfcrtedhswspepcutwcrwaopadhfosiyogaonleagifdtrgntlbefgll o']"
457 ]
458 }
459 ],
460 "prompt_number": 22
461 },
462 {
463 "cell_type": "code",
464 "collapsed": false,
465 "input": [
466 "c6bs"
467 ],
468 "language": "python",
469 "metadata": {},
470 "outputs": [
471 {
472 "metadata": {},
473 "output_type": "pyout",
474 "prompt_number": 23,
475 "text": [
476 "'hithhnfrferteaofftnasltyorrreqthimserulrhfsetaeeiuiwsihbnrrtsioiienirhmrpytdtoeircitalnbrpnhtohorliewtshtesposotoynuwhredhhcpicmnootahashtijeanetofrneusragmxurttowleatbrtepptraaesenethhrisnrststrnfldoghaumgseseakuntiahyttnyuntnnvhigwlewfiapasrelfaiebapcmcplahethtolhwsuladseuveaeotaeutateefehlbhtrshgatliaceehtrnhgaasietufnnpurehrelittmudyinnuegicouendeeiahsuelhtnoahtieainyfdniauoenatiyefohedaluaroeryhuraeraterahiaongtwiswsaitbultaomxletoreototonaoortgbcvaipnleewfyrtaeoaduwwetrrtnlrpfpaiellrimntrowieqrecuarndotafnroteletpenrpmshnddetdewhefoypedennsneegtateeanesertgdlueosrburowhdgbrpahenyttekrertrrhnfnedoltswsianiypothmouoctyeieeponhkrnntairlteeiuremnitaphoeaohhnouumtkvsenedeeoidpwkiegtiiiosenhuufanbeuithraerhieehuayasrusiwgadsisitrlgfphiltwiisihesurmromaceisoilvdeoelusairideotnfiesobntsapofgsodrtfirpltanetrlyiosotyoessfntpheaigeaoraieitdmtaaegrhyasrrcfelrtleeanehvehivmhnassieroixlmpsjttesofbmrhndiochecnbttncompusesoehtenetfienootnwooteeriltoigdosmehoifmlroeffdtuesoflerwiiyqdbzottnrfantdigontalaepdsheamnthlpsnbtuoahaalplemnpdrshvnaiaelnhcaliskacdoaedtjghoieadgwayndetenhegeeueoeednoryyrfctemttwntgdetasuoootfwymihrgrhoesinrraofretfenpoyaissesstnhhayeulhiwpcteatuapeanlueelwahaoeluresnbiieasaeteagcdcsorepsroenselvosedudsitlteittfseoesnlnginoernteieiwwlwhteirsiilhtdsrndesrfhrntlgrsuasedadoytasadutenwitcnametertpoesytotocnyutsogcmudlpadleadotefdsbfeleahaxrsonidtieiprashicdcshipbielslnalhorfrentatoraiemklagretmrdcwsnaynwsvnuldorekutnnoutiiunnhvnieilohltefnaeatuifttacetlnnrbhbeglosnaonmifkoaronsnvnfretrcfthdetpswsucpercwtpoawfhdayisooagoaelndfigngrtebltllgfo'"
477 ]
478 }
479 ],
480 "prompt_number": 23
481 },
482 {
483 "cell_type": "code",
484 "collapsed": false,
485 "input": [
486 "''.join([c[0] for c in every_nth(c6bs, 3)])"
487 ],
488 "language": "python",
489 "metadata": {},
490 "outputs": [
491 {
492 "metadata": {},
493 "output_type": "pyout",
494 "prompt_number": 24,
495 "text": [
496 "'hit'"
497 ]
498 }
499 ],
500 "prompt_number": 24
501 },
502 {
503 "cell_type": "code",
504 "collapsed": false,
505 "input": [
506 "c6bs.find('e', 13)"
507 ],
508 "language": "python",
509 "metadata": {},
510 "outputs": [
511 {
512 "metadata": {},
513 "output_type": "pyout",
514 "prompt_number": 25,
515 "text": [
516 "28"
517 ]
518 }
519 ],
520 "prompt_number": 25
521 },
522 {
523 "cell_type": "code",
524 "collapsed": false,
525 "input": [
526 "len(c6bs) / 978"
527 ],
528 "language": "python",
529 "metadata": {},
530 "outputs": [
531 {
532 "metadata": {},
533 "output_type": "pyout",
534 "prompt_number": 26,
535 "text": [
536 "1.6083844580777096"
537 ]
538 }
539 ],
540 "prompt_number": 26
541 },
542 {
543 "cell_type": "code",
544 "collapsed": false,
545 "input": [
546 "c6bs[55:60]"
547 ],
548 "language": "python",
549 "metadata": {},
550 "outputs": [
551 {
552 "metadata": {},
553 "output_type": "pyout",
554 "prompt_number": 27,
555 "text": [
556 "'bnrrt'"
557 ]
558 }
559 ],
560 "prompt_number": 27
561 },
562 {
563 "cell_type": "code",
564 "collapsed": false,
565 "input": [
566 "[(c6bs[0] + c6bs[i] + c6bs[2*i] + c6bs[3*i], i) for i in range(int(len(c6bs) / 3)) if c6bs[i] == 'e' and c6bs[2*i] == 'i' ]"
567 ],
568 "language": "python",
569 "metadata": {},
570 "outputs": [
571 {
572 "metadata": {},
573 "output_type": "pyout",
574 "prompt_number": 28,
575 "text": [
576 "[('heih', 177), ('heit', 207), ('heip', 307), ('heil', 522)]"
577 ]
578 }
579 ],
580 "prompt_number": 28
581 },
582 {
583 "cell_type": "code",
584 "collapsed": false,
585 "input": [
586 "[c for c in chunks(c6bs, 522)]"
587 ],
588 "language": "python",
589 "metadata": {},
590 "outputs": [
591 {
592 "metadata": {},
593 "output_type": "pyout",
594 "prompt_number": 29,
595 "text": [
596 "['hithhnfrferteaofftnasltyorrreqthimserulrhfsetaeeiuiwsihbnrrtsioiienirhmrpytdtoeircitalnbrpnhtohorliewtshtesposotoynuwhredhhcpicmnootahashtijeanetofrneusragmxurttowleatbrtepptraaesenethhrisnrststrnfldoghaumgseseakuntiahyttnyuntnnvhigwlewfiapasrelfaiebapcmcplahethtolhwsuladseuveaeotaeutateefehlbhtrshgatliaceehtrnhgaasietufnnpurehrelittmudyinnuegicouendeeiahsuelhtnoahtieainyfdniauoenatiyefohedaluaroeryhuraeraterahiaongtwiswsaitbultaomxletoreototonaoortgbcvaipnleewfyrtaeoaduwwetrrtnlrpfpaiellrimntrowieqrecuarndotafnrotel',\n",
597 " 'etpenrpmshnddetdewhefoypedennsneegtateeanesertgdlueosrburowhdgbrpahenyttekrertrrhnfnedoltswsianiypothmouoctyeieeponhkrnntairlteeiuremnitaphoeaohhnouumtkvsenedeeoidpwkiegtiiiosenhuufanbeuithraerhieehuayasrusiwgadsisitrlgfphiltwiisihesurmromaceisoilvdeoelusairideotnfiesobntsapofgsodrtfirpltanetrlyiosotyoessfntpheaigeaoraieitdmtaaegrhyasrrcfelrtleeanehvehivmhnassieroixlmpsjttesofbmrhndiochecnbttncompusesoehtenetfienootnwooteeriltoigdosmehoifmlroeffdtuesoflerwiiyqdbzottnrfantdigontalaepdsheamnthlpsnbtuoahaalplemnpdrshvna',\n",
598 " 'iaelnhcaliskacdoaedtjghoieadgwayndetenhegeeueoeednoryyrfctemttwntgdetasuoootfwymihrgrhoesinrraofretfenpoyaissesstnhhayeulhiwpcteatuapeanlueelwahaoeluresnbiieasaeteagcdcsorepsroenselvosedudsitlteittfseoesnlnginoernteieiwwlwhteirsiilhtdsrndesrfhrntlgrsuasedadoytasadutenwitcnametertpoesytotocnyutsogcmudlpadleadotefdsbfeleahaxrsonidtieiprashicdcshipbielslnalhorfrentatoraiemklagretmrdcwsnaynwsvnuldorekutnnoutiiunnhvnieilohltefnaeatuifttacetlnnrbhbeglosnaonmifkoaronsnvnfretrcfthdetpswsucpercwtpoawfhdayisooagoaelndfigngrteb',\n",
599 " 'ltllgfo']"
600 ]
601 }
602 ],
603 "prompt_number": 29
604 },
605 {
606 "cell_type": "code",
607 "collapsed": false,
608 "input": [
609 "c6b"
610 ],
611 "language": "python",
612 "metadata": {},
613 "outputs": [
614 {
615 "metadata": {},
616 "output_type": "pyout",
617 "prompt_number": 30,
618 "text": [
619 "'HITHH NFRFE RTEAO FFTNA SLTYO RRREQ THIMS ERULR HFSET AEEIU IWSIH BNRRT SIOII ENIRH MRPYT DTOEI RCITA LNBRP NHTOH ORLIE WTSHT ESPOS OTOYN UWHRE DHHCP ICMNO OTAHA SHTIJ EANET OFRNE USRAG MXURT TOWLE ATBRT EPPTR AAESE NETHH RISNR STSTR NFLDO GHAUM GSESE AKUNT IAHYT TNYUN TNNVH IGWLE WFIAP ASREL FAIEB APCMC PLAHE THTOL HWSUL ADSEU VEAEO TAEUT ATEEF EHLBH TRSHG ATLIA CEEHT RNHGA ASIET UFNNP UREHR ELITT MUDYI NNUEG ICOUE NDEEI AHSUE LHTNO AHTIE AINYF DNIAU OENAT IYEFO HEDAL UAROE RYHUR AERAT ERAHI AONGT WISWS AITBU LTAOM XLETO REOTO TONAO ORTGB CVAIP NLEEW FYRTA EOADU WWETR RTNLR PFPAI ELLRI MNTRO WIEQR ECUAR NDOTA FNROT ELETP ENRPM SHNDD ETDEW HEFOY PEDEN NSNEE GTATE EANES ERTGD LUEOS RBURO WHDGB RPAHE NYTTE KRERT RRHNF NEDOL TSWSI ANIYP OTHMO UOCTY EIEEP ONHKR NNTAI RLTEE IUREM NITAP HOEAO HHNOU UMTKV SENED EEOID PWKIE GTIII OSENH UUFAN BEUIT HRAER HIEEH UAYAS RUSIW GADSI SITRL GFPHI LTWII SIHES URMRO MACEI SOILV DEOEL USAIR IDEOT NFIES OBNTS APOFG SODRT FIRPL TANET RLYIO SOTYO ESSFN TPHEA IGEAO RAIEI TDMTA AEGRH YASRR CFELR TLEEA NEHVE HIVMH NASSI EROIX LMPSJ TTESO FBMRH NDIOC HECNB TTNCO MPUSE SOEHT ENETF IENOO TNWOO TEERI LTOIG DOSME HOIFM LROEF FDTUE SOFLE RWIIY QDBZO TTNRF ANTDI GONTA LAEPD SHEAM NTHLP SNBTU OAHAA LPLEM NPDRS HVNAI AELNH CALIS KACDO AEDTJ GHOIE ADGWA YNDET ENHEG EEUEO EEDNO RYYRF CTEMT TWNTG DETAS UOOOT FWYMI HRGRH OESIN RRAOF RETFE NPOYA ISSES STNHH AYEUL HIWPC TEATU APEAN LUEEL WAHAO ELURE SNBII EASAE TEAGC DCSOR EPSRO ENSEL VOSED UDSIT LTEIT TFSEO ESNLN GINOE RNTEI EIWWL WHTEI RSIIL HTDSR NDESR FHRNT LGRSU ASEDA DOYTA SADUT ENWIT CNAME TERTP OESYT OTOCN YUTSO GCMUD LPADL EADOT EFDSB FELEA HAXRS ONIDT IEIPR ASHIC DCSHI PBIEL SLNAL HORFR ENTAT ORAIE MKLAG RETMR DCWSN AYNWS VNULD OREKU TNNOU TIIUN NHVNI EILOH LTEFN AEATU IFTTA CETLN NRBHB EGLOS NAONM IFKOA RONSN VNFRE TRCFT HDETP SWSUC PERCW TPOAW FHDAY ISOOA GOAEL NDFIG NGRTE BLTLL GFO\\n'"
620 ]
621 }
622 ],
623 "prompt_number": 30
624 },
625 {
626 "cell_type": "code",
627 "collapsed": false,
628 "input": [
629 "[i for i in range(len(c6bs)) if c6bs[i] == 'q']"
630 ],
631 "language": "python",
632 "metadata": {},
633 "outputs": [
634 {
635 "metadata": {},
636 "output_type": "pyout",
637 "prompt_number": 42,
638 "text": [
639 "[29, 503, 985]"
640 ]
641 }
642 ],
643 "prompt_number": 42
644 },
645 {
646 "cell_type": "code",
647 "collapsed": false,
648 "input": [
649 "''.join([c[0] for c in every_nth(c6bs, 11)])"
650 ],
651 "language": "python",
652 "metadata": {},
653 "outputs": [
654 {
655 "metadata": {},
656 "output_type": "pyout",
657 "prompt_number": 32,
658 "text": [
659 "'hithhnfrfer'"
660 ]
661 }
662 ],
663 "prompt_number": 32
664 },
665 {
666 "cell_type": "code",
667 "collapsed": false,
668 "input": [
669 "''.join([c[0] for c in every_nth(c6bs, 13)])"
670 ],
671 "language": "python",
672 "metadata": {},
673 "outputs": [
674 {
675 "metadata": {},
676 "output_type": "pyout",
677 "prompt_number": 33,
678 "text": [
679 "'hithhnfrferte'"
680 ]
681 }
682 ],
683 "prompt_number": 33
684 },
685 {
686 "cell_type": "code",
687 "collapsed": false,
688 "input": [
689 "''.join([c[0] for c in chunks(c6bs, 121)])"
690 ],
691 "language": "python",
692 "metadata": {},
693 "outputs": [
694 {
695 "metadata": {},
696 "output_type": "pyout",
697 "prompt_number": 34,
698 "text": [
699 "'hhrnrnumeodti'"
700 ]
701 }
702 ],
703 "prompt_number": 34
704 },
705 {
706 "cell_type": "code",
707 "collapsed": false,
708 "input": [
709 "''.join([c[0] for c in chunks(c6bs, 13)])"
710 ],
711 "language": "python",
712 "metadata": {},
713 "outputs": [
714 {
715 "metadata": {},
716 "output_type": "pyout",
717 "prompt_number": 35,
718 "text": [
719 "'harrseehthoexttnsneitetghuydoihuouocttiuedeeerrsohiaeefhifsiitiohtreiehseiiszomhhihtdtoeentencsllilrdieodhpbrlakhntnsdwon'"
720 ]
721 }
722 ],
723 "prompt_number": 35
724 },
725 {
726 "cell_type": "code",
727 "collapsed": false,
728 "input": [
729 "'l' in ''.join([c[0] for c in chunks(c6bs, 13)])"
730 ],
731 "language": "python",
732 "metadata": {},
733 "outputs": [
734 {
735 "metadata": {},
736 "output_type": "pyout",
737 "prompt_number": 36,
738 "text": [
739 "True"
740 ]
741 }
742 ],
743 "prompt_number": 36
744 },
745 {
746 "cell_type": "code",
747 "collapsed": false,
748 "input": [
749 "every_nth(c6bs, 11)"
750 ],
751 "language": "python",
752 "metadata": {},
753 "outputs": [
754 {
755 "metadata": {},
756 "output_type": "pyout",
757 "prompt_number": 38,
758 "text": [
759 "['httmtbnoreohaegaasdetgrmlvtshtenenfiargurredrmcrpwnaegennckehmoinhutioddnrtegmranmmneieseetoetmaaoeoceyiesieaidnseewtrdtttmoaicnagariounanfcfor',\n",
760 " 'ieysaniepwthhtmtenoanwecheehtulueodyratleteupnuomhsnobkeitriotiibisrimeettrsetrnaprbseemfrtnaunecitettmnntwaoecsiorhdnaeeouthesatryeuhirostphat',\n",
761 " 'taoeerrintocaoxbsrgkyllpwaegrfieianeotwtogwwftatsenesrrdyynuekdoeeilsaoosflsaacesshtonrefwntmopldeeeeairpnpneasetentstdnrcdeaihloenknlfbnnhedee',\n",
762 " 'horrerhrhsypsfureshuueflsefanntgahifeeiatbfwprrehfesrpeopenravpsuewgicetaiyfoafhsjnteoihdiranadnoandmshrohcllsollsterlowtnlfxpihrtwuntthmvdralb',\n",
763 " 'hfruitmcthnihrrtntannwaauoethntihtaorrsoocyeaonlnoeebarloiteosweihgfhelnprinreevitdnholotiflthrhadhnturayhtuuarvtneingyipypdrrpoamsthetbinecynl',\n",
764 " 'nfrlusriotuctnteesuttfihlthlgpmcsiuhyawmtvrtiwdedygruhttteamhekntuapeiufopotagleetictttiuyaahascegeotogoaaeereeoelirdrttouassabrirvnvfaefftwidt',\n",
765 " 'fteriipthewmietpttminieeaaliauuoueoehhsxoatreiotdpttrersheinhnihhadhsssiflspirrhreooenofeqnelahadwgrworfiyaeetpsinesesacetdbosifednnnncgkrptsfl',\n",
766 " 'rnqhwoyaoshnjuophrganabtdebaardueaeduialniarletpeeagonrwmprineeurysiuoaegtohehtioscmnwimsdtpplvltaeynohrsetlsesetgiisusnsslfnhermcuoiaeloespoil',\n",
767 " 'fatfsitlrproeswthnshvpahsuhcseyelinaraieapetlqaetdtdwyhsooltodguaailriissateiylviohpeoglobddspnijyeyttoesuuwnardtiwiraaayoeeiilekwlueetoatwoogg',\n",
768 " 'eshsiidnloeoarlrrfeyhaptetteihinhnalaottononrrfndeelhtniuntauetfesstmlroonyataemxfeutodrfzisnlasgnurgfetelaabgoufnwlfsdmtgaldcsnlsdtialsrrsaanf',\n",
769 " 'rliehetbisdtnaeailstiscouareerndtytuenboolalienreneudtfaohepueiarriwrvibdeoidsehlbcsftoologhbeikhdefdwsfshphicedsolhheueocdetdltanoiltnnocuwggo']"
770 ]
771 }
772 ],
773 "prompt_number": 38
774 },
775 {
776 "cell_type": "code",
777 "collapsed": false,
778 "input": [
779 "every_nth(c6bs, 143)"
780 ],
781 "language": "python",
782 "metadata": {},
783 "outputs": [
784 {
785 "metadata": {},
786 "output_type": "pyout",
787 "prompt_number": 64,
788 "text": [
789 "['hetuehroera',\n",
790 " 'iteloirnnny',\n",
791 " 'toetsectptn',\n",
792 " 'hffarefaolw',\n",
793 " 'hreobhelygs',\n",
794 " 'nnhmuulaarv',\n",
795 " 'felxrareisn',\n",
796 " 'rubloytpsuu',\n",
797 " 'fshewaldsal',\n",
798 " 'ertthsesesd',\n",
799 " 'rarodrehseo',\n",
800 " 'tgsrguaesdr',\n",
801 " 'emhebsnatae',\n",
802 " 'axgoriemndk',\n",
803 " 'ouatpwhnhou',\n",
804 " 'frtoagvthyt',\n",
805 " 'ftlthaehatn',\n",
806 " 'ttioedhlyan',\n",
807 " 'noannsipeso',\n",
808 " 'awcayivsuau',\n",
809 " 'sleotsmnldt',\n",
810 " 'leeotihbhui',\n",
811 " 'tahretntiti',\n",
812 " 'ytttkrauweu',\n",
813 " 'obrgrlsopnn',\n",
814 " 'rrnbegsacwn',\n",
815 " 'rthcrfihtih',\n",
816 " 'regvtpeaetv',\n",
817 " 'epaarhraacn',\n",
818 " 'qpairioltni',\n",
819 " 'ttsphlipuae',\n",
820 " 'hrinntxlami',\n",
821 " 'iaelfwlepel',\n",
822 " 'matenimmeto',\n",
823 " 'seueeipnaeh',\n",
824 " 'esfwdsspnrl',\n",
825 " 'renfoijdltt',\n",
826 " 'unnylhtrupe',\n",
827 " 'leprtetseof',\n",
828 " 'rtutsseheen',\n",
829 " 'hhrawusvlsa',\n",
830 " 'fheesronwye',\n",
831 " 'srhoimfaata',\n",
832 " 'eiraarbihot',\n",
833 " 'tsednomaatu',\n",
834 " 'anluimreooi',\n",
835 " 'eriwyahlecf',\n",
836 " 'estwpcnnlnt',\n",
837 " 'itteoedhuyt',\n",
838 " 'usmttiicrua',\n",
839 " 'iturhsoaetc',\n",
840 " 'wrdrmoclsse',\n",
841 " 'snytoihinot',\n",
842 " 'ifinulesbgl',\n",
843 " 'hlnlovckicn',\n",
844 " 'bdnrcdnaimn',\n",
845 " 'nouptebceur',\n",
846 " 'rgefyotdadb',\n",
847 " 'rhgpeetoslh',\n",
848 " 'taiailnaapb',\n",
849 " 'sucieuceeae',\n",
850 " 'imoeesodtdg',\n",
851 " 'ogulpamtell',\n",
852 " 'iseloipjaeo',\n",
853 " 'ienrnruggas',\n",
854 " 'esdihishcdn',\n",
855 " 'neemkdeodoa',\n",
856 " 'iaenresicto',\n",
857 " 'rkitnooesen',\n",
858 " 'huarnteaofm',\n",
859 " 'mnhotnhdrdi',\n",
860 " 'rtswaftgesf',\n",
861 " 'piuiiiewpbk',\n",
862 " 'yaeerenasfo',\n",
863 " 'thlqlseyrea',\n",
864 " 'dyhrtotnolr',\n",
865 " 'ttteebfdeeo',\n",
866 " 'otncenienan',\n",
867 " 'enouitetshs',\n",
868 " 'iyaausneean',\n",
869 " 'ruhrraonlxv',\n",
870 " 'cntnepohvrn',\n",
871 " 'itidmoteosf',\n",
872 " 'tneonfngsor',\n",
873 " 'anatigweene',\n",
874 " 'lviatsoedit',\n",
875 " 'nhnfaoouudr',\n",
876 " 'biynpdtedtc',\n",
877 " 'rgfrhreosif',\n",
878 " 'pwdooteeiet',\n",
879 " 'nlntefretih',\n",
880 " 'heieaiidlpd',\n",
881 " 'twalorlntre',\n",
882 " 'ofuehptoeat',\n",
883 " 'hiothlorisp',\n",
884 " 'oaepntiyths',\n",
885 " 'rpneoagytiw',\n",
886 " 'laanundrfcs',\n",
887 " 'istrueofsdu',\n",
888 " 'eripmtscecc',\n",
889 " 'weymtrmtosp',\n",
890 " 'tleskleeehe',\n",
891 " 'sffhvyhmsir',\n",
892 " 'haonsiotnpc',\n",
893 " 'tihdeoitlbw',\n",
894 " 'eeednsfwnit',\n",
895 " 'sbdeeomngep',\n",
896 " 'paatdtltilo',\n",
897 " 'opldeyrgnsa',\n",
898 " 'scueeoodolw',\n",
899 " 'omawoeeeenf',\n",
900 " 'tcrhisftrah',\n",
901 " 'opoedsfanld',\n",
902 " 'ylefpfdstha',\n",
903 " 'narowntueoy',\n",
904 " 'uhyyktuoiri',\n",
905 " 'wehpipeoefs',\n",
906 " 'htueehsoiro',\n",
907 " 'rhrdgeotweo',\n",
908 " 'etaetaffwna',\n",
909 " 'doeniilwltg',\n",
910 " 'hlrnigeywao',\n",
911 " 'hhasiermhta',\n",
912 " 'cwtnoawitoe',\n",
913 " 'pseesoiherl',\n",
914 " 'iureeririan',\n",
915 " 'clagnaygrid',\n",
916 " 'mahthiqrsef',\n",
917 " 'ndiauedhimi',\n",
918 " 'osatuiboikg',\n",
919 " 'oeoeftzelln',\n",
920 " 'tuneadoshag',\n",
921 " 'avganmtitgr',\n",
922 " 'hetnbttndrt',\n",
923 " 'aaweeanrsee',\n",
924 " 'seisuarrrtb',\n",
925 " 'hoseiefanml',\n",
926 " 'ttwrtgaodrt',\n",
927 " 'iasthrnfedl',\n",
928 " 'jeagrhtrscl',\n",
929 " 'euidayderwg',\n",
930 " 'attleaitfsf',\n",
931 " 'nabursgfhno']"
932 ]
933 }
934 ],
935 "prompt_number": 64
936 },
937 {
938 "cell_type": "code",
939 "collapsed": false,
940 "input": [
941 "[(q, u) for q in [i for i in range(len(c6bs)) if c6bs[i] == 'q'] for u in [i for i in range(len(c6bs)) if c6bs[i] == 'u'] if abs(q-u) < 13]"
942 ],
943 "language": "python",
944 "metadata": {},
945 "outputs": [
946 {
947 "metadata": {},
948 "output_type": "pyout",
949 "prompt_number": 44,
950 "text": [
951 "[(29, 37), (503, 507), (985, 973)]"
952 ]
953 }
954 ],
955 "prompt_number": 44
956 },
957 {
958 "cell_type": "code",
959 "collapsed": false,
960 "input": [
961 "every_nth(c6bs, 13)"
962 ],
963 "language": "python",
964 "metadata": {},
965 "outputs": [
966 {
967 "metadata": {},
968 "output_type": "pyout",
969 "prompt_number": 54,
970 "text": [
971 "['harrseehthoexttnsneitetghuydoihuouocttiuedeeerrsohiaeefhifsiitiohtreiehseiiszomhhihtdtoeentencsllilrdieodhpbrlakhntnsdwon',\n",
972 " 'iorhiniterttuehfeywehueagrieaaernltvanmalddeoptwukuongaiwpuldsrsedrheseenlfoonnavsoenwtsnhelbdetnwhnotsgoarieayuvalanetog',\n",
973 " 'tfefhiroseaorphlaufbtvetaenehudagtoaelnreeeasarsorrhetneghrveapoamcvrocsotmftttankinonfiphawiclegwttycyctxaengntnenovtpar',\n",
974 " 'hfqsbrchpdhftprdkniaoeflahnitoaetatiortnttnnrhricnehdibeaimdopltitfeofnooolltahlaaehrtwnoataisviildltntmersltrwniannnpogt',\n",
975 " 'httenhiooharttioutaplaeisruaielrwoopaprdpdnebehatnmneiehdlretotygaehibbetirenllpicaeygyryyuheootnwsgaaoufshsaesnetrmfsaoe',\n",
976 " 'nnhtrmtrshsnorsgnnpchehaieehenuaimnndfooeessunnnytnoeiuustoonfaoealixmthngorrapladdgydmraeaaarstohrrsmtddoilttvoiubirwwab',\n",
977 " 'faiarralochewanhtnamwolcelgsaaatsxalupwtnwneryfieaiuooiaiwmefgneaervlrttwdewfeseeogereiaiuposeefetnsaeolsncnomnulihfesfel',\n",
978 " 'rsmetplitptularaivscstbetiiuitrewloewaiarherotnyiituistysialisesogtmmhneoofiapnmlawefthosleeapdsredudtcpbidarrutofbktuhlt',\n",
979 " 'flsesyneoiiseesuahrpuaheutceniorseoewiefpeetwteperamdehaiicueotsrrlhpncnosfindbnneaucarfshalesuenieauenafdcladlihteorcdnl',\n",
980 " 'eteiitbwycjrastmhiellethftolyyeaatrweeqnmfgghedoelptpnrstsessdrfahensdoetmdytstphdyetsgreinutrdotrsstrydetshicdiltgacpadl',\n",
981 " 'ryruodrtnmeatesgyglaaurtnmuhferhiotftlrrsotddkotpthkwharriiaorlniyeajimteetqdhudctnoeureswlreoseesreetullihoewoutalrfeyfg',\n",
982 " 'touiitpsunagbntstwfhdtsrnuetdfyitrgyrleohyalgrlhoeovkueulhsibtyteaastopfehudieorajdemohtspueaeisiifdnpteeeirmsrnecootriif',\n",
983 " 'erlwionhwonmreretlaesahnpdnnnohabebrrrctnptubetmneesiursgeornfipisnstcuiroebgaaslgeetooftcesgntneihawosaaipfknenfesnhcsgo']"
984 ]
985 }
986 ],
987 "prompt_number": 54
988 },
989 {
990 "cell_type": "code",
991 "collapsed": false,
992 "input": [
993 "[''.join(transpose(l, (3, 11, 0, 1, 2, 4, 5, 6,7, 8, 9, 10, 12))) for l in chunks(c6bs, 13)]"
994 ],
995 "language": "python",
996 "metadata": {},
997 "outputs": [
998 {
999 "metadata": {},
1000 "output_type": "pyout",
1001 "prompt_number": 61,
1002 "text": [
1003 "['hthithnfrfere',\n",
1004 " 'foaoftnasltyr',\n",
1005 " 'qurrethimserl',\n",
1006 " 'sirhfetaeeiuw',\n",
1007 " 'bisihnrrtsioi',\n",
1008 " 'rtenihmrpytdo',\n",
1009 " 'cpeiritalnbrn',\n",
1010 " 'hshtoorliewth',\n",
1011 " 'putesosotoynw',\n",
1012 " 'dnhrehhcpicmo',\n",
1013 " 'haotaashtijen',\n",
1014 " 'fgetorneusram',\n",
1015 " 'tbxurtowleatr',\n",
1016 " 'pnteptraaesee',\n",
1017 " 'rtthhisnrstsr',\n",
1018 " 'dsnfloghaumge',\n",
1019 " 'ktseauntiahyt',\n",
1020 " 'nwnyutnnvhigl',\n",
1021 " 'ifewfapasrela',\n",
1022 " 'ahiebpcmcplae',\n",
1023 " 'odthtlhwsulas',\n",
1024 " 'eteuvaeotaeua',\n",
1025 " 'fsteeehlbhtrh',\n",
1026 " 'lrgatiaceehtn',\n",
1027 " 'anhgasietufnp',\n",
1028 " 'huurerelittmd',\n",
1029 " 'neyinuegicoun',\n",
1030 " 'itdeeahsuelhn',\n",
1031 " 'tdoahieainyfn',\n",
1032 " 'ofiauenatiyeo',\n",
1033 " 'ayhedluaroerh',\n",
1034 " 'eiurarateraha',\n",
1035 " 'ttongwiswsaib',\n",
1036 " 'arultomxletoe',\n",
1037 " 'tgotoonaoortb',\n",
1038 " 'iycvapnleewfr',\n",
1039 " 'ortaeaduwwetr',\n",
1040 " 'rltnlpfpaielr',\n",
1041 " 'teimnrowieqrc',\n",
1042 " 'nouardotafnrt',\n",
1043 " 'thelepenrpmsn',\n",
1044 " 'tyddedewhefop',\n",
1045 " 'naedensneegtt',\n",
1046 " 'nleeaesertgdu',\n",
1047 " 'rgeosburowhdb',\n",
1048 " 'hrrpaenytteke',\n",
1049 " 'rlrtrhnfnedot',\n",
1050 " 'ihswsaniypotm',\n",
1051 " 'coouotyeieepn',\n",
1052 " 'nehkrntairlte',\n",
1053 " 'eoiurmnitaphe',\n",
1054 " 'hvaohnouumtks',\n",
1055 " 'dkeneeeoidpwi',\n",
1056 " 'iuegtiiosenhu',\n",
1057 " 'befaneuithrar',\n",
1058 " 'euhiehuayasrs',\n",
1059 " 'aliwgdsisitrg',\n",
1060 " 'ihfphltwiisie',\n",
1061 " 'mssurromaceio',\n",
1062 " 'diilveoelusar',\n",
1063 " 'obidetnfieson',\n",
1064 " 'pttsaofgsodrf',\n",
1065 " 'lyirptanetrli',\n",
1066 " 'ttosoyoessfnp',\n",
1067 " 'ieheageaoraii',\n",
1068 " 'tatdmaaegrhys',\n",
1069 " 'farrcelrtleen',\n",
1070 " 'esehvhivmhnas',\n",
1071 " 'otierixlmpsjt',\n",
1072 " 'foesobmrhndic',\n",
1073 " 'nphecbttncomu',\n",
1074 " 'ofsesehteneti',\n",
1075 " 'oeenotnwooter',\n",
1076 " 'ohiltigdosmeo',\n",
1077 " 'luifmroeffdte',\n",
1078 " 'ldsoferwiiyqb',\n",
1079 " 'tizotnrfantdg',\n",
1080 " 'aeontlaepdsha',\n",
1081 " 'homntlpsnbtua',\n",
1082 " 'lrhaaplemnpds',\n",
1083 " 'aahvniaelnhcl',\n",
1084 " 'ajiskcdoaedtg',\n",
1085 " 'edhoiadgwayne',\n",
1086 " 'hetenegeeueoe',\n",
1087 " 'rmdnoyyrfctet',\n",
1088 " 'totwngdetasuo',\n",
1089 " 'whotfymihrgro',\n",
1090 " 'ntesirraofref',\n",
1091 " 'osenpyaissest',\n",
1092 " 'apnhhyeulhiwc',\n",
1093 " 'tuteauapeanle',\n",
1094 " 'aeelwhaoelurs',\n",
1095 " 'ianbieasaeteg',\n",
1096 " 'secdcorepsron',\n",
1097 " 'viselosedudst',\n",
1098 " 'isltettfseoen',\n",
1099 " 'iilngnoerntee',\n",
1100 " 'liiwwwhteirsi',\n",
1101 " 'dflhtsrndesrh',\n",
1102 " 'ldrntgrsuasea',\n",
1103 " 'tndoyasadutew',\n",
1104 " 'npitcameterto',\n",
1105 " 'ttesyotocnyus',\n",
1106 " 'meogcudlpadla',\n",
1107 " 'eedotfdsbfela',\n",
1108 " 'rehaxsonidtii',\n",
1109 " 'siprahicdcshp',\n",
1110 " 'lrbieslnalhof',\n",
1111 " 'tmrenatoraiek',\n",
1112 " 'rslagetmrdcwn',\n",
1113 " 'wraynsvnuldoe',\n",
1114 " 'nnkutnoutiiun',\n",
1115 " 'iehvneilohltf',\n",
1116 " 'acnaetuifttae',\n",
1117 " 'notlnrbhbegls',\n",
1118 " 'nonaomifkoarn',\n",
1119 " 'ntsnvfretrcfh',\n",
1120 " 'prdetswsucpec',\n",
1121 " 'oiwtpawfhdays',\n",
1122 " 'giooaoaelndfg',\n",
1123 " 'tfngrebltllgo']"
1124 ]
1125 }
1126 ],
1127 "prompt_number": 61
1128 },
1129 {
1130 "cell_type": "code",
1131 "collapsed": false,
1132 "input": [],
1133 "language": "python",
1134 "metadata": {},
1135 "outputs": []
1136 }
1137 ],
1138 "metadata": {}
1139 }
1140 ]
1141 }