merge in jb-release history after reset to jb-dev
diff --git a/dictionaries/en_GB_wordlist.xml b/dictionaries/en_GB_wordlist.xml
index a89ae52..b2d703c 100644
--- a/dictionaries/en_GB_wordlist.xml
+++ b/dictionaries/en_GB_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="en" description="Main dictionary" date="1337248977" version="7">
+<wordlist locale="en_GB" description="Main dictionary (UK English)" date="1337328254" version="8">
<w f="222" flags="">the</w>
<w f="214" flags="">of</w>
<w f="212" flags="">and</w>
@@ -38600,7 +38600,6 @@
<w f="72" flags="">Gannon</w>
<w f="72" flags="">Geary</w>
<w f="72" flags="">Gifu</w>
- <w f="72" flags="">Google</w>
<w f="72" flags="">Google's</w>
<w f="72" flags="">Gregory's</w>
<w f="72" flags="">Guanajuato</w>
@@ -39820,7 +39819,6 @@
<w f="71" flags="abreviation">CFCs</w>
<w f="71" flags="abreviation">CLS</w>
<w f="71" flags="abreviation">CMF</w>
- <w f="71" flags="abreviation">CNA</w>
<w f="71" flags="abreviation">CTP</w>
<w f="71" flags="">Cabral</w>
<w f="71" flags="">Caligula</w>
@@ -57599,7 +57597,6 @@
<w f="59" flags="abreviation">IEE</w>
<w f="59" flags="abreviation">IPSC</w>
<w f="59" flags="abreviation">IRBM</w>
- <w f="59" flags="abreviation">ITIS</w>
<w f="59" flags="">Ilkeston</w>
<w f="59" flags="">InfoWorld</w>
<w f="59" flags="">Infosys</w>
@@ -65625,7 +65622,6 @@
<w f="54" flags="">Honiara</w>
<w f="54" flags="">Honshu</w>
<w f="54" flags="abreviation">IBSF</w>
- <w f="54" flags="abreviation">ITD</w>
<w f="54" flags="">Ibrahim's</w>
<w f="54" flags="">Imogene</w>
<w f="54" flags="">Inmarsat</w>
diff --git a/dictionaries/en_US_wordlist.xml b/dictionaries/en_US_wordlist.xml
index 0d7bdba..1e14da4 100644
--- a/dictionaries/en_US_wordlist.xml
+++ b/dictionaries/en_US_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="en" description="Main dictionary" date="1337248973" version="7">
+<wordlist locale="en_GB" description="Main dictionary (US English)" date="1337328218" version="8">
<w f="222" flags="">the</w>
<w f="214" flags="">of</w>
<w f="212" flags="">and</w>
@@ -802,7 +802,6 @@
<w f="143" flags="">variety</w>
<w f="143" flags="">view</w>
<w f="142" flags="">German</w>
- <w f="142" flags="">I</w>
<w f="142" flags="">London</w>
<w f="142" flags="">West</w>
<w f="142" flags="">actually</w>
@@ -11536,7 +11535,6 @@
<w f="101" flags="">Lynn</w>
<w f="101" flags="">Lyon</w>
<w f="101" flags="abreviation">MCC</w>
- <w f="101" flags="">Mac</w>
<w f="101" flags="">Macedonia</w>
<w f="101" flags="">Malay</w>
<w f="101" flags="">Martha</w>
@@ -41337,7 +41335,6 @@
<w f="71" flags="abreviation">CFCs</w>
<w f="71" flags="abreviation">CLS</w>
<w f="71" flags="abreviation">CMF</w>
- <w f="71" flags="abreviation">CNA</w>
<w f="71" flags="abreviation">CTP</w>
<w f="71" flags="">Cabral</w>
<w f="71" flags="">Caligula</w>
@@ -59732,7 +59729,6 @@
<w f="59" flags="abreviation">IEE</w>
<w f="59" flags="abreviation">IPSC</w>
<w f="59" flags="abreviation">IRBM</w>
- <w f="59" flags="abreviation">ITIS</w>
<w f="59" flags="">Ilkeston</w>
<w f="59" flags="">InfoWorld</w>
<w f="59" flags="">Infosys</w>
@@ -68006,7 +68002,6 @@
<w f="54" flags="">Honshu</w>
<w f="54" flags="">Hui's</w>
<w f="54" flags="abreviation">IBSF</w>
- <w f="54" flags="abreviation">ITD</w>
<w f="54" flags="">Ibrahim's</w>
<w f="54" flags="">Imogene</w>
<w f="54" flags="">Inmarsat</w>
@@ -111443,6 +111438,7 @@
<w f="25" flags="">Chernobyl's</w>
<w f="25" flags="">Chesapeake's</w>
<w f="25" flags="">Cheviots</w>
+ <w f="25">Chewbacca</w>
<w f="25" flags="">Chimer</w>
<w f="25" flags="">Chippendale's</w>
<w f="25" flags="">Chretien's</w>
diff --git a/dictionaries/fr_wordlist.xml b/dictionaries/fr_wordlist.xml
index 6a3c5e7..cb047a4 100644
--- a/dictionaries/fr_wordlist.xml
+++ b/dictionaries/fr_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="fr" description="Dictionnaire principal" date="1337171409" version="7" options="french_ligature_processing">
+<wordlist locale="fr" description="Dictionnaire principal" date="1337330537" version="8" options="french_ligature_processing">
<w f="209" flags="">de</w>
<w f="200" flags="">la</w>
<w f="197" flags="">et</w>
@@ -3582,7 +3582,6 @@
<w f="111" flags="">évidence</w>
<w f="110" flags="">Beaux-Arts</w>
<w f="110" flags="">Saint-Jean</w>
- <w f="110" flags="">Saint-Pétersbourg</w>
<w f="110" flags="abreviation">TER</w>
<w f="110" flags="">accusé</w>
<w f="110" flags="">aire</w>
@@ -8155,7 +8154,6 @@
<w f="98" flags="">endémiques</w>
<w f="98" flags="">enlevé</w>
<w f="98" flags="">environnementale</w>
- <w f="98" flags="">es</w>
<w f="98" flags="">est-il</w>
<w f="98" flags="">exact</w>
<w f="98" flags="">examens</w>
@@ -9029,7 +9027,6 @@
<w f="96" flags="">Charlotte</w>
<w f="96" flags="">Cuba</w>
<w f="96" flags="">Davis</w>
- <w f="96" flags="">Eric</w>
<w f="96" flags="">Friedrich</w>
<w f="96" flags="">Félix</w>
<w f="96" flags="">Gaston</w>
@@ -9600,7 +9597,6 @@
<w f="95" flags="">Walt</w>
<w f="95" flags="">Wilson</w>
<w f="95" flags="">Yougoslavie</w>
- <w f="95" flags="">Zurich</w>
<w f="95" flags="">abriter</w>
<w f="95" flags="">admise</w>
<w f="95" flags="">adolescence</w>
@@ -10727,7 +10723,6 @@
<w f="93" flags="">Charlie</w>
<w f="93" flags="">Cologne</w>
<w f="93" flags="">Côte-d'Or</w>
- <w f="93" flags="">Elizabeth</w>
<w f="93" flags="">Ferrari</w>
<w f="93" flags="">Hambourg</w>
<w f="93" flags="">Hamilton</w>
@@ -12763,7 +12758,6 @@
<w f="90" flags="">affirmait</w>
<w f="90" flags="">affirmation</w>
<w f="90" flags="">agraire</w>
- <w f="90" flags="">ainé</w>
<w f="90" flags="">algébriques</w>
<w f="90" flags="">allées</w>
<w f="90" flags="">altitudes</w>
@@ -14100,7 +14094,6 @@
<w f="89" flags="">œuf</w>
<w f="88" flags="abreviation">ARN</w>
<w f="88" flags="">Alberto</w>
- <w f="88" flags="">Andrea</w>
<w f="88" flags="">Anne-Marie</w>
<w f="88" flags="abreviation">BTS</w>
<w f="88" flags="">Barry</w>
@@ -14869,7 +14862,6 @@
<w f="87" flags="">Dresde</w>
<w f="87" flags="">Eddie</w>
<w f="87" flags="">Edgar</w>
- <w f="87" flags="">Elisabeth</w>
<w f="87" flags="">Evans</w>
<w f="87" flags="">Finistère</w>
<w f="87" flags="abreviation">GmbH</w>
@@ -17441,7 +17433,6 @@
<w f="84" flags="">acharnée</w>
<w f="84" flags="">acquéreur</w>
<w f="84" flags="">activé</w>
- <w f="84" flags="">ad-Din</w>
<w f="84" flags="">addition</w>
<w f="84" flags="">additionnel</w>
<w f="84" flags="">administrés</w>
@@ -18354,7 +18345,6 @@
<w f="83" flags="">Dreyfus</w>
<w f="83" flags="">Dubois</w>
<w f="83" flags="">Dylan</w>
- <w f="83" flags="">Edouard</w>
<w f="83" flags="abreviation">FTP</w>
<w f="83" flags="">François-Xavier</w>
<w f="83" flags="">Galilée</w>
@@ -19249,7 +19239,6 @@
<w f="82" flags="">Achille</w>
<w f="82" flags="">Aix-la-Chapelle</w>
<w f="82" flags="">Alexandrie</w>
- <w f="82" flags="">Andreas</w>
<w f="82" flags="">Blake</w>
<w f="82" flags="">Bristol</w>
<w f="82" flags="abreviation">CD-ROM</w>
@@ -19305,12 +19294,10 @@
<w f="82" flags="">Robespierre</w>
<w f="82" flags="">Rogers</w>
<w f="82" flags="abreviation">STIF</w>
- <w f="82" flags="">Saint-Germain-des-Prés</w>
<w f="82" flags="">Saint-Hyacinthe</w>
<w f="82" flags="">Saint-Jean-d'Angély</w>
<w f="82" flags="">Saint-Just</w>
<w f="82" flags="">Saint-Lambert</w>
- <w f="82" flags="">Saint-Petersbourg</w>
<w f="82" flags="">Saint-Thomas</w>
<w f="82" flags="">Saint-Tropez</w>
<w f="82" flags="">Saône</w>
@@ -19337,7 +19324,6 @@
<w f="82" flags="">accomplis</w>
<w f="82" flags="">accordait</w>
<w f="82" flags="">achevées</w>
- <w f="82" flags="">ad-Dîn</w>
<w f="82" flags="">additionnels</w>
<w f="82" flags="">adventistes</w>
<w f="82" flags="">affectionne</w>
@@ -19403,7 +19389,6 @@
<w f="82" flags="">baptisa</w>
<w f="82" flags="">basiques</w>
<w f="82" flags="">bavaroise</w>
- <w f="82" flags="">beat</w>
<w f="82" flags="">beffroi</w>
<w f="82" flags="">berlinois</w>
<w f="82" flags="">bernois</w>
@@ -20274,7 +20259,6 @@
<w f="81" flags="abreviation">RDC</w>
<w f="81" flags="">Reagan</w>
<w f="81" flags="">Roberts</w>
- <w f="81" flags="">Romeo</w>
<w f="81" flags="abreviation">SQL</w>
<w f="81" flags="">Saint-Sépulcre</w>
<w f="81" flags="">Santos</w>
@@ -21236,7 +21220,6 @@
<w f="80" flags="">BFM</w>
<w f="80" flags="abreviation">BK</w>
<w f="80" flags="abreviation">BSD</w>
- <w f="80" flags="">Benoit</w>
<w f="80" flags="">Blaise</w>
<w f="80" flags="">Bonn</w>
<w f="80" flags="">Burton</w>
@@ -21267,7 +21250,6 @@
<w f="80" flags="">Garibaldi</w>
<w f="80" flags="">Gers</w>
<w f="80" flags="">Gil</w>
- <w f="80" flags="">Gregory</w>
<w f="80" flags="">Henriette</w>
<w f="80" flags="">Honduras</w>
<w f="80" flags="">IGN</w>
@@ -21390,7 +21372,6 @@
<w f="80" flags="">armateur</w>
<w f="80" flags="">arrondis</w>
<w f="80" flags="">arrosées</w>
- <w f="80" flags="">artefacts</w>
<w f="80" flags="">arthropodes</w>
<w f="80" flags="">ascendante</w>
<w f="80" flags="">assemblages</w>
@@ -22318,7 +22299,6 @@
<w f="79" flags="">Edwin</w>
<w f="79" flags="">Ellen</w>
<w f="79" flags="">Enrico</w>
- <w f="79" flags="">Eva</w>
<w f="79" flags="abreviation">FARC</w>
<w f="79" flags="abreviation">FEN</w>
<w f="79" flags="">Faure</w>
@@ -23520,7 +23500,6 @@
<w f="78" flags="">Joël</w>
<w f="78" flags="abreviation">LL</w>
<w f="78" flags="">Ladislas</w>
- <w f="78" flags="">Leone</w>
<w f="78" flags="">Limbourg</w>
<w f="78" flags="">Lucie</w>
<w f="78" flags="">López</w>
@@ -24684,7 +24663,6 @@
<w f="77" flags="">GNOME</w>
<w f="77" flags="">Gandhi</w>
<w f="77" flags="">Gauthier</w>
- <w f="77" flags="">Gerald</w>
<w f="77" flags="">Guérin</w>
<w f="77" flags="">Göttingen</w>
<w f="77" flags="">Harbor</w>
@@ -24807,7 +24785,6 @@
<w f="77" flags="">adultère</w>
<w f="77" flags="">adéquation</w>
<w f="77" flags="">affective</w>
- <w f="77" flags="">age</w>
<w f="77" flags="">agressives</w>
<w f="77" flags="">aiguës</w>
<w f="77" flags="">aileron</w>
@@ -25803,7 +25780,6 @@
<w f="76" flags="">Colli</w>
<w f="76" flags="">Colonna</w>
<w f="76" flags="">Columbus</w>
- <w f="76" flags="">Cornelius</w>
<w f="76" flags="">Cyrille</w>
<w f="76" flags="">Cévennes</w>
<w f="76" flags="">Côte-Nord</w>
@@ -25820,7 +25796,6 @@
<w f="76" flags="abreviation">ECHL</w>
<w f="76" flags="">England</w>
<w f="76" flags="">Eudes</w>
- <w f="76" flags="">Eugene</w>
<w f="76" flags="abreviation">FDA</w>
<w f="76" flags="abreviation">FIS</w>
<w f="76" flags="">Faust</w>
@@ -25843,7 +25818,6 @@
<w f="76" flags="">Jean-Antoine</w>
<w f="76" flags="">Jean-Loup</w>
<w f="76" flags="">Jehan</w>
- <w f="76" flags="">Jeremy</w>
<w f="76" flags="">Joshua</w>
<w f="76" flags="">Joyce</w>
<w f="76" flags="">Juda</w>
@@ -25855,7 +25829,6 @@
<w f="76" flags="abreviation">LCI</w>
<w f="76" flags="abreviation">LNA</w>
<w f="76" flags="">Langres</w>
- <w f="76" flags="">Leopold</w>
<w f="76" flags="">Logan</w>
<w f="76" flags="">Loire-Inférieure</w>
<w f="76" flags="">Lothaire</w>
@@ -25911,7 +25884,6 @@
<w f="76" flags="">Sète</w>
<w f="76" flags="abreviation">TP</w>
<w f="76" flags="abreviation">TT</w>
- <w f="76" flags="">Theodore</w>
<w f="76" flags="">Théodose</w>
<w f="76" flags="">Tracy</w>
<w f="76" flags="">Tyrol</w>
@@ -25953,7 +25925,6 @@
<w f="76" flags="">agraires</w>
<w f="76" flags="">agressé</w>
<w f="76" flags="">agrumes</w>
- <w f="76" flags="">ainée</w>
<w f="76" flags="">alertes</w>
<w f="76" flags="">ambulant</w>
<w f="76" flags="">amputée</w>
@@ -26991,7 +26962,6 @@
<w f="75" flags="">Carson</w>
<w f="75" flags="">Casey</w>
<w f="75" flags="">Cassel</w>
- <w f="75" flags="">Castille-et-León</w>
<w f="75" flags="">Chantal</w>
<w f="75" flags="">Charles-Emmanuel</w>
<w f="75" flags="">Charles-François</w>
@@ -28497,7 +28467,6 @@
<w f="74" flags="">Saint-Médard</w>
<w f="74" flags="">Saint-Quentin-en-Yvelines</w>
<w f="74" flags="">Saint-Romain</w>
- <w f="74" flags="">Saint-Rémy</w>
<w f="74" flags="">Sainte-Marie-aux-Mines</w>
<w f="74" flags="">Salvatore</w>
<w f="74" flags="">Sandra</w>
@@ -28549,7 +28518,6 @@
<w f="74" flags="">agenda</w>
<w f="74" flags="">agrandissements</w>
<w f="74" flags="">aide-de-camp</w>
- <w f="74" flags="">aigüe</w>
<w f="74" flags="">ailés</w>
<w f="74" flags="">alerté</w>
<w f="74" flags="">algorithmique</w>
@@ -29684,7 +29652,6 @@
<w f="73" flags="">Bahamas</w>
<w f="73" flags="">Bali</w>
<w f="73" flags="">Bamako</w>
- <w f="73" flags="">Barthélemy</w>
<w f="73" flags="">Bas-Empire</w>
<w f="73" flags="">Basse-Terre</w>
<w f="73" flags="">Batista</w>
@@ -29777,7 +29744,6 @@
<w f="73" flags="">Jill</w>
<w f="73" flags="">Johanna</w>
<w f="73" flags="">Joly</w>
- <w f="73" flags="">Jose</w>
<w f="73" flags="">Jourdan</w>
<w f="73" flags="">Kaboul</w>
<w f="73" flags="">L'Oréal</w>
@@ -29789,7 +29755,6 @@
<w f="73" flags="">Louis-Ferdinand</w>
<w f="73" flags="">Louis-François</w>
<w f="73" flags="">Louvain-la-Neuve</w>
- <w f="73" flags="">Lucia</w>
<w f="73" flags="">Luffy</w>
<w f="73" flags="">Lunéville</w>
<w f="73" flags="abreviation">MPF</w>
@@ -29805,7 +29770,6 @@
<w f="73" flags="">Mireille</w>
<w f="73" flags="">Monet</w>
<w f="73" flags="">Moss</w>
- <w f="73" flags="">Muller</w>
<w f="73" flags="">Mustafa</w>
<w f="73" flags="">Myers</w>
<w f="73" flags="">Médine</w>
@@ -29944,7 +29908,6 @@
<w f="73" flags="">ardoises</w>
<w f="73" flags="">arrachée</w>
<w f="73" flags="">arrangée</w>
- <w f="73" flags="">artefact</w>
<w f="73" flags="">assembleur</w>
<w f="73" flags="">assiettes</w>
<w f="73" flags="">assumée</w>
@@ -31107,7 +31070,6 @@
<w f="72" flags="">Dufour</w>
<w f="72" flags="">Duhamel</w>
<w f="72" flags="abreviation">ENS</w>
- <w f="72" flags="">Edith</w>
<w f="72" flags="">Eduard</w>
<w f="72" flags="">Eisenhower</w>
<w f="72" flags="abreviation">FCW</w>
@@ -31222,7 +31184,6 @@
<w f="72" flags="">Rabelais</w>
<w f="72" flags="">Ramon</w>
<w f="72" flags="">Rembrandt</w>
- <w f="72" flags="">Reykjavik</w>
<w f="72" flags="">Rhénanie</w>
<w f="72" flags="">Riemann</w>
<w f="72" flags="">Rimouski</w>
@@ -32659,7 +32620,6 @@
<w f="71" flags="">Doha</w>
<w f="71" flags="abreviation">ESA</w>
<w f="71" flags="abreviation">EV</w>
- <w f="71" flags="">Elie</w>
<w f="71" flags="">Elliot</w>
<w f="71" flags="">Elsa</w>
<w f="71" flags="">Emmanuelle</w>
@@ -35964,7 +35924,6 @@
<w f="69" flags="">Mithridate</w>
<w f="69" flags="">Montmorency-Laval</w>
<w f="69" flags="">Montélimar</w>
- <w f="69" flags="">Moshe</w>
<w f="69" flags="">Murcie</w>
<w f="69" flags="">Murdoch</w>
<w f="69" flags="">Muriel</w>
@@ -35975,7 +35934,6 @@
<w f="69" flags="">Naomi</w>
<w f="69" flags="">Ned</w>
<w f="69" flags="">Nestor</w>
- <w f="69" flags="">Niccolò</w>
<w f="69" flags="">Nikon</w>
<w f="69" flags="">Nino</w>
<w f="69" flags="">O-O</w>
@@ -36045,7 +36003,6 @@
<w f="69" flags="abreviation">TTC</w>
<w f="69" flags="">Tadjikistan</w>
<w f="69" flags="">Taipei</w>
- <w f="69" flags="">Taiwan</w>
<w f="69" flags="">Tampere</w>
<w f="69" flags="">Tchang</w>
<w f="69" flags="">Thatcher</w>
@@ -36124,7 +36081,6 @@
<w f="69" flags="">aliéné</w>
<w f="69" flags="">allers</w>
<w f="69" flags="">allier</w>
- <w f="69" flags="">ambigüe</w>
<w f="69" flags="">ambitieuses</w>
<w f="69" flags="">amendée</w>
<w f="69" flags="">amplifie</w>
@@ -37433,7 +37389,6 @@
<w f="68" flags="">Bryant</w>
<w f="68" flags="">Burlington</w>
<w f="68" flags="">Byrne</w>
- <w f="68" flags="">Bède</w>
<w f="68" flags="abreviation">CFD</w>
<w f="68" flags="abreviation">CFE</w>
<w f="68" flags="abreviation">CIM</w>
@@ -37654,7 +37609,6 @@
<w f="68" flags="">Saint-Herblain</w>
<w f="68" flags="">Saint-Ignace</w>
<w f="68" flags="">Saint-Jean-sur-Richelieu</w>
- <w f="68" flags="">Saint-Rémi</w>
<w f="68" flags="">Saint-Rémy-de-Provence</w>
<w f="68" flags="">Sammy</w>
<w f="68" flags="">Samsung</w>
@@ -37668,7 +37622,6 @@
<w f="68" flags="">Spurs</w>
<w f="68" flags="">Sunderland</w>
<w f="68" flags="">Sutherland</w>
- <w f="68" flags="">Suárez</w>
<w f="68" flags="">Swan</w>
<w f="68" flags="">Swansea</w>
<w f="68" flags="">Sétif</w>
@@ -39180,7 +39133,6 @@
<w f="67" flags="">Daniels</w>
<w f="67" flags="">Daudet</w>
<w f="67" flags="">Davenport</w>
- <w f="67" flags="">Deborah</w>
<w f="67" flags="">Delaunay</w>
<w f="67" flags="">Deleuze</w>
<w f="67" flags="">Denfert-Rochereau</w>
@@ -39359,7 +39311,6 @@
<w f="67" flags="">RadioShack</w>
<w f="67" flags="">Rainer</w>
<w f="67" flags="">Randolph</w>
- <w f="67" flags="">Raphael</w>
<w f="67" flags="">Reinhard</w>
<w f="67" flags="">Reinhardt</w>
<w f="67" flags="">Remiremont</w>
@@ -39411,7 +39362,6 @@
<w f="67" flags="">Takeda</w>
<w f="67" flags="">Tarantino</w>
<w f="67" flags="">Tchétchénie</w>
- <w f="67" flags="">Theo</w>
<w f="67" flags="">Tianjin</w>
<w f="67" flags="">Tibre</w>
<w f="67" flags="">Trotsky</w>
@@ -40024,7 +39974,6 @@
<w f="67" flags="">fusionnera</w>
<w f="67" flags="">futurisme</w>
<w f="67" flags="">fédérateur</w>
- <w f="67" flags="">féerie</w>
<w f="67" flags="">féroïen</w>
<w f="67" flags="">gabonaise</w>
<w f="67" flags="">gadget</w>
@@ -40961,7 +40910,6 @@
<w f="66" flags="">Blondel</w>
<w f="66" flags="">Bobigny</w>
<w f="66" flags="">Bohémond</w>
- <w f="66" flags="">Bohême-Moravie</w>
<w f="66" flags="">Boone</w>
<w f="66" flags="">Bourdieu</w>
<w f="66" flags="">Brady</w>
@@ -41001,11 +40949,8 @@
<w f="66" flags="">Cyclades</w>
<w f="66" flags="abreviation">DC-3</w>
<w f="66" flags="abreviation">DDE</w>
- <w f="66" flags="">Dali</w>
- <w f="66" flags="">Daniele</w>
<w f="66" flags="">Danièle</w>
<w f="66" flags="">Dargaud</w>
- <w f="66" flags="">Dario</w>
<w f="66" flags="">Darlan</w>
<w f="66" flags="">Deux-Montagnes</w>
<w f="66" flags="">Diego-Suarez</w>
@@ -41126,7 +41071,6 @@
<w f="66" flags="abreviation">MSA</w>
<w f="66" flags="abreviation">MTA</w>
<w f="66" flags="">Maintenon</w>
- <w f="66" flags="">Malaga</w>
<w f="66" flags="">Mallarmé</w>
<w f="66" flags="">Manning</w>
<w f="66" flags="">Marie-Catherine</w>
@@ -41227,7 +41171,6 @@
<w f="66" flags="">Saint-Junien</w>
<w f="66" flags="">Saint-Privat</w>
<w f="66" flags="">Saint-Séverin</w>
- <w f="66" flags="">Saul</w>
<w f="66" flags="">Saxe-Altenbourg</w>
<w f="66" flags="">Schrödinger</w>
<w f="66" flags="">Schwarzenegger</w>
@@ -41248,7 +41191,6 @@
<w f="66" flags="">Tanguy</w>
<w f="66" flags="">Tarascon</w>
<w f="66" flags="">Tarragone</w>
- <w f="66" flags="">Terence</w>
<w f="66" flags="">Thibaud</w>
<w f="66" flags="">Thom</w>
<w f="66" flags="">Thoreau</w>
@@ -41646,7 +41588,6 @@
<w f="66" flags="">d'Eschyle</w>
<w f="66" flags="">d'Essen</w>
<w f="66" flags="">d'Estouteville</w>
- <w f="66" flags="">d'Eva</w>
<w f="66" flags="">d'Hadès</w>
<w f="66" flags="">d'Heinrich</w>
<w f="66" flags="">d'Herbois</w>
@@ -42962,7 +42903,6 @@
<w f="65" flags="">Dickinson</w>
<w f="65" flags="">Dieter</w>
<w f="65" flags="">Dol-de-Bretagne</w>
- <w f="65" flags="">Dolores</w>
<w f="65" flags="">Donetsk</w>
<w f="65" flags="">Dostoïevski</w>
<w f="65" flags="">Duarte</w>
@@ -42990,7 +42930,6 @@
<w f="65" flags="">Fiodor</w>
<w f="65" flags="">Fleurus</w>
<w f="65" flags="">Fontenelle</w>
- <w f="65" flags="">Forster</w>
<w f="65" flags="">Fredericton</w>
<w f="65" flags="">Frédérique</w>
<w f="65" flags="">Fukuoka</w>
@@ -43010,7 +42949,6 @@
<w f="65" flags="">Grammont</w>
<w f="65" flags="">Gregory-Aland</w>
<w f="65" flags="">Grumman</w>
- <w f="65" flags="">Guzmán</w>
<w f="65" flags="">Guéret</w>
<w f="65" flags="abreviation">HAC</w>
<w f="65" flags="">Hadès</w>
@@ -43028,7 +42966,6 @@
<w f="65" flags="abreviation">IAAF</w>
<w f="65" flags="">Irvine</w>
<w f="65" flags="">Isis</w>
- <w f="65" flags="">Ismail</w>
<w f="65" flags="">JLA</w>
<w f="65" flags="abreviation">JPL</w>
<w f="65" flags="">Jacques-Yves</w>
@@ -43058,7 +42995,6 @@
<w f="65" flags="">Ledoux</w>
<w f="65" flags="">Lesage</w>
<w f="65" flags="">Levallois</w>
- <w f="65" flags="">Liberia</w>
<w f="65" flags="">Lilian</w>
<w f="65" flags="">Liliane</w>
<w f="65" flags="">Livingston</w>
@@ -43136,7 +43072,6 @@
<w f="65" flags="">Périclès</w>
<w f="65" flags="abreviation">RIB</w>
<w f="65" flags="abreviation">RLM</w>
- <w f="65" flags="abreviation">RTE</w>
<w f="65" flags="abreviation">RTP</w>
<w f="65" flags="">Raimond</w>
<w f="65" flags="">Randall</w>
@@ -43201,7 +43136,6 @@
<w f="65" flags="abreviation">TTL</w>
<w f="65" flags="abreviation">TWA</w>
<w f="65" flags="">Telegraph</w>
- <w f="65" flags="">Thales</w>
<w f="65" flags="">Thésée</w>
<w f="65" flags="">Tobias</w>
<w f="65" flags="">Tocqueville</w>
@@ -43358,7 +43292,6 @@
<w f="65" flags="">baptisèrent</w>
<w f="65" flags="">basait</w>
<w f="65" flags="">baume</w>
- <w f="65" flags="">beats</w>
<w f="65" flags="">belette</w>
<w f="65" flags="">belli</w>
<w f="65" flags="">benthiques</w>
@@ -44837,7 +44770,6 @@
<w f="64" flags="">Cassandra</w>
<w f="64" flags="">Casse-Noisette</w>
<w f="64" flags="">Castries</w>
- <w f="64" flags="">Cervantes</w>
<w f="64" flags="">Chambly</w>
<w f="64" flags="">Champigny-sur-Marne</w>
<w f="64" flags="">Chardin</w>
@@ -44879,7 +44811,6 @@
<w f="64" flags="">Drina</w>
<w f="64" flags="">Dumouriez</w>
<w f="64" flags="">Durkheim</w>
- <w f="64" flags="">Elisa</w>
<w f="64" flags="">Eliza</w>
<w f="64" flags="">Emilia</w>
<w f="64" flags="">Engels</w>
@@ -44916,7 +44847,6 @@
<w f="64" flags="">Gex</w>
<w f="64" flags="">Gisors</w>
<w f="64" flags="">Givet</w>
- <w f="64" flags="">Gluck</w>
<w f="64" flags="">Gorki</w>
<w f="64" flags="">Gourion</w>
<w f="64" flags="">Grand-Sault</w>
@@ -44924,7 +44854,6 @@
<w f="64" flags="">Gretzky</w>
<w f="64" flags="">Guilhem</w>
<w f="64" flags="">Guipuscoa</w>
- <w f="64" flags="">Gunther</w>
<w f="64" flags="">Gutenberg</w>
<w f="64" flags="">Halley</w>
<w f="64" flags="">Hamid</w>
@@ -44980,7 +44909,6 @@
<w f="64" flags="">Lattre</w>
<w f="64" flags="">Lavoisier</w>
<w f="64" flags="">Lehmann</w>
- <w f="64" flags="">Leonid</w>
<w f="64" flags="">Levasseur</w>
<w f="64" flags="">Lexington</w>
<w f="64" flags="">Lina</w>
@@ -45019,7 +44947,6 @@
<w f="64" flags="">McCann</w>
<w f="64" flags="">McFarlane</w>
<w f="64" flags="">Mellon</w>
- <w f="64" flags="">Mendes</w>
<w f="64" flags="">Merkel</w>
<w f="64" flags="">Meulan</w>
<w f="64" flags="">Michaux</w>
@@ -46799,14 +46726,12 @@
<w f="63" flags="">Abdoulaye</w>
<w f="63" flags="">Abdul-Jabbar</w>
<w f="63" flags="">Adolph</w>
- <w f="63" flags="">Agnes</w>
<w f="63" flags="">Agostino</w>
<w f="63" flags="">Aguilera</w>
<w f="63" flags="">Aigues-Mortes</w>
<w f="63" flags="">Allard</w>
<w f="63" flags="">Almeida</w>
<w f="63" flags="">Amazonie</w>
- <w f="63" flags="">Amelia</w>
<w f="63" flags="">Armando</w>
<w f="63" flags="">Ashton</w>
<w f="63" flags="">Astrid</w>
@@ -46986,7 +46911,6 @@
<w f="63" flags="">Jean-Robert</w>
<w f="63" flags="">Jeanne-Marie</w>
<w f="63" flags="">Jerzy</w>
- <w f="63" flags="">Joaquin</w>
<w f="63" flags="">Johns-Hopkins</w>
<w f="63" flags="">Joseph-Louis</w>
<w f="63" flags="">Judd</w>
@@ -47229,7 +47153,6 @@
<w f="63" flags="">agréments</w>
<w f="63" flags="">aideront</w>
<w f="63" flags="">aiguillages</w>
- <w f="63" flags="">aigües</w>
<w f="63" flags="">ajoute-t-il</w>
<w f="63" flags="">al-Islam</w>
<w f="63" flags="">alambics</w>
@@ -47243,7 +47166,6 @@
<w f="63" flags="">alésage</w>
<w f="63" flags="">amandiers</w>
<w f="63" flags="">amasser</w>
- <w f="63" flags="">ambigüité</w>
<w f="63" flags="">ambulanciers</w>
<w f="63" flags="">amharique</w>
<w f="63" flags="">amicalement</w>
@@ -47802,7 +47724,6 @@
<w f="63" flags="">flatter</w>
<w f="63" flags="">flip</w>
<w f="63" flags="">flirt</w>
- <w f="63" flags="">flute</w>
<w f="63" flags="">foc</w>
<w f="63" flags="">focales</w>
<w f="63" flags="">foisonnante</w>
@@ -48836,7 +48757,6 @@
<w f="62" flags="">Bassano</w>
<w f="62" flags="">Basse-Styrie</w>
<w f="62" flags="">Baudry</w>
- <w f="62" flags="">Beatrice</w>
<w f="62" flags="">Beaumes-de-Venise</w>
<w f="62" flags="">Beaumont-sur-Oise</w>
<w f="62" flags="">Bellegarde-sur-Valserine</w>
@@ -48852,7 +48772,6 @@
<w f="62" flags="">Borden</w>
<w f="62" flags="">Bowman</w>
<w f="62" flags="">Bregille</w>
- <w f="62" flags="">Breguet</w>
<w f="62" flags="">Breizh</w>
<w f="62" flags="">Bressuire</w>
<w f="62" flags="">Briggs</w>
@@ -48898,7 +48817,6 @@
<w f="62" flags="">Charles-Ferdinand</w>
<w f="62" flags="">Charleville</w>
<w f="62" flags="">Charlottetown</w>
- <w f="62" flags="">Chavez</w>
<w f="62" flags="">Chimay</w>
<w f="62" flags="">Choisy</w>
<w f="62" flags="">Christian-Jaque</w>
@@ -48965,7 +48883,6 @@
<w f="62" flags="">Ferdinando</w>
<w f="62" flags="">Figeac</w>
<w f="62" flags="">Fontenoy</w>
- <w f="62" flags="">Forlì</w>
<w f="62" flags="">Fos-sur-Mer</w>
<w f="62" flags="">Fouad</w>
<w f="62" flags="">Frey</w>
@@ -49103,7 +49020,6 @@
<w f="62" flags="">Maximilian</w>
<w f="62" flags="">McGuinness</w>
<w f="62" flags="">McVeigh</w>
- <w f="62" flags="">Medellín</w>
<w f="62" flags="">Meier</w>
<w f="62" flags="">Melrose</w>
<w f="62" flags="">Mendel</w>
@@ -49176,17 +49092,14 @@
<w f="62" flags="abreviation">RDI</w>
<w f="62" flags="abreviation">RSHA</w>
<w f="62" flags="abreviation">RTG</w>
- <w f="62" flags="abreviation">RTÉ</w>
<w f="62" flags="abreviation">RX</w>
<w f="62" flags="">Radu</w>
<w f="62" flags="">Rahman</w>
<w f="62" flags="">Ramones</w>
<w f="62" flags="">Ramírez</w>
<w f="62" flags="">Rangoon</w>
- <w f="62" flags="">Raul</w>
<w f="62" flags="">Regal</w>
<w f="62" flags="">Reinhold</w>
- <w f="62" flags="">Remi</w>
<w f="62" flags="">Rezé</w>
<w f="62" flags="">Riquet</w>
<w f="62" flags="">Rockwell</w>
@@ -49209,7 +49122,6 @@
<w f="62" flags="">Saint-Macaire</w>
<w f="62" flags="">Saint-Martin-de-Crau</w>
<w f="62" flags="">Saint-Mauris</w>
- <w f="62" flags="">Saint-Melaine</w>
<w f="62" flags="">Saint-Ours</w>
<w f="62" flags="">Saint-Savin</w>
<w f="62" flags="">Samia</w>
@@ -51145,7 +51057,6 @@
<w f="61" flags="">Beaurepaire</w>
<w f="61" flags="">Belgrano</w>
<w f="61" flags="">Bellamy</w>
- <w f="61" flags="">Benedict</w>
<w f="61" flags="">Benghazi</w>
<w f="61" flags="">Bernhardt</w>
<w f="61" flags="">Birkin</w>
@@ -51153,7 +51064,6 @@
<w f="61" flags="">Blaye</w>
<w f="61" flags="">Blida</w>
<w f="61" flags="">Bogdan</w>
- <w f="61" flags="">Bogota</w>
<w f="61" flags="">Bolloré</w>
<w f="61" flags="">Bourgoin</w>
<w f="61" flags="">Bowen</w>
@@ -51252,7 +51162,6 @@
<w f="61" flags="">Godwin</w>
<w f="61" flags="">Golan</w>
<w f="61" flags="">Gonzaga</w>
- <w f="61" flags="">Gouin</w>
<w f="61" flags="">Greenwood</w>
<w f="61" flags="">Gregg</w>
<w f="61" flags="">Grigny</w>
@@ -51285,7 +51194,6 @@
<w f="61" flags="">Hubei</w>
<w f="61" flags="">Huelva</w>
<w f="61" flags="">Hulot</w>
- <w f="61" flags="">Héctor</w>
<w f="61" flags="abreviation">IDH</w>
<w f="61" flags="abreviation">IRL</w>
<w f="61" flags="abreviation">ITTF</w>
@@ -51407,7 +51315,6 @@
<w f="61" flags="">Nakajima</w>
<w f="61" flags="">Nerval</w>
<w f="61" flags="">Neuquén</w>
- <w f="61" flags="">Nikolai</w>
<w f="61" flags="">Nilsson</w>
<w f="61" flags="">Niro</w>
<w f="61" flags="">Noam</w>
@@ -51478,7 +51385,6 @@
<w f="61" flags="">Saint-Gilloise</w>
<w f="61" flags="">Saint-Martin-de-Ré</w>
<w f="61" flags="">Saint-Nicaise</w>
- <w f="61" flags="">Saint-Remi</w>
<w f="61" flags="">Saint-Rémy-lès-Chevreuse</w>
<w f="61" flags="">Saint-Trophime</w>
<w f="61" flags="">Salamine</w>
@@ -53247,7 +53153,6 @@
<w f="60" flags="">Aire-sur-la-Lys</w>
<w f="60" flags="">Al-Adel</w>
<w f="60" flags="">Al-Qaïda</w>
- <w f="60" flags="">Alois</w>
<w f="60" flags="">Ambérieu-en-Bugey</w>
<w f="60" flags="">Amundsen</w>
<w f="60" flags="">Anastase</w>
@@ -53514,7 +53419,6 @@
<w f="60" flags="">Lynden</w>
<w f="60" flags="abreviation">MMS</w>
<w f="60" flags="">Machado</w>
- <w f="60" flags="">Macon</w>
<w f="60" flags="">Marie-Paule</w>
<w f="60" flags="">Marie-aux-Mines</w>
<w f="60" flags="">Mariette</w>
@@ -53533,7 +53437,6 @@
<w f="60" flags="">MediaWiki</w>
<w f="60" flags="">Medvedev</w>
<w f="60" flags="">Megan</w>
- <w f="60" flags="">Meir</w>
<w f="60" flags="">Merritt</w>
<w f="60" flags="">Merton</w>
<w f="60" flags="">Miami-Dade</w>
@@ -54738,7 +54641,6 @@
<w f="60" flags="">métissages</w>
<w f="60" flags="">métissées</w>
<w f="60" flags="">mêlait</w>
- <w f="60" flags="">môn</w>
<w f="60" flags="">n'allaient</w>
<w f="60" flags="">n'arrivaient</w>
<w f="60" flags="">n'avions</w>
@@ -55018,7 +54920,6 @@
<w f="60" flags="">rustre</w>
<w f="60" flags="">râpé</w>
<w f="60" flags="">réaffirmée</w>
- <w f="60" flags="">réapparaitre</w>
<w f="60" flags="">rébus</w>
<w f="60" flags="">réceptionner</w>
<w f="60" flags="">réceptionniste</w>
@@ -55348,7 +55249,6 @@
<w f="59" flags="">Addison</w>
<w f="59" flags="">Aden</w>
<w f="59" flags="">Adolphe-Frédéric</w>
- <w f="59" flags="">Al-Mansur</w>
<w f="59" flags="">Altman</w>
<w f="59" flags="">Alvaro</w>
<w f="59" flags="">Amboise</w>
@@ -55455,7 +55355,6 @@
<w f="59" flags="">Chemnitz</w>
<w f="59" flags="">Cherche-Midi</w>
<w f="59" flags="">Chilly-Mazarin</w>
- <w f="59" flags="">Chloe</w>
<w f="59" flags="">Chongqing</w>
<w f="59" flags="">Chrysostome</w>
<w f="59" flags="">Château-Gaillard</w>
@@ -55553,7 +55452,6 @@
<w f="59" flags="">Gondwana</w>
<w f="59" flags="">Gonesse</w>
<w f="59" flags="">Goodwin</w>
- <w f="59" flags="">Goüin</w>
<w f="59" flags="">Graeme</w>
<w f="59" flags="">Grande-Anse</w>
<w f="59" flags="">Grande-Terre</w>
@@ -55622,7 +55520,6 @@
<w f="59" flags="">Kildare</w>
<w f="59" flags="">Kimball</w>
<w f="59" flags="">Klux</w>
- <w f="59" flags="">Koechlin</w>
<w f="59" flags="">Koné</w>
<w f="59" flags="">Kool</w>
<w f="59" flags="">Kévin</w>
@@ -55770,7 +55667,6 @@
<w f="59" flags="abreviation">STR</w>
<w f="59" flags="">Saad</w>
<w f="59" flags="">Saint-André-des-Arts</w>
- <w f="59" flags="">Saint-Benoît-sur-Loire</w>
<w f="59" flags="">Saint-Georges-de-Didonne</w>
<w f="59" flags="">Saint-Georges-du-Bois</w>
<w f="59" flags="">Saint-Jean-de-Braye</w>
@@ -56645,7 +56541,6 @@
<w f="59" flags="">fécondé</w>
<w f="59" flags="">félon</w>
<w f="59" flags="">fêtera</w>
- <w f="59" flags="">gageure</w>
<w f="59" flags="">galactose</w>
<w f="59" flags="">galvanisé</w>
<w f="59" flags="">gastronome</w>
@@ -57856,7 +57751,6 @@
<w f="58" flags="">Brahe</w>
<w f="58" flags="">Braine-le-Comte</w>
<w f="58" flags="">Brant</w>
- <w f="58" flags="">Brasilia</w>
<w f="58" flags="">Braudel</w>
<w f="58" flags="">Breil-sur-Roya</w>
<w f="58" flags="">Brenne</w>
@@ -58033,7 +57927,6 @@
<w f="58" flags="">Hazel</w>
<w f="58" flags="">Heinlein</w>
<w f="58" flags="">Heisenberg</w>
- <w f="58" flags="">Hernán</w>
<w f="58" flags="">Hertfordshire</w>
<w f="58" flags="">Hilary</w>
<w f="58" flags="">Hiram</w>
@@ -58207,7 +58100,6 @@
<w f="58" flags="">Pantani</w>
<w f="58" flags="">Peletier</w>
<w f="58" flags="">PepsiCo</w>
- <w f="58" flags="">Perec</w>
<w f="58" flags="">Pereire</w>
<w f="58" flags="">Pessac</w>
<w f="58" flags="">Peutinger</w>
@@ -60373,7 +60265,6 @@
<w f="57" flags="">Cassano</w>
<w f="57" flags="">Caudron</w>
<w f="57" flags="">Caunes</w>
- <w f="57" flags="">Cedric</w>
<w f="57" flags="">Chabannes</w>
<w f="57" flags="">Chamfort</w>
<w f="57" flags="">Champignac</w>
@@ -60435,14 +60326,12 @@
<w f="57" flags="abreviation">ESB</w>
<w f="57" flags="abreviation">ESF</w>
<w f="57" flags="">Eazy-E</w>
- <w f="57" flags="">Edme</w>
<w f="57" flags="">Eileen</w>
<w f="57" flags="">Einar</w>
<w f="57" flags="">Elvira</w>
<w f="57" flags="">Elvire</w>
<w f="57" flags="">Estève</w>
<w f="57" flags="">Euclide</w>
- <w f="57" flags="">Evelyne</w>
<w f="57" flags="abreviation">FEDER</w>
<w f="57" flags="abreviation">FNRS</w>
<w f="57" flags="abreviation">FSCF</w>
@@ -60496,7 +60385,6 @@
<w f="57" flags="">Grimaud</w>
<w f="57" flags="">Grissom</w>
<w f="57" flags="">Grover</w>
- <w f="57" flags="">Guantanamo</w>
<w f="57" flags="">Gueorgui</w>
<w f="57" flags="">Guichen</w>
<w f="57" flags="">Guimarães</w>
@@ -60617,8 +60505,6 @@
<w f="57" flags="">Marignane</w>
<w f="57" flags="">Marjorie</w>
<w f="57" flags="">Markham</w>
- <w f="57" flags="">Marti</w>
- <w f="57" flags="">Martí</w>
<w f="57" flags="">MasterCard</w>
<w f="57" flags="">Mattel</w>
<w f="57" flags="">Maverick</w>
@@ -60749,7 +60635,6 @@
<w f="57" flags="">Saint-Pantaléon</w>
<w f="57" flags="">Saint-Paul-de-Vence</w>
<w f="57" flags="">Saint-Philbert-de-Grand-Lieu</w>
- <w f="57" flags="">Saint-Remy</w>
<w f="57" flags="">Saint-Sornin</w>
<w f="57" flags="">Saint-Sébastien-sur-Loire</w>
<w f="57" flags="">Saint-Vaast-la-Hougue</w>
@@ -60786,7 +60671,6 @@
<w f="57" flags="">Strozzi</w>
<w f="57" flags="">Struve</w>
<w f="57" flags="">Stéphan</w>
- <w f="57" flags="">Suarez</w>
<w f="57" flags="">Suzy</w>
<w f="57" flags="">Sweeney</w>
<w f="57" flags="abreviation">TCA</w>
@@ -60813,7 +60697,6 @@
<w f="57" flags="">VMware</w>
<w f="57" flags="abreviation">VSL</w>
<w f="57" flags="">Valeri</w>
- <w f="57" flags="">Valery</w>
<w f="57" flags="">Vallès</w>
<w f="57" flags="">Velázquez</w>
<w f="57" flags="">Verneuil-sur-Avre</w>
@@ -62929,14 +62812,12 @@
<w f="56" flags="abreviation">HH</w>
<w f="56" flags="">Hackett</w>
<w f="56" flags="">Hafez</w>
- <w f="56" flags="">Hanoi</w>
<w f="56" flags="">Hans-Georg</w>
<w f="56" flags="">Harlow</w>
<w f="56" flags="">Haroun</w>
<w f="56" flags="">Harz</w>
<w f="56" flags="">Hayward</w>
<w f="56" flags="">Heinz-Harald</w>
- <w f="56" flags="">Helene</w>
<w f="56" flags="">Hildesheim</w>
<w f="56" flags="">Hingis</w>
<w f="56" flags="">Hiroshige</w>
@@ -63651,7 +63532,6 @@
<w f="56" flags="">contentèrent</w>
<w f="56" flags="">contextuel</w>
<w f="56" flags="">contextuels</w>
- <w f="56" flags="">contigüe</w>
<w f="56" flags="">contraceptive</w>
<w f="56" flags="">contrebalancée</w>
<w f="56" flags="">convive</w>
@@ -65340,7 +65220,6 @@
<w f="55" flags="">Alonzo</w>
<w f="55" flags="">Alsace-Moselle</w>
<w f="55" flags="">Alton</w>
- <w f="55" flags="">An-Nasir</w>
<w f="55" flags="">Ancenis</w>
<w f="55" flags="">Andreïevitch</w>
<w f="55" flags="">Anheuser-Busch</w>
@@ -65449,7 +65328,6 @@
<w f="55" flags="">Catulle</w>
<w f="55" flags="">Caudry</w>
<w f="55" flags="">CeCe</w>
- <w f="55" flags="">Celia</w>
<w f="55" flags="">Chadwick</w>
<w f="55" flags="">Chalcis</w>
<w f="55" flags="">Challes-les-Eaux</w>
@@ -65749,7 +65627,6 @@
<w f="55" flags="">Lyle</w>
<w f="55" flags="">Léopoldville</w>
<w f="55" flags="">Lépante</w>
- <w f="55" flags="">Lévis-Mirepoix</w>
<w f="55" flags="abreviation">MBDA</w>
<w f="55" flags="abreviation">MBK</w>
<w f="55" flags="abreviation">MBR</w>
@@ -65779,7 +65656,6 @@
<w f="55" flags="">Margeride</w>
<w f="55" flags="">Mariani</w>
<w f="55" flags="">Maritain</w>
- <w f="55" flags="">Marlene</w>
<w f="55" flags="">Mary-Jane</w>
<w f="55" flags="">Massy-Palaiseau</w>
<w f="55" flags="">Maui</w>
@@ -65963,7 +65839,6 @@
<w f="55" flags="">Saint-Mars</w>
<w f="55" flags="">Saint-Patrice</w>
<w f="55" flags="">Saint-Pierre-Quilbignon</w>
- <w f="55" flags="">Saint-Pierre-ès-Liens</w>
<w f="55" flags="">Saint-Pons-de-Thomières</w>
<w f="55" flags="">Saint-Saulve</w>
<w f="55" flags="">Saint-Sauveur-le-Vicomte</w>
@@ -65981,7 +65856,6 @@
<w f="55" flags="">Scharnhorst</w>
<w f="55" flags="">Sedgwick</w>
<w f="55" flags="">Seurat</w>
- <w f="55" flags="">Severin</w>
<w f="55" flags="">Sharpe</w>
<w f="55" flags="">Shikoku</w>
<w f="55" flags="">Sidi-Bel-Abbès</w>
@@ -67843,7 +67717,6 @@
<w f="55" flags="">qu'Eugène</w>
<w f="55" flags="">qu'Henry</w>
<w f="55" flags="">qu'Ibn</w>
- <w f="55" flags="">qu'apparait</w>
<w f="55" flags="">qu'association</w>
<w f="55" flags="">qu'enfant</w>
<w f="55" flags="">qu'entraîneur-joueur</w>
@@ -68304,7 +68177,6 @@
<w f="55" flags="">visqueuses</w>
<w f="55" flags="">visualise</w>
<w f="55" flags="">vivendi</w>
- <w f="55" flags="">voila</w>
<w f="55" flags="">volcanologique</w>
<w f="55" flags="">votations</w>
<w f="55" flags="">voïvodes</w>
@@ -68592,7 +68464,6 @@
<w f="54" flags="">Florac</w>
<w f="54" flags="">Fordham</w>
<w f="54" flags="">Forges-les-Eaux</w>
- <w f="54" flags="">Forli</w>
<w f="54" flags="">Fouchy</w>
<w f="54" flags="">Fourcade</w>
<w f="54" flags="">Francs-Bourgeois</w>
@@ -68621,7 +68492,6 @@
<w f="54" flags="">Gottlob</w>
<w f="54" flags="">Gramat</w>
<w f="54" flags="">Groix</w>
- <w f="54" flags="">Gruber</w>
<w f="54" flags="">Grzegorz</w>
<w f="54" flags="">Gubbio</w>
<w f="54" flags="">Guderian</w>
@@ -68629,7 +68499,6 @@
<w f="54" flags="">Guilbert</w>
<w f="54" flags="">Guillaume-Henri</w>
<w f="54" flags="">Guillet</w>
- <w f="54" flags="">Guzman</w>
<w f="54" flags="">Guînes</w>
<w f="54" flags="">Géza</w>
<w f="54" flags="">Gîtologie</w>
@@ -68750,7 +68619,6 @@
<w f="54" flags="">McMurray</w>
<w f="54" flags="">Menem</w>
<w f="54" flags="">Menéndez</w>
- <w f="54" flags="">Mephisto</w>
<w f="54" flags="">Mersey</w>
<w f="54" flags="">Mertens</w>
<w f="54" flags="">Mickael</w>
@@ -68885,7 +68753,6 @@
<w f="54" flags="">Saint-Satur</w>
<w f="54" flags="">Saint-Seine</w>
<w f="54" flags="">Saint-Trojan</w>
- <w f="54" flags="">Saint-Valery-sur-Somme</w>
<w f="54" flags="">Sainte-Mère-Église</w>
<w f="54" flags="">Salan</w>
<w f="54" flags="">Saliout</w>
@@ -69663,7 +69530,6 @@
<w f="54" flags="">excèdent</w>
<w f="54" flags="">exigera</w>
<w f="54" flags="">exigible</w>
- <w f="54" flags="">exigüe</w>
<w f="54" flags="">exonérées</w>
<w f="54" flags="">exotisme</w>
<w f="54" flags="">expansif</w>
@@ -71212,7 +71078,6 @@
<w f="53" flags="">Hummel</w>
<w f="53" flags="">Huntsville</w>
<w f="53" flags="">Husayn</w>
- <w f="53" flags="">Hérat</w>
<w f="53" flags="abreviation">ICA</w>
<w f="53" flags="abreviation">IFK</w>
<w f="53" flags="abreviation">IGS</w>
@@ -71368,7 +71233,6 @@
<w f="53" flags="">Messac</w>
<w f="53" flags="">Metellus</w>
<w f="53" flags="">Meyers</w>
- <w f="53" flags="">Meïr</w>
<w f="53" flags="">Michon</w>
<w f="53" flags="">Milady</w>
<w f="53" flags="">Mildred</w>
@@ -71708,7 +71572,6 @@
<w f="53" flags="">aleph</w>
<w f="53" flags="">alimentera</w>
<w f="53" flags="">alleux</w>
- <w f="53" flags="">allo</w>
<w f="53" flags="">allusive</w>
<w f="53" flags="">alluvial</w>
<w f="53" flags="">alma</w>
@@ -73257,7 +73120,6 @@
<w f="53" flags="">oxydante</w>
<w f="53" flags="">pachto</w>
<w f="53" flags="">padre</w>
- <w f="53" flags="">pais</w>
<w f="53" flags="">palefreniers</w>
<w f="53" flags="">palladienne</w>
<w f="53" flags="">palléale</w>
@@ -74080,12 +73942,10 @@
<w f="52" flags="">Bateson</w>
<w f="52" flags="">Bauffremont</w>
<w f="52" flags="">Beaufort-en-Vallée</w>
- <w f="52" flags="">Bede</w>
<w f="52" flags="">Bedos</w>
<w f="52" flags="">Belloc</w>
<w f="52" flags="">Bellon</w>
<w f="52" flags="">Bertie</w>
- <w f="52" flags="">Bethel</w>
<w f="52" flags="">Bethlehem</w>
<w f="52" flags="">Bettina</w>
<w f="52" flags="">Bieber</w>
@@ -74248,11 +74108,9 @@
<w f="52" flags="">Entwistle</w>
<w f="52" flags="">Enver</w>
<w f="52" flags="">Ermont</w>
- <w f="52" flags="">Esterházy</w>
<w f="52" flags="">Eudoxie</w>
<w f="52" flags="">Eulalie</w>
<w f="52" flags="">Evanston</w>
- <w f="52" flags="">Evrard</w>
<w f="52" flags="">Ewald</w>
<w f="52" flags="abreviation">FCA</w>
<w f="52" flags="abreviation">FFB</w>
@@ -74638,7 +74496,6 @@
<w f="52" flags="">Saint-Péray</w>
<w f="52" flags="">Saint-Robert</w>
<w f="52" flags="">Saint-Sigismond</w>
- <w f="52" flags="">Saint-Valery</w>
<w f="52" flags="">Saint-Valérien</w>
<w f="52" flags="">Saint-Viateur</w>
<w f="52" flags="">Sainte-Foy-lès-Lyon</w>
@@ -75484,7 +75341,6 @@
<w f="52" flags="">empêcheront</w>
<w f="52" flags="">encadraient</w>
<w f="52" flags="">encerclèrent</w>
- <w f="52" flags="">enchainer</w>
<w f="52" flags="">enchanteurs</w>
<w f="52" flags="">enchevêtrées</w>
<w f="52" flags="">enclines</w>
@@ -76305,7 +76161,6 @@
<w f="52" flags="">premier-lieutenant</w>
<w f="52" flags="">premier-ministre</w>
<w f="52" flags="">prescrivit</w>
- <w f="52" flags="">presqu'ile</w>
<w f="52" flags="">prestement</w>
<w f="52" flags="">privilégia</w>
<w f="52" flags="">privilégiera</w>
@@ -76968,7 +76823,6 @@
<w f="51" flags="abreviation">CERS</w>
<w f="51" flags="abreviation">CESE</w>
<w f="51" flags="abreviation">COTS</w>
- <w f="51" flags="">Calderon</w>
<w f="51" flags="">Camacho</w>
<w f="51" flags="">Camargo</w>
<w f="51" flags="">Caraman</w>
@@ -77068,7 +76922,6 @@
<w f="51" flags="">Firebird</w>
<w f="51" flags="">Francheville</w>
<w f="51" flags="">Franconville</w>
- <w f="51" flags="">Fremont</w>
<w f="51" flags="">Freund</w>
<w f="51" flags="">Freyja</w>
<w f="51" flags="">Freyr</w>
@@ -77112,7 +76965,6 @@
<w f="51" flags="">Guigou</w>
<w f="51" flags="">Guimet</w>
<w f="51" flags="">Gustave-Flaubert</w>
- <w f="51" flags="">Gutierrez</w>
<w f="51" flags="">Guynemer</w>
<w f="51" flags="">Guérard</w>
<w f="51" flags="">Hamed</w>
@@ -77203,7 +77055,6 @@
<w f="51" flags="">Louis-Victor</w>
<w f="51" flags="">Loukachenko</w>
<w f="51" flags="">Lourmarin</w>
- <w f="51" flags="">Lucía</w>
<w f="51" flags="">Ludmila</w>
<w f="51" flags="">Lynda</w>
<w f="51" flags="">Léonor</w>
@@ -77232,7 +77083,6 @@
<w f="51" flags="">Massu</w>
<w f="51" flags="">Matheson</w>
<w f="51" flags="abreviation">Mbit</w>
- <w f="51" flags="">Medellin</w>
<w f="51" flags="">Mehta</w>
<w f="51" flags="">Memel</w>
<w f="51" flags="">Mendez</w>
@@ -77358,11 +77208,9 @@
<w f="51" flags="abreviation">Srebrenica</w>
<w f="51" flags="">Stanislavski</w>
<w f="51" flags="">Steinbeck</w>
- <w f="51" flags="">Suleyman</w>
<w f="51" flags="">Swindon</w>
<w f="51" flags="">Symphorien</w>
<w f="51" flags="">Sénac</w>
- <w f="51" flags="">Süleyman</w>
<w f="51" flags="abreviation">TECO</w>
<w f="51" flags="abreviation">TPI</w>
<w f="51" flags="abreviation">TREC</w>
@@ -79042,7 +78890,6 @@
<w f="51" flags="">zambienne</w>
<w f="51" flags="">zaïroise</w>
<w f="51" flags="">zhang</w>
- <w f="51" flags="">Érard</w>
<w f="51" flags="">Étrurie</w>
<w f="51" flags="">ébahis</w>
<w f="51" flags="">ébionites</w>
@@ -79108,7 +78955,6 @@
<w f="50" flags="">Asaf</w>
<w f="50" flags="">Ascanio</w>
<w f="50" flags="">Ashford</w>
- <w f="50" flags="">Avila</w>
<w f="50" flags="">Ayrault</w>
<w f="50" flags="">Azéma</w>
<w f="50" flags="">Baath</w>
@@ -79293,7 +79139,6 @@
<w f="50" flags="">Fátima</w>
<w f="50" flags="abreviation">GRUB</w>
<w f="50" flags="abreviation">GUID</w>
- <w f="50" flags="">Gabor</w>
<w f="50" flags="">Galina</w>
<w f="50" flags="">Galton</w>
<w f="50" flags="">Ganondorf</w>
@@ -79492,7 +79337,6 @@
<w f="50" flags="">Nugent</w>
<w f="50" flags="">Néfertiti</w>
<w f="50" flags="">Néhémie</w>
- <w f="50" flags="">Néstor</w>
<w f="50" flags="abreviation">OHL</w>
<w f="50" flags="">Olav</w>
<w f="50" flags="">Olomouc</w>
@@ -79723,7 +79567,6 @@
<w f="50" flags="">alumine</w>
<w f="50" flags="">alérions</w>
<w f="50" flags="">amalgamée</w>
- <w f="50" flags="">ambigües</w>
<w f="50" flags="">ambrosien</w>
<w f="50" flags="">amusés</w>
<w f="50" flags="">améliorerait</w>
@@ -81626,13 +81469,10 @@
<w f="49" flags="">Bertrade</w>
<w f="49" flags="">Beuil</w>
<w f="49" flags="">Bidassoa</w>
- <w f="49" flags="">Bjorn</w>
- <w f="49" flags="">Blamont</w>
<w f="49" flags="">Blanc-Nez</w>
<w f="49" flags="">Boganda</w>
<w f="49" flags="">Bolingbroke</w>
<w f="49" flags="">Bolitoglossa</w>
- <w f="49" flags="">Boll</w>
<w f="49" flags="">Bologhine</w>
<w f="49" flags="">Boltanski</w>
<w f="49" flags="">Bonin</w>
@@ -81752,7 +81592,6 @@
<w f="49" flags="">Duby</w>
<w f="49" flags="">Dukas</w>
<w f="49" flags="">Durruti</w>
- <w f="49" flags="">Dusseldorf</w>
<w f="49" flags="">Dutilleux</w>
<w f="49" flags="">Déols</w>
<w f="49" flags="">Déroulède</w>
@@ -82076,7 +81915,6 @@
<w f="49" flags="">Redgrave</w>
<w f="49" flags="">Redmond</w>
<w f="49" flags="">Reichel</w>
- <w f="49" flags="">Remus</w>
<w f="49" flags="">Renaix</w>
<w f="49" flags="">Renate</w>
<w f="49" flags="">René-Antoine</w>
@@ -82128,7 +81966,6 @@
<w f="49" flags="">Schnabel</w>
<w f="49" flags="">Schomberg</w>
<w f="49" flags="">Schwab</w>
- <w f="49" flags="">Schérer</w>
<w f="49" flags="">Seeger</w>
<w f="49" flags="">Serrault</w>
<w f="49" flags="">Serrières</w>
@@ -82358,7 +82195,6 @@
<w f="49" flags="">basilaire</w>
<w f="49" flags="">basis</w>
<w f="49" flags="">batiste</w>
- <w f="49" flags="">bats</w>
<w f="49" flags="">battantes</w>
<w f="49" flags="">bayonnaise</w>
<w f="49" flags="">bec-croisé</w>
@@ -84652,7 +84488,6 @@
<w f="48" flags="abreviation">HEW</w>
<w f="48" flags="">Hahn-Banach</w>
<w f="48" flags="">Haider</w>
- <w f="48" flags="">Haifa</w>
<w f="48" flags="">Halevi</w>
<w f="48" flags="">Halland</w>
<w f="48" flags="">Hamadi</w>
@@ -84944,7 +84779,6 @@
<w f="48" flags="">Saint-Projet</w>
<w f="48" flags="">Saint-Sang</w>
<w f="48" flags="">Saint-Sauvant</w>
- <w f="48" flags="">Saint-Valéry</w>
<w f="48" flags="">Saipan</w>
<w f="48" flags="">Salammbô</w>
<w f="48" flags="">Salazie</w>
@@ -85124,10 +84958,8 @@
<w f="48" flags="">altier</w>
<w f="48" flags="">altocumulus</w>
<w f="48" flags="">ambages</w>
- <w f="48" flags="">ambigüités</w>
<w f="48" flags="">ambivalents</w>
<w f="48" flags="">ambulantes</w>
- <w f="48" flags="">ame</w>
<w f="48" flags="">amidons</w>
<w f="48" flags="">amputées</w>
<w f="48" flags="">aménités</w>
@@ -85310,7 +85142,6 @@
<w f="48" flags="">broyant</w>
<w f="48" flags="">bruissement</w>
<w f="48" flags="">bubale</w>
- <w f="48" flags="">bucher</w>
<w f="48" flags="">buissonnantes</w>
<w f="48" flags="">bulbeuses</w>
<w f="48" flags="">bulbilles</w>
@@ -86625,7 +86456,6 @@
<w f="48" flags="">pavane</w>
<w f="48" flags="">payeurs</w>
<w f="48" flags="">pectines</w>
- <w f="48" flags="">pedigrees</w>
<w f="48" flags="">pelleteries</w>
<w f="48" flags="">penchaient</w>
<w f="48" flags="">pensait-il</w>
@@ -87280,9 +87110,7 @@
<w f="48" flags="">zimbabwéenne</w>
<w f="48" flags="">zébrures</w>
<w f="48" flags="">zénithal</w>
- <w f="48" flags="">Árpád</w>
<w f="48" flags="">Éric-Emmanuel</w>
- <w f="48" flags="">Évora</w>
<w f="48" flags="">Örebro</w>
<w f="48" flags="">à-pic</w>
<w f="48" flags="">âpreté</w>
@@ -87613,7 +87441,6 @@
<w f="47" flags="">Jeanine</w>
<w f="47" flags="">Jihlava</w>
<w f="47" flags="">Jil</w>
- <w f="47" flags="">Joao</w>
<w f="47" flags="">Johnstown</w>
<w f="47" flags="">Jolla</w>
<w f="47" flags="">Jules-César</w>
@@ -87748,7 +87575,6 @@
<w f="47" flags="">Nagel</w>
<w f="47" flags="">Nakayama</w>
<w f="47" flags="">Naoko</w>
- <w f="47" flags="">Ndjamena</w>
<w f="47" flags="">Netanyahou</w>
<w f="47" flags="abreviation">NiMH</w>
<w f="47" flags="">Nowak</w>
@@ -87922,6 +87748,7 @@
<w f="47" flags="">Wouters</w>
<w f="47" flags="">Yakov</w>
<w f="47" flags="">Zoltan</w>
+ <w f="47" flags="">Zoé</w>
<w f="47" flags="">abies</w>
<w f="47" flags="">abimées</w>
<w f="47" flags="">abimés</w>
@@ -89736,7 +89563,6 @@
<w f="47" flags="">yéyés</w>
<w f="47" flags="">zaporogues</w>
<w f="47" flags="">zaïroises</w>
- <w f="47" flags="">zoé</w>
<w f="47" flags="">zygomatique</w>
<w f="47" flags="">Évrard</w>
<w f="47" flags="">ébauchés</w>
@@ -89795,8 +89621,6 @@
<w f="46" flags="">Al-Nasir</w>
<w f="46" flags="">Albornoz</w>
<w f="46" flags="">Almodóvar</w>
- <w f="46" flags="">Aloïs</w>
- <w f="46" flags="">Altair</w>
<w f="46" flags="">Ambrosio</w>
<w f="46" flags="">Ambérieu</w>
<w f="46" flags="">Amélia</w>
@@ -90028,10 +89852,8 @@
<w f="46" flags="">Eilat</w>
<w f="46" flags="">Elayne</w>
<w f="46" flags="">Ellroy</w>
- <w f="46" flags="">Elodie</w>
<w f="46" flags="">Emeric</w>
<w f="46" flags="">Emmanuel-Joseph</w>
- <w f="46" flags="">Erard</w>
<w f="46" flags="">Estoril</w>
<w f="46" flags="">Eubée</w>
<w f="46" flags="">Eurythmics</w>
@@ -90149,7 +89971,6 @@
<w f="46" flags="">Karkemish</w>
<w f="46" flags="">Karsten</w>
<w f="46" flags="">Kashima</w>
- <w f="46" flags="">Kastner</w>
<w f="46" flags="">Kayser</w>
<w f="46" flags="">Kaysersberg</w>
<w f="46" flags="">Keene</w>
@@ -90237,7 +90058,6 @@
<w f="46" flags="">Melanchthon</w>
<w f="46" flags="">Merce</w>
<w f="46" flags="">Messner</w>
- <w f="46" flags="">Metaxas</w>
<w f="46" flags="">Meuse-Argonne</w>
<w f="46" flags="">Meuse-Inférieure</w>
<w f="46" flags="">Midouze</w>
@@ -90430,7 +90250,6 @@
<w f="46" flags="">Unger</w>
<w f="46" flags="">Ustinov</w>
<w f="46" flags="">Uthman</w>
- <w f="46" flags="">Vaclav</w>
<w f="46" flags="">Valleyfield</w>
<w f="46" flags="">Vatnajökull</w>
<w f="46" flags="">Vaux-le-Pénil</w>
@@ -90513,7 +90332,6 @@
<w f="46" flags="">agnosticisme</w>
<w f="46" flags="">agro</w>
<w f="46" flags="">aiguières</w>
- <w f="46" flags="">ainées</w>
<w f="46" flags="">aises</w>
<w f="46" flags="">alamans</w>
<w f="46" flags="">alcalde</w>
@@ -92578,7 +92396,6 @@
<w f="45" flags="">Alessandria</w>
<w f="45" flags="">Alghero</w>
<w f="45" flags="">Allenby</w>
- <w f="45" flags="">Almeria</w>
<w f="45" flags="">Amstel</w>
<w f="45" flags="">Anastasio</w>
<w f="45" flags="">Ancel</w>
@@ -92846,7 +92663,6 @@
<w f="45" flags="">Fréchette</w>
<w f="45" flags="">Frédéric-Chopin</w>
<w f="45" flags="">Furiani</w>
- <w f="45" flags="">Förster</w>
<w f="45" flags="">Gabriel-Péri</w>
<w f="45" flags="">Gaeta</w>
<w f="45" flags="">Gandhara</w>
@@ -92864,7 +92680,6 @@
<w f="45" flags="">Gerolamo</w>
<w f="45" flags="">Gervaise</w>
<w f="45" flags="">Geyer</w>
- <w f="45" flags="">Ghazni</w>
<w f="45" flags="">Giesbert</w>
<w f="45" flags="">Gilles-Villeneuve</w>
<w f="45" flags="">Girodet</w>
@@ -92908,7 +92723,6 @@
<w f="45" flags="">Henri-Jean</w>
<w f="45" flags="">Henri-Marie</w>
<w f="45" flags="">Henze</w>
- <w f="45" flags="">Herat</w>
<w f="45" flags="">Hernu</w>
<w f="45" flags="">Hertel</w>
<w f="45" flags="">Heywood</w>
@@ -93035,7 +92849,6 @@
<w f="45" flags="">Lucasfilm</w>
<w f="45" flags="">Ludmilla</w>
<w f="45" flags="">Lugosi</w>
- <w f="45" flags="">Lukács</w>
<w f="45" flags="">Lussac</w>
<w f="45" flags="">Lysias</w>
<w f="45" flags="">Léonore</w>
@@ -93105,13 +92918,11 @@
<w f="45" flags="">Mullin</w>
<w f="45" flags="">Mur-de-Barrez</w>
<w f="45" flags="">Mykola</w>
- <w f="45" flags="">Médan</w>
<w f="45" flags="">Média-Participations</w>
<w f="45" flags="">Méline</w>
<w f="45" flags="">Méré</w>
<w f="45" flags="">Métis-sur-Mer</w>
<w f="45" flags="">Mézy</w>
- <w f="45" flags="">Mûr-de-Bretagne</w>
<w f="45" flags="">Mœbius</w>
<w f="45" flags="">Najac</w>
<w f="45" flags="">Nanaimo</w>
@@ -93233,7 +93044,6 @@
<w f="45" flags="">Sanlúcar</w>
<w f="45" flags="">Sansepolcro</w>
<w f="45" flags="">Sascha</w>
- <w f="45" flags="">Scherer</w>
<w f="45" flags="">Sempach</w>
<w f="45" flags="">Sempé</w>
<w f="45" flags="">Serrès</w>
@@ -93281,7 +93091,6 @@
<w f="45" flags="">Teniers</w>
<w f="45" flags="">Terrail</w>
<w f="45" flags="">Texaco</w>
- <w f="45" flags="">Theodoros</w>
<w f="45" flags="">Thouarcé</w>
<w f="45" flags="">Thérain</w>
<w f="45" flags="">Todor</w>
@@ -95733,7 +95542,6 @@
<w f="44" flags="">Freytag</w>
<w f="44" flags="">Friedländer</w>
<w f="44" flags="">Fréchet</w>
- <w f="44" flags="">Fréderic</w>
<w f="44" flags="">Fréville</w>
<w f="44" flags="">Funkadelic</w>
<w f="44" flags="">Furetière</w>
@@ -95845,7 +95653,6 @@
<w f="44" flags="">Jankélévitch</w>
<w f="44" flags="">Japhet</w>
<w f="44" flags="">Jarreau</w>
- <w f="44" flags="">Jean-Barthélémy</w>
<w f="44" flags="">Jean-Blaise</w>
<w f="44" flags="">Jean-Hilaire</w>
<w f="44" flags="">Jeanneau</w>
@@ -95945,7 +95752,6 @@
<w f="44" flags="">Mascagni</w>
<w f="44" flags="">Masevaux</w>
<w f="44" flags="">Maumont</w>
- <w f="44" flags="">Medan</w>
<w f="44" flags="">Medford</w>
<w f="44" flags="">Meltzer</w>
<w f="44" flags="">Merrimack</w>
@@ -97060,7 +96866,6 @@
<w f="44" flags="">exprimables</w>
<w f="44" flags="">externalité</w>
<w f="44" flags="">extra-européenne</w>
- <w f="44" flags="">extrémis</w>
<w f="44" flags="">extrême-orientales</w>
<w f="44" flags="">extérioriser</w>
<w f="44" flags="">exubérants</w>
@@ -98836,7 +98641,6 @@
<w f="43" flags="">Hedi</w>
<w f="43" flags="">Hendry</w>
<w f="43" flags="">Henkel</w>
- <w f="43" flags="">Hernan</w>
<w f="43" flags="">Herta</w>
<w f="43" flags="">Hi-Tek</w>
<w f="43" flags="">Hilliard</w>
@@ -98891,7 +98695,6 @@
<w f="43" flags="">Kristiansand</w>
<w f="43" flags="">Kronenbourg</w>
<w f="43" flags="">Kumasi</w>
- <w f="43" flags="">Kästner</w>
<w f="43" flags="">L'Extravagant</w>
<w f="43" flags="">L'Impromptu</w>
<w f="43" flags="">L'Iveco</w>
@@ -98934,8 +98737,6 @@
<w f="43" flags="">Louise-Charlotte</w>
<w f="43" flags="">Louise-Henriette</w>
<w f="43" flags="">Louise-Élisabeth</w>
- <w f="43" flags="">Lubeck</w>
- <w f="43" flags="">Lukacs</w>
<w f="43" flags="">Léovigild</w>
<w f="43" flags="">Lörrach</w>
<w f="43" flags="">Macina</w>
@@ -98968,7 +98769,6 @@
<w f="43" flags="">Meghalaya</w>
<w f="43" flags="">Melnikov</w>
<w f="43" flags="">Mencius</w>
- <w f="43" flags="">Metaxás</w>
<w f="43" flags="">Meulen</w>
<w f="43" flags="">Meximieux</w>
<w f="43" flags="">Michel-Jean</w>
@@ -99089,7 +98889,6 @@
<w f="43" flags="">Saint-Pair-sur-Mer</w>
<w f="43" flags="">Saint-Révérend</w>
<w f="43" flags="">Saint-Taurin</w>
- <w f="43" flags="">Saint-Valéry-sur-Somme</w>
<w f="43" flags="">Saint-Étienne-du-Grès</w>
<w f="43" flags="">Sainte-Agathe-des-Monts</w>
<w f="43" flags="">Sambor</w>
@@ -100925,7 +100724,6 @@
<w f="42" flags="">Andhra</w>
<w f="42" flags="">André-Jacques</w>
<w f="42" flags="">Anne-Françoise</w>
- <w f="42" flags="">Antares</w>
<w f="42" flags="">Antoine-Nicolas</w>
<w f="42" flags="">Arica</w>
<w f="42" flags="">Armand-Charles</w>
@@ -101051,7 +100849,6 @@
<w f="42" flags="">Charles-Émile</w>
<w f="42" flags="">Charlotte-Élisabeth</w>
<w f="42" flags="">Charton</w>
- <w f="42" flags="">Chatenay</w>
<w f="42" flags="">Chaudfontaine</w>
<w f="42" flags="">Chea</w>
<w f="42" flags="">Cheadle</w>
@@ -101088,7 +100885,6 @@
<w f="42" flags="">Crivelli</w>
<w f="42" flags="">Croix-Haute</w>
<w f="42" flags="">Cruseilles</w>
- <w f="42" flags="">Crusoe</w>
<w f="42" flags="">Crémazie</w>
<w f="42" flags="">Célia</w>
<w f="42" flags="">Cúcuta</w>
@@ -101308,7 +101104,6 @@
<w f="42" flags="">Leeuwenhoek</w>
<w f="42" flags="">Lely</w>
<w f="42" flags="">Lemesle</w>
- <w f="42" flags="">Leonidas</w>
<w f="42" flags="">Lerne</w>
<w f="42" flags="">Letizia</w>
<w f="42" flags="">Liamone</w>
@@ -101467,7 +101262,6 @@
<w f="42" flags="">Saint-Basile-le-Grand</w>
<w f="42" flags="">Saint-Denis-en-Val</w>
<w f="42" flags="">Saint-Fort-sur-le-Né</w>
- <w f="42" flags="">Saint-Germain-des-Près</w>
<w f="42" flags="">Saint-Gilles-du-Gard</w>
<w f="42" flags="">Saint-Hilaire-des-Landes</w>
<w f="42" flags="">Saint-Laurent-des-Eaux</w>
@@ -103579,7 +103373,6 @@
<w f="41" flags="">Aravane</w>
<w f="41" flags="">Arenberg</w>
<w f="41" flags="">Arnoult</w>
- <w f="41" flags="">Arpad</w>
<w f="41" flags="">Artevelde</w>
<w f="41" flags="">Audiberti</w>
<w f="41" flags="">Auto-Tune</w>
@@ -103743,7 +103536,6 @@
<w f="41" flags="">Culpeper</w>
<w f="41" flags="">Custoza</w>
<w f="41" flags="">Cziffra</w>
- <w f="41" flags="">Cámpora</w>
<w f="41" flags="">Dancourt</w>
<w f="41" flags="">Daniel-Charles</w>
<w f="41" flags="">Danielsson</w>
@@ -103798,13 +103590,11 @@
<w f="41" flags="">Erlanger</w>
<w f="41" flags="">Ernest-Wallon</w>
<w f="41" flags="">Essling</w>
- <w f="41" flags="">Esterhazy</w>
<w f="41" flags="">Esternay</w>
<w f="41" flags="">Euphémie</w>
<w f="41" flags="">Euratom</w>
<w f="41" flags="">Euric</w>
<w f="41" flags="">Europe-Afrique</w>
- <w f="41" flags="">Evora</w>
<w f="41" flags="">Eyadema</w>
<w f="41" flags="">Fabrègues</w>
<w f="41" flags="">Falkenberg</w>
@@ -103912,7 +103702,6 @@
<w f="41" flags="">Hooch</w>
<w f="41" flags="">Hopf</w>
<w f="41" flags="">Horrocks</w>
- <w f="41" flags="">Horváth</w>
<w f="41" flags="">Houtman</w>
<w f="41" flags="">Howells</w>
<w f="41" flags="">Huai</w>
@@ -104042,7 +103831,6 @@
<w f="41" flags="">Mavrocordato</w>
<w f="41" flags="">Mechelen</w>
<w f="41" flags="">Mecklenburg</w>
- <w f="41" flags="">Melaine</w>
<w f="41" flags="">Mentana</w>
<w f="41" flags="">Merteuil</w>
<w f="41" flags="">Meurisse</w>
@@ -104184,7 +103972,6 @@
<w f="41" flags="">Rykiel</w>
<w f="41" flags="">Saaremaa</w>
<w f="41" flags="">Saint-André-sur-Orne</w>
- <w f="41" flags="">Saint-Barthélemy-d'Anjou</w>
<w f="41" flags="">Saint-Brice-sous-Forêt</w>
<w f="41" flags="">Saint-Désiré</w>
<w f="41" flags="">Saint-Gabriel-de-Brandon</w>
@@ -104368,7 +104155,6 @@
<w f="41" flags="">altéra</w>
<w f="41" flags="">alésée</w>
<w f="41" flags="">ambidextres</w>
- <w f="41" flags="">ames</w>
<w f="41" flags="">amirauté</w>
<w f="41" flags="">ampère</w>
<w f="41" flags="">amuse-gueule</w>
@@ -105614,7 +105400,6 @@
<w f="41" flags="">moyen-oriental</w>
<w f="41" flags="">multilinéaires</w>
<w f="41" flags="">mures</w>
- <w f="41" flags="">murir</w>
<w f="41" flags="">murmura</w>
<w f="41" flags="">muscardine</w>
<w f="41" flags="">muscs</w>
@@ -106741,7 +106526,6 @@
<w f="40" flags="">Félibien</w>
<w f="40" flags="">Gabi</w>
<w f="40" flags="">Gaborone</w>
- <w f="40" flags="">Gadès</w>
<w f="40" flags="">Galissonière</w>
<w f="40" flags="">Garlin</w>
<w f="40" flags="">Garmisch</w>
@@ -106751,7 +106535,6 @@
<w f="40" flags="">Gergy</w>
<w f="40" flags="">Germersheim</w>
<w f="40" flags="">Gethsémani</w>
- <w f="40" flags="">Ghaznî</w>
<w f="40" flags="">Ghelderode</w>
<w f="40" flags="">Ghiberti</w>
<w f="40" flags="">Giap</w>
@@ -106824,7 +106607,6 @@
<w f="40" flags="">Honnorat</w>
<w f="40" flags="">Hopewell</w>
<w f="40" flags="">Hornbach</w>
- <w f="40" flags="">Horvath</w>
<w f="40" flags="">Houat</w>
<w f="40" flags="">Hugues-Bernard</w>
<w f="40" flags="">Huy-Waremme</w>
@@ -106971,7 +106753,6 @@
<w f="40" flags="">Mayhew</w>
<w f="40" flags="">Mazingarbe</w>
<w f="40" flags="">Melchisédech</w>
- <w f="40" flags="">Menard</w>
<w f="40" flags="">Mencken</w>
<w f="40" flags="">Merriman</w>
<w f="40" flags="">Merseburg</w>
@@ -109558,7 +109339,6 @@
<w f="39" flags="">Bloemaert</w>
<w f="39" flags="">Boccaccio</w>
<w f="39" flags="">Bohdan</w>
- <w f="39" flags="">Bohème-Moravie</w>
<w f="39" flags="">Bois-Dauphin</w>
<w f="39" flags="">Bois-Plage-en-Ré</w>
<w f="39" flags="">Bois-l'Évêque</w>
@@ -109612,7 +109392,6 @@
<w f="39" flags="">Cambier</w>
<w f="39" flags="">Cambrie</w>
<w f="39" flags="">Cambry</w>
- <w f="39" flags="">Campora</w>
<w f="39" flags="">Cap-Bateau</w>
<w f="39" flags="">Cap-Blanc</w>
<w f="39" flags="">Capcir</w>
@@ -109916,7 +109695,6 @@
<w f="39" flags="">Imai</w>
<w f="39" flags="">Iscariote</w>
<w f="39" flags="">Israël-Palestine</w>
- <w f="39" flags="">Istvan</w>
<w f="39" flags="">Italcementi</w>
<w f="39" flags="">Izumo</w>
<w f="39" flags="">Jacksons</w>
@@ -109959,7 +109737,6 @@
<w f="39" flags="">Kretschmer</w>
<w f="39" flags="">Kuwait</w>
<w f="39" flags="">Kvitová</w>
- <w f="39" flags="">Kœchlin</w>
<w f="39" flags="">L'Emmerdeur</w>
<w f="39" flags="">L'Insoutenable</w>
<w f="39" flags="">Labrecque</w>
@@ -111179,7 +110956,6 @@
<w f="39" flags="">décapotables</w>
<w f="39" flags="">décapé</w>
<w f="39" flags="">décela</w>
- <w f="39" flags="">déchainement</w>
<w f="39" flags="">déchainé</w>
<w f="39" flags="">déchantent</w>
<w f="39" flags="">décharnée</w>
@@ -114497,7 +114273,6 @@
<w f="38" flags="">vibrateurs</w>
<w f="38" flags="">vice-régent</w>
<w f="38" flags="">vidangé</w>
- <w f="38" flags="">vilenie</w>
<w f="38" flags="">vinifiée</w>
<w f="38" flags="">viseront</w>
<w f="38" flags="">visiophone</w>
@@ -114585,7 +114360,6 @@
<w f="37" flags="">Chapeau-Rouge</w>
<w f="37" flags="">Chapelle-en-Vercors</w>
<w f="37" flags="">Charentes-Poitou</w>
- <w f="37" flags="">Chateaubriant</w>
<w f="37" flags="">Chaussée-Saint-Victor</w>
<w f="37" flags="">Chessex</w>
<w f="37" flags="">Christophe-Philippe</w>
@@ -119672,7 +119446,6 @@
<w f="35" flags="">Henri-Maurice</w>
<w f="35" flags="">Henri-Michel</w>
<w f="35" flags="">Jean-Alfred</w>
- <w f="35" flags="">Jean-Barthélemy</w>
<w f="35" flags="">Jean-Chrétien</w>
<w f="35" flags="">Jean-Esprit</w>
<w f="35" flags="">Jean-Gabin</w>
@@ -119765,7 +119538,6 @@
<w f="35" flags="">Saint-André-de-l'Eure</w>
<w f="35" flags="">Saint-Antoine-sur-Richelieu</w>
<w f="35" flags="">Saint-Aubin-lès-Elbeuf</w>
- <w f="35" flags="">Saint-Benoît-du-Lac</w>
<w f="35" flags="">Saint-Christophe-en-Oisans</w>
<w f="35" flags="">Saint-Clément-des-Levées</w>
<w f="35" flags="">Saint-Germain-sur-Meuse</w>
@@ -120329,7 +120101,6 @@
<w f="35" flags="">chérissent</w>
<w f="35" flags="">chênes-verts</w>
<w f="35" flags="">cidreries</w>
- <w f="35" flags="">cigüe</w>
<w f="35" flags="">cimentiers</w>
<w f="35" flags="">cingalaise</w>
<w f="35" flags="">circonférences</w>
@@ -120504,7 +120275,6 @@
<w f="35" flags="">cynthia</w>
<w f="35" flags="">cytise</w>
<w f="35" flags="">cytosines</w>
- <w f="35" flags="">cà</w>
<w f="35" flags="">câblerie</w>
<w f="35" flags="">câbliers</w>
<w f="35" flags="">câline</w>
@@ -121066,7 +120836,6 @@
<w f="35" flags="">envahisse</w>
<w f="35" flags="">envasée</w>
<w f="35" flags="">envisageons</w>
- <w f="35" flags="">envoutante</w>
<w f="35" flags="">errata</w>
<w f="35" flags="">escarres</w>
<w f="35" flags="">esclavagisme</w>
@@ -123576,7 +123345,6 @@
<w f="34" flags="">Saint-Nicolas-en-Forêt</w>
<w f="34" flags="">Saint-Pierre-des-Landes</w>
<w f="34" flags="">Saint-Pierre-la-Vieille</w>
- <w f="34" flags="">Saint-Pierre-lès-Elbeuf</w>
<w f="34" flags="">Saint-Prime</w>
<w f="34" flags="">Saint-Sauveur-des-Monts</w>
<w f="34" flags="">Saint-Sylvain-d'Anjou</w>
@@ -123692,7 +123460,6 @@
<w f="34" flags="">arco</w>
<w f="34" flags="">argonautes</w>
<w f="34" flags="">arguèrent</w>
- <w f="34" flags="">argüant</w>
<w f="34" flags="">arion</w>
<w f="34" flags="">arithmétiquement</w>
<w f="34" flags="">armagnacs</w>
@@ -123859,7 +123626,6 @@
<w f="34" flags="">catalpa</w>
<w f="34" flags="">catin</w>
<w f="34" flags="">caïques</w>
- <w f="34" flags="">celeste</w>
<w f="34" flags="">celluloses</w>
<w f="34" flags="">cent-six</w>
<w f="34" flags="">centigrades</w>
@@ -124331,7 +124097,6 @@
<w f="34" flags="">exemptait</w>
<w f="34" flags="">exhalé</w>
<w f="34" flags="">exhumèrent</w>
- <w f="34" flags="">exigües</w>
<w f="34" flags="">exorde</w>
<w f="34" flags="">expectoration</w>
<w f="34" flags="">expectorations</w>
@@ -126622,7 +126387,6 @@
<w f="33" flags="">exaucez-nous</w>
<w f="33" flags="">excavatrices</w>
<w f="33" flags="">exclura</w>
- <w f="33" flags="">exigüité</w>
<w f="33" flags="">expansée</w>
<w f="33" flags="">expectatives</w>
<w f="33" flags="">expiations</w>
@@ -128501,7 +128265,6 @@
<w f="32" flags="">baveuse</w>
<w f="32" flags="">becquées</w>
<w f="32" flags="">bedeaux</w>
- <w f="32" flags="">bee</w>
<w f="32" flags="">beignes</w>
<w f="32" flags="">benjamines</w>
<w f="32" flags="">bercent</w>
@@ -129339,7 +129102,6 @@
<w f="32" flags="">hexose</w>
<w f="32" flags="">hippocratiques</w>
<w f="32" flags="">hispanisant</w>
- <w f="32" flags="">histories</w>
<w f="32" flags="">holonomie</w>
<w f="32" flags="">homotopique</w>
<w f="32" flags="">hoqueton</w>
@@ -129688,7 +129450,6 @@
<w f="32" flags="">manifestantes</w>
<w f="32" flags="">manquez</w>
<w f="32" flags="">mantilles</w>
- <w f="32" flags="">maraichers</w>
<w f="32" flags="">marasquin</w>
<w f="32" flags="">maraîchages</w>
<w f="32" flags="">marchandé</w>
@@ -130866,7 +130627,6 @@
<w f="31" flags="">Lac-à-la-Croix</w>
<w f="31" flags="">Li-An</w>
<w f="31" flags="">Limoges-Angoulême</w>
- <w f="31" flags="">Louis-Benoît</w>
<w f="31" flags="">Louis-Carabin</w>
<w f="31" flags="">Louis-Dominique</w>
<w f="31" flags="">Louis-Lazare</w>
@@ -130898,7 +130658,6 @@
<w f="31" flags="">Paul-Auguste</w>
<w f="31" flags="">Paul-Emmanuel</w>
<w f="31" flags="">Paul-Pierre</w>
- <w f="31" flags="">Pierre-Barthélemy</w>
<w f="31" flags="">Pierre-Max</w>
<w f="31" flags="">Pierre-Thomas</w>
<w f="31" flags="">Plancher-Bas</w>
@@ -131444,7 +131203,6 @@
<w f="31" flags="">coûts-avantages</w>
<w f="31" flags="">crabotage</w>
<w f="31" flags="">craindrait</w>
- <w f="31" flags="">cranes</w>
<w f="31" flags="">craqua</w>
<w f="31" flags="">craquelle</w>
<w f="31" flags="">craquelure</w>
@@ -131593,7 +131351,6 @@
<w f="31" flags="">d'hôtesses</w>
<w f="31" flags="">d'idéaliser</w>
<w f="31" flags="">d'idéologues</w>
- <w f="31" flags="">d'iles</w>
<w f="31" flags="">d'illuminés</w>
<w f="31" flags="">d'illusionniste</w>
<w f="31" flags="">d'ilots</w>
@@ -133753,7 +133510,6 @@
<w f="30" flags="abreviation">C-B</w>
<w f="30" flags="">Calgary-Centre-Nord</w>
<w f="30" flags="">Cannes-Est</w>
- <w f="30" flags="">Castille-et-Léon</w>
<w f="30" flags="">Central-Var</w>
<w f="30" flags="">Centre-Péninsule</w>
<w f="30" flags="">Champ-Fleuri</w>
@@ -133807,8 +133563,6 @@
<w f="30" flags="">Gabriel-Christophe</w>
<w f="30" flags="">Gabriel-Marie</w>
<w f="30" flags="">Gabriel-Tristan</w>
- <w f="30" flags="">Gades</w>
- <w f="30" flags="">Gaetan</w>
<w f="30" flags="">George-Albert</w>
<w f="30" flags="">Gilbert-Alphonse</w>
<w f="30" flags="">Gilbert-Boucher</w>
@@ -134109,7 +133863,6 @@
<w f="30" flags="">aspersions</w>
<w f="30" flags="">assaillante</w>
<w f="30" flags="">assemblaient</w>
- <w f="30" flags="">assener</w>
<w f="30" flags="">asservirent</w>
<w f="30" flags="">assomma</w>
<w f="30" flags="">assonancés</w>
@@ -137173,7 +136926,6 @@
<w f="28" flags="">Saint-Maurice-de-Roche</w>
<w f="28" flags="">Saint-Modeste</w>
<w f="28" flags="">Saint-Médard-en-Forez</w>
- <w f="28" flags="">Saint-Mélaine</w>
<w f="28" flags="">Saint-Nazaire-d'Aude</w>
<w f="28" flags="">Saint-Pierre-Apôtre</w>
<w f="28" flags="">Saint-Pierre-Fourier</w>
@@ -137379,7 +137131,6 @@
<w f="28" flags="">assaillait</w>
<w f="28" flags="">assaisonne</w>
<w f="28" flags="">assassinaient</w>
- <w f="28" flags="">assena</w>
<w f="28" flags="">assimilatrice</w>
<w f="28" flags="">assisses</w>
<w f="28" flags="">assistant-directeur</w>
@@ -138499,7 +138250,6 @@
<w f="28" flags="">gaz-liquide</w>
<w f="28" flags="">gelaient</w>
<w f="28" flags="">gentillesses</w>
- <w f="28" flags="">gera</w>
<w f="28" flags="">germés</w>
<w f="28" flags="">gesticule</w>
<w f="28" flags="">geôlière</w>
@@ -140897,7 +140647,6 @@
<w f="27" flags="">Saint-Aubin-en-Bray</w>
<w f="27" flags="">Saint-Aubin-sur-Aire</w>
<w f="27" flags="">Saint-Benoit-en-Diois</w>
- <w f="27" flags="">Saint-Benoit-sur-Loire</w>
<w f="27" flags="">Saint-Bonnet-près-Bort</w>
<w f="27" flags="">Saint-Christophe-des-Bardes</w>
<w f="27" flags="">Saint-Denis-de-la-Réunion</w>
@@ -145569,7 +145318,6 @@
<w f="25" flags="">aspres</w>
<w f="25" flags="">assaillaient</w>
<w f="25" flags="">assainissent</w>
- <w f="25" flags="">assenant</w>
<w f="25" flags="">asses</w>
<w f="25" flags="">assibilation</w>
<w f="25" flags="">assimilatrices</w>
@@ -145656,7 +145404,6 @@
<w f="25" flags="">azotique</w>
<w f="25" flags="">azurant</w>
<w f="25" flags="">azurés</w>
- <w f="25" flags="">aïn</w>
<w f="25" flags="">bachelières</w>
<w f="25" flags="">bachibouzouks</w>
<w f="25" flags="">bactériologistes</w>
@@ -145759,7 +145506,6 @@
<w f="25" flags="">bocard</w>
<w f="25" flags="">bois-sorcier</w>
<w f="25" flags="">boisseliers</w>
- <w f="25" flags="">bolchevique-léniniste</w>
<w f="25" flags="">bombent</w>
<w f="25" flags="">bonasse</w>
<w f="25" flags="">bondieuseries</w>
@@ -146637,7 +146383,6 @@
<w f="25" flags="">décarburer</w>
<w f="25" flags="">décatie</w>
<w f="25" flags="">décentralisateur</w>
- <w f="25" flags="">déchainés</w>
<w f="25" flags="">déchantèrent</w>
<w f="25" flags="">déchaussage</w>
<w f="25" flags="">déchiffrait</w>
@@ -150242,7 +149987,6 @@
<w f="23" flags="">Pic-Pic</w>
<w f="23" flags="">Pierre-Ambroise</w>
<w f="23" flags="">Pierre-Aristide</w>
- <w f="23" flags="">Pierre-Barthélémy</w>
<w f="23" flags="">Pierre-Désiré</w>
<w f="23" flags="">Pierre-Fidèle</w>
<w f="23" flags="">Pierre-Hippolyte</w>
@@ -150285,7 +150029,6 @@
<w f="23" flags="">Saint-Antoine-le-Grand</w>
<w f="23" flags="">Saint-Aubin-la-Plaine</w>
<w f="23" flags="">Saint-Barthélemy-le-Plain</w>
- <w f="23" flags="">Saint-Barthélémy-d'Anjou</w>
<w f="23" flags="">Saint-Blaise-des-Simples</w>
<w f="23" flags="">Saint-Blaise-sur-Richelieu</w>
<w f="23" flags="">Saint-Bonnet-des-Quarts</w>
@@ -152244,7 +151987,6 @@
<w f="23" flags="">extra-urbains</w>
<w f="23" flags="">extrade</w>
<w f="23" flags="">extraparlementaires</w>
- <w f="23" flags="">extrémum</w>
<w f="23" flags="">extériorisées</w>
<w f="23" flags="">exécutantes</w>
<w f="23" flags="">facturait</w>
@@ -155505,7 +155247,6 @@
<w f="23" flags="">vaticinations</w>
<w f="23" flags="">vauvert</w>
<w f="23" flags="">vectorisée</w>
- <w f="23" flags="">vedas</w>
<w f="23" flags="">velléitaires</w>
<w f="23" flags="">vendez</w>
<w f="23" flags="">ventas</w>
@@ -155989,7 +155730,6 @@
<w f="21" flags="">Contrejour</w>
<w f="21" flags="">Corps-Saints</w>
<w f="21" flags="">Corse-Continent</w>
- <w f="21" flags="">Cote-Nord</w>
<w f="21" flags="">Cours-la-Ville</w>
<w f="21" flags="">Crabe-tambour</w>
<w f="21" flags="">Cramant</w>
@@ -156214,7 +155954,6 @@
<w f="21" flags="">Lons-le-Saunier-Sud</w>
<w f="21" flags="">Louis-Alfred</w>
<w f="21" flags="">Louis-Anselme</w>
- <w f="21" flags="">Louis-Barthélémy</w>
<w f="21" flags="">Louis-George</w>
<w f="21" flags="">Louis-Isidore</w>
<w f="21" flags="">Louis-Mathias</w>
@@ -156834,7 +156573,6 @@
<w f="21" flags="">arabicas</w>
<w f="21" flags="">aragonites</w>
<w f="21" flags="">arbalétrières</w>
- <w f="21" flags="">arborétum</w>
<w f="21" flags="">arbouses</w>
<w f="21" flags="">arc-boutée</w>
<w f="21" flags="">arc-doubleaux</w>
@@ -156883,7 +156621,6 @@
<w f="21" flags="">ascites</w>
<w f="21" flags="">asphalter</w>
<w f="21" flags="">assagit</w>
- <w f="21" flags="">assené</w>
<w f="21" flags="">assignera</w>
<w f="21" flags="">assistant-opérateur</w>
<w f="21" flags="">assistant-préparateur</w>
@@ -159044,7 +158781,6 @@
<w f="21" flags="">genièvres</w>
<w f="21" flags="">gerbière</w>
<w f="21" flags="">gerbières</w>
- <w f="21" flags="">gere</w>
<w f="21" flags="">germait</w>
<w f="21" flags="">germanisent</w>
<w f="21" flags="">gesticulent</w>
@@ -161793,7 +161529,6 @@
<w f="21" flags="">rivelaine</w>
<w f="21" flags="">rocailleur</w>
<w f="21" flags="">rochassier</w>
- <w f="21" flags="">rodant</w>
<w f="21" flags="">romanceros</w>
<w f="21" flags="">romano-africain</w>
<w f="21" flags="">romano-lyonnais</w>
@@ -163239,6 +162974,7 @@
<w f="18" flags="">Arthur-Luc</w>
<w f="18" flags="">Arthur-Sauvé</w>
<w f="18" flags="">Artois-Lys</w>
+ <w f="18" flags="">Arès</w>
<w f="18" flags="">Asnières-sur-Saône</w>
<w f="18" flags="">Au-Pont</w>
<w f="18" flags="">Auguste-Alexandre</w>
@@ -163759,8 +163495,6 @@
<w f="18" flags="">Louis-André-Gabriel</w>
<w f="18" flags="">Louis-Apollinaire</w>
<w f="18" flags="">Louis-Arthur</w>
- <w f="18" flags="">Louis-Barthélemy</w>
- <w f="18" flags="">Louis-Benoit</w>
<w f="18" flags="">Louis-Clément</w>
<w f="18" flags="">Louis-Comtois</w>
<w f="18" flags="">Louis-Constant</w>
@@ -164404,7 +164138,6 @@
<w f="18" flags="">allouera</w>
<w f="18" flags="">allumera</w>
<w f="18" flags="">allyle</w>
- <w f="18" flags="">allégro</w>
<w f="18" flags="">allégèrent</w>
<w f="18" flags="">alogique</w>
<w f="18" flags="">alpe</w>
@@ -164603,7 +164336,6 @@
<w f="18" flags="">arthralgie</w>
<w f="18" flags="">arthropathie</w>
<w f="18" flags="">arts-plastiques</w>
- <w f="18" flags="">arès</w>
<w f="18" flags="">arénacé</w>
<w f="18" flags="">arénacées</w>
<w f="18" flags="">aréolaires</w>
@@ -164869,7 +164601,6 @@
<w f="18" flags="">battis</w>
<w f="18" flags="">baugeois</w>
<w f="18" flags="">bavé</w>
- <w f="18" flags="">beate</w>
<w f="18" flags="">bec-croisés</w>
<w f="18" flags="">becs-en-ciseaux</w>
<w f="18" flags="">bel-et-bien</w>
@@ -164945,7 +164676,6 @@
<w f="18" flags="">bocards</w>
<w f="18" flags="">boirais</w>
<w f="18" flags="">bolchevik-léniniste</w>
- <w f="18" flags="">bolchévique-léniniste</w>
<w f="18" flags="">bolchévistes</w>
<w f="18" flags="">bollard</w>
<w f="18" flags="">bolée</w>
@@ -165665,7 +165395,6 @@
<w f="18" flags="">convolera</w>
<w f="18" flags="">convolutifs</w>
<w f="18" flags="">convoyèrent</w>
- <w f="18" flags="">convulse</w>
<w f="18" flags="">convulsés</w>
<w f="18" flags="">convînt</w>
<w f="18" flags="">coordonnèrent</w>
@@ -172438,10 +172167,8 @@
<w f="18" flags="">tragicomiques</w>
<w f="18" flags="">trahiraient</w>
<w f="18" flags="">trainage</w>
- <w f="18" flags="">trainard</w>
<w f="18" flags="">traines</w>
<w f="18" flags="">traitresses</w>
- <w f="18" flags="">traitrises</w>
<w f="18" flags="">tramant</w>
<w f="18" flags="">traminot</w>
<w f="18" flags="">transcodé</w>
@@ -173904,7 +173631,6 @@
<w f="15" flags="">Laurent-Théodore</w>
<w f="15" flags="">Laval-en-Bas</w>
<w f="15" flags="">Lazare-Goujon</w>
- <w f="15" flags="">Levis-Mirepoix</w>
<w f="15" flags="">Levy-Strauss</w>
<w f="15" flags="">Lille-Adam</w>
<w f="15" flags="">Lille-Valenciennes</w>
@@ -174085,7 +173811,6 @@
<w f="15" flags="">Moutier-Granges</w>
<w f="15" flags="">Moutiers-au-Perche</w>
<w f="15" flags="">Moyen-Arctique</w>
- <w f="15" flags="">Mur-de-Bretagne</w>
<w f="15" flags="">Murs-de-la-Roquette</w>
<w f="15" flags="">Muscadet-Sèvre</w>
<w f="15" flags="">Mutai</w>
@@ -174305,7 +174030,6 @@
<w f="15" flags="">Saint-Aubin-du-Désert</w>
<w f="15" flags="">Saint-Aubin-le-Monial</w>
<w f="15" flags="">Saint-Auguste</w>
- <w f="15" flags="">Saint-Benoit-du-Lac</w>
<w f="15" flags="">Saint-Benoît-Joseph-Labre</w>
<w f="15" flags="">Saint-Bonnet-de-Vieille-Vigne</w>
<w f="15" flags="">Saint-Charlemagne</w>
@@ -174432,7 +174156,6 @@
<w f="15" flags="">Saint-Pierre-la-Bruyère</w>
<w f="15" flags="">Saint-Pierre-le-Marché</w>
<w f="15" flags="">Saint-Pierre-les-Bois</w>
- <w f="15" flags="">Saint-Pierre-les-Elbeuf</w>
<w f="15" flags="">Saint-Priez</w>
<w f="15" flags="">Saint-Rame</w>
<w f="15" flags="">Saint-Roch-Ouest</w>
@@ -175160,7 +174883,6 @@
<w f="15" flags="">assainirent</w>
<w f="15" flags="">assassineront</w>
<w f="15" flags="">asselin</w>
- <w f="15" flags="">assenés</w>
<w f="15" flags="">assermentations</w>
<w f="15" flags="">assermenter</w>
<w f="15" flags="">asseyez</w>
@@ -175533,7 +175255,6 @@
<w f="15" flags="">baveuses</w>
<w f="15" flags="">bavolet</w>
<w f="15" flags="">bavolets</w>
- <w f="15" flags="">beal</w>
<w f="15" flags="">beard</w>
<w f="15" flags="">beau-petit-fils</w>
<w f="15" flags="">bec-en-ciseaux</w>
@@ -176788,7 +176509,6 @@
<w f="15" flags="">couseuse</w>
<w f="15" flags="">cousinant</w>
<w f="15" flags="">cousirent</w>
- <w f="15" flags="">couteront</w>
<w f="15" flags="">couturés</w>
<w f="15" flags="">couvent-forteresse</w>
<w f="15" flags="">couvent-hôpital</w>
@@ -178863,7 +178583,6 @@
<w f="15" flags="">ergotages</w>
<w f="15" flags="">ergoteur</w>
<w f="15" flags="">erse</w>
- <w f="15" flags="">es-qualité</w>
<w f="15" flags="">escaladera</w>
<w f="15" flags="">escamotage</w>
<w f="15" flags="">escarmouchant</w>
@@ -178987,7 +178706,6 @@
<w f="15" flags="">ex-lieutenant-colonel</w>
<w f="15" flags="">ex-lycée</w>
<w f="15" flags="">ex-maison</w>
- <w f="15" flags="">ex-maitresse</w>
<w f="15" flags="">ex-marxiste</w>
<w f="15" flags="">ex-nobles</w>
<w f="15" flags="">ex-parlementaire</w>
@@ -179520,7 +179238,6 @@
<w f="15" flags="">galéjades</w>
<w f="15" flags="">gamal</w>
<w f="15" flags="">gangreneuse</w>
- <w f="15" flags="">gangreneux</w>
<w f="15" flags="">gangrénées</w>
<w f="15" flags="">gantelée</w>
<w f="15" flags="">garaient</w>
@@ -183911,7 +183628,6 @@
<w f="15" flags="">puinés</w>
<w f="15" flags="">puisement</w>
<w f="15" flags="">puisqu'Israël</w>
- <w f="15" flags="">puisqu'a</w>
<w f="15" flags="">puisqu'ensuite</w>
<w f="15" flags="">puits-fontaine</w>
<w f="15" flags="">pulpaires</w>
@@ -186084,7 +185800,6 @@
<w f="15" flags="">sur-monde</w>
<w f="15" flags="">sur-tarification</w>
<w f="15" flags="">surabondances</w>
- <w f="15" flags="">suraigües</w>
<w f="15" flags="">surchargeait</w>
<w f="15" flags="">surchauffaient</w>
<w f="15" flags="">surchauffent</w>
@@ -186799,7 +186514,6 @@
<w f="15" flags="">voilaient</w>
<w f="15" flags="">voilait</w>
<w f="15" flags="">voiturée</w>
- <w f="15" flags="">volapuk</w>
<w f="15" flags="">volerai</w>
<w f="15" flags="">voleraient</w>
<w f="15" flags="">voletaient</w>
@@ -187508,7 +187222,6 @@
<w f="10" flags="">Saint-Jean-Évangéliste</w>
<w f="10" flags="">Saint-Laurent-au-Bois</w>
<w f="10" flags="">Saint-Martin-de-la-Coudre</w>
- <w f="10" flags="">Saint-Pierre-es-Liens</w>
<w f="10" flags="">Sainte-Anne-du-Ruisseau</w>
<w f="10" flags="">Sainte-Françoise-Romaine</w>
<w f="10" flags="">Sainte-Marie-de-la-Pierre-qui-Vire</w>
@@ -187766,7 +187479,6 @@
<w f="10" flags="">baty</w>
<w f="10" flags="">beaubourg</w>
<w f="10" flags="">beaume</w>
- <w f="10" flags="">bebe</w>
<w f="10" flags="">bec-scie</w>
<w f="10" flags="">becques</w>
<w f="10" flags="">becquets</w>
@@ -188020,7 +187732,6 @@
<w f="10" flags="">chérissez</w>
<w f="10" flags="">chérusques</w>
<w f="10" flags="">chênaies-frênaies</w>
- <w f="10" flags="">ci-git</w>
<w f="10" flags="">cibo</w>
<w f="10" flags="">ciboulot</w>
<w f="10" flags="">cicérone</w>
@@ -189938,7 +189649,6 @@
<w f="10" flags="">vengeons</w>
<w f="10" flags="">venons-en</w>
<w f="10" flags="">vergeté</w>
- <w f="10" flags="">vergeure</w>
<w f="10" flags="">versons</w>
<w f="10" flags="">vesdre</w>
<w f="10" flags="">vessigon</w>
@@ -190000,7 +189710,6 @@
<w f="10" flags="">zinnia</w>
<w f="10" flags="">zinnias</w>
<w f="10" flags="">zizanies</w>
- <w f="10" flags="">zoe</w>
<w f="10" flags="">zog</w>
<w f="10" flags="">zoopsie</w>
<w f="10" flags="">zorilles</w>
@@ -190543,9 +190252,7 @@
<w f="1" flags="">R-tune</w>
<w f="1" flags="">Ra-ra</w>
<w f="1" flags="">Rabota</w>
- <w f="1" flags="">Rague</w>
<w f="1" flags="">Ragues</w>
- <w f="1" flags="">Ragué</w>
<w f="1" flags="">Ramez</w>
<w f="1" flags="">Ramons</w>
<w f="1" flags="">Ranche</w>
@@ -190668,7 +190375,6 @@
<w f="1" flags="">Zizis</w>
<w f="1" flags="">Zoïles</w>
<w f="1" flags="">abattez</w>
- <w f="1" flags="">abbes</w>
<w f="1" flags="">abbevillien</w>
<w f="1" flags="">abdeslam</w>
<w f="1" flags="">abiétacées</w>
@@ -190683,7 +190389,6 @@
<w f="1" flags="">admonitions</w>
<w f="1" flags="">afro-descendants</w>
<w f="1" flags="">agache</w>
- <w f="1" flags="">agee</w>
<w f="1" flags="">agréez</w>
<w f="1" flags="">agui</w>
<w f="1" flags="">ahan</w>
diff --git a/java/res/raw/main_en.dict b/java/res/raw/main_en.dict
index 2cfa351..f544da6 100644
--- a/java/res/raw/main_en.dict
+++ b/java/res/raw/main_en.dict
Binary files differ
diff --git a/java/res/raw/main_fr.dict b/java/res/raw/main_fr.dict
index cfa9f47..084ef7c 100644
--- a/java/res/raw/main_fr.dict
+++ b/java/res/raw/main_fr.dict
Binary files differ
diff --git a/java/res/values-en/whitelist.xml b/java/res/values-en/whitelist.xml
index bcb884e..29a828c 100644
--- a/java/res/values-en/whitelist.xml
+++ b/java/res/values-en/whitelist.xml
@@ -30,62 +30,15 @@
<item>ill</item>
<item>I\'ll</item>
- <!-- Following entries came from AutoText -->
- <!-- TODO: Trim down these entries by removing ones getting auto-corrected by the typing
- error correction algorithms. -->
- <item>255</item>
- <item>abouta</item>
- <item>about a</item>
-
- <item>255</item>
- <item>aboutit</item>
- <item>about it</item>
-
- <item>255</item>
- <item>aboutthe</item>
- <item>about the</item>
-
- <item>255</item>
- <item>acheive</item>
- <item>achieve</item>
-
- <item>255</item>
- <item>acheived</item>
- <item>achieved</item>
-
- <item>255</item>
- <item>acheiving</item>
- <item>achieving</item>
+ <!-- Following entries came from AutoText the Android keyboard no longer uses. -->
+ <!-- TODO: Trim down more entries by removing ones that get auto-corrected by the
+ Android keyboard's own typing error correction algorithms. -->
<item>255</item>
<item>acomodate</item>
<item>accommodate</item>
<item>255</item>
- <item>accomodate</item>
- <item>accommodate</item>
-
- <item>255</item>
- <item>acn</item>
- <item>can</item>
-
- <item>255</item>
- <item>adn</item>
- <item>and</item>
-
- <item>255</item>
- <item>agian</item>
- <item>again</item>
-
- <item>255</item>
- <item>ahd</item>
- <item>had</item>
-
- <item>255</item>
- <item>ahve</item>
- <item>have</item>
-
- <item>255</item>
<item>aint</item>
<item>ain\'t</item>
@@ -94,82 +47,14 @@
<item>a lot</item>
<item>255</item>
- <item>amde</item>
- <item>made</item>
-
- <item>255</item>
- <item>amke</item>
- <item>make</item>
-
- <item>255</item>
- <item>andone</item>
- <item>and one</item>
-
- <item>255</item>
<item>andteh</item>
<item>and the</item>
<item>255</item>
- <item>anothe</item>
- <item>another</item>
-
- <item>255</item>
<item>arent</item>
<item>aren\'t</item>
<item>255</item>
- <item>asthe</item>
- <item>as the</item>
-
- <item>255</item>
- <item>atthe</item>
- <item>at the</item>
-
- <item>255</item>
- <item>bakc</item>
- <item>back</item>
-
- <item>255</item>
- <item>beacuse</item>
- <item>because</item>
-
- <item>255</item>
- <item>becasue</item>
- <item>because</item>
-
- <item>255</item>
- <item>becaus</item>
- <item>because</item>
-
- <item>255</item>
- <item>becausea</item>
- <item>because a</item>
-
- <item>255</item>
- <item>becauseof</item>
- <item>because of</item>
-
- <item>255</item>
- <item>becausethe</item>
- <item>because the</item>
-
- <item>255</item>
- <item>becauseyou</item>
- <item>because you</item>
-
- <item>255</item>
- <item>becuase</item>
- <item>because</item>
-
- <item>255</item>
- <item>becuse</item>
- <item>because</item>
-
- <item>255</item>
- <item>beleive</item>
- <item>believe</item>
-
- <item>255</item>
<item>bot</item>
<item>not</item>
@@ -178,126 +63,18 @@
<item>but</item>
<item>255</item>
- <item>butthe</item>
- <item>but the</item>
-
- <item>255</item>
<item>cant</item>
<item>can\'t</item>
<item>255</item>
- <item>certian</item>
- <item>certain</item>
-
- <item>255</item>
- <item>changable</item>
- <item>changeable</item>
-
- <item>255</item>
- <item>chekc</item>
- <item>check</item>
-
- <item>255</item>
- <item>chnage</item>
- <item>change</item>
-
- <item>255</item>
- <item>couldnt</item>
- <item>couldn\'t</item>
-
- <item>255</item>
- <item>couldthe</item>
- <item>could the</item>
-
- <item>255</item>
- <item>couldve</item>
- <item>could\'ve</item>
-
- <item>255</item>
- <item>cna</item>
- <item>can</item>
-
- <item>255</item>
- <item>committment</item>
- <item>commitment</item>
-
- <item>255</item>
- <item>committments</item>
- <item>commitments</item>
-
- <item>255</item>
- <item>companys</item>
- <item>company\'s</item>
-
- <item>255</item>
- <item>cxan</item>
- <item>can</item>
-
- <item>255</item>
<item>didint</item>
<item>didn\'t</item>
<item>255</item>
- <item>didnot</item>
- <item>did not</item>
-
- <item>255</item>
- <item>didnt</item>
- <item>didn\'t</item>
-
- <item>255</item>
- <item>doesnt</item>
- <item>doesn\'t</item>
-
- <item>255</item>
- <item>dont</item>
- <item>don\'t</item>
-
- <item>255</item>
- <item>eyt</item>
- <item>yet</item>
-
- <item>255</item>
- <item>fidn</item>
- <item>find</item>
-
- <item>255</item>
<item>fora</item>
<item>for a</item>
<item>255</item>
- <item>freind</item>
- <item>friend</item>
-
- <item>255</item>
- <item>friday</item>
- <item>Friday</item>
-
- <item>255</item>
- <item>hadbeen</item>
- <item>had been</item>
-
- <item>255</item>
- <item>hadnt</item>
- <item>hadn\'t</item>
-
- <item>255</item>
- <item>haev</item>
- <item>have</item>
-
- <item>255</item>
- <item>hasbeen</item>
- <item>has been</item>
-
- <item>255</item>
- <item>hasnt</item>
- <item>hasn\'t</item>
-
- <item>255</item>
- <item>havent</item>
- <item>haven\'t</item>
-
- <item>255</item>
<item>hed</item>
<item>he\'d</item>
@@ -310,14 +87,6 @@
<item>here\'s</item>
<item>255</item>
- <item>hes</item>
- <item>he\'s</item>
-
- <item>255</item>
- <item>hlep</item>
- <item>help</item>
-
- <item>255</item>
<item>hoe</item>
<item>how</item>
@@ -342,18 +111,6 @@
<item>how\'ve</item>
<item>255</item>
- <item>hte</item>
- <item>the</item>
-
- <item>255</item>
- <item>htis</item>
- <item>this</item>
-
- <item>255</item>
- <item>hvae</item>
- <item>have</item>
-
- <item>255</item>
<item>i</item>
<item>I</item>
@@ -366,50 +123,18 @@
<item>I\'m</item>
<item>255</item>
- <item>i\'m</item>
- <item>I\'m</item>
-
- <item>255</item>
- <item>i\'ll</item>
- <item>I\'ll</item>
-
- <item>255</item>
- <item>i\'ve</item>
- <item>I\'ve</item>
-
- <item>255</item>
<item>inteh</item>
<item>in the</item>
<item>255</item>
- <item>isnt</item>
- <item>isn\'t</item>
-
- <item>255</item>
- <item>isthe</item>
- <item>is the</item>
-
- <item>255</item>
<item>itd</item>
<item>it\'d</item>
<item>255</item>
- <item>itis</item>
- <item>it is</item>
-
- <item>255</item>
- <item>itll</item>
- <item>it\'ll</item>
-
- <item>255</item>
<item>itsa</item>
<item>it\'s a</item>
<item>255</item>
- <item>ive</item>
- <item>I\'ve</item>
-
- <item>255</item>
<item>jot</item>
<item>not</item>
@@ -426,217 +151,42 @@
<item>more</item>
<item>255</item>
- <item>mkae</item>
- <item>make</item>
-
- <item>255</item>
- <item>mkaes</item>
- <item>makes</item>
-
- <item>255</item>
<item>moat</item>
<item>most</item>
<item>255</item>
- <item>monday</item>
- <item>Monday</item>
-
- <item>255</item>
<item>mot</item>
<item>not</item>
<item>255</item>
- <item>mustnt</item>
- <item>mustn\'t</item>
-
- <item>255</item>
- <item>neednt</item>
- <item>needn\'t</item>
-
- <item>255</item>
<item>nit</item>
<item>not</item>
<item>255</item>
- <item>oclock</item>
- <item>o\'clock</item>
-
- <item>255</item>
- <item>ofits</item>
- <item>of its</item>
-
- <item>255</item>
- <item>ofthe</item>
- <item>of the</item>
-
- <item>255</item>
- <item>omre</item>
- <item>more</item>
-
- <item>255</item>
- <item>oneof</item>
- <item>one of</item>
-
- <item>255</item>
<item>os</item>
<item>is</item>
<item>255</item>
- <item>otehr</item>
- <item>other</item>
-
- <item>255</item>
- <item>outof</item>
- <item>out of</item>
-
- <item>255</item>
- <item>overthe</item>
- <item>over the</item>
-
- <item>255</item>
- <item>owrk</item>
- <item>work</item>
-
- <item>255</item>
- <item>percentof</item>
- <item>percent of</item>
-
- <item>255</item>
- <item>recieve</item>
- <item>receive</item>
-
- <item>255</item>
- <item>recieved</item>
- <item>received</item>
-
- <item>255</item>
- <item>recieving</item>
- <item>receiving</item>
-
- <item>255</item>
- <item>saidthat</item>
- <item>said that</item>
-
- <item>255</item>
- <item>saidthe</item>
- <item>said the</item>
-
- <item>255</item>
- <item>saturday</item>
- <item>Saturday</item>
-
- <item>255</item>
- <item>seh</item>
- <item>she</item>
-
- <item>255</item>
- <item>shant</item>
- <item>shan\'t</item>
-
- <item>255</item>
- <item>she\'</item>
- <item>she\'ll</item>
-
- <item>255</item>
<item>shel</item>
<item>she\'ll</item>
<item>255</item>
- <item>shes</item>
- <item>she\'s</item>
-
- <item>255</item>
<item>shouldent</item>
<item>shouldn\'t</item>
+ <!-- TODO: Remove this entry after "yes" gets bumped up in the dictionary. -->
<item>255</item>
- <item>shouldnt</item>
- <item>shouldn\'t</item>
-
- <item>255</item>
- <item>shouldve</item>
- <item>should\'ve</item>
-
- <item>255</item>
- <item>sone</item>
- <item>some</item>
-
- <item>255</item>
- <item>sunday</item>
- <item>Sunday</item>
-
- <item>255</item>
- <item>tahn</item>
- <item>than</item>
-
- <item>255</item>
- <item>taht</item>
- <item>that</item>
-
- <item>255</item>
- <item>teh</item>
- <item>the</item>
+ <item>tes</item>
+ <item>yes</item>
<item>255</item>
<item>thatd</item>
<item>that\'d</item>
<item>255</item>
- <item>thatll</item>
- <item>that\'ll</item>
-
- <item>255</item>
- <item>thats</item>
- <item>that\'s</item>
-
- <item>255</item>
- <item>thatthe</item>
- <item>that the</item>
-
- <item>255</item>
- <item>theres</item>
- <item>there\'s</item>
-
- <item>255</item>
- <item>theyd</item>
- <item>they\'d</item>
-
- <item>255</item>
- <item>theyll</item>
- <item>they\'ll</item>
-
- <item>255</item>
- <item>theyre</item>
- <item>they\'re</item>
-
- <item>255</item>
- <item>theyve</item>
- <item>they\'ve</item>
-
- <item>255</item>
- <item>thier</item>
- <item>their</item>
-
- <item>255</item>
- <item>thsi</item>
- <item>this</item>
-
- <item>255</item>
- <item>thursday</item>
- <item>Thursday</item>
-
- <item>255</item>
<item>tine</item>
<item>time</item>
- <item>255</item>
- <item>tothe</item>
- <item>to the</item>
-
- <item>255</item>
- <item>tuesday</item>
- <item>Tuesday</item>
-
<!-- through additional proximity, 'uf' becomes 'of'. 'o' is not next to 'u' so anyone
typing 'uf' probably meant 'if', but 'of' is much more common and should be left
higher than 'if', hence the need for this entry. -->
@@ -664,14 +214,6 @@
<item>vis-a-vis</item>
<item>255</item>
- <item>wasnt</item>
- <item>wasn\'t</item>
-
- <item>255</item>
- <item>wednesday</item>
- <item>Wednesday</item>
-
- <item>255</item>
<item>wierd</item>
<item>weird</item>
@@ -684,22 +226,10 @@
<item>we\'re</item>
<item>255</item>
- <item>werent</item>
- <item>weren\'t</item>
-
- <item>255</item>
- <item>weve</item>
- <item>we\'ve</item>
-
- <item>255</item>
<item>whatd</item>
<item>what\'d</item>
<item>255</item>
- <item>whatll</item>
- <item>what\'ll</item>
-
- <item>255</item>
<item>whatm</item>
<item>what\'m</item>
@@ -728,18 +258,10 @@
<item>where\'s</item>
<item>255</item>
- <item>whod</item>
- <item>who\'d</item>
-
- <item>255</item>
<item>wholl</item>
<item>who\'ll</item>
<item>255</item>
- <item>whos</item>
- <item>who\'s</item>
-
- <item>255</item>
<item>whove</item>
<item>who\'ve</item>
@@ -760,22 +282,10 @@
<item>why\'ve</item>
<item>255</item>
- <item>witha</item>
- <item>with a</item>
-
- <item>255</item>
<item>wont</item>
<item>won\'t</item>
<item>255</item>
- <item>wouldnt</item>
- <item>wouldn\'t</item>
-
- <item>255</item>
- <item>wouldve</item>
- <item>would\'ve</item>
-
- <item>255</item>
<item>yall</item>
<item>y\'all</item>
@@ -787,16 +297,5 @@
<item>youd</item>
<item>you\'d</item>
- <item>255</item>
- <item>youll</item>
- <item>you\'ll</item>
-
- <item>255</item>
- <item>youre</item>
- <item>you\'re</item>
-
- <item>255</item>
- <item>youve</item>
- <item>you\'ve</item>
</string-array>
</resources>
diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml
index 8ecdffb..5596ba4 100644
--- a/java/res/values-sw600dp/dimens.xml
+++ b/java/res/values-sw600dp/dimens.xml
@@ -57,6 +57,7 @@
<fraction name="key_letter_ratio">42%</fraction>
<fraction name="key_large_letter_ratio">45%</fraction>
<fraction name="key_label_ratio">25%</fraction>
+ <fraction name="key_large_label_ratio">32%</fraction>
<fraction name="key_hint_letter_ratio">23%</fraction>
<fraction name="key_hint_label_ratio">28%</fraction>
<fraction name="key_uppercase_letter_ratio">22%</fraction>
diff --git a/java/res/values-sw768dp/dimens.xml b/java/res/values-sw768dp/dimens.xml
index 01e2284..ce33b73 100644
--- a/java/res/values-sw768dp/dimens.xml
+++ b/java/res/values-sw768dp/dimens.xml
@@ -58,6 +58,7 @@
<fraction name="key_letter_ratio">40%</fraction>
<fraction name="key_large_letter_ratio">42%</fraction>
<fraction name="key_label_ratio">28%</fraction>
+ <fraction name="key_large_label_ratio">28%</fraction>
<fraction name="key_hint_letter_ratio">23%</fraction>
<fraction name="key_hint_label_ratio">28%</fraction>
<fraction name="key_uppercase_letter_ratio">26%</fraction>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 7cad3f5..a18371f 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -55,6 +55,8 @@
<attr name="keyLargeLetterRatio" format="float" />
<!-- Size of the text for keys with multiple letters, in the proportion of key height. -->
<attr name="keyLabelRatio" format="float" />
+ <!-- Large size of the text for keys with multiple letters, in the proportion of key height. -->
+ <attr name="keyLargeLabelRatio" format="float" />
<!-- Size of the text for hint letter (= one character hint label), in the proportion of
key height. -->
<attr name="keyHintLetterRatio" format="float" />
@@ -275,7 +277,8 @@
<flag name="followKeyLargeLetterRatio" value="0x40" />
<flag name="followKeyLetterRatio" value="0x80" />
<flag name="followKeyLabelRatio" value="0xC0" />
- <flag name="followKeyHintLabelRatio" value="0x100" />
+ <flag name="followKeyLargeLabelRatio" value="0x100" />
+ <flag name="followKeyHintLabelRatio" value="0x140" />
<flag name="hasPopupHint" value="0x200" />
<flag name="hasShiftedLetterHint" value="0x400" />
<flag name="hasHintLabel" value="0x800" />
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index d8d58df..925eb55 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -59,6 +59,7 @@
<fraction name="key_letter_ratio">55%</fraction>
<fraction name="key_large_letter_ratio">65%</fraction>
<fraction name="key_label_ratio">34%</fraction>
+ <fraction name="key_large_label_ratio">40%</fraction>
<fraction name="key_hint_letter_ratio">25%</fraction>
<fraction name="key_hint_label_ratio">44%</fraction>
<fraction name="key_uppercase_letter_ratio">35%</fraction>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index b9bec98..e1f0371 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -277,21 +277,21 @@
<string name="custom_input_styles_title">Custom input styles</string>
<!-- Title of the option menu to add a new style entry in the preference settings [CHAR LIMIT=16] -->
<string name="add_style">Add style</string>
- <!-- Title of the button to add custom style entry in the settings dialog [CHAR LIMIT=12] -->
+ <!-- Title of the button to add custom style entry in the settings dialog [CHAR LIMIT=15] -->
<string name="add">Add</string>
- <!-- Title of the button to remove a custom style entry in the settings dialog [CHAR LIMIT=12] -->
+ <!-- Title of the button to remove a custom style entry in the settings dialog [CHAR LIMIT=15] -->
<string name="remove">Remove</string>
- <!-- Title of the button to save a custom style entry in the settings dialog [CHAR LIMIT=12] -->
+ <!-- Title of the button to save a custom style entry in the settings dialog [CHAR LIMIT=15] -->
<string name="save">Save</string>
- <!-- Title of the spinner for choosing a language of custom style in the settings dialog [CHAR LIMIT=12] -->
+ <!-- Title of the spinner for choosing a language of custom style in the settings dialog [CHAR LIMIT=15] -->
<string name="subtype_locale">Language</string>
- <!-- Title of the spinner for choosing a keyboard layout of custom style in the settings dialog [CHAR LIMIT=12] -->
+ <!-- Title of the spinner for choosing a keyboard layout of custom style in the settings dialog [CHAR LIMIT=15] -->
<string name="keyboard_layout_set">Layout</string>
<!-- The message of the dialog to note that a custom input style needs to be enabled. [CHAR LIMIT=64] -->
<string name="custom_input_style_note_message">"Your custom input style needs to be enabled before you start using it. Do you want to enable it now?"</string>
- <!-- Title of the button to enable a custom input style entry in the settings dialog [CHAR LIMIT=12] -->
+ <!-- Title of the button to enable a custom input style entry in the settings dialog [CHAR LIMIT=15] -->
<string name="enable">Enable</string>
- <!-- Title of the button to postpone enabling a custom input style entry in the settings dialog [CHAR LIMIT=12] -->
+ <!-- Title of the button to postpone enabling a custom input style entry in the settings dialog [CHAR LIMIT=15] -->
<string name="not_now">Not now</string>
<!-- Toast text to describe the same input style already exists [CHAR LIMIT=64]-->
<string name="custom_input_style_already_exists">"The same input style already exists: <xliff:g id="input_style_name">%s</xliff:g>"</string>
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index b3c921e..e9b0470 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -38,6 +38,7 @@
<item name="keyLetterRatio">@fraction/key_letter_ratio</item>
<item name="keyLargeLetterRatio">@fraction/key_large_letter_ratio</item>
<item name="keyLabelRatio">@fraction/key_label_ratio</item>
+ <item name="keyLargeLabelRatio">@fraction/key_large_label_ratio</item>
<item name="keyHintLetterRatio">@fraction/key_hint_letter_ratio</item>
<item name="keyHintLabelRatio">@fraction/key_hint_label_ratio</item>
<item name="keyShiftedLetterHintRatio">@fraction/key_uppercase_letter_ratio</item>
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index 5b3d1b8..a1b2eb4 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -74,6 +74,15 @@
latin:backgroundType="functional" />
<include
latin:keyboardLayout="@xml/key_styles_enter" />
+ <!-- Override defaultEnterKeyStyle in key_styles_enter.xml -->
+ <key-style
+ latin:styleName="defaultEnterKeyStyle"
+ latin:code="!code/key_enter"
+ latin:keyIcon="!icon/enter_key"
+ latin:keyLabelFlags="preserveCase|autoXScale|followKeyLargeLabelRatio"
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="functional"
+ latin:parentStyle="navigateMoreKeysStyle" />
<key-style
latin:styleName="spaceKeyStyle"
latin:code="!code/key_space"
diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml
index b8301bc..2e5a601 100644
--- a/java/res/xml/key_styles_number.xml
+++ b/java/res/xml/key_styles_number.xml
@@ -131,4 +131,13 @@
latin:keyIcon="!icon/space_key_for_number_layout"
latin:keyActionFlags="enableLongPress"
latin:parentStyle="numKeyBaseStyle" />
+ <!-- Override defaultEnterKeyStyle in key_styles_enter.xml -->
+ <key-style
+ latin:styleName="defaultEnterKeyStyle"
+ latin:code="!code/key_enter"
+ latin:keyIcon="!icon/enter_key"
+ latin:keyLabelFlags="preserveCase|autoXScale|followKeyLargeLabelRatio"
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="functional"
+ latin:parentStyle="navigateMoreKeysStyle" />
</merge>
diff --git a/java/res/xml/rows_number_normal.xml b/java/res/xml/rows_number_normal.xml
index 28bd7a1..c59e262 100644
--- a/java/res/xml/rows_number_normal.xml
+++ b/java/res/xml/rows_number_normal.xml
@@ -22,7 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<Row>
-<Key
+ <Key
latin:keyLabel="1"
latin:keyStyle="numKeyStyle" />
<Key
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
index 67e21b1..3cfef97 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
@@ -282,7 +282,12 @@
return;
}
- parent.requestSendAccessibilityEvent(mKeyboardView, event);
+ if (!parent.requestSendAccessibilityEvent(mKeyboardView, event)) {
+ // TODO: Remove this line after the top-level view for the IME
+ // window is fixed to be non-null and requestSendAccessibilityEvent
+ // can return true.
+ mAccessibilityUtils.requestSendAccessibilityEvent(event);
+ }
}
/**
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
index 2ea7d83..616b1c6 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
@@ -174,4 +174,16 @@
speak(text);
}
}
+
+ /**
+ * Sends the specified {@link AccessibilityEvent} if accessibility is
+ * enabled. No operation if accessibility is disabled.
+ *
+ * @param event The event to send.
+ */
+ public void requestSendAccessibilityEvent(AccessibilityEvent event) {
+ if (mAccessibilityManager.isEnabled()) {
+ mAccessibilityManager.sendAccessibilityEvent(event);
+ }
+ }
}
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
index 1b0e488..2623dcc 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
@@ -113,7 +113,7 @@
case MotionEvent.ACTION_HOVER_EXIT:
// Make sure we're not getting an EXIT event because the user slid
// off the keyboard area, then force a key press.
- if (pointInView(x, y)) {
+ if (pointInView(x, y) && (key != null)) {
getAccessibilityNodeProvider().simulateKeyPress(key);
}
//$FALL-THROUGH$
diff --git a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
index f4e4105..7e1889a 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
@@ -111,9 +111,6 @@
if (mKeyLabelMap.containsKey(label)) {
return context.getString(mKeyLabelMap.get(label));
}
-
- // Otherwise, return the label.
- return key.mLabel;
}
// Just attempt to speak the description.
@@ -229,6 +226,8 @@
return context.getString(mKeyCodeMap.get(code));
} else if (isDefinedNonCtrl) {
return Character.toString((char) code);
+ } else if (!TextUtils.isEmpty(key.mLabel)) {
+ return key.mLabel;
} else {
return context.getString(R.string.spoken_description_unknown, code);
}
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index c3f5e7d..45ed34e 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -66,11 +66,14 @@
private static final int LABEL_FLAGS_ALIGN_LEFT_OF_CENTER = 0x08;
private static final int LABEL_FLAGS_FONT_NORMAL = 0x10;
private static final int LABEL_FLAGS_FONT_MONO_SPACE = 0x20;
- private static final int LABEL_FLAGS_FOLLOW_KEY_RATIO_MASK = 0x1C0;
+ // Start of key text ratio enum values
+ private static final int LABEL_FLAGS_FOLLOW_KEY_TEXT_RATIO_MASK = 0x1C0;
private static final int LABEL_FLAGS_FOLLOW_KEY_LARGE_LETTER_RATIO = 0x40;
private static final int LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO = 0x80;
private static final int LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO = 0xC0;
- private static final int LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO = 0x100;
+ private static final int LABEL_FLAGS_FOLLOW_KEY_LARGE_LABEL_RATIO = 0x100;
+ private static final int LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO = 0x140;
+ // End of key text ratio mask enum values
private static final int LABEL_FLAGS_HAS_POPUP_HINT = 0x200;
private static final int LABEL_FLAGS_HAS_SHIFTED_LETTER_HINT = 0x400;
private static final int LABEL_FLAGS_HAS_HINT_LABEL = 0x800;
@@ -490,18 +493,21 @@
}
}
- public int selectTextSize(int letter, int largeLetter, int label, int hintLabel) {
- switch (mLabelFlags & LABEL_FLAGS_FOLLOW_KEY_RATIO_MASK) {
- case LABEL_FLAGS_FOLLOW_KEY_LARGE_LETTER_RATIO:
- return largeLetter;
+ public int selectTextSize(int letterSize, int largeLetterSize, int labelSize,
+ int largeLabelSize, int hintLabelSize) {
+ switch (mLabelFlags & LABEL_FLAGS_FOLLOW_KEY_TEXT_RATIO_MASK) {
case LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO:
- return letter;
+ return letterSize;
+ case LABEL_FLAGS_FOLLOW_KEY_LARGE_LETTER_RATIO:
+ return largeLetterSize;
case LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO:
- return label;
+ return labelSize;
+ case LABEL_FLAGS_FOLLOW_KEY_LARGE_LABEL_RATIO:
+ return largeLabelSize;
case LABEL_FLAGS_FOLLOW_KEY_HINT_LABEL_RATIO:
- return hintLabel;
+ return hintLabelSize;
default: // No follow key ratio flag specified.
- return StringUtils.codePointCount(mLabel) == 1 ? letter : label;
+ return StringUtils.codePointCount(mLabel) == 1 ? letterSize : labelSize;
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index cc0a1fb..2045b0c 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -191,6 +191,7 @@
/* package */ final float mKeyLetterRatio;
private final float mKeyLargeLetterRatio;
private final float mKeyLabelRatio;
+ private final float mKeyLargeLabelRatio;
private final float mKeyHintLetterRatio;
private final float mKeyShiftedLetterHintRatio;
private final float mKeyHintLabelRatio;
@@ -200,6 +201,7 @@
public int mKeyLetterSize;
public int mKeyLargeLetterSize;
public int mKeyLabelSize;
+ public int mKeyLargeLabelSize;
public int mKeyHintLetterSize;
public int mKeyShiftedLetterHintSize;
public int mKeyHintLabelSize;
@@ -219,6 +221,7 @@
} else {
mKeyLabelRatio = getRatio(a, R.styleable.KeyboardView_keyLabelRatio);
}
+ mKeyLargeLabelRatio = getRatio(a, R.styleable.KeyboardView_keyLargeLabelRatio);
mKeyLargeLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLargeLetterRatio);
mKeyHintLetterRatio = getRatio(a, R.styleable.KeyboardView_keyHintLetterRatio);
mKeyShiftedLetterHintRatio = getRatio(a,
@@ -254,6 +257,7 @@
mKeyLetterSize = (int)(keyHeight * mKeyLetterRatio);
if (mKeyLabelRatio >= 0.0f)
mKeyLabelSize = (int)(keyHeight * mKeyLabelRatio);
+ mKeyLargeLabelSize = (int)(keyHeight * mKeyLargeLabelRatio);
mKeyLargeLetterSize = (int)(keyHeight * mKeyLargeLetterRatio);
mKeyHintLetterSize = (int)(keyHeight * mKeyHintLetterRatio);
mKeyShiftedLetterHintSize = (int)(keyHeight * mKeyShiftedLetterHintRatio);
@@ -570,7 +574,8 @@
// For characters, use large font. For labels like "Done", use smaller font.
paint.setTypeface(key.selectTypeface(params.mKeyTextStyle));
final int labelSize = key.selectTextSize(params.mKeyLetterSize,
- params.mKeyLargeLetterSize, params.mKeyLabelSize, params.mKeyHintLabelSize);
+ params.mKeyLargeLetterSize, params.mKeyLabelSize, params.mKeyLargeLabelSize,
+ params.mKeyHintLabelSize);
paint.setTextSize(labelSize);
final float labelCharHeight = getCharHeight(KEY_LABEL_REFERENCE_CHAR, paint);
final float labelCharWidth = getCharWidth(KEY_LABEL_REFERENCE_CHAR, paint);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
index 2d80a79..e3661a9 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
@@ -20,6 +20,7 @@
import android.util.Log;
import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.latin.Constants;
import com.android.inputmethod.latin.ResearchLogger;
import com.android.inputmethod.latin.define.ProductionFlag;
@@ -30,8 +31,8 @@
*
* The input events are {@link #onLoadKeyboard(String)}, {@link #onSaveKeyboardState()},
* {@link #onPressKey(int)}, {@link #onReleaseKey(int, boolean)},
- * {@link #onCodeInput(int, boolean, boolean)}, {@link #onCancelInput(boolean)},
- * {@link #onUpdateShiftState(boolean)}, {@link #onLongPressTimeout(int)}.
+ * {@link #onCodeInput(int, boolean, int)}, {@link #onCancelInput(boolean)},
+ * {@link #onUpdateShiftState(int)}, {@link #onLongPressTimeout(int)}.
*
* The actions are {@link SwitchActions}'s methods.
*/
@@ -50,7 +51,7 @@
public void setSymbolsShiftedKeyboard();
/**
- * Request to call back {@link KeyboardState#onUpdateShiftState(boolean)}.
+ * Request to call back {@link KeyboardState#onUpdateShiftState(int)}.
*/
public void requestUpdatingShiftState();
@@ -371,14 +372,14 @@
}
}
- public void onUpdateShiftState(boolean autoCaps) {
+ public void onUpdateShiftState(int autoCaps) {
if (DEBUG_EVENT) {
Log.d(TAG, "onUpdateShiftState: autoCaps=" + autoCaps + " " + this);
}
updateAlphabetShiftState(autoCaps);
}
- private void updateAlphabetShiftState(boolean autoCaps) {
+ private void updateAlphabetShiftState(int autoCaps) {
if (!mIsAlphabetMode) return;
if (!mShiftKeyState.isReleasing()) {
// Ignore update shift state event while the shift key is being pressed (including
@@ -386,7 +387,7 @@
return;
}
if (!mAlphabetShiftState.isShiftLocked() && !mShiftKeyState.isIgnoring()) {
- if (mShiftKeyState.isReleasing() && autoCaps) {
+ if (mShiftKeyState.isReleasing() && autoCaps != Constants.TextUtils.CAP_MODE_OFF) {
// Only when shift key is releasing, automatic temporary upper case will be set.
setShifted(AUTOMATIC_SHIFT);
} else {
@@ -521,7 +522,7 @@
return false;
}
- public void onCodeInput(int code, boolean isSinglePointer, boolean autoCaps) {
+ public void onCodeInput(int code, boolean isSinglePointer, int autoCaps) {
if (DEBUG_EVENT) {
Log.d(TAG, "onCodeInput: code=" + Keyboard.printableCode(code)
+ " single=" + isSinglePointer
diff --git a/java/src/com/android/inputmethod/latin/Constants.java b/java/src/com/android/inputmethod/latin/Constants.java
index 7c22845..e79db36 100644
--- a/java/src/com/android/inputmethod/latin/Constants.java
+++ b/java/src/com/android/inputmethod/latin/Constants.java
@@ -106,6 +106,21 @@
}
}
+ public static class TextUtils {
+ /**
+ * Capitalization mode for {@link android.text.TextUtils#getCapsMode}: don't capitalize
+ * characters. This value may be used with
+ * {@link android.text.TextUtils#CAP_MODE_CHARACTERS},
+ * {@link android.text.TextUtils#CAP_MODE_WORDS}, and
+ * {@link android.text.TextUtils#CAP_MODE_SENTENCES}.
+ */
+ public static final int CAP_MODE_OFF = 0;
+
+ private TextUtils() {
+ // This utility class is not publicly instantiable.
+ }
+ }
+
private Constants() {
// This utility class is not publicly instantiable.
}
diff --git a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
index 22787c2..4b77473 100644
--- a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
@@ -60,7 +60,7 @@
private final boolean mUseFirstLastBigrams;
public ContactsBinaryDictionary(final Context context, final int dicTypeId, Locale locale) {
- super(context, getFilenameWithLocale(locale), dicTypeId);
+ super(context, getFilenameWithLocale(NAME, locale.toString()), dicTypeId);
mUseFirstLastBigrams = useFirstLastBigramsForLocale(locale);
registerObserver(context);
@@ -69,10 +69,6 @@
loadDictionary();
}
- private static String getFilenameWithLocale(Locale locale) {
- return NAME + "." + locale.toString() + ".dict";
- }
-
private synchronized void registerObserver(final Context context) {
// Perform a managed query. The Activity will handle closing and requerying the cursor
// when needed.
@@ -175,7 +171,7 @@
// capitalization of i.
final int wordLen = word.codePointCount(0, word.length());
if (wordLen < MAX_WORD_LENGTH && wordLen > 1) {
- super.addWord(word, FREQUENCY_FOR_CONTACTS);
+ super.addWord(word, null /* shortcut */, FREQUENCY_FOR_CONTACTS);
if (!TextUtils.isEmpty(prevWord)) {
if (mUseFirstLastBigrams) {
super.setBigram(prevWord, word, FREQUENCY_FOR_CONTACTS_BIGRAM);
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index 22d8f24..08f5854 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -22,11 +22,13 @@
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput;
import com.android.inputmethod.latin.makedict.FusionDictionary;
import com.android.inputmethod.latin.makedict.FusionDictionary.Node;
+import com.android.inputmethod.latin.makedict.FusionDictionary.WeightedString;
import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.concurrent.locks.ReentrantLock;
@@ -133,6 +135,10 @@
clearFusionDictionary();
}
+ protected static String getFilenameWithLocale(final String name, final String localeStr) {
+ return name + "." + localeStr + ".dict";
+ }
+
/**
* Closes and cleans up the binary dictionary.
*/
@@ -166,8 +172,15 @@
*/
// TODO: Create "cache dictionary" to cache fresh words for frequently updated dictionaries,
// considering performance regression.
- protected void addWord(final String word, final int frequency) {
- mFusionDictionary.add(word, frequency, null /* shortcutTargets */);
+ protected void addWord(final String word, final String shortcutTarget, final int frequency) {
+ if (shortcutTarget == null) {
+ mFusionDictionary.add(word, frequency, null);
+ } else {
+ // TODO: Do this in the subclass, with this class taking an arraylist.
+ final ArrayList<WeightedString> shortcutTargets = new ArrayList<WeightedString>();
+ shortcutTargets.add(new WeightedString(shortcutTarget, frequency));
+ mFusionDictionary.add(word, frequency, shortcutTargets);
+ }
}
/**
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 261755f..113941d 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -106,6 +106,9 @@
/** Whether to use the binary version of the contacts dictionary */
public static final boolean USE_BINARY_CONTACTS_DICTIONARY = true;
+ /** Whether to use the binary version of the user dictionary */
+ public static final boolean USE_BINARY_USER_DICTIONARY = true;
+
// TODO: migrate this to SettingsValues
private int mSuggestionVisibility;
private static final int SUGGESTION_VISIBILILTY_SHOW_VALUE
@@ -158,7 +161,8 @@
private boolean mShouldSwitchToLastSubtype = true;
private boolean mIsMainDictionaryAvailable;
- private UserDictionary mUserDictionary;
+ // TODO: revert this back to the concrete class after transition.
+ private Dictionary mUserDictionary;
private UserHistoryDictionary mUserHistoryDictionary;
private boolean mIsUserDictionaryAvailable;
@@ -476,9 +480,14 @@
mIsMainDictionaryAvailable = DictionaryFactory.isDictionaryAvailable(this, subtypeLocale);
- mUserDictionary = new UserDictionary(this, localeStr);
+ if (USE_BINARY_USER_DICTIONARY) {
+ mUserDictionary = new UserBinaryDictionary(this, localeStr);
+ mIsUserDictionaryAvailable = ((UserBinaryDictionary)mUserDictionary).isEnabled();
+ } else {
+ mUserDictionary = new UserDictionary(this, localeStr);
+ mIsUserDictionaryAvailable = ((UserDictionary)mUserDictionary).isEnabled();
+ }
mSuggest.setUserDictionary(mUserDictionary);
- mIsUserDictionaryAvailable = mUserDictionary.isEnabled();
resetContactsDictionary(oldContactsDictionary);
@@ -1032,26 +1041,28 @@
updateSuggestions();
}
- public boolean getCurrentAutoCapsState() {
- if (!mSettingsValues.mAutoCap) return false;
+ public int getCurrentAutoCapsState() {
+ if (!mSettingsValues.mAutoCap) return Constants.TextUtils.CAP_MODE_OFF;
final EditorInfo ei = getCurrentInputEditorInfo();
- if (ei == null) return false;
+ if (ei == null) return Constants.TextUtils.CAP_MODE_OFF;
final int inputType = ei.inputType;
- if ((inputType & InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS) != 0) return true;
+ if ((inputType & InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS) != 0) {
+ return TextUtils.CAP_MODE_CHARACTERS;
+ }
final boolean noNeedToCheckCapsMode = (inputType & (InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
| InputType.TYPE_TEXT_FLAG_CAP_WORDS)) == 0;
- if (noNeedToCheckCapsMode) return false;
+ if (noNeedToCheckCapsMode) return Constants.TextUtils.CAP_MODE_OFF;
final InputConnection ic = getCurrentInputConnection();
- if (ic == null) return false;
+ if (ic == null) return Constants.TextUtils.CAP_MODE_OFF;
// TODO: This blocking IPC call is heavy. Consider doing this without using IPC calls.
// Note: getCursorCapsMode() returns the current capitalization mode that is any
// combination of CAP_MODE_CHARACTERS, CAP_MODE_WORDS, and CAP_MODE_SENTENCES. 0 means none
// of them.
- return ic.getCursorCapsMode(inputType) != 0;
+ return ic.getCursorCapsMode(inputType);
}
// "ic" may be null
@@ -1121,7 +1132,11 @@
@Override
public boolean addWordToDictionary(String word) {
- mUserDictionary.addWordToUserDictionary(word, 128);
+ if (USE_BINARY_USER_DICTIONARY) {
+ ((UserBinaryDictionary)mUserDictionary).addWordToUserDictionary(word, 128);
+ } else {
+ ((UserDictionary)mUserDictionary).addWordToUserDictionary(word, 128);
+ }
// Suggestion strip should be updated after the operation of adding word to the
// user dictionary
mHandler.postUpdateSuggestions();
@@ -1522,7 +1537,8 @@
if (ic != null) {
// If it's the first letter, make note of auto-caps state
if (mWordComposer.size() == 1) {
- mWordComposer.setAutoCapitalized(getCurrentAutoCapsState());
+ mWordComposer.setAutoCapitalized(
+ getCurrentAutoCapsState() != Constants.TextUtils.CAP_MODE_OFF);
}
ic.setComposingText(getTextWithUnderline(mWordComposer.getTypedWord()), 1);
}
@@ -1834,10 +1850,15 @@
@Override
public void pickSuggestionManually(final int index, final CharSequence suggestion,
int x, int y) {
- final SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
final InputConnection ic = getCurrentInputConnection();
- if (ic != null) ic.beginBatchEdit();
+ if (null != ic) ic.beginBatchEdit();
+ pickSuggestionManuallyWhileInBatchEdit(index, suggestion, x, y, ic);
+ if (null != ic) ic.endBatchEdit();
+ }
+ public void pickSuggestionManuallyWhileInBatchEdit(final int index,
+ final CharSequence suggestion, final int x, final int y, final InputConnection ic) {
+ final SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
// If this is a punctuation picked from the suggestion strip, pass it to onCodeInput
if (suggestion.length() == 1 && isShowingPunctuationList()) {
// Word separators are suggested before the user inputs something.
@@ -1933,7 +1954,6 @@
mHandler.postUpdateSuggestions();
}
}
- if (null != ic) ic.endBatchEdit();
}
/**
diff --git a/java/src/com/android/inputmethod/latin/ResearchLogger.java b/java/src/com/android/inputmethod/latin/ResearchLogger.java
index 566af70..aa979a6 100644
--- a/java/src/com/android/inputmethod/latin/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/latin/ResearchLogger.java
@@ -444,7 +444,7 @@
}
public static void keyboardState_onCodeInput(
- final int code, final boolean isSinglePointer, final boolean autoCaps,
+ final int code, final boolean isSinglePointer, final int autoCaps,
final KeyboardState keyboardState) {
if (UnsLogGroup.KEYBOARDSTATE_ONCODEINPUT_ENABLED) {
final String s = "onCodeInput: code=" + Keyboard.printableCode(code)
diff --git a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java
index 188259f..4994e59 100644
--- a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java
@@ -26,7 +26,6 @@
public SynchronouslyLoadedContactsBinaryDictionary(final Context context) {
// TODO: add locale information.
super(context, Suggest.DIC_CONTACTS, null);
- mClosed = false;
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java
new file mode 100644
index 0000000..1606a34
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.Context;
+
+import com.android.inputmethod.keyboard.ProximityInfo;
+
+public class SynchronouslyLoadedUserBinaryDictionary extends UserBinaryDictionary {
+
+ public SynchronouslyLoadedUserBinaryDictionary(final Context context, final String locale) {
+ this(context, locale, false);
+ }
+
+ public SynchronouslyLoadedUserBinaryDictionary(final Context context, final String locale,
+ final boolean alsoUseMoreRestrictiveLocales) {
+ super(context, locale, alsoUseMoreRestrictiveLocales);
+ }
+
+ @Override
+ public synchronized void getWords(final WordComposer codes,
+ final CharSequence prevWordForBigrams, final WordCallback callback,
+ final ProximityInfo proximityInfo) {
+ syncReloadDictionaryIfRequired();
+ getWordsInner(codes, prevWordForBigrams, callback, proximityInfo);
+ }
+
+ @Override
+ public synchronized boolean isValidWord(CharSequence word) {
+ syncReloadDictionaryIfRequired();
+ return isValidWordInner(word);
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserDictionary.java b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserDictionary.java
index b78be89..23a49c1 100644
--- a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserDictionary.java
+++ b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserDictionary.java
@@ -21,6 +21,7 @@
import com.android.inputmethod.keyboard.ProximityInfo;
public class SynchronouslyLoadedUserDictionary extends UserDictionary {
+ private boolean mClosed;
public SynchronouslyLoadedUserDictionary(final Context context, final String locale) {
this(context, locale, false);
@@ -44,4 +45,12 @@
blockingReloadDictionaryIfRequired();
return super.isValidWord(word);
}
+
+ // Protect against multiple closing
+ @Override
+ public synchronized void close() {
+ if (mClosed) return;
+ mClosed = true;
+ super.close();
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
new file mode 100644
index 0000000..6fa1a25
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.ContentProviderClient;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.provider.UserDictionary.Words;
+import android.text.TextUtils;
+
+import java.util.Arrays;
+
+/**
+ * An expandable dictionary that stores the words in the user unigram dictionary.
+ *
+ * Largely a copy of UserDictionary, will replace that class in the future.
+ */
+public class UserBinaryDictionary extends ExpandableBinaryDictionary {
+
+ // TODO: use Words.SHORTCUT when it's public in the SDK
+ final static String SHORTCUT = "shortcut";
+ private static final String[] PROJECTION_QUERY = {
+ Words.WORD,
+ SHORTCUT,
+ Words.FREQUENCY,
+ };
+
+ private static final String NAME = "userunigram";
+
+ // This is not exported by the framework so we pretty much have to write it here verbatim
+ private static final String ACTION_USER_DICTIONARY_INSERT =
+ "com.android.settings.USER_DICTIONARY_INSERT";
+
+ private ContentObserver mObserver;
+ final private String mLocale;
+ final private boolean mAlsoUseMoreRestrictiveLocales;
+
+ public UserBinaryDictionary(final Context context, final String locale) {
+ this(context, locale, false);
+ }
+
+ public UserBinaryDictionary(final Context context, final String locale,
+ final boolean alsoUseMoreRestrictiveLocales) {
+ super(context, getFilenameWithLocale(NAME, locale), Suggest.DIC_USER);
+ if (null == locale) throw new NullPointerException(); // Catch the error earlier
+ mLocale = locale;
+ mAlsoUseMoreRestrictiveLocales = alsoUseMoreRestrictiveLocales;
+ // Perform a managed query. The Activity will handle closing and re-querying the cursor
+ // when needed.
+ ContentResolver cres = context.getContentResolver();
+
+ mObserver = new ContentObserver(null) {
+ @Override
+ public void onChange(boolean self) {
+ setRequiresReload(true);
+ }
+ };
+ cres.registerContentObserver(Words.CONTENT_URI, true, mObserver);
+
+ loadDictionary();
+ }
+
+ @Override
+ public synchronized void close() {
+ if (mObserver != null) {
+ mContext.getContentResolver().unregisterContentObserver(mObserver);
+ mObserver = null;
+ }
+ super.close();
+ }
+
+ @Override
+ public void loadDictionaryAsync() {
+ // Split the locale. For example "en" => ["en"], "de_DE" => ["de", "DE"],
+ // "en_US_foo_bar_qux" => ["en", "US", "foo_bar_qux"] because of the limit of 3.
+ // This is correct for locale processing.
+ // For this example, we'll look at the "en_US_POSIX" case.
+ final String[] localeElements =
+ TextUtils.isEmpty(mLocale) ? new String[] {} : mLocale.split("_", 3);
+ final int length = localeElements.length;
+
+ final StringBuilder request = new StringBuilder("(locale is NULL)");
+ String localeSoFar = "";
+ // At start, localeElements = ["en", "US", "POSIX"] ; localeSoFar = "" ;
+ // and request = "(locale is NULL)"
+ for (int i = 0; i < length; ++i) {
+ // i | localeSoFar | localeElements
+ // 0 | "" | ["en", "US", "POSIX"]
+ // 1 | "en_" | ["en", "US", "POSIX"]
+ // 2 | "en_US_" | ["en", "en_US", "POSIX"]
+ localeElements[i] = localeSoFar + localeElements[i];
+ localeSoFar = localeElements[i] + "_";
+ // i | request
+ // 0 | "(locale is NULL)"
+ // 1 | "(locale is NULL) or (locale=?)"
+ // 2 | "(locale is NULL) or (locale=?) or (locale=?)"
+ request.append(" or (locale=?)");
+ }
+ // At the end, localeElements = ["en", "en_US", "en_US_POSIX"]; localeSoFar = en_US_POSIX_"
+ // and request = "(locale is NULL) or (locale=?) or (locale=?) or (locale=?)"
+
+ final String[] requestArguments;
+ // If length == 3, we already have all the arguments we need (common prefix is meaningless
+ // inside variants
+ if (mAlsoUseMoreRestrictiveLocales && length < 3) {
+ request.append(" or (locale like ?)");
+ // The following creates an array with one more (null) position
+ final String[] localeElementsWithMoreRestrictiveLocalesIncluded =
+ Arrays.copyOf(localeElements, length + 1);
+ localeElementsWithMoreRestrictiveLocalesIncluded[length] =
+ localeElements[length - 1] + "_%";
+ requestArguments = localeElementsWithMoreRestrictiveLocalesIncluded;
+ // If for example localeElements = ["en"]
+ // then requestArguments = ["en", "en_%"]
+ // and request = (locale is NULL) or (locale=?) or (locale like ?)
+ // If localeElements = ["en", "en_US"]
+ // then requestArguments = ["en", "en_US", "en_US_%"]
+ } else {
+ requestArguments = localeElements;
+ }
+ final Cursor cursor = mContext.getContentResolver().query(
+ Words.CONTENT_URI, PROJECTION_QUERY, request.toString(), requestArguments, null);
+ try {
+ addWords(cursor);
+ } finally {
+ if (null != cursor) cursor.close();
+ }
+ }
+
+ public boolean isEnabled() {
+ final ContentResolver cr = mContext.getContentResolver();
+ final ContentProviderClient client = cr.acquireContentProviderClient(Words.CONTENT_URI);
+ if (client != null) {
+ client.release();
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Adds a word to the user dictionary and makes it persistent.
+ *
+ * This will call upon the system interface to do the actual work through the intent readied by
+ * the system to this effect.
+ *
+ * @param word the word to add. If the word is capitalized, then the dictionary will
+ * recognize it as a capitalized word when searched.
+ * @param frequency the frequency of occurrence of the word. A frequency of 255 is considered
+ * the highest.
+ * @TODO use a higher or float range for frequency
+ */
+ public synchronized void addWordToUserDictionary(final String word, final int frequency) {
+ // TODO: do something for the UI. With the following, any sufficiently long word will
+ // look like it will go to the user dictionary but it won't.
+ // Safeguard against adding long words. Can cause stack overflow.
+ if (word.length() >= MAX_WORD_LENGTH) return;
+
+ // TODO: Add an argument to the intent to specify the frequency.
+ Intent intent = new Intent(ACTION_USER_DICTIONARY_INSERT);
+ intent.putExtra(Words.WORD, word);
+ intent.putExtra(Words.LOCALE, mLocale);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mContext.startActivity(intent);
+ }
+
+ private void addWords(Cursor cursor) {
+ clearFusionDictionary();
+ if (cursor == null) return;
+ if (cursor.moveToFirst()) {
+ final int indexWord = cursor.getColumnIndex(Words.WORD);
+ final int indexShortcut = cursor.getColumnIndex(SHORTCUT);
+ final int indexFrequency = cursor.getColumnIndex(Words.FREQUENCY);
+ while (!cursor.isAfterLast()) {
+ String word = cursor.getString(indexWord);
+ String shortcut = cursor.getString(indexShortcut);
+ int frequency = cursor.getInt(indexFrequency);
+ // Safeguard against adding really long words.
+ if (word.length() < MAX_WORD_LENGTH) {
+ super.addWord(word, null, frequency);
+ }
+ if (null != shortcut && shortcut.length() < MAX_WORD_LENGTH) {
+ super.addWord(shortcut, word, frequency);
+ }
+ cursor.moveToNext();
+ }
+ }
+ }
+
+ @Override
+ protected boolean hasContentChanged() {
+ return true;
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/UserDictionary.java b/java/src/com/android/inputmethod/latin/UserDictionary.java
index 218bac7..ea57db5 100644
--- a/java/src/com/android/inputmethod/latin/UserDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserDictionary.java
@@ -29,6 +29,10 @@
import java.util.Arrays;
+/**
+ * An expandable dictionary that stores the words in the user unigram dictionary.
+ * To be deprecated: functionality being transferred to UserBinaryDictionary.
+*/
public class UserDictionary extends ExpandableDictionary {
// TODO: use Words.SHORTCUT when it's public in the SDK
diff --git a/java/src/com/android/inputmethod/latin/UserHistoryForgettingCurveUtils.java b/java/src/com/android/inputmethod/latin/UserHistoryForgettingCurveUtils.java
new file mode 100644
index 0000000..eb38817
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/UserHistoryForgettingCurveUtils.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+public class UserHistoryForgettingCurveUtils {
+ private static final int FC_FREQ_MAX = 127;
+ /* package */ static final int COUNT_MAX = 3;
+ private static final int FC_LEVEL_MAX = 3;
+ /* package */ static final int ELAPSED_TIME_MAX = 15;
+ private static final int ELAPSED_TIME_INTERVAL_HOURS = 6;
+ private static final int HALF_LIFE_HOURS = 48;
+
+ /* package */ static int fcToElapsedTime(byte fc) {
+ return fc & 0x0F;
+ }
+
+ /* package */ static int fcToCount(byte fc) {
+ return (fc >> 4) & 0x03;
+ }
+
+ /* package */ static int fcToLevel(byte fc) {
+ return (fc >> 6) & 0x03;
+ }
+
+ private static int calcFreq(int elapsedTime, int count, int level) {
+ if (level <= 0) {
+ // Reserved words, just return 0
+ return 0;
+ }
+ if (count == COUNT_MAX) {
+ // Temporary promote because it's frequently typed recently
+ ++level;
+ }
+ final int et = Math.min(FC_FREQ_MAX, Math.max(0, elapsedTime));
+ final int l = Math.min(FC_LEVEL_MAX, Math.max(0, level));
+ return MathUtils.SCORE_TABLE[l - 1][et];
+ }
+
+ /* pakcage */ static byte calcFc(int elapsedTime, int count, int level) {
+ final int et = Math.min(FC_FREQ_MAX, Math.max(0, elapsedTime));
+ final int c = Math.min(COUNT_MAX, Math.max(0, count));
+ final int l = Math.min(FC_LEVEL_MAX, Math.max(0, level));
+ return (byte)(et | (c << 4) | (l << 6));
+ }
+
+ public static int fcToFreq(byte fc) {
+ final int elapsedTime = fcToElapsedTime(fc);
+ final int count = fcToCount(fc);
+ final int level = fcToLevel(fc);
+ return calcFreq(elapsedTime, count, level);
+ }
+
+ public static byte pushElapsedTime(byte fc) {
+ int elapsedTime = fcToElapsedTime(fc);
+ int count = fcToCount(fc);
+ int level = fcToLevel(fc);
+ if (elapsedTime >= ELAPSED_TIME_MAX) {
+ // Downgrade level
+ elapsedTime = 0;
+ count = COUNT_MAX;
+ --level;
+ } else {
+ ++elapsedTime;
+ }
+ return calcFc(elapsedTime, count, level);
+ }
+
+ public static byte pushCount(byte fc, boolean isValid) {
+ final int elapsedTime = fcToElapsedTime(fc);
+ int count = fcToCount(fc);
+ int level = fcToLevel(fc);
+ if ((elapsedTime == 0 && count >= COUNT_MAX) || (isValid && level == 0)) {
+ // Upgrade level
+ ++level;
+ count = 0;
+ } else {
+ ++count;
+ }
+ return calcFc(0, count, level);
+ }
+
+ private static class MathUtils {
+ public static final int[][] SCORE_TABLE = new int[FC_LEVEL_MAX][ELAPSED_TIME_MAX + 1];
+ static {
+ for (int i = 0; i < FC_LEVEL_MAX; ++i) {
+ final double initialFreq;
+ if (i >= 2) {
+ initialFreq = (double)FC_FREQ_MAX;
+ } else if (i == 1) {
+ initialFreq = (double)FC_FREQ_MAX / 2;
+ } else if (i == 0) {
+ initialFreq = (double)FC_FREQ_MAX / 4;
+ } else {
+ continue;
+ }
+ for (int j = 0; j < ELAPSED_TIME_MAX; ++j) {
+ final double elapsedHour = j * ELAPSED_TIME_INTERVAL_HOURS;
+ final double freq =
+ initialFreq * Math.pow(initialFreq, elapsedHour / HALF_LIFE_HOURS);
+ final int intFreq = Math.min(FC_FREQ_MAX, Math.max(0, (int)freq));
+ SCORE_TABLE[i][j] = intFreq;
+ }
+ }
+ }
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index d7c8e38..9807d28 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -40,6 +40,7 @@
import com.android.inputmethod.latin.StringUtils;
import com.android.inputmethod.latin.SynchronouslyLoadedContactsBinaryDictionary;
import com.android.inputmethod.latin.SynchronouslyLoadedContactsDictionary;
+import com.android.inputmethod.latin.SynchronouslyLoadedUserBinaryDictionary;
import com.android.inputmethod.latin.SynchronouslyLoadedUserDictionary;
import com.android.inputmethod.latin.WhitelistDictionary;
import com.android.inputmethod.latin.WordComposer;
@@ -403,7 +404,11 @@
final String localeStr = locale.toString();
Dictionary userDictionary = mUserDictionaries.get(localeStr);
if (null == userDictionary) {
- userDictionary = new SynchronouslyLoadedUserDictionary(this, localeStr, true);
+ if (LatinIME.USE_BINARY_USER_DICTIONARY) {
+ userDictionary = new SynchronouslyLoadedUserBinaryDictionary(this, localeStr, true);
+ } else {
+ userDictionary = new SynchronouslyLoadedUserDictionary(this, localeStr, true);
+ }
mUserDictionaries.put(localeStr, userDictionary);
}
dictionaryCollection.addDictionary(userDictionary);
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java
index 26a9415..3d593aa 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java
@@ -596,7 +596,7 @@
}
/**
- * Construct a {@link SuggestionsView} for showing suggested words for completion.
+ * Construct a {@link SuggestionsView} for showing suggestions to be picked by the user.
* @param context
* @param attrs
*/
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java
index 0e6caaf..c2408c9 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java
@@ -206,8 +206,8 @@
// Chording input in automatic upper case.
public void testChordingAutomaticUpperCase() {
- // Set auto caps mode on.
- setAutoCapsMode(AUTO_CAPS);
+ // Set capitalize the first character of all words mode.
+ setAutoCapsMode(CAP_MODE_WORDS);
// Update shift state with auto caps enabled.
pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED);
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateSingleTouchTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateSingleTouchTests.java
index de2a50f..b9f5318 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateSingleTouchTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateSingleTouchTests.java
@@ -202,8 +202,8 @@
// Automatic upper case test
public void testAutomaticUpperCase() {
- // Set auto caps mode on.
- setAutoCapsMode(AUTO_CAPS);
+ // Set capitalize the first character of all words mode.
+ setAutoCapsMode(CAP_MODE_WORDS);
// Load keyboard, should be in automatic shifted.
loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED);
@@ -239,7 +239,7 @@
// Long press shift key.
public void testLongPressShift() {
// Set auto caps mode off.
- setAutoCapsMode(NO_AUTO_CAPS);
+ setAutoCapsMode(CAP_MODE_OFF);
// Load keyboard, should be in alphabet.
loadKeyboard(ALPHABET_UNSHIFTED);
// Long press shift key, enter alphabet shift locked.
@@ -268,8 +268,8 @@
// Press/release shift key, back to alphabet.
pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED);
- // Set auto caps mode on.
- setAutoCapsMode(AUTO_CAPS);
+ // Set capitalize the first character of all words mode.
+ setAutoCapsMode(CAP_MODE_WORDS);
// Load keyboard, should be in automatic shifted.
loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED);
// Long press shift key, enter alphabet shift locked.
@@ -303,8 +303,8 @@
// Second shift key tap.
secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
- // Set auto caps mode on.
- setAutoCapsMode(AUTO_CAPS);
+ // Set capitalize the first character of all words mode.
+ setAutoCapsMode(CAP_MODE_WORDS);
// Load keyboard, should be in automatic shifted.
loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED);
@@ -322,7 +322,7 @@
// Update shift state.
public void testUpdateShiftState() {
// Set auto caps mode off.
- setAutoCapsMode(NO_AUTO_CAPS);
+ setAutoCapsMode(CAP_MODE_OFF);
// Load keyboard, should be in alphabet.
loadKeyboard(ALPHABET_UNSHIFTED);
// Update shift state, remained in alphabet.
@@ -350,8 +350,8 @@
// Update shift state, remained in symbols shifted.
updateShiftState(SYMBOLS_SHIFTED);
- // Set auto caps mode on.
- setAutoCapsMode(AUTO_CAPS);
+ // Set capitalize the first character of all words mode.
+ setAutoCapsMode(CAP_MODE_WORDS);
// Load keyboard, should be in automatic shifted.
loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED);
// Update shift state, remained in automatic shifted.
@@ -592,11 +592,8 @@
// Change focus to auto caps text field.
public void testChangeFocusAutoCaps() {
- // Set auto caps mode on.
- setAutoCapsMode(AUTO_CAPS);
-
- // Update shift state.
- updateShiftState(ALPHABET_AUTOMATIC_SHIFTED);
+ // Set capitalize the first character of all words mode.
+ setAutoCapsMode(CAP_MODE_WORDS);
// Change focus to new text field.
loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED);
@@ -735,8 +732,8 @@
// Rapidly press/release letter key.
secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED);
- // Set auto caps mode on.
- setAutoCapsMode(AUTO_CAPS);
+ // Set capitalize the first character of all words mode.
+ setAutoCapsMode(CAP_MODE_WORDS);
// Press/release auto caps trigger letter to enter alphabet automatic shifted.
pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED);
// Press/release shift key
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java
index 96a5466..bbe0dbd 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java
@@ -29,12 +29,12 @@
super.setUp();
mSwitcher = new MockKeyboardSwitcher();
- mSwitcher.setAutoCapsMode(NO_AUTO_CAPS);
+ mSwitcher.setAutoCapsMode(CAP_MODE_OFF);
loadKeyboard(ALPHABET_UNSHIFTED);
}
- public void setAutoCapsMode(boolean autoCaps) {
+ public void setAutoCapsMode(int autoCaps) {
mSwitcher.setAutoCapsMode(autoCaps);
}
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java b/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java
index 999e08a..485ea61 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java
@@ -16,6 +16,8 @@
package com.android.inputmethod.keyboard.internal;
+import android.text.TextUtils;
+
import com.android.inputmethod.keyboard.Keyboard;
public class MockKeyboardSwitcher implements KeyboardState.SwitchActions {
@@ -26,8 +28,10 @@
// Argument for {@link KeyboardState#onCodeInput}.
public static final boolean SINGLE = true;
public static final boolean MULTI = false;
- public static final boolean NO_AUTO_CAPS = false;
- public static final boolean AUTO_CAPS = true;
+ public static final int CAP_MODE_OFF =
+ com.android.inputmethod.latin.Constants.TextUtils.CAP_MODE_OFF;
+ public static final int CAP_MODE_WORDS = TextUtils.CAP_MODE_WORDS;
+ public static final int CAP_MODE_CHARACTERS = TextUtils.CAP_MODE_CHARACTERS;
public static final int CODE_SHIFT = Keyboard.CODE_SHIFT;
public static final int CODE_SYMBOL = Keyboard.CODE_SWITCH_ALPHA_SYMBOL;
@@ -45,9 +49,9 @@
private int mLayout = Constants.ALPHABET_UNSHIFTED;
- private boolean mAutoCapsMode = Constants.NO_AUTO_CAPS;
+ private int mAutoCapsMode = Constants.CAP_MODE_OFF;
// Following InputConnection's behavior. Simulating InputType.TYPE_TEXT_FLAG_CAP_WORDS.
- private boolean mAutoCapsState = true;
+ private int mAutoCapsState = Constants.CAP_MODE_OFF;
private boolean mIsInDoubleTapTimeout;
private int mLongPressTimeoutCode;
@@ -71,8 +75,9 @@
}
}
- public void setAutoCapsMode(boolean autoCaps) {
+ public void setAutoCapsMode(int autoCaps) {
mAutoCapsMode = autoCaps;
+ mAutoCapsState = autoCaps;
}
public void expireDoubleTapTimeout() {
@@ -116,7 +121,7 @@
@Override
public void requestUpdatingShiftState() {
- mState.onUpdateShiftState(mAutoCapsMode && mAutoCapsState);
+ mState.onUpdateShiftState(mAutoCapsState);
}
@Override
@@ -158,7 +163,7 @@
}
public void updateShiftState() {
- mState.onUpdateShiftState(mAutoCapsMode && mAutoCapsState);
+ mState.onUpdateShiftState(mAutoCapsState);
}
public void loadKeyboard(String layoutSwitchBackSymbols) {
@@ -181,10 +186,15 @@
}
public void onCodeInput(int code, boolean isSinglePointer) {
- if (Keyboard.isLetterCode(code)) {
- mAutoCapsState = (code == Constants.CODE_AUTO_CAPS_TRIGGER);
+ if (mAutoCapsMode == Constants.CAP_MODE_WORDS) {
+ if (Keyboard.isLetterCode(code)) {
+ mAutoCapsState = (code == Constants.CODE_AUTO_CAPS_TRIGGER)
+ ? mAutoCapsMode : Constants.CAP_MODE_OFF;
+ }
+ } else {
+ mAutoCapsState = mAutoCapsMode;
}
- mState.onCodeInput(code, isSinglePointer, mAutoCapsMode && mAutoCapsState);
+ mState.onCodeInput(code, isSinglePointer, mAutoCapsState);
}
public void onCancelInput(boolean isSinglePointer) {
diff --git a/tests/src/com/android/inputmethod/latin/ForgettingCurveTests.java b/tests/src/com/android/inputmethod/latin/ForgettingCurveTests.java
new file mode 100644
index 0000000..a2e71c1
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/ForgettingCurveTests.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.test.AndroidTestCase;
+
+public class ForgettingCurveTests extends AndroidTestCase {
+ public void testFcToFreq() {
+ for (int i = 0; i < Byte.MAX_VALUE; ++i) {
+ final byte fc = (byte)i;
+ final int e = UserHistoryForgettingCurveUtils.fcToElapsedTime(fc);
+ final int c = UserHistoryForgettingCurveUtils.fcToCount(fc);
+ final int l = UserHistoryForgettingCurveUtils.fcToLevel(fc);
+ final byte fc2 = UserHistoryForgettingCurveUtils.calcFc(e, c, l);
+ assertEquals(fc, fc2);
+ }
+ byte fc = 0;
+ int l;
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < (UserHistoryForgettingCurveUtils.COUNT_MAX + 1); ++j) {
+ fc = UserHistoryForgettingCurveUtils.pushCount(fc, true);
+ }
+ l = UserHistoryForgettingCurveUtils.fcToLevel(fc);
+ assertEquals(l, Math.max(1, Math.min(i + 1, 3)));
+ }
+ fc = 0;
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < (UserHistoryForgettingCurveUtils.COUNT_MAX + 1); ++j) {
+ fc = UserHistoryForgettingCurveUtils.pushCount(fc, false);
+ }
+ l = UserHistoryForgettingCurveUtils.fcToLevel(fc);
+ assertEquals(l, Math.min(i + 1, 3));
+ }
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < (UserHistoryForgettingCurveUtils.ELAPSED_TIME_MAX + 1); ++j) {
+ fc = UserHistoryForgettingCurveUtils.pushElapsedTime(fc);
+ }
+ l = UserHistoryForgettingCurveUtils.fcToLevel(fc);
+ assertEquals(l, Math.max(0, 2 - i));
+ }
+ }
+}