├── .travis.yml ├── .gitignore ├── deps.edn ├── project.clj ├── CHANGELOG.md ├── Makefile ├── src └── sha_words │ ├── main.clj │ └── words.clj ├── README.md └── LICENSE /.travis.yml: -------------------------------------------------------------------------------- 1 | language: clojure 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /classes 3 | /checkouts 4 | pom.xml 5 | pom.xml.asc 6 | *.jar 7 | *.class 8 | /.lein-* 9 | /.nrepl-port 10 | -------------------------------------------------------------------------------- /deps.edn: -------------------------------------------------------------------------------- 1 | {:paths ["src" "classes"] 2 | :deps {org.clojure/clojure {:mvn/version "1.10.0"}} 3 | :aliases { 4 | :uberdeps { 5 | :extra-deps {uberdeps/uberdeps {:mvn/version "1.0.2"}} 6 | :main-opts ["-m" "uberdeps.uberjar"]}}} 7 | -------------------------------------------------------------------------------- /project.clj: -------------------------------------------------------------------------------- 1 | (defproject sha-words "0.1.1-SNAPSHOT" 2 | :description "Convert a sha512 value to a predictive list of 5 words" 3 | :license {:name "Eclipse Public License" 4 | :url "http://www.eclipse.org/legal/epl-v10.html"} 5 | :dependencies [[org.clojure/clojure "1.8.0"]] 6 | :main sha-words.main 7 | :aot [sha-words.main]) 8 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | All notable changes to this project will be documented in this file. This change 3 | log follows the conventions of [keepachangelog.com](http://keepachangelog.com/). 4 | 5 | ## [Unreleased] 6 | 7 | ### Changed 8 | - Fix typo in wordlist ("aftertaste") #1 9 | 10 | ## [0.1.0] - 2018-01-25 11 | ### Added 12 | - Initial revision 13 | 14 | [Unreleased]: https://github.com/ordnungswidrig/sha-words/compare/0.1.1...HEAD 15 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | BB:=target/sha-words.bb 2 | 3 | all: babashka uberjar 4 | @echo "Executable babashka script is in ${BB}" 5 | @echo "Uberjar is in target/sha-words.jar" 6 | 7 | target: 8 | mkdir target 9 | 10 | ${BB}: target 11 | bb -cp src -m sha-words.main --uberscript ${BB} 12 | bb -e '(spit "${BB}" (str "#!/usr/bin/env bb\n\n" (slurp "target/sha-words.bb")))' 13 | chmod +x ${BB} 14 | 15 | .PHONY: babashka 16 | babashka: ${BB} 17 | 18 | classes/sha_words/main.class: 19 | mkdir -p classes 20 | clj -M -e "(compile 'sha-words.main)" 21 | 22 | target/sha-words.jar: classes/sha_words/main.class 23 | clojure -A:uberdeps -M --main-class sha_words.main 24 | 25 | .PHONY: uberjar 26 | uberjar: target/sha-words.jar 27 | 28 | .PHONY: clean 29 | clean: 30 | rm -r classes 31 | rm -r target 32 | 33 | -------------------------------------------------------------------------------- /src/sha_words/main.clj: -------------------------------------------------------------------------------- 1 | (ns sha-words.main 2 | (:require [sha-words.words :refer [word-list]] 3 | [clojure.string :as str]) 4 | (:gen-class)) 5 | 6 | (defn bit-rotate [x size k] 7 | (bit-or (bit-shift-right x k) 8 | (bit-shift-left x (- size k)))) 9 | 10 | (defn sha-word [sha] 11 | (let [v (.longValue (BigInteger. sha 16)) 12 | n (int (Math/ceil (/ (* 64 (Math/log 2)) (Math/log (count word-list))))) 13 | ;; convert to n values in the range of the wordlist 14 | vs (take n (iterate #(bit-xor % (Long/rotateRight % 4)) v))] 15 | (->> vs 16 | (map #(nth word-list (mod % (count word-list)) vs)) 17 | (str/join "-")))) 18 | 19 | 20 | (defn -main [& [sha]] 21 | (if sha 22 | (try (println (sha-word sha)) 23 | (catch NumberFormatException e 24 | (print "Argument must be a hex number") 25 | (System/exit 2))) 26 | (do 27 | (println "Syntax: sha-words hex-number") 28 | (System/exit 1)))) 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sha-words 2 | 3 | A clojure program to turn a sha hash into list of nouns in a predictable jar. 4 | 5 | ## Usage 6 | 7 | ### Java versoin 8 | ``` 9 | $ java -jar sha-words.jar b67d6eafeae1d5a424a609864fad10665453afa5 10 | ``` 11 | 12 | ### Babashka version 13 | 14 | ``` 15 | $ ./sha-words.bb 16 | ``` 17 | 18 | ### Note about shas: 19 | 20 | Actually any hex number should work fine. It happens to be optimized for 64bits. 21 | 22 | ## Example 23 | 24 | ``` 25 | $ git rev-parse HEAD 26 | 5379784cf5f6ebf5cc62cf8b9972870bb4e42c05 27 | 28 | $ git rev-parse HEAD | xargs ./sha-words.bb 29 | observation-obedient-bedroom-sweet-electric 30 | ``` 31 | 32 | ## Building 33 | 34 | ### Requirements 35 | 36 | You'll need clojure and babashka, however you can build either version only if 37 | you prefer. 38 | 39 | ``` 40 | make 41 | ``` 42 | 43 | This requires babashka to build the babaska version. 44 | 45 | You can restrict the build to the uberjar: `make uberjar` 46 | 47 | ## License 48 | 49 | Copyright © 2018-2020 Philipp Meier 50 | 51 | Distributed under the Eclipse Public License either version 1.0 or (at 52 | your option) any later version. 53 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC 2 | LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM 3 | CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 4 | 5 | 1. DEFINITIONS 6 | 7 | "Contribution" means: 8 | 9 | a) in the case of the initial Contributor, the initial code and 10 | documentation distributed under this Agreement, and 11 | 12 | b) in the case of each subsequent Contributor: 13 | 14 | i) changes to the Program, and 15 | 16 | ii) additions to the Program; 17 | 18 | where such changes and/or additions to the Program originate from and are 19 | distributed by that particular Contributor. A Contribution 'originates' from 20 | a Contributor if it was added to the Program by such Contributor itself or 21 | anyone acting on such Contributor's behalf. Contributions do not include 22 | additions to the Program which: (i) are separate modules of software 23 | distributed in conjunction with the Program under their own license 24 | agreement, and (ii) are not derivative works of the Program. 25 | 26 | "Contributor" means any person or entity that distributes the Program. 27 | 28 | "Licensed Patents" mean patent claims licensable by a Contributor which are 29 | necessarily infringed by the use or sale of its Contribution alone or when 30 | combined with the Program. 31 | 32 | "Program" means the Contributions distributed in accordance with this 33 | Agreement. 34 | 35 | "Recipient" means anyone who receives the Program under this Agreement, 36 | including all Contributors. 37 | 38 | 2. GRANT OF RIGHTS 39 | 40 | a) Subject to the terms of this Agreement, each Contributor hereby grants 41 | Recipient a non-exclusive, worldwide, royalty-free copyright license to 42 | reproduce, prepare derivative works of, publicly display, publicly perform, 43 | distribute and sublicense the Contribution of such Contributor, if any, and 44 | such derivative works, in source code and object code form. 45 | 46 | b) Subject to the terms of this Agreement, each Contributor hereby grants 47 | Recipient a non-exclusive, worldwide, royalty-free patent license under 48 | Licensed Patents to make, use, sell, offer to sell, import and otherwise 49 | transfer the Contribution of such Contributor, if any, in source code and 50 | object code form. This patent license shall apply to the combination of the 51 | Contribution and the Program if, at the time the Contribution is added by the 52 | Contributor, such addition of the Contribution causes such combination to be 53 | covered by the Licensed Patents. The patent license shall not apply to any 54 | other combinations which include the Contribution. No hardware per se is 55 | licensed hereunder. 56 | 57 | c) Recipient understands that although each Contributor grants the licenses 58 | to its Contributions set forth herein, no assurances are provided by any 59 | Contributor that the Program does not infringe the patent or other 60 | intellectual property rights of any other entity. Each Contributor disclaims 61 | any liability to Recipient for claims brought by any other entity based on 62 | infringement of intellectual property rights or otherwise. As a condition to 63 | exercising the rights and licenses granted hereunder, each Recipient hereby 64 | assumes sole responsibility to secure any other intellectual property rights 65 | needed, if any. For example, if a third party patent license is required to 66 | allow Recipient to distribute the Program, it is Recipient's responsibility 67 | to acquire that license before distributing the Program. 68 | 69 | d) Each Contributor represents that to its knowledge it has sufficient 70 | copyright rights in its Contribution, if any, to grant the copyright license 71 | set forth in this Agreement. 72 | 73 | 3. REQUIREMENTS 74 | 75 | A Contributor may choose to distribute the Program in object code form under 76 | its own license agreement, provided that: 77 | 78 | a) it complies with the terms and conditions of this Agreement; and 79 | 80 | b) its license agreement: 81 | 82 | i) effectively disclaims on behalf of all Contributors all warranties and 83 | conditions, express and implied, including warranties or conditions of title 84 | and non-infringement, and implied warranties or conditions of merchantability 85 | and fitness for a particular purpose; 86 | 87 | ii) effectively excludes on behalf of all Contributors all liability for 88 | damages, including direct, indirect, special, incidental and consequential 89 | damages, such as lost profits; 90 | 91 | iii) states that any provisions which differ from this Agreement are offered 92 | by that Contributor alone and not by any other party; and 93 | 94 | iv) states that source code for the Program is available from such 95 | Contributor, and informs licensees how to obtain it in a reasonable manner on 96 | or through a medium customarily used for software exchange. 97 | 98 | When the Program is made available in source code form: 99 | 100 | a) it must be made available under this Agreement; and 101 | 102 | b) a copy of this Agreement must be included with each copy of the Program. 103 | 104 | Contributors may not remove or alter any copyright notices contained within 105 | the Program. 106 | 107 | Each Contributor must identify itself as the originator of its Contribution, 108 | if any, in a manner that reasonably allows subsequent Recipients to identify 109 | the originator of the Contribution. 110 | 111 | 4. COMMERCIAL DISTRIBUTION 112 | 113 | Commercial distributors of software may accept certain responsibilities with 114 | respect to end users, business partners and the like. While this license is 115 | intended to facilitate the commercial use of the Program, the Contributor who 116 | includes the Program in a commercial product offering should do so in a 117 | manner which does not create potential liability for other Contributors. 118 | Therefore, if a Contributor includes the Program in a commercial product 119 | offering, such Contributor ("Commercial Contributor") hereby agrees to defend 120 | and indemnify every other Contributor ("Indemnified Contributor") against any 121 | losses, damages and costs (collectively "Losses") arising from claims, 122 | lawsuits and other legal actions brought by a third party against the 123 | Indemnified Contributor to the extent caused by the acts or omissions of such 124 | Commercial Contributor in connection with its distribution of the Program in 125 | a commercial product offering. The obligations in this section do not apply 126 | to any claims or Losses relating to any actual or alleged intellectual 127 | property infringement. In order to qualify, an Indemnified Contributor must: 128 | a) promptly notify the Commercial Contributor in writing of such claim, and 129 | b) allow the Commercial Contributor to control, and cooperate with the 130 | Commercial Contributor in, the defense and any related settlement 131 | negotiations. The Indemnified Contributor may participate in any such claim 132 | at its own expense. 133 | 134 | For example, a Contributor might include the Program in a commercial product 135 | offering, Product X. That Contributor is then a Commercial Contributor. If 136 | that Commercial Contributor then makes performance claims, or offers 137 | warranties related to Product X, those performance claims and warranties are 138 | such Commercial Contributor's responsibility alone. Under this section, the 139 | Commercial Contributor would have to defend claims against the other 140 | Contributors related to those performance claims and warranties, and if a 141 | court requires any other Contributor to pay any damages as a result, the 142 | Commercial Contributor must pay those damages. 143 | 144 | 5. NO WARRANTY 145 | 146 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON 147 | AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER 148 | EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR 149 | CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A 150 | PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the 151 | appropriateness of using and distributing the Program and assumes all risks 152 | associated with its exercise of rights under this Agreement , including but 153 | not limited to the risks and costs of program errors, compliance with 154 | applicable laws, damage to or loss of data, programs or equipment, and 155 | unavailability or interruption of operations. 156 | 157 | 6. DISCLAIMER OF LIABILITY 158 | 159 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY 160 | CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, 161 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION 162 | LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 163 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 164 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE 165 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY 166 | OF SUCH DAMAGES. 167 | 168 | 7. GENERAL 169 | 170 | If any provision of this Agreement is invalid or unenforceable under 171 | applicable law, it shall not affect the validity or enforceability of the 172 | remainder of the terms of this Agreement, and without further action by the 173 | parties hereto, such provision shall be reformed to the minimum extent 174 | necessary to make such provision valid and enforceable. 175 | 176 | If Recipient institutes patent litigation against any entity (including a 177 | cross-claim or counterclaim in a lawsuit) alleging that the Program itself 178 | (excluding combinations of the Program with other software or hardware) 179 | infringes such Recipient's patent(s), then such Recipient's rights granted 180 | under Section 2(b) shall terminate as of the date such litigation is filed. 181 | 182 | All Recipient's rights under this Agreement shall terminate if it fails to 183 | comply with any of the material terms or conditions of this Agreement and 184 | does not cure such failure in a reasonable period of time after becoming 185 | aware of such noncompliance. If all Recipient's rights under this Agreement 186 | terminate, Recipient agrees to cease use and distribution of the Program as 187 | soon as reasonably practicable. However, Recipient's obligations under this 188 | Agreement and any licenses granted by Recipient relating to the Program shall 189 | continue and survive. 190 | 191 | Everyone is permitted to copy and distribute copies of this Agreement, but in 192 | order to avoid inconsistency the Agreement is copyrighted and may only be 193 | modified in the following manner. The Agreement Steward reserves the right to 194 | publish new versions (including revisions) of this Agreement from time to 195 | time. No one other than the Agreement Steward has the right to modify this 196 | Agreement. The Eclipse Foundation is the initial Agreement Steward. The 197 | Eclipse Foundation may assign the responsibility to serve as the Agreement 198 | Steward to a suitable separate entity. Each new version of the Agreement will 199 | be given a distinguishing version number. The Program (including 200 | Contributions) may always be distributed subject to the version of the 201 | Agreement under which it was received. In addition, after a new version of 202 | the Agreement is published, Contributor may elect to distribute the Program 203 | (including its Contributions) under the new version. Except as expressly 204 | stated in Sections 2(a) and 2(b) above, Recipient receives no rights or 205 | licenses to the intellectual property of any Contributor under this 206 | Agreement, whether expressly, by implication, estoppel or otherwise. All 207 | rights in the Program not expressly granted under this Agreement are 208 | reserved. 209 | 210 | This Agreement is governed by the laws of the State of New York and the 211 | intellectual property laws of the United States of America. No party to this 212 | Agreement will bring a legal action under this Agreement more than one year 213 | after the cause of action arose. Each party waives its rights to a jury trial 214 | in any resulting litigation. 215 | -------------------------------------------------------------------------------- /src/sha_words/words.clj: -------------------------------------------------------------------------------- 1 | (ns sha-words.words) 2 | 3 | (def word-list 4 | ["able", "about", "account", "acid", "across", "act", 5 | "addition", "adjustment", "advertisement", "agreement", "after","again", "against", "air", "all", 6 | "almost", "am", "among", "amount", "amusement", "an", "and","angry", "angle", 7 | "animal", "answer", "ant", "any", "apparatus", "apple", "approval", "arch","argument", 8 | "arm", "army", "art", "association", "at", "attack", "attempt", "attention", 9 | "attitude", "attraction", "authority", "automatic", "awake", "alcohol", "Algebra", "aluminum", "ammonia", "anesthetic", 10 | "April", "Arithmetic", "asbestos", "August", "autobus", "automobile", "abdomen", "absence", "absorption", "acceleration", 11 | "acceptance", "accessory", "accident", "active", "address", "adjacent", "adventure", "advice", "age", "agent", 12 | "agency", "ago", "allowance", "along", "also", "alternative", "always", "ambition", "amplitude", 13 | "anchor", "ankle", "appendage", "application", "approximation", "arbitration", "arbitrary", "arc", "area", "arrangement", 14 | "ash", "asset", "assistant", "average", "awkward", "axis", "aftereffect", "aftertaste", "afterthought", "aircushion", 15 | "airman", "airmen", "airplane", "airtight", "another", "anybody", "anyhow", "anyone", "anything", "anywhere", 16 | "away", "actor", "acting", "baby", "back", "bad", "bag", "balance", "ball", "band", 17 | "base", "basin", "basket", "bath", "be", "beautiful", "because", "bed", "bee", "been", 18 | "before", "behavior", "belief", "bell", "bent", "berry", "best", "better", "between", "bird", 19 | "birth", "bit", "bite", "bitter", "black", "blade", "blood", "blow", "blue", "board", 20 | "boat", "body", "bone", "book", "boot", "boiling", "bottle", "box", "boy", "brain", 21 | "brake", "branch", "brass", "bread", "breath", "brick", "bridge", "bright", "broken", "brother", 22 | "brown", "brush", "bucket", "building", "bulb", "button", "burn", "burst", "business", "but", 23 | "butter", "by", "ballet", "Bang", "bank", "bar", "beef", "beer", "Biology", "bomb", 24 | "balcony", "bale", "bankrupt", "bark", "barrel", "beak", "beaker", "beard", "beat", "behind", 25 | "belt", "bet", "bill", "birefringence", "blame", "blanket", "both", "bottom", "brave", "break", 26 | "breakfast", "breast", "broker", "bubble", "bud", "budget", "buoyancy", "bunch", "burial", "busy", 27 | "backbone", "backwoods", "become", "became", "bedroom", "beeswax", "birthday", "birthright", "blackberry", "blackbird", 28 | "blackboard", "bloodvessel", "bluebell", "bookkeeper", "brushwood", "buttercup", "basing", "based", "builder", "burner", 29 | "burned", "burning", "cake", "camera", "canvas", "card", "care", "carriage", "cart", "cat", 30 | "cause", "certain", "chain", "chalk", "chance", "change", "cheap", "cheese", "chemical", "chest", 31 | "chief", "chin", "church", "circle", "class", "clean", "clear", "clock", "cloth", "cloud", 32 | "coal", "coat", "cold", "collar", "color", "comb", "come", "comfort", "committee", "community", 33 | "common", "company", "comparison", "competition", "complete", "complex", "computer", "condition", "connection", "conscious", 34 | "control", "cook", "copper", "copy", "cord", "cork", "cotton", "cough", "country", "cover", 35 | "cow", "crack", "credit", "crime", "cruel", "crush", "cry", "culture", "cup", "custom", 36 | "current", "curtain", "curve", "cushion", "cut", "cafe", "calendar", "catarrh", "cent", "centi-", 37 | "champagne", "chauffeur", "chemist", "Chemistry", "check", "chocolate", "chorus", "cigarette", "circus", "citron", 38 | "club", "coffee", "cocktail", "cognac", "College", "colony", "calculation", "call", "came", "capacity", 39 | "capital", "carpet", "cartilage", "case", "cast", "cave", "cavity", "cell", "ceremony", "certificate", 40 | "chair", "character", "charge", "child", "chimney", "china", "choice", "circulation", "circuit", "circumference", 41 | "civilization", "clay", "claim", "claw", "cleavage", "clever", "client", "climber", "clip", "code", 42 | "coil", "collision", "collection", "column", "combination", "combine", "communications", "complaint", "component", "compound", 43 | "concept", "concrete", "conductor", "congruent", "conservation", "consignment", "constant", "consumer", "continuous", "contour", 44 | "convenient", "conversion", "cool", "corner", "correlation", "corrosion", "cost", "court", "creeper", "crop", 45 | "cross", "cunning", "cusp", "customs", "cardboard", "carefree", "caretaker", "clockwork", "commonsense", "copyright", 46 | "cupboard", "carter", "clothier", "clothing", "cooker", "cooked", "cooking", "crying", "damage", "danger", 47 | "dark", "daughter", "day", "dead", "dear", "death", "debt", "decision", "deep", "degree", 48 | "delicate", "dependent", "design", "desire", "destruction", "detail", "development", "did", "different", "digestion", 49 | "direction", "dirty", "discovery", "discussion", "disease", "disgust", "distance", "distribution", "division", "do", 50 | "does", "dog", "done", "door", "down", "doubt", "drain", "drawer", "dress", "drink", 51 | "driving", "drop", "dry", "dust", "dance", "December", "deci-", "degree", "dollar", "Dominion", 52 | "dynamite", "damping", "date", "debit", "deck", "decrease", "defect", "deficiency", "deflation", "degenerate", 53 | "delivery", "demand", "denominator", "department", "desert", "density", "deposit", "determining", "dew", "diameter", 54 | "difference", "difficulty", "drift", "dike", "dilution", "dinner", "dip", "direct", "disappearance", "discharge", 55 | "discount", "disgrace", "dislike", "dissipation", "disturbance", "ditch", "dive", "divisor", "divorce", "doll", 56 | "domesticating", "dreadful", "dream", "duct", "dull", "duty", "daylight", "downfall", "daily", "dancer", 57 | "dancing", "designer", "dressing", "driver", "dropped", "dropper", "duster", "ear", "early", "earth", 58 | "east", "edge", "education", "effect", "egg", "elastic", "electric", "end", "engine", "enough", 59 | "environment", "equal", "error", "even", "event", "ever", "every", "example", "exchange", "existence", 60 | "expansion", "experience", "expert", "eye", "eight", "electricity", "eleven", "Embassy", "Empire", "encyclopedia", 61 | "engineer", "euro", "each", "easy", "economy", "efficiency", "effort", "either", "elimination", "employer", 62 | "employment", "empty", "enemy", "envelope", "environment", "envy", "equation", "erosion", "eruption", "evaporation", 63 | "evening", "exact", "excitement", "experiment", "exercise", "explanation", "explosion", "export", "expression", "extinction", 64 | "eyebrow", "eyelash", "ear-ring", "earthwork", "evergreen", "everybody", "everyday", "everyone", "everything", "everywhere", 65 | "eyeball", "face", "fact", "fall", "false", "family", "far", "farm", "farther", "fat", 66 | "father", "fear", "feather", "feeble", "feeling", "female", "fertile", "fiction", "field", 67 | "fight", "finger", "fire", "first", "fish", "fixed", "flag", "flame", "flat", "flight", 68 | "floor", "flower", "fly", "fold", "food", "foolish", "foot", "for", "force", "fork", 69 | "form", "forward", "fowl", "frame", "free", "frequent", "friend", "from", "front", "fruit", 70 | "full", "further", "future", "February", "fifteen", "fifth", "fifty", "five", "four", "fourteen", 71 | "fourth", "forty", "Friday", "factor", "failure", "fair", "famous", "fan", "fastening", "fault", 72 | "ferment", "fertilizing", "fever", "fiber", "figure", "fin", "financial", "flash", "flask", "flesh", 73 | "flood", "flour", "focus", "forecast", "forehead", "foreign", "forgiveness", "fraction", "fracture", "fresh", 74 | "friction", "flint", "flood", "flow", "foliation", "frost", "frozen", "fume", "funnel", "funny", 75 | "fur", "furnace", "furniture", "fusion", "fatherland", "fingerprint", "firearm", "fire-engine", "firefly", "fireman", 76 | "fireplace", "firework", "first-rate", "football", "footlights", "footman", "footnote", "footprint", "footstep", "farmer", 77 | "fisher", "folder", "fired", "firing", "gave", "garden", "general", "get", "girl", "give", 78 | "glass", "glove", "go", "goat", "goes", "gold", "gone", "good", "got", "gat", 79 | "government", "grain", "grass", "great", "green", "gray", "grip", "group", "growth", "guide", 80 | "gun", "gas", "Geography", "Geology", "Geometry", "gram", "glycerin", "gate", "generation", "germ", 81 | "germinating", "gill", "glacier", "gland", "god", "grand", "grateful", "grating", "gravel", "grease", 82 | "grief", "grocery", "groove", "gross", "ground", "guard", "guarantee", "guess", "gum", "gasworks", 83 | "goldfish", "goodlooking", "good-morning", "goodnight", "gunboat", "gun-carriage", "gunmetal", "gunpowder", "gardener", "had", 84 | "hair", "hammer", "hand", "hanging", "happy", "harbor", "hard", "harmony", "has", "hat", 85 | "hate", "hath", "have", "he", "head", "healthy", "hearing", "heart", "heat", "helicopter", 86 | "help", "her", "here", "heredity", "high", "him", "history", "hole", "hollow", "hook", 87 | "hope", "horn", "horse", "hospital", "hour", "house", "how", "humor", "half", "hiss", 88 | "hotel", "hundred", "hyena", "hygiene", "hysteria", "habit", "handkerchief", "handle", "heavy", "hedge", 89 | "hill", "hinge", "hire", "hold", "holiday", "home", "honest", "honey", "hoof", "host", 90 | "human", "hunt", "hurry", "hurt", "husband", "handbook", "handwriting", "headdress", "headland", "headstone", 91 | "headway", "hereafter", "herewith", "highlands", "highway", "himself", "horseplay", "horsepower", "hourglass", "houseboat", 92 | "housekeeper", "however", "hanger", "heater", "heated", "heating", "I", "ice", "idea", "if", 93 | "ill", "important", "impulse", "in", "increase", "industry", "ink", "insect", "instrument", "insurance", 94 | "interest", "invention", "iron", "is", "island", "it", "its", "Imperial", "inch", "inferno", 95 | "influenza", "international", "igneous", "image", "imagination", "import", "impurity", "incentive", "inclusion", "index", 96 | "individual", "inflation", "infinity", "inheritance", "innocent", "institution", "insulator", "integer", "integration", "intelligent", 97 | "intercept", "internet", "interpretation", "intersection", "intrusion", "investigation", "investment", "inverse", "invitation", "inasmuch", 98 | "income", "indoors", "inland", "inlet", "input", "inside", "instep", "into", "itself", "inner", 99 | "jelly", "jewel", "join", "journey", "judge", "jump", "January", "jazz", "July", "June", 100 | "jam", "jaw", "jealous", "jerk", "joint", "jug", "juice", "jury", "justice", "jeweler", 101 | "joiner", "keep", "kept", "kettle", "key", "kick", "kind", "kiss", "knee", "knife", 102 | "knot", "knowledge", "kilo", "King", "kennel", "kidney", "kitchen", "knock", "keeper", "land", 103 | "language", "last", "late", "laugh", "law", "lead", "leaf", "learning", "least", "leather", 104 | "leg", "left", "less", "let", "letter", "level", "library", "lift", "light", "like", 105 | "limit", "line", "linen", "lip", "liquid", "list", "little", "living", "lock", "long", 106 | "loose", "loss", "loud", "love", "low", "latitude", "lava", "liter", "liqueur", "longitude", 107 | "lace", "lag", "lake", "lame", "lamp", "large", "latitude", "lawyer", "layer", "lazy", 108 | "lecture", "legal", "length", "lens", "lesson", "lever", "lever", "liability", "license", "lid", 109 | "life", "lime", "limestone", "link", "liver", "load", "local", "load", "loan", "locus", 110 | "look", "longitude", "luck", "lump", "lunch", "lung", "landmark", "landslip", "lighthouse", "looking-glass", 111 | "laughing", "learner", "likely", "locker", "locking", "machine", "made", "man", "manager", "make", 112 | "male", "map", "mark", "market", "married", "match", "material", "mass", "may", "me", 113 | "meal", "measure", "meat", "medical", "meeting", "memory", "metal", "middle", "might", "military", 114 | "milk", "mind", "mine", "minute", "mist", "mixed", "money", "monkey", "month", "moon", 115 | "more", "morning", "most", "mother", "motion", "mountain", "mouth", "move", "much", "muscle", 116 | "music", "my", "", "macaroni", "madam", "magnetic", "malaria", "mania", "March", "Mathematics", 117 | "May", "meter", "meow", "micro-", "microscope", "mile", "milli-", "million", "minute", 118 | "Monday", "Museum", "magic", "magnitude", "manner", "many", "marble", "margin", "marriage", "mast", 119 | "mattress", "mature", "mean", "meaning", "medicine", "medium", "melt", "member", "mess", "message", 120 | "metabolism", "mill", "mineral", "mixture", "model", "modern", "modest", "momentum", "monopoly", "mood", 121 | "moral", "moustache", "mud", "multiple", "multiplication", "murder", "manhole", "maybe", "myself", "marked", 122 | "miner", "nail", "name", "narrow", "nation", "natural", "near", "necessary", "neck", "need", 123 | "needle", "nerve", "net", "never", "new", "news", "night", "no", "noise", "normal", 124 | "north", "nose", "not", "note", "now", "number", "nut", "neutron", "nickel", "nicotine", 125 | "nine", "November", "nasty", "nature", "navy", "neat", "neglect", "neighbor", "nest", "next", 126 | "nice", "node", "nostril", "nuclear", "nucleus", "numerator", "nurse", "network", "newspaper", "nobody", 127 | "nothing", "nowhere", "nearer", "noted", "observation", "off", "offer", "office", "oil", 128 | "old", "on", "one", "only", "open", "operation", "opinion", "opposite", "or", "orange", 129 | "order", "organization", "ornament", "other", "our", "out", "oven", "over", "owner", "October", 130 | "olive", "once", "omelet", "one", "opera", "opium", "orchestra", "organism", "obedient", "officer", 131 | "orchestra", "ore", "organ", "origin", "outcrop", "outlier", "overlap", "oval", "own", "oxidation", 132 | "offspring", "oncoming", "oneself", "onlooker", "onto", "outburst", "outcome", "outcry", "outdoor", "outgoing", 133 | "outhouse", "outlaw", "outlet", "outline", "outlook", "output", "outside", "outskirts", "outstretched", "overacting", 134 | "overall", "overbalancing", "overbearing", "overcoat", "overcome", "overdo", "overdressed", "overfull", "overhanging", "overhead", 135 | "overland", "overleaf", "overloud", "overseas", "overseer", "overshoe", "overstatement", "overtake", "overtaxed", "overtime", 136 | "overturned", "overuse", "overvalued", "overweight", "overworking", "outer", "page", "pain", "paint", "paper", 137 | "parallel", "parcel", "part", "past", "paste", "payment", "peace", "pen", "pencil", "person", 138 | "physical", "picture", "pig", "pin", "pipe", "place", "plane", "plant", "plate", "play", 139 | "please", "pleasure", "plow", "pocket", "point", "poison", "polish", "political", "poor", "porter", 140 | "position", "possible", "pot", "potato", "powder", "power", "present", "price", "print", "prison", 141 | "private", "probable", "process", "produce", "profit", "property", "prose", "protest", "public", "pull", 142 | "pump", "punishment", "purpose", "push", "put", "pajamas", "paraffin", "paradise", "park", "passport", 143 | "patent", "pence", "penny", "penguin", "petroleum", "phonograph", "Physics", "Physiology", "piano", "platinum", 144 | "police", "post", "potash", "pound", "President", "Prince", "Princess", "program", "propaganda", "Psychology", 145 | "Purr", "pyramid", "packing", "pad", "pair", "pan", "paragraph", "parent", "particle", "partner", 146 | "party", "passage", "path", "patience", "pedal", "pendulum", "pension", "people", "perfect", "petal", 147 | "piston", "plain", "plan", "plaster", "plug", "poetry", "pollen", "pool", "population", "porcelain", 148 | "practice", "praise", "prayer", "pressure", "prick", "priest", "prime", "probability", "product", "progress", 149 | "projectile", "projection", "promise", "proof", "proud", "pulley", "pupil", "purchase", "pure", "pincushion", 150 | "plaything", "policeman", "postman", "postmark", "postmaster", "postoffice", "painter", "painting", "parting", "playing", 151 | "played", "pleased", "pointer", "pointing", "potter", "printer", "prisoner", "producer", "quality", "question", 152 | "quick", "quiet", "quite", "Quack", "quarter", "Queen", "quinine", "quantity", "quotient", "rail", 153 | "rain", "range", "rat", "rate", "ray", "reaction", "red", "reading", "ready", "reason", 154 | "receipt", "record", "regret", "regular", "relation", "religion", "representative", "request", "respect", "responsible", 155 | "rest", "reward", "rhythm", "rice", "right", "ring", "river", "road", "rod", "roll", 156 | "roof", "room", "root", "rough", "round", "rub", "rule", "run", "radio", "radium", 157 | "referendum", "restaurant", "rheumatism", "Royal", "rum", "race", "radiation", "ratio", "reagent", "real", 158 | "receiver", "reciprocal", "rectangle", "recurring", "reference", "reflux", "reinforcement", "relative", "remark", "remedy", 159 | "rent", "repair", "reproduction", "repulsion", "resistance", "residue", "resolution", "result", "retail", "revenge", 160 | "reversible", "rich", "rigidity", "rise", "rival", "rock", "rot", "rotation", "rude", "rust", 161 | "reasonable", "runaway", "raining", "reader", "reading", "roller", "ruler", "rubber", "sad", "said", 162 | "safe", "sail", "salt", "same", "sand", "saw", "say", "scale", "school", "science", 163 | "scissors", "screw", "sea", "seat", "second", "secret", "secretary", "see", "seed", "seenseem", 164 | "selection", "self", "send", "sense", "sent", "separate", "serious", "servant", "sex", "shade", 165 | "shake", "shame", "sharp", "she", "sheep", "shelf", "ship", "shirt", "shock", "shoe", 166 | "short", "shut", "side", "sign", "silk", "silver", "simple", "sister", "size", "skin", 167 | "skirt", "sky", "sleep", "slip", "slope", "slow", "small", "smash", "smell", "smile", 168 | "smoke", "smooth", "snake", "sneeze", "snow", "so", "soap", "society", "sock", "soft", 169 | "solid", "some", "son", "song", "sort", "sound", "soup", "south", "space", "spade", 170 | "special", "sponge", "spoon", "spring", "square", "stage", "standard", "stamp", "star", 171 | "start", "statement", "station", "steam", "steel", "stem", "step", "stick", "sticky", "stiff", 172 | "still", "stitch", "stocking", "stomach", "stone", "stop", "store", "story", "straight", "strange", 173 | "street", "strong", "structure", "substance", "such", "sudden", "sugar", "suggestion", "summer", "sun", 174 | "support", "surprise", "sweet", "swim", "system", "salad", "sardine", "Saturday", "second", "September", 175 | "serum", "seven", "sir", "six", "sixteen", "sport", "Sunday", "sac", "sale", "sample", 176 | "satisfaction", "saturated", "saucer", "saving", "scale", "scarp", "schist", "scratch", "screen", "seal", 177 | "search", "security", "secretion", "section", "sedimentary", "selfish", "sensitivity", "sentence", "sepal", "service", 178 | "set", "shadow", "shale", "share", "shave", "shear", "sheet", "shell", "shore", "shoulder", 179 | "show", "sight", "sill", "similarity", "since", "skull", "slate", "sleeve", "slide", "social", 180 | "soil", "soldier", "solution", "solvent", "sorry", "spark", "specialization", "specimen", "speculation", "spirit", 181 | "spit", "splash", "spot", "stable", "stain", "stair", "stalk", "stamen", "statistics", "steady", 182 | "stimulus", "storm", "strain", "straw", "stream", "strength", "stress", "strike", "string", "study", 183 | "subject", "substitution", "subtraction", "success", "successive", "sucker", "sum", "supply", "surface", "surgeon", 184 | "suspension", "suspicious", "swelling", "swing", "switch", "sympathetic", "seaman", "secondhand", "shorthand", "sideboard", 185 | "sidewalk", "somebody", "someday", "somehow", "someone", "something", "sometime", "somewhat", "somewhere", "suchlike", 186 | "sunburn", "sunlight", "sunshade", "sweetheart", "sailor", "shocking", "shocked", "snowing", "steamer", "stopper", 187 | "stopping", "stretcher", "table", "tail", "take", "talk", "tall", "taste", "tax", "teaching", 188 | "technology", "tendency", "test", "than", "that", "the", "their", "them", "then", "theory", 189 | "there", "these", "they", "thick", "thin", "thing", "this", "those", "though", "thought", 190 | "thread", "throat", "through", "thumb", "thunder", "ticket", "tight", "tired", "till", "time", 191 | "tin", "to", "toe", "together", "tomorrow", "tongue", "took", "tooth", "top", "touch", 192 | "town", "trade", "train", "transport", "tray", "tree", "trick", "trousers", "true", "trouble", 193 | "turn", "twist", "tapioca", "taxi", "tea", "telegram", "telephone", "television", "ten", "terrace", 194 | "theater", "thermometer", "third", "thirteen", "thirty", "thousand", "three", "Thursday", "toast", "tobacco", 195 | "torpedo", "Tuesday", "turbine", "twenty-one", "twelve", "twenty", "twice", "two", "tailor", "tame", 196 | "tap", "tear", "tent", "term", "texture", "thickness", "thief", "thimble", "thorax", "threat", 197 | "thrust", "tide", "tie", "tissue", "tongs", "too", "total", "towel", "tower", "traffic", 198 | "tragedy", "transmission", "transparent", "trap", "travel", "treatment", "triangle", "truck", "tube", "tune", 199 | "tunnel", "twin", "typist", "today", "tonight", "tradesman", "talking", "teacher", "touching", "trader", 200 | "trainer", "training", "troubling", "troubled", "turning", "umbrella", "under", "unit", "up", "us", 201 | "use", "university", "ugly", "unconformity", "understanding", "universe", "unknown", "underclothing", "undercooked", "undergo", 202 | "undergrowth", "undermined", "undersigned", "undersized", "understatement", "undertake", "undervalued", "undo", "upkeep", "uplift", 203 | "upon", "upright", "uproot", "uptake", "used", "value", "verse", "very", "vessel", "view", 204 | "violent", "voice", "vanilla", "violin", "visa", "vitamin", "vodka", "volt", "valency", "valley", 205 | "valve", "vapor", "variable", "vascular", "vegetable", "velocity", "vestigial", "victim", "victory", "volume", 206 | "vortex", "vote", "viewpoint", "walk", "wall", "waiting", "war", "warm", "was", "wash", 207 | "waste", "watch", "water", "wave", "wax", "way", "we", "weather", "week", "weight", 208 | "well", "went", "were", "west", "wet", "what", "wheel", "when", "where", "which", 209 | "while", "whip", "whistle", "white", "who", "whom", "whose", "why", "wide", "will", 210 | "wind", "window", "wine", "wing", "winter", "wire", "wise", "with", "woman", "wood", 211 | "wool", "word", "work", "worm", "would", "wound", "writing", "wrong", "Wednesday", "whisky", 212 | "weak", "wedge", "welcome", "whether", "wholesale", "widow", "wife", "wild", "world", "wreck", 213 | "wrist", "waterfall", "weekend", "well-being", "well-off", "whatever", "whenever", "whereas", "whereby", "wherever", 214 | "whichever", "whitewash", "whoever", "windpipe", "within", "without", "woodwork", "workhouse", "waiter", "worker", 215 | "working", "out", "up", "writer", "waiting", "wasted", "your", "yours", "year", "yellow", 216 | "yes", "yesterday", "you", "young", "zebra", "zinc", "Zoology", "yawn", "x-ray", "yearbook", 217 | "yourself", "zookeeper"]) 218 | --------------------------------------------------------------------------------