From 68eb1b1932f77a34d13d0ec0ab2d76cd50fdda92 Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Queru <jbq@google.com>
Date: Thu, 12 Nov 2009 18:46:12 -0800
Subject: [PATCH] eclair snapshot

---
 AndroidManifest.xml                           |   4 +-
 ...oid_inputmethod_latin_BinaryDictionary.cpp |  36 +-
 dictionary/src/dictionary.cpp                 |  58 ++-
 dictionary/src/dictionary.h                   |   8 +-
 res/drawable-en-hdpi/sym_keyboard_delete.png  | Bin 0 -> 2315 bytes
 .../sym_keyboard_feedback_delete.png          | Bin 0 -> 1278 bytes
 .../sym_keyboard_delete.png                   | Bin
 .../sym_keyboard_feedback_delete.png          | Bin
 .../btn_keyboard_key_normal.9.png             | Bin 0 -> 696 bytes
 .../btn_keyboard_key_normal_off.9.png         | Bin 0 -> 941 bytes
 .../btn_keyboard_key_normal_on.9.png          | Bin 0 -> 1076 bytes
 .../btn_keyboard_key_pressed.9.png            | Bin 0 -> 696 bytes
 .../btn_keyboard_key_pressed_off.9.png        | Bin 0 -> 964 bytes
 .../btn_keyboard_key_pressed_on.9.png         | Bin 0 -> 1055 bytes
 res/drawable-hdpi/cancel.png                  | Bin 0 -> 1811 bytes
 .../candidate_feedback_background.9.png       | Bin 0 -> 833 bytes
 res/drawable-hdpi/caution.png                 | Bin 0 -> 1641 bytes
 res/drawable-hdpi/dialog_bubble_step02.9.png  | Bin 0 -> 1475 bytes
 res/drawable-hdpi/dialog_bubble_step07.9.png  | Bin 0 -> 6012 bytes
 .../dialog_top_dark_bottom_medium.png         | Bin 0 -> 1976 bytes
 res/drawable-hdpi/highlight_pressed.png       | Bin 0 -> 1527 bytes
 res/drawable-hdpi/ic_dialog_alert_large.png   | Bin 0 -> 4918 bytes
 res/drawable-hdpi/ic_dialog_keyboard.png      | Bin 0 -> 807 bytes
 res/drawable-hdpi/ic_dialog_voice_input.png   | Bin 0 -> 1931 bytes
 res/drawable-hdpi/ic_dialog_wave_0_0.png      | Bin 0 -> 15673 bytes
 res/drawable-hdpi/ic_dialog_wave_1_3.png      | Bin 0 -> 15823 bytes
 res/drawable-hdpi/ic_dialog_wave_2_3.png      | Bin 0 -> 16009 bytes
 res/drawable-hdpi/ic_dialog_wave_3_3.png      | Bin 0 -> 16022 bytes
 res/drawable-hdpi/ic_dialog_wave_4_3.png      | Bin 0 -> 15910 bytes
 .../ic_suggest_strip_scroll_left_arrow.png    | Bin 0 -> 619 bytes
 .../ic_suggest_strip_scroll_right_arrow.png   | Bin 0 -> 619 bytes
 res/drawable-hdpi/keyboard_background.9.png   | Bin 0 -> 200 bytes
 .../keyboard_suggest_strip.9.png              | Bin 0 -> 1577 bytes
 .../keyboard_suggest_strip_divider.png        | Bin 0 -> 172 bytes
 res/drawable-hdpi/mic_slash.png               | Bin 0 -> 3095 bytes
 res/drawable-hdpi/ok_cancel.png               | Bin 0 -> 442 bytes
 res/drawable-hdpi/speak_now_level0.png        | Bin 0 -> 1508 bytes
 res/drawable-hdpi/speak_now_level1.png        | Bin 0 -> 1587 bytes
 res/drawable-hdpi/speak_now_level2.png        | Bin 0 -> 1687 bytes
 res/drawable-hdpi/speak_now_level3.png        | Bin 0 -> 1636 bytes
 res/drawable-hdpi/speak_now_level4.png        | Bin 0 -> 1635 bytes
 res/drawable-hdpi/speak_now_level5.png        | Bin 0 -> 1706 bytes
 res/drawable-hdpi/sym_keyboard_delete.png     | Bin 0 -> 2282 bytes
 res/drawable-hdpi/sym_keyboard_done.png       | Bin 0 -> 1593 bytes
 .../sym_keyboard_feedback_delete.png          | Bin 0 -> 1278 bytes
 .../sym_keyboard_feedback_done.png            | Bin 0 -> 1068 bytes
 .../sym_keyboard_feedback_numalt.png          | Bin 0 -> 1336 bytes
 .../sym_keyboard_feedback_return.png          | Bin 0 -> 838 bytes
 .../sym_keyboard_feedback_search.png          | Bin 0 -> 1209 bytes
 .../sym_keyboard_feedback_shift.png           | Bin 0 -> 885 bytes
 .../sym_keyboard_feedback_shift_locked.png    | Bin 0 -> 700 bytes
 .../sym_keyboard_feedback_space.png           | Bin 0 -> 287 bytes
 res/drawable-hdpi/sym_keyboard_num0.png       | Bin 0 -> 1931 bytes
 res/drawable-hdpi/sym_keyboard_num1.png       | Bin 0 -> 809 bytes
 res/drawable-hdpi/sym_keyboard_num2.png       | Bin 0 -> 3214 bytes
 res/drawable-hdpi/sym_keyboard_num3.png       | Bin 0 -> 2805 bytes
 res/drawable-hdpi/sym_keyboard_num4.png       | Bin 0 -> 2647 bytes
 res/drawable-hdpi/sym_keyboard_num5.png       | Bin 0 -> 2536 bytes
 res/drawable-hdpi/sym_keyboard_num6.png       | Bin 0 -> 3573 bytes
 res/drawable-hdpi/sym_keyboard_num7.png       | Bin 0 -> 3664 bytes
 res/drawable-hdpi/sym_keyboard_num8.png       | Bin 0 -> 2904 bytes
 res/drawable-hdpi/sym_keyboard_num9.png       | Bin 0 -> 3860 bytes
 res/drawable-hdpi/sym_keyboard_numalt.png     | Bin 0 -> 2919 bytes
 res/drawable-hdpi/sym_keyboard_numpound.png   | Bin 0 -> 1600 bytes
 res/drawable-hdpi/sym_keyboard_numstar.png    | Bin 0 -> 1749 bytes
 res/drawable-hdpi/sym_keyboard_return.png     | Bin 0 -> 1123 bytes
 res/drawable-hdpi/sym_keyboard_search.png     | Bin 0 -> 1623 bytes
 res/drawable-hdpi/sym_keyboard_shift.png      | Bin 0 -> 1495 bytes
 .../sym_keyboard_shift_locked.png             | Bin 0 -> 1119 bytes
 res/drawable-hdpi/sym_keyboard_space.png      | Bin 0 -> 371 bytes
 res/drawable-hdpi/voice_background.9.png      | Bin 0 -> 2349 bytes
 res/drawable-hdpi/working.png                 | Bin 0 -> 8636 bytes
 .../btn_keyboard_key_normal.9.png             | Bin 0 -> 737 bytes
 .../btn_keyboard_key_normal_off.9.png         | Bin 0 -> 941 bytes
 .../btn_keyboard_key_normal_on.9.png          | Bin 0 -> 1076 bytes
 .../btn_keyboard_key_pressed.9.png            | Bin 0 -> 733 bytes
 .../btn_keyboard_key_pressed_off.9.png        | Bin 0 -> 964 bytes
 .../btn_keyboard_key_pressed_on.9.png         | Bin 0 -> 1055 bytes
 .../keyboard_suggest_strip_divider.png        | Bin 0 -> 172 bytes
 .../btn_keyboard_key_normal.9.png             | Bin 0 -> 818 bytes
 .../btn_keyboard_key_normal_off.9.png         | Bin 0 -> 860 bytes
 .../btn_keyboard_key_normal_on.9.png          | Bin 0 -> 926 bytes
 .../btn_keyboard_key_pressed.9.png            | Bin 0 -> 740 bytes
 .../btn_keyboard_key_pressed_off.9.png        | Bin 0 -> 836 bytes
 .../btn_keyboard_key_pressed_on.9.png         | Bin 0 -> 886 bytes
 .../keyboard_suggest_strip_divider.png        | Bin
 res/drawable-land/btn_keyboard_key.xml        |  38 ++
 .../btn_keyboard_key_normal.9.png             | Bin 0 -> 809 bytes
 .../btn_keyboard_key_normal_off.9.png         | Bin 0 -> 860 bytes
 .../btn_keyboard_key_normal_on.9.png          | Bin 0 -> 926 bytes
 .../btn_keyboard_key_pressed.9.png            | Bin 0 -> 736 bytes
 .../btn_keyboard_key_pressed_off.9.png        | Bin 0 -> 836 bytes
 .../btn_keyboard_key_pressed_on.9.png         | Bin 0 -> 886 bytes
 .../candidate_feedback_background.9.png       | Bin
 .../dialog_bubble_step02.9.png                | Bin
 .../dialog_bubble_step07.9.png                | Bin
 .../highlight_pressed.png                     | Bin
 .../ic_dialog_keyboard.png                    | Bin
 .../ic_suggest_strip_scroll_left_arrow.png    | Bin
 .../ic_suggest_strip_scroll_right_arrow.png   | Bin
 res/drawable-mdpi/keyboard_background.9.png   | Bin 0 -> 214 bytes
 .../keyboard_suggest_strip.9.png              | Bin
 .../keyboard_suggest_strip_divider.png        | Bin 0 -> 2846 bytes
 .../sym_keyboard_delete.png                   | Bin
 .../sym_keyboard_done.png                     | Bin
 .../sym_keyboard_feedback_delete.png          | Bin
 .../sym_keyboard_feedback_done.png            | Bin
 .../sym_keyboard_feedback_numalt.png          | Bin
 .../sym_keyboard_feedback_return.png          | Bin
 .../sym_keyboard_feedback_search.png          | Bin
 .../sym_keyboard_feedback_shift.png           | Bin
 .../sym_keyboard_feedback_shift_locked.png    | Bin
 .../sym_keyboard_feedback_space.png           | Bin
 .../sym_keyboard_num0.png                     | Bin
 .../sym_keyboard_num1.png                     | Bin
 .../sym_keyboard_num2.png                     | Bin
 .../sym_keyboard_num3.png                     | Bin
 .../sym_keyboard_num4.png                     | Bin
 .../sym_keyboard_num5.png                     | Bin
 .../sym_keyboard_num6.png                     | Bin
 .../sym_keyboard_num7.png                     | Bin
 .../sym_keyboard_num8.png                     | Bin
 .../sym_keyboard_num9.png                     | Bin
 .../sym_keyboard_numalt.png                   | Bin
 .../sym_keyboard_numpound.png                 | Bin
 .../sym_keyboard_numstar.png                  | Bin
 .../sym_keyboard_return.png                   | Bin
 .../sym_keyboard_search.png                   | Bin
 .../sym_keyboard_shift.png                    | Bin
 .../sym_keyboard_shift_locked.png             | Bin
 .../sym_keyboard_space.png                    | Bin
 res/drawable/btn_keyboard_key.xml             |  38 ++
 .../keyboard_suggest_strip_divider.png        | Bin 166 -> 0 bytes
 res/layout/candidates.xml                     |   2 +-
 res/layout/input.xml                          |   2 +
 res/values-cs/strings.xml                     |   6 +
 res/values-da/strings.xml                     |  18 +-
 res/values-de/strings.xml                     |   6 +
 res/values-el/strings.xml                     |  18 +-
 res/values-es-rUS/strings.xml                 |  18 +-
 res/values-es/strings.xml                     |   6 +
 res/values-fr/strings.xml                     |   6 +
 res/values-it/strings.xml                     |   6 +
 res/values-ja/strings.xml                     |   6 +
 res/values-ko/strings.xml                     |  18 +-
 res/values-land/dimens.xml                    |   2 +
 res/values-nb/strings.xml                     |  19 +-
 res/values-nl/strings.xml                     |   6 +
 res/values-pl/strings.xml                     |   6 +
 res/values-pt-rPT/strings.xml                 |  18 +-
 res/values-pt/strings.xml                     |  28 +-
 res/values-ru/strings.xml                     |  18 +-
 res/values-sv/strings.xml                     |  18 +-
 res/values-tr/donottranslate.xml              |  23 +
 res/values-tr/strings.xml                     |  22 +-
 res/values-zh-rCN/strings.xml                 |  26 +-
 res/values-zh-rTW/strings.xml                 |   6 +
 res/values/bools.xml                          |   2 +-
 res/values/dimens.xml                         |   4 +-
 res/values/donottranslate.xml                 |   2 +
 res/values/strings.xml                        |  16 +-
 res/xml-de/kbd_qwerty.xml                     |  55 ++-
 res/xml-fr/kbd_qwerty.xml                     |  30 +-
 res/xml/kbd_phone.xml                         |   2 +-
 res/xml/kbd_phone_symbols.xml                 |   6 +-
 res/xml/kbd_qwerty.xml                        |  65 +--
 res/xml/kbd_symbols.xml                       |  17 +-
 res/xml/kbd_symbols_shift.xml                 |  14 +-
 res/xml/popup_domains.xml                     |  12 +-
 res/xml/popup_punctuation.xml                 |  11 +-
 .../inputmethod/latin/BinaryDictionary.java   |  29 +-
 .../inputmethod/latin/ContactsDictionary.java | 130 +++++
 .../latin/ExpandableDictionary.java           | 457 ++++++++++++++++++
 .../inputmethod/latin/KeyboardSwitcher.java   |  41 +-
 .../android/inputmethod/latin/LatinIME.java   | 143 +++++-
 .../inputmethod/latin/LatinKeyboard.java      |  15 +-
 .../android/inputmethod/latin/Suggest.java    | 103 +++-
 .../inputmethod/latin/UserDictionary.java     | 381 +--------------
 .../inputmethod/latin/WordComposer.java       |  18 +-
 179 files changed, 1374 insertions(+), 665 deletions(-)
 create mode 100755 res/drawable-en-hdpi/sym_keyboard_delete.png
 create mode 100755 res/drawable-en-hdpi/sym_keyboard_feedback_delete.png
 rename res/{drawable-en => drawable-en-mdpi}/sym_keyboard_delete.png (100%)
 rename res/{drawable-en => drawable-en-mdpi}/sym_keyboard_feedback_delete.png (100%)
 create mode 100755 res/drawable-hdpi/btn_keyboard_key_normal.9.png
 create mode 100755 res/drawable-hdpi/btn_keyboard_key_normal_off.9.png
 create mode 100755 res/drawable-hdpi/btn_keyboard_key_normal_on.9.png
 create mode 100755 res/drawable-hdpi/btn_keyboard_key_pressed.9.png
 create mode 100755 res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png
 create mode 100755 res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png
 create mode 100755 res/drawable-hdpi/cancel.png
 create mode 100755 res/drawable-hdpi/candidate_feedback_background.9.png
 create mode 100755 res/drawable-hdpi/caution.png
 create mode 100755 res/drawable-hdpi/dialog_bubble_step02.9.png
 create mode 100755 res/drawable-hdpi/dialog_bubble_step07.9.png
 create mode 100755 res/drawable-hdpi/dialog_top_dark_bottom_medium.png
 create mode 100755 res/drawable-hdpi/highlight_pressed.png
 create mode 100755 res/drawable-hdpi/ic_dialog_alert_large.png
 create mode 100755 res/drawable-hdpi/ic_dialog_keyboard.png
 create mode 100755 res/drawable-hdpi/ic_dialog_voice_input.png
 create mode 100755 res/drawable-hdpi/ic_dialog_wave_0_0.png
 create mode 100755 res/drawable-hdpi/ic_dialog_wave_1_3.png
 create mode 100755 res/drawable-hdpi/ic_dialog_wave_2_3.png
 create mode 100755 res/drawable-hdpi/ic_dialog_wave_3_3.png
 create mode 100755 res/drawable-hdpi/ic_dialog_wave_4_3.png
 create mode 100755 res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png
 create mode 100755 res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png
 create mode 100755 res/drawable-hdpi/keyboard_background.9.png
 create mode 100755 res/drawable-hdpi/keyboard_suggest_strip.9.png
 create mode 100755 res/drawable-hdpi/keyboard_suggest_strip_divider.png
 create mode 100755 res/drawable-hdpi/mic_slash.png
 create mode 100755 res/drawable-hdpi/ok_cancel.png
 create mode 100755 res/drawable-hdpi/speak_now_level0.png
 create mode 100755 res/drawable-hdpi/speak_now_level1.png
 create mode 100755 res/drawable-hdpi/speak_now_level2.png
 create mode 100755 res/drawable-hdpi/speak_now_level3.png
 create mode 100755 res/drawable-hdpi/speak_now_level4.png
 create mode 100755 res/drawable-hdpi/speak_now_level5.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_delete.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_done.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_feedback_delete.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_feedback_done.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_feedback_numalt.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_feedback_return.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_feedback_search.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_feedback_shift.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_feedback_space.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num0.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num1.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num2.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num3.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num4.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num5.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num6.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num7.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num8.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_num9.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_numalt.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_numpound.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_numstar.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_return.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_search.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_shift.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_shift_locked.png
 create mode 100755 res/drawable-hdpi/sym_keyboard_space.png
 create mode 100755 res/drawable-hdpi/voice_background.9.png
 create mode 100755 res/drawable-hdpi/working.png
 create mode 100755 res/drawable-land-hdpi/btn_keyboard_key_normal.9.png
 create mode 100755 res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png
 create mode 100755 res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png
 create mode 100755 res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png
 create mode 100755 res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png
 create mode 100755 res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png
 create mode 100755 res/drawable-land-hdpi/keyboard_suggest_strip_divider.png
 create mode 100644 res/drawable-land-mdpi/btn_keyboard_key_normal.9.png
 create mode 100644 res/drawable-land-mdpi/btn_keyboard_key_normal_off.9.png
 create mode 100644 res/drawable-land-mdpi/btn_keyboard_key_normal_on.9.png
 create mode 100755 res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png
 create mode 100644 res/drawable-land-mdpi/btn_keyboard_key_pressed_off.9.png
 create mode 100644 res/drawable-land-mdpi/btn_keyboard_key_pressed_on.9.png
 rename res/{drawable-land => drawable-land-mdpi}/keyboard_suggest_strip_divider.png (100%)
 create mode 100644 res/drawable-land/btn_keyboard_key.xml
 create mode 100644 res/drawable-mdpi/btn_keyboard_key_normal.9.png
 create mode 100644 res/drawable-mdpi/btn_keyboard_key_normal_off.9.png
 create mode 100644 res/drawable-mdpi/btn_keyboard_key_normal_on.9.png
 create mode 100755 res/drawable-mdpi/btn_keyboard_key_pressed.9.png
 create mode 100644 res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png
 create mode 100644 res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png
 rename res/{drawable => drawable-mdpi}/candidate_feedback_background.9.png (100%)
 rename res/{drawable => drawable-mdpi}/dialog_bubble_step02.9.png (100%)
 rename res/{drawable => drawable-mdpi}/dialog_bubble_step07.9.png (100%)
 rename res/{drawable => drawable-mdpi}/highlight_pressed.png (100%)
 rename res/{drawable => drawable-mdpi}/ic_dialog_keyboard.png (100%)
 rename res/{drawable => drawable-mdpi}/ic_suggest_strip_scroll_left_arrow.png (100%)
 rename res/{drawable => drawable-mdpi}/ic_suggest_strip_scroll_right_arrow.png (100%)
 create mode 100644 res/drawable-mdpi/keyboard_background.9.png
 rename res/{drawable => drawable-mdpi}/keyboard_suggest_strip.9.png (100%)
 create mode 100644 res/drawable-mdpi/keyboard_suggest_strip_divider.png
 rename res/{drawable => drawable-mdpi}/sym_keyboard_delete.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_done.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_feedback_delete.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_feedback_done.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_feedback_numalt.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_feedback_return.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_feedback_search.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_feedback_shift.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_feedback_shift_locked.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_feedback_space.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num0.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num1.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num2.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num3.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num4.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num5.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num6.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num7.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num8.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_num9.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_numalt.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_numpound.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_numstar.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_return.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_search.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_shift.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_shift_locked.png (100%)
 rename res/{drawable => drawable-mdpi}/sym_keyboard_space.png (100%)
 create mode 100644 res/drawable/btn_keyboard_key.xml
 delete mode 100644 res/drawable/keyboard_suggest_strip_divider.png
 create mode 100644 res/values-tr/donottranslate.xml
 create mode 100644 src/com/android/inputmethod/latin/ContactsDictionary.java
 create mode 100644 src/com/android/inputmethod/latin/ExpandableDictionary.java

diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5222ba5f46..697dce28a6 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -4,9 +4,11 @@
     <uses-permission android:name="android.permission.VIBRATE"/>
     <uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
     <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
+    <uses-permission android:name="android.permission.BACKUP_DATA" />
 
     <application android:label="@string/english_ime_name"
-            android:backupAgent="LatinIMEBackupAgent">
+            android:backupAgent="LatinIMEBackupAgent"
+            android:killAfterRestore="false">
 
         <service android:name="LatinIME"
                 android:label="@string/english_ime_name"
diff --git a/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index a1f410db28..c9e158c4c4 100644
--- a/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/dictionary/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -42,7 +42,7 @@ static jmethodID sAddWordMethod;
 //
 // helper function to throw an exception
 //
-static void throwException(JNIEnv *env, const char* ex, const char* fmt, int data) 
+static void throwException(JNIEnv *env, const char* ex, const char* fmt, int data)
 {
     if (jclass cls = env->FindClass(ex)) {
         char msg[1000];
@@ -66,7 +66,7 @@ static jint latinime_BinaryDictionary_open
 
     Asset *dictAsset = am->openNonAsset(resourcePath, Asset::ACCESS_BUFFER);
     if (dictAsset == NULL) {
-        LOGE("DICT: Couldn't get asset %s\n", resourcePath); 
+        LOGE("DICT: Couldn't get asset %s\n", resourcePath);
         env->ReleaseStringUTFChars(resourceString, resourcePath);
         return 0;
     }
@@ -79,15 +79,15 @@ static jint latinime_BinaryDictionary_open
     }
     Dictionary *dictionary = new Dictionary(dict, typedLetterMultiplier, fullWordMultiplier);
     dictionary->setAsset(dictAsset);
-    
+
     env->ReleaseStringUTFChars(resourceString, resourcePath);
-    return (jint) dictionary;  
+    return (jint) dictionary;
 }
 
 static int latinime_BinaryDictionary_getSuggestions(
-        JNIEnv *env, jobject object, jint dict, jintArray inputArray, jint arraySize, 
-        jcharArray outputArray, jintArray frequencyArray, jint maxWordLength, jint maxWords, 
-        jint maxAlternatives)
+        JNIEnv *env, jobject object, jint dict, jintArray inputArray, jint arraySize,
+        jcharArray outputArray, jintArray frequencyArray, jint maxWordLength, jint maxWords,
+        jint maxAlternatives, jint skipPos)
 {
     Dictionary *dictionary = (Dictionary*) dict;
     if (dictionary == NULL)
@@ -96,9 +96,9 @@ static int latinime_BinaryDictionary_getSuggestions(
     int *frequencies = env->GetIntArrayElements(frequencyArray, NULL);
     int *inputCodes = env->GetIntArrayElements(inputArray, NULL);
     jchar *outputChars = env->GetCharArrayElements(outputArray, NULL);
-    
+
     int count = dictionary->getSuggestions(inputCodes, arraySize, (unsigned short*) outputChars, frequencies,
-            maxWordLength, maxWords, maxAlternatives);
+            maxWordLength, maxWords, maxAlternatives, skipPos);
     
     env->ReleaseIntArrayElements(frequencyArray, frequencies, 0);
     env->ReleaseIntArrayElements(inputArray, inputCodes, JNI_ABORT);
@@ -112,16 +112,16 @@ static jboolean latinime_BinaryDictionary_isValidWord
 {
     Dictionary *dictionary = (Dictionary*) dict;
     if (dictionary == NULL) return (jboolean) false;
-    
+
     jchar *word = env->GetCharArrayElements(wordArray, NULL);
     jboolean result = dictionary->isValidWord((unsigned short*) word, wordLength);
     env->ReleaseCharArrayElements(wordArray, word, JNI_ABORT);
-    
+
     return result;
 }
 
 static void latinime_BinaryDictionary_close
-        (JNIEnv *env, jobject object, jint dict) 
+        (JNIEnv *env, jobject object, jint dict)
 {
     Dictionary *dictionary = (Dictionary*) dict;
     ((Asset*) dictionary->getAsset())->close();
@@ -131,10 +131,10 @@ static void latinime_BinaryDictionary_close
 // ----------------------------------------------------------------------------
 
 static JNINativeMethod gMethods[] = {
-    {"openNative",           "(Landroid/content/res/AssetManager;Ljava/lang/String;II)I", 
+    {"openNative",           "(Landroid/content/res/AssetManager;Ljava/lang/String;II)I",
                                           (void*)latinime_BinaryDictionary_open},
     {"closeNative",          "(I)V",            (void*)latinime_BinaryDictionary_close},
-    {"getSuggestionsNative", "(I[II[C[IIII)I",  (void*)latinime_BinaryDictionary_getSuggestions},
+    {"getSuggestionsNative", "(I[II[C[IIIII)I",  (void*)latinime_BinaryDictionary_getSuggestions},
     {"isValidWordNative",    "(I[CI)Z",         (void*)latinime_BinaryDictionary_isValidWord}
 };
 
@@ -153,7 +153,7 @@ static int registerNativeMethods(JNIEnv* env, const char* className,
         fprintf(stderr, "RegisterNatives failed for '%s'\n", className);
         return JNI_FALSE;
     }
-  
+
     return JNI_TRUE;
 }
 
@@ -161,21 +161,21 @@ static int registerNatives(JNIEnv *env)
 {
     const char* const kClassPathName = "com/android/inputmethod/latin/BinaryDictionary";
     jclass clazz;
-    
+
     clazz = env->FindClass("java/io/FileDescriptor");
     if (clazz == NULL) {
         LOGE("Can't find %s", "java/io/FileDescriptor");
         return -1;
     }
     sDescriptorField = env->GetFieldID(clazz, "descriptor", "I");
-    
+
     clazz = env->FindClass("android/content/res/AssetManager");
     if (clazz == NULL) {
         LOGE("Can't find %s", "java/io/FileDescriptor");
         return -1;
     }
     sAssetManagerNativeField = env->GetFieldID(clazz, "mObject", "I");
-    
+
     return registerNativeMethods(env,
             kClassPathName, gMethods, sizeof(gMethods) / sizeof(gMethods[0]));
 }
diff --git a/dictionary/src/dictionary.cpp b/dictionary/src/dictionary.cpp
index b37f4c9265..cc711f4198 100644
--- a/dictionary/src/dictionary.cpp
+++ b/dictionary/src/dictionary.cpp
@@ -49,11 +49,8 @@ Dictionary::~Dictionary()
 }
 
 int Dictionary::getSuggestions(int *codes, int codesSize, unsigned short *outWords, int *frequencies,
-        int maxWordLength, int maxWords, int maxAlternatives)
+        int maxWordLength, int maxWords, int maxAlternatives, int skipPos)
 {
-    memset(frequencies, 0, maxWords * sizeof(*frequencies));
-    memset(outWords, 0, maxWords * maxWordLength * sizeof(*outWords));
-
     mFrequencies = frequencies;
     mOutputChars = outWords;
     mInputCodes = codes;
@@ -62,8 +59,10 @@ int Dictionary::getSuggestions(int *codes, int codesSize, unsigned short *outWor
     mMaxWordLength = maxWordLength;
     mMaxWords = maxWords;
     mWords = 0;
+    mSkipPos = skipPos;
+    mMaxEditDistance = mInputLength < 5 ? 2 : mInputLength / 2;
 
-    getWordsRec(0, 0, mInputLength * 3, false, 1, 0);
+    getWordsRec(0, 0, mInputLength * 3, false, 1, 0, 0);
 
     if (DEBUG_DICT) LOGI("Returning %d words", mWords);
     return mWords;
@@ -110,7 +109,11 @@ bool
 Dictionary::addWord(unsigned short *word, int length, int frequency)
 {
     word[length] = 0;
-    if (DEBUG_DICT) LOGI("Found word = %s, freq = %d : \n", word, frequency);
+    if (DEBUG_DICT) {
+        char s[length + 1];
+        for (int i = 0; i <= length; i++) s[i] = word[i];
+        LOGI("Found word = %s, freq = %d : \n", s, frequency);
+    }
 
     // Find the right insertion point
     int insertAt = 0;
@@ -144,16 +147,14 @@ Dictionary::addWord(unsigned short *word, int length, int frequency)
 }
 
 unsigned short
-Dictionary::toLowerCase(unsigned short c, const int depth) {
+Dictionary::toLowerCase(unsigned short c) {
     if (c < sizeof(BASE_CHARS) / sizeof(BASE_CHARS[0])) {
         c = BASE_CHARS[c];
     }
-    if (depth == 0) {
-        if (c >='A' && c <= 'Z') {
-            c |= 32;
-        } else if (c > 127) {
-            c = u_tolower(c);
-        }
+    if (c >='A' && c <= 'Z') {
+        c |= 32;
+    } else if (c > 127) {
+        c = u_tolower(c);
     }
     return c;
 }
@@ -178,12 +179,16 @@ Dictionary::sameAsTyped(unsigned short *word, int length)
 static char QUOTE = '\'';
 
 void
-Dictionary::getWordsRec(int pos, int depth, int maxDepth, bool completion, int snr, int inputIndex)
+Dictionary::getWordsRec(int pos, int depth, int maxDepth, bool completion, int snr, int inputIndex,
+                        int diffs)
 {
     // Optimization: Prune out words that are too long compared to how much was typed.
     if (depth > maxDepth) {
         return;
     }
+    if (diffs > mMaxEditDistance) {
+        return;
+    }
     int count = getCount(&pos);
     int *currentChars = NULL;
     if (mInputLength <= inputIndex) {
@@ -194,7 +199,7 @@ Dictionary::getWordsRec(int pos, int depth, int maxDepth, bool completion, int s
 
     for (int i = 0; i < count; i++) {
         unsigned short c = getChar(&pos);
-        unsigned short lowerC = toLowerCase(c, depth);
+        unsigned short lowerC = toLowerCase(c);
         bool terminal = getTerminal(&pos);
         int childrenAddress = getAddress(&pos);
         int freq = 1;
@@ -207,38 +212,41 @@ Dictionary::getWordsRec(int pos, int depth, int maxDepth, bool completion, int s
             }
             if (childrenAddress != 0) {
                 getWordsRec(childrenAddress, depth + 1, maxDepth,
-                            completion, snr, inputIndex);
+                            completion, snr, inputIndex, diffs);
             }
-        } else if (c == QUOTE && currentChars[0] != QUOTE) {
-            // Skip the ' and continue deeper
-            mWord[depth] = QUOTE;
+        } else if (c == QUOTE && currentChars[0] != QUOTE || mSkipPos == depth) {
+            // Skip the ' or other letter and continue deeper
+            mWord[depth] = c;
             if (childrenAddress != 0) {
-                getWordsRec(childrenAddress, depth + 1, maxDepth, false, snr, inputIndex);
+                getWordsRec(childrenAddress, depth + 1, maxDepth, false, snr, inputIndex, diffs);
             }
         } else {
             int j = 0;
             while (currentChars[j] > 0) {
-                int addedWeight = j == 0 ? mTypedLetterMultiplier : 1;
                 if (currentChars[j] == lowerC || currentChars[j] == c) {
+                    int addedWeight = j == 0 ? mTypedLetterMultiplier : 1;
                     mWord[depth] = c;
                     if (mInputLength == inputIndex + 1) {
                         if (terminal) {
                             if (//INCLUDE_TYPED_WORD_IF_VALID ||
                                 !sameAsTyped(mWord, depth + 1)) {
-                                addWord(mWord, depth + 1,
-                                    (freq * snr * addedWeight * mFullWordMultiplier));
+                                int finalFreq = freq * snr * addedWeight;
+                                if (mSkipPos < 0) finalFreq *= mFullWordMultiplier;
+                                addWord(mWord, depth + 1, finalFreq);
                             }
                         }
                         if (childrenAddress != 0) {
                             getWordsRec(childrenAddress, depth + 1,
-                                    maxDepth, true, snr * addedWeight, inputIndex + 1);
+                                    maxDepth, true, snr * addedWeight, inputIndex + 1,
+                                    diffs + (j > 0));
                         }
                     } else if (childrenAddress != 0) {
                         getWordsRec(childrenAddress, depth + 1, maxDepth,
-                                false, snr * addedWeight, inputIndex + 1);
+                                false, snr * addedWeight, inputIndex + 1, diffs + (j > 0));
                     }
                 }
                 j++;
+                if (mSkipPos >= 0) break;
             }
         }
     }
diff --git a/dictionary/src/dictionary.h b/dictionary/src/dictionary.h
index b13e97795b..8f195ca9a5 100644
--- a/dictionary/src/dictionary.h
+++ b/dictionary/src/dictionary.h
@@ -32,7 +32,7 @@ class Dictionary {
 public:
     Dictionary(void *dict, int typedLetterMultipler, int fullWordMultiplier);
     int getSuggestions(int *codes, int codesSize, unsigned short *outWords, int *frequencies,
-        int maxWordLength, int maxWords, int maxAlternatives);
+        int maxWordLength, int maxWords, int maxAlternatives, int skipPos);
     bool isValidWord(unsigned short *word, int length);
     void setAsset(void *asset) { mAsset = asset; }
     void *getAsset() { return mAsset; }
@@ -49,9 +49,9 @@ private:
 
     bool sameAsTyped(unsigned short *word, int length);
     bool addWord(unsigned short *word, int length, int frequency);
-    unsigned short toLowerCase(unsigned short c, int depth);
+    unsigned short toLowerCase(unsigned short c);
     void getWordsRec(int pos, int depth, int maxDepth, bool completion, int frequency,
-            int inputIndex);
+            int inputIndex, int diffs);
     bool isValidWordRec(int pos, unsigned short *word, int offset, int length);
 
     unsigned char *mDict;
@@ -66,6 +66,8 @@ private:
     int mInputLength;
     int mMaxAlternatives;
     unsigned short mWord[128];
+    int mSkipPos;
+    int mMaxEditDistance;
 
     int mFullWordMultiplier;
     int mTypedLetterMultiplier;
diff --git a/res/drawable-en-hdpi/sym_keyboard_delete.png b/res/drawable-en-hdpi/sym_keyboard_delete.png
new file mode 100755
index 0000000000000000000000000000000000000000..569369e79927ae1eb3ca3728fc567c1f5586070b
GIT binary patch
literal 2315
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

literal 0
HcmV?d00001

diff --git a/res/drawable-en-hdpi/sym_keyboard_feedback_delete.png b/res/drawable-en-hdpi/sym_keyboard_feedback_delete.png
new file mode 100755
index 0000000000000000000000000000000000000000..ca7637552b5e256f445fc8dd497811ab7518f489
GIT binary patch
literal 1278
zcmV<a1OfYrP)<h;3K|Lk000e1NJLTq001@s002Y?1^@s6%CE*30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$ph-kQRCwC#np;RzK^Vt9uB&Uc-LQ*h
zUb>jt4JzrO-h`rupqGM#pvQWv=%L$V4;A%L5kVIUx*$nNWmZT;U=UaYNjJKp4;4j4
zsafi7-)H}UVVZOH%-OSfvNP~!*|Rfe<~Q@r_sx82C6mdl;aIY>hG_}GLa-1l1Pj6b
z3$PrM%9dsE$4Jry(g-|Gkorlzq;I5dd{>LwPA=T$BR<u-UHGlXZd}?!20wHwlrnCn
z=pE@1X*a0?1G1E^bnS!&NToJ)8Mee}!gXWyVv4#MpG2xA?Ic|$Eg;2Qw3D}lWm7jh
zMca(*u^*(3q&=jEcs7f4j8yDk>fCMxX*N_&`rzv(^I(eAl9_xb%_WV+=Y8onHp|gc
zS8BUThhdr2_01I3(ntD2dPO=aJzuGS1=lO4C_J-ma0C&>iKuSNf`bqf+XGYV4kB0r
zd#4Xz>^w%<)XgJZQ=XOk36_Zf9f+H&pDUJ)l@Rajbyxvj*;S+t#S{YxmXG)q#rF>E
zyQIykz9Bsg@``0+FO?#uiPA*+`mdTId$;MN<)k{&B0PUhI_Y4FCSK8-2Te0T>-2(D
zi-W9P(ABBTV_of7y{wq-l--FSeT8%u`>V%AJCi=lOvxm#=x}Z6gBR@bcx_S5%cQRM
z+TsN)a7D)u-k@!7ssSz5a9b%c`8ggYB9|0LP>uz_oD*;;pW#pvURIaA)lyPD;#D#r
zdP`cz6RyNuBdCr50m<SOD>VVL5KorisFVz_s@$GDEbJpb;+$5FGJMEwB;B(K$bZA5
zFC*=foS<uGD6S$;l$kjU$b1*h!;+Lv9bF8bBVCPH)ox6YS86_~U4i0+%@mg&HG&LQ
z1&&BjO`TliB`Z)jVgOfZ3Kr9((^w~vFO0gJ(E`#|oF&iU&K6am_}X(FXU#2`fJi35
z_<CPOx~o8)B29G(B?i5k^iz6Ay#yzqTBP5(?gp5+uV4%{lhmp}@qkJUpv1fC6fp6w
z3Jj_x>(3niCcnYN4Bk>YYk;GO8hR~ZirY1Cmq@pjX9;+?$$pw5Lro(!E1flZgp!@d
zMA8looDQnc@R;Wa#+?^o7Uj;a0ydgvyb*A_;6!v#`#nIV1ml6PRXY2GyhYr{)Laee
zu?DOizvX*)Z^{)bM6N>a@D3bFUYbzC%x^fD;ss48@MVuh@!|%h!<%p@xoJW*Ys{}-
z<1J0$TzN%)VL8r#a)(WLZaSOdeLAQkS-<~&)}LlraUI9(%;us8?>L5ZMgw&KfxZad
zvR`u!jr$EI;AUvz*?Gg+<Ujfy)Ib%%`^lj|hTEGdF!@;3YI9c1acPRhFuMW7sUoGV
zfZK*paNOYip1=eg-^1DzxI>x&I>8md0gbn5!*Jtp%qqx)^RPSR&m%ps*(WiVcPPun
z@4nv0Qq4MFC7zSkV~<s%^UXNZajyOmOl>G`(6#BtSw0mkBs~jw&ZE*xmWmTPi%Bm7
z3dJe75>qfa1y_SW+8H3I_oOv)UePqgEoXw`u<xPH1dD$p8_Wa~)L<sq3jgmu1Pj4J
oun;T+3&BFL5G(|<DZd0500zRZM#E{TS^xk507*qoM6N<$f<q-#&j0`b

literal 0
HcmV?d00001

diff --git a/res/drawable-en/sym_keyboard_delete.png b/res/drawable-en-mdpi/sym_keyboard_delete.png
similarity index 100%
rename from res/drawable-en/sym_keyboard_delete.png
rename to res/drawable-en-mdpi/sym_keyboard_delete.png
diff --git a/res/drawable-en/sym_keyboard_feedback_delete.png b/res/drawable-en-mdpi/sym_keyboard_feedback_delete.png
similarity index 100%
rename from res/drawable-en/sym_keyboard_feedback_delete.png
rename to res/drawable-en-mdpi/sym_keyboard_feedback_delete.png
diff --git a/res/drawable-hdpi/btn_keyboard_key_normal.9.png b/res/drawable-hdpi/btn_keyboard_key_normal.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..90b51fa637037082d109eeba3edc5098939bb609
GIT binary patch
literal 696
zcmV;p0!RIcP)<h;3K|Lk000e1NJLTq001%o002!01^@s6<V!cD0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!T1iAfRCwC#n>o(HFc5{uAz}%Lf{uco
zQ&3USazV~Q!xi8JbVwi;vF2wi{40bkrU<;48OfrEBi_f%vlDEqFbt{aP)gmuCRBxf
zM-T+m>-CDKDKO^qx$?-7@Lhnomo7Pz5qC>#x7*QnyQS0V1Sz;$tx~JiqGq$14zk&7
zsNHVUXf&d3w@W-Ue`0vH^#Ql#a!J$al-BFD)|v>ynHZ19RIk@H)a`bI0`WXgiysb$
zG?`4&L9W*;H5v`NTrRpHf^e`#)|TlJ?htPfqtXK+MN{|!!Wl4~IYTHJF*?$!BoQRu
zP$El{fWU(!!JvUy&FscZ#_(tpqS5v{8F9|+@$nm>w6d~Nn$pVClWTUAM--El(wqJ5
zjG&r5Pm}u~$R7F4jFcWEItikIWKGbenn$AAWF8T-f7|R%l$Onn-+ZZ((keq~xw}5%
z-0+M1h+^##^ieC(Bm4b6bipICsw*G@A|L`HAOgZ5K@cbxK%9B{6^{srfV^pTvoIfR
z2$84Bx497s<n4^u-27>fEKP2g7CMMkY4P4cvk}tlBZL@UA9|vjG=C=}(T0|hG+p8m
zc#oKlX*YZmB&zM@I-gF+n@13vwb?6`%F~RBkP+5oZFcVL`@Vh)V+f?Z@kX2Zk)ws=
z$2%Vm2Yu{<A$V^*A_!}YXXOcmkMhlCGa3vA`s57av5WKhtTnRMr|T@V-|uU+oPpJ9
zMaSb2YMX2vs8*{{r_=c_vBhHXT3Xxz>9|D_h%tR?X_-z5W`Yl0TJaNPCeW7UlKxD*
eYt)~A0t^6T+)o+WtCTAM0000<MNUMnLSTZ)oJAo3

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png b/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..6ddd516e790627b773405917a89b9da4feee36c9
GIT binary patch
literal 941
zcmV;e15*5nP)<h;3K|Lk000e1NJLTq001%o002Y?1^@s6!$f9n0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#Pf0{URCwC#Te*(vKoD$mV-ATUAs|BH
zGl+;t`9Z#ggkOLhfdmL~nj7BMXa^auZ47JUeqN6>TCp0NDyq7B%rwgFb|bHcq9|W)
zb5lHh4^>sETCIA|#>3I?_mv0*WW<6%;>)@e7)63>t?hP8o6Uxf$0JL?i9~|3*(_x;
z8EYb|)r#`@JhfUas#Ge3)clF`>@*HA$Kx?|yIoo?mjbIP5h&4aw<(oM2~yYVl@*al
zBqG2!n@#F;I@UxkmkXuSX*!?JVsa#c0gS+A8zWd?oGh}^Hwg<&w;x2HfLsiPxF{lV
zSh>WMh;iE89Fl*Mj1{JriQx5my{7$sFBFSLqr$UDiC&X(jR<6&&1Rz3fB<}pdV_4I
zX&RNw<-3=CCt^lMl9)^;bUK|xde(pXSObNo)2XLq?5u8@we$fmFGO7d*km&K5PbI=
z#bQD!*vwdU-7JU_+gpm@1|R`DS;YbV4>G&mj_{1*yCP;W0;|YR;aNJyI*{_B{=60J
z#uN)RQ0?uA0DL?izgxg<YuTyd$Xb|4ugFYR_QD#ZW9)yt*xEd+Yfpn6^KdwbY=mG&
z3>e8^J=6k;TrNk8#lo}wmQ}DvoGOA^QLonpP!K~J26+6%>q4PGwOUQAGrQi+`F5~l
z04$0jz~Wf|)g8qU=@_;HLDUhD^ST)Ry0U}Ja5xloqEsr0bSo7ZjYc2ap1efFZW|9Z
zF#UKYac$G+=QiHe-S2-xL|?tR5wY7@II1IDh92A7+jvga`c)kXgWd074}`UxT<8}O
ztIQQzi<`BAdp;7l^vijR;y6aQXD!nh(KPKAgcymas;Y#+&M4T!bM}x(NaV#}m*)`r
z$zeRh6mxPRCn7H^;^g8_6S2b-Y-@2R;>cP!W|Ms%ULG~SoL;~2=zCKBjw1TWO%W?x
zVT`bk5xLOn0zZl9vHhJoA|=ETw7#NpP(*elIkFZO<B(H!JaB3Sl-T5ltQRb1T#SYQ
z*~WxU29894(WuG;5p?zRdOd118lq8{W0xt8!-3J*f%NdR3n(z3&&9bp7XoI4(4<f-
z7Vj1t3<f`~g$10tOU;PLptrP^Tx1eV?1y64?Z)j}NV6{!(RzjPPk;dcs>4Q{NHt&(
P00000NkvXXu0mjf0<f<Z

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png b/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..65fdeb353f8d1de9d732405dceb11a9cc2f4e27b
GIT binary patch
literal 1076
zcmV-41k3x0P)<h;3K|Lk000e1NJLTq001%o002Y?1^@s6!$f9n0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#)=5M`RCwC#THkNdP#8TerG=IuU^cUC
zsEH3g&BV7o?ZqV~d-V_4zqbFvhb3m2CNt4Q9~Q%WGEQNe3u91z)7E|scPY?fAr!71
z-*VF|+zaP$zVqE%`U#e0A?y$Y!TuOa2=y~mRYg9Z51&nlQ79Ay5fKR~3MA~*MPw9-
zZfe!*b?CZ|PN%~qU|E)tN~NG_nm>_hwTg5)jlI1+tgo+wO7lF*b5I}9D3wY$K0e0n
z?X82=v-}o|MeOhIBaukJFbtTc$rTY%6cLNX&}y}CaBzT)jSc6uv$Hc{KoJ6;OeWFm
z^_;;Y5emXc*v5K<CJYZQs#2eX4<>7b2r0lOlR~^G!f^Oyi6@ca!Ap$8G!>C{yX_c`
z6q6(gilR8<zac`vE0qeY<Rwy@6)33=+BF5$iws2l5i*&~T`n)2h!+_Os$xW9ZR;nV
zzq*8?3U(<Za!s`AHz*u7as4fiY&PqZ$S{cn+S!?znBm#NTCIjB+rO~&x{hQj4KYR=
z6ur5<CTk)6M#opVgsW3&V56G#hRCo@r3k5^t<~^i*Fq*|f8)~VJyJrp@N%z%qw_j?
zT{RR{CQ`)9Bjk<EXBM)V9Mq)bC^51wZYz`NV)e0!Ki`c|yfT&9-T#xM=?6)uiap}~
zw=kB{g_dsPx}O5GPOWjO1WGM>6Qh+tTu4KS$v)qfU6$=XqglPn<$0+Q$n4Bm<=+y_
zriS>6<`{iAjGjHWrQ@d52yG)BXLd1&A~deg1)P59px4kKnOVp}4vP5DxyFnPI=Y50
z@7mDIg6H~Kj;YPg;?rRTW=F>M?o%XH*;Yn`X_%<%Exdnwfzyw*xon0rIih?%y2Ot{
z6|3tj&{h=aw=G;<=qO({=XN}qh{(8O{8h2;j78j&%=FN>=#%gLBI3S@;f;v<I`uxn
zL%6X`eT?V%?r>@L|H|x<NUb0X7e&OcaxGJfx73R6^O4AvU!IRBfjz=|)$;U6qtURU
z;1N+(Rbgp%j?BJ%&b}nFBr>7d*>ec@;358nNeZ%%Cn6Io5@hkbiHyS(?bPC(NTAfB
zM`o<=Bg{w56PMRM9(Pa5{ZYg{cvHj=*U}^0dxTB&Td+tXZfy5wA7K)*77Sj9Fie5X
zPLrtzi!}=H)C$P3dGxsqHfPf0X0z#ZnL6DL{Z3Qfh!DnMRR)Mq>+H$N33hgNoJL_D
zyG*;?u7i=V4!rK}`y~a+<+9W2$5SukFd=F?%;j=-DK^sgON?m(Pu-<nM40J)Q;SUs
utCcTQg2TDy4&Hu+^!hQ;#^_xC3NQdwh&V8f<kfNj0000<MNUMnLSTa4uL`pO

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed.9.png b/res/drawable-hdpi/btn_keyboard_key_pressed.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..efaad9612d2f3578707c27318e384bd11d0e3f7e
GIT binary patch
literal 696
zcmV;p0!RIcP)<h;3K|Lk000e1NJLTq001%o002!01^@s6<V!cD0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!T1iAfRCwC#o6qjSKoG}gt3gUgTyd0m
z9Z%rmtsK3BXCZD5juL_(Sf=@nv}@V^eo23(o0(+OgAL!0`Lo-0R%xvvZ&OM=enzWY
ze<O+_=ytpL)8uHg*-QoCiG@BuJVF<|@rb{nwcqbyx7)$_d}b-QTrNYsUWZz(_8w%r
z-9o3+f#Glny<QJ)w;TLNdCr^%K>&-z0w$9QESF1YG#d8uyIQSaJRU={*@Wx$$`Yhh
zD#2#6fzfCL?RGo<Y(Af>lt)lJLR>DF6v($>5Q0EZ3u;7dA9DmJAOsCg9zk!!6)JeC
zQQ8WU9GpOCnBK5@ghDAfxY#F6;t}>9!Aaabk{QHB|4ol1uZ7ML(j_2;1F=;uZdEJO
zHr~t7qEgJ_4)C$RN@~jlVy-2e?A@R1ToAc|ybE_{j&KC|RgNS*!|AclpVyJXf^g0e
z0?C{sT&ouCd?mCB8CqQL5M7%54K1&7#Ea0PiJZ%?B)jAYha4#!$l-9%ww0aZHlA*G
zZ6NYiS3m?rKm<fU1O!+1D2lK}PZxcQ;%}Rictnz2Km<fU1VlgtL_h?@xoJ$c+|l4*
zE=~S~7M@OUd4%I|h88u_V>>xsxr7$#B5jtI@>dX?h$9Tc=NE8k@<&ai&zusP)Od!3
z4w=x?Z!R98KNvNdUP*!AS(52=3WLD_s@3ZAv;r58Ajt7}j5VUx)EpGq@AqS+D15zM
z!|8Nl)s$&MRVo!|wOY>*dpQV$?!pP2&W+eWYzZIQCRvh+y~Uwro**MLU(0>lejX;8
e8sqC-fB^sjcZTw~DV(MN0000<MNUMnLSTYcL^eeL

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png b/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..43927172310d4d3b24260b4e1ec2280596d4d33b
GIT binary patch
literal 964
zcmV;#13UbQP)<h;3K|Lk000e1NJLTq001%o002Y?1^@s6!$f9n0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#W=TXrRCwC#TFY+gFc6)DP^y$yd8{ZK
zP&X|27ruZ^|B5C5&|hf*v0;G(s6boF8*+QB>noF*S1$n*c_b@sVv;#Nb7t(shT}No
zwHb!-{TRpa^cl8oQ#PCR9*u|g`ub{^<P)>}0OC7z$v2GnH?+RKzGyTW(R@Bv(&3w%
z8w!WRba!{R9mvPW2R%GIP`O;D$Hzxnuh(>r^n9=mOp_Xo234z7YPDJvjYj3^x7}`2
zrBb0-EJmx<N=YDrK!D!g-|6Y;i87fCyH=~!j15NMJU}d$%MBox1_KZr2z-H$@NK6?
z&;cNLQ;89<!7`NjBS$$>AYxMq2ybpSq>S)T5}VA#^SJprY?n_*GlFxyUXO;uAxqJr
zP>AC3IHgi48RhCRf+LbZv)QD#w>Js~gUs>qcubv6hx+|K<#IW)EXy;7j$#CzWQ;5p
z3#!-aG?`3TK@vwFtbifp_<TOkKzhlD42Zcc_C@r_UKsVy&rjyGJB0B6?d>fM1_Q>H
zn6^*d-1<C9BLIRC$Mj&E4sae!pjai7$&>3v)W<;@kpaOG`q&rya31|+4^jdM48;gp
zYFAxBe_pgs4Q3w@b6<8q!woP&gW$IT!Od~~{{DVz_B*9ce$5DG#h4v~6`p#<-^^w+
zHV1+}yjTMKS7>p4z~Ef5SfrPi7nYp>hNnVYOQ+Lp>W{kOg+?%NqHhNQan}-l9t*BQ
zp+Mbkm$3sDkai=H2&?S4?ga>0ojbZ9ia)~NsNh(gVOqjR3EDt<K8J0a$nMpM3_Yql
z+9m90jfl*s^xEgwb>wP+?9zxTKn~W3ENiI(<lwBOLrb;LI&^MxZrkURe?!Yx8u3MF
z@s28|UoCd65fwCYbwIwCrjD$#t2mA43ppte+qUtt%DHw%{QFf`GjeJDXdoJh2BLvz
zAR34UqJdn&q*2^qz?&+|++99tMpR?Ok}W6k(I4A3a8v~d{NldJwuk%xf{tj|uEcMk
z%AQ8}#Qk%3vD~Qf*_rRD<%@k)7~um9AKk2M0KwMT=jUfCl}haUIp3VA3L^kAolcpL
z@O7h)xbGK^<2yPw0;sZ9mx02bu|y*AFT{TA`vqO-pwc#384#J^Em<dtn3Ole9c!Yw
m-$Gv6{=Q6f`^b)e1Q-A#zPZbN1g+ix0000<MNUMnLSTaJhsJpT

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png b/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..c2cc3204482d9ee2a41d3bc2d4d5a3afd7f5402a
GIT binary patch
literal 1055
zcmV+)1mOFLP)<h;3K|Lk000e1NJLTq001%o002Y?1^@s6!$f9n0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#!AV3xRCwC#n$2$7KoH0O#x@4?kwE$Z
zBBYh7sD~b^_E4#hktfI{Z<S--AurHN4!yLhS`exlQIY0LR1gRTW4k+U78zp*iDI%K
zue3r6llA=kpP5~oksQZC*h7*eb{R(s^%}aaqg*bBPZQ#(R4P&oD>9T-fMB7El~H7M
zL#x~EqSNVMFc=8wa6BGII-N!;m6{IHZnv?yxryD~U2Jb}!?tZKqCC%?2eBAxwHgi%
z4p6Vxk<Dg<%kRm_3HJB*v9`7b%d&(7k!2aJRttN3dnlDk?swH{RT@)-oF|Cka5x6?
z*f0daLC6>Kk$jt(BV<4je2Sz9so_?r*hGzT0zte}BoIFRY6L36L&-Zu8MA!4mm*Z2
zX_}@9RaKG6WG2d?(29`bRN0zF1yZ^JDbaz`&*0DRGB)(rC>D!Q6h#b0$S6pWe!q`K
zqXBc{2!)Sdpy`x+ROtYt`yH)s=Quw8fUT{qP++`@%ncGme|dR{Sm_8a-v2~0okdKh
zMahnZW6oilQw^t|6<k~-Q79BbQ^fmu=Nut5hVkDhzCFWwJ_lKud`3#d9Z2u$IREsD
z+2`Ec2}2R?*S$a}H<C|V$gSt0ClyzTiMz%8w%1Lxb1j&Cb5!$%0-*);lnPyAAnNq^
zcQg|ToqgX&;KddS5>&a|yK7~jN-{J#J|%w1|2|^Oj_kwOe`f7#b1PzXHemN8sF{?T
z=>B01nZ3cvaqr1!9brO?mtuDz;~CDY>`<B3SeR)yRqKB#B#2(8kJBG<#D?rZ2m8U*
zp!1d2x4A(4dkG({`g7FmE4+LoBdIf|Wwy9wquVj?>#Kt9S&mi+{g^WM&h8H{@Az9!
zp><|J&sb13U|;~fEA~HwROk@i8-3>-38J@qakP6Ae_hDI@y<EoRYs)OKKI^7mKNl;
z91#Iz?i`s`wL}1!yJ|(DC0b~S`pkZtPpcbRE0rTF5n9|(<nkLOdz2$0<jB&2Twh;1
zK|8yM$9Vp@8wjH7I=xA7mR*t6{Z%(o<gxQ70*OE(kO(9Ki9jNd2xJKkjouCeK1F%V
zo#j)ch-iu^L64L4J2`dF(WfXN<QMlXpo4A_gbZo&4j<k}D1sW~6Zg+=qWGz)WtKOQ
z@rQj;6yZ0ReDtd_212c~hlhvQ+1WuNkr*{+ilPXC7>42cNWPBQc>8|I@n*B>wl#^=
z%jk#FG!6NDeiUL8eZM3Z8Hm&-8w3)R@Jf);L-$%O1kfLA-r;`>`Pk#;Wuo6l_w%0s
Z0{{<_AlR|X^KAeC002ovPDHLkV1g0P?MDCr

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/cancel.png b/res/drawable-hdpi/cancel.png
new file mode 100755
index 0000000000000000000000000000000000000000..6585bde17996f0306a5499f33cf0e9ddbd2fcc48
GIT binary patch
literal 1811
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/candidate_feedback_background.9.png b/res/drawable-hdpi/candidate_feedback_background.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..203c4e640d8369111e7e09102e1ef502d60fcff8
GIT binary patch
literal 833
zcmV-H1HSx;P)<h;3K|Lk000e1NJLTq002h-002q|1^@s6=`KmZ0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!<4Ht8RCwC#oX?9=Q547TD;W@ik+wk)
zjG&2NB1kJiC>V-Cu$HxIEp6v7C|bq)2MU6Lfou`}4gw)uL}DO{i6A@(f?!}o2*R{;
z9S5#=B6_~@dV=qPFPC>jy?*@O<9&Lb)@(Kt9Ky1!(}`GI=HwH6!V=8lf<W+h4wt0_
z=Kv0aWtGe2Hu?f=+lF)g_kx@v-6P#0T{HCp6z4jmx1>XI(}#1}TX_AHpvhgQ;W_CR
zqc{B}=`le%-WVJLBc1Ysbcx}r_)2<2fGWn}5STq0-jFUbFCF&@&}(CG2+R%*pGezk
zKAB94cswq`;jnQ6olZy8>vhrV_4J#5$f*&awyA>rOb3(AW<@HM+L%2ek;q)NT1^xR
z1@$IB=?UrX+MTl~z#TQ0$z()2oo2I+q=WMLyq=cs`MB<V&YpS@i^W)hneQpc!HGmd
zPd_lR30#5`jYe5kVfm(Manl5x9rYj-3bBL}3<m!??{&f1TB_(iA4@oXzh6&n<J{_;
zLVj%vIB*W&01n^)4&VR|-~bK+aQ+pJJcl5G1f1g@4r~MGxDOx4z8E+MZ~zBz00#j$
zfCD&y12}+VFs9R~p8DnTA*@y4{8SGnlL<>W<MCKeeK+Bp?$SZG%M#9DFwj$uoBPWX
z@>Sq0H9$8S4VG}4&8D7uZ^AjR)b%?Y4n?_KW(B5Fsfc#_O!MgB+Tqx?{e^}DH7DT|
zi$ykIN~O{nFf{MaZXavawyb?|a*e~~(?qpe6^`S~8x>{CSs)NF24plEiGIH?TCLWf
z9CN&wuj}yA!7f`!<$Bs;{E04?|1P=aozZ;`J)tacw@F7#!5n!3<9QQEPh6+r#-d1b
z3R!#;Uch*%Ir{$LA?c|&X@r(N{#Qv?48r)fn1^)p!7A4|tP761IovmG5nRT&p|J3~
z6`TV&fCD&y12}*KIDmry9KZn_z}Zk3zwTN2v&5C|Zt`1%-vSH(*kja>F`B{A00000
LNkvXXu0mjfD}Q=1

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/caution.png b/res/drawable-hdpi/caution.png
new file mode 100755
index 0000000000000000000000000000000000000000..5cb6c54b93459214c352dde5285d29647173d680
GIT binary patch
literal 1641
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/dialog_bubble_step02.9.png b/res/drawable-hdpi/dialog_bubble_step02.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..b338364c5fbef92c31d9d3fb5ba93993b3164166
GIT binary patch
literal 1475
zcmV;!1w8tRP)<h;3K|Lk000e1NJLTq001%o002S=1^@s66&;0e0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%Wl2OqRCwC#ntM!JRT#j(`zVjL)G<aS
zP#gmW#%;z;F;OOx=^|TPoDzI2M*V|Ck}-{mG5j;L%piYgf-y0R%s|9wvc!z7Y?`oa
zm1S<~U|CEgbIX{eWyoXDtw2j3_j(RHr`%q9yFz<g(0j?3-gA1({eIu$oOAE_7*P~K
z?So+$bQ_UT^&ZIpNy?#tXdo))2uj99{YLW1$l6P`r{q(VwG$3Pm1eJBKVF=lpZg}y
zbCoR1WV0;$aJ&{31mSl<5T^ox;8~}0^y~HOU$o<H8CYB(A%MQVZ}K;7Dm|E%rh6T=
zITa%%==J(KdVBjntf|>IPJo1XKqv%fx1V_0VljV<tZz<M+#@eJ9gfjgii&n!#BkBP
z6AdH;F*I~?TVdh-R&<_5zq~m$2tQx3g4Z_#V|Sc!D{VGeATvD+o-BVJ^0SMjgOT^z
zHOKby@|S)kFv4O%SPWsaeOXdfwfP+KL=Ntp^LxPB-v;*aE2?>-*t`*5sCXMVmZzQ>
zId<%)Cu(ayxTyrA1j3LUNSm2C*QwWM)Z$JLvi|oMK8MlUL#l^W-m10m+Sd0&FmCs3
zhsjj67oGYgVHRd}rLf}8pKpJJLg2&N*9Lzh2vIgpsv#pTJ9PbaD5OwUmi~?I?$$D5
zU?x)dM1sKmd|BDrS83<vzs|zY#MPuuayP~X=5vu8Tt&r(I;<DbkBJ2YQ|pj7Drx6{
z^CI9yK(gh+pFf5aGa551B_Lr3uV4&(p-!jc3uuRHW*oUZ`O6vC?8JhyJZHgr;W398
zT#N=nLyJQ{Tthpjy>}o59Cz;<0^xH>wEQbiqJgl|*;^2Wlq?2i_vIw{Aq5fnXiJjt
zRdT9U=Mlp`rcrA}tlDD<Er_%%Uq&8@xD4Ur_=l+if%rgD^#luv23h7FS*gjc<;Z_2
z*_U^^Ys0TL{Ho;<{K_9<cuTnK=MlB{Ewp(=n@6-!OPkpfdf)$_M_`%n&}qr84ZoU4
zR(i5)p%vy<Q9#T5`8O>Luqk<w&4j<`2`XI{?RAhC2n45S!;oQ2%9fj43>jG=h5Y`&
zl;ZP9G;7Sw`9|n@wjl>nL6U7)E!Rh0=Aj5eFA^puT$gC)mXgQk*FDMp+p%R=NU_n;
z$xEP6G@t}BUoz3t^UDd^S-s&ISZ6Lx>i%JA-h=3#C82!n>av{#g$jsB`|KDl9f=Xi
zs<E+CU*+azSK%)vr*A=9&lfN}=}<k%3)egVdw0AChIHe6dw6*42a9FryXe$~WCrf;
zBMSG*5qv=aiLbTwyH8Nk;~&CmV-7Stw-1WU#j2)8NnTkP1WIz(fdg%yVSR{R!B{*(
zx2H3RSMED<q-AGa-Ls$4p%@>%f1H8KH~PVO%K;vrCvFeu(+yzBDTK}I9)+hKs$Q_D
zAOt!(x*O~3KeD0bZ6wpg8(}a?B^+2`TtJhF1do5F&d!6|_w1=@<~TMpS#t>TguA`n
z+SJhSaW87(?Oit#Y&Ac~>QU}li-L_sV6qw;UoLNIdh4Bn0`pe2A?)^%)6LE8hYla^
zx=H}BCuT`_#S~gnuW%&sF^qwTe*gaZjk|YOZ!0Rwf6QbuSa_Z@B*OY`_pD=Z(Aj_V
zsO@x1OUD4Q{xnH$DMZZGLDVY@S;nN1oY9kT%OHI^SlE*XSXy19C>daabdW*fCCYn<
z_#jI0S<Dr5MCo*iP!Q=RemrYKI#LEmGE*2IgqJogx`Iv)!%Bd72?Pfb_Pv(~LcQWA
z5|D&a)FRC#Rhde>z$U;Okzj;a0hR(H2a=vA3PfJ>8~bCBR#L8ksPrV6C=jyq6^}vV
d%Cmn27yw65X^KDcpp^gs002ovPDHLkV1fcWxZ?l-

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/dialog_bubble_step07.9.png b/res/drawable-hdpi/dialog_bubble_step07.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..94b915432d34e3acdd8b6130e42718ed7eda1d8e
GIT binary patch
literal 6012
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
ImUY<w0HuD_RR910

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/dialog_top_dark_bottom_medium.png b/res/drawable-hdpi/dialog_top_dark_bottom_medium.png
new file mode 100755
index 0000000000000000000000000000000000000000..7c79a4f9083f0ce4496ab2ec0ed99b8965df50aa
GIT binary patch
literal 1976
zcma)-X;>2I7RSM*$V8o%aYM~49rp+^9=CGMB{6Wfa4AKUa2rF@QB%t$!%0U)NpnF^
zatSpT47ajOGi_Ad5Vfq(+%uukmP>Q*{cz{gJ<tC==Xu`qKkxH?`8_A|Jn}49N=XU;
z0Dv9rZP22M6rEDg9#QsuzD^bu#b{fvXxDITbWA{05Wq4p{8G>n2SPw_5IQIz@LFVl
zkQo55*T=!e(k*s+rNjky$P>~RGdr}ViLZb<G-N{4jL}@QBjuTO84hHg=Nor0ob>_o
zORP4~Tw&vAvVWFyz3Nzslr2vC#(7KB0Y_#=t_{!nT&*TvFg(cqrkQXsv2#rmc9-|^
zSYpyf5K&WnYnGpo)Fqs~aYb4?Na80m2{{0y8wlxE2guBeG)p`2brz?P_JC{LhIM23
zH9qHW*MI#^ze;q+Dk?Ejp_A|)3uX5dt^E)cfp>ve!^}KF8a4mRBnu@Oixz*|j|GVC
z@3%Y;O&P@;);}t9q5@befsjpk5-5MCCoxRoYAI_UuD#|Qt&sQ@pu1$kBR~pid7dBZ
zBd<4(WG^5ON+a1BW@Y)r65mm?2-VtRw1-NEvDaXECnmT6NMQgtht5}A-_n7i77vQK
zILLb0^%I6~8Ao~#GCD)=vHFd+i#?nibyh2?m6eru1<!Ld&I;G(zBkA{zI_E{mh|nn
zou1Ua2en-8eF-8G1#0biSQ_<}%^SlYUh^$AD2^V5R$*k0+3jSEIhzpIW?1WfU5O>R
z>RHhy9TA&vo?3=pR$Fo!2^ayQVGQ5x{<q#tgWm!3X5^=NO-lCql}I#sKOs6g`gzML
zTRL)veQiria#&^2y3%9Bms6$S@_IW~0qE+6gX=TwY62o6n8Lv#Sa8R~hk8yH@dCYs
zg=eHp)0nlDer%JP2h4V1^YcP>cDB40vUu^s%F4`HKA!s`Cnu*Vuf1!e&$IG)ey8sJ
zpM5N_-in7Vx{(~MIPg;#;dy5~l7>D#F)`7#K3muyxU#ggG)8kGs~Q*>BzDs7Mymh3
zySp2lt#&%`_B6l6Jom-Bg7~<&J(^ltd<FKY&}T23B!5LkRP^@uh_`)UzaSeXEm%_B
z^4)H$$%4Th)1kN;ymVg(J7Je7pPw@aDy*CFih2F`=DOQ>@6@2-m!VIVJ^NZ}H_*nG
zO?=N;FboDWOixeuJJ6jF5O)`9VexIMBVMQ)$H!nWXWifTPDMF<zNsZ<;_P>;_A#D7
zFkj(CzZ=Lu9TIpN^!jeuXHJc0F#E98<;x4nbUHmSM>5WKwr`(Iwp6%^cb5n4W-)~l
zx_{Z!h*CSf^%uL<I^&Z-&{?HF1nzo7K|_Qd1DXdi3uB%P3^-D-qvOmJ>c>CN`G`-9
zjG!N^QguBRq%naBJyH!SALUz7gg0`_>~ALrO74eqOk~0yNj7)9C4*^1is{fKa9&JY
z5AGi0BawI^buKEuT?3f%VH|;w0sR{uIl$hCA4&%xu8aSW#1FE75V0R*i6p0-^2C$Z
z9Vzmd!e@85w3l`#i)IpbJ}pTiWPpE<?u`Kb&**=-1pKG}&!_+2{y)CP6{rIZdb9t?
zDfz3T=VbM6ucqolohK(+^zAuB?_27<*s>f*Tw9ZPx4XVOYoSFSp?-r)G?<e)bo@+K
zb^2s|<J6UVB>%+#Tk4<97FB4*agMAkWnm(jR(bzPxA*U==02LSA@G#65K1{+KI`fD
zju{jRT^IDgEbqi=Ii4GZM^r*cGjp@fBoZl;X@$q(GUB}(+S(AUOy-8&cF(1>YJ1YJ
zlZ&-h8bN)1eM!PF93IcL4M+p~oGdcpa=FXwtzF^z_tz~Lky(3L7n53<A0KY?aZX5`
zxD)CSW-XAbeqZHM`psTr`u*Pwh>+K#jfUvzy^>Ki^WuYX2ILECOG}D{#l^+cQO{$o
z;~l6YTY7{nte?>lgf%Nqmom&}urpbmot=q}l9pGIMsWD?E8GIN?^pV!D4AqUF)EA2
zqEo5VdO983`~dA392ofa%i`kVp%S_x6XG;Qf(WgT9YM&u4XW6*2Hx?pFR3&bX%NMh
zgs!2rlF@ZRGkzkCQI}9@XrFFhSJ`pj1<L6I!=OHo&nQvECsd=p?reKU&H3?oywVZS
zx{ND{+PIlgY;1JmL_`*nT*N)8V_xUTL6~El;a2<Hw`P9gzEfosjJaxbt*x$_JO1%h
zYcrNj)b;l+$S<EZO%Sf}GF_{XJW6S)-=*%0b<B2bh*NH3Y8G?neNUEdZ2N%^e0o&t
ztBXGM@X}5PJ}k+X^FVr3ss?|J;IZ92b;=1>R<7z_oxTabSErQgPRfGeP%U4e1E9Le
zp=Sa3hY-9cQk?$a^>3??!2`-(Aj;Ty%spl5Vd4e#iGDHskeTVU<ak)JuP%YUX+{9=
zv6uI2x6uLB7cL{t7*utKmFvt$gDSdFT^<g&n-{g3i$=5?%gHn%8?qs#kCG-_2zHb6
zX~?t+WmFGSqMAyw^As;ZnVbw#_x#+RqjDe#vE(ysDvI&-P4@a$mzXqw{AkdHuOoF^
Qw2A=^wn&?LEB};#0jff!n*aa+

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/highlight_pressed.png b/res/drawable-hdpi/highlight_pressed.png
new file mode 100755
index 0000000000000000000000000000000000000000..d2276feb82c5fc8041bf75e171470e98f8aa7830
GIT binary patch
literal 1527
zcmV<T1qk|yP)<h;3K|Lk000e1NJLTq002$^002%11^@s6j;bIX0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%nMp)JRCwCloNsd6L=eTh<#9q>1=rys
zRKYQTPaJ_Sz%^3bgbP7oJ84#Ns2HQ^ey_V{cPpw|OS|5c)W3QCXGSCG+wWz~qP6dS
z_p8{xe*5EOPe$zD`R=#BS<bxQe>nY7vD1sP6^5XVz*!ru`1^yO+v(3YznG43BeK74
zHjzy~KwP7^D$oibYdFMdAMa1EckiFxk5@zFi(8S`w@&~!U8pcEx-_CdTcf}o+T%Ns
zzaKt=+o64RCvx}d3Er-}6f`|Eyb3hq;q6M>q5XOP5!?=IhxX+gkvFIH?M)LfB~_`-
z(5$e1usod9_SgNV_a9>14sVBc_gZ9k-4ZlSDzXz?w4H!=|M=ha*kju6p1aa^Xs+T=
zP%GiBfCj>Qc>EN~Mk$_Y@_#E5MFd-)t&cvlXXgOKy+J`k0A-Z8szgx`<P2yDTm>4d
zIxPY^f;EE_DK3CFTA*DLT&D{Y@J6cM(t_&F0S;B!>^CpZ$xv_^g<TW46$zu{s@e!L
z3rZJ)^5BKw*esa^*wy7y5LlE@X7O#}+Jl0oiS6!k<OrB&G?IZM#T}eKSB_KxvaUJ{
z)=W9V0t0Kgk*fGTP)Gl(Bn1VPhX6!CisQP^jyI_KEdm%pTj{D^%sPTO111i%|0xbl
z0N#7lMOn3Zt~!Hbpb|Y`;+G|Z8aDEPAz8F*;4^Zu2&51IC)s;YF)adC?dWG*l`SnK
z2~fNk7a2ACj4eSbMKBWEkkaC4{7omHO<fgL+YDA_aG(M(%6@2Poq?!qUsVE78uSXf
z3gMYiOjl_Z@4Un_IiHP=H|oSWcCBFJWRejYI#BO<@qUBi8k+SgCqFYL0@gL8h1jh}
zier_A)@!Wd1Td(gIGGggr1A!wK{LZW-D7e{g&)N_@M27KK3iyb#Z}QvTTxucu@iQ4
zmj|Q7AfO@HE?Cqhnq^Q=bx{VFNO4_5*Og0%S;egyZFX!MrP0`qVwU->72=cy+hnZU
zpqA}ur4ChO)mA<K)WsSl;#-&MqAI>yZHZZ+o1AmW#yU2(onhI|3hdksv=ZFcKXuHI
zU0^U;_FQP$mKc1EOY=EyfBf9Ao5Y;jvoFo(IIhk(b&Rvm%~hG!{!EUyUBsZ-`rqxN
z8RSOpXYn%9EyqkLVBOR^cICDtZ+rHl6laaCXQbL#2&>gMVKKs%XM%Z$+H64#E8bOe
z^xdsJs9Hg7Mz(&Znn~M6miRQzy;M;&^=dX8UaiRtENh6kcC0vaTG)~biwx;fT=m!q
zyT{>9&}pJkY(!>#R~5%5h)jGmB&!<G3NKqE6L+jhaaM?TObKEy6=y(8dg?<axm;Rt
zU9M_Kj6;=|J$ZA2G-`|`j~m$nG}54}cy;0-l0lK->r5ex6u%aP1wd)@<bcjz^jw&|
z86#U~W$s56P;utF_Ha)Goxvyvszc_gDHulujKgTMLSZ@T9@B#%!P}d`7~Kb&Eq>X~
z`wSWyJ16@bRR0qN7%5H!yC@u83XHNVn~Y50e(i7%=&1skFB^eG6A$xQ)DK31S>&oh
z1a|=x<K3JQ#kR`xl8~;PP2Qt}2#3kR$n3|=!N|ro<f=Uq-<WN%Cp4gzMW+!&AfxZB
zaMdh8>R|>3be&jWQCF+WRS{S$G^f`wpemm!Ef_be6u%X<AqgNDX&JDaR&T~YmhJ+$
z3X*<&2J=K1mGfRV?E=R@gP#I{3``<jtrc+Dr*>sw1p^M8tI9$kmjIU?9H7gQ%z!0R
zj#RTL)6p+L!@!B)kC@07u`9r_fXGXU+~vV*NEjD<eq0Wm2zNJfwotwlJhGk~sTOB$
z>%N4$vLF*h_$ZxtMqM2@rmcdv9GoOaO}e0Uz$<q3Mw{C(<8)p9R20a9CsC`}wa#|F
d?&Ti=1^`|ex8Etv*zf=V002ovPDHLkV1lu5$P)kn

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_dialog_alert_large.png b/res/drawable-hdpi/ic_dialog_alert_large.png
new file mode 100755
index 0000000000000000000000000000000000000000..7e2646d654746924b7efe595bad9c94ef367559e
GIT binary patch
literal 4918
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
LHPo)ZgL(cxaPK}a

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_dialog_keyboard.png b/res/drawable-hdpi/ic_dialog_keyboard.png
new file mode 100755
index 0000000000000000000000000000000000000000..c7729566c241f096bde71b5da5f46453e9507f53
GIT binary patch
literal 807
zcmV+?1K9kDP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!$w@>(RCwC#Sxu`FQ5c@las1#$;75WX
z;x!d7wCjIdgrX=4qE)M;Mavd#+XU@`y9%UeaiP_Pe#2e3Fi}(_6|Uc27!^lHd)~Qd
zYI;H4oWq?151x5O=e*CEbKdtkC{CwSf#+rtIB$jkL%>ZJAZ0QcAruNdMgJ9Wo0GUN
zfn=djI1v>^d1J9yKJhsFgTWvn4u``!`W{YKP@V)#jZJI_xXEdBm6%K>LaWu%`);>e
z5JizmexrbNI<0m(ol|tp9*-v;i^a?=^7AD`c6tV6B%$4IAEW;ScvP>~pJ|%L9KRUz
zk^o7PF05AT+3eckaD2xrQ(5B|V-``(7VCi4>-7%*pwU_j1Oi8PyFJYyKW}2c-(M|c
zzkv^c47>;KG0I;FfI_Y-vBdkC_&)*I=|Zts)cfIZSa7*qO!8~f=x8(&a=BbmRaF;o
zC!5Xwq(Z_Pzmz#w-oPck@DiV@o{}`}1@2QBR2bvu#mq#CW<aVkBUNcLmBC<8&$+De
zOEII;t?uHF<MH?%{TS^tu3t0CU!_qPrRjz<C%vWv#(6<(Hk*9c0a{0^b{fk{x2;a6
zbII1O<Ebf%vi(8CWFl{~*SKrzKqiw>yWOsCU*W&wkx0aR9iK|21XT0$9VSmkPQM?G
zMt2%_tpLiq@ZQJhp3!xq(RdsRg}#x6UB}bxVD=w?+C>08^C8CnvF*6@_SP0M?D7j)
zmgn{r&QG_mn|OdW*ZJZzwgCe9wad6mcDh=vF4<|g)5A)oqT5%$-+yGY+0xhW1C;t(
zwOUQv)>F|e`h32-Sl5*u#{HLtaC2WfeFA);!M0pMcHk`#-^)&y%VoaPD5@N-K`w)*
z*d^?2#q0GR@F)O9xM3=lN=b+icskfntQ0e1Kcz~X$mjDi@O;sxGTta*d<7Ds@i(g>
lzz|>vFa#I^cy50M7y$d=)#7A2T_ykk002ovPDHLkV1nlod^`XE

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_dialog_voice_input.png b/res/drawable-hdpi/ic_dialog_voice_input.png
new file mode 100755
index 0000000000000000000000000000000000000000..11a3cfe77321318d0e563df5cdd42eb06a49ef1f
GIT binary patch
literal 1931
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
R7g7KK002ovPDHLkV1j9npK|~J

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_dialog_wave_0_0.png b/res/drawable-hdpi/ic_dialog_wave_0_0.png
new file mode 100755
index 0000000000000000000000000000000000000000..33023c3f78b520a4d0c6ab9dd832855b39622a54
GIT binary patch
literal 15673
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
KPP9hEAm~4v=v!C-

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_dialog_wave_1_3.png b/res/drawable-hdpi/ic_dialog_wave_1_3.png
new file mode 100755
index 0000000000000000000000000000000000000000..662686c0f0a5371898344cfcc679bf7eeb4a83a3
GIT binary patch
literal 15823
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
PZ72m<Rhb$o<B<OW2du)S

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_dialog_wave_2_3.png b/res/drawable-hdpi/ic_dialog_wave_2_3.png
new file mode 100755
index 0000000000000000000000000000000000000000..e23ada57ed6508851f0ac4c139346afdddef46a9
GIT binary patch
literal 16009
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
OC`DOSnQAGMkpBTzSkj9C

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_dialog_wave_3_3.png b/res/drawable-hdpi/ic_dialog_wave_3_3.png
new file mode 100755
index 0000000000000000000000000000000000000000..5fe5492ad95bfab73f6e6c424c20a14d5df54e39
GIT binary patch
literal 16022
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_dialog_wave_4_3.png b/res/drawable-hdpi/ic_dialog_wave_4_3.png
new file mode 100755
index 0000000000000000000000000000000000000000..81b803fd00c7ce17757553a2d82d15fdbc53bdc8
GIT binary patch
literal 15910
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
AdH?_b

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png b/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png
new file mode 100755
index 0000000000000000000000000000000000000000..e375f262f875012c5893a2e2e08fa6d5ab8c9a16
GIT binary patch
literal 619
zcmV-x0+juUP)<h;3K|Lk000e1NJLTq000;O0021%1^@s6EQjlB0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!4M{{nRCwC#mrF|mQ5c5LaYn`a4X=UF
z%2iPiM2iUAwonvx8{)<b^aEVYqE)y`iNFYgpk4o<eXZK|C)#+yyS-;(#B99f)arcj
zF?w*`=R5ED&YY2s$7AxBp(B4B9KZn_zyTb<0UYonGMP+tc1+YlIGs)lxJbw{l4=To
z__j``d!Upa+3j|s=?qe-R7Mbl8-u~%@caE_G#Y6GNG6k3RDC6i;u)*j>-Eax-EMbt
z0L1qo{s{3%AP^unn~mT*84ib=cTpmdIEUDa$z+Oz!{LcI{Fkq4vC<6U@wgWPcc}W*
z<#G|X+fDG9!2bzAu2u!I6cCHWqPX!Mf?LcIi^U=fE8+@Z-aD?iphJXCrz1h2Y&M&T
z&*vlPmT#id)w588%msu(Avdbs(d+f{0`_{niRd&$sh+i{8h|c)eXrGO`N3dNX}8-Z
z<X2Tw{wtOD`+d@AG)SdVp=)(fu~@u@*gh8a&ExS9bkH|j6abrn+D2QcO-rTHJ2ufF
z+VYZh5L*)_#;lvowJn;BdcDq`nD?z#YpdC8%GNNLVo|kPr5io2bGh6z#C9>8C#Ta%
zj7H<aMgG-!kk98ove|3`;yFN?R;yJWSF>oN0|&FYMb!rmhvSv)aMseApJ;_b;T`L7
z49hNp!QjsyFyFLFNs>-x$0+}w%mEz00UW>q{{i?EU;y5403`qfvlajV002ovPDHLk
FV1i%mBQ*d3

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png b/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png
new file mode 100755
index 0000000000000000000000000000000000000000..d38ae7562d1c2ba5a9f7a61aad1079c71410a86d
GIT binary patch
literal 619
zcmV-x0+juUP)<h;3K|Lk000e1NJLTq000;O0021%1^@s6EQjlB0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!4M{{nRCwC#m%nPlP!z^*H2#TyQ3nS_
z!O@}g0V;h0(I_fd=%NnB!9Ib|PJM!IojP^t8x-s$6es6`&^IWkgBtC30=I-vwbj_6
z+zSW8HGIE&zH{$MBCXeJcFf^mM;-zo00JNY0w4hY98j;<m0GQKel&o~<#OYN;JI3@
zUL%~g10s<Kg%hLaa5(yaq-+Jy>r5~hWXWWbvN;1}RH;-{TZ=4767zUGES*lXForD4
zPk`K&%Vov3U4)f02(x%RZUnB|m>U9;wGBX-&~GRdVyRS$dA;5&=7yzGsl7LVi&CJ_
zU*UGUSt5~O(P&gbHg~G3J{60_@Lol>f;fyUi^XDwW!L~J?im#dg|lA)R;v{=zZi3n
z8R+x*jBFG|p)K6c=kq=5nUS|;KtUi{H3{>Y@c(EI8L&(yL-Wq%a(OzPP6N2@V<&)w
zc@|uZXTq<^D#{`d2u!eut4^nLZ`F}^S!9No?IK}VL-D#;EG{7a_MOgFfUfICSnJ{U
z`zdr}a0^Rry4~)4lg>tfSsdOP-jm<dKCt?C056-(=F367$ZQd{3~GQ_`6DbjX|-A}
zKRL-ei%bJWq*FXW23n)hc=%1T+qz9@)i|-#=mxOs0+x(z>!uK;ld8k>o7rrZ!!8-`
z^E}v?0ea3H#m#A&HaO&wDT(i70T2KI5C8%A3&5uU0|4hj%<6-iXMg|z002ovPDHLk
FV1le=5-R`z

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/keyboard_background.9.png b/res/drawable-hdpi/keyboard_background.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..edffac5b8d236ab776b4f64ad80240b58a58a879
GIT binary patch
literal 200
zcmeAS@N?(olHy`uVBq!ia0vp^3P3Ew!3HE54((L}l9DB^5hcO-X(i=}MX3yqDfvmM
z3ZA)%>8U}fi7AzZCsS>Jin2Ui978H@y_sgn$Dqi;BJS+`qxt`T1=Caf?}R4jmT_q>
zR?ZfAomX@8%)2jUHYs5)X=WTDQ-9iue!G|O(Ab3~^>b%QV-Jgp0wbqK!rz~LqKzyn
vA7*71{1lzBEJR<?nrT(zdEXQ-8AdjSSzBe-MK=Y7fL!S5>gTe~DWM4fyjw$6

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/keyboard_suggest_strip.9.png b/res/drawable-hdpi/keyboard_suggest_strip.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..0cbb3ed8682650355343a8aa90a483e579497eb5
GIT binary patch
literal 1577
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
b{s=Gt4IVv>1yAR_00000NkvXXu0mjf9^LZ@

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/keyboard_suggest_strip_divider.png b/res/drawable-hdpi/keyboard_suggest_strip_divider.png
new file mode 100755
index 0000000000000000000000000000000000000000..1a03c52e64df4681aacb8bf1c15cb741eaf0b568
GIT binary patch
literal 172
zcmeAS@N?(olHy`uVBq!ia0vp^Oh9bO0U{@7=E?#o$r9IylHmNblJdl&R0hYC{G?O`
z&)mfH)S%SFl*+=BsWw1Gex5FlAr-fhcGUd*v_5|SjDP?CpFePbVNnA^ZxREu3D-iF
zP`=d)lh_{lI%*tL_gKO!(PVMfCBvaeQZN6}7hSvCk_Q_&IUGc$urFj_;$fK5SXEbR
SE_V%RGJ~h9pUXO@geCwk*Ei?@

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/mic_slash.png b/res/drawable-hdpi/mic_slash.png
new file mode 100755
index 0000000000000000000000000000000000000000..87153dc336320a73e9aecadaced901f35d5e0d95
GIT binary patch
literal 3095
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
Jl4j%@^M4C==)wR1

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/ok_cancel.png b/res/drawable-hdpi/ok_cancel.png
new file mode 100755
index 0000000000000000000000000000000000000000..6a99528ef3e6e2bbc00e516001c923b295361a0a
GIT binary patch
literal 442
zcmeAS@N?(olHy`uVBq!ia0y~yV7vunyKt}pNwxo9G=P+3iEBhjaDG}zd16s2gJVj5
zQmTSyZen_BP-<dIW#P$G8=$TjPZ!6Kid%1P8S*t5Fti04$Q(M7UCErkAXqrvEdSBm
z8FPI0IIb++!Yr)IS*f3x@b=Tw_HT+Ude%>$-(Y0O{@L@`f>(2?d)-beeuju}xy|R}
zGxYnI7*<*Ef3~q^V_4ym!RP=+3=3JIs6~un8+UHcMNNhVS8fI|U512<Ob&}LESoZi
zi6Nw@fCa>FxWL5lzs8D<p<9drs9qq7A>+7x6vGCXQ4M8(7PBHGf$~6<Ff;l%OtTX=
z0|e<5zm{Oo0n0-ik{}+_#)P8v2J7^N3<nm0-N$7o%M5ZBP_qcaevKa`JRp}wY=OBM
z%9^cr>xBfvf_sbhK7IaFgCQaG{hvG4|1%gD%v;aE%%C=V#o7g*i&KD+!QkoY=d#Wz
Gp$P!_K#6Yv

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/speak_now_level0.png b/res/drawable-hdpi/speak_now_level0.png
new file mode 100755
index 0000000000000000000000000000000000000000..5c5ca309d05e05143d6a151f24fc708670705bc1
GIT binary patch
literal 1508
zcmai!Yd8}M0EUN6vQ{l*XnRT_QIX?XIg}+iA(y$v*hb`<xh`cE<B$r~=Gx|xdvmgp
zhLNeICNeT@uDR>pN|>Yboag*KKfd?-^ZodKy%|mpwh%>iMF0Q*u{&+!ywRb*q9DJ)
z8-eaGH%bkU^uW7B1mffTFW~^z*oXk!Zo4r5Ae=MKADa-x!yN+vKxuY1)~@lw#UfFJ
z3KG^mD$7OG$TTQWKKE7ZpjYm{+5Oyh01W&sA59l8-%psiuDavVP2lf)_uQ`hM4~%c
zzgE&i5%awCJZ^l*Ez;J3h^TYJRMD`d<L7Cg#o{8-@)G+CfAKP&>2;9S-*+HThIkHm
z3JUv&9`jx<xic3kA(h{1zEM>hdUq8#U!;z1W|j!1os(YGcWLk!1g8dK6Qv*MLUU%Y
zY^F}Ku!faLT`zIha9c^?bXI#WRSMD8Lyv1?y_Wps;WEAkObn<q1#ymW>s)}DsoD0i
zmXp&$AnKk;^%6LKZA}{@t9QCr{VuFugxJRjxMm{AR+tNQAtZAwhOD|8(-dl>!){Op
zO=K5*ww?MT^H2l8I3yo+kSJ0zZx#G^97Z$*D`aUJ{K@%$RvU4B?#n4n8{7`c#47b%
zb$d*gIMNfyd!{HC*BC-L(~cR%8wA=RV2JlP-cC!;SCb*80<lrM?&bv&JLJlUz?Ja(
zls&9RD_cKBART+Ewdne0d-24N^XQC(?t8f-7?~dLDtV<2QypOF!zoAKQL2SO^ZAj&
znzn1n!|$2Uzp682YM(YZc$`^xV@NMmJ<J8M2FDA<g_t-^xrT%O_^TqK=+Hf7z75dC
zn*)wNibET14a<$WGdZ+ZcBS+QAuRQBM*uQ|1=1QS=>F=QpRS;PxGtP*p?|^FN*{gI
zyfN%&boM%|WfQFq@5472e|QyGSSQCAh4Xpd&fE0J((U7x?M=-_cX8{|S~-R;IXc$!
z?Sv-}1%+tYl$P#{Ywj7h$c+I=a-Wz#yD7Re_AWR1`;Ufl{1S`p1Xh0_#|S3Rg4J2r
z=W!vUz~=S`1Ks+EUo$Y*%+GH^2k>r6ByZAB+L`%{C5?NPc=FYtO^5<8&B#!j0nTpS
zNzjK*o=B1q@hs^v%^{a*uYim#-^~Vzn2m*`TIk`1Z^vL(;N)qmrbl8-&S)zWHqg`!
z5&G`-`Er)IvdeycxJ8EKozT<Qx>_NrZ$9jpos-Pm+UK1uZ6k~bkxc_q)Z=+5m-ckc
zIBMl9DM!k(c@ss?idiUeB8W?e#>=|=To4T3b0hQdQrn6Fd3QBZ<n}pZcrP-oC{q6x
zGLfi+VB}9z%j!8!WxeTy5)Jt!_MWIa`$sSI3n%*CSniE#d3h!}1Kg=lefJoj?0qaK
zC6ykbzD9DaIllLbU#4Sf_<r}z6v`HL$?7)s`z7|QI#;NW7HhRi*3HUSJ&oF7Fbm?P
zv6n;o8wuTKfwQG)y5lzzo7=hHK9X@*luB|391d;D7L;G>mt+Pja$+1r<>6kK6JMA5
zhburoLLw~!TiuM&ZP!EGUow$NNZm7&W-90aA7vk`0L3acJrr5Hs8KbM7O|$CxLEaU
z?FID$!!xy@YJO|d?Bk>Rh_-zevpLw~%SLWIN_9k4x;SlSz{JKuwY2f0S`a-%EvFMf
zsq8Jz3nlf7Il(lYb$gy=4&U9-$a$m@&jD(aK=RsvXf9CMy{1^EDjfV4Gv=SQ+p;wD
zNcn>y8nC0@PBQ$if|&Q>)Z3~Ew&>7T4|cfu3|6sxzhg}P<XbI0tHL}7wDK?K{7cuV
z?m*4s@Y%G^`*+xoX2Z}CR<KD6{j+u!CVAUW<pLn<G8{!Xa4El}I_d1)*#~u6oD_q_
zFgfD#MMfF^(_COWXI0=q3)TULvbq|B6khnLmKQpHqfA9+a8^^HY#3A7D3ANhKg*iU
zWn5WKd<K-EEvPi3w{Y7!Vqr{8A5A3smrZ{0Hf<dQ0~8+7fHagPS#M|?V25<DsXu{E
F`5W7@*#iIo

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/speak_now_level1.png b/res/drawable-hdpi/speak_now_level1.png
new file mode 100755
index 0000000000000000000000000000000000000000..4d5f7d6bb912fdd4f3c39cdcd7271975a0e96060
GIT binary patch
literal 1587
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/speak_now_level2.png b/res/drawable-hdpi/speak_now_level2.png
new file mode 100755
index 0000000000000000000000000000000000000000..be5a7d37aea56566098edd2fe31319aab7e92513
GIT binary patch
literal 1687
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/speak_now_level3.png b/res/drawable-hdpi/speak_now_level3.png
new file mode 100755
index 0000000000000000000000000000000000000000..82968f4768864ac8bb93f9fd6289a2d683a60e0e
GIT binary patch
literal 1636
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/speak_now_level4.png b/res/drawable-hdpi/speak_now_level4.png
new file mode 100755
index 0000000000000000000000000000000000000000..e8ce7bd7f5cf45881e3d49d7307f1597ffc4f754
GIT binary patch
literal 1635
zcmV-p2AuhcP)<h;3K|Lk000e1NJLTq003+N003+V1^@s6k7ifR0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU&1xZ9fRCwC#U4LjCMHGH*3^c7F?HMUZ
ziAHKf)Iw21Q6eE)&_W?dL8Pc4{s0MTz?51+sznI2f>xqf3l%AtYOP8oP?S*hk7`iz
zhlQY4YOqv7gAk)ds3E?`y~7YMJ8$oHXLs(t4?gZ-_h#PAw=?th&5v6)KR-`EI9QG<
zfM5Uw10Wa#10Wax!9vGnHBycyW;=5ovsE9&R=swCIj^6;GJj$I9cn?B1^(i^nt403
zBj)cWn5US3Krnw0p>AO|RQUTj<~PhS2$n7ynfEfUO(?yem?xP3!0AZg0b_1SP%Oc9
z%zNM^rq>O&r;zS?O&fwGh%1@5rkMV1ng;|+2zO|gm}Ym|1;LVmyi;A{A)hwp8VFWB
z+CApA9)eYmt3Bq`2EnSw6&~}-b(ffVEOCGao%igeolPE1YO>h0z_$7l%!OuJwQ3jb
zyW4ZNucL)kh*|n;xke)Z!h9G610Wax!5|m_!2k#b!2k#bKrjdfKrjG;K`;P<0T2v=
z0T2v;U=R#|U;qSzU;qRIAXweP+otpZ8kF7svgCRrb0zaT<|xVH-e@#4zx7-%*BkB;
zyLza2lEFphIP>$pv~w<a!B{LQ+#Af!MVBU-kLhPfg30!$x9R`epyUXNCt0-Fv<&mr
zB|cL|tWv>Wqsq_P$N~*&bGbchom$r5$FMCC*KS~L2uQFEYI7xJ&A(vW9j@Syg5$Q1
zfCO{dTF^2F+rnB5_eAY0p39kFmOapyhb&mL;hv~%suw*A;yUTA)sV*OkOiAfpny{z
z1)EOb0SwnmWEXeJ(5<a=TtDMcupg_mbxzA1w3j&JxZb8O(@WuNkAj_wxVDnq$3pyB
z3vRuun`v0$J*|WhPtJ$raU$Y+r{SIPLM;e(+Hg-##I<wGPd(Uq)G=Q67}EH;76h9x
z+_TluExy9Ml%kE|jSe}w!>xvN#%n>aQNuk_A=@0D;+_<3+~a6n+Z+#637-Wo7<*0U
z4BnTZ&rvByn1@p^@euQv<6-Kvc$iw&;9D3uDr8|)q~FjI4kT!oq~$uRsGn>Rn-9{i
zM4y5kHAXGAJ3PkHc=oK}b;0Gi_Gwz=@C>&b$H0$jMlhWtvUF$SHt!>M2<SMooB5{U
zwPCSP`<a^!<4vpDVwwIqoaQ`O3BJ#oI>@}=(7mixAs(dY*q%JquPUV_$U)08GjJ9C
zH$(6{^Spk35yOjHp*E~F1_loLs6g-M)(_C&1N^buc)LV6o*@5!y&+<~#oT1Pe>b<T
z_k0+Z#Uh;d$^LH)Qep2H2mGYaqIp`y8q+dSO|~#?Wiq|~A=x6|0$KC%wDASJ8purY
zQq%uSb;-Tlx+Z<qT_(%iw1CgW_=!~DF!NDLXZ=TmraesY&KKU{Q>@GcQ_;jj8;Uuu
z3@|^YWY3rH(liG&4=aY!j%wseFcodTMla%^Lp`!#^*9R^WL?nT4r^L**OVO5R|D_J
z!x6GCl0C4x5F3>*F~4Gd$^2eD%84>#leC_jnRiy%LXWG>RIh@~Y1HC3=Hpd#Yh7jD
zjVNIc^MD~TQuBh9AQf>|TTEj@?s-y>X`L6y77wl6F{})vLLQ;&VuVR!Mr}Hl2V?TM
zdu2?=vymLwGNQKR=5H7Cy4^@75@kx`Ve-3Ts)RF|cR%@EVi&AnB}go>mx}XM(;o7h
z*1USj?@Fy8osOsh|B$kqc^?%Q!!#zC{-};oC-Ytzq5bjpNo9+QCt)O+v$~0j(;%&e
z79?HVY5hK_>CJ>v0ipg=x>WEdWnQF*9lv`%gjN*t7*?-ksqaEUFaUx95DbC=5Db7|
z5Ddr>LWy*AQ}Mu(s3R9FTY+{lpNhEt0~OcDk3q1?A>pKl5=zUpgzZKu2A5xEzKbp~
zJ~kyNRvhdg+W{&NY!U9tC|{Yn*$lzrV@-y67a&-COlO$)6a<S8ne)1oLB6udVFZH3
zhpgb0H5NWkbd#0CvIg-y-1^EO+ib_x2}pZfkuF%4VxP@xWn{8H45-~M5rAM241iz&
h1cP8e7Wh|y0RUul8u`@zqV)g(002ovPDHLkV1mQ|02crN

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/speak_now_level5.png b/res/drawable-hdpi/speak_now_level5.png
new file mode 100755
index 0000000000000000000000000000000000000000..77d0b8e9bb4780599c142095b4c48b44d4c9e496
GIT binary patch
literal 1706
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
A8vp<R

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_delete.png b/res/drawable-hdpi/sym_keyboard_delete.png
new file mode 100755
index 0000000000000000000000000000000000000000..59d78bec06339da04b7ee3ae908a2be0994e296f
GIT binary patch
literal 2282
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
Ef?5z?Z~y=R

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_done.png b/res/drawable-hdpi/sym_keyboard_done.png
new file mode 100755
index 0000000000000000000000000000000000000000..471c5021b88acefdbdabd722c10e9761c54eb40f
GIT binary patch
literal 1593
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_feedback_delete.png b/res/drawable-hdpi/sym_keyboard_feedback_delete.png
new file mode 100755
index 0000000000000000000000000000000000000000..ca7637552b5e256f445fc8dd497811ab7518f489
GIT binary patch
literal 1278
zcmV<a1OfYrP)<h;3K|Lk000e1NJLTq001@s002Y?1^@s6%CE*30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$ph-kQRCwC#np;RzK^Vt9uB&Uc-LQ*h
zUb>jt4JzrO-h`rupqGM#pvQWv=%L$V4;A%L5kVIUx*$nNWmZT;U=UaYNjJKp4;4j4
zsafi7-)H}UVVZOH%-OSfvNP~!*|Rfe<~Q@r_sx82C6mdl;aIY>hG_}GLa-1l1Pj6b
z3$PrM%9dsE$4Jry(g-|Gkorlzq;I5dd{>LwPA=T$BR<u-UHGlXZd}?!20wHwlrnCn
z=pE@1X*a0?1G1E^bnS!&NToJ)8Mee}!gXWyVv4#MpG2xA?Ic|$Eg;2Qw3D}lWm7jh
zMca(*u^*(3q&=jEcs7f4j8yDk>fCMxX*N_&`rzv(^I(eAl9_xb%_WV+=Y8onHp|gc
zS8BUThhdr2_01I3(ntD2dPO=aJzuGS1=lO4C_J-ma0C&>iKuSNf`bqf+XGYV4kB0r
zd#4Xz>^w%<)XgJZQ=XOk36_Zf9f+H&pDUJ)l@Rajbyxvj*;S+t#S{YxmXG)q#rF>E
zyQIykz9Bsg@``0+FO?#uiPA*+`mdTId$;MN<)k{&B0PUhI_Y4FCSK8-2Te0T>-2(D
zi-W9P(ABBTV_of7y{wq-l--FSeT8%u`>V%AJCi=lOvxm#=x}Z6gBR@bcx_S5%cQRM
z+TsN)a7D)u-k@!7ssSz5a9b%c`8ggYB9|0LP>uz_oD*;;pW#pvURIaA)lyPD;#D#r
zdP`cz6RyNuBdCr50m<SOD>VVL5KorisFVz_s@$GDEbJpb;+$5FGJMEwB;B(K$bZA5
zFC*=foS<uGD6S$;l$kjU$b1*h!;+Lv9bF8bBVCPH)ox6YS86_~U4i0+%@mg&HG&LQ
z1&&BjO`TliB`Z)jVgOfZ3Kr9((^w~vFO0gJ(E`#|oF&iU&K6am_}X(FXU#2`fJi35
z_<CPOx~o8)B29G(B?i5k^iz6Ay#yzqTBP5(?gp5+uV4%{lhmp}@qkJUpv1fC6fp6w
z3Jj_x>(3niCcnYN4Bk>YYk;GO8hR~ZirY1Cmq@pjX9;+?$$pw5Lro(!E1flZgp!@d
zMA8looDQnc@R;Wa#+?^o7Uj;a0ydgvyb*A_;6!v#`#nIV1ml6PRXY2GyhYr{)Laee
zu?DOizvX*)Z^{)bM6N>a@D3bFUYbzC%x^fD;ss48@MVuh@!|%h!<%p@xoJW*Ys{}-
z<1J0$TzN%)VL8r#a)(WLZaSOdeLAQkS-<~&)}LlraUI9(%;us8?>L5ZMgw&KfxZad
zvR`u!jr$EI;AUvz*?Gg+<Ujfy)Ib%%`^lj|hTEGdF!@;3YI9c1acPRhFuMW7sUoGV
zfZK*paNOYip1=eg-^1DzxI>x&I>8md0gbn5!*Jtp%qqx)^RPSR&m%ps*(WiVcPPun
z@4nv0Qq4MFC7zSkV~<s%^UXNZajyOmOl>G`(6#BtSw0mkBs~jw&ZE*xmWmTPi%Bm7
z3dJe75>qfa1y_SW+8H3I_oOv)UePqgEoXw`u<xPH1dD$p8_Wa~)L<sq3jgmu1Pj4J
oun;T+3&BFL5G(|<DZd0500zRZM#E{TS^xk507*qoM6N<$f<q-#&j0`b

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_feedback_done.png b/res/drawable-hdpi/sym_keyboard_feedback_done.png
new file mode 100755
index 0000000000000000000000000000000000000000..7015e266a297927bd2275c633fcffe724c4a8eb1
GIT binary patch
literal 1068
zcmV+{1k?M8P)<h;3K|Lk000e1NJLTq002Ay002Y?1^@s6-Hle>0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#&PhZ;RCwC#TT5$GK@`4|Yg=nIjrF;b
zstd)9D58j>3q?hgg5Vnp)^=4Wf`|)|A}+*@3q@D@1H`5HTDVa}S0aKNmo9XnZPQe(
zX_{Qm!EfL&G^x3n3CYbI_}V0sxp%%f&pAm{6h%QRNh)YD@q|5LPuLUoggs$T*c0}I
zU5O&J6EeVpgz_v9vV=)~vX=0a5G5Ez!Xv^4Cj2nrWF=lJJZKp)efBEhF>F2w(njbb
zT$3+KmG8xyk|H5tv*c)|rCCBLL4=E@wfe%N)q>Xl7AuPg%P@bOFa`6`V?Brkoa}RO
z6}`cWF&<#<PvJ)Fb7>SoJZFqB4gcf0OE5RW*snM)D1+86+_aJ`B<uhYo^yfFEu!L1
z!WWF)BCNnhuyhg55`F_G@tWSq<%Chp{Yuy>f+%mq5XQJ-I*rYpPc|7Gt0v3@UWqxp
z@Lr6u_O2V(+%GI?HQ~K11PCjIwe2(JUJ|5waW6gg92-;>;Z#hMR#jS1HP?17)oQqt
za0DjJetQPKrA>Mp;WMsx8NRNB1)PW9X6G<z*7iNjWw+QOOq$(h824oVJs!uT&C+r=
z;T<koNeepgC?oJFY)B7GG%Es{4oY1j@QfRQrwzW!<Yq9ggI0+9E-f>+65&s^Xt>#=
zW*_!>*ymxNhkYLQdD!P+pND-OZiqZA&5}*8J?6UdxNc5dw;}UzfCb$SYVRRm!KMX`
zoQGM~8TqmntQXg9nmk;KSiesk!tAd%@t^%?5dNfvQ_+13Yr9LB5YH!2d6nSb51{d?
zchF`YwiUEyKrkoz%2x7loG2YZyHjPx3()wOWos-VSWWuAbPa@4bqq-LkT5VlD>F@c
zyWuy@E==}lrJ&UkCjGXB_`cyk8woFh<bU1a8K)>V=?*l_x`X6?i)R+;EE{<7k}OfS
zf7POt{kp~G8eIk{zIG?7ojg#ga3JYGbAjJ8?W*{3MOY#7j}X=no)BIlN|xrR1=8rE
zoFjZA+#q~+QWUYd*o4@~14suEj&VcigM|iJK4uQ!^rds=L8%Oz>vMTpD&brkp!dXm
zu2VSAh5$c4LAZmnu0963>#8`?umYJuXjf}44>Ml{jNmmneo-_Rtgq1(VQH@YqQe<M
z>)eqX#p6hr{V*DHp(~}hB&<niV9HrRt|0t7!iMx?gF=^9=$f!LZ?4mip$}yi^*=C{
zDc6B%Ho}@Tr=C88G^e1$7*q9#GxZ`YNgpD7Abce33I2V2qUse`>s?yvk5kil&PTRC
m^A#92*Qoq2#1k%m1sDLbf}Lm^V1F3^0000<MNUMnLSTaB80QH9

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_feedback_numalt.png b/res/drawable-hdpi/sym_keyboard_feedback_numalt.png
new file mode 100755
index 0000000000000000000000000000000000000000..728c6f7d42d70b4ef414192ae7f45944b75e102b
GIT binary patch
literal 1336
zcmV-81;_e{P)<h;3K|Lk000e1NJLTq003D4002Y?1^@s6>O-080000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$+DSw~RCwC#TVY5PK@{H02n69k5Cow(
zxE~S-2Zmq>f*=HiAQ;AhAs81IMIjW1{V{?IL<oxD!th5JM*a%JFbc&e3L`OuB1sA*
zNeV<s1m&86*?2u>cV}mI*Ub092Y0^PdCqq;Z{B;Ou|lC>5yHhDl7K`ekqIO+iA*9B
zNMsV3Kq8aKBr<_SCXq>G0*Oo_6BMwQB={S#Sj^4b$d~}{7Yl{LV-h(y)G&@P?i25q
z84vH+mF%&a0)fwKw>aYv5O{_07~|ak9xh55Tg2-v#=FQ~#aJs|&oe$X@YRpP#Bs(q
zzP?c>Mg>j3&HPcp4-$JG*mJ7$mY@lY!+AqhKbyMQMJ?DmDmWOzcT){szw)rZ)%3yV
z*azM(F<voVMIPU39ITKoMHg+1o8p%(4sa!pfz@>$*|?t#U{7eS<aV@*vwrmZGp0|G
zGr-|0W70#2GR7a^nXUjuhU3;qG6CE6-Ou7em<8i}lkMIxL@r{S0**&Kgct&!{p1v4
zG(=8<aW^G9<Sej{X^LEfR&kHtNT4e+M@mf0cHZLfIecK$1$gkaf^nxL_5onOrYZ7G
z^!x9RQe;cSSKIjlV~HeoFM!Y74mi7j{`)0%xXqh2MV<j;%;=nHHe+s+aw!T*MA}p#
z-rr(8htj8vU3xNBGOno>2EZ@hvK=1fEzeh{k-bBNHjZJ&pTNcoh+e083*T`O^X)Nu
z882xUH3oTd6N-x|@$-7L&5ju4$!RoJ5S&z4$v7UTO;)l=7w(aueIWLW6%M!WJ;o<H
zu$sgv-}H8N;m$BN2yuDx{}QBiyn%ATaC{yLPNSct#ctu4V7!m)IZ<-k+Z^{7mJ~~N
zzt3ok%tJ!Cf)EX$Utr^fOXdON<8u%DoTNao@qqD;q*$_m$jchK#L@eeK>G$LK23%Y
z6CnqEW*0mx{c<Tn8c|;Ed)@+F=)BR=FNm1D9Y}$~gLmHEODa9M!*sEQzS!b0!^KAh
z2c@#!fOvMz<JozGrVu}j)?Mr-BCknO*7dMNKBd^GNjSvnlLiw_f>;j^J-FI3lI|eP
z5U?HR%uZO8WE;!cGcoKZr%~+6p_toX&`%B{N3K$g$tm<)he=E}5xG=!rf}&zhz_6P
z9VjwxmFBmjthR)xS&$P~img~7YJEG`yv}&pOJs>(TvC^TKE%2xbnu~<0_VYm#MM<h
z6nK=?mdN?-@bi`NK-6V*9qPp4vNP*Ya+@@W+Hq-&@DSL$b>|JxgLXl6l;MK+gx>+@
z;|}@kBx*+%8Hx;Bk9`vR7e8l#!km*x<b0GO!$f_<<#q)3ojVOhhL;7c$X1SaPCNjS
zIi7)We~FM4y2w10S@pUtKz#&wU6s%j86QMRmyY19Nmhl>V7c5>hb3~>Qn*e+N&IK9
z>eHGc*IMp(b})Vp1Sm4ch}+H$D_qozhJB-ADt?slwdL|>0SbOQ!9+(L3L@K{30UML
z+C}5=d<ip8E()?Cq2RYo96Wi4&R!1KlL3p&aS?@$?x>29C`At4r-JWMOY%1u#>L2P
zgi8TdCW@?b&^tN7^cxQQW@I;kSG9-GC5BRGj#hF6pnqo|kx66%iA*As$OICZL?)2P
uBr=IiAdyLA5}80ElgI=T`5(b=0R{m3Q%d?Un;d@t0000<MNUMnLSTZT3S|ob

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_feedback_return.png b/res/drawable-hdpi/sym_keyboard_feedback_return.png
new file mode 100755
index 0000000000000000000000000000000000000000..ae57299e4fea5eb99b89d9e983e95bf70cbd7e74
GIT binary patch
literal 838
zcmV-M1G)T(P)<h;3K|Lk000e1NJLTq001)p002Y?1^@s6EQSqJ0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!=t)FDRCwC#nmdRSK^Vs~o5XmY=K}<T
z_(YWBKomqPwX(4g8!J%`EEEJg?QFELIL=Z;@DObTEi5drun}!6JS@aQ%R2=Te8u?6
z`v34hvLu^qHn;B1#BbmScbmPv`E7Q-$0Q~U!_u&fpfp57WmHCGR7Pb~MrBk+W!xE+
zLH@`Xljj`epH;zfu#CSqz-RCsgtqdpIDWGY1-658U>BdJ=U@uFpx7T9u}VvhV<|WQ
z-f+TE<k&ti@^@a2%d7>nF(Q^npl;{odH|4hvZu%E^4f}y0Fd*dP7|PNJzifDbqG8N
z0RJ{LM}~yVG2Wpsq~&AM6p=c(0-k~+V6@Qpali;w2J67JNMu<68#A8XIQZHlnh6t&
ziDn|Q2Al<_BggAZaNg8ra{g*?0-TRopn)$ka_%Z{6kO&z<Ym=t7_|<8X)b;*TL8mM
zydPZ6F=81KWF=#(*1g~+Sef&UwmB>l8L3)#f*Xurc~{Ik63%HxlXNBFV$w&<fXz9V
zFg50}$%J#Im-(3_BNy93k?|B0*_we&nb(=*I_)(U*ll*L0IIy$!-UN10(a!`?`X~<
zBAdW{4@89Hv7II#x%J?dCn7JomV-DM$sZRz5%~p9F?5&W3Qalb15b2)$Xa>8{wcNv
zD6{gNa{OJHVXIN?aA*qvm6$%o6<+bts<+pM-DGS;6Z3loPyQ{K1Gm93F7~mws>M1O
zE7G<*BSIU%b#O4nvwRr5&R|WnnAyKE%QyIQt6R66)HX|jw+%c_aW^LlZT%DW0BS7u
z=7vE=#t7KW1=zRDAltr+rJu&9$=!A-{N`OwKK;mq-0pb>PJ(wn%UB`Fwokwr@X2Qx
zD<l%L+%s$XEMtW}vM!QOvVO$m2XAETgry+83ob<p)A^3VFXu7nrvM`Go*NxC?x$Vg
zvBE~Tawg5q7-jj>h-`9~iumrQ(J!2;jLN8t%BYOWsEo>}jLQ5^GQR~F09kV5nWx%5
Qu>b%707*qoM6N<$f@flaE&u=k

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_feedback_search.png b/res/drawable-hdpi/sym_keyboard_feedback_search.png
new file mode 100755
index 0000000000000000000000000000000000000000..d931b39e22115c03ad18005409364d0f1290fda1
GIT binary patch
literal 1209
zcmV;q1V;ObP)<h;3K|Lk000e1NJLTq001xm002Y?1^@s6$Fa6h0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$TS-JgRCwC#noDerK@`XP-Fy4GeUPH0
zp-NLq6Y+>wB1qFF7Az!UDPlpel8}gvSYSiEnn+lP4e>}cq`E>vu|P>gLZ#lyLQ55W
z+}>N~@c)v}bmo4~wqIi=`KQU;@6I>BGiT16Gq=XTz(B@mZjp>p-ZX#)&;S}h184vZ
zpaFcenAl+$hSTpxNx7ta{LO+vI6Leo^^$&&ev$gnKlA`Ljp;H;V@VT9wWMlNIjIo+
z-$_Z*d(uNvBk4J*9YD!I2{@g$$_92EX$k2ZsS8$hq8Fsy0FA>C!wSIeQARpQ`sQNd
zqMndyuu_rX0>~y+lCJugxK->*n@HmWfv^E!%g-R)cQCOI(nnGoHgURVd4q2w75R3j
zGyoiBrjRbAnaFF>A#CO<(oC$@JkoY-;6BB7d9$w}<qZ`8`{^E1O7e1!Ci_XVV8u+q
zk`YX7GA7xqfOrMqSkM4G;2gMv_|h+=b@1VsgRmRNB<mFrhY{TZ1>gbeBroeGZNTcd
z@m+H--BE1n`JPun0uX`4WY(|40p?}naWq>>`YIXs0E`j{KrX_Z_>#}0xxW1MuiMF1
z_5rChsAMh<ONs3^=@UYv*Vc)sCXO*1sfZB-Kn{+4v0X>{;HUM&HCrS`n}*Qs8-PRN
z1W7;VGd+IKO^ned`D~IG_lzj|a)ds9=}(*qep?b7S!{V;Qj3VfN(o6O8Vx9mG!RzB
z*6pQckO3qRn?-<1ghIcKS9hwU-&25)0kFHgk@VM~`tn;q6~P$R){A!r0>CBUJxTux
zZ0@KJ05-sC$sTL96i9)b#8pU-#RF$A(hM(qAq)A{2g$f6urh(=Ld7T>WqHdgSkiFm
zI_&qCBx7=PTc+69o&k8UMabF37xHqiba8T;<>*mGYJLU=GlB##^Oj?Z6qxg(jj*aL
zew(3^$5@aimFCoZv1jYs0K|||G$~%5LVmOvzFiKWGDMkLByR0#DmqT$7W%rWu&If2
zV8Irf8n+YA+$B9iZJcsg<Ub}YCynt`<U6>Ph+~<X1G<$^x#U)4r6r^S$Kl!mfPor;
z-QprnYOfRJmDx#ps`&gJ=@w}RKw?1vSffb^>ft7r6X(mY<FIfsZueT#JfA|;Dz$}h
z0bniCOK~2YBt1hku}+`|2UY_tUWEhDoD93jdP@SQf;f%9kg1%IIBAEs(`J~=SKLk~
zEw|HMm}pY?K3}<<f+5niv!s16NW$+51lbC3;p@Z&&m&A{g$aNsv)08v;={0FP)a|7
z0Hzx?xPWNH^<{P#0L;6h3YQQ!{wc0T7{GKThPdVe;wGX~Bn$vnh<X<goP*_t<yT6+
zf`5xM<BG%Yl!R#otSiCc^0JNfx$Ld}^L)qvoIoUSe*7(MLkM6(OwSnn>kyyryKqAu
z4NDZVD@BhW-F`{hf@Co2Hy0YN7DJ&^h~%zAyy7(U|BY$@4WI!ufCkV28sI+$_$|Ny
XPUB=uW_hcZ00000NkvXXu0mjfoi{Kx

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_feedback_shift.png b/res/drawable-hdpi/sym_keyboard_feedback_shift.png
new file mode 100755
index 0000000000000000000000000000000000000000..4db31c849a0885e4b8a6c66619b8b8fafea1c499
GIT binary patch
literal 885
zcmV-*1B(2KP)<h;3K|Lk000e1NJLTq001xm002Y?1^@s6$Fa6h0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#7fD1xRCwC#m_29|K@`Vt?{4#Pi5d|R
zMPwC06wDE{OPk8Hrqwo`O>DIkVl64OOJO6VN|jb3NJt7n%LF7?*c@V_n3(nd@V_t_
z=Jq2qd$*_a;0OCLGyDFtGw;3KAdchOAX~jQ;N}H*0bYO?;00J&Q#}cSz~$J1GC@bc
zS;kb8Z?mL{5$DIiZJvJsdoD#BQ<LD(M!_`rOs09wz0V~G7zS<di8CJaxXpW&77&8#
zU|n%OVV(EFstORtu7DMT^9d_#6IM+?16%@2Db6P>v2C*|0>t?X;F%IGg+uTjywe0o
zn??3%^jm<$`Ey`_4y%rCapSgm9Bbkh*tgy<0TS!afCu1*=HNEC!_Ya(<87^t^m)iJ
zf?f-d2abb#paXs@j(r6)Ok{zQ)Mj{3717}s<3&Wc5RfFQUCp8IU=Ezt913`Cj&0OF
zyG0Y7t$-0jq7r_Ad2qJNYzDkH&$h84(T$WXKr-n~uwe*~Pr><&O<8A~Cx$n%!Lf(S
z5+KRvDp*U2?Twsa_ab-!zG>sE@fo3O0g`ksgJnnAHRO1&4dX5IUelF;BvCCIV!2Iy
zBYm!EZ!}4Ssfn(LfV4y<8*kFG!c6v5p+uKgfJBW6CL2?ty6dRM&q{O?dQ{6JAT4g|
ziOSX2n<>%BCcm%el`H}JfJZqJl?xHMCrtG@P-mVW_3}z@fj1yh9wO`VIap;0&~4Z6
z^Pzj%^)cpvR*DE&F0<gV7KL{BCO*p2I<{K0Hz1MW2H4C|*QXH~9E>c-+@x=z>a)JX
zhrlB+Ww|6;Ij<G5Df%{)_G9Y+ykdN>l8Ik$!Al-@{V#ODbtdcWRL;-7i2LFsHp}&$
zWrvJNoh$*e)_#I7q-@*agt_^(=+L5^*WCUab!e--+8qA(`oADxzfXPtrf)+jQPi?Z
zgj&IpBiA>vGXb{$RBfMW9fjaP&)-1zubY#{e3wOEA)j4r;#Qyf`Y>7vE31?+Rhc$b
zYtIE(SDC&V_0^~s;H%LAtVaDF@B+L5FTe}%0=xh(;6D@aM}PqUA}hN7!tw^n00000
LNkvXXu0mjfHtd^>

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png b/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png
new file mode 100755
index 0000000000000000000000000000000000000000..3fd5659fd3ac276359578bafef0f2f38abe2ff53
GIT binary patch
literal 700
zcmV;t0z>_YP)<h;3K|Lk000e1NJLTq001xm002Y?1^@s6$Fa6h0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!UP(kjRCwC#naxTYQ5c3jCSx?IKP42Q
zNJ*hk6hy4cY+c!HyRA3jJqWpgdI7lrS6#U*btP`P=rV<pRW>48v7}Dlk9;4ThA>X%
zoS8YnZ{UIa%$a$g2|4flm^hB-W_g*PoAE^jR6qq(Kn0wZs{O_o<8#}_IzSJ=TVvYg
zTg~afQ1}Me=J(&htxt*nYy^+X5@>^8Oq)ORpE(DC8rT6p_=v~+dWXLYS|9>%z_}G(
zIOp%8Pz5O1D{wj?yl~3vM4<^(z)NtF5MDUpb*rHWQ22FlY)zL*&^jF+Qz=`3=J_T#
z0>c#Hg&~h=W+_u&0yNjJf=}RXitqxBIpl4aq6KJ&&%gn=0)I0I#60$Zw`GbHkfQ2m
z3~tk(w&+|17AF*yD^hfec?(dJZh{Ms;e`v{b}cUfDxcTjEQj#I8Sf+VEkLES0lGPc
z7rMN!sxJX4s!jpng~XzpMj&fZxsq6PX$5FrUgNU4D=_?c(XEYlL>d7aumV1Un-anc
z*Wd$ZF=++la&R9EQl6mY$$+yoMB*_4YQ#OzD>=ALk25VjCP4G=TW}drc;S+>MM(nm
zGkp#)yg=C+NdgPt9rzYl@IT-y*rkkiW@FDjW^`wZ&PASs<&>9wE$}7d)!cjVGsSvC
zo{{ME`#!cqd$^?BayYVEu9uX0b5{jaz<v2$(%8|=IW~=E*#?#03sBDxe!#cgGd~}2
z7I3|%>bg(o2OJ1c_%Go50Y}TB$XX#3S-qsOI*qD;3aEezsDPf0hIKZo{{a<H0ToaI
i6;J^ccwz$o1Q-AjKMbc4-I9a=0000<MNUMnLSTYbJTVsl

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_feedback_space.png b/res/drawable-hdpi/sym_keyboard_feedback_space.png
new file mode 100755
index 0000000000000000000000000000000000000000..98266ee5240b93d423e32592a280d4c93f753084
GIT binary patch
literal 287
zcmeAS@N?(olHy`uVBq!ia0vp^#z5@C!3HFC+IWM3lw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6JlqJy3;jv*Dd-rU~E*JL2V8jv-opzQho^8KeGucb@&9KG;j
zLD=lilf<3ai}*Et+b1a{y;xf2?9R$e5L|YAdwTYiON#M*JC7$-oU1)on>l0iEN!KC
zJEwh4+kVbe*IC-uwC?5AnACsAGtI)}%*>AMnR1$m;q%+8Z%(q`sA8;;ewH%p;DMZ^
zXZEM}pPGH@@#m>~Z|XaTRd0S0&maK=Gx)ECHZU?YEi!+%>Wk2Epl297UHx3vIVCg!
E0RCBNOaK4?

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num0.png b/res/drawable-hdpi/sym_keyboard_num0.png
new file mode 100755
index 0000000000000000000000000000000000000000..10ac70b9dfd4f8040573322add4f14a320c2e9b0
GIT binary patch
literal 1931
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
RuCM?A002ovPDHLkV1np_nZW=6

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num1.png b/res/drawable-hdpi/sym_keyboard_num1.png
new file mode 100755
index 0000000000000000000000000000000000000000..0fc03efa51f521d072ca42afdd2ef50b99cd1992
GIT binary patch
literal 809
zcmV+^1J?YBP)<h;3K|Lk000e1NJLTq003VA001)x1^@s6@p{zM0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!%Sl8*RCwC#nz4`4P#nj3r9CWi(x4oP
zD0hP!ad2V5&4Go<gpe@cz+&7;*j!v;llV`t3bL@eu*pg;<V*;I7ZOa5BG9A$-uW79
zC2&D{mzeK2`KF=m>+pHMzW&~iAG0jW2i=Y&AOL*8hX5b&A;1TG2=D<P+MncgCmCbg
z#xd8?mgPKR_q+rAEztSf;wLL&yd+>>l9yzYyb^}?1fPlf1LUBvD$a4>Gx7!5ATI!a
zfAA%7FNYl_-;YM4u|lEn)HF>w5D3h};jmt>*FTTP<8$#An83S5d|h_i743cz?Gf@5
z^7C{${dzbYezjamrBWHXeoVg0$F6%e{M*ts*7pPQJ#vhEQYw`)&1SP2kH-`40fu3O
z#YFiL*1In|&WJxGACVtbtJRm~a`}~_C~L>j5~PX`F$3D&;Y$KyNJRWGMf;m<Hk;Y9
zgvnyk0RJE1UoAI@MB;I~-F}x$CZ7S<&Fydxa=F~YUa$AT34S`A&inoTxY1~w0iTDd
zW~bAc=(>KcX&TR9e3QxKd#zUcG#CsPkw_$#&*x8oaR2amzPTXSIz|86R;%@%-heN~
zV)5f>G~)UDVWm=e0el|9C+ppA_mnnNIY$|RXFx}^u`+<q8~7_xr{U#-xyXF%6qKi)
zDy5rC;PWo>FCCM>#5ud5W-`W5yYcXYYYDGho3E?ieiHC`muhY*JFrkFbO-ou9zJx-
z@KHWM<O4ng_<#=q{{IV~Z@f%dmjC*LT#_Wabp#DN9>M2jhq<b%Gxr5WQFyU!=|kIy
zC-5x+_d?S&-F-0_3{L3qLrf5~ZL_qlrEf#KAfGJzPj%i(^1%12mxn)uPsTSgpMWWO
zfp)>ol6Q!FQ^4g*iy@w2*Z=wN86w}C$hV{4wzF4r<@>Ww(?aC$03Sl05BLz^13m=!
nfDZva;6s29_|WzBQ-A>g={CR>ly%B`00000NkvXXu0mjfsV$7#

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num2.png b/res/drawable-hdpi/sym_keyboard_num2.png
new file mode 100755
index 0000000000000000000000000000000000000000..283560b3534377e6f41fbcb5539649f70bcf525b
GIT binary patch
literal 3214
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
A`~Uy|

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num3.png b/res/drawable-hdpi/sym_keyboard_num3.png
new file mode 100755
index 0000000000000000000000000000000000000000..9a3b3294b90d521f26ead3af4e1e2c6e7d1726ea
GIT binary patch
literal 2805
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
Hu0mjff!$wP

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num4.png b/res/drawable-hdpi/sym_keyboard_num4.png
new file mode 100755
index 0000000000000000000000000000000000000000..f13ff1ae91dbd24a1b557815d0d517e6a890be05
GIT binary patch
literal 2647
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
FV1gf?06_o%

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num5.png b/res/drawable-hdpi/sym_keyboard_num5.png
new file mode 100755
index 0000000000000000000000000000000000000000..c251329fa4ed1ae82b16466adeea756527e13a20
GIT binary patch
literal 2536
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num6.png b/res/drawable-hdpi/sym_keyboard_num6.png
new file mode 100755
index 0000000000000000000000000000000000000000..4acba4c9103d51005cb3c4720605ca1048697187
GIT binary patch
literal 3573
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num7.png b/res/drawable-hdpi/sym_keyboard_num7.png
new file mode 100755
index 0000000000000000000000000000000000000000..2246972a87f9d5117476d36a48e1f878f9986d39
GIT binary patch
literal 3664
zcmV-W4zKZvP)<h;3K|Lk000e1NJLTq003VA001)x1^@s6@p{zM0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU<@<~KNRCwC#TM2MfRTk|noz6-+A&{_!
zumnOziXadm0TCo4A_C3~B8y{WE2)yW3^0Ylh?a^1Gh-AO94G_?mthHuEFvgESj4~>
zATfc2Eo38WC!M4_>7H|Y?oU0w-ED`)a?1Iy>Qy)W-}cYD@7#0m3u?RFu2RY`Q#1+$
z3it~6N>RX9z*mX_z5>2d6z~=Bm2&TjPWqx&t6RPbpK340wsTbppDHDyb^^X|5;Xj~
z52}`{x|N_ebF~QH71TWdUytgK8pxl%t)wRcx)HS=)r4vmHbg0Iz$YvB4+{$mf9|>G
z6054Jg6r$+{hOPcbsi6>(^>uf{p$h(0;-lRTXu|rZ&JYjaZyVgto|?Qlck3Z8Z@ZS
z>C>kVcr&ooYBlTi`Umm#CTazr1cme6SUzol&SJ3`ydBtPvuT*Re7tnr-dmXZ=bPRe
zV{%3(c8x}JuPDM}XUzbq1*b16F1t`|!gpuwRZiNgoH%^7tiL#pO;+u){u-$-)~%Jz
z+w5eWPB%&C!dX_|zI{6%)ZqiZ*RmDMcU(=+$R9*TMg|2225QCU+1c4S0@vF-j5)Nt
zCSP{^I{w|p<5*ciSp@L4LVF1av3(PNimFR3o6EqTS{V*fZQ`mD`q6xT!n`U$;WY^T
zTq-@COd?X_y3EYX>*3+yzsL7rp1{XRKYG@#ZQHgzuU@_SNBO|(*RS8tYNx?NXRGFU
z0(k5I21Lhev+`JVsI~lZY6dQdDb82etR`-67HT6u({Nj9t|0bz5*|(LqiCKQp0h!C
zcd1`6_ml9k@;o&{zeZQ@FSmRfPg2RB<%0Ez7D_K1M&Fk#SuzI7=8kc0-MUr$-h1zz
z;l($!!t!a{HW+iNpPygXrluyzUl0}APM$n@YVY2?S-dV2Z%WWBue|aEwZ|#+!6{W&
zR8*9epw!jXRqold=OWrvvD2?*fOHIa7>uXGv(G*|p=;N!@el|EstP`@uArdc91Li0
zQBe^IhTFoXk}-yo;l1#}3*+PB;zke)u*j&xyMO=j#~-KX=H_0JojSK_N9BS8H8S4T
z^1?e942Ib2*RTH-rzAuiG%YP{Go<Q2@im_p-sq0|czy%FROE*rez-a&CZ-?2wBv<r
zn8$IfYieq&H*em|c^xG`KmQuPT+oIM8~z>}8+)HL7QnMnKk8puSy{Ge)20>s_U${#
zYpG|e4~MFY1At3AckbMY`axDV6Asu&Ev*wkmTld-b=A(DJHO!#CrWA4y?gf_ufF=~
zTV1+z=?25onoK4KB|&0qF|WP6yu5Mz`0+{jsgx+34A2wK7o$^G)S%~Mr(e8yae^Fp
zSetq2(xnI4+RO})-9yWF@F@Ed`zN1#vb(IT>^5Guz0qh48#r*_;68o&#J!A?l9KXg
zK2-s*b}hYlMn=XDpul_*4Bb#*&FI>_Bib&(Y4{UP&Upsj56`+i|NQfRiHeHq1OqCC
zv_6`bmzS?a>D8-O_xSku;b_xt+O%nlii?Y@&^L>XDEO(Tp85mEjixnz`Q?|V|BZrf
zO?~_JjqcgA=ODy7es`;OehMI8w*1g3Q>G-#8+`TER~fLj66QQlDMuwZK_5EC4Gj&=
zIQrK?8{hLw`_7s*t6=){=}&a()TwuJa&p|kg9o$8;ApeVW;3<Fx_tTaeM~Rf#Kgpy
z)YR0OXdg0m?AT-gcuiVAEPf8a?T9`_u;Rbv<mBWtl~Fkh5YHe;OpT6?j+`-LMhg1A
z&c+msQ}z%jN^|(|;cpi%T)2%bocP^3eE9INXP$ZHX-^EVHE9D09NN`3Pd@o%f9!sg
zOxxSR2z%IP)G^=LS~*7x#rgR7)bnvKqcK1D;De09!oo75Ay{V*_7Peky0-9%BYLSi
ze*Aa=+TTEXO@|I0`bdtlfB*i`u=qhlPy6@pPY3XM`27azRjxO13NF(#q9XK-yZ`?C
zyR(Bez{(AX{;fxj9Fb0giRUancI?>qI2rT!w?=pG-&*kXtSUn1&Ye3}-r(H1a~DpX
zI(1p%Id4-6<YWb><&bTSD0q1_XvSY2Lx8XCLR;F1CjPBuKMA~H!-mC&hK3p-r)%IG
zPx9uLumw{srcXROMQy0<(4j;7aeobXy&)(lNH=82kQn|=FF51|K^?g@zShu=R#GDa
z1`LQ!NJxm6H`usw<32%EG~Q(<Q!S|n;7kA;d0s<OQc^cqVI)x!9Bw`X+_C|jgK8ti
z3=t6#A!y$PeyI8K<;$52h7V{cicSw4V<D`+me(tnleKteqBfwXQ1t1-<67ZYF5tJs
z(W6Hvz(AU|Z{L0pv@iLrY6iT~MR3<@@HM={Wc9{Hixxc!O1Pu%jT<+LSYB4MqPW{M
za*Mjc%hP=AX*{Th9-z9(utGg(;__#oefBMb?<1uTI4#m1mK_7Ij1NEj@W_rGI|g67
zcC8qy<qHN^4d4R+ni_thn#Zupg29%6j@nRLC?J16QRYuS{d6lRH;#M>e9v&GrUcMX
z1swPJ)vH%;!R8b=iIlwp-x16}bwrFAGbTyiVArl)hXwuJ*h;SdQS^*?^a~a&m@#kO
zJco><Sb`J{Ecg~wP#XIcT2}zIr)Lu<PD~mxV#HvwYI2B(x^++^-@g0qyBop%#k?*(
zd;^^>JA72L8|$>QA8V$z*kBEBRL$A5XD_T+v0}mG$&;r+rrsA45)uf<9D&o2j7>>6
zbm-7OP|}5H+^OT$dC2uTj^vC`2Fby}!2vGhWo0YnrN;%5vkV$P6PC3Zj8nigL2I%}
zmJbWBfCbhv7-6u$Y8b^C0B;gf6IRffBg2Xf@)ObpVmu>VDA6YR(fA1X8o0lMQlWk_
zQE43^lO|0X2q!)mWhgel_{bxV%m?`22=^J5y9HmAmtl`T{`f;~<fW;V^3qknMZuBf
z?YH0F1UZ?-4zYsAHwnB->!-lTPEs>7GxOrgl`D@UYV}#WcI{j!nl^Lh%o&GG$wk0a
z!W&?R<}W3sgVPl$`4b_Rq~h<6-?5SHu~{~7f02;mX%IHkv}4DPTGSlS-8mTHJQ%0X
z?AfzNtXsG4Uy_q{hKa^Qt0xNydGW;;hrxkG+>wbxfxO)9g}hWbNpU!=#Mjr?#44na
zrC=fdyIRPZ*d#>*KSaNkLZK9ZYSsW`3nJyt(Cc&9aXS=JR#sLHIbm#4J4nbLoGJ<9
zHb(v)O7apxWCU$&c6Rn923{>B)a<+ww9eWSCr(_W$eU;nbQI+zHPdSF^-@qZb?VgL
z${U<NfBq8W<&}FRFCED}mY6EMgo&kJ5rbYX<cpf*X<JZ41Ixtg(A%fd)6+LmxZk^X
z@0d5=d^3d%h^XYifde^+T1&{UAb^@cc^cHtT)XgR1fESK2VYWBaudN`78{oDnl)=)
zrYM;Eg-Q`W)RiALG@R5J1jyB&%IIo54XQ?s8r8dBzkablle`pD8y4vJX3mw=a?oTF
zvXWLoK{(n=_YZ9O71D;i|Ni^wprRA>43scx{`~oLv!<cM+0mm%x0Ch9qriF2hL0f4
zPJs4+LW%?B&825WMMdV%KmU9asHZ}5*f{+YK`$#2$&SOnDKA895S)^dl0@nX6lJ=2
z@nVi(B=**-9Wjq%eCef^9wo`;L|&d|t2e8>`zr+-bEsJY6P91^<^`kx%q(pdEWeSB
zK=KK;)YR0KTefWJK)Dzwp~;YgSvz;`%-OJE!xsQ5V&uq?ldv&EVq;?mz|WLJ*l2Jf
zjAZeprKR<Vl6QUd(MKoP2xuNXIpDasxZda={n%rVS<$Z;YRm}B4<i2nDSQwVlq+OW
z?RR7Ov^fSWJPeB*EN`%T_wGX+R+|_&Z@9jhfv$$CNxyXI(t5mnF8dKz;5+yh7W_kA
zUfy@G=zJlMUc-+17OZq3o}Wj%f(a8Q{EnZMy!P5_>##9z0jz9DN>#gd?ZV+BB2j}u
z9k$JzH*bIEop+>riI!jt^7Sp8sB@HMrDz*^zZ2pB1L&z{+qP{h7B61BR-j0i;LB6W
z&Mr(M!FTh=jT<*hd{|psYl5tL8cr>nIoTxK_O$xWldt1^1@)ofh1Uz}!Y*5%flsD%
z5n^HBCAlk|+#qf%ovwNzH}AL<X^#SHj(y;P2a;fDL#wN+tutrNTn^eHM|*{-%);Xs
z*?$B8gOJ3;#Hfsnj4K5N1(G3F3T)t@NvH2kKe_;fBoZCJSO8sUmzA%-{(1+V4?^w8
zFYi&FNSaSxg(%v<k+gKXq<3)_tPyU$+AtvE&5}k`YLvfc2Wb>;%0f7T?uJUao6(@I
zX^^SkLBrR>v7Ui1n1bJb!+oWVq_Mi9_CoE88i(44$7#>w`-<y!_Rc?L`O+0#TlVUK
zJXk$DwsPjedfs7`7nUz(HJx3YySo5aJCUk3p^er>8?|iHX%oW%c=Q`@ys->c-3h9w
zGA%7_`jI0?E-+nL#UM<WUlIV~y|vBVduu#!fOX8BlnbZSYc3zdTMWF{*-M$?arP2+
zH*KY?r`1W0MrtEoyjz5^rR=9!@DYX3>e;JSty+jrx`HI<8X{L@+()|Ot(GaWCQtmI
zJIfcZ6r~VcEmImcLE+fFvHbsmzuQsE{74{Eo{d2^d6PQv<Qmb{m7-Pk>o0a8bs#A(
z>8}zjuJSYY`j4jmpNm~M(N@)+e+*@FLxFd9B9*_L{N;-BKT{O&74Vg!fUkhB6a{<*
ie5EMh|N6>*1Q-C`aT-$ZEbKM_0000<MNUMnLSTYZ&>8{&

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num8.png b/res/drawable-hdpi/sym_keyboard_num8.png
new file mode 100755
index 0000000000000000000000000000000000000000..d4973fdc900ff3fd83ef267149fc58da64cec42e
GIT binary patch
literal 2904
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
C%cjQw

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_num9.png b/res/drawable-hdpi/sym_keyboard_num9.png
new file mode 100755
index 0000000000000000000000000000000000000000..49cec66f4d277e1ec6da50a000a193a5b1b400da
GIT binary patch
literal 3860
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
WCQ>=2A^+|G0000<MNUMnLSTZ`lYq$p

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_numalt.png b/res/drawable-hdpi/sym_keyboard_numalt.png
new file mode 100755
index 0000000000000000000000000000000000000000..3cc5311cd8059b6e9f1148caa191e40dbfebb5aa
GIT binary patch
literal 2919
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
Ru`vJu002ovPDHLkV1f#`wCex>

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_numpound.png b/res/drawable-hdpi/sym_keyboard_numpound.png
new file mode 100755
index 0000000000000000000000000000000000000000..d091339296eca631931f1004e1e46967783eb9f8
GIT binary patch
literal 1600
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

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_numstar.png b/res/drawable-hdpi/sym_keyboard_numstar.png
new file mode 100755
index 0000000000000000000000000000000000000000..e838e169f3a96fc3957ef9f6ee85fda18bbd2561
GIT binary patch
literal 1749
zcmV;`1}gc9P)<h;3K|Lk000e1NJLTq003VA001)x1^@s6@p{zM0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU&cS%G+RCwC#TWd@lRTSRY_jb310)>Lb
z(k&_SNJ$NWKr7OkVrmo<BtBZCh5j+rA68Oh6QS^<Au%G+q-{b|L%}vCtwe(X6EtZg
zKtQlfARE(E7OH~9-98o;*ynf-o?CB`tzcqyEcYZ|cINDz3w(3#ch5O9NU|)egoVe{
zf&xLlAYYguUyv_MkT1v=Cde1$3lro&5~dC350@k<<X0S+$sCp%&tE4mx@JiWcWXtf
zz<`kG_tF4#9GN~q0N`Ils6;E6jmOU*H#R`$BJ!6hg-D_qV4`Crah4#{IZr;0Swqkf
z+4D4h{-0KW(EJCZ*a(Qo%gal)+wG@oYioDI`38W60!F=PmEetvPDn`DJUTjh`p}_6
zJK%gh-8|*)Yp8qSLJ0B=fQ`qGA1|Jropr!Cd17MXNAT?hq!Ot*j`(!|D<HqSyZdt-
z@AZ1!7cX9{0^j3wW7JCf+Yw5Q3hDg$^HV;bZ$Vz-<Kt7#oH_FnMSlc9PsHnJHEbv?
zEzQo&&3$n}OSM{~&1So+_-syLk*^{`V*yWAS6A1`WYg2ruFTBL3iJcwi1cVcI-qE5
zY;2T`y>jJBC-`;(Hj(s5N{oCZlFy`M8(`nnt5?5gr1tdmd<VW~0Z#xD0Lg&e&CSiN
zY>d<CbXcv{{ovmYh~XqkkiQJ_neJnBXB89_9Pxl5vB6+4P+neM1O5V90lQ#Ru7tf|
zmXTjmQ}Y4(Ilb2?an&o8d=(M47O(~IOj}#q7mQrUe(c~o2q*>|7#tk@fqgeLG&BId
z=V)a_J}l}5`G2LmtU%IJnrR~GLCwyIjEp?!a5$Wd<i^IvFTwxr(W6IOm=B{rJw5#h
zMST*HzlP>B(A=yDlLYw>7F1D~VgeG0ye*VkBANS-9Xobk*JoyC=2KHsKbxGKbTQw_
zlP533xH7=gv<X{jp3Q*ANX8=QX5hXeg`0dSoc#?+lC%_+7K+q$6!m&8kGD|vv#Gzo
z|Ml$bY$Q^3`}S>bR8$m>Q-Rz}WMyT23Wq-feg{lbJ3>X(t_R=-VETEFDqk;dBdfW+
zAQ91PdwYA|GMmlGu(#?1fq({xS&#-ihN4Liek1sF>_SF7n&0o&c64;SU@#cw^?JQm
zqtOKJYnoaeguLHxG#Whv0|RXp6&0OyV|=T<x5J{_xOMB+{Mgvow0|>6PEJlNt&WG<
zty{Nj@bN9log{iYe>S`V5TXCM{^2Sh8B#=(O{)Ony{N$r4GkxNoQ<%VnteW>9%Tms
z$A-DNxwVkYL>CqoZm+DY%ve0hrAwE7YHe*D1le+!OeU93r}GfeDv%&Q$dSilvAC~a
zzmAbVM{VY?-+*v$xGcpq(Z*_~4Oq+V2e=8x$Hm2^jEs!D850v@CJC7bA7(Bpx7+Q>
z$jCT7Ha3RjPSB?6<)Yk2q|b0|W}h79rzzo<ognq*F%!81n52wloIWQhLzz2!_G~UA
z9x|QT{QUgO<KyE_Jco!koI7`J7m<qNe*@ek;9S1|rT{K3@<n5fd-SJXRB)N8$jU1!
zDtZSp8b8bFtE#G+!T)wiNy*2&ABwJeuC-v{iYg5^za%Q$hxc}L)VIg%r^s%%-(Uno
zu8%E*R{_rhUT$x1|C)UVMc1#O`Pg>IppK_#FRYM!4MjaxrunB%ooZs_-UCZXNht?^
zE>*GFkng{Oq_Z(CEiD(Y(@E8>MKsn{_9RP3t>8?n)q23?a@}Rb*45R02>z#t*bQ`p
z@(v$9{2r4Z$c)^3_Uw5B{5vT3*Nc|&^2s-m*6-}=>-&b2n_leiQ^#^Wd(KNe{k@%?
zonNuB!^6XUr2UEFVam$LN6AU5uCA`Y{ymZj(eF%4ODpA`Vi`zI^t1xDM@L5&PfbnT
z<T{^6XoZMpxGQKkETo``iHX?b!CYO{)YSBm&1Sm+hYrfs{oH#wn5H_x#_Q|r--jFK
z_jo*aj7FnZF)8K$?Ck~A>TRI$uU)%#?Gw`PB$63EgW=y`K#9rd>gqaCR#vu;<S2&b
zQ>5&KyTT3CXfu#j8%Z)eR2<DywHjRF8a7@>Rjr4{dsTmb%k4h-tGT@ps_NEokT{76
zhL939S4gqcGQf=whKl^v+*k|Ma*#Qa*}IzZGOpqG4SCV0;!KjoKS8hRe!d`Im>^$}
rFHDdx$QLHa7vu{Q<Uca@hX4Zr4iz+M4{uFK00000NkvXXu0mjf@aa+H

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_return.png b/res/drawable-hdpi/sym_keyboard_return.png
new file mode 100755
index 0000000000000000000000000000000000000000..58505c5e0c41c0502fb660fffdc210f9cd3d2374
GIT binary patch
literal 1123
zcmV-p1f2VcP)<h;3K|Lk000e1NJLTq001@s001)x1^@s6+=%;b0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$1xZ9fRCwC#S=~!hVHo%99QWb0S}ctw
z>P0~x)Qz=n0tKC-OJhiM-GzTaUv@XTX>_TDNJha5VFWQ73qLq2<V{9`v8$N6x(Fia
zW9i!3c6wfU4xEnjoOjz%w>S?xuyfvz^ZwrV`S`uh7(oy!{zoxX{HLM=(}C&0bYMC#
z9auRFN7IR6nB86%`5=qy6E{B#ng-2)3TljrE5XespiH3Ep!-10`2II&9P}4x5`pd<
zuwuDp4r?H5ssXKETwL@f5{XS<X0tiz^?HZK$H$l8@f&DLbzy2+?D#zAt^z%_va<3<
zkV!NeeG6?T$Z4w0Yba5_ujV+;CU0;!9H-DcD>VrolqMxQyb&Fq_`o0H@Irp}O2%^8
zY<A10n@lD%&d=@&Fa%{p-`I~1Pn`Wbadv1<<q1wH46`cj+T<|_C}KKIJkQ@rr_=8u
zk;r|U&2|LdS!fobxfB^Z#L#>g^!)7X>`SS$kBp2Az<UCY%VX{Xpw3t<78P;`w6%gB
z+R5M{J*md2sj1s7EiD(N9V`}0Edn<bu;E3WvY|*&WOo|~sP^{uOY%-&k}R!H$mTBE
zbPYv<YMhvu7{~>xz+GoBpcx?{Tedq)&A8%rClwBdZ+3KacvQ@Ze1n4+lcAWK<fj_Q
zS9K704$3=ZKroGDwFD-DBH_Ft6bjww>gwuK8nCgkL0E(x$!m&YesW5V;o;${Mi6<2
zcs%|CbE9U!#NFHk1$^zA+wH!rHpp(bH}&`TyR24g9GFB}sV_;$$z;;(@pxQqZEdZ&
z`mC+3eMSPD)+*eyXntpc!QfM2j|9H`gz!jmvZ`yQ1V%!3qu=lM?G-3s`RmQi&2G$@
zoL0cBpeL7?mzVYm7?}TKSi^CoZA>|``z^Atu)z2B_CA20UqKTzA)gi)an|+u`T6i}
z0!o1d0)dB4r}Gv(e!?4chH7vr29MR%)em5L{_gJXJ~Tf&`Z+_pZiePIfegM<Ow91n
z>peX^SJcLhjg9d$Gc&Jg!aaOKU|BZf^ZDKr>%i0bi8YRdSj3?&N#w!qMJ7*(?Kw!$
z0kxeU92|TEeJ_9>B^#om^>`Dg#SN^&Jj)ca?tHH;BDgvN4k*=gC19hYqeEy)R*_n%
zC`(I%wT_AcQX_IR{s=yBZ*p?-g_3z;;34IKoGP|UYlgH$S8H}J1sCh=?DS1fPX`r%
zl~sxRpObUBTz7MUgMg8dJAFCS?nQ8<co`$$=H})?(hfj_zR*-{OR?r5uX~*3dHxyP
zoRg7A<Q3ehPGf{K6gYRm>!!_Pw0E_f<u^Q8LF)riT#!b<r2mj?DVXkrk7)v|97X>}
pQwOF4(}C&0bYMEL5|qCJ3;=$zwbq_D7@hzC002ovPDHLkV1m~F6UhJo

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_search.png b/res/drawable-hdpi/sym_keyboard_search.png
new file mode 100755
index 0000000000000000000000000000000000000000..e72cde3bb6b1265464a78f0deacaf2143bb526c2
GIT binary patch
literal 1623
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
Vn=0J*n;8HA002ovPDHLkV1l=p4qN~L

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_shift.png b/res/drawable-hdpi/sym_keyboard_shift.png
new file mode 100755
index 0000000000000000000000000000000000000000..8149081786d9a6b6e2dd4e636d64c3bab9f37be4
GIT binary patch
literal 1495
zcmV;|1t|K7P)<h;3K|Lk000e1NJLTq001@s001)x1^@s6+=%;b0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%c}YY;RCwC#T3<+8XB6*EViIFalh{@^
z+f{?@!a72Uooya$x?1$Xsvy{h$@btX3^&*i83P~c9^Avg2Zy+pp$~g-8|ctID7w{w
zK1|#mWJ(Ir%|9C|jWyPoH2=)qIqUh##Tj?6dSjFvIOsk1`@Z}8ec$=cIrqEac%DCT
z97S>Bm`aLRidc$RirAh+CAJ~Qar>P>R2&5J%NG6JlZZ)Csswq37Bn4H4H^awfCl$N
zPIgzs*^8&NLP+XVMMZ^uVPWBGtJQiDuFaqtx-XCH25cKhN&N++&RQ&%TPrIoe}J8z
znVI<&Y!1+u_DW6^UO9*nSPg-9xLmGrULd2Rqy1pN0(yqrlS_JH1X4|)uOJB|6NyB^
zJv}`?GjhGXy<fro%b;1b*SVx6M&MKg_A-KJMB3Wg+QD{bXlUpMypF|UTkY-bpMmWX
zs8LEFI}Bnf0(l8RBX}e+GBVN&wrfP9h`DAs91gw@0yYdNnV`y~BSxSQ+{OC(`VY|c
z5WL&%{!I`p44~)o^72ZSmzV#<`#zt~TV7uN7T7JI8Db)J!iW(V1Z6>x2o^zmJf6RE
zb8|~EGE#&@@;cDG?d|M#`)#nlLivt6bYcVo!JY?j<p>hN1_A+JRaMp7v=Vrq6HLOt
zE8E!E_z_##`T6-rdcFQS*kAs?G>`~lEUf2bXJ_9;a0oIA(%jtq3D~V{@5I@QuXl8G
ze9i*Q#Kgoyuw4bs-YpHtO^k(g1aWn8a&n9T?C$Qq4>lX92}#6B2`qZrhlhv1V|@n)
z2fslZRx6-sJCT!<7)KAqhZhVC41CLgjgOE22(~vsPcvY<Bylz|*QTbXeqm#Db#=7~
zCnizE*lgoNZJnK+Uob$lPn^PXNn|Z~79-`-($XAr<))^lkI9t{+tYwt#PA^}L0@ZW
zX}O0W5X|c8>JyvIc9%+}^Hh15X^$aEg&-|x2yhmy7`87gC@6UEDF}||_xm?%YHI4h
zegRZ3OapQdQ_w>$)YaA12ZO<96ahn}rKMkj{asKD+c!a-6bP(DKrL9IGnA|`zulnr
z*zayxS=j?f+z}jiZEeltbULfSp35Su9K>D}wk0Jcx4mBPV_t;7%s+-cuhPol7{=n_
zVh1l$Fp=ly=id-UN;!z>91e#SX7Z6(U>h47PslxuG{)(|!opHsg3Qg$Jru5*7`&3-
zpc@(*a-i1x9>`^aD{7z~eBt}}e<&2vWMpKVtFErT&TKT(EC47WDQkpdj*X4|u2d@h
zDwQfKIEvs=H5yGA0#cyAzu#6_S^3j}pLvi(05HBNx~TL~Zp$-xeF`@Hn~WID9!J3@
zi|(6&e5P>F+S=L&v$L}}<~q*B_Gi*j!UkwmE@Dx7NGMKKfa67AhMx*ok!nCBwTUDl
z*yIR1X|-B(*S|nLJDh{?L^diHF<w9}y3>gfxDJjN09On!o7rs6gf{ng8#p~Z9Vfy^
zdLRcp2Ys%Hpdto?!7rtgPN(ye%O(C?QKX>Dg!}sXT;OgWuCK3~At!0$HCC(D&rBxM
z+Vu3aM~a&r)=4nGxVRX`h$iQ`VM34JD4>|2S}2l|r?5TMp4>rUmSe@zzzs8`bfETW
z$?l2@sEgH-a>(=ciexADA1Nv-`V{tD73eMei`Pl>wPim7(GL^z8mJc+h^~)5F$np3
zdN;%88R+`x6N4i6-f{S%8G|Z4ENOP1w~r+|u?W<PlJ*d_k0iS*hTLxVVry&bJ5W;T
z@trMRL#XOQMx${P+tVAvfe9z}Cr1*#L96J+Qb$J#yM1WbB0~5!5Eff6ioq-gF;3v-
xVmk4H{lzDo*in<z4_H#fQp8fk_9XuZFaVj@sTQkbKBE8t002ovPDHLkV1ia~y3+sv

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_shift_locked.png b/res/drawable-hdpi/sym_keyboard_shift_locked.png
new file mode 100755
index 0000000000000000000000000000000000000000..31ca277181eaae1e148a0f67a0e56cc39f347069
GIT binary patch
literal 1119
zcmV-l1fctgP)<h;3K|Lk000e1NJLTq001@s001)x1^@s6+=%;b0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$0ZBwbRCwC#SxZP8Q51EOn8{C@SZPTA
zifKayAr)yOwCM-3vBXtYmhJ-5Lc6uQ7FS)kkZz@g;zH`ih26DwAqAnuMHNefL`<P#
zr7=xSOeUY#d+SxEA&E0F6N8-the>AM=bSe;@7?#pF~%B>A~X$06sj@Rm}*QlRuObk
z3vwKH&;dkZBe=fg=von^EK#}|MTG%q1nPkTFbPZ@#GK-xh@)4E^oGz>tKaXxyt=yj
z%H?uhfbT6po}Md%a>5Ek%Bn9ib-Jys&9}C;7KZyQ6bgNUd%ZwMrRF5*Rl*pF<w<<+
z!otEwCc@0j%p17h13W?D$<@6v5~(NAJ!paz!NkPGOL*=E9;e?rSGUGUoQ}l0Q9LVw
zTrQU%9UXlJ<vM{@ITP7o7}Jr+P85yeSsA1OgM)()p*&6~O+ank86#0B?jnlKWHJJi
zfOtF}>+9>g3-#K8W+^ju&5V&46xEI*e*u^btgo+sce~wwsDGB$JMPepkq8s;9EwAc
ztOA6?;jb2p#S876+;17Eg|Xdf{gmBqzm4M90Wdc=_a5510<@P~29!3oJFTOLtMl{o
zA6OMIJw5#z+Uv$_1=v{3oRY>k>J&TgMlr047#kaV4()aUZN-)WrHt*aRoH14ieObn
z7BDn4^cdQA0h<e#0i}##C&z%7hKGlrpa`Y_5{bmtz`#Hd`f&m+;$=VyV;btj84L#R
zr&6hHrXZrx=!Vzp4M2bAY3AjWFt(T2`h31So12?ISPg)?f{u=k8{(N#31cRY$K!&L
z{K9I8m6eru;<qM6FDLaRnA<rUFiuWRdK?bNEil&vp~&a+`Muc3&yfD{X0!QBAP~4N
zHL0DQo&BuUY7;u0E-UJfA$gt`VBt=}*5^fkfB#!}^f&zX)hpAOj#3^oU9|=441RBg
zAN|eo@$sipjX9mp2g}RLOYkv<<5TcBLq`d5U;@8OF(&uSBTJp6OJoJuUIs?^mz+io
z2E$Ldd;@M2IR{~6HcPDTDV3<he>xBk9=ud+FA1TTlw-_jG~z(~CRXKur`qR=C@Rz3
z+?<e8$z(DmDCBB?t|$>0GQ!l<)KW5;d=!htS_DBblq#&(>$hz-TXb=8aYIg+9o9)O
zi$o#<&S*-W8`kvrjV2TuWDD2itW#K?a!;;Wnw5BCjSz-rITfgUW4(u>2J&LPtTkk(
zyr$lbsedD>##Cd<8p}hLF38FfcFO1L-B<>4#Vt7%sC-?gRETsa6pD<DjNF5i%7S~g
zGFg4vYPD`*dD<~l4RZElat2FJyIp>tKN@mm2zLX5)O=BjW+jYqqA-_IiHUw+tmekl
lSy45n8dHt^7smbwFaVu`B6+?&A=3Z=002ovPDHLkV1krb1abfX

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/sym_keyboard_space.png b/res/drawable-hdpi/sym_keyboard_space.png
new file mode 100755
index 0000000000000000000000000000000000000000..3e98b3014a42d082a1af04467894cb2a01e542f4
GIT binary patch
literal 371
zcmeAS@N?(olHy`uVBq!ia0vp^W<YGr!3HGnbo|Z(Qj#UE5hcO-X(i=}MX3yqDfvmM
z3ZA)%>8U}fi7AzZCsS=07#Kx8T^vIyZoQdxkn6AlPg{28$7f3~T$W2*zuWwF@S7LD
zT)Q|DcQoaSU(9{_Uy&uspiat{Z<T;kx!c#fo~#B9j64Yp%n}C}*l;r6ut;sI(^{(Z
z!(-V^cioh}z4;qH-29=)qR;gBAkWP+cBdxU-q?LA;n9!kgu<n1*>7$CX7ud*w4m>w
z=-D~Pw7T?dlan_E<tMAJyqI*{uJ6A5iNd*&C&k43E&eH-RoL{>L2GK(sW%Zf*X~&8
zT{I#4l*-0e%@-5*{jF~N#=EYh^G+P^UFK-1C9^d$EAoCmOL{#~qExObRN*WCn=7jw
zF5j6el5_V`&F<}A+@rNx(`y-+BSLLiB^Z|9_CE5zS!@X~6d62S{an^LB{Ts52=<xg

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/voice_background.9.png b/res/drawable-hdpi/voice_background.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..73fb0901e0f978f5a7e1577b9b996d2778991401
GIT binary patch
literal 2349
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
EFHZ>ySO5S3

literal 0
HcmV?d00001

diff --git a/res/drawable-hdpi/working.png b/res/drawable-hdpi/working.png
new file mode 100755
index 0000000000000000000000000000000000000000..8b51ed11662e07c6a828fd952c5c70ae4cca39a4
GIT binary patch
literal 8636
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
Av;Y7A

literal 0
HcmV?d00001

diff --git a/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png b/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..603bf0e1592811519389ef0557df03047967e942
GIT binary patch
literal 737
zcmV<70v`Q|P)<h;3K|Lk000e1NJLTq002q=002n{1^@s6nnbYQ0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!gGod|RCwC#oI9?<Fc3v2A>tDd1sw%F
ztDvHyWrM7RhAqGf=#W5s#5a$zFbcuWGa`8pGIt~k2^^t0x^q2&*j^Mxly`WZm;0Ao
z^YC)bAq+$6bUOLd`r?>Qr=AZCZUInk)&WpZRK^h`-`H$6v|g|2a5#trQZARN(P&V;
zUbll<tya`*Hfb;zP`lmcC71r9efSg~;xV7kX*?d&a=BD2jG$Oa!{Lys)vAJaxm-kn
z@_k>y>G%6I8jb9r&gV1LYBf5YPHIR5#lZ|X_f(JK3CSU1Rl7m5<QxTtTY>vzR+tn;
z={#*!WCWEQQX(y9fC8wTL78Al1Lf42Yctb^F0J9zxkFJ|DGDC-qM0ZA3kju{rYe-4
zgPNSoT*@tsRu#-VYeh*l^WSm?sCPk0_9!R{rS}h@;!UPBP-zV|`Y228=%dg_!OTC~
z%u#v{igLNIsGw{sA4(6Umu>0c`6$Og>Al+?NWO(}_9*GAp3$SW+by0kcL<m{Kmim$
z0aOt{g<<Fc13L4}I&+jBJPM!y>Z{CLKlB+N65_X<1D6XWfqGd{E*BRKR9em`y?07a
zIw+^o<9%y-lb_zhCSv)&<s0AN2t{S3sQ8ekC|ll86g(<tkJ1xu7Ze#(JohJ1d~!y&
z+eIJsY9FN~SSpnsI#vma;+&n$oF@lCpnm0JNRrMy(79`o#03{5C+~JUb>s*`;&Trq
zf?@_qRXu>>W85Z_3H5qCb?S}8BS((Mqhi1;9zJIfS2I^MSV4=$g7*8ps4cQdV3kUR
zTCLW-1ZT6^bLsH}Nk@&CKxtFAmY$wuFf;L?N-uf(mJVr;1eyK}zA{j+KLQK@zAaBC
TLb82=00000NkvXXu0mjf_A)?`

literal 0
HcmV?d00001

diff --git a/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png b/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..6ddd516e790627b773405917a89b9da4feee36c9
GIT binary patch
literal 941
zcmV;e15*5nP)<h;3K|Lk000e1NJLTq001%o002Y?1^@s6!$f9n0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#Pf0{URCwC#Te*(vKoD$mV-ATUAs|BH
zGl+;t`9Z#ggkOLhfdmL~nj7BMXa^auZ47JUeqN6>TCp0NDyq7B%rwgFb|bHcq9|W)
zb5lHh4^>sETCIA|#>3I?_mv0*WW<6%;>)@e7)63>t?hP8o6Uxf$0JL?i9~|3*(_x;
z8EYb|)r#`@JhfUas#Ge3)clF`>@*HA$Kx?|yIoo?mjbIP5h&4aw<(oM2~yYVl@*al
zBqG2!n@#F;I@UxkmkXuSX*!?JVsa#c0gS+A8zWd?oGh}^Hwg<&w;x2HfLsiPxF{lV
zSh>WMh;iE89Fl*Mj1{JriQx5my{7$sFBFSLqr$UDiC&X(jR<6&&1Rz3fB<}pdV_4I
zX&RNw<-3=CCt^lMl9)^;bUK|xde(pXSObNo)2XLq?5u8@we$fmFGO7d*km&K5PbI=
z#bQD!*vwdU-7JU_+gpm@1|R`DS;YbV4>G&mj_{1*yCP;W0;|YR;aNJyI*{_B{=60J
z#uN)RQ0?uA0DL?izgxg<YuTyd$Xb|4ugFYR_QD#ZW9)yt*xEd+Yfpn6^KdwbY=mG&
z3>e8^J=6k;TrNk8#lo}wmQ}DvoGOA^QLonpP!K~J26+6%>q4PGwOUQAGrQi+`F5~l
z04$0jz~Wf|)g8qU=@_;HLDUhD^ST)Ry0U}Ja5xloqEsr0bSo7ZjYc2ap1efFZW|9Z
zF#UKYac$G+=QiHe-S2-xL|?tR5wY7@II1IDh92A7+jvga`c)kXgWd074}`UxT<8}O
ztIQQzi<`BAdp;7l^vijR;y6aQXD!nh(KPKAgcymas;Y#+&M4T!bM}x(NaV#}m*)`r
z$zeRh6mxPRCn7H^;^g8_6S2b-Y-@2R;>cP!W|Ms%ULG~SoL;~2=zCKBjw1TWO%W?x
zVT`bk5xLOn0zZl9vHhJoA|=ETw7#NpP(*elIkFZO<B(H!JaB3Sl-T5ltQRb1T#SYQ
z*~WxU29894(WuG;5p?zRdOd118lq8{W0xt8!-3J*f%NdR3n(z3&&9bp7XoI4(4<f-
z7Vj1t3<f`~g$10tOU;PLptrP^Tx1eV?1y64?Z)j}NV6{!(RzjPPk;dcs>4Q{NHt&(
P00000NkvXXu0mjf0<f<Z

literal 0
HcmV?d00001

diff --git a/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png b/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..65fdeb353f8d1de9d732405dceb11a9cc2f4e27b
GIT binary patch
literal 1076
zcmV-41k3x0P)<h;3K|Lk000e1NJLTq001%o002Y?1^@s6!$f9n0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#)=5M`RCwC#THkNdP#8TerG=IuU^cUC
zsEH3g&BV7o?ZqV~d-V_4zqbFvhb3m2CNt4Q9~Q%WGEQNe3u91z)7E|scPY?fAr!71
z-*VF|+zaP$zVqE%`U#e0A?y$Y!TuOa2=y~mRYg9Z51&nlQ79Ay5fKR~3MA~*MPw9-
zZfe!*b?CZ|PN%~qU|E)tN~NG_nm>_hwTg5)jlI1+tgo+wO7lF*b5I}9D3wY$K0e0n
z?X82=v-}o|MeOhIBaukJFbtTc$rTY%6cLNX&}y}CaBzT)jSc6uv$Hc{KoJ6;OeWFm
z^_;;Y5emXc*v5K<CJYZQs#2eX4<>7b2r0lOlR~^G!f^Oyi6@ca!Ap$8G!>C{yX_c`
z6q6(gilR8<zac`vE0qeY<Rwy@6)33=+BF5$iws2l5i*&~T`n)2h!+_Os$xW9ZR;nV
zzq*8?3U(<Za!s`AHz*u7as4fiY&PqZ$S{cn+S!?znBm#NTCIjB+rO~&x{hQj4KYR=
z6ur5<CTk)6M#opVgsW3&V56G#hRCo@r3k5^t<~^i*Fq*|f8)~VJyJrp@N%z%qw_j?
zT{RR{CQ`)9Bjk<EXBM)V9Mq)bC^51wZYz`NV)e0!Ki`c|yfT&9-T#xM=?6)uiap}~
zw=kB{g_dsPx}O5GPOWjO1WGM>6Qh+tTu4KS$v)qfU6$=XqglPn<$0+Q$n4Bm<=+y_
zriS>6<`{iAjGjHWrQ@d52yG)BXLd1&A~deg1)P59px4kKnOVp}4vP5DxyFnPI=Y50
z@7mDIg6H~Kj;YPg;?rRTW=F>M?o%XH*;Yn`X_%<%Exdnwfzyw*xon0rIih?%y2Ot{
z6|3tj&{h=aw=G;<=qO({=XN}qh{(8O{8h2;j78j&%=FN>=#%gLBI3S@;f;v<I`uxn
zL%6X`eT?V%?r>@L|H|x<NUb0X7e&OcaxGJfx73R6^O4AvU!IRBfjz=|)$;U6qtURU
z;1N+(Rbgp%j?BJ%&b}nFBr>7d*>ec@;358nNeZ%%Cn6Io5@hkbiHyS(?bPC(NTAfB
zM`o<=Bg{w56PMRM9(Pa5{ZYg{cvHj=*U}^0dxTB&Td+tXZfy5wA7K)*77Sj9Fie5X
zPLrtzi!}=H)C$P3dGxsqHfPf0X0z#ZnL6DL{Z3Qfh!DnMRR)Mq>+H$N33hgNoJL_D
zyG*;?u7i=V4!rK}`y~a+<+9W2$5SukFd=F?%;j=-DK^sgON?m(Pu-<nM40J)Q;SUs
utCcTQg2TDy4&Hu+^!hQ;#^_xC3NQdwh&V8f<kfNj0000<MNUMnLSTa4uL`pO

literal 0
HcmV?d00001

diff --git a/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png b/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..7ec915fe8c345d3eb2755dcc953ac9b8a9ab577b
GIT binary patch
literal 733
zcmV<30wVp1P)<h;3K|Lk000e1NJLTq002q=002n{1^@s6nnbYQ0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!e@R3^RCwC#oWYI(K@f&(m>@$)Tyd0m
z9Z%rmtsK3BXCZD5juL_(m{k)kGd(>sZFk37^;goF#CBHd%in*OrpxhtpYjgJadLl?
zTOLlXIe4B&olYlzTK_nv)2UMc2D<<#JL>=_DC(EP)nC}{cC_7Y>2x}Y1X3!Ms8*{{
zwOUOEwb^W_-EPxhFraR?OV{g_UQs^0jSm$HG@s9DJRZ|xv7marZY~d&%O#CQBWg4n
zbh%taf+`k^v|g`iI2=-|)e8PLo6Vevq8JWCI-k!GP@fKqAt_LtD>LBSQ$30&FeEi3
zDT>t;>~MwH9_JfDg@+_iYUpY*DoQQ2@Q@N|IYUuURL+XxNzxT%4JwQ7Co3xagh!<)
zO63hu0QF)}rkzjPu4i@30!4je>8VmdLh$FiaPC&1^jb<%B#9%l;FJa`$!;<|N+PJI
zJSwa#De<E^3ZURoiJ+`KO6snsP7bj2u=M_5=}A4|%*q){59PrNJPJ$i36GLo9>C0D
z=J2TZ_b7nUK<)Q?-&C1PJZ4eH!6s1nv8ydaAOI+U0;o3**YiBSzU8AlNY5FHvQ-oc
zPACdy4p0CEPymGhD1ZVefC4Ch!iVB}gs)?%AtADIhN5g0#ho*Hy&e>mk#lV6sU``0
zm7kwdKyltGcf)o5I4GXT!*$)qKakQOf^$~+>r-5vD)(nm4P4YWr&1K91i}n-RYgE?
zpO(pFLj8W9DwWEklZF&UF{s1g5HMgCkvR<EX66A22D4hN=y*Jey3nXYE0@dEY&IWD
zFxJF|<;D{v^<*)DG8wvSnq)9D@ewRNz5A95{U<@69``SUbq2xnOMn3YNuGxP^(1eo
P00000NkvXXu0mjfcr`t%

literal 0
HcmV?d00001

diff --git a/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png b/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..43927172310d4d3b24260b4e1ec2280596d4d33b
GIT binary patch
literal 964
zcmV;#13UbQP)<h;3K|Lk000e1NJLTq001%o002Y?1^@s6!$f9n0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#W=TXrRCwC#TFY+gFc6)DP^y$yd8{ZK
zP&X|27ruZ^|B5C5&|hf*v0;G(s6boF8*+QB>noF*S1$n*c_b@sVv;#Nb7t(shT}No
zwHb!-{TRpa^cl8oQ#PCR9*u|g`ub{^<P)>}0OC7z$v2GnH?+RKzGyTW(R@Bv(&3w%
z8w!WRba!{R9mvPW2R%GIP`O;D$Hzxnuh(>r^n9=mOp_Xo234z7YPDJvjYj3^x7}`2
zrBb0-EJmx<N=YDrK!D!g-|6Y;i87fCyH=~!j15NMJU}d$%MBox1_KZr2z-H$@NK6?
z&;cNLQ;89<!7`NjBS$$>AYxMq2ybpSq>S)T5}VA#^SJprY?n_*GlFxyUXO;uAxqJr
zP>AC3IHgi48RhCRf+LbZv)QD#w>Js~gUs>qcubv6hx+|K<#IW)EXy;7j$#CzWQ;5p
z3#!-aG?`3TK@vwFtbifp_<TOkKzhlD42Zcc_C@r_UKsVy&rjyGJB0B6?d>fM1_Q>H
zn6^*d-1<C9BLIRC$Mj&E4sae!pjai7$&>3v)W<;@kpaOG`q&rya31|+4^jdM48;gp
zYFAxBe_pgs4Q3w@b6<8q!woP&gW$IT!Od~~{{DVz_B*9ce$5DG#h4v~6`p#<-^^w+
zHV1+}yjTMKS7>p4z~Ef5SfrPi7nYp>hNnVYOQ+Lp>W{kOg+?%NqHhNQan}-l9t*BQ
zp+Mbkm$3sDkai=H2&?S4?ga>0ojbZ9ia)~NsNh(gVOqjR3EDt<K8J0a$nMpM3_Yql
z+9m90jfl*s^xEgwb>wP+?9zxTKn~W3ENiI(<lwBOLrb;LI&^MxZrkURe?!Yx8u3MF
z@s28|UoCd65fwCYbwIwCrjD$#t2mA43ppte+qUtt%DHw%{QFf`GjeJDXdoJh2BLvz
zAR34UqJdn&q*2^qz?&+|++99tMpR?Ok}W6k(I4A3a8v~d{NldJwuk%xf{tj|uEcMk
z%AQ8}#Qk%3vD~Qf*_rRD<%@k)7~um9AKk2M0KwMT=jUfCl}haUIp3VA3L^kAolcpL
z@O7h)xbGK^<2yPw0;sZ9mx02bu|y*AFT{TA`vqO-pwc#384#J^Em<dtn3Ole9c!Yw
m-$Gv6{=Q6f`^b)e1Q-A#zPZbN1g+ix0000<MNUMnLSTaJhsJpT

literal 0
HcmV?d00001

diff --git a/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png b/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..c2cc3204482d9ee2a41d3bc2d4d5a3afd7f5402a
GIT binary patch
literal 1055
zcmV+)1mOFLP)<h;3K|Lk000e1NJLTq001%o002Y?1^@s6!$f9n0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#!AV3xRCwC#n$2$7KoH0O#x@4?kwE$Z
zBBYh7sD~b^_E4#hktfI{Z<S--AurHN4!yLhS`exlQIY0LR1gRTW4k+U78zp*iDI%K
zue3r6llA=kpP5~oksQZC*h7*eb{R(s^%}aaqg*bBPZQ#(R4P&oD>9T-fMB7El~H7M
zL#x~EqSNVMFc=8wa6BGII-N!;m6{IHZnv?yxryD~U2Jb}!?tZKqCC%?2eBAxwHgi%
z4p6Vxk<Dg<%kRm_3HJB*v9`7b%d&(7k!2aJRttN3dnlDk?swH{RT@)-oF|Cka5x6?
z*f0daLC6>Kk$jt(BV<4je2Sz9so_?r*hGzT0zte}BoIFRY6L36L&-Zu8MA!4mm*Z2
zX_}@9RaKG6WG2d?(29`bRN0zF1yZ^JDbaz`&*0DRGB)(rC>D!Q6h#b0$S6pWe!q`K
zqXBc{2!)Sdpy`x+ROtYt`yH)s=Quw8fUT{qP++`@%ncGme|dR{Sm_8a-v2~0okdKh
zMahnZW6oilQw^t|6<k~-Q79BbQ^fmu=Nut5hVkDhzCFWwJ_lKud`3#d9Z2u$IREsD
z+2`Ec2}2R?*S$a}H<C|V$gSt0ClyzTiMz%8w%1Lxb1j&Cb5!$%0-*);lnPyAAnNq^
zcQg|ToqgX&;KddS5>&a|yK7~jN-{J#J|%w1|2|^Oj_kwOe`f7#b1PzXHemN8sF{?T
z=>B01nZ3cvaqr1!9brO?mtuDz;~CDY>`<B3SeR)yRqKB#B#2(8kJBG<#D?rZ2m8U*
zp!1d2x4A(4dkG({`g7FmE4+LoBdIf|Wwy9wquVj?>#Kt9S&mi+{g^WM&h8H{@Az9!
zp><|J&sb13U|;~fEA~HwROk@i8-3>-38J@qakP6Ae_hDI@y<EoRYs)OKKI^7mKNl;
z91#Iz?i`s`wL}1!yJ|(DC0b~S`pkZtPpcbRE0rTF5n9|(<nkLOdz2$0<jB&2Twh;1
zK|8yM$9Vp@8wjH7I=xA7mR*t6{Z%(o<gxQ70*OE(kO(9Ki9jNd2xJKkjouCeK1F%V
zo#j)ch-iu^L64L4J2`dF(WfXN<QMlXpo4A_gbZo&4j<k}D1sW~6Zg+=qWGz)WtKOQ
z@rQj;6yZ0ReDtd_212c~hlhvQ+1WuNkr*{+ilPXC7>42cNWPBQc>8|I@n*B>wl#^=
z%jk#FG!6NDeiUL8eZM3Z8Hm&-8w3)R@Jf);L-$%O1kfLA-r;`>`Pk#;Wuo6l_w%0s
Z0{{<_AlR|X^KAeC002ovPDHLkV1g0P?MDCr

literal 0
HcmV?d00001

diff --git a/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png b/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png
new file mode 100755
index 0000000000000000000000000000000000000000..1a03c52e64df4681aacb8bf1c15cb741eaf0b568
GIT binary patch
literal 172
zcmeAS@N?(olHy`uVBq!ia0vp^Oh9bO0U{@7=E?#o$r9IylHmNblJdl&R0hYC{G?O`
z&)mfH)S%SFl*+=BsWw1Gex5FlAr-fhcGUd*v_5|SjDP?CpFePbVNnA^ZxREu3D-iF
zP`=d)lh_{lI%*tL_gKO!(PVMfCBvaeQZN6}7hSvCk_Q_&IUGc$urFj_;$fK5SXEbR
SE_V%RGJ~h9pUXO@geCwk*Ei?@

literal 0
HcmV?d00001

diff --git a/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png b/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea2506c6d6ba4fcd87dffbd091149bff561553e2
GIT binary patch
literal 818
zcmV-21I_%2P)<h;3K|Lk000e1NJLTq001%o001!v1^@s6n5+6900001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV&
z6ErSAYuLa500Oc}L_t(&-tAh=Zt^e?oQ)kP9C(g!qBq|E#DybV@*YU!&v8%A=NQ`w
zqQw5HT8e~9sAoDe%X(8%O5xo_MDPC+fZqDBQVNH|;U|DZTXkJihF`LN4H2$iD5cPK
z9fo1RPvqv)E6;NXAwWcPB2ClabULA`Dsav*j$?9!hzMDhfrxOuUU9ixu-onCMEbtR
z@pwerws<@qkWwb81Y-<&p5yE53+MCsnFs)MU5Bpg(D!}PM3hpKrF1f88Ie+A7zXrx
zk8vE6Br=X8hzOkXnf1ASlg@@FVlj`lG-x84aC)njzQGK7YJqoQd{RUyHC?G%i-;zS
zUPVk2Aw@o|lFQEeXBwML=1CDPn_0ECBoiWG+AFAt>A#RFTja(BuU`|<EbNO_OG*hT
zrIW~3;r9_SaXJ+NFcC<dh{hMRmXvaqk=SL}CP73K#?{u^T7|XhELzJBdx}I{_!g^H
zszg><OW$NOj+qg2??pvI)=HsSeA!y2#ZqnK?KaBWqPUu}RF;bb0AxByCU~<cOYySt
zJ}I)+r!lKmXdI+`ZAgf~mff#;I`p+mf0M>PBA+6nl%h2ma8-^^l~><Bp?&#Mz+;?6
zT<wWj1YB6NwPiO(34UdNzSR3~S%O2~7p@ay&|2mp-+a&P0ABf``o!?Tg_+wQHZPx7
zx14Laj=DC!)ry3I7mH9(5#L|HCJ=Md_*O=2J8e0kcR6EKM&9W_V|K(&Yq>I#5`jf)
z*;UK&h%4&J(1p*bh!A2L%;}M7YD5@g5JEr*;kTB4Zp}GQ`eCRL0(qX#95)duiUM_A
zqpB*DWjPyS#|XV|Z^jt1EW_<~Ls1m}-UEQDs#Mc7xZm$++cw!zkV&X03heiLlx2y!
wuIGv{#xM-Se{qn~|2QyH#HDQFJf3iW1A+oZV>8eEQUCw|07*qoM6N<$f(}b=nE(I)

literal 0
HcmV?d00001

diff --git a/res/drawable-land-mdpi/btn_keyboard_key_normal_off.9.png b/res/drawable-land-mdpi/btn_keyboard_key_normal_off.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..bda9b83941ff20ac6ce4a46912dfd292957be711
GIT binary patch
literal 860
zcmV-i1Ec(jP)<h;3K|Lk000e1NJLTq001HY001rs1^@s6O@+(30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!{z*hZRCwCVSjnpDKoG5H9B~3c6kH0r
z(w+ama^q4L`U9e(8xfrKz0<t9blRRw%;Od`(WKLLQs-0;6}(<AN@_t6{2k^MBpL%i
z27^IzGzo06SOgjRCH8B8g!}^(U9VTV-|zGd-MB25%TYd`hrXgf&gV0Y$7AaE`xJ&D
zJ)h671A@~`CL^x1*^H*sDV0j4D3IIjM#JHdE|&|PPA7Ui9;rkko6U-7j7B4xOeXI@
zV4wyKpwa|_NHZmz{t=D9IWz(wpe7B&xBvnAW$Ht<6KjKktk-MW@Aq^(9;s5PP_x;j
zPN(xR0Coxx?8lfj+=0OW#CE%-YPCxBdR@@A*=)qKcDo%rBC-!{MDTzcIvx%OYBU-`
zT(DxXC^*LbR;v{|bJ&M5A~FbEkwN8hITA(;gjBbQSr(#tkH=QQyhVh=21m78O^6p!
zV8eghHvzGMkm<2TMCK0-x>&7NR45e0M1*^Y2E^)0ZzVl{uCiF2Spz3%5NWsDrQL2P
zbb+kFf6#?VFAfmdk2WGO2EYv|i<z(2>xp#%SpxvL?;}bR5FX!34La}@2B&Co*BuoE
zuI$5`8g(*Cve?PLoz$peO#_H-d}r3A1;mRQ?xZ44q7nIBXGCn&Br){^ys42XN^2V+
z`?5~)x<%<*rURi}^wi&J0MYpf<M5m$YmDa_>=#vMK9P}^a^147>ud5OfSAs#>YzRj
zUHxqDg}Nx1UjCFKc@B~3(fP{wY9o$LK6yWMEl@5Rd_}3-7Fel~cT(~*{;&3nvqRJQ
z4AqzAX5!ivX4|GnH@<g7Y{H8R$QlvT7pMR}iO5$qqSE0T5nW$zjU<_-lT7<sYIGX;
zCIBZjYSyTAjHIisZhUP-aCYI{JFaN}!SNM-(2Ue@aScV3G%H5%!xe^qAcG$uINvUp
zOHs^2`GF%6SG1;g0R-ph`Ft*XzEz%axW<VNrHHilt1=*fz}XrfjmmQ*B0!6>!~Za@
mE=D4vEApoaLbn<FBftQN%_)Px)Ujp&0000<MNUMnLSTaR|AR>Y

literal 0
HcmV?d00001

diff --git a/res/drawable-land-mdpi/btn_keyboard_key_normal_on.9.png b/res/drawable-land-mdpi/btn_keyboard_key_normal_on.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c16ed5093dfcac53807d9d9663c516e52bb07ca
GIT binary patch
literal 926
zcmV;P17ZA$P)<h;3K|Lk000e1NJLTq001HY001rs1^@s6O@+(30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#KuJVFRCwCVSlNmiK@>f`xPoyonGAWz
zi+N}hP%}OV`G`E_GehzVSsoljn9(SVl35Z017=ki+}n;<C{tEfFLv8uE)><;Rrj7g
z=T=wsRV>RwSW^^b<;GG%`5+*LLLoew5Z3K>6%}{H?hFu}U64ex*$j)t0{h4tFN?)u
zh{xlUU)w+?lL@NTDh$JbuIpGXmwN|9K~+^<_w9BYjYb2hRB9W@d_G61RKj#R#dti1
zX_}ERp=sKhjdHn+TCHXWLPpY1BT!KSA*PumZ252H2nDAcAs{3T*<diha5%(hG(tL^
zMmC$p!NEabAmo=oko>&#x;TjC2K59Y{<wwW%RV0DhxmDw#m(6f{(O7BGZ+?>K(IKD
ztA-6=U=E-DK<U*jG(Ei<kw)$qcv8H@r#Ig*ySW#b5k7{L5xT(|4K%7M9_0+1vuRa9
z>+Le|%3(1a8R0=tU#=K1^<Oq;<;s1Wz8<*-bNY|@7QxsUVYE@=4!%6Z(X-Y6`1kay
zHv#$=hpYQnJA>fmab<+pkJ@$1M4@;LQ~Qm%HAGCwLNjxyoqhFO-oo<S^n9{<t{MtL
zt^VNx)>1*`MIL#hgv;|jPERgT|M=NgF35oJaiolpF#xO);*<AX)ZU%jmSGqm%)hHN
zG=TMd;Gp}C2!eVR!?!fMvf!5;Pie$tjRJ_wzvrrn3WzUh*dP&cm>l8fdNSfBO&Aj&
zz_&EKL{S(Y!}Ap{+m!ZYG7!>DPrQx-h%AO4MCUN8#__v`&WmC&Kg{r3xolgPjdhB%
z2IBP1DmwKO&}*FAJYB|u)8t(x;@=^>JhE7--`oh2C%eqoy*4N>8T=-t>{#F`4S$m2
z@3G(FxF9DqSxjA=%r_^ky=Znj6v_PiX2dP=f&y}7#OVn{0J|`<*BlY$@XLs7tnVBN
z^O_Fx+LuZr%aMHo@RUYeHDVnj?5->GFJ**kTI}@BzH9akgbFnjhnk}_thh!+lqf4k
z6o<-J97tsYB#}s<*Xyl|dC6pQ!${Dib(%{+sG!&Bbk;F#jASwyG@DJ->-EUat2`hA
zK{0JW=mw#s8ruIbR$bhx#Y+%JTJe<~#{LR007x($d)Rj$0{{R307*qoM6N<$f>02w
ASpWb4

literal 0
HcmV?d00001

diff --git a/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png b/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..6b5c718c71a8b38a73e5e765a9786b33bcee39d7
GIT binary patch
literal 740
zcmV<A0vr8_P)<h;3K|Lk000e1NJLTq001%o001!v1^@s6n5+6900001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV&
z6FCG?es5a<00Lx5L_t(&-tC#quCg!?hTl&4Q4_8M@4%I7cHXHQ*REW73*3hb1cshf
z{n}boK0Q#(nWPDc73Rr1Go1mUl)}3vgn0iZfOzZAN-3<@>rXf`nU!TJ2w!4f0}|;A
zr4;JAM%%XdMBe<i#c_-zNg#x<L8_|4ZnwjByTxj?Lf3U+h7b{$8OP%hhr<EO<<bUe
zng&HtfSFO(b<iM0grX?0-|z210Dzg%G!2;93!-Hl%X}eDM37Rtz9=h4nEAFsRYb!P
zkp*fg(siA+LNy`8oqv`ha|8K)Mf3_CMCZqUDKga|>8q4J|L$@`S1e`@7KE80rF^c4
zF2Pen^uavL5lw2YkU`vt@rKr16zL5uGe2D7DS-M~qKAs;95Gvz(As$oMnsRRmI)Dh
z)new?s@7~3ajRCy-LD?5X5Tbw|7PDbK5bFl#xc~+*Ywk?hzm1h1Rdl2aDB8C5kjau
z&u>5YHjZ7r+~=8Krf=rHzc-D4Aio8oloEZ(9{PHz{Q5Re)&1({x~2E!@;hba($92D
z@l!=Y1Q~RW_#Ax%F&2;+R_1k|FBHPe@rgt8P7xoBPO@k1!&vQ#&)2Ar(sbU}CQLP}
zzpTiR8-5ySsM@`XxHk+TjGmQaFNhFg5X4lVrk~!>(i?mmLmI5~>J6<VNqUF-P)tgR
zD2k9INq=a?aSSOX+O`dD)YTC~M2MmYMAi`~ZXjuz;(R`1v)LfavY<atE2VHcosg#K
zKN0}Q^ITO`h0EoF>-8G+8x)-<X__L-GAtGglx1lvqQhzqCZ$9i$F?HAkPMvT&hH;~
WjYES7Hev_>0000<MNUMnLSTZLSxFH9

literal 0
HcmV?d00001

diff --git a/res/drawable-land-mdpi/btn_keyboard_key_pressed_off.9.png b/res/drawable-land-mdpi/btn_keyboard_key_pressed_off.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..bdcf06e1b8986fd3d5fc87d41037c7c037c6584b
GIT binary patch
literal 836
zcmV-K1H1f*P)<h;3K|Lk000e1NJLTq001HY001rs1^@s6O@+(30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!=1D|BRCwCVSh=p^KoD#ja|#GJBn}B7
zArOB+L`=q?k`NOS@d=0{A%O%U?sK<Bny2wFzU|%D(#Xb)yUW$pb7`N?hk}}>X@A{(
zv_L)pq}%NVM-#y2^SP$eFR@<(#Nanb(fxj>=krNn=*G$7@i-+C3FylV<a)i*a5$uX
zzfYM=hTiXYG%3(^dc9sWnM`Or9#cA<HUoJ)9yAyXSSK(OB@i^k8jVKZKwtm?K)9-a
za2nm3D#ZX1i^WX7Q2r*3003`MF~Y$CkO<Vo2!e|Zwpc7^v)Rz$aG*k=K#fL&I-O3?
z0r2ZXO^nDumdhor*J~=3N>r^@>2x~LYPDj0+wFE>Ag&qN?RHeJ*D0Ayvj6k>JS#ao
zZ?#&{F~S=Ma=BbsI>eVCG&~QYA+8VCj1-GSRz;%1@f+YEXt!T4o2Wrcjqr-W6+j@=
zY&Of7z^HpX9+_Z+0KvQP=g0^z;aaW6XxwhMwBPTUMw-ngRVo!W=y}nEYmIQEVuKdS
z<uU_g7zSem0Px(aIOX3mqsr9q21C&E`5buM@KnB{K2#d;IxAaE3AT)Ijfg{h*vkP9
z47#(e8WDty*e@unszGyAHUEtfxoV=Eefi?Z^`sY-asQr{0Z{^Rob)(5Q5bY0#!)gN
zgYmKibi1Uq@~>mPC_0zHsI;T%<F&v1LAtnSbqWx6bEOegXTL){e^1tjYmJB<{S0n+
zN7joYBT)eHB345c$PR>CKw?_Ndn;dh7!zBNjg}=NDllARezu*e{;F7p6-qI<?9lIk
zX6M7ObME9&ekaH#-LMN3MjD*TSqTK4ynyfvRE(oc4ey}p80PHDn`LUS!M0jKg=N^`
zVUL7ZmZ`x38{b-ny&mC=<0AnCSK&YH2MCTHX0sXfdOgbJa*>{)0n~Il{W<P1ojl`I
z5gY8=?H1`Wk?RB?@WH86ik&>07~yI87lv4nf{78;A%Dd4%vVYN5nuqDuBQKIAT~At
O0000<MNUMnLSTYXMt$@E

literal 0
HcmV?d00001

diff --git a/res/drawable-land-mdpi/btn_keyboard_key_pressed_on.9.png b/res/drawable-land-mdpi/btn_keyboard_key_pressed_on.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..79621a9e6300cc77259b6af19649931e47611c4a
GIT binary patch
literal 886
zcmV-+1Bv{JP)<h;3K|Lk000e1NJLTq001HY001rs1^@s6O@+(30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#7)eAyRCwCVnOkcbK@`XTd+`dQLK162
zOQo0SC-9;5*@uGP)EA*|J_!Zi(^A1m0wuAUq-e3h>)JiSw6o*v#l5sSFszBQ=lu46
z&Rlj>w%aX&nxZJCo2?Sa2Z5B!<=`{{tk>%)DxQcv84#U)pcE~aORU#xgi$wc7K_CY
zkH@LLtRVCG9F0Z;wOS47bQ*?XM3Vwl#b&cXyWK{s)j}$jvVyEuE7a@tT_;i|N)T!k
ztJ!SsgOCvf0nt?k!esPnvJ?}9rfC*mH2f_!LIA8Wkl}EM(P)IpWP)5SheDx%VzKC3
z5e7#<Jg7wx3eGoz7^@$VeLq0)Y>ZzwC-~lf1>@#JAQ)0ZRNSJ72(rmvpz`h-szx#v
zkS_zLZ>}-^bYXs92n^y`k!R;Wagu+#pJ(&`#=wY95!M(;x$+Wg?QYLeu5yfC-v~5v
zSS(M9Z0<`)KQ|@B-=K;)89#n2?F!oK(~HLZJJtvrF?5{`k8oDXVXfX{wVfiSWT6{J
z7~g8<_cPxh<eP@Dt0HU&UwxgLowIoH`W(lnY24jD;<7)*Rc~@|O?a*mM#?v`!IvMn
z{QMAfzq0qYm|AISco4f8G7Lp*Q^VJXtQZdkvRe`y6=5~PPw`=I2N)O)U&m3yLx{wF
zq3lKtHBY1FzbPV)nyB_8^l)r*<ayDH%9wx8Q+(7Qu8SU1CkmrF;p0dZ5n&G50(#w2
z+WA*$zsNfmVPv%<>vL#-@qtwSoz*Qs*v(Uo$U6I-;@N#-eR!@BzN4SXjqVZa#Z{3g
zKn^KZT^7g*!YdG;7XGuHFExyXEy#<Ots*iQR%Cu&J7xW4v2;61KDg-6?}X;$Lw9oS
z=1{yR$V<BJ6ex@|xD9712z5FH!Y?QvN17VeLDn(M)t5Ef)X<rh-3}@&qc=QV*LSgO
zQ$q)A)R7MK!rqTC#pxjlgs$9o${&zKB7ttVi)yusOePcQ85%)#I-On2y_07;Rh-Rc
zSS%KiZWCFZ5ClDNGMU_+JX;iDY55mMv8WU*ib#kfU36qWAp90!0PG#2jn<Cy&j0`b
M07*qoM6N<$f?Cs)EdT%j

literal 0
HcmV?d00001

diff --git a/res/drawable-land/keyboard_suggest_strip_divider.png b/res/drawable-land-mdpi/keyboard_suggest_strip_divider.png
similarity index 100%
rename from res/drawable-land/keyboard_suggest_strip_divider.png
rename to res/drawable-land-mdpi/keyboard_suggest_strip_divider.png
diff --git a/res/drawable-land/btn_keyboard_key.xml b/res/drawable-land/btn_keyboard_key.xml
new file mode 100644
index 0000000000..45578e582f
--- /dev/null
+++ b/res/drawable-land/btn_keyboard_key.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- Toggle keys. Use checkable/checked state. -->
+    
+    <item android:state_checkable="true" android:state_checked="true" 
+          android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_pressed_on" />
+    <item android:state_checkable="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_pressed_off" />
+    <item android:state_checkable="true" android:state_checked="true"
+          android:drawable="@drawable/btn_keyboard_key_normal_on" />
+    <item android:state_checkable="true"
+          android:drawable="@drawable/btn_keyboard_key_normal_off" />
+
+    <!-- Normal keys -->
+
+    <item android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_pressed" />
+    <item
+          android:drawable="@drawable/btn_keyboard_key_normal" />
+          
+</selector>
diff --git a/res/drawable-mdpi/btn_keyboard_key_normal.9.png b/res/drawable-mdpi/btn_keyboard_key_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0f9b7cc68907243d491edf188157a1486a8f8ce
GIT binary patch
literal 809
zcmV+^1J?YBP)<h;3K|Lk000e1NJLTq001HY001-y1^@s6@5t&z00001b5ch_0Itp)
z=>Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV&
z6A3Zci=B%A00OB=L_t(o!|j-{lJX!Fh0hIy#KPym%I$pr%EnR)^B&F^lMuEdKS4qg
z3IA*%GtTa;!2R}|3tS+rHDVhPX{|Ly&7rl%;c$qjiD>uxoihB9_Gdu2`9*7urfJZ1
z9k$4uxt8ZSgb*O2F-Tq4IGs+AQi5}izV9~&A|hm21|q`sdd1~(!EU!3gS2gn<MD{s
z>xJj@38hpLB^YDK^Bg}vKRBPy?;rrsG!2@jLEE-TLA2I`C1&}LazrVGuItdYE&9Gs
z0@C+AhzOkXk@ei|WOBoR*yJ(I1SO&&&g7~w9qdHiI$?b=-W1VV51&-l5YZ50QV|;>
zq{y5~K0D3d%-k-_n<7Rwd)2Ig2|?KQ1QoIU3#qasZ=B^h{IrvGcGW1Qpp^20EKS}i
z5Ic@n5dZ@~Y7jGj&>E%GC`V$Ku?s;&LyX1NtW{yDI<wZe$(jPhH~;LaNd>aV8q>)o
zj>!>w?5rXoYqmJ-R$F6Rl&TDHkCDkO-ghW%)qD^DkeNiXgWHEvijN!bO_8NO$E=#r
zbwW>V;~{`Gr>|X|O&u5Co8A}X3$hwy>ZQk5r~0aI-?*uMp>cd}@A#xl^qsu+{^E<3
zE!|N+*<II+=W}J<n%y<DmHUe6pf&dW!~V`b96t^0o7by|>F5q{y<T(W^i}ch{EHO{
zCElk%K}Dwi0~a9X5+0Q!t{rP0Z+yxw%8{7jCZ<^OTI0)+Edge&aaWD|`WIU?`{o}&
zhzL?j0Dur;xbvFVfUQ9oV-P|>2r+Gqd6MRwCw*rXLLkrckz)f$Q52}E3Q|gxWjT5u
z`6Owl#xll`Wf^X_8;YX%_Z<L8DRo`fcsw3>y<W*~c{Wf{6xi?gD9aL6RgD#4jG^ng
n|56B<H~EnwK4lYgyv6+mbTk?c@Ly&300000NkvXXu0mjfkX3OU

literal 0
HcmV?d00001

diff --git a/res/drawable-mdpi/btn_keyboard_key_normal_off.9.png b/res/drawable-mdpi/btn_keyboard_key_normal_off.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..bda9b83941ff20ac6ce4a46912dfd292957be711
GIT binary patch
literal 860
zcmV-i1Ec(jP)<h;3K|Lk000e1NJLTq001HY001rs1^@s6O@+(30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!{z*hZRCwCVSjnpDKoG5H9B~3c6kH0r
z(w+ama^q4L`U9e(8xfrKz0<t9blRRw%;Od`(WKLLQs-0;6}(<AN@_t6{2k^MBpL%i
z27^IzGzo06SOgjRCH8B8g!}^(U9VTV-|zGd-MB25%TYd`hrXgf&gV0Y$7AaE`xJ&D
zJ)h671A@~`CL^x1*^H*sDV0j4D3IIjM#JHdE|&|PPA7Ui9;rkko6U-7j7B4xOeXI@
zV4wyKpwa|_NHZmz{t=D9IWz(wpe7B&xBvnAW$Ht<6KjKktk-MW@Aq^(9;s5PP_x;j
zPN(xR0Coxx?8lfj+=0OW#CE%-YPCxBdR@@A*=)qKcDo%rBC-!{MDTzcIvx%OYBU-`
zT(DxXC^*LbR;v{|bJ&M5A~FbEkwN8hITA(;gjBbQSr(#tkH=QQyhVh=21m78O^6p!
zV8eghHvzGMkm<2TMCK0-x>&7NR45e0M1*^Y2E^)0ZzVl{uCiF2Spz3%5NWsDrQL2P
zbb+kFf6#?VFAfmdk2WGO2EYv|i<z(2>xp#%SpxvL?;}bR5FX!34La}@2B&Co*BuoE
zuI$5`8g(*Cve?PLoz$peO#_H-d}r3A1;mRQ?xZ44q7nIBXGCn&Br){^ys42XN^2V+
z`?5~)x<%<*rURi}^wi&J0MYpf<M5m$YmDa_>=#vMK9P}^a^147>ud5OfSAs#>YzRj
zUHxqDg}Nx1UjCFKc@B~3(fP{wY9o$LK6yWMEl@5Rd_}3-7Fel~cT(~*{;&3nvqRJQ
z4AqzAX5!ivX4|GnH@<g7Y{H8R$QlvT7pMR}iO5$qqSE0T5nW$zjU<_-lT7<sYIGX;
zCIBZjYSyTAjHIisZhUP-aCYI{JFaN}!SNM-(2Ue@aScV3G%H5%!xe^qAcG$uINvUp
zOHs^2`GF%6SG1;g0R-ph`Ft*XzEz%axW<VNrHHilt1=*fz}XrfjmmQ*B0!6>!~Za@
mE=D4vEApoaLbn<FBftQN%_)Px)Ujp&0000<MNUMnLSTaR|AR>Y

literal 0
HcmV?d00001

diff --git a/res/drawable-mdpi/btn_keyboard_key_normal_on.9.png b/res/drawable-mdpi/btn_keyboard_key_normal_on.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c16ed5093dfcac53807d9d9663c516e52bb07ca
GIT binary patch
literal 926
zcmV;P17ZA$P)<h;3K|Lk000e1NJLTq001HY001rs1^@s6O@+(30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#KuJVFRCwCVSlNmiK@>f`xPoyonGAWz
zi+N}hP%}OV`G`E_GehzVSsoljn9(SVl35Z017=ki+}n;<C{tEfFLv8uE)><;Rrj7g
z=T=wsRV>RwSW^^b<;GG%`5+*LLLoew5Z3K>6%}{H?hFu}U64ex*$j)t0{h4tFN?)u
zh{xlUU)w+?lL@NTDh$JbuIpGXmwN|9K~+^<_w9BYjYb2hRB9W@d_G61RKj#R#dti1
zX_}ERp=sKhjdHn+TCHXWLPpY1BT!KSA*PumZ252H2nDAcAs{3T*<diha5%(hG(tL^
zMmC$p!NEabAmo=oko>&#x;TjC2K59Y{<wwW%RV0DhxmDw#m(6f{(O7BGZ+?>K(IKD
ztA-6=U=E-DK<U*jG(Ei<kw)$qcv8H@r#Ig*ySW#b5k7{L5xT(|4K%7M9_0+1vuRa9
z>+Le|%3(1a8R0=tU#=K1^<Oq;<;s1Wz8<*-bNY|@7QxsUVYE@=4!%6Z(X-Y6`1kay
zHv#$=hpYQnJA>fmab<+pkJ@$1M4@;LQ~Qm%HAGCwLNjxyoqhFO-oo<S^n9{<t{MtL
zt^VNx)>1*`MIL#hgv;|jPERgT|M=NgF35oJaiolpF#xO);*<AX)ZU%jmSGqm%)hHN
zG=TMd;Gp}C2!eVR!?!fMvf!5;Pie$tjRJ_wzvrrn3WzUh*dP&cm>l8fdNSfBO&Aj&
zz_&EKL{S(Y!}Ap{+m!ZYG7!>DPrQx-h%AO4MCUN8#__v`&WmC&Kg{r3xolgPjdhB%
z2IBP1DmwKO&}*FAJYB|u)8t(x;@=^>JhE7--`oh2C%eqoy*4N>8T=-t>{#F`4S$m2
z@3G(FxF9DqSxjA=%r_^ky=Znj6v_PiX2dP=f&y}7#OVn{0J|`<*BlY$@XLs7tnVBN
z^O_Fx+LuZr%aMHo@RUYeHDVnj?5->GFJ**kTI}@BzH9akgbFnjhnk}_thh!+lqf4k
z6o<-J97tsYB#}s<*Xyl|dC6pQ!${Dib(%{+sG!&Bbk;F#jASwyG@DJ->-EUat2`hA
zK{0JW=mw#s8ruIbR$bhx#Y+%JTJe<~#{LR007x($d)Rj$0{{R307*qoM6N<$f>02w
ASpWb4

literal 0
HcmV?d00001

diff --git a/res/drawable-mdpi/btn_keyboard_key_pressed.9.png b/res/drawable-mdpi/btn_keyboard_key_pressed.9.png
new file mode 100755
index 0000000000000000000000000000000000000000..91809e242239d063a7ddaca169a8451d13423909
GIT binary patch
literal 736
zcmV<60w4W}P)<h;3K|Lk000e1NJLTq001HY001-y1^@s6@5t&z00001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXV&
z6A>SVMhG1M00Ll1L_t(o!|j;6(y}lRhTly%s54v#-hq`hop)+uZDr*p=zUlqu;j1u
z{RxDFK-9v_WQHPa9^O4<2`Qy8cMy?MO3^GEN-1o&+xavz#_e_^fiD?f0}|*5r4)*y
zKvh*(B5sC87>0<V2t;Iq<av(6;eh>qkIiO-x~~1WKnO51&gU~urxVuewGC31C9*67
zGovU9uOLDQWLbve@z@3d0A@y6mSAQlh?a5eaJg6r0V$<ri-?pJBh36aeJP^hgb)^}
zrAS@Z*7P-qsAb<$<lP|OuZW($L3DgfQe<k8b7h*#ek(?F#xS!t5N3vya##_a!gC?I
zV0vRjlbX{fNK<jAYu=?ur)$jkXcA8W>N*m7711$bmiVRH0SzXE=+7Dx!gtm%^SG?}
zm?F)r@p<~{=IG;xp0@w-LvOIeHxE8vC$G7WQ;{ajD=pyIma@yfAR=WNZ^F1@$F=6w
z_013Z{ptNcejqP{m^VE`X}R<qRasq&r#43Vy=GM%U0KbAQ(6M0RIADkD&hm=l@cGg
zHtK^I3uL;*eD1O(mS_j(Tu*c=;)2mZHs!L$wcfQ?&_!u(-ZVJ14d}BG^cf#A*nDTs
z)mG5A(GqSLN@phs5xoR471Z3v=^DMjwQ$LvRZq(`M1(X=0RT}Hb^doOHKddXf&ftz
zb-N}ELr5u6Rn_8MyjENYfglJVgjK@m4<wFbT(4K`b~_|V;`QcPDTT}Bf;f)<lK?=P
zrYg^KJRT1`pHHtpS2|AOI7X5rSglsL-|w~}+AZ%GQc8qjXe;7!sb`MXzW)GCeote9
SqhFK&0000<MNUMnLSTYWIz4az

literal 0
HcmV?d00001

diff --git a/res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png b/res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..bdcf06e1b8986fd3d5fc87d41037c7c037c6584b
GIT binary patch
literal 836
zcmV-K1H1f*P)<h;3K|Lk000e1NJLTq001HY001rs1^@s6O@+(30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!=1D|BRCwCVSh=p^KoD#ja|#GJBn}B7
zArOB+L`=q?k`NOS@d=0{A%O%U?sK<Bny2wFzU|%D(#Xb)yUW$pb7`N?hk}}>X@A{(
zv_L)pq}%NVM-#y2^SP$eFR@<(#Nanb(fxj>=krNn=*G$7@i-+C3FylV<a)i*a5$uX
zzfYM=hTiXYG%3(^dc9sWnM`Or9#cA<HUoJ)9yAyXSSK(OB@i^k8jVKZKwtm?K)9-a
za2nm3D#ZX1i^WX7Q2r*3003`MF~Y$CkO<Vo2!e|Zwpc7^v)Rz$aG*k=K#fL&I-O3?
z0r2ZXO^nDumdhor*J~=3N>r^@>2x~LYPDj0+wFE>Ag&qN?RHeJ*D0Ayvj6k>JS#ao
zZ?#&{F~S=Ma=BbsI>eVCG&~QYA+8VCj1-GSRz;%1@f+YEXt!T4o2Wrcjqr-W6+j@=
zY&Of7z^HpX9+_Z+0KvQP=g0^z;aaW6XxwhMwBPTUMw-ngRVo!W=y}nEYmIQEVuKdS
z<uU_g7zSem0Px(aIOX3mqsr9q21C&E`5buM@KnB{K2#d;IxAaE3AT)Ijfg{h*vkP9
z47#(e8WDty*e@unszGyAHUEtfxoV=Eefi?Z^`sY-asQr{0Z{^Rob)(5Q5bY0#!)gN
zgYmKibi1Uq@~>mPC_0zHsI;T%<F&v1LAtnSbqWx6bEOegXTL){e^1tjYmJB<{S0n+
zN7joYBT)eHB345c$PR>CKw?_Ndn;dh7!zBNjg}=NDllARezu*e{;F7p6-qI<?9lIk
zX6M7ObME9&ekaH#-LMN3MjD*TSqTK4ynyfvRE(oc4ey}p80PHDn`LUS!M0jKg=N^`
zVUL7ZmZ`x38{b-ny&mC=<0AnCSK&YH2MCTHX0sXfdOgbJa*>{)0n~Il{W<P1ojl`I
z5gY8=?H1`Wk?RB?@WH86ik&>07~yI87lv4nf{78;A%Dd4%vVYN5nuqDuBQKIAT~At
O0000<MNUMnLSTYXMt$@E

literal 0
HcmV?d00001

diff --git a/res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png b/res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..79621a9e6300cc77259b6af19649931e47611c4a
GIT binary patch
literal 886
zcmV-+1Bv{JP)<h;3K|Lk000e1NJLTq001HY001rs1^@s6O@+(30000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#7)eAyRCwCVnOkcbK@`XTd+`dQLK162
zOQo0SC-9;5*@uGP)EA*|J_!Zi(^A1m0wuAUq-e3h>)JiSw6o*v#l5sSFszBQ=lu46
z&Rlj>w%aX&nxZJCo2?Sa2Z5B!<=`{{tk>%)DxQcv84#U)pcE~aORU#xgi$wc7K_CY
zkH@LLtRVCG9F0Z;wOS47bQ*?XM3Vwl#b&cXyWK{s)j}$jvVyEuE7a@tT_;i|N)T!k
ztJ!SsgOCvf0nt?k!esPnvJ?}9rfC*mH2f_!LIA8Wkl}EM(P)IpWP)5SheDx%VzKC3
z5e7#<Jg7wx3eGoz7^@$VeLq0)Y>ZzwC-~lf1>@#JAQ)0ZRNSJ72(rmvpz`h-szx#v
zkS_zLZ>}-^bYXs92n^y`k!R;Wagu+#pJ(&`#=wY95!M(;x$+Wg?QYLeu5yfC-v~5v
zSS(M9Z0<`)KQ|@B-=K;)89#n2?F!oK(~HLZJJtvrF?5{`k8oDXVXfX{wVfiSWT6{J
z7~g8<_cPxh<eP@Dt0HU&UwxgLowIoH`W(lnY24jD;<7)*Rc~@|O?a*mM#?v`!IvMn
z{QMAfzq0qYm|AISco4f8G7Lp*Q^VJXtQZdkvRe`y6=5~PPw`=I2N)O)U&m3yLx{wF
zq3lKtHBY1FzbPV)nyB_8^l)r*<ayDH%9wx8Q+(7Qu8SU1CkmrF;p0dZ5n&G50(#w2
z+WA*$zsNfmVPv%<>vL#-@qtwSoz*Qs*v(Uo$U6I-;@N#-eR!@BzN4SXjqVZa#Z{3g
zKn^KZT^7g*!YdG;7XGuHFExyXEy#<Ots*iQR%Cu&J7xW4v2;61KDg-6?}X;$Lw9oS
z=1{yR$V<BJ6ex@|xD9712z5FH!Y?QvN17VeLDn(M)t5Ef)X<rh-3}@&qc=QV*LSgO
zQ$q)A)R7MK!rqTC#pxjlgs$9o${&zKB7ttVi)yusOePcQ85%)#I-On2y_07;Rh-Rc
zSS%KiZWCFZ5ClDNGMU_+JX;iDY55mMv8WU*ib#kfU36qWAp90!0PG#2jn<Cy&j0`b
M07*qoM6N<$f?Cs)EdT%j

literal 0
HcmV?d00001

diff --git a/res/drawable/candidate_feedback_background.9.png b/res/drawable-mdpi/candidate_feedback_background.9.png
similarity index 100%
rename from res/drawable/candidate_feedback_background.9.png
rename to res/drawable-mdpi/candidate_feedback_background.9.png
diff --git a/res/drawable/dialog_bubble_step02.9.png b/res/drawable-mdpi/dialog_bubble_step02.9.png
similarity index 100%
rename from res/drawable/dialog_bubble_step02.9.png
rename to res/drawable-mdpi/dialog_bubble_step02.9.png
diff --git a/res/drawable/dialog_bubble_step07.9.png b/res/drawable-mdpi/dialog_bubble_step07.9.png
similarity index 100%
rename from res/drawable/dialog_bubble_step07.9.png
rename to res/drawable-mdpi/dialog_bubble_step07.9.png
diff --git a/res/drawable/highlight_pressed.png b/res/drawable-mdpi/highlight_pressed.png
similarity index 100%
rename from res/drawable/highlight_pressed.png
rename to res/drawable-mdpi/highlight_pressed.png
diff --git a/res/drawable/ic_dialog_keyboard.png b/res/drawable-mdpi/ic_dialog_keyboard.png
similarity index 100%
rename from res/drawable/ic_dialog_keyboard.png
rename to res/drawable-mdpi/ic_dialog_keyboard.png
diff --git a/res/drawable/ic_suggest_strip_scroll_left_arrow.png b/res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png
similarity index 100%
rename from res/drawable/ic_suggest_strip_scroll_left_arrow.png
rename to res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png
diff --git a/res/drawable/ic_suggest_strip_scroll_right_arrow.png b/res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png
similarity index 100%
rename from res/drawable/ic_suggest_strip_scroll_right_arrow.png
rename to res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png
diff --git a/res/drawable-mdpi/keyboard_background.9.png b/res/drawable-mdpi/keyboard_background.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..2bd4b628dff64a051029a35a6f19925d730c47e0
GIT binary patch
literal 214
zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g+!3HF!RQ~M%QjEnx?oJHr&dIz4a@dl*-CY>|
zgW!U_%O?XxI14-?iy0WWg+Z8+Vb&Z8pdfpRr>`sfO%7H8O=HR5jFv#5Fi#i95R21q
zuWaN!puod=vA%<CBlB;4kJ`vaj|EE}WW7FFlz3$g+loyltCxM>w@%;W`4T3{<ToYE
zOVm8Gb!TsW5+J_sL#us*X8yfr_I`{qk&>pn3#YQ*+95SF*5Xnw&;|xiS3j3^P6<r_
D|CL5g

literal 0
HcmV?d00001

diff --git a/res/drawable/keyboard_suggest_strip.9.png b/res/drawable-mdpi/keyboard_suggest_strip.9.png
similarity index 100%
rename from res/drawable/keyboard_suggest_strip.9.png
rename to res/drawable-mdpi/keyboard_suggest_strip.9.png
diff --git a/res/drawable-mdpi/keyboard_suggest_strip_divider.png b/res/drawable-mdpi/keyboard_suggest_strip_divider.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9413d7c147a56adb8ddc31ad5bee47d764f6f7e
GIT binary patch
literal 2846
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

literal 0
HcmV?d00001

diff --git a/res/drawable/sym_keyboard_delete.png b/res/drawable-mdpi/sym_keyboard_delete.png
similarity index 100%
rename from res/drawable/sym_keyboard_delete.png
rename to res/drawable-mdpi/sym_keyboard_delete.png
diff --git a/res/drawable/sym_keyboard_done.png b/res/drawable-mdpi/sym_keyboard_done.png
similarity index 100%
rename from res/drawable/sym_keyboard_done.png
rename to res/drawable-mdpi/sym_keyboard_done.png
diff --git a/res/drawable/sym_keyboard_feedback_delete.png b/res/drawable-mdpi/sym_keyboard_feedback_delete.png
similarity index 100%
rename from res/drawable/sym_keyboard_feedback_delete.png
rename to res/drawable-mdpi/sym_keyboard_feedback_delete.png
diff --git a/res/drawable/sym_keyboard_feedback_done.png b/res/drawable-mdpi/sym_keyboard_feedback_done.png
similarity index 100%
rename from res/drawable/sym_keyboard_feedback_done.png
rename to res/drawable-mdpi/sym_keyboard_feedback_done.png
diff --git a/res/drawable/sym_keyboard_feedback_numalt.png b/res/drawable-mdpi/sym_keyboard_feedback_numalt.png
similarity index 100%
rename from res/drawable/sym_keyboard_feedback_numalt.png
rename to res/drawable-mdpi/sym_keyboard_feedback_numalt.png
diff --git a/res/drawable/sym_keyboard_feedback_return.png b/res/drawable-mdpi/sym_keyboard_feedback_return.png
similarity index 100%
rename from res/drawable/sym_keyboard_feedback_return.png
rename to res/drawable-mdpi/sym_keyboard_feedback_return.png
diff --git a/res/drawable/sym_keyboard_feedback_search.png b/res/drawable-mdpi/sym_keyboard_feedback_search.png
similarity index 100%
rename from res/drawable/sym_keyboard_feedback_search.png
rename to res/drawable-mdpi/sym_keyboard_feedback_search.png
diff --git a/res/drawable/sym_keyboard_feedback_shift.png b/res/drawable-mdpi/sym_keyboard_feedback_shift.png
similarity index 100%
rename from res/drawable/sym_keyboard_feedback_shift.png
rename to res/drawable-mdpi/sym_keyboard_feedback_shift.png
diff --git a/res/drawable/sym_keyboard_feedback_shift_locked.png b/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png
similarity index 100%
rename from res/drawable/sym_keyboard_feedback_shift_locked.png
rename to res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png
diff --git a/res/drawable/sym_keyboard_feedback_space.png b/res/drawable-mdpi/sym_keyboard_feedback_space.png
similarity index 100%
rename from res/drawable/sym_keyboard_feedback_space.png
rename to res/drawable-mdpi/sym_keyboard_feedback_space.png
diff --git a/res/drawable/sym_keyboard_num0.png b/res/drawable-mdpi/sym_keyboard_num0.png
similarity index 100%
rename from res/drawable/sym_keyboard_num0.png
rename to res/drawable-mdpi/sym_keyboard_num0.png
diff --git a/res/drawable/sym_keyboard_num1.png b/res/drawable-mdpi/sym_keyboard_num1.png
similarity index 100%
rename from res/drawable/sym_keyboard_num1.png
rename to res/drawable-mdpi/sym_keyboard_num1.png
diff --git a/res/drawable/sym_keyboard_num2.png b/res/drawable-mdpi/sym_keyboard_num2.png
similarity index 100%
rename from res/drawable/sym_keyboard_num2.png
rename to res/drawable-mdpi/sym_keyboard_num2.png
diff --git a/res/drawable/sym_keyboard_num3.png b/res/drawable-mdpi/sym_keyboard_num3.png
similarity index 100%
rename from res/drawable/sym_keyboard_num3.png
rename to res/drawable-mdpi/sym_keyboard_num3.png
diff --git a/res/drawable/sym_keyboard_num4.png b/res/drawable-mdpi/sym_keyboard_num4.png
similarity index 100%
rename from res/drawable/sym_keyboard_num4.png
rename to res/drawable-mdpi/sym_keyboard_num4.png
diff --git a/res/drawable/sym_keyboard_num5.png b/res/drawable-mdpi/sym_keyboard_num5.png
similarity index 100%
rename from res/drawable/sym_keyboard_num5.png
rename to res/drawable-mdpi/sym_keyboard_num5.png
diff --git a/res/drawable/sym_keyboard_num6.png b/res/drawable-mdpi/sym_keyboard_num6.png
similarity index 100%
rename from res/drawable/sym_keyboard_num6.png
rename to res/drawable-mdpi/sym_keyboard_num6.png
diff --git a/res/drawable/sym_keyboard_num7.png b/res/drawable-mdpi/sym_keyboard_num7.png
similarity index 100%
rename from res/drawable/sym_keyboard_num7.png
rename to res/drawable-mdpi/sym_keyboard_num7.png
diff --git a/res/drawable/sym_keyboard_num8.png b/res/drawable-mdpi/sym_keyboard_num8.png
similarity index 100%
rename from res/drawable/sym_keyboard_num8.png
rename to res/drawable-mdpi/sym_keyboard_num8.png
diff --git a/res/drawable/sym_keyboard_num9.png b/res/drawable-mdpi/sym_keyboard_num9.png
similarity index 100%
rename from res/drawable/sym_keyboard_num9.png
rename to res/drawable-mdpi/sym_keyboard_num9.png
diff --git a/res/drawable/sym_keyboard_numalt.png b/res/drawable-mdpi/sym_keyboard_numalt.png
similarity index 100%
rename from res/drawable/sym_keyboard_numalt.png
rename to res/drawable-mdpi/sym_keyboard_numalt.png
diff --git a/res/drawable/sym_keyboard_numpound.png b/res/drawable-mdpi/sym_keyboard_numpound.png
similarity index 100%
rename from res/drawable/sym_keyboard_numpound.png
rename to res/drawable-mdpi/sym_keyboard_numpound.png
diff --git a/res/drawable/sym_keyboard_numstar.png b/res/drawable-mdpi/sym_keyboard_numstar.png
similarity index 100%
rename from res/drawable/sym_keyboard_numstar.png
rename to res/drawable-mdpi/sym_keyboard_numstar.png
diff --git a/res/drawable/sym_keyboard_return.png b/res/drawable-mdpi/sym_keyboard_return.png
similarity index 100%
rename from res/drawable/sym_keyboard_return.png
rename to res/drawable-mdpi/sym_keyboard_return.png
diff --git a/res/drawable/sym_keyboard_search.png b/res/drawable-mdpi/sym_keyboard_search.png
similarity index 100%
rename from res/drawable/sym_keyboard_search.png
rename to res/drawable-mdpi/sym_keyboard_search.png
diff --git a/res/drawable/sym_keyboard_shift.png b/res/drawable-mdpi/sym_keyboard_shift.png
similarity index 100%
rename from res/drawable/sym_keyboard_shift.png
rename to res/drawable-mdpi/sym_keyboard_shift.png
diff --git a/res/drawable/sym_keyboard_shift_locked.png b/res/drawable-mdpi/sym_keyboard_shift_locked.png
similarity index 100%
rename from res/drawable/sym_keyboard_shift_locked.png
rename to res/drawable-mdpi/sym_keyboard_shift_locked.png
diff --git a/res/drawable/sym_keyboard_space.png b/res/drawable-mdpi/sym_keyboard_space.png
similarity index 100%
rename from res/drawable/sym_keyboard_space.png
rename to res/drawable-mdpi/sym_keyboard_space.png
diff --git a/res/drawable/btn_keyboard_key.xml b/res/drawable/btn_keyboard_key.xml
new file mode 100644
index 0000000000..45578e582f
--- /dev/null
+++ b/res/drawable/btn_keyboard_key.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- Toggle keys. Use checkable/checked state. -->
+    
+    <item android:state_checkable="true" android:state_checked="true" 
+          android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_pressed_on" />
+    <item android:state_checkable="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_pressed_off" />
+    <item android:state_checkable="true" android:state_checked="true"
+          android:drawable="@drawable/btn_keyboard_key_normal_on" />
+    <item android:state_checkable="true"
+          android:drawable="@drawable/btn_keyboard_key_normal_off" />
+
+    <!-- Normal keys -->
+
+    <item android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_pressed" />
+    <item
+          android:drawable="@drawable/btn_keyboard_key_normal" />
+          
+</selector>
diff --git a/res/drawable/keyboard_suggest_strip_divider.png b/res/drawable/keyboard_suggest_strip_divider.png
deleted file mode 100644
index e54c5b099431be9853118c033e6fee440e44aa61..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 166
zcmeAS@N?(olHy`uVBq!ia0vp^OhBy00U{G$-VFv)k|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*D5XJUm?-Ln?0d^f~e|7_hKJfBb*`XD@STZt$Zdp^0}R7z7QC
zJ33Z1S*_<)pAj9ID(Y6%nD%G&tkd;!!sj`ry)J!Ta$v{V2qqqeESB;(&)M-UKr<OU
MUHx3vIVCg!0J%yx7ytkO

diff --git a/res/layout/candidates.xml b/res/layout/candidates.xml
index edd779a819..39df81dd25 100755
--- a/res/layout/candidates.xml
+++ b/res/layout/candidates.xml
@@ -50,7 +50,7 @@
     <com.android.inputmethod.latin.CandidateView
         android:id="@+id/candidates"
         android:layout_width="wrap_content"
-        android:layout_height="38dp"
+        android:layout_height="@dimen/candidate_strip_height"
         android:layout_weight="1"
         />
         
diff --git a/res/layout/input.xml b/res/layout/input.xml
index c4bcc91c3a..f2f30ca84d 100755
--- a/res/layout/input.xml
+++ b/res/layout/input.xml
@@ -24,4 +24,6 @@
         android:layout_alignParentBottom="true"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
+        android:background="@drawable/keyboard_background"
+        android:keyBackground="@drawable/btn_keyboard_key"
         />
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 45d5464b8d..29b8565bad 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ňñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"čç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Podržením klávesy zobrazíte diakritiku (ž, á atd.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Stisknutím klávesy Zpět ↶ můžete klávesnici kdykoli zavřít"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Přístup k číslům a symbolům"</string>
@@ -87,4 +88,9 @@
     <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Zavřete klávesnici"\n</b></font><font size="3">\n</font>"Stiskněte klávesu Zpět."</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Přidržením klávesy zobrazte možnosti"\n</b></font><font size="3">\n</font>"Použijte interpunkční znaménka a diakritiku."</string>
     <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Nastavení klávesnice"\n</b></font><font size="3">\n</font>"Dotkněte se klávesy "<b>"?123"</b>" a přidržte ji."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".biz"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".cz"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 60a4f5f6f9..3af5e439ae 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Hold en tast nede for at se accenter (ø, ö osv.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Tryk på tilbagetasten ↶ for når som helst at lukke for tastaturet"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"FÃ¥ adgang til tal og symboler"</string>
@@ -83,12 +84,13 @@
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"ABC"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Åbn tastaturet"\n</b></font><font size="3">\n</font>"Tryk på et hvilket som helst tekstfelt."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Luk tastaturet"\n</b></font><font size="3">\n</font>"Tryk på Tilbagetasten."</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Tryk på og hold en tast nede for valgmuligheder"\n</b></font><font size="3">\n</font>"Få adgang til tegnsætning og accenter."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Tastaturindstillinger"\n</b></font><font size="3">\n</font>"Tryk på og hold tasten "<b>"?123"</b>" nede."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index ca1dd626d8..aa52380b63 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Zur Anzeige von Umlauten (ä, ö usw.) Taste gedrückt halten"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Zum Schließen der Tastatur ↶ drücken"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Auf Zahlen und Symbole zugreifen"</string>
@@ -87,4 +88,9 @@
     <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Tastatur schließen"\n</b></font><font size="3">\n</font>"Drücken Sie die Taste \"Zurück\"."</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Eine Taste für Optionen berühren und gedrückt halten"\n</b></font><font size="3">\n</font>"Greifen Sie auf Satzzeichen und Akzente zu."</string>
     <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Tastatureinstellungen"\n</b></font><font size="3">\n</font>"Berühren und halten Sie die Taste "<b>"?123"</b>" gedrückt."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 7fe65b5e0d..173b384b35 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Κρατήστε πατημένο ένα πλήκτρο για να δείτε τους τονισμένους χαρακτήρες (ø, ö, κ.τ.λ.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Πατήστε το πλήκτρο Πίσω ↶ για να κλείσετε το πληκτρολόγιο ανά πάσα στιγμή"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Πρόσβαση σε αριθμούς και σύμβολα"</string>
@@ -83,12 +84,13 @@
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"ΑΒΓ"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Ανοίξτε το πληκτρολόγιο"\n</b></font><font size="3">\n</font>"Αγγίξτε οποιοδήποτε πεδίο κειμένου."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Κλείστε το πληκτρολόγιο"\n</b></font><font size="3">\n</font>"Πατήστε το πλήκτρο Πίσω."</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Αγγίξτε και κρατήστε ένα πλήκτρο για ορισμό επιλογών"\n</b></font><font size="3">\n</font>"Πρόσβαση στα σημεία στίξης και τονισμού."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Ρυθμίσεις πληκτρολογίου"\n</b></font><font size="3">\n</font>"Αγγίξτε και κρατήστε το πλήκτρο "<b>"?123"</b>"."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index d5964940fa..6dee06bffb 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Mantén una tecla presionada para ver los acentos (ø, ö, etc.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Pulsa la tecla hacia atrás ↶ para cerrar el teclado en cualquier momento"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Acceder a números y símbolos"</string>
@@ -83,12 +84,13 @@
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"ABC"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Abrir el teclado"\n</b></font><font size="3">\n</font>"Tocar cualquier campo de texto."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Cerrar el teclado"\n</b></font><font size="3">\n</font>"Presionar la tecla Atrás."</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Tocar &amp; y mantener presionada una tecla para las opciones"\n</b></font><font size="3">\n</font>"Acceder a puntuación y acentos."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Configuración del teclado"\n</b></font><font size="3">\n</font>"Tocar &amp; y mantener presionada la tecla "<b>"?123"</b>"."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 3873bbe8f6..faedf7e038 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Mantén pulsada una tecla para ver los caracteres acentuados (ø, ö, etc.)."</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Pulsa la tecla \"Atrás\" ↶ para cerrar el teclado en cualquier momento."</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Acceso a números y símbolos"</string>
@@ -87,4 +88,9 @@
     <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Cerrar el teclado"\n</b></font><font size="3">\n</font>"Pulsa la tecla \"Atrás\"."</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Mantén pulsada una tecla para acceder a las opciones."\n</b></font><font size="3">\n</font>"Accede a los signos de puntuación y a los acentos."</string>
     <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Configuración del teclado"\n</b></font><font size="3">\n</font>"Mantén pulsada la tecla "<b>"?123"</b>"."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 22952737be..226c4fb0b2 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Maintenir une touche enfoncée pour afficher les accents (à, é, etc.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Appuyez sur la touche Retour ↶ pour fermer le clavier à tout moment."</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Accéder aux chiffres et symboles"</string>
@@ -87,4 +88,9 @@
     <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Fermer le clavier"\n</b></font><font size="3">\n</font>"Appuyez sur la touche Retour."</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Appuyer sur une touche de manière prolongée pour accéder aux options"\n</b></font><font size="3">\n</font>"Accédez aux signes de ponctuation et aux accents."</string>
     <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Paramètres du clavier"\n</b></font><font size="3">\n</font>"Appuyez sur la touche "<b>"?123"</b>" de manière prolongée."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gouv"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index fa66568fe0..62128e4c56 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Tieni premuto un tasto per vedere le lettere con segni diacritici (ø, ö etc.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Premi il tasto Indietro ↶ per chiudere la tastiera"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Accedi a numeri e simboli"</string>
@@ -87,4 +88,9 @@
     <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Chiusura tastiera"\n</b></font><font size="3">\n</font>"Premi il tasto Indietro."</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Tocca e tieni premuto un tasto per le opzioni"\n</b></font><font size="3">\n</font>"Accesso a punteggiatura e accenti."</string>
     <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Impostazioni tastiera"\n</b></font><font size="3">\n</font>"Tocca e tieni premuto il tasto "<b>"?123"</b>"."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 6f590de5b8..d5e7f8dc89 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"キー長押しでアクセント文字を表示(ø、öなど)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"戻るキーでキーボードを閉じます"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"数字と記号"</string>
@@ -87,4 +88,9 @@
     <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"キーボードを閉じる"\n</b></font><font size="3">\n</font>"[戻る]キーを押します。"</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"キーを長押しして選択する"\n</b></font><font size="3">\n</font>"句読点キーとアクセント文字を表示します。"</string>
     <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"キーボードの設定"\n</b></font><font size="3">\n</font>"["<b>"?123"</b>"]キーを長押しします。"</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 0c3b970d0a..570780f784 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"키를 길게 누르면 악센트(ø, ö 등)가 표시됩니다."</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"키보드를 닫으려면 언제든지 뒤로 키(↶)를 누르세요."</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"숫자 및 기호 액세스"</string>
@@ -83,12 +84,13 @@
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"ABC"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"키보드 열기"\n</b></font><font size="3">\n</font>"아무 텍스트 입력란이나 터치하세요."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"키보드 닫기"\n</b></font><font size="3">\n</font>"\'뒤로\' 키를 누르세요."</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"키를 길게 터치하여 옵션 보기"\n</b></font><font size="3">\n</font>"문장 부호 및 악센트 기호에 액세스하세요."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"키보드 설정"\n</b></font><font size="3">\n</font><b>"?123"</b>" 키를 길게 터치하세요."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index c5c828ef69..43951552e5 100644
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -20,4 +20,6 @@
 
 <resources>
     <dimen name="key_height">47dip</dimen>
+    <dimen name="candidate_strip_height">38dip</dimen>
+    <dimen name="spacebar_vertical_correction">2dip</dimen>
 </resources>
\ No newline at end of file
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index fdaf0244a8..bafc613f6d 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -47,12 +47,9 @@
     <item msgid="1669461741568287396">"Grunnleggende"</item>
     <item msgid="4894328801530136615">"Avansert"</item>
   </string-array>
-    <!-- no translation found for prediction_none (2472795101338047944) -->
-    <skip />
-    <!-- no translation found for prediction_basic (8407291081834155558) -->
-    <skip />
-    <!-- no translation found for prediction_full (3765102052052510268) -->
-    <skip />
+    <string name="prediction_none" msgid="2472795101338047944">"0"</string>
+    <string name="prediction_basic" msgid="8407291081834155558">"1"</string>
+    <string name="prediction_full" msgid="3765102052052510268">"2"</string>
     <!-- no translation found for prediction_modes_values:0 (579944677836100459) -->
     <!-- no translation found for prediction_modes_values:1 (7214414132844804570) -->
     <!-- no translation found for prediction_modes_values:2 (6678546276084314171) -->
@@ -66,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Hold en tast nede for å se aksenterte tegn (ø, ö, osv.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Trykk tilbakeknappen, ↶, for å lukke tastaturet"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"FÃ¥ tilgang til tall og symboler"</string>
@@ -87,7 +85,12 @@
     <string name="label_alpha_key" msgid="8864943487292437456">"ABC"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
     <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Åpne tastaturet"\n</b></font><font size="3">\n</font>"Trykk på et tekstfelt."</string>
-    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Lukk tastaturet"\n</b></font><font size="3">\n</font>"Trykk tilbake-knappen."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Lukke tastaturet"\n</b></font><font size="3">\n</font>"Trykk på tilbaketasten."</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Trykk og hold nede en tast for flere valg"\n</b></font><font size="3">\n</font>"FÃ¥ tilgang til skilletegn og aksenter."</string>
-    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Tastaturinnstillinger"\n</b></font><font size="3">\n</font>"Trykk og hold nede "<b>"?123"</b>"-knappen."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Innstillinger for tastatur"\n</b></font><font size="3">\n</font>"Trykk på &amp; hold "<b>"?123"</b>"-tasten."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".no"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".com"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".net"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".org"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".info"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index ab42128c27..427dcf75c5 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Houd een toets ingedrukt om diakritische tekens weer te geven (ø, ö, enzovoort)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Druk op elk gewenst moment op de toets Terug ↶ om het toetsenbord te sluiten"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Toegang tot cijfers en symbolen"</string>
@@ -87,4 +88,9 @@
     <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Het toetsenbord sluiten"\n</b></font><font size="3">\n</font>"Druk op de terugtoets."</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Een toets blijven aanraken voor opties"\n</b></font><font size="3">\n</font>"Toegang tot interpunctie en diakritische tekens."</string>
     <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Toetsenbordinstellingen"\n</b></font><font size="3">\n</font>"Blijf de toets "<b>"?123"</b>" aanraken."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index bc0f7039fc..663932d38f 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"Å„"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ć"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Przytrzymaj klawisz, aby wyświetlić znaki akcentowane (ą, ó itp.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Naciśnij klawisz cofania ↶, aby zamknąć klawiaturę w dowolnym momencie"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Przejdź do cyfr i symboli"</string>
@@ -87,4 +88,9 @@
     <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Zamknij klawiaturę"\n</b></font><font size="3">\n</font>"Naciśnij klawisz Wróć."</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Dotknij klawisza i przytrzymaj go, aby wyświetlić opcje"\n</b></font><font size="3">\n</font>"Dostęp do znaków przestankowych i akcentowanych."</string>
     <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Ustawienia klawiatury"\n</b></font><font size="3">\n</font>"Dotknij klawisza "<b>"?123"</b>" i przytrzymaj go."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 2c09a18dfd..da89aeca97 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Mantenha uma tecla premida para ver os acentos (ø, ö, etc.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Prima a tecla de retrocesso ↶ para fechar o teclado a qualquer momento"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Aceder a números e símbolos"</string>
@@ -83,12 +84,13 @@
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"ABC"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Abra o teclado"\n</b></font><font size="3">\n</font>"Toque em qualquer campo de texto."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Feche o teclado"\n</b></font><font size="3">\n</font>"Prima a tecla \"Anterior\"."</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Mantenha premida uma tecla para as opções"\n</b></font><font size="3">\n</font>"Aceder a pontuação e acentos."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Definições do teclado"\n</b></font><font size="3">\n</font>"Mantenha premida a tecla "<b>"?123"</b>"."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 159f3f3df9..978215ff45 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -17,8 +17,8 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="english_ime_name" msgid="7252517407088836577">"Teclado Android"</string>
     <string name="english_ime_settings" msgid="6661589557206947774">"Configurações de teclado Android"</string>
-    <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao pressionar a tecla"</string>
-    <string name="sound_on_keypress" msgid="6093592297198243644">"Som ao pressionar a tecla"</string>
+    <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao tocar a tecla"</string>
+    <string name="sound_on_keypress" msgid="6093592297198243644">"Som ao tocar a tecla"</string>
     <string name="hit_correction" msgid="4855351009261318389">"Corrigir erros de digitação"</string>
     <string name="hit_correction_summary" msgid="8761701873008070796">"Ativar a correção de erro de entrada"</string>
     <string name="hit_correction_land" msgid="2567691684825205448">"Erros de entrada de paisagem"</string>
@@ -31,7 +31,7 @@
     <string name="auto_complete_dialog_title" msgid="2172048590607201920">"Conclusão automática"</string>
     <string name="prediction_landscape" msgid="4874601565593216183">"Aumentar o tamanho do arquivo de texto"</string>
     <string name="prediction_landscape_summary" msgid="6736551095997839472">"Ocultar sugestões de palavra na visualização da paisagem"</string>
-    <string name="auto_cap" msgid="1719746674854628252">"Capitalização automática"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"Capitaliz. automática"</string>
     <string name="auto_cap_summary" msgid="3260681697600786825">"Colocar em maiúscula o início de uma frase"</string>
     <string name="auto_punctuate" msgid="7276672334264521751">"Pontuação automática"</string>
     <!-- no translation found for auto_punctuate_summary (6589441565817502132) -->
@@ -41,7 +41,7 @@
     <string name="show_suggestions" msgid="507074425254289133">"Mostrar sugestões"</string>
     <string name="show_suggestions_summary" msgid="1989672863935759654">"Exibir sugestões de palavras durante a digitação"</string>
     <string name="auto_complete" msgid="1103196318775486023">"Conclusão automática"</string>
-    <string name="auto_complete_summary" msgid="6113149638718274624">"A barra de espaço e pontuação inserem automaticamente a palavra destacada"</string>
+    <string name="auto_complete_summary" msgid="6113149638718274624">"Barra de espaço e pontuação inserem a palavra destacada"</string>
   <string-array name="prediction_modes">
     <item msgid="4870266572388153286">"Nenhum"</item>
     <item msgid="1669461741568287396">"Básico"</item>
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Segure uma tecla pressionada para ver os acentos (ø, ö, etc.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Apertar a tecla voltar ↶ para fechar o teclado, em qualquer ponto"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Acessar números e símbolos"</string>
@@ -76,19 +77,20 @@
     <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Tocar e segurar esta tecla para alterar as configurações do teclado, como a conclusão automática"</b></string>
     <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Experimente!"</b></string>
     <string name="label_go_key" msgid="1635148082137219148">"Ir"</string>
-    <string name="label_next_key" msgid="362972844525672568">"Próximo"</string>
+    <string name="label_next_key" msgid="362972844525672568">"Avançar"</string>
     <string name="label_done_key" msgid="2441578748772529288">"Feito"</string>
     <string name="label_send_key" msgid="2815056534433717444">"Enviar"</string>
     <string name="label_symbol_key" msgid="6175820506864489453">"?123"</string>
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"ABC"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Abra o teclado"\n</b></font><font size="3">\n</font>"Toque em qualquer campo de texto."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Feche o teclado"\n</b></font><font size="3">\n</font>"Pressione a tecla Voltar."</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Toque e mantenha pressionada uma tecla para ver as opções"\n</b></font><font size="3">\n</font>"Acesse a pontuação e as pronúncias."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Configurações de teclado"\n</b></font><font size="3">\n</font>"Toque e mantenha pressionada a tecla "<b>"?123"</b>"."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index eebe1771b7..25c5d341f9 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Удерживайте клавишу, чтобы увидеть варианты с диакритическими знаками (ø, ö и т.д.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Нажмите клавишу \"Назад\" ↶, чтобы закрыть клавиатуру в любой момент"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Открыть цифры и символы"</string>
@@ -83,12 +84,13 @@
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"АБВ"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Откройте клавиатуру"\n</b></font><font size="3">\n</font>"Нажмите на любое текстовое поле."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Закрытие клавиатуры"\n</b></font><font size="3">\n</font>"Нажмите клавишу \"Назад\"."</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Нажмите и удерживайте клавишу для вызова параметров"\n</b></font><font size="3">\n</font>"Доступ к пунктуационным и диакритическим знакам."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Настройки клавиатуры"\n</b></font><font size="3">\n</font>"Нажмите и удерживайте клавишу "<b>"?123"</b>"."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 994d17189b..38fdaf20b7 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Håll nere en tangent om du vill visa accenter (ø, ö, etc.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Tryck på Tillbaka ↶ om du vill stänga tangentbordet"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"För siffror och symboler"</string>
@@ -83,12 +84,13 @@
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"ABC"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Öppna tangentbordet"\n</b></font><font size="3">\n</font>"Tryck på ett textfält."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Stäng tangentbordet"\n</b></font><font size="3">\n</font>"Tryck på Tillbaka."</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Tryck länge på en tangent om du vill se alternativ"\n</b></font><font size="3">\n</font>"Använda skiljetecken och accenter."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Tangentbordsinställningar"\n</b></font><font size="3">\n</font>"Tryck länge på tangenten "<b>"?123"</b>"."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-tr/donottranslate.xml b/res/values-tr/donottranslate.xml
new file mode 100644
index 0000000000..f206e4c438
--- /dev/null
+++ b/res/values-tr/donottranslate.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2009, 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Accented characters related to "g" -->
+    <string name="alternates_for_g">ÄŸ</string>
+</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 33b8b79d4b..fe5ee893bf 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -31,7 +31,7 @@
     <string name="auto_complete_dialog_title" msgid="2172048590607201920">"Otomatik tamamlama"</string>
     <string name="prediction_landscape" msgid="4874601565593216183">"Metin alanı boyutunu artır"</string>
     <string name="prediction_landscape_summary" msgid="6736551095997839472">"Yatay görünümde kelime önerilerini gizle"</string>
-    <string name="auto_cap" msgid="1719746674854628252">"Ot. olarak büyük harf yap"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"Otomatik olarak büyük harf yap"</string>
     <string name="auto_cap_summary" msgid="3260681697600786825">"Cümlenin baş harfini büyük yap"</string>
     <string name="auto_punctuate" msgid="7276672334264521751">"Otomatik noktalama"</string>
     <!-- no translation found for auto_punctuate_summary (6589441565817502132) -->
@@ -56,13 +56,14 @@
     <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Kaydedildi"</string>
     <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
     <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
-    <string name="alternates_for_i" msgid="7097915268629342242">"ıìíîï"</string>
+    <string name="alternates_for_i" msgid="7097915268629342242">"iìíîï"</string>
     <string name="alternates_for_o" msgid="6151402748321267776">"öòóôõœø"</string>
     <string name="alternates_for_u" msgid="5899096818189442934">"üùúû"</string>
     <string name="alternates_for_s" msgid="348762530927662188">"ş§ß"</string>
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"Vurguları görmek için bir tuşu basılı tutun (ø, ö, v.b.)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"Klavyeyi herhangi bir anda kapatmak için geri tuşuna ↶ basın"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"Sayılara ve simgelere erişin"</string>
@@ -83,12 +84,13 @@
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"ABC"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Klavyeyi açın"\n</b></font><font size="3">\n</font>"Herhangi bir metin alanına dokunun."</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Klavyeyi kapatın"\n</b></font><font size="3">\n</font>"Geri tuşuna basın."</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Seçenekler için bir tuşa dokunun ve basılı tutun"\n</b></font><font size="3">\n</font>"Noktalama ve vurgulama işaretlerine erişin."</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Klavye ayarları"\n</b></font><font size="3">\n</font><b>"?123"</b>" tuşuna dokunun ve basılı tutun."</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 720d30fae5..c68b795c97 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -63,17 +63,18 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
-    <string name="tip_long_press" msgid="6101270866284343344">"长按键可以查看重音符号(ø、ö 等)"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
+    <string name="tip_long_press" msgid="6101270866284343344">"长按某些键可看到重音符号(例如 ø、ö 等)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"随时可以通过按后退键 ↶ 关闭键盘"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"访问数字和符号"</string>
-    <string name="tip_add_to_dictionary" msgid="1487293888469227817">"按住最左侧的字词可以将其添加到字典中"</string>
+    <string name="tip_add_to_dictionary" msgid="1487293888469227817">"长按最左侧的字可将其添加到词典中"</string>
     <string name="touch_to_continue" msgid="7869803257948414531">"轻触此提示继续 »"</string>
     <string name="touch_to_finish" msgid="7990196086480585789">"轻触此处可关闭该提示,然后便可开始输入内容!"</string>
     <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"轻触文本字段即可打开键盘"</b></string>
-    <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"轻触并按住某个键可以查看重音符号"\n"(?, ?, ?, ó 等)"</b></string>
+    <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"长按某些键可看到重音符号"\n"(例如 ø、ö、ô、ó 等)"</b></string>
     <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"轻触该键可切换到数字和符号输入模式"</b></string>
     <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"再次轻触该键可返回字母输入模式"</b></string>
-    <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"轻触并按住该键可以更改键盘设置,例如自动输入"</b></string>
+    <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"长按该键可更改键盘设置,例如自动输入"</b></string>
     <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"试试吧!"</b></string>
     <string name="label_go_key" msgid="1635148082137219148">"开始"</string>
     <string name="label_next_key" msgid="362972844525672568">"下一步"</string>
@@ -83,12 +84,13 @@
     <string name="label_phone_key" msgid="4275497665515080551">"123"</string>
     <string name="label_alpha_key" msgid="8864943487292437456">"ABC"</string>
     <string name="label_alt_key" msgid="2846315350346694811">"ALT"</string>
-    <!-- no translation found for open_the_keyboard (2215920976029260466) -->
-    <skip />
-    <!-- no translation found for close_the_keyboard (6251022259044940103) -->
-    <skip />
-    <!-- no translation found for touch_and_hold (6154166367273010534) -->
-    <skip />
-    <!-- no translation found for keyboard_settings (4585753477617374032) -->
-    <skip />
+    <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"打开键盘"\n</b></font><font size="3">\n</font>"轻触任意文本字段。"</string>
+    <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"关闭键盘"\n</b></font><font size="3">\n</font>"按“返回”键。"</string>
+    <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"长按某些键可开启其他字符选项"\n</b></font><font size="3">\n</font>"访问标点和重音符号。"</string>
+    <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"键盘设置"\n</b></font><font size="3">\n</font>"长按 "<b>"?123"</b>" 键。"</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 69d82cca3f..8d93b311ae 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -63,6 +63,7 @@
     <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
     <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
     <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
+    <string name="key_i" msgid="6483655742552255124">"i"</string>
     <string name="tip_long_press" msgid="6101270866284343344">"按住按鍵可查看重音符號 (ø、ö 等)"</string>
     <string name="tip_dismiss" msgid="7585579046862204381">"隨時可以透過按後退鍵 ↶ 關閉鍵盤"</string>
     <string name="tip_access_symbols" msgid="6344098517525531652">"使用數字和符號"</string>
@@ -87,4 +88,9 @@
     <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"關閉鍵盤"\n</b></font><font size="3">\n</font>"按下 Back 鍵。"</string>
     <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>\n"輕觸並按住按鍵開啟選項"</b></font><font size="3">\n</font>"輸入標點與輕重音。"</string>
     <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"鍵盤設定"\n</b></font><font size="3">\n</font>"輕觸並按住 "<b>"?123"</b>" 鍵。"</string>
+    <string name="popular_domain_0" msgid="3745279225122472969">".com"</string>
+    <string name="popular_domain_1" msgid="1370572248164278467">".net"</string>
+    <string name="popular_domain_2" msgid="3036812463748402878">".org"</string>
+    <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string>
+    <string name="popular_domain_4" msgid="35359437471311470">".edu"</string>
 </resources>
diff --git a/res/values/bools.xml b/res/values/bools.xml
index 06aa8f308c..3a951b2719 100644
--- a/res/values/bools.xml
+++ b/res/values/bools.xml
@@ -19,7 +19,7 @@
 -->
 <resources>
     <!-- Whether or not auto-correction should be enabled by default -->
-    <bool name="enable_autocorrect">false</bool>
+    <bool name="enable_autocorrect">true</bool>
     <!-- Whether this input method should be used as the default for a locale. Override it
          for latin languages. -->
     <bool name="im_is_default">false</bool>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index d757f096d7..5b2095c0e5 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -19,6 +19,8 @@
 -->
 
 <resources>
-    <dimen name="key_height">50dip</dimen>
+    <dimen name="key_height">54dip</dimen>
     <dimen name="bubble_pointer_offset">22dip</dimen>
+    <dimen name="candidate_strip_height">42dip</dimen>
+    <dimen name="spacebar_vertical_correction">4dip</dimen>
 </resources>
\ No newline at end of file
diff --git a/res/values/donottranslate.xml b/res/values/donottranslate.xml
index d9649f3b19..c6941949ed 100644
--- a/res/values/donottranslate.xml
+++ b/res/values/donottranslate.xml
@@ -32,4 +32,6 @@
     <string name="alternates_for_z"></string>
     <!-- Accented characters related to "l" -->
     <string name="alternates_for_l"></string>
+    <!-- Accented characters related to "g" -->
+    <string name="alternates_for_g"></string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2cd996c2ed..ec9a8b731c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -125,7 +125,10 @@
     <string name="alternates_for_c">ç</string>
     <!-- Accented forms of "y" -->
     <string name="alternates_for_y">ýÿ</string>
-    
+
+    <!-- Label to display on the "i" key -->
+    <string name="key_i">i</string>
+ 
     <!-- Tip to long press on keys -->
     <string name="tip_long_press">Hold a key down to see accents (ø, ö, etc.)</string>
     <!-- Tip to dismiss keyboard -->
@@ -191,4 +194,15 @@
 
     <!-- appears above image showing how to access keyboard settings -->
     <string name="keyboard_settings"><font size="17"><b>Keyboard settings\n</b></font><font size="3">\n</font>Touch \u0026 hold the <b>\?123\</b> key.</string>
+    
+    <!-- popular web domains for the locale - most popular, displayed on the keyboard -->
+    <string name="popular_domain_0">".com"</string>
+    <!-- popular web domains for the locale - item 1, displayed in the popup -->
+    <string name="popular_domain_1">".net"</string>
+    <!-- popular web domains for the locale - item 2, displayed in the popup -->
+    <string name="popular_domain_2">".org"</string>
+    <!-- popular web domains for the locale - item 3, displayed in the popup -->
+    <string name="popular_domain_3">".gov"</string>
+    <!-- popular web domains for the locale - item 4, displayed in the popup -->
+    <string name="popular_domain_4">".edu"</string>
 </resources>
diff --git a/res/xml-de/kbd_qwerty.xml b/res/xml-de/kbd_qwerty.xml
index 763492db5a..56113e217c 100755
--- a/res/xml-de/kbd_qwerty.xml
+++ b/res/xml-de/kbd_qwerty.xml
@@ -69,7 +69,7 @@
     </Row>
     
     <Row>
-        <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift" 
+        <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
                 android:keyWidth="15%p" android:isModifier="true"
                 android:iconPreview="@drawable/sym_keyboard_feedback_shift"
                 android:isSticky="true" android:keyEdgeFlags="left"/>
@@ -89,43 +89,44 @@
                 android:popupCharacters="@string/alternates_for_n"
         />
         <Key android:codes="109" android:keyLabel="m"/>
-        <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" 
+        <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
                 android:keyWidth="15%p" android:keyEdgeFlags="right" 
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
                 android:isRepeatable="true"/>
     </Row>
     
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p" />
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
+        <Key android:keyLabel="," android:keyWidth="10%p" />
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
+                android:keyWidth="40%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="15%p"/>
-        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" 
+                android:keyWidth="10%p"/>
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel=".com" android:keyOutputText=".com"
+        <Key android:keyLabel="@string/popular_domain_0"
+                android:keyOutputText="@string/popular_domain_0"
                 android:popupKeyboard="@xml/popup_domains"
                 android:keyWidth="15%p"/>
         <Key android:keyLabel="/" android:keyWidth="15%p"/>
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="15%p" android:isRepeatable="true"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="15%p"/>
-        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" 
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
     </Row>
@@ -133,35 +134,37 @@
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p" />
         <Key android:keyLabel="\@" android:keyWidth="15%p"/>
+        <Key android:keyLabel="@string/popular_domain_0"
+                android:keyOutputText="@string/popular_domain_0"
+                android:popupKeyboard="@xml/popup_domains"
+                android:keyWidth="15%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="15%p" android:isRepeatable="true"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="15%p"/>
-        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" 
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p"/>
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
+        <Key android:keyLabel="," android:keyWidth="10%p"/>
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
+                android:keyWidth="40%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="15%p"/>
+                android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
 
     </Row>
 </Keyboard>
-    
\ No newline at end of file
diff --git a/res/xml-fr/kbd_qwerty.xml b/res/xml-fr/kbd_qwerty.xml
index 573f08a3b1..d47042ea70 100644
--- a/res/xml-fr/kbd_qwerty.xml
+++ b/res/xml-fr/kbd_qwerty.xml
@@ -102,12 +102,12 @@
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters=""
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p" />
+        <Key android:keyLabel="," android:keyWidth="10%p" />
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
+                android:keyWidth="40%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="15%p"/>
+                android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" 
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
@@ -118,7 +118,8 @@
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters=""
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel=".com" android:keyOutputText=".com"
+        <Key android:keyLabel="@string/popular_domain_0"
+                android:keyOutputText="@string/popular_domain_0"
                 android:popupKeyboard="@xml/popup_domains"
                 android:keyWidth="15%p"/>
         <Key android:keyLabel="/" android:keyWidth="15%p"/>
@@ -137,29 +138,32 @@
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters=""
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p" />
         <Key android:keyLabel="\@" android:keyWidth="15%p"/>
+        <Key android:keyLabel="@string/popular_domain_0"
+                android:keyOutputText="@string/popular_domain_0"
+                android:popupKeyboard="@xml/popup_domains"
+                android:keyWidth="15%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="15%p" android:isRepeatable="true"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="15%p"/>
-        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" 
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters=""
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p"/>
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
+        <Key android:keyLabel="," android:keyWidth="10%p"/>
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
-        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="15%p"/>
+                android:keyWidth="40%p" android:isRepeatable="true"/>
+        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
diff --git a/res/xml/kbd_phone.xml b/res/xml/kbd_phone.xml
index 880d9613af..d2bcdac522 100755
--- a/res/xml/kbd_phone.xml
+++ b/res/xml/kbd_phone.xml
@@ -51,7 +51,7 @@
     <Row android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyIcon="@drawable/sym_keyboard_numalt"
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:iconPreview="@drawable/sym_keyboard_feedback_numalt"/>
 
         <Key android:codes="48" android:keyIcon="@drawable/sym_keyboard_num0"/>
diff --git a/res/xml/kbd_phone_symbols.xml b/res/xml/kbd_phone_symbols.xml
index 9ce7a1a1f5..9604664fa8 100755
--- a/res/xml/kbd_phone_symbols.xml
+++ b/res/xml/kbd_phone_symbols.xml
@@ -44,8 +44,8 @@
     <Row>
         <Key android:codes="42" android:keyIcon="@drawable/sym_keyboard_numstar"
                 android:keyEdgeFlags="left"/>
-        <!-- Wait is w -->
-        <Key android:codes="w" android:keyLabel="Wait"/>
+        <!-- Wait is a semicolon. -->
+        <Key android:codes="59" android:keyLabel="Wait"/>
         <Key android:codes="35" android:keyIcon="@drawable/sym_keyboard_numpound"/>
         <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" 
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
@@ -55,6 +55,8 @@
     
     <Row android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_phone_key" 
+                android:popupKeyboard="@xml/kbd_popup_template"
+                android:popupCharacters="_"
                 android:keyEdgeFlags="left"/>
         <Key android:keyLabel="+"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
diff --git a/res/xml/kbd_qwerty.xml b/res/xml/kbd_qwerty.xml
index fb8c574e4d..0493b99328 100755
--- a/res/xml/kbd_qwerty.xml
+++ b/res/xml/kbd_qwerty.xml
@@ -46,7 +46,7 @@
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters="@string/alternates_for_u"
         />
-        <Key android:codes="105" android:keyLabel="i"
+        <Key android:keyLabel="@string/key_i"
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters="@string/alternates_for_i"
         />
@@ -70,7 +70,10 @@
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters="@string/alternates_for_d"/>
         <Key android:codes="102" android:keyLabel="f"/>
-        <Key android:codes="103" android:keyLabel="g"/>
+        <Key android:codes="103" android:keyLabel="g"
+                android:popupKeyboard="@xml/kbd_popup_template"
+                android:popupCharacters="@string/alternates_for_g"/>
+        />
         <Key android:codes="104" android:keyLabel="h"/>
         <Key android:codes="106" android:keyLabel="j"/>
         <Key android:codes="107" android:keyLabel="k"/>
@@ -100,8 +103,8 @@
                 android:popupCharacters="@string/alternates_for_n"
         />
         <Key android:codes="109" android:keyLabel="m"/>
-        <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" 
-                android:keyWidth="15%p" android:keyEdgeFlags="right" 
+        <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
+                android:keyWidth="15%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
                 android:isRepeatable="true"/>
     </Row>
@@ -109,69 +112,73 @@
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p" />
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
+        <Key android:keyLabel="," android:keyWidth="10%p" />
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
+                android:keyWidth="40%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="15%p"/>
-        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" 
+                android:keyWidth="10%p"/>
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel=".com" android:keyOutputText=".com"
+        <Key android:keyLabel="@string/popular_domain_0"
+                android:keyOutputText="@string/popular_domain_0"
                 android:popupKeyboard="@xml/popup_domains"
                 android:keyWidth="15%p"/>
         <Key android:keyLabel="/" android:keyWidth="15%p"/>
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="15%p" android:isRepeatable="true"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="15%p"/>
-        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" 
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p" />
         <Key android:keyLabel="\@" android:keyWidth="15%p"/>
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
+        <Key android:keyLabel="@string/popular_domain_0"
+                android:keyOutputText="@string/popular_domain_0"
+                android:popupKeyboard="@xml/popup_domains"
+                android:keyWidth="15%p"/>
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="15%p" android:isRepeatable="true"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="15%p"/>
-        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" 
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p"/>
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" 
+        <Key android:keyLabel="," android:keyWidth="10%p"/>
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
+                android:keyWidth="40%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="15%p"/>
+                android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
                 android:keyWidth="20%p" android:keyEdgeFlags="right"/>
     </Row>
 </Keyboard>
-    
\ No newline at end of file
+    
diff --git a/res/xml/kbd_symbols.xml b/res/xml/kbd_symbols.xml
index 2a150397b0..f3b8833dcf 100755
--- a/res/xml/kbd_symbols.xml
+++ b/res/xml/kbd_symbols.xml
@@ -94,10 +94,10 @@
     </Row>
     
     <Row>
-        <Key android:codes="-1" android:keyLabel="@string/label_alt_key" 
-                android:keyWidth="15%p" android:isModifier="true" 
+        <Key android:codes="-1" android:keyLabel="@string/label_alt_key"
+                android:keyWidth="15%p" android:isModifier="true"
                 android:isSticky="true" android:keyEdgeFlags="left"/>
-        <Key android:codes="33" android:keyLabel="!" 
+        <Key android:codes="33" android:keyLabel="!"
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters="¡"
         />
@@ -119,18 +119,19 @@
     </Row>
     
     <Row  android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_alpha_key" 
+        <Key android:codes="-2" android:keyLabel="@string/label_alpha_key"
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="," android:keyWidth="15%p" 
+        <Key android:keyLabel="," android:keyWidth="10%p"
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters="‚„"
         />
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:keyWidth="30%p" 
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
+                android:keyWidth="40%p"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:isRepeatable="true"/>
-        <Key android:keyLabel="." android:keyWidth="15%p" />
+        <Key android:keyLabel="." android:keyWidth="10%p" />
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="20%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 />
diff --git a/res/xml/kbd_symbols_shift.xml b/res/xml/kbd_symbols_shift.xml
index 6a472a412f..56428a3ade 100755
--- a/res/xml/kbd_symbols_shift.xml
+++ b/res/xml/kbd_symbols_shift.xml
@@ -55,7 +55,7 @@
     </Row>
     
     <Row>
-        <Key android:codes="-1" android:keyLabel="@string/label_alt_key" 
+        <Key android:codes="-1" android:keyLabel="@string/label_alt_key"
                 android:keyWidth="15%p" android:isModifier="true"
                 android:isSticky="true" android:keyEdgeFlags="left"/>
         <Key android:keyLabel="â„¢"/>
@@ -79,14 +79,16 @@
     <Row android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_alpha_key" android:keyWidth="20%p"
                 android:popupKeyboard="@xml/kbd_popup_template"
-                android:popupCharacters=""
+                android:popupCharacters="_"
                 android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="„" android:keyWidth="15%p" />
-        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:keyWidth="30%p" 
+        <Key android:keyLabel="„" android:keyWidth="10%p" />
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
+                android:keyWidth="40%p"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:isRepeatable="true"/>
-        <Key android:keyLabel="…" android:keyWidth="15%p" />
-        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="20%p" android:keyEdgeFlags="right"
+        <Key android:keyLabel="…" android:keyWidth="10%p" />
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
+                android:keyWidth="20%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 />
     </Row>
diff --git a/res/xml/popup_domains.xml b/res/xml/popup_domains.xml
index 5c86386d5d..b733fe24ff 100644
--- a/res/xml/popup_domains.xml
+++ b/res/xml/popup_domains.xml
@@ -26,9 +26,13 @@
     >
 
     <Row android:rowEdgeFlags="top|bottom">
-        <Key android:keyLabel=".net" android:keyOutputText=".net" android:keyEdgeFlags="left" />
-        <Key android:keyLabel=".org" android:keyOutputText=".org"/>
-        <Key android:keyLabel=".gov" android:keyOutputText=".gov"/>
-        <Key android:keyLabel=".tv" android:keyOutputText=".tv" android:keyEdgeFlags="right" />
+        <Key android:keyLabel="@string/popular_domain_1"
+            android:keyOutputText="@string/popular_domain_1" android:keyEdgeFlags="left" />
+        <Key android:keyLabel="@string/popular_domain_2"
+            android:keyOutputText="@string/popular_domain_2"/>
+        <Key android:keyLabel="@string/popular_domain_3"
+            android:keyOutputText="@string/popular_domain_3"/>
+        <Key android:keyLabel="@string/popular_domain_4"
+            android:keyOutputText="@string/popular_domain_4" android:keyEdgeFlags="right" />
     </Row>
 </Keyboard>
diff --git a/res/xml/popup_punctuation.xml b/res/xml/popup_punctuation.xml
index 9d4575db61..7f9f611291 100644
--- a/res/xml/popup_punctuation.xml
+++ b/res/xml/popup_punctuation.xml
@@ -25,7 +25,16 @@
     android:keyHeight="@dimen/key_height"
     >
 
-    <Row android:rowEdgeFlags="top|bottom">
+    <Row android:rowEdgeFlags="top">
+        <Key android:keyLabel=";" android:keyEdgeFlags="left" />
+        <Key android:keyLabel="\\" />
+        <Key android:keyLabel="&amp;" />
+        <Key android:keyLabel="(" />
+        <Key android:keyLabel=")" />
+        <Key android:keyLabel="-" />
+        <Key android:keyLabel="+" android:keyEdgeFlags="right" />
+    </Row>
+    <Row android:rowEdgeFlags="bottom">
         <Key android:codes="58" android:keyLabel=":" android:keyEdgeFlags="left" />
         <Key android:codes="47" android:keyLabel="/" />
         <Key android:codes="64" android:keyLabel="\@" />
diff --git a/src/com/android/inputmethod/latin/BinaryDictionary.java b/src/com/android/inputmethod/latin/BinaryDictionary.java
index bb4f1ba463..e7470a8fc9 100644
--- a/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -32,6 +32,7 @@ public class BinaryDictionary extends Dictionary {
     private static final int MAX_WORDS = 16;
 
     private static final int TYPED_LETTER_MULTIPLIER = 2;
+    private static final boolean ENABLE_MISSED_CHARACTERS = true;
 
     private int mNativeDict;
     private int[] mInputCodes = new int[MAX_WORD_LENGTH * MAX_ALTERNATIVES];
@@ -64,9 +65,7 @@ public class BinaryDictionary extends Dictionary {
     private native boolean isValidWordNative(int nativeData, char[] word, int wordLength);
     private native int getSuggestionsNative(int dict, int[] inputCodes, int codesSize, 
             char[] outputChars, int[] frequencies,
-            int maxWordLength, int maxWords, int maxAlternatives);
-    private native void setParamsNative(int typedLetterMultiplier,
-            int fullWordMultiplier);
+            int maxWordLength, int maxWords, int maxAlternatives, int skipPos);
 
     private final void loadDictionary(Context context, int resId) {
         AssetManager am = context.getResources().getAssets();
@@ -88,9 +87,25 @@ public class BinaryDictionary extends Dictionary {
                     Math.min(alternatives.length, MAX_ALTERNATIVES));
         }
         Arrays.fill(mOutputChars, (char) 0);
-
-        int count = getSuggestionsNative(mNativeDict, mInputCodes, codesSize, mOutputChars, mFrequencies,
-                MAX_WORD_LENGTH, MAX_WORDS, MAX_ALTERNATIVES);
+        Arrays.fill(mFrequencies, 0);
+
+        int count = getSuggestionsNative(mNativeDict, mInputCodes, codesSize,
+                mOutputChars, mFrequencies,
+                MAX_WORD_LENGTH, MAX_WORDS, MAX_ALTERNATIVES, -1);
+
+        // If there aren't sufficient suggestions, search for words by allowing wild cards at
+        // the different character positions. This feature is not ready for prime-time as we need
+        // to figure out the best ranking for such words compared to proximity corrections and
+        // completions.
+        if (ENABLE_MISSED_CHARACTERS && count < 5) {
+            for (int skip = 0; skip < codesSize; skip++) {
+                int tempCount = getSuggestionsNative(mNativeDict, mInputCodes, codesSize,
+                        mOutputChars, mFrequencies,
+                        MAX_WORD_LENGTH, MAX_WORDS, MAX_ALTERNATIVES, skip);
+                count = Math.max(count, tempCount);
+                if (tempCount > 0) break;
+            }
+        }
 
         for (int j = 0; j < count; j++) {
             if (mFrequencies[j] < 1) break;
@@ -111,7 +126,7 @@ public class BinaryDictionary extends Dictionary {
         char[] chars = word.toString().toLowerCase().toCharArray();
         return isValidWordNative(mNativeDict, chars, chars.length);
     }
-    
+
     public synchronized void close() {
         if (mNativeDict != 0) {
             closeNative(mNativeDict);
diff --git a/src/com/android/inputmethod/latin/ContactsDictionary.java b/src/com/android/inputmethod/latin/ContactsDictionary.java
new file mode 100644
index 0000000000..6f7f4b6a4e
--- /dev/null
+++ b/src/com/android/inputmethod/latin/ContactsDictionary.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2009 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.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.provider.ContactsContract.Contacts;
+
+public class ContactsDictionary extends ExpandableDictionary {
+
+    private static final String[] PROJECTION = {
+        Contacts._ID,
+        Contacts.DISPLAY_NAME,
+    };
+
+    private static final int INDEX_NAME = 1;
+
+    private ContentObserver mObserver;
+
+    private boolean mRequiresReload;
+
+    private long mLastLoadedContacts;
+
+    public ContactsDictionary(Context context) {
+        super(context);
+        // Perform a managed query. The Activity will handle closing and requerying the cursor
+        // when needed.
+        ContentResolver cres = context.getContentResolver();
+
+        cres.registerContentObserver(Contacts.CONTENT_URI, true, mObserver = new ContentObserver(null) {
+            @Override
+            public void onChange(boolean self) {
+                mRequiresReload = true;
+            }
+        });
+
+        loadDictionary();
+    }
+
+    public synchronized void close() {
+        if (mObserver != null) {
+            getContext().getContentResolver().unregisterContentObserver(mObserver);
+            mObserver = null;
+        }
+    }
+
+    private synchronized void loadDictionary() {
+        long now = android.os.SystemClock.uptimeMillis();
+        if (mLastLoadedContacts == 0
+                || now - mLastLoadedContacts > 30 * 60 * 1000 /* 30 minutes */) {
+            Cursor cursor = getContext().getContentResolver()
+                    .query(Contacts.CONTENT_URI, PROJECTION, null, null, null);
+            if (cursor != null) {
+                addWords(cursor);
+            }
+            mRequiresReload = false;
+            mLastLoadedContacts = now;
+        }
+    }
+
+    @Override
+    public synchronized void getWords(final WordComposer codes, final WordCallback callback) {
+        if (mRequiresReload) loadDictionary();
+        super.getWords(codes, callback);
+    }
+
+    @Override
+    public synchronized boolean isValidWord(CharSequence word) {
+        if (mRequiresReload) loadDictionary();
+        return super.isValidWord(word);
+    }
+
+    private void addWords(Cursor cursor) {
+        clearDictionary();
+
+        final int maxWordLength = getMaxWordLength();
+        if (cursor.moveToFirst()) {
+            while (!cursor.isAfterLast()) {
+                String name = cursor.getString(INDEX_NAME);
+
+                if (name != null) {
+                    int len = name.length();
+
+                    // TODO: Better tokenization for non-Latin writing systems
+                    for (int i = 0; i < len; i++) {
+                        if (Character.isLetter(name.charAt(i))) {
+                            int j;
+                            for (j = i + 1; j < len; j++) {
+                                char c = name.charAt(j);
+
+                                if (!(c == '-' || c == '\'' ||
+                                      Character.isLetter(c))) {
+                                    break;
+                                }
+                            }
+
+                            String word = name.substring(i, j);
+                            i = j - 1;
+
+                            // Safeguard against adding really long words. Stack
+                            // may overflow due to recursion
+                            if (word.length() < maxWordLength) {
+                                super.addWord(word, 128);
+                            }
+                        }
+                    }
+                }
+
+                cursor.moveToNext();
+            }
+        }
+        cursor.close();
+    }
+}
diff --git a/src/com/android/inputmethod/latin/ExpandableDictionary.java b/src/com/android/inputmethod/latin/ExpandableDictionary.java
new file mode 100644
index 0000000000..a136ee7f42
--- /dev/null
+++ b/src/com/android/inputmethod/latin/ExpandableDictionary.java
@@ -0,0 +1,457 @@
+/*
+ * Copyright (C) 2009 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;
+
+/**
+ * Base class for an in-memory dictionary that can grow dynamically and can
+ * be searched for suggestions and valid words.
+ */
+public class ExpandableDictionary extends Dictionary {
+    private Context mContext;
+    private char[] mWordBuilder = new char[MAX_WORD_LENGTH];
+    private int mMaxDepth;
+    private int mInputLength;
+
+    public static final int MAX_WORD_LENGTH = 32;
+    private static final char QUOTE = '\'';
+
+    static class Node {
+        char code;
+        int frequency;
+        boolean terminal;
+        NodeArray children;
+    }
+
+    static class NodeArray {
+        Node[] data;
+        int length = 0;
+        private static final int INCREMENT = 2;
+
+        NodeArray() {
+            data = new Node[INCREMENT];
+        }
+
+        void add(Node n) {
+            if (length + 1 > data.length) {
+                Node[] tempData = new Node[length + INCREMENT];
+                if (length > 0) {
+                    System.arraycopy(data, 0, tempData, 0, length);
+                }
+                data = tempData;
+            }
+            data[length++] = n;
+        }
+    }
+
+    private NodeArray mRoots;
+
+    private int[][] mCodes;
+
+    ExpandableDictionary(Context context) {
+        mContext = context;
+        clearDictionary();
+        mCodes = new int[MAX_WORD_LENGTH][];
+    }
+
+    Context getContext() {
+        return mContext;
+    }
+    
+    int getMaxWordLength() {
+        return MAX_WORD_LENGTH;
+    }
+
+    public void addWord(String word, int frequency) {
+        addWordRec(mRoots, word, 0, frequency);
+    }
+
+    private void addWordRec(NodeArray children, final String word,
+            final int depth, final int frequency) {
+        
+        final int wordLength = word.length();
+        final char c = word.charAt(depth);
+        // Does children have the current character?
+        final int childrenLength = children.length;
+        Node childNode = null;
+        boolean found = false;
+        for (int i = 0; i < childrenLength; i++) {
+            childNode = children.data[i];
+            if (childNode.code == c) {
+                found = true;
+                break;
+            }
+        }
+        if (!found) {
+            childNode = new Node();
+            childNode.code = c;
+            children.add(childNode);
+        }
+        if (wordLength == depth + 1) {
+            // Terminate this word
+            childNode.terminal = true;
+            childNode.frequency += frequency; // If there are multiple similar words
+            if (childNode.frequency > 256) childNode.frequency = 256;
+            return;
+        }
+        if (childNode.children == null) {
+            childNode.children = new NodeArray();
+        }
+        addWordRec(childNode.children, word, depth + 1, frequency);
+    }
+
+    @Override
+    public void getWords(final WordComposer codes, final WordCallback callback) {
+        mInputLength = codes.size();
+        if (mCodes.length < mInputLength) mCodes = new int[mInputLength][];
+        // Cache the codes so that we don't have to lookup an array list
+        for (int i = 0; i < mInputLength; i++) {
+            mCodes[i] = codes.getCodesAt(i);
+        }
+        mMaxDepth = mInputLength * 3;
+        getWordsRec(mRoots, codes, mWordBuilder, 0, false, 1, 0, -1, callback);
+        for (int i = 0; i < mInputLength; i++) {
+            getWordsRec(mRoots, codes, mWordBuilder, 0, false, 1, 0, i, callback);
+        }
+    }
+
+    @Override
+    public synchronized boolean isValidWord(CharSequence word) {
+        final int freq = getWordFrequencyRec(mRoots, word, 0, word.length());
+        return freq > -1;
+    }
+
+    /**
+     * Returns the word's frequency or -1 if not found
+     */
+    public int getWordFrequency(CharSequence word) {
+        return getWordFrequencyRec(mRoots, word, 0, word.length());
+    }
+
+    /**
+     * Returns the word's frequency or -1 if not found
+     */
+    private int getWordFrequencyRec(final NodeArray children, final CharSequence word, 
+            final int offset, final int length) {
+        final int count = children.length;
+        char currentChar = word.charAt(offset);
+        for (int j = 0; j < count; j++) {
+            final Node node = children.data[j];
+            if (node.code == currentChar) {
+                if (offset == length - 1) {
+                    if (node.terminal) {
+                        return node.frequency;
+                    }
+                } else {
+                    if (node.children != null) {
+                        int freq = getWordFrequencyRec(node.children, word, offset + 1, length);
+                        if (freq > -1) return freq;
+                    }
+                }
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * Recursively traverse the tree for words that match the input. Input consists of
+     * a list of arrays. Each item in the list is one input character position. An input
+     * character is actually an array of multiple possible candidates. This function is not
+     * optimized for speed, assuming that the user dictionary will only be a few hundred words in
+     * size.
+     * @param roots node whose children have to be search for matches
+     * @param codes the input character codes
+     * @param word the word being composed as a possible match
+     * @param depth the depth of traversal - the length of the word being composed thus far
+     * @param completion whether the traversal is now in completion mode - meaning that we've
+     * exhausted the input and we're looking for all possible suffixes.
+     * @param snr current weight of the word being formed
+     * @param inputIndex position in the input characters. This can be off from the depth in 
+     * case we skip over some punctuations such as apostrophe in the traversal. That is, if you type
+     * "wouldve", it could be matching "would've", so the depth will be one more than the
+     * inputIndex
+     * @param callback the callback class for adding a word
+     */
+    protected void getWordsRec(NodeArray roots, final WordComposer codes, final char[] word, 
+            final int depth, boolean completion, int snr, int inputIndex, int skipPos,
+            WordCallback callback) {
+        final int count = roots.length;
+        final int codeSize = mInputLength;
+        // Optimization: Prune out words that are too long compared to how much was typed.
+        if (depth > mMaxDepth) {
+            return;
+        }
+        int[] currentChars = null;
+        if (codeSize <= inputIndex) {
+            completion = true;
+        } else {
+            currentChars = mCodes[inputIndex];
+        }
+
+        for (int i = 0; i < count; i++) {
+            final Node node = roots.data[i];
+            final char c = node.code;
+            final char lowerC = toLowerCase(c);
+            final boolean terminal = node.terminal;
+            final NodeArray children = node.children;
+            final int freq = node.frequency;
+            if (completion) {
+                word[depth] = c;
+                if (terminal) {
+                    if (!callback.addWord(word, 0, depth + 1, freq * snr)) {
+                        return;
+                    }
+                }
+                if (children != null) {
+                    getWordsRec(children, codes, word, depth + 1, completion, snr, inputIndex,
+                            skipPos, callback);
+                }
+            } else if ((c == QUOTE && currentChars[0] != QUOTE) || depth == skipPos) {
+                // Skip the ' and continue deeper
+                word[depth] = c;
+                if (children != null) {
+                    getWordsRec(children, codes, word, depth + 1, completion, snr, inputIndex, 
+                            skipPos, callback);
+                }
+            } else {
+                // Don't use alternatives if we're looking for missing characters
+                final int alternativesSize = skipPos >= 0? 1 : currentChars.length;
+                for (int j = 0; j < alternativesSize; j++) {
+                    final int addedAttenuation = (j > 0 ? 1 : 2);
+                    final int currentChar = currentChars[j];
+                    if (currentChar == -1) {
+                        break;
+                    }
+                    if (currentChar == lowerC || currentChar == c) {
+                        word[depth] = c;
+
+                        if (codeSize == depth + 1) {
+                            if (terminal) {
+                                if (INCLUDE_TYPED_WORD_IF_VALID 
+                                        || !same(word, depth + 1, codes.getTypedWord())) {
+                                    int finalFreq = freq * snr * addedAttenuation;
+                                    if (skipPos < 0) finalFreq *= FULL_WORD_FREQ_MULTIPLIER;
+                                    callback.addWord(word, 0, depth + 1, finalFreq);
+                                }
+                            }
+                            if (children != null) {
+                                getWordsRec(children, codes, word, depth + 1,
+                                        true, snr * addedAttenuation, inputIndex + 1,
+                                        skipPos, callback);
+                            }
+                        } else if (children != null) {
+                            getWordsRec(children, codes, word, depth + 1, 
+                                    false, snr * addedAttenuation, inputIndex + 1,
+                                    skipPos, callback);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    protected void clearDictionary() {
+        mRoots = new NodeArray();
+    }
+
+    static char toLowerCase(char c) {
+        if (c < BASE_CHARS.length) {
+            c = BASE_CHARS[c];
+        }
+        if (c >= 'A' && c <= 'Z') {
+            c = (char) (c | 32);
+        } else if (c > 127) {
+            c = Character.toLowerCase(c);
+        }
+        return c;
+    }
+
+    /**
+     * Table mapping most combined Latin, Greek, and Cyrillic characters
+     * to their base characters.  If c is in range, BASE_CHARS[c] == c
+     * if c is not a combined character, or the base character if it
+     * is combined.
+     */
+    static final char BASE_CHARS[] = {
+        0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 
+        0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 
+        0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 
+        0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 
+        0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 
+        0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 
+        0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 
+        0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 
+        0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 
+        0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 
+        0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 
+        0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 
+        0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 
+        0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 
+        0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 
+        0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 
+        0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 
+        0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 
+        0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 
+        0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 
+        0x0020, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 
+        0x0020, 0x00a9, 0x0061, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0020, 
+        0x00b0, 0x00b1, 0x0032, 0x0033, 0x0020, 0x03bc, 0x00b6, 0x00b7, 
+        0x0020, 0x0031, 0x006f, 0x00bb, 0x0031, 0x0031, 0x0033, 0x00bf, 
+        0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x00c6, 0x0043, 
+        0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, 
+        0x00d0, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x00d7, 
+        0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x00de, 0x0073, // Manually changed d8 to 4f
+                                                                        // Manually changed df to 73
+        0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x00e6, 0x0063, 
+        0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, 
+        0x00f0, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x00f7, 
+        0x006f, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0x00fe, 0x0079, // Manually changed f8 to 6f
+        0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, 
+        0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, 
+        0x0110, 0x0111, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 
+        0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067, 
+        0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0126, 0x0127, 
+        0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 
+        0x0049, 0x0131, 0x0049, 0x0069, 0x004a, 0x006a, 0x004b, 0x006b, 
+        0x0138, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 
+        0x006c, 0x0141, 0x0142, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 
+        0x006e, 0x02bc, 0x014a, 0x014b, 0x004f, 0x006f, 0x004f, 0x006f, 
+        0x004f, 0x006f, 0x0152, 0x0153, 0x0052, 0x0072, 0x0052, 0x0072, 
+        0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 
+        0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0166, 0x0167, 
+        0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 
+        0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, 
+        0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, 
+        0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185, 0x0186, 0x0187, 
+        0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d, 0x018e, 0x018f, 
+        0x0190, 0x0191, 0x0192, 0x0193, 0x0194, 0x0195, 0x0196, 0x0197, 
+        0x0198, 0x0199, 0x019a, 0x019b, 0x019c, 0x019d, 0x019e, 0x019f, 
+        0x004f, 0x006f, 0x01a2, 0x01a3, 0x01a4, 0x01a5, 0x01a6, 0x01a7, 
+        0x01a8, 0x01a9, 0x01aa, 0x01ab, 0x01ac, 0x01ad, 0x01ae, 0x0055, 
+        0x0075, 0x01b1, 0x01b2, 0x01b3, 0x01b4, 0x01b5, 0x01b6, 0x01b7, 
+        0x01b8, 0x01b9, 0x01ba, 0x01bb, 0x01bc, 0x01bd, 0x01be, 0x01bf, 
+        0x01c0, 0x01c1, 0x01c2, 0x01c3, 0x0044, 0x0044, 0x0064, 0x004c, 
+        0x004c, 0x006c, 0x004e, 0x004e, 0x006e, 0x0041, 0x0061, 0x0049, 
+        0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x00dc, 0x00fc, 0x00dc, 
+        0x00fc, 0x00dc, 0x00fc, 0x00dc, 0x00fc, 0x01dd, 0x00c4, 0x00e4, 
+        0x0226, 0x0227, 0x00c6, 0x00e6, 0x01e4, 0x01e5, 0x0047, 0x0067, 
+        0x004b, 0x006b, 0x004f, 0x006f, 0x01ea, 0x01eb, 0x01b7, 0x0292, 
+        0x006a, 0x0044, 0x0044, 0x0064, 0x0047, 0x0067, 0x01f6, 0x01f7, 
+        0x004e, 0x006e, 0x00c5, 0x00e5, 0x00c6, 0x00e6, 0x00d8, 0x00f8, 
+        0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 
+        0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 
+        0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, 
+        0x0053, 0x0073, 0x0054, 0x0074, 0x021c, 0x021d, 0x0048, 0x0068, 
+        0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, 0x0041, 0x0061, 
+        0x0045, 0x0065, 0x00d6, 0x00f6, 0x00d5, 0x00f5, 0x004f, 0x006f, 
+        0x022e, 0x022f, 0x0059, 0x0079, 0x0234, 0x0235, 0x0236, 0x0237, 
+        0x0238, 0x0239, 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x023f, 
+        0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, 
+        0x0248, 0x0249, 0x024a, 0x024b, 0x024c, 0x024d, 0x024e, 0x024f, 
+        0x0250, 0x0251, 0x0252, 0x0253, 0x0254, 0x0255, 0x0256, 0x0257, 
+        0x0258, 0x0259, 0x025a, 0x025b, 0x025c, 0x025d, 0x025e, 0x025f, 
+        0x0260, 0x0261, 0x0262, 0x0263, 0x0264, 0x0265, 0x0266, 0x0267, 
+        0x0268, 0x0269, 0x026a, 0x026b, 0x026c, 0x026d, 0x026e, 0x026f, 
+        0x0270, 0x0271, 0x0272, 0x0273, 0x0274, 0x0275, 0x0276, 0x0277, 
+        0x0278, 0x0279, 0x027a, 0x027b, 0x027c, 0x027d, 0x027e, 0x027f, 
+        0x0280, 0x0281, 0x0282, 0x0283, 0x0284, 0x0285, 0x0286, 0x0287, 
+        0x0288, 0x0289, 0x028a, 0x028b, 0x028c, 0x028d, 0x028e, 0x028f, 
+        0x0290, 0x0291, 0x0292, 0x0293, 0x0294, 0x0295, 0x0296, 0x0297, 
+        0x0298, 0x0299, 0x029a, 0x029b, 0x029c, 0x029d, 0x029e, 0x029f, 
+        0x02a0, 0x02a1, 0x02a2, 0x02a3, 0x02a4, 0x02a5, 0x02a6, 0x02a7, 
+        0x02a8, 0x02a9, 0x02aa, 0x02ab, 0x02ac, 0x02ad, 0x02ae, 0x02af, 
+        0x0068, 0x0266, 0x006a, 0x0072, 0x0279, 0x027b, 0x0281, 0x0077, 
+        0x0079, 0x02b9, 0x02ba, 0x02bb, 0x02bc, 0x02bd, 0x02be, 0x02bf, 
+        0x02c0, 0x02c1, 0x02c2, 0x02c3, 0x02c4, 0x02c5, 0x02c6, 0x02c7, 
+        0x02c8, 0x02c9, 0x02ca, 0x02cb, 0x02cc, 0x02cd, 0x02ce, 0x02cf, 
+        0x02d0, 0x02d1, 0x02d2, 0x02d3, 0x02d4, 0x02d5, 0x02d6, 0x02d7, 
+        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x02de, 0x02df, 
+        0x0263, 0x006c, 0x0073, 0x0078, 0x0295, 0x02e5, 0x02e6, 0x02e7, 
+        0x02e8, 0x02e9, 0x02ea, 0x02eb, 0x02ec, 0x02ed, 0x02ee, 0x02ef, 
+        0x02f0, 0x02f1, 0x02f2, 0x02f3, 0x02f4, 0x02f5, 0x02f6, 0x02f7, 
+        0x02f8, 0x02f9, 0x02fa, 0x02fb, 0x02fc, 0x02fd, 0x02fe, 0x02ff, 
+        0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307, 
+        0x0308, 0x0309, 0x030a, 0x030b, 0x030c, 0x030d, 0x030e, 0x030f, 
+        0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317, 
+        0x0318, 0x0319, 0x031a, 0x031b, 0x031c, 0x031d, 0x031e, 0x031f, 
+        0x0320, 0x0321, 0x0322, 0x0323, 0x0324, 0x0325, 0x0326, 0x0327, 
+        0x0328, 0x0329, 0x032a, 0x032b, 0x032c, 0x032d, 0x032e, 0x032f, 
+        0x0330, 0x0331, 0x0332, 0x0333, 0x0334, 0x0335, 0x0336, 0x0337, 
+        0x0338, 0x0339, 0x033a, 0x033b, 0x033c, 0x033d, 0x033e, 0x033f, 
+        0x0300, 0x0301, 0x0342, 0x0313, 0x0308, 0x0345, 0x0346, 0x0347, 
+        0x0348, 0x0349, 0x034a, 0x034b, 0x034c, 0x034d, 0x034e, 0x034f, 
+        0x0350, 0x0351, 0x0352, 0x0353, 0x0354, 0x0355, 0x0356, 0x0357, 
+        0x0358, 0x0359, 0x035a, 0x035b, 0x035c, 0x035d, 0x035e, 0x035f, 
+        0x0360, 0x0361, 0x0362, 0x0363, 0x0364, 0x0365, 0x0366, 0x0367, 
+        0x0368, 0x0369, 0x036a, 0x036b, 0x036c, 0x036d, 0x036e, 0x036f, 
+        0x0370, 0x0371, 0x0372, 0x0373, 0x02b9, 0x0375, 0x0376, 0x0377, 
+        0x0378, 0x0379, 0x0020, 0x037b, 0x037c, 0x037d, 0x003b, 0x037f, 
+        0x0380, 0x0381, 0x0382, 0x0383, 0x0020, 0x00a8, 0x0391, 0x00b7, 
+        0x0395, 0x0397, 0x0399, 0x038b, 0x039f, 0x038d, 0x03a5, 0x03a9, 
+        0x03ca, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 
+        0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 
+        0x03a0, 0x03a1, 0x03a2, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 
+        0x03a8, 0x03a9, 0x0399, 0x03a5, 0x03b1, 0x03b5, 0x03b7, 0x03b9, 
+        0x03cb, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 
+        0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 
+        0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 
+        0x03c8, 0x03c9, 0x03b9, 0x03c5, 0x03bf, 0x03c5, 0x03c9, 0x03cf, 
+        0x03b2, 0x03b8, 0x03a5, 0x03d2, 0x03d2, 0x03c6, 0x03c0, 0x03d7, 
+        0x03d8, 0x03d9, 0x03da, 0x03db, 0x03dc, 0x03dd, 0x03de, 0x03df, 
+        0x03e0, 0x03e1, 0x03e2, 0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x03e7, 
+        0x03e8, 0x03e9, 0x03ea, 0x03eb, 0x03ec, 0x03ed, 0x03ee, 0x03ef, 
+        0x03ba, 0x03c1, 0x03c2, 0x03f3, 0x0398, 0x03b5, 0x03f6, 0x03f7, 
+        0x03f8, 0x03a3, 0x03fa, 0x03fb, 0x03fc, 0x03fd, 0x03fe, 0x03ff, 
+        0x0415, 0x0415, 0x0402, 0x0413, 0x0404, 0x0405, 0x0406, 0x0406, 
+        0x0408, 0x0409, 0x040a, 0x040b, 0x041a, 0x0418, 0x0423, 0x040f, 
+        0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 
+        0x0418, 0x0418, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 
+        0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 
+        0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 
+        0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 
+        0x0438, 0x0438, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 
+        0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 
+        0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 
+        0x0435, 0x0435, 0x0452, 0x0433, 0x0454, 0x0455, 0x0456, 0x0456, 
+        0x0458, 0x0459, 0x045a, 0x045b, 0x043a, 0x0438, 0x0443, 0x045f, 
+        0x0460, 0x0461, 0x0462, 0x0463, 0x0464, 0x0465, 0x0466, 0x0467, 
+        0x0468, 0x0469, 0x046a, 0x046b, 0x046c, 0x046d, 0x046e, 0x046f, 
+        0x0470, 0x0471, 0x0472, 0x0473, 0x0474, 0x0475, 0x0474, 0x0475, 
+        0x0478, 0x0479, 0x047a, 0x047b, 0x047c, 0x047d, 0x047e, 0x047f, 
+        0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487, 
+        0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x048f, 
+        0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x0497, 
+        0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x049f, 
+        0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x04a7, 
+        0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x04af, 
+        0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x04b7, 
+        0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x04be, 0x04bf, 
+        0x04c0, 0x0416, 0x0436, 0x04c3, 0x04c4, 0x04c5, 0x04c6, 0x04c7, 
+        0x04c8, 0x04c9, 0x04ca, 0x04cb, 0x04cc, 0x04cd, 0x04ce, 0x04cf, 
+        0x0410, 0x0430, 0x0410, 0x0430, 0x04d4, 0x04d5, 0x0415, 0x0435, 
+        0x04d8, 0x04d9, 0x04d8, 0x04d9, 0x0416, 0x0436, 0x0417, 0x0437, 
+        0x04e0, 0x04e1, 0x0418, 0x0438, 0x0418, 0x0438, 0x041e, 0x043e, 
+        0x04e8, 0x04e9, 0x04e8, 0x04e9, 0x042d, 0x044d, 0x0423, 0x0443, 
+        0x0423, 0x0443, 0x0423, 0x0443, 0x0427, 0x0447, 0x04f6, 0x04f7, 
+        0x042b, 0x044b, 0x04fa, 0x04fb, 0x04fc, 0x04fd, 0x04fe, 0x04ff, 
+    };
+
+    // generated with:
+    // cat UnicodeData.txt | perl -e 'while (<>) { @foo = split(/;/); $foo[5] =~ s/<.*> //; $base[hex($foo[0])] = hex($foo[5]);} for ($i = 0; $i < 0x500; $i += 8) { for ($j = $i; $j < $i + 8; $j++) { printf("0x%04x, ", $base[$j] ? $base[$j] : $j)}; print "\n"; }'
+
+}
diff --git a/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/src/com/android/inputmethod/latin/KeyboardSwitcher.java
index 92b7cd4a1b..c82587b719 100644
--- a/src/com/android/inputmethod/latin/KeyboardSwitcher.java
+++ b/src/com/android/inputmethod/latin/KeyboardSwitcher.java
@@ -37,6 +37,10 @@ public class KeyboardSwitcher {
     public static final int KEYBOARDMODE_EMAIL = R.id.mode_email;
     public static final int KEYBOARDMODE_IM = R.id.mode_im;
 
+    private static final int SYMBOLS_MODE_STATE_NONE = 0;
+    private static final int SYMBOLS_MODE_STATE_BEGIN = 1;
+    private static final int SYMBOLS_MODE_STATE_SYMBOL = 2;
+
     LatinKeyboardView mInputView;
     LatinIME mContext;
     
@@ -50,6 +54,8 @@ public class KeyboardSwitcher {
     private int mImeOptions;
     private int mTextMode = MODE_TEXT_QWERTY;
     private boolean mIsSymbols;
+    private boolean mPreferSymbols;
+    private int mSymbolsModeState = SYMBOLS_MODE_STATE_NONE;
 
     private int mLastDisplayWidth;
 
@@ -64,14 +70,15 @@ public class KeyboardSwitcher {
         mInputView = inputView;
     }
     
-    void makeKeyboards() {
+    void makeKeyboards(boolean forceCreate) {
+        if (forceCreate) mKeyboards.clear();
         // Configuration change is coming after the keyboard gets recreated. So don't rely on that.
         // If keyboards have already been made, check if we have a screen width change and 
         // create the keyboard layouts again at the correct orientation
         int displayWidth = mContext.getMaxWidth();
         if (displayWidth == mLastDisplayWidth) return;
         mLastDisplayWidth = displayWidth;
-        mKeyboards.clear();
+        if (!forceCreate) mKeyboards.clear();
         mSymbolsId = new KeyboardId(R.xml.kbd_symbols);
         mSymbolsShiftedId = new KeyboardId(R.xml.kbd_symbols_shift);
     }
@@ -109,7 +116,10 @@ public class KeyboardSwitcher {
     }
 
     void setKeyboardMode(int mode, int imeOptions) {
-        setKeyboardMode(mode, imeOptions, false);
+        mSymbolsModeState = SYMBOLS_MODE_STATE_NONE;
+        mPreferSymbols = mode == MODE_SYMBOLS;
+        setKeyboardMode(mode == MODE_SYMBOLS ? MODE_TEXT : mode, imeOptions,
+                mPreferSymbols);
     }
 
     void setKeyboardMode(int mode, int imeOptions, boolean isSymbols) {
@@ -228,5 +238,30 @@ public class KeyboardSwitcher {
 
     void toggleSymbols() {
         setKeyboardMode(mMode, mImeOptions, !mIsSymbols);
+        if (mIsSymbols && !mPreferSymbols) {
+            mSymbolsModeState = SYMBOLS_MODE_STATE_BEGIN;
+        } else {
+            mSymbolsModeState = SYMBOLS_MODE_STATE_NONE;
+        }
+    }
+
+    /**
+     * Updates state machine to figure out when to automatically switch back to alpha mode.
+     * Returns true if the keyboard needs to switch back 
+     */
+    boolean onKey(int key) {
+        // Switch back to alpha mode if user types one or more non-space/enter characters
+        // followed by a space/enter
+        switch (mSymbolsModeState) {
+            case SYMBOLS_MODE_STATE_BEGIN:
+                if (key != LatinIME.KEYCODE_SPACE && key != LatinIME.KEYCODE_ENTER && key > 0) {
+                    mSymbolsModeState = SYMBOLS_MODE_STATE_SYMBOL;
+                }
+                break;
+            case SYMBOLS_MODE_STATE_SYMBOL:
+                if (key == LatinIME.KEYCODE_ENTER || key == LatinIME.KEYCODE_SPACE) return true;
+                break;
+        }
+        return false;
     }
 }
diff --git a/src/com/android/inputmethod/latin/LatinIME.java b/src/com/android/inputmethod/latin/LatinIME.java
index 240668ebb3..8b76dbd395 100644
--- a/src/com/android/inputmethod/latin/LatinIME.java
+++ b/src/com/android/inputmethod/latin/LatinIME.java
@@ -71,14 +71,22 @@ public class LatinIME extends InputMethodService
 
     private static final int MSG_UPDATE_SUGGESTIONS = 0;
     private static final int MSG_START_TUTORIAL = 1;
+    private static final int MSG_UPDATE_SHIFT_STATE = 2;
     
     // How many continuous deletes at which to start deleting at a higher speed.
     private static final int DELETE_ACCELERATE_AT = 20;
     // Key events coming any faster than this are long-presses.
-    private static final int QUICK_PRESS = 200; 
+    private static final int QUICK_PRESS = 200;
+    // Weight added to a user picking a new word from the suggestion strip
+    static final int FREQUENCY_FOR_PICKED = 3;
+    // Weight added to a user typing a new word that doesn't get corrected (or is reverted)
+    static final int FREQUENCY_FOR_TYPED = 1;
+    // A word that is frequently typed and get's promoted to the user dictionary, uses this
+    // frequency.
+    static final int FREQUENCY_FOR_AUTO_ADD = 250;
     
-    private static final int KEYCODE_ENTER = 10;
-    private static final int KEYCODE_SPACE = ' ';
+    static final int KEYCODE_ENTER = '\n';
+    static final int KEYCODE_SPACE = ' ';
 
     // Contextual menu positions
     private static final int POS_SETTINGS = 0;
@@ -95,6 +103,8 @@ public class LatinIME extends InputMethodService
     KeyboardSwitcher mKeyboardSwitcher;
     
     private UserDictionary mUserDictionary;
+    private ContactsDictionary mContactsDictionary;
+    private ExpandableDictionary mAutoDictionary;
     
     private String mLocale;
 
@@ -114,6 +124,8 @@ public class LatinIME extends InputMethodService
     private boolean mQuickFixes;
     private boolean mShowSuggestions;
     private int     mCorrectionMode;
+    private int     mOrientation;
+
     // Indicates whether the suggestion strip is to be on in landscape
     private boolean mJustAccepted;
     private CharSequence mJustRevertedSeparator;
@@ -126,7 +138,8 @@ public class LatinIME extends InputMethodService
     private long mVibrateDuration;
 
     private AudioManager mAudioManager;
-    private final float FX_VOLUME = 1.0f;
+    // Align sound effect volume on music volume
+    private final float FX_VOLUME = -1.0f;
     private boolean mSilentMode;
 
     private String mWordSeparators;
@@ -150,6 +163,9 @@ public class LatinIME extends InputMethodService
                         }
                     }
                     break;
+                case MSG_UPDATE_SHIFT_STATE:
+                    updateShiftKeyState(getCurrentInputEditorInfo());
+                    break;
             }
         }
     };
@@ -158,10 +174,12 @@ public class LatinIME extends InputMethodService
         super.onCreate();
         //setStatusIcon(R.drawable.ime_qwerty);
         mKeyboardSwitcher = new KeyboardSwitcher(this);
-        initSuggest(getResources().getConfiguration().locale.toString());
-        
+        final Configuration conf = getResources().getConfiguration();
+        initSuggest(conf.locale.toString());
+        mOrientation = conf.orientation;
+
         mVibrateDuration = getResources().getInteger(R.integer.vibrate_duration_ms);
-        
+
         // register to receive ringer mode changes for silent mode
         IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
         registerReceiver(mReceiver, filter);
@@ -172,13 +190,18 @@ public class LatinIME extends InputMethodService
         mSuggest = new Suggest(this, R.raw.main);
         mSuggest.setCorrectionMode(mCorrectionMode);
         mUserDictionary = new UserDictionary(this);
+        mContactsDictionary = new ContactsDictionary(this);
+        mAutoDictionary = new AutoDictionary(this);
         mSuggest.setUserDictionary(mUserDictionary);
+        mSuggest.setContactsDictionary(mContactsDictionary);
+        mSuggest.setAutoDictionary(mAutoDictionary);
         mWordSeparators = getResources().getString(R.string.word_separators);
         mSentenceSeparators = getResources().getString(R.string.sentence_separators);
     }
     
     @Override public void onDestroy() {
         mUserDictionary.close();
+        mContactsDictionary.close();
         unregisterReceiver(mReceiver);
         super.onDestroy();
     }
@@ -188,15 +211,24 @@ public class LatinIME extends InputMethodService
         if (!TextUtils.equals(conf.locale.toString(), mLocale)) {
             initSuggest(conf.locale.toString());
         }
+        // If orientation changed while predicting, commit the change
+        if (conf.orientation != mOrientation) {
+            commitTyped(getCurrentInputConnection());
+            mOrientation = conf.orientation;
+        }
+        if (mKeyboardSwitcher == null) {
+            mKeyboardSwitcher = new KeyboardSwitcher(this);
+        }
+        mKeyboardSwitcher.makeKeyboards(true);
         super.onConfigurationChanged(conf);
     }
-    
+
     @Override
     public View onCreateInputView() {
         mInputView = (LatinKeyboardView) getLayoutInflater().inflate(
                 R.layout.input, null);
         mKeyboardSwitcher.setInputView(mInputView);
-        mKeyboardSwitcher.makeKeyboards();
+        mKeyboardSwitcher.makeKeyboards(true);
         mInputView.setOnKeyboardActionListener(this);
         mKeyboardSwitcher.setKeyboardMode(KeyboardSwitcher.MODE_TEXT, 0);
         return mInputView;
@@ -204,7 +236,7 @@ public class LatinIME extends InputMethodService
 
     @Override
     public View onCreateCandidatesView() {
-        mKeyboardSwitcher.makeKeyboards();
+        mKeyboardSwitcher.makeKeyboards(true);
         mCandidateViewContainer = (CandidateViewContainer) getLayoutInflater().inflate(
                 R.layout.candidates, null);
         mCandidateViewContainer.initViews();
@@ -221,7 +253,7 @@ public class LatinIME extends InputMethodService
             return;
         }
 
-        mKeyboardSwitcher.makeKeyboards();
+        mKeyboardSwitcher.makeKeyboards(false);
 
         TextEntryState.newSession(this);
 
@@ -233,9 +265,8 @@ public class LatinIME extends InputMethodService
         switch (attribute.inputType&EditorInfo.TYPE_MASK_CLASS) {
             case EditorInfo.TYPE_CLASS_NUMBER:
             case EditorInfo.TYPE_CLASS_DATETIME:
-                mKeyboardSwitcher.setKeyboardMode(KeyboardSwitcher.MODE_TEXT,
+                mKeyboardSwitcher.setKeyboardMode(KeyboardSwitcher.MODE_SYMBOLS,
                         attribute.imeOptions);
-                mKeyboardSwitcher.toggleSymbols();
                 break;
             case EditorInfo.TYPE_CLASS_PHONE:
                 mKeyboardSwitcher.setKeyboardMode(KeyboardSwitcher.MODE_PHONE,
@@ -278,6 +309,17 @@ public class LatinIME extends InputMethodService
                         disableAutoCorrect = true;
                     }
                 }
+
+                // If NO_SUGGESTIONS is set, don't do prediction.
+                if ((attribute.inputType & EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS) != 0) {
+                    mPredictionOn = false;
+                    disableAutoCorrect = true;
+                }
+                // If it's not multiline and the autoCorrect flag is not set, then don't correct
+                if ((attribute.inputType & EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT) == 0 &&
+                        (attribute.inputType & EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE) == 0) {
+                    disableAutoCorrect = true;
+                }
                 if ((attribute.inputType&EditorInfo.TYPE_TEXT_FLAG_AUTO_COMPLETE) != 0) {
                     mPredictionOn = false;
                     mCompletionOn = true && isFullscreenMode();
@@ -309,7 +351,7 @@ public class LatinIME extends InputMethodService
         }
         mPredictionOn = mPredictionOn && mCorrectionMode > 0;
         checkTutorial(attribute.privateImeOptions);
-        if (TRACE) Debug.startMethodTracing("latinime");
+        if (TRACE) Debug.startMethodTracing("/data/trace/latinime");
     }
 
     @Override
@@ -344,6 +386,7 @@ public class LatinIME extends InputMethodService
             TextEntryState.reset();
         }
         mJustAccepted = false;
+        postUpdateShiftKeyState();
     }
 
     @Override
@@ -465,11 +508,17 @@ public class LatinIME extends InputMethodService
                 }
                 mCommittedLength = mComposing.length();
                 TextEntryState.acceptedTyped(mComposing);
+                mAutoDictionary.addWord(mComposing.toString(), FREQUENCY_FOR_TYPED);
             }
             updateSuggestions();
         }
     }
 
+    private void postUpdateShiftKeyState() {
+        mHandler.removeMessages(MSG_UPDATE_SHIFT_STATE);
+        mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_UPDATE_SHIFT_STATE), 300);
+    }
+
     public void updateShiftKeyState(EditorInfo attr) {
         InputConnection ic = getCurrentInputConnection();
         if (attr != null && mInputView != null && mKeyboardSwitcher.isAlphabetMode()
@@ -571,6 +620,9 @@ public class LatinIME extends InputMethodService
                 // Cancel the just reverted state
                 mJustRevertedSeparator = null;
         }
+        if (mKeyboardSwitcher.onKey(primaryCode)) {
+            changeKeyboardMode();
+        }
     }
     
     public void onText(CharSequence text) {
@@ -606,7 +658,7 @@ public class LatinIME extends InputMethodService
         } else {
             deleteChar = true;
         }
-        updateShiftKeyState(getCurrentInputEditorInfo());
+        postUpdateShiftKeyState();
         TextEntryState.backspace();
         if (TextEntryState.getState() == TextEntryState.STATE_UNDO_COMMIT) {
             revertLastWord(deleteChar);
@@ -640,7 +692,12 @@ public class LatinIME extends InputMethodService
             }
         }
         if (mInputView.isShifted()) {
-            primaryCode = Character.toUpperCase(primaryCode);
+            // TODO: This doesn't work with ß, need to fix it in the next release.
+            if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT
+                    || keyCodes[0] > Character.MAX_CODE_POINT) {
+                return;
+            }
+            primaryCode = new String(keyCodes, 0, 1).toUpperCase().charAt(0);
         }
         if (mPredicting) {
             if (mInputView.isShifted() && mComposing.length() == 0) {
@@ -756,7 +813,9 @@ public class LatinIME extends InputMethodService
         if (mCorrectionMode == Suggest.CORRECTION_FULL) {
             correctionAvailable |= typedWordValid;
         }
-        
+        // Don't auto-correct words with multiple capital letter
+        correctionAvailable &= !mWord.isMostlyCaps();
+
         mCandidateView.setSuggestions(stringList, false, typedWordValid, correctionAvailable); 
         if (stringList.size() > 0) {
             if (correctionAvailable && !typedWordValid && stringList.size() > 1) {
@@ -813,13 +872,17 @@ public class LatinIME extends InputMethodService
             suggestion = suggestion.toString().toUpperCase();
         } else if (preferCapitalization() 
                 || (mKeyboardSwitcher.isAlphabetMode() && mInputView.isShifted())) {
-            suggestion = Character.toUpperCase(suggestion.charAt(0)) 
+            suggestion = suggestion.toString().toUpperCase().charAt(0)
                     + suggestion.subSequence(1, suggestion.length()).toString();
         }
         InputConnection ic = getCurrentInputConnection();
         if (ic != null) {
             ic.commitText(suggestion, 1);
         }
+        // Add the word to the auto dictionary if it's not a known word
+        if (mAutoDictionary.isValidWord(suggestion) || !mSuggest.isValidWord(suggestion)) {
+            mAutoDictionary.addWord(suggestion.toString(), FREQUENCY_FOR_PICKED);
+        }
         mPredicting = false;
         mCommittedLength = suggestion.length();
         if (mCandidateView != null) {
@@ -907,7 +970,7 @@ public class LatinIME extends InputMethodService
     }
 
     public void swipeDown() {
-        //handleClose();
+        handleClose();
     }
 
     public void swipeUp() {
@@ -973,7 +1036,7 @@ public class LatinIME extends InputMethodService
             return;
         }
         if (mVibrator == null) {
-            mVibrator = new Vibrator();
+            mVibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
         }
         mVibrator.vibrate(mVibrateDuration);
     }
@@ -998,7 +1061,12 @@ public class LatinIME extends InputMethodService
     void tutorialDone() {
         mTutorial = null;
     }
-    
+
+    void promoteToUserDictionary(String word, int frequency) {
+        if (mUserDictionary.isValidWord(word)) return;
+        mUserDictionary.addWord(word, frequency);
+    }
+
     private void launchSettings() {
         handleClose();
         Intent intent = new Intent();
@@ -1044,7 +1112,8 @@ public class LatinIME extends InputMethodService
                         launchSettings();
                         break;
                     case POS_METHOD:
-                        InputMethodManager.getInstance(LatinIME.this).showInputMethodPicker();
+                        ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
+                            .showInputMethodPicker();
                         break;
                 }
             }
@@ -1107,7 +1176,35 @@ public class LatinIME extends InputMethodService
         for (int i = 0; i < CPS_BUFFER_SIZE; i++) total += mCpsIntervals[i];
         System.out.println("CPS = " + ((CPS_BUFFER_SIZE * 1000f) / total));
     }
-    
+
+    class AutoDictionary extends ExpandableDictionary {
+        // If the user touches a typed word 2 times or more, it will become valid.
+        private static final int VALIDITY_THRESHOLD = 2 * FREQUENCY_FOR_PICKED;
+        // If the user touches a typed word 5 times or more, it will be added to the user dict.
+        private static final int PROMOTION_THRESHOLD = 5 * FREQUENCY_FOR_PICKED;
+
+        public AutoDictionary(Context context) {
+            super(context);
+        }
+
+        @Override
+        public boolean isValidWord(CharSequence word) {
+            final int frequency = getWordFrequency(word);
+            return frequency > VALIDITY_THRESHOLD;
+        }
+
+        @Override
+        public void addWord(String word, int addFrequency) {
+            final int length = word.length();
+            // Don't add very short or very long words.
+            if (length < 2 || length > getMaxWordLength()) return;
+            super.addWord(word, addFrequency);
+            final int freq = getWordFrequency(word);
+            if (freq > PROMOTION_THRESHOLD) {
+                LatinIME.this.promoteToUserDictionary(word, FREQUENCY_FOR_AUTO_ADD);
+            }
+        }
+    }
 }
 
 
diff --git a/src/com/android/inputmethod/latin/LatinKeyboard.java b/src/com/android/inputmethod/latin/LatinKeyboard.java
index 8527d9cd52..9b04aa2648 100644
--- a/src/com/android/inputmethod/latin/LatinKeyboard.java
+++ b/src/com/android/inputmethod/latin/LatinKeyboard.java
@@ -37,20 +37,23 @@ public class LatinKeyboard extends Keyboard {
     private static final int SHIFT_LOCKED = 2;
     
     private int mShiftState = SHIFT_OFF;
-    
+
+    static int sSpacebarVerticalCorrection;
+
     public LatinKeyboard(Context context, int xmlLayoutResId) {
         this(context, xmlLayoutResId, 0);
     }
 
     public LatinKeyboard(Context context, int xmlLayoutResId, int mode) {
         super(context, xmlLayoutResId, mode);
-        mShiftLockIcon = context.getResources()
-                .getDrawable(R.drawable.sym_keyboard_shift_locked);
-        mShiftLockPreviewIcon = context.getResources()
-                .getDrawable(R.drawable.sym_keyboard_feedback_shift_locked);
+        Resources res = context.getResources();
+        mShiftLockIcon = res.getDrawable(R.drawable.sym_keyboard_shift_locked);
+        mShiftLockPreviewIcon = res.getDrawable(R.drawable.sym_keyboard_feedback_shift_locked);
         mShiftLockPreviewIcon.setBounds(0, 0, 
                 mShiftLockPreviewIcon.getIntrinsicWidth(),
                 mShiftLockPreviewIcon.getIntrinsicHeight());
+        sSpacebarVerticalCorrection = res.getDimensionPixelOffset(
+                R.dimen.spacebar_vertical_correction);
     }
 
     public LatinKeyboard(Context context, int layoutTemplateResId, 
@@ -225,6 +228,8 @@ public class LatinKeyboard extends Keyboard {
                 y -= height / 10;
                 if (code == KEYCODE_SHIFT) x += width / 6;
                 if (code == KEYCODE_DELETE) x -= width / 6;
+            } else if (code == LatinIME.KEYCODE_SPACE) {
+                y += LatinKeyboard.sSpacebarVerticalCorrection;
             }
             return super.isInside(x, y);
         }
diff --git a/src/com/android/inputmethod/latin/Suggest.java b/src/com/android/inputmethod/latin/Suggest.java
index 91decd66ae..c025566b73 100755
--- a/src/com/android/inputmethod/latin/Suggest.java
+++ b/src/com/android/inputmethod/latin/Suggest.java
@@ -36,17 +36,21 @@ public class Suggest implements Dictionary.WordCallback {
     public static final int CORRECTION_NONE = 0;
     public static final int CORRECTION_BASIC = 1;
     public static final int CORRECTION_FULL = 2;
-    
+
     private Dictionary mMainDict;
-    
+
     private Dictionary mUserDictionary;
-    
+
+    private Dictionary mAutoDictionary;
+
+    private Dictionary mContactsDictionary;
+
     private int mPrefMaxSuggestions = 12;
-    
+
     private int[] mPriorities = new int[mPrefMaxSuggestions];
-    private List<CharSequence> mSuggestions = new ArrayList<CharSequence>();
+    private ArrayList<CharSequence> mSuggestions = new ArrayList<CharSequence>();
     private boolean mIncludeTypedWordIfValid;
-    private List<CharSequence> mStringPool = new ArrayList<CharSequence>();
+    private ArrayList<CharSequence> mStringPool = new ArrayList<CharSequence>();
     private Context mContext;
     private boolean mHaveCorrection;
     private CharSequence mOriginalWord;
@@ -63,11 +67,11 @@ public class Suggest implements Dictionary.WordCallback {
             mStringPool.add(sb);
         }
     }
-    
+
     public int getCorrectionMode() {
         return mCorrectionMode;
     }
-    
+
     public void setCorrectionMode(int mode) {
         mCorrectionMode = mode;
     }
@@ -80,6 +84,17 @@ public class Suggest implements Dictionary.WordCallback {
         mUserDictionary = userDictionary;
     }
 
+    /**
+     * Sets an optional contacts dictionary resource to be loaded.
+     */
+    public void setContactsDictionary(Dictionary userDictionary) {
+        mContactsDictionary = userDictionary;
+    }
+    
+    public void setAutoDictionary(Dictionary autoDictionary) {
+        mAutoDictionary = autoDictionary;
+    }
+
     /**
      * Number of suggestions to generate from the input key sequence. This has
      * to be a number between 1 and 100 (inclusive).
@@ -98,24 +113,34 @@ public class Suggest implements Dictionary.WordCallback {
             mStringPool.add(sb);
         }
     }
-    
+
     private boolean haveSufficientCommonality(String original, CharSequence suggestion) {
-        final int len = Math.min(original.length(), suggestion.length());
-        if (len <= 2) return true;
+        final int originalLength = original.length();
+        final int suggestionLength = suggestion.length();
+        final int minLength = Math.min(originalLength, suggestionLength);
+        if (minLength <= 2) return true;
         int matching = 0;
-        for (int i = 0; i < len; i++) {
-            if (UserDictionary.toLowerCase(original.charAt(i)) 
-                    == UserDictionary.toLowerCase(suggestion.charAt(i))) {
+        int lessMatching = 0; // Count matches if we skip one character
+        int i;
+        for (i = 0; i < minLength; i++) {
+            final char origChar = ExpandableDictionary.toLowerCase(original.charAt(i));
+            if (origChar == ExpandableDictionary.toLowerCase(suggestion.charAt(i))) {
                 matching++;
+                lessMatching++;
+            } else if (i + 1 < suggestionLength
+                    && origChar == ExpandableDictionary.toLowerCase(suggestion.charAt(i + 1))) {
+                lessMatching++;
             }
         }
-        if (len <= 4) {
+        matching = Math.max(matching, lessMatching);
+
+        if (minLength <= 4) {
             return matching >= 2;
         } else {
-            return matching > len / 2;
+            return matching > minLength / 2;
         }
     }
-    
+
     /**
      * Returns a list of words that match the list of character codes passed in.
      * This list will be overwritten the next time this function is called.
@@ -142,8 +167,14 @@ public class Suggest implements Dictionary.WordCallback {
         }
         // Search the dictionary only if there are at least 2 characters
         if (wordComposer.size() > 1) {
-            if (mUserDictionary != null) {
-                mUserDictionary.getWords(wordComposer, this);
+            if (mUserDictionary != null || mContactsDictionary != null) {
+                if (mUserDictionary != null) {
+                    mUserDictionary.getWords(wordComposer, this);
+                }
+                if (mContactsDictionary != null) {
+                    mContactsDictionary.getWords(wordComposer, this);
+                }
+
                 if (mSuggestions.size() > 0 && isValidWord(mOriginalWord)) {
                     mHaveCorrection = true;
                 }
@@ -187,10 +218,38 @@ public class Suggest implements Dictionary.WordCallback {
             }
             i++;
         }
-        
+
+        removeDupes();
         return mSuggestions;
     }
 
+    private void removeDupes() {
+        final ArrayList<CharSequence> suggestions = mSuggestions;
+        if (suggestions.size() < 2) return;
+        int i = 1;
+        // Don't cache suggestions.size(), since we may be removing items
+        while (i < suggestions.size()) {
+            final CharSequence cur = suggestions.get(i);
+            // Compare each candidate with each previous candidate
+            for (int j = 0; j < i; j++) {
+                CharSequence previous = suggestions.get(j);
+                if (TextUtils.equals(cur, previous)) {
+                    removeFromSuggestions(i);
+                    i--;
+                    break;
+                }
+            }
+            i++;
+        }
+    }
+
+    private void removeFromSuggestions(int index) {
+        CharSequence garbage = mSuggestions.remove(index);
+        if (garbage != null && garbage instanceof StringBuilder) {
+            mStringPool.add(garbage);
+        }
+    }
+
     public boolean hasMinimalCorrection() {
         return mHaveCorrection;
     }
@@ -256,7 +315,9 @@ public class Suggest implements Dictionary.WordCallback {
         }
         return (mCorrectionMode == CORRECTION_FULL && mMainDict.isValidWord(word)) 
                 || (mCorrectionMode > CORRECTION_NONE && 
-                    (mUserDictionary != null && mUserDictionary.isValidWord(word)));
+                    ((mUserDictionary != null && mUserDictionary.isValidWord(word)))
+                     || (mAutoDictionary != null && mAutoDictionary.isValidWord(word))
+                     || (mContactsDictionary != null && mContactsDictionary.isValidWord(word)));
     }
     
     private void collectGarbage() {
diff --git a/src/com/android/inputmethod/latin/UserDictionary.java b/src/com/android/inputmethod/latin/UserDictionary.java
index 09549bf8ce..2f3447abdc 100644
--- a/src/com/android/inputmethod/latin/UserDictionary.java
+++ b/src/com/android/inputmethod/latin/UserDictionary.java
@@ -26,7 +26,7 @@ import android.database.ContentObserver;
 import android.database.Cursor;
 import android.provider.UserDictionary.Words;
 
-public class UserDictionary extends Dictionary {
+public class UserDictionary extends ExpandableDictionary {
     
     private static final String[] PROJECTION = {
         Words._ID,
@@ -37,31 +37,12 @@ public class UserDictionary extends Dictionary {
     private static final int INDEX_WORD = 1;
     private static final int INDEX_FREQUENCY = 2;
     
-    private static final char QUOTE = '\'';
-    
-    private Context mContext;
-    
-    List<Node> mRoots;
-    private int mMaxDepth;
-    private int mInputLength;
-
-    public static final int MAX_WORD_LENGTH = 32;
-
-    private char[] mWordBuilder = new char[MAX_WORD_LENGTH];
-   
     private ContentObserver mObserver;
     
-    static class Node {
-        char code;
-        int frequency;
-        boolean terminal;
-        List<Node> children;
-    }
-    
     private boolean mRequiresReload;
     
     public UserDictionary(Context context) {
-        mContext = context;
+        super(context);
         // Perform a managed query. The Activity will handle closing and requerying the cursor
         // when needed.
         ContentResolver cres = context.getContentResolver();
@@ -78,13 +59,13 @@ public class UserDictionary extends Dictionary {
     
     public synchronized void close() {
         if (mObserver != null) {
-            mContext.getContentResolver().unregisterContentObserver(mObserver);
+            getContext().getContentResolver().unregisterContentObserver(mObserver);
             mObserver = null;
         }
     }
     
     private synchronized void loadDictionary() {
-        Cursor cursor = mContext.getContentResolver()
+        Cursor cursor = getContext().getContentResolver()
                 .query(Words.CONTENT_URI, PROJECTION, "(locale IS NULL) or (locale=?)", 
                         new String[] { Locale.getDefault().toString() }, null);
         addWords(cursor);
@@ -99,12 +80,15 @@ public class UserDictionary extends Dictionary {
      * the highest.
      * @TODO use a higher or float range for frequency
      */
+    @Override
     public synchronized void addWord(String word, int frequency) {
         if (mRequiresReload) loadDictionary();
         // Safeguard against adding long words. Can cause stack overflow.
-        if (word.length() >= MAX_WORD_LENGTH) return;
-        addWordRec(mRoots, word, 0, frequency);
-        Words.addWord(mContext, word, frequency, Words.LOCALE_TYPE_CURRENT);
+        if (word.length() >= getMaxWordLength()) return;
+
+        super.addWord(word, frequency);
+
+        Words.addWord(getContext(), word, frequency, Words.LOCALE_TYPE_CURRENT);
         // In case the above does a synchronous callback of the change observer
         mRequiresReload = false;
     }
@@ -112,362 +96,31 @@ public class UserDictionary extends Dictionary {
     @Override
     public synchronized void getWords(final WordComposer codes, final WordCallback callback) {
         if (mRequiresReload) loadDictionary();
-        mInputLength = codes.size();
-        mMaxDepth = mInputLength * 3;
-        getWordsRec(mRoots, codes, mWordBuilder, 0, false, 1.0f, 0, callback);
+        super.getWords(codes, callback);
     }
 
     @Override
     public synchronized boolean isValidWord(CharSequence word) {
         if (mRequiresReload) loadDictionary();
-        return isValidWordRec(mRoots, word, 0, word.length());
-    }
-    
-    private boolean isValidWordRec(final List<Node> children, final CharSequence word, 
-            final int offset, final int length) {
-        final int count = children.size();
-        char currentChar = word.charAt(offset);
-        for (int j = 0; j < count; j++) {
-            final Node node = children.get(j);
-            if (node.code == currentChar) {
-                if (offset == length - 1) {
-                    if (node.terminal) {
-                        return true;
-                    }
-                } else {
-                    if (node.children != null) {
-                        if (isValidWordRec(node.children, word, offset + 1, length)) {
-                            return true;
-                        }
-                    }
-                }
-            }
-        }
-        return false;
-    }
-
-    static char toLowerCase(char c) {
-        if (c < BASE_CHARS.length) {
-            c = BASE_CHARS[c];
-        }
-        c = Character.toLowerCase(c);
-        return c;
-    }
-
-    /**
-     * Recursively traverse the tree for words that match the input. Input consists of
-     * a list of arrays. Each item in the list is one input character position. An input
-     * character is actually an array of multiple possible candidates. This function is not
-     * optimized for speed, assuming that the user dictionary will only be a few hundred words in
-     * size.
-     * @param roots node whose children have to be search for matches
-     * @param codes the input character codes
-     * @param word the word being composed as a possible match
-     * @param depth the depth of traversal - the length of the word being composed thus far
-     * @param completion whether the traversal is now in completion mode - meaning that we've
-     * exhausted the input and we're looking for all possible suffixes.
-     * @param snr current weight of the word being formed
-     * @param inputIndex position in the input characters. This can be off from the depth in 
-     * case we skip over some punctuations such as apostrophe in the traversal. That is, if you type
-     * "wouldve", it could be matching "would've", so the depth will be one more than the
-     * inputIndex
-     * @param callback the callback class for adding a word
-     */
-    private void getWordsRec(List<Node> roots, final WordComposer codes, final char[] word, 
-            final int depth, boolean completion, float snr, int inputIndex,
-            WordCallback callback) {
-        final int count = roots.size();
-        final int codeSize = mInputLength;
-        // Optimization: Prune out words that are too long compared to how much was typed.
-        if (depth > mMaxDepth) {
-            return;
-        }
-        int[] currentChars = null;
-        if (codeSize <= inputIndex) {
-            completion = true;
-        } else {
-            currentChars = codes.getCodesAt(inputIndex);
-        }
-
-        for (int i = 0; i < count; i++) {
-            final Node node = roots.get(i); 
-            final char c = node.code;
-            final char lowerC = toLowerCase(c);
-            boolean terminal = node.terminal;
-            List<Node> children = node.children;
-            int freq = node.frequency;
-            if (completion) {
-                word[depth] = c;
-                if (terminal) {
-                    if (!callback.addWord(word, 0, depth + 1, (int) (freq * snr))) {
-                        return;
-                    }
-                }
-                if (children != null) {
-                    getWordsRec(children, codes, word, depth + 1, completion, snr, inputIndex, 
-                            callback);
-                }
-            } else if (c == QUOTE && currentChars[0] != QUOTE) {
-                // Skip the ' and continue deeper
-                word[depth] = QUOTE;
-                if (children != null) {
-                    getWordsRec(children, codes, word, depth + 1, completion, snr, inputIndex, 
-                            callback);
-                }
-            } else {
-                for (int j = 0; j < currentChars.length; j++) {
-                    float addedAttenuation = (j > 0 ? 1f : 3f);
-                    if (currentChars[j] == -1) {
-                        break;
-                    }
-                    if (currentChars[j] == lowerC || currentChars[j] == c) {
-                        word[depth] = c;
-
-                        if (codes.size() == depth + 1) {
-                            if (terminal) {
-                                if (INCLUDE_TYPED_WORD_IF_VALID 
-                                        || !same(word, depth + 1, codes.getTypedWord())) {
-                                    callback.addWord(word, 0, depth + 1,
-                                        (int) (freq * snr * addedAttenuation 
-                                                * FULL_WORD_FREQ_MULTIPLIER));
-                                }
-                            }
-                            if (children != null) {
-                                getWordsRec(children, codes, word, depth + 1, 
-                                        true, snr * addedAttenuation, inputIndex + 1, callback);
-                            }
-                        } else if (children != null) {
-                            getWordsRec(children, codes, word, depth + 1, 
-                                    false, snr * addedAttenuation, inputIndex + 1, callback);
-                        }
-                    }
-                }
-            }
-        }
+        return super.isValidWord(word);
     }
 
     private void addWords(Cursor cursor) {
-        mRoots = new ArrayList<Node>();
-        
+        clearDictionary();
+
+        final int maxWordLength = getMaxWordLength();
         if (cursor.moveToFirst()) {
             while (!cursor.isAfterLast()) {
                 String word = cursor.getString(INDEX_WORD);
                 int frequency = cursor.getInt(INDEX_FREQUENCY);
                 // Safeguard against adding really long words. Stack may overflow due
                 // to recursion
-                if (word.length() < MAX_WORD_LENGTH) {
-                    addWordRec(mRoots, word, 0, frequency);
+                if (word.length() < maxWordLength) {
+                    super.addWord(word, frequency);
                 }
                 cursor.moveToNext();
             }
         }
         cursor.close();
     }
-    
-    private void addWordRec(List<Node> children, final String word, 
-            final int depth, final int frequency) {
-        
-        final int wordLength = word.length();
-        final char c = word.charAt(depth);
-        // Does children have the current character?
-        final int childrenLength = children.size();
-        Node childNode = null;
-        boolean found = false;
-        for (int i = 0; i < childrenLength; i++) {
-            childNode = children.get(i);
-            if (childNode.code == c) {
-                found = true;
-                break;
-            }
-        }
-        if (!found) {
-            childNode = new Node();
-            childNode.code = c;
-            children.add(childNode);
-        }
-        if (wordLength == depth + 1) {
-            // Terminate this word
-            childNode.terminal = true;
-            childNode.frequency += frequency; // If there are multiple similar words
-            return;
-        }
-        if (childNode.children == null) {
-            childNode.children = new ArrayList<Node>(); 
-        }
-        addWordRec(childNode.children, word, depth + 1, frequency);
-    }
-
-    /**
-     * Table mapping most combined Latin, Greek, and Cyrillic characters
-     * to their base characters.  If c is in range, BASE_CHARS[c] == c
-     * if c is not a combined character, or the base character if it
-     * is combined.
-     */
-    static final char BASE_CHARS[] = {
-        0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 
-        0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 
-        0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 
-        0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 
-        0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 
-        0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 
-        0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 
-        0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 
-        0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 
-        0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 
-        0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 
-        0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 
-        0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 
-        0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 
-        0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 
-        0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 
-        0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 
-        0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 
-        0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 
-        0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 
-        0x0020, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 
-        0x0020, 0x00a9, 0x0061, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0020, 
-        0x00b0, 0x00b1, 0x0032, 0x0033, 0x0020, 0x03bc, 0x00b6, 0x00b7, 
-        0x0020, 0x0031, 0x006f, 0x00bb, 0x0031, 0x0031, 0x0033, 0x00bf, 
-        0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x00c6, 0x0043, 
-        0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, 
-        0x00d0, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x00d7, 
-        0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x00de, 0x0073, // Manually changed d8 to 4f
-                                                                        // Manually changed df to 73
-        0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x00e6, 0x0063, 
-        0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, 
-        0x00f0, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x00f7, 
-        0x006f, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0x00fe, 0x0079, // Manually changed f8 to 6f
-        0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, 
-        0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, 
-        0x0110, 0x0111, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 
-        0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067, 
-        0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0126, 0x0127, 
-        0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 
-        0x0049, 0x0131, 0x0049, 0x0069, 0x004a, 0x006a, 0x004b, 0x006b, 
-        0x0138, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 
-        0x006c, 0x0141, 0x0142, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 
-        0x006e, 0x02bc, 0x014a, 0x014b, 0x004f, 0x006f, 0x004f, 0x006f, 
-        0x004f, 0x006f, 0x0152, 0x0153, 0x0052, 0x0072, 0x0052, 0x0072, 
-        0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 
-        0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0166, 0x0167, 
-        0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 
-        0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, 
-        0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, 
-        0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185, 0x0186, 0x0187, 
-        0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d, 0x018e, 0x018f, 
-        0x0190, 0x0191, 0x0192, 0x0193, 0x0194, 0x0195, 0x0196, 0x0197, 
-        0x0198, 0x0199, 0x019a, 0x019b, 0x019c, 0x019d, 0x019e, 0x019f, 
-        0x004f, 0x006f, 0x01a2, 0x01a3, 0x01a4, 0x01a5, 0x01a6, 0x01a7, 
-        0x01a8, 0x01a9, 0x01aa, 0x01ab, 0x01ac, 0x01ad, 0x01ae, 0x0055, 
-        0x0075, 0x01b1, 0x01b2, 0x01b3, 0x01b4, 0x01b5, 0x01b6, 0x01b7, 
-        0x01b8, 0x01b9, 0x01ba, 0x01bb, 0x01bc, 0x01bd, 0x01be, 0x01bf, 
-        0x01c0, 0x01c1, 0x01c2, 0x01c3, 0x0044, 0x0044, 0x0064, 0x004c, 
-        0x004c, 0x006c, 0x004e, 0x004e, 0x006e, 0x0041, 0x0061, 0x0049, 
-        0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x00dc, 0x00fc, 0x00dc, 
-        0x00fc, 0x00dc, 0x00fc, 0x00dc, 0x00fc, 0x01dd, 0x00c4, 0x00e4, 
-        0x0226, 0x0227, 0x00c6, 0x00e6, 0x01e4, 0x01e5, 0x0047, 0x0067, 
-        0x004b, 0x006b, 0x004f, 0x006f, 0x01ea, 0x01eb, 0x01b7, 0x0292, 
-        0x006a, 0x0044, 0x0044, 0x0064, 0x0047, 0x0067, 0x01f6, 0x01f7, 
-        0x004e, 0x006e, 0x00c5, 0x00e5, 0x00c6, 0x00e6, 0x00d8, 0x00f8, 
-        0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 
-        0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 
-        0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, 
-        0x0053, 0x0073, 0x0054, 0x0074, 0x021c, 0x021d, 0x0048, 0x0068, 
-        0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, 0x0041, 0x0061, 
-        0x0045, 0x0065, 0x00d6, 0x00f6, 0x00d5, 0x00f5, 0x004f, 0x006f, 
-        0x022e, 0x022f, 0x0059, 0x0079, 0x0234, 0x0235, 0x0236, 0x0237, 
-        0x0238, 0x0239, 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x023f, 
-        0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, 
-        0x0248, 0x0249, 0x024a, 0x024b, 0x024c, 0x024d, 0x024e, 0x024f, 
-        0x0250, 0x0251, 0x0252, 0x0253, 0x0254, 0x0255, 0x0256, 0x0257, 
-        0x0258, 0x0259, 0x025a, 0x025b, 0x025c, 0x025d, 0x025e, 0x025f, 
-        0x0260, 0x0261, 0x0262, 0x0263, 0x0264, 0x0265, 0x0266, 0x0267, 
-        0x0268, 0x0269, 0x026a, 0x026b, 0x026c, 0x026d, 0x026e, 0x026f, 
-        0x0270, 0x0271, 0x0272, 0x0273, 0x0274, 0x0275, 0x0276, 0x0277, 
-        0x0278, 0x0279, 0x027a, 0x027b, 0x027c, 0x027d, 0x027e, 0x027f, 
-        0x0280, 0x0281, 0x0282, 0x0283, 0x0284, 0x0285, 0x0286, 0x0287, 
-        0x0288, 0x0289, 0x028a, 0x028b, 0x028c, 0x028d, 0x028e, 0x028f, 
-        0x0290, 0x0291, 0x0292, 0x0293, 0x0294, 0x0295, 0x0296, 0x0297, 
-        0x0298, 0x0299, 0x029a, 0x029b, 0x029c, 0x029d, 0x029e, 0x029f, 
-        0x02a0, 0x02a1, 0x02a2, 0x02a3, 0x02a4, 0x02a5, 0x02a6, 0x02a7, 
-        0x02a8, 0x02a9, 0x02aa, 0x02ab, 0x02ac, 0x02ad, 0x02ae, 0x02af, 
-        0x0068, 0x0266, 0x006a, 0x0072, 0x0279, 0x027b, 0x0281, 0x0077, 
-        0x0079, 0x02b9, 0x02ba, 0x02bb, 0x02bc, 0x02bd, 0x02be, 0x02bf, 
-        0x02c0, 0x02c1, 0x02c2, 0x02c3, 0x02c4, 0x02c5, 0x02c6, 0x02c7, 
-        0x02c8, 0x02c9, 0x02ca, 0x02cb, 0x02cc, 0x02cd, 0x02ce, 0x02cf, 
-        0x02d0, 0x02d1, 0x02d2, 0x02d3, 0x02d4, 0x02d5, 0x02d6, 0x02d7, 
-        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x02de, 0x02df, 
-        0x0263, 0x006c, 0x0073, 0x0078, 0x0295, 0x02e5, 0x02e6, 0x02e7, 
-        0x02e8, 0x02e9, 0x02ea, 0x02eb, 0x02ec, 0x02ed, 0x02ee, 0x02ef, 
-        0x02f0, 0x02f1, 0x02f2, 0x02f3, 0x02f4, 0x02f5, 0x02f6, 0x02f7, 
-        0x02f8, 0x02f9, 0x02fa, 0x02fb, 0x02fc, 0x02fd, 0x02fe, 0x02ff, 
-        0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307, 
-        0x0308, 0x0309, 0x030a, 0x030b, 0x030c, 0x030d, 0x030e, 0x030f, 
-        0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317, 
-        0x0318, 0x0319, 0x031a, 0x031b, 0x031c, 0x031d, 0x031e, 0x031f, 
-        0x0320, 0x0321, 0x0322, 0x0323, 0x0324, 0x0325, 0x0326, 0x0327, 
-        0x0328, 0x0329, 0x032a, 0x032b, 0x032c, 0x032d, 0x032e, 0x032f, 
-        0x0330, 0x0331, 0x0332, 0x0333, 0x0334, 0x0335, 0x0336, 0x0337, 
-        0x0338, 0x0339, 0x033a, 0x033b, 0x033c, 0x033d, 0x033e, 0x033f, 
-        0x0300, 0x0301, 0x0342, 0x0313, 0x0308, 0x0345, 0x0346, 0x0347, 
-        0x0348, 0x0349, 0x034a, 0x034b, 0x034c, 0x034d, 0x034e, 0x034f, 
-        0x0350, 0x0351, 0x0352, 0x0353, 0x0354, 0x0355, 0x0356, 0x0357, 
-        0x0358, 0x0359, 0x035a, 0x035b, 0x035c, 0x035d, 0x035e, 0x035f, 
-        0x0360, 0x0361, 0x0362, 0x0363, 0x0364, 0x0365, 0x0366, 0x0367, 
-        0x0368, 0x0369, 0x036a, 0x036b, 0x036c, 0x036d, 0x036e, 0x036f, 
-        0x0370, 0x0371, 0x0372, 0x0373, 0x02b9, 0x0375, 0x0376, 0x0377, 
-        0x0378, 0x0379, 0x0020, 0x037b, 0x037c, 0x037d, 0x003b, 0x037f, 
-        0x0380, 0x0381, 0x0382, 0x0383, 0x0020, 0x00a8, 0x0391, 0x00b7, 
-        0x0395, 0x0397, 0x0399, 0x038b, 0x039f, 0x038d, 0x03a5, 0x03a9, 
-        0x03ca, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 
-        0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 
-        0x03a0, 0x03a1, 0x03a2, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 
-        0x03a8, 0x03a9, 0x0399, 0x03a5, 0x03b1, 0x03b5, 0x03b7, 0x03b9, 
-        0x03cb, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 
-        0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 
-        0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 
-        0x03c8, 0x03c9, 0x03b9, 0x03c5, 0x03bf, 0x03c5, 0x03c9, 0x03cf, 
-        0x03b2, 0x03b8, 0x03a5, 0x03d2, 0x03d2, 0x03c6, 0x03c0, 0x03d7, 
-        0x03d8, 0x03d9, 0x03da, 0x03db, 0x03dc, 0x03dd, 0x03de, 0x03df, 
-        0x03e0, 0x03e1, 0x03e2, 0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x03e7, 
-        0x03e8, 0x03e9, 0x03ea, 0x03eb, 0x03ec, 0x03ed, 0x03ee, 0x03ef, 
-        0x03ba, 0x03c1, 0x03c2, 0x03f3, 0x0398, 0x03b5, 0x03f6, 0x03f7, 
-        0x03f8, 0x03a3, 0x03fa, 0x03fb, 0x03fc, 0x03fd, 0x03fe, 0x03ff, 
-        0x0415, 0x0415, 0x0402, 0x0413, 0x0404, 0x0405, 0x0406, 0x0406, 
-        0x0408, 0x0409, 0x040a, 0x040b, 0x041a, 0x0418, 0x0423, 0x040f, 
-        0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 
-        0x0418, 0x0418, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 
-        0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 
-        0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 
-        0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 
-        0x0438, 0x0438, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 
-        0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 
-        0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 
-        0x0435, 0x0435, 0x0452, 0x0433, 0x0454, 0x0455, 0x0456, 0x0456, 
-        0x0458, 0x0459, 0x045a, 0x045b, 0x043a, 0x0438, 0x0443, 0x045f, 
-        0x0460, 0x0461, 0x0462, 0x0463, 0x0464, 0x0465, 0x0466, 0x0467, 
-        0x0468, 0x0469, 0x046a, 0x046b, 0x046c, 0x046d, 0x046e, 0x046f, 
-        0x0470, 0x0471, 0x0472, 0x0473, 0x0474, 0x0475, 0x0474, 0x0475, 
-        0x0478, 0x0479, 0x047a, 0x047b, 0x047c, 0x047d, 0x047e, 0x047f, 
-        0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487, 
-        0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x048f, 
-        0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x0497, 
-        0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x049f, 
-        0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x04a7, 
-        0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x04af, 
-        0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x04b7, 
-        0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x04be, 0x04bf, 
-        0x04c0, 0x0416, 0x0436, 0x04c3, 0x04c4, 0x04c5, 0x04c6, 0x04c7, 
-        0x04c8, 0x04c9, 0x04ca, 0x04cb, 0x04cc, 0x04cd, 0x04ce, 0x04cf, 
-        0x0410, 0x0430, 0x0410, 0x0430, 0x04d4, 0x04d5, 0x0415, 0x0435, 
-        0x04d8, 0x04d9, 0x04d8, 0x04d9, 0x0416, 0x0436, 0x0417, 0x0437, 
-        0x04e0, 0x04e1, 0x0418, 0x0438, 0x0418, 0x0438, 0x041e, 0x043e, 
-        0x04e8, 0x04e9, 0x04e8, 0x04e9, 0x042d, 0x044d, 0x0423, 0x0443, 
-        0x0423, 0x0443, 0x0423, 0x0443, 0x0427, 0x0447, 0x04f6, 0x04f7, 
-        0x042b, 0x044b, 0x04fa, 0x04fb, 0x04fc, 0x04fd, 0x04fe, 0x04ff, 
-    };
-
-    // generated with:
-    // cat UnicodeData.txt | perl -e 'while (<>) { @foo = split(/;/); $foo[5] =~ s/<.*> //; $base[hex($foo[0])] = hex($foo[5]);} for ($i = 0; $i < 0x500; $i += 8) { for ($j = $i; $j < $i + 8; $j++) { printf("0x%04x, ", $base[$j] ? $base[$j] : $j)}; print "\n"; }'
-
 }
diff --git a/src/com/android/inputmethod/latin/WordComposer.java b/src/com/android/inputmethod/latin/WordComposer.java
index c950a7f185..50725d481e 100644
--- a/src/com/android/inputmethod/latin/WordComposer.java
+++ b/src/com/android/inputmethod/latin/WordComposer.java
@@ -26,7 +26,7 @@ public class WordComposer {
     /**
      * The list of unicode values for each keystroke (including surrounding keys)
      */
-    private List<int[]> mCodes;
+    private ArrayList<int[]> mCodes;
     
     /**
      * The word chosen from the candidate list, until it is committed.
@@ -34,6 +34,8 @@ public class WordComposer {
     private String mPreferredWord;
     
     private StringBuilder mTypedWord;
+
+    private int mCapsCount;
     
     /**
      * Whether the user chose to capitalize the word.
@@ -53,6 +55,7 @@ public class WordComposer {
         mIsCapitalized = false;
         mPreferredWord = null;
         mTypedWord.setLength(0);
+        mCapsCount = 0;
     }
 
     /**
@@ -80,6 +83,7 @@ public class WordComposer {
     public void add(int primaryCode, int[] codes) {
         mTypedWord.append((char) primaryCode);
         mCodes.add(codes);
+        if (Character.isUpperCase((char) primaryCode)) mCapsCount++;
     }
 
     /**
@@ -87,7 +91,10 @@ public class WordComposer {
      */
     public void deleteLast() {
         mCodes.remove(mCodes.size() - 1);
-        mTypedWord.deleteCharAt(mTypedWord.length() - 1);
+        final int lastPos = mTypedWord.length() - 1;
+        char last = mTypedWord.charAt(lastPos);
+        mTypedWord.deleteCharAt(lastPos);
+        if (Character.isUpperCase(last)) mCapsCount--;
     }
 
     /**
@@ -138,4 +145,11 @@ public class WordComposer {
     public CharSequence getPreferredWord() {
         return mPreferredWord != null ? mPreferredWord : getTypedWord();
     }
+
+    /**
+     * Returns true if more than one character is upper case, otherwise returns false.
+     */
+    public boolean isMostlyCaps() {
+        return mCapsCount > 1;
+    }
 }
-- 
GitLab