DONALD MINER MATT RODATUS CMSC 443 Genetic algorithm to solve simple substitution ciphers. README There are several options contained at the top of gasimple.py: MIN_NGRAM - The minimum length n-gram to use when guessing characters. This setting is also in train.py and must have the same value (i.e. set to 2, run train.py to generate the serialized object files, and then gasimple.py must have the same value of 2 to correctly use those object files). MAX_NGRAM - The maximum length n-gram to use when guessing characters. This setting is also in train.py and must have the same value. See info about the MIN_NGRAM setting for more information. CHARACTER_SET - The alphabet that is encoded. All other characters are considered to be no encoded. POPULATION_SIZE - The size of the population each generation. If too small, the genetic algorithm will converge too fast to an incorrect solution. If too large, it will an unnecessary amount of time. SURVIVAL_RATE - What top percentile of entities will survive every generation. MUTATION_RATE - The probability that a random mutation will occur instead of an actual gene splice. OUTPUT_EVERY - Show output every OUTPUT_EVERY generation. LAST_GENERATION - The number of generations to be calculated. USAGE train.py Training script used to generate the Markov chains for gasimple.py by reading sample text from standard in. This sample text should be large and representative of the decoded text. train.py will generate some serialized object files in the current directory which will be used by gasimple.py. train.py must be run before gasimple.py may be used. gasimple.py Genetic algorithm to solve simple substitution ciphers. Uses the serialized object files created by train.py and reads the cipher text through standard in. It outputs the best entity in each generation to standard out. SAMPLE RUN don@greybox:~/miniprojs/gasimple/gasimple_final/gasimple_0508$ python train.py < pandp.txt don@greybox:~/miniprojs/gasimple/gasimple_final/gasimple_0508$ python gasimple.py < coded1_nospace.txt coded text: zpvbkxbztxpm,fufqzsjnfzpvokbdfcbafszpvqftsjkkcbnmhppc,mppmfthpssfmspzpvzfsfufqzsjnfsgfzxfqftvqfsgfzgbczpvdbvhgszpvxfqfrvjdlfqsgbmsgfzsgpvhgszpvcivtssvqmzpvqabdlbmcxbklzpvbkxbzttbjc,sgfdbqctxpvkcmfufqcpzpvxqpmhsgfsqjdlzpvtbjcxbtmfufqokbzsgfhbnfsppkpmhbhbnakfqttgbqf,sgfpmkzqjtlsgbszpvxpvkcsblfsgfpmkzkpttzpvdpvkcepqtblfsgfpmkzakveezpvdpvkcmseblfbmczpvqftsjkksgftbnfjdbvhgsvoxjsgzpvzftsfqcbznpujmhhbnfsphbnfmppmftsbmcjmhjmzpvqxbzsvqmjmhpmsgfdgbqnkpmhfmpvhgsphfszpvazzpvqftsjkksgftbnfzpvtsjkkbjngjhgsgfqfzpvtsppc,fufqzapczxbsdgfczpvokbzjivtssvqmfcbmcxbklfcbxbzjgbcmpsgjmhkfessptbzdbvtfzpvqftsjkksgftbnfzpvqftsjkksgftbnfnpujmhhbnfsphbnftpnfsgjmhtmfufqdgbmhfzpvqftsjkksgftbnfxpqctbmcnvtjdazapatfhfqovmdsvbsjpmtznapktqfnpufc generating first population... starting cycles... generation: 1 time: 3 seconds total time: 0.05 minutes fitness: 0.233612934229 mutation rate: 0.33 key: goedphxrmyzbuasnlkqtvjcifw abcdefghijklmnopqrstuvwxyz text: keulrglktgei,ymyskovpykeubrldywlnyokeusytovrrwlpifeew,ieeiytfeooyioekeukyoymyskovpyoaykgysytusyoaykalwkeudlufaokeugysyhuvdqysoalioaykoaeufaokeuwxutoousikeusnldqliwglrqkeulrglkttlvw,oaydlswtgeurwiymyswekeugseifoayosvdqkeutlvwgltiymysbrlkoayflpyoeereiflflpnrysttalsy,oayeirksvtqoalokeugeurwolqyoayeirkrettkeudeurwcestlqyoayeirknrucckeudeurwioclqyliwkeusytovrroaytlpyvdlufaoubgvoakeukytoyswlkpemvifflpyoeflpyieeiytoliwvifvikeusglkousivifeioaydalspreifyieufaoefyokeunkkeusytovrroaytlpykeutovrrlvpavfaoaysykeutoeew,ymysknewkglodaywkeubrlkvxutoousiywliwglrqywlglkvalwieoavifrycooetlkdlutykeusytovrroaytlpykeusytovrroaytlpypemvifflpyoeflpytepyoaviftiymysdalifykeusytovrroaytlpygeswtliwputvdnknentyfysbuidouloveitkpnertsypemyw generation: 2 time: 3 seconds total time: 0.1 minutes fitness: 0.285168647187 mutation rate: 0.3233 key: pmebxkwnfaygdvsujlqtcrhozi abcdefghijklmnopqrstuvwxyz text: yandfedyteab,ipisyoqhiyanxfdmiudjioyansitoqffudhbwaau,baabitwaooiboayanyioipisyoqhioliyeisitnsioliylduyanmdnwloyaneisivnqmrisoldboliyolanwloyanuzntoonsbyansjdmrdbuedfryandfedyttdqu,olimdsuteanfubipisuayanesabwoliosqmryantdquedtbipisxfdyoliwdhioaafabwdwdhjfisttldsi,oliabfysqtroldoyaneanfuodrioliabfyfattyanmanfucastdrioliabfyjfnccyanmanfubocdridbuyansitoqffolitdhiqmdnwlonxeqolyanyitoisudyhapqbwwdhioawdhibaabitodbuqbwqbyansedyonsbqbwabolimldshfabwibanwloawioyanjyyansitoqffolitdhiyantoqffdqhlqwlolisiyantoaau,ipisyjauyedomliuyanxfdyqzntoonsbiudbuedfriudedyqldubaolqbwficooatdymdntiyansitoqffolitdhiyansitoqffolitdhihapqbwwdhioawdhitahiolqbwtbipismldbwiyansitoqffolitdhieasutdbuhntqmjyjajtiwisxnbmondoqabtyhjaftsihapiu generation: 3 time: 5 seconds total time: 0.183333333333 minutes fitness: 0.35001597278 mutation rate: 0.316533 key: zkjwbgenfdqtmvpulcshoaryxi abcdefghijklmnopqrstuvwxyz text: aonebyealyom,ipikaschiaonubejirevisaonkilscbbrehmtoor,moomiltossimsoaonaisipikaschisfiayikilnkisfiaferaonjentfsaonyikiwncjqiksfemsfiasfontfsaonrznlssnkmaonkvejqemryebqaonebyeallecr,sfijekrlyonbrmipikroaonykomtsfiskcjqaonlecryelmipikubeasfitehisoobomtetehvbikllfeki,sfiombakclqsfesaonyonbrseqisfiombabollaonjonbrgokleqisfiombavbnggaonjonbrmsgeqiemraonkilscbbsfilehicjentfsnuycsfaonailsikreahopcmttehisotehimoomilsemrcmtcmaonkyeasnkmcmtomsfijfekhbomtimontfsotisaonvaaonkilscbbsfilehiaonlscbbechfctfsfikiaonlsoor,ipikavorayesjfiraonubeacznlssnkmiremryebqireyeacfermosfcmtbigssoleajenliaonkilscbbsfilehiaonkilscbbsfilehihopcmttehisotehilohisfcmtlmipikjfemtiaonkilscbbsfilehiyokrlemrhnlcjvavovlitikunmjsnescomlahvoblkihopir generation: 4 time: 7 seconds total time: 0.3 minutes fitness: 0.362976370743 mutation rate: 0.30969833 key: fenkpudbgliwyzcqxshtjraovm abcdefghijklmnopqrstuvwxyz text: neyhdqhntqez,afapnrucaneyxdhgaohwarneypatruddohczseeo,zeezatserrazreneynarafapnrucarianqapatyparianihoneyghysirneyqapavyugjaprihzrianrieysirneyokytrrypzneypwhgjhzoqhdjneyhdqhntthuo,riaghpotqeydozafapoeneyqpezsriarpugjneythuoqhtzafapxdhnriashcareedezshshcwdapttihpa,riaezdnputjrihrneyqeydorhjariaezdndettneygeydobepthjariaezdnwdybbneygeydozrbhjahzoneypatruddriathcaughysiryxqurineynatrapohncefuzsshcareshcazeezatrhzouzsuzneypqhnrypzuzsezriagihpcdezsazeysiresarneywnneypatruddriathcaneytruddhuciusiriapaneytreeo,afapnweonqhrgiaoneyxdhnukytrrypzaohzoqhdjaohqhnuihozeriuzsdabrrethnghytaneypatruddriathcaneypatruddriathcacefuzsshcareshcatecariuzstzafapgihzsaneypatruddriathcaqepothzocytugwnwewtasapxyzgryhrueztncwedtpacefao generation: 5 time: 9 seconds total time: 0.45 minutes fitness: 0.472620560849 mutation rate: 0.3027953133 key: pyrnbglhfwxetzscikvqjumoda abcdefghijklmnopqrstuvwxyz text: naserkenmkaw,ivitnoudinasxreyipezionastimourrpedwhaap,waawimhaooiwoanasnioivitnoudiofinkitimstiofinfepnasyeshfonaskiticsuygitofewofinofashfonaspqsmoostwnastzeygewpkergnaserkenmmeup,ofiyetpmkasrpwivitpanasktawhofiotuygnasmeupkemwivitxrenofihedioaarawhehedzritmmfeti,ofiawrntumgofeonaskasrpoegiofiawrnrammnasyasrplatmegiofiawrnzrsllnasyasrpwolegiewpnastimourrofimediuyeshfosxkuofnasnimoitpendavuwhhedioahediwaawimoewpuwhuwnastkenostwuwhawofiyfetdrawhiwashfoahionasznnastimourrofimedinasmourreudfuhfofitinasmoaap,ivitnzapnkeoyfipnasxrenuqsmoostwipewpkergipekenufepwaofuwhrilooamenyesminastimourrofimedinastimourrofimedidavuwhhedioahedimadiofuwhmwivityfewhinastimourrofimedikatpmewpdsmuyznzazmihitxswyoseouawmndzarmtidavip generation: 6 time: 15 seconds total time: 0.7 minutes fitness: 0.472620560849 mutation rate: 0.295823266433 key: pyrnbglhfwxetzscikvqjumoda abcdefghijklmnopqrstuvwxyz text: naserkenmkaw,ivitnoudinasxreyipezionastimourrpedwhaap,waawimhaooiwoanasnioivitnoudiofinkitimstiofinfepnasyeshfonaskiticsuygitofewofinofashfonaspqsmoostwnastzeygewpkergnaserkenmmeup,ofiyetpmkasrpwivitpanasktawhofiotuygnasmeupkemwivitxrenofihedioaarawhehedzritmmfeti,ofiawrntumgofeonaskasrpoegiofiawrnrammnasyasrplatmegiofiawrnzrsllnasyasrpwolegiewpnastimourrofimediuyeshfosxkuofnasnimoitpendavuwhhedioahediwaawimoewpuwhuwnastkenostwuwhawofiyfetdrawhiwashfoahionasznnastimourrofimedinasmourreudfuhfofitinasmoaap,ivitnzapnkeoyfipnasxrenuqsmoostwipewpkergipekenufepwaofuwhrilooamenyesminastimourrofimedinastimourrofimedidavuwhhedioahedimadiofuwhmwivityfewhinastimourrofimedikatpmewpdsmuyznzazmihitxswyoseouawmndzarmtidavip generation: 7 time: 17 seconds total time: 0.983333333333 minutes fitness: 0.478265160534 mutation rate: 0.288781499097 key: plkwfndgvixcmzbueqstjahory abcdefghijklmnopqrstuvwxyz text: naiockontkam,epernsufenaixcogelovesnairetsucclofmwaal,maametwassemsanainesepernsufeshenkeretireshenholnaigoiwhsnaikereyiugbershomshenshaiwhsnailjitssirmnairvogbomlkocbnaiockonttoul,shegorltkaiclmeperlanaikramwshesrugbnaitoulkotmeperxconshewofesaacamwowofvcertthore,sheamcnrutbshosnaikaiclsobesheamcncattnaigaiclqartobesheamcnvciqqnaigaiclmsqobeomlnairetsuccshetofeugoiwhsixkushnainetserlonfapumwwofesawofemaametsomlumwumnairkonsirmumwamsheghorfcamwemaiwhsawesnaivnnairetsuccshetofenaitsuccoufhuwhsherenaitsaal,epernvalnkosghelnaixconujitssirmelomlkocbelokonuholmashumwceqssatongoitenairetsuccshetofenairetsuccshetofefapumwwofesawofetafeshumwtmeperghomwenairetsuccshetofekarltomlfitugvnvavtewerximgsiosuamtnfvactrefapel generation: 8 time: 20 seconds total time: 1.31666666667 minutes fitness: 0.545878414934 mutation rate: 0.281669314088 key: blrkfacnziqxdvpoemstjgwyhu abcdefghijklmnopqrstuvwxyz text: ionadlaitlor,ezekisuheionpdamegafesionketsuddgahryoog,rooretyossersoioniesezekisuhesveileketnkesveivagionmanyvsionlekecnumbeksvarsveisvonyvsiongjntssnkrionkfambargladbionadlaittaug,svemakgtlondgrezekgoionlkorysveskumbiontauglatrezekpdaisveyahesoodoryayahfdekttvake,sveordikutbsvasionlondgsabesveordidottionmondgqoktabesveordifdnqqionmondgrsqabeargionketsuddsvetaheumanyvsnplusvionietsekgaihozuryyahesoyaherooretsarguryurionklaisnkruryorsvemvakhdoryeronyvsoyesionfiionketsuddsvetaheiontsuddauhvuyvsvekeiontsoog,ezekifogilasmvegionpdaiujntssnkregargladbegalaiuvagrosvurydeqssotaimanteionketsuddsvetaheionketsuddsvetahehozuryyahesoyahetohesvurytrezekmvaryeionketsuddsvetahelokgtarghntumfifofteyekpnrmsnasuortihfodtkehozeg generation: 9 time: 23 seconds total time: 1.7 minutes fitness: 0.559320306268 mutation rate: 0.274486007229 key: buomfkcgverxtzplwqsdjanyhi abcdefghijklmnopqrstuvwxyz text: noiaflanmlod,ebernsuwenoicfategavesnoiremsuffgawdyoog,doodemyossedsonoinesebernsuweshenleremireshenhagnoitaiyhsnoilerekiutpershadshenshoiyhsnoigzimssirdnoirvatpadglafpnoiaflanmmaug,shetargmloifgdebergonoilrodyshesrutpnoimauglamdebercfansheyawesoofodyayawvfermmhare,sheodfnrumpshasnoiloifgsapesheodfnfommnoitoifgjormapesheodfnvfijjnoitoifgdsjapeadgnoiremsuffshemaweutaiyhsiclushnoinemserganwobudyyawesoyawedoodemsadgudyudnoirlansirdudyodshetharwfodyedoiyhsoyesnoivnnoiremsuffshemawenoimsuffauwhuyhsherenoimsoog,ebernvognlasthegnoicfanuzimssirdegadglafpegalanuhagdoshudyfejssomantaimenoiremsuffshemawenoiremsuffshemawewobudyyawesoyawemoweshudymdeberthadyenoiremsuffshemawelorgmadgwimutvnvovmeyercidtsiasuodmnwvofmrewobeg generation: 10 time: 31 seconds total time: 2.21666666667 minutes fitness: 0.609328524851 mutation rate: 0.267230867301 key: blxkfncgziatqvpuwmsdjrhyoe abcdefghijklmnopqrstuvwxyz text: ionadcailcor,epemisufeionydategakesionmelsuddgafrwoog,roorelwossersoioniesepemisufesheicemelnmesheihagiontanwhsioncemevnutbemsharsheishonwhsiongjnlssnmrionmkatbargcadbionadcaillaug,shetamglcondgrepemgoioncmorwshesmutbionlaugcalrepemydaishewafesoodorwawafkdemllhame,sheordimulbshasioncondgsabesheordidolliontondgzomlabesheordikdnzziontondgrszabeargionmelsuddshelafeutanwhsnycushionielsemgaifopurwwafesowaferoorelsargurwurionmcaisnmrurworshethamfdorweronwhsowesionkiionmelsuddshelafeionlsuddaufhuwhshemeionlsoog,epemikogicasthegionydaiujnlssnmregargcadbegacaiuhagroshurwdezssolaitanleionmelsuddshelafeionmelsuddshelafefopurwwafesowafelofeshurwlrepemtharweionmelsuddshelafecomglargfnlutkikoklewemynrtsnasuorlifkodlmefopeg generation: 11 time: 38 seconds total time: 2.85 minutes fitness: 0.609328524851 mutation rate: 0.259903175974 key: blxkfncgziatqvpuwmsdjrhyoe abcdefghijklmnopqrstuvwxyz text: ionadcailcor,epemisufeionydategakesionmelsuddgafrwoog,roorelwossersoioniesepemisufesheicemelnmesheihagiontanwhsioncemevnutbemsharsheishonwhsiongjnlssnmrionmkatbargcadbionadcaillaug,shetamglcondgrepemgoioncmorwshesmutbionlaugcalrepemydaishewafesoodorwawafkdemllhame,sheordimulbshasioncondgsabesheordidolliontondgzomlabesheordikdnzziontondgrszabeargionmelsuddshelafeutanwhsnycushionielsemgaifopurwwafesowaferoorelsargurwurionmcaisnmrurworshethamfdorweronwhsowesionkiionmelsuddshelafeionlsuddaufhuwhshemeionlsoog,epemikogicasthegionydaiujnlssnmregargcadbegacaiuhagroshurwdezssolaitanleionmelsuddshelafeionmelsuddshelafefopurwwafesowafelofeshurwlrepemtharweionmelsuddshelafecomglargfnlutkikoklewemynrtsnasuorlifkodlmefopeg generation: 12 time: 43 seconds total time: 3.56666666667 minutes fitness: 0.642891964805 mutation rate: 0.252502207734 key: blukfangterchqpowmsdjxvyzi abcdefghijklmnopqrstuvwxyz text: yowadvayivor,ecenysugeyowpdatelafesyowneisuddlagrmool,rooreimossersoyowyesecenysugesheyveneiwnesheyhalyowtawmhsyowvenekwutbensharsheyshowmhsyowlzwisswnryownfatbarlvadbyowadvayiiaul,shetanlivowdlrecenloyowvnormshesnutbyowiaulvairecenpdayshemagesoodormamagfdeniihane,sheordynuibshasyowvowdlsabesheordydoiiyowtowdljoniabesheordyfdwjjyowtowdlrsjabearlyowneisuddsheiageutawmhswpvushyowyeisenlaygocurmmagesomagerooreisarlurmuryownvayswnrurmorshethangdormerowmhsomesyowfyyowneisuddsheiageyowisuddaughumhsheneyowisool,ecenyfolyvasthelyowpdayuzwisswnrelarlvadbelavayuhalroshurmdejssoiaytawieyowneisuddsheiageyowneisuddsheiagegocurmmagesomageiogeshurmirecentharmeyowneisuddsheiagevonliarlgwiutfyfofiemenpwrtswasuoriygfodinegocel generation: 13 time: 58 seconds total time: 4.53333333333 minutes fitness: 0.678217779179 mutation rate: 0.245027229812 key: buikfrhgjelqctpnwmsdvaxyzo abcdefghijklmnopqrstuvwxyz text: youadwaynwor,ebelysipeyouzdatemavesyoulensiddmaprgoom,roorengossersoyouyesebelysipesheywelenulesheyhamyoutaughsyouwelefuitkelsharsheyshoughsyoumcunssulryoulvatkarmwadkyouadwaynnaim,shetalmnwoudmrebelmoyouwlorgsheslitkyounaimwanrebelzdayshegapesoodorgagapvdelnnhale,sheordylinkshasyouwoudmsakesheordydonnyoutoudmjolnakesheordyvdujjyoutoudmrsjakearmyoulensiddshenapeitaughsuzwishyouyenselmaypobirggapesogaperoorensarmirgiryoulwaysulrirgorshethalpdorgeroughsogesyouvyyoulensiddshenapeyounsiddaiphighsheleyounsoom,ebelyvomywasthemyouzdayicunssulremarmwadkemawayihamroshirgdejssonaytauneyoulensiddshenapeyoulensiddshenapepobirggapesogapenopeshirgnrebelthargeyoulensiddshenapewolmnarmpunitvyvovnegelzurtsuasiornypvodnlepobem generation: 14 time: 35 seconds total time: 5.11666666667 minutes fitness: 0.741863453072 mutation rate: 0.23747750211 key: bexkfahgjrltnmpdwqosvucyzi abcdefghijklmnopqrstuvwxyz text: youadcaylcon,everytimeyousdapewafetyoureltiddwamngoow,noonelgottentoyouyeteverytimetheycereluretheyhawyoupaughtyoucerejuipkerthantheythoughtyouwzultturnyourfapkanwcadkyouadcayllaiw,theparwlcoudwneverwoyoucrongthetripkyoulaiwcalneversdaythegametoodongagamfderllhare,theondyrilkthatyoucoudwtaketheondydollyoupoudwborlaketheondyfdubbyoupoudwntbakeanwyoureltiddthelameipaughtuscithyouyelterwaymovinggametogamenooneltanwinginyourcayturningonthepharmdongenoughtogetyoufyyoureltiddthelameyoultiddaimhighthereyoultoow,everyfowycatphewyousdayizultturnewanwcadkewacayihawnothingdebttolaypauleyoureltiddthelameyoureltiddthelamemovinggametogamelomethinglneverphangeyoureltiddthelamecorwlanwmulipfyfoflegersunptuationlymfodlremovew generation: 15 time: 27 seconds total time: 5.56666666667 minutes fitness: 0.741863453072 mutation rate: 0.229852277131 key: bexkfahgjrltnmpdwqosvucyzi abcdefghijklmnopqrstuvwxyz text: youadcaylcon,everytimeyousdapewafetyoureltiddwamngoow,noonelgottentoyouyeteverytimetheycereluretheyhawyoupaughtyoucerejuipkerthantheythoughtyouwzultturnyourfapkanwcadkyouadcayllaiw,theparwlcoudwneverwoyoucrongthetripkyoulaiwcalneversdaythegametoodongagamfderllhare,theondyrilkthatyoucoudwtaketheondydollyoupoudwborlaketheondyfdubbyoupoudwntbakeanwyoureltiddthelameipaughtuscithyouyelterwaymovinggametogamenooneltanwinginyourcayturningonthepharmdongenoughtogetyoufyyoureltiddthelameyoultiddaimhighthereyoultoow,everyfowycatphewyousdayizultturnewanwcadkewacayihawnothingdebttolaypauleyoureltiddthelameyoureltiddthelamemovinggametogamelomethinglneverphangeyoureltiddthelamecorwlanwmulipfyfoflegersunptuationlymfodlremovew generation: 16 time: 34 seconds total time: 6.13333333333 minutes fitness: 0.79149819912 mutation rate: 0.222150799902 key: buxcfnhgjilkdmpowqtsvraezy abcdefghijklmnopqrstuvwxyz text: youalcayscon,eberytifeyouplamedawetyourestilldafngood,noonesgottentoyouyeteberytifetheyceresuretheyhadyoumaughtyoucerevuimkerthantheythoughtyoudjustturnyourwamkandcalkyoualcayssaid,themardscouldneberdoyoucrongthetrimkyousaidcasneberplaythegafetoolongagafwlersshare,theonlyriskthatyoucouldtaketheonlylossyoumouldxorsaketheonlywluxxyoumouldntxakeandyourestillthesafeimaughtupcithyouyesterdayfobinggafetogafenoonestandinginyourcayturningonthemharflongenoughtogetyouwyyourestillthesafeyoustillaifhighthereyoustood,eberywodycatmhedyouplayijustturnedandcalkedacayihadnothinglexttosaymauseyourestillthesafeyourestillthesafefobinggafetogafesofethingsnebermhangeyourestillthesafecordsandfusimwywowsegerpunmtuationsyfwolsrefobed generation: 17 time: 30 seconds total time: 6.63333333333 minutes fitness: 0.806608700532 mutation rate: 0.214372307901 key: badkfnhgjrltempowqcsvuxyzi abcdefghijklmnopqrstuvwxyz text: youadwaylwon,everytifeyoupdacesabetyoureltiddsafngoos,noonelgottentoyouyeteverytifetheywereluretheyhasyoucaughtyouwerejuickerthantheythoughtyouszultturnyourbackanswadkyouadwayllais,thecarslwoudsneversoyouwrongthetrickyoulaiswalneverpdaythegafetoodongagafbderllhare,theondyrilkthatyouwoudstaketheondydollyoucoudsmorlaketheondybdummyoucoudsntmakeansyoureltiddthelafeicaughtupwithyouyeltersayfovinggafetogafenooneltansinginyourwayturningonthecharfdongenoughtogetyoubyyoureltiddthelafeyoultiddaifhighthereyoultoos,everybosywatchesyoupdayizultturnesanswadkesawayihasnothingdemttolaycauleyoureltiddthelafeyoureltiddthelafefovinggafetogafelofethinglneverchangeyoureltiddthelafeworslansfulicbyboblegerpunctuationlyfbodlrefoves generation: 18 time: 29 seconds total time: 7.11666666667 minutes fitness: 0.83503038675 mutation rate: 0.20651603098 key: bldcfehgjiyknmpawqtsvuxrzo abcdefghijklmnopqrstuvwxyz text: youalwayswon,everytimeyouzlacedapetyourestilldamngood,noonesgottentoyouyeteverytimetheyweresuretheyhadyoucaughtyouwerexuicberthantheythoughtyoudjustturnyourpacbandwalbyoualwayssaid,thecardswouldneverdoyouwrongthetricbyousaidwasneverzlaythegametoolongagamplersshare,theonlyrisbthatyouwouldtabetheonlylossyoucouldforsabetheonlypluffyoucouldntfabeandyourestillthesameicaughtuzwithyouyesterdaymovinggametogamenoonestandinginyourwayturningonthecharmlongenoughtogetyoupyyourestillthesameyoustillaimhighthereyoustood,everypodywatchedyouzlayijustturnedandwalbedawayihadnothinglefttosaycauseyourestillthesameyourestillthesamemovinggametogamesomethingsneverchangeyourestillthesamewordsandmusicpypopsegerzunctuationsympolsremoved generation: 19 time: 36 seconds total time: 7.71666666667 minutes fitness: 0.86622998844 mutation rate: 0.19858119129 key: badcfnhgjilkempowqtsvuxrzy abcdefghijklmnopqrstuvwxyz text: youalwayswon,everytifeyouplacedabetyourestilldafngood,noonesgottentoyouyeteverytifetheyweresuretheyhadyoucaughtyouwerexuickerthantheythoughtyoudjustturnyourbackandwalkyoualwayssaid,thecardswouldneverdoyouwrongthetrickyousaidwasneverplaythegafetoolongagafblersshare,theonlyriskthatyouwouldtaketheonlylossyoucouldmorsaketheonlyblummyoucouldntmakeandyourestillthesafeicaughtupwithyouyesterdayfovinggafetogafenoonestandinginyourwayturningonthecharflongenoughtogetyoubyyourestillthesafeyoustillaifhighthereyoustood,everybodywatchedyouplayijustturnedandwalkedawayihadnothinglemttosaycauseyourestillthesafeyourestillthesafefovinggafetogafesofethingsneverchangeyourestillthesafewordsandfusicbybobsegerpunctuationsyfbolsrefoved generation: 20 time: 28 seconds total time: 8.18333333333 minutes fitness: 0.886556296107 mutation rate: 0.190567003203 key: badcfohgjilknmpewqtsvuxrzy abcdefghijklmnopqrstuvwxyz text: youalwayswon,everytimeyouflacedabetyourestilldamngood,noonesgottentoyouyeteverytimetheyweresuretheyhadyoucaughtyouwerexuickerthantheythoughtyoudjustturnyourbackandwalkyoualwayssaid,thecardswouldneverdoyouwrongthetrickyousaidwasneverflaythegametoolongagamblersshare,theonlyriskthatyouwouldtaketheonlylossyoucouldporsaketheonlybluppyoucouldntpakeandyourestillthesameicaughtufwithyouyesterdaymovinggametogamenoonestandinginyourwayturningonthecharmlongenoughtogetyoubyyourestillthesameyoustillaimhighthereyoustood,everybodywatchedyouflayijustturnedandwalkedawayihadnothinglepttosaycauseyourestillthesameyourestillthesamemovinggametogamesomethingsneverchangeyourestillthesamewordsandmusicbybobsegerfunctuationsymbolsremoved generation: 21 time: 45 seconds total time: 8.93333333333 minutes fitness: 0.894014779302 mutation rate: 0.182472673235 key: badcfehgjilknmporqtsvuxwzy abcdefghijklmnopqrstuvwxyz text: youalwayswon,everytimeyouplacedabetyourestilldamngood,noonesgottentoyouyeteverytimetheyweresuretheyhadyoucaughtyouwerequickerthantheythoughtyoudjustturnyourbackandwalkyoualwayssaid,thecardswouldneverdoyouwrongthetrickyousaidwasneverplaythegametoolongagamblersshare,theonlyriskthatyouwouldtaketheonlylossyoucouldforsaketheonlybluffyoucouldntfakeandyourestillthesameicaughtupwithyouyesterdaymovinggametogamenoonestandinginyourwayturningonthecharmlongenoughtogetyoubyyourestillthesameyoustillaimhighthereyoustood,everybodywatchedyouplayijustturnedandwalkedawayihadnothinglefttosaycauseyourestillthesameyourestillthesamemovinggametogamesomethingsneverchangeyourestillthesamewordsandmusicbybobsegerpunctuationsymbolsremoved