You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by qu...@apache.org on 2015/06/01 00:18:51 UTC
[09/50] [abbrv] git commit: [flex-utilities]
[refs/heads/as3httpclient-work] - FLEX-34756 Adding a unit test that
reproduces the bug, and its supporting files.
FLEX-34756 Adding a unit test that reproduces the bug, and its supporting files.
Project: http://git-wip-us.apache.org/repos/asf/flex-utilities/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-utilities/commit/daf48a05
Tree: http://git-wip-us.apache.org/repos/asf/flex-utilities/tree/daf48a05
Diff: http://git-wip-us.apache.org/repos/asf/flex-utilities/diff/daf48a05
Branch: refs/heads/as3httpclient-work
Commit: daf48a05bc064dd7e3cb60a3dfe303e0d50dbe9f
Parents: 718d5a3
Author: Mihai Chira <mi...@apache.org>
Authored: Fri Apr 10 14:23:39 2015 +0200
Committer: Mihai Chira <mi...@apache.org>
Committed: Fri Apr 10 14:23:39 2015 +0200
----------------------------------------------------------------------
.../linguistics/spelling/FLEX_34756_Test.as | 160 +
.../linguistics/spelling/SpellingConfig.xml | 7 +
.../spelling/dictionaries/en_GB/en_GB.aff | 1150 +
.../spelling/dictionaries/en_GB/en_GB.dic | 46281 +++++++++++++++++
4 files changed, 47598 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/daf48a05/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/FLEX_34756_Test.as
----------------------------------------------------------------------
diff --git a/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/FLEX_34756_Test.as b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/FLEX_34756_Test.as
new file mode 100644
index 0000000..dcb074f
--- /dev/null
+++ b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/FLEX_34756_Test.as
@@ -0,0 +1,160 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package com.adobe.linguistics.spelling {
+ import com.adobe.linguistics.spelling.SpellUI;
+ import com.adobe.linguistics.spelling.framework.SpellingService;
+ import com.adobe.linguistics.spelling.framework.ui.IHighlighter;
+
+ import flash.events.Event;
+ import flash.events.IEventDispatcher;
+
+ import flashx.textLayout.edit.EditManager;
+ import flashx.textLayout.elements.FlowElement;
+ import flashx.textLayout.elements.ParagraphElement;
+ import flashx.textLayout.elements.SpanElement;
+
+ import mockolate.nice;
+ import mockolate.prepare;
+ import mockolate.received;
+ import mockolate.stub;
+
+ import org.flexunit.assertThat;
+ import org.flexunit.asserts.assertTrue;
+ import org.flexunit.async.Async;
+ import org.fluint.uiImpersonation.UIImpersonator;
+
+ import spark.components.RichEditableText;
+
+ public class FLEX_34756_Test {
+ private static var _textField:RichEditableText;
+ private static var _sut:SpellUI;
+ private static const TEXT_WITH_SPELLING_ERROR:String = "helloo";
+ private static const DICT:String = "en_GB";
+
+ [Before(async, timeout=5000)]
+ public function setUp():void
+ {
+ _textField = new RichEditableText();
+ UIImpersonator.addChild(_textField);
+ _textField.text = TEXT_WITH_SPELLING_ERROR;
+
+ var mockolateDispatcher:IEventDispatcher = prepare(IHighlighter, SpellingService);
+ mockolateDispatcher.addEventListener(Event.COMPLETE, Async.asyncHandler(this, onSetUpComplete, 5000, null, null));
+ }
+
+ private static function onSetUpComplete(event:Event, passThroughData:Object):void
+ {
+ SpellUIForTest.sparkHighlighter = nice(IHighlighter);
+ SpellUIForTest.spellingService = nice(SpellingService, "spellingService", [DICT]);
+
+ _sut = new SpellUIForTest(_textField, DICT);
+ }
+
+ [After]
+ public function tearDown():void
+ {
+ UIImpersonator.removeAllChildren();
+ _textField = null;
+ _sut = null;
+ }
+
+ [Test(async, timeout=2500)]
+ public function make_sure_it_doesnt_run_a_spelling_job_on_damaged_text_flow():void
+ {
+ //when
+ stub(SpellUIForTest.spellingService).method("init").dispatches(new Event(Event.COMPLETE));
+ SpellUI.enableSpelling(_textField, "en_GB");
+ SpellUIForTest.eventDispatcher.addEventListener(Event.COMPLETE, Async.asyncHandler(this, onDictionaryLoadComplete, 1500, null, null));
+ }
+
+ private function onDictionaryLoadComplete(event:Event, passThroughData:Object):void
+ {
+ //given
+ damageTextFlow();
+
+ //when
+ _sut.doSpellingJob();
+
+ //then
+ //doSpellingJob() is also called once after the dictionary finishes loading, hence 'atMost(1)' below
+ assertThat(SpellUIForTest.sparkHighlighter, received().method("clearSquiggles").atMost(1));
+ assertThat(SpellUIForTest.spellingService, received().method("checkWord").never());
+ }
+
+ private function damageTextFlow():void
+ {
+ var editManager:EditManager = _textField.textFlow.interactionManager as EditManager;
+ var firstLine:FlowElement = editManager.textFlow.findLeaf(0);
+ var paragraph:ParagraphElement = firstLine.getParagraph();
+ var span:SpanElement = new SpanElement();
+ span.text = " � ";
+ paragraph.addChildAt(0, span);
+
+ assertTrue(_textField.textFlow.flowComposer.isDamaged(_textField.textFlow.textLength));
+ }
+ }
+}
+
+import com.adobe.linguistics.spelling.SpellUI;
+import com.adobe.linguistics.spelling.framework.SpellingService;
+import com.adobe.linguistics.spelling.framework.ui.HaloHighlighter;
+import com.adobe.linguistics.spelling.framework.ui.IHighlighter;
+
+import flash.events.Event;
+import flash.events.EventDispatcher;
+import flash.events.IEventDispatcher;
+import flash.events.TimerEvent;
+import flash.utils.Timer;
+
+class SpellUIForTest extends SpellUI
+{
+ public static var sparkHighlighter:IHighlighter;
+ public static var spellingService:SpellingService;
+ public static var eventDispatcher:IEventDispatcher = new EventDispatcher();
+ private static var _timer:Timer = new Timer(100, 1);
+
+ public function SpellUIForTest(textModel:*, lang:String)
+ {
+ _timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimer);
+ super(textModel, lang);
+ }
+
+ private function onTimer(event:TimerEvent):void
+ {
+ eventDispatcher.dispatchEvent(new Event(Event.COMPLETE));
+ }
+
+ override protected function createHighlighter(isHaloComoponent:Boolean, parent:*):IHighlighter
+ {
+ //we're not dispatching the complete event just yet because this function is called before
+ //some extra processing is done after the dictionary is loaded. See SpellUI.addContextMenu()
+ _timer.stop();
+ _timer.reset();
+ _timer.start();
+
+ return isHaloComoponent ? new HaloHighlighter(parent) : sparkHighlighter;
+ }
+
+ override protected function createSpellingService(dictionaryName:String):SpellingService
+ {
+ return spellingService;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/daf48a05/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/SpellingConfig.xml
----------------------------------------------------------------------
diff --git a/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/SpellingConfig.xml b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/SpellingConfig.xml
new file mode 100644
index 0000000..64ac97d
--- /dev/null
+++ b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/SpellingConfig.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding='UTF-8'?>
+<SpellingConfig>
+ <LanguageResource language="English GB"
+ languageCode="en_GB"
+ ruleFile="dictionaries/en_GB/en_GB.aff"
+ dictionaryFile="dictionaries/en_GB/en_GB.dic"/>
+</SpellingConfig>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/daf48a05/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/dictionaries/en_GB/en_GB.aff
----------------------------------------------------------------------
diff --git a/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/dictionaries/en_GB/en_GB.aff b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/dictionaries/en_GB/en_GB.aff
new file mode 100644
index 0000000..dc71ace
--- /dev/null
+++ b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/dictionaries/en_GB/en_GB.aff
@@ -0,0 +1,1150 @@
+# Affix file for British English MySpell dictionary
+# Also suitable as basis for Commonwealth and European English.
+# Built from scratch for MySpell. Released under LGPL.
+#
+# David Bartlett, Andrew Brown.
+# R 1.18, 11/04/05
+SET ISO8859-1
+TRY esia�nrtolcdugmfphbyvkw-'.zqjxSNRTLCGDMFPHBEAUYOIVKW����ZQJX����������
+REP 27
+REP f ph
+REP ph f
+REP f gh
+REP f ugh
+REP gh f
+REP ff ugh
+REP uf ough
+REP uff ough
+REP k ch
+REP ch k
+REP dg j
+REP j dg
+REP w ugh
+REP ness ity
+REP leness ility
+REP ness ivity
+REP eness ity
+REP og ogue
+REP ck qu
+REP ck que
+REP eg e.g.
+REP ie i.e.
+REP t ght
+REP ght t
+REP ok OK
+REP ts ce
+REP ce ts
+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
+PFX F 0 com [bmp]
+PFX F 0 co [aeiouh]
+PFX F 0 cor r
+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
+SFX T 0 er [aeio][aeiou][bcdfgklmnprstvz]
+SFX T 0 er [^aeiou][bcdfgklmnprstvz]
+SFX T 0 er [^ebcdfgklmnprstvyz]
+SFX T 0 est [aeio][aeiou][bcdfgklmnprstvz]
+SFX T 0 est [^aeiou][bcdfgklmnprstvz]
+SFX T 0 est [^ebcdfgklmnprstvyz]
+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 44
+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 8 Y 44
+SFX 8 0 tize a
+SFX 8 e ize [^l]e
+SFX 8 le ilize [^aeiou]le
+SFX 8 e ize [aeiou]le
+SFX 8 um ize um
+SFX 8 0 ize [^u]m
+SFX 8 s ze is
+SFX 8 0 ize [^i]s
+SFX 8 y ize [^aeiou]y
+SFX 8 0 ize [aeiou]y
+SFX 8 0 ize [^aemsy]
+SFX 8 0 tizes a
+SFX 8 e izes [^l]e
+SFX 8 le ilizes [^aeiou]le
+SFX 8 e izes [aeiou]le
+SFX 8 um izes um
+SFX 8 0 izes [^u]m
+SFX 8 s zes is
+SFX 8 0 izes [^i]s
+SFX 8 y izes [^aeiou]y
+SFX 8 0 izes [aeiou]y
+SFX 8 0 izes [^aemsy]
+SFX 8 0 tized a
+SFX 8 e ized [^l]e
+SFX 8 le ilized [^aeiou]le
+SFX 8 e ized [aeiou]le
+SFX 8 um ized um
+SFX 8 0 ized [^u]m
+SFX 8 s zed is
+SFX 8 0 ized [^i]s
+SFX 8 y ized [^aeiou]y
+SFX 8 0 ized [aeiou]y
+SFX 8 0 ized [^aemsy]
+SFX 8 0 tizing a
+SFX 8 e izing [^l]e
+SFX 8 le ilizing [^aeiou]le
+SFX 8 e izing [aeiou]le
+SFX 8 um izing um
+SFX 8 0 izing [^u]m
+SFX 8 s zing is
+SFX 8 0 izing [^i]s
+SFX 8 y izing [^aeiou]y
+SFX 8 0 izing [aeiou]y
+SFX 8 0 izing [^aemsy]
+SFX q Y 22
+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 - Y 22
+SFX - 0 tization a
+SFX - e ization [^l]e
+SFX - le ilization [^aeiou]le
+SFX - e ization [aeiou]le
+SFX - um ization um
+SFX - 0 ization [^u]m
+SFX - s zation is
+SFX - 0 ization [^i]s
+SFX - y ization [^aeiou]y
+SFX - 0 ization [aeiou]y
+SFX - 0 ization [^aemsy]
+SFX - 0 tizations a
+SFX - e izations [^l]e
+SFX - le ilizations [^aeiou]le
+SFX - e izations [aeiou]le
+SFX - um izations um
+SFX - 0 izations [^u]m
+SFX - s zations is
+SFX - 0 izations [^i]s
+SFX - y izations [^aeiou]y
+SFX - 0 izations [aeiou]y
+SFX - 0 izations [^aemsy]
+SFX s Y 33
+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 9 Y 33
+SFX 9 0 tizer a
+SFX 9 e izer [^l]e
+SFX 9 le ilizer [^aeiou]le
+SFX 9 e izer [aeiou]le
+SFX 9 um izer um
+SFX 9 0 izer [^u]m
+SFX 9 s zer is
+SFX 9 0 izer [^i]s
+SFX 9 y izer [^aeiou]y
+SFX 9 0 izer [aeiou]y
+SFX 9 0 izer [^aemsy]
+SFX 9 0 tizers a
+SFX 9 e izers [^l]e
+SFX 9 le ilizers [^aeiou]le
+SFX 9 e izers [aeiou]le
+SFX 9 um izers um
+SFX 9 0 izers [^u]m
+SFX 9 s zers is
+SFX 9 0 izers [^i]s
+SFX 9 y izers [^aeiou]y
+SFX 9 0 izers [aeiou]y
+SFX 9 0 izers [^aemsy]
+SFX 9 0 tizer's a
+SFX 9 e izer's [^l]e
+SFX 9 le ilizer's [^aeiou]le
+SFX 9 e izer's [aeiou]le
+SFX 9 um izer's um
+SFX 9 0 izer's [^u]m
+SFX 9 s zer's is
+SFX 9 0 izer's [^i]s
+SFX 9 y izer's [^aeiou]y
+SFX 9 0 izer's [aeiou]y
+SFX 9 0 izer's [^aemsy]
+SFX t Y 22
+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 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 + Y 22
+SFX + 0 tizable a
+SFX + e izable [^l]e
+SFX + le ilizable [^aeiou]le
+SFX + e izable [aeiou]le
+SFX + um izable um
+SFX + 0 izable [^u]m
+SFX + s zable is
+SFX + 0 izable [^i]s
+SFX + y izable [^aeiou]y
+SFX + 0 izable [aeiou]y
+SFX + 0 izable [^aemsy]
+SFX + 0 tizability a
+SFX + e izability [^l]e
+SFX + le ilizability [^aeiou]le
+SFX + e izability [aeiou]le
+SFX + um izability um
+SFX + 0 izability [^u]m
+SFX + s zability is
+SFX + 0 izability [^i]s
+SFX + y izability [^aeiou]y
+SFX + 0 izability [aeiou]y
+SFX + 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]