Merge remote-tracking branch 'origin/develop' into as3httpclient-work

Conflicts:
	installer/src/InstallApacheFlex.mxml
diff --git a/CodeCoverage/CodeCoveragePreloadSWF.as b/CodeCoverage/AIRServer/CodeCoveragePreloadSWF.as
similarity index 100%
rename from CodeCoverage/CodeCoveragePreloadSWF.as
rename to CodeCoverage/AIRServer/CodeCoveragePreloadSWF.as
diff --git a/CodeCoverage/CodeCoverageServer-app.xml b/CodeCoverage/AIRServer/CodeCoverageServer-app.xml
similarity index 100%
rename from CodeCoverage/CodeCoverageServer-app.xml
rename to CodeCoverage/AIRServer/CodeCoverageServer-app.xml
diff --git a/CodeCoverage/CodeCoverageServer.mxml b/CodeCoverage/AIRServer/CodeCoverageServer.mxml
similarity index 100%
rename from CodeCoverage/CodeCoverageServer.mxml
rename to CodeCoverage/AIRServer/CodeCoverageServer.mxml
diff --git a/CodeCoverage/JavaServer/README b/CodeCoverage/JavaServer/README
new file mode 100755
index 0000000..ec7e608
--- /dev/null
+++ b/CodeCoverage/JavaServer/README
@@ -0,0 +1,131 @@
+Apache Flex Code Coverage Tool - Java Server

+==============================================

+

+    This code coverage tool is designed to be used at the command line

+    to provide code coverage for nightly builds.

+

+    For detailed information about the Apache Flex Code Coverage Tool please visit

+    https://cwiki.apache.org/confluence/display/FLEX/Code+Coverage+Tool

+

+    For detailed information about Apache Flex please visit

+    http://flex.apache.org/

+

+Getting the latest sources via Git

+==================================

+

+    Getting the source code is the recommended way to get the Apache Flex Code Coverage Tool.

+

+    You can always checkout the latest source from Apache's source control repository

+    using the following commands:

+

+     git clone https://git-wip-us.apache.org/repos/asf/flex-utilities.git flex-utilities

+     cd flex-utilities

+     git checkout develop

+     cd CodeCoverage/JavaServer

+

+Building Apache Flex Code Coverage Tool

+=======================================

+

+    The Apache Flex Code Coverage Tool requires some build tools 

+    which must be installed prior to building it.  

+    Some of these have different licenses.  See the Software Dependencies section 

+    for more information on the external software dependencies.

+

+Install Prerequisites

+---------------------

+

+    Before building this tool you must install the following software 

+    and set the corresponding environment variables using absolute file paths.  

+    Relative file paths will result in build errors.

+

+    ==================================================================================

+    SOFTWARE                                    ENVIRONMENT VARIABLE (absolute paths)

+    ==================================================================================

+

+    Java SDK 1.7 or greater (*1)(*2)            JAVA_HOME

+

+    Ant 1.7.1 or greater (*1)                   ANT_HOME

+        (for Java 1.7 see note at (*2))

+

+    Apache Flex 'Falcon' Compiler (*2)          FALCON_HOME

+

+    Apache Flex SDK or repository               FLEX_HOME

+

+    ==================================================================================

+

+    *1) The bin directories for ANT_HOME and JAVA_HOME should be added to your

+        PATH.

+

+        On Windows, set PATH to

+

+            PATH=%PATH%;%ANT_HOME%\bin;%JAVA_HOME%\bin

+

+        On the Mac (bash), set PATH to

+

+            export PATH="$PATH:$ANT_HOME/bin:$JAVA_HOME/bin"

+

+         On Linux make sure you path include ANT_HOME and JAVA_HOME.

+

+    *2)  If you are using Java SDK 1.7 or greater on a Mac you must use Ant 1.8

+         or greater. If you use Java 1.7 with Ant 1.7, ant reports the java

+         version as 1.6 so the JVM args for the data model (-d32/-d64) will not

+         be set correctly and you will get compile errors.

+

+    *3) Set FALCON_HOME to the root of its SDK.  When using the flex-falcon

+        repository, set 

+             FALCON_HOME=<repo-path>/compiler/generated/dist/sdk

+

+Software Dependencies

+---------------------

+

+    The Apache Flex Code Coverage Tool requires compiler.jar from the 

+    Apache Flex Falcon Compiler. The external dependences for compiler.jar are 

+    (relative to compiler.jar):

+

+    * external/antlr.jar

+    * external/commons-cli.jar

+    * external/commons-io.jar

+    * external/flex-tool-api.jar

+    * external/guava.jar

+    * external/jburg.jar

+    * external/lzma-sdk.jar

+

+    The external jar have various licenses.

+

+    When the Code Coverage Tool is built the Falcon jars are copied from 

+    FALCON_HOME to the Code Coverage Tool's lib directory. This step makes the tool ready to run.

+

+

+Building the Source in the Source Distribution

+----------------------------------------------

+

+    When you have all the prerequisites in place and the environment variables set, 

+    (see Install Prerequisites above), to build the Apache Flex Code Coverage

+    Tool use:

+

+        cd CodeCoverage/JavaServer

+        ant

+ 

+    To clean the build use:

+    

+        ant clean 

+

+Building the Source in the Eclispe and Flash Builder

+----------------------------------------------------

+

+    The Java source comes with an Eclipse project in the JavaServer/java 

+    directory. Before importing the Eclipse project first define a Java 

+    Classpath variable. Under Eclipse Preferences,

+

+        * Go to Java - Build Path - Classpath Varables. 

+        * Click on "New...".

+        * Enter "FALCON_HOME" in "Name" field.

+        * Enter the directory containing "lib/compiler.jar" in the "Path" field.       

+ 

+    The Flex code comes with a Flash Builder project in the JavaServer/flex 

+    directory. This project can be imported without any additional setup.

+

+Thanks for using Apache Flex.  Enjoy!

+

+                                          The Apache Flex Project

+                                          <http://flex.apache.org>

diff --git a/CodeCoverage/JavaServer/build.xml b/CodeCoverage/JavaServer/build.xml
new file mode 100755
index 0000000..88b2b29
--- /dev/null
+++ b/CodeCoverage/JavaServer/build.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" ?>
+<!--
+
+  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.
+
+-->
+<project default="main" basedir=".">
+
+    <property file="${basedir}/env.properties"/>
+    <property environment="env"/>
+    <condition property="FLEX_HOME" value="${env.FLEX_HOME}">
+        <isset property="env.FLEX_HOME" />
+    </condition>
+    
+    <target name="main">
+      <mkdir dir="${basedir}/lib"/>
+      <ant dir="${basedir}/flex"/>
+      <ant dir="${basedir}/java"/>
+    </target>
+   
+    <target name="clean" description="clean up">
+      <ant dir="${basedir}/flex" target="clean"/>
+      <ant dir="${basedir}/java" target="clean"/>
+      <delete dir="${basedir}/lib"/>
+    </target>
+</project>
\ No newline at end of file
diff --git a/CodeCoverage/JavaServer/flex/build.xml b/CodeCoverage/JavaServer/flex/build.xml
new file mode 100755
index 0000000..44d33d5
--- /dev/null
+++ b/CodeCoverage/JavaServer/flex/build.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" ?>
+<!--
+
+  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.
+
+-->
+<project default="main" basedir=".">
+
+    <property file="${basedir}/env.properties"/>
+    <property environment="env"/>
+    <condition property="FLEX_HOME" value="${env.FLEX_HOME}">
+        <isset property="env.FLEX_HOME" />
+    </condition>
+    <property name="lib.dir" value="${basedir}/../lib"/>
+
+    <!-- additional tasks - mxmlc tag -->
+    <path id="flexTasks.path">
+        <fileset dir="${FLEX_HOME}">
+            <include name="lib/flexTasks.jar" />
+            <include name="ant/lib/flexTasks.jar" />
+        </fileset>
+    </path>
+    <taskdef resource="flexTasks.tasks" classpathref="flexTasks.path"/>
+    
+    <target name="check-flex-home" unless="FLEX_HOME.set"
+            description="Check that FLEX_HOME is a directory">
+        
+        <echo message="FLEX_HOME is ${env.FLEX_HOME}"/>
+
+        <condition property="FLEX_HOME.set">
+            <and>
+                <length string="${env.FLEX_HOME}" when="greater" length="0" />
+                <available file="${env.FLEX_HOME}" type="dir"/>
+            </and>
+        </condition>
+        
+        <fail message="The environment variable FLEX_HOME must be set to the Flex SDK directory" 
+            unless="FLEX_HOME.set"/>
+    </target>
+      
+  	<target name="compile">
+  		<mxmlc file="${basedir}/src/CodeCoveragePreloadSWF.as" static-link-runtime-shared-libraries="true"
+              output="${lib.dir}/CodeCoveragePreloadSWF.swf" fork="true" failonerror="true">
+  			      <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
+              <source-path path-element="${basedir}/src"/>
+  		</mxmlc>
+  	</target>
+	
+    <target name="main" depends="check-flex-home,clean,compile">
+    </target>
+   
+    <target name="clean" description="clean up">
+    	<delete file="${lib.dir}/CodeCoveragePreloadSWF.swf"/>
+    </target>
+</project>
\ No newline at end of file
diff --git a/CodeCoverage/JavaServer/flex/src/CodeCoverageClientSocket.as b/CodeCoverage/JavaServer/flex/src/CodeCoverageClientSocket.as
new file mode 100755
index 0000000..7d9e016
--- /dev/null
+++ b/CodeCoverage/JavaServer/flex/src/CodeCoverageClientSocket.as
@@ -0,0 +1,145 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+import flash.events.Event;
+import flash.events.IOErrorEvent;
+import flash.events.SecurityErrorEvent;
+import flash.net.Socket;
+import flash.system.Security;
+
+/**
+ * Wrapper around a Flash Player Socket.
+ */
+public class CodeCoverageClientSocket extends Socket
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+    
+    /**
+     *  Constructor
+	 * 
+	 *  @param host The host to connect to.
+	 *  @param port The port to send trace data to.
+	 *  @param policyFilePort The port used to load the policy file.
+     */
+    public function CodeCoverageClientSocket(host:String, port:int, policyFilePort:int)
+    {
+        super();
+        addListeners();
+		
+		var policyFile:String = "xmlsocket://" + host + ":" + policyFilePort;
+        Security.loadPolicyFile(policyFile);
+        connect(host, port);
+    }
+    
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Buffer output from trace data received before a connect is avaiable from
+     *  the server. 
+     */
+    private var preConnectBuffer:Array = [];
+    private var connectionAvailable:Boolean;
+	
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+    
+	/**
+	 * Send data to the sever.
+	 * 
+	 * If the socket is not connected the data will be buffered until the 
+	 * connection is made.
+	 * 
+	 * @param data The data to send.
+	 */
+    public function sendData(data:String):void 
+    {
+        if (connectionAvailable)
+        {
+            writeUTFBytes(data);
+	        flush();
+        }
+        else
+        {
+            preConnectBuffer.push(data);
+        }
+    }
+    
+	private function addListeners():void
+	{
+		addEventListener(Event.CLOSE, closeHandler);
+		addEventListener(Event.CONNECT, connectHandler);
+		addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
+		addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
+	}
+	
+    //--------------------------------------------------------------------------
+    //
+    //  Event handler
+    //
+    //--------------------------------------------------------------------------
+    
+    private function closeHandler(event:Event):void 
+    {
+        connectionAvailable = false;
+    }
+    
+	/**
+	 * Call when the socket connection is established.
+	 */
+    private function connectHandler(event:Event):void
+    {
+        removeEventListener(Event.CONNECT, connectHandler);
+		
+		// Write out buffered data.
+        if (preConnectBuffer.length > 0)
+        {
+            var data:String = preConnectBuffer.join("");
+            writeUTFBytes(data);
+			flush();
+        }
+        
+        connectionAvailable = true;
+        preConnectBuffer = [];
+    }
+    
+    private function ioErrorHandler(event:IOErrorEvent):void
+    {
+        trace("CodeCoveragePreloadSWF ioErrorHandler: " + event.errorID);
+    }
+    
+    private function securityErrorHandler(event:SecurityErrorEvent):void
+    {
+        trace("CodeCoveragePreloadSWF securityErrorHandler: " + event.errorID);
+    }
+    
+}    
+}
\ No newline at end of file
diff --git a/CodeCoverage/JavaServer/flex/src/CodeCoveragePreloadSWF.as b/CodeCoverage/JavaServer/flex/src/CodeCoveragePreloadSWF.as
new file mode 100755
index 0000000..858f1e5
--- /dev/null
+++ b/CodeCoverage/JavaServer/flex/src/CodeCoveragePreloadSWF.as
@@ -0,0 +1,190 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+import flash.display.LoaderInfo;
+import flash.display.Sprite;
+import flash.events.Event;
+import flash.trace.Trace;
+import flash.utils.getTimer;

+
+/**
+ *  Main of preload SWF. This SWF listens to the trace of the primary application
+ *  and sends the data to a server using a web socket.
+ */
+public class CodeCoveragePreloadSWF extends Sprite
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+	
+	private static const DEFAULT_HOST:String = "localhost";
+	private static const DEFAULT_DATA_PORT:int = 9097;
+	private static const DEFAULT_POLICY_FILE_PORT:int = 9843;
+	
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor 
+     */
+    public function CodeCoveragePreloadSWF()
+    {
+		createClientSocket();
+        addEventListener("allComplete", allCompleteHandler);
+		
+        Trace.setLevel(Trace.METHODS_AND_LINES, Trace.LISTENER);
+        Trace.setListener(methodsAndLinesCallback);
+    }
+	
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 * Map the debug file info to an index number to reduce the amount
+	 * of data sent over the port and stored.
+	 * 
+	 * Key debug_file string
+	 * Index: unique index representing the key.
+	 */
+    private var stringMap:Object = {};
+	
+	/**
+	 * incremented to provide a unique index for every string.
+	 */
+    private var stringIndex:int = 0;
+	
+	/**
+	 *	Collection of lines that have been sent to server.
+	 *  For the purposes of code coverage there is no need to send a debug line
+	 *  more than once. 
+	 */
+	private var lineMap:Object = {};
+	
+	/**
+	 * socket to send trace data to the server.
+	 */
+	private var socket:CodeCoverageClientSocket;
+	
+	/**
+	 * If true ignore the trace data. Used to prevent this code from being part of code
+	 * coverage. Is this needed if the application is run w/o debug instructions.
+	 */
+	private var ignoreTrace:Boolean; 
+	
+	//--------------------------------------------------------------------------
+	//
+	//	Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 * Create a socket to handle sending trace data to the server.
+	 */
+	private function createClientSocket():void
+	{
+		var key:String;
+		var value:String;
+		var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
+		var host:String = DEFAULT_HOST;
+		var port:int = DEFAULT_DATA_PORT;
+		var policyFilePort:int = DEFAULT_POLICY_FILE_PORT;
+		
+		for (key in paramObj) 
+		{
+			value = String(paramObj[key]);
+			if (key == "host")
+				host = value;
+			else if (key == "dataPort")
+				port = int(value);
+			else if (key == "policyFilePort")
+				policyFilePort = int(value);
+		}
+
+		socket = new CodeCoverageClientSocket(host, port, policyFilePort);
+	}
+
+	//--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+    
+	/**
+	 * Callback for methods and lines trace data.
+	 */
+    public function methodsAndLinesCallback(filename:String, lineNumber:int, methodName:String, methodArgs:String):void
+    {
+        if (lineNumber <= 0 || ignoreTrace)
+            return;
+        
+		try
+        {
+			// Map file name to and index
+            if (!stringMap.hasOwnProperty(filename))
+            {
+                socket.sendData("#" + stringIndex + "," + filename + "\n");
+                stringMap[filename] = stringIndex.toString();
+                stringIndex++;
+            }
+            
+            var id:String = stringMap[filename];
+            var line:String = lineNumber.toString();
+			var data:String = id + "," + line + "\n";
+			
+			// Only send a debug line once.
+			if (!lineMap.hasOwnProperty(data))
+				lineMap[data] = 1;
+			else
+				return;
+			
+            socket.sendData(data);
+        }
+        catch (e:Error)
+        {
+            trace("CodeCoveragePreloadSWF Error: " + e.message);
+        }
+
+    }
+
+	/**
+	 * Called when the main application finishing loading.
+	 * This provides us with the name of the SWF.
+	 */
+    private function allCompleteHandler(event:Event):void
+    {
+		ignoreTrace = true;
+		removeEventListener("allComplete", allCompleteHandler);
+
+        var loaderInfo:LoaderInfo = event.target as LoaderInfo;
+        socket.sendData("@" + loaderInfo.loaderURL + "\n");
+		ignoreTrace = false;
+    }
+    
+}
+}
\ No newline at end of file
diff --git a/CodeCoverage/JavaServer/java/build.xml b/CodeCoverage/JavaServer/java/build.xml
new file mode 100755
index 0000000..a631529
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/build.xml
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<!--

+

+  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.

+

+-->

+<project default="main" basedir="." name="Code Coverage Server and Code Coverge Reporter">

+    

+    <property file="${basedir}/env.properties"/>

+    <property environment="env"/>    

+    <property name="lib.dir" value="${basedir}/../lib"/>

+

+	<!-- Options for <javac> tasks -->

+    <property name="javac.debug" value="true"/>

+    <property name="javac.deprecation" value="false"/>

+    <property name="javac.src" value="1.7"/>

+

+    <!-- JAR manifest entries -->

+    <property name="manifest.Implementation-Version" value="0.9.0"/>

+    <property name="manifest.Implementation-Vendor" value="Apache Software Foundation"/>

+    

+    <target name="main" depends="check-falcon-home,clean,compile-ccserver,create-ccserver.jar,compile-ccreporter,create-ccreporter.jar,copy-bin-lib">

+    </target>

+

+    <target name="check-falcon-home" unless="FALCON_HOME"

+        description="Check FALCON_HOME is a directory.">

+        

+        <echo message="FALCON_HOME is ${env.FALCON_HOME}"/>

+

+        <available file="${env.FALCON_HOME}/lib/compiler.jar" 

+            type="file" 

+            property="FALCON_HOME"

+            value="${env.FALCON_HOME}"/>

+

+        <fail message="FALCON_HOME must be set to a folder with a lib sub-folder containing compiler.jar such as the compiler/generated/dist/sdk folder in flex-falcon repo."

+            unless="FALCON_HOME"/>

+    </target>

+

+    <target name="clean">

+        <delete dir="${basedir}/generated"/>

+        <delete file="${lib.dir}/ccreporter.jar" quiet="true" failonerror="false"/>

+        <delete file="${lib.dir}/ccserver.jar" quiet="true" failonerror="false"/>

+        <delete quiet="true" failonerror="false">

+            <fileset dir="${lib.dir}">

+                <include name="compiler.jar"/>

+                <include name="ccreporter.jar"/>

+                <include name="ccserver.jar"/>

+                <include name="ccserver.properties"/>

+            </fileset>

+        </delete>

+        <delete dir="${lib.dir}/external" quiet="true" failonerror="false"/>

+    </target>

+

+    <path id="classpath">

+        <fileset dir="${env.FALCON_HOME}/lib" includes="**/*.jar" excludes="ccserver.jar,ccreporter.jar"/>

+    </path>

+

+    <target name="create-ccserver.jar" depends="set.ccserver.jar.uptodate" unless="ccserver.jar.uptodate">

+        <jar file="${lib.dir}/ccserver.jar" basedir="${basedir}/generated/classes" includes="**/server/*" whenmanifestonly="fail">

+            <manifest>

+                <attribute name="Implementation-Title" value="Apache Flex Code Coverage Server"/>

+                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}"/>

+                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>

+                <attribute name="Main-Class" value="org.apache.flex.tools.codecoverage.server.CodeCoverageServer"/>

+                <attribute name="Class-Path" value="."/>

+            </manifest>

+        </jar>

+    </target>

+

+    <target name="set.ccserver.jar.uptodate">

+        <uptodate property="ccserver.jar.uptodate"

+                  targetfile="${lib.dir}/ccserver.jar">

+            <srcfiles dir="${basedir}/generated/classes">

+                <include name="**/server/*.class"/>

+                <include name="**/*.properties"/>

+            </srcfiles>

+        </uptodate>

+    </target>

+    

+    <target name="compile-ccserver" description="compile">

+        <mkdir dir="${basedir}/generated/classes"/>

+        <javac debug="${javac.debug}" deprecation="${javac.deprecation}"

+               includes="**/server/*.java" destdir="${basedir}/generated/classes" 

+               classpathref="classpath" includeAntRuntime="false"

+               source="${javac.src}" target="${javac.src}">

+            <src path="${basedir}/src"/>

+            <compilerarg value="-Xlint:all,-path,-fallthrough,-cast"/>

+        </javac>

+        <copy todir="${basedir}/generated/classes">

+            <fileset dir="${basedir}/src" includes="**/*.properties"/>

+        </copy>

+    </target>

+    

+    <target name="create-ccreporter.jar" depends="set.ccreporter.jar.uptodate" unless="ccreporter.jar.uptodate">

+        <jar file="${lib.dir}/ccreporter.jar" basedir="${basedir}/generated/classes" includes="**/reporter/**/*" whenmanifestonly="fail">

+            <manifest>

+                <attribute name="Implementation-Title" value="Apache Flex Code Coverage Reporter"/>

+                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}"/>

+                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>

+                <attribute name="Main-Class" value="org.apache.flex.tools.codecoverage.reporter.CodeCoverageReporter"/>

+                <attribute name="Class-Path" value="compiler.jar ."/>

+            </manifest>

+        </jar>

+    </target>

+

+    <target name="set.ccreporter.jar.uptodate">

+        <uptodate property="ccreporter.jar.uptodate"

+                  targetfile="${lib.dir}/ccreporter.jar">

+            <srcfiles dir="${basedir}/generated/classes">

+                <include name="**/*.class"/>

+                <include name="**/*.properties"/>

+            </srcfiles>

+        </uptodate>

+    </target>

+    

+	<target name="compile-ccreporter" description="compile">

+        <javac debug="${javac.debug}" deprecation="${javac.deprecation}"

+               includes="**/reporter/**/*.java" destdir="${basedir}/generated/classes" 

+               classpathref="classpath" includeAntRuntime="false"

+               source="${javac.src}" target="${javac.src}">

+            <src path="${basedir}/src"/>

+            <compilerarg value="-Xlint:all,-path,-fallthrough,-cast"/>

+        </javac>

+        <copy todir="${basedir}/generated/classes">

+            <fileset dir="${basedir}/src" includes="**/*.properties"/>

+        </copy>

+    </target>

+

+    <target name="copy-bin-lib" description="copy lib dependencies">

+        <copy todir="${lib.dir}">

+            <fileset dir="${FALCON_HOME}/lib/">

+                <include name="compiler.jar"/>

+                <include name="external/antlr*.*"/>

+                <include name="external/commons-cli*.*"/>

+                <include name="external/commons-io*.*"/>

+                <include name="external/flex-tool-api*.*"/>

+                <include name="external/guava*.*"/>

+                <include name="external/lzma-sdk*.*"/>

+            </fileset>

+            <fileset dir="${basedir}" includes="ccserver.properties"/>

+        </copy>

+    </target>

+

+</project>

diff --git a/CodeCoverage/JavaServer/java/ccserver.properties b/CodeCoverage/JavaServer/java/ccserver.properties
new file mode 100755
index 0000000..18f5e98
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/ccserver.properties
@@ -0,0 +1,8 @@
+#host=localhost

+#dataPort=9097

+#commandPort=9098

+#policyFilePort=9843

+#preloadSWF=CodeCoveragePreloadSWF.swf

+#mmCfgPath=

+#dataDirectory=

+

diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CodeCoverageReporter.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CodeCoverageReporter.java
new file mode 100755
index 0000000..7c0d868
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CodeCoverageReporter.java
@@ -0,0 +1,549 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.reporter;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.flex.tools.codecoverage.reporter.reports.IReportFactory;
+import org.apache.flex.tools.codecoverage.reporter.reports.IReportWriter;
+import org.apache.flex.tools.codecoverage.reporter.reports.ReportOptions;
+import org.apache.flex.tools.codecoverage.reporter.reports.XMLReportFactory;
+import org.apache.flex.tools.codecoverage.reporter.swf.SWFLineReporter;
+
+/**
+ * Analyzes code coverage data files and produces a report.
+ * 
+ * This class can be run from the command line and accept arguments to control
+ * the format of the report.
+ *
+ */
+public class CodeCoverageReporter
+{
+    /**
+     * Extension for code coverage reports.
+     */
+    private static final String DEFAULT_REPORT_NAME = "ccreport.xml";
+    private static final String DEFAULT_DATA_DIRECTORY = "ccdata";
+    
+    private static final String CCREPORTER_VERSION = "0.9";
+    
+    /**
+     * CodeCovergeReporter will read code code coverage result files and
+     * generate reports.
+     * 
+     */
+    public static void main(String[] args) throws IOException
+    {
+        // This message should not be localized.
+        System.out.println("Apache Flex Code Coverage Reporter");
+        System.out.println("Version " + CCREPORTER_VERSION);
+        System.out.println("");
+
+        if (args.length == 1 && "-help".equals(args[0]))
+        {
+            displayUsage();
+            System.exit(1);
+        }
+
+        CodeCoverageReporter reporter = new CodeCoverageReporter();
+        reporter.processArgs(args);
+        
+        System.out.println("Analyzing " + reporter.files.size() + " files");
+        
+        try
+        {
+            final CoverageData coverageData = new CoverageData();
+
+            // analyzes the files and then report the results.
+            for (File file : reporter.files)
+            {
+                reporter.analyze(file, coverageData);
+            }
+
+            final CoverageSummary coverageSummary = reporter.createCoverageSummary(coverageData); 
+            reporter.createReport(coverageSummary);
+
+            // output high level coverage to the console
+            reporter.outputCoverageSummaryToConsole(coverageSummary);
+
+            System.out.println("Report output to " + reporter.reportFile.getAbsolutePath());
+        }
+        catch (Error e)
+        {
+            e.printStackTrace();
+
+            System.err.println("");
+            System.err.println("An unrecoverable error occurred.");
+        }
+    }
+    
+    /**
+     * Create a regex string from a given user input string that can have
+     * wild cards but is not a regex pattern. 
+     * Supports simple wild cards: '*', '?'
+     * 
+     * @param userFilter user supplied filter that may only contain the '*' and '?'
+     *  wild card characters. All other cards will have no special meaning.
+     */
+    private static String createRegexStringFromUserArg(String userFilter)
+    {
+        // substitute regex for user wild cards.
+        StringBuilder regexString = new StringBuilder("^");
+        String[] results = userFilter.split("[\\?\\*]");
+        int currentIndex = 0;
+
+        for (String filter : results)
+        {
+            currentIndex += filter.length();
+            
+            if (filter.length() > 0)
+            {
+                regexString.append("\\Q");
+                regexString.append(filter);
+                regexString.append("\\E");
+            }
+            
+            if (currentIndex < userFilter.length())
+            {
+                if (userFilter.charAt(currentIndex) == '*')
+                {
+                    regexString.append(".*");
+                }
+                else if (userFilter.charAt(currentIndex) == '?')
+                {
+                    regexString.append(".?");
+                }
+            }
+            
+            currentIndex++; // skip past wild card
+        }
+        
+        regexString.append("$");
+        return regexString.toString();
+    }
+
+    public static Collection<File> listFiles(final File dir)
+    {
+        final String[] fileNames = dir.list();
+
+        if (fileNames == null)
+        {
+            return Collections.emptyList();
+        }
+
+        final Collection<File> fileList = new ArrayList<File>(fileNames.length);
+        for (int i = 0; i < fileNames.length; i++)
+        {
+            fileList.add(new File(dir.getPath(), fileNames[i]));
+        }
+        
+        return fileList;
+    }
+
+    private void outputCoverageSummaryToConsole(final CoverageSummary coverageSummary)
+    {
+        System.out.println("Results:");
+        
+        final SummaryInfo summaryInfo = coverageSummary.getOverallSummaryInfo();
+        int executed = summaryInfo.getExecutedLineCount();
+        int total = summaryInfo.getTotalLineCount();
+        int percent = total == 0 ? 0 : executed * 100 / total;
+        System.out.println("Line Coverage:   " +  percent + "%");
+
+        executed = summaryInfo.getExecutedMethodCount();
+        total = summaryInfo.getTotalMethodCount();
+        percent = total == 0 ? 0 : executed * 100 / total;
+        System.out.println("Method Coverage: " +  percent + "%");
+    }
+
+    private static void displayUsage()
+    {
+        System.out.println("Usage: ccreporter");
+        System.out.println("[-exclude filter]");
+        System.out.println("[-help]");
+        System.out.println("[-hide-unexecuted]");
+        System.out.println("[-hide-files]");
+        System.out.println("[-hide-methods]");
+        System.out.println("[-hide-packages]");
+        System.out.println("[-include filter]");
+        System.out.println("[-output filename]");
+        System.out.println("[-report-factory");
+        System.out.println("[filename | directory name]*");
+    }
+
+    /**
+     * The report file.
+     */
+    private File reportFile;
+    
+    /**
+     * Collection of data files to analyze.
+     */
+    private Collection<File> files;
+    
+    /**
+     * User filters converted to regex.
+     */
+    private Collection<String> includeFilters;
+    private Collection<String> excludeFilters;
+    
+    /**
+     * Raw user filters as input.
+     */
+    private Collection<String> userIncludeFilters;
+    private Collection<String> userExcludeFilters;
+    private boolean showPackages = true;
+    private boolean showFiles = true;
+    private boolean showMethods = true;
+    private boolean showUnexecutedDetails = false;
+    
+    /**
+     * User can specify their own report factory.
+     */
+    private String reportFactory;
+    
+    /**
+     * Create a code coverage reporter.
+     * 
+     */
+    public CodeCoverageReporter()
+    {
+    }
+
+    /**
+     * Parse the command line arguments and set the instance variables of
+     * the reporter.
+     * 
+     * @param args User specified arguments.
+     */
+    public void processArgs(final String[] args)
+    {
+        int index = 0;
+        File reportFile = null;
+        List<String> includeFilters = new ArrayList<String>();
+        List<String> excludeFilters = new ArrayList<String>();
+        List<String> userIncludeFilters = new ArrayList<String>();
+        List<String> userExcludeFilters = new ArrayList<String>();
+        boolean showPackages = true;
+        boolean showFiles = true;
+        boolean showMethods = true;
+        boolean showUnexecutedDetails = true;
+        String reportFactory = null;
+        
+        while ((index < args.length) && (args[index].startsWith("-")))
+        {
+            switch (args[index])
+            {
+                case "-include":
+                {
+                    userIncludeFilters.add(args[++index]);
+                    includeFilters.add(createRegexStringFromUserArg(args[index]));
+                    index++;                    
+                    break;
+                }
+                case "-exclude":
+                {
+                    userExcludeFilters.add(args[++index]);
+                    excludeFilters.add(createRegexStringFromUserArg(args[index]));
+                    index++;                    
+                    break;
+                }
+                case "-include-regex":
+                {
+                    includeFilters.add(args[++index]);
+                    index++;                    
+                    break;
+                }
+                case "-exclude-regex":
+                {
+                    excludeFilters.add(args[++index]);
+                    index++;                    
+                    break;
+                }
+                case "-output":
+                {
+                    reportFile = new File(args[++index]);
+                    index++;                    
+                    break;
+                }
+                case "-hide-unexecuted":
+                {
+                    showUnexecutedDetails = false;
+                    index++;                    
+                    break;
+                }
+                case "-hide-methods":
+                {
+                    showMethods = false;
+                    index++;                    
+                    break;
+                }
+                case "-hide-files":
+                {
+                    showFiles = false;
+                    index++;                    
+                    break;
+                }
+                case "-hide-packages":
+                {
+                    showPackages = false;
+                    index++;                    
+                    break;
+                }
+                case "-report-factory":
+                {
+                    reportFactory = args[++index];
+                    index++;                    
+                    break;
+                }
+                default:
+                {
+                    System.err.println("unknown argument " + args[index]);
+                    index++;                    
+                    System.exit(1);
+                }
+            }
+        }
+
+        if (reportFile == null)
+            reportFile = new File(DEFAULT_REPORT_NAME);
+
+        Collection<String>filenames = new ArrayList<String>();
+        Collection<File> files = new ArrayList<File>();
+
+        // Collect filenames/directories from user args.
+        // If no files specified look in the default data directory.
+        if (index >= args.length)
+        {
+            filenames.add(new File(System.getProperty("user.home"), DEFAULT_DATA_DIRECTORY).getAbsolutePath());
+        }
+        else
+        {
+            for (int i = index; i < args.length; i++)
+            {
+                filenames.add(args[i]);
+            }
+        }
+
+        // validate files
+        for (String filename : filenames)
+        {
+            File file = new File(filename);
+            
+            if (!file.exists())
+            {
+                System.err.println("File not found: " + file.getAbsolutePath());
+                System.exit(1);
+            }
+            else
+            {
+                if (file.isDirectory())
+                {
+                    Collection<File> newFiles = listFiles(file); 
+                    files.addAll(newFiles);
+                    System.out.println("Found " + newFiles.size() + " files in " + file.getAbsolutePath());
+                }
+                else
+                {
+                    files.add(file);
+                    System.out.println("Found " + file.getAbsolutePath());
+                }
+            }            
+            
+        }
+
+        this.includeFilters = includeFilters;
+        this.excludeFilters = excludeFilters;
+        this.userIncludeFilters = userIncludeFilters;
+        this.userExcludeFilters = userExcludeFilters;
+        this.showUnexecutedDetails = showUnexecutedDetails;
+        this.showMethods = showMethods;
+        this.showFiles = showFiles;
+        this.showPackages = showPackages;
+        this.files = files;
+        this.reportFile = reportFile;
+        this.reportFactory = reportFactory;
+    }
+
+    /**
+     * Read in a code coverage raw file and output raw code coverage data.
+     * 
+     * @param inFile
+     *            Code coverage execution data.
+     * @throws IOException
+     * @throws FileNotFoundException
+     */
+    public void analyze(final File inFile, final CoverageData coverageData)
+            throws FileNotFoundException, IOException
+    {
+        try (BufferedReader reader = new BufferedReader(new FileReader(inFile)))
+        {
+            String inLine;
+            final ArrayList<String> stringPool = new ArrayList<String>();
+            int inLineNumber = 1;
+
+            while ((inLine = reader.readLine()) != null)
+            {
+                // test first char:
+                // @{path} the SWF's path
+                // #{id,string} defines an id string
+                char firstChar = inLine.charAt(0);
+                
+                switch (firstChar)
+                {
+                    case '@':   // @swfURL
+                    {
+                        // read in SWF and analyze
+                        String swfURL = inLine.substring(1); 
+                        SWFLineReporter swfLineReporter = new SWFLineReporter(swfURL);
+                        swfLineReporter.readLines(coverageData);
+                        break;
+                    }
+                    case '#':   // instruction: packageFileID,packageFileString
+                    {
+                        // add id to pool
+                        String[] results = inLine.substring(1).split(",");
+
+                        assert results.length == 2 : "line " + inLineNumber
+                                + System.lineSeparator()
+                                + "improperly formatted line"
+                                + System.lineSeparator() + inLine;
+
+                        assert !stringPool.contains(results[1]) : "line "
+                                + inLineNumber + System.lineSeparator()
+                                + "string is already in the string pool: "
+                                + results[1];
+
+                        assert Integer.valueOf(results[0]) == stringPool.size() : "line "
+                                + inLineNumber
+                                + System.lineSeparator()
+                                + "string is already in the string pool: "
+                                + results[1];
+
+                        stringPool.add(results[1]);
+                        break;
+                    }
+                    default:
+                    {
+                        // "id,linenum"
+                        // Split line and record linenum as a hit.
+                        String[] results = inLine.split(",");
+                        if (results.length == 2 && firstChar >= '0' && firstChar <= '9')
+                        {
+                            String file = stringPool.get(Integer.valueOf(results[0]));
+                            int hitLineNumber = Integer.valueOf(results[1]);
+                            coverageData.setLineExecuted(file, hitLineNumber);
+                            break;                            
+                        }
+                        else
+                        {
+                            System.err.println("Warning: file " + inFile.getAbsolutePath() + ", line " + inLineNumber + ": unrecognized data, " + inLine);
+                        }
+                    }
+                }
+
+                inLineNumber++;
+            }
+        }
+        catch (NumberFormatException e)
+        {
+            System.err.println(inFile.getAbsolutePath() + " may not be a code coverage data file");
+            throw new IOException(e);
+        }
+    }
+
+    /**
+     * Create a code coverage report. The report summarizes the code coverage by
+     * package, file, and method. The report is output to the file specified
+     * by the user.
+     * 
+     * @param coverageSummary A summary of the coverage data.
+     * @throws IOException 
+     */
+    public void createReport(final CoverageSummary coverageSummary) throws IOException
+    {
+        createXMLReport(coverageSummary);
+    }
+
+    /**
+     * Create a summary of the raw code coverage data.
+     * 
+     * @param coverageData
+     * @return
+     */
+    protected CoverageSummary createCoverageSummary(final CoverageData coverageData)
+    {
+        final CoverageSummary coverageSummary = new CoverageSummary(coverageData, 
+                includeFilters, excludeFilters);
+        
+        coverageSummary.processCoverageData();
+        return coverageSummary;
+    }
+    
+    /**
+     * Output an XML report to the reportFile.
+     * 
+     * @param coverageSummary A summary of the coverage data.
+     * @throws IOException 
+     */
+    protected void createXMLReport(final CoverageSummary coverageSummary) throws IOException 
+    {
+        Class<?> classFactory = null;
+        IReportFactory factory = null;
+        
+        if (reportFactory != null)
+        {
+            try
+            {
+                classFactory = Class.forName(reportFactory);
+                factory = (IReportFactory) classFactory.newInstance();
+            }
+            catch (ClassNotFoundException | InstantiationException | IllegalAccessException e)
+            {
+                // fallback to default report writer
+                e.printStackTrace();
+                System.err.println("Report factory not found," + reportFactory);
+            }
+        }
+
+        if (factory == null)
+            factory = new XMLReportFactory();
+        
+        final ReportOptions reportOptions = new ReportOptions(userIncludeFilters, userExcludeFilters,
+                showPackages, showFiles, showMethods, showUnexecutedDetails);
+        final IReportWriter reportWriter = factory.createReport(reportOptions);
+        try (final FileWriter fileWriter = new FileWriter(reportFile);
+                final BufferedWriter bufferedWriter = new BufferedWriter(fileWriter))
+        {
+            reportWriter.writeTo(bufferedWriter, coverageSummary);
+        }
+    }
+
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CoverageData.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CoverageData.java
new file mode 100755
index 0000000..4df2632
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CoverageData.java
@@ -0,0 +1,113 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.reporter;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.TreeMap;
+
+/**
+ * Class to record the execution data as well the all the debug lines that exist
+ * in SWF file.
+ * Each line number is associated with method.
+ */
+public class CoverageData
+{
+    /**
+     * key   = package;file
+     * value = Map<line number, LineInfo>
+     */
+    final Map<String, Map<Integer, LineInfo>> lineMap =
+            new HashMap<String, Map<Integer, LineInfo>>();
+    Iterator<Map<String, Map<Integer, LineInfo>>> lineMapIterator;
+    
+    /**
+     * Add the existence of a line to the coverage data.
+     * 
+     * @param file The file the line number is in.
+     * @param lineNumber The line number of the line
+     * @param methodName The name of the method the line is in.
+     */
+    public void addLine(final String file, final int lineNumber,
+            final String methodName)
+    {
+        doAddLine(file, lineNumber, methodName);
+    }
+    
+    /**
+     * Mark a line number as being executed.
+     * @param file The file.
+     * @param lineNumber The line number that was executed.
+     */
+    public void setLineExecuted(final String file, final int lineNumber)
+    {
+        LineInfo lineInfo = doAddLine(file, lineNumber, null);
+        lineInfo.setExecuted(true);
+    }
+    
+    /**
+     * Get a list of entries in the coverage data.
+     * 
+     * @return list of entries in the coverage data.
+     */
+    public Set<Entry<String, Map<Integer, LineInfo>>> entrySet()
+    {
+        return lineMap.entrySet();
+    }
+
+    /**
+     * Add a line to the coverage data.
+     * This line is recorded as unexecuted.
+     * 
+     * @param file The file the line is found in.
+     * @param lineNumber The line number.
+     * @param methodName The method name.
+     * @return new LineInfo object
+     */
+    private LineInfo doAddLine(final String file, final int lineNumber,
+            final String methodName)
+    {
+        Map<Integer, LineInfo> lineInfoMap = lineMap.get(file);
+        
+        if (lineInfoMap == null)
+        {
+            lineInfoMap = new TreeMap<Integer, LineInfo>();
+            lineMap.put(file, lineInfoMap);
+        }
+
+        LineInfo lineInfo = lineInfoMap.get(lineNumber);
+        
+        if (lineInfo == null)
+        {
+            lineInfo = new LineInfo(methodName, lineNumber);
+            lineInfoMap.put(lineNumber, lineInfo);
+        }
+        else if (methodName != null && lineInfo.getMethodName() == null)
+        {
+            lineInfo.setMethodName(methodName);
+        }
+        
+        return lineInfo;
+    }
+
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CoverageSummary.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CoverageSummary.java
new file mode 100755
index 0000000..ddf01a6
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CoverageSummary.java
@@ -0,0 +1,423 @@
+/*

+ *

+ *  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 org.apache.flex.tools.codecoverage.reporter;

+

+import java.util.ArrayList;

+import java.util.Collection;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.Set;

+import java.util.TreeMap;

+import java.util.TreeSet;

+import java.util.regex.Matcher;

+import java.util.regex.Pattern;

+

+/**

+ * Summary of code coverage at the package, file, and method level.

+ *

+ */

+public class CoverageSummary

+{

+    /**

+     *  Used to return the results of splitting the debugfile string. 

+     */

+    private static class FilePathComponents

+    {

+        public String packageName;

+        public String filename;

+    }

+    

+    private static final TreeSet<String> emptyTreeSet = new TreeSet<String>();

+

+    /**

+     * The coverage data being summarized.

+     */

+    private final CoverageData coverageData;

+    

+    /**

+     * Compiled regex patterns to include only specific files. 

+     */

+    private final Collection<Pattern> includeFilterPatterns = new ArrayList<Pattern>();

+    

+    /**

+     * Compiled regex patterns to exclude only specific files. 

+     */

+    private final Collection<Pattern> excludeFilterPatterns = new ArrayList<Pattern>();

+    

+    /**

+     * Coverage summary rolled up to the package level.

+     * 

+     * Key: package name

+     * Value: PackageSummaryInfo

+     */

+    private final Map<String, PackageSummaryInfo> packageSummaryMap = 

+            new TreeMap<String, PackageSummaryInfo>();

+

+    /**

+     * Coverage summary rolled up to the file level.

+     * 

+     * key: package;file

+     * value: SummaryInfo.

+     */

+    private final Map<String, SummaryInfo> fileSummaryMap = 

+            new TreeMap<String, SummaryInfo>();

+    

+    /**

+     * Coverage summary for methods.

+     * 

+     * Key: method name

+     * Value: SummaryInfo

+     */

+    private final Map<String, SummaryInfo> methodSummaryMap = 

+            new TreeMap<String, SummaryInfo>();

+    

+    /**

+     * Summary information for all packages being reported.

+     */

+    private final SummaryInfo overall = new SummaryInfo();

+    

+    /**

+     * Association of methods in a file.

+     * 

+     * Key: package;filename

+     * Value: Ordered set of method names.

+     */

+    private final Map<String, TreeSet<String>> methodsInFile =

+            new HashMap<String, TreeSet<String>>();

+

+    /**

+     * Create a coverage summmary object. The coverage summary object

+     * can process the coverage data and provide coverage data by 

+     * package, file, and method.

+     * 

+     * @param coverageData the coverage data to generate the summary from.

+     * @param includeFilters Regex filter patterns. Controls which files

+     * are included in the coverage summary.

+     * @param excludeFilters Regex filter patterns. Controls which files

+     * are excluded in the coverage summary.

+     * 

+     */

+    public CoverageSummary(final CoverageData coverageData, 

+            final Collection<String> includeFilters,

+            final Collection<String> excludeFilters)

+    {

+        this.coverageData = coverageData;

+        

+        initializePatterns(includeFilters, excludeFilters);

+    }

+    

+    /**

+     * Get the coverage data the summary is generated from.

+     * @return the coverage data.

+     */

+    public CoverageData getCoverageData()

+    {

+        return coverageData;

+    }

+

+    /**

+     * Get the aggregate summary info of all the included packages.

+     * 

+     * @return aggregate summary info.

+     */

+    public SummaryInfo getOverallSummaryInfo()

+    {

+        return overall;

+    }

+    

+    /**

+     * Entry set of all included packages.

+     * 

+     * @return Set of packages included in summary data.

+     */

+    public Set<Map.Entry<String, PackageSummaryInfo>> getPackageSummaryEntrySet()

+    {

+        return packageSummaryMap.entrySet();

+    }

+    

+    /**

+     * Entry set of all files included in the summary data.

+     * 

+     * @return Entry set

+     */

+    public Set<Map.Entry<String, SummaryInfo>> getFileSummaryEntrySet()

+    {

+        return fileSummaryMap.entrySet();

+    }

+

+    /**

+     * Get the coverage summmary info for a specific file.

+     * 

+     * @param packageFileKey key formed by calling createPackageFileKey().

+     * @return SummaryInfo for the specified file or null the file is

+     * not included in the summary data.

+     */

+    public SummaryInfo getFileSummaryInfo(final String packageFileKey)

+    {

+        return fileSummaryMap.get(packageFileKey);

+    }

+

+    /**

+     * Get the summary info for a specific method.

+     * 

+     * @param methodName The name of the method to get the summary info for.

+     * @return SummyInfo for the specified method or null if the method is

+     * not included in the summary data.

+     */

+    public SummaryInfo getMethodSummaryInfo(String methodName)

+    {

+        return methodSummaryMap.get(methodName);

+    }

+    

+    /**

+     * A set of methods declared in the specified file.

+     * 

+     * @param filename The name of the AS or MXML file.

+     * @return Set of method names.

+     */

+    public Set<String> getMethodsInFile(String filename)

+    {

+        TreeSet<String> results = methodsInFile.get(filename);

+        return results != null ? results : emptyTreeSet;

+    }

+    

+    /**

+     * Roll up the coverage data at a method, file, and package level.

+     * If include filters and/or exclude filters are specified then

+     * they are applied that this time.

+     */

+    public void processCoverageData()

+    {

+        // for all packages;files

+        for (Map.Entry<String, Map<Integer, LineInfo>> fileEntry : coverageData.entrySet())

+        {

+            final String packageFile = fileEntry.getKey();

+            final FilePathComponents fileComponents = splitPackageFile(packageFile);

+            final SummaryInfo summaryInfo = new SummaryInfo();

+            summaryInfo.setName(fileComponents.filename);

+            

+            // for all line numbers; 

+            // 1. summary at the file level

+            // 2. record execution status for each method.

+            for (final Map.Entry<Integer, LineInfo> lineEntry : fileEntry.getValue().entrySet())

+            {

+                final LineInfo lineInfo = lineEntry.getValue();

+                final String methodName = lineInfo.getMethodName();

+                

+                if (!shouldIncludeFile(fileComponents))

+                    continue;

+                

+                summaryInfo.setLineExecutionStatus(lineInfo.getLineNumber(),

+                        methodName, lineInfo.isExecuted());

+

+                addMethodSummaryInfo(fileComponents.packageName,

+                        fileComponents.filename, methodName, lineInfo);

+            }

+

+            addFileSummaryInfo(fileComponents.packageName,

+                    fileComponents.filename, summaryInfo);

+        }

+    }

+    

+    /**

+     * Determine if a file should be included in the summary.

+     * If no include filters or exclude filters are specified then

+     * all files are included.

+     * 

+     * @param pathComponents The package and file name to test.

+     * @return true if the package should be included, false otherwise.

+     */

+    private boolean shouldIncludeFile(final FilePathComponents pathComponents)

+    {

+        String className = pathComponents.packageName + "." + pathComponents.filename;

+        final int index = className.lastIndexOf('.');

+        

+        assert index != -1 : "no suffix found on filename";

+        

+        className = className.substring(0, index);

+        

+        // a class name is included if it is included by the pattern

+        // and not exclude by the exclude filters.

+        if (!(includeFilterPatterns.size() == 0) && 

+            !matches(includeFilterPatterns, className))

+        {

+            return false;

+        }

+        

+        if (!(excludeFilterPatterns.size() == 0) &&

+            matches(excludeFilterPatterns, className))

+        {

+            return false;

+        }

+        

+        return true;

+    }

+

+    /**

+     * Utility to test is a string matches one of a set of patterns.

+     * 

+     * @param patterns Collection of patterns

+     * @param value The value to match

+     * @return true if the pattern matches, false otherwise.

+     */

+    private boolean matches(final Collection<Pattern> patterns, final String value)

+    {

+        for (Pattern pattern : patterns)

+        {

+            Matcher matcher = pattern.matcher(value);

+            if (matcher.matches())

+                return true;

+        }

+

+        return false;

+    }

+    

+    /**

+     * Create a combination package/file key.

+     * 

+     * @param packageName The package name part of the key.

+     * @param filename THe filename part of the key.

+     * @return Key for the package/file.

+     */

+    public String createPackageFileKey(final String packageName, final String filename)

+    {

+        return packageName + ";" + filename;

+    }

+

+    /**

+     * Split a sourcePath;package/file string. These string come from the 

+     * AS debug_file opcodes and are in the code coverage data files.

+     * 

+     * @param packageFile The string to split into components.

+     * @return FilePathComponents

+     */

+    private FilePathComponents splitPackageFile(final String packageFile)

+    {

+        final String[] splitResults = packageFile.split(";");

+        String packageName = splitResults.length > 1 ? 

+                splitResults[splitResults.length - 2] : "";

+        final String filename = splitResults[splitResults.length - 1];

+        

+        // convert '\' and '/' path separators to '.' package separators.

+        if (packageName.length() > 0)

+            packageName = packageName.replaceAll("[\\\\/]", ".");

+        

+        final FilePathComponents results = new FilePathComponents();

+        results.packageName = packageName;

+        results.filename = filename;

+        

+        return results;

+    }

+

+    /**

+     * Aggregate summary information for a file.

+     * 

+     * This method takes summary information for a file

+     * and aggregates them at the file, package, and overall coverage.

+     * 

+     * @param packageName Package name the summary info is for.

+     * @param filename The file name the summary info is for.

+     * @param summaryInfo The summary info to aggregate.

+     */

+    private void addFileSummaryInfo(final String packageName, final String filename, 

+            final SummaryInfo summaryInfo)

+    {

+        if (summaryInfo.getTotalLineCount() == 0)

+            return;

+        

+        // summarize at the package level

+        fileSummaryMap.put(createPackageFileKey(packageName, filename), summaryInfo);

+        PackageSummaryInfo packageSummaryInfo = packageSummaryMap.get(packageName);

+        if (packageSummaryInfo == null)

+        {

+            packageSummaryInfo = new PackageSummaryInfo();

+            packageSummaryInfo.getSummaryInfo().setName(packageName);

+            packageSummaryMap.put(packageName, packageSummaryInfo);

+        }

+

+        packageSummaryInfo.addFile(packageName, filename);

+        packageSummaryInfo.add(summaryInfo);

+        

+        // summary of all of the packages

+        overall.add(summaryInfo);

+    }

+    

+    /**

+     * Add line coverage information about a method.

+     * 

+     * This method aggregates the line coverage information for a method.

+     * 

+     * @param packageName The name of the package the line info is from.

+     * @param filename The name of the file the line info is from.

+     * @param methodName The name of the method the line info is from.

+     * @param lineInfo The line info.

+     */

+    private void addMethodSummaryInfo(final String packageName, final String filename, 

+            final String methodName, final LineInfo lineInfo)

+    {

+        // ignore cinit and script init methods.

+        if (methodName == null || methodName.isEmpty())

+            return;

+        

+        // method summary info

+        SummaryInfo methodSummaryInfo = methodSummaryMap.get(methodName);

+        if (methodSummaryInfo == null)

+        {

+            methodSummaryInfo = new SummaryInfo();

+            methodSummaryInfo.setName(methodName);

+            methodSummaryMap.put(methodName, methodSummaryInfo);

+

+            final String key = createPackageFileKey(packageName, filename);

+            TreeSet<String> treeSet = methodsInFile.get(key);

+            if (treeSet == null)

+            {

+                treeSet = new TreeSet<String>();

+                treeSet.add(methodName);

+                methodsInFile.put(key, treeSet);                

+            }

+            

+            treeSet.add(methodName);

+        }

+        

+        methodSummaryInfo.setLineExecutionStatus(lineInfo.getLineNumber(),

+                methodName, lineInfo.isExecuted());

+    }

+

+    /**

+     * Initialize the patterns for the include and exclude filters.

+     * 

+     * @param includeFilters regex strings of classes to include.

+     * @param excludeFilters regex strings of classes to exclude.

+     */

+    private void initializePatterns(final Collection<String> includeFilters, 

+            final Collection<String>excludeFilters)

+    {

+        for (final String includeFilter : includeFilters)

+        {

+            includeFilterPatterns.add(Pattern.compile(includeFilter));

+        }

+

+        for (final String excludeFilter : excludeFilters)

+        {

+            excludeFilterPatterns.add(Pattern.compile(excludeFilter));

+        }

+    }

+    

+}

diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/LineInfo.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/LineInfo.java
new file mode 100755
index 0000000..1c22e93
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/LineInfo.java
@@ -0,0 +1,107 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.reporter;
+
+/**
+ * Simple value class that contains information about a line number in a source
+ * file.
+ * 
+ * Tracks:
+ * 1. the line number of this line
+ * 2. if the line was executed or not
+ * 3. the name of the method the line is in.
+ */
+public class LineInfo 
+{
+    private int lineNumber;
+    private boolean executed;
+    private String methodName;
+
+    /**
+     * Create an instance of LineInfo.
+     * 
+     * @param methodName The name of the method.
+     * @param lineNumber The source line number. 
+     */
+    public LineInfo(final String methodName, final int lineNumber)
+    {
+        this.methodName = methodName;
+        this.lineNumber = lineNumber;
+    }
+
+    /**
+     * The source line number of this line.
+     * @return the line number
+     */
+    public int getLineNumber()
+    {
+        return lineNumber;
+    }
+    
+    /**
+     * Set the source line number of this line.
+     * 
+     * @param lineNumber
+     */
+    public void setLineNumber(final int lineNumber)
+    {
+        this.lineNumber = lineNumber;
+    }
+    
+    /**
+     * Has the line been executed?
+     * 
+     * @return true if the line has been executed, false otherwise.
+     */
+    public boolean isExecuted()
+    {
+        return executed;
+    }
+    
+    /**
+     * Set the line number as being executed.
+     * 
+     * @param executed true if the line has been hit, false otherwise.
+     */
+    public void setExecuted(final boolean executed)
+    {
+        this.executed = executed;
+    }
+    
+    /**
+     * The method name containing this line.
+     * 
+     * @return The method name or an empty string if no method name is set.
+     */
+    public String getMethodName()
+    {
+        return methodName != null ? methodName : "";
+    }
+    
+    /**
+     * Set the method name this line is contained in.
+     * 
+     * @param methodName
+     */
+    public void setMethodName(final String methodName)
+    {
+        this.methodName = methodName;
+    }
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/PackageSummaryInfo.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/PackageSummaryInfo.java
new file mode 100755
index 0000000..6e1fcdc
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/PackageSummaryInfo.java
@@ -0,0 +1,77 @@
+/*

+ *

+ *  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 org.apache.flex.tools.codecoverage.reporter;

+

+import java.util.Set;

+import java.util.TreeSet;

+

+/**

+ *  Summary of a package's coverage information.

+ *  Contains coverage summary of all of the files in the package.

+ */

+public class PackageSummaryInfo

+{

+    private Set<String> filesInPackage = new TreeSet<String>();

+    private SummaryInfo summaryInfo = new SummaryInfo();

+    

+    /**

+     * Set of files in a package.

+     * 

+     * @return The set files in the package. Each item in the

+     * set is a combined package name/filename in the following

+     * format: "packageName;filename".

+     */

+    public Set<String> getFilesInPackage()

+    {

+        return filesInPackage;

+    }

+

+    /**

+     * Add a file to this package summary info.

+     * 

+     * @param packageName The package name to add the summary info to.

+     * @param filename The name of file to add to the package.

+     */

+    public void addFile(final String packageName, final String filename)

+    {

+        filesInPackage.add(packageName + ";" + filename);

+    }

+    

+    /**

+     * The rolled up summary info for a package.

+     * 

+     * @return SummaryInfo

+     */

+    public SummaryInfo getSummaryInfo()

+    {

+        return summaryInfo;

+    }

+    

+    /**

+     * Aggregate summary info to this package.

+     * 

+     * @param info The summary info.

+     */

+    public void add(final SummaryInfo info)

+    {

+        summaryInfo.add(info);

+    }

+    

+}

diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/SummaryInfo.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/SummaryInfo.java
new file mode 100755
index 0000000..08e490a
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/SummaryInfo.java
@@ -0,0 +1,187 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.reporter;
+
+import java.util.Collections;
+import java.util.Set;
+import java.util.TreeSet;
+
+/**
+ * Simple value class to record summary information on the lines executed vs the
+ * total number of lines.
+ * 
+ * This information can be used for reporting at the package, file, and method
+ * level.
+ * 
+ * 1. total executed lines 
+ * 2. total number of lines 
+ * 3. total executed methods
+ * 4. total number of methods
+ * 
+ */
+public class SummaryInfo
+{
+    // name of object the summary info is for.
+    private String name;
+
+    /**
+     * The set of executed lines in sorted order.
+     */
+    private final Set<Integer> executedLineSet = new TreeSet<Integer>();
+
+    /**
+     * The set of unexecuted lines in sorted order.
+     */
+    private final Set<Integer> unexecutedLineSet = new TreeSet<Integer>();
+
+    /**
+     * The set of executed lines in sorted order.
+     */
+    private final Set<String> executedMethodSet = new TreeSet<String>();
+    private final Set<String> unexecutedMethodSet = new TreeSet<String>();
+
+    /**
+     * Name of the object the summary information applies to.
+     * @return name of the object.
+     */
+    public String getName()
+    {
+        return name != null ? name : "";
+    }
+
+    /**
+     * Set the name of the object the summary information applies to.
+     * @param name Name of the object.
+     */
+    public void setName(final String name)
+    {
+        this.name = name;
+    }
+
+    /**
+     * @return Number of executed lines.
+     */
+    public int getExecutedLineCount()
+    {
+        return executedLineSet.size();
+    }
+
+    /**
+     * 
+     * @return total number of lines.
+     */
+    public int getTotalLineCount()
+    {
+        return executedLineSet.size() + unexecutedLineSet.size();
+    }
+
+    /**
+     * 
+     * @return Number of methods executed.
+     */
+    public int getExecutedMethodCount()
+    {
+        return executedMethodSet.size();
+    }
+
+    /**
+     * 
+     * @return Total number of methods.
+     */
+    public int getTotalMethodCount()
+    {
+        return executedMethodSet.size() + unexecutedMethodSet.size();
+    }
+
+    /**
+     * The set of unexecuted lines.
+     * 
+     * @return Set of executed lines, sorted in ascending order.
+     */
+    public Set<Integer> getUnexecutedLines()
+    {
+        return Collections.unmodifiableSet(unexecutedLineSet);
+    }
+    
+    /**
+     * The set of unexecuted methods.
+     * 
+     * @return Set of executed methods, sorted in ascending order.
+     */
+    public Set<String> getUnexecutedMethods()
+    {
+        return Collections.unmodifiableSet(unexecutedMethodSet);
+    }
+    
+    /**
+     * Set the execution status of a given line and method.
+     * 
+     * @param lineNumber The line number of the line.
+     * @param methodName The name of the method containing the line.
+     * @param executed true if the line is executed, false otherwise.
+     */
+    public void setLineExecutionStatus(final int lineNumber, String methodName,
+            final Boolean executed)
+    {
+        if (executedLineSet.contains(lineNumber))
+            return;
+
+        // fixup method name that were not executed.
+        if (methodName == null)
+            methodName = "";
+
+        if (executed)
+        {
+            unexecutedLineSet.remove(lineNumber);
+            executedLineSet.add(lineNumber);
+
+            // ignore empty method names.
+            // these are cinit and script init methods.
+            if (!methodName.isEmpty())
+            {
+                unexecutedMethodSet.remove(methodName);
+                executedMethodSet.add(methodName);
+            }
+        }
+        else
+        {
+            unexecutedLineSet.add(lineNumber);
+
+            // ignore empty method names.
+            // these are cinit and script init methods.
+            if (!methodName.isEmpty())
+                unexecutedMethodSet.add(methodName);
+        }
+    }
+
+    /**
+     * Add the passed summary info to the current set of summary info.
+     * 
+     * @param summaryInfo
+     *            summary information to add in, may not be null.
+     */
+    public void add(final SummaryInfo summaryInfo)
+    {
+        unexecutedLineSet.addAll(summaryInfo.unexecutedLineSet);
+        unexecutedMethodSet.addAll(summaryInfo.unexecutedMethodSet);
+        executedLineSet.addAll(summaryInfo.executedLineSet);
+        executedMethodSet.addAll(summaryInfo.executedMethodSet);
+    }
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/SummaryType.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/SummaryType.java
new file mode 100755
index 0000000..cd6be2f
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/SummaryType.java
@@ -0,0 +1,29 @@
+/*

+ *

+ *  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 org.apache.flex.tools.codecoverage.reporter;

+

+/**

+ * The type of summary info, either line or method.

+ */

+public enum SummaryType

+{

+    LINE,

+    METHOD

+}
\ No newline at end of file
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/IReportFactory.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/IReportFactory.java
new file mode 100755
index 0000000..7603726
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/IReportFactory.java
@@ -0,0 +1,37 @@
+/*

+ *

+ *  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 org.apache.flex.tools.codecoverage.reporter.reports;

+

+/**

+ * Interface for code coverage report factories.

+ * 

+ * The default report factory can overridden by specifying the fully qualified

+ * class name of a report factory with the -report-factory command line option.

+ * 

+ */

+public interface IReportFactory

+{

+    /**

+     * Create a report writer that will output the code coverage report.

+     * 

+     * @param reportOptions Options to control the contents of the report. 

+     */

+    IReportWriter createReport(ReportOptions reportOptions);

+}

diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/IReportWriter.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/IReportWriter.java
new file mode 100755
index 0000000..353cd0f
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/IReportWriter.java
@@ -0,0 +1,40 @@
+/*

+ *

+ *  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 org.apache.flex.tools.codecoverage.reporter.reports;

+

+import java.io.BufferedWriter;

+

+import org.apache.flex.tools.codecoverage.reporter.CoverageSummary;

+

+/**

+ * Interface to a report writer.

+ *

+ * Allow for different reports to be created.

+ */

+public interface IReportWriter

+{

+    /**

+     * Write a report to the specified writer.

+     * 

+     * @param writer The writer.

+     * @param coverageSummary A summary of the coverage data.

+     */

+    void writeTo(BufferedWriter writer, CoverageSummary coverageSummary);

+}

diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/ReportOptions.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/ReportOptions.java
new file mode 100644
index 0000000..ac129ff
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/ReportOptions.java
@@ -0,0 +1,204 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.reporter.reports;
+
+import java.util.Collection;
+
+/**
+ *  Code Coverage Report options. 
+ *
+ */
+public class ReportOptions 
+{
+    private Collection<String> includeFilters;
+    private Collection<String> excludeFilters;
+    private boolean showPackages = true;
+    private boolean showFiles = true;
+    private boolean showMethods = true;
+    private boolean showUnexecutedDetails = false;
+    
+    /**
+     * Constructor.
+     * 
+     * @param includeFilters User specified include filters. 
+     * Equivalent to the -includes command line argument. 
+     * @param excludeFilters User specified exclude filters.
+     * Equivalent to the -excludes command line argument. 
+     * @param showPackages Determines if packages are listed in the report.
+     * Equivalent to the -showPackages command line argument.
+     * @param showFiles Determines if files are listed in the report. Files
+     * will not be show if packages are not shown.
+     * Equivalent to the -showFiles command line argument.
+     * @param showMethods Determines if method are listed in the report.
+     * Equivalent to the -showMethods command line argument.
+     * @param showUnexecutedDetails Determines if unexecuted lines and methods are
+     * listed in the report.
+     * Equivalent to the -showUnexecutedDetails command line argument. 
+     */
+    public ReportOptions(Collection<String> includeFilters,
+            Collection<String> excludeFilters, boolean showPackages,
+            boolean showFiles, boolean showMethods,
+            boolean showUnexecutedDetails)
+    {
+        super();
+        this.includeFilters = includeFilters;
+        this.excludeFilters = excludeFilters;
+        this.showPackages = showPackages;
+        this.showFiles = showFiles;
+        this.showMethods = showMethods;
+        this.showUnexecutedDetails = showUnexecutedDetails;
+    }
+
+    /**
+     * User specified include filters. 
+     * Equivalent to the -includes command line argument.
+     *  
+     * @return Collection of user filters.
+     */
+    public Collection<String> getIncludeFilters()
+    {
+        return includeFilters;
+    }
+    
+    /**
+     * Equivalent to the -includes command line argument.
+     *  
+     * @param includeFilters Collection of filters to include classes in the 
+     * report. 
+     */
+    public void setIncludeFilters(Collection<String> includeFilters)
+    {
+        this.includeFilters = includeFilters;
+    }
+
+    /**
+     * User specified exclude filters.
+     * Equivalent to the -excludes command line argument. 
+     * 
+     * @return Collection of filters to exclude classes from the report.
+     */
+    public Collection<String> getExcludeFilters()
+    {
+        return excludeFilters;
+    }
+
+    /**
+     * Equivalent to the -excludes command line argument. 
+     *
+     * @param excludeFilters Collection of filters to exclude classes from
+     * the report.
+     */
+    public void setExcludeFilters(Collection<String> excludeFilters)
+    {
+        this.excludeFilters = excludeFilters;
+    }
+    
+    /**
+     * Determines if packages are listed in the report.
+     * Equivalent to the -showPackages command line argument.
+     * 
+     * @return true if packages are listed in the report, false otherwise.
+     */
+    public boolean isShowPackages()
+    {
+        return showPackages;
+    }
+
+    /**
+     * Determines if packages are listed in the report.
+     * Equivalent to the -showPackages command line argument.
+     * 
+     * @param showPackages Set to true to show packages in the report.
+     */
+    public void setShowPackages(boolean showPackages)
+    {
+        this.showPackages = showPackages;
+    }
+
+    /**
+     * Determines if files are listed in the report.
+     * Equivalent to the -showFiles command line argument.
+     * 
+     * @return true if files are listed in the report, false otherwise.
+     */
+    public boolean isShowFiles()
+    {
+        return showFiles;
+    }
+    
+    /**
+     * Determines if files are listed in the report.
+     * Equivalent to the -showFiles command line argument.
+     * 
+     * @param showFiles Set to true to show files in the report.
+     */
+    public void setShowFiles(boolean showFiles)
+    {
+        this.showFiles = showFiles;
+    }
+    
+    /**
+     * Determines if methods are listed in the report.
+     * Equivalent to the -showMethods command line argument.
+     * 
+     * @return true if methods are listed in the report, false otherwise.
+     */
+    public boolean isShowMethods()
+    {
+        return showMethods;
+    }
+
+    /**
+     * Determines if methods are listed in the report.
+     * Equivalent to the -showMethods command line argument.
+     * 
+     * @param showFiles Set to true to show methods in the report.
+     */
+    public void setShowMethods(boolean showMethods)
+    {
+        this.showMethods = showMethods;
+    }
+    
+    /**
+     * Determines if unexecuted lines and unexecuted methods are listed in the
+     * report.
+     * Equivalent to the -showUnexecutedDetails command line argument.
+     * 
+     * @return true if unexecuted lines and unexecuted are listed in the 
+     * report, false otherwise.
+     */
+    public boolean isShowUnexecutedDetails()
+    {
+        return showUnexecutedDetails;
+    }
+
+    /**
+     * Determines if unexecuted lines and unexecuted methods are listed in the
+     * report.
+     * Equivalent to the -showUnexecutedDetails command line argument.
+     * 
+     * @param showUnexecutedDetails Set to true to show methods in the report.
+     */
+    public void setShowUnexecutedDetails(boolean showUnexecutedDetails)
+    {
+        this.showUnexecutedDetails = showUnexecutedDetails;
+    }
+
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/XMLReportFactory.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/XMLReportFactory.java
new file mode 100755
index 0000000..d5e405f
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/XMLReportFactory.java
@@ -0,0 +1,36 @@
+/*

+ *

+ *  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 org.apache.flex.tools.codecoverage.reporter.reports;

+

+/**

+ * Factory for an XML report of code coverage.

+ * This is the default factory.

+ * 

+ */

+public class XMLReportFactory implements IReportFactory

+{

+

+    @Override

+    public IReportWriter createReport(ReportOptions reportOptions)

+    {

+        return new XMLReportWriter(reportOptions);

+    }

+

+}

diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/XMLReportWriter.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/XMLReportWriter.java
new file mode 100755
index 0000000..aeeec72
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/reports/XMLReportWriter.java
@@ -0,0 +1,371 @@
+/*

+ *

+ *  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 org.apache.flex.tools.codecoverage.reporter.reports;

+

+import java.io.BufferedWriter;

+import java.util.Collection;

+import java.util.Map;

+import java.util.Set;

+

+import javax.xml.stream.XMLOutputFactory;

+import javax.xml.stream.XMLStreamException;

+import javax.xml.stream.XMLStreamWriter;

+

+import org.apache.flex.tools.codecoverage.reporter.CoverageSummary;

+import org.apache.flex.tools.codecoverage.reporter.PackageSummaryInfo;

+import org.apache.flex.tools.codecoverage.reporter.SummaryInfo;

+import org.apache.flex.tools.codecoverage.reporter.SummaryType;

+

+/**

+ * XML formatted code coverage report.

+ *

+ */

+public class XMLReportWriter implements IReportWriter

+{

+    private static final String REPORT_VERSION = "1.0";

+    

+    private Collection<String> includeFilters;

+    private Collection<String> excludeFilters;

+    private boolean showPackages;

+    private boolean showFiles;

+    private boolean showMethods;

+    private boolean showUnexecutedDetails;

+    

+    /**

+     * Constructor.

+     * 

+     * @param reportOptions Options to control the contents of the report. 

+     */

+    public XMLReportWriter(final ReportOptions reportOptions)

+    {

+        this.includeFilters = reportOptions.getIncludeFilters();

+        this.excludeFilters = reportOptions.getExcludeFilters();

+        this.showPackages = reportOptions.isShowPackages();

+        this.showFiles = reportOptions.isShowFiles();

+        this.showMethods = reportOptions.isShowMethods();

+        this.showUnexecutedDetails = reportOptions.isShowUnexecutedDetails();

+    }

+

+    @Override

+    public void writeTo(final BufferedWriter writer, final CoverageSummary coverageSummary)

+    {

+        final XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance();

+        assert xmlOutputFactory != null : "Expect XMLOutputFactory implementation.";

+

+        try

+        {

+            final XMLStreamWriter xmlWriter = xmlOutputFactory.

+                    createXMLStreamWriter(writer);

+            xmlWriter.writeStartDocument("utf-8", "1.0");

+            

+            // write top-level report

+            outputTopLevelStart(xmlWriter, coverageSummary.getOverallSummaryInfo());

+            

+            if (showPackages)

+            {

+                // start package element

+                xmlWriter.writeStartElement("packages");

+                

+                for (Map.Entry<String, PackageSummaryInfo> packageEntry :

+                     coverageSummary.getPackageSummaryEntrySet())

+                {

+                    PackageSummaryInfo packageSummary = packageEntry.getValue();

+                    outputPackageCoverageStart(xmlWriter, packageSummary.getSummaryInfo());

+

+                    if (showFiles)

+                    {

+                        outputFiles(xmlWriter, packageSummary, coverageSummary);

+                    }

+

+                    xmlWriter.writeEndElement(); // package

+                }

+                

+                xmlWriter.writeEndElement(); // packages

+            }

+

+            xmlWriter.writeEndElement(); // code-coverage (top-level)

+            xmlWriter.writeEndDocument();

+            xmlWriter.close();

+        }

+        catch (XMLStreamException e)

+        {

+            e.printStackTrace();

+        }

+

+    }

+    

+    /**

+     * Output the files xml and its children.

+     * 

+     * @param xmlWriter

+     * @param packageSummary

+     * @param coverageSummary

+     * @throws XMLStreamException

+     */

+    private void outputFiles(final XMLStreamWriter xmlWriter,

+            final PackageSummaryInfo packageSummary, 

+            final CoverageSummary coverageSummary) throws XMLStreamException

+    {

+        // start file element

+        xmlWriter.writeStartElement("files");

+

+        for (final String packageFileKey : packageSummary.getFilesInPackage()) 

+        {

+            final SummaryInfo fileSummary = coverageSummary.getFileSummaryInfo(packageFileKey);

+            outputFileCoverageStart(xmlWriter, fileSummary);

+            

+            final Set<String> methodNames = coverageSummary.getMethodsInFile(packageFileKey);

+            if (showMethods && !methodNames.isEmpty())

+            {

+                // start method element

+                xmlWriter.writeStartElement("methods");

+

+                for (final String methodName : methodNames)

+                {

+                    SummaryInfo methodSummary = coverageSummary.

+                            getMethodSummaryInfo(methodName);

+                    outputMethodNameCoverage(xmlWriter, methodSummary);

+                }

+                

+                xmlWriter.writeEndElement(); // methods

+            }

+            

+            xmlWriter.writeEndElement(); // file

+        }

+

+        xmlWriter.writeEndElement(); // files

+    }

+

+    /**

+     * Output the coverage information for a method.

+     * 

+     * @param xmlWriter

+     * @param summaryInfo

+     * @throws XMLStreamException

+     */

+    private void outputMethodNameCoverage(final XMLStreamWriter xmlWriter,

+            final SummaryInfo summaryInfo) throws XMLStreamException

+    {

+        xmlWriter.writeStartElement("method");

+        xmlWriter.writeAttribute("name", summaryInfo.getName());

+

+        outputLineCoverage(xmlWriter, summaryInfo, false);

+        outputMethodCoverage(xmlWriter, summaryInfo, false);  

+        xmlWriter.writeEndElement();

+    }

+

+    /**

+     * Output the start element for file coverage information.

+     * 

+     * @param xmlWriter

+     * @param summaryInfo

+     * @throws XMLStreamException

+     */

+    private void outputFileCoverageStart(final XMLStreamWriter xmlWriter,

+            final SummaryInfo summaryInfo) throws XMLStreamException

+    {

+        xmlWriter.writeStartElement("file");

+        xmlWriter.writeAttribute("name", summaryInfo.getName());

+

+        outputLineCoverage(xmlWriter, summaryInfo, showUnexecutedDetails);

+        outputMethodCoverage(xmlWriter, summaryInfo, showUnexecutedDetails);  

+    }

+

+    /**

+     * Output code coverage for a package.

+     * @param xmlWriter

+     * @param summaryInfo

+     * @throws XMLStreamException

+     */

+    private void outputPackageCoverageStart(final XMLStreamWriter xmlWriter,

+            final SummaryInfo summaryInfo) throws XMLStreamException

+    {

+        xmlWriter.writeStartElement("package");

+        xmlWriter.writeAttribute("name", summaryInfo.getName());

+

+        outputLineCoverage(xmlWriter, summaryInfo, false);

+        outputMethodCoverage(xmlWriter, summaryInfo, false);

+    }

+

+    /**

+     * Output top level summary information

+     * 

+     * @param summaryInfo overall coverage info.

+     * @throws XMLStreamException 

+     */

+    private void outputTopLevelStart(final XMLStreamWriter xmlWriter,

+            final SummaryInfo summaryInfo) throws XMLStreamException

+    {

+        xmlWriter.writeStartElement("code-coverage");

+        xmlWriter.writeAttribute("version", REPORT_VERSION);

+        

+        outputLineCoverage(xmlWriter, summaryInfo, false);

+        outputMethodCoverage(xmlWriter, summaryInfo, false);

+        outputFilter(xmlWriter, "include-filter");

+        outputFilter(xmlWriter, "exclude-filter");

+    }

+

+    /**

+     * Output filters as part of the report.

+     * 

+     * @param xmlWriter

+     * @param filterName The name of the filter to output.

+     * @throws XMLStreamException 

+     */

+    private void outputFilter(final XMLStreamWriter xmlWriter,

+            final String filterName) throws XMLStreamException

+    {

+        Collection<String> filters = null;

+        String startElementName = null;

+        

+        if ("include-filter".equals(filterName))

+        {

+            startElementName = "include-filters";

+            filters = includeFilters;

+        }

+        else if ("exclude-filter".equals(filterName))

+        {

+            startElementName = "exclude-filters";

+            filters = excludeFilters;            

+        }

+        else 

+        {

+            throw new IllegalArgumentException("unexpected filter name:" + filterName);

+        }

+

+        if (filters.isEmpty())

+            return;

+        

+        xmlWriter.writeStartElement(startElementName);

+        

+        for (final String filter : filters)

+        {

+            xmlWriter.writeStartElement(filterName);

+            xmlWriter.writeCharacters(filter);

+            xmlWriter.writeEndElement();

+        }

+        

+        xmlWriter.writeEndElement();

+    }

+

+    /**

+     * Common method to output line coverage information.

+     * 

+     * @param xmlWriter

+     * @param overall

+     * @throws XMLStreamException 

+     */

+    private void outputLineCoverage(final XMLStreamWriter xmlWriter,

+            final SummaryInfo overall, boolean showDetails) throws XMLStreamException

+    {

+        outputSummaryInfo(xmlWriter, "line-coverage", overall, SummaryType.LINE, showDetails);

+    }

+

+    /**

+     * Common method to output method coverage information.

+     * 

+     * @param xmlWriter

+     * @param overall

+     * @throws XMLStreamException 

+     */

+    private void outputMethodCoverage(final XMLStreamWriter xmlWriter,

+            final SummaryInfo overall, final boolean showDetails) 

+            throws XMLStreamException

+    {

+        outputSummaryInfo(xmlWriter, "method-coverage", overall, 

+                SummaryType.METHOD, showDetails);

+    }

+

+    /**

+     * Common method to output summary information.

+     * 

+     * @param xmlWriter The writer.

+     * @param elementName The name of the element.

+     * @param summaryInfo The summary info to output.

+     * @param summaryType Choose either LINE or METHOD.

+     * @param showDetails Show the lines/methods that were not executed.

+     * @throws XMLStreamException 

+     */

+    private void outputSummaryInfo(final XMLStreamWriter xmlWriter,

+            final String elementName,

+            final SummaryInfo summaryInfo, 

+            final SummaryType summaryType,

+            final boolean showDetails) throws XMLStreamException

+    {

+        xmlWriter.writeStartElement(elementName);

+

+        final int executed;

+        final int total;

+        final int percent;

+        Set<?> items = null;

+        

+        if (summaryType == SummaryType.LINE)

+        {

+            executed = summaryInfo.getExecutedLineCount();

+            total = summaryInfo.getTotalLineCount();

+            percent = total == 0 ? 0 : executed * 100 / total;

+            if (showDetails)

+                items = summaryInfo.getUnexecutedLines();

+        }

+        else

+        {

+            executed = summaryInfo.getExecutedMethodCount();

+            total = summaryInfo.getTotalMethodCount();

+            percent = total == 0 ? 0 : executed * 100 / total; 

+            if (showDetails)

+                items = summaryInfo.getUnexecutedMethods();

+        }

+        

+        xmlWriter.writeAttribute("executed", Integer.toString(executed));

+        xmlWriter.writeAttribute("total", Integer.toString(total));

+        xmlWriter.writeAttribute("percent", Integer.toString(percent));

+        

+        if (showDetails)

+            outputUnexecutedSet(xmlWriter, items);

+        

+        xmlWriter.writeEndElement();

+    }

+

+    /**

+     * Output unexecuted lines or methods.

+     * 

+     * @param xmlWriter

+     * @param items

+     * @throws XMLStreamException

+     */

+    private void outputUnexecutedSet(final XMLStreamWriter xmlWriter,

+            final Set<?> items) throws XMLStreamException

+    {

+        if (items == null || items.isEmpty())

+            return;

+        

+        xmlWriter.writeStartElement("unexecuted-set");

+        

+        for (Object item : items)

+        {

+            xmlWriter.writeStartElement("unexecuted");

+            xmlWriter.writeCharacters(item.toString());

+            xmlWriter.writeEndElement();

+        }

+        

+        xmlWriter.writeEndElement();

+    }

+

+}

diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/swf/DebugLineVisitor.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/swf/DebugLineVisitor.java
new file mode 100755
index 0000000..648e19b
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/swf/DebugLineVisitor.java
@@ -0,0 +1,239 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.reporter.swf;
+
+import org.apache.flex.abc.ABCConstants;
+import org.apache.flex.abc.Pool;
+import org.apache.flex.abc.instructionlist.InstructionList;
+import org.apache.flex.abc.semantics.ExceptionInfo;
+import org.apache.flex.abc.semantics.Instruction;
+import org.apache.flex.abc.semantics.Label;
+import org.apache.flex.abc.semantics.MethodBodyInfo;
+import org.apache.flex.abc.semantics.MethodInfo;
+import org.apache.flex.abc.semantics.Name;
+import org.apache.flex.abc.visitors.IMethodBodyVisitor;
+import org.apache.flex.abc.visitors.IMethodVisitor;
+import org.apache.flex.abc.visitors.ITraitsVisitor;
+import org.apache.flex.abc.visitors.NilABCVisitor;
+import org.apache.flex.abc.visitors.NilVisitors;
+import org.apache.flex.tools.codecoverage.reporter.CoverageData;
+
+/**
+ * Gather all the debug lines and method in a SWF file. 
+ * Look for debug_file and debug_line op codes and record them so we know all
+ * of possible lines in the SWF that can be executed.
+ *
+ */
+public class DebugLineVisitor extends NilABCVisitor
+{
+
+    private final Pool<String> stringPool = new Pool<String>(Pool.DefaultType.HasDefaultZero);
+    private final CoverageData coverageData;
+
+    /**
+     * Constructor
+     * 
+     * @param coverageData The coverage data where debug lines will be added
+     * as unexecuted lines. If a line is already in the coverage data and is
+     * marked as executed, then it will remain an executed line.
+     */
+    public DebugLineVisitor(final CoverageData coverageData)
+    {
+        this.coverageData = coverageData;
+    }
+
+    @Override
+    public IMethodVisitor visitMethod(MethodInfo minfo)
+    {
+        return new MethodVisitor();
+    }
+
+    @Override
+    public void visitPooledString(String s)
+    {
+        stringPool.add(s);
+    }
+
+    /**
+     * Visit all the methods in the ABC.
+     */
+    private class MethodVisitor implements IMethodVisitor
+    {
+        @Override
+        public void visitEnd()
+        {
+        }
+
+        @Override
+        public void visit()
+        {
+        }
+
+        @Override
+        public IMethodBodyVisitor visitBody(MethodBodyInfo mbInfo)
+        {
+            return new MethodBodyVisitor(mbInfo);
+        }
+    }
+    
+    /**
+     * Visit all the method bodies in the ABC.
+     */
+    private class MethodBodyVisitor implements IMethodBodyVisitor
+    {
+        private final MethodBodyInfo mbInfo;
+        private String currentFilename;
+        
+        public MethodBodyVisitor(MethodBodyInfo mbInfo)
+        {
+            this.mbInfo = mbInfo;
+        }
+
+        @Override
+        public void visitEnd()
+        {
+        }
+
+        @Override
+        public void labelCurrent(Label l)
+        {
+        }
+
+        @Override
+        public void labelNext(Label l)
+        {
+        }
+
+        @Override
+        public void visit()
+        {
+        }
+
+        @Override
+        public int visitException(Label from, Label to, Label target, 
+                Name exception_type, Name catch_var)
+        {
+            return  mbInfo.addExceptionInfo(new ExceptionInfo(from, to, target,
+                        exception_type, catch_var));
+        }
+
+        @Override
+        public void visitInstructionList(InstructionList new_list)
+        {
+            for (Instruction inst : new_list.getInstructions())
+            {
+                int opcode = inst.getOpcode();
+                assert opcode != ABCConstants.OP_debugfile && 
+                        opcode != ABCConstants.OP_debugline :
+                        "unexpected debug opcode";
+            }
+        }
+
+        @Override
+        public void visitInstruction(int opcode)
+        {
+            assert opcode != ABCConstants.OP_debugfile && 
+                    opcode != ABCConstants.OP_debugline :
+                    "unexpected debug opcode";
+        }
+
+        @Override
+        public void visitInstruction(int opcode, int immediate_operand)
+        {
+            if (opcode == ABCConstants.OP_debugfile)
+            {
+                recordDebugFile(immediate_operand);
+            }
+            else if (opcode == ABCConstants.OP_debugline)
+            {
+                recordDebugLine(immediate_operand);
+            }
+        }
+
+        @Override
+        public void visitInstruction(int opcode, Object[] operands)
+        {
+            assert opcode != ABCConstants.OP_debugfile && 
+                    opcode != ABCConstants.OP_debugline :
+                    "unexpected debug opcode";
+        }
+
+        @Override
+        public void visitInstruction(int opcode, Object single_operand)
+        {
+            assert opcode != ABCConstants.OP_debugline :
+                    "unexpected debug opcode";
+
+            if (opcode == ABCConstants.OP_debugfile)
+                recordDebugFile((String)single_operand);
+        }
+
+        @Override
+        public void visitInstruction(Instruction instruction)
+        {
+            int opcode = instruction.getOpcode();
+            assert opcode != ABCConstants.OP_debugfile && 
+                    opcode != ABCConstants.OP_debugline :
+                    "unexpected debug opcode";
+        }
+
+        @Override
+        public ITraitsVisitor visitTraits()
+        {
+            return NilVisitors.NIL_TRAITS_VISITOR;
+        }
+
+        /**
+         * Record a debugfile string
+         * 
+         * @param filenameIndex Index of filename in the string pool.
+         */
+        private void recordDebugFile(final int filenameIndex)
+        {
+            recordDebugFile(stringPool.getValues().get(filenameIndex));
+        }
+
+        /**
+         * Set the filename in the context for debug lines that
+         * come after it.
+         * 
+         * @param filename The debugfile filename.
+         */
+        private void recordDebugFile(final String filename)
+        {
+            currentFilename = filename;
+        }
+        
+        /**
+         * Record a debug line into the coverage data.
+         * 
+         * @param lineNumber The line number of the debug line in 
+         * the file that is set by the last debugfile opcode.
+         */
+        private void recordDebugLine(final int lineNumber)
+        {
+            assert currentFilename != null : 
+                "currentFilename must have been set by a debugFile instruction";
+
+            String methodName =  mbInfo.getMethodInfo().getMethodName(); 
+            coverageData.addLine(currentFilename, lineNumber, methodName);
+        }
+    }
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/swf/SWFLineReporter.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/swf/SWFLineReporter.java
new file mode 100755
index 0000000..500917e
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/swf/SWFLineReporter.java
@@ -0,0 +1,143 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.reporter.swf;
+
+import java.io.BufferedInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Collection;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.flex.abc.ABCParser;
+import org.apache.flex.compiler.clients.problems.CompilerProblemCategorizer;
+import org.apache.flex.compiler.clients.problems.ProblemFormatter;
+import org.apache.flex.compiler.clients.problems.ProblemPrinter;
+import org.apache.flex.compiler.clients.problems.ProblemQuery;
+import org.apache.flex.compiler.clients.problems.WorkspaceProblemFormatter;
+import org.apache.flex.compiler.internal.workspaces.Workspace;
+import org.apache.flex.compiler.problems.ICompilerProblem;
+import org.apache.flex.swf.TagType;
+import org.apache.flex.swf.io.SWFReader;
+import org.apache.flex.swf.tags.DoABCTag;
+import org.apache.flex.swf.tags.ITag;
+import org.apache.flex.tools.codecoverage.reporter.CoverageData;
+
+import com.google.common.collect.ImmutableList;
+
+/**
+ * Read in a SWF file and report the debugs line with the methods names. 
+ *
+ * The data is returned in a Map where the key is the "path;package;file" string.
+ * The value is another Map where the key is the line number of the line. The
+ * value is a LineInfo object.
+ */
+public class SWFLineReporter
+{
+
+    private final String path;
+    
+    /**
+     * Constructor.
+     * 
+     * @param path The path of the SWF to read.
+     */
+    public SWFLineReporter(final String path)
+    {
+        this.path = path;
+    }
+    
+    /**
+     * Read the debug lines from the SWF and populate the coverage data.
+     * 
+     * @param coverageData The coverage data to add the debug lines to.
+     * @throws IOException
+     */
+    public void readLines(final CoverageData coverageData) 
+            throws IOException
+    {
+        final SWFReader swfReader = new SWFReader(false);
+        final URL url = new URL(path);
+        
+        try
+        {
+            swfReader.readFrom(
+                    new BufferedInputStream(url.openStream()),
+                    path);
+
+            ProblemQuery problemQuery = new ProblemQuery();
+            problemQuery.addAll(swfReader.getProblems());
+            if (!problemQuery.hasErrors())
+            {
+                final ImmutableList<ITag> tags = ImmutableList.copyOf(swfReader.iterator());
+                for (ITag tag : tags)
+                {
+                    // visit the DoABC tag
+                    if (tag.getTagType() == TagType.DoABC)
+                    {
+                        processDoABC((DoABCTag)tag, coverageData);
+                    }
+                }
+            }
+
+            printProblems(swfReader.getProblems());
+        }
+        catch (FileNotFoundException e)
+        {
+        	System.err.println("Error: Unable read debug lines from " + e.getLocalizedMessage());
+        	throw e;
+        }
+        finally
+        {
+            IOUtils.closeQuietly(swfReader);
+        }
+    }
+    
+    /**
+     * Parse a DoABC record and add the debug lines to the coverage data.
+     * 
+     * @param tag The ABC tag.
+     * @param coverageData The coverage data to populate.
+     */
+    private void processDoABC(final DoABCTag tag, final CoverageData coverageData)
+    {
+        // create a visitor to record source line numbers.
+        final ABCParser parser = new ABCParser(tag.getABCData());
+        final DebugLineVisitor debugLineVisitor = new DebugLineVisitor(coverageData);
+        parser.parseABC(debugLineVisitor);
+    }
+
+    /**
+     * Print out problems to standard output.
+     * 
+     * @param problems
+     */
+    private void printProblems(final Collection<ICompilerProblem> problems)
+    {
+        final CompilerProblemCategorizer categorizer = new CompilerProblemCategorizer();
+        final ProblemFormatter formatter = new WorkspaceProblemFormatter(new Workspace(),
+                categorizer);
+        final ProblemPrinter printer = new ProblemPrinter(formatter, System.err);
+
+        printer.printProblems(problems);
+    }
+
+    
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/CodeCoverageServer.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/CodeCoverageServer.java
new file mode 100755
index 0000000..faea9c3
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/CodeCoverageServer.java
@@ -0,0 +1,556 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.server;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.UnsupportedEncodingException;
+import java.net.ConnectException;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.URL;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * Main class of the Code Coverage Server.
+ * 
+ * This class serves the command port.
+ * Creates threads to serve the data port and the policy file port.
+ *
+ */
+public class CodeCoverageServer
+{
+    private static enum ExitCode
+    {
+        SUCCESS(0),
+        HELP(1),
+        INVALID_OPTIONS(2),
+        ERRORS(3);
+        
+        private final int exitCode;
+        
+        private ExitCode(int exitCode)
+        {
+            this.exitCode = exitCode;
+        }
+        
+        public int getExitCode()
+        {
+            return exitCode;
+        }
+    }
+    
+    /**
+     * Commands
+     */
+    public static final String START_COMMAND = "start";
+    public static final String STOP_COMMAND = "stop";
+    public static final String STATUS_COMMAND = "status";
+    public static final String ALIVE_COMMAND = "alive";
+    
+    /**
+     * Responses
+     */
+    public static final String SUCCESS_RESPONSE = "0";
+    public static final String ERROR_RESPONSE = "-1";
+    
+    /**
+     * Default configuration values
+     */
+    private static final String DEFAULT_HOST = "localhost";
+    private static final int DEFAULT_DATA_PORT = 9097;
+    private static final int DEFAULT_COMMAND_PORT = 9098;
+    private static final int DEFAULT_POLICY_FILE_PORT = 9843;
+    private static final String DEFAULT_PRELOAD_SWF = "CodeCoveragePreloadSWF.swf"; 
+    
+    /**
+     * config.properties keys
+     */
+    private static final String MM_CFG_PATH = "mmCfgPath";
+    private static final String PRELOAD_SWF_KEY = "preloadSWF";
+    private static final String DATA_DIRECTORY_KEY = "dataDirectory";
+    private static final String HOST_KEY = "host";
+    private static final String DATA_PORT_KEY = "dataPort";
+    private static final String COMMAND_PORT_KEY = "commandPort";
+    private static final String POLICY_FILE_PORT_KEY = "policyFilePort";
+    
+    private static final boolean ADD_PRELOADSWF_KEY = true;
+    private static final boolean REMOVE_PRELOADSWF_KEY = false;
+
+    private static final String CCSERVER_VERSION = "0.9";
+    
+    private static boolean start;
+    private static boolean stop;
+   
+    /**
+     * @param args
+     */
+    public static void main(String[] args) 
+    {
+        CodeCoverageServer server = new CodeCoverageServer();
+        final int exitCode = server.mainNoExit(args);
+        System.exit(exitCode);
+    }
+
+    /**
+     * Entry point for the server instance.
+     * 
+     * @param args Command line args
+     * @return One of EXIT_CODE enum.
+     */
+    private int mainNoExit(String[] args)
+    {
+        System.out.println("Apache Flex Code Coverage Server");
+        System.out.println("Version " + CCSERVER_VERSION);
+        System.out.println("");
+
+        if (args.length == 0 ||
+            args.length == 1 && "-help".equals(args[0]))
+        {
+            System.out.println("Usage: ccserver [start | stop]");
+            return ExitCode.HELP.getExitCode();
+        }
+
+        try
+        {
+            if (!initializeProperties())
+                return ExitCode.INVALID_OPTIONS.getExitCode();
+
+            processArgs(args);
+            if (start)
+                start();
+            else if (stop)
+                stop();
+        }
+        catch (IOException e)
+        {
+            e.printStackTrace();
+            return ExitCode.ERRORS.getExitCode();
+        }
+        catch (InterruptedException e)
+        {
+            e.printStackTrace();
+            return ExitCode.ERRORS.getExitCode();
+        }
+
+        return ExitCode.SUCCESS.getExitCode();
+    }
+
+    private Properties config = new Properties();
+    private boolean listening = true;
+    private String host;
+    private int dataPort;
+    private int commandPort;
+    private int policyFilePort;
+    private String preloadSWFPath;
+    
+    /**
+     * Constructor.
+     */
+    public CodeCoverageServer() 
+    {
+    }
+    
+    private void processArgs(final String[] args)
+    {
+        for (final String arg : args)
+        {
+            switch (arg)
+            {
+                case START_COMMAND:
+                {
+                    start = true;
+                    break;
+                }
+                case STOP_COMMAND:
+                {
+                    stop = true;
+                    break;
+                }
+                default:
+                {
+                    System.err.println("unexpected argument " + arg);
+                }
+            }
+        }
+    }
+
+    /**
+     * Starts the server.
+     * 
+     * @throws IOException
+     * @throws InterruptedException
+     */
+    public void start() throws IOException, InterruptedException
+    {
+        if (isAlive())
+        {
+            System.out.println("Apache Flex Code Coverage Server is already running");
+            return;
+        }
+        
+        final String dataProperty = config.getProperty(DATA_DIRECTORY_KEY);
+        final File dataDirectory;
+        
+        if (dataProperty == null)
+            dataDirectory = new File(System.getProperty("user.home"), "ccdata");
+        else 
+            dataDirectory = new File(dataProperty); 
+        
+        if (!dataDirectory.exists())
+        {
+            // mkdir() is creating the directory but returning false, so
+            // re-test with exists()
+            if (!dataDirectory.mkdir() && !dataDirectory.exists())
+            {
+                System.err.println("Error: Data directory does not exist and unable to create it: " + dataDirectory.getAbsolutePath());
+                return;
+            }
+        }
+        
+        // modify mm.cfg file
+        updateMMCFG(ADD_PRELOADSWF_KEY);
+
+        // create thread to listen for connections on the data port
+        final DataSocketAccepter dataSocketAccepter = 
+                new DataSocketAccepter(host, dataPort, dataDirectory);
+        final Thread dataThread = new Thread(dataSocketAccepter);
+        dataThread.start();
+        
+        // create thread to listen the policy file port and server up the socket policy file.
+        final PolicyFileServer policyFileServer = new PolicyFileServer(host,
+                dataPort, policyFilePort);
+        final Thread policyFileServerThread = new Thread(policyFileServer);
+        policyFileServerThread.start();
+        
+        System.out.println("listening on port " + dataPort);
+
+        // read commands on command socket
+        final ServerSocket commandSocket = new ServerSocket(commandPort);
+        
+        try
+        {
+            while (listening)
+            {
+                try (Socket socket = commandSocket.accept();
+                     InputStreamReader reader = new InputStreamReader(socket.getInputStream());
+                     OutputStreamWriter writer = new OutputStreamWriter(socket.getOutputStream()))
+                {
+                    // wait for request
+                    char[] cbuf = new char[256];
+                    int charsRead = reader.read(cbuf);
+                    if (charsRead > 0)
+                    {
+                        processCommand(reader, writer, String.valueOf(cbuf).trim());
+                    }
+                }
+            }
+        }
+        finally
+        {
+            commandSocket.close();
+            policyFileServer.close();
+            policyFileServerThread.join();
+            dataSocketAccepter.close();
+            dataThread.join();
+            updateMMCFG(REMOVE_PRELOADSWF_KEY);        	
+        }
+        
+        System.out.println("stopping Apache Flex Code Coverage Server");
+    }
+
+    /**
+     * Process a server command.
+     * 
+     * @param reader The socket reader.
+     * @param writer The socket writer.
+     * @param command The command to process.
+     * @throws IOException 
+     */
+    private void processCommand(final InputStreamReader reader, 
+            final OutputStreamWriter writer, final String command) throws IOException
+    {
+        String response = SUCCESS_RESPONSE;
+        
+        switch (command)
+        {
+            case STOP_COMMAND:
+            {
+                listening = false;
+                break;
+            }
+            case ALIVE_COMMAND:
+            {
+                break;
+            }
+            default:
+            {
+                response = ERROR_RESPONSE;
+                System.err.println("ccserver: unknown command " + command);
+            }
+        }
+        
+        // acknowledge command
+        writer.append(response);
+        writer.flush();
+    }
+
+    /**
+     * Initialize properties from config file.
+     * Validate the properties.
+     * 
+     * @return true if the properties are valid, false otherwise.
+     * @throws IOException
+     */
+    private boolean initializeProperties() throws IOException
+    {
+        readProperties();
+        
+        host = config.getProperty(HOST_KEY, DEFAULT_HOST);
+        dataPort = getIntegerProperty(DATA_PORT_KEY, DEFAULT_DATA_PORT);
+        commandPort = getIntegerProperty(COMMAND_PORT_KEY, DEFAULT_COMMAND_PORT);
+        policyFilePort = getIntegerProperty(POLICY_FILE_PORT_KEY, DEFAULT_POLICY_FILE_PORT);
+
+        // get absolute path of preloadSWF.
+        if (!initializePreloadSWF())
+            return false;
+        
+        return true;
+    }
+
+    /**
+     * Initialize the preloadSWF value.
+     * 
+     * @return true if value, false otherwise.
+     * @throws UnsupportedEncodingException 
+     */
+    private boolean initializePreloadSWF() throws UnsupportedEncodingException
+    {
+        // if the path of the preload SWF is not configured, then try to locate
+        // it in the same directory as the jar containing this class.
+        preloadSWFPath = config.getProperty(PRELOAD_SWF_KEY, DEFAULT_PRELOAD_SWF);
+        File preloadSWFFile = new File(preloadSWFPath);
+        if (!preloadSWFFile.exists())
+        {
+            URL preloadSWFURL = getClass().getClassLoader().getResource(preloadSWFPath);
+            if (preloadSWFURL != null)
+            {
+                preloadSWFPath = URLDecoder.decode(preloadSWFURL.getPath(), "UTF-8");
+                preloadSWFFile = new File(preloadSWFPath);
+            }
+            
+            if (!preloadSWFFile.exists())
+            {
+                System.out.println("preloadSWF not found: " + preloadSWFPath);
+                return false;
+            }
+        }
+        
+        preloadSWFPath = preloadSWFFile.getAbsolutePath();
+        return true;
+    }
+
+    /**
+     * Handle NumberFormatExeptions values in the configuration file.
+     * 
+     * @param key
+     * @param defaultValue
+     * @return integer value of a configuration value.
+     */
+    private int getIntegerProperty(String key, int defaultValue)
+    {
+        String value = config.getProperty(key);
+        int result = defaultValue;
+        
+        try
+        {
+            result = Integer.valueOf(value);            
+        }
+        catch (NumberFormatException e)
+        {
+            // ignore, result is already set to defualt value
+        }
+        
+        return result;
+    }
+    
+    /**
+     * Send command to the command port to stop the server.
+     * 
+     * @throws IOException
+     */
+    public void stop() throws IOException
+    {
+        if (!isAlive())
+        {
+            System.out.println("Apache Flex Code Coverage Server not running");
+            return;
+        }
+
+        // connect to the server and send a command
+        sendCommand(STOP_COMMAND);
+    }
+    
+    /**
+     * Read properties from the config.properties file.
+     * 
+     * @throws IOException
+     */
+    private void readProperties() throws IOException
+    {
+        try (InputStream inputStream = getClass().getClassLoader().
+                getResourceAsStream("ccserver.properties"))
+        {
+            if (inputStream != null)
+                config.load(inputStream);
+        }
+    }
+    
+    /**
+     * Update the user's mm.cfg file to either add or remove the preloadSWF
+     * key.
+     * 
+     * @param addPreloadSWF If true add "preloadSWF=" to the user's mm.cfg.
+     * @throws IOException 
+     */
+    private void updateMMCFG(final boolean addPreloadSWF) throws IOException
+    {
+        // open mm.cfg
+        String filename = config.getProperty(MM_CFG_PATH, 
+                System.getProperty("user.home") + "/mm.cfg");
+        
+        // read mm.cfg
+    	List<String> lines = new ArrayList<String>();
+        try (Reader fileReader = new FileReader(filename);
+        	 BufferedReader bufferedReader = new BufferedReader(fileReader))
+        {
+        	String line = null;
+        	while ((line = bufferedReader.readLine()) != null)
+        	{
+    			// if found a preloadSWF line then don't write it in order to 
+    			// remove it. If we are adding the line we will append it later.
+        		if (!(line.startsWith(PRELOAD_SWF_KEY + "=")))
+        		{
+        			lines.add(line);
+        		}
+        	}
+            
+        	// if adding the preloadSWF key, append the preloadSWF property
+        	if (addPreloadSWF)
+        	{
+        	    StringBuilder preloadSWF = new StringBuilder(PRELOAD_SWF_KEY);
+        	    preloadSWF.append("="); 
+        	    preloadSWF.append(preloadSWFPath);
+        	    preloadSWF.append("?host=");
+        	    preloadSWF.append(host);
+        	    preloadSWF.append("&dataPort=");
+        	    preloadSWF.append(dataPort);
+        	    preloadSWF.append("&policyFilePort=");
+        	    preloadSWF.append(policyFilePort);
+        		lines.add(preloadSWF.toString());
+        	}
+        }
+        catch (FileNotFoundException e)
+        {
+            System.err.println("Unable to open mm.cfg. Create the file in the user home directory or specify the location by setting the mmCfgPath property in ccserver.properties.");
+            e.printStackTrace();
+            return;
+        }
+        
+        // write mm.cfg
+        try (FileWriter fileWriter = new FileWriter(filename);
+        	 BufferedWriter bufferedWriter = new BufferedWriter(fileWriter))
+        {
+        	for (String line : lines)
+        	{
+        		bufferedWriter.write(line);
+        		bufferedWriter.newLine();
+        	}
+        }
+        
+    }
+    
+    /**
+     * Send a command and get the response.
+     * 
+     * @param command
+     * @return A String containing the response. If there is no response an
+     * empty string will be returned. 
+     * @throws IOException
+     */
+    private String sendCommand(String command) throws IOException
+    {
+        String result = "";
+        char[] cbuf = new char[512];
+
+        try (Socket socket = new Socket(host, commandPort);
+            InputStreamReader reader = new InputStreamReader(socket.getInputStream());
+            PrintWriter writer = new PrintWriter(socket.getOutputStream()))
+        {
+            // send command
+            writer.print(command);
+            writer.flush();
+
+            // read response
+            int charsRead = reader.read(cbuf);
+            if (charsRead != -1)
+                result = String.valueOf(cbuf, 0, charsRead);
+        }
+        
+        return result;
+    }
+    
+    /**
+     * Test if the server is already running.
+     * 
+     * @return true if the server is running, false otherwise.
+     * @throws IOException 
+     */
+    private boolean isAlive() throws IOException
+    {
+        try 
+        {
+            String result = sendCommand(ALIVE_COMMAND);
+            if (result.length() > 0)
+                return true;
+            
+            return false;
+        }
+        catch (ConnectException e)
+        {
+            // server not running so connection failed.
+            return false;
+        }
+    }
+    
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/DataSocketAccepter.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/DataSocketAccepter.java
new file mode 100755
index 0000000..1de9992
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/DataSocketAccepter.java
@@ -0,0 +1,174 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.server;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+/**
+ * Thread to accept requests to connections to the data port.
+ * When a connection is made an instance of the DataSocketThread is created to
+ * read data from the socket.
+ * 
+ */
+public class DataSocketAccepter implements Runnable
+{
+
+    private static final String filenameTemplate = "ccdata_{0}.txt";
+
+    private ServerSocket socket;
+    private BufferedWriter fileWriter;
+    private Thread dataSocketReader;
+    private volatile boolean listening = true;
+    private final File dataDirectory;
+    private int fileCount = 0;
+    private Socket currentSocket;
+    private final String host;
+    private final int dataPort;
+    
+    /**
+     * Constructor.
+     * 
+     * @param host The host of the dataPort.
+     * @param dataPort The data port to service.
+     * @param dataDirectory The directory where the data files are stored.
+     * Each new connection results in a new file created in this directory.
+     */
+    public DataSocketAccepter(final String host, final int dataPort, 
+            final File dataDirectory)
+    {
+       
+       if (dataDirectory == null)
+           throw new NullPointerException("dataDirectory may not be null");
+        
+       this.host = host;
+       this.dataPort = dataPort;
+       this.dataDirectory = dataDirectory;
+    }
+    
+    /**
+     * This thread will block waiting on a connect to the data port. Once a 
+     * connection has been made an instance of DataSocketThread is run to read
+     * the data on the port and this thread waits for the next connection.
+     * Only one instance of the DataSocketThread is allowed. Before a new instance
+     * is created the current one is closed.
+     */
+    @Override
+    public void run() 
+    {
+        try
+        { 
+            socket = new ServerSocket(dataPort);
+            
+            while (listening) 
+            {
+                Socket newSocket = socket.accept();
+                
+                closeResources();
+                currentSocket = newSocket;
+                
+                if (!listening)
+                    break;
+                
+                String filename = filenameTemplate.replace("{0}", String.valueOf(fileCount++));
+                File file = new File(dataDirectory, filename);
+                System.out.println("saving trace data to " + file.getAbsolutePath());
+                fileWriter = new BufferedWriter(new FileWriter(file));
+                dataSocketReader = new Thread(new DataSocketReader(newSocket, fileWriter));
+                dataSocketReader.start();
+            }
+        } 
+        catch (IOException e) 
+        {
+            e.printStackTrace();
+        } catch (InterruptedException e)
+        {
+            e.printStackTrace();
+        }
+        finally
+        {
+            if (currentSocket != null)
+            {
+                try 
+                {
+                    currentSocket.close();
+                }
+                catch (IOException e1)
+                {
+                    e1.printStackTrace();
+                }
+            }
+            
+            if (fileWriter != null)
+            {
+                try 
+                {
+                    fileWriter.close();
+                } 
+                catch (IOException e)
+                {
+                    e.printStackTrace();
+                }
+            }            
+        }
+    }
+
+    /**
+     * Close this thread.
+     * 
+     * @throws IOException 
+     * @throws InterruptedException 
+     */
+    public void close() throws IOException
+    {
+        // connect to socket to unblock the accept call
+        listening = false;
+        Socket socket = new Socket(host, dataPort);
+        socket.close();
+    }
+    
+    /**
+     * Close the resources used by data socket thread.
+     * @throws InterruptedException
+     * @throws IOException
+     */
+    private void closeResources() throws InterruptedException, IOException
+    {
+        if (dataSocketReader != null)
+        {
+            dataSocketReader.interrupt();
+            dataSocketReader.join();
+            dataSocketReader = null;
+        }
+        
+        if (currentSocket != null)
+            currentSocket.close();
+        
+        if (fileWriter != null)
+        {
+            fileWriter.close();
+            fileWriter = null;
+        }
+    }
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/DataSocketReader.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/DataSocketReader.java
new file mode 100755
index 0000000..6a15168
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/DataSocketReader.java
@@ -0,0 +1,88 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.server;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.Socket;
+
+/**
+ * Thread to read trace data from the Flex client. 
+ * All data read from the socket is written directly to the writer
+ * with no processing.
+ * 
+ */
+public class DataSocketReader implements Runnable 
+{
+    private Socket socket;
+    private BufferedWriter fileWriter;
+
+    /**
+     * Constructor.
+     * 
+     * @param socket The socket to read from.
+     * @param fileWriter The writer to write the data to.
+     */
+    public DataSocketReader(final Socket socket, final BufferedWriter fileWriter)
+    {
+        this.socket = socket;
+        this.fileWriter = fileWriter;
+    }
+    
+    /**
+     * Read data from the socket and write it the specified file until
+     * we are interrupted.
+     */
+    @Override
+    public void run() 
+    {
+        // listen for data
+        final char[] cbuf = new char[512 * 1024];
+        
+        try (BufferedReader in = new BufferedReader(
+                    new InputStreamReader(
+                        socket.getInputStream()), 512 * 1024))
+        {
+            while (!Thread.interrupted() && !socket.isClosed())
+            {
+                int charsRead = in.read(cbuf);
+                if (charsRead > 0)
+                {
+                    String buf = String.valueOf(cbuf, 0, charsRead);
+                    fileWriter.write(buf);  
+                }
+                else
+                {
+                    Thread.sleep(1000);
+                }
+            }
+        } 
+        catch (IOException e) 
+        {
+            e.printStackTrace();
+        }
+        catch (InterruptedException e) 
+        {
+        	// This happens when we are interrupted while sleeping.
+        }
+    }
+}
diff --git a/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/PolicyFileServer.java b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/PolicyFileServer.java
new file mode 100755
index 0000000..117249e
--- /dev/null
+++ b/CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/server/PolicyFileServer.java
@@ -0,0 +1,167 @@
+/*
+ *
+ *  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 org.apache.flex.tools.codecoverage.server;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.UnknownHostException;
+
+/**
+ * Thread to serve a policy file to the Flash Player to allow the Flash
+ * client to connect to the data port.
+ *
+ */
+public class PolicyFileServer implements Runnable 
+{
+    /**
+     * Request sent by the Flash Player requesting the policy file.
+     */
+    private static final String EXPECTED_REQUEST = "<policy-file-request/>";
+    
+    /**
+     * Template of the policy file. Variables in brackets are replaced with
+     * the actual values.
+     */
+    private static final String POLICY_FILE = "<?xml version=\"1.0\"?>" +  
+            "<!DOCTYPE cross-domain-policy SYSTEM \"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd\">" + 
+            "<cross-domain-policy>" +  
+            "    <allow-access-from domain=\"{host}\" to-ports=\"{dataPort}\" />" +
+            "</cross-domain-policy>";
+
+    private final String host;
+    private final int dataPort;
+    private final int policyFilePort;
+    private boolean listening = true;
+    
+    // cached policy file create from the template.
+    private String policyFile;
+    
+    /**
+     * 
+     * @param host
+     * @param dataPort
+     * @param policyFilePort
+     */
+    public PolicyFileServer(final String host, final int dataPort, 
+            final int policyFilePort)
+    {
+        this.host = host;
+        this.dataPort = dataPort;
+        this.policyFilePort = policyFilePort;
+
+        initializePolicyFile();
+    }
+    
+    /**
+     * Wait for a connection on the policy file port. When a connection is received
+     * reply with a policy file if the Flash Player is requesting.
+     */
+    @Override
+    public void run() 
+    {
+        ServerSocket serverSocket = null;
+        
+        try
+        { 
+            // accept connections and return an in-memory policy file.
+            serverSocket = new ServerSocket(policyFilePort);
+
+            while (listening) 
+            {
+                try (Socket socket = serverSocket.accept())
+                {
+                    if (!listening)
+                        break;
+                    
+                    writePolicyFile(socket);
+                }
+            }
+        } 
+        catch (IOException e) 
+        {
+            e.printStackTrace();
+        }
+        finally 
+        {
+            if (serverSocket != null)
+            {
+                try 
+                {
+                    serverSocket.close();
+                } 
+                catch (IOException e1) 
+                {
+                    e1.printStackTrace();
+                }
+            }
+        }
+    }
+
+    /**
+     * Create the policy file from the template.
+     */
+    private void initializePolicyFile()
+    {
+        policyFile = POLICY_FILE.replace("{host}", host);
+        policyFile = policyFile.replace("{dataPort}", Integer.toString(dataPort));
+    }
+
+    /**
+     * Write the in-memory policy file to the socket.
+     * 
+     * @param socket Socket to write security policy file to.
+     */
+    private void writePolicyFile(final Socket socket)
+    {
+        char[] cbuf = new char[64];
+        
+        try (InputStreamReader reader = new InputStreamReader(socket.getInputStream());
+             OutputStreamWriter writer = new OutputStreamWriter(socket.getOutputStream()))
+        {
+            int result = reader.read(cbuf);
+            if (result > 0 && EXPECTED_REQUEST.equals(cbuf))
+            {
+                writer.write(policyFile);
+            }
+        } catch (IOException e)
+        {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Close the resources held by this thread.
+     * 
+     * @throws IOException 
+     * @throws UnknownHostException 
+     * @throws InterruptedException 
+     */
+    public void close() throws UnknownHostException, IOException, InterruptedException
+    {
+        // connect to socket to unblock the accept call
+        listening = false;
+        final Socket socket = new Socket(host, policyFilePort);
+        socket.close();
+    }
+    
+}
diff --git a/MD5Checker/build.xml b/MD5Checker/build.xml
index 6f438ad..5979e99 100644
--- a/MD5Checker/build.xml
+++ b/MD5Checker/build.xml
@@ -135,6 +135,7 @@
     </target>
     
     <target name="commit" depends="credentials">
+        <delete file="${basedir}/getresult.txt" failonerror="false"/>
         <exec executable="${svn}" dir="${site}" failonerror="true" >
             <arg value="commit" />
             <arg value="--username" />
@@ -145,9 +146,8 @@
             <arg value="&quot;update md5s&quot;" />
         </exec>
         <!-- pause to give buildbot chance to react -->
-        <sleep seconds="5" />
+        <sleep seconds="60" />
         <get src="https://cms.apache.org/flex/publish" username="${apache.username}" password="${apache.password}" dest="${basedir}/getresult.txt" />
-        <delete file="${basedir}/getresult.txt" />
     </target>
     
     <target name="credentials" depends="get-username,get-password">
diff --git a/Squiggly/main/SpellingFramework/src/com/adobe/linguistics/spelling/framework/ResourceTable.as b/Squiggly/main/SpellingFramework/src/com/adobe/linguistics/spelling/framework/ResourceTable.as
index 80debc7..b16542a 100644
--- a/Squiggly/main/SpellingFramework/src/com/adobe/linguistics/spelling/framework/ResourceTable.as
+++ b/Squiggly/main/SpellingFramework/src/com/adobe/linguistics/spelling/framework/ResourceTable.as
@@ -41,7 +41,7 @@
 		 */
 		public function ResourceTable()
 		{
-			_resources = new Object();
+			_resources = {};
 		}
 
 		/**
diff --git a/Squiggly/main/SpellingFramework/src/com/adobe/linguistics/spelling/framework/ui/SparkHighlighter.as b/Squiggly/main/SpellingFramework/src/com/adobe/linguistics/spelling/framework/ui/SparkHighlighter.as
index db402fa..ef01970 100644
--- a/Squiggly/main/SpellingFramework/src/com/adobe/linguistics/spelling/framework/ui/SparkHighlighter.as
+++ b/Squiggly/main/SpellingFramework/src/com/adobe/linguistics/spelling/framework/ui/SparkHighlighter.as
@@ -127,7 +127,7 @@
 				mTextField.addChild(mHighlighter);	
 			}
 					
-		        drawSquigglyLineForRange(token.first, token.last);
+			drawSquigglyLineForRange(token.first, token.last);
 			
 			// Just adjust the left padding, top padding is not an issue 
 			//var pleft:uint = mTextField.getStyle("paddingLeft");
@@ -144,14 +144,15 @@
 			var tflIndexFirst:int = tf.flowComposer.findLineIndexAtPosition(start);
 			var tflIndexLast:int = tf.flowComposer.findLineIndexAtPosition(end);
 			
-			// Pointer
 			var tflIndex:int = tflIndexFirst;
-			var tfl:TextFlowLine = tflFirst;
-			
-			if (tflIndexFirst == tflIndexLast) {
+
+			if (tflIndexFirst == tflIndexLast)
+			{
 				// Draw one line
 				drawSquigglyLineAtIndex(tflIndexFirst, start - tflFirst.absoluteStart, end - tflFirst.absoluteStart);
-			} else {
+			}
+			else
+			{
 				// Multiple lines (very long word)
 				drawSquigglyLineAtIndex(tflIndexFirst, start - tflFirst.absoluteStart);
 				
diff --git a/Squiggly/main/SpellingUIEx/src/com/adobe/linguistics/spelling/SpellUI.as b/Squiggly/main/SpellingUIEx/src/com/adobe/linguistics/spelling/SpellUI.as
index 2d3d9ca..0033320 100644
--- a/Squiggly/main/SpellingUIEx/src/com/adobe/linguistics/spelling/SpellUI.as
+++ b/Squiggly/main/SpellingUIEx/src/com/adobe/linguistics/spelling/SpellUI.as
@@ -19,42 +19,43 @@
 
 package com.adobe.linguistics.spelling
 {
-	import com.adobe.linguistics.spelling.framework.SpellingConfiguration;
-	import com.adobe.linguistics.spelling.framework.SpellingService;
-	import com.adobe.linguistics.spelling.framework.ui.HaloHighlighter;
-	import com.adobe.linguistics.spelling.framework.ui.HaloWordProcessor;
-	import com.adobe.linguistics.spelling.framework.ui.IHighlighter;
-	import com.adobe.linguistics.spelling.framework.ui.IWordProcessor;
-	import com.adobe.linguistics.spelling.framework.ui.SparkHighlighter;
-	import com.adobe.linguistics.spelling.framework.ui.SparkWordProcessor;
-	import com.adobe.linguistics.utils.TextTokenizer;
-	import com.adobe.linguistics.utils.Token;
+    import com.adobe.linguistics.spelling.framework.SpellingConfiguration;
+    import com.adobe.linguistics.spelling.framework.SpellingService;
+    import com.adobe.linguistics.spelling.framework.ui.HaloHighlighter;
+    import com.adobe.linguistics.spelling.framework.ui.HaloWordProcessor;
+    import com.adobe.linguistics.spelling.framework.ui.IHighlighter;
+    import com.adobe.linguistics.spelling.framework.ui.IWordProcessor;
+    import com.adobe.linguistics.spelling.framework.ui.SparkHighlighter;
+    import com.adobe.linguistics.spelling.framework.ui.SparkWordProcessor;
+    import com.adobe.linguistics.utils.TextTokenizer;
+    import com.adobe.linguistics.utils.Token;
 
-	import flash.events.Event;
-	import flash.events.FocusEvent;
-	import flash.geom.Point;
-	import flash.geom.Rectangle;
-	import flash.net.SharedObject;
-	import flash.net.URLLoader;
-	import flash.net.URLRequest;
-	import flash.text.TextField;
-	import flash.utils.Dictionary;
+    import flash.events.Event;
+    import flash.events.FocusEvent;
+    import flash.geom.Point;
+    import flash.geom.Rectangle;
+    import flash.net.SharedObject;
+    import flash.net.URLLoader;
+    import flash.net.URLRequest;
+    import flash.text.TextField;
+    import flash.utils.Dictionary;
 
-	import flashx.textLayout.edit.SelectionManager;
-	import flashx.textLayout.tlf_internal;
+    import flashx.textLayout.edit.SelectionManager;
+    import flashx.textLayout.elements.TextFlow;
+    import flashx.textLayout.tlf_internal;
 
-	import mx.controls.RichTextEditor;
-	import mx.controls.TextArea;
-	import mx.controls.TextInput;
-	import mx.core.UIComponent;
-	import mx.core.mx_internal;
-	import mx.events.ScrollEvent;
+    import mx.controls.RichTextEditor;
+    import mx.controls.TextArea;
+    import mx.controls.TextInput;
+    import mx.core.UIComponent;
+    import mx.core.mx_internal;
+    import mx.events.ScrollEvent;
 
-	import spark.components.RichEditableText;
-	import spark.components.TextArea;
-	import spark.components.TextInput;
+    import spark.components.RichEditableText;
+    import spark.components.TextArea;
+    import spark.components.TextInput;
 
-	use namespace mx_internal;
+    use namespace mx_internal;
 	
 	use namespace tlf_internal;	
 	/**
@@ -87,15 +88,12 @@
 		
 		//private var mTextField:RichEditableText;
 
-		private var _dictname:String = new String();			
-		private var _hundict:HunspellDictionary = new HunspellDictionary();		
-		private var _userdict:UserDictionary = null;
-		private var _sharedobj:SharedObject = null;
-		private var scm:SpellingContextMenu;
-		
-		private var _newchecker:SpellChecker = null;
+		private var _dictionaryName:String = "";
+		private var _userDictionary:UserDictionary = null;
+		private var _sharedObject:SharedObject = null;
+		private var _scm:SpellingContextMenu;
 		private var _resource_locale:Object = null;
-		private var _spellingservice:SpellingService = null;
+		private var _spellingService:SpellingService = null;
 
 		private static var _contextMenuEntries:Object = {enable:"Enable Spelling", disable:"Disable Spelling", add:"Add to dictionary"};		
 		private static var _spellingConfigUrl:String = "SpellingConfig.xml";
@@ -129,16 +127,11 @@
 			if ( lang == null ) return;
 		 	// TODO: Change dict parameter type to a SpellCheck class or a URL string.
 			var txt:* = getComponentTextModel(comp);
-			/*var comp1:UIComponent = txt.parent;
-			var comp2:UIComponent = txt.owner;
-			var comp3:UIComponent = txt.parentApplication;
-			var comp4:UIComponent = txt.parentDocument;
-			var comp5:UIComponent = txt.parentDocument.hostComponent; <--spark parent UICOmponent*/
 			if ( txt==null || _UITable[comp]!=undefined )
 				return;	
 			
 			// TODO: dangerous, is garbage collection going to clear this?
-			_UITable[comp]=new SpellUI(txt, lang);
+			_UITable[comp] = new SpellUI(txt, lang);
 			_parentTable[txt] = comp;
 			_cacheDictTable[comp]=lang;
 		}
@@ -306,16 +299,15 @@
 				return;
 			}
 			_actualParent = textModel;
-			mTextField = textModel ;
+			mTextField = textModel;
 									
 			mTextField.addEventListener(FocusEvent.FOCUS_OUT, handleFocusOut);
 			mTextField.addEventListener(FocusEvent.FOCUS_IN, handleFocusIn);
 			mTextField.addEventListener(ScrollEvent.SCROLL, spellCheckScreen);
 			mTextField.parent.addEventListener(Event.RENDER, spellCheckScreen);
 			mTextField.parent.addEventListener(Event.CHANGE, handleChangeEvent);
-			_dictname = lang;			
+			_dictionaryName = lang;
 			loadConfig();
-			
 		}
 		
 		private function spellCheckScreen(event:Event):void
@@ -340,21 +332,28 @@
 			spellCheckScreen(event);
 		}
 		
-		/*private function doSpelling():void
-		{
-			_checkLastWord = true;
-			doSpellingJob();
-		}*/
-				
-		/**
-		 @private
-		 (This property is for Squiggly Developer use only.)
-		 */		
 		public function doSpellingJob():void
 		{
-			if (_spellingEnabled == false) return;
+			if (_spellingEnabled == false)
+                return;
+
+            if(!isTextFieldReadyForSpellingJob())
+                return;
+
 			spellCheckRange(getValidFirstWordIndex(), getValidLastWordIndex());
 		}
+
+        private function isTextFieldReadyForSpellingJob():Boolean
+        {
+            if(!mTextField)
+                return false;
+
+            var textFlow:TextFlow = mTextField is RichEditableText ? RichEditableText(mTextField).textFlow : null;
+            if(!textFlow || !textFlow.flowComposer)
+                return true;
+
+            return !textFlow.flowComposer.isDamaged(textFlow.textLength);
+        }
 		
 		private function spellCheckRange(start:uint, end:uint):void {
 			//hh.preSpellCheckRange(start, end);
@@ -388,10 +387,9 @@
 			}
 			
 			var tokenizer:TextTokenizer = new TextTokenizer(mTextField.text.substring(start,end));
-			var tokens:Vector.<Token> = new Vector.<Token>();
-			
+
 			for ( var token:Token = tokenizer.getFirstToken(); token != tokenizer.getLastToken(); token= tokenizer.getNextToken(token) ) {
-				var result:Boolean=_spellingservice.checkWord(mTextField.text.substring(token.first+start, token.last+start));					
+				var result:Boolean=_spellingService.checkWord(mTextField.text.substring(token.first+start, token.last+start));
 				if (!result){
 					if (_checkLastWord || (token.last+start != mTextField.text.length))
 						//hh.highlightWord(token.first+start, token.last+start-1);
@@ -442,36 +440,41 @@
 			return index;
 		}
 
-			private function loadConfig():void{
-			_resource_locale = SpellingConfiguration.resourceTable.getResource(_dictname);
-			
-			if ((_resource_locale != null) || (SpellUI._configXML != null)) 
-				loadConfigComplete(null);
-			else {	
-				SpellUI._configXMLLoader.addEventListener(Event.COMPLETE, loadConfigComplete);
-			
-				if (SpellUI._configXMLLoading == false)
-				{
-					SpellUI._configXMLLoader.load(new URLRequest(_spellingConfigUrl));
-					SpellUI._configXMLLoading = true;
-				}
-			}
+			private function loadConfig():void
+            {
+                _resource_locale = SpellingConfiguration.resourceTable.getResource(_dictionaryName);
+
+                if ((_resource_locale != null) || (SpellUI._configXML != null))
+                    loadConfigComplete(null);
+                else {
+                    SpellUI._configXMLLoader.addEventListener(Event.COMPLETE, loadConfigComplete);
+
+                    if (SpellUI._configXMLLoading == false)
+                    {
+                        SpellUI._configXMLLoader.load(new URLRequest(_spellingConfigUrl));
+                        SpellUI._configXMLLoading = true;
+                    }
+                }
 		}
 		
 		private function loadConfigComplete(evt:Event):void{
 			if (_resource_locale == null) {
-			if (SpellUI._configXML == null)
-				SpellUI._configXML= new XML(evt.target.data);
-			
-				SpellingConfiguration.resourceTable.setResource(_dictname,{rule:SpellUI._configXML.LanguageResource.(@languageCode==_dictname).@ruleFile, 
-																		dict:SpellUI._configXML.LanguageResource.(@languageCode==_dictname).@dictionaryFile});
-			}
+                if (SpellUI._configXML == null)
+                    SpellUI._configXML = new XML(evt.target.data);
+
+                SpellingConfiguration.resourceTable.setResource(_dictionaryName,{rule:SpellUI._configXML.LanguageResource.(@languageCode==_dictionaryName).@ruleFile,
+                                                                        dict:SpellUI._configXML.LanguageResource.(@languageCode==_dictionaryName).@dictionaryFile});
+            }
                 //New Added
-			_spellingservice = new SpellingService(_dictname);
-			_spellingservice.addEventListener(Event.COMPLETE, loadDictComplete);
-			_spellingservice.init();
+			_spellingService = createSpellingService(_dictionaryName);
+			_spellingService.addEventListener(Event.COMPLETE, loadDictComplete);
+			_spellingService.init();
 		}
-		
+
+		protected function createSpellingService(dictionaryName:String):SpellingService
+		{
+			return new SpellingService(dictionaryName);
+		}
 				
 				
 		
@@ -482,27 +485,27 @@
 			// Lazy loading the UD only when the main dict is loaded successfully
 			if ((SpellUI._cache["Squiggly_UD"] as UserDictionary) == null)
 			{
-				_sharedobj = SharedObject.getLocal("Squiggly_v03");
+				_sharedObject = SharedObject.getLocal("Squiggly_v03");
 				var vec:Vector.<String> = new Vector.<String>();
-				if (_sharedobj.data.ud) {
-					for each (var w:String in _sharedobj.data.ud)
+				if (_sharedObject.data.ud) {
+					for each (var w:String in _sharedObject.data.ud)
 					vec.push(w);
 				}
-				_userdict = new UserDictionary(vec);
+				_userDictionary = new UserDictionary(vec);
 				
-				SpellUI._cache["Squiggly_SO"] = _sharedobj;
-				SpellUI._cache["Squiggly_UD"] = _userdict;
+				SpellUI._cache["Squiggly_SO"] = _sharedObject;
+				SpellUI._cache["Squiggly_UD"] = _userDictionary;
 			}
 			else 
 			{
-				_sharedobj = SpellUI._cache["Squiggly_SO"];
-				_userdict = SpellUI._cache["Squiggly_UD"];
+				_sharedObject = SpellUI._cache["Squiggly_SO"];
+				_userDictionary = SpellUI._cache["Squiggly_UD"];
 			}
-			_spellingservice.addUserDictionary(_userdict);
+			_spellingService.addUserDictionary(_userDictionary);
 			
 			
 			// Add the context menu, this might be not successful
-			scm = null;
+			_scm = null;
 			try {
 				addContextMenu(null);
 			}
@@ -516,28 +519,21 @@
 		
 		private function addContextMenu(event:Event):void
 		{
-			if ( scm != null ) return;
-			if ( isHaloComponent ) {
-				hh= new HaloHighlighter( _actualParent);
-				hw= new HaloWordProcessor( _actualParent );
-			}else if ( isSparkComponent ){
-				hh = new SparkHighlighter( _actualParent);
-				hw = new SparkWordProcessor( _actualParent);
-			} else {
-				trace("error now, later will be true");
-			}
+			if ( _scm != null ) return;
+            hh = createHighlighter(isHaloComponent, _actualParent);
+            hw = createWordProcessor(isHaloComponent, _actualParent);
 		
-			scm =  new SpellingContextMenu(hh, hw, _spellingservice, _actualParent, _actualParent.contextMenu); 
-			scm.setIgnoreWordCallback( addWordToUserDictionary );
+			_scm =  new SpellingContextMenu(hh, hw, _spellingService, _actualParent, _actualParent.contextMenu);
+			_scm.setIgnoreWordCallback( addWordToUserDictionary );
 			
 			// Halo need this
 			if (_actualParent.contextMenu == null)
 			{
-				_actualParent.contextMenu = scm.contextMenu;
+				_actualParent.contextMenu = _scm.contextMenu;
 			}
 			
-			//hh.spellingEnabled=true;
 			_spellingEnabled = true;
+
 			try {
 				doSpellingJob();
 			}
@@ -546,13 +542,23 @@
 				// If it fails here, it should later triggered by the render event, so no need to do anything
 			}
 		}
-		
+
+        protected function createHighlighter(isHaloComoponent:Boolean, parent:*):IHighlighter
+        {
+            return isHaloComoponent ? new HaloHighlighter(parent) : new SparkHighlighter(parent);
+        }
+
+        protected function createWordProcessor(isHaloComoponent:Boolean, parent:*):IWordProcessor
+        {
+            return isHaloComoponent ? new HaloWordProcessor(parent) : new SparkWordProcessor( _actualParent);
+        }
+
 		private function addWordToUserDictionary(word:String):void
 		{
-			_userdict.addWord(word);
+			_userDictionary.addWord(word);
 		
 			// TODO: serialization here might affect ther performance
-			_sharedobj.data.ud = _userdict.wordList;
+			_sharedObject.data.ud = _userDictionary.wordList;
 			
 		}
 		/**
@@ -564,9 +570,9 @@
 				hh.clearSquiggles();
 			}
 
-			if(scm != null)
+			if(_scm != null)
 			{
-				scm.cleanUp();
+				_scm.cleanUp();
 			}
 
 			_actualParent.removeEventListener(Event.ADDED_TO_STAGE, addContextMenu);
diff --git a/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/FLEX_34717_Tests.as b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/FLEX_34717_Tests.as
index 624acae..9ce89df 100644
--- a/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/FLEX_34717_Tests.as
+++ b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/FLEX_34717_Tests.as
@@ -44,7 +44,7 @@
         public function test_immediate_disable_after_enable():void
         {
             //given
-            UIImpersonator.addChild(_input);
+            UIImpersonator.addElement(_input);
 
             //when
             SpellUI.enableSpelling(_input, "en_US");
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;
+    }
+
+}
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>
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] 
diff --git a/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/dictionaries/en_GB/en_GB.dic b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/dictionaries/en_GB/en_GB.dic
new file mode 100644
index 0000000..d002789
--- /dev/null
+++ b/Squiggly/main/SpellingUIEx/tests/com/adobe/linguistics/spelling/dictionaries/en_GB/en_GB.dic
@@ -0,0 +1,46281 @@
+46280
+abaft
+abbreviation/M
+abdicate/DNGSn
+Abelard/M
+abider/M
+Abidjan
+ablaze
+abloom
+aboveground
+abrader/M
+Abram/M
+abreaction/MS
+abrogator/MS
+abscond/DRSG
+absinthe/MS
+absoluteness/S
+absorbency/SM
+abstract/ShTVDPiGY
+absurdness/S
+Abuja/M
+Abyssinia/M
+Acadia
+accede/SDG
+accept/BDSRVGkhl
+acceptable/P
+accepted/U
+accommodate/DGnkSNVu
+accommodating/U
+accompanier/M
+accomplish/RLSGD
+accordion/MS3
+accost/DSG
+accountant/SM
+accrual/MS
+accurately/I
+accusal/M
+achene/SM
+achievable/U
+achieves/c
+acidification/M
+acidulous
+acoustical
+acquaintance/SM
+acquisition/MA
+acridity/SM
+acrobatics/M
+actinic
+actinide/MS
+actively/IA
+activity/SMI
+Acton/M
+actual/q8YSQ-
+adagio/S
+adaptation/M
+add/RDGS7
+additivity
+Adele/M
+adhere/DGRS
+adherence/MS
+adjudicator/MS
+adjunct/SYMV
+adjuration/M
+adjust/RLDlGS7V
+Adler/M
+administratrix/M
+admiralty/SM
+admiration/M
+adobe/NvVSMX
+adopted/AU
+adoption/M
+adorned/U
+adrenal/Y
+adrift
+adumbrate/VSGnvDN
+Adventist's
+adverse/yTDYGP
+advertise/LJ
+adze/DMSG
+Aegean/M
+Aeneas
+aerialist
+aerodrome/SM
+aerodynamic/SY
+aero-engine/MS
+affectedly/U
+affective/M
+affinity/MS
+affirmed/A
+affix/DSG
+affray/MSDG
+affricative/M
+aforesaid
+after/S
+age's/e
+agility/MS
+agitator/MS
+agnostic/MS
+agnosticism/SM
+agreeableness/ES
+agriculturalist
+Agrippa/M
+AI
+Aiken/M
+ain't
+airflow/MS
+airsick/P
+airtime
+airway/MS
+ajar
+alabaster/SM
+Alamo/S
+alanine/M
+Alaric/M
+alarm/3DGkS
+albacore/SM
+albedo/M
+albeit
+album/MS
+Aldridge/M
+alewife/M
+Alexia/M
+Alexis
+Alfonso/M
+Alger/M
+Algiers
+alienation/M
+alinement's
+alkyd/S
+Allah/M
+all-day
+allegation/M
+allergen/MSW
+alleyway/MS
+allies/M
+allocator/KSC
+allots/A
+allowable/P
+all-star
+Allstate
+alms/m
+alnico
+aloft
+along
+alpine/S
+al-Qa'ida/M
+Alsace/M
+alternation/M
+Alton/M
+alumni
+alundum
+alveolus/M
+AMA
+amanuenses
+Amazonian
+ambergris/MS
+Amdahl/M
+Amherst/M
+amide/MS
+amir's
+Amish/M
+amoral
+amorphous/PY
+amortise/nSGD
+amortize/nNSGD
+amour/MS
+amphibian/MS
+amphibology/M
+ample/PT
+amplification/M
+anarchy/3Ww1SM
+anastigmatic
+Andaman/M
+aneroid
+Anglican/MS
+Anglicanism/M
+Anglicise/nSGD
+Anglicize/nNSGD
+Anglophobia/M
+angularity/MS
+anhydrous/Y
+animate/DnASNG
+animated/Y
+anisette/SM
+annalen
+annihilator/SM
+anorak/SM
+anorexia/MS
+antediluvian/S
+anthem/MdS
+anthropometric/S
+anthropometry/WM
+antibody/MS
+anticompetitive
+antidemocratic
+antiformant
+antigenicity/SM
+Antigua/M
+Antioch/M
+antipasti
+antipodal/S
+antiquarian/MS
+antiquarianism/MS
+antisepses
+antisocial/Y
+antitrust/M
+antral
+anyway
+apace
+aphasic/S
+aphid/MS
+apiece
+apocrypha/oM
+apogee/SM
+Apollo/M
+apology/SQ8s9M3
+apostle/MS
+apotheoses
+Appian
+appliquéd
+apply/vnNRGDSV
+appraisal/AMS
+appraise/AGSD
+appreciate/vyGVDNnuS
+apprehended/a
+approbation/MES
+Apr
+apsis/M
+aptness/IS
+aquaria
+aquiculture's
+aquiline
+Arabia/M
+Arafat/M
+arbutus/MS
+arcane/Y
+arcaneness
+arch/yTDRYSPGM
+archaist/MS
+archery/M
+Archimedes
+Argentine/SM
+argon/M
+arguable/YIU
+argumentativeness/S
+ark/MS
+armour-plate/D
+armpit/MS
+Arne/M
+around
+array/EGMSD
+arrhythmia/SM
+arrowhead/SM
+arsenate/M
+arsine/MS
+arsonist
+art/6MjZ32pS
+arteriolar
+artesian
+Artie/M
+artifice/oMRS
+artillery/3mSM
+artist/W1y
+asbestos/SM
+ascertain/L7SDG
+ASCII
+ascription/M
+Asiatic/MS
+asp/MWS
+aspect/MS
+asphyxiate/SDG
+asplenium
+assail/7DSG
+assassination/M
+assembles/A
+assembling/A
+assignee/MS
+assignor/SM
+associate/EDSGnN
+associativity/S
+assurance/SAM
+Assyria/M
+Assyriology
+Astana/M
+asterisk/SDGM
+astigmatism/MS
+astride
+astrophysicist/SM
+at/F
+atelier/SM
+Atlanta/MW
+Atman/M
+atoll/MS
+atomic/Y
+atonal
+atonality/SM
+atrial
+attaches/A
+attend/SRGD
+attendance/MS
+attentional/Y
+attentive/PIY
+attenuate/GnSDN
+attic/MS
+attorney/MS
+attractive/UY
+attractiveness/SM
+attribute/xGVvDS
+attrition/SM
+aubergine/MS
+Auckland/M
+audaciousness/S
+audibly/I
+audio/M
+audiometry/M
+audited/U
+auditorium/SM
+Aug
+augment/NnDRGS
+augmentation/M
+augury/SM
+Augusta/M
+Augusts
+Australasia/M
+Australia/M
+authorised/AU
+authoritative/YP
+autocrat/MWS1
+autodialler
+automata
+automotive
+autoregressive
+avalanche/GSMD
+avaunt/S
+avitaminoses
+aweigh
+awes/c
+awfulness/S
+axe/DmMGS
+axial/FY
+Ayr/M
+babble/RGDS
+babysit/RSG
+bacchanal/SM
+Bacchanalian/S
+backfield/MS
+backfill/SGD
+backlasher
+backscatter/dMS
+backslapper/SM
+backstop/MSGD
+backward/PSY
+bade
+bail/7MDGS
+bailey/S
+bailiff/MS
+balanced/cAeU
+balboa/MS
+Balearic/M
+ballistics/M
+balloon/3RSMDG
+balsa/SM
+balsam/dMS
+banality/SM
+Banbridge/M
+bandeaux
+banded/E
+Bangkok/M
+banish/GSLD
+bannister/SM
+banquette/MS
+bans/U
+banshee/SM
+banter/kdS
+banterer/M
+baptism/oSM
+bar/CDESUG
+barbarous/YP
+barbell/MS
+bareback
+bargepole/M
+barley/MS
+Barrett/M
+Barrow-in-Furness
+barycentre/MW
+baryon/MS
+baseball/SM
+baseband
+Basel/M
+bases/C
+bash/Sj6DG
+basilar
+basin/6MS
+basinful/S
+basing/C
+Basingstoke/M
+basswood/SM
+baste/nSN
+batcher
+bathtub/SM
+bathwater
+Bator/M
+battleship/SM
+baulky/TP
+bayonet/dMS
+bayou/SM
+Bea/M
+beady/T
+beagle/DGSM
+bearish/YP
+Beaujolais
+beautify/WNRSDnG
+because
+bedazzle/DLSG
+bedbug/SM
+bedrock/SM
+bedspread/MS
+Bedworth/M
+Beethoven/M
+befuddle/LSDG
+begonia/SM
+begrime/SDG
+begrudge/GDSk
+Beijing/M
+being/SM
+belabour/DGSM
+belate/Dih
+belief's/U
+believing/U
+belittle/GLDS
+bellboy/SM
+bell-hop's
+bell-ringer/S
+bellwether/MS
+Belmont/M
+belted/U
+Belton/M
+beltway/SM
+benedictory
+benefactor/SM
+benignant
+beribboned
+Berman/M
+Bernard/M
+Bernhard/M
+berserk/S
+Berwick/M
+beryl/MS
+beryllium/M
+bespatter/dS
+bespeak/GS
+bestial/Y
+bestride/SG
+bet/MRGSD
+Beth/M
+Bethany/M
+Betsey/M
+between/PS
+bewigged
+bicarbonate/MS
+bid/RMZdGJS
+bidet/SM
+bifocal/S
+biggish
+bigot/ydSM
+bilge/DGMS
+bilingualism/MS
+billboard/SGDM
+Billie/M
+biophysics/M
+birdhouse/SM
+birdieing
+birdseed/SM
+Birgit/M
+Biro/M
+Biscay/M
+biserial
+Bishkek/M
+bishop/dSM
+Bismarck/M
+bitch/GZDSz2M
+BITNET
+bitten
+biweekly/S
+biyearly
+blabber/d
+black-hearted
+blackjack/MSDG
+blameworthiness/S
+blank/PDGSTY
+blasting/M
+blastoff/SM
+blatant/Y
+bleater/M
+blend/RGSD
+blessing/M
+blew
+Bligh/M
+blip/DGMS
+blithe/YTP
+blitz/GSDM
+blitzkrieg/SM
+blockbusting/M
+Bloemfontein/M
+blood-letting/SM
+bloodstain/DMS
+bloodstream/SM
+blossomy
+blow-up/SM
+bluffness/S
+boar/MS
+board/RMGDSJ
+boastfulness/S
+bobtail/SMGD
+bodkin/MS
+body-colour
+body-piercing
+bog/GDMZS
+bohemian/S
+bola/SM
+bolero/MS
+bolter/M
+Boltzmann/M
+bondage/MS
+Boniface/M
+boniness/S
+bonsai/M
+booking/M
+bookshop/MS
+booth/MS
+Bootle/M
+bootlegging/M
+boozy/T
+bop/RGDS
+Borealis
+Boris/M
+born-again
+borosilicate/M
+Bose/M
+Botham/M
+bottommost
+botulinus/M
+boudoir/MS
+boutonnière/SM
+boxy/T
+boy/MS
+brachia
+bract/MS
+Braille/M
+brain-dead
+brambling/M
+Brannon/M
+brassiness/S
+bravado
+brave/DYyTGPS
+bravery/SM
+bravest/M
+breakage/MS
+breakthrough/MS
+break-up/S
+breakwater/SM
+breastbone/SM
+brecciated
+breech-loaded
+Breton/M
+bride/SM
+Bridget/M
+Bridgnorth/M
+bridle/MGSD
+brigade/GDSM
+brigandage/SM
+brigantine/SM
+Brighton/M
+brinkmanship/MS
+broadcast/SARG
+broadloom/MS
+broadness/S
+broil/GRSD
+broker/d
+brokerage/MS
+bromide/SMW
+bronchus/M
+brood/GM2ZRSDk
+brougham/SM
+brownish
+brows/SDRBG
+bruit/S
+brusqueness/S
+Bryn/M
+buccaneer/GDSM
+bucker/M
+buckminsterfullerene
+bucksaw/MS
+bucolic/YS
+buffer/rd
+bufflehead/M
+buffoonish
+build/RGJS
+Bulgarian/MS
+bulgy/T
+bulker
+bumpkin/MS
+bunion/SM
+buoyant/Y
+burdened/Uc
+burdock/MS
+burg/RSM
+burgle/SDG
+burial/SAM
+Burlington/M
+burned/U
+burnish/RSGD
+burntness
+burp/MDSG
+bury/ADSG
+bus/MAS
+Busch/M
+bushiness/S
+bushland
+bushwhacking/M
+business/m5S
+businesslike
+businessperson/S
+busywork/SM
+buttonholer/M
+Buxtehude/M
+buzzword/SM
+by
+by-election/S
+Byrne/M
+c/nN
+cab/GMDXVSN
+cablegram/SM
+cactus/MS
+caecum/M
+Caesar
+cagiest
+cahoot/MS
+Caisos
+cajole/RLyDSG
+calcite/SM
+CALCOMP
+Calder
+caldera/SM
+caldron's
+calender/dMS
+calibrate/SAGDN
+calibrater's
+calico/M
+calla/SM
+callback/S
+calliper/SM
+callowness/S
+calls/aA
+calorie/SM
+calorific
+calyces's
+Camberley/M
+Camden/M
+camelhair's
+Campbellsport
+camp-site/SM
+campus/MS
+Canaan/M
+caning/M
+canniness/S
+cannon/dSM
+canonical/Q8q-
+can't
+canted/AI
+canvas/MRGDS
+capon/SM
+cappuccino/SM
+caps/8
+capsular
+captaincy/MS
+captioner
+captivate/SDG
+carboy/MS
+carbuncle/DSM
+card-carrying
+cardioid/M
+caribou/M
+Carmen/M
+carnal/Y
+carnival/SM
+carol-singing
+Carpathian/S
+carpentry/SM
+carrageen/M
+carried/a
+carrot/MS
+carsick/P
+Carson
+cart/RMD6GS
+cartload/MS
+caryatid/SM
+Carys
+cased/U
+Casey/M
+Cassels
+caster/nN
+casts/aAe
+casualness/S
+cat/M2ZzDGS
+catalepsy/MS
+catch-all/SM
+catchphrase/S
+catechism/MS
+catharsis/M
+cathedral/SM
+Catherine
+Cathy
+Caucasoid
+cavil/SDRGJ
+cc
+celandine/SM
+celebratedness/M
+cellar/dMS
+celluloid/MS
+centaur/MS
+centime/SM
+centurion/SM
+Cephalochordata
+Cephalopoda
+ceramic/3MS
+cerebellar
+cerebra/no
+cerise/MS
+cerium/M
+cermet/SM
+certification/MCA
+certiorari/M
+cession/FMAK
+CFO
+cha/Wy
+chalkboard/MS
+chammy's
+Chancellorship/S
+chances/a
+chanciness/S
+chandelier/MS
+chanson/SM
+chapbook/MS
+Chapman
+character/sQ98t+dpq6-MS
+charitable/UY
+charlatanism/SM
+chasm/SM
+châtelaine/MS
+chauffeur/DSMG
+checkmate/MDSG
+checkout/S
+checksum/GMSD
+cheek/2GMzDZS
+cheekiness/S
+cheerleader/SM
+chelate/DnMNG
+chemosynthesis
+chemurgy/SM
+cheque/RSM
+chert/SM
+cherub/SMW
+Cheryl/M
+chevalier/MS
+chew/GRZ2S7D
+chickenfeed
+chickenpox/SM
+child/pM
+childlike/P
+China/Mm
+chine/SM
+chip/GMJZDS
+choir/GSDM
+cholera/MSW
+chomp/SDG
+Chopin
+choppiness/S
+choppy/TP
+chorale/MS
+choreography/MS
+chose
+Christ/M
+chromatics/M
+chromatograph/ZW
+chromium/SM
+chromosomal
+chronograph/ZSM
+Chrysler
+chum/2DzMZSG
+chunky/TP
+churchgoing/SM
+cinchona/SM
+circler/M
+circuit/MdS
+circuital
+circuitry/MS
+circuity/SM
+circulant
+circumcised/U
+circumciser/M
+circumflex/DSGM
+cl/GJ
+clairvoyant/SY
+clang/DRGS
+Clara
+Clarence
+classiness/S
+classing/e
+claustrophobic
+clearance/MS
+Clement/SM
+Cline
+clinometer/SIM
+cliometrician/S
+clipboard/SM
+Cliveden
+cloak-and-dagger
+cloaked/U
+cloister/MdS
+close-cropped
+closer/ESM
+clothesline/SGDM
+clothesman
+cloudless/PY
+cloudy/TP
+clown/SDGM
+clubbing/M
+clubhouse/MS
+clunk/DRM2GzZS
+coachloads
+coaler/M
+coal-fired
+coalitionist
+coarse/TPY
+coastal
+coastline/MS
+cocaine/SM
+cock-a-hoop
+cockatoo/SM
+cockpit/MS
+cockroach/SM
+cock-shy
+code/CDaAGS
+codebook/S
+codebreak
+codebreaker
+codename/D
+codpiece/MS
+coeval/SY
+cogent/Y
+cogitation/M
+cognition/AMKS
+cognoscenti
+coil/USADG
+Cointreau
+coital/Y
+cold-bloodedness
+coldish
+coldness/S
+Cole/M
+coleus/MS
+collaborative/S
+collectible/S
+collegial
+colloquium/SM
+colloquy/Mo
+coloratura/SM
+Colosseum
+colostomy/SM
+colour-code/D
+comae
+combat/vVu
+combed/U
+combustibility/SM
+come/RIGJS
+comedian/SM
+comfortableness/S
+comfy/T
+commemorate/NDvSVGn
+commemorator/S
+commercial/qQ8S-
+commercialness
+commiserate/VNnDGS
+commission/CRDSG
+commonly/U
+commonplace/P
+commons/M
+common-sense
+communicability/SM
+communicable/I
+communicated/a
+companion/DG7lMS
+compendia
+compensated/U
+compensator/M
+complainant/SM
+compliance/SM
+complicator/MS
+composition/CM
+comprehension/IMS
+comprehensiveness/S
+compress/XvNVhxb
+computed/AK
+computing/A
+concede/Rh
+conceiver/M
+conceptuality/M
+concerto/SM
+conchs
+conciliar
+conclusion/M
+concordant/Y
+concrete/GPYNDSnM
+concubinage/SM
+concupiscent
+concussion/M
+condescend/NXk
+conditionally/U
+condition's/K
+condolence/MS
+conducive/P
+conductance/4
+conductibility/MS
+conductor/SM
+conductress/MS
+coney's
+confabulation/M
+confederate/M
+conferee/MS
+confidential/PY
+confiner/M
+confirmed/PY
+conflagration/SM
+confrère/SM
+confront/NRnx
+Confucian
+confusable
+confutation/M
+confuter/M
+congested/U
+congregate/GNnSD
+conjugacy
+conjugateness
+conjunctive/S
+conjuration/M
+connectivity/SM
+consent/SRGkD
+conservative/PS
+consigns/A
+consist/SGD
+consistent/IY
+console/RNkn7
+consonance/IM
+conspiracy/SM
+constant/IY
+constellation/MS
+constituency/MS
+constitute/DASG
+consulship/SM
+consultees'
+consumable/S
+consumer/3
+consummated/U
+consumptive/S
+contaminate/NVGDnS
+contamination/MCS
+contemporaneous/PY
+contemptible/Y
+continence/IMS
+contort/VDG
+contradict/SGyD
+contralto/SM
+contrapositive/S
+contrapuntal/Y
+contrariwise
+controllability/M
+convenient/YI
+conventionalist
+conversant/Y
+conversazione/M
+convert/RSbDG
+convex/Y
+conviction/MS
+convincing/UY
+convolution/C
+co-operant
+co-operative/SP
+cootie/MS
+copay/S
+coplanar
+Copland
+coprolite/M
+coralline
+Corbie
+cordage/MS
+cordon/dSM
+co-religionist
+Corfu/M
+corked/U
+cornfield/MS
+cornflour/M
+cornmeal
+corollary/SM
+coronary/S
+coroner/MS
+corps/SM
+Corrigan
+corruption's/I
+corsage/MS
+corset/dSM
+cortège/SM
+cortex/M
+Costa
+cotangent/SM
+Cotswold/M
+cottonwood/SM
+cottony
+Coulthard
+counsel/MDJGS
+countenancer/M
+counterargument/SM
+counter-espionage/SM
+counterforce/M
+counter-offensive/MS
+counter-revolution/ySM
+counter-revolutionary/MS
+counter-tenor/SM
+counterweight/GMSD
+counting/Ea
+counts/AaEf
+coupled/U
+courier/MGDS
+courtliness/S
+cove/RDGMS
+covenanter/M
+coverage/SM
+covetousness/S
+cow-pat/SM
+crackpot/MS
+crafter
+craftspeople
+craftspersons
+Cranfield/M
+craver/M
+craw/YSM
+crawl/SRDG
+crayfish/SGDM
+cream/ZDRS2zMG
+creamy/PT
+creativeness/S
+creator/SM
+credibly/I
+credo/MS
+creed/SM
+creedal
+crenelation/M
+creole/MS
+crêpey
+crept
+crescent/MS
+Crestview
+Crete
+criminology/3wMS
+crimson/SMd
+cringe/GSD
+criss
+critique/MGSD
+crochet/dJSZr
+crocodile/MS
+crocus/MS
+croissant/SM
+croquette/MS
+crossfire/MS
+crossing/MS
+crosspoint
+cross-sectional
+croûton/SM
+crowbait
+crowd/cSDG
+crowfeet
+crudeness/S
+crudités
+crumbly/TP
+crutch/SDGM
+crux/M
+crybaby/MS
+cryogenic/S
+cryptography/W1SM
+Cryptozoic
+crystalline/S
+cubic/S
+cubit/SM
+cul/DG
+cull/S
+Cullen/M
+culmination/M
+culpa/SM
+culpable/YP
+cultivable
+cultivatable
+cumbersomeness/S
+cumbrous
+cumin/SM
+Cummings
+cumulus/M
+cupboard/MS
+cupola/DSGM
+curatorships
+curiosity/SM
+curiousness/S
+curlew/SM
+curlicue/SDMG
+curly/PT
+Curran/M
+cursory/K
+curve/SZGDM
+cushy/T
+cussed/EF
+cutlery/MS
+cyanide/SMGD
+cyclohexanol
+cylinder/wS1M
+cynical
+cypher/dSM
+czarevitch/M
+dad/MZS
+daffodil/SM
+Daguerre
+dainty/TSYP
+dairyland
+dais/SZM
+Daley/M
+dam/MDGS
+damageable
+Darcy/M
+darkness/S
+Darlene
+darling/PMS
+darnedest
+Daryl/M
+database/DMGS
+daughter/YMS
+daughters-in-law
+Davie
+daycare/S
+day-to-day
+daze/DiSGh
+DCB
+deaconess/SM
+deadbolt/S
+deadlock/MGSD
+deafening/M
+dean/MGD
+deanery/SM
+Dearing/M
+death-knell
+deathless/Y
+death-toll/M
+debauchery/SM
+debilitation/M
+debonair/PY
+Debussy/M
+decade/SM
+decadent/Y
+December/SM
+decilitre/MS
+decimetre/MS
+decision-making
+declarator/SM
+déclassée
+decomposable/I
+decoration/ASM
+decorative/P
+dedication/M
+dedicator/MS
+deejay/GDSM
+deep/TPYS
+deep-frozen
+deep-rooted
+defend/Vuv
+define/KSDAG
+definitive/SP
+deform/xnR7GN
+deformity/SM
+deftness/S
+DeKalb
+delegable
+delete/NDnSG
+deletion/M
+deliberateness/S
+delightful/P
+delinquent/YSM
+delirious/PY
+delusion/M
+delve/RSDG
+demeanour
+démodé
+demonology/M
+demonstrativeness/MS
+demureness/S
+denominate/x
+densitometry/M
+dentist/MSy
+deny/DR7kGS
+deoxyribonucleic
+department/o
+departure/SM
+dépaysé
+dependability/MS
+dependable/P
+deplorer/M
+depraved/P
+depressant/S
+depressor/MS
+derision/M
+dermatitis/MS
+derogation/M
+Derry
+descendent
+description/M
+descriptor/SM
+desertification
+designation/M
+desire/BRl
+Desmond/M
+desolation/M
+despatch/GDS
+despondence/SZ
+destructible/I
+desultory/YP
+detach/GRSiLhD7
+detected/U
+detector/SM
+deterioration/M
+determinacy/I
+determinant/MS
+determined/P
+determiner/KMS
+detonated/U
+detox/SGD
+detritus/M
+Deutsch
+devastate/DNSnkVG
+devastation/M
+deviance/MSZ
+deviation/M
+devilish/PY
+devious/YP
+Dewey
+dewy/TP
+Dhaka/M
+dhoti/MS
+diabetes/M
+diagnose/DGaS
+diagnosis/a
+dialect/wWSo1M
+diam
+diarrhoea/SMW
+diaspora
+dice/DnSGN
+dichotomous/Y
+Dictaphone
+didactic/SY
+didactics/M
+Diderot
+Dido/M
+differ/Sd
+diffidence/MS
+digestibility/SM
+digit/q-s9SQ8M
+dignified/U
+digraph/SM
+digress/uNvDSGXV
+diktat/SM
+dilemma/SM
+dimension/DGpMoS
+diminuendo/MS
+dinghy/MS
+dioptre/SM
+dioxide/SM
+dioxin/S
+diplomat/3MS
+dipstick/MS
+dirndl/SM
+disbursal/S
+disciplinary
+disclaim/7
+discothèque/MS
+discreet/PIY
+discuss/N7X
+disfigure/L
+dishcloth/MS
+disillusion/LDG
+disinterested/P
+Disneyland
+dispersive/P
+dispirited/Y
+disputably/I
+disputant/MS
+disruptor/M
+dissent/RGDS
+dissoluble/I
+dissolve/AGDS
+dissolved/U
+distastefulness/S
+distend/XN
+distillation/M
+distraught/Y
+distributable
+distribution/ASM
+distributional
+disturbed/U
+diva/SM
+divalent/S
+divergence/MS
+divers/NX
+diversion/My
+dividable
+divisiveness/S
+dobbin/MS
+documentation/M
+dodder/dSZ
+dodecahedra
+dodgy/T
+dog-clutch
+dog-collar/SM
+dogged/P
+dogmatics's
+dogs/f
+doing/aS
+domain/MS
+dominate/KNDSG
+Dominica/M
+Dominican/SM
+don't
+dopa/SM
+Dorian
+dork/ZS
+dormancy/SM
+dormitory/SM
+Dorset/M
+doss-house
+dot/M2ZdDkrGS
+double-glazed
+doubleness
+doubles/A
+doubloon/MS
+dowager/MS
+dowel/DSGM
+downfall/SM
+downplay/DGS
+downrange
+dozer/M
+drabness/S
+dragger/M
+drainage/SM
+draining-board/SM
+drainpipe/MS
+dram/w1SMW
+dramatics/M
+drape/RSDGy
+draughtsperson
+drawback/SM
+drawee/MS
+draws/ecA
+dreamland/SM
+dressy/TP
+drip-dry
+drizzle/GDSMkY
+drogue/MS
+dromedary/SM
+drudge/kyMSDG
+drumstick/SM
+Dryden
+duchy/MS
+duck/GDZSMJ
+duct/CDISGF
+due/MoPS
+duel/RMDGJS
+dugout/SM
+dumbfound/SGD
+Dumont
+dump/DR2GZS
+dun/TDGS
+dunce/SM
+dunderhead/SM
+durability/SM
+Durex
+dustiness/S
+duxes
+dwelling/M
+dwindle/SGD
+dybbuk/SM
+dyeing/M
+dyke/SM
+dyslexia/SM
+dyspepsia/SM
+dyspeptic/S
+earache/MS
+earnestness/S
+earning/M
+earthquake/MS
+earth-shattering
+ease/EDMSG
+EastEnders
+easterly/S
+eavesdrop/RDSG
+ebb/GDS
+eccentric/MSY
+Echinodermata
+éclat/M
+ectopic
+ecumenical/Y
+edge/DZMGRpSJ
+Edgewood
+edict/SM
+edifice/SM
+Edison
+editor/FMS
+Eduard
+educ/nNxV
+educated/cfU
+educe/DNG7S
+effendi/SM
+effeteness/S
+efflorescence/SM
+effrontery/MS
+effulgence/MS
+Egerton
+eggplant/SM
+egocentric/YS
+egregious/YP
+egret/SM
+Egyptian/S
+Egyptology
+eiderdown/SM
+eigenvector/MS
+eighty-seven/H
+eighty-three/H
+eisteddfodau
+elaborateness/S
+elastic/SQ8Y
+Elba
+elbowroom/MS
+elder/SY
+elected/U
+election/SM
+electrical/P
+electrocardiograph/MSZ
+electrolyse/GWSD
+electrolysis/M
+electromyographic/Y
+electron/SW1M
+electronegative
+electroweak
+elegance/ISM
+elephantiasis/M
+Elgar/M
+eliminate/SVnNDG
+eliteness
+elixir/MS
+Elmsford
+elongate/GnSND
+Elroy
+elsewhere
+elude/DuVGvS
+elution/M
+elver/MS
+Elysée/M
+Elysium
+em/M
+embank/GLSD
+embarcadero
+embassy/MS
+embed/SDGJ
+embedder
+embellished/U
+embellisher/M
+emeriti
+Emerson
+Emilio/M
+Emory
+emotionalism/SM
+emperor/MS
+empiricism/MS
+empiricist
+employed/fUA
+employing/A
+employs/A
+empress/SM
+empty/SGDTP
+emu/MS
+emulate/nDVGSvN
+encase/GDLS
+enchain/DGS
+encipher/Sd
+enclosure/MS
+encomium/SM
+encyst/GLDS
+endocrine/S
+endorphins
+enduring/P
+enforcible/U
+Englander/S
+engraving/M
+Enid/M
+enjambment/MS
+enlightened/U
+enliven/LSd
+enormous/PY
+enshroud/SDG
+entente/MS
+entomb/DLGS
+enunciable
+enunciate/GSnDN
+environ/LdS
+environmental/3
+Ephesus
+epic/MSY
+epigenetic
+epinephrine/SM
+Epping
+equipage/SM
+equipped/UA
+equiv
+era/MS
+erasure/SM
+ergo
+Eric/M
+Eriksson/M
+erode/VDuNGxXSb
+erosive/P
+escadrille/M
+espionage/SM
+espousal/MS
+Essex/M
+Esterházy/M
+etch/RGSDJ
+ethanol/M
+ether/MQ8S
+Ethernet/MS
+ethnocentric
+ethylene/M
+Etruscan
+ETSI
+euphemism/SM
+euphoria/MS
+Euphrates
+eureka/S
+Europe/M
+euthanasia/SM
+evadable
+evangelic/Y
+Evangeline
+evenly/U
+evensong/MS
+eventfulness/S
+everyday/P
+evict/SGD
+evolute/SM
+exact/PSGYTDk
+exactitude/ISM
+exactness/IS
+example/MDGS
+exceptionable/U
+exceptional/UY
+excretory/S
+exculpate/SDNnyG
+excusable/IP
+excuse/RlGDS
+executive/MS
+exempt/DGS
+exertion/SMc
+exhaustible/I
+exhortation/M
+exigency/SM
+existent/F
+Exmoor/M
+exocrine
+exogamy/M
+exonerate/nSNVDG
+exotica
+expand/BDRXVNvGSu
+expediently/I
+expel/DSn7GN
+expended/U
+expender/M
+expenditure/MS
+expensiveness/IS
+explain/AGDS
+explanation/SM
+explicable/I
+exploit/RVM7GnDS
+expressibility/I
+expression/Mp
+expurgate/SDNGn
+extemporaneous/YP
+extempore/Qs89q-S
+extendedness/M
+extinct/V
+extort/GDVS
+extracellular/Y
+extra-curricular
+extramarital
+extraordinary/PYS
+extrasolar
+extraterrestrial/S
+extraterritoriality/SM
+extravaganza/MS
+extremeness/S
+extremism/MS
+extrusion/M
+exurbia/SM
+eyedropper/MS
+eye-level
+Ezra
+fable/MSDG
+face/CGKDASe
+faceless
+facelift
+face's/K
+face-saver
+facetiousness/S
+facilitate/yDGSNnV
+facing/MS
+facsimileing
+factionalism/SM
+facto
+factorial/SM
+Fagin
+Fairfax
+fair-weather
+fairy/MS
+Falkner
+fallibility/ISM
+fallible/PY
+fall's/ce
+falsify/RBGnDSN
+falter/rJdSk
+falutin
+fanatical/P
+fantasy/Q8Ws9DSGM
+fanzine/S
+farina/MS
+farmworker/S
+far-reaching
+fascicle/DSM
+fast-forward
+fatalism/MS
+fathom/7dMpS
+fathomable/U
+fatuity/SM
+fault-finding
+faultless/YP
+faulty/PTY
+faun/SM
+feathered/U
+feather-edge
+featherweight/SM
+feckless/YP
+fecund/ng
+fecundity/SM
+federalist
+feeding/M
+felicitously/I
+Felipe
+felony/SM
+felt-tip/S
+feminism/MS
+fences/C
+Fermanagh/M
+ferret/rdSM
+ferrite/M
+ferrule/DMSG
+ferryboat/MS
+fetlock/MS
+feud/DMSoG
+feudalism/SM
+fiat/MS
+fibrosis/M
+Fidel/M
+Fife/M
+fifty-twofold
+fightback
+fights/e
+fill/JDRYGS7
+filter-tipped
+filthiness/S
+finance/ASGD
+find/JRGS7
+fineness/SM
+finger/prdSMJ
+fingerprint/DGSM
+fingertip/MS
+finial/SM
+finite/CPYI
+finny/T
+fiord/MS
+fireplace/MS
+Firestone
+fire-storm/MS
+firewood/M
+fish-bowl/MS
+fished/c
+fisher/m
+fishmonger/SM
+fishy/PT
+fist/DMGS6
+fixity/MS
+flabby/TP
+flack/SDMG
+flagrant/Y
+flaker/M
+flaky/T
+flambé/GSD
+flame/pGZRSMDkJ
+flamen/M
+flammable/IS
+flapjack/MS
+flash-pan
+flattop/SM
+flawlessness/S
+flea/MS
+fleabites
+fleawort/M
+fleetingly/M
+fleshly/T
+flexibility/MIS
+flightpath
+flights/c
+flinty/TP
+flirtation/M
+floodlight/GSM
+floorspace
+florescence/MIS
+florist/SM
+floweriness/S
+flowstone
+fluency/SM
+fluoroscope/SGDMW
+flush/7DPTGS
+fly-fishing
+flywheel/MS
+foamer
+foamy/TP
+fo'c'sle
+focus/CdGDAS
+focusable
+focus's
+foeticide
+fogydom
+fogyish
+foldaway
+folklore/3WSM
+folly/MS
+fondle/GDS
+fondler/M
+Fontaine/M
+fool/GDMS
+footman/M
+footprint/SM
+footsie/MS
+forbidding/PY
+forced/U
+forcer/M
+foreclosure/MS
+forefront/MS
+forehead/SM
+foreknow/SG
+foreknown
+forensics/M
+forequarters
+forerunner/MS
+foresaw
+foreword/SM
+forfeit/DRMSG
+forgave
+forget-me-not/S
+forging/MS
+formality/SMI
+formate/MS
+formulate/DAGSNn
+formulated/U
+Forster
+forswear/GS
+forthwith
+fortified/U
+fortissimo/S
+forty-onefold
+forty-three/H
+forum/MS
+Foss
+foster/dS
+fought/e
+founded/FU
+Fourier/M
+four-leaved
+four-square
+fox/MDzZG2S
+foxhound/MS
+fr
+Francesca
+franchiser/SM
+Françoise/M
+Frankfurt
+frankness/S
+fraud's
+Freddie
+Fredrick
+free-born
+freedmen/M
+freemasonry
+Freeport
+freight/SMRDG
+Frentzen
+fresh-faced
+Freud/M
+friction/oMSp
+friend/DGYMpS
+frieze/MGSD
+frigate/SM
+fright/DGMjS6
+frighteners
+frigidity/SM
+Frisian
+frisk/ZGSDz2
+frivolity/SM
+frivolousness/S
+fronter/F
+frothy/TP
+frown/DGSk
+frowner/M
+frumpy/T
+fulcrum/SM
+fulfilled/U
+fulfiller
+Fullerton
+full-length
+fulsome/YP
+fume/GkDZS
+fundamentalist
+fundholding
+fund-raiser/SM
+funeral/MS
+fur/GM2JZSD
+furl/UGDS
+furring/M
+furtherance/SM
+fuselage/SM
+fuses/CA
+fusilier/SM
+fusspot/SM
+futurist/W
+fuzzy/TP
+gaberdine/M
+gadabout/MS
+Gail
+galen
+galley/MS
+gallstone/MS
+galvanic
+gamesmen
+Ganges
+gantry/MS
+gaper/M
+Garfunkel/M
+garnish/LSDG
+garnishee/GMS
+gas/FC
+gasoline/M
+gasometer/M
+gastronomy/MWS
+gastropod/SM
+gasworks/M
+Gateshead/M
+gather/drSJ
+gaucherie/MS
+gavel/DSMG
+gawker
+gazillion/S
+gee-gee/SM
+geezer/MS
+gel/DMGS
+gelable
+Gemini
+gender/MSp
+gendered
+generate/AnVCGDSN
+generator/AMS
+generous/YP
+generously/U
+Genevieve/M
+genie/oSM
+genocidal
+genotype/MS
+genuflection/SM
+Geoff/M
+geomagnetic/Y
+geomagnetism/MS
+geophysical/Y
+geopolitic/YS
+George/SM
+Georgetown/M
+Georgian/S
+Gerald
+geranium/SM
+Gerard
+Gerber
+germination/M
+ghillie/MS
+ghostlike
+ghost-written
+giant/MS
+giantess/MS
+giber/M
+giddy/PGYTDS
+Gideon
+gigacycle/MS
+Gilbert/M
+gilt/S
+gimcrack/S
+gimp/DMGZS
+gin/MDSG
+ginkgoes
+girlfriend/SM
+giveth
+gizmo's
+glacé/DGS
+glacial/Y
+Gladys
+glasnost
+glean/DRSGJ
+Gleason
+Glenda
+Glendale
+glib/TPY
+gloaming/MS
+global/3Y
+globularity/M
+Gloria
+glossy/TSP
+glow/GRDkSM
+glycogen/MS
+Glyndebourne/M
+Glynn
+gnarl/GSMD
+gnat/MS
+gnomic
+gnu/MS
+goad/GDMS
+go-ahead
+goalie/MS
+goalpost/S
+go-between
+godchildren
+god-damn/D
+godhead/S
+Goering
+Goethe/M
+goitrous
+Golding
+gold-plated
+gonococcal
+good-humoured/Y
+good-looking
+good-natured/Y
+Goran
+Gordon/M
+gotten
+gourmandise
+gouty/T
+grâce
+graced/E
+graceless/YP
+gradate/DSG
+grade/nRCSDG
+gradient/SM
+gradualism/SM
+graduation/M
+graffiti
+grampus/MS
+grandniece/MS
+grant/DRMGS
+granulate/SDG
+granulocytic
+gratitude/SIM
+gravitation/M
+Grayson
+graze/RSGD
+greasepaint/SM
+greenery/SM
+greenfield
+greenfinch/SM
+greet/DRGSJ
+grenadier/SM
+gridiron/MS
+gridlock/DSG
+grimy/TP
+grin/DGS
+grind/RGJSk
+gristle/SM
+grittiness/S
+groat/MS
+groin/SMGD
+groom/SDGM
+Groot
+grotesqueness/S
+grovel/DSGR
+grub/zRMZ2DGS
+grudger/M
+grumble/GRJkSD
+GU
+guanine/SM
+Guardia
+guardianship/SM
+Guenther/M
+guerrillas
+guerrilla's
+guess/DRG7S
+guessed/e
+guildhall/SM
+guilefulness
+guilty/TP
+Guinea-Bissau/M
+Guinness
+gumboot/S
+gumption/SM
+Gunderson
+gunmen/M
+gunnery/SM
+gunning/M
+gunnysack/MS
+guppy/MS
+Gus
+gusset/SM
+gusts/E
+gut/MRGpDS
+Gwangju
+gym/MS
+gypsite
+gyroscope/SMW
+ha
+Haag/M
+habitable/P
+habitation/IMF
+habituation/M
+Hackett
+hadj's
+haem/SM
+haematoma/M
+haemolytic
+haemophiliac/SM
+Hague
+ha-ha
+haiku/M
+hair-drier
+hairless/P
+hairlike
+hair-raising
+halcyon/S
+half-deck
+half-hour/YS
+halfpence
+half-sister/SM
+half-sovereign
+halfwit/hiSMD
+halibut/M
+halite/MS
+hall/SM
+hallelujah/S
+Halley/M
+hallow/DGS
+Halloween
+hallucinate/nyNVGDS
+hallway/SM
+halter-neck
+halvers
+hammerhead/SM
+hammering/M
+hand/h6RzZSipMGD2
+handbill/SM
+handedly/f
+handful/MS
+handgun/MS
+handling/M
+handstand/SM
+hangnail/SM
+hanker/Jd
+hankerer/M
+Hanoverian
+Hansen
+ha'penny
+haphazardness/S
+haplessness/S
+harbourage
+hard-line/R
+hardshell
+hardy/TP
+harken/S
+harlotry/SM
+harpsichord/M3S
+Harrison
+Harrisonburg
+harshen/d
+harvest/MRGDS
+harvestmen/M
+hassock/MS
+hast/zZ2D
+hatchet/dMS
+hatchway/MS
+hatefulness/S
+haughty/YPT
+haul/cDSG
+have-not/MS
+havoc/SDMG
+Hawaiian/S
+hawkishness/S
+headmen/M
+headteacher/SM
+headway/SM
+health/M6jzS2Z
+healthcare
+hearing/SM
+hearsay/SM
+heartburn/GSM
+heartlessness/S
+heartstrings
+heath/RSyM
+Heathkit
+heaven/MSY
+Hebrew/SM
+heck
+hectogram/SM
+hedonist/WMS
+heel/pRSGMD
+Heidfeld
+Helena/M
+helix/M
+hellebore/SM
+Hellenic
+helpfulness/U
+helplessness/S
+Helsinki/M
+hemp/SM
+hen/yMS
+Henley/M
+Hennessey/M
+Henri/M
+herald/WGSMDy
+herbalist
+Herbert/M
+here/FI
+hereabout/S
+herein
+heretofore
+heritable/I
+Hermes
+Hertfordshire/M
+hesitance/ZS
+heterosexual/MYS
+Hettie/M
+Heuser/M
+hew/RGSD
+Hewett/M
+hexagram/SM
+heyday/MS
+hgwy
+Hiawatha
+hiccough
+hideaway/MS
+hideout/MS
+hieroglyph/SW
+high-hat
+high-jump
+highland/RSM
+high-spiritedness
+high-stepper
+hike/RSGD
+Hilbert
+hilliness/S
+Hinckley
+Hindemith
+Hindi
+hindsight/SM
+Hinduism
+hint/RSGMD
+hip/TZMDSG
+hipbone/SM
+hiring/S
+Hirsch
+histology/3MSw
+historian/SM
+history/SK1MW
+histrionic/SY
+histrionics/M
+hitch/RDSG
+HIV
+hoard/MSRDJG
+hobgoblin/SM
+Hoff/M
+hogback/SM
+hoist/SDG
+hold/RSGJ7
+Holden
+Holstein
+homecoming/SM
+homeland/MS
+home-making/M
+homesickness/S
+homiletic/S
+homoeotherm/ZW
+homogamy/M
+homogeneousness
+homogenize/DRGnSN
+Hondo
+hone/STGDM
+honester
+honey/SMD
+hooded/P
+hoofer/M
+hookup/MS
+horned/P
+horse-trading
+horsier
+horsing/M
+hos/Sd
+ho's/F
+hospitably/I
+hostility/MS
+hotness/S
+hounding/M
+houseboy/MS
+housebreak/SRJG
+house's/e
+house-to-house
+house-warming/SM
+Hove/M
+hover/dS
+hovercraft/M
+Hoyt/M
+HQ
+Huffman/M
+huffy/TP
+Huguenot/SM
+Hull/M
+hum/RSDG
+human/sQ8Y3-q9PS
+humaneness/I
+humanist/W
+humanize/CRDnSNG
+humanly/I
+humerus/M
+humidification/CM
+Hummel/M
+humorousness/S
+Hungary/M
+Huntley/M
+hurriedness/M
+hurter/M
+husband/DYyGSM
+hussy/SM
+hybridism/MS
+Hyderabad
+hydrangea/MS
+hydrochloride/M
+hydrogenates/C
+hydrostatics/M
+Hyman
+hymnal/MS
+hyperbola/MS
+hyperboloidal
+hyperplane/MS
+hypertrophy/DGSM
+hypotenuse/SM
+hypothalami
+hypotheses
+hysterectomy/SM
+Hyundai/M
+ICC/M
+icebox/SM
+icicle/SM
+iconoclasm/MS
+iconography/WMS
+ICU
+Ida/M
+idealist/W1
+idealogical
+identical/PY
+idiocy/SM
+idiomatic/U
+idolatress/S
+idyllist
+if/FS
+ignitable
+ignorance/SM
+iguana/SM
+iii
+Ikea/M
+ill-behaved
+ill-defined
+ill-equipped
+ill-tempered
+illume/GD
+illuminable
+illustrate/NnGDvSV
+illustration/M
+illustrious/YP
+ilmenite
+imaginably/U
+imagine/lnSVuNJDvG
+imaginer/M
+imbibe/RSDG
+immanency/SM
+immensity/SM
+immerse/SNbDGX
+immerser
+immolate/DGnSN
+immortal/Q8
+imped/d
+impeder/M
+imperial/3SY
+imperturbability/MS
+impetuous/PY
+impishness/S
+impresario/MS
+imprint/M
+imprison/L
+improver/M
+impudent/Y
+inalterableness
+inappropriate/P
+inbound
+in-car
+incarnadine/DSG
+inception/MS
+incipience/MSZ
+incise/XVGvDNSu
+incommode/GD
+inconceivability/SM
+inconceivable/P
+incontrovertible/Y
+incorporated/EU
+increase/Jk
+incriminate/SDNnyG
+incubation/M
+indemnity/MS
+indentation/M
+indication/M
+indicator/MS
+indices/M
+indigent/YS
+indissoluble/YP
+indistinct/P
+indistinguishable/P
+indoctrination/M
+industrialist
+industriousness/S
+inebriation/M
+ineffable/PY
+inertness/S
+inexplicable/PY
+inexplicit
+infantry/mMS
+infatuate/DSGnN
+inferential/Y
+inflate/DSGNn
+inflated/c
+inflater/M
+inflect/GxSVD
+in-flight
+infraction
+infrastructural
+ingenuously/E
+ingot/SM
+ingratiate/nGDSkN
+inhibit/SVdyXN
+inhibitor/MS
+in-house
+initialised/U
+initialized/U
+injunctive
+inlay/GS
+innermost
+innovate/NVnGuDSyv
+innovation/M
+innovator/SM
+inoculate/VGNDSn
+inordinate/YP
+inquisitive/PY
+inscribe/RNX
+insert/DGAS
+insidiousness/S
+insinuate/DGknNSV
+insolence/SM
+insolent/Y
+insomnia/SM
+inspired/U
+inspirer/M
+instanter
+instigate/SVnDNG
+instituted/A
+insult/DGkS
+insupportable/P
+insurrectionist
+intensiveness/S
+intention/DSoM
+intentionality/M
+interaction/SM
+intercept/GSD
+intercessor/SM
+interchange/SlGBD
+interfacing/M
+interfere/kRSGD
+intergeneration/oM
+interject/xGSD
+intermarry/SGD
+intermezzi
+intermodule/Nn
+internationalism/MS
+interplanetary
+interplay/MGDS
+interposition/M
+interpret/daNAnS
+interprocess
+intersect/GSD
+interstate/S
+intersurvey
+interurban/S
+intervocalic
+intimidation/M
+intradepartmental
+in-tray/S
+intrude/RuNXSDGVv
+intrusiveness/S
+inure/GDS
+invective/YPMS
+inventiveness/S
+inventress/MS
+invincible/PY
+inviting/U
+invokable
+involve/LGhSD
+iodide/MS
+ion's/U
+Irani
+Ireland/M
+iridescent/Y
+Irishwomen/M
+irksome/PY
+Irma
+ironer/S
+ironwood's
+ironworker/M
+irrepressible/Y
+irrigable
+Irvine
+Irwin/M
+Isaacson
+Isis
+Islamabad/M
+Islamic
+island/RSM
+Islay/M
+Islington/M
+isn't
+isocline/M
+isopleth/SM
+Italian/SM
+Ithacan
+its
+ix
+jackknife/DGMS
+Jacqueline
+Jaeger/M
+jag/ZDhGiS
+jaggy/T
+Jaipur
+Jakarta
+Jamaican/S
+Jameson
+janitorial
+Jardine
+jasper/MS
+javelin/MS
+jawline
+jay/MS
+jazz/S2GMDZ
+Jeanie
+Jehoshaphat
+Jesse/M
+jetty/MS
+jib/DMGS
+jihad/MS
+jingoist/WSM
+Joanne/M
+Joaquin
+jock/MS
+John/S
+johnny/SM
+join/FRSDG
+joins/A
+jointures
+jolt/DSRG
+Jonathan
+Jorge
+Jorgenson
+Joshua/M
+joss/M
+jowl/YSM
+joyless/PY
+Juanita
+jubilant/Y
+judgemental
+juicy/YPT
+julep/SM
+jump-start/G
+juncture/FMS
+jungle/SM
+junket/SdM
+junta/MS
+jurist/W
+juster/M
+juvenile/SM
+kaiser/SM
+Kano
+kappa/M
+katydid/MS
+kcal/M
+Kearney
+Keats/M
+keener/M
+keening/M
+keepsake/MS
+Keith
+Kendal
+Kenyan/S
+Kepler/M
+kerb/SM
+kerchief/SDM
+kerned
+keyclick/MS
+keyhole/SM
+kg
+Khmer
+kickballs
+kicky/T
+kid/RDMSGp
+kiddish
+Kiev/M
+kif-gloves
+Kilimanjaro/M
+killjoy/S
+kills/c
+kilowatt-hour
+Kimberly/M
+kinda
+kindness/S
+Kingsbury
+Kiowa
+Kirby
+Kirkpatrick
+Kitakyushu/M
+kitbag/M
+kitsch/ZSM
+kittiwakes
+Klondike
+knack/SRM
+kneecap/SGMD
+knick-knackery
+knight/GMDYS
+knit/RGSDJ
+knitting/M
+knotty/TP
+know/GJk7S
+knowing/T
+knowledge/SlM
+Knowles
+Kodachrome/M
+kola/SM
+Kong
+kook's
+kooky/T
+Kremlin/M
+Kronecker/M
+Kuenning/M
+kumquat/SM
+KwaZulu
+l/3
+lab/oMS
+label/aGDSA
+labiodental
+laboratory/SM
+laburnum/MS
+labyrinth/SM
+laceration/M
+lachrymose
+lackadaisicalness
+lactation/M
+lacunae
+laddie/MS
+ladybug/SM
+laevorotatory
+Lamaism
+Lamellibranchia
+lamina/Mn
+laminate/DGS
+Lancaster/M
+Lancelot/M
+landforms
+land-use
+lantern/MS
+Laos/M
+laps/SGD
+lapse's
+larboard/SM
+larcenist/S
+larcenous
+larceny/SM
+lark/MGDS
+larkspur/SM
+lasciviousness/S
+latching/M
+latticing/M
+Latvia/M
+laudanum/MS
+lauds/M
+laughable/P
+Launceston
+lavatory/SM
+lawgiver/SM
+lawlessness/S
+lawmaking/M
+lawnmower/S
+lawrencium/M
+layette/SM
+laying/ca
+lays/faAec
+Lazar
+Lazarus
+lazybones/M
+leading/a
+leaf/pSD2GMZ
+leafstalk/MS
+leasing/M
+Leatherdale
+leavening/M
+Leavenworth
+lectureship/SM
+led/a
+lefty/S3M
+legally/I
+legislator/MS
+legitimately/I
+legitimating/I
+legitimization/M
+Leiden
+Leif
+Leigh
+Lenten
+leper/SM
+lettered/U
+level/SDTPRGY
+Lewes
+lexeme/MS
+Libby/M
+liberalism/MS
+libertarian/SM
+libertarianism/M
+Libra
+Libya/M
+lichen/SM
+Lieberman/M
+lieder
+lifetaking
+light-heartedness/S
+lignite/SM
+liking/MS
+limb/SDMWp
+limestone/MS
+limpid/YP
+Limpopo
+Lin/M
+Lindbergh/M
+linen/SM
+lines/eAf
+ling/f
+lingua/Mo
+linguini's
+linkage/SM
+linseed/MS
+lionizer/M
+lip-synch
+liquefy/DRSG
+liqueur/MS
+liquorish
+Lisa
+listed/U
+listing/M
+literalism/M
+lithology/Mw
+Lithuania/M
+litigiousness/S
+litre/SM
+little/TP
+liturgics's
+livelong/S
+liverwurst's
+ll/C
+loads/AUc
+loansharkings
+loathsomeness/S
+loaves/M
+loci/M
+Locke
+locks/UA
+lode/MS
+lodestar/SM
+Logan
+logia
+login/S
+Loki/M
+loneliness/S
+lonesomeness/S
+long-ago
+long-distance
+longhair/SM
+longing/M
+long-lived
+long-range
+long-time
+loose-leaf
+Lorraine
+lotto/SM
+loudspeaker/SM
+Loughborough/M
+Louisa/M
+lour/SDG
+louse/CDSG
+love/pMk7RSYlDG
+loveless/PY
+Lowell
+lowliness/S
+loyalty/ESM
+Lucia/M
+Lucretia
+Ludwig
+luge/CM
+lukewarm/PY
+lull/GSD
+lulu/M
+luminance/M
+luminescence/MS
+luminous/YP
+lumpish/YP
+luncheonette/MS
+luncher/M
+lunger/M
+lupus/MS
+lust/GZSDjz62M
+lye/M
+lymphatic/S
+lyre/MSwW1
+Mabel/M
+Macedon
+Macedonia/M
+macintosh/SM
+MacIntyre
+Mackenzie
+Mackie
+Macmillan/M
+macramé/S
+macro/SM
+macrosimulation
+mad/RTYPGD
+madden/dkS
+madhouse/MS
+Magellan
+magi
+magisterial/Y
+magnanimous/Y
+magnetic/S
+magnolia/SM
+maidenhead/SM
+maidenliness
+Maier
+mainstreamer
+major/MS
+making/MS
+Malagasy/M
+maleficence/SM
+maleness/S
+mallard/SM
+Mallory
+malnutrition/SM
+malocclusion/MS
+Malta/M
+Mammalia
+mammography/S
+mandate/SMGyD
+manège/SGD
+Manhattan/M
+manhole/SM
+manikin/MS
+manoeuvres/e
+mansard/MS
+mantilla/MS
+mantis/MS
+manure/RMGDS
+manuscript/MS
+man-year/S
+Maoism
+mapping/M
+maraca/MS
+margin/oMdS
+mariachi's
+marijuana/SM
+Marin
+marina/nMS
+Marjory/M
+marketability/MS
+marketable/U
+Marlowe/M
+Marquess/M
+marriage/MBS
+marrow/MS
+marsupial/MS
+Martel
+marten/MS
+Marvin
+Marx/3M
+marzipan/SM
+Masai
+master-work/S
+matchlock/MS
+matchplay
+matchwood/SM
+maternal/Y
+mating/M
+matriarchs
+matron/MSY
+matt/M
+matter/d
+maturely/KI
+maturity/KMI
+Maurice
+maverick/MS
+Mavis
+maxilla/yM
+maze/SZMGD
+McCracken/M
+McDonald/M
+McDowell/M
+McGill/M
+McGovern/M
+McGregor/M
+McKesson/M
+McLeod/M
+McMahon/M
+McNeil/M
+mealtime/MS
+mealy/TPS
+mean/CSG
+meanest
+meaninglessness/S
+measurement/A
+mechanism/MS
+mechanochemically
+media/oMn
+mediaevalism
+mediaevalist
+medicament/SM
+medication/M
+meditative/P
+megacycle/MS
+megalith/SWM
+Meister
+melamine/MS
+Melanesian
+Melbourne
+melted/A
+melts/A
+Melvyn
+memorable/PY
+memoriam
+mendacity/MS
+mendicancy/MS
+mendicant/S
+mending/SM
+Mendip
+menopause/SM
+menstrual/K
+menswear/M
+mentality/MS
+menthol/MS
+merchant/BSM
+merchantman/M
+mercilessness/S
+merited/U
+mescal/SM
+mesdames/M
+mesdemoiselles/M
+meta
+metabolism/SM
+metabolize
+metacarpus/M
+metastable
+metempsychoses
+meteor/WS1M
+Metford
+method/1SMw
+metre/S1Ww
+mettlesome
+Mexican/S
+MGM
+miasma/MS
+mice/M
+Michelson
+micra's
+microdensitometer
+microdot/SM
+microelectronic/S
+microfossils
+microlevel
+micrometeorite/SWM
+microprocessing
+microscope/SMWw1Z
+Microsoft/M
+microstore
+mid-band/M
+midfield/M
+Midlands
+mid-life
+milch/M
+mile/SM
+Millie
+millimetre/S
+milliner/ZSM
+millisecond/SM
+Milne
+mimesis/M
+mindless/YP
+mindset/S
+Minerva
+minesweeper/SM
+minimax/M
+minnow/MS
+minor/SM
+Minotaur/M
+Minsk/MZ
+minuscule/SM
+minutia/M
+minx/MS
+mischance
+misfeasance/SM
+mislay
+misprision/SM
+missive/4
+Missouri
+misty/T
+mistype/J
+misunderstand/R
+mizzen/SM
+mizzenmast/MS
+mnemonic/YMS
+mob/CSDG
+moccasin/MS
+mockery/SM
+modification/M
+modulation/MCS
+moduli
+Moen/M
+mogul/MS
+molal
+molecular/Y
+molecule/MS
+mollycoddle/SGD
+molybdenite/M
+momenta/y
+momentary/PY
+mom's
+moneymaker/MS
+mongoloid/S
+monodist/S
+monody/MWS
+monolingualism
+monopoly/SM
+monotone/WMS1Z
+Montclair
+Monza
+mooch/RGDS
+moon/DSpMG
+moorland/SM
+moped/MS
+moppet/SM
+Moran/M
+Moray/M
+Mordecai
+morning/M
+Morpeth
+morphophonemics/M
+morris
+mortality/IMS
+Moslem/M
+motel/MS
+motherhood/MS
+motionless/Y
+motorboat/MS
+motorway/MS
+mouldiness/S
+mound/MDGS
+mountaintop/MS
+mounted/U
+Moussorgsky/M
+moustache/MDS
+Moyer/M
+Moyra/M
+Mozambican/S
+mpg
+MPV
+Ms
+much-needed
+muck/DGMZS
+mudslide/S
+mufti/SM
+mugginess/S
+mulatto/M
+Muller/M
+multi-access
+multichannel/M
+multicolumn
+multicomponent
+Multics/M
+multidimensionality
+multifunctional
+multilateral/Y
+multiplex's
+multi-purpose
+multiracial
+mumble/RSDGJ
+mumbo-jumbo
+Mumford/M
+Muse's
+mushy/TP
+Muslim/SM
+mutable/FI4
+mutest
+muttonchops
+muzzle-loader
+myrrh/MS
+mystic/YMS
+nabob/MS
+nacelle/MS
+Nagasaki/M
+nailer/M
+Nairobi/M
+naked/PY
+namby-pamby
+namelessness
+nanometre/SM
+naphthalene/SM
+narcosis/M
+Narragansett/M
+narrow-minded
+Nassau/M
+Nathalie/M
+naturally/U
+nature/ohMDS
+navvy/MS
+Nazi/SM
+N'Djamena/M
+Neanderthal/S
+near-sighted/PY
+near-sightedness/S
+necktie's
+necromantic
+necropsy/M
+necrotic
+needle/D5GRSM
+needy/TP
+Neely/M
+nefariousness/S
+neglectful/P
+neglectfulness/S
+negligée/SM
+negligent/Y
+neighbourliness/S
+neoclassic/M
+neocolonialism/SM
+neologism/MS
+Nepal/M
+nephrite/MWS
+Neptune/M
+nestle/DSG
+neural/Y
+neuritides
+neuritis/M
+neuroscience
+neurosurgeon/SM
+neutralise/M
+nevus's
+Newmarket/M
+newsflash/S
+newsroom/S
+news-stand/MS
+newsy/TS
+next
+NFS
+nicety/MS
+niche/GMSD
+Nicholson/M
+Nielson/M
+nightclothes
+nightdress/MS
+night-long
+nightmare/MS
+nightstand's
+night-watchman
+nimble/TPY
+Nina/M
+nine/SMH
+ninepence/M
+ninety-onefold
+Nintendo/M
+Nipponese
+nitrous
+nm
+Nobel/M
+nobelium/M
+Noble's
+nocturnal/S
+nocturne/SoM
+nod/oDMGZS
+nodule/MS
+nohow
+noire/S
+noiseless/YP
+Noll/M
+nominal/SY
+non-abrasive
+non-absorbent
+non-active
+non-athletic
+non-basic
+non-belligerency
+non-belligerent/S
+non-business
+nonchalant/Y
+non-compliance/MS
+non-conducting
+non-conductor/SM
+nonconformist/SM
+non-corrosive
+non-crystalline
+nondescript/YS
+non-disclosure/S
+non-dramatic
+non-exclusive
+non-functional/Y
+non-hereditary
+non-literary
+non-member/MS
+non-metal/SWM
+non-metropolitan
+non-military
+non-negative
+non-operational/Y
+non-orthogonal
+non-orthogonality
+non-partisan/S
+non-paying
+non-peak
+non-performance/SM
+non-porous
+non-recognition/S
+non-redeemable
+non-reducing
+non-representational/Y
+non-resident/SM
+non-residential
+non-scientific
+nonsense/1SMw
+non-sexist
+non-slip
+non-staining
+non-swimmer
+non-tenured
+non-union/S
+non-verbal/Y
+non-voter/SM
+noontide/SM
+noontime/SM
+noradrenalin
+noradrenaline/M
+normalizes/A
+north/MSG
+north-east/M
+northern/RS
+north-West/M
+notarial
+notation's/F
+noticeable/U
+Nottinghamshire/M
+nourished/fU
+nourishment/f
+nouveau
+novel/-MQ3S
+novena/MS
+Novocaine
+NT
+nuclear-free
+nucleation/M
+nudge/GSD
+Nugent/M
+nuke/SGMD
+numberplate/M
+numbers/Ae
+nursemaid/SM
+nutriment/MS
+nutritiousness/S
+nutshell/MS
+nuttiness/S
+nymphomaniac/S
+Oakland/M
+ob.
+obeyer/EM
+obfuscation/M
+objurgate/GSDnN
+obligation/M
+obliging/YP
+obliteration/M
+oblong/PS
+obnoxiousness/S
+oboist/S
+observability/M
+observe/BxkNRlnSDG
+obstacle/SM
+obstetric/S
+obstructer's
+O'Connor/M
+octavo/SM
+octennial
+odalisque/SM
+ode/MS
+Odis/M
+Odom/M
+oestrous
+off/RGMJ
+offhandedness/S
+officiation/M
+off-licence/MS
+ogress/S
+oil/m2RZGMSD
+oilcloth/SM
+Ojibwa/SM
+okra/MS
+oleaginous
+O'Leary/M
+oles
+oligarchs
+Olivia/M
+Olympian/S
+Omagh/M
+Oneida/SM
+one-off
+on-line
+onomatopoeia/MS
+Onondaga/SM
+ons
+on-screen
+ontology/1wMS
+onyx/SM
+oodles
+opalescence/S
+open-handedness/S
+open-plan
+opera/nSvuMV
+operate/DSGFN
+oppressive/P
+opprobrium/SM
+opt/1xwGWSD
+optimized/U
+opulence/MS
+or/NMn
+orderly/S
+ordination's/F
+oregano/SM
+organic/S
+orientation/EMA
+orient's
+originality/MS
+origination/M
+orneriness's
+orographic/M
+orography/WM
+Ortiz/M
+Orwell/M
+Osborn/M
+oscillation/M
+osmium/M
+ostensible/Y
+osteoarthritis/M
+osteoporoses
+ought
+oughtn't
+our/S
+overbuild/G
+overburden/k
+overflight
+overhand
+over-ride/GS
+over-the-counter
+over-the-top
+overtone
+oviform
+ownership/MS
+oxide/Q-nSMs
+oxymoron/M
+ozone-friendly
+paced/e
+pacesetting
+pacifist/W
+Packard/M
+packing/MS
+Paddington/M
+paediatrics/M
+pageboy/SM
+Pahaji
+paint/DRSGMJ
+painted/AU
+painter/Y
+paints/A
+pairwise
+palaeoecologist
+paled/I
+Paleozoic
+paler/I
+palfrey/SM
+palladia
+palliation/M
+palm/DMG3SZ
+palmist/y
+palpably/I
+palsy/DMSG
+pamphlet/SM
+panchromatic
+pancreatic
+pane/MDS
+panellist/MS
+panic/GMSZD
+panky
+panorama/MS
+pantechnicon
+pantihose
+pantiles
+pantomime/3SMDG
+pants/f
+paparazzi
+Papeete/M
+paperweight/SM
+parade/RMGDS
+paragliding
+paragon/MS
+paragraph/DMSG
+Paraguay/M
+paralegals
+paralyse/RShGWDk
+paramagnet/MW
+paramoecia
+paramoecium/M
+paraplegic/S
+parapsychologist/S
+parapsychology/SM
+parasitism/SM
+parasitology/M
+parenthesise/D
+parenthesize/D
+parenthetical
+paresis/M
+parimutuel/S
+parka/MS
+Parker/M
+parody/G3DMS
+paroxysmal
+parricide/MS
+parse
+partake/RSG
+partials
+particle/SM
+particularism
+partisan/MS
+parvenu/MS
+pas/GRDJ
+passable/I
+passband
+passé/M
+passée
+passes/IcFf
+passing/Fc
+passionate/FEY
+passiveness/SI
+password/SMD
+pastoralism
+past's/A
+patch/DESG
+patcher/EM
+patellate
+path/pSM
+pathlessness
+pathogenesis/M
+patio/MS
+patriarchate/MS
+Patrice
+patrol/MDGS
+pawn/SGDM
+pawnbroker/SM
+payee/MS
+PC/M
+peaceable/P
+peak/DM2SiGZ
+peat/ZSM
+peaty/T
+pebbly/T
+peccadilloes
+peccary/MS
+pedestal/DGMS
+pedology
+peeled/U
+peignoir/MS
+pell
+Pembrokeshire
+pencil/MGDJS
+pending
+Pendle
+pendulous
+penetrator/SM
+peninsular
+penitence/SIM
+penmanship/MS
+pen-name/S
+pentatonic
+perceiver/SM
+perchlorination
+percolation/M
+percutaneous/Y
+perdition/MS
+perfectibility/MS
+perfectionist/SM
+perfidy/SM
+perfusion/M
+Pericles
+perigee/MS
+perinatal
+peripatetic/S
+perjure/DRSGZ
+permalloy/M
+permeability/SIM
+permissiveness/S
+permittivity
+peroration/SM
+peroxidase/M
+persistent/Y
+person/7oSM
+personable/P
+perspicacious/YP
+peruse/DRGS
+pervasiveness/S
+perverseness/S
+pest/SM
+pesticide/SM
+pewit/SM
+phalanges
+pharynges
+phi/MS
+philology/M13wS
+philosopher/MS
+phlebotomy
+phlegm/SM
+phobic/S
+phoneme/MS1
+phoney
+phonics/M
+phosphoresce
+photoengraver/SM
+photogenic/Y
+photomicrograph/ZM
+photorealism
+physiology/WM1Sw3
+physiotherapist/SM
+picaresque
+pick/DRSGZJ
+pickerel/MS
+pictogram
+pictograph/SMW
+picture-writing
+pidgin/SM
+pie/MS
+piecemeal
+piezoelectric
+piggish/YP
+piggyback/GDS
+pikestaff/MS
+piling/MS
+pimento/SM
+pimp/YSDMG
+pimply/MT
+pin/MGdDJS
+pinkie
+pinkness/S
+pinna
+pinnace/SM
+piñon/S
+piousness/IS
+pipit/SM
+pippin/SM
+piss/DSG
+pit-a-pat
+Pitcairn
+pitman/M
+placed/aUA
+placekick/SGD
+placemen
+placket/SM
+plagiarism/SM
+plaice/M
+planarity
+plankton/MS
+planned/KU
+plant/IGSDA4
+plasterboard/SM
+plateful/S
+platen/MS
+plausible/IY
+play/eGADESacf
+playing/S
+playwriting/M
+plead/SDRGJk
+pleater/M
+plenipotentiary/S
+plethora/MS
+pliable/P
+pliancy/MS
+pliantness/M
+plughole
+plumage/SDM
+plumpness/S
+plutonium/M
+pneumatics/M
+pocketknife/M
+podgy/TP
+podiatry/3SM
+poikilothermic
+point-duty
+poisonousness
+polarimeter/SM
+polarise/CRnSGD
+pole/MDS
+poliomyelitides
+polish/RDJGS
+poltergeist/SM
+polyandrous
+polyether/S
+polygynous
+polyhedron/SM
+polyisocyanates
+polymorphic
+polyphony/SMW
+polystyrene/MS
+polytopes
+polyunsaturated
+polyunsaturates
+polyurethane/SM
+polyvinyl/M
+pomposity/SM
+poorhouse/MS
+popcorn/SM
+poppy/MS
+porch/SM
+porphyry/SM
+portcullis/MS
+portentous/PY
+portière/SM
+posed/4AI
+poser/IMS
+posit/vuSVd
+position/CGADKS
+positionable
+positiveness/S
+posits/C
+possessiveness/S
+possible/SIY
+postage/SM
+postbag/M
+posterior/SY
+posteriori
+post-feminist
+post-free
+postillion
+postmark/MSGD
+post-orbit
+postscript/SM
+post-structural
+postulation/M
+posturer/M
+potage/M
+pot-belly/DSM
+potion/SM
+pouffe/S
+POW
+powerboat/SM
+powerful/P
+ppm
+PPS
+practiser/M
+Praia/M
+prance/RGSDk
+prank/SM
+prattle/DRSGk
+pre/Q8s
+preamble/M
+preceptor/MS
+preciousness/S
+precipitous/YP
+precision/IM
+predatory
+predicable/S
+predicted/U
+predominate/Y
+pre-elect
+pre-existence/SM
+prefab/DSMG
+prefix/M
+prehensile
+premed/wS
+premiership/SM
+premium/SM
+preparative/SM
+preponderance/MS
+pre-programmed
+present/NnLYRS7xlDG
+presentation/MAo
+presidential/Y
+press-up/S
+pressure/M8q-9GQsDS
+pressure-cooker
+presto/S
+Preston/M
+presumable
+pretzel/SM
+priapic
+priestess/MS
+primacy/SM
+prime/PS
+princedom/SM
+princely/PT
+Pringle/M
+priori
+prismatic
+pristine/Y
+prithee/S
+private/nYTQ8SN-qPVv
+privateer/MGS
+privilege/SDMG
+prizewinner/S
+probable/I
+procaine/SM
+pro-choice
+procrastination/M
+prodigal/SY
+produced/e
+producer/AMS
+producible
+profaner
+professionalism/MS
+professor/oSM
+professorial
+programme/WSM
+programming/C
+projectile/SM
+Prokofiev/M
+prolapse/GSDM
+prolate
+proletarian/Q8-qS
+prologise
+prologize
+promethium/M
+promising/UY
+promissory
+promotion/MS
+promulgate/GSNnD
+pronounced/U
+propagation/M
+propagator/SM
+propane/SM
+prophecy/SM
+proportionality/M
+proportioner/M
+propose/DRGSNxX
+proprioception
+pro-Republican
+proscribe/DSXVGN
+prosodic/S
+protactinium/M
+protections
+protoplasm/SWM
+Protozoa
+protozoan/SM
+protrude/XSVuvDGN
+protuberant
+proves/AI
+provision/GMD
+provocative/PS
+provocativeness/S
+prudish/PY
+psittacoses
+psyche/M
+psychocultural
+psycholinguistics/M
+psychoneurosis/M
+psychos/S
+psychotherapeutic/S
+psychotherapy/SM
+psychotic/SY
+pub/MWSDG
+puberty/MS
+publication/KMA
+public's/A
+pucker/dS
+puddling/M
+puffer/Z
+pugnacity/SM
+pulchritudinous/M
+pulley/SM
+pullover/SM
+pumping/M
+pumpkin/MS
+punctuality/UM
+punished/U
+Punjabi
+pupa/M
+pupil/SM
+puppetry/SM
+purblind
+purchasable
+purdah/SM
+pureness/S
+purlieus
+pursuance/MS
+purview/MS
+put/DRGZS
+putted/e
+pyromaniac/MS
+pyrotechnic/S
+pyruvic
+Pythagorean
+q.t.
+quack/DGS
+quadriceps/SM
+quadrille/SM
+quadrillion/HMS
+quaffer/M
+quantifiable/U
+quantify/7NRDGnS
+quantity/MS
+quarterdeck/SM
+quash/SGD
+quaternary/S
+Quayle
+quincentenary/M
+quisling/SM
+quoit/GDSM
+quorum/SM
+quota/MSn
+quoted/U
+quoth
+rabble-rousing
+racialism/M
+rack/SDGM
+racquet/SM
+radiance/MS
+radiant/Y
+radioactivity/M
+radiocarbon/MS
+radio-telegraph/SZ
+radio-telephone/MS
+radish/SM
+radium/M
+Raikkonen
+rain/DMGSpZ
+raincoat/SM
+Raith
+rajah/MS
+ramp/DMSG
+rampant/Y
+ramshackle
+ran/Aec
+rancorous/Y
+Rangoon/M
+rapeseed/M
+rapier/MS
+rapport/MS
+rare/YGTP
+rarebit/MS
+ratatouille
+rationalist/W
+ratline/MS
+rattle/RGYJDS
+ravish/DRGLSk
+raw/YTP
+reactive/Nn
+readdress/G
+realisable/U
+reappoint/LG
+rear/DRMGS
+Reba/M
+rebroadcast/M
+recalcitrant
+recitalist
+reckoner/M
+reclamation/MS
+recluse/MSVN
+recombinant
+recompile/Nn
+rectify/GN7nDRS
+recusance/Z
+redeclare/N
+red-eye
+Redford/M
+red-hot
+redo/G
+reductionism/M
+reek/SDG
+re-enumerate/N
+re-equip/G
+re-establish
+referential/Y
+referral/SM
+reflation/y
+reflexivity/M
+refluence
+refraction
+refractometry
+refractoriness
+refurnish/G
+refutation/M
+reg/o
+regale/DG
+Reggie/M
+rehearsed/Uf
+rehearser/M
+Reilly/M
+releasable
+relentless/Y
+relevance/MIZ
+reliability/UM
+relief/M
+relight/G
+religion/3SM
+religiosity/M
+reliquary/SM
+remembrance/MS
+renaissance/S
+renal
+rent/DMRSG
+rep/MS
+repair's/E
+repast
+repeatable/U
+repenter
+repetitious/Y
+replace/L
+reply/NRnGV
+repression/M
+reproach/kDS6G7j
+reprogram/GRD
+republic/nNS
+reputably/E
+requestion/G
+requital/SM
+rerecord/G
+resemble/DSG
+reserve/nNih3
+reservoir/MS
+reset/G
+reside/DG
+resign/inhN
+resistibly/I
+resolve/B
+responder/MS
+responsible/PIY
+restaurateur/SM
+retardant/SM
+retardation/M
+retention/SM
+reticulum/M
+retinue/MS
+retrench/L
+retrievable/I
+revel/nRJSDGyN
+reverberate/NDGSn
+reverberation/M
+reverenced
+reverse/GbY
+revise/NX
+revitalise/Rn
+Revlon/M
+revolvable
+rewritable
+Rex/M
+Rh
+rheology/w3M
+rheumatic/SZ
+rheumy-eyed
+rhinestone/MS
+rhinoceros/SM
+Rhodesia/M
+Rhonda/M
+rhythm/1MwSW
+ribosomal
+Richardo/M
+Rickard/M
+rickety/T
+ride/GCRS
+rider's/ce
+ridiculous/YP
+riding/M
+riff/MS
+riffle/DSG
+riff-raff/M
+rifle/mGSMD
+rifle-fire
+rifling/M
+right-angled
+rightist
+rightmost
+rigidify/S
+rigour/SM
+rime/SM
+ring-pull
+ringside/MRS
+rinser
+ripen/dS
+ripple/GMYDS
+ritzy/T
+Riva/MS
+rive/RGDS
+Riviera/M
+riving/C
+riyal/SM
+Roarke/M
+robbery/SM
+Roberson/M
+Robespierre/M
+Robinson/M
+robotic/S
+Robson/M
+rock-climber/S
+rocketry/SM
+Rockingham
+Rockland/M
+Rodolfo/M
+roll/GUSD
+roll-back/SM
+Rollin/MS
+Rollo/M
+Romero/M
+rooibos
+rootstock/M
+rope/GRD7SM
+Roquefort/M
+Roscoe/M
+Rosebery/M
+rose-coloured
+Roselle/M
+Rosenthal/M
+rose-red
+Rostov/M
+rotary/S
+rotation/M
+rough/GSDPTY
+rough-hewn
+roughshod
+roundelay/SM
+roundish
+rowdy/PTSY
+Roxie/M
+royalist
+Rs.
+RSPCA
+Ruben/MS
+rubicund
+rubout
+Rudy/M
+Ruhr/M
+rumble/SGDJ
+rumen/MS
+rummy/TM
+rumour/DGSM
+rumple/SGD
+Rundle/M
+rung/SM
+runnable
+runner/SM
+run-through
+ruse/SM
+rush-hour
+Ruskin/M
+Russ
+Russian/SM
+rustication/M
+Ruthie/M
+RV
+Sabin/M
+Sabrina/M
+sackcloth/M
+sacred/Y
+sag/GDSZ
+sahara
+said/U
+saintliness
+saintly/T
+sake/S
+saleable/U
+sallow/T
+Salo
+Saltley
+saltly
+saltness
+salubriousness
+salvo/M
+samarium/M
+Samuelson/M
+sandbank/MS
+sandbox/MS
+sanely/I
+saneness
+sanguinary
+sank
+Santo/SM
+sap/DMRZG2pS
+sarcoma/MS
+sarcophagi
+sartorial/Y
+Saskatchewan/M
+sate/S
+satiate/GnDSN
+satisfied/EU
+saturnalia
+saunterer
+savable
+savoury/U
+sawbones/M
+Saxon/MS
+say/RGJS
+scad/M
+scalability
+scald/GSD
+scam/MDGS
+scans/NX
+scarecrow/MS
+scaremongering
+scarification/M
+scarify/NGDS
+scarlet/M
+schist/M
+Schneider/M
+Schoenberg/M
+scholarship/MS
+school-age
+sciatic
+science/M3SW
+science's/FK
+scion/SM
+Scorpio/MS
+scot
+scot-free
+scour/SDRG
+scoutmaster/SM
+scowl/GSD
+scrawl/SDGY
+screed/SM
+screening/M
+scribble/RSGDJ
+scrivener/MS
+scrofulous
+scrutineers
+scurrility/MS
+scurrilous/YP
+seaboard/M
+seaquake/M
+searchable/U
+seasonableness/U
+seasoning/M
+seawall/S
+seaweed/SM
+secateurs
+seceder
+secondary/Y
+section's/E
+Seder/MS
+sedimentary
+seditiousness
+seduce/RDNVvuGSn
+sedulous/Y
+seemly/TP
+sees/c
+segregated/U
+Seidel/M
+seizable
+Selassie/M
+selectiveness
+Selena/M
+selenium/M
+Seleucid/M
+self-aware
+self-awareness
+self-censorship
+self-confident/Y
+self-contradiction
+self-deception
+self-interest/D
+self-satisfied
+self-taught
+Selkirk/M
+sell-by
+sell-out
+seltzer/S
+semiarid
+semi-duplex
+semi-infinite
+seminal/Y
+semi-rigid
+semi-skilled
+Semite/WSM
+semi-tone/MS
+semitransparent
+Senegalese
+senescent
+sensitising/C
+sensitivity/IMS
+sensitizing/C
+sentence/MGDS
+sepal/SM
+separability/I
+separableness
+separatism/MS
+Sephardic
+sept/NWM
+seraph/W1SM
+serene/TY
+serology/w1M
+serve/AGCSKDF
+server/CKSM
+serving/CS
+servitude/SM
+seventy-eight/H
+seventy-six/H
+seventy-twofold
+severe/oTY
+sexuality/MS
+Sgt.
+shabbiness
+shadowed/c
+shadower/M
+shadowing/c
+Shaftesbury/M
+shaky/YT
+shalom
+shamanism
+shame/6MjpS
+Shamus/M
+shapeless/PY
+shareholder/MS
+shark/SM
+sharpener/S
+sheepwalk/MS
+sheik/SM
+shellfire/M
+shellfish/M
+shelter/drSM
+sheltered/U
+shepherd/GMSD
+Sheridan/M
+Shetland/S
+shingle/DMSG
+Shintoism/S
+shoelace/MS
+shoemaking
+shop-boy/MS
+shop-floor
+shopping/M
+shortage/MS
+shortcrust
+short-sighted/Y
+shoulder/d
+shoulder-length
+shove/DSG
+showing/M
+show-place/MS
+shrank/K
+shriek/DRSMG
+shrubbery/MS
+shrubby/T
+shrug/SDG
+shush/DSG
+shutter/dp
+shyest
+sickish
+sick-list
+side-by-side
+side-chapel
+sided/Y
+sidedness
+sidelight/MS
+side's/f
+sidestep/GDS
+side-table/S
+Sidney/M
+Siegel/M
+sifter/SM
+significance/ISM
+signor/MF
+signorina/SM
+Sikh/SM
+silent/Y
+silverfish/SM
+Silverman/M
+Simmons/M
+simplicity/MS
+since
+single-handed/Y
+siren/SM
+Sisyphus/M
+sit/RGSJ
+sixty-six/H
+skating-rink
+skill/DSM
+skilled/U
+skin-tight
+skivvy/DMSG
+skiwear
+skulk/RGSD
+sky-blue
+Skylab/M
+skyline/MS
+slam/RGSD
+slanderous/Y
+slap-up
+sleazy/PTY
+sleeve/SMGDp
+sleuth/GMDS
+slob/SM
+slot/DGSM
+slouch/DSGZ
+Slough/M
+Slovak/S
+Slovakia/M
+slowdown/MS
+slue/DSG
+slumber/MdS
+slyness/M
+Sm
+smack/GSMDR
+small/ST
+smallholding/SM
+small-minded
+small-mindedness
+small-time
+small-town
+smash/RkSGD
+smash-and-grab
+smattering/SM
+smilax/MS
+smilies
+smocking/M
+smokescreen/S
+smoke-stone
+smoking-jacket
+smoothish
+smug/PTY
+snake/GZDMS
+snappy/TP
+snare/GDMS
+snarer/M
+snarl/SDGkY
+snicker/d
+snitch/GDS
+snobbish/Y
+snobbishness
+Snodgrass/M
+snooker/d
+snoot/SzM2Z
+snowdrift/SM
+snowfield/SM
+snub-nosed
+soapsuds
+sociometry/MW
+sock/DMSG
+socket/dMS
+soever
+soigné
+solely
+solicited/U
+solid-state
+Solis/M
+somalia
+someone/M
+son/MW1SZ
+sore/TSY
+sorrel/SM
+sorrower/M
+sorry/TPY
+sorter/SM
+sorts/K
+soulless/Y
+sound/GJSTMDRYp
+sounding/M
+sounds/A
+sow/RGDS
+spa/MS
+spaciest
+spadework/M
+sparest
+sparseness
+speaking/Ua
+spearhead/GSMD
+specialise/cnGDS
+specifies/A
+specimen/SM
+specious/PY
+spectrograph/Z1M
+spectrophotometer/MWS
+speculator/SM
+speechless/PY
+speedboater
+Spencer/M
+spew/DRSG
+spider/MZS
+Spielberg/M
+spiller
+spine-chilling
+spinet/SM
+spinneret/SM
+spiraea/MS
+spiritualness
+splashdown/SM
+splendiferousness
+split/SRGM
+spoil/CSRDG
+spokespeople
+spoonbill/MS
+spoor/SM
+sporran/SM
+spouse/SM
+sprang
+spread/CGcSe
+spread-eagled
+spreadsheet/S
+springy/TP
+spry
+spud/SDGM
+spurn/DSG
+spurner
+sputa
+squeegee/MSG
+squeezable
+Squibb/M
+squiredom
+squireship
+squirrel/YMGSD
+squirter/M
+stab/RYDJSG
+stability/MSI
+Staffordshire/M
+stallholders
+stalwart/YS
+stalwartness
+stand/SfGJ
+stand-off/S
+staphylococcal
+staphylococcus
+star-spangled
+start/RSDG
+starts/A
+statistical
+statistician/SM
+stator/SM
+stealer/M
+steam/zR2DGMZS
+steed/SM
+steel-clad
+steer/GSD7
+stegosaurus/S
+stem/pGMDS
+stentorian
+stepchildren
+stepladder/SM
+sterilise/ADSG
+stern/SYT
+stevedore/SM
+stick/RZS2GzM
+sticky/PT
+stiffen/rSd
+stigmatised/U
+stile/MS
+still/SDPTG
+stimuli/M
+stinting/U
+Stirling/M
+stirrup/SM
+stochastic/Y
+stocking/MSD
+stocktaking/M
+Stoddard/M
+stodge/2MZ
+stolid/Y
+stolidity
+stomach/R6pDMG
+stonemason/SM
+stonewort/M
+stopoff
+stopover/SM
+storey/S
+stork's-bill
+storm-cock/MS
+storm-door/SM
+Stornoway/M
+Stourbridge
+Strachan
+strafe/SGD
+straggly/T
+straight-eight
+strait/SMY
+strait-laced
+strategic/S
+strayer/M
+stressed/U
+stressfulness
+stretchy/T
+stridden
+strikebreak/RG
+strike-breaking
+string/AGS
+stringent/Y
+strobe/SM
+stroke/SGDM
+struck
+struggler/M
+strum/DGS
+strumpet/MS
+stuffy/YTP
+stumble/GSDRk
+stumpy/T
+suavity/M
+sub-aqua
+sub-basement/MS
+subcontractor/SM
+subdirectory/S
+subdivide/XSDGN
+sub-edit/d
+subfamily/MS
+subfusc
+subgenera/W
+subject/vGSDuMV
+subjectivism
+subjectivist/S
+subjectivity/SM
+sublet/SG
+submerse/SbXGDN
+submit/ANSGDX
+suborn/NGDS
+subscript/DGS
+subsidised/U
+subsist/GSD
+subspecies/M
+substation/SM
+substratum/M
+substructure/MS
+subsume/GSD
+subtend/SDG
+subtitle/MSGD
+subvert/SDG
+succour/SGMDp
+suds/Z
+suffix/nSGDM
+suffusion/M
+suicide/SoM
+sulky/T
+Sumatra/M
+summation/FMS
+sunburn/MSD
+sunglasses
+Sunni/MS
+Sunnyvale/M
+sunroof/S
+sunshade/SM
+superabundance/M
+supercilious/YP
+supercooled
+superficiality/S
+superfine
+superintend/DSG
+supernatant
+supernatural/PY
+superstar/SM
+superstition/SM
+superstructure/SM
+supervised/U
+supine/PY
+supplementary/S
+suppression/M
+supra
+Supt.
+Surabaya/M
+sure-footed/Y
+sure-footedness
+surface-active
+surface-to-air
+surface-to-surface
+surfboard/MGS
+surfeit/MGSD
+surgical/Y
+Surinamese
+surmise/DGS
+surreal
+Surrey/M
+susceptibility/MSI
+Suzanne/M
+suzerain/SM
+swashbuckler/SM
+sweatshirt/S
+sweaty/PT
+sweepstake/MS
+swineherd/SM
+swingeing/Y
+switch/DMRGS
+switch-over/M
+swoosh/DSG
+sword/SmM
+swung
+sycamore/SM
+syllabary
+symptomatology/M
+synaesthetic
+synchronized/CU
+synchronizer/CSM
+syndicalist
+synonymity
+synopsis/M
+synthesis/rQ9S8dM
+synthetic/SY
+syphilitic/S
+systematise/nRSGD
+systematize/NRSGnD
+tabbouleh/S
+tablespoonful/MS
+Taft/M
+taiga/SM
+tail/AMCDSG
+tailgate/G
+take-off/SM
+taker/cS
+Talbot/M
+Taliesin/M
+talkie
+tame/RTGDYS7
+tamper/rdS
+Tanaka/M
+tandoori/S
+tangy/T
+Tania/M
+tans/Z
+Taoism/MS
+tap-dance/G
+tar/DMZGS
+tarantula/SM
+Tarawa/M
+tarsus/M
+tartan/MS
+Tashkent/M
+Tasmania/M
+tasteless/PY
+taverna/S
+tawny/TM
+tax-deductible
+Tchaikovsky/M
+TCP
+teaching/M
+teacloth
+tear-off
+tease
+teasel/MS
+teazel
+teddy/MS
+teeter/dS
+teetotal/R
+Teignbridge
+Tel.
+telefacsimile
+telemeter/WSM
+telemetry/MS
+telepathic
+teletext
+temperamental
+temperateness
+temperature/MS
+tempt/SRnGDkN
+tenacious/Y
+tenet/SM
+tensioner/S
+tentativeness
+tenter/M
+tepidness
+tercentennial/S
+termini
+term-time
+ternary/S
+terrestrial/YSM
+Terrill/M
+tertiary/S
+Tessa/M
+tessellation/M
+testimony/MS
+test's/F
+test-tube
+tethered/U
+textile/SM
+Thai/S
+Thames
+thane/SM
+thanklessness
+Thatcher/M
+that'll
+thermionics/M
+thermochemical
+thermoplastic/S
+thesaurus/SM
+Thespian/S
+Thessaly/M
+thicken/Sdr
+thieve/GyDS
+thimbleful/MS
+thingamabob/MS
+third-class
+thirty-eight/H
+thoracic
+Thornton/M
+threadbare
+threat/SM
+three-cornered
+three-handed
+threepence/M
+threnody/SM
+thrombosis/M
+Thule/M
+thumbnail/SM
+thunderstruck
+Thurman/M
+thwart/SDG
+thyroid/S
+Ti
+ticklish/P
+tiddlywinks
+tight-arsed
+tilde/SM
+tilters
+time-and-motion
+timeless/Y
+timeslot/MS
+timestamped
+Timmy/M
+timpanist/S
+Timur/M
+tingle/GDS
+Tioga/M
+Tipton
+tiredness
+tithe/SMDG
+T-junction/S
+Tobin/M
+tog/MGSD
+Tokyo/M
+tolerance/ISM
+toleration/M
+toll-gate/SM
+Tolstoy/M
+Tompkins/M
+tonal
+tonality/SM
+tone-deaf
+tonguing/M
+tonsillitis/M
+Tony/M
+toolbox/MS
+toothbrush/SM
+tootsie/M
+top/MWwGpR1JDS
+top-notch
+Toronto/M
+torrential
+torrid/Y
+torture/RDGS
+torus/SM
+Tosca/M
+tote/GS
+toupee/MS
+tow-bar/MS
+tow-head/SMD
+townspeople/M
+toxicology/3Mw
+toy/MDSG
+toymaker
+track/GMRSDp
+track-laying
+tractably/I
+tractor/FSMCA
+tract's/F
+trade-in/S
+traducement
+traffic-calmed
+tragic/Y
+train/ADGS
+train-spotting
+trample/DSG
+transcendent/oY
+transgression/M
+translatable/U
+translated/aU
+transmission/AM
+transponder/M
+trapshooting/M
+trash/SGD2MZ
+travelled/U
+treadle/DSGM
+treatise/MS
+treatment/KSM
+trenchant/Y
+Trescothick
+triangulation/M
+tribalism/M
+tribe/SmM5
+trichina/M
+trichloroethane
+trigger/d
+trigger-happy
+trimonthly
+tripe/M
+tripwire/SM
+trisect/SGD
+trisector
+trod/A
+Trondheim/M
+troopship/MS
+troth/S
+trouble/DGSM
+troublemaker/MS
+trousseau/M
+trousseaux
+trueness
+Trujillo/M
+trump/SDGM
+truss/GSD
+trusted/U
+trustful/P
+trusting/Y
+try-out/MS
+T-shirt/S
+tubing/M
+tubule/SM
+Tuck's
+Tully/M
+tumblerful/S
+tumbrils
+tune/ACSGD
+tunic/SM
+Tupperware
+turbinate
+turbojet/SM
+turboprop/SM
+Turing/M
+turn-buckle/SM
+turnover/MS
+turpitude/MS
+tutorial/MS
+Tuttle/M
+tweet/SRGD
+twenty-first/S
+twenty-three/H
+twenty-two
+Twickenham
+twiddly/T
+twit/DGSM
+'twixt
+two-wheeler/MS
+type/aASGD
+tyrannosaurus/S
+tyro/SM
+UFO/S
+Ukrainian/S
+ulcerate/SGNDn
+ulcerous
+Ulrika/M
+ultra/S
+ultraconservative/S
+ultra-high
+ultramarine/SM
+umbrage/SM
+unable
+unaccustomed/Y
+unalterable/Y
+unanimity/SM
+unavailable
+unbelieving/Y
+unchristian
+unconfirmed
+uncork/G
+uncouple/G
+unctuousness
+uncut
+understandability
+undertaking/M
+unending/Y
+unessential
+unfair
+unfit/DG
+ungainly
+unguent/S
+ungulate/S
+unilateralism/M
+Uniondale
+union's/EA
+unipolar
+Unix/M
+unlike
+unload/G
+unmanly
+unmarried
+unmovable
+unpopular
+unprovable
+unread/2B
+unselfconsciousness
+unsettle/ki
+unsolder
+unsound
+unstable
+unstinting/Y
+unsure
+unsuspecting/Y
+untouchable/MS
+unutterable/Y
+Upanishads
+uplift/SDG
+upped
+upper/S
+uppermost
+Uranus/M
+urbanite/SZM
+URL
+user/aM
+USSR
+utensil/SM
+utmost
+utopian
+Utrecht/M
+uvula/SM
+Uzi/M
+vacant/Y
+vacuity/MS
+vacuolated
+vacuum/MS
+vainglorious/Y
+Val/M
+Valentino/M
+Valenzuela/M
+Valparaiso/M
+valuably/I
+value-added
+valueless
+values/fc
+Vance/M
+vandal/Q8MS
+vanquish/RGDS
+variegate/SnDGN
+various/Y
+varsity/SM
+vascular
+Vaseline/M
+Vatican/M
+vaunt/DGS
+Vegemite
+veggie/SM
+vehicular
+velocity/SM
+velour/MS
+velum/M
+Venables
+vendetta/MS
+venomous/Y
+ventilation/M
+ventricular
+ventriloquies
+venturesome/Y
+Verdi/M
+veridical
+verifiable/U
+Vern/M
+versatility/SM
+versify/GNRSnD
+version/MIFAS
+vertebrate/SIM
+vertices
+vesicle/MS
+vesiculate/NGS
+Vesta/M
+vestibular
+vestry/mSM
+vests/I
+vex/F
+vexatious/Y
+VF
+vibrational
+vice/CSM
+Vicente/M
+vicissitude/MS
+Victoria/M
+Vidal/M
+Viennese/M
+Viet
+viewpoint/SM
+vigilantism/SM
+vigorous/Y
+Vila/M
+vile/PYT
+villa/SM
+villus/M
+vinaigrette/SM
+vino/M
+violinist
+Virgil/M
+virile
+virtuoso/SM
+viscosity/MS
+visit/AdS
+vista/SM
+vitalized/C
+vitrification/M
+viva/S
+vivisect/xGDS
+vixen/MS
+vocabulary/SM
+vocation's/IFA
+vocoder
+voice-over/S
+voltmeter/SM
+voluble/Y
+voluntarily/I
+vomit/Sd
+voracious/Y
+vouch/GSRD
+Vreeland/M
+vulnerability/SI
+vulva/M
+WAC
+wagon/SM
+waitress/MS
+Waldemar/M
+Walt/MR
+Walther/M
+warble/GRDS
+warden/MS
+warmonger/MS
+warning/M
+Warsaw/M
+washbasin/SM
+washhouse/S
+Washington/M
+waste/Sj6
+watchword/SM
+watermark/MDGS
+water-resistant
+Watford/M
+wattage/MS
+Watusi/M
+wax/GMZDS
+weaners
+Wear
+Wear-Tees
+weathercock/SM
+Weatherford/M
+weds/A
+weft/SM
+weightless/Y
+weightlifter/S
+Weiss/M
+Weldon/M
+well-deserved
+wellness
+well-thought-of
+Welshwoman/M
+Wentworth/M
+westbound
+Western
+wetland/S
+wet-nurse/S
+Weymouth/M
+Whatley/M
+Wheatstone/M
+wheelbarrow/MS
+wheelbase/MS
+whelk/SM
+whereat
+where'd
+whims/1Zw
+whipper-snapper/SM
+whiskey/MS
+whistle-blower/S
+white/PSTGMY
+white-collar
+white-out/S
+Whitfield/M
+Whitney/M
+Whitsuntide
+whoever
+whore/SDGM
+who're
+whorehouse/MS
+whorl/SMD
+wickerwork/M
+wide-angle
+wide-ranging
+wifeliness
+Wigan/M
+Wiggins
+wild/TYPSG
+wildfowl/M
+Wiley/M
+wilful/YP
+Willamette/M
+Willem
+willing/UY
+Willy
+Wiltshire/M
+wimple/MDSG
+windburn/SM
+Windhoek/M
+winding/SM
+window-shop
+windowsill/SM
+wine/ZMS
+Winthrop
+wiry/T
+wisdom/MS
+Wiseman
+wishing-well
+witch/MyDSG
+with
+withdrew
+withstood
+Witwatersrand
+wizard/ySYM
+wizen
+woebegone
+woken
+Woking
+Wolff/M
+wolverine/MS
+wonderer/M
+wonderland/SM
+wood/mZDS2M
+woodchuck/SM
+woody/T
+woolliness
+woozy/TYP
+wordbook/SM
+workfare/S
+workman/M
+workmanship/MS
+workout/MS
+WorldCom
+world-view/S
+worn-out
+worst/D
+would-be
+wrap's
+wreathe/S
+wren/SM
+wriggly/T
+wrinkle/GDSMY
+wristwatch/SM
+write-off/S
+wrought/Ic
+WWW
+Wylie/M
+Xerxes
+Xi'an/M
+xylophone/SM
+Yakutsk
+Yalta
+Yankee/S
+Yankeeism
+Yarborough
+Yashmak
+yawn/kGRDS
+ye
+yell/SGD
+Yid
+yin
+yokel/SM
+yo-yo
+ytterbium/M
+Zadie
+Zaire/M
+zaniness
+zealously
+zebra/MS
+zeroes
+Zetland
+zip/UGDS
+zircon/M
+zone/ASDG
+Zulu/MS
+AA
+Ababa/M
+abaser/M
+abated/U
+abbot/SM
+Abbott/M
+abbreviated/U
+abdication/M
+abhor/SGD
+abhorrent/Y
+abjectness/S
+abnormality/SM
+aborter
+abortive/P
+aboveboard
+abrade/DGVXvuNS
+abrasive/MS
+abreast
+abrogation/M
+abstracter/M
+abstraction/3SM
+Abu/M
+abusable
+acceleration/M
+accelerometer/MS
+accession/MDG
+acculturation/M
+accuracy/ISM
+achieve/RSfDG
+acoustician/M
+acquit/DGS
+acrobat/M1SW
+action/IMS4A
+actionable
+actuation/M
+acuity/MS
+adaptor/S
+addend/SM
+addict/DSGVu
+additional
+additive/YSM
+add-on/S
+addressed/Aa
+adductor/M
+Aden/M
+adjective/SM
+admission/AM
+admixture/MS
+adolescence/SK
+adolescent/MYS
+Adolph/M
+adorn/DLSG
+adsorbate/M
+adulate/SDNnGy
+adulation/M
+adulthood/SM
+adventitious/PY
+adventure's/a
+adventurous/U
+adventurousness/SM
+adversarial
+adversity/SM
+advisability/I
+advise/BLRSGDlh
+advocacy/MS
+aerodynamics/M
+aestivate/N
+AFC
+affability/SM
+affect/hVvNnkDiSG
+affliction/SM
+affluent/Y
+aforementioned
+Afrikaans
+Afrikaner/SM
+afro
+agency/SM
+aggressor/MS
+agile/TY
+aglow
+agoraphobic/S
+agree/dESLlG
+agronomy/3SMW
+ague/MS
+Ahab/M
+Aida/M
+aide/MS
+aide-mémoire
+ail/LSDG
+airborne
+airframe/MS
+airfreight/DSG
+airhead/SM
+airing/M
+airsickness/S
+airtight/P
+air-to-air
+aisle/DGSM
+Ajax
+al/AFC
+Alabamian/M
+Aladdin/M
+alba/M
+Alberta/M
+Alden/M
+Alec/M
+ALGOL
+Al-Haili
+aligner/MS
+aliquot/S
+alkyl/M
+Allegheny/S
+allegory/1MWS3w
+allegretto/MS
+allier
+allocation's/CKA
+all-time
+almost
+aloha/MS
+Alpert/M
+alphabet/sQ-SW89q1Mw
+alphanumerical
+al-Qaeda/M
+al-Sharif
+altar/SM
+although
+altogether
+alumna/M
+Alvarez
+amalgamate/SDG
+ambassadorship/MS
+ambience/M
+ambivalent/Y
+ambulance/MS
+Amelia/M
+amener
+amenorrhoea/M
+ammoniac
+ammunition/SM
+amniocenteses
+amoeboid
+Amos
+amputee/SM
+anagram/GMDS
+Anaheim/M
+analgesic/S
+anarchist/W
+anastomoses
+ancestral/Y
+ancestress/SM
+andiron/MS
+androgyny/MS
+anecdotal
+anemometer/SM
+Anglicism/S
+Anglophile/SM
+angst/MS
+anhydrite/M
+aniline/MS
+animalcule/S
+animately/I
+anklet/MS
+Annie/M
+annihilation/M
+anniversary/SM
+annoy/DkRSG
+anonymous/Y
+another/M
+ans/M
+answerable/U
+answered/U
+ante/MW
+anthracite/MS
+anthropomorphism/SM
+anthropomorphous
+antibiotic/MS
+anticipation/M
+anticoagulant/S
+antimacassar/MS
+antipathy/SMW
+antiphonal/S
+antiquity/SM
+antiresonance/M
+antislavery
+antisymmetry/W
+antiterrorism
+Antoinette/M
+anus/MS
+anybody/SM
+anyhow
+aorta/WSM
+apart/PL
+apex/SM
+aphrodisiac/SM
+apish/YP
+apophthegm/SM
+apparatus/SM
+appealing/U
+appeased/U
+appellation/M
+appellative/M
+applicator/SM
+appoints/EA
+apposite/Yx
+apprehender/M
+apprentice/DSGM
+appropriator/SM
+appurtenant
+apt/TPY
+Arabian/SM
+arable/S
+Arapaho/M
+arbitrariness/S
+arbour/MDS
+Arbroath/M
+arc/SMDG
+archaeopteryx
+archdiocesan
+archipelago/SM
+Arcturus
+ardent/Y
+Ards/M
+arduous/YP
+area/MS
+aren't
+Aretha/M
+arguably/IU
+argued/e
+argument/SnMN
+ariser
+Aristophanes
+Aristotelian/M
+Aristotle/M
+arithmetical
+Arizona/M
+armada/SM
+Armagnac
+Armenia/M
+armlet/SM
+Armstrong/M
+aroma/WSM1
+aromatic/PS
+arras/M
+arrears
+arrogate/DNGnS
+arsenide/M
+arterial
+arteriole/SM
+artful/P
+arthritis/M
+Arthurian
+articulateness/S
+artificiality/SM
+artistic/IY
+ascetic/MYS
+ascorbic
+asexual/Y
+ash/SMDGZ
+Ashland/M
+Asia/M
+asked/U
+asocial
+asparagus/SM
+aspartame/S
+asperity/SM
+aspirate/SGD
+aspirer/M
+aspirin/SM
+Assad/M
+assay/GDRS
+assertiveness/S
+assessor/SM
+asseverate/SGnDN
+assigned/KACU
+assigns/KCA
+assimilate/DSVGnN
+assimilationist
+assister/M
+associative/Y
+assonant/S
+assuming/U
+assumption/M
+asthmatic/S
+astonish/SLkDG
+Astoria/M
+astronomer/SM
+astrophysical
+asymptomatic/Y
+asymptote/1MSW
+Atari/M
+attached/AU
+attainably/U
+attained/AU
+attempted/A
+attenuator/SM
+attitudinal/Y
+attract/VuS7DGv
+au
+audible/YI
+Augustinian
+auricle/SM
+Australasian/S
+authenticator/MS
+authenticities
+authorial
+authorizes/A
+authorship/MS
+autocross
+autogyro/MS
+available/P
+avant-gardism
+avarice/MS
+ave/S
+aver/DG
+aviary/SM
+avionic/S
+avocation/MoS
+avoidance/MS
+avow/GSED
+awestruck
+awhile
+axed/F
+axillary
+axolotl/MS
+baa/GSD
+Babcock/M
+babe/SZM
+baccalaureate/SM
+backache/MS
+backer/SM
+backing/SM
+backlash/SDGM
+backlit
+backplate/MS
+backstairs
+backtrack/RGSD
+Backus
+backwater/MS
+badge/SRGMD
+badger/d
+bagginess/S
+baggy/TPS
+bagpipe/MRS
+baguette/MS
+bake/RGSDy
+baking/M
+baksheesh/MS
+baldric/M
+ballast/SMGD
+ball-bearing/S
+ballgame/S
+ballyhoo/MDGS
+balun
+balustrade/MS
+bandmaster/MS
+bandstop
+banisher/M
+banjoist/MS
+bank/S7RGJMD
+Bantu/M
+baptise/DRSG
+baptistery/SM
+barbarian/SM
+barbarianism/MS
+barbershop/SM
+barcarole/SM
+bard/MSDGW
+Barents
+barkeep/RS
+barmaid/SM
+Barnet/M
+baronage/MS
+baronet/SM
+Barr/MZ
+bar-room/MS
+bar's
+Bartley/M
+bas/Sd1o
+baseplate/M
+basetting
+basket/6SMy
+Basque/MS
+bassinet/MS
+bate/CDASG
+bater/C
+batted
+battle/RDLMSG
+bauble/MS
+BBC/M
+beachcomber/SM
+beard/pSGiDM
+beatably/U
+beaten/U
+beating/M
+beatitude/MS
+beatnik/MS
+became
+beckon/Sd
+bedchamber/M
+bedim/GSD
+bedlam/SM
+bedridden
+beech/SM
+beefeater
+beermat/S
+Beersheba/M
+beeves/M
+befit/SGDM
+befitting/Y
+befriend/DGS
+behaviour/aSM
+behest/MS
+behold/GSR
+bejewel/DGS
+Belarus/M
+belated/P
+belief/SME
+believably/U
+bellow/SDG
+Bellwood
+belonging/M
+bemoan/SGD
+bench/GSDM
+Benedict/M
+benevolent/YP
+Benghazi/M
+Bentley/MS
+berkelium/M
+beside/S
+besot/SDG
+bespangle/DSG
+bespoken
+bestir/SDG
+bestow/DSG
+betake/SG
+bête/S
+bethought
+betwixt
+biased/U
+bicameral
+bicentennial/S
+bier/M
+biggie/M
+bikini/SMD
+biliary
+bimodal
+bin/DGSM
+binder/Z
+binomial/SYM
+bioengineering/M
+biotechnology/w3SM
+biplane/SM
+birthrate/MS
+bisyllabic
+bitterer
+Blackadder/M
+blackbodies
+blackmail/RGMDS
+Blackshirt/SM
+blacksmith/GSM
+Blackwell/M
+blameworthy/P
+bland/TPY
+blankness/S
+blarney/GSMD
+blaspheme/RDSZG
+blatherer
+blatting
+bleed/RSG
+blight/DGMS
+blighter/M
+blimey/S
+blinker/d
+blinks/M
+bliss/6jS
+blissful/P
+blizzard/SM
+blob/SMDG
+Bloch/M
+blockbuster/MS
+blonde/SM
+blondish
+blood-brother
+blood-heat
+bloodline/MS
+blood-money
+bloodroot/M
+bloodstone/M
+bloodymindedness
+Bloomington/M
+blot/GMRSD
+blotto
+blow-dry/GD
+blubber/dSZ
+blue/TZGSYPDMJ
+bluejeans
+bluer/M
+bluestocking/SM
+bluing/M
+boasted/e
+boat-hook/S
+boatyard/SM
+bock/SGD
+bodhisattva
+body/pDMSYG
+bodywork/MS
+boggle/DGSk
+boilerplate/SM
+Bois/M
+boisterous/YP
+boldness/S
+Bolivia/M
+bolt/UGSD
+bombast/WMS1
+bombed-out
+bonfire/SM
+bongo/MS
+bonhomie/SM
+bonny/T
+boohoo/SDG
+bookbindery/MS
+bookcase/SM
+booked/cA
+bookmaker/MS
+bookshelf/M
+bootie's
+bootleg/GSRD
+borate/DMS
+borderland/SM
+bore/RGSkDW
+boring/M
+born/AU
+boss/SzG2MDZ
+bossism/SM
+bosun/M
+bouffant
+bouillon/MS
+bouncy/YT
+bounded/P
+bountiful/P
+bout/MS
+Bowery
+bowl/R6MSDG
+bow-saw/MS
+boyfriend/SM
+bracket/dSM
+bracketing/M
+Brady
+brag/TSDRG
+brain/GD2pMZS
+brainchildren
+brainwash/SGD
+brainwave/S
+brambly/T
+bravura/MS
+bray/SGD
+Brazzaville/M
+bread-and-butter
+breadboard/DGMS
+breadwinner/SM
+break/eMS
+breeching/M
+Brett/M
+bridegroom/MS
+bridleway/S
+briefs/C
+Brigadoon/M
+brighten/drS
+brilliancy/SM
+brink/MS
+briquette/SM
+Bristol/M
+Britain/M
+Britten/M
+brittlely
+brochette/SM
+brogue/SM
+bronchiole/MS
+brooklet/SM
+Bros.
+brow/SM
+Brubeck/M
+brush/ZGSDM
+brushlike
+brush-off/S
+Brussels/M
+brutal/qQ8-
+Bryce/M
+BSkyB/M
+BTU
+Budapest/M
+budgie/MS
+Buena
+bug-eyed
+Buick/M
+building/MeS
+build-up/SM
+Bulawayo/M
+bulldoze/RGDS
+bullfight/RSMG
+bully/DGTMS
+bumble/DRkSG
+bunchy/T
+bunkhouse/MS
+burdening/c
+burdens/cU
+burgess/MS
+burglarious
+Burgoyne/M
+burlap/MS
+burler/M
+burliness/S
+bursa/yM
+bursar/MS
+bursty
+busher
+bushwhack/GRSD
+busty/T
+busyness
+but/DAGS
+Bute/M
+butterfat/MS
+butterfingers/M
+buzzard/SM
+byliner/M
+bypath/SM
+byword/SM
+Byzantine
+Byzantium
+cabal/GDSM
+caballero/SM
+cabbage/DGSM
+cabochon
+cabstand/SM
+cackle/DRSYG
+Caddick/M
+caddie
+caeca
+caecitis
+caffeine/SM
+cageyness
+cagoule/S
+calcification/M
+calcimine/DSMG
+Caledonia/M
+calfskin/SM
+call-boy
+calling/a
+callisthenic/S
+callisthenics/M
+Calvert/M
+Calvin/3M
+cambial
+came/c
+cameo/MSDG
+Canaveral
+cancerous/Y
+candelabrum/M
+candidness/S
+candour/SM
+cannabis/MS
+canyon/SM
+capable/IP
+capaciousness/S
+capacity/SMI
+capillarity/MS
+capital/-qMQs893S
+capped/U
+caprice/SM
+captor/SM
+captured/A
+carbohydrate/SM
+carbon/sQ9S8W-NqMn
+Carbondale
+carcinogenesis
+card-index
+cardiogram/SM
+careerism/M
+caresser/M
+cargo/M
+Caribbean
+carious/K
+car-jack/SDJRG
+Carlin/M
+Carline
+Carney/M
+Carnot
+carny/G
+Carolingian
+Carolyn
+carpet/dJSM
+carpeting/M
+carries/a
+cartridge/MS
+cash/DGSpM
+cash-book/MS
+cashew/SM
+cassette/MS
+casting/Mc
+Castro
+casual/PY
+cataclysm/WSM
+catacomb/MS
+catamaran/MS
+Catawba
+catcall/DGSM
+catchword/MS
+catkin/SM
+catlike
+cattiness/S
+catty/TP
+caucus/S
+caught/U
+cauldron/SM
+cause/GnDMoRSp
+cautiousness/I
+cavalier/YPSDG
+cave/mRSMDG
+caver/F
+Caxton
+CB
+CDs
+Cedric/M
+Celanese
+celebrant/SM
+celery/SM
+centenarian/SM
+centreboard/SM
+centrepiece/SM
+centring/M
+century/SM
+cephalic/S
+cerebral/S
+cert/SF
+cesspool/MS
+chador
+chafer/M
+chagrin/MS
+chain-smoke/GD
+chairmanship/MS
+chalcedony/SM
+chalk/MGZ2SD
+challenge/RDGSk
+championship/SM
+chancellery/SM
+chance's/a
+changeover/SM
+Channing
+chanticleer/SM
+chaos/MS
+charisma/M1W
+Charleston
+chart/RDG73MJS
+charter/dr
+chastity/SM
+chateaubriand
+Chattahoochee
+cheap/TY
+checkpoint/MS
+cheesy/PT
+chef/SM
+chemistry/SM
+cheroot/MS
+chestful/S
+chevron/SM
+chicer
+chicken-livered
+chilblain/SM
+childrearing
+Chilean/S
+chill/TDk2PRGMYS
+Chiltern/S
+chinchilla/MS
+Chinese/M
+chinstrap/S
+chipping/M
+chivalrous/PY
+chlorination/M
+chocoholic/S
+chocolatey
+choice/TSPYM
+chokeberry/M
+cholinesterase/M
+chopstick/SM
+chording/M
+Chorley
+chortle/RGDS
+chosen
+christening/MS
+Christie
+Christmastime
+chromatogram/MS
+chumminess/S
+Churchillian
+churlish/YP
+churn/RDGSM
+chutney/SM
+chyme/MS
+ciao/S
+CID
+cilium/M
+Cinerama
+cinnamon/SM
+circa
+Circe
+circle/GDSM
+circulating/A
+circumference/SM
+circumspect/Y
+cissy
+cistern/SM
+citadel/SM
+civil/s9qQ-8Y
+civility/ISM
+clairvoyance/MS
+clamour/GMDRS
+clarification/M
+clarify/NDGSn
+clarity/SM
+Clarke/M
+clasper/M
+class-conciousness
+classicism/SM
+classicist
+Claudio
+clavichord/SM
+clavier/MS
+clean-cut
+cleanlinesses
+clearness/S
+Cleopatra/M
+clericalism/MS
+clew/SMDG
+click/RSGDM
+cliffhanger/SM
+climacteric/MS
+clime/WSM
+clinical/K
+cliometric/S
+clip/RGSDJM
+cliquish/YP
+clitorides
+cloaca/M
+cloisonné
+close-hauled
+closure/GDSM
+clothbound
+clothes-peg/SM
+cloudiness/S
+clouds/c
+cloudscape/SM
+clownishness/S
+clubroom/SM
+clued-up
+cluster/MdSJ
+cm
+Co
+coagulator/S
+cobblestone/SDM
+coca/SM
+coccyx/M
+cockade/MS
+cockney/MS
+coded/K4
+codeine/MS
+coding/4
+Coelenterata
+coelenterate/MS
+coffee-cup/SM
+coffer-dam/MS
+cognisance
+cognizance/AMS
+cogwheel/SM
+coherence/SIMZ
+cohesive/YP
+coke/SMDG
+cokey
+cola/SM
+Colby
+Coldfield
+collide/XDGxNS
+collimate/SCNDG
+colonel/SM
+colonialness
+colonised/U
+colorimeter/SMW
+colourant/SM
+Columbia/M
+column/D3SQ8M
+combustive
+cometary
+comfits/E
+comfortably/U
+comforter/SM
+comic/YMS
+coming/c
+Commander
+commando/SM
+commender/AM
+commensurably
+commenting
+commits/A
+committable
+commode/ESI
+communicate/BDxSVvGnNu
+communicates/a
+communicative/P
+commutable/I
+Compaq/M
+comparator/MS
+compatible/SIY
+compel/7NGSDnk
+compendium/MS
+compensable
+compiles/A
+complex/GxDYTPNXS
+complexity/cM
+complicate/GcDS
+complicit
+complicity/MS
+complimentary/U
+compose/CRDSXGN
+composing/EA
+comprehensibility/IMS
+compulsive/YSP
+compulsory/YS
+Comte
+conceitedness/S
+conceive/KSDaG
+conciliator/SM
+conclave/S
+condemn/Nn7RGDS
+condemnation/M
+conditioning/M
+conduction/M
+confab/DSMG
+confectioner/Z
+confessor/SM
+confident/cY
+configuration/AM
+Cong
+congener/SM
+congenial/U
+Congo/M
+Congolese
+congress/mxM5GSD
+congruency/M
+conk/RSD
+connection/MES
+connection's/A
+conscious/YU
+consequential/IY
+consequently/I
+consequentness
+conservatism/SM
+considerate/YnN
+consignment/A
+consistence/ZS
+consolatory
+consolidator/MS
+consonant/YSM
+conspirator/SoM
+conspire/G
+constipate/NGDSn
+constipation/M
+constructibility
+construe/DS7G
+construed/a
+construes/a
+cont
+contemplative/PS
+contemporaneity/MS
+contra/yS
+contraceptive/S
+contrite/P
+conundrum/MS
+convalesce/DSG
+convene/GADS
+convention/SoM
+convergence/SM
+converts/A
+conveyor/MS
+convince/RGDSk
+convinced/U
+convoke/GDNnS
+Conway/M
+cooker/SMZ
+cooled/c
+coop/RDGM
+co-operate/VSDGuNv
+coordinate/DGV
+Copernican
+copious/YP
+copula/nMSV
+coracle/SM
+coral/SM
+cord/EGSAMD
+cordial/PYS
+coriander/MS
+corm/SM
+corncrake/M
+cornstalk/MS
+coronate
+corporal/MS
+correction/SM
+corroborated/U
+corrugate/DSNnG
+corundum/M
+cos/S
+cosmic/Y
+cosset/Sd
+costly/TP
+cote/SM
+couch/DGSM
+councilperson/S
+countably/U
+counterbalance/MSDG
+counterexample/S
+counterfeit/GRSD
+counter-intelligence/MS
+counterpoise/DMGS
+counter-productive
+countervail/SGD
+Couperin
+courgette/SM
+courser/ESM
+courtesied
+courtesy/ESM
+couscous/MS
+coverlet/SM
+coveter/M
+cowardice/SM
+cowardliness/S
+cow-parsley/M
+co-written
+CPU/SM
+crab-apple/SM
+crabbiness/S
+crabbing/M
+crabgrass/S
+cradler/M
+craftiness/S
+Craig
+cramper/M
+crane/MDSG
+cranial
+Cranleigh
+crash-land/GD
+crawdad/S
+crawly/ST
+crazy/YSPT
+creaky/PT
+creamer/Z
+crease/GISCD
+creating/A
+credential/MS
+credibility/ISM
+creditor/MS
+credit's
+creditworthy
+creel/DGMS
+Creighton
+crème
+crescendos/C
+cress/S
+cretinous
+crevice/MS
+Crichton
+crispness/S
+criticism/MS
+Croatian
+crooked/P
+cross-check/DGS
+crossly
+crossness/MS
+cross-section/oS
+crotchet/MSZ2
+crucifix/XNMS
+crucifixion/M
+cruise/RSDG
+crumble/SJDG
+crummy/T
+crumple/SDG
+crusade/MRSDG
+crustacean/MS
+cry/CRSGD
+cryptanalytic
+crystallographer/MS
+crystallography/WM
+CSEU
+cu.
+cuckold/MDGyS
+cud/SM
+cudgel/DSGMJ
+culotte/S
+cultivation/M
+culvert/MS
+cum/S
+cumber/Sd
+cummerbund/SM
+cunning/TYP
+cupful/MS
+cupidity/SM
+curability/SM
+curator/SM
+curbside
+curettage/SM
+curium/M
+curled/U
+curling/M
+curls/U
+curmudgeon/MYS
+Currie
+curry/DGMS
+currycomb/SMDG
+curvature/MS
+curvilinearity/M
+cuspate
+Custer/M
+customhouse/S
+customised/C
+custom-made
+cutaway/SM
+cutlet/MS
+cut-off/SM
+cut-out/SM
+cutup/MS
+cyanate/M
+cycloidal
+cynosure/MS
+Cyrus
+cyst/SWM
+czarina/MS
+czarist
+d/to
+damaged/U
+Damascus/M
+dancelike
+Dane/S
+dangerous/YP
+danseuse/SM
+dark/PSDTGY
+dart/MGSRD
+Darwin
+DAT
+dative/S
+daughter-in-law
+daunted/U
+dauntlessness/S
+Davison/M
+deadbeat/SM
+deadliness/S
+deadwood/SM
+deaf/PYT
+deaf-and-dumb
+deafness/S
+death/pYMS
+deathblow/MS
+Debbie/M
+debt/MS
+Decalogue
+decimation/M
+declination/M
+décolleté
+decorum/SM
+decoupage/DGSM
+découpage
+decree/SMdG
+decry/J
+dedicative
+deeds/a
+deepen/dS
+defecation/M
+defenceless/Y
+defended/U
+defiance/SM
+deficient/Y
+deficit/SM
+defile/L
+defined/U
+Defoe
+deg
+deification/M
+Deighton/M
+deign/DGS
+de-industrialization
+deleterious/PY
+deliciousness/S
+delicti
+delighted/P
+demean/D
+demented/PY
+demist/G
+demonstrableness/M
+demonstrably/I
+demur/GDS
+demurral/MS
+dengue/SM
+deniable/U
+denial/MS
+denoter
+density/SM
+depend/BSDGl
+dependently/I
+depicter/M
+deploy/LD7G
+deployed/A
+deportation/M
+depreciate/DnvGkSVN
+Derby/M
+dereference/R
+derivative/MPS
+descendant/SM
+descriptivism
+deserve/kih
+desiccator/SM
+designator/SM
+desired/U
+Desiree
+despise/SRGD
+dessert/SM
+destructor/M
+detonator/SM
+detract/DGVv
+deuteron/M
+Deuteronomy
+develop/cdAS
+deviant/MYS
+devil/DLyMGS
+devitalize
+devolution/SM
+devotee/SM
+devotion/SM
+dewclaw/SM
+dexterous/PY
+diagnosed/U
+diagonal/tQ+8SY
+diamondback/SM
+Diane
+diapason/SM
+Dibley
+dibs
+dichloride/M
+dicta/nM
+dictate/DGS
+dictator/MoS
+die-hard/S
+Dieppe
+dietician/MS
+Dietz
+difference/IMS
+digest/SKGD
+digestion's/I
+dilapidate/DGSNn
+dilator/MS
+dildo/SM
+dimethylglyoxime
+dimorphic
+ding/zDG2Z
+dingle/SM
+dinky/ST
+dinnertime/S
+dinosaur/SM
+diphtheria/SM
+directional/S
+director/MAS
+directors'
+disadvantage/i
+discern/LbkSGD
+discernible/I
+discipline/GDSM
+disconnectedness/S
+disconsolate/Y
+discotheque/SM
+discriminate/SnNDVGky
+disguise/GRDh
+disjointedness/S
+disjointness
+disorderly/P
+dispatch/R
+dispensate
+disproportion/N
+disproportionation/M
+dissatisfy
+dissociation/M
+dissoluteness/S
+distil/NS7VnG
+distributorship/M
+disulphide/M
+ditch/DSMG
+ditherer/S
+dive-bombing
+diversifier/M
+diversify/SGNDn
+diversity/SM
+divertimento/M
+divide/RuDSGxVXvN
+divided/AU
+divides/A
+divvy/DSMG
+dizziness/S
+DMZ
+doc/RSMDG
+document/NMRDGSn
+Dodoma/M
+does/ecUA
+doff/SDG
+doggerel/SM
+dog-paddle
+dome/SMGD
+domination/KM
+Dominic
+Dominique/M
+dona/SM
+donation/M
+Doncaster
+Donnelly
+doorpost
+doorstop/SM
+doorway/SM
+Doreen/M
+Doris
+dormant
+dotty/T
+double-edged
+doubtful/YP
+doubtless/PY
+dour/PTY
+douse/SGD
+dove/SM
+doveish
+downhearted/PY
+downhiller
+downlink/SGD
+downpour/SM
+downstage/S
+down-to-earth
+draggy/T
+Dramamine
+draw/SRG7J
+dreaminess/S
+dreariness/S
+dreg/SM
+dressiness/S
+dressmaker/SM
+Drew's
+Drexel
+driblet/SM
+drinkable/U
+drive-ins
+Druidical
+Druid's
+Drummond/M
+DTP
+duality/MS
+Dubuque
+dull/PYGSDT
+dullard/MS
+dumbness/S
+Dunbar/M
+Dunfermline/M
+dunghill/SM
+duo/SM
+duologue/M
+duopoly/3M
+dupe/RSMGD
+duplexer/M
+duplicability/M
+duration/MS
+Durham/M
+dusk/GSDM2Z
+Düsseldorf
+dust/2MZGSzRDp
+dustcart/M
+Dutchwomen/M
+duty/6jMS7
+Duxford/M
+dwarfism/MS
+dwell/GRJS
+Dwight
+dynasty/SMW
+eagerly/c
+eaglet/SM
+Ealham
+earful/SM
+ear-splitting
+earthmover/M
+earthy/PT
+East/RM
+eastward/S
+Ebrahim
+EC
+ecclesiology/3w
+éclair/SM
+ecocide/SM
+ectoplasm/M
+Ecuadorian
+ed.
+Edgerton
+edibleness/S
+Edith
+Editor-At-Large
+Edmundsbury
+Edna
+educatedness
+educationalist
+eelgrass/M
+e'er
+EFT
+egalitarian/S
+Egan/M
+egomania/SM
+eight/HMZS
+eighty-five/H
+ejaculate/nDGSNy
+ejector/MS
+elapse/SGD
+elastodynamics
+electability
+electrologist/SM
+electroluminescent
+electromagnetism/SM
+electrostatics/M
+elegy/MS
+elephant/SM
+elephantine
+elfish
+elicitation/M
+elision/M
+Ellen/M
+Ellie
+ellipsoidal
+Ellwood/M
+eloquence/SM
+elucidate/VNDSGn
+elucidation/M
+elves/M
+Ely/M
+email/MDGS
+emanate/DnVGSN
+emancipation/M
+embarkation/MSE
+emboss/GDRS
+embryology/S3wM
+emendation/M
+emerald/MS
+emerita
+Emil/M
+Emile/MZ
+emirate/MS
+Emirates/M
+emissary/SM
+emollient/S
+emphasized/c
+employ/DGLSRB
+employments/f
+empower/LSd
+empty-handed
+en/7M
+enable/RDGS
+enact/GLSD
+enacting/A
+enactment/A
+enamel/GMRDJS
+encapsulation/M
+encompass/DGS
+encounter/Sd
+encyclical/SM
+endothelial
+endpapers
+endurable/U
+enfeeble/LSDG
+England/M
+English-speaker
+engrosser/M
+enjoinder
+enlarge/RLDSG
+ennui/MS
+enormousness/S
+enqueue/SD
+enquiry/S
+enrobed
+enrollee/MS
+ensign/SM
+entirety/SM
+entitle/SDLG
+entity/SM
+entranceway/M
+environment/o
+envoy/MS
+epicentre/MS
+epicurean/S
+episode/W1SM
+epitaph/MS
+epithelium/SM
+equability/MS
+equable/YP
+equality/IMS
+equilibration/M
+equinox/MS
+equipoise/MSDG
+equiproportional/Y
+equips/A
+equispaced
+equivalent/YS
+equivocate/GDNSn
+Erickson
+erk
+ermine/SDM
+Erwin
+escalator/MS
+escallop/SM
+escapade/MS
+escapee/SM
+esp/Z
+espalier/SDGM
+especial/Y
+established/A
+esteem/EDGS
+Ethan
+Ethel
+EU
+euclidean
+Euston/M
+evaluate/xNVDGSn
+evangelist/WSM
+Evansville
+even/YdSPJ
+even-handed/Y
+evening/M
+eventful/P
+evocative/P
+evoke/VGuvSnDN
+evolutionary/Y
+Ewing
+exacerbation/M
+exacting/P
+exampled/U
+Excalibur
+excavation/M
+excel/DGS
+exchangeable
+excitatory
+excite/lknGNLRDSBh
+exciting/Uc
+exciton/M
+exclamation/MS
+excremental
+excrete/ynDGSN
+excruciate/DSNkG
+excruciation/M
+excursion/3MS
+excursiveness/S
+excusably/I
+exemption/MS
+exercises/c
+exhale/GNDSn
+exhibitionism/MS
+exhibitionist
+exhilarate/DSVNGkn
+exhume/GDSn
+exit/dSM
+exorbitant/Y
+expatiate/GNDSn
+expedient/YS
+expend/Du7VSGv
+experiences
+experimentalist
+experimentation/M
+exploded/U
+exploitative
+explorable
+exponential/YS
+exported/A
+exporting/A
+exposit/yXN
+expunge/SGD
+exquisite/YP
+extended/c
+extensibility/M
+extensive/FY
+extermination/M
+extinction/SM
+extragalactic
+extravehicular
+extremal
+extricate/GnDSN
+exultation/M
+eye-catching
+eyeglass/SM
+eyelid/SM
+eye-shadow
+eye-teeth
+eyrie's
+fa/M
+Fabians
+façade/SM
+face-saving
+facilitator/SM
+fading/M
+Faeroe/M
+faery/SM
+faint/RGSPYTD
+fair/DTZPSGpJY
+Fairview
+faithful/UY
+Falk
+fallen
+falsifiability/M
+Falstaff
+familiar/9Qsq8-SY
+familiarise/k
+famously/I
+fanatic/MYS
+fang/SDM
+fantastic/Y
+far/d
+Farmington
+farmstead/MS
+farrier/SM
+far-sighted/YP
+farthest
+fascia/MS
+fascinate/DGSnkN
+fashions/A
+fasten/dASU
+fatherland/SM
+faultiness/S
+fauvism/S
+faux
+Fayetteville
+feature/DMGSp
+feature's/a
+federate/FNGnSD
+federative/Y
+feeling/PM
+feldspar/SM
+felicitate/DGSNn
+fellahin
+fellate
+fellatio/MS
+fellator
+felting/M
+feminise/nSGD
+feminize/nSNGD
+fenced/U
+Ferguson/M
+Ferreira
+fervent/Y
+fête/SM
+fetishism/MS
+feverish/YP
+fewness/S
+FIA
+fiancée/MS
+fibrillate/SGD
+fiche/SM
+fidget/SdZ
+fiducial/Y
+fiefdom/S
+fierce/TPY
+fifth-generation
+film/ZS2DMG
+filmy/TP
+fine/CFSDAG
+finer/FCA
+fingering/M
+fingernail/MS
+firebrand/SM
+fire-break/SM
+fire-eater
+fireside/M
+fire-water
+firmest
+firmly/I
+firmness/SM
+first-born/S
+first-class
+first-day
+Fishguard/M
+fishing/M
+fissionable/S
+fistulous
+fitness/S
+Fitzgerald
+fixative/S
+flaccid/Y
+flagellate/DSG
+flagship/SM
+flair/SM
+flammability/ISM
+flank's
+flattery/SM
+flattest/M
+flaunt/DkGS
+flaxen
+Fledermaus
+fledged/U
+fleet/DkGSTYPM
+fleeting/P
+fleshpot/SM
+flexes/A
+flexural
+flibbertigibbet/SM
+flighty/TP
+flinger/M
+flintlock/SM
+Flintshire/M
+flip-flop/S
+flirt/NDGZSn
+float/DGZSRN
+flock/DMJGS
+flog/DSGJR
+flogging/M
+floodlit
+floorboard/SM
+flop/2DGSzZ
+floppiness/S
+flowerbed/MS
+Floyd
+fluffy/PT
+fluid/Q8s9PSYM
+fluke/SGDMZ
+flung
+fluoride/nMS
+flyleaves
+flysheet/SM
+focussed/U
+fog/CGDS
+föhn
+fold-out/SM
+foliate/CGSnDN
+fondness/S
+fontanelle/SM
+food/SM
+footlocker/SM
+footmarks
+footwear/M
+fop/GSMD
+fora
+foray/DSGM
+forbear/MSG
+foregather
+foregathered
+foreignness/S
+forensic/SY
+foreseen/U
+foreshorten/dS
+foresight/SMiDh
+forestall/GRSD
+forewent
+forger/SZM
+forgettably/U
+forgiveness/S
+forgoes
+formidable/PY
+form's
+forsooth
+forsworn
+fortify/DAGS
+fortuitous/YP
+fortunateness/M
+fortune-teller/SM
+fortuning
+forward/DYSTPRG
+fouls/M
+foundational
+founding/F
+foundling/SM
+fourpence/M
+four-wheel
+foveate
+foxtail/M
+fragmentation/M
+fragrant/Y
+frail/PTY
+Francesco
+frangibility/SM
+frangible
+frankincense/MS
+Fraser/M
+Frazer
+frazzle/GDS
+free/mTSYPdG
+freebase/DSG
+frequented/U
+frequently/I
+Fresnel
+fricassee/GSM
+fries/M
+frig/SJGD
+Fritz
+frogmarched
+froid
+frolic/SRDMG
+froufrou/SM
+fructose/SM
+frugal/Y
+frustration/M
+frustum/MS
+fudge/MSDG
+Fujitsu/M
+Fukuoka
+full-blown
+fulness's
+functionary/MS
+fungible/M
+fungoid/S
+fungus/M
+funk/S2DGMZ
+fun-loving
+furious/YP
+furnish/RSGDJ
+furnishes/A
+furniture/SM
+furtive/YP
+fusible
+fuzz/DZMGz2S
+FYI
+gab/GZSD2
+gabardine/MS
+gabby/T
+gabler
+Gabrielle
+gadget/SMy
+Gagarin
+gaiety/SM
+galactic
+Galahad
+galaxy/SM
+gale/AS
+gallant/SGDY
+gallon/SM
+gallonage/M
+Gallup
+galumph/SGD
+Galveston
+Gambian/S
+gambol/SGD
+ganglion/MW
+gangrenous
+gangway/MS
+garble/GDS
+Garbo/M
+garçon/SM
+garden/dSrM
+gargantuan
+garments/f
+garment's/f
+garrulity/MS
+garrulousness/S
+Garry
+garter/dSM
+gasohol/S
+Gaspar
+gas's
+gastroenteritides
+Gatsby
+Gaylord
+gelatine
+geld/SGJD
+gem/SZMDG
+gemmology/3M
+gendarme/SM
+gene/SM
+general/Q8Ptq93+s-SM
+generalist
+generality/SM
+generation/CMA
+genital/YF
+genius/MS
+Genoa/M
+gentian/SM
+genus
+geodesic/S
+germander
+germanium/M
+germicidal
+germinal/Y
+Gershwin
+gestation/M
+gesundheit
+Gethsemane
+getup/MS
+Gewürztraminer
+ghostliness/S
+gibbet/SMd
+giddiness/S
+gill/MSGD
+girdler/M
+giro/M
+girth/GDSM
+gist/M
+gladness/S
+glamorous/UY
+glass/2D6MGZzSp
+glassiness/S
+glass-making
+glimmer/dJS
+glueing
+gluon/M
+glyph/MS
+go/fGe
+goalmouth
+goalscorer/S
+gobbledegook/M
+godfather/SdM
+godliness/S
+godsend/MS
+goggle-box/SM
+goings-on
+goldenseal/M
+goldsmith/SM
+golf/MRSGD
+gollywog
+gong/SDMG
+goniometry
+Gonville
+Goober
+Goodman
+good-oh
+good-tempered
+googly/S
+gooseberry/SM
+goosebumps
+gorgeous/YP
+Gorham
+gorse/MS
+gosling/M
+gouge/DRGS
+Gough
+gourdful/S
+gourmandism
+grab/RSJDG
+grace/DpG6MjS
+gracing/E
+graciousness/MS
+graduand/SM
+grainer/M
+granddaughter/MS
+granite/MWS
+Grantham
+grantor's
+granularity/MS
+granule/nNMVS
+grapefruit/M
+graph/MWGwD1S
+graphite/MS
+grasp/Gk7DS
+grassland/SM
+grassy/T
+gravamen/MS
+graveside/S
+graveyard/MS
+gravid/YP
+gravity/SM
+gravy/MS
+Gray
+greasiness/S
+greatness/S
+Greenberg
+greengage/MS
+greensward/SM
+Gregorian
+grenadine/MS
+Gretchen
+griffon/M
+Grimaldi/M
+grimness/S
+grindstone/MS
+gringo/SM
+grisly/PT
+groove/GSDMZ
+Grosz
+grotto/SM
+grouchy/T
+ground-plan
+ground's/f
+groundwork/M
+groups/A
+grout/MGDS
+growth/eSAIMcf
+grunge/SZ
+grunter/M
+Guam/M
+guard/RmGDhMiS
+gudgeon/M
+guessing/e
+guff/MS
+GUI
+Guildford
+guru/SM
+gush/GZRSD
+gutta-percha
+guttering/M
+Guyana/M
+Gwynedd
+gyps/Z
+gypsum/SM
+gyromagnetic
+haberdasher/ZMS
+Habib/M
+hackle/DSMG
+had
+hadji's
+Hadley/M
+haematite/SM
+haggard/PY
+haggardness/S
+hairpiece/SM
+hairspray
+Hal/M
+halberd/SM
+half-blood/D
+halfbreed
+half-century
+half-cut
+half-eaten
+half-hardy
+half-seas-over
+half-term/S
+halfway
+halfword/SM
+halide/SM
+hallo/GSD
+hallowed/U
+hallucination/M
+halve/DSG
+ham/DGSRZM
+hamburger/SM
+Hamish
+Hampshire
+hamstring/SGM
+Hancock/M
+handbarrow/SM
+handicraft/SM
+handmaid/SM
+handshake/SMG
+handsomeness/S
+handwriting/M
+handy/mPT
+Haney/M
+hangar/SdM
+hankie/M
+Hanna/M
+Hans
+happy-go-lucky
+Hapsburg/M
+Harbin/M
+hardboard/M
+hard-hearted/PY
+hard-heartedness/S
+hardship/MS
+hard-wire/SDG
+hard-working
+harebrained
+harmer/M
+harmless/PY
+harmonica/SM
+harmonics/M
+harnesser/M
+harp/RMDG3ZJS
+harpist
+harpoon/RSDGM
+harrogate/M
+hash's
+Haskell
+hasn't
+hassle/DMGS
+hastener/M
+hasty/TP
+hatchback/SM
+hatred/SM
+haughtiness/S
+Hauptmann
+Hawkins/M
+hawthorn/SM
+haycock/SM
+Haydn/M
+hazel/SM
+hdqrs
+heading/M
+headquarters
+headship/SM
+headstrong
+headwall/S
+healthfulness/S
+heard/UacA
+hearted/P
+heartedness/S
+heartfelt
+heart-to-heart
+heat/RJ7MGDSh
+heathendom/SM
+heavenward/S
+heavier-than-air
+heavy-handed
+hectare/SM
+hectic/Y
+heed/6MGDjpS
+heinous/PY
+heiress/MS
+helicopter/dSM
+heliocentric
+heliport/MS
+hell/MS
+hell-raiser
+helluva
+helpfully/U
+helpline/S
+hemline/MS
+henchman/M
+henna/DMGS
+heptane/M
+heptathlon/S
+Herculaneum
+herculean
+hereat
+hero/W1M
+Herrington
+Herzegovina/M
+hesitancy/SM
+hesitation/M
+Hewitt/M
+hex/DSG
+Heywood
+HGV
+Hickey/S
+Higgins/M
+high-falutin
+high-risk
+high-sounding
+highway/mMS
+hilt/GMDS
+Himalayas
+Hindu/MS
+Hinkle
+hipness/S
+hire/GADS
+hiss/SM
+histogram/MS
+hoarse/PYT
+hob/SZGMD
+Hoboken
+hogwash/MS
+Holbrook
+Holcomb/M
+hole/GDSM
+Hollister
+hollyhock/SM
+holmium/M
+holograph/DSZGWM
+Holst
+home-builder/S
+homeless/P
+homelike
+homely/TP
+home-made
+home-maker/SM
+homepage
+homeyness/S
+homicidal
+homing/M
+homoeostases
+homogenisation
+homosexual/SMY
+homozygous/Y
+Honecker
+honorary/SY
+hoofmark/S
+hook/RGSMD
+hooray/S
+hoot/RMDGS
+Hoover's
+hopeful/SP
+horde/MS
+Horgan
+horoscope/SM
+horror/SM
+horse/YmG5DMSp
+horseflesh/M
+horsefly/SM
+horselike
+horseradish/SM
+horticulture/3SM
+hosepipe
+hostile/Y
+hot/PDSYGT
+hothead/SDihM
+hotpot/M
+hotspot/S
+Houdini
+houseful/SM
+housemaid/SM
+houses/eA
+Houston
+however
+hue/SM
+Hugo
+humanity/SMI
+humid/Y
+hummable
+hummingbird/SM
+humus/SM
+Huron
+hurray/S
+hurt/kjG6S
+husbander/M
+hydrating/CA
+hydrocephali
+hydrofluoric
+hydrogenate/SMGD
+hydrophilic
+hydroponic/SY
+hydrostatic/S
+hydroxylate
+hymnographer
+hyperactivity/SM
+hyperglycaemia
+hyperventilate/GSnDN
+hypoactive
+hypophyseal
+hypoxic
+hysteria/MS
+I
+Ian/M
+iatrogenic
+ibex/SM
+Ibiza
+icecap/MS
+ICM
+icy/TPY
+Idaho
+idea/MoS
+idealization/M
+identifiable/U
+ideograph/WMS
+ides
+idiolect/M
+idiomaticness
+idyll/SMW1
+IEE
+IEEE
+iffiness/S
+Ignatius
+ignorant/SY
+ignore/GDS
+ilia
+ill-assorted
+ill-bred
+illimitable/P
+illuminated/U
+Imagen/M
+imaginable/U
+imbecile/MWS
+imitate/DVGvNunS
+imitative/P
+imitator/SM
+immanence/ZS
+immunodeficient
+impactor/SM
+impair/LG
+impart/GN
+impassioned/U
+impel/NRSGnD
+imperil/LGD
+imping/G
+implausibility/M
+implode/SNDGX
+implore/SkDG
+implosion/M
+imprimatur/MS
+improbable/P
+impulsion/M
+inauthentic
+inborn
+incapacitation/M
+incentive/ESM
+incident/Fo
+incineration/M
+incognito/S
+income/M
+incommunicado
+incontinent
+inconvenience/DG
+increment/NMSDGo
+incumbency/MS
+indeed
+indemnification/M
+indented/U
+indenter/M
+indeterminable/Y
+indeterminacy/SM
+indicative/S
+indict/LSD7G
+indigenous/YP
+indigo/SM
+indisputable/P
+individuality/MS
+Indochina
+industrialised/U
+industrious/PY
+industry/oMS
+infancy/M
+infectiousness/S
+infer/DS7G
+infest/nSDGNR
+infirmity/SM
+inflame/XN
+infra
+infrasonic
+infrequent
+ingenious/YP
+ingeniousness/S
+ingenuity/MS
+Ingham
+inguinal
+inhalation/M
+initialler
+initiation/M
+in-law/S
+innumerable/PY
+inquisitorial
+inscrutable/YP
+inseminate/NnDSG
+insemination/M
+inseparability/MS
+inside-out
+insidious/PY
+inspectorate/MS
+inspectors'
+inspiration/M
+instant/SYM
+instantness
+in-store
+instructor/SM
+instrument/GNoSDnM
+instrumentality/SM
+insularity/MS
+insulated/U
+insurrection/3MS
+integrability/M
+integrate/EADSGN
+intellectuality/M
+intercalate/DGVSN
+intercase
+interchanger/M
+interconnectivity
+intergovernmental
+interim/S
+interindex
+interlayer
+interleave/CGDS
+interlobular
+intermeshed
+internet
+internuclear
+interpersonal/Y
+inter-personal
+Interpol/M
+interposer/M
+interpretable
+interpretation/AMa
+interquartile
+interrupted/U
+interruptibility
+interstellar
+intertidal
+intertwine/DSG
+intestinal
+intestine/SoM
+intractability/SM
+intransigent/SY
+intransitive/S
+intrasectoral
+intrigue/RSkDG
+intro/S
+introduction/MA
+intrusion/M
+invariant/MY
+investigatory
+investor/SM
+inviolate/PYB
+Iolanthe/M
+Iona
+ionosphere/SMW
+Iowa
+Iran/M
+iridium/M
+ironmongery/M
+irreproachable/PY
+irresolute/P
+irresponsible/S
+irrigate/GDNnS
+irritability/SM
+isolationism/SM
+isolationist/W
+Isolde/M
+isometrics/M
+itemised/U
+it'll
+IUD/S
+I've
+ivory/SM
+jabber/SdrJ
+jack/MDRSJG
+Jacobi/M
+Jacobson/M
+jacquard/MS
+jadedness/S
+Jaime/M
+jalopy/SM
+Jamaica/M
+jamboree/SM
+James
+Janeiro
+jangle/DRSGY
+janissary/SM
+Jansen
+January/SM
+jato/MS
+Jean
+Jeep/SM
+Jekyll
+jenny/SM
+jeopardy/MQ8S
+Jeremy/M
+Jericho/M
+jerker/M
+jersey/MS
+Jerusalem/M
+Jessica
+jetliner's
+jettison/dS
+jewel/RGSMD
+Jewish
+Jewishness
+jiff/ZS
+jigging/M
+jimmied
+jingly/T
+jinni's
+jinrikisha's
+jitsu
+jiu
+jive/MDGS
+jnr.
+jocosity/SM
+jocund/Y
+Joe/M
+Johannesburg/M
+jointed/EPY
+joist/SMD
+joky/YT
+jolliness/S
+Jon/MZ
+Joplin
+Jovanovich
+jowly/T
+joyride/RGMS
+joystick/S
+ju/y
+judicious/IYP
+Judy/M
+jugful/SM
+jugglery/SM
+jujitsu/MS
+ju-ju/M
+jujube/MS
+Julius
+junco/MS
+juniper/SM
+jussive
+Juvenal
+kaboom
+kaput/M
+Kaufman/M
+Kellogg
+Kelsey/M
+kept
+Kermit
+kernel/SM
+kerosene/MS
+Kesteven
+kestrel/SM
+ketch/MS
+Keynesian
+keynote/SRGMD
+K-factor
+khan/MS
+kick-off/MS
+Kidderminster
+Kikuyu/M
+kilohertz/M
+kilowatt/SM
+kiloword
+Kim
+kin/5SmM
+kinesics
+kingship/SM
+Kinsey
+kirk/SM
+kite-flying
+kitten/MdS
+kitty/MS
+kiwi/SM
+klystron/SM
+knees-up
+knobby/T
+knock/RDJSG
+knock-out
+knockwurst's
+Knutsen
+Konrad/M
+kowtow/GDS
+kraal/MS
+Kremlinology
+krill/MS
+Krishna
+krone/M
+Krueger
+Kurd/SM
+kV
+Lab
+labium/M
+lac/DGSM
+lace-ups
+lactic
+lade/ZG
+Laden's
+lagoon/SM
+laity/MS
+Lakehurst
+Lakeland
+Lamar/M
+Lambert
+lame/YDPT
+lamination/M
+lampooner/MZ
+Lancashire/M
+lance/DRGMS
+landowning/M
+Langford
+languidness/S
+lapel/MS
+Laphroaig
+Lapp
+lapwing/SM
+largehearted
+large-scale
+largish
+larva/M
+lasagne/M
+lash/SDMJG
+lashed/U
+lasher/M
+latch/GMDS
+latices/M
+laudatory
+laughter/SM
+Laura/M
+Laurence
+lave/DSG
+lavish/DPTSGY
+laxes/A
+lay-bys
+layering/M
+layover/MS
+layup/MS
+Lazio
+lazy/GDTPY
+leads/a
+leap/DGS
+leaper/M
+learning/SM
+Lebanon/M
+lebensraum
+lecher/SMZ
+lechery/SM
+LEDs
+lee/SyM
+leer/DGkS2
+leeway/SM
+leftism/MS
+leftmost
+leftover/MS
+legatee/MS
+legendary/YS
+Lego/M
+legwork/MS
+Lehman/M
+lengthy/TP
+Lenin
+Leningrad
+lenitive/S
+Leona
+Leopold
+Leopoldville
+Leroy
+Lesotho/M
+let-down/SM
+lethal/Y
+let's/e
+lettering/M
+Lev
+Levi/S
+lexical/Y
+libel/DRSMG
+liberals
+Liberian/S
+Lib-Lab
+Lichtenstein
+lier's/F
+lifeboatmen
+lifebuoy/S
+life-force
+lifelong
+life-size/D
+LIFO
+lift-off/MS
+ligation/M
+light-fingered
+lighthouse/SM
+likeability/SM
+likelihood/UM
+likest
+lily/SDM
+Limerick/M
+limitless/PY
+Lincoln/M
+Lind/M
+Linda/M
+linden/MS
+linebacker/MS
+links/U
+Linotype/M
+lip/pSDZGM
+liposuction/S
+Lipscomb/M
+lip-service
+lipstick/MS
+liquidation/M
+lira/M
+listen/rdS
+listeria
+literati
+litter/d
+littoral/S
+liveability/SM
+livery/DmMS
+livestock/MS
+Lloyd/M
+loath/JGDPR
+loathsome/PY
+lobe/DSM
+lodges/E
+logging/M
+loincloth/MS
+lollipop/SM
+Lomb/M
+longer-term
+Longfellow
+longitudinal/Y
+long-playing
+long-sightedness
+longsword
+long-tailed
+longways
+lookahead
+looking/c
+loop/DMZSG
+looper/M
+loophole/SMGD
+lord/DcSMG
+Lorentz
+Lori/M
+Louie/M
+Louth/M
+Lovejoy
+lovestruck
+loyalism/SM
+Lubbock
+lucid/YP
+lucubrate/GnSND
+luggage/MS
+lugsail/MS
+lugubriousness/S
+lumbering/M
+luminescent
+Luna/M
+lunacy/SM
+lunchroom's
+lune/NM
+lunge/SM
+luridness/S
+lusty/TP
+lutetium/M
+Lutheran/MS
+Luxembourg/RM
+luxuriation/M
+luxury/SM
+Luzon/M
+lycée
+Lyn
+lynch/GRDSJ
+Lynchburg
+Lyon/MS
+lyrist
+ma'am
+macadam/QMS
+Macao
+macaronic
+macer/M
+Machiavellian
+machinate/GSD
+machinelike
+macron/SM
+Madagascar/M
+Maddox
+Madeline/M
+Madonna/M
+maestri
+magazine/MGDS
+magenta/MS
+magistracy/SM
+magnesium/M
+magnet/WqQ8-SMt+1
+magnetodynamics
+magnetron/M
+magniloquence/SM
+maharani/SM
+Maidstone/M
+maillot/SM
+mail-order
+mainstream/SM
+majolica/MS
+malathion/S
+Malawi/M
+Malcolm/M
+malfeasance/MS
+malice/SM
+malign/YRSDG
+malodorous
+maltreat/LDSG
+Mammon/M
+mammoth/SM
+man/61YRGDMjW
+Managua
+Manasseh
+Mandelbrot/M
+maniac/SM
+manifest/DYSGNn
+Manitoba
+Manitowoc
+Mann/M
+mannerism/SM
+mannerist/M
+mannerly/P
+mannish/PY
+manoeuvrability/SM
+manoeuvre/SBMGDJ
+man-of-war
+manometer/SM
+manqué/M
+mantelpiece/SM
+manufacture/RBSGJD
+Manville
+maps/A
+marabout's
+maraschino/MS
+marbler/M
+Marcel
+Marilyn
+marimba/MS
+marjoram/MS
+mark/RmDJhGSM7
+markdown/MS
+marlinespike/SM
+Marmite
+marmoreal
+Marrakesh
+marriage's/A
+Marriott
+Marseilles
+marsh/MZS2
+marshland/MS
+marshy/PT
+mart/MGSD
+martyrdom/MS
+Mary/M
+Marylebone/M
+Maseru/M
+massage/DMSG
+masseur/SM
+mass-producing
+mastoid/S
+matching/c
+matchless/Y
+Mateo/M
+materialist/W1
+materiality/IM
+Mathis
+Matsushita
+mattress/MS
+maturer/M
+Maud
+Mauritania/M
+maw/DSGM
+Maxtor/M
+Maxwellian
+Mayan/S
+mayflower/SM
+mayfly/MS
+mayhem/MS
+Mayo/M
+mayoral
+mayoress/SM
+McConnell/M
+McDougall/M
+McFarland/M
+McKinney/M
+meadow/SM
+meaning/M6jpS
+meantime
+mechanise/BnRSDG
+mechanize/nBDNG
+mediaeval/3MYS
+medial/S
+Medici
+medico/SM
+medico-legal
+meditate/VSGDvuNn
+meerschaum/MS
+meeter/M
+megavolt/M
+megawatt/SM
+mêlée/MS
+melodic/S
+melodramatic/S
+Melvin
+memoires
+Mendelssohn
+menfolk/M
+meningeal
+meningitis/M
+Mensa
+mensuration/SM
+mentalist
+mentionable/U
+menu-driven
+Menuhin/M
+Mercedes
+merchandise/RSDGJM
+merciful/P
+mercifully/U
+mercurial/S
+meringue/MS
+meritocratic
+Merrill
+Merritt/M
+mesmerized
+Mesopotamia/M
+mesozoic
+messiness/S
+metalinguistic
+metalworking/M
+metatarsal/S
+metatarsi
+metavariable
+methodicalness/S
+Methodism
+methyl/SM
+metropolis/SM
+Mexico/M
+Meyer/S
+Meyerbeer
+mezzo/S
+mi/C
+Michael/SM
+Michaelmas
+Mick/M
+micro/S
+microanalyses
+microanalytic
+microprocessor/MS
+microvolt/MS
+midday/SM
+middlebrow/SM
+middle-class
+middle-of-the-road
+middler
+Middletown
+midmost/S
+midterm/MS
+midtowns
+midwife/My
+migraine/MS
+milkiness/S
+milky/TP
+millennialism
+Millgarth
+millibar/S
+millinery/SM
+million/MHS
+Millward
+MIMD
+Mindanao/M
+mind-reader
+minds/A
+mingle/FGDS
+minidress's
+minimalism/S
+minimalist/W
+ministration/M
+mintage/MS
+Miocene
+MIPS
+miracle/MS
+Miranda
+Miriam
+mirror/dMS
+mirth/6SpMj
+misbehaver/M
+misfeature
+mishap/M
+mishmash/MS
+missions/4
+mission's/A4
+mistiness/S
+mistral/SM
+mistruster/M
+mists/C
+mitigated/U
+mitigation/M
+mks
+mobber
+mobile/IQ-+9stq8
+mode/FMS
+models/A
+modernness/S
+modi vivendi
+Mogadishu/M
+Mohawk/M
+moil/GSD
+Moldova/M
+Molokai
+momentousness/S
+momma/S
+monastery/MS
+monaural/Y
+Monmouthshire/M
+monochrome/MSW
+monoclinic
+monogamous/Y
+monolith/S1MW
+monomaniac/SM
+monotheism/MS
+Monsieur/M
+Monsignori
+monstrosity/MS
+Montevideo/M
+Montezuma
+Montmartre/M
+moonrise
+mopish
+Morant/M
+Moravia
+morgue/MS
+Moriarty
+moron/WM1S
+morphia/S
+Morrison/M
+mortgagor/MS
+Mortimer/M
+mosque/MS
+Mossberg/M
+motherliness/S
+motile/S
+mottler/M
+mould/2MZJDRGS
+mouldy/TP
+mournful/T
+mouth/M6ZDGS2
+mouthful/SM
+mouthwatering
+mouthy/PT
+move/ARSDG
+Mozart/M
+Mozes/M
+MP3
+mph
+MST
+Mt
+mudslinging/M
+Mueller/M
+Muenster
+muesli/M
+mugshot/S
+mulberry/SM
+mull/SDG
+mullet/SM
+multicellular
+multidimensional/Y
+multiform
+multilingualism/S
+multimedia
+multiplex/CGDRS
+multiplicand/MS
+multi-site
+multitudinous/PY
+multi-user
+mumbo
+mummer/Z
+munch/DMRGS
+munition/DSG
+murky/T
+Murphy/M
+murrain/SM
+Murrow/M
+muscle-bound
+muscular/Y
+musk/ZM2
+Muskegon/M
+musket-ball
+must/zZS2
+mustang/MS
+mustard/SM
+must-have
+mutilate/GnSND
+mutineer/MS
+muumuu/SM
+muzzle/DGUS
+mW
+Mycenaean
+myelitides
+Myra/M
+Myrna/M
+nadir/MS
+nag/RDSGM
+Nakamura/M
+Nancy/M
+nap/pRSZGMD
+Napier/M
+narrator/MS
+Nasser/M
+Natasha/M
+nation/M
+navigable/P
+nay/SM
+Nazareth/M
+nebular
+necroses
+needed/U
+needer/M
+needlepoint/SM
+needlework/MS
+negativeness/S
+Negev/M
+Negroes
+Nehru/M
+neighbourly/P
+neonatal
+neoprene/SM
+Nepalese
+nepenthe/SM
+nester/M
+netball/M
+nethermost
+nettle/MSGD
+neurasthenia/MS
+neurology/13MSw
+neurone/S
+neurotransmitter/S
+neutral/Q8-SsY
+neutralism/MS
+Nevis/M
+newbie/S
+new-found
+Newfoundland/RM
+newish
+new-laid
+newline/SM
+Newry/M
+newsboy/SM
+newsdealer's
+Nguyen/M
+NHL
+niacin/MS
+nib/SGMD
+nice/TPY
+nickname/MGDS
+nighthawk/MS
+nightspot/SM
+nightwear/M
+NIH
+nihilism/MS
+Nike/M
+Nils
+ninepins/M
+nineteen/HSM
+ninety-four/H
+Nineveh/M
+nit/SM
+nitre/MNSnW
+nitride/SM
+nitroglycerin/M
+Nixon/M
+Nkrumah/M
+Nomi/M
+non
+non-agricultural
+non-aligned
+non-allergic
+non-competing
+non-contagious
+non-critical
+non-cumulative
+non-custodial
+non-destructive/Y
+non-discriminatory
+non-drying
+non-executive
+non-exempt
+non-intellectual/S
+non-linear/Y
+non-logical
+non-magnetic
+non-person/S
+non-professional/SY
+non-profit-making
+non-proliferation/S
+non-racial
+non-resistant/S
+non-response
+non-scoring
+non-singing
+non-singular
+non-smoking
+non-specializing
+non-starter/S
+non-successive
+non-sympathiser/M
+non-tarnishable
+noon/SM
+noonday/SM
+Nordstrom/M
+normalize/CGSD
+normalizer/S
+Northfield/M
+north-north-east
+Northumbria
+north-west's
+no-show/S
+nostalgic/YS
+nosy/TYP
+noteworthy/P
+nothing/PS
+nourisher/M
+nouvelle
+Nov
+novelette/SM
+now
+noway
+Np
+nubile
+nuclease/M
+numismatics/M
+numismatist/MS
+Nunavut
+nuptial/S
+Nyquist/M
+oar/DSM
+oarlock/SM
+Oberon/M
+obfuscate/DNnyGS
+obit/MS
+obliqueness/S
+obliviousness/S
+obloquy/M
+oboe/SM
+obscure/NSDTGYP
+obsequies
+observance/MS
+obsession/M
+obtrusive/UY
+occasional
+occupational/Y
+occupied/U
+ocean/MWS
+ocean-going
+Oceania/M
+o'Clock
+octet/MS
+octoroon/M
+oculist/SM
+odorous/Y
+oedematous
+off-air
+officeholder/SM
+officer/d
+offish
+Ogden/M
+O'Hara
+oilseed/SM
+okay/DMG
+old-age
+olden
+old-fashioned
+oleomargarine/SM
+oligarchy/SM
+olive/MS
+Olivier/M
+Ollie/M
+ombudsman/M
+omega/MS
+omnivorous/YP
+once
+oncogene/S
+oncologist/S
+one-half
+oneself
+one-sidedness
+on-street
+ooze/DZSG
+OPEC
+open-and-shut
+open-eyed
+openness/S
+opportunity/MS
+opposition/M
+optician/MS
+optionality/M
+optometry/SMW
+oral/S
+orangery/SM
+orang-outang/S
+oration/M
+oratory/SM
+orbiter/S
+orchid/SM
+ordains/K
+Oregon/M
+Oregonian/S
+Orestes
+organdie/MS
+organelle/SM
+organisation/oM
+organism/MWS
+organization/oM
+organometallic
+orig
+Orlando/M
+Orpington
+orthodontic/S
+orthodoxy/SM
+orthogonal/Q8q-Y
+orthorhombic
+OTB
+otherwise
+OTT
+outboast
+outcry/M
+outdo/G
+outermost
+outfox/G
+outline
+outpace
+outpoint/DG
+overbid/G
+overdraw/G
+overgraze
+overgrow
+overlier
+overshoe
+overtime
+overwhelm/k
+owlet/MS
+oxidizing
+Oxonian
+oxygenate/DMGS
+oxygenation/M
+pace/DRMSG
+pacemaker/SM
+package/JRGDMS
+packer/SM
+packsaddle/SM
+Padraig/M
+paean/MS
+paediatric/S
+pagoda/SM
+paid-up
+painkilling
+Pakistani/S
+palace/SM
+palaeobotanist
+palaeobotany/w
+palaeography/MSw1W
+Palau/M
+pale/DTSYG
+pales/I
+palliative/S
+palmetto/MS
+paltry/TP
+panacea/MS
+panama/S
+Panamanian/S
+pancreas/SM
+pan-European
+pangolin/M
+panjandrum/M
+panther/SM
+pantograph/SM
+Panza/M
+Paolo/M
+papilla/yM
+papyri
+papyrus/M
+paradisal
+parallel/S
+paralleled/U
+paramour/MS
+parathion/SM
+paratroop/RS
+paring/M
+parishioner/MS
+Parisian/S
+parliament/MS
+paroxysm/MS
+parrakeet's
+parricidal
+parsec/SM
+parsonage/MS
+partaken
+participation/M
+particleboard/S
+partition/MGDS
+partizan's
+partly
+partook
+paschal/S
+passage/DMSG
+passenger-mile
+passim
+passivity/IS
+passmark
+paste/SM
+pastrami/MS
+pasts/A
+pat/DSMZG
+patriarch/ZM
+patriarchal
+patronize/k
+pay-bed
+peal/SAGD
+Pearson/M
+peashooter/SM
+pecuniary
+pederasty/SM
+pediment/ISM
+peeling/M
+peen/SGDM
+peerless/PY
+pelagic
+pelican/SM
+pellucid
+pendulum/SM
+penetration/M
+penguin/SM
+penile
+penitent/ISY
+penny-pinching
+pentecostal
+pepperoni/S
+peppy/PT
+perambulator/SM
+percentage/SM
+perch/DGMS
+percuss/DNvuSGXV
+percussion/3M
+percussion's/A
+perfidious/PY
+perforate/SNDGn
+perforation/M
+perfumer/Z
+perhaps
+perils/I
+peristalses
+peristyle/MS
+peritoneal
+periwinkle/MS
+permafrost/MS
+permissibility/M
+perpetuate/GnSDN
+perpetuity/SM
+perquisite/MS
+persecution/SM
+persistence/SM
+personality/SM
+pertness/S
+Peru/M
+pessary/S
+pestiferous
+Peterhead/M
+petite/PS
+petrel/SM
+petrographic
+petroleum/M
+pettifog/RGDS
+petunia/SM
+pewee/SM
+phaeton/MS
+phagocyte/MS
+phantasy's
+Pharisaic
+philodendron/MS
+philosophy/w1sWQ8S9M
+phlebitides
+phoenix/MS
+phonemic/S
+phonology/13wSM
+phosphine/M
+photochemistry/M
+photoengraving/MS
+photograph/R1GZDWSM
+photolytic
+photoreceptor
+phrasal
+pianoforte/MS
+pibrochs
+picked/U
+Pickering
+pickle/DSMG
+picoseconds
+pictorial/YPS
+piffle/DSMG
+pigeon-fancier/MS
+pigment/DNnG
+pigmentation/M
+pikemen
+pilaster/MS
+pilau's
+pilgrim/MS
+pilgrimage/MSDG
+pill/SM
+pillbox/MS
+pillion/MS
+pillow/GDMS
+pilothouse/SM
+pimiento/MS
+pimpernel/MS
+pince-nez
+pincered
+pincher/M
+pineapple/SM
+pinfeather/SM
+pinhead/SDiM
+pinky/S
+pinning/fS
+pinstripe/DSM
+pipe/MS
+pistol/SDGM
+pistole/M
+pitch/RGDS
+pitch-and-toss
+pithiness/S
+pithy/TP
+piton/MS
+pittance/MS
+pity/SGMRjpklD76
+pivoting/M
+pix
+pixie/SM
+place/EDRSLG
+placental/S
+plainchant
+plainness/S
+planting/S
+plantlike
+plant's
+plasm/M
+platitude/MS
+platoon/GMDS
+plaudit/MS
+play-acting/M
+playgoer/SM
+plea/MS
+pleading/M
+pleas/SkDGJ
+please/EGDS
+plenty/M6j
+plied/AIF
+plight/DGMS
+plighter
+plodding/Y
+plumpish
+plunderer/S
+plunk/RGDS
+plushy/T
+plywood/SM
+PM/M
+po/QY
+pocketknives
+podium/SM
+poetic/S
+poignant/Y
+pointillist/MS
+polariscope/M
+politicking/MS
+polka/DGSM
+pollinator/MS
+polo/MS
+polonaise/SM
+polonium/M
+polyethylene/SM
+polymer/Q8-qMS
+polynomial/MSY
+pomegranate/MS
+pompadour/SMD
+pompousness/S
+poncho/SM
+ponderer/SM
+pong/D
+pony/SM
+pool/GSDM
+popgun/SM
+popularities
+population/CMc
+populist/SM
+porcupine/SM
+portage's
+ported/A4EFCI
+porticoes
+port's/A
+pose/FNCRxDGSEX
+poses/IA4
+post-doctoral
+post-horn/MS
+postilion/MS
+post-impressionist/W
+postprandial
+post-town/MS
+potent/YIS
+potful/SM
+pothole/SMGD
+pot-pourri/SM
+pots/C
+pottery/SM
+potty/TS
+Poulenc/M
+powderpuff
+powered/cf
+powerhouse/SM
+powering/c
+praiseworthy/P
+praxes
+prayerful/P
+PRC
+prebendary/M
+precariousness/S
+precept/VvMS
+precise/NPIXY
+preciseness/IS
+prefect/MS
+prejudice/SDMG
+preliterate
+premeditated/U
+premier/MS
+pre-process/G
+presbyter/MZS
+presbyterial
+prescriptivism
+presser/MS
+presser's/I
+pressing/YS
+pressmen/M
+prestidigitate/Nn
+prestidigitator/M
+presumer/M
+pre-teen/S
+pretentiousness/U
+preterite/M
+prevaricator/MS
+pre-war
+pricer/MS
+prickly/T
+pride/DGj6SM
+Priestley/M
+primitivism/M
+primp/GSD
+principality/SM
+print/IDAGSaKc
+printout/S
+prise/FSAGD
+prissiness/S
+prize/M
+prizefight/RJSMG
+pro/SM
+pro-American
+probably/I
+probe/BnDGlS
+proboscis/SM
+procession/M
+procrastinate/SNGDn
+prodigy/SM
+produces/e
+producing/e
+productive/UY
+proffer/dS
+proficiency/SM
+programs/A
+prolonger/M
+promise/FRkDGS
+prophesy/RDSG
+prophet/1WSwM
+propulsive
+propylene/M
+prosody/WSM
+prospectus/MS
+prostate/SM
+prostitute/MGDS
+prostration/M
+protectionism/SM
+protective/SY
+proteolytic
+protozoon's
+protraction/MS
+provenance/SM
+proverbial
+providence/SIM
+provost/SM
+prudishness/S
+prune/DGRSM
+psych/1GSWDw
+psycho/SM
+psychophysical/Y
+psychotropic/S
+publicised/U
+publicized/U
+public-spirited
+pudenda
+Pudsey
+puerile/Y
+puff/RSZD2MG
+puffery/M
+pulsation/M
+pummel/DGS
+punditry/S
+punster/SM
+purée/DMS
+purer/I
+purge/DRSGNV
+puritan/wS1M
+purl/GSDM
+purloin/SDG
+purloiner/M
+purplish
+purposefulness/S
+pursuant
+pursue/DRSG
+push/SR72GzDZ
+pushcart/MS
+push-pull
+putrid/PY
+pyaemia
+pygmy/MS
+pyramidal
+pyrimidine/SM
+pyrolyse/SW
+pyroxene/MS
+Qa'ida/M
+qt
+quadrangle/MS
+quadrilateral/S
+quadriplegia/SM
+quadruped/SM
+quaff/DSG
+quagmire/SM
+quake/SGZD
+qualification/EM
+qualm/SM
+quarterer/M
+quarterstaff/SM
+quartic/S
+quasi
+quaternion/MS
+quay/SM
+queasiness/S
+quest/ADSRGM
+questioned/AU
+quiescence/SM
+quietness/S
+quintet/SM
+quit/RSGD
+quoin/DSMG
+quorate/I
+quotable
+rabbinic/Y
+rabid/PY
+RAC
+radar/MS
+radical/SQ
+radiochemistry/M
+ragamuffin/SM
+rage/eSMGD
+railer/M
+railing/M
+raillery
+rain-shadow/SM
+raise/RGDS
+ramble/kJDRSG
+ramekin/MS
+ramify/nSDGN
+ramjet/SM
+rampart/SM
+Ramsay/M
+Ranchi
+rand/2ZM
+rapacious/YP
+rape/SM3
+Raphaelite/SM
+rapprochement/MS
+raspberry/MS
+ratio/SM
+rational/s8-39Qq
+rattletrap/MS
+raunchy/TY
+razorback/MS
+razorbills
+readout/MS
+realness
+Realpolitik/M
+rearguard/MS
+reasonably/U
+reassemble/Y
+receipt/GMDS
+receive/DRGS
+received/U
+recessional/S
+reciprocation/M
+recite/R
+recompose/D
+recompute
+reconcilable/UI
+reconsign/G
+record/RJ37
+recouple
+recreate/x
+recrudescent
+recto/SyM
+rector/SMF
+rectory/SM
+recyclable/S
+redecorate
+redeemed/U
+red-faced
+redirection
+redolent
+redound/GDS
+reedy/PT
+reel/SRGDM
+refectory/MS
+reference/CDSG
+reflate/N
+reflexiveness/M
+reflexology
+reformism/M
+regalia/M
+regicide/SM
+regimen/SM
+Regina/M
+register/KdNSn
+registrar/SM
+regress/XGVDvSuN
+regularity/IMS
+rehabilitate/DNVGSn
+rehearsal/SM
+rehouse
+rein/GDM
+reinforced/U
+relater/SM
+relationship/MS
+reliably/U
+remind/G
+remobilise/B
+remorsefulness
+remorseless/YP
+remunerated/U
+Renfrewshire/M
+rennet/M
+renouncement
+renumber/d
+repairs/E
+reparation/SM
+repatriate/GnDNS
+repeat/BRDGh
+repent/SDG
+repletion/M
+reported/faU
+repository/SM
+reprehensible/Y
+represent/anNGSD
+representable
+repress/NuvXV
+reprisal/SM
+reproacher/M
+reprobate/GD
+reproducible/U
+repudiator/S
+repulsion/M
+re-release/DGS
+resection/G
+residence/MZS
+residue/SM
+resiny
+resistible/YI
+re-site/SDG
+resolute/IY
+resonant/Y
+resourceful/P
+respectfulness
+restive/P
+restraint/MS
+reticulation/M
+retract/DG
+retreat/G
+retrofire/SM
+retrofit/GSD
+retrospect/MvV
+return/7
+reunion
+reveal/RSD7Gk
+reverential/Y
+revocable/I
+rewarding/U
+rewed/GD
+rework/7
+Rhee/M
+rhenium/M
+rheostat/MS
+rhetorical
+Rhine/M
+Rhinelander/M
+Rhode/S
+rhombus/SWM
+Rhum/M
+rhymester/SM
+riboflavin/M
+Ricardo/M
+Richardson/M
+rickshaw/MS
+Rico/M
+ridiculer/M
+righteous/UY
+rightish
+right-wing
+Rinaldo/M
+ringworm/SM
+rink/MS
+riper
+ripping/Y
+Rita/M
+rite/SM
+ritual/QS8YM
+RMI
+roadblock/SM
+road-hog/S
+road-test
+roadwork/SM
+rockfall/S
+Rockford/M
+Rockwell/M
+rocky/T
+rod/SM
+Rodrigo/M
+rollick/SGkD
+romantic/8Q3MYS
+Rome/M
+Rona/M
+Ronan
+Rontgen
+room-mate/MS
+roomy/PT
+rootlet/MS
+rosemary/M
+rostrum/SM
+rottenness
+rotunda/SM
+roughen/dS
+roughneck/SM
+roundworm/MS
+route/aDSA
+routing/M
+Rowan/M
+rowdyism/SM
+rowel/MGDS
+RPO
+RSC
+rubber-stamp/DG
+rubdown/SM
+ruction/SM
+ruddy/PT
+Rudolf/M
+Rudolph/M
+Rudyard/M
+ruffian/SM
+ruffled/U
+Rufus/M
+rug/hSMDi
+runaway/S
+runners-up
+rural/Y
+rurality
+russet/MS
+rusticity/S
+Rutland/M
+Rwanda/M
+SA
+sabbatical/S
+saboteur/SM
+sabra/S
+saccharin
+sachet/SM
+Sachs/M
+sack/M6JS
+sacramental
+sacrilege/MS
+sacristan/SM
+saddlebag/MS
+SAE
+safekeeping
+safflower/SM
+sailborders
+sailing-ship/SM
+Salas/M
+salient/Y
+salinity/SM
+salivate/NDSG
+sally/DMSG
+saloon/SM
+salt/CSDG
+salter/SM
+salt-spoon/MS
+salve/RMSNnG
+sampled/c
+Sampson/M
+Sanborn/M
+sanctimony/SM
+sanctioned/U
+sandbar/S
+Sandusky/M
+sandy/T
+sangria/MS
+sanitary/UI
+sapience/M
+Sara/M
+Saran/M
+sarong/SM
+Sasha/M
+satanic
+satchel/SM
+satire/WQ8wM1S3
+saturnine/Y
+sauna/MS
+sawdust/M
+sawn-off
+saw-pit
+Saxony/M
+SBA
+Scala/M
+scale/DAGS
+scaled/U
+scallywag/SM
+scan/ADSG
+scansion/M
+scarceness
+scarer/M
+Scarlatti/M
+scatterbrain/MDS
+scenarist/MS
+scented/U
+scentless
+sch.
+scheduled/UA
+scheduling/A
+schemata
+schismatic
+schlep/GDS
+schoolbook/MS
+Schumann/M
+Schwartzkopf/M
+scissoring
+scold/DRJSG
+scoliosis
+scone/SM
+scorch/RSkGD
+scoreless
+scorn/jDRMG6S
+scornfulness
+scourge/SDMG
+scramble/UGCSD
+scratch/D2zJZRSG
+scratched/U
+screechy/T
+screwdriver/MS
+scribe's
+Scripps/M
+scriptwriter/MS
+scrotum/M
+sculler/Z
+sculpture/GDoSM
+Se
+sea/cS
+seabed
+sea-chest
+seagull/S
+seahorse/S
+seamier
+seamlessness
+Sean/M
+seaport/MS
+sear/GSDk
+seasonal/UY
+seat's
+Seattle/M
+secant/MS
+seclusion/M
+second/RGLSYD
+second-hand
+second-rate
+sectarianism/MS
+sectary/SM
+sedan/SM
+Sedgefield/M
+seedbed/MS
+seedling/SM
+seek/GRS
+segment/GonNMSD
+segue/DSG
+Seiko/M
+selenography/M
+self-closing
+self-consistent
+self-control
+self-correcting
+self-determined
+self-esteem
+self-evident/Y
+self-feeding
+self-governing
+self-immolation
+self-important
+selfish/UY
+self-knowledge
+self-locking
+selfness
+self-restraint
+self-revelation
+sell-off
+selvage/SM
+semblance/AMES
+semi-annual/Y
+semi-automatic
+semi-conscious
+semiquavers
+semisweet
+semi-weekly
+sempre
+Semtex
+send-off/S
+senescence/M
+seniority/SM
+senna/M
+sensational/Q83
+sensibleness
+sensualist/MS
+sent/FEKUA
+sentience/IM
+sentimentalist
+septa/M
+sepulchral
+sequences/FA
+sequestrate/SDG
+Sergio/M
+Seri/M
+sermon/Q8SM
+settable/A
+seventy-five/H
+seventy-seven/H
+sex-linked
+sexpot/SM
+sextillion/M
+sexy/T3
+sforzandi
+shade/MDpJSZG2
+shaded/U
+Shaffer/M
+shaggy/T
+shakeable/YU
+shaman/MS
+Sharon/M
+sharpness
+Shasta/M
+shatter-proof
+Shavian
+shear/RDGS
+sheathing/M
+sheave/DSG
+sheeplike
+sheepshank/SM
+sheet/DSMG
+Shelagh/M
+shelf/6M
+shelflike
+Shem/M
+Shenandoah/M
+sheriff/SM
+Sherpa/SM
+Sherwood/M
+shiatsu
+shiftlessness/S
+shifty/TP
+shin-pad/SM
+ship-fever
+shipowner/MS
+shipwreck/GMDS
+shirt/DpSMG
+shitty/T
+shiverer/M
+Shockley/M
+shod/zZ2
+shoemaker/SM
+shoestring/SM
+shooting-break
+short-range
+short-winded
+shorty/M
+Shostakovich/M
+shotgun/MS
+shot-put
+showroom/SM
+shrapnel/M
+shrike/SM
+shrimp/SM
+Shropshire/M
+shunter/M
+shy/DTSG
+Siam/M
+Sib/M
+sibilance/MZ
+sic/TDG
+siccative
+sickbay/M
+sick-benefit/SM
+side/ISAKef
+sidebar/MS
+side-bet
+side-door
+side-on
+side-stroke/SDMG
+sidle/DSG
+sightliness/U
+Sihanouk/M
+siltation/M
+Silurian
+silver/dMZS2
+silversmith/SM
+Simla
+Simms/M
+Simone/M
+Singaporean/S
+singlet/SM
+sing-song
+sinless/Y
+sins/A
+Siobhan/M
+Sisyphean
+Siva/M
+sixth-former/S
+sixty-nine/H
+sizzler/M
+skein/MS
+skeleton/MS
+skew/DPRGS
+skew-eyed
+skiff/MS
+skip/RSDG
+skyless
+sky-writing/SM
+slack/DGTRPYS
+Slade/M
+slain
+slapstick/M
+slash/SDGR
+slave-bangle
+sleep/R2MZGSzp
+sleepwear/M
+slenderer
+Sligo/M
+slink/GZS
+slippered
+slipshod
+sliver/dSM
+slobber/ZdS
+Slocum/M
+sloth/6Mj
+Slovene/S
+Slovenian/S
+slovenly/TP
+sludge/ZM
+sluggard/SM
+slump/GDS
+smallish
+smarty-pants
+smearer/M
+smiter/M
+smock/DGSM
+smother/Sd
+smoulder/Skd
+smuggle/RSGJD
+Sn
+snafu/MS
+snail/SM
+snakebite/SM
+snaps/U
+snatch/GDRS
+Sneed/M
+snoopy/T
+snore/GDRS
+snowbound
+snowfall/MS
+snowstorm/SM
+snowy/T
+Snyder/M
+soak/DGJS
+so-and-so/M
+soberer
+soberest
+social/Q8s39Sq-Y
+socialite/ZSM
+Sofia/M
+softly-softly
+soft-spoken
+Soho/M
+sojourn/RMDGS
+solenoidal
+sol-fa
+solicitousness
+solicitude/MS
+solider
+solidest
+Sol's
+solutes/E
+solute's
+solution/ASME
+Somalia/M
+somebody/SM
+somebody'll
+sometime/S
+somewhat
+somewhere
+sommelier/SM
+sonatina/SM
+songster/SM
+sonnet/MS
+sophist/S1yMWw
+sorcerer/MS
+sottish
+soufflé/SM
+sought-after
+soul/pS6Mj
+soundness/U
+soundproofing/M
+south/M
+south-east
+south-Easterly
+Southend-on-Sea
+southward/S
+south-West/M
+spaceship/SM
+space-time
+Spackle
+Spain/M
+spam/RDG
+Spaniard/SM
+spark/DYGZSM
+sparling/SM
+spate/SM
+spatio
+speakership/M
+special/Q-8q3S
+specialism/MS
+specialist/W
+specialness
+specificity/S
+specify/SBl1nRDWNG
+spectacle/DSM
+spectral
+specular
+speculate/NDnSvVG
+speculation/M
+speedy/TP
+speleologist/S
+spent/Ufcea
+spermatozoon/M
+spermicidal
+spheroid/oMS
+spice/DGSZM
+spiderwort/M
+spillover/SM
+spilt
+spiracle/SM
+spiritualism/MS
+spirituality/SM
+spiteful/PY
+splenetic
+splutter/dS
+spool/MRSDG
+spoonerism/SM
+spoon-feed/SG
+sportive/P
+sportsman/Y
+sportsmanship/M
+spot/2GDRSZzMp
+spotted/U
+springbok/MS
+spring-clean/D
+spring-loaded
+sprout/DGS
+spun
+squadron/MS
+squalid/YP
+squander/dS
+square/PMTDSYG
+squashy/TP
+squawk/RMDSG
+squeaky/T
+squid/MGDS
+squinter/M
+squireling
+SS
+SSE
+SSW
+st.
+stabling
+stably/U
+stadium/SM
+Stafford/M
+stage/SZBM2
+stagnancy/MS
+stagnate/nNDSG
+stalagmite/MS
+Staley/M
+Stamford/M
+staminate
+stanchion/SM
+stand-in/S
+Stanley/M
+Stanton/M
+Stanwood/M
+starch/SzMGD2Z
+stationariness
+stationery/MS
+status/MWS
+statutory/Y
+steadfast/PY
+steady-going
+steamboat/MS
+steel/DMGZ2S
+Stefanie/M
+stein/MS
+stellated
+stepchild/M
+step's/aI
+steradians
+stereography/MW
+stereoscopy/M
+Stevenson/M
+stew/DMGS
+stiff/YPTS
+stigmata
+stinky/T
+stipend/MS
+stirring/Y
+stocked/f
+stockinet's
+stockpile/DSG
+stock's
+STOL
+stomachful/S
+stomachs
+stonecutter/MS
+stoner/M
+stopgap/MS
+storehouse/MS
+stowaway/SM
+strangulate/GnSND
+stratagem/MS
+Stratford/M
+strawberry/SM
+stray/GDSM
+streamline/GDS
+strenuous/YP
+stress/cD
+stressing
+stretched/c
+stride/MSG
+strident/Y
+stringency/S
+striper/M
+strive/DSGJ
+Strolz/M
+structuralist
+Stuart/MS
+stubby/T
+stud/DSMG
+studied/U
+stuffs
+stupidest
+stupor/MS
+stutterer/S
+styli
+stylish/Y
+subaltern/MS
+subcultural
+subcutaneous/Y
+sublunary
+submerge/GDS
+submersible/S
+submicroscopic
+suborbital
+sub-Saharan
+subservience/M
+subsoil/MS
+subtenancy/SM
+subtype/SM
+suburb/SM
+suburbanite/MS
+subversive/PSY
+successive/P
+successor/SM
+Sudanese/M
+suffocate/SGkDnN
+suffragette/MS
+sugar/dMpS
+suggestive/P
+Sukarno/M
+sultan/SM
+summer/dZ
+summons/SGDM
+sunbonnet/MS
+sunburnt
+sun-dried
+sunflower/SM
+sung/U
+sunlamp/S
+sunlit
+Sunnite/MS
+sunset/SM
+supercomputer/MS
+supercomputing
+superior/SMY
+superiority/SM
+supermodel/S
+superstore/S
+supposed/Y
+supremo/M
+surcharge/GDSM
+Surinam/M
+surrender/Sd
+survival/SM
+Susan/M
+Susanne/M
+suspecting/U
+suspense/M6
+suspension/M
+Susquehanna/M
+Suzette/M
+Sven/M
+swaddle/DGS
+SWAK
+swampy/T
+swank/GDT2ZSz
+Swanson/M
+swarm/MDSG
+swatch/MS
+swearword/MS
+Swedish
+sweetbread/SM
+sweetened/U
+sweptback
+swim/SRG
+swinishness
+swoon/DSG
+swore
+Sydney/M
+syllabification/M
+symbiosis/M
+symbiotic/Y
+symbol/13WQ8-qSwM
+synclinal
+syndrome/SM
+synonymousness
+synonymy/SM
+syntax/SM
+synthesise/ADGS
+syrupy
+system/W1SM
+systematic/S
+systemic/Y
+Ta
+table/MSGD
+tablecloth/SM
+tabloid/SM
+tabular/Y
+tactile/Y
+tactility
+taffeta/MS
+Tagalog/M
+tailor/dSM
+Taipei/M
+take/RfGSJ
+takeaway/S
+takes/IacA
+taking/Aac
+talebearer/MS
+tally-ho's
+Talmud/W3M
+tamarack/MS
+tank/GMR6DS
+tantalum/sQ-98qM
+Tantalus/M
+tantamount
+taper/d
+taramasalata
+tardiness
+target/dSM
+tarragon/MS
+tarry/DTSG
+Tarrytown/M
+tasting/S
+Taunton
+tauten/dS
+tawdry/PTY
+taxies
+taximeter/SM
+Taylor/M
+TDD
+tea-leaves
+tearaway
+teaspoonful/MS
+teazle
+technocrat/WS
+Teledyne/M
+telefax
+telegraph/WZD1GSM3R
+telegraphy/3M
+telephony/M
+telephoto/S
+telex/SDGM
+Telford/M
+tell-tale/SM
+tempestuous/Y
+temporary/FS
+tempts/F
+tenant/MGSD
+tendentious/PY
+tenderfoot/MS
+tendinitis
+tens/xNTSDXG
+tensioned
+termagant/SM
+terns/I
+terrapin/MS
+territorial
+territory/MSo
+tertian
+testate/I
+testicle/MS
+tetanus/M
+tête
+tetrachord/SM
+tetraplegia
+tetravalent
+than
+thaw/DGS
+Theadora/M
+theft/MS
+their/S
+Theodore/M
+Theodosius/M
+theory/Qs-89q3MS
+therapist/SM
+Theravada/M
+there/M
+thereby
+thereto
+therewith
+thermoelectric
+thermopile/M
+thermostat/1MSW
+they
+thicket/MS
+thievish
+thigh-bone/MS
+Thimphu/M
+think/RJ7GS
+thirty/HMS
+thirty-onefold
+Thoreau/M
+thorn/M2ZS
+thoroughfare/MS
+Thorpe/M
+thou
+thought's
+thrash/RJSDG
+three-phase
+thrice-married
+thrive/DSkG
+throws/c
+thuggish
+thumb/DGMS
+thump/MGSD
+Thurrock/M
+thyrotrophic
+ticket/SMdZ
+tickety-boo
+tie/RSMDG
+tie-break
+tier/D
+Tijuana/M
+Tim/ZSM
+timely/TP
+time-spans
+time-work
+timpani
+tin/DGZSMz2
+tincture/DSMG
+tinker/dMS
+tinkle/DSGY
+tinny/TP
+Tipperary/M
+tippet/SM
+tips/zZ2
+tobacconist/MS
+Tobago/M
+toboggan/S3rMd
+tock/GMDS
+today/M
+together
+toiletry/MS
+tolerate/NDGBSn
+tomboyish
+tom-tom
+tonelessness
+Tonga/M
+tonight/M
+tonne/MS
+top-heavy
+topic/MS
+topping/M
+tore
+Torfaen/M
+torn
+tornadoes
+toroid/oSM
+torrent/SM
+Tórshavn/M
+torsion/MSo
+tortilla/MS
+tortoise/MS
+tortoiseshell/SM
+toss/GRSD
+toss-up/SM
+totality/SM
+totter/Sdk
+tough/GYPTSD
+tourmaline/SM
+tout/DSG
+tower/dk
+Towsley/M
+tracheae
+traffic/DRMGS
+trampoline/SM
+transcendental/3
+transform/R7
+transformed/U
+transgress/NSDVGX
+translatability/M
+translation/aSM
+translator/MS
+transmogrify/nSDNG
+transposed/U
+transsexualism/MS
+Transvaal/M
+transvestite/SM
+Transylvania/M
+trap/JSRDMG
+Trappist/SM
+tray/SM
+treachery/MS
+treasonous
+treatable/U
+trenchancy/SM
+trendsetting
+trendy/T
+Trevino/M
+Trevor/M
+trialling
+triangle/SM
+triceps/M
+trichinoses
+trickle/DSG
+tricolour/SDM
+trident/SM
+trimmed/U
+trimming/M
+trinket/SM
+triode/SM
+triphthong/S
+triple/SGD
+tripodal
+tripping/Y
+triumphalism
+triumvirate/MS
+troika/SM
+Trojan/MS
+troll/DGMS
+trolled/F
+trousered
+truce/SM
+trudge/SDG
+Trudi/M
+truffle/MS
+Trumann/M
+trusty/TMS
+tsar/S
+tsarina's
+TTL
+tub/drSMZ
+tuberculin/M
+tuberculoses
+Tudor/SM
+tuft/DSGZM
+tularaemic
+tulle/MS
+tumble-drier
+tumidity/SM
+tummy/MS
+tuneless/Y
+Tunisian/S
+turbocharger/SM
+turbofan/MS
+Turkic/M
+Turkmenistan/M
+Turks/M
+turn-down
+Turpin/M
+turret/MS
+turvy
+Tuskegee/M
+tut/SGD
+tutor/dSM
+Tuvalu/M
+twang/DGZSM
+twenty-eight/H
+twenty-twenty
+twiddle/YGDS
+twine/SM
+twinkle/YGDS
+two-sided
+Tyler/M
+typeset/RSG
+typewriter/MS
+typo/3MS
+tyranny/8SQ1Mw
+Tyrone/M
+tzarina/MS
+UAR
+Ugandan/S
+ugliness
+UK/M
+ulster/MS
+ultralight/S
+ultramontane
+ululation/M
+Ulysses
+um
+unaffected
+unbeknownst
+uncloak/G
+uncompress/G
+uncouthness
+uncover/d
+undaunted/Y
+undercount
+underdog
+undergone
+underneath/S
+undersea
+understandable/Y
+understanding/aM
+understudy/M
+uneatable
+unenviable
+uneven
+unfeminine
+unhappiness
+unhurt
+unicast
+unisex
+unit/d
+universal/8QS
+unmistakable/Y
+unmistakeable/Y
+unprofessional
+unrelated
+untidy/T
+unwieldy
+UPC
+upland/SM
+uppercut/S
+uppish
+uprising/SM
+upstream
+urbanism/M
+urbanity/MS
+Uriah
+urinal/SM
+urinalyses
+useless/Y
+usherette/SM
+usurp/DRNSnG
+usurpation/M
+utile/-8qQ
+utterance/SM
+uttered/U
+Uzbekistan/M
+v
+vacation/M
+vaccine/NnMS
+vacuousness
+Vader/M
+Vaduz/M
+vaginal
+vainglory/SM
+valediction/SM
+valency/SM
+Valerian/M
+valet/SMd
+valorous/Y
+valuation/f
+valued/Ufc
+valuer/SM
+van/SM
+Vandyke/M
+Vanessa/M
+varicoloured
+vaudeville/SM
+vault/RSGMD
+VAXes
+vectors
+veg
+vehement/Y
+vendor/SM
+Venezuela/M
+venial/Y
+venous/Y
+ventriloquist/MS
+veracities/I
+veracity's/I
+verifiability/M
+vermouth/MS
+Vernen/M
+verse's
+versification/M
+vessel/SM
+VG
+VHS
+viable/Y
+vibrate/DGnyNS
+vibrator/SM
+vice-like
+vice-President/SM
+viceroy/MS
+vicious/Y
+Vick/M
+victor/MS
+videodisc/MS
+vii
+viii
+vilification/M
+villi
+Villiers
+Vince
+Vincent/M
+vinyl/M
+viol/MS73
+violates
+virago/MS
+Virginian/S
+Virgo/SM
+virologist/S
+virtuosity/SM
+viscid/Y
+viscous/Y
+viscus
+visible/IY
+vision/yGM
+visionary/S
+visioning/K
+visitor/SM
+vita/oM
+vitae
+vital/Q8S-q
+vituperate/DnNSVvG
+viz.
+Vlei
+vocative/YS
+voiceless/Y
+voilà
+vol-au-vent
+volition/oMS
+volitional
+volitionality
+Volkswagen/SM
+voltaic
+voraciousness
+VP
+VPN
+vulpine
+waddle/DSG
+wag/DdrSMG
+waggishness
+waggle/DSG
+wakefulness
+Walbridge/M
+walkway/MS
+wall-to-wall
+Wally's
+Walsall/M
+wander/JSdr
+wanderlust/MS
+warmed/A
+warm-heartedness
+warmongering/M
+warmth/M
+wars/C
+Wartburg/M
+washboard/MS
+wastrel/SM
+watched/U
+Waterhouse/M
+Watson/M
+watt/SM
+Wausau/M
+wavelike
+waver/dkS
+way/SM
+we/GzJ
+wean/SDG
+weanling/M
+weathervane/SM
+Webber/M
+Wedgwood/M
+wed's
+weep/SZG
+weighty/YT
+weir/SM
+well-earned
+Weller/M
+Wellesley/M
+well-founded
+well-structured
+well-tried
+welter/d
+Wembley/M
+wench/MS
+Wensleydale/M
+werewolves
+Werther/M
+Westhampton/M
+wetness
+wharves
+what/M
+wheat/M
+Wheaton/M
+wherefore/S
+whereon
+whetstone/MS
+Whiggery
+whimsy/S
+whippet/MS
+whisper/kdrJS
+whitefly
+white-hot
+Whitlock/M
+who/M
+who'd
+wholeness
+whomever
+whoopee/S
+whoosh/GMDS
+wickedest
+widen/rdS
+Wilde/M
+wile/DSMG
+Willa/M
+Williamsburg/M
+Willis
+Winchester/S
+Winckelmann
+windburnt
+windedness
+windjammer/MS
+windowpane/SM
+wind's
+Winnipeg
+wino/MS
+winter/cdS
+Wirral
+wishy-washy
+wistfulness
+wit/zSM2pPGZD
+WNO
+woe/jSM6
+Wolcott
+Wolfgang
+wombat/MS
+womenfolk/M
+won
+wontedly/U
+Woodberry
+woodblock/S
+woodcock/SM
+woodlice
+woodpecker/MS
+woodworm/M
+woollen/S
+Worcester
+word-blindness
+work/ADeScG
+workably
+workaround/MS
+workbench/SM
+workhorse/MS
+working-class
+work's/e
+workspace/S
+worm-eaten
+worst-case
+wouldn't
+wow/GSD
+WRAF
+wretch/MiDhS
+wriggle/YRDSG
+Wrigley
+wring/RGS
+written/fUcaA
+xiv
+Yahweh
+yak/M
+yardage/MS
+yearlong
+year-round
+yeast/SM2Z
+yippee
+yo
+yoke's
+Yorktown
+youngish
+youth/jSM6
+Yule
+yum-yum
+Zadie'
+Zeitgeist
+Zellick'sF
+Zen
+zero/GSDM
+zest/6Mj
+Zimmerman/M
+zinc/M
+zirconium/M
+Zoroaster
+Zoroastrian/S
+A
+abalone/MS
+abdomen/MS
+Aberdeenshire/M
+abettor/SM
+abidance/MS
+abide/kGDS
+able/nVvYNT
+abnegation/M
+abominable/Y
+absentia/M
+absent-minded/Y
+absent-mindedness/S
+absolutism/SM
+abstention/MS
+abstracted/P
+abstractness/S
+absurdity/MS
+abundant/Y
+abyss/SM
+acceptableness/S
+acceptant
+acclaim/DSG
+accredit/Snd
+accreted
+acerbic/Y
+acetate/SM
+ache/DGkZSM
+ached/FKA
+acknowledge/LRGShD
+acorn/MS
+acquaint/ASDG
+acquaintanceship/S
+across
+acrylate/M
+activate/SINnDCG
+activation/IMCA
+actuality/SM
+ad/AC
+Adam/SM
+adapted/P
+ADC
+addenda
+addressee/MS
+adeptness/S
+adequate/IYP
+adiabatic/Y
+adieu/S
+administrate/DGSvV
+administration/M
+admit/SANDGX
+admonition/SM
+ado/M
+adopts/A
+adrenalin
+adventist/S
+adversary/MS
+advice/MS
+Aeneid
+aeolian
+Aeolus
+aeration/M
+aetiology/W1wM
+AFAIK
+affectation/M
+affection/EMS
+affine
+aflame
+afraid/U
+afterlives
+Agaa/M
+agglomerate/nVDNSG
+aggression/MS
+aggressiveness/S
+Agnes/M
+agriculture/M3oS
+aid/RGDS
+Aidan/M
+aim/RGDpSy
+airbase/S
+aircraft/M
+airfare/S
+airfield/SM
+airline/RMS
+airmail/DMG
+alack
+Alameda
+Albanian/MS
+Albrecht/M
+albumen/SM
+Alderney/M
+algaecide
+algebraist
+Algeria/M
+Ali/M
+alienist
+alimony/SM
+aliphatic
+al-Jazeera
+all-clear
+allot/SLGD
+alluvia
+alluvions
+ally/SGD
+almighty/P
+aloofness/S
+alphanumeric/YS
+Al-Qa'ida/M
+Alsatian/S
+also
+alternative/PMS
+aluminium/M
+alveolar/Y
+alveoli
+am/A
+Amalie/M
+amanuensis/M
+amaretto/S
+Amarillo/M
+amaze/LDhkGS
+amber/MS
+ambidexterity/SM
+ambrosia/MSo
+ambulation/M
+ambulatory/S
+ambuscade/SMDG
+Amerada
+Americana
+amicable/PY
+amidst
+amity/MS
+amnesiac/SM
+Amoco/M
+amorousness/S
+amorphousness/S
+amphora/M
+amphorae
+amt.
+analects
+analysable
+analysand/MS
+analytical
+anaphora/1WM
+Anatolian
+anchor/m5dSM
+Andes
+Andrew/MS
+Angelo/M
+anger/MdS
+Angola/M
+Anheuser/M
+anhydride/M
+animateness/I
+animé
+anisotropy/MWS
+annal/3SM
+annexation/M
+announced/U
+annual/Q8YS
+annuitant/SM
+annuity/SM
+anode/8MQSW
+ant/E
+anterior/SY
+anthology/Q8SM3
+anthropic/a
+anti-aircraft
+anti-Americanism
+anti-apartheid
+anticancer
+anticommunist/MS
+antidote/SDMG
+anti-heroes
+antiparticle/SM
+antiperspirant/SM
+antiquary/SM
+antitheses
+Antrim/M
+anxiety/SM
+anxiousness/S
+anything
+apartheid/M
+aperiodicity/M
+aperture/DMS
+aplomb/SM
+apparatchik/S
+appearance/AMES
+appendices
+appendix/MS
+applause/MS
+application/AM
+applying/a
+Appomattox
+appreciably/I
+appreciator/MS
+apprehensible
+apprehension/aMS
+apprise/kSGD
+appropriable
+apricot/MS
+apse/SM
+aquifer/MS
+Arabic/M
+arachnoid/M
+arbitrageur/S
+archaic/Y
+archaism/MS
+archduke/MS
+archetypal
+archiepiscopal
+architectonic/S
+arenaceous
+arid/PY
+arithmetic/YM
+Arkansas/M
+Arkwright/M
+Arlen/M
+arm/RELGDS
+armature/DMGS
+armchair/SM
+Armco
+arraign/LGDS
+arranges/AEK
+arrestee/SM
+arrival/MS
+arrive/GSD
+arrogation/M
+arrow/MGSD
+arroyo/MS
+Artemis
+arterioscleroses
+artificial/P
+ascendency
+Asheville/M
+Ashford/M
+Ashton/M
+ashtray/SM
+Asian/SM
+Asimov/M
+askew
+asphalter
+aspic/MS
+assen
+assent/GMSD
+assertion/MAS
+assessed/A
+asst
+Assyrian/M
+astern
+Aston/M
+astraddle
+astral/Y
+astringency/SM
+astronautic/S
+asylum-seeker/S
+ate/c
+Athena/M
+Athens/M
+athletics/M
+atomicity/M
+attainable/P
+attar/MS
+attendant/MS
+attested/U
+attester/M
+Aubrey/M
+auctioneer/DSMG
+audiophile/MS
+august/YPT
+Augustan
+aura/WSMo
+aureole/MDSG
+auricular
+auscultation/M
+auspice/SM
+austere/YPT
+Austin/M
+Austrian/MS
+authentication/M
+author/Qs-9d8qSM
+authoress/S
+authoritarian/S
+authorization/M
+authorize/KA
+autistic
+autograph/GMSD
+autoloader
+automation/M
+autorepeat/GS
+auto-suggestibility/M
+auxiliary/S
+avant
+aviatrices
+avocado/MS
+avouch/DSG
+avowed/Y
+awakened/A
+awkward/YPT
+Azores
+Babbage/M
+back/eM
+backbone/MS
+backdrop/DSMG
+backhoe/S
+backrest/SM
+backspace/DGS
+back-up/S
+backyard/SM
+bad-egg
+badminton/M
+bad-tempered
+Bahamas/M
+Bahrain/M
+bailer
+baldness/S
+baleful/TP
+balefulness/S
+ballad/MyS
+balladry/SM
+Ballard/M
+balloonist
+ballot/dMS
+Ballymoney/M
+banal
+Banbury/M
+banking/M
+banner/d
+Bannerman/M
+bannock/MS
+baptist/SM
+barbarism/SM
+barbarize/DSG
+barbiturate/SM
+bare/YPDTSG
+barehanded
+bareheaded
+bargain-basement
+barge/DmMSZG
+barked/C
+barleycorn/SM
+Barlow/M
+barmen/M
+barn/MDS6G
+Barnum/M
+baronetcy/SM
+Barrichello/M
+barrier/MS
+barrio/MS
+Barron/M
+bartender/SM
+baselessness
+basher
+basis/M
+bass/S3M
+Basseterre/M
+bat/FdMS
+battleaxe
+bauxite/M
+bawl/DGS
+bazaar/MS
+beach/GSDM
+bear/JlRSG7
+beastly/TP
+beaux/M
+Beaverton/M
+bêche
+bed/F
+bedder/SM
+bedsit/S
+bedsore/SM
+bed-wetting
+beehive/SM
+Beelzebub/M
+beet/MS
+beetle/DMSG
+befall/GS
+before
+beginning/M
+begrudger
+behavioural/Y
+behove/DS
+believable/YU
+bellicose/YP
+belligerent/YSM
+bellybutton/SM
+belting/M
+bemuse/DLhSG
+bent/U
+Benton/M
+bequest/SM
+bereave/LGDS
+Bergerac/M
+berm/MS
+Bernadette/M
+Berne/M
+berrylike
+Bertha/M
+betide/DGS
+bêtise
+betoken/dS
+Bette/MZ
+better-off
+bi/M
+bibliography/Ww1MS
+bibulous
+bicycle/RG3SMD
+biddy/SM
+bide/S
+bighead/MS
+bigotry/SM
+billion/MHS
+biochemist/SyM
+biodegradability/S
+biofeedback/SM
+biography/SM
+biology/w3MW1S
+biomass/MS
+biometric/S
+biometry/WM
+bionics/M
+biotin/MS
+bipartite/Y
+bipedalism
+biretta/MS
+Birmingham/M
+bisect/GSD
+bison/M
+biter/SM
+bitmap/MS
+bitter/YPSd
+bitterest
+bitwise
+blackberry/MSG
+blackener/M
+Blackfoot/M
+blackhead/SM
+blackish
+blackness/S
+Blanche/M
+blandish/DGLS
+blandness/S
+blazon/Sd
+bless/hGSDiJ
+blitheness/S
+blithering
+bloc/GDMSR
+blockade/DMGRS
+Blomberg/M
+blond/PMST
+blood-lust
+bloodsucker/MS
+bloodthirsty/PTY
+blotch/SGMZD
+blowpipe/MS
+bluebill/M
+bluebonnet/SM
+bluesy/T
+blunder/dkrJMS
+blurring/Y
+blurter
+blushing/UY
+BMW/M
+boast/DRG6jJS
+boasting/e
+boat/MDRGS
+bobble/SGMD
+boccie/SM
+body-blow
+Boer/SM
+boll/MS
+bollard/SM
+Bologna/M
+bolometer/WSM
+Bolshevism/M
+Bolshevist/WMS
+Bolshoi/M
+bolt's
+bombproof
+bond/MmDJRGS
+bonemeal
+bonito/MS
+bonus/MS
+bookbind/RGJ
+bookbinding/M
+bookkeep/RGJ
+bookmarker
+boolean
+boonies
+boor/MS
+bootprints
+Borden/M
+border/dMS
+borderline/MS
+borrowing/M
+borstal/MS
+Bosnia-Herzegovina/M
+Boston/M
+bothersome
+Botswana/M
+bougainvillea/M
+boulevard/MS
+bound/ADSG
+bourgeoisie/MS
+bourses
+bower/d
+bow-legs
+bowlful/S
+bowstring/DMGS
+boyscout
+BP
+bracelet/SM
+bracer/M
+Brachiopoda
+bracken/SM
+bracteal
+Bradley/M
+Bragg/M
+braggadocio/MS
+Brahmanism
+braider/M
+braiding/M
+bramble/GMYDS
+Brandenburg/M
+Braun/M
+braveness/S
+braze/DSG
+bread/HDMSG
+breakout/MS
+breastfed
+breasting/M
+breastwork/MS
+breezy/TPY
+Brentwood/M
+Brest/M
+brevet/MGDS
+brewer/Z
+bric/DG
+bricklaying/SM
+brickmason/S
+brickyard/M
+Briggs/M
+brilliance/SMZ
+brindle/MDS
+briner/M
+bristly/T
+bristols
+bro
+broaden/Srd
+broad-mindedness
+broadside/SMGD
+Bromley/M
+Bromwich/M
+brontosaurus/SM
+broom/GMSD
+browbeaten
+Bruce/M
+brucellosis/M
+Bruckner/M
+brusque/PTY
+brutish/PY
+bucket/Sd6M
+Buckingham/M
+buckling/M
+buck-passing
+budget/rSdM
+Budweiser/M
+buffalo/M
+buffet/SdJM
+Bulawayo'sc
+bulky/TP
+bullfinch/MS
+bullheaded/P
+bullied/M
+bullshit/RSDMG
+bullying/M
+bummed/M
+bung/GMDS
+bunghole/SM
+bunker/d
+bunting/M
+burgeon/SDG
+burier/M
+burlesque/DYRMSG
+burnout/MS
+burr/MS
+bursting
+Burundi/M
+busmen
+butterfingered
+buttoner/M
+bye/MS
+byname
+Byrd/M
+byroad/MS
+CAA
+cabdriver/MS
+cabinet/MyS
+cachet/MdS
+cad/MZS
+cadenza/MS
+cafeteria/MS
+cairn/DSM
+cajolery/SM
+cake/MDGS
+calamitous/PY
+calculated/aA
+callous/PDYSG
+calmness/S
+calumet/MS
+cam/MSD
+camber/dMWS
+Cambridge/M
+Cambridgeshire/M
+Camino
+camisole/MS
+camphor/SM
+canard/MS
+cancel/RDGS
+Candace
+candelabra/S
+candidacy/MS
+candy-striped
+cannier
+canny/UPY
+canst
+cant/DCRGS
+cantabile
+cantaloupe/SM
+capability/ISM
+capacitance/SM
+capitalised/Uc
+Capote
+capricious/YP
+Capricorn
+cap's
+carapace/MS
+carbonyl/M
+carburettor/SM
+carcase/MS
+carcass/MS
+carcinoma/SM
+card/DERGS
+cardiac/S
+cardinality/MS
+cardsharp/RMS
+caregiver/S
+carillon/MS
+Carlton
+carol/DRGSM
+carotene/SM
+carousal/SM
+carouse/RGDS
+carpentering/M
+Carr/M
+Carrie
+carry-on
+carthorse/MS
+Cartier
+carton/dMS
+cartoon/G3DMS
+cartoonist
+Cartwright
+carve/RSJGDy
+carven
+casaba/SM
+casbah/M
+cascade/GDSM
+cashier/GMDS
+cassia/SM
+castanet/SM
+Castlereagh/M
+castrato
+cast's/e
+casualty/SM
+casuist/SMWy
+catafalque/SM
+catalyse/SDWG
+Cauchy
+causality/MS
+causative/S
+Cavan/M
+cayenne/MS
+cease/CDSG
+ceaselessness/S
+cede/FKAGDS
+ceiling/MSD
+celebration/M
+celesta/SM
+celestial/Y
+cement/RGDSM
+censor/dSM
+censorious/PY
+censure/GRMSD
+Centralia
+centre/GDRMJ3WoS
+centripetal/Y
+cerebration/M
+ceremoniousness/SM
+ceremony/SMo
+CERN
+certain/UY
+certainty/USM
+Chablis
+chain's
+chairperson/SM
+chalet/SM
+chamberpot/S
+chamomile/MS
+chancy/T
+changeability/MS
+changeably/U
+change-ringing
+Chantilly
+characteristic/UY
+characteristics
+Chardonnay/S
+charming/T
+charted/U
+chasing/M
+château/SM
+chattiness/S
+chauvinism/MS
+cheapish
+cheddar/S
+cheerio/S
+cheesecloth/MS
+cheetah/SM
+Chelmsleywood
+chemiluminescent
+chemotherapeutic/S
+chequebook/MS
+cherry/MS
+chess/mSM
+Cheviot/SM
+chiaroscuro/MS
+chief/SMa
+chigger/SM
+childproof/GD
+chipmunk/MS
+chiral
+chirography/SM
+chiropody/3SM
+chiropractic/MS
+chiropractor/SM
+chisel/RDSGJM
+chivalry/WSM
+chloroform/GDSM
+choirmaster/SM
+choosiness/S
+chorion/M
+chorister/SM
+Christendom
+christened/U
+Christmastide
+chuck/SDGM
+chukka/S
+chute/SGMD
+cicerone/SM
+cider/CMS
+cinch/DSGM
+Cincinnati
+cinema/WMS
+circumpolar
+cirrhoses
+citation/MA
+citing/I
+citizen/MYyS
+Citroen/M
+clad/JGS
+claim/ERSGCAD
+clam/GMzZD2S
+clammy/TP
+clamshell/SM
+claptrap/MS
+clarinet/MS
+clarinettist/MS
+clarion/MDSG
+clasp-knife
+classicality
+classy/TP
+clatter/dSZk
+Clausen
+claustrophobia/SM
+clave/FM
+clayiest
+cleanse
+clearway/M
+cleat/GMDS
+clef/SM
+Cleveland/M
+cliché/MS
+clichéd
+cliff/SM
+climatology/S3Mw1
+clinch/SRGkD
+clipping/M
+clique/DMGSZ
+close-fitting
+clot/GDMS
+clothe/UGD
+clotheshorse/SM
+clouded/cU
+clue/pMDGS
+Clwyd
+Clyde
+CMG
+CNAA
+coagulate/nGSDN
+coalescence/SM
+coarsen/dS
+coast-to-coast
+coater/S
+coating's/c
+cob/GMSD
+Cobb/M
+cobweb/MZSGD
+cobwebby/T
+cocci/MS
+co-channel
+cochlea/MS
+cochlear
+cock/zGMDZS2
+cock-and-bull
+cockneyism
+cock-of-the-walk
+cocktail/GDSM
+cocoon/MGSD
+codicil/SM
+coequal
+coffee/SM
+coffee-house/SM
+Cohn
+coin/RMDG
+Colbert
+collagen/M
+collate/GSD
+collect/bSivDV7hG
+collectivism/SM
+collector/MS
+collects/A
+collegian/MS
+Colombo/M
+colonelcy/SM
+colonial/S3
+colophon/SM
+colour-fast/P
+colt/MS
+coltish/PY
+combinator/oWSM
+combustion/MS
+Comdex/M
+comeliness/S
+comely/PT
+comes's
+comicality/SM
+commemoration/M
+commendation/AM
+commiseration/M
+commitment/cS
+commodious/PIY
+commonness/U
+communion/MS
+commutator/M
+commute/R
+Comoros/M
+comp/DGS
+compaction/M
+companionship/SM
+comparabilities
+compartmental/-8qQ
+compassionate/P
+compatriot
+compete/SDG
+competency/IS
+complacent/Y
+complement/DMGSRN
+composed/PY
+compressibility/MI
+compression/MC
+compulsion/M
+computerese
+concerns
+concerted/E
+concierge/SM
+conciousness
+conclude/RNGXDSvVu
+concoct/SDGV
+concordance/MS
+Concordia
+concurrence/SM
+condemnatory
+condescension/M
+condom/SM
+conductance's
+confabulate/NSnDG
+confidant/SM
+confirm/nANGSD
+confiscation/M
+conflate/GnDSN
+conflictual
+confound/h
+congruence/ZMS
+congruent/Y
+conical/P
+conifer/MS
+coniferous
+conjectural
+conjugal/Y
+conjunctivitis/SM
+connective/MS
+connector/SM
+connexion/SM
+connive/RSDG
+conscience/p
+consecrated/U
+consecration/MA
+consequentiality/SM
+consistory/MS
+consolation/EM
+consolidated/AU
+consolidation/M
+conspectus/MS
+conspicuousness/SI
+constancy/IMS
+consternate/DnNGS
+constraint/SM
+constructionist/SM
+constructor/SM
+contaminator/SM
+contemplate/VNDvuGn
+content/LEDhGMS
+contested/U
+continent/oYSM
+contingency/MS
+continua/on
+continuousness/E
+contract/GbD
+contrail/M
+contrariness/S
+contrary/PSY
+contravener/M
+contribute/DvGVy
+contribution/SM
+contrive/RDSG
+control/BRMSlG
+controlled/U
+convenor
+conventionalism/M
+conversation/Mo
+conversationalist
+converser
+convolution's
+Cooke/M
+cookery/M
+Coolidge
+cooling-off
+cooperage/MS
+coordinated/U
+coper/M
+coquetry/SM
+cordite/MS
+core/MDRGS
+Corey/M
+coriaceous
+corn/R2ZSMzDG
+cornea/SM
+Coronado
+coronation/M
+corporates/I
+corporeal/IY
+corpuscle/MS
+correctness/S
+corrigendum/M
+corrigible/I
+corroborate/DSnVvGyN
+corrupt/VPTbvSDGY
+corrupter/M
+corruption/MS
+corticosteroid/MS
+cosiness/S
+cosmology/1S3Mw
+cosponsor/Sd
+cost-effective
+cost-effectiveness
+Costello
+costliness/S
+cot/RMSD
+cottered
+cougher/M
+councillor/MS
+countdown/MS
+counter-claim/GSMD
+counter-culture/SM
+countermand/SGD
+counterpoint/DSMG
+countersunk
+countess/SM
+country/5mMS
+couplet/MS
+course/SMFE
+courteous/YEP
+court-martial
+covalent/Y
+covariate/SN
+covered/EAU
+covert/PY
+covertness/S
+cover-up/S
+cowl/DGMS
+cowrie/SM
+coxcomb/MS
+coyote/SM
+cozenage/SM
+crag/MZS2
+crane-flies
+Cranford
+cranky/TP
+crap/GDMZS
+crash/RSDGk
+crass/TYP
+crayon/MdS
+creaminess/S
+creature/YSM
+creaturely/P
+credulous/PY
+creekside
+creep/RZSG2z
+creepy/PTS
+crenellated
+cretonne/MS
+crevasse/MGDS
+crib/DRGSM
+criminalise/CnDSG
+criminalize/CGNnDS
+criterion/M
+criticise/k
+criticize/k
+croaky/T
+Croat
+crone/SZM
+crookeder
+crosier/SM
+crossbow/mSM
+cross-bred/S
+cross-grained
+cross-refer/S
+crow/MDSG
+crozier/SM
+crude/PTY
+cruelty-free
+crumby/T
+crump
+crunch/RSDZG2
+cruse/SM
+Crustacea
+crustal
+cryostat/M
+cryptanalysis/M
+crystallise/AnDSG
+CSA
+cue/DaMSG
+cuisine/MS
+Culloden
+Cully
+cultivator/MS
+culture/SMoDG
+cumbersome/PY
+cumulate/DNvGnSV
+cumulation/M
+curfew/SM
+curio/SM
+currently/AF
+curse/M
+Curtis
+cussedness/M
+cw
+cybernetic/S
+cycled/A
+cyclopaedia/MS
+cyclotron/MS
+cynic/SMY
+Czechoslovakia/M
+Czechoslovakian
+dachshund/SM
+Dacron
+Dada
+daddy/SM
+Dahl/M
+dalliance/MS
+dame/MS
+dammit/S
+damn/lDGkNS7n
+damneder
+damnedest
+dampen/drS
+Dan/ZM
+dance/SDRG
+dapperest
+darken/rdS
+darning/M
+Dartford
+dash/GRSDk
+dastardliness/S
+dateline/SMDG
+dauphin/MS
+Daventry
+Davidson
+davit/SM
+dazzle/SRGkD
+dBm
+DCM
+deathly/T
+death-roll
+debaucher/M
+debouch/DGS
+debtor/SM
+decapitator/MS
+decayer
+decease's
+deceitfulness/S
+deceptiveness/S
+decide/DBGVivhNxXuS
+decided/U
+decisioning
+decking/M
+declaim/y
+declared/KUA
+décolletée
+dedicatory
+deduce/DGnbNVvS
+deep-fried
+deep-laid
+deer/M
+defalcate/GDSNn
+defalcation/M
+defeated/U
+defectiveness/S
+defiant/Y
+deflatable
+Deirdre/M
+deist/WMS
+DeKastere
+Delaney/M
+delectation/SM
+delicateness/S
+delicatessen/MS
+deliquesce/GDS
+deliverance/SM
+Delphi
+Delport
+demagoguery/SM
+demagogy/MW
+demander/M
+demarcate/SNGnD
+demarcation/M
+democratic/UY
+demolish/DSG
+demoniac/S
+demonstrative/UY
+demount/7
+demythologise/n
+dental/Y
+dentifrice/MS
+dependency/MS
+deprecation/M
+Derbyshire/M
+dereliction/MS
+dermis/SM
+derogate/NVSGnyD
+descend/FSGD
+desert/RGMDS
+deservedness/M
+designs/A
+desirability/UM
+desorption/M
+despair/SkDG
+despot/1W
+deterers
+determinable/IP
+determining/KA
+determinism/SM
+determinism's/I
+deterrence/SM
+dethrone/LG
+detonation/M
+d'être
+deviousness/S
+devoid
+devotional/S
+dewar
+dexter
+Dhabi/M
+diabolic/Y
+diacritic/MSY
+diagnosable
+dialectal
+dialectic/MS
+dials/A
+diamond/MSDG
+diary/3MS
+diastole/WSM
+diathermy/MS
+diatribe/MS
+dickiest
+die-cast
+differentiator/MS
+difficulty/MS
+digestion/MS
+digitalis/M
+digression/M
+Dillon
+dilute/PYVGDS
+dinette/MS
+dipterous
+directivity/M
+directness/IS
+directorate/SM
+dis/M
+disagreeable/S
+disallow
+discipleship/SM
+disciplined/UI
+disclosed/U
+discography/MS
+discoloured/M
+discomfit/d
+discontinue/nN
+discourage/LDGk
+discrepancy/MS
+discrimination/MI
+disgracer/M
+disjunctive/S
+dismalness
+dismay/DSk
+disparate/PSY
+dispel/DGS
+dispensary/SM
+dispersion/M
+disposable/S
+disposition/KMI
+disputable/I
+disrepute/M
+dissimilar/S
+distancing/e
+distinctive/P
+distortion/SM
+distract/GhikD
+distributive/YPS
+dither/Sd
+dividing/A
+divisive/P
+Dixieland
+dizzy/PTYDSGk
+docile/Y
+dockyard/SM
+Dodgson/M
+dodo/MS
+doesn't
+d'oeuvre
+dog-box
+dog-eared
+doggy-paddle
+dog-leg/D
+dogmatism/SM
+dog's/f
+dogtooth/M
+dog-tooth
+dogtrot/GSDM
+doily/SM
+do-it-yourself
+dolomite/SWM
+domes/W
+Domesday
+domesticate/SGD
+dominator/M
+Domingo/M
+Donovan
+doodle/SRGD
+Dooley/M
+dopiness/S
+dorm/RMS
+Dorothea/M
+dote/S
+double/SRDGY
+double-dealing
+doublespeak/S
+doubletalk
+doubting/Y
+doughnut/GMDS
+dourness/S
+dovecot
+dovecote/MS
+downgrade/SGD
+downriver
+downy/T
+dozenth
+dragon/MS
+drain/GRSMD
+dreadful/P
+dreadnought/SM
+dredge/GRMSD
+driftwood/SM
+drilling/M
+drink/7SGR
+drivenness
+driveway/SM
+droner
+drool/DRSG
+drop-in
+drove/GSDR
+drowsy/PTY
+drug/DMGS
+druggie/TS
+drumhead/M
+drunkenness/S
+Drury
+drywall/GDS
+Du
+dual/S
+ductility/MS
+duct's/F
+duffel/M
+dug/S
+Duisburg
+dumbbell/SM
+dumpiness/S
+Dumpty
+dune/MS
+Dunkirk/M
+Dunstable
+duplicator/MS
+durum/MS
+dustbin/SM
+dustman/M
+dusty/TP
+duteous/Y
+dutiful/U
+dynamo/MS
+dysfunctional
+DZ
+e
+each
+earliness/S
+earthbound
+earthly/PT
+earthwork/SM
+easel/SM
+easier
+Eastbourne/M
+eastern/R
+Eastertide
+Eastwood
+easy/UY
+Ebola
+Ecclesiastes
+ecclesiastical
+eclectic/SY
+econometrics/M
+Ecuador/M
+Eddie
+edgy/TPY
+edification/M
+Edinburgh/M
+Editor
+editorial/s3Q89SY
+EDT
+Edward/MS
+EEG
+efferent/YS
+effervesce/SGD
+effusion/M
+egger/M
+egocentricity/MS
+Egypt/M
+eidetic
+eightpence
+eighty/HMS
+eighty-eight/H
+eighty-four/H
+Eire/M
+élan/M
+elater/M
+elderflower
+elect/DAGS7
+electrocution/SM
+electrodynamic/SY
+electroencephalogram/SM
+electromagnet/W1MS
+electronics/M
+electrotherapy
+element/SMo
+elephantiases
+elevate/DSnGN
+Elgin
+eligibility/IMS
+Eliot
+Elisha/M
+elite/S3M
+ellipse/SMW
+Ellsworth
+Elmira
+eloquent/IY
+Elton/M
+elusiveness/S
+Elvira
+emasculate/DSGNn
+embroider/rZdS
+embroil/DLSG
+emergent/S
+emeritae
+emery/MS
+Emmanuel
+empanelled
+emphases/c
+emulator/SM
+enchilada/MS
+encircle/DGSL
+enclosed/U
+encrypt/GSD
+endemic/SY
+endless/PY
+endlessness/S
+endoscope/MSWZ
+endure/SGklD
+end-user/S
+energetic/YS
+energised/U
+enfranchise/EDLSG
+enfranchiser/SM
+engorge/LDSG
+engrained
+engram/M
+enhanceable
+enigma/SWM1
+enjoyable/P
+enlargeable
+enlighten/dSL
+enormity/SM
+enough
+entanglers
+enterprise/RSGMk
+entice/SRLkJGD
+entrust/DGS
+enumerating/A
+enuresis/M
+envelop/LrdS
+enzymatic/Y
+epidemic/MYS
+epidemiology/SM31w
+episcopacy/SM
+episcopate/SM
+Epstein
+equally/UF
+equiangular
+equip/LDSG
+equiproportionate
+equivocator/SM
+eradicator/SM
+Eratosthenes
+erecter
+erectile
+erection/SM
+ergosterol/MS
+Erie
+Erika/M
+Erin
+Erlang/M
+Ernest
+Esau
+escaper/M
+escapology
+Eskimo/S
+ETA
+etalon
+ethane/M
+Ethiopia/M
+ethnic/SY
+Eugenia
+eugenicist
+eunuchs
+euphony/SM
+evacuation/M
+eve/yMS
+evenest
+even-handedness
+Everett
+evergreen/S
+Everhart/M
+ever-increasing
+everliving
+evermore
+everybody/M
+ex
+exactly/I
+exceeder/M
+excision/M
+exclusion/My
+excommunication/M
+exculpation/M
+excursionist
+exemplify/SGRnND
+Exeter/M
+exhalation/M
+exhibit/XVdSN
+exhibitor/SM
+exhorter/M
+exigent/SY
+exiguity/MS
+existentialist/W
+exogamous
+exoskeleton/MS
+exoticism/SM
+expandability/M
+expanded/U
+ex-partners
+expectancy/MS
+expectoration/M
+expendable/S
+expense/MGSD
+expensive/IPY
+experimental/3
+experts
+expiate/GyNnSD
+expired/U
+expiry/MS
+explainer/SM
+explanatory
+explored/U
+exponent/SM
+exposed/U
+ex-president
+expressible/IY
+expressiveness/SI
+extol/SDG
+extorter/M
+extortionate/Y
+extradition/SM
+extrapolate/SDnGNV
+extruder/M
+eyebrow/SM
+eyesight/MS
+Fabergé/M
+fabrication/MK
+facelessness
+facial/YS
+faculty/SM
+fadeout
+faeces
+faerie/M
+fail-safe
+failure/MS
+Fairchild
+Fairfield
+fairground/SM
+Fairmont
+falsity/SM
+familiarize/k
+fantasia/MS
+farad/MS
+farce/w1MS
+far-flung
+Fargo
+Farrell
+farther
+fas
+fatten/drS
+fatuous/PY
+fatwa/MS
+faze/DGS
+fearful/TP
+feather-head/D
+Feb
+feebleness/S
+feeds/c
+feelingly/U
+feign/RGSD
+feisty/T
+Felixstowe/M
+feminine/PYS
+feminist/SM
+femur/MS
+fencepost/M
+fermentation/M
+ferociousness/S
+Ferrari/MS
+Ferris
+ferroelectric
+festering
+festiveness/S
+feta/MS
+fetish/M3S
+fettuccine/S
+fiasco/SM
+fibre/MSD
+fibreboard/SM
+fibrous/PY
+fibula/M
+fiction/MSOo
+fictitious/YP
+fictive/Y
+fiddle/RGYMJDS
+fidelity/IMS
+fie/y
+fief/MS
+fiery/TYP
+fiesta/MS
+fifty-nine/H
+fifty-second/S
+Figaro
+figurations/4
+figuring/S
+Fiji/M
+file/CaSAGD
+filet's
+Fillmore
+film-maker/S
+filth/2ZSMz
+fin/DZGowMdS
+finality/SM
+financier/SDGM
+Finnegan
+fire-fighter/SM
+fire's
+firewall/S
+firing/MS
+firmer
+fishnet/SM
+fish-plate/S
+fissure/GDSM
+fixable
+fixture/MS
+flagellum/M
+flagging/YU
+flagstone/SM
+flamboyant/Y
+flank/eSDG
+flaps/M
+flashback/MS
+flashcard/S
+flashgun/S
+flat-head/M
+flatware/MS
+fleabag/SM
+flecker
+flexure/M
+flightiness/S
+flincher/M
+flirtatiousness/S
+flora/MSo
+floridness/S
+flotation/SM
+flotsam/SM
+flout/GRDS
+flt
+fluorite/MS
+fluster/dS
+flutelike
+flux's/I
+flyblown
+flyer/SM
+flyhalf
+fo'c's'le
+focused/U
+foetid/Y
+foetus/MS
+foist/DSG
+folio/SGMD
+folks/Z2
+folk-ways
+fondant/MS
+Foote
+footing/M
+footmen/M
+footrace/S
+footsore
+foppishness/S
+forbore
+foregoes
+foremost
+forepeople
+foresee/BGRS
+foreseeable/U
+forested/AC
+forests/AC
+foretaste/MGSD
+forgery/SM
+forge's
+forgo/RG
+forgotten/U
+fork/D6GSM
+forker
+formal/qsQ89P3-
+Formica
+formula/MSn
+Forrester
+forsaken
+fort/MZS
+forthcoming/U
+fortunate/UYS
+forty-second/S
+forward-looking
+fount/MS
+fountain/SDMG
+fountain-head/SM
+fourpenny
+foursome/MS
+foveae
+fowler/M
+fowl-run
+foxed/e
+foxhole/MS
+fox-hunting
+foxtrot/DMGS
+fractionation/M
+fragment/NGMSnD
+frailty/SM
+francium/M
+Franck
+frantic/YP
+fratricide/SM
+fraudulent/Y
+freedom/SM
+freehold/RSM
+free-standing
+Freetown/M
+free-wheel/DGS
+freeze-dried
+frenetic/Y
+frescoes
+fretboard
+fretsaw/S
+friary/MS
+friendliness/SM
+friendly/TU
+friendship/MS
+frightfulness/S
+frigid/PY
+fringe/IDGS
+Frisbee
+frisky/TP
+fritterer/M
+frontrunning
+front's
+frost/CSGD
+frowziness/S
+fructify/DSG
+fruit/X6jNdpSM
+frustrater/M
+f-stop/S
+ft/C
+FTC
+fuck/DRSMGJ
+fuel/MRGDS
+fullest
+full-wave
+fully-fledged
+fumy/T
+function/SMyGopD
+functor/SM
+fundamentalism/MS
+fundholders
+funicular/SM
+furnishing/M
+furthermost
+fuss/SD2ZMGz
+fusser/M
+fut
+Gaborone/M
+Gael/W
+gaggle/SGD
+gal/GkDM
+Galatians
+Galilee
+Gallicism
+gallows/M
+galvanise/nSDG
+galvanize/NnSDG
+galvanometer/MSW
+gander/dMS
+gang/DMGSY
+gangland/MS
+ganglia/M
+gannet/MS
+gaol/RDGMS
+Garcia/M
+Gardner/M
+Gareth/M
+garland/SDMG
+gaseous/YP
+gassy/PT
+gastritides
+gastroenteritis/M
+gastronome/Z1SwM
+gateway/MS
+gathered/AI
+gathering/M
+gaucheness/S
+gaucho/MS
+gauntness/S
+gawkiness/S
+gearbox/MS
+gee/dGMS
+geisha/M
+gelatin/MS
+gelatinous/PY
+gen/GD
+genera/onWM1Vv
+generic/S
+generousness/S
+Geneva/M
+genially/F
+genocide/SM
+genteel/PY
+gentleness/S
+Geoffrey/M
+geographer/MS
+geometrician/M
+Geraldine
+geriatrics/M
+Germantown
+Germany/M
+gerontology/3SMw
+gerund/MS
+geyser/dMS
+ghost-wrote
+GHQ
+Gifford
+gig/GMSD
+gild/RJGDS
+gimlet/MS
+Gina/M
+gingerly/P
+girlie/M
+girlish/PY
+giving/aY
+gladiator/SM
+glamour/GMDS
+glanders/M
+glare/kSDG
+glassful/MS
+glass-maker/MS
+glass-paper
+glaucoma/MS
+glim/M
+gloater/M
+globular/YP
+globule/SM
+gloss/DMZGSz2
+glottalization/M
+glow-worm/SM
+glue-sniffing
+gluier
+glumness/S
+gluteus
+glycerolized/C
+glycine/M
+GMO
+gneiss/MS
+gnomelike
+gnostic
+goatherd/SM
+godchild/M
+God-forsaken
+godlessness/S
+godson/MS
+goldbrick/MDRSG
+goldfish/SM
+Golgotha
+Goliath/M
+gonadal
+Gondwanaland
+gonococcus
+gonorrhoea/M
+good/YPZS
+GOP
+Goren/M
+Gorgonzola
+goshawk/SM
+gourd/M6S
+government/a
+GPSS
+grades/A
+gradual/YP3
+gradualist
+gradualness/S
+grammarian/MS
+grand/TYSP
+grandmaster/SM
+grantsmanship/S
+grapheme/M
+graphic/PS
+graphics/M
+grapnel/SM
+grasping/P
+grassers
+gratefully/U
+gratuitous/PY
+gravitas
+grazes/c
+grease's
+greathearted
+greed/2ZSzM
+greediness/S
+Greeley
+Greene/M
+greenhorn/MS
+greening/M
+Greenwich
+Greer/M
+Greig
+Grenadian/S
+Grenoble
+grew/cAe
+greybeard/M
+grill/GSD
+grimace/RMDSG
+Grimm
+grinner/M
+grip/rRdGMDS
+grisaille
+grizzly/TS
+groggy/TP
+Grosvenor
+Grumman
+grumpiness/S
+Gruyère
+g's
+guacamole/SM
+Guadalupe
+Guerre
+Guerrero
+guesstimate/GDS
+guest/DGMS
+Guggenheim
+guidance/MaS
+Guido
+guilelessness/S
+guitar/3MS
+gum/G2DZMS
+gumboil/SM
+gunfight/RMS
+gunk/MZS
+gunman/M
+gunny/MS
+gunrunner/MS
+gunship/S
+gushy/T
+gusted/E
+gutsy/PT
+gutta
+gutter/d
+guttersnipe/SM
+gymnosperm/SM
+gynaecological/MS
+gynaecology/S3wM
+gypping
+habeas
+habiliment/MS
+habitat/MS
+habited/IF
+habitualness/S
+habituate/NnSDG
+haemophilia/MS
+haemorrhoid/MS
+hafnium/M
+haft/MDGS
+Haili
+hailstorm/SM
+hajjes
+hale/SIDG
+half-baked
+half-breed/SM
+half-mast
+half-moon
+halfness
+half-timbered
+half-yearly
+hall-stand/S
+handbook/SM
+handrail/MS
+hands/Uc
+handshaker/M
+handsomely/U
+handspring/SM
+hangout/SM
+Hanover
+haploid/S
+happy/TUY
+harden/rdS
+hardiness/S
+hardness/S
+hard-on
+hard-pressed
+harebell/SM
+harem/MS
+Hargreaves
+harmlessness/S
+Harold/M
+harrow/MGDS
+Harvard
+harvestman/M
+Harwell
+Harwich
+Hattie
+hauler/c
+Hauser
+Havana/M
+haven't
+haw/GMDS
+Hawley
+Hayden/M
+hayer
+Haynes
+haystack/MS
+Hayward
+haywire
+head-hunt/DGSR
+headlight/MS
+headline/DSMG
+headphone/SM
+headrest/MS
+headroom/SM
+headstall/MS
+headwater/S
+heal/DGRS
+healed/U
+heartache/SM
+heartland/MS
+hearty/TSP
+heatproof
+heatwave
+heave/RSGZD
+heavy-duty
+Hebraism
+hectometre/SM
+heedful/P
+Hegelian
+Heidelberg
+heigh
+held
+Helen/SM
+helium/M
+he'll
+Hellenise/DGnS
+Hellenize/DGS
+Heller
+helm/mSGMD
+Helmholtz
+helter
+henceforth
+henry/M
+hep
+hepatitis/M
+herbalism
+herbicide/SM
+herbivore/SM
+Hercules
+heresy/SM
+heritability
+heritor/IM
+hermaphroditism
+Hermaphroditus
+hermitage/SM
+heroes
+heroic/S
+heroine/MS
+Herschel
+Hester/M
+heterosexuality/SM
+hewn
+hexagonal
+hey
+Hialeah
+hidden/U
+hideousness/S
+high-born
+highfalutin
+high-flyer/S
+high-handed/PY
+high-level
+highness/S
+hill/2MGYS
+hillwalker
+hilly/PT
+Hillyer
+Hilton
+hind/R
+Hindenburg
+Hindustan/M
+hinge/USGD
+Hippocratic
+hippodrome/SM
+hirsute/P
+hist
+histochemic
+hitherto
+hoary/TP
+Hobbs
+hoity-toity
+holdall/SM
+Holland/M
+hollow/PDTGSY
+Holman/M
+Holt
+homily/SM
+hominid/SM
+homology/SMw
+homotopy
+homunculus
+Honda/M
+honer/S
+honeybee/SM
+honorific
+honour/E7MRlDGS
+hooey/MS
+Hoosier
+hoppled
+Horace
+horribleness/S
+horrify/1SWGDk
+Horsham
+horsiest
+hortatory
+hose/M
+hospitable/YI
+hotel/mSM
+hound/GSMD
+houser
+housing's
+Howard
+Howell
+hoyden/dMS
+html
+hubbub/M
+hubris/MS
+Hudson
+huff/GMZDSz2
+hulling/M
+humanitarian/S
+humiliation/M
+hummus/S
+humourlessness/S
+Hun/S
+Huntingdon/M
+Huntingdonshire/M
+huntress/SM
+hurl/DYSGR
+hurly-burly
+hurrier
+husbandry/MS
+hush/DGS
+Huxley
+hydrated/AC
+hydrogen/nMN
+hydrogenating/C
+hydrometer/SM
+hydrotherapy/MS
+hygienic/U
+hypercellularity
+hypersensitive/P
+hypersensitivity/MS
+hyphenate/SGD
+hypnosis/M
+hypothalamic/Y
+hypothesis/d8rM9QS
+hypoxaemia
+Iberian/SM
+icebound
+icon/SWM
+iconoclast/MWS
+ictus/SM
+I'd
+idealism/SM
+idiosyncrasy/SM
+Igor/M
+illumination/M
+illusionary
+illusive/PY
+I'm
+imaginative/UY
+imaginativeness/U
+immanent/Y
+immediateness/S
+immense/YPT
+immersion/M
+immunoassay/M
+immutable/P
+impala/M
+impaler/M
+impassibility/SM
+impeached/U
+impeccability/SM
+impecuniousness/S
+imperialism/SM
+impermeable/Y
+implementation/SM
+imply/VuGNvnh
+imposing/Y
+impregnable/PY
+impressed/U
+impressive/U
+improvisational
+impulsive/P
+impunity/SM
+inbreed/SGJ
+incantation/M
+incantatory
+inclination/EM
+incongruence
+inconsolable/PY
+incontestability/MS
+incorruptible/SY
+increasable
+incubate/DNSGVn
+incubus/M
+incurious
+incurs/XN
+Ind.
+indebtedness/S
+indefinable/PS
+indemnify/NDnSG
+Indiana/M
+Indianapolis
+indigence/SM
+indignant/Y
+indignation/SM
+indirect/GP
+indiscriminate/PY
+indoctrinator/SM
+ineptitude/MS
+inevitable/YP
+inexact/P
+inexhaustible/YP
+inexpedience/M
+inexpressible/SP
+infallible
+infect/EDGAS
+infected/U
+infecter
+infectious/YP
+inferno/MS
+infirmary/SM
+infix/M
+influential/Y
+influenza/MS
+inform/aNGDS
+infra-red/M
+infringe/L
+Ingersoll
+ingest/DGbVS
+inhabitance
+inherent/Y
+inheritor/S
+inhibiting/U
+inhold/JG
+initialness
+initiated/U
+inkiness/S
+inky/TP
+inmate/SM
+innocent/TYS
+innocuous/PY
+innuendo/DGMS
+innuendoes
+inoperative
+inquest
+inquire/kRDGZ
+inquisition/SoM
+insatiable/PY
+insecticidal
+inside/R
+insight/6j
+insinuator/SM
+insistent/Y
+insomuch
+inspector/SM
+inst/g
+instalment/MS
+instead
+instep
+insulate/DSnNG
+insurmountable/Y
+intangible/M
+intelligencer's
+intelligentsia/MS
+intelligible/UY
+intemperate/P
+intensification/M
+inter/ELDG
+interaxial
+interbred
+intercede/GSD
+intercensal
+intercommunicate/DGnNS
+interconnect/GDiS
+interferometry/M
+interleukin/S
+interlock/GSD
+interlocker/M
+interlude/MS
+intermediary/MS
+intermediation/M
+inter-modal
+intermodulate/SD
+internecine
+internee/SM
+internist's
+interoffice
+interpenetrates
+interpolation/M
+interpretative/Y
+interspecies
+interventionist/S
+interview's/K
+interweave/SG
+intestate/S
+intra
+intraline
+intramuscular/Y
+intransigence/MS
+intrauterine
+intrinsic/YS
+inundation/M
+inventive/P
+inventory/MDSG
+invests/A
+inveteracy/SM
+invidious/YP
+invigoration/MA
+inviter/M
+invulnerability/M
+ion/s9MWqQ8-S
+ipecac/SM
+ipso
+Ira
+Irene
+irk/DSG
+ironwork/MS
+irremediable/PY
+irritate/BnSkNhVDG
+irrupt/DGVS
+Irving
+Isabel/M
+islet/MS
+isomer/MS
+isothermal
+Israelite/SM
+ISSN
+issuance/SM
+issuing/A
+iteration/M
+Ivan/M
+J
+jackpot/MS
+Jackson/MS
+Jacksonville
+jaded/P
+Jagger
+jaguar/MS
+jambalaya/SM
+jape/GSMD
+jar/MG6JSD
+jarring/Y
+Jayasuriya
+jerky/TP
+jerry/M
+jerry-built
+jess/M
+jet/MDGS
+jetsam/MS
+jet-setted
+jibe/S
+jitterbug/RGSDM
+Jo/M
+jobless/P
+jocundity/MS
+Jodie
+jog/RJDSG
+jointing/E
+jounce/SGD
+journalism/SM
+journalist/W
+Jove
+joy/pMDG6jS
+joyous/YP
+jubilee/SM
+judgement/o
+judgement-seat
+juggle/RySDG
+juiciness/S
+Juliana
+julienne/S
+jumpsuit/S
+Jupiter/M
+justifiably/U
+Kafka
+kaftan
+Kahn/M
+Kalamazoo
+Kannada
+Kanoa/M
+Kasprowicz
+kazoo/SM
+KDE
+Kenneth
+Kenny
+Kenosha
+kerning
+Kerr/MZ
+ketone/M
+ketosis/M
+Kewaskum
+keyboardist/S
+KGB
+Khabarovsk
+kickback/MS
+kiddie/S
+Kieffer/M
+kif
+kilogramme/S
+kindler/M
+kingbird/M
+king-size/D
+Kingstown
+Kingwood
+kinkiness/S
+Kiwanis
+kleptomaniac/SM
+knee-jerk
+knuckleduster/S
+Koch
+Kodak/M
+Kodiak
+kookiness/S
+Korea/M
+Kowloon
+Krebs
+Krugman
+kudos/M
+kurtosis/M
+kW
+kyle/SM
+Kyushu/M
+labelled/U
+lacteal
+lacuna/SM
+lad/MRDJSG
+ladle/GSMD
+laggard/PYMS
+lagniappe's
+Lagos/M
+Lagrangian/M
+laid/Aacf
+lake/SM
+Lalo
+lam/GSD
+lambkin/SM
+lampoon/SDGM
+lancet/MS
+landward/S
+Lang/M
+languisher/M
+lank/T2PYZ
+lankiness/S
+lanolin/SM
+lapdog/S
+lappet/MS
+lard/FMS
+lardy/T
+large/TPY
+Larine
+Larsen
+larynx/M
+lassitude/MS
+Laszlo/M
+late/PTY
+latex/SM
+LaTeX/M
+lather/d
+latherer/M
+latitudinarian/S
+latitudinary
+Latrobe/M
+latte/S
+lauder/M
+launching/S
+lavage/SM
+lawbreaker/SM
+lawfulness/MS
+Lawson
+lawyer/YMdS
+laxness/S
+laymen/M
+laziness/S
+le/Gz3
+league/FMDGS
+leapt
+leathern
+Leda
+Lee
+leftward/S
+legacy/SM
+legality/ISM
+legate's/C
+Legendre/M
+legible/IY
+legislative/S
+legroom/SM
+Leighton
+leisureliness/S
+leitmotif/MS
+Leland/M
+lemme/JG
+lemur/SM
+Len/M
+lengthiness/S
+lengthwise
+leniency/SM
+Leno
+Lenore/M
+lens/SDGM
+lenser/S
+Leominster
+leopard/SM
+leopardess/MS
+lessor/MS
+letterpress/MS
+level-headedness/S
+Lewis/M
+Lexington
+liability/SAM
+libation/M
+Liberace
+liberality/SIM
+liberalization/M
+liberalness/SM
+liberator/MCS
+library/SM
+Libreville/M
+licence/SM
+licensable
+licensor/M
+lichenology
+Lichfield
+licit/IY
+lickerish
+life/RpM
+life-and-death
+lifespan/S
+ligand/MS
+lightening/M
+light-headed
+lightship/SM
+Lilliput
+limber/dUS
+limeade/MS
+limper/M
+lineage/MS
+linefeed
+link-up/S
+Linn/M
+Linton
+lion/QSM-s
+lipase/M
+Lipschitz/M
+liq
+liquidity/SM
+lisp/RMSGD
+Lister/SM
+listlessness/S
+litany/MS
+lithography/MS
+Lithuanian
+litigant/MS
+liverwort/MS
+living/eA
+Livingston
+Livonia
+Ljubljana/M
+llama/MS
+LLB
+loaded/AKcU
+lob/MRDGSZ
+lobular/Y
+lobularity
+locative
+locator/SM
+lock/RSDGM7
+locked/UA
+locksmith/SMG
+locomotion/MS
+locomotive/YMS
+lodged/E
+lofter/M
+loganberry/MS
+logic/IMSY
+loin/SM
+Lois
+Londonderry/M
+long-awaited
+Longbridge
+long-faced
+longhorn/SM
+long-sighted/Y
+long-standing
+longueur/SM
+long-waisted
+lookup/MS
+loosing/U
+lore/SM
+lorn
+lorry/MS
+losable
+loss/SpMZ
+lot/MS
+lotion/MS
+Louisville/M
+lout/MS
+low-born
+lower-case
+low-income
+lowlight/MS
+lowly/PT
+lubrication/M
+lucidity/MS
+Lucille
+lucky/TUY
+Ludmilla
+luger
+lugubrious/PY
+Luke/M
+Lumière/M
+lunchpack
+lunch-time
+lurcher/M
+luxuriant/Y
+Lyman/M
+Lyme
+lynching/M
+lyrical/P
+lyricist
+ma/FMS
+macabre/Y
+machine-readable
+macromolecule/SM
+macroscopic/Y
+made/AU
+Madrid/M
+Madsen/M
+madwoman/M
+Mae/M
+Mafioso/M
+Magdalene
+maggoty/T
+magnification/SM
+magpie/SM
+Maguire
+mahatma/MS
+Mahayana
+maidservant/MS
+mail/RS7GDMJ
+mailshot
+Maine
+mainframe/SM
+mainland/RMS
+mainmast/MS
+mains/M
+mainspring/MS
+majorette/MS
+makeshift
+Malabo/M
+malachite/SM
+malaria/SM
+malarkey/SM
+Malay
+Malayan/MS
+Male
+malignant/Y
+mallet/MS
+managed/U
+manager/oSM
+managerial
+managership/M
+Manama/M
+Manchester/M
+mandarin/SM
+mango/MS
+mangold-wurzel/S
+mangy/T
+manhunt/SM
+manifolder/M
+manipulatable
+manliness/S
+man-sized
+mantelshelf
+Manton
+mantra/SM
+manumit/XNSGD
+Manx
+mappable
+march/DRSG
+margarine/SM
+Marge/y
+Marianne/M
+Marina
+Marjorie
+marked/AU
+markka/M
+marl/SGDM
+Marlborough/M
+Marline/M
+marmalade/SM
+marquetry/MS
+marriageability/SM
+marriages/A
+married/S
+Marshall/M
+Martha
+martinique
+Martinson
+Marty
+marvel/GDS
+marvellous/Y
+Marxism
+Maryland/M
+mascara/DGSM
+mash/RJSGDM
+masquerade/MRSDG
+masseuse/SM
+Massey/M
+mastectomy/SM
+masterliness
+matchbook's
+Mathematica
+mathematician/MS
+Mathias
+Mathieu
+matriarch/MZ
+matriculate/NSGDn
+Matsumoto/M
+Mattel
+maturate/SGD
+matzo/MS
+Maureen
+Mauricio
+Mauritanian/S
+Maxwell/M
+Mayfair/M
+mayhap
+mayoralty/MS
+mayorship/M
+Mayotte/M
+maypole/MS
+Mazda
+mazer
+mazy/T
+Mbabane/M
+McCarty/M
+McCormick/M
+McIntosh/M
+McLaren/M
+McLaughlin/M
+McMillan/M
+McPherson/M
+mdse
+measurer/M
+meatball/SM
+meatloaves
+mechanizer/M
+mediated
+mediator/SM
+medic/NYVnMS
+medical/S
+medicine/MoS
+mediocre
+Medway/M
+meeting/M
+Meg/M
+mega
+megabuck/S
+megabyte/S
+megalomania/MS
+megalomaniac/SM
+mélange
+Melanie
+membranous
+memoir/SM
+mendacious/PY
+menial/YS
+mensurable/F
+mentholated
+meow/DSG
+Mercedes-Benz/M
+merchantmen/M
+meromorphic
+merrymaker/SM
+Merthyr
+meshes
+mesmerizing
+messianic
+mestizo/SM
+metabolic/Y
+metacentre/W
+metallic/S
+metallurgy/1MSwW
+metamorphic
+metaphysical
+metastases
+metatarsus/M
+metempsychosis/M
+metropolitan/S
+mgr
+micelles
+microbicide/M
+microeconomic/S
+microeconomics/M
+microfiche/M
+microfilm/GDMS
+micro-organism/SM
+microword/S
+mid-air/SM
+Middlesex
+midland
+midlander
+midlives
+midway
+midyear/SM
+MIG/S
+might/S2Zz
+mightiness/S
+Mignon
+Mikhail
+milepost/SM
+miler/M
+milestone/MS
+militarisation
+militate/SGD
+militia/mSM
+millenarianism/M
+milligram/S
+millilitre/S
+millivoltmeter/SM
+millstone/SM
+Millwall
+Milquetoast/S
+Milwaukee
+mincemeat/SM
+mind-numbing/Y
+mined/f
+mineral/Qq8-SM
+mineralisation/CS
+mineralogy/Mw3S
+miniature/GQ3S8M-qD
+minicam/MS
+ministerial
+minke
+minnesinger/MS
+minority/SM
+minstrelsy/SM
+misbrand
+miscall
+misclassified
+miscommunicate
+miscreant/SM
+misery/MS
+misgiving/SM
+misguided/P
+mishandle/G
+misnomer/SM
+misogamy/M3S
+misplace/L
+missal/MSE
+mistime/G
+mitosis/M
+mitt/SM
+mobility/SMI
+Mobutu
+mocha/SM
+mock-up/S
+mod/oS
+modal
+modality/SM
+moderation/MI
+modify/NnRSBGD
+Mohamed/M
+Mohammedanism
+Mojave
+molestation/M
+momentariness/S
+Monaco/M
+monastic/YS
+monetarism/S
+monetary/3Y
+money-changer/S
+Mongolian/S
+'mongst
+monitor/MSd
+monk/SM
+monkeyshine/S
+monogamousness
+monomaniacal
+monomial/MS
+Monongahela/M
+mononucleoses
+monopolist/W
+Monrovia/M
+monster/MS
+montage/SMDG
+moonbeam/MS
+moonlighting/M
+moonstruck
+Moore
+moose/M
+moralist/W1
+morally/I
+Moreen
+moribund/Y
+moroseness/S
+morph/SDJG
+Morpheus/M
+morphogenesis
+morrow/MS
+mortal/IYS
+mortar/dMS
+mortgagee/SM7
+mortifier/M
+mortify/GhnSND
+mortuary/SM
+mosaic/MS
+mote/SMV
+motes/C
+motherboard/MS
+mothers-in-law
+motocross/MS
+motorcycle/3GSM
+motorised/U
+mottle/SGD
+mottoes
+mouldboard/MS
+mountain/SM
+mournfulness/S
+mousiness/S
+movably/I
+moveable/PSY
+movement/SM
+MPs
+ms
+mucous
+muddlehead's
+mug/2JMRGZSD
+Muire/M
+mukluk's
+Mullen/M
+multicultural
+multilateralists
+multilevel/D
+multilingual
+multiplexor/SM
+multiversity/M
+mummification/M
+mummify/SNDGn
+mumps/M
+mundaneness
+municipality/SM
+Munroe/M
+murder/rdSM
+Murillo/M
+murmuring/S
+murmurous
+Muscat/M
+muscularity/SM
+mushiness/S
+musician/MSY
+musketeer/SM
+mutability/IMS
+muted/Y
+mutely
+muteness/S
+mutiny/DSGM
+myopia/SM
+mystery/SM
+mythologise/CSGD
+mythology/SQM31w
+n/NnxVvu
+nacho/S
+nacre/MS
+naffness
+naiveness
+naivete/Z
+Nakayama/M
+namely
+nark/SMZ
+narrowband
+nascences/A
+natch
+nationalism/SM
+nationally/4
+nationwide
+natl
+naught/z2MZ
+navigation/M
+naysayer/S
+NBA
+NBS
+NCO
+necessitous
+necessity/MS
+neckerchief/MS
+necropolis/MS
+nectarine/SM
+needless/Y
+needn't
+ne'er-do-wells
+negation/M
+neglect/6jSDG
+negotiability/MS
+negotiable/A
+negotiation/MA
+neither
+Nell/MY
+neoclassicism/MS
+Nepali/M
+nephritis/M
+Nero/M
+nervousness/S
+netherworld/S
+nett/SJ
+netter
+neutralization/M
+Nevada/M
+nevermore
+Newark/M
+newfangled
+Newnham
+newsagent/SM
+newscast/RSM
+news-gathering
+newsgroup/MS
+Newsweekly/M
+NFC
+NFL
+Nicholas
+Nicky/M
+Nicola/MS
+nicotine/SM
+Niger/M
+niggard/YMS
+niggardly/P
+nigh
+nightie/SM
+night-life/M
+nightshirt/MS
+nightstick/S
+Nikki/M
+Nikon/M
+nil/MGY
+nimbi
+nimbused
+Nimrod/MS
+ninety/HMS
+ninety-seven/H
+ninety-three/H
+ninety-two
+nitration/M
+nitrite/MS
+no/Q
+NOAA
+node/SM
+noes
+Nolan/M
+nominee/SM
+non-acid/S
+non-adhesive
+non-adjustable
+non-complying/S
+non-conservative
+non-constructive
+non-deductible
+non-deterministic/Y
+non-discrimination/S
+non-enforceable
+non-equivalent/S
+non-factual
+non-governmental
+non-granular
+non-interchangeable
+non-interference
+non-intervention/S
+non-ionic
+non-ionising
+non-judicial
+non-natural
+non-nuclear
+non-obligatory
+non-operative
+non-parametric
+non-payment/SM
+non-physical/Y
+non-prescription
+non-productive
+non-reciprocating
+non-recurring
+non-returnable/S
+nonsuch
+non-surgical
+non-taxable/S
+non-trunk
+non-user/SM
+non-violent/Y
+non-white/SM
+Norbert/M
+Nordic/S
+normalcy/SM
+normalise/CGASD
+Normandy/M
+Norris
+north-eastward/S
+Northrop/M
+Northumberland/M
+north-Westward/S
+nosh/SDMG
+nostril/SM
+noticeboard/S
+notion's
+Nova
+nubbin's
+nubby/T
+nugatory
+nuisance/MS
+null/S
+nullify/DRSnNG
+numberer/M
+numbering/e
+numbskull/M
+nurture/MRDSG
+nutate/GSD
+nylon/SM
+nympholepsy/M
+oafishness/S
+oakwood
+OAP
+oars/m5
+obdurate/YS
+obdurateness/S
+obligate/SNxyGnD
+oblige/EGDS
+observation/M
+observatory/MS
+obstetrics/M
+obstreperous/PY
+obstruct/GSvDuV
+obstructionism/SM
+obtain/SGD7
+obtrusiveness/SM
+obtuseness/S
+obviate/DnNSG
+occipital/Y
+occlusive/S
+occurrence/SM
+oceanic/4
+Oceanside/M
+octal/S
+October/SM
+odious/PY
+oenophile/S
+o'er
+oesophageal
+oesophagus/M
+Ofelia/M
+Offaly/M
+offensive/IYP
+offertory/MS
+officership/S
+officious/PY
+offprint/GMSD
+offshoot/MS
+oftener
+oftenest
+oiliness/S
+Okamoto/M
+Okinawa/M
+Oktoberfest
+Oldbury
+old-time/R
+old-world
+Oliver/M
+Olson/M
+omen/SMd
+omnidirectional
+on-board
+oneness/S
+one-piece
+one-third
+one-track
+one-way
+onlooker/SM
+onlooking
+onward/S
+ooh/DSG
+oops/S
+open-air
+opened/AU
+open-heart/D
+open-top
+openwork/SM
+operand/SM
+opine/GSD
+Oporto
+opossum/SM
+Oppenheimer/M
+opposite/YPS
+oppression/M
+optional/S
+opus/SM
+ordered/AU
+orderer
+ordinands
+ordinary/TSY
+ordination/SM
+ore/MySo
+O'Reilly
+organise/EnADGS
+organize/AnSEGDN
+organza/MS
+orgy/MS
+orient/ENSADnG
+oriental/SY
+orienteering/M
+origami/MS
+original/U
+Oriya/M
+Orleans
+ornament/nMDGNSo
+ornithology/3wSM
+Orpheus/M
+Orrin/M
+orthography/w1SMW
+osmosis/M
+osteoporosis/M
+Oswald/M
+OTC
+other/SPM
+OTOH
+out/MDSGJ
+outgrip
+outgrow
+outland
+outlandishness/S
+outlaw/DyG
+oval/MSP
+oven/SM
+over-abundance/SM
+over-abundant
+overbook/G
+overbuy
+overcloud
+over-delicate
+overeducate
+overload/G
+overnight/G
+overpressure
+over-sensitiveness/S
+oversize
+overtake
+overweening
+overwrite/G
+ovulate/GySD
+ovum/SM
+owl/MS
+owner/SM
+oxalic
+oxaloacetic
+oxbow/MS
+Oxfordshire
+oxidation/M
+Paarl
+Pablo/M
+pacesetter/SM
+pachyderm/MS
+pacific/4
+pacification/M
+packaging/M
+paddy/MS
+paeony/M
+paganism/SM
+painterliness
+painting/M
+pair/ADMSG
+paired/UI
+pal/MS
+Palaeocene
+palate/SgoM
+Palestine/M
+pallor/MS
+Palmyra/M
+palpitation/M
+panache/MS
+pandemic/S
+pang/SM
+parabola/MWS
+paradigmatic
+paraffin/SM
+paralinguistic
+Paramaribo/M
+paramedical/S
+paramount
+paraphraser/M
+paraquat/S
+parasite/MwWS1
+parasitic/S
+pardon/rgl7dS
+pardonableness/M
+parentage/MS
+parfait/SM
+Paris/M
+parkland/M
+parlourmaid
+parquetry/MS
+parson/MS
+partial/IY
+particularity/SM
+partitive/S
+part-timer/S
+parturition/MS
+partway
+party/DMSG
+pascal/MS
+passbook/MS
+passive/IY
+passkey/SM
+passover
+pastiness/S
+pastis
+pastor/dMS
+pasturage/SM
+patchable
+patellae
+patency
+paternalist/W
+paternity/MS
+patient/eMS
+patisserie
+patriotic/U
+patron/98Q-YMqsS
+patronise/k
+patroon/MS
+patten/MS
+paunch/S2GMZD
+pauperism/MS
+paved/U
+paver/M
+pawner/M
+pcm
+PE
+peacetime/SM
+pearler/M
+peasanthood
+pebbling/M
+pecan/MS
+pectoral/S
+pedagogics/M
+pedestrian/Q-8qMS
+peduncle/MS
+pee/RGS
+peekaboo/SM
+peers/F
+pell-mell
+pen/oGDMS
+peninsula/SM
+penknife/M
+penknives
+pennon/SM
+pennyworth/M
+pensiveness/S
+penultimate/SY
+Penzance/M
+people/DMGS
+peopled/U
+peptide/MS
+perchance
+percolate/NnDSG
+perestroika/S
+perfectionism/SM
+perform/eDGS
+performance/MS
+performer/MS
+perfused
+periastron
+perihelia
+peril/MSDG
+period/Mw1WS
+periodontal/Y
+periphrasis/M
+periphrastic
+perish/7RGDkS
+peris