diff --git a/java/src/org/futo/inputmethod/keyboard/KeyboardLayoutSet.java b/java/src/org/futo/inputmethod/keyboard/KeyboardLayoutSet.java
index 2243c5dfa90faf0be9a55a3739dd637e6486423d..39d8f2eb404d75736a72667e58c992b03a17f2c8 100644
--- a/java/src/org/futo/inputmethod/keyboard/KeyboardLayoutSet.java
+++ b/java/src/org/futo/inputmethod/keyboard/KeyboardLayoutSet.java
@@ -476,7 +476,7 @@ public final class KeyboardLayoutSet {
                 elementParams.mSupportsSplitLayout = a.getBoolean(
                         R.styleable.KeyboardLayoutSet_Element_supportsSplitLayout, false);
                 elementParams.mAllowRedundantMoreKeys = a.getBoolean(
-                        R.styleable.KeyboardLayoutSet_Element_allowRedundantMoreKeys, true);
+                        R.styleable.KeyboardLayoutSet_Element_allowRedundantMoreKeys, false);
                 mParams.mKeyboardLayoutSetElementIdToParamsMap.put(elementName, elementParams);
             } finally {
                 a.recycle();
diff --git a/java/src/org/futo/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/org/futo/inputmethod/keyboard/internal/KeyboardTextsTable.java
index 32f90a3443775c4a3fde259ed33dcc6192c75b74..4bac6657294105deb12839d34ff40c5130a7a0bc 100644
--- a/java/src/org/futo/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/org/futo/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -87,285 +87,285 @@ public final class KeyboardTextsTable {
         "double_quotes",
         "single_quotes",
         "morekeys_c",
-        "morekeys_s",
-        "morekeys_misc_o",
-        "morekeys_misc_a",
         "keyspec_currency",
+        "morekeys_misc_a",
+        "morekeys_misc_o",
+        "morekeys_s",
         "morekeys_misc_u",
         "morekeys_misc_e",
+        "morekeys_n",
         "morekeys_z",
         "morekeys_misc_i",
-        "morekeys_n",
-        "morekeys_misc_s",
         "morekeys_misc_c",
+        "morekeys_misc_s",
         "double_angle_quotes",
         "single_angle_quotes",
         "morekeys_y",
         "morekeys_d",
         "morekeys_g",
         "morekeys_misc_z",
-        "additional_morekeys_symbols_2",
-        "keyspec_symbols_7",
-        "additional_morekeys_symbols_8",
-        "keyspec_symbols_8",
-        "keyspec_symbols_0",
-        "keylabel_to_symbol",
-        "keyspec_symbols_6",
         "morekeys_cyrillic_ie",
-        "additional_morekeys_symbols_4",
         "additional_morekeys_symbols_3",
-        "morekeys_tablet_period",
-        "additional_morekeys_symbols_5",
-        "additional_morekeys_symbols_1",
         "additional_morekeys_symbols_6",
+        "keyspec_symbols_9",
+        "keyspec_symbols_6",
+        "additional_morekeys_symbols_5",
         "additional_morekeys_symbols_7",
-        "keyspec_symbols_2",
+        "keylabel_to_symbol",
         "additional_morekeys_symbols_9",
-        "keyspec_symbols_5",
+        "additional_morekeys_symbols_8",
+        "additional_morekeys_symbols_2",
+        "keyspec_symbols_4",
+        "keyspec_symbols_7",
         "keyspec_symbols_3",
-        "keyspec_symbols_1",
+        "keyspec_symbols_5",
+        "morekeys_tablet_period",
+        "additional_morekeys_symbols_1",
+        "keyspec_symbols_8",
+        "additional_morekeys_symbols_4",
         "additional_morekeys_symbols_0",
-        "keyspec_symbols_4",
-        "keyspec_symbols_9",
+        "keyspec_symbols_2",
+        "keyspec_symbols_0",
+        "keyspec_symbols_1",
         "morekeys_misc_n",
-        "morekeys_nordic_row2_10",
         "keyspec_east_slavic_row2_11",
-        "keyspec_east_slavic_row3_5",
-        "keyspec_period",
+        "morekeys_cyrillic_soft_sign",
         "morekeys_period",
-        "keyspec_tablet_comma",
         "morekeys_t",
-        "morekeys_cyrillic_soft_sign",
-        "keyspec_nordic_row1_11",
+        "morekeys_nordic_row2_10",
+        "keyspec_tablet_comma",
         "keyspec_nordic_row2_10",
-        "keyspec_east_slavic_row1_9",
         "keyspec_east_slavic_row2_2",
+        "keyspec_nordic_row1_11",
         "keyspec_nordic_row2_11",
+        "keyspec_east_slavic_row3_5",
+        "keyspec_east_slavic_row1_9",
+        "keyspec_period",
+        "morekeys_r",
         "keyspec_left_double_angle_quote",
-        "keyspec_greater_than",
-        "keyspec_tablet_period",
-        "keyspec_right_parenthesis",
-        "keyspec_left_single_angle_quote",
+        "keyspec_right_curly_bracket",
+        "morekeys_tablet_comma",
         "keyspec_right_single_angle_quote",
-        "morekeys_r",
-        "keyspec_right_double_angle_quote",
+        "keyspec_left_parenthesis",
+        "keyspec_less_than",
+        "morekeys_nordic_row2_11",
         "morekeys_question",
+        "keyspec_right_parenthesis",
+        "keyspec_less_than_equal",
         "keyspec_left_curly_bracket",
-        "morekeys_nordic_row2_11",
-        "morekeys_star",
-        "keyspec_left_square_bracket",
-        "keyspec_right_square_bracket",
-        "morekeys_tablet_comma",
-        "keyspec_right_curly_bracket",
-        "keyspec_comma",
-        "morekeys_l",
         "morekeys_punctuation",
-        "keyspec_left_parenthesis",
-        "keyspec_less_than",
-        "keyhintlabel_period",
+        "morekeys_l",
+        "keyspec_left_single_angle_quote",
+        "keyspec_left_square_bracket",
+        "morekeys_star",
+        "keyspec_right_double_angle_quote",
         "keyspec_greater_than_equal",
-        "keyspec_less_than_equal",
-        "morekeys_left_parenthesis",
+        "keyhintlabel_period",
+        "keyspec_greater_than",
+        "keyspec_comma",
+        "keyspec_tablet_period",
+        "keyspec_right_square_bracket",
+        "keyspec_symbols_percent",
+        "morekeys_misc_y",
+        "morekeys_swiss_row2_11",
+        "keyhintlabel_tablet_period",
         "keyspec_swiss_row1_11",
-        "keyspec_symbols_question",
-        "morekeys_symbols_percent",
+        "morekeys_left_parenthesis",
         "morekeys_arabic_diacritics",
         "keyspec_swiss_row2_11",
+        "morekeys_bullet",
+        "morekeys_symbols_percent",
+        "morekeys_swiss_row1_11",
+        "morekeys_right_parenthesis",
+        "keyspec_symbols_question",
+        "morekeys_swiss_row2_10",
+        "morekeys_symbols_semicolon",
         "keyspec_symbols_semicolon",
-        "keyhintlabel_tablet_comma",
         "keyspec_swiss_row2_10",
-        "keyspec_symbols_percent",
-        "morekeys_symbols_semicolon",
-        "morekeys_misc_y",
+        "keyhintlabel_tablet_comma",
         "keyspec_spanish_row2_10",
-        "morekeys_swiss_row2_10",
-        "morekeys_right_parenthesis",
-        "morekeys_bullet",
-        "morekeys_swiss_row1_11",
-        "morekeys_swiss_row2_11",
-        "keyhintlabel_tablet_period",
+        "morekeys_h",
+        "morekeys_tablet_punctuation",
+        "morekeys_k",
         "label_send_key",
-        "label_previous_key",
+        "morekeys_misc_g",
+        "label_go_key",
         "keyspec_south_slavic_row3_8",
-        "morekeys_k",
+        "morekeys_cyrillic_i",
         "label_wait_key",
-        "morekeys_cyrillic_ghe",
-        "keyspec_south_slavic_row3_1",
-        "morekeys_tablet_punctuation",
+        "morekeys_misc_r",
         "label_done_key",
+        "label_next_key",
         "keyspec_south_slavic_row2_11",
+        "morekeys_misc_l",
+        "label_previous_key",
+        "keyspec_south_slavic_row3_1",
         "label_search_key",
-        "morekeys_cyrillic_en",
-        "label_pause_key",
         "keyspec_south_slavic_row1_6",
-        "morekeys_east_slavic_row2_2",
-        "label_next_key",
-        "morekeys_misc_l",
-        "morekeys_misc_g",
-        "label_go_key",
-        "morekeys_h",
-        "morekeys_misc_r",
-        "morekeys_cyrillic_i",
         "morekeys_cyrillic_u",
+        "morekeys_cyrillic_en",
         "morekeys_cyrillic_o",
-        "morekeys_plus",
-        "morekeys_j",
-        "keyspec_y",
-        "morekeys_currency_dollar",
-        "morekeys_greater_than",
+        "morekeys_east_slavic_row2_2",
+        "morekeys_cyrillic_ghe",
+        "label_pause_key",
+        "morekeys_misc_t",
         "morekeys_exclamation",
-        "morekeys_w",
+        "morekeys_cyrillic_a",
+        "keyspec_q",
+        "keyspec_x",
+        "morekeys_east_slavic_row2_11",
         "keyspec_w",
-        "morekeys_misc_t",
         "morekeys_misc_h",
-        "keyspec_x",
         "morekeys_cyrillic_ka",
-        "morekeys_east_slavic_row2_11",
-        "morekeys_cyrillic_a",
-        "keyspec_q",
+        "morekeys_greater_than",
         "morekeys_less_than",
-        "morekeys_misc_x",
-        "single_lqm_rqm",
+        "morekeys_plus",
+        "keyspec_y",
+        "morekeys_j",
+        "morekeys_currency_dollar",
+        "morekeys_w",
+        "double_9qm_rqm",
+        "actions_d",
+        "actions_4",
+        "actions_j",
         "morekeys_misc_k",
-        "actions_1",
-        "morekeys_symbols_6",
-        "actions_l",
-        "morekeys_misc_b",
-        "actions_c",
-        "morekeys_m",
-        "keylabel_to_phone_numeric",
-        "qwertysyms_t",
-        "actions_8",
-        "single_9qm_rqm",
+        "number_7",
+        "qwertysyms_z",
+        "qwertysyms_8",
+        "number_9",
+        "morekeys_symbols_0",
+        "actions_g",
+        "keyspec_action_next",
         "qwertysyms_g",
-        "actions_4",
-        "actions_5",
-        "morekeys_symbols_9",
-        "morekeys_misc_q",
-        "morekeys_f",
+        "morekeys_p",
+        "morekeys_misc_m",
+        "morekeys_misc_j",
+        "double_raqm_laqm",
+        "qwertysyms_q",
+        "actions_w",
+        "qwertysyms_1",
+        "morekeys_double_quote",
+        "qwertysyms_3",
+        "keylabel_to_phone_numeric",
         "qwertysyms_n",
-        "qwertysyms_u",
-        "qwertysyms_e",
-        "qwertysyms_4",
-        "keylabel_to_phone_symbols",
+        "qwertysyms_i",
+        "morekeys_symbols_3",
+        "single_lqm_rqm",
+        "qwertysyms_k",
+        "morekeys_misc_v",
+        "keyspec_settings",
+        "actions_t",
+        "morekeys_symbols_8",
         "keyspecs_left_parenthesis_more_keys",
-        "single_9qm_lqm",
-        "actions_s",
-        "qwertysyms_r",
-        "qwertysyms_b",
-        "qwertysyms_m",
-        "morekeys_v",
-        "qwertysyms_a",
-        "morekeys_q",
+        "morekeys_b",
+        "morekeys_misc_w",
+        "actions_l",
+        "keyspec_shortcut",
         "actions_0",
-        "actions_j",
-        "actions_w",
-        "qwertysyms_j",
-        "morekeys_misc_p",
-        "number_0",
-        "single_raqm_laqm",
-        "morekeys_misc_v",
-        "actions_o",
-        "actions_3",
-        "morekeys_x",
-        "qwertysyms_l",
-        "double_9qm_lqm",
         "actions_i",
-        "double_raqm_laqm",
-        "actions_u",
-        "morekeys_symbols_0",
-        "actions_r",
-        "qwertysyms_o",
+        "qwertysyms_j",
+        "morekeys_popular_domain",
+        "qwertysyms_x",
+        "number_1",
+        "morekeys_symbols_5",
+        "actions_n",
+        "actions_y",
+        "actions_q",
+        "morekeys_f",
+        "morekeys_symbols_4",
+        "actions_1",
+        "qwertysyms_v",
+        "morekeys_symbols_7",
         "morekeys_symbols_1",
-        "morekeys_currency_generic",
-        "morekeys_symbols_8",
+        "morekeys_symbols_2",
+        "qwertysyms_t",
+        "qwertysyms_s",
+        "actions_e",
+        "morekeys_misc_d",
         "actions_m",
-        "qwertysyms_d",
-        "single_laqm_raqm",
         "qwertysyms_w",
-        "actions_p",
-        "qwertysyms_0",
-        "morekeys_symbols_5",
-        "actions_9",
-        "qwertysyms_h",
-        "qwertysyms_3",
-        "actions_a",
-        "morekeys_b",
-        "number_2",
-        "morekeys_am_pm",
+        "qwertysyms_p",
+        "actions_v",
+        "actions_f",
         "qwertysyms_f",
-        "morekeys_double_quote",
-        "actions_7",
         "single_rqm_9qm",
-        "number_8",
-        "qwertysyms_z",
-        "morekeys_misc_w",
-        "keylabel_time_am",
-        "actions_v",
-        "number_7",
-        "morekeys_misc_f",
+        "actions_o",
+        "double_lqm_rqm",
+        "single_9qm_lqm",
+        "actions_2",
         "keylabel_tablet_to_more_symbol",
+        "keylabel_time_am",
+        "actions_s",
+        "single_raqm_laqm",
+        "morekeys_tablet_double_quote",
         "actions_k",
-        "number_9",
-        "keyspec_popular_domain",
-        "actions_2",
-        "qwertysyms_1",
-        "morekeys_symbols_7",
-        "actions_d",
-        "actions_g",
+        "morekeys_symbols_6",
+        "keyspec_action_previous",
         "qwertysyms_c",
-        "actions_f",
-        "morekeys_symbols_4",
-        "morekeys_single_quote",
-        "double_lqm_rqm",
-        "keyspec_settings",
-        "qwertysyms_8",
-        "qwertysyms_s",
-        "qwertysyms_9",
-        "keyspec_shortcut",
-        "actions_n",
-        "qwertysyms_v",
+        "qwertysyms_4",
+        "qwertysyms_b",
+        "qwertysyms_a",
+        "actions_6",
         "actions_h",
-        "qwertysyms_p",
         "actions_z",
-        "morekeys_misc_d",
-        "keylabel_time_pm",
-        "morekeys_misc_j",
-        "number_3",
-        "number_1",
+        "morekeys_symbols_9",
+        "morekeys_misc_f",
+        "morekeys_m",
+        "morekeys_single_quote",
+        "qwertysyms_6",
+        "double_rqm_9qm",
+        "morekeys_currency_generic",
+        "qwertysyms_u",
+        "number_8",
+        "morekeys_v",
+        "actions_8",
+        "qwertysyms_o",
+        "actions_u",
+        "actions_a",
+        "number_5",
         "actions_x",
-        "actions_e",
-        "qwertysyms_q",
-        "actions_q",
-        "double_laqm_raqm",
-        "keyspec_action_next",
-        "morekeys_misc_m",
-        "keyspec_emoji_action_key",
-        "number_6",
-        "qwertysyms_i",
-        "actions_6",
         "keyspecs_right_parenthesis_more_keys",
-        "qwertysyms_5",
-        "keyspec_action_previous",
-        "qwertysyms_k",
-        "actions_b",
+        "morekeys_q",
+        "actions_5",
+        "morekeys_misc_b",
+        "morekeys_misc_q",
+        "qwertysyms_l",
+        "qwertysyms_m",
         "number_4",
-        "morekeys_symbols_2",
+        "morekeys_am_pm",
+        "number_6",
+        "qwertysyms_9",
+        "actions_b",
+        "double_9qm_lqm",
+        "number_2",
+        "qwertysyms_r",
+        "qwertysyms_5",
+        "keylabel_to_more_symbol",
+        "morekeys_misc_p",
+        "keylabel_time_pm",
+        "single_laqm_raqm",
+        "actions_7",
+        "actions_c",
+        "actions_9",
+        "keyspec_popular_domain",
+        "qwertysyms_e",
+        "qwertysyms_d",
+        "morekeys_misc_x",
+        "keyspec_emoji_action_key",
+        "qwertysyms_2",
+        "qwertysyms_7",
+        "actions_3",
+        "double_laqm_raqm",
+        "single_9qm_rqm",
+        "actions_r",
+        "keylabel_to_phone_symbols",
+        "qwertysyms_0",
+        "morekeys_x",
         "qwertysyms_y",
-        "double_rqm_9qm",
-        "actions_t",
-        "qwertysyms_7",
-        "qwertysyms_2",
-        "morekeys_symbols_3",
-        "qwertysyms_6",
-        "morekeys_p",
-        "qwertysyms_x",
-        "actions_y",
-        "morekeys_popular_domain",
-        "keylabel_to_more_symbol",
-        "number_5",
-        "morekeys_tablet_double_quote",
-        "double_9qm_rqm"
+        "actions_p",
+        "qwertysyms_h",
+        "number_3",
+        "number_0"
     };
 
     private static final String EMPTY = "";
@@ -382,12 +382,13 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00f6,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
         "\u00e2,\u00e4,\u00e0,\u00e6,\u00e3,\u00e5,\u0101",
+        "\u00f6,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
         null,
         "\u00fc,\u00f9,\u016b",
         "\u0119,\u0117,\u0113",
         null,
+        null,
         "\u012f,\u012b,\u0133"
     };
 
