diff options
| author | Franklin Wei <frankhwei536@gmail.com> | 2016-07-24 22:59:31 -0400 |
|---|---|---|
| committer | Franklin Wei <frankhwei536@gmail.com> | 2016-07-24 22:59:31 -0400 |
| commit | db1fd5c355e4cbf3853415b8870d1cf29d252249 (patch) | |
| tree | 0e7b23b27703e962832c6dbe042bff018164c5ba /apps/plugins | |
| parent | d6c012dd9b15173ae5f5deffb30c6c5adc91cf90 (diff) | |
| download | rockbox-db1fd5c355e4cbf3853415b8870d1cf29d252249.zip rockbox-db1fd5c355e4cbf3853415b8870d1cf29d252249.tar.gz rockbox-db1fd5c355e4cbf3853415b8870d1cf29d252249.tar.bz2 rockbox-db1fd5c355e4cbf3853415b8870d1cf29d252249.tar.xz | |
diceware passwords
Change-Id: I0b95850b4e3d5417ccfedec1474d60980d0cab4f
Diffstat (limited to 'apps/plugins')
| -rw-r--r-- | apps/plugins/passmgr/SOURCES | 2 | ||||
| -rw-r--r-- | apps/plugins/passmgr/passmgr.c | 1055 | ||||
| -rw-r--r-- | apps/plugins/passmgr/passmgr.make | 6 | ||||
| -rw-r--r-- | apps/plugins/passmgr/wordlist.c | 7877 | ||||
| -rw-r--r-- | apps/plugins/passmgr/wordlist.h | 6 |
5 files changed, 8683 insertions, 263 deletions
diff --git a/apps/plugins/passmgr/SOURCES b/apps/plugins/passmgr/SOURCES new file mode 100644 index 0000000..191b22a --- /dev/null +++ b/apps/plugins/passmgr/SOURCES @@ -0,0 +1,2 @@ +passmgr.c +wordlist.c diff --git a/apps/plugins/passmgr/passmgr.c b/apps/plugins/passmgr/passmgr.c index 1705077..1b483dd 100644 --- a/apps/plugins/passmgr/passmgr.c +++ b/apps/plugins/passmgr/passmgr.c @@ -31,21 +31,36 @@ #include "lib/pluginlib_exit.h" #include "lib/sha1.h" +#include "wordlist.h" + /* don't change these if you want to maintain backwards compatibility */ #define MAX_NAME 50 #define SECRET_MAX 256 #define URI_MAX (MAX_NAME + SECRET_MAX * 2 + 1) #define ACCT_FILE PLUGIN_APPS_DATA_DIR "/passmgr.dat" -#define PASS_MAX 64 +/* these can be changed without breaking anything */ +#define PASS_MAX 128 #define KDF_MIN 5000 /* minimum KDF iterations */ #define KDF_MAX 2500000 #define KDF_DEFAULT (HZ / 4) /* decryption will take about this long by default */ +/* convenience macros */ #define MAX(a, b) (((a)>(b))?(a):(b)) - #define assert(x) (!(x)?assert_fail():0) +/* buf should be at least 16 * DICEWARE_WORDS + 1 chars */ +/* 6 words gives about 78 bits of entropy with the current word list, + * about equivalent to a 12 character random alphanumeric password */ + +/* we define these no matter what */ +#ifdef PASSMGR_DICEWARE +#define DICEWARE_WORDS 6 +#else +#define DICEWARE_WORDS 0 +#endif +#define DICEWARE_BUF (16 * DICEWARE_WORDS + 1) + struct account_t { char name[MAX_NAME]; @@ -79,7 +94,7 @@ static int kdf_iters = 0; // calculated on first run static char encrypted = 0; // 0 = off, 1 = password, 2 = diceware static char enc_password[PASS_MAX + 1]; // encryption password -static char data_buf[MAX(MAX_NAME, MAX(SECRET_MAX * 2, MAX(20, MAX(URI_MAX, sizeof(struct account_t)))))]; +static char data_buf[MAX(MAX_NAME, MAX(SECRET_MAX * 2, MAX(20, MAX(URI_MAX, MAX(sizeof(struct account_t), DICEWARE_BUF)))))]; static char temp_sec[SECRET_MAX]; static long background_stack[2 * DEFAULT_STACK_SIZE / sizeof(long)]; @@ -163,6 +178,233 @@ static bool acct_exists(const char *name) return false; } +/* diceware-related code */ + +#ifdef PASSMGR_DICEWARE +/* returns the index of the first element with a matching prefix, assumes sorted list */ +static int search_prefix(const char **list, size_t list_len, const char *prefix, int *last) +{ + int l = 0; + int r = list_len - 1; + int len = rb->strlen(prefix); + while(l <= r) + { + int m = (l + r) / 2; + int c = rb->strncmp(list[m], prefix, len); + if(c < 0) + l = m + 1; + else if(c > 0) + r = m - 1; + else + { + /* we can afford to be a bit slower here with a + * linear-time algorithm */ + + /* search forwards to find the last word with this + * prefix */ + + if(last) + { + int old_m = m; + while((unsigned)m < list_len - 1) + { + if(!rb->strncmp(list[m + 1], prefix, len)) + m++; + else + break; + } + *last = m; + m = old_m; + } + + /* search backwards */ + while(m > 0) + { + if(!rb->strncmp(list[m - 1], prefix, len)) + m--; + else + break; + } + + return m; + } + } + return -1; +} + +static const char* charlist_cb(int selected_item, void *data, + char *buffer, size_t buffer_len) +{ + char *str = data; + char c; + if(rb->strlen(data) == 0) + c = 'A' + selected_item; + else + c = 'a' + selected_item; + str[0] = toupper(str[0]); + rb->snprintf(buffer, buffer_len, "%s%c-", str, c); + str[0] = tolower(str[0]); + return buffer; +} + +static const char* wordlist_cb(int selected_item, void *data, + char *buffer, size_t buffer_len) +{ + rb->snprintf(buffer, buffer_len, "%s", word_list[(int)data + selected_item]); + return buffer; +} + +static char choose_letter(char *prefix, char selected, char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + char str[32]; + rb->vsnprintf(str, sizeof(str), fmt, ap); + va_end(ap); + struct gui_synclist list; + + rb->gui_synclist_init(&list, &charlist_cb, prefix, false, 1, NULL); + rb->gui_synclist_set_icon_callback(&list, NULL); + rb->gui_synclist_set_nb_items(&list, 26); + rb->gui_synclist_limit_scroll(&list, false); + + if(!selected) + rb->gui_synclist_select_item(&list, 0); + else + rb->gui_synclist_select_item(&list, selected - 'a'); + + bool done = false; + rb->gui_synclist_set_title(&list, str, NOICON); + while (!done) + { + rb->gui_synclist_draw(&list); + int button = rb->get_action(CONTEXT_LIST, TIMEOUT_BLOCK); + if(rb->gui_synclist_do_button(&list, &button, LIST_WRAP_ON)) + continue; + + switch (button) + { + case ACTION_STD_OK: + return 'a' + rb->gui_synclist_get_sel_pos(&list); + case ACTION_STD_PREV: + case ACTION_STD_CANCEL: + case ACTION_STD_MENU: + return '\0'; + } + rb->yield(); + } + return '\0'; +} + +/* prompt the user for a word from a list */ +/* returns 0 on success, negative on failure */ +static int choose_word(char *ret, size_t ret_len, const char **wordlist, size_t wordlist_len, int wordnr) +{ + char prefix[3], ch; + +first_letter: + + rb->memset(prefix, 0, sizeof(prefix)); + + ch = choose_letter(prefix, prefix[0], "Choose First Letter of Word #%d", wordnr); + if(!ch) + return -1; + prefix[0] = ch; + + if(search_prefix(wordlist, wordlist_len, prefix, NULL) < 0) + { + rb->splash(HZ, "No words with this prefix!"); + goto first_letter; + } + +second_letter: + + ch = choose_letter(prefix, prefix[1], "Choose Second Letter of Word #%d", wordnr); + if(!ch) + goto first_letter; + prefix[1] = ch; + + if(search_prefix(wordlist, wordlist_len, prefix, NULL) < 0) + { + rb->splash(HZ, "No words with this prefix!"); + prefix[1] = '\0'; + goto second_letter; + } + + int start, stop; + start = search_prefix(wordlist, wordlist_len, prefix, &stop); + + /* now list the words with this prefix */ + + struct gui_synclist list; + + rb->gui_synclist_init(&list, &wordlist_cb, (void*)start, false, 1, NULL); + rb->gui_synclist_set_icon_callback(&list, NULL); + rb->gui_synclist_set_nb_items(&list, stop - start + 1); + rb->gui_synclist_limit_scroll(&list, false); + rb->gui_synclist_select_item(&list, 0); + + bool done = false; + int wordidx = -1; + + char str[32]; + rb->snprintf(str, sizeof(str), "Choose Word #%d", wordnr); + rb->gui_synclist_set_title(&list, str, NOICON); + while (!done) + { + rb->gui_synclist_draw(&list); + int button = rb->get_action(CONTEXT_LIST, TIMEOUT_BLOCK); + if (rb->gui_synclist_do_button(&list, &button, LIST_WRAP_ON)) + continue; + + switch (button) + { + case ACTION_STD_OK: + wordidx = start + rb->gui_synclist_get_sel_pos(&list); + done = true; + break; + case ACTION_STD_PREV: + case ACTION_STD_CANCEL: + case ACTION_STD_MENU: + prefix[1] = '\0'; + goto second_letter; + } + rb->yield(); + } + + rb->strlcpy(ret, word_list[wordidx], ret_len); + return 0; +} + +static int read_diceware_passphrase(char *buf, size_t buflen) +{ + /* assumes that no words are > 15 chars */ + char words[DICEWARE_WORDS][16]; + + for(int i = 0; i < DICEWARE_WORDS; ++i) + { + int rc = choose_word(words[i], sizeof(words[i]), word_list, word_list_len, i + 1); + if(rc < 0) + { + if(!i) + return -1; /* failure */ + else + i -= 2; /* back a word */ + } + } + + /* copy the words into the passphrase */ + buf[0] = '\0'; + for(int i = 0; i < DICEWARE_WORDS; ++i) + { + rb->strlcat(buf, words[i], buflen); + rb->strlcat(buf, " ", buflen); + } + return 0; +} + +#endif /* #ifdef PASSMGR_DICEWARE */ + // Base32 implementation // // Copyright 2010 Google Inc. @@ -275,70 +517,39 @@ static bool browse( char *dst, int dst_size, const char *start ) return (browse.flags & BROWSE_SELECTED); } -/* word lists */ - -/* prompt the user for a word from a list */ -static void choose_word(char *ret, size_t ret_len, const char **list, size_t list_len) -{ - MENUITEM_STRINGLIST(char_menu, "Choose Letter", NULL, - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z",); - char prefix[3]; - -first_letter: +#if 0 +/* check an entered password/diceware passphrase with the actual + * one */ +/* used as a very weak security measure */ +static bool verify_password(void) +{ + char temp_pass[PASS_MAX]; - rb->memset(prefix, 0, sizeof(prefix)); - rb->splash(HZ, "Choose first letter:"); - while(1) + switch(encrypted) { - int ret = rb->do_menu(char_menu, NULL, NULL, false); - if(ret >= 0) - { - prefix[0] = 'a' + ret; - break; - } + case 0: + return true; + case 1: + rb->splash(HZ, "Enter current password:"); + if(rb->kbd_input(temp_pass, sizeof(temp_pass)) < 0) + return false; + break; +#ifdef PASSMGR_DICEWARE + case 2: + rb->splash(HZ, "Enter current passphrase:"); + if(read_diceware_passphrase(temp_pass, sizeof(temp_pass)) < 0) + return false; + break; +#endif } - - rb->splash(HZ, "Choose second letter:"); - while(1) + if(rb->strcmp(enc_password, temp_pass)) { - int ret = rb->do_menu(char_menu, NULL, NULL, false); - if(ret >= 0) - { - prefix[1] = 'a' + ret; - break; - } - else - goto first_letter; + rb->splashf(HZ * 2, "Wrong password!"); + return false; } - - /* do a binary search of the list to find the first word that - * starts with the prefix */ + return true; } +#endif /* a simple AES128-CTR implementation */ @@ -551,7 +762,8 @@ static int calc_kdf_iters(long delay) #ifdef HAVE_ADJUSTABLE_CPU_FREQ rb->cpu_boost(true); #endif - while(ticks < 4 && iters < KDF_MAX) + /* calculate how many iterations make PBKDF2 take a certain time */ + while(ticks < 4 && iters <= KDF_MAX) { char out[20]; char tmp[4 + 4]; @@ -570,11 +782,30 @@ static int calc_kdf_iters(long delay) if(!ticks) return KDF_MAX; + /* then extrapolate to the desired time */ int ret = (delay * iters) / ticks; rb->lcd_update(); return ret < KDF_MIN ? KDF_MIN : ret; } +static int read_password_or_passphrase(char *buf, size_t len) +{ + buf[0] = '\0'; + switch(encrypted) + { + case 1: /* plain password */ + rb->splash(HZ, "Enter password:"); + return rb->kbd_input(buf, len); + case 2: /* passphrase */ +#ifdef PASSMGR_DICEWARE + rb->splash(HZ, "Enter passphrase:"); + return read_diceware_passphrase(buf, len); +#endif + default: + return -1; + } +} + static bool read_accts(void) { int fd = rb->open(ACCT_FILE, O_RDONLY); @@ -622,9 +853,7 @@ static bool read_accts(void) for(int i = 0; i < 3; ++i) { - rb->splash(HZ * 2, "Enter password:"); - enc_password[0] = '\0'; - if(rb->kbd_input(enc_password, sizeof(enc_password)) < 0) + if(read_password_or_passphrase(enc_password, sizeof(enc_password)) < 0) { rb->close(fd); exit(PLUGIN_ERROR); @@ -785,6 +1014,105 @@ static void save_accts(void) quiet_save = false; } +/* generate a desired number of random bits */ +/* note that len must be a multiple of sizeof(long) and >= 20 */ +static void gather_entropy(void *out, size_t len) +{ + assert(len % sizeof(long) == 0); + assert(len >= 20); + rb->splash(0, "Gathering entropy... Please press the keys as randomly as possible."); + /* fill the buffer with a seed */ + char buf[20]; + long *ptr = (long*)buf; + + /* mix in certain filesystem information such as the number of + * files in the root directory */ + DIR *root = rb->opendir("/"); + int count = 0; + while(rb->readdir(root)) + count++; + + for(unsigned i = 0; i < len / sizeof(long); ++i) + { + *ptr++ = *rb->current_tick ^ count; + rb->yield(); + } + + ptr = (long*)buf; + + /* now we mix in the system settings and status */ + hmac_sha1(rb->global_settings, sizeof(struct user_settings), ptr, 20, ptr); + hmac_sha1(rb->global_status, sizeof(struct system_status), ptr, 20, ptr); + + /* mix the keypresses into the pool */ + /* for now just gather a certain number of keypresses and their + * associated timestamps */ + for(int keys = 0; keys < 80; ++keys) + { + uint32_t data = rb->button_get(true) ^ *rb->current_tick; +#ifdef HAVE_WHEEL_POSITION + if(rb->wheel_status() >= 0) + data ^= rb->wheel_status(); +#endif + + /* XOR in environmental conditions */ + data ^= rb->audio_status() << 8; + data ^= rb->audio_get_file_pos() << 16; + data ^= rb->battery_voltage() << 24; + +#ifdef USEC_TIMER + /* we swap because we need more entropy in the high-order bits */ + data ^= SWAP32_CONST(USEC_TIMER); +#endif + + rb->splashf(0, "Data is 0x%lx", data); + + ptr = (long*)buf; + + /* XOR the data in */ + for(unsigned i = 0; i < len / sizeof(long); ++i) + *ptr++ ^= data; + + long timestamp = *rb->current_tick; + +#if CONFIG_RTC + timestamp ^= get_utc(); +#endif + + /* finally mix it all up with an HMAC */ + hmac_sha1(×tamp, sizeof(long), ptr, 20, ptr); + rb->yield(); + } + + /* as a final step we use PBKDF2 to stretch the 20 bytes we have + * to the desired length */ + long salt = *rb->current_tick; + char tmp[sizeof(salt) + 4]; + PBKDF2(buf, 20, &salt, sizeof(salt), 1, out, len, tmp); +} + +static void generate_random_password(char *dest, size_t len) +{ + rb->memset(dest, 0, len); + const char *charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-=!@#$%^&*()_+[]{}\\|,.<>/?`~'\""; + char seed[20]; + gather_entropy(seed, sizeof(seed)); + + unsigned dest_idx = 0; + + /* now, iterate over bytes of the seed and append characters that + * are in the character set */ + while(dest_idx < len - 1) + { + for(unsigned i = 0; i < sizeof(seed) && dest_idx < len - 1; ++i) + { + if(rb->strchr(charset, seed[i]) && seed[i]) + dest[dest_idx++] = seed[i]; + } + sha1_buffer(seed, sizeof(seed), seed); + } +} + static volatile bool kill_background SHAREDDATA_ATTR = false; static volatile bool want_save SHAREDDATA_ATTR = false; static int background_id = -1; @@ -1042,21 +1370,40 @@ static void add_acct_manual(void) case 2: #if CONFIG_RTC accounts[next_slot].type = TYPE_STATIC; -#endif break; +#else + return; +#endif case 3: default: case GO_TO_PREVIOUS: - break; + return; } + char temp_buf[SECRET_MAX * 2]; + rb->memset(temp_buf, 0, sizeof(temp_buf)); + if(accounts[next_slot].type != TYPE_STATIC) rb->splash(HZ * 2, "Enter Base32-encoded secret:"); else - rb->splash(HZ * 2, "Enter account password:"); - - char temp_buf[SECRET_MAX * 2]; - rb->memset(temp_buf, 0, sizeof(temp_buf)); + { + MENUITEM_STRINGLIST(static_type, "Static Password Options", NULL, + "Enter password manually", + "Generate random password", + "Cancel"); + switch(rb->do_menu(&static_type, NULL, NULL, false)) + { + case 0: + rb->splash(HZ * 2, "Enter account password:"); + break; + case 1: + generate_random_password(accounts[next_slot].secret, 32 + 1); + goto done; + case 2: + default: + return; + } + } if(rb->kbd_input(temp_buf, sizeof(temp_buf)) < 0) return; @@ -1085,12 +1432,12 @@ static void add_acct_manual(void) if(accounts[next_slot].type == TYPE_HOTP) { - rb->splash(HZ * 2, "Enter counter (0 is typical):"); + rb->splash(HZ * 2, "Enter HOTP counter (0 is typical):"); temp_buf[0] = '0'; } else if(accounts[next_slot].type == TYPE_TOTP) { - rb->splash(HZ * 2, "Enter time step (30 is typical):"); + rb->splash(HZ * 2, "Enter TOTP period (30 is typical):"); temp_buf[0] = '3'; temp_buf[1] = '0'; } @@ -1103,7 +1450,7 @@ static void add_acct_manual(void) else accounts[next_slot].totp_period = rb->atoi(temp_buf); - rb->splash(HZ * 2, "Enter code length (6 is typical):"); + rb->splash(HZ * 2, "Enter digit count (6 is typical):"); rb->memset(temp_buf, 0, sizeof(temp_buf)); temp_buf[0] = '6'; @@ -1135,7 +1482,7 @@ done: static void add_acct(void) { - MENUITEM_STRINGLIST(menu, "Import Account(s)", NULL, + MENUITEM_STRINGLIST(menu, "Add Account(s)", NULL, "From URI list or 'username:password' list", "Manual Entry", "Back"); @@ -1801,103 +2148,292 @@ static void kdf_delay_menu(void) rb->splashf(HZ, "Using %d PBKDF2 iterations", kdf_iters); } -static void encrypt_menu(void) +/* begin using a password for encryption */ +static bool change_password(void) { - MENUITEM_STRINGLIST(encrypt_menu_1, "Encryption", NULL, - "Change Password", - "Use a Passphrase", - "Change KDF Delay", - "Disable", - "Back"); + //if(!verify_password()) + // return false; + char temp_pass[sizeof(enc_password)]; + char temp_pass2[sizeof(enc_password)]; - MENUITEM_STRINGLIST(encrypt_menu_2, "Encryption", NULL, - "Enable", - "Back"); + temp_pass[0] = '\0'; - const struct menu_item_ex *menu = encrypted ? &encrypt_menu_1 : &encrypt_menu_2; + rb->splash(HZ * 2, "Enter new password:"); - switch(rb->do_menu(menu, NULL, NULL, false)) - { - case 0: + if(rb->kbd_input(temp_pass, sizeof(temp_pass)) < 0) + return false; + + temp_pass2[0] = '\0'; + + rb->splash(HZ * 2, "Re-enter new password:"); + + if(rb->kbd_input(temp_pass2, sizeof(temp_pass2)) < 0) + return false; + + if(rb->strcmp(temp_pass, temp_pass2)) { - char temp_pass[sizeof(enc_password)]; - char temp_pass2[sizeof(enc_password)]; + rb->splash(HZ * 2, "Passwords do not match!"); + return false; + } - temp_pass[0] = '\0'; + rb->mutex_lock(&save_mutex); - if(encrypted) - { - rb->splash(HZ * 2, "Enter current password:"); + rb->strlcpy(enc_password, temp_pass, sizeof(enc_password)); - if(rb->kbd_input(temp_pass, sizeof(temp_pass)) < 0) - break; + encrypted = 1; - if(rb->strcmp(enc_password, temp_pass)) - { - rb->splashf(HZ * 2, "Wrong password!"); - break; - } + rb->mutex_unlock(&save_mutex); - temp_pass[0] = '\0'; - } + background_save(); + + rb->splash(HZ, "Success."); + return true; +} - rb->splash(HZ * 2, "Enter new password:"); +#ifdef PASSMGR_DICEWARE +static bool generate_random_passphrase(char *buf, size_t buflen) +{ + char key[20]; - if(rb->kbd_input(temp_pass, sizeof(temp_pass)) < 0) - break; +#ifdef HAVE_ADJUSTABLE_CPU_FREQ + rb->cpu_boost(true); +#endif - temp_pass2[0] = '\0'; + gather_entropy(key, 20); - rb->splash(HZ * 2, "Re-enter new password:"); + /* give the user time to stop pressing keys */ + rb->splash(HZ * 2, "Done."); - if(rb->kbd_input(temp_pass2, sizeof(temp_pass2)) < 0) - break; + rb->button_clear_queue(); - if(rb->strcmp(temp_pass, temp_pass2)) +#ifdef HAVE_ADJUSTABLE_CPU_FREQ + rb->cpu_boost(false); +#endif + + assert(DICEWARE_WORDS < 160/16); + + uint16_t *ptr; + + for(int i = 0; i < 10; ++i) + { + /* generate a passphrase until the user decides on one or we try 10 times */ + +#ifdef HAVE_ADJUSTABLE_CPU_FREQ + rb->cpu_boost(true); +#endif + + ptr = (uint16_t*)key; + buf[0] = '\0'; + rb->splash(0, "Generating..."); + for(int i = 0; i < DICEWARE_WORDS; ++i) { - rb->splash(HZ * 2, "Passwords do not match!"); - break; + uint16_t rnd; + /* rehash until we get a good value */ + /* this smells awfully like bitcoin mining */ + do { + rnd = *ptr; + long timestamp = *rb->current_tick; + hmac_sha1(×tamp, sizeof(long), key, 20, key); + } while(rnd >= word_list_len); + + rb->strlcat(buf, word_list[rnd], buflen); + rb->strlcat(buf, " ", buflen); + rb->yield(); } - rb->strlcpy(enc_password, temp_pass, sizeof(enc_password)); +#ifdef HAVE_ADJUSTABLE_CPU_FREQ + rb->cpu_boost(false); +#endif - encrypted = 1; + rb->backlight_set_timeout(0); /* no timeout */ - background_save(); + struct text_message prompt = { (const char*[]) { "Your generated passphrase is:", buf, "Is this OK?" }, 3 }; + enum yesno_res response = rb->gui_syncyesno_run(&prompt, NULL, NULL); + if(response == YESNO_NO) + { + long timestamp = *rb->current_tick; - rb->splash(HZ, "Success."); - break; + /* mix it with an HMAC */ + hmac_sha1(×tamp, sizeof(long), key, 20, key); + } + else + { + struct text_message prompt2 = { (const char*[]) { "Again, your passphrase is:", buf, "Please take time to commit this to memory.", "If you forget it, your data will be irretrievably lost!", "Continue?"}, 5 }; + enum yesno_res response = rb->gui_syncyesno_run(&prompt2, NULL, NULL); + if(response == YESNO_YES) + return true; + } } - case 1: + + return false; +} + +/* use a passphrase */ +static bool change_passphrase(void) +{ + MENUITEM_STRINGLIST(mode_menu, "Choose Passphase Generation Method", NULL, + "Random Generation", + "Manual Entry (not recommended)", + "Cancel"); + + switch(rb->do_menu(&mode_menu, NULL, NULL, false)) { - if(menu == &encrypt_menu_1) - kdf_delay_menu(); + case 0: + /* we need the data buffer */ + rb->mutex_lock(&save_mutex); + if(!generate_random_passphrase(data_buf, sizeof(data_buf))) + { + rb->mutex_unlock(&save_mutex); + return false; + } + rb->mutex_unlock(&save_mutex); + break; + case 1: + rb->splash(HZ, "Enter new passphrase:"); + rb->mutex_lock(&save_mutex); + if(read_diceware_passphrase(data_buf, sizeof(data_buf))) + { + /* failure */ + rb->mutex_unlock(&save_mutex); + return false; + } + rb->mutex_unlock(&save_mutex); break; + default: + return false; } - case 2: - { - char temp_pass[sizeof(enc_password)]; - temp_pass[0] = '\0'; - rb->splash(HZ * 2, "Enter current password:"); + rb->mutex_lock(&save_mutex); - if(rb->kbd_input(temp_pass, sizeof(temp_pass)) < 0) - break; + rb->strlcpy(enc_password, data_buf, sizeof(enc_password)); + encrypted = 2; - if(rb->strcmp(enc_password, temp_pass)) - { - rb->splash(HZ * 2, "Wrong password!"); - break; - } + rb->mutex_unlock(&save_mutex); - encrypted = 0; + background_save(); - background_save(); + rb->splash(HZ, "Success."); - rb->splash(HZ, "Success."); + return true; +} +#endif /* #ifdef PASSMGR_DICEWARE */ + +static bool disable_encryption(void) +{ + //if(!verify_password()) + // return false; + rb->mutex_lock(&save_mutex); + encrypted = 0; + rb->mutex_unlock(&save_mutex); + background_save(); + rb->splash(HZ, "Success."); + return true; +} + +static void encrypt_menu(void) +{ + /* 3 states for the menu */ + MENUITEM_STRINGLIST(encrypt_menu_0, "Encryption", NULL, + "Enable", + "Back"); + + MENUITEM_STRINGLIST(encrypt_menu_1 , "Encryption", NULL, + "Change Password", + "Change KDF Delay", +#ifdef PASSMGR_DICEWARE + "Use a Passphrase", +#endif + "Disable", + "Back"); + +#ifdef PASSMGR_DICEWARE + MENUITEM_STRINGLIST(encrypt_menu_2 , "Encryption", NULL, + "Change Passphrase", + "Change KDF Delay", + "Use a Password", + "Disable", + "Back"); +#endif + + const struct menu_item_ex *menus[] = { &encrypt_menu_0, + &encrypt_menu_1, +#ifdef PASSMGR_DICEWARE + &encrypt_menu_2, +#endif + }; + + const struct menu_item_ex *menu; +state_change: + menu = menus[(int)encrypted]; + + int sel = rb->do_menu(menu, NULL, NULL, false); + switch(encrypted) + { + case 0: /* disabled */ + { + switch(sel) + { + case 0: /* enable, change type */ + change_password(); + goto state_change; + case 1: /* back */ + default: + break; } break; - case 3: + } + case 1: /* using a password */ + { + switch(sel) + { + case 0: /* change password */ + change_password(); + break; /* no state change */ + case 1: /* KDF delay */ + kdf_delay_menu(); + break; +#ifdef PASSMGR_DICEWARE + case 2: /* use passphrase */ + change_passphrase(); + goto state_change; + case 3: /* disable */ + disable_encryption(); + goto state_change; + case 4: /* back */ +#else + case 2: /* disable */ + disable_encryption(); + goto state_change; + case 3: /* back */ +#endif + default: + break; + } + break; + } +#ifdef PASSMGR_DICEWARE + case 2: /* we have a passphrase configured */ + { + switch(sel) + { + case 0: /* change passphrase */ + change_passphrase(); + break; + case 1: /* KDF delay */ + kdf_delay_menu(); + break; + case 2: /* use a password */ + change_password(); + goto state_change; + case 3: /* disable */ + disable_encryption(); + goto state_change; + case 4: + default: + break; + } + } +#endif default: break; } @@ -1967,6 +2503,126 @@ static void adv_menu(void) } } +static char *help_text[] = { "Password Manager", "", + "", + "Introduction", "", + "This", "plugin", "allows", "you", "to", "generate", "one-time", "passwords", "as", "a", "second", "factor", "of", "authentication", "for", "online", "services", "which", "support", "it,", "such", "as", "GitHub", "and", "Google.", + "This", "plugin", "supports", "both", "counter-based", "(HOTP),", "and", "time-based", "(TOTP)", "password", "schemes.", + "It", "also", "supports", "storing", "static", "passwords", "securely.", + "", + "", + "Time Zone Configuration", "", + "On", "the", "first", "run", "of", "the", "plugin,", "you", "are", "asked", "for", "the", "time", "zone", "to", "which", "your", "system", "clock", "is", "set.", + "If", "you", "need", "to", "change", "this", "setting", "later,", "it", "is", "available", "under", "the", "'Advanced'", "menu", "option.", + "", + "", + "Account Setup", "", + "To", "add", "a", "new", "account,", "choose", "the", "'Add", "Account(s)'", "menu", "option.", + "There", "are", "two", "ways", "to", "add", "an", "account,", "either", "from", "a", "file", "containing", "account", "information", "in", "URI", "format,", "or", "manual", "entry.", + "", + "", + "URI Import", "", + "This", "method", "of", "adding", "an", "account", "reads", "a", "list", "of", "URIs", "from", "a", "file.", + "It", "expects", "each", "URI", "to", "be", "on", "a", "line", "by", "itself", "in", "the", "following", "format:", "", + "", + "otpauth://[hotp", "OR", "totp]/[account", "name]?secret=[Base32", "secret][&counter=X][&period=X][&digits=X]", "", + "", + "An", "example", "is", "shown", "below,", "provisioning", "a", "TOTP", "key", "for", "an", "account", "called", "``bob'':", "", + "", + "otpauth://totp/bob?secret=JBSWY3DPEHPK3PXP", "", + "", + "Any", "other", "URI", "options", "are", "not", "supported", "and", "will", "be", "ignored.", + "", + "Most", "services", "will", "provide", "a", "scannable", "QR", "code", "that", "encodes", "a", "OTP", "URI.", + "In", "order", "to", "use", "those,", "first", "scan", "the", "QR", "code", "separately", "and", "save", "the", "URI", "to", "a", "file", "on", "your", "device.", + "If", "necessary,", "rewrite", "the", "URI", "so", "it", "is", "in", "the", "format", "shown", "above.", + "For", "example,", "GitHub's", "URI", "has", "a", "slash", "after", "the", "provider.", + "In", "order", "for", "this", "URI", "to", "be", "properly", "parsed,", "you", "must", "rewrite", "the", "account", "name", "so", "that", "it", "does", "not", "contain", "a", "slash.", + "", + "", + "Manual Import", "", + "If", "direct", "URI", "import", "is", "not", "possible,", "the", "plugin", "supports", "the", "manual", "entry", "of", "data", "associated", "with", "an", "account.", + "After", "you", "select", "the", "'Manual", "Entry'", "option,", "it", "will", "prompt", "you", "for", "an", "account", "name.", + "You", "may", "type", "anything", "you", "wish,", "but", "it", "should", "be", "memorable.", + "It", "will", "then", "prompt", "you", "for", "the", "Base32-encoded", "secret.", + "Most", "services", "will", "provide", "this", "to", "you", "directly,", "but", "some", "may", "only", "provide", "you", "with", "a", "QR", "code.", + "In", "these", "cases,", "you", "must", "scan", "the", "QR", "code", "separately,", "and", "then", "enter", "the", "string", "following", "the", "'secret='", "parameter", "on", "your", "Rockbox", "device", "manually.", + "", + "On", "devices", "with", "a", "real-time", "clock,", "the", "plugin", "will", "ask", "whether", "the", "account", "is", "a", "time-based", "account", "(TOTP).", + "If", "you", "answer", "'yes'", "to", "this", "question,", "it", "will", "ask", "for", "further", "information", "regarding", "the", "account.", + "Usually", "it", "is", "safe", "to", "accept", "the", "defaults", "here.", + "However,", "if", "your", "device", "lacks", "a", "real-time", "clock,", "the", "plugin's", "functionality", "will", "be", "restricted", "to", "HMAC-based", "(HOTP)", "accounts", "only.", + "If", "this", "is", "the", "case,", "the", "plugin", "will", "prompt", "you", "for", "information", "regarding", "the", "HOTP", "setup.", + "Again,", "it", "is", "usually", "safe", "to", "accept", "the", "defaults.", + "", + "", + "Account Export", "", + "This", "plugin", "allows", "you", "to", "export", "account", "data", "to", "a", "file", "for", "backup", "and", "transfer", "purposes.", + "This", "option", "is", "located", "under", "the", "'Advanced'", "menu.", + "It", "will", "prompt", "for", "for", "a", "filename,", "and", "will", "write", "all", "your", "account", "data", "to", "the", "specified", "file.", + "This", "file", "can", "be", "imported", "by", "this", "plugin", "using", "the", "'From", "URI", "List'", "option", "when", "importing.", + "Please", "note", "that", "you", "should", "not", "attempt", "to", "copy", "the", "'passmgr.dat'", "from", "the", ".rockbox", "directory", "to", "another", "device.", + "", + "", + "Encryption", "", + "This", "plugin", "supports", "the", "optional", "encryption", "of", "account", "data", "while", "stored", "on", "disk.", + "This", "feature", "is", "located", "under", "the", "'Advanced'", "menu", "option.", + "Upon", "enabling", "this", "feature,", "you", "must", "enter", "an", "encryption", "password", "that", "will", "need", "to", "be", "entered", "each", "time", "the", "plugin", "starts", "up.", + "It", "is", "recommended", "that", "you", "use", "a", "strong,", "alphanumeric", "password", "of", "at", "least", "8", "characters", "in", "order", "to", "frustrate", "attempts", "to", "guess", "the", "password.", + "Be", "sure", "not", "to", "forget", "this", "password.", + "In", "the", "event", "that", "the", "password", "is", "lost,", "it", "is", "nearly", "impossible", "to", "recover", "your", "account", "data.", + "", + "", + "Implementation Details", "", + "Account", "data", "is", "encrypted", "with", "128-bit", "AES", "encryption", "in", "counter", "mode.", + "The", "key", "is", "derived", "from", "the", "your", "password", "and", "a", "nonce", "by", "using", "PBKDF2-HMAC-SHA1,", "with", "a", "variable", "number", "of", "iterations,", "calibrated", "by", "default", "to", "take", "250", "milliseconds.", + "This", "parameter", "can", "be", "adjusted", "using", "the", "'Change", "KDF", "Delay'", "option", "under", "the", "'Encryption'", "submenu.", + "The", "nonce", "is", "generated", "from", "the", "system's", "current", "tick", "and", "the", "real-time", "clock,", "if", "available,", "making", "collision", "unlikely.", + "Some", "later-model", "iPods", "have", "a", "hardware", "AES", "core", "with", "a", "hardcoded,", "device-specific", "key", "that", "cannot", "easily", "be", "extracted.", + "When", "available,", "the", "device-specific", "key", "is", "used", "to", "encrypt", "the", "actual", "encryption", "key,", "tying", "the", "ciphertext", "to", "the", "device,", "making", "a", "brute-force", "attack", "more", "difficult.", + "One", "should", "note", "that", "this", "does", "not", "rely", "completely", "rely", "on", "the", "hardware", "encryption", "key,", "it", "merely", "utilizes", "it", "as", "part", "of", "defense", "in", "depth.", + "", + "", + "Troubleshooting", "", + "If", "time-based", "passwords", "and", "not", "working", "properly,", "ensure", "that", "your", "system", "clock", "is", "accurate", "to", "within", "30", "seconds", "of", "the", "authenticating", "server's", "clock,", "and", "that", "the", "proper", "time", "zone", "is", "configured", "within", "the", "plugin.", + "Be", "sure", "to", "account", "for", "Daylight", "Savings", "Time,", "if", "applicable.", + "", + "", + "Supported Features", "", +#if !CONFIG_RTC + "This", "device", "lacks", "a", "real-time", "clock,", "and", "thus", "time-based", "(TOTP)", "passwords", "are", "not", "supported.", + "", +#endif +#if CONFIG_CPU == S5L8702 && !defined(SIMULATOR) + "This", "device", "has", "a", "hardware", "AES", "core", "that", "will", "be", "used", "to", "further", "protect", "your", "data", "by", "tying", "it", "to", "this", "device.", + "", +#else + "This", "device", "does", "not", "have", "a", "hardware", "AES", "core.", + "The", "security", "of", "the", "encryption", "thus", "relies", "solely", "on", "your", "password.", + "", +#endif +#ifdef USB_ENABLE_HID + "This", "device", "has", "the", "ability", "to", "type", "passwords", "directly", "to", "a", "host", "computer", "over", "the", "USB", "connection.", + "", +#endif +}; + +struct style_text style[] = { + { 0, TEXT_CENTER | TEXT_UNDERLINE }, + { 3, C_RED }, + { 50, C_RED }, + { 91, C_RED }, + { 127, C_RED }, + { 280, C_RED }, + { 468, C_RED }, + { 548, C_RED }, + { 644, C_RED }, + { 787, C_RED }, + { 835, C_RED }, + LAST_STYLE_ITEM +}; + + /* displays the help text */ static void show_help(void) { @@ -1979,125 +2635,6 @@ static void show_help(void) #ifdef HAVE_LCD_BITMAP rb->lcd_setfont(FONT_UI); #endif - - static char *help_text[] = { "Password Manager", "", - "", - "Introduction", "", - "This", "plugin", "allows", "you", "to", "generate", "one-time", "passwords", "as", "a", "second", "factor", "of", "authentication", "for", "online", "services", "which", "support", "it,", "such", "as", "GitHub", "and", "Google.", - "This", "plugin", "supports", "both", "counter-based", "(HOTP),", "and", "time-based", "(TOTP)", "password", "schemes.", - "It", "also", "supports", "storing", "static", "passwords", "securely.", - "", - "", - "Time Zone Configuration", "", - "On", "the", "first", "run", "of", "the", "plugin,", "you", "are", "asked", "for", "the", "time", "zone", "to", "which", "your", "system", "clock", "is", "set.", - "If", "you", "need", "to", "change", "this", "setting", "later,", "it", "is", "available", "under", "the", "'Advanced'", "menu", "option.", - "", - "", - "Account Setup", "", - "To", "add", "a", "new", "account,", "choose", "the", "'Import", "Account(s)'", "menu", "option.", - "There", "are", "two", "ways", "to", "import", "an", "account,", "either", "from", "a", "file", "containing", "account", "information", "in", "URI", "format,", "or", "manual", "entry.", - "", - "", - "URI Import", "", - "This", "method", "of", "adding", "an", "account", "reads", "a", "list", "of", "URIs", "from", "a", "file.", - "It", "expects", "each", "URI", "to", "be", "on", "a", "line", "by", "itself", "in", "the", "following", "format:", "", - "", - "otpauth://[hotp", "OR", "totp]/[account", "name]?secret=[Base32", "secret][&counter=X][&period=X][&digits=X]", "", - "", - "An", "example", "is", "shown", "below,", "provisioning", "a", "TOTP", "key", "for", "an", "account", "called", "``bob'':", "", - "", - "otpauth://totp/bob?secret=JBSWY3DPEHPK3PXP", "", - "", - "Any", "other", "URI", "options", "are", "not", "supported", "and", "will", "be", "ignored.", - "", - "Most", "services", "will", "provide", "a", "scannable", "QR", "code", "that", "encodes", "a", "OTP", "URI.", - "In", "order", "to", "use", "those,", "first", "scan", "the", "QR", "code", "separately", "and", "save", "the", "URI", "to", "a", "file", "on", "your", "device.", - "If", "necessary,", "rewrite", "the", "URI", "so", "it", "is", "in", "the", "format", "shown", "above.", - "For", "example,", "GitHub's", "URI", "has", "a", "slash", "after", "the", "provider.", - "In", "order", "for", "this", "URI", "to", "be", "properly", "parsed,", "you", "must", "rewrite", "the", "account", "name", "so", "that", "it", "does", "not", "contain", "a", "slash.", - "", - "", - "Manual Import", "", - "If", "direct", "URI", "import", "is", "not", "possible,", "the", "plugin", "supports", "the", "manual", "entry", "of", "data", "associated", "with", "an", "account.", - "After", "you", "select", "the", "'Manual", "Entry'", "option,", "it", "will", "prompt", "you", "for", "an", "account", "name.", - "You", "may", "type", "anything", "you", "wish,", "but", "it", "should", "be", "memorable.", - "It", "will", "then", "prompt", "you", "for", "the", "Base32-encoded", "secret.", - "Most", "services", "will", "provide", "this", "to", "you", "directly,", "but", "some", "may", "only", "provide", "you", "with", "a", "QR", "code.", - "In", "these", "cases,", "you", "must", "scan", "the", "QR", "code", "separately,", "and", "then", "enter", "the", "string", "following", "the", "'secret='", "parameter", "on", "your", "Rockbox", "device", "manually.", - "", - "On", "devices", "with", "a", "real-time", "clock,", "the", "plugin", "will", "ask", "whether", "the", "account", "is", "a", "time-based", "account", "(TOTP).", - "If", "you", "answer", "'yes'", "to", "this", "question,", "it", "will", "ask", "for", "further", "information", "regarding", "the", "account.", - "Usually", "it", "is", "safe", "to", "accept", "the", "defaults", "here.", - "However,", "if", "your", "device", "lacks", "a", "real-time", "clock,", "the", "plugin's", "functionality", "will", "be", "restricted", "to", "HMAC-based", "(HOTP)", "accounts", "only.", - "If", "this", "is", "the", "case,", "the", "plugin", "will", "prompt", "you", "for", "information", "regarding", "the", "HOTP", "setup.", - "Again,", "it", "is", "usually", "safe", "to", "accept", "the", "defaults.", - "", - "", - "Account Export", "", - "This", "plugin", "allows", "you", "to", "export", "account", "data", "to", "a", "file", "for", "backup", "and", "transfer", "purposes.", - "This", "option", "is", "located", "under", "the", "'Advanced'", "menu.", - "It", "will", "prompt", "for", "for", "a", "filename,", "and", "will", "write", "all", "your", "account", "data", "to", "the", "specified", "file.", - "This", "file", "can", "be", "imported", "by", "this", "plugin", "using", "the", "'From", "URI", "List'", "option", "when", "importing.", - "Please", "note", "that", "you", "should", "not", "attempt", "to", "copy", "the", "'passmgr.dat'", "from", "the", ".rockbox", "directory", "to", "another", "device.", - "", - "", - "Encryption", "", - "This", "plugin", "supports", "the", "optional", "encryption", "of", "account", "data", "while", "stored", "on", "disk.", - "This", "feature", "is", "located", "under", "the", "'Advanced'", "menu", "option.", - "Upon", "enabling", "this", "feature,", "you", "must", "enter", "an", "encryption", "password", "that", "will", "need", "to", "be", "entered", "each", "time", "the", "plugin", "starts", "up.", - "It", "is", "recommended", "that", "you", "use", "a", "strong,", "alphanumeric", "password", "of", "at", "least", "8", "characters", "in", "order", "to", "frustrate", "attempts", "to", "guess", "the", "password.", - "Be", "sure", "not", "to", "forget", "this", "password.", - "In", "the", "event", "that", "the", "password", "is", "lost,", "it", "is", "nearly", "impossible", "to", "recover", "your", "account", "data.", - "", - "", - "Implementation Details", "", - "Account", "data", "is", "encrypted", "with", "128-bit", "AES", "encryption", "in", "counter", "mode.", - "The", "key", "is", "derived", "from", "the", "your", "password", "and", "a", "nonce", "by", "using", "PBKDF2-HMAC-SHA1,", "with", "a", "variable", "number", "of", "iterations,", "calibrated", "by", "default", "to", "take", "250", "milliseconds.", - "This", "parameter", "can", "be", "adjusted", "using", "the", "'Change", "KDF", "Delay'", "option", "under", "the", "'Encryption'", "submenu.", - "The", "nonce", "is", "generated", "from", "the", "system's", "current", "tick", "and", "the", "real-time", "clock,", "if", "available,", "making", "collision", "unlikely.", - "Some", "later-model", "iPods", "have", "a", "hardware", "AES", "core", "with", "a", "hardcoded,", "device-specific", "key", "that", "cannot", "easily", "be", "extracted.", - "When", "available,", "the", "device-specific", "key", "is", "used", "to", "encrypt", "the", "actual", "encryption", "key,", "tying", "the", "ciphertext", "to", "the", "device,", "making", "a", "brute-force", "attack", "more", "difficult.", - "One", "should", "note", "that", "this", "does", "not", "rely", "completely", "rely", "on", "the", "hardware", "encryption", "key,", "it", "merely", "utilizes", "it", "as", "part", "of", "defense", "in", "depth.", - "", - "", - "Troubleshooting", "", - "If", "time-based", "passwords", "and", "not", "working", "properly,", "ensure", "that", "your", "system", "clock", "is", "accurate", "to", "within", "30", "seconds", "of", "the", "authenticating", "server's", "clock,", "and", "that", "the", "proper", "time", "zone", "is", "configured", "within", "the", "plugin.", - "Be", "sure", "to", "account", "for", "Daylight", "Savings", "Time,", "if", "applicable.", - "", - "", - "Supported Features", "", -#if !CONFIG_RTC - "This", "device", "lacks", "a", "real-time", "clock,", "and", "thus", "time-based", "(TOTP)", "passwords", "are", "not", "supported.", - "", -#endif -#if CONFIG_CPU == S5L8702 && !defined(SIMULATOR) - "This", "device", "has", "a", "hardware", "AES", "core", "that", "will", "be", "used", "to", "further", "protect", "your", "data", "by", "tying", "it", "to", "this", "device.", - "", -#else - "This", "device", "does", "not", "have", "a", "hardware", "AES", "core.", - "The", "security", "of", "the", "encryption", "thus", "relies", "solely", "on", "your", "password.", - "", -#endif -#ifdef USB_ENABLE_HID - "This", "device", "has", "the", "ability", "to", "type", "passwords", "directly", "to", "a", "host", "computer", "over", "the", "USB", "connection.", - "", -#endif - }; - struct style_text style[] = { - { 0, TEXT_CENTER | TEXT_UNDERLINE }, - { 3, C_RED }, - { 50, C_RED }, - { 91, C_RED }, - { 127, C_RED }, - { 280, C_RED }, - { 468, C_RED }, - { 548, C_RED }, - { 644, C_RED }, - { 787, C_RED }, - { 835, C_RED }, - LAST_STYLE_ITEM - }; - display_text(ARRAYLEN(help_text), help_text, style, NULL, true); } @@ -2387,7 +2924,9 @@ static void acct_menu(char *title, void (*cb)(int acct)) { rb->gui_synclist_draw(&list); int button = rb->get_action(CONTEXT_LIST, TIMEOUT_BLOCK); + #ifdef USB_ENABLE_HID + /* ignore USB connections when in USB mode */ if(cb != type_code || button != SYS_USB_CONNECTED) #endif if (rb->gui_synclist_do_button(&list, &button, LIST_WRAP_ON)) @@ -2530,7 +3069,7 @@ enum plugin_status plugin_start(const void* parameter) #ifdef USB_ENABLE_HID "Type Password", // 1 #endif - "Import Account(s)", // 1,2 + "Add Account(s)", // 1,2 "Help", // 2,3 "Advanced", // 3,4 "Quit"); // 4,5 diff --git a/apps/plugins/passmgr/passmgr.make b/apps/plugins/passmgr/passmgr.make index 341eb64..ee34783 100644 --- a/apps/plugins/passmgr/passmgr.make +++ b/apps/plugins/passmgr/passmgr.make @@ -18,10 +18,10 @@ PASSMGR_OBJ := $(call c2obj, $(PASSMGR_SRC)) # add source files to OTHER_SRC to get automatic dependencies OTHER_SRC += $(PASSMGR_SRC) -PASSMGRFLAGS = $(filter-out -O%,$(PLUGINFLAGS)) -O3 +PASSMGRFLAGS = $(filter-out -O%,$(PLUGINFLAGS)) -O2 $(PASSMGRBUILDDIR)/passmgr.rock: $(PASSMGR_OBJ) $(PASSMGRBUILDDIR)/%.o: $(PASSMGRSRCDIR)/%.c $(PASSMGRSRCDIR)/passmgr.make - $(SILENT)mkdir -p $(dir $@) - $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) -I$(dir $<) $(PASSMGRFLAGS) -c $< -o $@ + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) -I$(dir $<) $(PASSMGRFLAGS) -c $< -o $@ diff --git a/apps/plugins/passmgr/wordlist.c b/apps/plugins/passmgr/wordlist.c index c87ec10..f38d261 100644 --- a/apps/plugins/passmgr/wordlist.c +++ b/apps/plugins/passmgr/wordlist.c @@ -1,3 +1,7876 @@ -const char *noun_list[] = { "abacus", "abase", "abbess", "abbey", "abbot", "abdicate", "abdomen", "abdominal", "abduction", "abed", "abet", "abeyance", "abhorrent", "abidance", "abject", "abjure", "able", "ablution", "abnegate", "abnormal", "abominate", "above", "abrade", "abrasion", "abridge", "abrogate", "abrupt", "abscess", "abscissa", "abscond", "absence", "absent", "absolute", "absolve", "absorb", "absorbed", "abstain", "abstruse", "absurd", "abundant", "abused", "abusive", "abut", "abyss", "academic", "academy", "accede", "acceded", "accedes", "accented", "accept", "accepted", "access", "accession", "accessory", "accident", "acclaim", "acclimate", "accompany", "accorded", "accordion", "accost", "accosts", "account", "accouter", "accredit", "accuracy", "accurate", "accursed", "accuse", "accusing", "accustom", "acerbity", "acetate", "acetic", "ache", "acid", "acidify", "ackee", "acme", "acoustic", "acquaint", "acquiesce", "acquire", "acquit", "acquittal", "acreage", "acreages", "acrid", "acrimony", "acrobat", "activate", "activist", "actuality", "actuary", "actuate", "acumen", "acute", "acutely", "adamant", "adaptable", "adapters", "added", "addendum", "addle", "addled", "address", "adduce", "adelgid", "adenoma", "adequate", "adhere", "adherence", "adherent", "adheres", "adhesion", "adieu", "adios", "adjacency", "adjacent", "adjudge", "adjunct", "adjutant", "admirals", "admonish", "ado", "adoration", "adorning", "adroit", "adulthood", "adumbrate", "advance", "advanced", "advancing", "advent", "adverse", "adversely", "adversity", "advert", "advisable", "adviser", "advisory", "advocacy", "advocate", "aerial", "aerobics", "aeronaut", "aerostat", "affable", "affect", "affected", "affiliate", "affinity", "affix", "afflict", "affluence", "affluent", "affront", "affronts", "afire", "afoot", "aforesaid", "afresh", "aft", "after", "afterward", "age", "aggravate", "aggregate", "aggress", "aggrieve", "aghast", "agile", "agility", "agitate", "agitated", "agitprop", "agnostic", "agog", "agonal", "agonized", "agrarian", "ague", "aid", "ailment", "aim", "airbag", "airfare", "airfield", "airspace", "airwaves", "airy", "akin", "alabaster", "alacrity", "albeit", "albino", "album", "alchemy", "alcohol", "alcove", "alder", "alderman", "alert", "algae", "algebra", "alias", "alien", "alienable", "alienate", "alike", "aliment", "alkali", "alkaline", "allay", "allege", "alleged", "allegory", "alleviate", "alley", "alleyway", "alliance", "allies", "allocate", "allot", "allotment", "allowed", "allude", "allusion", "allusive", "alluvion", "ally", "almanac", "almost", "alone", "aloof", "alpha", "alphabet", "altar", "alter", "altercate", "alternate", "although", "altitude", "alto", "altruism", "altruist", "amalgam", "amass", "amateur", "amatory", "amazed", "amber", "ambiguous", "ambitious", "ambrosia", "ambrosial", "ambulance", "ambulate", "ambush", "amenable", "amended", "amicable", "amish", "amity", "amongst", "amorous", "amorphous", "amount", "amour", "ampere", "ampersand", "amplified", "amplitude", "amply", "amputate", "amusement", "anagram", "analog", "analogous", "analogy", "analysed", "analyst", "analyze", "anarchy", "anathema", "anatomy", "ancestry", "anchor", "anchored", "ancient", "ancillary", "anecdote", "anemia", "anemic", "anew", "angel", "angelic", "angler", "angstrom", "anguish", "angular", "anhydrous", "animal", "animate", "anime", "animosity", "anklet", "annalist", "annals", "annex", "annexed", "annotate", "annual", "annuity", "anode", "anonymous", "another", "answer", "answering", "ante", "antecede", "antedate", "antenatal", "anterior", "anteroom", "anthem", "anthology", "antic", "antidote", "antilogy", "antiphon", "antiphony", "antipodes", "antiquary", "antiquate", "antique", "antitoxin", "antonym", "anxious", "anymore", "anyplace", "anything", "apart", "apathy", "aperitif", "aperture", "apex", "aphorism", "apiary", "apogee", "apology", "apostasy", "apostate", "apostle", "appall", "apparatus", "apparel", "apparent", "appeal", "appealed", "appease", "appellate", "append", "appertain", "appoint", "apposite", "appraise", "apprehend", "apprise", "approved", "aquarium", "aqueduct", "aqueous", "arachnid", "arb", "arbiter", "arbitrary", "arbitrate", "arbor", "arboreal", "arboretum", "arbs", "arcade", "arch", "archaic", "archaism", "archangel", "arched", "archetype", "archival", "archive", "archrival", "ardent", "ardor", "arid", "arise", "armada", "armament", "armature", "armful", "armistice", "armless", "armor", "armorers", "armory", "armrest", "arnica", "aroma", "around", "aroused", "arraign", "arrange", "arrant", "array", "arrayed", "arrear", "arrested", "arrival", "arrogant", "arrogate", "arrowing", "arsenate", "artery", "artful", "artifice", "artistry", "artless", "aryan", "ascendant", "ascension", "ascent", "ascetic", "ascribe", "asexual", "ashamed", "ashen", "ashore", "asiatic", "askance", "asking", "asperity", "aspirant", "aspire", "assailant", "assassin", "assault", "assay", "assent", "assertive", "assess", "assessor", "assets", "assiduous", "assignee", "associate", "assonance", "assonant", "assonate", "assuage", "assume", "assuredly", "asterisk", "asters", "asthma", "astronaut", "astute", "asylums", "atheism", "athirst", "athwart", "atomize", "atomizer", "atonal", "atone", "atonement", "atrocious", "atrocity", "attache", "attack", "attacked", "attain", "attend", "attest", "auburn", "auction", "auctions", "audacious", "audible", "audition", "auditory", "audits", "augment", "augur", "aura", "aural", "auricle", "auricular", "aurora", "auspice", "austere", "autarchy", "auteur", "authentic", "authority", "autocracy", "autocrat", "automaton", "autonomy", "autopsy", "autumn", "autumnal", "auxiliary", "avalanche", "avarice", "aver", "averse", "aversion", "avert", "aviaries", "aviary", "aviator", "avidity", "avidly", "avocation", "avow", "await", "awaits", "awaken", "awakened", "awards", "awash", "awesome", "awful", "awry", "aww", "axes", "axioms", "aye", "azalea", "azure", "babble", "babe", "baby", "babysit", "back", "backdrop", "backed", "backstop", "bacterium", "badger", "badgered", "baffle", "baffled", "bag", "bagel", "baggage", "baggier", "bagpipe", "bailiff", "bairn", "bait", "baize", "baked", "bakeware", "balancing", "baldly", "bale", "baleful", "ballad", "ballpark", "balm", "balsa", "balsam", "bamboo", "banal", "band", "banjo", "banned", "banquet", "banter", "baptisms", "baptize", "barbarian", "barbaric", "barbells", "barbeque", "barcarole", "barefoot", "bargain", "baritone", "barium", "bark", "barley", "barograph", "barometer", "barrages", "barrel", "barreled", "barrier", "barring", "barstool", "bask", "basket", "bass", "basso", "baste", "bastion", "batch", "bath", "bather", "baton", "batons", "battalion", "batten", "batter", "batting", "bauble", "bawl", "bawled", "bayonet", "beacon", "bead", "beaded", "beads", "bear", "bearer", "beatify", "beatitude", "beatnik", "beau", "becalm", "beck", "bedaub", "bedding", "bedeck", "bedlam", "bedside", "beep", "beeper", "befog", "before", "befriend", "befuddle", "beget", "beginner", "begrudge", "beguine", "behavior", "beheaded", "behemoth", "behest", "beholden", "belate", "belated", "belay", "belie", "believe", "belittle", "belle", "bellicose", "bellmen", "bellow", "belly", "beloved", "below", "bemoan", "bemoaned", "bench", "benched", "bended", "benefice", "benefit", "bengal", "benign", "benignant", "benignity", "benison", "bequeath", "bereave", "bereaved", "berth", "beseech", "beset", "besides", "besmear", "besmirch", "bespeak", "best", "bestial", "bestow", "bestrew", "bestride", "bethink", "betide", "betimes", "betrayed", "betroth", "betrothal", "better", "between", "betwixt", "bevel", "beveled", "bewilder", "bias", "bib", "bibulous", "bidding", "bide", "biennial", "bier", "bigamist", "bigamy", "biggie", "bight", "bigotry", "bike", "bilateral", "bile", "bilingual", "billfish", "billow", "billows", "billowy", "binding", "bingeing", "bio", "biograph", "biography", "biology", "biomes", "biped", "biryani", "bitter", "biz", "bizarre", "blab", "blabbing", "blackbird", "blacked", "blacklist", "blackness", "blank", "blanket", "blase", "blaspheme", "blatant", "blaze", "blazon", "bleak", "blemish", "blended", "blight", "blind", "blinded", "blink", "blipped", "blithe", "blitz", "blizzard", "blockade", "blocker", "blocking", "blond", "blonde", "bloodbath", "bloodied", "bloodily", "bloodline", "bloom", "bloomed", "blouses", "blousy", "blowhole", "blowtorch", "blue", "bluebird", "bluish", "blunder", "blunt", "blurb", "blurring", "blush", "bluster", "boards", "boatload", "boatswain", "boatyard", "bobble", "boded", "bodice", "bodily", "bog", "bogus", "bold", "bole", "bolero", "boll", "bolster", "bolts", "bomb", "bombard", "bombast", "bombings", "bomblets", "bombs", "bond", "bondsman", "boob", "boobs", "bookcase", "bookend", "bookmark", "bookworm", "boorish", "boost", "booster", "boot", "bootleg", "bordello", "bordering", "bore", "borers", "boring", "borough", "bosom", "boss", "botanical", "botanist", "botanize", "botany", "bothered", "bottles", "bottling", "bouffant", "bounce", "bouncing", "boundary", "bountiful", "bow", "bowel", "bowing", "bowl", "bowler", "boxing", "boxlike", "boxwood", "boycott", "brace", "brackets", "brae", "braggart", "brains", "brainwash", "branch", "brandish", "brassy", "bravado", "bravo", "brawl", "brawls", "brawny", "bray", "braze", "brazenly", "brazier", "breach", "breadth", "breakaway", "breakdown", "breaker", "breakfast", "breath", "breech", "breed", "brethren", "brevity", "bribery", "bridge", "bridle", "brief", "briefers", "briers", "brigade", "brigadier", "brigand", "brighten", "brightly", "brim", "brimstone", "brine", "bristle", "brittle", "broach", "broaches", "broadcast", "broader", "brochure", "brogan", "brogans", "brogue", "broil", "broiler", "brokerage", "brome", "bromine", "bronchus", "bronzers", "brooch", "brook", "broom", "broth", "brow", "browbeat", "brown", "brownie", "brownish", "bruised", "brushing", "brushy", "brusque", "bubble", "bubonic", "buck", "bucket", "buckled", "buff", "buffet", "buffeted", "buffoon", "bugging", "bugle", "build", "bulb", "bulbous", "bulging", "bulk", "bulldoze", "bulled", "bullets", "bullock", "bully", "bulrush", "bulwark", "bum", "bumper", "bumpers", "bumptious", "bumpy", "bunch", "bundle", "bunghole", "bungle", "bungled", "buoyancy", "buoyant", "burden", "bureau", "burger", "burgess", "burgher", "burgundy", "burlap", "burned", "burnet", "burnish", "burp", "burping", "burrows", "bursar", "busman", "bussed", "busses", "bust", "bustards", "busters", "bustier", "busting", "bustle", "busty", "busybody", "butcher", "butt", "butte", "buttered", "buttress", "buy", "buyouts", "buzzes", "byline", "cabal", "cabalism", "cabin", "cabinet", "cabriole", "cacao", "cacophony", "cactus", "caddies", "caddis", "caddy", "cadence", "cadenza", "cadet", "caitiff", "cajole", "cajolery", "calculus", "calf", "calibers", "calipers", "call", "called", "caller", "callosity", "callow", "calorie", "calumny", "came", "cameo", "camera", "camp", "campaign", "canadian", "canard", "canary", "candid", "candor", "canine", "canines", "canister", "cannon", "canny", "canon", "canonize", "canopy", "cant", "cantata", "canteen", "canto", "canvases", "canvass", "capable", "capably", "capacious", "capillary", "capital", "capo", "capon", "caprice", "capsizes", "caption", "captious", "captivate", "captor", "capture", "carbonate", "carbos", "carcass", "card", "cardiac", "cardinal", "care", "caret", "cargo", "cargoes", "caring", "carload", "carnage", "carnal", "carnival", "carotene", "carouse", "carped", "carpentry", "carpet", "carpeted", "carried", "carrion", "carrot", "cartilage", "cartload", "cartoons", "cartridge", "carve", "case", "cased", "caseload", "casement", "cases", "cashier", "cashmere", "casings", "cast", "caste", "castigate", "casting", "casual", "casualty", "cat", "cataclysm", "catalans", "catalyst", "catalyze", "cataract", "cathode", "catlike", "caucus", "caudal", "causal", "causally", "cause", "caused", "caustic", "cauterize", "caution", "caviar", "ceaseless", "cede", "celebrate", "celeriac", "cell", "cellar", "cenotaph", "censor", "census", "censuses", "cent", "centenary", "centrally", "centurion", "ceramic", "cereal", "cessation", "cession", "chafe", "chaff", "chagrin", "chain", "chair", "chalk", "chameleon", "champagne", "chancery", "channel", "chanting", "chaos", "chap", "chapel", "char", "charge", "charlatan", "charmed", "charming", "charred", "chasm", "chasten", "chastise", "chastity", "chasuble", "chateau", "chattel", "cheating", "check", "checkered", "checkup", "cheer", "cheerio", "cheesy", "cherished", "chervil", "chicano", "chick", "chief", "chieftain", "chiffon", "chill", "chilled", "chinaman", "ching", "chinooks", "chip", "chipmunk", "chipped", "chipping", "chirpy", "chisel", "chiseled", "chit", "chivalry", "chives", "choice", "choke", "cholera", "choleric", "choral", "christen", "chromatic", "chrome", "chromed", "chub", "chucking", "chuckle", "chug", "chump", "chunk", "chunky", "churlish", "churn", "cichlids", "cipher", "circular", "circulate", "citadel", "cite", "citizen", "civilize", "claim", "claimant", "claimed", "clambers", "clamorous", "clan", "clang", "clangor", "clank", "clap", "clarify", "clarion", "clasped", "clasping", "classic", "classify", "classroom", "classy", "clavicle", "claw", "clay", "clean", "cleansed", "clear", "clearance", "cleared", "clearing", "clearly", "cleaving", "clemency", "clement", "clergyman", "clique", "cloak", "clocks", "clockwork", "clogged", "cloister", "clomps", "cloned", "closer", "closeted", "closure", "clot", "clothe", "clothed", "clothier", "clouds", "cloudy", "clout", "clove", "cloying", "cluck", "clucks", "clue", "clumsier", "clumsy", "coagulant", "coagulate", "coalition", "coarsely", "coasted", "coat", "coated", "coax", "cob", "cobalt", "cobweb", "cocci", "cockpit", "coddle", "code", "codger", "codicil", "codify", "codon", "codpiece", "coerce", "coercion", "coercive", "coexist", "coffin", "cogent", "cognate", "cognizant", "cohere", "coherent", "cohesion", "cohesive", "cohost", "coifed", "coincide", "coined", "coital", "cold", "coldness", "coleus", "coliseum", "collapse", "collate", "colleague", "collector", "collegian", "collide", "collie", "collier", "collision", "colloquy", "collusion", "colon", "colossal", "colossus", "colt", "coltish", "columns", "comatose", "combat", "combated", "combed", "combers", "combine", "combos", "come", "comedic", "comedown", "comely", "comes", "comical", "commando", "commies", "commingle", "committal", "commodity", "commotion", "communist", "commute", "commuting", "compact", "company", "competent", "complain", "complex", "complexly", "compliant", "component", "comport", "compose", "composed", "composer", "compost", "composts", "composure", "compound", "compress", "comprise", "compute", "comrades", "con", "conative", "conceal", "concealed", "concede", "conceit", "conceive", "concerted", "concerto", "concierge", "concise", "concord", "concur", "condense", "conduce", "conducive", "conduit", "confer", "conferee", "confessor", "confetti", "confidant", "confide", "confident", "confine", "confluent", "conform", "confound", "confront", "confuse", "congeal", "congenial", "congest", "conjoin", "conjugal", "conjugate", "conjured", "connect", "connected", "connector", "connive", "connote", "connubial", "conquer", "conscious", "conscript", "consensus", "consent", "consign", "consignee", "consignor", "console", "consoled", "consonant", "consort", "conspire", "constable", "constancy", "constrict", "consul", "consulate", "contagion", "contains", "contender", "contessa", "contest", "continual", "contort", "contrail", "contrary", "contrite", "contrive", "control", "contumacy", "contuse", "contusion", "convene", "converge", "convert", "convex", "convivial", "convolute", "convolve", "convoy", "convulse", "cookbook", "cooked", "cookie", "cookout", "cool", "cooled", "cooperate", "coos", "coped", "copies", "copious", "copiously", "copout", "copped", "copper", "coquette", "cordon", "cork", "corkscrew", "corm", "corn", "cornered", "cornice", "cornmeal", "corollary", "coronet", "corporal", "corporate", "corporeal", "corps", "corpse", "corpulent", "corpuscle", "correctly", "correlate", "corrode", "corroded", "corrosion", "corrosive", "corrupted", "corset", "corseted", "cortical", "cosmetic", "cosmetics", "cosmic", "cosmogony", "cosmology", "cosmonaut", "cosmos", "countess", "couplers", "courage", "course", "courser", "courtesy", "cousin", "covenant", "cover", "covered", "covering", "covert", "covey", "cowardly", "cower", "cowled", "coxswain", "coy", "cozying", "crabs", "crack", "cracked", "cracker", "crackers", "crackpot", "craft", "crag", "cramp", "cramped", "crams", "cranberry", "cranium", "craps", "crapshoot", "crass", "crate", "craving", "craw", "crawly", "crazy", "creak", "cream", "creamery", "creaming", "creamy", "creator", "creche", "credence", "credible", "credibly", "credits", "credulous", "creed", "creep", "creepy", "crematory", "crescent", "cretan", "cretin", "crevasse", "crevice", "cribbage", "cried", "criers", "crimp", "crinkly", "crippled", "crippling", "crisped", "criteria", "criterion", "critical", "critique", "crocheted", "crockery", "crossbar", "crosshair", "crouched", "croup", "crow", "crowbar", "crowd", "crown", "crucible", "crude", "crudites", "cruelty", "cruise", "crumb", "crumpled", "crunch", "crunchy", "crusade", "crushed", "crusted", "crusts", "cry", "crybaby", "cub", "cube", "cubist", "cudgel", "cued", "cueing", "cuff", "culinary", "cull", "culpable", "culprit", "cultivar", "culture", "culvert", "cupful", "cupid", "cupidity", "curable", "curator", "curb", "cured", "curio", "curiously", "curl", "currency", "currently", "cursive", "cursor", "cursory", "curt", "curtail", "curtsy", "curve", "curved", "curving", "custards", "customer", "cutover", "cutting", "cuttings", "cycled", "cycling", "cycloid", "cygnet", "cynic", "cynical", "cynicism", "cynosure", "cyst", "dabbed", "dabs", "dagger", "daily", "dales", "dali", "dalliance", "dam", "dame", "dames", "damned", "damp", "dance", "dancing", "daring", "darkling", "darkly", "darling", "darn", "dashboard", "dashed", "dastard", "date", "dated", "dating", "datum", "dauber", "daunting", "dauntless", "daylight", "daypack", "daytime", "daywear", "dazed", "dazedly", "dazzle", "dazzled", "dba", "deadened", "deadlock", "deafening", "deal", "dearest", "dearth", "debase", "debatable", "debated", "debonair", "debrief", "debut", "decadence", "decagon", "decagram", "decaliter", "decalogue", "decameter", "decamp", "decapod", "decayed", "deceit", "deceitful", "deceive", "decency", "decent", "deception", "deceptive", "decide", "decides", "deciding", "deciduous", "decimal", "decimate", "decipher", "decisive", "decker", "decks", "decorate", "decorous", "decoy", "decoys", "decrease", "decreed", "decrepit", "decrying", "dedicate", "deduce", "deduces", "deed", "deep", "deepen", "deepens", "deer", "deface", "defalcate", "defame", "defamed", "defanged", "default", "defaults", "defective", "defendant", "defensive", "defer", "deference", "defiant", "deficient", "defiled", "definite", "deflate", "deflates", "deflect", "deforest", "deform", "deformed", "deformity", "defraud", "defray", "deft", "degrade", "degraded", "degrading", "dehydrate", "deified", "deify", "deign", "deist", "deists", "deity", "deject", "dejected", "dejection", "delay", "delayed", "delete", "delft", "deli", "delicacy", "delineate", "delirious", "delirium", "delivery", "delude", "deluge", "delusion", "demagogue", "demeanor", "demented", "demerit", "demise", "demo", "demolish", "demon", "demotic", "demulcent", "demur", "demurrage", "dendroid", "denial", "denizen", "denote", "denounce", "dented", "denude", "denuding", "deodorant", "depicted", "deplete", "deplore", "deploy", "deponent", "deport", "deposed", "depositor", "depot", "deprave", "deprecate", "depress", "depth", "deputy", "derby", "derelict", "deride", "derisible", "derision", "derive", "derives", "derrick", "derriere", "descent", "descry", "desert", "deserted", "deserved", "deserving", "desiccant", "designate", "designed", "desirous", "desist", "desktop", "desolate", "despair", "desperado", "desperate", "despite", "despond", "despot", "despotism", "dessert", "destiny", "destitute", "desultory", "detach", "deter", "deterrent", "detest", "detonator", "detract", "detriment", "detrude", "devastate", "develops", "deviance", "deviate", "device", "devices", "devilry", "deviltry", "devious", "devise", "devised", "devolve", "devout", "devoutly", "dexterity", "dhows", "diabolic", "diagnose", "diagnosis", "dial", "dialect", "dialed", "dialogue", "diarist", "diarists", "diarrhea", "diatomic", "diatribe", "dichotomy", "diction", "dictum", "didactic", "diddling", "diffident", "diffuse", "diffusion", "dignitary", "digraph", "digress", "dilate", "dilates", "dilatory", "dildos", "dilemma", "diligence", "dill", "dilute", "dimension", "dimly", "dims", "diner", "dinghies", "dinky", "dint", "diphthong", "diplomacy", "diplomat", "dipping", "direct", "directive", "direst", "dirtied", "disabled", "disagree", "disallow", "disappear", "disarm", "disarmed", "disavow", "disavowal", "disburden", "disburse", "discard", "discern", "disciple", "disclaim", "disco", "discolor", "discomfit", "discord", "discover", "discredit", "discreet", "disdain", "disembody", "disengage", "disfavor", "disfigure", "disgrace", "dish", "dishes", "dishonest", "disinfect", "dislocate", "dislodge", "dismal", "dismissal", "dismount", "disobeys", "disown", "disowned", "disparage", "disparity", "dispel", "dispirit", "displace", "displaced", "disposed", "disposer", "disputed", "disputes", "disquiet", "disregard", "disrepute", "disrobe", "disrupt", "dissect", "dissemble", "dissent", "dissever", "dissipate", "dissolute", "dissolve", "dissonant", "dissuade", "distance", "distant", "distemper", "distend", "distill", "distiller", "distort", "distorted", "distrain", "distrust", "disunion", "diurnal", "diver", "divergent", "diverse", "diversion", "diversity", "divert", "divest", "divide", "divided", "divider", "dividing", "divinely", "divinity", "divisible", "divisive", "divisor", "divulge", "dizzy", "docile", "docket", "dockside", "doctor", "doctorate", "document", "dodo", "doe", "doer", "doff", "dogfight", "doggedly", "doggie", "dogma", "dogmatic", "dogmatize", "dogsled", "dole", "doled", "doleful", "dolesome", "dollies", "dolor", "dolorous", "doltish", "dolts", "domain", "domicile", "dominance", "dominant", "dominate", "domineer", "donate", "donator", "donee", "donkey", "donor", "doodled", "doomsayer", "door", "doorpost", "dormant", "dorsal", "dosas", "dosed", "dotcom", "dotted", "double", "doublet", "doubling", "doubly", "doubt", "doubted", "doubter", "doughy", "dove", "down", "downer", "downgrade", "downplay", "downpour", "downward", "dowry", "doyen", "doyenne", "doze", "dozens", "dozes", "drabness", "drachma", "draft", "draftees", "drafty", "dragnet", "dragoon", "dragoons", "drain", "drainage", "dramatist", "dramatize", "drape", "drastic", "dream", "drearily", "drenches", "dress", "dressing", "dribble", "drill", "dripping", "drive", "driveway", "driving", "drizzle", "drone", "droning", "drool", "droopy", "droplet", "dropoff", "drought", "drowsy", "drudgery", "druids", "drummer", "drunk", "drunks", "dubbed", "dubious", "duckling", "ductile", "dud", "due", "duel", "duet", "dun", "dung", "dunk", "dupe", "duplex", "duplexer", "duplicity", "durance", "duration", "dusky", "dust", "duster", "dusting", "duteous", "dutiable", "dutiful", "dwarf", "dweeb", "dweller", "dwelling", "dwindle", "dyed", "dynamic", "dynamism", "dyne", "each", "eagerly", "eardrum", "eardrums", "earless", "earlier", "early", "earn", "earnest", "earplug", "earthwork", "eatable", "eave", "ebb", "ebullient", "eccentric", "ecclesia", "echo", "echoing", "eclipse", "ecliptic", "economize", "ecstasy", "ecstatic", "edible", "edict", "edify", "editorial", "educate", "educe", "efface", "effect", "effective", "effectual", "effete", "efficacy", "efficient", "effluvium", "effuse", "effusion", "egghead", "eggnog", "egoism", "egoist", "egotism", "egotist", "egregious", "egress", "egret", "eighteen", "eject", "ejecting", "ejector", "ejido", "ekes", "eland", "elapse", "elastics", "elbow", "eld", "elder", "elegy", "element", "elevation", "elicit", "eligible", "eliminate", "elite", "elixir", "ellagic", "elm", "elms", "elocution", "eloquence", "eloquent", "elucidate", "elude", "elusion", "elusive", "emaciate", "emanate", "embalmed", "embargo", "embark", "embarrass", "embedded", "embellish", "embezzle", "emblazon", "emblem", "embody", "embolden", "embolism", "embrace", "embroil", "emerge", "emergence", "emergent", "emeritus", "emigrant", "emigrate", "eminence", "eminent", "emit", "emitter", "emotions", "empathic", "emperor", "emphasis", "emphasize", "emphatic", "employed", "employee", "employer", "employs", "emporium", "empower", "empowers", "empty", "emulate", "emulated", "enact", "enamor", "encamp", "encased", "enchant", "enclave", "enclosed", "encomium", "encompass", "encore", "encourage", "encroach", "encumber", "endanger", "endear", "endeavor", "ended", "endemic", "endgame", "endlessly", "ends", "endue", "endurable", "endurance", "energetic", "enervate", "enfeeble", "engender", "engrave", "engraved", "engross", "engulfed", "enhance", "enhanced", "enigma", "enjoin", "enjoy", "enjoyment", "enkindle", "enlighten", "enlist", "enliven", "enmity", "ennoble", "enormity", "enormous", "enrage", "enrapture", "enriched", "enroll", "enshrine", "ensnare", "ensnared", "ensue", "ensuing", "entail", "entangle", "enthrall", "enthrone", "enthuse", "enticing", "entirety", "entitled", "entity", "entrails", "entrap", "entreaty", "entree", "entrench", "entrust", "entry", "entwine", "enumerate", "enviable", "envious", "envy", "envying", "ephemera", "epic", "epicure", "epicycle", "epidemic", "epidermis", "epigram", "epilogue", "epiphany", "episode", "episodic", "epitaph", "epithet", "epitome", "epizootic", "epoch", "epode", "eponym", "equaling", "equality", "equalize", "equate", "equitable", "equity", "equivocal", "eradicate", "erect", "errant", "erratic", "erroneous", "error", "erstwhile", "erudite", "erudition", "escapes", "escaping", "escarole", "eschew", "espionage", "espy", "esquire", "essayed", "essence", "essential", "esteemed", "esthetic", "estimable", "estrange", "estrogen", "estuary", "etcetera", "etch", "etiquette", "eugenic", "eulogize", "eulogy", "euphemism", "euphony", "eureka", "evade", "evanesce", "evasion", "even", "evensong", "event", "eventful", "eventual", "ever", "evergreen", "evert", "everyone", "evict", "eviction", "evidence", "evil", "evince", "evincing", "evoke", "evolution", "evolve", "evolves", "examiner", "excavate", "exceed", "excel", "excellent", "excels", "excepting", "excerpt", "excess", "excitable", "excitedly", "exclude", "excluded", "exclusion", "excretion", "excursion", "excusable", "excuse", "execrable", "executive", "executor", "exegesis", "exemplar", "exemplary", "exemplify", "exempt", "exempted", "exert", "exhale", "exhaled", "exhaust", "exhume", "exigency", "exigent", "existence", "existing", "exists", "exit", "exits", "exodus", "exonerate", "exorcise", "exotic", "expand", "expanse", "expansion", "expansive", "expect", "expected", "expedient", "expedite", "expend", "expense", "experts", "expiate", "expired", "explain", "explicate", "explicit", "explode", "exploding", "exploiter", "explosion", "explosive", "export", "exposure", "expulsion", "extant", "extempore", "extend", "extension", "extensive", "extensor", "extenuate", "exterior", "external", "extinct", "extol", "extort", "extortion", "extradite", "extremist", "extremity", "extricate", "extrude", "exuberant", "exurbs", "eyed", "eyelash", "eyelid", "eyesight", "fabled", "fables", "fabricate", "fabulous", "face", "faceless", "facelift", "facet", "facetious", "facial", "facile", "facility", "facsimile", "faction", "factious", "factual", "faculty", "fading", "fail", "faint", "fairly", "faith", "fake", "falcon", "fallacy", "fallback", "fallen", "fallible", "falling", "fallow", "family", "famine", "famish", "famished", "famous", "fanatic", "fancier", "fancies", "fanciless", "fancy", "fanfare", "fanned", "fannies", "far", "farm", "farming", "fart", "fashion", "fastball", "faster", "fatalism", "fathers", "fathom", "fatties", "fatuous", "faulty", "faun", "favor", "fawn", "fax", "faxes", "fealty", "fear", "feasible", "feasted", "feathered", "feature", "features", "febrile", "fecund", "federate", "fedora", "feeling", "feels", "feint", "felicity", "feline", "fell", "fellow", "felon", "felonious", "felony", "female", "feminine", "femoral", "fen", "fenced", "fencing", "fend", "fender", "fernery", "ferns", "ferocious", "ferocity", "ferry", "fervent", "fervid", "fervor", "fessed", "festal", "festive", "fetches", "fete", "fetus", "feudal", "feudalism", "fevers", "fez", "fiasco", "fibrotic", "fibs", "fickle", "fiction", "fiddler", "fidelity", "fiducial", "fief", "fiendish", "fiercely", "fifth", "fig", "figure", "filament", "filberts", "filers", "filet", "fill", "filmed", "filmy", "filtered", "filth", "final", "finale", "finales", "finality", "finally", "finance", "financial", "financier", "finery", "finesse", "finger", "finish", "finisher", "finite", "fireman", "fireplace", "fires", "firm", "first", "fiscal", "fishbone", "fishery", "fishes", "fissure", "fisting", "fit", "fitful", "fitted", "fix", "fixes", "fixture", "fizzles", "fjord", "flag", "flagpole", "flagrant", "flags", "flame", "flamed", "flanker", "flare", "flared", "flash", "flasher", "flatboat", "flaunted", "flavor", "flawless", "fleck", "flection", "fledged", "fledgling", "fleece", "fleeting", "fleshing", "flexible", "flicked", "flicks", "flimsy", "flippant", "flirts", "flit", "floating", "flocked", "floe", "flogged", "floods", "floozie", "flora", "floral", "florid", "florist", "flout", "flowing", "flu", "fluctuate", "flue", "fluent", "fluential", "fluffier", "fluidly", "fluke", "flunk", "flush", "fluted", "flutist", "flux", "fly", "flyer", "focal", "focally", "focus", "foe", "fog", "foggy", "foible", "foist", "folds", "foliage", "folic", "folio", "fond", "fondle", "fondly", "fondness", "foolery", "foolishly", "foolproof", "footed", "foothill", "footless", "footloose", "footprint", "footrest", "foppery", "foppish", "foray", "forby", "forces", "forcible", "fore", "forearm", "forebear", "forebode", "forecast", "foreclose", "forecourt", "forego", "forehead", "foreign", "foreigner", "forejudge", "foreman", "forepeak", "foreplay", "forerun", "foresail", "foresee", "foreshore", "foresight", "forestry", "forests", "foretell", "foretold", "forever", "foreword", "forfeit", "forfend", "forger", "forgery", "forget", "forgiving", "forgo", "fork", "forkful", "forklift", "format", "formation", "former", "formula", "forsakes", "forswear", "fort", "forte", "forth", "fortify", "fortitude", "fortnight", "forum", "forwards", "fostered", "fourfold", "foursome", "fourth", "fracture", "fragile", "frail", "frailty", "frame", "franchise", "frantic", "frat", "fraternal", "fraud", "fraught", "fray", "frazzle", "freak", "freaking", "freakish", "freaks", "free", "freed", "freelance", "freely", "freemason", "freeplay", "freesia", "freezer", "freight", "frenetic", "frequency", "fresco", "freshness", "fret", "fretful", "fries", "frigging", "fright", "frighten", "frightful", "frigid", "frilled", "frills", "fringe", "frivolity", "frivolous", "frizz", "frizzle", "frizzy", "frontier", "frostbite", "frowzy", "froze", "frozen", "frugal", "frugally", "fruiting", "fruition", "fruity", "frying", "fueled", "fugacious", "fulcrum", "fulminate", "fulsome", "fume", "fumigate", "funds", "funereal", "fungible", "fungous", "fungus", "funk", "funkiest", "funnies", "funny", "furbish", "furious", "furled", "furlong", "furlough", "furnish", "furrier", "further", "furtive", "fusarium", "fuse", "fusible", "fusillade", "fussed", "futile", "futurist", "gabbling", "gabled", "gaffer", "gagged", "gaggle", "gaiety", "gaily", "gained", "gaining", "gait", "gala", "gale", "gallant", "gallantly", "galore", "galvanic", "galvanism", "galvanize", "gamble", "gambol", "game", "gamebird", "gamester", "gamine", "gaming", "gamut", "gardens", "gargle", "garish", "garland", "garlic", "garlicky", "garner", "garnish", "garrison", "garrote", "garrulous", "gaseous", "gastric", "gastritis", "gather", "gathered", "gaudiest", "gaudy", "gauge", "gauges", "gawk", "gawks", "gay", "geared", "geezer", "gemsbok", "gendarme", "genealogy", "generally", "generate", "generic", "genesis", "genetics", "geniality", "genital", "genitive", "genomes", "genteel", "gentile", "gentle", "gentry", "genuine", "geology", "germane", "germinate", "gestalt", "gestation", "gesture", "gestured", "getaway", "geyser", "ghastly", "gherkin", "ghosting", "ghoulish", "giant", "gibbous", "gibe", "giddy", "gift", "gigantic", "ginseng", "girdle", "girlie", "git", "give", "given", "giver", "giving", "glacial", "glacier", "gladden", "gladioli", "glanced", "glances", "glassware", "glazier", "gleam", "glen", "glided", "glimmer", "glimpse", "glints", "glioma", "glittery", "globes", "globose", "globular", "globules", "gloom", "gloried", "glorify", "glorious", "glory", "glow", "glut", "glutinous", "glycemic", "gnash", "goalpost", "goat", "goatee", "goats", "gobble", "godly", "gold", "golly", "goodbye", "goodie", "goofily", "gook", "gopher", "gordian", "gorge", "gory", "gosling", "goslings", "gossamer", "gourd", "gourmand", "gown", "graceless", "gradation", "grade", "graded", "graders", "gradient", "gradual", "graffiti", "grail", "granary", "grand", "grandeur", "grandiose", "grandmom", "grandpa", "granny", "grantee", "grantor", "granular", "granulate", "granule", "grape", "graph", "graphic", "grapple", "grasp", "grasping", "grassy", "gratify", "gratuity", "gravelly", "gravity", "grayed", "graying", "greasier", "green", "greenback", "greeter", "grenadier", "greying", "greyness", "gridlike", "grief", "grievance", "grievous", "grimace", "grind", "grins", "grip", "gripes", "gripped", "grisly", "grit", "groggy", "groom", "groomers", "grope", "groped", "grotesque", "grotto", "ground", "grounding", "group", "grouping", "grousing", "growls", "growths", "grudge", "grueling", "grumble", "grumbled", "grumbling", "grumpy", "grungy", "guard", "guardrail", "guerrilla", "guess", "guessing", "guidance", "guidebook", "guided", "guile", "guileless", "guilty", "guinea", "guise", "gullible", "gumbo", "gummed", "gumption", "gunfight", "gunmetal", "gunships", "gunshot", "gunshots", "gurney", "gust", "gusto", "gusty", "gutter", "guy", "guzzle", "gym", "gyrate", "gyrating", "gyre", "gyroscope", "habitable", "habitant", "habitual", "habitude", "hack", "hackle", "hackney", "hackwork", "haggard", "haggling", "hair", "hairline", "hairpin", "hairy", "halcyon", "hale", "halfback", "halibut", "hallowed", "hammer", "hammering", "hamming", "hamper", "hampers", "handbag", "handball", "handedly", "handily", "handling", "handmade", "handout", "handy", "handyman", "hang", "hanger", "hanker", "hankering", "haole", "happened", "harangue", "harass", "harbinger", "harbour", "hardening", "hardier", "hardihood", "hardly", "harm", "harmless", "harness", "harvest", "harvests", "hashed", "hassle", "hassling", "hastily", "hasty", "hat", "hatch", "hater", "hatless", "haunt", "have", "havoc", "haw", "hawker", "hawking", "hawkish", "hawthorn", "hazard", "hazardous", "haziness", "head", "headed", "headland", "headrest", "heads", "headship", "heady", "heal", "healed", "healthful", "hearken", "hearsay", "hearted", "hearten", "heartless", "heated", "heathen", "heavy", "hectares", "hedge", "hedges", "heedless", "heifer", "height", "heinie", "heinous", "heist", "helicity", "hellcat", "helm", "helo", "helpful", "hen", "henchman", "henpeck", "heptagon", "heptarchy", "her", "herbarium", "hereby", "heredity", "heresy", "heretic", "herewith", "heritage", "hernia", "heroic", "herstory", "hesitancy", "hesitant", "hetero", "heterodox", "hexagon", "hexapod", "heyday", "hiatus", "hibernal", "hickory", "hideaway", "hideous", "hie", "high", "higher", "hightail", "hiker", "hilarious", "hillbilly", "hillock", "hillside", "hinder", "hindmost", "hindrance", "hint", "hints", "hippest", "hirsute", "his", "hissy", "history", "hitherto", "hive", "hmong", "hoard", "hoarse", "hobbit", "hobnob", "hock", "hockey", "hog", "holdover", "hole", "hollowed", "hollowly", "homage", "home", "homed", "homely", "homemade", "homemaker", "homespun", "homework", "homily", "homonym", "homophone", "homos", "honoree", "honorific", "hood", "hoodwink", "hook", "hooks", "hoot", "hopeless", "hopscotch", "horde", "hornless", "horny", "horribly", "hosed", "hosiery", "hosing", "hospice", "host", "hostility", "hot", "hotline", "howitzer", "huckster", "huddled", "huff", "huffed", "hum", "human", "humane", "humanize", "humbling", "humbug", "humiliate", "humming", "hummocks", "humorless", "humping", "hunch", "hunger", "hungry", "hunk", "hunks", "hunt", "hunts", "hurdle", "hurdler", "hurt", "hurting", "hurtle", "husband", "hussar", "hustle", "hustled", "hustlers", "hybrid", "hydra", "hydraulic", "hydride", "hydrous", "hygiene", "hygienist", "hyphal", "hypnosis", "hypnotic", "hypnotism", "hypnotize", "hypocrisy", "hypocrite", "hysteria", "icebox", "icecream", "iceman", "ichthyic", "icily", "iciness", "icon", "icy", "ideal", "idealize", "identify", "idiom", "idolize", "idylls", "ignoble", "ignore", "ignored", "iguana", "ill", "illegal", "illegible", "illiberal", "illicit", "illiquid", "illness", "illogical", "illumine", "illusion", "illusive", "illusory", "image", "imaginary", "imagine", "imago", "imbalance", "imbibe", "imbroglio", "imbrue", "imitation", "imitator", "immature", "immense", "immensity", "immerse", "immersion", "immigrant", "immigrate", "imminence", "imminent", "immodest", "immoral", "immovable", "immune", "immutable", "impact", "impair", "impaired", "impale", "impaling", "impartial", "impassive", "impatient", "impede", "impedes", "impel", "impend", "imperil", "imperiled", "imperious", "impetuous", "impetus", "impiety", "impinges", "impious", "impliable", "implicate", "implicit", "implode", "implore", "imply", "impolite", "impolitic", "important", "importune", "imposed", "impotent", "imprints", "impromptu", "improper", "improved", "improvise", "imprudent", "impudence", "impugn", "impulse", "impulsion", "impulsive", "impunity", "impure", "impurity", "impute", "inability", "inactive", "inane", "inanimate", "inapt", "inaudible", "inboard", "inborn", "inbred", "incentive", "inception", "inceptive", "incessant", "inchmeal", "inchoate", "incidence", "incident", "incipient", "incise", "incisor", "incite", "inciting", "include", "included", "incorrect", "increment", "indelible", "indepth", "index", "indians", "indicant", "indicator", "indict", "indigence", "indigent", "indignant", "indignity", "indolence", "indolent", "indoors", "induct", "induction", "indulgent", "inebriate", "inedible", "ineffable", "inept", "inequity", "inert", "inertia", "infamous", "infamy", "infancy", "infected", "inference", "inferior", "infernal", "infest", "infidel", "infinite", "infinity", "infirm", "infirmary", "infirmity", "inflamed", "inflects", "influence", "influx", "informant", "infringe", "infuse", "infusion", "ingenious", "ingenuity", "ingenuous", "ingraft", "ingrate", "inhabited", "inherence", "inherent", "inhibit", "inhuman", "inhume", "inimical", "iniquity", "initial", "initiate", "inject", "injustice", "inkling", "inky", "inland", "inlay", "inlet", "inmost", "innards", "innocuous", "innovate", "innuendo", "inquire", "inquiry", "inroad", "inroads", "inscribe", "insecure", "insertion", "inside", "insidious", "insight", "insinuate", "insipid", "insistent", "insolence", "insolent", "insomnia", "insomniac", "inspect", "inspector", "inspiring", "instance", "instant", "instigate", "instill", "insular", "insulate", "insult", "insulted", "insure", "insured", "insurgent", "intake", "integrity", "intellect", "intensely", "intension", "intensive", "intention", "interact", "intercede", "intercept", "interdict", "interface", "interim", "interior", "interlude", "intermit", "intermix", "interplay", "interpose", "interpret", "interrupt", "intersect", "interval", "intervale", "intervene", "interview", "intestacy", "intestate", "intestine", "intimacy", "intrepid", "intricacy", "intricate", "intrigue", "intrinsic", "intromit", "introvert", "intrude", "intrusion", "intrusive", "intubate", "intuition", "inundate", "inure", "invades", "invalid", "invasion", "invective", "inveigh", "inventive", "inverse", "inversion", "invert", "investing", "investor", "invidious", "invitee", "invoke", "involve", "inward", "inwardly", "ionized", "iota", "ipods", "irascible", "irate", "ire", "irk", "irksome", "ironclad", "ironed", "ironing", "irony", "irradiate", "irrigant", "irrigate", "irritable", "irritancy", "irritant", "irritate", "irruption", "isle", "islet", "isobar", "isolate", "isolated", "issuers", "issuing", "italic", "itch", "itches", "itemized", "itinerant", "itinerary", "itinerate", "jab", "jacked", "jail", "jailing", "jangle", "jar", "jargon", "jarring", "jaundice", "jauntily", "jawed", "jazz", "jazzy", "jealousy", "jeans", "jelly", "jested", "jewel", "jibe", "jiffy", "jiggle", "jiggles", "jigs", "jilted", "jingled", "jingoism", "jinx", "jockey", "jocks", "jocose", "jocular", "jogger", "joggle", "join", "joining", "joins", "joke", "jolly", "jostle", "jot", "joust", "jousting", "jovial", "juche", "judgment", "judicial", "judiciary", "judicious", "juggle", "jugglery", "jugular", "juice", "juicy", "juke", "jumble", "jumbled", "jump", "jumpsuit", "junction", "juncture", "junior", "juniper", "junker", "junket", "junky", "junta", "juntas", "juridical", "juristic", "juror", "jutting", "juvenile", "juxtapose", "kales", "kaput", "karate", "karma", "keen", "keeps", "keepsake", "kerchief", "kernel", "kerygma", "keystone", "khaki", "khakis", "kibbles", "kickball", "killing", "kiln", "kiloliter", "kilometer", "kilowatt", "kilted", "kimono", "kind", "kingling", "kingship", "kinking", "kinks", "kinsfolk", "kinsman", "kirtle", "kissed", "kitty", "knavery", "knead", "kneecaps", "kneejerk", "knife", "knight", "knitting", "knocked", "knot", "knotty", "knower", "knowingly", "knowledge", "knuckled", "kumbaya", "labeled", "labelled", "labial", "laborious", "labyrinth", "lace", "lacerate", "lack", "lactation", "lacteal", "lactic", "laddie", "ladle", "ladybugs", "laggard", "lags", "laid", "lake", "lambast", "lame", "lance", "landform", "landlord", "landmark", "landscape", "languid", "languor", "lap", "lapdog", "lapel", "lapse", "larder", "larders", "lark", "lash", "lashed", "lassie", "lassies", "lately", "latency", "latent", "later", "lateral", "latish", "lattice", "laud", "laudable", "laudation", "laudatory", "laughably", "laundress", "laureate", "lave", "lavish", "law", "lawfully", "lawgiver", "lawmaker", "lawsuit", "lax", "laxative", "lay", "laydown", "layman", "laze", "laziness", "lazy", "lea", "leadeth", "leaflet", "leafy", "leak", "leaked", "leaker", "leakers", "leaky", "leapers", "least", "leaven", "leaver", "lebanese", "leech", "leeward", "leftism", "legacy", "legalize", "legalized", "legally", "legging", "legible", "legionary", "legislate", "legume", "leisure", "lend", "lenders", "leniency", "lenient", "lens", "leonine", "leopard", "leprosy", "less", "lessen", "lest", "lethargy", "lettered", "leukemia", "levee", "lever", "leverage", "leviathan", "levity", "levy", "lewd", "lexicon", "liable", "liaisons", "libel", "liberal", "liberate", "librarian", "library", "licensed", "licit", "lick", "licorice", "liege", "lien", "lies", "lieu", "lifeless", "lifelike", "lifelong", "lifes", "lifetime", "ligament", "ligature", "light", "lightbulb", "lighter", "ligneous", "lik", "like", "likely", "liken", "likened", "likewise", "liking", "lilt", "liminal", "limousine", "limp", "limply", "limpness", "limps", "linear", "liner", "lingered", "lingo", "lingua", "lingual", "linguist", "liniment", "linseed", "lip", "liquefy", "liqueur", "liquidate", "liquor", "listed", "listen", "listened", "listless", "lite", "literacy", "literal", "literally", "literary", "lithe", "lithesome", "lithotype", "litigant", "litigate", "litigious", "litter", "littoral", "liturgy", "live", "liven", "livened", "liver", "livid", "loaf", "loam", "loamy", "loans", "loath", "loathe", "lobotomy", "local", "localized", "located", "locative", "loch", "loci", "lockers", "lockouts", "locks", "lode", "lodge", "lodgepole", "lodgers", "lodgment", "lofty", "logger", "logic", "logical", "logically", "logician", "loiterer", "lollipop", "long", "longer", "longevity", "longingly", "longitude", "looked", "loosely", "loosen", "loot", "lopping", "lordling", "lore", "losing", "loss", "lot", "lotus", "lough", "lounge", "lounges", "louse", "lousy", "lout", "louts", "lovable", "lovably", "loveable", "lovelorn", "loving", "lower", "lowly", "loyalist", "loyally", "loyalty", "lubricate", "lucid", "lucrative", "ludicrous", "lug", "lugged", "lukewarm", "lull", "lumber", "luminary", "luminous", "lunacy", "lunar", "lunatic", "lunch", "lune", "lupine", "lupines", "lurid", "lurking", "luscious", "lustful", "lustrous", "luxuriant", "luxuriate", "luxury", "lye", "lying", "lynch", "lyre", "lyres", "lyric", "ma'am", "machinery", "machinist", "mackerel", "macrocosm", "madden", "maestro", "magenta", "magic", "magical", "magician", "maglev", "magnate", "magnet", "magnetize", "magnitude", "maharaja", "mailbox", "mailing", "main", "mainline", "maintain", "maize", "makeshift", "makeup", "malady", "malaria", "malawian", "malay", "malign", "malignant", "malleable", "mallet", "malt", "malted", "maltreat", "mambo", "mammoth", "managed", "mandarin", "mandate", "mandated", "mandatory", "mane", "maneuver", "manger", "mangled", "mangos", "mangy", "manhole", "manhunt", "mania", "maniac", "manifest", "manifesto", "manlike", "manliness", "manna", "manned", "mannerism", "manor", "mans", "mantel", "mantle", "manumit", "map", "mappings", "marble", "marbled", "march", "marchers", "marijuana", "marinade", "marine", "maritime", "marked", "markers", "markings", "marksman", "marmalade", "maroon", "married", "marry", "martial", "martian", "martinis", "martyrdom", "marvel", "marxism", "mascara", "masked", "masonry", "massacre", "massage", "masses", "masseurs", "massive", "mastery", "mastiffs", "mastoid", "matched", "material", "maternal", "maternity", "matinee", "matricide", "matrimony", "matrix", "matter", "mature", "maudlin", "mausoleum", "maverick", "mawkish", "maxim", "maximize", "may", "maze", "mead", "meager", "meagerly", "mean", "meander", "meanies", "means", "measured", "measures", "mechanics", "medallion", "meddling", "medial", "mediate", "medicate", "medicine", "medieval", "mediocre", "meditate", "medium", "medley", "meek", "melded", "meliorate", "mellow", "melodious", "melodrama", "melted", "memento", "memorable", "men", "menace", "menagerie", "mend", "mendicant", "menfolk", "mental", "mentality", "mentally", "menthol", "mention", "mentor", "mentored", "mercenary", "merciful", "merciless", "mere", "merge", "merited", "mesmerize", "messed", "messieurs", "messing", "mestizo", "metal", "metaphor", "mete", "metonymy", "metric", "metronome", "mettle", "micro", "microchip", "microcosm", "middleman", "midges", "midlife", "midline", "midpoint", "midriff", "midriffs", "midsole", "midsummer", "midwife", "mien", "might", "mignon", "migrant", "migrate", "migration", "migratory", "mikes", "mil", "mileage", "miles", "milieu", "militant", "militate", "militia", "milk", "milking", "milky", "millet", "milling", "millionth", "mime", "mimic", "mimics", "minaret", "minces", "mind", "mindless", "mined", "mineral", "mingle", "miniature", "minimize", "minion", "ministry", "minivans", "minority", "minuet", "minus", "minute", "minutia", "mirage", "misbehave", "miscount", "miscreant", "misdeed", "miser", "miserly", "misfire", "misfit", "mishap", "mishmash", "mislaid", "mislay", "mismanage", "misnomer", "misogamy", "misogyny", "misplace", "misplaced", "misrule", "missal", "missile", "missive", "mistily", "mistrust", "misty", "misuse", "mite", "miter", "mitigate", "mixed", "mixture", "mnemonics", "moat", "mobocracy", "moccasin", "mocha", "mock", "mockery", "model", "moderate", "moderator", "modernity", "modernize", "modify", "modish", "modulate", "moduli", "moistly", "molar", "molecule", "molehill", "mollify", "molt", "momentary", "momentous", "momentum", "monarch", "monarchy", "monastery", "monetary", "monger", "mongrel", "monied", "monition", "monitory", "monks", "monocracy", "monogamy", "monogram", "monograph", "monolith", "monologue", "monomania", "monopoly", "monotone", "monotony", "monsieur", "monsoon", "monster", "mood", "moonbeam", "moonlit", "moored", "mooring", "mop", "moral", "morale", "moralist", "morality", "moralize", "moray", "morbid", "mordant", "more", "moreover", "morgue", "moribund", "mormon", "morn", "morning", "morose", "morph", "morsel", "mortar", "mortician", "mortise", "mosaic", "moslems", "motley", "motor", "motorcar", "motorist", "motto", "mound", "mounted", "mounting", "mourn", "mournful", "mouser", "mouth", "mouthed", "mouthful", "mouton", "move", "movement", "mower", "muddle", "muddled", "muffle", "muffler", "mug", "mulatto", "muleteer", "mull", "mullah", "multiform", "multiplex", "multiply", "mundane", "municipal", "murres", "muscle", "music", "musicale", "musically", "muskie", "mussels", "mustache", "muster", "mutagens", "mutation", "mute", "muted", "mutilate", "mutilated", "mutiny", "muzzling", "myriad", "mystic", "mystical", "myth", "mythology", "nabbed", "naked", "nameless", "namibian", "naming", "nanny", "nap", "naphtha", "narcos", "narrate", "narration", "narrative", "narrator", "narrow", "narrowed", "narrowly", "nasal", "nascent", "natal", "national", "native", "natty", "naturally", "naught", "naughty", "nausea", "nauseate", "nauseous", "nautical", "naval", "nave", "navel", "navies", "navigable", "navigate", "nay", "nearing", "nearside", "neaten", "neatnik", "nebula", "necessary", "necessity", "neck", "necklace", "necktie", "necrology", "necropsy", "necrosis", "nectar", "nectarine", "needed", "needy", "nefarious", "negate", "negation", "negligee", "negligent", "neighbor", "neocracy", "neology", "neophyte", "nerdy", "nestle", "nestled", "nestling", "nests", "net", "netball", "nettle", "network", "neural", "neurology", "neuter", "neutered", "neutral", "newborn", "newcomer", "news", "newsman", "newsstand", "next", "nexus", "nicety", "nicked", "nigerian", "niggardly", "nightmare", "nihilist", "nil", "nimble", "nine", "nit", "nitrate", "nitride", "nobody", "nocked", "nocturnal", "noise", "noiseless", "noisome", "noisy", "nomad", "nomads", "nomic", "nominal", "nominate", "nominee", "nonentity", "nonfarm", "nonmember", "nonpareil", "nonsense", "nonstop", "noon", "noose", "nope", "norm", "normalcy", "normally", "norse", "northern", "nosegay", "nostalgia", "nostalgic", "nostrum", "not", "notch", "notched", "nothing", "notion", "notorious", "novelty", "novice", "nowadays", "nowhere", "noxious", "nuance", "nub", "nubbly", "nubians", "nucleon", "nucleus", "nude", "nudge", "nudity", "nugatory", "nuggets", "nuisance", "nuking", "numeracy", "numerical", "numerous", "nunnery", "nuptial", "nurse", "nurture", "nurtured", "nutriment", "nutritive", "nuttier", "oaken", "oaks", "oakum", "oar", "obdurate", "obeisance", "obelisk", "obese", "obesity", "obey", "obituary", "objection", "objective", "objector", "obligate", "oblique", "oblivion", "oblong", "obnoxious", "obsequies", "observant", "obsolete", "obstinacy", "obstruct", "obtrude", "obtrusive", "obtuse", "obvert", "obviate", "occasion", "occlude", "occult", "occupant", "occupied", "occur", "oceanic", "ochre", "octagon", "octave", "octavo", "octet", "ocular", "oculist", "oddballs", "oddity", "ode", "odious", "odium", "odorants", "odorous", "oeuvre", "off", "offed", "offended", "offensive", "offhand", "officiate", "officious", "offload", "offshoot", "offsides", "ogre", "oil", "oiled", "ointment", "okapi", "okay", "oke", "oldie", "oldies", "olfactory", "omega", "omelette", "omen", "omicron", "ominous", "omission", "once", "oncology", "onerous", "ongoing", "onion", "online", "onrush", "onset", "onslaught", "onstage", "onus", "ooze", "opals", "opaque", "open", "opened", "openness", "operant", "operate", "operative", "operator", "operetta", "opinion", "opinions", "opium", "opponent", "opportune", "opposing", "opposite", "oppress", "optic", "optician", "optics", "optimism", "optimist", "option", "optometry", "opulence", "opulent", "oracular", "oral", "orange", "orate", "oration", "orator", "oratorio", "oratory", "orb", "orbiting", "ordains", "ordeal", "order", "ordinal", "ordinary", "ordnance", "ore", "orgies", "origin", "original", "originate", "ornate", "ornately", "orphanage", "orthodox", "orthodoxy", "oscillate", "osculate", "osmosis", "osprey", "ossify", "ostracism", "ostracize", "ostrich", "other", "others", "otter", "ought", "oust", "out", "outback", "outbreak", "outburst", "outcast", "outcome", "outcry", "outdo", "outdoor", "outfit", "outfox", "outlast", "outlasts", "outlaw", "outlawed", "outlay", "outlive", "outpaced", "outpost", "outrage", "outraged", "outreach", "outride", "outrigger", "outright", "outset", "outside", "outskirt", "outstrip", "outward", "outweigh", "oval", "ovary", "over", "overcome", "overdo", "overdose", "overeat", "overhang", "overhead", "overjoyed", "overlap", "overleap", "overload", "overlook", "overlord", "overpass", "overpay", "overpower", "overreach", "overrun", "oversee", "overseer", "oversold", "overtax", "overthrow", "overtime", "overtone", "overtook", "overture", "overview", "owner", "pacify", "package", "packet", "pact", "padding", "paddle", "pagan", "pageant", "paid", "pain", "painfully", "painting", "pair", "palate", "palatial", "palest", "palette", "palinode", "pall", "pallet", "palliate", "pallid", "palm", "palpable", "palsy", "paly", "pamper", "pamphlet", "panacea", "pandemic", "panegyric", "panel", "pangs", "panic", "panicky", "panoply", "panoptic", "panorama", "pantheism", "pantomime", "papacy", "papists", "papyri", "papyrus", "par", "parable", "parabolic", "parachute", "paradise", "paradox", "paragon", "parallel", "paralysis", "paralyze", "paramount", "paramour", "paranoid", "parasite", "parched", "pardons", "pare", "parentage", "parenting", "pares", "parfaits", "parietal", "parish", "parisian", "parities", "parity", "parlance", "parlay", "parley", "parlor", "parody", "paroxysm", "parricide", "parrot", "parry", "parse", "parsing", "part", "partible", "partisan", "partition", "parts", "pass", "passible", "passing", "passive", "past", "pastoral", "pat", "patched", "patent", "paternal", "paternity", "pathos", "patiently", "patina", "patriarch", "patrician", "patrimony", "patriot", "patriots", "patronize", "patter", "patting", "paucity", "pauper", "pauperism", "pave", "pavilion", "pawn", "pawned", "pawnshop", "payable", "payee", "peaceable", "peaceful", "pearl", "pec", "peccable", "peccant", "pectoral", "pecuniary", "pedagogue", "pedagogy", "pedal", "pedant", "peddle", "peddler", "pedestal", "pedigree", "peek", "peeks", "peels", "peep", "peer", "peerage", "peerless", "peeve", "peeved", "peeves", "peevish", "peg", "pegboard", "pelagic", "pellagra", "pellucid", "penalty", "penance", "penchant", "pendant", "pendants", "pending", "pendulous", "pendulum", "penetrate", "penitence", "penitent", "pennant", "penned", "pension", "pentad", "pentagon", "pentagram", "penthouse", "penurious", "penury", "peopled", "per", "perceive", "percolate", "perennial", "perfidy", "perforate", "perform", "perfumery", "perhaps", "perigee", "perineal", "perjure", "perjury", "permanent", "permeate", "permit", "peroxide", "perp", "persevere", "persist", "personage", "personal", "personify", "personnel", "perspire", "persuade", "pertinent", "perturb", "perusal", "pervade", "pervasion", "pervasive", "perverse", "pervert", "pervious", "pesky", "pestilent", "peter", "petrify", "petty", "petulance", "petulant", "pewter", "pharmacy", "phase", "philander", "philately", "philology", "phonemic", "phonetic", "phonic", "phonogram", "phonology", "phony", "physicist", "physics", "physique", "pianists", "pianos", "piazzas", "picayune", "piccolo", "picked", "picket", "picky", "piddling", "piece", "piecemeal", "pier", "piercing", "piety", "pig", "pigeon", "pile", "pillage", "pillaged", "pillar", "pillbox", "pillory", "pillowy", "pilot", "pimp", "pimped", "pin", "pincers", "pinchers", "pine", "pinecone", "pinheads", "pinions", "pinker", "pinnacle", "pinochle", "pinot", "pinstripe", "pinup", "pioneer", "pious", "pipa", "pipe", "pipefish", "piping", "pique", "piracy", "piranha", "piss", "pissing", "piste", "pistils", "pistol", "piston", "pitch", "pitchers", "pitching", "piteous", "pith", "pitiable", "pitiful", "pitifully", "pitiless", "pitot", "pittance", "pivoting", "pizza", "pizzas", "placate", "placid", "plagued", "plait", "plan", "plant", "platitude", "plaudit", "plausible", "playback", "playful", "playfully", "playing", "plea", "plead", "pleasant", "pleasing", "pleated", "plebeian", "pled", "pledgee", "pledgeor", "plenary", "plenitude", "plenteous", "plenty", "plethora", "pleura", "pliant", "plight", "plod", "plot", "plotted", "plover", "plowman", "pluck", "plug", "plumb", "plumber", "plume", "plumed", "plummet", "plump", "plunder", "plunger", "plunked", "plural", "plurality", "plusses", "plutonium", "pneumatic", "poacher", "pocked", "pocketed", "poesy", "poet", "poetaster", "poetic", "poetics", "poignancy", "poignant", "point", "poise", "poison", "poisoned", "poke", "polar", "polarity", "polemics", "police", "policy", "polish", "polished", "politic", "politics", "polled", "pollen", "pollute", "polluter", "polyarchy", "polycracy", "polygamy", "polyglot", "polygon", "pommel", "pomposity", "pompous", "poncho", "ponder", "ponderous", "ponds", "pontiff", "pontiffs", "pontoon", "poof", "pooled", "pooping", "poorly", "populace", "popularly", "populist", "populous", "pored", "porous", "port", "portable", "portend", "portent", "portfolio", "portion", "pose", "posit", "position", "positive", "posse", "posses", "possess", "possessor", "possible", "possibly", "postdate", "poster", "posterior", "postwar", "potassium", "potency", "potent", "potentate", "potential", "potholed", "potion", "potted", "pounding", "powder", "powdered", "powerless", "practiced", "praising", "prancing", "prate", "prattle", "pray", "preacher", "preachy", "preamble", "precede", "precedent", "precipice", "precise", "precision", "preclude", "precursor", "precut", "predatory", "predicate", "predict", "preempt", "preempts", "preengage", "preexist", "preface", "prefatory", "prefect", "prefer", "prefers", "prefix", "prejudice", "prelacy", "prelate", "prelude", "premature", "premier", "premise", "premium", "premiums", "prenatal", "preoccupy", "preordain", "prepaid", "presage", "presages", "preschool", "prescient", "prescript", "preserve", "presided", "pretend", "pretender", "pretest", "pretext", "pretty", "pretzel", "prevalent", "preview", "prey", "prickle", "pride", "prided", "priests", "priggish", "prim", "prima", "primate", "prime", "primer", "primeval", "primitive", "primrose", "principal", "principle", "print", "printer", "priory", "prisms", "pristine", "private", "privateer", "privilege", "privity", "privy", "prized", "prizing", "pro", "proactive", "probate", "probation", "probe", "probes", "probity", "procedure", "proceed", "proceeds", "processed", "proclaim", "proctor", "prodigal", "prodigy", "producer", "producing", "profane", "professor", "proffer", "profile", "profiteer", "profs", "profuse", "progeny", "program", "project", "projector", "prolific", "prolix", "prologue", "prolong", "prolonged", "prom", "promenade", "prominent", "promise", "promised", "promoter", "prompting", "promptly", "prone", "proofread", "propagate", "propane", "propel", "propeller", "property", "prophecy", "prophesy", "proposed", "proposes", "propound", "propriety", "prorated", "prosaic", "proscribe", "proselyte", "prosody", "prospect", "prostrate", "protean", "protect", "protector", "protege", "protester", "protocol", "prototype", "protract", "protrude", "proven", "proverb", "provident", "provider", "proviso", "provokes", "prow", "prowess", "prowl", "proxy", "prudence", "prudery", "prudish", "pruned", "prurient", "pseudo", "pseudonym", "psychic", "psychotic", "psychs", "puberty", "pudgy", "puerile", "puffs", "puissant", "pullback", "pulley", "pulling", "pulmonary", "pumas", "punches", "punctual", "puncture", "punctured", "pungency", "pungent", "punish", "punished", "punishing", "punitive", "punt", "pupa", "pupilage", "purchase", "purchased", "purebred", "purgatory", "puritan", "purity", "purl", "purloin", "purport", "purpose", "purrs", "pursued", "pursuer", "purveyor", "push", "pushcart", "pushers", "puzzle", "puzzles", "pyre", "pyromania", "pyx", "quackery", "quad", "quadrant", "quadrate", "quadruple", "quaint", "quainter", "quaintly", "qualify", "qualm", "quandary", "quant", "quantity", "quarrel", "quarter", "quarterly", "quartet", "quarto", "quartz", "quay", "queerest", "quelled", "queried", "querulous", "query", "question", "queue", "quibble", "quick", "quickly", "quiescent", "quiet", "quietism", "quietly", "quietus", "quills", "quintet", "quirk", "quit", "quite", "quixotic", "quoted", "rabbis", "rabid", "raccoons", "racist", "racy", "radiance", "radiate", "radical", "radiology", "radix", "raffle", "raft", "rage", "ragged", "raging", "raid", "raillery", "rainy", "raise", "rake", "raked", "ram", "rambler", "ramified", "ramify", "ramose", "rampaging", "rampant", "rampart", "ramparts", "rancor", "range", "rank", "ranked", "rankest", "rankle", "rankled", "ranks", "rap", "rapacious", "rapid", "rapine", "rapper", "rappers", "rapt", "raptorial", "rapturous", "rarebit", "rasa", "rash", "rasping", "raspy", "rat", "rated", "rather", "ratified", "ration", "rational", "rationed", "ratted", "rattles", "ratty", "raucous", "raunchy", "ravage", "ravaged", "ravenous", "raves", "ravine", "raving", "ravish", "raw", "reachable", "reactant", "reaction", "readable", "readily", "readjust", "ready", "realism", "realist", "realize", "realizes", "realm", "realtime", "realtor", "reamer", "reaper", "rear", "rearmed", "rearrange", "reasoned", "reassign", "reassure", "reawaken", "rebelled", "rebounds", "rebuff", "rebuffs", "rebuild", "rebuilt", "rebuke", "rebut", "rec", "recant", "recapture", "recast", "recede", "receding", "receive", "recent", "receptive", "recessive", "reck", "reckless", "reckons", "reclaim", "recline", "recluse", "reclusive", "reclusory", "recognize", "recoil", "recollect", "recording", "recouped", "recourse", "recover", "recreant", "recreate", "recruit", "rectify", "rectitude", "recur", "recure", "recurrent", "recused", "redder", "redeploy", "redesign", "redolence", "redolent", "redound", "redress", "reducible", "redundant", "reef", "refer", "referable", "referee", "refereed", "reference", "referrer", "refigure", "refinery", "reflected", "reflector", "reform", "reformer", "refract", "refrains", "refresh", "refusal", "refused", "refute", "refutes", "regal", "regale", "regalia", "regality", "regent", "regicide", "regime", "regimen", "regiment", "regnant", "regress", "regretful", "regularly", "rehabbed", "rehash", "rehearse", "reign", "reimburse", "rein", "reindeer", "reinstate", "reiterate", "reject", "rejected", "rejection", "rejoin", "relapse", "relapses", "relaxed", "relay", "relaying", "released", "relegate", "relent", "relevant", "reliable", "reliance", "reliant", "relies", "relieved", "reliquary", "relish", "reload", "reluctant", "remanded", "remarry", "remedy", "remiss", "remission", "remodel", "remotely", "renames", "render", "rendition", "renege", "renewal", "renovate", "renovated", "rent", "rents", "reopening", "repaint", "repair", "repairman", "reparable", "repartee", "repeal", "repel", "repellent", "repertory", "repine", "replace", "replay", "replenish", "replete", "replica", "replied", "reply", "report", "reports", "reposed", "reprehend", "repress", "repressed", "reprieve", "reprimand", "reprisal", "reprise", "reprobate", "reprocess", "reproduce", "reproof", "reptilian", "repudiate", "repugnant", "repulse", "repulsed", "repulsive", "repute", "request", "requested", "requiem", "requisite", "requital", "requite", "rerun", "resale", "rescind", "research", "reseat", "resent", "reserved", "reservoir", "reset", "resettle", "residue", "residuum", "resilient", "resistant", "resistive", "resolved", "resonance", "resonate", "resource", "respect", "respects", "respite", "rested", "restored", "rests", "resulted", "resupply", "resurgent", "retained", "retake", "retaliate", "retarded", "retch", "retched", "retells", "retention", "retest", "retests", "reticence", "reticent", "retinue", "retiring", "retitle", "retort", "retouch", "retrace", "retraces", "retract", "retrench", "retrieve", "retro", "return", "reunion", "reunite", "revealed", "reveler", "revelry", "revenant", "revenue", "revere", "reverend", "reverent", "reverse", "reversed", "reversion", "revert", "reverted", "review", "reviewer", "revile", "revisal", "revise", "revive", "revived", "revoke", "revoked", "revolting", "revolved", "revulsion", "rewarm", "rework", "rezoned", "rhapsodic", "rhapsody", "rhetoric", "rhinitis", "rhyme", "ribald", "ribbed", "ricochet", "riddance", "ridge", "ridicule", "riding", "rife", "riff", "riffing", "rig", "rightful", "rights", "rigidity", "rigmarole", "rigor", "rigorous", "rilles", "ringworm", "rip", "ripeness", "ripping", "ripple", "ripplet", "riser", "risible", "rituals", "ritzy", "rivalry", "riverbed", "rivets", "rivulet", "roadblock", "roast", "robe", "robot", "robust", "robusta", "rockers", "rodeo", "rogue", "roll", "roller", "rolloff", "rollouts", "romanced", "rondo", "rookery", "roommate", "rooms", "roosted", "root", "rope", "ropes", "rose", "rosemary", "rotary", "rotate", "rote", "rotten", "rotting", "rotund", "roughy", "round", "roundel", "rounding", "roundup", "roused", "rout", "routed", "routs", "rowdy", "royal", "royally", "rubato", "rubber", "rubric", "ruching", "ruckus", "rue", "ruffian", "ruffle", "ruffled", "rugby", "ruled", "ruminant", "ruminate", "rumor", "runaway", "runny", "runs", "rupee", "rupture", "rural", "rushed", "rust", "rustic", "rusts", "rusty", "rut", "ruth", "ruthless", "rutting", "saber", "sabre", "sac", "sack", "sacred", "sacrifice", "sacrilege", "sad", "saddle", "safari", "safaris", "safeguard", "safest", "sagacious", "sage", "sahelian", "sailor", "sainted", "salable", "salacious", "salami", "salary", "salience", "salient", "saline", "saltine", "salutary", "salvage", "salve", "salvo", "salvos", "same", "sameness", "sanction", "sanctity", "sand", "sandwich", "sane", "sanguine", "sap", "sapid", "sapience", "sapient", "saps", "sarcasm", "sardonic", "sari", "saris", "sartorial", "sashay", "sashays", "satiate", "satire", "satiric", "satirize", "saturate", "satyr", "sauce", "savage", "savaged", "savagely", "save", "savior", "savor", "savour", "saxon", "say", "scabbard", "scabs", "scalawag", "scale", "scaled", "scamming", "scams", "scapegoat", "scarcely", "scarcity", "scarfed", "scarier", "scarily", "scarred", "scat", "scenery", "scented", "schemed", "scholarly", "school", "schooled", "schooling", "schools", "science", "scimitar", "scintilla", "scoffed", "scofflaw", "scolded", "scone", "scoop", "scooting", "scope", "scoped", "scorching", "score", "scorer", "scoring", "scorn", "scorned", "scottish", "scoundrel", "scourged", "scouted", "scouting", "scowls", "scraggly", "screamer", "screeds", "screened", "screw", "scribble", "scribe", "scrim", "scrimp", "scrimped", "scrip", "script", "scrod", "scrubbed", "scrunch", "scruple", "scrutiny", "scum", "scuttle", "scuttled", "scythe", "seal", "sealed", "seance", "seaport", "seaports", "sear", "search", "season", "seasonal", "seatings", "seaweeds", "sebaceous", "secant", "secede", "seceded", "secession", "seclude", "seclusion", "secondary", "secondly", "secrecy", "secretary", "secrete", "secretive", "sect", "section", "secure", "sedate", "sedentary", "sediment", "sedition", "seditious", "seduce", "sedulous", "seeking", "seer", "seethe", "segment", "seignior", "seize", "seized", "selective", "selfish", "seller", "semblance", "seminar", "seminary", "senator", "senile", "senility", "seniority", "sensation", "sense", "sensible", "sensitive", "sensorium", "sensual", "sensuous", "sentence", "sentience", "sentient", "sentinel", "separable", "separate", "sepulcher", "sequel", "sequence", "sequent", "sequester", "serapes", "serenade", "sergeant", "serial", "seriously", "servant", "service", "servitude", "set", "setup", "sever", "severance", "severely", "severity", "sewing", "sexist", "sextet", "sextuple", "shabbily", "shade", "shades", "shading", "shaggy", "shaken", "shakeout", "shaker", "shakes", "shaky", "shallot", "shambles", "shame", "shanks", "shape", "shapely", "sharing", "sharpener", "sheaf", "sheath", "sheer", "shelf", "shell", "shellfish", "shelling", "shelter", "sherbet", "shift", "shiftless", "shimmied", "shimmy", "shin", "shingled", "ship", "shipwreck", "shirked", "shocking", "shod", "shoehorn", "shoot", "shootout", "shored", "shoreline", "short", "shortage", "shortly", "shotgun", "shoulder", "shove", "show", "showcase", "shower", "showman", "showpiece", "showtime", "shred", "shrewd", "shrewdly", "shriek", "shrink", "shrinkage", "shrivel", "shrubbery", "shrug", "shrugs", "shrunken", "shucks", "shuffle", "shutdown", "shutouts", "shutters", "shylock", "shyness", "sibilance", "sibilant", "sibilate", "sibling", "sick", "sickle", "sickness", "sickos", "sickout", "sidelong", "sidereal", "sidling", "siege", "sieges", "sieving", "sift", "sifted", "sighed", "sight", "sightseer", "signup", "silence", "silenced", "silkworm", "sill", "silly", "silos", "silt", "similar", "simile", "simple", "simplify", "simulate", "sinecure", "sinewy", "sinful", "sinfully", "singe", "singeing", "single", "sinister", "sinuosity", "sinuous", "sinus", "sir", "siren", "sirocco", "sit", "site", "situate", "sixteen", "sixteenth", "sixth", "size", "sizzled", "skald", "skate", "skater", "skeleton", "skeptic", "sketch", "skew", "skewed", "skewness", "skiff", "skim", "skimmed", "skirmish", "sky", "skycap", "skyways", "slack", "slain", "slash", "slashed", "slave", "slayer", "sleaze", "sleazy", "sledge", "sleeps", "sleighs", "sleight", "slew", "slews", "slider", "slight", "slimmed", "slimy", "sling", "slippage", "slipped", "slipping", "slob", "slobby", "slosh", "slothful", "slovaks", "slow", "sluggard", "slugger", "slugging", "slum", "slunk", "slurped", "slurred", "slut", "sly", "smacks", "small", "smartly", "smash", "smashed", "smeared", "smell", "smelting", "smock", "smoke", "smuggled", "smugly", "snack", "snacked", "snags", "snapped", "snarl", "snatch", "sneak", "sneeze", "snide", "snipe", "snippet", "snob", "snook", "snooze", "snorer", "snorts", "snowbank", "snowman", "snowmen", "snowy", "snuggle", "soaked", "soap", "soapy", "sobbed", "soberly", "sobriquet", "sociable", "socialism", "socialist", "socials", "sociology", "sodas", "sodomize", "software", "soil", "solace", "solar", "solder", "soldier", "soldiers", "sole", "solecism", "solemnly", "solicitor", "solidity", "soliloquy", "solitary", "solstice", "soluble", "solvable", "solvent", "somatic", "somber", "somebody", "somnolent", "sonata", "sonic", "sonnet", "sonorous", "soot", "soothes", "sop", "sophism", "sophistry", "soprano", "sorbet", "sorcery", "sordid", "sought", "soulmate", "sound", "sounds", "sourwood", "southern", "souvenir", "sow", "space", "spaceship", "spacing", "spacious", "spackle", "spade", "spake", "span", "spangled", "spank", "spar", "spark", "sparkly", "sparring", "sparse", "spasm", "spasmodic", "spatula", "spatulas", "spawn", "spawns", "spear", "special", "specialty", "specie", "species", "specific", "specify", "specimen", "specious", "speckled", "spectator", "specter", "spectres", "spectrum", "speculate", "speedily", "speeds", "spending", "spheroid", "spiced", "spiffy", "spigots", "spike", "spin", "spinous", "spinster", "spiraled", "spires", "spitball", "splashy", "splotch", "splurge", "sponsor", "spook", "spooling", "spoons", "sporting", "spot", "spotty", "sprayers", "spraying", "sprightly", "sprinkle", "sprint", "sprinted", "sprinter", "spry", "spume", "spurious", "spurned", "sputter", "spy", "squabble", "squadron", "squalid", "squalled", "squander", "squared", "squash", "squashed", "squatter", "squeaks", "squeezed", "squirm", "squish", "squishes", "staccato", "stack", "stacking", "staff", "stages", "stagger", "stagnant", "stagnate", "stagy", "staid", "stain", "stainless", "stair", "stairwell", "stalled", "stallion", "stamina", "stampede", "stance", "stanchion", "standoff", "standout", "stands", "stanza", "star", "starch", "stark", "starker", "starkly", "starless", "starring", "stars", "starter", "starters", "stash", "stashes", "stat", "static", "statics", "statuette", "stature", "statute", "stayers", "staying", "steadies", "steal", "stealth", "steam", "steamy", "steeled", "steep", "steeple", "steeples", "steer", "steering", "stellar", "stem", "stencil", "steppe", "stepwise", "sterling", "sternum", "steroids", "stew", "stick", "sticking", "stiff", "stifle", "stifled", "stigma", "stiletto", "still", "stilts", "stimulant", "stimulate", "stimulus", "stinging", "stingy", "stipend", "stir", "stirs", "stitched", "stock", "stockpile", "stodgy", "stoicism", "stolid", "stomped", "stoners", "stoop", "stop", "stopped", "store", "storyline", "stout", "straddle", "strain", "strait", "strand", "stranded", "stratagem", "stratum", "straw", "stray", "streamlet", "stressed", "stretch", "strewn", "stricken", "striders", "stringent", "stripe", "striped", "stripling", "strobe", "stud", "studded", "studious", "stultify", "stumble", "stumbling", "stunners", "stupidest", "stupidly", "stupor", "styling", "suasion", "suave", "subacid", "subjacent", "subjugate", "submarine", "submerge", "submittal", "subside", "subsidize", "subsist", "subsumes", "subtend", "subtests", "subtle", "subvert", "succeed", "success", "successor", "succinct", "succulent", "succumb", "suction", "sudden", "sue", "suffrage", "suffuse", "suffused", "sugar", "suits", "sulfate", "sulfurous", "sulkily", "sultan", "summary", "summation", "summed", "summited", "sumptuous", "sunbeam", "sunburst", "sunflower", "suns", "sunset", "sunsets", "sunshine", "sunward", "super", "superadd", "superb", "superheat", "supersede", "supervise", "supine", "supplant", "supple", "supply", "supposed", "supposing", "suppress", "supremo", "surcharge", "sureness", "surety", "surf", "surface", "surfeit", "surly", "surmise", "surmount", "surplus", "surprise", "surrender", "surrogate", "surround", "surveyor", "survives", "suspect", "suspects", "suspense", "sutra", "suture", "swab", "swale", "swallowed", "swamped", "swarm", "swarmed", "swarthy", "swat", "swath", "swathe", "swathed", "swatting", "swayed", "swearing", "sweat", "sweeping", "sweeps", "sweets", "swell", "swelled", "swelter", "swerving", "swigs", "swimsuit", "swindle", "swindler", "swinging", "swipe", "swipes", "swirled", "swirling", "switching", "swivel", "swoop", "swooped", "sword", "swore", "sycamore", "sycophant", "syllabic", "syllable", "syllabus", "sylph", "symbolic", "symmetry", "symphonic", "symphony", "symposium", "synagogue", "syndicate", "syndrome", "syneresis", "synergy", "synod", "synonym", "synopsis", "syrupy", "table", "tableau", "tableaus", "tabloid", "taboo", "tacit", "taciturn", "tack", "tacked", "tackle", "taco", "tact", "tactful", "tactician", "tactics", "taffeta", "tahini", "tail", "tailspin", "take", "talcum", "talk", "talking", "tallest", "tally", "talmudic", "tamarind", "tamely", "tan", "tandem", "tangency", "tangent", "tangible", "tango", "tankful", "tanned", "tanners", "tannery", "tantalize", "tape", "tapes", "tapestry", "taping", "taquitos", "tardiness", "target", "tarnish", "tarry", "tart", "tartlets", "tater", "tattler", "tattoos", "taupe", "taut", "tax", "taxation", "taxi", "taxicab", "taxidermy", "tea", "teachable", "teacher", "teal", "tearful", "tearooms", "tears", "teary", "tease", "teaser", "teasingly", "technic", "technique", "tedium", "tee", "teem", "teemed", "teenage", "tees", "teetering", "telco", "telecast", "telegraph", "telemetry", "telepathy", "telephony", "telescope", "teletype", "televise", "telltale", "temblors", "temerity", "temp", "temple", "temples", "temporal", "temporary", "temporize", "tempt", "tempter", "temptress", "tenacious", "tenant", "tendency", "tender", "tendril", "tenet", "tenfold", "tennis", "tenor", "tense", "tensest", "tensions", "tentative", "tenting", "tenure", "termagant", "terminal", "terminate", "terminus", "terms", "terrapin", "terribly", "terrier", "terrify", "terse", "testament", "testator", "tested", "testify", "tethers", "teutonic", "thanks", "thaw", "thaws", "thearchy", "theater", "theirs", "theism", "then", "thence", "theocracy", "theocrasy", "theology", "theorist", "theorize", "therefor", "therefore", "thereupon", "thermal", "thesis", "they", "thicket", "thievery", "thigh", "thin", "think", "third", "thirsty", "thirtieth", "thomism", "thong", "thorn", "though", "thousand", "thrall", "thread", "threes", "threshed", "threw", "thrilled", "throb", "throes", "throne", "through", "throw", "thrums", "thrush", "thrusting", "thump", "thumped", "thusly", "thwarted", "thy", "thyroids", "tibias", "tic", "tick", "tickle", "tidying", "tight", "tightness", "tile", "tills", "tilted", "tilth", "timbre", "timeline", "timeout", "timorous", "tincture", "tinge", "tinkle", "tintype", "tipoff", "tipsy", "tirade", "tired", "tireless", "tiresome", "titled", "toddies", "toenail", "togas", "toggle", "toggling", "toil", "toilsome", "token", "tolerable", "tolerance", "tolerant", "tolerate", "tolling", "tomb", "tome", "tonic", "too", "tool", "toot", "toothless", "tootling", "top", "topics", "toponyms", "topping", "tops", "topsail", "torch", "tornados", "torpedo", "torpor", "torrid", "torso", "tortious", "tortuous", "tortured", "torturous", "toss", "tosser", "totaled", "touchy", "toughed", "toured", "touring", "touristy", "tousled", "towel", "towels", "towering", "townie", "toy", "toys", "trace", "traces", "trachoma", "tracking", "tractable", "trail", "trait", "trammel", "tramp", "tramped", "trance", "tranquil", "transact", "transcend", "transfer", "transfix", "transfuse", "transient", "translate", "transmit", "transmute", "transpire", "trashing", "trattoria", "travail", "traveling", "travesty", "trawl", "treachery", "treatise", "treble", "trebly", "tremor", "tremulous", "trenchant", "trendier", "trestle", "triad", "triads", "tribal", "tribe", "tribesman", "tribunal", "tribune", "trick", "trickery", "trickle", "tricolor", "tricycle", "trident", "triennial", "trim", "trimness", "trinity", "trio", "triple", "tripled", "tripod", "tripped", "trippy", "trisect", "trite", "triumvir", "trivial", "trombone", "trophies", "trots", "trotted", "troubling", "troupe", "trouper", "trove", "trowel", "truckload", "truculent", "truism", "trumpet", "truncated", "trundle", "trussed", "trusted", "trusting", "trusty", "truthful", "trying", "trypsin", "tuba", "tubing", "tuesdays", "tug", "tumble", "tunafish", "tune", "tuned", "tuneup", "tunisian", "turbans", "turbos", "turgid", "turkey", "turn", "turnabout", "turning", "turpitude", "tushes", "tussle", "tussles", "tutee", "tutelage", "tutelar", "tutorship", "tutsi", "twice", "twiddle", "twine", "twinge", "twirl", "twisting", "twitch", "twoyear", "tycoon", "typed", "typhus", "typical", "typified", "typify", "tyranny", "tyro", "ugh", "ugly", "ulterior", "ultimate", "ultimatum", "umbrage", "unable", "unanimity", "unanimous", "unbalance", "unbeaten", "unbelief", "unbiased", "unbind", "unblock", "unbounded", "unbridled", "uncannily", "uncanny", "uncared", "unclaimed", "uncle", "uncommon", "uncork", "uncrowded", "unction", "unctuous", "uncut", "undeceive", "underlie", "underling", "underman", "undermine", "underpaid", "underrate", "undersell", "undertake", "undertow", "undimmed", "undivided", "undo", "undone", "undue", "undulate", "undulous", "uneasy", "unfairly", "unfolding", "ungainly", "unglued", "ungodly", "unguent", "unharmed", "unhelpful", "unholy", "unhook", "unhooked", "unibody", "unify", "uninjured", "uninvited", "unique", "unison", "unisonant", "unite", "united", "univocal", "unkept", "unknown", "unlawful", "unlearned", "unlimited", "unnamed", "unnatural", "unnoticed", "unopposed", "unpeeled", "unplugged", "unpopular", "unproved", "unravel", "unripe", "unroofed", "unsay", "unseat", "unsettle", "unshod", "unsound", "unstuck", "untaxed", "untenable", "untended", "until", "untilled", "untimely", "untoward", "untreated", "unvaried", "unvarying", "unveil", "unveiled", "unwieldy", "unwise", "unyoke", "upbraid", "upcast", "updated", "upends", "upheaval", "upheave", "uplifted", "uploads", "upmarket", "upon", "upped", "upper", "uppermost", "upright", "uprising", "uproar", "uproot", "upsetting", "upstage", "upstart", "upstate", "uptick", "uptown", "upturn", "upwardly", "urban", "urbanity", "urchin", "urge", "urgency", "urgent", "usage", "used", "useful", "usual", "usurers", "usurious", "usurp", "usurped", "usury", "utensil", "utility", "utmost", "utter", "utterly", "vacate", "vaccinate", "vacillate", "vacuous", "vacuum", "vagabond", "vaginal", "vagrant", "vain", "vainglory", "valance", "vale", "valet", "valiant", "valid", "validate", "valleys", "valorous", "value", "vampire", "vane", "vanities", "vapid", "vaporizer", "variable", "variance", "variant", "variates", "variation", "variegate", "vassal", "vastly", "vastness", "vaulting", "veal", "vectors", "veered", "veering", "vegetal", "vegetate", "vehement", "veil", "velar", "veldt", "velocity", "velvety", "venal", "vendible", "vendition", "vendor", "veneer", "venerable", "venerate", "venereal", "vengeance", "vengeful", "venial", "venison", "venom", "venous", "ventilate", "veracious", "veracity", "veranda", "verbatim", "verbiage", "verbose", "verdant", "verify", "verily", "verity", "vermin", "vernal", "versatile", "version", "vertex", "vertical", "vertigo", "verve", "very", "vespers", "vessels", "vested", "vestige", "vestiges", "vesting", "vestment", "vet", "veto", "viability", "vibe", "vicarious", "viceroy", "victim", "videotape", "vie", "views", "vigilance", "vigilant", "vigilante", "vignette", "vilify", "vincible", "vindicate", "vinery", "vining", "viol", "viola", "violate", "violated", "violation", "violator", "viper", "virago", "virile", "virtu", "virtual", "virtue", "virtuoso", "virulence", "virulent", "visage", "viscera", "viscose", "viscount", "vision", "visit", "vista", "visual", "visualize", "vital", "vitality", "vitalize", "vitally", "vitiate", "vitiated", "vivacity", "vivify", "vocable", "vocal", "vocalist", "vocative", "vodka", "vogue", "voice", "voiceless", "void", "voiding", "voids", "volant", "volar", "volatile", "volition", "volitive", "voluble", "vomit", "vomited", "vomiting", "vomits", "voracious", "vortex", "votary", "voter", "votive", "vouchsafe", "vow", "voyager", "vulgarity", "wacko", "wad", "wadded", "wading", "wads", "wage", "waif", "waistcoat", "waistline", "waiter", "waiting", "waive", "wake", "waked", "walkable", "walker", "walkers", "walking", "walled", "wallop", "wallow", "waltz", "wampum", "wane", "waned", "wanes", "wangled", "wannabe", "wanted", "wanting", "ward", "warden", "warehouse", "warhead", "warheads", "warily", "wariness", "warlike", "warmed", "warning", "warp", "warpath", "warrior", "wary", "wash", "washtub", "waste", "wasteful", "watchful", "waterline", "wavelet", "waxy", "way", "weakens", "weakest", "weakling", "weal", "wean", "wear", "wearied", "wearisome", "webcams", "website", "wed", "wee", "weedy", "weekly", "weepers", "weigh", "weirdest", "weirdly", "welcome", "well", "welt", "west", "westward", "whatnot", "wheel", "wheeze", "whereupon", "wherever", "wherewith", "whet", "while", "whiled", "whimper", "whimsical", "whine", "whip", "whipping", "whippy", "whirr", "whirred", "whistle", "white", "whittle", "whiz", "whodunit", "wholly", "whomever", "whoop", "whoops", "whooshes", "wide", "widening", "widowed", "widower", "wield", "wielders", "wiggle", "wiggly", "wild", "wildcard", "wile", "wilful", "willowy", "wills", "wimp", "winced", "windage", "windswept", "wingman", "winsome", "winter", "wintry", "wipeout", "wiper", "wires", "wiretap", "wiry", "wise", "wisecrack", "wiseguy", "wishful", "withered", "within", "witless", "witling", "witticism", "wittiest", "wittingly", "wizen", "womanly", "wondered", "wonders", "wondrous", "woodland", "woodshed", "woolly", "woozy", "wordplay", "worklife", "workspace", "wormed", "worried", "worrying", "worthy", "would", "wouldst", "wound", "wrack", "wrangle", "wrap", "wrapped", "wreak", "wreath", "wrest", "wrestle", "wrestler", "wretch", "wriggle", "wrinkle", "writhe", "writing", "wrong", "wry", "yank", "yard", "yardage", "yards", "yarn", "yarns", "yaw", "yearend", "yearling", "yearning", "yeast", "yell", "yelling", "yellowing", "yells", "yen", "yielded", "yielding", "yin", "yogurts", "yoke", "yon", "you", "your", "yowled", "yowling", "yum", "zealot", "zeitgeist", "zenith", "zephyr", "zephyrs", "zero", "ziggurat", "zigs", "zings", "zionists", "zip", "zipped", "zodiac", "zooming" }; +#include "wordlist.h" -const size_t word_list_len = sizeof(word_list) / sizeof(const char*); +#ifdef PASSMGR_DICEWARE +const char *word_list[] = { + "aardvark", + "abacus", + "abase", + "abbess", + "abbey", + "abbot", + "abdicate", + "abdomen", + "abdominal", + "abduction", + "abed", + "abet", + "abeyance", + "abhorrent", + "abidance", + "abject", + "abjure", + "able", + "ablution", + "abnegate", + "abnormal", + "abominate", + "above", + "abrade", + "abrasion", + "abridge", + "abrogate", + "abrupt", + "abscess", + "abscissa", + "abscond", + "absence", + "absent", + "absolute", + "absolve", + "absorb", + "absorbed", + "abstain", + "abstruse", + "absurd", + "abundant", + "abused", + "abusive", + "abut", + "abyss", + "academic", + "academy", + "accede", + "acceded", + "accedes", + "accented", + "accept", + "accepted", + "access", + "accession", + "accessory", + "accident", + "acclaim", + "acclimate", + "accompany", + "accorded", + "accordion", + "accost", + "accosts", + "account", + "accouter", + "accredit", + "accuracy", + "accurate", + "accursed", + "accuse", + "accusing", + "accustom", + "acerbity", + "acetate", + "acetic", + "ache", + "acid", + "acidify", + "ackee", + "acme", + "acoustic", + "acquaint", + "acquiesce", + "acquire", + "acquit", + "acquittal", + "acreage", + "acreages", + "acrid", + "acrimony", + "acrobat", + "activate", + "activist", + "actuality", + "actuary", + "actuate", + "acumen", + "acute", + "acutely", + "adamant", + "adaptable", + "adapters", + "added", + "addendum", + "addle", + "addled", + "address", + "adduce", + "adelgid", + "adenoma", + "adequate", + "adhere", + "adherence", + "adherent", + "adheres", + "adhesion", + "adieu", + "adios", + "adjacency", + "adjacent", + "adjudge", + "adjunct", + "adjutant", + "admirals", + "admonish", + "ado", + "adoration", + "adorning", + "adroit", + "adulthood", + "adumbrate", + "advance", + "advanced", + "advancing", + "advent", + "adverse", + "adversely", + "adversity", + "advert", + "advisable", + "adviser", + "advisory", + "advocacy", + "advocate", + "aerial", + "aerobics", + "aeronaut", + "aerostat", + "affable", + "affect", + "affected", + "affiliate", + "affinity", + "affix", + "afflict", + "affluence", + "affluent", + "affront", + "affronts", + "afire", + "afoot", + "aforesaid", + "afresh", + "aft", + "after", + "afterward", + "age", + "aggravate", + "aggregate", + "aggress", + "aggrieve", + "aghast", + "agile", + "agility", + "agitate", + "agitated", + "agitprop", + "agnostic", + "agog", + "agonal", + "agonized", + "agrarian", + "ague", + "aid", + "ailment", + "aim", + "airbag", + "airfare", + "airfield", + "airspace", + "airwaves", + "airy", + "akin", + "alabaster", + "alacrity", + "albeit", + "albino", + "album", + "alchemy", + "alcohol", + "alcove", + "alder", + "alderman", + "alert", + "algae", + "algebra", + "alias", + "alien", + "alienable", + "alienate", + "alike", + "aliment", + "alkali", + "alkaline", + "allay", + "allege", + "alleged", + "allegory", + "alleviate", + "alley", + "alleyway", + "alliance", + "allies", + "allocate", + "allot", + "allotment", + "allowed", + "allude", + "allusion", + "allusive", + "alluvion", + "ally", + "almanac", + "almost", + "alone", + "aloof", + "alpha", + "alphabet", + "altar", + "alter", + "altercate", + "alternate", + "although", + "altitude", + "alto", + "altruism", + "altruist", + "amalgam", + "amass", + "amateur", + "amatory", + "amazed", + "amber", + "ambiguous", + "ambitious", + "ambrosia", + "ambrosial", + "ambulance", + "ambulate", + "ambush", + "amenable", + "amended", + "amicable", + "amish", + "amity", + "amongst", + "amorous", + "amorphous", + "amount", + "amour", + "ampere", + "ampersand", + "amplified", + "amplitude", + "amply", + "amputate", + "amusement", + "anagram", + "analog", + "analogous", + "analogy", + "analysed", + "analyst", + "analyze", + "anarchy", + "anathema", + "anatomy", + "ancestry", + "anchor", + "anchored", + "ancient", + "ancillary", + "anecdote", + "anemia", + "anemic", + "anew", + "angel", + "angelic", + "angler", + "angstrom", + "anguish", + "angular", + "anhydrous", + "animal", + "animate", + "anime", + "animosity", + "anklet", + "annalist", + "annals", + "annex", + "annexed", + "annotate", + "annual", + "annuity", + "anode", + "anonymous", + "another", + "answer", + "answering", + "ante", + "antecede", + "antedate", + "antenatal", + "anterior", + "anteroom", + "anthem", + "anthology", + "antic", + "antidote", + "antilogy", + "antiphon", + "antiphony", + "antipodes", + "antiquary", + "antiquate", + "antique", + "antitoxin", + "antonym", + "anxious", + "anymore", + "anyplace", + "anything", + "apart", + "apathy", + "aperitif", + "aperture", + "apex", + "aphorism", + "apiary", + "apogee", + "apology", + "apostasy", + "apostate", + "apostle", + "appall", + "apparatus", + "apparel", + "apparent", + "appeal", + "appealed", + "appease", + "appellate", + "append", + "appertain", + "appoint", + "apposite", + "appraise", + "apprehend", + "apprise", + "approved", + "aquarium", + "aqueduct", + "aqueous", + "arachnid", + "arb", + "arbiter", + "arbitrary", + "arbitrate", + "arbor", + "arboreal", + "arboretum", + "arbs", + "arcade", + "arch", + "archaic", + "archaism", + "archangel", + "arched", + "archetype", + "archival", + "archive", + "archrival", + "ardent", + "ardor", + "arid", + "arise", + "armada", + "armament", + "armature", + "armful", + "armistice", + "armless", + "armor", + "armorers", + "armory", + "armrest", + "arnica", + "aroma", + "around", + "aroused", + "arraign", + "arrange", + "arrant", + "array", + "arrayed", + "arrear", + "arrested", + "arrival", + "arrogant", + "arrogate", + "arrowing", + "arsenate", + "artery", + "artful", + "artifice", + "artistry", + "artless", + "aryan", + "ascendant", + "ascension", + "ascent", + "ascetic", + "ascribe", + "asexual", + "ashamed", + "ashen", + "ashore", + "asiatic", + "askance", + "asking", + "asperity", + "aspirant", + "aspire", + "assailant", + "assassin", + "assault", + "assay", + "assent", + "assertive", + "assess", + "assessor", + "assets", + "assiduous", + "assignee", + "associate", + "assonance", + "assonant", + "assonate", + "assuage", + "assume", + "assuredly", + "asterisk", + "asters", + "asthma", + "astronaut", + "astute", + "asylums", + "atheism", + "athirst", + "athwart", + "atomize", + "atomizer", + "atonal", + "atone", + "atonement", + "atrocious", + "atrocity", + "attache", + "attack", + "attacked", + "attain", + "attend", + "attest", + "auburn", + "auction", + "auctions", + "audacious", + "audible", + "audition", + "auditory", + "audits", + "augment", + "augur", + "aura", + "aural", + "auricle", + "auricular", + "aurora", + "auspice", + "austere", + "autarchy", + "auteur", + "authentic", + "authority", + "autocracy", + "autocrat", + "automaton", + "autonomy", + "autopsy", + "autumn", + "autumnal", + "auxiliary", + "avalanche", + "avarice", + "aver", + "averse", + "aversion", + "avert", + "aviaries", + "aviary", + "aviator", + "avidity", + "avidly", + "avocation", + "avow", + "await", + "awaits", + "awaken", + "awakened", + "awards", + "awash", + "awesome", + "awful", + "awry", + "aww", + "axes", + "axioms", + "aye", + "azalea", + "azure", + "babble", + "babe", + "baby", + "babysit", + "back", + "backdrop", + "backed", + "backstop", + "bacterium", + "badger", + "badgered", + "baffle", + "baffled", + "bag", + "bagel", + "baggage", + "baggier", + "bagpipe", + "bailiff", + "bairn", + "bait", + "baize", + "baked", + "bakeware", + "balancing", + "baldly", + "bale", + "baleful", + "ballad", + "ballpark", + "balm", + "balsa", + "balsam", + "bamboo", + "banal", + "band", + "banjo", + "banned", + "banquet", + "banter", + "baptisms", + "baptize", + "barbarian", + "barbaric", + "barbells", + "barbeque", + "barcarole", + "barefoot", + "bargain", + "baritone", + "barium", + "bark", + "barley", + "barograph", + "barometer", + "barrages", + "barrel", + "barreled", + "barrier", + "barring", + "barstool", + "bask", + "basket", + "bass", + "basso", + "baste", + "bastion", + "batch", + "bath", + "bather", + "baton", + "batons", + "battalion", + "batten", + "batter", + "batting", + "bauble", + "bawl", + "bawled", + "bayonet", + "beacon", + "bead", + "beaded", + "beads", + "bear", + "bearer", + "beatify", + "beatitude", + "beatnik", + "beau", + "becalm", + "beck", + "bedaub", + "bedding", + "bedeck", + "bedlam", + "bedside", + "beep", + "beeper", + "befog", + "before", + "befriend", + "befuddle", + "beget", + "beginner", + "begrudge", + "beguine", + "behavior", + "beheaded", + "behemoth", + "behest", + "beholden", + "belate", + "belated", + "belay", + "belie", + "believe", + "belittle", + "belle", + "bellicose", + "bellmen", + "bellow", + "belly", + "beloved", + "below", + "bemoan", + "bemoaned", + "bench", + "benched", + "bended", + "benefice", + "benefit", + "bengal", + "benign", + "benignant", + "benignity", + "benison", + "bequeath", + "bereave", + "bereaved", + "berth", + "beseech", + "beset", + "besides", + "besmear", + "besmirch", + "bespeak", + "best", + "bestial", + "bestow", + "bestrew", + "bestride", + "bethink", + "betide", + "betimes", + "betrayed", + "betroth", + "betrothal", + "better", + "between", + "betwixt", + "bevel", + "beveled", + "bewilder", + "bias", + "bib", + "bibulous", + "bidding", + "bide", + "biennial", + "bier", + "bigamist", + "bigamy", + "biggie", + "bight", + "bigotry", + "bike", + "bilateral", + "bile", + "bilingual", + "billfish", + "billow", + "billows", + "billowy", + "binding", + "bingeing", + "bio", + "biograph", + "biography", + "biology", + "biomes", + "biped", + "biryani", + "bitter", + "biz", + "bizarre", + "blab", + "blabbing", + "blackbird", + "blacked", + "blacklist", + "blackness", + "blank", + "blanket", + "blase", + "blaspheme", + "blatant", + "blaze", + "blazon", + "bleak", + "blemish", + "blended", + "blight", + "blind", + "blinded", + "blink", + "blipped", + "blithe", + "blitz", + "blizzard", + "blockade", + "blocker", + "blocking", + "blond", + "blonde", + "bloodbath", + "bloodied", + "bloodily", + "bloodline", + "bloom", + "bloomed", + "blouses", + "blousy", + "blowhole", + "blowtorch", + "blue", + "bluebird", + "bluish", + "blunder", + "blunt", + "blurb", + "blurring", + "blush", + "bluster", + "boards", + "boatload", + "boatswain", + "boatyard", + "bobble", + "boded", + "bodice", + "bodily", + "bog", + "bogus", + "bold", + "bole", + "bolero", + "boll", + "bolster", + "bolts", + "bomb", + "bombard", + "bombast", + "bombings", + "bomblets", + "bombs", + "bond", + "bondsman", + "boob", + "boobs", + "bookcase", + "bookend", + "bookmark", + "bookworm", + "boorish", + "boost", + "booster", + "boot", + "bootleg", + "bordello", + "bordering", + "bore", + "borers", + "boring", + "borough", + "bosom", + "boss", + "botanical", + "botanist", + "botanize", + "botany", + "bothered", + "bottles", + "bottling", + "bouffant", + "bounce", + "bouncing", + "boundary", + "bountiful", + "bow", + "bowel", + "bowing", + "bowl", + "bowler", + "boxing", + "boxlike", + "boxwood", + "boycott", + "brace", + "brackets", + "brae", + "braggart", + "brains", + "brainwash", + "branch", + "brandish", + "brassy", + "bravado", + "bravo", + "brawl", + "brawls", + "brawny", + "bray", + "braze", + "brazenly", + "brazier", + "breach", + "breadth", + "breakaway", + "breakdown", + "breaker", + "breakfast", + "breath", + "breech", + "breed", + "brethren", + "brevity", + "bribery", + "bridge", + "bridle", + "brief", + "briefers", + "briers", + "brigade", + "brigadier", + "brigand", + "brighten", + "brightly", + "brim", + "brimstone", + "brine", + "bristle", + "brittle", + "broach", + "broaches", + "broadcast", + "broader", + "brochure", + "brogan", + "brogans", + "brogue", + "broil", + "broiler", + "brokerage", + "brome", + "bromine", + "bronchus", + "bronzers", + "brooch", + "brook", + "broom", + "broth", + "brow", + "browbeat", + "brown", + "brownie", + "brownish", + "bruised", + "brushing", + "brushy", + "brusque", + "bubble", + "bubonic", + "buck", + "bucket", + "buckled", + "buff", + "buffet", + "buffeted", + "buffoon", + "bugging", + "bugle", + "build", + "bulb", + "bulbous", + "bulging", + "bulk", + "bulldoze", + "bulled", + "bullets", + "bullock", + "bully", + "bulrush", + "bulwark", + "bum", + "bumper", + "bumpers", + "bumptious", + "bumpy", + "bunch", + "bundle", + "bunghole", + "bungle", + "bungled", + "buoyancy", + "buoyant", + "burden", + "bureau", + "burger", + "burgess", + "burgher", + "burgundy", + "burlap", + "burned", + "burnet", + "burnish", + "burp", + "burping", + "burrows", + "bursar", + "busman", + "bussed", + "busses", + "bust", + "bustards", + "busters", + "bustier", + "busting", + "bustle", + "busty", + "busybody", + "butcher", + "butt", + "butte", + "buttered", + "buttress", + "buy", + "buyouts", + "buzzes", + "byline", + "cabal", + "cabalism", + "cabin", + "cabinet", + "cabriole", + "cacao", + "cacophony", + "cactus", + "caddies", + "caddis", + "caddy", + "cadence", + "cadenza", + "cadet", + "caitiff", + "cajole", + "cajolery", + "calculus", + "calf", + "calibers", + "calipers", + "call", + "called", + "caller", + "callosity", + "callow", + "calorie", + "calumny", + "came", + "cameo", + "camera", + "camp", + "campaign", + "canadian", + "canard", + "canary", + "candid", + "candor", + "canine", + "canines", + "canister", + "cannon", + "canny", + "canon", + "canonize", + "canopy", + "cant", + "cantata", + "canteen", + "canto", + "canvases", + "canvass", + "capable", + "capably", + "capacious", + "capillary", + "capital", + "capo", + "capon", + "caprice", + "capsizes", + "caption", + "captious", + "captivate", + "captor", + "capture", + "carbonate", + "carbos", + "carcass", + "card", + "cardiac", + "cardinal", + "care", + "caret", + "cargo", + "cargoes", + "caring", + "carload", + "carnage", + "carnal", + "carnival", + "carotene", + "carouse", + "carped", + "carpentry", + "carpet", + "carpeted", + "carried", + "carrion", + "carrot", + "cartilage", + "cartload", + "cartoons", + "cartridge", + "carve", + "case", + "cased", + "caseload", + "casement", + "cases", + "cashier", + "cashmere", + "casings", + "cast", + "caste", + "castigate", + "casting", + "casual", + "casualty", + "cat", + "cataclysm", + "catalans", + "catalyst", + "catalyze", + "cataract", + "cathode", + "catlike", + "caucus", + "caudal", + "causal", + "causally", + "cause", + "caused", + "caustic", + "cauterize", + "caution", + "caviar", + "ceaseless", + "cede", + "celebrate", + "celeriac", + "cell", + "cellar", + "cenotaph", + "censor", + "census", + "censuses", + "cent", + "centenary", + "centrally", + "centurion", + "ceramic", + "cereal", + "cessation", + "cession", + "chafe", + "chaff", + "chagrin", + "chain", + "chair", + "chalk", + "chameleon", + "champagne", + "chancery", + "channel", + "chanting", + "chaos", + "chap", + "chapel", + "char", + "charge", + "charlatan", + "charmed", + "charming", + "charred", + "chasm", + "chasten", + "chastise", + "chastity", + "chasuble", + "chateau", + "chattel", + "cheating", + "check", + "checkered", + "checkup", + "cheer", + "cheerio", + "cheesy", + "cherished", + "chervil", + "chicano", + "chick", + "chief", + "chieftain", + "chiffon", + "chill", + "chilled", + "chinaman", + "ching", + "chinooks", + "chip", + "chipmunk", + "chipped", + "chipping", + "chirpy", + "chisel", + "chiseled", + "chit", + "chivalry", + "chives", + "choice", + "choke", + "cholera", + "choleric", + "choral", + "christen", + "chromatic", + "chrome", + "chromed", + "chub", + "chucking", + "chuckle", + "chug", + "chump", + "chunk", + "chunky", + "churlish", + "churn", + "cichlids", + "cipher", + "circular", + "circulate", + "citadel", + "cite", + "citizen", + "civilize", + "claim", + "claimant", + "claimed", + "clambers", + "clamorous", + "clan", + "clang", + "clangor", + "clank", + "clap", + "clarify", + "clarion", + "clasped", + "clasping", + "classic", + "classify", + "classroom", + "classy", + "clavicle", + "claw", + "clay", + "clean", + "cleansed", + "clear", + "clearance", + "cleared", + "clearing", + "clearly", + "cleaving", + "clemency", + "clement", + "clergyman", + "clique", + "cloak", + "clocks", + "clockwork", + "clogged", + "cloister", + "clomps", + "cloned", + "closer", + "closeted", + "closure", + "clot", + "clothe", + "clothed", + "clothier", + "clouds", + "cloudy", + "clout", + "clove", + "cloying", + "cluck", + "clucks", + "clue", + "clumsier", + "clumsy", + "coagulant", + "coagulate", + "coalition", + "coarsely", + "coasted", + "coat", + "coated", + "coax", + "cob", + "cobalt", + "cobweb", + "cocci", + "cockpit", + "coddle", + "code", + "codger", + "codicil", + "codify", + "codon", + "codpiece", + "coerce", + "coercion", + "coercive", + "coexist", + "coffin", + "cogent", + "cognate", + "cognizant", + "cohere", + "coherent", + "cohesion", + "cohesive", + "cohost", + "coifed", + "coincide", + "coined", + "coital", + "cold", + "coldness", + "coleus", + "coliseum", + "collapse", + "collate", + "colleague", + "collector", + "collegian", + "collide", + "collie", + "collier", + "collision", + "colloquy", + "collusion", + "colon", + "colossal", + "colossus", + "colt", + "coltish", + "columns", + "comatose", + "combat", + "combated", + "combed", + "combers", + "combine", + "combos", + "come", + "comedic", + "comedown", + "comely", + "comes", + "comical", + "commando", + "commies", + "commingle", + "committal", + "commodity", + "commotion", + "communist", + "commute", + "commuting", + "compact", + "company", + "competent", + "complain", + "complex", + "complexly", + "compliant", + "component", + "comport", + "compose", + "composed", + "composer", + "compost", + "composts", + "composure", + "compound", + "compress", + "comprise", + "compute", + "comrades", + "con", + "conative", + "conceal", + "concealed", + "concede", + "conceit", + "conceive", + "concerted", + "concerto", + "concierge", + "concise", + "concord", + "concur", + "condense", + "conduce", + "conducive", + "conduit", + "confer", + "conferee", + "confessor", + "confetti", + "confidant", + "confide", + "confident", + "confine", + "confluent", + "conform", + "confound", + "confront", + "confuse", + "congeal", + "congenial", + "congest", + "conjoin", + "conjugal", + "conjugate", + "conjured", + "connect", + "connected", + "connector", + "connive", + "connote", + "connubial", + "conquer", + "conscious", + "conscript", + "consensus", + "consent", + "consign", + "consignee", + "consignor", + "console", + "consoled", + "consonant", + "consort", + "conspire", + "constable", + "constancy", + "constrict", + "consul", + "consulate", + "contagion", + "contains", + "contender", + "contessa", + "contest", + "continual", + "contort", + "contrail", + "contrary", + "contrite", + "contrive", + "control", + "contumacy", + "contuse", + "contusion", + "convene", + "converge", + "convert", + "convex", + "convivial", + "convolute", + "convolve", + "convoy", + "convulse", + "cookbook", + "cooked", + "cookie", + "cookout", + "cool", + "cooled", + "cooperate", + "coos", + "coped", + "copies", + "copious", + "copiously", + "copout", + "copped", + "copper", + "coquette", + "cordon", + "cork", + "corkscrew", + "corm", + "corn", + "cornered", + "cornice", + "cornmeal", + "corollary", + "coronet", + "corporal", + "corporate", + "corporeal", + "corps", + "corpse", + "corpulent", + "corpuscle", + "correctly", + "correlate", + "corrode", + "corroded", + "corrosion", + "corrosive", + "corrupted", + "corset", + "corseted", + "cortical", + "cosmetic", + "cosmetics", + "cosmic", + "cosmogony", + "cosmology", + "cosmonaut", + "cosmos", + "countess", + "couplers", + "courage", + "course", + "courser", + "courtesy", + "cousin", + "covenant", + "cover", + "covered", + "covering", + "covert", + "covey", + "cowardly", + "cower", + "cowled", + "coxswain", + "coy", + "cozying", + "crabs", + "crack", + "cracked", + "cracker", + "crackers", + "crackpot", + "craft", + "crag", + "cramp", + "cramped", + "crams", + "cranberry", + "cranium", + "craps", + "crapshoot", + "crass", + "crate", + "craving", + "craw", + "crawly", + "crazy", + "creak", + "cream", + "creamery", + "creaming", + "creamy", + "creator", + "creche", + "credence", + "credible", + "credibly", + "credits", + "credulous", + "creed", + "creep", + "creepy", + "crematory", + "crescent", + "cretan", + "cretin", + "crevasse", + "crevice", + "cribbage", + "cried", + "criers", + "crimp", + "crinkly", + "crippled", + "crippling", + "crisped", + "criteria", + "criterion", + "critical", + "critique", + "crocheted", + "crockery", + "crossbar", + "crosshair", + "crouched", + "croup", + "crow", + "crowbar", + "crowd", + "crown", + "crucible", + "crude", + "crudites", + "cruelty", + "cruise", + "crumb", + "crumpled", + "crunch", + "crunchy", + "crusade", + "crushed", + "crusted", + "crusts", + "cry", + "crybaby", + "cub", + "cube", + "cubist", + "cudgel", + "cued", + "cueing", + "cuff", + "culinary", + "cull", + "culpable", + "culprit", + "cultivar", + "culture", + "culvert", + "cupful", + "cupid", + "cupidity", + "curable", + "curator", + "curb", + "cured", + "curio", + "curiously", + "curl", + "currency", + "currently", + "cursive", + "cursor", + "cursory", + "curt", + "curtail", + "curtsy", + "curve", + "curved", + "curving", + "custards", + "customer", + "cutover", + "cutting", + "cuttings", + "cycled", + "cycling", + "cycloid", + "cygnet", + "cynic", + "cynical", + "cynicism", + "cynosure", + "cyst", + "dabbed", + "dabs", + "dagger", + "daily", + "dales", + "dali", + "dalliance", + "dam", + "dame", + "dames", + "damned", + "damp", + "dance", + "dancing", + "daring", + "darkling", + "darkly", + "darling", + "darn", + "dashboard", + "dashed", + "dastard", + "date", + "dated", + "dating", + "datum", + "dauber", + "daunting", + "dauntless", + "daylight", + "daypack", + "daytime", + "daywear", + "dazed", + "dazedly", + "dazzle", + "dazzled", + "dba", + "deadened", + "deadlock", + "deafening", + "deal", + "dearest", + "dearth", + "debase", + "debatable", + "debated", + "debonair", + "debrief", + "debut", + "decadence", + "decagon", + "decagram", + "decaliter", + "decalogue", + "decameter", + "decamp", + "decapod", + "decayed", + "deceit", + "deceitful", + "deceive", + "decency", + "decent", + "deception", + "deceptive", + "decide", + "decides", + "deciding", + "deciduous", + "decimal", + "decimate", + "decipher", + "decisive", + "decker", + "decks", + "decorate", + "decorous", + "decoy", + "decoys", + "decrease", + "decreed", + "decrepit", + "decrying", + "dedicate", + "deduce", + "deduces", + "deed", + "deep", + "deepen", + "deepens", + "deer", + "deface", + "defalcate", + "defame", + "defamed", + "defanged", + "default", + "defaults", + "defective", + "defendant", + "defensive", + "defer", + "deference", + "defiant", + "deficient", + "defiled", + "definite", + "deflate", + "deflates", + "deflect", + "deforest", + "deform", + "deformed", + "deformity", + "defraud", + "defray", + "deft", + "degrade", + "degraded", + "degrading", + "dehydrate", + "deified", + "deify", + "deign", + "deist", + "deists", + "deity", + "deject", + "dejected", + "dejection", + "delay", + "delayed", + "delete", + "delft", + "deli", + "delicacy", + "delineate", + "delirious", + "delirium", + "delivery", + "delude", + "deluge", + "delusion", + "demagogue", + "demeanor", + "demented", + "demerit", + "demise", + "demo", + "demolish", + "demon", + "demotic", + "demulcent", + "demur", + "demurrage", + "dendroid", + "denial", + "denizen", + "denote", + "denounce", + "dented", + "denude", + "denuding", + "deodorant", + "depicted", + "deplete", + "deplore", + "deploy", + "deponent", + "deport", + "deposed", + "depositor", + "depot", + "deprave", + "deprecate", + "depress", + "depth", + "deputy", + "derby", + "derelict", + "deride", + "derisible", + "derision", + "derive", + "derives", + "derrick", + "derriere", + "descent", + "descry", + "desert", + "deserted", + "deserved", + "deserving", + "desiccant", + "designate", + "designed", + "desirous", + "desist", + "desktop", + "desolate", + "despair", + "desperado", + "desperate", + "despite", + "despond", + "despot", + "despotism", + "dessert", + "destiny", + "destitute", + "desultory", + "detach", + "deter", + "deterrent", + "detest", + "detonator", + "detract", + "detriment", + "detrude", + "devastate", + "develops", + "deviance", + "deviate", + "device", + "devices", + "devilry", + "deviltry", + "devious", + "devise", + "devised", + "devolve", + "devout", + "devoutly", + "dexterity", + "dhows", + "diabolic", + "diagnose", + "diagnosis", + "dial", + "dialect", + "dialed", + "dialogue", + "diarist", + "diarists", + "diarrhea", + "diatomic", + "diatribe", + "dichotomy", + "diction", + "dictum", + "didactic", + "diddling", + "diffident", + "diffuse", + "diffusion", + "dignitary", + "digraph", + "digress", + "dilate", + "dilates", + "dilatory", + "dildos", + "dilemma", + "diligence", + "dill", + "dilute", + "dimension", + "dimly", + "dims", + "diner", + "dinghies", + "dinky", + "dint", + "diphthong", + "diplomacy", + "diplomat", + "dipping", + "direct", + "directive", + "direst", + "dirtied", + "disabled", + "disagree", + "disallow", + "disappear", + "disarm", + "disarmed", + "disavow", + "disavowal", + "disburden", + "disburse", + "discard", + "discern", + "disciple", + "disclaim", + "disco", + "discolor", + "discomfit", + "discord", + "discover", + "discredit", + "discreet", + "disdain", + "disembody", + "disengage", + "disfavor", + "disfigure", + "disgrace", + "dish", + "dishes", + "dishonest", + "disinfect", + "dislocate", + "dislodge", + "dismal", + "dismissal", + "dismount", + "disobeys", + "disown", + "disowned", + "disparage", + "disparity", + "dispel", + "dispirit", + "displace", + "displaced", + "disposed", + "disposer", + "disputed", + "disputes", + "disquiet", + "disregard", + "disrepute", + "disrobe", + "disrupt", + "dissect", + "dissemble", + "dissent", + "dissever", + "dissipate", + "dissolute", + "dissolve", + "dissonant", + "dissuade", + "distance", + "distant", + "distemper", + "distend", + "distill", + "distiller", + "distort", + "distorted", + "distrain", + "distrust", + "disunion", + "diurnal", + "diver", + "divergent", + "diverse", + "diversion", + "diversity", + "divert", + "divest", + "divide", + "divided", + "divider", + "dividing", + "divinely", + "divinity", + "divisible", + "divisive", + "divisor", + "divulge", + "dizzy", + "docile", + "docket", + "dockside", + "doctor", + "doctorate", + "document", + "dodo", + "doe", + "doer", + "doff", + "dogfight", + "doggedly", + "doggie", + "dogma", + "dogmatic", + "dogmatize", + "dogsled", + "dole", + "doled", + "doleful", + "dolesome", + "dollies", + "dolor", + "dolorous", + "doltish", + "dolts", + "domain", + "domicile", + "dominance", + "dominant", + "dominate", + "domineer", + "donate", + "donator", + "donee", + "donkey", + "donor", + "doodled", + "doomsayer", + "door", + "doorpost", + "dormant", + "dorsal", + "dosas", + "dosed", + "dotcom", + "dotted", + "double", + "doublet", + "doubling", + "doubly", + "doubt", + "doubted", + "doubter", + "doughy", + "dove", + "down", + "downer", + "downgrade", + "downplay", + "downpour", + "downward", + "dowry", + "doyen", + "doyenne", + "doze", + "dozens", + "dozes", + "drabness", + "drachma", + "draft", + "draftees", + "drafty", + "dragnet", + "dragoon", + "dragoons", + "drain", + "drainage", + "dramatist", + "dramatize", + "drape", + "drastic", + "dream", + "drearily", + "drenches", + "dress", + "dressing", + "dribble", + "drill", + "dripping", + "drive", + "driveway", + "driving", + "drizzle", + "drone", + "droning", + "drool", + "droopy", + "droplet", + "dropoff", + "drought", + "drowsy", + "drudgery", + "druids", + "drummer", + "drunk", + "drunks", + "dubbed", + "dubious", + "duckling", + "ductile", + "dud", + "due", + "duel", + "duet", + "dun", + "dung", + "dunk", + "dupe", + "duplex", + "duplexer", + "duplicity", + "durance", + "duration", + "dusky", + "dust", + "duster", + "dusting", + "duteous", + "dutiable", + "dutiful", + "dwarf", + "dweeb", + "dweller", + "dwelling", + "dwindle", + "dyed", + "dynamic", + "dynamism", + "dyne", + "each", + "eagerly", + "eardrum", + "eardrums", + "earless", + "earlier", + "early", + "earn", + "earnest", + "earplug", + "earthwork", + "eatable", + "eave", + "ebb", + "ebullient", + "eccentric", + "ecclesia", + "echo", + "echoing", + "eclipse", + "ecliptic", + "economize", + "ecstasy", + "ecstatic", + "edible", + "edict", + "edify", + "editorial", + "educate", + "educe", + "efface", + "effect", + "effective", + "effectual", + "effete", + "efficacy", + "efficient", + "effluvium", + "effuse", + "effusion", + "egghead", + "eggnog", + "egoism", + "egoist", + "egotism", + "egotist", + "egregious", + "egress", + "egret", + "eighteen", + "eject", + "ejecting", + "ejector", + "ejido", + "ekes", + "eland", + "elapse", + "elastics", + "elbow", + "eld", + "elder", + "elegy", + "element", + "elevation", + "elicit", + "eligible", + "eliminate", + "elite", + "elixir", + "ellagic", + "elm", + "elms", + "elocution", + "eloquence", + "eloquent", + "elucidate", + "elude", + "elusion", + "elusive", + "emaciate", + "emanate", + "embalmed", + "embargo", + "embark", + "embarrass", + "embedded", + "embellish", + "embezzle", + "emblazon", + "emblem", + "embody", + "embolden", + "embolism", + "embrace", + "embroil", + "emerge", + "emergence", + "emergent", + "emeritus", + "emigrant", + "emigrate", + "eminence", + "eminent", + "emit", + "emitter", + "emotions", + "empathic", + "emperor", + "emphasis", + "emphasize", + "emphatic", + "employed", + "employee", + "employer", + "employs", + "emporium", + "empower", + "empowers", + "empty", + "emulate", + "emulated", + "enact", + "enamor", + "encamp", + "encased", + "enchant", + "enclave", + "enclosed", + "encomium", + "encompass", + "encore", + "encourage", + "encroach", + "encumber", + "endanger", + "endear", + "endeavor", + "ended", + "endemic", + "endgame", + "endlessly", + "ends", + "endue", + "endurable", + "endurance", + "energetic", + "enervate", + "enfeeble", + "engender", + "engrave", + "engraved", + "engross", + "engulfed", + "enhance", + "enhanced", + "enigma", + "enjoin", + "enjoy", + "enjoyment", + "enkindle", + "enlighten", + "enlist", + "enliven", + "enmity", + "ennoble", + "enormity", + "enormous", + "enrage", + "enrapture", + "enriched", + "enroll", + "enshrine", + "ensnare", + "ensnared", + "ensue", + "ensuing", + "entail", + "entangle", + "enthrall", + "enthrone", + "enthuse", + "enticing", + "entirety", + "entitled", + "entity", + "entrails", + "entrap", + "entreaty", + "entree", + "entrench", + "entrust", + "entry", + "entwine", + "enumerate", + "enviable", + "envious", + "envy", + "envying", + "ephemera", + "epic", + "epicure", + "epicycle", + "epidemic", + "epidermis", + "epigram", + "epilogue", + "epiphany", + "episode", + "episodic", + "epitaph", + "epithet", + "epitome", + "epizootic", + "epoch", + "epode", + "eponym", + "equaling", + "equality", + "equalize", + "equate", + "equitable", + "equity", + "equivocal", + "eradicate", + "erect", + "errant", + "erratic", + "erroneous", + "error", + "erstwhile", + "erudite", + "erudition", + "escapes", + "escaping", + "escarole", + "eschew", + "espionage", + "espy", + "esquire", + "essayed", + "essence", + "essential", + "esteemed", + "esthetic", + "estimable", + "estrange", + "estrogen", + "estuary", + "etcetera", + "etch", + "etiquette", + "eugenic", + "eulogize", + "eulogy", + "euphemism", + "euphony", + "eureka", + "evade", + "evanesce", + "evasion", + "even", + "evensong", + "event", + "eventful", + "eventual", + "ever", + "evergreen", + "evert", + "everyone", + "evict", + "eviction", + "evidence", + "evil", + "evince", + "evincing", + "evoke", + "evolution", + "evolve", + "evolves", + "examiner", + "excavate", + "exceed", + "excel", + "excellent", + "excels", + "excepting", + "excerpt", + "excess", + "excitable", + "excitedly", + "exclude", + "excluded", + "exclusion", + "excretion", + "excursion", + "excusable", + "excuse", + "execrable", + "executive", + "executor", + "exegesis", + "exemplar", + "exemplary", + "exemplify", + "exempt", + "exempted", + "exert", + "exhale", + "exhaled", + "exhaust", + "exhume", + "exigency", + "exigent", + "existence", + "existing", + "exists", + "exit", + "exits", + "exodus", + "exonerate", + "exorcise", + "exotic", + "expand", + "expanse", + "expansion", + "expansive", + "expect", + "expected", + "expedient", + "expedite", + "expend", + "expense", + "experts", + "expiate", + "expired", + "explain", + "explicate", + "explicit", + "explode", + "exploding", + "exploiter", + "explosion", + "explosive", + "export", + "exposure", + "expulsion", + "extant", + "extempore", + "extend", + "extension", + "extensive", + "extensor", + "extenuate", + "exterior", + "external", + "extinct", + "extol", + "extort", + "extortion", + "extradite", + "extremist", + "extremity", + "extricate", + "extrude", + "exuberant", + "exurbs", + "eyed", + "eyelash", + "eyelid", + "eyesight", + "fabled", + "fables", + "fabricate", + "fabulous", + "face", + "faceless", + "facelift", + "facet", + "facetious", + "facial", + "facile", + "facility", + "facsimile", + "faction", + "factious", + "factual", + "faculty", + "fading", + "fail", + "faint", + "fairly", + "faith", + "fake", + "falcon", + "fallacy", + "fallback", + "fallen", + "fallible", + "falling", + "fallow", + "family", + "famine", + "famish", + "famished", + "famous", + "fanatic", + "fancier", + "fancies", + "fanciless", + "fancy", + "fanfare", + "fanned", + "fannies", + "far", + "farm", + "farming", + "fart", + "fashion", + "fastball", + "faster", + "fatalism", + "fathers", + "fathom", + "fatties", + "fatuous", + "faulty", + "faun", + "favor", + "fawn", + "fax", + "faxes", + "fealty", + "fear", + "feasible", + "feasted", + "feathered", + "feature", + "features", + "febrile", + "fecund", + "federate", + "fedora", + "feeling", + "feels", + "feint", + "felicity", + "feline", + "fell", + "fellow", + "felon", + "felonious", + "felony", + "female", + "feminine", + "femoral", + "fen", + "fenced", + "fencing", + "fend", + "fender", + "fernery", + "ferns", + "ferocious", + "ferocity", + "ferry", + "fervent", + "fervid", + "fervor", + "fessed", + "festal", + "festive", + "fetches", + "fete", + "fetus", + "feudal", + "feudalism", + "fevers", + "fez", + "fiasco", + "fibrotic", + "fibs", + "fickle", + "fiction", + "fiddler", + "fidelity", + "fiducial", + "fief", + "fiendish", + "fiercely", + "fifth", + "fig", + "figure", + "filament", + "filberts", + "filers", + "filet", + "fill", + "filmed", + "filmy", + "filtered", + "filth", + "final", + "finale", + "finales", + "finality", + "finally", + "finance", + "financial", + "financier", + "finery", + "finesse", + "finger", + "finish", + "finisher", + "finite", + "fireman", + "fireplace", + "fires", + "firm", + "first", + "fiscal", + "fishbone", + "fishery", + "fishes", + "fissure", + "fisting", + "fit", + "fitful", + "fitted", + "fix", + "fixes", + "fixture", + "fizzles", + "fjord", + "flag", + "flagpole", + "flagrant", + "flags", + "flame", + "flamed", + "flanker", + "flare", + "flared", + "flash", + "flasher", + "flatboat", + "flaunted", + "flavor", + "flawless", + "fleck", + "flection", + "fledged", + "fledgling", + "fleece", + "fleeting", + "fleshing", + "flexible", + "flicked", + "flicks", + "flimsy", + "flippant", + "flirts", + "flit", + "floating", + "flocked", + "floe", + "flogged", + "floods", + "floozie", + "flora", + "floral", + "florid", + "florist", + "flout", + "flowing", + "flu", + "fluctuate", + "flue", + "fluent", + "fluential", + "fluffier", + "fluidly", + "fluke", + "flunk", + "flush", + "fluted", + "flutist", + "flux", + "fly", + "flyer", + "focal", + "focally", + "focus", + "foe", + "fog", + "foggy", + "foible", + "foist", + "folds", + "foliage", + "folic", + "folio", + "fond", + "fondle", + "fondly", + "fondness", + "foolery", + "foolishly", + "foolproof", + "footed", + "foothill", + "footless", + "footloose", + "footprint", + "footrest", + "foppery", + "foppish", + "foray", + "forby", + "forces", + "forcible", + "fore", + "forearm", + "forebear", + "forebode", + "forecast", + "foreclose", + "forecourt", + "forego", + "forehead", + "foreign", + "foreigner", + "forejudge", + "foreman", + "forepeak", + "foreplay", + "forerun", + "foresail", + "foresee", + "foreshore", + "foresight", + "forestry", + "forests", + "foretell", + "foretold", + "forever", + "foreword", + "forfeit", + "forfend", + "forger", + "forgery", + "forget", + "forgiving", + "forgo", + "fork", + "forkful", + "forklift", + "format", + "formation", + "former", + "formula", + "forsakes", + "forswear", + "fort", + "forte", + "forth", + "fortify", + "fortitude", + "fortnight", + "forum", + "forwards", + "fostered", + "fourfold", + "foursome", + "fourth", + "fracture", + "fragile", + "frail", + "frailty", + "frame", + "franchise", + "frantic", + "frat", + "fraternal", + "fraud", + "fraught", + "fray", + "frazzle", + "freak", + "freaking", + "freakish", + "freaks", + "free", + "freed", + "freelance", + "freely", + "freemason", + "freeplay", + "freesia", + "freezer", + "freight", + "frenetic", + "frequency", + "fresco", + "freshness", + "fret", + "fretful", + "fries", + "frigging", + "fright", + "frighten", + "frightful", + "frigid", + "frilled", + "frills", + "fringe", + "frivolity", + "frivolous", + "frizz", + "frizzle", + "frizzy", + "frontier", + "frostbite", + "frowzy", + "froze", + "frozen", + "frugal", + "frugally", + "fruiting", + "fruition", + "fruity", + "frying", + "fueled", + "fugacious", + "fulcrum", + "fulminate", + "fulsome", + "fume", + "fumigate", + "funds", + "funereal", + "fungible", + "fungous", + "fungus", + "funk", + "funkiest", + "funnies", + "funny", + "furbish", + "furious", + "furled", + "furlong", + "furlough", + "furnish", + "furrier", + "further", + "furtive", + "fusarium", + "fuse", + "fusible", + "fusillade", + "fussed", + "futile", + "futurist", + "gabbling", + "gabled", + "gaffer", + "gagged", + "gaggle", + "gaiety", + "gaily", + "gained", + "gaining", + "gait", + "gala", + "gale", + "gallant", + "gallantly", + "galore", + "galvanic", + "galvanism", + "galvanize", + "gamble", + "gambol", + "game", + "gamebird", + "gamester", + "gamine", + "gaming", + "gamut", + "gardens", + "gargle", + "garish", + "garland", + "garlic", + "garlicky", + "garner", + "garnish", + "garrison", + "garrote", + "garrulous", + "gaseous", + "gastric", + "gastritis", + "gather", + "gathered", + "gaudiest", + "gaudy", + "gauge", + "gauges", + "gawk", + "gawks", + "gay", + "geared", + "geezer", + "gemsbok", + "gendarme", + "genealogy", + "generally", + "generate", + "generic", + "genesis", + "genetics", + "geniality", + "genital", + "genitive", + "genomes", + "genteel", + "gentile", + "gentle", + "gentry", + "genuine", + "geology", + "germane", + "germinate", + "gestalt", + "gestation", + "gesture", + "gestured", + "getaway", + "geyser", + "ghastly", + "gherkin", + "ghosting", + "ghoulish", + "giant", + "gibbous", + "gibe", + "giddy", + "gift", + "gigantic", + "ginseng", + "girdle", + "girlie", + "git", + "give", + "given", + "giver", + "giving", + "glacial", + "glacier", + "gladden", + "gladioli", + "glanced", + "glances", + "glassware", + "glazier", + "gleam", + "glen", + "glided", + "glimmer", + "glimpse", + "glints", + "glioma", + "glittery", + "globes", + "globose", + "globular", + "globules", + "gloom", + "gloried", + "glorify", + "glorious", + "glory", + "glow", + "glut", + "glutinous", + "glycemic", + "gnash", + "goalpost", + "goat", + "goatee", + "goats", + "gobble", + "godly", + "gold", + "golly", + "goodbye", + "goodie", + "goofily", + "gook", + "gopher", + "gordian", + "gorge", + "gory", + "gosling", + "goslings", + "gossamer", + "gourd", + "gourmand", + "gown", + "graceless", + "gradation", + "grade", + "graded", + "graders", + "gradient", + "gradual", + "graffiti", + "grail", + "granary", + "grand", + "grandeur", + "grandiose", + "grandmom", + "grandpa", + "granny", + "grantee", + "grantor", + "granular", + "granulate", + "granule", + "grape", + "graph", + "graphic", + "grapple", + "grasp", + "grasping", + "grassy", + "gratify", + "gratuity", + "gravelly", + "gravity", + "grayed", + "graying", + "greasier", + "green", + "greenback", + "greeter", + "grenadier", + "greying", + "greyness", + "gridlike", + "grief", + "grievance", + "grievous", + "grimace", + "grind", + "grins", + "grip", + "gripes", + "gripped", + "grisly", + "grit", + "groggy", + "groom", + "groomers", + "grope", + "groped", + "grotesque", + "grotto", + "ground", + "grounding", + "group", + "grouping", + "grousing", + "growls", + "growths", + "grudge", + "grueling", + "grumble", + "grumbled", + "grumbling", + "grumpy", + "grungy", + "guard", + "guardrail", + "guerrilla", + "guess", + "guessing", + "guidance", + "guidebook", + "guided", + "guile", + "guileless", + "guilty", + "guinea", + "guise", + "gullible", + "gumbo", + "gummed", + "gumption", + "gunfight", + "gunmetal", + "gunships", + "gunshot", + "gunshots", + "gurney", + "gust", + "gusto", + "gusty", + "gutter", + "guy", + "guzzle", + "gym", + "gyrate", + "gyrating", + "gyre", + "gyroscope", + "habitable", + "habitant", + "habitual", + "habitude", + "hack", + "hackle", + "hackney", + "hackwork", + "haggard", + "haggling", + "hair", + "hairline", + "hairpin", + "hairy", + "halcyon", + "hale", + "halfback", + "halibut", + "hallowed", + "hammer", + "hammering", + "hamming", + "hamper", + "hampers", + "handbag", + "handball", + "handedly", + "handily", + "handling", + "handmade", + "handout", + "handy", + "handyman", + "hang", + "hanger", + "hanker", + "hankering", + "haole", + "happened", + "harangue", + "harass", + "harbinger", + "harbour", + "hardening", + "hardier", + "hardihood", + "hardly", + "harm", + "harmless", + "harness", + "harvest", + "harvests", + "hashed", + "hassle", + "hassling", + "hastily", + "hasty", + "hat", + "hatch", + "hater", + "hatless", + "haunt", + "have", + "havoc", + "haw", + "hawker", + "hawking", + "hawkish", + "hawthorn", + "hazard", + "hazardous", + "haziness", + "head", + "headed", + "headland", + "headrest", + "heads", + "headship", + "heady", + "heal", + "healed", + "healthful", + "hearken", + "hearsay", + "hearted", + "hearten", + "heartless", + "heated", + "heathen", + "heavy", + "hectares", + "hedge", + "hedges", + "heedless", + "heifer", + "height", + "heinie", + "heinous", + "heist", + "helicity", + "hellcat", + "helm", + "helo", + "helpful", + "hen", + "henchman", + "henpeck", + "heptagon", + "heptarchy", + "her", + "herbarium", + "hereby", + "heredity", + "heresy", + "heretic", + "herewith", + "heritage", + "hernia", + "heroic", + "herstory", + "hesitancy", + "hesitant", + "hetero", + "heterodox", + "hexagon", + "hexapod", + "heyday", + "hiatus", + "hibernal", + "hickory", + "hideaway", + "hideous", + "hie", + "high", + "higher", + "hightail", + "hiker", + "hilarious", + "hillbilly", + "hillock", + "hillside", + "hinder", + "hindmost", + "hindrance", + "hint", + "hints", + "hippest", + "hirsute", + "his", + "hissy", + "history", + "hitherto", + "hive", + "hmong", + "hoard", + "hoarse", + "hobbit", + "hobnob", + "hock", + "hockey", + "hog", + "holdover", + "hole", + "hollowed", + "hollowly", + "homage", + "home", + "homed", + "homely", + "homemade", + "homemaker", + "homespun", + "homework", + "homily", + "homonym", + "homophone", + "homos", + "honoree", + "honorific", + "hood", + "hoodwink", + "hook", + "hooks", + "hoot", + "hopeless", + "hopscotch", + "horde", + "hornless", + "horny", + "horribly", + "hosed", + "hosiery", + "hosing", + "hospice", + "host", + "hostility", + "hot", + "hotline", + "howitzer", + "huckster", + "huddled", + "huff", + "huffed", + "hum", + "human", + "humane", + "humanize", + "humbling", + "humbug", + "humiliate", + "humming", + "hummocks", + "humorless", + "humping", + "hunch", + "hunger", + "hungry", + "hunk", + "hunks", + "hunt", + "hunts", + "hurdle", + "hurdler", + "hurt", + "hurting", + "hurtle", + "husband", + "hussar", + "hustle", + "hustled", + "hustlers", + "hybrid", + "hydra", + "hydraulic", + "hydride", + "hydrous", + "hygiene", + "hygienist", + "hyphal", + "hypnosis", + "hypnotic", + "hypnotism", + "hypnotize", + "hypocrisy", + "hypocrite", + "hysteria", + "icebox", + "icecream", + "iceman", + "ichthyic", + "icily", + "iciness", + "icon", + "icy", + "ideal", + "idealize", + "identify", + "idiom", + "idolize", + "idylls", + "ignoble", + "ignore", + "ignored", + "iguana", + "ill", + "illegal", + "illegible", + "illiberal", + "illicit", + "illiquid", + "illness", + "illogical", + "illumine", + "illusion", + "illusive", + "illusory", + "image", + "imaginary", + "imagine", + "imago", + "imbalance", + "imbibe", + "imbroglio", + "imbrue", + "imitation", + "imitator", + "immature", + "immense", + "immensity", + "immerse", + "immersion", + "immigrant", + "immigrate", + "imminence", + "imminent", + "immodest", + "immoral", + "immovable", + "immune", + "immutable", + "impact", + "impair", + "impaired", + "impale", + "impaling", + "impartial", + "impassive", + "impatient", + "impede", + "impedes", + "impel", + "impend", + "imperil", + "imperiled", + "imperious", + "impetuous", + "impetus", + "impiety", + "impinges", + "impious", + "impliable", + "implicate", + "implicit", + "implode", + "implore", + "imply", + "impolite", + "impolitic", + "important", + "importune", + "imposed", + "impotent", + "imprints", + "impromptu", + "improper", + "improved", + "improvise", + "imprudent", + "impudence", + "impugn", + "impulse", + "impulsion", + "impulsive", + "impunity", + "impure", + "impurity", + "impute", + "inability", + "inactive", + "inane", + "inanimate", + "inapt", + "inaudible", + "inboard", + "inborn", + "inbred", + "incentive", + "inception", + "inceptive", + "incessant", + "inchmeal", + "inchoate", + "incidence", + "incident", + "incipient", + "incise", + "incisor", + "incite", + "inciting", + "include", + "included", + "incorrect", + "increment", + "indelible", + "indepth", + "index", + "indians", + "indicant", + "indicator", + "indict", + "indigence", + "indigent", + "indignant", + "indignity", + "indolence", + "indolent", + "indoors", + "induct", + "induction", + "indulgent", + "inebriate", + "inedible", + "ineffable", + "inept", + "inequity", + "inert", + "inertia", + "infamous", + "infamy", + "infancy", + "infected", + "inference", + "inferior", + "infernal", + "infest", + "infidel", + "infinite", + "infinity", + "infirm", + "infirmary", + "infirmity", + "inflamed", + "inflects", + "influence", + "influx", + "informant", + "infringe", + "infuse", + "infusion", + "ingenious", + "ingenuity", + "ingenuous", + "ingraft", + "ingrate", + "inhabited", + "inherence", + "inherent", + "inhibit", + "inhuman", + "inhume", + "inimical", + "iniquity", + "initial", + "initiate", + "inject", + "injustice", + "inkling", + "inky", + "inland", + "inlay", + "inlet", + "inmost", + "innards", + "innocuous", + "innovate", + "innuendo", + "inquire", + "inquiry", + "inroad", + "inroads", + "inscribe", + "insecure", + "insertion", + "inside", + "insidious", + "insight", + "insinuate", + "insipid", + "insistent", + "insolence", + "insolent", + "insomnia", + "insomniac", + "inspect", + "inspector", + "inspiring", + "instance", + "instant", + "instigate", + "instill", + "insular", + "insulate", + "insult", + "insulted", + "insure", + "insured", + "insurgent", + "intake", + "integrity", + "intellect", + "intensely", + "intension", + "intensive", + "intention", + "interact", + "intercede", + "intercept", + "interdict", + "interface", + "interim", + "interior", + "interlude", + "intermit", + "intermix", + "interplay", + "interpose", + "interpret", + "interrupt", + "intersect", + "interval", + "intervale", + "intervene", + "interview", + "intestacy", + "intestate", + "intestine", + "intimacy", + "intrepid", + "intricacy", + "intricate", + "intrigue", + "intrinsic", + "intromit", + "introvert", + "intrude", + "intrusion", + "intrusive", + "intubate", + "intuition", + "inundate", + "inure", + "invades", + "invalid", + "invasion", + "invective", + "inveigh", + "inventive", + "inverse", + "inversion", + "invert", + "investing", + "investor", + "invidious", + "invitee", + "invoke", + "involve", + "inward", + "inwardly", + "ionized", + "iota", + "ipods", + "irascible", + "irate", + "ire", + "irk", + "irksome", + "ironclad", + "ironed", + "ironing", + "irony", + "irradiate", + "irrigant", + "irrigate", + "irritable", + "irritancy", + "irritant", + "irritate", + "irruption", + "isle", + "islet", + "isobar", + "isolate", + "isolated", + "issuers", + "issuing", + "italic", + "itch", + "itches", + "itemized", + "itinerant", + "itinerary", + "itinerate", + "jab", + "jacked", + "jail", + "jailing", + "jangle", + "jar", + "jargon", + "jarring", + "jaundice", + "jauntily", + "jawed", + "jazz", + "jazzy", + "jealousy", + "jeans", + "jelly", + "jested", + "jewel", + "jibe", + "jiffy", + "jiggle", + "jiggles", + "jigs", + "jilted", + "jingled", + "jingoism", + "jinx", + "jockey", + "jocks", + "jocose", + "jocular", + "jogger", + "joggle", + "join", + "joining", + "joins", + "joke", + "jolly", + "jostle", + "jot", + "joust", + "jousting", + "jovial", + "juche", + "judgment", + "judicial", + "judiciary", + "judicious", + "juggle", + "jugglery", + "jugular", + "juice", + "juicy", + "juke", + "jumble", + "jumbled", + "jump", + "jumpsuit", + "junction", + "juncture", + "junior", + "juniper", + "junker", + "junket", + "junky", + "junta", + "juntas", + "juridical", + "juristic", + "juror", + "jutting", + "juvenile", + "juxtapose", + "kales", + "kaput", + "karate", + "karma", + "keen", + "keeps", + "keepsake", + "kerchief", + "kernel", + "kerygma", + "keystone", + "khaki", + "khakis", + "kibbles", + "kickball", + "killing", + "kiln", + "kiloliter", + "kilometer", + "kilowatt", + "kilted", + "kimono", + "kind", + "kingling", + "kingship", + "kinking", + "kinks", + "kinsfolk", + "kinsman", + "kirtle", + "kissed", + "kitty", + "knavery", + "knead", + "kneecaps", + "kneejerk", + "knife", + "knight", + "knitting", + "knocked", + "knot", + "knotty", + "knower", + "knowingly", + "knowledge", + "knuckled", + "kumbaya", + "labeled", + "labelled", + "labial", + "laborious", + "labyrinth", + "lace", + "lacerate", + "lack", + "lactation", + "lacteal", + "lactic", + "laddie", + "ladle", + "ladybugs", + "laggard", + "lags", + "laid", + "lake", + "lambast", + "lame", + "lance", + "landform", + "landlord", + "landmark", + "landscape", + "languid", + "languor", + "lap", + "lapdog", + "lapel", + "lapse", + "larder", + "larders", + "lark", + "lash", + "lashed", + "lassie", + "lassies", + "lately", + "latency", + "latent", + "later", + "lateral", + "latish", + "lattice", + "laud", + "laudable", + "laudation", + "laudatory", + "laughably", + "laundress", + "laureate", + "lave", + "lavish", + "law", + "lawfully", + "lawgiver", + "lawmaker", + "lawsuit", + "lax", + "laxative", + "lay", + "laydown", + "layman", + "laze", + "laziness", + "lazy", + "lea", + "leadeth", + "leaflet", + "leafy", + "leak", + "leaked", + "leaker", + "leakers", + "leaky", + "leapers", + "least", + "leaven", + "leaver", + "lebanese", + "leech", + "leeward", + "leftism", + "legacy", + "legalize", + "legalized", + "legally", + "legging", + "legible", + "legionary", + "legislate", + "legume", + "leisure", + "lend", + "lenders", + "leniency", + "lenient", + "lens", + "leonine", + "leopard", + "leprosy", + "less", + "lessen", + "lest", + "lethargy", + "lettered", + "leukemia", + "levee", + "lever", + "leverage", + "leviathan", + "levity", + "levy", + "lewd", + "lexicon", + "liable", + "liaisons", + "libel", + "liberal", + "liberate", + "librarian", + "library", + "licensed", + "licit", + "lick", + "licorice", + "liege", + "lien", + "lies", + "lieu", + "lifeless", + "lifelike", + "lifelong", + "lifes", + "lifetime", + "ligament", + "ligature", + "light", + "lightbulb", + "lighter", + "ligneous", + "lik", + "like", + "likely", + "liken", + "likened", + "likewise", + "liking", + "lilt", + "liminal", + "limousine", + "limp", + "limply", + "limpness", + "limps", + "linear", + "liner", + "lingered", + "lingo", + "lingua", + "lingual", + "linguist", + "liniment", + "linseed", + "lip", + "liquefy", + "liqueur", + "liquidate", + "liquor", + "listed", + "listen", + "listened", + "listless", + "lite", + "literacy", + "literal", + "literally", + "literary", + "lithe", + "lithesome", + "lithotype", + "litigant", + "litigate", + "litigious", + "litter", + "littoral", + "liturgy", + "live", + "liven", + "livened", + "liver", + "livid", + "loaf", + "loam", + "loamy", + "loans", + "loath", + "loathe", + "lobotomy", + "local", + "localized", + "located", + "locative", + "loch", + "loci", + "lockers", + "lockouts", + "locks", + "lode", + "lodge", + "lodgepole", + "lodgers", + "lodgment", + "lofty", + "logger", + "logic", + "logical", + "logically", + "logician", + "loiterer", + "lollipop", + "long", + "longer", + "longevity", + "longingly", + "longitude", + "looked", + "loosely", + "loosen", + "loot", + "lopping", + "lordling", + "lore", + "losing", + "loss", + "lot", + "lotus", + "lough", + "lounge", + "lounges", + "louse", + "lousy", + "lout", + "louts", + "lovable", + "lovably", + "loveable", + "lovelorn", + "loving", + "lower", + "lowly", + "loyalist", + "loyally", + "loyalty", + "lubricate", + "lucid", + "lucrative", + "ludicrous", + "lug", + "lugged", + "lukewarm", + "lull", + "lumber", + "luminary", + "luminous", + "lunacy", + "lunar", + "lunatic", + "lunch", + "lune", + "lupine", + "lupines", + "lurid", + "lurking", + "luscious", + "lustful", + "lustrous", + "luxuriant", + "luxuriate", + "luxury", + "lye", + "lying", + "lynch", + "lyre", + "lyres", + "lyric", + "ma'am", + "machinery", + "machinist", + "mackerel", + "macrocosm", + "madden", + "maestro", + "magenta", + "magic", + "magical", + "magician", + "maglev", + "magnate", + "magnet", + "magnetize", + "magnitude", + "maharaja", + "mailbox", + "mailing", + "main", + "mainline", + "maintain", + "maize", + "makeshift", + "makeup", + "malady", + "malaria", + "malawian", + "malay", + "malign", + "malignant", + "malleable", + "mallet", + "malt", + "malted", + "maltreat", + "mambo", + "mammoth", + "managed", + "mandarin", + "mandate", + "mandated", + "mandatory", + "mane", + "maneuver", + "manger", + "mangled", + "mangos", + "mangy", + "manhole", + "manhunt", + "mania", + "maniac", + "manifest", + "manifesto", + "manlike", + "manliness", + "manna", + "manned", + "mannerism", + "manor", + "mans", + "mantel", + "mantle", + "manumit", + "map", + "mappings", + "marble", + "marbled", + "march", + "marchers", + "marijuana", + "marinade", + "marine", + "maritime", + "marked", + "markers", + "markings", + "marksman", + "marmalade", + "maroon", + "married", + "marry", + "martial", + "martian", + "martinis", + "martyrdom", + "marvel", + "marxism", + "mascara", + "masked", + "masonry", + "massacre", + "massage", + "masses", + "masseurs", + "massive", + "mastery", + "mastiffs", + "mastoid", + "matched", + "material", + "maternal", + "maternity", + "matinee", + "matricide", + "matrimony", + "matrix", + "matter", + "mature", + "maudlin", + "mausoleum", + "maverick", + "mawkish", + "maxim", + "maximize", + "may", + "maze", + "mead", + "meager", + "meagerly", + "mean", + "meander", + "meanies", + "means", + "measured", + "measures", + "mechanics", + "medallion", + "meddling", + "medial", + "mediate", + "medicate", + "medicine", + "medieval", + "mediocre", + "meditate", + "medium", + "medley", + "meek", + "melded", + "meliorate", + "mellow", + "melodious", + "melodrama", + "melted", + "memento", + "memorable", + "men", + "menace", + "menagerie", + "mend", + "mendicant", + "menfolk", + "mental", + "mentality", + "mentally", + "menthol", + "mention", + "mentor", + "mentored", + "mercenary", + "merciful", + "merciless", + "mere", + "merge", + "merited", + "mesmerize", + "messed", + "messieurs", + "messing", + "mestizo", + "metal", + "metaphor", + "mete", + "metonymy", + "metric", + "metronome", + "mettle", + "micro", + "microchip", + "microcosm", + "middleman", + "midges", + "midlife", + "midline", + "midpoint", + "midriff", + "midriffs", + "midsole", + "midsummer", + "midwife", + "mien", + "might", + "mignon", + "migrant", + "migrate", + "migration", + "migratory", + "mikes", + "mil", + "mileage", + "miles", + "milieu", + "militant", + "militate", + "militia", + "milk", + "milking", + "milky", + "millet", + "milling", + "millionth", + "mime", + "mimic", + "mimics", + "minaret", + "minces", + "mind", + "mindless", + "mined", + "mineral", + "mingle", + "miniature", + "minimize", + "minion", + "ministry", + "minivans", + "minority", + "minuet", + "minus", + "minute", + "minutia", + "mirage", + "misbehave", + "miscount", + "miscreant", + "misdeed", + "miser", + "miserly", + "misfire", + "misfit", + "mishap", + "mishmash", + "mislaid", + "mislay", + "mismanage", + "misnomer", + "misogamy", + "misogyny", + "misplace", + "misplaced", + "misrule", + "missal", + "missile", + "missive", + "mistily", + "mistrust", + "misty", + "misuse", + "mite", + "miter", + "mitigate", + "mixed", + "mixture", + "mnemonics", + "moat", + "mobocracy", + "moccasin", + "mocha", + "mock", + "mockery", + "model", + "moderate", + "moderator", + "modernity", + "modernize", + "modify", + "modish", + "modulate", + "moduli", + "moistly", + "molar", + "molecule", + "molehill", + "mollify", + "molt", + "momentary", + "momentous", + "momentum", + "monarch", + "monarchy", + "monastery", + "monetary", + "monger", + "mongrel", + "monied", + "monition", + "monitory", + "monks", + "monocracy", + "monogamy", + "monogram", + "monograph", + "monolith", + "monologue", + "monomania", + "monopoly", + "monotone", + "monotony", + "monsieur", + "monsoon", + "monster", + "mood", + "moonbeam", + "moonlit", + "moored", + "mooring", + "mop", + "moral", + "morale", + "moralist", + "morality", + "moralize", + "moray", + "morbid", + "mordant", + "more", + "moreover", + "morgue", + "moribund", + "mormon", + "morn", + "morning", + "morose", + "morph", + "morsel", + "mortar", + "mortician", + "mortise", + "mosaic", + "moslems", + "motley", + "motor", + "motorcar", + "motorist", + "motto", + "mound", + "mounted", + "mounting", + "mourn", + "mournful", + "mouser", + "mouth", + "mouthed", + "mouthful", + "mouton", + "move", + "movement", + "mower", + "muddle", + "muddled", + "muffle", + "muffler", + "mug", + "mulatto", + "muleteer", + "mull", + "mullah", + "multiform", + "multiplex", + "multiply", + "mundane", + "municipal", + "murres", + "muscle", + "music", + "musicale", + "musically", + "muskie", + "mussels", + "mustache", + "muster", + "mutagens", + "mutation", + "mute", + "muted", + "mutilate", + "mutilated", + "mutiny", + "muzzling", + "myriad", + "mystic", + "mystical", + "myth", + "mythology", + "nabbed", + "naked", + "nameless", + "namibian", + "naming", + "nanny", + "nap", + "naphtha", + "narcos", + "narrate", + "narration", + "narrative", + "narrator", + "narrow", + "narrowed", + "narrowly", + "nasal", + "nascent", + "natal", + "national", + "native", + "natty", + "naturally", + "naught", + "naughty", + "nausea", + "nauseate", + "nauseous", + "nautical", + "naval", + "nave", + "navel", + "navies", + "navigable", + "navigate", + "nay", + "nearing", + "nearside", + "neaten", + "neatnik", + "nebula", + "necessary", + "necessity", + "neck", + "necklace", + "necktie", + "necrology", + "necropsy", + "necrosis", + "nectar", + "nectarine", + "needed", + "needy", + "nefarious", + "negate", + "negation", + "negligee", + "negligent", + "neighbor", + "neocracy", + "neology", + "neophyte", + "nerdy", + "nestle", + "nestled", + "nestling", + "nests", + "net", + "netball", + "nettle", + "network", + "neural", + "neurology", + "neuter", + "neutered", + "neutral", + "newborn", + "newcomer", + "news", + "newsman", + "newsstand", + "next", + "nexus", + "nicety", + "nicked", + "nigerian", + "niggardly", + "nightmare", + "nihilist", + "nil", + "nimble", + "nine", + "nit", + "nitrate", + "nitride", + "nobody", + "nocked", + "nocturnal", + "noise", + "noiseless", + "noisome", + "noisy", + "nomad", + "nomads", + "nomic", + "nominal", + "nominate", + "nominee", + "nonentity", + "nonfarm", + "nonmember", + "nonpareil", + "nonsense", + "nonstop", + "noon", + "noose", + "nope", + "norm", + "normalcy", + "normally", + "norse", + "northern", + "nosegay", + "nostalgia", + "nostalgic", + "nostrum", + "not", + "notch", + "notched", + "nothing", + "notion", + "notorious", + "novelty", + "novice", + "nowadays", + "nowhere", + "noxious", + "nuance", + "nub", + "nubbly", + "nubians", + "nucleon", + "nucleus", + "nude", + "nudge", + "nudity", + "nugatory", + "nuggets", + "nuisance", + "nuking", + "numeracy", + "numerical", + "numerous", + "nunnery", + "nuptial", + "nurse", + "nurture", + "nurtured", + "nutriment", + "nutritive", + "nuttier", + "oaken", + "oaks", + "oakum", + "oar", + "obdurate", + "obeisance", + "obelisk", + "obese", + "obesity", + "obey", + "obituary", + "objection", + "objective", + "objector", + "obligate", + "oblique", + "oblivion", + "oblong", + "obnoxious", + "obsequies", + "observant", + "obsolete", + "obstinacy", + "obstruct", + "obtrude", + "obtrusive", + "obtuse", + "obvert", + "obviate", + "occasion", + "occlude", + "occult", + "occupant", + "occupied", + "occur", + "oceanic", + "ochre", + "octagon", + "octave", + "octavo", + "octet", + "ocular", + "oculist", + "oddballs", + "oddity", + "ode", + "odious", + "odium", + "odorants", + "odorous", + "oeuvre", + "off", + "offed", + "offended", + "offensive", + "offhand", + "officiate", + "officious", + "offload", + "offshoot", + "offsides", + "ogre", + "oil", + "oiled", + "ointment", + "okapi", + "okay", + "oke", + "oldie", + "oldies", + "olfactory", + "omega", + "omelette", + "omen", + "omicron", + "ominous", + "omission", + "once", + "oncology", + "onerous", + "ongoing", + "onion", + "online", + "onrush", + "onset", + "onslaught", + "onstage", + "onus", + "ooze", + "opals", + "opaque", + "open", + "opened", + "openness", + "operant", + "operate", + "operative", + "operator", + "operetta", + "opinion", + "opinions", + "opium", + "opponent", + "opportune", + "opposing", + "opposite", + "oppress", + "optic", + "optician", + "optics", + "optimism", + "optimist", + "option", + "optometry", + "opulence", + "opulent", + "oracular", + "oral", + "orange", + "orate", + "oration", + "orator", + "oratorio", + "oratory", + "orb", + "orbiting", + "ordains", + "ordeal", + "order", + "ordinal", + "ordinary", + "ordnance", + "ore", + "orgies", + "origin", + "original", + "originate", + "ornate", + "ornately", + "orphanage", + "orthodox", + "orthodoxy", + "oscillate", + "osculate", + "osmosis", + "osprey", + "ossify", + "ostracism", + "ostracize", + "ostrich", + "other", + "others", + "otter", + "ought", + "oust", + "out", + "outback", + "outbreak", + "outburst", + "outcast", + "outcome", + "outcry", + "outdo", + "outdoor", + "outfit", + "outfox", + "outlast", + "outlasts", + "outlaw", + "outlawed", + "outlay", + "outlive", + "outpaced", + "outpost", + "outrage", + "outraged", + "outreach", + "outride", + "outrigger", + "outright", + "outset", + "outside", + "outskirt", + "outstrip", + "outward", + "outweigh", + "oval", + "ovary", + "over", + "overcome", + "overdo", + "overdose", + "overeat", + "overhang", + "overhead", + "overjoyed", + "overlap", + "overleap", + "overload", + "overlook", + "overlord", + "overpass", + "overpay", + "overpower", + "overreach", + "overrun", + "oversee", + "overseer", + "oversold", + "overtax", + "overthrow", + "overtime", + "overtone", + "overtook", + "overture", + "overview", + "owner", + "pacify", + "package", + "packet", + "pact", + "padding", + "paddle", + "pagan", + "pageant", + "paid", + "pain", + "painfully", + "painting", + "pair", + "palate", + "palatial", + "palest", + "palette", + "palinode", + "pall", + "pallet", + "palliate", + "pallid", + "palm", + "palpable", + "palsy", + "paly", + "pamper", + "pamphlet", + "panacea", + "pandemic", + "panegyric", + "panel", + "pangs", + "panic", + "panicky", + "panoply", + "panoptic", + "panorama", + "pantheism", + "pantomime", + "papacy", + "papists", + "papyri", + "papyrus", + "par", + "parable", + "parabolic", + "parachute", + "paradise", + "paradox", + "paragon", + "parallel", + "paralysis", + "paralyze", + "paramount", + "paramour", + "paranoid", + "parasite", + "parched", + "pardons", + "pare", + "parentage", + "parenting", + "pares", + "parfaits", + "parietal", + "parish", + "parisian", + "parities", + "parity", + "parlance", + "parlay", + "parley", + "parlor", + "parody", + "paroxysm", + "parricide", + "parrot", + "parry", + "parse", + "parsing", + "part", + "partible", + "partisan", + "partition", + "parts", + "pass", + "passible", + "passing", + "passive", + "past", + "pastoral", + "pat", + "patched", + "patent", + "paternal", + "paternity", + "pathos", + "patiently", + "patina", + "patriarch", + "patrician", + "patrimony", + "patriot", + "patriots", + "patronize", + "patter", + "patting", + "paucity", + "pauper", + "pauperism", + "pave", + "pavilion", + "pawn", + "pawned", + "pawnshop", + "payable", + "payee", + "peaceable", + "peaceful", + "pearl", + "pec", + "peccable", + "peccant", + "pectoral", + "pecuniary", + "pedagogue", + "pedagogy", + "pedal", + "pedant", + "peddle", + "peddler", + "pedestal", + "pedigree", + "peek", + "peeks", + "peels", + "peep", + "peer", + "peerage", + "peerless", + "peeve", + "peeved", + "peeves", + "peevish", + "peg", + "pegboard", + "pelagic", + "pellagra", + "pellucid", + "penalty", + "penance", + "penchant", + "pendant", + "pendants", + "pending", + "pendulous", + "pendulum", + "penetrate", + "penitence", + "penitent", + "pennant", + "penned", + "pension", + "pentad", + "pentagon", + "pentagram", + "penthouse", + "penurious", + "penury", + "peopled", + "per", + "perceive", + "percolate", + "perennial", + "perfidy", + "perforate", + "perform", + "perfumery", + "perhaps", + "perigee", + "perineal", + "perjure", + "perjury", + "permanent", + "permeate", + "permit", + "peroxide", + "perp", + "persevere", + "persist", + "personage", + "personal", + "personify", + "personnel", + "perspire", + "persuade", + "pertinent", + "perturb", + "perusal", + "pervade", + "pervasion", + "pervasive", + "perverse", + "pervert", + "pervious", + "pesky", + "pestilent", + "peter", + "petrify", + "petty", + "petulance", + "petulant", + "pewter", + "pharmacy", + "phase", + "philander", + "philately", + "philology", + "phonemic", + "phonetic", + "phonic", + "phonogram", + "phonology", + "phony", + "physicist", + "physics", + "physique", + "pianists", + "pianos", + "piazzas", + "picayune", + "piccolo", + "picked", + "picket", + "picky", + "piddling", + "piece", + "piecemeal", + "pier", + "piercing", + "piety", + "pig", + "pigeon", + "pile", + "pillage", + "pillaged", + "pillar", + "pillbox", + "pillory", + "pillowy", + "pilot", + "pimp", + "pimped", + "pin", + "pincers", + "pinchers", + "pine", + "pinecone", + "pinheads", + "pinions", + "pinker", + "pinnacle", + "pinochle", + "pinot", + "pinstripe", + "pinup", + "pioneer", + "pious", + "pipa", + "pipe", + "pipefish", + "piping", + "pique", + "piracy", + "piranha", + "piss", + "pissing", + "piste", + "pistils", + "pistol", + "piston", + "pitch", + "pitchers", + "pitching", + "piteous", + "pith", + "pitiable", + "pitiful", + "pitifully", + "pitiless", + "pitot", + "pittance", + "pivoting", + "pizza", + "pizzas", + "placate", + "placid", + "plagued", + "plait", + "plan", + "plant", + "platitude", + "plaudit", + "plausible", + "playback", + "playful", + "playfully", + "playing", + "plea", + "plead", + "pleasant", + "pleasing", + "pleated", + "plebeian", + "pled", + "pledgee", + "pledgeor", + "plenary", + "plenitude", + "plenteous", + "plenty", + "plethora", + "pleura", + "pliant", + "plight", + "plod", + "plot", + "plotted", + "plover", + "plowman", + "pluck", + "plug", + "plumb", + "plumber", + "plume", + "plumed", + "plummet", + "plump", + "plunder", + "plunger", + "plunked", + "plural", + "plurality", + "plusses", + "plutonium", + "pneumatic", + "poacher", + "pocked", + "pocketed", + "poesy", + "poet", + "poetaster", + "poetic", + "poetics", + "poignancy", + "poignant", + "point", + "poise", + "poison", + "poisoned", + "poke", + "polar", + "polarity", + "polemics", + "police", + "policy", + "polish", + "polished", + "politic", + "politics", + "polled", + "pollen", + "pollute", + "polluter", + "polyarchy", + "polycracy", + "polygamy", + "polyglot", + "polygon", + "pommel", + "pomposity", + "pompous", + "poncho", + "ponder", + "ponderous", + "ponds", + "pontiff", + "pontiffs", + "pontoon", + "poof", + "pooled", + "pooping", + "poorly", + "populace", + "popularly", + "populist", + "populous", + "pored", + "porous", + "port", + "portable", + "portend", + "portent", + "portfolio", + "portion", + "pose", + "posit", + "position", + "positive", + "posse", + "posses", + "possess", + "possessor", + "possible", + "possibly", + "postdate", + "poster", + "posterior", + "postwar", + "potassium", + "potency", + "potent", + "potentate", + "potential", + "potholed", + "potion", + "potted", + "pounding", + "powder", + "powdered", + "powerless", + "practiced", + "praising", + "prancing", + "prate", + "prattle", + "pray", + "preacher", + "preachy", + "preamble", + "precede", + "precedent", + "precipice", + "precise", + "precision", + "preclude", + "precursor", + "precut", + "predatory", + "predicate", + "predict", + "preempt", + "preempts", + "preengage", + "preexist", + "preface", + "prefatory", + "prefect", + "prefer", + "prefers", + "prefix", + "prejudice", + "prelacy", + "prelate", + "prelude", + "premature", + "premier", + "premise", + "premium", + "premiums", + "prenatal", + "preoccupy", + "preordain", + "prepaid", + "presage", + "presages", + "preschool", + "prescient", + "prescript", + "preserve", + "presided", + "pretend", + "pretender", + "pretest", + "pretext", + "pretty", + "pretzel", + "prevalent", + "preview", + "prey", + "prickle", + "pride", + "prided", + "priests", + "priggish", + "prim", + "prima", + "primate", + "prime", + "primer", + "primeval", + "primitive", + "primrose", + "principal", + "principle", + "print", + "printer", + "priory", + "prisms", + "pristine", + "private", + "privateer", + "privilege", + "privity", + "privy", + "prized", + "prizing", + "pro", + "proactive", + "probate", + "probation", + "probe", + "probes", + "probity", + "procedure", + "proceed", + "proceeds", + "processed", + "proclaim", + "proctor", + "prodigal", + "prodigy", + "producer", + "producing", + "profane", + "professor", + "proffer", + "profile", + "profiteer", + "profs", + "profuse", + "progeny", + "program", + "project", + "projector", + "prolific", + "prolix", + "prologue", + "prolong", + "prolonged", + "prom", + "promenade", + "prominent", + "promise", + "promised", + "promoter", + "prompting", + "promptly", + "prone", + "proofread", + "propagate", + "propane", + "propel", + "propeller", + "property", + "prophecy", + "prophesy", + "proposed", + "proposes", + "propound", + "propriety", + "prorated", + "prosaic", + "proscribe", + "proselyte", + "prosody", + "prospect", + "prostrate", + "protean", + "protect", + "protector", + "protege", + "protester", + "protocol", + "prototype", + "protract", + "protrude", + "proven", + "proverb", + "provident", + "provider", + "proviso", + "provokes", + "prow", + "prowess", + "prowl", + "proxy", + "prudence", + "prudery", + "prudish", + "pruned", + "prurient", + "pseudo", + "pseudonym", + "psychic", + "psychotic", + "psychs", + "puberty", + "pudgy", + "puerile", + "puffs", + "puissant", + "pullback", + "pulley", + "pulling", + "pulmonary", + "pumas", + "punches", + "punctual", + "puncture", + "punctured", + "pungency", + "pungent", + "punish", + "punished", + "punishing", + "punitive", + "punt", + "pupa", + "pupilage", + "purchase", + "purchased", + "purebred", + "purgatory", + "puritan", + "purity", + "purl", + "purloin", + "purport", + "purpose", + "purrs", + "pursued", + "pursuer", + "purveyor", + "push", + "pushcart", + "pushers", + "puzzle", + "puzzles", + "pyre", + "pyromania", + "pyx", + "quackery", + "quad", + "quadrant", + "quadrate", + "quadruple", + "quaint", + "quainter", + "quaintly", + "qualify", + "qualm", + "quandary", + "quant", + "quantity", + "quarrel", + "quarter", + "quarterly", + "quartet", + "quarto", + "quartz", + "quay", + "queerest", + "quelled", + "queried", + "querulous", + "query", + "question", + "queue", + "quibble", + "quick", + "quickly", + "quiescent", + "quiet", + "quietism", + "quietly", + "quietus", + "quills", + "quintet", + "quirk", + "quit", + "quite", + "quixotic", + "quoted", + "rabbis", + "rabid", + "raccoons", + "racist", + "racy", + "radiance", + "radiate", + "radical", + "radiology", + "radix", + "raffle", + "raft", + "rage", + "ragged", + "raging", + "raid", + "raillery", + "rainy", + "raise", + "rake", + "raked", + "ram", + "rambler", + "ramified", + "ramify", + "ramose", + "rampaging", + "rampant", + "rampart", + "ramparts", + "rancor", + "range", + "rank", + "ranked", + "rankest", + "rankle", + "rankled", + "ranks", + "rap", + "rapacious", + "rapid", + "rapine", + "rapper", + "rappers", + "rapt", + "raptorial", + "rapturous", + "rarebit", + "rasa", + "rash", + "rasping", + "raspy", + "rat", + "rated", + "rather", + "ratified", + "ration", + "rational", + "rationed", + "ratted", + "rattles", + "ratty", + "raucous", + "raunchy", + "ravage", + "ravaged", + "ravenous", + "raves", + "ravine", + "raving", + "ravish", + "raw", + "reachable", + "reactant", + "reaction", + "readable", + "readily", + "readjust", + "ready", + "realism", + "realist", + "realize", + "realizes", + "realm", + "realtime", + "realtor", + "reamer", + "reaper", + "rear", + "rearmed", + "rearrange", + "reasoned", + "reassign", + "reassure", + "reawaken", + "rebelled", + "rebounds", + "rebuff", + "rebuffs", + "rebuild", + "rebuilt", + "rebuke", + "rebut", + "rec", + "recant", + "recapture", + "recast", + "recede", + "receding", + "receive", + "recent", + "receptive", + "recessive", + "reck", + "reckless", + "reckons", + "reclaim", + "recline", + "recluse", + "reclusive", + "reclusory", + "recognize", + "recoil", + "recollect", + "recording", + "recouped", + "recourse", + "recover", + "recreant", + "recreate", + "recruit", + "rectify", + "rectitude", + "recur", + "recure", + "recurrent", + "recused", + "redder", + "redeploy", + "redesign", + "redolence", + "redolent", + "redound", + "redress", + "reducible", + "redundant", + "reef", + "refer", + "referable", + "referee", + "refereed", + "reference", + "referrer", + "refigure", + "refinery", + "reflected", + "reflector", + "reform", + "reformer", + "refract", + "refrains", + "refresh", + "refusal", + "refused", + "refute", + "refutes", + "regal", + "regale", + "regalia", + "regality", + "regent", + "regicide", + "regime", + "regimen", + "regiment", + "regnant", + "regress", + "regretful", + "regularly", + "rehabbed", + "rehash", + "rehearse", + "reign", + "reimburse", + "rein", + "reindeer", + "reinstate", + "reiterate", + "reject", + "rejected", + "rejection", + "rejoin", + "relapse", + "relapses", + "relaxed", + "relay", + "relaying", + "released", + "relegate", + "relent", + "relevant", + "reliable", + "reliance", + "reliant", + "relies", + "relieved", + "reliquary", + "relish", + "reload", + "reluctant", + "remanded", + "remarry", + "remedy", + "remiss", + "remission", + "remodel", + "remotely", + "renames", + "render", + "rendition", + "renege", + "renewal", + "renovate", + "renovated", + "rent", + "rents", + "reopening", + "repaint", + "repair", + "repairman", + "reparable", + "repartee", + "repeal", + "repel", + "repellent", + "repertory", + "repine", + "replace", + "replay", + "replenish", + "replete", + "replica", + "replied", + "reply", + "report", + "reports", + "reposed", + "reprehend", + "repress", + "repressed", + "reprieve", + "reprimand", + "reprisal", + "reprise", + "reprobate", + "reprocess", + "reproduce", + "reproof", + "reptilian", + "repudiate", + "repugnant", + "repulse", + "repulsed", + "repulsive", + "repute", + "request", + "requested", + "requiem", + "requisite", + "requital", + "requite", + "rerun", + "resale", + "rescind", + "research", + "reseat", + "resent", + "reserved", + "reservoir", + "reset", + "resettle", + "residue", + "residuum", + "resilient", + "resistant", + "resistive", + "resolved", + "resonance", + "resonate", + "resource", + "respect", + "respects", + "respite", + "rested", + "restored", + "rests", + "resulted", + "resupply", + "resurgent", + "retained", + "retake", + "retaliate", + "retarded", + "retch", + "retched", + "retells", + "retention", + "retest", + "retests", + "reticence", + "reticent", + "retinue", + "retiring", + "retitle", + "retort", + "retouch", + "retrace", + "retraces", + "retract", + "retrench", + "retrieve", + "retro", + "return", + "reunion", + "reunite", + "revealed", + "reveler", + "revelry", + "revenant", + "revenue", + "revere", + "reverend", + "reverent", + "reverse", + "reversed", + "reversion", + "revert", + "reverted", + "review", + "reviewer", + "revile", + "revisal", + "revise", + "revive", + "revived", + "revoke", + "revoked", + "revolting", + "revolved", + "revulsion", + "rewarm", + "rework", + "rezoned", + "rhapsodic", + "rhapsody", + "rhetoric", + "rhinitis", + "rhyme", + "ribald", + "ribbed", + "ricochet", + "riddance", + "ridge", + "ridicule", + "riding", + "rife", + "riff", + "riffing", + "rig", + "rightful", + "rights", + "rigidity", + "rigmarole", + "rigor", + "rigorous", + "rilles", + "ringworm", + "rip", + "ripeness", + "ripping", + "ripple", + "ripplet", + "riser", + "risible", + "rituals", + "ritzy", + "rivalry", + "riverbed", + "rivets", + "rivulet", + "roadblock", + "roast", + "robe", + "robot", + "robust", + "robusta", + "rockers", + "rodeo", + "rogue", + "roll", + "roller", + "rolloff", + "rollouts", + "romanced", + "rondo", + "rookery", + "roommate", + "rooms", + "roosted", + "root", + "rope", + "ropes", + "rose", + "rosemary", + "rotary", + "rotate", + "rote", + "rotten", + "rotting", + "rotund", + "roughy", + "round", + "roundel", + "rounding", + "roundup", + "roused", + "rout", + "routed", + "routs", + "rowdy", + "royal", + "royally", + "rubato", + "rubber", + "rubric", + "ruching", + "ruckus", + "rue", + "ruffian", + "ruffle", + "ruffled", + "rugby", + "ruled", + "ruminant", + "ruminate", + "rumor", + "runaway", + "runny", + "runs", + "rupee", + "rupture", + "rural", + "rushed", + "rust", + "rustic", + "rusts", + "rusty", + "rut", + "ruth", + "ruthless", + "rutting", + "saber", + "sabre", + "sac", + "sack", + "sacred", + "sacrifice", + "sacrilege", + "sad", + "saddle", + "safari", + "safaris", + "safeguard", + "safest", + "sagacious", + "sage", + "sahelian", + "sailor", + "sainted", + "salable", + "salacious", + "salami", + "salary", + "salience", + "salient", + "saline", + "saltine", + "salutary", + "salvage", + "salve", + "salvo", + "salvos", + "same", + "sameness", + "sanction", + "sanctity", + "sand", + "sandwich", + "sane", + "sanguine", + "sap", + "sapid", + "sapience", + "sapient", + "saps", + "sarcasm", + "sardonic", + "sari", + "saris", + "sartorial", + "sashay", + "sashays", + "satiate", + "satire", + "satiric", + "satirize", + "saturate", + "satyr", + "sauce", + "savage", + "savaged", + "savagely", + "save", + "savior", + "savor", + "savour", + "saxon", + "say", + "scabbard", + "scabs", + "scalawag", + "scale", + "scaled", + "scamming", + "scams", + "scapegoat", + "scarcely", + "scarcity", + "scarfed", + "scarier", + "scarily", + "scarred", + "scat", + "scenery", + "scented", + "schemed", + "scholarly", + "school", + "schooled", + "schooling", + "schools", + "science", + "scimitar", + "scintilla", + "scoffed", + "scofflaw", + "scolded", + "scone", + "scoop", + "scooting", + "scope", + "scoped", + "scorching", + "score", + "scorer", + "scoring", + "scorn", + "scorned", + "scottish", + "scoundrel", + "scourged", + "scouted", + "scouting", + "scowls", + "scraggly", + "screamer", + "screeds", + "screened", + "screw", + "scribble", + "scribe", + "scrim", + "scrimp", + "scrimped", + "scrip", + "script", + "scrod", + "scrubbed", + "scrunch", + "scruple", + "scrutiny", + "scum", + "scuttle", + "scuttled", + "scythe", + "seal", + "sealed", + "seance", + "seaport", + "seaports", + "sear", + "search", + "season", + "seasonal", + "seatings", + "seaweeds", + "sebaceous", + "secant", + "secede", + "seceded", + "secession", + "seclude", + "seclusion", + "secondary", + "secondly", + "secrecy", + "secretary", + "secrete", + "secretive", + "sect", + "section", + "secure", + "sedate", + "sedentary", + "sediment", + "sedition", + "seditious", + "seduce", + "sedulous", + "seeking", + "seer", + "seethe", + "segment", + "seignior", + "seize", + "seized", + "selective", + "selfish", + "seller", + "semblance", + "seminar", + "seminary", + "senator", + "senile", + "senility", + "seniority", + "sensation", + "sense", + "sensible", + "sensitive", + "sensorium", + "sensual", + "sensuous", + "sentence", + "sentience", + "sentient", + "sentinel", + "separable", + "separate", + "sepulcher", + "sequel", + "sequence", + "sequent", + "sequester", + "serapes", + "serenade", + "sergeant", + "serial", + "seriously", + "servant", + "service", + "servitude", + "set", + "setup", + "sever", + "severance", + "severely", + "severity", + "sewing", + "sexist", + "sextet", + "sextuple", + "shabbily", + "shade", + "shades", + "shading", + "shaggy", + "shaken", + "shakeout", + "shaker", + "shakes", + "shaky", + "shallot", + "shambles", + "shame", + "shanks", + "shape", + "shapely", + "sharing", + "sharpener", + "sheaf", + "sheath", + "sheer", + "shelf", + "shell", + "shellfish", + "shelling", + "shelter", + "sherbet", + "shift", + "shiftless", + "shimmied", + "shimmy", + "shin", + "shingled", + "ship", + "shipwreck", + "shirked", + "shocking", + "shod", + "shoehorn", + "shoot", + "shootout", + "shored", + "shoreline", + "short", + "shortage", + "shortly", + "shotgun", + "shoulder", + "shove", + "show", + "showcase", + "shower", + "showman", + "showpiece", + "showtime", + "shred", + "shrewd", + "shrewdly", + "shriek", + "shrink", + "shrinkage", + "shrivel", + "shrubbery", + "shrug", + "shrugs", + "shrunken", + "shucks", + "shuffle", + "shutdown", + "shutouts", + "shutters", + "shylock", + "shyness", + "sibilance", + "sibilant", + "sibilate", + "sibling", + "sick", + "sickle", + "sickness", + "sickos", + "sickout", + "sidelong", + "sidereal", + "sidling", + "siege", + "sieges", + "sieving", + "sift", + "sifted", + "sighed", + "sight", + "sightseer", + "signup", + "silence", + "silenced", + "silkworm", + "sill", + "silly", + "silos", + "silt", + "similar", + "simile", + "simple", + "simplify", + "simulate", + "sinecure", + "sinewy", + "sinful", + "sinfully", + "singe", + "singeing", + "single", + "sinister", + "sinuosity", + "sinuous", + "sinus", + "sir", + "siren", + "sirocco", + "sit", + "site", + "situate", + "sixteen", + "sixteenth", + "sixth", + "size", + "sizzled", + "skald", + "skate", + "skater", + "skeleton", + "skeptic", + "sketch", + "skew", + "skewed", + "skewness", + "skiff", + "skim", + "skimmed", + "skirmish", + "sky", + "skycap", + "skyways", + "slack", + "slain", + "slash", + "slashed", + "slave", + "slayer", + "sleaze", + "sleazy", + "sledge", + "sleeps", + "sleighs", + "sleight", + "slew", + "slews", + "slider", + "slight", + "slimmed", + "slimy", + "sling", + "slippage", + "slipped", + "slipping", + "slob", + "slobby", + "slosh", + "slothful", + "slovaks", + "slow", + "sluggard", + "slugger", + "slugging", + "slum", + "slunk", + "slurped", + "slurred", + "slut", + "sly", + "smacks", + "small", + "smartly", + "smash", + "smashed", + "smeared", + "smell", + "smelting", + "smock", + "smoke", + "smuggled", + "smugly", + "snack", + "snacked", + "snags", + "snapped", + "snarl", + "snatch", + "sneak", + "sneeze", + "snide", + "snipe", + "snippet", + "snob", + "snook", + "snooze", + "snorer", + "snorts", + "snowbank", + "snowman", + "snowmen", + "snowy", + "snuggle", + "soaked", + "soap", + "soapy", + "sobbed", + "soberly", + "sobriquet", + "sociable", + "socialism", + "socialist", + "socials", + "sociology", + "sodas", + "sodomize", + "software", + "soil", + "solace", + "solar", + "solder", + "soldier", + "soldiers", + "sole", + "solecism", + "solemnly", + "solicitor", + "solidity", + "soliloquy", + "solitary", + "solstice", + "soluble", + "solvable", + "solvent", + "somatic", + "somber", + "somebody", + "somnolent", + "sonata", + "sonic", + "sonnet", + "sonorous", + "soot", + "soothes", + "sop", + "sophism", + "sophistry", + "soprano", + "sorbet", + "sorcery", + "sordid", + "sought", + "soulmate", + "sound", + "sounds", + "sourwood", + "southern", + "souvenir", + "sow", + "space", + "spaceship", + "spacing", + "spacious", + "spackle", + "spade", + "spake", + "span", + "spangled", + "spank", + "spar", + "spark", + "sparkly", + "sparring", + "sparse", + "spasm", + "spasmodic", + "spatula", + "spatulas", + "spawn", + "spawns", + "spear", + "special", + "specialty", + "specie", + "species", + "specific", + "specify", + "specimen", + "specious", + "speckled", + "spectator", + "specter", + "spectres", + "spectrum", + "speculate", + "speedily", + "speeds", + "spending", + "spheroid", + "spiced", + "spiffy", + "spigots", + "spike", + "spin", + "spinous", + "spinster", + "spiraled", + "spires", + "spitball", + "splashy", + "splotch", + "splurge", + "sponsor", + "spook", + "spooling", + "spoons", + "sporting", + "spot", + "spotty", + "sprayers", + "spraying", + "sprightly", + "sprinkle", + "sprint", + "sprinted", + "sprinter", + "spry", + "spume", + "spurious", + "spurned", + "sputter", + "spy", + "squabble", + "squadron", + "squalid", + "squalled", + "squander", + "squared", + "squash", + "squashed", + "squatter", + "squeaks", + "squeezed", + "squirm", + "squish", + "squishes", + "staccato", + "stack", + "stacking", + "staff", + "stages", + "stagger", + "stagnant", + "stagnate", + "stagy", + "staid", + "stain", + "stainless", + "stair", + "stairwell", + "stalled", + "stallion", + "stamina", + "stampede", + "stance", + "stanchion", + "standoff", + "standout", + "stands", + "stanza", + "star", + "starch", + "stark", + "starker", + "starkly", + "starless", + "starring", + "stars", + "starter", + "starters", + "stash", + "stashes", + "stat", + "static", + "statics", + "statuette", + "stature", + "statute", + "stayers", + "staying", + "steadies", + "steal", + "stealth", + "steam", + "steamy", + "steeled", + "steep", + "steeple", + "steeples", + "steer", + "steering", + "stellar", + "stem", + "stencil", + "steppe", + "stepwise", + "sterling", + "sternum", + "steroids", + "stew", + "stick", + "sticking", + "stiff", + "stifle", + "stifled", + "stigma", + "stiletto", + "still", + "stilts", + "stimulant", + "stimulate", + "stimulus", + "stinging", + "stingy", + "stipend", + "stir", + "stirs", + "stitched", + "stock", + "stockpile", + "stodgy", + "stoicism", + "stolid", + "stomped", + "stoners", + "stoop", + "stop", + "stopped", + "store", + "storyline", + "stout", + "straddle", + "strain", + "strait", + "strand", + "stranded", + "stratagem", + "stratum", + "straw", + "stray", + "streamlet", + "stressed", + "stretch", + "strewn", + "stricken", + "striders", + "stringent", + "stripe", + "striped", + "stripling", + "strobe", + "stud", + "studded", + "studious", + "stultify", + "stumble", + "stumbling", + "stunners", + "stupidest", + "stupidly", + "stupor", + "styling", + "suasion", + "suave", + "subacid", + "subjacent", + "subjugate", + "submarine", + "submerge", + "submittal", + "subside", + "subsidize", + "subsist", + "subsumes", + "subtend", + "subtests", + "subtle", + "subvert", + "succeed", + "success", + "successor", + "succinct", + "succulent", + "succumb", + "suction", + "sudden", + "sue", + "suffrage", + "suffuse", + "suffused", + "sugar", + "suits", + "sulfate", + "sulfurous", + "sulkily", + "sultan", + "summary", + "summation", + "summed", + "summited", + "sumptuous", + "sunbeam", + "sunburst", + "sunflower", + "suns", + "sunset", + "sunsets", + "sunshine", + "sunward", + "super", + "superadd", + "superb", + "superheat", + "supersede", + "supervise", + "supine", + "supplant", + "supple", + "supply", + "supposed", + "supposing", + "suppress", + "supremo", + "surcharge", + "sureness", + "surety", + "surf", + "surface", + "surfeit", + "surly", + "surmise", + "surmount", + "surplus", + "surprise", + "surrender", + "surrogate", + "surround", + "surveyor", + "survives", + "suspect", + "suspects", + "suspense", + "sutra", + "suture", + "swab", + "swale", + "swallowed", + "swamped", + "swarm", + "swarmed", + "swarthy", + "swat", + "swath", + "swathe", + "swathed", + "swatting", + "swayed", + "swearing", + "sweat", + "sweeping", + "sweeps", + "sweets", + "swell", + "swelled", + "swelter", + "swerving", + "swigs", + "swimsuit", + "swindle", + "swindler", + "swinging", + "swipe", + "swipes", + "swirled", + "swirling", + "switching", + "swivel", + "swoop", + "swooped", + "sword", + "swore", + "sycamore", + "sycophant", + "syllabic", + "syllable", + "syllabus", + "sylph", + "symbolic", + "symmetry", + "symphonic", + "symphony", + "symposium", + "synagogue", + "syndicate", + "syndrome", + "syneresis", + "synergy", + "synod", + "synonym", + "synopsis", + "syrupy", + "table", + "tableau", + "tableaus", + "tabloid", + "taboo", + "tacit", + "taciturn", + "tack", + "tacked", + "tackle", + "taco", + "tact", + "tactful", + "tactician", + "tactics", + "taffeta", + "tahini", + "tail", + "tailspin", + "take", + "talcum", + "talk", + "talking", + "tallest", + "tally", + "talmudic", + "tamarind", + "tamely", + "tan", + "tandem", + "tangency", + "tangent", + "tangible", + "tango", + "tankful", + "tanned", + "tanners", + "tannery", + "tantalize", + "tape", + "tapes", + "tapestry", + "taping", + "taquitos", + "tardiness", + "target", + "tarnish", + "tarry", + "tart", + "tartlets", + "tater", + "tattler", + "tattoos", + "taupe", + "taut", + "tax", + "taxation", + "taxi", + "taxicab", + "taxidermy", + "tea", + "teachable", + "teacher", + "teal", + "tearful", + "tearooms", + "tears", + "teary", + "tease", + "teaser", + "teasingly", + "technic", + "technique", + "tedium", + "tee", + "teem", + "teemed", + "teenage", + "tees", + "teetering", + "telco", + "telecast", + "telegraph", + "telemetry", + "telepathy", + "telephony", + "telescope", + "teletype", + "televise", + "telltale", + "temblors", + "temerity", + "temp", + "temple", + "temples", + "temporal", + "temporary", + "temporize", + "tempt", + "tempter", + "temptress", + "tenacious", + "tenant", + "tendency", + "tender", + "tendril", + "tenet", + "tenfold", + "tennis", + "tenor", + "tense", + "tensest", + "tensions", + "tentative", + "tenting", + "tenure", + "termagant", + "terminal", + "terminate", + "terminus", + "terms", + "terrapin", + "terribly", + "terrier", + "terrify", + "terse", + "testament", + "testator", + "tested", + "testify", + "tethers", + "teutonic", + "thanks", + "thaw", + "thaws", + "thearchy", + "theater", + "theirs", + "theism", + "then", + "thence", + "theocracy", + "theocrasy", + "theology", + "theorist", + "theorize", + "therefor", + "therefore", + "thereupon", + "thermal", + "thesis", + "they", + "thicket", + "thievery", + "thigh", + "thin", + "think", + "third", + "thirsty", + "thirtieth", + "thomism", + "thong", + "thorn", + "though", + "thousand", + "thrall", + "thread", + "threes", + "threshed", + "threw", + "thrilled", + "throb", + "throes", + "throne", + "through", + "throw", + "thrums", + "thrush", + "thrusting", + "thump", + "thumped", + "thusly", + "thwarted", + "thy", + "thyroids", + "tibias", + "tic", + "tick", + "tickle", + "tidying", + "tight", + "tightness", + "tile", + "tills", + "tilted", + "tilth", + "timbre", + "timeline", + "timeout", + "timorous", + "tincture", + "tinge", + "tinkle", + "tintype", + "tipoff", + "tipsy", + "tirade", + "tired", + "tireless", + "tiresome", + "titled", + "toddies", + "toenail", + "togas", + "toggle", + "toggling", + "toil", + "toilsome", + "token", + "tolerable", + "tolerance", + "tolerant", + "tolerate", + "tolling", + "tomb", + "tome", + "tonic", + "too", + "tool", + "toot", + "toothless", + "tootling", + "top", + "topics", + "toponyms", + "topping", + "tops", + "topsail", + "torch", + "tornados", + "torpedo", + "torpor", + "torrid", + "torso", + "tortious", + "tortuous", + "tortured", + "torturous", + "toss", + "tosser", + "totaled", + "touchy", + "toughed", + "toured", + "touring", + "touristy", + "tousled", + "towel", + "towels", + "towering", + "townie", + "toy", + "toys", + "trace", + "traces", + "trachoma", + "tracking", + "tractable", + "trail", + "trait", + "trammel", + "tramp", + "tramped", + "trance", + "tranquil", + "transact", + "transcend", + "transfer", + "transfix", + "transfuse", + "transient", + "translate", + "transmit", + "transmute", + "transpire", + "trashing", + "trattoria", + "travail", + "traveling", + "travesty", + "trawl", + "treachery", + "treatise", + "treble", + "trebly", + "tremor", + "tremulous", + "trenchant", + "trendier", + "trestle", + "triad", + "triads", + "tribal", + "tribe", + "tribesman", + "tribunal", + "tribune", + "trick", + "trickery", + "trickle", + "tricolor", + "tricycle", + "trident", + "triennial", + "trim", + "trimness", + "trinity", + "trio", + "triple", + "tripled", + "tripod", + "tripped", + "trippy", + "trisect", + "trite", + "triumvir", + "trivial", + "trombone", + "trophies", + "trots", + "trotted", + "troubling", + "troupe", + "trouper", + "trove", + "trowel", + "truckload", + "truculent", + "truism", + "trumpet", + "truncated", + "trundle", + "trussed", + "trusted", + "trusting", + "trusty", + "truthful", + "trying", + "trypsin", + "tuba", + "tubing", + "tuesdays", + "tug", + "tumble", + "tunafish", + "tune", + "tuned", + "tuneup", + "tunisian", + "turbans", + "turbos", + "turgid", + "turkey", + "turn", + "turnabout", + "turning", + "turpitude", + "tushes", + "tussle", + "tussles", + "tutee", + "tutelage", + "tutelar", + "tutorship", + "tutsi", + "twice", + "twiddle", + "twine", + "twinge", + "twirl", + "twisting", + "twitch", + "twoyear", + "tycoon", + "typed", + "typhus", + "typical", + "typified", + "typify", + "tyranny", + "tyro", + "ugh", + "ugly", + "ulterior", + "ultimate", + "ultimatum", + "umbrage", + "unable", + "unanimity", + "unanimous", + "unbalance", + "unbeaten", + "unbelief", + "unbiased", + "unbind", + "unblock", + "unbounded", + "unbridled", + "uncannily", + "uncanny", + "uncared", + "unclaimed", + "uncle", + "uncommon", + "uncork", + "uncrowded", + "unction", + "unctuous", + "uncut", + "undeceive", + "underlie", + "underling", + "underman", + "undermine", + "underpaid", + "underrate", + "undersell", + "undertake", + "undertow", + "undimmed", + "undivided", + "undo", + "undone", + "undue", + "undulate", + "undulous", + "uneasy", + "unfairly", + "unfolding", + "ungainly", + "unglued", + "ungodly", + "unguent", + "unharmed", + "unhelpful", + "unholy", + "unhook", + "unhooked", + "unibody", + "unify", + "uninjured", + "uninvited", + "unique", + "unison", + "unisonant", + "unite", + "united", + "univocal", + "unkept", + "unknown", + "unlawful", + "unlearned", + "unlimited", + "unnamed", + "unnatural", + "unnoticed", + "unopposed", + "unpeeled", + "unplugged", + "unpopular", + "unproved", + "unravel", + "unripe", + "unroofed", + "unsay", + "unseat", + "unsettle", + "unshod", + "unsound", + "unstuck", + "untaxed", + "untenable", + "untended", + "until", + "untilled", + "untimely", + "untoward", + "untreated", + "unvaried", + "unvarying", + "unveil", + "unveiled", + "unwieldy", + "unwise", + "unyoke", + "upbraid", + "upcast", + "updated", + "upends", + "upheaval", + "upheave", + "uplifted", + "uploads", + "upmarket", + "upon", + "upped", + "upper", + "uppermost", + "upright", + "uprising", + "uproar", + "uproot", + "upsetting", + "upstage", + "upstart", + "upstate", + "uptick", + "uptown", + "upturn", + "upwardly", + "urban", + "urbanity", + "urchin", + "urge", + "urgency", + "urgent", + "usage", + "used", + "useful", + "usual", + "usurers", + "usurious", + "usurp", + "usurped", + "usury", + "utensil", + "utility", + "utmost", + "utter", + "utterly", + "vacate", + "vaccinate", + "vacillate", + "vacuous", + "vacuum", + "vagabond", + "vagrant", + "vain", + "vainglory", + "valance", + "vale", + "valet", + "valiant", + "valid", + "validate", + "valleys", + "valorous", + "value", + "vampire", + "vane", + "vanities", + "vapid", + "vaporizer", + "variable", + "variance", + "variant", + "variates", + "variation", + "variegate", + "vassal", + "vastly", + "vastness", + "vaulting", + "veal", + "vectors", + "veered", + "veering", + "vegetal", + "vegetate", + "vehement", + "veil", + "velar", + "veldt", + "velocity", + "velvety", + "venal", + "vendible", + "vendition", + "vendor", + "veneer", + "venerable", + "venerate", + "venereal", + "vengeance", + "vengeful", + "venial", + "venison", + "venom", + "venous", + "ventilate", + "veracious", + "veracity", + "veranda", + "verbatim", + "verbiage", + "verbose", + "verdant", + "verify", + "verily", + "verity", + "vermin", + "vernal", + "versatile", + "version", + "vertex", + "vertical", + "vertigo", + "verve", + "very", + "vespers", + "vessels", + "vested", + "vestige", + "vestiges", + "vesting", + "vestment", + "vet", + "veto", + "viability", + "vibe", + "vicarious", + "viceroy", + "victim", + "videotape", + "vie", + "views", + "vigilance", + "vigilant", + "vigilante", + "vignette", + "vilify", + "vincible", + "vindicate", + "vinery", + "vining", + "viol", + "viola", + "violate", + "violated", + "violation", + "violator", + "viper", + "virago", + "virile", + "virtu", + "virtual", + "virtue", + "virtuoso", + "virulence", + "virulent", + "visage", + "viscera", + "viscose", + "viscount", + "vision", + "visit", + "vista", + "visual", + "visualize", + "vital", + "vitality", + "vitalize", + "vitally", + "vitiate", + "vitiated", + "vivacity", + "vivify", + "vocable", + "vocal", + "vocalist", + "vocative", + "vodka", + "vogue", + "voice", + "voiceless", + "void", + "voiding", + "voids", + "volant", + "volar", + "volatile", + "volition", + "volitive", + "voluble", + "vomit", + "vomited", + "vomiting", + "vomits", + "voracious", + "vortex", + "votary", + "voter", + "votive", + "vouchsafe", + "vow", + "voyager", + "vulgarity", + "wacko", + "wad", + "wadded", + "wading", + "wads", + "wage", + "waif", + "waistcoat", + "waistline", + "waiter", + "waiting", + "waive", + "wake", + "waked", + "walkable", + "walker", + "walkers", + "walking", + "walled", + "wallop", + "wallow", + "waltz", + "wampum", + "wane", + "waned", + "wanes", + "wangled", + "wannabe", + "wanted", + "wanting", + "ward", + "warden", + "warehouse", + "warhead", + "warheads", + "warily", + "wariness", + "warlike", + "warmed", + "warning", + "warp", + "warpath", + "warrior", + "wary", + "wash", + "washtub", + "waste", + "wasteful", + "watchful", + "waterline", + "wavelet", + "waxy", + "way", + "weakens", + "weakest", + "weakling", + "weal", + "wean", + "wear", + "wearied", + "wearisome", + "webcams", + "website", + "wed", + "wee", + "weedy", + "weekly", + "weepers", + "weigh", + "weirdest", + "weirdly", + "welcome", + "well", + "welt", + "west", + "westward", + "whatnot", + "wheel", + "wheeze", + "whereupon", + "wherever", + "wherewith", + "whet", + "while", + "whiled", + "whimper", + "whimsical", + "whine", + "whip", + "whipping", + "whippy", + "whirr", + "whirred", + "whistle", + "white", + "whittle", + "whiz", + "whodunit", + "wholly", + "whomever", + "whoop", + "whoops", + "whooshes", + "wide", + "widening", + "widowed", + "widower", + "wield", + "wielders", + "wiggle", + "wiggly", + "wild", + "wildcard", + "wile", + "wilful", + "willowy", + "wills", + "wimp", + "winced", + "windage", + "windswept", + "wingman", + "winsome", + "winter", + "wintry", + "wipeout", + "wiper", + "wires", + "wiretap", + "wiry", + "wise", + "wisecrack", + "wiseguy", + "wishful", + "withered", + "within", + "witless", + "witling", + "witticism", + "wittiest", + "wittingly", + "wizen", + "womanly", + "wondered", + "wonders", + "wondrous", + "woodland", + "woodshed", + "woolly", + "woozy", + "wordplay", + "worklife", + "workspace", + "wormed", + "worried", + "worrying", + "worthy", + "would", + "wouldst", + "wound", + "wrack", + "wrangle", + "wrap", + "wrapped", + "wreak", + "wreath", + "wrest", + "wrestle", + "wrestler", + "wretch", + "wriggle", + "wrinkle", + "writhe", + "writing", + "wrong", + "wry", + "yank", + "yard", + "yardage", + "yards", + "yarn", + "yarns", + "yaw", + "yearend", + "yearling", + "yearning", + "yeast", + "yell", + "yelling", + "yellowing", + "yells", + "yen", + "yielded", + "yielding", + "yin", + "yogurts", + "yoke", + "yon", + "you", + "your", + "yowled", + "yowling", + "yum", + "zealot", + "zeitgeist", + "zenith", + "zephyr", + "zephyrs", + "zero", + "ziggurat", + "zigs", + "zings", + "zionists", + "zip", + "zipped", + "zodiac", + "zooming", +}; + +const size_t word_list_len = ARRAYLEN(word_list); +#endif diff --git a/apps/plugins/passmgr/wordlist.h b/apps/plugins/passmgr/wordlist.h index 8c59e89..9e6128b 100644 --- a/apps/plugins/passmgr/wordlist.h +++ b/apps/plugins/passmgr/wordlist.h @@ -1,2 +1,8 @@ +#include "plugin.h" + +/* the word list is BIG! */ +#if PLUGIN_BUFFER_SIZE > 0x8000 +#define PASSMGR_DICEWARE extern const char *word_list[]; extern const size_t word_list_len; +#endif |