diff --git a/html/securimage/AHGBold.ttf b/html/securimage/AHGBold.ttf
new file mode 100644
index 000000000..764b23d76
Binary files /dev/null and b/html/securimage/AHGBold.ttf differ
diff --git a/html/securimage/LICENSE.txt b/html/securimage/LICENSE.txt
new file mode 100644
index 000000000..9a749e685
--- /dev/null
+++ b/html/securimage/LICENSE.txt
@@ -0,0 +1,458 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
diff --git a/html/securimage/README.FONT.txt b/html/securimage/README.FONT.txt
new file mode 100644
index 000000000..d4770de5a
--- /dev/null
+++ b/html/securimage/README.FONT.txt
@@ -0,0 +1,12 @@
+AHGBold.ttf is used by Securimage under the following license:
+
+Alte Haas Grotesk is a typeface that look like an helvetica printed in an old Muller-Brockmann Book.
+
+These fonts are freeware and can be distributed as long as they are
+together with this text file.
+
+I would appreciate very much to see what you have done with it anyway.
+
+yann le coroller
+www.yannlecoroller.com
+yann@lecoroller.com
\ No newline at end of file
diff --git a/html/securimage/README.txt b/html/securimage/README.txt
new file mode 100644
index 000000000..b608018d4
--- /dev/null
+++ b/html/securimage/README.txt
@@ -0,0 +1,88 @@
+NAME:
+
+ Securimage - A PHP class for creating and managing form CAPTCHA images
+
+VERSION: 2.0 BETA
+
+AUTHOR:
+
+ Drew Phillips
+
+DOWNLOAD:
+
+ The latest version can always be
+ found at http://www.phpcaptcha.org
+
+DOCUMENTATION:
+
+ Online documentation of the class, methods, and variables can
+ be found at http://www.phpcaptcha.org/Securimage_Docs/
+
+REQUIREMENTS:
+ PHP 4.3.0
+ GD 2.0
+ FreeType (recommended, required for TTF support)
+
+SYNOPSIS:
+
+ require_once 'securimage.php';
+
+ $image = new Securimage();
+
+ $image->show();
+
+ // Code Validation
+
+ $image = new Securimage();
+ if ($image->check($_POST['code']) == true) {
+ echo "Correct!";
+ } else {
+ echo "Sorry, wrong code.";
+ }
+
+DESCRIPTION:
+
+ What is Securimage?
+
+ Securimage is a PHP class that is used to generate and validate CAPTCHA images.
+ The classes uses an existing PHP session or creates its own if none is found to store the
+ CAPTCHA code. Variables within the class are used to control the style and display of the image.
+ The class supports TTF fonts and effects for strengthening the security of the image.
+ If TTF support is not available, GD fonts can be used as well, but certain options such as
+ transparent text and angled letters cannot be used.
+
+
+COPYRIGHT:
+ Copyright (c) 2009 Drew Phillips. All rights reserved.
+ This software is released under the GNU Lesser General Public License.
+
+ -----------------------------------------------------------------------------
+ Flash code created for Securimage by Douglas Walsh (www.douglaswalsh.net)
+ Many thanks for releasing this to the project!
+
+ ------------------------------------------------------------------------------
+ Portions of Securimage contain code from Han-Kwang Nienhuys' PHP captcha
+
+ Han-Kwang Nienhuys' PHP captcha
+ Copyright June 2007
+
+ This copyright message and attribution must be preserved upon
+ modification. Redistribution under other licenses is expressly allowed.
+ Other licenses include GPL 2 or higher, BSD, and non-free licenses.
+ The original, unrestricted version can be obtained from
+ http://www.lagom.nl/linux/hkcaptcha/
+
+ -------------------------------------------------------------------------------
+ AHGBold.ttf (AlteHaasGroteskBold.ttf) font was created by Yann Le Coroller and is distributed as freeware
+
+ Alte Haas Grotesk is a typeface that look like an helvetica printed in an old Muller-Brockmann Book.
+
+ These fonts are freeware and can be distributed as long as they are
+ together with this text file.
+
+ I would appreciate very much to see what you have done with it anyway.
+
+ yann le coroller
+ www.yannlecoroller.com
+ yann@lecoroller.com
+
diff --git a/html/securimage/backgrounds/bg3.jpg b/html/securimage/backgrounds/bg3.jpg
new file mode 100644
index 000000000..a2d62d632
Binary files /dev/null and b/html/securimage/backgrounds/bg3.jpg differ
diff --git a/html/securimage/backgrounds/bg4.jpg b/html/securimage/backgrounds/bg4.jpg
new file mode 100644
index 000000000..37a22f885
Binary files /dev/null and b/html/securimage/backgrounds/bg4.jpg differ
diff --git a/html/securimage/backgrounds/bg5.jpg b/html/securimage/backgrounds/bg5.jpg
new file mode 100644
index 000000000..0a04181bf
Binary files /dev/null and b/html/securimage/backgrounds/bg5.jpg differ
diff --git a/html/securimage/backgrounds/bg6.png b/html/securimage/backgrounds/bg6.png
new file mode 100644
index 000000000..22f9d67fc
Binary files /dev/null and b/html/securimage/backgrounds/bg6.png differ
diff --git a/html/securimage/backgrounds/bg7.jpg b/html/securimage/backgrounds/bg7.jpg
new file mode 100644
index 000000000..f7535e2e5
Binary files /dev/null and b/html/securimage/backgrounds/bg7.jpg differ
diff --git a/html/securimage/database/.htaccess b/html/securimage/database/.htaccess
new file mode 100644
index 000000000..8d2f25636
--- /dev/null
+++ b/html/securimage/database/.htaccess
@@ -0,0 +1 @@
+deny from all
diff --git a/html/securimage/database/index.html b/html/securimage/database/index.html
new file mode 100644
index 000000000..8d1c8b69c
--- /dev/null
+++ b/html/securimage/database/index.html
@@ -0,0 +1 @@
+
diff --git a/html/securimage/database/securimage.sqlite b/html/securimage/database/securimage.sqlite
new file mode 100644
index 000000000..10e233dde
Binary files /dev/null and b/html/securimage/database/securimage.sqlite differ
diff --git a/html/securimage/example_form.php b/html/securimage/example_form.php
new file mode 100644
index 000000000..952a24b4e
--- /dev/null
+++ b/html/securimage/example_form.php
@@ -0,0 +1,71 @@
+
+ * File: securimage.php
+ * URL: www.phpcaptcha.org
+ */
+
+
+session_start(); // Start the session where the code will be stored.
+
+?>
+
+
+ Securimage Test Form
+
+
+
+
+
+
+
+check($_POST['code']);
+
+ if($valid == true) {
+ echo "Thanks, you entered the correct code.
Click here to go back.";
+ } else {
+ echo "Sorry, the code you entered was invalid. Go back to try again.";
+ }
+}
+
+?>
+
+
+
diff --git a/html/securimage/gdfonts/automatic.gdf b/html/securimage/gdfonts/automatic.gdf
new file mode 100644
index 000000000..3eee7068f
Binary files /dev/null and b/html/securimage/gdfonts/automatic.gdf differ
diff --git a/html/securimage/images/audio_icon.gif b/html/securimage/images/audio_icon.gif
new file mode 100644
index 000000000..beafd5182
Binary files /dev/null and b/html/securimage/images/audio_icon.gif differ
diff --git a/html/securimage/images/refresh.gif b/html/securimage/images/refresh.gif
new file mode 100644
index 000000000..a10b24717
Binary files /dev/null and b/html/securimage/images/refresh.gif differ
diff --git a/html/securimage/securimage.php b/html/securimage/securimage.php
new file mode 100644
index 000000000..ebabab0fe
--- /dev/null
+++ b/html/securimage/securimage.php
@@ -0,0 +1,1584 @@
+
+ * File: securimage.php
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Any modifications to the library should be indicated clearly in the source code
+ * to inform users that the changes are not a part of the original software.
+ *
+ * If you found this script useful, please take a quick moment to rate it.
+ * http://www.hotscripts.com/rate/49400.html Thanks.
+ *
+ * @link http://www.phpcaptcha.org Securimage PHP CAPTCHA
+ * @link http://www.phpcaptcha.org/latest.zip Download Latest Version
+ * @link http://www.phpcaptcha.org/Securimage_Docs/ Online Documentation
+ * @copyright 2009 Drew Phillips
+ * @author Drew Phillips
+ * @version 2.0.1 BETA (December 6th, 2009)
+ * @package Securimage
+ *
+ */
+
+/**
+ ChangeLog
+
+ 2.0.1
+ - Add support for browsers with cookies disabled (requires php5, sqlite) maps users to md5 hashed ip addresses and md5 hashed codes for security
+ - Add fallback to gd fonts if ttf support is not enabled or font file not found (Mike Challis http://www.642weather.com/weather/scripts.php)
+ - Check for previous definition of image type constants (Mike Challis)
+ - Fix mime type settings for audio output
+ - Fixed color allocation issues with multiple colors and background images, consolidate allocation to one function
+ - Ability to let codes expire after a given length of time
+ - Allow HTML color codes to be passed to Securimage_Color (suggested by Mike Challis)
+
+ 2.0.0
+ - Add mathematical distortion to characters (using code from HKCaptcha)
+ - Improved session support
+ - Added Securimage_Color class for easier color definitions
+ - Add distortion to audio output to prevent binary comparison attack (proposed by Sven "SavageTiger" Hagemann [insecurity.nl])
+ - Flash button to stream mp3 audio (Douglas Walsh www.douglaswalsh.net)
+ - Audio output is mp3 format by default
+ - Change font to AlteHaasGrotesk by yann le coroller
+ - Some code cleanup
+
+ 1.0.4 (unreleased)
+ - Ability to output audible codes in mp3 format to stream from flash
+
+ 1.0.3.1
+ - Error reading from wordlist in some cases caused words to be cut off 1 letter short
+
+ 1.0.3
+ - Removed shadow_text from code which could cause an undefined property error due to removal from previous version
+
+ 1.0.2
+ - Audible CAPTCHA Code wav files
+ - Create codes from a word list instead of random strings
+
+ 1.0
+ - Added the ability to use a selected character set, rather than a-z0-9 only.
+ - Added the multi-color text option to use different colors for each letter.
+ - Switched to automatic session handling instead of using files for code storage
+ - Added GD Font support if ttf support is not available. Can use internal GD fonts or load new ones.
+ - Added the ability to set line thickness
+ - Added option for drawing arced lines over letters
+ - Added ability to choose image type for output
+
+ */
+
+/**
+ * Output images in JPEG format
+ */
+if (!defined('SI_IMAGE_JPEG'))
+ define('SI_IMAGE_JPEG', 1);
+/**
+ * Output images in PNG format
+ */
+if (!defined('SI_IMAGE_PNG'))
+ define('SI_IMAGE_PNG', 2);
+/**
+ * Output images in GIF format (not recommended)
+ * Must have GD >= 2.0.28!
+ */
+if (!defined('SI_IMAGE_GIF'))
+ define('SI_IMAGE_GIF', 3);
+
+/**
+ * Securimage CAPTCHA Class.
+ *
+ * @package Securimage
+ * @subpackage classes
+ *
+ */
+class Securimage {
+
+ /**
+ * The desired width of the CAPTCHA image.
+ *
+ * @var int
+ */
+ var $image_width;
+
+ /**
+ * The desired width of the CAPTCHA image.
+ *
+ * @var int
+ */
+ var $image_height;
+
+ /**
+ * The image format for output.
+ * Valid options: SI_IMAGE_PNG, SI_IMAGE_JPG, SI_IMAGE_GIF
+ *
+ * @var int
+ */
+ var $image_type;
+
+ /**
+ * The length of the code to generate.
+ *
+ * @var int
+ */
+ var $code_length;
+
+ /**
+ * The character set for individual characters in the image.
+ * Letters are converted to uppercase.
+ * The font must support the letters or there may be problematic substitutions.
+ *
+ * @var string
+ */
+ var $charset;
+
+ /**
+ * Create codes using this word list
+ *
+ * @var string The path to the word list to use for creating CAPTCHA codes
+ */
+ var $wordlist_file;
+
+ /**
+ * Use wordlist of not
+ *
+ * @var bool true to use wordlist file, false to use random code
+ */
+ var $use_wordlist = false;
+
+ /**
+ * Note: Use of GD fonts is not recommended as many distortion features are not available
+ * The GD font to use.
+ * Internal gd fonts can be loaded by their number.
+ * Alternatively, a file path can be given and the font will be loaded from file.
+ *
+ * @var mixed
+ */
+ var $gd_font_file;
+
+ /**
+ * The approximate size of the font in pixels.
+ * This does not control the size of the font because that is determined by the GD font itself.
+ * This is used to aid the calculations of positioning used by this class.
+ *
+ * @var int
+ */
+ var $gd_font_size;
+
+ /**
+ * Use a gd font instead of TTF
+ *
+ * @var bool true for gd font, false for TTF
+ */
+ var $use_gd_font;
+
+ // Note: These font options below do not apply if you set $use_gd_font to true with the exception of $text_color
+
+ /**
+ * The path to the TTF font file to load.
+ *
+ * @var string
+ */
+ var $ttf_file;
+
+ /**
+ * How much to distort image, higher = more distortion.
+ * Distortion is only available when using TTF fonts.
+ *
+ * @var float
+ */
+ var $perturbation;
+
+ /**
+ * The minimum angle in degrees, with 0 degrees being left-to-right reading text.
+ * Higher values represent a counter-clockwise rotation.
+ * For example, a value of 90 would result in bottom-to-top reading text.
+ * This value along with maximum angle distance do not need to be very high with perturbation
+ *
+ * @var int
+ */
+ var $text_angle_minimum;
+
+ /**
+ * The minimum angle in degrees, with 0 degrees being left-to-right reading text.
+ * Higher values represent a counter-clockwise rotation.
+ * For example, a value of 90 would result in bottom-to-top reading text.
+ *
+ * @var int
+ */
+ var $text_angle_maximum;
+
+ /**
+ * The X-Position on the image where letter drawing will begin.
+ * This value is in pixels from the left side of the image.
+ *
+ * @var int
+ * @deprecated 2.0
+ */
+ var $text_x_start;
+
+ /**
+ * The background color for the image as a Securimage_Color.
+ *
+ * @var Securimage_Color
+ */
+ var $image_bg_color;
+
+ /**
+ * Scan this directory for gif, jpg, and png files to use as background images.
+ * A random image file will be picked each time.
+ * Change from null to the full path to your directory.
+ * i.e. var $background_directory = $_SERVER['DOCUMENT_ROOT'] . '/securimage/backgrounds';
+ * Make sure not to pass a background image to the show function, otherwise this directive is ignored.
+ *
+ * @var string
+ */
+ var $background_directory = null; //'./backgrounds';
+
+ /**
+ * The text color to use for drawing characters as a Securimage_Color.
+ * This value is ignored if $use_multi_text is set to true.
+ * Make sure this contrasts well with the background color or image.
+ *
+ * @see Securimage::$use_multi_text
+ * @var Securimage_Color
+ */
+ var $text_color;
+
+ /**
+ * Set to true to use multiple colors for each character.
+ *
+ * @see Securimage::$multi_text_color
+ * @var boolean
+ */
+ var $use_multi_text;
+
+ /**
+ * Array of Securimage_Colors which will be randomly selected for each letter.
+ *
+ * @var array
+ */
+ var $multi_text_color;
+
+ /**
+ * Set to true to make the characters appear transparent.
+ *
+ * @see Securimage::$text_transparency_percentage
+ * @var boolean
+ */
+ var $use_transparent_text;
+
+ /**
+ * The percentage of transparency, 0 to 100.
+ * A value of 0 is completely opaque, 100 is completely transparent (invisble)
+ *
+ * @see Securimage::$use_transparent_text
+ * @var int
+ */
+ var $text_transparency_percentage;
+
+
+ // Line options
+ /**
+ * Draw vertical and horizontal lines on the image.
+ *
+ * @see Securimage::$line_color
+ * @see Securimage::$draw_lines_over_text
+ * @var boolean
+ */
+ var $num_lines;
+
+ /**
+ * Color of lines drawn over text
+ *
+ * @var string
+ */
+ var $line_color;
+
+ /**
+ * Draw the lines over the text.
+ * If fales lines will be drawn before putting the text on the image.
+ *
+ * @var boolean
+ */
+ var $draw_lines_over_text;
+
+ /**
+ * Text to write at the bottom corner of captcha image
+ *
+ * @since 2.0
+ * @var string Signature text
+ */
+ var $image_signature;
+
+ /**
+ * Color to use for writing signature text
+ *
+ * @since 2.0
+ * @var Securimage_Color
+ */
+ var $signature_color;
+
+ /**
+ * Full path to the WAV files to use to make the audio files, include trailing /.
+ * Name Files [A-Z0-9].wav
+ *
+ * @since 1.0.1
+ * @var string
+ */
+ var $audio_path;
+
+ /**
+ * Type of audio file to generate (mp3 or wav)
+ *
+ * @var string
+ */
+ var $audio_format;
+
+ /**
+ * The session name to use if not the default. Blank for none
+ *
+ * @see http://php.net/session_name
+ * @since 2.0
+ * @var string
+ */
+ var $session_name = '';
+
+ /**
+ * The amount of time in seconds that a code remains valid.
+ * Any code older than this number will be considered invalid even if entered correctly.
+ * Any non-numeric or value less than 1 disables this functionality.
+ *
+ * @var int
+ */
+ var $expiry_time;
+
+ /**
+ * Path to the file to use for storing codes for users.
+ * THIS FILE MUST ABSOLUTELY NOT BE ACCESSIBLE FROM A WEB BROWSER!!
+ * Put this file in a directory below the web root or one that is restricted (i.e. an apache .htaccess file with deny from all)
+ * If you cannot meet those requirements your forms may not be completely protected.
+ * You could obscure the database file name but this is also not recommended.
+ *
+ * @var string
+ */
+ var $sqlite_database;
+
+ /**
+ * Use an SQLite database for storing codes as a backup to sessions.
+ * Note: Sessions will still be used
+ */
+ var $use_sqlite_db;
+
+
+ //END USER CONFIGURATION
+ //There should be no need to edit below unless you really know what you are doing.
+
+ /**
+ * The gd image resource.
+ *
+ * @access private
+ * @var resource
+ */
+ var $im;
+
+ /**
+ * Temporary image for rendering
+ *
+ * @access private
+ * @var resource
+ */
+ var $tmpimg;
+
+ /**
+ * Internal scale factor for anti-alias @hkcaptcha
+ *
+ * @access private
+ * @since 2.0
+ * @var int
+ */
+ var $iscale; // internal scale factor for anti-alias @hkcaptcha
+
+ /**
+ * The background image resource
+ *
+ * @access private
+ * @var resource
+ */
+ var $bgimg;
+
+ /**
+ * The code generated by the script
+ *
+ * @access private
+ * @var string
+ */
+ var $code;
+
+ /**
+ * The code that was entered by the user
+ *
+ * @access private
+ * @var string
+ */
+ var $code_entered;
+
+ /**
+ * Whether or not the correct code was entered
+ *
+ * @access private
+ * @var boolean
+ */
+ var $correct_code;
+
+ /**
+ * Handle to SQLite database
+ *
+ * @access private
+ * @var resource
+ */
+ var $sqlite_handle;
+
+ /**
+ * Color resource for image line color
+ *
+ * @access private
+ * @var int
+ */
+ var $gdlinecolor;
+
+ /**
+ * Array of colors for multi colored codes
+ *
+ * @access private
+ * @var array
+ */
+ var $gdmulticolor;
+
+ /**
+ * Color resource for image font color
+ *
+ * @access private
+ * @var int
+ */
+ var $gdtextcolor;
+
+ /**
+ * Color resource for image signature color
+ *
+ * @access private
+ * @var int
+ */
+ var $gdsignaturecolor;
+
+ /**
+ * Color resource for image background color
+ *
+ * @access private
+ * @var int
+ */
+ var $gdbgcolor;
+
+
+ /**
+ * Class constructor.
+ * Because the class uses sessions, this will attempt to start a session if there is no previous one.
+ * If you do not start a session before calling the class, the constructor must be called before any
+ * output is sent to the browser.
+ *
+ *
+ * $securimage = new Securimage();
+ *
+ *
+ */
+ function Securimage()
+ {
+ // Initialize session or attach to existing
+ if ( session_id() == '' ) { // no session has been started yet, which is needed for validation
+ if (trim($this->session_name) != '') {
+ session_name($this->session_name); // set session name if provided
+ }
+ session_start();
+ }
+
+ // Set Default Values
+ $this->image_width = 230;
+ $this->image_height = 80;
+ $this->image_type = SI_IMAGE_PNG;
+
+ $this->code_length = 6;
+ $this->charset = 'ABCDEFGHKLMNPRSTUVWYZabcdefghklmnprstuvwyz23456789';
+ $this->wordlist_file = './words/words.txt';
+ $this->use_wordlist = false;
+
+ $this->gd_font_file = 'gdfonts/automatic.gdf';
+ $this->use_gd_font = false;
+ $this->gd_font_size = 24;
+ $this->text_x_start = 15;
+
+ $this->ttf_file = './AHGBold.ttf';
+
+ $this->perturbation = 0.75;
+ $this->iscale = 5;
+ $this->text_angle_minimum = 0;
+ $this->text_angle_maximum = 0;
+
+ $this->image_bg_color = new Securimage_Color(0xff, 0xff, 0xff);
+ $this->text_color = new Securimage_Color(0x3d, 0x3d, 0x3d);
+ $this->multi_text_color = array(new Securimage_Color(0x0, 0x20, 0xCC),
+ new Securimage_Color(0x0, 0x30, 0xEE),
+ new Securimage_color(0x0, 0x40, 0xCC),
+ new Securimage_Color(0x0, 0x50, 0xEE),
+ new Securimage_Color(0x0, 0x60, 0xCC));
+ $this->use_multi_text = false;
+
+ $this->use_transparent_text = false;
+ $this->text_transparency_percentage = 30;
+
+ $this->num_lines = 10;
+ $this->line_color = new Securimage_Color(0x3d, 0x3d, 0x3d);
+ $this->draw_lines_over_text = true;
+
+ $this->image_signature = '';
+ $this->signature_color = new Securimage_Color(0x20, 0x50, 0xCC);
+ $this->signature_font = './AHGBold.ttf';
+
+ $this->audio_path = './audio/';
+ $this->audio_format = 'mp3';
+ $this->session_name = '';
+ $this->expiry_time = 900;
+
+ $this->sqlite_database = 'database/securimage.sqlite';
+ $this->use_sqlite_db = false;
+
+ $this->sqlite_handle = false;
+ }
+
+ /**
+ * Generate a code and output the image to the browser.
+ *
+ *
+ * show('bg.jpg');
+ * ?>
+ *
+ *
+ * @param string $background_image The path to an image to use as the background for the CAPTCHA
+ */
+ function show($background_image = "")
+ {
+ if($background_image != "" && is_readable($background_image)) {
+ $this->bgimg = $background_image;
+ }
+
+ $this->doImage();
+ }
+
+ /**
+ * Validate the code entered by the user.
+ *
+ *
+ * $code = $_POST['code'];
+ * if ($securimage->check($code) == false) {
+ * die("Sorry, the code entered did not match.");
+ * } else {
+ * $valid = true;
+ * }
+ *
+ * @param string $code The code the user entered
+ * @return boolean true if the code was correct, false if not
+ */
+ function check($code)
+ {
+ $this->code_entered = $code;
+ $this->validate();
+ return $this->correct_code;
+ }
+
+ /**
+ * Output audio file with HTTP headers to browser
+ *
+ *
+ * $sound = new Securimage();
+ * $sound->audio_format = 'mp3';
+ * $sound->outputAudioFile();
+ *
+ *
+ * @since 2.0
+ */
+ function outputAudioFile()
+ {
+ if (strtolower($this->audio_format) == 'wav') {
+ header('Content-type: audio/x-wav');
+ $ext = 'wav';
+ } else {
+ header('Content-type: audio/mpeg'); // default to mp3
+ $ext = 'mp3';
+ }
+
+ header("Content-Disposition: attachment; filename=\"securimage_audio.{$ext}\"");
+ header('Cache-Control: no-store, no-cache, must-revalidate');
+ header('Expires: Sun, 1 Jan 2000 12:00:00 GMT');
+ header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT');
+
+ $audio = $this->getAudibleCode($ext);
+
+ header('Content-Length: ' . strlen($audio));
+
+ echo $audio;
+ exit;
+ }
+
+ /**
+ * Generate and output the image
+ *
+ * @access private
+ *
+ */
+ function doImage()
+ {
+ if ($this->use_gd_font == true) {
+ $this->iscale = 1;
+ }
+ if($this->use_transparent_text == true || $this->bgimg != "") {
+ $this->im = imagecreatetruecolor($this->image_width, $this->image_height);
+ $this->tmpimg = imagecreatetruecolor($this->image_width * $this->iscale, $this->image_height * $this->iscale);
+
+ } else { //no transparency
+ $this->im = imagecreate($this->image_width, $this->image_height);
+ $this->tmpimg = imagecreate($this->image_width * $this->iscale, $this->image_height * $this->iscale);
+ }
+
+ $this->allocateColors();
+ imagepalettecopy($this->tmpimg, $this->im);
+
+ $this->setBackground();
+
+ $this->createCode();
+
+ if (!$this->draw_lines_over_text && $this->num_lines > 0) $this->drawLines();
+
+ $this->drawWord();
+ if ($this->use_gd_font == false && is_readable($this->ttf_file)) $this->distortedCopy();
+
+ if ($this->draw_lines_over_text && $this->num_lines > 0) $this->drawLines();
+
+ if (trim($this->image_signature) != '') $this->addSignature();
+
+ $this->output();
+
+ }
+
+ /**
+ * Allocate all colors that will be used in the CAPTCHA image
+ *
+ * @since 2.0.1
+ * @access private
+ */
+ function allocateColors()
+ {
+ // allocate bg color first for imagecreate
+ $this->gdbgcolor = imagecolorallocate($this->im, $this->image_bg_color->r, $this->image_bg_color->g, $this->image_bg_color->b);
+
+ $alpha = intval($this->text_transparency_percentage / 100 * 127);
+
+ if ($this->use_transparent_text == true) {
+ $this->gdtextcolor = imagecolorallocatealpha($this->im, $this->text_color->r, $this->text_color->g, $this->text_color->b, $alpha);
+ $this->gdlinecolor = imagecolorallocatealpha($this->im, $this->line_color->r, $this->line_color->g, $this->line_color->b, $alpha);
+ } else {
+ $this->gdtextcolor = imagecolorallocate($this->im, $this->text_color->r, $this->text_color->g, $this->text_color->b);
+ $this->gdlinecolor = imagecolorallocate($this->im, $this->line_color->r, $this->line_color->g, $this->line_color->b);
+ }
+
+ $this->gdsignaturecolor = imagecolorallocate($this->im, $this->signature_color->r, $this->signature_color->g, $this->signature_color->b);
+
+ if ($this->use_multi_text == true) {
+ $this->gdmulticolor = array();
+
+ foreach($this->multi_text_color as $color) {
+ if ($this->use_transparent_text == true) {
+ $this->gdmulticolor[] = imagecolorallocatealpha($this->im, $color->r, $color->g, $color->b, $alpha);
+ } else {
+ $this->gdmulticolor[] = imagecolorallocate($this->im, $color->r, $color->g, $color->b);
+ }
+ }
+ }
+ }
+
+ /**
+ * Set the background of the CAPTCHA image
+ *
+ * @access private
+ *
+ */
+ function setBackground()
+ {
+ imagefilledrectangle($this->im, 0, 0, $this->image_width * $this->iscale, $this->image_height * $this->iscale, $this->gdbgcolor);
+ imagefilledrectangle($this->tmpimg, 0, 0, $this->image_width * $this->iscale, $this->image_height * $this->iscale, $this->gdbgcolor);
+
+ if ($this->bgimg == '') {
+ if ($this->background_directory != null && is_dir($this->background_directory) && is_readable($this->background_directory)) {
+ $img = $this->getBackgroundFromDirectory();
+ if ($img != false) {
+ $this->bgimg = $img;
+ }
+ }
+ }
+
+ $dat = @getimagesize($this->bgimg);
+ if($dat == false) {
+ return;
+ }
+
+ switch($dat[2]) {
+ case 1: $newim = @imagecreatefromgif($this->bgimg); break;
+ case 2: $newim = @imagecreatefromjpeg($this->bgimg); break;
+ case 3: $newim = @imagecreatefrompng($this->bgimg); break;
+ case 15: $newim = @imagecreatefromwbmp($this->bgimg); break;
+ case 16: $newim = @imagecreatefromxbm($this->bgimg); break;
+ default: return;
+ }
+
+ if(!$newim) return;
+
+ imagecopyresized($this->im, $newim, 0, 0, 0, 0, $this->image_width, $this->image_height, imagesx($newim), imagesy($newim));
+ }
+
+ /**
+ * Return the full path to a random gif, jpg, or png from the background directory.
+ *
+ * @access private
+ * @see Securimage::$background_directory
+ * @return mixed false if none found, string $path if found
+ */
+ function getBackgroundFromDirectory()
+ {
+ $images = array();
+
+ if ($dh = opendir($this->background_directory)) {
+ while (($file = readdir($dh)) !== false) {
+ if (preg_match('/(jpg|gif|png)$/i', $file)) $images[] = $file;
+ }
+
+ closedir($dh);
+
+ if (sizeof($images) > 0) {
+ return rtrim($this->background_directory, '/') . '/' . $images[rand(0, sizeof($images)-1)];
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Draw random curvy lines over the image
+ * Modified code from HKCaptcha
+ *
+ * @since 2.0
+ * @access private
+ *
+ */
+ function drawLines()
+ {
+ for ($line = 0; $line < $this->num_lines; ++$line) {
+ $x = $this->image_width * (1 + $line) / ($this->num_lines + 1);
+ $x += (0.5 - $this->frand()) * $this->image_width / $this->num_lines;
+ $y = rand($this->image_height * 0.1, $this->image_height * 0.9);
+
+ $theta = ($this->frand()-0.5) * M_PI * 0.7;
+ $w = $this->image_width;
+ $len = rand($w * 0.4, $w * 0.7);
+ $lwid = rand(0, 2);
+
+ $k = $this->frand() * 0.6 + 0.2;
+ $k = $k * $k * 0.5;
+ $phi = $this->frand() * 6.28;
+ $step = 0.5;
+ $dx = $step * cos($theta);
+ $dy = $step * sin($theta);
+ $n = $len / $step;
+ $amp = 1.5 * $this->frand() / ($k + 5.0 / $len);
+ $x0 = $x - 0.5 * $len * cos($theta);
+ $y0 = $y - 0.5 * $len * sin($theta);
+
+ $ldx = round(-$dy * $lwid);
+ $ldy = round($dx * $lwid);
+
+ for ($i = 0; $i < $n; ++$i) {
+ $x = $x0 + $i * $dx + $amp * $dy * sin($k * $i * $step + $phi);
+ $y = $y0 + $i * $dy - $amp * $dx * sin($k * $i * $step + $phi);
+ imagefilledrectangle($this->im, $x, $y, $x + $lwid, $y + $lwid, $this->gdlinecolor);
+ }
+ }
+ }
+
+ /**
+ * Draw the CAPTCHA code over the image
+ *
+ * @access private
+ *
+ */
+ function drawWord()
+ {
+ $width2 = $this->image_width * $this->iscale;
+ $height2 = $this->image_height * $this->iscale;
+
+ if ($this->use_gd_font == true || !is_readable($this->ttf_file)) {
+ if (!is_int($this->gd_font_file)) { //is a file name
+ $font = @imageloadfont($this->gd_font_file);
+ if ($font == false) {
+ trigger_error("Failed to load GD Font file {$this->gd_font_file} ", E_USER_WARNING);
+ return;
+ }
+ } else { //gd font identifier
+ $font = $this->gd_font_file;
+ }
+
+ imagestring($this->im, $font, $this->text_x_start, ($this->image_height / 2) - ($this->gd_font_size / 2), $this->code, $this->gdtextcolor);
+ } else { //ttf font
+ $font_size = $height2 * .35;
+ $bb = imagettfbbox($font_size, 0, $this->ttf_file, $this->code);
+ $tx = $bb[4] - $bb[0];
+ $ty = $bb[5] - $bb[1];
+ $x = floor($width2 / 2 - $tx / 2 - $bb[0]);
+ $y = round($height2 / 2 - $ty / 2 - $bb[1]);
+
+ $strlen = strlen($this->code);
+ if (!is_array($this->multi_text_color)) $this->use_multi_text = false;
+
+
+ if ($this->use_multi_text == false && $this->text_angle_minimum == 0 && $this->text_angle_maximum == 0) { // no angled or multi-color characters
+ imagettftext($this->tmpimg, $font_size, 0, $x, $y, $this->gdtextcolor, $this->ttf_file, $this->code);
+ } else {
+ for($i = 0; $i < $strlen; ++$i) {
+ $angle = rand($this->text_angle_minimum, $this->text_angle_maximum);
+ $y = rand($y - 5, $y + 5);
+ if ($this->use_multi_text == true) {
+ $font_color = $this->gdmulticolor[rand(0, sizeof($this->gdmulticolor) - 1)];
+ } else {
+ $font_color = $this->gdtextcolor;
+ }
+
+ $ch = $this->code{$i};
+
+ imagettftext($this->tmpimg, $font_size, $angle, $x, $y, $font_color, $this->ttf_file, $ch);
+
+ // estimate character widths to increment $x without creating spaces that are too large or too small
+ // these are best estimates to align text but may vary between fonts
+ // for optimal character widths, do not use multiple text colors or character angles and the complete string will be written by imagettftext
+ if (strpos('abcdeghknopqsuvxyz', $ch) !== false) {
+ $min_x = $font_size - ($this->iscale * 6);
+ $max_x = $font_size - ($this->iscale * 6);
+ } else if (strpos('ilI1', $ch) !== false) {
+ $min_x = $font_size / 5;
+ $max_x = $font_size / 3;
+ } else if (strpos('fjrt', $ch) !== false) {
+ $min_x = $font_size - ($this->iscale * 12);
+ $max_x = $font_size - ($this->iscale * 12);
+ } else if ($ch == 'wm') {
+ $min_x = $font_size;
+ $max_x = $font_size + ($this->iscale * 3);
+ } else { // numbers, capitals or unicode
+ $min_x = $font_size + ($this->iscale * 2);
+ $max_x = $font_size + ($this->iscale * 5);
+ }
+
+ $x += rand($min_x, $max_x);
+ } //for loop
+ } // angled or multi-color
+ } //else ttf font
+ //$this->im = $this->tmpimg;
+ //$this->output();
+ } //function
+
+ /**
+ * Warp text from temporary image onto final image.
+ * Modified for securimage
+ *
+ * @access private
+ * @since 2.0
+ * @author Han-Kwang Nienhuys modified
+ * @copyright Han-Kwang Neinhuys
+ *
+ */
+ function distortedCopy()
+ {
+ $numpoles = 3; // distortion factor
+
+ // make array of poles AKA attractor points
+ for ($i = 0; $i < $numpoles; ++$i) {
+ $px[$i] = rand($this->image_width * 0.3, $this->image_width * 0.7);
+ $py[$i] = rand($this->image_height * 0.3, $this->image_height * 0.7);
+ $rad[$i] = rand($this->image_width * 0.4, $this->image_width * 0.7);
+ $tmp = -$this->frand() * 0.15 - 0.15;
+ $amp[$i] = $this->perturbation * $tmp;
+ }
+
+ $bgCol = imagecolorat($this->tmpimg, 0, 0);
+ $width2 = $this->iscale * $this->image_width;
+ $height2 = $this->iscale * $this->image_height;
+
+ imagepalettecopy($this->im, $this->tmpimg); // copy palette to final image so text colors come across
+
+ // loop over $img pixels, take pixels from $tmpimg with distortion field
+ for ($ix = 0; $ix < $this->image_width; ++$ix) {
+ for ($iy = 0; $iy < $this->image_height; ++$iy) {
+ $x = $ix;
+ $y = $iy;
+
+ for ($i = 0; $i < $numpoles; ++$i) {
+ $dx = $ix - $px[$i];
+ $dy = $iy - $py[$i];
+ if ($dx == 0 && $dy == 0) continue;
+
+ $r = sqrt($dx * $dx + $dy * $dy);
+ if ($r > $rad[$i]) continue;
+
+ $rscale = $amp[$i] * sin(3.14 * $r / $rad[$i]);
+ $x += $dx * $rscale;
+ $y += $dy * $rscale;
+ }
+
+ $c = $bgCol;
+ $x *= $this->iscale;
+ $y *= $this->iscale;
+
+ if ($x >= 0 && $x < $width2 && $y >= 0 && $y < $height2) {
+ $c = imagecolorat($this->tmpimg, $x, $y);
+ }
+
+ if ($c != $bgCol) { // only copy pixels of letters to preserve any background image
+ imagesetpixel($this->im, $ix, $iy, $c);
+ }
+ }
+ }
+ }
+
+ /**
+ * Create a code and save to the session
+ *
+ * @access private
+ * @since 1.0.1
+ *
+ */
+ function createCode()
+ {
+ $this->code = false;
+
+ if ($this->use_wordlist && is_readable($this->wordlist_file)) {
+ $this->code = $this->readCodeFromFile();
+ }
+
+ if ($this->code == false) {
+ $this->code = $this->generateCode($this->code_length);
+ }
+
+ $this->saveData();
+ }
+
+ /**
+ * Generate a code
+ *
+ * @access private
+ * @param int $len The code length
+ * @return string
+ */
+ function generateCode($len)
+ {
+ $code = '';
+
+ for($i = 1, $cslen = strlen($this->charset); $i <= $len; ++$i) {
+ $code .= $this->charset{rand(0, $cslen - 1)};
+ }
+ return $code;
+ }
+
+ /**
+ * Reads a word list file to get a code
+ *
+ * @access private
+ * @since 1.0.2
+ * @return mixed false on failure, a word on success
+ */
+ function readCodeFromFile()
+ {
+ $fp = @fopen($this->wordlist_file, 'rb');
+ if (!$fp) return false;
+
+ $fsize = filesize($this->wordlist_file);
+ if ($fsize < 32) return false; // too small of a list to be effective
+
+ if ($fsize < 128) {
+ $max = $fsize; // still pretty small but changes the range of seeking
+ } else {
+ $max = 128;
+ }
+
+ fseek($fp, rand(0, $fsize - $max), SEEK_SET);
+ $data = fread($fp, 128); // read a random 128 bytes from file
+ fclose($fp);
+ $data = preg_replace("/\r?\n/", "\n", $data);
+
+ $start = strpos($data, "\n", rand(0, 100)) + 1; // random start position
+ $end = strpos($data, "\n", $start); // find end of word
+
+ return strtolower(substr($data, $start, $end - $start)); // return substring in 128 bytes
+ }
+
+ /**
+ * Output image to the browser
+ *
+ * @access private
+ *
+ */
+ function output()
+ {
+ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+ header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
+ header("Cache-Control: no-store, no-cache, must-revalidate");
+ header("Cache-Control: post-check=0, pre-check=0", false);
+ header("Pragma: no-cache");
+
+ switch($this->image_type)
+ {
+ case SI_IMAGE_JPEG:
+ header("Content-Type: image/jpeg");
+ imagejpeg($this->im, null, 90);
+ break;
+
+ case SI_IMAGE_GIF:
+ header("Content-Type: image/gif");
+ imagegif($this->im);
+ break;
+
+ default:
+ header("Content-Type: image/png");
+ imagepng($this->im);
+ break;
+ }
+
+ imagedestroy($this->im);
+ exit;
+ }
+
+ /**
+ * Get WAV or MP3 file data of the spoken code.
+ * This is appropriate for output to the browser as audio/x-wav or audio/mpeg
+ *
+ * @since 1.0.1
+ * @return string WAV or MP3 data
+ *
+ */
+ function getAudibleCode($format = 'wav')
+ {
+ $letters = array();
+ $code = $this->getCode();
+
+ if ($code == '') {
+ $this->createCode();
+ $code = $this->getCode();
+ }
+
+ for($i = 0; $i < strlen($code); ++$i) {
+ $letters[] = $code{$i};
+ }
+
+ if ($format == 'mp3') {
+ return $this->generateMP3($letters);
+ } else {
+ return $this->generateWAV($letters);
+ }
+ }
+
+ /**
+ * Set the path to the audio directory.
+ *
+ * @since 1.0.4
+ * @return bool true if the directory exists and is readble, false if not
+ */
+ function setAudioPath($audio_directory)
+ {
+ if (is_dir($audio_directory) && is_readable($audio_directory)) {
+ $this->audio_path = $audio_directory;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Save the code in the session
+ *
+ * @access private
+ *
+ */
+ function saveData()
+ {
+ $_SESSION['securimage_code_value'] = strtolower($this->code);
+ $_SESSION['securimage_code_ctime'] = time();
+
+ $this->saveCodeToDatabase();
+ }
+
+ /**
+ * Validate the code to the user code
+ *
+ * @access private
+ *
+ */
+ function validate()
+ {
+ // retrieve code from session, if no code exists check sqlite database if supported.
+
+ if (isset($_SESSION['securimage_code_value']) && trim($_SESSION['securimage_code_value']) != '') {
+ if ($this->isCodeExpired($_SESSION['securimage_code_ctime']) == false) {
+ $code = $_SESSION['securimage_code_value'];
+ }
+ } else if ($this->use_sqlite_db == true && function_exists('sqlite_open')) { // no code in session - may mean user has cookies turned off
+ $this->openDatabase();
+ $code = $this->getCodeFromDatabase();
+ } else {
+ // session code invalid or non-existant and code not found in sqlite db or sqlite is not available
+ $code = '';
+ }
+
+ $code = trim(strtolower($code));
+ $code_entered = trim(strtolower($this->code_entered));
+ $this->correct_code = false;
+
+ if ($code != '') {
+ if ($code == $code_entered) {
+ $this->correct_code = true;
+ $_SESSION['securimage_code_value'] = '';
+ $_SESSION['securimage_code_ctime'] = '';
+ $this->clearCodeFromDatabase();
+ }
+ }
+ }
+
+ /**
+ * Get the captcha code
+ *
+ * @since 1.0.1
+ * @return string
+ */
+ function getCode()
+ {
+ if (isset($_SESSION['securimage_code_value']) && !empty($_SESSION['securimage_code_value'])) {
+ return strtolower($_SESSION['securimage_code_value']);
+ } else {
+ if ($this->sqlite_handle == false) $this->openDatabase();
+
+ return $this->getCodeFromDatabase(); // attempt to get from database, returns empty string if sqlite is not available or disabled
+ }
+ }
+
+ /**
+ * Check if the user entered code was correct
+ *
+ * @access private
+ * @return boolean
+ */
+ function checkCode()
+ {
+ return $this->correct_code;
+ }
+
+ /**
+ * Generate a wav file by concatenating individual files
+ *
+ * @since 1.0.1
+ * @access private
+ * @param array $letters Array of letters to build a file from
+ * @return string WAV file data
+ */
+ function generateWAV($letters)
+ {
+ $data_len = 0;
+ $files = array();
+ $out_data = '';
+
+ foreach ($letters as $letter) {
+ $filename = $this->audio_path . strtoupper($letter) . '.wav';
+
+ $fp = fopen($filename, 'rb');
+
+ $file = array();
+
+ $data = fread($fp, filesize($filename)); // read file in
+
+ $header = substr($data, 0, 36);
+ $body = substr($data, 44);
+
+
+ $data = unpack('NChunkID/VChunkSize/NFormat/NSubChunk1ID/VSubChunk1Size/vAudioFormat/vNumChannels/VSampleRate/VByteRate/vBlockAlign/vBitsPerSample', $header);
+
+ $file['sub_chunk1_id'] = $data['SubChunk1ID'];
+ $file['bits_per_sample'] = $data['BitsPerSample'];
+ $file['channels'] = $data['NumChannels'];
+ $file['format'] = $data['AudioFormat'];
+ $file['sample_rate'] = $data['SampleRate'];
+ $file['size'] = $data['ChunkSize'] + 8;
+ $file['data'] = $body;
+
+ if ( ($p = strpos($file['data'], 'LIST')) !== false) {
+ // If the LIST data is not at the end of the file, this will probably break your sound file
+ $info = substr($file['data'], $p + 4, 8);
+ $data = unpack('Vlength/Vjunk', $info);
+ $file['data'] = substr($file['data'], 0, $p);
+ $file['size'] = $file['size'] - (strlen($file['data']) - $p);
+ }
+
+ $files[] = $file;
+ $data = null;
+ $header = null;
+ $body = null;
+
+ $data_len += strlen($file['data']);
+
+ fclose($fp);
+ }
+
+ $out_data = '';
+ for($i = 0; $i < sizeof($files); ++$i) {
+ if ($i == 0) { // output header
+ $out_data .= pack('C4VC8', ord('R'), ord('I'), ord('F'), ord('F'), $data_len + 36, ord('W'), ord('A'), ord('V'), ord('E'), ord('f'), ord('m'), ord('t'), ord(' '));
+
+ $out_data .= pack('VvvVVvv',
+ 16,
+ $files[$i]['format'],
+ $files[$i]['channels'],
+ $files[$i]['sample_rate'],
+ $files[$i]['sample_rate'] * (($files[$i]['bits_per_sample'] * $files[$i]['channels']) / 8),
+ ($files[$i]['bits_per_sample'] * $files[$i]['channels']) / 8,
+ $files[$i]['bits_per_sample'] );
+
+ $out_data .= pack('C4', ord('d'), ord('a'), ord('t'), ord('a'));
+
+ $out_data .= pack('V', $data_len);
+ }
+
+ $out_data .= $files[$i]['data'];
+ }
+
+ $this->scrambleAudioData($out_data, 'wav');
+ return $out_data;
+ }
+
+ /**
+ * Randomly modify the audio data to scramble sound and prevent binary recognition.
+ * Take care not to "break" the audio file by leaving the header data intact.
+ *
+ * @since 2.0
+ * @access private
+ * @param $data Sound data in mp3 of wav format
+ */
+ function scrambleAudioData(&$data, $format)
+ {
+ if ($format == 'wav') {
+ $start = strpos($data, 'data') + 4; // look for "data" indicator
+ if ($start === false) $start = 44; // if not found assume 44 byte header
+ } else { // mp3
+ $start = 4; // 4 byte (32 bit) frame header
+ }
+
+ $start += rand(1, 64); // randomize starting offset
+ $datalen = strlen($data) - $start - 256; // leave last 256 bytes unchanged
+
+ for ($i = $start; $i < $datalen; $i += 64) {
+ $ch = ord($data{$i});
+ if ($ch < 9 || $ch > 119) continue;
+
+ $data{$i} = chr($ch + rand(-8, 8));
+ }
+ }
+
+ /**
+ * Generate an mp3 file by concatenating individual files
+ * @since 1.0.4
+ * @access private
+ * @param array $letters Array of letters to build a file from
+ * @return string MP3 file data
+ */
+ function generateMP3($letters)
+ {
+ $data_len = 0;
+ $files = array();
+ $out_data = '';
+
+ foreach ($letters as $letter) {
+ $filename = $this->audio_path . strtoupper($letter) . '.mp3';
+
+ $fp = fopen($filename, 'rb');
+ $data = fread($fp, filesize($filename)); // read file in
+
+ $this->scrambleAudioData($data, 'mp3');
+ $out_data .= $data;
+
+ fclose($fp);
+ }
+
+
+ return $out_data;
+ }
+
+ /**
+ * Generate random number less than 1
+ * @since 2.0
+ * @access private
+ * @return float
+ */
+ function frand()
+ {
+ return 0.0001*rand(0,9999);
+ }
+
+ /**
+ * Print signature text on image
+ *
+ * @since 2.0
+ * @access private
+ *
+ */
+ function addSignature()
+ {
+ if ($this->use_gd_font) {
+ imagestring($this->im, 5, $this->image_width - (strlen($this->image_signature) * 10), $this->image_height - 20, $this->image_signature, $this->gdsignaturecolor);
+ } else {
+
+ $bbox = imagettfbbox(10, 0, $this->signature_font, $this->image_signature);
+ $textlen = $bbox[2] - $bbox[0];
+ $x = $this->image_width - $textlen - 5;
+ $y = $this->image_height - 3;
+
+ imagettftext($this->im, 10, 0, $x, $y, $this->gdsignaturecolor, $this->signature_font, $this->image_signature);
+ }
+ }
+
+ /**
+ * Get hashed IP address of remote user
+ *
+ * @access private
+ * @since 2.0.1
+ * @return string
+ */
+ function getIPHash()
+ {
+ return strtolower(md5($_SERVER['REMOTE_ADDR']));
+ }
+
+ /**
+ * Open SQLite database
+ *
+ * @access private
+ * @since 2.0.1
+ * @return bool true if database was opened successfully
+ */
+ function openDatabase()
+ {
+ $this->sqlite_handle = false;
+
+ if ($this->use_sqlite_db && function_exists('sqlite_open')) {
+ $this->sqlite_handle = sqlite_open($this->sqlite_database, 0666, $error);
+
+ if ($this->sqlite_handle !== false) {
+ $res = sqlite_query($this->sqlite_handle, "PRAGMA table_info(codes)");
+ if (sqlite_num_rows($res) == 0) {
+ sqlite_query($this->sqlite_handle, "CREATE TABLE codes (iphash VARCHAR(32) PRIMARY KEY, code VARCHAR(32) NOT NULL, created INTEGER)");
+ }
+ }
+
+ return $this->sqlite_handle != false;
+ }
+
+ return $this->sqlite_handle;
+ }
+
+ /**
+ * Save captcha code to sqlite database
+ *
+ * @access private
+ * @since 2.0.1
+ * @return bool true if code was saved, false if not
+ */
+ function saveCodeToDatabase()
+ {
+ $success = false;
+
+ $this->openDatabase();
+
+ if ($this->use_sqlite_db && $this->sqlite_handle !== false) {
+ $ip = $this->getIPHash();
+ $time = time();
+ $code = $_SESSION['securimage_code_value']; // hash code for security - if cookies are disabled the session still exists at this point
+ $success = sqlite_query($this->sqlite_handle, "INSERT OR REPLACE INTO codes(iphash, code, created) VALUES('$ip', '$code', $time)");
+ }
+
+ return $success !== false;
+ }
+
+ /**
+ * Get stored captcha code from sqlite database based on ip address hash
+ *
+ * @access private
+ * @since 2.0.1
+ * @return string captcha code
+ */
+ function getCodeFromDatabase()
+ {
+ $code = '';
+
+ if ($this->use_sqlite_db && $this->sqlite_handle !== false) {
+ $ip = $this->getIPHash();
+
+ $res = sqlite_query($this->sqlite_handle, "SELECT * FROM codes WHERE iphash = '$ip'");
+ if ($res && sqlite_num_rows($res) > 0) {
+ $res = sqlite_fetch_array($res);
+
+ if ($this->isCodeExpired($res['created']) == false) {
+ $code = $res['code'];
+ }
+ }
+ }
+
+ return $code;
+ }
+
+ /**
+ * Delete a code from the database by ip address hash
+ *
+ * @access private
+ * @since 2.0.1
+ */
+ function clearCodeFromDatabase()
+ {
+ if ($this->sqlite_handle !== false) {
+ $ip = $this->getIPHash();
+
+ sqlite_query($this->sqlite_handle, "DELETE FROM codes WHERE iphash = '$ip'");
+ }
+ }
+
+ /**
+ * Purge codes over a day old from database
+ *
+ * @access private
+ * @since 2.0.1
+ */
+ function purgeOldCodesFromDatabase()
+ {
+ if ($this->use_sqlite_db && $this->sqlite_handle !== false) {
+ $now = time();
+ $limit = (!is_numeric($this->expiry_time) || $this->expiry_time < 1) ? 86400 : $this->expiry_time;
+
+ sqlite_query($this->sqlite_handle, "DELETE FROM codes WHERE $now - created > $limit");
+ }
+ }
+
+ /**
+ * Check a code to see if it is expired based on creation time
+ *
+ * @access private
+ * @since 2.0.1
+ * @param $creation_time unix timestamp of code creation time
+ * @return bool true if code has expired, false if not
+ */
+ function isCodeExpired($creation_time)
+ {
+ $expired = true;
+
+ if (!is_numeric($this->expiry_time) || $this->expiry_time < 1) {
+ $expired = false;
+ } else if (time() - $creation_time < $this->expiry_time) {
+ $expired = false;
+ }
+
+ return $expired;
+ }
+
+} /* class Securimage */
+
+
+/**
+ * Color object for Securimage CAPTCHA
+ *
+ * @since 2.0
+ * @package Securimage
+ * @subpackage classes
+ *
+ */
+class Securimage_Color {
+ /**
+ * Red component: 0-255
+ *
+ * @var int
+ */
+ var $r;
+ /**
+ * Green component: 0-255
+ *
+ * @var int
+ */
+ var $g;
+ /**
+ * Blue component: 0-255
+ *
+ * @var int
+ */
+ var $b;
+
+ /**
+ * Create a new Securimage_Color object.
+ * Specify the red, green, and blue components using their HTML hex code equivalent.
+ * Example: The code for the HTML color #4A203C is:
+ * $color = new Securimage_Color(0x4A, 0x20, 0x3C);
+ *
+ * @param $red Red component 0-255
+ * @param $green Green component 0-255
+ * @param $blue Blue component 0-255
+ */
+ function Securimage_Color($red, $green = null, $blue = null)
+ {
+ if ($green == null && $blue == null && preg_match('/^#[a-f0-9]{3,6}$/i', $red)) {
+ $col = substr($red, 1);
+ if (strlen($col) == 3) {
+ $red = str_repeat(substr($col, 0, 1), 2);
+ $green = str_repeat(substr($col, 1, 1), 2);
+ $blue = str_repeat(substr($col, 2, 1), 2);
+ } else {
+ $red = substr($col, 0, 2);
+ $green = substr($col, 2, 2);
+ $blue = substr($col, 4, 2);
+ }
+
+ $red = hexdec($red);
+ $green = hexdec($green);
+ $blue = hexdec($blue);
+ } else {
+ if ($red < 0) $red = 0;
+ if ($red > 255) $red = 255;
+ if ($green < 0) $green = 0;
+ if ($green > 255) $green = 255;
+ if ($blue < 0) $blue = 0;
+ if ($blue > 255) $blue = 255;
+ }
+
+ $this->r = $red;
+ $this->g = $green;
+ $this->b = $blue;
+ }
+}
diff --git a/html/securimage/securimage_play.php b/html/securimage/securimage_play.php
new file mode 100644
index 000000000..1f369bcb3
--- /dev/null
+++ b/html/securimage/securimage_play.php
@@ -0,0 +1,43 @@
+
+ * File: securimage_play.php
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Any modifications to the library should be indicated clearly in the source code
+ * to inform users that the changes are not a part of the original software.
+ *
+ * If you found this script useful, please take a quick moment to rate it.
+ * http://www.hotscripts.com/rate/49400.html Thanks.
+ *
+ * @link http://www.phpcaptcha.org Securimage PHP CAPTCHA
+ * @link http://www.phpcaptcha.org/latest.zip Download Latest Version
+ * @link http://www.phpcaptcha.org/Securimage_Docs/ Online Documentation
+ * @copyright 2009 Drew Phillips
+ * @author drew010
+ * @version 2.0.1 BETA (December 6th, 2009)
+ * @package Securimage
+ *
+ */
+
+include 'securimage.php';
+
+$img = new Securimage();
+$img->audio_format = (isset($_GET['format']) && in_array(strtolower($_GET['format']), array('mp3', 'wav')) ? strtolower($_GET['format']) : 'mp3');
+//$img->setAudioPath('/path/to/securimage/audio/');
+
+$img->outputAudioFile();
diff --git a/html/securimage/securimage_play.swf b/html/securimage/securimage_play.swf
new file mode 100644
index 000000000..d1718b735
Binary files /dev/null and b/html/securimage/securimage_play.swf differ
diff --git a/html/securimage/securimage_show.php b/html/securimage/securimage_show.php
new file mode 100644
index 000000000..edf4fe712
--- /dev/null
+++ b/html/securimage/securimage_show.php
@@ -0,0 +1,57 @@
+
+ * File: securimage_show.php
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Any modifications to the library should be indicated clearly in the source code
+ * to inform users that the changes are not a part of the original software.
+ *
+ * If you found this script useful, please take a quick moment to rate it.
+ * http://www.hotscripts.com/rate/49400.html Thanks.
+ *
+ * @link http://www.phpcaptcha.org Securimage PHP CAPTCHA
+ * @link http://www.phpcaptcha.org/latest.zip Download Latest Version
+ * @link http://www.phpcaptcha.org/Securimage_Docs/ Online Documentation
+ * @copyright 2009 Drew Phillips
+ * @author drew010
+ * @version 2.0.1 BETA (December 6th, 2009)
+ * @package Securimage
+ *
+ */
+
+include 'securimage.php';
+
+$img = new securimage();
+
+// Change some settings
+
+$img->image_width = 205;
+$img->image_height = 50;
+$img->perturbation = 0.85; // 1.0 = high distortion, higher numbers = more distortion
+// $img->image_bg_color = new Securimage_Color("#0099CC");
+//$img->text_color = new Securimage_Color("#EAEAEA");
+$img->text_transparency_percentage = 35; // 100 = completely transparent
+$img->num_lines = 2;
+$img->line_color = new Securimage_Color("#0000CC");
+$img->signature_color = new Securimage_Color(rand(0, 64), rand(64, 128), rand(128, 255));
+$img->image_type = SI_IMAGE_JPEG;
+$img->background_directory="./backgrounds";
+$img->bgimg="./backgrounds/bg7.jpg";
+$img->use_multi_text=true;
+
+$img->show(); // alternate use: $img->show('/path/to/background_image.jpg');
diff --git a/html/securimage/securimage_show_example.php b/html/securimage/securimage_show_example.php
new file mode 100644
index 000000000..1d34753c0
--- /dev/null
+++ b/html/securimage/securimage_show_example.php
@@ -0,0 +1,64 @@
+
+ * File: securimage_show_example.php
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Any modifications to the library should be indicated clearly in the source code
+ * to inform users that the changes are not a part of the original software.
+ *
+ * If you found this script useful, please take a quick moment to rate it.
+ * http://www.hotscripts.com/rate/49400.html Thanks.
+ *
+ * @link http://www.phpcaptcha.org Securimage PHP CAPTCHA
+ * @link http://www.phpcaptcha.org/latest.zip Download Latest Version
+ * @link http://www.phpcaptcha.org/Securimage_Docs/ Online Documentation
+ * @copyright 2009 Drew Phillips
+ * @author Drew Phillips
+ * @version 2.0.1 BETA (December 6th, 2009)
+ * @package Securimage
+ *
+ */
+
+include 'securimage.php';
+
+$img = new securimage();
+
+//Change some settings
+$img->image_width = 250;
+$img->image_height = 80;
+$img->perturbation = 0.85;
+$img->image_bg_color = new Securimage_Color("#f6f6f6");
+$img->multi_text_color = array(new Securimage_Color("#3399ff"),
+ new Securimage_Color("#3300cc"),
+ new Securimage_Color("#3333cc"),
+ new Securimage_Color("#6666ff"),
+ new Securimage_Color("#99cccc")
+ );
+$img->use_multi_text = true;
+$img->text_angle_minimum = -5;
+$img->text_angle_maximum = 5;
+$img->use_transparent_text = true;
+$img->text_transparency_percentage = 30; // 100 = completely transparent
+$img->num_lines = 7;
+$img->line_color = new Securimage_Color("#eaeaea");
+$img->image_signature = 'phpcaptcha.org';
+$img->signature_color = new Securimage_Color(rand(0, 64), rand(64, 128), rand(128, 255));
+$img->use_wordlist = true;
+
+$img->show('backgrounds/bg3.jpg'); // alternate use: $img->show('/path/to/background_image.jpg');
+
diff --git a/html/securimage/securimage_show_example2.php b/html/securimage/securimage_show_example2.php
new file mode 100644
index 000000000..941379b04
--- /dev/null
+++ b/html/securimage/securimage_show_example2.php
@@ -0,0 +1,55 @@
+
+ * File: securimage_show_example2.php
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Any modifications to the library should be indicated clearly in the source code
+ * to inform users that the changes are not a part of the original software.
+ *
+ * If you found this script useful, please take a quick moment to rate it.
+ * http://www.hotscripts.com/rate/49400.html Thanks.
+ *
+ * @link http://www.phpcaptcha.org Securimage PHP CAPTCHA
+ * @link http://www.phpcaptcha.org/latest.zip Download Latest Version
+ * @link http://www.phpcaptcha.org/Securimage_Docs/ Online Documentation
+ * @copyright 2009 Drew Phillips
+ * @author Drew Phillips
+ * @version 2.0.1 BETA (December 6th, 2009)
+ * @package Securimage
+ *
+ */
+
+include 'securimage.php';
+
+$img = new securimage();
+
+//Change some settings
+$img->image_width = 280;
+$img->image_height = 100;
+$img->perturbation = 0.9;
+$img->code_length = rand(5,6);
+$img->image_bg_color = new Securimage_Color("#ffffff");
+$img->use_transparent_text = true;
+$img->text_transparency_percentage = 75; // 100 = completely transparent
+$img->num_lines = 15;
+$img->image_signature = '';
+$img->text_color = new Securimage_Color("#000000");
+$img->line_color = new Securimage_Color("#cccccc");
+
+$img->show(''); // alternate use: $img->show('/path/to/background_image.jpg');
+
diff --git a/html/securimage/words/words.txt b/html/securimage/words/words.txt
new file mode 100644
index 000000000..eaeb84a6e
--- /dev/null
+++ b/html/securimage/words/words.txt
@@ -0,0 +1,15621 @@
+aahing
+aaliis
+aarrgh
+abacas
+abacus
+abakas
+abamps
+abased
+abaser
+abases
+abasia
+abated
+abater
+abates
+abatis
+abator
+abayas
+abbacy
+abbess
+abbeys
+abbots
+abduce
+abduct
+abeles
+abelia
+abhors
+abided
+abider
+abides
+abject
+abjure
+ablate
+ablaut
+ablaze
+ablest
+ablins
+abloom
+ablush
+abmhos
+aboard
+aboded
+abodes
+abohms
+abolla
+abomas
+aboral
+aborts
+abound
+aboves
+abrade
+abroad
+abrupt
+abseil
+absent
+absorb
+absurd
+abulia
+abulic
+abvolt
+abwatt
+abying
+abysms
+acacia
+acajou
+acarid
+acarus
+accede
+accent
+accept
+access
+accord
+accost
+accrue
+accuse
+acedia
+acetal
+acetic
+acetin
+acetum
+acetyl
+achene
+achier
+aching
+acidic
+acidly
+acinar
+acinic
+acinus
+ackees
+acnode
+acorns
+acquit
+across
+acting
+actins
+action
+active
+actors
+actual
+acuate
+acuity
+aculei
+acumen
+acuter
+acutes
+adages
+adagio
+adapts
+addend
+adders
+addict
+adding
+addled
+addles
+adduce
+adduct
+adeems
+adenyl
+adepts
+adhere
+adieus
+adieux
+adipic
+adjoin
+adjure
+adjust
+admass
+admire
+admits
+admixt
+adnate
+adnexa
+adnoun
+adobes
+adobos
+adonis
+adopts
+adored
+adorer
+adores
+adorns
+adrift
+adroit
+adsorb
+adults
+advect
+advent
+adverb
+advert
+advice
+advise
+adytum
+adzing
+adzuki
+aecial
+aecium
+aedile
+aedine
+aeneus
+aeonic
+aerate
+aerial
+aeried
+aerier
+aeries
+aerify
+aerily
+aerobe
+aerugo
+aether
+afeard
+affair
+affect
+affine
+affirm
+afflux
+afford
+affray
+afghan
+afield
+aflame
+afloat
+afraid
+afreet
+afresh
+afrits
+afters
+aftosa
+agamas
+agamic
+agamid
+agapae
+agapai
+agapes
+agaric
+agates
+agaves
+agedly
+ageing
+ageism
+ageist
+agency
+agenda
+agenes
+agents
+aggada
+aggers
+aggies
+aggros
+aghast
+agings
+agisms
+agists
+agitas
+aglare
+agleam
+aglets
+agnail
+agnate
+agnize
+agonal
+agones
+agonic
+agorae
+agoras
+agorot
+agouti
+agouty
+agrafe
+agreed
+agrees
+agrias
+aguish
+ahchoo
+ahimsa
+aholds
+ahorse
+aiders
+aidful
+aiding
+aidman
+aidmen
+aiglet
+aigret
+aikido
+ailing
+aimers
+aimful
+aiming
+aiolis
+airbag
+airbus
+airers
+airest
+airier
+airily
+airing
+airman
+airmen
+airted
+airths
+airway
+aisled
+aisles
+aivers
+ajivas
+ajowan
+ajugas
+akelas
+akenes
+akimbo
+alamos
+alands
+alanin
+alants
+alanyl
+alarms
+alarum
+alaska
+alated
+alates
+albata
+albedo
+albeit
+albino
+albite
+albums
+alcade
+alcaic
+alcids
+alcove
+alders
+aldols
+aldose
+aldrin
+alegar
+alephs
+alerts
+alevin
+alexia
+alexin
+alfaki
+algins
+algoid
+algors
+algums
+alibis
+alible
+alidad
+aliens
+alight
+aligns
+alined
+aliner
+alines
+aliped
+aliyah
+aliyas
+aliyos
+aliyot
+alkali
+alkane
+alkene
+alkies
+alkine
+alkoxy
+alkyds
+alkyls
+alkyne
+allays
+allees
+allege
+allele
+alleys
+allied
+allies
+allium
+allods
+allots
+allows
+alloys
+allude
+allure
+allyls
+almahs
+almehs
+almner
+almond
+almost
+almuce
+almude
+almuds
+almugs
+alnico
+alodia
+alohas
+aloins
+alpaca
+alphas
+alphyl
+alpine
+alsike
+altars
+alters
+althea
+aludel
+alulae
+alular
+alumin
+alumna
+alumni
+alvine
+always
+amadou
+amarna
+amatol
+amazed
+amazes
+amazon
+ambage
+ambari
+ambary
+ambeer
+ambers
+ambery
+ambits
+ambled
+ambler
+ambles
+ambush
+amebae
+ameban
+amebas
+amebic
+ameers
+amends
+aments
+amerce
+amices
+amicus
+amides
+amidic
+amidin
+amidol
+amidst
+amigas
+amigos
+amines
+aminic
+ammine
+ammino
+ammono
+amnion
+amnios
+amoeba
+amoles
+amoral
+amount
+amours
+ampere
+amping
+ampler
+ampule
+ampuls
+amrita
+amtrac
+amucks
+amulet
+amused
+amuser
+amuses
+amusia
+amylic
+amylum
+anabas
+anadem
+analog
+ananke
+anarch
+anatto
+anchor
+anchos
+ancone
+andros
+anears
+aneled
+aneles
+anemia
+anemic
+anenst
+anergy
+angary
+angels
+angers
+angina
+angled
+angler
+angles
+anglos
+angora
+angsts
+anilin
+animal
+animas
+animes
+animis
+animus
+anions
+anises
+anisic
+ankled
+ankles
+anklet
+ankush
+anlace
+anlage
+annals
+anneal
+annexe
+annona
+annoys
+annual
+annuli
+annuls
+anodal
+anodes
+anodic
+anoint
+anoles
+anomic
+anomie
+anonym
+anopia
+anorak
+anoxia
+anoxic
+ansate
+answer
+anteed
+anthem
+anther
+antiar
+antick
+antics
+anting
+antler
+antral
+antres
+antrum
+anural
+anuran
+anuria
+anuric
+anuses
+anvils
+anyhow
+anyone
+anyons
+anyway
+aorist
+aortae
+aortal
+aortas
+aortic
+aoudad
+apache
+apathy
+apercu
+apexes
+aphids
+aphtha
+apiary
+apical
+apices
+apiece
+aplite
+aplomb
+apneal
+apneas
+apneic
+apnoea
+apodal
+apogee
+apollo
+apolog
+aporia
+appall
+appals
+appeal
+appear
+appels
+append
+apples
+applet
+appose
+aprons
+aptest
+arabic
+arable
+arames
+aramid
+arbors
+arbour
+arbute
+arcade
+arcana
+arcane
+arched
+archer
+arches
+archil
+archly
+archon
+arcing
+arcked
+arctic
+ardebs
+ardent
+ardors
+ardour
+arecas
+arenas
+arenes
+areola
+areole
+arepas
+aretes
+argala
+argali
+argals
+argent
+argils
+argled
+argles
+argols
+argons
+argosy
+argots
+argued
+arguer
+argues
+argufy
+argyle
+argyll
+arhats
+ariary
+arider
+aridly
+ariels
+aright
+ariled
+ariose
+ariosi
+arioso
+arisen
+arises
+arista
+aristo
+arkose
+armada
+armers
+armets
+armful
+armies
+arming
+armlet
+armors
+armory
+armour
+armpit
+armure
+arnica
+aroids
+aroint
+aromas
+around
+arouse
+aroynt
+arpens
+arpent
+arrack
+arrant
+arrays
+arrear
+arrest
+arriba
+arrive
+arroba
+arrows
+arrowy
+arroyo
+arseno
+arshin
+arsine
+arsino
+arsons
+artels
+artery
+artful
+artier
+artily
+artist
+asanas
+asarum
+ascend
+ascent
+ascots
+asdics
+ashcan
+ashier
+ashing
+ashlar
+ashler
+ashman
+ashmen
+ashore
+ashram
+asides
+askant
+askers
+asking
+aslant
+asleep
+aslope
+aslosh
+aspect
+aspens
+aspers
+aspics
+aspire
+aspish
+asrama
+assail
+assais
+assays
+assent
+assert
+assess
+assets
+assign
+assist
+assize
+assoil
+assort
+assume
+assure
+astern
+asters
+asthma
+astony
+astral
+astray
+astute
+aswarm
+aswirl
+aswoon
+asylum
+atabal
+ataman
+atavic
+ataxia
+ataxic
+atelic
+atlatl
+atmans
+atolls
+atomic
+atonal
+atoned
+atoner
+atones
+atonia
+atonic
+atopic
+atrial
+atrium
+attach
+attack
+attain
+attars
+attend
+attent
+attest
+attics
+attire
+attorn
+attrit
+attune
+atwain
+atween
+atypic
+aubade
+auburn
+aucuba
+audads
+audial
+audile
+auding
+audios
+audits
+augend
+augers
+aughts
+augite
+augurs
+augury
+august
+auklet
+aulder
+auntie
+auntly
+aurate
+aureus
+aurist
+aurora
+aurous
+aurums
+auspex
+ausubo
+auteur
+author
+autism
+autist
+autoed
+autumn
+auxins
+avails
+avatar
+avaunt
+avenge
+avenue
+averse
+averts
+avians
+aviary
+aviate
+avidin
+avidly
+avions
+avisos
+avocet
+avoids
+avoset
+avouch
+avowal
+avowed
+avower
+avulse
+awaits
+awaked
+awaken
+awakes
+awards
+aweary
+aweigh
+aweing
+awhile
+awhirl
+awless
+awmous
+awning
+awoken
+axeman
+axemen
+axenic
+axilla
+axioms
+axions
+axised
+axises
+axites
+axlike
+axonal
+axones
+axonic
+axseed
+azalea
+azides
+azines
+azlons
+azoles
+azonal
+azonic
+azoted
+azotes
+azoths
+azotic
+azukis
+azures
+azygos
+baaing
+baalim
+baases
+babble
+babels
+babied
+babier
+babies
+babkas
+babool
+baboon
+baboos
+babuls
+baccae
+bached
+baches
+backed
+backer
+backup
+bacons
+bacula
+badass
+badder
+baddie
+badged
+badger
+badges
+badman
+badmen
+baffed
+baffle
+bagels
+bagful
+bagged
+bagger
+baggie
+bagman
+bagmen
+bagnio
+baguet
+bagwig
+bailed
+bailee
+bailer
+bailey
+bailie
+bailor
+bairns
+baited
+baiter
+baizas
+baizes
+bakers
+bakery
+baking
+balata
+balboa
+balded
+balder
+baldly
+baleen
+balers
+baling
+balked
+balker
+ballad
+balled
+baller
+ballet
+ballon
+ballot
+ballsy
+balsam
+balsas
+bamboo
+bammed
+banana
+bancos
+bandas
+banded
+bander
+bandit
+bandog
+banged
+banger
+bangle
+banian
+baning
+banish
+banjax
+banjos
+banked
+banker
+bankit
+banned
+banner
+bannet
+bantam
+banter
+banyan
+banzai
+baobab
+barbal
+barbed
+barbel
+barber
+barbes
+barbet
+barbie
+barbut
+barcas
+barded
+bardes
+bardic
+barege
+barely
+barest
+barfed
+barfly
+barged
+bargee
+barges
+barhop
+baring
+barite
+barium
+barked
+barker
+barley
+barlow
+barman
+barmen
+barmie
+barned
+barney
+barong
+barons
+barony
+barque
+barred
+barrel
+barren
+barres
+barret
+barrio
+barrow
+barter
+baryes
+baryon
+baryta
+baryte
+basalt
+basely
+basest
+bashaw
+bashed
+basher
+bashes
+basics
+basify
+basils
+basing
+basins
+basion
+basked
+basket
+basque
+basted
+baster
+bastes
+batboy
+bateau
+bathed
+bather
+bathes
+bathos
+batiks
+bating
+batman
+batmen
+batons
+batted
+batten
+batter
+battik
+battle
+battue
+baubee
+bauble
+baulks
+baulky
+bawbee
+bawdry
+bawled
+bawler
+bawtie
+bayamo
+bayard
+baying
+bayman
+baymen
+bayous
+bazaar
+bazars
+bazoos
+beachy
+beacon
+beaded
+beader
+beadle
+beagle
+beaked
+beaker
+beamed
+beaned
+beanie
+beanos
+beards
+bearer
+beaten
+beater
+beauts
+beauty
+bebops
+becalm
+became
+becaps
+becked
+becket
+beckon
+beclog
+become
+bedamn
+bedaub
+bedbug
+bedded
+bedder
+bedeck
+bedell
+bedels
+bedews
+bedims
+bedlam
+bedpan
+bedrid
+bedrug
+bedsit
+beduin
+bedumb
+beebee
+beechy
+beefed
+beeped
+beeper
+beetle
+beeves
+beezer
+befall
+befell
+befits
+beflag
+beflea
+befogs
+befool
+before
+befoul
+befret
+begall
+begaze
+begets
+beggar
+begged
+begins
+begird
+begirt
+beglad
+begone
+begrim
+begulf
+begums
+behalf
+behave
+behead
+beheld
+behest
+behind
+behold
+behoof
+behove
+behowl
+beiges
+beigne
+beings
+bekiss
+beknot
+belady
+belaud
+belays
+beldam
+beleap
+belfry
+belgas
+belied
+belief
+belier
+belies
+belike
+belive
+belled
+belles
+bellow
+belong
+belons
+belows
+belted
+belter
+beluga
+bemata
+bemean
+bemire
+bemist
+bemixt
+bemoan
+bemock
+bemuse
+bename
+benday
+bended
+bendee
+bender
+bendys
+benign
+bennes
+bennet
+bennis
+bentos
+benumb
+benzal
+benzin
+benzol
+benzyl
+berake
+berate
+bereft
+berets
+berime
+berlin
+bermed
+bermes
+bertha
+berths
+beryls
+beseem
+besets
+beside
+besmut
+besnow
+besoms
+besots
+bested
+bestir
+bestow
+bestud
+betake
+betels
+bethel
+betide
+betime
+betise
+betons
+betony
+betook
+betray
+bettas
+betted
+better
+bettor
+bevels
+bevies
+bevors
+bewail
+beware
+beweep
+bewept
+bewigs
+beworm
+bewrap
+bewray
+beylic
+beylik
+beyond
+bezant
+bezazz
+bezels
+bezils
+bezoar
+bhakta
+bhakti
+bhangs
+bharal
+bhoots
+bialis
+bialys
+biased
+biases
+biaxal
+bibbed
+bibber
+bibles
+bicarb
+biceps
+bicker
+bicorn
+bicron
+bidden
+bidder
+biders
+bidets
+biding
+bields
+biface
+biffed
+biffin
+biflex
+bifold
+biform
+bigamy
+bigeye
+bigger
+biggie
+biggin
+bights
+bigots
+bigwig
+bijous
+bijoux
+bikers
+bikies
+biking
+bikini
+bilboa
+bilbos
+bilged
+bilges
+bilked
+bilker
+billed
+biller
+billet
+billie
+billon
+billow
+bimahs
+bimbos
+binary
+binate
+binder
+bindis
+bindle
+biners
+binged
+binger
+binges
+bingos
+binits
+binned
+binocs
+biogas
+biogen
+biomes
+bionic
+bionts
+biopic
+biopsy
+biotas
+biotic
+biotin
+bipack
+bipeds
+bipods
+birded
+birder
+birdie
+bireme
+birkie
+birled
+birler
+birles
+birred
+birses
+births
+bisect
+bishop
+bisons
+bisque
+bister
+bistre
+bistro
+bitchy
+biters
+biting
+bitmap
+bitted
+bitten
+bitter
+bizone
+bizzes
+blabby
+blacks
+bladed
+blader
+blades
+blaffs
+blains
+blamed
+blamer
+blames
+blanch
+blanks
+blared
+blares
+blasts
+blasty
+blawed
+blazed
+blazer
+blazes
+blazon
+bleach
+bleaks
+blears
+bleary
+bleats
+blebby
+bleeds
+bleeps
+blench
+blende
+blends
+blenny
+blight
+blimey
+blimps
+blinds
+blinis
+blinks
+blintz
+blites
+blithe
+bloats
+blocks
+blocky
+blokes
+blonde
+blonds
+bloods
+bloody
+blooey
+blooie
+blooms
+bloomy
+bloops
+blotch
+blotto
+blotty
+blouse
+blousy
+blowby
+blowed
+blower
+blowsy
+blowup
+blowzy
+bludge
+bluely
+bluest
+bluesy
+bluets
+blueys
+bluffs
+bluing
+bluish
+blumed
+blumes
+blunge
+blunts
+blurbs
+blurry
+blurts
+blypes
+boards
+boarts
+boasts
+boated
+boatel
+boater
+bobbed
+bobber
+bobbin
+bobble
+bobcat
+bocces
+boccia
+boccie
+boccis
+boches
+bodega
+bodice
+bodied
+bodies
+bodily
+boding
+bodkin
+boffed
+boffin
+boffos
+bogans
+bogart
+bogeys
+bogged
+boggle
+bogies
+bogles
+boheas
+bohunk
+boiled
+boiler
+boings
+boinks
+boites
+bolder
+boldly
+bolero
+bolete
+boleti
+bolide
+bolled
+bollix
+bollox
+bolshy
+bolson
+bolted
+bolter
+bombax
+bombed
+bomber
+bombes
+bombyx
+bonaci
+bonbon
+bonded
+bonder
+bonduc
+boners
+bonged
+bongos
+bonier
+boning
+bonita
+bonito
+bonked
+bonnes
+bonnet
+bonnie
+bonobo
+bonsai
+bonzer
+bonzes
+boobed
+boobie
+booboo
+boocoo
+boodle
+booger
+boogey
+boogie
+boohoo
+booing
+boojum
+booked
+booker
+bookie
+bookoo
+boomed
+boomer
+boosts
+booted
+bootee
+booths
+bootie
+boozed
+boozer
+boozes
+bopeep
+bopped
+bopper
+borage
+borals
+borane
+borate
+bordel
+border
+boreal
+boreas
+boreen
+borers
+boride
+boring
+borked
+borons
+borrow
+borsch
+borsht
+borzoi
+boshes
+bosker
+bosket
+bosoms
+bosomy
+bosons
+bosque
+bossed
+bosses
+boston
+bosuns
+botany
+botchy
+botels
+botfly
+bother
+bottle
+bottom
+boubou
+boucle
+boudin
+bouffe
+boughs
+bought
+bougie
+boules
+boulle
+bounce
+bouncy
+bounds
+bounty
+bourgs
+bourne
+bourns
+bourse
+boused
+bouses
+bouton
+bovids
+bovine
+bowers
+bowery
+bowfin
+bowing
+bowled
+bowleg
+bowler
+bowman
+bowmen
+bowpot
+bowsed
+bowses
+bowwow
+bowyer
+boxcar
+boxers
+boxful
+boxier
+boxily
+boxing
+boyard
+boyars
+boyish
+boylas
+braced
+bracer
+braces
+brachs
+bracts
+braggy
+brahma
+braids
+brails
+brains
+brainy
+braise
+braize
+braked
+brakes
+branch
+brands
+brandy
+branks
+branny
+brants
+brashy
+brasil
+brassy
+bratty
+bravas
+braved
+braver
+braves
+bravos
+brawer
+brawls
+brawly
+brawns
+brawny
+brayed
+brayer
+brazas
+brazed
+brazen
+brazer
+brazes
+brazil
+breach
+breads
+bready
+breaks
+breams
+breath
+bredes
+breech
+breeds
+breeks
+breeze
+breezy
+bregma
+brents
+breves
+brevet
+brewed
+brewer
+brewis
+briard
+briars
+briary
+bribed
+bribee
+briber
+bribes
+bricks
+bricky
+bridal
+brides
+bridge
+bridle
+briefs
+briers
+briery
+bright
+brillo
+brills
+brined
+briner
+brines
+brings
+brinks
+briony
+brises
+brisks
+briths
+britts
+broach
+broads
+broche
+brocks
+brogan
+brogue
+broils
+broken
+broker
+brolly
+bromal
+bromes
+bromic
+bromid
+bromin
+bromos
+bronco
+broncs
+bronze
+bronzy
+brooch
+broods
+broody
+brooks
+brooms
+broomy
+broses
+broths
+brothy
+browed
+browns
+browny
+browse
+brucin
+brughs
+bruins
+bruise
+bruits
+brulot
+brumal
+brumby
+brumes
+brunch
+brunet
+brunts
+brushy
+brutal
+bruted
+brutes
+bruxed
+bruxes
+bryony
+bubale
+bubals
+bubbas
+bubble
+bubbly
+bubkes
+buboed
+buboes
+buccal
+bucked
+bucker
+bucket
+buckle
+buckos
+buckra
+budded
+budder
+buddha
+buddle
+budged
+budger
+budges
+budget
+budgie
+buffed
+buffer
+buffet
+buffos
+bugeye
+bugged
+bugger
+bugled
+bugler
+bugles
+bugout
+bugsha
+builds
+bulbar
+bulbed
+bulbel
+bulbil
+bulbul
+bulged
+bulger
+bulges
+bulgur
+bulked
+bullae
+bulled
+bullet
+bumble
+bumkin
+bummed
+bummer
+bumped
+bumper
+bumphs
+bunchy
+buncos
+bundle
+bundts
+bunged
+bungee
+bungle
+bunion
+bunked
+bunker
+bunkos
+bunkum
+bunted
+bunter
+bunyas
+buoyed
+bupkes
+bupkus
+buppie
+buqsha
+burans
+burble
+burbly
+burbot
+burden
+burdie
+bureau
+burets
+burgee
+burger
+burghs
+burgle
+burgoo
+burial
+buried
+burier
+buries
+burins
+burkas
+burked
+burker
+burkes
+burlap
+burled
+burler
+burley
+burned
+burner
+burnet
+burnie
+burped
+burqas
+burred
+burrer
+burros
+burrow
+bursae
+bursal
+bursar
+bursas
+burses
+bursts
+burton
+busbar
+busboy
+bushed
+bushel
+busher
+bushes
+bushwa
+busied
+busier
+busies
+busily
+busing
+busked
+busker
+buskin
+busman
+busmen
+bussed
+busses
+busted
+buster
+bustic
+bustle
+butane
+butene
+buteos
+butled
+butler
+butles
+butted
+butter
+buttes
+button
+bututs
+butyls
+buyers
+buying
+buyoff
+buyout
+buzuki
+buzzed
+buzzer
+buzzes
+bwanas
+byelaw
+bygone
+bylaws
+byline
+byname
+bypass
+bypast
+bypath
+byplay
+byrled
+byrnie
+byroad
+byssal
+byssus
+bytalk
+byways
+byword
+bywork
+byzant
+cabala
+cabals
+cabana
+cabbed
+cabbie
+cabers
+cabins
+cabled
+cabler
+cables
+cablet
+cabman
+cabmen
+cabobs
+cacaos
+cached
+caches
+cachet
+cachou
+cackle
+cactus
+caddie
+caddis
+cadent
+cadets
+cadged
+cadger
+cadges
+cadmic
+cadres
+caecal
+caecum
+caeoma
+caesar
+caftan
+cagers
+cagier
+cagily
+caging
+cahier
+cahoot
+cahows
+caiman
+caique
+cairds
+cairns
+cairny
+cajole
+cakier
+caking
+calami
+calash
+calcar
+calces
+calcic
+calesa
+calico
+califs
+caliph
+calked
+calker
+calkin
+callan
+callas
+called
+callee
+caller
+callet
+callow
+callus
+calmed
+calmer
+calmly
+calory
+calpac
+calque
+calved
+calves
+calxes
+camail
+camber
+cambia
+camels
+cameos
+camera
+camion
+camisa
+camise
+camlet
+cammie
+camped
+camper
+campos
+campus
+canals
+canape
+canard
+canary
+cancan
+cancel
+cancer
+cancha
+candid
+candle
+candor
+caners
+canful
+cangue
+canids
+canine
+caning
+canker
+cannas
+canned
+cannel
+canner
+cannie
+cannon
+cannot
+canoed
+canoer
+canoes
+canola
+canons
+canopy
+cansos
+cantal
+canted
+canter
+canthi
+cantic
+cantle
+canton
+cantor
+cantos
+cantus
+canula
+canvas
+canyon
+capers
+capful
+capias
+capita
+caplet
+caplin
+capons
+capote
+capped
+capper
+capric
+capris
+capsid
+captan
+captor
+carack
+carafe
+carate
+carats
+carbon
+carbos
+carboy
+carcel
+carded
+carder
+cardia
+cardio
+cardon
+careen
+career
+carers
+caress
+carets
+carful
+cargos
+carhop
+caribe
+caried
+caries
+carina
+caring
+carked
+carles
+carlin
+carman
+carmen
+carnal
+carnet
+carney
+carnie
+carobs
+caroch
+caroli
+carols
+caroms
+carpal
+carped
+carpel
+carper
+carpet
+carpus
+carrel
+carrom
+carrot
+carses
+carted
+cartel
+carter
+cartes
+carton
+cartop
+carved
+carvel
+carven
+carver
+carves
+casaba
+casava
+casbah
+casefy
+caseic
+casein
+casern
+cashaw
+cashed
+cashes
+cashew
+cashoo
+casing
+casini
+casino
+casita
+casked
+casket
+casque
+caster
+castes
+castle
+castor
+casual
+catalo
+catchy
+catena
+caters
+catgut
+cation
+catkin
+catlin
+catnap
+catnip
+catsup
+catted
+cattie
+cattle
+caucus
+caudad
+caudal
+caudex
+caudle
+caught
+caulds
+caules
+caulis
+caulks
+causal
+caused
+causer
+causes
+causey
+caveat
+cavern
+cavers
+caviar
+cavies
+cavils
+caving
+cavity
+cavort
+cawing
+cayman
+cayuse
+ceased
+ceases
+cebids
+ceboid
+cecity
+cedarn
+cedars
+cedary
+ceders
+ceding
+cedula
+ceibas
+ceiled
+ceiler
+ceilis
+celebs
+celery
+celiac
+cellae
+cellar
+celled
+cellos
+celoms
+cement
+cenote
+censed
+censer
+censes
+censor
+census
+centai
+cental
+centas
+center
+centos
+centra
+centre
+centum
+ceorls
+cerate
+cercal
+cercis
+cercus
+cereal
+cereus
+cerias
+cering
+ceriph
+cerise
+cerite
+cerium
+cermet
+cerous
+certes
+ceruse
+cervid
+cervix
+cesium
+cessed
+cesses
+cestas
+cestoi
+cestos
+cestus
+cesura
+cetane
+chabuk
+chacma
+chadar
+chador
+chadri
+chaeta
+chafed
+chafer
+chafes
+chaffs
+chaffy
+chaine
+chains
+chairs
+chaise
+chakra
+chalah
+chaleh
+chalet
+chalks
+chalky
+challa
+chally
+chalot
+chammy
+champs
+champy
+chance
+chancy
+change
+changs
+chants
+chanty
+chapel
+chapes
+charas
+chards
+chared
+chares
+charge
+charka
+charks
+charms
+charro
+charrs
+charry
+charts
+chased
+chaser
+chases
+chasms
+chasmy
+chasse
+chaste
+chatty
+chaunt
+chawed
+chawer
+chazan
+cheapo
+cheaps
+cheats
+chebec
+checks
+cheder
+cheeks
+cheeky
+cheeps
+cheero
+cheers
+cheery
+cheese
+cheesy
+chefed
+chegoe
+chelae
+chelas
+chemic
+chemos
+cheque
+cherry
+cherts
+cherty
+cherub
+chests
+chesty
+chetah
+cheths
+chevre
+chewed
+chewer
+chiasm
+chiaus
+chicas
+chicer
+chichi
+chicks
+chicle
+chicly
+chicos
+chided
+chider
+chides
+chiefs
+chield
+chiels
+chigoe
+childe
+chiles
+chilis
+chilli
+chills
+chilly
+chimar
+chimbs
+chimed
+chimer
+chimes
+chimla
+chimps
+chinas
+chinch
+chined
+chines
+chinks
+chinky
+chinos
+chints
+chintz
+chippy
+chiral
+chirks
+chirms
+chiros
+chirps
+chirpy
+chirre
+chirrs
+chirus
+chisel
+chital
+chitin
+chiton
+chitty
+chives
+chivvy
+choana
+chocks
+choice
+choirs
+choked
+choker
+chokes
+chokey
+cholas
+choler
+cholla
+cholos
+chomps
+chooks
+choose
+choosy
+chopin
+choppy
+choral
+chords
+chorea
+chored
+chores
+choric
+chorus
+chosen
+choses
+chotts
+chough
+chouse
+choush
+chowed
+chowse
+chrism
+chroma
+chrome
+chromo
+chromy
+chubby
+chucks
+chucky
+chufas
+chuffs
+chuffy
+chukar
+chukka
+chummy
+chumps
+chunks
+chunky
+chuppa
+church
+churls
+churns
+churro
+churrs
+chuted
+chutes
+chyles
+chymes
+chymic
+cibols
+cicada
+cicala
+cicale
+cicely
+cicero
+ciders
+cigars
+cilice
+cilium
+cinder
+cinema
+cineol
+cinque
+cipher
+circle
+circus
+cirque
+cirrus
+ciscos
+cisted
+cistus
+citers
+cither
+citied
+cities
+citify
+citing
+citola
+citole
+citral
+citric
+citrin
+citron
+citrus
+civets
+civics
+civies
+civism
+clachs
+clacks
+clades
+claims
+clammy
+clamor
+clamps
+clangs
+clanks
+clanky
+claque
+claret
+claros
+clasps
+claspt
+classy
+clasts
+clause
+claver
+claves
+clavus
+clawed
+clawer
+claxon
+clayed
+clayey
+cleans
+clears
+cleats
+cleave
+cleeks
+clefts
+clench
+cleome
+cleped
+clepes
+clergy
+cleric
+clerid
+clerks
+clever
+clevis
+clewed
+cliche
+clicks
+client
+cliffs
+cliffy
+clifts
+climax
+climbs
+climes
+clinal
+clinch
+clines
+clings
+clingy
+clinic
+clinks
+clique
+cliquy
+clitic
+clivia
+cloaca
+cloaks
+cloche
+clocks
+cloddy
+cloggy
+clomps
+clonal
+cloned
+cloner
+clones
+clonic
+clonks
+clonus
+cloots
+cloque
+closed
+closer
+closes
+closet
+clothe
+cloths
+clotty
+clouds
+cloudy
+clough
+clours
+clouts
+cloven
+clover
+cloves
+clowns
+cloyed
+clozes
+clubby
+clucks
+cluing
+clumps
+clumpy
+clumsy
+clunks
+clunky
+clutch
+clypei
+cnidae
+coacts
+coalas
+coaled
+coaler
+coapts
+coarse
+coasts
+coated
+coatee
+coater
+coatis
+coaxal
+coaxed
+coaxer
+coaxes
+cobalt
+cobber
+cobble
+cobias
+cobles
+cobnut
+cobras
+cobweb
+cocain
+coccal
+coccic
+coccid
+coccus
+coccyx
+cochin
+cocoas
+cocoon
+codded
+codder
+coddle
+codecs
+codeia
+codens
+coders
+codify
+coding
+codlin
+codons
+coedit
+coelom
+coempt
+coerce
+coeval
+coffee
+coffer
+coffin
+coffle
+cogent
+cogged
+cogito
+cognac
+cogons
+cogway
+cohead
+coheir
+cohere
+cohogs
+cohort
+cohosh
+cohost
+cohune
+coifed
+coiffe
+coigne
+coigns
+coiled
+coiler
+coined
+coiner
+coital
+coitus
+cojoin
+coking
+colbys
+colder
+coldly
+colead
+coleus
+colics
+colies
+colins
+collar
+collet
+collie
+collop
+colobi
+cologs
+colone
+coloni
+colons
+colony
+colors
+colour
+colter
+colugo
+column
+colure
+colzas
+comade
+comake
+comate
+combat
+combed
+comber
+combes
+combos
+comedo
+comedy
+comely
+comers
+cometh
+comets
+comfit
+comics
+coming
+comity
+commas
+commie
+commit
+commix
+common
+comose
+comous
+compas
+comped
+compel
+comply
+compos
+compts
+comtes
+concha
+concho
+conchs
+conchy
+concur
+condor
+condos
+coneys
+confab
+confer
+confit
+congas
+congee
+conger
+conges
+congii
+congos
+congou
+conics
+conies
+conine
+coning
+conins
+conium
+conked
+conker
+conned
+conner
+conoid
+consol
+consul
+contes
+contos
+contra
+convex
+convey
+convoy
+coocoo
+cooeed
+cooees
+cooers
+cooeys
+cooing
+cooked
+cooker
+cookey
+cookie
+cooled
+cooler
+coolie
+coolly
+coolth
+coombe
+coombs
+cooped
+cooper
+coopts
+cooter
+cootie
+copalm
+copals
+copays
+copeck
+copens
+copers
+copied
+copier
+copies
+coping
+coplot
+copout
+copped
+copper
+coppra
+coprah
+copras
+copses
+copter
+copula
+coquet
+corals
+corban
+corbel
+corbie
+corded
+corder
+cordon
+corers
+corgis
+coring
+corium
+corked
+corker
+cormel
+cornea
+corned
+cornel
+corner
+cornet
+cornua
+cornus
+corody
+corona
+corpse
+corpus
+corral
+corrie
+corsac
+corses
+corset
+cortex
+cortin
+corvee
+corves
+corvet
+corvid
+corymb
+coryza
+cosecs
+cosets
+coseys
+coshed
+cosher
+coshes
+cosied
+cosier
+cosies
+cosign
+cosily
+cosine
+cosmic
+cosmid
+cosmos
+cosset
+costae
+costal
+costar
+costed
+coster
+costly
+cotans
+coteau
+coting
+cottae
+cottar
+cottas
+cotter
+cotton
+cotype
+cougar
+coughs
+coulee
+coulis
+counts
+county
+couped
+coupes
+couple
+coupon
+course
+courts
+cousin
+couter
+couths
+covary
+covens
+covers
+covert
+covets
+coveys
+coving
+covins
+cowage
+coward
+cowboy
+cowers
+cowier
+cowing
+cowled
+cowman
+cowmen
+cowpat
+cowpea
+cowpie
+cowpox
+cowrie
+coxing
+coydog
+coyest
+coying
+coyish
+coyote
+coypou
+coypus
+cozens
+cozeys
+cozied
+cozier
+cozies
+cozily
+cozzes
+craals
+crabby
+cracks
+cracky
+cradle
+crafts
+crafty
+craggy
+crakes
+crambe
+crambo
+cramps
+crampy
+cranch
+craned
+cranes
+crania
+cranks
+cranky
+cranny
+crapes
+crappy
+crases
+crasis
+cratch
+crated
+crater
+crates
+craton
+cravat
+craved
+craven
+craver
+craves
+crawls
+crawly
+crayon
+crazed
+crazes
+creaks
+creaky
+creams
+creamy
+crease
+creasy
+create
+creche
+credal
+credit
+credos
+creeds
+creeks
+creels
+creeps
+creepy
+creese
+creesh
+cremes
+crenel
+creole
+creped
+crepes
+crepey
+crepon
+cresol
+cressy
+crests
+cresyl
+cretic
+cretin
+crewed
+crewel
+cricks
+criers
+crikey
+crimes
+crimps
+crimpy
+cringe
+crinum
+cripes
+crises
+crisic
+crisis
+crisps
+crispy
+crissa
+crista
+critic
+croaks
+croaky
+crocks
+crocus
+crofts
+crojik
+crones
+crooks
+croons
+crores
+crosse
+crotch
+croton
+crouch
+croupe
+croups
+croupy
+crouse
+croute
+crowds
+crowdy
+crowed
+crower
+crowns
+crozer
+crozes
+cruces
+crucks
+cruddy
+cruder
+crudes
+cruets
+cruise
+crumbs
+crumby
+crummy
+crumps
+crunch
+cruors
+crural
+cruses
+cruset
+crusts
+crusty
+crutch
+cruxes
+crwths
+crying
+crypto
+crypts
+cuatro
+cubage
+cubebs
+cubers
+cubics
+cubing
+cubism
+cubist
+cubiti
+cubits
+cuboid
+cuckoo
+cuddie
+cuddle
+cuddly
+cudgel
+cueing
+cuesta
+cuffed
+cuisse
+culets
+cullay
+culled
+culler
+cullet
+cullis
+culmed
+culpae
+cultch
+cultic
+cultus
+culver
+cumber
+cumbia
+cumins
+cummer
+cummin
+cumuli
+cundum
+cuneal
+cunner
+cupels
+cupful
+cupids
+cupola
+cuppas
+cupped
+cupper
+cupric
+cuprum
+cupula
+cupule
+curacy
+curagh
+curara
+curare
+curari
+curate
+curbed
+curber
+curded
+curdle
+curers
+curets
+curfew
+curiae
+curial
+curies
+curing
+curios
+curite
+curium
+curled
+curler
+curlew
+curran
+curred
+currie
+cursed
+curser
+curses
+cursor
+curtal
+curter
+curtly
+curtsy
+curule
+curved
+curves
+curvet
+curvey
+cuscus
+cusecs
+cushat
+cushaw
+cuspal
+cusped
+cuspid
+cuspis
+cussed
+cusser
+cusses
+cussos
+custom
+custos
+cutely
+cutest
+cutesy
+cuteys
+cuties
+cutins
+cutlas
+cutler
+cutlet
+cutoff
+cutout
+cutter
+cuttle
+cutups
+cuvees
+cyanic
+cyanid
+cyanin
+cyborg
+cycads
+cycled
+cycler
+cycles
+cyclic
+cyclin
+cyclos
+cyders
+cyeses
+cyesis
+cygnet
+cymars
+cymbal
+cymene
+cymlin
+cymoid
+cymols
+cymose
+cymous
+cynics
+cypher
+cypres
+cyprus
+cystic
+cytons
+dabbed
+dabber
+dabble
+dachas
+dacite
+dacker
+dacoit
+dacron
+dactyl
+daddle
+dadgum
+dadoed
+dadoes
+daedal
+daemon
+daffed
+dafter
+daftly
+daggas
+dagger
+daggle
+dagoba
+dagoes
+dahlia
+dahoon
+daiker
+daikon
+daimen
+daimio
+daimon
+daimyo
+dainty
+daises
+dakoit
+dalasi
+daledh
+daleth
+dalles
+dalton
+damage
+damans
+damars
+damask
+dammar
+dammed
+dammer
+dammit
+damned
+damner
+damped
+dampen
+damper
+damply
+damsel
+damson
+danced
+dancer
+dances
+dander
+dandle
+danged
+danger
+dangle
+dangly
+danios
+danish
+danker
+dankly
+daphne
+dapped
+dapper
+dapple
+darbar
+darers
+darics
+daring
+darked
+darken
+darker
+darkey
+darkie
+darkle
+darkly
+darned
+darnel
+darner
+darted
+darter
+dartle
+dashed
+dasher
+dashes
+dashis
+dassie
+datary
+datcha
+daters
+dating
+dative
+dattos
+datums
+datura
+daubed
+dauber
+daubes
+daubry
+daunts
+dauted
+dautie
+davens
+davies
+davits
+dawdle
+dawing
+dawned
+dawted
+dawtie
+daybed
+dayfly
+daylit
+dazing
+dazzle
+deacon
+deaden
+deader
+deadly
+deafen
+deafer
+deafly
+deairs
+dealer
+deaned
+dearer
+dearie
+dearly
+dearth
+deasil
+deaths
+deathy
+deaved
+deaves
+debags
+debark
+debars
+debase
+debate
+debeak
+debits
+debone
+debris
+debtor
+debugs
+debunk
+debuts
+debyes
+decade
+decafs
+decals
+decamp
+decane
+decant
+decare
+decays
+deceit
+decent
+decern
+decide
+decile
+decked
+deckel
+decker
+deckle
+declaw
+decoct
+decode
+decors
+decoys
+decree
+decury
+dedans
+deduce
+deduct
+deeded
+deejay
+deemed
+deepen
+deeper
+deeply
+deewan
+deface
+defame
+defang
+defats
+defeat
+defect
+defend
+defers
+deffer
+defied
+defier
+defies
+defile
+define
+deflea
+defoam
+defogs
+deform
+defrag
+defray
+defter
+deftly
+defuel
+defund
+defuse
+defuze
+degage
+degame
+degami
+degerm
+degree
+degums
+degust
+dehorn
+dehort
+deiced
+deicer
+deices
+deific
+deigns
+deisms
+deists
+deixis
+deject
+dekare
+deking
+dekkos
+delate
+delays
+delead
+delete
+delfts
+delict
+delime
+delish
+delist
+deltas
+deltic
+delude
+deluge
+deluxe
+delved
+delver
+delves
+demand
+demark
+demast
+demean
+dement
+demies
+demise
+demits
+demobs
+demode
+demoed
+demons
+demote
+demure
+demurs
+denari
+denars
+denary
+dengue
+denial
+denied
+denier
+denies
+denims
+denned
+denote
+denser
+dental
+dented
+dentil
+dentin
+denude
+deodar
+depart
+depend
+deperm
+depict
+deploy
+depone
+deport
+depose
+depots
+depths
+depute
+deputy
+derail
+derate
+derats
+derays
+deride
+derive
+dermal
+dermas
+dermic
+dermis
+derris
+desalt
+desand
+descry
+desert
+design
+desire
+desist
+desman
+desmid
+desorb
+desoxy
+despot
+detach
+detail
+detain
+detect
+detent
+deters
+detest
+detick
+detour
+deuced
+deuces
+devein
+devels
+devest
+device
+devils
+devise
+devoid
+devoir
+devons
+devote
+devour
+devout
+dewans
+dewars
+dewier
+dewily
+dewing
+dewlap
+dewool
+deworm
+dexies
+dexter
+dextro
+dezinc
+dharma
+dharna
+dhobis
+dholes
+dhooly
+dhoora
+dhooti
+dhotis
+dhurna
+dhutis
+diacid
+diadem
+dialed
+dialer
+dialog
+diamin
+diaper
+diapir
+diatom
+diazin
+dibbed
+dibber
+dibble
+dibbuk
+dicast
+dicers
+dicier
+dicing
+dicked
+dicker
+dickey
+dickie
+dicots
+dictum
+didact
+diddle
+diddly
+didies
+didoes
+dieing
+dienes
+dieoff
+diesel
+dieses
+diesis
+dieted
+dieter
+differ
+digamy
+digest
+digged
+digger
+dights
+digits
+diglot
+dikdik
+dikers
+diking
+diktat
+dilate
+dildoe
+dildos
+dilled
+dilute
+dimers
+dimity
+dimmed
+dimmer
+dimout
+dimple
+dimply
+dimwit
+dinars
+dindle
+dinero
+diners
+dinged
+dinger
+dinges
+dingey
+dinghy
+dingle
+dingus
+dining
+dinked
+dinkey
+dinkly
+dinkum
+dinned
+dinner
+dinted
+diobol
+diodes
+dioecy
+dioxan
+dioxid
+dioxin
+diplex
+diploe
+dipnet
+dipody
+dipole
+dipped
+dipper
+dipsas
+dipsos
+diquat
+dirams
+dirdum
+direct
+direly
+direst
+dirges
+dirham
+dirked
+dirled
+dirndl
+disarm
+disbar
+disbud
+disced
+discos
+discus
+diseur
+dished
+dishes
+disked
+dismal
+dismay
+dismes
+disown
+dispel
+dissed
+disses
+distal
+distil
+disuse
+dither
+dittos
+ditzes
+diuron
+divans
+divers
+divert
+divest
+divide
+divine
+diving
+divots
+diwans
+dixits
+dizens
+djebel
+djinni
+djinns
+djinny
+doable
+doated
+dobber
+dobbin
+dobies
+doblas
+doblon
+dobras
+dobros
+dobson
+docent
+docile
+docked
+docker
+docket
+doctor
+dodder
+dodged
+dodgem
+dodger
+dodges
+dodoes
+doffed
+doffer
+dogdom
+dogear
+dogeys
+dogged
+dogger
+doggie
+dogies
+dogleg
+dogmas
+dognap
+doiled
+doings
+doited
+doling
+dollar
+dolled
+dollop
+dolman
+dolmas
+dolmen
+dolors
+dolour
+domain
+domine
+doming
+domino
+donate
+donees
+dongas
+dongle
+donjon
+donkey
+donnas
+donned
+donnee
+donors
+donsie
+donuts
+donzel
+doobie
+doodad
+doodle
+doodoo
+doofus
+doolee
+doolie
+doomed
+doowop
+doozer
+doozie
+dopant
+dopers
+dopier
+dopily
+doping
+dorado
+dorbug
+dories
+dormer
+dormie
+dormin
+dorper
+dorsad
+dorsal
+dorsel
+dorser
+dorsum
+dosage
+dosers
+dosing
+dossal
+dossed
+dossel
+dosser
+dosses
+dossil
+dotage
+dotard
+doters
+dotier
+doting
+dotted
+dottel
+dotter
+dottle
+double
+doubly
+doubts
+douche
+doughs
+dought
+doughy
+doulas
+doumas
+dourah
+douras
+dourer
+dourly
+doused
+douser
+douses
+dovens
+dovish
+dowels
+dowers
+dowery
+dowing
+downed
+downer
+dowsed
+dowser
+dowses
+doxies
+doyens
+doyley
+dozens
+dozers
+dozier
+dozily
+dozing
+drably
+drachm
+draffs
+draffy
+drafts
+drafty
+dragee
+draggy
+dragon
+drails
+drains
+drakes
+dramas
+drawee
+drawer
+drawls
+drawly
+drayed
+dreads
+dreams
+dreamt
+dreamy
+drears
+dreary
+drecks
+drecky
+dredge
+dreggy
+dreich
+dreidl
+dreigh
+drench
+dressy
+driegh
+driers
+driest
+drifts
+drifty
+drills
+drinks
+drippy
+drivel
+driven
+driver
+drives
+drogue
+droids
+droits
+drolls
+drolly
+dromon
+droned
+droner
+drones
+drongo
+drools
+drooly
+droops
+droopy
+dropsy
+drosky
+drossy
+drouks
+drouth
+droved
+drover
+droves
+drownd
+drowns
+drowse
+drowsy
+drudge
+druggy
+druids
+drumly
+drunks
+drupes
+druses
+dryads
+dryers
+dryest
+drying
+dryish
+drylot
+dually
+dubbed
+dubber
+dubbin
+ducats
+ducked
+ducker
+duckie
+ductal
+ducted
+duddie
+dudeen
+duding
+dudish
+dueled
+dueler
+duelli
+duello
+duende
+duenna
+dueted
+duffel
+duffer
+duffle
+dugong
+dugout
+duiker
+duking
+dulcet
+dulias
+dulled
+duller
+dulses
+dumbed
+dumber
+dumbly
+dumbos
+dumdum
+dumped
+dumper
+dunams
+dunces
+dunged
+dunite
+dunked
+dunker
+dunlin
+dunned
+dunner
+dunted
+duolog
+duomos
+dupers
+dupery
+duping
+duplex
+dupped
+durbar
+duress
+durian
+during
+durion
+durned
+durocs
+durras
+durrie
+durums
+dusked
+dusted
+duster
+dustup
+duties
+duvets
+dwarfs
+dweebs
+dweeby
+dwells
+dwined
+dwines
+dyable
+dyadic
+dybbuk
+dyeing
+dyings
+dyking
+dynamo
+dynast
+dynein
+dynels
+dynode
+dyvour
+eagers
+eagled
+eagles
+eaglet
+eagres
+earbud
+earful
+earing
+earlap
+earned
+earner
+earths
+earthy
+earwax
+earwig
+easels
+easier
+easies
+easily
+easing
+easter
+eaters
+eatery
+eating
+ebbets
+ebbing
+ebooks
+ecarte
+ecesic
+ecesis
+echard
+eching
+echini
+echoed
+echoer
+echoes
+echoey
+echoic
+eclair
+eclats
+ectype
+eczema
+eddied
+eddies
+eddoes
+edemas
+edenic
+edgers
+edgier
+edgily
+edging
+edible
+edicts
+ediles
+edited
+editor
+educed
+educes
+educts
+eelier
+eerier
+eerily
+efface
+effect
+effete
+effigy
+efflux
+effort
+effuse
+egesta
+egests
+eggars
+eggcup
+eggers
+egging
+eggnog
+egises
+egoism
+egoist
+egress
+egrets
+eiders
+eidola
+eighth
+eights
+eighty
+eikons
+either
+ejecta
+ejects
+ekuele
+elains
+elands
+elapid
+elapse
+elated
+elater
+elates
+elbows
+elders
+eldest
+elects
+elegit
+elemis
+eleven
+elevon
+elfins
+elfish
+elicit
+elided
+elides
+elints
+elites
+elixir
+elmier
+elodea
+eloign
+eloins
+eloped
+eloper
+elopes
+eluant
+eluate
+eluded
+eluder
+eludes
+eluent
+eluted
+elutes
+eluvia
+elvers
+elvish
+elytra
+emails
+embalm
+embank
+embark
+embars
+embays
+embeds
+embers
+emblem
+embody
+emboli
+emboly
+embosk
+emboss
+embows
+embrue
+embryo
+emceed
+emcees
+emdash
+emeers
+emends
+emerge
+emerod
+emeses
+emesis
+emetic
+emetin
+emeute
+emigre
+emmers
+emmets
+emodin
+emoted
+emoter
+emotes
+empale
+empery
+empire
+employ
+emydes
+enable
+enacts
+enamel
+enamor
+enates
+enatic
+encage
+encamp
+encase
+encash
+encina
+encode
+encore
+encyst
+endash
+endear
+enders
+ending
+endite
+endive
+endows
+endrin
+endued
+endues
+endure
+enduro
+energy
+enface
+enfold
+engage
+engild
+engine
+engird
+engirt
+englut
+engram
+engulf
+enhalo
+enigma
+enisle
+enjoin
+enjoys
+enlace
+enlist
+enmesh
+enmity
+ennead
+ennuis
+ennuye
+enokis
+enolic
+enosis
+enough
+enrage
+enrapt
+enrich
+enrobe
+enroll
+enrols
+enroot
+enserf
+ensign
+ensile
+ensoul
+ensued
+ensues
+ensure
+entail
+entera
+enters
+entice
+entire
+entity
+entoil
+entomb
+entrap
+entree
+enured
+enures
+envied
+envier
+envies
+enviro
+envois
+envoys
+enwind
+enwomb
+enwrap
+enzyme
+enzyms
+eocene
+eolian
+eolith
+eonian
+eonism
+eosine
+eosins
+epacts
+eparch
+ephahs
+ephebe
+ephebi
+ephods
+ephori
+ephors
+epical
+epigon
+epilog
+epimer
+epizoa
+epochs
+epodes
+eponym
+epopee
+eposes
+equals
+equate
+equids
+equine
+equips
+equity
+erased
+eraser
+erases
+erbium
+erects
+erenow
+ergate
+ergots
+ericas
+eringo
+ermine
+eroded
+erodes
+eroses
+erotic
+errand
+errant
+errata
+erring
+errors
+ersatz
+eructs
+erugos
+erupts
+ervils
+eryngo
+escape
+escarp
+escars
+eschar
+eschew
+escort
+escots
+escrow
+escudo
+eskars
+eskers
+espial
+espied
+espies
+esprit
+essays
+essoin
+estate
+esteem
+esters
+estops
+estral
+estray
+estrin
+estrum
+estrus
+etalon
+etamin
+etapes
+etched
+etcher
+etches
+eterne
+ethane
+ethene
+ethers
+ethics
+ethion
+ethnic
+ethnos
+ethoxy
+ethyls
+ethyne
+etoile
+etudes
+etwees
+etymon
+euchre
+eulogy
+eunuch
+eupnea
+eureka
+euripi
+euroky
+eutaxy
+evaded
+evader
+evades
+evened
+evener
+evenly
+events
+everts
+evicts
+eviler
+evilly
+evince
+evited
+evites
+evoked
+evoker
+evokes
+evolve
+evulse
+evzone
+exacta
+exacts
+exalts
+examen
+exarch
+exceed
+excels
+except
+excess
+excide
+excise
+excite
+excuse
+exedra
+exempt
+exequy
+exerts
+exeunt
+exhale
+exhort
+exhume
+exiled
+exiler
+exiles
+exilic
+exines
+exists
+exited
+exodoi
+exodos
+exodus
+exogen
+exonic
+exonym
+exotic
+expand
+expats
+expect
+expels
+expend
+expert
+expire
+expiry
+export
+expose
+exsect
+exsert
+extant
+extend
+extent
+extern
+extoll
+extols
+extort
+extras
+exuded
+exudes
+exults
+exurbs
+exuvia
+eyases
+eyebar
+eyecup
+eyeful
+eyeing
+eyelet
+eyelid
+eyries
+fabber
+fabled
+fabler
+fables
+fabric
+facade
+facers
+facete
+facets
+faceup
+facial
+facile
+facing
+factor
+facula
+fadein
+faders
+fading
+faenas
+faerie
+failed
+faille
+fainer
+faints
+faired
+fairer
+fairly
+faiths
+fajita
+fakeer
+fakers
+fakery
+faking
+fakirs
+falces
+falcon
+fallal
+fallen
+faller
+fallow
+falser
+falsie
+falter
+family
+famine
+faming
+famish
+famous
+famuli
+fandom
+fanega
+fanfic
+fangas
+fanged
+fanion
+fanjet
+fanned
+fanner
+fanons
+fantod
+fantom
+fanums
+faqirs
+faquir
+farads
+farced
+farcer
+farces
+farcie
+farded
+fardel
+farers
+farfal
+farfel
+farina
+faring
+farles
+farmed
+farmer
+farrow
+farted
+fasces
+fascia
+fashed
+fashes
+fasted
+fasten
+faster
+father
+fathom
+fating
+fatwas
+faucal
+fauces
+faucet
+faulds
+faults
+faulty
+faunae
+faunal
+faunas
+fauves
+favela
+favism
+favors
+favour
+fawned
+fawner
+faxing
+faying
+fazing
+fealty
+feared
+fearer
+feased
+feases
+feasts
+feater
+featly
+feazed
+feazes
+feckly
+fecund
+fedora
+feeble
+feebly
+feeder
+feeing
+feeler
+feezed
+feezes
+feigns
+feijoa
+feints
+feirie
+feists
+feisty
+felids
+feline
+fellah
+fellas
+felled
+feller
+felloe
+fellow
+felons
+felony
+felsic
+felted
+female
+femmes
+femora
+femurs
+fenced
+fencer
+fences
+fended
+fender
+fennec
+fennel
+feoffs
+ferals
+ferbam
+feriae
+ferial
+ferias
+ferine
+ferity
+ferlie
+fermis
+ferrel
+ferret
+ferric
+ferrum
+ferula
+ferule
+fervid
+fervor
+fescue
+fessed
+fesses
+festal
+fester
+fetial
+fetich
+feting
+fetish
+fetors
+fetted
+fetter
+fettle
+feuars
+feudal
+feuded
+feuing
+fevers
+fewest
+feyest
+fezzed
+fezzes
+fiacre
+fiance
+fiasco
+fibbed
+fibber
+fibers
+fibres
+fibril
+fibrin
+fibula
+fiches
+fichus
+ficins
+fickle
+fickly
+ficoes
+fiddle
+fiddly
+fidged
+fidges
+fidget
+fields
+fiends
+fierce
+fiesta
+fifers
+fifing
+fifths
+figged
+fights
+figure
+filers
+filets
+filial
+filing
+filled
+filler
+filles
+fillet
+fillip
+fillos
+filmed
+filmer
+filmic
+filmis
+filose
+filter
+filths
+filthy
+fimble
+finale
+finals
+fincas
+finder
+finely
+finery
+finest
+finger
+finial
+fining
+finish
+finite
+finito
+finked
+finned
+fiords
+fipple
+fiques
+firers
+firing
+firkin
+firman
+firmed
+firmer
+firmly
+firsts
+firths
+fiscal
+fished
+fisher
+fishes
+fisted
+fistic
+fitchy
+fitful
+fitted
+fitter
+fivers
+fixate
+fixers
+fixing
+fixity
+fixure
+fizgig
+fizzed
+fizzer
+fizzes
+fizzle
+fjelds
+fjords
+flabby
+flacks
+flacon
+flaggy
+flagon
+flails
+flairs
+flaked
+flaker
+flakes
+flakey
+flambe
+flamed
+flamen
+flamer
+flames
+flanes
+flange
+flanks
+flappy
+flared
+flares
+flashy
+flasks
+flatly
+flatus
+flaunt
+flauta
+flavin
+flavor
+flawed
+flaxen
+flaxes
+flayed
+flayer
+fleams
+fleche
+flecks
+flecky
+fledge
+fledgy
+fleece
+fleech
+fleecy
+fleers
+fleets
+flench
+flense
+fleshy
+fletch
+fleury
+flexed
+flexes
+flexor
+fleyed
+flicks
+fliers
+fliest
+flight
+flimsy
+flinch
+flings
+flints
+flinty
+flippy
+flirts
+flirty
+flitch
+flited
+flites
+floats
+floaty
+flocci
+flocks
+flocky
+flongs
+floods
+flooey
+flooie
+floors
+floosy
+floozy
+floppy
+florae
+floral
+floras
+floret
+florid
+florin
+flossy
+flotas
+flours
+floury
+flouts
+flowed
+flower
+fluent
+fluffs
+fluffy
+fluids
+fluish
+fluked
+flukes
+flukey
+flumed
+flumes
+flumps
+flunks
+flunky
+fluors
+flurry
+fluted
+fluter
+flutes
+flutey
+fluxed
+fluxes
+fluyts
+flyboy
+flybys
+flyers
+flying
+flyman
+flymen
+flyoff
+flysch
+flyted
+flytes
+flyway
+foaled
+foamed
+foamer
+fobbed
+fodder
+fodgel
+foehns
+foeman
+foemen
+foetal
+foetid
+foetor
+foetus
+fogbow
+fogdog
+fogeys
+fogged
+fogger
+fogies
+foible
+foiled
+foined
+foison
+foists
+folate
+folded
+folder
+foldup
+foleys
+foliar
+folios
+folium
+folkie
+folksy
+folles
+follis
+follow
+foment
+fomite
+fonded
+fonder
+fondle
+fondly
+fondue
+fondus
+fontal
+foodie
+fooled
+footed
+footer
+footie
+footle
+footsy
+foozle
+fopped
+forage
+forams
+forays
+forbad
+forbid
+forbye
+forced
+forcer
+forces
+forded
+fordid
+foreby
+foredo
+forego
+forest
+forgat
+forged
+forger
+forges
+forget
+forgot
+forint
+forked
+forker
+formal
+format
+formed
+formee
+former
+formes
+formic
+formol
+formyl
+fornix
+forrit
+fortes
+fortis
+forums
+forwhy
+fossae
+fossas
+fosses
+fossil
+foster
+fought
+fouled
+fouler
+foully
+founds
+founts
+fourth
+foveae
+foveal
+foveas
+fowled
+fowler
+foxier
+foxily
+foxing
+foyers
+fozier
+fracas
+fracti
+fraena
+frails
+fraise
+framed
+framer
+frames
+francs
+franks
+frappe
+frater
+frauds
+frayed
+frazil
+freaks
+freaky
+freely
+freers
+freest
+freeze
+french
+frenum
+frenzy
+freres
+fresco
+fretty
+friars
+friary
+fridge
+friend
+friers
+frieze
+friges
+fright
+frigid
+frijol
+frills
+frilly
+fringe
+fringy
+frisee
+frises
+frisks
+frisky
+frites
+friths
+fritts
+frivol
+frized
+frizer
+frizes
+frizzy
+frocks
+froggy
+frolic
+fronds
+fronts
+frosts
+frosty
+froths
+frothy
+frouzy
+frowns
+frowst
+frowsy
+frowzy
+frozen
+frugal
+fruits
+fruity
+frumps
+frumpy
+frusta
+fryers
+frying
+frypan
+fubbed
+fucoid
+fucose
+fucous
+fuddle
+fudged
+fudges
+fueled
+fueler
+fugato
+fugged
+fugios
+fugled
+fugles
+fugued
+fugues
+fuhrer
+fulcra
+fulfil
+fulgid
+fulham
+fullam
+fulled
+fuller
+fulmar
+fumble
+fumers
+fumets
+fumier
+fuming
+fumuli
+funded
+funder
+fundic
+fundus
+funest
+fungal
+fungic
+fungus
+funked
+funker
+funkia
+funned
+funnel
+funner
+furane
+furans
+furfur
+furies
+furled
+furler
+furore
+furors
+furred
+furrow
+furzes
+fusain
+fusees
+fusels
+fusile
+fusils
+fusing
+fusion
+fussed
+fusser
+fusses
+fustic
+fusuma
+futile
+futons
+future
+futzed
+futzes
+fuzees
+fuzils
+fuzing
+fuzzed
+fuzzes
+fylfot
+fynbos
+fyttes
+gabbed
+gabber
+gabble
+gabbro
+gabies
+gabion
+gabled
+gables
+gaboon
+gadded
+gadder
+gaddis
+gadfly
+gadget
+gadids
+gadoid
+gaeing
+gaffed
+gaffer
+gaffes
+gagaku
+gagers
+gagged
+gagger
+gaggle
+gaging
+gagman
+gagmen
+gaiety
+gaijin
+gained
+gainer
+gainly
+gainst
+gaited
+gaiter
+galago
+galahs
+galaxy
+galeae
+galeas
+galena
+galere
+galiot
+galled
+gallet
+galley
+gallic
+gallon
+gallop
+gallus
+galoot
+galops
+galore
+galosh
+galyac
+galyak
+gamays
+gambas
+gambes
+gambia
+gambir
+gambit
+gamble
+gambol
+gamely
+gamers
+gamest
+gamete
+gamier
+gamily
+gamine
+gaming
+gamins
+gammas
+gammed
+gammer
+gammon
+gamuts
+gander
+ganefs
+ganevs
+ganged
+ganger
+gangly
+gangue
+ganjah
+ganjas
+gannet
+ganofs
+ganoid
+gantry
+gaoled
+gaoler
+gapers
+gaping
+gapped
+garage
+garbed
+garble
+garcon
+gardai
+garden
+garget
+gargle
+garish
+garlic
+garner
+garnet
+garote
+garred
+garret
+garron
+garter
+garths
+garvey
+gasbag
+gascon
+gashed
+gasher
+gashes
+gasify
+gasket
+gaskin
+gaslit
+gasman
+gasmen
+gasped
+gasper
+gassed
+gasser
+gasses
+gasted
+gaster
+gateau
+gaters
+gather
+gating
+gators
+gauche
+gaucho
+gauged
+gauger
+gauges
+gaults
+gaumed
+gauzes
+gavage
+gavels
+gavial
+gavots
+gawked
+gawker
+gawped
+gawper
+gawsie
+gayals
+gaydar
+gayest
+gayety
+gazabo
+gazars
+gazebo
+gazers
+gazing
+gazoos
+gazump
+geared
+gecked
+geckos
+geegaw
+geeing
+geeked
+geests
+geezer
+geisha
+gelada
+gelant
+gelate
+gelati
+gelato
+gelcap
+gelded
+gelder
+gelees
+gelled
+gemmae
+gemmed
+gemote
+gemots
+gender
+genera
+genets
+geneva
+genial
+genies
+genips
+genius
+genoas
+genome
+genoms
+genres
+genros
+gentes
+gentil
+gentle
+gently
+gentoo
+gentry
+geodes
+geodic
+geoids
+gerahs
+gerbil
+gerent
+german
+germen
+gerund
+gestes
+gestic
+getter
+getups
+gewgaw
+geyser
+gharri
+gharry
+ghauts
+ghazis
+gherao
+ghetto
+ghibli
+ghosts
+ghosty
+ghouls
+ghylls
+giants
+giaour
+gibbed
+gibber
+gibbet
+gibbon
+gibers
+gibing
+giblet
+gibson
+giddap
+gieing
+gifted
+giftee
+gigged
+giggle
+giggly
+giglet
+giglot
+gigolo
+gigots
+gigues
+gilded
+gilder
+gilled
+giller
+gillie
+gimbal
+gimels
+gimlet
+gimmal
+gimmes
+gimmie
+gimped
+gingal
+ginger
+gingko
+ginkgo
+ginned
+ginner
+gipons
+gipped
+gipper
+girded
+girder
+girdle
+girlie
+girned
+girons
+girted
+girths
+gismos
+gitano
+gitted
+gittin
+givens
+givers
+giving
+gizmos
+glaces
+glacis
+glades
+gladly
+glaire
+glairs
+glairy
+glaive
+glamor
+glance
+glands
+glared
+glares
+glassy
+glazed
+glazer
+glazes
+gleams
+gleamy
+gleans
+glebae
+glebes
+gledes
+gleeds
+gleeks
+gleets
+gleety
+glegly
+gleyed
+glibly
+glided
+glider
+glides
+gliffs
+glimed
+glimes
+glints
+glinty
+glioma
+glitch
+glitzy
+gloams
+gloats
+global
+globby
+globed
+globes
+globin
+gloggs
+glomus
+glooms
+gloomy
+gloppy
+gloria
+glossa
+glossy
+glosts
+glouts
+gloved
+glover
+gloves
+glowed
+glower
+glozed
+glozes
+glucan
+gluers
+gluier
+gluily
+gluing
+glumes
+glumly
+glumpy
+glunch
+gluons
+glutei
+gluten
+glutes
+glycan
+glycin
+glycol
+glycyl
+glyphs
+gnarls
+gnarly
+gnarrs
+gnatty
+gnawed
+gnawer
+gneiss
+gnomes
+gnomic
+gnomon
+gnoses
+gnosis
+goaded
+goaled
+goalie
+goanna
+goatee
+gobang
+gobans
+gobbed
+gobbet
+gobble
+gobies
+goblet
+goblin
+goboes
+gobony
+goddam
+godded
+godets
+godown
+godson
+godwit
+gofers
+goffer
+goggle
+goggly
+goglet
+goings
+goiter
+goitre
+golden
+golder
+golems
+golfed
+golfer
+golosh
+gombos
+gomers
+gomuti
+gonefs
+goners
+gonged
+goniff
+gonifs
+gonion
+gonium
+gonofs
+gonoph
+goodby
+goodie
+goodly
+goofed
+googly
+googol
+gooier
+gooney
+goonie
+gooral
+goosed
+gooses
+goosey
+gopher
+gorals
+gorged
+gorger
+gorges
+gorget
+gorgon
+gorhen
+gorier
+gorily
+goring
+gormed
+gorses
+gospel
+gossan
+gossip
+gotcha
+gothic
+gotten
+gouged
+gouger
+gouges
+gourde
+gourds
+govern
+gowans
+gowany
+gowned
+goyish
+graals
+grabby
+graben
+graced
+graces
+graded
+grader
+grades
+gradin
+gradus
+grafts
+graham
+grails
+grains
+grainy
+gramas
+gramma
+gramme
+grampa
+gramps
+grands
+grange
+granny
+grants
+granum
+grapes
+grapey
+graphs
+grappa
+grasps
+grassy
+grated
+grater
+grates
+gratin
+gratis
+graved
+gravel
+graven
+graver
+graves
+gravid
+grayed
+grayer
+grayly
+grazed
+grazer
+grazes
+grease
+greasy
+greats
+greave
+grebes
+greeds
+greedy
+greens
+greeny
+greets
+gregos
+greige
+gremmy
+greyed
+greyer
+greyly
+grided
+grides
+griefs
+grieve
+griffe
+griffs
+grifts
+grigri
+grille
+grills
+grilse
+grimed
+grimes
+grimly
+grinch
+grinds
+gringa
+gringo
+griots
+griped
+griper
+gripes
+gripey
+grippe
+grippy
+grisly
+grison
+grists
+griths
+gritty
+grivet
+groans
+groats
+grocer
+groggy
+groins
+grooms
+groove
+groovy
+groped
+groper
+gropes
+grosze
+groszy
+grotto
+grotty
+grouch
+ground
+groups
+grouse
+grouts
+grouty
+groved
+grovel
+groves
+grower
+growls
+growly
+growth
+groyne
+grubby
+grudge
+gruels
+gruffs
+gruffy
+grugru
+grumes
+grumps
+grumpy
+grunge
+grungy
+grunts
+grutch
+guacos
+guaiac
+guanay
+guanin
+guanos
+guards
+guavas
+guenon
+guests
+guffaw
+guggle
+guglet
+guided
+guider
+guides
+guidon
+guilds
+guiled
+guiles
+guilts
+guilty
+guimpe
+guinea
+guiros
+guised
+guises
+guitar
+gulags
+gulden
+gulfed
+gulled
+gullet
+gulley
+gulped
+gulper
+gumbos
+gummas
+gummed
+gummer
+gundog
+gunite
+gunman
+gunmen
+gunned
+gunnel
+gunnen
+gunner
+gunsel
+gurged
+gurges
+gurgle
+gurnet
+gurney
+gushed
+gusher
+gushes
+gusset
+gussie
+gusted
+guttae
+gutted
+gutter
+guttle
+guying
+guyots
+guzzle
+gweduc
+gybing
+gyozas
+gypped
+gypper
+gypsum
+gyrase
+gyrate
+gyrene
+gyring
+gyrons
+gyrose
+gyttja
+gyving
+habile
+habits
+haboob
+haceks
+hacked
+hackee
+hacker
+hackie
+hackle
+hackly
+hading
+hadith
+hadjee
+hadjes
+hadjis
+hadron
+haeing
+haemal
+haemic
+haemin
+haeres
+haffet
+haffit
+hafted
+hafter
+hagbut
+hagdon
+hagged
+haggis
+haggle
+haikus
+hailed
+hailer
+haints
+hairdo
+haired
+hajjes
+hajjis
+hakeem
+hakims
+halala
+halals
+halers
+haleru
+halest
+halide
+halids
+haling
+halite
+hallah
+hallal
+hallel
+halloa
+halloo
+hallos
+hallot
+hallow
+hallux
+halmas
+haloed
+haloes
+haloid
+halons
+halted
+halter
+halutz
+halvah
+halvas
+halved
+halves
+hamada
+hamals
+hamate
+hamaul
+hamlet
+hammal
+hammam
+hammed
+hammer
+hamper
+hamuli
+hamzah
+hamzas
+hances
+handax
+handed
+hander
+handle
+hangar
+hanged
+hanger
+hangul
+hangup
+haniwa
+hanked
+hanker
+hankie
+hansas
+hansel
+hanses
+hansom
+hanted
+hantle
+haoles
+happed
+happen
+hapten
+haptic
+harbor
+harden
+harder
+hardly
+hareem
+harems
+haring
+harked
+harken
+harlot
+harmed
+harmer
+harmin
+harped
+harper
+harpin
+harrow
+hartal
+hashed
+hashes
+haslet
+hasped
+hassel
+hassle
+hasted
+hasten
+hastes
+hatbox
+haters
+hatful
+hating
+hatpin
+hatred
+hatted
+hatter
+haughs
+hauled
+hauler
+haulms
+haulmy
+haunch
+haunts
+hausen
+havens
+havers
+having
+havior
+havocs
+hawala
+hawing
+hawked
+hawker
+hawkey
+hawkie
+hawser
+hawses
+hayers
+haying
+haymow
+hazans
+hazard
+hazels
+hazers
+hazier
+hazily
+hazing
+hazmat
+hazzan
+headed
+header
+healed
+healer
+health
+heaped
+heaper
+hearer
+hearse
+hearth
+hearts
+hearty
+heated
+heater
+heaths
+heathy
+heaume
+heaved
+heaven
+heaver
+heaves
+heckle
+hectic
+hector
+heddle
+heders
+hedged
+hedger
+hedges
+heeded
+heeder
+heehaw
+heeled
+heeler
+heezed
+heezes
+hefted
+hefter
+hegari
+hegira
+heifer
+height
+heiled
+heinie
+heired
+heishi
+heists
+hejira
+heliac
+helios
+helium
+helled
+heller
+hellos
+helmed
+helmet
+helots
+helped
+helper
+helved
+helves
+hemins
+hemmed
+hemmer
+hemoid
+hempen
+hempie
+henbit
+henges
+henley
+hennas
+henrys
+hented
+hepcat
+hepper
+heptad
+herald
+herbal
+herbed
+herded
+herder
+herdic
+hereat
+hereby
+herein
+hereof
+hereon
+heresy
+hereto
+heriot
+hermae
+hermai
+hermit
+hernia
+heroes
+heroic
+heroin
+herons
+herpes
+hetero
+hetman
+heuchs
+heughs
+hewers
+hewing
+hexade
+hexads
+hexane
+hexers
+hexing
+hexone
+hexose
+hexyls
+heyday
+heydey
+hiatal
+hiatus
+hiccup
+hickey
+hickie
+hidden
+hiders
+hiding
+hieing
+hiemal
+higgle
+higher
+highly
+highth
+hights
+hijabs
+hijack
+hijrah
+hijras
+hikers
+hiking
+hilled
+hiller
+hilloa
+hillos
+hilted
+hinder
+hinged
+hinger
+hinges
+hinted
+hinter
+hipped
+hipper
+hippie
+hippos
+hirees
+hirers
+hiring
+hirple
+hirsel
+hirsle
+hispid
+hissed
+hisser
+hisses
+histed
+hither
+hitman
+hitmen
+hitter
+hiving
+hoagie
+hoards
+hoarse
+hoaxed
+hoaxer
+hoaxes
+hobbed
+hobber
+hobbit
+hobble
+hobnob
+hoboed
+hoboes
+hocked
+hocker
+hockey
+hodads
+hodden
+hoddin
+hoeing
+hogans
+hogged
+hogger
+hogget
+hognut
+hogtie
+hoicks
+hoiden
+hoised
+hoises
+hoists
+hokier
+hokily
+hoking
+hokums
+holard
+holden
+holder
+holdup
+holier
+holies
+holily
+holing
+holism
+holist
+holked
+hollas
+holler
+holloa
+holloo
+hollos
+hollow
+holmic
+holpen
+homage
+hombre
+homely
+homers
+homeys
+homier
+homies
+homily
+homing
+hominy
+hommos
+honans
+honcho
+hondas
+hondle
+honers
+honest
+honeys
+honied
+honing
+honked
+honker
+honkey
+honkie
+honors
+honour
+hooded
+hoodie
+hoodoo
+hooeys
+hoofed
+hoofer
+hookah
+hookas
+hooked
+hooker
+hookey
+hookup
+hoolie
+hooped
+hooper
+hoopla
+hoopoe
+hoopoo
+hoorah
+hooray
+hootch
+hooted
+hooter
+hooved
+hoover
+hooves
+hopers
+hoping
+hopped
+hopper
+hopple
+horahs
+horary
+horded
+hordes
+horned
+hornet
+horrid
+horror
+horsed
+horses
+horsey
+horste
+horsts
+hosels
+hosers
+hoseys
+hosier
+hosing
+hostas
+hosted
+hostel
+hostly
+hotbed
+hotbox
+hotdog
+hotels
+hotrod
+hotted
+hotter
+hottie
+houdah
+hounds
+houris
+hourly
+housed
+housel
+houser
+houses
+hovels
+hovers
+howdah
+howdie
+howffs
+howked
+howled
+howler
+howlet
+hoyden
+hoyles
+hryvna
+hubbly
+hubbub
+hubcap
+hubris
+huckle
+huddle
+huffed
+hugely
+hugest
+hugged
+hugger
+huipil
+hulked
+hulled
+huller
+hulloa
+hulloo
+hullos
+humane
+humans
+humate
+humble
+humbly
+humbug
+humeri
+hummed
+hummer
+hummus
+humors
+humour
+humped
+humper
+humphs
+humvee
+hunger
+hungry
+hunker
+hunkey
+hunkie
+hunted
+hunter
+huppah
+hurdle
+hurled
+hurler
+hurley
+hurrah
+hurray
+hursts
+hurter
+hurtle
+hushed
+hushes
+husked
+husker
+hussar
+hustle
+hutted
+hutzpa
+huzzah
+huzzas
+hyaena
+hyalin
+hybrid
+hybris
+hydrae
+hydras
+hydria
+hydric
+hydrid
+hydros
+hyenas
+hyenic
+hyetal
+hymens
+hymnal
+hymned
+hyoids
+hypers
+hyphae
+hyphal
+hyphen
+hyping
+hypnic
+hypoed
+hysons
+hyssop
+iambic
+iambus
+iatric
+ibexes
+ibices
+ibidem
+ibises
+icebox
+icecap
+iceman
+icemen
+ichors
+icicle
+iciest
+icings
+ickers
+ickier
+ickily
+icones
+iconic
+ideals
+ideate
+idiocy
+idioms
+idiots
+idlers
+idlest
+idling
+idylls
+iffier
+igging
+igloos
+ignify
+ignite
+ignore
+iguana
+ihrams
+ilexes
+iliads
+illest
+illite
+illude
+illume
+imaged
+imager
+images
+imagos
+imaret
+imaums
+imbalm
+imbark
+imbeds
+imbibe
+imbody
+imbrue
+imbued
+imbues
+imides
+imidic
+imines
+immane
+immesh
+immies
+immune
+immure
+impact
+impair
+impala
+impale
+impark
+impart
+impawn
+impede
+impels
+impend
+imphee
+imping
+impish
+impled
+impone
+import
+impose
+impost
+improv
+impugn
+impure
+impute
+inaner
+inanes
+inarch
+inarms
+inborn
+inbred
+incage
+incant
+incase
+incent
+incept
+incest
+inched
+incher
+inches
+incise
+incite
+inclip
+incogs
+income
+incony
+incubi
+incult
+incurs
+incuse
+indaba
+indeed
+indene
+indent
+indict
+indies
+indign
+indigo
+indite
+indium
+indole
+indols
+indoor
+indows
+indris
+induce
+induct
+indued
+indues
+indult
+inerts
+infall
+infamy
+infant
+infare
+infect
+infers
+infest
+infill
+infirm
+inflow
+influx
+infold
+inform
+infuse
+ingate
+ingest
+ingles
+ingots
+ingulf
+inhale
+inhaul
+inhere
+inhume
+inions
+inject
+injure
+injury
+inkers
+inkier
+inking
+inkjet
+inkles
+inkpot
+inlace
+inlaid
+inland
+inlays
+inlets
+inlier
+inmate
+inmesh
+inmost
+innage
+innate
+inners
+inning
+inpour
+inputs
+inroad
+inruns
+inrush
+insane
+inseam
+insect
+insert
+insets
+inside
+insist
+insole
+insoul
+inspan
+instal
+instar
+instep
+instil
+insult
+insure
+intact
+intake
+intend
+intent
+intern
+inters
+intima
+intime
+intine
+intomb
+intone
+intort
+intown
+intron
+intros
+intuit
+inturn
+inulin
+inured
+inures
+inurns
+invade
+invars
+invent
+invert
+invest
+invite
+invoke
+inwall
+inward
+inwind
+inwove
+inwrap
+iodate
+iodide
+iodids
+iodine
+iodins
+iodise
+iodism
+iodize
+iodous
+iolite
+ionics
+ionise
+ionium
+ionize
+ionone
+ipecac
+irades
+irater
+ireful
+irenic
+irides
+iridic
+irised
+irises
+iritic
+iritis
+irking
+irokos
+ironed
+ironer
+irones
+ironic
+irreal
+irrupt
+isatin
+ischia
+island
+islets
+isling
+isobar
+isogon
+isohel
+isolog
+isomer
+isopod
+isseis
+issued
+issuer
+issues
+isthmi
+istles
+italic
+itched
+itches
+itemed
+iterum
+itself
+ixodid
+ixoras
+ixtles
+izzard
+jabbed
+jabber
+jabiru
+jabots
+jacals
+jacana
+jackal
+jacked
+jacker
+jacket
+jading
+jadish
+jaeger
+jagers
+jagged
+jagger
+jagras
+jaguar
+jailed
+jailer
+jailor
+jalaps
+jalops
+jalopy
+jambed
+jambes
+jammed
+jammer
+jangle
+jangly
+japans
+japers
+japery
+japing
+jarful
+jargon
+jarina
+jarrah
+jarred
+jarvey
+jasmin
+jasper
+jassid
+jauked
+jaunce
+jaunts
+jaunty
+jauped
+jawans
+jawing
+jaygee
+jayvee
+jazzbo
+jazzed
+jazzer
+jazzes
+jeaned
+jebels
+jeeing
+jeeped
+jeered
+jeerer
+jehads
+jejuna
+jejune
+jelled
+jellos
+jennet
+jerboa
+jereed
+jerids
+jerked
+jerker
+jerkin
+jerrid
+jersey
+jessed
+jesses
+jested
+jester
+jesuit
+jetlag
+jetons
+jetsam
+jetsom
+jetted
+jetton
+jetway
+jewels
+jewing
+jezail
+jibbed
+jibber
+jibers
+jibing
+jicama
+jigged
+jigger
+jiggle
+jiggly
+jigsaw
+jihads
+jilted
+jilter
+jiminy
+jimmie
+jimper
+jimply
+jingal
+jingko
+jingle
+jingly
+jinked
+jinker
+jinnee
+jinnis
+jinxed
+jinxes
+jitney
+jitter
+jivers
+jivier
+jiving
+jnanas
+jobbed
+jobber
+jockey
+jockos
+jocose
+jocund
+jogged
+jogger
+joggle
+johnny
+joined
+joiner
+joints
+joists
+jojoba
+jokers
+jokier
+jokily
+joking
+jolted
+jolter
+jorams
+jordan
+jorums
+joseph
+joshed
+josher
+joshes
+josses
+jostle
+jotted
+jotter
+jouals
+jouked
+joules
+jounce
+jouncy
+journo
+jousts
+jovial
+jowars
+jowing
+jowled
+joyful
+joying
+joyous
+joypop
+jubbah
+jubhah
+jubile
+judder
+judged
+judger
+judges
+judoka
+jugate
+jugful
+jugged
+juggle
+jugula
+jugums
+juiced
+juicer
+juices
+jujube
+juking
+juleps
+jumbal
+jumble
+jumbos
+jumped
+jumper
+juncos
+jungle
+jungly
+junior
+junked
+junker
+junket
+junkie
+juntas
+juntos
+jupons
+jurant
+jurats
+jurels
+juried
+juries
+jurist
+jurors
+justed
+juster
+justle
+justly
+jutted
+kababs
+kabaka
+kabala
+kabars
+kabaya
+kabiki
+kabobs
+kabuki
+kaffir
+kafirs
+kaftan
+kahuna
+kaiaks
+kainit
+kaiser
+kakapo
+kalams
+kalian
+kalifs
+kaliph
+kalium
+kalmia
+kalong
+kalpac
+kalpak
+kalpas
+kamala
+kamiks
+kamsin
+kanaka
+kanban
+kanjis
+kantar
+kanzus
+kaolin
+kaonic
+kapoks
+kappas
+kaputt
+karate
+karats
+karmas
+karmic
+karoos
+kaross
+karroo
+karsts
+kasbah
+kashas
+kasher
+kation
+kauris
+kavass
+kayaks
+kayles
+kayoed
+kayoes
+kazoos
+kebabs
+kebars
+kebbie
+keblah
+kebobs
+kecked
+keckle
+keddah
+kedged
+kedges
+keeked
+keeled
+keened
+keener
+keenly
+keeper
+keeves
+kefirs
+kegged
+kegger
+kegler
+keleps
+kelims
+keloid
+kelped
+kelpie
+kelson
+kelter
+kelvin
+kenafs
+kendos
+kenned
+kennel
+kentes
+kepped
+keppen
+kerbed
+kerfed
+kermes
+kermis
+kerned
+kernel
+kernes
+kerria
+kersey
+ketene
+ketols
+ketone
+ketose
+kettle
+kevels
+kevils
+kewpie
+keying
+keypad
+keypal
+keyset
+keyway
+khadis
+khakis
+khalif
+khaphs
+khazen
+khedah
+khedas
+kheths
+khoums
+kiangs
+kiaugh
+kibbeh
+kibbes
+kibbis
+kibble
+kibeis
+kibitz
+kiblah
+kiblas
+kibosh
+kicked
+kicker
+kickup
+kidded
+kidder
+kiddie
+kiddos
+kidnap
+kidney
+kidvid
+kilims
+killed
+killer
+killie
+kilned
+kilted
+kilter
+kiltie
+kimchi
+kimono
+kinara
+kinase
+kinder
+kindle
+kindly
+kinema
+kinged
+kingly
+kinins
+kinked
+kiosks
+kipped
+kippen
+kipper
+kirned
+kirsch
+kirtle
+kishka
+kishke
+kismat
+kismet
+kissed
+kisser
+kisses
+kitbag
+kiters
+kithed
+kithes
+kiting
+kitsch
+kitted
+kittel
+kitten
+kittle
+klatch
+klaxon
+klepht
+klepto
+klicks
+klongs
+kloofs
+kludge
+kludgy
+kluged
+kluges
+klutzy
+knacks
+knarry
+knaurs
+knaves
+knawel
+knawes
+kneads
+kneels
+knells
+knifed
+knifer
+knifes
+knight
+knives
+knobby
+knocks
+knolls
+knolly
+knosps
+knotty
+knouts
+knower
+knowns
+knubby
+knurls
+knurly
+koalas
+kobold
+koines
+kolhoz
+kolkoz
+kombus
+konked
+koodoo
+kookie
+kopeck
+kopeks
+kopjes
+koppas
+koppie
+korats
+kormas
+koruna
+koruny
+kosher
+kotows
+koumis
+koumys
+kouroi
+kouros
+kousso
+kowtow
+kraals
+krafts
+kraits
+kraken
+krater
+krauts
+kreeps
+krewes
+krills
+krises
+kronen
+kroner
+kronor
+kronur
+krooni
+kroons
+krubis
+krubut
+kuchen
+kudzus
+kugels
+kukris
+kulaki
+kulaks
+kultur
+kumiss
+kummel
+kurgan
+kurtas
+kussos
+kuvasz
+kvases
+kvells
+kvetch
+kwacha
+kwanza
+kyacks
+kybosh
+kyries
+kythed
+kythes
+laager
+labara
+labels
+labial
+labile
+labium
+labors
+labour
+labret
+labrum
+lacers
+laches
+lacier
+lacily
+lacing
+lacked
+lacker
+lackey
+lactam
+lactic
+lacuna
+lacune
+ladder
+laddie
+ladens
+laders
+ladies
+lading
+ladino
+ladled
+ladler
+ladles
+ladron
+lagans
+lagend
+lagers
+lagged
+lagger
+lagoon
+laguna
+lagune
+lahars
+laical
+laichs
+laighs
+lairds
+laired
+lakers
+lakier
+laking
+lallan
+lalled
+lambda
+lambed
+lamber
+lambie
+lamedh
+lameds
+lamely
+lament
+lamest
+lamiae
+lamias
+lamina
+laming
+lammed
+lampad
+lampas
+lamped
+lanais
+lanate
+lanced
+lancer
+lances
+lancet
+landau
+landed
+lander
+lanely
+langue
+langur
+lanker
+lankly
+lanner
+lanose
+lanugo
+laogai
+lapdog
+lapels
+lapful
+lapins
+lapped
+lapper
+lappet
+lapsed
+lapser
+lapses
+lapsus
+laptop
+larded
+larder
+lardon
+larees
+larger
+larges
+largos
+lariat
+larine
+larked
+larker
+larrup
+larums
+larvae
+larval
+larvas
+larynx
+lascar
+lasers
+lashed
+lasher
+lashes
+lasing
+lasses
+lassie
+lassis
+lassos
+lasted
+laster
+lastly
+lateen
+lately
+latens
+latent
+latest
+lathed
+lather
+lathes
+lathis
+latigo
+latina
+latino
+latish
+latkes
+latria
+latten
+latter
+lattes
+lattin
+lauans
+lauded
+lauder
+laughs
+launce
+launch
+laurae
+lauras
+laurel
+lavabo
+lavage
+lavash
+laveer
+lavers
+laving
+lavish
+lawful
+lawine
+lawing
+lawman
+lawmen
+lawyer
+laxest
+laxity
+layers
+laying
+layins
+layman
+laymen
+layoff
+layout
+layups
+lazars
+lazied
+lazier
+lazies
+lazily
+lazing
+lazuli
+leachy
+leaded
+leaden
+leader
+leafed
+league
+leaked
+leaker
+leally
+lealty
+leaned
+leaner
+leanly
+leaped
+leaper
+learns
+learnt
+leased
+leaser
+leases
+leasts
+leaved
+leaven
+leaver
+leaves
+lebens
+leched
+lecher
+leches
+lechwe
+lectin
+lector
+ledger
+ledges
+leered
+leeway
+lefter
+legacy
+legals
+legate
+legato
+legend
+legers
+legged
+leggin
+legion
+legist
+legits
+legman
+legmen
+legong
+legume
+lehuas
+lekked
+lekvar
+lemans
+lemmas
+lemons
+lemony
+lemurs
+lender
+length
+lenite
+lenity
+lensed
+lenses
+lenten
+lentic
+lentil
+lentos
+leones
+lepers
+leptin
+lepton
+lesbos
+lesion
+lessee
+lessen
+lesser
+lesson
+lessor
+lethal
+lethes
+letted
+letter
+letups
+leucin
+leudes
+leukon
+levant
+leveed
+levees
+levels
+levers
+levied
+levier
+levies
+levins
+levity
+lewder
+lewdly
+lexeme
+lexica
+lezzes
+lezzie
+liable
+liaise
+lianas
+lianes
+liangs
+liards
+libber
+libels
+libers
+libido
+liblab
+librae
+libras
+lichee
+lichen
+liches
+lichis
+lichts
+licked
+licker
+lictor
+lidars
+lidded
+lieder
+liefer
+liefly
+lieges
+lienal
+lierne
+liever
+lifers
+lifted
+lifter
+ligand
+ligans
+ligase
+ligate
+ligers
+lights
+lignan
+lignin
+ligula
+ligule
+ligure
+likely
+likens
+likers
+likest
+liking
+likuta
+lilacs
+lilied
+lilies
+lilted
+limans
+limbas
+limbed
+limber
+limbic
+limbos
+limbus
+limens
+limeys
+limier
+limina
+liming
+limits
+limmer
+limned
+limner
+limnic
+limpas
+limped
+limper
+limpet
+limpid
+limply
+limpsy
+limuli
+linacs
+linage
+linden
+lineal
+linear
+linens
+lineny
+liners
+lineup
+lingam
+lingas
+linger
+lingua
+linier
+lining
+linins
+linked
+linker
+linkup
+linnet
+linsey
+linted
+lintel
+linter
+lintol
+linums
+lipase
+lipide
+lipids
+lipins
+lipoid
+lipoma
+lipped
+lippen
+lipper
+liquid
+liquor
+liroth
+lisles
+lisped
+lisper
+lissom
+listed
+listee
+listel
+listen
+lister
+litany
+litchi
+liters
+lither
+lithia
+lithic
+lithos
+litmus
+litres
+litten
+litter
+little
+lively
+livens
+livers
+livery
+livest
+livier
+living
+livres
+livyer
+lizard
+llamas
+llanos
+loaded
+loader
+loafed
+loafer
+loamed
+loaned
+loaner
+loathe
+loaves
+lobate
+lobbed
+lobber
+lobule
+locale
+locals
+locate
+lochan
+lochia
+locked
+locker
+locket
+lockup
+locoed
+locoes
+locule
+loculi
+locums
+locust
+lodens
+lodged
+lodger
+lodges
+lofted
+lofter
+logans
+logged
+logger
+loggia
+loggie
+logics
+logier
+logily
+logins
+logion
+logjam
+logons
+logway
+loided
+loiter
+lolled
+loller
+lollop
+lomein
+loment
+lonely
+loners
+longan
+longed
+longer
+longes
+longly
+looeys
+loofah
+loofas
+looies
+looing
+looked
+looker
+lookup
+loomed
+looney
+loonie
+looped
+looper
+loosed
+loosen
+looser
+looses
+looted
+looter
+lopers
+loping
+lopped
+lopper
+loquat
+lorans
+lorded
+lordly
+loreal
+lorica
+lories
+losels
+losers
+losing
+losses
+lotahs
+lotion
+lotted
+lotter
+lottes
+lottos
+louche
+louden
+louder
+loudly
+loughs
+louies
+loumas
+lounge
+loungy
+louped
+loupen
+loupes
+loured
+loused
+louses
+louted
+louver
+louvre
+lovage
+lovats
+lovely
+lovers
+loving
+lowboy
+lowers
+lowery
+lowest
+lowing
+lowish
+loxing
+lubber
+lubing
+lubric
+lucent
+lucern
+lucite
+lucked
+luckie
+lucres
+luetic
+luffas
+luffed
+lugers
+lugged
+lugger
+luggie
+luging
+lulled
+luller
+lumbar
+lumber
+lumens
+lumina
+lummox
+lumped
+lumpen
+lumper
+lunacy
+lunars
+lunate
+lunets
+lungan
+lunged
+lungee
+lunger
+lunges
+lungis
+lungyi
+lunier
+lunies
+lunker
+lunted
+lunula
+lunule
+lupine
+lupins
+lupous
+lurdan
+lurers
+luring
+lurked
+lurker
+lushed
+lusher
+lushes
+lushly
+lusted
+luster
+lustra
+lustre
+luteal
+lutein
+luteum
+luting
+lutist
+lutzes
+luxate
+luxury
+lyases
+lycees
+lyceum
+lychee
+lyches
+lycras
+lyings
+lymphs
+lynxes
+lyrate
+lyrics
+lyrism
+lyrist
+lysate
+lysine
+lysing
+lysins
+lyssas
+lyttae
+lyttas
+macaco
+macaws
+macers
+maches
+machos
+macing
+mackle
+macled
+macles
+macons
+macron
+macros
+macula
+macule
+madame
+madams
+madcap
+madded
+madden
+madder
+madman
+madmen
+madras
+madres
+madtom
+maduro
+maenad
+maffia
+mafias
+maftir
+maggot
+magian
+magics
+magilp
+maglev
+magmas
+magnet
+magnum
+magots
+magpie
+maguey
+mahoes
+mahout
+mahzor
+maiden
+maigre
+maihem
+mailed
+mailer
+mailes
+maills
+maimed
+maimer
+mainly
+maists
+maizes
+majors
+makars
+makers
+makeup
+making
+makuta
+malady
+malars
+malate
+malfed
+malgre
+malice
+malign
+maline
+malkin
+malled
+mallee
+mallei
+mallet
+mallow
+maloti
+malted
+maltha
+maltol
+mambas
+mambos
+mameys
+mamies
+mamluk
+mammae
+mammal
+mammas
+mammee
+mammer
+mammet
+mammey
+mammie
+mammon
+mamzer
+manage
+manana
+manats
+manche
+manege
+manful
+mangas
+mangel
+manger
+manges
+mangey
+mangle
+mangos
+maniac
+manias
+manics
+manila
+manioc
+manito
+manitu
+mannan
+mannas
+manned
+manner
+manors
+manque
+manses
+mantas
+mantel
+mantes
+mantic
+mantid
+mantis
+mantle
+mantra
+mantua
+manual
+manure
+maples
+mapped
+mapper
+maquis
+maraca
+maraud
+marble
+marbly
+marcel
+margay
+marges
+margin
+marina
+marine
+marish
+markas
+marked
+marker
+market
+markka
+markup
+marled
+marlin
+marmot
+maroon
+marque
+marram
+marred
+marrer
+marron
+marrow
+marses
+marshy
+marted
+marten
+martin
+martyr
+marvel
+masala
+mascon
+mascot
+masers
+mashed
+masher
+mashes
+mashie
+masjid
+masked
+maskeg
+masker
+masons
+masque
+massif
+masted
+master
+mastic
+mastix
+maters
+mateys
+matier
+mating
+matins
+matres
+matrix
+matron
+matsah
+matted
+matter
+mattes
+mattin
+mature
+matzah
+matzas
+matzoh
+matzos
+matzot
+mauger
+maugre
+mauled
+mauler
+maumet
+maunds
+maundy
+mauves
+mavens
+mavies
+mavins
+mawing
+maxima
+maxims
+maxing
+maxixe
+maybes
+mayday
+mayest
+mayfly
+mayhap
+mayhem
+maying
+mayors
+maypop
+mayvin
+mazard
+mazers
+mazier
+mazily
+mazing
+mazuma
+mbiras
+meadow
+meager
+meagre
+mealie
+meaner
+meanie
+meanly
+measle
+measly
+meatal
+meated
+meatus
+meccas
+medaka
+medals
+meddle
+medfly
+mediad
+mediae
+medial
+median
+medias
+medick
+medico
+medics
+medina
+medium
+medius
+medlar
+medley
+medusa
+meeker
+meekly
+meeter
+meetly
+megara
+megilp
+megohm
+megrim
+mehndi
+meikle
+meinie
+melded
+melder
+melees
+melena
+melled
+mellow
+melody
+meloid
+melons
+melted
+melter
+melton
+member
+memoir
+memory
+menace
+menads
+menage
+mended
+mender
+menhir
+menial
+meninx
+mensae
+mensal
+mensas
+mensch
+mensed
+menses
+mental
+mentee
+mentor
+mentum
+menudo
+meoued
+meowed
+mercer
+merces
+merdes
+merely
+merest
+merged
+mergee
+merger
+merges
+merino
+merits
+merles
+merlin
+merlon
+merlot
+merman
+mermen
+mescal
+meshed
+meshes
+mesial
+mesian
+mesnes
+mesons
+messan
+messed
+messes
+mestee
+metage
+metals
+metate
+meteor
+metepa
+meters
+method
+methyl
+metier
+meting
+metols
+metope
+metred
+metres
+metric
+metros
+mettle
+metump
+mewing
+mewled
+mewler
+mezcal
+mezuza
+mezzos
+miaous
+miaows
+miasma
+miasms
+miauls
+micell
+miched
+miches
+mickey
+mickle
+micron
+micros
+midair
+midcap
+midday
+midden
+middle
+midges
+midget
+midgut
+midleg
+midrib
+midsts
+midway
+miffed
+miggle
+mights
+mighty
+mignon
+mihrab
+mikado
+miking
+mikron
+mikvah
+mikveh
+mikvos
+mikvot
+miladi
+milady
+milage
+milded
+milden
+milder
+mildew
+mildly
+milers
+milieu
+milium
+milked
+milker
+milled
+miller
+milles
+millet
+milneb
+milord
+milpas
+milted
+milter
+mimbar
+mimeos
+mimers
+mimics
+miming
+mimosa
+minced
+mincer
+minces
+minded
+minder
+miners
+mingle
+minify
+minima
+minims
+mining
+minion
+minish
+minium
+minkes
+minnow
+minors
+minted
+minter
+minuet
+minute
+minxes
+minyan
+mioses
+miosis
+miotic
+mirage
+mirier
+miring
+mirins
+mirker
+mirror
+mirths
+mirzas
+misact
+misadd
+misaim
+misate
+miscue
+miscut
+misdid
+miseat
+misers
+misery
+misfed
+misfit
+mishap
+miskal
+mislay
+misled
+mislie
+mislit
+mismet
+mispen
+missal
+missay
+missed
+missel
+misses
+misset
+missis
+missus
+misted
+mister
+misuse
+miters
+mither
+mitier
+mitral
+mitred
+mitres
+mitten
+mixers
+mixing
+mixups
+mizens
+mizuna
+mizzen
+mizzle
+mizzly
+moaned
+moaner
+moated
+mobbed
+mobber
+mobcap
+mobile
+mobled
+mochas
+mocked
+mocker
+mockup
+modals
+models
+modems
+modern
+modest
+modica
+modify
+modish
+module
+moduli
+modulo
+mogged
+moggie
+moghul
+moguls
+mohair
+mohawk
+mohels
+mohurs
+moiety
+moiled
+moiler
+moirai
+moires
+mojoes
+molars
+molded
+molder
+molies
+moline
+mollah
+mollie
+moloch
+molted
+molten
+molter
+moment
+mommas
+momser
+momzer
+monads
+mondes
+mondos
+moneys
+monger
+mongoe
+mongol
+mongos
+mongst
+monied
+monies
+monish
+monism
+monist
+monkey
+monody
+montes
+months
+mooing
+moolah
+moolas
+mooley
+mooned
+mooner
+moored
+mooted
+mooter
+mopeds
+mopers
+mopery
+mopier
+moping
+mopish
+mopoke
+mopped
+mopper
+moppet
+morale
+morals
+morays
+morbid
+moreen
+morels
+morgan
+morgen
+morgue
+morion
+morons
+morose
+morpho
+morphs
+morris
+morros
+morrow
+morsel
+mortal
+mortar
+morula
+mosaic
+moseys
+moshav
+moshed
+mosher
+moshes
+mosque
+mossed
+mosser
+mosses
+mostly
+motels
+motets
+mother
+motifs
+motile
+motion
+motive
+motley
+motmot
+motors
+mottes
+mottle
+mottos
+moujik
+moulds
+mouldy
+moulin
+moults
+mounds
+mounts
+mourns
+moused
+mouser
+mouses
+mousey
+mousse
+mouths
+mouthy
+mouton
+movers
+movies
+moving
+mowers
+mowing
+moxies
+muches
+muchly
+mucins
+mucked
+mucker
+muckle
+mucluc
+mucoid
+mucors
+mucosa
+mucose
+mucous
+mudbug
+mudcap
+mudcat
+mudded
+mudder
+muddle
+muddly
+mudhen
+mudras
+muesli
+muffed
+muffin
+muffle
+muftis
+mugful
+muggar
+mugged
+muggee
+mugger
+muggur
+mughal
+mujiks
+mukluk
+muktuk
+mulcts
+muleta
+muleys
+muling
+mulish
+mullah
+mullas
+mulled
+mullen
+muller
+mullet
+mulley
+mumble
+mumbly
+mummed
+mummer
+mumped
+mumper
+mungos
+muntin
+muonic
+murals
+murder
+murein
+murids
+murine
+muring
+murker
+murkly
+murmur
+murphy
+murras
+murres
+murrey
+murrha
+muscae
+muscat
+muscid
+muscle
+muscly
+musers
+museum
+mushed
+musher
+mushes
+musick
+musics
+musing
+musjid
+muskeg
+musket
+muskie
+muskit
+muskox
+muslin
+mussed
+mussel
+musses
+musted
+mustee
+muster
+musths
+mutant
+mutase
+mutate
+mutely
+mutest
+mutine
+muting
+mutiny
+mutism
+mutons
+mutter
+mutton
+mutual
+mutuel
+mutule
+muumuu
+muzhik
+muzjik
+muzzle
+myases
+myasis
+mycele
+myelin
+mylars
+mynahs
+myomas
+myopes
+myopia
+myopic
+myoses
+myosin
+myosis
+myotic
+myriad
+myrica
+myrrhs
+myrtle
+myself
+mysids
+mysost
+mystic
+mythic
+mythoi
+mythos
+myxoid
+myxoma
+nabbed
+nabber
+nabobs
+nachas
+naches
+nachos
+nacred
+nacres
+nadirs
+naevus
+naffed
+nagana
+nagged
+nagger
+naiads
+nailed
+nailer
+nairas
+nairus
+naiver
+naives
+nakfas
+naleds
+namely
+namers
+naming
+nances
+nandin
+nanism
+nankin
+nannie
+napalm
+napery
+napkin
+nappas
+napped
+napper
+nappes
+nappie
+narcos
+narial
+narine
+narked
+narrow
+narwal
+nasals
+nasial
+nasion
+nastic
+natant
+nation
+native
+natron
+natter
+nature
+naught
+nausea
+nautch
+navaid
+navars
+navels
+navies
+nawabs
+naysay
+nazify
+nearby
+neared
+nearer
+nearly
+neaten
+neater
+neatly
+nebula
+nebule
+nebuly
+necked
+necker
+nectar
+needed
+needer
+needle
+negate
+neighs
+nekton
+nellie
+nelson
+neocon
+neoned
+nepeta
+nephew
+nereid
+nereis
+neroli
+nerols
+nerved
+nerves
+nesses
+nested
+nester
+nestle
+nestor
+nether
+netops
+netted
+netter
+nettle
+nettly
+neumes
+neumic
+neural
+neuron
+neuter
+nevoid
+newbie
+newels
+newest
+newies
+newish
+newsie
+newton
+niacin
+nibbed
+nibble
+nicads
+nicely
+nicest
+nicety
+niched
+niches
+nicked
+nickel
+nicker
+nickle
+nicols
+nidate
+nidget
+nidify
+niding
+nieces
+nielli
+niello
+nieves
+niffer
+nigger
+niggle
+niggly
+nighed
+nigher
+nights
+nighty
+nihils
+nilgai
+nilgau
+nilled
+nimble
+nimbly
+nimbus
+nimmed
+nimrod
+ninety
+ninjas
+ninons
+ninths
+niobic
+nipped
+nipper
+nipple
+niseis
+niters
+nitery
+nitons
+nitres
+nitric
+nitrid
+nitril
+nitros
+nitwit
+nixies
+nixing
+nizams
+nobble
+nobler
+nobles
+nobody
+nocent
+nocked
+nodded
+nodder
+noddle
+nodose
+nodous
+nodule
+noesis
+noetic
+nogged
+noggin
+noised
+noises
+nomads
+nomina
+nomism
+nonage
+nonart
+nonces
+noncom
+nonego
+nonets
+nonfan
+nonfat
+nongay
+nonman
+nonmen
+nonpar
+nontax
+nonuse
+nonwar
+nonyls
+noodge
+noodle
+noogie
+nookie
+noosed
+nooser
+nooses
+nopals
+nordic
+norias
+norite
+normal
+normed
+norths
+noshed
+nosher
+noshes
+nosier
+nosily
+nosing
+nostoc
+notary
+notate
+noters
+nother
+notice
+notify
+noting
+notion
+nougat
+nought
+nounal
+nouses
+novels
+novena
+novice
+noways
+nowise
+noyade
+nozzle
+nuance
+nubbin
+nubble
+nubbly
+nubias
+nubile
+nubuck
+nuchae
+nuchal
+nuclei
+nudely
+nudest
+nudged
+nudger
+nudges
+nudies
+nudism
+nudist
+nudity
+nudnik
+nugget
+nuking
+nullah
+nulled
+numbat
+numbed
+number
+numbly
+numina
+nuncio
+nuncle
+nurled
+nursed
+nurser
+nurses
+nutant
+nutate
+nutlet
+nutmeg
+nutria
+nuzzle
+nyalas
+oafish
+oakier
+oakums
+oaring
+oaters
+obeahs
+obelia
+obelus
+obento
+obeyed
+obeyer
+obiism
+object
+objets
+oblast
+oblate
+oblige
+oblong
+oboist
+oboles
+obolus
+obsess
+obtain
+obtect
+obtest
+obtund
+obtuse
+obvert
+occult
+occupy
+occurs
+oceans
+ocelli
+ocelot
+ochers
+ochery
+ochone
+ochrea
+ochred
+ochres
+ocicat
+ockers
+ocreae
+octads
+octane
+octans
+octant
+octave
+octavo
+octets
+octopi
+octroi
+octyls
+ocular
+oculus
+oddest
+oddish
+oddity
+odeons
+odeums
+odious
+odists
+odiums
+odored
+odours
+odyles
+oedema
+oeuvre
+offals
+offcut
+offend
+offers
+office
+offing
+offish
+offkey
+offset
+oftest
+ogdoad
+oghams
+ogival
+ogives
+oglers
+ogling
+ogress
+ogrish
+ogrism
+ohmage
+oidium
+oilcan
+oilcup
+oilers
+oilier
+oilily
+oiling
+oilman
+oilmen
+oilway
+oinked
+okapis
+okayed
+oldest
+oldies
+oldish
+oleate
+olefin
+oleine
+oleins
+oleums
+olingo
+olives
+omasum
+ombers
+ombres
+omegas
+omelet
+omened
+omenta
+onager
+onagri
+onions
+oniony
+onlays
+online
+onload
+onrush
+onsets
+onside
+onuses
+onward
+onyxes
+oocyst
+oocyte
+oodles
+oogamy
+oogeny
+oohing
+oolite
+oolith
+oology
+oolong
+oomiac
+oomiak
+oompah
+oomphs
+oorali
+ootids
+oozier
+oozily
+oozing
+opaque
+opened
+opener
+openly
+operas
+operon
+ophite
+opiate
+opined
+opines
+opioid
+opiums
+oppose
+oppugn
+opsins
+optics
+optima
+optime
+opting
+option
+opuses
+orache
+oracle
+orally
+orange
+orangs
+orangy
+orated
+orates
+orator
+orbier
+orbing
+orbits
+orcein
+orchid
+orchil
+orchis
+orcins
+ordain
+ordeal
+orders
+ordure
+oreads
+oreide
+orfray
+organs
+orgone
+oribis
+oriels
+orient
+origan
+origin
+oriole
+orisha
+orison
+orlons
+orlops
+ormers
+ormolu
+ornate
+ornery
+oroide
+orphan
+orphic
+orpine
+orpins
+orrery
+orrice
+oryxes
+oscine
+oscula
+oscule
+osetra
+osiers
+osmics
+osmium
+osmole
+osmols
+osmose
+osmous
+osmund
+osprey
+ossein
+ossify
+osteal
+ostium
+ostler
+ostomy
+otalgy
+others
+otiose
+otitic
+otitis
+ottars
+ottava
+otters
+ouched
+ouches
+oughts
+ounces
+ouphes
+ourang
+ourari
+ourebi
+ousels
+ousted
+ouster
+outact
+outadd
+outage
+outask
+outate
+outbeg
+outbid
+outbox
+outbuy
+outbye
+outcry
+outdid
+outeat
+outers
+outfit
+outfly
+outfox
+outgas
+outgun
+outhit
+outing
+outjut
+outlaw
+outlay
+outled
+outlet
+outlie
+outman
+output
+outran
+outrig
+outrow
+outrun
+outsat
+outsaw
+outsay
+outsee
+outset
+outsin
+outsit
+outvie
+outwar
+outwit
+ouzels
+ovally
+overdo
+overed
+overly
+ovibos
+ovines
+ovisac
+ovoids
+ovolos
+ovonic
+ovular
+ovules
+owlets
+owlish
+owners
+owning
+oxalic
+oxalis
+oxbows
+oxcart
+oxeyes
+oxford
+oxides
+oxidic
+oximes
+oxlike
+oxlips
+oxtail
+oxters
+oxygen
+oyezes
+oyster
+ozalid
+ozones
+ozonic
+pablum
+pacers
+pachas
+pacier
+pacify
+pacing
+packed
+packer
+packet
+packly
+padauk
+padded
+padder
+paddle
+padles
+padnag
+padouk
+padres
+paeans
+paella
+paeons
+paesan
+pagans
+pagers
+paging
+pagoda
+pagods
+paiked
+painch
+pained
+paints
+painty
+paired
+paisan
+paisas
+pajama
+pakeha
+pakora
+palace
+palais
+palapa
+palate
+paleae
+paleal
+palely
+palest
+palets
+palier
+paling
+palish
+palled
+pallet
+pallia
+pallid
+pallor
+palmar
+palmed
+palmer
+palpal
+palped
+palpus
+palter
+paltry
+pampas
+pamper
+panada
+panama
+pandas
+pander
+pandit
+panels
+panfry
+panful
+pangas
+panged
+pangen
+panics
+panier
+panini
+panino
+panned
+panner
+pannes
+panted
+pantie
+pantos
+pantry
+panzer
+papacy
+papain
+papaws
+papaya
+papers
+papery
+papism
+papist
+pappus
+papula
+papule
+papyri
+parade
+paramo
+parang
+paraph
+parcel
+pardah
+pardee
+pardie
+pardon
+parent
+pareos
+parers
+pareus
+pareve
+parged
+parges
+parget
+pargos
+pariah
+parian
+paries
+paring
+parish
+parity
+parkas
+parked
+parker
+parlay
+parled
+parles
+parley
+parlor
+parody
+parole
+parols
+parous
+parral
+parred
+parrel
+parrot
+parsec
+parsed
+parser
+parses
+parson
+partan
+parted
+partly
+parton
+parura
+parure
+parvis
+parvos
+pascal
+paseos
+pashas
+pashed
+pashes
+pastas
+pasted
+pastel
+paster
+pastes
+pastie
+pastil
+pastis
+pastor
+pastry
+pataca
+patchy
+patens
+patent
+paters
+pathos
+patina
+patine
+patins
+patios
+patois
+patrol
+patron
+patted
+pattee
+patten
+patter
+pattie
+patzer
+paulin
+paunch
+pauper
+pausal
+paused
+pauser
+pauses
+pavane
+pavans
+paveed
+pavers
+paving
+pavins
+pavior
+pavise
+pawers
+pawing
+pawned
+pawnee
+pawner
+pawnor
+pawpaw
+paxwax
+payday
+payees
+payers
+paying
+paynim
+payoff
+payola
+payors
+payout
+pazazz
+peaced
+peaces
+peachy
+peages
+peahen
+peaked
+pealed
+peanut
+pearls
+pearly
+peasen
+peases
+peavey
+pebble
+pebbly
+pecans
+pechan
+peched
+pecked
+pecker
+pecten
+pectic
+pectin
+pedalo
+pedals
+pedant
+pedate
+peddle
+pedlar
+pedler
+pedros
+peeing
+peeked
+peeled
+peeler
+peened
+peered
+peerie
+pegged
+peined
+peised
+peises
+pekans
+pekins
+pekoes
+pelage
+pelite
+pellet
+pelmet
+pelota
+pelted
+pelter
+peltry
+pelves
+pelvic
+pelvis
+penang
+pencel
+pencil
+pended
+pengos
+penial
+penile
+penman
+penmen
+pennae
+penned
+penner
+pennia
+pennis
+pennon
+pensee
+pensil
+pentad
+pentyl
+penult
+penury
+peones
+people
+pepino
+peplos
+peplum
+peplus
+pepped
+pepper
+pepsin
+peptic
+peptid
+perdie
+perdue
+perdus
+pereia
+pereon
+perils
+period
+perish
+periti
+perked
+permed
+permit
+pernio
+pernod
+peroxy
+perron
+perses
+person
+perter
+pertly
+peruke
+peruse
+pesade
+peseta
+pesewa
+pester
+pestle
+pestos
+petals
+petard
+peters
+petite
+petnap
+petrel
+petrol
+petsai
+petted
+petter
+pettle
+pewees
+pewits
+pewter
+peyote
+peyotl
+phages
+pharos
+phased
+phases
+phasic
+phasis
+phatic
+phenix
+phenol
+phenom
+phenyl
+phials
+phizes
+phlegm
+phloem
+phobia
+phobic
+phoebe
+phonal
+phoned
+phones
+phoney
+phonic
+phonon
+phonos
+phooey
+photic
+photog
+photon
+photos
+phrase
+phreak
+phylae
+phylar
+phylic
+phyllo
+phylon
+phylum
+physed
+physes
+physic
+physis
+phytin
+phytol
+phyton
+piaffe
+pianic
+pianos
+piazza
+piazze
+pibals
+picara
+picaro
+pickax
+picked
+picker
+picket
+pickle
+pickup
+picnic
+picots
+picric
+piculs
+piddle
+piddly
+pidgin
+pieced
+piecer
+pieces
+pieing
+pierce
+pietas
+piffle
+pigeon
+pigged
+piggie
+piggin
+piglet
+pignus
+pignut
+pigout
+pigpen
+pigsty
+pikake
+pikers
+piking
+pilaff
+pilafs
+pilaus
+pilaws
+pileum
+pileup
+pileus
+pilfer
+piling
+pillar
+pilled
+pillow
+pilose
+pilots
+pilous
+pilule
+pimped
+pimple
+pimply
+pinang
+pinata
+pincer
+pinder
+pineal
+pinene
+pinery
+pineta
+pinged
+pinger
+pingos
+pinier
+pining
+pinion
+pinite
+pinked
+pinken
+pinker
+pinkey
+pinkie
+pinkly
+pinkos
+pinnae
+pinnal
+pinnas
+pinned
+pinner
+pinole
+pinons
+pinots
+pintas
+pintle
+pintos
+pinups
+pinyin
+pinyon
+piolet
+pionic
+pipage
+pipals
+pipers
+pipets
+pipier
+piping
+pipits
+pipkin
+pipped
+pippin
+piqued
+piques
+piquet
+piracy
+pirana
+pirate
+piraya
+pirogi
+piscos
+pistil
+pistol
+piston
+pistou
+pitaya
+pitchy
+pithed
+pitied
+pitier
+pities
+pitman
+pitmen
+pitons
+pitsaw
+pittas
+pitted
+pivots
+pixels
+pixies
+pizazz
+pizzas
+pizzaz
+pizzle
+placed
+placer
+places
+placet
+placid
+placks
+plagal
+plages
+plague
+plaguy
+plaice
+plaids
+plains
+plaint
+plaits
+planar
+planch
+planed
+planer
+planes
+planet
+planks
+plants
+plaque
+plashy
+plasma
+plasms
+platan
+plated
+platen
+plater
+plates
+platys
+playas
+played
+player
+plazas
+pleach
+pleads
+please
+pleats
+plebes
+pledge
+pleiad
+plench
+plenty
+plenum
+pleons
+pleura
+plexal
+plexes
+plexor
+plexus
+pliant
+plicae
+plical
+pliers
+plight
+plinks
+plinth
+plisky
+plisse
+ploidy
+plonks
+plotty
+plough
+plover
+plowed
+plower
+ployed
+plucks
+plucky
+plumbs
+plumed
+plumes
+plummy
+plumps
+plunge
+plunks
+plunky
+plural
+pluses
+plushy
+plutei
+pluton
+plyers
+plying
+pneuma
+poachy
+poboys
+pocked
+pocket
+podded
+podite
+podium
+podsol
+podzol
+poetic
+poetry
+pogeys
+pogies
+pogrom
+poilus
+poinds
+pointe
+points
+pointy
+poised
+poiser
+poises
+poisha
+poison
+pokers
+pokeys
+pokier
+pokies
+pokily
+poking
+polars
+polder
+poleax
+poleis
+polers
+poleyn
+police
+policy
+polies
+poling
+polios
+polish
+polite
+polity
+polkas
+polled
+pollee
+pollen
+poller
+pollex
+polyol
+polypi
+polyps
+pomace
+pomade
+pomelo
+pommee
+pommel
+pommie
+pompom
+pompon
+ponced
+ponces
+poncho
+ponded
+ponder
+ponent
+ponged
+pongee
+pongid
+ponied
+ponies
+pontes
+pontil
+ponton
+poodle
+poohed
+pooing
+pooled
+pooler
+pooped
+poorer
+pooris
+poorly
+pooves
+popery
+popgun
+popish
+poplar
+poplin
+poppas
+popped
+popper
+poppet
+popple
+popsie
+poring
+porism
+porked
+porker
+pornos
+porose
+porous
+portal
+ported
+porter
+portly
+posada
+posers
+poseur
+posher
+poshly
+posies
+posing
+posits
+posole
+posses
+posset
+possum
+postal
+posted
+poster
+postie
+postin
+postop
+potage
+potash
+potato
+potboy
+poteen
+potent
+potful
+pother
+pothos
+potion
+potman
+potmen
+potpie
+potsie
+potted
+potter
+pottle
+pottos
+potzer
+pouchy
+poufed
+pouffe
+pouffs
+pouffy
+poults
+pounce
+pounds
+poured
+pourer
+pouted
+pouter
+powder
+powers
+powter
+powwow
+poxier
+poxing
+poyous
+pozole
+praams
+prahus
+praise
+prajna
+prance
+prangs
+pranks
+prases
+prated
+prater
+prates
+prawns
+praxes
+praxis
+prayed
+prayer
+preach
+preact
+preamp
+prearm
+prebid
+prebuy
+precis
+precut
+predry
+preens
+prefab
+prefer
+prefix
+prelaw
+prelim
+preman
+premed
+premen
+premie
+premix
+preops
+prepay
+preppy
+preset
+presto
+prests
+pretax
+pretor
+pretty
+prevue
+prewar
+prexes
+preyed
+preyer
+prezes
+priapi
+priced
+pricer
+prices
+pricey
+prided
+prides
+priers
+priest
+prills
+primal
+primas
+primed
+primer
+primes
+primly
+primos
+primps
+primus
+prince
+prinks
+prints
+prions
+priors
+priory
+prised
+prises
+prisms
+prison
+prissy
+privet
+prized
+prizer
+prizes
+probed
+prober
+probes
+probit
+proems
+profit
+progun
+projet
+prolan
+proleg
+proles
+prolix
+prolog
+promos
+prompt
+prongs
+pronto
+proofs
+propel
+proper
+propyl
+prosed
+proser
+proses
+prosit
+prosos
+protea
+protei
+proton
+protyl
+proved
+proven
+prover
+proves
+prowar
+prower
+prowls
+prudes
+pruned
+pruner
+prunes
+prunus
+prutah
+prutot
+pryers
+prying
+psalms
+pseudo
+pseuds
+pshaws
+psocid
+psyche
+psycho
+psychs
+psylla
+psyops
+psywar
+pterin
+ptisan
+ptooey
+ptoses
+ptosis
+ptotic
+public
+pucker
+puddle
+puddly
+pueblo
+puffed
+puffer
+puffin
+pugged
+puggry
+pugree
+puisne
+pujahs
+puking
+pulers
+puling
+pulled
+puller
+pullet
+pulley
+pullup
+pulpal
+pulped
+pulper
+pulpit
+pulque
+pulsar
+pulsed
+pulser
+pulses
+pumelo
+pumice
+pummel
+pumped
+pumper
+punchy
+pundit
+pungle
+punier
+punily
+punish
+punjis
+punkah
+punkas
+punker
+punkey
+punkie
+punkin
+punned
+punner
+punnet
+punted
+punter
+puntos
+pupate
+pupils
+pupped
+puppet
+purana
+purdah
+purdas
+pureed
+purees
+purely
+purest
+purfle
+purged
+purger
+purges
+purify
+purine
+purins
+purism
+purist
+purity
+purled
+purlin
+purple
+purply
+purred
+pursed
+purser
+purses
+pursue
+purvey
+pushed
+pusher
+pushes
+pushup
+pusley
+pusses
+pussly
+putlog
+putoff
+putons
+putout
+putrid
+putsch
+putted
+puttee
+putter
+puttie
+putzed
+putzes
+puzzle
+pyemia
+pyemic
+pyjama
+pyknic
+pylons
+pylori
+pyoses
+pyosis
+pyrans
+pyrene
+pyrite
+pyrola
+pyrone
+pyrope
+pyrrol
+python
+pyuria
+pyxies
+qabala
+qanats
+qindar
+qintar
+qiviut
+quacks
+quacky
+quaere
+quaffs
+quagga
+quaggy
+quahog
+quaich
+quaigh
+quails
+quaint
+quaked
+quaker
+quakes
+qualia
+qualms
+qualmy
+quango
+quanta
+quants
+quarks
+quarry
+quarte
+quarto
+quarts
+quartz
+quasar
+quatre
+quaver
+qubits
+qubyte
+queans
+queasy
+queazy
+queens
+queers
+quelea
+quells
+quench
+querns
+quests
+queued
+queuer
+queues
+quezal
+quiche
+quicks
+quiets
+quiffs
+quills
+quilts
+quince
+quinic
+quinin
+quinoa
+quinol
+quinsy
+quinta
+quinte
+quints
+quippu
+quippy
+quipus
+quired
+quires
+quirks
+quirky
+quirts
+quitch
+quiver
+quohog
+quoins
+quoits
+quokka
+quolls
+quorum
+quotas
+quoted
+quoter
+quotes
+quotha
+qurush
+qwerty
+rabato
+rabats
+rabbet
+rabbin
+rabbis
+rabbit
+rabble
+rabies
+raceme
+racers
+rachet
+rachis
+racier
+racily
+racing
+racked
+racker
+racket
+rackle
+racons
+racoon
+radars
+radded
+raddle
+radial
+radian
+radios
+radish
+radium
+radius
+radome
+radons
+radula
+raffia
+raffle
+rafted
+rafter
+ragbag
+ragees
+ragged
+raggee
+raggle
+raging
+raglan
+ragman
+ragmen
+ragout
+ragtag
+ragtop
+raided
+raider
+railed
+railer
+rained
+raised
+raiser
+raises
+raisin
+raitas
+rajahs
+rakees
+rakers
+raking
+rakish
+rallye
+ralphs
+ramada
+ramate
+rambla
+ramble
+ramees
+ramets
+ramies
+ramify
+ramjet
+rammed
+rammer
+ramona
+ramose
+ramous
+ramped
+ramrod
+ramson
+ramtil
+rances
+rancho
+rancid
+rancor
+randan
+random
+ranees
+ranged
+ranger
+ranges
+ranids
+ranked
+ranker
+rankle
+rankly
+ransom
+ranted
+ranter
+ranula
+rarefy
+rarely
+rarest
+rarify
+raring
+rarity
+rascal
+rasers
+rasher
+rashes
+rashly
+rasing
+rasped
+rasper
+rassle
+raster
+rasure
+ratals
+ratans
+ratany
+ratbag
+ratels
+raters
+rather
+ratify
+ratine
+rating
+ration
+ratios
+ratite
+ratlin
+ratoon
+rattan
+ratted
+ratten
+ratter
+rattle
+rattly
+ratton
+raunch
+ravage
+ravels
+ravens
+ravers
+ravine
+raving
+ravins
+ravish
+rawest
+rawins
+rawish
+raxing
+rayahs
+raying
+rayons
+razeed
+razees
+razers
+razing
+razors
+razzed
+razzes
+reacts
+readds
+reader
+reagin
+realer
+reales
+realia
+really
+realms
+realty
+reamed
+reamer
+reaped
+reaper
+reared
+rearer
+rearms
+reason
+reatas
+reaved
+reaver
+reaves
+reavow
+rebait
+rebars
+rebate
+rebato
+rebbes
+rebeck
+rebecs
+rebels
+rebids
+rebill
+rebind
+rebody
+reboil
+rebook
+reboot
+rebops
+rebore
+reborn
+rebozo
+rebred
+rebuff
+rebuke
+rebury
+rebuts
+rebuys
+recall
+recane
+recant
+recaps
+recast
+recces
+recede
+recent
+recept
+recess
+rechew
+recipe
+recite
+recits
+recked
+reckon
+reclad
+recoal
+recoat
+recock
+recode
+recoil
+recoin
+recomb
+recons
+recook
+recopy
+record
+recork
+recoup
+rectal
+rector
+rectos
+rectum
+rectus
+recurs
+recuse
+recuts
+redact
+redans
+redate
+redbay
+redbud
+redbug
+redcap
+redded
+redden
+redder
+reddle
+redear
+redeem
+redefy
+redeny
+redeye
+redfin
+rediae
+redial
+redias
+reding
+redips
+redipt
+redleg
+redock
+redoes
+redone
+redons
+redout
+redowa
+redraw
+redrew
+redtop
+redubs
+reduce
+redyed
+redyes
+reearn
+reecho
+reechy
+reeded
+reedit
+reefed
+reefer
+reeked
+reeker
+reeled
+reeler
+reemit
+reests
+reeved
+reeves
+reface
+refall
+refect
+refeed
+refeel
+refell
+refels
+refelt
+refers
+reffed
+refile
+refill
+refilm
+refind
+refine
+refire
+refits
+reflag
+reflet
+reflew
+reflex
+reflow
+reflux
+refold
+reform
+refuel
+refuge
+refund
+refuse
+refute
+regain
+regale
+regard
+regave
+regear
+regent
+reggae
+regild
+regilt
+regime
+regina
+region
+regius
+regive
+reglet
+reglow
+reglue
+regnal
+regnum
+regret
+regrew
+regrow
+reguli
+rehabs
+rehang
+rehash
+rehear
+reheat
+reheel
+rehems
+rehire
+rehung
+reigns
+reined
+reinks
+reived
+reiver
+reives
+reject
+rejigs
+rejoin
+rekeys
+reknit
+reknot
+relace
+relaid
+reland
+relate
+relays
+relend
+relent
+relets
+releve
+relics
+relict
+relied
+relief
+relier
+relies
+reline
+relink
+relish
+relist
+relive
+reload
+reloan
+relock
+relook
+reluct
+relume
+remade
+remail
+remain
+remake
+remand
+remans
+remaps
+remark
+remate
+remedy
+remeet
+remelt
+remend
+remind
+remint
+remise
+remiss
+remits
+remixt
+remold
+remora
+remote
+remove
+remuda
+renail
+rename
+rended
+render
+renege
+renest
+renews
+renigs
+renins
+rennet
+rennin
+renown
+rental
+rented
+renter
+rentes
+renvoi
+reoils
+reopen
+repack
+repaid
+repair
+repand
+repark
+repass
+repast
+repave
+repays
+repeal
+repeat
+repegs
+repels
+repent
+reperk
+repine
+repins
+replan
+replay
+repled
+replot
+replow
+repoll
+report
+repose
+repots
+repour
+repped
+repros
+repugn
+repump
+repute
+requin
+rerack
+reread
+rerent
+rerigs
+rerise
+reroll
+reroof
+rerose
+reruns
+resaid
+resail
+resale
+resawn
+resaws
+resays
+rescue
+reseal
+reseat
+reseau
+resect
+reseda
+reseed
+reseek
+reseen
+resees
+resell
+resend
+resent
+resets
+resewn
+resews
+reshes
+reship
+reshod
+reshoe
+reshot
+reshow
+reside
+resids
+resift
+resign
+resile
+resins
+resiny
+resist
+resite
+resits
+resize
+resoak
+resods
+resold
+resole
+resorb
+resort
+resown
+resows
+respot
+rested
+rester
+result
+resume
+retack
+retags
+retail
+retain
+retake
+retape
+reteam
+retear
+retell
+retems
+retene
+retest
+retial
+retied
+reties
+retile
+retime
+retina
+retine
+retint
+retire
+retold
+retook
+retool
+retore
+retorn
+retort
+retral
+retrim
+retros
+retted
+retune
+return
+retuse
+retype
+reused
+reuses
+revamp
+reveal
+revels
+reverb
+revere
+revers
+revert
+revery
+revest
+revets
+review
+revile
+revise
+revive
+revoke
+revolt
+revote
+revues
+revved
+rewake
+reward
+rewarm
+rewash
+rewear
+reweds
+reweld
+rewets
+rewind
+rewins
+rewire
+rewoke
+reword
+rewore
+rework
+reworn
+rewove
+rewrap
+rexine
+rezero
+rezone
+rhaphe
+rhebok
+rhemes
+rhesus
+rhetor
+rheums
+rheumy
+rhinal
+rhinos
+rhodic
+rhombi
+rhombs
+rhotic
+rhumba
+rhumbs
+rhuses
+rhymed
+rhymer
+rhymes
+rhythm
+rhyton
+rialto
+riatas
+ribald
+riband
+ribbed
+ribber
+ribbon
+ribier
+riblet
+ribose
+ricers
+richen
+richer
+riches
+richly
+ricing
+ricins
+ricked
+rickey
+ricrac
+rictal
+rictus
+ridded
+ridden
+ridder
+riddle
+rident
+riders
+ridged
+ridgel
+ridges
+ridgil
+riding
+ridley
+riever
+rifely
+rifest
+riffed
+riffle
+rifled
+rifler
+rifles
+riflip
+rifted
+rigged
+rigger
+righto
+rights
+righty
+rigors
+rigour
+riling
+rilled
+rilles
+rillet
+rimers
+rimier
+riming
+rimmed
+rimmer
+rimose
+rimous
+rimple
+rinded
+ringed
+ringer
+rinsed
+rinser
+rinses
+riojas
+rioted
+rioter
+ripely
+ripens
+ripest
+riping
+ripoff
+ripost
+ripped
+ripper
+ripple
+ripply
+riprap
+ripsaw
+risers
+rishis
+rising
+risked
+risker
+risque
+ristra
+ritard
+ritter
+ritual
+ritzes
+rivage
+rivals
+rivers
+rivets
+riving
+riyals
+roadeo
+roadie
+roamed
+roamer
+roared
+roarer
+roasts
+robalo
+roband
+robbed
+robber
+robbin
+robing
+robins
+robles
+robots
+robust
+rochet
+rocked
+rocker
+rocket
+rococo
+rodded
+rodent
+rodeos
+rodman
+rodmen
+rogers
+rogued
+rogues
+roiled
+rolfed
+rolfer
+rolled
+roller
+romaji
+romano
+romans
+romeos
+romped
+romper
+rondel
+rondos
+ronion
+ronnel
+ronyon
+roofed
+roofer
+roofie
+rooked
+rookie
+roomed
+roomer
+roomie
+roosed
+rooser
+rooses
+roosts
+rooted
+rooter
+rootle
+ropers
+ropery
+ropier
+ropily
+roping
+roques
+roquet
+rosary
+roscoe
+rosery
+rosets
+roshis
+rosier
+rosily
+rosing
+rosins
+rosiny
+roster
+rostra
+rotary
+rotate
+rotche
+rotgut
+rotors
+rotted
+rotten
+rotter
+rottes
+rotund
+rouble
+rouche
+rouens
+rouged
+rouges
+roughs
+roughy
+rounds
+rouped
+roupet
+roused
+rouser
+rouses
+rousts
+routed
+router
+routes
+rouths
+rovers
+roving
+rowans
+rowels
+rowens
+rowers
+rowing
+rowths
+royals
+rozzer
+ruanas
+rubace
+rubati
+rubato
+rubbed
+rubber
+rubble
+rubbly
+rubels
+rubied
+rubier
+rubies
+rubigo
+rubles
+ruboff
+rubout
+rubric
+ruched
+ruches
+rucked
+ruckle
+ruckus
+rudder
+ruddle
+rudely
+rudery
+rudest
+rueful
+ruffed
+ruffes
+ruffle
+ruffly
+rufous
+rugate
+rugged
+rugger
+rugola
+rugosa
+rugose
+rugous
+ruined
+ruiner
+rulers
+rulier
+ruling
+rumaki
+rumbas
+rumble
+rumbly
+rumens
+rumina
+rummer
+rumors
+rumour
+rumple
+rumply
+rumpus
+rundle
+runkle
+runlet
+runnel
+runner
+runoff
+runout
+runway
+rupees
+rupiah
+rurban
+rushed
+rushee
+rusher
+rushes
+rusine
+russet
+rusted
+rustic
+rustle
+rutile
+rutins
+rutted
+ryking
+ryokan
+sabals
+sabbat
+sabbed
+sabers
+sabine
+sabins
+sabirs
+sables
+sabots
+sabras
+sabred
+sabres
+sacbut
+sachem
+sachet
+sacked
+sacker
+sacque
+sacral
+sacred
+sacrum
+sadden
+sadder
+saddhu
+saddle
+sadhes
+sadhus
+sadism
+sadist
+safari
+safely
+safest
+safety
+safrol
+sagbut
+sagely
+sagest
+saggar
+sagged
+sagger
+sagier
+sahibs
+saices
+saigas
+sailed
+sailer
+sailor
+saimin
+sained
+saints
+saithe
+saiyid
+sajous
+sakers
+salaam
+salads
+salals
+salami
+salary
+saleps
+salify
+salina
+saline
+saliva
+sallet
+sallow
+salmis
+salmon
+salols
+salons
+saloon
+saloop
+salpae
+salpas
+salpid
+salsas
+salted
+salter
+saltie
+saluki
+salute
+salved
+salver
+salves
+salvia
+salvor
+salvos
+samara
+sambal
+sambar
+sambas
+sambos
+sambur
+samech
+samekh
+sameks
+samiel
+samite
+samlet
+samosa
+sampan
+sample
+samshu
+sancta
+sandal
+sanded
+sander
+sandhi
+sanely
+sanest
+sangar
+sangas
+sanger
+sanghs
+sanies
+saning
+sanity
+sanjak
+sannop
+sannup
+sansar
+sansei
+santir
+santol
+santos
+santur
+sapors
+sapota
+sapote
+sapour
+sapped
+sapper
+sarans
+sarape
+sardar
+sarees
+sarges
+sargos
+sarins
+sarode
+sarods
+sarong
+sarsar
+sarsen
+sartor
+sashay
+sashed
+sashes
+sasins
+sassed
+sasses
+satang
+satara
+satays
+sateen
+sating
+satins
+satiny
+satire
+satori
+satrap
+satyrs
+sauced
+saucer
+sauces
+sauchs
+sauger
+saughs
+saughy
+saults
+saunas
+saurel
+sauted
+sautes
+savage
+savant
+savate
+savers
+savine
+saving
+savins
+savior
+savors
+savory
+savour
+savoys
+sawers
+sawfly
+sawing
+sawlog
+sawney
+sawyer
+saxony
+sayeds
+sayers
+sayest
+sayids
+saying
+sayyid
+scabby
+scalar
+scalds
+scaled
+scaler
+scales
+scalls
+scalps
+scampi
+scamps
+scants
+scanty
+scaped
+scapes
+scarab
+scarce
+scared
+scarer
+scares
+scarey
+scarfs
+scarph
+scarps
+scarry
+scarts
+scathe
+scatts
+scatty
+scaups
+scaurs
+scenas
+scends
+scenes
+scenic
+scents
+schavs
+schema
+scheme
+schism
+schist
+schizo
+schizy
+schlep
+schlub
+schmoe
+schmos
+schnoz
+school
+schorl
+schrik
+schrod
+schtik
+schuit
+schuln
+schuls
+schuss
+schwas
+scilla
+scions
+sclaff
+sclera
+scoffs
+scolds
+scolex
+sconce
+scones
+scooch
+scoops
+scoots
+scoped
+scopes
+scorch
+scored
+scorer
+scores
+scoria
+scorns
+scotch
+scoter
+scotia
+scours
+scouse
+scouth
+scouts
+scowed
+scowls
+scrags
+scrams
+scrape
+scraps
+scrawl
+screak
+scream
+screed
+screen
+screes
+screws
+screwy
+scribe
+scried
+scries
+scrimp
+scrims
+scrips
+script
+scrive
+scrods
+scroll
+scroop
+scrota
+scrubs
+scruff
+scrums
+scubas
+scuffs
+sculch
+sculks
+sculls
+sculps
+sculpt
+scummy
+scurfs
+scurfy
+scurry
+scurvy
+scutch
+scutes
+scutum
+scuzzy
+scyphi
+scythe
+seabag
+seabed
+seadog
+sealed
+sealer
+seaman
+seamed
+seamen
+seamer
+seance
+search
+seared
+searer
+season
+seated
+seater
+seawan
+seaway
+sebums
+secant
+seccos
+secede
+secern
+second
+secpar
+secret
+sector
+secund
+secure
+sedans
+sedate
+seders
+sedges
+sedile
+seduce
+sedums
+seeded
+seeder
+seeing
+seeker
+seeled
+seemed
+seemer
+seemly
+seeped
+seesaw
+seethe
+seggar
+segnos
+segued
+segues
+seiche
+seidel
+seined
+seiner
+seines
+seised
+seiser
+seises
+seisin
+seisms
+seisor
+seitan
+seized
+seizer
+seizes
+seizin
+seizor
+sejant
+selahs
+seldom
+select
+selfed
+selkie
+seller
+selles
+selsyn
+selvas
+selves
+sememe
+semple
+sempre
+senary
+senate
+sendal
+sended
+sender
+sendup
+seneca
+senega
+senhor
+senile
+senior
+seniti
+sennas
+sennet
+sennit
+senora
+senors
+senryu
+sensed
+sensei
+senses
+sensor
+sensum
+sentry
+sepals
+sepias
+sepoys
+sepses
+sepsis
+septal
+septet
+septic
+septum
+sequel
+sequin
+seracs
+serail
+serais
+serape
+seraph
+serdab
+serein
+serene
+serest
+serged
+serger
+serges
+serial
+series
+serifs
+serine
+sering
+serins
+sermon
+serosa
+serous
+serows
+serums
+serval
+served
+server
+serves
+servos
+sesame
+sestet
+setoff
+setons
+setose
+setous
+setout
+settee
+setter
+settle
+setups
+sevens
+severe
+severs
+sewage
+sewans
+sewars
+sewers
+sewing
+shabby
+shacko
+shacks
+shaded
+shader
+shades
+shadow
+shaduf
+shafts
+shaggy
+shaird
+shairn
+shaken
+shaker
+shakes
+shakos
+shaled
+shales
+shaley
+shalom
+shaman
+shamas
+shamed
+shames
+shammy
+shamos
+shamoy
+shamus
+shandy
+shanks
+shanny
+shanti
+shanty
+shaped
+shapen
+shaper
+shapes
+shards
+shared
+sharer
+shares
+sharia
+sharif
+sharks
+sharns
+sharny
+sharps
+sharpy
+shaugh
+shauls
+shaved
+shaven
+shaver
+shaves
+shavie
+shawed
+shawls
+shawms
+shazam
+sheafs
+sheals
+shears
+sheath
+sheave
+sheens
+sheeny
+sheers
+sheesh
+sheets
+sheeve
+sheikh
+sheiks
+sheila
+shekel
+shells
+shelly
+shelta
+shelty
+shelve
+shelvy
+shends
+sheols
+sheqel
+sherds
+sherif
+sherpa
+sherry
+sheuch
+sheugh
+shewed
+shewer
+shibah
+shield
+shiels
+shiers
+shiest
+shifts
+shifty
+shikar
+shiksa
+shikse
+shills
+shimmy
+shindy
+shined
+shiner
+shines
+shinny
+shires
+shirks
+shirrs
+shirts
+shirty
+shists
+shivah
+shivas
+shiver
+shives
+shlepp
+shleps
+shlock
+shlubs
+shlump
+shmear
+shmoes
+shmuck
+shnaps
+shnook
+shoals
+shoaly
+shoats
+shocks
+shoddy
+shoers
+shofar
+shogis
+shogun
+shojis
+sholom
+shooed
+shooks
+shools
+shoots
+shoppe
+shoran
+shored
+shores
+shorls
+shorts
+shorty
+shotes
+shotts
+should
+shouts
+shoved
+shovel
+shover
+shoves
+showed
+shower
+shoyus
+shrank
+shreds
+shrewd
+shrews
+shriek
+shrift
+shrike
+shrill
+shrimp
+shrine
+shrink
+shrive
+shroff
+shroud
+shrove
+shrubs
+shrugs
+shrunk
+shtetl
+shtick
+shtiks
+shucks
+shunts
+shuted
+shutes
+shyers
+shyest
+shying
+sialic
+sialid
+sibyls
+siccan
+sicced
+sicked
+sickee
+sicken
+sicker
+sickie
+sickle
+sickly
+sickos
+siddur
+siding
+sidled
+sidler
+sidles
+sieged
+sieges
+sienna
+sierra
+siesta
+sieurs
+sieved
+sieves
+sifaka
+sifted
+sifter
+sighed
+sigher
+sights
+sigils
+sigloi
+siglos
+siglum
+sigmas
+signal
+signed
+signee
+signer
+signet
+signor
+silage
+silane
+sileni
+silent
+silica
+silked
+silken
+silkie
+siller
+siloed
+silted
+silvae
+silvan
+silvas
+silver
+silvex
+simars
+simian
+simile
+simlin
+simmer
+simnel
+simony
+simoom
+simoon
+simper
+simple
+simply
+sinews
+sinewy
+sinful
+singed
+singer
+singes
+single
+singly
+sinker
+sinned
+sinner
+sinter
+siphon
+siping
+sipped
+sipper
+sippet
+sirdar
+sirees
+sirens
+siring
+sirrah
+sirras
+sirree
+sirups
+sirupy
+sisals
+siskin
+sisses
+sister
+sistra
+sitars
+sitcom
+siting
+sitten
+sitter
+situps
+sivers
+sixmos
+sixtes
+sixths
+sizars
+sizers
+sizier
+sizing
+sizzle
+skalds
+skated
+skater
+skates
+skatol
+skeane
+skeans
+skeens
+skeets
+skeigh
+skeins
+skells
+skelms
+skelps
+skenes
+skerry
+sketch
+skewed
+skewer
+skibob
+skiddy
+skidoo
+skiers
+skiffs
+skiing
+skills
+skimos
+skimps
+skimpy
+skinks
+skinny
+skirls
+skirrs
+skirts
+skited
+skites
+skived
+skiver
+skives
+skivvy
+sklent
+skoals
+skorts
+skulks
+skulls
+skunks
+skunky
+skybox
+skycap
+skying
+skylit
+skyman
+skymen
+skyway
+slacks
+slaggy
+slaked
+slaker
+slakes
+slalom
+slangs
+slangy
+slants
+slanty
+slatch
+slated
+slater
+slates
+slatey
+slaved
+slaver
+slaves
+slavey
+slayed
+slayer
+sleave
+sleaze
+sleazo
+sleazy
+sledge
+sleeks
+sleeky
+sleeps
+sleepy
+sleets
+sleety
+sleeve
+sleigh
+sleuth
+slewed
+sliced
+slicer
+slices
+slicks
+slider
+slides
+sliest
+slieve
+slight
+slimed
+slimes
+slimly
+slimsy
+slings
+slinks
+slinky
+sliped
+slipes
+slippy
+slipup
+slitty
+sliver
+slobby
+slogan
+sloids
+slojds
+sloops
+sloped
+sloper
+slopes
+sloppy
+sloshy
+sloths
+slouch
+slough
+sloven
+slowed
+slower
+slowly
+sloyds
+sludge
+sludgy
+sluffs
+sluice
+sluicy
+sluing
+slummy
+slumps
+slurbs
+slurps
+slurry
+slushy
+slyest
+slypes
+smacks
+smalls
+smalti
+smalto
+smalts
+smarms
+smarmy
+smarts
+smarty
+smazes
+smears
+smeary
+smeeks
+smegma
+smells
+smelly
+smelts
+smerks
+smidge
+smilax
+smiled
+smiler
+smiles
+smiley
+smirch
+smirks
+smirky
+smiter
+smites
+smiths
+smithy
+smocks
+smoggy
+smoked
+smoker
+smokes
+smokey
+smolts
+smooch
+smoosh
+smooth
+smudge
+smudgy
+smugly
+smutch
+smutty
+snacks
+snafus
+snaggy
+snails
+snaked
+snakes
+snakey
+snappy
+snared
+snarer
+snares
+snarfs
+snarks
+snarky
+snarls
+snarly
+snatch
+snathe
+snaths
+snawed
+snazzy
+sneaks
+sneaky
+sneaps
+snecks
+sneers
+sneery
+sneesh
+sneeze
+sneezy
+snells
+snicks
+snider
+sniffs
+sniffy
+sniped
+sniper
+snipes
+snippy
+snitch
+snivel
+snobby
+snoods
+snooks
+snools
+snoops
+snoopy
+snoots
+snooty
+snooze
+snoozy
+snored
+snorer
+snores
+snorts
+snotty
+snouts
+snouty
+snowed
+snubby
+snuffs
+snuffy
+snugly
+soaked
+soaker
+soaped
+soaper
+soared
+soarer
+soaves
+sobbed
+sobber
+sobeit
+sobers
+sobful
+socage
+soccer
+social
+socked
+socket
+socles
+socman
+socmen
+sodded
+sodden
+sodium
+soever
+sofars
+soffit
+softas
+soften
+softer
+softie
+softly
+sogged
+soigne
+soiled
+soiree
+sokols
+solace
+soland
+solano
+solans
+solate
+soldan
+solder
+solely
+solemn
+soleus
+solgel
+solidi
+solids
+soling
+solion
+soloed
+solons
+solums
+solute
+solved
+solver
+solves
+somans
+somata
+somber
+sombre
+somite
+somoni
+sonant
+sonars
+sonata
+sonder
+sondes
+sonics
+sonnet
+sonsie
+sooner
+sooted
+soothe
+sooths
+sopite
+sopors
+sopped
+sorbed
+sorbet
+sorbic
+sordid
+sordor
+sorels
+sorely
+sorest
+sorgho
+sorgos
+soring
+sorned
+sorner
+sorrel
+sorrow
+sorted
+sorter
+sortie
+sotols
+sotted
+souari
+soucar
+soudan
+soughs
+sought
+souled
+sounds
+souped
+source
+soured
+sourer
+sourly
+soused
+souses
+souter
+souths
+soviet
+sovran
+sowans
+sowars
+sowcar
+sowens
+sowers
+sowing
+sozine
+sozins
+spaced
+spacer
+spaces
+spacey
+spaded
+spader
+spades
+spadix
+spahee
+spahis
+spails
+spaits
+spales
+spalls
+spanks
+spared
+sparer
+spares
+sparge
+sparid
+sparks
+sparky
+sparry
+sparse
+spasms
+spates
+spathe
+spavie
+spavin
+spawns
+spayed
+speaks
+speans
+spears
+specie
+specks
+speech
+speedo
+speeds
+speedy
+speels
+speers
+speils
+speirs
+speise
+speiss
+spells
+spelts
+speltz
+spence
+spends
+spendy
+spense
+spewed
+spewer
+sphene
+sphere
+sphery
+sphinx
+sphynx
+spicae
+spicas
+spiced
+spicer
+spices
+spicey
+spicks
+spider
+spiels
+spiers
+spiffs
+spiffy
+spigot
+spiked
+spiker
+spikes
+spikey
+spiled
+spiles
+spills
+spilth
+spinal
+spined
+spinel
+spines
+spinet
+spinny
+spinor
+spinto
+spiral
+spirea
+spired
+spirem
+spires
+spirit
+spirts
+spital
+spited
+spites
+spivvy
+splake
+splash
+splats
+splays
+spleen
+splent
+splice
+spliff
+spline
+splint
+splits
+splore
+splosh
+spodes
+spoils
+spoilt
+spoked
+spoken
+spokes
+sponge
+spongy
+spoofs
+spoofy
+spooks
+spooky
+spools
+spoons
+spoony
+spoors
+sporal
+spored
+spores
+sports
+sporty
+spotty
+spouse
+spouts
+sprags
+sprain
+sprang
+sprats
+sprawl
+sprays
+spread
+sprees
+sprent
+sprier
+sprigs
+spring
+sprint
+sprite
+sprits
+spritz
+sprout
+spruce
+sprucy
+sprues
+sprugs
+sprung
+spryer
+spryly
+spuing
+spumed
+spumes
+spunks
+spunky
+spurge
+spurns
+spurry
+spying
+squabs
+squads
+squall
+squama
+square
+squark
+squash
+squats
+squawk
+squaws
+squeak
+squeal
+squegs
+squibs
+squids
+squill
+squint
+squire
+squirm
+squirt
+squish
+squush
+sradha
+stable
+stably
+stacks
+stacte
+stades
+stadia
+staffs
+staged
+stager
+stages
+stagey
+staggy
+staigs
+stains
+stairs
+staked
+stakes
+stalag
+staled
+staler
+stales
+stalks
+stalky
+stalls
+stamen
+stamps
+stance
+stanch
+stands
+staned
+stanes
+stangs
+stanks
+stanol
+stanza
+stapes
+staphs
+staple
+starch
+stared
+starer
+stares
+starry
+starts
+starve
+stases
+stasis
+statal
+stated
+stater
+states
+static
+statin
+stator
+statue
+status
+staved
+staves
+stayed
+stayer
+steads
+steady
+steaks
+steals
+steams
+steamy
+steeds
+steeks
+steels
+steely
+steeps
+steers
+steeve
+steins
+stelae
+stelai
+stelar
+steles
+stelic
+stella
+stemma
+stemmy
+stench
+stenos
+stents
+steppe
+stereo
+steres
+steric
+sterna
+sterns
+sterol
+stewed
+stichs
+sticks
+sticky
+stiffs
+stifle
+stigma
+stiles
+stills
+stilly
+stilts
+stimes
+stingo
+stings
+stingy
+stinko
+stinks
+stinky
+stints
+stiped
+stipel
+stipes
+stirks
+stirps
+stitch
+stithy
+stiver
+stoats
+stocks
+stocky
+stodge
+stodgy
+stogey
+stogie
+stoics
+stoked
+stoker
+stokes
+stoled
+stolen
+stoles
+stolid
+stolon
+stomal
+stomas
+stomps
+stoned
+stoner
+stones
+stoney
+stooge
+stooks
+stools
+stoops
+stoped
+stoper
+stopes
+storax
+stored
+storer
+stores
+storey
+storks
+storms
+stormy
+stotin
+stotts
+stound
+stoups
+stoure
+stours
+stoury
+stouts
+stover
+stoves
+stowed
+stowps
+strafe
+strain
+strait
+strake
+strand
+strang
+straps
+strass
+strata
+strath
+strati
+straws
+strawy
+strays
+streak
+stream
+streek
+streel
+street
+streps
+stress
+strewn
+strews
+striae
+strick
+strict
+stride
+strife
+strike
+string
+stripe
+strips
+stript
+stripy
+strive
+strobe
+strode
+stroke
+stroll
+stroma
+strong
+strook
+strops
+stroud
+strove
+strown
+strows
+stroys
+struck
+struma
+strums
+strung
+strunt
+struts
+stubby
+stucco
+studio
+studly
+stuffs
+stuffy
+stulls
+stumps
+stumpy
+stunts
+stupas
+stupes
+stupor
+sturdy
+sturts
+stying
+stylar
+styled
+styler
+styles
+stylet
+stylus
+stymie
+styrax
+suable
+suably
+suaver
+subahs
+subbed
+subdeb
+subdue
+subers
+subfix
+subgum
+subito
+sublet
+sublot
+submit
+subnet
+suborn
+subpar
+subsea
+subset
+subtle
+subtly
+suburb
+subway
+succah
+succor
+sucres
+sudary
+sudden
+sudors
+sudsed
+sudser
+sudses
+sueded
+suedes
+suffer
+suffix
+sugars
+sugary
+sughed
+suints
+suited
+suiter
+suites
+suitor
+sukkah
+sukkot
+sulcal
+sulcus
+suldan
+sulfas
+sulfid
+sulfur
+sulked
+sulker
+sullen
+sulpha
+sultan
+sultry
+sumach
+sumacs
+summae
+summas
+summed
+summer
+summit
+summon
+sunbow
+sundae
+sunder
+sundew
+sundog
+sundry
+sunken
+sunket
+sunlit
+sunnah
+sunnas
+sunned
+sunray
+sunset
+suntan
+sunups
+superb
+supers
+supine
+supped
+supper
+supple
+supply
+surahs
+surely
+surest
+surety
+surfed
+surfer
+surged
+surger
+surges
+surimi
+surras
+surrey
+surtax
+survey
+sushis
+suslik
+sussed
+susses
+sutler
+sutras
+suttas
+suttee
+suture
+svaraj
+svelte
+swabby
+swaged
+swager
+swages
+swails
+swains
+swales
+swamis
+swamps
+swampy
+swanks
+swanky
+swanny
+swaraj
+swards
+swarfs
+swarms
+swarth
+swarty
+swatch
+swathe
+swaths
+swayed
+swayer
+swears
+sweats
+sweaty
+swedes
+sweeny
+sweeps
+sweepy
+sweets
+swells
+swerve
+sweven
+swifts
+swills
+swimmy
+swinge
+swings
+swingy
+swinks
+swiped
+swipes
+swiple
+swirls
+swirly
+swishy
+switch
+swithe
+swived
+swivel
+swives
+swivet
+swoons
+swoony
+swoops
+swoopy
+swoosh
+swords
+swound
+swouns
+syboes
+sycees
+sylphs
+sylphy
+sylvae
+sylvan
+sylvas
+sylvin
+symbol
+synced
+synchs
+syncom
+syndet
+syndic
+syngas
+synods
+syntax
+synths
+synura
+sypher
+syphon
+syrens
+syrinx
+syrups
+syrupy
+sysops
+system
+syzygy
+tabard
+tabbed
+tabbis
+tabers
+tablas
+tabled
+tables
+tablet
+taboos
+tabors
+tabour
+tabued
+tabuli
+tabuns
+taches
+tacked
+tacker
+tacket
+tackey
+tackle
+tactic
+taenia
+taffia
+tafias
+tagged
+tagger
+tagrag
+tahini
+tahsil
+taigas
+tailed
+tailer
+taille
+tailor
+taints
+taipan
+takahe
+takers
+takeup
+taking
+takins
+talars
+talced
+talcky
+talcum
+talent
+talers
+talion
+talked
+talker
+talkie
+taller
+tallis
+tallit
+tallol
+tallow
+talons
+taluka
+taluks
+tamale
+tamals
+tamari
+tambac
+tambak
+tambur
+tamein
+tamely
+tamers
+tamest
+taming
+tammie
+tampan
+tamped
+tamper
+tampon
+tandem
+tanged
+tangle
+tangly
+tangos
+tanist
+tankas
+tanked
+tanker
+tanned
+tanner
+tannic
+tannin
+tannoy
+tanrec
+tantra
+tanuki
+tapalo
+tapers
+tapeta
+taping
+tapirs
+tapped
+tapper
+tappet
+tarama
+targes
+target
+tariff
+taring
+tarmac
+tarnal
+tarocs
+taroks
+tarots
+tarpan
+tarpon
+tarred
+tarres
+tarsal
+tarsia
+tarsus
+tartan
+tartar
+tarted
+tarter
+tartly
+tarzan
+tasked
+tassel
+tasses
+tasset
+tassie
+tasted
+taster
+tastes
+tatami
+tatars
+taters
+tatsoi
+tatted
+tatter
+tattie
+tattle
+tattoo
+taught
+taunts
+tauons
+taupes
+tauted
+tauten
+tauter
+tautly
+tautog
+tavern
+tawdry
+tawers
+tawing
+tawney
+tawpie
+tawsed
+tawses
+taxeme
+taxers
+taxied
+taxies
+taxing
+taxite
+taxman
+taxmen
+taxols
+taxons
+tazzas
+teabox
+teacup
+teamed
+teapot
+teapoy
+teared
+tearer
+teased
+teasel
+teaser
+teases
+teated
+teazel
+teazle
+teched
+techie
+techno
+tectal
+tectum
+tedded
+tedder
+tedium
+teeing
+teemed
+teemer
+teener
+teensy
+teepee
+teeter
+teethe
+teflon
+tegmen
+teguas
+teiids
+teinds
+tekkie
+telcos
+teledu
+telega
+telfer
+telial
+telium
+teller
+tellys
+telnet
+telome
+telson
+temped
+tempeh
+temper
+temple
+tempos
+tempts
+tenace
+tenail
+tenant
+tended
+tender
+tendon
+tendus
+tenets
+teniae
+tenias
+tenner
+tennis
+tenons
+tenors
+tenour
+tenpin
+tenrec
+tensed
+tenser
+tenses
+tensor
+tented
+tenter
+tenths
+tentie
+tenues
+tenuis
+tenure
+tenuti
+tenuto
+teopan
+tepals
+tepees
+tepefy
+tephra
+tepoys
+terais
+teraph
+terbia
+terbic
+tercel
+terces
+tercet
+teredo
+terete
+tergal
+tergum
+termed
+termer
+termly
+termor
+ternes
+terrae
+terras
+terret
+territ
+terror
+terser
+teslas
+testae
+tested
+testee
+tester
+testes
+testis
+teston
+tetany
+tetchy
+tether
+tetrad
+tetras
+tetris
+tetryl
+tetter
+tewing
+thacks
+thairm
+thaler
+thalli
+thanes
+thanks
+tharms
+thatch
+thawed
+thawer
+thebes
+thecae
+thecal
+thefts
+thegns
+theine
+theins
+theirs
+theism
+theist
+themed
+themes
+thenal
+thenar
+thence
+theory
+theres
+therme
+therms
+theses
+thesis
+thesps
+thetas
+thetic
+thicks
+thieve
+thighs
+thills
+things
+thinks
+thinly
+thiols
+thiram
+thirds
+thirls
+thirst
+thirty
+tholed
+tholes
+tholoi
+tholos
+thongs
+thorax
+thoria
+thoric
+thorns
+thorny
+thoron
+thorpe
+thorps
+thoued
+though
+thrall
+thrash
+thrave
+thrawn
+thraws
+thread
+threap
+threat
+threep
+threes
+thresh
+thrice
+thrift
+thrill
+thrips
+thrive
+throat
+throbs
+throes
+throne
+throng
+throve
+thrown
+throws
+thrums
+thrush
+thrust
+thujas
+thulia
+thumbs
+thumps
+thunks
+thurls
+thusly
+thuyas
+thwack
+thwart
+thymes
+thymey
+thymic
+thymol
+thymus
+thyrse
+thyrsi
+tiaras
+tibiae
+tibial
+tibias
+ticals
+ticced
+ticked
+ticker
+ticket
+tickle
+tictac
+tictoc
+tidbit
+tiddly
+tidied
+tidier
+tidies
+tidily
+tiding
+tieing
+tiepin
+tierce
+tiered
+tiffed
+tiffin
+tigers
+tights
+tiglon
+tigons
+tikkas
+tilaks
+tildes
+tilers
+tiling
+tilled
+tiller
+tilted
+tilter
+tilths
+timbal
+timber
+timbre
+timely
+timers
+timing
+tincal
+tincts
+tinder
+tineal
+tineas
+tineid
+tinful
+tinged
+tinges
+tingle
+tingly
+tinier
+tinily
+tining
+tinker
+tinkle
+tinkly
+tinman
+tinmen
+tinned
+tinner
+tinpot
+tinsel
+tinted
+tinter
+tipcat
+tipoff
+tipped
+tipper
+tippet
+tipple
+tiptoe
+tiptop
+tirade
+tiring
+tirled
+tisane
+tissue
+titans
+tmeses
+tmesis
+toasts
+toasty
+tobies
+tocher
+tocsin
+todays
+toddle
+todies
+toecap
+toeing
+toffee
+togaed
+togate
+togged
+toggle
+togues
+toiled
+toiler
+toiles
+toited
+tokays
+tokens
+tokers
+toking
+tolane
+tolans
+tolars
+toledo
+toling
+tolled
+toller
+toluic
+toluid
+toluol
+toluyl
+tolyls
+tomans
+tomato
+tombac
+tombak
+tombal
+tombed
+tomboy
+tomcat
+tomcod
+tommed
+tomtit
+tondos
+toneme
+toners
+tongas
+tonged
+tonger
+tongue
+tonics
+tonier
+toning
+tonish
+tonlet
+tonner
+tonnes
+tonsil
+tooled
+tooler
+toonie
+tooted
+tooter
+tooths
+toothy
+tootle
+tootsy
+topees
+topers
+topful
+tophes
+tophus
+topics
+toping
+topped
+topper
+topple
+toques
+toquet
+torahs
+torchy
+torero
+torics
+tories
+toroid
+torose
+toroth
+torous
+torpid
+torpor
+torque
+torrid
+torses
+torsks
+torsos
+tortas
+torten
+tortes
+torula
+toshes
+tossed
+tosser
+tosses
+tossup
+totals
+totems
+toters
+tother
+toting
+totted
+totter
+toucan
+touche
+touchy
+toughs
+toughy
+toupee
+toured
+tourer
+toused
+touses
+tousle
+touted
+touter
+touzle
+towage
+toward
+towels
+towers
+towery
+towhee
+towies
+towing
+townee
+townie
+toxics
+toxine
+toxins
+toxoid
+toyers
+toying
+toyish
+toyons
+traced
+tracer
+traces
+tracks
+tracts
+traded
+trader
+trades
+tragic
+tragus
+traiks
+trails
+trains
+traits
+tramel
+tramps
+trampy
+trance
+tranks
+tranny
+tranqs
+trapan
+trapes
+trashy
+trauma
+travel
+traves
+trawls
+treads
+treats
+treaty
+treble
+trebly
+treens
+trefah
+tremor
+trench
+trends
+trendy
+trepan
+trepid
+tressy
+trevet
+triacs
+triads
+triage
+trials
+tribal
+tribes
+triced
+tricep
+trices
+tricks
+tricky
+tricot
+triene
+triens
+triers
+trifid
+trifle
+trigly
+trigon
+trigos
+trijet
+trikes
+trilby
+trills
+trimer
+trimly
+trinal
+trined
+trines
+triode
+triols
+triose
+tripes
+triple
+triply
+tripod
+tripos
+trippy
+triste
+triter
+triton
+triune
+trivet
+trivia
+troaks
+trocar
+troche
+trocks
+trogon
+troika
+troked
+trokes
+trolls
+trolly
+trompe
+tromps
+tronas
+trones
+troops
+tropes
+trophy
+tropic
+tropin
+troths
+trotyl
+trough
+troupe
+trouts
+trouty
+trover
+troves
+trowed
+trowel
+trowth
+truant
+truced
+truces
+trucks
+trudge
+truest
+truffe
+truing
+truism
+trulls
+trumps
+trunks
+trusts
+trusty
+truths
+trying
+tryout
+tryste
+trysts
+tsades
+tsadis
+tsetse
+tsking
+tsktsk
+tsores
+tsoris
+tsuris
+tubate
+tubbed
+tubber
+tubers
+tubful
+tubing
+tubist
+tubule
+tuchun
+tucked
+tucker
+tucket
+tuffet
+tufoli
+tufted
+tufter
+tugged
+tugger
+tugrik
+tuille
+tuladi
+tulips
+tulles
+tumble
+tumefy
+tumors
+tumour
+tumped
+tumuli
+tumult
+tundra
+tuners
+tuneup
+tunica
+tunics
+tuning
+tunned
+tunnel
+tupelo
+tupiks
+tupped
+tuques
+turaco
+turban
+turbid
+turbit
+turbos
+turbot
+tureen
+turfed
+turgid
+turgor
+turion
+turkey
+turned
+turner
+turnip
+turnon
+turnup
+turret
+turtle
+turves
+tusche
+tushed
+tushes
+tushie
+tusked
+tusker
+tussah
+tussal
+tussar
+tusseh
+tusser
+tusses
+tussis
+tussle
+tussor
+tussur
+tutees
+tutors
+tutted
+tuttis
+tutued
+tuxedo
+tuyere
+tuyers
+twains
+twangs
+twangy
+twanky
+tweaks
+tweaky
+tweeds
+tweedy
+tweens
+tweeny
+tweets
+tweeze
+twelve
+twenty
+twerps
+twibil
+twiers
+twiggy
+twilit
+twills
+twined
+twiner
+twines
+twinge
+twirls
+twirly
+twirps
+twists
+twisty
+twitch
+twofer
+twyers
+tycoon
+tymbal
+tympan
+tyning
+typhon
+typhus
+typier
+typify
+typing
+typist
+tyrant
+tyring
+tythed
+tythes
+tzetze
+tzuris
+uakari
+ubiety
+ubique
+udders
+uglier
+uglies
+uglify
+uglily
+ugsome
+uhlans
+ukases
+ulamas
+ulcers
+ulemas
+ullage
+ulster
+ultima
+ultimo
+ultras
+umamis
+umbels
+umbers
+umbles
+umbrae
+umbral
+umbras
+umiack
+umiacs
+umiaks
+umiaqs
+umlaut
+umping
+umpire
+unable
+unaged
+unakin
+unarms
+unawed
+unaxed
+unbale
+unbans
+unbars
+unbear
+unbelt
+unbend
+unbent
+unbind
+unbolt
+unborn
+unbred
+unbusy
+uncage
+uncake
+uncaps
+uncase
+uncast
+unchic
+unciae
+uncial
+uncini
+unclad
+uncles
+unclip
+unclog
+uncoil
+uncool
+uncork
+uncuff
+uncurb
+uncurl
+uncute
+undead
+undies
+undine
+undock
+undoer
+undoes
+undone
+undraw
+undrew
+unduly
+undyed
+unease
+uneasy
+uneven
+unfair
+unfelt
+unfits
+unfixt
+unfold
+unfond
+unfree
+unfurl
+ungird
+ungirt
+unglue
+ungual
+ungues
+unguis
+ungula
+unhair
+unhand
+unhang
+unhats
+unhelm
+unhewn
+unholy
+unhood
+unhook
+unhung
+unhurt
+unhusk
+unific
+unions
+unipod
+unique
+unisex
+unison
+united
+uniter
+unites
+unjams
+unjust
+unkend
+unkent
+unkept
+unkind
+unkink
+unknit
+unknot
+unlace
+unlade
+unlaid
+unlash
+unlays
+unlead
+unless
+unlike
+unlink
+unlive
+unload
+unlock
+unmade
+unmake
+unmans
+unmask
+unmeet
+unmesh
+unmews
+unmixt
+unmold
+unmoor
+unmown
+unnail
+unopen
+unpack
+unpaid
+unpegs
+unpens
+unpent
+unpick
+unpile
+unpins
+unplug
+unpure
+unread
+unreal
+unreel
+unrent
+unrest
+unrigs
+unripe
+unrips
+unrobe
+unroll
+unroof
+unroot
+unrove
+unruly
+unsafe
+unsaid
+unsawn
+unsays
+unseal
+unseam
+unseat
+unseen
+unsell
+unsent
+unsets
+unsewn
+unsews
+unsexy
+unshed
+unship
+unshod
+unshut
+unsnag
+unsnap
+unsold
+unsown
+unspun
+unstep
+unstop
+unsung
+unsunk
+unsure
+untack
+untame
+untidy
+untied
+unties
+untold
+untorn
+untrim
+untrod
+untrue
+untuck
+untune
+unused
+unveil
+unvext
+unwary
+unwell
+unwept
+unwind
+unwise
+unwish
+unwits
+unworn
+unwove
+unwrap
+unyoke
+unzips
+upases
+upbear
+upbeat
+upbind
+upboil
+upbore
+upbows
+upcast
+upcoil
+upcurl
+updart
+update
+updive
+updove
+upends
+upflow
+upfold
+upgaze
+upgird
+upgirt
+upgrew
+upgrow
+upheap
+upheld
+uphill
+uphold
+uphove
+uphroe
+upkeep
+upland
+upleap
+uplift
+uplink
+upload
+upmost
+uppers
+uppile
+upping
+uppish
+uppity
+upprop
+uprate
+uprear
+uprise
+uproar
+uproot
+uprose
+uprush
+upsend
+upsent
+upsets
+upshot
+upside
+upsize
+upsoar
+upstep
+upstir
+uptake
+uptalk
+uptear
+uptick
+uptilt
+uptime
+uptore
+uptorn
+uptoss
+uptown
+upturn
+upwaft
+upward
+upwell
+upwind
+uracil
+uraeus
+urania
+uranic
+uranyl
+urares
+uraris
+urases
+urates
+uratic
+urbane
+urbias
+urchin
+urease
+uredia
+uredos
+ureide
+uremia
+uremic
+ureter
+uretic
+urgent
+urgers
+urging
+urials
+urinal
+urines
+uropod
+urping
+ursids
+ursine
+urtext
+uruses
+usable
+usably
+usages
+usance
+useful
+ushers
+usneas
+usques
+usuals
+usurer
+usurps
+uterus
+utmost
+utopia
+utters
+uveous
+uvulae
+uvular
+uvulas
+vacant
+vacate
+vacuum
+vadose
+vagary
+vagile
+vagrom
+vaguer
+vahine
+vailed
+vainer
+vainly
+vakeel
+vakils
+valets
+valgus
+valine
+valise
+valkyr
+valley
+valors
+valour
+valses
+valued
+valuer
+values
+valuta
+valval
+valvar
+valved
+valves
+vamose
+vamped
+vamper
+vandal
+vandas
+vanish
+vanity
+vanman
+vanmen
+vanned
+vanner
+vapors
+vapory
+vapour
+varias
+varied
+varier
+varies
+varlet
+varnas
+varoom
+varved
+varves
+vassal
+vaster
+vastly
+vatful
+vatted
+vaults
+vaulty
+vaunts
+vaunty
+vaward
+vealed
+vealer
+vector
+veejay
+veenas
+veepee
+veered
+vegans
+vegete
+vegged
+veggie
+vegies
+veiled
+veiler
+veinal
+veined
+veiner
+velars
+velate
+velcro
+veldts
+vellum
+veloce
+velour
+velure
+velvet
+vended
+vendee
+vender
+vendor
+vendue
+veneer
+venene
+venery
+venged
+venges
+venial
+venine
+venins
+venire
+venoms
+venose
+venous
+vented
+venter
+venues
+venule
+verbal
+verbid
+verdin
+verged
+verger
+verges
+verier
+verify
+verily
+verism
+verist
+verite
+verity
+vermes
+vermin
+vermis
+vernal
+vernix
+versal
+versed
+verser
+verses
+verset
+versos
+verste
+versts
+versus
+vertex
+vertus
+verves
+vervet
+vesica
+vesper
+vespid
+vessel
+vestal
+vestas
+vested
+vestee
+vestry
+vetoed
+vetoer
+vetoes
+vetted
+vetter
+vexers
+vexils
+vexing
+viable
+viably
+vialed
+viands
+viatic
+viator
+vibist
+vibrio
+vicars
+vicing
+victim
+victor
+vicuna
+videos
+viewed
+viewer
+vigias
+vigils
+vigors
+vigour
+viking
+vilely
+vilest
+vilify
+villae
+villas
+villus
+vimina
+vinals
+vincas
+vineal
+vinery
+vinier
+vinify
+vining
+vinous
+vinyls
+violas
+violet
+violin
+vipers
+virago
+vireos
+virgas
+virgin
+virile
+virion
+viroid
+virtue
+virtus
+visaed
+visage
+visard
+viscid
+viscus
+viseed
+vising
+vision
+visits
+visive
+visors
+vistas
+visual
+vitals
+vitric
+vittae
+vittle
+vivace
+vivary
+vivers
+vivify
+vixens
+vizard
+vizier
+vizirs
+vizors
+vizsla
+vocabs
+vocals
+vodkas
+vodoun
+vodous
+voduns
+vogued
+voguer
+vogues
+voiced
+voicer
+voices
+voided
+voider
+voiles
+volant
+volery
+voling
+volley
+volost
+voltes
+volume
+volute
+volvas
+volvox
+vomers
+vomica
+voodoo
+vortex
+votary
+voters
+voting
+votive
+voudon
+vowels
+vowers
+vowing
+voyage
+voyeur
+vrooms
+vrouws
+vulgar
+vulgus
+vulvae
+vulval
+vulvar
+vulvas
+wabble
+wabbly
+wacker
+wackes
+wackos
+wadded
+wadder
+waddie
+waddle
+waddly
+waders
+wadies
+wading
+wadmal
+wadmel
+wadmol
+wadset
+waeful
+wafers
+wafery
+waffed
+waffie
+waffle
+waffly
+wafted
+wafter
+wagers
+wagged
+wagger
+waggle
+waggly
+waggon
+waging
+wagons
+wahine
+wahoos
+waifed
+wailed
+wailer
+waired
+waists
+waited
+waiter
+waived
+waiver
+waives
+wakame
+wakens
+wakers
+wakiki
+waking
+walers
+walies
+waling
+walked
+walker
+walkup
+wallah
+wallas
+walled
+wallet
+wallie
+wallop
+wallow
+walnut
+walrus
+wamble
+wambly
+wammus
+wampum
+wampus
+wander
+wandle
+wangan
+wangle
+wangun
+wanier
+waning
+wanion
+wanned
+wanner
+wanted
+wanter
+wanton
+wapiti
+wapped
+warble
+warded
+warden
+warder
+warier
+warily
+waring
+warked
+warmed
+warmer
+warmly
+warmth
+warmup
+warned
+warner
+warped
+warper
+warred
+warren
+warsaw
+warsle
+warted
+wasabi
+washed
+washer
+washes
+washup
+wasted
+waster
+wastes
+wastry
+watape
+wataps
+waters
+watery
+watter
+wattle
+waucht
+waught
+wauked
+wauled
+wavers
+wavery
+waveys
+wavier
+wavies
+wavily
+waving
+wawled
+waxers
+waxier
+waxily
+waxing
+waylay
+wazoos
+weaken
+weaker
+weakly
+weakon
+wealds
+wealth
+weaned
+weaner
+weapon
+wearer
+weasel
+weason
+weaved
+weaver
+weaves
+webbed
+webcam
+webers
+webfed
+weblog
+wechts
+wedded
+wedder
+wedeln
+wedels
+wedged
+wedges
+wedgie
+weeded
+weeder
+weekly
+weened
+weenie
+weensy
+weeper
+weepie
+weeted
+weever
+weevil
+weewee
+weighs
+weight
+weiner
+weirdo
+weirds
+weirdy
+welded
+welder
+weldor
+welkin
+welled
+wellie
+welted
+welter
+wended
+weskit
+wester
+wether
+wetted
+wetter
+whacko
+whacks
+whacky
+whaled
+whaler
+whales
+whammo
+whammy
+whangs
+wharfs
+wharve
+whaups
+wheals
+wheats
+wheels
+wheens
+wheeps
+wheeze
+wheezy
+whelks
+whelky
+whelms
+whelps
+whenas
+whence
+wheres
+wherry
+wherve
+wheyey
+whidah
+whiffs
+whiled
+whiles
+whilom
+whilst
+whimsy
+whined
+whiner
+whines
+whiney
+whinge
+whinny
+whippy
+whirls
+whirly
+whirrs
+whirry
+whisht
+whisks
+whisky
+whists
+whited
+whiten
+whiter
+whites
+whitey
+whizzy
+wholes
+wholly
+whomps
+whomso
+whoofs
+whoops
+whoosh
+whored
+whores
+whorls
+whorts
+whosis
+whumps
+whydah
+wiccan
+wiccas
+wiches
+wicked
+wicker
+wicket
+wicopy
+widder
+widdie
+widdle
+widely
+widens
+widest
+widget
+widish
+widows
+widths
+wields
+wieldy
+wiener
+wienie
+wifely
+wifeys
+wifing
+wigans
+wigeon
+wigged
+wiggle
+wiggly
+wights
+wiglet
+wigwag
+wigwam
+wikiup
+wilded
+wilder
+wildly
+wilful
+wilier
+wilily
+wiling
+willed
+willer
+willet
+willie
+willow
+wilted
+wimble
+wimmin
+wimped
+wimple
+winced
+wincer
+winces
+wincey
+winded
+winder
+windle
+window
+windup
+winery
+winged
+winger
+winier
+wining
+winish
+winked
+winker
+winkle
+winned
+winner
+winnow
+winoes
+winter
+wintle
+wintry
+winzes
+wipers
+wiping
+wirers
+wirier
+wirily
+wiring
+wisdom
+wisely
+wisent
+wisest
+wished
+wisher
+wishes
+wising
+wisped
+wissed
+wisses
+wisted
+witans
+witchy
+withal
+withed
+wither
+withes
+within
+witing
+witney
+witted
+wittol
+wivern
+wivers
+wiving
+wizard
+wizens
+wizzen
+wizzes
+woaded
+woalds
+wobble
+wobbly
+wodges
+woeful
+wolfed
+wolfer
+wolver
+wolves
+womans
+wombat
+wombed
+womera
+wonder
+wonned
+wonner
+wonted
+wonton
+wooded
+wooden
+woodie
+woodsy
+wooers
+woofed
+woofer
+wooing
+wooled
+woolen
+wooler
+woolie
+woolly
+worded
+worked
+worker
+workup
+worlds
+wormed
+wormer
+wormil
+worrit
+worsen
+worser
+worses
+worset
+worsts
+worths
+worthy
+wotted
+wounds
+wovens
+wowing
+wowser
+wracks
+wraith
+wrangs
+wrasse
+wraths
+wrathy
+wreaks
+wreath
+wrecks
+wrench
+wrests
+wretch
+wricks
+wriest
+wright
+wrings
+wrists
+wristy
+writer
+writes
+writhe
+wrongs
+wryest
+wrying
+wursts
+wurzel
+wusses
+wuther
+wyches
+wyling
+wyting
+wyvern
+xebecs
+xenial
+xenias
+xenons
+xylans
+xylems
+xylene
+xyloid
+xylols
+xylose
+xylyls
+xyster
+xystoi
+xystos
+xystus
+yabber
+yabbie
+yachts
+yacked
+yaffed
+yagers
+yahoos
+yairds
+yakked
+yakker
+yakuza
+yamens
+yammer
+yamuns
+yanked
+yanqui
+yantra
+yapock
+yapoks
+yapons
+yapped
+yapper
+yarded
+yarder
+yarely
+yarest
+yarned
+yarner
+yarrow
+yasmak
+yatter
+yauped
+yauper
+yaupon
+yautia
+yawing
+yawled
+yawned
+yawner
+yawped
+yawper
+yclept
+yeaned
+yearly
+yearns
+yeasts
+yeasty
+yecchs
+yeelin
+yelled
+yeller
+yellow
+yelped
+yelper
+yenned
+yentas
+yentes
+yeoman
+yeomen
+yerbas
+yerked
+yessed
+yesses
+yester
+yeuked
+yields
+yipped
+yippee
+yippie
+yirred
+yirths
+yobbos
+yocked
+yodels
+yodled
+yodler
+yodles
+yogees
+yogini
+yogins
+yogurt
+yoicks
+yokels
+yoking
+yolked
+yonder
+yonker
+youngs
+youpon
+youths
+yowies
+yowing
+yowled
+yowler
+yttria
+yttric
+yuccas
+yucked
+yukked
+yulans
+yupons
+yuppie
+yutzes
+zaddik
+zaffar
+zaffer
+zaffir
+zaffre
+zaftig
+zagged
+zaikai
+zaires
+zamias
+zanana
+zander
+zanier
+zanies
+zanily
+zanzas
+zapped
+zapper
+zareba
+zariba
+zayins
+zazens
+zealot
+zeatin
+zebeck
+zebecs
+zebras
+zechin
+zenana
+zenith
+zephyr
+zeroed
+zeroes
+zeroth
+zested
+zester
+zeugma
+zibeth
+zibets
+zigged
+zigzag
+zillah
+zinced
+zincic
+zincky
+zinebs
+zinged
+zinger
+zinnia
+zipped
+zipper
+zirams
+zircon
+zither
+zizith
+zizzle
+zlotys
+zoaria
+zocalo
+zodiac
+zoecia
+zoftig
+zombie
+zombis
+zonary
+zonate
+zoners
+zoning
+zonked
+zonula
+zonule
+zooids
+zooier
+zoomed
+zoonal
+zooned
+zorils
+zoster
+zouave
+zounds
+zoysia
+zydeco
+zygoid
+zygoma
+zygose
+zygote
+zymase
\ No newline at end of file