@@ -419,35 +420,35 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "2",
-        "\u0667",
-        "8",
-        "\u0668",
-        "\u0660",
-        "\u0663\u0662\u0661\u061f",
-        "\u0666",
         null,
-        "4",
         "3",
-        "!text/morekeys_arabic_diacritics",
-        "5",
-        "1",
         "6",
+        "\u0669",
+        "\u0666",
+        "5",
         "7",
-        "\u0662",
+        "\u0663\u0662\u0661\u061f",
         "9",
-        "\u0665",
+        "8",
+        "2",
+        "\u0664",
+        "\u0667",
         "\u0663",
-        "\u0661",
+        "\u0665",
+        "!text/morekeys_arabic_diacritics",
+        "1",
+        "\u0668",
+        "4",
         "0,\u066b,\u066c",
-        "\u0664",
-        "\u0669",
+        "\u0662",
+        "\u0660",
+        "\u0661",
         null,
         null,
         null,
+        "!text/morekeys_arabic_diacritics",
         null,
         null,
-        "!text/morekeys_arabic_diacritics",
         "\u060c",
         null,
         null,
@@ -456,49 +457,48 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00ab|\u00bb",
-        ">|<",
         null,
-        ")|(",
-        "\u2039|\u203a",
+        "\u00ab|\u00bb",
+        "}|{",
+        "!fixedColumnOrder!4,:,!,\u061f,\u061b,-,\\\",\\'",
         "\u203a|\u2039",
+        "(|)",
+        "<|>",
         null,
-        "\u00bb|\u00ab",
         "?,\u00bf",
+        ")|(",
+        "\u2264|\u2265",
         "{|}",
         null,
-        "\u2605,\u066d",
+        null,
+        "\u2039|\u203a",
         "[|]",
-        "]|[",
-        "!fixedColumnOrder!4,:,!,\u061f,\u061b,-,\\\",\\'",
-        "}|{",
+        "\u2605,\u066d",
+        "\u00bb|\u00ab",
+        "\u2265|\u2264",
+        "\u0651",
+        ">|<",
         "\u060c",
         null,
+        "]|[",
+        "\u066a",
+        null,
         null,
-        "(|)",
-        "<|>",
         "\u0651",
-        "\u2265|\u2264",
-        "\u2264|\u2265",
+        null,
         "!fixedColumnOrder!4,\ufd3e|\ufd3f,!text/keyspecs_left_parenthesis_more_keys",
+        "!fixedColumnOrder!7, \u0655|\u0655, \u0654|\u0654, \u0652|\u0652, \u064d|\u064d, \u064c|\u064c, \u064b|\u064b, \u0651|\u0651, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u0650|\u0650, \u064f|\u064f, \u064e|\u064e,\u0640\u0640\u0640|\u0640",
         null,
-        "\u061f",
+        "\u266a",
         "\\%,\u2030",
-        "!fixedColumnOrder!7, \u0655|\u0655, \u0654|\u0654, \u0652|\u0652, \u064d|\u064d, \u064c|\u064c, \u064b|\u064b, \u0651|\u0651, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u0650|\u0650, \u064f|\u064f, \u064e|\u064e,\u0640\u0640\u0640|\u0640",
         null,
-        "\u061b",
+        "!fixedColumnOrder!4,\ufd3f|\ufd3e,!text/keyspecs_right_parenthesis_more_keys",
         "\u061f",
         null,
-        "\u066a",
         ";",
+        "\u061b",
         null,
-        null,
-        null,
-        "!fixedColumnOrder!4,\ufd3f|\ufd3e,!text/keyspecs_right_parenthesis_more_keys",
-        "\u266a",
-        null,
-        null,
-        "\u0651"
+        "\u061f"
     };
 
     private static final String[] TEXTS_az = {
@@ -512,15 +512,15 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u00e7,\u0107,\u010d",
-        "\u015f,\u00df,\u015b,\u0161",
         null,
         null,
         null,
+        "\u015f,\u00df,\u015b,\u0161",
         null,
         null,
+        "\u0148,\u00f1",
         "\u017e",
         null,
-        "\u0148,\u00f1",
         null,
         null,
         null,
@@ -558,6 +558,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0451",
         null,
         null,
         null,
@@ -565,8 +566,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0451",
-        null,
         null,
         null,
         null,
@@ -584,16 +583,17 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u044d",
-        "\u0456",
+        "\u044a",
         null,
         null,
         null,
         null,
-        "\u044a",
+        null,
+        "\u044b",
         null,
         null,
-        "\u045e",
-        "\u044b"
+        "\u0456",
+        "\u045e"
     };
 
     private static final String[] TEXTS_bg = {
@@ -618,9 +618,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u09f3"
     };
 
@@ -635,9 +632,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u20b9"
     };
 
@@ -653,15 +647,14 @@ public final class KeyboardTextsTable {
         null,
         "\u00e7",
         null,
-        "\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba",
         "\u00e1,\u00e4,\u00e2,\u00e3,\u00e5,\u0105,\u00e6,\u0101,\u00aa",
+        "\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba",
         null,
         "\u00f9,\u00fb,\u016b",
         "\u00eb,\u00ea,\u0119,\u0117,\u0113",
         null,
-        "\u00ec,\u00ee,\u012f,\u012b",
-        null,
         null,
+        "\u00ec,\u00ee,\u012f,\u012b",
         "\u0107,\u010d",
         null,
         null,
@@ -719,11 +712,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
-        null,
-        null,
         "!autoColumnOrder!9,\\,?,!,\u00b7,#,),(,/,;,',@,:,-,\\\",+,\\%,&",
         null,
         null,
@@ -742,7 +730,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00e7",
         null,
         null,
         null,
@@ -755,6 +742,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u00e7",
         null,
         "!autoColumnOrder!8,\\,',\u00b7,#,),(,/,;,@,:,-,\\\",+,\\%,&"
     };
