diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_lmp.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_lmp.9.png
new file mode 100644
index 0000000..814e402
--- /dev/null
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_lmp.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_lmp.9.png
new file mode 100644
index 0000000..90abe39
--- /dev/null
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png
new file mode 100644
index 0000000..48eeb3f
--- /dev/null
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png
new file mode 100644
index 0000000..71e0683
--- /dev/null
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_lmp.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_lmp.9.png
new file mode 100644
index 0000000..6768241
--- /dev/null
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_lmp.9.png b/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_lmp.9.png
new file mode 100644
index 0000000..10f8e97
--- /dev/null
+++ b/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background_lmp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background_lmp.9.png
new file mode 100644
index 0000000..be39415
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_background_lmp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_background_lmp.9.png
new file mode 100644
index 0000000..9fa6d00
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_left_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_lmp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_lmp.9.png
new file mode 100644
index 0000000..c73269b
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lmp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lmp.9.png
new file mode 100644
index 0000000..fffd402
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_background_lmp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_background_lmp.9.png
new file mode 100644
index 0000000..61c23c1
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_right_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_lmp.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_lmp.9.png
new file mode 100644
index 0000000..827d743
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_popup_panel_background_lmp.9.png b/java/res/drawable-hdpi/keyboard_popup_panel_background_lmp.9.png
new file mode 100644
index 0000000..f9dd3b8
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_popup_panel_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_lmp.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_lmp.9.png
new file mode 100644
index 0000000..b7b2dca
--- /dev/null
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_lmp.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_lmp.9.png
new file mode 100644
index 0000000..4a92b80
--- /dev/null
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png
new file mode 100644
index 0000000..72125a0
--- /dev/null
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png
new file mode 100644
index 0000000..82413d4
--- /dev/null
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_lmp.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_lmp.9.png
new file mode 100644
index 0000000..0493859
--- /dev/null
+++ b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_lmp.9.png b/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_lmp.9.png
new file mode 100644
index 0000000..ee0aae2
--- /dev/null
+++ b/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_background_lmp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_background_lmp.9.png
new file mode 100644
index 0000000..625490b
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_background_lmp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_background_lmp.9.png
new file mode 100644
index 0000000..427c870
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_left_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_lmp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_lmp.9.png
new file mode 100644
index 0000000..ea75729
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lmp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lmp.9.png
new file mode 100644
index 0000000..1911c42
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_background_lmp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_background_lmp.9.png
new file mode 100644
index 0000000..cdef116
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_right_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_lmp.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_lmp.9.png
new file mode 100644
index 0000000..dea5d07
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_popup_panel_background_lmp.9.png b/java/res/drawable-mdpi/keyboard_popup_panel_background_lmp.9.png
new file mode 100644
index 0000000..8965055
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_popup_panel_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_lmp.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_lmp.9.png
new file mode 100644
index 0000000..20251a0
--- /dev/null
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_lmp.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_lmp.9.png
new file mode 100644
index 0000000..84d1739
--- /dev/null
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png
new file mode 100644
index 0000000..ee4490e
--- /dev/null
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png
new file mode 100644
index 0000000..e812477
--- /dev/null
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_lmp.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_lmp.9.png
new file mode 100644
index 0000000..f770962
--- /dev/null
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_lmp.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_lmp.9.png
new file mode 100644
index 0000000..891d000
--- /dev/null
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_background_lmp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_background_lmp.9.png
new file mode 100644
index 0000000..c211d89
--- /dev/null
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_lmp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_lmp.9.png
new file mode 100644
index 0000000..543bc76
--- /dev/null
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_lmp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_lmp.9.png
new file mode 100644
index 0000000..ec42aad
--- /dev/null
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lmp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lmp.9.png
new file mode 100644
index 0000000..319e9d7
--- /dev/null
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_lmp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_lmp.9.png
new file mode 100644
index 0000000..052032b
--- /dev/null
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_lmp.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_lmp.9.png
new file mode 100644
index 0000000..c7e9d1c
--- /dev/null
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_popup_panel_background_lmp.9.png b/java/res/drawable-xhdpi/keyboard_popup_panel_background_lmp.9.png
new file mode 100644
index 0000000..36df715
--- /dev/null
+++ b/java/res/drawable-xhdpi/keyboard_popup_panel_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_dark_normal_on_lmp.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_normal_on_lmp.9.png
new file mode 100644
index 0000000..97f9625
--- /dev/null
+++ b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_normal_on_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_lmp.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_lmp.9.png
new file mode 100644
index 0000000..dfb16a7
--- /dev/null
+++ b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png
new file mode 100644
index 0000000..bf1d346
--- /dev/null
+++ b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_off_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png
new file mode 100644
index 0000000..9622771
--- /dev/null
+++ b/java/res/drawable-xxhdpi/btn_keyboard_key_dark_pressed_on_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_light_pressed_lmp.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_light_pressed_lmp.9.png
new file mode 100644
index 0000000..17144b6
--- /dev/null
+++ b/java/res/drawable-xxhdpi/btn_keyboard_key_light_pressed_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_lmp.9.png b/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_lmp.9.png
new file mode 100644
index 0000000..0cbb2ec
--- /dev/null
+++ b/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lmp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lmp.9.png
new file mode 100644
index 0000000..fd2f9e5
--- /dev/null
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_lmp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_lmp.9.png
new file mode 100644
index 0000000..3ab7900
--- /dev/null
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_lmp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_lmp.9.png
new file mode 100644
index 0000000..99543a1
--- /dev/null
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lmp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lmp.9.png
new file mode 100644
index 0000000..121411a
--- /dev/null
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_lmp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_lmp.9.png
new file mode 100644
index 0000000..e9e3792
--- /dev/null
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_lmp.9.png b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_lmp.9.png
new file mode 100644
index 0000000..6c1143a
--- /dev/null
+++ b/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/keyboard_popup_panel_background_lmp.9.png b/java/res/drawable-xxhdpi/keyboard_popup_panel_background_lmp.9.png
new file mode 100644
index 0000000..91d5d7f
--- /dev/null
+++ b/java/res/drawable-xxhdpi/keyboard_popup_panel_background_lmp.9.png
Binary files differ
diff --git a/java/res/drawable/btn_keyboard_key_functional_lmp.xml b/java/res/drawable/btn_keyboard_key_functional_lmp.xml
new file mode 100644
index 0000000..427b8d5
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_functional_lmp.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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">
+    <!-- Functional keys. -->
+    <item android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_lmp" />
+    <item android:drawable="@android:color/transparent" />
+</selector>
diff --git a/java/res/drawable/btn_keyboard_key_ics.xml b/java/res/drawable/btn_keyboard_key_ics.xml
index 259bb9b..9db0eee 100644
--- a/java/res/drawable/btn_keyboard_key_ics.xml
+++ b/java/res/drawable/btn_keyboard_key_ics.xml
@@ -39,7 +39,7 @@
 
     <!-- Empty background keys. -->
     <item android:state_empty="true"
-          android:drawable="@drawable/transparent" />
+          android:drawable="@android:color/transparent" />
 
     <!-- Normal keys. -->
     <item android:state_pressed="true"
diff --git a/java/res/drawable/btn_keyboard_key_klp.xml b/java/res/drawable/btn_keyboard_key_klp.xml
index 16b5fa0..500e3ea 100644
--- a/java/res/drawable/btn_keyboard_key_klp.xml
+++ b/java/res/drawable/btn_keyboard_key_klp.xml
@@ -39,7 +39,7 @@
 
     <!-- Empty background keys. -->
     <item android:state_empty="true"
-          android:drawable="@drawable/transparent" />
+          android:drawable="@android:color/transparent" />
 
     <!-- Normal keys. -->
     <item android:state_pressed="true"
diff --git a/java/res/drawable/btn_keyboard_key_lmp.xml b/java/res/drawable/btn_keyboard_key_lmp.xml
new file mode 100644
index 0000000..fdd19df
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_lmp.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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">
+    <!-- Functional keys. -->
+    <item android:state_single="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_lmp" />
+    <item android:state_single="true"
+          android:drawable="@android:color/transparent" />
+
+    <!-- Action keys. -->
+    <item android:state_active="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_lmp" />
+    <item android:state_active="true"
+          android:drawable="@android:color/transparent" />
+
+    <!-- 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_dark_pressed_on_lmp" />
+    <item android:state_checkable="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_lmp" />
+    <item android:state_checkable="true" android:state_checked="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_normal_on_lmp" />
+    <item android:state_checkable="true"
+          android:drawable="@android:color/transparent" />
+
+    <!-- Empty background keys. -->
+    <item android:state_empty="true"
+          android:drawable="@android:color/transparent" />
+
+    <!-- Normal keys. -->
+    <item android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_light_pressed_lmp" />
+    <item android:drawable="@android:color/transparent" />
+</selector>
diff --git a/java/res/drawable/btn_keyboard_key_popup_ics.xml b/java/res/drawable/btn_keyboard_key_popup_ics.xml
index 31b6131..17d646b 100644
--- a/java/res/drawable/btn_keyboard_key_popup_ics.xml
+++ b/java/res/drawable/btn_keyboard_key_popup_ics.xml
@@ -17,5 +17,5 @@
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/btn_keyboard_key_popup_selected_ics" />
-    <item android:drawable="@drawable/transparent" />
+    <item android:drawable="@android:color/transparent" />
 </selector>
diff --git a/java/res/drawable/btn_keyboard_key_popup_klp.xml b/java/res/drawable/btn_keyboard_key_popup_klp.xml
index 62cbca8..9dfc93a 100644
--- a/java/res/drawable/btn_keyboard_key_popup_klp.xml
+++ b/java/res/drawable/btn_keyboard_key_popup_klp.xml
@@ -17,5 +17,5 @@
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/btn_keyboard_key_popup_selected_klp" />
-    <item android:drawable="@drawable/transparent" />
+    <item android:drawable="@android:color/transparent" />
 </selector>
diff --git a/java/res/drawable/btn_keyboard_key_popup_lmp.xml b/java/res/drawable/btn_keyboard_key_popup_lmp.xml
new file mode 100644
index 0000000..ebedaea
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_popup_lmp.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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">
+    <item android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_popup_selected_lmp" />
+    <item android:drawable="@android:color/transparent" />
+</selector>
diff --git a/java/res/drawable/btn_keyboard_spacebar_lmp.xml b/java/res/drawable/btn_keyboard_spacebar_lmp.xml
new file mode 100644
index 0000000..516cb07
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_spacebar_lmp.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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">
+    <item android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_light_pressed_lmp" />
+    <item android:drawable="@android:color/transparent" />
+</selector>
diff --git a/java/res/drawable/transparent.xml b/java/res/drawable/btn_suggestion_lmp.xml
similarity index 74%
rename from java/res/drawable/transparent.xml
rename to java/res/drawable/btn_suggestion_lmp.xml
index 855cf2a..c778e23 100644
--- a/java/res/drawable/transparent.xml
+++ b/java/res/drawable/btn_suggestion_lmp.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2011, The Android Open Source Project
+** Copyright 2014, 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.
@@ -18,13 +18,10 @@
 */
 -->
 
-<shape
+<selector
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle"
 >
-    <solid
-        android:color="@android:color/transparent" />
-    <size
-        android:width="50dp"
-        android:height="40dp" />
-</shape>
+    <item
+        android:state_pressed="true"
+        android:drawable="@drawable/btn_keyboard_key_popup_selected_lmp" />
+</selector>
diff --git a/java/res/drawable/keyboard_key_feedback_lmp.xml b/java/res/drawable/keyboard_key_feedback_lmp.xml
new file mode 100644
index 0000000..cdbe64c
--- /dev/null
+++ b/java/res/drawable/keyboard_key_feedback_lmp.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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"
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- Left edge -->
+    <item latin:state_left_edge="true" latin:state_has_morekeys="true"
+          android:drawable="@drawable/keyboard_key_feedback_left_more_background_lmp" />
+    <item latin:state_left_edge="true"
+          android:drawable="@drawable/keyboard_key_feedback_left_background_lmp" />
+
+    <!-- Right edge -->
+    <item latin:state_right_edge="true" latin:state_has_morekeys="true"
+          android:drawable="@drawable/keyboard_key_feedback_right_more_background_lmp" />
+    <item latin:state_right_edge="true"
+          android:drawable="@drawable/keyboard_key_feedback_right_background_lmp" />
+
+    <item latin:state_has_morekeys="true"
+          android:drawable="@drawable/keyboard_key_feedback_more_background_lmp" />
+    <item android:drawable="@drawable/keyboard_key_feedback_background_lmp" />
+</selector>
diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml
index ed387e5..ff0b403 100644
--- a/java/res/layout/input_view.xml
+++ b/java/res/layout/input_view.xml
@@ -43,8 +43,6 @@
             android:layout_width="match_parent"
             android:layout_height="@dimen/config_suggestions_strip_height"
             android:gravity="center_vertical"
-            android:paddingRight="@dimen/config_suggestions_strip_horizontal_padding"
-            android:paddingLeft="@dimen/config_suggestions_strip_horizontal_padding"
             style="?attr/suggestionStripViewStyle" />
 
         <!-- To ensure that key preview popup is correctly placed when the current system locale is
diff --git a/java/res/layout/suggestions_strip.xml b/java/res/layout/suggestions_strip.xml
index 0b61499..bff9a1e 100644
--- a/java/res/layout/suggestions_strip.xml
+++ b/java/res/layout/suggestions_strip.xml
@@ -24,12 +24,16 @@
         android:id="@+id/suggestions_strip"
         android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="match_parent" />
+        android:layout_height="match_parent"
+        android:layout_marginLeft="@dimen/config_suggestions_strip_horizontal_margin"
+        android:layout_marginRight="@dimen/config_suggestions_strip_horizontal_margin" />
     <LinearLayout
         android:id="@+id/add_to_dictionary_strip"
         android:orientation="horizontal"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:layout_marginLeft="@dimen/config_suggestions_strip_horizontal_margin"
+        android:layout_marginRight="@dimen/config_suggestions_strip_horizontal_margin"
         android:visibility="invisible">
         <TextView
             android:id="@+id/word_to_save"
@@ -49,7 +53,9 @@
         android:id="@+id/important_notice_strip"
         android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:layout_marginLeft="@dimen/config_suggestions_strip_horizontal_margin"
+        android:layout_marginRight="@dimen/config_suggestions_strip_horizontal_margin">
         <TextView
             android:id="@+id/important_notice_title"
             android:layout_width="match_parent"
diff --git a/java/res/values-af/strings-talkback-descriptions.xml b/java/res/values-af/strings-talkback-descriptions.xml
index 3529e5a..a3a94ad 100644
--- a/java/res/values-af/strings-talkback-descriptions.xml
+++ b/java/res/values-af/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Vorige"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift geaktiveer"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bokas-slot geaktiveer"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift gedeaktiveer"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Simboolmodus"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Simbole-skuifsleutelmodus"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Lettermodus"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Foonmodus"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Foonsimbool-modus"</string>
diff --git a/java/res/values-am/strings-talkback-descriptions.xml b/java/res/values-am/strings-talkback-descriptions.xml
index 2d6f0e5..029efac 100644
--- a/java/res/values-am/strings-talkback-descriptions.xml
+++ b/java/res/values-am/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"ቀዳሚ"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"መቀያየሪያ ቁልፍ ነቅቷል"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"አብይ ፊደል ማድረጊያ ቁልፍ ነቅቷል"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"መቀያየሪያ ቁልፍ ተሰናክሏል"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"የምልክቶች ሁኔታ"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"የምልክቶች ቀይር ሁነታ"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"የደብዳቤዎች ሁኔታ"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"የስልክ ሁኔታ"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"የስልክ ምልክቶች ሁኔታ"</string>
diff --git a/java/res/values-ar/strings-talkback-descriptions.xml b/java/res/values-ar/strings-talkback-descriptions.xml
index 9d2eab5..4a97582 100644
--- a/java/res/values-ar/strings-talkback-descriptions.xml
+++ b/java/res/values-ar/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"السابق"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"‏تم تمكين Shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"‏تم تمكين Caps lock"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"‏تم تعطيل Shift"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"وضع الرموز"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"وضع تبديل الرموز"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"وضع الأحرف"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"وضع الهاتف"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"وضع رموز الهاتف"</string>
diff --git a/java/res/values-az-rAZ/strings-talkback-descriptions.xml b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
index c5abc5c..3215897 100644
--- a/java/res/values-az-rAZ/strings-talkback-descriptions.xml
+++ b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Əvvəlki"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Sürüşdürmə aktivdir"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Böyük hərf kilidi aktivdir"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Sürüşdürmə deaktivdir"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Simvol rejimi"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Simvol dəyişmə rejimi"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Hərf rejimi"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefon rejimi"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefon simvol rejimi"</string>
diff --git a/java/res/values-bg/strings-talkback-descriptions.xml b/java/res/values-bg/strings-talkback-descriptions.xml
index c944c57..483f778 100644
--- a/java/res/values-bg/strings-talkback-descriptions.xml
+++ b/java/res/values-bg/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Назад"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"„Shift“ е активиран"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"„Caps Lock“ е активиран"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"„Shift“ е деактивиран"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим за символи"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Режим за промяна на символите"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Режим за букви"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Режим за телефонни номера"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Режим за символи на телефона"</string>
diff --git a/java/res/values-ca/strings-talkback-descriptions.xml b/java/res/values-ca/strings-talkback-descriptions.xml
index 389200b..77894e7 100644
--- a/java/res/values-ca/strings-talkback-descriptions.xml
+++ b/java/res/values-ca/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Anterior"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Maj activat"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bloq Maj activat"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Maj desactivat"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mode de símbols"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mode de canvi de símbols"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mode de lletres"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mode de telèfon"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mode de símbols de telèfon"</string>
diff --git a/java/res/values-cs/strings-talkback-descriptions.xml b/java/res/values-cs/strings-talkback-descriptions.xml
index 7ba691c..8f97f12 100644
--- a/java/res/values-cs/strings-talkback-descriptions.xml
+++ b/java/res/values-cs/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Předchozí"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Klávesa Shift je aktivní"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Klávesa Caps Lock je aktivní"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Klávesa Shift je neaktivní"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Režim symbolů"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Režim změny symbolů"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Režim písmen"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Režim telefonu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Režim telefonních symbolů"</string>
diff --git a/java/res/values-da/strings-talkback-descriptions.xml b/java/res/values-da/strings-talkback-descriptions.xml
index 2d613d6..f4e3e16 100644
--- a/java/res/values-da/strings-talkback-descriptions.xml
+++ b/java/res/values-da/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Forrige"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift er aktiveret"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock er aktiveret"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift er deaktiveret"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symboltilstand"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symboltilstand"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Bogstavtilstand"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefontilstand"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefonsymboltilstand"</string>
diff --git a/java/res/values-de/strings-talkback-descriptions.xml b/java/res/values-de/strings-talkback-descriptions.xml
index 9fef632..953249b 100644
--- a/java/res/values-de/strings-talkback-descriptions.xml
+++ b/java/res/values-de/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Zurück"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Umschalttaste aktiviert"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Feststelltaste aktiviert"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Umschalttaste deaktiviert"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolmodus"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbolumschaltmodus"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Buchstabenmodus"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonmodus"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefon-Symbolmodus"</string>
diff --git a/java/res/values-el/strings-talkback-descriptions.xml b/java/res/values-el/strings-talkback-descriptions.xml
index 7393e63..28d31a1 100644
--- a/java/res/values-el/strings-talkback-descriptions.xml
+++ b/java/res/values-el/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Προηγούμενο"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Το Shift είναι ενεργοποιημένο"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Το Caps lock είναι ενεργοποιημένο"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Το Shift είναι απενεργοποιημένο"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Λειτουργία συμβόλων"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Λειτουργία μετατόπισης συμβόλων"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Λειτουργία γραμμάτων"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Λειτουργία τηλεφώνου"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Λειτουργία συμβόλων τηλεφώνου"</string>
diff --git a/java/res/values-en-rGB/strings-talkback-descriptions.xml b/java/res/values-en-rGB/strings-talkback-descriptions.xml
index c9393ee..ccf5188 100644
--- a/java/res/values-en-rGB/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rGB/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Previous"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift enabled"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock enabled"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift disabled"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbols mode"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbols shift mode"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Letters mode"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Phone mode"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Phone symbols mode"</string>
diff --git a/java/res/values-en-rIN/strings-talkback-descriptions.xml b/java/res/values-en-rIN/strings-talkback-descriptions.xml
index c9393ee..ccf5188 100644
--- a/java/res/values-en-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rIN/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Previous"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift enabled"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock enabled"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift disabled"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbols mode"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbols shift mode"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Letters mode"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Phone mode"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Phone symbols mode"</string>
diff --git a/java/res/values-es-rUS/strings-talkback-descriptions.xml b/java/res/values-es-rUS/strings-talkback-descriptions.xml
index ab4979f..b64ccae 100644
--- a/java/res/values-es-rUS/strings-talkback-descriptions.xml
+++ b/java/res/values-es-rUS/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Anterior"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Mayúsculas activado"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bloqueo de mayúsculas activado"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Mayúsculas desactivado"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modo Símbolos"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modo de cambio de símbolos"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modo Letras"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modo Teléfono"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modo Símbolos del teléfono"</string>
diff --git a/java/res/values-es/strings-talkback-descriptions.xml b/java/res/values-es/strings-talkback-descriptions.xml
index 72bb6f1..c539e70 100644
--- a/java/res/values-es/strings-talkback-descriptions.xml
+++ b/java/res/values-es/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Anterior"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Mayúsculas habilitadas"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bloq Mayús habilitado"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Mayúsculas inhabilitadas"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modo de símbolos"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modo de cambio de símbolos"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modo de letras"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modo de teléfono"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modo de símbolos de teléfono"</string>
diff --git a/java/res/values-et-rEE/strings-talkback-descriptions.xml b/java/res/values-et-rEE/strings-talkback-descriptions.xml
index 5a359c1..dcad8dd 100644
--- a/java/res/values-et-rEE/strings-talkback-descriptions.xml
+++ b/java/res/values-et-rEE/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Eelmine"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Tõstuklahv on lubatud"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Suurtähelukk on lubatud"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Tõstuklahv on keelatud"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Sümbolite režiim"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Sümbolite tõsturežiim"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Tähtede režiim"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonirežiim"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefoni sümbolite režiim"</string>
diff --git a/java/res/values-fa/strings-talkback-descriptions.xml b/java/res/values-fa/strings-talkback-descriptions.xml
index 26e99cb..bd3fa20 100644
--- a/java/res/values-fa/strings-talkback-descriptions.xml
+++ b/java/res/values-fa/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"قبلی"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"‏Shift فعال شد"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"‏Caps lock فعال شد"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"‏Shift غیرفعال شد"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"حالت نمادها"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"حالت تغییر نمادها"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"حالت حروف"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"حالت تلفن"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"حالت نمادهای تلفن"</string>
diff --git a/java/res/values-fi/strings-talkback-descriptions.xml b/java/res/values-fi/strings-talkback-descriptions.xml
index 2d0d7a7..2ba3cdc 100644
--- a/java/res/values-fi/strings-talkback-descriptions.xml
+++ b/java/res/values-fi/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Edellinen"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Vaihto päällä"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock päällä"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Vaihto pois päältä"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolit-tila"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbolien vaihtotila"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Näppäimistötila"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Puhelintila"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Puhelinsymbolit-tila"</string>
diff --git a/java/res/values-fr-rCA/strings-talkback-descriptions.xml b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
index b632edc..f6f1fbb 100644
--- a/java/res/values-fr-rCA/strings-talkback-descriptions.xml
+++ b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Précédente"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Touche Maj activée"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Verrouillage des majuscules activé"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Touche Majuscule désactivée"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mode Symboles"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mode majuscule pour les symboles"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mode Lettres"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mode Téléphone"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mode Symboles du téléphone"</string>
diff --git a/java/res/values-fr/donottranslate-config-spacing-and-punctuations.xml b/java/res/values-fr/donottranslate-config-spacing-and-punctuations.xml
index d72f72b..5a49142 100644
--- a/java/res/values-fr/donottranslate-config-spacing-and-punctuations.xml
+++ b/java/res/values-fr/donottranslate-config-spacing-and-punctuations.xml
@@ -22,6 +22,8 @@
     <string name="symbols_preceded_by_space">([{&amp;;:!?</string>
     <!-- Symbols that are normally followed by a space (used to add an auto-space after these) -->
     <string name="symbols_followed_by_space">.,;:!?)]}&amp;</string>
+    <!-- Symbols that behave like a single punctuation when typed next to each other -->
+    <string name="symbols_clustering_together">!?</string>
     <!-- Symbols that separate words -->
     <!-- Don't remove the enclosing double quotes, they protect whitespace (not just U+0020) -->
     <string name="symbols_word_separators">"&#x0009;&#x0020;&#x000A;&#x00A0;"()[]{}*&amp;&lt;&gt;+=|.,;:!?/_\"</string>
diff --git a/java/res/values-fr/strings-talkback-descriptions.xml b/java/res/values-fr/strings-talkback-descriptions.xml
index efa140b..49e68dd 100644
--- a/java/res/values-fr/strings-talkback-descriptions.xml
+++ b/java/res/values-fr/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Précédent"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"La touche Maj a bien été activée."</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Le verrouillage des majuscules a bien été activé."</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"La touche Maj a bien été désactivée."</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mode Symboles"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mode majuscule pour les symboles"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mode Lettres"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mode Téléphone"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mode Symboles du téléphone"</string>
diff --git a/java/res/values-hi/strings-talkback-descriptions.xml b/java/res/values-hi/strings-talkback-descriptions.xml
index a1468da..55d4578 100644
--- a/java/res/values-hi/strings-talkback-descriptions.xml
+++ b/java/res/values-hi/strings-talkback-descriptions.xml
@@ -20,25 +20,25 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="spoken_use_headphones" msgid="4313642710742229868">"ज़ोर से बोली जाने वाली पासवर्ड कुंजियां सुनने के लिए हैडसेट प्‍लग करें."</string>
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"जोर से बोली जाने वाली पासवर्ड कुंजियां सुनने के लिए हैडसेट प्‍लग करें."</string>
     <string name="spoken_current_text_is" msgid="4240549866156675799">"वर्तमान पाठ %s है"</string>
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"कोई पाठ नहीं डाला गया"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> को सुधार कर <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> करता है"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> स्वत: सुधार करता है"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"कुंजी कोड %d"</string>
-    <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
+    <string name="spoken_description_shift" msgid="7209798151676638728">"शिफ़्ट"</string>
     <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"शिफ़्ट चालू (अक्षम करने के लिए टैप करें)"</string>
     <string name="spoken_description_caps_lock" msgid="5020582161133170892">"कैप्स लॉक चालू (अक्षम करने के लिए टैप करें)"</string>
-    <string name="spoken_description_delete" msgid="3878902286264983302">"Delete"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"डिलीट"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"प्रतीक"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"अक्षर"</string>
     <string name="spoken_description_to_numeric" msgid="4560261331530795682">"संख्‍याएं"</string>
     <string name="spoken_description_settings" msgid="7281251004003143204">"सेटिंग"</string>
-    <string name="spoken_description_tab" msgid="8210782459446866716">"Tab"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"टैब"</string>
     <string name="spoken_description_space" msgid="5908716896642059145">"स्पेस"</string>
     <string name="spoken_description_mic" msgid="6153138783813452464">"ध्‍वनि इनपुट"</string>
     <string name="spoken_description_emoji" msgid="7990051553008088470">"ईमोजी"</string>
-    <string name="spoken_description_return" msgid="3183692287397645708">"Return"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"रिटर्न"</string>
     <string name="spoken_description_search" msgid="5099937658231911288">"खोजें"</string>
     <string name="spoken_description_dot" msgid="5644176501632325560">"डॉट"</string>
     <string name="spoken_description_language_switch" msgid="6818666779313544553">"भाषा स्विच करें"</string>
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"पिछला"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"शिफ़्ट सक्षम किया गया"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"कैप्स लॉक सक्षम किया गया"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"शिफ़्ट अक्षम किया गया"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"प्रतीक मोड"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"प्रतीक शिफ़्ट मोड"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"अक्षर मोड"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"फ़ोन मोड"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"फ़ोन प्रतीक मोड"</string>
diff --git a/java/res/values-hr/strings-talkback-descriptions.xml b/java/res/values-hr/strings-talkback-descriptions.xml
index 31c7eb5..b9e3477 100644
--- a/java/res/values-hr/strings-talkback-descriptions.xml
+++ b/java/res/values-hr/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Prethodna"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Omogućena je tipka Shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Omogućen je Caps Lock"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Tipka Shift onemogućena je"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Način unosa simbola"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Način shift simbola"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Način unosa slova"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonski način rada"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Način unosa telefonskih simbola"</string>
diff --git a/java/res/values-hu/strings-talkback-descriptions.xml b/java/res/values-hu/strings-talkback-descriptions.xml
index ec2c353..ef786bc 100644
--- a/java/res/values-hu/strings-talkback-descriptions.xml
+++ b/java/res/values-hu/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Előző"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift bekapcsolva"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock bekapcsolva"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift kikapcsolva"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"„Szimbólumok” mód"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Szimbólumok mód"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"„Betű” mód"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"„Telefon” mód"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"„Telefonos szimbólumok” mód"</string>
diff --git a/java/res/values-hy-rAM/strings-talkback-descriptions.xml b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
index d8f7d27..8e5ff67 100644
--- a/java/res/values-hy-rAM/strings-talkback-descriptions.xml
+++ b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
@@ -23,7 +23,7 @@
     <string name="spoken_use_headphones" msgid="4313642710742229868">"Միացրեք ականջակալը՝ բարձրաձայն արտասանվող գաղտնաբառը լսելու համար:"</string>
     <string name="spoken_current_text_is" msgid="4240549866156675799">"Տվյալ տեքստը %s է"</string>
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Տեքստ չի մուտքագրվել"</string>
-    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>-ը շտկում է <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-ը և դարձնում <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>-ը շտկում է <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-ը՝ դարձնելով <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ստեղնը ինքնաշտկում է կատարում"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Բանալու կոդը՝ %d"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
@@ -34,8 +34,8 @@
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Տառեր"</string>
     <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Թվեր"</string>
     <string name="spoken_description_settings" msgid="7281251004003143204">"Կարգավորումներ"</string>
-    <string name="spoken_description_tab" msgid="8210782459446866716">"Թաբ"</string>
-    <string name="spoken_description_space" msgid="5908716896642059145">"Բացակ"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"Tab"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"Բացատ"</string>
     <string name="spoken_description_mic" msgid="6153138783813452464">"Ձայնային մուտքագրում"</string>
     <string name="spoken_description_emoji" msgid="7990051553008088470">"Զմայլիկներ"</string>
     <string name="spoken_description_return" msgid="3183692287397645708">"Վերադառնալ"</string>
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Նախորդը"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift-ը միացված է"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock-ը միացված է"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift-ն անջատված է"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Նշանների ռեժիմ"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Մեծատառերի ռեժիմ"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Տառերի ռեժիմ"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Հեռախոսային ռեժիմ"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Հեռախոսի նշանների ռեժիմ"</string>
@@ -59,7 +59,7 @@
     <string name="keyboard_mode_im" msgid="3812086215529493501">"նամակագրություն"</string>
     <string name="keyboard_mode_number" msgid="5395042245837996809">"թվեր"</string>
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"հեռախոսահամար"</string>
-    <string name="keyboard_mode_text" msgid="9138789594969187494">"տեքստային հաղորդագրություն"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"տեքստ"</string>
     <string name="keyboard_mode_time" msgid="8558297845514402675">"ժամանակ"</string>
     <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
     <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Վերջինները"</string>
diff --git a/java/res/values-in/strings-talkback-descriptions.xml b/java/res/values-in/strings-talkback-descriptions.xml
index 73bf712..af03337 100644
--- a/java/res/values-in/strings-talkback-descriptions.xml
+++ b/java/res/values-in/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Sebelumnya"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift diaktifkan"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock diaktifkan"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift dinonaktifkan"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mode simbol"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mode mengubah simbol"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mode huruf"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mode telepon"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mode simbol telepon"</string>
diff --git a/java/res/values-it/strings-talkback-descriptions.xml b/java/res/values-it/strings-talkback-descriptions.xml
index 760db69..d6b55ae 100644
--- a/java/res/values-it/strings-talkback-descriptions.xml
+++ b/java/res/values-it/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Precedente"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Maiusc attivo"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bloc Maiusc attivo"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Maiusc disattivato"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modalità simboli"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modalità tastiera simboli"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modalità lettere"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modalità telefono"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modalità simboli telefono"</string>
diff --git a/java/res/values-iw/strings-talkback-descriptions.xml b/java/res/values-iw/strings-talkback-descriptions.xml
index e6344fb..8955134 100644
--- a/java/res/values-iw/strings-talkback-descriptions.xml
+++ b/java/res/values-iw/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"הקודם"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"‏Shift פועל"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"‏Caps Lock פועל"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"‏Shift מושבת"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"מצב סמלים"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"מצב החלפת סמלים"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"מצב אותיות"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"מצב טלפון"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"מצב סמלי טלפון"</string>
diff --git a/java/res/values-ja/strings-talkback-descriptions.xml b/java/res/values-ja/strings-talkback-descriptions.xml
index 990774e..6e917bc 100644
--- a/java/res/values-ja/strings-talkback-descriptions.xml
+++ b/java/res/values-ja/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"前へ"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift有効"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"CapsLock有効"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift解除"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"記号モード"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"シンボルshiftモード"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"英数モード"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"電話モード"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"電話記号モード"</string>
diff --git a/java/res/values-ka-rGE/strings-talkback-descriptions.xml b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
index c4fd659..bd131e1 100644
--- a/java/res/values-ka-rGE/strings-talkback-descriptions.xml
+++ b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"წინა"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ჩართულია"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"ჩართულია Caps"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift გამორთულია"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"სიმბოლოების რეჟიმი"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"სიმბოლოების shift რეჟიმი"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"ასოების რეჟიმი"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"ტელეფონის რეჟიმი"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"ტელეფონის სიმბოლოების რეჟიმი"</string>
diff --git a/java/res/values-km-rKH/strings-talkback-descriptions.xml b/java/res/values-km-rKH/strings-talkback-descriptions.xml
index 76bc35f..ef415a9 100644
--- a/java/res/values-km-rKH/strings-talkback-descriptions.xml
+++ b/java/res/values-km-rKH/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"មុន"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"បាន​បើក Shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"បាន​បើក Caps lock"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"បាន​បិទ Shift"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"របៀប​និមិត្ត​សញ្ញា"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"របៀប Symbols shift"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"របៀប​អក្សរ"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"របៀប​ទូរស័ព្ទ"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"​របៀប​និមិត្ត​សញ្ញា​ទូរស័ព្ទ"</string>
diff --git a/java/res/values-ko/strings-talkback-descriptions.xml b/java/res/values-ko/strings-talkback-descriptions.xml
index 6142c6a..71c49d7 100644
--- a/java/res/values-ko/strings-talkback-descriptions.xml
+++ b/java/res/values-ko/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"이전"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift 사용"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock 사용"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift 사용 중지됨"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"기호 모드"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"기호 전환 모드"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"문자 모드"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"다이얼 모드"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"전화 기호 모드"</string>
diff --git a/java/res/values-land/config.xml b/java/res/values-land/config.xml
index 43ae068..f72d64f 100644
--- a/java/res/values-land/config.xml
+++ b/java/res/values-land/config.xml
@@ -58,6 +58,7 @@
     <fraction name="config_key_shifted_letter_hint_ratio_5row">48%</fraction>
 
     <dimen name="config_suggestions_strip_height">36dp</dimen>
+    <dimen name="config_suggestions_strip_horizontal_margin">54dp</dimen>
     <dimen name="config_more_suggestions_row_height">36dp</dimen>
     <integer name="config_max_more_suggestions_row">2</integer>
     <fraction name="config_min_more_suggestions_width">60%</fraction>
diff --git a/java/res/values-lo-rLA/strings-talkback-descriptions.xml b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
index 681a213..b67ec96 100644
--- a/java/res/values-lo-rLA/strings-talkback-descriptions.xml
+++ b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"ກ່ອນໜ້ານີ້"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ເປີດ​ນຳໃຊ້ຢູ່"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock ເປີດນຳໃຊ້ຢູ່"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift ປິດ​ນຳໃຊ້ຢູ່"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"ໂຫມດ​ສັນຍາລັກ"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"ຊີມໂບຊິບໂໝດ"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"ໂຫມດ​ໂຕອັກ​ສອນ"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"ໂຫມດ​ໂທລະສັບ"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"ໂຫມດ​ສັນຍາລັກ​ໂທລະສັບ"</string>
diff --git a/java/res/values-lt/strings-talkback-descriptions.xml b/java/res/values-lt/strings-talkback-descriptions.xml
index 07119cb..e584180 100644
--- a/java/res/values-lt/strings-talkback-descriptions.xml
+++ b/java/res/values-lt/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Ankstesnis"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Klavišas „Shift“ įgalintas"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Didžiųjų raidžių klavišas įgalintas"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Klavišas „Shift“ išjungtas"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Simbolių režimas"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Simbolių perjungimo režimas"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Raidžių režimas"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonų numerių režimas"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefonų numerių simbolių režimas"</string>
diff --git a/java/res/values-lv/strings-talkback-descriptions.xml b/java/res/values-lv/strings-talkback-descriptions.xml
index eb32e9d..8278e63 100644
--- a/java/res/values-lv/strings-talkback-descriptions.xml
+++ b/java/res/values-lv/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Atpakaļ"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Pārslēgšanas režīms ir iespējots"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Burtslēgs ir iespējots"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Pārslēgšanas režīms ir atspējots"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Simbolu režīms"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Simbolu pārslēgšanas režīms"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Burtu režīms"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Tālruņa režīms"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Tālruņa simbolu režīms"</string>
diff --git a/java/res/values-mn-rMN/strings-talkback-descriptions.xml b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
index 7eb3167..f4c608e 100644
--- a/java/res/values-mn-rMN/strings-talkback-descriptions.xml
+++ b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Өмнөх"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Сэлгэхийг идэвхжүүлсэн"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Томоор бичихийг идэвхжүүлсэн"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Сэлгэхийг идэвхжүүлээгүй"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Симбол төлөв"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Симбол сэлгэх горим"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Үсэгнүүд төлөв"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Утасны төлөв"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Утасны символ төлөв"</string>
diff --git a/java/res/values-ms-rMY/strings-talkback-descriptions.xml b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
index 29c5fd8..cbdd02f 100644
--- a/java/res/values-ms-rMY/strings-talkback-descriptions.xml
+++ b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Sebelumnya"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Kunci anjak didayakan"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Kunci huruf besar didayakan"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Kunci anjak dilumpuhkan"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Mod simbol"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mod shift simbol"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Mod huruf"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Mod telefon"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Mod simbol telefon"</string>
diff --git a/java/res/values-nb/strings-talkback-descriptions.xml b/java/res/values-nb/strings-talkback-descriptions.xml
index 96edf38..23a6c85 100644
--- a/java/res/values-nb/strings-talkback-descriptions.xml
+++ b/java/res/values-nb/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Forrige"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift er aktivert"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock er aktivert"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift er deaktivert"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolmodus"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Shift-modus for symboler"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Bokstavmodus"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Ringemodus"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Ringemodus med symboler"</string>
diff --git a/java/res/values-ne-rNP/strings-talkback-descriptions.xml b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
index cffed33..a1602bb 100644
--- a/java/res/values-ne-rNP/strings-talkback-descriptions.xml
+++ b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"अघिल्लो"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"सिफ्ट सक्षम पारिएको छ"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"क्याप्स लक सक्षम पारिएको छ"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"सिफ्ट असक्षम पारिएको छ"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"प्रतिक ढाँचा"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"प्रतीक सिफ्ट ढाँचा"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"अक्षर ढाँचा"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"फोन ढाँचा"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"फोन प्रतिक मोड"</string>
diff --git a/java/res/values-nl/strings-talkback-descriptions.xml b/java/res/values-nl/strings-talkback-descriptions.xml
index 8dcd574..df87659 100644
--- a/java/res/values-nl/strings-talkback-descriptions.xml
+++ b/java/res/values-nl/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Vorige"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ingeschakeld"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock ingeschakeld"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift uitgeschakeld"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolen"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Shift-modus voor symbolen"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Alfanumeriek toetsenbord"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Toetsenbord telefoon"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefoonsymbolen"</string>
diff --git a/java/res/values-pl/strings-talkback-descriptions.xml b/java/res/values-pl/strings-talkback-descriptions.xml
index 567bb3b..d40a107 100644
--- a/java/res/values-pl/strings-talkback-descriptions.xml
+++ b/java/res/values-pl/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Wstecz"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift włączony"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock włączony"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift wyłączony"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Tryb symboli"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Tryb zmiany symboli"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Tryb liter"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Tryb telefonu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Tryb symboli telefonu"</string>
diff --git a/java/res/values-pt-rPT/strings-talkback-descriptions.xml b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
index bf51caa..5495a63 100644
--- a/java/res/values-pt-rPT/strings-talkback-descriptions.xml
+++ b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Anterior"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ativado"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock ativado"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift desativado"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modo de símbolos"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modo para alternar símbolos"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modo de letras"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modo de telemóvel"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modo de símbolos de telemóvel"</string>
diff --git a/java/res/values-pt/strings-talkback-descriptions.xml b/java/res/values-pt/strings-talkback-descriptions.xml
index 01aac39..47ab196 100644
--- a/java/res/values-pt/strings-talkback-descriptions.xml
+++ b/java/res/values-pt/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Anterior"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ativado"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock ativado"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift desativado"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modo de símbolos"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Modo de alternância de símbolos"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modo de letras"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modo de telefone"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modo de símbolos do telefone"</string>
diff --git a/java/res/values-ro/strings-talkback-descriptions.xml b/java/res/values-ro/strings-talkback-descriptions.xml
index 2b428eb..de19bf1 100644
--- a/java/res/values-ro/strings-talkback-descriptions.xml
+++ b/java/res/values-ro/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Înapoi"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Tasta Shift a fost activată"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Tasta Caps Lock este activată"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Tasta Shift a fost dezactivată"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modul Simboluri"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Mod shift simboluri"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modul Alfanumeric"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modul Telefon"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modul Telefon cu simboluri"</string>
diff --git a/java/res/values-ru/strings-talkback-descriptions.xml b/java/res/values-ru/strings-talkback-descriptions.xml
index 7e64f11..a38da0f 100644
--- a/java/res/values-ru/strings-talkback-descriptions.xml
+++ b/java/res/values-ru/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Назад."</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Верхний регистр включен."</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock включен."</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Верхний регистр отключен."</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим добавления символов."</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Режим ввода символов в верхнем регистре."</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Режим ввода текста."</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Режим набора номера."</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Режим телефонных символов."</string>
diff --git a/java/res/values-sk/strings-talkback-descriptions.xml b/java/res/values-sk/strings-talkback-descriptions.xml
index 605aceb..256eb39 100644
--- a/java/res/values-sk/strings-talkback-descriptions.xml
+++ b/java/res/values-sk/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Naspäť"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Kláves Shift je povolený"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Kláves Caps Lock je povolený"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Kláves Shift je zakázaný"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Režim symbolov"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Režim klávesnice symbolov"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Režim písmen"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Režim telefónu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Režim telefónnych symbolov"</string>
diff --git a/java/res/values-sl/strings-talkback-descriptions.xml b/java/res/values-sl/strings-talkback-descriptions.xml
index 280393a..8a35f0f 100644
--- a/java/res/values-sl/strings-talkback-descriptions.xml
+++ b/java/res/values-sl/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Nazaj"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Način »Shift« je omogočen"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Funkcija »Caps Lock« je omogočena"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Način »Shift« je onemogočen"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Način simbolov"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Način preklopa simbolov"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Način črk"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Način telefona"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Način simbolov telefona"</string>
diff --git a/java/res/values-sr/strings-talkback-descriptions.xml b/java/res/values-sr/strings-talkback-descriptions.xml
index 402d45b..626bccc 100644
--- a/java/res/values-sr/strings-talkback-descriptions.xml
+++ b/java/res/values-sr/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Следеће"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift је омогућен"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock је омогућен"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift је онемогућен"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим симбола"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Shift режим симбола"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Режим слова"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Режим телефона"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Режим симбола телефона"</string>
diff --git a/java/res/values-sv/strings-talkback-descriptions.xml b/java/res/values-sv/strings-talkback-descriptions.xml
index 140202d..50078fd 100644
--- a/java/res/values-sv/strings-talkback-descriptions.xml
+++ b/java/res/values-sv/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Föregående"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Skift aktiverat"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock är aktiverat"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Skift är inaktiverat"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbolläge"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Symbolskiftningsläge"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Bokstavsläge"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefonläge"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefonsymbolläge"</string>
diff --git a/java/res/values-sw/strings-talkback-descriptions.xml b/java/res/values-sw/strings-talkback-descriptions.xml
index e9ca282..11ac28e 100644
--- a/java/res/values-sw/strings-talkback-descriptions.xml
+++ b/java/res/values-sw/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Iililotangulia"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift imewashwa"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock imewashwa"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift imezimwa"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Hali ya alama"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Hali ya kubadilisha Alama"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Hali ya herufi"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Hali ya simu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Hali ya alama za simu"</string>
diff --git a/java/res/values-sw600dp-land/config.xml b/java/res/values-sw600dp-land/config.xml
index 00edde1..8789e72 100644
--- a/java/res/values-sw600dp-land/config.xml
+++ b/java/res/values-sw600dp-land/config.xml
@@ -48,7 +48,8 @@
     <fraction name="config_key_letter_ratio_5row">62%</fraction>
     <fraction name="config_key_shifted_letter_hint_ratio_5row">36%</fraction>
 
-    <dimen name="config_suggestions_strip_horizontal_padding">252.0dp</dimen>
+    <dimen name="config_suggestions_strip_height">44dp</dimen>
+    <dimen name="config_suggestions_strip_horizontal_margin">180.0dp</dimen>
     <integer name="config_max_more_suggestions_row">5</integer>
     <fraction name="config_min_more_suggestions_width">50%</fraction>
 
diff --git a/java/res/values-sw600dp/config.xml b/java/res/values-sw600dp/config.xml
index 3bd8439..12e9832 100644
--- a/java/res/values-sw600dp/config.xml
+++ b/java/res/values-sw600dp/config.xml
@@ -63,12 +63,12 @@
     <fraction name="config_key_shifted_letter_hint_ratio_5row">27%</fraction>
 
     <dimen name="config_suggestions_strip_height">44dp</dimen>
+    <dimen name="config_suggestions_strip_horizontal_margin">0dp</dimen>
     <dimen name="config_more_suggestions_row_height">44dp</dimen>
     <integer name="config_max_more_suggestions_row">6</integer>
     <fraction name="config_min_more_suggestions_width">90%</fraction>
-    <dimen name="config_suggestions_strip_horizontal_padding">94.5dp</dimen>
     <dimen name="config_suggestion_min_width">48.0dp</dimen>
-    <dimen name="config_suggestion_text_horizontal_padding">12dp</dimen>
+    <dimen name="config_suggestion_text_horizontal_padding">10dp</dimen>
     <dimen name="config_suggestion_text_size">22dp</dimen>
     <dimen name="config_more_suggestions_hint_text_size">33dp</dimen>
 
diff --git a/java/res/values-sw768dp-land/config.xml b/java/res/values-sw768dp-land/config.xml
index 3878a9e..17733f0 100644
--- a/java/res/values-sw768dp-land/config.xml
+++ b/java/res/values-sw768dp-land/config.xml
@@ -49,7 +49,8 @@
     <fraction name="config_key_letter_ratio_5row">53%</fraction>
     <fraction name="config_key_shifted_letter_hint_ratio_5row">30%</fraction>
 
-    <dimen name="config_suggestions_strip_horizontal_padding">252.0dp</dimen>
+    <dimen name="config_suggestions_strip_height">44dp</dimen>
+    <dimen name="config_suggestions_strip_horizontal_margin">340dp</dimen>
     <fraction name="config_min_more_suggestions_width">50%</fraction>
 
     <!-- Gesture floating preview text parameters -->
diff --git a/java/res/values-sw768dp/config.xml b/java/res/values-sw768dp/config.xml
index 34eec38..647cca9 100644
--- a/java/res/values-sw768dp/config.xml
+++ b/java/res/values-sw768dp/config.xml
@@ -61,12 +61,12 @@
     <fraction name="config_key_shifted_letter_hint_ratio_5row">33%</fraction>
 
     <dimen name="config_suggestions_strip_height">44dp</dimen>
+    <dimen name="config_suggestions_strip_horizontal_margin">100dp</dimen>
     <dimen name="config_more_suggestions_row_height">44dp</dimen>
     <integer name="config_max_more_suggestions_row">6</integer>
     <fraction name="config_min_more_suggestions_width">90%</fraction>
-    <dimen name="config_suggestions_strip_horizontal_padding">94.5dp</dimen>
     <dimen name="config_suggestion_min_width">46dp</dimen>
-    <dimen name="config_suggestion_text_horizontal_padding">8dp</dimen>
+    <dimen name="config_suggestion_text_horizontal_padding">10dp</dimen>
     <dimen name="config_suggestion_text_size">22dp</dimen>
     <dimen name="config_more_suggestions_hint_text_size">33dp</dimen>
 
diff --git a/java/res/values-th/strings-talkback-descriptions.xml b/java/res/values-th/strings-talkback-descriptions.xml
index eb712ae..0135095 100644
--- a/java/res/values-th/strings-talkback-descriptions.xml
+++ b/java/res/values-th/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"ก่อนหน้า"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"เปิดใช้งาน Shift แล้ว"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"เปิดใช้งาน Caps Lock แล้ว"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"ปิดใช้งาน Shift แล้ว"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"โหมดสัญลักษณ์"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"โหมดการเลื่อนสัญลักษณ์"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"โหมดตัวอักษร"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"โหมดโทรศัพท์"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"โหมดสัญลักษณ์โทรศัพท์"</string>
diff --git a/java/res/values-tl/strings-talkback-descriptions.xml b/java/res/values-tl/strings-talkback-descriptions.xml
index fbf276b..e4eff7d 100644
--- a/java/res/values-tl/strings-talkback-descriptions.xml
+++ b/java/res/values-tl/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Nauna"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Naka-enable ang shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Naka-enable ang caps lock"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Naka-disable ang shift"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbols mode"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Shift mode ng mga simbolo"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Letters mode"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Phone mode"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Phone symbols mode"</string>
diff --git a/java/res/values-tr/strings-talkback-descriptions.xml b/java/res/values-tr/strings-talkback-descriptions.xml
index d06c900..40bbd36 100644
--- a/java/res/values-tr/strings-talkback-descriptions.xml
+++ b/java/res/values-tr/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Önceki"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Üst karakter etkin"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Büyük harf etkin"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Üst karakter devre dışı"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Sembol modu"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Semboller üst karakter modu"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Harf modu"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefon modu"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefon sembolleri modu"</string>
diff --git a/java/res/values-uk/strings-talkback-descriptions.xml b/java/res/values-uk/strings-talkback-descriptions.xml
index 9b6d114..79675d8 100644
--- a/java/res/values-uk/strings-talkback-descriptions.xml
+++ b/java/res/values-uk/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Назад"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift увімкнено"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock увімкнено"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift вимкнено"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим символів"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Режим перемикання символів"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Режим літер"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Режим номерів телефону"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Режим телефонних символів"</string>
diff --git a/java/res/values-vi/strings-talkback-descriptions.xml b/java/res/values-vi/strings-talkback-descriptions.xml
index 9202883..9a618f9 100644
--- a/java/res/values-vi/strings-talkback-descriptions.xml
+++ b/java/res/values-vi/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Trước"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Đã bật Shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Đã bật Caps lock"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Đã tắt Shift"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Chế độ biểu tượng"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Chế độ chuyển ký hiệu"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Chế độ chữ cái"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Chế độ điện thoại"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Chế độ biểu tượng điện thoại"</string>
diff --git a/java/res/values-zh-rCN/strings-talkback-descriptions.xml b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
index 93f89e0..24445ab 100644
--- a/java/res/values-zh-rCN/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"上一个"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"已开启Shift模式"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"已锁定大写模式"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"已关闭Shift模式"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"符号模式"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"符号移位模式"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"字母模式"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"电话模式"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"电话符号模式"</string>
diff --git a/java/res/values-zh-rHK/strings-talkback-descriptions.xml b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
index 8b60504..e2f63b0 100644
--- a/java/res/values-zh-rHK/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"上一個"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift 鍵已啟用"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"大寫鎖定已啟用"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift 鍵已停用"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"符號模式"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"符號轉變模式"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"字母模式"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"撥號模式"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"符號撥號模式"</string>
diff --git a/java/res/values-zh-rTW/strings-talkback-descriptions.xml b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
index 6351a98..63ea4d1 100644
--- a/java/res/values-zh-rTW/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"上一個"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift 鍵已啟用"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"大寫鎖定已啟用"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"Shift 鍵已停用"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"符號模式"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"符號移位模式"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"字母模式"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"撥號模式"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"撥號符號模式"</string>
diff --git a/java/res/values-zu/strings-talkback-descriptions.xml b/java/res/values-zu/strings-talkback-descriptions.xml
index d30ec8b..14a1ea8 100644
--- a/java/res/values-zu/strings-talkback-descriptions.xml
+++ b/java/res/values-zu/strings-talkback-descriptions.xml
@@ -26,12 +26,12 @@
     <string name="spoken_auto_correct" msgid="8989324692167993804">"I-<xliff:g id="KEY_NAME">%1$s</xliff:g> ilungisa i-<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kube yi-<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"I-<xliff:g id="KEY_NAME">%1$s</xliff:g> yenza ukulungisa okuzenzakalelayo"</string>
     <string name="spoken_description_unknown" msgid="2382510329910793539">"Ikhodi yokhiye %d"</string>
-    <string name="spoken_description_shift" msgid="7209798151676638728">"I-Shift"</string>
+    <string name="spoken_description_shift" msgid="7209798151676638728">"U-Shift"</string>
     <string name="spoken_description_shift_shifted" msgid="1609924271343916689">"U-Shift uvuliwe (thepha ukuwuvimbela)"</string>
     <string name="spoken_description_caps_lock" msgid="5020582161133170892">"Ofeleba bavuliwe (thepha ukubavimbela)"</string>
     <string name="spoken_description_delete" msgid="3878902286264983302">"Susa"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Amasimbuli"</string>
-    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Imbhalo"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Izinhlamvu"</string>
     <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Izinombolo"</string>
     <string name="spoken_description_settings" msgid="7281251004003143204">"Izilungiselelo"</string>
     <string name="spoken_description_tab" msgid="8210782459446866716">"Ithebhu"</string>
@@ -46,8 +46,8 @@
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"Okwangaphambilini"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"U-Shift uvunyelwe"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Ofeleba bavunyelwe"</string>
-    <string name="spoken_description_shiftmode_off" msgid="5039126122829961331">"U-Shift uvimbelwe"</string>
     <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Imodi yezimpawu"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="3940566070908816492">"Imodi yamasimbuli we-shift"</string>
     <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Imodi yezinhlamvu"</string>
     <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Imodi yefoni"</string>
     <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Imodi yezimpawu zefoni"</string>
@@ -65,7 +65,7 @@
     <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Okwakamuva"</string>
     <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Abantu"</string>
     <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Izinto"</string>
-    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Awendalo"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Indalo"</string>
     <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Izindawo"</string>
     <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Amasimbuli"</string>
     <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Izithombe-mzwelo"</string>
diff --git a/java/res/values/colors.xml b/java/res/values/colors.xml
index 824928c..dabb4d6 100644
--- a/java/res/values/colors.xml
+++ b/java/res/values/colors.xml
@@ -40,6 +40,12 @@
     <color name="typed_word_color_klp">#D8F0F0F0</color>
     <color name="suggested_word_color_klp">#B2F0F0F0</color>
     <color name="highlight_translucent_color_klp">#99E0E0E0</color>
+    <!-- Color resources for LMP theme. Base color = F0F0F0 -->
+    <color name="key_hint_letter_color_lmp">@android:color/white</color>
+    <color name="highlight_color_lmp">#FFF0F0F0</color>
+    <color name="typed_word_color_lmp">#D8F0F0F0</color>
+    <color name="suggested_word_color_lmp">#B2F0F0F0</color>
+    <color name="highlight_translucent_color_lmp">#99E0E0E0</color>
     <!-- Color resources for setup wizard and tutorial -->
     <color name="setup_background">#FFEBEBEB</color>
     <color name="setup_text_dark">#FF707070</color>
diff --git a/java/res/values/config-common.xml b/java/res/values/config-common.xml
index 3fe4b94..1962c0d 100644
--- a/java/res/values/config-common.xml
+++ b/java/res/values/config-common.xml
@@ -24,9 +24,6 @@
          at input history to suggest a hopefully helpful suggestions for the next word? -->
     <bool name="config_default_next_word_prediction">true</bool>
 
-    <!-- This configuration must be aligned with {@link KeyboardTheme#DEFAULT_THEME_ID}. -->
-    <string name="config_default_keyboard_theme_id" translatable="false">2</string>
-
     <integer name="config_delay_update_shift_state">100</integer>
     <integer name="config_double_space_period_timeout">1100</integer>
 
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 45ea483..1ab4927 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -64,10 +64,10 @@
     <fraction name="config_key_shifted_letter_hint_ratio_5row">41%</fraction>
 
     <dimen name="config_suggestions_strip_height">40dp</dimen>
+    <dimen name="config_suggestions_strip_horizontal_margin">0dp</dimen>
     <dimen name="config_more_suggestions_row_height">40dp</dimen>
     <integer name="config_max_more_suggestions_row">6</integer>
     <fraction name="config_min_more_suggestions_width">90%</fraction>
-    <dimen name="config_suggestions_strip_horizontal_padding">0dp</dimen>
     <dimen name="config_suggestion_min_width">44dp</dimen>
     <dimen name="config_suggestion_text_horizontal_padding">6dp</dimen>
     <dimen name="config_suggestion_text_size">18dp</dimen>
diff --git a/java/res/values/donottranslate-config-spacing-and-punctuations.xml b/java/res/values/donottranslate-config-spacing-and-punctuations.xml
index 1be5cf8..2faf578 100644
--- a/java/res/values/donottranslate-config-spacing-and-punctuations.xml
+++ b/java/res/values/donottranslate-config-spacing-and-punctuations.xml
@@ -26,6 +26,8 @@
     <string name="symbols_preceded_by_space">([{&amp;</string>
     <!-- Symbols that are normally followed by a space (used to add an auto-space after these) -->
     <string name="symbols_followed_by_space">.,;:!?)]}&amp;</string>
+    <!-- Symbols that behave like a single punctuation when typed next to each other -->
+    <string name="symbols_clustering_together"></string>
     <!-- Symbols that separate words -->
     <!-- Don't remove the enclosing double quotes, they protect whitespace (not just U+0020) -->
     <string name="symbols_word_separators">"&#x0009;&#x0020;&#x000A;&#x00A0;"()[]{}*&amp;&lt;&gt;+=|.,;:!?/_\"</string>
diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml
index 9a610a0..415dd0b 100644
--- a/java/res/values/donottranslate.xml
+++ b/java/res/values/donottranslate.xml
@@ -47,17 +47,6 @@
     <string name="prefs_debug_mode">Debug Mode</string>
     <string name="prefs_force_non_distinct_multitouch">Force non-distinct multitouch</string>
 
-    <!-- For keyboard color scheme option dialog. -->
-    <string-array name="keyboard_theme_names">
-        <item>@string/keyboard_color_scheme_white</item>
-        <item>@string/keyboard_color_scheme_blue</item>
-    </string-array>
-    <!-- An element must be a keyboard theme id of {@link KeyboardTheme#THEME_ID_*}. -->
-    <string-array name="keyboard_theme_ids">
-        <item>2</item>
-        <item>0</item>
-    </string-array>
-
     <!-- Subtype locale display name exceptions.
          For each exception, there should be related string resources for display name that may have
          explicit keyboard layout. The string resource name must be "subtype_<locale>" or
diff --git a/java/res/values/keyboard-icons-holo.xml b/java/res/values/keyboard-icons-holo.xml
index 4c888d5..669d2c0 100644
--- a/java/res/values/keyboard-icons-holo.xml
+++ b/java/res/values/keyboard-icons-holo.xml
@@ -21,9 +21,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <style name="KeyboardIcons.Holo">
         <!-- Keyboard icons -->
-        <!-- TODO: The following holo icon for phone (drawable-hdpi and drawable-xhdpi) are missing.
-             sym_keyboard_123_mic_holo
-             -->
         <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo_dark</item>
         <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo_dark</item>
         <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo_dark</item>
diff --git a/java/res/values/keyboard-icons-lmp.xml b/java/res/values/keyboard-icons-lmp.xml
new file mode 100644
index 0000000..a9cbabc
--- /dev/null
+++ b/java/res/values/keyboard-icons-lmp.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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:android="http://schemas.android.com/apk/res/android">
+    <style name="KeyboardIcons.LMP">
+        <!-- Keyboard icons -->
+        <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo_dark</item>
+        <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo_dark</item>
+        <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo_dark</item>
+        <item name="iconSpaceKey">@drawable/sym_keyboard_space_holo_dark</item>
+        <item name="iconEnterKey">@drawable/sym_keyboard_return_holo_dark</item>
+        <item name="iconSearchKey">@drawable/sym_keyboard_search_holo_dark</item>
+        <item name="iconTabKey">@drawable/sym_keyboard_tab_holo_dark</item>
+        <item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo_dark</item>
+        <item name="iconSpaceKeyForNumberLayout">@drawable/sym_keyboard_space_holo_dark</item>
+        <item name="iconShiftKeyShifted">@drawable/sym_keyboard_shift_locked_holo_dark</item>
+        <item name="iconShortcutKeyDisabled">@drawable/sym_keyboard_voice_off_holo_dark</item>
+        <item name="iconTabKeyPreview">@drawable/sym_keyboard_feedback_tab</item>
+        <item name="iconLanguageSwitchKey">@drawable/sym_keyboard_language_switch_dark</item>
+        <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo_dark</item>
+        <item name="iconZwjKey">@drawable/sym_keyboard_zwj_holo_dark</item>
+        <item name="iconEmojiKey">@drawable/sym_keyboard_smiley_holo_dark</item>
+    </style>
+</resources>
diff --git a/java/res/values/keyboard-themes.xml b/java/res/values/keyboard-themes.xml
new file mode 100644
index 0000000..0325f5b
--- /dev/null
+++ b/java/res/values/keyboard-themes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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">
+    <!-- For keyboard color scheme option dialog. -->
+    <string-array name="keyboard_theme_names" translatable="false">
+        <item>@string/keyboard_color_scheme_white</item>
+        <item>@string/keyboard_color_scheme_blue</item>
+        <!-- TODO: Make this item as translatable string resource. -->
+        <item>Quantum</item>
+    </string-array>
+    <!-- An element must be a keyboard theme id of {@link KeyboardTheme#THEME_ID_*}. -->
+    <string-array name="keyboard_theme_ids" translatable="false">
+        <item>2</item>
+        <item>0</item>
+        <item>3</item>
+    </string-array>
+</resources>
diff --git a/java/res/values/strings-emoji-descriptions.xml b/java/res/values/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..3c726bb
--- /dev/null
+++ b/java/res/values/strings-emoji-descriptions.xml
@@ -0,0 +1,1667 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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">
+     <!-- Spoken description for Unicode code point U+00A9 -->
+     <string name="spoken_emoji_00A9">Copyright sign</string>
+     <!-- Spoken description for Unicode code point U+00AE -->
+     <string name="spoken_emoji_00AE">Registered sign</string>
+     <!-- Spoken description for Unicode code point U+203C -->
+     <string name="spoken_emoji_203C">Double exclamation mark</string>
+     <!-- Spoken description for Unicode code point U+2049 -->
+     <string name="spoken_emoji_2049">Exclamation question mark</string>
+     <!-- Spoken description for Unicode code point U+2122 -->
+     <string name="spoken_emoji_2122">Trade mark sign</string>
+     <!-- Spoken description for Unicode code point U+2139 -->
+     <string name="spoken_emoji_2139">Information source</string>
+     <!-- Spoken description for Unicode code point U+2194 -->
+     <string name="spoken_emoji_2194">Left right arrow</string>
+     <!-- Spoken description for Unicode code point U+2195 -->
+     <string name="spoken_emoji_2195">Up down arrow</string>
+     <!-- Spoken description for Unicode code point U+2196 -->
+     <string name="spoken_emoji_2196">North west arrow</string>
+     <!-- Spoken description for Unicode code point U+2197 -->
+     <string name="spoken_emoji_2197">North east arrow</string>
+     <!-- Spoken description for Unicode code point U+2198 -->
+     <string name="spoken_emoji_2198">South east arrow</string>
+     <!-- Spoken description for Unicode code point U+2199 -->
+     <string name="spoken_emoji_2199">South west arrow</string>
+     <!-- Spoken description for Unicode code point U+21A9 -->
+     <string name="spoken_emoji_21A9">Leftwards arrow with hook</string>
+     <!-- Spoken description for Unicode code point U+21AA -->
+     <string name="spoken_emoji_21AA">Rightwards arrow with hook</string>
+     <!-- Spoken description for Unicode code point U+231A -->
+     <string name="spoken_emoji_231A">Watch</string>
+     <!-- Spoken description for Unicode code point U+231B -->
+     <string name="spoken_emoji_231B">Hourglass</string>
+     <!-- Spoken description for Unicode code point U+23E9 -->
+     <string name="spoken_emoji_23E9">Black right-pointing double triangle</string>
+     <!-- Spoken description for Unicode code point U+23EA -->
+     <string name="spoken_emoji_23EA">Black left-pointing double triangle</string>
+     <!-- Spoken description for Unicode code point U+23EB -->
+     <string name="spoken_emoji_23EB">Black up-pointing double triangle</string>
+     <!-- Spoken description for Unicode code point U+23EC -->
+     <string name="spoken_emoji_23EC">Black down-pointing double triangle</string>
+     <!-- Spoken description for Unicode code point U+23F0 -->
+     <string name="spoken_emoji_23F0">Alarm clock</string>
+     <!-- Spoken description for Unicode code point U+23F3 -->
+     <string name="spoken_emoji_23F3">Hourglass with flowing sand</string>
+     <!-- Spoken description for Unicode code point U+24C2 -->
+     <string name="spoken_emoji_24C2">Circled latin capital letter m</string>
+     <!-- Spoken description for Unicode code point U+25AA -->
+     <string name="spoken_emoji_25AA">Black small square</string>
+     <!-- Spoken description for Unicode code point U+25AB -->
+     <string name="spoken_emoji_25AB">White small square</string>
+     <!-- Spoken description for Unicode code point U+25B6 -->
+     <string name="spoken_emoji_25B6">Black right-pointing triangle</string>
+     <!-- Spoken description for Unicode code point U+25C0 -->
+     <string name="spoken_emoji_25C0">Black left-pointing triangle</string>
+     <!-- Spoken description for Unicode code point U+25FB -->
+     <string name="spoken_emoji_25FB">White medium square</string>
+     <!-- Spoken description for Unicode code point U+25FC -->
+     <string name="spoken_emoji_25FC">Black medium square</string>
+     <!-- Spoken description for Unicode code point U+25FD -->
+     <string name="spoken_emoji_25FD">White medium small square</string>
+     <!-- Spoken description for Unicode code point U+25FE -->
+     <string name="spoken_emoji_25FE">Black medium small square</string>
+     <!-- Spoken description for Unicode code point U+2600 -->
+     <string name="spoken_emoji_2600">Black sun with rays</string>
+     <!-- Spoken description for Unicode code point U+2601 -->
+     <string name="spoken_emoji_2601">Cloud</string>
+     <!-- Spoken description for Unicode code point U+260E -->
+     <string name="spoken_emoji_260E">Black telephone</string>
+     <!-- Spoken description for Unicode code point U+2611 -->
+     <string name="spoken_emoji_2611">Ballot box with check</string>
+     <!-- Spoken description for Unicode code point U+2614 -->
+     <string name="spoken_emoji_2614">Umbrella with rain drops</string>
+     <!-- Spoken description for Unicode code point U+2615 -->
+     <string name="spoken_emoji_2615">Hot beverage</string>
+     <!-- Spoken description for Unicode code point U+261D -->
+     <string name="spoken_emoji_261D">White up pointing index</string>
+     <!-- Spoken description for Unicode code point U+263A -->
+     <string name="spoken_emoji_263A">White smiling face</string>
+     <!-- Spoken description for Unicode code point U+2648 -->
+     <string name="spoken_emoji_2648">Aries</string>
+     <!-- Spoken description for Unicode code point U+2649 -->
+     <string name="spoken_emoji_2649">Taurus</string>
+     <!-- Spoken description for Unicode code point U+264A -->
+     <string name="spoken_emoji_264A">Gemini</string>
+     <!-- Spoken description for Unicode code point U+264B -->
+     <string name="spoken_emoji_264B">Cancer</string>
+     <!-- Spoken description for Unicode code point U+264C -->
+     <string name="spoken_emoji_264C">Leo</string>
+     <!-- Spoken description for Unicode code point U+264D -->
+     <string name="spoken_emoji_264D">Virgo</string>
+     <!-- Spoken description for Unicode code point U+264E -->
+     <string name="spoken_emoji_264E">Libra</string>
+     <!-- Spoken description for Unicode code point U+264F -->
+     <string name="spoken_emoji_264F">Scorpius</string>
+     <!-- Spoken description for Unicode code point U+2650 -->
+     <string name="spoken_emoji_2650">Sagittarius</string>
+     <!-- Spoken description for Unicode code point U+2651 -->
+     <string name="spoken_emoji_2651">Capricorn</string>
+     <!-- Spoken description for Unicode code point U+2652 -->
+     <string name="spoken_emoji_2652">Aquarius</string>
+     <!-- Spoken description for Unicode code point U+2653 -->
+     <string name="spoken_emoji_2653">Pisces</string>
+     <!-- Spoken description for Unicode code point U+2660 -->
+     <string name="spoken_emoji_2660">Black spade suit</string>
+     <!-- Spoken description for Unicode code point U+2663 -->
+     <string name="spoken_emoji_2663">Black club suit</string>
+     <!-- Spoken description for Unicode code point U+2665 -->
+     <string name="spoken_emoji_2665">Black heart suit</string>
+     <!-- Spoken description for Unicode code point U+2666 -->
+     <string name="spoken_emoji_2666">Black diamond suit</string>
+     <!-- Spoken description for Unicode code point U+2668 -->
+     <string name="spoken_emoji_2668">Hot springs</string>
+     <!-- Spoken description for Unicode code point U+267B -->
+     <string name="spoken_emoji_267B">Black universal recycling symbol</string>
+     <!-- Spoken description for Unicode code point U+267F -->
+     <string name="spoken_emoji_267F">Wheelchair symbol</string>
+     <!-- Spoken description for Unicode code point U+2693 -->
+     <string name="spoken_emoji_2693">Anchor</string>
+     <!-- Spoken description for Unicode code point U+26A0 -->
+     <string name="spoken_emoji_26A0">Warning sign</string>
+     <!-- Spoken description for Unicode code point U+26A1 -->
+     <string name="spoken_emoji_26A1">High voltage sign</string>
+     <!-- Spoken description for Unicode code point U+26AA -->
+     <string name="spoken_emoji_26AA">Medium white circle</string>
+     <!-- Spoken description for Unicode code point U+26AB -->
+     <string name="spoken_emoji_26AB">Medium black circle</string>
+     <!-- Spoken description for Unicode code point U+26BD -->
+     <string name="spoken_emoji_26BD">Soccer ball</string>
+     <!-- Spoken description for Unicode code point U+26BE -->
+     <string name="spoken_emoji_26BE">Baseball</string>
+     <!-- Spoken description for Unicode code point U+26C4 -->
+     <string name="spoken_emoji_26C4">Snowman without snow</string>
+     <!-- Spoken description for Unicode code point U+26C5 -->
+     <string name="spoken_emoji_26C5">Sun behind cloud</string>
+     <!-- Spoken description for Unicode code point U+26CE -->
+     <string name="spoken_emoji_26CE">Ophiuchus</string>
+     <!-- Spoken description for Unicode code point U+26D4 -->
+     <string name="spoken_emoji_26D4">No entry</string>
+     <!-- Spoken description for Unicode code point U+26EA -->
+     <string name="spoken_emoji_26EA">Church</string>
+     <!-- Spoken description for Unicode code point U+26F2 -->
+     <string name="spoken_emoji_26F2">Fountain</string>
+     <!-- Spoken description for Unicode code point U+26F3 -->
+     <string name="spoken_emoji_26F3">Flag in hole</string>
+     <!-- Spoken description for Unicode code point U+26F5 -->
+     <string name="spoken_emoji_26F5">Sailboat</string>
+     <!-- Spoken description for Unicode code point U+26FA -->
+     <string name="spoken_emoji_26FA">Tent</string>
+     <!-- Spoken description for Unicode code point U+26FD -->
+     <string name="spoken_emoji_26FD">Fuel pump</string>
+     <!-- Spoken description for Unicode code point U+2702 -->
+     <string name="spoken_emoji_2702">Black scissors</string>
+     <!-- Spoken description for Unicode code point U+2705 -->
+     <string name="spoken_emoji_2705">White heavy check mark</string>
+     <!-- Spoken description for Unicode code point U+2708 -->
+     <string name="spoken_emoji_2708">Airplane</string>
+     <!-- Spoken description for Unicode code point U+2709 -->
+     <string name="spoken_emoji_2709">Envelope</string>
+     <!-- Spoken description for Unicode code point U+270A -->
+     <string name="spoken_emoji_270A">Raised fist</string>
+     <!-- Spoken description for Unicode code point U+270B -->
+     <string name="spoken_emoji_270B">Raised hand</string>
+     <!-- Spoken description for Unicode code point U+270C -->
+     <string name="spoken_emoji_270C">Victory hand</string>
+     <!-- Spoken description for Unicode code point U+270F -->
+     <string name="spoken_emoji_270F">Pencil</string>
+     <!-- Spoken description for Unicode code point U+2712 -->
+     <string name="spoken_emoji_2712">Black nib</string>
+     <!-- Spoken description for Unicode code point U+2714 -->
+     <string name="spoken_emoji_2714">Heavy check mark</string>
+     <!-- Spoken description for Unicode code point U+2716 -->
+     <string name="spoken_emoji_2716">Heavy multiplication x</string>
+     <!-- Spoken description for Unicode code point U+2728 -->
+     <string name="spoken_emoji_2728">Sparkles</string>
+     <!-- Spoken description for Unicode code point U+2733 -->
+     <string name="spoken_emoji_2733">Eight spoked asterisk</string>
+     <!-- Spoken description for Unicode code point U+2734 -->
+     <string name="spoken_emoji_2734">Eight pointed black star</string>
+     <!-- Spoken description for Unicode code point U+2744 -->
+     <string name="spoken_emoji_2744">Snowflake</string>
+     <!-- Spoken description for Unicode code point U+2747 -->
+     <string name="spoken_emoji_2747">Sparkle</string>
+     <!-- Spoken description for Unicode code point U+274C -->
+     <string name="spoken_emoji_274C">Cross mark</string>
+     <!-- Spoken description for Unicode code point U+274E -->
+     <string name="spoken_emoji_274E">Negative squared cross mark</string>
+     <!-- Spoken description for Unicode code point U+2753 -->
+     <string name="spoken_emoji_2753">Black question mark ornament</string>
+     <!-- Spoken description for Unicode code point U+2754 -->
+     <string name="spoken_emoji_2754">White question mark ornament</string>
+     <!-- Spoken description for Unicode code point U+2755 -->
+     <string name="spoken_emoji_2755">White exclamation mark ornament</string>
+     <!-- Spoken description for Unicode code point U+2757 -->
+     <string name="spoken_emoji_2757">Heavy exclamation mark symbol</string>
+     <!-- Spoken description for Unicode code point U+2764 -->
+     <string name="spoken_emoji_2764">Heavy black heart</string>
+     <!-- Spoken description for Unicode code point U+2795 -->
+     <string name="spoken_emoji_2795">Heavy plus sign</string>
+     <!-- Spoken description for Unicode code point U+2796 -->
+     <string name="spoken_emoji_2796">Heavy minus sign</string>
+     <!-- Spoken description for Unicode code point U+2797 -->
+     <string name="spoken_emoji_2797">Heavy division sign</string>
+     <!-- Spoken description for Unicode code point U+27A1 -->
+     <string name="spoken_emoji_27A1">Black rightwards arrow</string>
+     <!-- Spoken description for Unicode code point U+27B0 -->
+     <string name="spoken_emoji_27B0">Curly loop</string>
+     <!-- Spoken description for Unicode code point U+27BF -->
+     <string name="spoken_emoji_27BF">Double curly loop</string>
+     <!-- Spoken description for Unicode code point U+2934 -->
+     <string name="spoken_emoji_2934">Arrow pointing rightwards then curving upwards</string>
+     <!-- Spoken description for Unicode code point U+2935 -->
+     <string name="spoken_emoji_2935">Arrow pointing rightwards then curving downwards</string>
+     <!-- Spoken description for Unicode code point U+2B05 -->
+     <string name="spoken_emoji_2B05">Leftwards black arrow</string>
+     <!-- Spoken description for Unicode code point U+2B06 -->
+     <string name="spoken_emoji_2B06">Upwards black arrow</string>
+     <!-- Spoken description for Unicode code point U+2B07 -->
+     <string name="spoken_emoji_2B07">Downwards black arrow</string>
+     <!-- Spoken description for Unicode code point U+2B1B -->
+     <string name="spoken_emoji_2B1B">Black large square</string>
+     <!-- Spoken description for Unicode code point U+2B1C -->
+     <string name="spoken_emoji_2B1C">White large square</string>
+     <!-- Spoken description for Unicode code point U+2B50 -->
+     <string name="spoken_emoji_2B50">White medium star</string>
+     <!-- Spoken description for Unicode code point U+2B55 -->
+     <string name="spoken_emoji_2B55">Heavy large circle</string>
+     <!-- Spoken description for Unicode code point U+3030 -->
+     <string name="spoken_emoji_3030">Wavy dash</string>
+     <!-- Spoken description for Unicode code point U+303D -->
+     <string name="spoken_emoji_303D">Part alternation mark</string>
+     <!-- Spoken description for Unicode code point U+3297 -->
+     <string name="spoken_emoji_3297">Circled ideograph congratulation</string>
+     <!-- Spoken description for Unicode code point U+3299 -->
+     <string name="spoken_emoji_3299">Circled ideograph secret</string>
+     <!-- Spoken description for Unicode code point U+1F004 -->
+     <string name="spoken_emoji_1F004">Mahjong tile red dragon</string>
+     <!-- Spoken description for Unicode code point U+1F0CF -->
+     <string name="spoken_emoji_1F0CF">Playing card black joker</string>
+     <!-- Spoken description for Unicode code point U+1F170 -->
+     <string name="spoken_emoji_1F170">Blood type A</string>
+     <!-- Spoken description for Unicode code point U+1F171 -->
+     <string name="spoken_emoji_1F171">Blood type B</string>
+     <!-- Spoken description for Unicode code point U+1F17E -->
+     <string name="spoken_emoji_1F17E">Blood type O</string>
+     <!-- Spoken description for Unicode code point U+1F17F -->
+     <string name="spoken_emoji_1F17F">Parking lot</string>
+     <!-- Spoken description for Unicode code point U+1F18E -->
+     <string name="spoken_emoji_1F18E">Blood type AB</string>
+     <!-- Spoken description for Unicode code point U+1F191, means "clear" -->
+     <string name="spoken_emoji_1F191">Squared CL</string>
+     <!-- Spoken description for Unicode code point U+1F192 -->
+     <string name="spoken_emoji_1F192">Squared cool</string>
+     <!-- Spoken description for Unicode code point U+1F193 -->
+     <string name="spoken_emoji_1F193">Squared free</string>
+     <!-- Spoken description for Unicode code point U+1F194 -->
+     <string name="spoken_emoji_1F194">Squared ID</string>
+     <!-- Spoken description for Unicode code point U+1F195 -->
+     <string name="spoken_emoji_1F195">Squared new</string>
+     <!-- Spoken description for Unicode code point U+1F196 -->
+     <string name="spoken_emoji_1F196">Squared N G</string>
+     <!-- Spoken description for Unicode code point U+1F197 -->
+     <string name="spoken_emoji_1F197">Squared OK</string>
+     <!-- Spoken description for Unicode code point U+1F198 -->
+     <string name="spoken_emoji_1F198">Squared SOS</string>
+     <!-- Spoken description for Unicode code point U+1F199 -->
+     <string name="spoken_emoji_1F199">Squared up with exclamation mark</string>
+     <!-- Spoken description for Unicode code point U+1F19A, means "versus" -->
+     <string name="spoken_emoji_1F19A">Squared vs</string>
+     <!-- Spoken description for Unicode code point U+1F201 -->
+     <string name="spoken_emoji_1F201">Squared katakana here</string>
+     <!-- Spoken description for Unicode code point U+1F202-->
+     <string name="spoken_emoji_1F202">Squared katakana service</string>
+     <!-- Spoken description for Unicode code point U+1F21A, means "free" or "no-charge" -->
+     <string name="spoken_emoji_1F21A">Squared ideograph charge-free</string>
+     <!-- Spoken description for Unicode code point U+1F22F -->
+     <string name="spoken_emoji_1F22F">Squared ideograph reserved-seat</string>
+     <!-- Spoken description for Unicode code point U+1F232 -->
+     <string name="spoken_emoji_1F232">Squared ideograph prohibitation</string>
+     <!-- Spoken description for Unicode code point U+1F233 -->
+     <string name="spoken_emoji_1F233">Squared ideograph vacancy</string>
+     <!-- Spoken description for Unicode code point U+1F234 -->
+     <string name="spoken_emoji_1F234">Squared ideograph acceptance</string>
+     <!-- Spoken description for Unicode code point U+1F235 -->
+     <string name="spoken_emoji_1F235">Squared ideograph full occupancy</string>
+     <!-- Spoken description for Unicode code point U+1F236, means "charged" or "fee-based" -->
+     <string name="spoken_emoji_1F236">Squared ideograph paid</string>
+     <!-- Spoken description for Unicode code point U+1F237 -->
+     <string name="spoken_emoji_1F237">Squared ideograph monthly</string>
+     <!-- Spoken description for Unicode code point U+1F238, means "subscription" or "application" -->
+     <string name="spoken_emoji_1F238">Squared ideograph application</string>
+     <!-- Spoken description for Unicode code point U+1F239 -->
+     <string name="spoken_emoji_1F239">Squared ideograph discount</string>
+     <!-- Spoken description for Unicode code point U+1F23A -->
+     <string name="spoken_emoji_1F23A">Squared ideograph in business</string>
+     <!-- Spoken description for Unicode code point U+1F250 -->
+     <string name="spoken_emoji_1F250">Circled ideograph advantage</string>
+     <!-- Spoken description for Unicode code point U+1F251 -->
+     <string name="spoken_emoji_1F251">Circled ideograph accept</string>
+     <!-- Spoken description for Unicode code point U+1F300 -->
+     <string name="spoken_emoji_1F300">Cyclone</string>
+     <!-- Spoken description for Unicode code point U+1F301 -->
+     <string name="spoken_emoji_1F301">Foggy</string>
+     <!-- Spoken description for Unicode code point U+1F302 -->
+     <string name="spoken_emoji_1F302">Closed umbrella</string>
+     <!-- Spoken description for Unicode code point U+1F303 -->
+     <string name="spoken_emoji_1F303">Night with stars</string>
+     <!-- Spoken description for Unicode code point U+1F304 -->
+     <string name="spoken_emoji_1F304">Sunrise over mountains</string>
+     <!-- Spoken description for Unicode code point U+1F305 -->
+     <string name="spoken_emoji_1F305">Sunrise</string>
+     <!-- Spoken description for Unicode code point U+1F306 -->
+     <string name="spoken_emoji_1F306">Cityscape at dusk</string>
+     <!-- Spoken description for Unicode code point U+1F307 -->
+     <string name="spoken_emoji_1F307">Sunset over buildings</string>
+     <!-- Spoken description for Unicode code point U+1F308 -->
+     <string name="spoken_emoji_1F308">Rainbow</string>
+     <!-- Spoken description for Unicode code point U+1F309 -->
+     <string name="spoken_emoji_1F309">Bridge at night</string>
+     <!-- Spoken description for Unicode code point U+1F30A -->
+     <string name="spoken_emoji_1F30A">Water wave</string>
+     <!-- Spoken description for Unicode code point U+1F30B -->
+     <string name="spoken_emoji_1F30B">Volcano</string>
+     <!-- Spoken description for Unicode code point U+1F30C -->
+     <string name="spoken_emoji_1F30C">Milky way</string>
+     <!-- Spoken description for Unicode code point U+1F30D -->
+     <string name="spoken_emoji_1F30D">Earth globe europe-africa</string>
+     <!-- Spoken description for Unicode code point U+1F30E -->
+     <string name="spoken_emoji_1F30E">Earth globe americas</string>
+     <!-- Spoken description for Unicode code point U+1F30F -->
+     <string name="spoken_emoji_1F30F">Earth globe asia-australia</string>
+     <!-- Spoken description for Unicode code point U+1F310 -->
+     <string name="spoken_emoji_1F310">Globe with meridians</string>
+     <!-- Spoken description for Unicode code point U+1F311 -->
+     <string name="spoken_emoji_1F311">New moon symbol</string>
+     <!-- Spoken description for Unicode code point U+1F312 -->
+     <string name="spoken_emoji_1F312">Waxing crescent moon symbol</string>
+     <!-- Spoken description for Unicode code point U+1F313 -->
+     <string name="spoken_emoji_1F313">First quarter moon symbol</string>
+     <!-- Spoken description for Unicode code point U+1F314 -->
+     <string name="spoken_emoji_1F314">Waxing gibbous moon symbol</string>
+     <!-- Spoken description for Unicode code point U+1F315 -->
+     <string name="spoken_emoji_1F315">Full moon symbol</string>
+     <!-- Spoken description for Unicode code point U+1F316 -->
+     <string name="spoken_emoji_1F316">Waning gibbous moon symbol</string>
+     <!-- Spoken description for Unicode code point U+1F317 -->
+     <string name="spoken_emoji_1F317">Last quarter moon symbol</string>
+     <!-- Spoken description for Unicode code point U+1F318 -->
+     <string name="spoken_emoji_1F318">Waning crescent moon symbol</string>
+     <!-- Spoken description for Unicode code point U+1F319 -->
+     <string name="spoken_emoji_1F319">Crescent moon</string>
+     <!-- Spoken description for Unicode code point U+1F31A -->
+     <string name="spoken_emoji_1F31A">New moon with face</string>
+     <!-- Spoken description for Unicode code point U+1F31B -->
+     <string name="spoken_emoji_1F31B">First quarter moon with face</string>
+     <!-- Spoken description for Unicode code point U+1F31C -->
+     <string name="spoken_emoji_1F31C">Last quarter moon with face</string>
+     <!-- Spoken description for Unicode code point U+1F31D -->
+     <string name="spoken_emoji_1F31D">Full moon with face</string>
+     <!-- Spoken description for Unicode code point U+1F31E -->
+     <string name="spoken_emoji_1F31E">Sun with face</string>
+     <!-- Spoken description for Unicode code point U+1F31F -->
+     <string name="spoken_emoji_1F31F">Glowing star</string>
+     <!-- Spoken description for Unicode code point U+1F320 -->
+     <string name="spoken_emoji_1F320">Shooting star</string>
+     <!-- Spoken description for Unicode code point U+1F330 -->
+     <string name="spoken_emoji_1F330">Chestnut</string>
+     <!-- Spoken description for Unicode code point U+1F331 -->
+     <string name="spoken_emoji_1F331">Seedling</string>
+     <!-- Spoken description for Unicode code point U+1F332 -->
+     <string name="spoken_emoji_1F332">Evergreen tree</string>
+     <!-- Spoken description for Unicode code point U+1F333 -->
+     <string name="spoken_emoji_1F333">Deciduous tree</string>
+     <!-- Spoken description for Unicode code point U+1F334 -->
+     <string name="spoken_emoji_1F334">Palm tree</string>
+     <!-- Spoken description for Unicode code point U+1F335 -->
+     <string name="spoken_emoji_1F335">Cactus</string>
+     <!-- Spoken description for Unicode code point U+1F337 -->
+     <string name="spoken_emoji_1F337">Tulip</string>
+     <!-- Spoken description for Unicode code point U+1F338 -->
+     <string name="spoken_emoji_1F338">Cherry blossom</string>
+     <!-- Spoken description for Unicode code point U+1F339 -->
+     <string name="spoken_emoji_1F339">Rose</string>
+     <!-- Spoken description for Unicode code point U+1F33A -->
+     <string name="spoken_emoji_1F33A">Hibiscus</string>
+     <!-- Spoken description for Unicode code point U+1F33B -->
+     <string name="spoken_emoji_1F33B">Sunflower</string>
+     <!-- Spoken description for Unicode code point U+1F33C -->
+     <string name="spoken_emoji_1F33C">Blossom</string>
+     <!-- Spoken description for Unicode code point U+1F33D -->
+     <string name="spoken_emoji_1F33D">Ear of maize</string>
+     <!-- Spoken description for Unicode code point U+1F33E -->
+     <string name="spoken_emoji_1F33E">Ear of rice</string>
+     <!-- Spoken description for Unicode code point U+1F33F -->
+     <string name="spoken_emoji_1F33F">Herb</string>
+     <!-- Spoken description for Unicode code point U+1F340 -->
+     <string name="spoken_emoji_1F340">Four leaf clover</string>
+     <!-- Spoken description for Unicode code point U+1F341 -->
+     <string name="spoken_emoji_1F341">Maple leaf</string>
+     <!-- Spoken description for Unicode code point U+1F342 -->
+     <string name="spoken_emoji_1F342">Fallen leaf</string>
+     <!-- Spoken description for Unicode code point U+1F343 -->
+     <string name="spoken_emoji_1F343">Leaf fluttering in wind</string>
+     <!-- Spoken description for Unicode code point U+1F344 -->
+     <string name="spoken_emoji_1F344">Mushroom</string>
+     <!-- Spoken description for Unicode code point U+1F345 -->
+     <string name="spoken_emoji_1F345">Tomato</string>
+     <!-- Spoken description for Unicode code point U+1F346 -->
+     <string name="spoken_emoji_1F346">Aubergine</string>
+     <!-- Spoken description for Unicode code point U+1F347 -->
+     <string name="spoken_emoji_1F347">Grapes</string>
+     <!-- Spoken description for Unicode code point U+1F348 -->
+     <string name="spoken_emoji_1F348">Melon</string>
+     <!-- Spoken description for Unicode code point U+1F349 -->
+     <string name="spoken_emoji_1F349">Watermelon</string>
+     <!-- Spoken description for Unicode code point U+1F34A -->
+     <string name="spoken_emoji_1F34A">Tangerine</string>
+     <!-- Spoken description for Unicode code point U+1F34B -->
+     <string name="spoken_emoji_1F34B">Lemon</string>
+     <!-- Spoken description for Unicode code point U+1F34C -->
+     <string name="spoken_emoji_1F34C">Banana</string>
+     <!-- Spoken description for Unicode code point U+1F34D -->
+     <string name="spoken_emoji_1F34D">Pineapple</string>
+     <!-- Spoken description for Unicode code point U+1F34E -->
+     <string name="spoken_emoji_1F34E">Red apple</string>
+     <!-- Spoken description for Unicode code point U+1F34F -->
+     <string name="spoken_emoji_1F34F">Green apple</string>
+     <!-- Spoken description for Unicode code point U+1F350 -->
+     <string name="spoken_emoji_1F350">Pear</string>
+     <!-- Spoken description for Unicode code point U+1F351 -->
+     <string name="spoken_emoji_1F351">Peach</string>
+     <!-- Spoken description for Unicode code point U+1F352 -->
+     <string name="spoken_emoji_1F352">Cherries</string>
+     <!-- Spoken description for Unicode code point U+1F353 -->
+     <string name="spoken_emoji_1F353">Strawberry</string>
+     <!-- Spoken description for Unicode code point U+1F354 -->
+     <string name="spoken_emoji_1F354">Hamburger</string>
+     <!-- Spoken description for Unicode code point U+1F355 -->
+     <string name="spoken_emoji_1F355">Slice of pizza</string>
+     <!-- Spoken description for Unicode code point U+1F356 -->
+     <string name="spoken_emoji_1F356">Meat on bone</string>
+     <!-- Spoken description for Unicode code point U+1F357 -->
+     <string name="spoken_emoji_1F357">Poultry leg</string>
+     <!-- Spoken description for Unicode code point U+1F358 -->
+     <string name="spoken_emoji_1F358">Rice cracker</string>
+     <!-- Spoken description for Unicode code point U+1F359 -->
+     <string name="spoken_emoji_1F359">Rice ball</string>
+     <!-- Spoken description for Unicode code point U+1F35A -->
+     <string name="spoken_emoji_1F35A">Cooked rice</string>
+     <!-- Spoken description for Unicode code point U+1F35B -->
+     <string name="spoken_emoji_1F35B">Curry and rice</string>
+     <!-- Spoken description for Unicode code point U+1F35C -->
+     <string name="spoken_emoji_1F35C">Steaming bowl</string>
+     <!-- Spoken description for Unicode code point U+1F35D -->
+     <string name="spoken_emoji_1F35D">Spaghetti</string>
+     <!-- Spoken description for Unicode code point U+1F35E -->
+     <string name="spoken_emoji_1F35E">Bread</string>
+     <!-- Spoken description for Unicode code point U+1F35F -->
+     <string name="spoken_emoji_1F35F">French fries</string>
+     <!-- Spoken description for Unicode code point U+1F360 -->
+     <string name="spoken_emoji_1F360">Roasted sweet potato</string>
+     <!-- Spoken description for Unicode code point U+1F361 -->
+     <string name="spoken_emoji_1F361">Dango</string>
+     <!-- Spoken description for Unicode code point U+1F362 -->
+     <string name="spoken_emoji_1F362">Oden</string>
+     <!-- Spoken description for Unicode code point U+1F363 -->
+     <string name="spoken_emoji_1F363">Sushi</string>
+     <!-- Spoken description for Unicode code point U+1F364 -->
+     <string name="spoken_emoji_1F364">Fried shrimp</string>
+     <!-- Spoken description for Unicode code point U+1F365 -->
+     <string name="spoken_emoji_1F365">Fish cake with swirl design</string>
+     <!-- Spoken description for Unicode code point U+1F366 -->
+     <string name="spoken_emoji_1F366">Soft ice cream</string>
+     <!-- Spoken description for Unicode code point U+1F367 -->
+     <string name="spoken_emoji_1F367">Shaved ice</string>
+     <!-- Spoken description for Unicode code point U+1F368 -->
+     <string name="spoken_emoji_1F368">Ice cream</string>
+     <!-- Spoken description for Unicode code point U+1F369 -->
+     <string name="spoken_emoji_1F369">Doughnut</string>
+     <!-- Spoken description for Unicode code point U+1F36A -->
+     <string name="spoken_emoji_1F36A">Cookie</string>
+     <!-- Spoken description for Unicode code point U+1F36B -->
+     <string name="spoken_emoji_1F36B">Chocolate bar</string>
+     <!-- Spoken description for Unicode code point U+1F36C -->
+     <string name="spoken_emoji_1F36C">Candy</string>
+     <!-- Spoken description for Unicode code point U+1F36D -->
+     <string name="spoken_emoji_1F36D">Lollipop</string>
+     <!-- Spoken description for Unicode code point U+1F36E -->
+     <string name="spoken_emoji_1F36E">Custard</string>
+     <!-- Spoken description for Unicode code point U+1F36F -->
+     <string name="spoken_emoji_1F36F">Honey pot</string>
+     <!-- Spoken description for Unicode code point U+1F370 -->
+     <string name="spoken_emoji_1F370">Shortcake</string>
+     <!-- Spoken description for Unicode code point U+1F371 -->
+     <string name="spoken_emoji_1F371">Bento box</string>
+     <!-- Spoken description for Unicode code point U+1F372 -->
+     <string name="spoken_emoji_1F372">Pot of food</string>
+     <!-- Spoken description for Unicode code point U+1F373 -->
+     <string name="spoken_emoji_1F373">Cooking</string>
+     <!-- Spoken description for Unicode code point U+1F374 -->
+     <string name="spoken_emoji_1F374">Fork and knife</string>
+     <!-- Spoken description for Unicode code point U+1F375 -->
+     <string name="spoken_emoji_1F375">Teacup without handle</string>
+     <!-- Spoken description for Unicode code point U+1F376 -->
+     <string name="spoken_emoji_1F376">Sake bottle and cup</string>
+     <!-- Spoken description for Unicode code point U+1F377 -->
+     <string name="spoken_emoji_1F377">Wine glass</string>
+     <!-- Spoken description for Unicode code point U+1F378 -->
+     <string name="spoken_emoji_1F378">Cocktail glass</string>
+     <!-- Spoken description for Unicode code point U+1F379 -->
+     <string name="spoken_emoji_1F379">Tropical drink</string>
+     <!-- Spoken description for Unicode code point U+1F37A -->
+     <string name="spoken_emoji_1F37A">Beer mug</string>
+     <!-- Spoken description for Unicode code point U+1F37B -->
+     <string name="spoken_emoji_1F37B">Clinking beer mugs</string>
+     <!-- Spoken description for Unicode code point U+1F37C -->
+     <string name="spoken_emoji_1F37C">Baby bottle</string>
+     <!-- Spoken description for Unicode code point U+1F380 -->
+     <string name="spoken_emoji_1F380">Ribbon</string>
+     <!-- Spoken description for Unicode code point U+1F381 -->
+     <string name="spoken_emoji_1F381">Wrapped present</string>
+     <!-- Spoken description for Unicode code point U+1F382 -->
+     <string name="spoken_emoji_1F382">Birthday cake</string>
+     <!-- Spoken description for Unicode code point U+1F383 -->
+     <string name="spoken_emoji_1F383">Jack-o-lantern</string>
+     <!-- Spoken description for Unicode code point U+1F384 -->
+     <string name="spoken_emoji_1F384">Christmas tree</string>
+     <!-- Spoken description for Unicode code point U+1F385 -->
+     <string name="spoken_emoji_1F385">Father christmas</string>
+     <!-- Spoken description for Unicode code point U+1F386 -->
+     <string name="spoken_emoji_1F386">Fireworks</string>
+     <!-- Spoken description for Unicode code point U+1F387 -->
+     <string name="spoken_emoji_1F387">Firework sparkler</string>
+     <!-- Spoken description for Unicode code point U+1F388 -->
+     <string name="spoken_emoji_1F388">Balloon</string>
+     <!-- Spoken description for Unicode code point U+1F389 -->
+     <string name="spoken_emoji_1F389">Party popper</string>
+     <!-- Spoken description for Unicode code point U+1F38A -->
+     <string name="spoken_emoji_1F38A">Confetti ball</string>
+     <!-- Spoken description for Unicode code point U+1F38B -->
+     <string name="spoken_emoji_1F38B">Tanabata tree</string>
+     <!-- Spoken description for Unicode code point U+1F38C -->
+     <string name="spoken_emoji_1F38C">Crossed flags</string>
+     <!-- Spoken description for Unicode code point U+1F38D -->
+     <string name="spoken_emoji_1F38D">Pine decoration</string>
+     <!-- Spoken description for Unicode code point U+1F38E -->
+     <string name="spoken_emoji_1F38E">Japanese dolls</string>
+     <!-- Spoken description for Unicode code point U+1F38F -->
+     <string name="spoken_emoji_1F38F">Carp streamer</string>
+     <!-- Spoken description for Unicode code point U+1F390 -->
+     <string name="spoken_emoji_1F390">Wind chime</string>
+     <!-- Spoken description for Unicode code point U+1F391 -->
+     <string name="spoken_emoji_1F391">Moon viewing ceremony</string>
+     <!-- Spoken description for Unicode code point U+1F392 -->
+     <string name="spoken_emoji_1F392">School satchel</string>
+     <!-- Spoken description for Unicode code point U+1F393 -->
+     <string name="spoken_emoji_1F393">Graduation cap</string>
+     <!-- Spoken description for Unicode code point U+1F3A0 -->
+     <string name="spoken_emoji_1F3A0">Carousel horse</string>
+     <!-- Spoken description for Unicode code point U+1F3A1 -->
+     <string name="spoken_emoji_1F3A1">Ferris wheel</string>
+     <!-- Spoken description for Unicode code point U+1F3A2 -->
+     <string name="spoken_emoji_1F3A2">Roller coaster</string>
+     <!-- Spoken description for Unicode code point U+1F3A3 -->
+     <string name="spoken_emoji_1F3A3">Fishing pole and fish</string>
+     <!-- Spoken description for Unicode code point U+1F3A4 -->
+     <string name="spoken_emoji_1F3A4">Microphone</string>
+     <!-- Spoken description for Unicode code point U+1F3A5 -->
+     <string name="spoken_emoji_1F3A5">Movie camera</string>
+     <!-- Spoken description for Unicode code point U+1F3A6 -->
+     <string name="spoken_emoji_1F3A6">Cinema</string>
+     <!-- Spoken description for Unicode code point U+1F3A7 -->
+     <string name="spoken_emoji_1F3A7">Headphone</string>
+     <!-- Spoken description for Unicode code point U+1F3A8 -->
+     <string name="spoken_emoji_1F3A8">Artist palette</string>
+     <!-- Spoken description for Unicode code point U+1F3A9 -->
+     <string name="spoken_emoji_1F3A9">Top hat</string>
+     <!-- Spoken description for Unicode code point U+1F3AA -->
+     <string name="spoken_emoji_1F3AA">Circus tent</string>
+     <!-- Spoken description for Unicode code point U+1F3AB -->
+     <string name="spoken_emoji_1F3AB">Ticket</string>
+     <!-- Spoken description for Unicode code point U+1F3AC -->
+     <string name="spoken_emoji_1F3AC">Clapper board</string>
+     <!-- Spoken description for Unicode code point U+1F3AD -->
+     <string name="spoken_emoji_1F3AD">Performing arts</string>
+     <!-- Spoken description for Unicode code point U+1F3AE -->
+     <string name="spoken_emoji_1F3AE">Video game</string>
+     <!-- Spoken description for Unicode code point U+1F3AF -->
+     <string name="spoken_emoji_1F3AF">Direct hit</string>
+     <!-- Spoken description for Unicode code point U+1F3B0 -->
+     <string name="spoken_emoji_1F3B0">Slot machine</string>
+     <!-- Spoken description for Unicode code point U+1F3B1 -->
+     <string name="spoken_emoji_1F3B1">Billiards</string>
+     <!-- Spoken description for Unicode code point U+1F3B2 -->
+     <string name="spoken_emoji_1F3B2">Game die</string>
+     <!-- Spoken description for Unicode code point U+1F3B3 -->
+     <string name="spoken_emoji_1F3B3">Bowling</string>
+     <!-- Spoken description for Unicode code point U+1F3B4 -->
+     <string name="spoken_emoji_1F3B4">Flower playing cards</string>
+     <!-- Spoken description for Unicode code point U+1F3B5 -->
+     <string name="spoken_emoji_1F3B5">Musical note</string>
+     <!-- Spoken description for Unicode code point U+1F3B6 -->
+     <string name="spoken_emoji_1F3B6">Multiple musical notes</string>
+     <!-- Spoken description for Unicode code point U+1F3B7 -->
+     <string name="spoken_emoji_1F3B7">Saxophone</string>
+     <!-- Spoken description for Unicode code point U+1F3B8 -->
+     <string name="spoken_emoji_1F3B8">Guitar</string>
+     <!-- Spoken description for Unicode code point U+1F3B9 -->
+     <string name="spoken_emoji_1F3B9">Musical keyboard</string>
+     <!-- Spoken description for Unicode code point U+1F3BA -->
+     <string name="spoken_emoji_1F3BA">Trumpet</string>
+     <!-- Spoken description for Unicode code point U+1F3BB -->
+     <string name="spoken_emoji_1F3BB">Violin</string>
+     <!-- Spoken description for Unicode code point U+1F3BC -->
+     <string name="spoken_emoji_1F3BC">Musical score</string>
+     <!-- Spoken description for Unicode code point U+1F3BD -->
+     <string name="spoken_emoji_1F3BD">Running shirt with sash</string>
+     <!-- Spoken description for Unicode code point U+1F3BE -->
+     <string name="spoken_emoji_1F3BE">Tennis racquet and ball</string>
+     <!-- Spoken description for Unicode code point U+1F3BF -->
+     <string name="spoken_emoji_1F3BF">Ski and ski boot</string>
+     <!-- Spoken description for Unicode code point U+1F3C0 -->
+     <string name="spoken_emoji_1F3C0">Basketball and hoop</string>
+     <!-- Spoken description for Unicode code point U+1F3C1 -->
+     <string name="spoken_emoji_1F3C1">Chequered flag</string>
+     <!-- Spoken description for Unicode code point U+1F3C2 -->
+     <string name="spoken_emoji_1F3C2">Snowboarder</string>
+     <!-- Spoken description for Unicode code point U+1F3C3 -->
+     <string name="spoken_emoji_1F3C3">Runner</string>
+     <!-- Spoken description for Unicode code point U+1F3C4 -->
+     <string name="spoken_emoji_1F3C4">Surfer</string>
+     <!-- Spoken description for Unicode code point U+1F3C6 -->
+     <string name="spoken_emoji_1F3C6">Trophy</string>
+     <!-- Spoken description for Unicode code point U+1F3C7 -->
+     <string name="spoken_emoji_1F3C7">Horse racing</string>
+     <!-- Spoken description for Unicode code point U+1F3C8 -->
+     <string name="spoken_emoji_1F3C8">American football</string>
+     <!-- Spoken description for Unicode code point U+1F3C9 -->
+     <string name="spoken_emoji_1F3C9">Rugby football</string>
+     <!-- Spoken description for Unicode code point U+1F3CA -->
+     <string name="spoken_emoji_1F3CA">Swimmer</string>
+     <!-- Spoken description for Unicode code point U+1F3E0 -->
+     <string name="spoken_emoji_1F3E0">House building</string>
+     <!-- Spoken description for Unicode code point U+1F3E1 -->
+     <string name="spoken_emoji_1F3E1">House with garden</string>
+     <!-- Spoken description for Unicode code point U+1F3E2 -->
+     <string name="spoken_emoji_1F3E2">Office building</string>
+     <!-- Spoken description for Unicode code point U+1F3E3 -->
+     <string name="spoken_emoji_1F3E3">Japanese post office</string>
+     <!-- Spoken description for Unicode code point U+1F3E4 -->
+     <string name="spoken_emoji_1F3E4">European post office</string>
+     <!-- Spoken description for Unicode code point U+1F3E5 -->
+     <string name="spoken_emoji_1F3E5">Hospital</string>
+     <!-- Spoken description for Unicode code point U+1F3E6 -->
+     <string name="spoken_emoji_1F3E6">Bank</string>
+     <!-- Spoken description for Unicode code point U+1F3E7 -->
+     <string name="spoken_emoji_1F3E7">Automated teller machine</string>
+     <!-- Spoken description for Unicode code point U+1F3E8 -->
+     <string name="spoken_emoji_1F3E8">Hotel</string>
+     <!-- Spoken description for Unicode code point U+1F3E9 -->
+     <string name="spoken_emoji_1F3E9">Love hotel</string>
+     <!-- Spoken description for Unicode code point U+1F3EA -->
+     <string name="spoken_emoji_1F3EA">Convenience store</string>
+     <!-- Spoken description for Unicode code point U+1F3EB -->
+     <string name="spoken_emoji_1F3EB">School</string>
+     <!-- Spoken description for Unicode code point U+1F3EC -->
+     <string name="spoken_emoji_1F3EC">Department store</string>
+     <!-- Spoken description for Unicode code point U+1F3ED -->
+     <string name="spoken_emoji_1F3ED">Factory</string>
+     <!-- Spoken description for Unicode code point U+1F3EE -->
+     <string name="spoken_emoji_1F3EE">Izakaya lantern</string>
+     <!-- Spoken description for Unicode code point U+1F3EF -->
+     <string name="spoken_emoji_1F3EF">Japanese castle</string>
+     <!-- Spoken description for Unicode code point U+1F3F0 -->
+     <string name="spoken_emoji_1F3F0">European castle</string>
+     <!-- Spoken description for Unicode code point U+1F400 -->
+     <string name="spoken_emoji_1F400">Rat</string>
+     <!-- Spoken description for Unicode code point U+1F401 -->
+     <string name="spoken_emoji_1F401">Mouse</string>
+     <!-- Spoken description for Unicode code point U+1F402 -->
+     <string name="spoken_emoji_1F402">Ox</string>
+     <!-- Spoken description for Unicode code point U+1F403 -->
+     <string name="spoken_emoji_1F403">Water buffalo</string>
+     <!-- Spoken description for Unicode code point U+1F404 -->
+     <string name="spoken_emoji_1F404">Cow</string>
+     <!-- Spoken description for Unicode code point U+1F406 -->
+     <string name="spoken_emoji_1F406">Leopard</string>
+     <!-- Spoken description for Unicode code point U+1F407 -->
+     <string name="spoken_emoji_1F407">Rabbit</string>
+     <!-- Spoken description for Unicode code point U+1F408 -->
+     <string name="spoken_emoji_1F408">Cat</string>
+     <!-- Spoken description for Unicode code point U+1F409 -->
+     <string name="spoken_emoji_1F409">Dragon</string>
+     <!-- Spoken description for Unicode code point U+1F40A -->
+     <string name="spoken_emoji_1F40A">Crocodile</string>
+     <!-- Spoken description for Unicode code point U+1F40B -->
+     <string name="spoken_emoji_1F40B">Whale</string>
+     <!-- Spoken description for Unicode code point U+1F40C -->
+     <string name="spoken_emoji_1F40C">Snail</string>
+     <!-- Spoken description for Unicode code point U+1F40D -->
+     <string name="spoken_emoji_1F40D">Snake</string>
+     <!-- Spoken description for Unicode code point U+1F40E -->
+     <string name="spoken_emoji_1F40E">Horse</string>
+     <!-- Spoken description for Unicode code point U+1F40F -->
+     <string name="spoken_emoji_1F40F">Ram</string>
+     <!-- Spoken description for Unicode code point U+1F410 -->
+     <string name="spoken_emoji_1F410">Goat</string>
+     <!-- Spoken description for Unicode code point U+1F411 -->
+     <string name="spoken_emoji_1F411">Sheep</string>
+     <!-- Spoken description for Unicode code point U+1F412 -->
+     <string name="spoken_emoji_1F412">Monkey</string>
+     <!-- Spoken description for Unicode code point U+1F413 -->
+     <string name="spoken_emoji_1F413">Rooster</string>
+     <!-- Spoken description for Unicode code point U+1F414 -->
+     <string name="spoken_emoji_1F414">Chicken</string>
+     <!-- Spoken description for Unicode code point U+1F415 -->
+     <string name="spoken_emoji_1F415">Dog</string>
+     <!-- Spoken description for Unicode code point U+1F416 -->
+     <string name="spoken_emoji_1F416">Pig</string>
+     <!-- Spoken description for Unicode code point U+1F417 -->
+     <string name="spoken_emoji_1F417">Boar</string>
+     <!-- Spoken description for Unicode code point U+1F418 -->
+     <string name="spoken_emoji_1F418">Elephant</string>
+     <!-- Spoken description for Unicode code point U+1F419 -->
+     <string name="spoken_emoji_1F419">Octopus</string>
+     <!-- Spoken description for Unicode code point U+1F41A -->
+     <string name="spoken_emoji_1F41A">Spiral shell</string>
+     <!-- Spoken description for Unicode code point U+1F41B -->
+     <string name="spoken_emoji_1F41B">Bug</string>
+     <!-- Spoken description for Unicode code point U+1F41C -->
+     <string name="spoken_emoji_1F41C">Ant</string>
+     <!-- Spoken description for Unicode code point U+1F41D -->
+     <string name="spoken_emoji_1F41D">Honeybee</string>
+     <!-- Spoken description for Unicode code point U+1F41E -->
+     <string name="spoken_emoji_1F41E">Lady beetle</string>
+     <!-- Spoken description for Unicode code point U+1F41F -->
+     <string name="spoken_emoji_1F41F">Fish</string>
+     <!-- Spoken description for Unicode code point U+1F420 -->
+     <string name="spoken_emoji_1F420">Tropical fish</string>
+     <!-- Spoken description for Unicode code point U+1F421 -->
+     <string name="spoken_emoji_1F421">Blowfish</string>
+     <!-- Spoken description for Unicode code point U+1F422 -->
+     <string name="spoken_emoji_1F422">Turtle</string>
+     <!-- Spoken description for Unicode code point U+1F423 -->
+     <string name="spoken_emoji_1F423">Hatching chick</string>
+     <!-- Spoken description for Unicode code point U+1F424 -->
+     <string name="spoken_emoji_1F424">Baby chick</string>
+     <!-- Spoken description for Unicode code point U+1F425 -->
+     <string name="spoken_emoji_1F425">Front-facing baby chick</string>
+     <!-- Spoken description for Unicode code point U+1F426 -->
+     <string name="spoken_emoji_1F426">Bird</string>
+     <!-- Spoken description for Unicode code point U+1F427 -->
+     <string name="spoken_emoji_1F427">Penguin</string>
+     <!-- Spoken description for Unicode code point U+1F428 -->
+     <string name="spoken_emoji_1F428">Koala</string>
+     <!-- Spoken description for Unicode code point U+1F429 -->
+     <string name="spoken_emoji_1F429">Poodle</string>
+     <!-- Spoken description for Unicode code point U+1F42A -->
+     <string name="spoken_emoji_1F42A">Dromedary camel</string>
+     <!-- Spoken description for Unicode code point U+1F42B -->
+     <string name="spoken_emoji_1F42B">Bactrian camel</string>
+     <!-- Spoken description for Unicode code point U+1F42C -->
+     <string name="spoken_emoji_1F42C">Dolphin</string>
+     <!-- Spoken description for Unicode code point U+1F42D -->
+     <string name="spoken_emoji_1F42D">Mouse face</string>
+     <!-- Spoken description for Unicode code point U+1F42E -->
+     <string name="spoken_emoji_1F42E">Cow face</string>
+     <!-- Spoken description for Unicode code point U+1F42F -->
+     <string name="spoken_emoji_1F42F">Tiger face</string>
+     <!-- Spoken description for Unicode code point U+1F430 -->
+     <string name="spoken_emoji_1F430">Rabbit face</string>
+     <!-- Spoken description for Unicode code point U+1F431 -->
+     <string name="spoken_emoji_1F431">Cat face</string>
+     <!-- Spoken description for Unicode code point U+1F432 -->
+     <string name="spoken_emoji_1F432">Dragon face</string>
+     <!-- Spoken description for Unicode code point U+1F433 -->
+     <string name="spoken_emoji_1F433">Spouting whale</string>
+     <!-- Spoken description for Unicode code point U+1F434 -->
+     <string name="spoken_emoji_1F434">Horse face</string>
+     <!-- Spoken description for Unicode code point U+1F435 -->
+     <string name="spoken_emoji_1F435">Monkey face</string>
+     <!-- Spoken description for Unicode code point U+1F436 -->
+     <string name="spoken_emoji_1F436">Dog face</string>
+     <!-- Spoken description for Unicode code point U+1F437 -->
+     <string name="spoken_emoji_1F437">Pig face</string>
+     <!-- Spoken description for Unicode code point U+1F438 -->
+     <string name="spoken_emoji_1F438">Frog face</string>
+     <!-- Spoken description for Unicode code point U+1F439 -->
+     <string name="spoken_emoji_1F439">Hamster face</string>
+     <!-- Spoken description for Unicode code point U+1F43A -->
+     <string name="spoken_emoji_1F43A">Wolf face</string>
+     <!-- Spoken description for Unicode code point U+1F43B -->
+     <string name="spoken_emoji_1F43B">Bear face</string>
+     <!-- Spoken description for Unicode code point U+1F43C -->
+     <string name="spoken_emoji_1F43C">Panda face</string>
+     <!-- Spoken description for Unicode code point U+1F43D -->
+     <string name="spoken_emoji_1F43D">Pig nose</string>
+     <!-- Spoken description for Unicode code point U+1F43E -->
+     <string name="spoken_emoji_1F43E">Paw prints</string>
+     <!-- Spoken description for Unicode code point U+1F440 -->
+     <string name="spoken_emoji_1F440">Eyes</string>
+     <!-- Spoken description for Unicode code point U+1F442 -->
+     <string name="spoken_emoji_1F442">Ear</string>
+     <!-- Spoken description for Unicode code point U+1F443 -->
+     <string name="spoken_emoji_1F443">Nose</string>
+     <!-- Spoken description for Unicode code point U+1F444 -->
+     <string name="spoken_emoji_1F444">Mouth</string>
+     <!-- Spoken description for Unicode code point U+1F445 -->
+     <string name="spoken_emoji_1F445">Tongue</string>
+     <!-- Spoken description for Unicode code point U+1F446 -->
+     <string name="spoken_emoji_1F446">White up pointing backhand index</string>
+     <!-- Spoken description for Unicode code point U+1F447 -->
+     <string name="spoken_emoji_1F447">White down pointing backhand index</string>
+     <!-- Spoken description for Unicode code point U+1F448 -->
+     <string name="spoken_emoji_1F448">White left pointing backhand index</string>
+     <!-- Spoken description for Unicode code point U+1F449 -->
+     <string name="spoken_emoji_1F449">White right pointing backhand index</string>
+     <!-- Spoken description for Unicode code point U+1F44A -->
+     <string name="spoken_emoji_1F44A">Fisted hand sign</string>
+     <!-- Spoken description for Unicode code point U+1F44B -->
+     <string name="spoken_emoji_1F44B">Waving hand sign</string>
+     <!-- Spoken description for Unicode code point U+1F44C -->
+     <string name="spoken_emoji_1F44C">Ok hand sign</string>
+     <!-- Spoken description for Unicode code point U+1F44D -->
+     <string name="spoken_emoji_1F44D">Thumbs up sign</string>
+     <!-- Spoken description for Unicode code point U+1F44E -->
+     <string name="spoken_emoji_1F44E">Thumbs down sign</string>
+     <!-- Spoken description for Unicode code point U+1F44F -->
+     <string name="spoken_emoji_1F44F">Clapping hands sign</string>
+     <!-- Spoken description for Unicode code point U+1F450 -->
+     <string name="spoken_emoji_1F450">Open hands sign</string>
+     <!-- Spoken description for Unicode code point U+1F451 -->
+     <string name="spoken_emoji_1F451">Crown</string>
+     <!-- Spoken description for Unicode code point U+1F452 -->
+     <string name="spoken_emoji_1F452">Womans hat</string>
+     <!-- Spoken description for Unicode code point U+1F453 -->
+     <string name="spoken_emoji_1F453">Eyeglasses</string>
+     <!-- Spoken description for Unicode code point U+1F454 -->
+     <string name="spoken_emoji_1F454">Necktie</string>
+     <!-- Spoken description for Unicode code point U+1F455 -->
+     <string name="spoken_emoji_1F455">T-shirt</string>
+     <!-- Spoken description for Unicode code point U+1F456 -->
+     <string name="spoken_emoji_1F456">Jeans</string>
+     <!-- Spoken description for Unicode code point U+1F457 -->
+     <string name="spoken_emoji_1F457">Dress</string>
+     <!-- Spoken description for Unicode code point U+1F458 -->
+     <string name="spoken_emoji_1F458">Kimono</string>
+     <!-- Spoken description for Unicode code point U+1F459 -->
+     <string name="spoken_emoji_1F459">Bikini</string>
+     <!-- Spoken description for Unicode code point U+1F45A -->
+     <string name="spoken_emoji_1F45A">Womans clothes</string>
+     <!-- Spoken description for Unicode code point U+1F45B -->
+     <string name="spoken_emoji_1F45B">Purse</string>
+     <!-- Spoken description for Unicode code point U+1F45C -->
+     <string name="spoken_emoji_1F45C">Handbag</string>
+     <!-- Spoken description for Unicode code point U+1F45D -->
+     <string name="spoken_emoji_1F45D">Pouch</string>
+     <!-- Spoken description for Unicode code point U+1F45E -->
+     <string name="spoken_emoji_1F45E">Mans shoe</string>
+     <!-- Spoken description for Unicode code point U+1F45F -->
+     <string name="spoken_emoji_1F45F">Athletic shoe</string>
+     <!-- Spoken description for Unicode code point U+1F460 -->
+     <string name="spoken_emoji_1F460">High-heeled shoe</string>
+     <!-- Spoken description for Unicode code point U+1F461 -->
+     <string name="spoken_emoji_1F461">Womans sandal</string>
+     <!-- Spoken description for Unicode code point U+1F462 -->
+     <string name="spoken_emoji_1F462">Womans boots</string>
+     <!-- Spoken description for Unicode code point U+1F463 -->
+     <string name="spoken_emoji_1F463">Footprints</string>
+     <!-- Spoken description for Unicode code point U+1F464 -->
+     <string name="spoken_emoji_1F464">Bust in silhouette</string>
+     <!-- Spoken description for Unicode code point U+1F465 -->
+     <string name="spoken_emoji_1F465">Busts in silhouette</string>
+     <!-- Spoken description for Unicode code point U+1F466 -->
+     <string name="spoken_emoji_1F466">Boy</string>
+     <!-- Spoken description for Unicode code point U+1F467 -->
+     <string name="spoken_emoji_1F467">Girl</string>
+     <!-- Spoken description for Unicode code point U+1F468 -->
+     <string name="spoken_emoji_1F468">Man</string>
+     <!-- Spoken description for Unicode code point U+1F469 -->
+     <string name="spoken_emoji_1F469">Woman</string>
+     <!-- Spoken description for Unicode code point U+1F46A -->
+     <string name="spoken_emoji_1F46A">Family</string>
+     <!-- Spoken description for Unicode code point U+1F46B -->
+     <string name="spoken_emoji_1F46B">Man and woman holding hands</string>
+     <!-- Spoken description for Unicode code point U+1F46C -->
+     <string name="spoken_emoji_1F46C">Two men holding hands</string>
+     <!-- Spoken description for Unicode code point U+1F46D -->
+     <string name="spoken_emoji_1F46D">Two women holding hands</string>
+     <!-- Spoken description for Unicode code point U+1F46E -->
+     <string name="spoken_emoji_1F46E">Police officer</string>
+     <!-- Spoken description for Unicode code point U+1F46F -->
+     <string name="spoken_emoji_1F46F">Woman with bunny ears</string>
+     <!-- Spoken description for Unicode code point U+1F470 -->
+     <string name="spoken_emoji_1F470">Bride with veil</string>
+     <!-- Spoken description for Unicode code point U+1F471 -->
+     <string name="spoken_emoji_1F471">Person with blond hair</string>
+     <!-- Spoken description for Unicode code point U+1F472 -->
+     <string name="spoken_emoji_1F472">Man with gua pi mao</string>
+     <!-- Spoken description for Unicode code point U+1F473 -->
+     <string name="spoken_emoji_1F473">Man with turban</string>
+     <!-- Spoken description for Unicode code point U+1F474 -->
+     <string name="spoken_emoji_1F474">Older man</string>
+     <!-- Spoken description for Unicode code point U+1F475 -->
+     <string name="spoken_emoji_1F475">Older woman</string>
+     <!-- Spoken description for Unicode code point U+1F476 -->
+     <string name="spoken_emoji_1F476">Baby</string>
+     <!-- Spoken description for Unicode code point U+1F477 -->
+     <string name="spoken_emoji_1F477">Construction worker</string>
+     <!-- Spoken description for Unicode code point U+1F478 -->
+     <string name="spoken_emoji_1F478">Princess</string>
+     <!-- Spoken description for Unicode code point U+1F479 -->
+     <string name="spoken_emoji_1F479">Japanese ogre</string>
+     <!-- Spoken description for Unicode code point U+1F47A -->
+     <string name="spoken_emoji_1F47A">Japanese goblin</string>
+     <!-- Spoken description for Unicode code point U+1F47B -->
+     <string name="spoken_emoji_1F47B">Ghost</string>
+     <!-- Spoken description for Unicode code point U+1F47C -->
+     <string name="spoken_emoji_1F47C">Baby angel</string>
+     <!-- Spoken description for Unicode code point U+1F47D -->
+     <string name="spoken_emoji_1F47D">Extraterrestrial alien</string>
+     <!-- Spoken description for Unicode code point U+1F47E -->
+     <string name="spoken_emoji_1F47E">Alien monster</string>
+     <!-- Spoken description for Unicode code point U+1F47F -->
+     <string name="spoken_emoji_1F47F">Imp</string>
+     <!-- Spoken description for Unicode code point U+1F480 -->
+     <string name="spoken_emoji_1F480">Skull</string>
+     <!-- Spoken description for Unicode code point U+1F481 -->
+     <string name="spoken_emoji_1F481">Information desk person</string>
+     <!-- Spoken description for Unicode code point U+1F482 -->
+     <string name="spoken_emoji_1F482">Guardsman</string>
+     <!-- Spoken description for Unicode code point U+1F483 -->
+     <string name="spoken_emoji_1F483">Dancer</string>
+     <!-- Spoken description for Unicode code point U+1F484 -->
+     <string name="spoken_emoji_1F484">Lipstick</string>
+     <!-- Spoken description for Unicode code point U+1F485 -->
+     <string name="spoken_emoji_1F485">Nail polish</string>
+     <!-- Spoken description for Unicode code point U+1F486 -->
+     <string name="spoken_emoji_1F486">Face massage</string>
+     <!-- Spoken description for Unicode code point U+1F487 -->
+     <string name="spoken_emoji_1F487">Haircut</string>
+     <!-- Spoken description for Unicode code point U+1F488 -->
+     <string name="spoken_emoji_1F488">Barber pole</string>
+     <!-- Spoken description for Unicode code point U+1F489 -->
+     <string name="spoken_emoji_1F489">Syringe</string>
+     <!-- Spoken description for Unicode code point U+1F48A -->
+     <string name="spoken_emoji_1F48A">Pill</string>
+     <!-- Spoken description for Unicode code point U+1F48B -->
+     <string name="spoken_emoji_1F48B">Kiss mark</string>
+     <!-- Spoken description for Unicode code point U+1F48C -->
+     <string name="spoken_emoji_1F48C">Love letter</string>
+     <!-- Spoken description for Unicode code point U+1F48D -->
+     <string name="spoken_emoji_1F48D">Ring</string>
+     <!-- Spoken description for Unicode code point U+1F48E -->
+     <string name="spoken_emoji_1F48E">Gem stone</string>
+     <!-- Spoken description for Unicode code point U+1F48F -->
+     <string name="spoken_emoji_1F48F">Kiss</string>
+     <!-- Spoken description for Unicode code point U+1F490 -->
+     <string name="spoken_emoji_1F490">Bouquet</string>
+     <!-- Spoken description for Unicode code point U+1F491 -->
+     <string name="spoken_emoji_1F491">Couple with heart</string>
+     <!-- Spoken description for Unicode code point U+1F492 -->
+     <string name="spoken_emoji_1F492">Wedding</string>
+     <!-- Spoken description for Unicode code point U+1F493 -->
+     <string name="spoken_emoji_1F493">Beating heart</string>
+     <!-- Spoken description for Unicode code point U+1F494 -->
+     <string name="spoken_emoji_1F494">Broken heart</string>
+     <!-- Spoken description for Unicode code point U+1F495 -->
+     <string name="spoken_emoji_1F495">Two hearts</string>
+     <!-- Spoken description for Unicode code point U+1F496 -->
+     <string name="spoken_emoji_1F496">Sparkling heart</string>
+     <!-- Spoken description for Unicode code point U+1F497 -->
+     <string name="spoken_emoji_1F497">Growing heart</string>
+     <!-- Spoken description for Unicode code point U+1F498 -->
+     <string name="spoken_emoji_1F498">Heart with arrow</string>
+     <!-- Spoken description for Unicode code point U+1F499 -->
+     <string name="spoken_emoji_1F499">Blue heart</string>
+     <!-- Spoken description for Unicode code point U+1F49A -->
+     <string name="spoken_emoji_1F49A">Green heart</string>
+     <!-- Spoken description for Unicode code point U+1F49B -->
+     <string name="spoken_emoji_1F49B">Yellow heart</string>
+     <!-- Spoken description for Unicode code point U+1F49C -->
+     <string name="spoken_emoji_1F49C">Purple heart</string>
+     <!-- Spoken description for Unicode code point U+1F49D -->
+     <string name="spoken_emoji_1F49D">Heart with ribbon</string>
+     <!-- Spoken description for Unicode code point U+1F49E -->
+     <string name="spoken_emoji_1F49E">Revolving hearts</string>
+     <!-- Spoken description for Unicode code point U+1F49F -->
+     <string name="spoken_emoji_1F49F">Heart decoration</string>
+     <!-- Spoken description for Unicode code point U+1F4A0 -->
+     <string name="spoken_emoji_1F4A0">Diamond shape with a dot inside</string>
+     <!-- Spoken description for Unicode code point U+1F4A1 -->
+     <string name="spoken_emoji_1F4A1">Electric light bulb</string>
+     <!-- Spoken description for Unicode code point U+1F4A2 -->
+     <string name="spoken_emoji_1F4A2">Anger symbol</string>
+     <!-- Spoken description for Unicode code point U+1F4A3 -->
+     <string name="spoken_emoji_1F4A3">Bomb</string>
+     <!-- Spoken description for Unicode code point U+1F4A4 -->
+     <string name="spoken_emoji_1F4A4">Sleeping symbol</string>
+     <!-- Spoken description for Unicode code point U+1F4A5 -->
+     <string name="spoken_emoji_1F4A5">Collision symbol</string>
+     <!-- Spoken description for Unicode code point U+1F4A6 -->
+     <string name="spoken_emoji_1F4A6">Splashing sweat symbol</string>
+     <!-- Spoken description for Unicode code point U+1F4A7 -->
+     <string name="spoken_emoji_1F4A7">Droplet</string>
+     <!-- Spoken description for Unicode code point U+1F4A8 -->
+     <string name="spoken_emoji_1F4A8">Dash symbol</string>
+     <!-- Spoken description for Unicode code point U+1F4A9 -->
+     <string name="spoken_emoji_1F4A9">Pile of poo</string>
+     <!-- Spoken description for Unicode code point U+1F4AA -->
+     <string name="spoken_emoji_1F4AA">Flexed biceps</string>
+     <!-- Spoken description for Unicode code point U+1F4AB -->
+     <string name="spoken_emoji_1F4AB">Dizzy symbol</string>
+     <!-- Spoken description for Unicode code point U+1F4AC -->
+     <string name="spoken_emoji_1F4AC">Speech balloon</string>
+     <!-- Spoken description for Unicode code point U+1F4AD -->
+     <string name="spoken_emoji_1F4AD">Thought balloon</string>
+     <!-- Spoken description for Unicode code point U+1F4AE -->
+     <string name="spoken_emoji_1F4AE">White flower</string>
+     <!-- Spoken description for Unicode code point U+1F4AF -->
+     <string name="spoken_emoji_1F4AF">Hundred points symbol</string>
+     <!-- Spoken description for Unicode code point U+1F4B0 -->
+     <string name="spoken_emoji_1F4B0">Money bag</string>
+     <!-- Spoken description for Unicode code point U+1F4B1 -->
+     <string name="spoken_emoji_1F4B1">Currency exchange</string>
+     <!-- Spoken description for Unicode code point U+1F4B2 -->
+     <string name="spoken_emoji_1F4B2">Heavy dollar sign</string>
+     <!-- Spoken description for Unicode code point U+1F4B3 -->
+     <string name="spoken_emoji_1F4B3">Credit card</string>
+     <!-- Spoken description for Unicode code point U+1F4B4 -->
+     <string name="spoken_emoji_1F4B4">Banknote with yen sign</string>
+     <!-- Spoken description for Unicode code point U+1F4B5 -->
+     <string name="spoken_emoji_1F4B5">Banknote with dollar sign</string>
+     <!-- Spoken description for Unicode code point U+1F4B6 -->
+     <string name="spoken_emoji_1F4B6">Banknote with euro sign</string>
+     <!-- Spoken description for Unicode code point U+1F4B7 -->
+     <string name="spoken_emoji_1F4B7">Banknote with pound sign</string>
+     <!-- Spoken description for Unicode code point U+1F4B8 -->
+     <string name="spoken_emoji_1F4B8">Money with wings</string>
+     <!-- Spoken description for Unicode code point U+1F4B9 -->
+     <string name="spoken_emoji_1F4B9">Chart with upwards trend and yen sign</string>
+     <!-- Spoken description for Unicode code point U+1F4BA -->
+     <string name="spoken_emoji_1F4BA">Seat</string>
+     <!-- Spoken description for Unicode code point U+1F4BB -->
+     <string name="spoken_emoji_1F4BB">Personal computer</string>
+     <!-- Spoken description for Unicode code point U+1F4BC -->
+     <string name="spoken_emoji_1F4BC">Briefcase</string>
+     <!-- Spoken description for Unicode code point U+1F4BD -->
+     <string name="spoken_emoji_1F4BD">Minidisc</string>
+     <!-- Spoken description for Unicode code point U+1F4BE -->
+     <string name="spoken_emoji_1F4BE">Floppy disk</string>
+     <!-- Spoken description for Unicode code point U+1F4BF -->
+     <string name="spoken_emoji_1F4BF">Optical disc</string>
+     <!-- Spoken description for Unicode code point U+1F4C0 -->
+     <string name="spoken_emoji_1F4C0">Dvd</string>
+     <!-- Spoken description for Unicode code point U+1F4C1 -->
+     <string name="spoken_emoji_1F4C1">File folder</string>
+     <!-- Spoken description for Unicode code point U+1F4C2 -->
+     <string name="spoken_emoji_1F4C2">Open file folder</string>
+     <!-- Spoken description for Unicode code point U+1F4C3 -->
+     <string name="spoken_emoji_1F4C3">Page with curl</string>
+     <!-- Spoken description for Unicode code point U+1F4C4 -->
+     <string name="spoken_emoji_1F4C4">Page facing up</string>
+     <!-- Spoken description for Unicode code point U+1F4C5 -->
+     <string name="spoken_emoji_1F4C5">Calendar</string>
+     <!-- Spoken description for Unicode code point U+1F4C6 -->
+     <string name="spoken_emoji_1F4C6">Tear-off calendar</string>
+     <!-- Spoken description for Unicode code point U+1F4C7 -->
+     <string name="spoken_emoji_1F4C7">Card index</string>
+     <!-- Spoken description for Unicode code point U+1F4C8 -->
+     <string name="spoken_emoji_1F4C8">Chart with upwards trend</string>
+     <!-- Spoken description for Unicode code point U+1F4C9 -->
+     <string name="spoken_emoji_1F4C9">Chart with downwards trend</string>
+     <!-- Spoken description for Unicode code point U+1F4CA -->
+     <string name="spoken_emoji_1F4CA">Bar chart</string>
+     <!-- Spoken description for Unicode code point U+1F4CB -->
+     <string name="spoken_emoji_1F4CB">Clipboard</string>
+     <!-- Spoken description for Unicode code point U+1F4CC -->
+     <string name="spoken_emoji_1F4CC">Pushpin</string>
+     <!-- Spoken description for Unicode code point U+1F4CD -->
+     <string name="spoken_emoji_1F4CD">Round pushpin</string>
+     <!-- Spoken description for Unicode code point U+1F4CE -->
+     <string name="spoken_emoji_1F4CE">Paperclip</string>
+     <!-- Spoken description for Unicode code point U+1F4CF -->
+     <string name="spoken_emoji_1F4CF">Straight ruler</string>
+     <!-- Spoken description for Unicode code point U+1F4D0 -->
+     <string name="spoken_emoji_1F4D0">Triangular ruler</string>
+     <!-- Spoken description for Unicode code point U+1F4D1 -->
+     <string name="spoken_emoji_1F4D1">Bookmark tabs</string>
+     <!-- Spoken description for Unicode code point U+1F4D2 -->
+     <string name="spoken_emoji_1F4D2">Ledger</string>
+     <!-- Spoken description for Unicode code point U+1F4D3 -->
+     <string name="spoken_emoji_1F4D3">Notebook</string>
+     <!-- Spoken description for Unicode code point U+1F4D4 -->
+     <string name="spoken_emoji_1F4D4">Notebook with decorative cover</string>
+     <!-- Spoken description for Unicode code point U+1F4D5 -->
+     <string name="spoken_emoji_1F4D5">Closed book</string>
+     <!-- Spoken description for Unicode code point U+1F4D6 -->
+     <string name="spoken_emoji_1F4D6">Open book</string>
+     <!-- Spoken description for Unicode code point U+1F4D7 -->
+     <string name="spoken_emoji_1F4D7">Green book</string>
+     <!-- Spoken description for Unicode code point U+1F4D8 -->
+     <string name="spoken_emoji_1F4D8">Blue book</string>
+     <!-- Spoken description for Unicode code point U+1F4D9 -->
+     <string name="spoken_emoji_1F4D9">Orange book</string>
+     <!-- Spoken description for Unicode code point U+1F4DA -->
+     <string name="spoken_emoji_1F4DA">Books</string>
+     <!-- Spoken description for Unicode code point U+1F4DB -->
+     <string name="spoken_emoji_1F4DB">Name badge</string>
+     <!-- Spoken description for Unicode code point U+1F4DC -->
+     <string name="spoken_emoji_1F4DC">Scroll</string>
+     <!-- Spoken description for Unicode code point U+1F4DD -->
+     <string name="spoken_emoji_1F4DD">Memo</string>
+     <!-- Spoken description for Unicode code point U+1F4DE -->
+     <string name="spoken_emoji_1F4DE">Telephone receiver</string>
+     <!-- Spoken description for Unicode code point U+1F4DF -->
+     <string name="spoken_emoji_1F4DF">Pager</string>
+     <!-- Spoken description for Unicode code point U+1F4E0 -->
+     <string name="spoken_emoji_1F4E0">Fax machine</string>
+     <!-- Spoken description for Unicode code point U+1F4E1 -->
+     <string name="spoken_emoji_1F4E1">Satellite antenna</string>
+     <!-- Spoken description for Unicode code point U+1F4E2 -->
+     <string name="spoken_emoji_1F4E2">Public address loudspeaker</string>
+     <!-- Spoken description for Unicode code point U+1F4E3 -->
+     <string name="spoken_emoji_1F4E3">Cheering megaphone</string>
+     <!-- Spoken description for Unicode code point U+1F4E4 -->
+     <string name="spoken_emoji_1F4E4">Outbox tray</string>
+     <!-- Spoken description for Unicode code point U+1F4E5 -->
+     <string name="spoken_emoji_1F4E5">Inbox tray</string>
+     <!-- Spoken description for Unicode code point U+1F4E6 -->
+     <string name="spoken_emoji_1F4E6">Package</string>
+     <!-- Spoken description for Unicode code point U+1F4E7 -->
+     <string name="spoken_emoji_1F4E7">E-mail symbol</string>
+     <!-- Spoken description for Unicode code point U+1F4E8 -->
+     <string name="spoken_emoji_1F4E8">Incoming envelope</string>
+     <!-- Spoken description for Unicode code point U+1F4E9 -->
+     <string name="spoken_emoji_1F4E9">Envelope with downwards arrow above</string>
+     <!-- Spoken description for Unicode code point U+1F4EA -->
+     <string name="spoken_emoji_1F4EA">Closed mailbox with lowered flag</string>
+     <!-- Spoken description for Unicode code point U+1F4EB -->
+     <string name="spoken_emoji_1F4EB">Closed mailbox with raised flag</string>
+     <!-- Spoken description for Unicode code point U+1F4EC -->
+     <string name="spoken_emoji_1F4EC">Open mailbox with raised flag</string>
+     <!-- Spoken description for Unicode code point U+1F4ED -->
+     <string name="spoken_emoji_1F4ED">Open mailbox with lowered flag</string>
+     <!-- Spoken description for Unicode code point U+1F4EE -->
+     <string name="spoken_emoji_1F4EE">Postbox</string>
+     <!-- Spoken description for Unicode code point U+1F4EF -->
+     <string name="spoken_emoji_1F4EF">Postal horn</string>
+     <!-- Spoken description for Unicode code point U+1F4F0 -->
+     <string name="spoken_emoji_1F4F0">Newspaper</string>
+     <!-- Spoken description for Unicode code point U+1F4F1 -->
+     <string name="spoken_emoji_1F4F1">Mobile phone</string>
+     <!-- Spoken description for Unicode code point U+1F4F2 -->
+     <string name="spoken_emoji_1F4F2">Mobile phone with rightwards arrow at left</string>
+     <!-- Spoken description for Unicode code point U+1F4F3 -->
+     <string name="spoken_emoji_1F4F3">Vibration mode</string>
+     <!-- Spoken description for Unicode code point U+1F4F4 -->
+     <string name="spoken_emoji_1F4F4">Mobile phone off</string>
+     <!-- Spoken description for Unicode code point U+1F4F5 -->
+     <string name="spoken_emoji_1F4F5">No mobile phones</string>
+     <!-- Spoken description for Unicode code point U+1F4F6 -->
+     <string name="spoken_emoji_1F4F6">Antenna with bars</string>
+     <!-- Spoken description for Unicode code point U+1F4F7 -->
+     <string name="spoken_emoji_1F4F7">Camera</string>
+     <!-- Spoken description for Unicode code point U+1F4F9 -->
+     <string name="spoken_emoji_1F4F9">Video camera</string>
+     <!-- Spoken description for Unicode code point U+1F4FA -->
+     <string name="spoken_emoji_1F4FA">Television</string>
+     <!-- Spoken description for Unicode code point U+1F4FB -->
+     <string name="spoken_emoji_1F4FB">Radio</string>
+     <!-- Spoken description for Unicode code point U+1F4FC -->
+     <string name="spoken_emoji_1F4FC">Videocassette</string>
+     <!-- Spoken description for Unicode code point U+1F500 -->
+     <string name="spoken_emoji_1F500">Twisted rightwards arrows</string>
+     <!-- Spoken description for Unicode code point U+1F501 -->
+     <string name="spoken_emoji_1F501">Clockwise rightwards and leftwards open circle arrows</string>
+     <!-- Spoken description for Unicode code point U+1F502 -->
+     <string name="spoken_emoji_1F502">Clockwise rightwards and leftwards open circle arrows with circled one overlay</string>
+     <!-- Spoken description for Unicode code point U+1F503 -->
+     <string name="spoken_emoji_1F503">Clockwise downwards and upwards open circle arrows</string>
+     <!-- Spoken description for Unicode code point U+1F504 -->
+     <string name="spoken_emoji_1F504">Anticlockwise downwards and upwards open circle arrows</string>
+     <!-- Spoken description for Unicode code point U+1F505 -->
+     <string name="spoken_emoji_1F505">Low brightness symbol</string>
+     <!-- Spoken description for Unicode code point U+1F506 -->
+     <string name="spoken_emoji_1F506">High brightness symbol</string>
+     <!-- Spoken description for Unicode code point U+1F507 -->
+     <string name="spoken_emoji_1F507">Speaker with cancellation stroke</string>
+     <!-- Spoken description for Unicode code point U+1F508 -->
+     <string name="spoken_emoji_1F508">Speaker</string>
+     <!-- Spoken description for Unicode code point U+1F509 -->
+     <string name="spoken_emoji_1F509">Speaker with one sound wave</string>
+     <!-- Spoken description for Unicode code point U+1F50A -->
+     <string name="spoken_emoji_1F50A">Speaker with three sound waves</string>
+     <!-- Spoken description for Unicode code point U+1F50B -->
+     <string name="spoken_emoji_1F50B">Battery</string>
+     <!-- Spoken description for Unicode code point U+1F50C -->
+     <string name="spoken_emoji_1F50C">Electric plug</string>
+     <!-- Spoken description for Unicode code point U+1F50D -->
+     <string name="spoken_emoji_1F50D">Left-pointing magnifying glass</string>
+     <!-- Spoken description for Unicode code point U+1F50E -->
+     <string name="spoken_emoji_1F50E">Right-pointing magnifying glass</string>
+     <!-- Spoken description for Unicode code point U+1F50F -->
+     <string name="spoken_emoji_1F50F">Lock with ink pen</string>
+     <!-- Spoken description for Unicode code point U+1F510 -->
+     <string name="spoken_emoji_1F510">Closed lock with key</string>
+     <!-- Spoken description for Unicode code point U+1F511 -->
+     <string name="spoken_emoji_1F511">Key</string>
+     <!-- Spoken description for Unicode code point U+1F512 -->
+     <string name="spoken_emoji_1F512">Lock</string>
+     <!-- Spoken description for Unicode code point U+1F513 -->
+     <string name="spoken_emoji_1F513">Open lock</string>
+     <!-- Spoken description for Unicode code point U+1F514 -->
+     <string name="spoken_emoji_1F514">Bell</string>
+     <!-- Spoken description for Unicode code point U+1F515 -->
+     <string name="spoken_emoji_1F515">Bell with cancellation stroke</string>
+     <!-- Spoken description for Unicode code point U+1F516 -->
+     <string name="spoken_emoji_1F516">Bookmark</string>
+     <!-- Spoken description for Unicode code point U+1F517 -->
+     <string name="spoken_emoji_1F517">Link symbol</string>
+     <!-- Spoken description for Unicode code point U+1F518 -->
+     <string name="spoken_emoji_1F518">Radio button</string>
+     <!-- Spoken description for Unicode code point U+1F519 -->
+     <string name="spoken_emoji_1F519">Back with leftwards arrow above</string>
+     <!-- Spoken description for Unicode code point U+1F51A -->
+     <string name="spoken_emoji_1F51A">End with leftwards arrow above</string>
+     <!-- Spoken description for Unicode code point U+1F51B -->
+     <string name="spoken_emoji_1F51B">On with exclamation mark with left right arrow above</string>
+     <!-- Spoken description for Unicode code point U+1F51C -->
+     <string name="spoken_emoji_1F51C">Soon with rightwards arrow above</string>
+     <!-- Spoken description for Unicode code point U+1F51D -->
+     <string name="spoken_emoji_1F51D">Top with upwards arrow above</string>
+     <!-- Spoken description for Unicode code point U+1F51E -->
+     <string name="spoken_emoji_1F51E">No one under eighteen symbol</string>
+     <!-- Spoken description for Unicode code point U+1F51F -->
+     <string name="spoken_emoji_1F51F">Keycap ten</string>
+     <!-- Spoken description for Unicode code point U+1F520 -->
+     <string name="spoken_emoji_1F520">Input symbol for latin capital letters</string>
+     <!-- Spoken description for Unicode code point U+1F521 -->
+     <string name="spoken_emoji_1F521">Input symbol for latin small letters</string>
+     <!-- Spoken description for Unicode code point U+1F522 -->
+     <string name="spoken_emoji_1F522">Input symbol for numbers</string>
+     <!-- Spoken description for Unicode code point U+1F523 -->
+     <string name="spoken_emoji_1F523">Input symbol for symbols</string>
+     <!-- Spoken description for Unicode code point U+1F524 -->
+     <string name="spoken_emoji_1F524">Input symbol for latin letters</string>
+     <!-- Spoken description for Unicode code point U+1F525 -->
+     <string name="spoken_emoji_1F525">Fire</string>
+     <!-- Spoken description for Unicode code point U+1F526 -->
+     <string name="spoken_emoji_1F526">Electric torch</string>
+     <!-- Spoken description for Unicode code point U+1F527 -->
+     <string name="spoken_emoji_1F527">Wrench</string>
+     <!-- Spoken description for Unicode code point U+1F528 -->
+     <string name="spoken_emoji_1F528">Hammer</string>
+     <!-- Spoken description for Unicode code point U+1F529 -->
+     <string name="spoken_emoji_1F529">Nut and bolt</string>
+     <!-- Spoken description for Unicode code point U+1F52A -->
+     <string name="spoken_emoji_1F52A">Hocho</string>
+     <!-- Spoken description for Unicode code point U+1F52B -->
+     <string name="spoken_emoji_1F52B">Pistol</string>
+     <!-- Spoken description for Unicode code point U+1F52C -->
+     <string name="spoken_emoji_1F52C">Microscope</string>
+     <!-- Spoken description for Unicode code point U+1F52D -->
+     <string name="spoken_emoji_1F52D">Telescope</string>
+     <!-- Spoken description for Unicode code point U+1F52E -->
+     <string name="spoken_emoji_1F52E">Crystal ball</string>
+     <!-- Spoken description for Unicode code point U+1F52F -->
+     <string name="spoken_emoji_1F52F">Six pointed star with middle dot</string>
+     <!-- Spoken description for Unicode code point U+1F530 -->
+     <string name="spoken_emoji_1F530">Japanese symbol for beginner</string>
+     <!-- Spoken description for Unicode code point U+1F531 -->
+     <string name="spoken_emoji_1F531">Trident emblem</string>
+     <!-- Spoken description for Unicode code point U+1F532 -->
+     <string name="spoken_emoji_1F532">Black square button</string>
+     <!-- Spoken description for Unicode code point U+1F533 -->
+     <string name="spoken_emoji_1F533">White square button</string>
+     <!-- Spoken description for Unicode code point U+1F534 -->
+     <string name="spoken_emoji_1F534">Large red circle</string>
+     <!-- Spoken description for Unicode code point U+1F535 -->
+     <string name="spoken_emoji_1F535">Large blue circle</string>
+     <!-- Spoken description for Unicode code point U+1F536 -->
+     <string name="spoken_emoji_1F536">Large orange diamond</string>
+     <!-- Spoken description for Unicode code point U+1F537 -->
+     <string name="spoken_emoji_1F537">Large blue diamond</string>
+     <!-- Spoken description for Unicode code point U+1F538 -->
+     <string name="spoken_emoji_1F538">Small orange diamond</string>
+     <!-- Spoken description for Unicode code point U+1F539 -->
+     <string name="spoken_emoji_1F539">Small blue diamond</string>
+     <!-- Spoken description for Unicode code point U+1F53A -->
+     <string name="spoken_emoji_1F53A">Up-pointing red triangle</string>
+     <!-- Spoken description for Unicode code point U+1F53B -->
+     <string name="spoken_emoji_1F53B">Down-pointing red triangle</string>
+     <!-- Spoken description for Unicode code point U+1F53C -->
+     <string name="spoken_emoji_1F53C">Up-pointing small red triangle</string>
+     <!-- Spoken description for Unicode code point U+1F53D -->
+     <string name="spoken_emoji_1F53D">Down-pointing small red triangle</string>
+     <!-- Spoken description for Unicode code point U+1F550 -->
+     <string name="spoken_emoji_1F550">Clock face one oclock</string>
+     <!-- Spoken description for Unicode code point U+1F551 -->
+     <string name="spoken_emoji_1F551">Clock face two oclock</string>
+     <!-- Spoken description for Unicode code point U+1F552 -->
+     <string name="spoken_emoji_1F552">Clock face three oclock</string>
+     <!-- Spoken description for Unicode code point U+1F553 -->
+     <string name="spoken_emoji_1F553">Clock face four oclock</string>
+     <!-- Spoken description for Unicode code point U+1F554 -->
+     <string name="spoken_emoji_1F554">Clock face five oclock</string>
+     <!-- Spoken description for Unicode code point U+1F555 -->
+     <string name="spoken_emoji_1F555">Clock face six oclock</string>
+     <!-- Spoken description for Unicode code point U+1F556 -->
+     <string name="spoken_emoji_1F556">Clock face seven oclock</string>
+     <!-- Spoken description for Unicode code point U+1F557 -->
+     <string name="spoken_emoji_1F557">Clock face eight oclock</string>
+     <!-- Spoken description for Unicode code point U+1F558 -->
+     <string name="spoken_emoji_1F558">Clock face nine oclock</string>
+     <!-- Spoken description for Unicode code point U+1F559 -->
+     <string name="spoken_emoji_1F559">Clock face ten oclock</string>
+     <!-- Spoken description for Unicode code point U+1F55A -->
+     <string name="spoken_emoji_1F55A">Clock face eleven oclock</string>
+     <!-- Spoken description for Unicode code point U+1F55B -->
+     <string name="spoken_emoji_1F55B">Clock face twelve oclock</string>
+     <!-- Spoken description for Unicode code point U+1F55C -->
+     <string name="spoken_emoji_1F55C">Clock face one-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F55D -->
+     <string name="spoken_emoji_1F55D">Clock face two-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F55E -->
+     <string name="spoken_emoji_1F55E">Clock face three-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F55F -->
+     <string name="spoken_emoji_1F55F">Clock face four-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F560 -->
+     <string name="spoken_emoji_1F560">Clock face five-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F561 -->
+     <string name="spoken_emoji_1F561">Clock face six-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F562 -->
+     <string name="spoken_emoji_1F562">Clock face seven-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F563 -->
+     <string name="spoken_emoji_1F563">Clock face eight-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F564 -->
+     <string name="spoken_emoji_1F564">Clock face nine-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F565 -->
+     <string name="spoken_emoji_1F565">Clock face ten-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F566 -->
+     <string name="spoken_emoji_1F566">Clock face eleven-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F567 -->
+     <string name="spoken_emoji_1F567">Clock face twelve-thirty</string>
+     <!-- Spoken description for Unicode code point U+1F5FB -->
+     <string name="spoken_emoji_1F5FB">Mount fuji</string>
+     <!-- Spoken description for Unicode code point U+1F5FC -->
+     <string name="spoken_emoji_1F5FC">Tokyo tower</string>
+     <!-- Spoken description for Unicode code point U+1F5FD -->
+     <string name="spoken_emoji_1F5FD">Statue of liberty</string>
+     <!-- Spoken description for Unicode code point U+1F5FE -->
+     <string name="spoken_emoji_1F5FE">Silhouette of japan</string>
+     <!-- Spoken description for Unicode code point U+1F5FF -->
+     <string name="spoken_emoji_1F5FF">Moyai</string>
+     <!-- Spoken description for Unicode code point U+1F600 -->
+     <string name="spoken_emoji_1F600">Grinning face</string>
+     <!-- Spoken description for Unicode code point U+1F601 -->
+     <string name="spoken_emoji_1F601">Grinning face with smiling eyes</string>
+     <!-- Spoken description for Unicode code point U+1F602 -->
+     <string name="spoken_emoji_1F602">Face with tears of joy</string>
+     <!-- Spoken description for Unicode code point U+1F603 -->
+     <string name="spoken_emoji_1F603">Smiling face with open mouth</string>
+     <!-- Spoken description for Unicode code point U+1F604 -->
+     <string name="spoken_emoji_1F604">Smiling face with open mouth and smiling eyes</string>
+     <!-- Spoken description for Unicode code point U+1F605 -->
+     <string name="spoken_emoji_1F605">Smiling face with open mouth and cold sweat</string>
+     <!-- Spoken description for Unicode code point U+1F606 -->
+     <string name="spoken_emoji_1F606">Smiling face with open mouth and tightly-closed eyes</string>
+     <!-- Spoken description for Unicode code point U+1F607 -->
+     <string name="spoken_emoji_1F607">Smiling face with halo</string>
+     <!-- Spoken description for Unicode code point U+1F608 -->
+     <string name="spoken_emoji_1F608">Smiling face with horns</string>
+     <!-- Spoken description for Unicode code point U+1F609 -->
+     <string name="spoken_emoji_1F609">Winking face</string>
+     <!-- Spoken description for Unicode code point U+1F60A -->
+     <string name="spoken_emoji_1F60A">Smiling face with smiling eyes</string>
+     <!-- Spoken description for Unicode code point U+1F60B -->
+     <string name="spoken_emoji_1F60B">Face savouring delicious food</string>
+     <!-- Spoken description for Unicode code point U+1F60C -->
+     <string name="spoken_emoji_1F60C">Relieved face</string>
+     <!-- Spoken description for Unicode code point U+1F60D -->
+     <string name="spoken_emoji_1F60D">Smiling face with heart-shaped eyes</string>
+     <!-- Spoken description for Unicode code point U+1F60E -->
+     <string name="spoken_emoji_1F60E">Smiling face with sunglasses</string>
+     <!-- Spoken description for Unicode code point U+1F60F -->
+     <string name="spoken_emoji_1F60F">Smirking face</string>
+     <!-- Spoken description for Unicode code point U+1F610 -->
+     <string name="spoken_emoji_1F610">Neutral face</string>
+     <!-- Spoken description for Unicode code point U+1F611 -->
+     <string name="spoken_emoji_1F611">Expressionless face</string>
+     <!-- Spoken description for Unicode code point U+1F612 -->
+     <string name="spoken_emoji_1F612">Unamused face</string>
+     <!-- Spoken description for Unicode code point U+1F613 -->
+     <string name="spoken_emoji_1F613">Face with cold sweat</string>
+     <!-- Spoken description for Unicode code point U+1F614 -->
+     <string name="spoken_emoji_1F614">Pensive face</string>
+     <!-- Spoken description for Unicode code point U+1F615 -->
+     <string name="spoken_emoji_1F615">Confused face</string>
+     <!-- Spoken description for Unicode code point U+1F616 -->
+     <string name="spoken_emoji_1F616">Confounded face</string>
+     <!-- Spoken description for Unicode code point U+1F617 -->
+     <string name="spoken_emoji_1F617">Kissing face</string>
+     <!-- Spoken description for Unicode code point U+1F618 -->
+     <string name="spoken_emoji_1F618">Face throwing a kiss</string>
+     <!-- Spoken description for Unicode code point U+1F619 -->
+     <string name="spoken_emoji_1F619">Kissing face with smiling eyes</string>
+     <!-- Spoken description for Unicode code point U+1F61A -->
+     <string name="spoken_emoji_1F61A">Kissing face with closed eyes</string>
+     <!-- Spoken description for Unicode code point U+1F61B -->
+     <string name="spoken_emoji_1F61B">Face with stuck-out tongue</string>
+     <!-- Spoken description for Unicode code point U+1F61C -->
+     <string name="spoken_emoji_1F61C">Face with stuck-out tongue and winking eye</string>
+     <!-- Spoken description for Unicode code point U+1F61D -->
+     <string name="spoken_emoji_1F61D">Face with stuck-out tongue and tightly-closed eyes</string>
+     <!-- Spoken description for Unicode code point U+1F61E -->
+     <string name="spoken_emoji_1F61E">Disappointed face</string>
+     <!-- Spoken description for Unicode code point U+1F61F -->
+     <string name="spoken_emoji_1F61F">Worried face</string>
+     <!-- Spoken description for Unicode code point U+1F620 -->
+     <string name="spoken_emoji_1F620">Angry face</string>
+     <!-- Spoken description for Unicode code point U+1F621 -->
+     <string name="spoken_emoji_1F621">Pouting face</string>
+     <!-- Spoken description for Unicode code point U+1F622 -->
+     <string name="spoken_emoji_1F622">Crying face</string>
+     <!-- Spoken description for Unicode code point U+1F623 -->
+     <string name="spoken_emoji_1F623">Persevering face</string>
+     <!-- Spoken description for Unicode code point U+1F624 -->
+     <string name="spoken_emoji_1F624">Face with look of triumph</string>
+     <!-- Spoken description for Unicode code point U+1F625 -->
+     <string name="spoken_emoji_1F625">Disappointed but relieved face</string>
+     <!-- Spoken description for Unicode code point U+1F626 -->
+     <string name="spoken_emoji_1F626">Frowning face with open mouth</string>
+     <!-- Spoken description for Unicode code point U+1F627 -->
+     <string name="spoken_emoji_1F627">Anguished face</string>
+     <!-- Spoken description for Unicode code point U+1F628 -->
+     <string name="spoken_emoji_1F628">Fearful face</string>
+     <!-- Spoken description for Unicode code point U+1F629 -->
+     <string name="spoken_emoji_1F629">Weary face</string>
+     <!-- Spoken description for Unicode code point U+1F62A -->
+     <string name="spoken_emoji_1F62A">Sleepy face</string>
+     <!-- Spoken description for Unicode code point U+1F62B -->
+     <string name="spoken_emoji_1F62B">Tired face</string>
+     <!-- Spoken description for Unicode code point U+1F62C -->
+     <string name="spoken_emoji_1F62C">Grimacing face</string>
+     <!-- Spoken description for Unicode code point U+1F62D -->
+     <string name="spoken_emoji_1F62D">Loudly crying face</string>
+     <!-- Spoken description for Unicode code point U+1F62E -->
+     <string name="spoken_emoji_1F62E">Face with open mouth</string>
+     <!-- Spoken description for Unicode code point U+1F62F -->
+     <string name="spoken_emoji_1F62F">Hushed face</string>
+     <!-- Spoken description for Unicode code point U+1F630 -->
+     <string name="spoken_emoji_1F630">Face with open mouth and cold sweat</string>
+     <!-- Spoken description for Unicode code point U+1F631 -->
+     <string name="spoken_emoji_1F631">Face screaming in fear</string>
+     <!-- Spoken description for Unicode code point U+1F632 -->
+     <string name="spoken_emoji_1F632">Astonished face</string>
+     <!-- Spoken description for Unicode code point U+1F633 -->
+     <string name="spoken_emoji_1F633">Flushed face</string>
+     <!-- Spoken description for Unicode code point U+1F634 -->
+     <string name="spoken_emoji_1F634">Sleeping face</string>
+     <!-- Spoken description for Unicode code point U+1F635 -->
+     <string name="spoken_emoji_1F635">Dizzy face</string>
+     <!-- Spoken description for Unicode code point U+1F636 -->
+     <string name="spoken_emoji_1F636">Face without mouth</string>
+     <!-- Spoken description for Unicode code point U+1F637 -->
+     <string name="spoken_emoji_1F637">Face with medical mask</string>
+     <!-- Spoken description for Unicode code point U+1F638 -->
+     <string name="spoken_emoji_1F638">Grinning cat face with smiling eyes</string>
+     <!-- Spoken description for Unicode code point U+1F639 -->
+     <string name="spoken_emoji_1F639">Cat face with tears of joy</string>
+     <!-- Spoken description for Unicode code point U+1F63A -->
+     <string name="spoken_emoji_1F63A">Smiling cat face with open mouth</string>
+     <!-- Spoken description for Unicode code point U+1F63B -->
+     <string name="spoken_emoji_1F63B">Smiling cat face with heart-shaped eyes</string>
+     <!-- Spoken description for Unicode code point U+1F63C -->
+     <string name="spoken_emoji_1F63C">Cat face with wry smile</string>
+     <!-- Spoken description for Unicode code point U+1F63D -->
+     <string name="spoken_emoji_1F63D">Kissing cat face with closed eyes</string>
+     <!-- Spoken description for Unicode code point U+1F63E -->
+     <string name="spoken_emoji_1F63E">Pouting cat face</string>
+     <!-- Spoken description for Unicode code point U+1F63F -->
+     <string name="spoken_emoji_1F63F">Crying cat face</string>
+     <!-- Spoken description for Unicode code point U+1F640 -->
+     <string name="spoken_emoji_1F640">Weary cat face</string>
+     <!-- Spoken description for Unicode code point U+1F645 -->
+     <string name="spoken_emoji_1F645">Face with no good gesture</string>
+     <!-- Spoken description for Unicode code point U+1F646 -->
+     <string name="spoken_emoji_1F646">Face with ok gesture</string>
+     <!-- Spoken description for Unicode code point U+1F647 -->
+     <string name="spoken_emoji_1F647">Person bowing deeply</string>
+     <!-- Spoken description for Unicode code point U+1F648 -->
+     <string name="spoken_emoji_1F648">See-no-evil monkey</string>
+     <!-- Spoken description for Unicode code point U+1F649 -->
+     <string name="spoken_emoji_1F649">Hear-no-evil monkey</string>
+     <!-- Spoken description for Unicode code point U+1F64A -->
+     <string name="spoken_emoji_1F64A">Speak-no-evil monkey</string>
+     <!-- Spoken description for Unicode code point U+1F64B -->
+     <string name="spoken_emoji_1F64B">Happy person raising one hand</string>
+     <!-- Spoken description for Unicode code point U+1F64C -->
+     <string name="spoken_emoji_1F64C">Person raising both hands in celebration</string>
+     <!-- Spoken description for Unicode code point U+1F64D -->
+     <string name="spoken_emoji_1F64D">Person frowning</string>
+     <!-- Spoken description for Unicode code point U+1F64E -->
+     <string name="spoken_emoji_1F64E">Person with pouting face</string>
+     <!-- Spoken description for Unicode code point U+1F64F -->
+     <string name="spoken_emoji_1F64F">Person with folded hands</string>
+     <!-- Spoken description for Unicode code point U+1F680 -->
+     <string name="spoken_emoji_1F680">Rocket</string>
+     <!-- Spoken description for Unicode code point U+1F681 -->
+     <string name="spoken_emoji_1F681">Helicopter</string>
+     <!-- Spoken description for Unicode code point U+1F682 -->
+     <string name="spoken_emoji_1F682">Steam locomotive</string>
+     <!-- Spoken description for Unicode code point U+1F683 -->
+     <string name="spoken_emoji_1F683">Railway car</string>
+     <!-- Spoken description for Unicode code point U+1F684 -->
+     <string name="spoken_emoji_1F684">High-speed train</string>
+     <!-- Spoken description for Unicode code point U+1F685 -->
+     <string name="spoken_emoji_1F685">High-speed train with bullet nose</string>
+     <!-- Spoken description for Unicode code point U+1F686 -->
+     <string name="spoken_emoji_1F686">Train</string>
+     <!-- Spoken description for Unicode code point U+1F687 -->
+     <string name="spoken_emoji_1F687">Metro</string>
+     <!-- Spoken description for Unicode code point U+1F688 -->
+     <string name="spoken_emoji_1F688">Light rail</string>
+     <!-- Spoken description for Unicode code point U+1F689 -->
+     <string name="spoken_emoji_1F689">Station</string>
+     <!-- Spoken description for Unicode code point U+1F68A -->
+     <string name="spoken_emoji_1F68A">Tram</string>
+     <!-- Spoken description for Unicode code point U+1F68B -->
+     <string name="spoken_emoji_1F68B">Tram car</string>
+     <!-- Spoken description for Unicode code point U+1F68C -->
+     <string name="spoken_emoji_1F68C">Bus</string>
+     <!-- Spoken description for Unicode code point U+1F68D -->
+     <string name="spoken_emoji_1F68D">Oncoming bus</string>
+     <!-- Spoken description for Unicode code point U+1F68E -->
+     <string name="spoken_emoji_1F68E">Trolleybus</string>
+     <!-- Spoken description for Unicode code point U+1F68F -->
+     <string name="spoken_emoji_1F68F">Bus stop</string>
+     <!-- Spoken description for Unicode code point U+1F690 -->
+     <string name="spoken_emoji_1F690">Minibus</string>
+     <!-- Spoken description for Unicode code point U+1F691 -->
+     <string name="spoken_emoji_1F691">Ambulance</string>
+     <!-- Spoken description for Unicode code point U+1F692 -->
+     <string name="spoken_emoji_1F692">Fire engine</string>
+     <!-- Spoken description for Unicode code point U+1F693 -->
+     <string name="spoken_emoji_1F693">Police car</string>
+     <!-- Spoken description for Unicode code point U+1F694 -->
+     <string name="spoken_emoji_1F694">Oncoming police car</string>
+     <!-- Spoken description for Unicode code point U+1F695 -->
+     <string name="spoken_emoji_1F695">Taxi</string>
+     <!-- Spoken description for Unicode code point U+1F696 -->
+     <string name="spoken_emoji_1F696">Oncoming taxi</string>
+     <!-- Spoken description for Unicode code point U+1F697 -->
+     <string name="spoken_emoji_1F697">Automobile</string>
+     <!-- Spoken description for Unicode code point U+1F698 -->
+     <string name="spoken_emoji_1F698">Oncoming automobile</string>
+     <!-- Spoken description for Unicode code point U+1F699 -->
+     <string name="spoken_emoji_1F699">Recreational vehicle</string>
+     <!-- Spoken description for Unicode code point U+1F69A -->
+     <string name="spoken_emoji_1F69A">Delivery truck</string>
+     <!-- Spoken description for Unicode code point U+1F69B -->
+     <string name="spoken_emoji_1F69B">Articulated lorry</string>
+     <!-- Spoken description for Unicode code point U+1F69C -->
+     <string name="spoken_emoji_1F69C">Tractor</string>
+     <!-- Spoken description for Unicode code point U+1F69D -->
+     <string name="spoken_emoji_1F69D">Monorail</string>
+     <!-- Spoken description for Unicode code point U+1F69E -->
+     <string name="spoken_emoji_1F69E">Mountain railway</string>
+     <!-- Spoken description for Unicode code point U+1F69F -->
+     <string name="spoken_emoji_1F69F">Suspension railway</string>
+     <!-- Spoken description for Unicode code point U+1F6A0 -->
+     <string name="spoken_emoji_1F6A0">Mountain cableway</string>
+     <!-- Spoken description for Unicode code point U+1F6A1 -->
+     <string name="spoken_emoji_1F6A1">Aerial tramway</string>
+     <!-- Spoken description for Unicode code point U+1F6A2 -->
+     <string name="spoken_emoji_1F6A2">Ship</string>
+     <!-- Spoken description for Unicode code point U+1F6A3 -->
+     <string name="spoken_emoji_1F6A3">Rowboat</string>
+     <!-- Spoken description for Unicode code point U+1F6A4 -->
+     <string name="spoken_emoji_1F6A4">Speedboat</string>
+     <!-- Spoken description for Unicode code point U+1F6A5 -->
+     <string name="spoken_emoji_1F6A5">Horizontal traffic light</string>
+     <!-- Spoken description for Unicode code point U+1F6A6 -->
+     <string name="spoken_emoji_1F6A6">Vertical traffic light</string>
+     <!-- Spoken description for Unicode code point U+1F6A7 -->
+     <string name="spoken_emoji_1F6A7">Construction sign</string>
+     <!-- Spoken description for Unicode code point U+1F6A8 -->
+     <string name="spoken_emoji_1F6A8">Police cars revolving light</string>
+     <!-- Spoken description for Unicode code point U+1F6A9 -->
+     <string name="spoken_emoji_1F6A9">Triangular flag on post</string>
+     <!-- Spoken description for Unicode code point U+1F6AA -->
+     <string name="spoken_emoji_1F6AA">Door</string>
+     <!-- Spoken description for Unicode code point U+1F6AB -->
+     <string name="spoken_emoji_1F6AB">No entry sign</string>
+     <!-- Spoken description for Unicode code point U+1F6AC -->
+     <string name="spoken_emoji_1F6AC">Smoking symbol</string>
+     <!-- Spoken description for Unicode code point U+1F6AD -->
+     <string name="spoken_emoji_1F6AD">No smoking symbol</string>
+     <!-- Spoken description for Unicode code point U+1F6AE -->
+     <string name="spoken_emoji_1F6AE">Put litter in its place symbol</string>
+     <!-- Spoken description for Unicode code point U+1F6AF -->
+     <string name="spoken_emoji_1F6AF">Do not litter symbol</string>
+     <!-- Spoken description for Unicode code point U+1F6B0 -->
+     <string name="spoken_emoji_1F6B0">Potable water symbol</string>
+     <!-- Spoken description for Unicode code point U+1F6B1 -->
+     <string name="spoken_emoji_1F6B1">Non-potable water symbol</string>
+     <!-- Spoken description for Unicode code point U+1F6B2 -->
+     <string name="spoken_emoji_1F6B2">Bicycle</string>
+     <!-- Spoken description for Unicode code point U+1F6B3 -->
+     <string name="spoken_emoji_1F6B3">No bicycles</string>
+     <!-- Spoken description for Unicode code point U+1F6B4 -->
+     <string name="spoken_emoji_1F6B4">Bicyclist</string>
+     <!-- Spoken description for Unicode code point U+1F6B5 -->
+     <string name="spoken_emoji_1F6B5">Mountain bicyclist</string>
+     <!-- Spoken description for Unicode code point U+1F6B6 -->
+     <string name="spoken_emoji_1F6B6">Pedestrian</string>
+     <!-- Spoken description for Unicode code point U+1F6B7 -->
+     <string name="spoken_emoji_1F6B7">No pedestrians</string>
+     <!-- Spoken description for Unicode code point U+1F6B8 -->
+     <string name="spoken_emoji_1F6B8">Children crossing</string>
+     <!-- Spoken description for Unicode code point U+1F6B9 -->
+     <string name="spoken_emoji_1F6B9">Mens symbol</string>
+     <!-- Spoken description for Unicode code point U+1F6BA -->
+     <string name="spoken_emoji_1F6BA">Womens symbol</string>
+     <!-- Spoken description for Unicode code point U+1F6BB -->
+     <string name="spoken_emoji_1F6BB">Restroom</string>
+     <!-- Spoken description for Unicode code point U+1F6BC -->
+     <string name="spoken_emoji_1F6BC">Baby symbol</string>
+     <!-- Spoken description for Unicode code point U+1F6BD -->
+     <string name="spoken_emoji_1F6BD">Toilet</string>
+     <!-- Spoken description for Unicode code point U+1F6BE -->
+     <string name="spoken_emoji_1F6BE">Water closet</string>
+     <!-- Spoken description for Unicode code point U+1F6BF -->
+     <string name="spoken_emoji_1F6BF">Shower</string>
+     <!-- Spoken description for Unicode code point U+1F6C0 -->
+     <string name="spoken_emoji_1F6C0">Bath</string>
+     <!-- Spoken description for Unicode code point U+1F6C1 -->
+     <string name="spoken_emoji_1F6C1">Bathtub</string>
+     <!-- Spoken description for Unicode code point U+1F6C2 -->
+     <string name="spoken_emoji_1F6C2">Passport control</string>
+     <!-- Spoken description for Unicode code point U+1F6C3 -->
+     <string name="spoken_emoji_1F6C3">Customs</string>
+     <!-- Spoken description for Unicode code point U+1F6C4 -->
+     <string name="spoken_emoji_1F6C4">Baggage claim</string>
+     <!-- Spoken description for Unicode code point U+1F6C5 -->
+     <string name="spoken_emoji_1F6C5">Left luggage</string>
+</resources>
diff --git a/java/res/values/strings-talkback-descriptions.xml b/java/res/values/strings-talkback-descriptions.xml
index 9c1e652..4ffca10 100644
--- a/java/res/values/strings-talkback-descriptions.xml
+++ b/java/res/values/strings-talkback-descriptions.xml
@@ -74,11 +74,10 @@
     <string name="spoken_description_shiftmode_on">Shift enabled</string>
     <!-- Spoken feedback after turning "Caps lock" mode on. -->
     <string name="spoken_description_shiftmode_locked">Caps lock enabled</string>
-    <!-- Spoken feedback after turning "Shift" mode off. -->
-    <string name="spoken_description_shiftmode_off">Shift disabled</string>
-
     <!-- Spoken feedback after changing to the symbols keyboard. -->
     <string name="spoken_description_mode_symbol">Symbols mode</string>
+    <!-- Spoken feedback after changing to the symbols shift keyboard. -->
+    <string name="spoken_description_mode_symbol_shift">Symbols shift mode</string>
     <!-- Spoken feedback after changing to the alphanumeric keyboard. -->
     <string name="spoken_description_mode_alpha">Letters mode</string>
     <!-- Spoken feedback after changing to the phone dialer keyboard. -->
diff --git a/java/res/values/themes-common.xml b/java/res/values/themes-common.xml
index eb6cdd9..76abb10 100644
--- a/java/res/values/themes-common.xml
+++ b/java/res/values/themes-common.xml
@@ -120,12 +120,7 @@
         name="MoreKeysKeyboardView"
         parent="MainKeyboardView" />
     <style name="MoreKeysKeyboardContainer" />
-    <style name="SuggestionStripView">
-        <item name="suggestionsCountInStrip">@integer/config_suggestions_count_in_strip</item>
-        <item name="centerSuggestionPercentile">@fraction/config_center_suggestion_percentile</item>
-        <item name="maxMoreSuggestionsRow">@integer/config_max_more_suggestions_row</item>
-        <item name="minMoreSuggestionsWidth">@fraction/config_min_more_suggestions_width</item>
-    </style>
+    <style name="SuggestionStripView" />
     <style name="SuggestionWord">
         <item name="android:minWidth">@dimen/config_suggestion_min_width</item>
         <item name="android:textSize">@dimen/config_suggestion_text_size</item>
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index 720eda9..616dbd8 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -109,8 +109,12 @@
     </style>
     <style
         name="SuggestionStripView.ICS"
-        parent="SuggestionStripView"
+        parent="KeyboardView.ICS"
     >
+        <item name="suggestionsCountInStrip">@integer/config_suggestions_count_in_strip</item>
+        <item name="centerSuggestionPercentile">@fraction/config_center_suggestion_percentile</item>
+        <item name="maxMoreSuggestionsRow">@integer/config_max_more_suggestions_row</item>
+        <item name="minMoreSuggestionsWidth">@fraction/config_min_more_suggestions_width</item>
         <item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
         <item name="suggestionStripOptions">autoCorrectBold|validTypedWordBold</item>
         <item name="colorValidTypedWord">@color/typed_word_color_ics</item>
diff --git a/java/res/values/themes-klp.xml b/java/res/values/themes-klp.xml
index 8305271..9bb3d79 100644
--- a/java/res/values/themes-klp.xml
+++ b/java/res/values/themes-klp.xml
@@ -109,8 +109,12 @@
     </style>
     <style
         name="SuggestionStripView.KLP"
-        parent="SuggestionStripView"
+        parent="KeyboardView.KLP"
     >
+        <item name="suggestionsCountInStrip">@integer/config_suggestions_count_in_strip</item>
+        <item name="centerSuggestionPercentile">@fraction/config_center_suggestion_percentile</item>
+        <item name="maxMoreSuggestionsRow">@integer/config_max_more_suggestions_row</item>
+        <item name="minMoreSuggestionsWidth">@fraction/config_min_more_suggestions_width</item>
         <item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
         <item name="suggestionStripOptions">autoCorrectBold|validTypedWordBold</item>
         <item name="colorValidTypedWord">@color/typed_word_color_klp</item>
diff --git a/java/res/values/themes-lmp.xml b/java/res/values/themes-lmp.xml
new file mode 100644
index 0000000..773da19
--- /dev/null
+++ b/java/res/values/themes-lmp.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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:android="http://schemas.android.com/apk/res/android">
+    <style name="KeyboardTheme.LMP" parent="KeyboardIcons.LMP">
+        <item name="keyboardStyle">@style/Keyboard.LMP</item>
+        <item name="keyboardViewStyle">@style/KeyboardView.LMP</item>
+        <item name="mainKeyboardViewStyle">@style/MainKeyboardView.LMP</item>
+        <item name="keyPreviewTextViewStyle">@style/KeyPreviewTextView.LMP</item>
+        <item name="emojiPalettesViewStyle">@style/EmojiPalettesView.LMP</item>
+        <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.LMP</item>
+        <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.LMP</item>
+        <item name="suggestionStripViewStyle">@style/SuggestionStripView.LMP</item>
+        <item name="suggestionWordStyle">@style/SuggestionWord.LMP</item>
+    </style>
+    <style
+        name="Keyboard.LMP"
+        parent="Keyboard"
+    >
+        <!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] -->
+        <item name="themeId">0</item>
+        <item name="keyboardTopPadding">@fraction/config_keyboard_top_padding_holo</item>
+        <item name="keyboardBottomPadding">@fraction/config_keyboard_bottom_padding_holo</item>
+        <item name="horizontalGap">@fraction/config_key_horizontal_gap_holo</item>
+        <item name="verticalGap">@fraction/config_key_vertical_gap_holo</item>
+        <item name="touchPositionCorrectionData">@array/touch_position_correction_data_holo</item>
+    </style>
+    <style
+        name="KeyboardView.LMP"
+        parent="KeyboardView"
+    >
+        <item name="android:background">@drawable/keyboard_background_holo</item>
+        <item name="keyBackground">@drawable/btn_keyboard_key_lmp</item>
+        <item name="keyTypeface">bold</item>
+        <item name="keyTextColor">@color/key_text_color_holo</item>
+        <item name="keyTextInactivatedColor">@color/key_text_inactivated_color_holo</item>
+        <item name="keyHintLetterColor">@color/key_hint_letter_color_lmp</item>
+        <item name="keyHintLabelColor">@color/key_hint_label_color_holo</item>
+        <item name="keyShiftedLetterHintInactivatedColor">@color/key_shifted_letter_hint_inactivated_color_holo</item>
+        <item name="keyShiftedLetterHintActivatedColor">@color/key_shifted_letter_hint_activated_color_holo</item>
+        <item name="keyPreviewTextColor">@color/key_text_color_holo</item>
+        <item name="keyTextShadowColor">@color/key_text_shadow_color_holo</item>
+        <item name="keyTextShadowRadius">0.0</item>
+    </style>
+    <style
+        name="MainKeyboardView.LMP"
+        parent="KeyboardView.LMP"
+    >
+        <item name="keyPreviewOffset">@dimen/config_key_preview_offset_holo</item>
+        <item name="gestureFloatingPreviewTextColor">@color/highlight_color_lmp</item>
+        <item name="gestureFloatingPreviewColor">@color/gesture_floating_preview_color_holo</item>
+        <item name="gestureTrailColor">@color/highlight_color_lmp</item>
+        <item name="slidingKeyInputPreviewColor">@color/highlight_translucent_color_lmp</item>
+        <item name="autoCorrectionSpacebarLedEnabled">false</item>
+        <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led_holo</item>
+        <item name="languageOnSpacebarTextColor">@color/spacebar_text_color_holo</item>
+        <item name="languageOnSpacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
+        <item name="spacebarBackground">@drawable/btn_keyboard_spacebar_lmp</item>
+    </style>
+    <style
+        name="KeyPreviewTextView.LMP"
+        parent="KeyPreviewTextView"
+    >
+        <item name="android:background">@drawable/keyboard_key_feedback_lmp</item>
+    </style>
+    <!-- Though {@link EmojiPalettesView} doesn't extend {@link KeyboardView}, some views inside it,
+         for instance delete button, need themed {@link KeyboardView} attributes. -->
+    <style
+        name="EmojiPalettesView.LMP"
+        parent="KeyboardView.LMP"
+    >
+        <item name="keyBackgroundEmojiFunctional">@drawable/btn_keyboard_key_functional_lmp</item>
+        <item name="emojiTabLabelColor">@color/emoji_tab_label_color_holo</item>
+    </style>
+    <style
+        name="MoreKeysKeyboard.LMP"
+        parent="Keyboard.LMP"
+    >
+        <item name="keyboardTopPadding">0%p</item>
+        <item name="keyboardBottomPadding">0%p</item>
+        <item name="horizontalGap">0%p</item>
+        <item name="touchPositionCorrectionData">@null</item>
+    </style>
+    <style
+        name="MoreKeysKeyboardView.LMP"
+        parent="KeyboardView.LMP"
+    >
+        <item name="android:background">@drawable/keyboard_popup_panel_background_lmp</item>
+        <item name="keyBackground">@drawable/btn_keyboard_key_popup_lmp</item>
+        <item name="keyTypeface">normal</item>
+        <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
+    </style>
+    <style
+        name="SuggestionStripView.LMP"
+        parent="KeyboardView.LMP"
+    >
+        <item name="suggestionsCountInStrip">@integer/config_suggestions_count_in_strip</item>
+        <item name="centerSuggestionPercentile">@fraction/config_center_suggestion_percentile</item>
+        <item name="maxMoreSuggestionsRow">@integer/config_max_more_suggestions_row</item>
+        <item name="minMoreSuggestionsWidth">@fraction/config_min_more_suggestions_width</item>
+        <item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
+        <item name="suggestionStripOptions">autoCorrectBold|validTypedWordBold</item>
+        <item name="colorValidTypedWord">@color/typed_word_color_lmp</item>
+        <item name="colorTypedWord">@color/typed_word_color_lmp</item>
+        <item name="colorAutoCorrect">@color/highlight_color_lmp</item>
+        <item name="colorSuggested">@color/suggested_word_color_lmp</item>
+        <item name="alphaObsoleted">70%</item>
+    </style>
+    <style
+        name="SuggestionWord.LMP"
+        parent="SuggestionWord"
+    >
+        <item name="android:background">@drawable/btn_suggestion_lmp</item>
+        <item name="android:textColor">@color/highlight_color_lmp</item>
+    </style>
+</resources>
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index 3d5556f..f9b959b 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -78,7 +78,7 @@
         latin:keyboardLayout="@xml/key_styles_enter" />
     <key-style
         latin:styleName="spaceKeyStyle"
-        latin:keySpec=" |!code/key_space"
+        latin:keySpec="!icon/space_key|!code/key_space"
         latin:keyActionFlags="noKeyPreview|enableLongPress" />
     <!-- U+200C: ZERO WIDTH NON-JOINER
          U+200D: ZERO WIDTH JOINER -->
diff --git a/java/res/xml-sw600dp/rows_marathi.xml b/java/res/xml-sw600dp/rows_marathi.xml
new file mode 100644
index 0000000..51dc7a2
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_marathi.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyWidth="8.182%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_marathi1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="8.182%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_marathi2" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="8.182%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_marathi3" />
+        <include
+            latin:keyboardLayout="@xml/keys_exclamation_question" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_sign_anusvara.xml b/java/res/xml-v16/keystyle_devanagari_sign_anusvara.xml
index 71439d6..405aebc 100644
--- a/java/res/xml-v16/keystyle_devanagari_sign_anusvara.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_anusvara.xml
@@ -36,6 +36,15 @@
                 latin:styleName="moreKeysDevanagariSignAnusvara"
                 latin:moreKeys="&#x0903;,&#x0901;,&#x093C;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0903: "ः‍" DEVANAGARI SIGN VISARGA
+                 U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariSignAnusvara"
+                latin:moreKeys="&#x0903;,&#x0901;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariSignAnusvara" />
diff --git a/java/res/xml-v16/keystyle_devanagari_sign_virama.xml b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
index 0c3a29b..73248e4 100644
--- a/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
@@ -34,6 +34,14 @@
                 latin:styleName="moreKeysDevanagariSignVirama"
                 latin:moreKeys="&#x094D;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0905: "अ" DEVANAGARI LETTER A -->
+            <key-style
+                latin:styleName="moreKeysDevanagariSignVirama"
+                latin:moreKeys="&#x0905;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariSignVirama" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
index 5bb0351..cd07999 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
@@ -43,6 +43,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignAa"
                 latin:moreKeys="&#x093E;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0906: "आ" DEVANAGARI LETTER AA -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAa"
+                latin:moreKeys="&#x0906;,%" />
+        </case>
         <default>
             <key-style
                 latin:styleName="moreKeysDevanagariVowelSignAa" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
index 8edf6eb..75a49b1 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
@@ -43,6 +43,14 @@
                 latin:moreKeys="&#x0948;,%" />
         </case>
         <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0910: "ऐ" DEVANAGARI LETTER AI -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAi"
+                latin:moreKeys="&#x0910;,%" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
index 212e058..26f1aca 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
@@ -42,6 +42,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignAu"
                 latin:moreKeys="&#x094C;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0914: "औ" DEVANAGARI LETTER AU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAu"
+                latin:moreKeys="&#x0914;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignAu" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_e.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_e.xml
index ef2c3f1..ec056a3 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_e.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_e.xml
@@ -34,9 +34,23 @@
                 latin:styleName="moreKeysDevanagariVowelSignCandraE"
                 latin:moreKeys="&#x0945;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+090D: "ऍ" DEVANAGARI LETTER CANDRA E -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignCandraE"
+                latin:moreKeys="&#x090D;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignCandraE" />
         </default>
     </switch>
+    <!-- U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+    <key-style
+        latin:styleName="baseKeyDevanagariVowelSignCandraE"
+        latin:parentStyle="moreKeysDevanagariVowelSignCandraE"
+        latin:keySpec="&#x0945;"
+        latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_o.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_o.xml
index ac01d37..fb4d4eb 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_o.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_o.xml
@@ -34,6 +34,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignCandraO"
                 latin:moreKeys="&#x0949;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0911: "ऑ" DEVANAGARI LETTER CANDRA O -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignCandraO"
+                latin:moreKeys="&#x0911;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignCandraO" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
index 77d6eb5..965bccb 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
@@ -43,6 +43,14 @@
                 latin:moreKeys="&#x0947;" />
         </case>
         <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+090F: "ए" DEVANAGARI LETTER SHORT E -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignE"
+                latin:moreKeys="&#x090F;" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0903: "ः‍" DEVANAGARI SIGN VISARGA
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
index d79447b..ec71c4d 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
@@ -42,6 +42,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignI"
                 latin:moreKeys="&#x093F;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0907: "इ" DEVANAGARI LETTER I -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignI"
+                latin:moreKeys="&#x0907;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignI" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
index 0e10f31..9a9f915 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
@@ -42,6 +42,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignIi"
                 latin:moreKeys="&#x0940;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0908: "ई" DEVANAGARI LETTER II -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignIi"
+                latin:moreKeys="&#x0908;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignIi" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
index 47ca906..77389c2 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
@@ -44,6 +44,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignO"
                 latin:moreKeys="&#x094B;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignO"
+                latin:moreKeys="&#x0913;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignO" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
index 694e4ab..e2167bf 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
@@ -43,6 +43,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignU"
                 latin:moreKeys="&#x0941;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0909: "उ" DEVANAGARI LETTER U -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignU"
+                latin:moreKeys="&#x0909;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignU" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
index f17489e..7452368 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
@@ -43,6 +43,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignUu"
                 latin:moreKeys="&#x0942;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+090A: "ऊ" DEVANAGARI LETTER UU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignUu"
+                latin:moreKeys="&#x090A;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignUu" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_vocalic_r.xml
index 2709846..9c930d3 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_vocalic_r.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_vocalic_r.xml
@@ -44,6 +44,16 @@
                 latin:moreKeys="&#x090B;,&#x0943;" />
         </case>
         <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0931: "ऱ" DEVANAGARI LETTER RRA
+                 U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
+                 U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignVocalicR"
+                latin:moreKeys="&#x0931;,&#x090B;,&#x0943;" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
diff --git a/java/res/drawable/transparent.xml b/java/res/xml/kbd_marathi.xml
similarity index 67%
copy from java/res/drawable/transparent.xml
copy to java/res/xml/kbd_marathi.xml
index 855cf2a..4328cd6 100644
--- a/java/res/drawable/transparent.xml
+++ b/java/res/xml/kbd_marathi.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2011, The Android Open Source Project
+** Copyright 2014, 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.
@@ -18,13 +18,9 @@
 */
 -->
 
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle"
+<Keyboard
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <solid
-        android:color="@android:color/transparent" />
-    <size
-        android:width="50dp"
-        android:height="40dp" />
-</shape>
+    <include
+        latin:keyboardLayout="@xml/rows_marathi" />
+</Keyboard>
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index 78e0301..773995f 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -87,7 +87,7 @@
         latin:keyboardLayout="@xml/key_styles_enter" />
     <key-style
         latin:styleName="spaceKeyStyle"
-        latin:keySpec=" |!code/key_space"
+        latin:keySpec="!icon/space_key|!code/key_space"
         latin:keyActionFlags="noKeyPreview|enableLongPress" />
     <!-- U+200C: ZERO WIDTH NON-JOINER
          U+200D: ZERO WIDTH JOINER -->
diff --git a/java/res/xml/keyboard_layout_set_marathi.xml b/java/res/xml/keyboard_layout_set_marathi.xml
new file mode 100644
index 0000000..e5c68e7
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_marathi.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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.
+*/
+-->
+
+<KeyboardLayoutSet
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+    <Element
+        latin:elementName="alphabet"
+        latin:elementKeyboard="@xml/kbd_marathi"
+        latin:enableProximityCharsCorrection="true" />
+    <Element
+        latin:elementName="symbols"
+        latin:elementKeyboard="@xml/kbd_symbols" />
+    <Element
+        latin:elementName="symbolsShifted"
+        latin:elementKeyboard="@xml/kbd_symbols_shift" />
+    <Element
+        latin:elementName="phone"
+        latin:elementKeyboard="@xml/kbd_phone" />
+    <Element
+        latin:elementName="phoneSymbols"
+        latin:elementKeyboard="@xml/kbd_phone_symbols" />
+    <Element
+        latin:elementName="number"
+        latin:elementKeyboard="@xml/kbd_number" />
+</KeyboardLayoutSet>
diff --git a/java/res/xml/keystyle_devanagari_sign_anusvara.xml b/java/res/xml/keystyle_devanagari_sign_anusvara.xml
index 6dc9b7e..a7e421d 100644
--- a/java/res/xml/keystyle_devanagari_sign_anusvara.xml
+++ b/java/res/xml/keystyle_devanagari_sign_anusvara.xml
@@ -37,6 +37,16 @@
                 latin:styleName="moreKeysDevanagariSignAnusvara"
                 latin:moreKeys="&#x25CC;&#x0903;|&#x0903;,&#x25CC;&#x0901;|&#x0901;,&#x25CC;&#x093C;|&#x093C;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+0903: "ः‍" DEVANAGARI SIGN VISARGA
+                 U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariSignAnusvara"
+                latin:moreKeys="&#x25CC;&#x0903;|&#x0903;,&#x25CC;&#x0901;|&#x0901;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariSignAnusvara" />
diff --git a/java/res/xml/keystyle_devanagari_sign_virama.xml b/java/res/xml/keystyle_devanagari_sign_virama.xml
index 96506e2..58dd42a 100644
--- a/java/res/xml/keystyle_devanagari_sign_virama.xml
+++ b/java/res/xml/keystyle_devanagari_sign_virama.xml
@@ -35,6 +35,14 @@
                 latin:styleName="moreKeysDevanagariSignVirama"
                 latin:moreKeys="&#x25CC;&#x094D;|&#x094D;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0905: "अ" DEVANAGARI LETTER A -->
+            <key-style
+                latin:styleName="moreKeysDevanagariSignVirama"
+                latin:moreKeys="&#x0905;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariSignVirama" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
index 4b87650..1a60ca2 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
@@ -45,6 +45,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignAa"
                 latin:moreKeys="&#x25CC;&#x093E;|&#x093E;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0906: "आ" DEVANAGARI LETTER AA -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAa"
+                latin:moreKeys="&#x0906;,%" />
+        </case>
         <default>
             <key-style
                 latin:styleName="moreKeysDevanagariVowelSignAa" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
index 050a7ce..e6b64e5 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
@@ -45,6 +45,14 @@
                 latin:moreKeys="&#x25CC;&#x0948;|&#x0948;,%" />
         </case>
         <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0910: "ऐ" DEVANAGARI LETTER AI -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAi"
+                latin:moreKeys="&#x0910;,%" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
index 49e67da..3e129ec 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
@@ -44,6 +44,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignAu"
                 latin:moreKeys="&#x25CC;&#x094C;|&#x094C;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0914: "औ" DEVANAGARI LETTER AU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAu"
+                latin:moreKeys="&#x0914;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignAu" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_candra_e.xml b/java/res/xml/keystyle_devanagari_vowel_sign_candra_e.xml
index 86f68d3..b7d0908 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_candra_e.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_candra_e.xml
@@ -35,9 +35,24 @@
                 latin:styleName="moreKeysDevanagariVowelSignCandraE"
                 latin:moreKeys="&#x25CC;&#x0945;|&#x0945;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+090D: "ऍ" DEVANAGARI LETTER CANDRA E -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignCandraE"
+                latin:moreKeys="&#x090D;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignCandraE" />
         </default>
     </switch>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+    <key-style
+        latin:styleName="baseKeyDevanagariVowelSignCandraE"
+        latin:parentStyle="moreKeysDevanagariVowelSignCandraE"
+        latin:keySpec="&#x25CC;&#x0945;|&#x0945;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_candra_o.xml b/java/res/xml/keystyle_devanagari_vowel_sign_candra_o.xml
index fd711e0..861dd1a 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_candra_o.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_candra_o.xml
@@ -35,6 +35,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignCandraO"
                 latin:moreKeys="&#x25CC;&#x0949;|&#x0949;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0911: "ऑ" DEVANAGARI LETTER CANDRA O -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignCandraO"
+                latin:moreKeys="&#x0911;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignCandraO" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
index 88f6a74..95d85a9 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
@@ -45,6 +45,14 @@
                 latin:moreKeys="&#x25CC;&#x0947;|&#x0947;" />
         </case>
         <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+090F: "ए" DEVANAGARI LETTER SHORT E -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignE"
+                latin:moreKeys="&#x090F;" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+25CC: "◌" DOTTED CIRCLE
@@ -59,6 +67,8 @@
                 latin:styleName="moreKeysDevanagariVowelSignE" />
         </default>
     </switch>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0947: "े" DEVANAGARI VOWEL SIGN E -->
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignE"
         latin:parentStyle="moreKeysDevanagariVowelSignE"
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
index a84fdb4..5817be1 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
@@ -44,6 +44,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignI"
                 latin:moreKeys="&#x25CC;&#x093F;|&#x093F;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0907: "इ" DEVANAGARI LETTER I -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignI"
+                latin:moreKeys="&#x0907;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignI" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
index 6f6eb0f..a7863c6 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
@@ -44,6 +44,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignIi"
                 latin:moreKeys="&#x25CC;&#x0940;|&#x0940;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0908: "ई" DEVANAGARI LETTER II -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignIi"
+                latin:moreKeys="&#x0908;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignIi" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
index 68b176a..3dc874e 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
@@ -46,6 +46,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignO"
                 latin:moreKeys="&#x25CC;&#x094B;|&#x094B;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignO"
+                latin:moreKeys="&#x0913;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignO" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
index 7c058b1..226c11a 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
@@ -45,6 +45,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignU"
                 latin:moreKeys="&#x25CC;&#x0941;|&#x0941;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0909: "उ" DEVANAGARI LETTER U -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignU"
+                latin:moreKeys="&#x0909;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignU" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
index 73ab63c..7a9f47d 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
@@ -45,6 +45,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignUu"
                 latin:moreKeys="&#x25CC;&#x0942;|&#x0942;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+090A: "ऊ" DEVANAGARI LETTER UU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignUu"
+                latin:moreKeys="&#x090A;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignUu" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml/keystyle_devanagari_vowel_sign_vocalic_r.xml
index 29b083e..56b7396 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_vocalic_r.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_vocalic_r.xml
@@ -46,6 +46,17 @@
                 latin:moreKeys="&#x090B;,&#x25CC;&#x0943;|&#x0943;" />
         </case>
         <case
+            latin:keyboardLayoutSet="marathi"
+        >
+            <!-- U+0931: "ऱ" DEVANAGARI LETTER RRA
+                 U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
+                 U+25CC: "◌" DOTTED CIRCLE
+                 U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignVocalicR"
+                latin:moreKeys="&#x0931;,&#x090B;,&#x25CC;&#x0943;|&#x0943;" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index 28eceb8..0156996 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -68,6 +68,7 @@
     lv: Latvian/qwerty
     mk: Macedonian/south_slavic
     mn_MN: Mongolian (Mongolia)/mongolian
+    (mr_IN: Marathi (India)/marathi) # This is a preliminary keyboard layout.
     ms_MY: Malay (Malaysia)/qwerty
     (my_MM: Myanmar (Myanmar)/myanmar) # This is a preliminary keyboard layout.
     nb: Norwegian Bokmål/nordic
@@ -477,6 +478,16 @@
             android:imeSubtypeExtraValue="KeyboardLayoutSet=mongolian,EmojiCapable"
             android:isAsciiCapable="false"
     />
+    <!-- TODO: This marathi keyboard is a preliminary layout.
+               This isn't based on the final specification. -->
+    <subtype android:icon="@drawable/ic_ime_switcher_dark"
+            android:label="@string/subtype_generic"
+            android:subtypeId="0x747b9f03"
+            android:imeSubtypeLocale="mr_IN"
+            android:imeSubtypeMode="keyboard"
+            android:imeSubtypeExtraValue="KeyboardLayoutSet=marathi,EmojiCapable"
+            android:isAsciiCapable="false"
+    />
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
             android:subtypeId="0x84c87c61"
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index 3e3bedf..61ebb69 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -157,20 +157,12 @@
                 android:summary="@string/include_other_imes_in_language_switch_list_summary"
                 android:persistent="true"
                 android:defaultValue="false" />
-            <!-- Values for popup dismiss delay are added programmatically -->
-            <CheckBoxPreference
-                android:key="pref_sliding_key_input_preview"
-                android:title="@string/sliding_key_input_preview"
-                android:summary="@string/sliding_key_input_preview_summary"
-                android:persistent="true"
-                android:defaultValue="true" />
             <ListPreference
-                android:key="pref_keyboard_layout_20110916"
+                android:key="pref_keyboard_theme"
                 android:title="@string/keyboard_color_scheme"
                 android:persistent="true"
                 android:entryValues="@array/keyboard_theme_ids"
-                android:entries="@array/keyboard_theme_names"
-                android:defaultValue="@string/config_default_keyboard_theme_id" />
+                android:entries="@array/keyboard_theme_names" />
             <PreferenceScreen
                 android:fragment="com.android.inputmethod.latin.settings.AdditionalSubtypeSettings"
                 android:key="custom_input_styles"
@@ -180,12 +172,6 @@
                 android:key="pref_key_preview_popup_dismiss_delay"
                 android:title="@string/key_preview_popup_dismiss_delay" />
             <com.android.inputmethod.latin.settings.SeekBarDialogPreference
-                android:key="pref_key_longpress_timeout"
-                android:title="@string/prefs_key_longpress_timeout_settings"
-                latin:minValue="@integer/config_min_longpress_timeout"
-                latin:maxValue="@integer/config_max_longpress_timeout"
-                latin:stepValue="@integer/config_longpress_timeout_step" />
-            <com.android.inputmethod.latin.settings.SeekBarDialogPreference
                 android:key="pref_vibration_duration_settings"
                 android:title="@string/prefs_keypress_vibration_duration_settings"
                 latin:maxValue="@integer/config_max_vibration_duration" />
diff --git a/java/res/xml/prefs_for_debug.xml b/java/res/xml/prefs_for_debug.xml
index bb6a641..c333b07 100644
--- a/java/res/xml/prefs_for_debug.xml
+++ b/java/res/xml/prefs_for_debug.xml
@@ -41,6 +41,18 @@
         android:title="@string/prefs_usability_study_mode"
         android:persistent="true"
         android:defaultValue="false" />
+    <CheckBoxPreference
+        android:key="pref_sliding_key_input_preview"
+        android:title="@string/sliding_key_input_preview"
+        android:summary="@string/sliding_key_input_preview_summary"
+        android:persistent="true"
+        android:defaultValue="true" />
+    <com.android.inputmethod.latin.settings.SeekBarDialogPreference
+        android:key="pref_key_longpress_timeout"
+        android:title="@string/prefs_key_longpress_timeout_settings"
+        latin:minValue="@integer/config_min_longpress_timeout"
+        latin:maxValue="@integer/config_max_longpress_timeout"
+        latin:stepValue="@integer/config_longpress_timeout_step" />
     <com.android.inputmethod.latin.settings.SeekBarDialogPreference
         android:key="pref_key_preview_show_up_start_scale"
         android:title="@string/prefs_key_popup_show_up_start_scale_settings"
diff --git a/java/res/xml/rowkeys_marathi1.xml b/java/res/xml/rowkeys_marathi1.xml
new file mode 100644
index 0000000..810e71e
--- /dev/null
+++ b/java/res/xml/rowkeys_marathi1.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" />
+    <!-- U+0967: "१" DEVANAGARI DIGIT ONE -->
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignAu"
+        latin:keyHintLabel="1"
+        latin:additionalMoreKeys="&#x0967;,1" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
+    <!-- U+0968: "२" DEVANAGARI DIGIT TWO -->
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignAi"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="&#x0968;,2" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_aa" />
+    <!-- U+0969: "३" DEVANAGARI DIGIT THREE -->
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignAa"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="&#x0969;,3" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ii" />
+    <!-- U+096A: "४" DEVANAGARI DIGIT FOUR -->
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignIi"
+        latin:keyHintLabel="4"
+        latin:additionalMoreKeys="&#x096A;,4" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_uu" />
+    <!-- U+096B: "५" DEVANAGARI DIGIT FIVE -->
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignUu"
+        latin:keyHintLabel="5"
+        latin:additionalMoreKeys="&#x096B;,5" />
+    <!-- U+092C: "ब" DEVANAGARI LETTER BA
+         U+092D: "भ" DEVANAGARI LETTER BHA
+         U+096C: "६" DEVANAGARI DIGIT SIX -->
+    <Key
+        latin:keySpec="&#x092C;"
+        latin:moreKeys="&#x092D;,%"
+        latin:keyHintLabel="6"
+        latin:additionalMoreKeys="&#x096C;,6"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0939: "ह" DEVANAGARI LETTER HA
+         U+096D: "७" DEVANAGARI DIGIT SEVEN -->
+    <Key
+        latin:keySpec="&#x0939;"
+        latin:keyHintLabel="7"
+        latin:additionalMoreKeys="&#x096D;,7"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0917: "ग" DEVANAGARI LETTER GA
+         U+0918: "घ" DEVANAGARI LETTER GHA
+         U+096E: "८" DEVANAGARI DIGIT EIGHT -->
+    <Key
+        latin:keySpec="&#x0917;"
+        latin:moreKeys="&#x0918;,%"
+        latin:keyHintLabel="8"
+        latin:additionalMoreKeys="&#x096E;,8"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0926: "द" DEVANAGARI LETTER DA
+         U+0927: "ध" DEVANAGARI LETTER DHA
+         U+096F: "९" DEVANAGARI DIGIT NINE -->
+    <Key
+        latin:keySpec="&#x0926;"
+        latin:moreKeys="&#x0927;,%"
+        latin:keyHintLabel="9"
+        latin:additionalMoreKeys="&#x096F;,9"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+091C: "ज" DEVANAGARI LETTER JA
+         U+091D: "झ" DEVANAGARI LETTER JHA
+         U+091C/U+094D/U+091E: "ज्ञ" DEVANAGARI LETTER JA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER JHA -->
+    <Key
+        latin:keySpec="&#x091C;"
+        latin:moreKeys="&#x091D;,&#x091C;&#x094D;&#x091E;,%"
+        latin:keyHintLabel="0"
+        latin:additionalMoreKeys="&#x0966;,0"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0921: "ड" DEVANAGARI LETTER DDA
+         U+0922: "ढ" DEVANAGARI LETTER DDHA -->
+    <Key
+        latin:keySpec="&#x0921;"
+        latin:moreKeys="&#x0922;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml/rowkeys_marathi2.xml b/java/res/xml/rowkeys_marathi2.xml
new file mode 100644
index 0000000..f950915
--- /dev/null
+++ b/java/res/xml/rowkeys_marathi2.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_o" />
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignO" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignE" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
+    <Key
+        latin:keyStyle="baseKeyDevanagariSignVirama" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_i" />
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignI" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_u" />
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignU" />
+    <!-- U+092A: "प" DEVANAGARI LETTER PA
+         U+092B: "फ" DEVANAGARI LETTER PHA -->
+    <Key
+        latin:keySpec="&#x092A;"
+        latin:moreKeys="&#x092B;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_vocalic_r" />
+    <!-- U+0930: "र" DEVANAGARI LETTER RA -->
+    <Key
+        latin:keySpec="&#x0930;"
+        latin:keyStyle="moreKeysDevanagariVowelSignVocalicR"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0915: "क" DEVANAGARI LETTER KA
+         U+0916: "ख" DEVANAGARI LETTER KHA -->
+    <Key
+        latin:keySpec="&#x0915;"
+        latin:moreKeys="&#x0916;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0924: "त" DEVANAGARI LETTER TA
+         U+0925: "थ" DEVANAGARI LETTER THA
+         U+0924/U+094D/U+0930: "त्र" DEVANAGARI LETTER TA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
+    <Key
+        latin:keySpec="&#x0924;"
+        latin:moreKeys="&#x0925;,&#x0924;&#x094D;&#x0930;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+091A: "च" DEVANAGARI LETTER CA
+         U+091B: "छ" DEVANAGARI LETTER CHA -->
+    <Key
+        latin:keySpec="&#x091A;"
+        latin:moreKeys="&#x091B;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+091F: "ट" DEVANAGARI LETTER TTA
+         U+0920: "ठ" DEVANAGARI LETTER TTHA -->
+    <Key
+        latin:keySpec="&#x091F;"
+        latin:moreKeys="&#x0920;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml/rowkeys_marathi3.xml b/java/res/xml/rowkeys_marathi3.xml
new file mode 100644
index 0000000..17fc5ac
--- /dev/null
+++ b/java/res/xml/rowkeys_marathi3.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_candra_o" />
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignCandraO" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_candra_e" />
+    <Key
+        latin:keyStyle="baseKeyDevanagariVowelSignCandraE" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_sign_anusvara" />
+    <Key
+        latin:keyStyle="baseKeyDevanagariSignAnusvara" />
+    <!-- U+092E: "म" DEVANAGARI LETTER MA -->
+    <Key
+        latin:keySpec="&#x092E;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0928: "न" DEVANAGARI LETTER NA
+         U+0923: "ण" DEVANAGARI LETTER NNA
+         U+091E: "ञ" DEVANAGARI LETTER NYA
+         U+0919: "ङ" DEVANAGARI LETTER NGA -->
+    <Key
+        latin:keySpec="&#x0928;"
+        latin:moreKeys="&#x0923;,&#x091E;,&#x0919;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0935: "व" DEVANAGARI LETTER VA -->
+    <Key
+        latin:keySpec="&#x0935;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0932: "ल" DEVANAGARI LETTER LA
+         U+0933: "ळ" DEVANAGARI LETTER LLA -->
+    <Key
+        latin:keySpec="&#x0932;"
+        latin:moreKeys="&#x0933;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0938: "स" DEVANAGARI LETTER SA
+         U+0936: "श" DEVANAGARI LETTER SHA
+         U+0937: "ष" DEVANAGARI LETTER SSA
+         U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
+    <Key
+        latin:keySpec="&#x0938;"
+        latin:moreKeys="&#x0936;,&#x0937;,&#x0936;&#x094D;&#x0930;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+092F: "य" DEVANAGARI LETTER YA -->
+    <Key
+        latin:keySpec="&#x092F;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0915/U+094D/U+0937: "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA -->
+    <Key
+        latin:keySpec="&#x0915;&#x094D;&#x0937;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/rows_marathi.xml b/java/res/xml/rows_marathi.xml
new file mode 100644
index 0000000..42a0363
--- /dev/null
+++ b/java/res/xml/rows_marathi.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyWidth="9.091%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_marathi1" />
+    </Row>
+    <Row
+            latin:keyWidth="9.091%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_marathi2" />
+    </Row>
+    <Row
+        latin:keyWidth="9.091%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_marathi3" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
index bc094b1..d50dd3e 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
@@ -68,7 +68,6 @@
         // These only need to be initialized if the kill switch is off.
         sInstance.initInternal(context);
         KeyCodeDescriptionMapper.init();
-        AccessibleKeyboardViewProxy.init(context);
     }
 
     public static AccessibilityUtils getInstance() {
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
similarity index 77%
rename from java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
rename to java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
index 322127a..1092942 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
+++ b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
@@ -36,9 +36,7 @@
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-public final class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
-    private static final AccessibleKeyboardViewProxy sInstance = new AccessibleKeyboardViewProxy();
-
+public final class MainKeyboardAccessibilityDelegate extends AccessibilityDelegateCompat {
     /** Map of keyboard modes to resource IDs. */
     private static final SparseIntArray KEYBOARD_MODE_RES_IDS = new SparseIntArray();
 
@@ -54,9 +52,9 @@
         KEYBOARD_MODE_RES_IDS.put(KeyboardId.MODE_URL, R.string.keyboard_mode_url);
     }
 
-    private MainKeyboardView mView;
+    private final MainKeyboardView mView;
     private Keyboard mKeyboard;
-    private AccessibilityEntityProvider mAccessibilityNodeProvider;
+    private MainKeyboardAccessibilityNodeProvider mAccessibilityNodeProvider;
 
     private Key mLastHoverKey = null;
 
@@ -69,46 +67,14 @@
     private int mLastKeyboardMode = KEYBOARD_IS_HIDDEN;
     private static final int KEYBOARD_IS_HIDDEN = -1;
 
-    public static void init(final Context context) {
-        sInstance.initInternal(context);
-    }
-
-    public static AccessibleKeyboardViewProxy getInstance() {
-        return sInstance;
-    }
-
-    private AccessibleKeyboardViewProxy() {
-        // Not publicly instantiable.
-    }
-
-    private void initInternal(final Context context) {
+    public MainKeyboardAccessibilityDelegate(final MainKeyboardView view) {
+        final Context context = view.getContext();
         mEdgeSlop = context.getResources().getDimensionPixelSize(
                 R.dimen.config_accessibility_edge_slop);
-    }
-
-    /**
-     * Sets the view wrapped by this proxy.
-     *
-     * @param view The view to wrap.
-     */
-    public void setView(final MainKeyboardView view) {
-        if (view == null) {
-            // Ignore null views.
-            return;
-        }
         mView = view;
 
         // Ensure that the view has an accessibility delegate.
         ViewCompat.setAccessibilityDelegate(view, this);
-
-        if (mAccessibilityNodeProvider == null) {
-            return;
-        }
-        mAccessibilityNodeProvider.setView(view);
-
-        // Since this class is constructed lazily, we might not get a subsequent
-        // call to setKeyboard() and therefore need to call it now.
-        setKeyboard(view.getKeyboard());
     }
 
     /**
@@ -136,12 +102,19 @@
             return;
         }
         // Announce the language name only when the language is changed.
-        if (lastKeyboard == null || !lastKeyboard.mId.mSubtype.equals(keyboard.mId.mSubtype)) {
+        if (lastKeyboard == null || !keyboard.mId.mSubtype.equals(lastKeyboard.mId.mSubtype)) {
             announceKeyboardLanguage(keyboard);
+            return;
         }
         // Announce the mode only when the mode is changed.
-        if (lastKeyboardMode != keyboard.mId.mMode) {
+        if (keyboard.mId.mMode != lastKeyboardMode) {
             announceKeyboardMode(keyboard);
+            return;
+        }
+        // Announce the keyboard type only when the type is changed.
+        if (keyboard.mId.mElementId != lastKeyboard.mId.mElementId) {
+            announceKeyboardType(keyboard, lastKeyboard);
+            return;
         }
     }
 
@@ -149,9 +122,6 @@
      * Called when the keyboard is hidden and accessibility is enabled.
      */
     public void onHideWindow() {
-        if (mView == null) {
-            return;
-        }
         announceKeyboardHidden();
         mLastKeyboardMode = KEYBOARD_IS_HIDDEN;
     }
@@ -174,9 +144,8 @@
      * @param keyboard The new keyboard.
      */
     private void announceKeyboardMode(final Keyboard keyboard) {
-        final int mode = keyboard.mId.mMode;
         final Context context = mView.getContext();
-        final int modeTextResId = KEYBOARD_MODE_RES_IDS.get(mode);
+        final int modeTextResId = KEYBOARD_MODE_RES_IDS.get(keyboard.mId.mMode);
         if (modeTextResId == 0) {
             return;
         }
@@ -186,6 +155,50 @@
     }
 
     /**
+     * Announces which type of keyboard is being displayed.
+     *
+     * @param keyboard The new keyboard.
+     * @param lastKeyboard The last keyboard.
+     */
+    private void announceKeyboardType(final Keyboard keyboard, final Keyboard lastKeyboard) {
+        final int lastElementId = lastKeyboard.mId.mElementId;
+        final int resId;
+        switch (keyboard.mId.mElementId) {
+        case KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED:
+        case KeyboardId.ELEMENT_ALPHABET:
+            if (lastElementId == KeyboardId.ELEMENT_ALPHABET
+                    || lastElementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
+                return;
+            }
+            resId = R.string.spoken_description_mode_alpha;
+            break;
+        case KeyboardId.ELEMENT_ALPHABET_MANUAL_SHIFTED:
+            resId = R.string.spoken_description_shiftmode_on;
+            break;
+        case KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED:
+        case KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED:
+            resId = R.string.spoken_description_shiftmode_locked;
+            break;
+        case KeyboardId.ELEMENT_SYMBOLS:
+            resId = R.string.spoken_description_mode_symbol;
+            break;
+        case KeyboardId.ELEMENT_SYMBOLS_SHIFTED:
+            resId = R.string.spoken_description_mode_symbol_shift;
+            break;
+        case KeyboardId.ELEMENT_PHONE:
+            resId = R.string.spoken_description_mode_phone;
+            break;
+        case KeyboardId.ELEMENT_PHONE_SYMBOLS:
+            resId = R.string.spoken_description_mode_phone_shift;
+            break;
+        default:
+            return;
+        }
+        final String text = mView.getContext().getString(resId);
+        sendWindowStateChanged(text);
+    }
+
+    /**
      * Announces that the keyboard has been hidden.
      */
     private void announceKeyboardHidden() {
@@ -214,7 +227,7 @@
     }
 
     /**
-     * Proxy method for View.getAccessibilityNodeProvider(). This method is called in SDK
+     * Delegate method for View.getAccessibilityNodeProvider(). This method is called in SDK
      * version 15 (Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) and higher to obtain the virtual
      * node hierarchy provider.
      *
@@ -222,10 +235,7 @@
      * @return The accessibility node provider for the current keyboard.
      */
     @Override
-    public AccessibilityEntityProvider getAccessibilityNodeProvider(final View host) {
-        if (mView == null) {
-            return null;
-        }
+    public MainKeyboardAccessibilityNodeProvider getAccessibilityNodeProvider(final View host) {
         return getAccessibilityNodeProvider();
     }
 
@@ -238,10 +248,6 @@
      * @return {@code true} if the event is handled
      */
     public boolean dispatchHoverEvent(final MotionEvent event, final KeyDetector keyDetector) {
-        if (mView == null) {
-            return false;
-        }
-
         final int x = (int) event.getX();
         final int y = (int) event.getY();
         final Key previousKey = mLastHoverKey;
@@ -275,14 +281,14 @@
     }
 
     /**
-     * @return A lazily-instantiated node provider for this view proxy.
+     * @return A lazily-instantiated node provider for this view delegate.
      */
-    private AccessibilityEntityProvider getAccessibilityNodeProvider() {
+    private MainKeyboardAccessibilityNodeProvider getAccessibilityNodeProvider() {
         // Instantiate the provide only when requested. Since the system
         // will call this method multiple times it is a good practice to
         // cache the provider instance.
         if (mAccessibilityNodeProvider == null) {
-            mAccessibilityNodeProvider = new AccessibilityEntityProvider(mView);
+            mAccessibilityNodeProvider = new MainKeyboardAccessibilityNodeProvider(mView);
         }
         return mAccessibilityNodeProvider;
     }
@@ -301,7 +307,7 @@
     }
 
     /**
-     * Simulates a key press by injecting touch event into the keyboard view.
+     * Simulates a key press by injecting touch an event into the keyboard view.
      * This avoids the complexity of trackers and listeners within the keyboard.
      *
      * @param key The key to press.
@@ -318,7 +324,7 @@
     }
 
     /**
-     * Simulates a key release by injecting touch event into the keyboard view.
+     * Simulates a key release by injecting touch an event into the keyboard view.
      * This avoids the complexity of trackers and listeners within the keyboard.
      *
      * @param key The key to release.
@@ -367,7 +373,7 @@
         if (key == null) {
             return false;
         }
-        final AccessibilityEntityProvider provider = getAccessibilityNodeProvider();
+        final MainKeyboardAccessibilityNodeProvider provider = getAccessibilityNodeProvider();
 
         switch (event.getAction()) {
         case MotionEvent.ACTION_HOVER_ENTER:
@@ -383,72 +389,4 @@
         }
         return true;
     }
-
-    /**
-     * Notifies the user of changes in the keyboard shift state.
-     */
-    public void notifyShiftState() {
-        if (mView == null || mKeyboard == null) {
-            return;
-        }
-
-        final KeyboardId keyboardId = mKeyboard.mId;
-        final int elementId = keyboardId.mElementId;
-        final Context context = mView.getContext();
-        final CharSequence text;
-
-        switch (elementId) {
-        case KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED:
-        case KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED:
-            text = context.getText(R.string.spoken_description_shiftmode_locked);
-            break;
-        case KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED:
-        case KeyboardId.ELEMENT_ALPHABET_MANUAL_SHIFTED:
-        case KeyboardId.ELEMENT_SYMBOLS_SHIFTED:
-            text = context.getText(R.string.spoken_description_shiftmode_on);
-            break;
-        default:
-            text = context.getText(R.string.spoken_description_shiftmode_off);
-        }
-        AccessibilityUtils.getInstance().announceForAccessibility(mView, text);
-    }
-
-    /**
-     * Notifies the user of changes in the keyboard symbols state.
-     */
-    public void notifySymbolsState() {
-        if (mView == null || mKeyboard == null) {
-            return;
-        }
-
-        final KeyboardId keyboardId = mKeyboard.mId;
-        final int elementId = keyboardId.mElementId;
-        final Context context = mView.getContext();
-        final int resId;
-
-        switch (elementId) {
-        case KeyboardId.ELEMENT_ALPHABET:
-        case KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED:
-        case KeyboardId.ELEMENT_ALPHABET_MANUAL_SHIFTED:
-        case KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED:
-        case KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED:
-            resId = R.string.spoken_description_mode_alpha;
-            break;
-        case KeyboardId.ELEMENT_SYMBOLS:
-        case KeyboardId.ELEMENT_SYMBOLS_SHIFTED:
-            resId = R.string.spoken_description_mode_symbol;
-            break;
-        case KeyboardId.ELEMENT_PHONE:
-            resId = R.string.spoken_description_mode_phone;
-            break;
-        case KeyboardId.ELEMENT_PHONE_SYMBOLS:
-            resId = R.string.spoken_description_mode_phone_shift;
-            break;
-        default:
-            return;
-        }
-
-        final String text = context.getString(resId);
-        AccessibilityUtils.getInstance().announceForAccessibility(mView, text);
-    }
 }
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityNodeProvider.java
similarity index 95%
rename from java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
rename to java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityNodeProvider.java
index ec1ab35..f69d316 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityNodeProvider.java
@@ -47,8 +47,8 @@
  * virtual views, thus conveying their logical structure.
  * </p>
  */
-public final class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat {
-    private static final String TAG = AccessibilityEntityProvider.class.getSimpleName();
+public final class MainKeyboardAccessibilityNodeProvider extends AccessibilityNodeProviderCompat {
+    private static final String TAG = MainKeyboardAccessibilityNodeProvider.class.getSimpleName();
     private static final int UNDEFINED = Integer.MIN_VALUE;
 
     private final KeyCodeDescriptionMapper mKeyCodeDescriptionMapper;
@@ -64,23 +64,14 @@
     private int mAccessibilityFocusedView = UNDEFINED;
 
     /** The current keyboard view. */
-    private KeyboardView mKeyboardView;
+    private final KeyboardView mKeyboardView;
 
     /** The current keyboard. */
     private Keyboard mKeyboard;
 
-    public AccessibilityEntityProvider(final KeyboardView keyboardView) {
+    public MainKeyboardAccessibilityNodeProvider(final KeyboardView keyboardView) {
         mKeyCodeDescriptionMapper = KeyCodeDescriptionMapper.getInstance();
         mAccessibilityUtils = AccessibilityUtils.getInstance();
-        setView(keyboardView);
-    }
-
-    /**
-     * Sets the keyboard view represented by this node provider.
-     *
-     * @param keyboardView The keyboard view to represent.
-     */
-    public void setView(final KeyboardView keyboardView) {
         mKeyboardView = keyboardView;
         updateParentLocation();
 
diff --git a/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
index a80c3fe..18b3a60 100644
--- a/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
+++ b/java/src/com/android/inputmethod/compat/InputMethodManagerCompatWrapper.java
@@ -28,6 +28,12 @@
     private static final Method METHOD_switchToNextInputMethod = CompatUtils.getMethod(
             InputMethodManager.class, "switchToNextInputMethod", IBinder.class, Boolean.TYPE);
 
+    // Note that InputMethodManager.shouldOfferSwitchingToNextInputMethod() has been introduced
+    // in API level 19 (Build.VERSION_CODES.KITKAT).
+    private static final Method METHOD_shouldOfferSwitchingToNextInputMethod =
+            CompatUtils.getMethod(InputMethodManager.class,
+                    "shouldOfferSwitchingToNextInputMethod", IBinder.class);
+
     public final InputMethodManager mImm;
 
     public InputMethodManagerCompatWrapper(final Context context) {
@@ -38,4 +44,9 @@
         return (Boolean)CompatUtils.invoke(mImm, false /* defaultValue */,
                 METHOD_switchToNextInputMethod, token, onlyCurrentIme);
     }
+
+    public boolean shouldOfferSwitchingToNextInputMethod(final IBinder token) {
+        return (Boolean)CompatUtils.invoke(mImm, false /* defaultValue */,
+                METHOD_shouldOfferSwitchingToNextInputMethod, token);
+    }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index dcf7f74..4a46a4a 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -26,7 +26,6 @@
 import android.view.View;
 import android.view.inputmethod.EditorInfo;
 
-import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
 import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
 import com.android.inputmethod.keyboard.KeyboardLayoutSet.KeyboardLayoutSetException;
 import com.android.inputmethod.keyboard.internal.KeyboardState;
@@ -65,7 +64,7 @@
      * what user actually typed. */
     private boolean mIsAutoCorrectionActive;
 
-    private KeyboardTheme mKeyboardTheme = KeyboardTheme.getDefaultKeyboardTheme();
+    private KeyboardTheme mKeyboardTheme;
     private Context mThemeContext;
 
     private static final KeyboardSwitcher sInstance = new KeyboardSwitcher();
@@ -102,7 +101,7 @@
 
     private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context,
             final KeyboardTheme keyboardTheme) {
-        if (mThemeContext == null || mKeyboardTheme.mThemeId != keyboardTheme.mThemeId) {
+        if (mThemeContext == null || !keyboardTheme.equals(mKeyboardTheme)) {
             mKeyboardTheme = keyboardTheme;
             mThemeContext = new ContextThemeWrapper(context, keyboardTheme.mStyleId);
             KeyboardLayoutSet.clearKeyboardCache();
@@ -123,7 +122,7 @@
         builder.setOptions(
                 mSubtypeSwitcher.isShortcutImeEnabled(),
                 settingsValues.mShowsVoiceInputKey,
-                settingsValues.isLanguageSwitchKeyEnabled());
+                mLatinIME.shouldShowLanguageSwitchKey());
         mKeyboardLayoutSet = builder.build();
         mCurrentSettingsValues = settingsValues;
         try {
@@ -148,6 +147,9 @@
 
     public void onHideWindow() {
         mIsAutoCorrectionActive = false;
+        if (mKeyboardView != null) {
+            mKeyboardView.onHideWindow();
+        }
     }
 
     private void setKeyboard(final Keyboard keyboard) {
@@ -340,7 +342,8 @@
             mKeyboardView.closing();
         }
 
-        updateKeyboardThemeAndContextThemeWrapper(mLatinIME, mKeyboardTheme);
+        updateKeyboardThemeAndContextThemeWrapper(
+                mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs));
         mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate(
                 R.layout.input_view, null);
         mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame);
@@ -353,11 +356,6 @@
         mEmojiPalettesView.setHardwareAcceleratedDrawingEnabled(
                 isHardwareAcceleratedDrawingEnabled);
         mEmojiPalettesView.setKeyboardActionListener(mLatinIME);
-
-        // This always needs to be set since the accessibility state can
-        // potentially change without the input view being re-created.
-        AccessibleKeyboardViewProxy.getInstance().setView(mKeyboardView);
-
         return mCurrentInputView;
     }
 
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
index 4db72ad..5034540 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
@@ -17,34 +17,86 @@
 package com.android.inputmethod.keyboard;
 
 import android.content.SharedPreferences;
+import android.os.Build;
+import android.os.Build.VERSION_CODES;
 import android.util.Log;
 
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.settings.Settings;
+
+import java.util.Arrays;
+import java.util.Comparator;
 
 public final class KeyboardTheme {
     private static final String TAG = KeyboardTheme.class.getSimpleName();
 
-    public static final int THEME_ID_ICS = 0;
-    public static final int THEME_ID_KLP = 2;
-    private static final int DEFAULT_THEME_ID = THEME_ID_KLP;
+    static final String KITKAT_KEYBOARD_THEME_KEY = "pref_keyboard_layout_20110916";
+    static final String KEYBOARD_THEME_KEY = "pref_keyboard_theme_20140509";
+
+    static final int THEME_ID_ICS = 0;
+    static final int THEME_ID_KLP = 2;
+    static final int THEME_ID_LMP = 3;
+    static final int DEFAULT_THEME_ID = THEME_ID_KLP;
 
     private static final KeyboardTheme[] KEYBOARD_THEMES = {
-        new KeyboardTheme(THEME_ID_ICS, R.style.KeyboardTheme_ICS),
-        new KeyboardTheme(THEME_ID_KLP, R.style.KeyboardTheme_KLP),
+        new KeyboardTheme(THEME_ID_ICS, R.style.KeyboardTheme_ICS,
+                VERSION_CODES.ICE_CREAM_SANDWICH),
+        new KeyboardTheme(THEME_ID_KLP, R.style.KeyboardTheme_KLP,
+                VERSION_CODES.KITKAT),
+        // TODO: Update to LMP style.
+        new KeyboardTheme(THEME_ID_LMP, R.style.KeyboardTheme_KLP,
+                // TODO: Update this constant once the *next* version becomes available.
+                VERSION_CODES.CUR_DEVELOPMENT),
     };
+    static {
+        // Sort {@link #KEYBOARD_THEME} by descending order of {@link #mMinApiVersion}.
+        Arrays.sort(KEYBOARD_THEMES, new Comparator<KeyboardTheme>() {
+            @Override
+            public int compare(final KeyboardTheme lhs, final KeyboardTheme rhs) {
+                if (lhs.mMinApiVersion > rhs.mMinApiVersion) return -1;
+                if (lhs.mMinApiVersion < rhs.mMinApiVersion) return 1;
+                return 0;
+            }
+        });
+    }
 
     public final int mThemeId;
     public final int mStyleId;
+    final int mMinApiVersion;
 
     // Note: The themeId should be aligned with "themeId" attribute of Keyboard style
-    // in values/style.xml.
-    public KeyboardTheme(final int themeId, final int styleId) {
+    // in values/themes-<style>.xml.
+    private KeyboardTheme(final int themeId, final int styleId, final int minApiVersion) {
         mThemeId = themeId;
         mStyleId = styleId;
+        mMinApiVersion = minApiVersion;
     }
 
-    private static KeyboardTheme searchKeyboardTheme(final int themeId) {
+    @Override
+    public boolean equals(final Object o) {
+        if (o == this) return true;
+        return (o instanceof KeyboardTheme) && ((KeyboardTheme)o).mThemeId == mThemeId;
+    }
+
+    @Override
+    public int hashCode() {
+        return mThemeId;
+    }
+
+    // TODO: This method should be removed when {@link LatinImeLogger} is removed.
+    public int getCompatibleThemeIdForLogging() {
+        switch (mThemeId) {
+        case THEME_ID_ICS:
+            return 5;
+        case THEME_ID_KLP:
+            return 9;
+        case THEME_ID_LMP:
+            return 10;
+        default: // Invalid theme
+            return -1;
+        }
+    }
+
+    private static KeyboardTheme searchKeyboardThemeById(final int themeId) {
         // TODO: This search algorithm isn't optimal if there are many themes.
         for (final KeyboardTheme theme : KEYBOARD_THEMES) {
             if (theme.mThemeId == themeId) {
@@ -54,18 +106,57 @@
         return null;
     }
 
-    public static KeyboardTheme getDefaultKeyboardTheme() {
-        return searchKeyboardTheme(DEFAULT_THEME_ID);
+    private static int getSdkVersion() {
+        final int sdkVersion = Build.VERSION.SDK_INT;
+        // TODO: Consider to remove this check once the *next* version becomes available.
+        if (sdkVersion == VERSION_CODES.KITKAT && Build.VERSION.CODENAME.startsWith("L")) {
+            return VERSION_CODES.CUR_DEVELOPMENT;
+        }
+        return sdkVersion;
+    }
+
+    static KeyboardTheme getDefaultKeyboardTheme(final SharedPreferences prefs,
+            final int sdkVersion) {
+        final String obsoleteIdString = prefs.getString(KITKAT_KEYBOARD_THEME_KEY, null);
+        if (obsoleteIdString != null) {
+            // Remove old preference.
+            prefs.edit().remove(KITKAT_KEYBOARD_THEME_KEY).apply();
+            if (sdkVersion <= VERSION_CODES.KITKAT) {
+                try {
+                    final int themeId = Integer.parseInt(obsoleteIdString);
+                    final KeyboardTheme theme = searchKeyboardThemeById(themeId);
+                    if (theme != null) {
+                        return theme;
+                    }
+                    Log.w(TAG, "Unknown keyboard theme in preference: " + obsoleteIdString);
+                } catch (final NumberFormatException e) {
+                    Log.w(TAG, "Illegal keyboard theme in preference: " + obsoleteIdString);
+                }
+            }
+        }
+        // TODO: This search algorithm isn't optimal if there are many themes.
+        for (final KeyboardTheme theme : KEYBOARD_THEMES) {
+            if (sdkVersion >= theme.mMinApiVersion) {
+                return theme;
+            }
+        }
+        return searchKeyboardThemeById(DEFAULT_THEME_ID);
+    }
+
+    public static void saveKeyboardThemeId(final String themeIdString,
+            final SharedPreferences prefs) {
+        prefs.edit().putString(KEYBOARD_THEME_KEY, themeIdString).apply();
     }
 
     public static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs) {
-        final String themeIdString = prefs.getString(Settings.PREF_KEYBOARD_LAYOUT, null);
+        final int sdkVersion = getSdkVersion();
+        final String themeIdString = prefs.getString(KEYBOARD_THEME_KEY, null);
         if (themeIdString == null) {
-            return getDefaultKeyboardTheme();
+            return getDefaultKeyboardTheme(prefs, sdkVersion);
         }
         try {
             final int themeId = Integer.parseInt(themeIdString);
-            final KeyboardTheme theme = searchKeyboardTheme(themeId);
+            final KeyboardTheme theme = searchKeyboardThemeById(themeId);
             if (theme != null) {
                 return theme;
             }
@@ -73,9 +164,8 @@
         } catch (final NumberFormatException e) {
             Log.w(TAG, "Illegal keyboard theme in preference: " + themeIdString);
         }
-        // Reset preference to default value.
-        final String defaultThemeIdString = Integer.toString(DEFAULT_THEME_ID);
-        prefs.edit().putString(Settings.PREF_KEYBOARD_LAYOUT, defaultThemeIdString).apply();
-        return getDefaultKeyboardTheme();
+        // Remove preference.
+        prefs.edit().remove(KEYBOARD_THEME_KEY).apply();
+        return getDefaultKeyboardTheme(prefs, sdkVersion);
     }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index ecef8cc..8f79a91 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -39,7 +39,7 @@
 import android.widget.TextView;
 
 import com.android.inputmethod.accessibility.AccessibilityUtils;
-import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
+import com.android.inputmethod.accessibility.MainKeyboardAccessibilityDelegate;
 import com.android.inputmethod.annotations.ExternallyReferenced;
 import com.android.inputmethod.keyboard.internal.DrawingHandler;
 import com.android.inputmethod.keyboard.internal.DrawingPreviewPlacerView;
@@ -179,6 +179,8 @@
     private final DrawingHandler mDrawingHandler =
             new DrawingHandler(this);
 
+    private final MainKeyboardAccessibilityDelegate mAccessibilityDelegate;
+
     public MainKeyboardView(final Context context, final AttributeSet attrs) {
         this(context, attrs, R.attr.mainKeyboardViewStyle);
     }
@@ -278,6 +280,8 @@
 
         mLanguageOnSpacebarHorizontalMargin = (int)getResources().getDimension(
                 R.dimen.config_language_on_spacebar_horizontal_margin);
+
+        mAccessibilityDelegate = new MainKeyboardAccessibilityDelegate(this);
     }
 
     @Override
@@ -404,9 +408,7 @@
             ResearchLogger.mainKeyboardView_setKeyboard(keyboard, orientation);
         }
 
-        // This always needs to be set since the accessibility state can
-        // potentially change without the keyboard being set again.
-        AccessibleKeyboardViewProxy.getInstance().setKeyboard(keyboard);
+        mAccessibilityDelegate.setKeyboard(keyboard);
     }
 
     /**
@@ -769,6 +771,12 @@
         mMoreKeysKeyboardCache.clear();
     }
 
+    public void onHideWindow() {
+        if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) {
+            mAccessibilityDelegate.onHideWindow();
+        }
+    }
+
     /**
      * Receives hover events from the input framework.
      *
@@ -779,8 +787,7 @@
     @Override
     public boolean dispatchHoverEvent(final MotionEvent event) {
         if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) {
-            return AccessibleKeyboardViewProxy.getInstance().dispatchHoverEvent(
-                    event, mKeyDetector);
+            return mAccessibilityDelegate.dispatchHoverEvent(event, mKeyDetector);
         }
 
         // Reflection doesn't support calling superclass methods.
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
index 14fa767..7e6181a 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -95,18 +95,18 @@
         /*   5:23 */ "morekeys_c",
         /*   6:23 */ "double_quotes",
         /*   7:22 */ "morekeys_n",
-        /*   8:22 */ "single_quotes",
-        /*   9:21 */ "keylabel_to_alpha",
+        /*   8:22 */ "keylabel_to_alpha",
+        /*   9:22 */ "single_quotes",
         /*  10:20 */ "morekeys_s",
         /*  11:14 */ "morekeys_y",
         /*  12:13 */ "morekeys_d",
         /*  13:12 */ "morekeys_z",
         /*  14:10 */ "morekeys_t",
         /*  15:10 */ "morekeys_l",
-        /*  16: 9 */ "morekeys_g",
-        /*  17: 9 */ "single_angle_quotes",
-        /*  18: 9 */ "double_angle_quotes",
-        /*  19: 9 */ "keyspec_currency",
+        /*  16:10 */ "keyspec_currency",
+        /*  17: 9 */ "morekeys_g",
+        /*  18: 9 */ "single_angle_quotes",
+        /*  19: 9 */ "double_angle_quotes",
         /*  20: 8 */ "morekeys_r",
         /*  21: 6 */ "morekeys_k",
         /*  22: 6 */ "morekeys_cyrillic_ie",
@@ -119,29 +119,29 @@
         /*  29: 5 */ "keyspec_east_slavic_row2_11",
         /*  30: 5 */ "keyspec_east_slavic_row3_5",
         /*  31: 5 */ "morekeys_cyrillic_soft_sign",
-        /*  32: 4 */ "morekeys_nordic_row2_11",
-        /*  33: 4 */ "morekeys_punctuation",
-        /*  34: 4 */ "keyspec_symbols_1",
-        /*  35: 4 */ "keyspec_symbols_2",
-        /*  36: 4 */ "keyspec_symbols_3",
-        /*  37: 4 */ "keyspec_symbols_4",
-        /*  38: 4 */ "keyspec_symbols_5",
-        /*  39: 4 */ "keyspec_symbols_6",
-        /*  40: 4 */ "keyspec_symbols_7",
-        /*  41: 4 */ "keyspec_symbols_8",
-        /*  42: 4 */ "keyspec_symbols_9",
-        /*  43: 4 */ "keyspec_symbols_0",
-        /*  44: 4 */ "keylabel_to_symbol",
-        /*  45: 4 */ "additional_morekeys_symbols_1",
-        /*  46: 4 */ "additional_morekeys_symbols_2",
-        /*  47: 4 */ "additional_morekeys_symbols_3",
-        /*  48: 4 */ "additional_morekeys_symbols_4",
-        /*  49: 4 */ "additional_morekeys_symbols_5",
-        /*  50: 4 */ "additional_morekeys_symbols_6",
-        /*  51: 4 */ "additional_morekeys_symbols_7",
-        /*  52: 4 */ "additional_morekeys_symbols_8",
-        /*  53: 4 */ "additional_morekeys_symbols_9",
-        /*  54: 4 */ "additional_morekeys_symbols_0",
+        /*  32: 5 */ "keyspec_symbols_1",
+        /*  33: 5 */ "keyspec_symbols_2",
+        /*  34: 5 */ "keyspec_symbols_3",
+        /*  35: 5 */ "keyspec_symbols_4",
+        /*  36: 5 */ "keyspec_symbols_5",
+        /*  37: 5 */ "keyspec_symbols_6",
+        /*  38: 5 */ "keyspec_symbols_7",
+        /*  39: 5 */ "keyspec_symbols_8",
+        /*  40: 5 */ "keyspec_symbols_9",
+        /*  41: 5 */ "keyspec_symbols_0",
+        /*  42: 5 */ "keylabel_to_symbol",
+        /*  43: 5 */ "additional_morekeys_symbols_1",
+        /*  44: 5 */ "additional_morekeys_symbols_2",
+        /*  45: 5 */ "additional_morekeys_symbols_3",
+        /*  46: 5 */ "additional_morekeys_symbols_4",
+        /*  47: 5 */ "additional_morekeys_symbols_5",
+        /*  48: 5 */ "additional_morekeys_symbols_6",
+        /*  49: 5 */ "additional_morekeys_symbols_7",
+        /*  50: 5 */ "additional_morekeys_symbols_8",
+        /*  51: 5 */ "additional_morekeys_symbols_9",
+        /*  52: 5 */ "additional_morekeys_symbols_0",
+        /*  53: 4 */ "morekeys_nordic_row2_11",
+        /*  54: 4 */ "morekeys_punctuation",
         /*  55: 4 */ "keyspec_tablet_comma",
         /*  56: 3 */ "keyspec_swiss_row1_11",
         /*  57: 3 */ "keyspec_swiss_row2_10",
@@ -266,19 +266,19 @@
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_lqm_rqm",
         /* morekeys_n */ EMPTY,
-        /* single_quotes */ "!text/single_lqm_rqm",
         // Label for "switch to alphabetic" key.
         /* keylabel_to_alpha */ "ABC",
+        /* single_quotes */ "!text/single_lqm_rqm",
         /* morekeys_s ~ */
-        EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-        /* ~ morekeys_g */
+        EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
+        /* ~ morekeys_l */
+        /* keyspec_currency */ "$",
+        /* morekeys_g */ EMPTY,
         /* single_angle_quotes */ "!text/single_laqm_raqm",
         /* double_angle_quotes */ "!text/double_laqm_raqm",
-        /* keyspec_currency */ "$",
         /* morekeys_r ~ */
-        EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-        /* ~ morekeys_nordic_row2_11 */
-        /* morekeys_punctuation */ "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&",
+        EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
+        /* ~ morekeys_cyrillic_soft_sign */
         /* keyspec_symbols_1 */ "1",
         /* keyspec_symbols_2 */ "2",
         /* keyspec_symbols_3 */ "3",
@@ -292,8 +292,9 @@
         // Label for "switch to symbols" key.
         /* keylabel_to_symbol */ "?123",
         /* additional_morekeys_symbols_1 ~ */
-        EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-        /* ~ additional_morekeys_symbols_0 */
+        EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
+        /* ~ morekeys_nordic_row2_11 */
+        /* morekeys_punctuation */ "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&",
         /* keyspec_tablet_comma */ ",",
         /* keyspec_swiss_row1_11 ~ */
         EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
@@ -515,7 +516,7 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes ~ */
+        /* keylabel_to_alpha ~ */
         null, null, null,
         /* ~ morekeys_s */
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
@@ -526,18 +527,18 @@
     /* Locale ar: Arabic */
     private static final String[] TEXTS_ar = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
         // U+200C: ZERO WIDTH NON-JOINER
         // U+0628: "ب" ARABIC LETTER BEH
         // U+062C: "ج" ARABIC LETTER JEEM
         /* keylabel_to_alpha */ "\u0623\u200C\u0628\u200C\u062C",
-        /* morekeys_s ~ */
+        /* single_quotes ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null,
-        /* ~ morekeys_punctuation */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_cyrillic_soft_sign */
         // U+0661: "١" ARABIC-INDIC DIGIT ONE
         /* keyspec_symbols_1 */ "\u0661",
         // U+0662: "٢" ARABIC-INDIC DIGIT TWO
@@ -573,6 +574,8 @@
         // U+066B: "٫" ARABIC DECIMAL SEPARATOR
         // U+066C: "٬" ARABIC THOUSANDS SEPARATOR
         /* additional_morekeys_symbols_0 */ "0,\u066B,\u066C",
+        /* morekeys_nordic_row2_11 */ null,
+        /* morekeys_punctuation */ null,
         // U+061F: "؟" ARABIC QUESTION MARK
         // U+060C: "،" ARABIC COMMA
         // U+061B: "؛" ARABIC SEMICOLON
@@ -688,15 +691,15 @@
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
         /* double_quotes ~ */
         null, null, null, null,
-        /* ~ keylabel_to_alpha */
+        /* ~ single_quotes */
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u015F,\u00DF,\u015B,\u0161",
         /* morekeys_y ~ */
-        null, null, null, null, null,
-        /* ~ morekeys_l */
+        null, null, null, null, null, null,
+        /* ~ keyspec_currency */
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         /* morekeys_g */ "\u011F",
     };
@@ -708,12 +711,12 @@
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* morekeys_s ~ */
         null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_k */
@@ -742,7 +745,6 @@
         // single_quotes of Bulgarian is default single_quotes_right_left.
         /* double_quotes */ "!text/double_9qm_lqm",
         /* morekeys_n */ null,
-        /* single_quotes */ null,
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
@@ -802,23 +804,23 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes ~ */
+        /* keylabel_to_alpha ~ */
         null, null, null, null, null, null, null,
         /* ~ morekeys_t */
         // U+00B7: "·" MIDDLE DOT
         // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
         /* morekeys_l */ "l\u00B7l,\u0142",
-        /* morekeys_g ~ */
+        /* keyspec_currency ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null,
         /* ~ morekeys_nordic_row2_11 */
         // U+00B7: "·" MIDDLE DOT
         /* morekeys_punctuation */ "!autoColumnOrder!9,\\,,?,!,\u00B7,#,),(,/,;,',@,:,-,\",+,\\%,&",
-        /* keyspec_symbols_1 ~ */
+        /* keyspec_tablet_comma ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null,
         /* ~ keyspec_south_slavic_row3_8 */
         /* morekeys_tablet_punctuation */ "!autoColumnOrder!8,\\,,',\u00B7,#,),(,/,;,@,:,-,\",+,\\%,&",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
@@ -877,8 +879,8 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u0148,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -894,11 +896,11 @@
         /* morekeys_z */ "\u017E,\u017A,\u017C",
         // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
         /* morekeys_t */ "\u0165",
-        /* morekeys_l */ null,
-        /* morekeys_g */ null,
+        /* morekeys_l ~ */
+        null, null, null,
+        /* ~ morekeys_g */
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
-        /* keyspec_currency */ null,
         // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
         /* morekeys_r */ "\u0159",
     };
@@ -936,8 +938,8 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
@@ -951,11 +953,12 @@
         /* morekeys_t */ null,
         // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
         /* morekeys_l */ "\u0142",
+        /* keyspec_currency */ null,
         /* morekeys_g */ null,
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
-        /* keyspec_currency ~ */
-        null, null, null, null,
+        /* morekeys_r ~ */
+        null, null, null,
         /* ~ morekeys_cyrillic_ie */
         // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
         /* keyspec_nordic_row1_11 */ "\u00E5",
@@ -966,8 +969,9 @@
         // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
         /* morekeys_nordic_row2_10 */ "\u00E4",
         /* keyspec_east_slavic_row1_9 ~ */
-        null, null, null, null, null,
-        /* ~ morekeys_cyrillic_soft_sign */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ additional_morekeys_symbols_0 */
         // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         /* morekeys_nordic_row2_11 */ "\u00F6",
     };
@@ -1010,21 +1014,21 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u00DF,\u015B,\u0161",
         /* morekeys_y ~ */
-        null, null, null, null, null, null,
+        null, null, null, null, null, null, null,
         /* ~ morekeys_g */
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
-        /* keyspec_currency ~ */
+        /* morekeys_r ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null,
+        null, null, null, null, null, null,
         /* ~ keyspec_tablet_comma */
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         /* keyspec_swiss_row1_11 */ "\u00FC",
@@ -1043,8 +1047,8 @@
     /* Locale el: Greek */
     private static final String[] TEXTS_el = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0391: "Α" GREEK CAPITAL LETTER ALPHA
         // U+0392: "Β" GREEK CAPITAL LETTER BETA
@@ -1063,40 +1067,40 @@
         // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
         // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
         /* morekeys_a */ "\u00E0,\u00E1,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101",
+        // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
         // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
         // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-        // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
         // U+0153: "œ" LATIN SMALL LIGATURE OE
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-        /* morekeys_o */ "\u00F4,\u00F6,\u00F2,\u00F3,\u0153,\u00F8,\u014D,\u00F5",
+        /* morekeys_o */ "\u00F3,\u00F4,\u00F6,\u00F2,\u0153,\u00F8,\u014D,\u00F5",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FB,\u00FC,\u00F9,\u00FA,\u016B",
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        /* morekeys_u */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B",
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        /* morekeys_e */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113",
+        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0113",
+        // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-        // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-        /* morekeys_i */ "\u00EE,\u00EF,\u00ED,\u012B,\u00EC",
+        /* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u012B,\u00EC",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         /* morekeys_c */ "\u00E7",
         /* double_quotes */ null,
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         /* morekeys_n */ "\u00F1",
-        /* single_quotes */ null,
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         /* morekeys_s */ "\u00DF",
     };
@@ -1169,8 +1173,8 @@
         // U+0149: "ŉ" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
         // U+014B: "ŋ" LATIN SMALL LETTER ENG
         /* morekeys_n */ "\u00F1,\u0144,\u0146,\u0148,\u0149,\u014B",
-        /* single_quotes */ null,
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -1201,13 +1205,13 @@
         // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT
         // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
         /* morekeys_l */ "\u013A,\u013C,\u013E,\u0140,\u0142",
+        /* keyspec_currency */ null,
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         // U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
         // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
         /* morekeys_g */ "\u011F,\u0121,\u0123",
-        /* single_angle_quotes ~ */
-        null, null, null,
-        /* ~ keyspec_currency */
+        /* single_angle_quotes */ null,
+        /* double_angle_quotes */ null,
         // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
         // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
         // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
@@ -1301,9 +1305,11 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes ~ */
+        /* keylabel_to_alpha ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null,
         /* ~ morekeys_nordic_row2_11 */
         // U+00A1: "¡" INVERTED EXCLAMATION MARK
         // U+00BF: "¿" INVERTED QUESTION MARK
@@ -1366,8 +1372,8 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u0146,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -1390,12 +1396,12 @@
         // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
         // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
         /* morekeys_l */ "\u013C,\u0142,\u013A,\u013E",
+        /* keyspec_currency */ null,
         // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         /* morekeys_g */ "\u0123,\u011F",
-        /* single_angle_quotes ~ */
-        null, null, null,
-        /* ~ keyspec_currency */
+        /* single_angle_quotes */ null,
+        /* double_angle_quotes */ null,
         // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
         // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
         // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
@@ -1470,22 +1476,22 @@
     /* Locale fa: Persian */
     private static final String[] TEXTS_fa = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0627: "ا" ARABIC LETTER ALEF
         // U+200C: ZERO WIDTH NON-JOINER
         // U+0628: "ب" ARABIC LETTER BEH
         // U+067E: "پ" ARABIC LETTER PEH
         /* keylabel_to_alpha */ "\u0627\u200C\u0628\u200C\u067E",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ double_angle_quotes */
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null,
+        /* ~ morekeys_l */
         // U+FDFC: "﷼" RIAL SIGN
         /* keyspec_currency */ "\uFDFC",
-        /* morekeys_r ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ morekeys_punctuation */
+        /* morekeys_g ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ morekeys_cyrillic_soft_sign */
         // U+06F1: "۱" EXTENDED ARABIC-INDIC DIGIT ONE
         /* keyspec_symbols_1 */ "\u06F1",
         // U+06F2: "۲" EXTENDED ARABIC-INDIC DIGIT TWO
@@ -1521,6 +1527,8 @@
         // U+066B: "٫" ARABIC DECIMAL SEPARATOR
         // U+066C: "٬" ARABIC THOUSANDS SEPARATOR
         /* additional_morekeys_symbols_0 */ "0,\u066B,\u066C",
+        /* morekeys_nordic_row2_11 */ null,
+        /* morekeys_punctuation */ null,
         // U+060C: "،" ARABIC COMMA
         // U+061B: "؛" ARABIC SEMICOLON
         // U+061F: "؟" ARABIC QUESTION MARK
@@ -1629,7 +1637,7 @@
         /* morekeys_u */ "\u00FC",
         /* morekeys_e ~ */
         null, null, null, null, null, null, null,
-        /* ~ keylabel_to_alpha */
+        /* ~ single_quotes */
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -1652,8 +1660,9 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         /* morekeys_nordic_row2_10 */ "\u00F8",
         /* keyspec_east_slavic_row1_9 ~ */
-        null, null, null, null, null,
-        /* ~ morekeys_cyrillic_soft_sign */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ additional_morekeys_symbols_0 */
         // U+00E6: "æ" LATIN SMALL LETTER AE
         /* morekeys_nordic_row2_11 */ "\u00E6",
     };
@@ -1786,21 +1795,21 @@
     /* Locale hi: Hindi */
     private static final String[] TEXTS_hi = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0915: "क" DEVANAGARI LETTER KA
         // U+0916: "ख" DEVANAGARI LETTER KHA
         // U+0917: "ग" DEVANAGARI LETTER GA
         /* keylabel_to_alpha */ "\u0915\u0916\u0917",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ double_angle_quotes */
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null,
+        /* ~ morekeys_l */
         // U+20B9: "₹" INDIAN RUPEE SIGN
         /* keyspec_currency */ "\u20B9",
-        /* morekeys_r ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ morekeys_punctuation */
+        /* morekeys_g ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ morekeys_cyrillic_soft_sign */
         // U+0967: "१" DEVANAGARI DIGIT ONE
         /* keyspec_symbols_1 */ "\u0967",
         // U+0968: "२" DEVANAGARI DIGIT TWO
@@ -1848,8 +1857,8 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_rqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_rqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
@@ -1862,7 +1871,7 @@
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         /* morekeys_z */ "\u017E,\u017A,\u017C",
         /* morekeys_t ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_g */
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
@@ -1914,8 +1923,9 @@
         /* morekeys_c */ null,
         /* double_quotes */ "!text/double_9qm_rqm",
         /* morekeys_n */ null,
+        /* keylabel_to_alpha */ null,
         /* single_quotes */ "!text/single_9qm_rqm",
-        /* keylabel_to_alpha ~ */
+        /* morekeys_s ~ */
         null, null, null, null, null, null, null, null,
         /* ~ morekeys_g */
         /* single_angle_quotes */ "!text/single_raqm_laqm",
@@ -1925,16 +1935,17 @@
     /* Locale hy_AM: Armenian (Armenia) */
     private static final String[] TEXTS_hy_AM = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0531: "Ա" ARMENIAN CAPITAL LETTER AYB
         // U+0532: "Բ" ARMENIAN CAPITAL LETTER BEN
         // U+0533: "Գ" ARMENIAN CAPITAL LETTER GIM
         /* keylabel_to_alpha */ "\u0531\u0532\u0533",
-        /* morekeys_s ~ */
+        /* single_quotes ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_nordic_row2_11 */
         // U+055E: "՞" ARMENIAN QUESTION MARK
         // U+055C: "՜" ARMENIAN EXCLAMATION MARK
@@ -1947,10 +1958,6 @@
         // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
         // U+055F: "՟" ARMENIAN ABBREVIATION MARK
         /* morekeys_punctuation */ "!autoColumnOrder!8,\\,,\u055E,\u055C,.,\u055A,\u0559,?,!,\u055D,\u055B,\u058A,\u00BB,\u00AB,\u055F,;,:",
-        /* keyspec_symbols_1 ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null,
-        /* ~ additional_morekeys_symbols_0 */
         // U+058F: "֏" ARMENIAN DRAM SIGN
         // TODO: Enable this when we have glyph for the following letter
         // <string name="keyspec_currency">&#x058F;</string>
@@ -2026,8 +2033,8 @@
         /* morekeys_c */ null,
         /* double_quotes */ "!text/double_9qm_lqm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* morekeys_s */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
@@ -2109,21 +2116,21 @@
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_rqm_9qm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_rqm_9qm",
         // Label for "switch to alphabetic" key.
         // U+05D0: "א" HEBREW LETTER ALEF
         // U+05D1: "ב" HEBREW LETTER BET
         // U+05D2: "ג" HEBREW LETTER GIMEL
         /* keylabel_to_alpha */ "\u05D0\u05D1\u05D2",
+        /* single_quotes */ "!text/single_rqm_9qm",
         /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ double_angle_quotes */
+        null, null, null, null, null, null,
+        /* ~ morekeys_l */
         // U+20AA: "₪" NEW SHEQEL SIGN
         /* keyspec_currency */ "\u20AA",
-        /* morekeys_r ~ */
+        /* morekeys_g ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_swiss_row2_11 */
         // U+2605: "★" BLACK STAR
         /* morekeys_star */ "\u2605",
@@ -2166,26 +2173,26 @@
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         // Label for "switch to alphabetic" key.
         // U+10D0: "ა" GEORGIAN LETTER AN
         // U+10D1: "ბ" GEORGIAN LETTER BAN
         // U+10D2: "გ" GEORGIAN LETTER GAN
         /* keylabel_to_alpha */ "\u10D0\u10D1\u10D2",
+        /* single_quotes */ "!text/single_9qm_lqm",
     };
 
     /* Locale kk: Kazakh */
     private static final String[] TEXTS_kk = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null,
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_k */
         // U+0451: "ё" CYRILLIC SMALL LETTER IO
         /* morekeys_cyrillic_ie */ "\u0451",
@@ -2202,7 +2209,7 @@
         /* keyspec_east_slavic_row3_5 */ "\u0438",
         // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
         /* morekeys_cyrillic_soft_sign */ "\u044A",
-        /* morekeys_nordic_row2_11 ~ */
+        /* keyspec_symbols_1 ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -2234,14 +2241,14 @@
     /* Locale km_KH: Khmer (Cambodia) */
     private static final String[] TEXTS_km_KH = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+1780: "ក" KHMER LETTER KA
         // U+1781: "ខ" KHMER LETTER KHA
         // U+1782: "គ" KHMER LETTER KO
         /* keylabel_to_alpha */ "\u1780\u1781\u1782",
-        /* morekeys_s ~ */
+        /* single_quotes ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -2249,7 +2256,7 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null,
+        null, null, null, null, null, null, null,
         /* ~ morekeys_cyrillic_a */
         // U+17DB: "៛" KHMER CURRENCY SYMBOL RIEL
         /* morekeys_currency_dollar */ "\u17DB,\u00A2,\u00A3,\u20AC,\u00A5,\u20B1",
@@ -2258,15 +2265,15 @@
     /* Locale ky: Kirghiz */
     private static final String[] TEXTS_ky = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null,
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_k */
         // U+0451: "ё" CYRILLIC SMALL LETTER IO
         /* morekeys_cyrillic_ie */ "\u0451",
@@ -2283,7 +2290,7 @@
         /* keyspec_east_slavic_row3_5 */ "\u0438",
         // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
         /* morekeys_cyrillic_soft_sign */ "\u044A",
-        /* morekeys_nordic_row2_11 ~ */
+        /* keyspec_symbols_1 ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -2301,16 +2308,16 @@
     /* Locale lo_LA: Lao (Laos) */
     private static final String[] TEXTS_lo_LA = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0E81: "ກ" LAO LETTER KO
         // U+0E82: "ຂ" LAO LETTER KHO SUNG
         // U+0E84: "ຄ" LAO LETTER KHO TAM
         /* keylabel_to_alpha */ "\u0E81\u0E82\u0E84",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ double_angle_quotes */
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null,
+        /* ~ morekeys_l */
         // U+20AD: "₭" KIP SIGN
         /* keyspec_currency */ "\u20AD",
     };
@@ -2372,8 +2379,8 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u0146,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -2396,12 +2403,12 @@
         // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
         // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
         /* morekeys_l */ "\u013C,\u0142,\u013A,\u013E",
+        /* keyspec_currency */ null,
         // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         /* morekeys_g */ "\u0123,\u011F",
-        /* single_angle_quotes ~ */
-        null, null, null,
-        /* ~ keyspec_currency */
+        /* single_angle_quotes */ null,
+        /* double_angle_quotes */ null,
         // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
         // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
         // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
@@ -2466,8 +2473,8 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u0146,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -2490,12 +2497,12 @@
         // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
         // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
         /* morekeys_l */ "\u013C,\u0142,\u013A,\u013E",
+        /* keyspec_currency */ null,
         // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         /* morekeys_g */ "\u0123,\u011F",
-        /* single_angle_quotes ~ */
-        null, null, null,
-        /* ~ keyspec_currency */
+        /* single_angle_quotes */ null,
+        /* double_angle_quotes */ null,
         // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
         // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
         // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
@@ -2511,12 +2518,12 @@
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* morekeys_s ~ */
         null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_k */
@@ -2544,39 +2551,88 @@
     /* Locale mn_MN: Mongolian (Mongolia) */
     private static final String[] TEXTS_mn_MN = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ double_angle_quotes */
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null,
+        /* ~ morekeys_l */
         // U+20AE: "₮" TUGRIK SIGN
         /* keyspec_currency */ "\u20AE",
     };
 
+    /* Locale mr_IN: Marathi (India) */
+    private static final String[] TEXTS_mr_IN = {
+        /* morekeys_a ~ */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
+        // Label for "switch to alphabetic" key.
+        // U+0915: "क" DEVANAGARI LETTER KA
+        // U+0916: "ख" DEVANAGARI LETTER KHA
+        // U+0917: "ग" DEVANAGARI LETTER GA
+        /* keylabel_to_alpha */ "\u0915\u0916\u0917",
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null,
+        /* ~ morekeys_l */
+        // U+20B9: "₹" INDIAN RUPEE SIGN
+        /* keyspec_currency */ "\u20B9",
+        /* morekeys_g ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ morekeys_cyrillic_soft_sign */
+        // U+0967: "१" DEVANAGARI DIGIT ONE
+        /* keyspec_symbols_1 */ "\u0967",
+        // U+0968: "२" DEVANAGARI DIGIT TWO
+        /* keyspec_symbols_2 */ "\u0968",
+        // U+0969: "३" DEVANAGARI DIGIT THREE
+        /* keyspec_symbols_3 */ "\u0969",
+        // U+096A: "४" DEVANAGARI DIGIT FOUR
+        /* keyspec_symbols_4 */ "\u096A",
+        // U+096B: "५" DEVANAGARI DIGIT FIVE
+        /* keyspec_symbols_5 */ "\u096B",
+        // U+096C: "६" DEVANAGARI DIGIT SIX
+        /* keyspec_symbols_6 */ "\u096C",
+        // U+096D: "७" DEVANAGARI DIGIT SEVEN
+        /* keyspec_symbols_7 */ "\u096D",
+        // U+096E: "८" DEVANAGARI DIGIT EIGHT
+        /* keyspec_symbols_8 */ "\u096E",
+        // U+096F: "९" DEVANAGARI DIGIT NINE
+        /* keyspec_symbols_9 */ "\u096F",
+        // U+0966: "०" DEVANAGARI DIGIT ZERO
+        /* keyspec_symbols_0 */ "\u0966",
+        // Label for "switch to symbols" key.
+        /* keylabel_to_symbol */ "?\u0967\u0968\u0969",
+        /* additional_morekeys_symbols_1 */ "1",
+        /* additional_morekeys_symbols_2 */ "2",
+        /* additional_morekeys_symbols_3 */ "3",
+        /* additional_morekeys_symbols_4 */ "4",
+        /* additional_morekeys_symbols_5 */ "5",
+        /* additional_morekeys_symbols_6 */ "6",
+        /* additional_morekeys_symbols_7 */ "7",
+        /* additional_morekeys_symbols_8 */ "8",
+        /* additional_morekeys_symbols_9 */ "9",
+        /* additional_morekeys_symbols_0 */ "0",
+    };
+
     /* Locale my_MM: Burmese (Myanmar) */
     private static final String[] TEXTS_my_MM = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+1000: "က" MYANMAR LETTER KA
         // U+1001: "ခ" MYANMAR LETTER KHA
         // U+1002: "ဂ" MYANMAR LETTER GA
         /* keylabel_to_alpha */ "\u1000\u1001\u1002",
-        /* morekeys_s ~ */
+        /* single_quotes ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_nordic_row2_11 */
         /* morekeys_punctuation */ "!autoColumnOrder!9,\u104A,.,?,!,#,),(,/,;,...,',@,:,-,\",+,\\%,&",
-        /* keyspec_symbols_1 ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null,
-        /* ~ additional_morekeys_symbols_0 */
         // U+104A: "၊" MYANMAR SIGN LITTLE SECTION
         // U+104B: "။" MYANMAR SIGN SECTION
         /* keyspec_tablet_comma */ "\u104A",
@@ -2633,9 +2689,10 @@
         /* morekeys_c */ null,
         /* double_quotes */ "!text/double_9qm_rqm",
         /* morekeys_n */ null,
+        /* keylabel_to_alpha */ null,
         /* single_quotes */ "!text/single_9qm_rqm",
-        /* keylabel_to_alpha ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        /* morekeys_s ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_cyrillic_ie */
         // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
         /* keyspec_nordic_row1_11 */ "\u00E5",
@@ -2646,8 +2703,9 @@
         // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         /* morekeys_nordic_row2_10 */ "\u00F6",
         /* keyspec_east_slavic_row1_9 ~ */
-        null, null, null, null, null,
-        /* ~ morekeys_cyrillic_soft_sign */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ additional_morekeys_symbols_0 */
         // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
         /* morekeys_nordic_row2_11 */ "\u00E4",
     };
@@ -2655,21 +2713,21 @@
     /* Locale ne_NP: Nepali (Nepal) */
     private static final String[] TEXTS_ne_NP = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0915: "क" DEVANAGARI LETTER KA
         // U+0916: "ख" DEVANAGARI LETTER KHA
         // U+0917: "ग" DEVANAGARI LETTER GA
         /* keylabel_to_alpha */ "\u0915\u0916\u0917",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ double_angle_quotes */
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null,
+        /* ~ morekeys_l */
         // U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
         /* keyspec_currency */ "\u0930\u0941.",
-        /* morekeys_r ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ morekeys_punctuation */
+        /* morekeys_g ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ morekeys_cyrillic_soft_sign */
         // U+0967: "१" DEVANAGARI DIGIT ONE
         /* keyspec_symbols_1 */ "\u0967",
         // U+0968: "२" DEVANAGARI DIGIT TWO
@@ -2751,8 +2809,8 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_rqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_rqm",
         /* morekeys_s */ null,
         // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
         /* morekeys_y */ "\u0133",
@@ -2797,8 +2855,8 @@
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         /* morekeys_n */ "\u0144,\u00F1",
-        /* single_quotes */ "!text/single_9qm_rqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_rqm",
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
@@ -2900,8 +2958,8 @@
         /* morekeys_c */ null,
         /* double_quotes */ "!text/double_9qm_rqm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_rqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_rqm",
         // U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -2921,12 +2979,12 @@
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* morekeys_s ~ */
         null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_k */
@@ -3004,8 +3062,8 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u0148,\u0146,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
@@ -3028,12 +3086,12 @@
         // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
         // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
         /* morekeys_l */ "\u013E,\u013A,\u013C,\u0142",
+        /* keyspec_currency */ null,
         // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         /* morekeys_g */ "\u0123,\u011F",
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
-        /* keyspec_currency */ null,
         // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
         // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
         // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
@@ -3052,8 +3110,8 @@
         /* morekeys_c */ "\u010D,\u0107",
         /* double_quotes */ "!text/double_9qm_lqm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u0161",
         /* morekeys_y */ null,
@@ -3062,7 +3120,7 @@
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         /* morekeys_z */ "\u017E",
         /* morekeys_t ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_g */
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
@@ -3075,21 +3133,20 @@
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         // END: More keys definitions for Serbian (Cyrillic)
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* morekeys_s ~ */
-        null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null,
         /* ~ morekeys_g */
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
-        /* keyspec_currency ~ */
-        null, null, null,
-        /* ~ morekeys_k */
+        /* morekeys_r */ null,
+        /* morekeys_k */ null,
         // U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE
         /* morekeys_cyrillic_ie */ "\u0450",
         /* keyspec_nordic_row1_11 ~ */
@@ -3169,8 +3226,8 @@
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
         /* morekeys_n */ "\u0144,\u00F1,\u0148",
-        /* single_quotes */ null,
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ null,
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
@@ -3191,10 +3248,10 @@
         /* morekeys_t */ "\u0165,\u00FE",
         // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
         /* morekeys_l */ "\u0142",
+        /* keyspec_currency */ null,
         /* morekeys_g */ null,
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
-        /* keyspec_currency */ null,
         // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
         /* morekeys_r */ "\u0159",
         /* morekeys_k */ null,
@@ -3209,8 +3266,9 @@
         // U+0153: "œ" LATIN SMALL LIGATURE OE
         /* morekeys_nordic_row2_10 */ "\u00F8,\u0153",
         /* keyspec_east_slavic_row1_9 ~ */
-        null, null, null, null, null,
-        /* ~ morekeys_cyrillic_soft_sign */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ additional_morekeys_symbols_0 */
         // U+00E6: "æ" LATIN SMALL LETTER AE
         /* morekeys_nordic_row2_11 */ "\u00E6",
     };
@@ -3259,29 +3317,29 @@
         /* double_quotes */ null,
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         /* morekeys_n */ "\u00F1",
-        /* single_quotes */ null,
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         /* morekeys_s */ "\u00DF",
         /* morekeys_y ~ */
-        null, null, null, null, null,
-        /* ~ morekeys_l */
+        null, null, null, null, null, null,
+        /* ~ keyspec_currency */
         /* morekeys_g */ "g\'",
     };
 
     /* Locale th: Thai */
     private static final String[] TEXTS_th = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // Label for "switch to alphabetic" key.
         // U+0E01: "ก" THAI CHARACTER KO KAI
         // U+0E02: "ข" THAI CHARACTER KHO KHAI
         // U+0E04: "ค" THAI CHARACTER KHO KHWAI
         /* keylabel_to_alpha */ "\u0E01\u0E02\u0E04",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ double_angle_quotes */
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null,
+        /* ~ morekeys_l */
         // U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT
         /* keyspec_currency */ "\u0E3F",
     };
@@ -3374,15 +3432,15 @@
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
         /* double_quotes ~ */
         null, null, null, null,
-        /* ~ keylabel_to_alpha */
+        /* ~ single_quotes */
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u015F,\u00DF,\u015B,\u0161",
         /* morekeys_y ~ */
-        null, null, null, null, null,
-        /* ~ morekeys_l */
+        null, null, null, null, null, null,
+        /* ~ keyspec_currency */
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         /* morekeys_g */ "\u011F",
     };
@@ -3394,19 +3452,19 @@
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
         /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null,
-        /* ~ double_angle_quotes */
+        null, null, null, null, null, null,
+        /* ~ morekeys_l */
         // U+20B4: "₴" HRYVNIA SIGN
         /* keyspec_currency */ "\u20B4",
-        /* morekeys_r ~ */
-        null, null, null, null, null, null, null,
+        /* morekeys_g ~ */
+        null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_nordic_row2_10 */
         // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA
         /* keyspec_east_slavic_row1_9 */ "\u0449",
@@ -3418,7 +3476,7 @@
         /* keyspec_east_slavic_row3_5 */ "\u0438",
         // U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN
         /* morekeys_cyrillic_soft_sign */ "\u044A",
-        /* morekeys_nordic_row2_11 ~ */
+        /* keyspec_symbols_1 ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -3512,8 +3570,8 @@
         // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
         /* morekeys_d */ "\u0111",
         /* morekeys_z ~ */
-        null, null, null, null, null, null,
-        /* ~ double_angle_quotes */
+        null, null, null,
+        /* ~ morekeys_l */
         // U+20AB: "₫" DONG SIGN
         /* keyspec_currency */ "\u20AB",
     };
@@ -3530,40 +3588,40 @@
         // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
         // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
         /* morekeys_a */ "\u00E0,\u00E1,\u00E2,\u00E4,\u00E6,\u00E3,\u00E5,\u0101",
+        // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
         // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
         // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-        // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
         // U+0153: "œ" LATIN SMALL LIGATURE OE
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-        /* morekeys_o */ "\u00F4,\u00F6,\u00F2,\u00F3,\u0153,\u00F8,\u014D,\u00F5",
+        /* morekeys_o */ "\u00F3,\u00F4,\u00F6,\u00F2,\u0153,\u00F8,\u014D,\u00F5",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FB,\u00FC,\u00F9,\u00FA,\u016B",
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        /* morekeys_u */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B",
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        /* morekeys_e */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113",
+        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0113",
+        // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-        // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-        /* morekeys_i */ "\u00EE,\u00EF,\u00ED,\u012B,\u00EC",
+        /* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u012B,\u00EC",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         /* morekeys_c */ "\u00E7",
         /* double_quotes */ null,
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         /* morekeys_n */ "\u00F1",
-        /* single_quotes */ null,
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         /* morekeys_s */ "\u00DF",
     };
@@ -3640,8 +3698,8 @@
         // U+0149: "ŉ" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
         // U+014B: "ŋ" LATIN SMALL LETTER ENG
         /* morekeys_n */ "\u00F1,\u0144,\u0146,\u0148,\u0149,\u014B",
-        /* single_quotes */ null,
         /* keylabel_to_alpha */ null,
+        /* single_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX
@@ -3673,14 +3731,14 @@
         // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT
         // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
         /* morekeys_l */ "\u013A,\u013C,\u013E,\u0140,\u0142",
+        /* keyspec_currency */ null,
         // U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         // U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
         // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
         /* morekeys_g */ "\u011D,\u011F,\u0121,\u0123",
-        /* single_angle_quotes ~ */
-        null, null, null,
-        /* ~ keyspec_currency */
+        /* single_angle_quotes */ null,
+        /* double_angle_quotes */ null,
         // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
         // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
         // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
@@ -3711,26 +3769,26 @@
         "DEFAULT", TEXTS_DEFAULT, /* 168/168 DEFAULT */
         "af"     , TEXTS_af,    /*   7/ 12 Afrikaans */
         "ar"     , TEXTS_ar,    /*  55/110 Arabic */
-        "az_AZ"  , TEXTS_az_AZ, /*   8/ 17 Azerbaijani (Azerbaijan) */
+        "az_AZ"  , TEXTS_az_AZ, /*   8/ 18 Azerbaijani (Azerbaijan) */
         "be_BY"  , TEXTS_be_BY, /*   9/ 32 Belarusian (Belarus) */
-        "bg"     , TEXTS_bg,    /*   2/ 10 Bulgarian */
+        "bg"     , TEXTS_bg,    /*   2/  9 Bulgarian */
         "ca"     , TEXTS_ca,    /*  11/ 95 Catalan */
         "cs"     , TEXTS_cs,    /*  17/ 21 Czech */
-        "da"     , TEXTS_da,    /*  19/ 33 Danish */
+        "da"     , TEXTS_da,    /*  19/ 54 Danish */
         "de"     , TEXTS_de,    /*  16/ 62 German */
-        "el"     , TEXTS_el,    /*   1/ 10 Greek */
+        "el"     , TEXTS_el,    /*   1/  9 Greek */
         "en"     , TEXTS_en,    /*   8/ 11 English */
         "eo"     , TEXTS_eo,    /*  26/118 Esperanto */
-        "es"     , TEXTS_es,    /*   8/ 34 Spanish */
+        "es"     , TEXTS_es,    /*   8/ 55 Spanish */
         "et_EE"  , TEXTS_et_EE, /*  22/ 27 Estonian (Estonia) */
         "eu_ES"  , TEXTS_eu_ES, /*   7/  8 Basque (Spain) */
         "fa"     , TEXTS_fa,    /*  58/125 Persian */
-        "fi"     , TEXTS_fi,    /*  10/ 33 Finnish */
+        "fi"     , TEXTS_fi,    /*  10/ 54 Finnish */
         "fr"     , TEXTS_fr,    /*  13/ 62 French */
         "gl_ES"  , TEXTS_gl_ES, /*   7/  8 Gallegan (Spain) */
-        "hi"     , TEXTS_hi,    /*  23/ 55 Hindi */
-        "hr"     , TEXTS_hr,    /*   9/ 19 Croatian */
-        "hu"     , TEXTS_hu,    /*   9/ 19 Hungarian */
+        "hi"     , TEXTS_hi,    /*  23/ 53 Hindi */
+        "hr"     , TEXTS_hr,    /*   9/ 20 Croatian */
+        "hu"     , TEXTS_hu,    /*   9/ 20 Hungarian */
         "hy_AM"  , TEXTS_hy_AM, /*   8/126 Armenian (Armenia) */
         "is"     , TEXTS_is,    /*  10/ 15 Icelandic */
         "it"     , TEXTS_it,    /*  11/ 62 Italian */
@@ -3739,14 +3797,15 @@
         "kk"     , TEXTS_kk,    /*  15/121 Kazakh */
         "km_KH"  , TEXTS_km_KH, /*   2/122 Khmer (Cambodia) */
         "ky"     , TEXTS_ky,    /*  10/ 88 Kirghiz */
-        "lo_LA"  , TEXTS_lo_LA, /*   2/ 20 Lao (Laos) */
+        "lo_LA"  , TEXTS_lo_LA, /*   2/ 17 Lao (Laos) */
         "lt"     , TEXTS_lt,    /*  18/ 22 Lithuanian */
         "lv"     , TEXTS_lv,    /*  18/ 22 Latvian */
         "mk"     , TEXTS_mk,    /*   9/ 93 Macedonian */
-        "mn_MN"  , TEXTS_mn_MN, /*   2/ 20 Mongolian (Mongolia) */
+        "mn_MN"  , TEXTS_mn_MN, /*   2/ 17 Mongolian (Mongolia) */
+        "mr_IN"  , TEXTS_mr_IN, /*  23/ 53 Marathi (India) */
         "my_MM"  , TEXTS_my_MM, /*   8/104 Burmese (Myanmar) */
-        "nb"     , TEXTS_nb,    /*  11/ 33 Norwegian Bokmål */
-        "ne_NP"  , TEXTS_ne_NP, /*  23/ 55 Nepali (Nepal) */
+        "nb"     , TEXTS_nb,    /*  11/ 54 Norwegian Bokmål */
+        "ne_NP"  , TEXTS_ne_NP, /*  23/ 53 Nepali (Nepal) */
         "nl"     , TEXTS_nl,    /*   9/ 12 Dutch */
         "pl"     , TEXTS_pl,    /*  10/ 16 Polish */
         "pt"     , TEXTS_pt,    /*   6/  6 Portuguese */
@@ -3754,15 +3813,15 @@
         "ro"     , TEXTS_ro,    /*   6/ 15 Romanian */
         "ru"     , TEXTS_ru,    /*   9/ 32 Russian */
         "sk"     , TEXTS_sk,    /*  20/ 22 Slovak */
-        "sl"     , TEXTS_sl,    /*   8/ 19 Slovenian */
+        "sl"     , TEXTS_sl,    /*   8/ 20 Slovenian */
         "sr"     , TEXTS_sr,    /*  11/ 93 Serbian */
-        "sv"     , TEXTS_sv,    /*  21/ 33 Swedish */
-        "sw"     , TEXTS_sw,    /*   9/ 17 Swahili */
-        "th"     , TEXTS_th,    /*   2/ 20 Thai */
+        "sv"     , TEXTS_sv,    /*  21/ 54 Swedish */
+        "sw"     , TEXTS_sw,    /*   9/ 18 Swahili */
+        "th"     , TEXTS_th,    /*   2/ 17 Thai */
         "tl"     , TEXTS_tl,    /*   7/  8 Tagalog */
-        "tr"     , TEXTS_tr,    /*   7/ 17 Turkish */
+        "tr"     , TEXTS_tr,    /*   7/ 18 Turkish */
         "uk"     , TEXTS_uk,    /*  11/ 87 Ukrainian */
-        "vi"     , TEXTS_vi,    /*   8/ 20 Vietnamese */
+        "vi"     , TEXTS_vi,    /*   8/ 17 Vietnamese */
         "zu"     , TEXTS_zu,    /*   8/ 11 Zulu */
         "zz"     , TEXTS_zz,    /*  19/112 Alphabet */
     };
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index b88509f..94a1e36 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -218,6 +218,8 @@
             int bigramProbability);
     private static native String getPropertyNative(long dict, String query);
     private static native boolean isCorruptedNative(long dict);
+    private static native boolean migrateNative(long dict, String dictFilePath,
+            long newFormatVersion);
 
     // TODO: Move native dict into session
     private final void loadDictionary(final String path, final long startOffset,
@@ -371,8 +373,7 @@
         return getProbabilityNative(mNativeDict, codePoints);
     }
 
-    // TODO: Add a batch process version (isValidBigramMultiple?) to avoid excessive numbers of jni
-    // calls when checking for changes in an entire dictionary.
+    @UsedForTesting
     public boolean isValidBigram(final String word0, final String word1) {
         return getBigramProbability(word0, word1) != NOT_A_PROBABILITY;
     }
@@ -533,11 +534,15 @@
             return false;
         }
         final String tmpDictFilePath = mDictFilePath + DICT_FILE_NAME_SUFFIX_FOR_MIGRATION;
-        // TODO: Implement migrateNative(tmpDictFilePath, newFormatVersion).
+        if (!migrateNative(mNativeDict, tmpDictFilePath, newFormatVersion)) {
+            return false;
+        }
         close();
         final File dictFile = new File(mDictFilePath);
         final File tmpDictFile = new File(tmpDictFilePath);
-        FileUtils.deleteRecursively(dictFile);
+        if (!FileUtils.deleteRecursively(dictFile)) {
+            return false;
+        }
         if (!BinaryDictionaryUtils.renameDict(tmpDictFile, dictFile)) {
             return false;
         }
diff --git a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
index 9bc01a2..e04fcda 100644
--- a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
@@ -31,9 +31,12 @@
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.personalization.AccountUtils;
+import com.android.inputmethod.latin.utils.CollectionUtils;
+import com.android.inputmethod.latin.utils.ExecutorUtils;
 import com.android.inputmethod.latin.utils.StringUtils;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
@@ -60,7 +63,10 @@
     private static final int INDEX_NAME = 1;
 
     /** The number of contacts in the most recent dictionary rebuild. */
-    static private int sContactCountAtLastRebuild = 0;
+    private int mContactCountAtLastRebuild = 0;
+
+    /** The hash code of ArrayList of contacts names in the most recent dictionary rebuild. */
+    private int mHashCodeAtLastRebuild = 0;
 
     private ContentObserver mObserver;
 
@@ -96,7 +102,14 @@
                 new ContentObserver(null) {
                     @Override
                     public void onChange(boolean self) {
-                        setNeedsToReload();
+                        ExecutorUtils.getExecutor("Check Contacts").execute(new Runnable() {
+                            @Override
+                            public void run() {
+                                if (haveContentsChanged()) {
+                                    setNeedsToRecreate();
+                                }
+                            }
+                        });
                     }
                 });
     }
@@ -143,7 +156,7 @@
                 return;
             }
             if (cursor.moveToFirst()) {
-                sContactCountAtLastRebuild = getContactCount();
+                mContactCountAtLastRebuild = getContactCount();
                 addWordsLocked(cursor);
             }
         } catch (final SQLiteException e) {
@@ -167,9 +180,11 @@
 
     private void addWordsLocked(final Cursor cursor) {
         int count = 0;
+        final ArrayList<String> names = CollectionUtils.newArrayList();
         while (!cursor.isAfterLast() && count < MAX_CONTACT_COUNT) {
             String name = cursor.getString(INDEX_NAME);
             if (isValidName(name)) {
+                names.add(name);
                 addNameLocked(name);
                 ++count;
             } else {
@@ -179,6 +194,7 @@
             }
             cursor.moveToNext();
         }
+        mHashCodeAtLastRebuild = names.hashCode();
     }
 
     private int getContactCount() {
@@ -258,8 +274,7 @@
         return end;
     }
 
-    @Override
-    protected boolean haveContentsChanged() {
+    private boolean haveContentsChanged() {
         final long startTime = SystemClock.uptimeMillis();
         final int contactCount = getContactCount();
         if (contactCount > MAX_CONTACT_COUNT) {
@@ -268,9 +283,9 @@
             // TODO: Sort and check only the MAX_CONTACT_COUNT most recent contacts?
             return false;
         }
-        if (contactCount != sContactCountAtLastRebuild) {
+        if (contactCount != mContactCountAtLastRebuild) {
             if (DEBUG) {
-                Log.d(TAG, "Contact count changed: " + sContactCountAtLastRebuild + " to "
+                Log.d(TAG, "Contact count changed: " + mContactCountAtLastRebuild + " to "
                         + contactCount);
             }
             return true;
@@ -283,20 +298,20 @@
         if (null == cursor) {
             return false;
         }
+        final ArrayList<String> names = CollectionUtils.newArrayList();
         try {
             if (cursor.moveToFirst()) {
                 while (!cursor.isAfterLast()) {
                     String name = cursor.getString(INDEX_NAME);
-                    if (isValidName(name) && !isNameInDictionaryLocked(name)) {
-                        if (DEBUG) {
-                            Log.d(TAG, "Contact name missing: " + name + " (runtime = "
-                                    + (SystemClock.uptimeMillis() - startTime) + " ms)");
-                        }
-                        return true;
+                    if (isValidName(name)) {
+                        names.add(name);
                     }
                     cursor.moveToNext();
                 }
             }
+            if (names.hashCode() != mHashCodeAtLastRebuild) {
+                return true;
+            }
         } finally {
             cursor.close();
         }
@@ -313,33 +328,4 @@
         }
         return false;
     }
-
-    /**
-     * Checks if the words in a name are in the current binary dictionary.
-     */
-    private boolean isNameInDictionaryLocked(final String name) {
-        int len = StringUtils.codePointCount(name);
-        String prevWord = null;
-        for (int i = 0; i < len; i++) {
-            if (Character.isLetter(name.codePointAt(i))) {
-                int end = getWordEndPosition(name, len, i);
-                String word = name.substring(i, end);
-                i = end - 1;
-                final int wordLen = StringUtils.codePointCount(word);
-                if (wordLen < MAX_WORD_LENGTH && wordLen > 1) {
-                    if (!TextUtils.isEmpty(prevWord) && mUseFirstLastBigrams) {
-                        if (!isValidBigramLocked(prevWord, word)) {
-                            return false;
-                        }
-                    } else {
-                        if (!isValidWordLocked(word)) {
-                            return false;
-                        }
-                    }
-                    prevWord = word;
-                }
-            }
-        }
-        return true;
-    }
 }
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index 8dcab6d..ea9691a 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -238,6 +238,7 @@
         synchronized (mLock) {
             oldDictionaries = mDictionaries;
             mDictionaries = newDictionaries;
+            mIsUserDictEnabled = UserBinaryDictionary.isEnabled(context);
             if (reloadMainDictionary) {
                 asyncReloadMainDictionary(context, newLocale, listener);
             }
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index b79b99e..6818c15 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -92,8 +92,8 @@
     /** Indicates whether a task for reloading the dictionary has been scheduled. */
     private final AtomicBoolean mIsReloading;
 
-    /** Indicates whether the current dictionary needs to be reloaded. */
-    private boolean mNeedsToReload;
+    /** Indicates whether the current dictionary needs to be recreated. */
+    private boolean mNeedsToRecreate;
 
     private final ReentrantReadWriteLock mLock;
 
@@ -107,20 +107,14 @@
      */
     protected abstract void loadInitialContentsLocked();
 
-    /**
-     * Indicates that the source dictionary contents have changed and a rebuild of the binary file
-     * is required. If it returns false, the next reload will only read the current binary
-     * dictionary from file.
-     */
-    protected abstract boolean haveContentsChanged();
-
     private boolean matchesExpectedBinaryDictFormatVersionForThisType(final int formatVersion) {
         return formatVersion == FormatSpec.VERSION4;
     }
 
     private boolean needsToMigrateDictionary(final int formatVersion) {
-        // TODO: Check version.
-        return false;
+        // When we bump up the dictionary format version, the old version should be added to here
+        // for supporting migration. Note that native code has to support reading such formats.
+        return formatVersion == FormatSpec.VERSION4_ONLY_FOR_TESTING;
     }
 
     public boolean isValidDictionaryLocked() {
@@ -147,7 +141,7 @@
         mDictFile = getDictFile(context, dictName, dictFile);
         mBinaryDictionary = null;
         mIsReloading = new AtomicBoolean();
-        mNeedsToReload = false;
+        mNeedsToRecreate = false;
         mLock = new ReentrantReadWriteLock();
     }
 
@@ -470,7 +464,10 @@
         }
         if (mBinaryDictionary.isValidDictionary()
                 && needsToMigrateDictionary(mBinaryDictionary.getFormatVersion())) {
-            mBinaryDictionary.migrateTo(DICTIONARY_FORMAT_VERSION);
+            if (!mBinaryDictionary.migrateTo(DICTIONARY_FORMAT_VERSION)) {
+                Log.e(TAG, "Dictionary migration failed: " + mDictName);
+                removeBinaryDictionaryLocked();
+            }
         }
     }
 
@@ -486,11 +483,11 @@
     }
 
     /**
-     * Marks that the dictionary needs to be reloaded.
+     * Marks that the dictionary needs to be recreated.
      *
      */
-    protected void setNeedsToReload() {
-        mNeedsToReload = true;
+    protected void setNeedsToRecreate() {
+        mNeedsToRecreate = true;
     }
 
     /**
@@ -508,7 +505,7 @@
      * Returns whether a dictionary reload is required.
      */
     private boolean isReloadRequired() {
-        return mBinaryDictionary == null || mNeedsToReload;
+        return mBinaryDictionary == null || mNeedsToRecreate;
     }
 
     /**
@@ -516,28 +513,28 @@
      */
     private final void asyncReloadDictionary() {
         if (mIsReloading.compareAndSet(false, true)) {
-            mNeedsToReload = false;
             asyncExecuteTaskWithWriteLock(new Runnable() {
                 @Override
                 public void run() {
                     try {
-                        if (!mDictFile.exists() || haveContentsChanged()) {
+                        if (!mDictFile.exists() || mNeedsToRecreate) {
                             // If the dictionary file does not exist or contents have been updated,
                             // generate a new one.
                             createNewDictionaryLocked();
                         } else if (mBinaryDictionary == null) {
                             // Otherwise, load the existing dictionary.
                             loadBinaryDictionaryLocked();
+                            if (mBinaryDictionary != null && !(isValidDictionaryLocked()
+                                    // TODO: remove the check below
+                                    && matchesExpectedBinaryDictFormatVersionForThisType(
+                                            mBinaryDictionary.getFormatVersion()))) {
+                                // Binary dictionary or its format version is not valid. Regenerate
+                                // the dictionary file. createNewDictionaryLocked will remove the
+                                // existing files if appropriate.
+                                createNewDictionaryLocked();
+                            }
                         }
-                        if (mBinaryDictionary != null && !(isValidDictionaryLocked()
-                                // TODO: remove the check below
-                                && matchesExpectedBinaryDictFormatVersionForThisType(
-                                        mBinaryDictionary.getFormatVersion()))) {
-                            // Binary dictionary or its format version is not valid. Regenerate
-                            // the dictionary file. writeBinaryDictionary will remove the
-                            // existing files if appropriate.
-                            createNewDictionaryLocked();
-                        }
+                        mNeedsToRecreate = false;
                     } finally {
                         mIsReloading.set(false);
                     }
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 27790d6..d64a1a6 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -55,7 +55,6 @@
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.accessibility.AccessibilityUtils;
-import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
 import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
@@ -1002,10 +1001,6 @@
         LatinImeLogger.commit();
         mKeyboardSwitcher.onHideWindow();
 
-        if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) {
-            AccessibleKeyboardViewProxy.getInstance().onHideWindow();
-        }
-
         if (TRACE) Debug.stopMethodTracing();
         if (isShowingOptionDialog()) {
             mOptionsDialog.dismiss();
@@ -1230,7 +1225,7 @@
     // TODO: Revise the language switch key behavior to make it much smarter and more reasonable.
     public void switchToNextSubtype() {
         final IBinder token = getWindow().getWindow().getAttributes().token;
-        if (mSettings.getCurrent().mIncludesOtherImesInLanguageSwitchList) {
+        if (shouldSwitchToOtherInputMethods()) {
             mRichImm.switchToNextInputMethod(token, false /* onlyCurrentIme */);
             return;
         }
@@ -1597,18 +1592,6 @@
     public void onReleaseKey(final int primaryCode, final boolean withSliding) {
         mKeyboardSwitcher.onReleaseKey(primaryCode, withSliding, getCurrentAutoCapsState(),
                 getCurrentRecapitalizeState());
-
-        // If accessibility is on, ensure the user receives keyboard state updates.
-        if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) {
-            switch (primaryCode) {
-            case Constants.CODE_SHIFT:
-                AccessibleKeyboardViewProxy.getInstance().notifyShiftState();
-                break;
-            case Constants.CODE_SWITCH_ALPHA_SYMBOL:
-                AccessibleKeyboardViewProxy.getInstance().notifySymbolsState();
-                break;
-            }
-        }
     }
 
     private HardwareEventDecoder getHardwareKeyEventDecoder(final int deviceId) {
@@ -1800,4 +1783,28 @@
         p.println(settingsValues.dump());
         // TODO: Dump all settings values
     }
+
+    public boolean shouldSwitchToOtherInputMethods() {
+        // TODO: Revisit here to reorganize the settings. Probably we can/should use different
+        // strategy once the implementation of
+        // {@link InputMethodManager#shouldOfferSwitchingToNextInputMethod} is defined well.
+        final boolean fallbackValue = mSettings.getCurrent().mIncludesOtherImesInLanguageSwitchList;
+        final IBinder token = getWindow().getWindow().getAttributes().token;
+        if (token == null) {
+            return fallbackValue;
+        }
+        return mRichImm.shouldOfferSwitchingToNextInputMethod(token, fallbackValue);
+    }
+
+    public boolean shouldShowLanguageSwitchKey() {
+        // TODO: Revisit here to reorganize the settings. Probably we can/should use different
+        // strategy once the implementation of
+        // {@link InputMethodManager#shouldOfferSwitchingToNextInputMethod} is defined well.
+        final boolean fallbackValue = mSettings.getCurrent().isLanguageSwitchKeyEnabled();
+        final IBinder token = getWindow().getWindow().getAttributes().token;
+        if (token == null) {
+            return fallbackValue;
+        }
+        return mRichImm.shouldOfferSwitchingToNextInputMethod(token, fallbackValue);
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
index 630a036..64cc562 100644
--- a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
+++ b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
@@ -20,6 +20,7 @@
 
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.os.Build;
 import android.os.IBinder;
 import android.preference.PreferenceManager;
 import android.util.Log;
@@ -406,4 +407,24 @@
         mSubtypeListCacheWithoutImplicitlySelectedSubtypes.clear();
         mInputMethodInfoCache.clear();
     }
+
+    public boolean shouldOfferSwitchingToNextInputMethod(final IBinder binder,
+            boolean defaultValue) {
+        // Use the default value instead on Jelly Bean MR2 and previous, where
+        // {@link InputMethodManager#shouldOfferSwitchingToNextInputMethod} isn't yet available.
+        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+            return defaultValue;
+        }
+        // Use the default value instead on KitKat as well, where
+        // {@link InputMethodManager#shouldOfferSwitchingToNextInputMethod} is still just a stub to
+        // return true always.
+        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
+            // Make sure this is actually KitKat.
+            // TODO: Consider to remove this check once the *next* version becomes available.
+            if (Build.VERSION.CODENAME.equals("REL")) {
+                return defaultValue;
+            }
+        }
+        return mImmWrapper.shouldOfferSwitchingToNextInputMethod(binder);
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 0211339..998a8b4 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -52,7 +52,6 @@
 
     private /* final */ RichInputMethodManager mRichImm;
     private /* final */ Resources mResources;
-    private /* final */ ConnectivityManager mConnectivityManager;
 
     private final LanguageOnSpacebarHelper mLanguageOnSpacebarHelper =
             new LanguageOnSpacebarHelper();
@@ -111,10 +110,10 @@
         }
         mResources = context.getResources();
         mRichImm = RichInputMethodManager.getInstance();
-        mConnectivityManager = (ConnectivityManager) context.getSystemService(
+        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(
                 Context.CONNECTIVITY_SERVICE);
 
-        final NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
+        final NetworkInfo info = connectivityManager.getActiveNetworkInfo();
         mIsNetworkConnected = (info != null && info.isConnected());
 
         onSubtypeChanged(getCurrentSubtype());
diff --git a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
index 0a9dae4..c8ffbe4 100644
--- a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
@@ -51,23 +51,15 @@
     // to auto-correct, so we set this to the highest frequency that won't, i.e. 14.
     private static final int USER_DICT_SHORTCUT_FREQUENCY = 14;
 
-    // TODO: use Words.SHORTCUT when we target JellyBean or above
-    final static String SHORTCUT = "shortcut";
-    private static final String[] PROJECTION_QUERY;
-    static {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
-            PROJECTION_QUERY = new String[] {
-                Words.WORD,
-                SHORTCUT,
-                Words.FREQUENCY,
-            };
-        } else {
-            PROJECTION_QUERY = new String[] {
-                Words.WORD,
-                Words.FREQUENCY,
-            };
-        }
-    }
+    private static final String[] PROJECTION_QUERY_WITH_SHORTCUT = new String[] {
+        Words.WORD,
+        Words.SHORTCUT,
+        Words.FREQUENCY,
+    };
+    private static final String[] PROJECTION_QUERY_WITHOUT_SHORTCUT = new String[] {
+        Words.WORD,
+        Words.FREQUENCY,
+    };
 
     private static final String NAME = "userunigram";
 
@@ -106,7 +98,7 @@
             // devices. On older versions of the platform, the hook above will be called instead.
             @Override
             public void onChange(final boolean self, final Uri uri) {
-                setNeedsToReload();
+                setNeedsToRecreate();
             }
         };
         cres.registerContentObserver(Words.CONTENT_URI, true, mObserver);
@@ -177,10 +169,29 @@
         } else {
             requestArguments = localeElements;
         }
+        final String requestString = request.toString();
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+            try {
+                addWordsFromProjectionLocked(PROJECTION_QUERY_WITH_SHORTCUT, requestString,
+                        requestArguments);
+            } catch (IllegalArgumentException e) {
+                // This may happen on some non-compliant devices where the declared API is JB+ but
+                // the SHORTCUT column is not present for some reason.
+                addWordsFromProjectionLocked(PROJECTION_QUERY_WITHOUT_SHORTCUT, requestString,
+                        requestArguments);
+            }
+        } else {
+            addWordsFromProjectionLocked(PROJECTION_QUERY_WITHOUT_SHORTCUT, requestString,
+                    requestArguments);
+        }
+    }
+
+    private void addWordsFromProjectionLocked(final String[] query, String request,
+            final String[] requestArguments) throws IllegalArgumentException {
         Cursor cursor = null;
         try {
             cursor = mContext.getContentResolver().query(
-                Words.CONTENT_URI, PROJECTION_QUERY, request.toString(), requestArguments, null);
+                    Words.CONTENT_URI, query, request, requestArguments, null);
             addWordsLocked(cursor);
         } catch (final SQLiteException e) {
             Log.e(TAG, "SQLiteException in the remote User dictionary process.", e);
@@ -237,7 +248,7 @@
         if (cursor == null) return;
         if (cursor.moveToFirst()) {
             final int indexWord = cursor.getColumnIndex(Words.WORD);
-            final int indexShortcut = hasShortcutColumn ? cursor.getColumnIndex(SHORTCUT) : 0;
+            final int indexShortcut = hasShortcutColumn ? cursor.getColumnIndex(Words.SHORTCUT) : 0;
             final int indexFrequency = cursor.getColumnIndex(Words.FREQUENCY);
             while (!cursor.isAfterLast()) {
                 final String word = cursor.getString(indexWord);
@@ -261,9 +272,4 @@
             }
         }
     }
-
-    @Override
-    protected boolean haveContentsChanged() {
-        return true;
-    }
 }
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index d2100d4..75432fb 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -784,11 +784,11 @@
             // TODO: remove this argument
             final LatinIME.UIHandler handler) {
         final int codePoint = inputTransaction.mEvent.mCodePoint;
+        final SettingsValues settingsValues = inputTransaction.mSettingsValues;
         boolean didAutoCorrect = false;
         // We avoid sending spaces in languages without spaces if we were composing.
         final boolean shouldAvoidSendingCode = Constants.CODE_SPACE == codePoint
-                && !inputTransaction.mSettingsValues.mSpacingAndPunctuations
-                        .mCurrentLanguageHasSpaces
+                && !settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces
                 && mWordComposer.isComposingWord();
         if (mWordComposer.isCursorFrontOrMiddleOfComposingWord()) {
             // If we are in the middle of a recorrection, we need to commit the recorrection
@@ -798,13 +798,13 @@
         }
         // isComposingWord() may have changed since we stored wasComposing
         if (mWordComposer.isComposingWord()) {
-            if (inputTransaction.mSettingsValues.mCorrectionEnabled) {
+            if (settingsValues.mCorrectionEnabled) {
                 final String separator = shouldAvoidSendingCode ? LastComposedWord.NOT_A_SEPARATOR
                         : StringUtils.newSingleCodePointString(codePoint);
-                commitCurrentAutoCorrection(inputTransaction.mSettingsValues, separator, handler);
+                commitCurrentAutoCorrection(settingsValues, separator, handler);
                 didAutoCorrect = true;
             } else {
-                commitTyped(inputTransaction.mSettingsValues,
+                commitTyped(settingsValues,
                         StringUtils.newSingleCodePointString(codePoint));
             }
         }
@@ -821,20 +821,23 @@
             // Double quotes behave like they are usually preceded by space iff we are
             // not inside a double quote or after a digit.
             needsPrecedingSpace = !isInsideDoubleQuoteOrAfterDigit;
+        } else if (settingsValues.mSpacingAndPunctuations.isClusteringSymbol(codePoint)
+                && settingsValues.mSpacingAndPunctuations.isClusteringSymbol(
+                        mConnection.getCodePointBeforeCursor())) {
+            needsPrecedingSpace = false;
         } else {
-            needsPrecedingSpace = inputTransaction.mSettingsValues.isUsuallyPrecededBySpace(
-                    codePoint);
+            needsPrecedingSpace = settingsValues.isUsuallyPrecededBySpace(codePoint);
         }
 
         if (needsPrecedingSpace) {
-            promotePhantomSpace(inputTransaction.mSettingsValues);
+            promotePhantomSpace(settingsValues);
         }
         if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
             ResearchLogger.latinIME_handleSeparator(codePoint, mWordComposer.isComposingWord());
         }
 
         if (!shouldAvoidSendingCode) {
-            sendKeyCodePoint(inputTransaction.mSettingsValues, codePoint);
+            sendKeyCodePoint(settingsValues, codePoint);
         }
 
         if (Constants.CODE_SPACE == codePoint) {
@@ -852,7 +855,7 @@
                 swapSwapperAndSpace(inputTransaction);
                 mSpaceState = SpaceState.SWAP_PUNCTUATION;
             } else if ((SpaceState.PHANTOM == inputTransaction.mSpaceState
-                    && inputTransaction.mSettingsValues.isUsuallyFollowedBySpace(codePoint))
+                    && settingsValues.isUsuallyFollowedBySpace(codePoint))
                     || (Constants.CODE_DOUBLE_QUOTE == codePoint
                             && isInsideDoubleQuoteOrAfterDigit)) {
                 // If we are in phantom space state, and the user presses a separator, we want to
diff --git a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java
index f255034..613ff2b 100644
--- a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java
+++ b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java
@@ -186,7 +186,12 @@
     // From version 4 on, we use version * 100 + revision as a version number. That allows
     // us to change the format during development while having testing devices remove
     // older files with each upgrade, while still having a readable versioning scheme.
+    // When we bump up the dictionary format version, we should update
+    // ExpandableDictionary.needsToMigrateDictionary() and
+    // ExpandableDictionary.matchesExpectedBinaryDictFormatVersionForThisType().
     public static final int VERSION2 = 2;
+    // Dictionary version used for testing.
+    public static final int VERSION4_ONLY_FOR_TESTING = 399;
     public static final int VERSION4 = 401;
     static final int MINIMUM_SUPPORTED_VERSION = VERSION2;
     static final int MAXIMUM_SUPPORTED_VERSION = VERSION4;
diff --git a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
index 38c28a7..06bdba0 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
@@ -74,11 +74,6 @@
     }
 
     @Override
-    protected boolean haveContentsChanged() {
-        return false;
-    }
-
-    @Override
     protected void loadInitialContentsLocked() {
         // No initial contents.
     }
diff --git a/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java b/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java
index de2744f..221bb9a 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java
@@ -61,6 +61,7 @@
         final String action = intent.getAction();
         if (action.equals(DICTIONARY_DECAY_INTENT_ACTION)) {
             PersonalizationHelper.runGCOnAllOpenedUserHistoryDictionaries();
+            PersonalizationHelper.runGCOnAllOpenedPersonalizationDictionaries();
         }
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
index 7c43182..afacd08 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
@@ -16,7 +16,6 @@
 
 package com.android.inputmethod.latin.personalization;
 
-import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.utils.CollectionUtils;
 import com.android.inputmethod.latin.utils.FileUtils;
 
@@ -66,8 +65,8 @@
         if (TimeUnit.MILLISECONDS.toSeconds(
                 DictionaryDecayBroadcastReciever.DICTIONARY_DECAY_INTERVAL)
                         < currentTimestamp - sCurrentTimestampForTesting) {
-            // TODO: Run GC for both PersonalizationDictionary and UserHistoryDictionary.
             runGCOnAllOpenedUserHistoryDictionaries();
+            runGCOnAllOpenedPersonalizationDictionaries();
         }
     }
 
@@ -75,7 +74,6 @@
         runGCOnAllDictionariesIfRequired(sLangUserHistoryDictCache);
     }
 
-    @UsedForTesting
     public static void runGCOnAllOpenedPersonalizationDictionaries() {
         runGCOnAllDictionariesIfRequired(sLangPersonalizationDictCache);
     }
diff --git a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
index 11d3692..c4c1234 100644
--- a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
+++ b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
@@ -55,6 +55,8 @@
     private static final String PREF_DUMP_USER_DICT = "dump_user_dict";
     private static final String PREF_DUMP_USER_HISTORY_DICT = "dump_user_history_dict";
     private static final String PREF_DUMP_PERSONALIZATION_DICT = "dump_personalization_dict";
+    public static final String PREF_SLIDING_KEY_INPUT_PREVIEW = "pref_sliding_key_input_preview";
+    public static final String PREF_KEY_LONGPRESS_TIMEOUT = "pref_key_longpress_timeout";
 
     private static final boolean SHOW_STATISTICS_LOGGING = false;
 
@@ -110,6 +112,7 @@
         findPreference(PREF_DUMP_PERSONALIZATION_DICT).setOnPreferenceClickListener(
                 dictDumpPrefClickListener);
         final Resources res = getResources();
+        setupKeyLongpressTimeoutSettings(prefs, res);
         setupKeyPreviewAnimationDuration(prefs, res, PREF_KEY_PREVIEW_SHOW_UP_DURATION,
                 res.getInteger(R.integer.config_key_preview_show_up_duration));
         setupKeyPreviewAnimationDuration(prefs, res, PREF_KEY_PREVIEW_DISMISS_DURATION,
@@ -200,6 +203,44 @@
         }
     }
 
+    private void setupKeyLongpressTimeoutSettings(final SharedPreferences sp,
+            final Resources res) {
+        final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(
+                PREF_KEY_LONGPRESS_TIMEOUT);
+        if (pref == null) {
+            return;
+        }
+        pref.setInterface(new SeekBarDialogPreference.ValueProxy() {
+            @Override
+            public void writeValue(final int value, final String key) {
+                sp.edit().putInt(key, value).apply();
+            }
+
+            @Override
+            public void writeDefaultValue(final String key) {
+                sp.edit().remove(key).apply();
+            }
+
+            @Override
+            public int readValue(final String key) {
+                return Settings.readKeyLongpressTimeout(sp, res);
+            }
+
+            @Override
+            public int readDefaultValue(final String key) {
+                return Settings.readDefaultKeyLongpressTimeout(res);
+            }
+
+            @Override
+            public String getValueText(final int value) {
+                return res.getString(R.string.abbreviation_unit_milliseconds, value);
+            }
+
+            @Override
+            public void feedbackValue(final int value) {}
+        });
+    }
+
     private void setupKeyPreviewAnimationScale(final SharedPreferences sp, final Resources res,
             final String prefKey, final float defaultValue) {
         final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(prefKey);
diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java
index 353b746..4e4c888 100644
--- a/java/src/com/android/inputmethod/latin/settings/Settings.java
+++ b/java/src/com/android/inputmethod/latin/settings/Settings.java
@@ -64,7 +64,7 @@
             "pref_show_language_switch_key";
     public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST =
             "pref_include_other_imes_in_language_switch_list";
-    public static final String PREF_KEYBOARD_LAYOUT = "pref_keyboard_layout_20110916";
+    public static final String PREF_KEYBOARD_THEME = "pref_keyboard_theme";
     public static final String PREF_CUSTOM_INPUT_STYLES = "custom_input_styles";
     // TODO: consolidate key preview dismiss delay with the key preview animation parameters.
     public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY =
@@ -72,8 +72,6 @@
     public static final String PREF_BIGRAM_PREDICTIONS = "next_word_prediction";
     public static final String PREF_GESTURE_SETTINGS = "gesture_typing_settings";
     public static final String PREF_GESTURE_INPUT = "gesture_input";
-    public static final String PREF_SLIDING_KEY_INPUT_PREVIEW = "pref_sliding_key_input_preview";
-    public static final String PREF_KEY_LONGPRESS_TIMEOUT = "pref_key_longpress_timeout";
     public static final String PREF_VIBRATION_DURATION_SETTINGS =
             "pref_vibration_duration_settings";
     public static final String PREF_KEYPRESS_SOUND_VOLUME =
@@ -196,7 +194,7 @@
     // Accessed from the settings interface, hence public
     public static boolean readKeypressSoundEnabled(final SharedPreferences prefs,
             final Resources res) {
-        return prefs.getBoolean(Settings.PREF_SOUND_ON,
+        return prefs.getBoolean(PREF_SOUND_ON,
                 res.getBoolean(R.bool.config_default_sound_enabled));
     }
 
@@ -216,7 +214,7 @@
 
     public static boolean readBlockPotentiallyOffensive(final SharedPreferences prefs,
             final Resources res) {
-        return prefs.getBoolean(Settings.PREF_BLOCK_POTENTIALLY_OFFENSIVE,
+        return prefs.getBoolean(PREF_BLOCK_POTENTIALLY_OFFENSIVE,
                 res.getBoolean(R.bool.config_block_potentially_offensive));
     }
 
@@ -227,12 +225,12 @@
     public static boolean readGestureInputEnabled(final SharedPreferences prefs,
             final Resources res) {
         return readFromBuildConfigIfGestureInputEnabled(res)
-                && prefs.getBoolean(Settings.PREF_GESTURE_INPUT, true);
+                && prefs.getBoolean(PREF_GESTURE_INPUT, true);
     }
 
     public static boolean readPhraseGestureEnabled(final SharedPreferences prefs,
             final Resources res) {
-        return prefs.getBoolean(Settings.PREF_PHRASE_GESTURE_ENABLED,
+        return prefs.getBoolean(PREF_PHRASE_GESTURE_ENABLED,
                 res.getBoolean(R.bool.config_default_phrase_gesture_enabled));
     }
 
@@ -278,7 +276,7 @@
 
     public static void writePrefAdditionalSubtypes(final SharedPreferences prefs,
             final String prefSubtypes) {
-        prefs.edit().putString(Settings.PREF_CUSTOM_INPUT_STYLES, prefSubtypes).apply();
+        prefs.edit().putString(PREF_CUSTOM_INPUT_STYLES, prefSubtypes).apply();
     }
 
     public static float readKeypressSoundVolume(final SharedPreferences prefs,
@@ -301,7 +299,7 @@
     public static int readKeyLongpressTimeout(final SharedPreferences prefs,
             final Resources res) {
         final int milliseconds = prefs.getInt(
-                PREF_KEY_LONGPRESS_TIMEOUT, UNDEFINED_PREFERENCE_VALUE_INT);
+                DebugSettings.PREF_KEY_LONGPRESS_TIMEOUT, UNDEFINED_PREFERENCE_VALUE_INT);
         return (milliseconds != UNDEFINED_PREFERENCE_VALUE_INT) ? milliseconds
                 : readDefaultKeyLongpressTimeout(res);
     }
@@ -354,18 +352,18 @@
         if (!enableSetupWizardByConfig) {
             return false;
         }
-        if (!prefs.contains(Settings.PREF_SHOW_SETUP_WIZARD_ICON)) {
+        if (!prefs.contains(PREF_SHOW_SETUP_WIZARD_ICON)) {
             final ApplicationInfo appInfo = context.getApplicationInfo();
             final boolean isApplicationInSystemImage =
                     (appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
             // Default value
             return !isApplicationInSystemImage;
         }
-        return prefs.getBoolean(Settings.PREF_SHOW_SETUP_WIZARD_ICON, false);
+        return prefs.getBoolean(PREF_SHOW_SETUP_WIZARD_ICON, false);
     }
 
     public static boolean isInternal(final SharedPreferences prefs) {
-        return prefs.getBoolean(Settings.PREF_KEY_IS_INTERNAL, false);
+        return prefs.getBoolean(PREF_KEY_IS_INTERNAL, false);
     }
 
     public void writeLastUsedPersonalizationToken(byte[] token) {
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
index bb5547f..e1d38e7 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
@@ -37,6 +37,7 @@
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.dictionarypack.DictionarySettingsActivity;
+import com.android.inputmethod.keyboard.KeyboardTheme;
 import com.android.inputmethod.latin.AudioAndHapticFeedbackManager;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.SubtypeSwitcher;
@@ -228,7 +229,6 @@
 
         AdditionalFeaturesSettingUtils.addAdditionalFeaturesPreferences(context, this);
 
-        setupKeyLongpressTimeoutSettings(prefs, res);
         setupKeypressVibrationDurationSettings(prefs, res);
         setupKeypressSoundVolumeSettings(prefs, res);
         refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, res);
@@ -254,11 +254,31 @@
         }
         updateListPreferenceSummaryToCurrentValue(Settings.PREF_SHOW_SUGGESTIONS_SETTING);
         updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY);
-        updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEYBOARD_LAYOUT);
+        final ListPreference keyboardThemePref = (ListPreference)findPreference(
+                Settings.PREF_KEYBOARD_THEME);
+        if (keyboardThemePref != null) {
+            final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(prefs);
+            final String value = Integer.toString(keyboardTheme.mThemeId);
+            final CharSequence entries[] = keyboardThemePref.getEntries();
+            final int entryIndex = keyboardThemePref.findIndexOfValue(value);
+            keyboardThemePref.setSummary(entryIndex < 0 ? null : entries[entryIndex]);
+            keyboardThemePref.setValue(value);
+        }
         updateCustomInputStylesSummary(prefs, res);
     }
 
     @Override
+    public void onPause() {
+        super.onPause();
+        final SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
+        final ListPreference keyboardThemePref = (ListPreference)findPreference(
+                Settings.PREF_KEYBOARD_THEME);
+        if (keyboardThemePref != null) {
+            KeyboardTheme.saveKeyboardThemeId(keyboardThemePref.getValue(), prefs);
+        }
+    }
+
+    @Override
     public void onDestroy() {
         getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(
                 this);
@@ -288,7 +308,7 @@
         ensureConsistencyOfAutoCorrectionSettings();
         updateListPreferenceSummaryToCurrentValue(Settings.PREF_SHOW_SUGGESTIONS_SETTING);
         updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY);
-        updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEYBOARD_LAYOUT);
+        updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEYBOARD_THEME);
         refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources());
     }
 
@@ -368,44 +388,6 @@
         });
     }
 
-    private void setupKeyLongpressTimeoutSettings(final SharedPreferences sp,
-            final Resources res) {
-        final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(
-                Settings.PREF_KEY_LONGPRESS_TIMEOUT);
-        if (pref == null) {
-            return;
-        }
-        pref.setInterface(new SeekBarDialogPreference.ValueProxy() {
-            @Override
-            public void writeValue(final int value, final String key) {
-                sp.edit().putInt(key, value).apply();
-            }
-
-            @Override
-            public void writeDefaultValue(final String key) {
-                sp.edit().remove(key).apply();
-            }
-
-            @Override
-            public int readValue(final String key) {
-                return Settings.readKeyLongpressTimeout(sp, res);
-            }
-
-            @Override
-            public int readDefaultValue(final String key) {
-                return Settings.readDefaultKeyLongpressTimeout(res);
-            }
-
-            @Override
-            public String getValueText(final int value) {
-                return res.getString(R.string.abbreviation_unit_milliseconds, value);
-            }
-
-            @Override
-            public void feedbackValue(final int value) {}
-        });
-    }
-
     private void setupKeypressSoundVolumeSettings(final SharedPreferences sp, final Resources res) {
         final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(
                 Settings.PREF_KEYPRESS_SOUND_VOLUME);
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
index d47a61e..dde50cc 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
@@ -119,7 +119,7 @@
         mSoundOn = Settings.readKeypressSoundEnabled(prefs, res);
         mKeyPreviewPopupOn = Settings.readKeyPreviewPopupEnabled(prefs, res);
         mSlidingKeyInputPreviewEnabled = prefs.getBoolean(
-                Settings.PREF_SLIDING_KEY_INPUT_PREVIEW, true);
+                DebugSettings.PREF_SLIDING_KEY_INPUT_PREVIEW, true);
         mShowsVoiceInputKey = needsToShowVoiceInputKey(prefs, res);
         final String autoCorrectionThresholdRawValue = prefs.getString(
                 Settings.PREF_AUTO_CORRECTION_THRESHOLD,
diff --git a/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java b/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java
index 796921f..b8d2a22 100644
--- a/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java
+++ b/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java
@@ -30,6 +30,7 @@
 public final class SpacingAndPunctuations {
     private final int[] mSortedSymbolsPrecededBySpace;
     private final int[] mSortedSymbolsFollowedBySpace;
+    private final int[] mSortedSymbolsClusteringTogether;
     private final int[] mSortedWordConnectors;
     public final int[] mSortedWordSeparators;
     public final PunctuationSuggestions mSuggestPuncList;
@@ -46,6 +47,8 @@
         // To be able to binary search the code point. See {@link #isUsuallyFollowedBySpace(int)}.
         mSortedSymbolsFollowedBySpace = StringUtils.toSortedCodePointArray(
                 res.getString(R.string.symbols_followed_by_space));
+        mSortedSymbolsClusteringTogether = StringUtils.toSortedCodePointArray(
+                res.getString(R.string.symbols_clustering_together));
         // To be able to binary search the code point. See {@link #isWordConnector(int)}.
         mSortedWordConnectors = StringUtils.toSortedCodePointArray(
                 res.getString(R.string.symbols_word_connectors));
@@ -85,6 +88,10 @@
         return Arrays.binarySearch(mSortedSymbolsFollowedBySpace, code) >= 0;
     }
 
+    public boolean isClusteringSymbol(final int code) {
+        return Arrays.binarySearch(mSortedSymbolsClusteringTogether, code) >= 0;
+    }
+
     public boolean isSentenceSeparator(final int code) {
         return code == mSentenceSeparator;
     }
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
index a104baa..5a325ea 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
@@ -74,7 +74,13 @@
             int rowStartIndex = fromIndex;
             final int size = Math.min(suggestedWords.size(), SuggestedWords.MAX_SUGGESTIONS);
             while (index < size) {
-                final String word = suggestedWords.getLabel(index);
+                final String word;
+                if (isIndexSubjectToAutoCorrection(suggestedWords, index)) {
+                    // INDEX_OF_AUTO_CORRECTION and INDEX_OF_TYPED_WORD got swapped.
+                    word = suggestedWords.getLabel(SuggestedWords.INDEX_OF_TYPED_WORD);
+                } else {
+                    word = suggestedWords.getLabel(index);
+                }
                 // TODO: Should take care of text x-scaling.
                 mWidths[index] = (int)(TypefaceUtils.getStringWidth(word, paint) + padding);
                 final int numColumn = index - rowStartIndex + 1;
@@ -172,6 +178,11 @@
         }
     }
 
+    private static boolean isIndexSubjectToAutoCorrection(final SuggestedWords suggestedWords,
+            final int index) {
+        return suggestedWords.mWillAutoCorrect && index == SuggestedWords.INDEX_OF_AUTO_CORRECTION;
+    }
+
     public static final class Builder extends KeyboardBuilder<MoreSuggestionsParam> {
         private final MoreSuggestionsView mPaneView;
         private SuggestedWords mSuggestedWords;
@@ -189,7 +200,6 @@
             final int xmlId = R.xml.kbd_suggestions_pane_template;
             load(xmlId, parentKeyboard.mId);
             mParams.mVerticalGap = mParams.mTopPadding = parentKeyboard.mVerticalGap / 2;
-
             mPaneView.updateKeyboardGeometry(mParams.mDefaultRowHeight);
             final int count = mParams.layout(suggestedWords, fromIndex, maxWidth, minWidth, maxRow,
                     mPaneView.newLabelPaint(null /* key */), mResources);
@@ -206,8 +216,16 @@
                 final int x = params.getX(index);
                 final int y = params.getY(index);
                 final int width = params.getWidth(index);
-                final String word = mSuggestedWords.getLabel(index);
-                final String info = mSuggestedWords.getDebugString(index);
+                final String word;
+                final String info;
+                if (isIndexSubjectToAutoCorrection(mSuggestedWords, index)) {
+                    // INDEX_OF_AUTO_CORRECTION and INDEX_OF_TYPED_WORD got swapped.
+                    word = mSuggestedWords.getLabel(SuggestedWords.INDEX_OF_TYPED_WORD);
+                    info = mSuggestedWords.getDebugString(SuggestedWords.INDEX_OF_TYPED_WORD);
+                } else {
+                    word = mSuggestedWords.getLabel(index);
+                    info = mSuggestedWords.getDebugString(index);
+                }
                 final int indexInMoreSuggestions = index + SUGGESTION_CODE_BASE;
                 final Key key = new Key(word, KeyboardIconsSet.ICON_UNDEFINED,
                         indexInMoreSuggestions, null /* outputText */, info, 0 /* labelFlags */,
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
index 1d84bb5..8bfa63c 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
@@ -309,9 +309,8 @@
 
         setupWordViewsTextAndColor(suggestedWords, mSuggestionsCountInStrip);
         final TextView centerWordView = mWordViews.get(mCenterPositionInStrip);
-        final int availableStripWidth = placerView.getWidth()
-                - placerView.getPaddingRight() - placerView.getPaddingLeft();
-        final int centerWidth = getSuggestionWidth(mCenterPositionInStrip, availableStripWidth);
+        final int stripWidth = stripView.getWidth();
+        final int centerWidth = getSuggestionWidth(mCenterPositionInStrip, stripWidth);
         final int countInStrip;
         if (suggestedWords.size() == 1 || getTextScaleX(centerWordView.getText(), centerWidth,
                 centerWordView.getPaint()) < MIN_TEXT_XSCALE) {
@@ -319,11 +318,11 @@
             // by consolidating all slots in the strip.
             countInStrip = 1;
             mMoreSuggestionsAvailable = (suggestedWords.size() > countInStrip);
-            layoutWord(mCenterPositionInStrip, availableStripWidth - mPadding);
+            layoutWord(mCenterPositionInStrip, stripWidth - mPadding);
             stripView.addView(centerWordView);
             setLayoutWeight(centerWordView, 1.0f, ViewGroup.LayoutParams.MATCH_PARENT);
             if (SuggestionStripView.DBG) {
-                layoutDebugInfo(mCenterPositionInStrip, placerView, availableStripWidth);
+                layoutDebugInfo(mCenterPositionInStrip, placerView, stripWidth);
             }
         } else {
             countInStrip = mSuggestionsCountInStrip;
@@ -337,7 +336,7 @@
                     x += divider.getMeasuredWidth();
                 }
 
-                final int width = getSuggestionWidth(positionInStrip, availableStripWidth);
+                final int width = getSuggestionWidth(positionInStrip, stripWidth);
                 final TextView wordView = layoutWord(positionInStrip, width);
                 stripView.addView(wordView);
                 setLayoutWeight(wordView, getSuggestionWeight(positionInStrip),
@@ -474,8 +473,8 @@
         return countInStrip;
     }
 
-    public void layoutAddToDictionaryHint(final String word, final ViewGroup addToDictionaryStrip,
-            final int stripWidth) {
+    public void layoutAddToDictionaryHint(final String word, final ViewGroup addToDictionaryStrip) {
+        final int stripWidth = addToDictionaryStrip.getWidth();
         final int width = stripWidth - mDividerWidth - mPadding * 2;
 
         final TextView wordView = (TextView)addToDictionaryStrip.findViewById(R.id.word_to_save);
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
index a0793b1..a578fa4 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -209,7 +209,7 @@
     }
 
     public void showAddToDictionaryHint(final String word) {
-        mLayoutHelper.layoutAddToDictionaryHint(word, mAddToDictionaryStrip, getWidth());
+        mLayoutHelper.layoutAddToDictionaryHint(word, mAddToDictionaryStrip);
         // {@link TextView#setTag()} is used to hold the word to be added to dictionary. The word
         // will be extracted at {@link #onClick(View)}.
         mAddToDictionaryStrip.setTag(word);
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
index f2a1e52..48e43d6 100644
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
+++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
@@ -40,7 +40,7 @@
         mKeyboard = keyboard;
     }
 
-    public boolean isDistractorToWordsInDictionaries(final String prevWord,
+    public boolean isDistracterToWordsInDictionaries(final String prevWord,
             final String targetWord) {
         // TODO: to be implemented
         return false;
diff --git a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
index 5ce977d..55061f4 100644
--- a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
+++ b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
@@ -80,7 +80,8 @@
     public static ArrayList<LanguageModelParam> createLanguageModelParamsFrom(
             final ArrayList<String> tokens, final int timestamp,
             final DictionaryFacilitatorForSuggest dictionaryFacilitator,
-            final SpacingAndPunctuations spacingAndPunctuations) {
+            final SpacingAndPunctuations spacingAndPunctuations,
+            final DistracterFilter distracterFilter) {
         final ArrayList<LanguageModelParam> languageModelParams =
                 CollectionUtils.newArrayList();
         final int N = tokens.size();
@@ -109,7 +110,8 @@
             }
             final LanguageModelParam languageModelParam =
                     detectWhetherVaildWordOrNotAndGetLanguageModelParam(
-                            prevWord, tempWord, timestamp, dictionaryFacilitator);
+                            prevWord, tempWord, timestamp, dictionaryFacilitator,
+                            distracterFilter);
             if (languageModelParam == null) {
                 continue;
             }
@@ -121,27 +123,33 @@
 
     private static LanguageModelParam detectWhetherVaildWordOrNotAndGetLanguageModelParam(
             final String prevWord, final String targetWord, final int timestamp,
-            final DictionaryFacilitatorForSuggest dictionaryFacilitator) {
+            final DictionaryFacilitatorForSuggest dictionaryFacilitator,
+            final DistracterFilter distracterFilter) {
         final Locale locale = dictionaryFacilitator.getLocale();
         if (locale == null) {
             return null;
         }
-        if (!dictionaryFacilitator.isValidWord(targetWord, true /* ignoreCase */)) {
-            // OOV word.
-            return createAndGetLanguageModelParamOfWord(prevWord, targetWord, timestamp,
-                    false /* isValidWord */, locale);
-        }
         if (dictionaryFacilitator.isValidWord(targetWord, false /* ignoreCase */)) {
             return createAndGetLanguageModelParamOfWord(prevWord, targetWord, timestamp,
                     true /* isValidWord */, locale);
         }
+
         final String lowerCaseTargetWord = targetWord.toLowerCase(locale);
         if (dictionaryFacilitator.isValidWord(lowerCaseTargetWord, false /* ignoreCase */)) {
             // Add the lower-cased word.
             return createAndGetLanguageModelParamOfWord(prevWord, lowerCaseTargetWord,
                     timestamp, true /* isValidWord */, locale);
         }
-        // Treat the word as an OOV word.
+
+        // Treat the word as an OOV word. The following statement checks whether this OOV
+        // is a distracter to words in dictionaries. Being a distracter means the OOV word is
+        // too close to a common word in dictionaries (e.g., the OOV "mot" is very close to "not").
+        // Adding such a word to dictonaries would interfere with entering in-dictionary words. For
+        // example, adding "mot" to dictionaries might interfere with entering "not".
+        // This kind of OOV should be filtered out.
+        if (distracterFilter.isDistracterToWordsInDictionaries(prevWord, targetWord)) {
+            return null;
+        }
         return createAndGetLanguageModelParamOfWord(prevWord, targetWord, timestamp,
                 false /* isValidWord */, locale);
     }
diff --git a/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java b/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java
index a23b3ac..bf38abc 100644
--- a/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java
+++ b/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java
@@ -16,6 +16,8 @@
 
 package com.android.inputmethod.latin.utils;
 
+import com.android.inputmethod.annotations.UsedForTesting;
+
 import java.util.Queue;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -74,6 +76,7 @@
      * Enqueues the given task into the prioritized task queue.
      * @param r the enqueued task
      */
+    @UsedForTesting
     public void executePrioritized(final Runnable r) {
         synchronized(mLock) {
             if (!mIsShutdown) {
diff --git a/native/jni/NativeFileList.mk b/native/jni/NativeFileList.mk
index 70a6638..34c1907 100644
--- a/native/jni/NativeFileList.mk
+++ b/native/jni/NativeFileList.mk
@@ -56,10 +56,10 @@
         dynamic_pt_reading_helper.cpp \
         dynamic_pt_reading_utils.cpp \
         dynamic_pt_updating_helper.cpp \
-        dynamic_pt_writing_utils.cpp) \
+        dynamic_pt_writing_utils.cpp \
+        patricia_trie_reading_utils.cpp) \
     $(addprefix suggest/policyimpl/dictionary/structure/v2/, \
         patricia_trie_policy.cpp \
-        patricia_trie_reading_utils.cpp \
         ver2_patricia_trie_node_reader.cpp \
         ver2_pt_node_array_reader.cpp) \
     $(addprefix suggest/policyimpl/dictionary/structure/v4/, \
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 9016cae..3ac424f 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -32,6 +32,7 @@
 #include "suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
 #include "utils/char_utils.h"
 #include "utils/jni_data_utils.h"
+#include "utils/log_utils.h"
 #include "utils/time_keeper.h"
 
 namespace latinime {
@@ -489,6 +490,87 @@
     return dictionary->getDictionaryStructurePolicy()->isCorrupted();
 }
 
+static DictionaryStructureWithBufferPolicy::StructurePolicyPtr runGCAndGetNewStructurePolicy(
+        DictionaryStructureWithBufferPolicy::StructurePolicyPtr structurePolicy,
+        const char *const dictFilePath) {
+    structurePolicy->flushWithGC(dictFilePath);
+    structurePolicy.release();
+    return DictionaryStructureWithBufferPolicyFactory::newPolicyForExistingDictFile(
+            dictFilePath, 0 /* offset */, 0 /* size */, true /* isUpdatable */);
+}
+
+static bool latinime_BinaryDictionary_migrateNative(JNIEnv *env, jclass clazz, jlong dict,
+        jstring dictFilePath, jlong newFormatVersion) {
+    Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
+    if (!dictionary) {
+        return false;
+    }
+    const jsize filePathUtf8Length = env->GetStringUTFLength(dictFilePath);
+    char dictFilePathChars[filePathUtf8Length + 1];
+    env->GetStringUTFRegion(dictFilePath, 0, env->GetStringLength(dictFilePath), dictFilePathChars);
+    dictFilePathChars[filePathUtf8Length] = '\0';
+
+    const DictionaryHeaderStructurePolicy *const headerPolicy =
+            dictionary->getDictionaryStructurePolicy()->getHeaderStructurePolicy();
+    DictionaryStructureWithBufferPolicy::StructurePolicyPtr dictionaryStructureWithBufferPolicy =
+            DictionaryStructureWithBufferPolicyFactory::newPolicyForOnMemoryDict(
+                    newFormatVersion, *headerPolicy->getLocale(), headerPolicy->getAttributeMap());
+    if (!dictionaryStructureWithBufferPolicy) {
+        LogUtils::logToJava(env, "Cannot migrate header.");
+        return false;
+    }
+
+    // TODO: Migrate historical information.
+    int wordCodePoints[MAX_WORD_LENGTH];
+    int token = 0;
+    // Add unigrams.
+    do {
+        token = dictionary->getNextWordAndNextToken(token, wordCodePoints);
+        const int wordLength = CharUtils::getCodePointCount(MAX_WORD_LENGTH, wordCodePoints);
+        const WordProperty wordProperty = dictionary->getWordProperty(wordCodePoints, wordLength);
+        if (dictionaryStructureWithBufferPolicy->needsToRunGC(true /* mindsBlockByGC */)) {
+            dictionaryStructureWithBufferPolicy = runGCAndGetNewStructurePolicy(
+                    std::move(dictionaryStructureWithBufferPolicy), dictFilePathChars);
+            if (!dictionaryStructureWithBufferPolicy) {
+                LogUtils::logToJava(env, "Cannot open dict after GC.");
+                return false;
+            }
+        }
+        if (!dictionaryStructureWithBufferPolicy->addUnigramWord(wordCodePoints, wordLength,
+                wordProperty.getUnigramProperty())) {
+            LogUtils::logToJava(env, "Cannot add unigram to the new dict.");
+            return false;
+        }
+    } while (token != 0);
+
+    // Add bigrams.
+    do {
+        token = dictionary->getNextWordAndNextToken(token, wordCodePoints);
+        const int wordLength = CharUtils::getCodePointCount(MAX_WORD_LENGTH, wordCodePoints);
+        const WordProperty wordProperty = dictionary->getWordProperty(wordCodePoints, wordLength);
+        if (dictionaryStructureWithBufferPolicy->needsToRunGC(true /* mindsBlockByGC */)) {
+            dictionaryStructureWithBufferPolicy = runGCAndGetNewStructurePolicy(
+                    std::move(dictionaryStructureWithBufferPolicy), dictFilePathChars);
+            if (!dictionaryStructureWithBufferPolicy) {
+                LogUtils::logToJava(env, "Cannot open dict after GC.");
+                return false;
+            }
+        }
+        for (const BigramProperty &bigarmProperty : *wordProperty.getBigramProperties()) {
+            const std::vector<int> *targetCodePoints = bigarmProperty.getTargetCodePoints();
+            if (!dictionaryStructureWithBufferPolicy->addBigramWords(wordCodePoints, wordLength,
+                    targetCodePoints->data(), targetCodePoints->size(),
+                    bigarmProperty.getProbability(), bigarmProperty.getTimestamp())) {
+                LogUtils::logToJava(env, "Cannot add bigram to the new dict.");
+                return false;
+            }
+        }
+    } while (token != 0);
+    // Save to File.
+    dictionaryStructureWithBufferPolicy->flushWithGC(dictFilePathChars);
+    return true;
+}
+
 static const JNINativeMethod sMethods[] = {
     {
         const_cast<char *>("openNative"),
@@ -591,6 +673,11 @@
         const_cast<char *>("isCorruptedNative"),
         const_cast<char *>("(J)Z"),
         reinterpret_cast<void *>(latinime_BinaryDictionary_isCorruptedNative)
+    },
+    {
+        const_cast<char *>("migrateNative"),
+        const_cast<char *>("(JLjava/lang/String;J)Z"),
+        reinterpret_cast<void *>(latinime_BinaryDictionary_migrateNative)
     }
 };
 
diff --git a/native/jni/src/defines.h b/native/jni/src/defines.h
index 3becc79..a80c975 100644
--- a/native/jni/src/defines.h
+++ b/native/jni/src/defines.h
@@ -293,13 +293,6 @@
 #define M_PI_F 3.14159265f
 #define MAX_PERCENTILE 100
 
-// Number of base-10 digits in the largest integer + 1 to leave room for a zero terminator.
-// As such, this is the maximum number of characters will be needed to represent an int as a
-// string, including the terminator; this is used as the size of a string buffer large enough to
-// hold any value that is intended to fit in an integer, e.g. in the code that reads the header
-// of the binary dictionary where a {key,value} string pair scheme is used.
-#define LARGEST_INT_DIGIT_COUNT 11
-
 #define NOT_A_CODE_POINT (-1)
 #define NOT_A_DISTANCE (-1)
 #define NOT_A_COORDINATE (-1)
@@ -325,14 +318,13 @@
 #define KEYCODE_SPACE ' '
 #define KEYCODE_SINGLE_QUOTE '\''
 #define KEYCODE_HYPHEN_MINUS '-'
+// Code point to indicate beginning-of-sentence. This is not in the code point space of unicode.
+#define CODE_POINT_BEGINNING_OF_SENTENCE 0x110000
 
 #define SUGGEST_INTERFACE_OUTPUT_SCALE 1000000.0f
 #define MAX_PROBABILITY 255
 #define MAX_BIGRAM_ENCODED_PROBABILITY 15
 
-// Assuming locale strings such as en_US, sr-Latn etc.
-#define MAX_LOCALE_STRING_LENGTH 10
-
 // Max value for length, distance and probability which are used in weighting
 // TODO: Remove
 #define MAX_VALUE_FOR_WEIGHTING 10000000
diff --git a/native/jni/src/suggest/core/dictionary/property/word_property.h b/native/jni/src/suggest/core/dictionary/property/word_property.h
index 5519a91..aa3e0b6 100644
--- a/native/jni/src/suggest/core/dictionary/property/word_property.h
+++ b/native/jni/src/suggest/core/dictionary/property/word_property.h
@@ -42,6 +42,14 @@
             jintArray outProbabilityInfo, jobject outBigramTargets, jobject outBigramProbabilities,
             jobject outShortcutTargets, jobject outShortcutProbabilities) const;
 
+    const UnigramProperty *getUnigramProperty() const {
+        return &mUnigramProperty;
+    }
+
+    const std::vector<BigramProperty> *getBigramProperties() const {
+        return &mBigrams;
+    }
+
  private:
     // Default copy constructor is used for using as a return value.
     DISALLOW_ASSIGNMENT_OPERATOR(WordProperty);
diff --git a/native/jni/src/suggest/core/layout/proximity_info.h b/native/jni/src/suggest/core/layout/proximity_info.h
index 56711d1..d4e4537 100644
--- a/native/jni/src/suggest/core/layout/proximity_info.h
+++ b/native/jni/src/suggest/core/layout/proximity_info.h
@@ -103,6 +103,8 @@
     const int KEYBOARD_HEIGHT;
     const float KEYBOARD_HYPOTENUSE;
     const bool HAS_TOUCH_POSITION_CORRECTION_DATA;
+    // Assuming locale strings such as en_US, sr-Latn etc.
+    static const int MAX_LOCALE_STRING_LENGTH = 10;
     char mLocaleStr[MAX_LOCALE_STRING_LENGTH];
     int *mProximityCharsArray;
     int mKeyXCoordinates[MAX_KEY_COUNT_IN_A_KEYBOARD];
diff --git a/native/jni/src/suggest/core/policy/dictionary_header_structure_policy.h b/native/jni/src/suggest/core/policy/dictionary_header_structure_policy.h
index a8dab9f..845e629 100644
--- a/native/jni/src/suggest/core/policy/dictionary_header_structure_policy.h
+++ b/native/jni/src/suggest/core/policy/dictionary_header_structure_policy.h
@@ -49,6 +49,8 @@
 
     virtual bool shouldBoostExactMatches() const = 0;
 
+    virtual const std::vector<int> *getLocale() const = 0;
+
  protected:
     DictionaryHeaderStructurePolicy() {}
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/bigram/ver4_bigram_list_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/bigram/ver4_bigram_list_policy.cpp
index 5df2096..4975512 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/bigram/ver4_bigram_list_policy.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/bigram/ver4_bigram_list_policy.cpp
@@ -50,12 +50,18 @@
 
 bool Ver4BigramListPolicy::addNewEntry(const int terminalId, const int newTargetTerminalId,
         const int newProbability, const int timestamp, bool *const outAddedNewEntry) {
+    // 1. The word has no bigrams yet.
+    // 2. The word has bigrams, and there is the target in the list.
+    // 3. The word has bigrams, and there is an invalid entry that can be reclaimed.
+    // 4. The word has bigrams. We have to append new bigram entry to the list.
+    // 5. Same as 4, but the list is the last entry of the content file.
+
     if (outAddedNewEntry) {
         *outAddedNewEntry = false;
     }
     const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
     if (bigramListPos == NOT_A_DICT_POS) {
-        // Updating PtNode doesn't have a bigram list.
+        // Case 1. PtNode that doesn't have a bigram list.
         // Create new bigram list.
         if (!mBigramDictContent->createNewBigramList(terminalId)) {
             return false;
@@ -75,42 +81,55 @@
         return true;
     }
 
-    const int entryPosToUpdate = getEntryPosToUpdate(newTargetTerminalId, bigramListPos);
-    if (entryPosToUpdate != NOT_A_DICT_POS) {
-        // Overwrite existing entry.
-        const BigramEntry originalBigramEntry =
-                mBigramDictContent->getBigramEntry(entryPosToUpdate);
-        if (!originalBigramEntry.isValid()) {
-            // Reuse invalid entry.
-            if (outAddedNewEntry) {
-                *outAddedNewEntry = true;
+    int tailEntryPos = NOT_A_DICT_POS;
+    const int entryPosToUpdate = getEntryPosToUpdate(newTargetTerminalId, bigramListPos,
+            &tailEntryPos);
+    if (tailEntryPos != NOT_A_DICT_POS || entryPosToUpdate == NOT_A_DICT_POS) {
+        // Case 4, 5.
+        // Add new entry to the bigram list.
+        if (tailEntryPos == NOT_A_DICT_POS) {
+            // Case 4. Create new bigram list.
+            if (!mBigramDictContent->createNewBigramList(terminalId)) {
+                return false;
+            }
+            const int destPos = mBigramDictContent->getBigramListHeadPos(terminalId);
+            // Copy existing bigram list.
+            if (!mBigramDictContent->copyBigramList(bigramListPos, destPos, &tailEntryPos)) {
+                return false;
             }
         }
-        const BigramEntry updatedBigramEntry =
-                originalBigramEntry.updateTargetTerminalIdAndGetEntry(newTargetTerminalId);
+        // Write new entry at the tail position of the bigram content.
+        const BigramEntry newBigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
+                newTargetTerminalId);
         const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(
-                &updatedBigramEntry, newProbability, timestamp);
-        return mBigramDictContent->writeBigramEntry(&bigramEntryToWrite, entryPosToUpdate);
+                &newBigramEntry, newProbability, timestamp);
+        if (!mBigramDictContent->writeBigramEntryAtTail(&bigramEntryToWrite)) {
+            return false;
+        }
+        // Update has next flag of the tail entry.
+        if (!updateHasNextFlag(true /* hasNext */, tailEntryPos)) {
+            return false;
+        }
+        if (outAddedNewEntry) {
+            *outAddedNewEntry = true;
+        }
+        return true;
     }
 
-    // Add new entry to the bigram list.
-    // Create new bigram list.
-    if (!mBigramDictContent->createNewBigramList(terminalId)) {
-        return false;
+    // Case 2. Overwrite the existing entry. Case 3. Reclaim and reuse the existing invalid entry.
+    const BigramEntry originalBigramEntry = mBigramDictContent->getBigramEntry(entryPosToUpdate);
+    if (!originalBigramEntry.isValid()) {
+        // Case 3. Reuse the existing invalid entry. outAddedNewEntry is false when an existing
+        // entry is updated.
+        if (outAddedNewEntry) {
+            *outAddedNewEntry = true;
+        }
     }
-    // Write new entry at a head position of the bigram list.
-    int writingPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-    const BigramEntry newBigramEntry(true /* hasNext */, NOT_A_PROBABILITY, newTargetTerminalId);
+    const BigramEntry updatedBigramEntry =
+            originalBigramEntry.updateTargetTerminalIdAndGetEntry(newTargetTerminalId);
     const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(
-            &newBigramEntry, newProbability, timestamp);
-    if (!mBigramDictContent->writeBigramEntryAndAdvancePosition(&bigramEntryToWrite, &writingPos)) {
-        return false;
-    }
-    if (outAddedNewEntry) {
-        *outAddedNewEntry = true;
-    }
-    // Append existing entries by copying.
-    return mBigramDictContent->copyBigramList(bigramListPos, writingPos);
+            &updatedBigramEntry, newProbability, timestamp);
+    return mBigramDictContent->writeBigramEntry(&bigramEntryToWrite, entryPosToUpdate);
 }
 
 bool Ver4BigramListPolicy::removeEntry(const int terminalId, const int targetTerminalId) {
@@ -119,7 +138,8 @@
         // Bigram list doesn't exist.
         return false;
     }
-    const int entryPosToUpdate = getEntryPosToUpdate(targetTerminalId, bigramListPos);
+    const int entryPosToUpdate = getEntryPosToUpdate(targetTerminalId, bigramListPos,
+            nullptr /* outTailEntryPos */);
     if (entryPosToUpdate == NOT_A_DICT_POS) {
         // Bigram entry doesn't exist.
         return false;
@@ -204,7 +224,10 @@
 }
 
 int Ver4BigramListPolicy::getEntryPosToUpdate(const int targetTerminalIdToFind,
-        const int bigramListPos) const {
+        const int bigramListPos, int *const outTailEntryPos) const {
+    if (outTailEntryPos) {
+        *outTailEntryPos = NOT_A_DICT_POS;
+    }
     bool hasNext = true;
     int invalidEntryPos = NOT_A_DICT_POS;
     int readingPos = bigramListPos;
@@ -220,6 +243,11 @@
             // Invalid entry that can be reused is found.
             invalidEntryPos = entryPos;
         }
+        if (!hasNext && mBigramDictContent->isContentTailPos(readingPos)) {
+            if (outTailEntryPos) {
+                *outTailEntryPos = entryPos;
+            }
+        }
     }
     return invalidEntryPos;
 }
@@ -239,4 +267,10 @@
     }
 }
 
+bool Ver4BigramListPolicy::updateHasNextFlag(const bool hasNext, const int bigramEntryPos) {
+    const BigramEntry bigramEntry = mBigramDictContent->getBigramEntry(bigramEntryPos);
+    const BigramEntry updatedBigramEntry = bigramEntry.updateHasNextAndGetEntry(hasNext);
+    return mBigramDictContent->writeBigramEntry(&updatedBigramEntry, bigramEntryPos);
+}
+
 } // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/bigram/ver4_bigram_list_policy.h b/native/jni/src/suggest/policyimpl/dictionary/bigram/ver4_bigram_list_policy.h
index 5b6c5a1..c1f3335 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/bigram/ver4_bigram_list_policy.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/bigram/ver4_bigram_list_policy.h
@@ -56,11 +56,14 @@
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4BigramListPolicy);
 
-    int getEntryPosToUpdate(const int targetTerminalIdToFind, const int bigramListPos) const;
+    int getEntryPosToUpdate(const int targetTerminalIdToFind, const int bigramListPos,
+            int *const outTailEntryPos) const;
 
     const BigramEntry createUpdatedBigramEntryFrom(const BigramEntry *const originalBigramEntry,
             const int newProbability, const int timestamp) const;
 
+    bool updateHasNextFlag(const bool hasNext, const int bigramEntryPos);
+
     BigramDictContent *const mBigramDictContent;
     const TerminalPositionLookupTable *const mTerminalPositionLookupTable;
     const HeaderPolicy *const mHeaderPolicy;
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h b/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h
index 251a719..da24302 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h
@@ -139,6 +139,8 @@
         switch (mDictFormatVersion) {
             case FormatUtils::VERSION_2:
                 return FormatUtils::VERSION_2;
+            case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
+                return FormatUtils::VERSION_4_ONLY_FOR_TESTING;
             case FormatUtils::VERSION_4:
                 return FormatUtils::VERSION_4;
             default:
@@ -238,6 +240,10 @@
             const int unigramCount, const int bigramCount, const int extendedRegionSize,
             DictionaryHeaderStructurePolicy::AttributeMap *outAttributeMap) const;
 
+    AK_FORCE_INLINE const std::vector<int> *getLocale() const {
+        return &mLocale;
+    }
+
  private:
     DISALLOW_COPY_AND_ASSIGN(HeaderPolicy);
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp
index d20accf..2a9028a 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp
@@ -26,6 +26,13 @@
 
 namespace latinime {
 
+// Number of base-10 digits in the largest integer + 1 to leave room for a zero terminator.
+// As such, this is the maximum number of characters will be needed to represent an int as a
+// string, including the terminator; this is used as the size of a string buffer large enough to
+// hold any value that is intended to fit in an integer, e.g. in the code that reads the header
+// of the binary dictionary where a {key,value} string pair scheme is used.
+const int HeaderReadWriteUtils::LARGEST_INT_DIGIT_COUNT = 11;
+
 const int HeaderReadWriteUtils::MAX_ATTRIBUTE_KEY_LENGTH = 256;
 const int HeaderReadWriteUtils::MAX_ATTRIBUTE_VALUE_LENGTH = 256;
 
@@ -91,8 +98,9 @@
         case FormatUtils::VERSION_2:
             // Version 2 dictionary writing is not supported.
             return false;
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
         case FormatUtils::VERSION_4:
-            return buffer->writeUintAndAdvancePosition(FormatUtils::VERSION_4 /* data */,
+            return buffer->writeUintAndAdvancePosition(version /* data */,
                     HEADER_DICTIONARY_VERSION_SIZE, writingPos);
         default:
             return false;
@@ -154,8 +162,8 @@
 /* static */ void HeaderReadWriteUtils::setIntAttributeInner(AttributeMap *const headerAttributes,
         const AttributeMap::key_type *const key, const int value) {
     AttributeMap::mapped_type valueVector;
-    char charBuf[LARGEST_INT_DIGIT_COUNT + 1];
-    snprintf(charBuf, LARGEST_INT_DIGIT_COUNT + 1, "%d", value);
+    char charBuf[LARGEST_INT_DIGIT_COUNT];
+    snprintf(charBuf, sizeof(charBuf), "%d", value);
     insertCharactersIntoVector(charBuf, &valueVector);
     (*headerAttributes)[*key] = valueVector;
 }
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h b/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h
index a6b4c4e..9b90488 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h
@@ -92,6 +92,7 @@
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(HeaderReadWriteUtils);
 
+    static const int LARGEST_INT_DIGIT_COUNT;
     static const int MAX_ATTRIBUTE_KEY_LENGTH;
     static const int MAX_ATTRIBUTE_VALUE_LENGTH;
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
index be7e43b..c4d1860 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
@@ -52,9 +52,11 @@
         DictionaryStructureWithBufferPolicyFactory:: newPolicyForOnMemoryDict(
                 const int formatVersion, const std::vector<int> &locale,
                 const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) {
-    switch (formatVersion) {
+    FormatUtils::FORMAT_VERSION dictFormatVersion = FormatUtils::getFormatVersion(formatVersion);
+    switch (dictFormatVersion) {
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
         case FormatUtils::VERSION_4: {
-            HeaderPolicy headerPolicy(FormatUtils::VERSION_4, locale, attributeMap);
+            HeaderPolicy headerPolicy(dictFormatVersion, locale, attributeMap);
             Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers =
                     Ver4DictBuffers::createVer4DictBuffers(&headerPolicy,
                             Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE);
@@ -87,11 +89,13 @@
     if (!mmappedBuffer) {
         return DictionaryStructureWithBufferPolicy::StructurePolicyPtr(nullptr);
     }
-    switch (FormatUtils::detectFormatVersion(mmappedBuffer->getBuffer(),
-            mmappedBuffer->getBufferSize())) {
+    const FormatUtils::FORMAT_VERSION formatVersion = FormatUtils::detectFormatVersion(
+            mmappedBuffer->getBuffer(), mmappedBuffer->getBufferSize());
+    switch (formatVersion) {
         case FormatUtils::VERSION_2:
             AKLOGE("Given path is a directory but the format is version 2. path: %s", path);
             break;
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
         case FormatUtils::VERSION_4: {
             const int dictDirPathBufSize = strlen(headerFilePath) + 1 /* terminator */;
             char dictPath[dictDirPathBufSize];
@@ -102,7 +106,8 @@
                 return DictionaryStructureWithBufferPolicy::StructurePolicyPtr(nullptr);
             }
             Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers(
-                    Ver4DictBuffers::openVer4DictBuffers(dictPath, std::move(mmappedBuffer)));
+                    Ver4DictBuffers::openVer4DictBuffers(dictPath, std::move(mmappedBuffer),
+                            formatVersion));
             if (!dictBuffers || !dictBuffers->isValid()) {
                 AKLOGE("DICT: The dictionary doesn't satisfy ver4 format requirements. path: %s",
                         path);
@@ -135,6 +140,7 @@
         case FormatUtils::VERSION_2:
             return DictionaryStructureWithBufferPolicy::StructurePolicyPtr(
                     new PatriciaTriePolicy(std::move(mmappedBuffer)));
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
         case FormatUtils::VERSION_4:
             AKLOGE("Given path is a file but the format is version 4. path: %s", path);
             break;
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
index 2457b49..a527f03 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
@@ -16,11 +16,12 @@
 
 #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
 
+#include "suggest/core/dictionary/property/unigram_property.h"
 #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
 #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 #include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
 #include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h"
 #include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
@@ -29,9 +30,8 @@
 
 bool DynamicPtUpdatingHelper::addUnigramWord(
         DynamicPtReadingHelper *const readingHelper,
-        const int *const wordCodePoints, const int codePointCount, const int probability,
-        const bool isNotAWord, const bool isBlacklisted, const int timestamp,
-        bool *const outAddedNewUnigram) {
+        const int *const wordCodePoints, const int codePointCount,
+        const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram) {
     int parentPos = NOT_A_DICT_POS;
     while (!readingHelper->isEnd()) {
         const PtNodeParams ptNodeParams(readingHelper->getPtNodeParams());
@@ -53,20 +53,18 @@
             if (nextIndex >= codePointCount || !readingHelper->isMatchedCodePoint(ptNodeParams, j,
                     wordCodePoints[matchedCodePointCount + j])) {
                 *outAddedNewUnigram = true;
-                return reallocatePtNodeAndAddNewPtNodes(&ptNodeParams, j, isNotAWord, isBlacklisted,
-                        probability, timestamp, wordCodePoints + matchedCodePointCount,
+                return reallocatePtNodeAndAddNewPtNodes(&ptNodeParams, j, unigramProperty,
+                        wordCodePoints + matchedCodePointCount,
                         codePointCount - matchedCodePointCount);
             }
         }
         // All characters are matched.
         if (codePointCount == readingHelper->getTotalCodePointCount(ptNodeParams)) {
-            return setPtNodeProbability(&ptNodeParams, isNotAWord, isBlacklisted, probability,
-                    timestamp, outAddedNewUnigram);
+            return setPtNodeProbability(&ptNodeParams, unigramProperty, outAddedNewUnigram);
         }
         if (!ptNodeParams.hasChildren()) {
             *outAddedNewUnigram = true;
-            return createChildrenPtNodeArrayAndAChildPtNode(&ptNodeParams,
-                    isNotAWord, isBlacklisted, probability, timestamp,
+            return createChildrenPtNodeArrayAndAChildPtNode(&ptNodeParams, unigramProperty,
                     wordCodePoints + readingHelper->getTotalCodePointCount(ptNodeParams),
                     codePointCount - readingHelper->getTotalCodePointCount(ptNodeParams));
         }
@@ -83,7 +81,7 @@
     return createAndInsertNodeIntoPtNodeArray(parentPos,
             wordCodePoints + readingHelper->getPrevTotalCodePointCount(),
             codePointCount - readingHelper->getPrevTotalCodePointCount(),
-            isNotAWord, isBlacklisted, probability, timestamp, &pos);
+            unigramProperty, &pos);
 }
 
 bool DynamicPtUpdatingHelper::addBigramWords(const int word0Pos, const int word1Pos,
@@ -115,36 +113,34 @@
 
 bool DynamicPtUpdatingHelper::createAndInsertNodeIntoPtNodeArray(const int parentPos,
         const int *const nodeCodePoints, const int nodeCodePointCount,
-        const bool isNotAWord, const bool isBlacklisted, const int probability,
-        const int timestamp,  int *const forwardLinkFieldPos) {
+        const UnigramProperty *const unigramProperty, int *const forwardLinkFieldPos) {
     const int newPtNodeArrayPos = mBuffer->getTailPosition();
     if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(mBuffer,
             newPtNodeArrayPos, forwardLinkFieldPos)) {
         return false;
     }
     return createNewPtNodeArrayWithAChildPtNode(parentPos, nodeCodePoints, nodeCodePointCount,
-            isNotAWord, isBlacklisted, probability, timestamp);
+            unigramProperty);
 }
 
-bool DynamicPtUpdatingHelper::setPtNodeProbability(
-        const PtNodeParams *const originalPtNodeParams, const bool isNotAWord,
-        const bool isBlacklisted, const int probability, const int timestamp,
-        bool *const outAddedNewUnigram) {
+bool DynamicPtUpdatingHelper::setPtNodeProbability(const PtNodeParams *const originalPtNodeParams,
+        const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram) {
     if (originalPtNodeParams->isTerminal()) {
         // Overwrites the probability.
         *outAddedNewUnigram = false;
-        return mPtNodeWriter->updatePtNodeProbability(originalPtNodeParams, probability, timestamp);
+        return mPtNodeWriter->updatePtNodeUnigramProperty(originalPtNodeParams, unigramProperty);
     } else {
         // Make the node terminal and write the probability.
         *outAddedNewUnigram = true;
         const int movedPos = mBuffer->getTailPosition();
         int writingPos = movedPos;
         const PtNodeParams ptNodeParamsToWrite(getUpdatedPtNodeParams(originalPtNodeParams,
-                isNotAWord, isBlacklisted, true /* isTerminal */,
-                originalPtNodeParams->getParentPos(), originalPtNodeParams->getCodePointCount(),
-                originalPtNodeParams->getCodePoints(), probability));
+                unigramProperty->isNotAWord(), unigramProperty->isBlacklisted(),
+                true /* isTerminal */, originalPtNodeParams->getParentPos(),
+                originalPtNodeParams->getCodePointCount(), originalPtNodeParams->getCodePoints(),
+                unigramProperty->getProbability()));
         if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite,
-                timestamp, &writingPos)) {
+                unigramProperty, &writingPos)) {
             return false;
         }
         if (!mPtNodeWriter->markPtNodeAsMoved(originalPtNodeParams, movedPos, movedPos)) {
@@ -155,31 +151,30 @@
 }
 
 bool DynamicPtUpdatingHelper::createChildrenPtNodeArrayAndAChildPtNode(
-        const PtNodeParams *const parentPtNodeParams, const bool isNotAWord,
-        const bool isBlacklisted, const int probability, const int timestamp,
+        const PtNodeParams *const parentPtNodeParams, const UnigramProperty *const unigramProperty,
         const int *const codePoints, const int codePointCount) {
     const int newPtNodeArrayPos = mBuffer->getTailPosition();
     if (!mPtNodeWriter->updateChildrenPosition(parentPtNodeParams, newPtNodeArrayPos)) {
         return false;
     }
     return createNewPtNodeArrayWithAChildPtNode(parentPtNodeParams->getHeadPos(), codePoints,
-            codePointCount, isNotAWord, isBlacklisted, probability, timestamp);
+            codePointCount, unigramProperty);
 }
 
 bool DynamicPtUpdatingHelper::createNewPtNodeArrayWithAChildPtNode(
         const int parentPtNodePos, const int *const nodeCodePoints, const int nodeCodePointCount,
-        const bool isNotAWord, const bool isBlacklisted, const int probability,
-        const int timestamp) {
+        const UnigramProperty *const unigramProperty) {
     int writingPos = mBuffer->getTailPosition();
     if (!DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(mBuffer,
             1 /* arraySize */, &writingPos)) {
         return false;
     }
     const PtNodeParams ptNodeParamsToWrite(getPtNodeParamsForNewPtNode(
-            isNotAWord, isBlacklisted, true /* isTerminal */,
-            parentPtNodePos, nodeCodePointCount, nodeCodePoints, probability));
-    if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite, timestamp,
-            &writingPos)) {
+            unigramProperty->isNotAWord(), unigramProperty->isBlacklisted(), true /* isTerminal */,
+            parentPtNodePos, nodeCodePointCount, nodeCodePoints,
+            unigramProperty->getProbability()));
+    if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite,
+            unigramProperty, &writingPos)) {
         return false;
     }
     if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(mBuffer,
@@ -192,13 +187,13 @@
 // Returns whether the dictionary updating was succeeded or not.
 bool DynamicPtUpdatingHelper::reallocatePtNodeAndAddNewPtNodes(
         const PtNodeParams *const reallocatingPtNodeParams, const int overlappingCodePointCount,
-        const bool isNotAWord, const bool isBlacklisted, const int probabilityOfNewPtNode,
-        const int timestamp, const int *const newNodeCodePoints, const int newNodeCodePointCount) {
+        const UnigramProperty *const unigramProperty, const int *const newNodeCodePoints,
+        const int newNodeCodePointCount) {
     // When addsExtraChild is true, split the reallocating PtNode and add new child.
     // Reallocating PtNode: abcde, newNode: abcxy.
     // abc (1st, not terminal) __ de (2nd)
     //                         \_ xy (extra child, terminal)
-    // Otherwise, this method makes 1st part terminal and write probabilityOfNewPtNode.
+    // Otherwise, this method makes 1st part terminal and write information in unigramProperty.
     // Reallocating PtNode: abcde, newNode: abc.
     // abc (1st, terminal) __ de (2nd)
     const bool addsExtraChild = newNodeCodePointCount > overlappingCodePointCount;
@@ -216,11 +211,12 @@
         }
     } else {
         const PtNodeParams ptNodeParamsToWrite(getPtNodeParamsForNewPtNode(
-                isNotAWord, isBlacklisted, true /* isTerminal */,
-                reallocatingPtNodeParams->getParentPos(), overlappingCodePointCount,
-                reallocatingPtNodeParams->getCodePoints(), probabilityOfNewPtNode));
+                unigramProperty->isNotAWord(), unigramProperty->isBlacklisted(),
+                true /* isTerminal */, reallocatingPtNodeParams->getParentPos(),
+                overlappingCodePointCount, reallocatingPtNodeParams->getCodePoints(),
+                unigramProperty->getProbability()));
         if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite,
-                timestamp, &writingPos)) {
+                unigramProperty, &writingPos)) {
             return false;
         }
     }
@@ -244,11 +240,12 @@
     }
     if (addsExtraChild) {
         const PtNodeParams extraChildPtNodeParams(getPtNodeParamsForNewPtNode(
-                isNotAWord, isBlacklisted, true /* isTerminal */,
-                firstPartOfReallocatedPtNodePos, newNodeCodePointCount - overlappingCodePointCount,
-                newNodeCodePoints + overlappingCodePointCount, probabilityOfNewPtNode));
+                unigramProperty->isNotAWord(), unigramProperty->isBlacklisted(),
+                true /* isTerminal */, firstPartOfReallocatedPtNodePos,
+                newNodeCodePointCount - overlappingCodePointCount,
+                newNodeCodePoints + overlappingCodePointCount, unigramProperty->getProbability()));
         if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&extraChildPtNodeParams,
-                timestamp, &writingPos)) {
+                unigramProperty, &writingPos)) {
             return false;
         }
     }
@@ -269,8 +266,8 @@
 }
 
 const PtNodeParams DynamicPtUpdatingHelper::getUpdatedPtNodeParams(
-        const PtNodeParams *const originalPtNodeParams, const bool isNotAWord,
-        const bool isBlacklisted, const bool isTerminal, const int parentPos,
+        const PtNodeParams *const originalPtNodeParams,
+        const bool isNotAWord, const bool isBlacklisted, const bool isTerminal, const int parentPos,
         const int codePointCount, const int *const codePoints, const int probability) const {
     const PatriciaTrieReadingUtils::NodeFlags flags = PatriciaTrieReadingUtils::createAndGetFlags(
             isBlacklisted, isNotAWord, isTerminal, originalPtNodeParams->hasShortcutTargets(),
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
index 9b28152..44914fe 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
@@ -26,6 +26,7 @@
 class DynamicPtReadingHelper;
 class PtNodeReader;
 class PtNodeWriter;
+class UnigramProperty;
 
 class DynamicPtUpdatingHelper {
  public:
@@ -37,9 +38,8 @@
 
     // Add a word to the dictionary. If the word already exists, update the probability.
     bool addUnigramWord(DynamicPtReadingHelper *const readingHelper,
-            const int *const wordCodePoints, const int codePointCount, const int probability,
-            const bool isNotAWord, const bool isBlacklisted, const int timestamp,
-            bool *const outAddedNewUnigram);
+            const int *const wordCodePoints, const int codePointCount,
+            const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram);
 
     // Add a bigram relation from word0Pos to word1Pos.
     bool addBigramWords(const int word0Pos, const int word1Pos, const int probability,
@@ -62,25 +62,22 @@
     PtNodeWriter *const mPtNodeWriter;
 
     bool createAndInsertNodeIntoPtNodeArray(const int parentPos, const int *const nodeCodePoints,
-            const int nodeCodePointCount, const bool isNotAWord, const bool isBlacklisted,
-            const int probability, const int timestamp, int *const forwardLinkFieldPos);
+            const int nodeCodePointCount, const UnigramProperty *const unigramProperty,
+            int *const forwardLinkFieldPos);
 
-    bool setPtNodeProbability(const PtNodeParams *const originalPtNodeParams, const bool isNotAWord,
-            const bool isBlacklisted, const int probability, const int timestamp,
-            bool *const outAddedNewUnigram);
+    bool setPtNodeProbability(const PtNodeParams *const originalPtNodeParams,
+            const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram);
 
     bool createChildrenPtNodeArrayAndAChildPtNode(const PtNodeParams *const parentPtNodeParams,
-            const bool isNotAWord, const bool isBlacklisted, const int probability,
-            const int timestamp, const int *const codePoints, const int codePointCount);
+            const UnigramProperty *const unigramProperty, const int *const codePoints,
+            const int codePointCount);
 
     bool createNewPtNodeArrayWithAChildPtNode(const int parentPos, const int *const nodeCodePoints,
-            const int nodeCodePointCount, const bool isNotAWord, const bool isBlacklisted,
-            const int probability, const int timestamp);
+            const int nodeCodePointCount, const UnigramProperty *const unigramProperty);
 
     bool reallocatePtNodeAndAddNewPtNodes(
             const PtNodeParams *const reallocatingPtNodeParams, const int overlappingCodePointCount,
-            const bool isNotAWord, const bool isBlacklisted, const int probabilityOfNewPtNode,
-            const int timestamp, const int *const newNodeCodePoints,
+            const UnigramProperty *const unigramProperty, const int *const newNodeCodePoints,
             const int newNodeCodePointCount);
 
     const PtNodeParams getUpdatedPtNodeParams(const PtNodeParams *const originalPtNodeParams,
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
similarity index 98%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.cpp
rename to native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
index b4eee55..e64a13c 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h"
+#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 
 #include "defines.h"
 #include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h
similarity index 99%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h
rename to native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h
index a6090a5..c3f09c3 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h
@@ -26,7 +26,6 @@
 class DictionaryShortcutsStructurePolicy;
 class DictionaryBigramsStructurePolicy;
 
-// TODO: Move to pt_common
 class PatriciaTrieReadingUtils {
  public:
     typedef uint8_t NodeFlags;
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h
index e4847fc..91192fc 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h
@@ -21,7 +21,7 @@
 
 #include "defines.h"
 #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h"
+#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 #include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h
index e843f07..cbca3fe 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h
@@ -24,6 +24,8 @@
 
 namespace latinime {
 
+class UnigramProperty;
+
 // Interface class used to write PtNode information.
 class PtNodeWriter {
  public:
@@ -51,8 +53,8 @@
     virtual bool markPtNodeAsWillBecomeNonTerminal(
             const PtNodeParams *const toBeUpdatedPtNodeParams) = 0;
 
-    virtual bool updatePtNodeProbability(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const int probability, const int timestamp) = 0;
+    virtual bool updatePtNodeUnigramProperty(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const UnigramProperty *const unigramProperty) = 0;
 
     virtual bool updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
             const PtNodeParams *const toBeUpdatedPtNodeParams,
@@ -65,7 +67,7 @@
             int *const ptNodeWritingPos) = 0;
 
     virtual bool writeNewTerminalPtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
-            const int timestamp, int *const ptNodeWritingPos) = 0;
+            const UnigramProperty *const unigramProperty, int *const ptNodeWritingPos) = 0;
 
     virtual bool addNewBigramEntry(const PtNodeParams *const sourcePtNodeParams,
             const PtNodeParams *const targetPtNodeParam, const int probability, const int timestamp,
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
index b426dbf..b3af1f4 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
@@ -22,7 +22,7 @@
 #include "suggest/core/dicnode/dic_node_vector.h"
 #include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h"
 #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h"
+#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 #include "suggest/policyimpl/dictionary/utils/probability_utils.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
index 778d7a4..0c8de0d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
@@ -16,7 +16,7 @@
 
 #include "suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h"
 
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h"
+#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
index 125ea31..b46617d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
@@ -16,7 +16,7 @@
 
 #include "suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h"
 
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h"
+#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 
 namespace latinime {
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
index 279f5b3..56f19db 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
@@ -113,13 +113,17 @@
     return true;
 }
 
-bool BigramDictContent::copyBigramList(const int bigramListPos, const int toPos) {
+bool BigramDictContent::copyBigramList(const int bigramListPos, const int toPos,
+        int *const outTailEntryPos) {
     int readingPos = bigramListPos;
     int writingPos = toPos;
     bool hasNext = true;
     while (hasNext) {
         const BigramEntry bigramEntry = getBigramEntryAndAdvancePosition(&readingPos);
         hasNext = bigramEntry.hasNext();
+        if (!hasNext) {
+            *outTailEntryPos = writingPos;
+        }
         if (!writeBigramEntryAndAdvancePosition(&bigramEntry, &writingPos)) {
             AKLOGE("Cannot write bigram entry to copy. pos: %d", writingPos);
             return false;
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
index ba2a052..944e0f9 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
@@ -58,6 +58,11 @@
         return addressLookupTable->get(terminalId);
     }
 
+    bool writeBigramEntryAtTail(const BigramEntry *const bigramEntryToWrite) {
+        int writingPos = getContentBuffer()->getTailPosition();
+        return writeBigramEntryAndAdvancePosition(bigramEntryToWrite, &writingPos);
+    }
+
     bool writeBigramEntry(const BigramEntry *const bigramEntryToWrite, const int entryWritingPos) {
         int writingPos = entryWritingPos;
         return writeBigramEntryAndAdvancePosition(bigramEntryToWrite, &writingPos);
@@ -71,7 +76,7 @@
         return getUpdatableAddressLookupTable()->set(terminalId, bigramListPos);
     }
 
-    bool copyBigramList(const int bigramListPos, const int toPos);
+    bool copyBigramList(const int bigramListPos, const int toPos, int *const outTailEntryPos);
 
     bool flushToFile(const char *const dictPath) const {
         return flush(dictPath, Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION,
@@ -83,6 +88,10 @@
             const BigramDictContent *const originalBigramDictContent,
             int *const outBigramEntryCount);
 
+    bool isContentTailPos(const int pos) const {
+        return pos == getContentBuffer()->getTailPosition();
+    }
+
  private:
     DISALLOW_COPY_AND_ASSIGN(BigramDictContent);
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
index 95f6544..77ed38b 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
@@ -27,7 +27,8 @@
 namespace latinime {
 
 /* static */ Ver4DictBuffers::Ver4DictBuffersPtr Ver4DictBuffers::openVer4DictBuffers(
-        const char *const dictPath, MmappedBuffer::MmappedBufferPtr headerBuffer) {
+        const char *const dictPath, MmappedBuffer::MmappedBufferPtr headerBuffer,
+        const FormatUtils::FORMAT_VERSION formatVersion) {
     if (!headerBuffer) {
         ASSERT(false);
         AKLOGE("The header buffer must be valid to open ver4 dict buffers.");
@@ -35,7 +36,8 @@
     }
     // TODO: take only dictDirPath, and open both header and trie files in the constructor below
     const bool isUpdatable = headerBuffer->isUpdatable();
-    return Ver4DictBuffersPtr(new Ver4DictBuffers(dictPath, std::move(headerBuffer), isUpdatable));
+    return Ver4DictBuffersPtr(new Ver4DictBuffers(dictPath, std::move(headerBuffer), isUpdatable,
+            formatVersion));
 }
 
 bool Ver4DictBuffers::flushHeaderAndDictBuffers(const char *const dictDirPath,
@@ -113,11 +115,12 @@
 }
 
 Ver4DictBuffers::Ver4DictBuffers(const char *const dictPath,
-        MmappedBuffer::MmappedBufferPtr headerBuffer, const bool isUpdatable)
+        MmappedBuffer::MmappedBufferPtr headerBuffer, const bool isUpdatable,
+        const FormatUtils::FORMAT_VERSION formatVersion)
         : mHeaderBuffer(std::move(headerBuffer)),
           mDictBuffer(MmappedBuffer::openBuffer(dictPath,
                   Ver4DictConstants::TRIE_FILE_EXTENSION, isUpdatable)),
-          mHeaderPolicy(mHeaderBuffer->getBuffer(), FormatUtils::VERSION_4),
+          mHeaderPolicy(mHeaderBuffer->getBuffer(), formatVersion),
           mExpandableHeaderBuffer(mHeaderBuffer ? mHeaderBuffer->getBuffer() : nullptr,
                   mHeaderPolicy.getSize(),
                   BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
index fc41432..df177c1 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
@@ -36,7 +36,8 @@
     typedef std::unique_ptr<Ver4DictBuffers> Ver4DictBuffersPtr;
 
     static Ver4DictBuffersPtr openVer4DictBuffers(const char *const dictDirPath,
-            MmappedBuffer::MmappedBufferPtr headerBuffer);
+            MmappedBuffer::MmappedBufferPtr headerBuffer,
+            const FormatUtils::FORMAT_VERSION formatVersion);
 
     static AK_FORCE_INLINE Ver4DictBuffersPtr createVer4DictBuffers(
             const HeaderPolicy *const headerPolicy, const int maxTrieSize) {
@@ -120,7 +121,8 @@
     DISALLOW_COPY_AND_ASSIGN(Ver4DictBuffers);
 
     Ver4DictBuffers(const char *const dictDirPath,
-            const MmappedBuffer::MmappedBufferPtr headerBuffer, const bool isUpdatable);
+            const MmappedBuffer::MmappedBufferPtr headerBuffer, const bool isUpdatable,
+            const FormatUtils::FORMAT_VERSION formatVersion);
 
     Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize);
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
index f149781..67420a2 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
@@ -17,7 +17,7 @@
 #include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
 
 #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h"
+#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 #include "suggest/policyimpl/dictionary/structure/v4/content/probability_dict_content.h"
 #include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
 #include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
index f24c2e1..50a3e56 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
@@ -16,12 +16,13 @@
 
 #include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
 
+#include "suggest/core/dictionary/property/unigram_property.h"
 #include "suggest/policyimpl/dictionary/bigram/ver4_bigram_list_policy.h"
 #include "suggest/policyimpl/dictionary/header/header_policy.h"
 #include "suggest/policyimpl/dictionary/shortcut/ver4_shortcut_list_policy.h"
 #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
 #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h"
+#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 #include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
 #include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
 #include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
@@ -133,9 +134,11 @@
             &writingPos);
 }
 
-bool Ver4PatriciaTrieNodeWriter::updatePtNodeProbability(
-        const PtNodeParams *const toBeUpdatedPtNodeParams, const int newProbability,
-        const int timestamp) {
+bool Ver4PatriciaTrieNodeWriter::updatePtNodeUnigramProperty(
+        const PtNodeParams *const toBeUpdatedPtNodeParams,
+        const UnigramProperty *const unigramProperty) {
+    // Update probability and historical information.
+    // TODO: Update other information in the unigram property.
     if (!toBeUpdatedPtNodeParams->isTerminal()) {
         return false;
     }
@@ -143,7 +146,7 @@
             mBuffers->getProbabilityDictContent()->getProbabilityEntry(
                     toBeUpdatedPtNodeParams->getTerminalId());
     const ProbabilityEntry probabilityEntry = createUpdatedEntryFrom(&originalProbabilityEntry,
-            newProbability, timestamp);
+            unigramProperty);
     return mBuffers->getMutableProbabilityDictContent()->setProbabilityEntry(
             toBeUpdatedPtNodeParams->getTerminalId(), &probabilityEntry);
 }
@@ -204,7 +207,8 @@
 
 
 bool Ver4PatriciaTrieNodeWriter::writeNewTerminalPtNodeAndAdvancePosition(
-        const PtNodeParams *const ptNodeParams, const int timestamp, int *const ptNodeWritingPos) {
+        const PtNodeParams *const ptNodeParams, const UnigramProperty *const unigramProperty,
+        int *const ptNodeWritingPos) {
     int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
     if (!writePtNodeAndGetTerminalIdAndAdvancePosition(ptNodeParams, &terminalId,
             ptNodeWritingPos)) {
@@ -213,7 +217,7 @@
     // Write probability.
     ProbabilityEntry newProbabilityEntry;
     const ProbabilityEntry probabilityEntryToWrite = createUpdatedEntryFrom(
-            &newProbabilityEntry, ptNodeParams->getProbability(), timestamp);
+            &newProbabilityEntry, unigramProperty);
     return mBuffers->getMutableProbabilityDictContent()->setProbabilityEntry(terminalId,
             &probabilityEntryToWrite);
 }
@@ -379,18 +383,20 @@
 }
 
 const ProbabilityEntry Ver4PatriciaTrieNodeWriter::createUpdatedEntryFrom(
-        const ProbabilityEntry *const originalProbabilityEntry, const int newProbability,
-        const int timestamp) const {
+        const ProbabilityEntry *const originalProbabilityEntry,
+        const UnigramProperty *const unigramProperty) const {
     // TODO: Consolidate historical info and probability.
     if (mHeaderPolicy->hasHistoricalInfoOfWords()) {
         const HistoricalInfo updatedHistoricalInfo =
                 ForgettingCurveUtils::createUpdatedHistoricalInfo(
-                        originalProbabilityEntry->getHistoricalInfo(), newProbability, timestamp,
+                        originalProbabilityEntry->getHistoricalInfo(),
+                        unigramProperty->getProbability(), unigramProperty->getTimestamp(),
                         mHeaderPolicy);
         return originalProbabilityEntry->createEntryWithUpdatedHistoricalInfo(
                 &updatedHistoricalInfo);
     } else {
-        return originalProbabilityEntry->createEntryWithUpdatedProbability(newProbability);
+        return originalProbabilityEntry->createEntryWithUpdatedProbability(
+                unigramProperty->getProbability());
     }
 }
 
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
index b2b0504..f20d3a2 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
@@ -57,8 +57,8 @@
     virtual bool markPtNodeAsWillBecomeNonTerminal(
             const PtNodeParams *const toBeUpdatedPtNodeParams);
 
-    virtual bool updatePtNodeProbability(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const int newProbability, const int timestamp);
+    virtual bool updatePtNodeUnigramProperty(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const UnigramProperty *const unigramProperty);
 
     virtual bool updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
             const PtNodeParams *const toBeUpdatedPtNodeParams, bool *const outNeedsToKeepPtNode);
@@ -73,7 +73,7 @@
             int *const ptNodeWritingPos);
 
     virtual bool writeNewTerminalPtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
-            const int timestamp, int *const ptNodeWritingPos);
+            const UnigramProperty *const unigramProperty, int *const ptNodeWritingPos);
 
     virtual bool addNewBigramEntry(const PtNodeParams *const sourcePtNodeParams,
             const PtNodeParams *const targetPtNodeParam, const int probability, const int timestamp,
@@ -102,11 +102,12 @@
             const PtNodeParams *const ptNodeParams, int *const outTerminalId,
             int *const ptNodeWritingPos);
 
-    // Create updated probability entry using given probability and timestamp. In addition to the
+    // Create updated probability entry using given unigram property. In addition to the
     // probability, this method updates historical information if needed.
+    // TODO: Update flags belonging to the unigram property.
     const ProbabilityEntry createUpdatedEntryFrom(
-            const ProbabilityEntry *const originalProbabilityEntry, const int newProbability,
-            const int timestamp) const;
+            const ProbabilityEntry *const originalProbabilityEntry,
+            const UnigramProperty *const unigramProperty) const;
 
     bool updatePtNodeFlags(const int ptNodePos, const bool isBlacklisted, const bool isNotAWord,
             const bool isTerminal, const bool hasShortcutTargets, const bool hasBigrams,
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
index bbfd22e..2584fe5 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
@@ -179,9 +179,7 @@
     readingHelper.initWithPtNodeArrayPos(getRootPosition());
     bool addedNewUnigram = false;
     if (mUpdatingHelper.addUnigramWord(&readingHelper, word, length,
-            unigramProperty->getProbability(), unigramProperty->isNotAWord(),
-            unigramProperty->isBlacklisted(), unigramProperty->getTimestamp(),
-            &addedNewUnigram)) {
+            unigramProperty, &addedNewUnigram)) {
         if (addedNewUnigram) {
             mUnigramCount++;
         }
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
index bbdf40c..b014c52 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
@@ -17,7 +17,7 @@
 #include "suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h"
 
 #include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_reading_utils.h"
+#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
 #include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h b/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h
index 23cbe3a..a2e88a4 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h
@@ -37,13 +37,13 @@
     BufferWithExtendableBuffer(uint8_t *const originalBuffer, const int originalBufferSize,
             const int maxAdditionalBufferSize)
             : mOriginalBuffer(originalBuffer), mOriginalBufferSize(originalBufferSize),
-              mAdditionalBuffer(EXTEND_ADDITIONAL_BUFFER_SIZE_STEP), mUsedAdditionalBufferSize(0),
+              mAdditionalBuffer(0), mUsedAdditionalBufferSize(0),
               mMaxAdditionalBufferSize(maxAdditionalBufferSize) {}
 
     // Without original buffer.
     BufferWithExtendableBuffer(const int maxAdditionalBufferSize)
             : mOriginalBuffer(0), mOriginalBufferSize(0),
-              mAdditionalBuffer(EXTEND_ADDITIONAL_BUFFER_SIZE_STEP), mUsedAdditionalBufferSize(0),
+              mAdditionalBuffer(0), mUsedAdditionalBufferSize(0),
               mMaxAdditionalBufferSize(maxAdditionalBufferSize) {}
 
     AK_FORCE_INLINE int getTailPosition() const {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp
index 87fa599..7bc7b0a 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp
@@ -34,9 +34,12 @@
         const int dictVersion, const std::vector<int> localeAsCodePointVector,
         const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) {
     TimeKeeper::setCurrentTime();
-    switch (dictVersion) {
+    const FormatUtils::FORMAT_VERSION formatVersion = FormatUtils::getFormatVersion(dictVersion);
+    switch (formatVersion) {
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
         case FormatUtils::VERSION_4:
-            return createEmptyV4DictFile(filePath, localeAsCodePointVector, attributeMap);
+            return createEmptyV4DictFile(filePath, localeAsCodePointVector, attributeMap,
+                    formatVersion);
         default:
             AKLOGE("Cannot create dictionary %s because format version %d is not supported.",
                     filePath, dictVersion);
@@ -46,8 +49,9 @@
 
 /* static */ bool DictFileWritingUtils::createEmptyV4DictFile(const char *const dirPath,
         const std::vector<int> localeAsCodePointVector,
-        const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) {
-    HeaderPolicy headerPolicy(FormatUtils::VERSION_4, localeAsCodePointVector, attributeMap);
+        const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap,
+        const FormatUtils::FORMAT_VERSION formatVersion) {
+    HeaderPolicy headerPolicy(formatVersion, localeAsCodePointVector, attributeMap);
     Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers(
             Ver4DictBuffers::createVer4DictBuffers(&headerPolicy,
                     Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE));
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h
index 54ec651..a822989 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h
@@ -21,6 +21,7 @@
 
 #include "defines.h"
 #include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
+#include "suggest/policyimpl/dictionary/utils/format_utils.h"
 
 namespace latinime {
 
@@ -46,7 +47,8 @@
 
     static bool createEmptyV4DictFile(const char *const filePath,
             const std::vector<int> localeAsCodePointVector,
-            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap);
+            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap,
+            const FormatUtils::FORMAT_VERSION formatVersion);
 
     static bool flushBufferToFile(const char *const filePath,
             const BufferWithExtendableBuffer *const buffer);
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp
index cd3c403..a8518cd 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp
@@ -25,6 +25,18 @@
 // Magic number (4 bytes), version (2 bytes), flags (2 bytes), header size (4 bytes) = 12
 const int FormatUtils::DICTIONARY_MINIMUM_SIZE = 12;
 
+/* static */ FormatUtils::FORMAT_VERSION FormatUtils::getFormatVersion(const int formatVersion) {
+    switch (formatVersion) {
+        case VERSION_2:
+            return VERSION_2;
+        case VERSION_4_ONLY_FOR_TESTING:
+            return VERSION_4_ONLY_FOR_TESTING;
+        case VERSION_4:
+            return VERSION_4;
+        default:
+            return UNKNOWN_VERSION;
+    }
+}
 /* static */ FormatUtils::FORMAT_VERSION FormatUtils::detectFormatVersion(
         const uint8_t *const dict, const int dictSize) {
     // The magic number is stored big-endian.
@@ -46,6 +58,8 @@
             // same so we use them for both here.
             if (ByteArrayUtils::readUint16(dict, 4) == VERSION_2) {
                 return VERSION_2;
+            } else if (ByteArrayUtils::readUint16(dict, 4) == VERSION_4_ONLY_FOR_TESTING) {
+                return VERSION_4_ONLY_FOR_TESTING;
             } else if (ByteArrayUtils::readUint16(dict, 4) == VERSION_4) {
                 return VERSION_4;
             } else {
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.h b/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.h
index 759b1c9..20dfb9d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.h
@@ -31,6 +31,7 @@
     enum FORMAT_VERSION {
         // These MUST have the same values as the relevant constants in FormatSpec.java.
         VERSION_2 = 2,
+        VERSION_4_ONLY_FOR_TESTING = 399,
         VERSION_4 = 401,
         UNKNOWN_VERSION = -1
     };
@@ -39,6 +40,7 @@
     // unsupported or obsolete dictionary formats.
     static const uint32_t MAGIC_NUMBER;
 
+    static FORMAT_VERSION getFormatVersion(const int formatVersion);
     static FORMAT_VERSION detectFormatVersion(const uint8_t *const dict, const int dictSize);
 
  private:
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
index e4aaf03..13955b8 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
@@ -25,7 +25,7 @@
 
 @SmallTest
 public class KeyboardLayoutSetSubtypesCountTests extends KeyboardLayoutSetTestsBase {
-    private static final int NUMBER_OF_SUBTYPES = 70;
+    private static final int NUMBER_OF_SUBTYPES = 71;
     private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 45;
     private static final int NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES = 2;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
index 0fb6ff2..75bd609 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.content.res.Resources;
+import android.preference.PreferenceManager;
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.view.ContextThemeWrapper;
@@ -40,9 +41,6 @@
 
 @SmallTest
 public class KeyboardLayoutSetTestsBase extends AndroidTestCase {
-    private static final KeyboardTheme DEFAULT_KEYBOARD_THEME =
-            KeyboardTheme.getDefaultKeyboardTheme();
-
     // All input method subtypes of LatinIME.
     private final ArrayList<InputMethodSubtype> mAllSubtypesList = CollectionUtils.newArrayList();
     private final ArrayList<InputMethodSubtype> mAsciiCapableSubtypesList =
@@ -58,7 +56,9 @@
         super.setUp();
         mScreenMetrics = mContext.getResources().getInteger(R.integer.config_screen_metrics);
 
-        mThemeContext = new ContextThemeWrapper(mContext, DEFAULT_KEYBOARD_THEME.mStyleId);
+        final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(
+                PreferenceManager.getDefaultSharedPreferences(mContext));
+        mThemeContext = new ContextThemeWrapper(mContext, keyboardTheme.mStyleId);
         RichInputMethodManager.init(mThemeContext);
         final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
 
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
new file mode 100644
index 0000000..9b532fe
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2014 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.keyboard;
+
+import android.content.SharedPreferences;
+import android.os.Build.VERSION_CODES;
+import android.preference.PreferenceManager;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+@SmallTest
+public class KeyboardThemeTests extends AndroidTestCase {
+    private SharedPreferences mPrefs;
+
+    private static final int THEME_ID_NULL = -1;
+    private static final int THEME_ID_ICS = KeyboardTheme.THEME_ID_ICS;
+    private static final int THEME_ID_KLP = KeyboardTheme.THEME_ID_KLP;
+    private static final int THEME_ID_LMP = KeyboardTheme.THEME_ID_LMP;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mPrefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+    }
+
+    private void assertDefaultKeyboardTheme(final int sdkVersion, final int oldThemeId,
+            final int expectedThemeId) {
+        if (oldThemeId == THEME_ID_NULL) {
+            mPrefs.edit().remove(KeyboardTheme.KITKAT_KEYBOARD_THEME_KEY).apply();
+        } else {
+            final String themeIdString = Integer.toString(oldThemeId);
+            mPrefs.edit().putString(KeyboardTheme.KITKAT_KEYBOARD_THEME_KEY, themeIdString).apply();
+        }
+        final KeyboardTheme defaultTheme =
+                KeyboardTheme.getDefaultKeyboardTheme(mPrefs, sdkVersion);
+        assertNotNull(defaultTheme);
+        assertEquals(expectedThemeId, defaultTheme.mThemeId);
+        assertFalse(mPrefs.contains(KeyboardTheme.KITKAT_KEYBOARD_THEME_KEY));
+    }
+
+    private void assertDefaultKeyboardThemeICS(final int sdkVersion) {
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_ICS);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+    }
+
+    private void assertDefaultKeyboardThemeKLP(final int sdkVersion) {
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_KLP);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+    }
+
+    private void assertDefaultKeyboardThemeLMP(final int sdkVersion) {
+        // Forced to switch to LMP theme.
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_LMP);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_LMP);
+        assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_LMP);
+    }
+
+    public void testDefaultKeyboardThemeICS() {
+        assertDefaultKeyboardThemeICS(VERSION_CODES.ICE_CREAM_SANDWICH);
+        assertDefaultKeyboardThemeICS(VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
+    }
+
+    public void testDefaultKeyboardThemeJB() {
+        assertDefaultKeyboardThemeICS(VERSION_CODES.JELLY_BEAN);
+        assertDefaultKeyboardThemeICS(VERSION_CODES.JELLY_BEAN_MR1);
+        assertDefaultKeyboardThemeICS(VERSION_CODES.JELLY_BEAN_MR2);
+    }
+
+    public void testDefaultKeyboardThemeKLP() {
+        assertDefaultKeyboardThemeKLP(VERSION_CODES.KITKAT);
+    }
+
+    public void testDefaultKeyboardThemeLMP() {
+        // TODO: Update this constant once the *next* version becomes available.
+        assertDefaultKeyboardThemeLMP(VERSION_CODES.CUR_DEVELOPMENT);
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Marathi.java b/tests/src/com/android/inputmethod/keyboard/layout/Marathi.java
new file mode 100644
index 0000000..00cf838
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Marathi.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout;
+
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
+
+import com.android.inputmethod.keyboard.layout.Hindi.HindiCustomizer;
+import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * The Marathi keyboard.
+ */
+public final class Marathi extends LayoutBase {
+    private static final String LAYOUT_NAME = "marathi";
+
+    public Marathi(final LayoutCustomizer customizer) {
+        super(customizer, HindiSymbols.class, SymbolsShifted.class);
+    }
+
+    @Override
+    public String getName() { return LAYOUT_NAME; }
+
+    public static class MarathiCustomizer extends HindiCustomizer {
+        public MarathiCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+            return EMPTY_KEYS;
+        }
+    }
+
+    @Override
+    ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
+
+    @Override
+    ExpectedKey[][] getCommonAlphabetShiftLayout(final boolean isPhone, final int elementId) {
+        return null;
+    }
+
+    private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+            .setKeysOfRow(1,
+                    // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
+                    // U+0914: "औ" DEVANAGARI LETTER AU
+                    // U+0967: "१" DEVANAGARI DIGIT ONE
+                    key(VOWEL_SIGN_AU, "\u094C", joinMoreKeys("\u0914", "\u0967", "1")),
+                    // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
+                    // U+0910: "ऐ" DEVANAGARI LETTER AI
+                    // U+0968: "२" DEVANAGARI DIGIT TWO
+                    key(VOWEL_SIGN_AI, "\u0948", joinMoreKeys("\u0910", "\u0968", "2")),
+                    // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
+                    // U+0906: "आ" DEVANAGARI LETTER AA
+                    // U+0969: "३" DEVANAGARI DIGIT THREE
+                    key(VOWEL_SIGN_AA, "\u093E", joinMoreKeys("\u0906", "\u0969", "3")),
+                    // U+0940: "ी" DEVANAGARI VOWEL SIGN II
+                    // U+0908: "ई" DEVANAGARI LETTER II
+                    // U+096A: "४" DEVANAGARI DIGIT FOUR
+                    key(VOWEL_SIGN_II, "\u0940", joinMoreKeys("\u0908", "\u096A", "4")),
+                    // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
+                    // U+090A: "ऊ" DEVANAGARI LETTER UU
+                    // U+096B: "५" DEVANAGARI DIGIT FIVE
+                    key(VOWEL_SIGN_UU, "\u0942", joinMoreKeys("\u090A", "\u096B", "5")),
+                    // U+092C: "ब" DEVANAGARI LETTER BA
+                    // U+092D: "भ" DEVANAGARI LETTER BHA
+                    // U+096C: "६" DEVANAGARI DIGIT SIX
+                    key("\u092C", joinMoreKeys("\u092D", "\u096C", "6")),
+                    // U+0939: "ह" DEVANAGARI LETTER HA
+                    // U+096D: "७" DEVANAGARI DIGIT SEVEN
+                    key("\u0939", joinMoreKeys("\u096D", "7")),
+                    // U+0917: "ग" DEVANAGARI LETTER GA
+                    // U+0918: "घ" DEVANAGARI LETTER GHA
+                    // U+096E: "८" DEVANAGARI DIGIT EIGHT
+                    key("\u0917", joinMoreKeys("\u0918", "\u096E", "8")),
+                    // U+0926: "द" DEVANAGARI LETTER DA
+                    // U+0927: "ध" DEVANAGARI LETTER DHA
+                    // U+096F: "९" DEVANAGARI DIGIT NINE
+                    key("\u0926", joinMoreKeys("\u0927", "\u096F", "9")),
+                    // U+091C: "ज" DEVANAGARI LETTER JA
+                    // U+091D: "झ" DEVANAGARI LETTER JHA
+                    // U+091C/U+094D/U+091E:
+                    //     "ज्ञ" DEVANAGARI LETTER JA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER NYA
+                    // U+0966: "०" DEVANAGARI DIGIT ZERO
+                    key("\u091C", joinMoreKeys("\u091D", "\u091C\u094D\u091E", "\u0966", "0")),
+                    // U+0921: "ड" DEVANAGARI LETTER DDA
+                    // U+0922: "ढ" DEVANAGARI LETTER DDHA
+                    key("\u0921", moreKey("\u0922")))
+            .setKeysOfRow(2,
+                    // U+094B: "ो" DEVANAGARI VOWEL SIGN O
+                    // U+0913: "ओ" DEVANAGARI LETTER O
+                    key(VOWEL_SIGN_O, "\u094B", moreKey("\u0913")),
+                    // U+0947: "े" DEVANAGARI VOWEL SIGN E
+                    // U+090F: "ए" DEVANAGARI LETTER SHORT E
+                    key(VOWEL_SIGN_E, "\u0947", moreKey("\u090F")),
+                    // U+094D: "्" DEVANAGARI SIGN VIRAMA
+                    // U+0905: "अ" DEVANAGARI LETTER A
+                    key(SIGN_VIRAMA, "\u094D", moreKey("\u0905")),
+                    // U+093F: "ि" DEVANAGARI VOWEL SIGN I
+                    // U+0907: "इ" DEVANAGARI LETTER I
+                    key(VOWEL_SIGN_I, "\u093F", moreKey("\u0907")),
+                    // U+0941: "ु" DEVANAGARI VOWEL SIGN U
+                    // U+0909: "उ" DEVANAGARI LETTER U
+                    key(VOWEL_SIGN_U, "\u0941", moreKey("\u0909")),
+                    // U+092A: "प" DEVANAGARI LETTER PA
+                    // U+092B: "फ" DEVANAGARI LETTER PHA
+                    key("\u092A", moreKey("\u092B")),
+                    // U+0930: "र" DEVANAGARI LETTER RA
+                    // U+0931: "ऱ" DEVANAGARI LETTER RRA
+                    // U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
+                    // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
+                    key("\u0930", joinMoreKeys(
+                            "\u0931", "\u090B", moreKey(VOWEL_SIGN_VOCALIC_R, "\u0943"))),
+                    // U+0915: "क" DEVANAGARI LETTER KA
+                    // U+0916: "ख" DEVANAGARI LETTER KHA
+                    key("\u0915", moreKey("\u0916")),
+                    // U+0924: "त" DEVANAGARI LETTER TA
+                    // U+0925: "थ" DEVANAGARI LETTER THA
+                    // U+0924/U+094D/U+0930:
+                    //     "त्र" DEVANAGARI LETTER TA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
+                    key("\u0924", joinMoreKeys("\u0925", "\u0924\u094D\u0930")),
+                    // U+091A: "च" DEVANAGARI LETTER CA
+                    // U+091B: "छ" DEVANAGARI LETTER CHA
+                    key("\u091A", moreKey("\u091B")),
+                    // U+091F: "ट" DEVANAGARI LETTER TTA
+                    // U+0920: "ठ" DEVANAGARI LETTER TTHA
+                    key("\u091F", moreKey("\u0920")))
+            .setKeysOfRow(3,
+                    // U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
+                    // U+0911: "ऑ" DEVANAGARI LETTER CANDRA O
+                    key(VOWEL_SIGN_CANDRA_O, "\u0949", moreKey("\u0911")),
+                    // U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E
+                    // U+090D: "ऍ" DEVANAGARI LETTER CANDRA E
+                    key(VOWEL_SIGN_CANDRA_E, "\u0945", moreKey("\u090D")),
+                    // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
+                    // U+0903: "ः‍" DEVANAGARI SIGN VISARGA
+                    // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+                    key(SIGN_ANUSVARA, "\u0902", joinMoreKeys(
+                            moreKey(SIGN_VISARGA, "\u0903"), moreKey(SIGN_CANDRABINDU, "\u0901"))),
+                    // U+092E: "म" DEVANAGARI LETTER MA
+                    "\u092E",
+                    // U+0928: "न" DEVANAGARI LETTER NA
+                    // U+0923: "ण" DEVANAGARI LETTER NNA
+                    // U+091E: "ञ" DEVANAGARI LETTER NYA
+                    // U+0919: "ङ" DEVANAGARI LETTER NGA
+                    key("\u0928", joinMoreKeys("\u0923", "\u091E", "\u0919")),
+                    // U+0935: "व" DEVANAGARI LETTER VA
+                    "\u0935",
+                    // U+0932: "ल" DEVANAGARI LETTER LA
+                    // U+0933: "ळ" DEVANAGARI LETTER LLA
+                    key("\u0932", moreKey("\u0933")),
+                    // U+0938: "स" DEVANAGARI LETTER SA
+                    // U+0936: "श" DEVANAGARI LETTER SHA
+                    // U+0937: "ष" DEVANAGARI LETTER SSA
+                    // U+0936/U+094D/U+0930:
+                    //     "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
+                    key("\u0938", joinMoreKeys("\u0936", "\u0937", "\u0936\u094D\u0930")),
+                    // U+092F: "य" DEVANAGARI LETTER YA
+                    "\u092F",
+                    // U+0915/U+094D/U+0937:
+                    //     "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA
+                    "\u0915\u094D\u0937")
+            .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java
index 6176f6a..25be2a6 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java
@@ -109,6 +109,8 @@
     // Icon ids.
     private static final int ICON_DELETE = KeyboardIconsSet.getIconId(
             KeyboardIconsSet.NAME_DELETE_KEY);
+    private static final int ICON_SPACE = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_SPACE_KEY);
     private static final int ICON_TAB = KeyboardIconsSet.getIconId(
             KeyboardIconsSet.NAME_TAB_KEY);
     private static final int ICON_SHORTCUT = KeyboardIconsSet.getIconId(
@@ -131,6 +133,5 @@
             ICON_LANGUAGE_SWITCH, Constants.CODE_LANGUAGE_SWITCH);
     public static final ExpectedKey ENTER_KEY = key(ICON_ENTER, Constants.CODE_ENTER);
     public static final ExpectedKey EMOJI_KEY = key(ICON_EMOJI, Constants.CODE_EMOJI);
-    public static final ExpectedKey SPACE_KEY = key(
-            StringUtils.newSingleCodePointString(Constants.CODE_SPACE));
+    public static final ExpectedKey SPACE_KEY = key(ICON_SPACE, Constants.CODE_SPACE);
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java
index 29264ff..3e82f65 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java
@@ -27,34 +27,34 @@
     @Override
     public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
         return builder
-                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
                 // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
                 // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
                 // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
                 // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                .setMoreKeysOf("e", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0113")
+                .setMoreKeysOf("e", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0113")
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
                 // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
                 // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
                 // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
                 // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                .setMoreKeysOf("u", "\u00FB", "\u00FC", "\u00F9", "\u00FA", "\u016B")
+                .setMoreKeysOf("u", "\u00FA", "\u00FB", "\u00FC", "\u00F9", "\u016B")
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
                 // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
                 // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
                 // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
                 // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                .setMoreKeysOf("i", "\u00EE", "\u00EF", "\u00ED", "\u012B", "\u00EC")
+                .setMoreKeysOf("i", "\u00ED", "\u00EE", "\u00EF", "\u012B", "\u00EC")
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
                 // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
                 // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
                 // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
                 // U+0153: "œ" LATIN SMALL LIGATURE OE
                 // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
                 // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
                 // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
                 .setMoreKeysOf("o",
-                        "\u00F4", "\u00F6", "\u00F2", "\u00F3", "\u0153", "\u00F8", "\u014D",
+                        "\u00F3", "\u00F4", "\u00F6", "\u00F2", "\u0153", "\u00F8", "\u014D",
                         "\u00F5")
                 // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
                 // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMarathiIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMarathiIN.java
new file mode 100644
index 0000000..b937629
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMarathiIN.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Marathi;
+import com.android.inputmethod.keyboard.layout.Marathi.MarathiCustomizer;
+
+import java.util.Locale;
+
+/**
+ * mr_IN: Marathi (India)/marathi
+ */
+@SmallTest
+public final class TestsMarathiIN extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("mr", "IN");
+    private static final LayoutBase LAYOUT = new Marathi(new MarathiCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+}
diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
index 0fb0fa5..9ceafa7 100644
--- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
@@ -46,21 +46,23 @@
 
     private File createEmptyDictionaryAndGetFile(final String dictId,
             final int formatVersion) throws IOException {
-       if (formatVersion == FormatSpec.VERSION4) {
-            return createEmptyVer4DictionaryAndGetFile(dictId);
+        if (formatVersion == FormatSpec.VERSION4
+                || formatVersion == FormatSpec.VERSION4_ONLY_FOR_TESTING) {
+            return createEmptyVer4DictionaryAndGetFile(dictId, formatVersion);
         } else {
             throw new IOException("Dictionary format version " + formatVersion
                     + " is not supported.");
         }
     }
 
-    private File createEmptyVer4DictionaryAndGetFile(final String dictId) throws IOException {
+    private File createEmptyVer4DictionaryAndGetFile(final String dictId,
+            final int formatVersion) throws IOException {
         final File file = File.createTempFile(dictId, TEST_DICT_FILE_EXTENSION,
                 getContext().getCacheDir());
         file.delete();
         file.mkdir();
         Map<String, String> attributeMap = new HashMap<String, String>();
-        if (BinaryDictionaryUtils.createEmptyDictFile(file.getAbsolutePath(), FormatSpec.VERSION4,
+        if (BinaryDictionaryUtils.createEmptyDictFile(file.getAbsolutePath(), formatVersion,
                 Locale.ENGLISH, attributeMap)) {
             return file;
         } else {
@@ -1223,4 +1225,36 @@
             }
         }
     }
+
+    public void testDictMigration() {
+        testDictMigration(FormatSpec.VERSION4_ONLY_FOR_TESTING, FormatSpec.VERSION4);
+    }
+
+    private void testDictMigration(final int fromFormatVersion, final int toFormatVersion) {
+        File dictFile = null;
+        try {
+            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", fromFormatVersion);
+        } catch (IOException e) {
+            fail("IOException while writing an initial dictionary : " + e);
+        }
+        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
+                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
+                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final int unigramProbability = 100;
+        addUnigramWord(binaryDictionary, "aaa", unigramProbability);
+        addUnigramWord(binaryDictionary, "bbb", unigramProbability);
+        final int bigramProbability = 10;
+        addBigramWords(binaryDictionary, "aaa", "bbb", bigramProbability);
+        assertEquals(unigramProbability, binaryDictionary.getFrequency("aaa"));
+        assertEquals(unigramProbability, binaryDictionary.getFrequency("bbb"));
+        assertTrue(binaryDictionary.isValidBigram("aaa", "bbb"));
+        assertEquals(fromFormatVersion, binaryDictionary.getFormatVersion());
+        assertTrue(binaryDictionary.migrateTo(toFormatVersion));
+        assertTrue(binaryDictionary.isValidDictionary());
+        assertEquals(toFormatVersion, binaryDictionary.getFormatVersion());
+        assertEquals(unigramProbability, binaryDictionary.getFrequency("aaa"));
+        assertEquals(unigramProbability, binaryDictionary.getFrequency("bbb"));
+        // TODO: Add tests for bigram frequency when the implementation gets ready.
+        assertTrue(binaryDictionary.isValidBigram("aaa", "bbb"));
+    }
 }
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index d2dd292..29423e8 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -334,6 +334,18 @@
         assertEquals("manual pick then separator", EXPECTED_RESULT, mEditText.getText().toString());
     }
 
+    // This test matches the one in InputLogicTestsNonEnglish. In some non-English languages,
+    // ! and ? are clustering punctuation signs.
+    public void testClusteringPunctuation() {
+        final String WORD1_TO_TYPE = "test";
+        final String WORD2_TO_TYPE = "!!?!:!";
+        final String EXPECTED_RESULT = "test!!?!:!";
+        type(WORD1_TO_TYPE);
+        pickSuggestionManually(0, WORD1_TO_TYPE);
+        type(WORD2_TO_TYPE);
+        assertEquals("clustering punctuation", EXPECTED_RESULT, mEditText.getText().toString());
+    }
+
     public void testManualPickThenStripperThenPick() {
         final String WORD_TO_TYPE = "this";
         final String STRIPPER = "\n";
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java b/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java
index 1257ae2..68b6ee6 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java
@@ -45,6 +45,19 @@
                 mEditText.getText().toString());
     }
 
+    public void testClusteringPunctuationForFrench() {
+        final String WORD1_TO_TYPE = "test";
+        final String WORD2_TO_TYPE = "!!?!:!";
+        // In English, the expected result would be "test!!?!:!"
+        final String EXPECTED_RESULT = "test !!?! : !";
+        changeLanguage("fr");
+        type(WORD1_TO_TYPE);
+        pickSuggestionManually(0, WORD1_TO_TYPE);
+        type(WORD2_TO_TYPE);
+        assertEquals("clustering punctuation for French", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
     public void testWordThenSpaceThenPunctuationFromStripTwiceForFrench() {
         final String WORD_TO_TYPE = "test ";
         final String PUNCTUATION_FROM_STRIP = "!";
diff --git a/tools/make-keyboard-text/res/values-en/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-en/donottranslate-more-keys.xml
index 7998bf1..c22edba 100644
--- a/tools/make-keyboard-text/res/values-en/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-en/donottranslate-more-keys.xml
@@ -27,33 +27,33 @@
          U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
          U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
     <string name="morekeys_a">&#x00E0;,&#x00E1;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;</string>
-    <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-         U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+    <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+         U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
          U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
          U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
          U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
-    <string name="morekeys_e">&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0113;</string>
-    <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+    <string name="morekeys_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0113;</string>
+    <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+         U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
          U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-         U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
          U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
          U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE -->
-    <string name="morekeys_i">&#x00EE;,&#x00EF;,&#x00ED;,&#x012B;,&#x00EC;</string>
-    <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+    <string name="morekeys_i">&#x00ED;,&#x00EE;,&#x00EF;,&#x012B;,&#x00EC;</string>
+    <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+         U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
          U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
          U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-         U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
          U+0153: "œ" LATIN SMALL LIGATURE OE
          U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
          U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
          U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE -->
-    <string name="morekeys_o">&#x00F4;,&#x00F6;,&#x00F2;,&#x00F3;,&#x0153;,&#x00F8;,&#x014D;,&#x00F5;</string>
-    <!-- U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+    <string name="morekeys_o">&#x00F3;,&#x00F4;,&#x00F6;,&#x00F2;,&#x0153;,&#x00F8;,&#x014D;,&#x00F5;</string>
+    <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+         U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
          U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
          U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-         U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
          U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
-    <string name="morekeys_u">&#x00FB;,&#x00FC;,&#x00F9;,&#x00FA;,&#x016B;</string>
+    <string name="morekeys_u">&#x00FA;,&#x00FB;,&#x00FC;,&#x00F9;,&#x016B;</string>
     <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S -->
     <string name="morekeys_s">&#x00DF;</string>
     <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
diff --git a/tools/make-keyboard-text/res/values-mr-rIN/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-mr-rIN/donottranslate-more-keys.xml
new file mode 100644
index 0000000..19db16d
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-mr-rIN/donottranslate-more-keys.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, 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">
+    <!-- Label for "switch to alphabetic" key.
+         U+0915: "क" DEVANAGARI LETTER KA
+         U+0916: "ख" DEVANAGARI LETTER KHA
+         U+0917: "ग" DEVANAGARI LETTER GA -->
+    <string name="keylabel_to_alpha">&#x0915;&#x0916;&#x0917;</string>
+    <!-- U+0967: "१" DEVANAGARI DIGIT ONE -->
+    <string name="keyspec_symbols_1">&#x0967;</string>
+    <!-- U+0968: "२" DEVANAGARI DIGIT TWO -->
+    <string name="keyspec_symbols_2">&#x0968;</string>
+    <!-- U+0969: "३" DEVANAGARI DIGIT THREE -->
+    <string name="keyspec_symbols_3">&#x0969;</string>
+    <!-- U+096A: "४" DEVANAGARI DIGIT FOUR -->
+    <string name="keyspec_symbols_4">&#x096A;</string>
+    <!-- U+096B: "५" DEVANAGARI DIGIT FIVE -->
+    <string name="keyspec_symbols_5">&#x096B;</string>
+    <!-- U+096C: "६" DEVANAGARI DIGIT SIX -->
+    <string name="keyspec_symbols_6">&#x096C;</string>
+    <!-- U+096D: "७" DEVANAGARI DIGIT SEVEN -->
+    <string name="keyspec_symbols_7">&#x096D;</string>
+    <!-- U+096E: "८" DEVANAGARI DIGIT EIGHT -->
+    <string name="keyspec_symbols_8">&#x096E;</string>
+    <!-- U+096F: "९" DEVANAGARI DIGIT NINE -->
+    <string name="keyspec_symbols_9">&#x096F;</string>
+    <!-- U+0966: "०" DEVANAGARI DIGIT ZERO -->
+    <string name="keyspec_symbols_0">&#x0966;</string>
+    <!-- Label for "switch to symbols" key. -->
+    <string name="keylabel_to_symbol">?&#x0967;&#x0968;&#x0969;</string>
+    <string name="additional_morekeys_symbols_1">1</string>
+    <string name="additional_morekeys_symbols_2">2</string>
+    <string name="additional_morekeys_symbols_3">3</string>
+    <string name="additional_morekeys_symbols_4">4</string>
+    <string name="additional_morekeys_symbols_5">5</string>
+    <string name="additional_morekeys_symbols_6">6</string>
+    <string name="additional_morekeys_symbols_7">7</string>
+    <string name="additional_morekeys_symbols_8">8</string>
+    <string name="additional_morekeys_symbols_9">9</string>
+    <string name="additional_morekeys_symbols_0">0</string>
+    <!-- U+20B9: "₹" INDIAN RUPEE SIGN -->
+    <string name="keyspec_currency">&#x20B9;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-zu/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-zu/donottranslate-more-keys.xml
index f9150f3..2c5df0c 100644
--- a/tools/make-keyboard-text/res/values-zu/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-zu/donottranslate-more-keys.xml
@@ -28,33 +28,33 @@
          U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
          U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
     <string name="morekeys_a">&#x00E0;,&#x00E1;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;</string>
-    <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-         U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+    <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+         U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
          U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
          U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
          U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
-    <string name="morekeys_e">&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0113;</string>
-    <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+    <string name="morekeys_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0113;</string>
+    <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+         U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
          U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-         U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
          U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
          U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE -->
-    <string name="morekeys_i">&#x00EE;,&#x00EF;,&#x00ED;,&#x012B;,&#x00EC;</string>
-    <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+    <string name="morekeys_i">&#x00ED;,&#x00EE;,&#x00EF;,&#x012B;,&#x00EC;</string>
+    <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+         U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
          U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
          U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-         U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
          U+0153: "œ" LATIN SMALL LIGATURE OE
          U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
          U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
          U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE -->
-    <string name="morekeys_o">&#x00F4;,&#x00F6;,&#x00F2;,&#x00F3;,&#x0153;,&#x00F8;,&#x014D;,&#x00F5;</string>
-    <!-- U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+    <string name="morekeys_o">&#x00F3;,&#x00F4;,&#x00F6;,&#x00F2;,&#x0153;,&#x00F8;,&#x014D;,&#x00F5;</string>
+    <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+         U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
          U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
          U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-         U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
          U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
-    <string name="morekeys_u">&#x00FB;,&#x00FC;,&#x00F9;,&#x00FA;,&#x016B;</string>
+    <string name="morekeys_u">&#x00FA;,&#x00FB;,&#x00FC;,&#x00F9;,&#x016B;</string>
     <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S -->
     <string name="morekeys_s">&#x00DF;</string>
     <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
