diff --git a/Makefile b/Makefile index 1401cca..597c526 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,16 @@ default: pack compile_coffee: - coffee -c frontend/assets/application.coffee + coffee -c frontend/assets/application.coffee debug: compile_coffee - go-bindata --debug frontend/... - go run *.go serve - open http://127.0.0.1:3000/ + go-bindata --debug frontend/... + go run *.go serve + open http://127.0.0.1:3000/ pack: compile_coffee - go-bindata frontend/... + go-bindata frontend/... + bash generateXKCDWordList.sh publish: curl -sSLo golang.sh https://raw.githubusercontent.com/Luzifer/github-publish/master/golang.sh diff --git a/generateXKCDWordList.sh b/generateXKCDWordList.sh new file mode 100644 index 0000000..e0ff832 --- /dev/null +++ b/generateXKCDWordList.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +set -eu +set -o pipefail + +VERSION="8744120d" +SOURCE="https://cdn.rawgit.com/leonardr/olipy/${VERSION}/data/more-corpora/scribblenauts_words.txt" + +WORDS=$(curl -sL "${SOURCE}" | awk '/^[a-z]{4}[a-z]*$/{ print "\""$1"\"," }') + +cat -s < lib/xkcd_words.go +package securepassword + +// xkcdWordList contains a list of words derived from the scribblenauts +// word list inside the olipy library by leonardr +// https://github.com/leonardr/olipy +var xkcdWordList = []string{ + ${WORDS} +} +EOF + +gofmt -s -w lib/xkcd_words.go diff --git a/lib/xkcd.go b/lib/xkcd.go new file mode 100644 index 0000000..ebb91cb --- /dev/null +++ b/lib/xkcd.go @@ -0,0 +1,56 @@ +package securepassword + +import ( + "errors" + "math/rand" + "strings" + "time" + + "github.com/Luzifer/go_helpers/str" +) + +type XKCD struct{} + +var ( + // ErrTooFewWords represents an error thrown if the password will + // have fewer than four words and are not considered to be safe + ErrTooFewWords = errors.New("XKCD passwords with less than 4 words makes no sense") + // DefaultXKCD contains an default instance of the XKCD password + // generator + DefaultXKCD = NewXKCDGenerator() +) + +// NewXKCDGenerator initializes a new XKCD password generator +// https://xkcd.com/936/ +func NewXKCDGenerator() *XKCD { return &XKCD{} } + +// GeneratePassword generates a password with the number of words +// given and optionally the current date prepended +func (x XKCD) GeneratePassword(length int, addDate bool) (string, error) { + if length < 4 { + return "", ErrTooFewWords + } + + var ( + password string + usedWords []string + ) + + if addDate { + password = time.Now().Format("20060102.") + } + + rand.Seed(time.Now().UnixNano()) + for len(usedWords) < length { + word := strings.Title(xkcdWordList[rand.Intn(len(xkcdWordList))]) + if str.StringInSlice(word, usedWords) { + // Don't use a word twice + continue + } + + password = password + word + usedWords = append(usedWords, word) + } + + return password, nil +} diff --git a/lib/xkcd_test.go b/lib/xkcd_test.go new file mode 100644 index 0000000..57c2110 --- /dev/null +++ b/lib/xkcd_test.go @@ -0,0 +1,50 @@ +package securepassword + +import ( + "fmt" + "regexp" + "testing" +) + +func TestXKCDWordList(t *testing.T) { + if w := len(xkcdWordList); w < 1000 { + t.Fatalf("Word list is expected to contain at least 1000 words, has %d", w) + } +} + +func TestXKCDGeneratePassword(t *testing.T) { + for i := 4; i < 20; i++ { + pwd, err := DefaultXKCD.GeneratePassword(i, false) + + if err != nil { + t.Fatalf("Generated had an error: %s", err) + } + + if !regexp.MustCompile(fmt.Sprintf("^([A-Z][a-z]+){%d}$", i)).MatchString(pwd) { + t.Errorf("Password %q is expected to contain %d words, did not match expected RegEx", pwd, i) + } + } +} + +func TestXKCDDatePrepend(t *testing.T) { + pwd, err := DefaultXKCD.GeneratePassword(4, true) + if err != nil { + t.Fatalf("Generated had an error: %s", err) + } + + if !regexp.MustCompile(`^[0-9]{8}\.([A-Z][a-z]+){4}$`).MatchString(pwd) { + t.Errorf("Password %q did not match expected RegEx", pwd) + } +} + +func BenchmarkGeneratePasswords4Words(b *testing.B) { + for i := 0; i < b.N; i++ { + DefaultXKCD.GeneratePassword(4, false) + } +} + +func BenchmarkGeneratePasswords20Words(b *testing.B) { + for i := 0; i < b.N; i++ { + DefaultXKCD.GeneratePassword(20, false) + } +} diff --git a/lib/xkcd_words.go b/lib/xkcd_words.go new file mode 100644 index 0000000..cba8d9b --- /dev/null +++ b/lib/xkcd_words.go @@ -0,0 +1,3888 @@ +package securepassword + +// xkcdWordList contains a list of words derived from the scribblenauts +// word list inside the olipy library by leonardr +// https://github.com/leonardr/olipy +var xkcdWordList = []string{ + "world", + "hand", + "room", + "face", + "thing", + "door", + "woman", + "house", + "money", + "father", + "mother", + "water", + "city", + "school", + "office", + "body", + "wife", + "home", + "company", + "table", + "death", + "hair", + "light", + "word", + "food", + "floor", + "book", + "story", + "heart", + "friend", + "town", + "land", + "game", + "matter", + "window", + "blood", + "wall", + "street", + "husband", + "fire", + "mouth", + "building", + "road", + "paper", + "court", + "space", + "form", + "market", + "chair", + "television", + "president", + "field", + "glass", + "phone", + "plan", + "change", + "letter", + "level", + "evidence", + "smile", + "support", + "show", + "community", + "brother", + "picture", + "kitchen", + "press", + "study", + "daughter", + "director", + "dinner", + "record", + "desk", + "stage", + "earth", + "board", + "security", + "horse", + "church", + "bill", + "river", + "coffee", + "wind", + "bank", + "corner", + "help", + "answer", + "hospital", + "film", + "apartment", + "ship", + "seat", + "gold", + "leader", + "doctor", + "figure", + "telephone", + "station", + "growth", + "foot", + "radio", + "sign", + "capital", + "neck", + "college", + "skin", + "plane", + "audience", + "movie", + "hotel", + "stone", + "army", + "chairman", + "computer", + "science", + "spring", + "machine", + "material", + "image", + "surface", + "officer", + "page", + "suit", + "lady", + "stock", + "list", + "farm", + "student", + "ball", + "nose", + "plant", + "wood", + "chest", + "message", + "stuff", + "sister", + "drink", + "store", + "character", + "boat", + "animal", + "rock", + "weight", + "disease", + "spirit", + "king", + "lawyer", + "train", + "executive", + "rain", + "prison", + "shirt", + "lunch", + "snow", + "range", + "agency", + "village", + "bottle", + "enemy", + "newspaper", + "victory", + "dress", + "degree", + "pocket", + "manager", + "brain", + "driver", + "coat", + "shot", + "metal", + "official", + "truck", + "note", + "chief", + "grass", + "contract", + "soul", + "bedroom", + "magazine", + "model", + "writer", + "song", + "patient", + "club", + "quarter", + "pattern", + "date", + "finger", + "teacher", + "article", + "flesh", + "island", + "technology", + "crew", + "object", + "guard", + "shop", + "knife", + "star", + "agent", + "milk", + "judge", + "silver", + "region", + "steel", + "sugar", + "hole", + "supply", + "jacket", + "jury", + "secretary", + "mountain", + "master", + "artist", + "track", + "captain", + "university", + "smoke", + "mirror", + "plastic", + "garden", + "dust", + "watch", + "lead", + "solution", + "measure", + "mission", + "goal", + "tongue", + "moon", + "author", + "iron", + "breakfast", + "cover", + "environment", + "fuel", + "hill", + "shock", + "band", + "contact", + "engine", + "restaurant", + "estate", + "camera", + "beach", + "post", + "pool", + "football", + "roof", + "forest", + "entrance", + "bird", + "tape", + "card", + "ring", + "wheel", + "passage", + "bridge", + "novel", + "gift", + "professor", + "bathroom", + "plate", + "district", + "park", + "wave", + "player", + "present", + "theater", + "atmosphere", + "leather", + "painting", + "neighborhood", + "block", + "priest", + "editor", + "target", + "gate", + "baseball", + "airport", + "shadow", + "attorney", + "doorway", + "consumer", + "general", + "being", + "partner", + "chain", + "weapon", + "coal", + "meal", + "library", + "mail", + "drive", + "fellow", + "soldier", + "soil", + "literature", + "pilot", + "dance", + "scale", + "desert", + "poet", + "cabin", + "corn", + "check", + "yard", + "hero", + "fool", + "package", + "platform", + "nurse", + "stream", + "medicine", + "grain", + "planet", + "chicken", + "storm", + "creature", + "stand", + "lake", + "corridor", + "reporter", + "belt", + "jail", + "mayor", + "highway", + "wire", + "rifle", + "frame", + "ticket", + "coach", + "valley", + "minister", + "deck", + "territory", + "universe", + "counter", + "cell", + "governor", + "salt", + "elevator", + "porch", + "sheet", + "cloth", + "actor", + "bomb", + "bench", + "break", + "branch", + "factory", + "fence", + "lobby", + "bone", + "route", + "ocean", + "signal", + "bear", + "sword", + "cream", + "panel", + "grandfather", + "couch", + "engineer", + "wagon", + "waste", + "chamber", + "commander", + "clock", + "establishment", + "flag", + "pack", + "beard", + "honey", + "stick", + "device", + "cloud", + "display", + "uniform", + "gasoline", + "tail", + "blanket", + "mess", + "drop", + "belly", + "port", + "pipe", + "heaven", + "worker", + "file", + "flat", + "uncle", + "customer", + "radiation", + "studio", + "boss", + "tent", + "poem", + "clerk", + "match", + "column", + "cousin", + "host", + "wheat", + "silk", + "aide", + "rope", + "instrument", + "string", + "adult", + "sweat", + "lover", + "faculty", + "farmer", + "missile", + "grin", + "tank", + "square", + "laboratory", + "palm", + "tower", + "deputy", + "institution", + "magic", + "standard", + "grandmother", + "bowl", + "closet", + "genius", + "citizen", + "button", + "pistol", + "assistant", + "alarm", + "fist", + "bell", + "rose", + "score", + "crop", + "vehicle", + "barn", + "shift", + "license", + "pollution", + "bath", + "producer", + "cotton", + "muscle", + "cycle", + "steam", + "palace", + "beef", + "policeman", + "tube", + "blade", + "lord", + "shade", + "acid", + "jungle", + "railroad", + "soup", + "sofa", + "gear", + "robe", + "speaker", + "embassy", + "invitation", + "barrel", + "garage", + "collar", + "trunk", + "paint", + "stove", + "grave", + "notice", + "museum", + "graduate", + "sidewalk", + "taxi", + "lamp", + "photograph", + "tray", + "flower", + "shower", + "castle", + "cross", + "booth", + "lawn", + "publication", + "wrist", + "skirt", + "servant", + "prisoner", + "physician", + "neighbor", + "elbow", + "cave", + "basketball", + "juice", + "brick", + "envelope", + "glory", + "politician", + "rail", + "parent", + "stake", + "curtain", + "infant", + "count", + "lock", + "entertainment", + "shuttle", + "companion", + "aunt", + "shelter", + "tool", + "peak", + "cage", + "well", + "flame", + "text", + "automobile", + "scientist", + "cake", + "brush", + "basement", + "document", + "marble", + "pitch", + "guide", + "bureau", + "queen", + "brass", + "zone", + "skull", + "cable", + "corporation", + "foundation", + "countryside", + "monster", + "killer", + "mask", + "breeze", + "whiskey", + "basket", + "tissue", + "satellite", + "motor", + "portrait", + "drawer", + "analyst", + "economist", + "visitor", + "slope", + "sheriff", + "tunnel", + "devil", + "throne", + "hook", + "temple", + "handle", + "shoe", + "helicopter", + "gown", + "hallway", + "subway", + "drawing", + "cabinet", + "wilderness", + "towel", + "sink", + "detective", + "critic", + "dish", + "hack", + "photo", + "crown", + "operator", + "bull", + "alley", + "male", + "plain", + "pillow", + "beast", + "seed", + "guerrilla", + "straw", + "snake", + "roll", + "horn", + "mate", + "resort", + "apple", + "bullet", + "saddle", + "suitcase", + "protein", + "cook", + "toilet", + "ranch", + "representative", + "shell", + "prince", + "video", + "clay", + "actress", + "pencil", + "shelf", + "waiter", + "charm", + "wool", + "sweater", + "soap", + "widow", + "sergeant", + "sauce", + "painter", + "fabric", + "carrier", + "ladder", + "cottage", + "opponent", + "dealer", + "spread", + "beam", + "harbor", + "gallery", + "prize", + "fireplace", + "fighter", + "prosecutor", + "root", + "transport", + "link", + "diplomat", + "flood", + "architect", + "peasant", + "female", + "carpet", + "facility", + "transfer", + "powder", + "parlor", + "pine", + "senator", + "cart", + "trap", + "corpse", + "emperor", + "patch", + "barrier", + "ambassador", + "carriage", + "residence", + "maid", + "switch", + "lieutenant", + "cliff", + "lightning", + "mist", + "salad", + "flour", + "continent", + "poison", + "radar", + "outfit", + "journalist", + "businessman", + "singer", + "scope", + "warrior", + "cast", + "observer", + "thread", + "organ", + "needle", + "revolver", + "candy", + "classroom", + "bride", + "vitamin", + "refrigerator", + "sandwich", + "defendant", + "angel", + "compartment", + "vegetable", + "treasure", + "salesman", + "clinic", + "layer", + "pitcher", + "publisher", + "suite", + "airplane", + "hammer", + "reward", + "pole", + "rocket", + "aisle", + "vessel", + "penalty", + "orange", + "consultant", + "liver", + "leaf", + "designer", + "velvet", + "bush", + "cloak", + "copper", + "orchestra", + "chocolate", + "circuit", + "feed", + "courtyard", + "retreat", + "historian", + "theatre", + "bucket", + "mill", + "psychiatrist", + "swing", + "ghost", + "channel", + "dock", + "statue", + "doll", + "mistress", + "oven", + "scent", + "restraint", + "twin", + "diamond", + "lion", + "cord", + "wallet", + "stool", + "banker", + "colonel", + "ally", + "sleeve", + "coin", + "album", + "laundry", + "handkerchief", + "candle", + "terminal", + "elephant", + "manufacturer", + "locker", + "pulse", + "giant", + "navy", + "photographer", + "cowboy", + "bishop", + "linen", + "junk", + "dragon", + "ruler", + "costume", + "mansion", + "hood", + "cellar", + "driveway", + "ambulance", + "guitar", + "journal", + "sculpture", + "balcony", + "toast", + "chart", + "motel", + "sadness", + "scholar", + "submarine", + "carbon", + "thunder", + "canal", + "merchant", + "bolt", + "wolf", + "shed", + "arrow", + "lodge", + "bicycle", + "spine", + "military", + "lamb", + "pond", + "feast", + "fluid", + "altar", + "recipe", + "sack", + "trailer", + "notebook", + "surgeon", + "slip", + "festival", + "clearing", + "rack", + "flashlight", + "bundle", + "murderer", + "liquid", + "essay", + "helmet", + "correspondent", + "dressing", + "dancer", + "pork", + "colleague", + "crystal", + "lane", + "chapel", + "turkey", + "canoe", + "sailor", + "arena", + "refuge", + "thesis", + "waitress", + "briefcase", + "commissioner", + "stack", + "lift", + "cane", + "thief", + "troop", + "menu", + "lounge", + "administrator", + "drum", + "bronze", + "staircase", + "whistle", + "canyon", + "shotgun", + "suspect", + "dome", + "globe", + "runway", + "resident", + "cemetery", + "passport", + "cement", + "creek", + "nephew", + "buddy", + "lung", + "typewriter", + "tribute", + "hostage", + "underwear", + "nest", + "recorder", + "potato", + "ramp", + "fork", + "idiot", + "prey", + "ivory", + "robot", + "seal", + "haven", + "bike", + "synagogue", + "calendar", + "lace", + "timber", + "tooth", + "perfume", + "veteran", + "lemon", + "tomb", + "ammunition", + "spear", + "hunter", + "pump", + "slide", + "award", + "battery", + "ankle", + "pepper", + "cathedral", + "calf", + "monkey", + "suburb", + "rabbit", + "boot", + "pipeline", + "armor", + "sphere", + "moisture", + "kidney", + "broker", + "hose", + "mound", + "goat", + "conductor", + "terrace", + "principal", + "steak", + "novelist", + "criminal", + "intellectual", + "conservative", + "quarterback", + "collector", + "motorcycle", + "refugee", + "punch", + "clown", + "preacher", + "spectacle", + "apron", + "banner", + "attendant", + "dairy", + "umbrella", + "container", + "merit", + "reactor", + "shield", + "bamboo", + "runner", + "garment", + "railing", + "rival", + "supermarket", + "twilight", + "bacon", + "scarf", + "dime", + "coffin", + "rider", + "philosopher", + "superintendent", + "pill", + "housewife", + "final", + "demon", + "mattress", + "litter", + "nail", + "basin", + "fiber", + "whip", + "microphone", + "supervisor", + "stadium", + "limousine", + "knot", + "nursery", + "freshman", + "rebel", + "tile", + "torch", + "fountain", + "crest", + "princess", + "greenhouse", + "messenger", + "mineral", + "baggage", + "mouse", + "tiger", + "paradise", + "hull", + "glue", + "composer", + "ditch", + "pony", + "rental", + "athlete", + "warehouse", + "organism", + "soda", + "span", + "counselor", + "grandson", + "banana", + "stamp", + "anchor", + "diary", + "tunic", + "meadow", + "backyard", + "disc", + "glove", + "pasture", + "catalogue", + "inspector", + "missionary", + "sail", + "chemical", + "atom", + "bartender", + "shark", + "monument", + "tomato", + "plague", + "fortress", + "ribbon", + "drill", + "sweetheart", + "laser", + "sanctuary", + "poster", + "marketplace", + "girlfriend", + "researcher", + "yacht", + "offering", + "instructor", + "puzzle", + "monastery", + "flock", + "choir", + "medal", + "meter", + "auditorium", + "fairy", + "mare", + "razor", + "whale", + "landlord", + "stem", + "drain", + "spoon", + "associate", + "bark", + "activist", + "liar", + "tract", + "pizza", + "hollow", + "admiral", + "psychologist", + "musician", + "puppet", + "nitrogen", + "contractor", + "poker", + "arch", + "tractor", + "buffalo", + "pier", + "veil", + "courthouse", + "academy", + "technician", + "bachelor", + "lobster", + "monitor", + "traveler", + "investigator", + "attic", + "rabbi", + "knight", + "innovation", + "probe", + "raft", + "boyfriend", + "plaza", + "witch", + "physicist", + "prophet", + "plaster", + "dentist", + "telescope", + "vault", + "parish", + "balloon", + "wheelchair", + "vest", + "hatch", + "sketch", + "violin", + "trader", + "stall", + "limb", + "produce", + "tumor", + "camel", + "insect", + "chauffeur", + "capsule", + "dessert", + "petition", + "ruin", + "celebrity", + "canopy", + "vaccine", + "fort", + "stereo", + "hearth", + "avenue", + "guardian", + "portfolio", + "chaplain", + "wardrobe", + "cradle", + "hamburger", + "advocate", + "granite", + "foam", + "major", + "folder", + "nickel", + "shack", + "teaspoon", + "remedy", + "foreman", + "seller", + "columnist", + "goose", + "feather", + "bulb", + "bomber", + "overcoat", + "maze", + "harp", + "stew", + "particle", + "garlic", + "scalp", + "bladder", + "monk", + "tweed", + "loser", + "shrug", + "disguise", + "hostess", + "workshop", + "niece", + "grove", + "decoration", + "stain", + "cape", + "bubble", + "asylum", + "badge", + "armchair", + "spark", + "onion", + "rubber", + "bait", + "dump", + "perimeter", + "alien", + "decree", + "hobby", + "dough", + "lantern", + "cherry", + "millionaire", + "raincoat", + "skeleton", + "plantation", + "spotlight", + "villa", + "podium", + "loft", + "tyrant", + "lighter", + "screw", + "eagle", + "napkin", + "mall", + "dresser", + "slate", + "sulfur", + "memorial", + "electron", + "shrine", + "mold", + "astronaut", + "diesel", + "neon", + "heroine", + "stewardess", + "adversary", + "virgin", + "stairway", + "supporter", + "throw", + "lumber", + "galaxy", + "racket", + "foliage", + "mechanic", + "chef", + "void", + "mule", + "pastor", + "steward", + "franchise", + "intercom", + "prairie", + "undergraduate", + "chimney", + "cereal", + "packet", + "microscope", + "sausage", + "shrimp", + "ecstasy", + "eyebrow", + "builder", + "precinct", + "anthropologist", + "loaf", + "dwelling", + "paperback", + "paste", + "shovel", + "ferry", + "joint", + "spit", + "puff", + "quilt", + "playwright", + "spouse", + "assassin", + "cabbage", + "console", + "carpenter", + "lipstick", + "mahogany", + "furnace", + "certificate", + "pupil", + "tenor", + "foyer", + "bluff", + "whisky", + "pouch", + "babe", + "pianist", + "brake", + "shake", + "cock", + "fisherman", + "shawl", + "kettle", + "outlet", + "chalk", + "plywood", + "doorbell", + "keyboard", + "peanut", + "compass", + "lettuce", + "harness", + "abdomen", + "scout", + "barber", + "plateau", + "hedge", + "dictator", + "housekeeper", + "cafeteria", + "bard", + "bathrobe", + "gauge", + "spider", + "reservoir", + "crib", + "traitor", + "kitten", + "dagger", + "goddess", + "fertilizer", + "punk", + "crust", + "nightgown", + "freak", + "stump", + "microwave", + "lever", + "playground", + "dial", + "playgroup", + "transmitter", + "jewel", + "competitor", + "butterfly", + "comb", + "carving", + "clip", + "necklace", + "axis", + "porcelain", + "muzzle", + "textile", + "tailor", + "wizard", + "cupboard", + "holster", + "broom", + "receptionist", + "flicker", + "exam", + "treasury", + "roast", + "trifle", + "jerk", + "permit", + "gene", + "trainer", + "doorman", + "cushion", + "triangle", + "apprentice", + "gorge", + "frog", + "hawk", + "trench", + "dictionary", + "crow", + "flannel", + "jockey", + "papa", + "cone", + "organizer", + "fraternity", + "cubicle", + "partition", + "aerial", + "cinema", + "carton", + "chariot", + "nylon", + "bathtub", + "vapor", + "mailbox", + "moss", + "shepherd", + "textbook", + "reef", + "intruder", + "royalty", + "developer", + "plaid", + "believer", + "galley", + "sophomore", + "clump", + "mast", + "generator", + "mount", + "worm", + "catcher", + "interpreter", + "graveyard", + "mane", + "vase", + "token", + "maple", + "magician", + "bust", + "syrup", + "cassette", + "pick", + "madman", + "cleaner", + "villain", + "wallpaper", + "lime", + "polish", + "accountant", + "dwarf", + "amateur", + "donkey", + "ballroom", + "popcorn", + "crook", + "coral", + "fragrance", + "spectator", + "groom", + "rattle", + "skipper", + "siren", + "savage", + "flute", + "civilian", + "flask", + "therapist", + "plug", + "weed", + "patio", + "residue", + "passageway", + "chopper", + "depot", + "quarry", + "hound", + "wedge", + "indicator", + "grotto", + "blizzard", + "crab", + "ration", + "puck", + "manual", + "volcano", + "crate", + "rocker", + "rainbow", + "informant", + "freezer", + "limestone", + "valve", + "manure", + "pail", + "cardinal", + "grape", + "miner", + "pamphlet", + "plaque", + "chat", + "pulpit", + "platter", + "molecule", + "pyramid", + "vinegar", + "acreage", + "chick", + "orphan", + "porter", + "saucer", + "antenna", + "trophy", + "convent", + "veal", + "contender", + "grenade", + "boulder", + "treasurer", + "cookie", + "freeway", + "pillar", + "carcass", + "pottery", + "dormitory", + "bean", + "buzzer", + "jack", + "marshal", + "lance", + "gardener", + "pearl", + "ravine", + "stretcher", + "trolley", + "bracelet", + "plank", + "jelly", + "foil", + "knack", + "sedan", + "marsh", + "ingredient", + "crater", + "pigeon", + "granddaughter", + "sociologist", + "locomotive", + "bookstore", + "hippie", + "dugout", + "trumpet", + "directory", + "comrade", + "turtle", + "spur", + "comet", + "dummy", + "moustache", + "mantle", + "buffet", + "clutch", + "courier", + "hangar", + "curator", + "projector", + "parcel", + "lure", + "squash", + "commentator", + "mentor", + "stint", + "treat", + "germ", + "infinity", + "burglar", + "dove", + "warden", + "sponge", + "rooster", + "barge", + "gorilla", + "wharf", + "stallion", + "orchard", + "biographer", + "wheelbarrow", + "hurricane", + "stronghold", + "lavender", + "leash", + "stairwell", + "doorstep", + "negotiator", + "sewer", + "backbone", + "rite", + "vine", + "gypsy", + "gland", + "nightclub", + "cavity", + "butler", + "peach", + "tack", + "fossil", + "glitter", + "destroyer", + "flyer", + "roller", + "cruiser", + "dude", + "bodyguard", + "corral", + "coroner", + "spice", + "wrench", + "sock", + "safe", + "broth", + "moth", + "vice", + "gender", + "puppy", + "sculptor", + "printer", + "handbag", + "lobbyist", + "comedian", + "challenger", + "telegraph", + "cartridge", + "walnut", + "puddle", + "crescent", + "tanker", + "stoop", + "clergyman", + "opener", + "convertible", + "biologist", + "fuse", + "carnival", + "gangster", + "mallet", + "charcoal", + "mortar", + "plasma", + "condominium", + "muck", + "workplace", + "serpent", + "sill", + "swallow", + "thicket", + "bribe", + "trough", + "pudding", + "alcove", + "flint", + "cube", + "pasta", + "countess", + "scroll", + "bloom", + "postcard", + "relish", + "inventor", + "chisel", + "cutter", + "stud", + "seminary", + "coil", + "flare", + "whiff", + "caretaker", + "mediator", + "lookout", + "blackboard", + "pocketbook", + "plaintiff", + "manor", + "gambler", + "starch", + "tonic", + "salon", + "pendulum", + "shoreline", + "hail", + "refinery", + "commando", + "dryer", + "rust", + "bunker", + "protector", + "sage", + "blueprint", + "roadway", + "bouquet", + "garrison", + "colt", + "refuse", + "swarm", + "lecturer", + "switchboard", + "claw", + "marker", + "beak", + "pantry", + "mole", + "jumper", + "terrorist", + "gravy", + "blossom", + "craftsman", + "pavilion", + "yarn", + "enclosure", + "sucker", + "boiler", + "spade", + "staple", + "sling", + "maniac", + "musket", + "idol", + "snack", + "airliner", + "bandage", + "diner", + "astronomer", + "radiator", + "booklet", + "turbine", + "vise", + "bakery", + "portal", + "abyss", + "airfield", + "wastebasket", + "lapel", + "hearse", + "schooner", + "carrot", + "speck", + "kite", + "vent", + "plow", + "membrane", + "waterfall", + "matron", + "cork", + "trooper", + "hinge", + "hoard", + "umpire", + "slug", + "felt", + "sentry", + "mushroom", + "linebacker", + "parachute", + "teller", + "plum", + "neutron", + "lizard", + "torpedo", + "helm", + "cardboard", + "replica", + "casket", + "squirrel", + "hitch", + "pirate", + "vinyl", + "moat", + "tablespoon", + "aroma", + "healer", + "screenplay", + "examiner", + "strawberry", + "outpost", + "bookcase", + "cashmere", + "bikini", + "pastry", + "seaman", + "emerald", + "entrepreneur", + "thorn", + "cavern", + "swivel", + "outlaw", + "tapestry", + "covering", + "proletariat", + "turnover", + "coyote", + "bumper", + "champ", + "creep", + "boxer", + "fodder", + "paddle", + "tattoo", + "robber", + "carbine", + "oratory", + "drummer", + "chili", + "dung", + "magnet", + "jukebox", + "dune", + "subpoena", + "washer", + "brace", + "helper", + "crisp", + "boulevard", + "cashier", + "deadlock", + "oyster", + "chasm", + "heater", + "beacon", + "bile", + "janitor", + "juncture", + "chimpanzee", + "suede", + "mosquito", + "cooler", + "chancellor", + "beggar", + "float", + "blush", + "vampire", + "disciple", + "pedestrian", + "incline", + "beaver", + "grill", + "denim", + "wreath", + "relic", + "rancher", + "turret", + "goalie", + "steer", + "cyanide", + "buggy", + "willow", + "fireman", + "halo", + "laborer", + "alligator", + "bead", + "midget", + "sleeper", + "lectern", + "tutor", + "chestnut", + "translator", + "duke", + "cedar", + "transistor", + "boardwalk", + "tramp", + "ornament", + "sticker", + "sovereign", + "enclave", + "kilt", + "corporal", + "baritone", + "pallet", + "unicorn", + "souvenir", + "veneer", + "whirlwind", + "hamlet", + "parasite", + "mosque", + "steamer", + "maiden", + "condor", + "campfire", + "seafood", + "crane", + "hickory", + "cathode", + "marrow", + "parchment", + "noun", + "lair", + "chemist", + "smack", + "curry", + "canteen", + "grate", + "professional", + "fanatic", + "barbecue", + "dorm", + "hatchet", + "capitalist", + "fern", + "plumber", + "forge", + "superstar", + "ether", + "sash", + "spaceship", + "golfer", + "realist", + "skillet", + "bedspread", + "wand", + "windowsill", + "enamel", + "hoop", + "patriot", + "chandelier", + "goblet", + "zipper", + "serum", + "icebox", + "cache", + "streetcar", + "syringe", + "bureaucrat", + "blacksmith", + "loot", + "tomahawk", + "pinball", + "jersey", + "brook", + "pedestal", + "feeder", + "soot", + "gimmick", + "hash", + "controller", + "twig", + "librarian", + "vial", + "dolphin", + "tuxedo", + "mathematician", + "veranda", + "aperture", + "gavel", + "oasis", + "nebula", + "woodland", + "socket", + "wasteland", + "leopard", + "blazer", + "follower", + "swimmer", + "dart", + "bazaar", + "sham", + "parka", + "primate", + "attacker", + "funnel", + "tablet", + "tripod", + "bully", + "dandy", + "appliance", + "explorer", + "clone", + "baton", + "bandit", + "coconut", + "teen", + "phonograph", + "sniper", + "cohort", + "spill", + "teammate", + "over", + "savior", + "pear", + "financier", + "adolescent", + "teapot", + "seaweed", + "roadblock", + "constable", + "arcade", + "keep", + "anarchist", + "mailman", + "sloop", + "fungus", + "pesticide", + "frigate", + "toothbrush", + "pumpkin", + "doorknob", + "pebble", + "scrapbook", + "fiddle", + "turtleneck", + "clipboard", + "rogue", + "billboard", + "beverage", + "grille", + "pathologist", + "mesa", + "goblin", + "backpack", + "dungeon", + "gauze", + "beret", + "porridge", + "scanner", + "smoker", + "mite", + "axle", + "easel", + "parrot", + "antidote", + "hijacker", + "venom", + "baron", + "birch", + "protagonist", + "hulk", + "cookbook", + "mage", + "cricket", + "smock", + "cortex", + "modem", + "tablecloth", + "aristocrat", + "hare", + "invalid", + "fingernail", + "medic", + "crutch", + "entertainer", + "jade", + "flea", + "orphanage", + "adobe", + "spruce", + "boar", + "oracle", + "cantor", + "corduroy", + "buckle", + "constellation", + "lard", + "industrialist", + "bridegroom", + "windmill", + "bungalow", + "writ", + "calculator", + "portico", + "renegade", + "iceberg", + "mosaic", + "ranger", + "anvil", + "satchel", + "bridle", + "gateway", + "sparrow", + "duct", + "monsoon", + "handgun", + "citadel", + "convict", + "tribunal", + "yoke", + "midwife", + "ruby", + "conduit", + "excavation", + "poodle", + "yeast", + "chimp", + "awning", + "bypass", + "intestine", + "rudder", + "shroud", + "magistrate", + "lender", + "mummy", + "prop", + "licence", + "patrician", + "cider", + "bonnet", + "edifice", + "mobile", + "tornado", + "yogurt", + "shrubbery", + "sorcerer", + "drone", + "cove", + "maverick", + "rook", + "gauntlet", + "violinist", + "thermometer", + "vomit", + "deity", + "reed", + "tundra", + "cocoon", + "percussion", + "freighter", + "noose", + "gully", + "innkeeper", + "quiver", + "stable", + "expressway", + "faucet", + "jock", + "spike", + "herald", + "polyester", + "parapet", + "sandstone", + "skunk", + "tranquilizer", + "pharmacy", + "penicillin", + "lark", + "lily", + "hanger", + "headset", + "john", + "appointee", + "twine", + "screwdriver", + "lacquer", + "crick", + "rosary", + "appendix", + "eyelid", + "fingerprint", + "tick", + "sailboat", + "loom", + "prodigy", + "scoop", + "wrapper", + "planter", + "evangelist", + "lotion", + "toothpaste", + "curmudgeon", + "thong", + "peacock", + "scoundrel", + "machete", + "dishwasher", + "electrician", + "tycoon", + "otter", + "snail", + "nobleman", + "shutter", + "escalator", + "girdle", + "cologne", + "violet", + "locale", + "propeller", + "pickle", + "camper", + "learner", + "stag", + "livery", + "shoot", + "tiller", + "jetliner", + "checkbook", + "sideboard", + "squire", + "newsstand", + "bastion", + "grub", + "redwood", + "casserole", + "totem", + "palette", + "choreographer", + "skyscraper", + "penitentiary", + "melon", + "yolk", + "diver", + "archbishop", + "amber", + "tart", + "eyeball", + "hermit", + "snowstorm", + "switchblade", + "frock", + "piazza", + "blender", + "parasol", + "clover", + "intern", + "asteroid", + "barricade", + "knapsack", + "giraffe", + "mover", + "naturalist", + "orderly", + "shipyard", + "educator", + "liberal", + "filly", + "lifeguard", + "pineapple", + "referee", + "jigsaw", + "retailer", + "amplifier", + "campground", + "steamboat", + "turban", + "mutton", + "cobra", + "contraption", + "schoolhouse", + "pane", + "observatory", + "ballerina", + "undershirt", + "concierge", + "accordion", + "slime", + "gelding", + "graft", + "gull", + "pilgrim", + "harpy", + "whirlpool", + "conditioner", + "gadget", + "lathe", + "antibiotic", + "shank", + "artifact", + "boutique", + "antagonist", + "amulet", + "skier", + "smith", + "cracker", + "snob", + "spinster", + "searchlight", + "respirator", + "visor", + "native", + "hairdresser", + "gondola", + "cheerleader", + "predator", + "derby", + "timer", + "cabbie", + "clam", + "windbreaker", + "antelope", + "shampoo", + "raccoon", + "glider", + "grail", + "lavatory", + "glaze", + "thunderstorm", + "valet", + "baker", + "sycamore", + "nozzle", + "headboard", + "plume", + "coupon", + "knuckle", + "lighthouse", + "collaborator", + "fuselage", + "saber", + "shaman", + "earring", + "sieve", + "kiosk", + "flooring", + "veterinarian", + "fireball", + "carousel", + "bandanna", + "glacier", + "citation", + "fridge", + "grocer", + "snare", + "repository", + "battleship", + "hammock", + "thug", + "artichoke", + "handbook", + "bugle", + "precipice", + "sauna", + "skater", + "barbarian", + "peddler", + "empress", + "crocodile", + "cucumber", + "steamship", + "resin", + "fairway", + "swan", + "governess", + "orchid", + "ostrich", + "vicar", + "navigator", + "cartoonist", + "landfill", + "invader", + "locality", + "druid", + "headlight", + "nick", + "kangaroo", + "pink", + "headdress", + "topcoat", + "atheist", + "pointer", + "theologian", + "beet", + "undertaker", + "lineman", + "hart", + "periscope", + "bodice", + "grandma", + "wildcat", + "proton", + "executioner", + "mesquite", + "programmer", + "mint", + "aquarium", + "kerchief", + "warranty", + "breeder", + "conservatory", + "saxophone", + "android", + "bunny", + "rake", + "serf", + "sidewinder", + "lifeline", + "stirrup", + "caper", + "crepe", + "primer", + "spire", + "spleen", + "bustle", + "assessor", + "sidecar", + "shingle", + "pusher", + "mantelpiece", + "peat", + "neurologist", + "horseshoe", + "bulldog", + "joker", + "juror", + "highlander", + "wisp", + "pharmacist", + "doughnut", + "toaster", + "amphitheater", + "beau", + "importer", + "locket", + "watermelon", + "crossbow", + "rowboat", + "volleyball", + "teddy", + "abode", + "handyman", + "centurion", + "newspaperman", + "walker", + "tributary", + "cleric", + "inlet", + "heretic", + "waistcoat", + "grizzly", + "placard", + "brig", + "cinder", + "bunting", + "gong", + "deli", + "putter", + "cynic", + "tombstone", + "scoreboard", + "biscuit", + "souffle", + "premier", + "auditor", + "troll", + "trucker", + "beetle", + "bookkeeper", + "yardstick", + "wrinkle", + "private", + "leper", + "chiffon", + "weave", + "granny", + "barometer", + "infirmary", + "encyclopedia", + "laundromat", + "warship", + "polygraph", + "dinghy", + "tween", + "crayon", + "sensor", + "hustler", + "pediatrician", + "buckskin", + "safeguard", + "overhang", + "rattlesnake", + "teacup", + "potion", + "canister", + "thermostat", + "aviator", + "abomination", + "laurel", + "sweatshirt", + "psychoanalyst", + "shopkeeper", + "delicatessen", + "sheepskin", + "billionaire", + "salami", + "glen", + "beech", + "mime", + "rouge", + "skylight", + "sole", + "organist", + "bulwark", + "stethoscope", + "godfather", + "adventurer", + "runaway", + "reflector", + "falcon", + "scribe", + "louse", + "grapevine", + "marquee", + "schoolmaster", + "shooter", + "townhouse", + "hostler", + "coaster", + "bulldozer", + "raspberry", + "workroom", + "grassland", + "cooperative", + "tarpaulin", + "thyme", + "racer", + "diaper", + "robin", + "marina", + "flagship", + "homemaker", + "moron", + "dispatcher", + "harbour", + "toddler", + "rotunda", + "dolly", + "guitarist", + "eggplant", + "drapery", + "florist", + "hive", + "screenwriter", + "barman", + "tumbler", + "vortex", + "hostel", + "armory", + "padlock", + "penguin", + "peel", + "rascal", + "cartilage", + "blank", + "clasp", + "racquet", + "pelt", + "copse", + "fissure", + "tern", + "heathen", + "snowball", + "penthouse", + "regulator", + "mutt", + "airship", + "alloy", + "adjunct", + "pheasant", + "sleigh", + "seer", + "stockade", + "sledge", + "bayonet", + "vulture", + "postman", + "breaker", + "grinder", + "mannequin", + "biochemist", + "goatee", + "cranberry", + "sultan", + "idealist", + "apocalypse", + "moor", + "zombie", + "javelin", + "turnpike", + "forger", + "commode", + "bleach", + "banister", + "steeple", + "censor", + "snowmobile", + "kaleidoscope", + "slipper", + "nanny", + "kernel", + "foal", + "fedora", + "medallion", + "jailer", + "tread", + "quill", + "cardigan", + "prune", + "internist", + "smuggler", + "panacea", + "cheeseburger", + "dispenser", + "chum", + "sanctum", + "headband", + "terrier", + "latrine", + "toad", + "clink", + "hick", + "manger", + "poppy", + "chaise", + "beehive", + "illustrator", + "paddy", + "custodian", + "armoire", + "daisy", + "housecoat", + "policewoman", + "ointment", + "chessboard", + "scepter", + "linguist", + "lute", + "decoy", + "bullfighter", + "chador", + "clarinet", + "catapult", + "shanty", + "dinosaur", + "tang", + "scaffold", + "environmentalist", + "nightcap", + "tempest", + "artisan", + "geologist", + "humanist", + "treadmill", + "blackberry", + "brassiere", + "choke", + "sitter", + "elixir", + "decanter", + "burlap", + "seaport", + "collie", + "taper", + "quartermaster", + "jeweler", + "tram", + "mausoleum", + "skiff", + "buoy", + "archaeologist", + "pendant", + "junkyard", + "bullhorn", + "porthole", + "pragmatist", + "stylist", + "panther", + "deserter", + "sorghum", + "harmonica", + "olive", + "defector", + "purgatory", + "genie", + "crowbar", + "bathhouse", + "venue", + "bandstand", + "catwalk", + "sapphire", + "messiah", + "blackjack", + "damask", + "jerkin", + "bowler", + "blob", + "chard", + "tiara", + "domino", + "mainstay", + "python", + "felon", + "sedative", + "punt", + "outhouse", + "raisin", + "pancake", + "brooch", + "slop", + "dealership", + "anchorman", + "custard", + "tote", + "mulch", + "mason", + "earl", + "levee", + "gynecologist", + "calico", + "cyclone", + "lagoon", + "songwriter", + "supernova", + "photon", + "cobbler", + "mainspring", + "prism", + "weaver", + "muffin", + "juniper", + "fudge", + "priestess", + "maelstrom", + "spaceport", + "vegetarian", + "potter", + "fiend", + "debutante", + "charger", + "appetizer", + "millet", + "inferno", + "mousse", + "panda", + "hamper", + "settler", + "chowder", + "turquoise", + "abbot", + "bookie", + "tusk", + "cellist", + "turntable", + "nightstand", + "shoemaker", + "isle", + "steed", + "stunner", + "clove", + "memento", + "solicitor", + "rodent", + "meteor", + "stenographer", + "icing", + "harpoon", + "cassock", + "scarecrow", + "mart", + "burger", + "coverlet", + "wafer", + "hangout", + "figurehead", + "midterm", + "petticoat", + "matador", + "flier", + "flotilla", + "mixer", + "roach", + "billy", + "loincloth", + "winch", + "blimp", + "porpoise", + "workbench", + "flagpole", + "reptile", + "typist", + "manhole", + "archipelago", + "poke", + "postmaster", + "alto", + "climber", + "deerskin", + "sweet", + "wasp", + "toothpick", + "lyre", + "archer", + "councilor", + "candelabra", + "wrestler", + "marmalade", + "harpsichord", + "jetty", + "monorail", + "dramatist", + "sunflower", + "retriever", + "redneck", + "pullover", + "nectar", + "swimsuit", + "curd", + "mire", + "deacon", + "speechwriter", + "gelatin", + "booby", + "stopwatch", + "bailiff", + "paperweight", + "mower", + "shrub", + "interceptor", + "mammoth", + "cheekbone", + "repellent", + "cardiologist", + "troika", + "effigy", + "leech", + "pellet", + "weasel", + "restroom", + "cauliflower", + "fruitcake", + "chateau", + "tinker", + "hobo", + "corset", + "nutmeg", + "tentacle", + "quicksand", + "mammal", + "bellhop", + "mongrel", + "newscaster", + "fawn", + "rationalist", + "buckboard", + "disinfectant", + "corkscrew", + "sledgehammer", + "sloth", + "stopper", + "berry", + "guillotine", + "keyhole", + "porcupine", + "cockroach", + "settee", + "usher", + "obstetrician", + "palisade", + "spout", + "cypress", + "trombone", + "dame", + "baboon", + "chameleon", + "dressmaker", + "storehouse", + "statistician", + "cloister", + "urinal", + "canary", + "skate", + "kelp", + "marine", + "marksman", + "eraser", + "monolith", + "nutshell", + "bogey", + "spindle", + "nugget", + "empiricist", + "prelate", + "tricycle", + "catheter", + "accessory", + "prod", + "oscillator", + "insurer", + "cask", + "magnum", + "accuser", + "carnation", + "trapdoor", + "mutant", + "jogger", + "sickle", + "restaurateur", + "davenport", + "rucksack", + "starship", + "spaniel", + "cuckoo", + "sneaker", + "aspen", + "hopper", + "jumpsuit", + "washcloth", + "almond", + "cooker", + "dandelion", + "brazier", + "cobblestone", + "slugger", + "airlock", + "zebra", + "kennel", + "omelet", + "psychopath", + "grasshopper", + "socialite", + "cornucopia", + "warlord", + "vineyard", + "scraper", + "doublet", + "tome", + "lifeboat", + "blueberry", + "footbridge", + "tourniquet", + "spore", + "harbinger", + "jurist", + "kitty", + "cauldron", + "abbey", + "jasmine", + "clamp", + "councilman", + "cheesecake", + "ironclad", + "urchin", + "sampler", + "friar", + "binder", + "washbasin", + "earthenware", + "kitchenette", + "foundry", + "ladle", + "villager", + "blaster", + "hummingbird", + "drawbridge", + "malt", + "mugger", + "keystone", + "riverboat", + "anesthesiologist", + "salsa", + "prizefighter", + "chile", + "cola", + "scythe", + "lout", + "chamberlain", + "appraiser", + "isotope", + "garnet", + "buzzard", + "botanist", + "sari", + "skullcap", + "journeyman", + "parson", + "blower", + "taxicab", + "publicist", + "casement", + "interrogator", + "shoestring", + "behemoth", + "negligee", + "heath", + "negative", + "toga", + "turnip", + "stepladder", + "loon", + "businesswoman", + "parlour", + "concertina", + "rampart", + "chime", + "hyena", + "sweetener", + "lioness", + "escarpment", + "mimic", + "gnat", + "hothouse", + "stateroom", + "nutritionist", + "surveyor", + "stagecoach", + "lockup", + "compost", + "sprinkler", + "valentine", + "minstrel", + "nursemaid", + "courtier", + "spool", + "noodle", + "periodical", + "earlobe", + "nimbus", + "innovator", + "straitjacket", + "kidnapper", + "estuary", + "duster", + "motorboat", + "kicker", + "yeoman", + "firearm", + "granddaddy", + "projectile", + "toxin", + "phantom", + "acolyte", + "corpsman", + "duchess", + "delinquent", + "operative", + "megaphone", + "curate", + "dermatologist", + "mango", + "moccasin", + "marionette", + "ooze", + "twill", + "trowel", + "parkway", + "snapper", + "flagon", + "butte", + "thunderbolt", + "dike", + "cowbell", + "drifter", + "snot", + "tortoise", + "lattice", + "strudel", + "composite", + "neurosurgeon", + "mariner", + "kiln", + "archeologist", + "winery", + "albatross", + "gunboat", + "cassava", + "poplar", + "obelisk", + "blubber", + "thorax", + "leotard", + "despot", + "lyricist", + "lumberjack", + "pagan", + "sturgeon", + "chambermaid", + "whisk", + "copter", + "shipwreck", + "clipper", + "notepad", + "jackal", + "adhesive", + "mermaid", + "omelette", + "tracer", + "seagull", + "needler", + "caterpillar", + "impostor", + "playpen", + "seamstress", + "absolutist", + "cadaver", + "agitator", + "greatcoat", + "superstructure", + "bough", + "anchorage", + "samovar", + "burrow", + "hydrant", + "paintbrush", + "chuck", + "trumpeter", + "ferret", + "salamander", + "mace", + "individualist", + "synthesizer", + "thoroughbred", + "cupola", + "ruffle", + "skeptic", + "chalice", + "sapling", + "creeper", + "galleon", + "holly", + "gravestone", + "nymph", + "boxcar", + "refractor", + "voucher", + "thimble", + "castor", + "peppermint", + "nightdress", + "redoubt", + "invoice", + "sprig", + "piglet", + "piper", + "lackey", + "breastplate", + "gadfly", + "chemise", + "sediment", + "cannibal", + "tulip", + "caramel", + "cornerback", + "insecticide", + "glassware", + "damper", + "colonist", + "ogre", + "cowl", + "garter", + "overpass", + "potpourri", + "corsage", + "mobster", + "sandal", + "pecan", + "ecologist", + "quagmire", + "agronomist", + "firecracker", + "mulberry", + "hoist", + "discotheque", + "spar", + "beeper", + "bouncer", + "burnout", + "welder", + "mortuary", + "incubator", + "gulch", + "notary", + "speedometer", + "mitt", + "footman", + "cleaver", + "daybed", + "laddie", + "juggler", + "acrobat", + "hourglass", + "onyx", + "mandarin", + "democrat", + "sorority", + "badger", + "explosive", + "spatula", + "alder", + "nightstick", + "salve", + "drunk", + "buttress", + "bidet", + "buffoon", + "mullah", + "spotter", + "chalet", + "rattler", + "beagle", + "trapeze", + "fiddler", + "fillet", + "luncheonette", + "purveyor", + "buttonhole", + "churchman", + "jester", + "fleece", + "spigot", + "leaflet", + "beaker", + "experimenter", + "cantaloupe", + "flue", + "commoner", + "boathouse", + "singularity", + "gage", + "paratrooper", + "pitchfork", + "playhouse", + "tripe", + "stylus", + "pacemaker", + "emporium", + "trapper", + "pulley", + "candlestick", + "checkerboard", + "surcoat", + "toolbox", + "hunchback", + "arbitrator", + "miller", + "tender", + "gabardine", + "quack", + "foxhole", + "circlet", + "bivouac", + "dachshund", + "puke", + "bagel", + "nomad", + "opal", + "firebox", + "ratchet", + "cheque", + "footstool", + "velour", + "barrister", + "plough", + "broomstick", + "sore", + "noble", + "machinist", + "waffle", + "guardhouse", + "sabre", + "paraffin", + "bougainvillea", + "cyclist", + "meteorologist", + "demagogue", + "astrologer", + "zygote", + "anchovy", + "scullery", + "turnstile", + "gaslight", + "paprika", + "gurney", + "fount", + "jackknife", + "still", + "butternut", + "miniskirt", + "salver", + "tugboat", + "gizzard", + "mercenary", + "matchbook", + "barb", + "yarmulke", + "char", + "metronome", + "tine", + "carnivore", + "armband", + "polder", + "bankroll", + "stroller", + "saxophonist", + "gruel", + "juicer", + "scooter", + "socialist", + "ember", + "scorecard", + "parakeet", + "pixie", + "anesthetist", + "physiologist", + "coverall", + "lubricant", + "mourner", + "rime", + "pistachio", + "monocle", + "toupee", + "eyelash", + "seesaw", + "tsar", + "vagabond", + "rhinestone", + "viper", + "planetoid", + "catamaran", + "wigwam", + "hoodlum", + "tableware", + "umber", + "philanthropist", + "dissenter", + "conch", + "angler", + "setter", + "grader", + "kneecap", + "birdbath", + "tuba", + "houseboat", + "sable", + "coolie", + "pharaoh", + "dollhouse", + "greenback", + "freelancer", + "hairpin", + "juggernaut", + "sander", + "surfer", + "greengrocer", + "dumbbell", + "sidearm", + "agnostic", + "tassel", + "sextant", + "vocalist", + "walleye", + "highball", + "godmother", + "motorbike", + "hassock", + "psychotherapist", + "calabash", + "relativist", + "packer", + "digger", + "banshee", + "autocrat", + "muskrat", + "extinguisher", + "hospice", + "mastermind", + "figurine", + "epidemiologist", + "minaret", + "weatherman", + "cistern", + "werewolf", + "bricklayer", + "obsidian", + "blackbird", + "schmuck", + "handrail", + "sandbag", + "sesame", + "quark", + "sundae", + "dipper", + "mould", + "statuette", + "cornet", + "lilac", + "geisha", + "foist", + "percussionist", + "wyrm", + "slough", + "twister", + "pinkie", + "fief", + "critter", + "haystack", + "skimmer", + "geyser", + "tabernacle", + "gargoyle", + "projectionist", + "betrayer", + "trawler", + "teakettle", + "geneticist", + "centrifuge", + "workstation", + "lampshade", + "carafe", + "rave", + "junior", + "rapier", + "landmass", + "forester", + "gymnast", + "gnome", + "drumstick", + "glob", + "academic", + "knocker", + "grendel", + "whaler", + "stork", + "gill", + "locksmith", + "henchman", + "wellspring", + "wipe", + "sportscaster", + "impersonator", + "shrew", + "loader", + "magnolia", + "cudgel", + "glutton", + "tarp", + "chaperone", + "imposter", + "cannonball", + "woodpecker", + "tumbleweed", + "gardenia", + "gramophone", + "semaphore", + "dogwood", + "sirloin", + "pagoda", + "belfry", + "cubbyhole", + "greyhound", + "savanna", + "copier", + "nightshirt", + "boatyard", + "marshmallow", + "thrush", + "sweeper", + "chimera", + "overlord", + "lollipop", + "pastel", + "laminate", + "tendril", + "hanky", + "amethyst", + "watchtower", + "dryad", + "prefect", + "tong", + "croissant", + "brioche", + "thistle", + "dumpling", + "marketer", + "oboe", + "tabby", + "bassist", + "doggy", + "ghoul", + "pushcart", + "sourdough", + "meteorite", + "caboose", + "junket", + "iguana", + "reaper", + "sharpshooter", + "minnow", + "skyrocket", + "biker", + "underwriter", + "biplane", + "server", + "hiker", + "electrolyte", + "mascot", + "sherbet", + "carillon", + "decal", + "underground", + "automaton", + "palladium", + "acacia", + "geographer", + "bludgeon", + "fitter", + "atoll", + "fife", + "barracuda", + "mortician", + "cherub", + "antler", + "cravat", + "scorpion", + "possum", + "girder", + "adapter", + "mousetrap", + "steppe", + "hypochondriac", + "conga", + "citron", + "bolster", + "wren", + "mountaineer", + "cesspool", + "barrette", + "miser", + "cookstove", + "cummerbund", + "labourer", + "ascot", + "wraith", + "tarantula", + "toffee", + "pituitary", + "liana", + "highboy", + "dumpster", + "sandbox", + "alchemist", + "pacifier", + "republican", + "electrocardiogram", + "recliner", + "aqueduct", + "handmaiden", + "hedgehog", + "corsair", + "hutch", + "fastness", + "grandparent", + "ringleader", + "transformer", + "ceramic", + "tomcat", + "harvester", + "ream", + "rifleman", + "nightie", + "goaltender", + "comforter", + "hostelry", + "gladiator", + "bombard", + "wonderland", + "roadhouse", + "schoolmarm", + "portiere", + "howitzer", + "grouper", + "amoeba", + "teamster", + "bandana", + "sapper", + "leviathan", + "hamster", + "sheikh", + "creel", + "lurcher", + "pantsuit", + "deodorant", + "soybean", + "washboard", + "underpass", + "paramour", + "microbe", + "radiologist", + "salesperson", + "signpost", + "sepulcher", + "iconoclast", + "nunnery", + "carryall", + "nettle", + "jaguar", + "odometer", + "mussel", + "hacksaw", + "broadsword", + "archangel", + "powerboat", + "pylon", + "toboggan", + "trampoline", + "acorn", + "forklift", + "dragonet", + "ligament", + "arrowhead", + "conversationalist", + "diorama", + "talc", + "incubus", + "rhododendron", + "bumblebee", + "bullfrog", + "tankard", + "ferryman", + "garret", + "copywriter", + "bookseller", + "quiche", + "spitball", + "marshland", + "beautician", + "daredevil", + "racehorse", + "tradesman", + "ruffian", + "ringmaster", + "technocrat", + "icehouse", + "ventilator", + "milkmaid", + "tribesman", + "hailstorm", + "pinafore", + "ophthalmologist", + "caldron", + "fjord", + "trinket", + "ventriloquist", + "grindstone", + "ingot", + "pillbox", + "scimitar", + "truncheon", + "damsel", + "papaya", + "workhouse", + "nightingale", + "entomologist", + "wicket", + "logician", + "gatekeeper", + "slingshot", + "titan", + "brawler", + "particulate", + "surfboard", + "almanac", + "pepperoni", + "boor", + "bannister", + "pretzel", + "pallbearer", + "airframe", + "milkshake", + "battlement", + "dragonfly", + "nerd", + "blockhouse", + "donut", + "backhoe", + "collier", + "footlocker", + "raindrop", + "pomegranate", + "dunce", + "mangrove", + "boxwood", + "briar", + "trickster", + "caveman", + "maggot", + "blindfold", + "sunbeam", + "chrysanthemum", + "flowerpot", + "satrap", + "warbler", + "hubcap", + "baseboard", + "shire", + "kraken", + "goatskin", + "doormat", + "diadem", + "superhighway", + "zoologist", + "exterminator", + "actuary", + "hatter", + "earpiece", + "dormer", + "timberland", + "hypnotist", + "claymore", + "satyr", + "eatery", + "seashell", + "radish", + "router", + "dinette", + "trombonist", + "rivet", + "whelp", + "mitten", + "conciliator", + "chine", + "stockyard", + "vandal", + "hornet", + "fledgling", + "blowpipe", + "backstop", + "bedpan", + "spacesuit", + "stoneware", + "cabana", + "boater", + "lawnmower", + "shaver", + "orthodontist", + "extrovert", + "harpist", + "rayon", + "flipper", + "mullet", + "squatter", + "commodore", + "newlywed", + "chiropractor", + "arsonist", + "wrecker", + "meatball", + "bobcat", + "camcorder", + "pasty", + "classicist", + "cryptographer", + "honeycomb", + "barker", + "myrtle", + "marlin", + "capon", + "toenail", + "auger", + "bauble", + "rube", + "flophouse", + "sardine", + "fang", + "clavicle", + "quince", + "tibia", + "bramble", + "woodchuck", + "stole", + "tuner", + "arranger", + "chiton", + "swampland", + "libertarian", + "pegboard", + "dork", + "wishbone", + "millstone", + "snorkel", + "snowplow", + "trespasser", + "snowflake", + "evergreen", + "clog", + "cougar", + "wattle", + "pansy", + "pulsar", + "landau", + "meteoroid", + "meringue", + "cultivator", + "gazelle", + "demitasse", + "skewer", + "sorbet", + "hologram", + "rivulet", + "flail", + "impala", + "persimmon", + "snowman", + "starling", + "herder", + "stinker", + "colander", + "armadillo", + "debater", + "birdcage", + "baroness", + "aureole", + "astrophysicist", + "flatboat", + "stilt", + "barbell", + "fishnet", + "jackrabbit", + "oceanographer", + "earthling", + "foothill", + "fairyland", + "sawhorse", + "dustpan", + "woodworker", + "archivist", + "bassinet", + "torte", + "caddy", + "microbiologist", + "urologist", + "tambourine", + "cowgirl", + "bagpipe", + "coif", + "adder", + "decoder", + "stave", + "acrylic", + "inkwell", + "constrictor", + "seaplane", + "dredge", + "storyboard", + "rafter", + "blowgun", + "blowtorch", + "mallard", + "toxicologist", + "fencer", + "golem", + "heirloom", + "canine", + "emcee", + "eyelet", + "tepee", + "buccaneer", + "parkland", + "phaeton", + "lanyard", + "castaway", + "meson", + "bouillabaisse", + "stinger", + "crimp", + "jackhammer", + "strongbox", + "cobweb", + "couturier", + "chalkboard", + "basilisk", + "duckling", + "floodlight", + "truss", + "sprite", + "esplanade", + "shipwright", + "whisker", + "rickshaw", + "ferryboat", + "remover", + "diva", + "tortilla", + "birder", + "harrier", + "tamale", + "cheetah", + "protester", + "stockroom", + "factotum", + "aeroplane", + "clarinetist", + "undergarment", + "keepsake", + "groupie", + "scallop", + "screamer", + "presenter", + "centaur", + "curio", + "grandmaster", + "finisher", + "luminary", + "islet", + "apricot", + "huckleberry", + "showgirl", + "cornea", + "rower", + "gopher", + "mandolin", + "calyx", + "ironworker", + "currant", + "anthropoid", + "woodcutter", + "magpie", + "minion", + "scamp", + "snowshoe", + "brisket", + "choker", + "stevedore", + "plantain", + "tipper", + "seismometer", + "chipmunk", + "tuber", + "demographer", + "turncoat", + "demesne", + "oiler", + "mackinaw", + "flutist", + "pram", + "auteur", + "hedonist", + "tutu", + "sycophant", + "registrar", + "neckerchief", + "clinician", + "pinwheel", + "eyedropper", + "macaw", + "valedictorian", + "anatomist", + "nuke", + "cinematographer", + "icicle", + "legume", + "masseur", + "vertebra", + "stele", + "streamer", + "flamethrower", + "agate", + "cairn", + "linden", + "moray", + "talon", + "camisole", +}