@@ -787,35 +775,35 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "2",
-        "\u0667",
-        "8",
-        "\u0668",
-        "\u0660",
-        "\u0663\u0662\u0661\u061f",
-        "\u0666",
         null,
-        "4",
         "3",
-        "\u061f",
-        "5",
-        "1",
         "6",
+        "\u0669",
+        "\u0666",
+        "5",
         "7",
-        "\u0662",
+        "\u0663\u0662\u0661\u061f",
         "9",
-        "\u0665",
+        "8",
+        "2",
+        "\u0664",
+        "\u0667",
         "\u0663",
-        "\u0661",
+        "\u0665",
+        "\u061f",
+        "1",
+        "\u0668",
+        "4",
         "0,\u066b,\u066c",
-        "\u0664",
-        "\u0669",
-        null,
+        "\u0662",
+        "\u0660",
+        "\u0661",
         null,
         null,
         null,
-        ".",
         "\u061f",
+        null,
+        null,
         "\u060c",
         null,
         null,
@@ -823,50 +811,49 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        ".",
         null,
         "\u00ab|\u00bb",
-        ">|<",
-        null,
-        ")|(",
-        "\u2039|\u203a",
+        "}|{",
+        "!fixedColumnOrder!4,:,!,\u061f,\u061b,-,\\\",\\'",
         "\u203a|\u2039",
+        "(|)",
+        "<|>",
         null,
-        "\u00bb|\u00ab",
         "?,\u00bf",
+        ")|(",
+        "\u2264|\u2265",
         "{|}",
         null,
-        "\u2605,\u066d",
+        null,
+        "\u2039|\u203a",
         "[|]",
-        "]|[",
-        "!fixedColumnOrder!4,:,!,\u061f,\u061b,-,\\\",\\'",
-        "}|{",
+        "\u2605,\u066d",
+        "\u00bb|\u00ab",
+        "\u2265|\u2264",
+        "\u0651",
+        ">|<",
         "\u060c",
         null,
+        "]|[",
+        "\u066a",
+        null,
         null,
-        "(|)",
-        "<|>",
         "\u0651",
-        "\u2265|\u2264",
-        "\u2264|\u2265",
+        null,
         "!fixedColumnOrder!4,\ufd3e|\ufd3f,!text/keyspecs_left_parenthesis_more_keys",
+        "!fixedColumnOrder!7, \u0655|\u0655, \u0654|\u0654, \u0652|\u0652, \u064d|\u064d, \u064c|\u064c, \u064b|\u064b, \u0651|\u0651, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u0650|\u0650, \u064f|\u064f, \u064e|\u064e,\u0640\u0640\u0640|\u0640",
         null,
-        "\u061f",
+        "\u266a",
         "\\%,\u2030",
-        "!fixedColumnOrder!7, \u0655|\u0655, \u0654|\u0654, \u0652|\u0652, \u064d|\u064d, \u064c|\u064c, \u064b|\u064b, \u0651|\u0651, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u0650|\u0650, \u064f|\u064f, \u064e|\u064e,\u0640\u0640\u0640|\u0640",
         null,
-        "\u061b",
+        "!fixedColumnOrder!4,\ufd3f|\ufd3e,!text/keyspecs_right_parenthesis_more_keys",
         "\u061f",
         null,
-        "\u066a",
         ";",
+        "\u061b",
         null,
-        null,
-        null,
-        "!fixedColumnOrder!4,\ufd3f|\ufd3e,!text/keyspecs_right_parenthesis_more_keys",
-        "\u266a",
-        null,
-        null,
-        "\u0651"
+        "\u061f"
     };
 
     private static final String[] TEXTS_cs = {
@@ -880,17 +867,17 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_lqm",
         "!text/single_9qm_lqm",
         "\u010d",
-        "\u0161",
-        "\u00f6,\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
-        "\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101",
         null,
+        "\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101",
+        "\u00f6,\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
+        "\u0161",
         "\u00fb,\u00fc,\u00f9,\u016b",
         "\u00e8,\u00ea,\u00eb,\u0119,\u0117,\u0113",
+        "\u0148",
         "\u017e",
         "\u00ee,\u00ef,\u00ec,\u012f,\u012b",
-        "\u0148",
-        "\u00df,\u015b",
         "\u00e7,\u0107",
+        "\u00df,\u015b",
         "!text/double_raqm_laqm",
         "!text/single_raqm_laqm",
         "\u00fd",
@@ -924,9 +911,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u0165",
         null,
         null,
@@ -937,9 +921,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u0159",
         null,
         null,
@@ -965,10 +946,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
-        null,
         "\u00ff"
     };
 
@@ -984,8 +961,8 @@ public final class KeyboardTextsTable {
         "!text/single_9qm_lqm",
         null,
         null,
-        "\u00f6,\u00f3,\u00f4,\u00f2,\u00f5,\u0153,\u014d",
         "\u00e1,\u00e4,\u00e0,\u00e2,\u00e3,\u0101",
+        "\u00f6,\u00f3,\u00f4,\u00f2,\u00f5,\u0153,\u014d",
         null,
         null,
         null,
@@ -1024,18 +1001,15 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00e4",
-        null,
-        null,
         null,
         null,
         null,
         null,
+        "\u00e4",
         null,
-        "\u00e5",
         "\u00e6",
         null,
-        null,
+        "\u00e5",
         "\u00f8",
         null,
         null,
@@ -1061,17 +1035,17 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_lqm",
         "!text/single_9qm_lqm",
         null,
-        "\u00df",
-        "%,\u00f4,\u00f2,\u00f3,\u00f5,\u0153,\u00f8,\u014d",
-        "%,\u00e2,\u00e0,\u00e1,\u00e6,\u00e3,\u00e5,\u0101",
         null,
+        "%,\u00e2,\u00e0,\u00e1,\u00e6,\u00e3,\u00e5,\u0101",
+        "%,\u00f4,\u00f2,\u00f3,\u00f5,\u0153,\u00f8,\u014d",
+        "\u00df",
         "%,\u00fb,\u00f9,\u00fa,\u016b",
         null,
         null,
         null,
         null,
-        "\u015b,\u0161",
         null,
+        "\u015b,\u0161",
         "!text/double_raqm_laqm",
         "!text/single_raqm_laqm",
         null,
@@ -1140,23 +1114,22 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00fc",
-        null,
         null,
+        "\u00e0",
         null,
-        "\u00e4",
+        "\u00fc",
         null,
         null,
-        "\u00f6",
+        "\u00e4",
         null,
         null,
+        "\u00e8",
         null,
         null,
         "\u00e9",
         null,
         null,
-        "\u00e8",
-        "\u00e0"
+        "\u00f6"
     };
 
     private static final String[] TEXTS_el = {
@@ -1179,17 +1152,17 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u0109",
-        "\u015d",
         null,
         null,
         null,
+        "\u015d",
         "\u00fa,\u016f,\u00fb,\u00fc,\u00f9,\u016b,\u0169,\u0171,\u0173,\u00b5",
         null,
         null,
         null,
         null,
-        "\u00df,\u0161,\u015b,\u0219,\u015f",
         "\u0107,\u010d,\u00e7,\u010b",
+        "\u00df,\u0161,\u015b,\u0219,\u015f",
         null,
         null,
         null,
@@ -1269,18 +1242,18 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0135",
-        null,
-        null,
         null,
         null,
         null,
         null,
         null,
         null,
+        "\u0135",
+        "\u0125",
         null,
         null,
         null,
+        "\u011f,\u0121,\u0123",
         null,
         null,
         null,
@@ -1293,28 +1266,26 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u011f,\u0121,\u0123",
         null,
-        "\u0125",
         null,
         null,
         null,
         null,
         null,
         null,
-        "\u016d",
         null,
         null,
         null,
+        "\u015d",
+        "\u0109",
         null,
         "\u011d",
-        null,
         "\u0127",
-        "\u0109",
         null,
         null,
         null,
-        "\u015d"
+        null,
+        "\u016d"
     };
 
     private static final String[] TEXTS_es = {
@@ -1329,14 +1300,14 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00f2,\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba",
         "\u00e0,\u00e4,\u00e2,\u00e3,\u00e5,\u0105,\u00e6,\u0101,\u00aa",
+        "\u00f2,\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba",
         null,
         "\u00f9,\u00fb,\u016b",
         "\u00e8,\u00eb,\u00ea,\u0119,\u0117,\u0113",
+        "\u00f1",
         null,
         "\u00ef,\u00ec,\u00ee,\u012f,\u012b",
-        "\u00f1",
         null,
         null,
         null,
@@ -1394,12 +1365,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
-        null,
-        null,
-        null,
         "!autoColumnOrder!9,\\,?,!,#,),(,/,;,\u00a1,',@,:,-,\\\",+,\\%,&,\u00bf"
     };
 
@@ -1414,12 +1379,13 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_lqm",
         "!text/single_9qm_lqm",
         null,
-        "\u0161",
-        "\u00f2,\u00f3,\u00f4,\u0153,\u0151,\u00f8",
-        "\u0101,\u00e0,\u00e1,\u00e2,\u00e3,\u00e5,\u00e6,\u0105",
         null,
+        "\u0101,\u00e0,\u00e1,\u00e2,\u00e3,\u00e5,\u00e6,\u0105",
+        "\u00f2,\u00f3,\u00f4,\u0153,\u0151,\u00f8",
+        "\u0161",
         "\u016b,\u0173,\u00f9,\u00fa,\u00fb,\u016f,\u0171",
         null,
+        null,
         "\u017e",
         null,
         null,
@@ -1429,7 +1395,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
         "\u017c,\u017a",
         null,
         null,
@@ -1455,18 +1420,15 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00f5",
-        null,
-        null,
         null,
         null,
         null,
         null,
+        "\u00f5",
         null,
-        "\u00fc",
         "\u00f6",
         null,
-        null,
+        "\u00fc",
         "\u00e4"
     };
 
@@ -1487,8 +1449,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
         "\u00f1,\u0144"
     };
 
@@ -1503,10 +1463,10 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\ufdfc",
         null,
         null,
         null,
-        "\ufdfc",
         null,
         null,
         null,
@@ -1520,35 +1480,35 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "2",
-        "\u06f7",
-        "8",
-        "\u06f8",
-        "\u06f0",
-        "\u06f3\u06f2\u06f1\u061f",
-        "\u06f6",
         null,
-        "4",
         "3",
-        "!text/morekeys_arabic_diacritics",
-        "5",
-        "1",
         "6",
+        "\u06f9",
+        "\u06f6",
+        "5",
         "7",
-        "\u06f2",
+        "\u06f3\u06f2\u06f1\u061f",
         "9",
-        "\u06f5",
+        "8",
+        "2",
+        "\u06f4",
+        "\u06f7",
         "\u06f3",
-        "\u06f1",
+        "\u06f5",
+        "!text/morekeys_arabic_diacritics",
+        "1",
+        "\u06f8",
+        "4",
         "0,\u066b,\u066c",
-        "\u06f4",
-        "\u06f9",
+        "\u06f2",
+        "\u06f0",
+        "\u06f1",
         null,
         null,
         null,
+        "!text/morekeys_arabic_diacritics",
         null,
         null,
-        "!text/morekeys_arabic_diacritics",
         "\u060c",
         null,
         null,
