Skip to content

Instantly share code, notes, and snippets.

@iso2022jp
Last active February 5, 2022 06:32
Show Gist options
  • Save iso2022jp/b9fab2d23f3cda7dfb33ada1b94d5223 to your computer and use it in GitHub Desktop.
Save iso2022jp/b9fab2d23f3cda7dfb33ada1b94d5223 to your computer and use it in GitHub Desktop.
Wordle Solver
'use strict'
if (!globalThis.prompt) {
const buffer = require('buffer')
const fs = require('fs')
const input = buffer.Buffer.alloc(10000)
globalThis.prompt = (message, defaultValue = '') => {
message && console.info(message)
let offset = 0
while (fs.readSync(0, input, offset, 1)) {
if (input[offset] == 10) {
break
}
input[offset] != 13 && ++offset
}
return input.toString('utf8', 0, offset) || defaultValue
}
}
if (!globalThis.alert) {
globalThis.alert = message => console.warn(message)
}
const promptWithRetry = (message, condition, retryMessage) => {
for (; ;) {
const input = prompt(message)
if (condition(input)) {
return input
}
alert(retryMessage)
}
}
const shuffle = array => {
const a = [...array]
for (let i = a.length - 1; i > 0; --i) {
const j = Math.floor(Math.random() * (i + 1))
;[a[i], a[j]] = [a[j], a[i]]
}
return a
}
const set = (value, at, c) => value.slice(0, at) + c + value.slice(at + 1)
const uniqueness = word => new Set(word).size
// ----------
const HIT = 'g'
const CLOSE = 'y'
const MISS = '.'
const INVALID = '_'
const HIT_ALL = HIT.repeat(5)
const MISS_ALL = MISS.repeat(5)
const TIMEOUT = 1000 * 60
const NOT_USED_IN_WORDLE = new Set(`
louty snite senit sotie stine aluco aueto alout gteau lomta tilda aloid aillt filla
`.match(/\w{5}/g))
const WORDS = `
aahedaaliiaarghaaronabacaabaciabackabadaabaffabaftabakaabamaabampabandabaseabashabaskabateabaueabaveabazeabbasabbeyabbesabbieabbotabdalabdatabdomabeamabearabedeabeleabendaberrabetsabhorabideabidiabiesabyesabiloabimeabysmabyssabkarablerablesabletablowabmhoabnerabnetabodeabodyabohmaboilabomaaboonabordabortaboteaboutaboveabrayabramabretabrimabrinabrisabrusabseeabseyabsisabsitabstrabunaabuneaburaabuseabushabutaabutsabuzzabwabacaleacanaacapuacaraacariacastacateaccelaccoyaccraacctsaccumaccuraccusacedyacerbacetaacharachedachenacherachesachooachoracidyacidsacieraciesacylsacingaciniackeeackeyackeraclysacmesacmicacnedacnesacockacoinacoldacomaaconeacoolacornacostacoupacrabacredacresacridacrylacroaacronacruxactedactinactonactoractosactusacuanacuteadageadagyadaysadamsadapaadaptadatiadatyadaweadawnadconaddaxadddaaddedadderaddieaddioaddisaddleaddnladeadadeemadeepadelaadepsadeptadfixadieladieuadionadiosadytaaditsadjagadlaiadlayadletadmanadmenadminadmitadmixadmovadmrxadnexadobeadoboadolfadoptadoreadornadownadoxaadoxyadozeadpaoadradadretadripadropadrueadsumadultaduncadureaduskadustadzeradzesaeciaaedesaegeraegiraegisaegleaeonsaequiaericaerieaeronaesiraesopaetataeviaaevumafaceafaraafarsafearaffixafgodafifiafireaflatafleyaflowafoamafootaforeafoulafrayafretafricafritafrosafteragadaagadeagainagamaagamiagamyagapeagarsagaspagastagataagateagatyagaveagazeagenaagendageneagentagersageteaggeraggieaggryaggroagguraghanaghasagielagileagingagiosagismagistagleeagleyagletaglowagmasagnatagnelagnesagnusagogeagohoagoneagonyagonsagoraagrahagralagreeagriaagricagrinagromagronagsamagueyaguesaguraagushagustaheadaheapahemsahindahintahmedahmetaholdaholtahongahsanahullahuntahuraahushahwalayahsaidedaideraidesayelpayensaieryaigeraigreayinsailedayletailieailltaylluaimakaimedaimeeaimeraineeainoiainusaioliayondayontayousairanairedairerairnsairthairtsaisleaitchaitisayuyuaiveraiwanaizleajajaajariajavaajharajivaajugaakalaakaliakasaakebiakeesakekiakelaakeneakingakkadakneeaknowakpekakronakuleakundalackaladaalainalakialalaalamoalandalanealangalanialansalantalapaalaryalarmalatealawialbanalbasalbeealbinalbynalbumalbusalcaealcesalcidalcoraldayaldeaaldenalderaldimaldolaldusaleakaleckalecsalefsaleftalenualephalertaleutalfasalfetalfinalfuralgaealgalalgasalgicalgidalginalgolalgoralgumalhetaliasalibialicealickalidaalidsalienalietalifealifsalignaliyaalikealimaalinealishalisoalispalistalitealityalivealkesalkydalkylalkinallahallayallanalleyallenallerallezallieallylallisallodalloyallooallotallowalmahalmanalmasalmehalmesalmonalmudalmugalnusalodyaloedaloesaloftalogyalohaaloidaloinaloisalomaalonealongaloofalosaalosealoudaloutalowealpaxalpenalphaalpidaltaralteralthoaltinaltosaltunaltusalucoalulaalumsalurealutaalvahalvanalvaralviaalvinalvusalwayamaasamadiamagaamahsamainamalaamalgamangamaniamantamapaamaraamassamateamatiamautamazeambayambanambarambasamberambitambleambonambosambryamebaameedameenameerameluamendameneamensamentamessamharamiasamiceamiciamideamidoamidsamiesamigaamigoamyloamylsamineaminiaminoaminsamireamirsamishamissamitaamityamletammanammerammosamniaamnicamokeamoksamoleamongamoraamortamouramoveamowtamperamphiampyxampleamplyampulamritamselamuckamulaamuseamuzeamvisamzelanaboanackanamaananaanasaanchaancleanconancorancreandesandiaandorandreanearaneleanendanentangasangelangerangiaangieangkaangleangloangorangryangstangusanhydanibaaniceanighanileanilsanimaanimeanimianimoanionaniseanitaanjananjouankeeankerankhsankleankouankusanlasanletanliaanmiaannalannamannasannatannetannexannieannivannoyannotannulannumannusanoasanodeanoiaanoilanoleanolianomyanornanouranousanovaansaeansaranselanserantaeantalantarantasantedantesanticantiqantisantonantraantreantsyantumanuraanuryanvilanzacaoifeaortaaoteaaotesaotusaouadapaceapaidapairapamaapartapassapastapeakapeekaperyapersapertaperuaphidaphisaphraapianapiinapiliapinaapingapiolapiosapishapismapiumapneaapodaapodsapoopaportapoutappayappalapparappelappetappleapplyappmtapproapptdappuiapresaprilapronapsesapsidapsisaptalapteraptlyaquaeaquasarabaarabyarabsaracaaracearacharadoaragearainarakearaksaramuarankararaararuarasearatiarauaarawaarberarborarcaearcedarcesarchdarchearchyarchtarcosarcusardeaardebarderardorardriareadareaearealareanarearareasarecaareekareelarefyareicarenaarendarengarentarerearestareteargalarganargasargelargidargilarginargleargolargonargosargotargueargusarhararhatarianaryanariasarielariesarikiarilsarylsarioiarionariotarisearisharistaritearithariusarjunarkabarkiearlesarmedarmerarmetarmilarmitarmorarnebarneearnutaroararockaroidaromaaroonaropharosearpenarraharrayarrasarrauarretarrgtarrhaarriearrisarrowarrozarsesarsylarsisarslearsonartalartarartelarterarthaarticartieartlyartouartsyartusaruacarukearuloarumsarupaarusaarvalarvelarvosarzanarzunasaleasanaasaphasarhascanasciiasconascotascryascusasdicasgmtashedashenasherashesashetashirashotashurasianasideasylaasyleasyncaskaraskedaskeraskewaskipaskoiaskosaslopasoakasokaaspcaaspenasperaspicaspisassaiassayassamassesassetassisassocassotastayastelasterastirastorastreasturasuriaswayaswimatakeatameataviataxyatebaateesatelyateloatharathelatiltatimyatingatypyatlasatleeatmanatmasatmidatmosatnahatokeatoleatollatomyatomsatoneatonyatopyatouratrenatriaatripattalattaratteratticattidattleattryatuleatuneatwinaubinaucanauchtaudadaudioauditauetoaugenaugeraugetaughtauguraulaeaulasaulicauloiaulosaumilauntyauntsauraeauralauraraurasaureiauresauricaurylaurinauriraurisaurumautemautorautosautreauxilauxinavahiavailavaleavantavarsavastavellavenaavenyavensaveraaveryavernaversavertavgasavianavickaviewavileavineavionavisoavoidavoiravokeavoueavouravoweavowsawabiawacsawaftawaysawaitawakeawaldawaltawaneawardawareawarnawashawaveawberaweekaweelawestawetoawfulawhetawhirawideawingawinkawiwiawklyawnedawnerawokeawolsaworkaxelsaxersaxialaxileaxilsaxineaxingaxiomaxionaxiteaxledaxlesaxmanaxmenaxoidaxoneaxonsazansazideazidoazymeazineazlonazochazofyazoicazoleazonsazoteazothazoxyaztecazureazurybaaedbaalsbabaibabasbabbybabelbabesbabisbabkabablebaboobabuababulbabusbacaobaccabaccybachebacinbacisbackybacksbaconbadanbaddybadgebadjubadlybadonbaffybaffsbaftabagdibagelbaggebaggybagiebagiobaglebagnebagrebahaibahaybahambahanbaharbahoebahoobahtsbahurbahutbayalbayedbaignbailebailobailsbaiocbayokbayoubairnbaithbaitsbaizabaizebajanbajaubajrabajribakalbakedbakenbakerbakesbakiebaklibakrabalaibalakbalanbalaobalasbalatbalaubaldybaldsbaledbaleibalerbalesbalkybalksballiballyballoballsbalmybalmsbalonbaloobalorbalowbalsabaltibalunbalutbalzabamahbanakbanalbanatbanbabancabancobandabandebandhbandibandybandobandsbanedbanesbanffbangabangebangybangsbaniabanyabanigbanjobankybanksbannsbantybantubanusbaradbaratbarbabarbebarbsbarbubardebardybardobardsbaredbarerbaresbaretbarffbarfybarfsbargebarghbariabaricbaridbariebaryebarihbarisbaritbarkybarksbarlybarmybarmsbarnybarnsbaroibaronbarrabarrebarrybarsebarthbasadbasalbasanbasatbasedbaserbasesbasicbasilbasylbasinbasisbaskebasksbasonbasosbassabassibassybassobastabastebastibastobastsbatadbatakbatanbatchbateabatedbatelbaterbatesbathebathsbatikbatisbatonbattabattybattsbattubatwabaubobauchbaudsbaugebauldbaulkbaumebaunobaurebautabavinbawdybawdsbawkebawlybawlsbawrabawtybazarbazoobeachbeadybeadsbeakybeaksbealabeamybeamsbeanybeanobeansbeantbeardbearmbearsbeastbeatabeathbeatibeatsbeausbeautbeauxbebaybebarbebatbebedbebogbebopbecapbeccobechebeckybecksbecrybecutbedadbedaybedelbedenbedewbedyebedimbedinbedipbedogbedotbedubbedurbeechbeedibeefybeefsbeelebeentbeepsbeerybeersbeestbeethbeetybeetsbeevebefanbefitbefogbefopbefurbegadbegaybeganbegarbegatbegembegetbeginbegobbegodbegotbegumbegunbegutbehapbehavbehenbehewbeicebeigebeigybeildbeingbeirabeisabejanbejelbejigbekahbekkobelahbelaybelambelapbelarbelatbelchbeleebelgabeliebelisbellabellebellibellybellobellsbelowbeltsbeluebelvebemadbemanbemarbemasbematbembabemixbemolbemudbenabbenchbendabendybendsbenesbenetbenicbenimbeninbenjybennebennibennybenshbentybentsbenzobeodebepatbepawbepenbepunberayberatberetberghbergybergsberylberyxbermebermsberneberobberoeberriberryberthberunbesanbeseebesetbesewbesinbesitbesombesotbespybesrabessibessybestsbetagbetasbetelbetesbethsbetisbetonbetsybetsobettabettybevelbeverbevilbevorbevuebevvybewetbewigbewitbewrybezanbezelbezilbezzibezzobhagabhalubhangbharabhavabhilibhimabhootbhutsbiabobialibialybyardbibbybibbsbibiobiblebicepbicesbichybidarbiddybidedbiderbidesbidetbidribidrybieldbiensbiersbiferbiffybiffsbifidbigaebigambigasbiggybighabightbiglybigotbihaibihambijoubikedbikerbikesbikiebikolbylawbilbibilbybilbobilchbilesbilgebilgybilicbilinbiliobilksbillabillybillsbilosbilshbimahbimasbimbobinalbindibindsbinesbingebingybingobyninbinitbinnabinnybintsbiomebiontbiosebiotabyousbipedbipodbirchbirdebirdybirdsbyresbirkybirksbirlebirlsbyrlsbirmabirnebirnybironbyronbirribyrribirrsbirsebirsybirthbysenbisesbisetbisiebisksbismebisonbyssibissobistibitchbitedbiterbitesbytesbitisbitsybittebittybittsbiunebivvybywaybixinbizelbizenbizesbizetblabsblackbladebladyblaffblahsblaykblainblairblakeblameblamsblancblandblankblareblartblaseblashblastblateblatsblawnblawsblazeblazybleakblearbleatblebsbleckbleedbleepblendblenkblensblentblereblessblestbletsblibeblickblierblimyblimpblindbliniblinyblinkblypeblipsblirtblissblistbliteblitzblizzbloatblobsblockblocsblokeblondbloodbloombloopblorebloteblotsbloutblowyblownblowsbluedblueybluerbluesbluetbluffblumeblunkbluntblurbblursblurtblushboardboarsboartboastboatsbobacbobbybobetbobolbocalboccabocceboccibochebocksbocoybodedbodenboderbodesbodgebodhibodleboersboffoboffsboganbogeybogetboggybogiebogleboguebogumbogusboheabohorboyarboyauboyceboyerboikoboylaboilyboilsboingboyosboiseboistboitebokombokosbolagbolarbolasboldobolduboledbolesbolisbollybollsbolosboltiboltyboltsbolusbombebombobombsbomosbonavbonboboncebondsbonedboneybonerbonesbongobongsbonksbonnebonnybonosbonumbonusbonzeboobyboobsboodhboodybooedbookybooksboolyboomyboomsbooneboongboonkboonsboorsboortbooseboosyboostboothbootybootsboozeboozyborakboralboranborasboraxboredboreeborelborerboresborghboricboridborylborisborneboronbortybortsbortzboschboseyboserboskybosksbosombosonbossabossybosunbotanbotasbotchbotelbothybotrybottebottsbottu
bouchbouclbouetbougeboughbouleboultboundbourdbourgbournbourrbousebousyboutoboutsboveybovidbovldbowedbowelbowerbowetbowgebowiebowlabowlebowlybowlsbownebowseboxedboxenboxerboxesboxtybozalbozosbozzebracabracebrachbrackbractbradsbraesbragibragsbrahmbraidbrayebrailbrainbraysbrakebrakybramebrandbrankbransbrantbrashbrassbrastbratsbravabravebravibravobrawlbrawnbrawsbraxybrazabrazebreadbreakbreambrebabreckbredebredibreedbreekbreesbremebrensbrentbrerdbrerebrestbrethbrettbrevabrevebrevibrewsbrianbryanbriarbribebrycebrickbridebriefbrierbriesbrigsbrikebrillbrimsbrinebringbrinybrinkbrinsbryonbriosbrisabrisebriskbrissbristbritebrithbritsbrittbryumbrizabrizzbroadbrochbrockbroghbroidbroilbrokebrollbromabromebromobroncbronkbronxbroodbrookbroolbroombroonbroosbrosebrosybrothbrottbrowdbrownbrowsbrububrucebruetbrughbruinbruitbrujabrujobrukebrulebrumebrunebrunobruntbrushbruskbrutabrutebruzzbtisebuazebubalbubasbubbabubbybubosbuccabuccobuchubuckybuckobucksbuckubuddhbuddybudgebudgybuenobuffabuffebuffibuffybuffobuffsbuganbuggybughtbuglebugrebuhlsbuhrsbuickbuyerbuildbuiltbuistbukatbulakbulbybulbsbulgebulgybulkybulksbullabullybullsbulsebumbobumfsbumphbumpybumpsbuncebunchbuncobundabundhbundybundsbundtbundubungabungybungobungsbunyabunkobunksbunnybunnsbuntybuntsbuoysburanburaoburasburbsburdsburelburetburezburgaburgeburghburgsburinburysburkaburkeburlyburlsburmaburnyburnsburntburooburpsburryburroburrsbursaburseburstburutbusbybusedbusesbushibushybuskybusksbussybussubustibustybustobustsbutatbutchbuteabuteobuticbutylbutinbutynbutyrbutlebutsubuttebuttybuttsbututbuxombuxusbuzzybwanacaabacaamacabaacabalcabancabascabbycabdacabercabincabiocablecabobcabotcabrecacamcacancacaocacascaceicachecackscacticacurcaddycaddocadeecadercadescadetcadewcadgecadgycadiecadiscadoscadrecaduacaduscaecacafescaffacafizcafoycagedcageycagercagescaggycagitcagotcaguicahizcahotcahowcahuycaidscainscayoscairdcairncairocaitecajancajoncajoucajuncakedcakeycakercakescakracalascalcicalebcalefcalfscaliccalidcalifcalincalixcalyxcalkscallacallicallocallscalmycalmscalorcalvecamaycamancamascamelcameocamescamiscamlacampacampecampicampycampocampscamuscanalcanapcanchcandycanedcanelcanercanescangycanidcaniscanlicannacannycanoecanoncanoscansocanstcantycantocantscanuncanzocaobacapaxcapedcapelcapercapescaphscapoccaponcaposcapotcappycapracapricapsacaputcaquecarapcaratcarbycarbocardocardscaredcareycarercarescaretcarexcargacargocaryacaribcaridcarylcarkscarlecarlicarlocarlscarnecarnycarnscaroacarobcarolcaromcarotcarpecarpicarpscarricarrycarrscarsecartecartycartscaruacarumcaruscarvecarvycasalcasascascocasedcaseycaselcasercasescashacaskycaskscassecassycastecastscasuscatancatchcatelcatercatescathacathycatsocatticattycaturcauchcaudacauldcaulicaulkcaulscaumacaupocausacausecavaecavalcaveacavedcaveycavelcavercavescaviacaviecavilcavincavumcavuscawedcawkycawnycaxonccittccoyaceasecebidcebilceburcebuscecalceccacecilcecumcedarcededcedercedescediscedrecedryceibaceiboceileceilsceintcelebceliacellacellicellocellscelomceltscensecenticentocentsceorlcepescequiceralcerasceratcerciceredcererceresceriacericcerylcerinceroscertycesarcestacestecesticetesceticcetidcetylcetincetuschacechackchacochadschafechaffchaftchagachayachainchairchaischayschaitchajachakachalkchamachammchampchamschanechangchankchantchaoschapechapschaptcharachardcharecharycharkcharmcharrcharschartchasechasmchasschatichatschauichaukchaumchauschavechawkchawlchawnchawschazycheapcheatcheckcheekcheepcheercheetchefschegocheirchekachekechekichelachelpchenachengcheracherechertchesechesschestchethchevechevychewychewschyakchiamchianchiaochiaschibachicachichchickchicochicschidechiefchielchienchildchilechylechilichillchimbchimechymechimpchimuchinachinechingchinkchinochinschintchiotchipschirkchirlchirmchirochirpchirrchirtchiruchitachitschivechivychivwchizzchloechlorchoakchocachockchocochoelchoeschogachoyachoilchoirchokechokychokocholacholdcholicholochompchonkchookchoomchoopchopachopschorachordchorechortchosechottchoupchouschoutchouxchowkchowschriachrischronchubbchubschuckchudechuetchufachuffchugschujechumpchumschungchunkchurlchurmchurnchurrchusechutechwascyanocyanscyathcibolcicadcycadcycascicercyclecyclocidercydercydoncigarciguaciliacylixcymaecymarcymascymbacymescimexcymolcymrycinchcinctcindycinelcinescyniccionscippicyprecircacircecircscirescyrilcirricyrusciscocissycistacistscystscitalcitedciteecitercitescytolcytoncituacivetcivicciviecivilcivvycizarclachclackcladecladsclaesclagsclayeclaikclaimclairclaysclakeclambclameclampclamsclangclankclansclapeclapsclaptclaraclareclaryclarkclaroclartclashclaspclassclastclausclautclavaclaveclaviclavyclawkclawscleadcleamcleanclearcleatcleckcleekclefscleftclepecleptclerkcleukcleveclewsclichclickclydeclyercliffcliftclimaclimbclimeclineclingclinkclintclypeclipscliptcliteclivecloakcloamclockclodscloescloffclogscloyscloitclokeclokyclombclompcloneclongclonkclonscloofcloopclootclopsclosecloshcloteclothclotscloudclourcloutcloveclownclozeclubscluckcluedcluescluffclumpclungclunkcnidacoachcoactcoaidcoalacoalycoalscoaptcoarbcoartcoastcoaticoatscoaxycobbycobbscobiacoblecobolcobracobuscocaococascoccicoccococincockycockscoclecocoacocoscocuscodalcodascoddycodeccodedcodencodercodescodexcodolcodoncoedscoeffcoenocoffscogiecogitcogoncoguecohencohobcohogcoholcohoscohowcohuecoyancoyedcoyercoifscoigncoylycoilscoingcoinycoinscoyolcoyoscoypucoirscokedcokeycokercokescokiecolancolascolatcoldscoleycolencolescoletcoliccolincollacollycolobcologcoloncolorcoltscolzacomaecomalcomancomascombecombycombocombscomdgcomdrcomdtcomercomescometcomfycomiccomidcommacommecommycommocomoxcompdcompocompscomptcomtecomusconalconchconcncondoconedconeyconerconesconfrcongacongecongoconiaconicconinconkyconksconliconnyconnsconnuconoyconorconsyconstcontdcontecontgcontocontrconuscoobacoochcooedcooeecooeycooercoofscoojacookycookscoolycoolscoombcoomycoonycoonscoopscooptcoorgcoostcoothcootycootscopalcopedcopeicopencopercopescopiacopiscoppacoppycoppscopracopsecopsycopuscoquecorahcoralcoramcorancorbecorbycordycordscoredcoreecoreycorercorescorgecorgicoriacorylcorincorkecorkycorkscormscornycornocornscornucoroacorolcorplcorpncorpscorsecorsycorsocortacorvecorvocoseccosedcoseycosencosescosetcosiecosincosmocossecostacostscotancotchcotedcotescothecothycotyscottacottecottycouaccouchcoudecoughcouldcoumacountcoupecoupscourbcourscourtcouthcouvecovedcoveycovencovercovescovetcovidcovincowalcowancowedcowercowlecowlscowrycoxaecoxalcoxedcoxescozedcozeycozencozescoziecraalcrabscrackcraftcragscraiecrayecraigcraikcraincrakecrampcramscranecrangcranycrankcrapecrapycrapscrarecrashcrasscratecravecravocrawlcrawmcrawscrazecrazycrcaocrchecreadcreakcreamcreatcredacredocreedcreekcreelcreemcreencreepcreescremecrenacrepecrepycreptcresccresscrestcretacretecrewecrewscryalcribocribscrickcriedcrieycriercriescrilecrimecrimpcrinecrinkcripscryptcrispcrisscrystcrithcroakcroatcrocicrockcroftcroylcroiscromecronecronycronkcroodcrookcroolcrooncropscrorecrosacrosecrosscrostcroupcroutcrowdcrowlcrowncrowscrozecrucecruckcrudecrudycrudscruelcruetcrullcrumbcrumpcrunkcruntcruorcruracrusecrushcrustcruthcrwthcsectcsnetctenectimocubancubascubbycubebcubedcubercubescubiccubitcublacubticucuycuddycuecacuevacuffycuffscuficcuyascuifscuingcuishcujamcukesculchculetculexcullacullycullsculmyculmsculotculpaculticultscumaycumalcumarcumbucumiccumylcumincumlycumolcunancunascundycuneacuneicunyecunitcunnicunnycuntscunzacupaycupelcupidcuppacuppycuratcurbycurbscurchcurdycurdscuredcurercurescuretcurfscuriacuriecurincuriocurlycurlscurnscurrycurrscursacursecurstcuruacurvecurvycuseccushycusiecuskscuspscussocutchcuteycutercutescutiecutincutiscuttycutupcuveeczarsczechdabbadabbydabihdabuhdacesdachadachsdacusdadapdadasdaddydadosdaevadaffydaffsdafladaggadaggydagondagosdahmsdayakdayaldayandaijodailydaintdairadairidairydairtdaisydaivadakerdakirdalaidalandalardaleadalerdalesdalisdalledallydamandamardamasdamesdamiadamiedammedamnsdamondampydampsdanaedanaidancedancydandadandydanesdangsdanicdaniodankedanlidannydansydanskdantadantedaracdarafdaratdarbydarbsdarcidarcydareddarendarerdaresdargodaryadaricdariidaryldarindarkydarksdarnsdaroodarstdartsdashydashtdasyadasntdassydatchdateddaterdatesdatildatosdatswdattodatumdaubedaubydaubsdaukedaultdauntdauridautsdavendaverdaviddavisdavitdawdydaweddawendawksdawnydawnsdawtsdawutdazeddazesdeadydeadsdeairdealsdealtdeansdearedearydearndearsdeashdeathdeavedebagdebardebatdebbydebeldebendebyedebitdebtsdebugdebusdebutdecaddecaydecaldecandecapdecemdecildecyldeckedecksdecoydecordecrydecusdedaldedandeddydeditdeedydeedsdeemsdeenydeepsdeersdeessdefatdeferdefetdefisdefixdefogdegasdegumdeicedeifydeigndeilsdeinkdeinodeyntdeismdeistdeitydekeddekesdekkodekledelaydelawdeleddelesdelfsdelftdelhideliadelimdelisdelitdelladellydellsdeloodelphdeltadelvedemaldemesdemitdemobdemondemosdemotdemurdenaydenardenatdendadenebdenesdenimdenisdenomdensedentydentsdeotadepasdepeldepitdepohdepotdepthderahderayderatderbyderekdericderivdermadermsderogderriderryderthdervedesexdesyldesksdesmadessadestodetardetatdetaxdeterdetindettedeturdeucedevaldevasdeveldevexdevildevondevotdevowdewaldewandewardewaxdeweddeweydewerdexesdhabbdhaksdhavadheridhyaldhikrdhobidhobydholedhonidhoondhotidhotydhouldhowsdhutidiactdyadsdiakadialsdiambdianadianediarydyausdiazodiceddiceydicerdicesdichtdickydicksdicotdictadictydidaldiddydidiedidymdidledidnadidntdidosdidstdidusdiegodienedieridyersdietydietsdifdadightdigitdignedigordiguedyingdikeddykeddikerdykerdikesdykesdylandildodilisdillidillydillsdilosdimerdimesdimindimitdimlydimmydimnadimpsdinahdynamdinardineddyneldinerdinesdynesdingedingydingodingsdinicdinkadinkydinksdinosdintsdinusdiodediolsdionedioondiosediotadiotidioxydipledippydipsydipsodipusdircadirerdirexdirgedirgydirksdirlsdirtydirtsdiscidiscodiscsdishydisksdislidismedisnadistydistndistrditalditasditchditerditesdittydittodiurndivandivasdiveddiveldiverdivesdivetdiviadividdivotdivusdivvydiwandixiedixitdizendizzydjavedjinndjinsdjukadoanddoatydoatsdobbydobiedobladobosdobradocksdoddydodgedodgydodosdoersdoesndoestdoethdoffsdogaldogeydogesdoggydoggodogiedoglydogmadogradoyendoigtdoyledoilydoylydoyltdoinadoingdoyst
doitsdojosdolcedolcidoleddoleydolesdoliadollydollsdolordolosdolphdoltsdolusdomaldombadomeddomerdomesdomicdomptdomusdonaldonardonasdonatdonaxdoncydonecdoneedoneydonetdongadongsdoniadonisdonnadonnedonnydonordonsydonumdonutdoojadoolidoolydoomsdoorsdoozydopasdopeddopeydoperdopesdorabdoraddoraydoreedoreydoriadoricdorisdorjedormydormsdorpsdorrsdorsadorsedorsidortydortsdoseddoserdosesdosisdossydotaldoteddoterdotesdottydouardoubtdoucedoughdougldoumadouradousedoveydovendoverdovesdowdydoweddoweldowerdowiedowlydownydownsdowrydowsedowvedoxiedozeddozendozerdozesdrabadrabsdracodraffdraftdragodragsdraildraindraysdrakedramadramedrammdramsdrangdrankdrantdrapedratedratsdravedrawkdrawldrawndrawsdreaddreamdreardreckdreeddreepdreesdregsdreksdrengdrentdressdrestdryaddriasdryasdribsdrieddrierdryerdriesdriftdrilydrylydrilldrinkdrinndripsdriptdriskdrythdrivedroghdroildroyldroitdrolldromedronadronedronydroobdrooldroopdropsdroptdrossdrouddroukdrovedrovydrowndrubsdrugsdruiddrumsdrungdrunkdruntdrupadrupedrurydrusedrusydruxydruzedsectdtsetduadsdualadualidualsduaneduantdubbadubbydubhedubioducalducatducesduchyduckyducksductsduddydudesduelsduetsduffyduffsdugalduhatduitsdujandukesdukhndulatdulcedulerduliadullydullsdulsedumasdumbadumbydumbsdumkadumkydummydumpydumpsdunalduncedunchdunesdungydungsdunksdunnedunnydunnodunstduntsduoleduomiduomodupedduperdupesdupladupleduplyduppaduppyduraldurasduraxdureddureeduresduretdurylduriodurnsdurocduroydurosdurradurrydurrsdurstdurumdurzidusioduskydusksdustydustsdusundutchdutraduvetduxesdvigudwaledwalmdwangdwarfdwelldweltdwykadwineeablyeagereagleeagreearedearleearlyearlsearnsearsheartheasedeaseleasereaseseastseateneatereavedeavereavesebbedebbeteblisebonyebonsecartecharecheaechedechesechisechosecizeeclatecoidecoleecrusectadectaledanaeddereddiceddieedemaedgaredgededgeredgesedictedifyediyaedileeditheditsedonieduceeductedwineelereemiseerieeeteneffeteffieegadsegallegersegesteggareggedeggeregyptegretegrideyasseidereidoseyerseyesseighteyghteigneeyingeikoneimakeimereyotyeyrareyraseyreneyrereyreseyrieeyrirejectejidoejusdekahaekingekronelaicelaylelainelampelandelanselapselateelboweldereldineleanelectelegyelemeelemieleuteleveelficelfinelianeliaselideelihuelymielioteliteelizaellanellenelmereloahelogeelogyeloinelongelopeelopselricelseselsineludeeluteelvanelverelveselvetelvisemailemaneembayembarembedemberembogembowemboxembueembusemceeemdenemeeremendemeryemesaemeusemydeemydsemigremilyemirsemitsemlenemmeremmetemmewemongemonyemoryemoteemoveempeoemptyemuleemulsenactenageenamienaptenarmenateenciaencycencupendedenderendewendiaendowendueeneaseneidenemaenemyenentenfinengemenginengleenhateniacenjoyenlayenmewennewenniaennoyennuienochenodeenoilenolsenormenornenowsenpiaenrayenribenrolenrutenskyensueentadentalenteaenterentiaentomentreentryentteenureenvoienvoyenwebenzymeoitheosinepactepeesepeusephahephasephodephoiephorepicsepikyepisteplotepochepodeepoptepoxyeppeseppieeprisepsomepuloequalequesequidequipequivequuseradeeraseeratoeravaerbiaerectereptergalergonergoterianericaerickerikaeryonerizoermiternesernieernsterodeeroseerrederronerrorersarerseserucaeructerugoerumperuptervilervumerwinesbayescarescotescryesereeshineskareskerespecesrogessayessedesseeessesessexessieestabesterestocestopestreestusetangetapeethalethanetheletherethicethidethylethosetiametymaetnasetrogettleetudeetuisetuveetwasetweeeucreeuctieulereupadeuroseuruseusolevadeevangevansevaseeveckeveneevenseventeveryeverteveseevictevilseviteevokeewdereweryewersewestewhowewingexactexaltexamsexaunexcelexcudexcurexdieexeatexecsexectexedeexertexhbnexiesexileexineexingexionexistexiteexitsexlexexodeexodyexoptexpdtexpelexposexptlexpwyexsecexterextolextraexudeexultexurbexustexxonfaadefabesfablefacedfacerfacesfacetfaciafaciefacitfacksfactyfactofactsfaddyfadedfadenfaderfadesfadgefadmefadosfaenafaeryfaffyfagerfaggyfaginfagotfagusfahamfayalfayedfailsfainsfaintfairefairyfairmfairsfaithfaitsfakedfakerfakesfakirfalcofaldafallafallyfallsfalsefalunfalusfamedfamesfanalfanamfancyfanesfangafangyfangofangsfanitfannyfanonfanosfantifanumfanwefaqirfaradfarcefarcifarcyfardefardhfardofardsfaredfarerfaresfariofarlefarlsfarmyfarmsfarosfarsefarsifarthfartsfastifastsfatalfatedfatesfatilfatlyfatorfatsofattyfatwafaughfauldfaultfaulxfaunafaunsfaurdfausefaustfautefauvefavelfavorfavusfawnyfawnsfaxedfaxesfazedfazesfcharfcompfconvfdubsfearsfeasefeastfeatyfeatsfeazefecalfecesfecitfecksfediafeedyfeedsfeelyfeelsfeerefeestfeezefeyerfeignfeintfeistfelidfelisfelixfellafellyfellsfelonfeltyfeltsfelupfemesfemicfemmefemurfencefendyfendsfenksfennyfeodsfeoffferaeferalferesferiaferieferioferlyfermefermifernyfernsferoxferriferryferthfessefestafestefestyfetalfetasfetchfetedfetesfetidfetisfetorfetusfetwafeuarfeudsfeuedfeutefeverfewerfezesfezzyfgridfhrerfiantfiardfiarsfiatsfiberfibrafibrefibryfibroficesfycesfichefichuficinficusfidacfidelfidesfidgefidiafidosfiefsfieldfiendfientfierifieryfifedfiferfifesfifiefifthfiftyfiggyfightfikedfikeyfykesfikiefilaofilarfilchfileafiledfilerfilesfiletfiliifilixfillafillefillyfillsfilmyfilmsfilthfilumfinalfincafinchfindyfindsfinedfinerfinesfinewfingufinisfinksfinnyfinnsfiordfiquefircafiredfirerfiresfirmafirmsfirnsfirryfirstfirthfiscsfishyfistyfistsfitchfitlyfyttefittyfiverfivesfixedfixerfixesfixupfizzyfjeldfjordflabsflackflaffflagsflailflainflairflaysflakeflakyflambflameflamyflamsflaneflangflankflansflapsflareflaryflashflaskflatsflavoflawyflawnflawsflaxyflchefldxtfleayfleakfleamflearfleasfleckflectfleerfleesfleetflegmfleysflemefleshfletafleurflewsflexoflybyflickflicsfliedflierflyerfliesflimpflingflintflipeflypeflipsflirtfliskfliteflyteflitsfloadfloatflockflocsfloeyfloesflogsfloydfloitfloytflongfloodflookfloorflopsflorafloryfloshflossflotafloteflotsflourfloutfloweflowkflownflowsflrieflubsfluedflueyfluerfluesflufffluidfluytflukeflukyflumeflumpflungflunkfluorflurnflurrflurtflushfluskfluteflutyfnamefnesefoalyfoalsfoamyfoamsfocalfocusfoddafoderfodgefoehnfoetifogasfogeyfoggyfogiefoglefogonfogoufogusfohatfohnsfoyerfoilsfoinsfoismfoistfoldyfoldsfoliafolicfoliefoliofolkyfolksfollyfomesfondsfondufonlyfontsfoodyfoodsfoolsfootyfootsfoppyforayforamforbyforbsforceforcyfordyfordofordsforelforesforetforexforgeforgoforkyforksformaformeformyformsforraforstforteforthfortyfortsforumfosiefossafossefotchfotuifoulsfoundfountfourbfoursfoutefouthfoutyfoveafowlsfoxedfoxerfoxesfoxiefoxlyfplotfpspsfrackfractfragsfraidfraikfrailfraynfraysframefrancfrankfranzfrapefrappfrapsfraryfrasefrassfratefratsfraudfrausfrawnfrazefrdenfreakfreamfreckfreedfreenfreerfreesfreetfreyafreirfreyrfreitfremdfremtfrenafreonfrerefreshfressfretsfrettfreudfriarfriedfrierfryerfriesfrigsfrijafrikefrillfrisefriskfrissfristfrithfritsfrittfritzfrizefrizzfrockfroesfrogsfrondfronsfrontfroomfrorefroryfroshfroskfrostfrothfrowyfrowlfrownfrowsfrozefrugsfruitfrumpfrushfrustfuagefubbyfubsyfuchifucksfucusfuderfudgefudgyfuelsfuffyfugalfuggyfugiefugiofugitfuglefuguefujisfulahfullyfullsfulthfultzfulupfulwafumedfumerfumesfumetfumidfundifundsfungefungifungofunicfunisfunjefunkyfunksfunlifunnyfuralfuranfurcafurilfurylfurlsfurorfurryfurudfurzefurzyfusedfuseefuselfusesfushtfusilfussyfustyfususfutwafuzedfuzeefuzesfuzilfuzzygabbygablegabongaddigadergadesgadgegadidgadisgadsogadusgaelsgaffegaffsgagedgageegagergagesgagorgayalgayergailygaylygainegainsgaistgaitsgaittgaiusgaizegalahgalasgalaxgalbegaleagaleegaleigaleygalengalesgaletgalgagalikgallagalligallygallsgalopgalutgalvogambagambegambsgamedgameygamergamesgamicgamingammagammygampsgamutganamganchgandaganefganevgangagangegangsganjaganofgansagansygantaganzagaolsgapedgapergapesgappygaradgaraugarbogarbsgarcegardegardygarehgarlegarnigarongaroogarsegarthgaruagarumgasangasesgashygaspygaspsgassygastsgatchgatedgatergatesgathagatorgaubygaucygaudygaudsgaugegaulsgaultgaumygaumsgauntgauragauregaursgaussgauzegauzygavelgaviagavotgawbygawkygawksgawsygazedgazeegazelgazergazesgazetgazongazozgconvgearsgeasegeastgeburgeckogecksgeddsgeeksgeesegeestgeheygeyangeirageisageistgekkogeldsgeleegelidgellygeltsgemelgemmagemmygemotgemsegemulgenaegenalgenepgenesgenetgenicgeniegeniigeningeniogenipgenysgenitgennygenoagenomgenosgenregenrogentygentsgenuagenusgeodegeoffgeoidgeotygerahgerbegerbogerimgeripgermygermsgesangessogestegestsgetaegetahgetasgetfdgeticgetidgetupgeumsghainghanaghastghatsghautghazighborgheesghentghessghyllgholeghoomghostghoulgiantgibbigibbygibedgybedgibelgibergibesgybesgibligibusgiddygiftsgigasgygesgiggegighegygisgigotgiguegihergildsgilesgiletgiliagilimgillygillsgilpygilsegiltygiltsgimelgymelgimmegimpygimpsginepgynicginksginnyginzogipongippygippogyppogipsygypsygyralgirbagirdsgyredgyresgyricgirjagirlygirlsgirnygirnsgirongyrongirosgyrosgirsegirshgirthgirtsgyrusgiselgislagismogistsgitimgiustgyvedgiveygivengivergivesgyvesgivingizmoglaceglackgladegladygladsglagaglaikglairglakyglaliglandglansglareglaryglassglaumglaurglauxglaveglazeglazygleadgleamgleanglebaglebeglebygledegledygledsgleedgleekgleengleesgleetgleirgleysgleitgleneglennglensglentglialglickglidegliffglikeglimeglimsglinkglynnglintglyphgliskglissglistgloamgloatglobeglobyglobsgloeagloggglomeglomiglomsgloodgloomglopsgloregloryglossglostgloutgloveglowsglozegluckgluedglueygluergluesglumaglumeglumpgluonglutsgnarlgnarrgnarsgnashgnastgnatsgnawngnawsgnidegnoffgnomegoadsgoalagoalsgoatygoatsgoavegobangobbegobbygobetgobiagobiogobosgodetgodlygoersgoetygofergoggagogosgoyimgoyingoylegoinggoldigoldygoldsgoleegolemgolesgoletgolfsgolgigollygoloegolpegombogomergonadgonalgondigoneygonergongsgoniagonidgonifgonysgonnagonnegonofgonzogoodygoodsgooeygoofygoofsgookygooksgoolsgoomagoonygoonsgoopygoopsgoosegoosygopakgoralgorangorcegoredgorergoresgorgegoricgorkigorragorrygorsegorsygorstgossygotchgotergothagothsgotosgotragottagoudagoudygougegoumigouragourdgourygoutygoutsgowangowdygowdsgowksgownsgoxesgraalgrabsgracegracygradegradsgraffgraftgrailgraingraipgraysgramagramegramygrampgramsgranagrandgranegrankgranograntgrapegraphgrapygraspgrassgratagrategravegravygrazegreatgrebegrebogrecegrecogreedgreekgreengreesgreetgregegregggregogreingreysgreitgrenegretagretegrewtgricegridegrydegridsgriefgriffgriftgrigsgrikegrillgrimegrimygrimmgrimpgrind
grinsgrintgriotgripegrypegriphgryphgripygripsgriptgrisegristgrithgritsgroangroatgroffgrogsgroingromagrondgrontgroofgroomgroopgrootgroowgropegrossgroszgrotegrotsgroufgroupgroutgrovegrovygrowlgrowngrowsgrubsgruelgruesgruffgruftgruisgruysgrumegrumpgruntgrushgrussgteauguabaguacoguakaguamaguanaguanoguansguaraguardguaryguarsguasaguatoguavaguazagubatgubboguckigucksgudesgudgegudokguelfguessguestguffyguffsgugalguiacguibaguideguidoguidsguyedguyerguigeguijoguildguileguilyguiltguyotguiroguisegujargulaegulargulasgulchgulesgulfygulfsgulixgullygullsgulphgulpygulpsgumbygumbogumlygummagummygundagundigundygungegunjagunkygunksgunnegunnyguppygurangurdygurgeguricgurlegurlygurrygurshgurtsgurusgusergushyguslaguslegussygustygustogustsgutsyguttagutteguttiguttyguzulgweedgwelygwinehaafshaarshababhabbehabethabithablehabubhabushacekhachehachthackyhackshadalhaddohadedhadeshadithadjihadnthadsthaemshaetshafishafizhaftshagarhaggyhagiahaguehaickhaidahaydnhayedhayeyhayerhayeshaikahaikhhaikshaikuhailyhailshainehaynehairehairyhairshaitihajeshajibhajishajjihakamhakeahakeshakimhakkahalalhalashalchhalduhaledhalerhaleshalfahalfyhalidhalkehallohallshalmahalmshaloahaloshalsehaltehaltshalvahalvehalwehamalhamanhamelhameshamlihammyhamsahamushamzahanaphancehanchhandyhandshangehangshanifhankyhankshankthannahanoihansahansehantshaolehaomahaorihapaxhaplyhappyharamharasharbihardyhardsharedharemharesharimharkaharksharleharlsharmsharnsharpaharpyharpsharreharryharshharsthartshasanhashyhashthasidhaskyhasnthaspshastahastehastyhatchhatedhatelhaterhateshathihattehattihattyhaughhauldhaulmhaulshaulthaunthausahausehausthautehavelhavenhaverhaveshavochawedhawerhawkyhawkshawokhawsehazanhazedhazelhazenhazerhazeshazlehdqrsheadyheadshealdhealsheapyheapsheardhearsheartheathheatsheaveheavyheazyhebenheccohechtheckshectehederhedgehedgyheedyheedsheelsheezeheezyheftyheftsheiauheidiheighheyghheildheilyheilsheinzheirsheistheizehelashelcohelenhelgeheliohelixhellyhellohellshelmsheloehelothelpshelvehemadhemalhemanhemenhemeshemicheminhemolhempyhempshenadhencehendyhenenhengehennahennyhenryhentsheparheratherbaherbyherbsherdsheremheresherlshermahermihermohermshernehernsheronherosherryhersehertzhervehestshethshettyheuauheuchheughheveahevedhewedhewelhewerhewghhexadhexedhexerhexeshexylhexishianthiatehiblahyblahichthichuhickyhickshidedhidelhiderhideshydrahydrohieldhiemshyenahienzhierahighshighthigrahyinghijrahikedhikerhikeshilarhylashilchhildahyleghylichillyhillohillshilsahiltshilumhilushymenhimnehymnshinauhinchhyndehindihindshinduhineyhingehinnyhintshyoidhypedhiperhyperhypeshyphahyphohipmihyposhippahippihippyhippohiramhyraxhiredhirenhirerhireshirsehyrsehirsthyrsthisishysonhispahissyhistshitchhithehivedhiverhiveshoagyhoardhoaryhoarshoasthobbyhoboehoboshoccohockyhockshocushodadhoddyhodgehoershoganhogenhoggyhoggshognihoickhoylehoisehoisthokanhokedhokeyhokerhokeshokkuhokumholdsholedholeyholerholesholiaholkshollahollyholloholmsholtshomamhomedhomeyhomerhomeshommehomoshonanhondahondohonedhoneyhonerhoneshongshonkyhonkshonorhonzohoochhoodyhoodshooeyhoofyhoofshooyehookahookyhookshoolyhoopshoosehooshhootshoovehopakhopedhoperhopeshopishoppyhoppohoraehorahhoralhorashordehorimhorlahormehornyhornshorolhorryhorsehorsyhorsthoseahosedhoselhosenhoseshostahostshotchhotelhotlyhottahoughhoulthoundhourihourshousehousyhousshouvehovelhovenhoverhowdyhoweahowelhoweshowffhowfshowkshowlshowsohsienhsuanhuacahuacohuarihuavehubbahubbyhuchohuckshuffyhuffshugerhuilehulashulchhulkyhulkshullohullshumanhumbohumethumichumidhuminhumithumorhumphhumpyhumpshumushunchhundihunkyhunkshuntshurdshurlyhurlshuronhurrihurryhursthurtyhurtshushohushthuskyhuskshussyhutchhutiahutrehuzzahuzzyyabbiyabbyyabooyacalyaccayachtyacksyadimyaffsyageryagisyaguayahanyahooyairdyajnayakanyakinyakkayakutyallaiambeiambiiambsyamelyamenyameoyampayamphyamunyananyangsyankyyanksianusyaplyyapokyaponyappyyaquiyarayyarakyardsyareryarkeyarlyyarnsyarryyarthyashtyasnayaudsyauldyaupsyawedyaweyyawlsyawnyyawnsyawpsyazooiberiibotaicacoicasmiceniichorichthicicaiciericilyicingickerickleycladiconsiconvicticictusidahoidaicidantidcueiddatiddhiiddioidealideanideasidentidestidetaidgahidyllidylsidiomidionidiotidismidistiditeidledidleridlesidolaidolsidoseidrylyeansyearayeardyearnyearsyeastyecchyechyyechsyeechyeggsyelekyelksyellsyelpsyemenyentayenteyeplyyerbayergayerksierneyerthyervayesesyessoyestyyetisyettsyeukyyeuksyevenyezdiyezzyyfereifintifreeifritygapoigaraigdyrighlyiglooiglusignawignisihlatihramiiasayieldyikesyillsyinceyinstyipesyirdsyirrsyirthijmaaijoreikaryikonaikonsilamaileacilealylemsileonileumileusiliaciliadilialilianiliauilimailioniliumillerillthillusilokoimageimagoimamsimaumimbanimbatimbedimberimbueimcntimideimidoimidsimineiminoimmewimmisimmitimmiximmovimmunimparimpedimpelimpenimperimpisimplyimpotimputimshiimviainactinajainaneinaptinarkinarminbyeinbowincanincasincleincogincorincraincurincusincutindanindefindewindexindiaindicindiiindylindinindivindolindowindraindriinducindueindusineyeineptineriinerminertinferinfininfitinfixinfosinfrainganingemingeringleingluingotinialinigoinioninjuninkedinkeninkerinketinkieinkleinkosinkrainlayinlawinletinmewinnedinnerinnetinomainoneinorbinorginputinrolinrubinruninseainseeinsepinsetinsolinstrinsueintelinterintilintnlintraintrointsvintueinulainureinurninustinvarinvoyinwityobboyoccoyocksiodalyodelyodhsiodiciodidiodinyodleiodolyogasyogeeyoghsyogicyoginyogisyoickyojanyokedyokelyokeryokesyolkyyolksyomeryomimyominyomudionicyonicyonisyoresiortniotasyouffyoungyoureyournyoursyourtyouseyouthyouveyouzeyoveniowanyowedyowesyowieyowlsiphisyquemiradeiraniiraqiirateirbisirenaireneireosirfanirgunirianiridoiringirishirkedirohairokoironeironyironsirousirpexirredirregirvinirwinisaacisawaisbasiseumisiacisingisizeislayislamisledislesisletislotismalisnadisolnisortisseiissueisthmistleitalaitaliitalyitchyitczeitemyitemsitersitherytteryuansyuccayucchyuchiyuckyyucksyugasyukonyulanyulesiulusyumanyummyyuncayuponyurakyurokyurtayurtsyurukiviediviesivoryivrayixiasixionixoraixtleizardizarsizingizoteiztleizumiizzatjabiajabotjabuljacaljachtjackyjackojacksjacobjadedjadesjagatjagerjaggyjaggsjagirjaglajagrajaguajahvejailsjaimejainajakeyjakesjakobjakosjakunjalapjaleejaletjalopjalorjalurjamanjambejambojambsjamesjamiejammyjanesjanetjanosjantyjantujanuajanusjapanjapedjaperjapesjapyxjardejaredjarlsjarmojarrajarryjarvyjaseyjasonjaspejathajatkijatnijatosjauksjauntjaupsjavanjavasjaveljaverjawabjawanjawedjazeyjazzyjeanyjeansjebatjebeljebusjeepsjeeryjeersjefesjehadjehupjehusjelabjelibjellyjellojellsjembejemezjemmyjennajennyjerezjeribjeridjerkyjerksjerryjessejestsjesusjetesjetonjettyjewedjeweljewisjewryjheeljhooljibbajibbyjibbsjibedjiberjibesjiboajiffyjiffsjiggyjihadjillsjiltsjimbojimmyjimpyjingojingujinjajinksjinnijinnyjinnsjiquijirgajismsjitrojivedjivesjixiejizyajnanajockojocksjocumjodeljoeysjohanjohnsjoycejoyedjoinsjointjoistjokedjokeyjokerjokesjokuljolesjollyjoltyjoltsjomonjonahjonasjonesjoolajoramjoreejorgejorumjoseyjoshijosiejosipjotasjottyjoualjoughjougsjouksjoulejournjoursjoustjowarjowedjoweljowerjowlyjowlsjowpyjuangjuansjubasjubbejubesjubusjudahjudasjudexjudgejudosjuftijuftsjugaljugerjugumjuyasjuicejuicyjuisejujusjukedjukesjulepjulesjuliajulidjuliejuliojulusjumbajumbyjumbojummajumpyjumpsjuncojundyjunkyjunksjuntajuntojupesjuponjuraljuratjureljurisjurorjussijustojustsjutesjuticjutkajuttyjuviajuxtakaabakaamakababkabarkabelkabobkachakadiskadmikadoskafirkafizkafkakaftakagoskaguskaharkahaukaiakkayakkayankaifskailskaimokainskayoskaiwikajarkakankakarkakaskakiskakkekalamkalankaleskalifkaliskalonkalpakamaokamaskambakamelkameskamikkamiskanaekanapkanaskanatkandekanehkaneskangakanjikannukansakanzukaonskapaikapaskaphskapokkappakappekapurkaputkaratkarbikarchkarelkarenkarezkarmakarnskarookaroskaroukarrikarstkartskaserkashakashikaskakassukatarkatatkathakathykatiekatikkatunkauchkaurikaurykavaskaverkazakkazookeachkearnkeatskeawekebabkebarkebbykebobkeckykeckskedarkedgekedgykeechkeefskeekskeelskeenakeenskeepskeestkeetskeevekefirkeftikeyedkeirskeistkeitakeithkeywdkelehkelekkelepkeliakellakellykelpykelpskeltykeltskemalkempykempskemptkenafkenaikenchkendykendokenyakennykennokenoskentekeoutkepiskeratkerbskerchkerelkereskerfskeryxkernekernskeroskerrikerrykervekesarkesseketalketchketenketylketolkettekettykevankevelkeverkevilkevinkevynkexeskhadikhayakhairkhajakhakikhamikhanskhasakhasikhasskhatskhedakhilakhmerkhojakhokakhondkhuaikhulakhuzikhvatkiaatkiackkyackkiakikiangkyangkyarskyatskibeikibeskiblakickykickskiddykiddokiefskieyekierskiyaskikarkikeskikkikikoikilahkilankilehkileykyliekilijkilimkylinkylixkillykillskilnskyloekilomkiloskiltykiltskimbokimmokinahkinchkindskineskingskingukinickininkinkykinkskinookinoskinotkioeakiokokioskkyotokiowakippykirbykyriekirkskirnskirvekisankishykisrakissykistskiswakitabkitankitarkitedkiterkiteskyteskithekythekithskittykyungkivaskiverkiwaikiwiskizilklansklauskleigklickkliegklingklinoklongkloofklopskloshkluckklunkklutzkmoleknackknapeknapsknarkknarlknarsknavekneadkneedkneelkneesknellkneltknezikniazknyazknickknifeknishknitskniveknobsknockknoitknollknopsknorrknospknotsknoutknoweknownknowsknurlknursknuteknuthkoalakoalikoanskobankobuskodakkodrokoelskoerikoftakogaikogiakohenkohlskohuakoyankoilakoinekokamkokankokiakokilkokiokokoskokrakokumkolaskoleakoliskoloskombukonakkondekondokongokongukoniakookakookykookskoorgkopeckopekkophskopiskopjekoppakorahkoraikorankoreakoreckorinkormakoroakorunkorwakoshakosinkososkotalkotarkotoskotowkouzakovilkraalkraftkraitkramakrangkranskrautkrebskreilkreiskremskrengkrepikrillkrinakrisskrivukromekronakronekroonkrosakrubikubbakudoskuduskudzukufickugelkukrikukuikulahkulakkulankumankumbikumykkumiskumyskumnikunaikunbikurkukurmikurtakuruskusamkusankushakussokustikusumkutchkuttakvasskvintkwapakwelalaanglabanlabbalabbylabellabialabislaborlabralaccalacedlaceylacerlaceslacetlachelacislackslactoladedladenladerladesladikladinladlelaetilaevolaganlagenlagerlaglylagnalaharlaichlaicslayedlayerlaighlayialainelaynelairdlairylairslaithlaitylayuplaiuslakedlakeylakerlakeslakhslakielakinlakkelaksalallylallslamaslambalambylambslamdalamedlamellamerlameslamialaminlammylamnalampflamps
lamuslamutlanailanaolanaslanazlancelanchlandelandslaneylaneslangilangolankylannylansalanumlapellapinlapislaponlappalappslapselapsilarchlardylardslareslargelargylargolarialaridlarinlarixlarkylarkslaronlarrylarumlaruslarvalarvelasedlaserlaseslassolassulastylastslatahlataxlatchlatedlatenlaterlatexlathelathilathylathslatinlatkelatonlatrolatuslauanlaudelaudslaughlauialaundlauralaurelaurylautulavaslavedlaverlaveslaviclawedlawkslawnylawnslawzylaxerlaxlylazarlazedlazesleachleadyleadsleafyleafsleakyleaksleanyleansleantleapsleaptlearylearnlearsleaseleashleastleathleaveleavylebanlebenlebeslecheledenledgeledgyledolledumleechleedsleekyleeksleeryleersleeseleetsleftyleftslegallegerlegesleggeleggylegislegitlegoalegualehaylehrslehualeighleilaleissleithlekhalelialemanlemellemmalemnalemonlemurlenadlencalenchlendslendulenesleninlenislennylenoslenselenthlentoleoneleoralepallepasleperlepidleppylepraleprelepryleptalepuslerotlerwalesedlesghlesyalesiylessnlesteletchlethelethylettyletupleuchleucoleudsleumaleungleveelevellevenleverlevetlevinlevirlevislewielewislewthlewtylexialexiclexislhotalianalianeliangliardlyardliarslyartlyaselibbylibelliberlibyalibralibrelibriliccalycealyceelicetlichilichtlycidlicitlickslycuslidarlidialydialidosliegelienslyerylierslieshliestlieuelieuslieutlievelifeylifenliferliftsliganligasligerliggelightlignelyguslyinglikedlikenlykenlikerlikeslikinlilaclilaslileslillyliltslimanlimaslimaxlimbalimbilimbylimbolimbslimbulimedlimeylimenlimerlimeslimitlimlilimmalimmulimnslimoslymphlimpylimpslimsylinaclinchlynchlindalindylindolinealinedlineylinenlinerlineslinetlingalingelingylingolingslinhalinielininlinjalinjelinkylinkslinnelynnelinnslinonlinoslintylintslinumlinuslionslipanlipiclipidlipinlippylipseliraslyreslyriclyridlirotlysedlyseslysinlysislislelysollispslyssalistylistslisztlitailitaslitchliterliteslithelythelithilithylitholyticlitralitrelyttalituilituslivedlivenliverliveslividlivorlivreliwanllamallanolloydlluddloachloadsloafsloamyloamsloansloasaloathloaveloballobarlobbylobedlobesloboslobuslocallochelochilochylochslockylockslocoslocumlocuslodenlodeslodgelodhalodurloeilloessloftyloftsloganlogesloggylogialogiclogieloginlogislogoilogoslohanloharloyalloinslokaoloketlollylollslomtalonerlongalongelongsloobyloochlooedlooeyloofaloofslooielookylooksloomsloonyloonsloopeloopyloopsloordloorylooselootslopedloperlopesloppyloralloranlordylordsloredlorellorenloresloriclorisloroslorrylorumloselloserloseslossylotahlotanlotasloticlotorlotoslottalottelottolotuslouchloueyloughlouielouisloululoupeloupslourdlourylourslouselousyloutyloutslovatlovedloveeloveyloverloveslowanlowedlowerloweslowlylowrylowselowthloxedloxesloxialoxiclreclluauslubeslubralucanluceslucetlucialucidluckyluckslucreluddyluffaluffslugerlugesluianluigiluitelukanlukasluketlulablulavlullylullsluluslumenlummelummylumpylumpslumutlunarlunaslunchlundalunelluneslunetlungelungilungylungslunkalunksluntslupidlupinlupislupuslurallurchluredlurerluresluridlurkylurkslurryluserlushyluskylustylustslususlutaolutealutedluteoluterluteslutraluxesluxusmaanamaarsmabelmacanmacaomacawmaccomacedmacermacesmachimachomachsmacksmaclemaconmacromadammadgemadiamadidmadlymadocmadremafeymafiamaficmafoomagasmagesmaggymaghimagicmagmamagnamagogmagotmagusmahalmaharmahatmahdimahoemahramahrimahuamahwamayanmayasmaybemaidamaydamaidymaidsmaidumayedmayeymayermaiidmailemaillmailsmaimsmainemainsmaintmayntmayormairemairsmaistmaystmaiusmaizemajasmajormajosmakahmakarmakermakesmakosmakuamakukmalaymalammalarmalaxmaleemaleomalesmalgrmalicmaliemalikmallsmalmymalmsmaltamaltymaltomaltsmalummalusmalvamalwamamasmambamambomambumameymamiemammamammymamrymanakmanalmanasmanbamandemandimandsmanedmanehmaneimaneymanesmanetmangamangemangimangymangomaniamanicmanidmaniemanismanitmaniumankymanksmanlymannamannymanocmanormanosmanqumansemansomantamantymantomanufmanulmanusmaorimapaumaplemappymaquimaraemarahmaraymaralmarasmarchmarcimarcomarcsmardimardymarekmaresmargamargemariamaridmariemariomarismarysmarkamarkomarksmarlamarlimarlymarlsmarokmarormarosmarrymarsemarshmarsimartymartsmartumarvymasaimasermashamashymasksmasonmassamassemassymastymastsmataimatarmataxmatchmatedmateymatermatesmathamathemathsmatiematinmatkamatlomatramatsumattamattemattimattymattsmatzamatzomaubymaughmaulsmaundmaurimautsmauvemavenmaviemavinmavismawedmawkymawksmaximmaxismazdamazedmazelmazermazesmazicmazurmazutmbayambiramborimbubamccoymckaymeachmeadsmealymealsmeanymeansmeantmeasemeathmeatymeatsmeaulmebosmeccameconmecummedalmedeamediamedicmediimediomedlemedocmeecemeechmeedsmeeksmeesemeethmeetsmeggymeijimeilemeinymeithmelammelasmelbamelchmeldsmeleemelesmeliamelicmelismellsmeloemelonmelosmeltsmemosmenadmenatmendemendimendymendsmenicmenowmensamensemenskmentamenusmeowsmerakmeratmercemerchmercimercymeredmerelmerermeresmergemerghmerilmeritmerksmerlemerlsmeropmerosmerrymersemesadmesalmesasmeselmesemmeshymesicmesnemesonmessemessymesuametadmetaemetalmetasmetedmetelmetermetesmethomethsmeticmetifmetinmetismetolmetrametremetrometusmetzemeunimeusemeutemewedmewermewlsmezzomhorrmyallmiamimiaoumiaowmiasmmiaulmiauwmicahmicasmichemichtmickymicksmycolmicramicromidasmiddymidermidgemidgymidismidstmiensmiffymiffsmiggsmightmikedmikeymikesmikiemikirmikramilanmylarmilchmilermilesmilhamiliamilitmilkymilkomilksmillamillemillymillsmilormilosmilpamiltymiltsmymarmimedmimeomimermimesmimicmimirmimlymimsymimusmimzyminaeminahmynahminarminasmynasminbumincemincymindsminedminerminesmingemingymingominieminimminisminksminnyminorminosminotminowmintymintsminumminusmyoidmyomamyopemyopymyopsmiqramiracmirakmiredmiresmirexmiridmirkymirksmirlymyronmyrrhmirthmirvsmirzamiscemisdomyselmisermisesmisgomysidmysismiskymislymisosmissamissymistymistsmitchmitermitesmythsmitismitramitremittymittsmituamixedmixenmixermixesmixupmizarmizenmizzymnagemnememniummoansmoatsmobbymobedmobilmoblemochamochemochymocksmocoamodalmodelmodemmodermodesmodgemodifmodocmodusmoeckmoggymogosmogulmoharmohelmohosmohurmohwamoyenmoiermoilemoylemoilsmoiramoiremoisemoismmoistmoitymojosmokesmokummolalmolarmolasmoldymoldsmolermolesmoletmolgemolkamollamollemollymollsmolpemoltomoltsmolvimomesmommamommemommymomusmonadmonalmonasmonaxmondemondomoneymonelmonermongomonicmoniemonksmonnymonosmontemonthmontymontumoochmoodymoodsmooedmoolamoolsmoongmoonymoonsmooremoorymoornmoorsmoosamoosemoostmoothmootsmopanmopedmopeymopermopesmoplamoppymopsymopusmoquimoraemoraymoralmoranmorasmoratmordumordvmorelmoresmorgamoricmorinmormomornemornsmorocmoronmorormorphmorramorromorsemorthmortsmorusmosanmoseymoselmosesmosgumosksmossimossymossomostemostsmosulmosurmotedmoteymotelmotermotesmotetmothymothsmotifmotonmotormottemottymottomottsmouchmoudymouesmouldmoulemoulymoulsmoultmoundmountmournmousemousymouthmovedmovermovesmoviemowchmowedmowermowhamowiemowramowsemowthmoxasmoxiemozosmphpsmpretmsinkmstermtiermuangmucicmucidmucinmuckymucksmucormucromucusmudarmuddemuddymudeemudirmudramuffymuffsmuftimuftymuggymuggsmughomugilmuhlymuistmujikmukrimuktimulchmulctmuledmuleymulesmuletmulgamullamullsmulsemultimultomumbomummymummsmumpsmumsymunchmundamungamungemungymungomuniamunicmuntzmuongmuonsmuralmuranmurasmuratmuredmuresmurexmurgamuridmurkymurksmurlymurmimurphmurramurremurrymurrsmurutmurvamurzamusalmusarmuscamuscimusedmusermusesmusetmusgumushamushymusicmusiemusitmuskymusksmussymusthmustymustsmutchmutedmutermutesmuticmuttsmutusmuzzynabaknabalnabbynabisnablanablenabobnachenachonacrenacrynadirnaevinagelnaggynaghtnagornahornahuanahumnaiadnayarnaiasnaifsnailynailsnairanairynaishnaivenakednakernakirnakoonalednamaznambenambynamdanamednamernamesnammanammonanasnancenancynandanandinandunanesnangananmunannynantsnantznaominaotonapalnapesnapoonappanappenappynarconarcsnardsnardunarennaresnaricnarisnarkynarksnarranasabnasalnasatnaschnassanastynasuanasusnatalnatchnatesnathenattynatusnauchnaumknauntnavalnavarnavelnavesnavetnavewnavignavisnavvynawabnawlenawobnazimnazirnazisneapsnearsneathneatsnebbynebelnecianecksnecroneddyneedyneednneedsneelaneeldneeleneemsneepsneeseneezenefasneffynegernegronegusnehruneifsneighneistnejdinellynemasnemosnenesnentaneonsneozanepalnepernepitneralnerdsnerkanerolnertsnertznervenervynestynestsneternetopnettynettsneumaneumeneumsnevatnevelnevennevernevesnevoynevusnewarnewelnewernewlynewsynewtsnexalnexumnexusngaiongapingokongomangweenyayaniaisnyalaniallniatanibbynicernichenichtnickynicksnicolnidalnidednidesnidgenydianidornidusniecenielsniepanievenificnifleniftynigelnighsnightnigreniguanihalnihilnikaunikkonikonnillsnylonnilotnimbinymilnymphnymssninesninjaninnyninonninosninoxninthnintuninutniobenyoroniotanipasnippynirisnirlsnisanniseinyssanissenisusnitchniternitidnitonnitosnitrenitronittanittyniuannivalnixednixernixesnixienyxisnixonnizamnizeynjavenobbynobelnobisnoblenoblynobutnochtnocksnodalnoddinoddynodednodesnodusnoelsnoeminogainogalnoggsnohexnohownoyaunoilynoilsnointnoirenoisenoisynoktanollenolosnomadnomapnomasnomennomesnomicnomoinomosnonasnoncenondanondononesnonetnonyanonicnonylnonlynonnynookynooksnoonsnoosenopalnorahnorianoricnorienoritnormanormsnornanorrynorsenorsknorthnosednoseynosernosesnosignotalnotannotchnotednoternotesnotrenotumnotusnouldnounsnovaenovasnovelnovemnovumnovusnowaynowchnowednowelnowtsnoxalnpeelnuadunubbynubianucalnuchanucinnuddynudernudesnudgenudienudumnudzhnugaenukesnullonullsnumacnumbsnumdanumennumisnumminumpsnumudnuncenunchnunkinunkynunksnunninunrynuquenurlynurlsnurrynursenursynutsynuttyoadaloakenoakumoaredoaricoasaloasesoasisoastsoatenoateroathsoavesobeahobeysobeliobeseobiasobiitobitsobjetoblatobleyobmitoboesoboleoboliobolsoccasoccuroceanocherochnaochreochryochroocyteockerocoteocqueocreaoctadoctaloctanoctetocticoctylocubyoculiodderoddlyodellodeonodeumodyleodylsodistodiumodoomodorsodouroecusoeletoeninofaysoffaloffedofferofficoftenofteroftlyogamsogeedogeesoghamoghuzogiveogledogleroglesogmicogresohareoheloohiasohingohmicohoneoyanaoicksoidiaoyersoiledoileroyletoinksoisinokaysokapiokehsokrasokrugolchaolchioldenolderoldieoleicoleinolenaolentoleosolepyoleumoliosolivaoliveollasollavollieologyolonaolpaeolpesolsonomahaomaniomasaomberombreomegaomensomersominaomitsomlahomnesomrahonceroncesoncet
onciaoncinoneryonymyoniononiumonkeronkosonlayonlaponmunonsetontalonticoobitoohedoolakoollyoomphoopakoopodoorieootidoozedoozesoozoaopahsopalsopataopeluopensoperaophicophirophisopineopingopiumopsinoptedopticorachoracyorageoraleoralsorangoransorantoraonoraryorateorbedorbicorbitorcasorcinorderordosoreadoreasorgalorganorgiaorgicorgueoriasoribiorieloriyaorionoryzaorkeyorlesorletorlonorloporlosormerornesornisoromoorpinorpitorrisorroworselorsonortetorthoortyxortolorvetosageosakaoscanoscaroscinoselaoshacosheaosideosieroskarosmicosminosmolosoneossalosseaossetossiaostiaosticotaryotateotherothinotyakotiumotkonotomiottarotterottosouabeoughtouijaoukiaoulapounceoundyoundsoupheouphsourieouselousiaoustsoutasoutbyoutdooutedoutenouteroutgooutlyoutreouvreouzelouzosovalsovantovaryovateovensoversovertovestovileovineovismovistovoidovoliovoloovulaovuleowghtowingowlerowletownedownerowsenowseroxaneoxboyoxbowoxeyeoxflyoxideoxidsoximeoximsoxlipoxmanoxterozarkozenaoziasozonepaauwpablopacaypacaspacedpacerpacespachapachtpackspacospactapactspaddapaddypadgepadlepadoupadrepadripaduspaeanpaeonpaganpagedpagerpagespagnepagodpaguspahmipahospayedpayeepayenpayerpaikspailspainepaynipainspaintpayorpairspairtpaisapaisepalaypalarpalaspalaupalchpaleapaledpalerpalespaletpalewpalispalkipallapallipallypallspallupalmapalmypalmopalmspalpipalpspalsypaltapaluspamhypamirpampapanakpanaxpandapandypanedpanelpanespangapangipangspanicpannapannepanospansepansypantypantopantspanuspaolapaolopapalpapaspapawpapeypaperpapiopapyrpappipappypapuapaqueparahparamparaoparasparchpardepardipardypardopardsparedparelparenparerparespareupargepargoparisparkaparkyparksparleparliparlyparmaparolparraparryparrsparseparsipartepartipartypartopartsparusparvepasanpaschpaseopasespashapashmpasispasmopassepassopassupastapastepastypastspasulpataopataspatchpatedpateepatelpatenpaterpatespathypathspatiapatinpatiopatlypatsypattapattepattypattupaukypaulapausepauxipavanpavedpavenpaverpavespaviapavidpavinpavispawawpawedpawerpawkypawlspawnspaxespbxespeacepeachpeagepeagspeakypeakspealspeanspearlpearspeartpeasepeasypeatypeatspeavypebanpecanpechspechtpeckypeckspecospedalpedeepedespedropedumpeekepeekspeelepeelspeenspeeoypeepypeepspeerypeerspeertpeevepeggypegmapeinepeinspeisepeizepekanpekespekinpekoepelespelewpelfspelonpeltapeltspenalpencependapendnpendspenespengopenispennapennipennypensepensypentapenuppeonypeonspeplapepospeppypepsiperaiperaupercaperchpercyperdyperduperesperilperisperitperkyperksperlaperlepermsperrypersepertyperunpesahpeskypesospestepestspetalpeterpetitpetospetrepetripetropettipettypettopetumpeuhlpeweepewitpflagpfundpgnttphacaphaetphagephanephanopharepharmpharophasephasmphealphebephenephenypheonphialphiesphylaphylephillphymaphysaphloxphobyphocaphomaphonephonyphonophonsphoraphosephossphotophotsphphtphrenpiabapialapianopianspiastpibalpicaepicalpicaspiceapychepichipickypickspicotpicrapicrypiculpicuspidanpiecepiendpierspiertpiestpietapietepietypiezopygalpiggypightpiglypigmypygmypiingpyinspikaspikedpikeypikelpikerpikespiklepilafpilarpylarpilaupilawpilchpileapiledpileipilerpilespylicpilinpilispillspilmypilonpylonpilotpilumpiluspimanpimaspimpspinalpinaspinaxpinchpindapindypinedpineypinerpinespingepingopingspinicpinylpinkypinkopinkspinnapinnypinonpinotpynotpintapintepintopintspinuppinuspyoidpionspiotrpiouspioxepipalpipedpipeypiperpipespipetpipidpipilpipitpippypiprapiquepyralpyranpyrespyrexpyricpirnypirnspirogpirolpirotpyruspisaypisanpiscopishupiskypistepisumpitaspitaupitchpithypithspitonpittapiuripiutepivotpiwutpixelpixespyxespixiepyxiepyxispizzaplaceplackplagaplageplayaplaidplainplaysplaitplaneplangplankplansplantplashplasmplassplateplatyplatoplatsplattplaudplazapleadpleaspleatplebeplebspleckpleisplenaplenypleonplicapliedplierplyerpliesplinyplinkplissploatploceplockplodsploysplombplonkplookplopsploteplotsplottplotxploukploutplowspluckpluffplugsplumaplumbplumeplumyplumpplumsplunkplupfplushplutopneumpoachpobbypocanpochepockypockspoculpocuspodalpoddypodexpodgepodgypodiapodospoemspoesypoetspogeypoggepoggypohnapoilupoindpointpoyoupoirepoisepokanpokedpokeypokerpokespokiepokompolabpolarpoledpoleypolerpolespoliopolyppolispolyspolitpoljepolkapolkipollypollspoloipolospomakpombepombopomeypomelpomespommepommypompapompsponcaponcepondypondopondsponeyponespongapongoponjaponospontopoochpoodspoohspookapoolipoolypoolspoonspoopspooripoortpootypoovepopalpopespopiepoppapoppypopsyporalporchporedporerporesporetporgeporgyporgoporiaporkyporkspornopornsporosporryportaporteportyportoportsporusposcaposedposeyposerposesposhopositpossepossypostspotchpoterpotoopotsypottipottypottopotuspoucepouchpoucypouffpoufspoulepoulppoultpoundpourspousypoutypoutspowanpowerpownypoxedpoxespozzypraampradoprahmprahuprayaprayspramspranaprandprangprankpraosprasepratepratsprattprausprawnpredypreedpreenpreespreysprelaprepdprepgprepnprepspresapresepressprestpretapreuxpreveprexypriampriceprichpricyprickpridepridypriedprierpryerpriesprigsprillprimaprimeprimiprimyprimoprimpprimsprineprinkprintprionpriorprisepryseprismprisspriusprivyprizeproalproasprobeproddprodsproemprofsprogsprokeprolepromopromsproneprongproofproprpropsproreproseprosyprosoprossprostproteprotoproudproveprowlprowsproxyprudeprudyprunepruntprutapsalmpsendpseudpshavpshawpsychpsizepsoaepsoaipsoaspsorapubalpubespubicpubispucespuckapuckspuddapuddypudgepudgypudicpudsypuffypuffspugetpuggipuggypugilpuistpukedpukerpukespukkapulaspuledpulerpulespulexpulikpulispulkapullipullspulpypulpspulsepumaspumexpumpspunanpunaspuncepunchpunctpungapungipungypungspunicpunkapunkypunkspunktpunnypuntapuntipuntypuntopuntspupaepupalpupaspupilpuppypuraupurdapurdypuredpureepureypurerpurgapurgepurimpurinpurispurlspurrepurrypurrspursepursypurtypusespushypussyputidputonputtiputtyputtoputtsqaidsqanatqatarqianaqiblaqiyasqophsquackquadiquadsquaffquagsquailquaisquaysquakequakyqualequalmquantquarequarkquarlquartquashquasiquassquataquatequaukquavequawkqubbaqueakquealqueanqueenqueerqueetqueghqueysquellqueltquemequentqueryquerlquernquestqueuequicaquickquidsquietquiffquilaquillquiltquinaquinkquinsquintquipoquipsquipuquiraquirequirkquirlquirtquistquitequitoquitsquituquoadquodsquoinquoitquotaquotequothquottqurshqurtiraashrabalrabatrabbirabicrabidrabinrabotracedracerracesracheracksraconradarradekradiiradioradixradlyradonrafferaffsrafikraftyraftsragasragedrageeragerragesraggyraghuragisrahulraiaerayahrayanraiasrayasrayatraidsrayedrailsrainyrainsrayonraiserajabrajahrajasrajesrajivrakanrakedrakeerakerrakesrakisrakitralesrallyralphramalramanramboramedrameerametramexramierammirammyramonrampsramtaramusranalranceranchrandyrandnrandsraneerangerangyranidranisranksranlirannyrantyrantsrapedraperrapesrapherapicrapidrapperarerrasedrasenraserrasesrasonraspyraspsrasserastyratalratanratchratedratelraterratesratharatheratioratosrattirattyratwaraulirauporavedravelravenraverravesravinrawerrawinrawkyrawlyraxedraxesrazedrazeerazerrazesrazoorazorreaalreachreactreaddreadyreadlreadsreaksrealmrealsreamyreamsreapsrearmrearsreasyreaskreastreatareaverebabrebagrebanrebarrebberebecrebedrebegrebelrebiarebidrebobrebopreboxrebudrebuyrebusrebutrecapreccereccyreccoreciprecitrecksreconrecptrectarectirectorecurrecutredanreddyreddsrededredesrediaredidredyeredigredipredlyredosredoxredryredubredueredugreduxreedyreedsreefyreefsreekyreeksreelsreesereeskreestreeverefanrefedrefelreferrefforefitrefixreflyrefryregalregelregesregetreggaregiaregiereginregleregmaregnaregurrehemrehidrehoereicereichreifyreifsreignreinareinkreinsreistreiverejigrekeyrelayrelaprelaxrelesreletrelicreligrelitrelotremanremapremenremetremexremitremixremopremueremusrenayrenalrendsrendurenegrenesrenetrenewrengarenigreninrenkyrennerenterentsreoilreownrepadrepayrepasrepegrepelrepenrepewrepicrepinreplyrepotreppsrepryreproreranrereererigrerobrerowrerubrerunresayresatresawreseeresetresewresexresidresinresitresowrestyrestrrestsresueresunresupretagretalretanretarretaxretchretemretheretiaretieretinretipretryretroreuelreunereuserevayrevelreverrevetrevierevuerewanrewaxrewedrewetrewinrewonrexenrexesrfreerhamnrheaerheasrhedarheenrheicrheinrhemarhemerheumrhilarhymerhymyrhinarhinerhinorhytarhodarhoeorhombrhumbrialsriantriataribatrybatribbyribesricedriceyricerricesricherichtricinrickyricksridenriderryderridesridgeridgyrielsriferriffiriffsrifleriftyriftsrigelrightrigidrigolrigorriyalrykedrykesriledrileyrilesrillerillyrillsrimalrimasrimedrimerrimesrimpirinchrinderindyrindsryndsringeringyringsrinkarinksrinseriotsryotsripalripedripenriperripesripuprisenriserrisesrishiriskyrisksrisqurisusritesritheritsuritusritzyrivalrivedrivelrivenriverrivesrivetrizarroachroadsroamsroansroarsroastrobedroberrobesrobinroblerobotroburrocherockyrocksroctarodeorodgeroganrogerrogueroguyrohanrohobrohunroyalroyetroilyroilsroyouroistrojakrokeerokeyrokerroleorolesrolferollorollsromalromanromeoromicrompyrompsrompuroncoronderondorongaroninronniroodsrooedroofyroofsrookyrooksroomyroomsroosarooseroostrootirootyrootsrooveropedropeyroperropesroqueroralroricroridrortyrosalrosedroselrosesrosetroshirosinrotalrotanrotasrotchroterrotesrotgerotlsrotorrotosrotserottarotterouenrouesrougeroughrougyroukyroundroupyroupsrouseroustrouterouthroutsrovedrovenroverrovesrovetrowanrowdyrowedrowelrowenrowerrowetrowterowthrowtyroxierozumruachruanarubbyrubesrubiarubinrubleruborrubusrucheruckyrucksrudasruddyruddsruderrudgeruelyruersrufferuffsrufusrugaerugalrugbyruggyruingruinsruledrulerrulesrumalrumanrumbarumborumenrumexrumlyrummyrumorrumpyrumpsrunbyrunchrundirunedrunerrunesrungsrunicrunnyrunsyruntyruntsrupeerupiarupieruralrusesrushyrusinruskyrusksrusmarusotrusserustyrustsrutchruthsruticrutylrutinruttyruvidsabalsabansabbysabedsabersabessabiasabiksabinsabirsablesablysabotsabrasabresabzisacaesackssacrasacresacrysacrosadessadhesadhusadicsadiesadissadlysaetasafarsafensafersafessagaisagansagassagersagessaggysagossagrasagumsahibsahmesayalsaicesaidisaidssayeesayersaifysaigasaiidsayidsailysailssaimysainssaintsaiphsairysaystsaitesaithsaivasajousakaisakelsakersakessakhasakissaktisaladsalaysalalsalarsalatsalemsalepsalessaletsalicsalixsallesallysalmasalmisalmosalolsalonsalpasalpssalsasalsesaltasalty
saltssaludsaluesalussalvasalvesalvysalvosamajsamalsamansamassambasambosameksamelsamensamirsammysamoasampisampssanaisancysanctsandysandssanedsanersanessangasanghsangusanitsankasansisantasantysantosapansapeksapidsapinsapitsaplesaporsappysaqibsarafsarahsaransardssareesargesargosarifsarinsaripsarissarkysarkssarnasarodsaronsarossarposarrasarsasarsisaruksarumsarussasansasinsassesassysataisatansatedsatemsatessatinsatyrsatissaubasaucesauchsaucysaudisaughsauldsaulssaultsaunasauntsaurasaurysautesautysauvesavedsaveysaversavessavinsavoysavorsavvysawahsawansawedsawersawnysaxessaxonsazenscabsscadsscaffscagsscalascaldscalescalfscalyscallscalpscaltscalxscalzscampscamsscansscantscapescarescarfscaryscarnscarpscarsscartscasescatsscattscaulscaumscaupscaurscautscawdscawlsceatscelpscenascendscenescentschavschizschmoschuhschulschwascianscyldscindscionsciotscythsclatsclavsclawsclersclimscoadscobsscoffscokescolbscoldscommsconescoonscoopscootscopascopescopsscorescornscotescotsscottscoukscoupscourscoutscovescovyscowlscowsscrabscraescragscrayscramscranscrapscratscrawscreescrewscrimscrinscripscritscrobscrodscrogscrooscrowscrubscrufscrumscubascudiscudoscudsscuffscuftsculkscullsculpscultscumsscupsscurfscusescutascutescutssdumpsealysealsseamyseamssearysearsseatsseaveseavysebatsebumseccosecnosecossecresectssecussedansedatsedersedgesedgysedumseechseedyseedsseegeseeksseelyseelsseemsseenuseepyseepsseerssegarseggysegnisegnosegolsegossegouseguesehyoseigeseineseiseseismseityseizesekarsekersekosselahselfssellasellesellisellysellsselvasemeesemelsemensemessemicsemihsemissenalsenamsencesencisendssenexsengisenitsennasenorsensasensesensosensusentisentssenvysenzaseoraseoulsepadsepalsepiasepicsepoyseppaseptaseptiseptsseqedsequaseqwlserabseracseraiseralserauserawseredserehsererseresserfssergesergtsericserifserinseriosermoseronserowserraserrysertaserumserutserveservosesiasesmasessasestisetaesetalsetonsetupseughsevenseversevumsewansewarsewedsewensewersewinsexedsexessexlysextosextssfootsfreeshackshadeshadyshadoshadsshaftshagsshahishahsshaysshakashakeshakyshakoshakushaleshalyshallshaltshamashameshamsshaneshangshankshantshapeshapyshapsshardsharesharisharksharnsharpshaulshaupshaveshawyshawlshawmshawnshawssheafshealsheanshearsheassheatshedsshedusheelsheensheepsheersheetsheikshelasheldshelfshellshemashemushendshengshentsheolsherdshethshevashewashewnshewsshiahshiaishyamshiceshickshideshiedshielshiershyershiesshiftshikoshilfshilhshilyshylyshillshimsshinashineshinyshinsshipsshiptshireshirkshirlshirrshirtshishshisnshistshitashitsshivashiveshivyshivsshlepshluhshoadshoalshoatshockshodeshoedshoershoesshogishogsshoyashoyushojishojosholasholeshonashoneshoodshooishookshoolshoonshoopshoorshoosshootshopeshopsshoreshorlshornshortshoteshotsshottshoutshoveshowdshowyshownshowsshrabshrafshragshramshrapshredshreeshrewshripshrisshrogshrubshrugshubashuckshuffshulnshulsshuneshunsshuntshureshurfshushshuteshutssiafusialssibbysibbssibylsybilsybowsiccasyceesicelsicersicessycessichtsickssiclesyconsidedsidersidessidhesidiasidlesidthsiegesienasiestsieursievasievesievysifacsyftnsiftssighssightsigilsiglasigmasignasignssikarsikersikessykessiketsikhssikrasilassildssilensilexsylidsilylsilkysilkssillysillssilossylphsiltysiltssilvasylvasimalsimarsimassimbasimiasimonsimpssimulsinaesinalsincesynchsyncssinessinewsingesinghsingssinhssinicsinkysinkssynodsinonsynopsintosintusinussiouxsipedsipersipessipidsippysiredsireesirensyrensiressirexsyriasirihsirissirkisirkysyrmasirocsiropsirossirrasirupsyrupsyrussisalsiselsisessysinsissysissusitaositarsitchsitedsitessithesitiositkasittasitupsitussiumssiusisivansiversiwansixersixessixmosixtesixthsixtysizalsizarsizedsizersizessjaakskaffskagsskailskairskaldskartskateskatsskeanskeatskeedskeegskeelskeenskeerskeesskeetskegsskeifskeinskelfskellskelpskempskeneskepsskereskerssketeskewyskewlskewsskiceskidiskidsskiedskyedskieyskyeyskierskiesskiffskiftskiisskillskimeskimoskimpskimsskinkskinsskintskipsskyreskirlskirpskirrskirtskiteskyteskitsskiveskivyskiwyskoalskootskoutskuasskulkskullskulpskunkskuseslabsslacksladeslagsslainslaysslaitslakeslakyslampslamsslaneslangslankslantslapeslapsslareslartslashslaskslateslathslatyslatsslaumslaveslavislavsslawsslecksledssleeksleepsleersleetsleysslentsleptsleteslewssliceslichslickslideslierslyerslilyslylyslimeslimyslimsslineslingslinkslipeslypeslipssliptslirtslishsliteslitsslivesloansloatslobsslocksloesslogssloidsloydslojdslokaslokesloneslonksloomsloopslootslopeslopyslopsslorpsloshsloteslothslotsslourslowsslubssluedsluersluessluffslugssluigsluitslumpslumsslungslunkslurbslurpslursslushslutssmacksmaiksmallsmalmsmaltsmarmsmartsmashsmazesmearsmeeksmeersmellsmeltsmerksmethsmewssmichsmiftsmilesmilysmirksmitesmithsmythsmocksmogssmokesmokysmokosmoltsmooksmoossmootsmoresmotesmoussmoutsmrgssmurrsmusesmushsmutssnacksnaffsnafusnagssnailsnakesnakysnapesnapysnapssnaresnarysnarksnarlsnashsnastsnathsnawssneadsneaksneapsnecksnedssneersnellsnerpsnibssnicksnidesnyedsniessnyessniffsniftsnigssnipesnipysnipssnirlsnirtsnitesnitssnitzsnivysnobssnocksnoeksnogasnokesnoodsnooksnoolsnoopsnootsnoresnorksnortsnotssnoutsnowysnowksnowlsnowssnubssnucksnuffsnugssnurlsnurpsnurtsoakysoakssoapisoapysoapssoarysoarssoavesobbysobersochtsociisockysockosockssoclesodassoddysodicsodiosodomsofarsofassofersofiasoftasoftysoftssogersogetsoggysoyassoignsoilysoilssoyotsojassokensokessolaysolansolarsoldisoldosoleasoledsolensolersolessolfasolidsoliosolodsolonsolossolumsolussolvesomalsomassometsommasomnesonarsoncysondesonessongysongosongssonicsonjasonlysonnysonsysooeysookesookysoonysoordsoothsootysootssophysophssoporsoppysoralsorassorbssordasordosordssoreesorelsorersoressorexsorgosornssorrasorrysortysortssorussorvasosiasosiesotersothosothssotiesotiksotolsoughsoulysoulssoulxsoulzsoundsoupysoupssourdsourysourssousesouthsowansowarsowedsowelsowersowlesowsesowtesozinsozlyspaadspacespacyspackspadespadospaedspaerspaesspahispaidspaikspailspainspairspaysspaitspakespaldspalespallspaltspanespangspankspannspanssparesparysparksparmsparsspartspasmspassspatespathspatsspavespawlspawnspeakspealspeanspearspecespeckspecsspectspeedspeelspeenspeerspeilspeirspektspelkspellspeltspendspentspeossperespermspetespewyspewssphexspialspicaspicespicyspickspicsspiedspielspierspyerspiesspiffspikespikyspiksspilespillspiltspinaspinespinyspinkspinsspiraspirespiryspirospirtspisespissspitespitsspitzspivsspladsplaysplatspletsplitspockspodespoilspokespokyspolespongspoofspookspoolspoomspoonspoorspootsporesportsposhspotsspoutspradspragsprayspratspreespretsprewsprigspritsprodsprotspruesprugspudsspuedspuesspukespumespumyspungspunkspurlspurnspursspurtsputasputesquabsquadsquamsquatsquawsquegsquetsquibsquidsquinsquitsquizsrutissingssortsstorstaabstabsstaccstacystackstadestaffstagestagystagsstaiastaidstaigstailstainstaiostairstaysstakestalestalkstallstampstandstanestangstankstaphstarestarystarkstarnstarrstarsstartstarwstashstatestatsstaukstaunstaupstavestawnstchisteadsteakstealsteamsteanstechsteedsteeksteelsteemsteensteepsteersteghsteidsteinstelastelestellstemastemsstendstengstenostentstepssteptsteresteristerksternsterostertstetsstevestewystewsstyanstycastichstickstiedstyedstiesstyesstifestiffstilbstilestylestylistillstylostiltstimestimystymystinestingstinkstintstionstipastipestipostirestirkstirpstirsstitestithstivestivystoaestoaistoasstoatstobsstockstoepstoffstogastogystoicstoitstokestolastoldstolestomastompstondstonestongstonystonkstoodstoofstookstoolstoonstoopstootstopastopestopsstoptstorestorystorkstormstoshstossstottstounstoupstourstoutstovestowpstowsstradstraestragstraystramstrapstrawstreestreystrepstretstrewstriastridstrigstripstritstrixstroystromstropstrowstrubstruestrumstrutstruvstubbstubestubsstuckstudestudystudsstuffstullstulmstumpstumsstungstunkstunsstuntstupastupestuppsturksturtstusssuadesuantsuavesubahsubassubchsubersubetsubrasubstsuccisuckssucresudansuddysuddssudessudicsudorsudrasudsysuedesuentsuerssuetysuetssuevesuevisugansugarsugatsughssugihsugissuinasuinesuingsuintsuyogsuistsuitesuitysuitssukeysulcisuleasulfasulfosulkasulkysulkssullasullysumacsumaksumensummasumossumphsumpssumptsunilsunnasunnisunnysunnssunupsuomisupaisupersupessupplsuprasupvrsurahsuralsurassuratsurdssuredsurersuressurfysurfssurgesurgysuryasurlysurmasurrasusansushisusiesussysussosutorsutrasuttasuzansveltswabsswackswageswagsswailswainswaysswaleswamiswamyswampswangswankswansswapeswapsswardswareswarfswarmswartswashswathswatiswatsswaziswealswearsweatswedesweepsweersweetswegoswellswelpsweltsweptswerdswickswiftswigsswileswillswimyswimsswineswingswinkswipeswipyswirdswireswirlswishswissswithswiveswizzswobsswolnswonkswoonswoopswopsswordsworeswornswoshswotsswounswungswuretaatatabactabbytabeltabertabestabettabictabidtabistablatabletabogtabootabortabustabuttacantaccatacestacettachetachitachstacittackytackstacostacsotactstaelstaffytafiatagaltageltaggytaguatagustahartahiltahintahrstahuataichtayertaigatayirtailytailstainotainstainttaipitaipotayratairntaisetaishtajestajiktakaotakartakedtakentakertakestakintakyrtalaktalaotalartalastalcktalcstaledtalertalestaliotalistalkytalkstallitallytalmatalontalpataluktalustamaltamastambotamedtamertamestamiltamistammytampatampstamultamustanaktanantandytangatangitangytangotangstanhataniatanyatankatankstannatannytanoatansytantitantotanzytapastapedtapentapertapestapettapiatapirtapistapittapoatappatapultaquataraftaraitarautardetardytardotareataredtareqtarestarfatargetarietarintarmitarnstaroctaroktarostarottarpstarretarritarrytarsetarsitartetartstarvetascotaskstassetastetastytatartatertatestatietatootatoutattatattytaubetaulataulitaunttaupetaupotauritautstavertavoytawedtawertawgitawietawnytawpitawpytawsetaxedtaxertaxestaxintaxirtaxistaxontaxortaxustaziatazzatazzetcawitchaitchwiteachteaeyteaerteakstealsteamstearytearsteartteaseteasyteatyteatsteaveteazetebettechyteclatecontectatecumteddytedgeteemsteenyteensteestteethteetyteffsteguateheeteianteiidteindteisetejontekyatekketelaetelartelegteleitelestelexteliatelictelyntellytellstelltteloitelostemantembetembutemintemnetempetempitempotempstempttemsetenaitenchtendotendstenetteneztenguteniateniotenlatenne
tennotennutenontenortensetensotenthtentytentstenuetepaltepastepeetepidteporteraiterapterasterceterekterestereutergatermatermsternaterneternsterraterreterriterryterseterzoteslatestatestetestyteststetchteteltethstetontetratettytetumteuchteughtewedteweltewertewittewlytexantexastextsthackthaisthalathanathanethanktharftharmthatdthatnthatsthavethawythawnthawstheahtheatthecatheektheertheettheftthegntheydtheintheirthemathemethenstheoltheortheostheowtherethermthesethetathetethewythewsthickthiefthighthilkthillthymethymithymythymsthinethingthinkthinsthiolthirdthirlthirtthisnthoftthoketholetholithonethongthoomthorethornthorothorpthortthosethousthowtthramthrapthrawthraxthreethrewthripthrobthroethrouthrowthrumthruvthuanthudsthugsthuyathujathulethulrthumbthumpthundthungthuocthurlthurmthurttiangtiaratibbytibbutibeytibertibettibiaticalticcaticertychetickyticksticultidaltiddytidedtidestydietyeestienstierstiffytiffstigertighttigontigretiguatyightyingtykentikestykestikistikkatikortikurtilaktildatildetiledtilertylertilestiliatillytillstilthtiltytiltstylustimartimbetimbotimedtimertimestimettimidtimnetimontimortincttineatinedtynedtinestynestingetingitingstinnetinnitinnytinsytintatintytintstypaltypedtypeytypertypestyphatypictipistipittipletypostippytyppstipsytipuptiraztiredtyredtirertirestyrestirlstirmatirostyrostirvetisartisictissutystetitantitartitertithetythetitistitletitretittytitustivertiwaztizzytlacotmematoadytoadstoasttodaytoddytodeatodustoffytoffstoftstofustogaetogastogedtoguetohertoyedtoyertoiletoilstoyontoyostoisetoisttoitytoitstokaytokedtokentokestokyotolantolastoldotoledtolestolyltollytollstolustomantomastombetombstomestomiatomintommytonaltonditondotonedtonertonestongatongstonictonkatonnatonnetontotonustoolstoonatoonstooshtoothtootstopastopautopaztopedtopeetopertopestophetophitophstopiatopictopistopogtopoitopostoppytopsytopsltoquetorahtoraltorantorastorchtorcstoredtorestorettorictoriitormatorostorsetorsitorsktorsotortatortetortstorustorvetoscatoshytossytotaltotedtotemtotertotestottytotumtouchtoughtouldtourntourstourttousetousytousttoutstovahtovartovettowaitowantowedtoweltowertowietownytownstowsytoxictoxintoxontozeetozertrabutracetracytracktracttradetradytragitraiktrailtraintraystraittramatrametramptramstranktranstranttrapatrapstrapttrashtrasytrasstravetrawltreadtreastreattreedtreeytreentreestrefatreystrekstrematrendtrenttresstresttretstrewstriactriadtrialtriastribetricatricetricktriedtriertriestrifatrigatrigotrigstriketrilltrymatrimstrymstrinatrinetrinktrioltriortriostrypatripetripytripltripstripttristtrysttritetrixytroadtroaktroattrocatrochtrocktrocotrodetrofttrogstroictroistroystroketrolltromptronatronctronetronktrooptroottrooztropetrothtrotstrouetrouttrouvtrovetrowstrubutrucetrucktrudytruedtruertruestrufftrulytrulltrumptrunktrushtrusstrusttruthtsadetsaditsarstseretsinetskedtsubatsubotsugatsumatuanttuarntuarttuathtubaetubaltubartubastubbatubbytubedtubertubestubigtubiktuckytuckstucumtudeltudortufantufastuffstuftytuftstuguituyertuismtukratulestuliptulletulsatulsitumidtumlitummytumortumpstunaltunastuncatunedtunertunestungatungotungstunictunistunkatunnatunnytupektupiktupletuqueturboturcoturdsturfyturfsturgyturioturkiturksturmaturnsturpsturseturusturvytushytushstuskytuskstuteetutintutlytutortuttituttytuttotutustuxestuzlatwaestwaintwaittwaletwalttwanatwangtwanktwanttwatstweagtweaktweedtweegtweeltweentweettweiltweretwerptwicetwicktwiertwyertwigstwilltwilttwinetwinytwinktwinstwinttwiretwirktwirltwirptwisttwitetwitstwixttwoestzaamtzarsuayebualisuaupeucheeuckiaudasiudderudelludishugaliuglisugricuhlanuhllouhuruuiguruinaluintaukaseulamaulansulcerulcusulemaullerulmiculminulmusulnadulnaeulnarulnasuloidulpanultrauluhiululuulvanulvasumauaumbelumberumbleumbosumbraumbreumestumiacumiakumiaqumiriumistummpsumpedumptyumsetunactunaddunaisunamiunamounaptunaryunarkunarmunausunbagunbayunbarunbedunbetunbidunbitunbogunboyunbowunboxunbuduncapunciauncleuncoyuncosuncowuncusuncutundamundeeundenunderundidundyeundigundimundogundonundryundubundueunduguneyeunfarunfedunfewunfitunfixunfurungagungetungkaungodungotungumunhadunhapunhatunhexunhidunhipunhitunhotuniatuniceunifyuninnunionunismunistuniteunityunitsuniusunjamunkedunkeyunkenunketunkidunkinunlayunlapunlawunlaxunledunletunlidunlieunlitunmadunmanunmetunmewunmixunnetunnewunodeunoilunoldunonaunornunownunpayunpegunpenunpinunpotunputunrayunramunredunridunrigunripunrowunrraunrununsadunsayunseeunsetunsewunsexunshyunsinunslyunsonunstyunsununtapuntaruntaxuntieuntiluntinuntopunurnunuseunwanunwaxunwebunwedunwetunwigunwitunwonunwryunzenunzipupayauparmupbayupbarupbidupbyeupbuyupcryupcutupdosupdryupeatupendupflyupgetupherupjetuplayupleguplitupmixuppedupperuppopupridupripuprunupseyupsetupsitupsunupsupuptieupupaupwayupwaxuraeiuraliurareurariuraseurateurbanurbicurdeeurealureasuredoureicureidurenaurenturgedurgerurgesuriahurialurianurielurineuriteurlarurledurmanurnaeurnalursaeursalursidursonursukursusurubuurucuurutuusageusantusarausentusersushakushasusherusineusinguskokusneausnicusninusqueusterusualusureusuryusurputchyuteesutenduteriuteroutherutickutileutrumutsukutteruvalauvateuvealuveasuvioluvitouvresuvrouuvulauvveruzarauzbakuzbeguzbekvachevacoavacuavacuovadimvadisvagalvagasvaguevagusvailsvairevairyvairsvajravakiavakilvalesvaletvalewvalidvalylvalmyvalorvalsavalsevaluevalvavalvevamosvampsvancevandavanedvanesvangsvanirvapidvaporvappavaranvarasvardavardyvarecvariavariovarixvarnavarusvarvevasalvasesvastyvastsvatesvaticvaudyvaultvauntvealyvealsveddavedetvedicvedroveenaveepsveeryveersvefryveganvegasvehmeveilyveilsveinyveinsvejozvelalvelarveldsveldtvelicveltevelumvenaevenalvendsvenedvengevenieveninvenomventaventsvenuevenusvepseverayverbyverbsverdeverdivereyverekvergevergiverpaverreverryversaverseversoverstvertyvertsvertuverusvervevespavestavestsvetchvetervetusveuvevexedvexervexesvexilviagevialsviandvyasevibesvibexvibixvicarvicedvicesvichyviciavickivickyvicuavicusvideovidyavidryviduaviersviewyviewsvifdavigasvigiavigilvigorvyingvijayvijaovilervillavillevillivillsvimenvimpavinalvinasvincavincevincivineavinedvinervinesvinetvinewvingtvinicvinylvinnyvinodvinosvintavinumviolaviolsviperviralvireoviresvirgavirgevirgoviridvirlsvironvirtuvirusvisasvisedvisesvisievisitvisnevisonvisorvistavistovitaevitalvitisvitravitryvitrovittaviuvavivasvivatvivaxvivdavivekvivervivesvividvivosvivrevixenvizirvizorvizzyvlachvobisvocabvocalvocatvocesvodervodkavodumvodunvogievoguevogulvoicevoidsvoilavoilevolarvoledvolesvoletvolgavolowvoltavoltevoltivoltovoltsvolvavomervomitvorazvotalvotedvotervotesvouchvougevoulivoustvowedvowelvowervraicvroomvrouwvrowsvucomvuggyvuggsvughsvulgovulvawaapawaasiwabbywackewackywackswaddywadedwaderwadeswadgewadiswadnawaefuwaferwaffswaftywaftswagedwagerwageswagetwaggawaggywagonwahoowayaowaifswailywailswaynewainswairdwairswaisewaistwaitswaivewakanwakaswakedwakenwakerwakeswakhiwakifwakonwaledwalerwaleswalkswallawallywallswalshwalthwaltywaltzwamelwameswamuswandywandswanedwaneywaneswangawankywanlewanlywannawannywantywantswanzewappowarchwardswaredwareswarkswarlywarmswarnswarntwarpswarriwarsewarstwarthwartywartswaruawarvewasatwascowaselwashywashowasirwasntwaspywaspswastewastywastswatapwatchwaterwattswauchwaughwaukswaulswaunswaurawauvewavedwaveywaverwaveswawahwawlswaxedwaxenwaxerwaxeswazirweakywealdwealsweanswearywearsweavewebbyweberwechtwedelwedgewedgyweedaweedyweedsweeksweenyweensweentweepyweepsweeshweestweetyweetsweezeweftyweftsweheeweighweirdweirsweismwekaswekauwelchweldswellywellswelshweltswemmywenchwendewendiwendywendswennywerenwershwestewestywestswetlywevetwezenwhackwhalewhalywhalmwhalpwhamewhampwhamswhandwhangwhankwhapswharewharfwharlwharpwhartwhasewhatawhatdwhatswhaukwhaupwhaurwhealwheamwheatwheelwheemwheenwheepwheerwheftwheinwheyswhekiwhelkwhelmwhelpwhenswherewhetswhewlwhewswhewtwhibawhichwhickwhidswhiffwhiftwhigswhilewhilkwhillwhilswhimswhinewhingwhinywhinswhipswhiptwhirlwhirrwhirswhishwhiskwhispwhisswhistwhitewhitywhitswhizzwholewhollwhompwhonewhoofwhoopwhootwhopswhorewhorywhorlwhortwhosewhosowhslewhuffwhulkwhumpwhushwhutewiccawichtwickywickswiddywidenwiderwideswidowwidthwieldwierdwifedwifeswifiewiganwiggywightwiyatwiyotwilcowildswiledwyledwileswyleswilgawilliwillywillswiltswincewinchwindywindswyndswindzwinedwineywinerwineswingywingswinkswinlywinnawynnewynnswinoswinzewipedwiperwipeswiredwirerwireswiroswirrawisedwisenwiserwiseswishawishywishtwysonwispywispswissewistewystywistswitanwitchwitedwytedwitenwiteswyteswithewithywittywivedwiverwyverwiveswizenwizeswlitywlokawoadywoadswoaldwocaswodenwodgewodgywofulwogulwoibewokaswokenwoldywoldswolfswollywolofwolvewomanwombywombswomenwongawonkywonnawontswoodywoodswooedwooerwoofywoofswooldwoolfwoolywoolswoompwoonswoopswooshwootzwoozywopsywordywordsworkyworksworldwormywormsworryworseworstworthwortswouchwoughwouldwoundwovenwowedwrackwrampwrangwrapswraptwrastwrathwrawlwreakwreatwreckwrenswrestwrickwridewriedwrierwryerwrieswrylywringwristwritewrithwritswrivewrokewrongwrootwrotewrothwrungwudgewunnawurlywurstwuzzyxebecxeniaxenicxenylxenonxenosxeresxericxeroxxerusxicakxylanxylemxyliaxylicxylylxylolxylonxincaxyridxyrisxystixystsxoanaxurelxviiixxiiizabrazabtizayatzayinzairezakahzakatzamanzambozamiazandezantezanzazanzezapaszapuszaquezarfszaxeszazenzealszebeczebrazebubzebuszeinszeismzeisszeistzemmizemnizendozerdazermazeroszestyzestszetaszhmudziarazibetziegaziffszygalziganzygonziharzilchzillazillszimbizymeszymiczyminzimmezimmizimmyzincyzincozincszinebzingyzingszinkezinkyzippyziraizirakziramzitiszizelziziazizitzlotezlotyzmudzzoaeazoccozoeaezoealzoeaszoganzohakzoismzoistzokorzollezombizonalzonarzondazonedzonerzoneszoniczontazooidzookszoomszoonazoonszootyzoquezorilzoriszorrozosmazowiezuccozuddazuluszunis
`.match(/\w{5}/g).filter(w => !NOT_USED_IN_WORDLE.has(w))
const OXFORD_5000 = new Set(`
aboutaboveabuseactoracuteadaptadmitadoptadultafteragainagentagreeaheadalarmalbumalertalienalignalikealiveallowalonealongalteramendamongangelangerangleangryankleannoyapartappleapplyarenaarguearisearmedarrayarrowasideassetaudioauditavoidawaitawardawareawfulbadgebadlybasedbasicbasisbeachbeastbeginbeingbelowbenchbirthblackbladeblameblankblastbleedblendblessblindblockbloodboardboastbonusboostboredboundbrainbrandbravebreadbreakbreedbrickbridebriefbringbroadbrownbrushbuddybuildbunchburstcabincablecanalcargocarrycarvecatchcatercauseceasechainchairchaoscharmchartchasecheapcheatcheckcheekcheerchestchiefchildchoirchunkciviccivilclaimclashclasscleanclearclerkclickcliffclimbclingclockcloseclothcloudcoachcoastcomiccouldcountcourtcovercrackcraftcrashcrawlcrazycreamcreepcrimecrosscrowdcrowncrudecruelcrushcurlycurvecycledailydairydancedeathdebutdelaydemondensedepthdevildiarydirtydonordoubtdozendraftdraindramadreamdressdriftdrinkdrivedrowndrunkeagerearlyeartheightelbowelecteliteemailembedemptyenactenemyenjoyenrolensueenterentryequalequiperecterroreruptessayethiceventeveryevokeexactexertexileexistextrafaithfalsefancyfatalfaultfencefeverfibrefieldfifthfiftyfightfinalfirstfixedflameflashfleetfleshfloatfloodfloorflourfluidfocusforceforgeforthfortyforumfoundframefraudfreshfrontfruitfullyfunnygenreghostgiantglassglobegloryglovegoodsgracegradegraingrandgrantgraspgrassgravegreatgreengreetgriefgrindgrossgroupguardguessguestguideguilthabithandyhappyharshhauntheartheavyhellohencehobbyhorsehotelhousehumanhurryidealidiotimageimplyincurindexinferinnerinputironyissuejeansjointjudgejuiceknifeknocklabellargelaserlaterlaughlayerlearnleastleavelegallemonlevellightlimitlitreliverlobbylocallogiclooselorrylowerloyalluckylunchlyricmagicmajormarchmarrymatchmathsmaybemayormeansmedalmediamercymergemeritmetalmetremidstmightminerminormixedmodelmoneymonthmoralmotormountmousemouthmoviemusicnakednastynavalnervenevernewlynichenightnoblenoisenoisynorthnovelnurseoarchoccuroceanofferoftenonionoperaoprilorderorganotheroughtouterownerpaintpanelpanicpantspaperpartypatchpausepeacepennyphasephonephotopianopiecepilotpitchplaceplainplaneplantplatepleadpointpoundpowerpresspriceprideprimeprintpriorprizeprobeproofproudprovepulsepunchpupilqueenqueryquestqueuequickquietquitequotaquoteradarradioraiserallyrangerapidratioreachreactreadyrealmrebelreferreignrelaxrenewreplyriflerightriskyrivalriverrobotroughroundrouteroyalrugbyruralsadlysaintsaladsaucescalescarescaryscenescopescorescrewseizesenseservesevenshadeshakeshallshameshapesharesharpsheepsheersheetshelfshellshiftshineshinyshirtshockshootshoreshortshoutshrugsightsillysincesixtyskillskirtskullslashslavesleepsliceslideslopesmallsmartsmashsmellsmilesmokesnakesolarsolidsolvesorrysoundsouthspacesparesparkspeakspeedspellspendspicespicyspillspinespitesplitspoilspoonsportsquadstaffstagestairstakestallstampstandstarestarkstartstatestealsteamsteelsteepsteerstickstiffstillstockstonestorestormstorystripstudystuffstylesugarsuitesupersurgeswearsweepsweetswingswordtabletasteteachteenstempttermsthankthefttheirthemetherethickthiefthingthinkthirdthreethrowthumbtighttiredtitletodaytonnetoothtopictotaltouchtoughtoweltowertoxictracetracktradetrailtraintraittreattrendtrialtribetricktrooptrucktrulytrusttruthtwicetwistuncleunderunifyunionuniteunityuntilupperupseturbanusageusualvaguevalidvaluevenueversevideovirusvisitvitalvocalvoicewastewatchwaterweaveweighweirdwheatwheelwherewhichwhilewhitewholewhosewidenwidowwidthwomanworldworryworseworstworthwouldwoundwristwritewrongyieldyoungyoursyouth
`.match(/\w{5}/g))
// ----------
const query = (word, answer) => {
// quick
if (uniqueness(word) === 5) {
return word.replace(/./g, (c, i) => answer[i] === c ? HIT : answer.includes(c) ? CLOSE : MISS)
}
let unused = answer
let hint = MISS_ALL
// hit
for (let i = 0; i < 5; ++i) {
if (answer[i] === word[i]) {
hint = set(hint, i, HIT)
unused = set(unused, i, INVALID)
}
}
// close
for (let i = 0; i < 5; ++i) {
// not HIT
if (hint[i] === '.') {
const at = unused.indexOf(word[i])
if (at >= 0) {
hint = set(hint, i, CLOSE)
unused = set(unused, at, INVALID)
}
}
}
return hint
}
const makeAttempt = (word, hint) => ({ word, hint })
const isSolved = attempts => attempts.length > 0 && attempts.at(-1).hint === HIT_ALL
// RegExp fast match
const makeQuickPattern = ({ word, hint }) => {
const segments = []
const unique = i => !set(word, i, INVALID).includes(word[i])
// 'guess', '.y..g'
// ....s
const hit = hint.replace(/./g, (c, i) => c === HIT ? word[i] : '.')
// ...u.
const close = hint.replace(/./g, (c, i) => (c === CLOSE && unique(i)) ? word[i] : '.')
// g.e..
const miss = hint.replace(/./g, (c, i) => (c === MISS && unique(i)) ? word[i] : '.')
// hit: (?=....s)
hit !== '.....' && segments.push('=' + hit)
// close: (?=.[^u]...), (?=.*u)
if (close !== '.....') {
segments.push('=' + close.replace(/[^.]/g, '[^$&]'))
segments.push(...close.match(/[^.]/g).map(c => '=.*' + c))
}
// miss: (?!/.*[^ge])
miss !== '.....' && segments.push('!.*[' + miss.replace(/[.]/g, '') + ']')
return {
assertion: segments.map(p => `(?${p})`).join(''), // quick test
sufficient: (hit + close + miss).replace(/[.]/g, '').length === 5,
}
}
// strict match
const makeFullTest = ({ word, hint }) => candidate => {
let unused = candidate
// scan hit first
for (let i = 0; i < 5; ++i) {
if (hint[i] === HIT) {
if (candidate[i] !== word[i]) {
return false
}
unused = set(unused, i, INVALID)
}
}
for (let i = 0; i < 5; ++i) {
if (hint[i] === CLOSE) {
if (candidate[i] === word[i]) {
return false
}
const at = unused.indexOf(word[i])
if (at < 0) {
return false
}
unused = set(unused, at, INVALID)
} else if (hint[i] === MISS) {
if (unused.includes(word[i])) {
return false
}
}
}
return true
}
const compile = attempts => {
const patterns = attempts.map(makeQuickPattern)
const assertions = []
const tests = [] // additional
patterns.forEach(({assertion, sufficient}, i) => {
assertion && assertions.push(assertion)
!sufficient && tests.push(makeFullTest(attempts[i]))
})
if (assertions.length) {
const pattern = '^' + assertions.join('')
const regexp = new RegExp(pattern, 's')
return candidate => {
if (!regexp.test(candidate)) {
return false
}
return tests.every(p => p(candidate))
}
}
return candidate => tests.every(p => p(candidate))
}
const evaluate = (attempts, word, candidates, limit) => {
let score = 0
for (const answer of candidates) {
const hint = query(word, answer)
const nextAttempts = [...attempts, makeAttempt(word, hint)]
const matcher = compile(nextAttempts)
const count = candidates.filter(matcher).length
score += count
// console.debug(`guess "${word}" for answer "${answer}" got hint "${hint}" to ${count} next candidates`)
if (OXFORD_5000.has(answer)) {
--score // tweak
}
// cut off
if (score > limit) {
return undefined
}
}
return score
}
const collectCandidates = (attempts, words) => {
// unused letters
const letters = []
attempts.forEach(({ word, hint }) => {
for (let i = 0; i < 5; ++i) {
const letter = word[i]
if (hint[i] === MISS) {
const unused = Array.prototype.every.call(word, (c, i) => c !== letter || hint[i] === MISS)
if (unused) {
letters.push(letter)
}
}
}
})
const unique = [...new Set(letters)].sort()
const matcher = new RegExp(`[${unique.join('')}]`)
console.log(`Unused letters: ${unique}`)
const tried = new Set(attempts.map(({ word }) => word))
return words
.filter(word => !matcher.test(word))
.filter(word => !tried.has(word))
}
// OXFORD_5000 first, uniqueness first
const sortCandidates = candidates => [...candidates].sort((a, b) => OXFORD_5000.has(b) - OXFORD_5000.has(a) || uniqueness(b) - uniqueness(a))
const guess = (attempts, words, hard, timeout) => {
const matcher = compile(attempts)
const answers = words.filter(matcher)
// no way
if (!answers.length) {
return null
}
// got it
if (answers.length === 1) {
return answers[0]
}
const candidates = sortCandidates(shuffle(hard ? answers : collectCandidates(attempts, words)))
if (!hard) {
console.log(`Answer candidates: ${answers.length} words.`)
console.log(answers)
}
console.log(`Attempt candidates: ${candidates.length} words.`)
console.log(candidates)
console.log(`Thinking...`)
const started = Date.now()
const timedout = started + timeout
let candidate = null
let minimum = Number.MAX_SAFE_INTEGER
let tries = 0
for (const word of candidates) {
if (timedout <= Date.now()) {
console.log(`Timed out, stop thinking. ${tries} of ${candidates.length} evaluated.`)
break
}
const t = Date.now()
const score = evaluate(attempts, word, answers, minimum)
if (!candidate || score < minimum) {
candidate = word
minimum = score
}
++tries
// console.debug(`${tries} of ${candidates.length}: "${word}" evaluated to score ${score || '(cutoff)'} in ${Date.now() - t} ms.`)
}
const duration = Date.now() - started
console.log(`${tries} candidates evaluated in ${duration} ms. ${duration / tries} ms/candidate`)
return candidate
}
const main = ({ simulation = false, hard = false, demo = false, answer = null, timeout = TIMEOUT }) => {
// demo, simulation
if (!answer) {
answer = WORDS[Math.floor(Math.random() * WORDS.length)]
}
// temporary
let exceptions = []
let attempts = []
while (!isSolved(attempts)) {
// "arose"? "lares"?
let word = guess(attempts, WORDS.filter(w => !exceptions.includes(w)), hard, +timeout)
if (!word) {
alert(`No way!`)
break
}
if (demo) {
console.log(`> Try "${word}", then type hint as "g..y.". Blank to change word.`)
const hint = query(word, answer)
console.log(hint)
attempts = [...attempts, makeAttempt(word, hint)]
continue
}
for (; ;) {
simulation && console.log(`[Simulation] hint: ${query(word, answer)}`)
const hint = promptWithRetry(`> Try "${word}", then type hint as "g..y.". Blank to change word.`, input => /^([.yg]{5})?$/.test(input), 'Invalid hint, try again.',)
if (hint.length) {
attempts = [...attempts, makeAttempt(word, hint)]
break
}
const w = promptWithRetry(`> Type your word. Blank to guess next. (for "Not a word")`, input => /^([a-z]{5})?$/.test(input), 'Invalid word, try again.')
if (w.length) {
word = w
} else {
exceptions = [...exceptions, word ] // temporary
break
}
}
}
isSolved(attempts) && console.log(`Got it!`)
console.log(attempts)
}
const argv = globalThis.process ? process.argv.slice(2) : []
const mappings = {
s: 'simulation',
d: 'demo',
h: 'hard',
// --answer=mount
// --timeout=500000
}
const options = {}
for (let i = 0; i < argv.length; ++i) {
if (argv[i].startsWith('--')) {
const [name, value] = argv[i].slice(2).split('=', 2)
if (name === '') {
break
}
if (value === undefined) {
value = argv[++i]
}
options[name] = value
} else if (argv[i].startsWith('-')) {
[...argv[i].slice(1)].forEach(name => options[mappings[name]] = true)
} else {
options[''] = [...(options[''] || []), argv[i]]
}
}
console.log(options)
main(options)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment