summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-04-23 20:42:23 +0000
committerBram Moolenaar <Bram@vim.org>2005-04-23 20:42:23 +0000
commit8fef2ad609c06d0078c630a24cda727f70fca4f5 (patch)
tree4ce5ab7833e4083f538df3de47830031d50705bf
parent54ff3419c7836d2668444f9ac893b3722d54d8c4 (diff)
downloadvim-git-8fef2ad609c06d0078c630a24cda727f70fca4f5.tar.gz
updated for version 7.0070
-rw-r--r--runtime/compiler/splint.vim3
-rw-r--r--runtime/doc/usr_03.txt4
-rw-r--r--runtime/spell/en.utf-8.splbin1103672 -> 1104055 bytes
-rw-r--r--src/buffer.c5
-rw-r--r--src/proto/charset.pro5
-rw-r--r--src/spell.c873
-rw-r--r--src/spell/en_AU.diff2275
-rw-r--r--src/spell/en_CA.diff87
-rw-r--r--src/spell/en_NZ.diff2468
-rw-r--r--src/vim.h4
10 files changed, 5335 insertions, 389 deletions
diff --git a/runtime/compiler/splint.vim b/runtime/compiler/splint.vim
index 6f40af9b6..5ba5e036d 100644
--- a/runtime/compiler/splint.vim
+++ b/runtime/compiler/splint.vim
@@ -2,7 +2,7 @@
" Compiler: splint/lclint (C source code checker)
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Splint Home: http://www.splint.org/
-" Last Change: 2004 Oct 02
+" Last Change: 2005 Apr 21
" $Revision$
if exists("current_compiler")
@@ -53,6 +53,7 @@ CompilerSet makeprg=splint\ %
CompilerSet errorformat=%OLCLint*m,
\%OSplint*m,
+ \%f(%l\\,%c):\ %m,
\%*[\ ]%f:%l:%c:\ %m,
\%*[\ ]%f:%l:\ %m,
\%*[^\"]\"%f\"%*\\D%l:\ %m,
diff --git a/runtime/doc/usr_03.txt b/runtime/doc/usr_03.txt
index 1690e79aa..d8e4c506a 100644
--- a/runtime/doc/usr_03.txt
+++ b/runtime/doc/usr_03.txt
@@ -1,4 +1,4 @@
-*usr_03.txt* For Vim version 7.0aa. Last change: 2005 Apr 01
+*usr_03.txt* For Vim version 7.0aa. Last change: 2005 Apr 22
VIM USER MANUAL - by Bram Moolenaar
@@ -601,7 +601,7 @@ The ":jumps" command gives a list of positions you jumped to. The entry which
you used last is marked with a ">".
-NAMED MARKS
+NAMED MARKS *bookmark*
Vim enables you to place your own marks in the text. The command "ma" marks
the place under the cursor as mark a. You can place 26 marks (a through z) in
diff --git a/runtime/spell/en.utf-8.spl b/runtime/spell/en.utf-8.spl
index 96e728808..156c0979e 100644
--- a/runtime/spell/en.utf-8.spl
+++ b/runtime/spell/en.utf-8.spl
Binary files differ
diff --git a/src/buffer.c b/src/buffer.c
index 993e14d34..977233644 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2390,6 +2390,11 @@ get_winopts(buf)
if (p_fdls >= 0)
curwin->w_p_fdl = p_fdls;
#endif
+
+#ifdef FEAT_SYN_HL
+ if (curwin->w_p_spell && *buf->b_p_spl != NUL)
+ did_set_spelllang(buf);
+#endif
}
/*
diff --git a/src/proto/charset.pro b/src/proto/charset.pro
index a3d4c145d..dc33f654b 100644
--- a/src/proto/charset.pro
+++ b/src/proto/charset.pro
@@ -21,7 +21,12 @@ int vim_iswordc __ARGS((int c));
int vim_iswordp __ARGS((char_u *p));
int vim_iswordc_buf __ARGS((char_u *p, buf_T *buf));
void init_spell_chartab __ARGS((void));
+int set_spell_chartab __ARGS((char_u *fol, char_u *low, char_u *upp));
+int set_spell_charflags __ARGS((char_u *flags, int cnt, char_u *upp));
+void write_spell_chartab __ARGS((FILE *fd));
int spell_iswordc __ARGS((char_u *p));
+int spell_isupper __ARGS((int c));
+int spell_casefold __ARGS((char_u *p, int len, char_u *buf, int buflen));
int vim_isfilec __ARGS((int c));
int vim_isprintc __ARGS((int c));
int vim_isprintc_strict __ARGS((int c));
diff --git a/src/spell.c b/src/spell.c
index cc71b8d7d..e8ac35217 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -97,6 +97,8 @@ static affitem_T dumai;
/*
* Structure used to store words and other info for one language, loaded from
* a .spl file.
+ * The main access is through hashtable "sl_word", using the case-folded
+ * word as the key. This finds a linked list of fword_T.
*/
typedef struct slang_S slang_T;
struct slang_S
@@ -149,6 +151,8 @@ static addword_T dumaw;
/*
* Structure to store a basic word.
* There are many of these, keep it small!
+ * The list of prefix and suffix NRs is stored after "fw_word" to avoid the
+ * need for two extra pointers.
*/
typedef struct fword_S fword_T;
struct fword_S
@@ -223,7 +227,7 @@ typedef struct langp_S
* (Needed to keep ADD_ flags in one byte.) */
#define ADD2BWF(x) (((x) & 0x0f) | (((x) & 0xf0) << 4))
-#define VIMSPELLMAGIC "VIMspell03" /* string at start of Vim spell file */
+#define VIMSPELLMAGIC "VIMspell04" /* string at start of Vim spell file */
#define VIMSPELLMAGICL 10
/*
@@ -307,7 +311,7 @@ spell_check(wp, line, ptr, attrp)
return (int)(mi.mi_end - ptr);
/* Make case-folded copy of the word. */
- (void)str_foldcase(ptr, mi.mi_end - ptr, mi.mi_fword, MAXWLEN + 1);
+ (void)spell_casefold(ptr, mi.mi_end - ptr, mi.mi_fword, MAXWLEN + 1);
mi.mi_cword = mi.mi_fword;
mi.mi_fendlen = STRLEN(mi.mi_fword);
mi.mi_faddlen = 0;
@@ -404,6 +408,8 @@ word_match(mip)
* "d'", "de-", "'s-", "l'de-". But not "'s".
* Also need to do this when a matching word was already found, because we
* might find a longer match this way (French: "qu" and "qu'a-t-elle").
+ * The check above may have added characters to mi_fword, thus we need to
+ * truncate it after the basic word for the hash lookup.
*/
cc = mip->mi_fword[mip->mi_fendlen];
mip->mi_fword[mip->mi_fendlen] = NUL;
@@ -772,7 +778,7 @@ fold_addchars(mip, addlen)
else
#endif
l = 1;
- (void)str_foldcase(mip->mi_fend, l, p + mip->mi_faddlen,
+ (void)spell_casefold(mip->mi_fend, l, p + mip->mi_faddlen,
MAXWLEN - mip->mi_fendlen - mip->mi_faddlen);
mip->mi_fend += l;
mip->mi_faddlen += STRLEN(p + mip->mi_faddlen);
@@ -992,6 +998,8 @@ suffix_match(mip)
* Stop checking if there are no suffixes with so many characters.
*/
sufp = endw;
+ *endw = NUL; /* truncate after possible suffix */
+
for (charlen = 0; charlen <= mip->mi_slang->sl_sufftab.ga_len; ++charlen)
{
/* Move the pointer to the possible suffix back one character, unless
@@ -1012,13 +1020,11 @@ suffix_match(mip)
if (ht->ht_used == 0)
continue;
- *endw = NUL; /* truncate after possible suffix */
hi = hash_find(ht, sufp);
if (HASHITEM_EMPTY(hi))
ai = NULL;
else
ai = HI2AI(hi);
- *endw = endw_c;
}
if (ai != NULL)
@@ -1027,6 +1033,7 @@ suffix_match(mip)
* we can use. */
tlen = sufp - mip->mi_cword; /* length of word without suffix */
mch_memmove(pword, mip->mi_cword, tlen);
+ *endw = endw_c;
for ( ; ai != NULL; ai = ai->ai_next)
{
@@ -1068,9 +1075,12 @@ suffix_match(mip)
}
}
}
+
+ *endw = NUL; /* truncate after possible suffix */
}
}
+ *endw = endw_c;
mip->mi_capflags = capflags_save;
return FALSE;
}
@@ -1115,7 +1125,7 @@ match_caps(flags, caseword, mip, cword, end)
else
#endif
c = *p++;
- if (MB_ISUPPER(c))
+ if (spell_isupper(c))
{
if (capflags == 0 || (capflags & BWF_ONECAP))
{
@@ -1460,7 +1470,7 @@ spell_load_file(fname, cookie)
int round;
char_u *save_sourcing_name = sourcing_name;
linenr_T save_sourcing_lnum = sourcing_lnum;
- int cnt;
+ int cnt, ccnt;
int choplen;
int addlen;
int leadlen;
@@ -1474,39 +1484,41 @@ spell_load_file(fname, cookie)
addword_T *aw, *naw;
int flen;
int xlen;
+ char_u *fol;
fd = fopen((char *)fname, "r");
if (fd == NULL)
{
EMSG2(_(e_notopen), fname);
- goto errorend;
+ goto endFAIL;
}
/* Set sourcing_name, so that error messages mention the file name. */
sourcing_name = fname;
sourcing_lnum = 0;
- /* <HEADER>: <fileID> <regioncnt> <regionname> ... */
+ /* <HEADER>: <fileID> <regioncnt> <regionname> ...
+ * <charflagslen> <charflags> <fcharslen> <fchars> */
for (i = 0; i < VIMSPELLMAGICL; ++i)
buf[i] = getc(fd); /* <fileID> */
if (STRNCMP(buf, VIMSPELLMAGIC, VIMSPELLMAGICL) != 0)
{
EMSG(_("E757: Wrong file ID in spell file"));
- goto errorend;
+ goto endFAIL;
}
cnt = getc(fd); /* <regioncnt> */
- if (cnt == EOF)
+ if (cnt < 0)
{
truncerr:
EMSG(_("E758: Truncated spell file"));
- goto errorend;
+ goto endFAIL;
}
if (cnt > 8)
{
formerr:
EMSG(_("E759: Format error in spell file"));
- goto errorend;
+ goto endFAIL;
}
for (i = 0; i < cnt; ++i)
{
@@ -1515,8 +1527,39 @@ formerr:
}
lp->sl_regions[cnt * 2] = NUL;
- /* round 1: <PREFIXLIST>: <affcount> <afftotcnt> <affix> ...
- * round 2: <SUFFIXLIST>: <affcount> <afftotcnt> <affix> ... */
+ cnt = getc(fd); /* <charflagslen> */
+ if (cnt > 0)
+ {
+ p = (char_u *)getroom(lp, &bl_used, cnt);
+ if (p == NULL)
+ goto endFAIL;
+ for (i = 0; i < cnt; ++i)
+ p[i] = getc(fd); /* <charflags> */
+
+ ccnt = (getc(fd) << 8) + getc(fd); /* <fcharslen> */
+ if (ccnt <= 0)
+ goto formerr;
+ fol = (char_u *)getroom(lp, &bl_used, ccnt + 1);
+ if (fol == NULL)
+ goto endFAIL;
+ for (i = 0; i < ccnt; ++i)
+ fol[i] = getc(fd); /* <fchars> */
+ fol[i] = NUL;
+
+ /* Set the word-char flags and fill spell_isupper() table. */
+ if (set_spell_charflags(p, cnt, fol) == FAIL)
+ goto formerr;
+ }
+ else
+ {
+ /* When <charflagslen> is zero then <fcharlen> must also be zero. */
+ cnt = (getc(fd) << 8) + getc(fd);
+ if (cnt != 0)
+ goto formerr;
+ }
+
+ /* round 1: <PREFIXLIST>: <affcount> <affix> ...
+ * round 2: <SUFFIXLIST>: <affcount> <affix> ... */
for (round = 1; round <= 2; ++round)
{
affcount = (getc(fd) << 8) + getc(fd); /* <affcount> */
@@ -1537,9 +1580,6 @@ formerr:
suffm = affcount > 256 ? 2 : 1;
}
- i = (getc(fd) << 8) + getc(fd); /* <afftotcnt> */
- /* afftotcnt is not used */
-
/*
* For each affix NR there can be several affixes.
*/
@@ -1555,7 +1595,7 @@ formerr:
* <affaddlen> <affadd> */
affflags = getc(fd); /* <affflags> */
choplen = getc(fd); /* <affchoplen> */
- if (choplen == EOF)
+ if (choplen < 0)
goto truncerr;
if (choplen >= MAXWLEN)
goto formerr;
@@ -1563,7 +1603,7 @@ formerr:
buf[i] = getc(fd);
buf[i] = NUL;
addlen = getc(fd); /* <affaddlen> */
- if (addlen == EOF)
+ if (addlen < 0)
goto truncerr;
if (affflags & AFF_PREWORD)
xlen = addlen + 2; /* space for lead and trail string */
@@ -1571,12 +1611,11 @@ formerr:
xlen = 0;
/* Get room to store the affitem_T, chop and add strings. */
- p = (char_u *)getroom(lp, &bl_used,
+ ai = (affitem_T *)getroom(lp, &bl_used,
sizeof(affitem_T) + addlen + choplen + 1 + xlen);
- if (p == NULL)
- goto errorend;
+ if (ai == NULL)
+ goto endFAIL;
- ai = (affitem_T *)p;
ai->ai_nr = affnr;
ai->ai_flags = affflags;
ai->ai_choplen = choplen;
@@ -1596,8 +1635,12 @@ formerr:
int l, leadoff, trailoff;
/*
- * Separate lead and trail string, put word at ai_add, so
- * that it can be used as hashtable key.
+ * A preword is a prefix that's recognized as a word: it
+ * contains a word characters folled by a non-word
+ * character.
+ * <affadd> is the whole prefix. Separate lead and trail
+ * string, put the word itself at ai_add, so that it can
+ * be used as hashtable key.
*/
/* lead string: up to first word char */
while (*p != NUL && !spell_iswordc(p))
@@ -1623,13 +1666,13 @@ formerr:
hi = hash_lookup(&lp->sl_prewords, ai->ai_add, hash);
if (HASHITEM_EMPTY(hi))
{
- /* First affix with this word, add to hashtable. */
+ /* First preword with this word, add to hashtable. */
hash_add_item(&lp->sl_prewords, hi, ai->ai_add, hash);
ai->ai_next = NULL;
}
else
{
- /* There already is an affix with this word, link in
+ /* There already is a preword with this word, link in
* the list. */
ai2 = HI2AI(hi);
ai->ai_next = ai2->ai_next;
@@ -1660,7 +1703,7 @@ formerr:
{
/* Longer affix, need more hashtables. */
if (ga_grow(gap, addlen - gap->ga_len) == FAIL)
- goto errorend;
+ goto endFAIL;
/* Re-allocating ga_data means that an ht_array
* pointing to ht_smallarray becomes invalid. We
@@ -1733,14 +1776,14 @@ formerr:
*/
/* Use <nr> bytes from the previous word. */
wlen = getc(fd); /* <nr> */
- if (wlen == EOF)
+ if (wlen < 0)
{
if (widx >= wordcount) /* normal way to end the file */
break;
goto truncerr;
}
- /* Read further word bytes until one below 0x20, that must be the
+ /* Read further word bytes until one below 0x20, that one must be the
* flags. Keep this fast! */
for (;;)
{
@@ -1760,10 +1803,12 @@ formerr:
{
/* Read <caselen> and <caseword> first, its length may differ from
* the case-folded word. Note: this should only happen after the
- * basic word! */
+ * basic word without KEEPCAP! */
wlen = getc(fd);
if (wlen < 0)
goto truncerr;
+ if (wlen >= MAXWLEN)
+ goto formerr;
for (i = 0; i < wlen; ++i)
cbuf[i] = getc(fd);
cbuf[i] = NUL;
@@ -1800,7 +1845,7 @@ formerr:
fw = (fword_T *)getroom(lp, &bl_used, (int)sizeof(fword_T) + wlen
+ (p - affixbuf));
if (fw == NULL)
- goto errorend;
+ goto endFAIL;
mch_memmove(fw->fw_word, (flags & BWF_KEEPCAP) ? cbuf : buf, wlen + 1);
/* Put the affix NRs just after the word, if any. */
@@ -1811,12 +1856,15 @@ formerr:
fw->fw_prefixcnt = prefixcnt;
fw->fw_suffixcnt = suffixcnt;
+ /* We store the word in the hashtable case-folded. For a KEEPCAP word
+ * the entry must already exist, because fw_word can't be used as the
+ * key, it differs from "buf"! */
hash = hash_hash(buf);
hi = hash_lookup(&lp->sl_words, buf, hash);
if (HASHITEM_EMPTY(hi))
{
if (hash_add_item(&lp->sl_words, hi, fw->fw_word, hash) == FAIL)
- goto errorend;
+ goto endFAIL;
fw->fw_next = NULL;
}
else
@@ -1826,7 +1874,7 @@ formerr:
fw2 = HI2FWORD(hi);
fw->fw_next = fw2->fw_next;
fw2->fw_next = fw;
- --widx; /* don't count this one */
+ --widx; /* don't count this one as a basic word */
}
if (flags & BWF_REGION)
@@ -1841,15 +1889,20 @@ formerr:
adds = (getc(fd) << 8) + getc(fd); /* <addcnt> */
else
adds = getc(fd); /* <addcnt> */
+ if (adds < 0)
+ goto formerr;
if (adds > 30)
{
- /* Use a hashtable to loopup the part until the next word end.
+ /* Use a hashtable to lookup the part until the next word end.
+ * Thus for "de-bur-die" "de" is the basic word, "-bur" is key
+ * in the addition hashtable, "-bur<NUL>die" the whole
+ * addition and "aw_saveb" is '-'.
* This uses more memory and involves some overhead, thus only
- * do it when there are many additions (e.g., for French). */
+ * do it when there are many additions (e.g., for French). */
ht = (hashtab_T *)getroom(lp, &bl_used, sizeof(hashtab_T));
if (ht == NULL)
- goto errorend;
+ goto endFAIL;
hash_init(ht);
fw->fw_adds = (addword_T *)ht;
fw->fw_flags |= BWF_ADDHASH;
@@ -1860,19 +1913,26 @@ formerr:
else
ht = NULL;
+ /*
+ * Note: uses cbuf[] to copy bytes from previous addition.
+ */
while (--adds >= 0)
{
/* <add>: <addflags> <addlen> [<leadlen>] [<copylen>]
* [<addstring>] [<region>] */
flags = getc(fd); /* <addflags> */
addlen = getc(fd); /* <addlen> */
- if (addlen == EOF)
+ if (addlen < 0)
goto truncerr;
if (addlen >= MAXWLEN)
goto formerr;
if (flags & ADD_LEADLEN)
+ {
leadlen = getc(fd); /* <leadlen> */
+ if (leadlen > addlen)
+ goto formerr;
+ }
else
leadlen = 0;
@@ -1891,7 +1951,7 @@ formerr:
{
/* <addstring> is in original case, need to get
* case-folded word too. */
- (void)str_foldcase(cbuf, addlen, fbuf, MAXWLEN);
+ (void)spell_casefold(cbuf, addlen, fbuf, MAXWLEN);
flen = addlen - leadlen + 1;
addlen = STRLEN(fbuf);
}
@@ -1901,7 +1961,7 @@ formerr:
aw = (addword_T *)getroom(lp, &bl_used,
sizeof(addword_T) + addlen + flen);
if (aw == NULL)
- goto errorend;
+ goto endFAIL;
if (flags & ADD_KEEPCAP)
{
@@ -1954,7 +2014,7 @@ formerr:
naw = (addword_T *)getroom(lp, &bl_used,
sizeof(addword_T) + STRLEN(NOWC_KEY));
if (naw == NULL)
- goto errorend;
+ goto endFAIL;
STRCPY(naw->aw_word, NOWC_KEY);
hash_add_item(ht, hi, naw->aw_word, hash);
naw->aw_next = aw;
@@ -1994,11 +2054,12 @@ formerr:
}
}
}
- goto end_OK;
+ goto endOK;
-errorend:
+endFAIL:
lp->sl_error = TRUE;
-end_OK:
+
+endOK:
if (fd != NULL)
fclose(fd);
hash_unlock(&lp->sl_words);
@@ -2187,7 +2248,7 @@ captype(word, end)
#else
c = *p++;
#endif
- firstcap = allcap = MB_ISUPPER(c);
+ firstcap = allcap = spell_isupper(c);
/*
* Need to check all letters to find a word with mixed upper/lower.
@@ -2201,7 +2262,7 @@ captype(word, end)
#else
c = *p;
#endif
- if (!MB_ISUPPER(c))
+ if (!spell_isupper(c))
{
/* UUl -> KEEPCAP */
if (past_second && allcap)
@@ -2345,9 +2406,9 @@ struct basicword_S
garray_T bw_prefix; /* table with prefix numbers */
garray_T bw_suffix; /* table with suffix numbers */
int bw_region; /* region bits */
- char_u *bw_caseword; /* keep-case word */
- char_u *bw_leadstring; /* must come before bw_word */
- char_u *bw_addstring; /* must come after bw_word */
+ char_u *bw_caseword; /* keep-case word or NULL */
+ char_u *bw_leadstring; /* must come before bw_word or NULL */
+ char_u *bw_addstring; /* must come after bw_word or NULL */
char_u bw_word[1]; /* actually longer: word case folded */
};
@@ -2391,12 +2452,12 @@ static void add_affhash __ARGS((hashtab_T *ht, char_u *key, int newnr));
static void clear_affhash __ARGS((hashtab_T *ht));
static void trans_affixes __ARGS((dicword_T *dw, basicword_T *bw, afffile_T *oldaff, hashtab_T *newwords));
static int build_wordlist __ARGS((hashtab_T *newwords, hashtab_T *oldwords, afffile_T *oldaff, int regionmask));
+static basicword_T *get_basicword __ARGS((char_u *word, int asize));
static void combine_regions __ARGS((hashtab_T *newwords));
static int same_affixes __ARGS((basicword_T *bw, basicword_T *nbw));
-static void expand_affixes __ARGS((hashtab_T *newwords, garray_T *prefgap, garray_T *suffgap));
-static void expand_one_aff __ARGS((basicword_T *bw, garray_T *add_words, affentry_T *pae, affentry_T *sae));
-static void add_to_wordlist __ARGS((hashtab_T *newwords, basicword_T *bw));
-static void put_bytes __ARGS((FILE *fd, long_u nr, int len));
+static int expand_affixes __ARGS((hashtab_T *newwords, garray_T *prefgap, garray_T *suffgap));
+static int expand_one_aff __ARGS((basicword_T *bw, garray_T *add_words, affentry_T *pae, affentry_T *sae));
+static int add_to_wordlist __ARGS((hashtab_T *newwords, basicword_T *bw));
static void write_affix __ARGS((FILE *fd, affheader_T *ah));
static void write_affixlist __ARGS((FILE *fd, garray_T *aff, int bytes));
static void write_vim_spell __ARGS((char_u *fname, garray_T *prefga, garray_T *suffga, hashtab_T *newwords, int regcount, char_u *regchars));
@@ -2428,6 +2489,9 @@ spell_read_aff(fname, conv, ascii)
affheader_T *cur_aff = NULL;
int aff_todo = 0;
hashtab_T *tp;
+ char_u *low = NULL;
+ char_u *fol = NULL;
+ char_u *upp = NULL;
fd = fopen((char *)fname, "r");
if (fd == NULL)
@@ -2449,8 +2513,9 @@ spell_read_aff(fname, conv, ascii)
/*
* Read all the lines in the file one by one.
*/
- while (!vim_fgets(rline, MAXLINELEN, fd))
+ while (!vim_fgets(rline, MAXLINELEN, fd) && !got_int)
{
+ line_breakcheck();
++lnum;
/* Skip comment lines. */
@@ -2462,6 +2527,12 @@ spell_read_aff(fname, conv, ascii)
if (conv->vc_type != CONV_NONE)
{
pc = string_convert(conv, rline, NULL);
+ if (pc == NULL)
+ {
+ smsg((char_u *)_("Conversion failure for word in %s line %d: %s"),
+ fname, lnum, rline);
+ continue;
+ }
line = pc;
}
else
@@ -2587,6 +2658,30 @@ spell_read_aff(fname, conv, ascii)
cur_aff->ah_first = aff_entry;
}
}
+ else if (STRCMP(items[0], "FOL") == 0 && itemcnt == 2)
+ {
+ if (fol != NULL)
+ smsg((char_u *)_("Duplicate FOL in %s line %d"),
+ fname, lnum);
+ else
+ fol = vim_strsave(items[1]);
+ }
+ else if (STRCMP(items[0], "LOW") == 0 && itemcnt == 2)
+ {
+ if (low != NULL)
+ smsg((char_u *)_("Duplicate LOW in %s line %d"),
+ fname, lnum);
+ else
+ low = vim_strsave(items[1]);
+ }
+ else if (STRCMP(items[0], "UPP") == 0 && itemcnt == 2)
+ {
+ if (upp != NULL)
+ smsg((char_u *)_("Duplicate UPP in %s line %d"),
+ fname, lnum);
+ else
+ upp = vim_strsave(items[1]);
+ }
else if (STRCMP(items[0], "REP") == 0 && itemcnt == 2)
/* Ignore REP count */;
else if (STRCMP(items[0], "REP") == 0 && itemcnt == 3)
@@ -2608,6 +2703,18 @@ spell_read_aff(fname, conv, ascii)
}
+ if (fol != NULL || low != NULL || upp != NULL)
+ {
+ if (fol == NULL || low == NULL || upp == NULL)
+ smsg((char_u *)_("Missing FOL/LOW/UPP line in %s"), fname);
+ else
+ set_spell_chartab(fol, low, upp);
+
+ vim_free(fol);
+ vim_free(low);
+ vim_free(upp);
+ }
+
vim_free(pc);
fclose(fd);
return aff;
@@ -2720,8 +2827,9 @@ spell_read_dic(ht, fname, conv, ascii)
* The words are converted to 'encoding' here, before being added to
* the hashtable.
*/
- while (!vim_fgets(line, MAXLINELEN, fd))
+ while (!vim_fgets(line, MAXLINELEN, fd) && !got_int)
{
+ line_breakcheck();
++lnum;
/* Remove CR, LF and white space from end. */
@@ -2745,6 +2853,12 @@ spell_read_dic(ht, fname, conv, ascii)
if (conv->vc_type != CONV_NONE)
{
pc = string_convert(conv, line, NULL);
+ if (pc == NULL)
+ {
+ smsg((char_u *)_("Conversion failure for word in %s line %d: %s"),
+ fname, lnum, line);
+ continue;
+ }
w = pc;
}
else
@@ -2756,7 +2870,10 @@ spell_read_dic(ht, fname, conv, ascii)
dw = (dicword_T *)alloc_clear((unsigned)sizeof(dicword_T)
+ STRLEN(w));
if (dw == NULL)
+ {
+ vim_free(pc);
break;
+ }
STRCPY(dw->dw_word, w);
vim_free(pc);
@@ -3136,7 +3253,7 @@ trans_affixes(dw, bw, oldaff, newwords)
char_u key[2];
char_u *p;
char_u *affnm;
- garray_T *gap;
+ garray_T *gap, *agap;
hashitem_T *aff_hi;
affheader_T *ah;
affentry_T *ae;
@@ -3144,7 +3261,6 @@ trans_affixes(dw, bw, oldaff, newwords)
int i;
basicword_T *nbw;
int alen;
- int wlen;
garray_T suffixga; /* list of words with non-word suffixes */
garray_T prefixga; /* list of words with non-word prefixes */
char_u nword[MAXWLEN];
@@ -3179,7 +3295,7 @@ trans_affixes(dw, bw, oldaff, newwords)
for (ae = ah->ah_first; ae != NULL; ae = ae->ae_next)
{
/* Setup for regexp matching. Note that we don't ignore case.
- * This is weird, because he rules in an .aff file don't care
+ * This is weird, because the rules in an .aff file don't care
* about case, but it's necessary for compatibility with Myspell.
*/
regmatch.regprog = ae->ae_prog;
@@ -3190,23 +3306,19 @@ trans_affixes(dw, bw, oldaff, newwords)
if ((ae->ae_add_nw != NULL || ae->ae_add_pw != NULL)
&& (gap != &bw->bw_suffix || bw->bw_addstring == NULL))
{
- /* Affix has a non-word character and isn't prepended to
+ /*
+ * Affix has a non-word character and isn't prepended to
* leader or appended to addition. Need to use another
- * word with an addition. It's a copy of the basicword_T
- * "bw". */
- if (gap == &bw->bw_suffix)
+ * word with a leadstring and/or addstring.
+ */
+ if (gap == &bw->bw_suffix || ae->ae_add_nw == NULL)
{
- alen = ae->ae_add_nw - ae->ae_add;
- nbw = (basicword_T *)alloc((unsigned)(
- sizeof(basicword_T) + STRLEN(bw->bw_word)
- + alen + 1));
- if (nbw != NULL)
+ /* Suffix or prefix with only non-word chars.
+ * Build the new basic word in "nword": Remove chop
+ * string and append/prepend addition. */
+ if (gap == &bw->bw_suffix)
{
- *nbw = *bw;
- ga_init2(&nbw->bw_prefix, sizeof(short_u), 1);
- ga_init2(&nbw->bw_suffix, sizeof(short_u), 1);
-
- /* Adding the suffix may change the caps. */
+ /* suffix goes at the end of the word */
STRCPY(nword, dw->dw_word);
if (ae->ae_chop != NULL)
{
@@ -3217,64 +3329,11 @@ trans_affixes(dw, bw, oldaff, newwords)
*p = NUL;
}
STRCAT(nword, ae->ae_add);
- flags = captype(nword, nword + STRLEN(nword));
- if (flags & BWF_KEEPCAP)
- {
- /* "caseword" excludes the addition */
- nword[STRLEN(dw->dw_word) + alen] = NUL;
- nbw->bw_caseword = vim_strsave(nword);
- }
- nbw->bw_flags &= ~(BWF_ONECAP | BWF_ALLCAP
- | BWF_KEEPCAP);
- nbw->bw_flags |= flags;
-
- if (bw->bw_leadstring != NULL)
- nbw->bw_leadstring =
- vim_strsave(bw->bw_leadstring);
- nbw->bw_addstring = vim_strsave(ae->ae_add_nw);
-
- STRCPY(nbw->bw_word, bw->bw_word);
- if (alen > 0 || ae->ae_chop != NULL)
- {
- /* Suffix starts with word character and/or
- * chop off something. Append it to the word.
- * Add new word entry. */
- wlen = STRLEN(nbw->bw_word);
- if (ae->ae_chop != NULL)
- wlen -= STRLEN(ae->ae_chop);
- mch_memmove(nbw->bw_word + wlen, ae->ae_add,
- alen);
- nbw->bw_word[wlen + alen] = NUL;
- add_to_wordlist(newwords, nbw);
- }
- else
- /* Basic word is the same, link "nbw" after
- * "bw". */
- bw->bw_next = nbw;
-
- /* Remember this word, we need to set bw_prefix
- * and bw_prefix later. */
- if (ga_grow(&suffixga, 1) == OK)
- ((basicword_T **)suffixga.ga_data)
- [suffixga.ga_len++] = nbw;
+ agap = &suffixga;
}
- }
- else if (ae->ae_add_nw == NULL)
- {
- /* Prefix that starts with non-word char(s) and may be
- * followed by word chars: Make a leadstring and
- * prepend word chars before the word. */
- alen = STRLEN(ae->ae_add_pw);
- nbw = (basicword_T *)alloc((unsigned)(
- sizeof(basicword_T) + STRLEN(bw->bw_word)
- + alen + 1));
- if (nbw != NULL)
+ else
{
- *nbw = *bw;
- ga_init2(&nbw->bw_prefix, sizeof(short_u), 1);
- ga_init2(&nbw->bw_suffix, sizeof(short_u), 1);
-
- /* Adding the prefix may change the caps. */
+ /* prefix goes before the word */
STRCPY(nword, ae->ae_add);
p = dw->dw_word;
if (ae->ae_chop != NULL)
@@ -3282,51 +3341,33 @@ trans_affixes(dw, bw, oldaff, newwords)
for (i = mb_charlen(ae->ae_chop); i > 0; --i)
mb_ptr_adv( p);
STRCAT(nword, p);
+ agap = &prefixga;
+ }
- flags = captype(nword, nword + STRLEN(nword));
- if (flags & BWF_KEEPCAP)
- /* "caseword" excludes the addition */
- nbw->bw_caseword = vim_strsave(nword
- + (ae->ae_add_pw - ae->ae_add));
- else
- nbw->bw_caseword = NULL;
- nbw->bw_flags &= ~(BWF_ONECAP | BWF_ALLCAP
- | BWF_KEEPCAP);
- nbw->bw_flags |= flags;
-
- if (bw->bw_addstring != NULL)
- nbw->bw_addstring =
- vim_strsave(bw->bw_addstring);
- else
- nbw->bw_addstring = NULL;
- nbw->bw_leadstring = vim_strnsave(ae->ae_add,
- ae->ae_add_pw - ae->ae_add);
+ /* Create a basicword_T from the word. */
+ nbw = get_basicword(nword, 1);
+ if (nbw != NULL)
+ {
+ nbw->bw_region = bw->bw_region;
+ nbw->bw_flags |= bw->bw_flags
+ & ~(BWF_ONECAP | BWF_ALLCAP | BWF_KEEPCAP);
- if (alen > 0 || ae->ae_chop != NULL)
- {
- /* Prefix ends in word character and/or chop
- * off something. Prepend it to the word.
- * Add new word entry. */
- STRCPY(nbw->bw_word, ae->ae_add_pw);
- p = bw->bw_word;
- if (ae->ae_chop != NULL)
- p += STRLEN(ae->ae_chop);
- STRCAT(nbw->bw_word, p);
- add_to_wordlist(newwords, nbw);
- }
+ if (STRCMP(bw->bw_word, nbw->bw_word) != 0)
+ /* Basic word differs, add new word entry. */
+ (void)add_to_wordlist(newwords, nbw);
else
{
/* Basic word is the same, link "nbw" after
* "bw". */
- STRCPY(nbw->bw_word, bw->bw_word);
+ nbw->bw_next = bw->bw_next;
bw->bw_next = nbw;
}
- /* Remember this word, we need to set bw_suffix
- * and bw_suffix later. */
- if (ga_grow(&prefixga, 1) == OK)
- ((basicword_T **)prefixga.ga_data)
- [prefixga.ga_len++] = nbw;
+ /* Remember this word, we need to set bw_prefix
+ * or bw_suffix later. */
+ if (ga_grow(agap, 1) == OK)
+ ((basicword_T **)agap->ga_data)
+ [agap->ga_len++] = nbw;
}
}
else
@@ -3345,7 +3386,7 @@ trans_affixes(dw, bw, oldaff, newwords)
#else
n = 1;
#endif
- (void)str_foldcase(p, n, nword + alen,
+ (void)spell_casefold(p, n, nword + alen,
MAXWLEN - alen);
alen += STRLEN(nword + alen);
}
@@ -3393,7 +3434,7 @@ trans_affixes(dw, bw, oldaff, newwords)
else
nbw->bw_leadstring = NULL;
- add_to_wordlist(newwords, nbw);
+ (void)add_to_wordlist(newwords, nbw);
/* Remember this word, we need to set bw_suffix
* and bw_suffix later. */
@@ -3482,17 +3523,6 @@ build_wordlist(newwords, oldwords, oldaff, regionmask)
hashitem_T *old_hi;
dicword_T *dw;
basicword_T *bw;
- char_u foldword[MAXLINELEN];
- int leadlen;
- char_u leadstring[MAXLINELEN];
- int addlen;
- char_u addstring[MAXLINELEN];
- int dwlen;
- char_u *p;
- int clen;
- int flags;
- char_u *cp = NULL;
- int l;
char_u message[MAXLINELEN + MAXWLEN];
todo = oldwords->ht_used;
@@ -3519,107 +3549,15 @@ build_wordlist(newwords, oldwords, oldaff, regionmask)
break;
}
- /* The basic words are always stored with folded case. */
- dwlen = STRLEN(dw->dw_word);
- (void)str_foldcase(dw->dw_word, dwlen, foldword, MAXLINELEN);
- flags = captype(dw->dw_word, dw->dw_word + dwlen);
-
- /* Check for non-word characters before the word. */
- clen = 0;
- leadlen = 0;
- if (!spell_iswordc(foldword))
- {
- p = foldword;
- for (;;)
- {
- mb_ptr_adv(p);
- ++clen;
- if (*p == NUL) /* Only non-word chars (bad word!) */
- {
- if (p_verbose > 0)
- smsg((char_u *)_("Warning: word without word characters: \"%s\""),
- foldword);
- break;
- }
- if (spell_iswordc(p))
- {
- /* Move the leader to "leadstring" and remove it from
- * "foldword". */
- leadlen = p - foldword;
- mch_memmove(leadstring, foldword, leadlen);
- leadstring[leadlen] = NUL;
- mch_memmove(foldword, p, STRLEN(p) + 1);
- break;
- }
- }
- }
-
- /* Check for non-word characters after word characters. */
- addlen = 0;
- for (p = foldword; spell_iswordc(p); mb_ptr_adv(p))
- {
- if (*p == NUL)
- break;
- ++clen;
- }
- if (*p != NUL)
- {
- /* Move the addition to "addstring" and truncate "foldword". */
- if (flags & BWF_KEEPCAP)
- {
- /* Preserve caps, need to skip the right number of
- * characters in the original word (case folding may
- * change the byte count). */
- l = 0;
- for (cp = dw->dw_word; l < clen; mb_ptr_adv(cp))
- ++l;
- addlen = STRLEN(cp);
- mch_memmove(addstring, cp, addlen + 1);
- }
- else
- {
- addlen = STRLEN(p);
- mch_memmove(addstring, p, addlen + 1);
- }
- *p = NUL;
- }
-
- bw = (basicword_T *)alloc_clear((unsigned)sizeof(basicword_T)
- + STRLEN(foldword));
+ bw = get_basicword(dw->dw_word, 10);
if (bw == NULL)
break;
- STRCPY(bw->bw_word, foldword);
bw->bw_region = regionmask;
- if (leadlen > 0)
- bw->bw_leadstring = vim_strsave(leadstring);
- else
- bw->bw_leadstring = NULL;
- if (addlen > 0)
- bw->bw_addstring = vim_strsave(addstring);
- else
- bw->bw_addstring = NULL;
-
- add_to_wordlist(newwords, bw);
-
- if (flags & BWF_KEEPCAP)
- {
- if (addlen == 0)
- /* use the whole word */
- bw->bw_caseword = vim_strsave(dw->dw_word + leadlen);
- else
- /* use only up to the addition */
- bw->bw_caseword = vim_strnsave(dw->dw_word + leadlen,
- cp - dw->dw_word - leadlen);
- if (bw->bw_caseword == NULL) /* out of memory */
- flags &= ~BWF_KEEPCAP;
- }
- bw->bw_flags = flags;
+ (void)add_to_wordlist(newwords, bw);
/* Deal with any affix names on the old word, translate them
* into affix numbers. */
- ga_init2(&bw->bw_prefix, sizeof(short_u), 10);
- ga_init2(&bw->bw_suffix, sizeof(short_u), 10);
if (dw->dw_affnm != NULL)
trans_affixes(dw, bw, oldaff, newwords);
}
@@ -3630,6 +3568,128 @@ build_wordlist(newwords, oldwords, oldaff, regionmask)
}
/*
+ * Get a basicword_T from a word in original case.
+ * Caller must set bw_region.
+ * Returns NULL when something fails.
+ */
+ static basicword_T *
+get_basicword(word, asize)
+ char_u *word;
+ int asize; /* growsize for affix garray */
+{
+ int dwlen;
+ char_u foldword[MAXLINELEN];
+ int flags;
+ int clen;
+ int leadlen;
+ char_u *p;
+ char_u leadstring[MAXLINELEN];
+ int addlen;
+ char_u addstring[MAXLINELEN];
+ char_u *cp = NULL;
+ int l;
+ basicword_T *bw;
+
+ /* The basic words are always stored with folded case. */
+ dwlen = STRLEN(word);
+ (void)spell_casefold(word, dwlen, foldword, MAXLINELEN);
+ flags = captype(word, word + dwlen);
+
+ /* Check for non-word characters before the word. */
+ clen = 0;
+ leadlen = 0;
+ if (!spell_iswordc(foldword))
+ {
+ p = foldword;
+ for (;;)
+ {
+ mb_ptr_adv(p);
+ ++clen;
+ if (*p == NUL) /* Only non-word chars (bad word!) */
+ {
+ if (p_verbose > 0)
+ smsg((char_u *)_("Warning: word without word characters: \"%s\""),
+ foldword);
+ break;
+ }
+ if (spell_iswordc(p))
+ {
+ /* Move the leader to "leadstring" and remove it from
+ * "foldword". */
+ leadlen = p - foldword;
+ mch_memmove(leadstring, foldword, leadlen);
+ leadstring[leadlen] = NUL;
+ mch_memmove(foldword, p, STRLEN(p) + 1);
+ break;
+ }
+ }
+ }
+
+ /* Check for non-word characters after word characters. */
+ addlen = 0;
+ for (p = foldword; spell_iswordc(p); mb_ptr_adv(p))
+ {
+ if (*p == NUL)
+ break;
+ ++clen;
+ }
+ if (*p != NUL)
+ {
+ /* Move the addition to "addstring" and truncate "foldword". */
+ if (flags & BWF_KEEPCAP)
+ {
+ /* Preserve caps, need to skip the right number of
+ * characters in the original word (case folding may
+ * change the byte count). */
+ l = 0;
+ for (cp = word; l < clen; mb_ptr_adv(cp))
+ ++l;
+ addlen = STRLEN(cp);
+ mch_memmove(addstring, cp, addlen + 1);
+ }
+ else
+ {
+ addlen = STRLEN(p);
+ mch_memmove(addstring, p, addlen + 1);
+ }
+ *p = NUL;
+ }
+
+ bw = (basicword_T *)alloc_clear((unsigned)sizeof(basicword_T)
+ + STRLEN(foldword));
+ if (bw == NULL)
+ return NULL;
+
+ STRCPY(bw->bw_word, foldword);
+
+ if (leadlen > 0)
+ bw->bw_leadstring = vim_strsave(leadstring);
+ else
+ bw->bw_leadstring = NULL;
+ if (addlen > 0)
+ bw->bw_addstring = vim_strsave(addstring);
+ else
+ bw->bw_addstring = NULL;
+
+ if (flags & BWF_KEEPCAP)
+ {
+ if (addlen == 0)
+ /* use the whole word */
+ bw->bw_caseword = vim_strsave(word + leadlen);
+ else
+ /* use only up to the addition */
+ bw->bw_caseword = vim_strnsave(word + leadlen,
+ cp - word - leadlen);
+ }
+
+ bw->bw_flags = flags;
+ ga_init2(&bw->bw_prefix, sizeof(short_u), asize);
+ ga_init2(&bw->bw_suffix, sizeof(short_u), asize);
+
+ return bw;
+}
+
+/*
* Go through the list of words and combine the ones that are identical except
* for the region.
*/
@@ -3662,14 +3722,16 @@ combine_regions(newwords)
&& (bw->bw_addstring == NULL)
== (nbw->bw_addstring == NULL)
&& ((bw->bw_flags & BWF_KEEPCAP) == 0
- || (STRCMP(bw->bw_caseword,
- nbw->bw_caseword) == 0))
+ || bw->bw_caseword == NULL
+ || nbw->bw_caseword == NULL
+ || STRCMP(bw->bw_caseword,
+ nbw->bw_caseword) == 0)
&& (bw->bw_leadstring == NULL
- || (STRCMP(bw->bw_leadstring,
- nbw->bw_leadstring) == 0))
+ || STRCMP(bw->bw_leadstring,
+ nbw->bw_leadstring) == 0)
&& (bw->bw_addstring == NULL
- || (STRCMP(bw->bw_addstring,
- nbw->bw_addstring) == 0))
+ || STRCMP(bw->bw_addstring,
+ nbw->bw_addstring) == 0)
&& same_affixes(bw, nbw)
)
{
@@ -3716,8 +3778,10 @@ same_affixes(bw, nbw)
* This is also needed when a word with an addition has a prefix and the word
* with prefix also exists. E.g., "blurp's/D" (D is prefix "de") and
* "deblurp". "deblurp" would match and no prefix would be tried.
+ *
+ * Returns FAIL when out of memory.
*/
- static void
+ static int
expand_affixes(newwords, prefgap, suffgap)
hashtab_T *newwords;
garray_T *prefgap;
@@ -3731,6 +3795,7 @@ expand_affixes(newwords, prefgap, suffgap)
garray_T add_words;
int n;
char_u message[MAXLINELEN + MAXWLEN];
+ int retval = OK;
ga_init2(&add_words, sizeof(basicword_T *), 10);
@@ -3806,7 +3871,12 @@ expand_affixes(newwords, prefgap, suffgap)
{
/* Expand the word for this combination of
* prefixes and affixes. */
- expand_one_aff(bw, &add_words, pae, sae);
+ if (expand_one_aff(bw, &add_words,
+ pae, sae) == FAIL)
+ {
+ retval = FAIL;
+ goto theend;
+ }
/* Advance to next suffix entry, if there
* is one. */
@@ -3831,9 +3901,16 @@ expand_affixes(newwords, prefgap, suffgap)
* all its items.
*/
for (pi = 0; pi < add_words.ga_len; ++pi)
- add_to_wordlist(newwords, ((basicword_T **)add_words.ga_data)[pi]);
+ {
+ retval = add_to_wordlist(newwords,
+ ((basicword_T **)add_words.ga_data)[pi]);
+ if (retval == FAIL)
+ break;
+ }
+theend:
ga_clear(&add_words);
+ return retval;
}
/*
@@ -3841,8 +3918,9 @@ expand_affixes(newwords, prefgap, suffgap)
* prefix "pae" and suffix "sae". Either "pae" or "sae" can be NULL.
* Don't do this when not necessary:
* - no leadstring and adding prefix doesn't result in existing word.
+ * Returns FAIL when out of memory.
*/
- static void
+ static int
expand_one_aff(bw, add_words, pae, sae)
basicword_T *bw;
garray_T *add_words;
@@ -3873,7 +3951,7 @@ expand_one_aff(bw, add_words, pae, sae)
STRCPY(word + l, bw->bw_word + choplen);
/* Do the same for bw_caseword, if it's there. */
- if (bw->bw_flags & BWF_KEEPCAP)
+ if ((bw->bw_flags & BWF_KEEPCAP) && bw->bw_caseword != NULL)
{
if (l > 0)
mch_memmove(caseword, pae->ae_add, l);
@@ -3907,112 +3985,116 @@ expand_one_aff(bw, add_words, pae, sae)
nbw = (basicword_T *)alloc_clear((unsigned)
sizeof(basicword_T) + STRLEN(word));
- if (nbw != NULL)
+ if (nbw == NULL)
+ return FAIL;
+
+ /* Add the new word to the list of words to be added later. */
+ if (ga_grow(add_words, 1) == FAIL)
{
- /* Add the new word to the list of words to be added later. */
- if (ga_grow(add_words, 1) == FAIL)
- {
- vim_free(nbw);
- return;
- }
- ((basicword_T **)add_words->ga_data)[add_words->ga_len++] = nbw;
+ vim_free(nbw);
+ return FAIL;
+ }
+ ((basicword_T **)add_words->ga_data)[add_words->ga_len++] = nbw;
- /* Copy the (modified) basic word, flags and region. */
- STRCPY(nbw->bw_word, word);
- nbw->bw_flags = bw->bw_flags;
- nbw->bw_region = bw->bw_region;
+ /* Copy the (modified) basic word, flags and region. */
+ STRCPY(nbw->bw_word, word);
+ nbw->bw_flags = bw->bw_flags;
+ nbw->bw_region = bw->bw_region;
- /* Set the (modified) caseword. */
- if (bw->bw_flags & BWF_KEEPCAP)
- if ((nbw->bw_caseword = vim_strsave(caseword)) == NULL)
- nbw->bw_flags &= ~BWF_KEEPCAP;
+ /* Set the (modified) caseword. */
+ if (bw->bw_flags & BWF_KEEPCAP)
+ nbw->bw_caseword = vim_strsave(caseword);
+ else
+ nbw->bw_caseword = NULL;
- if (bw->bw_leadstring != NULL)
+ if (bw->bw_leadstring != NULL)
+ {
+ if (pae != NULL)
{
- if (pae != NULL)
+ /* Prepend prefix to leadstring. */
+ ll = STRLEN(bw->bw_leadstring);
+ l = choplen = 0;
+ if (pae->ae_add != NULL)
+ l = STRLEN(pae->ae_add);
+ if (pae->ae_chop != NULL)
{
- /* Prepend prefix to leadstring. */
- ll = STRLEN(bw->bw_leadstring);
- l = choplen = 0;
- if (pae->ae_add != NULL)
- l = STRLEN(pae->ae_add);
- if (pae->ae_chop != NULL)
- {
- choplen = STRLEN(pae->ae_chop);
- if (choplen > ll) /* TODO: error? */
- choplen = ll;
- }
- nbw->bw_leadstring = alloc((unsigned)(ll + l - choplen + 1));
- if (nbw->bw_leadstring != NULL)
- {
- if (l > 0)
- mch_memmove(nbw->bw_leadstring, pae->ae_add, l);
- STRCPY(nbw->bw_leadstring + l, bw->bw_leadstring + choplen);
- }
+ choplen = STRLEN(pae->ae_chop);
+ if (choplen > ll) /* TODO: error? */
+ choplen = ll;
}
- else
- nbw->bw_leadstring = vim_strsave(bw->bw_leadstring);
- }
- else if (bw->bw_prefix.ga_len > 0)
- {
- /* There is no leadstring, copy the list of possible prefixes. */
- ga_init2(&nbw->bw_prefix, sizeof(short_u), 1);
- if (ga_grow(&nbw->bw_prefix, bw->bw_prefix.ga_len) == OK)
+ nbw->bw_leadstring = alloc((unsigned)(ll + l - choplen + 1));
+ if (nbw->bw_leadstring != NULL)
{
- mch_memmove(nbw->bw_prefix.ga_data, bw->bw_prefix.ga_data,
- bw->bw_prefix.ga_len * sizeof(short_u));
- nbw->bw_prefix.ga_len = bw->bw_prefix.ga_len;
+ if (l > 0)
+ mch_memmove(nbw->bw_leadstring, pae->ae_add, l);
+ STRCPY(nbw->bw_leadstring + l, bw->bw_leadstring + choplen);
}
}
+ else
+ nbw->bw_leadstring = vim_strsave(bw->bw_leadstring);
+ }
+ else if (bw->bw_prefix.ga_len > 0)
+ {
+ /* There is no leadstring, copy the list of possible prefixes. */
+ ga_init2(&nbw->bw_prefix, sizeof(short_u), 1);
+ if (ga_grow(&nbw->bw_prefix, bw->bw_prefix.ga_len) == OK)
+ {
+ mch_memmove(nbw->bw_prefix.ga_data, bw->bw_prefix.ga_data,
+ bw->bw_prefix.ga_len * sizeof(short_u));
+ nbw->bw_prefix.ga_len = bw->bw_prefix.ga_len;
+ }
+ }
- if (bw->bw_addstring != NULL)
+ if (bw->bw_addstring != NULL)
+ {
+ if (sae != NULL)
{
- if (sae != NULL)
+ /* Append suffix to addstring. */
+ l = STRLEN(bw->bw_addstring);
+ if (sae->ae_chop != NULL)
{
- /* Append suffix to addstring. */
- l = STRLEN(bw->bw_addstring);
- if (sae->ae_chop != NULL)
- {
- l -= STRLEN(sae->ae_chop);
- if (l < 0) /* TODO: error? */
- l = 0;
- }
+ l -= STRLEN(sae->ae_chop);
+ if (l < 0) /* TODO: error? */
+ l = 0;
+ }
+ if (sae->ae_add == NULL)
+ ll = 0;
+ else
+ ll = STRLEN(sae->ae_add);
+ nbw->bw_addstring = alloc((unsigned)(ll + l - choplen + 1));
+ if (nbw->bw_addstring != NULL)
+ {
+ STRCPY(nbw->bw_addstring, bw->bw_addstring);
if (sae->ae_add == NULL)
- ll = 0;
+ nbw->bw_addstring[l] = NUL;
else
- ll = STRLEN(sae->ae_add);
- nbw->bw_addstring = alloc((unsigned)(ll + l - choplen + 1));
- if (nbw->bw_addstring != NULL)
- {
- STRCPY(nbw->bw_addstring, bw->bw_addstring);
- if (sae->ae_add == NULL)
- nbw->bw_addstring[l] = NUL;
- else
- STRCPY(nbw->bw_addstring + l, sae->ae_add);
- }
+ STRCPY(nbw->bw_addstring + l, sae->ae_add);
}
- else
- nbw->bw_addstring = vim_strsave(bw->bw_addstring);
}
+ else
+ nbw->bw_addstring = vim_strsave(bw->bw_addstring);
}
+
+ return OK;
}
/*
* Add basicword_T "*bw" to wordlist "newwords".
*/
- static void
+ static int
add_to_wordlist(newwords, bw)
hashtab_T *newwords;
basicword_T *bw;
{
hashitem_T *hi;
basicword_T *bw2;
+ int retval = OK;
hi = hash_find(newwords, bw->bw_word);
if (HASHITEM_EMPTY(hi))
{
/* New entry, add to hashlist. */
- hash_add(newwords, bw->bw_word);
+ retval = hash_add(newwords, bw->bw_word);
bw->bw_next = NULL;
}
else
@@ -4022,12 +4104,13 @@ add_to_wordlist(newwords, bw)
bw->bw_next = bw2->bw_next;
bw2->bw_next = bw;
}
+ return retval;
}
/*
* Write a number to file "fd", MSB first, in "len" bytes.
*/
- static void
+ void
put_bytes(fd, nr, len)
FILE *fd;
long_u nr;
@@ -4105,22 +4188,29 @@ write_affixlist(fd, aff, bytes)
* <SUGGEST> <WORDLIST>
*
* <HEADER>: <fileID> <regioncnt> <regionname> ...
+ * <charflagslen> <charflags> <fcharslen> <fchars>
*
- * <fileID> 10 bytes "VIMspell03"
+ * <fileID> 10 bytes "VIMspell04"
* <regioncnt> 1 byte number of regions following (8 supported)
* <regionname> 2 bytes Region name: ca, au, etc.
* First <regionname> is region 1.
*
+ * <charflagslen> 1 byte Number of bytes in <charflags> (should be 128).
+ * <charflags> N bytes List of flags (first one is for character 128):
+ * 0x01 word character
+ * 0x01 upper-case character
+ * <fcharslen> 2 bytes Number of bytes in <fchars>.
+ * <fchars> N bytes Folded characters, first one is for character 128.
+ *
*
- * <PREFIXLIST>: <affcount> <afftotcnt> <affix> ...
- * <SUFFIXLIST>: <affcount> <afftotcnt> <affix> ...
+ * <PREFIXLIST>: <affcount> <affix> ...
+ * <SUFFIXLIST>: <affcount> <affix> ...
* list of possible affixes: prefixes and suffixes.
*
* <affcount> 2 bytes Number of affixes (MSB comes first).
* When more than 256 an affixNR is 2 bytes.
* This is separate for prefixes and suffixes!
* First affixNR is 0.
- * <afftotcnt> 2 bytes Total number of affix items (MSB comes first).
*
* <affix>: <affitemcnt> <affitem> ...
*
@@ -4228,8 +4318,6 @@ write_vim_spell(fname, prefga, suffga, newwords, regcount, regchars)
int flags, aflags;
basicword_T *bw, *bwf, *bw2 = NULL;
int i;
- int cnt;
- affentry_T *ae;
int round;
garray_T bwga;
@@ -4242,12 +4330,14 @@ write_vim_spell(fname, prefga, suffga, newwords, regcount, regchars)
return;
}
- fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, wif.wif_fd);
+ /* <HEADER>: <fileID> <regioncnt> <regionname> ...
+ * <charflagslen> <charflags> <fcharslen> <fchars> */
+ fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, wif.wif_fd); /* <fileID> */
/* write the region names if there is more than one */
if (regcount > 1)
{
- putc(regcount, wif.wif_fd);
+ putc(regcount, wif.wif_fd); /* <regioncnt> <regionname> ... */
fwrite(regchars, (size_t)(regcount * 2), (size_t)1, wif.wif_fd);
wif.wif_regionmask = (1 << regcount) - 1;
}
@@ -4257,20 +4347,17 @@ write_vim_spell(fname, prefga, suffga, newwords, regcount, regchars)
wif.wif_regionmask = 0;
}
- /* Write the prefix and suffix lists. */
+ /* Write the table with character flags and table for case folding.
+ * <charflagslen> <charflags> <fcharlen> <fchars> */
+ write_spell_chartab(wif.wif_fd);
+
+ /* <PREFIXLIST>: <affcount> <affix> ...
+ * <SUFFIXLIST>: <affcount> <affix> ... */
for (round = 1; round <= 2; ++round)
{
gap = round == 1 ? prefga : suffga;
put_bytes(wif.wif_fd, (long_u)gap->ga_len, 2); /* <affcount> */
- /* Count the total number of affix items. */
- cnt = 0;
- for (i = 0; i < gap->ga_len; ++i)
- for (ae = ((affheader_T *)gap->ga_data + i)->ah_first;
- ae != NULL; ae = ae->ae_next)
- ++cnt;
- put_bytes(wif.wif_fd, (long_u)cnt, 2); /* <afftotcnt> */
-
for (i = 0; i < gap->ga_len; ++i)
write_affix(wif.wif_fd, (affheader_T *)gap->ga_data + i);
}
@@ -4279,12 +4366,14 @@ write_vim_spell(fname, prefga, suffga, newwords, regcount, regchars)
wif.wif_prefm = (prefga->ga_len > 256) ? 2 : 1;
wif.wif_suffm = (suffga->ga_len > 256) ? 2 : 1;
- /* Write the suggest info. TODO */
- put_bytes(wif.wif_fd, 0L, 4);
+ /* <SUGGEST> : <suggestlen> <more> ...
+ * TODO. Only write a zero length for now. */
+ put_bytes(wif.wif_fd, 0L, 4); /* <suggestlen> */
/*
- * Write the word list. <wordcount> <worditem> ...
+ * <WORDLIST>: <wordcount> <worditem> ...
*/
+
/* number of basic words in 4 bytes */
put_bytes(wif.wif_fd, newwords->ht_used, 4); /* <wordcount> */
@@ -4333,8 +4422,10 @@ write_vim_spell(fname, prefga, suffga, newwords, regcount, regchars)
| BWF_ALLCAP);
if (flags == aflags
&& ((flags & BWF_KEEPCAP) == 0
- || (STRCMP(bw->bw_caseword,
- bw2->bw_caseword) == 0))
+ || bw->bw_caseword == NULL
+ || bw2->bw_caseword == NULL
+ || STRCMP(bw->bw_caseword,
+ bw2->bw_caseword) == 0)
&& same_affixes(bw, bw2))
break;
}
@@ -4385,6 +4476,7 @@ write_vim_spell(fname, prefga, suffga, newwords, regcount, regchars)
}
ga_clear(&bwga);
+ vim_free(wtab);
}
fclose(wif.wif_fd);
@@ -4548,7 +4640,7 @@ write_bword(wif, bwf, lowcap)
if (lowcap)
return;
- if (flags & BWF_KEEPCAP)
+ if ((flags & BWF_KEEPCAP) && bw->bw_caseword != NULL)
{
len = STRLEN(bw->bw_caseword);
putc(len, fd); /* <caselen> */
@@ -4684,6 +4776,7 @@ write_bword(wif, bwf, lowcap)
bw2 = bw;
}
+
vim_free(wtab);
}
}
@@ -4710,6 +4803,7 @@ ex_mkspell(eap)
vimconv_T conv;
int ascii = FALSE;
char_u *arg = eap->arg;
+ int error = FALSE;
if (STRNCMP(arg, "-ascii", 6) == 0)
{
@@ -4766,6 +4860,10 @@ ex_mkspell(eap)
}
}
+ /* Clear the char type tables, don't want to use any of the currently
+ * used spell properties. */
+ init_spell_chartab();
+
/*
* Read all the .aff and .dic files.
* Text is converted to 'encoding'.
@@ -4846,15 +4944,18 @@ ex_mkspell(eap)
*/
MSG(_("Processing words..."));
out_flush();
- expand_affixes(&newwords, &prefga, &suffga);
+ error = expand_affixes(&newwords, &prefga, &suffga) == FAIL;
- /* Write the info in the spell file. */
- smsg((char_u *)_("Writing spell file %s..."), wfname);
- out_flush();
- write_vim_spell(wfname, &prefga, &suffga, &newwords,
+ if (!error)
+ {
+ /* Write the info in the spell file. */
+ smsg((char_u *)_("Writing spell file %s..."), wfname);
+ out_flush();
+ write_vim_spell(wfname, &prefga, &suffga, &newwords,
fcount - 1, region_name);
- MSG(_("Done!"));
- out_flush();
+ MSG(_("Done!"));
+ out_flush();
+ }
/* Free the allocated stuff. */
free_wordtable(&newwords);
diff --git a/src/spell/en_AU.diff b/src/spell/en_AU.diff
new file mode 100644
index 000000000..2d03fa8f1
--- /dev/null
+++ b/src/spell/en_AU.diff
@@ -0,0 +1,2275 @@
+*** en_AU.orig.aff Fri Apr 15 13:20:36 2005
+--- en_AU.aff Sat Apr 23 19:57:40 2005
+***************
+*** 7,9 ****
+ SET ISO8859-1
+! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ
+ REP 24
+--- 7,15 ----
+ SET ISO8859-1
+! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ
+!
+! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
+! LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
+! UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
+!
+!
+ REP 24
+***************
+*** 34,53 ****
+ PFX A Y 2
+! PFX A 0 re [^e]
+! PFX A 0 re- e
+ PFX a Y 1
+! PFX a 0 mis .
+ PFX I Y 4
+! PFX I 0 il l
+! PFX I 0 ir r
+! PFX I 0 im [bmp]
+! PFX I 0 in [^blmpr]
+ PFX c Y 1
+! PFX c 0 over .
+ PFX U Y 1
+! PFX U 0 un .
+ PFX C Y 2
+! PFX C 0 de [^e]
+! PFX C 0 de- e
+ PFX E Y 1
+! PFX E 0 dis .
+ PFX F Y 5
+--- 40,59 ----
+ PFX A Y 2
+! PFX A 0 re [^e]
+! PFX A 0 re- e
+ PFX a Y 1
+! PFX a 0 mis .
+ PFX I Y 4
+! PFX I 0 il l
+! PFX I 0 ir r
+! PFX I 0 im [bmp]
+! PFX I 0 in [^blmpr]
+ PFX c Y 1
+! PFX c 0 over .
+ PFX U Y 1
+! PFX U 0 un .
+ PFX C Y 2
+! PFX C 0 de [^e]
+! PFX C 0 de- e
+ PFX E Y 1
+! PFX E 0 dis .
+ PFX F Y 5
+***************
+*** 57,451 ****
+ PFX F 0 col l
+! PFX F 0 con [^abehilmopru].
+ PFX K Y 1
+! PFX K 0 pre .
+ PFX e Y 1
+! PFX e 0 out .
+ PFX f Y 2
+! PFX f 0 under [^r]
+! PFX f 0 under- r
+ PFX O Y 1
+! PFX O 0 non- .
+ PFX 4 Y 1
+! PFX 4 0 trans .
+ SFX V Y 15
+! SFX V 0 tive [aio]
+! SFX V b ptive b
+! SFX V d sive d
+! SFX V be ptive be
+! SFX V e tive ce
+! SFX V de sive de
+! SFX V ke cative ke
+! SFX V e ptive me
+! SFX V e ive [st]e
+! SFX V e ative [^bcdkmst]e
+! SFX V 0 lative [aeiou]l
+! SFX V 0 ative [^aeiou]l
+! SFX V 0 ive [st]
+! SFX V y icative y
+! SFX V 0 ative [^abdeilosty]
+ SFX v Y 15
+! SFX v 0 tively [aio]
+! SFX v b ptively b
+! SFX v d sively d
+! SFX v be ptively be
+! SFX v e tively ce
+! SFX v de sively de
+! SFX v ke catively ke
+! SFX v e ptively me
+! SFX v e ively [st]e
+! SFX v e atively [^bcdkmst]e
+! SFX v 0 latively [aeiou]l
+! SFX v 0 atively [^aeiou]l
+! SFX v 0 ively [st]
+! SFX v y icatively y
+! SFX v 0 atively [^abdeilosty]
+ SFX u Y 15
+! SFX u 0 tiveness [aio]
+! SFX u b ptiveness b
+! SFX u d siveness d
+! SFX u be ptiveness be
+! SFX u e tiveness ce
+! SFX u de siveness de
+! SFX u ke cativeness ke
+! SFX u e ptiveness me
+! SFX u e iveness [st]e
+! SFX u e ativeness [^bcdkmst]e
+! SFX u 0 lativeness [aeiou]l
+! SFX u 0 ativeness [^aeiou]l
+! SFX u 0 iveness [st]
+! SFX u y icativeness y
+! SFX u 0 ativeness [^abdeilosty]
+ SFX N Y 26
+! SFX N b ption b
+! SFX N d sion d
+! SFX N be ption be
+! SFX N e tion ce
+! SFX N de sion de
+! SFX N ke cation ke
+! SFX N e ption ume
+! SFX N e mation [^u]me
+! SFX N e ion [^o]se
+! SFX N e ition ose
+! SFX N e ation [iou]te
+! SFX N e ion [^iou]te
+! SFX N e ation [^bcdkmst]e
+! SFX N el ulsion el
+! SFX N 0 lation [aiou]l
+! SFX N 0 ation [^aeiou]l
+! SFX N 0 mation [aeiou]m
+! SFX N 0 ation [^aeiou]m
+! SFX N er ration er
+! SFX N 0 ation [^e]r
+! SFX N 0 ion [sx]
+! SFX N t ssion mit
+! SFX N 0 ion [^m]it
+! SFX N 0 ation [^i]t
+! SFX N y ication y
+! SFX N 0 ation [^bdelmrstxy]
+ SFX n Y 28
+! SFX n 0 tion a
+! SFX n e tion ce
+! SFX n ke cation ke
+! SFX n e ation [iou]te
+! SFX n e ion [^iou]te
+! SFX n e ation [^ckt]e
+! SFX n el ulsion el
+! SFX n 0 lation [aiou]l
+! SFX n 0 ation [^aeiou]l
+! SFX n er ration er
+! SFX n 0 ation [^e]r
+! SFX n y ation py
+! SFX n y ication [^p]y
+! SFX n 0 ation [^aelry]
+! SFX n 0 tions a
+! SFX n e tions ce
+! SFX n ke cations ke
+! SFX n e ations [iou]te
+! SFX n e ions [^iou]te
+! SFX n e ations [^ckt]e
+! SFX n el ulsions el
+! SFX n 0 lations [aiou]l
+! SFX n 0 ations [^aeiou]l
+! SFX n er rations er
+! SFX n 0 ations [^e]r
+! SFX n y ations py
+! SFX n y ications [^p]y
+! SFX n 0 ations [^aelry]
+ SFX X Y 26
+! SFX X b ptions b
+! SFX X d sions d
+! SFX X be ptions be
+! SFX X e tions ce
+! SFX X ke cations ke
+! SFX X de sions de
+! SFX X e ptions ume
+! SFX X e mations [^u]me
+! SFX X e ions [^o]se
+! SFX X e itions ose
+! SFX X e ations [iou]te
+! SFX X e ions [^iou]te
+! SFX X e ations [^bcdkmst]e
+! SFX X el ulsions el
+! SFX X 0 lations [aiou]l
+! SFX X 0 ations [^aeiou]l
+! SFX X 0 mations [aeiou]m
+! SFX X 0 ations [^aeiou]m
+! SFX X er rations er
+! SFX X 0 ations [^e]r
+! SFX X 0 ions [sx]
+! SFX X t ssions mit
+! SFX X 0 ions [^m]it
+! SFX X 0 ations [^i]t
+! SFX X y ications y
+! SFX X 0 ations [^bdelmrstxy]
+ SFX x Y 40
+! SFX x b ptional b
+! SFX x d sional d
+! SFX x be ptional be
+! SFX x e tional ce
+! SFX x ke cational ke
+! SFX x de sional de
+! SFX x e ional [^o]se
+! SFX x e itional ose
+! SFX x e ional te
+! SFX x e ational [^bcdkst]e
+! SFX x el ulsional el
+! SFX x 0 lational [aiou]l
+! SFX x 0 ational [^aeiou]l
+! SFX x er rational er
+! SFX x 0 ational [^e]r
+! SFX x 0 ional [sx]
+! SFX x 0 ional [^n]t
+! SFX x 0 ational nt
+! SFX x y icational y
+! SFX x 0 ational [^bdelrstxy]
+! SFX x b ptionally b
+! SFX x d sionally d
+! SFX x be ptionally be
+! SFX x e tionally ce
+! SFX x ke cationally ke
+! SFX x de sionally de
+! SFX x e ionally [^o]se
+! SFX x e itionally ose
+! SFX x e ionally te
+! SFX x e ationally [^bcdkst]e
+! SFX x el ulsionally el
+! SFX x 0 lationally [aiou]l
+! SFX x 0 ationally [^aeiou]l
+! SFX x er rationally er
+! SFX x 0 ationally [^e]r
+! SFX x 0 ionally [sx]
+! SFX x 0 ionally [^n]t
+! SFX x 0 ationally nt
+! SFX x y icationally y
+! SFX x 0 ationally [^bdelrstxy]
+ SFX H N 13
+! SFX H y ieth y
+! SFX H ree ird ree
+! SFX H ve fth ve
+! SFX H e th [^ev]e
+! SFX H 0 h t
+! SFX H 0 th [^ety]
+! SFX H y ieths y
+! SFX H ree irds ree
+! SFX H ve fths ve
+! SFX H e ths [^ev]e
+! SFX H 0 hs t
+! SFX H 0 ths [^ety]
+! SFX H 0 fold .
+ SFX Y Y 9
+! SFX Y 0 ally ic
+! SFX Y 0 ly [^i]c
+! SFX Y e y [^aeiou]le
+! SFX Y 0 ly [aeiou]le
+! SFX Y 0 ly [^l]e
+! SFX Y 0 y [^aeiou]l
+! SFX Y y ily [^aeiou]y
+! SFX Y 0 ly [aeiou][ly]
+! SFX Y 0 ly [^cely]
+ SFX G Y 24
+! SFX G e ing [^eioy]e
+! SFX G 0 ing [eoy]e
+! SFX G ie ying ie
+! SFX G 0 bing [^aeio][aeiou]b
+! SFX G 0 king [^aeio][aeiou]c
+! SFX G 0 ding [^aeio][aeiou]d
+! SFX G 0 fing [^aeio][aeiou]f
+! SFX G 0 ging [^aeio][aeiou]g
+! SFX G 0 king [^aeio][aeiou]k
+! SFX G 0 ling [^aeio][eiou]l
+! SFX G 0 ing [aeio][eiou]l
+! SFX G 0 ling [^aeo]al
+! SFX G 0 ing [aeo]al
+! SFX G 0 ming [^aeio][aeiou]m
+! SFX G 0 ning [^aeio][aeiou]n
+! SFX G 0 ping [^aeio][aeiou]p
+! SFX G 0 ring [^aeio][aeiou]r
+! SFX G 0 sing [^aeio][aeiou]s
+! SFX G 0 ting [^aeio][aeiou]t
+! SFX G 0 ving [^aeio][aeiou]v
+! SFX G 0 zing [^aeio][aeiou]z
+! SFX G 0 ing [aeio][aeiou][bcdfgkmnprstvz]
+! SFX G 0 ing [^aeiou][bcdfgklmnprstvz]
+! SFX G 0 ing [^ebcdfgklmnprstvz]
+ SFX J Y 25
+! SFX J e ings [^eioy]e
+! SFX J 0 ings [eoy]e
+! SFX J ie yings ie
+! SFX J 0 bings [^aeio][aeiou]b
+! SFX J 0 king [^aeio][aeiou]c
+! SFX J 0 dings [^aeio][aeiou]d
+! SFX J 0 fings [^aeio][aeiou]f
+! SFX J 0 gings [^aeio][aeiou]g
+! SFX J 0 kings [^aeio][aeiou]k
+! SFX J 0 lings [^aeio][eiou]l
+! SFX J 0 ings [aeio][eiou]l
+! SFX J 0 lings [^aeo]al
+! SFX J 0 ings [aeo]al
+! SFX J 0 mings [^aeio][aeiou]m
+! SFX J 0 nings [^aeio][aiou]n
+! SFX J 0 pings [^aeio][aeiou]p
+! SFX J 0 rings [^aeio][aiou]r
+! SFX J 0 sings [^aeio][aeiou]s
+! SFX J 0 tings [^aeio][aiou]t
+! SFX J 0 vings [^aeio][aeiou]v
+! SFX J 0 zings [^aeio][aeiou]z
+! SFX J 0 ings [^aeio]e[nrt]
+! SFX J 0 ings [aeio][aeiou][bcdfgkmnprstvz]
+! SFX J 0 ings [^aeiou][bcdfgklmnprstvz]
+! SFX J 0 ings [^ebcdfgklmnprstvz]
+ SFX k Y 8
+! SFX k e ingly [^eioy]e
+! SFX k 0 ingly [eoy]e
+! SFX k ie yingly ie
+! SFX k 0 kingly [^aeio][aeiou]c
+! SFX k 0 lingly [^aeio][aeiou]l
+! SFX k 0 ingly [aeio][aeiou][cl]
+! SFX k 0 ingly [^aeiou][cl]
+! SFX k 0 ingly [^ecl]
+ SFX D Y 25
+! SFX D 0 d [^e]e
+! SFX D e d ee
+! SFX D 0 bed [^aeio][aeiou]b
+! SFX D 0 ked [^aeio][aeiou]c
+! SFX D 0 ded [^aeio][aeiou]d
+! SFX D 0 fed [^aeio][aeiou]f
+! SFX D 0 ged [^aeio][aeiou]g
+! SFX D 0 ked [^aeio][aeiou]k
+! SFX D 0 led [^aeio][eiou]l
+! SFX D 0 ed [aeio][eiou]l
+! SFX D 0 led [^aeo]al
+! SFX D 0 ed [aeo]al
+! SFX D 0 med [^aeio][aeiou]m
+! SFX D 0 ned [^aeio][aeiou]n
+! SFX D 0 ped [^aeio][aeiou]p
+! SFX D 0 red [^aeio][aeiou]r
+! SFX D 0 sed [^aeio][aeiou]s
+! SFX D 0 ted [^aeio][aeiou]t
+! SFX D 0 ved [^aeio][aeiou]v
+! SFX D 0 zed [^aeio][aeiou]z
+! SFX D y ied [^aeiou]y
+! SFX D 0 ed [aeiou]y
+! SFX D 0 ed [aeio][aeiou][bcdfgkmnprstvz]
+! SFX D 0 ed [^aeiou][bcdfgklmnprstvz]
+! SFX D 0 ed [^ebcdfgklmnprstvyz]
+ SFX d Y 16
+! SFX d 0 d e
+! SFX d 0 ked [^aeio][aeiou]c
+! SFX d 0 led [^aeio][aeiou]l
+! SFX d y ied [^aeiou]y
+! SFX d 0 ed [aeiou]y
+! SFX d 0 ed [aeio][aeiou][cl]
+! SFX d 0 ed [^aeiou][cl]
+! SFX d 0 ed [^ecly]
+! SFX d e ing [^eioy]e
+! SFX d 0 ing [eoy]e
+! SFX d ie ying ie
+! SFX d 0 king [^aeio][aeiou]c
+! SFX d 0 ling [^aeio][aeiou]l
+! SFX d 0 ing [aeio][aeiou][cl]
+! SFX d 0 ing [^aeiou][cl]
+! SFX d 0 ing [^ecl]
+ SFX h Y 22
+! SFX h 0 dly e
+! SFX h 0 bedly [^aeio][aeiou]b
+! SFX h 0 kedly [^aeio][aeiou]c
+! SFX h 0 dedly [^aeio][aeiou]d
+! SFX h 0 fedly [^aeio][aeiou]f
+! SFX h 0 gedly [^aeio][aeiou]g
+! SFX h 0 kedly [^aeio][aeiou]k
+! SFX h 0 ledly [^aeio][aeiou]l
+! SFX h 0 medly [^aeio][aeiou]m
+! SFX h 0 nedly [^aeio][aiou]n
+! SFX h 0 pedly [^aeio][aeiou]p
+! SFX h 0 redly [^aeio][aiou]r
+! SFX h 0 sedly [^aeio][aeiou]s
+! SFX h 0 tedly [^aeio][aiou]t
+! SFX h 0 vedly [^aeio][aeiou]v
+! SFX h 0 zedly [^aeio][aeiou]z
+! SFX h 0 edly [^aeio]e[nrt]
+! SFX h y iedly [^aeiou]y
+! SFX h 0 edly [aeiou]y
+! SFX h 0 edly [aeio][aeiou][bcdfgklmnprstvz]
+! SFX h 0 edly [^aeiou][bcdfgklmnprstvz]
+! SFX h 0 edly [^ebcdfgklmnprstvyz]
+ SFX i Y 22
+! SFX i 0 dness e
+! SFX i 0 bedness [^aeio][aeiou]b
+! SFX i 0 kedness [^aeio][aeiou]c
+! SFX i 0 dedness [^aeio][aeiou]d
+! SFX i 0 fedness [^aeio][aeiou]f
+! SFX i 0 gedness [^aeio][aeiou]g
+! SFX i 0 kedness [^aeio][aeiou]k
+! SFX i 0 ledness [^aeio][aeiou]l
+! SFX i 0 medness [^aeio][aeiou]m
+! SFX i 0 nedness [^aeio][aiou]n
+! SFX i 0 pedness [^aeio][aeiou]p
+! SFX i 0 redness [^aeio][aiou]r
+! SFX i 0 sedness [^aeio][aeiou]s
+! SFX i 0 tedness [^aeio][aiou]t
+! SFX i 0 vedness [^aeio][aeiou]v
+! SFX i 0 zedness [^aeio][aeiou]z
+! SFX i 0 edness [^aeio]e[nrt]
+! SFX i y iedness [^aeiou]y
+! SFX i 0 edness [aeiou]y
+! SFX i 0 edness [aeio][aeiou][bcdfgklmnprstvz]
+! SFX i 0 edness [^aeiou][bcdfgklmnprstvz]
+! SFX i 0 edness [^ebcdfgklmnprstvyz]
+ SFX T Y 42
+! SFX T 0 r e
+ SFX T 0 st e
+! SFX T 0 ber [^aeio][aeiou]b
+ SFX T 0 best [^aeio][aeiou]b
+! SFX T 0 ker [^aeio][aeiou]c
+ SFX T 0 kest [^aeio][aeiou]c
+! SFX T 0 der [^aeio][aeiou]d
+ SFX T 0 dest [^aeio][aeiou]d
+! SFX T 0 fer [^aeio][aeiou]f
+ SFX T 0 fest [^aeio][aeiou]f
+! SFX T 0 ger [^aeio][aeiou]g
+ SFX T 0 gest [^aeio][aeiou]g
+! SFX T 0 ker [^aeio][aeiou]k
+ SFX T 0 kest [^aeio][aeiou]k
+! SFX T 0 ler [^aeio][aeiou]l
+ SFX T 0 lest [^aeio][aeiou]l
+! SFX T 0 mer [^aeio][aeiou]m
+ SFX T 0 mest [^aeio][aeiou]m
+! SFX T 0 ner [^aeio][aeiou]n
+ SFX T 0 nest [^aeio][aeiou]n
+! SFX T 0 per [^aeio][aeiou]p
+ SFX T 0 pest [^aeio][aeiou]p
+! SFX T 0 rer [^aeio][aeiou]r
+ SFX T 0 rest [^aeio][aeiou]r
+! SFX T 0 ser [^aeio][aeiou]s
+ SFX T 0 sest [^aeio][aeiou]s
+! SFX T 0 ter [^aeio][aeiou]t
+ SFX T 0 test [^aeio][aeiou]t
+! SFX T 0 ver [^aeio][aeiou]v
+ SFX T 0 vest [^aeio][aeiou]v
+! SFX T 0 zer [^aeio][aeiou]z
+ SFX T 0 zest [^aeio][aeiou]z
+! SFX T y ier [^aeiou]y
+ SFX T y iest [^aeiou]y
+! SFX T 0 er [aeiou]y
+ SFX T 0 est [aeiou]y
+--- 63,457 ----
+ PFX F 0 col l
+! PFX F 0 con [^abehilmopru].
+ PFX K Y 1
+! PFX K 0 pre .
+ PFX e Y 1
+! PFX e 0 out .
+ PFX f Y 2
+! PFX f 0 under [^r]
+! PFX f 0 under- r
+ PFX O Y 1
+! PFX O 0 non- .
+ PFX 4 Y 1
+! PFX 4 0 trans .
+ SFX V Y 15
+! SFX V 0 tive [aio]
+! SFX V b ptive b
+! SFX V d sive d
+! SFX V be ptive be
+! SFX V e tive ce
+! SFX V de sive de
+! SFX V ke cative ke
+! SFX V e ptive me
+! SFX V e ive [st]e
+! SFX V e ative [^bcdkmst]e
+! SFX V 0 lative [aeiou]l
+! SFX V 0 ative [^aeiou]l
+! SFX V 0 ive [st]
+! SFX V y icative y
+! SFX V 0 ative [^abdeilosty]
+ SFX v Y 15
+! SFX v 0 tively [aio]
+! SFX v b ptively b
+! SFX v d sively d
+! SFX v be ptively be
+! SFX v e tively ce
+! SFX v de sively de
+! SFX v ke catively ke
+! SFX v e ptively me
+! SFX v e ively [st]e
+! SFX v e atively [^bcdkmst]e
+! SFX v 0 latively [aeiou]l
+! SFX v 0 atively [^aeiou]l
+! SFX v 0 ively [st]
+! SFX v y icatively y
+! SFX v 0 atively [^abdeilosty]
+ SFX u Y 15
+! SFX u 0 tiveness [aio]
+! SFX u b ptiveness b
+! SFX u d siveness d
+! SFX u be ptiveness be
+! SFX u e tiveness ce
+! SFX u de siveness de
+! SFX u ke cativeness ke
+! SFX u e ptiveness me
+! SFX u e iveness [st]e
+! SFX u e ativeness [^bcdkmst]e
+! SFX u 0 lativeness [aeiou]l
+! SFX u 0 ativeness [^aeiou]l
+! SFX u 0 iveness [st]
+! SFX u y icativeness y
+! SFX u 0 ativeness [^abdeilosty]
+ SFX N Y 26
+! SFX N b ption b
+! SFX N d sion d
+! SFX N be ption be
+! SFX N e tion ce
+! SFX N de sion de
+! SFX N ke cation ke
+! SFX N e ption ume
+! SFX N e mation [^u]me
+! SFX N e ion [^o]se
+! SFX N e ition ose
+! SFX N e ation [iou]te
+! SFX N e ion [^iou]te
+! SFX N e ation [^bcdkmst]e
+! SFX N el ulsion el
+! SFX N 0 lation [aiou]l
+! SFX N 0 ation [^aeiou]l
+! SFX N 0 mation [aeiou]m
+! SFX N 0 ation [^aeiou]m
+! SFX N er ration er
+! SFX N 0 ation [^e]r
+! SFX N 0 ion [sx]
+! SFX N t ssion mit
+! SFX N 0 ion [^m]it
+! SFX N 0 ation [^i]t
+! SFX N y ication y
+! SFX N 0 ation [^bdelmrstxy]
+ SFX n Y 28
+! SFX n 0 tion a
+! SFX n e tion ce
+! SFX n ke cation ke
+! SFX n e ation [iou]te
+! SFX n e ion [^iou]te
+! SFX n e ation [^ckt]e
+! SFX n el ulsion el
+! SFX n 0 lation [aiou]l
+! SFX n 0 ation [^aeiou]l
+! SFX n er ration er
+! SFX n 0 ation [^e]r
+! SFX n y ation py
+! SFX n y ication [^p]y
+! SFX n 0 ation [^aelry]
+! SFX n 0 tions a
+! SFX n e tions ce
+! SFX n ke cations ke
+! SFX n e ations [iou]te
+! SFX n e ions [^iou]te
+! SFX n e ations [^ckt]e
+! SFX n el ulsions el
+! SFX n 0 lations [aiou]l
+! SFX n 0 ations [^aeiou]l
+! SFX n er rations er
+! SFX n 0 ations [^e]r
+! SFX n y ations py
+! SFX n y ications [^p]y
+! SFX n 0 ations [^aelry]
+ SFX X Y 26
+! SFX X b ptions b
+! SFX X d sions d
+! SFX X be ptions be
+! SFX X e tions ce
+! SFX X ke cations ke
+! SFX X de sions de
+! SFX X e ptions ume
+! SFX X e mations [^u]me
+! SFX X e ions [^o]se
+! SFX X e itions ose
+! SFX X e ations [iou]te
+! SFX X e ions [^iou]te
+! SFX X e ations [^bcdkmst]e
+! SFX X el ulsions el
+! SFX X 0 lations [aiou]l
+! SFX X 0 ations [^aeiou]l
+! SFX X 0 mations [aeiou]m
+! SFX X 0 ations [^aeiou]m
+! SFX X er rations er
+! SFX X 0 ations [^e]r
+! SFX X 0 ions [sx]
+! SFX X t ssions mit
+! SFX X 0 ions [^m]it
+! SFX X 0 ations [^i]t
+! SFX X y ications y
+! SFX X 0 ations [^bdelmrstxy]
+ SFX x Y 40
+! SFX x b ptional b
+! SFX x d sional d
+! SFX x be ptional be
+! SFX x e tional ce
+! SFX x ke cational ke
+! SFX x de sional de
+! SFX x e ional [^o]se
+! SFX x e itional ose
+! SFX x e ional te
+! SFX x e ational [^bcdkst]e
+! SFX x el ulsional el
+! SFX x 0 lational [aiou]l
+! SFX x 0 ational [^aeiou]l
+! SFX x er rational er
+! SFX x 0 ational [^e]r
+! SFX x 0 ional [sx]
+! SFX x 0 ional [^n]t
+! SFX x 0 ational nt
+! SFX x y icational y
+! SFX x 0 ational [^bdelrstxy]
+! SFX x b ptionally b
+! SFX x d sionally d
+! SFX x be ptionally be
+! SFX x e tionally ce
+! SFX x ke cationally ke
+! SFX x de sionally de
+! SFX x e ionally [^o]se
+! SFX x e itionally ose
+! SFX x e ionally te
+! SFX x e ationally [^bcdkst]e
+! SFX x el ulsionally el
+! SFX x 0 lationally [aiou]l
+! SFX x 0 ationally [^aeiou]l
+! SFX x er rationally er
+! SFX x 0 ationally [^e]r
+! SFX x 0 ionally [sx]
+! SFX x 0 ionally [^n]t
+! SFX x 0 ationally nt
+! SFX x y icationally y
+! SFX x 0 ationally [^bdelrstxy]
+ SFX H N 13
+! SFX H y ieth y
+! SFX H ree ird ree
+! SFX H ve fth ve
+! SFX H e th [^ev]e
+! SFX H 0 h t
+! SFX H 0 th [^ety]
+! SFX H y ieths y
+! SFX H ree irds ree
+! SFX H ve fths ve
+! SFX H e ths [^ev]e
+! SFX H 0 hs t
+! SFX H 0 ths [^ety]
+! SFX H 0 fold .
+ SFX Y Y 9
+! SFX Y 0 ally ic
+! SFX Y 0 ly [^i]c
+! SFX Y e y [^aeiou]le
+! SFX Y 0 ly [aeiou]le
+! SFX Y 0 ly [^l]e
+! SFX Y 0 y [^aeiou]l
+! SFX Y y ily [^aeiou]y
+! SFX Y 0 ly [aeiou][ly]
+! SFX Y 0 ly [^cely]
+ SFX G Y 24
+! SFX G e ing [^eioy]e
+! SFX G 0 ing [eoy]e
+! SFX G ie ying ie
+! SFX G 0 bing [^aeio][aeiou]b
+! SFX G 0 king [^aeio][aeiou]c
+! SFX G 0 ding [^aeio][aeiou]d
+! SFX G 0 fing [^aeio][aeiou]f
+! SFX G 0 ging [^aeio][aeiou]g
+! SFX G 0 king [^aeio][aeiou]k
+! SFX G 0 ling [^aeio][eiou]l
+! SFX G 0 ing [aeio][eiou]l
+! SFX G 0 ling [^aeo]al
+! SFX G 0 ing [aeo]al
+! SFX G 0 ming [^aeio][aeiou]m
+! SFX G 0 ning [^aeio][aeiou]n
+! SFX G 0 ping [^aeio][aeiou]p
+! SFX G 0 ring [^aeio][aeiou]r
+! SFX G 0 sing [^aeio][aeiou]s
+! SFX G 0 ting [^aeio][aeiou]t
+! SFX G 0 ving [^aeio][aeiou]v
+! SFX G 0 zing [^aeio][aeiou]z
+! SFX G 0 ing [aeio][aeiou][bcdfgkmnprstvz]
+! SFX G 0 ing [^aeiou][bcdfgklmnprstvz]
+! SFX G 0 ing [^ebcdfgklmnprstvz]
+ SFX J Y 25
+! SFX J e ings [^eioy]e
+! SFX J 0 ings [eoy]e
+! SFX J ie yings ie
+! SFX J 0 bings [^aeio][aeiou]b
+! SFX J 0 king [^aeio][aeiou]c
+! SFX J 0 dings [^aeio][aeiou]d
+! SFX J 0 fings [^aeio][aeiou]f
+! SFX J 0 gings [^aeio][aeiou]g
+! SFX J 0 kings [^aeio][aeiou]k
+! SFX J 0 lings [^aeio][eiou]l
+! SFX J 0 ings [aeio][eiou]l
+! SFX J 0 lings [^aeo]al
+! SFX J 0 ings [aeo]al
+! SFX J 0 mings [^aeio][aeiou]m
+! SFX J 0 nings [^aeio][aiou]n
+! SFX J 0 pings [^aeio][aeiou]p
+! SFX J 0 rings [^aeio][aiou]r
+! SFX J 0 sings [^aeio][aeiou]s
+! SFX J 0 tings [^aeio][aiou]t
+! SFX J 0 vings [^aeio][aeiou]v
+! SFX J 0 zings [^aeio][aeiou]z
+! SFX J 0 ings [^aeio]e[nrt]
+! SFX J 0 ings [aeio][aeiou][bcdfgkmnprstvz]
+! SFX J 0 ings [^aeiou][bcdfgklmnprstvz]
+! SFX J 0 ings [^ebcdfgklmnprstvz]
+ SFX k Y 8
+! SFX k e ingly [^eioy]e
+! SFX k 0 ingly [eoy]e
+! SFX k ie yingly ie
+! SFX k 0 kingly [^aeio][aeiou]c
+! SFX k 0 lingly [^aeio][aeiou]l
+! SFX k 0 ingly [aeio][aeiou][cl]
+! SFX k 0 ingly [^aeiou][cl]
+! SFX k 0 ingly [^ecl]
+ SFX D Y 25
+! SFX D 0 d [^e]e
+! SFX D e d ee
+! SFX D 0 bed [^aeio][aeiou]b
+! SFX D 0 ked [^aeio][aeiou]c
+! SFX D 0 ded [^aeio][aeiou]d
+! SFX D 0 fed [^aeio][aeiou]f
+! SFX D 0 ged [^aeio][aeiou]g
+! SFX D 0 ked [^aeio][aeiou]k
+! SFX D 0 led [^aeio][eiou]l
+! SFX D 0 ed [aeio][eiou]l
+! SFX D 0 led [^aeo]al
+! SFX D 0 ed [aeo]al
+! SFX D 0 med [^aeio][aeiou]m
+! SFX D 0 ned [^aeio][aeiou]n
+! SFX D 0 ped [^aeio][aeiou]p
+! SFX D 0 red [^aeio][aeiou]r
+! SFX D 0 sed [^aeio][aeiou]s
+! SFX D 0 ted [^aeio][aeiou]t
+! SFX D 0 ved [^aeio][aeiou]v
+! SFX D 0 zed [^aeio][aeiou]z
+! SFX D y ied [^aeiou]y
+! SFX D 0 ed [aeiou]y
+! SFX D 0 ed [aeio][aeiou][bcdfgkmnprstvz]
+! SFX D 0 ed [^aeiou][bcdfgklmnprstvz]
+! SFX D 0 ed [^ebcdfgklmnprstvyz]
+ SFX d Y 16
+! SFX d 0 d e
+! SFX d 0 ked [^aeio][aeiou]c
+! SFX d 0 led [^aeio][aeiou]l
+! SFX d y ied [^aeiou]y
+! SFX d 0 ed [aeiou]y
+! SFX d 0 ed [aeio][aeiou][cl]
+! SFX d 0 ed [^aeiou][cl]
+! SFX d 0 ed [^ecly]
+! SFX d e ing [^eioy]e
+! SFX d 0 ing [eoy]e
+! SFX d ie ying ie
+! SFX d 0 king [^aeio][aeiou]c
+! SFX d 0 ling [^aeio][aeiou]l
+! SFX d 0 ing [aeio][aeiou][cl]
+! SFX d 0 ing [^aeiou][cl]
+! SFX d 0 ing [^ecl]
+ SFX h Y 22
+! SFX h 0 dly e
+! SFX h 0 bedly [^aeio][aeiou]b
+! SFX h 0 kedly [^aeio][aeiou]c
+! SFX h 0 dedly [^aeio][aeiou]d
+! SFX h 0 fedly [^aeio][aeiou]f
+! SFX h 0 gedly [^aeio][aeiou]g
+! SFX h 0 kedly [^aeio][aeiou]k
+! SFX h 0 ledly [^aeio][aeiou]l
+! SFX h 0 medly [^aeio][aeiou]m
+! SFX h 0 nedly [^aeio][aiou]n
+! SFX h 0 pedly [^aeio][aeiou]p
+! SFX h 0 redly [^aeio][aiou]r
+! SFX h 0 sedly [^aeio][aeiou]s
+! SFX h 0 tedly [^aeio][aiou]t
+! SFX h 0 vedly [^aeio][aeiou]v
+! SFX h 0 zedly [^aeio][aeiou]z
+! SFX h 0 edly [^aeio]e[nrt]
+! SFX h y iedly [^aeiou]y
+! SFX h 0 edly [aeiou]y
+! SFX h 0 edly [aeio][aeiou][bcdfgklmnprstvz]
+! SFX h 0 edly [^aeiou][bcdfgklmnprstvz]
+! SFX h 0 edly [^ebcdfgklmnprstvyz]
+ SFX i Y 22
+! SFX i 0 dness e
+! SFX i 0 bedness [^aeio][aeiou]b
+! SFX i 0 kedness [^aeio][aeiou]c
+! SFX i 0 dedness [^aeio][aeiou]d
+! SFX i 0 fedness [^aeio][aeiou]f
+! SFX i 0 gedness [^aeio][aeiou]g
+! SFX i 0 kedness [^aeio][aeiou]k
+! SFX i 0 ledness [^aeio][aeiou]l
+! SFX i 0 medness [^aeio][aeiou]m
+! SFX i 0 nedness [^aeio][aiou]n
+! SFX i 0 pedness [^aeio][aeiou]p
+! SFX i 0 redness [^aeio][aiou]r
+! SFX i 0 sedness [^aeio][aeiou]s
+! SFX i 0 tedness [^aeio][aiou]t
+! SFX i 0 vedness [^aeio][aeiou]v
+! SFX i 0 zedness [^aeio][aeiou]z
+! SFX i 0 edness [^aeio]e[nrt]
+! SFX i y iedness [^aeiou]y
+! SFX i 0 edness [aeiou]y
+! SFX i 0 edness [aeio][aeiou][bcdfgklmnprstvz]
+! SFX i 0 edness [^aeiou][bcdfgklmnprstvz]
+! SFX i 0 edness [^ebcdfgklmnprstvyz]
+ SFX T Y 42
+! SFX T 0 r e
+ SFX T 0 st e
+! SFX T 0 ber [^aeio][aeiou]b
+ SFX T 0 best [^aeio][aeiou]b
+! SFX T 0 ker [^aeio][aeiou]c
+ SFX T 0 kest [^aeio][aeiou]c
+! SFX T 0 der [^aeio][aeiou]d
+ SFX T 0 dest [^aeio][aeiou]d
+! SFX T 0 fer [^aeio][aeiou]f
+ SFX T 0 fest [^aeio][aeiou]f
+! SFX T 0 ger [^aeio][aeiou]g
+ SFX T 0 gest [^aeio][aeiou]g
+! SFX T 0 ker [^aeio][aeiou]k
+ SFX T 0 kest [^aeio][aeiou]k
+! SFX T 0 ler [^aeio][aeiou]l
+ SFX T 0 lest [^aeio][aeiou]l
+! SFX T 0 mer [^aeio][aeiou]m
+ SFX T 0 mest [^aeio][aeiou]m
+! SFX T 0 ner [^aeio][aeiou]n
+ SFX T 0 nest [^aeio][aeiou]n
+! SFX T 0 per [^aeio][aeiou]p
+ SFX T 0 pest [^aeio][aeiou]p
+! SFX T 0 rer [^aeio][aeiou]r
+ SFX T 0 rest [^aeio][aeiou]r
+! SFX T 0 ser [^aeio][aeiou]s
+ SFX T 0 sest [^aeio][aeiou]s
+! SFX T 0 ter [^aeio][aeiou]t
+ SFX T 0 test [^aeio][aeiou]t
+! SFX T 0 ver [^aeio][aeiou]v
+ SFX T 0 vest [^aeio][aeiou]v
+! SFX T 0 zer [^aeio][aeiou]z
+ SFX T 0 zest [^aeio][aeiou]z
+! SFX T y ier [^aeiou]y
+ SFX T y iest [^aeiou]y
+! SFX T 0 er [aeiou]y
+ SFX T 0 est [aeiou]y
+***************
+*** 458,1143 ****
+ SFX R Y 72
+! SFX R 0 r e
+! SFX R 0 rs e
+! SFX R 0 ber [^aeio][aeiou]b
+! SFX R 0 bers [^aeio][aeiou]b
+! SFX R 0 ker [^aeio][aeiou]c
+! SFX R 0 kers [^aeio][aeiou]c
+! SFX R 0 der [^aeio][aeiou]d
+! SFX R 0 ders [^aeio][aeiou]d
+! SFX R 0 fer [^aeio][aeiou]f
+! SFX R 0 fers [^aeio][aeiou]f
+! SFX R 0 ger [^aeio][aeiou]g
+! SFX R 0 gers [^aeio][aeiou]g
+! SFX R 0 ker [^aeio][aeiou]k
+! SFX R 0 kers [^aeio][aeiou]k
+! SFX R 0 ler [^aeio][eiou]l
+! SFX R 0 er [aeio][eiou]l
+! SFX R 0 ler [^aeo]al
+! SFX R 0 er [aeo]al
+! SFX R 0 lers [^aeio][eiou]l
+! SFX R 0 ers [aeio][eiou]l
+! SFX R 0 lers [^aeo]al
+! SFX R 0 ers [aeo]al
+! SFX R 0 mer [^aeio][aeiou]m
+! SFX R 0 mers [^aeio][aeiou]m
+! SFX R 0 ner [^aeio][aeiou]n
+! SFX R 0 ners [^aeio][aeiou]n
+! SFX R 0 per [^aeio][aeiou]p
+! SFX R 0 pers [^aeio][aeiou]p
+! SFX R 0 rer [^aeio][aeiou]r
+! SFX R 0 rers [^aeio][aeiou]r
+! SFX R 0 ser [^aeio][aeiou]s
+! SFX R 0 sers [^aeio][aeiou]s
+! SFX R 0 ter [^aeio][aeiou]t
+! SFX R 0 ters [^aeio][aeiou]t
+! SFX R 0 ver [^aeio][aeiou]v
+! SFX R 0 vers [^aeio][aeiou]v
+! SFX R 0 zer [^aeio][aeiou]z
+! SFX R 0 zers [^aeio][aeiou]z
+! SFX R y ier [^aeiou]y
+! SFX R y iers [^aeiou]y
+! SFX R 0 er [aeiou]y
+! SFX R 0 ers [aeiou]y
+! SFX R 0 er [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 ers [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 er [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 ers [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 er [^ebcdfgklmnprstvyz]
+! SFX R 0 ers [^ebcdfgklmnprstvyz]
+! SFX R 0 r's e
+! SFX R 0 ber's [^aeio][aeiou]b
+! SFX R 0 ker's [^aeio][aeiou]c
+! SFX R 0 der's [^aeio][aeiou]d
+! SFX R 0 fer's [^aeio][aeiou]f
+! SFX R 0 ger's [^aeio][aeiou]g
+! SFX R 0 ker's [^aeio][aeiou]k
+! SFX R 0 ler's [^aeio][eiou]l
+! SFX R 0 er's [aeio][eiou]l
+! SFX R 0 ler's [^aeo]al
+! SFX R 0 er's [aeo]al
+! SFX R 0 mer's [^aeio][aeiou]m
+! SFX R 0 ner's [^aeio][aeiou]n
+! SFX R 0 per's [^aeio][aeiou]p
+! SFX R 0 rer's [^aeio][aeiou]r
+! SFX R 0 ser's [^aeio][aeiou]s
+! SFX R 0 ter's [^aeio][aeiou]t
+! SFX R 0 ver's [^aeio][aeiou]v
+! SFX R 0 zer's [^aeio][aeiou]z
+! SFX R y ier's [^aeiou]y
+! SFX R 0 er's [aeiou]y
+! SFX R 0 er's [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 er's [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 er's [^ebcdfgklmnprstvyz]
+ SFX r Y 24
+! SFX r 0 r e
+! SFX r 0 ler [^aeio][aeiou]l
+! SFX r 0 ker [^aeio][aeiou]c
+! SFX r y ier [^aeiou]y
+! SFX r 0 er [aeiou]y
+! SFX r 0 er [aeio][aeiou][cl]
+! SFX r 0 er [^aeiou][cl]
+! SFX r 0 er [^ecly]
+! SFX r 0 rs e
+! SFX r 0 lers [^aeio][aeiou]l
+! SFX r 0 kers [^aeio][aeiou]c
+! SFX r y iers [^aeiou]y
+! SFX r 0 ers [aeiou]y
+! SFX r 0 ers [aeio][aeiou][cl]
+! SFX r 0 ers [^aeiou][cl]
+! SFX r 0 ers [^ecly]
+! SFX r 0 r's e
+! SFX r 0 ler's [^aeio][aeiou]l
+! SFX r 0 ker's [^aeio][aeiou]c
+! SFX r y ier's [^aeiou]y
+! SFX r 0 er's [aeiou]y
+! SFX r 0 er's [aeio][aeiou][cl]
+! SFX r 0 er's [^aeiou][cl]
+! SFX r 0 er's [^ecly]
+ SFX S Y 9
+! SFX S y ies [^aeiou]y
+! SFX S 0 s [aeiou]y
+! SFX S 0 es [sxz]
+! SFX S 0 es [cs]h
+! SFX S 0 s [^cs]h
+! SFX S 0 s [ae]u
+! SFX S 0 x [ae]u
+! SFX S 0 s [^ae]u
+ SFX S 0 s [^hsuxyz]
+ SFX P Y 6
+! SFX P y iness [^aeiou]y
+! SFX P 0 ness [aeiou]y
+! SFX P 0 ness [^y]
+! SFX P y iness's [^aeiou]y
+! SFX P 0 ness's [aeiou]y
+! SFX P 0 ness's [^y]
+ SFX m Y 20
+! SFX m 0 sman [bdknmt]
+! SFX m 0 sman [aeiou][bdklmnt]e
+! SFX m 0 man [^aeiou][bdklmnt]e
+! SFX m 0 man [^bdklmnt]e
+! SFX m 0 man [^bdeknmt]
+! SFX m 0 smen [bdknmt]
+! SFX m 0 smen [aeiou][bdklmnt]e
+! SFX m 0 men [^aeiou][bdklmnt]e
+! SFX m 0 men [^bdklmnt]e
+! SFX m 0 men [^bdeknmt]
+! SFX m 0 sman's [bdknmt]
+! SFX m 0 sman's [aeiou][bdklmnt]e
+! SFX m 0 man's [^aeiou][bdklmnt]e
+! SFX m 0 man's [^bdklmnt]e
+! SFX m 0 man's [^bdeknmt]
+! SFX m 0 smen's [bdknmt]
+! SFX m 0 smen's [aeiou][bdklmnt]e
+! SFX m 0 men's [^aeiou][bdklmnt]e
+! SFX m 0 men's [^bdklmnt]e
+! SFX m 0 men's [^bdeknmt]
+ SFX 5 Y 15
+! SFX 5 0 swoman [bdknmt]
+! SFX 5 0 swoman [aeiou][bdklmnt]e
+! SFX 5 0 woman [^aeiou][bdklmnt]e
+! SFX 5 0 woman [^bdklmnt]e
+! SFX 5 0 woman [^bdeknmt]
+! SFX 5 0 swomen [bdknmt]
+! SFX 5 0 swomen [aeiou][bdklmnt]e
+! SFX 5 0 women [^aeiou][bdklmnt]e
+! SFX 5 0 women [^bdklmnt]e
+! SFX 5 0 women [^bdeknmt]
+! SFX 5 0 swoman's [bdknmt]
+! SFX 5 0 swoman's [aeiou][bdklmnt]e
+! SFX 5 0 woman's [^aeiou][bdklmnt]e
+! SFX 5 0 woman's [^bdklmnt]e
+! SFX 5 0 woman's [^bdeknmt]
+ SFX 6 Y 3
+! SFX 6 y iful [^aeiou]y
+! SFX 6 0 ful [aeiou]y
+! SFX 6 0 ful [^y]
+ SFX j Y 3
+! SFX j y ifully [^aeiou]y
+! SFX j 0 fully [aeiou]y
+! SFX j 0 fully [^y]
+ SFX p Y 5
+! SFX p y iless [^aeiou]y
+! SFX p 0 less [aeiou]y
+! SFX p 0 ess ll
+! SFX p 0 less [^l]l
+! SFX p 0 less [^ly]
+ SFX Q Y 88
+! SFX Q 0 tise a
+! SFX Q e ise [^l]e
+! SFX Q le ilise [^aeiou]le
+! SFX Q e ise [aeiou]le
+! SFX Q um ise um
+! SFX Q 0 ise [^u]m
+! SFX Q s se is
+! SFX Q 0 ise [^i]s
+! SFX Q y ise [^aeiou]y
+! SFX Q 0 ise [aeiou]y
+! SFX Q 0 ise [^aemsy]
+! SFX Q 0 tises a
+! SFX Q e ises [^l]e
+! SFX Q le ilises [^aeiou]le
+! SFX Q e ises [aeiou]le
+! SFX Q um ises um
+! SFX Q 0 ises [^u]m
+! SFX Q s ses is
+! SFX Q 0 ises [^i]s
+! SFX Q y ises [^aeiou]y
+! SFX Q 0 ises [aeiou]y
+! SFX Q 0 ises [^aemsy]
+! SFX Q 0 tised a
+! SFX Q e ised [^l]e
+! SFX Q le ilised [^aeiou]le
+! SFX Q e ised [aeiou]le
+! SFX Q um ised um
+! SFX Q 0 ised [^u]m
+! SFX Q s sed is
+! SFX Q 0 ised [^i]s
+! SFX Q y ised [^aeiou]y
+! SFX Q 0 ised [aeiou]y
+! SFX Q 0 ised [^aemsy]
+! SFX Q 0 tising a
+! SFX Q e ising [^l]e
+! SFX Q le ilising [^aeiou]le
+! SFX Q e ising [aeiou]le
+! SFX Q um ising um
+! SFX Q 0 ising [^u]m
+! SFX Q s sing is
+! SFX Q 0 ising [^i]s
+! SFX Q y ising [^aeiou]y
+! SFX Q 0 ising [aeiou]y
+! SFX Q 0 ising [^aemsy]
+! SFX Q 0 tize a
+! SFX Q e ize [^l]e
+! SFX Q le ilize [^aeiou]le
+! SFX Q e ize [aeiou]le
+! SFX Q um ize um
+! SFX Q 0 ize [^u]m
+! SFX Q s ze is
+! SFX Q 0 ize [^i]s
+! SFX Q y ize [^aeiou]y
+! SFX Q 0 ize [aeiou]y
+! SFX Q 0 ize [^aemsy]
+! SFX Q 0 tizes a
+! SFX Q e izes [^l]e
+! SFX Q le ilizes [^aeiou]le
+! SFX Q e izes [aeiou]le
+! SFX Q um izes um
+! SFX Q 0 izes [^u]m
+! SFX Q s zes is
+! SFX Q 0 izes [^i]s
+! SFX Q y izes [^aeiou]y
+! SFX Q 0 izes [aeiou]y
+! SFX Q 0 izes [^aemsy]
+! SFX Q 0 tized a
+! SFX Q e ized [^l]e
+! SFX Q le ilized [^aeiou]le
+! SFX Q e ized [aeiou]le
+! SFX Q um ized um
+! SFX Q 0 ized [^u]m
+! SFX Q s zed is
+! SFX Q 0 ized [^i]s
+! SFX Q y ized [^aeiou]y
+! SFX Q 0 ized [aeiou]y
+! SFX Q 0 ized [^aemsy]
+! SFX Q 0 tizing a
+! SFX Q e izing [^l]e
+! SFX Q le ilizing [^aeiou]le
+! SFX Q e izing [aeiou]le
+! SFX Q um izing um
+! SFX Q 0 izing [^u]m
+! SFX Q s zing is
+! SFX Q 0 izing [^i]s
+! SFX Q y izing [^aeiou]y
+! SFX Q 0 izing [aeiou]y
+! SFX Q 0 izing [^aemsy]
+ SFX q Y 44
+! SFX q 0 tisation a
+! SFX q e isation [^l]e
+! SFX q le ilisation [^aeiou]le
+! SFX q e isation [aeiou]le
+! SFX q um isation um
+! SFX q 0 isation [^u]m
+! SFX q s sation is
+! SFX q 0 isation [^i]s
+! SFX q y isation [^aeiou]y
+! SFX q 0 isation [aeiou]y
+! SFX q 0 isation [^aemsy]
+! SFX q 0 tisations a
+! SFX q e isations [^l]e
+! SFX q le ilisations [^aeiou]le
+! SFX q e isations [aeiou]le
+! SFX q um isations um
+! SFX q 0 isations [^u]m
+! SFX q s sations is
+! SFX q 0 isations [^i]s
+! SFX q y isations [^aeiou]y
+! SFX q 0 isations [aeiou]y
+! SFX q 0 isations [^aemsy]
+! SFX q 0 tization a
+! SFX q e ization [^l]e
+! SFX q le ilization [^aeiou]le
+! SFX q e ization [aeiou]le
+! SFX q um ization um
+! SFX q 0 ization [^u]m
+! SFX q s zation is
+! SFX q 0 ization [^i]s
+! SFX q y ization [^aeiou]y
+! SFX q 0 ization [aeiou]y
+! SFX q 0 ization [^aemsy]
+! SFX q 0 tizations a
+! SFX q e izations [^l]e
+! SFX q le ilizations [^aeiou]le
+! SFX q e izations [aeiou]le
+! SFX q um izations um
+! SFX q 0 izations [^u]m
+! SFX q s zations is
+! SFX q 0 izations [^i]s
+! SFX q y izations [^aeiou]y
+! SFX q 0 izations [aeiou]y
+! SFX q 0 izations [^aemsy]
+ SFX s Y 66
+! SFX s 0 tiser a
+! SFX s e iser [^l]e
+! SFX s le iliser [^aeiou]le
+! SFX s e iser [aeiou]le
+! SFX s um iser um
+! SFX s 0 iser [^u]m
+! SFX s s ser is
+! SFX s 0 iser [^i]s
+! SFX s y iser [^aeiou]y
+! SFX s 0 iser [aeiou]y
+! SFX s 0 iser [^aemsy]
+! SFX s 0 tisers a
+! SFX s e isers [^l]e
+! SFX s le ilisers [^aeiou]le
+! SFX s e isers [aeiou]le
+! SFX s um isers um
+! SFX s 0 isers [^u]m
+! SFX s s sers is
+! SFX s 0 isers [^i]s
+! SFX s y isers [^aeiou]y
+! SFX s 0 isers [aeiou]y
+! SFX s 0 isers [^aemsy]
+! SFX s 0 tiser's a
+! SFX s e iser's [^l]e
+! SFX s le iliser's [^aeiou]le
+! SFX s e iser's [aeiou]le
+! SFX s um iser's um
+! SFX s 0 iser's [^u]m
+! SFX s s ser's is
+! SFX s 0 iser's [^i]s
+! SFX s y iser's [^aeiou]y
+! SFX s 0 iser's [aeiou]y
+! SFX s 0 iser's [^aemsy]
+! SFX s 0 tizer a
+! SFX s e izer [^l]e
+! SFX s le ilizer [^aeiou]le
+! SFX s e izer [aeiou]le
+! SFX s um izer um
+! SFX s 0 izer [^u]m
+! SFX s s zer is
+! SFX s 0 izer [^i]s
+! SFX s y izer [^aeiou]y
+! SFX s 0 izer [aeiou]y
+! SFX s 0 izer [^aemsy]
+! SFX s 0 tizers a
+! SFX s e izers [^l]e
+! SFX s le ilizers [^aeiou]le
+! SFX s e izers [aeiou]le
+! SFX s um izers um
+! SFX s 0 izers [^u]m
+! SFX s s zers is
+! SFX s 0 izers [^i]s
+! SFX s y izers [^aeiou]y
+! SFX s 0 izers [aeiou]y
+! SFX s 0 izers [^aemsy]
+! SFX s 0 tizer's a
+! SFX s e izer's [^l]e
+! SFX s le ilizer's [^aeiou]le
+! SFX s e izer's [aeiou]le
+! SFX s um izer's um
+! SFX s 0 izer's [^u]m
+! SFX s s zer's is
+! SFX s 0 izer's [^i]s
+! SFX s y izer's [^aeiou]y
+! SFX s 0 izer's [aeiou]y
+! SFX s 0 izer's [^aemsy]
+ SFX t Y 44
+! SFX t 0 tisable a
+! SFX t e isable [^l]e
+! SFX t le ilisable [^aeiou]le
+! SFX t e isable [aeiou]le
+! SFX t um isable um
+! SFX t 0 isable [^u]m
+! SFX t s sable is
+! SFX t 0 isable [^i]s
+! SFX t y isable [^aeiou]y
+! SFX t 0 isable [aeiou]y
+! SFX t 0 isable [^aemsy]
+! SFX t 0 tizable a
+! SFX t e izable [^l]e
+! SFX t le ilizable [^aeiou]le
+! SFX t e izable [aeiou]le
+! SFX t um izable um
+! SFX t 0 izable [^u]m
+! SFX t s zable is
+! SFX t 0 izable [^i]s
+! SFX t y izable [^aeiou]y
+! SFX t 0 izable [aeiou]y
+! SFX t 0 izable [^aemsy]
+! SFX t 0 tisability a
+! SFX t e isability [^l]e
+! SFX t le ilisability [^aeiou]le
+! SFX t e isability [aeiou]le
+! SFX t um isability um
+! SFX t 0 isability [^u]m
+! SFX t s sability is
+! SFX t 0 isability [^i]s
+! SFX t y isability [^aeiou]y
+! SFX t 0 isability [aeiou]y
+! SFX t 0 isability [^aemsy]
+! SFX t 0 tizability a
+! SFX t e izability [^l]e
+! SFX t le ilizability [^aeiou]le
+! SFX t e izability [aeiou]le
+! SFX t um izability um
+! SFX t 0 izability [^u]m
+! SFX t s zability is
+! SFX t 0 izability [^i]s
+! SFX t y izability [^aeiou]y
+! SFX t 0 izability [aeiou]y
+! SFX t 0 izability [^aemsy]
+ SFX M Y 1
+! SFX M 0 's .
+ SFX B Y 48
+! SFX B e able [^acegilotu]e
+! SFX B 0 able [acegilou]e
+! SFX B te ble ate
+! SFX B e able [^a]te
+! SFX B 0 bable [^aeio][aeiou]b
+! SFX B 0 kable [^aeio][aeiou]c
+! SFX B 0 dable [^aeio][aeiou]d
+! SFX B 0 fable [^aeio][aeiou]f
+! SFX B 0 gable [^aeio][aeiou]g
+! SFX B 0 kable [^aeio][aeiou]k
+! SFX B 0 lable [^aeio][aeiou]l
+! SFX B 0 mable [^aeio][aeiou]m
+! SFX B 0 nable [^aeio][aeiou]n
+! SFX B 0 pable [^aeio][aeiou]p
+! SFX B 0 rable [^aeio][aeiou]r
+! SFX B 0 sable [^aeio][aeiou]s
+! SFX B 0 table [^aeio][aeiou]t
+! SFX B 0 vable [^aeio][aeiou]v
+! SFX B 0 zable [^aeio][aeiou]z
+! SFX B 0 able [aeio][aeiou][bcdfgklmnprstvz]
+! SFX B 0 able [^aeiou][bcdfgklmnprstvz]
+! SFX B y iable [^aeiou]y
+! SFX B 0 able [aeiou]y
+! SFX B 0 able [^ebcdfgklmnprstvzy]
+! SFX B e ability [^acegilotu]e
+! SFX B 0 ability [acegilou]e
+! SFX B te bility ate
+! SFX B e ability [^a]te
+! SFX B 0 bability [^aeio][aeiou]b
+! SFX B 0 kability [^aeio][aeiou]c
+! SFX B 0 dability [^aeio][aeiou]d
+! SFX B 0 fability [^aeio][aeiou]f
+! SFX B 0 gability [^aeio][aeiou]g
+! SFX B 0 kability [^aeio][aeiou]k
+! SFX B 0 lability [^aeio][aeiou]l
+! SFX B 0 mability [^aeio][aeiou]m
+! SFX B 0 nability [^aeio][aeiou]n
+! SFX B 0 pability [^aeio][aeiou]p
+! SFX B 0 rability [^aeio][aeiou]r
+! SFX B 0 sability [^aeio][aeiou]s
+! SFX B 0 tability [^aeio][aeiou]t
+! SFX B 0 vability [^aeio][aeiou]v
+! SFX B 0 zability [^aeio][aeiou]z
+! SFX B 0 ability [aeio][aeiou][bcdfgklmnprstvz]
+! SFX B 0 ability [^aeiou][bcdfgklmnprstvz]
+! SFX B y iability [^aeiou]y
+! SFX B 0 ability [aeiou]y
+! SFX B 0 ability [^ebcdfgklmnprstvzy]
+ SFX 7 Y 9
+! SFX 7 e able [acegilou]e
+! SFX 7 0 able [^acegilou]e
+! SFX 7 0 kable [^aeio][aeiou]c
+! SFX 7 0 lable [^aeio][aeiou]l
+! SFX 7 0 able [aeio][aeiou][cl]
+! SFX 7 0 able [^aeiou][cl]
+! SFX 7 y iable [^aeiou]y
+! SFX 7 0 able [aeiou]y
+! SFX 7 0 able [^cely]
+ SFX g Y 9
+! SFX g e ability [^acegilou]e
+! SFX g 0 ability [acegilou]e
+! SFX g 0 kability [^aeio][aeiou]c
+! SFX g 0 lability [^aeio][aeiou]l
+! SFX g 0 ability [aeio][aeiou][cl]
+! SFX g 0 ability [^aeiou][cl]
+! SFX g y iability [^aeiou]y
+! SFX g 0 ability [aeiou]y
+! SFX g 0 ability [^cely]
+ SFX l Y 9
+! SFX l e ably [^acegilou]e
+! SFX l 0 ably [acegilou]e
+! SFX l 0 kably [^aeio][aeiou]c
+! SFX l 0 lably [^aeio][aeiou]l
+! SFX l 0 ably [aeio][aeiou][cl]
+! SFX l 0 ably [^aeiou][cl]
+! SFX l y iably [^aeiou]y
+! SFX l 0 ably [aeiou]y
+! SFX l 0 ably [^cely]
+ SFX b Y 3
+! SFX b e ible [^aeiou]e
+! SFX b 0 ible [aeiou]e
+! SFX b 0 ible [^e]
+ SFX L Y 12
+! SFX L 0 ament m
+! SFX L y iment [^aeiou]y
+! SFX L 0 ment [aeiou]y
+! SFX L 0 ment [^my]
+! SFX L 0 aments m
+! SFX L y iments [^aeiou]y
+! SFX L 0 ments [aeiou]y
+! SFX L 0 ments [^my]
+! SFX L 0 ament's m
+! SFX L y iment's [^aeiou]y
+! SFX L 0 ment's [aeiou]y
+! SFX L 0 ment's [^my]
+ SFX Z Y 22
+! SFX Z e y [^aeiouy]e
+! SFX Z 0 y [aeiouy]e
+! SFX Z 0 ey [aiouy]
+! SFX Z 0 by [^aeio][aeiou]b
+! SFX Z 0 ky [^aeio][aeiou]c
+! SFX Z 0 dy [^aeio][aeiou]d
+! SFX Z 0 fy [^aeio][aeiou]f
+! SFX Z 0 gy [^aeio][aeiou]g
+! SFX Z 0 ky [^aeio][aeiou]k
+! SFX Z 0 ly [^aeio][aeiou]l
+! SFX Z 0 my [^aeio][aeiou]m
+! SFX Z 0 ny [^aeio][aiou]n
+! SFX Z 0 py [^aeio][aeiou]p
+! SFX Z 0 ry [^aeio][aiou]r
+! SFX Z 0 sy [^aeio][aeiou]s
+! SFX Z 0 ty [^aeio][aiou]t
+! SFX Z 0 vy [^aeio][aeiou]v
+! SFX Z 0 zy [^aeio][aeiou]z
+! SFX Z 0 y [^aeio]e[nrt]
+! SFX Z 0 y [aeio][aeiou][bcdfgklmnprstvz]
+! SFX Z 0 y [^aeiou][bcdfgklmnprstvz]
+! SFX Z 0 y [^aebcdfgiklmnoprstuvyz]
+ SFX 2 Y 21
+! SFX 2 e iness [^aeiouy]e
+! SFX 2 0 iness [aeiouy]e
+! SFX 2 0 biness [^aeio][aeiou]b
+! SFX 2 0 kiness [^aeio][aeiou]c
+! SFX 2 0 diness [^aeio][aeiou]d
+! SFX 2 0 finess [^aeio][aeiou]f
+! SFX 2 0 giness [^aeio][aeiou]g
+! SFX 2 0 kiness [^aeio][aeiou]k
+! SFX 2 0 liness [^aeio][aeiou]l
+! SFX 2 0 miness [^aeio][aeiou]m
+! SFX 2 0 niness [^aeio][aiou]n
+! SFX 2 0 piness [^aeio][aeiou]p
+! SFX 2 0 riness [^aeio][aiou]r
+! SFX 2 0 siness [^aeio][aeiou]s
+! SFX 2 0 tiness [^aeio][aiou]t
+! SFX 2 0 viness [^aeio][aeiou]v
+! SFX 2 0 ziness [^aeio][aeiou]z
+! SFX 2 0 iness [^aeio]e[nrt]
+! SFX 2 0 iness [aeio][aeiou][bcdfgklmnprstvz]
+! SFX 2 0 iness [^aeiou][bcdfgklmnprstvz]
+! SFX 2 0 iness [^ebcdfgklmnprstvz]
+ SFX z Y 24
+! SFX z e ily [^aeiouy]e
+! SFX z 0 ily [aeiouy]e
+! SFX z 0 ily [aiou]y
+! SFX z ey ily ey
+! SFX z y ily [^aeiou]y
+! SFX z 0 bily [^aeio][aeiou]b
+! SFX z 0 kily [^aeio][aeiou]c
+! SFX z 0 dily [^aeio][aeiou]d
+! SFX z 0 fily [^aeio][aeiou]f
+! SFX z 0 gily [^aeio][aeiou]g
+! SFX z 0 kily [^aeio][aeiou]k
+! SFX z 0 lily [^aeio][aeiou]l
+! SFX z 0 mily [^aeio][aeiou]m
+! SFX z 0 nily [^aeio][aiou]n
+! SFX z 0 pily [^aeio][aeiou]p
+! SFX z 0 rily [^aeio][aiou]r
+! SFX z 0 sily [^aeio][aeiou]s
+! SFX z 0 tily [^aeio][aiou]t
+! SFX z 0 vily [^aeio][aeiou]v
+! SFX z 0 zily [^aeio][aeiou]z
+! SFX z 0 ily [^aeio]e[nrt]
+! SFX z 0 ily [aeio][aeiou][bcdfgklmnprstvyz]
+! SFX z 0 ily [^aeiou][bcdfgklmnprstvyz]
+! SFX z 0 ily [^ebcdfgklmnprstvyz]
+ SFX y Y 15
+! SFX y e ory te
+! SFX y e atory [mr]e
+! SFX y e ary se
+! SFX y 0 ry [^mrst]e
+! SFX y 0 ory [^aeous]t
+! SFX y 0 ry [aeous]t
+! SFX y 0 ery h
+! SFX y 0 atory [^i]m
+! SFX y im matory im
+! SFX y 0 ory s
+! SFX y 0 ary ion
+! SFX y 0 ry [^i]on
+! SFX y 0 nery [aiu]n
+! SFX y 0 ry [^aiou]n
+! SFX y 0 ry [^ehmstn]
+ SFX O Y 12
+! SFX O 0 l a
+! SFX O e al [^bcgv]e
+! SFX O e ial [bcgv]e
+! SFX O 0 ial [bcrx]
+! SFX O um al um
+! SFX O 0 al [^u]m
+! SFX O y al ty
+! SFX O y ial [^t]y
+! SFX O 0 ual [px]t
+! SFX O 0 tal [iu]t
+! SFX O 0 al [^ipux]t
+! SFX O 0 al [^aebcrtxmy]
+ SFX o Y 12
+! SFZ o 0 lly a
+! SFX o e ally [^bcgv]e
+! SFX o e ially [bcgv]e
+! SFX o 0 ially [bcrx]
+! SFX o um ally um
+! SFX o 0 ally [^u]m
+! SFX o y ally ty
+! SFX o y ially [^t]y
+! SFX o 0 ually [px]t
+! SFX o 0 tally [iu]t
+! SFX o 0 ally [^ipux]t
+! SFX o 0 ally [^aebcrtxmy]
+ SFX W Y 21
+! SFX W ce tific ce
+! SFX W e atic me
+! SFX W se tic se
+! SFX W le ic ble
+! SFX W e ic [^b]le
+! SFX W e ic [^clms]e
+! SFX W 0 lic [ay]l
+! SFX W 0 ic [^ay]l
+! SFX W us ic us
+! SFX W 0 tic [^u]s
+! SFX W er ric er
+! SFX W 0 ic [^e]r
+! SFX W 0 atic [aeiou]m
+! SFX W 0 ic [^aeiou]m
+! SFX W 0 tic ma
+! SFX W a ic [^m]a
+! SFX W y etic thy
+! SFX W y ic [^t]hy
+! SFX W y tic sy
+! SFX W y ic [^hs]y
+! SFX W 0 ic [^aelmrsy]
+ SFX w Y 9
+! SFX w e ical e
+! SFX w er rical er
+! SFX w 0 ical [^e]r
+! SFX w 0 atical [aeiou]m
+! SFX w 0 ical [^aeiou]m
+! SFX w 0 tical ma
+! SFX w a ical [^m]a
+! SFX w y ical y
+! SFX w 0 ical [^aemry]
+ SFX 1 Y 9
+! SFX 1 e ically e
+! SFX 1 er rically er
+! SFX 1 0 ically [^e]r
+! SFX 1 0 atically [aeiou]m
+! SFX 1 0 ically [^aeiou]m
+! SFX 1 0 tically ma
+! SFX 1 a ically [^m]a
+! SFX 1 y ically y
+! SFX 1 0 ically [^aemry]
+ SFX 3 Y 21
+! SFX 3 e ist [^aceiou]e
+! SFX 3 ce tist ce
+! SFX 3 0 ist [aeiou]e
+! SFX 3 y ist [^aeioubp]y
+! SFX 3 0 ist [aeioubp]y
+! SFX 3 o ist o
+! SFX 3 0 ists [^eoy]
+! SFX 3 e ists [^aceiou]e
+! SFX 3 ce tists ce
+! SFX 3 0 ists [aeiou]e
+! SFX 3 y ists [^aeioubp]y
+! SFX 3 0 ists [aeioubp]y
+! SFX 3 o ists o
+! SFX 3 0 ists [^eoy]
+! SFX 3 e ist's [^aceiou]e
+! SFX 3 ce tist's ce
+! SFX 3 0 ist's [aeiou]e
+! SFX 3 y ist's [^aeioubp]y
+! SFX 3 0 ist's [aeioubp]y
+! SFX 3 o ist's o
+! SFX 3 0 ist's [^eoy]
+--- 464,1149 ----
+ SFX R Y 72
+! SFX R 0 r e
+! SFX R 0 rs e
+! SFX R 0 ber [^aeio][aeiou]b
+! SFX R 0 bers [^aeio][aeiou]b
+! SFX R 0 ker [^aeio][aeiou]c
+! SFX R 0 kers [^aeio][aeiou]c
+! SFX R 0 der [^aeio][aeiou]d
+! SFX R 0 ders [^aeio][aeiou]d
+! SFX R 0 fer [^aeio][aeiou]f
+! SFX R 0 fers [^aeio][aeiou]f
+! SFX R 0 ger [^aeio][aeiou]g
+! SFX R 0 gers [^aeio][aeiou]g
+! SFX R 0 ker [^aeio][aeiou]k
+! SFX R 0 kers [^aeio][aeiou]k
+! SFX R 0 ler [^aeio][eiou]l
+! SFX R 0 er [aeio][eiou]l
+! SFX R 0 ler [^aeo]al
+! SFX R 0 er [aeo]al
+! SFX R 0 lers [^aeio][eiou]l
+! SFX R 0 ers [aeio][eiou]l
+! SFX R 0 lers [^aeo]al
+! SFX R 0 ers [aeo]al
+! SFX R 0 mer [^aeio][aeiou]m
+! SFX R 0 mers [^aeio][aeiou]m
+! SFX R 0 ner [^aeio][aeiou]n
+! SFX R 0 ners [^aeio][aeiou]n
+! SFX R 0 per [^aeio][aeiou]p
+! SFX R 0 pers [^aeio][aeiou]p
+! SFX R 0 rer [^aeio][aeiou]r
+! SFX R 0 rers [^aeio][aeiou]r
+! SFX R 0 ser [^aeio][aeiou]s
+! SFX R 0 sers [^aeio][aeiou]s
+! SFX R 0 ter [^aeio][aeiou]t
+! SFX R 0 ters [^aeio][aeiou]t
+! SFX R 0 ver [^aeio][aeiou]v
+! SFX R 0 vers [^aeio][aeiou]v
+! SFX R 0 zer [^aeio][aeiou]z
+! SFX R 0 zers [^aeio][aeiou]z
+! SFX R y ier [^aeiou]y
+! SFX R y iers [^aeiou]y
+! SFX R 0 er [aeiou]y
+! SFX R 0 ers [aeiou]y
+! SFX R 0 er [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 ers [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 er [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 ers [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 er [^ebcdfgklmnprstvyz]
+! SFX R 0 ers [^ebcdfgklmnprstvyz]
+! SFX R 0 r's e
+! SFX R 0 ber's [^aeio][aeiou]b
+! SFX R 0 ker's [^aeio][aeiou]c
+! SFX R 0 der's [^aeio][aeiou]d
+! SFX R 0 fer's [^aeio][aeiou]f
+! SFX R 0 ger's [^aeio][aeiou]g
+! SFX R 0 ker's [^aeio][aeiou]k
+! SFX R 0 ler's [^aeio][eiou]l
+! SFX R 0 er's [aeio][eiou]l
+! SFX R 0 ler's [^aeo]al
+! SFX R 0 er's [aeo]al
+! SFX R 0 mer's [^aeio][aeiou]m
+! SFX R 0 ner's [^aeio][aeiou]n
+! SFX R 0 per's [^aeio][aeiou]p
+! SFX R 0 rer's [^aeio][aeiou]r
+! SFX R 0 ser's [^aeio][aeiou]s
+! SFX R 0 ter's [^aeio][aeiou]t
+! SFX R 0 ver's [^aeio][aeiou]v
+! SFX R 0 zer's [^aeio][aeiou]z
+! SFX R y ier's [^aeiou]y
+! SFX R 0 er's [aeiou]y
+! SFX R 0 er's [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 er's [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 er's [^ebcdfgklmnprstvyz]
+ SFX r Y 24
+! SFX r 0 r e
+! SFX r 0 ler [^aeio][aeiou]l
+! SFX r 0 ker [^aeio][aeiou]c
+! SFX r y ier [^aeiou]y
+! SFX r 0 er [aeiou]y
+! SFX r 0 er [aeio][aeiou][cl]
+! SFX r 0 er [^aeiou][cl]
+! SFX r 0 er [^ecly]
+! SFX r 0 rs e
+! SFX r 0 lers [^aeio][aeiou]l
+! SFX r 0 kers [^aeio][aeiou]c
+! SFX r y iers [^aeiou]y
+! SFX r 0 ers [aeiou]y
+! SFX r 0 ers [aeio][aeiou][cl]
+! SFX r 0 ers [^aeiou][cl]
+! SFX r 0 ers [^ecly]
+! SFX r 0 r's e
+! SFX r 0 ler's [^aeio][aeiou]l
+! SFX r 0 ker's [^aeio][aeiou]c
+! SFX r y ier's [^aeiou]y
+! SFX r 0 er's [aeiou]y
+! SFX r 0 er's [aeio][aeiou][cl]
+! SFX r 0 er's [^aeiou][cl]
+! SFX r 0 er's [^ecly]
+ SFX S Y 9
+! SFX S y ies [^aeiou]y
+! SFX S 0 s [aeiou]y
+! SFX S 0 es [sxz]
+! SFX S 0 es [cs]h
+! SFX S 0 s [^cs]h
+! SFX S 0 s [ae]u
+! SFX S 0 x [ae]u
+! SFX S 0 s [^ae]u
+ SFX S 0 s [^hsuxyz]
+ SFX P Y 6
+! SFX P y iness [^aeiou]y
+! SFX P 0 ness [aeiou]y
+! SFX P 0 ness [^y]
+! SFX P y iness's [^aeiou]y
+! SFX P 0 ness's [aeiou]y
+! SFX P 0 ness's [^y]
+ SFX m Y 20
+! SFX m 0 sman [bdknmt]
+! SFX m 0 sman [aeiou][bdklmnt]e
+! SFX m 0 man [^aeiou][bdklmnt]e
+! SFX m 0 man [^bdklmnt]e
+! SFX m 0 man [^bdeknmt]
+! SFX m 0 smen [bdknmt]
+! SFX m 0 smen [aeiou][bdklmnt]e
+! SFX m 0 men [^aeiou][bdklmnt]e
+! SFX m 0 men [^bdklmnt]e
+! SFX m 0 men [^bdeknmt]
+! SFX m 0 sman's [bdknmt]
+! SFX m 0 sman's [aeiou][bdklmnt]e
+! SFX m 0 man's [^aeiou][bdklmnt]e
+! SFX m 0 man's [^bdklmnt]e
+! SFX m 0 man's [^bdeknmt]
+! SFX m 0 smen's [bdknmt]
+! SFX m 0 smen's [aeiou][bdklmnt]e
+! SFX m 0 men's [^aeiou][bdklmnt]e
+! SFX m 0 men's [^bdklmnt]e
+! SFX m 0 men's [^bdeknmt]
+ SFX 5 Y 15
+! SFX 5 0 swoman [bdknmt]
+! SFX 5 0 swoman [aeiou][bdklmnt]e
+! SFX 5 0 woman [^aeiou][bdklmnt]e
+! SFX 5 0 woman [^bdklmnt]e
+! SFX 5 0 woman [^bdeknmt]
+! SFX 5 0 swomen [bdknmt]
+! SFX 5 0 swomen [aeiou][bdklmnt]e
+! SFX 5 0 women [^aeiou][bdklmnt]e
+! SFX 5 0 women [^bdklmnt]e
+! SFX 5 0 women [^bdeknmt]
+! SFX 5 0 swoman's [bdknmt]
+! SFX 5 0 swoman's [aeiou][bdklmnt]e
+! SFX 5 0 woman's [^aeiou][bdklmnt]e
+! SFX 5 0 woman's [^bdklmnt]e
+! SFX 5 0 woman's [^bdeknmt]
+ SFX 6 Y 3
+! SFX 6 y iful [^aeiou]y
+! SFX 6 0 ful [aeiou]y
+! SFX 6 0 ful [^y]
+ SFX j Y 3
+! SFX j y ifully [^aeiou]y
+! SFX j 0 fully [aeiou]y
+! SFX j 0 fully [^y]
+ SFX p Y 5
+! SFX p y iless [^aeiou]y
+! SFX p 0 less [aeiou]y
+! SFX p 0 ess ll
+! SFX p 0 less [^l]l
+! SFX p 0 less [^ly]
+ SFX Q Y 88
+! SFX Q 0 tise a
+! SFX Q e ise [^l]e
+! SFX Q le ilise [^aeiou]le
+! SFX Q e ise [aeiou]le
+! SFX Q um ise um
+! SFX Q 0 ise [^u]m
+! SFX Q s se is
+! SFX Q 0 ise [^i]s
+! SFX Q y ise [^aeiou]y
+! SFX Q 0 ise [aeiou]y
+! SFX Q 0 ise [^aemsy]
+! SFX Q 0 tises a
+! SFX Q e ises [^l]e
+! SFX Q le ilises [^aeiou]le
+! SFX Q e ises [aeiou]le
+! SFX Q um ises um
+! SFX Q 0 ises [^u]m
+! SFX Q s ses is
+! SFX Q 0 ises [^i]s
+! SFX Q y ises [^aeiou]y
+! SFX Q 0 ises [aeiou]y
+! SFX Q 0 ises [^aemsy]
+! SFX Q 0 tised a
+! SFX Q e ised [^l]e
+! SFX Q le ilised [^aeiou]le
+! SFX Q e ised [aeiou]le
+! SFX Q um ised um
+! SFX Q 0 ised [^u]m
+! SFX Q s sed is
+! SFX Q 0 ised [^i]s
+! SFX Q y ised [^aeiou]y
+! SFX Q 0 ised [aeiou]y
+! SFX Q 0 ised [^aemsy]
+! SFX Q 0 tising a
+! SFX Q e ising [^l]e
+! SFX Q le ilising [^aeiou]le
+! SFX Q e ising [aeiou]le
+! SFX Q um ising um
+! SFX Q 0 ising [^u]m
+! SFX Q s sing is
+! SFX Q 0 ising [^i]s
+! SFX Q y ising [^aeiou]y
+! SFX Q 0 ising [aeiou]y
+! SFX Q 0 ising [^aemsy]
+! SFX Q 0 tize a
+! SFX Q e ize [^l]e
+! SFX Q le ilize [^aeiou]le
+! SFX Q e ize [aeiou]le
+! SFX Q um ize um
+! SFX Q 0 ize [^u]m
+! SFX Q s ze is
+! SFX Q 0 ize [^i]s
+! SFX Q y ize [^aeiou]y
+! SFX Q 0 ize [aeiou]y
+! SFX Q 0 ize [^aemsy]
+! SFX Q 0 tizes a
+! SFX Q e izes [^l]e
+! SFX Q le ilizes [^aeiou]le
+! SFX Q e izes [aeiou]le
+! SFX Q um izes um
+! SFX Q 0 izes [^u]m
+! SFX Q s zes is
+! SFX Q 0 izes [^i]s
+! SFX Q y izes [^aeiou]y
+! SFX Q 0 izes [aeiou]y
+! SFX Q 0 izes [^aemsy]
+! SFX Q 0 tized a
+! SFX Q e ized [^l]e
+! SFX Q le ilized [^aeiou]le
+! SFX Q e ized [aeiou]le
+! SFX Q um ized um
+! SFX Q 0 ized [^u]m
+! SFX Q s zed is
+! SFX Q 0 ized [^i]s
+! SFX Q y ized [^aeiou]y
+! SFX Q 0 ized [aeiou]y
+! SFX Q 0 ized [^aemsy]
+! SFX Q 0 tizing a
+! SFX Q e izing [^l]e
+! SFX Q le ilizing [^aeiou]le
+! SFX Q e izing [aeiou]le
+! SFX Q um izing um
+! SFX Q 0 izing [^u]m
+! SFX Q s zing is
+! SFX Q 0 izing [^i]s
+! SFX Q y izing [^aeiou]y
+! SFX Q 0 izing [aeiou]y
+! SFX Q 0 izing [^aemsy]
+ SFX q Y 44
+! SFX q 0 tisation a
+! SFX q e isation [^l]e
+! SFX q le ilisation [^aeiou]le
+! SFX q e isation [aeiou]le
+! SFX q um isation um
+! SFX q 0 isation [^u]m
+! SFX q s sation is
+! SFX q 0 isation [^i]s
+! SFX q y isation [^aeiou]y
+! SFX q 0 isation [aeiou]y
+! SFX q 0 isation [^aemsy]
+! SFX q 0 tisations a
+! SFX q e isations [^l]e
+! SFX q le ilisations [^aeiou]le
+! SFX q e isations [aeiou]le
+! SFX q um isations um
+! SFX q 0 isations [^u]m
+! SFX q s sations is
+! SFX q 0 isations [^i]s
+! SFX q y isations [^aeiou]y
+! SFX q 0 isations [aeiou]y
+! SFX q 0 isations [^aemsy]
+! SFX q 0 tization a
+! SFX q e ization [^l]e
+! SFX q le ilization [^aeiou]le
+! SFX q e ization [aeiou]le
+! SFX q um ization um
+! SFX q 0 ization [^u]m
+! SFX q s zation is
+! SFX q 0 ization [^i]s
+! SFX q y ization [^aeiou]y
+! SFX q 0 ization [aeiou]y
+! SFX q 0 ization [^aemsy]
+! SFX q 0 tizations a
+! SFX q e izations [^l]e
+! SFX q le ilizations [^aeiou]le
+! SFX q e izations [aeiou]le
+! SFX q um izations um
+! SFX q 0 izations [^u]m
+! SFX q s zations is
+! SFX q 0 izations [^i]s
+! SFX q y izations [^aeiou]y
+! SFX q 0 izations [aeiou]y
+! SFX q 0 izations [^aemsy]
+ SFX s Y 66
+! SFX s 0 tiser a
+! SFX s e iser [^l]e
+! SFX s le iliser [^aeiou]le
+! SFX s e iser [aeiou]le
+! SFX s um iser um
+! SFX s 0 iser [^u]m
+! SFX s s ser is
+! SFX s 0 iser [^i]s
+! SFX s y iser [^aeiou]y
+! SFX s 0 iser [aeiou]y
+! SFX s 0 iser [^aemsy]
+! SFX s 0 tisers a
+! SFX s e isers [^l]e
+! SFX s le ilisers [^aeiou]le
+! SFX s e isers [aeiou]le
+! SFX s um isers um
+! SFX s 0 isers [^u]m
+! SFX s s sers is
+! SFX s 0 isers [^i]s
+! SFX s y isers [^aeiou]y
+! SFX s 0 isers [aeiou]y
+! SFX s 0 isers [^aemsy]
+! SFX s 0 tiser's a
+! SFX s e iser's [^l]e
+! SFX s le iliser's [^aeiou]le
+! SFX s e iser's [aeiou]le
+! SFX s um iser's um
+! SFX s 0 iser's [^u]m
+! SFX s s ser's is
+! SFX s 0 iser's [^i]s
+! SFX s y iser's [^aeiou]y
+! SFX s 0 iser's [aeiou]y
+! SFX s 0 iser's [^aemsy]
+! SFX s 0 tizer a
+! SFX s e izer [^l]e
+! SFX s le ilizer [^aeiou]le
+! SFX s e izer [aeiou]le
+! SFX s um izer um
+! SFX s 0 izer [^u]m
+! SFX s s zer is
+! SFX s 0 izer [^i]s
+! SFX s y izer [^aeiou]y
+! SFX s 0 izer [aeiou]y
+! SFX s 0 izer [^aemsy]
+! SFX s 0 tizers a
+! SFX s e izers [^l]e
+! SFX s le ilizers [^aeiou]le
+! SFX s e izers [aeiou]le
+! SFX s um izers um
+! SFX s 0 izers [^u]m
+! SFX s s zers is
+! SFX s 0 izers [^i]s
+! SFX s y izers [^aeiou]y
+! SFX s 0 izers [aeiou]y
+! SFX s 0 izers [^aemsy]
+! SFX s 0 tizer's a
+! SFX s e izer's [^l]e
+! SFX s le ilizer's [^aeiou]le
+! SFX s e izer's [aeiou]le
+! SFX s um izer's um
+! SFX s 0 izer's [^u]m
+! SFX s s zer's is
+! SFX s 0 izer's [^i]s
+! SFX s y izer's [^aeiou]y
+! SFX s 0 izer's [aeiou]y
+! SFX s 0 izer's [^aemsy]
+ SFX t Y 44
+! SFX t 0 tisable a
+! SFX t e isable [^l]e
+! SFX t le ilisable [^aeiou]le
+! SFX t e isable [aeiou]le
+! SFX t um isable um
+! SFX t 0 isable [^u]m
+! SFX t s sable is
+! SFX t 0 isable [^i]s
+! SFX t y isable [^aeiou]y
+! SFX t 0 isable [aeiou]y
+! SFX t 0 isable [^aemsy]
+! SFX t 0 tizable a
+! SFX t e izable [^l]e
+! SFX t le ilizable [^aeiou]le
+! SFX t e izable [aeiou]le
+! SFX t um izable um
+! SFX t 0 izable [^u]m
+! SFX t s zable is
+! SFX t 0 izable [^i]s
+! SFX t y izable [^aeiou]y
+! SFX t 0 izable [aeiou]y
+! SFX t 0 izable [^aemsy]
+! SFX t 0 tisability a
+! SFX t e isability [^l]e
+! SFX t le ilisability [^aeiou]le
+! SFX t e isability [aeiou]le
+! SFX t um isability um
+! SFX t 0 isability [^u]m
+! SFX t s sability is
+! SFX t 0 isability [^i]s
+! SFX t y isability [^aeiou]y
+! SFX t 0 isability [aeiou]y
+! SFX t 0 isability [^aemsy]
+! SFX t 0 tizability a
+! SFX t e izability [^l]e
+! SFX t le ilizability [^aeiou]le
+! SFX t e izability [aeiou]le
+! SFX t um izability um
+! SFX t 0 izability [^u]m
+! SFX t s zability is
+! SFX t 0 izability [^i]s
+! SFX t y izability [^aeiou]y
+! SFX t 0 izability [aeiou]y
+! SFX t 0 izability [^aemsy]
+ SFX M Y 1
+! SFX M 0 's .
+ SFX B Y 48
+! SFX B e able [^acegilotu]e
+! SFX B 0 able [acegilou]e
+! SFX B te ble ate
+! SFX B e able [^a]te
+! SFX B 0 bable [^aeio][aeiou]b
+! SFX B 0 kable [^aeio][aeiou]c
+! SFX B 0 dable [^aeio][aeiou]d
+! SFX B 0 fable [^aeio][aeiou]f
+! SFX B 0 gable [^aeio][aeiou]g
+! SFX B 0 kable [^aeio][aeiou]k
+! SFX B 0 lable [^aeio][aeiou]l
+! SFX B 0 mable [^aeio][aeiou]m
+! SFX B 0 nable [^aeio][aeiou]n
+! SFX B 0 pable [^aeio][aeiou]p
+! SFX B 0 rable [^aeio][aeiou]r
+! SFX B 0 sable [^aeio][aeiou]s
+! SFX B 0 table [^aeio][aeiou]t
+! SFX B 0 vable [^aeio][aeiou]v
+! SFX B 0 zable [^aeio][aeiou]z
+! SFX B 0 able [aeio][aeiou][bcdfgklmnprstvz]
+! SFX B 0 able [^aeiou][bcdfgklmnprstvz]
+! SFX B y iable [^aeiou]y
+! SFX B 0 able [aeiou]y
+! SFX B 0 able [^ebcdfgklmnprstvzy]
+! SFX B e ability [^acegilotu]e
+! SFX B 0 ability [acegilou]e
+! SFX B te bility ate
+! SFX B e ability [^a]te
+! SFX B 0 bability [^aeio][aeiou]b
+! SFX B 0 kability [^aeio][aeiou]c
+! SFX B 0 dability [^aeio][aeiou]d
+! SFX B 0 fability [^aeio][aeiou]f
+! SFX B 0 gability [^aeio][aeiou]g
+! SFX B 0 kability [^aeio][aeiou]k
+! SFX B 0 lability [^aeio][aeiou]l
+! SFX B 0 mability [^aeio][aeiou]m
+! SFX B 0 nability [^aeio][aeiou]n
+! SFX B 0 pability [^aeio][aeiou]p
+! SFX B 0 rability [^aeio][aeiou]r
+! SFX B 0 sability [^aeio][aeiou]s
+! SFX B 0 tability [^aeio][aeiou]t
+! SFX B 0 vability [^aeio][aeiou]v
+! SFX B 0 zability [^aeio][aeiou]z
+! SFX B 0 ability [aeio][aeiou][bcdfgklmnprstvz]
+! SFX B 0 ability [^aeiou][bcdfgklmnprstvz]
+! SFX B y iability [^aeiou]y
+! SFX B 0 ability [aeiou]y
+! SFX B 0 ability [^ebcdfgklmnprstvzy]
+ SFX 7 Y 9
+! SFX 7 e able [acegilou]e
+! SFX 7 0 able [^acegilou]e
+! SFX 7 0 kable [^aeio][aeiou]c
+! SFX 7 0 lable [^aeio][aeiou]l
+! SFX 7 0 able [aeio][aeiou][cl]
+! SFX 7 0 able [^aeiou][cl]
+! SFX 7 y iable [^aeiou]y
+! SFX 7 0 able [aeiou]y
+! SFX 7 0 able [^cely]
+ SFX g Y 9
+! SFX g e ability [^acegilou]e
+! SFX g 0 ability [acegilou]e
+! SFX g 0 kability [^aeio][aeiou]c
+! SFX g 0 lability [^aeio][aeiou]l
+! SFX g 0 ability [aeio][aeiou][cl]
+! SFX g 0 ability [^aeiou][cl]
+! SFX g y iability [^aeiou]y
+! SFX g 0 ability [aeiou]y
+! SFX g 0 ability [^cely]
+ SFX l Y 9
+! SFX l e ably [^acegilou]e
+! SFX l 0 ably [acegilou]e
+! SFX l 0 kably [^aeio][aeiou]c
+! SFX l 0 lably [^aeio][aeiou]l
+! SFX l 0 ably [aeio][aeiou][cl]
+! SFX l 0 ably [^aeiou][cl]
+! SFX l y iably [^aeiou]y
+! SFX l 0 ably [aeiou]y
+! SFX l 0 ably [^cely]
+ SFX b Y 3
+! SFX b e ible [^aeiou]e
+! SFX b 0 ible [aeiou]e
+! SFX b 0 ible [^e]
+ SFX L Y 12
+! SFX L 0 ament m
+! SFX L y iment [^aeiou]y
+! SFX L 0 ment [aeiou]y
+! SFX L 0 ment [^my]
+! SFX L 0 aments m
+! SFX L y iments [^aeiou]y
+! SFX L 0 ments [aeiou]y
+! SFX L 0 ments [^my]
+! SFX L 0 ament's m
+! SFX L y iment's [^aeiou]y
+! SFX L 0 ment's [aeiou]y
+! SFX L 0 ment's [^my]
+ SFX Z Y 22
+! SFX Z e y [^aeiouy]e
+! SFX Z 0 y [aeiouy]e
+! SFX Z 0 ey [aiouy]
+! SFX Z 0 by [^aeio][aeiou]b
+! SFX Z 0 ky [^aeio][aeiou]c
+! SFX Z 0 dy [^aeio][aeiou]d
+! SFX Z 0 fy [^aeio][aeiou]f
+! SFX Z 0 gy [^aeio][aeiou]g
+! SFX Z 0 ky [^aeio][aeiou]k
+! SFX Z 0 ly [^aeio][aeiou]l
+! SFX Z 0 my [^aeio][aeiou]m
+! SFX Z 0 ny [^aeio][aiou]n
+! SFX Z 0 py [^aeio][aeiou]p
+! SFX Z 0 ry [^aeio][aiou]r
+! SFX Z 0 sy [^aeio][aeiou]s
+! SFX Z 0 ty [^aeio][aiou]t
+! SFX Z 0 vy [^aeio][aeiou]v
+! SFX Z 0 zy [^aeio][aeiou]z
+! SFX Z 0 y [^aeio]e[nrt]
+! SFX Z 0 y [aeio][aeiou][bcdfgklmnprstvz]
+! SFX Z 0 y [^aeiou][bcdfgklmnprstvz]
+! SFX Z 0 y [^aebcdfgiklmnoprstuvyz]
+ SFX 2 Y 21
+! SFX 2 e iness [^aeiouy]e
+! SFX 2 0 iness [aeiouy]e
+! SFX 2 0 biness [^aeio][aeiou]b
+! SFX 2 0 kiness [^aeio][aeiou]c
+! SFX 2 0 diness [^aeio][aeiou]d
+! SFX 2 0 finess [^aeio][aeiou]f
+! SFX 2 0 giness [^aeio][aeiou]g
+! SFX 2 0 kiness [^aeio][aeiou]k
+! SFX 2 0 liness [^aeio][aeiou]l
+! SFX 2 0 miness [^aeio][aeiou]m
+! SFX 2 0 niness [^aeio][aiou]n
+! SFX 2 0 piness [^aeio][aeiou]p
+! SFX 2 0 riness [^aeio][aiou]r
+! SFX 2 0 siness [^aeio][aeiou]s
+! SFX 2 0 tiness [^aeio][aiou]t
+! SFX 2 0 viness [^aeio][aeiou]v
+! SFX 2 0 ziness [^aeio][aeiou]z
+! SFX 2 0 iness [^aeio]e[nrt]
+! SFX 2 0 iness [aeio][aeiou][bcdfgklmnprstvz]
+! SFX 2 0 iness [^aeiou][bcdfgklmnprstvz]
+! SFX 2 0 iness [^ebcdfgklmnprstvz]
+ SFX z Y 24
+! SFX z e ily [^aeiouy]e
+! SFX z 0 ily [aeiouy]e
+! SFX z 0 ily [aiou]y
+! SFX z ey ily ey
+! SFX z y ily [^aeiou]y
+! SFX z 0 bily [^aeio][aeiou]b
+! SFX z 0 kily [^aeio][aeiou]c
+! SFX z 0 dily [^aeio][aeiou]d
+! SFX z 0 fily [^aeio][aeiou]f
+! SFX z 0 gily [^aeio][aeiou]g
+! SFX z 0 kily [^aeio][aeiou]k
+! SFX z 0 lily [^aeio][aeiou]l
+! SFX z 0 mily [^aeio][aeiou]m
+! SFX z 0 nily [^aeio][aiou]n
+! SFX z 0 pily [^aeio][aeiou]p
+! SFX z 0 rily [^aeio][aiou]r
+! SFX z 0 sily [^aeio][aeiou]s
+! SFX z 0 tily [^aeio][aiou]t
+! SFX z 0 vily [^aeio][aeiou]v
+! SFX z 0 zily [^aeio][aeiou]z
+! SFX z 0 ily [^aeio]e[nrt]
+! SFX z 0 ily [aeio][aeiou][bcdfgklmnprstvyz]
+! SFX z 0 ily [^aeiou][bcdfgklmnprstvyz]
+! SFX z 0 ily [^ebcdfgklmnprstvyz]
+ SFX y Y 15
+! SFX y e ory te
+! SFX y e atory [mr]e
+! SFX y e ary se
+! SFX y 0 ry [^mrst]e
+! SFX y 0 ory [^aeous]t
+! SFX y 0 ry [aeous]t
+! SFX y 0 ery h
+! SFX y 0 atory [^i]m
+! SFX y im matory im
+! SFX y 0 ory s
+! SFX y 0 ary ion
+! SFX y 0 ry [^i]on
+! SFX y 0 nery [aiu]n
+! SFX y 0 ry [^aiou]n
+! SFX y 0 ry [^ehmstn]
+ SFX O Y 12
+! SFX O 0 l a
+! SFX O e al [^bcgv]e
+! SFX O e ial [bcgv]e
+! SFX O 0 ial [bcrx]
+! SFX O um al um
+! SFX O 0 al [^u]m
+! SFX O y al ty
+! SFX O y ial [^t]y
+! SFX O 0 ual [px]t
+! SFX O 0 tal [iu]t
+! SFX O 0 al [^ipux]t
+! SFX O 0 al [^aebcrtxmy]
+ SFX o Y 12
+! SFX o 0 lly a
+! SFX o e ally [^bcgv]e
+! SFX o e ially [bcgv]e
+! SFX o 0 ially [bcrx]
+! SFX o um ally um
+! SFX o 0 ally [^u]m
+! SFX o y ally ty
+! SFX o y ially [^t]y
+! SFX o 0 ually [px]t
+! SFX o 0 tally [iu]t
+! SFX o 0 ally [^ipux]t
+! SFX o 0 ally [^aebcrtxmy]
+ SFX W Y 21
+! SFX W ce tific ce
+! SFX W e atic me
+! SFX W se tic se
+! SFX W le ic ble
+! SFX W e ic [^b]le
+! SFX W e ic [^clms]e
+! SFX W 0 lic [ay]l
+! SFX W 0 ic [^ay]l
+! SFX W us ic us
+! SFX W 0 tic [^u]s
+! SFX W er ric er
+! SFX W 0 ic [^e]r
+! SFX W 0 atic [aeiou]m
+! SFX W 0 ic [^aeiou]m
+! SFX W 0 tic ma
+! SFX W a ic [^m]a
+! SFX W y etic thy
+! SFX W y ic [^t]hy
+! SFX W y tic sy
+! SFX W y ic [^hs]y
+! SFX W 0 ic [^aelmrsy]
+ SFX w Y 9
+! SFX w e ical e
+! SFX w er rical er
+! SFX w 0 ical [^e]r
+! SFX w 0 atical [aeiou]m
+! SFX w 0 ical [^aeiou]m
+! SFX w 0 tical ma
+! SFX w a ical [^m]a
+! SFX w y ical y
+! SFX w 0 ical [^aemry]
+ SFX 1 Y 9
+! SFX 1 e ically e
+! SFX 1 er rically er
+! SFX 1 0 ically [^e]r
+! SFX 1 0 atically [aeiou]m
+! SFX 1 0 ically [^aeiou]m
+! SFX 1 0 tically ma
+! SFX 1 a ically [^m]a
+! SFX 1 y ically y
+! SFX 1 0 ically [^aemry]
+ SFX 3 Y 21
+! SFX 3 e ist [^aceiou]e
+! SFX 3 ce tist ce
+! SFX 3 0 ist [aeiou]e
+! SFX 3 y ist [^aeioubp]y
+! SFX 3 0 ist [aeioubp]y
+! SFX 3 o ist o
+! SFX 3 0 ists [^eoy]
+! SFX 3 e ists [^aceiou]e
+! SFX 3 ce tists ce
+! SFX 3 0 ists [aeiou]e
+! SFX 3 y ists [^aeioubp]y
+! SFX 3 0 ists [aeioubp]y
+! SFX 3 o ists o
+! SFX 3 0 ists [^eoy]
+! SFX 3 e ist's [^aceiou]e
+! SFX 3 ce tist's ce
+! SFX 3 0 ist's [aeiou]e
+! SFX 3 y ist's [^aeioubp]y
+! SFX 3 0 ist's [aeioubp]y
+! SFX 3 o ist's o
+! SFX 3 0 ist's [^eoy]
+*** en_AU.orig.dic Fri Apr 15 13:20:36 2005
+--- en_AU.dic Tue Apr 19 22:19:18 2005
+***************
+*** 4921,4922 ****
+--- 4921,4923 ----
+ Brahms
++ Bram/M
+ braid/DGS
+***************
+*** 12468,12469 ****
+--- 12469,12471 ----
+ Dutch/5m
++ Farsi
+ Dutchwomen/M
+***************
+*** 19214,19216 ****
+ Hobbes
+! hobbit
+ hobble/RGSD
+--- 19216,19218 ----
+ Hobbes
+! hobbit/MS
+ hobble/RGSD
+***************
+*** 26417,26418 ****
+--- 26419,26421 ----
+ Moolawatana
++ Moolenaar/M
+ Moomba
+***************
+*** 36012,36014 ****
+ sec.
+! s/eca
+ secant/MS
+--- 36015,36017 ----
+ sec.
+! outs
+ secant/MS
+***************
+*** 43749,43751 ****
+ Vilnius/M
+! vim/M
+ vinaigrette/MS
+--- 43752,43754 ----
+ Vilnius/M
+! Vim/M
+ vinaigrette/MS
diff --git a/src/spell/en_CA.diff b/src/spell/en_CA.diff
new file mode 100644
index 000000000..c321ff151
--- /dev/null
+++ b/src/spell/en_CA.diff
@@ -0,0 +1,87 @@
+*** en_CA.orig.aff Fri Apr 15 13:20:36 2005
+--- en_CA.aff Sat Apr 23 19:57:43 2005
+***************
+*** 3,4 ****
+--- 3,8 ----
+
++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
++
+ PFX A Y 1
+***************
+*** 30,33 ****
+ SFX N e ion e
+! SFX N y ication y
+! SFX N 0 en [^ey]
+
+--- 34,37 ----
+ SFX N e ion e
+! SFX N y ication y
+! SFX N 0 en [^ey]
+
+***************
+*** 40,42 ****
+ SFX H y ieth y
+! SFX H 0 th [^y]
+
+--- 44,46 ----
+ SFX H y ieth y
+! SFX H 0 th [^y]
+
+***************
+*** 47,49 ****
+ SFX G e ing e
+! SFX G 0 ing [^e]
+
+--- 51,53 ----
+ SFX G e ing e
+! SFX G 0 ing [^e]
+
+*** en_CA.orig.dic Sat Apr 16 14:40:06 2005
+--- en_CA.dic Tue Apr 19 22:19:46 2005
+***************
+*** 46,48 ****
+ R/G
+- S
+ easternmost
+--- 46,47 ----
+***************
+*** 89,91 ****
+ r/GVTJ
+! s/FK
+ fatting
+--- 88,90 ----
+ r/GVTJ
+! cons
+ fatting
+***************
+*** 13669,13671 ****
+ engross/LDRSG
+! hobbit
+ certainty/MUS
+--- 13668,13670 ----
+ engross/LDRSG
+! hobbit/MS
+ certainty/MUS
+***************
+*** 36707,36708 ****
+--- 36706,36708 ----
+ Moody/M
++ Moolenaar/M
+ Bresenham/M
+***************
+*** 50272,50273 ****
+--- 50272,50274 ----
+ Dutch/M
++ Farsi
+ Sharon/M
+***************
+*** 52565,52567 ****
+ hatchery/MS
+! vim/SM
+ compatriot/MS
+--- 52566,52568 ----
+ hatchery/MS
+! Vim/SM
+ compatriot/MS
diff --git a/src/spell/en_NZ.diff b/src/spell/en_NZ.diff
new file mode 100644
index 000000000..4fa638b1b
--- /dev/null
+++ b/src/spell/en_NZ.diff
@@ -0,0 +1,2468 @@
+*** en_NZ.orig.aff Fri Apr 15 13:20:36 2005
+--- en_NZ.aff Sat Apr 23 19:57:49 2005
+***************
+*** 7,9 ****
+ SET ISO8859-1
+! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ
+ REP 66
+--- 7,14 ----
+ SET ISO8859-1
+! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ
+!
+! FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
+! LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
+! UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
+!
+ REP 66
+***************
+*** 76,95 ****
+ PFX A Y 2
+! PFX A 0 re [^e]
+! PFX A 0 re- e
+ PFX a Y 1
+! PFX a 0 mis .
+ PFX I Y 4
+! PFX I 0 il l
+! PFX I 0 ir r
+! PFX I 0 im [bmp]
+! PFX I 0 in [^blmpr]
+ PFX c Y 1
+! PFX c 0 over .
+ PFX U Y 1
+! PFX U 0 un .
+ PFX C Y 2
+! PFX C 0 de [^e]
+! PFX C 0 de- e
+ PFX E Y 1
+! PFX E 0 dis .
+ PFX F Y 5
+--- 81,100 ----
+ PFX A Y 2
+! PFX A 0 re [^e]
+! PFX A 0 re- e
+ PFX a Y 1
+! PFX a 0 mis .
+ PFX I Y 4
+! PFX I 0 il l
+! PFX I 0 ir r
+! PFX I 0 im [bmp]
+! PFX I 0 in [^blmpr]
+ PFX c Y 1
+! PFX c 0 over .
+ PFX U Y 1
+! PFX U 0 un .
+ PFX C Y 2
+! PFX C 0 de [^e]
+! PFX C 0 de- e
+ PFX E Y 1
+! PFX E 0 dis .
+ PFX F Y 5
+***************
+*** 99,493 ****
+ PFX F 0 col l
+! PFX F 0 con [^abehilmopru].
+ PFX K Y 1
+! PFX K 0 pre .
+ PFX e Y 1
+! PFX e 0 out .
+ PFX f Y 2
+! PFX f 0 under [^r]
+! PFX f 0 under- r
+ PFX O Y 1
+! PFX O 0 non- .
+ PFX 4 Y 1
+! PFX 4 0 trans .
+ SFX V Y 15
+! SFX V 0 tive [aio]
+! SFX V b ptive b
+! SFX V d sive d
+! SFX V be ptive be
+! SFX V e tive ce
+! SFX V de sive de
+! SFX V ke cative ke
+! SFX V e ptive me
+! SFX V e ive [st]e
+! SFX V e ative [^bcdkmst]e
+! SFX V 0 lative [aeiou]l
+! SFX V 0 ative [^aeiou]l
+! SFX V 0 ive [st]
+! SFX V y icative y
+! SFX V 0 ative [^abdeilosty]
+ SFX v Y 15
+! SFX v 0 tively [aio]
+! SFX v b ptively b
+! SFX v d sively d
+! SFX v be ptively be
+! SFX v e tively ce
+! SFX v de sively de
+! SFX v ke catively ke
+! SFX v e ptively me
+! SFX v e ively [st]e
+! SFX v e atively [^bcdkmst]e
+! SFX v 0 latively [aeiou]l
+! SFX v 0 atively [^aeiou]l
+! SFX v 0 ively [st]
+! SFX v y icatively y
+! SFX v 0 atively [^abdeilosty]
+ SFX u Y 15
+! SFX u 0 tiveness [aio]
+! SFX u b ptiveness b
+! SFX u d siveness d
+! SFX u be ptiveness be
+! SFX u e tiveness ce
+! SFX u de siveness de
+! SFX u ke cativeness ke
+! SFX u e ptiveness me
+! SFX u e iveness [st]e
+! SFX u e ativeness [^bcdkmst]e
+! SFX u 0 lativeness [aeiou]l
+! SFX u 0 ativeness [^aeiou]l
+! SFX u 0 iveness [st]
+! SFX u y icativeness y
+! SFX u 0 ativeness [^abdeilosty]
+ SFX N Y 26
+! SFX N b ption b
+! SFX N d sion d
+! SFX N be ption be
+! SFX N e tion ce
+! SFX N de sion de
+! SFX N ke cation ke
+! SFX N e ption ume
+! SFX N e mation [^u]me
+! SFX N e ion [^o]se
+! SFX N e ition ose
+! SFX N e ation [iou]te
+! SFX N e ion [^iou]te
+! SFX N e ation [^bcdkmst]e
+! SFX N el ulsion el
+! SFX N 0 lation [aiou]l
+! SFX N 0 ation [^aeiou]l
+! SFX N 0 mation [aeiou]m
+! SFX N 0 ation [^aeiou]m
+! SFX N er ration er
+! SFX N 0 ation [^e]r
+! SFX N 0 ion [sx]
+! SFX N t ssion mit
+! SFX N 0 ion [^m]it
+! SFX N 0 ation [^i]t
+! SFX N y ication y
+! SFX N 0 ation [^bdelmrstxy]
+ SFX n Y 28
+! SFX n 0 tion a
+! SFX n e tion ce
+! SFX n ke cation ke
+! SFX n e ation [iou]te
+! SFX n e ion [^iou]te
+! SFX n e ation [^ckt]e
+! SFX n el ulsion el
+! SFX n 0 lation [aiou]l
+! SFX n 0 ation [^aeiou]l
+! SFX n er ration er
+! SFX n 0 ation [^e]r
+! SFX n y ation py
+! SFX n y ication [^p]y
+! SFX n 0 ation [^aelry]
+! SFX n 0 tions a
+! SFX n e tions ce
+! SFX n ke cations ke
+! SFX n e ations [iou]te
+! SFX n e ions [^iou]te
+! SFX n e ations [^ckt]e
+! SFX n el ulsions el
+! SFX n 0 lations [aiou]l
+! SFX n 0 ations [^aeiou]l
+! SFX n er rations er
+! SFX n 0 ations [^e]r
+! SFX n y ations py
+! SFX n y ications [^p]y
+! SFX n 0 ations [^aelry]
+ SFX X Y 26
+! SFX X b ptions b
+! SFX X d sions d
+! SFX X be ptions be
+! SFX X e tions ce
+! SFX X ke cations ke
+! SFX X de sions de
+! SFX X e ptions ume
+! SFX X e mations [^u]me
+! SFX X e ions [^o]se
+! SFX X e itions ose
+! SFX X e ations [iou]te
+! SFX X e ions [^iou]te
+! SFX X e ations [^bcdkmst]e
+! SFX X el ulsions el
+! SFX X 0 lations [aiou]l
+! SFX X 0 ations [^aeiou]l
+! SFX X 0 mations [aeiou]m
+! SFX X 0 ations [^aeiou]m
+! SFX X er rations er
+! SFX X 0 ations [^e]r
+! SFX X 0 ions [sx]
+! SFX X t ssions mit
+! SFX X 0 ions [^m]it
+! SFX X 0 ations [^i]t
+! SFX X y ications y
+! SFX X 0 ations [^bdelmrstxy]
+ SFX x Y 40
+! SFX x b ptional b
+! SFX x d sional d
+! SFX x be ptional be
+! SFX x e tional ce
+! SFX x ke cational ke
+! SFX x de sional de
+! SFX x e ional [^o]se
+! SFX x e itional ose
+! SFX x e ional te
+! SFX x e ational [^bcdkst]e
+! SFX x el ulsional el
+! SFX x 0 lational [aiou]l
+! SFX x 0 ational [^aeiou]l
+! SFX x er rational er
+! SFX x 0 ational [^e]r
+! SFX x 0 ional [sx]
+! SFX x 0 ional [^n]t
+! SFX x 0 ational nt
+! SFX x y icational y
+! SFX x 0 ational [^bdelrstxy]
+! SFX x b ptionally b
+! SFX x d sionally d
+! SFX x be ptionally be
+! SFX x e tionally ce
+! SFX x ke cationally ke
+! SFX x de sionally de
+! SFX x e ionally [^o]se
+! SFX x e itionally ose
+! SFX x e ionally te
+! SFX x e ationally [^bcdkst]e
+! SFX x el ulsionally el
+! SFX x 0 lationally [aiou]l
+! SFX x 0 ationally [^aeiou]l
+! SFX x er rationally er
+! SFX x 0 ationally [^e]r
+! SFX x 0 ionally [sx]
+! SFX x 0 ionally [^n]t
+! SFX x 0 ationally nt
+! SFX x y icationally y
+! SFX x 0 ationally [^bdelrstxy]
+ SFX H N 13
+! SFX H y ieth y
+! SFX H ree ird ree
+! SFX H ve fth ve
+! SFX H e th [^ev]e
+! SFX H 0 h t
+! SFX H 0 th [^ety]
+! SFX H y ieths y
+! SFX H ree irds ree
+! SFX H ve fths ve
+! SFX H e ths [^ev]e
+! SFX H 0 hs t
+! SFX H 0 ths [^ety]
+! SFX H 0 fold .
+ SFX Y Y 9
+! SFX Y 0 ally ic
+! SFX Y 0 ly [^i]c
+! SFX Y e y [^aeiou]le
+! SFX Y 0 ly [aeiou]le
+! SFX Y 0 ly [^l]e
+! SFX Y 0 y [^aeiou]l
+! SFX Y y ily [^aeiou]y
+! SFX Y 0 ly [aeiou][ly]
+! SFX Y 0 ly [^cely]
+ SFX G Y 24
+! SFX G e ing [^eioy]e
+! SFX G 0 ing [eoy]e
+! SFX G ie ying ie
+! SFX G 0 bing [^aeio][aeiou]b
+! SFX G 0 king [^aeio][aeiou]c
+! SFX G 0 ding [^aeio][aeiou]d
+! SFX G 0 fing [^aeio][aeiou]f
+! SFX G 0 ging [^aeio][aeiou]g
+! SFX G 0 king [^aeio][aeiou]k
+! SFX G 0 ling [^aeio][eiou]l
+! SFX G 0 ing [aeio][eiou]l
+! SFX G 0 ling [^aeo]al
+! SFX G 0 ing [aeo]al
+! SFX G 0 ming [^aeio][aeiou]m
+! SFX G 0 ning [^aeio][aeiou]n
+! SFX G 0 ping [^aeio][aeiou]p
+! SFX G 0 ring [^aeio][aeiou]r
+! SFX G 0 sing [^aeio][aeiou]s
+! SFX G 0 ting [^aeio][aeiou]t
+! SFX G 0 ving [^aeio][aeiou]v
+! SFX G 0 zing [^aeio][aeiou]z
+! SFX G 0 ing [aeio][aeiou][bcdfgkmnprstvz]
+! SFX G 0 ing [^aeiou][bcdfgklmnprstvz]
+! SFX G 0 ing [^ebcdfgklmnprstvz]
+ SFX J Y 25
+! SFX J e ings [^eioy]e
+! SFX J 0 ings [eoy]e
+! SFX J ie yings ie
+! SFX J 0 bings [^aeio][aeiou]b
+! SFX J 0 king [^aeio][aeiou]c
+! SFX J 0 dings [^aeio][aeiou]d
+! SFX J 0 fings [^aeio][aeiou]f
+! SFX J 0 gings [^aeio][aeiou]g
+! SFX J 0 kings [^aeio][aeiou]k
+! SFX J 0 lings [^aeio][eiou]l
+! SFX J 0 ings [aeio][eiou]l
+! SFX J 0 lings [^aeo]al
+! SFX J 0 ings [aeo]al
+! SFX J 0 mings [^aeio][aeiou]m
+! SFX J 0 nings [^aeio][aiou]n
+! SFX J 0 pings [^aeio][aeiou]p
+! SFX J 0 rings [^aeio][aiou]r
+! SFX J 0 sings [^aeio][aeiou]s
+! SFX J 0 tings [^aeio][aiou]t
+! SFX J 0 vings [^aeio][aeiou]v
+! SFX J 0 zings [^aeio][aeiou]z
+! SFX J 0 ings [^aeio]e[nrt]
+! SFX J 0 ings [aeio][aeiou][bcdfgkmnprstvz]
+! SFX J 0 ings [^aeiou][bcdfgklmnprstvz]
+! SFX J 0 ings [^ebcdfgklmnprstvz]
+ SFX k Y 8
+! SFX k e ingly [^eioy]e
+! SFX k 0 ingly [eoy]e
+! SFX k ie yingly ie
+! SFX k 0 kingly [^aeio][aeiou]c
+! SFX k 0 lingly [^aeio][aeiou]l
+! SFX k 0 ingly [aeio][aeiou][cl]
+! SFX k 0 ingly [^aeiou][cl]
+! SFX k 0 ingly [^ecl]
+ SFX D Y 25
+! SFX D 0 d [^e]e
+! SFX D e d ee
+! SFX D 0 bed [^aeio][aeiou]b
+! SFX D 0 ked [^aeio][aeiou]c
+! SFX D 0 ded [^aeio][aeiou]d
+! SFX D 0 fed [^aeio][aeiou]f
+! SFX D 0 ged [^aeio][aeiou]g
+! SFX D 0 ked [^aeio][aeiou]k
+! SFX D 0 led [^aeio][eiou]l
+! SFX D 0 ed [aeio][eiou]l
+! SFX D 0 led [^aeo]al
+! SFX D 0 ed [aeo]al
+! SFX D 0 med [^aeio][aeiou]m
+! SFX D 0 ned [^aeio][aeiou]n
+! SFX D 0 ped [^aeio][aeiou]p
+! SFX D 0 red [^aeio][aeiou]r
+! SFX D 0 sed [^aeio][aeiou]s
+! SFX D 0 ted [^aeio][aeiou]t
+! SFX D 0 ved [^aeio][aeiou]v
+! SFX D 0 zed [^aeio][aeiou]z
+! SFX D y ied [^aeiou]y
+! SFX D 0 ed [aeiou]y
+! SFX D 0 ed [aeio][aeiou][bcdfgkmnprstvz]
+! SFX D 0 ed [^aeiou][bcdfgklmnprstvz]
+! SFX D 0 ed [^ebcdfgklmnprstvyz]
+ SFX d Y 16
+! SFX d 0 d e
+! SFX d 0 ked [^aeio][aeiou]c
+! SFX d 0 led [^aeio][aeiou]l
+! SFX d y ied [^aeiou]y
+! SFX d 0 ed [aeiou]y
+! SFX d 0 ed [aeio][aeiou][cl]
+! SFX d 0 ed [^aeiou][cl]
+! SFX d 0 ed [^ecly]
+! SFX d e ing [^eioy]e
+! SFX d 0 ing [eoy]e
+! SFX d ie ying ie
+! SFX d 0 king [^aeio][aeiou]c
+! SFX d 0 ling [^aeio][aeiou]l
+! SFX d 0 ing [aeio][aeiou][cl]
+! SFX d 0 ing [^aeiou][cl]
+! SFX d 0 ing [^ecl]
+ SFX h Y 22
+! SFX h 0 dly e
+! SFX h 0 bedly [^aeio][aeiou]b
+! SFX h 0 kedly [^aeio][aeiou]c
+! SFX h 0 dedly [^aeio][aeiou]d
+! SFX h 0 fedly [^aeio][aeiou]f
+! SFX h 0 gedly [^aeio][aeiou]g
+! SFX h 0 kedly [^aeio][aeiou]k
+! SFX h 0 ledly [^aeio][aeiou]l
+! SFX h 0 medly [^aeio][aeiou]m
+! SFX h 0 nedly [^aeio][aiou]n
+! SFX h 0 pedly [^aeio][aeiou]p
+! SFX h 0 redly [^aeio][aiou]r
+! SFX h 0 sedly [^aeio][aeiou]s
+! SFX h 0 tedly [^aeio][aiou]t
+! SFX h 0 vedly [^aeio][aeiou]v
+! SFX h 0 zedly [^aeio][aeiou]z
+! SFX h 0 edly [^aeio]e[nrt]
+! SFX h y iedly [^aeiou]y
+! SFX h 0 edly [aeiou]y
+! SFX h 0 edly [aeio][aeiou][bcdfgklmnprstvz]
+! SFX h 0 edly [^aeiou][bcdfgklmnprstvz]
+! SFX h 0 edly [^ebcdfgklmnprstvyz]
+ SFX i Y 22
+! SFX i 0 dness e
+! SFX i 0 bedness [^aeio][aeiou]b
+! SFX i 0 kedness [^aeio][aeiou]c
+! SFX i 0 dedness [^aeio][aeiou]d
+! SFX i 0 fedness [^aeio][aeiou]f
+! SFX i 0 gedness [^aeio][aeiou]g
+! SFX i 0 kedness [^aeio][aeiou]k
+! SFX i 0 ledness [^aeio][aeiou]l
+! SFX i 0 medness [^aeio][aeiou]m
+! SFX i 0 nedness [^aeio][aiou]n
+! SFX i 0 pedness [^aeio][aeiou]p
+! SFX i 0 redness [^aeio][aiou]r
+! SFX i 0 sedness [^aeio][aeiou]s
+! SFX i 0 tedness [^aeio][aiou]t
+! SFX i 0 vedness [^aeio][aeiou]v
+! SFX i 0 zedness [^aeio][aeiou]z
+! SFX i 0 edness [^aeio]e[nrt]
+! SFX i y iedness [^aeiou]y
+! SFX i 0 edness [aeiou]y
+! SFX i 0 edness [aeio][aeiou][bcdfgklmnprstvz]
+! SFX i 0 edness [^aeiou][bcdfgklmnprstvz]
+! SFX i 0 edness [^ebcdfgklmnprstvyz]
+ SFX T Y 42
+! SFX T 0 r e
+ SFX T 0 st e
+! SFX T 0 ber [^aeio][aeiou]b
+ SFX T 0 best [^aeio][aeiou]b
+! SFX T 0 ker [^aeio][aeiou]c
+ SFX T 0 kest [^aeio][aeiou]c
+! SFX T 0 der [^aeio][aeiou]d
+ SFX T 0 dest [^aeio][aeiou]d
+! SFX T 0 fer [^aeio][aeiou]f
+ SFX T 0 fest [^aeio][aeiou]f
+! SFX T 0 ger [^aeio][aeiou]g
+ SFX T 0 gest [^aeio][aeiou]g
+! SFX T 0 ker [^aeio][aeiou]k
+ SFX T 0 kest [^aeio][aeiou]k
+! SFX T 0 ler [^aeio][aeiou]l
+ SFX T 0 lest [^aeio][aeiou]l
+! SFX T 0 mer [^aeio][aeiou]m
+ SFX T 0 mest [^aeio][aeiou]m
+! SFX T 0 ner [^aeio][aeiou]n
+ SFX T 0 nest [^aeio][aeiou]n
+! SFX T 0 per [^aeio][aeiou]p
+ SFX T 0 pest [^aeio][aeiou]p
+! SFX T 0 rer [^aeio][aeiou]r
+ SFX T 0 rest [^aeio][aeiou]r
+! SFX T 0 ser [^aeio][aeiou]s
+ SFX T 0 sest [^aeio][aeiou]s
+! SFX T 0 ter [^aeio][aeiou]t
+ SFX T 0 test [^aeio][aeiou]t
+! SFX T 0 ver [^aeio][aeiou]v
+ SFX T 0 vest [^aeio][aeiou]v
+! SFX T 0 zer [^aeio][aeiou]z
+ SFX T 0 zest [^aeio][aeiou]z
+! SFX T y ier [^aeiou]y
+ SFX T y iest [^aeiou]y
+! SFX T 0 er [aeiou]y
+ SFX T 0 est [aeiou]y
+--- 104,498 ----
+ PFX F 0 col l
+! PFX F 0 con [^abehilmopru].
+ PFX K Y 1
+! PFX K 0 pre .
+ PFX e Y 1
+! PFX e 0 out .
+ PFX f Y 2
+! PFX f 0 under [^r]
+! PFX f 0 under- r
+ PFX O Y 1
+! PFX O 0 non- .
+ PFX 4 Y 1
+! PFX 4 0 trans .
+ SFX V Y 15
+! SFX V 0 tive [aio]
+! SFX V b ptive b
+! SFX V d sive d
+! SFX V be ptive be
+! SFX V e tive ce
+! SFX V de sive de
+! SFX V ke cative ke
+! SFX V e ptive me
+! SFX V e ive [st]e
+! SFX V e ative [^bcdkmst]e
+! SFX V 0 lative [aeiou]l
+! SFX V 0 ative [^aeiou]l
+! SFX V 0 ive [st]
+! SFX V y icative y
+! SFX V 0 ative [^abdeilosty]
+ SFX v Y 15
+! SFX v 0 tively [aio]
+! SFX v b ptively b
+! SFX v d sively d
+! SFX v be ptively be
+! SFX v e tively ce
+! SFX v de sively de
+! SFX v ke catively ke
+! SFX v e ptively me
+! SFX v e ively [st]e
+! SFX v e atively [^bcdkmst]e
+! SFX v 0 latively [aeiou]l
+! SFX v 0 atively [^aeiou]l
+! SFX v 0 ively [st]
+! SFX v y icatively y
+! SFX v 0 atively [^abdeilosty]
+ SFX u Y 15
+! SFX u 0 tiveness [aio]
+! SFX u b ptiveness b
+! SFX u d siveness d
+! SFX u be ptiveness be
+! SFX u e tiveness ce
+! SFX u de siveness de
+! SFX u ke cativeness ke
+! SFX u e ptiveness me
+! SFX u e iveness [st]e
+! SFX u e ativeness [^bcdkmst]e
+! SFX u 0 lativeness [aeiou]l
+! SFX u 0 ativeness [^aeiou]l
+! SFX u 0 iveness [st]
+! SFX u y icativeness y
+! SFX u 0 ativeness [^abdeilosty]
+ SFX N Y 26
+! SFX N b ption b
+! SFX N d sion d
+! SFX N be ption be
+! SFX N e tion ce
+! SFX N de sion de
+! SFX N ke cation ke
+! SFX N e ption ume
+! SFX N e mation [^u]me
+! SFX N e ion [^o]se
+! SFX N e ition ose
+! SFX N e ation [iou]te
+! SFX N e ion [^iou]te
+! SFX N e ation [^bcdkmst]e
+! SFX N el ulsion el
+! SFX N 0 lation [aiou]l
+! SFX N 0 ation [^aeiou]l
+! SFX N 0 mation [aeiou]m
+! SFX N 0 ation [^aeiou]m
+! SFX N er ration er
+! SFX N 0 ation [^e]r
+! SFX N 0 ion [sx]
+! SFX N t ssion mit
+! SFX N 0 ion [^m]it
+! SFX N 0 ation [^i]t
+! SFX N y ication y
+! SFX N 0 ation [^bdelmrstxy]
+ SFX n Y 28
+! SFX n 0 tion a
+! SFX n e tion ce
+! SFX n ke cation ke
+! SFX n e ation [iou]te
+! SFX n e ion [^iou]te
+! SFX n e ation [^ckt]e
+! SFX n el ulsion el
+! SFX n 0 lation [aiou]l
+! SFX n 0 ation [^aeiou]l
+! SFX n er ration er
+! SFX n 0 ation [^e]r
+! SFX n y ation py
+! SFX n y ication [^p]y
+! SFX n 0 ation [^aelry]
+! SFX n 0 tions a
+! SFX n e tions ce
+! SFX n ke cations ke
+! SFX n e ations [iou]te
+! SFX n e ions [^iou]te
+! SFX n e ations [^ckt]e
+! SFX n el ulsions el
+! SFX n 0 lations [aiou]l
+! SFX n 0 ations [^aeiou]l
+! SFX n er rations er
+! SFX n 0 ations [^e]r
+! SFX n y ations py
+! SFX n y ications [^p]y
+! SFX n 0 ations [^aelry]
+ SFX X Y 26
+! SFX X b ptions b
+! SFX X d sions d
+! SFX X be ptions be
+! SFX X e tions ce
+! SFX X ke cations ke
+! SFX X de sions de
+! SFX X e ptions ume
+! SFX X e mations [^u]me
+! SFX X e ions [^o]se
+! SFX X e itions ose
+! SFX X e ations [iou]te
+! SFX X e ions [^iou]te
+! SFX X e ations [^bcdkmst]e
+! SFX X el ulsions el
+! SFX X 0 lations [aiou]l
+! SFX X 0 ations [^aeiou]l
+! SFX X 0 mations [aeiou]m
+! SFX X 0 ations [^aeiou]m
+! SFX X er rations er
+! SFX X 0 ations [^e]r
+! SFX X 0 ions [sx]
+! SFX X t ssions mit
+! SFX X 0 ions [^m]it
+! SFX X 0 ations [^i]t
+! SFX X y ications y
+! SFX X 0 ations [^bdelmrstxy]
+ SFX x Y 40
+! SFX x b ptional b
+! SFX x d sional d
+! SFX x be ptional be
+! SFX x e tional ce
+! SFX x ke cational ke
+! SFX x de sional de
+! SFX x e ional [^o]se
+! SFX x e itional ose
+! SFX x e ional te
+! SFX x e ational [^bcdkst]e
+! SFX x el ulsional el
+! SFX x 0 lational [aiou]l
+! SFX x 0 ational [^aeiou]l
+! SFX x er rational er
+! SFX x 0 ational [^e]r
+! SFX x 0 ional [sx]
+! SFX x 0 ional [^n]t
+! SFX x 0 ational nt
+! SFX x y icational y
+! SFX x 0 ational [^bdelrstxy]
+! SFX x b ptionally b
+! SFX x d sionally d
+! SFX x be ptionally be
+! SFX x e tionally ce
+! SFX x ke cationally ke
+! SFX x de sionally de
+! SFX x e ionally [^o]se
+! SFX x e itionally ose
+! SFX x e ionally te
+! SFX x e ationally [^bcdkst]e
+! SFX x el ulsionally el
+! SFX x 0 lationally [aiou]l
+! SFX x 0 ationally [^aeiou]l
+! SFX x er rationally er
+! SFX x 0 ationally [^e]r
+! SFX x 0 ionally [sx]
+! SFX x 0 ionally [^n]t
+! SFX x 0 ationally nt
+! SFX x y icationally y
+! SFX x 0 ationally [^bdelrstxy]
+ SFX H N 13
+! SFX H y ieth y
+! SFX H ree ird ree
+! SFX H ve fth ve
+! SFX H e th [^ev]e
+! SFX H 0 h t
+! SFX H 0 th [^ety]
+! SFX H y ieths y
+! SFX H ree irds ree
+! SFX H ve fths ve
+! SFX H e ths [^ev]e
+! SFX H 0 hs t
+! SFX H 0 ths [^ety]
+! SFX H 0 fold .
+ SFX Y Y 9
+! SFX Y 0 ally ic
+! SFX Y 0 ly [^i]c
+! SFX Y e y [^aeiou]le
+! SFX Y 0 ly [aeiou]le
+! SFX Y 0 ly [^l]e
+! SFX Y 0 y [^aeiou]l
+! SFX Y y ily [^aeiou]y
+! SFX Y 0 ly [aeiou][ly]
+! SFX Y 0 ly [^cely]
+ SFX G Y 24
+! SFX G e ing [^eioy]e
+! SFX G 0 ing [eoy]e
+! SFX G ie ying ie
+! SFX G 0 bing [^aeio][aeiou]b
+! SFX G 0 king [^aeio][aeiou]c
+! SFX G 0 ding [^aeio][aeiou]d
+! SFX G 0 fing [^aeio][aeiou]f
+! SFX G 0 ging [^aeio][aeiou]g
+! SFX G 0 king [^aeio][aeiou]k
+! SFX G 0 ling [^aeio][eiou]l
+! SFX G 0 ing [aeio][eiou]l
+! SFX G 0 ling [^aeo]al
+! SFX G 0 ing [aeo]al
+! SFX G 0 ming [^aeio][aeiou]m
+! SFX G 0 ning [^aeio][aeiou]n
+! SFX G 0 ping [^aeio][aeiou]p
+! SFX G 0 ring [^aeio][aeiou]r
+! SFX G 0 sing [^aeio][aeiou]s
+! SFX G 0 ting [^aeio][aeiou]t
+! SFX G 0 ving [^aeio][aeiou]v
+! SFX G 0 zing [^aeio][aeiou]z
+! SFX G 0 ing [aeio][aeiou][bcdfgkmnprstvz]
+! SFX G 0 ing [^aeiou][bcdfgklmnprstvz]
+! SFX G 0 ing [^ebcdfgklmnprstvz]
+ SFX J Y 25
+! SFX J e ings [^eioy]e
+! SFX J 0 ings [eoy]e
+! SFX J ie yings ie
+! SFX J 0 bings [^aeio][aeiou]b
+! SFX J 0 king [^aeio][aeiou]c
+! SFX J 0 dings [^aeio][aeiou]d
+! SFX J 0 fings [^aeio][aeiou]f
+! SFX J 0 gings [^aeio][aeiou]g
+! SFX J 0 kings [^aeio][aeiou]k
+! SFX J 0 lings [^aeio][eiou]l
+! SFX J 0 ings [aeio][eiou]l
+! SFX J 0 lings [^aeo]al
+! SFX J 0 ings [aeo]al
+! SFX J 0 mings [^aeio][aeiou]m
+! SFX J 0 nings [^aeio][aiou]n
+! SFX J 0 pings [^aeio][aeiou]p
+! SFX J 0 rings [^aeio][aiou]r
+! SFX J 0 sings [^aeio][aeiou]s
+! SFX J 0 tings [^aeio][aiou]t
+! SFX J 0 vings [^aeio][aeiou]v
+! SFX J 0 zings [^aeio][aeiou]z
+! SFX J 0 ings [^aeio]e[nrt]
+! SFX J 0 ings [aeio][aeiou][bcdfgkmnprstvz]
+! SFX J 0 ings [^aeiou][bcdfgklmnprstvz]
+! SFX J 0 ings [^ebcdfgklmnprstvz]
+ SFX k Y 8
+! SFX k e ingly [^eioy]e
+! SFX k 0 ingly [eoy]e
+! SFX k ie yingly ie
+! SFX k 0 kingly [^aeio][aeiou]c
+! SFX k 0 lingly [^aeio][aeiou]l
+! SFX k 0 ingly [aeio][aeiou][cl]
+! SFX k 0 ingly [^aeiou][cl]
+! SFX k 0 ingly [^ecl]
+ SFX D Y 25
+! SFX D 0 d [^e]e
+! SFX D e d ee
+! SFX D 0 bed [^aeio][aeiou]b
+! SFX D 0 ked [^aeio][aeiou]c
+! SFX D 0 ded [^aeio][aeiou]d
+! SFX D 0 fed [^aeio][aeiou]f
+! SFX D 0 ged [^aeio][aeiou]g
+! SFX D 0 ked [^aeio][aeiou]k
+! SFX D 0 led [^aeio][eiou]l
+! SFX D 0 ed [aeio][eiou]l
+! SFX D 0 led [^aeo]al
+! SFX D 0 ed [aeo]al
+! SFX D 0 med [^aeio][aeiou]m
+! SFX D 0 ned [^aeio][aeiou]n
+! SFX D 0 ped [^aeio][aeiou]p
+! SFX D 0 red [^aeio][aeiou]r
+! SFX D 0 sed [^aeio][aeiou]s
+! SFX D 0 ted [^aeio][aeiou]t
+! SFX D 0 ved [^aeio][aeiou]v
+! SFX D 0 zed [^aeio][aeiou]z
+! SFX D y ied [^aeiou]y
+! SFX D 0 ed [aeiou]y
+! SFX D 0 ed [aeio][aeiou][bcdfgkmnprstvz]
+! SFX D 0 ed [^aeiou][bcdfgklmnprstvz]
+! SFX D 0 ed [^ebcdfgklmnprstvyz]
+ SFX d Y 16
+! SFX d 0 d e
+! SFX d 0 ked [^aeio][aeiou]c
+! SFX d 0 led [^aeio][aeiou]l
+! SFX d y ied [^aeiou]y
+! SFX d 0 ed [aeiou]y
+! SFX d 0 ed [aeio][aeiou][cl]
+! SFX d 0 ed [^aeiou][cl]
+! SFX d 0 ed [^ecly]
+! SFX d e ing [^eioy]e
+! SFX d 0 ing [eoy]e
+! SFX d ie ying ie
+! SFX d 0 king [^aeio][aeiou]c
+! SFX d 0 ling [^aeio][aeiou]l
+! SFX d 0 ing [aeio][aeiou][cl]
+! SFX d 0 ing [^aeiou][cl]
+! SFX d 0 ing [^ecl]
+ SFX h Y 22
+! SFX h 0 dly e
+! SFX h 0 bedly [^aeio][aeiou]b
+! SFX h 0 kedly [^aeio][aeiou]c
+! SFX h 0 dedly [^aeio][aeiou]d
+! SFX h 0 fedly [^aeio][aeiou]f
+! SFX h 0 gedly [^aeio][aeiou]g
+! SFX h 0 kedly [^aeio][aeiou]k
+! SFX h 0 ledly [^aeio][aeiou]l
+! SFX h 0 medly [^aeio][aeiou]m
+! SFX h 0 nedly [^aeio][aiou]n
+! SFX h 0 pedly [^aeio][aeiou]p
+! SFX h 0 redly [^aeio][aiou]r
+! SFX h 0 sedly [^aeio][aeiou]s
+! SFX h 0 tedly [^aeio][aiou]t
+! SFX h 0 vedly [^aeio][aeiou]v
+! SFX h 0 zedly [^aeio][aeiou]z
+! SFX h 0 edly [^aeio]e[nrt]
+! SFX h y iedly [^aeiou]y
+! SFX h 0 edly [aeiou]y
+! SFX h 0 edly [aeio][aeiou][bcdfgklmnprstvz]
+! SFX h 0 edly [^aeiou][bcdfgklmnprstvz]
+! SFX h 0 edly [^ebcdfgklmnprstvyz]
+ SFX i Y 22
+! SFX i 0 dness e
+! SFX i 0 bedness [^aeio][aeiou]b
+! SFX i 0 kedness [^aeio][aeiou]c
+! SFX i 0 dedness [^aeio][aeiou]d
+! SFX i 0 fedness [^aeio][aeiou]f
+! SFX i 0 gedness [^aeio][aeiou]g
+! SFX i 0 kedness [^aeio][aeiou]k
+! SFX i 0 ledness [^aeio][aeiou]l
+! SFX i 0 medness [^aeio][aeiou]m
+! SFX i 0 nedness [^aeio][aiou]n
+! SFX i 0 pedness [^aeio][aeiou]p
+! SFX i 0 redness [^aeio][aiou]r
+! SFX i 0 sedness [^aeio][aeiou]s
+! SFX i 0 tedness [^aeio][aiou]t
+! SFX i 0 vedness [^aeio][aeiou]v
+! SFX i 0 zedness [^aeio][aeiou]z
+! SFX i 0 edness [^aeio]e[nrt]
+! SFX i y iedness [^aeiou]y
+! SFX i 0 edness [aeiou]y
+! SFX i 0 edness [aeio][aeiou][bcdfgklmnprstvz]
+! SFX i 0 edness [^aeiou][bcdfgklmnprstvz]
+! SFX i 0 edness [^ebcdfgklmnprstvyz]
+ SFX T Y 42
+! SFX T 0 r e
+ SFX T 0 st e
+! SFX T 0 ber [^aeio][aeiou]b
+ SFX T 0 best [^aeio][aeiou]b
+! SFX T 0 ker [^aeio][aeiou]c
+ SFX T 0 kest [^aeio][aeiou]c
+! SFX T 0 der [^aeio][aeiou]d
+ SFX T 0 dest [^aeio][aeiou]d
+! SFX T 0 fer [^aeio][aeiou]f
+ SFX T 0 fest [^aeio][aeiou]f
+! SFX T 0 ger [^aeio][aeiou]g
+ SFX T 0 gest [^aeio][aeiou]g
+! SFX T 0 ker [^aeio][aeiou]k
+ SFX T 0 kest [^aeio][aeiou]k
+! SFX T 0 ler [^aeio][aeiou]l
+ SFX T 0 lest [^aeio][aeiou]l
+! SFX T 0 mer [^aeio][aeiou]m
+ SFX T 0 mest [^aeio][aeiou]m
+! SFX T 0 ner [^aeio][aeiou]n
+ SFX T 0 nest [^aeio][aeiou]n
+! SFX T 0 per [^aeio][aeiou]p
+ SFX T 0 pest [^aeio][aeiou]p
+! SFX T 0 rer [^aeio][aeiou]r
+ SFX T 0 rest [^aeio][aeiou]r
+! SFX T 0 ser [^aeio][aeiou]s
+ SFX T 0 sest [^aeio][aeiou]s
+! SFX T 0 ter [^aeio][aeiou]t
+ SFX T 0 test [^aeio][aeiou]t
+! SFX T 0 ver [^aeio][aeiou]v
+ SFX T 0 vest [^aeio][aeiou]v
+! SFX T 0 zer [^aeio][aeiou]z
+ SFX T 0 zest [^aeio][aeiou]z
+! SFX T y ier [^aeiou]y
+ SFX T y iest [^aeiou]y
+! SFX T 0 er [aeiou]y
+ SFX T 0 est [aeiou]y
+***************
+*** 500,1185 ****
+ SFX R Y 72
+! SFX R 0 r e
+! SFX R 0 rs e
+! SFX R 0 ber [^aeio][aeiou]b
+! SFX R 0 bers [^aeio][aeiou]b
+! SFX R 0 ker [^aeio][aeiou]c
+! SFX R 0 kers [^aeio][aeiou]c
+! SFX R 0 der [^aeio][aeiou]d
+! SFX R 0 ders [^aeio][aeiou]d
+! SFX R 0 fer [^aeio][aeiou]f
+! SFX R 0 fers [^aeio][aeiou]f
+! SFX R 0 ger [^aeio][aeiou]g
+! SFX R 0 gers [^aeio][aeiou]g
+! SFX R 0 ker [^aeio][aeiou]k
+! SFX R 0 kers [^aeio][aeiou]k
+! SFX R 0 ler [^aeio][eiou]l
+! SFX R 0 er [aeio][eiou]l
+! SFX R 0 ler [^aeo]al
+! SFX R 0 er [aeo]al
+! SFX R 0 lers [^aeio][eiou]l
+! SFX R 0 ers [aeio][eiou]l
+! SFX R 0 lers [^aeo]al
+! SFX R 0 ers [aeo]al
+! SFX R 0 mer [^aeio][aeiou]m
+! SFX R 0 mers [^aeio][aeiou]m
+! SFX R 0 ner [^aeio][aeiou]n
+! SFX R 0 ners [^aeio][aeiou]n
+! SFX R 0 per [^aeio][aeiou]p
+! SFX R 0 pers [^aeio][aeiou]p
+! SFX R 0 rer [^aeio][aeiou]r
+! SFX R 0 rers [^aeio][aeiou]r
+! SFX R 0 ser [^aeio][aeiou]s
+! SFX R 0 sers [^aeio][aeiou]s
+! SFX R 0 ter [^aeio][aeiou]t
+! SFX R 0 ters [^aeio][aeiou]t
+! SFX R 0 ver [^aeio][aeiou]v
+! SFX R 0 vers [^aeio][aeiou]v
+! SFX R 0 zer [^aeio][aeiou]z
+! SFX R 0 zers [^aeio][aeiou]z
+! SFX R y ier [^aeiou]y
+! SFX R y iers [^aeiou]y
+! SFX R 0 er [aeiou]y
+! SFX R 0 ers [aeiou]y
+! SFX R 0 er [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 ers [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 er [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 ers [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 er [^ebcdfgklmnprstvyz]
+! SFX R 0 ers [^ebcdfgklmnprstvyz]
+! SFX R 0 r's e
+! SFX R 0 ber's [^aeio][aeiou]b
+! SFX R 0 ker's [^aeio][aeiou]c
+! SFX R 0 der's [^aeio][aeiou]d
+! SFX R 0 fer's [^aeio][aeiou]f
+! SFX R 0 ger's [^aeio][aeiou]g
+! SFX R 0 ker's [^aeio][aeiou]k
+! SFX R 0 ler's [^aeio][eiou]l
+! SFX R 0 er's [aeio][eiou]l
+! SFX R 0 ler's [^aeo]al
+! SFX R 0 er's [aeo]al
+! SFX R 0 mer's [^aeio][aeiou]m
+! SFX R 0 ner's [^aeio][aeiou]n
+! SFX R 0 per's [^aeio][aeiou]p
+! SFX R 0 rer's [^aeio][aeiou]r
+! SFX R 0 ser's [^aeio][aeiou]s
+! SFX R 0 ter's [^aeio][aeiou]t
+! SFX R 0 ver's [^aeio][aeiou]v
+! SFX R 0 zer's [^aeio][aeiou]z
+! SFX R y ier's [^aeiou]y
+! SFX R 0 er's [aeiou]y
+! SFX R 0 er's [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 er's [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 er's [^ebcdfgklmnprstvyz]
+ SFX r Y 24
+! SFX r 0 r e
+! SFX r 0 ler [^aeio][aeiou]l
+! SFX r 0 ker [^aeio][aeiou]c
+! SFX r y ier [^aeiou]y
+! SFX r 0 er [aeiou]y
+! SFX r 0 er [aeio][aeiou][cl]
+! SFX r 0 er [^aeiou][cl]
+! SFX r 0 er [^ecly]
+! SFX r 0 rs e
+! SFX r 0 lers [^aeio][aeiou]l
+! SFX r 0 kers [^aeio][aeiou]c
+! SFX r y iers [^aeiou]y
+! SFX r 0 ers [aeiou]y
+! SFX r 0 ers [aeio][aeiou][cl]
+! SFX r 0 ers [^aeiou][cl]
+! SFX r 0 ers [^ecly]
+! SFX r 0 r's e
+! SFX r 0 ler's [^aeio][aeiou]l
+! SFX r 0 ker's [^aeio][aeiou]c
+! SFX r y ier's [^aeiou]y
+! SFX r 0 er's [aeiou]y
+! SFX r 0 er's [aeio][aeiou][cl]
+! SFX r 0 er's [^aeiou][cl]
+! SFX r 0 er's [^ecly]
+ SFX S Y 9
+! SFX S y ies [^aeiou]y
+! SFX S 0 s [aeiou]y
+! SFX S 0 es [sxz]
+! SFX S 0 es [cs]h
+! SFX S 0 s [^cs]h
+! SFX S 0 s [ae]u
+! SFX S 0 x [ae]u
+! SFX S 0 s [^ae]u
+ SFX S 0 s [^hsuxyz]
+ SFX P Y 6
+! SFX P y iness [^aeiou]y
+! SFX P 0 ness [aeiou]y
+! SFX P 0 ness [^y]
+! SFX P y iness's [^aeiou]y
+! SFX P 0 ness's [aeiou]y
+! SFX P 0 ness's [^y]
+ SFX m Y 20
+! SFX m 0 sman [bdknmt]
+! SFX m 0 sman [aeiou][bdklmnt]e
+! SFX m 0 man [^aeiou][bdklmnt]e
+! SFX m 0 man [^bdklmnt]e
+! SFX m 0 man [^bdeknmt]
+! SFX m 0 smen [bdknmt]
+! SFX m 0 smen [aeiou][bdklmnt]e
+! SFX m 0 men [^aeiou][bdklmnt]e
+! SFX m 0 men [^bdklmnt]e
+! SFX m 0 men [^bdeknmt]
+! SFX m 0 sman's [bdknmt]
+! SFX m 0 sman's [aeiou][bdklmnt]e
+! SFX m 0 man's [^aeiou][bdklmnt]e
+! SFX m 0 man's [^bdklmnt]e
+! SFX m 0 man's [^bdeknmt]
+! SFX m 0 smen's [bdknmt]
+! SFX m 0 smen's [aeiou][bdklmnt]e
+! SFX m 0 men's [^aeiou][bdklmnt]e
+! SFX m 0 men's [^bdklmnt]e
+! SFX m 0 men's [^bdeknmt]
+ SFX 5 Y 15
+! SFX 5 0 swoman [bdknmt]
+! SFX 5 0 swoman [aeiou][bdklmnt]e
+! SFX 5 0 woman [^aeiou][bdklmnt]e
+! SFX 5 0 woman [^bdklmnt]e
+! SFX 5 0 woman [^bdeknmt]
+! SFX 5 0 swomen [bdknmt]
+! SFX 5 0 swomen [aeiou][bdklmnt]e
+! SFX 5 0 women [^aeiou][bdklmnt]e
+! SFX 5 0 women [^bdklmnt]e
+! SFX 5 0 women [^bdeknmt]
+! SFX 5 0 swoman's [bdknmt]
+! SFX 5 0 swoman's [aeiou][bdklmnt]e
+! SFX 5 0 woman's [^aeiou][bdklmnt]e
+! SFX 5 0 woman's [^bdklmnt]e
+! SFX 5 0 woman's [^bdeknmt]
+ SFX 6 Y 3
+! SFX 6 y iful [^aeiou]y
+! SFX 6 0 ful [aeiou]y
+! SFX 6 0 ful [^y]
+ SFX j Y 3
+! SFX j y ifully [^aeiou]y
+! SFX j 0 fully [aeiou]y
+! SFX j 0 fully [^y]
+ SFX p Y 5
+! SFX p y iless [^aeiou]y
+! SFX p 0 less [aeiou]y
+! SFX p 0 ess ll
+! SFX p 0 less [^l]l
+! SFX p 0 less [^ly]
+ SFX Q Y 88
+! SFX Q 0 tise a
+! SFX Q e ise [^l]e
+! SFX Q le ilise [^aeiou]le
+! SFX Q e ise [aeiou]le
+! SFX Q um ise um
+! SFX Q 0 ise [^u]m
+! SFX Q s se is
+! SFX Q 0 ise [^i]s
+! SFX Q y ise [^aeiou]y
+! SFX Q 0 ise [aeiou]y
+! SFX Q 0 ise [^aemsy]
+! SFX Q 0 tises a
+! SFX Q e ises [^l]e
+! SFX Q le ilises [^aeiou]le
+! SFX Q e ises [aeiou]le
+! SFX Q um ises um
+! SFX Q 0 ises [^u]m
+! SFX Q s ses is
+! SFX Q 0 ises [^i]s
+! SFX Q y ises [^aeiou]y
+! SFX Q 0 ises [aeiou]y
+! SFX Q 0 ises [^aemsy]
+! SFX Q 0 tised a
+! SFX Q e ised [^l]e
+! SFX Q le ilised [^aeiou]le
+! SFX Q e ised [aeiou]le
+! SFX Q um ised um
+! SFX Q 0 ised [^u]m
+! SFX Q s sed is
+! SFX Q 0 ised [^i]s
+! SFX Q y ised [^aeiou]y
+! SFX Q 0 ised [aeiou]y
+! SFX Q 0 ised [^aemsy]
+! SFX Q 0 tising a
+! SFX Q e ising [^l]e
+! SFX Q le ilising [^aeiou]le
+! SFX Q e ising [aeiou]le
+! SFX Q um ising um
+! SFX Q 0 ising [^u]m
+! SFX Q s sing is
+! SFX Q 0 ising [^i]s
+! SFX Q y ising [^aeiou]y
+! SFX Q 0 ising [aeiou]y
+! SFX Q 0 ising [^aemsy]
+! SFX Q 0 tize a
+! SFX Q e ize [^l]e
+! SFX Q le ilize [^aeiou]le
+! SFX Q e ize [aeiou]le
+! SFX Q um ize um
+! SFX Q 0 ize [^u]m
+! SFX Q s ze is
+! SFX Q 0 ize [^i]s
+! SFX Q y ize [^aeiou]y
+! SFX Q 0 ize [aeiou]y
+! SFX Q 0 ize [^aemsy]
+! SFX Q 0 tizes a
+! SFX Q e izes [^l]e
+! SFX Q le ilizes [^aeiou]le
+! SFX Q e izes [aeiou]le
+! SFX Q um izes um
+! SFX Q 0 izes [^u]m
+! SFX Q s zes is
+! SFX Q 0 izes [^i]s
+! SFX Q y izes [^aeiou]y
+! SFX Q 0 izes [aeiou]y
+! SFX Q 0 izes [^aemsy]
+! SFX Q 0 tized a
+! SFX Q e ized [^l]e
+! SFX Q le ilized [^aeiou]le
+! SFX Q e ized [aeiou]le
+! SFX Q um ized um
+! SFX Q 0 ized [^u]m
+! SFX Q s zed is
+! SFX Q 0 ized [^i]s
+! SFX Q y ized [^aeiou]y
+! SFX Q 0 ized [aeiou]y
+! SFX Q 0 ized [^aemsy]
+! SFX Q 0 tizing a
+! SFX Q e izing [^l]e
+! SFX Q le ilizing [^aeiou]le
+! SFX Q e izing [aeiou]le
+! SFX Q um izing um
+! SFX Q 0 izing [^u]m
+! SFX Q s zing is
+! SFX Q 0 izing [^i]s
+! SFX Q y izing [^aeiou]y
+! SFX Q 0 izing [aeiou]y
+! SFX Q 0 izing [^aemsy]
+ SFX q Y 44
+! SFX q 0 tisation a
+! SFX q e isation [^l]e
+! SFX q le ilisation [^aeiou]le
+! SFX q e isation [aeiou]le
+! SFX q um isation um
+! SFX q 0 isation [^u]m
+! SFX q s sation is
+! SFX q 0 isation [^i]s
+! SFX q y isation [^aeiou]y
+! SFX q 0 isation [aeiou]y
+! SFX q 0 isation [^aemsy]
+! SFX q 0 tisations a
+! SFX q e isations [^l]e
+! SFX q le ilisations [^aeiou]le
+! SFX q e isations [aeiou]le
+! SFX q um isations um
+! SFX q 0 isations [^u]m
+! SFX q s sations is
+! SFX q 0 isations [^i]s
+! SFX q y isations [^aeiou]y
+! SFX q 0 isations [aeiou]y
+! SFX q 0 isations [^aemsy]
+! SFX q 0 tization a
+! SFX q e ization [^l]e
+! SFX q le ilization [^aeiou]le
+! SFX q e ization [aeiou]le
+! SFX q um ization um
+! SFX q 0 ization [^u]m
+! SFX q s zation is
+! SFX q 0 ization [^i]s
+! SFX q y ization [^aeiou]y
+! SFX q 0 ization [aeiou]y
+! SFX q 0 ization [^aemsy]
+! SFX q 0 tizations a
+! SFX q e izations [^l]e
+! SFX q le ilizations [^aeiou]le
+! SFX q e izations [aeiou]le
+! SFX q um izations um
+! SFX q 0 izations [^u]m
+! SFX q s zations is
+! SFX q 0 izations [^i]s
+! SFX q y izations [^aeiou]y
+! SFX q 0 izations [aeiou]y
+! SFX q 0 izations [^aemsy]
+ SFX s Y 66
+! SFX s 0 tiser a
+! SFX s e iser [^l]e
+! SFX s le iliser [^aeiou]le
+! SFX s e iser [aeiou]le
+! SFX s um iser um
+! SFX s 0 iser [^u]m
+! SFX s s ser is
+! SFX s 0 iser [^i]s
+! SFX s y iser [^aeiou]y
+! SFX s 0 iser [aeiou]y
+! SFX s 0 iser [^aemsy]
+! SFX s 0 tisers a
+! SFX s e isers [^l]e
+! SFX s le ilisers [^aeiou]le
+! SFX s e isers [aeiou]le
+! SFX s um isers um
+! SFX s 0 isers [^u]m
+! SFX s s sers is
+! SFX s 0 isers [^i]s
+! SFX s y isers [^aeiou]y
+! SFX s 0 isers [aeiou]y
+! SFX s 0 isers [^aemsy]
+! SFX s 0 tiser's a
+! SFX s e iser's [^l]e
+! SFX s le iliser's [^aeiou]le
+! SFX s e iser's [aeiou]le
+! SFX s um iser's um
+! SFX s 0 iser's [^u]m
+! SFX s s ser's is
+! SFX s 0 iser's [^i]s
+! SFX s y iser's [^aeiou]y
+! SFX s 0 iser's [aeiou]y
+! SFX s 0 iser's [^aemsy]
+! SFX s 0 tizer a
+! SFX s e izer [^l]e
+! SFX s le ilizer [^aeiou]le
+! SFX s e izer [aeiou]le
+! SFX s um izer um
+! SFX s 0 izer [^u]m
+! SFX s s zer is
+! SFX s 0 izer [^i]s
+! SFX s y izer [^aeiou]y
+! SFX s 0 izer [aeiou]y
+! SFX s 0 izer [^aemsy]
+! SFX s 0 tizers a
+! SFX s e izers [^l]e
+! SFX s le ilizers [^aeiou]le
+! SFX s e izers [aeiou]le
+! SFX s um izers um
+! SFX s 0 izers [^u]m
+! SFX s s zers is
+! SFX s 0 izers [^i]s
+! SFX s y izers [^aeiou]y
+! SFX s 0 izers [aeiou]y
+! SFX s 0 izers [^aemsy]
+! SFX s 0 tizer's a
+! SFX s e izer's [^l]e
+! SFX s le ilizer's [^aeiou]le
+! SFX s e izer's [aeiou]le
+! SFX s um izer's um
+! SFX s 0 izer's [^u]m
+! SFX s s zer's is
+! SFX s 0 izer's [^i]s
+! SFX s y izer's [^aeiou]y
+! SFX s 0 izer's [aeiou]y
+! SFX s 0 izer's [^aemsy]
+ SFX t Y 44
+! SFX t 0 tisable a
+! SFX t e isable [^l]e
+! SFX t le ilisable [^aeiou]le
+! SFX t e isable [aeiou]le
+! SFX t um isable um
+! SFX t 0 isable [^u]m
+! SFX t s sable is
+! SFX t 0 isable [^i]s
+! SFX t y isable [^aeiou]y
+! SFX t 0 isable [aeiou]y
+! SFX t 0 isable [^aemsy]
+! SFX t 0 tizable a
+! SFX t e izable [^l]e
+! SFX t le ilizable [^aeiou]le
+! SFX t e izable [aeiou]le
+! SFX t um izable um
+! SFX t 0 izable [^u]m
+! SFX t s zable is
+! SFX t 0 izable [^i]s
+! SFX t y izable [^aeiou]y
+! SFX t 0 izable [aeiou]y
+! SFX t 0 izable [^aemsy]
+! SFX t 0 tisability a
+! SFX t e isability [^l]e
+! SFX t le ilisability [^aeiou]le
+! SFX t e isability [aeiou]le
+! SFX t um isability um
+! SFX t 0 isability [^u]m
+! SFX t s sability is
+! SFX t 0 isability [^i]s
+! SFX t y isability [^aeiou]y
+! SFX t 0 isability [aeiou]y
+! SFX t 0 isability [^aemsy]
+! SFX t 0 tizability a
+! SFX t e izability [^l]e
+! SFX t le ilizability [^aeiou]le
+! SFX t e izability [aeiou]le
+! SFX t um izability um
+! SFX t 0 izability [^u]m
+! SFX t s zability is
+! SFX t 0 izability [^i]s
+! SFX t y izability [^aeiou]y
+! SFX t 0 izability [aeiou]y
+! SFX t 0 izability [^aemsy]
+ SFX M Y 1
+! SFX M 0 's .
+ SFX B Y 48
+! SFX B e able [^acegilotu]e
+! SFX B 0 able [acegilou]e
+! SFX B te ble ate
+! SFX B e able [^a]te
+! SFX B 0 bable [^aeio][aeiou]b
+! SFX B 0 kable [^aeio][aeiou]c
+! SFX B 0 dable [^aeio][aeiou]d
+! SFX B 0 fable [^aeio][aeiou]f
+! SFX B 0 gable [^aeio][aeiou]g
+! SFX B 0 kable [^aeio][aeiou]k
+! SFX B 0 lable [^aeio][aeiou]l
+! SFX B 0 mable [^aeio][aeiou]m
+! SFX B 0 nable [^aeio][aeiou]n
+! SFX B 0 pable [^aeio][aeiou]p
+! SFX B 0 rable [^aeio][aeiou]r
+! SFX B 0 sable [^aeio][aeiou]s
+! SFX B 0 table [^aeio][aeiou]t
+! SFX B 0 vable [^aeio][aeiou]v
+! SFX B 0 zable [^aeio][aeiou]z
+! SFX B 0 able [aeio][aeiou][bcdfgklmnprstvz]
+! SFX B 0 able [^aeiou][bcdfgklmnprstvz]
+! SFX B y iable [^aeiou]y
+! SFX B 0 able [aeiou]y
+! SFX B 0 able [^ebcdfgklmnprstvzy]
+! SFX B e ability [^acegilotu]e
+! SFX B 0 ability [acegilou]e
+! SFX B te bility ate
+! SFX B e ability [^a]te
+! SFX B 0 bability [^aeio][aeiou]b
+! SFX B 0 kability [^aeio][aeiou]c
+! SFX B 0 dability [^aeio][aeiou]d
+! SFX B 0 fability [^aeio][aeiou]f
+! SFX B 0 gability [^aeio][aeiou]g
+! SFX B 0 kability [^aeio][aeiou]k
+! SFX B 0 lability [^aeio][aeiou]l
+! SFX B 0 mability [^aeio][aeiou]m
+! SFX B 0 nability [^aeio][aeiou]n
+! SFX B 0 pability [^aeio][aeiou]p
+! SFX B 0 rability [^aeio][aeiou]r
+! SFX B 0 sability [^aeio][aeiou]s
+! SFX B 0 tability [^aeio][aeiou]t
+! SFX B 0 vability [^aeio][aeiou]v
+! SFX B 0 zability [^aeio][aeiou]z
+! SFX B 0 ability [aeio][aeiou][bcdfgklmnprstvz]
+! SFX B 0 ability [^aeiou][bcdfgklmnprstvz]
+! SFX B y iability [^aeiou]y
+! SFX B 0 ability [aeiou]y
+! SFX B 0 ability [^ebcdfgklmnprstvzy]
+ SFX 7 Y 9
+! SFX 7 e able [acegilou]e
+! SFX 7 0 able [^acegilou]e
+! SFX 7 0 kable [^aeio][aeiou]c
+! SFX 7 0 lable [^aeio][aeiou]l
+! SFX 7 0 able [aeio][aeiou][cl]
+! SFX 7 0 able [^aeiou][cl]
+! SFX 7 y iable [^aeiou]y
+! SFX 7 0 able [aeiou]y
+! SFX 7 0 able [^cely]
+ SFX g Y 9
+! SFX g e ability [^acegilou]e
+! SFX g 0 ability [acegilou]e
+! SFX g 0 kability [^aeio][aeiou]c
+! SFX g 0 lability [^aeio][aeiou]l
+! SFX g 0 ability [aeio][aeiou][cl]
+! SFX g 0 ability [^aeiou][cl]
+! SFX g y iability [^aeiou]y
+! SFX g 0 ability [aeiou]y
+! SFX g 0 ability [^cely]
+ SFX l Y 9
+! SFX l e ably [^acegilou]e
+! SFX l 0 ably [acegilou]e
+! SFX l 0 kably [^aeio][aeiou]c
+! SFX l 0 lably [^aeio][aeiou]l
+! SFX l 0 ably [aeio][aeiou][cl]
+! SFX l 0 ably [^aeiou][cl]
+! SFX l y iably [^aeiou]y
+! SFX l 0 ably [aeiou]y
+! SFX l 0 ably [^cely]
+ SFX b Y 3
+! SFX b e ible [^aeiou]e
+! SFX b 0 ible [aeiou]e
+! SFX b 0 ible [^e]
+ SFX L Y 12
+! SFX L 0 ament m
+! SFX L y iment [^aeiou]y
+! SFX L 0 ment [aeiou]y
+! SFX L 0 ment [^my]
+! SFX L 0 aments m
+! SFX L y iments [^aeiou]y
+! SFX L 0 ments [aeiou]y
+! SFX L 0 ments [^my]
+! SFX L 0 ament's m
+! SFX L y iment's [^aeiou]y
+! SFX L 0 ment's [aeiou]y
+! SFX L 0 ment's [^my]
+ SFX Z Y 22
+! SFX Z e y [^aeiouy]e
+! SFX Z 0 y [aeiouy]e
+! SFX Z 0 ey [aiouy]
+! SFX Z 0 by [^aeio][aeiou]b
+! SFX Z 0 ky [^aeio][aeiou]c
+! SFX Z 0 dy [^aeio][aeiou]d
+! SFX Z 0 fy [^aeio][aeiou]f
+! SFX Z 0 gy [^aeio][aeiou]g
+! SFX Z 0 ky [^aeio][aeiou]k
+! SFX Z 0 ly [^aeio][aeiou]l
+! SFX Z 0 my [^aeio][aeiou]m
+! SFX Z 0 ny [^aeio][aiou]n
+! SFX Z 0 py [^aeio][aeiou]p
+! SFX Z 0 ry [^aeio][aiou]r
+! SFX Z 0 sy [^aeio][aeiou]s
+! SFX Z 0 ty [^aeio][aiou]t
+! SFX Z 0 vy [^aeio][aeiou]v
+! SFX Z 0 zy [^aeio][aeiou]z
+! SFX Z 0 y [^aeio]e[nrt]
+! SFX Z 0 y [aeio][aeiou][bcdfgklmnprstvz]
+! SFX Z 0 y [^aeiou][bcdfgklmnprstvz]
+! SFX Z 0 y [^aebcdfgiklmnoprstuvyz]
+ SFX 2 Y 21
+! SFX 2 e iness [^aeiouy]e
+! SFX 2 0 iness [aeiouy]e
+! SFX 2 0 biness [^aeio][aeiou]b
+! SFX 2 0 kiness [^aeio][aeiou]c
+! SFX 2 0 diness [^aeio][aeiou]d
+! SFX 2 0 finess [^aeio][aeiou]f
+! SFX 2 0 giness [^aeio][aeiou]g
+! SFX 2 0 kiness [^aeio][aeiou]k
+! SFX 2 0 liness [^aeio][aeiou]l
+! SFX 2 0 miness [^aeio][aeiou]m
+! SFX 2 0 niness [^aeio][aiou]n
+! SFX 2 0 piness [^aeio][aeiou]p
+! SFX 2 0 riness [^aeio][aiou]r
+! SFX 2 0 siness [^aeio][aeiou]s
+! SFX 2 0 tiness [^aeio][aiou]t
+! SFX 2 0 viness [^aeio][aeiou]v
+! SFX 2 0 ziness [^aeio][aeiou]z
+! SFX 2 0 iness [^aeio]e[nrt]
+! SFX 2 0 iness [aeio][aeiou][bcdfgklmnprstvz]
+! SFX 2 0 iness [^aeiou][bcdfgklmnprstvz]
+! SFX 2 0 iness [^ebcdfgklmnprstvz]
+ SFX z Y 24
+! SFX z e ily [^aeiouy]e
+! SFX z 0 ily [aeiouy]e
+! SFX z 0 ily [aiou]y
+! SFX z ey ily ey
+! SFX z y ily [^aeiou]y
+! SFX z 0 bily [^aeio][aeiou]b
+! SFX z 0 kily [^aeio][aeiou]c
+! SFX z 0 dily [^aeio][aeiou]d
+! SFX z 0 fily [^aeio][aeiou]f
+! SFX z 0 gily [^aeio][aeiou]g
+! SFX z 0 kily [^aeio][aeiou]k
+! SFX z 0 lily [^aeio][aeiou]l
+! SFX z 0 mily [^aeio][aeiou]m
+! SFX z 0 nily [^aeio][aiou]n
+! SFX z 0 pily [^aeio][aeiou]p
+! SFX z 0 rily [^aeio][aiou]r
+! SFX z 0 sily [^aeio][aeiou]s
+! SFX z 0 tily [^aeio][aiou]t
+! SFX z 0 vily [^aeio][aeiou]v
+! SFX z 0 zily [^aeio][aeiou]z
+! SFX z 0 ily [^aeio]e[nrt]
+! SFX z 0 ily [aeio][aeiou][bcdfgklmnprstvyz]
+! SFX z 0 ily [^aeiou][bcdfgklmnprstvyz]
+! SFX z 0 ily [^ebcdfgklmnprstvyz]
+ SFX y Y 15
+! SFX y e ory te
+! SFX y e atory [mr]e
+! SFX y e ary se
+! SFX y 0 ry [^mrst]e
+! SFX y 0 ory [^aeous]t
+! SFX y 0 ry [aeous]t
+! SFX y 0 ery h
+! SFX y 0 atory [^i]m
+! SFX y im matory im
+! SFX y 0 ory s
+! SFX y 0 ary ion
+! SFX y 0 ry [^i]on
+! SFX y 0 nery [aiu]n
+! SFX y 0 ry [^aiou]n
+! SFX y 0 ry [^ehmstn]
+ SFX O Y 12
+! SFX O 0 l a
+! SFX O e al [^bcgv]e
+! SFX O e ial [bcgv]e
+! SFX O 0 ial [bcrx]
+! SFX O um al um
+! SFX O 0 al [^u]m
+! SFX O y al ty
+! SFX O y ial [^t]y
+! SFX O 0 ual [px]t
+! SFX O 0 tal [iu]t
+! SFX O 0 al [^ipux]t
+! SFX O 0 al [^aebcrtxmy]
+ SFX o Y 12
+! SFZ o 0 lly a
+! SFX o e ally [^bcgv]e
+! SFX o e ially [bcgv]e
+! SFX o 0 ially [bcrx]
+! SFX o um ally um
+! SFX o 0 ally [^u]m
+! SFX o y ally ty
+! SFX o y ially [^t]y
+! SFX o 0 ually [px]t
+! SFX o 0 tally [iu]t
+! SFX o 0 ally [^ipux]t
+! SFX o 0 ally [^aebcrtxmy]
+ SFX W Y 21
+! SFX W ce tific ce
+! SFX W e atic me
+! SFX W se tic se
+! SFX W le ic ble
+! SFX W e ic [^b]le
+! SFX W e ic [^clms]e
+! SFX W 0 lic [ay]l
+! SFX W 0 ic [^ay]l
+! SFX W us ic us
+! SFX W 0 tic [^u]s
+! SFX W er ric er
+! SFX W 0 ic [^e]r
+! SFX W 0 atic [aeiou]m
+! SFX W 0 ic [^aeiou]m
+! SFX W 0 tic ma
+! SFX W a ic [^m]a
+! SFX W y etic thy
+! SFX W y ic [^t]hy
+! SFX W y tic sy
+! SFX W y ic [^hs]y
+! SFX W 0 ic [^aelmrsy]
+ SFX w Y 9
+! SFX w e ical e
+! SFX w er rical er
+! SFX w 0 ical [^e]r
+! SFX w 0 atical [aeiou]m
+! SFX w 0 ical [^aeiou]m
+! SFX w 0 tical ma
+! SFX w a ical [^m]a
+! SFX w y ical y
+! SFX w 0 ical [^aemry]
+ SFX 1 Y 9
+! SFX 1 e ically e
+! SFX 1 er rically er
+! SFX 1 0 ically [^e]r
+! SFX 1 0 atically [aeiou]m
+! SFX 1 0 ically [^aeiou]m
+! SFX 1 0 tically ma
+! SFX 1 a ically [^m]a
+! SFX 1 y ically y
+! SFX 1 0 ically [^aemry]
+ SFX 3 Y 21
+! SFX 3 e ist [^aceiou]e
+! SFX 3 ce tist ce
+! SFX 3 0 ist [aeiou]e
+! SFX 3 y ist [^aeioubp]y
+! SFX 3 0 ist [aeioubp]y
+! SFX 3 o ist o
+! SFX 3 0 ists [^eoy]
+! SFX 3 e ists [^aceiou]e
+! SFX 3 ce tists ce
+! SFX 3 0 ists [aeiou]e
+! SFX 3 y ists [^aeioubp]y
+! SFX 3 0 ists [aeioubp]y
+! SFX 3 o ists o
+! SFX 3 0 ists [^eoy]
+! SFX 3 e ist's [^aceiou]e
+! SFX 3 ce tist's ce
+! SFX 3 0 ist's [aeiou]e
+! SFX 3 y ist's [^aeioubp]y
+! SFX 3 0 ist's [aeioubp]y
+! SFX 3 o ist's o
+! SFX 3 0 ist's [^eoy]
+\ No newline at end of file
+--- 505,1190 ----
+ SFX R Y 72
+! SFX R 0 r e
+! SFX R 0 rs e
+! SFX R 0 ber [^aeio][aeiou]b
+! SFX R 0 bers [^aeio][aeiou]b
+! SFX R 0 ker [^aeio][aeiou]c
+! SFX R 0 kers [^aeio][aeiou]c
+! SFX R 0 der [^aeio][aeiou]d
+! SFX R 0 ders [^aeio][aeiou]d
+! SFX R 0 fer [^aeio][aeiou]f
+! SFX R 0 fers [^aeio][aeiou]f
+! SFX R 0 ger [^aeio][aeiou]g
+! SFX R 0 gers [^aeio][aeiou]g
+! SFX R 0 ker [^aeio][aeiou]k
+! SFX R 0 kers [^aeio][aeiou]k
+! SFX R 0 ler [^aeio][eiou]l
+! SFX R 0 er [aeio][eiou]l
+! SFX R 0 ler [^aeo]al
+! SFX R 0 er [aeo]al
+! SFX R 0 lers [^aeio][eiou]l
+! SFX R 0 ers [aeio][eiou]l
+! SFX R 0 lers [^aeo]al
+! SFX R 0 ers [aeo]al
+! SFX R 0 mer [^aeio][aeiou]m
+! SFX R 0 mers [^aeio][aeiou]m
+! SFX R 0 ner [^aeio][aeiou]n
+! SFX R 0 ners [^aeio][aeiou]n
+! SFX R 0 per [^aeio][aeiou]p
+! SFX R 0 pers [^aeio][aeiou]p
+! SFX R 0 rer [^aeio][aeiou]r
+! SFX R 0 rers [^aeio][aeiou]r
+! SFX R 0 ser [^aeio][aeiou]s
+! SFX R 0 sers [^aeio][aeiou]s
+! SFX R 0 ter [^aeio][aeiou]t
+! SFX R 0 ters [^aeio][aeiou]t
+! SFX R 0 ver [^aeio][aeiou]v
+! SFX R 0 vers [^aeio][aeiou]v
+! SFX R 0 zer [^aeio][aeiou]z
+! SFX R 0 zers [^aeio][aeiou]z
+! SFX R y ier [^aeiou]y
+! SFX R y iers [^aeiou]y
+! SFX R 0 er [aeiou]y
+! SFX R 0 ers [aeiou]y
+! SFX R 0 er [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 ers [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 er [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 ers [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 er [^ebcdfgklmnprstvyz]
+! SFX R 0 ers [^ebcdfgklmnprstvyz]
+! SFX R 0 r's e
+! SFX R 0 ber's [^aeio][aeiou]b
+! SFX R 0 ker's [^aeio][aeiou]c
+! SFX R 0 der's [^aeio][aeiou]d
+! SFX R 0 fer's [^aeio][aeiou]f
+! SFX R 0 ger's [^aeio][aeiou]g
+! SFX R 0 ker's [^aeio][aeiou]k
+! SFX R 0 ler's [^aeio][eiou]l
+! SFX R 0 er's [aeio][eiou]l
+! SFX R 0 ler's [^aeo]al
+! SFX R 0 er's [aeo]al
+! SFX R 0 mer's [^aeio][aeiou]m
+! SFX R 0 ner's [^aeio][aeiou]n
+! SFX R 0 per's [^aeio][aeiou]p
+! SFX R 0 rer's [^aeio][aeiou]r
+! SFX R 0 ser's [^aeio][aeiou]s
+! SFX R 0 ter's [^aeio][aeiou]t
+! SFX R 0 ver's [^aeio][aeiou]v
+! SFX R 0 zer's [^aeio][aeiou]z
+! SFX R y ier's [^aeiou]y
+! SFX R 0 er's [aeiou]y
+! SFX R 0 er's [aeio][aeiou][bcdfgkmnprstvz]
+! SFX R 0 er's [^aeiou][bcdfgklmnprstvz]
+! SFX R 0 er's [^ebcdfgklmnprstvyz]
+ SFX r Y 24
+! SFX r 0 r e
+! SFX r 0 ler [^aeio][aeiou]l
+! SFX r 0 ker [^aeio][aeiou]c
+! SFX r y ier [^aeiou]y
+! SFX r 0 er [aeiou]y
+! SFX r 0 er [aeio][aeiou][cl]
+! SFX r 0 er [^aeiou][cl]
+! SFX r 0 er [^ecly]
+! SFX r 0 rs e
+! SFX r 0 lers [^aeio][aeiou]l
+! SFX r 0 kers [^aeio][aeiou]c
+! SFX r y iers [^aeiou]y
+! SFX r 0 ers [aeiou]y
+! SFX r 0 ers [aeio][aeiou][cl]
+! SFX r 0 ers [^aeiou][cl]
+! SFX r 0 ers [^ecly]
+! SFX r 0 r's e
+! SFX r 0 ler's [^aeio][aeiou]l
+! SFX r 0 ker's [^aeio][aeiou]c
+! SFX r y ier's [^aeiou]y
+! SFX r 0 er's [aeiou]y
+! SFX r 0 er's [aeio][aeiou][cl]
+! SFX r 0 er's [^aeiou][cl]
+! SFX r 0 er's [^ecly]
+ SFX S Y 9
+! SFX S y ies [^aeiou]y
+! SFX S 0 s [aeiou]y
+! SFX S 0 es [sxz]
+! SFX S 0 es [cs]h
+! SFX S 0 s [^cs]h
+! SFX S 0 s [ae]u
+! SFX S 0 x [ae]u
+! SFX S 0 s [^ae]u
+ SFX S 0 s [^hsuxyz]
+ SFX P Y 6
+! SFX P y iness [^aeiou]y
+! SFX P 0 ness [aeiou]y
+! SFX P 0 ness [^y]
+! SFX P y iness's [^aeiou]y
+! SFX P 0 ness's [aeiou]y
+! SFX P 0 ness's [^y]
+ SFX m Y 20
+! SFX m 0 sman [bdknmt]
+! SFX m 0 sman [aeiou][bdklmnt]e
+! SFX m 0 man [^aeiou][bdklmnt]e
+! SFX m 0 man [^bdklmnt]e
+! SFX m 0 man [^bdeknmt]
+! SFX m 0 smen [bdknmt]
+! SFX m 0 smen [aeiou][bdklmnt]e
+! SFX m 0 men [^aeiou][bdklmnt]e
+! SFX m 0 men [^bdklmnt]e
+! SFX m 0 men [^bdeknmt]
+! SFX m 0 sman's [bdknmt]
+! SFX m 0 sman's [aeiou][bdklmnt]e
+! SFX m 0 man's [^aeiou][bdklmnt]e
+! SFX m 0 man's [^bdklmnt]e
+! SFX m 0 man's [^bdeknmt]
+! SFX m 0 smen's [bdknmt]
+! SFX m 0 smen's [aeiou][bdklmnt]e
+! SFX m 0 men's [^aeiou][bdklmnt]e
+! SFX m 0 men's [^bdklmnt]e
+! SFX m 0 men's [^bdeknmt]
+ SFX 5 Y 15
+! SFX 5 0 swoman [bdknmt]
+! SFX 5 0 swoman [aeiou][bdklmnt]e
+! SFX 5 0 woman [^aeiou][bdklmnt]e
+! SFX 5 0 woman [^bdklmnt]e
+! SFX 5 0 woman [^bdeknmt]
+! SFX 5 0 swomen [bdknmt]
+! SFX 5 0 swomen [aeiou][bdklmnt]e
+! SFX 5 0 women [^aeiou][bdklmnt]e
+! SFX 5 0 women [^bdklmnt]e
+! SFX 5 0 women [^bdeknmt]
+! SFX 5 0 swoman's [bdknmt]
+! SFX 5 0 swoman's [aeiou][bdklmnt]e
+! SFX 5 0 woman's [^aeiou][bdklmnt]e
+! SFX 5 0 woman's [^bdklmnt]e
+! SFX 5 0 woman's [^bdeknmt]
+ SFX 6 Y 3
+! SFX 6 y iful [^aeiou]y
+! SFX 6 0 ful [aeiou]y
+! SFX 6 0 ful [^y]
+ SFX j Y 3
+! SFX j y ifully [^aeiou]y
+! SFX j 0 fully [aeiou]y
+! SFX j 0 fully [^y]
+ SFX p Y 5
+! SFX p y iless [^aeiou]y
+! SFX p 0 less [aeiou]y
+! SFX p 0 ess ll
+! SFX p 0 less [^l]l
+! SFX p 0 less [^ly]
+ SFX Q Y 88
+! SFX Q 0 tise a
+! SFX Q e ise [^l]e
+! SFX Q le ilise [^aeiou]le
+! SFX Q e ise [aeiou]le
+! SFX Q um ise um
+! SFX Q 0 ise [^u]m
+! SFX Q s se is
+! SFX Q 0 ise [^i]s
+! SFX Q y ise [^aeiou]y
+! SFX Q 0 ise [aeiou]y
+! SFX Q 0 ise [^aemsy]
+! SFX Q 0 tises a
+! SFX Q e ises [^l]e
+! SFX Q le ilises [^aeiou]le
+! SFX Q e ises [aeiou]le
+! SFX Q um ises um
+! SFX Q 0 ises [^u]m
+! SFX Q s ses is
+! SFX Q 0 ises [^i]s
+! SFX Q y ises [^aeiou]y
+! SFX Q 0 ises [aeiou]y
+! SFX Q 0 ises [^aemsy]
+! SFX Q 0 tised a
+! SFX Q e ised [^l]e
+! SFX Q le ilised [^aeiou]le
+! SFX Q e ised [aeiou]le
+! SFX Q um ised um
+! SFX Q 0 ised [^u]m
+! SFX Q s sed is
+! SFX Q 0 ised [^i]s
+! SFX Q y ised [^aeiou]y
+! SFX Q 0 ised [aeiou]y
+! SFX Q 0 ised [^aemsy]
+! SFX Q 0 tising a
+! SFX Q e ising [^l]e
+! SFX Q le ilising [^aeiou]le
+! SFX Q e ising [aeiou]le
+! SFX Q um ising um
+! SFX Q 0 ising [^u]m
+! SFX Q s sing is
+! SFX Q 0 ising [^i]s
+! SFX Q y ising [^aeiou]y
+! SFX Q 0 ising [aeiou]y
+! SFX Q 0 ising [^aemsy]
+! SFX Q 0 tize a
+! SFX Q e ize [^l]e
+! SFX Q le ilize [^aeiou]le
+! SFX Q e ize [aeiou]le
+! SFX Q um ize um
+! SFX Q 0 ize [^u]m
+! SFX Q s ze is
+! SFX Q 0 ize [^i]s
+! SFX Q y ize [^aeiou]y
+! SFX Q 0 ize [aeiou]y
+! SFX Q 0 ize [^aemsy]
+! SFX Q 0 tizes a
+! SFX Q e izes [^l]e
+! SFX Q le ilizes [^aeiou]le
+! SFX Q e izes [aeiou]le
+! SFX Q um izes um
+! SFX Q 0 izes [^u]m
+! SFX Q s zes is
+! SFX Q 0 izes [^i]s
+! SFX Q y izes [^aeiou]y
+! SFX Q 0 izes [aeiou]y
+! SFX Q 0 izes [^aemsy]
+! SFX Q 0 tized a
+! SFX Q e ized [^l]e
+! SFX Q le ilized [^aeiou]le
+! SFX Q e ized [aeiou]le
+! SFX Q um ized um
+! SFX Q 0 ized [^u]m
+! SFX Q s zed is
+! SFX Q 0 ized [^i]s
+! SFX Q y ized [^aeiou]y
+! SFX Q 0 ized [aeiou]y
+! SFX Q 0 ized [^aemsy]
+! SFX Q 0 tizing a
+! SFX Q e izing [^l]e
+! SFX Q le ilizing [^aeiou]le
+! SFX Q e izing [aeiou]le
+! SFX Q um izing um
+! SFX Q 0 izing [^u]m
+! SFX Q s zing is
+! SFX Q 0 izing [^i]s
+! SFX Q y izing [^aeiou]y
+! SFX Q 0 izing [aeiou]y
+! SFX Q 0 izing [^aemsy]
+ SFX q Y 44
+! SFX q 0 tisation a
+! SFX q e isation [^l]e
+! SFX q le ilisation [^aeiou]le
+! SFX q e isation [aeiou]le
+! SFX q um isation um
+! SFX q 0 isation [^u]m
+! SFX q s sation is
+! SFX q 0 isation [^i]s
+! SFX q y isation [^aeiou]y
+! SFX q 0 isation [aeiou]y
+! SFX q 0 isation [^aemsy]
+! SFX q 0 tisations a
+! SFX q e isations [^l]e
+! SFX q le ilisations [^aeiou]le
+! SFX q e isations [aeiou]le
+! SFX q um isations um
+! SFX q 0 isations [^u]m
+! SFX q s sations is
+! SFX q 0 isations [^i]s
+! SFX q y isations [^aeiou]y
+! SFX q 0 isations [aeiou]y
+! SFX q 0 isations [^aemsy]
+! SFX q 0 tization a
+! SFX q e ization [^l]e
+! SFX q le ilization [^aeiou]le
+! SFX q e ization [aeiou]le
+! SFX q um ization um
+! SFX q 0 ization [^u]m
+! SFX q s zation is
+! SFX q 0 ization [^i]s
+! SFX q y ization [^aeiou]y
+! SFX q 0 ization [aeiou]y
+! SFX q 0 ization [^aemsy]
+! SFX q 0 tizations a
+! SFX q e izations [^l]e
+! SFX q le ilizations [^aeiou]le
+! SFX q e izations [aeiou]le
+! SFX q um izations um
+! SFX q 0 izations [^u]m
+! SFX q s zations is
+! SFX q 0 izations [^i]s
+! SFX q y izations [^aeiou]y
+! SFX q 0 izations [aeiou]y
+! SFX q 0 izations [^aemsy]
+ SFX s Y 66
+! SFX s 0 tiser a
+! SFX s e iser [^l]e
+! SFX s le iliser [^aeiou]le
+! SFX s e iser [aeiou]le
+! SFX s um iser um
+! SFX s 0 iser [^u]m
+! SFX s s ser is
+! SFX s 0 iser [^i]s
+! SFX s y iser [^aeiou]y
+! SFX s 0 iser [aeiou]y
+! SFX s 0 iser [^aemsy]
+! SFX s 0 tisers a
+! SFX s e isers [^l]e
+! SFX s le ilisers [^aeiou]le
+! SFX s e isers [aeiou]le
+! SFX s um isers um
+! SFX s 0 isers [^u]m
+! SFX s s sers is
+! SFX s 0 isers [^i]s
+! SFX s y isers [^aeiou]y
+! SFX s 0 isers [aeiou]y
+! SFX s 0 isers [^aemsy]
+! SFX s 0 tiser's a
+! SFX s e iser's [^l]e
+! SFX s le iliser's [^aeiou]le
+! SFX s e iser's [aeiou]le
+! SFX s um iser's um
+! SFX s 0 iser's [^u]m
+! SFX s s ser's is
+! SFX s 0 iser's [^i]s
+! SFX s y iser's [^aeiou]y
+! SFX s 0 iser's [aeiou]y
+! SFX s 0 iser's [^aemsy]
+! SFX s 0 tizer a
+! SFX s e izer [^l]e
+! SFX s le ilizer [^aeiou]le
+! SFX s e izer [aeiou]le
+! SFX s um izer um
+! SFX s 0 izer [^u]m
+! SFX s s zer is
+! SFX s 0 izer [^i]s
+! SFX s y izer [^aeiou]y
+! SFX s 0 izer [aeiou]y
+! SFX s 0 izer [^aemsy]
+! SFX s 0 tizers a
+! SFX s e izers [^l]e
+! SFX s le ilizers [^aeiou]le
+! SFX s e izers [aeiou]le
+! SFX s um izers um
+! SFX s 0 izers [^u]m
+! SFX s s zers is
+! SFX s 0 izers [^i]s
+! SFX s y izers [^aeiou]y
+! SFX s 0 izers [aeiou]y
+! SFX s 0 izers [^aemsy]
+! SFX s 0 tizer's a
+! SFX s e izer's [^l]e
+! SFX s le ilizer's [^aeiou]le
+! SFX s e izer's [aeiou]le
+! SFX s um izer's um
+! SFX s 0 izer's [^u]m
+! SFX s s zer's is
+! SFX s 0 izer's [^i]s
+! SFX s y izer's [^aeiou]y
+! SFX s 0 izer's [aeiou]y
+! SFX s 0 izer's [^aemsy]
+ SFX t Y 44
+! SFX t 0 tisable a
+! SFX t e isable [^l]e
+! SFX t le ilisable [^aeiou]le
+! SFX t e isable [aeiou]le
+! SFX t um isable um
+! SFX t 0 isable [^u]m
+! SFX t s sable is
+! SFX t 0 isable [^i]s
+! SFX t y isable [^aeiou]y
+! SFX t 0 isable [aeiou]y
+! SFX t 0 isable [^aemsy]
+! SFX t 0 tizable a
+! SFX t e izable [^l]e
+! SFX t le ilizable [^aeiou]le
+! SFX t e izable [aeiou]le
+! SFX t um izable um
+! SFX t 0 izable [^u]m
+! SFX t s zable is
+! SFX t 0 izable [^i]s
+! SFX t y izable [^aeiou]y
+! SFX t 0 izable [aeiou]y
+! SFX t 0 izable [^aemsy]
+! SFX t 0 tisability a
+! SFX t e isability [^l]e
+! SFX t le ilisability [^aeiou]le
+! SFX t e isability [aeiou]le
+! SFX t um isability um
+! SFX t 0 isability [^u]m
+! SFX t s sability is
+! SFX t 0 isability [^i]s
+! SFX t y isability [^aeiou]y
+! SFX t 0 isability [aeiou]y
+! SFX t 0 isability [^aemsy]
+! SFX t 0 tizability a
+! SFX t e izability [^l]e
+! SFX t le ilizability [^aeiou]le
+! SFX t e izability [aeiou]le
+! SFX t um izability um
+! SFX t 0 izability [^u]m
+! SFX t s zability is
+! SFX t 0 izability [^i]s
+! SFX t y izability [^aeiou]y
+! SFX t 0 izability [aeiou]y
+! SFX t 0 izability [^aemsy]
+ SFX M Y 1
+! SFX M 0 's .
+ SFX B Y 48
+! SFX B e able [^acegilotu]e
+! SFX B 0 able [acegilou]e
+! SFX B te ble ate
+! SFX B e able [^a]te
+! SFX B 0 bable [^aeio][aeiou]b
+! SFX B 0 kable [^aeio][aeiou]c
+! SFX B 0 dable [^aeio][aeiou]d
+! SFX B 0 fable [^aeio][aeiou]f
+! SFX B 0 gable [^aeio][aeiou]g
+! SFX B 0 kable [^aeio][aeiou]k
+! SFX B 0 lable [^aeio][aeiou]l
+! SFX B 0 mable [^aeio][aeiou]m
+! SFX B 0 nable [^aeio][aeiou]n
+! SFX B 0 pable [^aeio][aeiou]p
+! SFX B 0 rable [^aeio][aeiou]r
+! SFX B 0 sable [^aeio][aeiou]s
+! SFX B 0 table [^aeio][aeiou]t
+! SFX B 0 vable [^aeio][aeiou]v
+! SFX B 0 zable [^aeio][aeiou]z
+! SFX B 0 able [aeio][aeiou][bcdfgklmnprstvz]
+! SFX B 0 able [^aeiou][bcdfgklmnprstvz]
+! SFX B y iable [^aeiou]y
+! SFX B 0 able [aeiou]y
+! SFX B 0 able [^ebcdfgklmnprstvzy]
+! SFX B e ability [^acegilotu]e
+! SFX B 0 ability [acegilou]e
+! SFX B te bility ate
+! SFX B e ability [^a]te
+! SFX B 0 bability [^aeio][aeiou]b
+! SFX B 0 kability [^aeio][aeiou]c
+! SFX B 0 dability [^aeio][aeiou]d
+! SFX B 0 fability [^aeio][aeiou]f
+! SFX B 0 gability [^aeio][aeiou]g
+! SFX B 0 kability [^aeio][aeiou]k
+! SFX B 0 lability [^aeio][aeiou]l
+! SFX B 0 mability [^aeio][aeiou]m
+! SFX B 0 nability [^aeio][aeiou]n
+! SFX B 0 pability [^aeio][aeiou]p
+! SFX B 0 rability [^aeio][aeiou]r
+! SFX B 0 sability [^aeio][aeiou]s
+! SFX B 0 tability [^aeio][aeiou]t
+! SFX B 0 vability [^aeio][aeiou]v
+! SFX B 0 zability [^aeio][aeiou]z
+! SFX B 0 ability [aeio][aeiou][bcdfgklmnprstvz]
+! SFX B 0 ability [^aeiou][bcdfgklmnprstvz]
+! SFX B y iability [^aeiou]y
+! SFX B 0 ability [aeiou]y
+! SFX B 0 ability [^ebcdfgklmnprstvzy]
+ SFX 7 Y 9
+! SFX 7 e able [acegilou]e
+! SFX 7 0 able [^acegilou]e
+! SFX 7 0 kable [^aeio][aeiou]c
+! SFX 7 0 lable [^aeio][aeiou]l
+! SFX 7 0 able [aeio][aeiou][cl]
+! SFX 7 0 able [^aeiou][cl]
+! SFX 7 y iable [^aeiou]y
+! SFX 7 0 able [aeiou]y
+! SFX 7 0 able [^cely]
+ SFX g Y 9
+! SFX g e ability [^acegilou]e
+! SFX g 0 ability [acegilou]e
+! SFX g 0 kability [^aeio][aeiou]c
+! SFX g 0 lability [^aeio][aeiou]l
+! SFX g 0 ability [aeio][aeiou][cl]
+! SFX g 0 ability [^aeiou][cl]
+! SFX g y iability [^aeiou]y
+! SFX g 0 ability [aeiou]y
+! SFX g 0 ability [^cely]
+ SFX l Y 9
+! SFX l e ably [^acegilou]e
+! SFX l 0 ably [acegilou]e
+! SFX l 0 kably [^aeio][aeiou]c
+! SFX l 0 lably [^aeio][aeiou]l
+! SFX l 0 ably [aeio][aeiou][cl]
+! SFX l 0 ably [^aeiou][cl]
+! SFX l y iably [^aeiou]y
+! SFX l 0 ably [aeiou]y
+! SFX l 0 ably [^cely]
+ SFX b Y 3
+! SFX b e ible [^aeiou]e
+! SFX b 0 ible [aeiou]e
+! SFX b 0 ible [^e]
+ SFX L Y 12
+! SFX L 0 ament m
+! SFX L y iment [^aeiou]y
+! SFX L 0 ment [aeiou]y
+! SFX L 0 ment [^my]
+! SFX L 0 aments m
+! SFX L y iments [^aeiou]y
+! SFX L 0 ments [aeiou]y
+! SFX L 0 ments [^my]
+! SFX L 0 ament's m
+! SFX L y iment's [^aeiou]y
+! SFX L 0 ment's [aeiou]y
+! SFX L 0 ment's [^my]
+ SFX Z Y 22
+! SFX Z e y [^aeiouy]e
+! SFX Z 0 y [aeiouy]e
+! SFX Z 0 ey [aiouy]
+! SFX Z 0 by [^aeio][aeiou]b
+! SFX Z 0 ky [^aeio][aeiou]c
+! SFX Z 0 dy [^aeio][aeiou]d
+! SFX Z 0 fy [^aeio][aeiou]f
+! SFX Z 0 gy [^aeio][aeiou]g
+! SFX Z 0 ky [^aeio][aeiou]k
+! SFX Z 0 ly [^aeio][aeiou]l
+! SFX Z 0 my [^aeio][aeiou]m
+! SFX Z 0 ny [^aeio][aiou]n
+! SFX Z 0 py [^aeio][aeiou]p
+! SFX Z 0 ry [^aeio][aiou]r
+! SFX Z 0 sy [^aeio][aeiou]s
+! SFX Z 0 ty [^aeio][aiou]t
+! SFX Z 0 vy [^aeio][aeiou]v
+! SFX Z 0 zy [^aeio][aeiou]z
+! SFX Z 0 y [^aeio]e[nrt]
+! SFX Z 0 y [aeio][aeiou][bcdfgklmnprstvz]
+! SFX Z 0 y [^aeiou][bcdfgklmnprstvz]
+! SFX Z 0 y [^aebcdfgiklmnoprstuvyz]
+ SFX 2 Y 21
+! SFX 2 e iness [^aeiouy]e
+! SFX 2 0 iness [aeiouy]e
+! SFX 2 0 biness [^aeio][aeiou]b
+! SFX 2 0 kiness [^aeio][aeiou]c
+! SFX 2 0 diness [^aeio][aeiou]d
+! SFX 2 0 finess [^aeio][aeiou]f
+! SFX 2 0 giness [^aeio][aeiou]g
+! SFX 2 0 kiness [^aeio][aeiou]k
+! SFX 2 0 liness [^aeio][aeiou]l
+! SFX 2 0 miness [^aeio][aeiou]m
+! SFX 2 0 niness [^aeio][aiou]n
+! SFX 2 0 piness [^aeio][aeiou]p
+! SFX 2 0 riness [^aeio][aiou]r
+! SFX 2 0 siness [^aeio][aeiou]s
+! SFX 2 0 tiness [^aeio][aiou]t
+! SFX 2 0 viness [^aeio][aeiou]v
+! SFX 2 0 ziness [^aeio][aeiou]z
+! SFX 2 0 iness [^aeio]e[nrt]
+! SFX 2 0 iness [aeio][aeiou][bcdfgklmnprstvz]
+! SFX 2 0 iness [^aeiou][bcdfgklmnprstvz]
+! SFX 2 0 iness [^ebcdfgklmnprstvz]
+ SFX z Y 24
+! SFX z e ily [^aeiouy]e
+! SFX z 0 ily [aeiouy]e
+! SFX z 0 ily [aiou]y
+! SFX z ey ily ey
+! SFX z y ily [^aeiou]y
+! SFX z 0 bily [^aeio][aeiou]b
+! SFX z 0 kily [^aeio][aeiou]c
+! SFX z 0 dily [^aeio][aeiou]d
+! SFX z 0 fily [^aeio][aeiou]f
+! SFX z 0 gily [^aeio][aeiou]g
+! SFX z 0 kily [^aeio][aeiou]k
+! SFX z 0 lily [^aeio][aeiou]l
+! SFX z 0 mily [^aeio][aeiou]m
+! SFX z 0 nily [^aeio][aiou]n
+! SFX z 0 pily [^aeio][aeiou]p
+! SFX z 0 rily [^aeio][aiou]r
+! SFX z 0 sily [^aeio][aeiou]s
+! SFX z 0 tily [^aeio][aiou]t
+! SFX z 0 vily [^aeio][aeiou]v
+! SFX z 0 zily [^aeio][aeiou]z
+! SFX z 0 ily [^aeio]e[nrt]
+! SFX z 0 ily [aeio][aeiou][bcdfgklmnprstvyz]
+! SFX z 0 ily [^aeiou][bcdfgklmnprstvyz]
+! SFX z 0 ily [^ebcdfgklmnprstvyz]
+ SFX y Y 15
+! SFX y e ory te
+! SFX y e atory [mr]e
+! SFX y e ary se
+! SFX y 0 ry [^mrst]e
+! SFX y 0 ory [^aeous]t
+! SFX y 0 ry [aeous]t
+! SFX y 0 ery h
+! SFX y 0 atory [^i]m
+! SFX y im matory im
+! SFX y 0 ory s
+! SFX y 0 ary ion
+! SFX y 0 ry [^i]on
+! SFX y 0 nery [aiu]n
+! SFX y 0 ry [^aiou]n
+! SFX y 0 ry [^ehmstn]
+ SFX O Y 12
+! SFX O 0 l a
+! SFX O e al [^bcgv]e
+! SFX O e ial [bcgv]e
+! SFX O 0 ial [bcrx]
+! SFX O um al um
+! SFX O 0 al [^u]m
+! SFX O y al ty
+! SFX O y ial [^t]y
+! SFX O 0 ual [px]t
+! SFX O 0 tal [iu]t
+! SFX O 0 al [^ipux]t
+! SFX O 0 al [^aebcrtxmy]
+ SFX o Y 12
+! SFX o 0 lly a
+! SFX o e ally [^bcgv]e
+! SFX o e ially [bcgv]e
+! SFX o 0 ially [bcrx]
+! SFX o um ally um
+! SFX o 0 ally [^u]m
+! SFX o y ally ty
+! SFX o y ially [^t]y
+! SFX o 0 ually [px]t
+! SFX o 0 tally [iu]t
+! SFX o 0 ally [^ipux]t
+! SFX o 0 ally [^aebcrtxmy]
+ SFX W Y 21
+! SFX W ce tific ce
+! SFX W e atic me
+! SFX W se tic se
+! SFX W le ic ble
+! SFX W e ic [^b]le
+! SFX W e ic [^clms]e
+! SFX W 0 lic [ay]l
+! SFX W 0 ic [^ay]l
+! SFX W us ic us
+! SFX W 0 tic [^u]s
+! SFX W er ric er
+! SFX W 0 ic [^e]r
+! SFX W 0 atic [aeiou]m
+! SFX W 0 ic [^aeiou]m
+! SFX W 0 tic ma
+! SFX W a ic [^m]a
+! SFX W y etic thy
+! SFX W y ic [^t]hy
+! SFX W y tic sy
+! SFX W y ic [^hs]y
+! SFX W 0 ic [^aelmrsy]
+ SFX w Y 9
+! SFX w e ical e
+! SFX w er rical er
+! SFX w 0 ical [^e]r
+! SFX w 0 atical [aeiou]m
+! SFX w 0 ical [^aeiou]m
+! SFX w 0 tical ma
+! SFX w a ical [^m]a
+! SFX w y ical y
+! SFX w 0 ical [^aemry]
+ SFX 1 Y 9
+! SFX 1 e ically e
+! SFX 1 er rically er
+! SFX 1 0 ically [^e]r
+! SFX 1 0 atically [aeiou]m
+! SFX 1 0 ically [^aeiou]m
+! SFX 1 0 tically ma
+! SFX 1 a ically [^m]a
+! SFX 1 y ically y
+! SFX 1 0 ically [^aemry]
+ SFX 3 Y 21
+! SFX 3 e ist [^aceiou]e
+! SFX 3 ce tist ce
+! SFX 3 0 ist [aeiou]e
+! SFX 3 y ist [^aeioubp]y
+! SFX 3 0 ist [aeioubp]y
+! SFX 3 o ist o
+! SFX 3 0 ists [^eoy]
+! SFX 3 e ists [^aceiou]e
+! SFX 3 ce tists ce
+! SFX 3 0 ists [aeiou]e
+! SFX 3 y ists [^aeioubp]y
+! SFX 3 0 ists [aeioubp]y
+! SFX 3 o ists o
+! SFX 3 0 ists [^eoy]
+! SFX 3 e ist's [^aceiou]e
+! SFX 3 ce tist's ce
+! SFX 3 0 ist's [aeiou]e
+! SFX 3 y ist's [^aeioubp]y
+! SFX 3 0 ist's [aeioubp]y
+! SFX 3 o ist's o
+! SFX 3 0 ist's [^eoy]
+*** en_NZ.orig.dic Fri Apr 15 13:20:36 2005
+--- en_NZ.dic Sun Apr 17 18:08:55 2005
+***************
+*** 2941,2944 ****
+ B.Sc.
+- bless
+- bible
+ baa/GSD
+--- 2941,2942 ----
+***************
+*** 4974,4975 ****
+--- 4972,4974 ----
+ Brampton/M
++ Bram/M
+ bran/SDGM
+***************
+*** 5707,5709 ****
+ C.Lit.
+! cation/SM
+ Ca/y
+--- 5706,5708 ----
+ C.Lit.
+! cation/MWS
+ Ca/y
+***************
+*** 6450,6452 ****
+ Cathy
+- cation/MW
+ catkin/SM
+--- 6449,6450 ----
+***************
+*** 10153,10155 ****
+ red's
+- dally
+ dab/TSGD
+--- 10151,10152 ----
+***************
+*** 12535,12536 ****
+--- 12532,12534 ----
+ Dutchwomen/M
++ Farsi
+ duteous/Y
+***************
+*** 12542,12544 ****
+ duvet/SM
+- duxes
+ DVD/MS
+--- 12540,12541 ----
+***************
+*** 14531,14534 ****
+ f-stop/S
+- fable
+- fist/MS
+ fa/M
+--- 14528,14529 ----
+***************
+*** 15323,15325 ****
+ fissure/DSMG
+! fist/6GD
+ fistfight/MS
+--- 15318,15320 ----
+ fissure/DSMG
+! fist/6GDMS
+ fistfight/MS
+***************
+*** 16606,16608 ****
+ g's
+- gable
+ gist/MS
+--- 16601,16602 ----
+***************
+*** 16797,16799 ****
+ Garvey
+- Gary/M
+ gas-permeable
+--- 16791,16792 ----
+***************
+*** 18177,18179 ****
+ gyroscope/SWM
+- dish
+ ha
+--- 18170,18171 ----
+***************
+*** 22321,22323 ****
+ K-factor
+- disk/MS
+ kabob's
+--- 22313,22314 ----
+***************
+*** 26396,26398 ****
+ Missy
+! mist/CDRGS
+ mistakable/U
+--- 26387,26389 ----
+ Missy
+! mist/CDRGSM
+ mistakable/U
+***************
+*** 26745,26746 ****
+--- 26736,26738 ----
+ Moog
++ Moolenaar/M
+ moon/MGpDS
+***************
+*** 27018,27020 ****
+ mozzarella/SM
+- MP3
+ mpg
+--- 27010,27011 ----
+***************
+*** 27365,27372 ****
+ N'Djamena
+! native
+ natively
+ nativeness
+- nation/MS
+- national
+- nationally
+ Na/M
+--- 27356,27360 ----
+ N'Djamena
+! native/SP
+ natively
+ nativeness
+ Na/M
+***************
+*** 27507,27509 ****
+ Nathaniel/M
+! nation/M
+ national/sQ3Sq
+--- 27495,27497 ----
+ Nathaniel/M
+! nation/MS
+ national/sQ3Sq
+***************
+*** 27521,27523 ****
+ nationwide
+- native/SP
+ nativity/SM
+--- 27509,27510 ----
+***************
+*** 29852,29857 ****
+ P.O.
+- ply
+- reply
+- imply
+- comply
+ pa/oM
+--- 29839,29840 ----
+***************
+*** 35619,35622 ****
+ singly
+- sable
+- sally/DSG
+ SA
+--- 35602,35603 ----
+***************
+*** 40763,40766 ****
+ T's
+- mist/MS
+- overt
+ Ta
+--- 40744,40745 ----
+***************
+*** 44334,44336 ****
+ Vilnius/M
+! vim/M
+ vinaigrette/MS
+--- 44313,44315 ----
+ Vilnius/M
+! Vim/M
+ vinaigrette/MS
+***************
+*** 45906,45908 ****
+ y'all
+- prey/M
+ yacht/M5SmGD
+--- 45885,45886 ----
+***************
+*** 46198,46200 ****
+ rata/M
+- kaka/M
+ waka/M
+--- 46176,46177 ----
+***************
+*** 46216,46218 ****
+ jandal/MS
+- Swanndri/M
+ hoon/MS
+--- 46193,46194 ----
+***************
+*** 46242,46244 ****
+ Invercargill/M
+- Te
+ Alexandra/M
+--- 46218,46219 ----
+***************
+*** 46261,46263 ****
+ Kawerau/M
+- Kerikeri/M
+ Lyttelton/M
+--- 46236,46237 ----
+***************
+*** 46491,46493 ****
+ Waianakarua
+- Hakatere
+ Swin
+--- 46465,46466 ----
+***************
+*** 46690,46692 ****
+ Omarama/M
+- Wairarapa/M
+ Kilda/M
+--- 46663,46664 ----
+***************
+*** 46711,46713 ****
+ Wellsford/M
+- Akaroa/M
+ Avonhead/M
+--- 46683,46684 ----
+***************
+*** 46920,46922 ****
+ Egmont/M
+- Waitaki/M
+ katipo/M
+--- 46891,46892 ----
+***************
+*** 46956,46958 ****
+ Sunnyside/M
+- Wairau/M
+ Waikoropupu
+--- 46926,46927 ----
+***************
+*** 47141,47142 ****
+ Burkina
+! Faso/M
+\ No newline at end of file
+--- 47110,47111 ----
+ Burkina
+! Faso/M
diff --git a/src/vim.h b/src/vim.h
index f03028296..a771aba2c 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -410,6 +410,10 @@ typedef unsigned short u8char_T;
#include <assert.h>
+#ifdef HAVE_WCTYPE_H
+# include <wctype.h>
+#endif
+
/* ================ end of the header file puzzle =============== */
/*