@@ -1557,53 +1517,48 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00ab|\u00bb",
-        ">|<",
         null,
-        ")|(",
-        "\u2039|\u203a",
+        "\u00ab|\u00bb",
+        "}|{",
+        "!fixedColumnOrder!4,:,!,\u061f,\u061b,-,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote",
         "\u203a|\u2039",
+        "(|)",
+        "<|>",
         null,
-        "\u00bb|\u00ab",
         "?,\u00bf",
+        ")|(",
+        "\u2264|\u2265",
         "{|}",
         null,
-        "\u2605,\u066d",
+        null,
+        "\u2039|\u203a",
         "[|]",
-        "]|[",
-        "!fixedColumnOrder!4,:,!,\u061f,\u061b,-,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote",
-        "}|{",
+        "\u2605,\u066d",
+        "\u00bb|\u00ab",
+        "\u2265|\u2264",
+        "\u064b",
+        ">|<",
         "\u060c",
         null,
+        "]|[",
+        "\u066a",
+        null,
         null,
-        "(|)",
-        "<|>",
         "\u064b",
-        "\u2265|\u2264",
-        "\u2264|\u2265",
+        null,
         "!fixedColumnOrder!4,\ufd3e|\ufd3f,!text/keyspecs_left_parenthesis_more_keys",
+        "!fixedColumnOrder!7, \u0655|\u0655, \u0652|\u0652, \u0651|\u0651, \u064c|\u064c, \u064d|\u064d, \u064b|\u064b, \u0654|\u0654, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u064f|\u064f, \u0650|\u0650, \u064e|\u064e,\u0640\u0640\u0640|\u0640",
         null,
-        "\u061f",
+        "\u266a",
         "\\%,\u2030",
-        "!fixedColumnOrder!7, \u0655|\u0655, \u0652|\u0652, \u0651|\u0651, \u064c|\u064c, \u064d|\u064d, \u064b|\u064b, \u0654|\u0654, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u064f|\u064f, \u0650|\u0650, \u064e|\u064e,\u0640\u0640\u0640|\u0640",
         null,
-        "\u061b",
+        "!fixedColumnOrder!4,\ufd3f|\ufd3e,!text/keyspecs_right_parenthesis_more_keys",
         "\u061f",
         null,
-        "\u066a",
         ";",
+        "\u061b",
         null,
-        null,
-        null,
-        "!fixedColumnOrder!4,\ufd3f|\ufd3e,!text/keyspecs_right_parenthesis_more_keys",
-        "\u266a",
-        null,
-        null,
-        "\u064b",
-        null,
-        null,
-        null,
-        null,
+        "\u061f",
         null,
         null,
         null,
@@ -1628,7 +1583,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "!fixedColumnOrder!3,!text/keyspec_right_single_angle_quote,!text/keyspec_greater_than_equal,!text/keyspec_greater_than",
         null,
         null,
         null,
@@ -1639,6 +1593,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "!fixedColumnOrder!3,!text/keyspec_right_single_angle_quote,!text/keyspec_greater_than_equal,!text/keyspec_greater_than",
         "!fixedColumnOrder!3,!text/keyspec_left_single_angle_quote,!text/keyspec_less_than_equal,!text/keyspec_less_than"
     };
 
@@ -1653,9 +1608,10 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0161",
-        "\u00f8,\u00f4,\u00f2,\u00f3,\u00f5,\u0153,\u014d",
+        null,
         "\u00e6,\u00e0,\u00e1,\u00e2,\u00e3,\u0101",
+        "\u00f8,\u00f4,\u00f2,\u00f3,\u00f5,\u0153,\u014d",
+        "\u0161",
         null,
         null,
         null,
@@ -1668,7 +1624,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
         "\u017a,\u017c",
         null,
         null,
@@ -1694,18 +1649,15 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00f8",
-        null,
-        null,
         null,
         null,
         null,
         null,
+        "\u00f8",
         null,
-        "\u00e5",
         "\u00f6",
         null,
-        null,
+        "\u00e5",
         "\u00e4",
         null,
         null,
@@ -1732,20 +1684,19 @@ public final class KeyboardTextsTable {
         null,
         "\u00e7",
         null,
-        "%,\u00f6,\u00f2,\u00f3,\u00f5,\u00f8,\u014d,\u00ba",
         "\u00e1,\u00e4,\u00e3,\u00e5,\u0101,\u00aa",
+        "%,\u00f6,\u00f2,\u00f3,\u00f5,\u00f8,\u014d,\u00ba",
         null,
         "\u00fa,\u016b",
         "%,\u0119,\u0117,\u0113",
         null,
-        "\u00ec,\u00ed,\u012f,\u012b",
-        null,
         null,
+        "\u00ec,\u00ed,\u012f,\u012b",
         "%,\u0107,\u010d",
         null,
         null,
-        "%,\u00ff",
         null,
+        "%,\u00ff",
         null,
         null,
         null,
@@ -1810,23 +1761,23 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00e8",
         null,
         null,
+        "\u00e4",
         null,
-        "\u00e0",
+        "\u00e8",
         null,
         null,
-        "\u00e9",
+        "\u00e0",
         null,
         null,
+        "\u00fc",
         null,
         null,
         "\u00f6",
         null,
         null,
-        "\u00fc",
-        "\u00e4"
+        "\u00e9"
     };
 
     private static final String[] TEXTS_gl = {
@@ -1846,8 +1797,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
         "\u00f1,\u0144"
     };
 
@@ -1862,10 +1811,10 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u20b9",
         null,
         null,
         null,
-        "\u20b9",
         null,
         null,
         null,
@@ -1879,35 +1828,55 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "2",
-        "\u096d",
-        "8",
-        "\u096e",
-        "\u0966",
-        "?\u0967\u0968\u0969",
-        "\u096c",
         null,
-        "4",
         "3",
-        "!autoColumnOrder!8,\\,.,',#,),(,/,;,@,:,-,\\\",+,\\%,&",
-        "5",
-        "1",
         "6",
+        "\u096f",
+        "\u096c",
+        "5",
         "7",
-        "\u0968",
+        "?\u0967\u0968\u0969",
         "9",
-        "\u096b",
+        "8",
+        "2",
+        "\u096a",
+        "\u096d",
         "\u0969",
-        "\u0967",
+        "\u096b",
+        "!autoColumnOrder!8,\\,.,',#,),(,/,;,@,:,-,\\\",+,\\%,&",
+        "1",
+        "\u096e",
+        "4",
         "0",
-        "\u096a",
-        "\u096f",
+        "\u0968",
+        "\u0966",
+        "\u0967",
+        null,
+        null,
+        null,
+        "!autoColumnOrder!9,\\,.,?,!,#,),(,/,;,',@,:,-,\\\",+,\\%,&",
+        null,
+        null,
+        null,
+        null,
+        null,
         null,
         null,
         null,
         null,
         "\u0964",
-        "!autoColumnOrder!9,\\,.,?,!,#,),(,/,;,',@,:,-,\\\",+,\\%,&",
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
         null,
         null,
         null,
@@ -1932,10 +1901,13 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u20b9",
+        null,
+        null,
+        null,
         null,
         null,
         null,
-        "\u20b9",
         null,
         null,
         null,
@@ -2030,24 +2002,26 @@ public final class KeyboardTextsTable {
         null,
         null,
         "Send",
-        "Prev",
+        null,
+        "Go",
         null,
         null,
         "Wait",
         null,
+        "Done",
+        "Next",
         null,
         null,
-        "Done",
+        "Prev",
         null,
         "Search",
         null,
-        "Pause",
         null,
         null,
-        "Next",
         null,
         null,
-        "Go"
+        null,
+        "Pause"
     };
 
     private static final String[] TEXTS_hr = {
@@ -2061,17 +2035,17 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_rqm",
         "!text/single_9qm_rqm",
         "\u010d,\u0107",
-        "\u0161",
         null,
         null,
         null,
+        "\u0161",
         null,
         null,
-        "\u017e",
         null,
+        "\u017e",
         null,
-        "\u015b,\u00df",
         "\u00e7",
+        "\u015b,\u00df",
         "!text/double_raqm_laqm",
         "!text/single_raqm_laqm",
         null,
@@ -2092,14 +2066,14 @@ public final class KeyboardTextsTable {
         "!text/single_9qm_rqm",
         null,
         null,
-        "\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
         "\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101",
+        "\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
         null,
         "\u00fb,\u00f9,\u016b",
         "\u00e8,\u00ea,\u00eb,\u0119,\u0117,\u0113",
         null,
-        "\u00ee,\u00ef,\u00ec,\u012f,\u012b",
         null,
+        "\u00ee,\u00ef,\u00ec,\u012f,\u012b",
         null,
         null,
         "!text/double_raqm_laqm",
@@ -2144,14 +2118,12 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "!text/morekeys_punctuation",
-        null,
-        null,
         null,
         null,
         null,
         null,
         null,
+        "!text/morekeys_punctuation",
         null,
         null,
         null,
@@ -2161,12 +2133,11 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0589",
         null,
-        "\u055d",
         null,
         null,
         null,
+        "\u055d",
         null,
         null,
         null,
@@ -2179,15 +2150,12 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u055e,\u00bf",
-        null,
-        null,
         null,
         null,
         null,
+        "\u055e,\u00bf",
         null,
         null,
-        "\u055d",
         null,
         "!autoColumnOrder!8,\\,\u055e,\u055c,.,\u055a,\u0559,?,!,\u055d,\u055b,\u058a,\u00bb,\u00ab,\u055f,;,:",
         null,
@@ -2198,6 +2166,8 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u055d",
+        "\u0589",
         null,
         null,
         null,
@@ -2258,14 +2228,14 @@ public final class KeyboardTextsTable {
         "!text/single_9qm_lqm",
         null,
         null,
-        "\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
         "\u00e5,\u00e0,\u00e2,\u00e3,\u0101",
+        "\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
         null,
         "\u00fc,\u00fb,\u00f9,\u016b",
         "\u00eb,\u00e8,\u00ea,\u0119,\u0117,\u0113",
         null,
-        "\u00ef,\u00ee,\u00ec,\u012f,\u012b",
         null,
+        "\u00ef,\u00ee,\u00ec,\u012f,\u012b",
         null,
         null,
         null,
@@ -2301,9 +2271,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u00fe",
         null,
         null,
@@ -2339,13 +2306,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
-        null,
-        null,
-        null,
-        null,
         "\u00ff"
     };
 
@@ -2361,12 +2321,13 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00f3,\u00f4,\u00f6,\u00f5,\u0153,\u00f8,\u014d,\u00ba",
         "\u00e1,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101,\u00aa",
+        "\u00f3,\u00f4,\u00f6,\u00f5,\u0153,\u00f8,\u014d,\u00ba",
         null,
         "\u00fa,\u00fb,\u00fc,\u016b",
         "\u00ea,\u00eb,\u0119,\u0117,\u0113",
         null,
+        null,
         "\u00ed,\u00ee,\u00ef,\u012f,\u012b",
         null,
         null,
@@ -2439,23 +2400,21 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00fc",
+        "\u00e0",
         null,
+        "\u00fc",
         null,
         null,
         "\u00e4",
         null,
         null,
-        "\u00f6",
-        null,
-        null,
+        "\u00e8",
         null,
         null,
         "\u00e9",
         null,
         null,
-        "\u00e8",
-        "\u00e0"
+        "\u00f6"
     };
 
     private static final String[] TEXTS_iw = {
@@ -2469,10 +2428,11 @@ public final class KeyboardTextsTable {
         "!text/double_rqm_9qm",
         "!text/single_rqm_9qm",
         null,
+        "\u20aa",
+        null,
         null,
         null,
         null,
-        "\u20aa",
         null,
         null,
         null,
@@ -2524,29 +2484,39 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u00ab|\u00bb",
-        ">|<",
+        "}|{",
         null,
-        ")|(",
-        "\u2039|\u203a",
         "\u203a|\u2039",
+        "(|)",
+        "<|>",
         null,
-        "\u00bb|\u00ab",
         null,
+        ")|(",
+        "\u2264|\u2265",
         "{|}",
         null,
-        "\u2605",
+        null,
+        "\u2039|\u203a",
         "[|]",
+        "\u2605",
+        "\u00bb|\u00ab",
+        "\u2265|\u2264",
+        null,
+        ">|<",
+        null,
+        null,
         "]|[",
         null,
-        "}|{",
         null,
         null,
         null,
-        "(|)",
-        "<|>",
         null,
-        "\u2265|\u2264",
-        "\u2264|\u2265",
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
         null,
         null,
         null,
@@ -2633,6 +2603,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0451",
         null,
         null,
         null,
@@ -2640,8 +2611,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0451",
-        null,
         null,
         null,
         null,
@@ -2659,18 +2628,18 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u044d",
-        "\u0438",
-        null,
+        "\u044a",
         null,
         null,
         null,
-        "\u044a",
         null,
         null,
-        "\u0449",
         "\u044b",
         null,
         null,
+        "\u0438",
+        "\u0449",
+        null,
         null,
         null,
         null,
@@ -2718,16 +2687,13 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0493",
         null,
         null,
         null,
         null,
         null,
-        "\u04a3",
         null,
         null,
-        "\u0456",
         null,
         null,
         null,
@@ -2736,21 +2702,20 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u04af,\u04b1",
+        "\u04a3",
         "\u04e9",
+        "\u0456",
+        "\u0493",
         null,
         null,
         null,
+        "\u04d9",
         null,
         null,
+        "\u04bb",
         null,
         null,
-        null,
-        null,
-        null,
-        null,
-        "\u049b",
-        "\u04bb",
-        "\u04d9"
+        "\u049b"
     };
 
     private static final String[] TEXTS_km = {
@@ -2888,6 +2853,17 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
         "\u17db,\u00a2,\u00a3,\u20ac,\u00a5,\u20b1"
     };
 
@@ -2902,9 +2878,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u20b9"
     };
 
@@ -2936,6 +2909,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0451",
         null,
         null,
         null,
@@ -2943,8 +2917,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0451",
-        null,
         null,
         null,
         null,
@@ -2962,18 +2934,17 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u044d",
-        "\u0438",
-        null,
+        "\u044a",
         null,
         null,
         null,
-        "\u044a",
         null,
         null,
-        "\u0449",
         "\u044b",
         null,
         null,
+        "\u0438",
+        "\u0449",
         null,
         null,
         null,
@@ -3027,8 +2998,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u04a3",
-        null,
         null,
         null,
         null,
@@ -3039,6 +3008,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u04af",
+        "\u04a3",
         "\u04e9"
     };
 
