diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llui/lllineeditor.cpp | 10 | ||||
| -rw-r--r-- | indra/llui/lllineeditor.h | 3 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 22 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings_autocorrect.xml | 8369 | ||||
| -rw-r--r-- | indra/newview/llautocorrect.cpp | 458 | ||||
| -rw-r--r-- | indra/newview/llautocorrect.h | 65 | ||||
| -rw-r--r-- | indra/newview/llautocorrectfloater.cpp | 383 | ||||
| -rw-r--r-- | indra/newview/llautocorrectfloater.h | 75 | ||||
| -rwxr-xr-x | indra/newview/llfloaterpreference.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llimfloater.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llnearbychatbar.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llviewerfloaterreg.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_autocorrect.xml | 315 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 5 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 7 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_preferences_chat.xml | 15 | 
18 files changed, 9746 insertions, 7 deletions
| diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp index d0fbf4b913..1f7843b79d 100644 --- a/indra/llui/lllineeditor.cpp +++ b/indra/llui/lllineeditor.cpp @@ -151,7 +151,8 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p)  	mHighlightColor(p.highlight_color()),  	mPreeditBgColor(p.preedit_bg_color()),  	mGLFont(p.font), -	mContextMenuHandle() +	mContextMenuHandle(), +	mAutocorrectCallback()  {  	llassert( mMaxLengthBytes > 0 ); @@ -195,7 +196,6 @@ LLLineEditor::~LLLineEditor()  	gFocusMgr.releaseFocusIfNeeded( this );  } -  void LLLineEditor::onFocusReceived()  {  	gEditMenuHandler = this; @@ -866,6 +866,12 @@ void LLLineEditor::addChar(const llwchar uni_char)  		LLUI::reportBadKeystroke();  	} +	if (!mReadOnly && mAutocorrectCallback != NULL) +	{ +		// call callback +		mAutocorrectCallback(mText, mCursorPos); +	} +  	getWindow()->hideCursorUntilMouseMove();  } diff --git a/indra/llui/lllineeditor.h b/indra/llui/lllineeditor.h index 2518dbe3c7..53af9ac996 100644 --- a/indra/llui/lllineeditor.h +++ b/indra/llui/lllineeditor.h @@ -169,6 +169,9 @@ public:  	virtual BOOL	setTextArg( const std::string& key, const LLStringExplicit& text );  	virtual BOOL	setLabelArg( const std::string& key, const LLStringExplicit& text ); +	typedef boost::function<void(LLUIString&, S32&)> autocorrect_callback_t; +	autocorrect_callback_t mAutocorrectCallback; +	void			setAutocorrectCallback(autocorrect_callback_t cb) { mAutocorrectCallback = cb; }  	void			setLabel(const LLStringExplicit &new_label) { mLabel = new_label; }  	const std::string& 	getLabel()	{ return mLabel.getString(); } diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 7e6ffb35c3..efad75ec59 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -98,6 +98,8 @@ set(viewer_SOURCE_FILES      llassetuploadresponders.cpp      llattachmentsmgr.cpp      llaudiosourcevo.cpp +    llautocorrect.cpp +    llautocorrectfloater.cpp      llavataractions.cpp      llavatariconctrl.cpp      llavatarlist.cpp @@ -654,6 +656,8 @@ set(viewer_HEADER_FILES      llassetuploadresponders.h      llattachmentsmgr.h      llaudiosourcevo.h +    llautocorrect.h +    llautocorrectfloater.h      llavataractions.h      llavatariconctrl.h      llavatarlist.h diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 05c05b9393..4adf93e7aa 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -346,6 +346,17 @@      <key>Value</key>      <integer>0</integer>    </map> +    <key>AutoCorrect</key> +    <map> +      <key>Comment</key> +      <string>Replaces common spelling mistakes with correct word</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>0</integer> +    </map>    <key>AutoAcceptNewInventory</key>      <map>        <key>Comment</key> @@ -1639,6 +1650,17 @@        <key>Value</key>        <integer>0</integer>      </map> +  	<key>CmdLineAutocorrect</key> +		<map> +			<key>Comment</key> +			<string>Command for adding new entries to autocorrect</string> +			<key>Persist</key> +			<integer>1</integer> +			<key>Type</key> +			<string>String</string> +			<key>Value</key> +			<string>/addac</string> +		</map>      <key>CmdLineDisableVoice</key>      <map>        <key>Comment</key> diff --git a/indra/newview/app_settings/settings_autocorrect.xml b/indra/newview/app_settings/settings_autocorrect.xml new file mode 100644 index 0000000000..4669ba5822 --- /dev/null +++ b/indra/newview/app_settings/settings_autocorrect.xml @@ -0,0 +1,8369 @@ +<llsd> +    <map> +    <key>Custom</key> +        <map> +        <key>announce</key> +            <integer>0</integer> +        <key>author</key> +            <string>You</string> +        <key>data</key> +            <map></map> +        <key>enabled</key> +            <integer>1</integer> +        <key>priority</key> +            <integer>10</integer> +        <key>wordStyle</key> +            <integer>1</integer> +        </map> +    <key>Abbreviations</key> +        <map> +        <key>announce</key> +            <integer>0</integer> +        <key>author</key> +            <string>Wulf / TankMaster</string> +        <key>data</key> +            <map> +            <key>afaic</key> +                <string>As far as I am concerned</string> +            <key>afaik</key> +                <string>As far as I know</string> +            <key>afk</key> +                <string>(Away from Keyboard)</string> +            <key>atm</key> +                <string>at the moment</string> +            <key>bbiab</key> +                <string>(Be back in a bit)</string> +            <key>bbl</key> +                <string>(Be back later)</string> +            <key>brb</key> +                <string>(Be Right Back)</string> +            <key>btw</key> +                <string>By the way</string> +            <key>fyi</key> +                <string>For your information</string> +            <key>fwiw</key> +                <string>For what its worth</string> +            <key>gtg</key> +                <string>(Got to go)</string> +            <key>idk</key> +                <string>I don't know</string> +            <key>iirc</key> +                <string>If I recall correctly</string> +            <key>imho</key> +                <string>in my humble opinion</string> +            <key>imo</key> +                <string>in my opinion</string> +            <key>irl</key> +                <string>in real life</string> +            <key>lol</key> +                <string>(Laughing out Loud)</string> +            <key>nm</key> +                <string>Not much</string> +            <key>np</key> +                <string>No problem</string> +            <key>nsfw</key> +                <string>not safe for work</string> +            <key>nvm</key> +                <string>Nevermind</string> +            <key>rofl</key> +                <string>(Rolling on Floor Laughing)</string> +            <key>tc</key> +                <string>Take care</string> +            <key>thx</key> +                <string>Thanks</string> +            <key>ttfn</key> +                <string>Ta Ta for now</string> +            <key>ttyl</key> +                <string>Talk to you later</string> +            <key>ty</key> +                <string>Thank you</string> +            <key>tyvm</key> +                <string>Thank you very much</string> +            <key>wb</key> +                <string>Welcome back</string> +            <key>yw</key> +                <string>You're Welcome</string> +            <key>yvw</key> +                <string>You're very welcome</string> +            </map> +        <key>enabled</key> +            <integer>1</integer> +        <key>priority</key> +            <integer>4</integer> +        <key>wordStyle</key> +            <integer>1</integer> +        </map> +    <key>Spelling Corrections</key> +        <map> +        <key>announce</key> +            <integer>0</integer> +        <key>author</key> +            <string>LordGregGreg / Wikipedia</string> +        <key>data</key> +            <map> +            <key>Amercia</key> +                <string>America</string> +            <key>Bernouilli</key> +                <string>Bernoulli</string> +            <key>Blitzkreig</key> +                <string>Blitzkrieg</string> +            <key>Bonnano</key> +                <string>Bonanno</string> +            <key>Brasillian</key> +                <string>Brazilian</string> +            <key>Britian</key> +                <string>Britain</string> +            <key>Brittish</key> +                <string>British</string> +            <key>Buddah</key> +                <string>Buddha</string> +            <key>Buddist</key> +                <string>Buddhist</string> +            <key>Cambrige</key> +                <string>Cambridge</string> +            <key>Capetown</key> +                <string>Cape Town</string> +            <key>Carmalite</key> +                <string>Carmelite</string> +            <key>Carnagie</key> +                <string>Carnegie</string> +            <key>Carnagie-Mellon</key> +                <string>Carnegie-Mellon</string> +            <key>Carnigie</key> +                <string>Carnegie</string> +            <key>Carnigie-Mellon</key> +                <string>Carnegie-Mellon</string> +            <key>Carribbean</key> +                <string>Caribbean</string> +            <key>Carribean</key> +                <string>Caribbean</string> +            <key>Carthagian</key> +                <string>Carthaginian</string> +            <key>Cataline</key> +                <string>Catiline</string> +            <key>Ceasar</key> +                <string>Caesar</string> +            <key>Celcius</key> +                <string>Celsius</string> +            <key>Champange</key> +                <string>Champagne</string> +            <key>Cincinatti</key> +                <string>Cincinnati</string> +            <key>Cincinnatti</key> +                <string>Cincinnati</string> +            <key>Conneticut</key> +                <string>Connecticut</string> +            <key>Dardenelles</key> +                <string>Dardanelles</string> +            <key>Dravadian</key> +                <string>Dravidian</string> +            <key>Enlish</key> +                <string>English</string> +            <key>Europian</key> +                <string>European</string> +            <key>Europians</key> +                <string>Europeans</string> +            <key>Eurpean</key> +                <string>European</string> +            <key>Eurpoean</key> +                <string>European</string> +            <key>Farenheit</key> +                <string>Fahrenheit</string> +            <key>Febuary</key> +                <string>February</string> +            <key>Feburary</key> +                <string>February</string> +            <key>Flemmish</key> +                <string>Flemish</string> +            <key>Formalhaut</key> +                <string>Fomalhaut</string> +            <key>Foundland</key> +                <string>Newfoundland</string> +            <key>Fransiscan</key> +                <string>Franciscan</string> +            <key>Fransiscans</key> +                <string>Franciscans</string> +            <key>Galations</key> +                <string>Galatians</string> +            <key>Gameboy</key> +                <string>Game Boy</string> +            <key>Ghandi</key> +                <string>Gandhi</string> +            <key>Godounov</key> +                <string>Godunov</string> +            <key>Gothenberg</key> +                <string>Gothenburg</string> +            <key>Gottleib</key> +                <string>Gottlieb</string> +            <key>Guaduloupe</key> +                <string>Guadalupe</string> +            <key>Guadulupe</key> +                <string>Guadalupe</string> +            <key>Guatamala</key> +                <string>Guatemala</string> +            <key>Guatamalan</key> +                <string>Guatemalan</string> +            <key>Guilia</key> +                <string>Giulia</string> +            <key>Guilio</key> +                <string>Giulio</string> +            <key>Guiness</key> +                <string>Guinness</string> +            <key>Guiseppe</key> +                <string>Giuseppe</string> +            <key>Habsbourg</key> +                <string>Habsburg</string> +            <key>Hallowean</key> +                <string>Halloween</string> +            <key>Heidelburg</key> +                <string>Heidelberg</string> +            <key>Ihaca</key> +                <string>Ithaca</string> +            <key>Israelies</key> +                <string>Israelis</string> +            <key>Janurary</key> +                <string>January</string> +            <key>Januray</key> +                <string>January</string> +            <key>Japanes</key> +                <string>Japanese</string> +            <key>Johanine</key> +                <string>Johannine</string> +            <key>Jospeh</key> +                <string>Joseph</string> +            <key>Juadaism</key> +                <string>Judaism</string> +            <key>Juadism</key> +                <string>Judaism</string> +            <key>Lybia</key> +                <string>Libya</string> +            <key>Malcom</key> +                <string>Malcolm</string> +            <key>Massachussets</key> +                <string>Massachusetts</string> +            <key>Massachussetts</key> +                <string>Massachusetts</string> +            <key>Mediteranean</key> +                <string>Mediterranean</string> +            <key>Michagan</key> +                <string>Michigan</string> +            <key>Misouri</key> +                <string>Missouri</string> +            <key>Missisipi</key> +                <string>Mississippi</string> +            <key>Missisippi</key> +                <string>Mississippi</string> +            <key>Monserrat</key> +                <string>Montserrat</string> +            <key>Montnana</key> +                <string>Montana</string> +            <key>Morisette</key> +                <string>Morissette</string> +            <key>Morrisette</key> +                <string>Morissette</string> +            <key>Mythraic</key> +                <string>Mithraic</string> +            <key>Naploeon</key> +                <string>Napoleon</string> +            <key>Napolean</key> +                <string>Napoleon</string> +            <key>Napoleonian</key> +                <string>Napoleonic</string> +            <key>Nazereth</key> +                <string>Nazareth</string> +            <key>Newyorker</key> +                <string>New Yorker</string> +            <key>Novermber</key> +                <string>November</string> +            <key>Nullabour</key> +                <string>Nullarbor</string> +            <key>Nuremburg</key> +                <string>Nuremberg</string> +            <key>Palistian</key> +                <string>Palestinian</string> +            <key>Palistinian</key> +                <string>Palestinian</string> +            <key>Palistinians</key> +                <string>Palestinians</string> +            <key>Papanicalou</key> +                <string>Papanicolaou</string> +            <key>Peloponnes</key> +                <string>Peloponnesus</string> +            <key>Pennyslvania</key> +                <string>Pennsylvania</string> +            <key>Pharoah</key> +                <string>Pharaoh</string> +            <key>Philipines</key> +                <string>Philippines</string> +            <key>Phillipine</key> +                <string>Philippine</string> +            <key>Phillipines</key> +                <string>Philippines</string> +            <key>Phillippines</key> +                <string>Philippines</string> +            <key>Phonecian</key> +                <string>Phoenecian</string> +            <key>Portugese</key> +                <string>Portuguese</string> +            <key>Postdam</key> +                <string>Potsdam</string> +            <key>Premonasterians</key> +                <string>Premonstratensians</string> +            <key>Pucini</key> +                <string>Puccini</string> +            <key>Puertorrican</key> +                <string>Puerto Rican</string> +            <key>Puertorricans</key> +                <string>Puerto Ricans</string> +            <key>Queenland</key> +                <string>Queensland</string> +            <key>Rockerfeller</key> +                <string>Rockefeller</string> +            <key>Russion</key> +                <string>Russian</string> +            <key>Sanhedrim</key> +                <string>Sanhedrin</string> +            <key>Saterday</key> +                <string>Saturday</string> +            <key>Saterdays</key> +                <string>Saturdays</string> +            <key>Sionist</key> +                <string>Zionist</string> +            <key>Sionists</key> +                <string>Zionists</string> +            <key>Sixtin</key> +                <string>Sistine</string> +            <key>Skagerak</key> +                <string>Skagerrak</string> +            <key>Tolkein</key> +                <string>Tolkien</string> +            <key>Tuscon</key> +                <string>Tucson</string> +            <key>Ukranian</key> +                <string>Ukrainian</string> +            <key>UnitesStates</key> +                <string>UnitedStates</string> +            <key>Yementite</key> +                <string>Yemenite</string> +            <key>abandonned</key> +                <string>abandoned</string> +            <key>aberation</key> +                <string>aberration</string> +            <key>abilties</key> +                <string>abilities</string> +            <key>abilty</key> +                <string>ability</string> +            <key>abondon</key> +                <string>abandon</string> +            <key>abondoned</key> +                <string>abandoned</string> +            <key>abondoning</key> +                <string>abandoning</string> +            <key>abondons</key> +                <string>abandons</string> +            <key>aborigene</key> +                <string>aborigine</string> +            <key>abortificant</key> +                <string>abortifacient</string> +            <key>abreviate</key> +                <string>abbreviate</string> +            <key>abreviated</key> +                <string>abbreviated</string> +            <key>abreviation</key> +                <string>abbreviation</string> +            <key>abritrary</key> +                <string>arbitrary</string> +            <key>absail</key> +                <string>abseil</string> +            <key>absailing</key> +                <string>abseiling</string> +            <key>absense</key> +                <string>absence</string> +            <key>absolutly</key> +                <string>absolutely</string> +            <key>absorbsion</key> +                <string>absorption</string> +            <key>absorbtion</key> +                <string>absorption</string> +            <key>abundacies</key> +                <string>abundances</string> +            <key>abundancies</key> +                <string>abundances</string> +            <key>abundunt</key> +                <string>abundant</string> +            <key>abutts</key> +                <string>abuts</string> +            <key>acadamy</key> +                <string>academy</string> +            <key>acadmic</key> +                <string>academic</string> +            <key>accademic</key> +                <string>academic</string> +            <key>accademy</key> +                <string>academy</string> +            <key>acccused</key> +                <string>accused</string> +            <key>accelleration</key> +                <string>acceleration</string> +            <key>accension</key> +                <string>ascension</string> +            <key>acceptence</key> +                <string>acceptance</string> +            <key>acceptible</key> +                <string>acceptable</string> +            <key>accessable</key> +                <string>accessible</string> +            <key>accidentaly</key> +                <string>accidentally</string> +            <key>accidently</key> +                <string>accidentally</string> +            <key>acclimitization</key> +                <string>acclimatization</string> +            <key>accomadate</key> +                <string>accommodate</string> +            <key>accomadated</key> +                <string>accommodated</string> +            <key>accomadates</key> +                <string>accommodates</string> +            <key>accomadating</key> +                <string>accommodating</string> +            <key>accomadation</key> +                <string>accommodation</string> +            <key>accomadations</key> +                <string>accommodations</string> +            <key>accomdate</key> +                <string>accommodate</string> +            <key>accomodate</key> +                <string>accommodate</string> +            <key>accomodated</key> +                <string>accommodated</string> +            <key>accomodates</key> +                <string>accommodates</string> +            <key>accomodating</key> +                <string>accommodating</string> +            <key>accomodation</key> +                <string>accommodation</string> +            <key>accomodations</key> +                <string>accommodations</string> +            <key>accompanyed</key> +                <string>accompanied</string> +            <key>accordeon</key> +                <string>accordion</string> +            <key>accordian</key> +                <string>accordion</string> +            <key>accoring</key> +                <string>according</string> +            <key>accoustic</key> +                <string>acoustic</string> +            <key>accquainted</key> +                <string>acquainted </string> +            <key>accrediation</key> +                <string>accreditation</string> +            <key>accredidation</key> +                <string>accreditation</string> +            <key>accross</key> +                <string>across</string> +            <key>accussed</key> +                <string>accused</string> +            <key>acedemic</key> +                <string>academic</string> +            <key>acheive</key> +                <string>achieve</string> +            <key>acheived</key> +                <string>achieved</string> +            <key>acheivement</key> +                <string>achievement</string> +            <key>acheivements</key> +                <string>achievements</string> +            <key>acheives</key> +                <string>achieves</string> +            <key>acheiving</key> +                <string>achieving</string> +            <key>acheivment</key> +                <string>achievement</string> +            <key>acheivments</key> +                <string>achievements</string> +            <key>achievment</key> +                <string>achievement</string> +            <key>achievments</key> +                <string>achievements</string> +            <key>achivement</key> +                <string>achievement</string> +            <key>achivements</key> +                <string>achievements</string> +            <key>acknowldeged</key> +                <string>acknowledged</string> +            <key>acknowledgeing</key> +                <string>acknowledging</string> +            <key>ackward</key> +                <string>awkward</string> +            <key>acommodate</key> +                <string>accommodate</string> +            <key>acomplish</key> +                <string>accomplish</string> +            <key>acomplished</key> +                <string>accomplished</string> +            <key>acomplishment</key> +                <string>accomplishment</string> +            <key>acomplishments</key> +                <string>accomplishments</string> +            <key>acording</key> +                <string>according</string> +            <key>acordingly</key> +                <string>accordingly</string> +            <key>acquaintence</key> +                <string>acquaintance</string> +            <key>acquaintences</key> +                <string>acquaintances</string> +            <key>acquiantence</key> +                <string>acquaintance</string> +            <key>acquiantences</key> +                <string>acquaintances</string> +            <key>acquited</key> +                <string>acquitted</string> +            <key>activites</key> +                <string>activities</string> +            <key>activly</key> +                <string>actively</string> +            <key>actualy</key> +                <string>actually</string> +            <key>acuracy</key> +                <string>accuracy</string> +            <key>acused</key> +                <string>accused</string> +            <key>acustom</key> +                <string>accustom</string> +            <key>acustommed</key> +                <string>accustomed</string> +            <key>adavanced</key> +                <string>advanced</string> +            <key>adbandon</key> +                <string>abandon</string> +            <key>additinally</key> +                <string>additionally</string> +            <key>additionaly</key> +                <string>additionally</string> +            <key>additonal</key> +                <string>additional</string> +            <key>additonally</key> +                <string>additionally</string> +            <key>addmission</key> +                <string>admission</string> +            <key>addopt</key> +                <string>adopt</string> +            <key>addopted</key> +                <string>adopted</string> +            <key>addoptive</key> +                <string>adoptive</string> +            <key>addres</key> +                <string>address</string> +            <key>addresable</key> +                <string>addressable</string> +            <key>addresed</key> +                <string>addressed</string> +            <key>addresing</key> +                <string>addressing</string> +            <key>addressess</key> +                <string>addresses</string> +            <key>addtion</key> +                <string>addition</string> +            <key>addtional</key> +                <string>additional</string> +            <key>adecuate</key> +                <string>adequate</string> +            <key>adequit</key> +                <string>adequate</string> +            <key>adhearing</key> +                <string>adhering</string> +            <key>adherance</key> +                <string>adherence</string> +            <key>admendment</key> +                <string>amendment</string> +            <key>admininistrative</key> +                <string>administrative</string> +            <key>adminstered</key> +                <string>administered</string> +            <key>adminstrate</key> +                <string>administrate</string> +            <key>adminstration</key> +                <string>administration</string> +            <key>adminstrative</key> +                <string>administrative</string> +            <key>adminstrator</key> +                <string>administrator</string> +            <key>admissability</key> +                <string>admissibility</string> +            <key>admissable</key> +                <string>admissible</string> +            <key>admited</key> +                <string>admitted</string> +            <key>admitedly</key> +                <string>admittedly</string> +            <key>adn</key> +                <string>and</string> +            <key>adolecent</key> +                <string>adolescent</string> +            <key>adquire</key> +                <string>acquire</string> +            <key>adquired</key> +                <string>acquired</string> +            <key>adquires</key> +                <string>acquires</string> +            <key>adquiring</key> +                <string>acquiring</string> +            <key>adres</key> +                <string>address</string> +            <key>adresable</key> +                <string>addressable</string> +            <key>adresing</key> +                <string>addressing</string> +            <key>adress</key> +                <string>address</string> +            <key>adressable</key> +                <string>addressable</string> +            <key>adressed</key> +                <string>addressed</string> +            <key>adressing</key> +                <string>addressing</string> +            <key>adventrous</key> +                <string>adventurous</string> +            <key>advertisment</key> +                <string>advertisement</string> +            <key>advertisments</key> +                <string>advertisements</string> +            <key>advesary</key> +                <string>adversary</string> +            <key>adviced</key> +                <string>advised</string> +            <key>aeriel</key> +                <string>aerial</string> +            <key>aeriels</key> +                <string>aerials</string> +            <key>afair</key> +                <string>affair</string> +            <key>afficianados</key> +                <string>aficionados</string> +            <key>afficionado</key> +                <string>aficionado</string> +            <key>afficionados</key> +                <string>aficionados</string> +            <key>affilate</key> +                <string>affiliate</string> +            <key>affilliate</key> +                <string>affiliate</string> +            <key>affort</key> +                <string>afford</string> +            <key>aforememtioned</key> +                <string>aforementioned</string> +            <key>againnst</key> +                <string>against</string> +            <key>agains</key> +                <string>against</string> +            <key>agaisnt</key> +                <string>against</string> +            <key>aganist</key> +                <string>against</string> +            <key>aggaravates</key> +                <string>aggravates</string> +            <key>aggreed</key> +                <string>agreed</string> +            <key>aggreement</key> +                <string>agreement</string> +            <key>aggregious</key> +                <string>egregious</string> +            <key>aggresive</key> +                <string>aggressive</string> +            <key>agian</key> +                <string>again</string> +            <key>agianst</key> +                <string>against</string> +            <key>agin</key> +                <string>again</string> +            <key>agina</key> +                <string>again</string> +            <key>aginst</key> +                <string>against</string> +            <key>agravate</key> +                <string>aggravate</string> +            <key>agre</key> +                <string>agree</string> +            <key>agred</key> +                <string>agreed</string> +            <key>agreeement</key> +                <string>agreement</string> +            <key>agreemnt</key> +                <string>agreement</string> +            <key>agregate</key> +                <string>aggregate</string> +            <key>agregates</key> +                <string>aggregates</string> +            <key>agreing</key> +                <string>agreeing</string> +            <key>agression</key> +                <string>aggression</string> +            <key>agressive</key> +                <string>aggressive</string> +            <key>agressively</key> +                <string>aggressively</string> +            <key>agressor</key> +                <string>aggressor</string> +            <key>agricuture</key> +                <string>agriculture</string> +            <key>agrieved</key> +                <string>aggrieved</string> +            <key>ahev</key> +                <string>have</string> +            <key>ahppen</key> +                <string>happen</string> +            <key>ahve</key> +                <string>have</string> +            <key>aicraft</key> +                <string>aircraft</string> +            <key>aiport</key> +                <string>airport</string> +            <key>airbourne</key> +                <string>airborne</string> +            <key>aircaft</key> +                <string>aircraft</string> +            <key>aircrafts</key> +                <string>aircraft</string> +            <key>airporta</key> +                <string>airports</string> +            <key>airrcraft</key> +                <string>aircraft</string> +            <key>aisian</key> +                <string>asian</string> +            <key>albiet</key> +                <string>albeit</string> +            <key>alchohol</key> +                <string>alcohol</string> +            <key>alchoholic</key> +                <string>alcoholic</string> +            <key>alchol</key> +                <string>alcohol</string> +            <key>alcholic</key> +                <string>alcoholic</string> +            <key>alcohal</key> +                <string>alcohol</string> +            <key>alcoholical</key> +                <string>alcoholic</string> +            <key>aledge</key> +                <string>allege</string> +            <key>aledged</key> +                <string>alleged</string> +            <key>aledges</key> +                <string>alleges</string> +            <key>alege</key> +                <string>allege</string> +            <key>aleged</key> +                <string>alleged</string> +            <key>alegience</key> +                <string>allegiance</string> +            <key>algebraical</key> +                <string>algebraic</string> +            <key>algorhitms</key> +                <string>algorithms</string> +            <key>algoritm</key> +                <string>algorithm</string> +            <key>algoritms</key> +                <string>algorithms</string> +            <key>alientating</key> +                <string>alienating</string> +            <key>alledge</key> +                <string>allege</string> +            <key>alledged</key> +                <string>alleged</string> +            <key>alledgedly</key> +                <string>allegedly</string> +            <key>alledges</key> +                <string>alleges</string> +            <key>allegedely</key> +                <string>allegedly</string> +            <key>allegedy</key> +                <string>allegedly</string> +            <key>allegely</key> +                <string>allegedly</string> +            <key>allegence</key> +                <string>allegiance</string> +            <key>allegience</key> +                <string>allegiance</string> +            <key>allign</key> +                <string>align</string> +            <key>alligned</key> +                <string>aligned</string> +            <key>alliviate</key> +                <string>alleviate</string> +            <key>allopone</key> +                <string>allophone</string> +            <key>allopones</key> +                <string>allophones</string> +            <key>allready</key> +                <string>already</string> +            <key>allthough</key> +                <string>although</string> +            <key>alltime</key> +                <string>all-time</string> +            <key>alltogether</key> +                <string>altogether</string> +            <key>almsot</key> +                <string>almost</string> +            <key>alochol</key> +                <string>alcohol</string> +            <key>alomst</key> +                <string>almost</string> +            <key>alot</key> +                <string>a lot</string> +            <key>alotted</key> +                <string>allotted</string> +            <key>alowed</key> +                <string>allowed</string> +            <key>alowing</key> +                <string>allowing</string> +            <key>alreayd</key> +                <string>already</string> +            <key>alse</key> +                <string>else</string> +            <key>alsot</key> +                <string>also</string> +            <key>alternitives</key> +                <string>alternatives</string> +            <key>altho</key> +                <string>although</string> +            <key>althought</key> +                <string>although</string> +            <key>altough</key> +                <string>although</string> +            <key>alusion</key> +                <string>allusion</string> +            <key>alwasy</key> +                <string>always</string> +            <key>alwyas</key> +                <string>always</string> +            <key>amalgomated</key> +                <string>amalgamated</string> +            <key>amatuer</key> +                <string>amateur</string> +            <key>amature</key> +                <string>armature</string> +            <key>amendmant</key> +                <string>amendment</string> +            <key>amerliorate</key> +                <string>ameliorate</string> +            <key>amke</key> +                <string>make</string> +            <key>amking</key> +                <string>making</string> +            <key>ammend</key> +                <string>amend</string> +            <key>ammended</key> +                <string>amended</string> +            <key>ammendment</key> +                <string>amendment</string> +            <key>ammendments</key> +                <string>amendments</string> +            <key>ammount</key> +                <string>amount</string> +            <key>ammused</key> +                <string>amused</string> +            <key>amoung</key> +                <string>among</string> +            <key>amoungst</key> +                <string>amongst</string> +            <key>amung</key> +                <string>among</string> +            <key>amunition</key> +                <string>ammunition</string> +            <key>analagous</key> +                <string>analogous</string> +            <key>analitic</key> +                <string>analytic</string> +            <key>analogeous</key> +                <string>analogous</string> +            <key>anarchim</key> +                <string>anarchism</string> +            <key>anarchistm</key> +                <string>anarchism</string> +            <key>anbd</key> +                <string>and</string> +            <key>ancestory</key> +                <string>ancestry</string> +            <key>ancilliary</key> +                <string>ancillary</string> +            <key>androgenous</key> +                <string>androgynous</string> +            <key>androgeny</key> +                <string>androgyny</string> +            <key>anihilation</key> +                <string>annihilation</string> +            <key>aniversary</key> +                <string>anniversary</string> +            <key>annoint</key> +                <string>anoint</string> +            <key>annointed</key> +                <string>anointed</string> +            <key>annointing</key> +                <string>anointing</string> +            <key>annoints</key> +                <string>anoints</string> +            <key>annouced</key> +                <string>announced</string> +            <key>annualy</key> +                <string>annually</string> +            <key>annuled</key> +                <string>annulled</string> +            <key>anohter</key> +                <string>another</string> +            <key>anomolies</key> +                <string>anomalies</string> +            <key>anomolous</key> +                <string>anomalous</string> +            <key>anomoly</key> +                <string>anomaly</string> +            <key>anonimity</key> +                <string>anonymity</string> +            <key>anounced</key> +                <string>announced</string> +            <key>anouncement</key> +                <string>announcement</string> +            <key>ansalisation</key> +                <string>nasalisation</string> +            <key>ansalization</key> +                <string>nasalization</string> +            <key>ansestors</key> +                <string>ancestors</string> +            <key>antartic</key> +                <string>antarctic</string> +            <key>anthromorphization</key> +                <string>anthropomorphization</string> +            <key>anthropolgist</key> +                <string>anthropologist</string> +            <key>anthropolgy</key> +                <string>anthropology</string> +            <key>anual</key> +                <string>annual</string> +            <key>anulled</key> +                <string>annulled</string> +            <key>anwsered</key> +                <string>answered</string> +            <key>anyhwere</key> +                <string>anywhere</string> +            <key>anyother</key> +                <string>any other</string> +            <key>anytying</key> +                <string>anything</string> +            <key>aparent</key> +                <string>apparent</string> +            <key>aparment</key> +                <string>apartment</string> +            <key>apenines</key> +                <string>apennines</string> +            <key>aplication</key> +                <string>application</string> +            <key>aplied</key> +                <string>applied</string> +            <key>apolegetics</key> +                <string>apologetics</string> +            <key>apon</key> +                <string>apron</string> +            <key>apparant</key> +                <string>apparent</string> +            <key>apparantly</key> +                <string>apparently</string> +            <key>appart</key> +                <string>apart</string> +            <key>appartment</key> +                <string>apartment</string> +            <key>appartments</key> +                <string>apartments</string> +            <key>appealling</key> +                <string>appealing</string> +            <key>appeareance</key> +                <string>appearance</string> +            <key>appearence</key> +                <string>appearance</string> +            <key>appearences</key> +                <string>appearances</string> +            <key>apperance</key> +                <string>appearance</string> +            <key>apperances</key> +                <string>appearances</string> +            <key>appereance</key> +                <string>appearance</string> +            <key>appereances</key> +                <string>appearances</string> +            <key>applicaiton</key> +                <string>application</string> +            <key>applicaitons</key> +                <string>applications</string> +            <key>appologies</key> +                <string>apologies</string> +            <key>appology</key> +                <string>apology</string> +            <key>apprearance</key> +                <string>appearance</string> +            <key>apprieciate</key> +                <string>appreciate</string> +            <key>approachs</key> +                <string>approaches</string> +            <key>appropiate</key> +                <string>appropriate</string> +            <key>appropraite</key> +                <string>appropriate</string> +            <key>appropropiate</key> +                <string>appropriate</string> +            <key>approproximate</key> +                <string>approximate</string> +            <key>approxamately</key> +                <string>approximately</string> +            <key>approxiately</key> +                <string>approximately</string> +            <key>approximitely</key> +                <string>approximately</string> +            <key>aprehensive</key> +                <string>apprehensive</string> +            <key>apropriate</key> +                <string>appropriate</string> +            <key>aproximate</key> +                <string>approximate</string> +            <key>aproximately</key> +                <string>approximately</string> +            <key>aquaduct</key> +                <string>aqueduct</string> +            <key>aquaintance</key> +                <string>acquaintance</string> +            <key>aquainted</key> +                <string>acquainted</string> +            <key>aquiantance</key> +                <string>acquaintance</string> +            <key>aquire</key> +                <string>acquire</string> +            <key>aquired</key> +                <string>acquired</string> +            <key>aquiring</key> +                <string>acquiring</string> +            <key>aquisition</key> +                <string>acquisition</string> +            <key>aquitted</key> +                <string>acquitted</string> +            <key>aranged</key> +                <string>arranged</string> +            <key>arangement</key> +                <string>arrangement</string> +            <key>arbitarily</key> +                <string>arbitrarily</string> +            <key>arbitary</key> +                <string>arbitrary</string> +            <key>archaelogists</key> +                <string>archaeologists</string> +            <key>archaelogy</key> +                <string>archaeology</string> +            <key>archaoelogy</key> +                <string>archaeology</string> +            <key>archaology</key> +                <string>archaeology</string> +            <key>archeaologist</key> +                <string>archaeologist</string> +            <key>archeaologists</key> +                <string>archaeologists</string> +            <key>archetect</key> +                <string>architect</string> +            <key>archetects</key> +                <string>architects</string> +            <key>archetectural</key> +                <string>architectural</string> +            <key>archetecturally</key> +                <string>architecturally</string> +            <key>archetecture</key> +                <string>architecture</string> +            <key>archiac</key> +                <string>archaic</string> +            <key>archictect</key> +                <string>architect</string> +            <key>archimedian</key> +                <string>archimedean</string> +            <key>architecht</key> +                <string>architect</string> +            <key>architechturally</key> +                <string>architecturally</string> +            <key>architechture</key> +                <string>architecture</string> +            <key>architechtures</key> +                <string>architectures</string> +            <key>architectual</key> +                <string>architectural</string> +            <key>archtype</key> +                <string>archetype</string> +            <key>archtypes</key> +                <string>archetypes</string> +            <key>aready</key> +                <string>already</string> +            <key>areodynamics</key> +                <string>aerodynamics</string> +            <key>argubly</key> +                <string>arguably</string> +            <key>arguement</key> +                <string>argument</string> +            <key>arguements</key> +                <string>arguments</string> +            <key>arised</key> +                <string>arose</string> +            <key>arival</key> +                <string>arrival</string> +            <key>armamant</key> +                <string>armament</string> +            <key>armistace</key> +                <string>armistice</string> +            <key>arogant</key> +                <string>arrogant</string> +            <key>arogent</key> +                <string>arrogant</string> +            <key>aroud</key> +                <string>around</string> +            <key>arrangment</key> +                <string>arrangement</string> +            <key>arrangments</key> +                <string>arrangements</string> +            <key>arround</key> +                <string>around</string> +            <key>artical</key> +                <string>article</string> +            <key>artice</key> +                <string>article</string> +            <key>articel</key> +                <string>article</string> +            <key>artifical</key> +                <string>artificial</string> +            <key>artifically</key> +                <string>artificially</string> +            <key>artillary</key> +                <string>artillery</string> +            <key>arund</key> +                <string>around</string> +            <key>asetic</key> +                <string>ascetic</string> +            <key>asfar</key> +                <string>as far</string> +            <key>asign</key> +                <string>assign</string> +            <key>aslo</key> +                <string>also</string> +            <key>asociated</key> +                <string>associated</string> +            <key>asorbed</key> +                <string>absorbed</string> +            <key>asphyxation</key> +                <string>asphyxiation</string> +            <key>assasin</key> +                <string>assassin</string> +            <key>assasinate</key> +                <string>assassinate</string> +            <key>assasinated</key> +                <string>assassinated</string> +            <key>assasinates</key> +                <string>assassinates</string> +            <key>assasination</key> +                <string>assassination</string> +            <key>assasinations</key> +                <string>assassinations</string> +            <key>assasined</key> +                <string>assassinated</string> +            <key>assasins</key> +                <string>assassins</string> +            <key>assassintation</key> +                <string>assassination</string> +            <key>assemple</key> +                <string>assemble</string> +            <key>assertation</key> +                <string>assertion</string> +            <key>asside</key> +                <string>aside</string> +            <key>assisnate</key> +                <string>assassinate</string> +            <key>assit</key> +                <string>assist</string> +            <key>assitant</key> +                <string>assistant</string> +            <key>assocation</key> +                <string>association</string> +            <key>assoicate</key> +                <string>associate</string> +            <key>assoicated</key> +                <string>associated</string> +            <key>assoicates</key> +                <string>associates</string> +            <key>assosication</key> +                <string>assassination</string> +            <key>asssassans</key> +                <string>assassins</string> +            <key>assualt</key> +                <string>assault</string> +            <key>assualted</key> +                <string>assaulted</string> +            <key>assymetric</key> +                <string>asymmetric</string> +            <key>assymetrical</key> +                <string>asymmetrical</string> +            <key>asteriod</key> +                <string>asteroid</string> +            <key>asthetic</key> +                <string>aesthetic</string> +            <key>asthetical</key> +                <string>aesthetical</string> +            <key>asthetically</key> +                <string>aesthetically</string> +            <key>asume</key> +                <string>assume</string> +            <key>aswell</key> +                <string>as well</string> +            <key>atain</key> +                <string>attain</string> +            <key>atempting</key> +                <string>attempting</string> +            <key>atheistical</key> +                <string>atheistic</string> +            <key>athenean</key> +                <string>athenian</string> +            <key>atheneans</key> +                <string>athenians</string> +            <key>athiesm</key> +                <string>atheism</string> +            <key>athiest</key> +                <string>atheist</string> +            <key>atorney</key> +                <string>attorney</string> +            <key>atribute</key> +                <string>attribute</string> +            <key>atributed</key> +                <string>attributed</string> +            <key>atributes</key> +                <string>attributes</string> +            <key>attaindre</key> +                <string>attainder</string> +            <key>attemp</key> +                <string>attempt</string> +            <key>attemped</key> +                <string>attempted</string> +            <key>attemt</key> +                <string>attempt</string> +            <key>attemted</key> +                <string>attempted</string> +            <key>attemting</key> +                <string>attempting</string> +            <key>attemts</key> +                <string>attempts</string> +            <key>attendence</key> +                <string>attendance</string> +            <key>attendent</key> +                <string>attendant</string> +            <key>attendents</key> +                <string>attendants</string> +            <key>attened</key> +                <string>attended</string> +            <key>attension</key> +                <string>attention</string> +            <key>attitide</key> +                <string>attitude</string> +            <key>attributred</key> +                <string>attributed</string> +            <key>attrocities</key> +                <string>atrocities</string> +            <key>audeince</key> +                <string>audience</string> +            <key>auromated</key> +                <string>automated</string> +            <key>austrailia</key> +                <string>Australia</string> +            <key>austrailian</key> +                <string>Australian</string> +            <key>auther</key> +                <string>author</string> +            <key>authobiographic</key> +                <string>autobiographic</string> +            <key>authobiography</key> +                <string>autobiography</string> +            <key>authorative</key> +                <string>authoritative</string> +            <key>authorites</key> +                <string>authorities</string> +            <key>authorithy</key> +                <string>authority</string> +            <key>authoritiers</key> +                <string>authorities</string> +            <key>authoritive</key> +                <string>authoritative</string> +            <key>authrorities</key> +                <string>authorities</string> +            <key>autochtonous</key> +                <string>autochthonous</string> +            <key>autoctonous</key> +                <string>autochthonous</string> +            <key>automaticly</key> +                <string>automatically</string> +            <key>automibile</key> +                <string>automobile</string> +            <key>automonomous</key> +                <string>autonomous</string> +            <key>autor</key> +                <string>author</string> +            <key>autority</key> +                <string>authority</string> +            <key>auxilary</key> +                <string>auxiliary</string> +            <key>auxillaries</key> +                <string>auxiliaries</string> +            <key>auxillary</key> +                <string>auxiliary</string> +            <key>auxilliaries</key> +                <string>auxiliaries</string> +            <key>auxilliary</key> +                <string>auxiliary</string> +            <key>availabe</key> +                <string> available</string> +            <key>availablity</key> +                <string>availability</string> +            <key>availaible</key> +                <string>available</string> +            <key>availble</key> +                <string>available</string> +            <key>availiable</key> +                <string>available</string> +            <key>availible</key> +                <string>available</string> +            <key>avalable</key> +                <string>available</string> +            <key>avalance</key> +                <string>avalanche</string> +            <key>avaliable</key> +                <string>available</string> +            <key>avation</key> +                <string>aviation</string> +            <key>avengence</key> +                <string>a vengeance</string> +            <key>averageed</key> +                <string>averaged</string> +            <key>avilable</key> +                <string>available</string> +            <key>awared</key> +                <string>awarded</string> +            <key>awya</key> +                <string>away</string> +            <key>baceause</key> +                <string>because</string> +            <key>backgorund</key> +                <string>background</string> +            <key>backrounds</key> +                <string>backgrounds</string> +            <key>bakc</key> +                <string>back</string> +            <key>banannas</key> +                <string>bananas</string> +            <key>bandwith</key> +                <string>bandwidth</string> +            <key>bankrupcy</key> +                <string>bankruptcy</string> +            <key>banruptcy</key> +                <string>bankruptcy</string> +            <key>baout</key> +                <string>about</string> +            <key>basicaly</key> +                <string>basically</string> +            <key>basicly</key> +                <string>basically</string> +            <key>bcak</key> +                <string>back</string> +            <key>beachead</key> +                <string>beachhead</string> +            <key>beacuse</key> +                <string>because</string> +            <key>beastiality</key> +                <string>bestiality</string> +            <key>beatiful</key> +                <string>beautiful</string> +            <key>beaurocracy</key> +                <string>bureaucracy</string> +            <key>beaurocratic</key> +                <string>bureaucratic</string> +            <key>beautyfull</key> +                <string>beautiful</string> +            <key>becamae</key> +                <string>became</string> +            <key>becames</key> +                <string>becomes</string> +            <key>becasue</key> +                <string>because</string> +            <key>beccause</key> +                <string>because</string> +            <key>becomeing</key> +                <string>becoming</string> +            <key>becomming</key> +                <string>becoming</string> +            <key>becouse</key> +                <string>because</string> +            <key>becuase</key> +                <string>because</string> +            <key>bedore</key> +                <string>before</string> +            <key>befoer</key> +                <string>before</string> +            <key>beggin</key> +                <string>begin</string> +            <key>begginer</key> +                <string>beginner</string> +            <key>begginers</key> +                <string>beginners</string> +            <key>beggining</key> +                <string>beginning</string> +            <key>begginings</key> +                <string>beginnings</string> +            <key>beggins</key> +                <string>begins</string> +            <key>begining</key> +                <string>beginning</string> +            <key>beginnig</key> +                <string>beginning</string> +            <key>behavour</key> +                <string>behavior</string> +            <key>beleagured</key> +                <string>beleaguered</string> +            <key>beleif</key> +                <string>belief</string> +            <key>beleive</key> +                <string>believe</string> +            <key>beleived</key> +                <string>believed</string> +            <key>beleives</key> +                <string>believes</string> +            <key>beleiving</key> +                <string>believing</string> +            <key>beligum</key> +                <string>belgium</string> +            <key>belive</key> +                <string>believe</string> +            <key>belived</key> +                <string>believed</string> +            <key>belives</key> +                <string>believes</string> +            <key>belligerant</key> +                <string>belligerent</string> +            <key>bellweather</key> +                <string>bellwether</string> +            <key>bemusemnt</key> +                <string>bemusement</string> +            <key>beneficary</key> +                <string>beneficiary</string> +            <key>beng</key> +                <string>being</string> +            <key>benificial</key> +                <string>beneficial</string> +            <key>benifit</key> +                <string>benefit</string> +            <key>benifits</key> +                <string>benefits</string> +            <key>bergamont</key> +                <string>bergamot</string> +            <key>beseige</key> +                <string>besiege</string> +            <key>beseiged</key> +                <string>besieged</string> +            <key>beseiging</key> +                <string>besieging</string> +            <key>betwen</key> +                <string>between</string> +            <key>beween</key> +                <string>between</string> +            <key>bewteen</key> +                <string>between</string> +            <key>bilateraly</key> +                <string>bilaterally</string> +            <key>billingualism</key> +                <string>bilingualism</string> +            <key>binominal</key> +                <string>binomial</string> +            <key>bizzare</key> +                <string>bizarre</string> +            <key>blaim</key> +                <string>blame</string> +            <key>blaimed</key> +                <string>blamed</string> +            <key>blessure</key> +                <string>blessing</string> +            <key>bodydbuilder</key> +                <string>bodybuilder</string> +            <key>bombardement</key> +                <string>bombardment</string> +            <key>bombarment</key> +                <string>bombardment</string> +            <key>bondary</key> +                <string>boundary</string> +            <key>borke</key> +                <string>broke</string> +            <key>boundry</key> +                <string>boundary</string> +            <key>bouyancy</key> +                <string>buoyancy</string> +            <key>bouyant</key> +                <string>buoyant</string> +            <key>boyant</key> +                <string>buoyant</string> +            <key>breakthough</key> +                <string>breakthrough</string> +            <key>breakthroughts</key> +                <string>breakthroughs</string> +            <key>breif</key> +                <string>brief</string> +            <key>breifly</key> +                <string>briefly</string> +            <key>brethen</key> +                <string>brethren</string> +            <key>bretheren</key> +                <string>brethren</string> +            <key>briliant</key> +                <string>brilliant</string> +            <key>brillant</key> +                <string>brilliant</string> +            <key>brimestone</key> +                <string>brimstone</string> +            <key>broacasted</key> +                <string>broadcast</string> +            <key>broadacasting</key> +                <string>broadcasting</string> +            <key>broady</key> +                <string>broadly</string> +            <key>buisness</key> +                <string>business</string> +            <key>buisnessman</key> +                <string>businessman</string> +            <key>buoancy</key> +                <string>buoyancy</string> +            <key>burried</key> +                <string>buried</string> +            <key>busineses</key> +                <string>businesses</string> +            <key>busness</key> +                <string>business</string> +            <key>bussiness</key> +                <string>business</string> +            <key>caculater</key> +                <string>calculator</string> +            <key>cacuses</key> +                <string>caucuses</string> +            <key>cahracters</key> +                <string>characters</string> +            <key>calaber</key> +                <string>caliber</string> +            <key>calculater</key> +                <string>calculator</string> +            <key>calculs</key> +                <string>calculus</string> +            <key>calenders</key> +                <string>calendars</string> +            <key>caligraphy</key> +                <string>calligraphy</string> +            <key>caluclate</key> +                <string>calculate</string> +            <key>caluclated</key> +                <string>calculated</string> +            <key>caluculate</key> +                <string>calculate</string> +            <key>caluculated</key> +                <string>calculated</string> +            <key>calulate</key> +                <string>calculate</string> +            <key>calulated</key> +                <string>calculated</string> +            <key>calulater</key> +                <string>calculator</string> +            <key>camoflage</key> +                <string>camouflage</string> +            <key>campain</key> +                <string>campaign</string> +            <key>campains</key> +                <string>campaigns</string> +            <key>candadate</key> +                <string>candidate</string> +            <key>candiate</key> +                <string>candidate</string> +            <key>candidiate</key> +                <string>candidate</string> +            <key>cannister</key> +                <string>canister</string> +            <key>cannisters</key> +                <string>canisters</string> +            <key>cannnot</key> +                <string>cannot</string> +            <key>cannonical</key> +                <string>canonical</string> +            <key>cannotation</key> +                <string>connotation</string> +            <key>cannotations</key> +                <string>connotations</string> +            <key>cant</key> +                <string>can't</string> +            <key>caost</key> +                <string>coast</string> +            <key>caperbility</key> +                <string>capability</string> +            <key>capible</key> +                <string>capable</string> +            <key>captial</key> +                <string>capital</string> +            <key>captued</key> +                <string>captured</string> +            <key>capturd</key> +                <string>captured</string> +            <key>carachter</key> +                <string>character</string> +            <key>caracterized</key> +                <string>characterized</string> +            <key>carcas</key> +                <string>carcass</string> +            <key>carefull</key> +                <string>careful</string> +            <key>careing</key> +                <string>caring</string> +            <key>carismatic</key> +                <string>charismatic</string> +            <key>carnege</key> +                <string>carnage</string> +            <key>carnige</key> +                <string>carnage</string> +            <key>carniverous</key> +                <string>carnivorous</string> +            <key>carreer</key> +                <string>career</string> +            <key>carrers</key> +                <string>careers</string> +            <key>cartdridge</key> +                <string>cartridge</string> +            <key>carthographer</key> +                <string>cartographer</string> +            <key>cartilege</key> +                <string>cartilage</string> +            <key>cartilidge</key> +                <string>cartilage</string> +            <key>cartrige</key> +                <string>cartridge</string> +            <key>casette</key> +                <string>cassette</string> +            <key>casion</key> +                <string>caisson</string> +            <key>cassawory</key> +                <string>cassowary</string> +            <key>cassowarry</key> +                <string>cassowary</string> +            <key>casulaties</key> +                <string>casualties</string> +            <key>casulaty</key> +                <string>casualty</string> +            <key>catagories</key> +                <string>categories</string> +            <key>catagorized</key> +                <string>categorized</string> +            <key>catagory</key> +                <string>category</string> +            <key>catapillar</key> +                <string>caterpillar</string> +            <key>catapillars</key> +                <string>caterpillars</string> +            <key>catapiller</key> +                <string>caterpillar</string> +            <key>catapillers</key> +                <string>caterpillars</string> +            <key>catepillar</key> +                <string>caterpillar</string> +            <key>catepillars</key> +                <string>caterpillars</string> +            <key>catergorize</key> +                <string>categorize</string> +            <key>catergorized</key> +                <string>categorized</string> +            <key>caterpilar</key> +                <string>caterpillar</string> +            <key>caterpilars</key> +                <string>caterpillars</string> +            <key>caterpiller</key> +                <string>caterpillar</string> +            <key>caterpillers</key> +                <string>caterpillars</string> +            <key>cathlic</key> +                <string>catholic</string> +            <key>catholocism</key> +                <string>catholicism</string> +            <key>catterpilar</key> +                <string>caterpillar</string> +            <key>catterpilars</key> +                <string>caterpillars</string> +            <key>catterpillar</key> +                <string>caterpillar</string> +            <key>catterpillars</key> +                <string>caterpillars</string> +            <key>cattleship</key> +                <string>battleship</string> +            <key>causalities</key> +                <string>casualties</string> +            <key>cellpading</key> +                <string>cellpadding</string> +            <key>cementary</key> +                <string>cemetery</string> +            <key>cemetarey</key> +                <string>cemetery</string> +            <key>cemetaries</key> +                <string>cemeteries</string> +            <key>cemetary</key> +                <string>cemetery</string> +            <key>cencus</key> +                <string>census</string> +            <key>censur</key> +                <string>censor</string> +            <key>cententenial</key> +                <string>centennial</string> +            <key>centruies</key> +                <string>centuries</string> +            <key>centruy</key> +                <string>century</string> +            <key>ceratin</key> +                <string>certain</string> +            <key>cerimonial</key> +                <string>ceremonial</string> +            <key>cerimonies</key> +                <string>ceremonies</string> +            <key>cerimonious</key> +                <string>ceremonious</string> +            <key>cerimony</key> +                <string>ceremony</string> +            <key>ceromony</key> +                <string>ceremony</string> +            <key>certainity</key> +                <string>certainty</string> +            <key>certian</key> +                <string>certain</string> +            <key>chalenging</key> +                <string>challenging</string> +            <key>challange</key> +                <string>challenge</string> +            <key>challanged</key> +                <string>challenged</string> +            <key>challege</key> +                <string>challenge</string> +            <key>changable</key> +                <string>changeable</string> +            <key>charachter</key> +                <string>character</string> +            <key>charachters</key> +                <string>characters</string> +            <key>charactersistic</key> +                <string>characteristic</string> +            <key>charactor</key> +                <string>character </string> +            <key>charactors</key> +                <string>characters</string> +            <key>charasmatic</key> +                <string>charismatic</string> +            <key>charaterized</key> +                <string>characterized</string> +            <key>chariman</key> +                <string>chairman</string> +            <key>charistics</key> +                <string>characteristics</string> +            <key>cheif</key> +                <string>chief</string> +            <key>cheifs</key> +                <string>chiefs</string> +            <key>chemcial</key> +                <string>chemical</string> +            <key>chemcially</key> +                <string>chemically</string> +            <key>chemestry</key> +                <string>chemistry</string> +            <key>chemicaly</key> +                <string>chemically</string> +            <key>childbird</key> +                <string>childbirth</string> +            <key>childen</key> +                <string>children</string> +            <key>choosen</key> +                <string>chosen</string> +            <key>chracter</key> +                <string>character</string> +            <key>chuch</key> +                <string>church</string> +            <key>churchs</key> +                <string>churches</string> +            <key>circulaton</key> +                <string>circulation</string> +            <key>circumsicion</key> +                <string>circumcision</string> +            <key>circut</key> +                <string>circuit</string> +            <key>ciricuit</key> +                <string>circuit</string> +            <key>ciriculum</key> +                <string>curriculum</string> +            <key>civillian</key> +                <string>civilian</string> +            <key>claer</key> +                <string>clear</string> +            <key>claerer</key> +                <string>clearer</string> +            <key>claerly</key> +                <string>clearly</string> +            <key>claimes</key> +                <string>claims</string> +            <key>clas</key> +                <string>class</string> +            <key>clasic</key> +                <string>classic</string> +            <key>clasical</key> +                <string>classical</string> +            <key>clasically</key> +                <string>classically</string> +            <key>cleareance</key> +                <string>clearance</string> +            <key>clera</key> +                <string>clear</string> +            <key>clincial</key> +                <string>clinical</string> +            <key>clinicaly</key> +                <string>clinically</string> +            <key>cmo</key> +                <string>com</string> +            <key>cmoputer</key> +                <string>computer</string> +            <key>co-incided</key> +                <string>coincided</string> +            <key>coctail</key> +                <string>cocktail</string> +            <key>coform</key> +                <string>conform</string> +            <key>cognizent</key> +                <string>cognizant</string> +            <key>coincedentally</key> +                <string>coincidentally</string> +            <key>colaborations</key> +                <string>collaborations</string> +            <key>colateral</key> +                <string>collateral</string> +            <key>colelctive</key> +                <string>collective</string> +            <key>collaberative</key> +                <string>collaborative</string> +            <key>collecton</key> +                <string>collection</string> +            <key>collegue</key> +                <string>colleague</string> +            <key>collegues</key> +                <string>colleagues</string> +            <key>collonade</key> +                <string>colonnade</string> +            <key>collonies</key> +                <string>colonies</string> +            <key>collony</key> +                <string>colony </string> +            <key>collosal</key> +                <string>colossal</string> +            <key>colonizators</key> +                <string>colonizers</string> +            <key>comander</key> +                <string>commander</string> +            <key>comando</key> +                <string>commando</string> +            <key>comandos</key> +                <string>commandos</string> +            <key>comany</key> +                <string>company</string> +            <key>comapany</key> +                <string>company</string> +            <key>comback</key> +                <string>comeback</string> +            <key>combanations</key> +                <string>combinations</string> +            <key>combinatins</key> +                <string>combinations</string> +            <key>combusion</key> +                <string>combustion</string> +            <key>comdemnation</key> +                <string>condemnation</string> +            <key>comemmorates</key> +                <string>commemorates</string> +            <key>comemoretion</key> +                <string>commemoration</string> +            <key>comision</key> +                <string>commission</string> +            <key>comisioned</key> +                <string>commissioned</string> +            <key>comisioner</key> +                <string>commissioner</string> +            <key>comisioning</key> +                <string>commissioning</string> +            <key>comisions</key> +                <string>commissions</string> +            <key>comission</key> +                <string>commission</string> +            <key>comissioned</key> +                <string>commissioned</string> +            <key>comissioner</key> +                <string>commissioner</string> +            <key>comissioning</key> +                <string>commissioning</string> +            <key>comissions</key> +                <string>commissions</string> +            <key>comited</key> +                <string>committed</string> +            <key>comiting</key> +                <string>committing</string> +            <key>comitted</key> +                <string>committed</string> +            <key>comittee</key> +                <string>committee</string> +            <key>comitting</key> +                <string>committing</string> +            <key>commandoes</key> +                <string>commandos</string> +            <key>commedic</key> +                <string>comedic</string> +            <key>commemerative</key> +                <string>commemorative</string> +            <key>commemmorate</key> +                <string>commemorate</string> +            <key>commemmorating</key> +                <string>commemorating</string> +            <key>commerical</key> +                <string>commercial</string> +            <key>commerically</key> +                <string>commercially</string> +            <key>commericial</key> +                <string>commercial</string> +            <key>commericially</key> +                <string>commercially</string> +            <key>commerorative</key> +                <string>commemorative</string> +            <key>comming</key> +                <string>coming</string> +            <key>comminication</key> +                <string>communication</string> +            <key>commision</key> +                <string>commission</string> +            <key>commisioned</key> +                <string>commissioned</string> +            <key>commisioner</key> +                <string>commissioner</string> +            <key>commisioning</key> +                <string>commissioning</string> +            <key>commisions</key> +                <string>commissions</string> +            <key>commited</key> +                <string>committed</string> +            <key>commitee</key> +                <string>committee</string> +            <key>commiting</key> +                <string>committing</string> +            <key>committe</key> +                <string>committee</string> +            <key>committment</key> +                <string>commitment</string> +            <key>committments</key> +                <string>commitments</string> +            <key>commmemorated</key> +                <string>commemorated</string> +            <key>commongly</key> +                <string>commonly</string> +            <key>commonweath</key> +                <string>commonwealth</string> +            <key>commuications</key> +                <string>communications</string> +            <key>commuinications</key> +                <string>communications</string> +            <key>communciation</key> +                <string>communication</string> +            <key>communiation</key> +                <string>communication</string> +            <key>communites</key> +                <string>communities</string> +            <key>compability</key> +                <string>compatibility</string> +            <key>comparision</key> +                <string>comparison</string> +            <key>comparisions</key> +                <string>comparisons</string> +            <key>comparitive</key> +                <string>comparative</string> +            <key>comparitively</key> +                <string>comparatively</string> +            <key>compatabilities</key> +                <string>compatibilities</string> +            <key>compatability</key> +                <string>compatibility</string> +            <key>compatable</key> +                <string>compatible</string> +            <key>compatablities</key> +                <string>compatibilities</string> +            <key>compatablity</key> +                <string>compatibility</string> +            <key>compatiable</key> +                <string>compatible</string> +            <key>compatiblities</key> +                <string>compatibilities</string> +            <key>compatiblity</key> +                <string>compatibility</string> +            <key>compeitions</key> +                <string>competitions</string> +            <key>compensantion</key> +                <string>compensation</string> +            <key>competance</key> +                <string>competence</string> +            <key>competant</key> +                <string>competent</string> +            <key>competative</key> +                <string>competitive</string> +            <key>competion</key> +                <string>competition</string> +            <key>competitiion</key> +                <string>competition</string> +            <key>competive</key> +                <string>competitive</string> +            <key>competiveness</key> +                <string>competitiveness</string> +            <key>comphrehensive</key> +                <string>comprehensive</string> +            <key>compitent</key> +                <string>competent</string> +            <key>completedthe</key> +                <string>completed the</string> +            <key>completelyl</key> +                <string>completely</string> +            <key>completetion</key> +                <string>completion</string> +            <key>complier</key> +                <string>compiler</string> +            <key>componant</key> +                <string>component</string> +            <key>comprable</key> +                <string>comparable</string> +            <key>comprimise</key> +                <string>compromise</string> +            <key>compulsary</key> +                <string>compulsory</string> +            <key>compulsery</key> +                <string>compulsory</string> +            <key>computarized</key> +                <string>computerized</string> +            <key>concensus</key> +                <string>consensus</string> +            <key>concider</key> +                <string>consider</string> +            <key>concidered</key> +                <string>considered</string> +            <key>concidering</key> +                <string>considering</string> +            <key>conciders</key> +                <string>considers</string> +            <key>concieted</key> +                <string>conceited</string> +            <key>concieved</key> +                <string>conceived</string> +            <key>concious</key> +                <string>conscious</string> +            <key>conciously</key> +                <string>consciously</string> +            <key>conciousness</key> +                <string>consciousness</string> +            <key>condamned</key> +                <string>condemned</string> +            <key>condemmed</key> +                <string>condemned</string> +            <key>condidtion</key> +                <string>condition</string> +            <key>condidtions</key> +                <string>conditions</string> +            <key>conditionsof</key> +                <string>conditions of</string> +            <key>conected</key> +                <string>connected</string> +            <key>conection</key> +                <string>connection</string> +            <key>conesencus</key> +                <string>consensus</string> +            <key>confidental</key> +                <string>confidential</string> +            <key>confidentally</key> +                <string>confidentially</string> +            <key>confids</key> +                <string>confides</string> +            <key>configureable</key> +                <string>configurable</string> +            <key>confortable</key> +                <string>comfortable</string> +            <key>congradulations</key> +                <string>congratulations</string> +            <key>congresional</key> +                <string>congressional</string> +            <key>conived</key> +                <string>connived</string> +            <key>conjecutre</key> +                <string>conjecture</string> +            <key>conjuction</key> +                <string>conjunction</string> +            <key>conotations</key> +                <string>connotations</string> +            <key>conquerd</key> +                <string>conquered</string> +            <key>conquerer</key> +                <string>conqueror</string> +            <key>conquerers</key> +                <string>conquerors</string> +            <key>conqured</key> +                <string>conquered</string> +            <key>conscent</key> +                <string>consent</string> +            <key>consciouness</key> +                <string>consciousness</string> +            <key>consdider</key> +                <string>consider</string> +            <key>consdidered</key> +                <string>considered</string> +            <key>consdiered</key> +                <string>considered</string> +            <key>consectutive</key> +                <string>consecutive</string> +            <key>consenquently</key> +                <string>consequently</string> +            <key>consentrate</key> +                <string>concentrate</string> +            <key>consentrated</key> +                <string>concentrated</string> +            <key>consentrates</key> +                <string>concentrates</string> +            <key>consept</key> +                <string>concept</string> +            <key>consequentually</key> +                <string>consequently</string> +            <key>consequeseces</key> +                <string>consequences</string> +            <key>consern</key> +                <string>concern</string> +            <key>conserned</key> +                <string>concerned</string> +            <key>conserning</key> +                <string>concerning</string> +            <key>conservitive</key> +                <string>conservative</string> +            <key>consiciousness</key> +                <string>consciousness</string> +            <key>consicousness</key> +                <string>consciousness</string> +            <key>considerd</key> +                <string>considered</string> +            <key>consideres</key> +                <string>considered</string> +            <key>consious</key> +                <string>conscious</string> +            <key>consistant</key> +                <string>consistent</string> +            <key>consistantly</key> +                <string>consistently</string> +            <key>consituencies</key> +                <string>constituencies</string> +            <key>consituency</key> +                <string>constituency</string> +            <key>consituted</key> +                <string>constituted</string> +            <key>consitution</key> +                <string>constitution</string> +            <key>consitutional</key> +                <string>constitutional</string> +            <key>consolodate</key> +                <string>consolidate</string> +            <key>consolodated</key> +                <string>consolidated</string> +            <key>consonent</key> +                <string>consonant</string> +            <key>consonents</key> +                <string>consonants</string> +            <key>consorcium</key> +                <string>consortium</string> +            <key>conspiracys</key> +                <string>conspiracies</string> +            <key>conspiriator</key> +                <string>conspirator</string> +            <key>constaints</key> +                <string>constraints</string> +            <key>constanly</key> +                <string>constantly</string> +            <key>constarnation</key> +                <string>consternation</string> +            <key>constatn</key> +                <string>constant</string> +            <key>constinually</key> +                <string>continually</string> +            <key>constituant</key> +                <string>constituent</string> +            <key>constituants</key> +                <string>constituents</string> +            <key>constituion</key> +                <string>constitution</string> +            <key>constituional</key> +                <string>constitutional</string> +            <key>consttruction</key> +                <string>construction</string> +            <key>constuction</key> +                <string>construction</string> +            <key>consulant</key> +                <string>consultant</string> +            <key>consumate</key> +                <string>consummate</string> +            <key>consumated</key> +                <string>consummated</string> +            <key>contaiminate</key> +                <string>contaminate</string> +            <key>containes</key> +                <string>contains</string> +            <key>contamporaries</key> +                <string>contemporaries</string> +            <key>contamporary</key> +                <string>contemporary</string> +            <key>contempoary</key> +                <string>contemporary</string> +            <key>contemporaneus</key> +                <string>contemporaneous</string> +            <key>contempory</key> +                <string>contemporary</string> +            <key>contendor</key> +                <string>contender</string> +            <key>contibute</key> +                <string>contribute </string> +            <key>contibuted</key> +                <string>contributed </string> +            <key>contibutes</key> +                <string>contributes </string> +            <key>contigent</key> +                <string>contingent</string> +            <key>contined</key> +                <string>continued</string> +            <key>continous</key> +                <string>continuous</string> +            <key>continously</key> +                <string>continuously</string> +            <key>continueing</key> +                <string>continuing</string> +            <key>contravercial</key> +                <string>controversial</string> +            <key>contraversy</key> +                <string>controversy</string> +            <key>contributer</key> +                <string>contributor</string> +            <key>contributers</key> +                <string>contributors</string> +            <key>contritutions</key> +                <string>contributions</string> +            <key>controled</key> +                <string>controlled</string> +            <key>controling</key> +                <string>controlling</string> +            <key>controll</key> +                <string>control</string> +            <key>controlls</key> +                <string>controls</string> +            <key>controvercial</key> +                <string>controversial</string> +            <key>controvercy</key> +                <string>controversy</string> +            <key>controveries</key> +                <string>controversies</string> +            <key>controversal</key> +                <string>controversial</string> +            <key>controversey</key> +                <string>controversy</string> +            <key>controvertial</key> +                <string>controversial</string> +            <key>controvery</key> +                <string>controversy</string> +            <key>contruction</key> +                <string>construction</string> +            <key>conveinent</key> +                <string>convenient</string> +            <key>convenant</key> +                <string>covenant</string> +            <key>convential</key> +                <string>conventional</string> +            <key>convertables</key> +                <string>convertibles</string> +            <key>convertion</key> +                <string>conversion</string> +            <key>conveyer</key> +                <string>conveyor</string> +            <key>conviced</key> +                <string>convinced</string> +            <key>convienient</key> +                <string>convenient</string> +            <key>coordiantion</key> +                <string>coordination</string> +            <key>coorperations</key> +                <string>corporations</string> +            <key>copmetitors</key> +                <string>competitors</string> +            <key>coputer</key> +                <string>computer</string> +            <key>copywrite</key> +                <string>copyright</string> +            <key>coridal</key> +                <string>cordial</string> +            <key>cornmitted</key> +                <string>committed</string> +            <key>corosion</key> +                <string>corrosion</string> +            <key>corparate</key> +                <string>corporate</string> +            <key>corperations</key> +                <string>corporations</string> +            <key>correcters</key> +                <string>correctors</string> +            <key>correponding</key> +                <string>corresponding</string> +            <key>correposding</key> +                <string>corresponding</string> +            <key>correspondant</key> +                <string>correspondent</string> +            <key>correspondants</key> +                <string>correspondents</string> +            <key>corridoors</key> +                <string>corridors</string> +            <key>corrispond</key> +                <string>correspond</string> +            <key>corrispondant</key> +                <string>correspondent</string> +            <key>corrispondants</key> +                <string>correspondents</string> +            <key>corrisponded</key> +                <string>corresponded</string> +            <key>corrisponding</key> +                <string>corresponding</string> +            <key>corrisponds</key> +                <string>corresponds</string> +            <key>costitution</key> +                <string>constitution</string> +            <key>coucil</key> +                <string>council</string> +            <key>counries</key> +                <string>countries</string> +            <key>countains</key> +                <string>contains</string> +            <key>countires</key> +                <string>countries</string> +            <key>coururier</key> +                <string>courier</string> +            <key>coverted</key> +                <string>converted</string> +            <key>cpoy</key> +                <string>copy</string> +            <key>creaeted</key> +                <string>created</string> +            <key>creedence</key> +                <string>credence</string> +            <key>critereon</key> +                <string>criterion</string> +            <key>criterias</key> +                <string>criteria</string> +            <key>criticists</key> +                <string>critics</string> +            <key>critising</key> +                <string>criticising</string> +            <key>critisising</key> +                <string>criticising</string> +            <key>critisism</key> +                <string>criticism</string> +            <key>critisisms</key> +                <string>criticisms</string> +            <key>critisize</key> +                <string>criticise</string> +            <key>critisized</key> +                <string>criticised</string> +            <key>critisizes</key> +                <string>criticises</string> +            <key>critisizing</key> +                <string>criticising</string> +            <key>critized</key> +                <string>criticized</string> +            <key>critizing</key> +                <string>criticizing</string> +            <key>crockodiles</key> +                <string>crocodiles</string> +            <key>crowm</key> +                <string>crown</string> +            <key>crtical</key> +                <string>critical</string> +            <key>crticised</key> +                <string>criticised</string> +            <key>crucifiction</key> +                <string>crucifixion</string> +            <key>crusies</key> +                <string>cruises</string> +            <key>crystalisation</key> +                <string>crystallisation</string> +            <key>culiminating</key> +                <string>culminating</string> +            <key>cumulatative</key> +                <string>cumulative</string> +            <key>curch</key> +                <string>church</string> +            <key>curcuit</key> +                <string>circuit</string> +            <key>currenly</key> +                <string>currently</string> +            <key>curriculem</key> +                <string>curriculum</string> +            <key>cxan</key> +                <string>cyan</string> +            <key>cyclinder</key> +                <string>cylinder</string> +            <key>dacquiri</key> +                <string>daiquiri</string> +            <key>dael</key> +                <string>deal</string> +            <key>dalmation</key> +                <string>dalmatian</string> +            <key>damenor</key> +                <string>demeanor</string> +            <key>dammage</key> +                <string>damage</string> +            <key>daugher</key> +                <string>daughter</string> +            <key>debateable</key> +                <string>debatable</string> +            <key>decendant</key> +                <string>descendant</string> +            <key>decendants</key> +                <string>descendants</string> +            <key>decendent</key> +                <string>descendant</string> +            <key>decendents</key> +                <string>descendants</string> +            <key>decideable</key> +                <string>decidable</string> +            <key>decidely</key> +                <string>decidedly</string> +            <key>decieved</key> +                <string>deceived</string> +            <key>decison</key> +                <string>decision</string> +            <key>decomissioned</key> +                <string>decommissioned</string> +            <key>decomposit</key> +                <string>decompose</string> +            <key>decomposited</key> +                <string>decomposed</string> +            <key>decompositing</key> +                <string>decomposing</string> +            <key>decomposits</key> +                <string>decomposes</string> +            <key>decress</key> +                <string>decrees</string> +            <key>decribe</key> +                <string>describe</string> +            <key>decribed</key> +                <string>described</string> +            <key>decribes</key> +                <string>describes</string> +            <key>decribing</key> +                <string>describing</string> +            <key>dectect</key> +                <string>detect</string> +            <key>defendent</key> +                <string>defendant</string> +            <key>defendents</key> +                <string>defendants</string> +            <key>deffensively</key> +                <string>defensively</string> +            <key>deffine</key> +                <string>define</string> +            <key>deffined</key> +                <string>defined</string> +            <key>definance</key> +                <string>defiance</string> +            <key>definate</key> +                <string>definite</string> +            <key>definately</key> +                <string>definitely</string> +            <key>definatly</key> +                <string>definitely</string> +            <key>definetly</key> +                <string>definitely</string> +            <key>definining</key> +                <string>defining</string> +            <key>definit</key> +                <string>definite</string> +            <key>definitly</key> +                <string>definitely</string> +            <key>definiton</key> +                <string>definition</string> +            <key>defintion</key> +                <string>definition</string> +            <key>degrate</key> +                <string>degrade</string> +            <key>delagates</key> +                <string>delegates</string> +            <key>delapidated</key> +                <string>dilapidated</string> +            <key>delerious</key> +                <string>delirious</string> +            <key>delevopment</key> +                <string>development</string> +            <key>deliberatly</key> +                <string>deliberately</string> +            <key>delusionally</key> +                <string>delusively</string> +            <key>demenor</key> +                <string>demeanor</string> +            <key>demographical</key> +                <string>demographic</string> +            <key>demolision</key> +                <string>demolition</string> +            <key>demorcracy</key> +                <string>democracy</string> +            <key>demostration</key> +                <string>demonstration</string> +            <key>denegrating</key> +                <string>denigrating</string> +            <key>densly</key> +                <string>densely</string> +            <key>deparment</key> +                <string>department</string> +            <key>deparmental</key> +                <string>departmental</string> +            <key>deparments</key> +                <string>departments</string> +            <key>dependance</key> +                <string>dependence</string> +            <key>dependancy</key> +                <string>dependency</string> +            <key>dependant</key> +                <string>dependent</string> +            <key>deram</key> +                <string>dream</string> +            <key>deriviated</key> +                <string>derived</string> +            <key>derivitive</key> +                <string>derivative</string> +            <key>derogitory</key> +                <string>derogatory</string> +            <key>descendands</key> +                <string>descendants</string> +            <key>descibed</key> +                <string>described</string> +            <key>descision</key> +                <string>decision</string> +            <key>descisions</key> +                <string>decisions</string> +            <key>descriibes</key> +                <string>describes</string> +            <key>descripters</key> +                <string>descriptors</string> +            <key>descripton</key> +                <string>description</string> +            <key>desctruction</key> +                <string>destruction</string> +            <key>descuss</key> +                <string>discuss</string> +            <key>desgined</key> +                <string>designed</string> +            <key>deside</key> +                <string>decide</string> +            <key>desigining</key> +                <string>designing</string> +            <key>desinations</key> +                <string>destinations</string> +            <key>desintegrated</key> +                <string>disintegrated</string> +            <key>desintegration</key> +                <string>disintegration</string> +            <key>desireable</key> +                <string>desirable</string> +            <key>desitned</key> +                <string>destined</string> +            <key>desktiop</key> +                <string>desktop</string> +            <key>desorder</key> +                <string>disorder</string> +            <key>desoriented</key> +                <string>disoriented</string> +            <key>desparate</key> +                <string>desperate</string> +            <key>despict</key> +                <string>depict</string> +            <key>despiration</key> +                <string>desperation</string> +            <key>dessicated</key> +                <string>desiccated</string> +            <key>dessigned</key> +                <string>designed</string> +            <key>destablized</key> +                <string>destabilized</string> +            <key>destory</key> +                <string>destroy</string> +            <key>detailled</key> +                <string>detailed</string> +            <key>detatched</key> +                <string>detached</string> +            <key>deteoriated</key> +                <string>deteriorated</string> +            <key>deteriate</key> +                <string>deteriorate</string> +            <key>deterioriating</key> +                <string>deteriorating</string> +            <key>determinining</key> +                <string>determining</string> +            <key>detremental</key> +                <string>detrimental</string> +            <key>devasted</key> +                <string>devastated</string> +            <key>develope</key> +                <string>develop</string> +            <key>developement</key> +                <string>development</string> +            <key>developped</key> +                <string>developed</string> +            <key>develpment</key> +                <string>development</string> +            <key>devels</key> +                <string>delves</string> +            <key>devestated</key> +                <string>devastated</string> +            <key>devestating</key> +                <string>devastating</string> +            <key>devide</key> +                <string>divide</string> +            <key>devided</key> +                <string>divided</string> +            <key>devistating</key> +                <string>devastating</string> +            <key>devolopement</key> +                <string>development</string> +            <key>diablical</key> +                <string>diabolical</string> +            <key>diamons</key> +                <string>diamonds</string> +            <key>diaster</key> +                <string>disaster</string> +            <key>dichtomy</key> +                <string>dichotomy</string> +            <key>diconnects</key> +                <string>disconnects</string> +            <key>dicover</key> +                <string>discover</string> +            <key>dicovered</key> +                <string>discovered</string> +            <key>dicovering</key> +                <string>discovering</string> +            <key>dicovers</key> +                <string>discovers</string> +            <key>dicovery</key> +                <string>discovery</string> +            <key>dicussed</key> +                <string>discussed</string> +            <key>didnt</key> +                <string>didn't</string> +            <key>diea</key> +                <string>idea</string> +            <key>dieing</key> +                <string>dying</string> +            <key>dieties</key> +                <string>deities</string> +            <key>diety</key> +                <string>deity</string> +            <key>diferent</key> +                <string>different</string> +            <key>diferrent</key> +                <string>different</string> +            <key>differentiatiations</key> +                <string>differentiations</string> +            <key>differnt</key> +                <string>different</string> +            <key>difficulity</key> +                <string>difficulty</string> +            <key>diffrent</key> +                <string>different</string> +            <key>dificulties</key> +                <string>difficulties</string> +            <key>dificulty</key> +                <string>difficulty</string> +            <key>dimenions</key> +                <string>dimensions</string> +            <key>dimention</key> +                <string>dimension</string> +            <key>dimentional</key> +                <string>dimensional</string> +            <key>dimentions</key> +                <string>dimensions</string> +            <key>dimesnional</key> +                <string>dimensional</string> +            <key>diminuitive</key> +                <string>diminutive</string> +            <key>dimunitive</key> +                <string>diminutive</string> +            <key>diosese</key> +                <string>diocese</string> +            <key>diphtong</key> +                <string>diphthong</string> +            <key>diphtongs</key> +                <string>diphthongs</string> +            <key>diplomancy</key> +                <string>diplomacy</string> +            <key>dipthong</key> +                <string>diphthong</string> +            <key>dipthongs</key> +                <string>diphthongs</string> +            <key>dirived</key> +                <string>derived</string> +            <key>disagreeed</key> +                <string>disagreed</string> +            <key>disapeared</key> +                <string>disappeared</string> +            <key>disapointing</key> +                <string>disappointing</string> +            <key>disappearred</key> +                <string>disappeared</string> +            <key>disaproval</key> +                <string>disapproval</string> +            <key>disasterous</key> +                <string>disastrous</string> +            <key>disatisfaction</key> +                <string>dissatisfaction</string> +            <key>disatisfied</key> +                <string>dissatisfied</string> +            <key>disatrous</key> +                <string>disastrous</string> +            <key>discontentment</key> +                <string>discontent</string> +            <key>discribe</key> +                <string>describe</string> +            <key>discribed</key> +                <string>described</string> +            <key>discribes</key> +                <string>describes</string> +            <key>discribing</key> +                <string>describing</string> +            <key>disctinction</key> +                <string>distinction</string> +            <key>disctinctive</key> +                <string>distinctive</string> +            <key>disemination</key> +                <string>dissemination</string> +            <key>disenchanged</key> +                <string>disenchanted</string> +            <key>disiplined</key> +                <string>disciplined</string> +            <key>disobediance</key> +                <string>disobedience</string> +            <key>disobediant</key> +                <string>disobedient</string> +            <key>disolved</key> +                <string>dissolved</string> +            <key>disover</key> +                <string>discover</string> +            <key>dispair</key> +                <string>despair</string> +            <key>disparingly</key> +                <string>disparagingly</string> +            <key>dispence</key> +                <string>dispense</string> +            <key>dispenced</key> +                <string>dispensed</string> +            <key>dispencing</key> +                <string>dispensing</string> +            <key>dispicable</key> +                <string>despicable</string> +            <key>dispite</key> +                <string>despite</string> +            <key>dispostion</key> +                <string>disposition</string> +            <key>disproportiate</key> +                <string>disproportionate</string> +            <key>disputandem</key> +                <string>disputandum</string> +            <key>disricts</key> +                <string>districts</string> +            <key>dissagreement</key> +                <string>disagreement</string> +            <key>dissapear</key> +                <string>disappear</string> +            <key>dissapearance</key> +                <string>disappearance</string> +            <key>dissapeared</key> +                <string>disappeared</string> +            <key>dissapearing</key> +                <string>disappearing</string> +            <key>dissapears</key> +                <string>disappears</string> +            <key>dissappear</key> +                <string>disappear</string> +            <key>dissappears</key> +                <string>disappears</string> +            <key>dissappointed</key> +                <string>disappointed</string> +            <key>dissarray</key> +                <string>disarray</string> +            <key>dissobediance</key> +                <string>disobedience</string> +            <key>dissobediant</key> +                <string>disobedient</string> +            <key>dissobedience</key> +                <string>disobedience</string> +            <key>dissobedient</key> +                <string>disobedient</string> +            <key>distiction</key> +                <string>distinction</string> +            <key>distingish</key> +                <string>distinguish</string> +            <key>distingished</key> +                <string>distinguished</string> +            <key>distingishes</key> +                <string>distinguishes</string> +            <key>distingishing</key> +                <string>distinguishing</string> +            <key>distingquished</key> +                <string>distinguished</string> +            <key>distrubution</key> +                <string>distribution</string> +            <key>distruction</key> +                <string>destruction</string> +            <key>distructive</key> +                <string>destructive</string> +            <key>ditributed</key> +                <string>distributed</string> +            <key>diversed</key> +                <string>diverged</string> +            <key>divice</key> +                <string>device</string> +            <key>divison</key> +                <string>division</string> +            <key>divisons</key> +                <string>divisions</string> +            <key>doccument</key> +                <string>document</string> +            <key>doccumented</key> +                <string>documented</string> +            <key>doccuments</key> +                <string>documents</string> +            <key>docrines</key> +                <string>doctrines</string> +            <key>doctines</key> +                <string>doctrines</string> +            <key>documenatry</key> +                <string>documentary</string> +            <key>doens</key> +                <string>does</string> +            <key>doesnt</key> +                <string>doesn't</string> +            <key>doign</key> +                <string>doing</string> +            <key>dominaton</key> +                <string>domination</string> +            <key>dominent</key> +                <string>dominant</string> +            <key>dominiant</key> +                <string>dominant</string> +            <key>donig</key> +                <string>doing</string> +            <key>dont</key> +                <string>don't</string> +            <key>dosen't</key> +                <string>doesn't</string> +            <key>doub</key> +                <string>doubt</string> +            <key>doulbe</key> +                <string>double</string> +            <key>dowloads</key> +                <string>downloads</string> +            <key>dramtic</key> +                <string>dramatic</string> +            <key>draughtman</key> +                <string>draughtsman</string> +            <key>dreasm</key> +                <string>dreams</string> +            <key>driectly</key> +                <string>directly</string> +            <key>drnik</key> +                <string>drink</string> +            <key>druming</key> +                <string>drumming</string> +            <key>drummless</key> +                <string>drumless</string> +            <key>dupicate</key> +                <string>duplicate</string> +            <key>durig</key> +                <string>during</string> +            <key>durring</key> +                <string>during</string> +            <key>duting</key> +                <string>during</string> +            <key>dyas</key> +                <string>dryas</string> +            <key>eahc</key> +                <string>each</string> +            <key>ealier</key> +                <string>earlier</string> +            <key>earlies</key> +                <string>earliest</string> +            <key>earnt</key> +                <string>earned</string> +            <key>ecclectic</key> +                <string>eclectic</string> +            <key>eceonomy</key> +                <string>economy</string> +            <key>ecidious</key> +                <string>deciduous</string> +            <key>eclispe</key> +                <string>eclipse</string> +            <key>ecomonic</key> +                <string>economic</string> +            <key>ect</key> +                <string>etc</string> +            <key>eearly</key> +                <string>early</string> +            <key>efel</key> +                <string>evil</string> +            <key>effeciency</key> +                <string>efficiency</string> +            <key>effecient</key> +                <string>efficient</string> +            <key>effeciently</key> +                <string>efficiently</string> +            <key>efficency</key> +                <string>efficiency</string> +            <key>efficent</key> +                <string>efficient</string> +            <key>efficently</key> +                <string>efficiently</string> +            <key>efford</key> +                <string>effort</string> +            <key>effords</key> +                <string>efforts</string> +            <key>effulence</key> +                <string>effluence</string> +            <key>eigth</key> +                <string>eight</string> +            <key>eiter</key> +                <string>either</string> +            <key>elction</key> +                <string>election</string> +            <key>electic</key> +                <string>electric</string> +            <key>electon</key> +                <string>electron</string> +            <key>electrial</key> +                <string>electrical</string> +            <key>electricly</key> +                <string>electrically</string> +            <key>electricty</key> +                <string>electricity</string> +            <key>elementay</key> +                <string>elementary</string> +            <key>eleminated</key> +                <string>eliminated</string> +            <key>eleminating</key> +                <string>eliminating</string> +            <key>eles</key> +                <string>eels</string> +            <key>eletricity</key> +                <string>electricity</string> +            <key>elicided</key> +                <string>elicited</string> +            <key>eligable</key> +                <string>eligible</string> +            <key>elimentary</key> +                <string>elementary</string> +            <key>ellected</key> +                <string>elected</string> +            <key>elphant</key> +                <string>elephant</string> +            <key>embarass</key> +                <string>embarrass</string> +            <key>embarassed</key> +                <string>embarrassed</string> +            <key>embarassing</key> +                <string>embarrassing</string> +            <key>embarassment</key> +                <string>embarrassment</string> +            <key>embargos</key> +                <string>embargoes</string> +            <key>embarras</key> +                <string>embarrass</string> +            <key>embarrased</key> +                <string>embarrassed</string> +            <key>embarrasing</key> +                <string>embarrassing</string> +            <key>embarrasment</key> +                <string>embarrassment</string> +            <key>embezelled</key> +                <string>embezzled</string> +            <key>emblamatic</key> +                <string>emblematic</string> +            <key>eminate</key> +                <string>emanate</string> +            <key>eminated</key> +                <string>emanated</string> +            <key>emision</key> +                <string>emission</string> +            <key>emited</key> +                <string>emitted</string> +            <key>emiting</key> +                <string>emitting</string> +            <key>emition</key> +                <string>emission</string> +            <key>emmediately</key> +                <string>immediately</string> +            <key>emmigrated</key> +                <string>immigrated</string> +            <key>emminently</key> +                <string>eminently</string> +            <key>emmisaries</key> +                <string>emissaries</string> +            <key>emmisarries</key> +                <string>emissaries</string> +            <key>emmisarry</key> +                <string>emissary</string> +            <key>emmisary</key> +                <string>emissary</string> +            <key>emmision</key> +                <string>emission</string> +            <key>emmisions</key> +                <string>emissions</string> +            <key>emmited</key> +                <string>emitted</string> +            <key>emmiting</key> +                <string>emitting</string> +            <key>emmitted</key> +                <string>emitted</string> +            <key>emmitting</key> +                <string>emitting</string> +            <key>emnity</key> +                <string>enmity</string> +            <key>emperical</key> +                <string>empirical</string> +            <key>emphaised</key> +                <string>emphasised</string> +            <key>emphsis</key> +                <string>emphasis</string> +            <key>emphysyma</key> +                <string>emphysema</string> +            <key>emprisoned</key> +                <string>imprisoned</string> +            <key>enameld</key> +                <string>enameled</string> +            <key>enchancement</key> +                <string>enhancement</string> +            <key>encouraing</key> +                <string>encouraging</string> +            <key>encryptiion</key> +                <string>encryption</string> +            <key>encylopedia</key> +                <string>encyclopedia</string> +            <key>endevors</key> +                <string>endeavors</string> +            <key>endevour</key> +                <string>endeavour</string> +            <key>endig</key> +                <string>ending</string> +            <key>endolithes</key> +                <string>endoliths</string> +            <key>enduce</key> +                <string>induce</string> +            <key>ened</key> +                <string>need</string> +            <key>enflamed</key> +                <string>inflamed</string> +            <key>enforceing</key> +                <string>enforcing</string> +            <key>engagment</key> +                <string>engagement</string> +            <key>engeneer</key> +                <string>engineer</string> +            <key>engeneering</key> +                <string>engineering</string> +            <key>engieneer</key> +                <string>engineer</string> +            <key>engieneers</key> +                <string>engineers</string> +            <key>enlargment</key> +                <string>enlargement</string> +            <key>enlargments</key> +                <string>enlargements</string> +            <key>enourmous</key> +                <string>enormous</string> +            <key>enourmously</key> +                <string>enormously</string> +            <key>ensconsed</key> +                <string>ensconced</string> +            <key>entaglements</key> +                <string>entanglements</string> +            <key>enteratinment</key> +                <string>entertainment</string> +            <key>enthusiatic</key> +                <string>enthusiastic</string> +            <key>entitity</key> +                <string>entity</string> +            <key>entitlied</key> +                <string>entitled</string> +            <key>entrepeneur</key> +                <string>entrepreneur</string> +            <key>entrepeneurs</key> +                <string>entrepreneurs</string> +            <key>enviorment</key> +                <string>environment</string> +            <key>enviormental</key> +                <string>environmental</string> +            <key>enviormentally</key> +                <string>environmentally</string> +            <key>enviorments</key> +                <string>environments</string> +            <key>enviornment</key> +                <string>environment</string> +            <key>enviornmental</key> +                <string>environmental</string> +            <key>enviornmentalist</key> +                <string>environmentalist</string> +            <key>enviornmentally</key> +                <string>environmentally</string> +            <key>enviornments</key> +                <string>environments</string> +            <key>enviroment</key> +                <string>environment</string> +            <key>enviromental</key> +                <string>environmental</string> +            <key>enviromentalist</key> +                <string>environmentalist</string> +            <key>enviromentally</key> +                <string>environmentally</string> +            <key>enviroments</key> +                <string>environments</string> +            <key>envolutionary</key> +                <string>evolutionary</string> +            <key>envrionments</key> +                <string>environments</string> +            <key>enxt</key> +                <string>next</string> +            <key>epidsodes</key> +                <string>episodes</string> +            <key>epsiode</key> +                <string>episode</string> +            <key>equialent</key> +                <string>equivalent</string> +            <key>equilibium</key> +                <string>equilibrium</string> +            <key>equilibrum</key> +                <string>equilibrium</string> +            <key>equiped</key> +                <string>equipped</string> +            <key>equippment</key> +                <string>equipment</string> +            <key>equitorial</key> +                <string>equatorial</string> +            <key>equivelant</key> +                <string>equivalent</string> +            <key>equivelent</key> +                <string>equivalent</string> +            <key>equivilant</key> +                <string>equivalent</string> +            <key>equivilent</key> +                <string>equivalent</string> +            <key>equivlalent</key> +                <string>equivalent</string> +            <key>erally</key> +                <string>really</string> +            <key>eratic</key> +                <string>erratic</string> +            <key>eratically</key> +                <string>erratically</string> +            <key>eraticly</key> +                <string>erratically</string> +            <key>errupted</key> +                <string>erupted</string> +            <key>esential</key> +                <string>essential</string> +            <key>esitmated</key> +                <string>estimated</string> +            <key>esle</key> +                <string>else</string> +            <key>especialy</key> +                <string>especially</string> +            <key>essencial</key> +                <string>essential</string> +            <key>essense</key> +                <string>essence</string> +            <key>essentail</key> +                <string>essential</string> +            <key>essentialy</key> +                <string>essentially</string> +            <key>essentual</key> +                <string>essential</string> +            <key>essesital</key> +                <string>essential</string> +            <key>estabishes</key> +                <string>establishes</string> +            <key>establising</key> +                <string>establishing</string> +            <key>ethnocentricm</key> +                <string>ethnocentrism</string> +            <key>ethose</key> +                <string>those</string> +            <key>evenhtually</key> +                <string>eventually</string> +            <key>eventally</key> +                <string>eventually</string> +            <key>eventhough</key> +                <string>even though</string> +            <key>eventially</key> +                <string>eventually</string> +            <key>eventualy</key> +                <string>eventually</string> +            <key>everthing</key> +                <string>everything</string> +            <key>everytime</key> +                <string>every time</string> +            <key>everyting</key> +                <string>everything</string> +            <key>eveyr</key> +                <string>every</string> +            <key>evidentally</key> +                <string>evidently</string> +            <key>exagerate</key> +                <string>exaggerate</string> +            <key>exagerated</key> +                <string>exaggerated</string> +            <key>exagerates</key> +                <string>exaggerates</string> +            <key>exagerating</key> +                <string>exaggerating</string> +            <key>exagerrate</key> +                <string>exaggerate</string> +            <key>exagerrated</key> +                <string>exaggerated</string> +            <key>exagerrates</key> +                <string>exaggerates</string> +            <key>exagerrating</key> +                <string>exaggerating</string> +            <key>examinated</key> +                <string>examined</string> +            <key>exampt</key> +                <string>exempt</string> +            <key>exapansion</key> +                <string>expansion</string> +            <key>excact</key> +                <string>exact</string> +            <key>excange</key> +                <string>exchange</string> +            <key>excecute</key> +                <string>execute</string> +            <key>excecuted</key> +                <string>executed</string> +            <key>excecutes</key> +                <string>executes</string> +            <key>excecuting</key> +                <string>executing</string> +            <key>excecution</key> +                <string>execution</string> +            <key>excedded</key> +                <string>exceeded</string> +            <key>excelent</key> +                <string>excellent</string> +            <key>excell</key> +                <string>excel</string> +            <key>excellance</key> +                <string>excellence</string> +            <key>excellant</key> +                <string>excellent</string> +            <key>excells</key> +                <string>excels</string> +            <key>excercise</key> +                <string>exercise</string> +            <key>exchanching</key> +                <string>exchanging</string> +            <key>excisted</key> +                <string>existed</string> +            <key>exculsivly</key> +                <string>exclusively</string> +            <key>execising</key> +                <string>exercising</string> +            <key>exection</key> +                <string>execution</string> +            <key>exectued</key> +                <string>executed</string> +            <key>exeedingly</key> +                <string>exceedingly</string> +            <key>exelent</key> +                <string>excellent</string> +            <key>exellent</key> +                <string>excellent</string> +            <key>exemple</key> +                <string>example</string> +            <key>exept</key> +                <string>except</string> +            <key>exeptional</key> +                <string>exceptional</string> +            <key>exerbate</key> +                <string>exacerbate</string> +            <key>exerbated</key> +                <string>exacerbated</string> +            <key>exerciese</key> +                <string>exercises</string> +            <key>exerpt</key> +                <string>excerpt</string> +            <key>exerpts</key> +                <string>excerpts</string> +            <key>exersize</key> +                <string>exercise</string> +            <key>exerternal</key> +                <string>external</string> +            <key>exhalted</key> +                <string>exalted</string> +            <key>exhibtion</key> +                <string>exhibition</string> +            <key>exibition</key> +                <string>exhibition</string> +            <key>exibitions</key> +                <string>exhibitions</string> +            <key>exicting</key> +                <string>exciting</string> +            <key>exinct</key> +                <string>extinct</string> +            <key>existance</key> +                <string>existence</string> +            <key>existant</key> +                <string>existent</string> +            <key>existince</key> +                <string>existence</string> +            <key>exliled</key> +                <string>exiled</string> +            <key>exludes</key> +                <string>excludes</string> +            <key>exmaple</key> +                <string>example</string> +            <key>exonorate</key> +                <string>exonerate</string> +            <key>exoskelaton</key> +                <string>exoskeleton</string> +            <key>expalin</key> +                <string>explain</string> +            <key>expatriot</key> +                <string>expatriate</string> +            <key>expeced</key> +                <string>expected</string> +            <key>expecially</key> +                <string>especially</string> +            <key>expeditonary</key> +                <string>expeditionary</string> +            <key>expeiments</key> +                <string>experiments</string> +            <key>expell</key> +                <string>expel</string> +            <key>expells</key> +                <string>expels</string> +            <key>experiance</key> +                <string>experience</string> +            <key>experianced</key> +                <string>experienced</string> +            <key>expiditions</key> +                <string>expeditions</string> +            <key>expierence</key> +                <string>experience</string> +            <key>explaination</key> +                <string>explanation</string> +            <key>explaning</key> +                <string>explaining</string> +            <key>explictly</key> +                <string>explicitly</string> +            <key>exploititive</key> +                <string>exploitative</string> +            <key>explotation</key> +                <string>exploitation</string> +            <key>expropiated</key> +                <string>expropriated</string> +            <key>expropiation</key> +                <string>expropriation</string> +            <key>exressed</key> +                <string>expressed</string> +            <key>extemely</key> +                <string>extremely</string> +            <key>extention</key> +                <string>extension</string> +            <key>extentions</key> +                <string>extensions</string> +            <key>extered</key> +                <string>exerted</string> +            <key>extermist</key> +                <string>extremist</string> +            <key>extint</key> +                <string>extinct</string> +            <key>extradiction</key> +                <string>extradition</string> +            <key>extraterrestial</key> +                <string>extraterrestrial</string> +            <key>extraterrestials</key> +                <string>extraterrestrials</string> +            <key>extravagent</key> +                <string>extravagant</string> +            <key>extrememly</key> +                <string>extremely</string> +            <key>extremeophile</key> +                <string>extremophile</string> +            <key>extremly</key> +                <string>extremely</string> +            <key>extrordinarily</key> +                <string>extraordinarily</string> +            <key>extrordinary</key> +                <string>extraordinary</string> +            <key>eyar</key> +                <string>year</string> +            <key>eyars</key> +                <string>years</string> +            <key>eyasr</key> +                <string>years</string> +            <key>faciliate</key> +                <string>facilitate</string> +            <key>faciliated</key> +                <string>facilitated</string> +            <key>faciliates</key> +                <string>facilitates</string> +            <key>facilites</key> +                <string>facilities</string> +            <key>facillitate</key> +                <string>facilitate</string> +            <key>facinated</key> +                <string>fascinated</string> +            <key>facist</key> +                <string>fascist</string> +            <key>familes</key> +                <string>families</string> +            <key>familliar</key> +                <string>familiar</string> +            <key>famoust</key> +                <string>famous</string> +            <key>fanatism</key> +                <string>fanaticism</string> +            <key>fatc</key> +                <string>fact</string> +            <key>faught</key> +                <string>fought</string> +            <key>favoutrable</key> +                <string>favourable</string> +            <key>feasable</key> +                <string>feasible</string> +            <key>fedreally</key> +                <string>federally</string> +            <key>feromone</key> +                <string>pheromone</string> +            <key>fertily</key> +                <string>fertility</string> +            <key>fianite</key> +                <string>finite</string> +            <key>fianlly</key> +                <string>finally</string> +            <key>ficticious</key> +                <string>fictitious</string> +            <key>fictious</key> +                <string>fictitious</string> +            <key>fidn</key> +                <string>find</string> +            <key>fiercly</key> +                <string>fiercely</string> +            <key>fightings</key> +                <string>fighting</string> +            <key>filiament</key> +                <string>filament</string> +            <key>fimilies</key> +                <string>families</string> +            <key>finacial</key> +                <string>financial</string> +            <key>finaly</key> +                <string>finally</string> +            <key>financialy</key> +                <string>financially</string> +            <key>firends</key> +                <string>friends</string> +            <key>firts</key> +                <string>first</string> +            <key>fisionable</key> +                <string>fissionable</string> +            <key>flamable</key> +                <string>flammable</string> +            <key>flawess</key> +                <string>flawless</string> +            <key>fleed</key> +                <string>fled</string> +            <key>florescent</key> +                <string>fluorescent</string> +            <key>flourescent</key> +                <string>fluorescent</string> +            <key>flourine</key> +                <string>fluorine</string> +            <key>fluorish</key> +                <string>flourish</string> +            <key>follwoing</key> +                <string>following</string> +            <key>folowing</key> +                <string>following</string> +            <key>fomed</key> +                <string>formed</string> +            <key>fomr</key> +                <string>from</string> +            <key>fonetic</key> +                <string>phonetic</string> +            <key>fontrier</key> +                <string>fontier</string> +            <key>foootball</key> +                <string>football</string> +            <key>forbad</key> +                <string>forbade</string> +            <key>forbiden</key> +                <string>forbidden</string> +            <key>foreward</key> +                <string>foreword</string> +            <key>forfiet</key> +                <string>forfeit</string> +            <key>forhead</key> +                <string>forehead</string> +            <key>foriegn</key> +                <string>foreign</string> +            <key>formallize</key> +                <string>formalize</string> +            <key>formallized</key> +                <string>formalized</string> +            <key>formaly</key> +                <string>formally</string> +            <key>formelly</key> +                <string>formerly</string> +            <key>formidible</key> +                <string>formidable</string> +            <key>formost</key> +                <string>foremost</string> +            <key>forsaw</key> +                <string>foresaw</string> +            <key>forseeable</key> +                <string>foreseeable</string> +            <key>fortelling</key> +                <string>foretelling</string> +            <key>forunner</key> +                <string>forerunner</string> +            <key>foucs</key> +                <string>focus</string> +            <key>foudn</key> +                <string>found</string> +            <key>fougth</key> +                <string>fought</string> +            <key>foundaries</key> +                <string>foundries</string> +            <key>foundary</key> +                <string>foundry</string> +            <key>fourties</key> +                <string>forties</string> +            <key>fourty</key> +                <string>forty</string> +            <key>fouth</key> +                <string>fourth</string> +            <key>foward</key> +                <string>forward</string> +            <key>freind</key> +                <string>friend</string> +            <key>freindly</key> +                <string>friendly</string> +            <key>frequentily</key> +                <string>frequently</string> +            <key>frome</key> +                <string>from</string> +            <key>fromed</key> +                <string>formed</string> +            <key>froniter</key> +                <string>frontier</string> +            <key>fucntion</key> +                <string>function</string> +            <key>fucntioning</key> +                <string>functioning</string> +            <key>fufill</key> +                <string>fulfill</string> +            <key>fufilled</key> +                <string>fulfilled</string> +            <key>fulfiled</key> +                <string>fulfilled</string> +            <key>fullfill</key> +                <string>fulfill</string> +            <key>fullfilled</key> +                <string>fulfilled</string> +            <key>fundametal</key> +                <string>fundamental</string> +            <key>fundametals</key> +                <string>fundamentals</string> +            <key>funguses</key> +                <string>fungi</string> +            <key>funtion</key> +                <string>function</string> +            <key>furuther</key> +                <string>further</string> +            <key>futher</key> +                <string>further</string> +            <key>futhermore</key> +                <string>furthermore</string> +            <key>galatic</key> +                <string>galactic</string> +            <key>gallaxies</key> +                <string>galaxies</string> +            <key>galvinized</key> +                <string>galvanized</string> +            <key>ganerate</key> +                <string>generate</string> +            <key>ganes</key> +                <string>games</string> +            <key>ganster</key> +                <string>gangster</string> +            <key>garantee</key> +                <string>guarantee</string> +            <key>garanteed</key> +                <string>guaranteed</string> +            <key>garantees</key> +                <string>guarantees</string> +            <key>garnison</key> +                <string>garrison</string> +            <key>gaurantee</key> +                <string>guarantee</string> +            <key>gauranteed</key> +                <string>guaranteed</string> +            <key>gaurantees</key> +                <string>guarantees</string> +            <key>gaurd</key> +                <string>guard</string> +            <key>gaurentee</key> +                <string>guarantee</string> +            <key>gaurenteed</key> +                <string>guaranteed</string> +            <key>gaurentees</key> +                <string>guarantees</string> +            <key>geneological</key> +                <string>genealogical</string> +            <key>geneologies</key> +                <string>genealogies</string> +            <key>geneology</key> +                <string>genealogy</string> +            <key>generaly</key> +                <string>generally</string> +            <key>generatting</key> +                <string>generating</string> +            <key>genialia</key> +                <string>genitalia</string> +            <key>geographicial</key> +                <string>geographical</string> +            <key>geometrician</key> +                <string>geometer</string> +            <key>geometricians</key> +                <string>geometers</string> +            <key>gerat</key> +                <string>great</string> +            <key>glight</key> +                <string>flight</string> +            <key>gnawwed</key> +                <string>gnawed</string> +            <key>godess</key> +                <string>goddess</string> +            <key>godesses</key> +                <string>goddesses</string> +            <key>gogin</key> +                <string>going</string> +            <key>goign</key> +                <string>going</string> +            <key>gonig</key> +                <string>going</string> +            <key>gouvener</key> +                <string>governor</string> +            <key>govement</key> +                <string>government</string> +            <key>govenment</key> +                <string>government</string> +            <key>govenrment</key> +                <string>government</string> +            <key>goverance</key> +                <string>governance</string> +            <key>goverment</key> +                <string>government</string> +            <key>govermental</key> +                <string>governmental</string> +            <key>governer</key> +                <string>governor</string> +            <key>governmnet</key> +                <string>government</string> +            <key>govorment</key> +                <string>government</string> +            <key>govormental</key> +                <string>governmental</string> +            <key>govornment</key> +                <string>government</string> +            <key>gracefull</key> +                <string>graceful</string> +            <key>graet</key> +                <string>great</string> +            <key>grafitti</key> +                <string>graffiti</string> +            <key>gramatically</key> +                <string>grammatically</string> +            <key>grammaticaly</key> +                <string>grammatically</string> +            <key>grammer</key> +                <string>grammar</string> +            <key>grat</key> +                <string>great</string> +            <key>gratuitious</key> +                <string>gratuitous</string> +            <key>greatful</key> +                <string>grateful</string> +            <key>greatfully</key> +                <string>gratefully</string> +            <key>greif</key> +                <string>grief</string> +            <key>gridles</key> +                <string>griddles</string> +            <key>gropu</key> +                <string>group</string> +            <key>grwo</key> +                <string>grow</string> +            <key>guage</key> +                <string>gauge</string> +            <key>guarentee</key> +                <string>guarantee</string> +            <key>guarenteed</key> +                <string>guaranteed</string> +            <key>guarentees</key> +                <string>guarantees</string> +            <key>guerilla</key> +                <string>guerrilla</string> +            <key>guerillas</key> +                <string>guerrillas</string> +            <key>guerrila</key> +                <string>guerrilla</string> +            <key>guerrilas</key> +                <string>guerrillas</string> +            <key>guidence</key> +                <string>guidance</string> +            <key>gunanine</key> +                <string>guanine</string> +            <key>gurantee</key> +                <string>guarantee</string> +            <key>guranteed</key> +                <string>guaranteed</string> +            <key>gurantees</key> +                <string>guarantees</string> +            <key>guttaral</key> +                <string>guttural</string> +            <key>gutteral</key> +                <string>guttural</string> +            <key>habaeus</key> +                <string>habeas</string> +            <key>habeus</key> +                <string>habeas</string> +            <key>haemorrage</key> +                <string>haemorrhage</string> +            <key>haev</key> +                <string>have</string> +            <key>halp</key> +                <string>help</string> +            <key>hapen</key> +                <string>happen</string> +            <key>hapened</key> +                <string>happened</string> +            <key>hapening</key> +                <string>happening</string> +            <key>happend</key> +                <string>happened</string> +            <key>happended</key> +                <string>happened</string> +            <key>happenned</key> +                <string>happened</string> +            <key>harased</key> +                <string>harassed</string> +            <key>harases</key> +                <string>harasses</string> +            <key>harasment</key> +                <string>harassment</string> +            <key>harasments</key> +                <string>harassments</string> +            <key>harassement</key> +                <string>harassment</string> +            <key>harras</key> +                <string>harass</string> +            <key>harrased</key> +                <string>harassed</string> +            <key>harrases</key> +                <string>harasses</string> +            <key>harrasing</key> +                <string>harassing</string> +            <key>harrasment</key> +                <string>harassment</string> +            <key>harrasments</key> +                <string>harassments</string> +            <key>harrassed</key> +                <string>harassed</string> +            <key>harrasses</key> +                <string>harassed</string> +            <key>harrassing</key> +                <string>harassing</string> +            <key>harrassment</key> +                <string>harassment</string> +            <key>harrassments</key> +                <string>harassments</string> +            <key>hasnt</key> +                <string>hasn't</string> +            <key>haviest</key> +                <string>heaviest</string> +            <key>headquarer</key> +                <string>headquarter</string> +            <key>headquater</key> +                <string>headquarter</string> +            <key>headquatered</key> +                <string>headquartered</string> +            <key>headquaters</key> +                <string>headquarters</string> +            <key>healthercare</key> +                <string>healthcare</string> +            <key>heared</key> +                <string>heard</string> +            <key>heathy</key> +                <string>healthy</string> +            <key>heigher</key> +                <string>higher</string> +            <key>heirarchy</key> +                <string>hierarchy</string> +            <key>heiroglyphics</key> +                <string>hieroglyphics</string> +            <key>helment</key> +                <string>helmet</string> +            <key>helpfull</key> +                <string>helpful</string> +            <key>helpped</key> +                <string>helped</string> +            <key>hemmorhage</key> +                <string>hemorrhage</string> +            <key>herad</key> +                <string>heard</string> +            <key>heridity</key> +                <string>heredity</string> +            <key>heroe</key> +                <string>hero</string> +            <key>heros</key> +                <string>heroes</string> +            <key>hertiage</key> +                <string>heritage</string> +            <key>hertzs</key> +                <string>hertz</string> +            <key>hesistant</key> +                <string>hesitant</string> +            <key>heterogenous</key> +                <string>heterogeneous</string> +            <key>hieght</key> +                <string>height</string> +            <key>hierachical</key> +                <string>hierarchical</string> +            <key>hierachies</key> +                <string>hierarchies</string> +            <key>hierachy</key> +                <string>hierarchy</string> +            <key>hierarcical</key> +                <string>hierarchical</string> +            <key>hierarcy</key> +                <string>hierarchy</string> +            <key>hieroglph</key> +                <string>hieroglyph</string> +            <key>hieroglphs</key> +                <string>hieroglyphs</string> +            <key>higer</key> +                <string>higher</string> +            <key>higest</key> +                <string>highest</string> +            <key>higway</key> +                <string>highway</string> +            <key>hillarious</key> +                <string>hilarious</string> +            <key>himselv</key> +                <string>himself</string> +            <key>hinderance</key> +                <string>hindrance</string> +            <key>hinderence</key> +                <string>hindrance</string> +            <key>hindrence</key> +                <string>hindrance</string> +            <key>hipopotamus</key> +                <string>hippopotamus</string> +            <key>hismelf</key> +                <string>himself</string> +            <key>histocompatability</key> +                <string>histocompatibility</string> +            <key>historicians</key> +                <string>historians</string> +            <key>hitsingles</key> +                <string>hit singles</string> +            <key>holliday</key> +                <string>holiday</string> +            <key>homestate</key> +                <string>home state</string> +            <key>homogeneize</key> +                <string>homogenize</string> +            <key>homogeneized</key> +                <string>homogenized</string> +            <key>honory</key> +                <string>honorary</string> +            <key>horrifing</key> +                <string>horrifying</string> +            <key>hosited</key> +                <string>hoisted</string> +            <key>hospitible</key> +                <string>hospitable</string> +            <key>hounour</key> +                <string>honour</string> +            <key>housr</key> +                <string>hours</string> +            <key>howver</key> +                <string>however</string> +            <key>hsitorians</key> +                <string>historians</string> +            <key>hstory</key> +                <string>history</string> +            <key>hten</key> +                <string>then</string> +            <key>htere</key> +                <string>there</string> +            <key>htey</key> +                <string>they</string> +            <key>htikn</key> +                <string>think</string> +            <key>hting</key> +                <string>thing</string> +            <key>htink</key> +                <string>think</string> +            <key>htis</key> +                <string>this</string> +            <key>humer</key> +                <string>humor</string> +            <key>humerous</key> +                <string>humorous</string> +            <key>huminoid</key> +                <string>humanoid</string> +            <key>humoural</key> +                <string>humoral</string> +            <key>humurous</key> +                <string>humorous</string> +            <key>husban</key> +                <string>husband</string> +            <key>hvae</key> +                <string>have</string> +            <key>hvaing</key> +                <string>having</string> +            <key>hvea</key> +                <string>have</string> +            <key>hwihc</key> +                <string>which</string> +            <key>hwile</key> +                <string>while</string> +            <key>hwole</key> +                <string>whole</string> +            <key>hydogen</key> +                <string>hydrogen</string> +            <key>hydropile</key> +                <string>hydrophile</string> +            <key>hydropilic</key> +                <string>hydrophilic</string> +            <key>hydropobe</key> +                <string>hydrophobe</string> +            <key>hydropobic</key> +                <string>hydrophobic</string> +            <key>hygeine</key> +                <string>hygiene</string> +            <key>hypocracy</key> +                <string>hypocrisy</string> +            <key>hypocrasy</key> +                <string>hypocrisy</string> +            <key>hypocricy</key> +                <string>hypocrisy</string> +            <key>hypocrit</key> +                <string>hypocrite</string> +            <key>hypocrits</key> +                <string>hypocrites</string> +            <key>i</key> +                <string>I</string> +            <key>iconclastic</key> +                <string>iconoclastic</string> +            <key>idaeidae</key> +                <string>idea</string> +            <key>idaes</key> +                <string>ideas</string> +            <key>idealogies</key> +                <string>ideologies</string> +            <key>idealogy</key> +                <string>ideology</string> +            <key>identicial</key> +                <string>identical</string> +            <key>identifers</key> +                <string>identifiers</string> +            <key>ideosyncratic</key> +                <string>idiosyncratic</string> +            <key>idesa</key> +                <string>ideas</string> +            <key>idiosyncracy</key> +                <string>idiosyncrasy</string> +            <key>illegimacy</key> +                <string>illegitimacy</string> +            <key>illegitmate</key> +                <string>illegitimate</string> +            <key>illess</key> +                <string>illness</string> +            <key>illiegal</key> +                <string>illegal</string> +            <key>illution</key> +                <string>illusion</string> +            <key>ilness</key> +                <string>illness</string> +            <key>ilogical</key> +                <string>illogical</string> +            <key>imagenary</key> +                <string>imaginary</string> +            <key>imagin</key> +                <string>imagine</string> +            <key>imaginery</key> +                <string>imaginary</string> +            <key>imcomplete</key> +                <string>incomplete</string> +            <key>imediately</key> +                <string>immediately</string> +            <key>imense</key> +                <string>immense</string> +            <key>immediatley</key> +                <string>immediately</string> +            <key>immediatly</key> +                <string>immediately</string> +            <key>immidately</key> +                <string>immediately</string> +            <key>immidiately</key> +                <string>immediately</string> +            <key>immitate</key> +                <string>imitate</string> +            <key>immitated</key> +                <string>imitated</string> +            <key>immitating</key> +                <string>imitating</string> +            <key>immitator</key> +                <string>imitator</string> +            <key>immunosupressant</key> +                <string>immunosuppressant</string> +            <key>impecabbly</key> +                <string>impeccably</string> +            <key>impedence</key> +                <string>impedance</string> +            <key>implamenting</key> +                <string>implementing</string> +            <key>impliment</key> +                <string>implement</string> +            <key>implimented</key> +                <string>implemented</string> +            <key>imploys</key> +                <string>employs</string> +            <key>importamt</key> +                <string>important</string> +            <key>imprioned</key> +                <string>imprisoned</string> +            <key>imprisonned</key> +                <string>imprisoned</string> +            <key>improvision</key> +                <string>improvisation</string> +            <key>improvments</key> +                <string>improvements</string> +            <key>inablility</key> +                <string>inability</string> +            <key>inaccessable</key> +                <string>inaccessible</string> +            <key>inadiquate</key> +                <string>inadequate</string> +            <key>inadquate</key> +                <string>inadequate</string> +            <key>inadvertant</key> +                <string>inadvertent</string> +            <key>inadvertantly</key> +                <string>inadvertently</string> +            <key>inagurated</key> +                <string>inaugurated</string> +            <key>inaguration</key> +                <string>inauguration</string> +            <key>inappropiate</key> +                <string>inappropriate</string> +            <key>inaugures</key> +                <string>inaugurates</string> +            <key>inbalance</key> +                <string>imbalance</string> +            <key>inbalanced</key> +                <string>imbalanced</string> +            <key>inbetween</key> +                <string>between</string> +            <key>incarcirated</key> +                <string>incarcerated</string> +            <key>incidentially</key> +                <string>incidentally</string> +            <key>incidently</key> +                <string>incidentally</string> +            <key>inclreased</key> +                <string>increased</string> +            <key>includ</key> +                <string>include</string> +            <key>includng</key> +                <string>including</string> +            <key>incompatabilities</key> +                <string>incompatibilities</string> +            <key>incompatability</key> +                <string>incompatibility</string> +            <key>incompatable</key> +                <string>incompatible</string> +            <key>incompatablities</key> +                <string>incompatibilities</string> +            <key>incompatablity</key> +                <string>incompatibility</string> +            <key>incompatiblities</key> +                <string>incompatibilities</string> +            <key>incompatiblity</key> +                <string>incompatibility</string> +            <key>incompetance</key> +                <string>incompetence</string> +            <key>incompetant</key> +                <string>incompetent</string> +            <key>incomptable</key> +                <string>incompatible</string> +            <key>incomptetent</key> +                <string>incompetent</string> +            <key>inconsistant</key> +                <string>inconsistent</string> +            <key>incoroporated</key> +                <string>incorporated</string> +            <key>incorperation</key> +                <string>incorporation</string> +            <key>incorportaed</key> +                <string>incorporated</string> +            <key>incorprates</key> +                <string>incorporates</string> +            <key>incorruptable</key> +                <string>incorruptible</string> +            <key>incramentally</key> +                <string>incrementally</string> +            <key>increadible</key> +                <string>incredible</string> +            <key>incredable</key> +                <string>incredible</string> +            <key>inctroduce</key> +                <string>introduce</string> +            <key>inctroduced</key> +                <string>introduced</string> +            <key>incuding</key> +                <string>including</string> +            <key>incunabla</key> +                <string>incunabula</string> +            <key>indefinately</key> +                <string>indefinitely</string> +            <key>indefineable</key> +                <string>undefinable</string> +            <key>indefinitly</key> +                <string>indefinitely</string> +            <key>indentical</key> +                <string>identical</string> +            <key>indepedantly</key> +                <string>independently</string> +            <key>indepedence</key> +                <string>independence</string> +            <key>independance</key> +                <string>independence</string> +            <key>independant</key> +                <string>independent</string> +            <key>independantly</key> +                <string>independently</string> +            <key>independece</key> +                <string>independence</string> +            <key>independendet</key> +                <string>independent</string> +            <key>indespensable</key> +                <string>indispensable</string> +            <key>indespensible</key> +                <string>indispensable</string> +            <key>indictement</key> +                <string>indictment</string> +            <key>indigineous</key> +                <string>indigenous</string> +            <key>indipendence</key> +                <string>independence</string> +            <key>indipendent</key> +                <string>independent</string> +            <key>indipendently</key> +                <string>independently</string> +            <key>indispensible</key> +                <string>indispensable</string> +            <key>indisputible</key> +                <string>indisputable</string> +            <key>indisputibly</key> +                <string>indisputably</string> +            <key>indite</key> +                <string>indict</string> +            <key>individualy</key> +                <string>individually</string> +            <key>indpendent</key> +                <string>independent</string> +            <key>indpendently</key> +                <string>independently</string> +            <key>indulgue</key> +                <string>indulge</string> +            <key>indutrial</key> +                <string>industrial</string> +            <key>indviduals</key> +                <string>individuals</string> +            <key>inefficienty</key> +                <string>inefficiently</string> +            <key>inevatible</key> +                <string>inevitable</string> +            <key>inevitible</key> +                <string>inevitable</string> +            <key>inevititably</key> +                <string>inevitably</string> +            <key>infalability</key> +                <string>infallibility</string> +            <key>infallable</key> +                <string>infallible</string> +            <key>infectuous</key> +                <string>infectious</string> +            <key>infered</key> +                <string>inferred</string> +            <key>infilitrate</key> +                <string>infiltrate</string> +            <key>infilitrated</key> +                <string>infiltrated</string> +            <key>infilitration</key> +                <string>infiltration</string> +            <key>infinit</key> +                <string>infinite</string> +            <key>inflamation</key> +                <string>inflammation</string> +            <key>influencial</key> +                <string>influential</string> +            <key>influented</key> +                <string>influenced</string> +            <key>infomation</key> +                <string>information</string> +            <key>informtion</key> +                <string>information</string> +            <key>infrantryman</key> +                <string>infantryman</string> +            <key>infrigement</key> +                <string>infringement</string> +            <key>ingenius</key> +                <string>ingenious</string> +            <key>ingreediants</key> +                <string>ingredients</string> +            <key>inhabitans</key> +                <string>inhabitants</string> +            <key>inherantly</key> +                <string>inherently</string> +            <key>inheritence</key> +                <string>inheritance</string> +            <key>inital</key> +                <string>initial</string> +            <key>initally</key> +                <string>initially</string> +            <key>initation</key> +                <string>initiation</string> +            <key>initiaitive</key> +                <string>initiative</string> +            <key>inlcuding</key> +                <string>including</string> +            <key>inmigrant</key> +                <string>immigrant</string> +            <key>inmigrants</key> +                <string>immigrants</string> +            <key>innoculated</key> +                <string>inoculated</string> +            <key>inocence</key> +                <string>innocence</string> +            <key>inofficial</key> +                <string>unofficial</string> +            <key>inot</key> +                <string>into</string> +            <key>inpeach</key> +                <string>impeach</string> +            <key>inpolite</key> +                <string>impolite</string> +            <key>inprisonment</key> +                <string>imprisonment</string> +            <key>inproving</key> +                <string>improving</string> +            <key>insectiverous</key> +                <string>insectivorous</string> +            <key>insensative</key> +                <string>insensitive</string> +            <key>inseperable</key> +                <string>inseparable</string> +            <key>insistance</key> +                <string>insistence</string> +            <key>insitution</key> +                <string>institution</string> +            <key>insitutions</key> +                <string>institutions</string> +            <key>inspite</key> +                <string>in spite</string> +            <key>instade</key> +                <string>instead</string> +            <key>instatance</key> +                <string>instance</string> +            <key>institue</key> +                <string>institute</string> +            <key>instuction</key> +                <string>instruction</string> +            <key>instuments</key> +                <string>instruments</string> +            <key>instutionalized</key> +                <string>institutionalized</string> +            <key>instutions</key> +                <string>intuitions</string> +            <key>insurence</key> +                <string>insurance</string> +            <key>intelectual</key> +                <string>intellectual</string> +            <key>inteligence</key> +                <string>intelligence</string> +            <key>inteligent</key> +                <string>intelligent</string> +            <key>intenational</key> +                <string>international</string> +            <key>intented</key> +                <string>intended</string> +            <key>intepretation</key> +                <string>interpretation</string> +            <key>intepretator</key> +                <string>interpretor</string> +            <key>interational</key> +                <string>international</string> +            <key>interbread</key> +                <string>interbreed</string> +            <key>interchangable</key> +                <string>interchangeable</string> +            <key>interchangably</key> +                <string>interchangeably</string> +            <key>intercontinetal</key> +                <string>intercontinental</string> +            <key>intered</key> +                <string>interred</string> +            <key>interelated</key> +                <string>interrelated</string> +            <key>interferance</key> +                <string>interference</string> +            <key>interfereing</key> +                <string>interfering</string> +            <key>intergrated</key> +                <string>integrated</string> +            <key>intergration</key> +                <string>integration</string> +            <key>interm</key> +                <string>interim</string> +            <key>internation</key> +                <string>international</string> +            <key>interpet</key> +                <string>interpret</string> +            <key>interrim</key> +                <string>interim</string> +            <key>interrugum</key> +                <string>interregnum</string> +            <key>intertaining</key> +                <string>entertaining</string> +            <key>interupt</key> +                <string>interrupt</string> +            <key>intervines</key> +                <string>intervenes</string> +            <key>intevene</key> +                <string>intervene</string> +            <key>intial</key> +                <string>initial</string> +            <key>intially</key> +                <string>initially</string> +            <key>intrduced</key> +                <string>introduced</string> +            <key>intrest</key> +                <string>interest</string> +            <key>introdued</key> +                <string>introduced</string> +            <key>intruduced</key> +                <string>introduced</string> +            <key>intrument</key> +                <string>instrument</string> +            <key>intrumental</key> +                <string>instrumental</string> +            <key>intruments</key> +                <string>instruments</string> +            <key>intrusted</key> +                <string>entrusted</string> +            <key>intutive</key> +                <string>intuitive</string> +            <key>intutively</key> +                <string>intuitively</string> +            <key>inudstry</key> +                <string>industry</string> +            <key>inventer</key> +                <string>inventor</string> +            <key>invertibrates</key> +                <string>invertebrates</string> +            <key>investingate</key> +                <string>investigate</string> +            <key>involvment</key> +                <string>involvement</string> +            <key>irelevent</key> +                <string>irrelevant</string> +            <key>iresistable</key> +                <string>irresistible</string> +            <key>iresistably</key> +                <string>irresistibly</string> +            <key>iresistible</key> +                <string>irresistible</string> +            <key>iresistibly</key> +                <string>irresistibly</string> +            <key>iritable</key> +                <string>irritable</string> +            <key>iritated</key> +                <string>irritated</string> +            <key>ironicly</key> +                <string>ironically</string> +            <key>irregardless</key> +                <string>regardless</string> +            <key>irrelevent</key> +                <string>irrelevant</string> +            <key>irreplacable</key> +                <string>irreplaceable</string> +            <key>irresistable</key> +                <string>irresistible</string> +            <key>irresistably</key> +                <string>irresistibly</string> +            <key>isnt</key> +                <string>isn't</string> +            <key>issueing</key> +                <string>issuing</string> +            <key>itnroduced</key> +                <string>introduced</string> +            <key>iunior</key> +                <string>junior</string> +            <key>iwll</key> +                <string>will</string> +            <key>iwth</key> +                <string>with</string> +            <key>jaques</key> +                <string>jacques</string> +            <key>jeapardy</key> +                <string>jeopardy</string> +            <key>jewllery</key> +                <string>jewellery</string> +            <key>jouney</key> +                <string>journey</string> +            <key>journied</key> +                <string>journeyed</string> +            <key>journies</key> +                <string>journeys</string> +            <key>jstu</key> +                <string>just</string> +            <key>jsut</key> +                <string>just</string> +            <key>judical</key> +                <string>judicial</string> +            <key>judisuary</key> +                <string>judiciary</string> +            <key>juducial</key> +                <string>judicial</string> +            <key>juristiction</key> +                <string>jurisdiction</string> +            <key>juristictions</key> +                <string>jurisdictions</string> +            <key>kindergarden</key> +                <string>kindergarten</string> +            <key>klenex</key> +                <string>kleenex</string> +            <key>knifes</key> +                <string>knives</string> +            <key>knive</key> +                <string>knife</string> +            <key>knowlege</key> +                <string>knowledge</string> +            <key>knowlegeable</key> +                <string>knowledgeable</string> +            <key>knwo</key> +                <string>know</string> +            <key>knwos</key> +                <string>knows</string> +            <key>konw</key> +                <string>know</string> +            <key>konws</key> +                <string>knows</string> +            <key>kwno</key> +                <string>know</string> +            <key>labatory</key> +                <string>laboratory</string> +            <key>labratory</key> +                <string>laboratory</string> +            <key>laguage</key> +                <string>language</string> +            <key>laguages</key> +                <string>languages</string> +            <key>larg</key> +                <string>large</string> +            <key>largst</key> +                <string>largest</string> +            <key>larrry</key> +                <string>larry</string> +            <key>lastr</key> +                <string>last</string> +            <key>lattitude</key> +                <string>latitude</string> +            <key>launhed</key> +                <string>launched</string> +            <key>lavae</key> +                <string>larvae</string> +            <key>layed</key> +                <string>laid</string> +            <key>lazyness</key> +                <string>laziness</string> +            <key>leage</key> +                <string>league</string> +            <key>leanr</key> +                <string>learn</string> +            <key>leathal</key> +                <string>lethal</string> +            <key>lefted</key> +                <string>left</string> +            <key>legitamate</key> +                <string>legitimate</string> +            <key>legitmate</key> +                <string>legitimate</string> +            <key>leibnitz</key> +                <string>leibniz</string> +            <key>lenght</key> +                <string>length</string> +            <key>leran</key> +                <string>learn</string> +            <key>lerans</key> +                <string>learns</string> +            <key>leutenant</key> +                <string>lieutenant</string> +            <key>levetate</key> +                <string>levitate</string> +            <key>levetated</key> +                <string>levitated</string> +            <key>levetates</key> +                <string>levitates</string> +            <key>levetating</key> +                <string>levitating</string> +            <key>levle</key> +                <string>level</string> +            <key>liasion</key> +                <string>liaison</string> +            <key>liason</key> +                <string>liaison</string> +            <key>liasons</key> +                <string>liaisons</string> +            <key>libary</key> +                <string>library</string> +            <key>libell</key> +                <string>libel</string> +            <key>libguistic</key> +                <string>linguistic</string> +            <key>libguistics</key> +                <string>linguistics</string> +            <key>libitarianisn</key> +                <string>libertarianism</string> +            <key>lieing</key> +                <string>lying</string> +            <key>liek</key> +                <string>like</string> +            <key>liekd</key> +                <string>liked</string> +            <key>liesure</key> +                <string>leisure</string> +            <key>lieuenant</key> +                <string>lieutenant</string> +            <key>lieved</key> +                <string>lived</string> +            <key>liftime</key> +                <string>lifetime</string> +            <key>lightyear</key> +                <string>light year</string> +            <key>lightyears</key> +                <string>light years</string> +            <key>likelyhood</key> +                <string>likelihood</string> +            <key>linnaena</key> +                <string>linnaean</string> +            <key>lippizaner</key> +                <string>lipizzaner</string> +            <key>liquify</key> +                <string>liquefy</string> +            <key>liscense</key> +                <string>license</string> +            <key>lisence</key> +                <string>license</string> +            <key>lisense</key> +                <string>license</string> +            <key>listners</key> +                <string>listeners</string> +            <key>litature</key> +                <string>literature</string> +            <key>literaly</key> +                <string>literally</string> +            <key>literture</key> +                <string>literature</string> +            <key>littel</key> +                <string>little</string> +            <key>litterally</key> +                <string>literally</string> +            <key>liuke</key> +                <string>like</string> +            <key>livley</key> +                <string>lively</string> +            <key>lmits</key> +                <string>limits</string> +            <key>loev</key> +                <string>love</string> +            <key>lonelyness</key> +                <string>loneliness</string> +            <key>longitudonal</key> +                <string>longitudinal</string> +            <key>lonley</key> +                <string>lonely</string> +            <key>lonly</key> +                <string>lonely</string> +            <key>loosing</key> +                <string>losing</string> +            <key>lotharingen</key> +                <string>lothringen</string> +            <key>lsat</key> +                <string>last</string> +            <key>lukid</key> +                <string>likud</string> +            <key>lveo</key> +                <string>love</string> +            <key>lvoe</key> +                <string>love</string> +            <key>maching</key> +                <string>machine</string> +            <key>mackeral</key> +                <string>mackerel</string> +            <key>magasine</key> +                <string>magazine</string> +            <key>magincian</key> +                <string>magician</string> +            <key>magnificient</key> +                <string>magnificent</string> +            <key>magolia</key> +                <string>magnolia</string> +            <key>mailny</key> +                <string>mainly</string> +            <key>maintainance</key> +                <string>maintenance</string> +            <key>maintainence</key> +                <string>maintenance</string> +            <key>maintance</key> +                <string>maintenance</string> +            <key>maintenence</key> +                <string>maintenance</string> +            <key>maintinaing</key> +                <string>maintaining</string> +            <key>maintioned</key> +                <string>mentioned</string> +            <key>majoroty</key> +                <string>majority</string> +            <key>maked</key> +                <string>marked</string> +            <key>makse</key> +                <string>makes</string> +            <key>maltesian</key> +                <string>Maltese</string> +            <key>mamal</key> +                <string>mammal</string> +            <key>mamalian</key> +                <string>mammalian</string> +            <key>managable</key> +                <string>manageable</string> +            <key>managment</key> +                <string>management</string> +            <key>maneouvre</key> +                <string>manoeuvre</string> +            <key>maneouvred</key> +                <string>manoeuvred</string> +            <key>maneouvres</key> +                <string>manoeuvres</string> +            <key>maneouvring</key> +                <string>manoeuvring</string> +            <key>manisfestations</key> +                <string>manifestations</string> +            <key>manoeuverability</key> +                <string>maneuverability</string> +            <key>manouver</key> +                <string>maneuver</string> +            <key>manouverability</key> +                <string>maneuverability</string> +            <key>manouverable</key> +                <string>maneuverable</string> +            <key>manouvers</key> +                <string>maneuvers</string> +            <key>mantained</key> +                <string>maintained</string> +            <key>manuever</key> +                <string>maneuver</string> +            <key>manuevers</key> +                <string>maneuvers</string> +            <key>manufacturedd</key> +                <string>manufactured</string> +            <key>manufature</key> +                <string>manufacture</string> +            <key>manufatured</key> +                <string>manufactured</string> +            <key>manufaturing</key> +                <string>manufacturing</string> +            <key>manuver</key> +                <string>maneuver</string> +            <key>mariage</key> +                <string>marriage</string> +            <key>marjority</key> +                <string>majority</string> +            <key>markes</key> +                <string>marks</string> +            <key>marketting</key> +                <string>marketing</string> +            <key>marmelade</key> +                <string>marmalade</string> +            <key>marrage</key> +                <string>marriage</string> +            <key>marraige</key> +                <string>marriage</string> +            <key>marrtyred</key> +                <string>martyred</string> +            <key>marryied</key> +                <string>married</string> +            <key>massmedia</key> +                <string>mass media</string> +            <key>masterbation</key> +                <string>masturbation</string> +            <key>mataphysical</key> +                <string>metaphysical</string> +            <key>materalists</key> +                <string>materialist</string> +            <key>mathamatics</key> +                <string>mathematics</string> +            <key>mathematican</key> +                <string>mathematician</string> +            <key>mathematicas</key> +                <string>mathematics</string> +            <key>matheticians</key> +                <string>mathematicians</string> +            <key>mathmatically</key> +                <string>mathematically</string> +            <key>mathmatician</key> +                <string>mathematician</string> +            <key>mathmaticians</key> +                <string>mathematicians</string> +            <key>mccarthyst</key> +                <string>mccarthyist</string> +            <key>mchanics</key> +                <string>mechanics</string> +            <key>meaninng</key> +                <string>meaning</string> +            <key>mear</key> +                <string>wear</string> +            <key>mechandise</key> +                <string>merchandise</string> +            <key>medacine</key> +                <string>medicine</string> +            <key>medeival</key> +                <string>medieval</string> +            <key>medevial</key> +                <string>medieval</string> +            <key>mediciney</key> +                <string>mediciny</string> +            <key>medievel</key> +                <string>medieval</string> +            <key>mediterainnean</key> +                <string>mediterranean</string> +            <key>meerkrat</key> +                <string>meerkat</string> +            <key>melieux</key> +                <string>milieux</string> +            <key>membranaphone</key> +                <string>membranophone</string> +            <key>memeber</key> +                <string>member</string> +            <key>menally</key> +                <string>mentally</string> +            <key>meranda</key> +                <string>Miranda</string> +            <key>mercentile</key> +                <string>mercantile</string> +            <key>messanger</key> +                <string>messenger</string> +            <key>messenging</key> +                <string>messaging</string> +            <key>metalic</key> +                <string>metallic</string> +            <key>metalurgic</key> +                <string>metallurgic</string> +            <key>metalurgical</key> +                <string>metallurgical</string> +            <key>metalurgy</key> +                <string>metallurgy</string> +            <key>metamorphysis</key> +                <string>metamorphosis</string> +            <key>metaphoricial</key> +                <string>metaphorical</string> +            <key>meterologist</key> +                <string>meteorologist</string> +            <key>meterology</key> +                <string>meteorology</string> +            <key>methaphor</key> +                <string>metaphor</string> +            <key>methaphors</key> +                <string>metaphors</string> +            <key>micoscopy</key> +                <string>microscopy</string> +            <key>midwifes</key> +                <string>midwives</string> +            <key>mileau</key> +                <string>milieu</string> +            <key>milennia</key> +                <string>millennia</string> +            <key>milennium</key> +                <string>millennium</string> +            <key>mileu</key> +                <string>milieu</string> +            <key>miliary</key> +                <string>military</string> +            <key>milion</key> +                <string>million</string> +            <key>miliraty</key> +                <string>military</string> +            <key>millenia</key> +                <string>millennia</string> +            <key>millenial</key> +                <string>millennial</string> +            <key>millenialism</key> +                <string>millennialism</string> +            <key>millenium</key> +                <string>millennium</string> +            <key>millepede</key> +                <string>millipede</string> +            <key>millioniare</key> +                <string>millionaire</string> +            <key>millitary</key> +                <string>military</string> +            <key>millon</key> +                <string>million</string> +            <key>miltary</key> +                <string>military</string> +            <key>minature</key> +                <string>miniature</string> +            <key>minerial</key> +                <string>mineral</string> +            <key>miniscule</key> +                <string>minuscule</string> +            <key>ministery</key> +                <string>ministry</string> +            <key>minstries</key> +                <string>ministries</string> +            <key>minstry</key> +                <string>ministry</string> +            <key>minumum</key> +                <string>minimum</string> +            <key>mirrorred</key> +                <string>mirrored</string> +            <key>miscelaneous</key> +                <string>miscellaneous</string> +            <key>miscellanious</key> +                <string>miscellaneous</string> +            <key>miscellanous</key> +                <string>miscellaneous</string> +            <key>mischeivous</key> +                <string>mischievous</string> +            <key>mischevious</key> +                <string>mischievous</string> +            <key>mischievious</key> +                <string>mischievous</string> +            <key>misdameanor</key> +                <string>misdemeanor</string> +            <key>misdameanors</key> +                <string>misdemeanors</string> +            <key>misdemenor</key> +                <string>misdemeanor</string> +            <key>misdemenors</key> +                <string>misdemeanors</string> +            <key>misfourtunes</key> +                <string>misfortunes</string> +            <key>misile</key> +                <string>missile</string> +            <key>mispell</key> +                <string>misspell</string> +            <key>mispelled</key> +                <string>misspelled</string> +            <key>mispelling</key> +                <string>misspelling</string> +            <key>missen</key> +                <string>mizzen</string> +            <key>missle</key> +                <string>missile</string> +            <key>missonary</key> +                <string>missionary</string> +            <key>misterious</key> +                <string>mysterious</string> +            <key>mistery</key> +                <string>mystery</string> +            <key>misteryous</key> +                <string>mysterious</string> +            <key>mkae</key> +                <string>make</string> +            <key>mkaes</key> +                <string>makes</string> +            <key>mkaing</key> +                <string>making</string> +            <key>mkea</key> +                <string>make</string> +            <key>moderm</key> +                <string>modem</string> +            <key>modle</key> +                <string>model</string> +            <key>moent</key> +                <string>moment</string> +            <key>moeny</key> +                <string>money</string> +            <key>mohammedans</key> +                <string>muslims</string> +            <key>moil</key> +                <string>soil</string> +            <key>moleclues</key> +                <string>molecules</string> +            <key>momento</key> +                <string>memento</string> +            <key>monestaries</key> +                <string>monasteries</string> +            <key>monestary</key> +                <string>monastery</string> +            <key>monickers</key> +                <string>monikers</string> +            <key>monolite</key> +                <string>monolithic</string> +            <key>montains</key> +                <string>mountains</string> +            <key>montanous</key> +                <string>mountainous</string> +            <key>monts</key> +                <string>months</string> +            <key>montypic</key> +                <string>monotypic</string> +            <key>moreso</key> +                <string>more so</string> +            <key>morgage</key> +                <string>mortgage</string> +            <key>morroccan</key> +                <string>moroccan</string> +            <key>morrocco</key> +                <string>morocco</string> +            <key>morroco</key> +                <string>morocco</string> +            <key>mortage</key> +                <string>mortgage</string> +            <key>mosture</key> +                <string>moisture</string> +            <key>motiviated</key> +                <string>motivated</string> +            <key>mounth</key> +                <string>month</string> +            <key>movei</key> +                <string>movie</string> +            <key>movment</key> +                <string>movement</string> +            <key>mroe</key> +                <string>more</string> +            <key>mucuous</key> +                <string>mucous</string> +            <key>muder</key> +                <string>murder</string> +            <key>mudering</key> +                <string>murdering</string> +            <key>muhammadan</key> +                <string>muslim</string> +            <key>multicultralism</key> +                <string>multiculturalism</string> +            <key>multipled</key> +                <string>multiplied</string> +            <key>multiplers</key> +                <string>multipliers</string> +            <key>munbers</key> +                <string>numbers</string> +            <key>muncipalities</key> +                <string>municipalities</string> +            <key>muncipality</key> +                <string>municipality</string> +            <key>munnicipality</key> +                <string>municipality</string> +            <key>muscels</key> +                <string>muscles</string> +            <key>muscial</key> +                <string>musical</string> +            <key>muscician</key> +                <string>musician</string> +            <key>muscicians</key> +                <string>musicians</string> +            <key>mutiliated</key> +                <string>mutilated</string> +            <key>myraid</key> +                <string>myriad</string> +            <key>mysef</key> +                <string>myself</string> +            <key>mysogynist</key> +                <string>misogynist</string> +            <key>mysogyny</key> +                <string>misogyny</string> +            <key>mysterous</key> +                <string>mysterious</string> +            <key>naieve</key> +                <string>naive</string> +            <key>naturaly</key> +                <string>naturally</string> +            <key>naturely</key> +                <string>naturally</string> +            <key>naturual</key> +                <string>natural</string> +            <key>naturually</key> +                <string>naturally</string> +            <key>neccesarily</key> +                <string>necessarily</string> +            <key>neccesary</key> +                <string>necessary</string> +            <key>neccessarily</key> +                <string>necessarily</string> +            <key>neccessary</key> +                <string>necessary</string> +            <key>neccessities</key> +                <string>necessities</string> +            <key>necesarily</key> +                <string>necessarily</string> +            <key>necesary</key> +                <string>necessary</string> +            <key>necessiate</key> +                <string>necessitate</string> +            <key>neglible</key> +                <string>negligible</string> +            <key>negligable</key> +                <string>negligible</string> +            <key>negociate</key> +                <string>negotiate</string> +            <key>negociation</key> +                <string>negotiation</string> +            <key>negociations</key> +                <string>negotiations</string> +            <key>negotation</key> +                <string>negotiation</string> +            <key>neice</key> +                <string>niece</string> +            <key>neigborhood</key> +                <string>neighborhood</string> +            <key>neigbour</key> +                <string>neighbour</string> +            <key>neigbourhood</key> +                <string>neighbourhood</string> +            <key>neolitic</key> +                <string>neolithic</string> +            <key>nessasarily</key> +                <string>necessarily</string> +            <key>nessecary</key> +                <string>necessary</string> +            <key>nestin</key> +                <string>nesting</string> +            <key>neverthless</key> +                <string>nevertheless</string> +            <key>newletters</key> +                <string>newsletters</string> +            <key>nickle</key> +                <string>nickel</string> +            <key>nightfa;;</key> +                <string>nightfall</string> +            <key>nightime</key> +                <string>nighttime</string> +            <key>nineth</key> +                <string>ninth</string> +            <key>ninteenth</key> +                <string>nineteenth</string> +            <key>ninties</key> +                <string>1990s</string> +            <key>ninty</key> +                <string>ninety</string> +            <key>nkow</key> +                <string>know</string> +            <key>nkwo</key> +                <string>know</string> +            <key>nmae</key> +                <string>name</string> +            <key>noncombatents</key> +                <string>noncombatants</string> +            <key>nonsence</key> +                <string>nonsense</string> +            <key>nontheless</key> +                <string>nonetheless</string> +            <key>noone</key> +                <string>no one</string> +            <key>norhern</key> +                <string>northern</string> +            <key>northen</key> +                <string>northern</string> +            <key>northereastern</key> +                <string>northeastern</string> +            <key>notabley</key> +                <string>notably</string> +            <key>noteable</key> +                <string>notable</string> +            <key>noteably</key> +                <string>notably</string> +            <key>noteriety</key> +                <string>notoriety</string> +            <key>noth</key> +                <string>north</string> +            <key>nothern</key> +                <string>northern</string> +            <key>noticable</key> +                <string>noticeable</string> +            <key>noticably</key> +                <string>noticeably</string> +            <key>noticeing</key> +                <string>noticing</string> +            <key>noticible</key> +                <string>noticeable</string> +            <key>notwhithstanding</key> +                <string>notwithstanding</string> +            <key>noveau</key> +                <string>nouveau</string> +            <key>nowdays</key> +                <string>nowadays</string> +            <key>nowe</key> +                <string>now</string> +            <key>nto</key> +                <string>not</string> +            <key>nucular</key> +                <string>nuclear</string> +            <key>nuculear</key> +                <string>nuclear</string> +            <key>nuisanse</key> +                <string>nuisance</string> +            <key>numberous</key> +                <string>numerous</string> +            <key>nusance</key> +                <string>nuisance</string> +            <key>nutritent</key> +                <string>nutrient</string> +            <key>nutritents</key> +                <string>nutrients</string> +            <key>nuturing</key> +                <string>nurturing</string> +            <key>obediance</key> +                <string>obedience</string> +            <key>obediant</key> +                <string>obedient</string> +            <key>obession</key> +                <string>obsession</string> +            <key>obssessed</key> +                <string>obsessed</string> +            <key>obstacal</key> +                <string>obstacle</string> +            <key>obstancles</key> +                <string>obstacles</string> +            <key>obstruced</key> +                <string>obstructed</string> +            <key>ocasion</key> +                <string>occasion</string> +            <key>ocasional</key> +                <string>occasional</string> +            <key>ocasionally</key> +                <string>occasionally</string> +            <key>ocasionaly</key> +                <string>occasionally</string> +            <key>ocasioned</key> +                <string>occasioned</string> +            <key>ocasions</key> +                <string>occasions</string> +            <key>ocassion</key> +                <string>occasion</string> +            <key>ocassional</key> +                <string>occasional</string> +            <key>ocassionally</key> +                <string>occasionally</string> +            <key>ocassionaly</key> +                <string>occasionally</string> +            <key>ocassioned</key> +                <string>occasioned</string> +            <key>ocassions</key> +                <string>occasions</string> +            <key>occaison</key> +                <string>occasion</string> +            <key>occassion</key> +                <string>occasion</string> +            <key>occassional</key> +                <string>occasional</string> +            <key>occassionally</key> +                <string>occasionally</string> +            <key>occassionaly</key> +                <string>occasionally</string> +            <key>occassioned</key> +                <string>occasioned</string> +            <key>occassions</key> +                <string>occasions</string> +            <key>occationally</key> +                <string>occasionally</string> +            <key>occour</key> +                <string>occur</string> +            <key>occurance</key> +                <string>occurrence</string> +            <key>occurances</key> +                <string>occurrences</string> +            <key>occured</key> +                <string>occurred</string> +            <key>occurence</key> +                <string>occurrence</string> +            <key>occurences</key> +                <string>occurrences</string> +            <key>occuring</key> +                <string>occurring</string> +            <key>occurr</key> +                <string>occur</string> +            <key>occurrance</key> +                <string>occurrence</string> +            <key>occurrances</key> +                <string>occurrences</string> +            <key>octohedra</key> +                <string>octahedra</string> +            <key>octohedral</key> +                <string>octahedral</string> +            <key>octohedron</key> +                <string>octahedron</string> +            <key>ocuntries</key> +                <string>countries</string> +            <key>ocuntry</key> +                <string>country</string> +            <key>ocurr</key> +                <string>occur</string> +            <key>ocurrance</key> +                <string>occurrence</string> +            <key>ocurred</key> +                <string>occurred</string> +            <key>ocurrence</key> +                <string>occurrence</string> +            <key>offcers</key> +                <string>officers</string> +            <key>offcially</key> +                <string>officially</string> +            <key>offereings</key> +                <string>offerings</string> +            <key>offical</key> +                <string>official</string> +            <key>offically</key> +                <string>officially</string> +            <key>officals</key> +                <string>officials</string> +            <key>officaly</key> +                <string>officially</string> +            <key>officialy</key> +                <string>officially</string> +            <key>offred</key> +                <string>offered</string> +            <key>oftenly</key> +                <string>often</string> +            <key>oging</key> +                <string>going</string> +            <key>omision</key> +                <string>omission</string> +            <key>omited</key> +                <string>omitted</string> +            <key>omiting</key> +                <string>omitting</string> +            <key>omlette</key> +                <string>omelette</string> +            <key>ommision</key> +                <string>omission</string> +            <key>ommited</key> +                <string>omitted</string> +            <key>ommiting</key> +                <string>omitting</string> +            <key>ommitted</key> +                <string>omitted</string> +            <key>ommitting</key> +                <string>omitting</string> +            <key>omniverous</key> +                <string>omnivorous</string> +            <key>omniverously</key> +                <string>omnivorously</string> +            <key>omre</key> +                <string>more</string> +            <key>onot</key> +                <string>note</string> +            <key>onxy</key> +                <string>onyx</string> +            <key>onyl</key> +                <string>only</string> +            <key>openess</key> +                <string>openness</string> +            <key>oponent</key> +                <string>opponent</string> +            <key>oportunity</key> +                <string>opportunity</string> +            <key>opose</key> +                <string>oppose</string> +            <key>oposite</key> +                <string>opposite</string> +            <key>oposition</key> +                <string>opposition</string> +            <key>oppenly</key> +                <string>openly</string> +            <key>oppinion</key> +                <string>opinion</string> +            <key>opponant</key> +                <string>opponent</string> +            <key>oppononent</key> +                <string>opponent</string> +            <key>oppositition</key> +                <string>opposition</string> +            <key>oppossed</key> +                <string>opposed</string> +            <key>opprotunity</key> +                <string>opportunity</string> +            <key>opression</key> +                <string>oppression</string> +            <key>opressive</key> +                <string>oppressive</string> +            <key>opthalmic</key> +                <string>ophthalmic</string> +            <key>opthalmologist</key> +                <string>ophthalmologist</string> +            <key>opthalmology</key> +                <string>ophthalmology</string> +            <key>opthamologist</key> +                <string>ophthalmologist</string> +            <key>optmizations</key> +                <string>optimizations</string> +            <key>optomism</key> +                <string>optimism</string> +            <key>orded</key> +                <string>ordered</string> +            <key>organim</key> +                <string>organism</string> +            <key>organistion</key> +                <string>organisation</string> +            <key>organiztion</key> +                <string>organization</string> +            <key>orgin</key> +                <string>origin</string> +            <key>orginal</key> +                <string>original</string> +            <key>orginally</key> +                <string>originally</string> +            <key>orginize</key> +                <string>organise</string> +            <key>oridinarily</key> +                <string>ordinarily</string> +            <key>origanaly</key> +                <string>originally</string> +            <key>originall</key> +                <string>original</string> +            <key>originaly</key> +                <string>originally</string> +            <key>originially</key> +                <string>originally</string> +            <key>originnally</key> +                <string>originally</string> +            <key>origional</key> +                <string>original</string> +            <key>orignally</key> +                <string>originally</string> +            <key>orignially</key> +                <string>originally</string> +            <key>otehr</key> +                <string>other</string> +            <key>oublisher</key> +                <string>publisher</string> +            <key>ouevre</key> +                <string>oeuvre</string> +            <key>oustanding</key> +                <string>outstanding</string> +            <key>overshaddowed</key> +                <string>overshadowed</string> +            <key>overthere</key> +                <string>over there</string> +            <key>overwelming</key> +                <string>overwhelming</string> +            <key>overwheliming</key> +                <string>overwhelming</string> +            <key>owrk</key> +                <string>work</string> +            <key>owudl</key> +                <string>would</string> +            <key>oxigen</key> +                <string>oxygen</string> +            <key>oximoron</key> +                <string>oxymoron</string> +            <key>p0enis</key> +                <string>penis</string> +            <key>paide</key> +                <string>paid</string> +            <key>paitience</key> +                <string>patience</string> +            <key>palce</key> +                <string>place</string> +            <key>paleolitic</key> +                <string>paleolithic</string> +            <key>paliamentarian</key> +                <string>parliamentarian</string> +            <key>pallete</key> +                <string>palette</string> +            <key>pamflet</key> +                <string>pamphlet</string> +            <key>pamplet</key> +                <string>pamphlet</string> +            <key>pantomine</key> +                <string>pantomime</string> +            <key>paralel</key> +                <string>parallel</string> +            <key>paralell</key> +                <string>parallel</string> +            <key>paralelly</key> +                <string>parallelly</string> +            <key>paralely</key> +                <string>parallelly</string> +            <key>parallely</key> +                <string>parallelly</string> +            <key>paranthesis</key> +                <string>parenthesis</string> +            <key>paraphenalia</key> +                <string>paraphernalia</string> +            <key>parellels</key> +                <string>parallels</string> +            <key>parituclar</key> +                <string>particular</string> +            <key>parliment</key> +                <string>parliament</string> +            <key>parrakeets</key> +                <string>parakeets</string> +            <key>parralel</key> +                <string>parallel</string> +            <key>parrallel</key> +                <string>parallel</string> +            <key>parrallell</key> +                <string>parallel</string> +            <key>parrallelly</key> +                <string>parallelly</string> +            <key>parrallely</key> +                <string>parallelly</string> +            <key>partialy</key> +                <string>partially</string> +            <key>particually</key> +                <string>particularly</string> +            <key>particualr</key> +                <string>particular</string> +            <key>particuarly</key> +                <string>particularly</string> +            <key>particularily</key> +                <string>particularly</string> +            <key>particulary</key> +                <string>particularly</string> +            <key>pary</key> +                <string>party</string> +            <key>pased</key> +                <string>passed</string> +            <key>pasengers</key> +                <string>passengers</string> +            <key>passerbys</key> +                <string>passersby</string> +            <key>pasttime</key> +                <string>pastime</string> +            <key>pastural</key> +                <string>pastoral</string> +            <key>paticular</key> +                <string>particular</string> +            <key>pattented</key> +                <string>patented</string> +            <key>pavillion</key> +                <string>pavilion</string> +            <key>payed</key> +                <string>paid</string> +            <key>pblisher</key> +                <string>publisher</string> +            <key>pbulisher</key> +                <string>publisher</string> +            <key>peacefuland</key> +                <string>peaceful and</string> +            <key>peageant</key> +                <string>pageant</string> +            <key>peculure</key> +                <string>peculiar</string> +            <key>pedestrain</key> +                <string>pedestrian</string> +            <key>peformed</key> +                <string>performed</string> +            <key>peice</key> +                <string>piece</string> +            <key>penatly</key> +                <string>penalty</string> +            <key>penerator</key> +                <string>penetrator</string> +            <key>penisula</key> +                <string>peninsula</string> +            <key>penisular</key> +                <string>peninsular</string> +            <key>penninsula</key> +                <string>peninsula</string> +            <key>penninsular</key> +                <string>peninsular</string> +            <key>pennisula</key> +                <string>peninsula</string> +            <key>pensinula</key> +                <string>peninsula</string> +            <key>peom</key> +                <string>poem</string> +            <key>peoms</key> +                <string>poems</string> +            <key>peopel</key> +                <string>people</string> +            <key>peotry</key> +                <string>poetry</string> +            <key>perade</key> +                <string>parade</string> +            <key>percepted</key> +                <string>perceived</string> +            <key>percieve</key> +                <string>perceive</string> +            <key>percieved</key> +                <string>perceived</string> +            <key>perenially</key> +                <string>perennially</string> +            <key>perfomance</key> +                <string>performance</string> +            <key>perfomers</key> +                <string>performers</string> +            <key>performence</key> +                <string>performance</string> +            <key>performes</key> +                <string>performed</string> +            <key>perhasp</key> +                <string>perhaps</string> +            <key>perheaps</key> +                <string>perhaps</string> +            <key>perhpas</key> +                <string>perhaps</string> +            <key>peripathetic</key> +                <string>peripatetic</string> +            <key>peristent</key> +                <string>persistent</string> +            <key>perjery</key> +                <string>perjury</string> +            <key>perjorative</key> +                <string>pejorative</string> +            <key>permanant</key> +                <string>permanent</string> +            <key>permenant</key> +                <string>permanent</string> +            <key>permenantly</key> +                <string>permanently</string> +            <key>permissable</key> +                <string>permissible</string> +            <key>perogative</key> +                <string>prerogative</string> +            <key>peronal</key> +                <string>personal</string> +            <key>perosnality</key> +                <string>personality</string> +            <key>perphas</key> +                <string>perhaps</string> +            <key>perpindicular</key> +                <string>perpendicular</string> +            <key>perseverence</key> +                <string>perseverance</string> +            <key>persistance</key> +                <string>persistence</string> +            <key>persistant</key> +                <string>persistent</string> +            <key>personel</key> +                <string>personnel</string> +            <key>personell</key> +                <string>personnel</string> +            <key>personnell</key> +                <string>personnel</string> +            <key>persuded</key> +                <string>persuaded</string> +            <key>persue</key> +                <string>pursue</string> +            <key>persued</key> +                <string>pursued</string> +            <key>persuing</key> +                <string>pursuing</string> +            <key>persuit</key> +                <string>pursuit</string> +            <key>persuits</key> +                <string>pursuits</string> +            <key>pertubation</key> +                <string>perturbation</string> +            <key>pertubations</key> +                <string>perturbations</string> +            <key>pessiary</key> +                <string>pessary</string> +            <key>petetion</key> +                <string>petition</string> +            <key>phenomenom</key> +                <string>phenomenon</string> +            <key>phenomenonal</key> +                <string>phenomenal</string> +            <key>phenomenonly</key> +                <string>phenomenally</string> +            <key>phenomonenon</key> +                <string>phenomenon</string> +            <key>phenomonon</key> +                <string>phenomenon</string> +            <key>phenonmena</key> +                <string>phenomena</string> +            <key>philisopher</key> +                <string>philosopher</string> +            <key>philisophical</key> +                <string>philosophical</string> +            <key>philisophy</key> +                <string>philosophy</string> +            <key>phillosophically</key> +                <string>philosophically</string> +            <key>philospher</key> +                <string>philosopher</string> +            <key>philosphies</key> +                <string>philosophies</string> +            <key>philosphy</key> +                <string>philosophy</string> +            <key>phongraph</key> +                <string>phonograph</string> +            <key>phylosophical</key> +                <string>philosophical</string> +            <key>physicaly</key> +                <string>physically</string> +            <key>piblisher</key> +                <string>publisher</string> +            <key>pich</key> +                <string>pitch</string> +            <key>pilgrimmage</key> +                <string>pilgrimage</string> +            <key>pilgrimmages</key> +                <string>pilgrimages</string> +            <key>pinapple</key> +                <string>pineapple</string> +            <key>pinnaple</key> +                <string>pineapple</string> +            <key>pinoneered</key> +                <string>pioneered</string> +            <key>plagarism</key> +                <string>plagiarism</string> +            <key>planation</key> +                <string>plantation</string> +            <key>planed</key> +                <string>planned</string> +            <key>plantiff</key> +                <string>plaintiff</string> +            <key>plateu</key> +                <string>plateau</string> +            <key>plausable</key> +                <string>plausible</string> +            <key>playright</key> +                <string>playwright</string> +            <key>playwrite</key> +                <string>playwright</string> +            <key>playwrites</key> +                <string>playwrights</string> +            <key>pleasent</key> +                <string>pleasant</string> +            <key>plebicite</key> +                <string>plebiscite</string> +            <key>plesant</key> +                <string>pleasant</string> +            <key>poenis</key> +                <string>penis</string> +            <key>poeoples</key> +                <string>peoples</string> +            <key>poety</key> +                <string>poetry</string> +            <key>poisin</key> +                <string>poison</string> +            <key>polical</key> +                <string>political</string> +            <key>polinator</key> +                <string>pollinator</string> +            <key>polinators</key> +                <string>pollinators</string> +            <key>politican</key> +                <string>politician</string> +            <key>politicans</key> +                <string>politicians</string> +            <key>poltical</key> +                <string>political</string> +            <key>polute</key> +                <string>pollute</string> +            <key>poluted</key> +                <string>polluted</string> +            <key>polutes</key> +                <string>pollutes</string> +            <key>poluting</key> +                <string>polluting</string> +            <key>polution</key> +                <string>pollution</string> +            <key>polyphonyic</key> +                <string>polyphonic</string> +            <key>polysaccaride</key> +                <string>polysaccharide</string> +            <key>polysaccharid</key> +                <string>polysaccharide</string> +            <key>pomegranite</key> +                <string>pomegranate</string> +            <key>pomotion</key> +                <string>promotion</string> +            <key>poportional</key> +                <string>proportional</string> +            <key>popoulation</key> +                <string>population</string> +            <key>popularaty</key> +                <string>popularity</string> +            <key>populare</key> +                <string>popular</string> +            <key>populer</key> +                <string>popular</string> +            <key>portait</key> +                <string>portrait</string> +            <key>portayed</key> +                <string>portrayed</string> +            <key>portraing</key> +                <string>portraying</string> +            <key>portuguease</key> +                <string>portuguese</string> +            <key>portugues</key> +                <string>Portuguese</string> +            <key>posess</key> +                <string>possess</string> +            <key>posessed</key> +                <string>possessed</string> +            <key>posesses</key> +                <string>possesses</string> +            <key>posessing</key> +                <string>possessing</string> +            <key>posession</key> +                <string>possession</string> +            <key>posessions</key> +                <string>possessions</string> +            <key>posion</key> +                <string>poison</string> +            <key>positon</key> +                <string>position</string> +            <key>possable</key> +                <string>possible</string> +            <key>possably</key> +                <string>possibly</string> +            <key>posseses</key> +                <string>possesses</string> +            <key>possesing</key> +                <string>possessing</string> +            <key>possesion</key> +                <string>possession</string> +            <key>possessess</key> +                <string>possesses</string> +            <key>possibile</key> +                <string>possible</string> +            <key>possibilty</key> +                <string>possibility</string> +            <key>possiblility</key> +                <string>possibility</string> +            <key>possiblilty</key> +                <string>possibility</string> +            <key>possiblities</key> +                <string>possibilities</string> +            <key>possiblity</key> +                <string>possibility</string> +            <key>possition</key> +                <string>position</string> +            <key>posthomous</key> +                <string>posthumous</string> +            <key>postion</key> +                <string>position</string> +            <key>postive</key> +                <string>positive</string> +            <key>potatos</key> +                <string>potatoes</string> +            <key>potrait</key> +                <string>portrait</string> +            <key>potrayed</key> +                <string>portrayed</string> +            <key>poulations</key> +                <string>populations</string> +            <key>poverful</key> +                <string>powerful</string> +            <key>poweful</key> +                <string>powerful</string> +            <key>powerfull</key> +                <string>powerful</string> +            <key>ppublisher</key> +                <string>publisher</string> +            <key>practial</key> +                <string>practical</string> +            <key>practially</key> +                <string>practically</string> +            <key>practicaly</key> +                <string>practically</string> +            <key>practicioner</key> +                <string>practitioner</string> +            <key>practicioners</key> +                <string>practitioners</string> +            <key>practicly</key> +                <string>practically</string> +            <key>practioner</key> +                <string>practitioner</string> +            <key>practioners</key> +                <string>practitioners</string> +            <key>prairy</key> +                <string>prairie</string> +            <key>prarie</key> +                <string>prairie</string> +            <key>praries</key> +                <string>prairies</string> +            <key>pratice</key> +                <string>practice</string> +            <key>preample</key> +                <string>preamble</string> +            <key>precedessor</key> +                <string>predecessor</string> +            <key>preceed</key> +                <string>precede</string> +            <key>preceeded</key> +                <string>preceded</string> +            <key>preceeding</key> +                <string>preceding</string> +            <key>preceeds</key> +                <string>precedes</string> +            <key>precentage</key> +                <string>percentage</string> +            <key>precice</key> +                <string>precise</string> +            <key>precisly</key> +                <string>precisely</string> +            <key>precurser</key> +                <string>precursor</string> +            <key>predecesors</key> +                <string>predecessors</string> +            <key>predicatble</key> +                <string>predictable</string> +            <key>predicitons</key> +                <string>predictions</string> +            <key>predomiantly</key> +                <string>predominately</string> +            <key>prefered</key> +                <string>preferred</string> +            <key>prefering</key> +                <string>preferring</string> +            <key>preferrably</key> +                <string>preferably</string> +            <key>pregancies</key> +                <string>pregnancies</string> +            <key>preiod</key> +                <string>period</string> +            <key>preliferation</key> +                <string>proliferation</string> +            <key>premeire</key> +                <string>premiere</string> +            <key>premeired</key> +                <string>premiered</string> +            <key>premillenial</key> +                <string>premillennial</string> +            <key>preminence</key> +                <string>preeminence</string> +            <key>premission</key> +                <string>permission</string> +            <key>preocupation</key> +                <string>preoccupation</string> +            <key>prepair</key> +                <string>prepare</string> +            <key>prepartion</key> +                <string>preparation</string> +            <key>prepatory</key> +                <string>preparatory</string> +            <key>preperation</key> +                <string>preparation</string> +            <key>preperations</key> +                <string>preparations</string> +            <key>preriod</key> +                <string>period</string> +            <key>presedential</key> +                <string>presidential</string> +            <key>presense</key> +                <string>presence</string> +            <key>presidenital</key> +                <string>presidential</string> +            <key>presidental</key> +                <string>presidential</string> +            <key>presitgious</key> +                <string>prestigious</string> +            <key>prespective</key> +                <string>perspective</string> +            <key>prestigeous</key> +                <string>prestigious</string> +            <key>prestigous</key> +                <string>prestigious</string> +            <key>presumabely</key> +                <string>presumably</string> +            <key>presumibly</key> +                <string>presumably</string> +            <key>pretection</key> +                <string>protection</string> +            <key>prevelant</key> +                <string>prevalent</string> +            <key>preverse</key> +                <string>perverse</string> +            <key>previvous</key> +                <string>previous</string> +            <key>pricipal</key> +                <string>principal</string> +            <key>priciple</key> +                <string>principle</string> +            <key>priestood</key> +                <string>priesthood</string> +            <key>primarly</key> +                <string>primarily</string> +            <key>primative</key> +                <string>primitive</string> +            <key>primatively</key> +                <string>primitively</string> +            <key>primatives</key> +                <string>primitives</string> +            <key>primordal</key> +                <string>primordial</string> +            <key>priveledges</key> +                <string>privileges</string> +            <key>privelege</key> +                <string>privilege</string> +            <key>priveleged</key> +                <string>privileged</string> +            <key>priveleges</key> +                <string>privileges</string> +            <key>privelige</key> +                <string>privilege</string> +            <key>priveliged</key> +                <string>privileged</string> +            <key>priveliges</key> +                <string>privileges</string> +            <key>privelleges</key> +                <string>privileges</string> +            <key>privilage</key> +                <string>privilege</string> +            <key>priviledge</key> +                <string>privilege</string> +            <key>priviledges</key> +                <string>privileges</string> +            <key>privledge</key> +                <string>privilege</string> +            <key>privte</key> +                <string>private</string> +            <key>probabilaty</key> +                <string>probability</string> +            <key>probablistic</key> +                <string>probabilistic</string> +            <key>probablly</key> +                <string>probably</string> +            <key>probalibity</key> +                <string>probability</string> +            <key>probaly</key> +                <string>probably</string> +            <key>probelm</key> +                <string>problem</string> +            <key>proccess</key> +                <string>process</string> +            <key>proccessing</key> +                <string>processing</string> +            <key>procede</key> +                <string>proceed</string> +            <key>proceded</key> +                <string>proceeded</string> +            <key>procedes</key> +                <string>proceeds</string> +            <key>procedger</key> +                <string>procedure</string> +            <key>proceding</key> +                <string>proceeding</string> +            <key>procedings</key> +                <string>proceedings</string> +            <key>proceedure</key> +                <string>procedure</string> +            <key>proces</key> +                <string>process</string> +            <key>processer</key> +                <string>processor</string> +            <key>proclaimation</key> +                <string>proclamation</string> +            <key>proclamed</key> +                <string>proclaimed</string> +            <key>proclaming</key> +                <string>proclaiming</string> +            <key>proclomation</key> +                <string>proclamation</string> +            <key>profesion</key> +                <string>profession</string> +            <key>profesor</key> +                <string>professor</string> +            <key>professer</key> +                <string>professor</string> +            <key>proffesed</key> +                <string>professed</string> +            <key>proffesion</key> +                <string>profession</string> +            <key>proffesional</key> +                <string>professional</string> +            <key>proffesor</key> +                <string>professor</string> +            <key>profilic</key> +                <string>prolific</string> +            <key>progessed</key> +                <string>progressed</string> +            <key>programable</key> +                <string>programmable</string> +            <key>progrom</key> +                <string>program</string> +            <key>progroms</key> +                <string>programs</string> +            <key>prohabition</key> +                <string>prohibition</string> +            <key>prologomena</key> +                <string>prolegomena</string> +            <key>prominance</key> +                <string>prominence</string> +            <key>prominant</key> +                <string>prominent</string> +            <key>prominantly</key> +                <string>prominently</string> +            <key>prominately</key> +                <string>prominently</string> +            <key>promiscous</key> +                <string>promiscuous</string> +            <key>promotted</key> +                <string>promoted</string> +            <key>pronomial</key> +                <string>pronominal</string> +            <key>pronouced</key> +                <string>pronounced</string> +            <key>pronounched</key> +                <string>pronounced</string> +            <key>pronounciation</key> +                <string>pronunciation</string> +            <key>proove</key> +                <string>prove</string> +            <key>prooved</key> +                <string>proved</string> +            <key>prophacy</key> +                <string>prophecy</string> +            <key>propietary</key> +                <string>proprietary</string> +            <key>propmted</key> +                <string>prompted</string> +            <key>propoganda</key> +                <string>propaganda</string> +            <key>propogate</key> +                <string>propagate</string> +            <key>propogates</key> +                <string>propagates</string> +            <key>propogation</key> +                <string>propagation</string> +            <key>propostion</key> +                <string>proposition</string> +            <key>propotions</key> +                <string>proportions</string> +            <key>propper</key> +                <string>proper</string> +            <key>propperly</key> +                <string>properly</string> +            <key>proprietory</key> +                <string>proprietary</string> +            <key>proseletyzing</key> +                <string>proselytizing</string> +            <key>protaganist</key> +                <string>protagonist</string> +            <key>protaganists</key> +                <string>protagonists</string> +            <key>protocal</key> +                <string>protocol</string> +            <key>protoganist</key> +                <string>protagonist</string> +            <key>protrayed</key> +                <string>portrayed</string> +            <key>protruberance</key> +                <string>protuberance</string> +            <key>protruberances</key> +                <string>protuberances</string> +            <key>prouncements</key> +                <string>pronouncements</string> +            <key>provacative</key> +                <string>provocative</string> +            <key>provded</key> +                <string>provided</string> +            <key>provicial</key> +                <string>provincial</string> +            <key>provinicial</key> +                <string>provincial</string> +            <key>provisiosn</key> +                <string>provision</string> +            <key>provisonal</key> +                <string>provisional</string> +            <key>proximty</key> +                <string>proximity</string> +            <key>pseudononymous</key> +                <string>pseudonymous</string> +            <key>pseudonyn</key> +                <string>pseudonym</string> +            <key>psuedo</key> +                <string>pseudo</string> +            <key>psycology</key> +                <string>psychology</string> +            <key>psyhic</key> +                <string>psychic</string> +            <key>pubilsher</key> +                <string>publisher</string> +            <key>pubisher</key> +                <string>publisher</string> +            <key>publiaher</key> +                <string>publisher</string> +            <key>publically</key> +                <string>publicly</string> +            <key>publicaly</key> +                <string>publicly</string> +            <key>publicher</key> +                <string>publisher</string> +            <key>publihser</key> +                <string>publisher</string> +            <key>publisehr</key> +                <string>publisher</string> +            <key>publiser</key> +                <string>publisher</string> +            <key>publisger</key> +                <string>publisher</string> +            <key>publisheed</key> +                <string>published</string> +            <key>publisherr</key> +                <string>publisher</string> +            <key>publishher</key> +                <string>publisher</string> +            <key>publishor</key> +                <string>publisher</string> +            <key>publishre</key> +                <string>publisher</string> +            <key>publissher</key> +                <string>publisher</string> +            <key>publlisher</key> +                <string>publisher</string> +            <key>publsiher</key> +                <string>publisher</string> +            <key>publusher</key> +                <string>publisher</string> +            <key>puchasing</key> +                <string>purchasing</string> +            <key>pulisher</key> +                <string>publisher</string> +            <key>pumkin</key> +                <string>pumpkin</string> +            <key>puplisher</key> +                <string>publisher</string> +            <key>puritannical</key> +                <string>puritanical</string> +            <key>purposedly</key> +                <string>purposely</string> +            <key>purpotedly</key> +                <string>purportedly</string> +            <key>pursuade</key> +                <string>persuade</string> +            <key>pursuaded</key> +                <string>persuaded</string> +            <key>pursuades</key> +                <string>persuades</string> +            <key>pususading</key> +                <string>persuading</string> +            <key>puting</key> +                <string>putting</string> +            <key>pwoer</key> +                <string>power</string> +            <key>pyscic</key> +                <string>psychic</string> +            <key>qtuie</key> +                <string>quiet</string> +            <key>quantaty</key> +                <string>quantity</string> +            <key>quantitiy</key> +                <string>quantity</string> +            <key>quarantaine</key> +                <string>quarantine</string> +            <key>questonable</key> +                <string>questionable</string> +            <key>quicklyu</key> +                <string>quickly</string> +            <key>quinessential</key> +                <string>quintessential</string> +            <key>quitted</key> +                <string>quit</string> +            <key>quizes</key> +                <string>quizzes</string> +            <key>qutie</key> +                <string>quiet</string> +            <key>rabinnical</key> +                <string>rabbinical</string> +            <key>racaus</key> +                <string>raucous</string> +            <key>radiactive</key> +                <string>radioactive</string> +            <key>radify</key> +                <string>ratify</string> +            <key>raelly</key> +                <string>really</string> +            <key>rarified</key> +                <string>rarefied</string> +            <key>reaccurring</key> +                <string>recurring</string> +            <key>reacing</key> +                <string>reaching</string> +            <key>reacll</key> +                <string>recall</string> +            <key>readmition</key> +                <string>readmission</string> +            <key>realitvely</key> +                <string>relatively</string> +            <key>realsitic</key> +                <string>realistic</string> +            <key>realtions</key> +                <string>relations</string> +            <key>realy</key> +                <string>really</string> +            <key>realyl</key> +                <string>really</string> +            <key>reasearch</key> +                <string>research</string> +            <key>rebiulding</key> +                <string>rebuilding</string> +            <key>rebllions</key> +                <string>rebellions</string> +            <key>rebounce</key> +                <string>rebound</string> +            <key>reccomend</key> +                <string>recommend</string> +            <key>reccomendations</key> +                <string>recommendations</string> +            <key>reccomended</key> +                <string>recommended</string> +            <key>reccomending</key> +                <string>recommending</string> +            <key>reccommend</key> +                <string>recommend</string> +            <key>reccommended</key> +                <string>recommended</string> +            <key>reccommending</key> +                <string>recommending</string> +            <key>reccuring</key> +                <string>recurring</string> +            <key>receeded</key> +                <string>receded</string> +            <key>receeding</key> +                <string>receding</string> +            <key>receivedfrom</key> +                <string>received from</string> +            <key>recepient</key> +                <string>recipient</string> +            <key>recepients</key> +                <string>recipients</string> +            <key>receving</key> +                <string>receiving</string> +            <key>rechargable</key> +                <string>rechargeable</string> +            <key>reched</key> +                <string>reached</string> +            <key>recide</key> +                <string>reside</string> +            <key>recided</key> +                <string>resided</string> +            <key>recident</key> +                <string>resident</string> +            <key>recidents</key> +                <string>residents</string> +            <key>reciding</key> +                <string>residing</string> +            <key>reciepents</key> +                <string>recipients</string> +            <key>reciept</key> +                <string>receipt</string> +            <key>recieve</key> +                <string>receive</string> +            <key>recieved</key> +                <string>received</string> +            <key>reciever</key> +                <string>receiver</string> +            <key>recievers</key> +                <string>receivers</string> +            <key>recieves</key> +                <string>receives</string> +            <key>recieving</key> +                <string>receiving</string> +            <key>recipiant</key> +                <string>recipient</string> +            <key>recipiants</key> +                <string>recipients</string> +            <key>recived</key> +                <string>received</string> +            <key>recivership</key> +                <string>receivership</string> +            <key>recogise</key> +                <string>recognise</string> +            <key>recogize</key> +                <string>recognize</string> +            <key>recomend</key> +                <string>recommend</string> +            <key>recomended</key> +                <string>recommended</string> +            <key>recomending</key> +                <string>recommending</string> +            <key>recomends</key> +                <string>recommends</string> +            <key>recommedations</key> +                <string>recommendations</string> +            <key>reconaissance</key> +                <string>reconnaissance</string> +            <key>reconcilation</key> +                <string>reconciliation</string> +            <key>reconized</key> +                <string>recognized</string> +            <key>reconnaisance</key> +                <string>reconnaissance</string> +            <key>reconnaissence</key> +                <string>reconnaissance</string> +            <key>recontructed</key> +                <string>reconstructed</string> +            <key>recordproducer</key> +                <string>record producer</string> +            <key>recquired</key> +                <string>required</string> +            <key>recrational</key> +                <string>recreational</string> +            <key>recrod</key> +                <string>record</string> +            <key>recuiting</key> +                <string>recruiting</string> +            <key>recuring</key> +                <string>recurring</string> +            <key>recurrance</key> +                <string>recurrence</string> +            <key>rediculous</key> +                <string>ridiculous</string> +            <key>reedeming</key> +                <string>redeeming</string> +            <key>reenforced</key> +                <string>reinforced</string> +            <key>refect</key> +                <string>reflect</string> +            <key>refedendum</key> +                <string>referendum</string> +            <key>referal</key> +                <string>referral</string> +            <key>referece</key> +                <string>reference</string> +            <key>refereces</key> +                <string>references</string> +            <key>refered</key> +                <string>referred</string> +            <key>referemce</key> +                <string>reference</string> +            <key>referemces</key> +                <string>references</string> +            <key>referencs</key> +                <string>references</string> +            <key>referenece</key> +                <string>reference</string> +            <key>refereneced</key> +                <string>referenced</string> +            <key>refereneces</key> +                <string>references</string> +            <key>referiang</key> +                <string>referring</string> +            <key>refering</key> +                <string>referring</string> +            <key>refernce</key> +                <string>references</string> +            <key>refernces</key> +                <string>references</string> +            <key>referrence</key> +                <string>reference</string> +            <key>referrences</key> +                <string>references</string> +            <key>referrs</key> +                <string>refers</string> +            <key>reffered</key> +                <string>referred</string> +            <key>refference</key> +                <string>reference</string> +            <key>reffering</key> +                <string>referring</string> +            <key>refrence</key> +                <string>reference</string> +            <key>refrences</key> +                <string>references</string> +            <key>refrers</key> +                <string>refers</string> +            <key>refridgeration</key> +                <string>refrigeration</string> +            <key>refridgerator</key> +                <string>refrigerator</string> +            <key>refromist</key> +                <string>reformist</string> +            <key>refusla</key> +                <string>refusal</string> +            <key>regardes</key> +                <string>regards</string> +            <key>regluar</key> +                <string>regular</string> +            <key>reguarly</key> +                <string>regularly</string> +            <key>regulaion</key> +                <string>regulation</string> +            <key>regulaotrs</key> +                <string>regulators</string> +            <key>regularily</key> +                <string>regularly</string> +            <key>rehersal</key> +                <string>rehearsal</string> +            <key>reicarnation</key> +                <string>reincarnation</string> +            <key>reigining</key> +                <string>reigning</string> +            <key>reknown</key> +                <string>renown</string> +            <key>reknowned</key> +                <string>renowned</string> +            <key>rela</key> +                <string>real</string> +            <key>relaly</key> +                <string>really</string> +            <key>relatiopnship</key> +                <string>relationship</string> +            <key>relativly</key> +                <string>relatively</string> +            <key>relected</key> +                <string>reelected</string> +            <key>releive</key> +                <string>relieve</string> +            <key>releived</key> +                <string>relieved</string> +            <key>releiver</key> +                <string>reliever</string> +            <key>releses</key> +                <string>releases</string> +            <key>relevence</key> +                <string>relevance</string> +            <key>relevent</key> +                <string>relevant</string> +            <key>reliablity</key> +                <string>reliability</string> +            <key>relient</key> +                <string>reliant</string> +            <key>religeous</key> +                <string>religious</string> +            <key>religous</key> +                <string>religious</string> +            <key>religously</key> +                <string>religiously</string> +            <key>relinqushment</key> +                <string>relinquishment</string> +            <key>relitavely</key> +                <string>relatively</string> +            <key>relized</key> +                <string>realized</string> +            <key>relpacement</key> +                <string>replacement</string> +            <key>remaing</key> +                <string>remaining</string> +            <key>remeber</key> +                <string>remember</string> +            <key>rememberable</key> +                <string>memorable</string> +            <key>rememberance</key> +                <string>remembrance</string> +            <key>remembrence</key> +                <string>remembrance</string> +            <key>remenant</key> +                <string>remnant</string> +            <key>remenicent</key> +                <string>reminiscent</string> +            <key>reminent</key> +                <string>remnant</string> +            <key>reminescent</key> +                <string>reminiscent</string> +            <key>reminscent</key> +                <string>reminiscent</string> +            <key>reminsicent</key> +                <string>reminiscent</string> +            <key>rendevous</key> +                <string>rendezvous</string> +            <key>rendezous</key> +                <string>rendezvous</string> +            <key>renedered</key> +                <string>rende</string> +            <key>renewl</key> +                <string>renewal</string> +            <key>rennovate</key> +                <string>renovate</string> +            <key>rennovated</key> +                <string>renovated</string> +            <key>rennovating</key> +                <string>renovating</string> +            <key>rennovation</key> +                <string>renovation</string> +            <key>rentors</key> +                <string>renters</string> +            <key>reoccurrence</key> +                <string>recurrence</string> +            <key>reorganision</key> +                <string>reorganisation</string> +            <key>repatition</key> +                <string>repetition</string> +            <key>repectively</key> +                <string>respectively</string> +            <key>repeition</key> +                <string>repetition</string> +            <key>repentence</key> +                <string>repentance</string> +            <key>repentent</key> +                <string>repentant</string> +            <key>repeteadly</key> +                <string>repeatedly</string> +            <key>repetion</key> +                <string>repetition</string> +            <key>repid</key> +                <string>rapid</string> +            <key>reponse</key> +                <string>response</string> +            <key>reponsible</key> +                <string>responsible</string> +            <key>reportadly</key> +                <string>reportedly</string> +            <key>represantative</key> +                <string>representative</string> +            <key>representive</key> +                <string>representative</string> +            <key>representives</key> +                <string>representatives</string> +            <key>reproducable</key> +                <string>reproducible</string> +            <key>reprtoire</key> +                <string>repertoire</string> +            <key>repsectively</key> +                <string>respectively</string> +            <key>reptition</key> +                <string>repetition</string> +            <key>requirment</key> +                <string>requirement</string> +            <key>requred</key> +                <string>required</string> +            <key>resaurant</key> +                <string>restaurant</string> +            <key>resembelance</key> +                <string>resemblance</string> +            <key>resembes</key> +                <string>resembles</string> +            <key>resemblence</key> +                <string>resemblance</string> +            <key>resevoir</key> +                <string>reservoir</string> +            <key>residental</key> +                <string>residential</string> +            <key>resignement</key> +                <string>resignment</string> +            <key>resistable</key> +                <string>resistible</string> +            <key>resistence</key> +                <string>resistance</string> +            <key>resistent</key> +                <string>resistant</string> +            <key>respectivly</key> +                <string>respectively</string> +            <key>responce</key> +                <string>response</string> +            <key>responibilities</key> +                <string>responsibilities</string> +            <key>responisble</key> +                <string>responsible</string> +            <key>responnsibilty</key> +                <string>responsibility</string> +            <key>responsability</key> +                <string>responsibility</string> +            <key>responsibile</key> +                <string>responsible</string> +            <key>responsibilites</key> +                <string>responsibilities</string> +            <key>responsiblities</key> +                <string>responsibilities</string> +            <key>responsiblity</key> +                <string>responsibility</string> +            <key>ressemblance</key> +                <string>resemblance</string> +            <key>ressemble</key> +                <string>resemble</string> +            <key>ressembled</key> +                <string>resembled</string> +            <key>ressemblence</key> +                <string>resemblance</string> +            <key>ressembling</key> +                <string>resembling</string> +            <key>resssurecting</key> +                <string>resurrecting</string> +            <key>ressurect</key> +                <string>resurrect</string> +            <key>ressurected</key> +                <string>resurrected</string> +            <key>ressurection</key> +                <string>resurrection</string> +            <key>ressurrection</key> +                <string>resurrection</string> +            <key>restarant</key> +                <string>restaurant</string> +            <key>restarants</key> +                <string>restaurants</string> +            <key>restaraunt</key> +                <string>restaurant</string> +            <key>restaraunteur</key> +                <string>restaurateur</string> +            <key>restaraunteurs</key> +                <string>restaurateurs</string> +            <key>restaraunts</key> +                <string>restaurants</string> +            <key>restauranteurs</key> +                <string>restaurateurs</string> +            <key>restauration</key> +                <string>restoration</string> +            <key>restauraunt</key> +                <string>restaurant</string> +            <key>resteraunt</key> +                <string>restaurant</string> +            <key>resteraunts</key> +                <string>restaurants</string> +            <key>resticted</key> +                <string>restricted</string> +            <key>restraunt</key> +                <string>restraint</string> +            <key>resturant</key> +                <string>restaurant</string> +            <key>resturants</key> +                <string>restaurants</string> +            <key>resturaunt</key> +                <string>restaurant</string> +            <key>resturaunts</key> +                <string>restaurants</string> +            <key>resurecting</key> +                <string>resurrecting</string> +            <key>retalitated</key> +                <string>retaliated</string> +            <key>retalitation</key> +                <string>retaliation</string> +            <key>retreive</key> +                <string>retrieve</string> +            <key>returnd</key> +                <string>returned</string> +            <key>revaluated</key> +                <string>reevaluated</string> +            <key>reveiw</key> +                <string>review</string> +            <key>reveral</key> +                <string>reversal</string> +            <key>reversable</key> +                <string>reversible</string> +            <key>revolutionar</key> +                <string>revolutionary</string> +            <key>rewitten</key> +                <string>rewritten</string> +            <key>rewriet</key> +                <string>rewrite</string> +            <key>rference</key> +                <string>reference</string> +            <key>rferences</key> +                <string>references</string> +            <key>rhymme</key> +                <string>rhyme</string> +            <key>rhythem</key> +                <string>rhythm</string> +            <key>rhythim</key> +                <string>rhythm</string> +            <key>rhytmic</key> +                <string>rhythmic</string> +            <key>rigourous</key> +                <string>rigorous</string> +            <key>rininging</key> +                <string>ringing</string> +            <key>rised</key> +                <string>rose</string> +            <key>rococco</key> +                <string>rococo</string> +            <key>rocord</key> +                <string>record</string> +            <key>roomate</key> +                <string>roommate</string> +            <key>rougly</key> +                <string>roughly</string> +            <key>rucuperate</key> +                <string>recuperate</string> +            <key>rudimentatry</key> +                <string>rudimentary</string> +            <key>rulle</key> +                <string>rule</string> +            <key>runing</key> +                <string>running</string> +            <key>runnung</key> +                <string>running</string> +            <key>russina</key> +                <string>Russian</string> +            <key>rwite</key> +                <string>write</string> +            <key>rythem</key> +                <string>rhythm</string> +            <key>rythim</key> +                <string>rhythm</string> +            <key>rythm</key> +                <string>rhythm</string> +            <key>rythmic</key> +                <string>rhythmic</string> +            <key>rythyms</key> +                <string>rhythms</string> +            <key>sacrafice</key> +                <string>sacrifice</string> +            <key>sacreligious</key> +                <string>sacrilegious</string> +            <key>sacrifical</key> +                <string>sacrificial</string> +            <key>saftey</key> +                <string>safety</string> +            <key>safty</key> +                <string>safety</string> +            <key>salery</key> +                <string>salary</string> +            <key>sanctionning</key> +                <string>sanctioning</string> +            <key>sandwhich</key> +                <string>sandwich</string> +            <key>santioned</key> +                <string>sanctioned</string> +            <key>sargant</key> +                <string>sergeant</string> +            <key>sargeant</key> +                <string>sergeant</string> +            <key>satelite</key> +                <string>satellite</string> +            <key>satelites</key> +                <string>satellites</string> +            <key>satisfactority</key> +                <string>satisfactorily</string> +            <key>satric</key> +                <string>satiric</string> +            <key>satrical</key> +                <string>satirical</string> +            <key>satrically</key> +                <string>satirically</string> +            <key>sattelite</key> +                <string>satellite</string> +            <key>sattelites</key> +                <string>satellites</string> +            <key>saught</key> +                <string>sought</string> +            <key>saveing</key> +                <string>saving</string> +            <key>saxaphone</key> +                <string>saxophone</string> +            <key>scaleable</key> +                <string>scalable</string> +            <key>scandanavia</key> +                <string>Scandinavia</string> +            <key>scaricity</key> +                <string>scarcity</string> +            <key>scavanged</key> +                <string>scavenged</string> +            <key>schedual</key> +                <string>schedule</string> +            <key>scholarhip</key> +                <string>scholarship</string> +            <key>scholarstic</key> +                <string>scholastic</string> +            <key>scientfic</key> +                <string>scientific</string> +            <key>scientifc</key> +                <string>scientific</string> +            <key>scientis</key> +                <string>scientist</string> +            <key>scince</key> +                <string>science</string> +            <key>scinece</key> +                <string>science</string> +            <key>scirpt</key> +                <string>script</string> +            <key>scoll</key> +                <string>scroll</string> +            <key>screenwrighter</key> +                <string>screenwriter</string> +            <key>scrutinity</key> +                <string>scrutiny</string> +            <key>scuptures</key> +                <string>sculptures</string> +            <key>seach</key> +                <string>search</string> +            <key>seached</key> +                <string>searched</string> +            <key>seaches</key> +                <string>searches</string> +            <key>secratary</key> +                <string>secretary</string> +            <key>secretery</key> +                <string>secretary</string> +            <key>sedereal</key> +                <string>sidereal</string> +            <key>seeked</key> +                <string>sought</string> +            <key>segementation</key> +                <string>segmentation</string> +            <key>seguoys</key> +                <string>segues</string> +            <key>seige</key> +                <string>siege</string> +            <key>seing</key> +                <string>seeing</string> +            <key>seinor</key> +                <string>senior</string> +            <key>seldomly</key> +                <string>seldom</string> +            <key>senarios</key> +                <string>scenarios</string> +            <key>senstive</key> +                <string>sensitive</string> +            <key>sensure</key> +                <string>censure</string> +            <key>seperate</key> +                <string>separate</string> +            <key>seperated</key> +                <string>separated</string> +            <key>seperately</key> +                <string>separately</string> +            <key>seperates</key> +                <string>separates</string> +            <key>seperating</key> +                <string>separating</string> +            <key>seperation</key> +                <string>separation</string> +            <key>seperatism</key> +                <string>separatism</string> +            <key>seperatist</key> +                <string>separatist</string> +            <key>sepina</key> +                <string>subpoena</string> +            <key>sergent</key> +                <string>sergeant</string> +            <key>settelement</key> +                <string>settlement</string> +            <key>settlment</key> +                <string>settlement</string> +            <key>severeal</key> +                <string>several</string> +            <key>severley</key> +                <string>severely</string> +            <key>severly</key> +                <string>severely</string> +            <key>sevice</key> +                <string>service</string> +            <key>shadasloo</key> +                <string>shadaloo</string> +            <key>shaddow</key> +                <string>shadow</string> +            <key>shadoloo</key> +                <string>shadaloo</string> +            <key>shamen</key> +                <string>shaman</string> +            <key>sheat</key> +                <string>sheath</string> +            <key>sheild</key> +                <string>shield</string> +            <key>sherif</key> +                <string>sheriff</string> +            <key>shineing</key> +                <string>shining</string> +            <key>shiped</key> +                <string>shipped</string> +            <key>shiping</key> +                <string>shipping</string> +            <key>shopkeeepers</key> +                <string>shopkeepers</string> +            <key>shorly</key> +                <string>shortly</string> +            <key>shortwhile</key> +                <string>short while</string> +            <key>shoudl</key> +                <string>should</string> +            <key>shoudln</key> +                <string>shouldn't</string> +            <key>shouldnt</key> +                <string>shouldn't</string> +            <key>shreak</key> +                <string>shriek</string> +            <key>shrinked</key> +                <string>shrunk</string> +            <key>sicne</key> +                <string>since</string> +            <key>sideral</key> +                <string>sidereal</string> +            <key>siezure</key> +                <string>seizure</string> +            <key>siezures</key> +                <string>seizures</string> +            <key>siginificant</key> +                <string>significant</string> +            <key>signficant</key> +                <string>significant</string> +            <key>signficiant</key> +                <string>significant</string> +            <key>signfies</key> +                <string>signifies</string> +            <key>signifantly</key> +                <string>significantly</string> +            <key>significently</key> +                <string>significantly</string> +            <key>signifigant</key> +                <string>significant</string> +            <key>signifigantly</key> +                <string>significantly</string> +            <key>signitories</key> +                <string>signatories</string> +            <key>signitory</key> +                <string>signatory</string> +            <key>similarily</key> +                <string>similarly</string> +            <key>similiar</key> +                <string>similar</string> +            <key>similiarity</key> +                <string>similarity</string> +            <key>similiarly</key> +                <string>similarly</string> +            <key>simmilar</key> +                <string>similar</string> +            <key>simpley</key> +                <string>simply</string> +            <key>simplier</key> +                <string>simpler</string> +            <key>simultanous</key> +                <string>simultaneous</string> +            <key>simultanously</key> +                <string>simultaneously</string> +            <key>sincerley</key> +                <string>sincerely</string> +            <key>singsog</key> +                <string>singsong</string> +            <key>sinse</key> +                <string>since</string> +            <key>skateing</key> +                <string>skating</string> +            <key>slaugterhouses</key> +                <string>slaughterhouses</string> +            <key>slighly</key> +                <string>slightly</string> +            <key>slowy</key> +                <string>slowly</string> +            <key>smae</key> +                <string>same</string> +            <key>smealting</key> +                <string>smelting</string> +            <key>smoe</key> +                <string>some</string> +            <key>sneeks</key> +                <string>sneaks</string> +            <key>snese</key> +                <string>sneeze</string> +            <key>socalism</key> +                <string>socialism</string> +            <key>socities</key> +                <string>societies</string> +            <key>soem</key> +                <string>some</string> +            <key>sofware</key> +                <string>software</string> +            <key>sohw</key> +                <string>show</string> +            <key>soilders</key> +                <string>soldiers</string> +            <key>solatary</key> +                <string>solitary</string> +            <key>soley</key> +                <string>solely</string> +            <key>soliders</key> +                <string>soldiers</string> +            <key>soliliquy</key> +                <string>soliloquy</string> +            <key>soluable</key> +                <string>soluble</string> +            <key>somene</key> +                <string>someone</string> +            <key>somtimes</key> +                <string>sometimes</string> +            <key>somwhere</key> +                <string>somewhere</string> +            <key>sophicated</key> +                <string>sophisticated</string> +            <key>sophmore</key> +                <string>sophomore</string> +            <key>sorceror</key> +                <string>sorcerer</string> +            <key>sorrounding</key> +                <string>surrounding</string> +            <key>sotry</key> +                <string>story</string> +            <key>sotyr</key> +                <string>story</string> +            <key>soudn</key> +                <string>sound</string> +            <key>soudns</key> +                <string>sounds</string> +            <key>sould</key> +                <string>could</string> +            <key>sountrack</key> +                <string>soundtrack</string> +            <key>sourth</key> +                <string>south</string> +            <key>sourthern</key> +                <string>southern</string> +            <key>souvenier</key> +                <string>souvenir</string> +            <key>souveniers</key> +                <string>souvenirs</string> +            <key>soveits</key> +                <string>soviets</string> +            <key>sovereignity</key> +                <string>sovereignty</string> +            <key>soverign</key> +                <string>sovereign</string> +            <key>soverignity</key> +                <string>sovereignty</string> +            <key>soverignty</key> +                <string>sovereignty</string> +            <key>spainish</key> +                <string>Spanish</string> +            <key>speach</key> +                <string>speech</string> +            <key>specfic</key> +                <string>specific</string> +            <key>speciallized</key> +                <string>specialized</string> +            <key>specifiying</key> +                <string>specifying</string> +            <key>speciman</key> +                <string>specimen</string> +            <key>spectauclar</key> +                <string>spectacular</string> +            <key>spectaulars</key> +                <string>spectaculars</string> +            <key>spectum</key> +                <string>spectrum</string> +            <key>speices</key> +                <string>species</string> +            <key>spendour</key> +                <string>splendour</string> +            <key>spermatozoan</key> +                <string>spermatozoon</string> +            <key>spoace</key> +                <string>space</string> +            <key>sponser</key> +                <string>sponsor</string> +            <key>sponsered</key> +                <string>sponsored</string> +            <key>spontanous</key> +                <string>spontaneous</string> +            <key>sponzored</key> +                <string>sponsored</string> +            <key>spoonfulls</key> +                <string>spoonfuls</string> +            <key>sppeches</key> +                <string>speeches</string> +            <key>spreaded</key> +                <string>spread</string> +            <key>sprech</key> +                <string>speech</string> +            <key>spred</key> +                <string>spread</string> +            <key>spriritual</key> +                <string>spiritual</string> +            <key>spritual</key> +                <string>spiritual</string> +            <key>sqaure</key> +                <string>square</string> +            <key>stablility</key> +                <string>stability</string> +            <key>stainlees</key> +                <string>stainless</string> +            <key>staion</key> +                <string>station</string> +            <key>standars</key> +                <string>standards</string> +            <key>stange</key> +                <string>strange</string> +            <key>startegic</key> +                <string>strategic</string> +            <key>startegies</key> +                <string>strategies</string> +            <key>startegy</key> +                <string>strategy</string> +            <key>stateman</key> +                <string>statesman</string> +            <key>statememts</key> +                <string>statements</string> +            <key>statment</key> +                <string>statement</string> +            <key>steriods</key> +                <string>steroids</string> +            <key>sterotypes</key> +                <string>stereotypes</string> +            <key>stilus</key> +                <string>stylus</string> +            <key>stingent</key> +                <string>stringent</string> +            <key>stiring</key> +                <string>stirring</string> +            <key>stirrs</key> +                <string>stirs</string> +            <key>stlye</key> +                <string>style</string> +            <key>stomache</key> +                <string>stomach</string> +            <key>stong</key> +                <string>strong</string> +            <key>stopry</key> +                <string>story</string> +            <key>storeis</key> +                <string>stories</string> +            <key>storise</key> +                <string>stories</string> +            <key>stornegst</key> +                <string>strongest</string> +            <key>stoyr</key> +                <string>story</string> +            <key>stpo</key> +                <string>stop</string> +            <key>stradegies</key> +                <string>strategies</string> +            <key>stradegy</key> +                <string>strategy</string> +            <key>strat</key> +                <string>start</string> +            <key>stratagically</key> +                <string>strategically</string> +            <key>streemlining</key> +                <string>streamlining</string> +            <key>stregth</key> +                <string>strength</string> +            <key>strenghen</key> +                <string>strengthen</string> +            <key>strenghened</key> +                <string>strengthened</string> +            <key>strenghening</key> +                <string>strengthening</string> +            <key>strenght</key> +                <string>strength</string> +            <key>strenghten</key> +                <string>strengthen</string> +            <key>strenghtened</key> +                <string>strengthened</string> +            <key>strenghtening</key> +                <string>strengthening</string> +            <key>strengtened</key> +                <string>strengthened</string> +            <key>strenous</key> +                <string>strenuous</string> +            <key>strictist</key> +                <string>strictest</string> +            <key>strikely</key> +                <string>strikingly</string> +            <key>strnad</key> +                <string>strand</string> +            <key>stroy</key> +                <string>story</string> +            <key>structual</key> +                <string>structural</string> +            <key>stubborness</key> +                <string>stubbornness</string> +            <key>stucture</key> +                <string>structure</string> +            <key>stuctured</key> +                <string>structured</string> +            <key>studdy</key> +                <string>study</string> +            <key>studing</key> +                <string>studying</string> +            <key>stuggling</key> +                <string>struggling</string> +            <key>sturcture</key> +                <string>structure</string> +            <key>subcatagories</key> +                <string>subcategories</string> +            <key>subcatagory</key> +                <string>subcategory</string> +            <key>subconsiously</key> +                <string>subconsciously</string> +            <key>subjudgation</key> +                <string>subjugation</string> +            <key>submachne</key> +                <string>submachine</string> +            <key>subpecies</key> +                <string>subspecies</string> +            <key>subsidary</key> +                <string>subsidiary</string> +            <key>subsiduary</key> +                <string>subsidiary</string> +            <key>subsquent</key> +                <string>subsequent</string> +            <key>subsquently</key> +                <string>subsequently</string> +            <key>substace</key> +                <string>substance</string> +            <key>substancial</key> +                <string>substantial</string> +            <key>substatial</key> +                <string>substantial</string> +            <key>substituded</key> +                <string>substituted</string> +            <key>substract</key> +                <string>subtract</string> +            <key>substracted</key> +                <string>subtracted</string> +            <key>substracting</key> +                <string>subtracting</string> +            <key>substraction</key> +                <string>subtraction</string> +            <key>substracts</key> +                <string>subtracts</string> +            <key>subtances</key> +                <string>substances</string> +            <key>subterranian</key> +                <string>subterranean</string> +            <key>suburburban</key> +                <string>suburban</string> +            <key>succceeded</key> +                <string>succeeded</string> +            <key>succcesses</key> +                <string>successes</string> +            <key>succedded</key> +                <string>succeeded</string> +            <key>succeded</key> +                <string>succeeded</string> +            <key>succeds</key> +                <string>succeeds</string> +            <key>succesful</key> +                <string>successful</string> +            <key>succesfully</key> +                <string>successfully</string> +            <key>succesfuly</key> +                <string>successfully</string> +            <key>succesion</key> +                <string>succession</string> +            <key>succesive</key> +                <string>successive</string> +            <key>successfull</key> +                <string>successful</string> +            <key>successully</key> +                <string>successfully</string> +            <key>succsess</key> +                <string>success</string> +            <key>succsessfull</key> +                <string>successful</string> +            <key>suceed</key> +                <string>succeed</string> +            <key>suceeded</key> +                <string>succeeded</string> +            <key>suceeding</key> +                <string>succeeding</string> +            <key>suceeds</key> +                <string>succeeds</string> +            <key>sucesful</key> +                <string>successful</string> +            <key>sucesfully</key> +                <string>successfully</string> +            <key>sucesfuly</key> +                <string>successfully</string> +            <key>sucesion</key> +                <string>succession</string> +            <key>sucess</key> +                <string>success</string> +            <key>sucesses</key> +                <string>successes</string> +            <key>sucessful</key> +                <string>successful</string> +            <key>sucessfull</key> +                <string>successful</string> +            <key>sucessfully</key> +                <string>successfully</string> +            <key>sucessfuly</key> +                <string>successfully</string> +            <key>sucession</key> +                <string>succession</string> +            <key>sucessive</key> +                <string>successive</string> +            <key>sucessor</key> +                <string>successor</string> +            <key>sucessot</key> +                <string>successor</string> +            <key>sucide</key> +                <string>suicide</string> +            <key>sucidial</key> +                <string>suicidal</string> +            <key>sufferage</key> +                <string>suffrage</string> +            <key>sufferred</key> +                <string>suffered</string> +            <key>sufferring</key> +                <string>suffering</string> +            <key>sufficent</key> +                <string>sufficient</string> +            <key>sufficently</key> +                <string>sufficiently</string> +            <key>sumary</key> +                <string>summary</string> +            <key>sunglases</key> +                <string>sunglasses</string> +            <key>suop</key> +                <string>soup</string> +            <key>superceeded</key> +                <string>superseded</string> +            <key>superintendant</key> +                <string>superintendent</string> +            <key>suphisticated</key> +                <string>sophisticated</string> +            <key>suplimented</key> +                <string>supplemented</string> +            <key>supose</key> +                <string>suppose</string> +            <key>suposed</key> +                <string>supposed</string> +            <key>suposedly</key> +                <string>supposedly</string> +            <key>suposes</key> +                <string>supposes</string> +            <key>suposing</key> +                <string>supposing</string> +            <key>supplamented</key> +                <string>supplemented</string> +            <key>suppliementing</key> +                <string>supplementing</string> +            <key>suppoed</key> +                <string>supposed</string> +            <key>supposingly</key> +                <string>supposedly</string> +            <key>suppy</key> +                <string>supply</string> +            <key>supress</key> +                <string>suppress</string> +            <key>supressed</key> +                <string>suppressed</string> +            <key>supresses</key> +                <string>suppresses</string> +            <key>supressing</key> +                <string>suppressing</string> +            <key>suprise</key> +                <string>surprise</string> +            <key>suprised</key> +                <string>surprised</string> +            <key>suprising</key> +                <string>surprising</string> +            <key>suprisingly</key> +                <string>surprisingly</string> +            <key>suprize</key> +                <string>surprise</string> +            <key>suprized</key> +                <string>surprised</string> +            <key>suprizing</key> +                <string>surprising</string> +            <key>suprizingly</key> +                <string>surprisingly</string> +            <key>surfce</key> +                <string>surface</string> +            <key>surley</key> +                <string>surely</string> +            <key>suround</key> +                <string>surround</string> +            <key>surounded</key> +                <string>surrounded</string> +            <key>surounding</key> +                <string>surrounding</string> +            <key>suroundings</key> +                <string>surroundings</string> +            <key>surounds</key> +                <string>surrounds</string> +            <key>surplanted</key> +                <string>supplanted</string> +            <key>surpress</key> +                <string>suppress</string> +            <key>surpressed</key> +                <string>suppressed</string> +            <key>surprize</key> +                <string>surprise</string> +            <key>surprized</key> +                <string>surprised</string> +            <key>surprizing</key> +                <string>surprising</string> +            <key>surprizingly</key> +                <string>surprisingly</string> +            <key>surrended</key> +                <string>surrendered</string> +            <key>surrepetitious</key> +                <string>surreptitious</string> +            <key>surrepetitiously</key> +                <string>surreptitiously</string> +            <key>surreptious</key> +                <string>surreptitious</string> +            <key>surreptiously</key> +                <string>surreptitiously</string> +            <key>surronded</key> +                <string>surrounded</string> +            <key>surrouded</key> +                <string>surrounded</string> +            <key>surrouding</key> +                <string>surrounding</string> +            <key>surrundering</key> +                <string>surrendering</string> +            <key>surveilence</key> +                <string>surveillance</string> +            <key>surveill</key> +                <string>surveil</string> +            <key>surveyer</key> +                <string>surveyor</string> +            <key>surviver</key> +                <string>survivor</string> +            <key>survivers</key> +                <string>survivors</string> +            <key>survivied</key> +                <string>survived</string> +            <key>suseptable</key> +                <string>susceptible</string> +            <key>suseptible</key> +                <string>susceptible</string> +            <key>suspention</key> +                <string>suspension</string> +            <key>swaer</key> +                <string>swear</string> +            <key>swaers</key> +                <string>swears</string> +            <key>swepth</key> +                <string>swept</string> +            <key>swiming</key> +                <string>swimming</string> +            <key>syas</key> +                <string>says</string> +            <key>symetrical</key> +                <string>symmetrical</string> +            <key>symetrically</key> +                <string>symmetrically</string> +            <key>symetry</key> +                <string>symmetry</string> +            <key>symettric</key> +                <string>symmetric</string> +            <key>symmetral</key> +                <string>symmetric</string> +            <key>symmetricaly</key> +                <string>symmetrically</string> +            <key>synagouge</key> +                <string>synagogue</string> +            <key>syncronization</key> +                <string>synchronization</string> +            <key>synonomous</key> +                <string>synonymous</string> +            <key>synonymns</key> +                <string>synonyms</string> +            <key>synphony</key> +                <string>symphony</string> +            <key>syphyllis</key> +                <string>syphilis</string> +            <key>sypmtoms</key> +                <string>symptoms</string> +            <key>syrap</key> +                <string>syrup</string> +            <key>sysmatically</key> +                <string>systematically</string> +            <key>sytem</key> +                <string>system</string> +            <key>sytle</key> +                <string>style</string> +            <key>tabacco</key> +                <string>tobacco</string> +            <key>tahn</key> +                <string>than</string> +            <key>taht</key> +                <string>that</string> +            <key>talekd</key> +                <string>talked</string> +            <key>targetted</key> +                <string>targeted</string> +            <key>targetting</key> +                <string>targeting</string> +            <key>tast</key> +                <string>taste</string> +            <key>tath</key> +                <string>that</string> +            <key>tattooes</key> +                <string>tattoos</string> +            <key>taxanomic</key> +                <string>taxonomic</string> +            <key>taxanomy</key> +                <string>taxonomy</string> +            <key>teached</key> +                <string>taught</string> +            <key>techician</key> +                <string>technician</string> +            <key>techicians</key> +                <string>technicians</string> +            <key>techiniques</key> +                <string>techniques</string> +            <key>technitian</key> +                <string>technician</string> +            <key>technnology</key> +                <string>technology</string> +            <key>technolgy</key> +                <string>technology</string> +            <key>teh</key> +                <string>the</string> +            <key>tehy</key> +                <string>they</string> +            <key>telelevision</key> +                <string>television</string> +            <key>televsion</key> +                <string>television</string> +            <key>telphony</key> +                <string>telephony</string> +            <key>temerature</key> +                <string>temperature</string> +            <key>tempalte</key> +                <string>template</string> +            <key>tempaltes</key> +                <string>templates</string> +            <key>temparate</key> +                <string>temperate</string> +            <key>temperarily</key> +                <string>temporarily</string> +            <key>temperment</key> +                <string>temperament</string> +            <key>tempertaure</key> +                <string>temperature</string> +            <key>temperture</key> +                <string>temperature</string> +            <key>temprary</key> +                <string>temporary</string> +            <key>tenacle</key> +                <string>tentacle</string> +            <key>tenacles</key> +                <string>tentacles</string> +            <key>tendacy</key> +                <string>tendency</string> +            <key>tendancies</key> +                <string>tendencies</string> +            <key>tendancy</key> +                <string>tendency</string> +            <key>tennisplayer</key> +                <string>tennis player</string> +            <key>tepmorarily</key> +                <string>temporarily</string> +            <key>terrestial</key> +                <string>terrestrial</string> +            <key>terriories</key> +                <string>territories</string> +            <key>terriory</key> +                <string>territory</string> +            <key>territorist</key> +                <string>terrorist</string> +            <key>territoy</key> +                <string>territory</string> +            <key>terroist</key> +                <string>terrorist</string> +            <key>testiclular</key> +                <string>testicular</string> +            <key>tghe</key> +                <string>the</string> +            <key>thast</key> +                <string>that's</string> +            <key>theather</key> +                <string>theater</string> +            <key>theese</key> +                <string>these</string> +            <key>theif</key> +                <string>thief</string> +            <key>theives</key> +                <string>thieves</string> +            <key>themselfs</key> +                <string>themselves</string> +            <key>themslves</key> +                <string>themselves</string> +            <key>ther</key> +                <string>there</string> +            <key>therafter</key> +                <string>thereafter</string> +            <key>therby</key> +                <string>thereby</string> +            <key>theri</key> +                <string>their</string> +            <key>theyre</key> +                <string>they're</string> +            <key>thgat</key> +                <string>that</string> +            <key>thge</key> +                <string>the</string> +            <key>thier</key> +                <string>their</string> +            <key>thign</key> +                <string>thing</string> +            <key>thigns</key> +                <string>things</string> +            <key>thigsn</key> +                <string>things</string> +            <key>thikn</key> +                <string>think</string> +            <key>thikning</key> +                <string>thinking</string> +            <key>thikns</key> +                <string>thinks</string> +            <key>thiunk</key> +                <string>think</string> +            <key>thn</key> +                <string>then</string> +            <key>thna</key> +                <string>than</string> +            <key>thne</key> +                <string>then</string> +            <key>thnig</key> +                <string>thing</string> +            <key>thnigs</key> +                <string>things</string> +            <key>thoughout</key> +                <string>throughout</string> +            <key>threatend</key> +                <string>threatened</string> +            <key>threatning</key> +                <string>threatening</string> +            <key>threee</key> +                <string>three</string> +            <key>threshhold</key> +                <string>threshold</string> +            <key>thrid</key> +                <string>third</string> +            <key>throrough</key> +                <string>thorough</string> +            <key>throughly</key> +                <string>thoroughly</string> +            <key>throught</key> +                <string>throat</string> +            <key>througout</key> +                <string>throughout</string> +            <key>thru</key> +                <string>through</string> +            <key>thsi</key> +                <string>this</string> +            <key>thsoe</key> +                <string>those</string> +            <key>thta</key> +                <string>that</string> +            <key>thyat</key> +                <string>that</string> +            <key>tiem</key> +                <string>time</string> +            <key>tihkn</key> +                <string>think</string> +            <key>tihs</key> +                <string>this</string> +            <key>timne</key> +                <string>time</string> +            <key>tiome</key> +                <string>time</string> +            <key>tje</key> +                <string>the</string> +            <key>tjhe</key> +                <string>the</string> +            <key>tjpanishad</key> +                <string>upanishad</string> +            <key>tkae</key> +                <string>take</string> +            <key>tkaes</key> +                <string>takes</string> +            <key>tkaing</key> +                <string>taking</string> +            <key>tlaking</key> +                <string>talking</string> +            <key>tobbaco</key> +                <string>tobacco</string> +            <key>todays</key> +                <string>today's</string> +            <key>todya</key> +                <string>today</string> +            <key>toghether</key> +                <string>together</string> +            <key>toke</key> +                <string>took</string> +            <key>tolerence</key> +                <string>tolerance</string> +            <key>tomatos</key> +                <string>tomatoes</string> +            <key>tommorow</key> +                <string>tomorrow</string> +            <key>tommorrow</key> +                <string>tomorrow</string> +            <key>tongiht</key> +                <string>tonight</string> +            <key>toriodal</key> +                <string>toroidal</string> +            <key>tormenters</key> +                <string>tormentors</string> +            <key>tornadoe</key> +                <string>tornado</string> +            <key>torpeados</key> +                <string>torpedoes</string> +            <key>torpedos</key> +                <string>torpedoes</string> +            <key>tothe</key> +                <string>to the</string> +            <key>toubles</key> +                <string>troubles</string> +            <key>tounge</key> +                <string>tongue</string> +            <key>tourch</key> +                <string>torch</string> +            <key>towords</key> +                <string>towards</string> +            <key>towrad</key> +                <string>toward</string> +            <key>tradionally</key> +                <string>traditionally</string> +            <key>traditionaly</key> +                <string>traditionally</string> +            <key>traditionnal</key> +                <string>traditional</string> +            <key>traditition</key> +                <string>tradition</string> +            <key>tradtionally</key> +                <string>traditionally</string> +            <key>trafficed</key> +                <string>trafficked</string> +            <key>trafficing</key> +                <string>trafficking</string> +            <key>trafic</key> +                <string>traffic</string> +            <key>trancendent</key> +                <string>transcendent</string> +            <key>trancending</key> +                <string>transcending</string> +            <key>tranform</key> +                <string>transform</string> +            <key>tranformed</key> +                <string>transformed</string> +            <key>transcendance</key> +                <string>transcendence</string> +            <key>transcendant</key> +                <string>transcendent</string> +            <key>transcendentational</key> +                <string>transcendental</string> +            <key>transcripting</key> +                <string>transcribing</string> +            <key>transending</key> +                <string>transcending</string> +            <key>transesxuals</key> +                <string>transsexuals</string> +            <key>transfered</key> +                <string>transferred</string> +            <key>transfering</key> +                <string>transferring</string> +            <key>transformaton</key> +                <string>transformation</string> +            <key>transistion</key> +                <string>transition</string> +            <key>translater</key> +                <string>translator</string> +            <key>translaters</key> +                <string>translators</string> +            <key>transmissable</key> +                <string>transmissible</string> +            <key>transporation</key> +                <string>transportation</string> +            <key>tremelo</key> +                <string>tremolo</string> +            <key>tremelos</key> +                <string>tremolos</string> +            <key>triguered</key> +                <string>triggered</string> +            <key>triology</key> +                <string>trilogy</string> +            <key>troling</key> +                <string>trolling</string> +            <key>troup</key> +                <string>troupe</string> +            <key>troups</key> +                <string>troops</string> +            <key>truely</key> +                <string>truly</string> +            <key>trustworthyness</key> +                <string>trustworthiness</string> +            <key>turnk</key> +                <string>trunk</string> +            <key>tust</key> +                <string>trust</string> +            <key>twelth</key> +                <string>twelfth</string> +            <key>twon</key> +                <string>town</string> +            <key>twpo</key> +                <string>two</string> +            <key>tyhat</key> +                <string>that</string> +            <key>tyhe</key> +                <string>they</string> +            <key>typcial</key> +                <string>typical</string> +            <key>typicaly</key> +                <string>typically</string> +            <key>tyranies</key> +                <string>tyrannies</string> +            <key>tyrany</key> +                <string>tyranny</string> +            <key>tyrranies</key> +                <string>tyrannies</string> +            <key>tyrrany</key> +                <string>tyranny</string> +            <key>ubiquitious</key> +                <string>ubiquitous</string> +            <key>ublisher</key> +                <string>publisher</string> +            <key>uise</key> +                <string>use</string> +            <key>ultimely</key> +                <string>ultimately</string> +            <key>unacompanied</key> +                <string>unaccompanied</string> +            <key>unahppy</key> +                <string>unhappy</string> +            <key>unanymous</key> +                <string>unanimous</string> +            <key>unathorised</key> +                <string>unauthorised</string> +            <key>unavailible</key> +                <string>unavailable</string> +            <key>unballance</key> +                <string>unbalance</string> +            <key>unbeknowst</key> +                <string>unbeknownst</string> +            <key>unbeleivable</key> +                <string>unbelievable</string> +            <key>uncertainity</key> +                <string>uncertainty</string> +            <key>unchallengable</key> +                <string>unchallengeable</string> +            <key>unchangable</key> +                <string>unchangeable</string> +            <key>uncompetive</key> +                <string>uncompetitive</string> +            <key>unconcious</key> +                <string>unconscious</string> +            <key>unconciousness</key> +                <string>unconsciousness</string> +            <key>unconfortability</key> +                <string>discomfort</string> +            <key>uncontitutional</key> +                <string>unconstitutional</string> +            <key>unconvential</key> +                <string>unconventional</string> +            <key>undecideable</key> +                <string>undecidable</string> +            <key>understoon</key> +                <string>understood</string> +            <key>undesireable</key> +                <string>undesirable</string> +            <key>undetecable</key> +                <string>undetectable</string> +            <key>undoubtely</key> +                <string>undoubtedly</string> +            <key>undreground</key> +                <string>underground</string> +            <key>uneccesary</key> +                <string>unnecessary</string> +            <key>unecessary</key> +                <string>unnecessary</string> +            <key>unequalities</key> +                <string>inequalities</string> +            <key>unforetunately</key> +                <string>unfortunately</string> +            <key>unforgetable</key> +                <string>unforgettable</string> +            <key>unforgiveable</key> +                <string>unforgivable</string> +            <key>unfortunatley</key> +                <string>unfortunately</string> +            <key>unfortunatly</key> +                <string>unfortunately</string> +            <key>unfourtunately</key> +                <string>unfortunately</string> +            <key>unihabited</key> +                <string>uninhabited</string> +            <key>unilateraly</key> +                <string>unilaterally</string> +            <key>unilatreal</key> +                <string>unilateral</string> +            <key>unilatreally</key> +                <string>unilaterally</string> +            <key>uninterruped</key> +                <string>uninterrupted</string> +            <key>uninterupted</key> +                <string>uninterrupted</string> +            <key>univeral</key> +                <string>universal</string> +            <key>univeristies</key> +                <string>universities</string> +            <key>univeristy</key> +                <string>university</string> +            <key>univerity</key> +                <string>university</string> +            <key>universtiy</key> +                <string>university</string> +            <key>univesities</key> +                <string>universities</string> +            <key>univesity</key> +                <string>university</string> +            <key>unkown</key> +                <string>unknown</string> +            <key>unlikey</key> +                <string>unlikely</string> +            <key>unmanouverable</key> +                <string>unmaneuverable</string> +            <key>unmistakeably</key> +                <string>unmistakably</string> +            <key>unneccesarily</key> +                <string>unnecessarily</string> +            <key>unneccesary</key> +                <string>unnecessary</string> +            <key>unneccessarily</key> +                <string>unnecessarily</string> +            <key>unneccessary</key> +                <string>unnecessary</string> +            <key>unnecesarily</key> +                <string>unnecessarily</string> +            <key>unnecesary</key> +                <string>unnecessary</string> +            <key>unoffical</key> +                <string>unofficial</string> +            <key>unoperational</key> +                <string>nonoperational</string> +            <key>unoticeable</key> +                <string>unnoticeable</string> +            <key>unplease</key> +                <string>displease</string> +            <key>unplesant</key> +                <string>unpleasant</string> +            <key>unprecendented</key> +                <string>unprecedented</string> +            <key>unprecidented</key> +                <string>unprecedented</string> +            <key>unrepentent</key> +                <string>unrepentant</string> +            <key>unrepetant</key> +                <string>unrepentant</string> +            <key>unrepetent</key> +                <string>unrepentant</string> +            <key>unsed</key> +                <string>unused</string> +            <key>unsubstanciated</key> +                <string>unsubstantiated</string> +            <key>unsuccesful</key> +                <string>unsuccessful</string> +            <key>unsuccesfully</key> +                <string>unsuccessfully</string> +            <key>unsuccessfull</key> +                <string>unsuccessful</string> +            <key>unsucesful</key> +                <string>unsuccessful</string> +            <key>unsucesfuly</key> +                <string>unsuccessfully</string> +            <key>unsucessful</key> +                <string>unsuccessful</string> +            <key>unsucessfull</key> +                <string>unsuccessful</string> +            <key>unsucessfully</key> +                <string>unsuccessfully</string> +            <key>unsuprised</key> +                <string>unsurprised</string> +            <key>unsuprising</key> +                <string>unsurprising</string> +            <key>unsuprisingly</key> +                <string>unsurprisingly</string> +            <key>unsuprized</key> +                <string>unsurprised</string> +            <key>unsuprizing</key> +                <string>unsurprising</string> +            <key>unsuprizingly</key> +                <string>unsurprisingly</string> +            <key>unsurprized</key> +                <string>unsurprised</string> +            <key>unsurprizing</key> +                <string>unsurprising</string> +            <key>unsurprizingly</key> +                <string>unsurprisingly</string> +            <key>untill</key> +                <string>until</string> +            <key>untranslateable</key> +                <string>untranslatable</string> +            <key>unuseable</key> +                <string>unusable</string> +            <key>unusuable</key> +                <string>unusable</string> +            <key>unviersity</key> +                <string>university</string> +            <key>unwarrented</key> +                <string>unwarranted</string> +            <key>unweildly</key> +                <string>unwieldy</string> +            <key>unwieldly</key> +                <string>unwieldy</string> +            <key>upcomming</key> +                <string>upcoming</string> +            <key>upgradded</key> +                <string>upgraded</string> +            <key>upto</key> +                <string>up to</string> +            <key>usally</key> +                <string>usually</string> +            <key>useage</key> +                <string>usage</string> +            <key>usefull</key> +                <string>useful</string> +            <key>usefuly</key> +                <string>usefully</string> +            <key>useing</key> +                <string>using</string> +            <key>usualy</key> +                <string>usually</string> +            <key>ususally</key> +                <string>usually</string> +            <key>vaccum</key> +                <string>vacuum</string> +            <key>vaccume</key> +                <string>vacuum</string> +            <key>vacinity</key> +                <string>vicinity</string> +            <key>vaguaries</key> +                <string>vagaries</string> +            <key>vaieties</key> +                <string>varieties</string> +            <key>vailidty</key> +                <string>validity</string> +            <key>valetta</key> +                <string>valletta</string> +            <key>valuble</key> +                <string>valuable</string> +            <key>valueable</key> +                <string>valuable</string> +            <key>varations</key> +                <string>variations</string> +            <key>varient</key> +                <string>variant</string> +            <key>variey</key> +                <string>variety</string> +            <key>varing</key> +                <string>varying</string> +            <key>varities</key> +                <string>varieties</string> +            <key>varity</key> +                <string>variety</string> +            <key>vasall</key> +                <string>vassal</string> +            <key>vasalls</key> +                <string>vassals</string> +            <key>vegatarian</key> +                <string>vegetarian</string> +            <key>vegitable</key> +                <string>vegetable</string> +            <key>vegitables</key> +                <string>vegetables</string> +            <key>vegtable</key> +                <string>vegetable</string> +            <key>vehicule</key> +                <string>vehicle</string> +            <key>vell</key> +                <string>well</string> +            <key>venemous</key> +                <string>venomous</string> +            <key>vengance</key> +                <string>vengeance</string> +            <key>vengence</key> +                <string>vengeance</string> +            <key>verfication</key> +                <string>verification</string> +            <key>verison</key> +                <string>version</string> +            <key>verisons</key> +                <string>versions</string> +            <key>vermillion</key> +                <string>vermilion</string> +            <key>versitilaty</key> +                <string>versatility</string> +            <key>versitlity</key> +                <string>versatility</string> +            <key>vetween</key> +                <string>between</string> +            <key>veyr</key> +                <string>very</string> +            <key>vigeur</key> +                <string>vigor</string> +            <key>vigilence</key> +                <string>vigilance</string> +            <key>vigourous</key> +                <string>vigorous</string> +            <key>villian</key> +                <string>villain</string> +            <key>villification</key> +                <string>vilification</string> +            <key>villify</key> +                <string>vilify</string> +            <key>villin</key> +                <string>villain</string> +            <key>vincinity</key> +                <string>vicinity</string> +            <key>violentce</key> +                <string>violence</string> +            <key>virtualy</key> +                <string>virtually</string> +            <key>virutal</key> +                <string>virtual</string> +            <key>virutally</key> +                <string>virtually</string> +            <key>visable</key> +                <string>visible</string> +            <key>visably</key> +                <string>visibly</string> +            <key>visting</key> +                <string>visiting</string> +            <key>vistors</key> +                <string>visitors</string> +            <key>vitories</key> +                <string>victories</string> +            <key>volcanoe</key> +                <string>volcano</string> +            <key>voleyball</key> +                <string>volleyball</string> +            <key>volontary</key> +                <string>voluntary</string> +            <key>volonteer</key> +                <string>volunteer</string> +            <key>volonteered</key> +                <string>volunteered</string> +            <key>volonteering</key> +                <string>volunteering</string> +            <key>volonteers</key> +                <string>volunteers</string> +            <key>volounteer</key> +                <string>volunteer</string> +            <key>volounteered</key> +                <string>volunteered</string> +            <key>volounteering</key> +                <string>volunteering</string> +            <key>volounteers</key> +                <string>volunteers</string> +            <key>volumne</key> +                <string>volume</string> +            <key>vreity</key> +                <string>variety</string> +            <key>vrey</key> +                <string>very</string> +            <key>vriety</key> +                <string>variety</string> +            <key>vulnerablility</key> +                <string>vulnerability</string> +            <key>vyer</key> +                <string>very</string> +            <key>vyre</key> +                <string>very</string> +            <key>waht</key> +                <string>what</string> +            <key>wanna</key> +                <string>want to</string> +            <key>warantee</key> +                <string>warranty</string> +            <key>wardobe</key> +                <string>wardrobe</string> +            <key>warrent</key> +                <string>warrant</string> +            <key>warrriors</key> +                <string>warriors</string> +            <key>wasnt</key> +                <string>wasn't</string> +            <key>wass</key> +                <string>was</string> +            <key>watn</key> +                <string>want</string> +            <key>wayword</key> +                <string>wayward</string> +            <key>weaponary</key> +                <string>weaponry</string> +            <key>weas</key> +                <string>was</string> +            <key>wehn</key> +                <string>when</string> +            <key>weild</key> +                <string>wield</string> +            <key>weilded</key> +                <string>wielded</string> +            <key>wendsay</key> +                <string>Wednesday</string> +            <key>wensday</key> +                <string>Wednesday</string> +            <key>wereabouts</key> +                <string>whereabouts</string> +            <key>whant</key> +                <string>want</string> +            <key>whants</key> +                <string>wants</string> +            <key>whcih</key> +                <string>which</string> +            <key>wheras</key> +                <string>whereas</string> +            <key>wherease</key> +                <string>whereas</string> +            <key>whereever</key> +                <string>wherever</string> +            <key>whic</key> +                <string>which</string> +            <key>whihc</key> +                <string>which</string> +            <key>whith</key> +                <string>with</string> +            <key>whlch</key> +                <string>which</string> +            <key>whn</key> +                <string>when</string> +            <key>wholey</key> +                <string>wholly</string> +            <key>wholy</key> +                <string>holy</string> +            <key>whta</key> +                <string>what</string> +            <key>whther</key> +                <string>whether</string> +            <key>wich</key> +                <string>which</string> +            <key>widesread</key> +                <string>widespread</string> +            <key>wief</key> +                <string>wife</string> +            <key>wierd</key> +                <string>weird</string> +            <key>wiew</key> +                <string>view</string> +            <key>wih</key> +                <string>with</string> +            <key>wiht</key> +                <string>with</string> +            <key>wille</key> +                <string>will</string> +            <key>willingless</key> +                <string>willingness</string> +            <key>wirting</key> +                <string>writing</string> +            <key>withdrawl</key> +                <string>withdrawal</string> +            <key>witheld</key> +                <string>withheld</string> +            <key>withh</key> +                <string>with</string> +            <key>withing</key> +                <string>within</string> +            <key>withold</key> +                <string>withhold</string> +            <key>witht</key> +                <string>with</string> +            <key>witn</key> +                <string>with</string> +            <key>wiull</key> +                <string>will</string> +            <key>wnat</key> +                <string>want</string> +            <key>wnated</key> +                <string>wanted</string> +            <key>wnats</key> +                <string>wants</string> +            <key>wohle</key> +                <string>whole</string> +            <key>wokr</key> +                <string>work</string> +            <key>wokring</key> +                <string>working</string> +            <key>wonderfull</key> +                <string>wonderful</string> +            <key>wont</key> +                <string>won't</string> +            <key>wordlwide</key> +                <string>worldwide</string> +            <key>workststion</key> +                <string>workstation</string> +            <key>worls</key> +                <string>world</string> +            <key>worstened</key> +                <string>worsened</string> +            <key>woudl</key> +                <string>would</string> +            <key>wresters</key> +                <string>wrestlers</string> +            <key>wriet</key> +                <string>write</string> +            <key>writen</key> +                <string>written</string> +            <key>wroet</key> +                <string>wrote</string> +            <key>wrok</key> +                <string>work</string> +            <key>wroking</key> +                <string>working</string> +            <key>wtih</key> +                <string>with</string> +            <key>wupport</key> +                <string>support</string> +            <key>xenophoby</key> +                <string>xenophobia</string> +            <key>yaching</key> +                <string>yachting</string> +            <key>yaer</key> +                <string>year</string> +            <key>yaerly</key> +                <string>yearly</string> +            <key>yaers</key> +                <string>years</string> +            <key>yatch</key> +                <string>yacht</string> +            <key>yearm</key> +                <string>year</string> +            <key>yeasr</key> +                <string>years</string> +            <key>yeild</key> +                <string>yield</string> +            <key>yeilding</key> +                <string>yielding</string> +            <key>yera</key> +                <string>year</string> +            <key>yeras</key> +                <string>years</string> +            <key>yersa</key> +                <string>years</string> +            <key>yotube</key> +                <string>YouTube</string> +            <key>youre</key> +                <string>you're</string> +            <key>youseff</key> +                <string>yousef</string> +            <key>youself</key> +                <string>yourself</string> +            <key>ytou</key> +                <string>you</string> +            <key>yuo</key> +                <string>you</string> +            <key>zeebra</key> +                <string>zebra</string> +            </map> +        <key>enabled</key> +            <integer>1</integer> +        <key>priority</key> +            <integer>5</integer> +        <key>wordStyle</key> +            <integer>1</integer> +        </map> +    </map> +</llsd> diff --git a/indra/newview/llautocorrect.cpp b/indra/newview/llautocorrect.cpp new file mode 100644 index 0000000000..acbb790dff --- /dev/null +++ b/indra/newview/llautocorrect.cpp @@ -0,0 +1,458 @@ +/**  + * @file llautocorrect.cpp + * @brief Auto Correct Manager + * + * $LicenseInfo:firstyear=2012&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2012, Linden Research, Inc. + * + * 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 (at your option) 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" +#include "llautocorrect.h" +#include "llsdserialize.h" +#include "llboost.h" +#include "llcontrol.h" +#include "llviewercontrol.h" +#include "llnotificationsutil.h" + +AutoCorrect* AutoCorrect::sInstance; + +AutoCorrect::AutoCorrect() +{ +	sInstance = this; +	sInstance->loadFromDisk(); +} + +AutoCorrect::~AutoCorrect() +{ +	sInstance = NULL; +} + +void AutoCorrect::autocorrectCallback(LLUIString& inputText, S32& cursorPos) +{ +	static LLCachedControl<bool> perform_autocorrect(gSavedSettings, "AutoCorrect"); +	if(perform_autocorrect) +	{ +		S32 wordStart = 0; +		S32 wordEnd = cursorPos-1; + +		if(wordEnd < 1) +			return; + +		LLWString text = inputText.getWString(); + +		if(text.size()<1) +			return; + +		if(LLWStringUtil::isPartOfWord(text[wordEnd])) +			return;//we only check on word breaks + +		wordEnd--; + +		if(LLWStringUtil::isPartOfWord(text[wordEnd])) +		{ +			while ((wordEnd > 0) && (' ' != text[wordEnd-1])) +			{ +				wordEnd--; +			} + +			wordStart=wordEnd;		 + +			while ((wordEnd < (S32)text.length()) && (' ' != text[wordEnd])) +			{ +				wordEnd++; +			} + +			std::string strLastWord = std::string(text.begin(), text.end()); +			std::string lastTypedWord = strLastWord.substr(wordStart, wordEnd-wordStart); +			std::string correctedWord(replaceWord(lastTypedWord)); + +			if(correctedWord != lastTypedWord) +			{ +				LLWString strNew = utf8str_to_wstring(correctedWord); +				LLWString strOld = utf8str_to_wstring(lastTypedWord); +				int nDiff = strNew.size() - strOld.size(); + +				//int wordStart = regText.find(lastTypedWord); +				text.replace(wordStart,lastTypedWord.length(),strNew); +				inputText = wstring_to_utf8str(text); +				cursorPos+=nDiff; +			} +		} +	} +} + +AutoCorrect* AutoCorrect::getInstance() +{ +	if(sInstance)return sInstance; +	else +	{ +		sInstance = new AutoCorrect(); +		return sInstance; +	} +} +void AutoCorrect::save() +{ +	saveToDisk(mAutoCorrects); +} +std::string AutoCorrect::getFileName() +{ +	std::string path=gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, ""); + +	if (!path.empty()) +	{ +		path = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings_autocorrect.xml"); +	} +	return path;   +} +std::string AutoCorrect::getDefaultFileName() +{ +	std::string path=gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, ""); + +	if (!path.empty()) +	{ +		path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "settings_autocorrect.xml"); +	} +	return path;   +} +LLSD AutoCorrect::exportList(std::string listName) +{ +	LLSD toReturn; +	if(mAutoCorrects.has(listName)) +	{ +		toReturn["listName"]=listName; +		toReturn["data"]=mAutoCorrects[listName]["data"]; +		toReturn["author"]=mAutoCorrects[listName]["author"]; +		toReturn["wordStyle"]=mAutoCorrects[listName]["wordStyle"]; +		toReturn["priority"]=mAutoCorrects[listName]["priority"]; +	} +	return toReturn; +} +BOOL AutoCorrect::addCorrectionList(LLSD newList) +{ +	if(newList.has("listName")) +	{ +		std::string name = newList["listName"]; +		//if(!mAutoCorrects.has(name)){ +		LLSD newPart; +		newPart["data"]=newList["data"]; +		newPart["enabled"]=TRUE; +		newPart["announce"]=FALSE; +		newPart["author"]=newList["author"]; +		newPart["wordStyle"]=newList["wordStyle"]; +		newPart["priority"]=newList["priority"].asInteger(); +		llinfos << "adding new list with settings priority "<<newPart["priority"].asInteger() <<llendl; +		mAutoCorrects[name]=newPart; + +		return TRUE; + +	} +	return FALSE; +} +BOOL AutoCorrect::removeCorrectionList(std::string listName) +{ +	if(mAutoCorrects.has(listName)) +	{ +		mAutoCorrects.erase(listName); +		return TRUE; +	} +	return FALSE; +} +BOOL AutoCorrect::setListEnabled(std::string listName, BOOL enabled) +{ +	if(mAutoCorrects.has(listName)) +	{ +		mAutoCorrects[listName]["enabled"]=enabled; +		return TRUE; +	} +	 +	return FALSE; +} +BOOL AutoCorrect::setListAnnounceeState(std::string listName, BOOL announce) +{ +	 + +	if(mAutoCorrects.has(listName)) +	{ +		mAutoCorrects[listName]["announce"]=announce; +		return TRUE; +	} +	return FALSE; +} +BOOL AutoCorrect::setListStyle(std::string listName, BOOL announce) +{ +	if(mAutoCorrects.has(listName)) +	{ +		mAutoCorrects[listName]["wordStyle"]=announce; +		return TRUE; +	} +	return FALSE; +} +BOOL AutoCorrect::setListPriority(std::string listName, int priority) +{ +	if(mAutoCorrects.has(listName)) +	{ +		mAutoCorrects[listName]["priority"]=priority; +		return TRUE; +	} +	return FALSE; +} +LLSD AutoCorrect::getAutoCorrects() +{ +	//loadFromDisk(); +	return mAutoCorrects; +} +void AutoCorrect::loadFromDisk() +{ +	std::string filename=getFileName(); +	if (filename.empty()) +	{ +		llinfos << "no valid user directory." << llendl;  +	} +	if(!gDirUtilp->fileExists(filename)) +	{ +		std::string defaultName = getDefaultFileName(); +		llinfos << " user settings file doesnt exist, going to try and read default one from "<<defaultName.c_str()<< llendl; + +		if(gDirUtilp->fileExists(defaultName)) +		{ +			LLSD blankllsd; +			llifstream file; +			file.open(defaultName.c_str()); +			if (file.is_open()) +			{ +				LLSDSerialize::fromXMLDocument(blankllsd, file); +			} +			file.close(); +			saveToDisk(blankllsd); +		}else +		saveToDisk(getExampleLLSD()); +	} +	else +	{ +		llifstream file; +		file.open(filename.c_str()); +		if (file.is_open()) +		{ +			LLSDSerialize::fromXML(mAutoCorrects, file); +		} +		file.close(); +	}	 +} +void AutoCorrect::saveToDisk(LLSD newSettings) +{ +	mAutoCorrects=newSettings; +	std::string filename=getFileName(); +	llofstream file; +	file.open(filename.c_str()); +	LLSDSerialize::toPrettyXML(mAutoCorrects, file); +	file.close(); +} +void AutoCorrect::runTest() +{ +	std::string startS("He just abandonned all his abilties"); +	std::string endS = replaceWords(startS); +	llinfos << "!!! Test of autoreplace; start with "<<startS.c_str() << " end with " << endS.c_str()<<llendl; + + +} +BOOL AutoCorrect::saveListToDisk(std::string listName, std::string fileName) +{ +	if(mAutoCorrects.has(listName)) +	{ +		llofstream file; +		file.open(fileName.c_str()); +		LLSDSerialize::toPrettyXML(exportList(listName), file); +		file.close(); +		return TRUE; +	} +	return FALSE; +} +LLSD AutoCorrect::getAutoCorrectEntries(std::string listName) +{ +	LLSD toReturn; +	if(mAutoCorrects.has(listName)) +	{ +		toReturn=mAutoCorrects[listName]; +	} +	return toReturn; +} +std::string AutoCorrect::replaceWord(std::string currentWord) +{ +	static LLCachedControl<bool> perform_autocorrect(gSavedSettings, "AutoCorrect"); +	if(!(perform_autocorrect))return currentWord; +	//loop through priorities +	for(int currentPriority = 10;currentPriority>=0;currentPriority--) +	{ +		LLSD::map_const_iterator loc_it = mAutoCorrects.beginMap(); +		LLSD::map_const_iterator loc_end = mAutoCorrects.endMap(); +		for (; loc_it != loc_end; ++loc_it) +		{ +			const std::string& location = (*loc_it).first; +			//llinfos << "location is "<<location.c_str() << " word is "<<currentWord.c_str()<<llendl; +			const LLSD& loc_map = (*loc_it).second; +			if(loc_map["priority"].asInteger()==currentPriority) +			{ +				if(!loc_map["wordStyle"].asBoolean()) +				{ +					//this means look for partial matches instead of a full word +					if(loc_map["enabled"].asBoolean()) +					{ +						LLSD::map_const_iterator inner_it = loc_map["data"].beginMap(); +						LLSD::map_const_iterator inner_end = loc_map["data"].endMap(); +						for (; inner_it != inner_end; ++inner_it) +						{ +							const std::string& wrong = (*inner_it).first; +							const std::string& right = (*inner_it).second; +							int location = currentWord.find(wrong); +							if(location != std::string::npos) +							{ +								currentWord=currentWord.replace(location,wrong.length(),right); +							} +						} +					} + +				}else +				if((loc_map["data"].has(currentWord))&&(loc_map["enabled"].asBoolean())) +				{ +					std::string replacement = loc_map["data"][currentWord]; +					if(loc_map["announce"].asBoolean()) +					{ +						LLSD args;  +						//"[Before]" has been auto replaced by "[Replacement]" +						//	based on your [ListName] list. +						args["BEFORE"] = currentWord; +						args["LISTNAME"]=location; +						args["REPLACEMENT"]=replacement; +						LLNotificationsUtil::add("AutoReplace",args); +					} +					lldebugs << "found a word in list " << location.c_str() << " and it will replace  " << currentWord.c_str() << " => " << replacement.c_str() << llendl; +					return replacement; +				} +			} +		} +	} +	return currentWord; +} +std::string AutoCorrect::replaceWords(std::string words) +{ +	static LLCachedControl<bool> perform_autocorrect(gSavedSettings, "AutoCorrect"); +	if(!(perform_autocorrect))return words; +	//*TODO update this function to use the "wordStyle" thing, +	//but so far this function is never used, so later + +	boost_tokenizer tokens(words, boost::char_separator<char>(" ")); +	for (boost_tokenizer::iterator token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter) +	{ +		std::string currentWord(*token_iter); +		LLSD::map_const_iterator loc_it = mAutoCorrects.beginMap(); +		LLSD::map_const_iterator loc_end = mAutoCorrects.endMap(); +		for (; loc_it != loc_end; ++loc_it) +		{ +			const std::string& location = (*loc_it).first; +			const LLSD& loc_map = (*loc_it).second; +			if((loc_map["data"].has(currentWord))&&(loc_map["enabled"].asBoolean())) +			{ +				std::string replacement = loc_map["data"][currentWord]; +				if(loc_map["announce"].asBoolean()) +				{ +					LLSD args;  +					//"[Before]" has been auto replaced by "[Replacement]" +					//	based on your [ListName] list. +					args["BEFORE"] = currentWord; +					args["LISTNAME"]=location; +					args["REPLACEMENT"]=replacement; +					LLNotificationsUtil::add("AutoReplace",args); +				} +				lldebugs << "found a word in list " << location.c_str() << " and it will replace  " << currentWord.c_str() << " => " << replacement.c_str() << llendl; +				int wordStart = words.find(currentWord); +				words.replace(wordStart,currentWord.length(),replacement); +				return replaceWords(words);//lol recursion! +			} +		}		 +	} +	return words; +} +BOOL AutoCorrect::addEntryToList(std::string wrong, std::string right, std::string listName) +{ +	// *HACK: Make sure the "Custom" list exists, because the design of this +	// system prevents us from updating it by changing the original file... +	if(mAutoCorrects.has(listName)) +	{ +		mAutoCorrects[listName]["data"][wrong]=right; +		return TRUE; +	} +	else if(listName == "Custom") +	{ +		mAutoCorrects[listName]["announce"] = 0; +		mAutoCorrects[listName]["author"] = "You"; +		mAutoCorrects[listName]["data"][wrong] = right; +		mAutoCorrects[listName]["enabled"] = 1; +		mAutoCorrects[listName]["priority"] = 10; +		mAutoCorrects[listName]["wordStyle"] = 1; +		return TRUE; +	} +		 +	return FALSE; +} +BOOL AutoCorrect::removeEntryFromList(std::string wrong, std::string listName) +{ +	if(mAutoCorrects.has(listName)) +	{ +		if(mAutoCorrects[listName]["data"].has(wrong)) +		{ +			mAutoCorrects[listName]["data"].erase(wrong); +			return TRUE; +		} +	} +	return FALSE; +} + +LLSD AutoCorrect::getExampleLLSD() +{ +	LLSD toReturn; + +	LLSD listone; +	LLSD listtwo; + +	LLSD itemOne; +	itemOne["wrong"]="wrong1"; +	itemOne["right"]="right1"; +	listone[0]=itemOne; + +	LLSD itemTwo; +	itemTwo["wrong"]="wrong2"; +	itemTwo["right"]="right2"; +	listone[1]=itemTwo; + +	toReturn["listOne"]=listone; + + +	itemOne["wrong"]="secondwrong1"; +	itemOne["right"]="secondright1"; +	listone[0]=itemOne; + +	itemTwo["wrong"]="secondwrong2"; +	itemTwo["right"]="secondright2"; +	listone[1]=itemTwo; + +	toReturn["listTwo"]=listone;	 + +	return toReturn; +} + diff --git a/indra/newview/llautocorrect.h b/indra/newview/llautocorrect.h new file mode 100644 index 0000000000..82cf75f3cf --- /dev/null +++ b/indra/newview/llautocorrect.h @@ -0,0 +1,65 @@ +/**  + * @file llautocorrect.h + * @brief Auto Correct Manager + * @copyright Copyright (c) 2011 LordGregGreg Back + * + * 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 (at your option) 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + */ +#ifndef AUTO_CORRECT +#define AUTO_CORRECT + +#include "lllineeditor.h" + +class AutoCorrect : public LLSingleton<AutoCorrect> +{ +	AutoCorrect(); +	~AutoCorrect(); +	static AutoCorrect* sInstance; +public: +	void autocorrectCallback(LLUIString& inputText, S32& cursorPos); +	static AutoCorrect* getInstance(); +	BOOL addCorrectionList(LLSD newList); +	BOOL removeCorrectionList(std::string listName); +	BOOL setListEnabled(std::string listName, BOOL enabled); +	BOOL setListAnnounceeState(std::string listName, BOOL announce); +	BOOL setListPriority(std::string listName, int priority); +	BOOL setListStyle(std::string listName, BOOL announce); +	std::string replaceWords(std::string words); +	std::string replaceWord(std::string currentWord); +	BOOL addEntryToList(std::string wrong, std::string right, std::string listName); +	BOOL removeEntryFromList(std::string wrong, std::string listName); +	BOOL saveListToDisk(std::string listName, std::string fileName); +	LLSD exportList(std::string listName); +	void runTest(); +	LLSD getAutoCorrects(); +	LLSD getAutoCorrectEntries(std::string listName); +	void save(); + +	void loadFromDisk(); + +private: +	friend class LLSingleton<AutoCorrect>; +	void saveToDisk(LLSD newSettings); +	LLSD getExampleLLSD();	 +	std::string getFileName(); +	std::string getDefaultFileName(); + +	LLSD mAutoCorrects; + +}; + + + +#endif  diff --git a/indra/newview/llautocorrectfloater.cpp b/indra/newview/llautocorrectfloater.cpp new file mode 100644 index 0000000000..10bc30c0b4 --- /dev/null +++ b/indra/newview/llautocorrectfloater.cpp @@ -0,0 +1,383 @@ +/**  + * @file llautocorrectfloater.cpp + * @brief Auto Correct List floater + * + * $LicenseInfo:firstyear=2012&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2012, Linden Research, Inc. + * + * 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 (at your option) 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llautocorrectfloater.h" + +#include "llagentdata.h" +#include "llcommandhandler.h" +#include "llfloater.h" +#include "lluictrlfactory.h" +#include "llagent.h" +#include "llpanel.h" +#include "llbutton.h" +#include "llcolorswatch.h" +#include "llcombobox.h" +#include "llview.h" +#include "llhttpclient.h" +#include "llbufferstream.h" +#include "llcheckboxctrl.h" +#include "llviewercontrol.h" + +#include "llui.h" +#include "llcontrol.h" +#include "llscrollingpanellist.h" +#include "llautocorrect.h" +#include "llfilepicker.h" +#include "llfile.h" +#include "llsdserialize.h" +//#include "llfloaterchat.h" +#include "llchat.h" +#include "llinventorymodel.h" +#include "llhost.h" +#include "llassetstorage.h" +#include "roles_constants.h" +#include "llviewertexteditor.h" +#include <boost/tokenizer.hpp> + +#include <iosfwd> +#include "llfloaterreg.h" +#include "llinspecttoast.h" +#include "llnotificationhandler.h" +#include "llnotificationmanager.h" + + +AutoCorrectFloater::AutoCorrectFloater(const LLSD& key) : +LLFloater(key) +{ +} +void AutoCorrectFloater::onClose(bool app_quitting) +{ +	destroy(); +} + +BOOL AutoCorrectFloater::postBuild(void) +{ + +	namesList = getChild<LLScrollListCtrl>("ac_list_name"); +	entryList = getChild<LLScrollListCtrl>("ac_list_entry"); +	mOldText = getChild<LLLineEditor>("ac_old_text"); +	mNewText = getChild<LLLineEditor>("ac_new_text"); + +	childSetCommitCallback("ac_enable",onBoxCommitEnabled,this); + +	childSetCommitCallback("ac_list_enabled",onEntrySettingChange,this); +	childSetCommitCallback("ac_list_show",onEntrySettingChange,this); +	childSetCommitCallback("ac_list_style",onEntrySettingChange,this); +	childSetCommitCallback("ac_priority",onEntrySettingChange,this); +	 + +	 +	updateEnabledStuff(); +	updateNamesList();	 + + +	namesList->setCommitOnSelectionChange(TRUE); +	childSetCommitCallback("ac_list_name", onSelectName, this); +	 +	childSetAction("ac_deletelist",removeList,this); +	childSetAction("ac_rementry",deleteEntry,this); +	childSetAction("ac_exportlist",exportList,this); +	childSetAction("ac_addentry",addEntry,this); +	childSetAction("ac_loadlist",loadList,this); + +	return true; +} + +void AutoCorrectFloater::onSelectName(LLUICtrl* ctrl, void* user_data) +{ +	if ( user_data ) +	{ +		AutoCorrectFloater* self = ( AutoCorrectFloater* )user_data; +		if ( self ) +			self->updateItemsList(); +	} + +} +void AutoCorrectFloater::updateItemsList() +{ +	entryList->deleteAllItems(); +	if((namesList->getAllSelected().size())<=0) +	{ + +		updateListControlsEnabled(FALSE); +		return; +	} + +	updateListControlsEnabled(TRUE); +	std::string listName= namesList->getFirstSelected()->getColumn(0)->getValue().asString(); +	 +	LLSD listData = AutoCorrect::getInstance()->getAutoCorrectEntries(listName); +	childSetValue("ac_list_enabled",listData["enabled"].asBoolean()); +	childSetValue("ac_list_style",listData["wordStyle"].asBoolean()); +	childSetValue("ac_list_show",listData["announce"].asBoolean()); +	childSetValue("ac_text_name",listName); +	childSetValue("ac_text_author",listData["author"]); +	childSetValue("ac_priority",listData["priority"]); +	 +	LLSD autoCorrects = listData["data"]; +	LLSD::map_const_iterator loc_it = autoCorrects.beginMap(); +	LLSD::map_const_iterator loc_end = autoCorrects.endMap(); +	for ( ; loc_it != loc_end; ++loc_it) +	{ +		const std::string& wrong = (*loc_it).first; +		const std::string& right = (*loc_it).second; + +		//std::string lentry(wrong+"=>"+right); + +		LLSD element; +		element["id"] = wrong; +		LLSD& s_column = element["columns"][0]; +		s_column["column"] = "Search"; +		s_column["value"] = wrong; +		s_column["font"] = "SANSSERIF"; +		LLSD& r_column = element["columns"][1]; +		r_column["column"] = "Replace"; +		r_column["value"] = right; +		r_column["font"] = "SANSSERIF"; + +		entryList->addElement(element, ADD_BOTTOM); +	} +	 +} +void AutoCorrectFloater::updateNamesList() +{ +	namesList->deleteAllItems(); +	if(!gSavedSettings.getBOOL("AutoCorrect")) +	{ +		updateItemsList(); +		return; +	} +	LLSD autoCorrects = AutoCorrect::getInstance()->getAutoCorrects(); +	LLSD::map_const_iterator loc_it = autoCorrects.beginMap(); +	LLSD::map_const_iterator loc_end = autoCorrects.endMap(); +	for ( ; loc_it != loc_end; ++loc_it) +	{ +		const std::string& listName = (*loc_it).first; + +		LLSD element; +		element["id"] = listName; +		LLSD& friend_column = element["columns"][0]; +		friend_column["column"] = "Entries"; +		friend_column["value"] = listName; +		//friend_column["font"] = "SANSSERIF"; +		const LLSD& loc_map = (*loc_it).second; +		if(loc_map["enabled"].asBoolean()) +			friend_column["font"] = "SANSSERIF"; +			//friend_column["style"] = "BOLD"; +		else +			friend_column["font"] = "SANSSERIF_SMALL"; +			//friend_column["style"] = "NORMAL"; +		if(namesList) +		namesList->addElement(element, ADD_BOTTOM); +	} +	updateItemsList(); +} +void AutoCorrectFloater::updateListControlsEnabled(BOOL selected) +{ + +		childSetEnabled("ac_text1",selected); +		childSetEnabled("ac_text2",selected); +		childSetEnabled("ac_text_name",selected); +		childSetEnabled("ac_text_author",selected); +		childSetEnabled("ac_list_enabled",selected); +		childSetEnabled("ac_list_show",selected); +		childSetEnabled("ac_list_style",selected); +		childSetEnabled("ac_deletelist",selected); +		childSetEnabled("ac_exportlist",selected); +		childSetEnabled("ac_addentry",selected); +		childSetEnabled("ac_rementry",selected); +		childSetEnabled("ac_priority",selected); +	 +} +void AutoCorrectFloater::updateEnabledStuff() +{ +	BOOL autocorrect = gSavedSettings.getBOOL("AutoCorrect"); +	if(autocorrect) +	{ +		LLCheckBoxCtrl *enBox = getChild<LLCheckBoxCtrl>("ac_enable"); +		enBox->setDisabledColor(LLColor4::red); +		getChild<LLCheckBoxCtrl>("ac_enable")->setEnabledColor(LLColor4(1.0f,0.0f,0.0f,1.0f));		 +	}else +	{ +		getChild<LLCheckBoxCtrl>("ac_enable")->setEnabledColor( +			LLUIColorTable::instance().getColor( "LabelTextColor" )); +	} + +	childSetEnabled("ac_list_name", autocorrect); +	childSetEnabled("ac_list_entry", autocorrect); +	updateListControlsEnabled(autocorrect); +	updateNamesList(); +	AutoCorrect::getInstance()->save(); + +} +void AutoCorrectFloater::setData(void * data) +{ +} +void AutoCorrectFloater::onBoxCommitEnabled(LLUICtrl* caller, void* user_data) +{ +	if ( user_data ) +	{ +		AutoCorrectFloater* self = ( AutoCorrectFloater* )user_data; +		if ( self ) +		{ +			self->updateEnabledStuff(); +		} +	} +} +void AutoCorrectFloater::onEntrySettingChange(LLUICtrl* caller, void* user_data) +{ +	if ( user_data ) +	{ +		AutoCorrectFloater* self = ( AutoCorrectFloater* )user_data; +		if ( self ) +		{ +			std::string listName= self->namesList->getFirstSelected()->getColumn(0)->getValue().asString(); +			AutoCorrect::getInstance()->setListEnabled(listName,self->childGetValue("ac_list_enabled").asBoolean()); +			AutoCorrect::getInstance()->setListAnnounceeState(listName,self->childGetValue("ac_list_show").asBoolean()); +			AutoCorrect::getInstance()->setListStyle(listName,self->childGetValue("ac_list_style").asBoolean()); +			AutoCorrect::getInstance()->setListPriority(listName,self->childGetValue("ac_priority").asInteger()); + +			//sInstance->updateEnabledStuff(); +			self->updateItemsList(); +			AutoCorrect::getInstance()->save(); +		} +	} +} +void AutoCorrectFloater::deleteEntry(void* data) +{ +	if ( data ) +	{ +		AutoCorrectFloater* self = ( AutoCorrectFloater* )data; +		if ( self ) +		{ + +			std::string listName=self->namesList->getFirstSelected()->getColumn(0)->getValue().asString(); + +			if((self->entryList->getAllSelected().size())>0) +			{	 +				std::string wrong= self->entryList->getFirstSelected()->getColumn(0)->getValue().asString(); +   				AutoCorrect::getInstance()->removeEntryFromList(wrong,listName); +				self->updateItemsList(); +				AutoCorrect::getInstance()->save(); +			} +		} +	} +} +void AutoCorrectFloater::loadList(void* data) +{ +	LLFilePicker& picker = LLFilePicker::instance(); + +	if(!picker.getOpenFile( LLFilePicker::FFLOAD_XML) ) +	{return; +	}	 +	llifstream file; +	file.open(picker.getFirstFile().c_str()); +	LLSD blankllsd; +	if (file.is_open()) +	{ +		LLSDSerialize::fromXMLDocument(blankllsd, file); +	} +	file.close(); +	gSavedSettings.setBOOL("AutoCorrect",true); +	AutoCorrect::getInstance()->addCorrectionList(blankllsd); +	if ( data ) +	{ +		AutoCorrectFloater* self = ( AutoCorrectFloater* )data; +		if ( self ) +			self->updateEnabledStuff(); +	} +} +void AutoCorrectFloater::removeList(void* data) +{ +	if ( data ) +	{ +		AutoCorrectFloater* self = ( AutoCorrectFloater* )data; +		if ( self ) +		{ +			std::string listName= self->namesList->getFirstSelected()->getColumn(0)->getValue().asString(); +			AutoCorrect::getInstance()->removeCorrectionList(listName); +			self->updateEnabledStuff(); +		} + +	} +} +void AutoCorrectFloater::exportList(void *data) +{ +	if ( data ) +	{ +		AutoCorrectFloater* self = ( AutoCorrectFloater* )data; +		if ( self ) +		{ +			std::string listName=self->namesList->getFirstSelected()->getColumn(0)->getValue().asString(); + +			LLFilePicker& picker = LLFilePicker::instance(); + +			if(!picker.getSaveFile( LLFilePicker::FFSAVE_XML) ) +			{return; +			}	 +			llofstream file; +			file.open(picker.getFirstFile().c_str()); +			LLSDSerialize::toPrettyXML(AutoCorrect::getInstance()->exportList(listName), file); +			file.close();	 +		} +	 +	} +} +void AutoCorrectFloater::addEntry(void* data) +{ +	if ( data ) +	{ +		AutoCorrectFloater* self = ( AutoCorrectFloater* )data; +		if ( self ) +		{ +			std::string listName= self->namesList->getFirstSelected()->getColumn(0)->getValue().asString(); +			std::string wrong = self->mOldText->getText(); +			std::string right = self->mNewText->getText(); +			if(wrong != "" && right != "") +			{ +				AutoCorrect::getInstance()->addEntryToList(wrong, right, listName); +				self->updateItemsList(); +				AutoCorrect::getInstance()->save(); +			} +		} +	} +} +AutoCorrectFloater* AutoCorrectFloater::showFloater() +{ +	AutoCorrectFloater *floater = dynamic_cast<AutoCorrectFloater*>(LLFloaterReg::getInstance("autocorrect")); +	if(floater) +	{ +		floater->setVisible(true); +		floater->setFrontmost(true); +		floater->center(); +		return floater; +	} +	else +	{ +		LL_WARNS("AutoCorrect") << "Can't find floater!" << LL_ENDL; +		return NULL; +	} +} diff --git a/indra/newview/llautocorrectfloater.h b/indra/newview/llautocorrectfloater.h new file mode 100644 index 0000000000..2a02f6cc82 --- /dev/null +++ b/indra/newview/llautocorrectfloater.h @@ -0,0 +1,75 @@ +/**  + * @file llautocorrectfloater.h + * @brief Auto Correct List floater + * @copyright Copyright (c) 2011 LordGregGreg Back + * + * $LicenseInfo:firstyear=2012&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2012, Linden Research, Inc. + * + * 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 (at your option) 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + * $/LicenseInfo$ + */ + +#ifndef AUTOCORRECTFLOATER_H +#define AUTOCORRECTFLOATER_H + +#include "llfloater.h" +#include "llmediactrl.h" +#include "llscrolllistctrl.h" +#include "lllineeditor.h" + +#include "llviewerinventory.h" +#include <boost/bind.hpp> + +class AutoCorrectFloater :  +public LLFloater +{ +public: +	AutoCorrectFloater(const LLSD& key); + +	/*virtual*/ BOOL postBuild(); +	/*virtual*/ void onClose(bool app_quitting); + +	static AutoCorrectFloater* showFloater(); + +	void setData(void * data); +	void updateEnabledStuff(); +	void updateNamesList(); +	void updateListControlsEnabled(BOOL selected); +	void updateItemsList(); + +	LLScrollListCtrl *namesList; +	LLScrollListCtrl *entryList; +	LLLineEditor* mOldText; +	LLLineEditor* mNewText; +	//LLPanel * empanel; +private: +	//static JCInvDropTarget* mNotecardDropTarget; +	static void onBoxCommitEnabled(LLUICtrl* caller, void* user_data); +	static void onEntrySettingChange(LLUICtrl* caller, void* user_data); +	static void onSelectName(LLUICtrl* caller, void* user_data); +	//static void ResponseItemDrop(LLViewerInventoryItem* item); +	//static void onNotecardLoadComplete(LLVFS *vfs,const LLUUID& asset_uuid,LLAssetType::EType type,void* user_data, S32 status, LLExtStat ext_status); + + +	static void deleteEntry(void* data); +	static void addEntry(void* data); +	static void exportList(void* data); +	static void removeList(void* data); +	static void loadList(void* data); +}; + +#endif  // AUTOCORRECTFLOATER_H diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 173b0e538c..9954878ae4 100755 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -35,7 +35,7 @@  #include "llfloaterpreference.h"  #include "message.h" - +#include "llautocorrectfloater.h"  #include "llagent.h"  #include "llavatarconstants.h"  #include "llcheckboxctrl.h" @@ -354,6 +354,8 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)  	gSavedSettings.getControl("NameTagShowUsernames")->getCommitSignal()->connect(boost::bind(&handleNameTagOptionChanged,  _2));	  	gSavedSettings.getControl("NameTagShowFriends")->getCommitSignal()->connect(boost::bind(&handleNameTagOptionChanged,  _2));	  	gSavedSettings.getControl("UseDisplayNames")->getCommitSignal()->connect(boost::bind(&handleDisplayNamesOptionChanged,  _2)); +	 +	mCommitCallbackRegistrar.add("Pref.ShowAC", boost::bind(&AutoCorrectFloater::showFloater));  	LLAvatarPropertiesProcessor::getInstance()->addObserver( gAgent.getID(), this );  } diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index f67464078b..e300f6f32d 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -56,7 +56,7 @@  #include "llrootview.h"  #include "llspeakers.h"  #include "llviewerchat.h" - +#include "llautocorrect.h"  LLIMFloater::LLIMFloater(const LLUUID& session_id)    : LLTransientDockableFloater(NULL, true, session_id), @@ -255,6 +255,8 @@ BOOL LLIMFloater::postBuild()  	mInputEditor->setMaxTextLength(1023);  	// enable line history support for instant message bar  	mInputEditor->setEnableLineHistory(TRUE); +	// *TODO Establish LineEditor with autocorrect callback +	mInputEditor->setAutocorrectCallback(boost::bind(&AutoCorrect::autocorrectCallback, AutoCorrect::getInstance(), _1, _2));  	LLFontGL* font = LLViewerChat::getChatFont();  	mInputEditor->setFont(font);	 diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index b4224e30e6..07516d4b4f 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -51,6 +51,7 @@  #include "lltranslate.h"  #include "llresizehandle.h" +#include "llautocorrect.h"  S32 LLNearbyChatBar::sLastSpecialChatChannel = 0; @@ -87,6 +88,7 @@ BOOL LLNearbyChatBar::postBuild()  {  	mChatBox = getChild<LLLineEditor>("chat_box"); +	mChatBox->setAutocorrectCallback(boost::bind(&AutoCorrect::autocorrectCallback, AutoCorrect::getInstance(), _1, _2));  	mChatBox->setCommitCallback(boost::bind(&LLNearbyChatBar::onChatBoxCommit, this));  	mChatBox->setKeystrokeCallback(&onChatBoxKeystroke, this);  	mChatBox->setFocusLostCallback(boost::bind(&onChatBoxFocusLost, _1, this)); diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 7fdaac68c8..20face6d89 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -30,7 +30,7 @@  #include "llfloaterreg.h"  #include "llviewerfloaterreg.h" - +#include "llautocorrectfloater.h"  #include "llcompilequeue.h"  #include "llcallfloater.h"  #include "llfasttimerview.h" @@ -170,6 +170,7 @@ void LLViewerFloaterReg::registerFloaters()  	LLFloaterReg::add("about_land", "floater_about_land.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLand>);  	LLFloaterReg::add("appearance", "floater_my_appearance.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);  	LLFloaterReg::add("auction", "floater_auction.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAuction>); +	LLFloaterReg::add("settings_autocorrect", "floater_autocorrect.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<AutoCorrectFloater>);  	LLFloaterReg::add("avatar", "floater_avatar.xml",  (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatar>);  	LLFloaterReg::add("avatar_picker", "floater_avatar_picker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatarPicker>);  	LLFloaterReg::add("avatar_textures", "floater_avatar_textures.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatarTextures>); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 7481414b5c..0aafb6ea73 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -1982,6 +1982,14 @@ class LLAdvancedCompressImage : public view_listener_t  }; +class LLAdvancedShowAutocorrectSettings : public view_listener_t +{ +	bool handleEvent(const LLSD& userdata) +	{ +		LLFloaterReg::showInstance("settings_autocorrect", userdata); +		return true; +	} +};  /////////////////////////  // SHOW DEBUG SETTINGS // @@ -8283,6 +8291,7 @@ void initialize_menus()  	view_listener_t::addMenu(new LLAdvancedToggleShowObjectUpdates(), "Advanced.ToggleShowObjectUpdates");  	view_listener_t::addMenu(new LLAdvancedCheckShowObjectUpdates(), "Advanced.CheckShowObjectUpdates");  	view_listener_t::addMenu(new LLAdvancedCompressImage(), "Advanced.CompressImage"); +	view_listener_t::addMenu(new LLAdvancedShowAutocorrectSettings(), "Advanced.ShowAutocorrectSettings");  	view_listener_t::addMenu(new LLAdvancedShowDebugSettings(), "Advanced.ShowDebugSettings");  	view_listener_t::addMenu(new LLAdvancedEnableViewAdminOptions(), "Advanced.EnableViewAdminOptions");  	view_listener_t::addMenu(new LLAdvancedToggleViewAdminOptions(), "Advanced.ToggleViewAdminOptions"); diff --git a/indra/newview/skins/default/xui/en/floater_autocorrect.xml b/indra/newview/skins/default/xui/en/floater_autocorrect.xml new file mode 100644 index 0000000000..ab6e65c847 --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_autocorrect.xml @@ -0,0 +1,315 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater + border="true" + can_close="true" + can_minimize="true" + bottom="400" + left="300" + can_resize="false" + height="500" + width="400" + name="ac_floater" + title="Autocorrect Settings"> +  <check_box +   bottom_delta="50" +   left_delta="5" +   height="16" +   width="100" +   enabled="true" +   follows="left|top" +   font="SansSerifSmall" +   mouse_opaque="true" +   radio_style="false" +   label="Enable Autocorrect" +   control_name="AutoCorrect" +   name="ac_enable" +   tool_tip="You must have this check box enabled to use any of these settings, it will search your writable text entry, and replace any of the search entries with their replacement"/> +  <button +   bottom_delta="-2" +   left_delta="150" +   height="22" +   width="80" +   enabled="true" +   follows="left|top" +   font="SansSerif" +   mouse_opaque="true" +   halign="center" +   scale_image="true" +   name="ac_loadlist" +   label="Load List.." +   tool_tip="Click this to load a previously exported list from a file."/> +  <view_border +   bottom_delta="10" +   left_delta="100" +   height="40" +   width="120" +   follows="left|top" +   bevel_style="in" +   mouse_opaque="false" +   name="ac_notecard_target"/> +  <text bottom_delta="-18" +   left_delta="0" +   height="16" +   width="120" +   follows="left|top" +   halign="center" +   font="SansSerifSmall" +   mouse_opaque="true" +   name="ac_notecard"> +<!--    Drop a Notecard here +    to load from it.--> +  </text> +  <view_border +   bottom="70" +   left="2" +   height="0" +   width="396" +   follows="left|top" +   bevel_style="none" +   border_thickness="1" +   mouse_opaque="false" +   name="divisor1"/> +  <text +   top="-355" +   left_delta="0" +   height="16" +   width="400" +   follows="left|top" +   halign="center" +   font="SansSerifSmall" +   mouse_opaque="true" +   name="ac_text1"> +   List Name                                                         List Entries +  </text> +  <scroll_list +   bottom_delta="280" +   left_delta="0" +   height="280" +   width="199" +   follows="left|top" +   column_padding="0" +   draw_heading="true" +   multi_select="false" +   name="ac_list_name" +   search_column="1"> +  </scroll_list> +  <scroll_list +   top_delta="0" +   left_delta="199" +   height="180" +   width="198" +   follows="left|top" +   column_padding="0" +   draw_heading="true" +   multi_select="false" +   name="ac_list_entry" +   search_column="1"> +  </scroll_list> +  <view_border +   bottom_delta="20" +   left_delta="10" +   height="16" +   width="180" +   follows="left|top" +   bevel_style="in" +   mouse_opaque="false" +   name="ac_box1"/> +  <text +   bottom_delta="0" +   left_delta="0" +   height="16" +   width="180" +   follows="left|top" +   halign="center" +   font="SansSerifSmall" +   mouse_opaque="true" +   name="ac_text_name"> +   List Name +  </text> +  <text +   bottom_delta="20" +   left_delta="-2" +   height="16" +   width="40" +   follows="left|top" +   halign="center" +   font="SansSerifSmall" +   mouse_opaque="true" +   name="ac_text2"> +   Author: +  </text> +  <view_border +   bottom_delta="-0" +   left_delta="42" +   height="16" +   width="140" +   follows="left|top" +   bevel_style="in" +   mouse_opaque="false" +   name="ac_box2"/> +  <text +   bottom_delta="0" +   left_delta="0" +   height="16" +   width="140" +   follows="left|top" +   halign="center" +   font="SansSerifSmall" +   mouse_opaque="true" +   name="ac_text_author"> +   Author Name +  </text> +  <check_box +   bottom_delta="20" +   left_delta="-32" +   height="16" +   width="100" +   enabled="true" +   follows="left|top" +   font="SansSerifSmall" +   mouse_opaque="true" +   radio_style="false" +   label="Enabled, priority:" +   control_name="ac_enabled" +   name="ac_list_enabled" +   tool_tip="Whether or not you wish to use this particular list."/> +  <spinner +   bottom_delta="-0" +   left_delta="120" +   height="16" +   width="50" +   follows="left|top" +   decimal_digits="0" +   increment="1" +   min_val="0" +   max_val="10" +   mouse_opaque="true" +   label="" +   label_width="0" +   name="ac_priority" +   tool_tip="This number determine what order your list will be used to replace words.  A higher priority means it will be used before lower priority lists."/> +  <check_box +   bottom_delta="20" +   left_delta="-120" +   height="16" +   width="100" +   enabled="true" +   follows="left|top" +   font="SansSerifSmall" +   mouse_opaque="true" +   radio_style="false" +   label="Show Notifications" +   control_name="ac_list_show" +   name="ac_list_show" +   tool_tip="Having this enabled will make a notification pop up every time a word is replaced."/> +  <check_box +   bottom_delta="20" +   left_delta="-0" +   height="16" +   width="100" +   enabled="true" +   follows="left|top" +   font="SansSerifSmall" +   mouse_opaque="true" +   radio_style="false" +   label="Word Style" +   control_name="ac_list_style" +   name="ac_list_style" +   tool_tip="Having this checked means the list is for full words that should be replaced, unchecked means that it will look within words contents as well."/> +  <button +   top="100" +   left="5" +   height="22" +   width="90" +   enabled="true" +   follows="left|top" +   font="SansSerif" +   mouse_opaque="true" +   halign="center" +   scale_image="true" +   name="ac_deletelist" +   label="Delete List" +   tool_tip="This will delete the entire list of words and their replacements, it is not reversible."/> +  <button +   bottom_delta="-0" +   left_delta="95" +   height="22" +   width="90" +   enabled="true" +   follows="left|top" +   font="SansSerif" +   mouse_opaque="true" +   halign="center" +   scale_image="true" +   name="ac_exportlist" +   label="Export List" +   tool_tip="This will save your current list to a file so you can share it with your friends or edit it."/> +  <button +   bottom_delta="0" +   left_delta="110" +   height="22" +   width="90" +   enabled="true" +   follows="left|top" +   font="SansSerif" +   mouse_opaque="true" +   halign="center" +   scale_image="true" +   name="ac_addentry" +   label="Add Entry"/> +  <button +   bottom_delta="0" +   left_delta="95" +   height="22" +   width="90" +   enabled="true" +   follows="left|top" +   font="SansSerif" +   mouse_opaque="true" +   halign="center" +   scale_image="true" +   name="ac_rementry" +   label="Remove Entry"/> +  <text +   type="string" +   length="1" +   follows="left|top" +   height="16" +   layout="topleft" +   left="10" +   top="450" +   width="364"> +   Original text: +  </text> +  <line_editor +   follows="left|top" +   height="23" +   layout="topleft" +   left="100" +   max_length_bytes="255" +   name="ac_old_text" +   top_delta="-5" +   right="-15" +   select_on_focus="true" /> +  <text +   type="string" +   length="1" +   follows="left|top" +   height="16" +   layout="topleft" +   left="10" +   top="475" +   width="364"> +   New text: +  </text> +  <line_editor +   follows="left|top" +   height="23" +   layout="topleft" +   left="100" +   max_length_bytes="255" +   name="ac_new_text" +   top_delta="-5" +   right="-15" +   select_on_focus="true" /> +</floater>
\ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 5ba566b175..ebba8ba35f 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1836,6 +1836,11 @@          <menu_item_separator/>          <menu_item_call +         label="Show Autocorrect Settings"> +         <menu_item_call.on_click +           function="Advanced.ShowAutocorrectSettings" /> +        </menu_item_call> +        <menu_item_call           label="Show Debug Settings"           name="Debug Settings">              <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index afc5b916e7..5680c6e676 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -6764,6 +6764,13 @@ One or more of your Voice Morphs will expire in less than [INTERVAL] days.    </notification>    <notification +     icon="notifytip.tga" +     name="AutoReplace" +     type="notifytip"> +    '[BEFORE]' has been auto replaced by '[REPLACEMENT]' +    based on your [LISTNAME] list. +  </notification> +  <notification     icon="notify.tga"     name="VoiceEffectsNew"     sound="UISndAlert" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml index caf7fc85f5..f4f3c8f4d0 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml @@ -211,9 +211,20 @@     layout="topleft"     left="30"     name="ok_btn" -   top="-40" +   top="-50"     width="170">     <button.commit_callback      function="Pref.TranslationSettings" />    </button> -</panel>
\ No newline at end of file +  <button +   follows="top|left" +   height="23" +   layout="topleft" +   top_pad="-23" +   left_pad="5" +   name="ac_showgui" +   commit_callback.function="Pref.ShowAC" +   label="AutoCorrect Settings" +   width="150"> +  </button> +</panel> | 