@@ -3053,9 +3023,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u20ad"
     };
 
@@ -3070,10 +3037,11 @@ public final class KeyboardTextsTable {
         "\u201d,\u201e,\u201c",
         "\u2019,\u201a,\u2018",
         "\u010d",
-        "\u0161",
         null,
         null,
         null,
+        "\u0161",
+        null,
         null,
         null,
         "\u017e"
@@ -3090,17 +3058,17 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_lqm",
         "!text/single_9qm_lqm",
         "\u010d",
-        "\u0161",
-        "\u00f2,\u00f3,\u00f4,\u00f5,\u00f6,\u0153,\u0151,\u00f8",
-        "\u00e0,\u00e1,\u00e2,\u00e3,\u00e4,\u00e5,\u00e6,\u0105",
         null,
+        "\u00e0,\u00e1,\u00e2,\u00e3,\u00e4,\u00e5,\u00e6,\u0105",
+        "\u00f2,\u00f3,\u00f4,\u00f5,\u00f6,\u0153,\u0151,\u00f8",
+        "\u0161",
         "\u0173,\u00f9,\u00fa,\u00fb,\u00fc,\u016f,\u0171",
         "\u0117,\u00e8,\u00e9,\u00ea,\u00eb,\u0119,\u011b",
+        "\u0146",
         "\u017e",
         "\u012f,\u00ec,\u00ed,\u00ee,\u00ef,\u0131",
-        "\u0146",
-        "\u00df,\u015b,\u015f",
         "\u00e7,\u0107",
+        "\u00df,\u015b,\u015f",
         null,
         null,
         null,
@@ -3144,12 +3112,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
-        null,
-        null,
-        null,
         "\u0157",
         null,
         null,
@@ -3161,10 +3123,9 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u013c",
-        null,
         null,
         null,
+        "\u013c",
         null,
         null,
         null,
@@ -3190,24 +3151,24 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0137",
         null,
         null,
         null,
         null,
         null,
         null,
+        "\u0137",
         null,
+        "\u011f",
         null,
         null,
         null,
         null,
+        "\u0159,\u0155",
         null,
-        "\u0142,\u013a,\u013e",
-        "\u011f",
         null,
         null,
-        "\u0159,\u0155"
+        "\u0142,\u013a,\u013e"
     };
 
     private static final String[] TEXTS_mk = {
@@ -3238,6 +3199,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0450",
         null,
         null,
         null,
@@ -3245,11 +3207,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0450",
-        null,
-        null,
-        null,
-        null,
         null,
         null,
         null,
@@ -3320,26 +3277,26 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0453",
         null,
         null,
         null,
-        "\u0437",
         null,
         null,
-        "\u045c",
         null,
         null,
         null,
-        "\u0455",
+        "\u0453",
+        "\u045d",
         null,
         null,
         null,
         null,
+        "\u045c",
         null,
         null,
+        "\u0437",
         null,
-        "\u045d"
+        "\u0455"
     };
 
     private static final String[] TEXTS_ml = {
@@ -3353,9 +3310,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u20b9"
     };
 
@@ -3370,9 +3324,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u20ae"
     };
 
@@ -3387,10 +3338,10 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u20b9",
         null,
         null,
         null,
-        "\u20b9",
         null,
         null,
         null,
@@ -3404,29 +3355,29 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "2",
-        "\u096d",
-        "8",
-        "\u096e",
-        "\u0966",
-        "?\u0967\u0968\u0969",
-        "\u096c",
         null,
-        "4",
         "3",
-        null,
-        "5",
-        "1",
         "6",
+        "\u096f",
+        "\u096c",
+        "5",
         "7",
-        "\u0968",
+        "?\u0967\u0968\u0969",
         "9",
-        "\u096b",
+        "8",
+        "2",
+        "\u096a",
+        "\u096d",
         "\u0969",
-        "\u0967",
+        "\u096b",
+        null,
+        "1",
+        "\u096e",
+        "4",
         "0",
-        "\u096a",
-        "\u096f"
+        "\u0968",
+        "\u0966",
+        "\u0967"
     };
 
     private static final String[] TEXTS_my = {
@@ -3484,12 +3435,9 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u104b",
-        null,
-        "\u104a",
-        null,
         null,
         null,
+        "\u104a",
         null,
         null,
         null,
@@ -3500,6 +3448,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\\",
         null,
         null,
         null,
@@ -3508,21 +3457,17 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\\",
-        null,
-        null,
-        null,
         "!autoColumnOrder!9,\u104a,.,?,!,#,),(,/,;,...,',@,:,-,\\\",+,\\%,&",
         null,
         null,
-        "\u104a",
-        null,
         null,
         null,
         null,
         null,
+        "\u104a",
         null,
         null,
+        "\u104b",
         null,
         null,
         null,
@@ -3599,18 +3544,15 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00f6",
-        null,
-        null,
         null,
         null,
         null,
         null,
+        "\u00f6",
         null,
-        "\u00e5",
         "\u00f8",
         null,
-        null,
+        "\u00e5",
         "\u00e6",
         null,
         null,
@@ -3636,16 +3578,60 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0930\u0941.",
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        "3",
+        "6",
+        "\u096f",
+        "\u096c",
+        "5",
+        "7",
+        "?\u0967\u0968\u0969",
+        "9",
+        "8",
+        "2",
+        "\u096a",
+        "\u096d",
+        "\u0969",
+        "\u096b",
+        "!autoColumnOrder!8,.,\\,',#,),(,/,;,@,:,-,\\\",+,\\%,&",
+        "1",
+        "\u096e",
+        "4",
+        "0",
+        "\u0968",
+        "\u0966",
+        "\u0967",
+        null,
+        null,
+        null,
+        "!autoColumnOrder!9,.,\\,?,!,#,),(,/,;,',@,:,-,\\\",+,\\%,&",
         null,
         null,
         null,
-        "\u0930\u0941.",
         null,
         null,
         null,
         null,
         null,
         null,
+        "\u0964",
         null,
         null,
         null,
@@ -3653,35 +3639,11 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "2",
-        "\u096d",
-        "8",
-        "\u096e",
-        "\u0966",
-        "?\u0967\u0968\u0969",
-        "\u096c",
         null,
-        "4",
-        "3",
-        "!autoColumnOrder!8,.,\\,',#,),(,/,;,@,:,-,\\\",+,\\%,&",
-        "5",
-        "1",
-        "6",
-        "7",
-        "\u0968",
-        "9",
-        "\u096b",
-        "\u0969",
-        "\u0967",
-        "0",
-        "\u096a",
-        "\u096f",
         null,
         null,
         null,
         null,
-        "\u0964",
-        "!autoColumnOrder!9,.,\\,?,!,#,),(,/,;,',@,:,-,\\\",+,\\%,&",
         null,
         null,
         null,
@@ -3707,8 +3669,8 @@ public final class KeyboardTextsTable {
         "!text/single_9qm_rqm",
         null,
         null,
-        "\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
         "\u00e6,\u00e3,\u00e5,\u0101",
+        "\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
         null,
         "\u00fb,\u00f9,\u016b",
         "\u0119,\u0117,\u0113"
@@ -3725,17 +3687,17 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_rqm",
         "!text/single_9qm_rqm",
         "\u0107",
-        "\u015b",
-        "\u00f6,\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
-        "\u00e1,\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101",
         null,
+        "\u00e1,\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101",
+        "\u00f6,\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d",
+        "\u015b",
         null,
         "\u00e8,\u00e9,\u00ea,\u00eb,\u0117,\u0113",
+        "\u0144",
         "\u017c,\u017a",
         null,
-        "\u0144",
-        "\u00df,\u0161",
         "\u00e7,\u010d",
+        "\u00df,\u0161",
         null,
         null,
         null,
@@ -3792,10 +3754,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
-        null,
         "\u0142"
     };
 
@@ -3811,16 +3769,22 @@ public final class KeyboardTextsTable {
         null,
         "\u00e7",
         null,
-        "\u00f2,\u00f6,\u0153,\u00f8,\u014d,\u00ba",
         "\u00e4,\u00e5,\u00e6,\u00aa",
+        "\u00f2,\u00f6,\u0153,\u00f8,\u014d,\u00ba",
         null,
         "\u00f9,\u00fb,\u016b",
         "\u00e8,\u0119,\u0117,\u0113,\u00eb",
         null,
+        null,
         "\u00ee,\u00ec,\u00ef,\u012f,\u012b",
+        "\u010d,\u0107",
+        null,
+        null,
+        null,
+        null,
+        null,
         null,
         null,
-        "\u010d,\u0107",
         null,
         null,
         null,
@@ -3921,10 +3885,11 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_rqm",
         "!text/single_9qm_rqm",
         null,
-        "\u0219",
         null,
         "\u00e3,\u00e0,\u00e1,\u00e4,\u00e6,\u00e5,\u0101",
         null,
+        "\u0219",
+        null,
         null,
         null,
         null,
@@ -3964,10 +3929,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
-        null,
         "\u021b"
     };
 
@@ -3999,6 +3960,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0451",
         null,
         null,
         null,
@@ -4006,8 +3968,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0451",
-        null,
         null,
         null,
         null,
@@ -4025,16 +3985,17 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u044d",
-        "\u0438",
+        "\u044a",
         null,
         null,
         null,
         null,
-        "\u044a",
         null,
+        "\u044b",
         null,
-        "\u0449",
-        "\u044b"
+        null,
+        "\u0438",
+        "\u0449"
     };
 
     private static final String[] TEXTS_si = {
@@ -4048,9 +4009,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u0dbb\u0dd4"
     };
 
@@ -4065,17 +4023,17 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_lqm",
         "!text/single_9qm_lqm",
         "\u010d",
-        "\u0161",
-        "\u00f6,\u00f2,\u00f5,\u0153,\u0151,\u00f8",
-        "\u0101,\u00e0,\u00e2,\u00e3,\u00e5,\u00e6,\u0105",
         null,
+        "\u0101,\u00e0,\u00e2,\u00e3,\u00e5,\u00e6,\u0105",
+        "\u00f6,\u00f2,\u00f5,\u0153,\u0151,\u00f8",
+        "\u0161",
         "\u016f,\u00fc,\u016b,\u0173,\u00f9,\u00fb,\u0171",
         "\u011b,\u0113,\u0117,\u00e8,\u00ea,\u00eb,\u0119",
+        "\u0148",
         "\u017e",
         "\u012b,\u012f,\u00ec,\u00ee,\u00ef,\u0131",
-        "\u0148",
-        "\u00df,\u015b,\u015f",
         "\u00e7,\u0107",
+        "\u00df,\u015b,\u015f",
         "!text/double_raqm_laqm",
         "!text/single_raqm_laqm",
         "\u00fd",
@@ -4109,9 +4067,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u0165",
         null,
         null,
@@ -4122,11 +4077,10 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0155",
         null,
         null,
         null,
-        "\u0155",
-        null,
         null,
         null,
         null,
@@ -4148,13 +4102,13 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u00ff",
         null,
         null,
         null,
         null,
         null,
         null,
-        "\u00ff",
         null,
         null,
         null,
@@ -4175,6 +4129,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0159,\u0157",
         null,
         null,
         null,
@@ -4182,11 +4137,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0159,\u0157",
-        null,
-        null,
-        null,
-        null,
         null,
         null,
         null,
@@ -4208,17 +4158,17 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_lqm",
         "!text/single_9qm_lqm",
         "\u010d",
-        "\u0161",
-        null,
         null,
         null,
         null,
+        "\u0161",
         null,
-        "\u017e",
         null,
         null,
+        "\u017e",
         null,
         "\u0107",
+        null,
         "!text/double_raqm_laqm",
         "!text/single_raqm_laqm"
     };
@@ -4251,6 +4201,7 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0450",
         null,
         null,
         null,
@@ -4258,11 +4209,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0450",
-        null,
-        null,
-        null,
-        null,
         null,
         null,
         null,
@@ -4333,26 +4279,26 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0452",
         null,
         null,
         null,
-        "\u0455",
         null,
         null,
-        "\u045b",
         null,
         null,
         null,
-        "\u0437",
+        "\u0452",
+        "\u045d",
         null,
         null,
         null,
         null,
+        "\u045b",
         null,
         null,
+        "\u0455",
         null,
-        "\u045d"
+        "\u0437"
     };
 
     private static final String[] TEXTS_sr_ZZ = {
@@ -4366,10 +4312,11 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u010d,\u0107,%",
-        "\u0161,%",
         null,
         null,
         null,
+        "\u0161,%",
+        null,
         null,
         null,
         "\u017e,%",
@@ -4379,7 +4326,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
         "\u0111,%",
         null,
         null,
@@ -4463,25 +4409,30 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        null,
+        null,
+        null,
         "\u0160alji",
-        "Preth",
+        null,
+        "Idi",
         null,
         null,
         "\u010cekaj",
         null,
+        "Gotov",
+        "Sled",
         null,
         null,
-        "Gotov",
+        "Preth",
         null,
         "Tra\u017ei",
         null,
-        "Pauza",
         null,
         null,
-        "Sled",
         null,
         null,
-        "Idi"
+        null,
+        "Pauza"
     };
 
     private static final String[] TEXTS_sv = {
@@ -4496,8 +4447,8 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00f8,\u0153,\u00f3,\u00f2,\u00f4,\u00f5,\u014d",
         "\u00e6,\u00e1,\u00e0,\u00e2,\u0105,\u00e3",
+        "\u00f8,\u0153,\u00f3,\u00f2,\u00f4,\u00f5,\u014d",
         null,
         null,
         "\u00e8,\u00ea,\u00eb,\u0119",
@@ -4536,18 +4487,15 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u00f8,\u0153",
-        null,
-        null,
         null,
         null,
         null,
         null,
+        "\u00f8,\u0153",
         null,
-        "\u00e5",
         "\u00f6",
         null,
-        null,
+        "\u00e5",
         "\u00e4",
         null,
         null,
@@ -4573,15 +4521,15 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u00e7",
-        "\u00df",
         null,
         null,
         null,
+        "\u00df",
         null,
         null,
+        "\u00f1",
         null,
         null,
-        "\u00f1",
         null,
         null,
         null,
@@ -4602,9 +4550,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u0bf9"
     };
 
@@ -4619,9 +4564,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u0dbb\u0dd4"
     };
 
@@ -4641,9 +4583,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u20b9"
     };
 
@@ -4658,9 +4597,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
-        null,
         "\u0e3f"
     };
 
@@ -4681,8 +4617,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        null,
-        null,
         "\u00f1,\u0144"
     };
 
@@ -4697,17 +4631,17 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u00e7",
-        "\u015f",
-        "\u00f4,\u0153,\u00f2,\u00f3,\u00f5,\u00f8,\u014d",
         null,
         null,
+        "\u00f4,\u0153,\u00f2,\u00f3,\u00f5,\u00f8,\u014d",
+        "\u015f",
         "\u00fb,\u00f9,\u00fa,\u016b",
         null,
         null,
-        "\u00ee,\u00ef,\u00ec,\u00ed,\u012f,\u012b",
         null,
-        "\u00df,\u015b,\u0161",
+        "\u00ee,\u00ef,\u00ec,\u00ed,\u012f,\u012b",
         "\u0107,\u010d",
+        "\u00df,\u015b,\u0161",
         null,
         null,
         null,
@@ -4726,11 +4660,10 @@ public final class KeyboardTextsTable {
         "!text/double_9qm_lqm",
         "!text/single_9qm_lqm",
         null,
+        "\u20b4",
         null,
         null,
         null,
-        "\u20b4",
-        null,
         null,
         null,
         null,
@@ -4769,16 +4702,17 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u0454",
-        "\u0438",
+        "\u044a",
         null,
         null,
         null,
         null,
-        "\u044a",
+        null,
+        "\u0456",
         null,
         null,
+        "\u0438",
         "\u0449",
-        "\u0456",
         null,
         null,
         null,
@@ -4828,7 +4762,6 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0491",
         null,
         null,
         null,
@@ -4837,7 +4770,16 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0457"
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
+        "\u0457",
+        "\u0491"
     };
 
     private static final String[] TEXTS_uz = {
@@ -4851,15 +4793,15 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u00e7,\u0107,\u010d",
-        "\u015f,\u00df,\u015b,\u0161",
         null,
         null,
         null,
+        "\u015f,\u00df,\u015b,\u0161",
         null,
         null,
+        "\u0148,\u00f1",
         "\u017e",
         null,
-        "\u0148,\u00f1",
         null,
         null,
         null,
@@ -4880,10 +4822,10 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u20ab",
         null,
         null,
         null,
-        "\u20ab",
         null,
         null,
         null,
@@ -4908,12 +4850,10 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u00e7",
-        "\u00df",
-        null,
-        null,
         null,
         null,
         null,
+        "\u00df",
         null,
         null,
         "\u00f1"
@@ -4930,15 +4870,15 @@ public final class KeyboardTextsTable {
         null,
         null,
         "\u00e7,\u0107,\u0109,\u010b,\u010d",
-        "\u00df,\u015b,\u015d,\u015f,\u0161,\u017f",
         null,
         null,
         null,
+        "\u00df,\u015b,\u015d,\u015f,\u0161,\u017f",
         null,
         null,
+        "\u00f1,\u0144,\u0146,\u0148,\u0149,\u014b",
         "\u017a,\u017c,\u017e",
         null,
-        "\u00f1,\u0144,\u0146,\u0148,\u0149,\u014b",
         null,
         null,
         null,
@@ -4974,34 +4914,34 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u00fe,\u0163,\u0165,\u0167",
         null,
         null,
         null,
-        "\u00fe,\u0163,\u0165,\u0167",
         null,
         null,
         null,
         null,
         null,
         null,
+        "\u0155,\u0157,\u0159",
         null,
         null,
         null,
         null,
         null,
         null,
-        "\u0155,\u0157,\u0159",
         null,
         null,
         null,
         null,
         null,
         null,
+        "\u013a,\u013c,\u013e,\u0140,\u0142",
         null,
         null,
         null,
         null,
-        "\u013a,\u013c,\u013e,\u0140,\u0142",
         null,
         null,
         null,
@@ -5027,10 +4967,18 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
+        "\u0125",
+        null,
+        "\u0137,\u0138",
+        null,
+        null,
+        null,
+        null,
+        null,
+        null,
         null,
         null,
         null,
-        "\u0137,\u0138",
         null,
         null,
         null,
@@ -5046,17 +4994,18 @@ public final class KeyboardTextsTable {
         null,
         null,
         null,
-        "\u0125",
         null,
         null,
         null,
         null,
         null,
-        "\u0135",
         null,
         null,
         null,
         null,
+        null,
+        "\u0135",
+        null,
         "\u0175"
     };
 
@@ -5071,17 +5020,17 @@ public final class KeyboardTextsTable {
         "!text/double_lqm_rqm",
         "!text/single_lqm_rqm",
         EMPTY,
-        EMPTY,
-        "\u00f3,\u00f4,\u00f6,\u00f2,\u0153,\u00f8,\u014d,\u00f5",
-        "\u00e0,\u00e1,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101",
         "$",
+        "\u00e0,\u00e1,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101",
+        "\u00f3,\u00f4,\u00f6,\u00f2,\u0153,\u00f8,\u014d,\u00f5",
+        EMPTY,
         "\u00fa,\u00fb,\u00fc,\u00f9,\u016b",
         "\u00e9,\u00e8,\u00ea,\u00eb,\u0113",
         EMPTY,
-        "\u00ed,\u00ee,\u00ef,\u012b,\u00ec",
         EMPTY,
-        "\u00df",
+        "\u00ed,\u00ee,\u00ef,\u012b,\u00ec",
         "\u00e7",
+        "\u00df",
         "!text/double_laqm_raqm",
         "!text/single_laqm_raqm",
         EMPTY,
@@ -5089,267 +5038,267 @@ public final class KeyboardTextsTable {
         EMPTY,
         EMPTY,
         EMPTY,
-        "7",
         EMPTY,
-        "8",
-        "0",
-        "?123",
+        EMPTY,
+        "9",
         "6",
         EMPTY,
         EMPTY,
+        "?123",
+        EMPTY,
         EMPTY,
-        "!text/morekeys_tablet_punctuation",
         EMPTY,
+        "4",
+        "7",
+        "3",
+        "5",
+        "!text/morekeys_tablet_punctuation",
         EMPTY,
+        "8",
         EMPTY,
         EMPTY,
         "2",
-        EMPTY,
-        "5",
-        "3",
+        "0",
         "1",
-        EMPTY,
-        "4",
-        "9",
         "\u00f1",
-        "\u00f8",
         EMPTY,
         EMPTY,
-        ".",
         "!text/morekeys_punctuation",
-        ",",
         EMPTY,
+        "\u00f8",
+        ",",
+        "\u00f6",
         EMPTY,
         "\u00e5",
-        "\u00f6",
+        "\u00e4",
         EMPTY,
         EMPTY,
-        "\u00e4",
-        "\u00ab",
-        ">",
         ".",
-        ")",
-        "\u2039",
-        "\u203a",
-        EMPTY,
-        "\u00bb",
-        "\u00bf",
-        "{",
-        "\u00e6",
-        "\u2020,\u2021,\u2605",
-        "[",
-        "]",
         EMPTY,
+        "\u00ab",
         "}",
-        ",",
         EMPTY,
-        "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&",
+        "\u203a",
         "(",
         "<",
-        EMPTY,
-        "\u2265",
+        "\u00e6",
+        "\u00bf",
+        ")",
         "\u2264",
-        "!fixedColumnOrder!3,!text/keyspecs_left_parenthesis_more_keys",
+        "{",
+        "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&",
         EMPTY,
-        "?",
-        "\u2030",
+        "\u2039",
+        "[",
+        "\u2020,\u2021,\u2605",
+        "\u00bb",
+        "\u2265",
         EMPTY,
+        ">",
+        ",",
+        ".",
+        "]",
+        "%",
         EMPTY,
-        ";",
         EMPTY,
         EMPTY,
-        "%",
         EMPTY,
+        "!fixedColumnOrder!3,!text/keyspecs_left_parenthesis_more_keys",
         EMPTY,
-        "\u00f1",
         EMPTY,
-        "!fixedColumnOrder!3,!text/keyspecs_right_parenthesis_more_keys",
         "\u266a,\u2665,\u2660,\u2666,\u2663",
+        "\u2030",
         EMPTY,
+        "!fixedColumnOrder!3,!text/keyspecs_right_parenthesis_more_keys",
+        "?",
         EMPTY,
         EMPTY,
-        "!string/label_send_key",
-        "!string/label_previous_key",
-        EMPTY,
+        ";",
         EMPTY,
-        "!string/label_wait_key",
         EMPTY,
+        "\u00f1",
         EMPTY,
         "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&",
-        "!string/label_done_key",
         EMPTY,
-        "!string/label_search_key",
+        "!string/label_send_key",
         EMPTY,
-        "!string/label_pause_key",
+        "!string/label_go_key",
         EMPTY,
         EMPTY,
+        "!string/label_wait_key",
+        EMPTY,
+        "!string/label_done_key",
         "!string/label_next_key",
         EMPTY,
         EMPTY,
-        "!string/label_go_key",
+        "!string/label_previous_key",
         EMPTY,
+        "!string/label_search_key",
         EMPTY,
         EMPTY,
         EMPTY,
         EMPTY,
-        "\u00b1",
         EMPTY,
-        "y",
-        "\u00a2,\u00a3,\u20ac,\u00a5,\u20b1",
-        "!fixedColumnOrder!3,!text/keyspec_right_single_angle_quote,!text/keyspec_greater_than_equal,!text/keyspec_right_double_angle_quote",
-        "\u00a1,\u203d",
         EMPTY,
-        "w",
+        "!string/label_pause_key",
         EMPTY,
+        "\u00a1,\u203d",
         EMPTY,
+        "q",
         "x",
         EMPTY,
+        "w",
         EMPTY,
         EMPTY,
-        "q",
+        "!fixedColumnOrder!3,!text/keyspec_right_single_angle_quote,!text/keyspec_greater_than_equal,!text/keyspec_right_double_angle_quote",
         "!fixedColumnOrder!3,!text/keyspec_left_single_angle_quote,!text/keyspec_less_than_equal,!text/keyspec_left_double_angle_quote",
+        "\u00b1",
+        "y",
         EMPTY,
-        "\u201a,\u2018,\u2019",
+        "\u00a2,\u00a3,\u20ac,\u00a5,\u20b1",
         EMPTY,
+        "\u201c,\u201e,\u201d",
         EMPTY,
-        "\u2076,\u2086",
         EMPTY,
         EMPTY,
-        "!icon/action_copy|!code/action_copy",
         EMPTY,
-        "123",
-        "[",
+        "7",
+        "*",
+        "*",
+        "9",
+        "\u2070,\u2080,\u207f,\u2205",
         EMPTY,
-        "\u2018,\u201a,\u2019",
+        "!hasLabels!,!text/label_next_key|!code/key_action_next",
         "&,|",
         EMPTY,
         EMPTY,
-        "\u2079,\u2089",
         EMPTY,
+        "!text/keyspec_right_double_angle_quote,!text/keyspec_left_double_angle_quote",
+        "\\%",
         EMPTY,
         "!",
-        "<",
-        "|",
-        "$",
-        "\uff0a\uff03",
-        "!text/keyspec_less_than,!text/keyspec_left_curly_bracket,!text/keyspec_left_square_bracket",
-        "\u2019,\u201a,\u2018",
-        EMPTY,
-        "=",
-        ";",
-        "?,/",
-        EMPTY,
-        "@",
-        EMPTY,
+        "!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes",
+        "#",
+        "123",
+        "!",
+        ">",
+        "\u00b3,\u2083,\u00be,\u215c",
+        "\u201a,\u2018,\u2019",
+        "(,[,{,<",
         EMPTY,
+        "!icon/settings_key|!code/key_settings",
         EMPTY,
+        "\u2078,\u2088",
+        "!text/keyspec_less_than,!text/keyspec_left_curly_bracket,!text/keyspec_left_square_bracket",
         EMPTY,
-        "+,=",
         EMPTY,
-        "0",
-        "!text/keyspec_right_single_angle_quote,!text/keyspec_left_single_angle_quote",
         EMPTY,
+        "!icon/shortcut_key|!code/key_shortcut",
         EMPTY,
         EMPTY,
+        "+,=",
+        "!hasLabels!,.net,.org,.gov,.edu",
+        "\"",
+        "1",
+        "\u2075,\u2085,\u215d",
         EMPTY,
-        "),],},>",
-        "\u201d,\u201e,\u201c",
+        "!icon/action_redo|!code/action_redo",
         EMPTY,
-        "!text/keyspec_right_double_angle_quote,!text/keyspec_left_double_angle_quote",
         EMPTY,
-        "\u2070,\u2080,\u207f,\u2205",
+        "\u2074,\u2084",
         EMPTY,
-        "{",
+        ":",
+        "\u2077,\u2087,\u215e",
         "\u00b9,\u2081,\u00bd,\u2153,\u00bc,\u215b",
-        "$,\u00a2,\u20ac,\u00a3,\u00a5,\u20b1",
-        "\u2078,\u2088",
+        "\u00b2,\u2082,\u2154",
+        "[",
+        "#",
         EMPTY,
-        "$,\u20ac,\u00a3,\u00a5,\u00a2",
-        "!text/keyspec_left_single_angle_quote,!text/keyspec_right_single_angle_quote",
-        "\\\\",
         EMPTY,
-        ")",
-        "\u2075,\u2085,\u215d",
         EMPTY,
-        "-,\u2013,\u2014,_",
-        "#",
-        "!icon/action_select_all|!code/action_select_all",
+        "\\\\",
+        "}",
+        "!icon/action_paste|!code/action_paste",
         EMPTY,
-        "2",
-        "!fixedColumnOrder!2,!hasLabels!,!text/keylabel_time_am,!text/keylabel_time_pm",
         "\\%",
-        "!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes",
-        EMPTY,
         "\u2018,\u2019,\u201a",
-        "8",
-        "*",
         EMPTY,
-        "AM",
-        "!icon/action_paste|!code/action_paste",
-        "7",
+        "\u201e,\u201c,\u201d",
+        "\u2019,\u201a,\u2018",
         EMPTY,
         "~ [ <",
+        "AM",
         EMPTY,
-        "9",
-        ".com",
+        "!text/keyspec_right_single_angle_quote,!text/keyspec_left_single_angle_quote",
+        "!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes",
         EMPTY,
-        "!",
-        "\u2077,\u2087,\u215e",
+        "\u2076,\u2086",
+        "!hasLabels!,!text/label_previous_key|!code/key_action_previous",
+        "'",
+        "$",
+        ";",
+        "@",
         EMPTY,
         EMPTY,
-        "'",
+        "!icon/action_undo|!code/action_undo",
+        "\u2079,\u2089",
         EMPTY,
-        "\u2074,\u2084",
-        "!fixedColumnOrder!5,!text/single_quotes,!text/single_angle_quotes",
-        "\u201e,\u201c,\u201d",
-        "!icon/settings_key|!code/key_settings",
-        "*",
-        "#",
-        "(",
-        "!icon/shortcut_key|!code/key_shortcut",
         EMPTY,
-        ":",
+        "!fixedColumnOrder!5,!text/single_quotes,!text/single_angle_quotes",
+        "^",
+        "\u201c,\u201d,\u201e",
+        "$,\u00a2,\u20ac,\u00a3,\u00a5,\u20b1",
+        "<",
+        "8",
         EMPTY,
-        "}",
-        "!icon/action_undo|!code/action_undo",
         EMPTY,
-        "PM",
+        "{",
         EMPTY,
-        "3",
-        "1",
+        "!icon/action_select_all|!code/action_select_all",
+        "5",
         "!icon/action_cut|!code/action_cut",
+        "!text/keyspec_greater_than,!text/keyspec_right_curly_bracket,!text/keyspec_right_square_bracket",
         EMPTY,
-        "\\%",
         EMPTY,
-        "!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote",
-        "!hasLabels!,!text/label_next_key|!code/key_action_next",
         EMPTY,
-        "!fixedColumnOrder!4,!needsDividers!,!icon/action_switch_language|!code/action_switch_language,!icon/action_text_edit|!code/action_text_edit,!icon/action_clipboard_history|!code/action_clipboard_history,!icon/action_emoji|!code/action_emoji,!icon/action_undo|!code/action_undo,!icon/action_redo|!code/action_redo",
+        EMPTY,
+        "),],},>",
+        "?,/",
+        "4",
+        "!fixedColumnOrder!2,!hasLabels!,!text/keylabel_time_am,!text/keylabel_time_pm",
         "6",
-        ">",
+        "(",
         EMPTY,
-        "!text/keyspec_greater_than,!text/keyspec_right_curly_bracket,!text/keyspec_right_square_bracket",
+        "\u201d,\u201e,\u201c",
+        "2",
+        "=",
         "%",
-        "!hasLabels!,!text/label_previous_key|!code/key_action_previous",
-        "(,[,{,<",
+        "= \\\\ <",
         EMPTY,
-        "4",
-        "\u00b2,\u2082,\u2154",
-        "]",
-        "\u201c,\u201d,\u201e",
+        "PM",
+        "!text/keyspec_left_single_angle_quote,!text/keyspec_right_single_angle_quote",
         EMPTY,
-        "&",
+        "!icon/action_copy|!code/action_copy",
+        EMPTY,
+        ".com",
+        "|",
+        "$,\u20ac,\u00a3,\u00a5,\u00a2",
+        EMPTY,
+        "!fixedColumnOrder!4,!needsDividers!,!icon/action_switch_language|!code/action_switch_language,!icon/action_text_edit|!code/action_text_edit,!icon/action_clipboard_history|!code/action_clipboard_history,!icon/action_emoji|!code/action_emoji,!icon/action_undo|!code/action_undo,!icon/action_redo|!code/action_redo",
         "@",
-        "\u00b3,\u2083,\u00be,\u215c",
-        "^",
+        "&",
         EMPTY,
-        "\"",
-        "!icon/action_redo|!code/action_redo",
-        "!hasLabels!,.net,.org,.gov,.edu",
-        "= \\\\ <",
-        "5",
-        "!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes",
-        "\u201c,\u201e,\u201d"
+        "!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote",
+        "\u2018,\u201a,\u2019",
+        EMPTY,
+        "\uff0a\uff03",
+        ")",
+        EMPTY,
+        "]",
+        EMPTY,
+        "-,\u2013,\u2014,_",
+        "3",
+        "0"
     };
 
 
diff --git a/java/src/org/futo/inputmethod/latin/LatinIME.kt b/java/src/org/futo/inputmethod/latin/LatinIME.kt
index a1faf3198e67568277e3925cc6cec20f58a47185..fb78d2d9660df7b06ed9a9d42f8f3ca6b8001fee 100644
--- a/java/src/org/futo/inputmethod/latin/LatinIME.kt
+++ b/java/src/org/futo/inputmethod/latin/LatinIME.kt
@@ -766,6 +766,8 @@ class LatinIME : InputMethodService(), LifecycleOwner, ViewModelStoreOwner, Save
 
         languageModelFacilitator.loadHistoryLog()
 
+        uixManager.onPersistentStatesUnlocked()
+
         // TODO: Spell checker service
     }
 }
\ No newline at end of file
diff --git a/java/src/org/futo/inputmethod/latin/uix/Action.kt b/java/src/org/futo/inputmethod/latin/uix/Action.kt
index e932e4c8f7f87e68a3434ee85585ac002954604b..75f6ff9bb9b3120198e0b941412e9da5f0e81af1 100644
--- a/java/src/org/futo/inputmethod/latin/uix/Action.kt
+++ b/java/src/org/futo/inputmethod/latin/uix/Action.kt
@@ -67,6 +67,7 @@ interface KeyboardManagerForAction {
     fun showActionEditor()
 
     fun getLatinIMEForDebug(): LatinIME
+    fun isDeviceLocked(): Boolean
 }
 
 interface ActionWindow {
@@ -95,6 +96,9 @@ interface PersistentActionState {
      * after this.
      */
     suspend fun cleanUp()
+
+
+    suspend fun onDeviceUnlocked() { }
 }
 
 enum class PersistentStateInitialization {
diff --git a/java/src/org/futo/inputmethod/latin/uix/EmojiTracker.kt b/java/src/org/futo/inputmethod/latin/uix/EmojiTracker.kt
index ef707f97b3bd2a4c04d967a5c7ea5edd4d07d2ed..49148c187611d4df4b823c55b75db9ff8c8a8369 100644
--- a/java/src/org/futo/inputmethod/latin/uix/EmojiTracker.kt
+++ b/java/src/org/futo/inputmethod/latin/uix/EmojiTracker.kt
@@ -10,12 +10,16 @@ val lastUsedColor = stringPreferencesKey("last_used_color")
 
 object EmojiTracker {
     suspend fun Context.setLastUsedColor(color: String) {
+        if(isDeviceLocked) return
+        
         dataStore.edit {
             it[lastUsedColor] = color
         }
     }
 
     suspend fun Context.useEmoji(emoji: String) {
+        if(isDeviceLocked) return
+
         dataStore.edit {
             val combined = emoji + "<|>" + (it[lastUsedEmoji] ?: "")
             it[lastUsedEmoji] = combined.split("<|>").take(128).joinToString("<|>")
@@ -23,6 +27,8 @@ object EmojiTracker {
     }
 
     suspend fun Context.unuseEmoji(emoji: String) {
+        if(isDeviceLocked) return
+
         dataStore.edit {
             val split = (it[lastUsedEmoji] ?: "").split("<|>")
             val idxToRemove = split.indexOfFirst { v -> v == emoji || v.trim() == emoji.trim() }
@@ -31,6 +37,8 @@ object EmojiTracker {
     }
 
     suspend fun Context.getRecentEmojis(): List<String> {
+        if(isDeviceLocked) return listOf()
+
         return getSetting(lastUsedEmoji, "")
             .split("<|>")
             .filter { it.isNotBlank() }
@@ -38,6 +46,8 @@ object EmojiTracker {
     }
 
     suspend fun Context.resetRecentEmojis() {
+        if(isDeviceLocked) return
+
         setSetting(lastUsedEmoji, "")
     }
 }
\ No newline at end of file
diff --git a/java/src/org/futo/inputmethod/latin/uix/UixManager.kt b/java/src/org/futo/inputmethod/latin/uix/UixManager.kt
index 4e2ab2c10672104f2c07689a43faa5da811ccc4a..f9ef67ec9469c483d02c37168a0bf4fa596b313d 100644
--- a/java/src/org/futo/inputmethod/latin/uix/UixManager.kt
+++ b/java/src/org/futo/inputmethod/latin/uix/UixManager.kt
@@ -1,6 +1,7 @@
 package org.futo.inputmethod.latin.uix
 
 import android.app.Activity
+import android.app.KeyguardManager
 import android.content.ClipDescription
 import android.content.Context
 import android.content.Intent
@@ -280,6 +281,10 @@ class UixActionKeyboardManager(val uixManager: UixManager, val latinIME: LatinIM
         uixManager.showActionEditor()
     }
 
+    override fun isDeviceLocked(): Boolean {
+        return getContext().isDeviceLocked
+    }
+
     override fun getLatinIMEForDebug(): LatinIME = latinIME
 }
 
@@ -847,4 +852,12 @@ class UixManager(private val latinIME: LatinIME) {
 
         isActionsExpanded.value = latinIME.getSettingBlocking(ActionBarExpanded)
     }
+
+    fun onPersistentStatesUnlocked() {
+        persistentStates.forEach {
+            latinIME.lifecycleScope.launch {
+                it.value?.onDeviceUnlocked()
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/java/src/org/futo/inputmethod/latin/uix/Utils.kt b/java/src/org/futo/inputmethod/latin/uix/Utils.kt
index 58580007f0f9690b79303c951bb3452a45041141..b406b25821e1d79bd84227149878fff0d82ea1f4 100644
--- a/java/src/org/futo/inputmethod/latin/uix/Utils.kt
+++ b/java/src/org/futo/inputmethod/latin/uix/Utils.kt
@@ -1,6 +1,7 @@
 package org.futo.inputmethod.latin.uix
 
 import android.app.Dialog
+import android.app.KeyguardManager
 import android.content.Context
 import android.util.TypedValue
 import android.view.Gravity
@@ -108,4 +109,13 @@ fun DialogComposeView.show() {
 
 fun DialogComposeView.dismiss() {
     dialog.dismiss()
-}
\ No newline at end of file
+}
+
+val Context.isDeviceLocked: Boolean
+    get() {
+        if(!isDirectBootUnlocked) return false
+
+        val keyguardManager: KeyguardManager? = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager?
+
+        return keyguardManager?.let { it.isDeviceLocked || it.isKeyguardLocked } ?: false
+    }
\ No newline at end of file
diff --git a/java/src/org/futo/inputmethod/latin/uix/actions/ClipboardHistoryAction.kt b/java/src/org/futo/inputmethod/latin/uix/actions/ClipboardHistoryAction.kt
index 483e6f88ce07f10be0b7ecdc06de8a3c7fda1ad0..bd3559490ebc34800cdb13af7df061a3472f24e6 100644
--- a/java/src/org/futo/inputmethod/latin/uix/actions/ClipboardHistoryAction.kt
+++ b/java/src/org/futo/inputmethod/latin/uix/actions/ClipboardHistoryAction.kt
@@ -192,6 +192,10 @@ class ClipboardHistoryManager(val context: Context, val coroutineScope: Lifecycl
         uri = null,
         mimeTypes = listOf()
     ))
+    
+    override suspend fun onDeviceUnlocked() {
+        loadClipboard()
+    }
 
     init {
         coroutineScope.launch {
@@ -379,7 +383,7 @@ val ClipboardHistoryAction = Action(
     },
     persistentStateInitialization = PersistentStateInitialization.OnKeyboardLoad,
     windowImpl = { manager, persistent ->
-        val unlocked = manager.getContext().isDirectBootUnlocked
+        val unlocked = !manager.isDeviceLocked()
         val clipboardHistoryManager = persistent as ClipboardHistoryManager
 
         manager.getLifecycleScope().launch { clipboardHistoryManager.pruneOldItems() }
@@ -396,52 +400,58 @@ val ClipboardHistoryAction = Action(
                 val clipboardHistory = useDataStore(ClipboardHistoryEnabled, blocking = true)
                 if(!clipboardHistory.value) return
 
-                IconButton(onClick = {
-                    val numUnpinnedItems = clipboardHistoryManager.clipboardHistory.count { !it.pinned }
-                    if(clipboardHistoryManager.clipboardHistory.size == 0) {
-                        manager.requestDialog(
-                            "There are no items to clear. Disable clipboard history?",
-                            listOf(
-                                DialogRequestItem("Cancel") {},
-                                DialogRequestItem("Disable") {
-                                    clipboardHistory.setValue(false)
-                                },
-                            ),
-                            {}
-                        )
-                    } else if(numUnpinnedItems == 0) {
-                        manager.requestDialog(
-                            "There are no unpinned items to clear. Unpin all items?",
-                            listOf(
-                                DialogRequestItem("Cancel") {},
-                                DialogRequestItem("Unpin") {
-                                    clipboardHistoryManager.clipboardHistory.toList().forEach {
-                                        if(it.pinned) {
-                                            clipboardHistoryManager.onPin(it)
+                if(unlocked) {
+                    IconButton(onClick = {
+                        val numUnpinnedItems =
+                            clipboardHistoryManager.clipboardHistory.count { !it.pinned }
+                        if (clipboardHistoryManager.clipboardHistory.size == 0) {
+                            manager.requestDialog(
+                                "There are no items to clear. Disable clipboard history?",
+                                listOf(
+                                    DialogRequestItem("Cancel") {},
+                                    DialogRequestItem("Disable") {
+                                        clipboardHistory.setValue(false)
+                                    },
+                                ),
+                                {}
+                            )
+                        } else if (numUnpinnedItems == 0) {
+                            manager.requestDialog(
+                                "There are no unpinned items to clear. Unpin all items?",
+                                listOf(
+                                    DialogRequestItem("Cancel") {},
+                                    DialogRequestItem("Unpin") {
+                                        clipboardHistoryManager.clipboardHistory.toList().forEach {
+                                            if (it.pinned) {
+                                                clipboardHistoryManager.onPin(it)
+                                            }
                                         }
-                                    }
-                                },
-                            ),
-                            {}
-                        )
-                    } else {
-                        manager.requestDialog(
-                            "Clear all unpinned items?",
-                            listOf(
-                                DialogRequestItem("Cancel") {},
-                                DialogRequestItem("Clear") {
-                                    clipboardHistoryManager.clipboardHistory.toList().forEach {
-                                        if (!it.pinned) {
-                                            clipboardHistoryManager.onRemove(it)
+                                    },
+                                ),
+                                {}
+                            )
+                        } else {
+                            manager.requestDialog(
+                                "Clear all unpinned items?",
+                                listOf(
+                                    DialogRequestItem("Cancel") {},
+                                    DialogRequestItem("Clear") {
+                                        clipboardHistoryManager.clipboardHistory.toList().forEach {
+                                            if (!it.pinned) {
+                                                clipboardHistoryManager.onRemove(it)
+                                            }
                                         }
-                                    }
-                                },
-                            ),
-                            {}
+                                    },
+                                ),
+                                {}
+                            )
+                        }
+                    }) {
+                        Icon(
+                            painterResource(id = R.drawable.close),
+                            contentDescription = "Clear clipboard"
                         )
                     }
-                }) {
-                    Icon(painterResource(id = R.drawable.close), contentDescription = "Clear clipboard")
                 }
             }