Add auto correct "on" => "ong", and combine some fuzzy pinyin options to save flag...
authorPeng Huang <shawn.p.huang@gmail.com>
Mon, 21 Mar 2011 17:00:05 +0000 (13:00 -0400)
committerPeng Huang <shawn.p.huang@gmail.com>
Mon, 21 Mar 2011 17:00:05 +0000 (13:00 -0400)
BUG=none
TEST=Linux desktop

Review URL: http://codereview.appspot.com/4273085

data/db/android/Makefile.am
data/db/open-phrase/Makefile.am
scripts/genpytable.py
setup/ibus-pinyin-preferences.ui
setup/main.py
src/Makefile.am
src/PYConfig.cc
src/PYPinyinParserTable.h
src/PYTypes.h

index 76f4e33..7574596 100644 (file)
@@ -39,7 +39,8 @@ endif
 android.db: $(android_raw_data) $(create_scripts)
        $(AM_V_GEN) \
        $(RM) $@; \
-       $(srcdir)/create_db.py $(srcdir)/rawdict_utf16_65105_freq.txt | @SQLITE3@ $@
+       $(srcdir)/create_db.py $(srcdir)/rawdict_utf16_65105_freq.txt | @SQLITE3@ $@ || \
+               ( $(RM) $@ ; exit 1 )
 
 EXTRA_DIST = \
        $(data_files) \
index 32bc052..f343ec5 100644 (file)
@@ -30,7 +30,9 @@ DBVER = 1.2.99
 DBTAR = pinyin-database-$(DBVER).tar.bz2
 
 $(DBTAR):
-       wget http://ibus.googlecode.com/files/$(DBTAR)
+       $(AM_V_GEN) \
+       wget http://ibus.googlecode.com/files/$(DBTAR) && \
+       ( $(RM) $@; exit 1)
 
 stamp-db: $(DBTAR)
        $(AM_V_GEN) \
index 8128104..5dfe2d0 100644 (file)
@@ -25,7 +25,8 @@ auto_correct = [
     ("ui", "uei"),
     ("un", "uen"),
 #    ("ue", "ve"),
-    ("ve", "ue")
+    ("ve", "ue"),
+    ("ong", "on"),
 ]
 
 auto_correct_ext = [
index de20905..febe032 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="2.14"/>
   <!-- interface-naming-policy project-wide -->
@@ -9,7 +9,6 @@
     <property name="window_position">center-always</property>
     <property name="icon_name">gtk-preferences</property>
     <property name="type_hint">normal</property>
-    <property name="has_separator">False</property>
     <child internal-child="vbox">
       <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <placeholder/>
+                                  <object class="GtkCheckButton" id="CorrectPinyin_ON_ONG">
+                                    <property name="label">on =&gt; ong</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="top_attach">5</property>
+                                    <property name="bottom_attach">6</property>
+                                  </packing>
                                 </child>
                                 <child>
                                   <placeholder/>
                                     <property name="label" translatable="yes">Feature of Enter key:</property>
                                   </object>
                                   <packing>
-                                    <property name="top_attach">3</property>
-                                    <property name="bottom_attach">4</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
                                     <property name="group">CommitOriginalText</property>
                                   </object>
                                   <packing>
-                                    <property name="left_attach">2</property>
-                                    <property name="right_attach">3</property>
-                                    <property name="top_attach">3</property>
-                                    <property name="bottom_attach">4</property>
+                                    <property name="position">1</property>
                                   </packing>
                                 </child>
                                 <child>
                                     <property name="draw_indicator">True</property>
                                   </object>
                                   <packing>
-                                    <property name="left_attach">1</property>
-                                    <property name="right_attach">2</property>
-                                    <property name="top_attach">3</property>
-                                    <property name="bottom_attach">4</property>
+                                    <property name="position">2</property>
                                   </packing>
                                 </child>
                               </object>
                         <child>
                           <object class="GtkTable" id="table1">
                             <property name="visible">True</property>
-                            <property name="n_rows">14</property>
+                            <property name="n_rows">12</property>
                             <property name="n_columns">2</property>
                             <property name="column_spacing">6</property>
                             <property name="row_spacing">6</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkCheckButton" id="FuzzyPinyin_UAN_UANG">
-                                <property name="label">uan =&gt; uang</property>
-                                <property name="visible">True</property>
-                                <property name="sensitive">False</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="active">True</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="top_attach">12</property>
-                                <property name="bottom_attach">13</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkCheckButton" id="FuzzyPinyin_UANG_UAN">
-                                <property name="label">uang =&gt; uan</property>
-                                <property name="visible">True</property>
-                                <property name="sensitive">False</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">12</property>
-                                <property name="bottom_attach">13</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkCheckButton" id="FuzzyPinyin_IAN_IANG">
-                                <property name="label">ian =&gt; iang</property>
-                                <property name="visible">True</property>
-                                <property name="sensitive">False</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="active">True</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="top_attach">11</property>
-                                <property name="bottom_attach">12</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkCheckButton" id="FuzzyPinyin_IANG_IAN">
-                                <property name="label">iang =&gt; ian</property>
-                                <property name="visible">True</property>
-                                <property name="sensitive">False</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="right_attach">2</property>
-                                <property name="top_attach">11</property>
-                                <property name="bottom_attach">12</property>
-                              </packing>
-                            </child>
-                            <child>
                               <object class="GtkCheckButton" id="FuzzyPinyin">
                                 <property name="label" translatable="yes">Enable fuzzy syllable</property>
                                 <property name="visible">True</property>
index 86ad0bf..0e3a729 100644 (file)
@@ -252,6 +252,7 @@ class PreferencesDialog:
             ("CorrectPinyin_UEN_UN", True),
             ("CorrectPinyin_UE_VE", True),
             ("CorrectPinyin_V_U", True),
+            ("CorrectPinyin_ON_ONG", True),
         ]
 
         def __correct_pinyin_toggled_cb(widget):
@@ -298,10 +299,10 @@ class PreferencesDialog:
             ("FuzzyPinyin_ANG_AN", True),
             ("FuzzyPinyin_ENG_EN", True),
             ("FuzzyPinyin_ING_IN", True),
-            ("FuzzyPinyin_IAN_IANG", True),
-            ("FuzzyPinyin_UAN_UANG", True),
-            ("FuzzyPinyin_IANG_IAN", True),
-            ("FuzzyPinyin_UANG_UAN", True),
+            ("FuzzyPinyin_IAN_IANG", True),
+            ("FuzzyPinyin_UAN_UANG", True),
+            ("FuzzyPinyin_IANG_IAN", True),
+            ("FuzzyPinyin_UANG_UAN", True),
         ]
 
         def __fuzzy_pinyin_toggled_cb(widget):
@@ -322,30 +323,36 @@ class PreferencesDialog:
             widget.connect("toggled", self.__toggled_cb, name)
 
     def __convert_fuzzy_pinyin_to_bopomofo(self):
-        self.__builder.get_object("FuzzyPinyin_C_CH").set_label("ㄘ => ㄔ")
-        self.__builder.get_object("FuzzyPinyin_Z_ZH").set_label("ㄗ => ㄓ")
-        self.__builder.get_object("FuzzyPinyin_S_SH").set_label("ㄙ => ㄕ")
-        self.__builder.get_object("FuzzyPinyin_CH_C").set_label("ㄔ => ㄘ")
-        self.__builder.get_object("FuzzyPinyin_ZH_Z").set_label("ㄓ => ㄗ")
-        self.__builder.get_object("FuzzyPinyin_SH_S").set_label("ㄕ => ㄙ")
-        self.__builder.get_object("FuzzyPinyin_L_N").set_label("ㄌ => ㄋ")
-        self.__builder.get_object("FuzzyPinyin_F_H").set_label("ㄈ => ㄏ")
-        self.__builder.get_object("FuzzyPinyin_L_R").set_label("ㄌ => ㄖ")
-        self.__builder.get_object("FuzzyPinyin_K_G").set_label("ㄎ => ㄍ")
-        self.__builder.get_object("FuzzyPinyin_N_L").set_label("ㄋ => ㄌ")
-        self.__builder.get_object("FuzzyPinyin_H_F").set_label("ㄏ => ㄈ")
-        self.__builder.get_object("FuzzyPinyin_R_L").set_label("ㄖ => ㄌ")
-        self.__builder.get_object("FuzzyPinyin_G_K").set_label("ㄍ => ㄎ")
-        self.__builder.get_object("FuzzyPinyin_AN_ANG").set_label("ㄢ => ㄤ")
-        self.__builder.get_object("FuzzyPinyin_EN_ENG").set_label("ㄣ => ㄥ")
-        self.__builder.get_object("FuzzyPinyin_IN_ING").set_label("ㄧㄣ => ㄧㄥ")
-        self.__builder.get_object("FuzzyPinyin_ANG_AN").set_label("ㄤ => ㄢ")
-        self.__builder.get_object("FuzzyPinyin_ENG_EN").set_label("ㄥ => ㄣ")
-        self.__builder.get_object("FuzzyPinyin_ING_IN").set_label("ㄧㄥ => ㄧㄣ")
-        self.__builder.get_object("FuzzyPinyin_IAN_IANG").set_label("ㄧㄢ => ㄧㄤ")
-        self.__builder.get_object("FuzzyPinyin_UAN_UANG").set_label("ㄨㄢ => ㄨㄤ")
-        self.__builder.get_object("FuzzyPinyin_IANG_IAN").set_label("ㄧㄤ => ㄧㄢ")
-        self.__builder.get_object("FuzzyPinyin_UANG_UAN").set_label("ㄨㄤ => ㄨㄢ")
+        options = [
+            ("FuzzyPinyin_C_CH",   "ㄘ => ㄔ"),
+            ("FuzzyPinyin_Z_ZH",   "ㄗ => ㄓ"),
+            ("FuzzyPinyin_S_SH",   "ㄙ => ㄕ"),
+            ("FuzzyPinyin_CH_C",   "ㄔ => ㄘ"),
+            ("FuzzyPinyin_ZH_Z",   "ㄓ => ㄗ"),
+            ("FuzzyPinyin_SH_S",   "ㄕ => ㄙ"),
+            ("FuzzyPinyin_L_N",    "ㄌ => ㄋ"),
+            ("FuzzyPinyin_F_H",    "ㄈ => ㄏ"),
+            ("FuzzyPinyin_L_R",    "ㄌ => ㄖ"),
+            ("FuzzyPinyin_K_G",    "ㄎ => ㄍ"),
+            ("FuzzyPinyin_N_L",    "ㄋ => ㄌ"),
+            ("FuzzyPinyin_H_F",    "ㄏ => ㄈ"),
+            ("FuzzyPinyin_R_L",    "ㄖ => ㄌ"),
+            ("FuzzyPinyin_G_K",    "ㄍ => ㄎ"),
+            ("FuzzyPinyin_AN_ANG", "ㄢ => ㄤ"),
+            ("FuzzyPinyin_EN_ENG", "ㄣ => ㄥ"),
+            ("FuzzyPinyin_IN_ING", "ㄧㄣ => ㄧㄥ"),
+            ("FuzzyPinyin_ANG_AN", "ㄤ => ㄢ"),
+            ("FuzzyPinyin_ENG_EN", "ㄥ => ㄣ"),
+            ("FuzzyPinyin_ING_IN", "ㄧㄥ => ㄧㄣ"),
+            # ("FuzzyPinyin_IAN_IANG", "ㄧㄢ => ㄧㄤ"),
+            # ("FuzzyPinyin_UAN_UANG", "ㄨㄢ => ㄨㄤ"),
+            # ("FuzzyPinyin_IANG_IAN", "ㄧㄤ => ㄧㄢ"),
+            # ("FuzzyPinyin_UANG_UAN", "ㄨㄤ => ㄨㄢ"),
+        ]
+
+        for name, label in options:
+            self.__builder.get_object(name).set_label(label)
+
 
     def __init_dictionary(self):
         # page Dictionary
index b215c78..094d97e 100644 (file)
@@ -190,16 +190,24 @@ CLEANFILES = \
        $(NULL)
 
 PYBopomofoKeyboard.h:
-       $(PYTHON) $(top_srcdir)/scripts/genbopomofokeyboard.py > $@
+       $(AM_V_GEN) \
+       $(PYTHON) $(top_srcdir)/scripts/genbopomofokeyboard.py > $@ || \
+               ( $(RM) $@; exit 1 )
 
 PYPinyinParserTable.h:
-       $(PYTHON) $(top_srcdir)/scripts/genpytable.py > $@
+       $(AM_V_GEN) \
+       $(PYTHON) $(top_srcdir)/scripts/genpytable.py > $@ || \
+               ( $(RM) $@; exit 1 )
 
 PYPunctTable.h:
-       $(PYTHON) $(top_srcdir)/scripts/genpuncttable.py > $@
+       $(AM_V_GEN) \
+       $(PYTHON) $(top_srcdir)/scripts/genpuncttable.py > $@ || \
+               ( $(RM) $@; exit 1 )
 
 PYSimpTradConverterTable.h:
-       $(PYTHON) $(top_srcdir)/scripts/update-simptrad-table.py > $@
+       $(AM_V_GEN) \
+       $(PYTHON) $(top_srcdir)/scripts/update-simptrad-table.py > $@ || \
+               ( $(RM) $@; exit 1 )
 
 update-simptrad-table:
        $(RM) ZhConversion.php ZhConversion.py PYSimpTradConverterTable.h
@@ -224,10 +232,13 @@ test: ibus-engine-pinyin
 # test: ibus-engine-pinyin
 #      $(ENV) G_DEBUG=fatal_warnings \
 #      $(builddir)/ibus-engine-pinyin
-
 ZhConversion.php:
-       svn cat http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/includes/ZhConversion.php > $@
+       $(AM_V_GEN) \
+       svn cat http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/includes/ZhConversion.php > $@ || \
+               ( $(RM) $@; exit 1 )
 
 ZhConversion.py: ZhConversion.php
-       php $(top_srcdir)/scripts/php_2_py.php > $@
+       $(AM_V_GEN) \
+       php $(top_srcdir)/scripts/php_2_py.php > $@ || \
+               ( $(RM) $@; exit 1 )
 
index 20fbef1..b932931 100644 (file)
@@ -113,10 +113,12 @@ static const struct {
     { "FuzzyPinyin_ENG_EN",     PINYIN_FUZZY_ENG_EN,        TRUE  },
     { "FuzzyPinyin_IN_ING",     PINYIN_FUZZY_IN_ING,        TRUE  },
     { "FuzzyPinyin_ING_IN",     PINYIN_FUZZY_ING_IN,        TRUE  },
+#if 0
     { "FuzzyPinyin_IAN_IANG",   PINYIN_FUZZY_IAN_IANG,      TRUE  },
     { "FuzzyPinyin_IANG_IAN",   PINYIN_FUZZY_IANG_IAN,      TRUE  },
     { "FuzzyPinyin_UAN_UANG",   PINYIN_FUZZY_UAN_UANG,      TRUE  },
     { "FuzzyPinyin_UANG_UAN",   PINYIN_FUZZY_UANG_UAN,      TRUE  },
+#endif
 };
 
 void
@@ -299,6 +301,7 @@ static const struct {
     { "CorrectPinyin_UE_VE",    PINYIN_CORRECT_UE_TO_VE,    TRUE },
     { "CorrectPinyin_V_U",      PINYIN_CORRECT_V_TO_U,      TRUE },
     { "CorrectPinyin_VE_UE",    PINYIN_CORRECT_V_TO_U,      TRUE },
+    { "CorrectPinyin_ON_ONG",   PINYIN_CORRECT_ON_TO_ONG,   FALSE },
 };
 
 PinyinConfig::PinyinConfig (Bus & bus)
index 89487d1..4f80ee8 100644 (file)
@@ -540,6 +540,15 @@ static const Pinyin pinyin_table[] = {
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
     {  /* 60 */
+        text        : "chon",
+        bopomofo    : L"",
+        sheng       : "ch",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_CH, PINYIN_ID_ONG }, { PINYIN_ID_C, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 4,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 61 */
         text        : "chong",
         bopomofo    : L"ㄔㄨㄥ",
         sheng       : "ch",
@@ -548,7 +557,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 61 */
+    {  /* 62 */
         text        : "chou",
         bopomofo    : L"ㄔㄡ",
         sheng       : "ch",
@@ -557,7 +566,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 62 */
+    {  /* 63 */
         text        : "chu",
         bopomofo    : L"ㄔㄨ",
         sheng       : "ch",
@@ -566,7 +575,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 63 */
+    {  /* 64 */
         text        : "chuagn",
         bopomofo    : L"",
         sheng       : "ch",
@@ -575,7 +584,7 @@ static const Pinyin pinyin_table[] = {
         len         : 6,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 64 */
+    {  /* 65 */
         text        : "chuai",
         bopomofo    : L"ㄔㄨㄞ",
         sheng       : "ch",
@@ -584,7 +593,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 65 */
+    {  /* 66 */
         text        : "chuamg",
         bopomofo    : L"",
         sheng       : "ch",
@@ -593,7 +602,7 @@ static const Pinyin pinyin_table[] = {
         len         : 6,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 66 */
+    {  /* 67 */
         text        : "chuan",
         bopomofo    : L"ㄔㄨㄢ",
         sheng       : "ch",
@@ -602,7 +611,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 67 */
+    {  /* 68 */
         text        : "chuang",
         bopomofo    : L"ㄔㄨㄤ",
         sheng       : "ch",
@@ -611,7 +620,7 @@ static const Pinyin pinyin_table[] = {
         len         : 6,
         flags       : 0
     },
-    {  /* 68 */
+    {  /* 69 */
         text        : "chuei",
         bopomofo    : L"",
         sheng       : "ch",
@@ -620,7 +629,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 69 */
+    {  /* 70 */
         text        : "chuen",
         bopomofo    : L"",
         sheng       : "ch",
@@ -629,7 +638,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 70 */
+    {  /* 71 */
         text        : "chui",
         bopomofo    : L"ㄔㄨㄟ",
         sheng       : "ch",
@@ -638,7 +647,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 71 */
+    {  /* 72 */
         text        : "chun",
         bopomofo    : L"ㄔㄨㄣ",
         sheng       : "ch",
@@ -647,7 +656,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 72 */
+    {  /* 73 */
         text        : "chuo",
         bopomofo    : L"ㄔㄨㄛ",
         sheng       : "ch",
@@ -656,7 +665,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 73 */
+    {  /* 74 */
         text        : "ci",
         bopomofo    : L"ㄘ",
         sheng       : "c",
@@ -665,7 +674,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 74 */
+    {  /* 75 */
         text        : "cogn",
         bopomofo    : L"",
         sheng       : "c",
@@ -674,7 +683,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 75 */
+    {  /* 76 */
         text        : "comg",
         bopomofo    : L"",
         sheng       : "c",
@@ -683,7 +692,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 76 */
+    {  /* 77 */
+        text        : "con",
+        bopomofo    : L"",
+        sheng       : "c",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_C, PINYIN_ID_ONG }, { PINYIN_ID_CH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 78 */
         text        : "cong",
         bopomofo    : L"ㄘㄨㄥ",
         sheng       : "c",
@@ -692,7 +710,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 77 */
+    {  /* 79 */
         text        : "cou",
         bopomofo    : L"ㄘㄡ",
         sheng       : "c",
@@ -701,7 +719,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 78 */
+    {  /* 80 */
         text        : "cu",
         bopomofo    : L"ㄘㄨ",
         sheng       : "c",
@@ -710,7 +728,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 79 */
+    {  /* 81 */
         text        : "cuai",
         bopomofo    : L"ㄘㄨㄞ",
         sheng       : "c",
@@ -719,7 +737,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_C_CH
     },
-    {  /* 80 */
+    {  /* 82 */
         text        : "cuan",
         bopomofo    : L"ㄘㄨㄢ",
         sheng       : "c",
@@ -728,7 +746,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 81 */
+    {  /* 83 */
         text        : "cuang",
         bopomofo    : L"ㄘㄨㄤ",
         sheng       : "c",
@@ -737,7 +755,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_C_CH | PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 82 */
+    {  /* 84 */
         text        : "cuei",
         bopomofo    : L"",
         sheng       : "c",
@@ -746,7 +764,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 83 */
+    {  /* 85 */
         text        : "cuen",
         bopomofo    : L"",
         sheng       : "c",
@@ -755,7 +773,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 84 */
+    {  /* 86 */
         text        : "cui",
         bopomofo    : L"ㄘㄨㄟ",
         sheng       : "c",
@@ -764,7 +782,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 85 */
+    {  /* 87 */
         text        : "cun",
         bopomofo    : L"ㄘㄨㄣ",
         sheng       : "c",
@@ -773,7 +791,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 86 */
+    {  /* 88 */
         text        : "cuo",
         bopomofo    : L"ㄘㄨㄛ",
         sheng       : "c",
@@ -782,7 +800,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 87 */
+    {  /* 89 */
         text        : "d",
         bopomofo    : L"ㄉ",
         sheng       : "d",
@@ -791,7 +809,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 88 */
+    {  /* 90 */
         text        : "da",
         bopomofo    : L"ㄉㄚ",
         sheng       : "d",
@@ -800,7 +818,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 89 */
+    {  /* 91 */
         text        : "dagn",
         bopomofo    : L"",
         sheng       : "d",
@@ -809,7 +827,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 90 */
+    {  /* 92 */
         text        : "dai",
         bopomofo    : L"ㄉㄞ",
         sheng       : "d",
@@ -818,7 +836,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 91 */
+    {  /* 93 */
         text        : "damg",
         bopomofo    : L"",
         sheng       : "d",
@@ -827,7 +845,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 92 */
+    {  /* 94 */
         text        : "dan",
         bopomofo    : L"ㄉㄢ",
         sheng       : "d",
@@ -836,7 +854,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 93 */
+    {  /* 95 */
         text        : "dang",
         bopomofo    : L"ㄉㄤ",
         sheng       : "d",
@@ -845,7 +863,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 94 */
+    {  /* 96 */
         text        : "dao",
         bopomofo    : L"ㄉㄠ",
         sheng       : "d",
@@ -854,7 +872,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 95 */
+    {  /* 97 */
         text        : "de",
         bopomofo    : L"ㄉㄜ",
         sheng       : "d",
@@ -863,7 +881,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 96 */
+    {  /* 98 */
         text        : "degn",
         bopomofo    : L"",
         sheng       : "d",
@@ -872,7 +890,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 97 */
+    {  /* 99 */
         text        : "dei",
         bopomofo    : L"ㄉㄟ",
         sheng       : "d",
@@ -881,7 +899,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 98 */
+    {  /* 100 */
         text        : "demg",
         bopomofo    : L"",
         sheng       : "d",
@@ -890,7 +908,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 99 */
+    {  /* 101 */
         text        : "den",
         bopomofo    : L"ㄉㄣ",
         sheng       : "d",
@@ -899,7 +917,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_EN_ENG
     },
-    {  /* 100 */
+    {  /* 102 */
         text        : "deng",
         bopomofo    : L"ㄉㄥ",
         sheng       : "d",
@@ -908,7 +926,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 101 */
+    {  /* 103 */
         text        : "di",
         bopomofo    : L"ㄉㄧ",
         sheng       : "d",
@@ -917,7 +935,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 102 */
+    {  /* 104 */
         text        : "dia",
         bopomofo    : L"ㄉㄧㄚ",
         sheng       : "d",
@@ -926,7 +944,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 103 */
+    {  /* 105 */
         text        : "dian",
         bopomofo    : L"ㄉㄧㄢ",
         sheng       : "d",
@@ -935,7 +953,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 104 */
+    {  /* 106 */
         text        : "diang",
         bopomofo    : L"ㄉㄧㄤ",
         sheng       : "d",
@@ -944,7 +962,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_IANG_IAN
     },
-    {  /* 105 */
+    {  /* 107 */
         text        : "diao",
         bopomofo    : L"ㄉㄧㄠ",
         sheng       : "d",
@@ -953,7 +971,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 106 */
+    {  /* 108 */
         text        : "die",
         bopomofo    : L"ㄉㄧㄝ",
         sheng       : "d",
@@ -962,7 +980,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 107 */
+    {  /* 109 */
         text        : "dign",
         bopomofo    : L"",
         sheng       : "d",
@@ -971,7 +989,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 108 */
+    {  /* 110 */
         text        : "dimg",
         bopomofo    : L"",
         sheng       : "d",
@@ -980,7 +998,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 109 */
+    {  /* 111 */
         text        : "din",
         bopomofo    : L"ㄉㄧㄣ",
         sheng       : "d",
@@ -989,7 +1007,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_IN_ING
     },
-    {  /* 110 */
+    {  /* 112 */
         text        : "ding",
         bopomofo    : L"ㄉㄧㄥ",
         sheng       : "d",
@@ -998,7 +1016,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 111 */
+    {  /* 113 */
         text        : "diou",
         bopomofo    : L"",
         sheng       : "d",
@@ -1007,7 +1025,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_IOU_TO_IU
     },
-    {  /* 112 */
+    {  /* 114 */
         text        : "diu",
         bopomofo    : L"ㄉㄧㄡ",
         sheng       : "d",
@@ -1016,7 +1034,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 113 */
+    {  /* 115 */
         text        : "dogn",
         bopomofo    : L"",
         sheng       : "d",
@@ -1025,7 +1043,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 114 */
+    {  /* 116 */
         text        : "domg",
         bopomofo    : L"",
         sheng       : "d",
@@ -1034,7 +1052,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 115 */
+    {  /* 117 */
+        text        : "don",
+        bopomofo    : L"",
+        sheng       : "d",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_D, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 118 */
         text        : "dong",
         bopomofo    : L"ㄉㄨㄥ",
         sheng       : "d",
@@ -1043,7 +1070,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 116 */
+    {  /* 119 */
         text        : "dou",
         bopomofo    : L"ㄉㄡ",
         sheng       : "d",
@@ -1052,7 +1079,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 117 */
+    {  /* 120 */
         text        : "du",
         bopomofo    : L"ㄉㄨ",
         sheng       : "d",
@@ -1061,7 +1088,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 118 */
+    {  /* 121 */
         text        : "duan",
         bopomofo    : L"ㄉㄨㄢ",
         sheng       : "d",
@@ -1070,7 +1097,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 119 */
+    {  /* 122 */
         text        : "duang",
         bopomofo    : L"ㄉㄨㄤ",
         sheng       : "d",
@@ -1079,7 +1106,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 120 */
+    {  /* 123 */
         text        : "duei",
         bopomofo    : L"",
         sheng       : "d",
@@ -1088,7 +1115,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 121 */
+    {  /* 124 */
         text        : "duen",
         bopomofo    : L"",
         sheng       : "d",
@@ -1097,7 +1124,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 122 */
+    {  /* 125 */
         text        : "dui",
         bopomofo    : L"ㄉㄨㄟ",
         sheng       : "d",
@@ -1106,7 +1133,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 123 */
+    {  /* 126 */
         text        : "dun",
         bopomofo    : L"ㄉㄨㄣ",
         sheng       : "d",
@@ -1115,7 +1142,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 124 */
+    {  /* 127 */
         text        : "duo",
         bopomofo    : L"ㄉㄨㄛ",
         sheng       : "d",
@@ -1124,7 +1151,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 125 */
+    {  /* 128 */
         text        : "e",
         bopomofo    : L"ㄜ",
         sheng       : "",
@@ -1133,7 +1160,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : 0
     },
-    {  /* 126 */
+    {  /* 129 */
         text        : "ei",
         bopomofo    : L"ㄟ",
         sheng       : "",
@@ -1142,7 +1169,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 127 */
+    {  /* 130 */
         text        : "en",
         bopomofo    : L"ㄣ",
         sheng       : "",
@@ -1151,7 +1178,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 128 */
+    {  /* 131 */
         text        : "er",
         bopomofo    : L"ㄦ",
         sheng       : "",
@@ -1160,7 +1187,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 129 */
+    {  /* 132 */
         text        : "f",
         bopomofo    : L"ㄈ",
         sheng       : "f",
@@ -1169,7 +1196,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 130 */
+    {  /* 133 */
         text        : "fa",
         bopomofo    : L"ㄈㄚ",
         sheng       : "f",
@@ -1178,7 +1205,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 131 */
+    {  /* 134 */
         text        : "fagn",
         bopomofo    : L"",
         sheng       : "f",
@@ -1187,7 +1214,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 132 */
+    {  /* 135 */
         text        : "fai",
         bopomofo    : L"ㄈㄞ",
         sheng       : "f",
@@ -1196,7 +1223,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 133 */
+    {  /* 136 */
         text        : "famg",
         bopomofo    : L"",
         sheng       : "f",
@@ -1205,7 +1232,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 134 */
+    {  /* 137 */
         text        : "fan",
         bopomofo    : L"ㄈㄢ",
         sheng       : "f",
@@ -1214,7 +1241,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 135 */
+    {  /* 138 */
         text        : "fang",
         bopomofo    : L"ㄈㄤ",
         sheng       : "f",
@@ -1223,7 +1250,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 136 */
+    {  /* 139 */
         text        : "fao",
         bopomofo    : L"ㄈㄠ",
         sheng       : "f",
@@ -1232,7 +1259,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 137 */
+    {  /* 140 */
         text        : "fe",
         bopomofo    : L"ㄈㄜ",
         sheng       : "f",
@@ -1241,7 +1268,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 138 */
+    {  /* 141 */
         text        : "fegn",
         bopomofo    : L"",
         sheng       : "f",
@@ -1250,7 +1277,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 139 */
+    {  /* 142 */
         text        : "fei",
         bopomofo    : L"ㄈㄟ",
         sheng       : "f",
@@ -1259,7 +1286,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 140 */
+    {  /* 143 */
         text        : "femg",
         bopomofo    : L"",
         sheng       : "f",
@@ -1268,7 +1295,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 141 */
+    {  /* 144 */
         text        : "fen",
         bopomofo    : L"ㄈㄣ",
         sheng       : "f",
@@ -1277,7 +1304,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 142 */
+    {  /* 145 */
         text        : "feng",
         bopomofo    : L"ㄈㄥ",
         sheng       : "f",
@@ -1286,7 +1313,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 143 */
+    {  /* 146 */
         text        : "fo",
         bopomofo    : L"ㄈㄛ",
         sheng       : "f",
@@ -1295,7 +1322,16 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 144 */
+    {  /* 147 */
+        text        : "fon",
+        bopomofo    : L"",
+        sheng       : "f",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_F, PINYIN_ID_ONG }, { PINYIN_ID_H, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_FUZZY_F_H | PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 148 */
         text        : "fong",
         bopomofo    : L"ㄈㄨㄥ",
         sheng       : "f",
@@ -1304,7 +1340,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 145 */
+    {  /* 149 */
         text        : "fou",
         bopomofo    : L"ㄈㄡ",
         sheng       : "f",
@@ -1313,7 +1349,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 146 */
+    {  /* 150 */
         text        : "fu",
         bopomofo    : L"ㄈㄨ",
         sheng       : "f",
@@ -1322,7 +1358,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 147 */
+    {  /* 151 */
         text        : "fua",
         bopomofo    : L"ㄈㄨㄚ",
         sheng       : "f",
@@ -1331,7 +1367,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 148 */
+    {  /* 152 */
         text        : "fuai",
         bopomofo    : L"ㄈㄨㄞ",
         sheng       : "f",
@@ -1340,7 +1376,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 149 */
+    {  /* 153 */
         text        : "fuan",
         bopomofo    : L"ㄈㄨㄢ",
         sheng       : "f",
@@ -1349,7 +1385,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 150 */
+    {  /* 154 */
         text        : "fuang",
         bopomofo    : L"ㄈㄨㄤ",
         sheng       : "f",
@@ -1358,7 +1394,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 151 */
+    {  /* 155 */
         text        : "fuei",
         bopomofo    : L"",
         sheng       : "f",
@@ -1367,7 +1403,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_F_H | PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 152 */
+    {  /* 156 */
         text        : "fuen",
         bopomofo    : L"",
         sheng       : "f",
@@ -1376,7 +1412,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_F_H | PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 153 */
+    {  /* 157 */
         text        : "fui",
         bopomofo    : L"ㄈㄨㄟ",
         sheng       : "f",
@@ -1385,7 +1421,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 154 */
+    {  /* 158 */
         text        : "fun",
         bopomofo    : L"ㄈㄨㄣ",
         sheng       : "f",
@@ -1394,7 +1430,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 155 */
+    {  /* 159 */
         text        : "fuo",
         bopomofo    : L"ㄈㄨㄛ",
         sheng       : "f",
@@ -1403,7 +1439,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_F_H
     },
-    {  /* 156 */
+    {  /* 160 */
         text        : "g",
         bopomofo    : L"ㄍ",
         sheng       : "g",
@@ -1412,7 +1448,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 157 */
+    {  /* 161 */
         text        : "ga",
         bopomofo    : L"ㄍㄚ",
         sheng       : "g",
@@ -1421,7 +1457,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 158 */
+    {  /* 162 */
         text        : "gagn",
         bopomofo    : L"",
         sheng       : "g",
@@ -1430,7 +1466,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 159 */
+    {  /* 163 */
         text        : "gai",
         bopomofo    : L"ㄍㄞ",
         sheng       : "g",
@@ -1439,7 +1475,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 160 */
+    {  /* 164 */
         text        : "gamg",
         bopomofo    : L"",
         sheng       : "g",
@@ -1448,7 +1484,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 161 */
+    {  /* 165 */
         text        : "gan",
         bopomofo    : L"ㄍㄢ",
         sheng       : "g",
@@ -1457,7 +1493,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 162 */
+    {  /* 166 */
         text        : "gang",
         bopomofo    : L"ㄍㄤ",
         sheng       : "g",
@@ -1466,7 +1502,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 163 */
+    {  /* 167 */
         text        : "gao",
         bopomofo    : L"ㄍㄠ",
         sheng       : "g",
@@ -1475,7 +1511,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 164 */
+    {  /* 168 */
         text        : "ge",
         bopomofo    : L"ㄍㄜ",
         sheng       : "g",
@@ -1484,7 +1520,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 165 */
+    {  /* 169 */
         text        : "gegn",
         bopomofo    : L"",
         sheng       : "g",
@@ -1493,7 +1529,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 166 */
+    {  /* 170 */
         text        : "gei",
         bopomofo    : L"ㄍㄟ",
         sheng       : "g",
@@ -1502,7 +1538,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 167 */
+    {  /* 171 */
         text        : "gemg",
         bopomofo    : L"",
         sheng       : "g",
@@ -1511,7 +1547,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 168 */
+    {  /* 172 */
         text        : "gen",
         bopomofo    : L"ㄍㄣ",
         sheng       : "g",
@@ -1520,7 +1556,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 169 */
+    {  /* 173 */
         text        : "geng",
         bopomofo    : L"ㄍㄥ",
         sheng       : "g",
@@ -1529,7 +1565,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 170 */
+    {  /* 174 */
         text        : "gogn",
         bopomofo    : L"",
         sheng       : "g",
@@ -1538,7 +1574,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 171 */
+    {  /* 175 */
         text        : "gomg",
         bopomofo    : L"",
         sheng       : "g",
@@ -1547,7 +1583,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 172 */
+    {  /* 176 */
+        text        : "gon",
+        bopomofo    : L"",
+        sheng       : "g",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_G, PINYIN_ID_ONG }, { PINYIN_ID_K, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 177 */
         text        : "gong",
         bopomofo    : L"ㄍㄨㄥ",
         sheng       : "g",
@@ -1556,7 +1601,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 173 */
+    {  /* 178 */
         text        : "gou",
         bopomofo    : L"ㄍㄡ",
         sheng       : "g",
@@ -1565,7 +1610,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 174 */
+    {  /* 179 */
         text        : "gu",
         bopomofo    : L"ㄍㄨ",
         sheng       : "g",
@@ -1574,7 +1619,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 175 */
+    {  /* 180 */
         text        : "gua",
         bopomofo    : L"ㄍㄨㄚ",
         sheng       : "g",
@@ -1583,7 +1628,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 176 */
+    {  /* 181 */
         text        : "guagn",
         bopomofo    : L"",
         sheng       : "g",
@@ -1592,7 +1637,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 177 */
+    {  /* 182 */
         text        : "guai",
         bopomofo    : L"ㄍㄨㄞ",
         sheng       : "g",
@@ -1601,7 +1646,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 178 */
+    {  /* 183 */
         text        : "guamg",
         bopomofo    : L"",
         sheng       : "g",
@@ -1610,7 +1655,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 179 */
+    {  /* 184 */
         text        : "guan",
         bopomofo    : L"ㄍㄨㄢ",
         sheng       : "g",
@@ -1619,7 +1664,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 180 */
+    {  /* 185 */
         text        : "guang",
         bopomofo    : L"ㄍㄨㄤ",
         sheng       : "g",
@@ -1628,7 +1673,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 181 */
+    {  /* 186 */
         text        : "guei",
         bopomofo    : L"",
         sheng       : "g",
@@ -1637,7 +1682,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 182 */
+    {  /* 187 */
         text        : "guen",
         bopomofo    : L"",
         sheng       : "g",
@@ -1646,7 +1691,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 183 */
+    {  /* 188 */
         text        : "gui",
         bopomofo    : L"ㄍㄨㄟ",
         sheng       : "g",
@@ -1655,7 +1700,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 184 */
+    {  /* 189 */
         text        : "gun",
         bopomofo    : L"ㄍㄨㄣ",
         sheng       : "g",
@@ -1664,7 +1709,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 185 */
+    {  /* 190 */
         text        : "guo",
         bopomofo    : L"ㄍㄨㄛ",
         sheng       : "g",
@@ -1673,7 +1718,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 186 */
+    {  /* 191 */
         text        : "h",
         bopomofo    : L"ㄏ",
         sheng       : "h",
@@ -1682,7 +1727,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 187 */
+    {  /* 192 */
         text        : "ha",
         bopomofo    : L"ㄏㄚ",
         sheng       : "h",
@@ -1691,7 +1736,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 188 */
+    {  /* 193 */
         text        : "hagn",
         bopomofo    : L"",
         sheng       : "h",
@@ -1700,7 +1745,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 189 */
+    {  /* 194 */
         text        : "hai",
         bopomofo    : L"ㄏㄞ",
         sheng       : "h",
@@ -1709,7 +1754,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 190 */
+    {  /* 195 */
         text        : "hamg",
         bopomofo    : L"",
         sheng       : "h",
@@ -1718,7 +1763,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 191 */
+    {  /* 196 */
         text        : "han",
         bopomofo    : L"ㄏㄢ",
         sheng       : "h",
@@ -1727,7 +1772,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 192 */
+    {  /* 197 */
         text        : "hang",
         bopomofo    : L"ㄏㄤ",
         sheng       : "h",
@@ -1736,7 +1781,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 193 */
+    {  /* 198 */
         text        : "hao",
         bopomofo    : L"ㄏㄠ",
         sheng       : "h",
@@ -1745,7 +1790,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 194 */
+    {  /* 199 */
         text        : "he",
         bopomofo    : L"ㄏㄜ",
         sheng       : "h",
@@ -1754,7 +1799,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 195 */
+    {  /* 200 */
         text        : "hegn",
         bopomofo    : L"",
         sheng       : "h",
@@ -1763,7 +1808,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 196 */
+    {  /* 201 */
         text        : "hei",
         bopomofo    : L"ㄏㄟ",
         sheng       : "h",
@@ -1772,7 +1817,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 197 */
+    {  /* 202 */
         text        : "hemg",
         bopomofo    : L"",
         sheng       : "h",
@@ -1781,7 +1826,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 198 */
+    {  /* 203 */
         text        : "hen",
         bopomofo    : L"ㄏㄣ",
         sheng       : "h",
@@ -1790,7 +1835,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 199 */
+    {  /* 204 */
         text        : "heng",
         bopomofo    : L"ㄏㄥ",
         sheng       : "h",
@@ -1799,7 +1844,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 200 */
+    {  /* 205 */
         text        : "ho",
         bopomofo    : L"ㄏㄛ",
         sheng       : "h",
@@ -1808,7 +1853,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_FUZZY_H_F
     },
-    {  /* 201 */
+    {  /* 206 */
         text        : "hogn",
         bopomofo    : L"",
         sheng       : "h",
@@ -1817,7 +1862,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 202 */
+    {  /* 207 */
         text        : "homg",
         bopomofo    : L"",
         sheng       : "h",
@@ -1826,7 +1871,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 203 */
+    {  /* 208 */
+        text        : "hon",
+        bopomofo    : L"",
+        sheng       : "h",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_H, PINYIN_ID_ONG }, { PINYIN_ID_F, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 209 */
         text        : "hong",
         bopomofo    : L"ㄏㄨㄥ",
         sheng       : "h",
@@ -1835,7 +1889,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 204 */
+    {  /* 210 */
         text        : "hou",
         bopomofo    : L"ㄏㄡ",
         sheng       : "h",
@@ -1844,7 +1898,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 205 */
+    {  /* 211 */
         text        : "hu",
         bopomofo    : L"ㄏㄨ",
         sheng       : "h",
@@ -1853,7 +1907,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 206 */
+    {  /* 212 */
         text        : "hua",
         bopomofo    : L"ㄏㄨㄚ",
         sheng       : "h",
@@ -1862,7 +1916,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 207 */
+    {  /* 213 */
         text        : "huagn",
         bopomofo    : L"",
         sheng       : "h",
@@ -1871,7 +1925,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 208 */
+    {  /* 214 */
         text        : "huai",
         bopomofo    : L"ㄏㄨㄞ",
         sheng       : "h",
@@ -1880,7 +1934,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 209 */
+    {  /* 215 */
         text        : "huamg",
         bopomofo    : L"",
         sheng       : "h",
@@ -1889,7 +1943,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 210 */
+    {  /* 216 */
         text        : "huan",
         bopomofo    : L"ㄏㄨㄢ",
         sheng       : "h",
@@ -1898,7 +1952,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 211 */
+    {  /* 217 */
         text        : "huang",
         bopomofo    : L"ㄏㄨㄤ",
         sheng       : "h",
@@ -1907,7 +1961,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 212 */
+    {  /* 218 */
         text        : "huei",
         bopomofo    : L"",
         sheng       : "h",
@@ -1916,7 +1970,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 213 */
+    {  /* 219 */
         text        : "huen",
         bopomofo    : L"",
         sheng       : "h",
@@ -1925,7 +1979,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 214 */
+    {  /* 220 */
         text        : "hui",
         bopomofo    : L"ㄏㄨㄟ",
         sheng       : "h",
@@ -1934,7 +1988,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 215 */
+    {  /* 221 */
         text        : "hun",
         bopomofo    : L"ㄏㄨㄣ",
         sheng       : "h",
@@ -1943,7 +1997,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 216 */
+    {  /* 222 */
         text        : "huo",
         bopomofo    : L"ㄏㄨㄛ",
         sheng       : "h",
@@ -1952,7 +2006,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 217 */
+    {  /* 223 */
         text        : "j",
         bopomofo    : L"ㄐ",
         sheng       : "j",
@@ -1961,7 +2015,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 218 */
+    {  /* 224 */
         text        : "ji",
         bopomofo    : L"ㄐㄧ",
         sheng       : "j",
@@ -1970,7 +2024,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 219 */
+    {  /* 225 */
         text        : "jia",
         bopomofo    : L"ㄐㄧㄚ",
         sheng       : "j",
@@ -1979,7 +2033,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 220 */
+    {  /* 226 */
         text        : "jiagn",
         bopomofo    : L"",
         sheng       : "j",
@@ -1988,7 +2042,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 221 */
+    {  /* 227 */
         text        : "jiamg",
         bopomofo    : L"",
         sheng       : "j",
@@ -1997,7 +2051,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 222 */
+    {  /* 228 */
         text        : "jian",
         bopomofo    : L"ㄐㄧㄢ",
         sheng       : "j",
@@ -2006,7 +2060,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 223 */
+    {  /* 229 */
         text        : "jiang",
         bopomofo    : L"ㄐㄧㄤ",
         sheng       : "j",
@@ -2015,7 +2069,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 224 */
+    {  /* 230 */
         text        : "jiao",
         bopomofo    : L"ㄐㄧㄠ",
         sheng       : "j",
@@ -2024,7 +2078,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 225 */
+    {  /* 231 */
         text        : "jie",
         bopomofo    : L"ㄐㄧㄝ",
         sheng       : "j",
@@ -2033,7 +2087,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 226 */
+    {  /* 232 */
         text        : "jign",
         bopomofo    : L"",
         sheng       : "j",
@@ -2042,7 +2096,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 227 */
+    {  /* 233 */
         text        : "jimg",
         bopomofo    : L"",
         sheng       : "j",
@@ -2051,7 +2105,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 228 */
+    {  /* 234 */
         text        : "jin",
         bopomofo    : L"ㄐㄧㄣ",
         sheng       : "j",
@@ -2060,7 +2114,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 229 */
+    {  /* 235 */
         text        : "jing",
         bopomofo    : L"ㄐㄧㄥ",
         sheng       : "j",
@@ -2069,7 +2123,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 230 */
+    {  /* 236 */
         text        : "jiogn",
         bopomofo    : L"",
         sheng       : "j",
@@ -2078,7 +2132,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 231 */
+    {  /* 237 */
         text        : "jiomg",
         bopomofo    : L"",
         sheng       : "j",
@@ -2087,7 +2141,16 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 232 */
+    {  /* 238 */
+        text        : "jion",
+        bopomofo    : L"",
+        sheng       : "j",
+        yun         : "iong",
+        pinyin_id   : {{ PINYIN_ID_J, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 4,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 239 */
         text        : "jiong",
         bopomofo    : L"ㄐㄩㄥ",
         sheng       : "j",
@@ -2096,7 +2159,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 233 */
+    {  /* 240 */
         text        : "jiou",
         bopomofo    : L"",
         sheng       : "j",
@@ -2105,7 +2168,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_IOU_TO_IU
     },
-    {  /* 234 */
+    {  /* 241 */
         text        : "jiu",
         bopomofo    : L"ㄐㄧㄡ",
         sheng       : "j",
@@ -2114,7 +2177,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 235 */
+    {  /* 242 */
         text        : "ju",
         bopomofo    : L"ㄐㄩ",
         sheng       : "j",
@@ -2123,7 +2186,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 236 */
+    {  /* 243 */
         text        : "juan",
         bopomofo    : L"ㄐㄩㄢ",
         sheng       : "j",
@@ -2132,7 +2195,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 237 */
+    {  /* 244 */
         text        : "juang",
         bopomofo    : L"ㄐㄩㄤ",
         sheng       : "j",
@@ -2141,7 +2204,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 238 */
+    {  /* 245 */
         text        : "jue",
         bopomofo    : L"ㄐㄩㄝ",
         sheng       : "j",
@@ -2150,7 +2213,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 239 */
+    {  /* 246 */
         text        : "juen",
         bopomofo    : L"",
         sheng       : "j",
@@ -2159,7 +2222,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 240 */
+    {  /* 247 */
         text        : "jun",
         bopomofo    : L"ㄐㄩㄣ",
         sheng       : "j",
@@ -2168,7 +2231,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 241 */
+    {  /* 248 */
         text        : "jv",
         bopomofo    : L"",
         sheng       : "j",
@@ -2177,7 +2240,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 242 */
+    {  /* 249 */
         text        : "jvan",
         bopomofo    : L"",
         sheng       : "j",
@@ -2186,7 +2249,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 243 */
+    {  /* 250 */
         text        : "jvang",
         bopomofo    : L"",
         sheng       : "j",
@@ -2195,7 +2258,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U
     },
-    {  /* 244 */
+    {  /* 251 */
         text        : "jve",
         bopomofo    : L"",
         sheng       : "j",
@@ -2204,7 +2267,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 245 */
+    {  /* 252 */
         text        : "jven",
         bopomofo    : L"",
         sheng       : "j",
@@ -2213,7 +2276,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U
     },
-    {  /* 246 */
+    {  /* 253 */
         text        : "jvn",
         bopomofo    : L"",
         sheng       : "j",
@@ -2222,7 +2285,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 247 */
+    {  /* 254 */
         text        : "k",
         bopomofo    : L"ㄎ",
         sheng       : "k",
@@ -2231,7 +2294,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 248 */
+    {  /* 255 */
         text        : "ka",
         bopomofo    : L"ㄎㄚ",
         sheng       : "k",
@@ -2240,7 +2303,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 249 */
+    {  /* 256 */
         text        : "kagn",
         bopomofo    : L"",
         sheng       : "k",
@@ -2249,7 +2312,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 250 */
+    {  /* 257 */
         text        : "kai",
         bopomofo    : L"ㄎㄞ",
         sheng       : "k",
@@ -2258,7 +2321,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 251 */
+    {  /* 258 */
         text        : "kamg",
         bopomofo    : L"",
         sheng       : "k",
@@ -2267,7 +2330,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 252 */
+    {  /* 259 */
         text        : "kan",
         bopomofo    : L"ㄎㄢ",
         sheng       : "k",
@@ -2276,7 +2339,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 253 */
+    {  /* 260 */
         text        : "kang",
         bopomofo    : L"ㄎㄤ",
         sheng       : "k",
@@ -2285,7 +2348,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 254 */
+    {  /* 261 */
         text        : "kao",
         bopomofo    : L"ㄎㄠ",
         sheng       : "k",
@@ -2294,7 +2357,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 255 */
+    {  /* 262 */
         text        : "ke",
         bopomofo    : L"ㄎㄜ",
         sheng       : "k",
@@ -2303,7 +2366,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 256 */
+    {  /* 263 */
         text        : "kegn",
         bopomofo    : L"",
         sheng       : "k",
@@ -2312,7 +2375,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 257 */
+    {  /* 264 */
         text        : "kei",
         bopomofo    : L"ㄎㄟ",
         sheng       : "k",
@@ -2321,7 +2384,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_K_G
     },
-    {  /* 258 */
+    {  /* 265 */
         text        : "kemg",
         bopomofo    : L"",
         sheng       : "k",
@@ -2330,7 +2393,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 259 */
+    {  /* 266 */
         text        : "ken",
         bopomofo    : L"ㄎㄣ",
         sheng       : "k",
@@ -2339,7 +2402,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 260 */
+    {  /* 267 */
         text        : "keng",
         bopomofo    : L"ㄎㄥ",
         sheng       : "k",
@@ -2348,7 +2411,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 261 */
+    {  /* 268 */
         text        : "kogn",
         bopomofo    : L"",
         sheng       : "k",
@@ -2357,7 +2420,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 262 */
+    {  /* 269 */
         text        : "komg",
         bopomofo    : L"",
         sheng       : "k",
@@ -2366,7 +2429,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 263 */
+    {  /* 270 */
+        text        : "kon",
+        bopomofo    : L"",
+        sheng       : "k",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_K, PINYIN_ID_ONG }, { PINYIN_ID_G, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 271 */
         text        : "kong",
         bopomofo    : L"ㄎㄨㄥ",
         sheng       : "k",
@@ -2375,7 +2447,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 264 */
+    {  /* 272 */
         text        : "kou",
         bopomofo    : L"ㄎㄡ",
         sheng       : "k",
@@ -2384,7 +2456,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 265 */
+    {  /* 273 */
         text        : "ku",
         bopomofo    : L"ㄎㄨ",
         sheng       : "k",
@@ -2393,7 +2465,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 266 */
+    {  /* 274 */
         text        : "kua",
         bopomofo    : L"ㄎㄨㄚ",
         sheng       : "k",
@@ -2402,7 +2474,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 267 */
+    {  /* 275 */
         text        : "kuagn",
         bopomofo    : L"",
         sheng       : "k",
@@ -2411,7 +2483,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 268 */
+    {  /* 276 */
         text        : "kuai",
         bopomofo    : L"ㄎㄨㄞ",
         sheng       : "k",
@@ -2420,7 +2492,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 269 */
+    {  /* 277 */
         text        : "kuamg",
         bopomofo    : L"",
         sheng       : "k",
@@ -2429,7 +2501,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 270 */
+    {  /* 278 */
         text        : "kuan",
         bopomofo    : L"ㄎㄨㄢ",
         sheng       : "k",
@@ -2438,7 +2510,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 271 */
+    {  /* 279 */
         text        : "kuang",
         bopomofo    : L"ㄎㄨㄤ",
         sheng       : "k",
@@ -2447,7 +2519,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 272 */
+    {  /* 280 */
         text        : "kuei",
         bopomofo    : L"",
         sheng       : "k",
@@ -2456,7 +2528,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 273 */
+    {  /* 281 */
         text        : "kuen",
         bopomofo    : L"",
         sheng       : "k",
@@ -2465,7 +2537,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 274 */
+    {  /* 282 */
         text        : "kui",
         bopomofo    : L"ㄎㄨㄟ",
         sheng       : "k",
@@ -2474,7 +2546,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 275 */
+    {  /* 283 */
         text        : "kun",
         bopomofo    : L"ㄎㄨㄣ",
         sheng       : "k",
@@ -2483,7 +2555,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 276 */
+    {  /* 284 */
         text        : "kuo",
         bopomofo    : L"ㄎㄨㄛ",
         sheng       : "k",
@@ -2492,7 +2564,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 277 */
+    {  /* 285 */
         text        : "l",
         bopomofo    : L"ㄌ",
         sheng       : "l",
@@ -2501,7 +2573,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 278 */
+    {  /* 286 */
         text        : "la",
         bopomofo    : L"ㄌㄚ",
         sheng       : "l",
@@ -2510,7 +2582,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 279 */
+    {  /* 287 */
         text        : "lagn",
         bopomofo    : L"",
         sheng       : "l",
@@ -2519,7 +2591,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 280 */
+    {  /* 288 */
         text        : "lai",
         bopomofo    : L"ㄌㄞ",
         sheng       : "l",
@@ -2528,7 +2600,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 281 */
+    {  /* 289 */
         text        : "lamg",
         bopomofo    : L"",
         sheng       : "l",
@@ -2537,7 +2609,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 282 */
+    {  /* 290 */
         text        : "lan",
         bopomofo    : L"ㄌㄢ",
         sheng       : "l",
@@ -2546,7 +2618,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 283 */
+    {  /* 291 */
         text        : "lang",
         bopomofo    : L"ㄌㄤ",
         sheng       : "l",
@@ -2555,7 +2627,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 284 */
+    {  /* 292 */
         text        : "lao",
         bopomofo    : L"ㄌㄠ",
         sheng       : "l",
@@ -2564,7 +2636,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 285 */
+    {  /* 293 */
         text        : "le",
         bopomofo    : L"ㄌㄜ",
         sheng       : "l",
@@ -2573,7 +2645,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 286 */
+    {  /* 294 */
         text        : "legn",
         bopomofo    : L"",
         sheng       : "l",
@@ -2582,7 +2654,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 287 */
+    {  /* 295 */
         text        : "lei",
         bopomofo    : L"ㄌㄟ",
         sheng       : "l",
@@ -2591,7 +2663,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 288 */
+    {  /* 296 */
         text        : "lemg",
         bopomofo    : L"",
         sheng       : "l",
@@ -2600,7 +2672,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 289 */
+    {  /* 297 */
         text        : "len",
         bopomofo    : L"ㄌㄣ",
         sheng       : "l",
@@ -2609,7 +2681,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_L_N | PINYIN_FUZZY_L_R | PINYIN_FUZZY_EN_ENG
     },
-    {  /* 290 */
+    {  /* 298 */
         text        : "leng",
         bopomofo    : L"ㄌㄥ",
         sheng       : "l",
@@ -2618,7 +2690,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 291 */
+    {  /* 299 */
         text        : "li",
         bopomofo    : L"ㄌㄧ",
         sheng       : "l",
@@ -2627,7 +2699,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 292 */
+    {  /* 300 */
         text        : "lia",
         bopomofo    : L"ㄌㄧㄚ",
         sheng       : "l",
@@ -2636,7 +2708,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 293 */
+    {  /* 301 */
         text        : "liagn",
         bopomofo    : L"",
         sheng       : "l",
@@ -2645,7 +2717,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 294 */
+    {  /* 302 */
         text        : "liamg",
         bopomofo    : L"",
         sheng       : "l",
@@ -2654,7 +2726,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 295 */
+    {  /* 303 */
         text        : "lian",
         bopomofo    : L"ㄌㄧㄢ",
         sheng       : "l",
@@ -2663,7 +2735,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 296 */
+    {  /* 304 */
         text        : "liang",
         bopomofo    : L"ㄌㄧㄤ",
         sheng       : "l",
@@ -2672,7 +2744,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 297 */
+    {  /* 305 */
         text        : "liao",
         bopomofo    : L"ㄌㄧㄠ",
         sheng       : "l",
@@ -2681,7 +2753,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 298 */
+    {  /* 306 */
         text        : "lie",
         bopomofo    : L"ㄌㄧㄝ",
         sheng       : "l",
@@ -2690,7 +2762,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 299 */
+    {  /* 307 */
         text        : "lign",
         bopomofo    : L"",
         sheng       : "l",
@@ -2699,7 +2771,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 300 */
+    {  /* 308 */
         text        : "limg",
         bopomofo    : L"",
         sheng       : "l",
@@ -2708,7 +2780,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 301 */
+    {  /* 309 */
         text        : "lin",
         bopomofo    : L"ㄌㄧㄣ",
         sheng       : "l",
@@ -2717,7 +2789,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 302 */
+    {  /* 310 */
         text        : "ling",
         bopomofo    : L"ㄌㄧㄥ",
         sheng       : "l",
@@ -2726,7 +2798,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 303 */
+    {  /* 311 */
         text        : "liou",
         bopomofo    : L"",
         sheng       : "l",
@@ -2735,7 +2807,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_IOU_TO_IU
     },
-    {  /* 304 */
+    {  /* 312 */
         text        : "liu",
         bopomofo    : L"ㄌㄧㄡ",
         sheng       : "l",
@@ -2744,7 +2816,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 305 */
+    {  /* 313 */
         text        : "lo",
         bopomofo    : L"ㄌㄛ",
         sheng       : "l",
@@ -2753,7 +2825,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 306 */
+    {  /* 314 */
         text        : "logn",
         bopomofo    : L"",
         sheng       : "l",
@@ -2762,7 +2834,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 307 */
+    {  /* 315 */
         text        : "lomg",
         bopomofo    : L"",
         sheng       : "l",
@@ -2771,7 +2843,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 308 */
+    {  /* 316 */
+        text        : "lon",
+        bopomofo    : L"",
+        sheng       : "l",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_L, PINYIN_ID_ONG }, { PINYIN_ID_N, PINYIN_ID_ZERO }, { PINYIN_ID_R, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 317 */
         text        : "long",
         bopomofo    : L"ㄌㄨㄥ",
         sheng       : "l",
@@ -2780,7 +2861,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 309 */
+    {  /* 318 */
         text        : "lou",
         bopomofo    : L"ㄌㄡ",
         sheng       : "l",
@@ -2789,7 +2870,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 310 */
+    {  /* 319 */
         text        : "lu",
         bopomofo    : L"ㄌㄨ",
         sheng       : "l",
@@ -2798,7 +2879,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 311 */
+    {  /* 320 */
         text        : "luan",
         bopomofo    : L"ㄌㄨㄢ",
         sheng       : "l",
@@ -2807,7 +2888,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 312 */
+    {  /* 321 */
         text        : "luang",
         bopomofo    : L"ㄌㄨㄤ",
         sheng       : "l",
@@ -2816,7 +2897,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 313 */
+    {  /* 322 */
         text        : "lue",
         bopomofo    : L"",
         sheng       : "l",
@@ -2825,7 +2906,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_UE_TO_VE
     },
-    {  /* 314 */
+    {  /* 323 */
         text        : "luei",
         bopomofo    : L"",
         sheng       : "l",
@@ -2834,7 +2915,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_L_R | PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 315 */
+    {  /* 324 */
         text        : "luen",
         bopomofo    : L"",
         sheng       : "l",
@@ -2843,7 +2924,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 316 */
+    {  /* 325 */
         text        : "lui",
         bopomofo    : L"ㄌㄨㄟ",
         sheng       : "l",
@@ -2852,7 +2933,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_L_R
     },
-    {  /* 317 */
+    {  /* 326 */
         text        : "lun",
         bopomofo    : L"ㄌㄨㄣ",
         sheng       : "l",
@@ -2861,7 +2942,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 318 */
+    {  /* 327 */
         text        : "luo",
         bopomofo    : L"ㄌㄨㄛ",
         sheng       : "l",
@@ -2870,7 +2951,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 319 */
+    {  /* 328 */
         text        : "lv",
         bopomofo    : L"ㄌㄩ",
         sheng       : "l",
@@ -2879,7 +2960,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 320 */
+    {  /* 329 */
         text        : "lve",
         bopomofo    : L"ㄌㄩㄝ",
         sheng       : "l",
@@ -2888,7 +2969,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 321 */
+    {  /* 330 */
         text        : "m",
         bopomofo    : L"ㄇ",
         sheng       : "m",
@@ -2897,7 +2978,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 322 */
+    {  /* 331 */
         text        : "ma",
         bopomofo    : L"ㄇㄚ",
         sheng       : "m",
@@ -2906,7 +2987,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 323 */
+    {  /* 332 */
         text        : "magn",
         bopomofo    : L"",
         sheng       : "m",
@@ -2915,7 +2996,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 324 */
+    {  /* 333 */
         text        : "mai",
         bopomofo    : L"ㄇㄞ",
         sheng       : "m",
@@ -2924,7 +3005,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 325 */
+    {  /* 334 */
         text        : "mamg",
         bopomofo    : L"",
         sheng       : "m",
@@ -2933,7 +3014,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 326 */
+    {  /* 335 */
         text        : "man",
         bopomofo    : L"ㄇㄢ",
         sheng       : "m",
@@ -2942,7 +3023,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 327 */
+    {  /* 336 */
         text        : "mang",
         bopomofo    : L"ㄇㄤ",
         sheng       : "m",
@@ -2951,7 +3032,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 328 */
+    {  /* 337 */
         text        : "mao",
         bopomofo    : L"ㄇㄠ",
         sheng       : "m",
@@ -2960,7 +3041,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 329 */
+    {  /* 338 */
         text        : "me",
         bopomofo    : L"ㄇㄜ",
         sheng       : "m",
@@ -2969,7 +3050,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 330 */
+    {  /* 339 */
         text        : "megn",
         bopomofo    : L"",
         sheng       : "m",
@@ -2978,7 +3059,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 331 */
+    {  /* 340 */
         text        : "mei",
         bopomofo    : L"ㄇㄟ",
         sheng       : "m",
@@ -2987,7 +3068,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 332 */
+    {  /* 341 */
         text        : "memg",
         bopomofo    : L"",
         sheng       : "m",
@@ -2996,7 +3077,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 333 */
+    {  /* 342 */
         text        : "men",
         bopomofo    : L"ㄇㄣ",
         sheng       : "m",
@@ -3005,7 +3086,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 334 */
+    {  /* 343 */
         text        : "meng",
         bopomofo    : L"ㄇㄥ",
         sheng       : "m",
@@ -3014,7 +3095,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 335 */
+    {  /* 344 */
         text        : "mi",
         bopomofo    : L"ㄇㄧ",
         sheng       : "m",
@@ -3023,7 +3104,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 336 */
+    {  /* 345 */
         text        : "mian",
         bopomofo    : L"ㄇㄧㄢ",
         sheng       : "m",
@@ -3032,7 +3113,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 337 */
+    {  /* 346 */
         text        : "miang",
         bopomofo    : L"ㄇㄧㄤ",
         sheng       : "m",
@@ -3041,7 +3122,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_IANG_IAN
     },
-    {  /* 338 */
+    {  /* 347 */
         text        : "miao",
         bopomofo    : L"ㄇㄧㄠ",
         sheng       : "m",
@@ -3050,7 +3131,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 339 */
+    {  /* 348 */
         text        : "mie",
         bopomofo    : L"ㄇㄧㄝ",
         sheng       : "m",
@@ -3059,7 +3140,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 340 */
+    {  /* 349 */
         text        : "mign",
         bopomofo    : L"",
         sheng       : "m",
@@ -3068,7 +3149,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 341 */
+    {  /* 350 */
         text        : "mimg",
         bopomofo    : L"",
         sheng       : "m",
@@ -3077,7 +3158,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 342 */
+    {  /* 351 */
         text        : "min",
         bopomofo    : L"ㄇㄧㄣ",
         sheng       : "m",
@@ -3086,7 +3167,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 343 */
+    {  /* 352 */
         text        : "ming",
         bopomofo    : L"ㄇㄧㄥ",
         sheng       : "m",
@@ -3095,7 +3176,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 344 */
+    {  /* 353 */
         text        : "miou",
         bopomofo    : L"",
         sheng       : "m",
@@ -3104,7 +3185,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_IOU_TO_IU
     },
-    {  /* 345 */
+    {  /* 354 */
         text        : "miu",
         bopomofo    : L"ㄇㄧㄡ",
         sheng       : "m",
@@ -3113,7 +3194,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 346 */
+    {  /* 355 */
         text        : "mo",
         bopomofo    : L"ㄇㄛ",
         sheng       : "m",
@@ -3122,7 +3203,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 347 */
+    {  /* 356 */
         text        : "mou",
         bopomofo    : L"ㄇㄡ",
         sheng       : "m",
@@ -3131,7 +3212,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 348 */
+    {  /* 357 */
         text        : "mu",
         bopomofo    : L"ㄇㄨ",
         sheng       : "m",
@@ -3140,7 +3221,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 349 */
+    {  /* 358 */
         text        : "n",
         bopomofo    : L"ㄋ",
         sheng       : "n",
@@ -3149,7 +3230,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 350 */
+    {  /* 359 */
         text        : "na",
         bopomofo    : L"ㄋㄚ",
         sheng       : "n",
@@ -3158,7 +3239,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 351 */
+    {  /* 360 */
         text        : "nagn",
         bopomofo    : L"",
         sheng       : "n",
@@ -3167,7 +3248,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 352 */
+    {  /* 361 */
         text        : "nai",
         bopomofo    : L"ㄋㄞ",
         sheng       : "n",
@@ -3176,7 +3257,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 353 */
+    {  /* 362 */
         text        : "namg",
         bopomofo    : L"",
         sheng       : "n",
@@ -3185,7 +3266,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 354 */
+    {  /* 363 */
         text        : "nan",
         bopomofo    : L"ㄋㄢ",
         sheng       : "n",
@@ -3194,7 +3275,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 355 */
+    {  /* 364 */
         text        : "nang",
         bopomofo    : L"ㄋㄤ",
         sheng       : "n",
@@ -3203,7 +3284,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 356 */
+    {  /* 365 */
         text        : "nao",
         bopomofo    : L"ㄋㄠ",
         sheng       : "n",
@@ -3212,7 +3293,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 357 */
+    {  /* 366 */
         text        : "ne",
         bopomofo    : L"ㄋㄜ",
         sheng       : "n",
@@ -3221,7 +3302,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 358 */
+    {  /* 367 */
         text        : "negn",
         bopomofo    : L"",
         sheng       : "n",
@@ -3230,7 +3311,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 359 */
+    {  /* 368 */
         text        : "nei",
         bopomofo    : L"ㄋㄟ",
         sheng       : "n",
@@ -3239,7 +3320,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 360 */
+    {  /* 369 */
         text        : "nemg",
         bopomofo    : L"",
         sheng       : "n",
@@ -3248,7 +3329,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 361 */
+    {  /* 370 */
         text        : "nen",
         bopomofo    : L"ㄋㄣ",
         sheng       : "n",
@@ -3257,7 +3338,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 362 */
+    {  /* 371 */
         text        : "neng",
         bopomofo    : L"ㄋㄥ",
         sheng       : "n",
@@ -3266,7 +3347,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 363 */
+    {  /* 372 */
         text        : "ni",
         bopomofo    : L"ㄋㄧ",
         sheng       : "n",
@@ -3275,7 +3356,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 364 */
+    {  /* 373 */
         text        : "nia",
         bopomofo    : L"ㄋㄧㄚ",
         sheng       : "n",
@@ -3284,7 +3365,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_N_L
     },
-    {  /* 365 */
+    {  /* 374 */
         text        : "niagn",
         bopomofo    : L"",
         sheng       : "n",
@@ -3293,7 +3374,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 366 */
+    {  /* 375 */
         text        : "niamg",
         bopomofo    : L"",
         sheng       : "n",
@@ -3302,7 +3383,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 367 */
+    {  /* 376 */
         text        : "nian",
         bopomofo    : L"ㄋㄧㄢ",
         sheng       : "n",
@@ -3311,7 +3392,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 368 */
+    {  /* 377 */
         text        : "niang",
         bopomofo    : L"ㄋㄧㄤ",
         sheng       : "n",
@@ -3320,7 +3401,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 369 */
+    {  /* 378 */
         text        : "niao",
         bopomofo    : L"ㄋㄧㄠ",
         sheng       : "n",
@@ -3329,7 +3410,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 370 */
+    {  /* 379 */
         text        : "nie",
         bopomofo    : L"ㄋㄧㄝ",
         sheng       : "n",
@@ -3338,7 +3419,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 371 */
+    {  /* 380 */
         text        : "nign",
         bopomofo    : L"",
         sheng       : "n",
@@ -3347,7 +3428,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 372 */
+    {  /* 381 */
         text        : "nimg",
         bopomofo    : L"",
         sheng       : "n",
@@ -3356,7 +3437,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 373 */
+    {  /* 382 */
         text        : "nin",
         bopomofo    : L"ㄋㄧㄣ",
         sheng       : "n",
@@ -3365,7 +3446,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 374 */
+    {  /* 383 */
         text        : "ning",
         bopomofo    : L"ㄋㄧㄥ",
         sheng       : "n",
@@ -3374,7 +3455,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 375 */
+    {  /* 384 */
         text        : "niou",
         bopomofo    : L"",
         sheng       : "n",
@@ -3383,7 +3464,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_IOU_TO_IU
     },
-    {  /* 376 */
+    {  /* 385 */
         text        : "niu",
         bopomofo    : L"ㄋㄧㄡ",
         sheng       : "n",
@@ -3392,7 +3473,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 377 */
+    {  /* 386 */
         text        : "no",
         bopomofo    : L"ㄋㄛ",
         sheng       : "n",
@@ -3401,7 +3482,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_FUZZY_N_L
     },
-    {  /* 378 */
+    {  /* 387 */
         text        : "nogn",
         bopomofo    : L"",
         sheng       : "n",
@@ -3410,7 +3491,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 379 */
+    {  /* 388 */
         text        : "nomg",
         bopomofo    : L"",
         sheng       : "n",
@@ -3419,7 +3500,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 380 */
+    {  /* 389 */
+        text        : "non",
+        bopomofo    : L"",
+        sheng       : "n",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_N, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 390 */
         text        : "nong",
         bopomofo    : L"ㄋㄨㄥ",
         sheng       : "n",
@@ -3428,7 +3518,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 381 */
+    {  /* 391 */
         text        : "nou",
         bopomofo    : L"ㄋㄡ",
         sheng       : "n",
@@ -3437,7 +3527,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 382 */
+    {  /* 392 */
         text        : "nu",
         bopomofo    : L"ㄋㄨ",
         sheng       : "n",
@@ -3446,7 +3536,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 383 */
+    {  /* 393 */
         text        : "nuan",
         bopomofo    : L"ㄋㄨㄢ",
         sheng       : "n",
@@ -3455,7 +3545,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 384 */
+    {  /* 394 */
         text        : "nuang",
         bopomofo    : L"ㄋㄨㄤ",
         sheng       : "n",
@@ -3464,7 +3554,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 385 */
+    {  /* 395 */
         text        : "nue",
         bopomofo    : L"",
         sheng       : "n",
@@ -3473,7 +3563,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_UE_TO_VE
     },
-    {  /* 386 */
+    {  /* 396 */
         text        : "nuen",
         bopomofo    : L"",
         sheng       : "n",
@@ -3482,7 +3572,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_N_L | PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 387 */
+    {  /* 397 */
         text        : "nun",
         bopomofo    : L"ㄋㄨㄣ",
         sheng       : "n",
@@ -3491,7 +3581,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_N_L
     },
-    {  /* 388 */
+    {  /* 398 */
         text        : "nuo",
         bopomofo    : L"ㄋㄨㄛ",
         sheng       : "n",
@@ -3500,7 +3590,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 389 */
+    {  /* 399 */
         text        : "nv",
         bopomofo    : L"ㄋㄩ",
         sheng       : "n",
@@ -3509,7 +3599,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 390 */
+    {  /* 400 */
         text        : "nve",
         bopomofo    : L"ㄋㄩㄝ",
         sheng       : "n",
@@ -3518,7 +3608,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 391 */
+    {  /* 401 */
         text        : "o",
         bopomofo    : L"ㄛ",
         sheng       : "",
@@ -3527,7 +3617,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : 0
     },
-    {  /* 392 */
+    {  /* 402 */
         text        : "ou",
         bopomofo    : L"ㄡ",
         sheng       : "",
@@ -3536,7 +3626,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 393 */
+    {  /* 403 */
         text        : "p",
         bopomofo    : L"ㄆ",
         sheng       : "p",
@@ -3545,7 +3635,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 394 */
+    {  /* 404 */
         text        : "pa",
         bopomofo    : L"ㄆㄚ",
         sheng       : "p",
@@ -3554,7 +3644,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 395 */
+    {  /* 405 */
         text        : "pagn",
         bopomofo    : L"",
         sheng       : "p",
@@ -3563,7 +3653,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 396 */
+    {  /* 406 */
         text        : "pai",
         bopomofo    : L"ㄆㄞ",
         sheng       : "p",
@@ -3572,7 +3662,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 397 */
+    {  /* 407 */
         text        : "pamg",
         bopomofo    : L"",
         sheng       : "p",
@@ -3581,7 +3671,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 398 */
+    {  /* 408 */
         text        : "pan",
         bopomofo    : L"ㄆㄢ",
         sheng       : "p",
@@ -3590,7 +3680,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 399 */
+    {  /* 409 */
         text        : "pang",
         bopomofo    : L"ㄆㄤ",
         sheng       : "p",
@@ -3599,7 +3689,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 400 */
+    {  /* 410 */
         text        : "pao",
         bopomofo    : L"ㄆㄠ",
         sheng       : "p",
@@ -3608,7 +3698,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 401 */
+    {  /* 411 */
         text        : "pegn",
         bopomofo    : L"",
         sheng       : "p",
@@ -3617,7 +3707,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 402 */
+    {  /* 412 */
         text        : "pei",
         bopomofo    : L"ㄆㄟ",
         sheng       : "p",
@@ -3626,7 +3716,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 403 */
+    {  /* 413 */
         text        : "pemg",
         bopomofo    : L"",
         sheng       : "p",
@@ -3635,7 +3725,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 404 */
+    {  /* 414 */
         text        : "pen",
         bopomofo    : L"ㄆㄣ",
         sheng       : "p",
@@ -3644,7 +3734,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 405 */
+    {  /* 415 */
         text        : "peng",
         bopomofo    : L"ㄆㄥ",
         sheng       : "p",
@@ -3653,7 +3743,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 406 */
+    {  /* 416 */
         text        : "pi",
         bopomofo    : L"ㄆㄧ",
         sheng       : "p",
@@ -3662,7 +3752,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 407 */
+    {  /* 417 */
         text        : "pian",
         bopomofo    : L"ㄆㄧㄢ",
         sheng       : "p",
@@ -3671,7 +3761,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 408 */
+    {  /* 418 */
         text        : "piang",
         bopomofo    : L"ㄆㄧㄤ",
         sheng       : "p",
@@ -3680,7 +3770,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_IANG_IAN
     },
-    {  /* 409 */
+    {  /* 419 */
         text        : "piao",
         bopomofo    : L"ㄆㄧㄠ",
         sheng       : "p",
@@ -3689,7 +3779,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 410 */
+    {  /* 420 */
         text        : "pie",
         bopomofo    : L"ㄆㄧㄝ",
         sheng       : "p",
@@ -3698,7 +3788,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 411 */
+    {  /* 421 */
         text        : "pign",
         bopomofo    : L"",
         sheng       : "p",
@@ -3707,7 +3797,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 412 */
+    {  /* 422 */
         text        : "pimg",
         bopomofo    : L"",
         sheng       : "p",
@@ -3716,7 +3806,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 413 */
+    {  /* 423 */
         text        : "pin",
         bopomofo    : L"ㄆㄧㄣ",
         sheng       : "p",
@@ -3725,7 +3815,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 414 */
+    {  /* 424 */
         text        : "ping",
         bopomofo    : L"ㄆㄧㄥ",
         sheng       : "p",
@@ -3734,7 +3824,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 415 */
+    {  /* 425 */
         text        : "po",
         bopomofo    : L"ㄆㄛ",
         sheng       : "p",
@@ -3743,7 +3833,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 416 */
+    {  /* 426 */
         text        : "pou",
         bopomofo    : L"ㄆㄡ",
         sheng       : "p",
@@ -3752,7 +3842,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 417 */
+    {  /* 427 */
         text        : "pu",
         bopomofo    : L"ㄆㄨ",
         sheng       : "p",
@@ -3761,7 +3851,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 418 */
+    {  /* 428 */
         text        : "q",
         bopomofo    : L"ㄑ",
         sheng       : "q",
@@ -3770,7 +3860,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 419 */
+    {  /* 429 */
         text        : "qi",
         bopomofo    : L"ㄑㄧ",
         sheng       : "q",
@@ -3779,7 +3869,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 420 */
+    {  /* 430 */
         text        : "qia",
         bopomofo    : L"ㄑㄧㄚ",
         sheng       : "q",
@@ -3788,7 +3878,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 421 */
+    {  /* 431 */
         text        : "qiagn",
         bopomofo    : L"",
         sheng       : "q",
@@ -3797,7 +3887,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 422 */
+    {  /* 432 */
         text        : "qiamg",
         bopomofo    : L"",
         sheng       : "q",
@@ -3806,7 +3896,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 423 */
+    {  /* 433 */
         text        : "qian",
         bopomofo    : L"ㄑㄧㄢ",
         sheng       : "q",
@@ -3815,7 +3905,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 424 */
+    {  /* 434 */
         text        : "qiang",
         bopomofo    : L"ㄑㄧㄤ",
         sheng       : "q",
@@ -3824,7 +3914,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 425 */
+    {  /* 435 */
         text        : "qiao",
         bopomofo    : L"ㄑㄧㄠ",
         sheng       : "q",
@@ -3833,7 +3923,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 426 */
+    {  /* 436 */
         text        : "qie",
         bopomofo    : L"ㄑㄧㄝ",
         sheng       : "q",
@@ -3842,7 +3932,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 427 */
+    {  /* 437 */
         text        : "qign",
         bopomofo    : L"",
         sheng       : "q",
@@ -3851,7 +3941,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 428 */
+    {  /* 438 */
         text        : "qimg",
         bopomofo    : L"",
         sheng       : "q",
@@ -3860,7 +3950,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 429 */
+    {  /* 439 */
         text        : "qin",
         bopomofo    : L"ㄑㄧㄣ",
         sheng       : "q",
@@ -3869,7 +3959,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 430 */
+    {  /* 440 */
         text        : "qing",
         bopomofo    : L"ㄑㄧㄥ",
         sheng       : "q",
@@ -3878,7 +3968,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 431 */
+    {  /* 441 */
         text        : "qiogn",
         bopomofo    : L"",
         sheng       : "q",
@@ -3887,7 +3977,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 432 */
+    {  /* 442 */
         text        : "qiomg",
         bopomofo    : L"",
         sheng       : "q",
@@ -3896,7 +3986,16 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 433 */
+    {  /* 443 */
+        text        : "qion",
+        bopomofo    : L"",
+        sheng       : "q",
+        yun         : "iong",
+        pinyin_id   : {{ PINYIN_ID_Q, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 4,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 444 */
         text        : "qiong",
         bopomofo    : L"ㄑㄩㄥ",
         sheng       : "q",
@@ -3905,7 +4004,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 434 */
+    {  /* 445 */
         text        : "qiou",
         bopomofo    : L"",
         sheng       : "q",
@@ -3914,7 +4013,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_IOU_TO_IU
     },
-    {  /* 435 */
+    {  /* 446 */
         text        : "qiu",
         bopomofo    : L"ㄑㄧㄡ",
         sheng       : "q",
@@ -3923,7 +4022,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 436 */
+    {  /* 447 */
         text        : "qu",
         bopomofo    : L"ㄑㄩ",
         sheng       : "q",
@@ -3932,7 +4031,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 437 */
+    {  /* 448 */
         text        : "quan",
         bopomofo    : L"ㄑㄩㄢ",
         sheng       : "q",
@@ -3941,7 +4040,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 438 */
+    {  /* 449 */
         text        : "quang",
         bopomofo    : L"ㄑㄩㄤ",
         sheng       : "q",
@@ -3950,7 +4049,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 439 */
+    {  /* 450 */
         text        : "que",
         bopomofo    : L"ㄑㄩㄝ",
         sheng       : "q",
@@ -3959,7 +4058,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 440 */
+    {  /* 451 */
         text        : "quen",
         bopomofo    : L"",
         sheng       : "q",
@@ -3968,7 +4067,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 441 */
+    {  /* 452 */
         text        : "qun",
         bopomofo    : L"ㄑㄩㄣ",
         sheng       : "q",
@@ -3977,7 +4076,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 442 */
+    {  /* 453 */
         text        : "qv",
         bopomofo    : L"",
         sheng       : "q",
@@ -3986,7 +4085,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 443 */
+    {  /* 454 */
         text        : "qvan",
         bopomofo    : L"",
         sheng       : "q",
@@ -3995,7 +4094,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 444 */
+    {  /* 455 */
         text        : "qvang",
         bopomofo    : L"",
         sheng       : "q",
@@ -4004,7 +4103,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U
     },
-    {  /* 445 */
+    {  /* 456 */
         text        : "qve",
         bopomofo    : L"",
         sheng       : "q",
@@ -4013,7 +4112,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 446 */
+    {  /* 457 */
         text        : "qven",
         bopomofo    : L"",
         sheng       : "q",
@@ -4022,7 +4121,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U
     },
-    {  /* 447 */
+    {  /* 458 */
         text        : "qvn",
         bopomofo    : L"",
         sheng       : "q",
@@ -4031,7 +4130,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 448 */
+    {  /* 459 */
         text        : "r",
         bopomofo    : L"",
         sheng       : "r",
@@ -4040,7 +4139,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 449 */
+    {  /* 460 */
         text        : "ra",
         bopomofo    : L"ㄖㄚ",
         sheng       : "r",
@@ -4049,7 +4148,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 450 */
+    {  /* 461 */
         text        : "ragn",
         bopomofo    : L"",
         sheng       : "r",
@@ -4058,7 +4157,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 451 */
+    {  /* 462 */
         text        : "rai",
         bopomofo    : L"ㄖㄞ",
         sheng       : "r",
@@ -4067,7 +4166,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 452 */
+    {  /* 463 */
         text        : "ramg",
         bopomofo    : L"",
         sheng       : "r",
@@ -4076,7 +4175,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 453 */
+    {  /* 464 */
         text        : "ran",
         bopomofo    : L"ㄖㄢ",
         sheng       : "r",
@@ -4085,7 +4184,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 454 */
+    {  /* 465 */
         text        : "rang",
         bopomofo    : L"ㄖㄤ",
         sheng       : "r",
@@ -4094,7 +4193,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 455 */
+    {  /* 466 */
         text        : "rao",
         bopomofo    : L"ㄖㄠ",
         sheng       : "r",
@@ -4103,7 +4202,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 456 */
+    {  /* 467 */
         text        : "re",
         bopomofo    : L"ㄖㄜ",
         sheng       : "r",
@@ -4112,7 +4211,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 457 */
+    {  /* 468 */
         text        : "regn",
         bopomofo    : L"",
         sheng       : "r",
@@ -4121,7 +4220,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 458 */
+    {  /* 469 */
         text        : "rei",
         bopomofo    : L"ㄖㄟ",
         sheng       : "r",
@@ -4130,7 +4229,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 459 */
+    {  /* 470 */
         text        : "remg",
         bopomofo    : L"",
         sheng       : "r",
@@ -4139,7 +4238,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 460 */
+    {  /* 471 */
         text        : "ren",
         bopomofo    : L"ㄖㄣ",
         sheng       : "r",
@@ -4148,7 +4247,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 461 */
+    {  /* 472 */
         text        : "reng",
         bopomofo    : L"ㄖㄥ",
         sheng       : "r",
@@ -4157,7 +4256,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 462 */
+    {  /* 473 */
         text        : "ri",
         bopomofo    : L"ㄖ",
         sheng       : "r",
@@ -4166,7 +4265,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 463 */
+    {  /* 474 */
         text        : "ria",
         bopomofo    : L"ㄖㄧㄚ",
         sheng       : "r",
@@ -4175,7 +4274,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 464 */
+    {  /* 475 */
         text        : "rian",
         bopomofo    : L"ㄖㄧㄢ",
         sheng       : "r",
@@ -4184,7 +4283,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 465 */
+    {  /* 476 */
         text        : "riang",
         bopomofo    : L"ㄖㄧㄤ",
         sheng       : "r",
@@ -4193,7 +4292,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 466 */
+    {  /* 477 */
         text        : "riao",
         bopomofo    : L"ㄖㄧㄠ",
         sheng       : "r",
@@ -4202,7 +4301,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 467 */
+    {  /* 478 */
         text        : "rie",
         bopomofo    : L"ㄖㄧㄝ",
         sheng       : "r",
@@ -4211,7 +4310,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 468 */
+    {  /* 479 */
         text        : "rin",
         bopomofo    : L"ㄖㄧㄣ",
         sheng       : "r",
@@ -4220,7 +4319,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 469 */
+    {  /* 480 */
         text        : "ring",
         bopomofo    : L"ㄖㄧㄥ",
         sheng       : "r",
@@ -4229,7 +4328,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 470 */
+    {  /* 481 */
         text        : "riou",
         bopomofo    : L"",
         sheng       : "r",
@@ -4238,7 +4337,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_R_L | PINYIN_CORRECT_IOU_TO_IU
     },
-    {  /* 471 */
+    {  /* 482 */
         text        : "riu",
         bopomofo    : L"ㄖㄧㄡ",
         sheng       : "r",
@@ -4247,7 +4346,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 472 */
+    {  /* 483 */
         text        : "ro",
         bopomofo    : L"ㄖㄛ",
         sheng       : "r",
@@ -4256,7 +4355,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 473 */
+    {  /* 484 */
         text        : "rogn",
         bopomofo    : L"",
         sheng       : "r",
@@ -4265,16 +4364,25 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 474 */
+    {  /* 485 */
         text        : "romg",
         bopomofo    : L"",
         sheng       : "r",
         yun         : "ong",
         pinyin_id   : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
-        len         : 4,
-        flags       : PINYIN_CORRECT_MG_TO_NG
+        len         : 4,
+        flags       : PINYIN_CORRECT_MG_TO_NG
+    },
+    {  /* 486 */
+        text        : "ron",
+        bopomofo    : L"",
+        sheng       : "r",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_R, PINYIN_ID_ONG }, { PINYIN_ID_L, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
     },
-    {  /* 475 */
+    {  /* 487 */
         text        : "rong",
         bopomofo    : L"ㄖㄨㄥ",
         sheng       : "r",
@@ -4283,7 +4391,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 476 */
+    {  /* 488 */
         text        : "rou",
         bopomofo    : L"ㄖㄡ",
         sheng       : "r",
@@ -4292,7 +4400,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 477 */
+    {  /* 489 */
         text        : "ru",
         bopomofo    : L"ㄖㄨ",
         sheng       : "r",
@@ -4301,7 +4409,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 478 */
+    {  /* 490 */
         text        : "ruan",
         bopomofo    : L"ㄖㄨㄢ",
         sheng       : "r",
@@ -4310,7 +4418,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 479 */
+    {  /* 491 */
         text        : "ruang",
         bopomofo    : L"ㄖㄨㄤ",
         sheng       : "r",
@@ -4319,7 +4427,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 480 */
+    {  /* 492 */
         text        : "rue",
         bopomofo    : L"",
         sheng       : "r",
@@ -4328,7 +4436,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_R_L | PINYIN_CORRECT_UE_TO_VE
     },
-    {  /* 481 */
+    {  /* 493 */
         text        : "ruei",
         bopomofo    : L"",
         sheng       : "r",
@@ -4337,7 +4445,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 482 */
+    {  /* 494 */
         text        : "ruen",
         bopomofo    : L"",
         sheng       : "r",
@@ -4346,7 +4454,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 483 */
+    {  /* 495 */
         text        : "rui",
         bopomofo    : L"ㄖㄨㄟ",
         sheng       : "r",
@@ -4355,7 +4463,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 484 */
+    {  /* 496 */
         text        : "run",
         bopomofo    : L"ㄖㄨㄣ",
         sheng       : "r",
@@ -4364,7 +4472,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 485 */
+    {  /* 497 */
         text        : "ruo",
         bopomofo    : L"ㄖㄨㄛ",
         sheng       : "r",
@@ -4373,7 +4481,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 486 */
+    {  /* 498 */
         text        : "rv",
         bopomofo    : L"ㄖㄩ",
         sheng       : "r",
@@ -4382,7 +4490,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 487 */
+    {  /* 499 */
         text        : "rve",
         bopomofo    : L"ㄖㄩㄝ",
         sheng       : "r",
@@ -4391,7 +4499,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_R_L
     },
-    {  /* 488 */
+    {  /* 500 */
         text        : "s",
         bopomofo    : L"",
         sheng       : "s",
@@ -4400,7 +4508,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 489 */
+    {  /* 501 */
         text        : "sa",
         bopomofo    : L"ㄙㄚ",
         sheng       : "s",
@@ -4409,7 +4517,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 490 */
+    {  /* 502 */
         text        : "sagn",
         bopomofo    : L"",
         sheng       : "s",
@@ -4418,7 +4526,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 491 */
+    {  /* 503 */
         text        : "sai",
         bopomofo    : L"ㄙㄞ",
         sheng       : "s",
@@ -4427,7 +4535,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 492 */
+    {  /* 504 */
         text        : "samg",
         bopomofo    : L"",
         sheng       : "s",
@@ -4436,7 +4544,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 493 */
+    {  /* 505 */
         text        : "san",
         bopomofo    : L"ㄙㄢ",
         sheng       : "s",
@@ -4445,7 +4553,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 494 */
+    {  /* 506 */
         text        : "sang",
         bopomofo    : L"ㄙㄤ",
         sheng       : "s",
@@ -4454,7 +4562,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 495 */
+    {  /* 507 */
         text        : "sao",
         bopomofo    : L"ㄙㄠ",
         sheng       : "s",
@@ -4463,7 +4571,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 496 */
+    {  /* 508 */
         text        : "se",
         bopomofo    : L"ㄙㄜ",
         sheng       : "s",
@@ -4472,7 +4580,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 497 */
+    {  /* 509 */
         text        : "segn",
         bopomofo    : L"",
         sheng       : "s",
@@ -4481,7 +4589,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 498 */
+    {  /* 510 */
         text        : "sei",
         bopomofo    : L"ㄙㄟ",
         sheng       : "s",
@@ -4490,7 +4598,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_S_SH
     },
-    {  /* 499 */
+    {  /* 511 */
         text        : "semg",
         bopomofo    : L"",
         sheng       : "s",
@@ -4499,7 +4607,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 500 */
+    {  /* 512 */
         text        : "sen",
         bopomofo    : L"ㄙㄣ",
         sheng       : "s",
@@ -4508,7 +4616,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 501 */
+    {  /* 513 */
         text        : "seng",
         bopomofo    : L"ㄙㄥ",
         sheng       : "s",
@@ -4517,7 +4625,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 502 */
+    {  /* 514 */
         text        : "sh",
         bopomofo    : L"",
         sheng       : "sh",
@@ -4526,7 +4634,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 503 */
+    {  /* 515 */
         text        : "sha",
         bopomofo    : L"ㄕㄚ",
         sheng       : "sh",
@@ -4535,7 +4643,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 504 */
+    {  /* 516 */
         text        : "shagn",
         bopomofo    : L"",
         sheng       : "sh",
@@ -4544,7 +4652,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 505 */
+    {  /* 517 */
         text        : "shai",
         bopomofo    : L"ㄕㄞ",
         sheng       : "sh",
@@ -4553,7 +4661,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 506 */
+    {  /* 518 */
         text        : "shamg",
         bopomofo    : L"",
         sheng       : "sh",
@@ -4562,7 +4670,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 507 */
+    {  /* 519 */
         text        : "shan",
         bopomofo    : L"ㄕㄢ",
         sheng       : "sh",
@@ -4571,7 +4679,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 508 */
+    {  /* 520 */
         text        : "shang",
         bopomofo    : L"ㄕㄤ",
         sheng       : "sh",
@@ -4580,7 +4688,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 509 */
+    {  /* 521 */
         text        : "shao",
         bopomofo    : L"ㄕㄠ",
         sheng       : "sh",
@@ -4589,7 +4697,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 510 */
+    {  /* 522 */
         text        : "she",
         bopomofo    : L"ㄕㄜ",
         sheng       : "sh",
@@ -4598,7 +4706,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 511 */
+    {  /* 523 */
         text        : "shegn",
         bopomofo    : L"",
         sheng       : "sh",
@@ -4607,7 +4715,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 512 */
+    {  /* 524 */
         text        : "shei",
         bopomofo    : L"ㄕㄟ",
         sheng       : "sh",
@@ -4616,7 +4724,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 513 */
+    {  /* 525 */
         text        : "shemg",
         bopomofo    : L"",
         sheng       : "sh",
@@ -4625,7 +4733,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 514 */
+    {  /* 526 */
         text        : "shen",
         bopomofo    : L"ㄕㄣ",
         sheng       : "sh",
@@ -4634,7 +4742,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 515 */
+    {  /* 527 */
         text        : "sheng",
         bopomofo    : L"ㄕㄥ",
         sheng       : "sh",
@@ -4643,7 +4751,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 516 */
+    {  /* 528 */
         text        : "shi",
         bopomofo    : L"ㄕ",
         sheng       : "sh",
@@ -4652,7 +4760,16 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 517 */
+    {  /* 529 */
+        text        : "shon",
+        bopomofo    : L"",
+        sheng       : "sh",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_SH, PINYIN_ID_ONG }, { PINYIN_ID_S, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_FUZZY_SH_S | PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 530 */
         text        : "shong",
         bopomofo    : L"ㄕㄨㄥ",
         sheng       : "sh",
@@ -4661,7 +4778,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_SH_S
     },
-    {  /* 518 */
+    {  /* 531 */
         text        : "shou",
         bopomofo    : L"ㄕㄡ",
         sheng       : "sh",
@@ -4670,7 +4787,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 519 */
+    {  /* 532 */
         text        : "shu",
         bopomofo    : L"ㄕㄨ",
         sheng       : "sh",
@@ -4679,7 +4796,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 520 */
+    {  /* 533 */
         text        : "shua",
         bopomofo    : L"ㄕㄨㄚ",
         sheng       : "sh",
@@ -4688,7 +4805,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 521 */
+    {  /* 534 */
         text        : "shuagn",
         bopomofo    : L"",
         sheng       : "sh",
@@ -4697,7 +4814,7 @@ static const Pinyin pinyin_table[] = {
         len         : 6,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 522 */
+    {  /* 535 */
         text        : "shuai",
         bopomofo    : L"ㄕㄨㄞ",
         sheng       : "sh",
@@ -4706,7 +4823,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 523 */
+    {  /* 536 */
         text        : "shuamg",
         bopomofo    : L"",
         sheng       : "sh",
@@ -4715,7 +4832,7 @@ static const Pinyin pinyin_table[] = {
         len         : 6,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 524 */
+    {  /* 537 */
         text        : "shuan",
         bopomofo    : L"ㄕㄨㄢ",
         sheng       : "sh",
@@ -4724,7 +4841,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 525 */
+    {  /* 538 */
         text        : "shuang",
         bopomofo    : L"ㄕㄨㄤ",
         sheng       : "sh",
@@ -4733,7 +4850,7 @@ static const Pinyin pinyin_table[] = {
         len         : 6,
         flags       : 0
     },
-    {  /* 526 */
+    {  /* 539 */
         text        : "shuei",
         bopomofo    : L"",
         sheng       : "sh",
@@ -4742,7 +4859,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 527 */
+    {  /* 540 */
         text        : "shuen",
         bopomofo    : L"",
         sheng       : "sh",
@@ -4751,7 +4868,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 528 */
+    {  /* 541 */
         text        : "shui",
         bopomofo    : L"ㄕㄨㄟ",
         sheng       : "sh",
@@ -4760,7 +4877,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 529 */
+    {  /* 542 */
         text        : "shun",
         bopomofo    : L"ㄕㄨㄣ",
         sheng       : "sh",
@@ -4769,7 +4886,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 530 */
+    {  /* 543 */
         text        : "shuo",
         bopomofo    : L"ㄕㄨㄛ",
         sheng       : "sh",
@@ -4778,7 +4895,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 531 */
+    {  /* 544 */
         text        : "si",
         bopomofo    : L"ㄙ",
         sheng       : "s",
@@ -4787,7 +4904,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 532 */
+    {  /* 545 */
         text        : "sogn",
         bopomofo    : L"",
         sheng       : "s",
@@ -4796,7 +4913,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 533 */
+    {  /* 546 */
         text        : "somg",
         bopomofo    : L"",
         sheng       : "s",
@@ -4805,7 +4922,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 534 */
+    {  /* 547 */
+        text        : "son",
+        bopomofo    : L"",
+        sheng       : "s",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_S, PINYIN_ID_ONG }, { PINYIN_ID_SH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 548 */
         text        : "song",
         bopomofo    : L"ㄙㄨㄥ",
         sheng       : "s",
@@ -4814,7 +4940,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 535 */
+    {  /* 549 */
         text        : "sou",
         bopomofo    : L"ㄙㄡ",
         sheng       : "s",
@@ -4823,7 +4949,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 536 */
+    {  /* 550 */
         text        : "su",
         bopomofo    : L"ㄙㄨ",
         sheng       : "s",
@@ -4832,7 +4958,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 537 */
+    {  /* 551 */
         text        : "sua",
         bopomofo    : L"ㄙㄨㄚ",
         sheng       : "s",
@@ -4841,7 +4967,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_S_SH
     },
-    {  /* 538 */
+    {  /* 552 */
         text        : "suai",
         bopomofo    : L"ㄙㄨㄞ",
         sheng       : "s",
@@ -4850,7 +4976,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_S_SH
     },
-    {  /* 539 */
+    {  /* 553 */
         text        : "suan",
         bopomofo    : L"ㄙㄨㄢ",
         sheng       : "s",
@@ -4859,7 +4985,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 540 */
+    {  /* 554 */
         text        : "suang",
         bopomofo    : L"ㄙㄨㄤ",
         sheng       : "s",
@@ -4868,7 +4994,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_S_SH | PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 541 */
+    {  /* 555 */
         text        : "suei",
         bopomofo    : L"",
         sheng       : "s",
@@ -4877,7 +5003,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 542 */
+    {  /* 556 */
         text        : "suen",
         bopomofo    : L"",
         sheng       : "s",
@@ -4886,7 +5012,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 543 */
+    {  /* 557 */
         text        : "sui",
         bopomofo    : L"ㄙㄨㄟ",
         sheng       : "s",
@@ -4895,7 +5021,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 544 */
+    {  /* 558 */
         text        : "sun",
         bopomofo    : L"ㄙㄨㄣ",
         sheng       : "s",
@@ -4904,7 +5030,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 545 */
+    {  /* 559 */
         text        : "suo",
         bopomofo    : L"ㄙㄨㄛ",
         sheng       : "s",
@@ -4913,7 +5039,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 546 */
+    {  /* 560 */
         text        : "t",
         bopomofo    : L"ㄊ",
         sheng       : "t",
@@ -4922,7 +5048,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 547 */
+    {  /* 561 */
         text        : "ta",
         bopomofo    : L"ㄊㄚ",
         sheng       : "t",
@@ -4931,7 +5057,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 548 */
+    {  /* 562 */
         text        : "tagn",
         bopomofo    : L"",
         sheng       : "t",
@@ -4940,7 +5066,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 549 */
+    {  /* 563 */
         text        : "tai",
         bopomofo    : L"ㄊㄞ",
         sheng       : "t",
@@ -4949,7 +5075,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 550 */
+    {  /* 564 */
         text        : "tamg",
         bopomofo    : L"",
         sheng       : "t",
@@ -4958,7 +5084,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 551 */
+    {  /* 565 */
         text        : "tan",
         bopomofo    : L"ㄊㄢ",
         sheng       : "t",
@@ -4967,7 +5093,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 552 */
+    {  /* 566 */
         text        : "tang",
         bopomofo    : L"ㄊㄤ",
         sheng       : "t",
@@ -4976,7 +5102,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 553 */
+    {  /* 567 */
         text        : "tao",
         bopomofo    : L"ㄊㄠ",
         sheng       : "t",
@@ -4985,7 +5111,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 554 */
+    {  /* 568 */
         text        : "te",
         bopomofo    : L"ㄊㄜ",
         sheng       : "t",
@@ -4994,7 +5120,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 555 */
+    {  /* 569 */
         text        : "tegn",
         bopomofo    : L"",
         sheng       : "t",
@@ -5003,7 +5129,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 556 */
+    {  /* 570 */
         text        : "temg",
         bopomofo    : L"",
         sheng       : "t",
@@ -5012,7 +5138,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 557 */
+    {  /* 571 */
         text        : "ten",
         bopomofo    : L"ㄊㄣ",
         sheng       : "t",
@@ -5021,7 +5147,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_EN_ENG
     },
-    {  /* 558 */
+    {  /* 572 */
         text        : "teng",
         bopomofo    : L"ㄊㄥ",
         sheng       : "t",
@@ -5030,7 +5156,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 559 */
+    {  /* 573 */
         text        : "ti",
         bopomofo    : L"ㄊㄧ",
         sheng       : "t",
@@ -5039,7 +5165,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 560 */
+    {  /* 574 */
         text        : "tian",
         bopomofo    : L"ㄊㄧㄢ",
         sheng       : "t",
@@ -5048,7 +5174,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 561 */
+    {  /* 575 */
         text        : "tiang",
         bopomofo    : L"ㄊㄧㄤ",
         sheng       : "t",
@@ -5057,7 +5183,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_IANG_IAN
     },
-    {  /* 562 */
+    {  /* 576 */
         text        : "tiao",
         bopomofo    : L"ㄊㄧㄠ",
         sheng       : "t",
@@ -5066,7 +5192,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 563 */
+    {  /* 577 */
         text        : "tie",
         bopomofo    : L"ㄊㄧㄝ",
         sheng       : "t",
@@ -5075,7 +5201,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 564 */
+    {  /* 578 */
         text        : "tign",
         bopomofo    : L"",
         sheng       : "t",
@@ -5084,7 +5210,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 565 */
+    {  /* 579 */
         text        : "timg",
         bopomofo    : L"",
         sheng       : "t",
@@ -5093,7 +5219,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 566 */
+    {  /* 580 */
         text        : "tin",
         bopomofo    : L"ㄊㄧㄣ",
         sheng       : "t",
@@ -5102,7 +5228,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_IN_ING
     },
-    {  /* 567 */
+    {  /* 581 */
         text        : "ting",
         bopomofo    : L"ㄊㄧㄥ",
         sheng       : "t",
@@ -5111,7 +5237,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 568 */
+    {  /* 582 */
         text        : "togn",
         bopomofo    : L"",
         sheng       : "t",
@@ -5120,7 +5246,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 569 */
+    {  /* 583 */
         text        : "tomg",
         bopomofo    : L"",
         sheng       : "t",
@@ -5129,7 +5255,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 570 */
+    {  /* 584 */
+        text        : "ton",
+        bopomofo    : L"",
+        sheng       : "t",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_T, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 585 */
         text        : "tong",
         bopomofo    : L"ㄊㄨㄥ",
         sheng       : "t",
@@ -5138,7 +5273,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 571 */
+    {  /* 586 */
         text        : "tou",
         bopomofo    : L"ㄊㄡ",
         sheng       : "t",
@@ -5147,7 +5282,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 572 */
+    {  /* 587 */
         text        : "tu",
         bopomofo    : L"ㄊㄨ",
         sheng       : "t",
@@ -5156,7 +5291,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 573 */
+    {  /* 588 */
         text        : "tuan",
         bopomofo    : L"ㄊㄨㄢ",
         sheng       : "t",
@@ -5165,7 +5300,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 574 */
+    {  /* 589 */
         text        : "tuang",
         bopomofo    : L"ㄊㄨㄤ",
         sheng       : "t",
@@ -5174,7 +5309,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 575 */
+    {  /* 590 */
         text        : "tuei",
         bopomofo    : L"",
         sheng       : "t",
@@ -5183,7 +5318,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 576 */
+    {  /* 591 */
         text        : "tuen",
         bopomofo    : L"",
         sheng       : "t",
@@ -5192,7 +5327,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 577 */
+    {  /* 592 */
         text        : "tui",
         bopomofo    : L"ㄊㄨㄟ",
         sheng       : "t",
@@ -5201,7 +5336,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 578 */
+    {  /* 593 */
         text        : "tun",
         bopomofo    : L"ㄊㄨㄣ",
         sheng       : "t",
@@ -5210,7 +5345,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 579 */
+    {  /* 594 */
         text        : "tuo",
         bopomofo    : L"ㄊㄨㄛ",
         sheng       : "t",
@@ -5219,7 +5354,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 580 */
+    {  /* 595 */
         text        : "w",
         bopomofo    : L"",
         sheng       : "w",
@@ -5228,7 +5363,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 581 */
+    {  /* 596 */
         text        : "wa",
         bopomofo    : L"ㄨㄚ",
         sheng       : "w",
@@ -5237,7 +5372,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 582 */
+    {  /* 597 */
         text        : "wagn",
         bopomofo    : L"",
         sheng       : "w",
@@ -5246,7 +5381,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 583 */
+    {  /* 598 */
         text        : "wai",
         bopomofo    : L"ㄨㄞ",
         sheng       : "w",
@@ -5255,7 +5390,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 584 */
+    {  /* 599 */
         text        : "wamg",
         bopomofo    : L"",
         sheng       : "w",
@@ -5264,7 +5399,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 585 */
+    {  /* 600 */
         text        : "wan",
         bopomofo    : L"ㄨㄢ",
         sheng       : "w",
@@ -5273,7 +5408,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 586 */
+    {  /* 601 */
         text        : "wang",
         bopomofo    : L"ㄨㄤ",
         sheng       : "w",
@@ -5282,7 +5417,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 587 */
+    {  /* 602 */
         text        : "wegn",
         bopomofo    : L"",
         sheng       : "w",
@@ -5291,7 +5426,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 588 */
+    {  /* 603 */
         text        : "wei",
         bopomofo    : L"ㄨㄟ",
         sheng       : "w",
@@ -5300,7 +5435,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 589 */
+    {  /* 604 */
         text        : "wemg",
         bopomofo    : L"",
         sheng       : "w",
@@ -5309,7 +5444,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 590 */
+    {  /* 605 */
         text        : "wen",
         bopomofo    : L"ㄨㄣ",
         sheng       : "w",
@@ -5318,7 +5453,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 591 */
+    {  /* 606 */
         text        : "weng",
         bopomofo    : L"ㄨㄥ",
         sheng       : "w",
@@ -5327,7 +5462,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 592 */
+    {  /* 607 */
         text        : "wo",
         bopomofo    : L"ㄨㄛ",
         sheng       : "w",
@@ -5336,7 +5471,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 593 */
+    {  /* 608 */
         text        : "wu",
         bopomofo    : L"ㄨ",
         sheng       : "w",
@@ -5345,7 +5480,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 594 */
+    {  /* 609 */
         text        : "x",
         bopomofo    : L"ㄒ",
         sheng       : "x",
@@ -5354,7 +5489,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 595 */
+    {  /* 610 */
         text        : "xi",
         bopomofo    : L"ㄒㄧ",
         sheng       : "x",
@@ -5363,7 +5498,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 596 */
+    {  /* 611 */
         text        : "xia",
         bopomofo    : L"ㄒㄧㄚ",
         sheng       : "x",
@@ -5372,7 +5507,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 597 */
+    {  /* 612 */
         text        : "xiagn",
         bopomofo    : L"",
         sheng       : "x",
@@ -5381,7 +5516,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 598 */
+    {  /* 613 */
         text        : "xiamg",
         bopomofo    : L"",
         sheng       : "x",
@@ -5390,7 +5525,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 599 */
+    {  /* 614 */
         text        : "xian",
         bopomofo    : L"ㄒㄧㄢ",
         sheng       : "x",
@@ -5399,7 +5534,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 600 */
+    {  /* 615 */
         text        : "xiang",
         bopomofo    : L"ㄒㄧㄤ",
         sheng       : "x",
@@ -5408,7 +5543,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 601 */
+    {  /* 616 */
         text        : "xiao",
         bopomofo    : L"ㄒㄧㄠ",
         sheng       : "x",
@@ -5417,7 +5552,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 602 */
+    {  /* 617 */
         text        : "xie",
         bopomofo    : L"ㄒㄧㄝ",
         sheng       : "x",
@@ -5426,7 +5561,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 603 */
+    {  /* 618 */
         text        : "xign",
         bopomofo    : L"",
         sheng       : "x",
@@ -5435,7 +5570,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 604 */
+    {  /* 619 */
         text        : "ximg",
         bopomofo    : L"",
         sheng       : "x",
@@ -5444,7 +5579,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 605 */
+    {  /* 620 */
         text        : "xin",
         bopomofo    : L"ㄒㄧㄣ",
         sheng       : "x",
@@ -5453,7 +5588,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 606 */
+    {  /* 621 */
         text        : "xing",
         bopomofo    : L"ㄒㄧㄥ",
         sheng       : "x",
@@ -5462,7 +5597,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 607 */
+    {  /* 622 */
         text        : "xiogn",
         bopomofo    : L"",
         sheng       : "x",
@@ -5471,7 +5606,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 608 */
+    {  /* 623 */
         text        : "xiomg",
         bopomofo    : L"",
         sheng       : "x",
@@ -5480,7 +5615,16 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 609 */
+    {  /* 624 */
+        text        : "xion",
+        bopomofo    : L"",
+        sheng       : "x",
+        yun         : "iong",
+        pinyin_id   : {{ PINYIN_ID_X, PINYIN_ID_IONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 4,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 625 */
         text        : "xiong",
         bopomofo    : L"ㄒㄩㄥ",
         sheng       : "x",
@@ -5489,7 +5633,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 610 */
+    {  /* 626 */
         text        : "xiou",
         bopomofo    : L"",
         sheng       : "x",
@@ -5498,7 +5642,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_IOU_TO_IU
     },
-    {  /* 611 */
+    {  /* 627 */
         text        : "xiu",
         bopomofo    : L"ㄒㄧㄡ",
         sheng       : "x",
@@ -5507,7 +5651,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 612 */
+    {  /* 628 */
         text        : "xu",
         bopomofo    : L"ㄒㄩ",
         sheng       : "x",
@@ -5516,7 +5660,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 613 */
+    {  /* 629 */
         text        : "xuan",
         bopomofo    : L"ㄒㄩㄢ",
         sheng       : "x",
@@ -5525,7 +5669,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 614 */
+    {  /* 630 */
         text        : "xuang",
         bopomofo    : L"ㄒㄩㄤ",
         sheng       : "x",
@@ -5534,7 +5678,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 615 */
+    {  /* 631 */
         text        : "xue",
         bopomofo    : L"ㄒㄩㄝ",
         sheng       : "x",
@@ -5543,7 +5687,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 616 */
+    {  /* 632 */
         text        : "xuen",
         bopomofo    : L"",
         sheng       : "x",
@@ -5552,7 +5696,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 617 */
+    {  /* 633 */
         text        : "xun",
         bopomofo    : L"ㄒㄩㄣ",
         sheng       : "x",
@@ -5561,7 +5705,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 618 */
+    {  /* 634 */
         text        : "xv",
         bopomofo    : L"",
         sheng       : "x",
@@ -5570,7 +5714,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 619 */
+    {  /* 635 */
         text        : "xvan",
         bopomofo    : L"",
         sheng       : "x",
@@ -5579,7 +5723,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 620 */
+    {  /* 636 */
         text        : "xvang",
         bopomofo    : L"",
         sheng       : "x",
@@ -5588,7 +5732,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U
     },
-    {  /* 621 */
+    {  /* 637 */
         text        : "xve",
         bopomofo    : L"",
         sheng       : "x",
@@ -5597,7 +5741,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 622 */
+    {  /* 638 */
         text        : "xven",
         bopomofo    : L"",
         sheng       : "x",
@@ -5606,7 +5750,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U
     },
-    {  /* 623 */
+    {  /* 639 */
         text        : "xvn",
         bopomofo    : L"",
         sheng       : "x",
@@ -5615,7 +5759,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 624 */
+    {  /* 640 */
         text        : "y",
         bopomofo    : L"",
         sheng       : "y",
@@ -5624,7 +5768,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 625 */
+    {  /* 641 */
         text        : "ya",
         bopomofo    : L"ㄧㄚ",
         sheng       : "y",
@@ -5633,7 +5777,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 626 */
+    {  /* 642 */
         text        : "yagn",
         bopomofo    : L"",
         sheng       : "y",
@@ -5642,7 +5786,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 627 */
+    {  /* 643 */
         text        : "yamg",
         bopomofo    : L"",
         sheng       : "y",
@@ -5651,7 +5795,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 628 */
+    {  /* 644 */
         text        : "yan",
         bopomofo    : L"ㄧㄢ",
         sheng       : "y",
@@ -5660,7 +5804,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 629 */
+    {  /* 645 */
         text        : "yang",
         bopomofo    : L"ㄧㄤ",
         sheng       : "y",
@@ -5669,7 +5813,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 630 */
+    {  /* 646 */
         text        : "yao",
         bopomofo    : L"ㄧㄠ",
         sheng       : "y",
@@ -5678,7 +5822,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 631 */
+    {  /* 647 */
         text        : "ye",
         bopomofo    : L"ㄧㄝ",
         sheng       : "y",
@@ -5687,7 +5831,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 632 */
+    {  /* 648 */
         text        : "yi",
         bopomofo    : L"ㄧ",
         sheng       : "y",
@@ -5696,7 +5840,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 633 */
+    {  /* 649 */
         text        : "yign",
         bopomofo    : L"",
         sheng       : "y",
@@ -5705,7 +5849,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 634 */
+    {  /* 650 */
         text        : "yimg",
         bopomofo    : L"",
         sheng       : "y",
@@ -5714,7 +5858,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 635 */
+    {  /* 651 */
         text        : "yin",
         bopomofo    : L"ㄧㄣ",
         sheng       : "y",
@@ -5723,7 +5867,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 636 */
+    {  /* 652 */
         text        : "ying",
         bopomofo    : L"ㄧㄥ",
         sheng       : "y",
@@ -5732,7 +5876,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 637 */
+    {  /* 653 */
         text        : "yo",
         bopomofo    : L"ㄧㄛ",
         sheng       : "y",
@@ -5741,7 +5885,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 638 */
+    {  /* 654 */
         text        : "yogn",
         bopomofo    : L"",
         sheng       : "y",
@@ -5750,7 +5894,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 639 */
+    {  /* 655 */
         text        : "yomg",
         bopomofo    : L"",
         sheng       : "y",
@@ -5759,7 +5903,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 640 */
+    {  /* 656 */
+        text        : "yon",
+        bopomofo    : L"",
+        sheng       : "y",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_Y, PINYIN_ID_ONG }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 657 */
         text        : "yong",
         bopomofo    : L"ㄩㄥ",
         sheng       : "y",
@@ -5768,7 +5921,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 641 */
+    {  /* 658 */
         text        : "you",
         bopomofo    : L"ㄧㄡ",
         sheng       : "y",
@@ -5777,7 +5930,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 642 */
+    {  /* 659 */
         text        : "yu",
         bopomofo    : L"ㄩ",
         sheng       : "y",
@@ -5786,7 +5939,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 643 */
+    {  /* 660 */
         text        : "yuan",
         bopomofo    : L"ㄩㄢ",
         sheng       : "y",
@@ -5795,7 +5948,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 644 */
+    {  /* 661 */
         text        : "yuang",
         bopomofo    : L"ㄧㄩㄤ",
         sheng       : "y",
@@ -5804,7 +5957,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 645 */
+    {  /* 662 */
         text        : "yue",
         bopomofo    : L"ㄩㄝ",
         sheng       : "y",
@@ -5813,7 +5966,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 646 */
+    {  /* 663 */
         text        : "yuen",
         bopomofo    : L"",
         sheng       : "y",
@@ -5822,7 +5975,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 647 */
+    {  /* 664 */
         text        : "yun",
         bopomofo    : L"ㄩㄣ",
         sheng       : "y",
@@ -5831,7 +5984,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 648 */
+    {  /* 665 */
         text        : "yv",
         bopomofo    : L"",
         sheng       : "y",
@@ -5840,7 +5993,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 649 */
+    {  /* 666 */
         text        : "yvan",
         bopomofo    : L"",
         sheng       : "y",
@@ -5849,7 +6002,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 650 */
+    {  /* 667 */
         text        : "yvang",
         bopomofo    : L"",
         sheng       : "y",
@@ -5858,7 +6011,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_UANG_UAN | PINYIN_CORRECT_V_TO_U
     },
-    {  /* 651 */
+    {  /* 668 */
         text        : "yve",
         bopomofo    : L"",
         sheng       : "y",
@@ -5867,7 +6020,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 652 */
+    {  /* 669 */
         text        : "yven",
         bopomofo    : L"",
         sheng       : "y",
@@ -5876,7 +6029,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN | PINYIN_CORRECT_V_TO_U
     },
-    {  /* 653 */
+    {  /* 670 */
         text        : "yvn",
         bopomofo    : L"",
         sheng       : "y",
@@ -5885,7 +6038,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_CORRECT_V_TO_U
     },
-    {  /* 654 */
+    {  /* 671 */
         text        : "z",
         bopomofo    : L"",
         sheng       : "z",
@@ -5894,7 +6047,7 @@ static const Pinyin pinyin_table[] = {
         len         : 1,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 655 */
+    {  /* 672 */
         text        : "za",
         bopomofo    : L"ㄗㄚ",
         sheng       : "z",
@@ -5903,7 +6056,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 656 */
+    {  /* 673 */
         text        : "zagn",
         bopomofo    : L"",
         sheng       : "z",
@@ -5912,7 +6065,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 657 */
+    {  /* 674 */
         text        : "zai",
         bopomofo    : L"ㄗㄞ",
         sheng       : "z",
@@ -5921,7 +6074,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 658 */
+    {  /* 675 */
         text        : "zamg",
         bopomofo    : L"",
         sheng       : "z",
@@ -5930,7 +6083,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 659 */
+    {  /* 676 */
         text        : "zan",
         bopomofo    : L"ㄗㄢ",
         sheng       : "z",
@@ -5939,7 +6092,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 660 */
+    {  /* 677 */
         text        : "zang",
         bopomofo    : L"ㄗㄤ",
         sheng       : "z",
@@ -5948,7 +6101,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 661 */
+    {  /* 678 */
         text        : "zao",
         bopomofo    : L"ㄗㄠ",
         sheng       : "z",
@@ -5957,7 +6110,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 662 */
+    {  /* 679 */
         text        : "ze",
         bopomofo    : L"ㄗㄜ",
         sheng       : "z",
@@ -5966,7 +6119,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 663 */
+    {  /* 680 */
         text        : "zegn",
         bopomofo    : L"",
         sheng       : "z",
@@ -5975,7 +6128,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 664 */
+    {  /* 681 */
         text        : "zei",
         bopomofo    : L"ㄗㄟ",
         sheng       : "z",
@@ -5984,7 +6137,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 665 */
+    {  /* 682 */
         text        : "zemg",
         bopomofo    : L"",
         sheng       : "z",
@@ -5993,7 +6146,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 666 */
+    {  /* 683 */
         text        : "zen",
         bopomofo    : L"ㄗㄣ",
         sheng       : "z",
@@ -6002,7 +6155,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 667 */
+    {  /* 684 */
         text        : "zeng",
         bopomofo    : L"ㄗㄥ",
         sheng       : "z",
@@ -6011,7 +6164,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 668 */
+    {  /* 685 */
         text        : "zh",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6020,7 +6173,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : PINYIN_INCOMPLETE_PINYIN
     },
-    {  /* 669 */
+    {  /* 686 */
         text        : "zha",
         bopomofo    : L"ㄓㄚ",
         sheng       : "zh",
@@ -6029,7 +6182,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 670 */
+    {  /* 687 */
         text        : "zhagn",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6038,7 +6191,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 671 */
+    {  /* 688 */
         text        : "zhai",
         bopomofo    : L"ㄓㄞ",
         sheng       : "zh",
@@ -6047,7 +6200,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 672 */
+    {  /* 689 */
         text        : "zhamg",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6056,7 +6209,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 673 */
+    {  /* 690 */
         text        : "zhan",
         bopomofo    : L"ㄓㄢ",
         sheng       : "zh",
@@ -6065,7 +6218,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 674 */
+    {  /* 691 */
         text        : "zhang",
         bopomofo    : L"ㄓㄤ",
         sheng       : "zh",
@@ -6074,7 +6227,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 675 */
+    {  /* 692 */
         text        : "zhao",
         bopomofo    : L"ㄓㄠ",
         sheng       : "zh",
@@ -6083,7 +6236,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 676 */
+    {  /* 693 */
         text        : "zhe",
         bopomofo    : L"ㄓㄜ",
         sheng       : "zh",
@@ -6092,7 +6245,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 677 */
+    {  /* 694 */
         text        : "zhegn",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6101,7 +6254,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 678 */
+    {  /* 695 */
         text        : "zhei",
         bopomofo    : L"ㄓㄟ",
         sheng       : "zh",
@@ -6110,7 +6263,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_ZH_Z
     },
-    {  /* 679 */
+    {  /* 696 */
         text        : "zhemg",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6119,7 +6272,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 680 */
+    {  /* 697 */
         text        : "zhen",
         bopomofo    : L"ㄓㄣ",
         sheng       : "zh",
@@ -6128,7 +6281,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 681 */
+    {  /* 698 */
         text        : "zheng",
         bopomofo    : L"ㄓㄥ",
         sheng       : "zh",
@@ -6137,7 +6290,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 682 */
+    {  /* 699 */
         text        : "zhi",
         bopomofo    : L"ㄓ",
         sheng       : "zh",
@@ -6146,7 +6299,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 683 */
+    {  /* 700 */
         text        : "zhogn",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6155,7 +6308,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 684 */
+    {  /* 701 */
         text        : "zhomg",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6164,7 +6317,16 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 685 */
+    {  /* 702 */
+        text        : "zhon",
+        bopomofo    : L"",
+        sheng       : "zh",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_ZH, PINYIN_ID_ONG }, { PINYIN_ID_Z, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 4,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 703 */
         text        : "zhong",
         bopomofo    : L"ㄓㄨㄥ",
         sheng       : "zh",
@@ -6173,7 +6335,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 686 */
+    {  /* 704 */
         text        : "zhou",
         bopomofo    : L"ㄓㄡ",
         sheng       : "zh",
@@ -6182,7 +6344,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 687 */
+    {  /* 705 */
         text        : "zhu",
         bopomofo    : L"ㄓㄨ",
         sheng       : "zh",
@@ -6191,7 +6353,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 688 */
+    {  /* 706 */
         text        : "zhua",
         bopomofo    : L"ㄓㄨㄚ",
         sheng       : "zh",
@@ -6200,7 +6362,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 689 */
+    {  /* 707 */
         text        : "zhuagn",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6209,7 +6371,7 @@ static const Pinyin pinyin_table[] = {
         len         : 6,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 690 */
+    {  /* 708 */
         text        : "zhuai",
         bopomofo    : L"ㄓㄨㄞ",
         sheng       : "zh",
@@ -6218,7 +6380,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 691 */
+    {  /* 709 */
         text        : "zhuamg",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6227,7 +6389,7 @@ static const Pinyin pinyin_table[] = {
         len         : 6,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 692 */
+    {  /* 710 */
         text        : "zhuan",
         bopomofo    : L"ㄓㄨㄢ",
         sheng       : "zh",
@@ -6236,7 +6398,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : 0
     },
-    {  /* 693 */
+    {  /* 711 */
         text        : "zhuang",
         bopomofo    : L"ㄓㄨㄤ",
         sheng       : "zh",
@@ -6245,7 +6407,7 @@ static const Pinyin pinyin_table[] = {
         len         : 6,
         flags       : 0
     },
-    {  /* 694 */
+    {  /* 712 */
         text        : "zhuei",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6254,7 +6416,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 695 */
+    {  /* 713 */
         text        : "zhuen",
         bopomofo    : L"",
         sheng       : "zh",
@@ -6263,7 +6425,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 696 */
+    {  /* 714 */
         text        : "zhui",
         bopomofo    : L"ㄓㄨㄟ",
         sheng       : "zh",
@@ -6272,7 +6434,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 697 */
+    {  /* 715 */
         text        : "zhun",
         bopomofo    : L"ㄓㄨㄣ",
         sheng       : "zh",
@@ -6281,7 +6443,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 698 */
+    {  /* 716 */
         text        : "zhuo",
         bopomofo    : L"ㄓㄨㄛ",
         sheng       : "zh",
@@ -6290,7 +6452,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 699 */
+    {  /* 717 */
         text        : "zi",
         bopomofo    : L"ㄗ",
         sheng       : "z",
@@ -6299,7 +6461,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 700 */
+    {  /* 718 */
         text        : "zogn",
         bopomofo    : L"",
         sheng       : "z",
@@ -6308,7 +6470,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_GN_TO_NG
     },
-    {  /* 701 */
+    {  /* 719 */
         text        : "zomg",
         bopomofo    : L"",
         sheng       : "z",
@@ -6317,7 +6479,16 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_MG_TO_NG
     },
-    {  /* 702 */
+    {  /* 720 */
+        text        : "zon",
+        bopomofo    : L"",
+        sheng       : "z",
+        yun         : "ong",
+        pinyin_id   : {{ PINYIN_ID_Z, PINYIN_ID_ONG }, { PINYIN_ID_ZH, PINYIN_ID_ZERO }, { PINYIN_ID_ZERO, PINYIN_ID_ZERO }},
+        len         : 3,
+        flags       : PINYIN_CORRECT_ON_TO_ONG
+    },
+    {  /* 721 */
         text        : "zong",
         bopomofo    : L"ㄗㄨㄥ",
         sheng       : "z",
@@ -6326,7 +6497,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 703 */
+    {  /* 722 */
         text        : "zou",
         bopomofo    : L"ㄗㄡ",
         sheng       : "z",
@@ -6335,7 +6506,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 704 */
+    {  /* 723 */
         text        : "zu",
         bopomofo    : L"ㄗㄨ",
         sheng       : "z",
@@ -6344,7 +6515,7 @@ static const Pinyin pinyin_table[] = {
         len         : 2,
         flags       : 0
     },
-    {  /* 705 */
+    {  /* 724 */
         text        : "zua",
         bopomofo    : L"ㄗㄨㄚ",
         sheng       : "z",
@@ -6353,7 +6524,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : PINYIN_FUZZY_Z_ZH
     },
-    {  /* 706 */
+    {  /* 725 */
         text        : "zuai",
         bopomofo    : L"ㄗㄨㄞ",
         sheng       : "z",
@@ -6362,7 +6533,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_FUZZY_Z_ZH
     },
-    {  /* 707 */
+    {  /* 726 */
         text        : "zuan",
         bopomofo    : L"ㄗㄨㄢ",
         sheng       : "z",
@@ -6371,7 +6542,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : 0
     },
-    {  /* 708 */
+    {  /* 727 */
         text        : "zuang",
         bopomofo    : L"ㄗㄨㄤ",
         sheng       : "z",
@@ -6380,7 +6551,7 @@ static const Pinyin pinyin_table[] = {
         len         : 5,
         flags       : PINYIN_FUZZY_Z_ZH | PINYIN_FUZZY_UANG_UAN
     },
-    {  /* 709 */
+    {  /* 728 */
         text        : "zuei",
         bopomofo    : L"",
         sheng       : "z",
@@ -6389,7 +6560,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEI_TO_UI
     },
-    {  /* 710 */
+    {  /* 729 */
         text        : "zuen",
         bopomofo    : L"",
         sheng       : "z",
@@ -6398,7 +6569,7 @@ static const Pinyin pinyin_table[] = {
         len         : 4,
         flags       : PINYIN_CORRECT_UEN_TO_UN
     },
-    {  /* 711 */
+    {  /* 730 */
         text        : "zui",
         bopomofo    : L"ㄗㄨㄟ",
         sheng       : "z",
@@ -6407,7 +6578,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 712 */
+    {  /* 731 */
         text        : "zun",
         bopomofo    : L"ㄗㄨㄣ",
         sheng       : "z",
@@ -6416,7 +6587,7 @@ static const Pinyin pinyin_table[] = {
         len         : 3,
         flags       : 0
     },
-    {  /* 713 */
+    {  /* 732 */
         text        : "zuo",
         bopomofo    : L"ㄗㄨㄛ",
         sheng       : "z",
@@ -6446,1426 +6617,1453 @@ static const Pinyin *bopomofo_table[] = {
     &pinyin_table[22],   // "ㄅㄧㄤ" => "biang"
     &pinyin_table[28],   // "ㄅㄧㄥ" => "bing"
     &pinyin_table[30],   // "ㄅㄨ" => "bu"
-    &pinyin_table[393],  // "ㄆ" => "p"
-    &pinyin_table[394],  // "ㄆㄚ" => "pa"
-    &pinyin_table[415],  // "ㄆㄛ" => "po"
-    &pinyin_table[396],  // "ㄆㄞ" => "pai"
-    &pinyin_table[402],  // "ㄆㄟ" => "pei"
-    &pinyin_table[400],  // "ㄆㄠ" => "pao"
-    &pinyin_table[416],  // "ㄆㄡ" => "pou"
-    &pinyin_table[398],  // "ㄆㄢ" => "pan"
-    &pinyin_table[404],  // "ㄆㄣ" => "pen"
-    &pinyin_table[399],  // "ㄆㄤ" => "pang"
-    &pinyin_table[405],  // "ㄆㄥ" => "peng"
-    &pinyin_table[406],  // "ㄆㄧ" => "pi"
-    &pinyin_table[410],  // "ㄆㄧㄝ" => "pie"
-    &pinyin_table[409],  // "ㄆㄧㄠ" => "piao"
-    &pinyin_table[407],  // "ㄆㄧㄢ" => "pian"
-    &pinyin_table[413],  // "ㄆㄧㄣ" => "pin"
-    &pinyin_table[408],  // "ㄆㄧㄤ" => "piang"
-    &pinyin_table[414],  // "ㄆㄧㄥ" => "ping"
-    &pinyin_table[417],  // "ㄆㄨ" => "pu"
-    &pinyin_table[321],  // "ㄇ" => "m"
-    &pinyin_table[322],  // "ㄇㄚ" => "ma"
-    &pinyin_table[346],  // "ㄇㄛ" => "mo"
-    &pinyin_table[329],  // "ㄇㄜ" => "me"
-    &pinyin_table[324],  // "ㄇㄞ" => "mai"
-    &pinyin_table[331],  // "ㄇㄟ" => "mei"
-    &pinyin_table[328],  // "ㄇㄠ" => "mao"
-    &pinyin_table[347],  // "ㄇㄡ" => "mou"
-    &pinyin_table[326],  // "ㄇㄢ" => "man"
-    &pinyin_table[333],  // "ㄇㄣ" => "men"
-    &pinyin_table[327],  // "ㄇㄤ" => "mang"
-    &pinyin_table[334],  // "ㄇㄥ" => "meng"
-    &pinyin_table[335],  // "ㄇㄧ" => "mi"
-    &pinyin_table[339],  // "ㄇㄧㄝ" => "mie"
-    &pinyin_table[338],  // "ㄇㄧㄠ" => "miao"
-    &pinyin_table[345],  // "ㄇㄧㄡ" => "miu"
-    &pinyin_table[336],  // "ㄇㄧㄢ" => "mian"
-    &pinyin_table[342],  // "ㄇㄧㄣ" => "min"
-    &pinyin_table[337],  // "ㄇㄧㄤ" => "miang"
-    &pinyin_table[343],  // "ㄇㄧㄥ" => "ming"
-    &pinyin_table[348],  // "ㄇㄨ" => "mu"
-    &pinyin_table[129],  // "ㄈ" => "f"
-    &pinyin_table[130],  // "ㄈㄚ" => "fa"
-    &pinyin_table[143],  // "ㄈㄛ" => "fo"
-    &pinyin_table[137],  // "ㄈㄜ" => "fe"
-    &pinyin_table[132],  // "ㄈㄞ" => "fai"
-    &pinyin_table[139],  // "ㄈㄟ" => "fei"
-    &pinyin_table[136],  // "ㄈㄠ" => "fao"
-    &pinyin_table[145],  // "ㄈㄡ" => "fou"
-    &pinyin_table[134],  // "ㄈㄢ" => "fan"
-    &pinyin_table[141],  // "ㄈㄣ" => "fen"
-    &pinyin_table[135],  // "ㄈㄤ" => "fang"
-    &pinyin_table[142],  // "ㄈㄥ" => "feng"
-    &pinyin_table[146],  // "ㄈㄨ" => "fu"
-    &pinyin_table[147],  // "ㄈㄨㄚ" => "fua"
-    &pinyin_table[155],  // "ㄈㄨㄛ" => "fuo"
-    &pinyin_table[148],  // "ㄈㄨㄞ" => "fuai"
-    &pinyin_table[153],  // "ㄈㄨㄟ" => "fui"
-    &pinyin_table[149],  // "ㄈㄨㄢ" => "fuan"
-    &pinyin_table[154],  // "ㄈㄨㄣ" => "fun"
-    &pinyin_table[150],  // "ㄈㄨㄤ" => "fuang"
-    &pinyin_table[144],  // "ㄈㄨㄥ" => "fong"
-    &pinyin_table[87],   // "ㄉ" => "d"
-    &pinyin_table[88],   // "ㄉㄚ" => "da"
-    &pinyin_table[95],   // "ㄉㄜ" => "de"
-    &pinyin_table[90],   // "ㄉㄞ" => "dai"
-    &pinyin_table[97],   // "ㄉㄟ" => "dei"
-    &pinyin_table[94],   // "ㄉㄠ" => "dao"
-    &pinyin_table[116],  // "ㄉㄡ" => "dou"
-    &pinyin_table[92],   // "ㄉㄢ" => "dan"
-    &pinyin_table[99],   // "ㄉㄣ" => "den"
-    &pinyin_table[93],   // "ㄉㄤ" => "dang"
-    &pinyin_table[100],  // "ㄉㄥ" => "deng"
-    &pinyin_table[101],  // "ㄉㄧ" => "di"
-    &pinyin_table[102],  // "ㄉㄧㄚ" => "dia"
-    &pinyin_table[106],  // "ㄉㄧㄝ" => "die"
-    &pinyin_table[105],  // "ㄉㄧㄠ" => "diao"
-    &pinyin_table[112],  // "ㄉㄧㄡ" => "diu"
-    &pinyin_table[103],  // "ㄉㄧㄢ" => "dian"
-    &pinyin_table[109],  // "ㄉㄧㄣ" => "din"
-    &pinyin_table[104],  // "ㄉㄧㄤ" => "diang"
-    &pinyin_table[110],  // "ㄉㄧㄥ" => "ding"
-    &pinyin_table[117],  // "ㄉㄨ" => "du"
-    &pinyin_table[124],  // "ㄉㄨㄛ" => "duo"
-    &pinyin_table[122],  // "ㄉㄨㄟ" => "dui"
-    &pinyin_table[118],  // "ㄉㄨㄢ" => "duan"
-    &pinyin_table[123],  // "ㄉㄨㄣ" => "dun"
-    &pinyin_table[119],  // "ㄉㄨㄤ" => "duang"
-    &pinyin_table[115],  // "ㄉㄨㄥ" => "dong"
-    &pinyin_table[546],  // "ㄊ" => "t"
-    &pinyin_table[547],  // "ㄊㄚ" => "ta"
-    &pinyin_table[554],  // "ㄊㄜ" => "te"
-    &pinyin_table[549],  // "ㄊㄞ" => "tai"
-    &pinyin_table[553],  // "ㄊㄠ" => "tao"
-    &pinyin_table[571],  // "ㄊㄡ" => "tou"
-    &pinyin_table[551],  // "ㄊㄢ" => "tan"
-    &pinyin_table[557],  // "ㄊㄣ" => "ten"
-    &pinyin_table[552],  // "ㄊㄤ" => "tang"
-    &pinyin_table[558],  // "ㄊㄥ" => "teng"
-    &pinyin_table[559],  // "ㄊㄧ" => "ti"
-    &pinyin_table[563],  // "ㄊㄧㄝ" => "tie"
-    &pinyin_table[562],  // "ㄊㄧㄠ" => "tiao"
-    &pinyin_table[560],  // "ㄊㄧㄢ" => "tian"
-    &pinyin_table[566],  // "ㄊㄧㄣ" => "tin"
-    &pinyin_table[561],  // "ㄊㄧㄤ" => "tiang"
-    &pinyin_table[567],  // "ㄊㄧㄥ" => "ting"
-    &pinyin_table[572],  // "ㄊㄨ" => "tu"
-    &pinyin_table[579],  // "ㄊㄨㄛ" => "tuo"
-    &pinyin_table[577],  // "ㄊㄨㄟ" => "tui"
-    &pinyin_table[573],  // "ㄊㄨㄢ" => "tuan"
-    &pinyin_table[578],  // "ㄊㄨㄣ" => "tun"
-    &pinyin_table[574],  // "ㄊㄨㄤ" => "tuang"
-    &pinyin_table[570],  // "ㄊㄨㄥ" => "tong"
-    &pinyin_table[349],  // "ㄋ" => "n"
-    &pinyin_table[350],  // "ㄋㄚ" => "na"
-    &pinyin_table[377],  // "ㄋㄛ" => "no"
-    &pinyin_table[357],  // "ㄋㄜ" => "ne"
-    &pinyin_table[352],  // "ㄋㄞ" => "nai"
-    &pinyin_table[359],  // "ㄋㄟ" => "nei"
-    &pinyin_table[356],  // "ㄋㄠ" => "nao"
-    &pinyin_table[381],  // "ㄋㄡ" => "nou"
-    &pinyin_table[354],  // "ㄋㄢ" => "nan"
-    &pinyin_table[361],  // "ㄋㄣ" => "nen"
-    &pinyin_table[355],  // "ㄋㄤ" => "nang"
-    &pinyin_table[362],  // "ㄋㄥ" => "neng"
-    &pinyin_table[363],  // "ㄋㄧ" => "ni"
-    &pinyin_table[364],  // "ㄋㄧㄚ" => "nia"
-    &pinyin_table[370],  // "ㄋㄧㄝ" => "nie"
-    &pinyin_table[369],  // "ㄋㄧㄠ" => "niao"
-    &pinyin_table[376],  // "ㄋㄧㄡ" => "niu"
-    &pinyin_table[367],  // "ㄋㄧㄢ" => "nian"
-    &pinyin_table[373],  // "ㄋㄧㄣ" => "nin"
-    &pinyin_table[368],  // "ㄋㄧㄤ" => "niang"
-    &pinyin_table[374],  // "ㄋㄧㄥ" => "ning"
-    &pinyin_table[382],  // "ㄋㄨ" => "nu"
-    &pinyin_table[388],  // "ㄋㄨㄛ" => "nuo"
-    &pinyin_table[383],  // "ㄋㄨㄢ" => "nuan"
-    &pinyin_table[387],  // "ㄋㄨㄣ" => "nun"
-    &pinyin_table[384],  // "ㄋㄨㄤ" => "nuang"
-    &pinyin_table[380],  // "ㄋㄨㄥ" => "nong"
-    &pinyin_table[389],  // "ㄋㄩ" => "nv"
-    &pinyin_table[390],  // "ㄋㄩㄝ" => "nve"
-    &pinyin_table[277],  // "ㄌ" => "l"
-    &pinyin_table[278],  // "ㄌㄚ" => "la"
-    &pinyin_table[305],  // "ㄌㄛ" => "lo"
-    &pinyin_table[285],  // "ㄌㄜ" => "le"
-    &pinyin_table[280],  // "ㄌㄞ" => "lai"
-    &pinyin_table[287],  // "ㄌㄟ" => "lei"
-    &pinyin_table[284],  // "ㄌㄠ" => "lao"
-    &pinyin_table[309],  // "ㄌㄡ" => "lou"
-    &pinyin_table[282],  // "ㄌㄢ" => "lan"
-    &pinyin_table[289],  // "ㄌㄣ" => "len"
-    &pinyin_table[283],  // "ㄌㄤ" => "lang"
-    &pinyin_table[290],  // "ㄌㄥ" => "leng"
-    &pinyin_table[291],  // "ㄌㄧ" => "li"
-    &pinyin_table[292],  // "ㄌㄧㄚ" => "lia"
-    &pinyin_table[298],  // "ㄌㄧㄝ" => "lie"
-    &pinyin_table[297],  // "ㄌㄧㄠ" => "liao"
-    &pinyin_table[304],  // "ㄌㄧㄡ" => "liu"
-    &pinyin_table[295],  // "ㄌㄧㄢ" => "lian"
-    &pinyin_table[301],  // "ㄌㄧㄣ" => "lin"
-    &pinyin_table[296],  // "ㄌㄧㄤ" => "liang"
-    &pinyin_table[302],  // "ㄌㄧㄥ" => "ling"
-    &pinyin_table[310],  // "ㄌㄨ" => "lu"
-    &pinyin_table[318],  // "ㄌㄨㄛ" => "luo"
-    &pinyin_table[316],  // "ㄌㄨㄟ" => "lui"
-    &pinyin_table[311],  // "ㄌㄨㄢ" => "luan"
-    &pinyin_table[317],  // "ㄌㄨㄣ" => "lun"
-    &pinyin_table[312],  // "ㄌㄨㄤ" => "luang"
-    &pinyin_table[308],  // "ㄌㄨㄥ" => "long"
-    &pinyin_table[319],  // "ㄌㄩ" => "lv"
-    &pinyin_table[320],  // "ㄌㄩㄝ" => "lve"
-    &pinyin_table[156],  // "ㄍ" => "g"
-    &pinyin_table[157],  // "ㄍㄚ" => "ga"
-    &pinyin_table[164],  // "ㄍㄜ" => "ge"
-    &pinyin_table[159],  // "ㄍㄞ" => "gai"
-    &pinyin_table[166],  // "ㄍㄟ" => "gei"
-    &pinyin_table[163],  // "ㄍㄠ" => "gao"
-    &pinyin_table[173],  // "ㄍㄡ" => "gou"
-    &pinyin_table[161],  // "ㄍㄢ" => "gan"
-    &pinyin_table[168],  // "ㄍㄣ" => "gen"
-    &pinyin_table[162],  // "ㄍㄤ" => "gang"
-    &pinyin_table[169],  // "ㄍㄥ" => "geng"
-    &pinyin_table[174],  // "ㄍㄨ" => "gu"
-    &pinyin_table[175],  // "ㄍㄨㄚ" => "gua"
-    &pinyin_table[185],  // "ㄍㄨㄛ" => "guo"
-    &pinyin_table[177],  // "ㄍㄨㄞ" => "guai"
-    &pinyin_table[183],  // "ㄍㄨㄟ" => "gui"
-    &pinyin_table[179],  // "ㄍㄨㄢ" => "guan"
-    &pinyin_table[184],  // "ㄍㄨㄣ" => "gun"
-    &pinyin_table[180],  // "ㄍㄨㄤ" => "guang"
-    &pinyin_table[172],  // "ㄍㄨㄥ" => "gong"
-    &pinyin_table[247],  // "ㄎ" => "k"
-    &pinyin_table[248],  // "ㄎㄚ" => "ka"
-    &pinyin_table[255],  // "ㄎㄜ" => "ke"
-    &pinyin_table[250],  // "ㄎㄞ" => "kai"
-    &pinyin_table[257],  // "ㄎㄟ" => "kei"
-    &pinyin_table[254],  // "ㄎㄠ" => "kao"
-    &pinyin_table[264],  // "ㄎㄡ" => "kou"
-    &pinyin_table[252],  // "ㄎㄢ" => "kan"
-    &pinyin_table[259],  // "ㄎㄣ" => "ken"
-    &pinyin_table[253],  // "ㄎㄤ" => "kang"
-    &pinyin_table[260],  // "ㄎㄥ" => "keng"
-    &pinyin_table[265],  // "ㄎㄨ" => "ku"
-    &pinyin_table[266],  // "ㄎㄨㄚ" => "kua"
-    &pinyin_table[276],  // "ㄎㄨㄛ" => "kuo"
-    &pinyin_table[268],  // "ㄎㄨㄞ" => "kuai"
-    &pinyin_table[274],  // "ㄎㄨㄟ" => "kui"
-    &pinyin_table[270],  // "ㄎㄨㄢ" => "kuan"
-    &pinyin_table[275],  // "ㄎㄨㄣ" => "kun"
-    &pinyin_table[271],  // "ㄎㄨㄤ" => "kuang"
-    &pinyin_table[263],  // "ㄎㄨㄥ" => "kong"
-    &pinyin_table[186],  // "ㄏ" => "h"
-    &pinyin_table[187],  // "ㄏㄚ" => "ha"
-    &pinyin_table[200],  // "ㄏㄛ" => "ho"
-    &pinyin_table[194],  // "ㄏㄜ" => "he"
-    &pinyin_table[189],  // "ㄏㄞ" => "hai"
-    &pinyin_table[196],  // "ㄏㄟ" => "hei"
-    &pinyin_table[193],  // "ㄏㄠ" => "hao"
-    &pinyin_table[204],  // "ㄏㄡ" => "hou"
-    &pinyin_table[191],  // "ㄏㄢ" => "han"
-    &pinyin_table[198],  // "ㄏㄣ" => "hen"
-    &pinyin_table[192],  // "ㄏㄤ" => "hang"
-    &pinyin_table[199],  // "ㄏㄥ" => "heng"
-    &pinyin_table[205],  // "ㄏㄨ" => "hu"
-    &pinyin_table[206],  // "ㄏㄨㄚ" => "hua"
-    &pinyin_table[216],  // "ㄏㄨㄛ" => "huo"
-    &pinyin_table[208],  // "ㄏㄨㄞ" => "huai"
-    &pinyin_table[214],  // "ㄏㄨㄟ" => "hui"
-    &pinyin_table[210],  // "ㄏㄨㄢ" => "huan"
-    &pinyin_table[215],  // "ㄏㄨㄣ" => "hun"
-    &pinyin_table[211],  // "ㄏㄨㄤ" => "huang"
-    &pinyin_table[203],  // "ㄏㄨㄥ" => "hong"
-    &pinyin_table[217],  // "ㄐ" => "j"
-    &pinyin_table[218],  // "ㄐㄧ" => "ji"
-    &pinyin_table[219],  // "ㄐㄧㄚ" => "jia"
-    &pinyin_table[225],  // "ㄐㄧㄝ" => "jie"
-    &pinyin_table[224],  // "ㄐㄧㄠ" => "jiao"
-    &pinyin_table[234],  // "ㄐㄧㄡ" => "jiu"
-    &pinyin_table[222],  // "ㄐㄧㄢ" => "jian"
-    &pinyin_table[228],  // "ㄐㄧㄣ" => "jin"
-    &pinyin_table[223],  // "ㄐㄧㄤ" => "jiang"
-    &pinyin_table[229],  // "ㄐㄧㄥ" => "jing"
-    &pinyin_table[235],  // "ㄐㄩ" => "ju"
-    &pinyin_table[238],  // "ㄐㄩㄝ" => "jue"
-    &pinyin_table[236],  // "ㄐㄩㄢ" => "juan"
-    &pinyin_table[240],  // "ㄐㄩㄣ" => "jun"
-    &pinyin_table[237],  // "ㄐㄩㄤ" => "juang"
-    &pinyin_table[232],  // "ㄐㄩㄥ" => "jiong"
-    &pinyin_table[418],  // "ㄑ" => "q"
-    &pinyin_table[419],  // "ㄑㄧ" => "qi"
-    &pinyin_table[420],  // "ㄑㄧㄚ" => "qia"
-    &pinyin_table[426],  // "ㄑㄧㄝ" => "qie"
-    &pinyin_table[425],  // "ㄑㄧㄠ" => "qiao"
-    &pinyin_table[435],  // "ㄑㄧㄡ" => "qiu"
-    &pinyin_table[423],  // "ㄑㄧㄢ" => "qian"
-    &pinyin_table[429],  // "ㄑㄧㄣ" => "qin"
-    &pinyin_table[424],  // "ㄑㄧㄤ" => "qiang"
-    &pinyin_table[430],  // "ㄑㄧㄥ" => "qing"
-    &pinyin_table[436],  // "ㄑㄩ" => "qu"
-    &pinyin_table[439],  // "ㄑㄩㄝ" => "que"
-    &pinyin_table[437],  // "ㄑㄩㄢ" => "quan"
-    &pinyin_table[441],  // "ㄑㄩㄣ" => "qun"
-    &pinyin_table[438],  // "ㄑㄩㄤ" => "quang"
-    &pinyin_table[433],  // "ㄑㄩㄥ" => "qiong"
-    &pinyin_table[594],  // "ㄒ" => "x"
-    &pinyin_table[595],  // "ㄒㄧ" => "xi"
-    &pinyin_table[596],  // "ㄒㄧㄚ" => "xia"
-    &pinyin_table[602],  // "ㄒㄧㄝ" => "xie"
-    &pinyin_table[601],  // "ㄒㄧㄠ" => "xiao"
-    &pinyin_table[611],  // "ㄒㄧㄡ" => "xiu"
-    &pinyin_table[599],  // "ㄒㄧㄢ" => "xian"
-    &pinyin_table[605],  // "ㄒㄧㄣ" => "xin"
-    &pinyin_table[600],  // "ㄒㄧㄤ" => "xiang"
-    &pinyin_table[606],  // "ㄒㄧㄥ" => "xing"
-    &pinyin_table[612],  // "ㄒㄩ" => "xu"
-    &pinyin_table[615],  // "ㄒㄩㄝ" => "xue"
-    &pinyin_table[613],  // "ㄒㄩㄢ" => "xuan"
-    &pinyin_table[617],  // "ㄒㄩㄣ" => "xun"
-    &pinyin_table[614],  // "ㄒㄩㄤ" => "xuang"
-    &pinyin_table[609],  // "ㄒㄩㄥ" => "xiong"
-    &pinyin_table[682],  // "ㄓ" => "zhi"
-    &pinyin_table[669],  // "ㄓㄚ" => "zha"
-    &pinyin_table[676],  // "ㄓㄜ" => "zhe"
-    &pinyin_table[671],  // "ㄓㄞ" => "zhai"
-    &pinyin_table[678],  // "ㄓㄟ" => "zhei"
-    &pinyin_table[675],  // "ㄓㄠ" => "zhao"
-    &pinyin_table[686],  // "ㄓㄡ" => "zhou"
-    &pinyin_table[673],  // "ㄓㄢ" => "zhan"
-    &pinyin_table[680],  // "ㄓㄣ" => "zhen"
-    &pinyin_table[674],  // "ㄓㄤ" => "zhang"
-    &pinyin_table[681],  // "ㄓㄥ" => "zheng"
-    &pinyin_table[687],  // "ㄓㄨ" => "zhu"
-    &pinyin_table[688],  // "ㄓㄨㄚ" => "zhua"
-    &pinyin_table[698],  // "ㄓㄨㄛ" => "zhuo"
-    &pinyin_table[690],  // "ㄓㄨㄞ" => "zhuai"
-    &pinyin_table[696],  // "ㄓㄨㄟ" => "zhui"
-    &pinyin_table[692],  // "ㄓㄨㄢ" => "zhuan"
-    &pinyin_table[697],  // "ㄓㄨㄣ" => "zhun"
-    &pinyin_table[693],  // "ㄓㄨㄤ" => "zhuang"
-    &pinyin_table[685],  // "ㄓㄨㄥ" => "zhong"
+    &pinyin_table[403],  // "ㄆ" => "p"
+    &pinyin_table[404],  // "ㄆㄚ" => "pa"
+    &pinyin_table[425],  // "ㄆㄛ" => "po"
+    &pinyin_table[406],  // "ㄆㄞ" => "pai"
+    &pinyin_table[412],  // "ㄆㄟ" => "pei"
+    &pinyin_table[410],  // "ㄆㄠ" => "pao"
+    &pinyin_table[426],  // "ㄆㄡ" => "pou"
+    &pinyin_table[408],  // "ㄆㄢ" => "pan"
+    &pinyin_table[414],  // "ㄆㄣ" => "pen"
+    &pinyin_table[409],  // "ㄆㄤ" => "pang"
+    &pinyin_table[415],  // "ㄆㄥ" => "peng"
+    &pinyin_table[416],  // "ㄆㄧ" => "pi"
+    &pinyin_table[420],  // "ㄆㄧㄝ" => "pie"
+    &pinyin_table[419],  // "ㄆㄧㄠ" => "piao"
+    &pinyin_table[417],  // "ㄆㄧㄢ" => "pian"
+    &pinyin_table[423],  // "ㄆㄧㄣ" => "pin"
+    &pinyin_table[418],  // "ㄆㄧㄤ" => "piang"
+    &pinyin_table[424],  // "ㄆㄧㄥ" => "ping"
+    &pinyin_table[427],  // "ㄆㄨ" => "pu"
+    &pinyin_table[330],  // "ㄇ" => "m"
+    &pinyin_table[331],  // "ㄇㄚ" => "ma"
+    &pinyin_table[355],  // "ㄇㄛ" => "mo"
+    &pinyin_table[338],  // "ㄇㄜ" => "me"
+    &pinyin_table[333],  // "ㄇㄞ" => "mai"
+    &pinyin_table[340],  // "ㄇㄟ" => "mei"
+    &pinyin_table[337],  // "ㄇㄠ" => "mao"
+    &pinyin_table[356],  // "ㄇㄡ" => "mou"
+    &pinyin_table[335],  // "ㄇㄢ" => "man"
+    &pinyin_table[342],  // "ㄇㄣ" => "men"
+    &pinyin_table[336],  // "ㄇㄤ" => "mang"
+    &pinyin_table[343],  // "ㄇㄥ" => "meng"
+    &pinyin_table[344],  // "ㄇㄧ" => "mi"
+    &pinyin_table[348],  // "ㄇㄧㄝ" => "mie"
+    &pinyin_table[347],  // "ㄇㄧㄠ" => "miao"
+    &pinyin_table[354],  // "ㄇㄧㄡ" => "miu"
+    &pinyin_table[345],  // "ㄇㄧㄢ" => "mian"
+    &pinyin_table[351],  // "ㄇㄧㄣ" => "min"
+    &pinyin_table[346],  // "ㄇㄧㄤ" => "miang"
+    &pinyin_table[352],  // "ㄇㄧㄥ" => "ming"
+    &pinyin_table[357],  // "ㄇㄨ" => "mu"
+    &pinyin_table[132],  // "ㄈ" => "f"
+    &pinyin_table[133],  // "ㄈㄚ" => "fa"
+    &pinyin_table[146],  // "ㄈㄛ" => "fo"
+    &pinyin_table[140],  // "ㄈㄜ" => "fe"
+    &pinyin_table[135],  // "ㄈㄞ" => "fai"
+    &pinyin_table[142],  // "ㄈㄟ" => "fei"
+    &pinyin_table[139],  // "ㄈㄠ" => "fao"
+    &pinyin_table[149],  // "ㄈㄡ" => "fou"
+    &pinyin_table[137],  // "ㄈㄢ" => "fan"
+    &pinyin_table[144],  // "ㄈㄣ" => "fen"
+    &pinyin_table[138],  // "ㄈㄤ" => "fang"
+    &pinyin_table[145],  // "ㄈㄥ" => "feng"
+    &pinyin_table[150],  // "ㄈㄨ" => "fu"
+    &pinyin_table[151],  // "ㄈㄨㄚ" => "fua"
+    &pinyin_table[159],  // "ㄈㄨㄛ" => "fuo"
+    &pinyin_table[152],  // "ㄈㄨㄞ" => "fuai"
+    &pinyin_table[157],  // "ㄈㄨㄟ" => "fui"
+    &pinyin_table[153],  // "ㄈㄨㄢ" => "fuan"
+    &pinyin_table[158],  // "ㄈㄨㄣ" => "fun"
+    &pinyin_table[154],  // "ㄈㄨㄤ" => "fuang"
+    &pinyin_table[148],  // "ㄈㄨㄥ" => "fong"
+    &pinyin_table[89],   // "ㄉ" => "d"
+    &pinyin_table[90],   // "ㄉㄚ" => "da"
+    &pinyin_table[97],   // "ㄉㄜ" => "de"
+    &pinyin_table[92],   // "ㄉㄞ" => "dai"
+    &pinyin_table[99],   // "ㄉㄟ" => "dei"
+    &pinyin_table[96],   // "ㄉㄠ" => "dao"
+    &pinyin_table[119],  // "ㄉㄡ" => "dou"
+    &pinyin_table[94],   // "ㄉㄢ" => "dan"
+    &pinyin_table[101],  // "ㄉㄣ" => "den"
+    &pinyin_table[95],   // "ㄉㄤ" => "dang"
+    &pinyin_table[102],  // "ㄉㄥ" => "deng"
+    &pinyin_table[103],  // "ㄉㄧ" => "di"
+    &pinyin_table[104],  // "ㄉㄧㄚ" => "dia"
+    &pinyin_table[108],  // "ㄉㄧㄝ" => "die"
+    &pinyin_table[107],  // "ㄉㄧㄠ" => "diao"
+    &pinyin_table[114],  // "ㄉㄧㄡ" => "diu"
+    &pinyin_table[105],  // "ㄉㄧㄢ" => "dian"
+    &pinyin_table[111],  // "ㄉㄧㄣ" => "din"
+    &pinyin_table[106],  // "ㄉㄧㄤ" => "diang"
+    &pinyin_table[112],  // "ㄉㄧㄥ" => "ding"
+    &pinyin_table[120],  // "ㄉㄨ" => "du"
+    &pinyin_table[127],  // "ㄉㄨㄛ" => "duo"
+    &pinyin_table[125],  // "ㄉㄨㄟ" => "dui"
+    &pinyin_table[121],  // "ㄉㄨㄢ" => "duan"
+    &pinyin_table[126],  // "ㄉㄨㄣ" => "dun"
+    &pinyin_table[122],  // "ㄉㄨㄤ" => "duang"
+    &pinyin_table[118],  // "ㄉㄨㄥ" => "dong"
+    &pinyin_table[560],  // "ㄊ" => "t"
+    &pinyin_table[561],  // "ㄊㄚ" => "ta"
+    &pinyin_table[568],  // "ㄊㄜ" => "te"
+    &pinyin_table[563],  // "ㄊㄞ" => "tai"
+    &pinyin_table[567],  // "ㄊㄠ" => "tao"
+    &pinyin_table[586],  // "ㄊㄡ" => "tou"
+    &pinyin_table[565],  // "ㄊㄢ" => "tan"
+    &pinyin_table[571],  // "ㄊㄣ" => "ten"
+    &pinyin_table[566],  // "ㄊㄤ" => "tang"
+    &pinyin_table[572],  // "ㄊㄥ" => "teng"
+    &pinyin_table[573],  // "ㄊㄧ" => "ti"
+    &pinyin_table[577],  // "ㄊㄧㄝ" => "tie"
+    &pinyin_table[576],  // "ㄊㄧㄠ" => "tiao"
+    &pinyin_table[574],  // "ㄊㄧㄢ" => "tian"
+    &pinyin_table[580],  // "ㄊㄧㄣ" => "tin"
+    &pinyin_table[575],  // "ㄊㄧㄤ" => "tiang"
+    &pinyin_table[581],  // "ㄊㄧㄥ" => "ting"
+    &pinyin_table[587],  // "ㄊㄨ" => "tu"
+    &pinyin_table[594],  // "ㄊㄨㄛ" => "tuo"
+    &pinyin_table[592],  // "ㄊㄨㄟ" => "tui"
+    &pinyin_table[588],  // "ㄊㄨㄢ" => "tuan"
+    &pinyin_table[593],  // "ㄊㄨㄣ" => "tun"
+    &pinyin_table[589],  // "ㄊㄨㄤ" => "tuang"
+    &pinyin_table[585],  // "ㄊㄨㄥ" => "tong"
+    &pinyin_table[358],  // "ㄋ" => "n"
+    &pinyin_table[359],  // "ㄋㄚ" => "na"
+    &pinyin_table[386],  // "ㄋㄛ" => "no"
+    &pinyin_table[366],  // "ㄋㄜ" => "ne"
+    &pinyin_table[361],  // "ㄋㄞ" => "nai"
+    &pinyin_table[368],  // "ㄋㄟ" => "nei"
+    &pinyin_table[365],  // "ㄋㄠ" => "nao"
+    &pinyin_table[391],  // "ㄋㄡ" => "nou"
+    &pinyin_table[363],  // "ㄋㄢ" => "nan"
+    &pinyin_table[370],  // "ㄋㄣ" => "nen"
+    &pinyin_table[364],  // "ㄋㄤ" => "nang"
+    &pinyin_table[371],  // "ㄋㄥ" => "neng"
+    &pinyin_table[372],  // "ㄋㄧ" => "ni"
+    &pinyin_table[373],  // "ㄋㄧㄚ" => "nia"
+    &pinyin_table[379],  // "ㄋㄧㄝ" => "nie"
+    &pinyin_table[378],  // "ㄋㄧㄠ" => "niao"
+    &pinyin_table[385],  // "ㄋㄧㄡ" => "niu"
+    &pinyin_table[376],  // "ㄋㄧㄢ" => "nian"
+    &pinyin_table[382],  // "ㄋㄧㄣ" => "nin"
+    &pinyin_table[377],  // "ㄋㄧㄤ" => "niang"
+    &pinyin_table[383],  // "ㄋㄧㄥ" => "ning"
+    &pinyin_table[392],  // "ㄋㄨ" => "nu"
+    &pinyin_table[398],  // "ㄋㄨㄛ" => "nuo"
+    &pinyin_table[393],  // "ㄋㄨㄢ" => "nuan"
+    &pinyin_table[397],  // "ㄋㄨㄣ" => "nun"
+    &pinyin_table[394],  // "ㄋㄨㄤ" => "nuang"
+    &pinyin_table[390],  // "ㄋㄨㄥ" => "nong"
+    &pinyin_table[399],  // "ㄋㄩ" => "nv"
+    &pinyin_table[400],  // "ㄋㄩㄝ" => "nve"
+    &pinyin_table[285],  // "ㄌ" => "l"
+    &pinyin_table[286],  // "ㄌㄚ" => "la"
+    &pinyin_table[313],  // "ㄌㄛ" => "lo"
+    &pinyin_table[293],  // "ㄌㄜ" => "le"
+    &pinyin_table[288],  // "ㄌㄞ" => "lai"
+    &pinyin_table[295],  // "ㄌㄟ" => "lei"
+    &pinyin_table[292],  // "ㄌㄠ" => "lao"
+    &pinyin_table[318],  // "ㄌㄡ" => "lou"
+    &pinyin_table[290],  // "ㄌㄢ" => "lan"
+    &pinyin_table[297],  // "ㄌㄣ" => "len"
+    &pinyin_table[291],  // "ㄌㄤ" => "lang"
+    &pinyin_table[298],  // "ㄌㄥ" => "leng"
+    &pinyin_table[299],  // "ㄌㄧ" => "li"
+    &pinyin_table[300],  // "ㄌㄧㄚ" => "lia"
+    &pinyin_table[306],  // "ㄌㄧㄝ" => "lie"
+    &pinyin_table[305],  // "ㄌㄧㄠ" => "liao"
+    &pinyin_table[312],  // "ㄌㄧㄡ" => "liu"
+    &pinyin_table[303],  // "ㄌㄧㄢ" => "lian"
+    &pinyin_table[309],  // "ㄌㄧㄣ" => "lin"
+    &pinyin_table[304],  // "ㄌㄧㄤ" => "liang"
+    &pinyin_table[310],  // "ㄌㄧㄥ" => "ling"
+    &pinyin_table[319],  // "ㄌㄨ" => "lu"
+    &pinyin_table[327],  // "ㄌㄨㄛ" => "luo"
+    &pinyin_table[325],  // "ㄌㄨㄟ" => "lui"
+    &pinyin_table[320],  // "ㄌㄨㄢ" => "luan"
+    &pinyin_table[326],  // "ㄌㄨㄣ" => "lun"
+    &pinyin_table[321],  // "ㄌㄨㄤ" => "luang"
+    &pinyin_table[317],  // "ㄌㄨㄥ" => "long"
+    &pinyin_table[328],  // "ㄌㄩ" => "lv"
+    &pinyin_table[329],  // "ㄌㄩㄝ" => "lve"
+    &pinyin_table[160],  // "ㄍ" => "g"
+    &pinyin_table[161],  // "ㄍㄚ" => "ga"
+    &pinyin_table[168],  // "ㄍㄜ" => "ge"
+    &pinyin_table[163],  // "ㄍㄞ" => "gai"
+    &pinyin_table[170],  // "ㄍㄟ" => "gei"
+    &pinyin_table[167],  // "ㄍㄠ" => "gao"
+    &pinyin_table[178],  // "ㄍㄡ" => "gou"
+    &pinyin_table[165],  // "ㄍㄢ" => "gan"
+    &pinyin_table[172],  // "ㄍㄣ" => "gen"
+    &pinyin_table[166],  // "ㄍㄤ" => "gang"
+    &pinyin_table[173],  // "ㄍㄥ" => "geng"
+    &pinyin_table[179],  // "ㄍㄨ" => "gu"
+    &pinyin_table[180],  // "ㄍㄨㄚ" => "gua"
+    &pinyin_table[190],  // "ㄍㄨㄛ" => "guo"
+    &pinyin_table[182],  // "ㄍㄨㄞ" => "guai"
+    &pinyin_table[188],  // "ㄍㄨㄟ" => "gui"
+    &pinyin_table[184],  // "ㄍㄨㄢ" => "guan"
+    &pinyin_table[189],  // "ㄍㄨㄣ" => "gun"
+    &pinyin_table[185],  // "ㄍㄨㄤ" => "guang"
+    &pinyin_table[177],  // "ㄍㄨㄥ" => "gong"
+    &pinyin_table[254],  // "ㄎ" => "k"
+    &pinyin_table[255],  // "ㄎㄚ" => "ka"
+    &pinyin_table[262],  // "ㄎㄜ" => "ke"
+    &pinyin_table[257],  // "ㄎㄞ" => "kai"
+    &pinyin_table[264],  // "ㄎㄟ" => "kei"
+    &pinyin_table[261],  // "ㄎㄠ" => "kao"
+    &pinyin_table[272],  // "ㄎㄡ" => "kou"
+    &pinyin_table[259],  // "ㄎㄢ" => "kan"
+    &pinyin_table[266],  // "ㄎㄣ" => "ken"
+    &pinyin_table[260],  // "ㄎㄤ" => "kang"
+    &pinyin_table[267],  // "ㄎㄥ" => "keng"
+    &pinyin_table[273],  // "ㄎㄨ" => "ku"
+    &pinyin_table[274],  // "ㄎㄨㄚ" => "kua"
+    &pinyin_table[284],  // "ㄎㄨㄛ" => "kuo"
+    &pinyin_table[276],  // "ㄎㄨㄞ" => "kuai"
+    &pinyin_table[282],  // "ㄎㄨㄟ" => "kui"
+    &pinyin_table[278],  // "ㄎㄨㄢ" => "kuan"
+    &pinyin_table[283],  // "ㄎㄨㄣ" => "kun"
+    &pinyin_table[279],  // "ㄎㄨㄤ" => "kuang"
+    &pinyin_table[271],  // "ㄎㄨㄥ" => "kong"
+    &pinyin_table[191],  // "ㄏ" => "h"
+    &pinyin_table[192],  // "ㄏㄚ" => "ha"
+    &pinyin_table[205],  // "ㄏㄛ" => "ho"
+    &pinyin_table[199],  // "ㄏㄜ" => "he"
+    &pinyin_table[194],  // "ㄏㄞ" => "hai"
+    &pinyin_table[201],  // "ㄏㄟ" => "hei"
+    &pinyin_table[198],  // "ㄏㄠ" => "hao"
+    &pinyin_table[210],  // "ㄏㄡ" => "hou"
+    &pinyin_table[196],  // "ㄏㄢ" => "han"
+    &pinyin_table[203],  // "ㄏㄣ" => "hen"
+    &pinyin_table[197],  // "ㄏㄤ" => "hang"
+    &pinyin_table[204],  // "ㄏㄥ" => "heng"
+    &pinyin_table[211],  // "ㄏㄨ" => "hu"
+    &pinyin_table[212],  // "ㄏㄨㄚ" => "hua"
+    &pinyin_table[222],  // "ㄏㄨㄛ" => "huo"
+    &pinyin_table[214],  // "ㄏㄨㄞ" => "huai"
+    &pinyin_table[220],  // "ㄏㄨㄟ" => "hui"
+    &pinyin_table[216],  // "ㄏㄨㄢ" => "huan"
+    &pinyin_table[221],  // "ㄏㄨㄣ" => "hun"
+    &pinyin_table[217],  // "ㄏㄨㄤ" => "huang"
+    &pinyin_table[209],  // "ㄏㄨㄥ" => "hong"
+    &pinyin_table[223],  // "ㄐ" => "j"
+    &pinyin_table[224],  // "ㄐㄧ" => "ji"
+    &pinyin_table[225],  // "ㄐㄧㄚ" => "jia"
+    &pinyin_table[231],  // "ㄐㄧㄝ" => "jie"
+    &pinyin_table[230],  // "ㄐㄧㄠ" => "jiao"
+    &pinyin_table[241],  // "ㄐㄧㄡ" => "jiu"
+    &pinyin_table[228],  // "ㄐㄧㄢ" => "jian"
+    &pinyin_table[234],  // "ㄐㄧㄣ" => "jin"
+    &pinyin_table[229],  // "ㄐㄧㄤ" => "jiang"
+    &pinyin_table[235],  // "ㄐㄧㄥ" => "jing"
+    &pinyin_table[242],  // "ㄐㄩ" => "ju"
+    &pinyin_table[245],  // "ㄐㄩㄝ" => "jue"
+    &pinyin_table[243],  // "ㄐㄩㄢ" => "juan"
+    &pinyin_table[247],  // "ㄐㄩㄣ" => "jun"
+    &pinyin_table[244],  // "ㄐㄩㄤ" => "juang"
+    &pinyin_table[239],  // "ㄐㄩㄥ" => "jiong"
+    &pinyin_table[428],  // "ㄑ" => "q"
+    &pinyin_table[429],  // "ㄑㄧ" => "qi"
+    &pinyin_table[430],  // "ㄑㄧㄚ" => "qia"
+    &pinyin_table[436],  // "ㄑㄧㄝ" => "qie"
+    &pinyin_table[435],  // "ㄑㄧㄠ" => "qiao"
+    &pinyin_table[446],  // "ㄑㄧㄡ" => "qiu"
+    &pinyin_table[433],  // "ㄑㄧㄢ" => "qian"
+    &pinyin_table[439],  // "ㄑㄧㄣ" => "qin"
+    &pinyin_table[434],  // "ㄑㄧㄤ" => "qiang"
+    &pinyin_table[440],  // "ㄑㄧㄥ" => "qing"
+    &pinyin_table[447],  // "ㄑㄩ" => "qu"
+    &pinyin_table[450],  // "ㄑㄩㄝ" => "que"
+    &pinyin_table[448],  // "ㄑㄩㄢ" => "quan"
+    &pinyin_table[452],  // "ㄑㄩㄣ" => "qun"
+    &pinyin_table[449],  // "ㄑㄩㄤ" => "quang"
+    &pinyin_table[444],  // "ㄑㄩㄥ" => "qiong"
+    &pinyin_table[609],  // "ㄒ" => "x"
+    &pinyin_table[610],  // "ㄒㄧ" => "xi"
+    &pinyin_table[611],  // "ㄒㄧㄚ" => "xia"
+    &pinyin_table[617],  // "ㄒㄧㄝ" => "xie"
+    &pinyin_table[616],  // "ㄒㄧㄠ" => "xiao"
+    &pinyin_table[627],  // "ㄒㄧㄡ" => "xiu"
+    &pinyin_table[614],  // "ㄒㄧㄢ" => "xian"
+    &pinyin_table[620],  // "ㄒㄧㄣ" => "xin"
+    &pinyin_table[615],  // "ㄒㄧㄤ" => "xiang"
+    &pinyin_table[621],  // "ㄒㄧㄥ" => "xing"
+    &pinyin_table[628],  // "ㄒㄩ" => "xu"
+    &pinyin_table[631],  // "ㄒㄩㄝ" => "xue"
+    &pinyin_table[629],  // "ㄒㄩㄢ" => "xuan"
+    &pinyin_table[633],  // "ㄒㄩㄣ" => "xun"
+    &pinyin_table[630],  // "ㄒㄩㄤ" => "xuang"
+    &pinyin_table[625],  // "ㄒㄩㄥ" => "xiong"
+    &pinyin_table[699],  // "ㄓ" => "zhi"
+    &pinyin_table[686],  // "ㄓㄚ" => "zha"
+    &pinyin_table[693],  // "ㄓㄜ" => "zhe"
+    &pinyin_table[688],  // "ㄓㄞ" => "zhai"
+    &pinyin_table[695],  // "ㄓㄟ" => "zhei"
+    &pinyin_table[692],  // "ㄓㄠ" => "zhao"
+    &pinyin_table[704],  // "ㄓㄡ" => "zhou"
+    &pinyin_table[690],  // "ㄓㄢ" => "zhan"
+    &pinyin_table[697],  // "ㄓㄣ" => "zhen"
+    &pinyin_table[691],  // "ㄓㄤ" => "zhang"
+    &pinyin_table[698],  // "ㄓㄥ" => "zheng"
+    &pinyin_table[705],  // "ㄓㄨ" => "zhu"
+    &pinyin_table[706],  // "ㄓㄨㄚ" => "zhua"
+    &pinyin_table[716],  // "ㄓㄨㄛ" => "zhuo"
+    &pinyin_table[708],  // "ㄓㄨㄞ" => "zhuai"
+    &pinyin_table[714],  // "ㄓㄨㄟ" => "zhui"
+    &pinyin_table[710],  // "ㄓㄨㄢ" => "zhuan"
+    &pinyin_table[715],  // "ㄓㄨㄣ" => "zhun"
+    &pinyin_table[711],  // "ㄓㄨㄤ" => "zhuang"
+    &pinyin_table[703],  // "ㄓㄨㄥ" => "zhong"
     &pinyin_table[57],   // "ㄔ" => "chi"
     &pinyin_table[45],   // "ㄔㄚ" => "cha"
     &pinyin_table[52],   // "ㄔㄜ" => "che"
     &pinyin_table[47],   // "ㄔㄞ" => "chai"
     &pinyin_table[51],   // "ㄔㄠ" => "chao"
-    &pinyin_table[61],   // "ㄔㄡ" => "chou"
+    &pinyin_table[62],   // "ㄔㄡ" => "chou"
     &pinyin_table[49],   // "ㄔㄢ" => "chan"
     &pinyin_table[55],   // "ㄔㄣ" => "chen"
     &pinyin_table[50],   // "ㄔㄤ" => "chang"
     &pinyin_table[56],   // "ㄔㄥ" => "cheng"
-    &pinyin_table[62],   // "ㄔㄨ" => "chu"
-    &pinyin_table[72],   // "ㄔㄨㄛ" => "chuo"
-    &pinyin_table[64],   // "ㄔㄨㄞ" => "chuai"
-    &pinyin_table[70],   // "ㄔㄨㄟ" => "chui"
-    &pinyin_table[66],   // "ㄔㄨㄢ" => "chuan"
-    &pinyin_table[71],   // "ㄔㄨㄣ" => "chun"
-    &pinyin_table[67],   // "ㄔㄨㄤ" => "chuang"
-    &pinyin_table[60],   // "ㄔㄨㄥ" => "chong"
-    &pinyin_table[516],  // "ㄕ" => "shi"
-    &pinyin_table[503],  // "ㄕㄚ" => "sha"
-    &pinyin_table[510],  // "ㄕㄜ" => "she"
-    &pinyin_table[505],  // "ㄕㄞ" => "shai"
-    &pinyin_table[512],  // "ㄕㄟ" => "shei"
-    &pinyin_table[509],  // "ㄕㄠ" => "shao"
-    &pinyin_table[518],  // "ㄕㄡ" => "shou"
-    &pinyin_table[507],  // "ㄕㄢ" => "shan"
-    &pinyin_table[514],  // "ㄕㄣ" => "shen"
-    &pinyin_table[508],  // "ㄕㄤ" => "shang"
-    &pinyin_table[515],  // "ㄕㄥ" => "sheng"
-    &pinyin_table[519],  // "ㄕㄨ" => "shu"
-    &pinyin_table[520],  // "ㄕㄨㄚ" => "shua"
-    &pinyin_table[530],  // "ㄕㄨㄛ" => "shuo"
-    &pinyin_table[522],  // "ㄕㄨㄞ" => "shuai"
-    &pinyin_table[528],  // "ㄕㄨㄟ" => "shui"
-    &pinyin_table[524],  // "ㄕㄨㄢ" => "shuan"
-    &pinyin_table[529],  // "ㄕㄨㄣ" => "shun"
-    &pinyin_table[525],  // "ㄕㄨㄤ" => "shuang"
-    &pinyin_table[517],  // "ㄕㄨㄥ" => "shong"
-    &pinyin_table[462],  // "ㄖ" => "ri"
-    &pinyin_table[449],  // "ㄖㄚ" => "ra"
-    &pinyin_table[472],  // "ㄖㄛ" => "ro"
-    &pinyin_table[456],  // "ㄖㄜ" => "re"
-    &pinyin_table[451],  // "ㄖㄞ" => "rai"
-    &pinyin_table[458],  // "ㄖㄟ" => "rei"
-    &pinyin_table[455],  // "ㄖㄠ" => "rao"
-    &pinyin_table[476],  // "ㄖㄡ" => "rou"
-    &pinyin_table[453],  // "ㄖㄢ" => "ran"
-    &pinyin_table[460],  // "ㄖㄣ" => "ren"
-    &pinyin_table[454],  // "ㄖㄤ" => "rang"
-    &pinyin_table[461],  // "ㄖㄥ" => "reng"
-    &pinyin_table[463],  // "ㄖㄧㄚ" => "ria"
-    &pinyin_table[467],  // "ㄖㄧㄝ" => "rie"
-    &pinyin_table[466],  // "ㄖㄧㄠ" => "riao"
-    &pinyin_table[471],  // "ㄖㄧㄡ" => "riu"
-    &pinyin_table[464],  // "ㄖㄧㄢ" => "rian"
-    &pinyin_table[468],  // "ㄖㄧㄣ" => "rin"
-    &pinyin_table[465],  // "ㄖㄧㄤ" => "riang"
-    &pinyin_table[469],  // "ㄖㄧㄥ" => "ring"
-    &pinyin_table[477],  // "ㄖㄨ" => "ru"
-    &pinyin_table[485],  // "ㄖㄨㄛ" => "ruo"
-    &pinyin_table[483],  // "ㄖㄨㄟ" => "rui"
-    &pinyin_table[478],  // "ㄖㄨㄢ" => "ruan"
-    &pinyin_table[484],  // "ㄖㄨㄣ" => "run"
-    &pinyin_table[479],  // "ㄖㄨㄤ" => "ruang"
-    &pinyin_table[475],  // "ㄖㄨㄥ" => "rong"
-    &pinyin_table[486],  // "ㄖㄩ" => "rv"
-    &pinyin_table[487],  // "ㄖㄩㄝ" => "rve"
-    &pinyin_table[699],  // "ㄗ" => "zi"
-    &pinyin_table[655],  // "ㄗㄚ" => "za"
-    &pinyin_table[662],  // "ㄗㄜ" => "ze"
-    &pinyin_table[657],  // "ㄗㄞ" => "zai"
-    &pinyin_table[664],  // "ㄗㄟ" => "zei"
-    &pinyin_table[661],  // "ㄗㄠ" => "zao"
-    &pinyin_table[703],  // "ㄗㄡ" => "zou"
-    &pinyin_table[659],  // "ㄗㄢ" => "zan"
-    &pinyin_table[666],  // "ㄗㄣ" => "zen"
-    &pinyin_table[660],  // "ㄗㄤ" => "zang"
-    &pinyin_table[667],  // "ㄗㄥ" => "zeng"
-    &pinyin_table[704],  // "ㄗㄨ" => "zu"
-    &pinyin_table[705],  // "ㄗㄨㄚ" => "zua"
-    &pinyin_table[713],  // "ㄗㄨㄛ" => "zuo"
-    &pinyin_table[706],  // "ㄗㄨㄞ" => "zuai"
-    &pinyin_table[711],  // "ㄗㄨㄟ" => "zui"
-    &pinyin_table[707],  // "ㄗㄨㄢ" => "zuan"
-    &pinyin_table[712],  // "ㄗㄨㄣ" => "zun"
-    &pinyin_table[708],  // "ㄗㄨㄤ" => "zuang"
-    &pinyin_table[702],  // "ㄗㄨㄥ" => "zong"
-    &pinyin_table[73],   // "ㄘ" => "ci"
+    &pinyin_table[63],   // "ㄔㄨ" => "chu"
+    &pinyin_table[73],   // "ㄔㄨㄛ" => "chuo"
+    &pinyin_table[65],   // "ㄔㄨㄞ" => "chuai"
+    &pinyin_table[71],   // "ㄔㄨㄟ" => "chui"
+    &pinyin_table[67],   // "ㄔㄨㄢ" => "chuan"
+    &pinyin_table[72],   // "ㄔㄨㄣ" => "chun"
+    &pinyin_table[68],   // "ㄔㄨㄤ" => "chuang"
+    &pinyin_table[61],   // "ㄔㄨㄥ" => "chong"
+    &pinyin_table[528],  // "ㄕ" => "shi"
+    &pinyin_table[515],  // "ㄕㄚ" => "sha"
+    &pinyin_table[522],  // "ㄕㄜ" => "she"
+    &pinyin_table[517],  // "ㄕㄞ" => "shai"
+    &pinyin_table[524],  // "ㄕㄟ" => "shei"
+    &pinyin_table[521],  // "ㄕㄠ" => "shao"
+    &pinyin_table[531],  // "ㄕㄡ" => "shou"
+    &pinyin_table[519],  // "ㄕㄢ" => "shan"
+    &pinyin_table[526],  // "ㄕㄣ" => "shen"
+    &pinyin_table[520],  // "ㄕㄤ" => "shang"
+    &pinyin_table[527],  // "ㄕㄥ" => "sheng"
+    &pinyin_table[532],  // "ㄕㄨ" => "shu"
+    &pinyin_table[533],  // "ㄕㄨㄚ" => "shua"
+    &pinyin_table[543],  // "ㄕㄨㄛ" => "shuo"
+    &pinyin_table[535],  // "ㄕㄨㄞ" => "shuai"
+    &pinyin_table[541],  // "ㄕㄨㄟ" => "shui"
+    &pinyin_table[537],  // "ㄕㄨㄢ" => "shuan"
+    &pinyin_table[542],  // "ㄕㄨㄣ" => "shun"
+    &pinyin_table[538],  // "ㄕㄨㄤ" => "shuang"
+    &pinyin_table[530],  // "ㄕㄨㄥ" => "shong"
+    &pinyin_table[473],  // "ㄖ" => "ri"
+    &pinyin_table[460],  // "ㄖㄚ" => "ra"
+    &pinyin_table[483],  // "ㄖㄛ" => "ro"
+    &pinyin_table[467],  // "ㄖㄜ" => "re"
+    &pinyin_table[462],  // "ㄖㄞ" => "rai"
+    &pinyin_table[469],  // "ㄖㄟ" => "rei"
+    &pinyin_table[466],  // "ㄖㄠ" => "rao"
+    &pinyin_table[488],  // "ㄖㄡ" => "rou"
+    &pinyin_table[464],  // "ㄖㄢ" => "ran"
+    &pinyin_table[471],  // "ㄖㄣ" => "ren"
+    &pinyin_table[465],  // "ㄖㄤ" => "rang"
+    &pinyin_table[472],  // "ㄖㄥ" => "reng"
+    &pinyin_table[474],  // "ㄖㄧㄚ" => "ria"
+    &pinyin_table[478],  // "ㄖㄧㄝ" => "rie"
+    &pinyin_table[477],  // "ㄖㄧㄠ" => "riao"
+    &pinyin_table[482],  // "ㄖㄧㄡ" => "riu"
+    &pinyin_table[475],  // "ㄖㄧㄢ" => "rian"
+    &pinyin_table[479],  // "ㄖㄧㄣ" => "rin"
+    &pinyin_table[476],  // "ㄖㄧㄤ" => "riang"
+    &pinyin_table[480],  // "ㄖㄧㄥ" => "ring"
+    &pinyin_table[489],  // "ㄖㄨ" => "ru"
+    &pinyin_table[497],  // "ㄖㄨㄛ" => "ruo"
+    &pinyin_table[495],  // "ㄖㄨㄟ" => "rui"
+    &pinyin_table[490],  // "ㄖㄨㄢ" => "ruan"
+    &pinyin_table[496],  // "ㄖㄨㄣ" => "run"
+    &pinyin_table[491],  // "ㄖㄨㄤ" => "ruang"
+    &pinyin_table[487],  // "ㄖㄨㄥ" => "rong"
+    &pinyin_table[498],  // "ㄖㄩ" => "rv"
+    &pinyin_table[499],  // "ㄖㄩㄝ" => "rve"
+    &pinyin_table[717],  // "ㄗ" => "zi"
+    &pinyin_table[672],  // "ㄗㄚ" => "za"
+    &pinyin_table[679],  // "ㄗㄜ" => "ze"
+    &pinyin_table[674],  // "ㄗㄞ" => "zai"
+    &pinyin_table[681],  // "ㄗㄟ" => "zei"
+    &pinyin_table[678],  // "ㄗㄠ" => "zao"
+    &pinyin_table[722],  // "ㄗㄡ" => "zou"
+    &pinyin_table[676],  // "ㄗㄢ" => "zan"
+    &pinyin_table[683],  // "ㄗㄣ" => "zen"
+    &pinyin_table[677],  // "ㄗㄤ" => "zang"
+    &pinyin_table[684],  // "ㄗㄥ" => "zeng"
+    &pinyin_table[723],  // "ㄗㄨ" => "zu"
+    &pinyin_table[724],  // "ㄗㄨㄚ" => "zua"
+    &pinyin_table[732],  // "ㄗㄨㄛ" => "zuo"
+    &pinyin_table[725],  // "ㄗㄨㄞ" => "zuai"
+    &pinyin_table[730],  // "ㄗㄨㄟ" => "zui"
+    &pinyin_table[726],  // "ㄗㄨㄢ" => "zuan"
+    &pinyin_table[731],  // "ㄗㄨㄣ" => "zun"
+    &pinyin_table[727],  // "ㄗㄨㄤ" => "zuang"
+    &pinyin_table[721],  // "ㄗㄨㄥ" => "zong"
+    &pinyin_table[74],   // "ㄘ" => "ci"
     &pinyin_table[32],   // "ㄘㄚ" => "ca"
     &pinyin_table[39],   // "ㄘㄜ" => "ce"
     &pinyin_table[34],   // "ㄘㄞ" => "cai"
     &pinyin_table[38],   // "ㄘㄠ" => "cao"
-    &pinyin_table[77],   // "ㄘㄡ" => "cou"
+    &pinyin_table[79],   // "ㄘㄡ" => "cou"
     &pinyin_table[36],   // "ㄘㄢ" => "can"
     &pinyin_table[42],   // "ㄘㄣ" => "cen"
     &pinyin_table[37],   // "ㄘㄤ" => "cang"
     &pinyin_table[43],   // "ㄘㄥ" => "ceng"
-    &pinyin_table[78],   // "ㄘㄨ" => "cu"
-    &pinyin_table[86],   // "ㄘㄨㄛ" => "cuo"
-    &pinyin_table[79],   // "ㄘㄨㄞ" => "cuai"
-    &pinyin_table[84],   // "ㄘㄨㄟ" => "cui"
-    &pinyin_table[80],   // "ㄘㄨㄢ" => "cuan"
-    &pinyin_table[85],   // "ㄘㄨㄣ" => "cun"
-    &pinyin_table[81],   // "ㄘㄨㄤ" => "cuang"
-    &pinyin_table[76],   // "ㄘㄨㄥ" => "cong"
-    &pinyin_table[531],  // "ㄙ" => "si"
-    &pinyin_table[489],  // "ㄙㄚ" => "sa"
-    &pinyin_table[496],  // "ㄙㄜ" => "se"
-    &pinyin_table[491],  // "ㄙㄞ" => "sai"
-    &pinyin_table[498],  // "ㄙㄟ" => "sei"
-    &pinyin_table[495],  // "ㄙㄠ" => "sao"
-    &pinyin_table[535],  // "ㄙㄡ" => "sou"
-    &pinyin_table[493],  // "ㄙㄢ" => "san"
-    &pinyin_table[500],  // "ㄙㄣ" => "sen"
-    &pinyin_table[494],  // "ㄙㄤ" => "sang"
-    &pinyin_table[501],  // "ㄙㄥ" => "seng"
-    &pinyin_table[536],  // "ㄙㄨ" => "su"
-    &pinyin_table[537],  // "ㄙㄨㄚ" => "sua"
-    &pinyin_table[545],  // "ㄙㄨㄛ" => "suo"
-    &pinyin_table[538],  // "ㄙㄨㄞ" => "suai"
-    &pinyin_table[543],  // "ㄙㄨㄟ" => "sui"
-    &pinyin_table[539],  // "ㄙㄨㄢ" => "suan"
-    &pinyin_table[544],  // "ㄙㄨㄣ" => "sun"
-    &pinyin_table[540],  // "ㄙㄨㄤ" => "suang"
-    &pinyin_table[534],  // "ㄙㄨㄥ" => "song"
+    &pinyin_table[80],   // "ㄘㄨ" => "cu"
+    &pinyin_table[88],   // "ㄘㄨㄛ" => "cuo"
+    &pinyin_table[81],   // "ㄘㄨㄞ" => "cuai"
+    &pinyin_table[86],   // "ㄘㄨㄟ" => "cui"
+    &pinyin_table[82],   // "ㄘㄨㄢ" => "cuan"
+    &pinyin_table[87],   // "ㄘㄨㄣ" => "cun"
+    &pinyin_table[83],   // "ㄘㄨㄤ" => "cuang"
+    &pinyin_table[78],   // "ㄘㄨㄥ" => "cong"
+    &pinyin_table[544],  // "ㄙ" => "si"
+    &pinyin_table[501],  // "ㄙㄚ" => "sa"
+    &pinyin_table[508],  // "ㄙㄜ" => "se"
+    &pinyin_table[503],  // "ㄙㄞ" => "sai"
+    &pinyin_table[510],  // "ㄙㄟ" => "sei"
+    &pinyin_table[507],  // "ㄙㄠ" => "sao"
+    &pinyin_table[549],  // "ㄙㄡ" => "sou"
+    &pinyin_table[505],  // "ㄙㄢ" => "san"
+    &pinyin_table[512],  // "ㄙㄣ" => "sen"
+    &pinyin_table[506],  // "ㄙㄤ" => "sang"
+    &pinyin_table[513],  // "ㄙㄥ" => "seng"
+    &pinyin_table[550],  // "ㄙㄨ" => "su"
+    &pinyin_table[551],  // "ㄙㄨㄚ" => "sua"
+    &pinyin_table[559],  // "ㄙㄨㄛ" => "suo"
+    &pinyin_table[552],  // "ㄙㄨㄞ" => "suai"
+    &pinyin_table[557],  // "ㄙㄨㄟ" => "sui"
+    &pinyin_table[553],  // "ㄙㄨㄢ" => "suan"
+    &pinyin_table[558],  // "ㄙㄨㄣ" => "sun"
+    &pinyin_table[554],  // "ㄙㄨㄤ" => "suang"
+    &pinyin_table[548],  // "ㄙㄨㄥ" => "song"
     &pinyin_table[0],    // "ㄚ" => "a"
-    &pinyin_table[391],  // "ㄛ" => "o"
-    &pinyin_table[125],  // "ㄜ" => "e"
+    &pinyin_table[401],  // "ㄛ" => "o"
+    &pinyin_table[128],  // "ㄜ" => "e"
     &pinyin_table[2],    // "ㄞ" => "ai"
-    &pinyin_table[126],  // "ㄟ" => "ei"
+    &pinyin_table[129],  // "ㄟ" => "ei"
     &pinyin_table[6],    // "ㄠ" => "ao"
-    &pinyin_table[392],  // "ㄡ" => "ou"
+    &pinyin_table[402],  // "ㄡ" => "ou"
     &pinyin_table[4],    // "ㄢ" => "an"
-    &pinyin_table[127],  // "ㄣ" => "en"
+    &pinyin_table[130],  // "ㄣ" => "en"
     &pinyin_table[5],    // "ㄤ" => "ang"
-    &pinyin_table[128],  // "ㄦ" => "er"
-    &pinyin_table[632],  // "ㄧ" => "yi"
-    &pinyin_table[625],  // "ㄧㄚ" => "ya"
-    &pinyin_table[637],  // "ㄧㄛ" => "yo"
-    &pinyin_table[631],  // "ㄧㄝ" => "ye"
-    &pinyin_table[630],  // "ㄧㄠ" => "yao"
-    &pinyin_table[641],  // "ㄧㄡ" => "you"
-    &pinyin_table[628],  // "ㄧㄢ" => "yan"
-    &pinyin_table[635],  // "ㄧㄣ" => "yin"
-    &pinyin_table[629],  // "ㄧㄤ" => "yang"
-    &pinyin_table[636],  // "ㄧㄥ" => "ying"
-    &pinyin_table[644],  // "ㄧㄩㄤ" => "yuang"
-    &pinyin_table[593],  // "ㄨ" => "wu"
-    &pinyin_table[581],  // "ㄨㄚ" => "wa"
-    &pinyin_table[592],  // "ㄨㄛ" => "wo"
-    &pinyin_table[583],  // "ㄨㄞ" => "wai"
-    &pinyin_table[588],  // "ㄨㄟ" => "wei"
-    &pinyin_table[585],  // "ㄨㄢ" => "wan"
-    &pinyin_table[590],  // "ㄨㄣ" => "wen"
-    &pinyin_table[586],  // "ㄨㄤ" => "wang"
-    &pinyin_table[591],  // "ㄨㄥ" => "weng"
-    &pinyin_table[642],  // "ㄩ" => "yu"
-    &pinyin_table[645],  // "ㄩㄝ" => "yue"
-    &pinyin_table[643],  // "ㄩㄢ" => "yuan"
-    &pinyin_table[647],  // "ㄩㄣ" => "yun"
-    &pinyin_table[640],  // "ㄩㄥ" => "yong"
+    &pinyin_table[131],  // "ㄦ" => "er"
+    &pinyin_table[648],  // "ㄧ" => "yi"
+    &pinyin_table[641],  // "ㄧㄚ" => "ya"
+    &pinyin_table[653],  // "ㄧㄛ" => "yo"
+    &pinyin_table[647],  // "ㄧㄝ" => "ye"
+    &pinyin_table[646],  // "ㄧㄠ" => "yao"
+    &pinyin_table[658],  // "ㄧㄡ" => "you"
+    &pinyin_table[644],  // "ㄧㄢ" => "yan"
+    &pinyin_table[651],  // "ㄧㄣ" => "yin"
+    &pinyin_table[645],  // "ㄧㄤ" => "yang"
+    &pinyin_table[652],  // "ㄧㄥ" => "ying"
+    &pinyin_table[661],  // "ㄧㄩㄤ" => "yuang"
+    &pinyin_table[608],  // "ㄨ" => "wu"
+    &pinyin_table[596],  // "ㄨㄚ" => "wa"
+    &pinyin_table[607],  // "ㄨㄛ" => "wo"
+    &pinyin_table[598],  // "ㄨㄞ" => "wai"
+    &pinyin_table[603],  // "ㄨㄟ" => "wei"
+    &pinyin_table[600],  // "ㄨㄢ" => "wan"
+    &pinyin_table[605],  // "ㄨㄣ" => "wen"
+    &pinyin_table[601],  // "ㄨㄤ" => "wang"
+    &pinyin_table[606],  // "ㄨㄥ" => "weng"
+    &pinyin_table[659],  // "ㄩ" => "yu"
+    &pinyin_table[662],  // "ㄩㄝ" => "yue"
+    &pinyin_table[660],  // "ㄩㄢ" => "yuan"
+    &pinyin_table[664],  // "ㄩㄣ" => "yun"
+    &pinyin_table[657],  // "ㄩㄥ" => "yong"
 };
 
 static const Pinyin *special_table[][4] = {
-    { &pinyin_table[4],    &pinyin_table[0],    &pinyin_table[0],    &pinyin_table[350],  }, /* an a => a na */
-    { &pinyin_table[4],    &pinyin_table[2],    &pinyin_table[0],    &pinyin_table[352],  }, /* an ai => a nai */
-    { &pinyin_table[4],    &pinyin_table[6],    &pinyin_table[0],    &pinyin_table[356],  }, /* an ao => a nao */
-    { &pinyin_table[4],    &pinyin_table[125],  &pinyin_table[0],    &pinyin_table[357],  }, /* an e => a ne */
-    { &pinyin_table[4],    &pinyin_table[126],  &pinyin_table[0],    &pinyin_table[359],  }, /* an ei => a nei */
-    { &pinyin_table[5],    &pinyin_table[0],    &pinyin_table[4],    &pinyin_table[157],  }, /* ang a => an ga */
-    { &pinyin_table[5],    &pinyin_table[2],    &pinyin_table[4],    &pinyin_table[159],  }, /* ang ai => an gai */
-    { &pinyin_table[5],    &pinyin_table[4],    &pinyin_table[4],    &pinyin_table[161],  }, /* ang an => an gan */
-    { &pinyin_table[5],    &pinyin_table[5],    &pinyin_table[4],    &pinyin_table[162],  }, /* ang ang => an gang */
-    { &pinyin_table[5],    &pinyin_table[6],    &pinyin_table[4],    &pinyin_table[163],  }, /* ang ao => an gao */
-    { &pinyin_table[5],    &pinyin_table[125],  &pinyin_table[4],    &pinyin_table[164],  }, /* ang e => an ge */
-    { &pinyin_table[5],    &pinyin_table[126],  &pinyin_table[4],    &pinyin_table[166],  }, /* ang ei => an gei */
-    { &pinyin_table[5],    &pinyin_table[127],  &pinyin_table[4],    &pinyin_table[168],  }, /* ang en => an gen */
-    { &pinyin_table[5],    &pinyin_table[392],  &pinyin_table[4],    &pinyin_table[173],  }, /* ang ou => an gou */
-    { &pinyin_table[12],   &pinyin_table[0],    &pinyin_table[8],    &pinyin_table[350],  }, /* ban a => ba na */
-    { &pinyin_table[12],   &pinyin_table[5],    &pinyin_table[8],    &pinyin_table[355],  }, /* ban ang => ba nang */
-    { &pinyin_table[12],   &pinyin_table[6],    &pinyin_table[8],    &pinyin_table[356],  }, /* ban ao => ba nao */
-    { &pinyin_table[12],   &pinyin_table[125],  &pinyin_table[8],    &pinyin_table[357],  }, /* ban e => ba ne */
-    { &pinyin_table[12],   &pinyin_table[126],  &pinyin_table[8],    &pinyin_table[359],  }, /* ban ei => ba nei */
-    { &pinyin_table[13],   &pinyin_table[2],    &pinyin_table[12],   &pinyin_table[159],  }, /* bang ai => ban gai */
-    { &pinyin_table[13],   &pinyin_table[5],    &pinyin_table[12],   &pinyin_table[162],  }, /* bang ang => ban gang */
-    { &pinyin_table[13],   &pinyin_table[6],    &pinyin_table[12],   &pinyin_table[163],  }, /* bang ao => ban gao */
-    { &pinyin_table[13],   &pinyin_table[125],  &pinyin_table[12],   &pinyin_table[164],  }, /* bang e => ban ge */
-    { &pinyin_table[13],   &pinyin_table[126],  &pinyin_table[12],   &pinyin_table[166],  }, /* bang ei => ban gei */
-    { &pinyin_table[13],   &pinyin_table[127],  &pinyin_table[12],   &pinyin_table[168],  }, /* bang en => ban gen */
-    { &pinyin_table[19],   &pinyin_table[0],    &pinyin_table[18],   &pinyin_table[157],  }, /* beng a => ben ga */
-    { &pinyin_table[19],   &pinyin_table[2],    &pinyin_table[18],   &pinyin_table[159],  }, /* beng ai => ben gai */
-    { &pinyin_table[19],   &pinyin_table[4],    &pinyin_table[18],   &pinyin_table[161],  }, /* beng an => ben gan */
-    { &pinyin_table[19],   &pinyin_table[5],    &pinyin_table[18],   &pinyin_table[162],  }, /* beng ang => ben gang */
-    { &pinyin_table[19],   &pinyin_table[6],    &pinyin_table[18],   &pinyin_table[163],  }, /* beng ao => ben gao */
-    { &pinyin_table[19],   &pinyin_table[125],  &pinyin_table[18],   &pinyin_table[164],  }, /* beng e => ben ge */
-    { &pinyin_table[19],   &pinyin_table[126],  &pinyin_table[18],   &pinyin_table[166],  }, /* beng ei => ben gei */
-    { &pinyin_table[19],   &pinyin_table[127],  &pinyin_table[18],   &pinyin_table[168],  }, /* beng en => ben gen */
-    { &pinyin_table[19],   &pinyin_table[392],  &pinyin_table[18],   &pinyin_table[173],  }, /* beng ou => ben gou */
-    { &pinyin_table[22],   &pinyin_table[0],    &pinyin_table[21],   &pinyin_table[157],  }, /* biang a => bian ga */
-    { &pinyin_table[22],   &pinyin_table[2],    &pinyin_table[21],   &pinyin_table[159],  }, /* biang ai => bian gai */
-    { &pinyin_table[22],   &pinyin_table[4],    &pinyin_table[21],   &pinyin_table[161],  }, /* biang an => bian gan */
-    { &pinyin_table[22],   &pinyin_table[5],    &pinyin_table[21],   &pinyin_table[162],  }, /* biang ang => bian gang */
-    { &pinyin_table[22],   &pinyin_table[6],    &pinyin_table[21],   &pinyin_table[163],  }, /* biang ao => bian gao */
-    { &pinyin_table[22],   &pinyin_table[125],  &pinyin_table[21],   &pinyin_table[164],  }, /* biang e => bian ge */
-    { &pinyin_table[22],   &pinyin_table[126],  &pinyin_table[21],   &pinyin_table[166],  }, /* biang ei => bian gei */
-    { &pinyin_table[22],   &pinyin_table[127],  &pinyin_table[21],   &pinyin_table[168],  }, /* biang en => bian gen */
-    { &pinyin_table[22],   &pinyin_table[392],  &pinyin_table[21],   &pinyin_table[173],  }, /* biang ou => bian gou */
-    { &pinyin_table[24],   &pinyin_table[448],  &pinyin_table[20],   &pinyin_table[128],  }, /* bie r => bi er */
-    { &pinyin_table[27],   &pinyin_table[0],    &pinyin_table[20],   &pinyin_table[350],  }, /* bin a => bi na */
-    { &pinyin_table[27],   &pinyin_table[2],    &pinyin_table[20],   &pinyin_table[352],  }, /* bin ai => bi nai */
-    { &pinyin_table[27],   &pinyin_table[4],    &pinyin_table[20],   &pinyin_table[354],  }, /* bin an => bi nan */
-    { &pinyin_table[27],   &pinyin_table[5],    &pinyin_table[20],   &pinyin_table[355],  }, /* bin ang => bi nang */
-    { &pinyin_table[27],   &pinyin_table[6],    &pinyin_table[20],   &pinyin_table[356],  }, /* bin ao => bi nao */
-    { &pinyin_table[27],   &pinyin_table[125],  &pinyin_table[20],   &pinyin_table[357],  }, /* bin e => bi ne */
-    { &pinyin_table[27],   &pinyin_table[126],  &pinyin_table[20],   &pinyin_table[359],  }, /* bin ei => bi nei */
-    { &pinyin_table[27],   &pinyin_table[127],  &pinyin_table[20],   &pinyin_table[361],  }, /* bin en => bi nen */
-    { &pinyin_table[28],   &pinyin_table[125],  &pinyin_table[27],   &pinyin_table[164],  }, /* bing e => bin ge */
-    { &pinyin_table[28],   &pinyin_table[126],  &pinyin_table[27],   &pinyin_table[166],  }, /* bing ei => bin gei */
-    { &pinyin_table[36],   &pinyin_table[126],  &pinyin_table[32],   &pinyin_table[359],  }, /* can ei => ca nei */
-    { &pinyin_table[37],   &pinyin_table[4],    &pinyin_table[36],   &pinyin_table[161],  }, /* cang an => can gan */
-    { &pinyin_table[37],   &pinyin_table[5],    &pinyin_table[36],   &pinyin_table[162],  }, /* cang ang => can gang */
-    { &pinyin_table[37],   &pinyin_table[125],  &pinyin_table[36],   &pinyin_table[164],  }, /* cang e => can ge */
-    { &pinyin_table[37],   &pinyin_table[126],  &pinyin_table[36],   &pinyin_table[166],  }, /* cang ei => can gei */
-    { &pinyin_table[37],   &pinyin_table[127],  &pinyin_table[36],   &pinyin_table[168],  }, /* cang en => can gen */
-    { &pinyin_table[37],   &pinyin_table[392],  &pinyin_table[36],   &pinyin_table[173],  }, /* cang ou => can gou */
-    { &pinyin_table[42],   &pinyin_table[0],    &pinyin_table[39],   &pinyin_table[350],  }, /* cen a => ce na */
-    { &pinyin_table[42],   &pinyin_table[2],    &pinyin_table[39],   &pinyin_table[352],  }, /* cen ai => ce nai */
-    { &pinyin_table[42],   &pinyin_table[4],    &pinyin_table[39],   &pinyin_table[354],  }, /* cen an => ce nan */
-    { &pinyin_table[42],   &pinyin_table[5],    &pinyin_table[39],   &pinyin_table[355],  }, /* cen ang => ce nang */
-    { &pinyin_table[42],   &pinyin_table[6],    &pinyin_table[39],   &pinyin_table[356],  }, /* cen ao => ce nao */
-    { &pinyin_table[42],   &pinyin_table[125],  &pinyin_table[39],   &pinyin_table[357],  }, /* cen e => ce ne */
-    { &pinyin_table[42],   &pinyin_table[126],  &pinyin_table[39],   &pinyin_table[359],  }, /* cen ei => ce nei */
-    { &pinyin_table[42],   &pinyin_table[127],  &pinyin_table[39],   &pinyin_table[361],  }, /* cen en => ce nen */
-    { &pinyin_table[43],   &pinyin_table[126],  &pinyin_table[42],   &pinyin_table[166],  }, /* ceng ei => cen gei */
-    { &pinyin_table[49],   &pinyin_table[0],    &pinyin_table[45],   &pinyin_table[350],  }, /* chan a => cha na */
-    { &pinyin_table[49],   &pinyin_table[6],    &pinyin_table[45],   &pinyin_table[356],  }, /* chan ao => cha nao */
-    { &pinyin_table[49],   &pinyin_table[125],  &pinyin_table[45],   &pinyin_table[357],  }, /* chan e => cha ne */
-    { &pinyin_table[49],   &pinyin_table[126],  &pinyin_table[45],   &pinyin_table[359],  }, /* chan ei => cha nei */
-    { &pinyin_table[50],   &pinyin_table[5],    &pinyin_table[49],   &pinyin_table[162],  }, /* chang ang => chan gang */
-    { &pinyin_table[50],   &pinyin_table[6],    &pinyin_table[49],   &pinyin_table[163],  }, /* chang ao => chan gao */
-    { &pinyin_table[50],   &pinyin_table[126],  &pinyin_table[49],   &pinyin_table[166],  }, /* chang ei => chan gei */
-    { &pinyin_table[50],   &pinyin_table[127],  &pinyin_table[49],   &pinyin_table[168],  }, /* chang en => chan gen */
-    { &pinyin_table[50],   &pinyin_table[392],  &pinyin_table[49],   &pinyin_table[173],  }, /* chang ou => chan gou */
-    { &pinyin_table[55],   &pinyin_table[0],    &pinyin_table[52],   &pinyin_table[350],  }, /* chen a => che na */
-    { &pinyin_table[55],   &pinyin_table[4],    &pinyin_table[52],   &pinyin_table[354],  }, /* chen an => che nan */
-    { &pinyin_table[55],   &pinyin_table[5],    &pinyin_table[52],   &pinyin_table[355],  }, /* chen ang => che nang */
-    { &pinyin_table[55],   &pinyin_table[6],    &pinyin_table[52],   &pinyin_table[356],  }, /* chen ao => che nao */
-    { &pinyin_table[55],   &pinyin_table[125],  &pinyin_table[52],   &pinyin_table[357],  }, /* chen e => che ne */
-    { &pinyin_table[55],   &pinyin_table[126],  &pinyin_table[52],   &pinyin_table[359],  }, /* chen ei => che nei */
-    { &pinyin_table[56],   &pinyin_table[5],    &pinyin_table[55],   &pinyin_table[162],  }, /* cheng ang => chen gang */
-    { &pinyin_table[56],   &pinyin_table[6],    &pinyin_table[55],   &pinyin_table[163],  }, /* cheng ao => chen gao */
-    { &pinyin_table[56],   &pinyin_table[126],  &pinyin_table[55],   &pinyin_table[166],  }, /* cheng ei => chen gei */
-    { &pinyin_table[56],   &pinyin_table[392],  &pinyin_table[55],   &pinyin_table[173],  }, /* cheng ou => chen gou */
-    { &pinyin_table[67],   &pinyin_table[4],    &pinyin_table[66],   &pinyin_table[161],  }, /* chuang an => chuan gan */
-    { &pinyin_table[67],   &pinyin_table[5],    &pinyin_table[66],   &pinyin_table[162],  }, /* chuang ang => chuan gang */
-    { &pinyin_table[67],   &pinyin_table[6],    &pinyin_table[66],   &pinyin_table[163],  }, /* chuang ao => chuan gao */
-    { &pinyin_table[67],   &pinyin_table[125],  &pinyin_table[66],   &pinyin_table[164],  }, /* chuang e => chuan ge */
-    { &pinyin_table[67],   &pinyin_table[126],  &pinyin_table[66],   &pinyin_table[166],  }, /* chuang ei => chuan gei */
-    { &pinyin_table[67],   &pinyin_table[127],  &pinyin_table[66],   &pinyin_table[168],  }, /* chuang en => chuan gen */
-    { &pinyin_table[67],   &pinyin_table[392],  &pinyin_table[66],   &pinyin_table[173],  }, /* chuang ou => chuan gou */
-    { &pinyin_table[71],   &pinyin_table[0],    &pinyin_table[62],   &pinyin_table[350],  }, /* chun a => chu na */
-    { &pinyin_table[71],   &pinyin_table[4],    &pinyin_table[62],   &pinyin_table[354],  }, /* chun an => chu nan */
-    { &pinyin_table[71],   &pinyin_table[5],    &pinyin_table[62],   &pinyin_table[355],  }, /* chun ang => chu nang */
-    { &pinyin_table[71],   &pinyin_table[6],    &pinyin_table[62],   &pinyin_table[356],  }, /* chun ao => chu nao */
-    { &pinyin_table[71],   &pinyin_table[125],  &pinyin_table[62],   &pinyin_table[357],  }, /* chun e => chu ne */
-    { &pinyin_table[71],   &pinyin_table[126],  &pinyin_table[62],   &pinyin_table[359],  }, /* chun ei => chu nei */
-    { &pinyin_table[81],   &pinyin_table[0],    &pinyin_table[80],   &pinyin_table[157],  }, /* cuang a => cuan ga */
-    { &pinyin_table[81],   &pinyin_table[2],    &pinyin_table[80],   &pinyin_table[159],  }, /* cuang ai => cuan gai */
-    { &pinyin_table[81],   &pinyin_table[4],    &pinyin_table[80],   &pinyin_table[161],  }, /* cuang an => cuan gan */
-    { &pinyin_table[81],   &pinyin_table[5],    &pinyin_table[80],   &pinyin_table[162],  }, /* cuang ang => cuan gang */
-    { &pinyin_table[81],   &pinyin_table[6],    &pinyin_table[80],   &pinyin_table[163],  }, /* cuang ao => cuan gao */
-    { &pinyin_table[81],   &pinyin_table[125],  &pinyin_table[80],   &pinyin_table[164],  }, /* cuang e => cuan ge */
-    { &pinyin_table[81],   &pinyin_table[126],  &pinyin_table[80],   &pinyin_table[166],  }, /* cuang ei => cuan gei */
-    { &pinyin_table[81],   &pinyin_table[127],  &pinyin_table[80],   &pinyin_table[168],  }, /* cuang en => cuan gen */
-    { &pinyin_table[81],   &pinyin_table[392],  &pinyin_table[80],   &pinyin_table[173],  }, /* cuang ou => cuan gou */
-    { &pinyin_table[85],   &pinyin_table[125],  &pinyin_table[78],   &pinyin_table[357],  }, /* cun e => cu ne */
-    { &pinyin_table[85],   &pinyin_table[126],  &pinyin_table[78],   &pinyin_table[359],  }, /* cun ei => cu nei */
-    { &pinyin_table[92],   &pinyin_table[0],    &pinyin_table[88],   &pinyin_table[350],  }, /* dan a => da na */
-    { &pinyin_table[92],   &pinyin_table[2],    &pinyin_table[88],   &pinyin_table[352],  }, /* dan ai => da nai */
-    { &pinyin_table[92],   &pinyin_table[4],    &pinyin_table[88],   &pinyin_table[354],  }, /* dan an => da nan */
-    { &pinyin_table[92],   &pinyin_table[5],    &pinyin_table[88],   &pinyin_table[355],  }, /* dan ang => da nang */
-    { &pinyin_table[92],   &pinyin_table[6],    &pinyin_table[88],   &pinyin_table[356],  }, /* dan ao => da nao */
-    { &pinyin_table[92],   &pinyin_table[125],  &pinyin_table[88],   &pinyin_table[357],  }, /* dan e => da ne */
-    { &pinyin_table[92],   &pinyin_table[126],  &pinyin_table[88],   &pinyin_table[359],  }, /* dan ei => da nei */
-    { &pinyin_table[93],   &pinyin_table[2],    &pinyin_table[92],   &pinyin_table[159],  }, /* dang ai => dan gai */
-    { &pinyin_table[93],   &pinyin_table[5],    &pinyin_table[92],   &pinyin_table[162],  }, /* dang ang => dan gang */
-    { &pinyin_table[93],   &pinyin_table[6],    &pinyin_table[92],   &pinyin_table[163],  }, /* dang ao => dan gao */
-    { &pinyin_table[93],   &pinyin_table[125],  &pinyin_table[92],   &pinyin_table[164],  }, /* dang e => dan ge */
-    { &pinyin_table[93],   &pinyin_table[126],  &pinyin_table[92],   &pinyin_table[166],  }, /* dang ei => dan gei */
-    { &pinyin_table[93],   &pinyin_table[127],  &pinyin_table[92],   &pinyin_table[168],  }, /* dang en => dan gen */
-    { &pinyin_table[99],   &pinyin_table[0],    &pinyin_table[95],   &pinyin_table[350],  }, /* den a => de na */
-    { &pinyin_table[99],   &pinyin_table[2],    &pinyin_table[95],   &pinyin_table[352],  }, /* den ai => de nai */
-    { &pinyin_table[99],   &pinyin_table[4],    &pinyin_table[95],   &pinyin_table[354],  }, /* den an => de nan */
-    { &pinyin_table[99],   &pinyin_table[5],    &pinyin_table[95],   &pinyin_table[355],  }, /* den ang => de nang */
-    { &pinyin_table[99],   &pinyin_table[6],    &pinyin_table[95],   &pinyin_table[356],  }, /* den ao => de nao */
-    { &pinyin_table[99],   &pinyin_table[125],  &pinyin_table[95],   &pinyin_table[357],  }, /* den e => de ne */
-    { &pinyin_table[99],   &pinyin_table[126],  &pinyin_table[95],   &pinyin_table[359],  }, /* den ei => de nei */
-    { &pinyin_table[99],   &pinyin_table[127],  &pinyin_table[95],   &pinyin_table[361],  }, /* den en => de nen */
-    { &pinyin_table[99],   &pinyin_table[392],  &pinyin_table[95],   &pinyin_table[381],  }, /* den ou => de nou */
-    { &pinyin_table[104],  &pinyin_table[0],    &pinyin_table[103],  &pinyin_table[157],  }, /* diang a => dian ga */
-    { &pinyin_table[104],  &pinyin_table[2],    &pinyin_table[103],  &pinyin_table[159],  }, /* diang ai => dian gai */
-    { &pinyin_table[104],  &pinyin_table[4],    &pinyin_table[103],  &pinyin_table[161],  }, /* diang an => dian gan */
-    { &pinyin_table[104],  &pinyin_table[5],    &pinyin_table[103],  &pinyin_table[162],  }, /* diang ang => dian gang */
-    { &pinyin_table[104],  &pinyin_table[6],    &pinyin_table[103],  &pinyin_table[163],  }, /* diang ao => dian gao */
-    { &pinyin_table[104],  &pinyin_table[125],  &pinyin_table[103],  &pinyin_table[164],  }, /* diang e => dian ge */
-    { &pinyin_table[104],  &pinyin_table[126],  &pinyin_table[103],  &pinyin_table[166],  }, /* diang ei => dian gei */
-    { &pinyin_table[104],  &pinyin_table[127],  &pinyin_table[103],  &pinyin_table[168],  }, /* diang en => dian gen */
-    { &pinyin_table[104],  &pinyin_table[392],  &pinyin_table[103],  &pinyin_table[173],  }, /* diang ou => dian gou */
-    { &pinyin_table[106],  &pinyin_table[448],  &pinyin_table[101],  &pinyin_table[128],  }, /* die r => di er */
-    { &pinyin_table[109],  &pinyin_table[0],    &pinyin_table[101],  &pinyin_table[350],  }, /* din a => di na */
-    { &pinyin_table[109],  &pinyin_table[2],    &pinyin_table[101],  &pinyin_table[352],  }, /* din ai => di nai */
-    { &pinyin_table[109],  &pinyin_table[4],    &pinyin_table[101],  &pinyin_table[354],  }, /* din an => di nan */
-    { &pinyin_table[109],  &pinyin_table[5],    &pinyin_table[101],  &pinyin_table[355],  }, /* din ang => di nang */
-    { &pinyin_table[109],  &pinyin_table[6],    &pinyin_table[101],  &pinyin_table[356],  }, /* din ao => di nao */
-    { &pinyin_table[109],  &pinyin_table[125],  &pinyin_table[101],  &pinyin_table[357],  }, /* din e => di ne */
-    { &pinyin_table[109],  &pinyin_table[126],  &pinyin_table[101],  &pinyin_table[359],  }, /* din ei => di nei */
-    { &pinyin_table[109],  &pinyin_table[127],  &pinyin_table[101],  &pinyin_table[361],  }, /* din en => di nen */
-    { &pinyin_table[109],  &pinyin_table[392],  &pinyin_table[101],  &pinyin_table[381],  }, /* din ou => di nou */
-    { &pinyin_table[119],  &pinyin_table[0],    &pinyin_table[118],  &pinyin_table[157],  }, /* duang a => duan ga */
-    { &pinyin_table[119],  &pinyin_table[2],    &pinyin_table[118],  &pinyin_table[159],  }, /* duang ai => duan gai */
-    { &pinyin_table[119],  &pinyin_table[4],    &pinyin_table[118],  &pinyin_table[161],  }, /* duang an => duan gan */
-    { &pinyin_table[119],  &pinyin_table[5],    &pinyin_table[118],  &pinyin_table[162],  }, /* duang ang => duan gang */
-    { &pinyin_table[119],  &pinyin_table[6],    &pinyin_table[118],  &pinyin_table[163],  }, /* duang ao => duan gao */
-    { &pinyin_table[119],  &pinyin_table[125],  &pinyin_table[118],  &pinyin_table[164],  }, /* duang e => duan ge */
-    { &pinyin_table[119],  &pinyin_table[126],  &pinyin_table[118],  &pinyin_table[166],  }, /* duang ei => duan gei */
-    { &pinyin_table[119],  &pinyin_table[127],  &pinyin_table[118],  &pinyin_table[168],  }, /* duang en => duan gen */
-    { &pinyin_table[119],  &pinyin_table[392],  &pinyin_table[118],  &pinyin_table[173],  }, /* duang ou => duan gou */
-    { &pinyin_table[123],  &pinyin_table[0],    &pinyin_table[117],  &pinyin_table[350],  }, /* dun a => du na */
-    { &pinyin_table[123],  &pinyin_table[4],    &pinyin_table[117],  &pinyin_table[354],  }, /* dun an => du nan */
-    { &pinyin_table[123],  &pinyin_table[5],    &pinyin_table[117],  &pinyin_table[355],  }, /* dun ang => du nang */
-    { &pinyin_table[123],  &pinyin_table[6],    &pinyin_table[117],  &pinyin_table[356],  }, /* dun ao => du nao */
-    { &pinyin_table[123],  &pinyin_table[125],  &pinyin_table[117],  &pinyin_table[357],  }, /* dun e => du ne */
-    { &pinyin_table[123],  &pinyin_table[126],  &pinyin_table[117],  &pinyin_table[359],  }, /* dun ei => du nei */
-    { &pinyin_table[127],  &pinyin_table[4],    &pinyin_table[125],  &pinyin_table[354],  }, /* en an => e nan */
-    { &pinyin_table[127],  &pinyin_table[5],    &pinyin_table[125],  &pinyin_table[355],  }, /* en ang => e nang */
-    { &pinyin_table[127],  &pinyin_table[6],    &pinyin_table[125],  &pinyin_table[356],  }, /* en ao => e nao */
-    { &pinyin_table[127],  &pinyin_table[125],  &pinyin_table[125],  &pinyin_table[357],  }, /* en e => e ne */
-    { &pinyin_table[127],  &pinyin_table[126],  &pinyin_table[125],  &pinyin_table[359],  }, /* en ei => e nei */
-    { &pinyin_table[128],  &pinyin_table[4],    &pinyin_table[125],  &pinyin_table[453],  }, /* er an => e ran */
-    { &pinyin_table[128],  &pinyin_table[5],    &pinyin_table[125],  &pinyin_table[454],  }, /* er ang => e rang */
-    { &pinyin_table[128],  &pinyin_table[127],  &pinyin_table[125],  &pinyin_table[460],  }, /* er en => e ren */
-    { &pinyin_table[128],  &pinyin_table[392],  &pinyin_table[125],  &pinyin_table[476],  }, /* er ou => e rou */
-    { &pinyin_table[134],  &pinyin_table[5],    &pinyin_table[130],  &pinyin_table[355],  }, /* fan ang => fa nang */
-    { &pinyin_table[134],  &pinyin_table[6],    &pinyin_table[130],  &pinyin_table[356],  }, /* fan ao => fa nao */
-    { &pinyin_table[134],  &pinyin_table[126],  &pinyin_table[130],  &pinyin_table[359],  }, /* fan ei => fa nei */
-    { &pinyin_table[135],  &pinyin_table[5],    &pinyin_table[134],  &pinyin_table[162],  }, /* fang ang => fan gang */
-    { &pinyin_table[135],  &pinyin_table[6],    &pinyin_table[134],  &pinyin_table[163],  }, /* fang ao => fan gao */
-    { &pinyin_table[135],  &pinyin_table[125],  &pinyin_table[134],  &pinyin_table[164],  }, /* fang e => fan ge */
-    { &pinyin_table[135],  &pinyin_table[126],  &pinyin_table[134],  &pinyin_table[166],  }, /* fang ei => fan gei */
-    { &pinyin_table[135],  &pinyin_table[127],  &pinyin_table[134],  &pinyin_table[168],  }, /* fang en => fan gen */
-    { &pinyin_table[142],  &pinyin_table[5],    &pinyin_table[141],  &pinyin_table[162],  }, /* feng ang => fen gang */
-    { &pinyin_table[142],  &pinyin_table[6],    &pinyin_table[141],  &pinyin_table[163],  }, /* feng ao => fen gao */
-    { &pinyin_table[142],  &pinyin_table[125],  &pinyin_table[141],  &pinyin_table[164],  }, /* feng e => fen ge */
-    { &pinyin_table[142],  &pinyin_table[126],  &pinyin_table[141],  &pinyin_table[166],  }, /* feng ei => fen gei */
-    { &pinyin_table[142],  &pinyin_table[127],  &pinyin_table[141],  &pinyin_table[168],  }, /* feng en => fen gen */
-    { &pinyin_table[142],  &pinyin_table[392],  &pinyin_table[141],  &pinyin_table[173],  }, /* feng ou => fen gou */
-    { &pinyin_table[154],  &pinyin_table[0],    &pinyin_table[146],  &pinyin_table[350],  }, /* fun a => fu na */
-    { &pinyin_table[154],  &pinyin_table[2],    &pinyin_table[146],  &pinyin_table[352],  }, /* fun ai => fu nai */
-    { &pinyin_table[154],  &pinyin_table[4],    &pinyin_table[146],  &pinyin_table[354],  }, /* fun an => fu nan */
-    { &pinyin_table[154],  &pinyin_table[5],    &pinyin_table[146],  &pinyin_table[355],  }, /* fun ang => fu nang */
-    { &pinyin_table[154],  &pinyin_table[6],    &pinyin_table[146],  &pinyin_table[356],  }, /* fun ao => fu nao */
-    { &pinyin_table[154],  &pinyin_table[125],  &pinyin_table[146],  &pinyin_table[357],  }, /* fun e => fu ne */
-    { &pinyin_table[154],  &pinyin_table[126],  &pinyin_table[146],  &pinyin_table[359],  }, /* fun ei => fu nei */
-    { &pinyin_table[154],  &pinyin_table[127],  &pinyin_table[146],  &pinyin_table[361],  }, /* fun en => fu nen */
-    { &pinyin_table[154],  &pinyin_table[392],  &pinyin_table[146],  &pinyin_table[381],  }, /* fun ou => fu nou */
-    { &pinyin_table[161],  &pinyin_table[125],  &pinyin_table[157],  &pinyin_table[357],  }, /* gan e => ga ne */
-    { &pinyin_table[161],  &pinyin_table[126],  &pinyin_table[157],  &pinyin_table[359],  }, /* gan ei => ga nei */
-    { &pinyin_table[162],  &pinyin_table[0],    &pinyin_table[161],  &pinyin_table[157],  }, /* gang a => gan ga */
-    { &pinyin_table[162],  &pinyin_table[2],    &pinyin_table[161],  &pinyin_table[159],  }, /* gang ai => gan gai */
-    { &pinyin_table[162],  &pinyin_table[4],    &pinyin_table[161],  &pinyin_table[161],  }, /* gang an => gan gan */
-    { &pinyin_table[162],  &pinyin_table[5],    &pinyin_table[161],  &pinyin_table[162],  }, /* gang ang => gan gang */
-    { &pinyin_table[162],  &pinyin_table[125],  &pinyin_table[161],  &pinyin_table[164],  }, /* gang e => gan ge */
-    { &pinyin_table[162],  &pinyin_table[126],  &pinyin_table[161],  &pinyin_table[166],  }, /* gang ei => gan gei */
-    { &pinyin_table[162],  &pinyin_table[127],  &pinyin_table[161],  &pinyin_table[168],  }, /* gang en => gan gen */
-    { &pinyin_table[162],  &pinyin_table[392],  &pinyin_table[161],  &pinyin_table[173],  }, /* gang ou => gan gou */
-    { &pinyin_table[168],  &pinyin_table[0],    &pinyin_table[164],  &pinyin_table[350],  }, /* gen a => ge na */
-    { &pinyin_table[168],  &pinyin_table[4],    &pinyin_table[164],  &pinyin_table[354],  }, /* gen an => ge nan */
-    { &pinyin_table[168],  &pinyin_table[5],    &pinyin_table[164],  &pinyin_table[355],  }, /* gen ang => ge nang */
-    { &pinyin_table[168],  &pinyin_table[6],    &pinyin_table[164],  &pinyin_table[356],  }, /* gen ao => ge nao */
-    { &pinyin_table[168],  &pinyin_table[125],  &pinyin_table[164],  &pinyin_table[357],  }, /* gen e => ge ne */
-    { &pinyin_table[168],  &pinyin_table[126],  &pinyin_table[164],  &pinyin_table[359],  }, /* gen ei => ge nei */
-    { &pinyin_table[169],  &pinyin_table[5],    &pinyin_table[168],  &pinyin_table[162],  }, /* geng ang => gen gang */
-    { &pinyin_table[169],  &pinyin_table[6],    &pinyin_table[168],  &pinyin_table[163],  }, /* geng ao => gen gao */
-    { &pinyin_table[169],  &pinyin_table[125],  &pinyin_table[168],  &pinyin_table[164],  }, /* geng e => gen ge */
-    { &pinyin_table[169],  &pinyin_table[126],  &pinyin_table[168],  &pinyin_table[166],  }, /* geng ei => gen gei */
-    { &pinyin_table[169],  &pinyin_table[127],  &pinyin_table[168],  &pinyin_table[168],  }, /* geng en => gen gen */
-    { &pinyin_table[169],  &pinyin_table[392],  &pinyin_table[168],  &pinyin_table[173],  }, /* geng ou => gen gou */
-    { &pinyin_table[179],  &pinyin_table[126],  &pinyin_table[175],  &pinyin_table[359],  }, /* guan ei => gua nei */
-    { &pinyin_table[180],  &pinyin_table[2],    &pinyin_table[179],  &pinyin_table[159],  }, /* guang ai => guan gai */
-    { &pinyin_table[180],  &pinyin_table[5],    &pinyin_table[179],  &pinyin_table[162],  }, /* guang ang => guan gang */
-    { &pinyin_table[180],  &pinyin_table[6],    &pinyin_table[179],  &pinyin_table[163],  }, /* guang ao => guan gao */
-    { &pinyin_table[180],  &pinyin_table[125],  &pinyin_table[179],  &pinyin_table[164],  }, /* guang e => guan ge */
-    { &pinyin_table[180],  &pinyin_table[126],  &pinyin_table[179],  &pinyin_table[166],  }, /* guang ei => guan gei */
-    { &pinyin_table[180],  &pinyin_table[127],  &pinyin_table[179],  &pinyin_table[168],  }, /* guang en => guan gen */
-    { &pinyin_table[184],  &pinyin_table[4],    &pinyin_table[174],  &pinyin_table[354],  }, /* gun an => gu nan */
-    { &pinyin_table[184],  &pinyin_table[5],    &pinyin_table[174],  &pinyin_table[355],  }, /* gun ang => gu nang */
-    { &pinyin_table[184],  &pinyin_table[6],    &pinyin_table[174],  &pinyin_table[356],  }, /* gun ao => gu nao */
-    { &pinyin_table[184],  &pinyin_table[125],  &pinyin_table[174],  &pinyin_table[357],  }, /* gun e => gu ne */
-    { &pinyin_table[184],  &pinyin_table[126],  &pinyin_table[174],  &pinyin_table[359],  }, /* gun ei => gu nei */
-    { &pinyin_table[191],  &pinyin_table[5],    &pinyin_table[187],  &pinyin_table[355],  }, /* han ang => ha nang */
-    { &pinyin_table[191],  &pinyin_table[6],    &pinyin_table[187],  &pinyin_table[356],  }, /* han ao => ha nao */
-    { &pinyin_table[191],  &pinyin_table[126],  &pinyin_table[187],  &pinyin_table[359],  }, /* han ei => ha nei */
-    { &pinyin_table[192],  &pinyin_table[2],    &pinyin_table[191],  &pinyin_table[159],  }, /* hang ai => han gai */
-    { &pinyin_table[192],  &pinyin_table[5],    &pinyin_table[191],  &pinyin_table[162],  }, /* hang ang => han gang */
-    { &pinyin_table[192],  &pinyin_table[6],    &pinyin_table[191],  &pinyin_table[163],  }, /* hang ao => han gao */
-    { &pinyin_table[192],  &pinyin_table[125],  &pinyin_table[191],  &pinyin_table[164],  }, /* hang e => han ge */
-    { &pinyin_table[192],  &pinyin_table[126],  &pinyin_table[191],  &pinyin_table[166],  }, /* hang ei => han gei */
-    { &pinyin_table[192],  &pinyin_table[127],  &pinyin_table[191],  &pinyin_table[168],  }, /* hang en => han gen */
-    { &pinyin_table[192],  &pinyin_table[392],  &pinyin_table[191],  &pinyin_table[173],  }, /* hang ou => han gou */
-    { &pinyin_table[198],  &pinyin_table[0],    &pinyin_table[194],  &pinyin_table[350],  }, /* hen a => he na */
-    { &pinyin_table[198],  &pinyin_table[4],    &pinyin_table[194],  &pinyin_table[354],  }, /* hen an => he nan */
-    { &pinyin_table[198],  &pinyin_table[5],    &pinyin_table[194],  &pinyin_table[355],  }, /* hen ang => he nang */
-    { &pinyin_table[198],  &pinyin_table[6],    &pinyin_table[194],  &pinyin_table[356],  }, /* hen ao => he nao */
-    { &pinyin_table[198],  &pinyin_table[126],  &pinyin_table[194],  &pinyin_table[359],  }, /* hen ei => he nei */
-    { &pinyin_table[199],  &pinyin_table[2],    &pinyin_table[198],  &pinyin_table[159],  }, /* heng ai => hen gai */
-    { &pinyin_table[199],  &pinyin_table[4],    &pinyin_table[198],  &pinyin_table[161],  }, /* heng an => hen gan */
-    { &pinyin_table[199],  &pinyin_table[5],    &pinyin_table[198],  &pinyin_table[162],  }, /* heng ang => hen gang */
-    { &pinyin_table[199],  &pinyin_table[6],    &pinyin_table[198],  &pinyin_table[163],  }, /* heng ao => hen gao */
-    { &pinyin_table[199],  &pinyin_table[126],  &pinyin_table[198],  &pinyin_table[166],  }, /* heng ei => hen gei */
-    { &pinyin_table[199],  &pinyin_table[127],  &pinyin_table[198],  &pinyin_table[168],  }, /* heng en => hen gen */
-    { &pinyin_table[199],  &pinyin_table[392],  &pinyin_table[198],  &pinyin_table[173],  }, /* heng ou => hen gou */
-    { &pinyin_table[210],  &pinyin_table[0],    &pinyin_table[206],  &pinyin_table[350],  }, /* huan a => hua na */
-    { &pinyin_table[210],  &pinyin_table[4],    &pinyin_table[206],  &pinyin_table[354],  }, /* huan an => hua nan */
-    { &pinyin_table[210],  &pinyin_table[5],    &pinyin_table[206],  &pinyin_table[355],  }, /* huan ang => hua nang */
-    { &pinyin_table[210],  &pinyin_table[6],    &pinyin_table[206],  &pinyin_table[356],  }, /* huan ao => hua nao */
-    { &pinyin_table[210],  &pinyin_table[125],  &pinyin_table[206],  &pinyin_table[357],  }, /* huan e => hua ne */
-    { &pinyin_table[210],  &pinyin_table[126],  &pinyin_table[206],  &pinyin_table[359],  }, /* huan ei => hua nei */
-    { &pinyin_table[210],  &pinyin_table[127],  &pinyin_table[206],  &pinyin_table[361],  }, /* huan en => hua nen */
-    { &pinyin_table[211],  &pinyin_table[2],    &pinyin_table[210],  &pinyin_table[159],  }, /* huang ai => huan gai */
-    { &pinyin_table[211],  &pinyin_table[5],    &pinyin_table[210],  &pinyin_table[162],  }, /* huang ang => huan gang */
-    { &pinyin_table[211],  &pinyin_table[6],    &pinyin_table[210],  &pinyin_table[163],  }, /* huang ao => huan gao */
-    { &pinyin_table[211],  &pinyin_table[125],  &pinyin_table[210],  &pinyin_table[164],  }, /* huang e => huan ge */
-    { &pinyin_table[211],  &pinyin_table[126],  &pinyin_table[210],  &pinyin_table[166],  }, /* huang ei => huan gei */
-    { &pinyin_table[211],  &pinyin_table[392],  &pinyin_table[210],  &pinyin_table[173],  }, /* huang ou => huan gou */
-    { &pinyin_table[215],  &pinyin_table[4],    &pinyin_table[205],  &pinyin_table[354],  }, /* hun an => hu nan */
-    { &pinyin_table[215],  &pinyin_table[5],    &pinyin_table[205],  &pinyin_table[355],  }, /* hun ang => hu nang */
-    { &pinyin_table[215],  &pinyin_table[6],    &pinyin_table[205],  &pinyin_table[356],  }, /* hun ao => hu nao */
-    { &pinyin_table[215],  &pinyin_table[126],  &pinyin_table[205],  &pinyin_table[359],  }, /* hun ei => hu nei */
-    { &pinyin_table[222],  &pinyin_table[0],    &pinyin_table[219],  &pinyin_table[350],  }, /* jian a => jia na */
-    { &pinyin_table[222],  &pinyin_table[2],    &pinyin_table[219],  &pinyin_table[352],  }, /* jian ai => jia nai */
-    { &pinyin_table[222],  &pinyin_table[5],    &pinyin_table[219],  &pinyin_table[355],  }, /* jian ang => jia nang */
-    { &pinyin_table[222],  &pinyin_table[125],  &pinyin_table[219],  &pinyin_table[357],  }, /* jian e => jia ne */
-    { &pinyin_table[222],  &pinyin_table[126],  &pinyin_table[219],  &pinyin_table[359],  }, /* jian ei => jia nei */
-    { &pinyin_table[223],  &pinyin_table[5],    &pinyin_table[222],  &pinyin_table[162],  }, /* jiang ang => jian gang */
-    { &pinyin_table[223],  &pinyin_table[6],    &pinyin_table[222],  &pinyin_table[163],  }, /* jiang ao => jian gao */
-    { &pinyin_table[223],  &pinyin_table[125],  &pinyin_table[222],  &pinyin_table[164],  }, /* jiang e => jian ge */
-    { &pinyin_table[223],  &pinyin_table[126],  &pinyin_table[222],  &pinyin_table[166],  }, /* jiang ei => jian gei */
-    { &pinyin_table[223],  &pinyin_table[392],  &pinyin_table[222],  &pinyin_table[173],  }, /* jiang ou => jian gou */
-    { &pinyin_table[225],  &pinyin_table[448],  &pinyin_table[218],  &pinyin_table[128],  }, /* jie r => ji er */
-    { &pinyin_table[228],  &pinyin_table[0],    &pinyin_table[218],  &pinyin_table[350],  }, /* jin a => ji na */
-    { &pinyin_table[228],  &pinyin_table[4],    &pinyin_table[218],  &pinyin_table[354],  }, /* jin an => ji nan */
-    { &pinyin_table[228],  &pinyin_table[5],    &pinyin_table[218],  &pinyin_table[355],  }, /* jin ang => ji nang */
-    { &pinyin_table[228],  &pinyin_table[6],    &pinyin_table[218],  &pinyin_table[356],  }, /* jin ao => ji nao */
-    { &pinyin_table[228],  &pinyin_table[126],  &pinyin_table[218],  &pinyin_table[359],  }, /* jin ei => ji nei */
-    { &pinyin_table[229],  &pinyin_table[5],    &pinyin_table[228],  &pinyin_table[162],  }, /* jing ang => jin gang */
-    { &pinyin_table[229],  &pinyin_table[6],    &pinyin_table[228],  &pinyin_table[163],  }, /* jing ao => jin gao */
-    { &pinyin_table[229],  &pinyin_table[126],  &pinyin_table[228],  &pinyin_table[166],  }, /* jing ei => jin gei */
-    { &pinyin_table[229],  &pinyin_table[127],  &pinyin_table[228],  &pinyin_table[168],  }, /* jing en => jin gen */
-    { &pinyin_table[229],  &pinyin_table[392],  &pinyin_table[228],  &pinyin_table[173],  }, /* jing ou => jin gou */
-    { &pinyin_table[237],  &pinyin_table[0],    &pinyin_table[236],  &pinyin_table[157],  }, /* juang a => juan ga */
-    { &pinyin_table[237],  &pinyin_table[2],    &pinyin_table[236],  &pinyin_table[159],  }, /* juang ai => juan gai */
-    { &pinyin_table[237],  &pinyin_table[4],    &pinyin_table[236],  &pinyin_table[161],  }, /* juang an => juan gan */
-    { &pinyin_table[237],  &pinyin_table[5],    &pinyin_table[236],  &pinyin_table[162],  }, /* juang ang => juan gang */
-    { &pinyin_table[237],  &pinyin_table[6],    &pinyin_table[236],  &pinyin_table[163],  }, /* juang ao => juan gao */
-    { &pinyin_table[237],  &pinyin_table[125],  &pinyin_table[236],  &pinyin_table[164],  }, /* juang e => juan ge */
-    { &pinyin_table[237],  &pinyin_table[126],  &pinyin_table[236],  &pinyin_table[166],  }, /* juang ei => juan gei */
-    { &pinyin_table[237],  &pinyin_table[127],  &pinyin_table[236],  &pinyin_table[168],  }, /* juang en => juan gen */
-    { &pinyin_table[237],  &pinyin_table[392],  &pinyin_table[236],  &pinyin_table[173],  }, /* juang ou => juan gou */
-    { &pinyin_table[238],  &pinyin_table[448],  &pinyin_table[235],  &pinyin_table[128],  }, /* jue r => ju er */
-    { &pinyin_table[239],  &pinyin_table[0],    &pinyin_table[238],  &pinyin_table[350],  }, /* juen a => jue na */
-    { &pinyin_table[239],  &pinyin_table[2],    &pinyin_table[238],  &pinyin_table[352],  }, /* juen ai => jue nai */
-    { &pinyin_table[239],  &pinyin_table[4],    &pinyin_table[238],  &pinyin_table[354],  }, /* juen an => jue nan */
-    { &pinyin_table[239],  &pinyin_table[5],    &pinyin_table[238],  &pinyin_table[355],  }, /* juen ang => jue nang */
-    { &pinyin_table[239],  &pinyin_table[6],    &pinyin_table[238],  &pinyin_table[356],  }, /* juen ao => jue nao */
-    { &pinyin_table[239],  &pinyin_table[125],  &pinyin_table[238],  &pinyin_table[357],  }, /* juen e => jue ne */
-    { &pinyin_table[239],  &pinyin_table[126],  &pinyin_table[238],  &pinyin_table[359],  }, /* juen ei => jue nei */
-    { &pinyin_table[239],  &pinyin_table[127],  &pinyin_table[238],  &pinyin_table[361],  }, /* juen en => jue nen */
-    { &pinyin_table[239],  &pinyin_table[392],  &pinyin_table[238],  &pinyin_table[381],  }, /* juen ou => jue nou */
-    { &pinyin_table[240],  &pinyin_table[0],    &pinyin_table[235],  &pinyin_table[350],  }, /* jun a => ju na */
-    { &pinyin_table[240],  &pinyin_table[2],    &pinyin_table[235],  &pinyin_table[352],  }, /* jun ai => ju nai */
-    { &pinyin_table[240],  &pinyin_table[125],  &pinyin_table[235],  &pinyin_table[357],  }, /* jun e => ju ne */
-    { &pinyin_table[240],  &pinyin_table[126],  &pinyin_table[235],  &pinyin_table[359],  }, /* jun ei => ju nei */
-    { &pinyin_table[252],  &pinyin_table[126],  &pinyin_table[248],  &pinyin_table[359],  }, /* kan ei => ka nei */
-    { &pinyin_table[253],  &pinyin_table[4],    &pinyin_table[252],  &pinyin_table[161],  }, /* kang an => kan gan */
-    { &pinyin_table[253],  &pinyin_table[5],    &pinyin_table[252],  &pinyin_table[162],  }, /* kang ang => kan gang */
-    { &pinyin_table[253],  &pinyin_table[6],    &pinyin_table[252],  &pinyin_table[163],  }, /* kang ao => kan gao */
-    { &pinyin_table[253],  &pinyin_table[125],  &pinyin_table[252],  &pinyin_table[164],  }, /* kang e => kan ge */
-    { &pinyin_table[253],  &pinyin_table[126],  &pinyin_table[252],  &pinyin_table[166],  }, /* kang ei => kan gei */
-    { &pinyin_table[253],  &pinyin_table[127],  &pinyin_table[252],  &pinyin_table[168],  }, /* kang en => kan gen */
-    { &pinyin_table[253],  &pinyin_table[392],  &pinyin_table[252],  &pinyin_table[173],  }, /* kang ou => kan gou */
-    { &pinyin_table[259],  &pinyin_table[0],    &pinyin_table[255],  &pinyin_table[350],  }, /* ken a => ke na */
-    { &pinyin_table[259],  &pinyin_table[2],    &pinyin_table[255],  &pinyin_table[352],  }, /* ken ai => ke nai */
-    { &pinyin_table[259],  &pinyin_table[4],    &pinyin_table[255],  &pinyin_table[354],  }, /* ken an => ke nan */
-    { &pinyin_table[259],  &pinyin_table[5],    &pinyin_table[255],  &pinyin_table[355],  }, /* ken ang => ke nang */
-    { &pinyin_table[259],  &pinyin_table[6],    &pinyin_table[255],  &pinyin_table[356],  }, /* ken ao => ke nao */
-    { &pinyin_table[259],  &pinyin_table[125],  &pinyin_table[255],  &pinyin_table[357],  }, /* ken e => ke ne */
-    { &pinyin_table[259],  &pinyin_table[126],  &pinyin_table[255],  &pinyin_table[359],  }, /* ken ei => ke nei */
-    { &pinyin_table[260],  &pinyin_table[2],    &pinyin_table[259],  &pinyin_table[159],  }, /* keng ai => ken gai */
-    { &pinyin_table[260],  &pinyin_table[4],    &pinyin_table[259],  &pinyin_table[161],  }, /* keng an => ken gan */
-    { &pinyin_table[260],  &pinyin_table[5],    &pinyin_table[259],  &pinyin_table[162],  }, /* keng ang => ken gang */
-    { &pinyin_table[260],  &pinyin_table[6],    &pinyin_table[259],  &pinyin_table[163],  }, /* keng ao => ken gao */
-    { &pinyin_table[260],  &pinyin_table[125],  &pinyin_table[259],  &pinyin_table[164],  }, /* keng e => ken ge */
-    { &pinyin_table[260],  &pinyin_table[126],  &pinyin_table[259],  &pinyin_table[166],  }, /* keng ei => ken gei */
-    { &pinyin_table[260],  &pinyin_table[127],  &pinyin_table[259],  &pinyin_table[168],  }, /* keng en => ken gen */
-    { &pinyin_table[260],  &pinyin_table[392],  &pinyin_table[259],  &pinyin_table[173],  }, /* keng ou => ken gou */
-    { &pinyin_table[270],  &pinyin_table[0],    &pinyin_table[266],  &pinyin_table[350],  }, /* kuan a => kua na */
-    { &pinyin_table[270],  &pinyin_table[126],  &pinyin_table[266],  &pinyin_table[359],  }, /* kuan ei => kua nei */
-    { &pinyin_table[271],  &pinyin_table[5],    &pinyin_table[270],  &pinyin_table[162],  }, /* kuang ang => kuan gang */
-    { &pinyin_table[271],  &pinyin_table[125],  &pinyin_table[270],  &pinyin_table[164],  }, /* kuang e => kuan ge */
-    { &pinyin_table[271],  &pinyin_table[126],  &pinyin_table[270],  &pinyin_table[166],  }, /* kuang ei => kuan gei */
-    { &pinyin_table[271],  &pinyin_table[127],  &pinyin_table[270],  &pinyin_table[168],  }, /* kuang en => kuan gen */
-    { &pinyin_table[275],  &pinyin_table[4],    &pinyin_table[265],  &pinyin_table[354],  }, /* kun an => ku nan */
-    { &pinyin_table[275],  &pinyin_table[5],    &pinyin_table[265],  &pinyin_table[355],  }, /* kun ang => ku nang */
-    { &pinyin_table[275],  &pinyin_table[6],    &pinyin_table[265],  &pinyin_table[356],  }, /* kun ao => ku nao */
-    { &pinyin_table[275],  &pinyin_table[125],  &pinyin_table[265],  &pinyin_table[357],  }, /* kun e => ku ne */
-    { &pinyin_table[275],  &pinyin_table[126],  &pinyin_table[265],  &pinyin_table[359],  }, /* kun ei => ku nei */
-    { &pinyin_table[282],  &pinyin_table[0],    &pinyin_table[278],  &pinyin_table[350],  }, /* lan a => la na */
-    { &pinyin_table[282],  &pinyin_table[4],    &pinyin_table[278],  &pinyin_table[354],  }, /* lan an => la nan */
-    { &pinyin_table[282],  &pinyin_table[5],    &pinyin_table[278],  &pinyin_table[355],  }, /* lan ang => la nang */
-    { &pinyin_table[282],  &pinyin_table[6],    &pinyin_table[278],  &pinyin_table[356],  }, /* lan ao => la nao */
-    { &pinyin_table[282],  &pinyin_table[125],  &pinyin_table[278],  &pinyin_table[357],  }, /* lan e => la ne */
-    { &pinyin_table[282],  &pinyin_table[126],  &pinyin_table[278],  &pinyin_table[359],  }, /* lan ei => la nei */
-    { &pinyin_table[283],  &pinyin_table[4],    &pinyin_table[282],  &pinyin_table[161],  }, /* lang an => lan gan */
-    { &pinyin_table[283],  &pinyin_table[5],    &pinyin_table[282],  &pinyin_table[162],  }, /* lang ang => lan gang */
-    { &pinyin_table[283],  &pinyin_table[6],    &pinyin_table[282],  &pinyin_table[163],  }, /* lang ao => lan gao */
-    { &pinyin_table[283],  &pinyin_table[125],  &pinyin_table[282],  &pinyin_table[164],  }, /* lang e => lan ge */
-    { &pinyin_table[283],  &pinyin_table[126],  &pinyin_table[282],  &pinyin_table[166],  }, /* lang ei => lan gei */
-    { &pinyin_table[283],  &pinyin_table[127],  &pinyin_table[282],  &pinyin_table[168],  }, /* lang en => lan gen */
-    { &pinyin_table[283],  &pinyin_table[392],  &pinyin_table[282],  &pinyin_table[173],  }, /* lang ou => lan gou */
-    { &pinyin_table[289],  &pinyin_table[0],    &pinyin_table[285],  &pinyin_table[350],  }, /* len a => le na */
-    { &pinyin_table[289],  &pinyin_table[2],    &pinyin_table[285],  &pinyin_table[352],  }, /* len ai => le nai */
-    { &pinyin_table[289],  &pinyin_table[4],    &pinyin_table[285],  &pinyin_table[354],  }, /* len an => le nan */
-    { &pinyin_table[289],  &pinyin_table[5],    &pinyin_table[285],  &pinyin_table[355],  }, /* len ang => le nang */
-    { &pinyin_table[289],  &pinyin_table[6],    &pinyin_table[285],  &pinyin_table[356],  }, /* len ao => le nao */
-    { &pinyin_table[289],  &pinyin_table[125],  &pinyin_table[285],  &pinyin_table[357],  }, /* len e => le ne */
-    { &pinyin_table[289],  &pinyin_table[126],  &pinyin_table[285],  &pinyin_table[359],  }, /* len ei => le nei */
-    { &pinyin_table[289],  &pinyin_table[127],  &pinyin_table[285],  &pinyin_table[361],  }, /* len en => le nen */
-    { &pinyin_table[289],  &pinyin_table[392],  &pinyin_table[285],  &pinyin_table[381],  }, /* len ou => le nou */
-    { &pinyin_table[295],  &pinyin_table[126],  &pinyin_table[292],  &pinyin_table[359],  }, /* lian ei => lia nei */
-    { &pinyin_table[296],  &pinyin_table[5],    &pinyin_table[295],  &pinyin_table[162],  }, /* liang ang => lian gang */
-    { &pinyin_table[296],  &pinyin_table[6],    &pinyin_table[295],  &pinyin_table[163],  }, /* liang ao => lian gao */
-    { &pinyin_table[296],  &pinyin_table[125],  &pinyin_table[295],  &pinyin_table[164],  }, /* liang e => lian ge */
-    { &pinyin_table[296],  &pinyin_table[126],  &pinyin_table[295],  &pinyin_table[166],  }, /* liang ei => lian gei */
-    { &pinyin_table[296],  &pinyin_table[127],  &pinyin_table[295],  &pinyin_table[168],  }, /* liang en => lian gen */
-    { &pinyin_table[296],  &pinyin_table[392],  &pinyin_table[295],  &pinyin_table[173],  }, /* liang ou => lian gou */
-    { &pinyin_table[298],  &pinyin_table[448],  &pinyin_table[291],  &pinyin_table[128],  }, /* lie r => li er */
-    { &pinyin_table[301],  &pinyin_table[0],    &pinyin_table[291],  &pinyin_table[350],  }, /* lin a => li na */
-    { &pinyin_table[301],  &pinyin_table[4],    &pinyin_table[291],  &pinyin_table[354],  }, /* lin an => li nan */
-    { &pinyin_table[301],  &pinyin_table[5],    &pinyin_table[291],  &pinyin_table[355],  }, /* lin ang => li nang */
-    { &pinyin_table[301],  &pinyin_table[6],    &pinyin_table[291],  &pinyin_table[356],  }, /* lin ao => li nao */
-    { &pinyin_table[301],  &pinyin_table[125],  &pinyin_table[291],  &pinyin_table[357],  }, /* lin e => li ne */
-    { &pinyin_table[301],  &pinyin_table[126],  &pinyin_table[291],  &pinyin_table[359],  }, /* lin ei => li nei */
-    { &pinyin_table[302],  &pinyin_table[5],    &pinyin_table[301],  &pinyin_table[162],  }, /* ling ang => lin gang */
-    { &pinyin_table[302],  &pinyin_table[6],    &pinyin_table[301],  &pinyin_table[163],  }, /* ling ao => lin gao */
-    { &pinyin_table[302],  &pinyin_table[125],  &pinyin_table[301],  &pinyin_table[164],  }, /* ling e => lin ge */
-    { &pinyin_table[302],  &pinyin_table[126],  &pinyin_table[301],  &pinyin_table[166],  }, /* ling ei => lin gei */
-    { &pinyin_table[302],  &pinyin_table[127],  &pinyin_table[301],  &pinyin_table[168],  }, /* ling en => lin gen */
-    { &pinyin_table[302],  &pinyin_table[392],  &pinyin_table[301],  &pinyin_table[173],  }, /* ling ou => lin gou */
-    { &pinyin_table[312],  &pinyin_table[0],    &pinyin_table[311],  &pinyin_table[157],  }, /* luang a => luan ga */
-    { &pinyin_table[312],  &pinyin_table[2],    &pinyin_table[311],  &pinyin_table[159],  }, /* luang ai => luan gai */
-    { &pinyin_table[312],  &pinyin_table[4],    &pinyin_table[311],  &pinyin_table[161],  }, /* luang an => luan gan */
-    { &pinyin_table[312],  &pinyin_table[5],    &pinyin_table[311],  &pinyin_table[162],  }, /* luang ang => luan gang */
-    { &pinyin_table[312],  &pinyin_table[6],    &pinyin_table[311],  &pinyin_table[163],  }, /* luang ao => luan gao */
-    { &pinyin_table[312],  &pinyin_table[125],  &pinyin_table[311],  &pinyin_table[164],  }, /* luang e => luan ge */
-    { &pinyin_table[312],  &pinyin_table[126],  &pinyin_table[311],  &pinyin_table[166],  }, /* luang ei => luan gei */
-    { &pinyin_table[312],  &pinyin_table[127],  &pinyin_table[311],  &pinyin_table[168],  }, /* luang en => luan gen */
-    { &pinyin_table[312],  &pinyin_table[392],  &pinyin_table[311],  &pinyin_table[173],  }, /* luang ou => luan gou */
-    { &pinyin_table[313],  &pinyin_table[448],  &pinyin_table[310],  &pinyin_table[128],  }, /* lue r => lu er */
-    { &pinyin_table[317],  &pinyin_table[0],    &pinyin_table[310],  &pinyin_table[350],  }, /* lun a => lu na */
-    { &pinyin_table[317],  &pinyin_table[2],    &pinyin_table[310],  &pinyin_table[352],  }, /* lun ai => lu nai */
-    { &pinyin_table[317],  &pinyin_table[4],    &pinyin_table[310],  &pinyin_table[354],  }, /* lun an => lu nan */
-    { &pinyin_table[317],  &pinyin_table[5],    &pinyin_table[310],  &pinyin_table[355],  }, /* lun ang => lu nang */
-    { &pinyin_table[317],  &pinyin_table[6],    &pinyin_table[310],  &pinyin_table[356],  }, /* lun ao => lu nao */
-    { &pinyin_table[317],  &pinyin_table[125],  &pinyin_table[310],  &pinyin_table[357],  }, /* lun e => lu ne */
-    { &pinyin_table[317],  &pinyin_table[126],  &pinyin_table[310],  &pinyin_table[359],  }, /* lun ei => lu nei */
-    { &pinyin_table[320],  &pinyin_table[448],  &pinyin_table[319],  &pinyin_table[128],  }, /* lve r => lv er */
-    { &pinyin_table[326],  &pinyin_table[2],    &pinyin_table[322],  &pinyin_table[352],  }, /* man ai => ma nai */
-    { &pinyin_table[326],  &pinyin_table[4],    &pinyin_table[322],  &pinyin_table[354],  }, /* man an => ma nan */
-    { &pinyin_table[326],  &pinyin_table[5],    &pinyin_table[322],  &pinyin_table[355],  }, /* man ang => ma nang */
-    { &pinyin_table[326],  &pinyin_table[6],    &pinyin_table[322],  &pinyin_table[356],  }, /* man ao => ma nao */
-    { &pinyin_table[326],  &pinyin_table[125],  &pinyin_table[322],  &pinyin_table[357],  }, /* man e => ma ne */
-    { &pinyin_table[326],  &pinyin_table[126],  &pinyin_table[322],  &pinyin_table[359],  }, /* man ei => ma nei */
-    { &pinyin_table[327],  &pinyin_table[2],    &pinyin_table[326],  &pinyin_table[159],  }, /* mang ai => man gai */
-    { &pinyin_table[327],  &pinyin_table[4],    &pinyin_table[326],  &pinyin_table[161],  }, /* mang an => man gan */
-    { &pinyin_table[327],  &pinyin_table[5],    &pinyin_table[326],  &pinyin_table[162],  }, /* mang ang => man gang */
-    { &pinyin_table[327],  &pinyin_table[6],    &pinyin_table[326],  &pinyin_table[163],  }, /* mang ao => man gao */
-    { &pinyin_table[327],  &pinyin_table[125],  &pinyin_table[326],  &pinyin_table[164],  }, /* mang e => man ge */
-    { &pinyin_table[327],  &pinyin_table[126],  &pinyin_table[326],  &pinyin_table[166],  }, /* mang ei => man gei */
-    { &pinyin_table[327],  &pinyin_table[127],  &pinyin_table[326],  &pinyin_table[168],  }, /* mang en => man gen */
-    { &pinyin_table[327],  &pinyin_table[392],  &pinyin_table[326],  &pinyin_table[173],  }, /* mang ou => man gou */
-    { &pinyin_table[333],  &pinyin_table[5],    &pinyin_table[329],  &pinyin_table[355],  }, /* men ang => me nang */
-    { &pinyin_table[333],  &pinyin_table[6],    &pinyin_table[329],  &pinyin_table[356],  }, /* men ao => me nao */
-    { &pinyin_table[333],  &pinyin_table[125],  &pinyin_table[329],  &pinyin_table[357],  }, /* men e => me ne */
-    { &pinyin_table[333],  &pinyin_table[126],  &pinyin_table[329],  &pinyin_table[359],  }, /* men ei => me nei */
-    { &pinyin_table[334],  &pinyin_table[2],    &pinyin_table[333],  &pinyin_table[159],  }, /* meng ai => men gai */
-    { &pinyin_table[334],  &pinyin_table[5],    &pinyin_table[333],  &pinyin_table[162],  }, /* meng ang => men gang */
-    { &pinyin_table[334],  &pinyin_table[6],    &pinyin_table[333],  &pinyin_table[163],  }, /* meng ao => men gao */
-    { &pinyin_table[334],  &pinyin_table[125],  &pinyin_table[333],  &pinyin_table[164],  }, /* meng e => men ge */
-    { &pinyin_table[334],  &pinyin_table[126],  &pinyin_table[333],  &pinyin_table[166],  }, /* meng ei => men gei */
-    { &pinyin_table[334],  &pinyin_table[392],  &pinyin_table[333],  &pinyin_table[173],  }, /* meng ou => men gou */
-    { &pinyin_table[337],  &pinyin_table[0],    &pinyin_table[336],  &pinyin_table[157],  }, /* miang a => mian ga */
-    { &pinyin_table[337],  &pinyin_table[2],    &pinyin_table[336],  &pinyin_table[159],  }, /* miang ai => mian gai */
-    { &pinyin_table[337],  &pinyin_table[4],    &pinyin_table[336],  &pinyin_table[161],  }, /* miang an => mian gan */
-    { &pinyin_table[337],  &pinyin_table[5],    &pinyin_table[336],  &pinyin_table[162],  }, /* miang ang => mian gang */
-    { &pinyin_table[337],  &pinyin_table[6],    &pinyin_table[336],  &pinyin_table[163],  }, /* miang ao => mian gao */
-    { &pinyin_table[337],  &pinyin_table[125],  &pinyin_table[336],  &pinyin_table[164],  }, /* miang e => mian ge */
-    { &pinyin_table[337],  &pinyin_table[126],  &pinyin_table[336],  &pinyin_table[166],  }, /* miang ei => mian gei */
-    { &pinyin_table[337],  &pinyin_table[127],  &pinyin_table[336],  &pinyin_table[168],  }, /* miang en => mian gen */
-    { &pinyin_table[337],  &pinyin_table[392],  &pinyin_table[336],  &pinyin_table[173],  }, /* miang ou => mian gou */
-    { &pinyin_table[339],  &pinyin_table[448],  &pinyin_table[335],  &pinyin_table[128],  }, /* mie r => mi er */
-    { &pinyin_table[342],  &pinyin_table[0],    &pinyin_table[335],  &pinyin_table[350],  }, /* min a => mi na */
-    { &pinyin_table[342],  &pinyin_table[125],  &pinyin_table[335],  &pinyin_table[357],  }, /* min e => mi ne */
-    { &pinyin_table[342],  &pinyin_table[126],  &pinyin_table[335],  &pinyin_table[359],  }, /* min ei => mi nei */
-    { &pinyin_table[343],  &pinyin_table[4],    &pinyin_table[342],  &pinyin_table[161],  }, /* ming an => min gan */
-    { &pinyin_table[343],  &pinyin_table[5],    &pinyin_table[342],  &pinyin_table[162],  }, /* ming ang => min gang */
-    { &pinyin_table[343],  &pinyin_table[6],    &pinyin_table[342],  &pinyin_table[163],  }, /* ming ao => min gao */
-    { &pinyin_table[343],  &pinyin_table[125],  &pinyin_table[342],  &pinyin_table[164],  }, /* ming e => min ge */
-    { &pinyin_table[343],  &pinyin_table[126],  &pinyin_table[342],  &pinyin_table[166],  }, /* ming ei => min gei */
-    { &pinyin_table[343],  &pinyin_table[392],  &pinyin_table[342],  &pinyin_table[173],  }, /* ming ou => min gou */
-    { &pinyin_table[354],  &pinyin_table[0],    &pinyin_table[350],  &pinyin_table[350],  }, /* nan a => na na */
-    { &pinyin_table[354],  &pinyin_table[5],    &pinyin_table[350],  &pinyin_table[355],  }, /* nan ang => na nang */
-    { &pinyin_table[354],  &pinyin_table[125],  &pinyin_table[350],  &pinyin_table[357],  }, /* nan e => na ne */
-    { &pinyin_table[354],  &pinyin_table[126],  &pinyin_table[350],  &pinyin_table[359],  }, /* nan ei => na nei */
-    { &pinyin_table[355],  &pinyin_table[0],    &pinyin_table[354],  &pinyin_table[157],  }, /* nang a => nan ga */
-    { &pinyin_table[355],  &pinyin_table[2],    &pinyin_table[354],  &pinyin_table[159],  }, /* nang ai => nan gai */
-    { &pinyin_table[355],  &pinyin_table[4],    &pinyin_table[354],  &pinyin_table[161],  }, /* nang an => nan gan */
-    { &pinyin_table[355],  &pinyin_table[5],    &pinyin_table[354],  &pinyin_table[162],  }, /* nang ang => nan gang */
-    { &pinyin_table[355],  &pinyin_table[6],    &pinyin_table[354],  &pinyin_table[163],  }, /* nang ao => nan gao */
-    { &pinyin_table[355],  &pinyin_table[125],  &pinyin_table[354],  &pinyin_table[164],  }, /* nang e => nan ge */
-    { &pinyin_table[355],  &pinyin_table[126],  &pinyin_table[354],  &pinyin_table[166],  }, /* nang ei => nan gei */
-    { &pinyin_table[355],  &pinyin_table[127],  &pinyin_table[354],  &pinyin_table[168],  }, /* nang en => nan gen */
-    { &pinyin_table[355],  &pinyin_table[392],  &pinyin_table[354],  &pinyin_table[173],  }, /* nang ou => nan gou */
-    { &pinyin_table[361],  &pinyin_table[0],    &pinyin_table[357],  &pinyin_table[350],  }, /* nen a => ne na */
-    { &pinyin_table[361],  &pinyin_table[2],    &pinyin_table[357],  &pinyin_table[352],  }, /* nen ai => ne nai */
-    { &pinyin_table[361],  &pinyin_table[4],    &pinyin_table[357],  &pinyin_table[354],  }, /* nen an => ne nan */
-    { &pinyin_table[361],  &pinyin_table[5],    &pinyin_table[357],  &pinyin_table[355],  }, /* nen ang => ne nang */
-    { &pinyin_table[361],  &pinyin_table[6],    &pinyin_table[357],  &pinyin_table[356],  }, /* nen ao => ne nao */
-    { &pinyin_table[361],  &pinyin_table[125],  &pinyin_table[357],  &pinyin_table[357],  }, /* nen e => ne ne */
-    { &pinyin_table[361],  &pinyin_table[126],  &pinyin_table[357],  &pinyin_table[359],  }, /* nen ei => ne nei */
-    { &pinyin_table[361],  &pinyin_table[127],  &pinyin_table[357],  &pinyin_table[361],  }, /* nen en => ne nen */
-    { &pinyin_table[362],  &pinyin_table[125],  &pinyin_table[361],  &pinyin_table[164],  }, /* neng e => nen ge */
-    { &pinyin_table[362],  &pinyin_table[126],  &pinyin_table[361],  &pinyin_table[166],  }, /* neng ei => nen gei */
-    { &pinyin_table[368],  &pinyin_table[2],    &pinyin_table[367],  &pinyin_table[159],  }, /* niang ai => nian gai */
-    { &pinyin_table[368],  &pinyin_table[4],    &pinyin_table[367],  &pinyin_table[161],  }, /* niang an => nian gan */
-    { &pinyin_table[368],  &pinyin_table[5],    &pinyin_table[367],  &pinyin_table[162],  }, /* niang ang => nian gang */
-    { &pinyin_table[368],  &pinyin_table[6],    &pinyin_table[367],  &pinyin_table[163],  }, /* niang ao => nian gao */
-    { &pinyin_table[368],  &pinyin_table[125],  &pinyin_table[367],  &pinyin_table[164],  }, /* niang e => nian ge */
-    { &pinyin_table[368],  &pinyin_table[126],  &pinyin_table[367],  &pinyin_table[166],  }, /* niang ei => nian gei */
-    { &pinyin_table[368],  &pinyin_table[127],  &pinyin_table[367],  &pinyin_table[168],  }, /* niang en => nian gen */
-    { &pinyin_table[368],  &pinyin_table[392],  &pinyin_table[367],  &pinyin_table[173],  }, /* niang ou => nian gou */
-    { &pinyin_table[370],  &pinyin_table[448],  &pinyin_table[363],  &pinyin_table[128],  }, /* nie r => ni er */
-    { &pinyin_table[373],  &pinyin_table[0],    &pinyin_table[363],  &pinyin_table[350],  }, /* nin a => ni na */
-    { &pinyin_table[373],  &pinyin_table[4],    &pinyin_table[363],  &pinyin_table[354],  }, /* nin an => ni nan */
-    { &pinyin_table[373],  &pinyin_table[5],    &pinyin_table[363],  &pinyin_table[355],  }, /* nin ang => ni nang */
-    { &pinyin_table[373],  &pinyin_table[6],    &pinyin_table[363],  &pinyin_table[356],  }, /* nin ao => ni nao */
-    { &pinyin_table[373],  &pinyin_table[125],  &pinyin_table[363],  &pinyin_table[357],  }, /* nin e => ni ne */
-    { &pinyin_table[373],  &pinyin_table[126],  &pinyin_table[363],  &pinyin_table[359],  }, /* nin ei => ni nei */
-    { &pinyin_table[374],  &pinyin_table[2],    &pinyin_table[373],  &pinyin_table[159],  }, /* ning ai => nin gai */
-    { &pinyin_table[374],  &pinyin_table[5],    &pinyin_table[373],  &pinyin_table[162],  }, /* ning ang => nin gang */
-    { &pinyin_table[374],  &pinyin_table[6],    &pinyin_table[373],  &pinyin_table[163],  }, /* ning ao => nin gao */
-    { &pinyin_table[374],  &pinyin_table[126],  &pinyin_table[373],  &pinyin_table[166],  }, /* ning ei => nin gei */
-    { &pinyin_table[374],  &pinyin_table[127],  &pinyin_table[373],  &pinyin_table[168],  }, /* ning en => nin gen */
-    { &pinyin_table[374],  &pinyin_table[392],  &pinyin_table[373],  &pinyin_table[173],  }, /* ning ou => nin gou */
-    { &pinyin_table[384],  &pinyin_table[0],    &pinyin_table[383],  &pinyin_table[157],  }, /* nuang a => nuan ga */
-    { &pinyin_table[384],  &pinyin_table[2],    &pinyin_table[383],  &pinyin_table[159],  }, /* nuang ai => nuan gai */
-    { &pinyin_table[384],  &pinyin_table[4],    &pinyin_table[383],  &pinyin_table[161],  }, /* nuang an => nuan gan */
-    { &pinyin_table[384],  &pinyin_table[5],    &pinyin_table[383],  &pinyin_table[162],  }, /* nuang ang => nuan gang */
-    { &pinyin_table[384],  &pinyin_table[6],    &pinyin_table[383],  &pinyin_table[163],  }, /* nuang ao => nuan gao */
-    { &pinyin_table[384],  &pinyin_table[125],  &pinyin_table[383],  &pinyin_table[164],  }, /* nuang e => nuan ge */
-    { &pinyin_table[384],  &pinyin_table[126],  &pinyin_table[383],  &pinyin_table[166],  }, /* nuang ei => nuan gei */
-    { &pinyin_table[384],  &pinyin_table[127],  &pinyin_table[383],  &pinyin_table[168],  }, /* nuang en => nuan gen */
-    { &pinyin_table[384],  &pinyin_table[392],  &pinyin_table[383],  &pinyin_table[173],  }, /* nuang ou => nuan gou */
-    { &pinyin_table[385],  &pinyin_table[448],  &pinyin_table[382],  &pinyin_table[128],  }, /* nue r => nu er */
-    { &pinyin_table[387],  &pinyin_table[0],    &pinyin_table[382],  &pinyin_table[350],  }, /* nun a => nu na */
-    { &pinyin_table[387],  &pinyin_table[2],    &pinyin_table[382],  &pinyin_table[352],  }, /* nun ai => nu nai */
-    { &pinyin_table[387],  &pinyin_table[4],    &pinyin_table[382],  &pinyin_table[354],  }, /* nun an => nu nan */
-    { &pinyin_table[387],  &pinyin_table[5],    &pinyin_table[382],  &pinyin_table[355],  }, /* nun ang => nu nang */
-    { &pinyin_table[387],  &pinyin_table[6],    &pinyin_table[382],  &pinyin_table[356],  }, /* nun ao => nu nao */
-    { &pinyin_table[387],  &pinyin_table[125],  &pinyin_table[382],  &pinyin_table[357],  }, /* nun e => nu ne */
-    { &pinyin_table[387],  &pinyin_table[126],  &pinyin_table[382],  &pinyin_table[359],  }, /* nun ei => nu nei */
-    { &pinyin_table[387],  &pinyin_table[127],  &pinyin_table[382],  &pinyin_table[361],  }, /* nun en => nu nen */
-    { &pinyin_table[387],  &pinyin_table[392],  &pinyin_table[382],  &pinyin_table[381],  }, /* nun ou => nu nou */
-    { &pinyin_table[390],  &pinyin_table[448],  &pinyin_table[389],  &pinyin_table[128],  }, /* nve r => nv er */
-    { &pinyin_table[398],  &pinyin_table[0],    &pinyin_table[394],  &pinyin_table[350],  }, /* pan a => pa na */
-    { &pinyin_table[398],  &pinyin_table[5],    &pinyin_table[394],  &pinyin_table[355],  }, /* pan ang => pa nang */
-    { &pinyin_table[398],  &pinyin_table[6],    &pinyin_table[394],  &pinyin_table[356],  }, /* pan ao => pa nao */
-    { &pinyin_table[398],  &pinyin_table[125],  &pinyin_table[394],  &pinyin_table[357],  }, /* pan e => pa ne */
-    { &pinyin_table[398],  &pinyin_table[126],  &pinyin_table[394],  &pinyin_table[359],  }, /* pan ei => pa nei */
-    { &pinyin_table[399],  &pinyin_table[5],    &pinyin_table[398],  &pinyin_table[162],  }, /* pang ang => pan gang */
-    { &pinyin_table[399],  &pinyin_table[6],    &pinyin_table[398],  &pinyin_table[163],  }, /* pang ao => pan gao */
-    { &pinyin_table[399],  &pinyin_table[125],  &pinyin_table[398],  &pinyin_table[164],  }, /* pang e => pan ge */
-    { &pinyin_table[399],  &pinyin_table[126],  &pinyin_table[398],  &pinyin_table[166],  }, /* pang ei => pan gei */
-    { &pinyin_table[399],  &pinyin_table[127],  &pinyin_table[398],  &pinyin_table[168],  }, /* pang en => pan gen */
-    { &pinyin_table[399],  &pinyin_table[392],  &pinyin_table[398],  &pinyin_table[173],  }, /* pang ou => pan gou */
-    { &pinyin_table[405],  &pinyin_table[5],    &pinyin_table[404],  &pinyin_table[162],  }, /* peng ang => pen gang */
-    { &pinyin_table[405],  &pinyin_table[6],    &pinyin_table[404],  &pinyin_table[163],  }, /* peng ao => pen gao */
-    { &pinyin_table[405],  &pinyin_table[125],  &pinyin_table[404],  &pinyin_table[164],  }, /* peng e => pen ge */
-    { &pinyin_table[405],  &pinyin_table[126],  &pinyin_table[404],  &pinyin_table[166],  }, /* peng ei => pen gei */
-    { &pinyin_table[408],  &pinyin_table[0],    &pinyin_table[407],  &pinyin_table[157],  }, /* piang a => pian ga */
-    { &pinyin_table[408],  &pinyin_table[2],    &pinyin_table[407],  &pinyin_table[159],  }, /* piang ai => pian gai */
-    { &pinyin_table[408],  &pinyin_table[4],    &pinyin_table[407],  &pinyin_table[161],  }, /* piang an => pian gan */
-    { &pinyin_table[408],  &pinyin_table[5],    &pinyin_table[407],  &pinyin_table[162],  }, /* piang ang => pian gang */
-    { &pinyin_table[408],  &pinyin_table[6],    &pinyin_table[407],  &pinyin_table[163],  }, /* piang ao => pian gao */
-    { &pinyin_table[408],  &pinyin_table[125],  &pinyin_table[407],  &pinyin_table[164],  }, /* piang e => pian ge */
-    { &pinyin_table[408],  &pinyin_table[126],  &pinyin_table[407],  &pinyin_table[166],  }, /* piang ei => pian gei */
-    { &pinyin_table[408],  &pinyin_table[127],  &pinyin_table[407],  &pinyin_table[168],  }, /* piang en => pian gen */
-    { &pinyin_table[408],  &pinyin_table[392],  &pinyin_table[407],  &pinyin_table[173],  }, /* piang ou => pian gou */
-    { &pinyin_table[410],  &pinyin_table[448],  &pinyin_table[406],  &pinyin_table[128],  }, /* pie r => pi er */
-    { &pinyin_table[413],  &pinyin_table[0],    &pinyin_table[406],  &pinyin_table[350],  }, /* pin a => pi na */
-    { &pinyin_table[413],  &pinyin_table[5],    &pinyin_table[406],  &pinyin_table[355],  }, /* pin ang => pi nang */
-    { &pinyin_table[413],  &pinyin_table[6],    &pinyin_table[406],  &pinyin_table[356],  }, /* pin ao => pi nao */
-    { &pinyin_table[413],  &pinyin_table[125],  &pinyin_table[406],  &pinyin_table[357],  }, /* pin e => pi ne */
-    { &pinyin_table[413],  &pinyin_table[126],  &pinyin_table[406],  &pinyin_table[359],  }, /* pin ei => pi nei */
-    { &pinyin_table[414],  &pinyin_table[5],    &pinyin_table[413],  &pinyin_table[162],  }, /* ping ang => pin gang */
-    { &pinyin_table[414],  &pinyin_table[6],    &pinyin_table[413],  &pinyin_table[163],  }, /* ping ao => pin gao */
-    { &pinyin_table[414],  &pinyin_table[125],  &pinyin_table[413],  &pinyin_table[164],  }, /* ping e => pin ge */
-    { &pinyin_table[414],  &pinyin_table[126],  &pinyin_table[413],  &pinyin_table[166],  }, /* ping ei => pin gei */
-    { &pinyin_table[414],  &pinyin_table[127],  &pinyin_table[413],  &pinyin_table[168],  }, /* ping en => pin gen */
-    { &pinyin_table[414],  &pinyin_table[392],  &pinyin_table[413],  &pinyin_table[173],  }, /* ping ou => pin gou */
-    { &pinyin_table[423],  &pinyin_table[126],  &pinyin_table[420],  &pinyin_table[359],  }, /* qian ei => qia nei */
-    { &pinyin_table[424],  &pinyin_table[2],    &pinyin_table[423],  &pinyin_table[159],  }, /* qiang ai => qian gai */
-    { &pinyin_table[424],  &pinyin_table[4],    &pinyin_table[423],  &pinyin_table[161],  }, /* qiang an => qian gan */
-    { &pinyin_table[424],  &pinyin_table[5],    &pinyin_table[423],  &pinyin_table[162],  }, /* qiang ang => qian gang */
-    { &pinyin_table[424],  &pinyin_table[6],    &pinyin_table[423],  &pinyin_table[163],  }, /* qiang ao => qian gao */
-    { &pinyin_table[424],  &pinyin_table[125],  &pinyin_table[423],  &pinyin_table[164],  }, /* qiang e => qian ge */
-    { &pinyin_table[424],  &pinyin_table[126],  &pinyin_table[423],  &pinyin_table[166],  }, /* qiang ei => qian gei */
-    { &pinyin_table[424],  &pinyin_table[127],  &pinyin_table[423],  &pinyin_table[168],  }, /* qiang en => qian gen */
-    { &pinyin_table[424],  &pinyin_table[392],  &pinyin_table[423],  &pinyin_table[173],  }, /* qiang ou => qian gou */
-    { &pinyin_table[426],  &pinyin_table[448],  &pinyin_table[419],  &pinyin_table[128],  }, /* qie r => qi er */
-    { &pinyin_table[429],  &pinyin_table[0],    &pinyin_table[419],  &pinyin_table[350],  }, /* qin a => qi na */
-    { &pinyin_table[429],  &pinyin_table[5],    &pinyin_table[419],  &pinyin_table[355],  }, /* qin ang => qi nang */
-    { &pinyin_table[429],  &pinyin_table[6],    &pinyin_table[419],  &pinyin_table[356],  }, /* qin ao => qi nao */
-    { &pinyin_table[429],  &pinyin_table[125],  &pinyin_table[419],  &pinyin_table[357],  }, /* qin e => qi ne */
-    { &pinyin_table[429],  &pinyin_table[126],  &pinyin_table[419],  &pinyin_table[359],  }, /* qin ei => qi nei */
-    { &pinyin_table[430],  &pinyin_table[5],    &pinyin_table[429],  &pinyin_table[162],  }, /* qing ang => qin gang */
-    { &pinyin_table[430],  &pinyin_table[6],    &pinyin_table[429],  &pinyin_table[163],  }, /* qing ao => qin gao */
-    { &pinyin_table[430],  &pinyin_table[125],  &pinyin_table[429],  &pinyin_table[164],  }, /* qing e => qin ge */
-    { &pinyin_table[430],  &pinyin_table[126],  &pinyin_table[429],  &pinyin_table[166],  }, /* qing ei => qin gei */
-    { &pinyin_table[430],  &pinyin_table[127],  &pinyin_table[429],  &pinyin_table[168],  }, /* qing en => qin gen */
-    { &pinyin_table[430],  &pinyin_table[392],  &pinyin_table[429],  &pinyin_table[173],  }, /* qing ou => qin gou */
-    { &pinyin_table[438],  &pinyin_table[0],    &pinyin_table[437],  &pinyin_table[157],  }, /* quang a => quan ga */
-    { &pinyin_table[438],  &pinyin_table[2],    &pinyin_table[437],  &pinyin_table[159],  }, /* quang ai => quan gai */
-    { &pinyin_table[438],  &pinyin_table[4],    &pinyin_table[437],  &pinyin_table[161],  }, /* quang an => quan gan */
-    { &pinyin_table[438],  &pinyin_table[5],    &pinyin_table[437],  &pinyin_table[162],  }, /* quang ang => quan gang */
-    { &pinyin_table[438],  &pinyin_table[6],    &pinyin_table[437],  &pinyin_table[163],  }, /* quang ao => quan gao */
-    { &pinyin_table[438],  &pinyin_table[125],  &pinyin_table[437],  &pinyin_table[164],  }, /* quang e => quan ge */
-    { &pinyin_table[438],  &pinyin_table[126],  &pinyin_table[437],  &pinyin_table[166],  }, /* quang ei => quan gei */
-    { &pinyin_table[438],  &pinyin_table[127],  &pinyin_table[437],  &pinyin_table[168],  }, /* quang en => quan gen */
-    { &pinyin_table[438],  &pinyin_table[392],  &pinyin_table[437],  &pinyin_table[173],  }, /* quang ou => quan gou */
-    { &pinyin_table[439],  &pinyin_table[448],  &pinyin_table[436],  &pinyin_table[128],  }, /* que r => qu er */
-    { &pinyin_table[440],  &pinyin_table[0],    &pinyin_table[439],  &pinyin_table[350],  }, /* quen a => que na */
-    { &pinyin_table[440],  &pinyin_table[2],    &pinyin_table[439],  &pinyin_table[352],  }, /* quen ai => que nai */
-    { &pinyin_table[440],  &pinyin_table[4],    &pinyin_table[439],  &pinyin_table[354],  }, /* quen an => que nan */
-    { &pinyin_table[440],  &pinyin_table[5],    &pinyin_table[439],  &pinyin_table[355],  }, /* quen ang => que nang */
-    { &pinyin_table[440],  &pinyin_table[6],    &pinyin_table[439],  &pinyin_table[356],  }, /* quen ao => que nao */
-    { &pinyin_table[440],  &pinyin_table[125],  &pinyin_table[439],  &pinyin_table[357],  }, /* quen e => que ne */
-    { &pinyin_table[440],  &pinyin_table[126],  &pinyin_table[439],  &pinyin_table[359],  }, /* quen ei => que nei */
-    { &pinyin_table[440],  &pinyin_table[127],  &pinyin_table[439],  &pinyin_table[361],  }, /* quen en => que nen */
-    { &pinyin_table[440],  &pinyin_table[392],  &pinyin_table[439],  &pinyin_table[381],  }, /* quen ou => que nou */
-    { &pinyin_table[441],  &pinyin_table[0],    &pinyin_table[436],  &pinyin_table[350],  }, /* qun a => qu na */
-    { &pinyin_table[441],  &pinyin_table[4],    &pinyin_table[436],  &pinyin_table[354],  }, /* qun an => qu nan */
-    { &pinyin_table[441],  &pinyin_table[5],    &pinyin_table[436],  &pinyin_table[355],  }, /* qun ang => qu nang */
-    { &pinyin_table[441],  &pinyin_table[6],    &pinyin_table[436],  &pinyin_table[356],  }, /* qun ao => qu nao */
-    { &pinyin_table[441],  &pinyin_table[125],  &pinyin_table[436],  &pinyin_table[357],  }, /* qun e => qu ne */
-    { &pinyin_table[441],  &pinyin_table[126],  &pinyin_table[436],  &pinyin_table[359],  }, /* qun ei => qu nei */
-    { &pinyin_table[454],  &pinyin_table[5],    &pinyin_table[453],  &pinyin_table[162],  }, /* rang ang => ran gang */
-    { &pinyin_table[454],  &pinyin_table[6],    &pinyin_table[453],  &pinyin_table[163],  }, /* rang ao => ran gao */
-    { &pinyin_table[454],  &pinyin_table[126],  &pinyin_table[453],  &pinyin_table[166],  }, /* rang ei => ran gei */
-    { &pinyin_table[454],  &pinyin_table[127],  &pinyin_table[453],  &pinyin_table[168],  }, /* rang en => ran gen */
-    { &pinyin_table[460],  &pinyin_table[6],    &pinyin_table[456],  &pinyin_table[356],  }, /* ren ao => re nao */
-    { &pinyin_table[460],  &pinyin_table[125],  &pinyin_table[456],  &pinyin_table[357],  }, /* ren e => re ne */
-    { &pinyin_table[460],  &pinyin_table[126],  &pinyin_table[456],  &pinyin_table[359],  }, /* ren ei => re nei */
-    { &pinyin_table[461],  &pinyin_table[0],    &pinyin_table[460],  &pinyin_table[157],  }, /* reng a => ren ga */
-    { &pinyin_table[461],  &pinyin_table[2],    &pinyin_table[460],  &pinyin_table[159],  }, /* reng ai => ren gai */
-    { &pinyin_table[461],  &pinyin_table[4],    &pinyin_table[460],  &pinyin_table[161],  }, /* reng an => ren gan */
-    { &pinyin_table[461],  &pinyin_table[5],    &pinyin_table[460],  &pinyin_table[162],  }, /* reng ang => ren gang */
-    { &pinyin_table[461],  &pinyin_table[6],    &pinyin_table[460],  &pinyin_table[163],  }, /* reng ao => ren gao */
-    { &pinyin_table[461],  &pinyin_table[125],  &pinyin_table[460],  &pinyin_table[164],  }, /* reng e => ren ge */
-    { &pinyin_table[461],  &pinyin_table[126],  &pinyin_table[460],  &pinyin_table[166],  }, /* reng ei => ren gei */
-    { &pinyin_table[461],  &pinyin_table[127],  &pinyin_table[460],  &pinyin_table[168],  }, /* reng en => ren gen */
-    { &pinyin_table[461],  &pinyin_table[392],  &pinyin_table[460],  &pinyin_table[173],  }, /* reng ou => ren gou */
-    { &pinyin_table[467],  &pinyin_table[448],  &pinyin_table[462],  &pinyin_table[128],  }, /* rie r => ri er */
-    { &pinyin_table[468],  &pinyin_table[0],    &pinyin_table[462],  &pinyin_table[350],  }, /* rin a => ri na */
-    { &pinyin_table[468],  &pinyin_table[2],    &pinyin_table[462],  &pinyin_table[352],  }, /* rin ai => ri nai */
-    { &pinyin_table[468],  &pinyin_table[4],    &pinyin_table[462],  &pinyin_table[354],  }, /* rin an => ri nan */
-    { &pinyin_table[468],  &pinyin_table[5],    &pinyin_table[462],  &pinyin_table[355],  }, /* rin ang => ri nang */
-    { &pinyin_table[468],  &pinyin_table[6],    &pinyin_table[462],  &pinyin_table[356],  }, /* rin ao => ri nao */
-    { &pinyin_table[468],  &pinyin_table[125],  &pinyin_table[462],  &pinyin_table[357],  }, /* rin e => ri ne */
-    { &pinyin_table[468],  &pinyin_table[126],  &pinyin_table[462],  &pinyin_table[359],  }, /* rin ei => ri nei */
-    { &pinyin_table[468],  &pinyin_table[127],  &pinyin_table[462],  &pinyin_table[361],  }, /* rin en => ri nen */
-    { &pinyin_table[468],  &pinyin_table[392],  &pinyin_table[462],  &pinyin_table[381],  }, /* rin ou => ri nou */
-    { &pinyin_table[479],  &pinyin_table[0],    &pinyin_table[478],  &pinyin_table[157],  }, /* ruang a => ruan ga */
-    { &pinyin_table[479],  &pinyin_table[2],    &pinyin_table[478],  &pinyin_table[159],  }, /* ruang ai => ruan gai */
-    { &pinyin_table[479],  &pinyin_table[4],    &pinyin_table[478],  &pinyin_table[161],  }, /* ruang an => ruan gan */
-    { &pinyin_table[479],  &pinyin_table[5],    &pinyin_table[478],  &pinyin_table[162],  }, /* ruang ang => ruan gang */
-    { &pinyin_table[479],  &pinyin_table[6],    &pinyin_table[478],  &pinyin_table[163],  }, /* ruang ao => ruan gao */
-    { &pinyin_table[479],  &pinyin_table[125],  &pinyin_table[478],  &pinyin_table[164],  }, /* ruang e => ruan ge */
-    { &pinyin_table[479],  &pinyin_table[126],  &pinyin_table[478],  &pinyin_table[166],  }, /* ruang ei => ruan gei */
-    { &pinyin_table[479],  &pinyin_table[127],  &pinyin_table[478],  &pinyin_table[168],  }, /* ruang en => ruan gen */
-    { &pinyin_table[479],  &pinyin_table[392],  &pinyin_table[478],  &pinyin_table[173],  }, /* ruang ou => ruan gou */
-    { &pinyin_table[480],  &pinyin_table[448],  &pinyin_table[477],  &pinyin_table[128],  }, /* rue r => ru er */
-    { &pinyin_table[484],  &pinyin_table[0],    &pinyin_table[477],  &pinyin_table[350],  }, /* run a => ru na */
-    { &pinyin_table[484],  &pinyin_table[2],    &pinyin_table[477],  &pinyin_table[352],  }, /* run ai => ru nai */
-    { &pinyin_table[484],  &pinyin_table[4],    &pinyin_table[477],  &pinyin_table[354],  }, /* run an => ru nan */
-    { &pinyin_table[484],  &pinyin_table[5],    &pinyin_table[477],  &pinyin_table[355],  }, /* run ang => ru nang */
-    { &pinyin_table[484],  &pinyin_table[6],    &pinyin_table[477],  &pinyin_table[356],  }, /* run ao => ru nao */
-    { &pinyin_table[484],  &pinyin_table[125],  &pinyin_table[477],  &pinyin_table[357],  }, /* run e => ru ne */
-    { &pinyin_table[484],  &pinyin_table[126],  &pinyin_table[477],  &pinyin_table[359],  }, /* run ei => ru nei */
-    { &pinyin_table[484],  &pinyin_table[127],  &pinyin_table[477],  &pinyin_table[361],  }, /* run en => ru nen */
-    { &pinyin_table[493],  &pinyin_table[0],    &pinyin_table[489],  &pinyin_table[350],  }, /* san a => sa na */
-    { &pinyin_table[493],  &pinyin_table[126],  &pinyin_table[489],  &pinyin_table[359],  }, /* san ei => sa nei */
-    { &pinyin_table[494],  &pinyin_table[2],    &pinyin_table[493],  &pinyin_table[159],  }, /* sang ai => san gai */
-    { &pinyin_table[494],  &pinyin_table[4],    &pinyin_table[493],  &pinyin_table[161],  }, /* sang an => san gan */
-    { &pinyin_table[494],  &pinyin_table[5],    &pinyin_table[493],  &pinyin_table[162],  }, /* sang ang => san gang */
-    { &pinyin_table[494],  &pinyin_table[6],    &pinyin_table[493],  &pinyin_table[163],  }, /* sang ao => san gao */
-    { &pinyin_table[494],  &pinyin_table[125],  &pinyin_table[493],  &pinyin_table[164],  }, /* sang e => san ge */
-    { &pinyin_table[494],  &pinyin_table[126],  &pinyin_table[493],  &pinyin_table[166],  }, /* sang ei => san gei */
-    { &pinyin_table[494],  &pinyin_table[127],  &pinyin_table[493],  &pinyin_table[168],  }, /* sang en => san gen */
-    { &pinyin_table[500],  &pinyin_table[0],    &pinyin_table[496],  &pinyin_table[350],  }, /* sen a => se na */
-    { &pinyin_table[500],  &pinyin_table[2],    &pinyin_table[496],  &pinyin_table[352],  }, /* sen ai => se nai */
-    { &pinyin_table[500],  &pinyin_table[4],    &pinyin_table[496],  &pinyin_table[354],  }, /* sen an => se nan */
-    { &pinyin_table[500],  &pinyin_table[5],    &pinyin_table[496],  &pinyin_table[355],  }, /* sen ang => se nang */
-    { &pinyin_table[500],  &pinyin_table[6],    &pinyin_table[496],  &pinyin_table[356],  }, /* sen ao => se nao */
-    { &pinyin_table[500],  &pinyin_table[125],  &pinyin_table[496],  &pinyin_table[357],  }, /* sen e => se ne */
-    { &pinyin_table[500],  &pinyin_table[126],  &pinyin_table[496],  &pinyin_table[359],  }, /* sen ei => se nei */
-    { &pinyin_table[501],  &pinyin_table[2],    &pinyin_table[500],  &pinyin_table[159],  }, /* seng ai => sen gai */
-    { &pinyin_table[501],  &pinyin_table[4],    &pinyin_table[500],  &pinyin_table[161],  }, /* seng an => sen gan */
-    { &pinyin_table[501],  &pinyin_table[5],    &pinyin_table[500],  &pinyin_table[162],  }, /* seng ang => sen gang */
-    { &pinyin_table[501],  &pinyin_table[6],    &pinyin_table[500],  &pinyin_table[163],  }, /* seng ao => sen gao */
-    { &pinyin_table[501],  &pinyin_table[125],  &pinyin_table[500],  &pinyin_table[164],  }, /* seng e => sen ge */
-    { &pinyin_table[501],  &pinyin_table[126],  &pinyin_table[500],  &pinyin_table[166],  }, /* seng ei => sen gei */
-    { &pinyin_table[501],  &pinyin_table[127],  &pinyin_table[500],  &pinyin_table[168],  }, /* seng en => sen gen */
-    { &pinyin_table[501],  &pinyin_table[392],  &pinyin_table[500],  &pinyin_table[173],  }, /* seng ou => sen gou */
-    { &pinyin_table[507],  &pinyin_table[0],    &pinyin_table[503],  &pinyin_table[350],  }, /* shan a => sha na */
-    { &pinyin_table[507],  &pinyin_table[4],    &pinyin_table[503],  &pinyin_table[354],  }, /* shan an => sha nan */
-    { &pinyin_table[507],  &pinyin_table[126],  &pinyin_table[503],  &pinyin_table[359],  }, /* shan ei => sha nei */
-    { &pinyin_table[508],  &pinyin_table[2],    &pinyin_table[507],  &pinyin_table[159],  }, /* shang ai => shan gai */
-    { &pinyin_table[508],  &pinyin_table[5],    &pinyin_table[507],  &pinyin_table[162],  }, /* shang ang => shan gang */
-    { &pinyin_table[508],  &pinyin_table[6],    &pinyin_table[507],  &pinyin_table[163],  }, /* shang ao => shan gao */
-    { &pinyin_table[508],  &pinyin_table[125],  &pinyin_table[507],  &pinyin_table[164],  }, /* shang e => shan ge */
-    { &pinyin_table[508],  &pinyin_table[126],  &pinyin_table[507],  &pinyin_table[166],  }, /* shang ei => shan gei */
-    { &pinyin_table[508],  &pinyin_table[127],  &pinyin_table[507],  &pinyin_table[168],  }, /* shang en => shan gen */
-    { &pinyin_table[508],  &pinyin_table[392],  &pinyin_table[507],  &pinyin_table[173],  }, /* shang ou => shan gou */
-    { &pinyin_table[514],  &pinyin_table[126],  &pinyin_table[510],  &pinyin_table[359],  }, /* shen ei => she nei */
-    { &pinyin_table[515],  &pinyin_table[4],    &pinyin_table[514],  &pinyin_table[161],  }, /* sheng an => shen gan */
-    { &pinyin_table[515],  &pinyin_table[5],    &pinyin_table[514],  &pinyin_table[162],  }, /* sheng ang => shen gang */
-    { &pinyin_table[515],  &pinyin_table[6],    &pinyin_table[514],  &pinyin_table[163],  }, /* sheng ao => shen gao */
-    { &pinyin_table[515],  &pinyin_table[125],  &pinyin_table[514],  &pinyin_table[164],  }, /* sheng e => shen ge */
-    { &pinyin_table[515],  &pinyin_table[126],  &pinyin_table[514],  &pinyin_table[166],  }, /* sheng ei => shen gei */
-    { &pinyin_table[515],  &pinyin_table[392],  &pinyin_table[514],  &pinyin_table[173],  }, /* sheng ou => shen gou */
-    { &pinyin_table[524],  &pinyin_table[0],    &pinyin_table[520],  &pinyin_table[350],  }, /* shuan a => shua na */
-    { &pinyin_table[524],  &pinyin_table[2],    &pinyin_table[520],  &pinyin_table[352],  }, /* shuan ai => shua nai */
-    { &pinyin_table[524],  &pinyin_table[4],    &pinyin_table[520],  &pinyin_table[354],  }, /* shuan an => shua nan */
-    { &pinyin_table[524],  &pinyin_table[5],    &pinyin_table[520],  &pinyin_table[355],  }, /* shuan ang => shua nang */
-    { &pinyin_table[524],  &pinyin_table[6],    &pinyin_table[520],  &pinyin_table[356],  }, /* shuan ao => shua nao */
-    { &pinyin_table[524],  &pinyin_table[125],  &pinyin_table[520],  &pinyin_table[357],  }, /* shuan e => shua ne */
-    { &pinyin_table[524],  &pinyin_table[126],  &pinyin_table[520],  &pinyin_table[359],  }, /* shuan ei => shua nei */
-    { &pinyin_table[525],  &pinyin_table[126],  &pinyin_table[524],  &pinyin_table[166],  }, /* shuang ei => shuan gei */
-    { &pinyin_table[529],  &pinyin_table[4],    &pinyin_table[519],  &pinyin_table[354],  }, /* shun an => shu nan */
-    { &pinyin_table[529],  &pinyin_table[5],    &pinyin_table[519],  &pinyin_table[355],  }, /* shun ang => shu nang */
-    { &pinyin_table[529],  &pinyin_table[6],    &pinyin_table[519],  &pinyin_table[356],  }, /* shun ao => shu nao */
-    { &pinyin_table[529],  &pinyin_table[125],  &pinyin_table[519],  &pinyin_table[357],  }, /* shun e => shu ne */
-    { &pinyin_table[529],  &pinyin_table[126],  &pinyin_table[519],  &pinyin_table[359],  }, /* shun ei => shu nei */
-    { &pinyin_table[540],  &pinyin_table[0],    &pinyin_table[539],  &pinyin_table[157],  }, /* suang a => suan ga */
-    { &pinyin_table[540],  &pinyin_table[2],    &pinyin_table[539],  &pinyin_table[159],  }, /* suang ai => suan gai */
-    { &pinyin_table[540],  &pinyin_table[4],    &pinyin_table[539],  &pinyin_table[161],  }, /* suang an => suan gan */
-    { &pinyin_table[540],  &pinyin_table[5],    &pinyin_table[539],  &pinyin_table[162],  }, /* suang ang => suan gang */
-    { &pinyin_table[540],  &pinyin_table[6],    &pinyin_table[539],  &pinyin_table[163],  }, /* suang ao => suan gao */
-    { &pinyin_table[540],  &pinyin_table[125],  &pinyin_table[539],  &pinyin_table[164],  }, /* suang e => suan ge */
-    { &pinyin_table[540],  &pinyin_table[126],  &pinyin_table[539],  &pinyin_table[166],  }, /* suang ei => suan gei */
-    { &pinyin_table[540],  &pinyin_table[127],  &pinyin_table[539],  &pinyin_table[168],  }, /* suang en => suan gen */
-    { &pinyin_table[540],  &pinyin_table[392],  &pinyin_table[539],  &pinyin_table[173],  }, /* suang ou => suan gou */
-    { &pinyin_table[544],  &pinyin_table[0],    &pinyin_table[536],  &pinyin_table[350],  }, /* sun a => su na */
-    { &pinyin_table[544],  &pinyin_table[4],    &pinyin_table[536],  &pinyin_table[354],  }, /* sun an => su nan */
-    { &pinyin_table[544],  &pinyin_table[5],    &pinyin_table[536],  &pinyin_table[355],  }, /* sun ang => su nang */
-    { &pinyin_table[544],  &pinyin_table[6],    &pinyin_table[536],  &pinyin_table[356],  }, /* sun ao => su nao */
-    { &pinyin_table[544],  &pinyin_table[125],  &pinyin_table[536],  &pinyin_table[357],  }, /* sun e => su ne */
-    { &pinyin_table[544],  &pinyin_table[126],  &pinyin_table[536],  &pinyin_table[359],  }, /* sun ei => su nei */
-    { &pinyin_table[551],  &pinyin_table[0],    &pinyin_table[547],  &pinyin_table[350],  }, /* tan a => ta na */
-    { &pinyin_table[551],  &pinyin_table[5],    &pinyin_table[547],  &pinyin_table[355],  }, /* tan ang => ta nang */
-    { &pinyin_table[551],  &pinyin_table[6],    &pinyin_table[547],  &pinyin_table[356],  }, /* tan ao => ta nao */
-    { &pinyin_table[551],  &pinyin_table[125],  &pinyin_table[547],  &pinyin_table[357],  }, /* tan e => ta ne */
-    { &pinyin_table[551],  &pinyin_table[126],  &pinyin_table[547],  &pinyin_table[359],  }, /* tan ei => ta nei */
-    { &pinyin_table[552],  &pinyin_table[2],    &pinyin_table[551],  &pinyin_table[159],  }, /* tang ai => tan gai */
-    { &pinyin_table[552],  &pinyin_table[4],    &pinyin_table[551],  &pinyin_table[161],  }, /* tang an => tan gan */
-    { &pinyin_table[552],  &pinyin_table[5],    &pinyin_table[551],  &pinyin_table[162],  }, /* tang ang => tan gang */
-    { &pinyin_table[552],  &pinyin_table[125],  &pinyin_table[551],  &pinyin_table[164],  }, /* tang e => tan ge */
-    { &pinyin_table[552],  &pinyin_table[126],  &pinyin_table[551],  &pinyin_table[166],  }, /* tang ei => tan gei */
-    { &pinyin_table[552],  &pinyin_table[392],  &pinyin_table[551],  &pinyin_table[173],  }, /* tang ou => tan gou */
-    { &pinyin_table[557],  &pinyin_table[0],    &pinyin_table[554],  &pinyin_table[350],  }, /* ten a => te na */
-    { &pinyin_table[557],  &pinyin_table[2],    &pinyin_table[554],  &pinyin_table[352],  }, /* ten ai => te nai */
-    { &pinyin_table[557],  &pinyin_table[4],    &pinyin_table[554],  &pinyin_table[354],  }, /* ten an => te nan */
-    { &pinyin_table[557],  &pinyin_table[5],    &pinyin_table[554],  &pinyin_table[355],  }, /* ten ang => te nang */
-    { &pinyin_table[557],  &pinyin_table[6],    &pinyin_table[554],  &pinyin_table[356],  }, /* ten ao => te nao */
-    { &pinyin_table[557],  &pinyin_table[125],  &pinyin_table[554],  &pinyin_table[357],  }, /* ten e => te ne */
-    { &pinyin_table[557],  &pinyin_table[126],  &pinyin_table[554],  &pinyin_table[359],  }, /* ten ei => te nei */
-    { &pinyin_table[557],  &pinyin_table[127],  &pinyin_table[554],  &pinyin_table[361],  }, /* ten en => te nen */
-    { &pinyin_table[557],  &pinyin_table[392],  &pinyin_table[554],  &pinyin_table[381],  }, /* ten ou => te nou */
-    { &pinyin_table[561],  &pinyin_table[0],    &pinyin_table[560],  &pinyin_table[157],  }, /* tiang a => tian ga */
-    { &pinyin_table[561],  &pinyin_table[2],    &pinyin_table[560],  &pinyin_table[159],  }, /* tiang ai => tian gai */
-    { &pinyin_table[561],  &pinyin_table[4],    &pinyin_table[560],  &pinyin_table[161],  }, /* tiang an => tian gan */
-    { &pinyin_table[561],  &pinyin_table[5],    &pinyin_table[560],  &pinyin_table[162],  }, /* tiang ang => tian gang */
-    { &pinyin_table[561],  &pinyin_table[6],    &pinyin_table[560],  &pinyin_table[163],  }, /* tiang ao => tian gao */
-    { &pinyin_table[561],  &pinyin_table[125],  &pinyin_table[560],  &pinyin_table[164],  }, /* tiang e => tian ge */
-    { &pinyin_table[561],  &pinyin_table[126],  &pinyin_table[560],  &pinyin_table[166],  }, /* tiang ei => tian gei */
-    { &pinyin_table[561],  &pinyin_table[127],  &pinyin_table[560],  &pinyin_table[168],  }, /* tiang en => tian gen */
-    { &pinyin_table[561],  &pinyin_table[392],  &pinyin_table[560],  &pinyin_table[173],  }, /* tiang ou => tian gou */
-    { &pinyin_table[563],  &pinyin_table[448],  &pinyin_table[559],  &pinyin_table[128],  }, /* tie r => ti er */
-    { &pinyin_table[566],  &pinyin_table[0],    &pinyin_table[559],  &pinyin_table[350],  }, /* tin a => ti na */
-    { &pinyin_table[566],  &pinyin_table[2],    &pinyin_table[559],  &pinyin_table[352],  }, /* tin ai => ti nai */
-    { &pinyin_table[566],  &pinyin_table[4],    &pinyin_table[559],  &pinyin_table[354],  }, /* tin an => ti nan */
-    { &pinyin_table[566],  &pinyin_table[5],    &pinyin_table[559],  &pinyin_table[355],  }, /* tin ang => ti nang */
-    { &pinyin_table[566],  &pinyin_table[6],    &pinyin_table[559],  &pinyin_table[356],  }, /* tin ao => ti nao */
-    { &pinyin_table[566],  &pinyin_table[125],  &pinyin_table[559],  &pinyin_table[357],  }, /* tin e => ti ne */
-    { &pinyin_table[566],  &pinyin_table[126],  &pinyin_table[559],  &pinyin_table[359],  }, /* tin ei => ti nei */
-    { &pinyin_table[566],  &pinyin_table[127],  &pinyin_table[559],  &pinyin_table[361],  }, /* tin en => ti nen */
-    { &pinyin_table[566],  &pinyin_table[392],  &pinyin_table[559],  &pinyin_table[381],  }, /* tin ou => ti nou */
-    { &pinyin_table[574],  &pinyin_table[0],    &pinyin_table[573],  &pinyin_table[157],  }, /* tuang a => tuan ga */
-    { &pinyin_table[574],  &pinyin_table[2],    &pinyin_table[573],  &pinyin_table[159],  }, /* tuang ai => tuan gai */
-    { &pinyin_table[574],  &pinyin_table[4],    &pinyin_table[573],  &pinyin_table[161],  }, /* tuang an => tuan gan */
-    { &pinyin_table[574],  &pinyin_table[5],    &pinyin_table[573],  &pinyin_table[162],  }, /* tuang ang => tuan gang */
-    { &pinyin_table[574],  &pinyin_table[6],    &pinyin_table[573],  &pinyin_table[163],  }, /* tuang ao => tuan gao */
-    { &pinyin_table[574],  &pinyin_table[125],  &pinyin_table[573],  &pinyin_table[164],  }, /* tuang e => tuan ge */
-    { &pinyin_table[574],  &pinyin_table[126],  &pinyin_table[573],  &pinyin_table[166],  }, /* tuang ei => tuan gei */
-    { &pinyin_table[574],  &pinyin_table[127],  &pinyin_table[573],  &pinyin_table[168],  }, /* tuang en => tuan gen */
-    { &pinyin_table[574],  &pinyin_table[392],  &pinyin_table[573],  &pinyin_table[173],  }, /* tuang ou => tuan gou */
-    { &pinyin_table[578],  &pinyin_table[0],    &pinyin_table[572],  &pinyin_table[350],  }, /* tun a => tu na */
-    { &pinyin_table[578],  &pinyin_table[2],    &pinyin_table[572],  &pinyin_table[352],  }, /* tun ai => tu nai */
-    { &pinyin_table[578],  &pinyin_table[4],    &pinyin_table[572],  &pinyin_table[354],  }, /* tun an => tu nan */
-    { &pinyin_table[578],  &pinyin_table[5],    &pinyin_table[572],  &pinyin_table[355],  }, /* tun ang => tu nang */
-    { &pinyin_table[578],  &pinyin_table[6],    &pinyin_table[572],  &pinyin_table[356],  }, /* tun ao => tu nao */
-    { &pinyin_table[578],  &pinyin_table[125],  &pinyin_table[572],  &pinyin_table[357],  }, /* tun e => tu ne */
-    { &pinyin_table[578],  &pinyin_table[126],  &pinyin_table[572],  &pinyin_table[359],  }, /* tun ei => tu nei */
-    { &pinyin_table[578],  &pinyin_table[127],  &pinyin_table[572],  &pinyin_table[361],  }, /* tun en => tu nen */
-    { &pinyin_table[585],  &pinyin_table[126],  &pinyin_table[581],  &pinyin_table[359],  }, /* wan ei => wa nei */
-    { &pinyin_table[586],  &pinyin_table[5],    &pinyin_table[585],  &pinyin_table[162],  }, /* wang ang => wan gang */
-    { &pinyin_table[586],  &pinyin_table[6],    &pinyin_table[585],  &pinyin_table[163],  }, /* wang ao => wan gao */
-    { &pinyin_table[586],  &pinyin_table[125],  &pinyin_table[585],  &pinyin_table[164],  }, /* wang e => wan ge */
-    { &pinyin_table[586],  &pinyin_table[126],  &pinyin_table[585],  &pinyin_table[166],  }, /* wang ei => wan gei */
-    { &pinyin_table[586],  &pinyin_table[392],  &pinyin_table[585],  &pinyin_table[173],  }, /* wang ou => wan gou */
-    { &pinyin_table[591],  &pinyin_table[0],    &pinyin_table[590],  &pinyin_table[157],  }, /* weng a => wen ga */
-    { &pinyin_table[591],  &pinyin_table[2],    &pinyin_table[590],  &pinyin_table[159],  }, /* weng ai => wen gai */
-    { &pinyin_table[591],  &pinyin_table[4],    &pinyin_table[590],  &pinyin_table[161],  }, /* weng an => wen gan */
-    { &pinyin_table[591],  &pinyin_table[5],    &pinyin_table[590],  &pinyin_table[162],  }, /* weng ang => wen gang */
-    { &pinyin_table[591],  &pinyin_table[6],    &pinyin_table[590],  &pinyin_table[163],  }, /* weng ao => wen gao */
-    { &pinyin_table[591],  &pinyin_table[125],  &pinyin_table[590],  &pinyin_table[164],  }, /* weng e => wen ge */
-    { &pinyin_table[591],  &pinyin_table[126],  &pinyin_table[590],  &pinyin_table[166],  }, /* weng ei => wen gei */
-    { &pinyin_table[591],  &pinyin_table[127],  &pinyin_table[590],  &pinyin_table[168],  }, /* weng en => wen gen */
-    { &pinyin_table[591],  &pinyin_table[392],  &pinyin_table[590],  &pinyin_table[173],  }, /* weng ou => wen gou */
-    { &pinyin_table[599],  &pinyin_table[0],    &pinyin_table[596],  &pinyin_table[350],  }, /* xian a => xia na */
-    { &pinyin_table[599],  &pinyin_table[5],    &pinyin_table[596],  &pinyin_table[355],  }, /* xian ang => xia nang */
-    { &pinyin_table[599],  &pinyin_table[6],    &pinyin_table[596],  &pinyin_table[356],  }, /* xian ao => xia nao */
-    { &pinyin_table[599],  &pinyin_table[126],  &pinyin_table[596],  &pinyin_table[359],  }, /* xian ei => xia nei */
-    { &pinyin_table[600],  &pinyin_table[5],    &pinyin_table[599],  &pinyin_table[162],  }, /* xiang ang => xian gang */
-    { &pinyin_table[600],  &pinyin_table[6],    &pinyin_table[599],  &pinyin_table[163],  }, /* xiang ao => xian gao */
-    { &pinyin_table[600],  &pinyin_table[126],  &pinyin_table[599],  &pinyin_table[166],  }, /* xiang ei => xian gei */
-    { &pinyin_table[600],  &pinyin_table[127],  &pinyin_table[599],  &pinyin_table[168],  }, /* xiang en => xian gen */
-    { &pinyin_table[600],  &pinyin_table[392],  &pinyin_table[599],  &pinyin_table[173],  }, /* xiang ou => xian gou */
-    { &pinyin_table[602],  &pinyin_table[448],  &pinyin_table[595],  &pinyin_table[128],  }, /* xie r => xi er */
-    { &pinyin_table[605],  &pinyin_table[0],    &pinyin_table[595],  &pinyin_table[350],  }, /* xin a => xi na */
-    { &pinyin_table[605],  &pinyin_table[4],    &pinyin_table[595],  &pinyin_table[354],  }, /* xin an => xi nan */
-    { &pinyin_table[605],  &pinyin_table[125],  &pinyin_table[595],  &pinyin_table[357],  }, /* xin e => xi ne */
-    { &pinyin_table[605],  &pinyin_table[126],  &pinyin_table[595],  &pinyin_table[359],  }, /* xin ei => xi nei */
-    { &pinyin_table[605],  &pinyin_table[127],  &pinyin_table[595],  &pinyin_table[361],  }, /* xin en => xi nen */
-    { &pinyin_table[606],  &pinyin_table[4],    &pinyin_table[605],  &pinyin_table[161],  }, /* xing an => xin gan */
-    { &pinyin_table[606],  &pinyin_table[5],    &pinyin_table[605],  &pinyin_table[162],  }, /* xing ang => xin gang */
-    { &pinyin_table[606],  &pinyin_table[6],    &pinyin_table[605],  &pinyin_table[163],  }, /* xing ao => xin gao */
-    { &pinyin_table[606],  &pinyin_table[125],  &pinyin_table[605],  &pinyin_table[164],  }, /* xing e => xin ge */
-    { &pinyin_table[606],  &pinyin_table[126],  &pinyin_table[605],  &pinyin_table[166],  }, /* xing ei => xin gei */
-    { &pinyin_table[606],  &pinyin_table[127],  &pinyin_table[605],  &pinyin_table[168],  }, /* xing en => xin gen */
-    { &pinyin_table[606],  &pinyin_table[392],  &pinyin_table[605],  &pinyin_table[173],  }, /* xing ou => xin gou */
-    { &pinyin_table[614],  &pinyin_table[0],    &pinyin_table[613],  &pinyin_table[157],  }, /* xuang a => xuan ga */
-    { &pinyin_table[614],  &pinyin_table[2],    &pinyin_table[613],  &pinyin_table[159],  }, /* xuang ai => xuan gai */
-    { &pinyin_table[614],  &pinyin_table[4],    &pinyin_table[613],  &pinyin_table[161],  }, /* xuang an => xuan gan */
-    { &pinyin_table[614],  &pinyin_table[5],    &pinyin_table[613],  &pinyin_table[162],  }, /* xuang ang => xuan gang */
-    { &pinyin_table[614],  &pinyin_table[6],    &pinyin_table[613],  &pinyin_table[163],  }, /* xuang ao => xuan gao */
-    { &pinyin_table[614],  &pinyin_table[125],  &pinyin_table[613],  &pinyin_table[164],  }, /* xuang e => xuan ge */
-    { &pinyin_table[614],  &pinyin_table[126],  &pinyin_table[613],  &pinyin_table[166],  }, /* xuang ei => xuan gei */
-    { &pinyin_table[614],  &pinyin_table[127],  &pinyin_table[613],  &pinyin_table[168],  }, /* xuang en => xuan gen */
-    { &pinyin_table[614],  &pinyin_table[392],  &pinyin_table[613],  &pinyin_table[173],  }, /* xuang ou => xuan gou */
-    { &pinyin_table[615],  &pinyin_table[448],  &pinyin_table[612],  &pinyin_table[128],  }, /* xue r => xu er */
-    { &pinyin_table[616],  &pinyin_table[0],    &pinyin_table[615],  &pinyin_table[350],  }, /* xuen a => xue na */
-    { &pinyin_table[616],  &pinyin_table[2],    &pinyin_table[615],  &pinyin_table[352],  }, /* xuen ai => xue nai */
-    { &pinyin_table[616],  &pinyin_table[4],    &pinyin_table[615],  &pinyin_table[354],  }, /* xuen an => xue nan */
-    { &pinyin_table[616],  &pinyin_table[5],    &pinyin_table[615],  &pinyin_table[355],  }, /* xuen ang => xue nang */
-    { &pinyin_table[616],  &pinyin_table[6],    &pinyin_table[615],  &pinyin_table[356],  }, /* xuen ao => xue nao */
-    { &pinyin_table[616],  &pinyin_table[125],  &pinyin_table[615],  &pinyin_table[357],  }, /* xuen e => xue ne */
-    { &pinyin_table[616],  &pinyin_table[126],  &pinyin_table[615],  &pinyin_table[359],  }, /* xuen ei => xue nei */
-    { &pinyin_table[616],  &pinyin_table[127],  &pinyin_table[615],  &pinyin_table[361],  }, /* xuen en => xue nen */
-    { &pinyin_table[616],  &pinyin_table[392],  &pinyin_table[615],  &pinyin_table[381],  }, /* xuen ou => xue nou */
-    { &pinyin_table[617],  &pinyin_table[5],    &pinyin_table[612],  &pinyin_table[355],  }, /* xun ang => xu nang */
-    { &pinyin_table[617],  &pinyin_table[6],    &pinyin_table[612],  &pinyin_table[356],  }, /* xun ao => xu nao */
-    { &pinyin_table[617],  &pinyin_table[125],  &pinyin_table[612],  &pinyin_table[357],  }, /* xun e => xu ne */
-    { &pinyin_table[617],  &pinyin_table[126],  &pinyin_table[612],  &pinyin_table[359],  }, /* xun ei => xu nei */
-    { &pinyin_table[628],  &pinyin_table[0],    &pinyin_table[625],  &pinyin_table[350],  }, /* yan a => ya na */
-    { &pinyin_table[628],  &pinyin_table[125],  &pinyin_table[625],  &pinyin_table[357],  }, /* yan e => ya ne */
-    { &pinyin_table[628],  &pinyin_table[126],  &pinyin_table[625],  &pinyin_table[359],  }, /* yan ei => ya nei */
-    { &pinyin_table[629],  &pinyin_table[2],    &pinyin_table[628],  &pinyin_table[159],  }, /* yang ai => yan gai */
-    { &pinyin_table[629],  &pinyin_table[4],    &pinyin_table[628],  &pinyin_table[161],  }, /* yang an => yan gan */
-    { &pinyin_table[629],  &pinyin_table[5],    &pinyin_table[628],  &pinyin_table[162],  }, /* yang ang => yan gang */
-    { &pinyin_table[629],  &pinyin_table[6],    &pinyin_table[628],  &pinyin_table[163],  }, /* yang ao => yan gao */
-    { &pinyin_table[629],  &pinyin_table[125],  &pinyin_table[628],  &pinyin_table[164],  }, /* yang e => yan ge */
-    { &pinyin_table[629],  &pinyin_table[126],  &pinyin_table[628],  &pinyin_table[166],  }, /* yang ei => yan gei */
-    { &pinyin_table[629],  &pinyin_table[392],  &pinyin_table[628],  &pinyin_table[173],  }, /* yang ou => yan gou */
-    { &pinyin_table[635],  &pinyin_table[0],    &pinyin_table[632],  &pinyin_table[350],  }, /* yin a => yi na */
-    { &pinyin_table[635],  &pinyin_table[2],    &pinyin_table[632],  &pinyin_table[352],  }, /* yin ai => yi nai */
-    { &pinyin_table[635],  &pinyin_table[4],    &pinyin_table[632],  &pinyin_table[354],  }, /* yin an => yi nan */
-    { &pinyin_table[635],  &pinyin_table[5],    &pinyin_table[632],  &pinyin_table[355],  }, /* yin ang => yi nang */
-    { &pinyin_table[635],  &pinyin_table[6],    &pinyin_table[632],  &pinyin_table[356],  }, /* yin ao => yi nao */
-    { &pinyin_table[635],  &pinyin_table[126],  &pinyin_table[632],  &pinyin_table[359],  }, /* yin ei => yi nei */
-    { &pinyin_table[636],  &pinyin_table[2],    &pinyin_table[635],  &pinyin_table[159],  }, /* ying ai => yin gai */
-    { &pinyin_table[636],  &pinyin_table[5],    &pinyin_table[635],  &pinyin_table[162],  }, /* ying ang => yin gang */
-    { &pinyin_table[636],  &pinyin_table[6],    &pinyin_table[635],  &pinyin_table[163],  }, /* ying ao => yin gao */
-    { &pinyin_table[636],  &pinyin_table[126],  &pinyin_table[635],  &pinyin_table[166],  }, /* ying ei => yin gei */
-    { &pinyin_table[636],  &pinyin_table[127],  &pinyin_table[635],  &pinyin_table[168],  }, /* ying en => yin gen */
-    { &pinyin_table[636],  &pinyin_table[392],  &pinyin_table[635],  &pinyin_table[173],  }, /* ying ou => yin gou */
-    { &pinyin_table[644],  &pinyin_table[0],    &pinyin_table[643],  &pinyin_table[157],  }, /* yuang a => yuan ga */
-    { &pinyin_table[644],  &pinyin_table[2],    &pinyin_table[643],  &pinyin_table[159],  }, /* yuang ai => yuan gai */
-    { &pinyin_table[644],  &pinyin_table[4],    &pinyin_table[643],  &pinyin_table[161],  }, /* yuang an => yuan gan */
-    { &pinyin_table[644],  &pinyin_table[5],    &pinyin_table[643],  &pinyin_table[162],  }, /* yuang ang => yuan gang */
-    { &pinyin_table[644],  &pinyin_table[6],    &pinyin_table[643],  &pinyin_table[163],  }, /* yuang ao => yuan gao */
-    { &pinyin_table[644],  &pinyin_table[125],  &pinyin_table[643],  &pinyin_table[164],  }, /* yuang e => yuan ge */
-    { &pinyin_table[644],  &pinyin_table[126],  &pinyin_table[643],  &pinyin_table[166],  }, /* yuang ei => yuan gei */
-    { &pinyin_table[644],  &pinyin_table[127],  &pinyin_table[643],  &pinyin_table[168],  }, /* yuang en => yuan gen */
-    { &pinyin_table[644],  &pinyin_table[392],  &pinyin_table[643],  &pinyin_table[173],  }, /* yuang ou => yuan gou */
-    { &pinyin_table[645],  &pinyin_table[448],  &pinyin_table[642],  &pinyin_table[128],  }, /* yue r => yu er */
-    { &pinyin_table[646],  &pinyin_table[0],    &pinyin_table[645],  &pinyin_table[350],  }, /* yuen a => yue na */
-    { &pinyin_table[646],  &pinyin_table[2],    &pinyin_table[645],  &pinyin_table[352],  }, /* yuen ai => yue nai */
-    { &pinyin_table[646],  &pinyin_table[4],    &pinyin_table[645],  &pinyin_table[354],  }, /* yuen an => yue nan */
-    { &pinyin_table[646],  &pinyin_table[5],    &pinyin_table[645],  &pinyin_table[355],  }, /* yuen ang => yue nang */
-    { &pinyin_table[646],  &pinyin_table[6],    &pinyin_table[645],  &pinyin_table[356],  }, /* yuen ao => yue nao */
-    { &pinyin_table[646],  &pinyin_table[125],  &pinyin_table[645],  &pinyin_table[357],  }, /* yuen e => yue ne */
-    { &pinyin_table[646],  &pinyin_table[126],  &pinyin_table[645],  &pinyin_table[359],  }, /* yuen ei => yue nei */
-    { &pinyin_table[646],  &pinyin_table[127],  &pinyin_table[645],  &pinyin_table[361],  }, /* yuen en => yue nen */
-    { &pinyin_table[646],  &pinyin_table[392],  &pinyin_table[645],  &pinyin_table[381],  }, /* yuen ou => yue nou */
-    { &pinyin_table[647],  &pinyin_table[0],    &pinyin_table[642],  &pinyin_table[350],  }, /* yun a => yu na */
-    { &pinyin_table[647],  &pinyin_table[2],    &pinyin_table[642],  &pinyin_table[352],  }, /* yun ai => yu nai */
-    { &pinyin_table[647],  &pinyin_table[4],    &pinyin_table[642],  &pinyin_table[354],  }, /* yun an => yu nan */
-    { &pinyin_table[647],  &pinyin_table[5],    &pinyin_table[642],  &pinyin_table[355],  }, /* yun ang => yu nang */
-    { &pinyin_table[647],  &pinyin_table[6],    &pinyin_table[642],  &pinyin_table[356],  }, /* yun ao => yu nao */
-    { &pinyin_table[647],  &pinyin_table[125],  &pinyin_table[642],  &pinyin_table[357],  }, /* yun e => yu ne */
-    { &pinyin_table[647],  &pinyin_table[126],  &pinyin_table[642],  &pinyin_table[359],  }, /* yun ei => yu nei */
-    { &pinyin_table[659],  &pinyin_table[0],    &pinyin_table[655],  &pinyin_table[350],  }, /* zan a => za na */
-    { &pinyin_table[659],  &pinyin_table[4],    &pinyin_table[655],  &pinyin_table[354],  }, /* zan an => za nan */
-    { &pinyin_table[659],  &pinyin_table[5],    &pinyin_table[655],  &pinyin_table[355],  }, /* zan ang => za nang */
-    { &pinyin_table[659],  &pinyin_table[6],    &pinyin_table[655],  &pinyin_table[356],  }, /* zan ao => za nao */
-    { &pinyin_table[659],  &pinyin_table[125],  &pinyin_table[655],  &pinyin_table[357],  }, /* zan e => za ne */
-    { &pinyin_table[659],  &pinyin_table[126],  &pinyin_table[655],  &pinyin_table[359],  }, /* zan ei => za nei */
-    { &pinyin_table[660],  &pinyin_table[4],    &pinyin_table[659],  &pinyin_table[161],  }, /* zang an => zan gan */
-    { &pinyin_table[660],  &pinyin_table[5],    &pinyin_table[659],  &pinyin_table[162],  }, /* zang ang => zan gang */
-    { &pinyin_table[660],  &pinyin_table[6],    &pinyin_table[659],  &pinyin_table[163],  }, /* zang ao => zan gao */
-    { &pinyin_table[660],  &pinyin_table[125],  &pinyin_table[659],  &pinyin_table[164],  }, /* zang e => zan ge */
-    { &pinyin_table[660],  &pinyin_table[126],  &pinyin_table[659],  &pinyin_table[166],  }, /* zang ei => zan gei */
-    { &pinyin_table[660],  &pinyin_table[127],  &pinyin_table[659],  &pinyin_table[168],  }, /* zang en => zan gen */
-    { &pinyin_table[660],  &pinyin_table[392],  &pinyin_table[659],  &pinyin_table[173],  }, /* zang ou => zan gou */
-    { &pinyin_table[666],  &pinyin_table[0],    &pinyin_table[662],  &pinyin_table[350],  }, /* zen a => ze na */
-    { &pinyin_table[666],  &pinyin_table[4],    &pinyin_table[662],  &pinyin_table[354],  }, /* zen an => ze nan */
-    { &pinyin_table[666],  &pinyin_table[6],    &pinyin_table[662],  &pinyin_table[356],  }, /* zen ao => ze nao */
-    { &pinyin_table[666],  &pinyin_table[125],  &pinyin_table[662],  &pinyin_table[357],  }, /* zen e => ze ne */
-    { &pinyin_table[666],  &pinyin_table[126],  &pinyin_table[662],  &pinyin_table[359],  }, /* zen ei => ze nei */
-    { &pinyin_table[667],  &pinyin_table[2],    &pinyin_table[666],  &pinyin_table[159],  }, /* zeng ai => zen gai */
-    { &pinyin_table[667],  &pinyin_table[4],    &pinyin_table[666],  &pinyin_table[161],  }, /* zeng an => zen gan */
-    { &pinyin_table[667],  &pinyin_table[5],    &pinyin_table[666],  &pinyin_table[162],  }, /* zeng ang => zen gang */
-    { &pinyin_table[667],  &pinyin_table[6],    &pinyin_table[666],  &pinyin_table[163],  }, /* zeng ao => zen gao */
-    { &pinyin_table[667],  &pinyin_table[126],  &pinyin_table[666],  &pinyin_table[166],  }, /* zeng ei => zen gei */
-    { &pinyin_table[667],  &pinyin_table[127],  &pinyin_table[666],  &pinyin_table[168],  }, /* zeng en => zen gen */
-    { &pinyin_table[667],  &pinyin_table[392],  &pinyin_table[666],  &pinyin_table[173],  }, /* zeng ou => zen gou */
-    { &pinyin_table[673],  &pinyin_table[126],  &pinyin_table[669],  &pinyin_table[359],  }, /* zhan ei => zha nei */
-    { &pinyin_table[674],  &pinyin_table[4],    &pinyin_table[673],  &pinyin_table[161],  }, /* zhang an => zhan gan */
-    { &pinyin_table[674],  &pinyin_table[5],    &pinyin_table[673],  &pinyin_table[162],  }, /* zhang ang => zhan gang */
-    { &pinyin_table[674],  &pinyin_table[6],    &pinyin_table[673],  &pinyin_table[163],  }, /* zhang ao => zhan gao */
-    { &pinyin_table[674],  &pinyin_table[125],  &pinyin_table[673],  &pinyin_table[164],  }, /* zhang e => zhan ge */
-    { &pinyin_table[674],  &pinyin_table[126],  &pinyin_table[673],  &pinyin_table[166],  }, /* zhang ei => zhan gei */
-    { &pinyin_table[674],  &pinyin_table[127],  &pinyin_table[673],  &pinyin_table[168],  }, /* zhang en => zhan gen */
-    { &pinyin_table[674],  &pinyin_table[392],  &pinyin_table[673],  &pinyin_table[173],  }, /* zhang ou => zhan gou */
-    { &pinyin_table[680],  &pinyin_table[0],    &pinyin_table[676],  &pinyin_table[350],  }, /* zhen a => zhe na */
-    { &pinyin_table[680],  &pinyin_table[4],    &pinyin_table[676],  &pinyin_table[354],  }, /* zhen an => zhe nan */
-    { &pinyin_table[680],  &pinyin_table[5],    &pinyin_table[676],  &pinyin_table[355],  }, /* zhen ang => zhe nang */
-    { &pinyin_table[680],  &pinyin_table[6],    &pinyin_table[676],  &pinyin_table[356],  }, /* zhen ao => zhe nao */
-    { &pinyin_table[680],  &pinyin_table[125],  &pinyin_table[676],  &pinyin_table[357],  }, /* zhen e => zhe ne */
-    { &pinyin_table[680],  &pinyin_table[126],  &pinyin_table[676],  &pinyin_table[359],  }, /* zhen ei => zhe nei */
-    { &pinyin_table[681],  &pinyin_table[2],    &pinyin_table[680],  &pinyin_table[159],  }, /* zheng ai => zhen gai */
-    { &pinyin_table[681],  &pinyin_table[4],    &pinyin_table[680],  &pinyin_table[161],  }, /* zheng an => zhen gan */
-    { &pinyin_table[681],  &pinyin_table[5],    &pinyin_table[680],  &pinyin_table[162],  }, /* zheng ang => zhen gang */
-    { &pinyin_table[681],  &pinyin_table[6],    &pinyin_table[680],  &pinyin_table[163],  }, /* zheng ao => zhen gao */
-    { &pinyin_table[681],  &pinyin_table[125],  &pinyin_table[680],  &pinyin_table[164],  }, /* zheng e => zhen ge */
-    { &pinyin_table[681],  &pinyin_table[126],  &pinyin_table[680],  &pinyin_table[166],  }, /* zheng ei => zhen gei */
-    { &pinyin_table[681],  &pinyin_table[127],  &pinyin_table[680],  &pinyin_table[168],  }, /* zheng en => zhen gen */
-    { &pinyin_table[681],  &pinyin_table[392],  &pinyin_table[680],  &pinyin_table[173],  }, /* zheng ou => zhen gou */
-    { &pinyin_table[692],  &pinyin_table[6],    &pinyin_table[688],  &pinyin_table[356],  }, /* zhuan ao => zhua nao */
-    { &pinyin_table[692],  &pinyin_table[125],  &pinyin_table[688],  &pinyin_table[357],  }, /* zhuan e => zhua ne */
-    { &pinyin_table[692],  &pinyin_table[126],  &pinyin_table[688],  &pinyin_table[359],  }, /* zhuan ei => zhua nei */
-    { &pinyin_table[693],  &pinyin_table[2],    &pinyin_table[692],  &pinyin_table[159],  }, /* zhuang ai => zhuan gai */
-    { &pinyin_table[693],  &pinyin_table[4],    &pinyin_table[692],  &pinyin_table[161],  }, /* zhuang an => zhuan gan */
-    { &pinyin_table[693],  &pinyin_table[5],    &pinyin_table[692],  &pinyin_table[162],  }, /* zhuang ang => zhuan gang */
-    { &pinyin_table[693],  &pinyin_table[6],    &pinyin_table[692],  &pinyin_table[163],  }, /* zhuang ao => zhuan gao */
-    { &pinyin_table[693],  &pinyin_table[125],  &pinyin_table[692],  &pinyin_table[164],  }, /* zhuang e => zhuan ge */
-    { &pinyin_table[693],  &pinyin_table[126],  &pinyin_table[692],  &pinyin_table[166],  }, /* zhuang ei => zhuan gei */
-    { &pinyin_table[693],  &pinyin_table[127],  &pinyin_table[692],  &pinyin_table[168],  }, /* zhuang en => zhuan gen */
-    { &pinyin_table[693],  &pinyin_table[392],  &pinyin_table[692],  &pinyin_table[173],  }, /* zhuang ou => zhuan gou */
-    { &pinyin_table[697],  &pinyin_table[0],    &pinyin_table[687],  &pinyin_table[350],  }, /* zhun a => zhu na */
-    { &pinyin_table[697],  &pinyin_table[4],    &pinyin_table[687],  &pinyin_table[354],  }, /* zhun an => zhu nan */
-    { &pinyin_table[697],  &pinyin_table[5],    &pinyin_table[687],  &pinyin_table[355],  }, /* zhun ang => zhu nang */
-    { &pinyin_table[697],  &pinyin_table[6],    &pinyin_table[687],  &pinyin_table[356],  }, /* zhun ao => zhu nao */
-    { &pinyin_table[697],  &pinyin_table[125],  &pinyin_table[687],  &pinyin_table[357],  }, /* zhun e => zhu ne */
-    { &pinyin_table[697],  &pinyin_table[126],  &pinyin_table[687],  &pinyin_table[359],  }, /* zhun ei => zhu nei */
-    { &pinyin_table[708],  &pinyin_table[0],    &pinyin_table[707],  &pinyin_table[157],  }, /* zuang a => zuan ga */
-    { &pinyin_table[708],  &pinyin_table[2],    &pinyin_table[707],  &pinyin_table[159],  }, /* zuang ai => zuan gai */
-    { &pinyin_table[708],  &pinyin_table[4],    &pinyin_table[707],  &pinyin_table[161],  }, /* zuang an => zuan gan */
-    { &pinyin_table[708],  &pinyin_table[5],    &pinyin_table[707],  &pinyin_table[162],  }, /* zuang ang => zuan gang */
-    { &pinyin_table[708],  &pinyin_table[6],    &pinyin_table[707],  &pinyin_table[163],  }, /* zuang ao => zuan gao */
-    { &pinyin_table[708],  &pinyin_table[125],  &pinyin_table[707],  &pinyin_table[164],  }, /* zuang e => zuan ge */
-    { &pinyin_table[708],  &pinyin_table[126],  &pinyin_table[707],  &pinyin_table[166],  }, /* zuang ei => zuan gei */
-    { &pinyin_table[708],  &pinyin_table[127],  &pinyin_table[707],  &pinyin_table[168],  }, /* zuang en => zuan gen */
-    { &pinyin_table[708],  &pinyin_table[392],  &pinyin_table[707],  &pinyin_table[173],  }, /* zuang ou => zuan gou */
-    { &pinyin_table[712],  &pinyin_table[0],    &pinyin_table[704],  &pinyin_table[350],  }, /* zun a => zu na */
-    { &pinyin_table[712],  &pinyin_table[4],    &pinyin_table[704],  &pinyin_table[354],  }, /* zun an => zu nan */
-    { &pinyin_table[712],  &pinyin_table[5],    &pinyin_table[704],  &pinyin_table[355],  }, /* zun ang => zu nang */
-    { &pinyin_table[712],  &pinyin_table[6],    &pinyin_table[704],  &pinyin_table[356],  }, /* zun ao => zu nao */
-    { &pinyin_table[712],  &pinyin_table[125],  &pinyin_table[704],  &pinyin_table[357],  }, /* zun e => zu ne */
-    { &pinyin_table[712],  &pinyin_table[126],  &pinyin_table[704],  &pinyin_table[359],  }, /* zun ei => zu nei */
+    { &pinyin_table[4],    &pinyin_table[0],    &pinyin_table[0],    &pinyin_table[359],  }, /* an a => a na */
+    { &pinyin_table[4],    &pinyin_table[2],    &pinyin_table[0],    &pinyin_table[361],  }, /* an ai => a nai */
+    { &pinyin_table[4],    &pinyin_table[6],    &pinyin_table[0],    &pinyin_table[365],  }, /* an ao => a nao */
+    { &pinyin_table[4],    &pinyin_table[128],  &pinyin_table[0],    &pinyin_table[366],  }, /* an e => a ne */
+    { &pinyin_table[4],    &pinyin_table[129],  &pinyin_table[0],    &pinyin_table[368],  }, /* an ei => a nei */
+    { &pinyin_table[5],    &pinyin_table[0],    &pinyin_table[4],    &pinyin_table[161],  }, /* ang a => an ga */
+    { &pinyin_table[5],    &pinyin_table[2],    &pinyin_table[4],    &pinyin_table[163],  }, /* ang ai => an gai */
+    { &pinyin_table[5],    &pinyin_table[4],    &pinyin_table[4],    &pinyin_table[165],  }, /* ang an => an gan */
+    { &pinyin_table[5],    &pinyin_table[5],    &pinyin_table[4],    &pinyin_table[166],  }, /* ang ang => an gang */
+    { &pinyin_table[5],    &pinyin_table[6],    &pinyin_table[4],    &pinyin_table[167],  }, /* ang ao => an gao */
+    { &pinyin_table[5],    &pinyin_table[128],  &pinyin_table[4],    &pinyin_table[168],  }, /* ang e => an ge */
+    { &pinyin_table[5],    &pinyin_table[129],  &pinyin_table[4],    &pinyin_table[170],  }, /* ang ei => an gei */
+    { &pinyin_table[5],    &pinyin_table[130],  &pinyin_table[4],    &pinyin_table[172],  }, /* ang en => an gen */
+    { &pinyin_table[5],    &pinyin_table[402],  &pinyin_table[4],    &pinyin_table[178],  }, /* ang ou => an gou */
+    { &pinyin_table[12],   &pinyin_table[0],    &pinyin_table[8],    &pinyin_table[359],  }, /* ban a => ba na */
+    { &pinyin_table[12],   &pinyin_table[5],    &pinyin_table[8],    &pinyin_table[364],  }, /* ban ang => ba nang */
+    { &pinyin_table[12],   &pinyin_table[6],    &pinyin_table[8],    &pinyin_table[365],  }, /* ban ao => ba nao */
+    { &pinyin_table[12],   &pinyin_table[128],  &pinyin_table[8],    &pinyin_table[366],  }, /* ban e => ba ne */
+    { &pinyin_table[12],   &pinyin_table[129],  &pinyin_table[8],    &pinyin_table[368],  }, /* ban ei => ba nei */
+    { &pinyin_table[13],   &pinyin_table[2],    &pinyin_table[12],   &pinyin_table[163],  }, /* bang ai => ban gai */
+    { &pinyin_table[13],   &pinyin_table[5],    &pinyin_table[12],   &pinyin_table[166],  }, /* bang ang => ban gang */
+    { &pinyin_table[13],   &pinyin_table[6],    &pinyin_table[12],   &pinyin_table[167],  }, /* bang ao => ban gao */
+    { &pinyin_table[13],   &pinyin_table[128],  &pinyin_table[12],   &pinyin_table[168],  }, /* bang e => ban ge */
+    { &pinyin_table[13],   &pinyin_table[129],  &pinyin_table[12],   &pinyin_table[170],  }, /* bang ei => ban gei */
+    { &pinyin_table[13],   &pinyin_table[130],  &pinyin_table[12],   &pinyin_table[172],  }, /* bang en => ban gen */
+    { &pinyin_table[19],   &pinyin_table[0],    &pinyin_table[18],   &pinyin_table[161],  }, /* beng a => ben ga */
+    { &pinyin_table[19],   &pinyin_table[2],    &pinyin_table[18],   &pinyin_table[163],  }, /* beng ai => ben gai */
+    { &pinyin_table[19],   &pinyin_table[4],    &pinyin_table[18],   &pinyin_table[165],  }, /* beng an => ben gan */
+    { &pinyin_table[19],   &pinyin_table[5],    &pinyin_table[18],   &pinyin_table[166],  }, /* beng ang => ben gang */
+    { &pinyin_table[19],   &pinyin_table[6],    &pinyin_table[18],   &pinyin_table[167],  }, /* beng ao => ben gao */
+    { &pinyin_table[19],   &pinyin_table[128],  &pinyin_table[18],   &pinyin_table[168],  }, /* beng e => ben ge */
+    { &pinyin_table[19],   &pinyin_table[129],  &pinyin_table[18],   &pinyin_table[170],  }, /* beng ei => ben gei */
+    { &pinyin_table[19],   &pinyin_table[130],  &pinyin_table[18],   &pinyin_table[172],  }, /* beng en => ben gen */
+    { &pinyin_table[19],   &pinyin_table[402],  &pinyin_table[18],   &pinyin_table[178],  }, /* beng ou => ben gou */
+    { &pinyin_table[22],   &pinyin_table[0],    &pinyin_table[21],   &pinyin_table[161],  }, /* biang a => bian ga */
+    { &pinyin_table[22],   &pinyin_table[2],    &pinyin_table[21],   &pinyin_table[163],  }, /* biang ai => bian gai */
+    { &pinyin_table[22],   &pinyin_table[4],    &pinyin_table[21],   &pinyin_table[165],  }, /* biang an => bian gan */
+    { &pinyin_table[22],   &pinyin_table[5],    &pinyin_table[21],   &pinyin_table[166],  }, /* biang ang => bian gang */
+    { &pinyin_table[22],   &pinyin_table[6],    &pinyin_table[21],   &pinyin_table[167],  }, /* biang ao => bian gao */
+    { &pinyin_table[22],   &pinyin_table[128],  &pinyin_table[21],   &pinyin_table[168],  }, /* biang e => bian ge */
+    { &pinyin_table[22],   &pinyin_table[129],  &pinyin_table[21],   &pinyin_table[170],  }, /* biang ei => bian gei */
+    { &pinyin_table[22],   &pinyin_table[130],  &pinyin_table[21],   &pinyin_table[172],  }, /* biang en => bian gen */
+    { &pinyin_table[22],   &pinyin_table[402],  &pinyin_table[21],   &pinyin_table[178],  }, /* biang ou => bian gou */
+    { &pinyin_table[24],   &pinyin_table[459],  &pinyin_table[20],   &pinyin_table[131],  }, /* bie r => bi er */
+    { &pinyin_table[27],   &pinyin_table[0],    &pinyin_table[20],   &pinyin_table[359],  }, /* bin a => bi na */
+    { &pinyin_table[27],   &pinyin_table[2],    &pinyin_table[20],   &pinyin_table[361],  }, /* bin ai => bi nai */
+    { &pinyin_table[27],   &pinyin_table[4],    &pinyin_table[20],   &pinyin_table[363],  }, /* bin an => bi nan */
+    { &pinyin_table[27],   &pinyin_table[5],    &pinyin_table[20],   &pinyin_table[364],  }, /* bin ang => bi nang */
+    { &pinyin_table[27],   &pinyin_table[6],    &pinyin_table[20],   &pinyin_table[365],  }, /* bin ao => bi nao */
+    { &pinyin_table[27],   &pinyin_table[128],  &pinyin_table[20],   &pinyin_table[366],  }, /* bin e => bi ne */
+    { &pinyin_table[27],   &pinyin_table[129],  &pinyin_table[20],   &pinyin_table[368],  }, /* bin ei => bi nei */
+    { &pinyin_table[27],   &pinyin_table[130],  &pinyin_table[20],   &pinyin_table[370],  }, /* bin en => bi nen */
+    { &pinyin_table[28],   &pinyin_table[128],  &pinyin_table[27],   &pinyin_table[168],  }, /* bing e => bin ge */
+    { &pinyin_table[28],   &pinyin_table[129],  &pinyin_table[27],   &pinyin_table[170],  }, /* bing ei => bin gei */
+    { &pinyin_table[36],   &pinyin_table[129],  &pinyin_table[32],   &pinyin_table[368],  }, /* can ei => ca nei */
+    { &pinyin_table[37],   &pinyin_table[4],    &pinyin_table[36],   &pinyin_table[165],  }, /* cang an => can gan */
+    { &pinyin_table[37],   &pinyin_table[5],    &pinyin_table[36],   &pinyin_table[166],  }, /* cang ang => can gang */
+    { &pinyin_table[37],   &pinyin_table[128],  &pinyin_table[36],   &pinyin_table[168],  }, /* cang e => can ge */
+    { &pinyin_table[37],   &pinyin_table[129],  &pinyin_table[36],   &pinyin_table[170],  }, /* cang ei => can gei */
+    { &pinyin_table[37],   &pinyin_table[130],  &pinyin_table[36],   &pinyin_table[172],  }, /* cang en => can gen */
+    { &pinyin_table[37],   &pinyin_table[402],  &pinyin_table[36],   &pinyin_table[178],  }, /* cang ou => can gou */
+    { &pinyin_table[42],   &pinyin_table[0],    &pinyin_table[39],   &pinyin_table[359],  }, /* cen a => ce na */
+    { &pinyin_table[42],   &pinyin_table[2],    &pinyin_table[39],   &pinyin_table[361],  }, /* cen ai => ce nai */
+    { &pinyin_table[42],   &pinyin_table[4],    &pinyin_table[39],   &pinyin_table[363],  }, /* cen an => ce nan */
+    { &pinyin_table[42],   &pinyin_table[5],    &pinyin_table[39],   &pinyin_table[364],  }, /* cen ang => ce nang */
+    { &pinyin_table[42],   &pinyin_table[6],    &pinyin_table[39],   &pinyin_table[365],  }, /* cen ao => ce nao */
+    { &pinyin_table[42],   &pinyin_table[128],  &pinyin_table[39],   &pinyin_table[366],  }, /* cen e => ce ne */
+    { &pinyin_table[42],   &pinyin_table[129],  &pinyin_table[39],   &pinyin_table[368],  }, /* cen ei => ce nei */
+    { &pinyin_table[42],   &pinyin_table[130],  &pinyin_table[39],   &pinyin_table[370],  }, /* cen en => ce nen */
+    { &pinyin_table[43],   &pinyin_table[129],  &pinyin_table[42],   &pinyin_table[170],  }, /* ceng ei => cen gei */
+    { &pinyin_table[49],   &pinyin_table[0],    &pinyin_table[45],   &pinyin_table[359],  }, /* chan a => cha na */
+    { &pinyin_table[49],   &pinyin_table[6],    &pinyin_table[45],   &pinyin_table[365],  }, /* chan ao => cha nao */
+    { &pinyin_table[49],   &pinyin_table[128],  &pinyin_table[45],   &pinyin_table[366],  }, /* chan e => cha ne */
+    { &pinyin_table[49],   &pinyin_table[129],  &pinyin_table[45],   &pinyin_table[368],  }, /* chan ei => cha nei */
+    { &pinyin_table[50],   &pinyin_table[5],    &pinyin_table[49],   &pinyin_table[166],  }, /* chang ang => chan gang */
+    { &pinyin_table[50],   &pinyin_table[6],    &pinyin_table[49],   &pinyin_table[167],  }, /* chang ao => chan gao */
+    { &pinyin_table[50],   &pinyin_table[129],  &pinyin_table[49],   &pinyin_table[170],  }, /* chang ei => chan gei */
+    { &pinyin_table[50],   &pinyin_table[130],  &pinyin_table[49],   &pinyin_table[172],  }, /* chang en => chan gen */
+    { &pinyin_table[50],   &pinyin_table[402],  &pinyin_table[49],   &pinyin_table[178],  }, /* chang ou => chan gou */
+    { &pinyin_table[55],   &pinyin_table[0],    &pinyin_table[52],   &pinyin_table[359],  }, /* chen a => che na */
+    { &pinyin_table[55],   &pinyin_table[4],    &pinyin_table[52],   &pinyin_table[363],  }, /* chen an => che nan */
+    { &pinyin_table[55],   &pinyin_table[5],    &pinyin_table[52],   &pinyin_table[364],  }, /* chen ang => che nang */
+    { &pinyin_table[55],   &pinyin_table[6],    &pinyin_table[52],   &pinyin_table[365],  }, /* chen ao => che nao */
+    { &pinyin_table[55],   &pinyin_table[128],  &pinyin_table[52],   &pinyin_table[366],  }, /* chen e => che ne */
+    { &pinyin_table[55],   &pinyin_table[129],  &pinyin_table[52],   &pinyin_table[368],  }, /* chen ei => che nei */
+    { &pinyin_table[56],   &pinyin_table[5],    &pinyin_table[55],   &pinyin_table[166],  }, /* cheng ang => chen gang */
+    { &pinyin_table[56],   &pinyin_table[6],    &pinyin_table[55],   &pinyin_table[167],  }, /* cheng ao => chen gao */
+    { &pinyin_table[56],   &pinyin_table[129],  &pinyin_table[55],   &pinyin_table[170],  }, /* cheng ei => chen gei */
+    { &pinyin_table[56],   &pinyin_table[402],  &pinyin_table[55],   &pinyin_table[178],  }, /* cheng ou => chen gou */
+    { &pinyin_table[68],   &pinyin_table[4],    &pinyin_table[67],   &pinyin_table[165],  }, /* chuang an => chuan gan */
+    { &pinyin_table[68],   &pinyin_table[5],    &pinyin_table[67],   &pinyin_table[166],  }, /* chuang ang => chuan gang */
+    { &pinyin_table[68],   &pinyin_table[6],    &pinyin_table[67],   &pinyin_table[167],  }, /* chuang ao => chuan gao */
+    { &pinyin_table[68],   &pinyin_table[128],  &pinyin_table[67],   &pinyin_table[168],  }, /* chuang e => chuan ge */
+    { &pinyin_table[68],   &pinyin_table[129],  &pinyin_table[67],   &pinyin_table[170],  }, /* chuang ei => chuan gei */
+    { &pinyin_table[68],   &pinyin_table[130],  &pinyin_table[67],   &pinyin_table[172],  }, /* chuang en => chuan gen */
+    { &pinyin_table[68],   &pinyin_table[402],  &pinyin_table[67],   &pinyin_table[178],  }, /* chuang ou => chuan gou */
+    { &pinyin_table[72],   &pinyin_table[0],    &pinyin_table[63],   &pinyin_table[359],  }, /* chun a => chu na */
+    { &pinyin_table[72],   &pinyin_table[4],    &pinyin_table[63],   &pinyin_table[363],  }, /* chun an => chu nan */
+    { &pinyin_table[72],   &pinyin_table[5],    &pinyin_table[63],   &pinyin_table[364],  }, /* chun ang => chu nang */
+    { &pinyin_table[72],   &pinyin_table[6],    &pinyin_table[63],   &pinyin_table[365],  }, /* chun ao => chu nao */
+    { &pinyin_table[72],   &pinyin_table[128],  &pinyin_table[63],   &pinyin_table[366],  }, /* chun e => chu ne */
+    { &pinyin_table[72],   &pinyin_table[129],  &pinyin_table[63],   &pinyin_table[368],  }, /* chun ei => chu nei */
+    { &pinyin_table[83],   &pinyin_table[0],    &pinyin_table[82],   &pinyin_table[161],  }, /* cuang a => cuan ga */
+    { &pinyin_table[83],   &pinyin_table[2],    &pinyin_table[82],   &pinyin_table[163],  }, /* cuang ai => cuan gai */
+    { &pinyin_table[83],   &pinyin_table[4],    &pinyin_table[82],   &pinyin_table[165],  }, /* cuang an => cuan gan */
+    { &pinyin_table[83],   &pinyin_table[5],    &pinyin_table[82],   &pinyin_table[166],  }, /* cuang ang => cuan gang */
+    { &pinyin_table[83],   &pinyin_table[6],    &pinyin_table[82],   &pinyin_table[167],  }, /* cuang ao => cuan gao */
+    { &pinyin_table[83],   &pinyin_table[128],  &pinyin_table[82],   &pinyin_table[168],  }, /* cuang e => cuan ge */
+    { &pinyin_table[83],   &pinyin_table[129],  &pinyin_table[82],   &pinyin_table[170],  }, /* cuang ei => cuan gei */
+    { &pinyin_table[83],   &pinyin_table[130],  &pinyin_table[82],   &pinyin_table[172],  }, /* cuang en => cuan gen */
+    { &pinyin_table[83],   &pinyin_table[402],  &pinyin_table[82],   &pinyin_table[178],  }, /* cuang ou => cuan gou */
+    { &pinyin_table[87],   &pinyin_table[128],  &pinyin_table[80],   &pinyin_table[366],  }, /* cun e => cu ne */
+    { &pinyin_table[87],   &pinyin_table[129],  &pinyin_table[80],   &pinyin_table[368],  }, /* cun ei => cu nei */
+    { &pinyin_table[94],   &pinyin_table[0],    &pinyin_table[90],   &pinyin_table[359],  }, /* dan a => da na */
+    { &pinyin_table[94],   &pinyin_table[2],    &pinyin_table[90],   &pinyin_table[361],  }, /* dan ai => da nai */
+    { &pinyin_table[94],   &pinyin_table[4],    &pinyin_table[90],   &pinyin_table[363],  }, /* dan an => da nan */
+    { &pinyin_table[94],   &pinyin_table[5],    &pinyin_table[90],   &pinyin_table[364],  }, /* dan ang => da nang */
+    { &pinyin_table[94],   &pinyin_table[6],    &pinyin_table[90],   &pinyin_table[365],  }, /* dan ao => da nao */
+    { &pinyin_table[94],   &pinyin_table[128],  &pinyin_table[90],   &pinyin_table[366],  }, /* dan e => da ne */
+    { &pinyin_table[94],   &pinyin_table[129],  &pinyin_table[90],   &pinyin_table[368],  }, /* dan ei => da nei */
+    { &pinyin_table[95],   &pinyin_table[2],    &pinyin_table[94],   &pinyin_table[163],  }, /* dang ai => dan gai */
+    { &pinyin_table[95],   &pinyin_table[5],    &pinyin_table[94],   &pinyin_table[166],  }, /* dang ang => dan gang */
+    { &pinyin_table[95],   &pinyin_table[6],    &pinyin_table[94],   &pinyin_table[167],  }, /* dang ao => dan gao */
+    { &pinyin_table[95],   &pinyin_table[128],  &pinyin_table[94],   &pinyin_table[168],  }, /* dang e => dan ge */
+    { &pinyin_table[95],   &pinyin_table[129],  &pinyin_table[94],   &pinyin_table[170],  }, /* dang ei => dan gei */
+    { &pinyin_table[95],   &pinyin_table[130],  &pinyin_table[94],   &pinyin_table[172],  }, /* dang en => dan gen */
+    { &pinyin_table[101],  &pinyin_table[0],    &pinyin_table[97],   &pinyin_table[359],  }, /* den a => de na */
+    { &pinyin_table[101],  &pinyin_table[2],    &pinyin_table[97],   &pinyin_table[361],  }, /* den ai => de nai */
+    { &pinyin_table[101],  &pinyin_table[4],    &pinyin_table[97],   &pinyin_table[363],  }, /* den an => de nan */
+    { &pinyin_table[101],  &pinyin_table[5],    &pinyin_table[97],   &pinyin_table[364],  }, /* den ang => de nang */
+    { &pinyin_table[101],  &pinyin_table[6],    &pinyin_table[97],   &pinyin_table[365],  }, /* den ao => de nao */
+    { &pinyin_table[101],  &pinyin_table[128],  &pinyin_table[97],   &pinyin_table[366],  }, /* den e => de ne */
+    { &pinyin_table[101],  &pinyin_table[129],  &pinyin_table[97],   &pinyin_table[368],  }, /* den ei => de nei */
+    { &pinyin_table[101],  &pinyin_table[130],  &pinyin_table[97],   &pinyin_table[370],  }, /* den en => de nen */
+    { &pinyin_table[101],  &pinyin_table[402],  &pinyin_table[97],   &pinyin_table[391],  }, /* den ou => de nou */
+    { &pinyin_table[106],  &pinyin_table[0],    &pinyin_table[105],  &pinyin_table[161],  }, /* diang a => dian ga */
+    { &pinyin_table[106],  &pinyin_table[2],    &pinyin_table[105],  &pinyin_table[163],  }, /* diang ai => dian gai */
+    { &pinyin_table[106],  &pinyin_table[4],    &pinyin_table[105],  &pinyin_table[165],  }, /* diang an => dian gan */
+    { &pinyin_table[106],  &pinyin_table[5],    &pinyin_table[105],  &pinyin_table[166],  }, /* diang ang => dian gang */
+    { &pinyin_table[106],  &pinyin_table[6],    &pinyin_table[105],  &pinyin_table[167],  }, /* diang ao => dian gao */
+    { &pinyin_table[106],  &pinyin_table[128],  &pinyin_table[105],  &pinyin_table[168],  }, /* diang e => dian ge */
+    { &pinyin_table[106],  &pinyin_table[129],  &pinyin_table[105],  &pinyin_table[170],  }, /* diang ei => dian gei */
+    { &pinyin_table[106],  &pinyin_table[130],  &pinyin_table[105],  &pinyin_table[172],  }, /* diang en => dian gen */
+    { &pinyin_table[106],  &pinyin_table[402],  &pinyin_table[105],  &pinyin_table[178],  }, /* diang ou => dian gou */
+    { &pinyin_table[108],  &pinyin_table[459],  &pinyin_table[103],  &pinyin_table[131],  }, /* die r => di er */
+    { &pinyin_table[111],  &pinyin_table[0],    &pinyin_table[103],  &pinyin_table[359],  }, /* din a => di na */
+    { &pinyin_table[111],  &pinyin_table[2],    &pinyin_table[103],  &pinyin_table[361],  }, /* din ai => di nai */
+    { &pinyin_table[111],  &pinyin_table[4],    &pinyin_table[103],  &pinyin_table[363],  }, /* din an => di nan */
+    { &pinyin_table[111],  &pinyin_table[5],    &pinyin_table[103],  &pinyin_table[364],  }, /* din ang => di nang */
+    { &pinyin_table[111],  &pinyin_table[6],    &pinyin_table[103],  &pinyin_table[365],  }, /* din ao => di nao */
+    { &pinyin_table[111],  &pinyin_table[128],  &pinyin_table[103],  &pinyin_table[366],  }, /* din e => di ne */
+    { &pinyin_table[111],  &pinyin_table[129],  &pinyin_table[103],  &pinyin_table[368],  }, /* din ei => di nei */
+    { &pinyin_table[111],  &pinyin_table[130],  &pinyin_table[103],  &pinyin_table[370],  }, /* din en => di nen */
+    { &pinyin_table[111],  &pinyin_table[402],  &pinyin_table[103],  &pinyin_table[391],  }, /* din ou => di nou */
+    { &pinyin_table[122],  &pinyin_table[0],    &pinyin_table[121],  &pinyin_table[161],  }, /* duang a => duan ga */
+    { &pinyin_table[122],  &pinyin_table[2],    &pinyin_table[121],  &pinyin_table[163],  }, /* duang ai => duan gai */
+    { &pinyin_table[122],  &pinyin_table[4],    &pinyin_table[121],  &pinyin_table[165],  }, /* duang an => duan gan */
+    { &pinyin_table[122],  &pinyin_table[5],    &pinyin_table[121],  &pinyin_table[166],  }, /* duang ang => duan gang */
+    { &pinyin_table[122],  &pinyin_table[6],    &pinyin_table[121],  &pinyin_table[167],  }, /* duang ao => duan gao */
+    { &pinyin_table[122],  &pinyin_table[128],  &pinyin_table[121],  &pinyin_table[168],  }, /* duang e => duan ge */
+    { &pinyin_table[122],  &pinyin_table[129],  &pinyin_table[121],  &pinyin_table[170],  }, /* duang ei => duan gei */
+    { &pinyin_table[122],  &pinyin_table[130],  &pinyin_table[121],  &pinyin_table[172],  }, /* duang en => duan gen */
+    { &pinyin_table[122],  &pinyin_table[402],  &pinyin_table[121],  &pinyin_table[178],  }, /* duang ou => duan gou */
+    { &pinyin_table[126],  &pinyin_table[0],    &pinyin_table[120],  &pinyin_table[359],  }, /* dun a => du na */
+    { &pinyin_table[126],  &pinyin_table[4],    &pinyin_table[120],  &pinyin_table[363],  }, /* dun an => du nan */
+    { &pinyin_table[126],  &pinyin_table[5],    &pinyin_table[120],  &pinyin_table[364],  }, /* dun ang => du nang */
+    { &pinyin_table[126],  &pinyin_table[6],    &pinyin_table[120],  &pinyin_table[365],  }, /* dun ao => du nao */
+    { &pinyin_table[126],  &pinyin_table[128],  &pinyin_table[120],  &pinyin_table[366],  }, /* dun e => du ne */
+    { &pinyin_table[126],  &pinyin_table[129],  &pinyin_table[120],  &pinyin_table[368],  }, /* dun ei => du nei */
+    { &pinyin_table[130],  &pinyin_table[4],    &pinyin_table[128],  &pinyin_table[363],  }, /* en an => e nan */
+    { &pinyin_table[130],  &pinyin_table[5],    &pinyin_table[128],  &pinyin_table[364],  }, /* en ang => e nang */
+    { &pinyin_table[130],  &pinyin_table[6],    &pinyin_table[128],  &pinyin_table[365],  }, /* en ao => e nao */
+    { &pinyin_table[130],  &pinyin_table[128],  &pinyin_table[128],  &pinyin_table[366],  }, /* en e => e ne */
+    { &pinyin_table[130],  &pinyin_table[129],  &pinyin_table[128],  &pinyin_table[368],  }, /* en ei => e nei */
+    { &pinyin_table[131],  &pinyin_table[4],    &pinyin_table[128],  &pinyin_table[464],  }, /* er an => e ran */
+    { &pinyin_table[131],  &pinyin_table[5],    &pinyin_table[128],  &pinyin_table[465],  }, /* er ang => e rang */
+    { &pinyin_table[131],  &pinyin_table[130],  &pinyin_table[128],  &pinyin_table[471],  }, /* er en => e ren */
+    { &pinyin_table[131],  &pinyin_table[402],  &pinyin_table[128],  &pinyin_table[488],  }, /* er ou => e rou */
+    { &pinyin_table[137],  &pinyin_table[5],    &pinyin_table[133],  &pinyin_table[364],  }, /* fan ang => fa nang */
+    { &pinyin_table[137],  &pinyin_table[6],    &pinyin_table[133],  &pinyin_table[365],  }, /* fan ao => fa nao */
+    { &pinyin_table[137],  &pinyin_table[129],  &pinyin_table[133],  &pinyin_table[368],  }, /* fan ei => fa nei */
+    { &pinyin_table[138],  &pinyin_table[5],    &pinyin_table[137],  &pinyin_table[166],  }, /* fang ang => fan gang */
+    { &pinyin_table[138],  &pinyin_table[6],    &pinyin_table[137],  &pinyin_table[167],  }, /* fang ao => fan gao */
+    { &pinyin_table[138],  &pinyin_table[128],  &pinyin_table[137],  &pinyin_table[168],  }, /* fang e => fan ge */
+    { &pinyin_table[138],  &pinyin_table[129],  &pinyin_table[137],  &pinyin_table[170],  }, /* fang ei => fan gei */
+    { &pinyin_table[138],  &pinyin_table[130],  &pinyin_table[137],  &pinyin_table[172],  }, /* fang en => fan gen */
+    { &pinyin_table[145],  &pinyin_table[5],    &pinyin_table[144],  &pinyin_table[166],  }, /* feng ang => fen gang */
+    { &pinyin_table[145],  &pinyin_table[6],    &pinyin_table[144],  &pinyin_table[167],  }, /* feng ao => fen gao */
+    { &pinyin_table[145],  &pinyin_table[128],  &pinyin_table[144],  &pinyin_table[168],  }, /* feng e => fen ge */
+    { &pinyin_table[145],  &pinyin_table[129],  &pinyin_table[144],  &pinyin_table[170],  }, /* feng ei => fen gei */
+    { &pinyin_table[145],  &pinyin_table[130],  &pinyin_table[144],  &pinyin_table[172],  }, /* feng en => fen gen */
+    { &pinyin_table[145],  &pinyin_table[402],  &pinyin_table[144],  &pinyin_table[178],  }, /* feng ou => fen gou */
+    { &pinyin_table[147],  &pinyin_table[0],    &pinyin_table[146],  &pinyin_table[359],  }, /* fon a => fo na */
+    { &pinyin_table[147],  &pinyin_table[2],    &pinyin_table[146],  &pinyin_table[361],  }, /* fon ai => fo nai */
+    { &pinyin_table[147],  &pinyin_table[4],    &pinyin_table[146],  &pinyin_table[363],  }, /* fon an => fo nan */
+    { &pinyin_table[147],  &pinyin_table[5],    &pinyin_table[146],  &pinyin_table[364],  }, /* fon ang => fo nang */
+    { &pinyin_table[147],  &pinyin_table[6],    &pinyin_table[146],  &pinyin_table[365],  }, /* fon ao => fo nao */
+    { &pinyin_table[147],  &pinyin_table[128],  &pinyin_table[146],  &pinyin_table[366],  }, /* fon e => fo ne */
+    { &pinyin_table[147],  &pinyin_table[129],  &pinyin_table[146],  &pinyin_table[368],  }, /* fon ei => fo nei */
+    { &pinyin_table[147],  &pinyin_table[130],  &pinyin_table[146],  &pinyin_table[370],  }, /* fon en => fo nen */
+    { &pinyin_table[147],  &pinyin_table[402],  &pinyin_table[146],  &pinyin_table[391],  }, /* fon ou => fo nou */
+    { &pinyin_table[158],  &pinyin_table[0],    &pinyin_table[150],  &pinyin_table[359],  }, /* fun a => fu na */
+    { &pinyin_table[158],  &pinyin_table[2],    &pinyin_table[150],  &pinyin_table[361],  }, /* fun ai => fu nai */
+    { &pinyin_table[158],  &pinyin_table[4],    &pinyin_table[150],  &pinyin_table[363],  }, /* fun an => fu nan */
+    { &pinyin_table[158],  &pinyin_table[5],    &pinyin_table[150],  &pinyin_table[364],  }, /* fun ang => fu nang */
+    { &pinyin_table[158],  &pinyin_table[6],    &pinyin_table[150],  &pinyin_table[365],  }, /* fun ao => fu nao */
+    { &pinyin_table[158],  &pinyin_table[128],  &pinyin_table[150],  &pinyin_table[366],  }, /* fun e => fu ne */
+    { &pinyin_table[158],  &pinyin_table[129],  &pinyin_table[150],  &pinyin_table[368],  }, /* fun ei => fu nei */
+    { &pinyin_table[158],  &pinyin_table[130],  &pinyin_table[150],  &pinyin_table[370],  }, /* fun en => fu nen */
+    { &pinyin_table[158],  &pinyin_table[402],  &pinyin_table[150],  &pinyin_table[391],  }, /* fun ou => fu nou */
+    { &pinyin_table[165],  &pinyin_table[128],  &pinyin_table[161],  &pinyin_table[366],  }, /* gan e => ga ne */
+    { &pinyin_table[165],  &pinyin_table[129],  &pinyin_table[161],  &pinyin_table[368],  }, /* gan ei => ga nei */
+    { &pinyin_table[166],  &pinyin_table[0],    &pinyin_table[165],  &pinyin_table[161],  }, /* gang a => gan ga */
+    { &pinyin_table[166],  &pinyin_table[2],    &pinyin_table[165],  &pinyin_table[163],  }, /* gang ai => gan gai */
+    { &pinyin_table[166],  &pinyin_table[4],    &pinyin_table[165],  &pinyin_table[165],  }, /* gang an => gan gan */
+    { &pinyin_table[166],  &pinyin_table[5],    &pinyin_table[165],  &pinyin_table[166],  }, /* gang ang => gan gang */
+    { &pinyin_table[166],  &pinyin_table[128],  &pinyin_table[165],  &pinyin_table[168],  }, /* gang e => gan ge */
+    { &pinyin_table[166],  &pinyin_table[129],  &pinyin_table[165],  &pinyin_table[170],  }, /* gang ei => gan gei */
+    { &pinyin_table[166],  &pinyin_table[130],  &pinyin_table[165],  &pinyin_table[172],  }, /* gang en => gan gen */
+    { &pinyin_table[166],  &pinyin_table[402],  &pinyin_table[165],  &pinyin_table[178],  }, /* gang ou => gan gou */
+    { &pinyin_table[172],  &pinyin_table[0],    &pinyin_table[168],  &pinyin_table[359],  }, /* gen a => ge na */
+    { &pinyin_table[172],  &pinyin_table[4],    &pinyin_table[168],  &pinyin_table[363],  }, /* gen an => ge nan */
+    { &pinyin_table[172],  &pinyin_table[5],    &pinyin_table[168],  &pinyin_table[364],  }, /* gen ang => ge nang */
+    { &pinyin_table[172],  &pinyin_table[6],    &pinyin_table[168],  &pinyin_table[365],  }, /* gen ao => ge nao */
+    { &pinyin_table[172],  &pinyin_table[128],  &pinyin_table[168],  &pinyin_table[366],  }, /* gen e => ge ne */
+    { &pinyin_table[172],  &pinyin_table[129],  &pinyin_table[168],  &pinyin_table[368],  }, /* gen ei => ge nei */
+    { &pinyin_table[173],  &pinyin_table[5],    &pinyin_table[172],  &pinyin_table[166],  }, /* geng ang => gen gang */
+    { &pinyin_table[173],  &pinyin_table[6],    &pinyin_table[172],  &pinyin_table[167],  }, /* geng ao => gen gao */
+    { &pinyin_table[173],  &pinyin_table[128],  &pinyin_table[172],  &pinyin_table[168],  }, /* geng e => gen ge */
+    { &pinyin_table[173],  &pinyin_table[129],  &pinyin_table[172],  &pinyin_table[170],  }, /* geng ei => gen gei */
+    { &pinyin_table[173],  &pinyin_table[130],  &pinyin_table[172],  &pinyin_table[172],  }, /* geng en => gen gen */
+    { &pinyin_table[173],  &pinyin_table[402],  &pinyin_table[172],  &pinyin_table[178],  }, /* geng ou => gen gou */
+    { &pinyin_table[184],  &pinyin_table[129],  &pinyin_table[180],  &pinyin_table[368],  }, /* guan ei => gua nei */
+    { &pinyin_table[185],  &pinyin_table[2],    &pinyin_table[184],  &pinyin_table[163],  }, /* guang ai => guan gai */
+    { &pinyin_table[185],  &pinyin_table[5],    &pinyin_table[184],  &pinyin_table[166],  }, /* guang ang => guan gang */
+    { &pinyin_table[185],  &pinyin_table[6],    &pinyin_table[184],  &pinyin_table[167],  }, /* guang ao => guan gao */
+    { &pinyin_table[185],  &pinyin_table[128],  &pinyin_table[184],  &pinyin_table[168],  }, /* guang e => guan ge */
+    { &pinyin_table[185],  &pinyin_table[129],  &pinyin_table[184],  &pinyin_table[170],  }, /* guang ei => guan gei */
+    { &pinyin_table[185],  &pinyin_table[130],  &pinyin_table[184],  &pinyin_table[172],  }, /* guang en => guan gen */
+    { &pinyin_table[189],  &pinyin_table[4],    &pinyin_table[179],  &pinyin_table[363],  }, /* gun an => gu nan */
+    { &pinyin_table[189],  &pinyin_table[5],    &pinyin_table[179],  &pinyin_table[364],  }, /* gun ang => gu nang */
+    { &pinyin_table[189],  &pinyin_table[6],    &pinyin_table[179],  &pinyin_table[365],  }, /* gun ao => gu nao */
+    { &pinyin_table[189],  &pinyin_table[128],  &pinyin_table[179],  &pinyin_table[366],  }, /* gun e => gu ne */
+    { &pinyin_table[189],  &pinyin_table[129],  &pinyin_table[179],  &pinyin_table[368],  }, /* gun ei => gu nei */
+    { &pinyin_table[196],  &pinyin_table[5],    &pinyin_table[192],  &pinyin_table[364],  }, /* han ang => ha nang */
+    { &pinyin_table[196],  &pinyin_table[6],    &pinyin_table[192],  &pinyin_table[365],  }, /* han ao => ha nao */
+    { &pinyin_table[196],  &pinyin_table[129],  &pinyin_table[192],  &pinyin_table[368],  }, /* han ei => ha nei */
+    { &pinyin_table[197],  &pinyin_table[2],    &pinyin_table[196],  &pinyin_table[163],  }, /* hang ai => han gai */
+    { &pinyin_table[197],  &pinyin_table[5],    &pinyin_table[196],  &pinyin_table[166],  }, /* hang ang => han gang */
+    { &pinyin_table[197],  &pinyin_table[6],    &pinyin_table[196],  &pinyin_table[167],  }, /* hang ao => han gao */
+    { &pinyin_table[197],  &pinyin_table[128],  &pinyin_table[196],  &pinyin_table[168],  }, /* hang e => han ge */
+    { &pinyin_table[197],  &pinyin_table[129],  &pinyin_table[196],  &pinyin_table[170],  }, /* hang ei => han gei */
+    { &pinyin_table[197],  &pinyin_table[130],  &pinyin_table[196],  &pinyin_table[172],  }, /* hang en => han gen */
+    { &pinyin_table[197],  &pinyin_table[402],  &pinyin_table[196],  &pinyin_table[178],  }, /* hang ou => han gou */
+    { &pinyin_table[203],  &pinyin_table[0],    &pinyin_table[199],  &pinyin_table[359],  }, /* hen a => he na */
+    { &pinyin_table[203],  &pinyin_table[4],    &pinyin_table[199],  &pinyin_table[363],  }, /* hen an => he nan */
+    { &pinyin_table[203],  &pinyin_table[5],    &pinyin_table[199],  &pinyin_table[364],  }, /* hen ang => he nang */
+    { &pinyin_table[203],  &pinyin_table[6],    &pinyin_table[199],  &pinyin_table[365],  }, /* hen ao => he nao */
+    { &pinyin_table[203],  &pinyin_table[129],  &pinyin_table[199],  &pinyin_table[368],  }, /* hen ei => he nei */
+    { &pinyin_table[204],  &pinyin_table[2],    &pinyin_table[203],  &pinyin_table[163],  }, /* heng ai => hen gai */
+    { &pinyin_table[204],  &pinyin_table[4],    &pinyin_table[203],  &pinyin_table[165],  }, /* heng an => hen gan */
+    { &pinyin_table[204],  &pinyin_table[5],    &pinyin_table[203],  &pinyin_table[166],  }, /* heng ang => hen gang */
+    { &pinyin_table[204],  &pinyin_table[6],    &pinyin_table[203],  &pinyin_table[167],  }, /* heng ao => hen gao */
+    { &pinyin_table[204],  &pinyin_table[129],  &pinyin_table[203],  &pinyin_table[170],  }, /* heng ei => hen gei */
+    { &pinyin_table[204],  &pinyin_table[130],  &pinyin_table[203],  &pinyin_table[172],  }, /* heng en => hen gen */
+    { &pinyin_table[204],  &pinyin_table[402],  &pinyin_table[203],  &pinyin_table[178],  }, /* heng ou => hen gou */
+    { &pinyin_table[216],  &pinyin_table[0],    &pinyin_table[212],  &pinyin_table[359],  }, /* huan a => hua na */
+    { &pinyin_table[216],  &pinyin_table[4],    &pinyin_table[212],  &pinyin_table[363],  }, /* huan an => hua nan */
+    { &pinyin_table[216],  &pinyin_table[5],    &pinyin_table[212],  &pinyin_table[364],  }, /* huan ang => hua nang */
+    { &pinyin_table[216],  &pinyin_table[6],    &pinyin_table[212],  &pinyin_table[365],  }, /* huan ao => hua nao */
+    { &pinyin_table[216],  &pinyin_table[128],  &pinyin_table[212],  &pinyin_table[366],  }, /* huan e => hua ne */
+    { &pinyin_table[216],  &pinyin_table[129],  &pinyin_table[212],  &pinyin_table[368],  }, /* huan ei => hua nei */
+    { &pinyin_table[216],  &pinyin_table[130],  &pinyin_table[212],  &pinyin_table[370],  }, /* huan en => hua nen */
+    { &pinyin_table[217],  &pinyin_table[2],    &pinyin_table[216],  &pinyin_table[163],  }, /* huang ai => huan gai */
+    { &pinyin_table[217],  &pinyin_table[5],    &pinyin_table[216],  &pinyin_table[166],  }, /* huang ang => huan gang */
+    { &pinyin_table[217],  &pinyin_table[6],    &pinyin_table[216],  &pinyin_table[167],  }, /* huang ao => huan gao */
+    { &pinyin_table[217],  &pinyin_table[128],  &pinyin_table[216],  &pinyin_table[168],  }, /* huang e => huan ge */
+    { &pinyin_table[217],  &pinyin_table[129],  &pinyin_table[216],  &pinyin_table[170],  }, /* huang ei => huan gei */
+    { &pinyin_table[217],  &pinyin_table[402],  &pinyin_table[216],  &pinyin_table[178],  }, /* huang ou => huan gou */
+    { &pinyin_table[221],  &pinyin_table[4],    &pinyin_table[211],  &pinyin_table[363],  }, /* hun an => hu nan */
+    { &pinyin_table[221],  &pinyin_table[5],    &pinyin_table[211],  &pinyin_table[364],  }, /* hun ang => hu nang */
+    { &pinyin_table[221],  &pinyin_table[6],    &pinyin_table[211],  &pinyin_table[365],  }, /* hun ao => hu nao */
+    { &pinyin_table[221],  &pinyin_table[129],  &pinyin_table[211],  &pinyin_table[368],  }, /* hun ei => hu nei */
+    { &pinyin_table[228],  &pinyin_table[0],    &pinyin_table[225],  &pinyin_table[359],  }, /* jian a => jia na */
+    { &pinyin_table[228],  &pinyin_table[2],    &pinyin_table[225],  &pinyin_table[361],  }, /* jian ai => jia nai */
+    { &pinyin_table[228],  &pinyin_table[5],    &pinyin_table[225],  &pinyin_table[364],  }, /* jian ang => jia nang */
+    { &pinyin_table[228],  &pinyin_table[128],  &pinyin_table[225],  &pinyin_table[366],  }, /* jian e => jia ne */
+    { &pinyin_table[228],  &pinyin_table[129],  &pinyin_table[225],  &pinyin_table[368],  }, /* jian ei => jia nei */
+    { &pinyin_table[229],  &pinyin_table[5],    &pinyin_table[228],  &pinyin_table[166],  }, /* jiang ang => jian gang */
+    { &pinyin_table[229],  &pinyin_table[6],    &pinyin_table[228],  &pinyin_table[167],  }, /* jiang ao => jian gao */
+    { &pinyin_table[229],  &pinyin_table[128],  &pinyin_table[228],  &pinyin_table[168],  }, /* jiang e => jian ge */
+    { &pinyin_table[229],  &pinyin_table[129],  &pinyin_table[228],  &pinyin_table[170],  }, /* jiang ei => jian gei */
+    { &pinyin_table[229],  &pinyin_table[402],  &pinyin_table[228],  &pinyin_table[178],  }, /* jiang ou => jian gou */
+    { &pinyin_table[231],  &pinyin_table[459],  &pinyin_table[224],  &pinyin_table[131],  }, /* jie r => ji er */
+    { &pinyin_table[234],  &pinyin_table[0],    &pinyin_table[224],  &pinyin_table[359],  }, /* jin a => ji na */
+    { &pinyin_table[234],  &pinyin_table[4],    &pinyin_table[224],  &pinyin_table[363],  }, /* jin an => ji nan */
+    { &pinyin_table[234],  &pinyin_table[5],    &pinyin_table[224],  &pinyin_table[364],  }, /* jin ang => ji nang */
+    { &pinyin_table[234],  &pinyin_table[6],    &pinyin_table[224],  &pinyin_table[365],  }, /* jin ao => ji nao */
+    { &pinyin_table[234],  &pinyin_table[129],  &pinyin_table[224],  &pinyin_table[368],  }, /* jin ei => ji nei */
+    { &pinyin_table[235],  &pinyin_table[5],    &pinyin_table[234],  &pinyin_table[166],  }, /* jing ang => jin gang */
+    { &pinyin_table[235],  &pinyin_table[6],    &pinyin_table[234],  &pinyin_table[167],  }, /* jing ao => jin gao */
+    { &pinyin_table[235],  &pinyin_table[129],  &pinyin_table[234],  &pinyin_table[170],  }, /* jing ei => jin gei */
+    { &pinyin_table[235],  &pinyin_table[130],  &pinyin_table[234],  &pinyin_table[172],  }, /* jing en => jin gen */
+    { &pinyin_table[235],  &pinyin_table[402],  &pinyin_table[234],  &pinyin_table[178],  }, /* jing ou => jin gou */
+    { &pinyin_table[244],  &pinyin_table[0],    &pinyin_table[243],  &pinyin_table[161],  }, /* juang a => juan ga */
+    { &pinyin_table[244],  &pinyin_table[2],    &pinyin_table[243],  &pinyin_table[163],  }, /* juang ai => juan gai */
+    { &pinyin_table[244],  &pinyin_table[4],    &pinyin_table[243],  &pinyin_table[165],  }, /* juang an => juan gan */
+    { &pinyin_table[244],  &pinyin_table[5],    &pinyin_table[243],  &pinyin_table[166],  }, /* juang ang => juan gang */
+    { &pinyin_table[244],  &pinyin_table[6],    &pinyin_table[243],  &pinyin_table[167],  }, /* juang ao => juan gao */
+    { &pinyin_table[244],  &pinyin_table[128],  &pinyin_table[243],  &pinyin_table[168],  }, /* juang e => juan ge */
+    { &pinyin_table[244],  &pinyin_table[129],  &pinyin_table[243],  &pinyin_table[170],  }, /* juang ei => juan gei */
+    { &pinyin_table[244],  &pinyin_table[130],  &pinyin_table[243],  &pinyin_table[172],  }, /* juang en => juan gen */
+    { &pinyin_table[244],  &pinyin_table[402],  &pinyin_table[243],  &pinyin_table[178],  }, /* juang ou => juan gou */
+    { &pinyin_table[245],  &pinyin_table[459],  &pinyin_table[242],  &pinyin_table[131],  }, /* jue r => ju er */
+    { &pinyin_table[246],  &pinyin_table[0],    &pinyin_table[245],  &pinyin_table[359],  }, /* juen a => jue na */
+    { &pinyin_table[246],  &pinyin_table[2],    &pinyin_table[245],  &pinyin_table[361],  }, /* juen ai => jue nai */
+    { &pinyin_table[246],  &pinyin_table[4],    &pinyin_table[245],  &pinyin_table[363],  }, /* juen an => jue nan */
+    { &pinyin_table[246],  &pinyin_table[5],    &pinyin_table[245],  &pinyin_table[364],  }, /* juen ang => jue nang */
+    { &pinyin_table[246],  &pinyin_table[6],    &pinyin_table[245],  &pinyin_table[365],  }, /* juen ao => jue nao */
+    { &pinyin_table[246],  &pinyin_table[128],  &pinyin_table[245],  &pinyin_table[366],  }, /* juen e => jue ne */
+    { &pinyin_table[246],  &pinyin_table[129],  &pinyin_table[245],  &pinyin_table[368],  }, /* juen ei => jue nei */
+    { &pinyin_table[246],  &pinyin_table[130],  &pinyin_table[245],  &pinyin_table[370],  }, /* juen en => jue nen */
+    { &pinyin_table[246],  &pinyin_table[402],  &pinyin_table[245],  &pinyin_table[391],  }, /* juen ou => jue nou */
+    { &pinyin_table[247],  &pinyin_table[0],    &pinyin_table[242],  &pinyin_table[359],  }, /* jun a => ju na */
+    { &pinyin_table[247],  &pinyin_table[2],    &pinyin_table[242],  &pinyin_table[361],  }, /* jun ai => ju nai */
+    { &pinyin_table[247],  &pinyin_table[128],  &pinyin_table[242],  &pinyin_table[366],  }, /* jun e => ju ne */
+    { &pinyin_table[247],  &pinyin_table[129],  &pinyin_table[242],  &pinyin_table[368],  }, /* jun ei => ju nei */
+    { &pinyin_table[259],  &pinyin_table[129],  &pinyin_table[255],  &pinyin_table[368],  }, /* kan ei => ka nei */
+    { &pinyin_table[260],  &pinyin_table[4],    &pinyin_table[259],  &pinyin_table[165],  }, /* kang an => kan gan */
+    { &pinyin_table[260],  &pinyin_table[5],    &pinyin_table[259],  &pinyin_table[166],  }, /* kang ang => kan gang */
+    { &pinyin_table[260],  &pinyin_table[6],    &pinyin_table[259],  &pinyin_table[167],  }, /* kang ao => kan gao */
+    { &pinyin_table[260],  &pinyin_table[128],  &pinyin_table[259],  &pinyin_table[168],  }, /* kang e => kan ge */
+    { &pinyin_table[260],  &pinyin_table[129],  &pinyin_table[259],  &pinyin_table[170],  }, /* kang ei => kan gei */
+    { &pinyin_table[260],  &pinyin_table[130],  &pinyin_table[259],  &pinyin_table[172],  }, /* kang en => kan gen */
+    { &pinyin_table[260],  &pinyin_table[402],  &pinyin_table[259],  &pinyin_table[178],  }, /* kang ou => kan gou */
+    { &pinyin_table[266],  &pinyin_table[0],    &pinyin_table[262],  &pinyin_table[359],  }, /* ken a => ke na */
+    { &pinyin_table[266],  &pinyin_table[2],    &pinyin_table[262],  &pinyin_table[361],  }, /* ken ai => ke nai */
+    { &pinyin_table[266],  &pinyin_table[4],    &pinyin_table[262],  &pinyin_table[363],  }, /* ken an => ke nan */
+    { &pinyin_table[266],  &pinyin_table[5],    &pinyin_table[262],  &pinyin_table[364],  }, /* ken ang => ke nang */
+    { &pinyin_table[266],  &pinyin_table[6],    &pinyin_table[262],  &pinyin_table[365],  }, /* ken ao => ke nao */
+    { &pinyin_table[266],  &pinyin_table[128],  &pinyin_table[262],  &pinyin_table[366],  }, /* ken e => ke ne */
+    { &pinyin_table[266],  &pinyin_table[129],  &pinyin_table[262],  &pinyin_table[368],  }, /* ken ei => ke nei */
+    { &pinyin_table[267],  &pinyin_table[2],    &pinyin_table[266],  &pinyin_table[163],  }, /* keng ai => ken gai */
+    { &pinyin_table[267],  &pinyin_table[4],    &pinyin_table[266],  &pinyin_table[165],  }, /* keng an => ken gan */
+    { &pinyin_table[267],  &pinyin_table[5],    &pinyin_table[266],  &pinyin_table[166],  }, /* keng ang => ken gang */
+    { &pinyin_table[267],  &pinyin_table[6],    &pinyin_table[266],  &pinyin_table[167],  }, /* keng ao => ken gao */
+    { &pinyin_table[267],  &pinyin_table[128],  &pinyin_table[266],  &pinyin_table[168],  }, /* keng e => ken ge */
+    { &pinyin_table[267],  &pinyin_table[129],  &pinyin_table[266],  &pinyin_table[170],  }, /* keng ei => ken gei */
+    { &pinyin_table[267],  &pinyin_table[130],  &pinyin_table[266],  &pinyin_table[172],  }, /* keng en => ken gen */
+    { &pinyin_table[267],  &pinyin_table[402],  &pinyin_table[266],  &pinyin_table[178],  }, /* keng ou => ken gou */
+    { &pinyin_table[278],  &pinyin_table[0],    &pinyin_table[274],  &pinyin_table[359],  }, /* kuan a => kua na */
+    { &pinyin_table[278],  &pinyin_table[129],  &pinyin_table[274],  &pinyin_table[368],  }, /* kuan ei => kua nei */
+    { &pinyin_table[279],  &pinyin_table[5],    &pinyin_table[278],  &pinyin_table[166],  }, /* kuang ang => kuan gang */
+    { &pinyin_table[279],  &pinyin_table[128],  &pinyin_table[278],  &pinyin_table[168],  }, /* kuang e => kuan ge */
+    { &pinyin_table[279],  &pinyin_table[129],  &pinyin_table[278],  &pinyin_table[170],  }, /* kuang ei => kuan gei */
+    { &pinyin_table[279],  &pinyin_table[130],  &pinyin_table[278],  &pinyin_table[172],  }, /* kuang en => kuan gen */
+    { &pinyin_table[283],  &pinyin_table[4],    &pinyin_table[273],  &pinyin_table[363],  }, /* kun an => ku nan */
+    { &pinyin_table[283],  &pinyin_table[5],    &pinyin_table[273],  &pinyin_table[364],  }, /* kun ang => ku nang */
+    { &pinyin_table[283],  &pinyin_table[6],    &pinyin_table[273],  &pinyin_table[365],  }, /* kun ao => ku nao */
+    { &pinyin_table[283],  &pinyin_table[128],  &pinyin_table[273],  &pinyin_table[366],  }, /* kun e => ku ne */
+    { &pinyin_table[283],  &pinyin_table[129],  &pinyin_table[273],  &pinyin_table[368],  }, /* kun ei => ku nei */
+    { &pinyin_table[290],  &pinyin_table[0],    &pinyin_table[286],  &pinyin_table[359],  }, /* lan a => la na */
+    { &pinyin_table[290],  &pinyin_table[4],    &pinyin_table[286],  &pinyin_table[363],  }, /* lan an => la nan */
+    { &pinyin_table[290],  &pinyin_table[5],    &pinyin_table[286],  &pinyin_table[364],  }, /* lan ang => la nang */
+    { &pinyin_table[290],  &pinyin_table[6],    &pinyin_table[286],  &pinyin_table[365],  }, /* lan ao => la nao */
+    { &pinyin_table[290],  &pinyin_table[128],  &pinyin_table[286],  &pinyin_table[366],  }, /* lan e => la ne */
+    { &pinyin_table[290],  &pinyin_table[129],  &pinyin_table[286],  &pinyin_table[368],  }, /* lan ei => la nei */
+    { &pinyin_table[291],  &pinyin_table[4],    &pinyin_table[290],  &pinyin_table[165],  }, /* lang an => lan gan */
+    { &pinyin_table[291],  &pinyin_table[5],    &pinyin_table[290],  &pinyin_table[166],  }, /* lang ang => lan gang */
+    { &pinyin_table[291],  &pinyin_table[6],    &pinyin_table[290],  &pinyin_table[167],  }, /* lang ao => lan gao */
+    { &pinyin_table[291],  &pinyin_table[128],  &pinyin_table[290],  &pinyin_table[168],  }, /* lang e => lan ge */
+    { &pinyin_table[291],  &pinyin_table[129],  &pinyin_table[290],  &pinyin_table[170],  }, /* lang ei => lan gei */
+    { &pinyin_table[291],  &pinyin_table[130],  &pinyin_table[290],  &pinyin_table[172],  }, /* lang en => lan gen */
+    { &pinyin_table[291],  &pinyin_table[402],  &pinyin_table[290],  &pinyin_table[178],  }, /* lang ou => lan gou */
+    { &pinyin_table[297],  &pinyin_table[0],    &pinyin_table[293],  &pinyin_table[359],  }, /* len a => le na */
+    { &pinyin_table[297],  &pinyin_table[2],    &pinyin_table[293],  &pinyin_table[361],  }, /* len ai => le nai */
+    { &pinyin_table[297],  &pinyin_table[4],    &pinyin_table[293],  &pinyin_table[363],  }, /* len an => le nan */
+    { &pinyin_table[297],  &pinyin_table[5],    &pinyin_table[293],  &pinyin_table[364],  }, /* len ang => le nang */
+    { &pinyin_table[297],  &pinyin_table[6],    &pinyin_table[293],  &pinyin_table[365],  }, /* len ao => le nao */
+    { &pinyin_table[297],  &pinyin_table[128],  &pinyin_table[293],  &pinyin_table[366],  }, /* len e => le ne */
+    { &pinyin_table[297],  &pinyin_table[129],  &pinyin_table[293],  &pinyin_table[368],  }, /* len ei => le nei */
+    { &pinyin_table[297],  &pinyin_table[130],  &pinyin_table[293],  &pinyin_table[370],  }, /* len en => le nen */
+    { &pinyin_table[297],  &pinyin_table[402],  &pinyin_table[293],  &pinyin_table[391],  }, /* len ou => le nou */
+    { &pinyin_table[303],  &pinyin_table[129],  &pinyin_table[300],  &pinyin_table[368],  }, /* lian ei => lia nei */
+    { &pinyin_table[304],  &pinyin_table[5],    &pinyin_table[303],  &pinyin_table[166],  }, /* liang ang => lian gang */
+    { &pinyin_table[304],  &pinyin_table[6],    &pinyin_table[303],  &pinyin_table[167],  }, /* liang ao => lian gao */
+    { &pinyin_table[304],  &pinyin_table[128],  &pinyin_table[303],  &pinyin_table[168],  }, /* liang e => lian ge */
+    { &pinyin_table[304],  &pinyin_table[129],  &pinyin_table[303],  &pinyin_table[170],  }, /* liang ei => lian gei */
+    { &pinyin_table[304],  &pinyin_table[130],  &pinyin_table[303],  &pinyin_table[172],  }, /* liang en => lian gen */
+    { &pinyin_table[304],  &pinyin_table[402],  &pinyin_table[303],  &pinyin_table[178],  }, /* liang ou => lian gou */
+    { &pinyin_table[306],  &pinyin_table[459],  &pinyin_table[299],  &pinyin_table[131],  }, /* lie r => li er */
+    { &pinyin_table[309],  &pinyin_table[0],    &pinyin_table[299],  &pinyin_table[359],  }, /* lin a => li na */
+    { &pinyin_table[309],  &pinyin_table[4],    &pinyin_table[299],  &pinyin_table[363],  }, /* lin an => li nan */
+    { &pinyin_table[309],  &pinyin_table[5],    &pinyin_table[299],  &pinyin_table[364],  }, /* lin ang => li nang */
+    { &pinyin_table[309],  &pinyin_table[6],    &pinyin_table[299],  &pinyin_table[365],  }, /* lin ao => li nao */
+    { &pinyin_table[309],  &pinyin_table[128],  &pinyin_table[299],  &pinyin_table[366],  }, /* lin e => li ne */
+    { &pinyin_table[309],  &pinyin_table[129],  &pinyin_table[299],  &pinyin_table[368],  }, /* lin ei => li nei */
+    { &pinyin_table[310],  &pinyin_table[5],    &pinyin_table[309],  &pinyin_table[166],  }, /* ling ang => lin gang */
+    { &pinyin_table[310],  &pinyin_table[6],    &pinyin_table[309],  &pinyin_table[167],  }, /* ling ao => lin gao */
+    { &pinyin_table[310],  &pinyin_table[128],  &pinyin_table[309],  &pinyin_table[168],  }, /* ling e => lin ge */
+    { &pinyin_table[310],  &pinyin_table[129],  &pinyin_table[309],  &pinyin_table[170],  }, /* ling ei => lin gei */
+    { &pinyin_table[310],  &pinyin_table[130],  &pinyin_table[309],  &pinyin_table[172],  }, /* ling en => lin gen */
+    { &pinyin_table[310],  &pinyin_table[402],  &pinyin_table[309],  &pinyin_table[178],  }, /* ling ou => lin gou */
+    { &pinyin_table[316],  &pinyin_table[0],    &pinyin_table[313],  &pinyin_table[359],  }, /* lon a => lo na */
+    { &pinyin_table[316],  &pinyin_table[2],    &pinyin_table[313],  &pinyin_table[361],  }, /* lon ai => lo nai */
+    { &pinyin_table[316],  &pinyin_table[4],    &pinyin_table[313],  &pinyin_table[363],  }, /* lon an => lo nan */
+    { &pinyin_table[316],  &pinyin_table[5],    &pinyin_table[313],  &pinyin_table[364],  }, /* lon ang => lo nang */
+    { &pinyin_table[316],  &pinyin_table[6],    &pinyin_table[313],  &pinyin_table[365],  }, /* lon ao => lo nao */
+    { &pinyin_table[316],  &pinyin_table[128],  &pinyin_table[313],  &pinyin_table[366],  }, /* lon e => lo ne */
+    { &pinyin_table[316],  &pinyin_table[129],  &pinyin_table[313],  &pinyin_table[368],  }, /* lon ei => lo nei */
+    { &pinyin_table[316],  &pinyin_table[130],  &pinyin_table[313],  &pinyin_table[370],  }, /* lon en => lo nen */
+    { &pinyin_table[316],  &pinyin_table[402],  &pinyin_table[313],  &pinyin_table[391],  }, /* lon ou => lo nou */
+    { &pinyin_table[321],  &pinyin_table[0],    &pinyin_table[320],  &pinyin_table[161],  }, /* luang a => luan ga */
+    { &pinyin_table[321],  &pinyin_table[2],    &pinyin_table[320],  &pinyin_table[163],  }, /* luang ai => luan gai */
+    { &pinyin_table[321],  &pinyin_table[4],    &pinyin_table[320],  &pinyin_table[165],  }, /* luang an => luan gan */
+    { &pinyin_table[321],  &pinyin_table[5],    &pinyin_table[320],  &pinyin_table[166],  }, /* luang ang => luan gang */
+    { &pinyin_table[321],  &pinyin_table[6],    &pinyin_table[320],  &pinyin_table[167],  }, /* luang ao => luan gao */
+    { &pinyin_table[321],  &pinyin_table[128],  &pinyin_table[320],  &pinyin_table[168],  }, /* luang e => luan ge */
+    { &pinyin_table[321],  &pinyin_table[129],  &pinyin_table[320],  &pinyin_table[170],  }, /* luang ei => luan gei */
+    { &pinyin_table[321],  &pinyin_table[130],  &pinyin_table[320],  &pinyin_table[172],  }, /* luang en => luan gen */
+    { &pinyin_table[321],  &pinyin_table[402],  &pinyin_table[320],  &pinyin_table[178],  }, /* luang ou => luan gou */
+    { &pinyin_table[322],  &pinyin_table[459],  &pinyin_table[319],  &pinyin_table[131],  }, /* lue r => lu er */
+    { &pinyin_table[326],  &pinyin_table[0],    &pinyin_table[319],  &pinyin_table[359],  }, /* lun a => lu na */
+    { &pinyin_table[326],  &pinyin_table[2],    &pinyin_table[319],  &pinyin_table[361],  }, /* lun ai => lu nai */
+    { &pinyin_table[326],  &pinyin_table[4],    &pinyin_table[319],  &pinyin_table[363],  }, /* lun an => lu nan */
+    { &pinyin_table[326],  &pinyin_table[5],    &pinyin_table[319],  &pinyin_table[364],  }, /* lun ang => lu nang */
+    { &pinyin_table[326],  &pinyin_table[6],    &pinyin_table[319],  &pinyin_table[365],  }, /* lun ao => lu nao */
+    { &pinyin_table[326],  &pinyin_table[128],  &pinyin_table[319],  &pinyin_table[366],  }, /* lun e => lu ne */
+    { &pinyin_table[326],  &pinyin_table[129],  &pinyin_table[319],  &pinyin_table[368],  }, /* lun ei => lu nei */
+    { &pinyin_table[329],  &pinyin_table[459],  &pinyin_table[328],  &pinyin_table[131],  }, /* lve r => lv er */
+    { &pinyin_table[335],  &pinyin_table[2],    &pinyin_table[331],  &pinyin_table[361],  }, /* man ai => ma nai */
+    { &pinyin_table[335],  &pinyin_table[4],    &pinyin_table[331],  &pinyin_table[363],  }, /* man an => ma nan */
+    { &pinyin_table[335],  &pinyin_table[5],    &pinyin_table[331],  &pinyin_table[364],  }, /* man ang => ma nang */
+    { &pinyin_table[335],  &pinyin_table[6],    &pinyin_table[331],  &pinyin_table[365],  }, /* man ao => ma nao */
+    { &pinyin_table[335],  &pinyin_table[128],  &pinyin_table[331],  &pinyin_table[366],  }, /* man e => ma ne */
+    { &pinyin_table[335],  &pinyin_table[129],  &pinyin_table[331],  &pinyin_table[368],  }, /* man ei => ma nei */
+    { &pinyin_table[336],  &pinyin_table[2],    &pinyin_table[335],  &pinyin_table[163],  }, /* mang ai => man gai */
+    { &pinyin_table[336],  &pinyin_table[4],    &pinyin_table[335],  &pinyin_table[165],  }, /* mang an => man gan */
+    { &pinyin_table[336],  &pinyin_table[5],    &pinyin_table[335],  &pinyin_table[166],  }, /* mang ang => man gang */
+    { &pinyin_table[336],  &pinyin_table[6],    &pinyin_table[335],  &pinyin_table[167],  }, /* mang ao => man gao */
+    { &pinyin_table[336],  &pinyin_table[128],  &pinyin_table[335],  &pinyin_table[168],  }, /* mang e => man ge */
+    { &pinyin_table[336],  &pinyin_table[129],  &pinyin_table[335],  &pinyin_table[170],  }, /* mang ei => man gei */
+    { &pinyin_table[336],  &pinyin_table[130],  &pinyin_table[335],  &pinyin_table[172],  }, /* mang en => man gen */
+    { &pinyin_table[336],  &pinyin_table[402],  &pinyin_table[335],  &pinyin_table[178],  }, /* mang ou => man gou */
+    { &pinyin_table[342],  &pinyin_table[5],    &pinyin_table[338],  &pinyin_table[364],  }, /* men ang => me nang */
+    { &pinyin_table[342],  &pinyin_table[6],    &pinyin_table[338],  &pinyin_table[365],  }, /* men ao => me nao */
+    { &pinyin_table[342],  &pinyin_table[128],  &pinyin_table[338],  &pinyin_table[366],  }, /* men e => me ne */
+    { &pinyin_table[342],  &pinyin_table[129],  &pinyin_table[338],  &pinyin_table[368],  }, /* men ei => me nei */
+    { &pinyin_table[343],  &pinyin_table[2],    &pinyin_table[342],  &pinyin_table[163],  }, /* meng ai => men gai */
+    { &pinyin_table[343],  &pinyin_table[5],    &pinyin_table[342],  &pinyin_table[166],  }, /* meng ang => men gang */
+    { &pinyin_table[343],  &pinyin_table[6],    &pinyin_table[342],  &pinyin_table[167],  }, /* meng ao => men gao */
+    { &pinyin_table[343],  &pinyin_table[128],  &pinyin_table[342],  &pinyin_table[168],  }, /* meng e => men ge */
+    { &pinyin_table[343],  &pinyin_table[129],  &pinyin_table[342],  &pinyin_table[170],  }, /* meng ei => men gei */
+    { &pinyin_table[343],  &pinyin_table[402],  &pinyin_table[342],  &pinyin_table[178],  }, /* meng ou => men gou */
+    { &pinyin_table[346],  &pinyin_table[0],    &pinyin_table[345],  &pinyin_table[161],  }, /* miang a => mian ga */
+    { &pinyin_table[346],  &pinyin_table[2],    &pinyin_table[345],  &pinyin_table[163],  }, /* miang ai => mian gai */
+    { &pinyin_table[346],  &pinyin_table[4],    &pinyin_table[345],  &pinyin_table[165],  }, /* miang an => mian gan */
+    { &pinyin_table[346],  &pinyin_table[5],    &pinyin_table[345],  &pinyin_table[166],  }, /* miang ang => mian gang */
+    { &pinyin_table[346],  &pinyin_table[6],    &pinyin_table[345],  &pinyin_table[167],  }, /* miang ao => mian gao */
+    { &pinyin_table[346],  &pinyin_table[128],  &pinyin_table[345],  &pinyin_table[168],  }, /* miang e => mian ge */
+    { &pinyin_table[346],  &pinyin_table[129],  &pinyin_table[345],  &pinyin_table[170],  }, /* miang ei => mian gei */
+    { &pinyin_table[346],  &pinyin_table[130],  &pinyin_table[345],  &pinyin_table[172],  }, /* miang en => mian gen */
+    { &pinyin_table[346],  &pinyin_table[402],  &pinyin_table[345],  &pinyin_table[178],  }, /* miang ou => mian gou */
+    { &pinyin_table[348],  &pinyin_table[459],  &pinyin_table[344],  &pinyin_table[131],  }, /* mie r => mi er */
+    { &pinyin_table[351],  &pinyin_table[0],    &pinyin_table[344],  &pinyin_table[359],  }, /* min a => mi na */
+    { &pinyin_table[351],  &pinyin_table[128],  &pinyin_table[344],  &pinyin_table[366],  }, /* min e => mi ne */
+    { &pinyin_table[351],  &pinyin_table[129],  &pinyin_table[344],  &pinyin_table[368],  }, /* min ei => mi nei */
+    { &pinyin_table[352],  &pinyin_table[4],    &pinyin_table[351],  &pinyin_table[165],  }, /* ming an => min gan */
+    { &pinyin_table[352],  &pinyin_table[5],    &pinyin_table[351],  &pinyin_table[166],  }, /* ming ang => min gang */
+    { &pinyin_table[352],  &pinyin_table[6],    &pinyin_table[351],  &pinyin_table[167],  }, /* ming ao => min gao */
+    { &pinyin_table[352],  &pinyin_table[128],  &pinyin_table[351],  &pinyin_table[168],  }, /* ming e => min ge */
+    { &pinyin_table[352],  &pinyin_table[129],  &pinyin_table[351],  &pinyin_table[170],  }, /* ming ei => min gei */
+    { &pinyin_table[352],  &pinyin_table[402],  &pinyin_table[351],  &pinyin_table[178],  }, /* ming ou => min gou */
+    { &pinyin_table[363],  &pinyin_table[0],    &pinyin_table[359],  &pinyin_table[359],  }, /* nan a => na na */
+    { &pinyin_table[363],  &pinyin_table[5],    &pinyin_table[359],  &pinyin_table[364],  }, /* nan ang => na nang */
+    { &pinyin_table[363],  &pinyin_table[128],  &pinyin_table[359],  &pinyin_table[366],  }, /* nan e => na ne */
+    { &pinyin_table[363],  &pinyin_table[129],  &pinyin_table[359],  &pinyin_table[368],  }, /* nan ei => na nei */
+    { &pinyin_table[364],  &pinyin_table[0],    &pinyin_table[363],  &pinyin_table[161],  }, /* nang a => nan ga */
+    { &pinyin_table[364],  &pinyin_table[2],    &pinyin_table[363],  &pinyin_table[163],  }, /* nang ai => nan gai */
+    { &pinyin_table[364],  &pinyin_table[4],    &pinyin_table[363],  &pinyin_table[165],  }, /* nang an => nan gan */
+    { &pinyin_table[364],  &pinyin_table[5],    &pinyin_table[363],  &pinyin_table[166],  }, /* nang ang => nan gang */
+    { &pinyin_table[364],  &pinyin_table[6],    &pinyin_table[363],  &pinyin_table[167],  }, /* nang ao => nan gao */
+    { &pinyin_table[364],  &pinyin_table[128],  &pinyin_table[363],  &pinyin_table[168],  }, /* nang e => nan ge */
+    { &pinyin_table[364],  &pinyin_table[129],  &pinyin_table[363],  &pinyin_table[170],  }, /* nang ei => nan gei */
+    { &pinyin_table[364],  &pinyin_table[130],  &pinyin_table[363],  &pinyin_table[172],  }, /* nang en => nan gen */
+    { &pinyin_table[364],  &pinyin_table[402],  &pinyin_table[363],  &pinyin_table[178],  }, /* nang ou => nan gou */
+    { &pinyin_table[370],  &pinyin_table[0],    &pinyin_table[366],  &pinyin_table[359],  }, /* nen a => ne na */
+    { &pinyin_table[370],  &pinyin_table[2],    &pinyin_table[366],  &pinyin_table[361],  }, /* nen ai => ne nai */
+    { &pinyin_table[370],  &pinyin_table[4],    &pinyin_table[366],  &pinyin_table[363],  }, /* nen an => ne nan */
+    { &pinyin_table[370],  &pinyin_table[5],    &pinyin_table[366],  &pinyin_table[364],  }, /* nen ang => ne nang */
+    { &pinyin_table[370],  &pinyin_table[6],    &pinyin_table[366],  &pinyin_table[365],  }, /* nen ao => ne nao */
+    { &pinyin_table[370],  &pinyin_table[128],  &pinyin_table[366],  &pinyin_table[366],  }, /* nen e => ne ne */
+    { &pinyin_table[370],  &pinyin_table[129],  &pinyin_table[366],  &pinyin_table[368],  }, /* nen ei => ne nei */
+    { &pinyin_table[370],  &pinyin_table[130],  &pinyin_table[366],  &pinyin_table[370],  }, /* nen en => ne nen */
+    { &pinyin_table[371],  &pinyin_table[128],  &pinyin_table[370],  &pinyin_table[168],  }, /* neng e => nen ge */
+    { &pinyin_table[371],  &pinyin_table[129],  &pinyin_table[370],  &pinyin_table[170],  }, /* neng ei => nen gei */
+    { &pinyin_table[377],  &pinyin_table[2],    &pinyin_table[376],  &pinyin_table[163],  }, /* niang ai => nian gai */
+    { &pinyin_table[377],  &pinyin_table[4],    &pinyin_table[376],  &pinyin_table[165],  }, /* niang an => nian gan */
+    { &pinyin_table[377],  &pinyin_table[5],    &pinyin_table[376],  &pinyin_table[166],  }, /* niang ang => nian gang */
+    { &pinyin_table[377],  &pinyin_table[6],    &pinyin_table[376],  &pinyin_table[167],  }, /* niang ao => nian gao */
+    { &pinyin_table[377],  &pinyin_table[128],  &pinyin_table[376],  &pinyin_table[168],  }, /* niang e => nian ge */
+    { &pinyin_table[377],  &pinyin_table[129],  &pinyin_table[376],  &pinyin_table[170],  }, /* niang ei => nian gei */
+    { &pinyin_table[377],  &pinyin_table[130],  &pinyin_table[376],  &pinyin_table[172],  }, /* niang en => nian gen */
+    { &pinyin_table[377],  &pinyin_table[402],  &pinyin_table[376],  &pinyin_table[178],  }, /* niang ou => nian gou */
+    { &pinyin_table[379],  &pinyin_table[459],  &pinyin_table[372],  &pinyin_table[131],  }, /* nie r => ni er */
+    { &pinyin_table[382],  &pinyin_table[0],    &pinyin_table[372],  &pinyin_table[359],  }, /* nin a => ni na */
+    { &pinyin_table[382],  &pinyin_table[4],    &pinyin_table[372],  &pinyin_table[363],  }, /* nin an => ni nan */
+    { &pinyin_table[382],  &pinyin_table[5],    &pinyin_table[372],  &pinyin_table[364],  }, /* nin ang => ni nang */
+    { &pinyin_table[382],  &pinyin_table[6],    &pinyin_table[372],  &pinyin_table[365],  }, /* nin ao => ni nao */
+    { &pinyin_table[382],  &pinyin_table[128],  &pinyin_table[372],  &pinyin_table[366],  }, /* nin e => ni ne */
+    { &pinyin_table[382],  &pinyin_table[129],  &pinyin_table[372],  &pinyin_table[368],  }, /* nin ei => ni nei */
+    { &pinyin_table[383],  &pinyin_table[2],    &pinyin_table[382],  &pinyin_table[163],  }, /* ning ai => nin gai */
+    { &pinyin_table[383],  &pinyin_table[5],    &pinyin_table[382],  &pinyin_table[166],  }, /* ning ang => nin gang */
+    { &pinyin_table[383],  &pinyin_table[6],    &pinyin_table[382],  &pinyin_table[167],  }, /* ning ao => nin gao */
+    { &pinyin_table[383],  &pinyin_table[129],  &pinyin_table[382],  &pinyin_table[170],  }, /* ning ei => nin gei */
+    { &pinyin_table[383],  &pinyin_table[130],  &pinyin_table[382],  &pinyin_table[172],  }, /* ning en => nin gen */
+    { &pinyin_table[383],  &pinyin_table[402],  &pinyin_table[382],  &pinyin_table[178],  }, /* ning ou => nin gou */
+    { &pinyin_table[394],  &pinyin_table[0],    &pinyin_table[393],  &pinyin_table[161],  }, /* nuang a => nuan ga */
+    { &pinyin_table[394],  &pinyin_table[2],    &pinyin_table[393],  &pinyin_table[163],  }, /* nuang ai => nuan gai */
+    { &pinyin_table[394],  &pinyin_table[4],    &pinyin_table[393],  &pinyin_table[165],  }, /* nuang an => nuan gan */
+    { &pinyin_table[394],  &pinyin_table[5],    &pinyin_table[393],  &pinyin_table[166],  }, /* nuang ang => nuan gang */
+    { &pinyin_table[394],  &pinyin_table[6],    &pinyin_table[393],  &pinyin_table[167],  }, /* nuang ao => nuan gao */
+    { &pinyin_table[394],  &pinyin_table[128],  &pinyin_table[393],  &pinyin_table[168],  }, /* nuang e => nuan ge */
+    { &pinyin_table[394],  &pinyin_table[129],  &pinyin_table[393],  &pinyin_table[170],  }, /* nuang ei => nuan gei */
+    { &pinyin_table[394],  &pinyin_table[130],  &pinyin_table[393],  &pinyin_table[172],  }, /* nuang en => nuan gen */
+    { &pinyin_table[394],  &pinyin_table[402],  &pinyin_table[393],  &pinyin_table[178],  }, /* nuang ou => nuan gou */
+    { &pinyin_table[395],  &pinyin_table[459],  &pinyin_table[392],  &pinyin_table[131],  }, /* nue r => nu er */
+    { &pinyin_table[397],  &pinyin_table[0],    &pinyin_table[392],  &pinyin_table[359],  }, /* nun a => nu na */
+    { &pinyin_table[397],  &pinyin_table[2],    &pinyin_table[392],  &pinyin_table[361],  }, /* nun ai => nu nai */
+    { &pinyin_table[397],  &pinyin_table[4],    &pinyin_table[392],  &pinyin_table[363],  }, /* nun an => nu nan */
+    { &pinyin_table[397],  &pinyin_table[5],    &pinyin_table[392],  &pinyin_table[364],  }, /* nun ang => nu nang */
+    { &pinyin_table[397],  &pinyin_table[6],    &pinyin_table[392],  &pinyin_table[365],  }, /* nun ao => nu nao */
+    { &pinyin_table[397],  &pinyin_table[128],  &pinyin_table[392],  &pinyin_table[366],  }, /* nun e => nu ne */
+    { &pinyin_table[397],  &pinyin_table[129],  &pinyin_table[392],  &pinyin_table[368],  }, /* nun ei => nu nei */
+    { &pinyin_table[397],  &pinyin_table[130],  &pinyin_table[392],  &pinyin_table[370],  }, /* nun en => nu nen */
+    { &pinyin_table[397],  &pinyin_table[402],  &pinyin_table[392],  &pinyin_table[391],  }, /* nun ou => nu nou */
+    { &pinyin_table[400],  &pinyin_table[459],  &pinyin_table[399],  &pinyin_table[131],  }, /* nve r => nv er */
+    { &pinyin_table[408],  &pinyin_table[0],    &pinyin_table[404],  &pinyin_table[359],  }, /* pan a => pa na */
+    { &pinyin_table[408],  &pinyin_table[5],    &pinyin_table[404],  &pinyin_table[364],  }, /* pan ang => pa nang */
+    { &pinyin_table[408],  &pinyin_table[6],    &pinyin_table[404],  &pinyin_table[365],  }, /* pan ao => pa nao */
+    { &pinyin_table[408],  &pinyin_table[128],  &pinyin_table[404],  &pinyin_table[366],  }, /* pan e => pa ne */
+    { &pinyin_table[408],  &pinyin_table[129],  &pinyin_table[404],  &pinyin_table[368],  }, /* pan ei => pa nei */
+    { &pinyin_table[409],  &pinyin_table[5],    &pinyin_table[408],  &pinyin_table[166],  }, /* pang ang => pan gang */
+    { &pinyin_table[409],  &pinyin_table[6],    &pinyin_table[408],  &pinyin_table[167],  }, /* pang ao => pan gao */
+    { &pinyin_table[409],  &pinyin_table[128],  &pinyin_table[408],  &pinyin_table[168],  }, /* pang e => pan ge */
+    { &pinyin_table[409],  &pinyin_table[129],  &pinyin_table[408],  &pinyin_table[170],  }, /* pang ei => pan gei */
+    { &pinyin_table[409],  &pinyin_table[130],  &pinyin_table[408],  &pinyin_table[172],  }, /* pang en => pan gen */
+    { &pinyin_table[409],  &pinyin_table[402],  &pinyin_table[408],  &pinyin_table[178],  }, /* pang ou => pan gou */
+    { &pinyin_table[415],  &pinyin_table[5],    &pinyin_table[414],  &pinyin_table[166],  }, /* peng ang => pen gang */
+    { &pinyin_table[415],  &pinyin_table[6],    &pinyin_table[414],  &pinyin_table[167],  }, /* peng ao => pen gao */
+    { &pinyin_table[415],  &pinyin_table[128],  &pinyin_table[414],  &pinyin_table[168],  }, /* peng e => pen ge */
+    { &pinyin_table[415],  &pinyin_table[129],  &pinyin_table[414],  &pinyin_table[170],  }, /* peng ei => pen gei */
+    { &pinyin_table[418],  &pinyin_table[0],    &pinyin_table[417],  &pinyin_table[161],  }, /* piang a => pian ga */
+    { &pinyin_table[418],  &pinyin_table[2],    &pinyin_table[417],  &pinyin_table[163],  }, /* piang ai => pian gai */
+    { &pinyin_table[418],  &pinyin_table[4],    &pinyin_table[417],  &pinyin_table[165],  }, /* piang an => pian gan */
+    { &pinyin_table[418],  &pinyin_table[5],    &pinyin_table[417],  &pinyin_table[166],  }, /* piang ang => pian gang */
+    { &pinyin_table[418],  &pinyin_table[6],    &pinyin_table[417],  &pinyin_table[167],  }, /* piang ao => pian gao */
+    { &pinyin_table[418],  &pinyin_table[128],  &pinyin_table[417],  &pinyin_table[168],  }, /* piang e => pian ge */
+    { &pinyin_table[418],  &pinyin_table[129],  &pinyin_table[417],  &pinyin_table[170],  }, /* piang ei => pian gei */
+    { &pinyin_table[418],  &pinyin_table[130],  &pinyin_table[417],  &pinyin_table[172],  }, /* piang en => pian gen */
+    { &pinyin_table[418],  &pinyin_table[402],  &pinyin_table[417],  &pinyin_table[178],  }, /* piang ou => pian gou */
+    { &pinyin_table[420],  &pinyin_table[459],  &pinyin_table[416],  &pinyin_table[131],  }, /* pie r => pi er */
+    { &pinyin_table[423],  &pinyin_table[0],    &pinyin_table[416],  &pinyin_table[359],  }, /* pin a => pi na */
+    { &pinyin_table[423],  &pinyin_table[5],    &pinyin_table[416],  &pinyin_table[364],  }, /* pin ang => pi nang */
+    { &pinyin_table[423],  &pinyin_table[6],    &pinyin_table[416],  &pinyin_table[365],  }, /* pin ao => pi nao */
+    { &pinyin_table[423],  &pinyin_table[128],  &pinyin_table[416],  &pinyin_table[366],  }, /* pin e => pi ne */
+    { &pinyin_table[423],  &pinyin_table[129],  &pinyin_table[416],  &pinyin_table[368],  }, /* pin ei => pi nei */
+    { &pinyin_table[424],  &pinyin_table[5],    &pinyin_table[423],  &pinyin_table[166],  }, /* ping ang => pin gang */
+    { &pinyin_table[424],  &pinyin_table[6],    &pinyin_table[423],  &pinyin_table[167],  }, /* ping ao => pin gao */
+    { &pinyin_table[424],  &pinyin_table[128],  &pinyin_table[423],  &pinyin_table[168],  }, /* ping e => pin ge */
+    { &pinyin_table[424],  &pinyin_table[129],  &pinyin_table[423],  &pinyin_table[170],  }, /* ping ei => pin gei */
+    { &pinyin_table[424],  &pinyin_table[130],  &pinyin_table[423],  &pinyin_table[172],  }, /* ping en => pin gen */
+    { &pinyin_table[424],  &pinyin_table[402],  &pinyin_table[423],  &pinyin_table[178],  }, /* ping ou => pin gou */
+    { &pinyin_table[433],  &pinyin_table[129],  &pinyin_table[430],  &pinyin_table[368],  }, /* qian ei => qia nei */
+    { &pinyin_table[434],  &pinyin_table[2],    &pinyin_table[433],  &pinyin_table[163],  }, /* qiang ai => qian gai */
+    { &pinyin_table[434],  &pinyin_table[4],    &pinyin_table[433],  &pinyin_table[165],  }, /* qiang an => qian gan */
+    { &pinyin_table[434],  &pinyin_table[5],    &pinyin_table[433],  &pinyin_table[166],  }, /* qiang ang => qian gang */
+    { &pinyin_table[434],  &pinyin_table[6],    &pinyin_table[433],  &pinyin_table[167],  }, /* qiang ao => qian gao */
+    { &pinyin_table[434],  &pinyin_table[128],  &pinyin_table[433],  &pinyin_table[168],  }, /* qiang e => qian ge */
+    { &pinyin_table[434],  &pinyin_table[129],  &pinyin_table[433],  &pinyin_table[170],  }, /* qiang ei => qian gei */
+    { &pinyin_table[434],  &pinyin_table[130],  &pinyin_table[433],  &pinyin_table[172],  }, /* qiang en => qian gen */
+    { &pinyin_table[434],  &pinyin_table[402],  &pinyin_table[433],  &pinyin_table[178],  }, /* qiang ou => qian gou */
+    { &pinyin_table[436],  &pinyin_table[459],  &pinyin_table[429],  &pinyin_table[131],  }, /* qie r => qi er */
+    { &pinyin_table[439],  &pinyin_table[0],    &pinyin_table[429],  &pinyin_table[359],  }, /* qin a => qi na */
+    { &pinyin_table[439],  &pinyin_table[5],    &pinyin_table[429],  &pinyin_table[364],  }, /* qin ang => qi nang */
+    { &pinyin_table[439],  &pinyin_table[6],    &pinyin_table[429],  &pinyin_table[365],  }, /* qin ao => qi nao */
+    { &pinyin_table[439],  &pinyin_table[128],  &pinyin_table[429],  &pinyin_table[366],  }, /* qin e => qi ne */
+    { &pinyin_table[439],  &pinyin_table[129],  &pinyin_table[429],  &pinyin_table[368],  }, /* qin ei => qi nei */
+    { &pinyin_table[440],  &pinyin_table[5],    &pinyin_table[439],  &pinyin_table[166],  }, /* qing ang => qin gang */
+    { &pinyin_table[440],  &pinyin_table[6],    &pinyin_table[439],  &pinyin_table[167],  }, /* qing ao => qin gao */
+    { &pinyin_table[440],  &pinyin_table[128],  &pinyin_table[439],  &pinyin_table[168],  }, /* qing e => qin ge */
+    { &pinyin_table[440],  &pinyin_table[129],  &pinyin_table[439],  &pinyin_table[170],  }, /* qing ei => qin gei */
+    { &pinyin_table[440],  &pinyin_table[130],  &pinyin_table[439],  &pinyin_table[172],  }, /* qing en => qin gen */
+    { &pinyin_table[440],  &pinyin_table[402],  &pinyin_table[439],  &pinyin_table[178],  }, /* qing ou => qin gou */
+    { &pinyin_table[449],  &pinyin_table[0],    &pinyin_table[448],  &pinyin_table[161],  }, /* quang a => quan ga */
+    { &pinyin_table[449],  &pinyin_table[2],    &pinyin_table[448],  &pinyin_table[163],  }, /* quang ai => quan gai */
+    { &pinyin_table[449],  &pinyin_table[4],    &pinyin_table[448],  &pinyin_table[165],  }, /* quang an => quan gan */
+    { &pinyin_table[449],  &pinyin_table[5],    &pinyin_table[448],  &pinyin_table[166],  }, /* quang ang => quan gang */
+    { &pinyin_table[449],  &pinyin_table[6],    &pinyin_table[448],  &pinyin_table[167],  }, /* quang ao => quan gao */
+    { &pinyin_table[449],  &pinyin_table[128],  &pinyin_table[448],  &pinyin_table[168],  }, /* quang e => quan ge */
+    { &pinyin_table[449],  &pinyin_table[129],  &pinyin_table[448],  &pinyin_table[170],  }, /* quang ei => quan gei */
+    { &pinyin_table[449],  &pinyin_table[130],  &pinyin_table[448],  &pinyin_table[172],  }, /* quang en => quan gen */
+    { &pinyin_table[449],  &pinyin_table[402],  &pinyin_table[448],  &pinyin_table[178],  }, /* quang ou => quan gou */
+    { &pinyin_table[450],  &pinyin_table[459],  &pinyin_table[447],  &pinyin_table[131],  }, /* que r => qu er */
+    { &pinyin_table[451],  &pinyin_table[0],    &pinyin_table[450],  &pinyin_table[359],  }, /* quen a => que na */
+    { &pinyin_table[451],  &pinyin_table[2],    &pinyin_table[450],  &pinyin_table[361],  }, /* quen ai => que nai */
+    { &pinyin_table[451],  &pinyin_table[4],    &pinyin_table[450],  &pinyin_table[363],  }, /* quen an => que nan */
+    { &pinyin_table[451],  &pinyin_table[5],    &pinyin_table[450],  &pinyin_table[364],  }, /* quen ang => que nang */
+    { &pinyin_table[451],  &pinyin_table[6],    &pinyin_table[450],  &pinyin_table[365],  }, /* quen ao => que nao */
+    { &pinyin_table[451],  &pinyin_table[128],  &pinyin_table[450],  &pinyin_table[366],  }, /* quen e => que ne */
+    { &pinyin_table[451],  &pinyin_table[129],  &pinyin_table[450],  &pinyin_table[368],  }, /* quen ei => que nei */
+    { &pinyin_table[451],  &pinyin_table[130],  &pinyin_table[450],  &pinyin_table[370],  }, /* quen en => que nen */
+    { &pinyin_table[451],  &pinyin_table[402],  &pinyin_table[450],  &pinyin_table[391],  }, /* quen ou => que nou */
+    { &pinyin_table[452],  &pinyin_table[0],    &pinyin_table[447],  &pinyin_table[359],  }, /* qun a => qu na */
+    { &pinyin_table[452],  &pinyin_table[4],    &pinyin_table[447],  &pinyin_table[363],  }, /* qun an => qu nan */
+    { &pinyin_table[452],  &pinyin_table[5],    &pinyin_table[447],  &pinyin_table[364],  }, /* qun ang => qu nang */
+    { &pinyin_table[452],  &pinyin_table[6],    &pinyin_table[447],  &pinyin_table[365],  }, /* qun ao => qu nao */
+    { &pinyin_table[452],  &pinyin_table[128],  &pinyin_table[447],  &pinyin_table[366],  }, /* qun e => qu ne */
+    { &pinyin_table[452],  &pinyin_table[129],  &pinyin_table[447],  &pinyin_table[368],  }, /* qun ei => qu nei */
+    { &pinyin_table[465],  &pinyin_table[5],    &pinyin_table[464],  &pinyin_table[166],  }, /* rang ang => ran gang */
+    { &pinyin_table[465],  &pinyin_table[6],    &pinyin_table[464],  &pinyin_table[167],  }, /* rang ao => ran gao */
+    { &pinyin_table[465],  &pinyin_table[129],  &pinyin_table[464],  &pinyin_table[170],  }, /* rang ei => ran gei */
+    { &pinyin_table[465],  &pinyin_table[130],  &pinyin_table[464],  &pinyin_table[172],  }, /* rang en => ran gen */
+    { &pinyin_table[471],  &pinyin_table[6],    &pinyin_table[467],  &pinyin_table[365],  }, /* ren ao => re nao */
+    { &pinyin_table[471],  &pinyin_table[128],  &pinyin_table[467],  &pinyin_table[366],  }, /* ren e => re ne */
+    { &pinyin_table[471],  &pinyin_table[129],  &pinyin_table[467],  &pinyin_table[368],  }, /* ren ei => re nei */
+    { &pinyin_table[472],  &pinyin_table[0],    &pinyin_table[471],  &pinyin_table[161],  }, /* reng a => ren ga */
+    { &pinyin_table[472],  &pinyin_table[2],    &pinyin_table[471],  &pinyin_table[163],  }, /* reng ai => ren gai */
+    { &pinyin_table[472],  &pinyin_table[4],    &pinyin_table[471],  &pinyin_table[165],  }, /* reng an => ren gan */
+    { &pinyin_table[472],  &pinyin_table[5],    &pinyin_table[471],  &pinyin_table[166],  }, /* reng ang => ren gang */
+    { &pinyin_table[472],  &pinyin_table[6],    &pinyin_table[471],  &pinyin_table[167],  }, /* reng ao => ren gao */
+    { &pinyin_table[472],  &pinyin_table[128],  &pinyin_table[471],  &pinyin_table[168],  }, /* reng e => ren ge */
+    { &pinyin_table[472],  &pinyin_table[129],  &pinyin_table[471],  &pinyin_table[170],  }, /* reng ei => ren gei */
+    { &pinyin_table[472],  &pinyin_table[130],  &pinyin_table[471],  &pinyin_table[172],  }, /* reng en => ren gen */
+    { &pinyin_table[472],  &pinyin_table[402],  &pinyin_table[471],  &pinyin_table[178],  }, /* reng ou => ren gou */
+    { &pinyin_table[478],  &pinyin_table[459],  &pinyin_table[473],  &pinyin_table[131],  }, /* rie r => ri er */
+    { &pinyin_table[479],  &pinyin_table[0],    &pinyin_table[473],  &pinyin_table[359],  }, /* rin a => ri na */
+    { &pinyin_table[479],  &pinyin_table[2],    &pinyin_table[473],  &pinyin_table[361],  }, /* rin ai => ri nai */
+    { &pinyin_table[479],  &pinyin_table[4],    &pinyin_table[473],  &pinyin_table[363],  }, /* rin an => ri nan */
+    { &pinyin_table[479],  &pinyin_table[5],    &pinyin_table[473],  &pinyin_table[364],  }, /* rin ang => ri nang */
+    { &pinyin_table[479],  &pinyin_table[6],    &pinyin_table[473],  &pinyin_table[365],  }, /* rin ao => ri nao */
+    { &pinyin_table[479],  &pinyin_table[128],  &pinyin_table[473],  &pinyin_table[366],  }, /* rin e => ri ne */
+    { &pinyin_table[479],  &pinyin_table[129],  &pinyin_table[473],  &pinyin_table[368],  }, /* rin ei => ri nei */
+    { &pinyin_table[479],  &pinyin_table[130],  &pinyin_table[473],  &pinyin_table[370],  }, /* rin en => ri nen */
+    { &pinyin_table[479],  &pinyin_table[402],  &pinyin_table[473],  &pinyin_table[391],  }, /* rin ou => ri nou */
+    { &pinyin_table[491],  &pinyin_table[0],    &pinyin_table[490],  &pinyin_table[161],  }, /* ruang a => ruan ga */
+    { &pinyin_table[491],  &pinyin_table[2],    &pinyin_table[490],  &pinyin_table[163],  }, /* ruang ai => ruan gai */
+    { &pinyin_table[491],  &pinyin_table[4],    &pinyin_table[490],  &pinyin_table[165],  }, /* ruang an => ruan gan */
+    { &pinyin_table[491],  &pinyin_table[5],    &pinyin_table[490],  &pinyin_table[166],  }, /* ruang ang => ruan gang */
+    { &pinyin_table[491],  &pinyin_table[6],    &pinyin_table[490],  &pinyin_table[167],  }, /* ruang ao => ruan gao */
+    { &pinyin_table[491],  &pinyin_table[128],  &pinyin_table[490],  &pinyin_table[168],  }, /* ruang e => ruan ge */
+    { &pinyin_table[491],  &pinyin_table[129],  &pinyin_table[490],  &pinyin_table[170],  }, /* ruang ei => ruan gei */
+    { &pinyin_table[491],  &pinyin_table[130],  &pinyin_table[490],  &pinyin_table[172],  }, /* ruang en => ruan gen */
+    { &pinyin_table[491],  &pinyin_table[402],  &pinyin_table[490],  &pinyin_table[178],  }, /* ruang ou => ruan gou */
+    { &pinyin_table[492],  &pinyin_table[459],  &pinyin_table[489],  &pinyin_table[131],  }, /* rue r => ru er */
+    { &pinyin_table[496],  &pinyin_table[0],    &pinyin_table[489],  &pinyin_table[359],  }, /* run a => ru na */
+    { &pinyin_table[496],  &pinyin_table[2],    &pinyin_table[489],  &pinyin_table[361],  }, /* run ai => ru nai */
+    { &pinyin_table[496],  &pinyin_table[4],    &pinyin_table[489],  &pinyin_table[363],  }, /* run an => ru nan */
+    { &pinyin_table[496],  &pinyin_table[5],    &pinyin_table[489],  &pinyin_table[364],  }, /* run ang => ru nang */
+    { &pinyin_table[496],  &pinyin_table[6],    &pinyin_table[489],  &pinyin_table[365],  }, /* run ao => ru nao */
+    { &pinyin_table[496],  &pinyin_table[128],  &pinyin_table[489],  &pinyin_table[366],  }, /* run e => ru ne */
+    { &pinyin_table[496],  &pinyin_table[129],  &pinyin_table[489],  &pinyin_table[368],  }, /* run ei => ru nei */
+    { &pinyin_table[496],  &pinyin_table[130],  &pinyin_table[489],  &pinyin_table[370],  }, /* run en => ru nen */
+    { &pinyin_table[505],  &pinyin_table[0],    &pinyin_table[501],  &pinyin_table[359],  }, /* san a => sa na */
+    { &pinyin_table[505],  &pinyin_table[129],  &pinyin_table[501],  &pinyin_table[368],  }, /* san ei => sa nei */
+    { &pinyin_table[506],  &pinyin_table[2],    &pinyin_table[505],  &pinyin_table[163],  }, /* sang ai => san gai */
+    { &pinyin_table[506],  &pinyin_table[4],    &pinyin_table[505],  &pinyin_table[165],  }, /* sang an => san gan */
+    { &pinyin_table[506],  &pinyin_table[5],    &pinyin_table[505],  &pinyin_table[166],  }, /* sang ang => san gang */
+    { &pinyin_table[506],  &pinyin_table[6],    &pinyin_table[505],  &pinyin_table[167],  }, /* sang ao => san gao */
+    { &pinyin_table[506],  &pinyin_table[128],  &pinyin_table[505],  &pinyin_table[168],  }, /* sang e => san ge */
+    { &pinyin_table[506],  &pinyin_table[129],  &pinyin_table[505],  &pinyin_table[170],  }, /* sang ei => san gei */
+    { &pinyin_table[506],  &pinyin_table[130],  &pinyin_table[505],  &pinyin_table[172],  }, /* sang en => san gen */
+    { &pinyin_table[512],  &pinyin_table[0],    &pinyin_table[508],  &pinyin_table[359],  }, /* sen a => se na */
+    { &pinyin_table[512],  &pinyin_table[2],    &pinyin_table[508],  &pinyin_table[361],  }, /* sen ai => se nai */
+    { &pinyin_table[512],  &pinyin_table[4],    &pinyin_table[508],  &pinyin_table[363],  }, /* sen an => se nan */
+    { &pinyin_table[512],  &pinyin_table[5],    &pinyin_table[508],  &pinyin_table[364],  }, /* sen ang => se nang */
+    { &pinyin_table[512],  &pinyin_table[6],    &pinyin_table[508],  &pinyin_table[365],  }, /* sen ao => se nao */
+    { &pinyin_table[512],  &pinyin_table[128],  &pinyin_table[508],  &pinyin_table[366],  }, /* sen e => se ne */
+    { &pinyin_table[512],  &pinyin_table[129],  &pinyin_table[508],  &pinyin_table[368],  }, /* sen ei => se nei */
+    { &pinyin_table[513],  &pinyin_table[2],    &pinyin_table[512],  &pinyin_table[163],  }, /* seng ai => sen gai */
+    { &pinyin_table[513],  &pinyin_table[4],    &pinyin_table[512],  &pinyin_table[165],  }, /* seng an => sen gan */
+    { &pinyin_table[513],  &pinyin_table[5],    &pinyin_table[512],  &pinyin_table[166],  }, /* seng ang => sen gang */
+    { &pinyin_table[513],  &pinyin_table[6],    &pinyin_table[512],  &pinyin_table[167],  }, /* seng ao => sen gao */
+    { &pinyin_table[513],  &pinyin_table[128],  &pinyin_table[512],  &pinyin_table[168],  }, /* seng e => sen ge */
+    { &pinyin_table[513],  &pinyin_table[129],  &pinyin_table[512],  &pinyin_table[170],  }, /* seng ei => sen gei */
+    { &pinyin_table[513],  &pinyin_table[130],  &pinyin_table[512],  &pinyin_table[172],  }, /* seng en => sen gen */
+    { &pinyin_table[513],  &pinyin_table[402],  &pinyin_table[512],  &pinyin_table[178],  }, /* seng ou => sen gou */
+    { &pinyin_table[519],  &pinyin_table[0],    &pinyin_table[515],  &pinyin_table[359],  }, /* shan a => sha na */
+    { &pinyin_table[519],  &pinyin_table[4],    &pinyin_table[515],  &pinyin_table[363],  }, /* shan an => sha nan */
+    { &pinyin_table[519],  &pinyin_table[129],  &pinyin_table[515],  &pinyin_table[368],  }, /* shan ei => sha nei */
+    { &pinyin_table[520],  &pinyin_table[2],    &pinyin_table[519],  &pinyin_table[163],  }, /* shang ai => shan gai */
+    { &pinyin_table[520],  &pinyin_table[5],    &pinyin_table[519],  &pinyin_table[166],  }, /* shang ang => shan gang */
+    { &pinyin_table[520],  &pinyin_table[6],    &pinyin_table[519],  &pinyin_table[167],  }, /* shang ao => shan gao */
+    { &pinyin_table[520],  &pinyin_table[128],  &pinyin_table[519],  &pinyin_table[168],  }, /* shang e => shan ge */
+    { &pinyin_table[520],  &pinyin_table[129],  &pinyin_table[519],  &pinyin_table[170],  }, /* shang ei => shan gei */
+    { &pinyin_table[520],  &pinyin_table[130],  &pinyin_table[519],  &pinyin_table[172],  }, /* shang en => shan gen */
+    { &pinyin_table[520],  &pinyin_table[402],  &pinyin_table[519],  &pinyin_table[178],  }, /* shang ou => shan gou */
+    { &pinyin_table[526],  &pinyin_table[129],  &pinyin_table[522],  &pinyin_table[368],  }, /* shen ei => she nei */
+    { &pinyin_table[527],  &pinyin_table[4],    &pinyin_table[526],  &pinyin_table[165],  }, /* sheng an => shen gan */
+    { &pinyin_table[527],  &pinyin_table[5],    &pinyin_table[526],  &pinyin_table[166],  }, /* sheng ang => shen gang */
+    { &pinyin_table[527],  &pinyin_table[6],    &pinyin_table[526],  &pinyin_table[167],  }, /* sheng ao => shen gao */
+    { &pinyin_table[527],  &pinyin_table[128],  &pinyin_table[526],  &pinyin_table[168],  }, /* sheng e => shen ge */
+    { &pinyin_table[527],  &pinyin_table[129],  &pinyin_table[526],  &pinyin_table[170],  }, /* sheng ei => shen gei */
+    { &pinyin_table[527],  &pinyin_table[402],  &pinyin_table[526],  &pinyin_table[178],  }, /* sheng ou => shen gou */
+    { &pinyin_table[537],  &pinyin_table[0],    &pinyin_table[533],  &pinyin_table[359],  }, /* shuan a => shua na */
+    { &pinyin_table[537],  &pinyin_table[2],    &pinyin_table[533],  &pinyin_table[361],  }, /* shuan ai => shua nai */
+    { &pinyin_table[537],  &pinyin_table[4],    &pinyin_table[533],  &pinyin_table[363],  }, /* shuan an => shua nan */
+    { &pinyin_table[537],  &pinyin_table[5],    &pinyin_table[533],  &pinyin_table[364],  }, /* shuan ang => shua nang */
+    { &pinyin_table[537],  &pinyin_table[6],    &pinyin_table[533],  &pinyin_table[365],  }, /* shuan ao => shua nao */
+    { &pinyin_table[537],  &pinyin_table[128],  &pinyin_table[533],  &pinyin_table[366],  }, /* shuan e => shua ne */
+    { &pinyin_table[537],  &pinyin_table[129],  &pinyin_table[533],  &pinyin_table[368],  }, /* shuan ei => shua nei */
+    { &pinyin_table[538],  &pinyin_table[129],  &pinyin_table[537],  &pinyin_table[170],  }, /* shuang ei => shuan gei */
+    { &pinyin_table[542],  &pinyin_table[4],    &pinyin_table[532],  &pinyin_table[363],  }, /* shun an => shu nan */
+    { &pinyin_table[542],  &pinyin_table[5],    &pinyin_table[532],  &pinyin_table[364],  }, /* shun ang => shu nang */
+    { &pinyin_table[542],  &pinyin_table[6],    &pinyin_table[532],  &pinyin_table[365],  }, /* shun ao => shu nao */
+    { &pinyin_table[542],  &pinyin_table[128],  &pinyin_table[532],  &pinyin_table[366],  }, /* shun e => shu ne */
+    { &pinyin_table[542],  &pinyin_table[129],  &pinyin_table[532],  &pinyin_table[368],  }, /* shun ei => shu nei */
+    { &pinyin_table[554],  &pinyin_table[0],    &pinyin_table[553],  &pinyin_table[161],  }, /* suang a => suan ga */
+    { &pinyin_table[554],  &pinyin_table[2],    &pinyin_table[553],  &pinyin_table[163],  }, /* suang ai => suan gai */
+    { &pinyin_table[554],  &pinyin_table[4],    &pinyin_table[553],  &pinyin_table[165],  }, /* suang an => suan gan */
+    { &pinyin_table[554],  &pinyin_table[5],    &pinyin_table[553],  &pinyin_table[166],  }, /* suang ang => suan gang */
+    { &pinyin_table[554],  &pinyin_table[6],    &pinyin_table[553],  &pinyin_table[167],  }, /* suang ao => suan gao */
+    { &pinyin_table[554],  &pinyin_table[128],  &pinyin_table[553],  &pinyin_table[168],  }, /* suang e => suan ge */
+    { &pinyin_table[554],  &pinyin_table[129],  &pinyin_table[553],  &pinyin_table[170],  }, /* suang ei => suan gei */
+    { &pinyin_table[554],  &pinyin_table[130],  &pinyin_table[553],  &pinyin_table[172],  }, /* suang en => suan gen */
+    { &pinyin_table[554],  &pinyin_table[402],  &pinyin_table[553],  &pinyin_table[178],  }, /* suang ou => suan gou */
+    { &pinyin_table[558],  &pinyin_table[0],    &pinyin_table[550],  &pinyin_table[359],  }, /* sun a => su na */
+    { &pinyin_table[558],  &pinyin_table[4],    &pinyin_table[550],  &pinyin_table[363],  }, /* sun an => su nan */
+    { &pinyin_table[558],  &pinyin_table[5],    &pinyin_table[550],  &pinyin_table[364],  }, /* sun ang => su nang */
+    { &pinyin_table[558],  &pinyin_table[6],    &pinyin_table[550],  &pinyin_table[365],  }, /* sun ao => su nao */
+    { &pinyin_table[558],  &pinyin_table[128],  &pinyin_table[550],  &pinyin_table[366],  }, /* sun e => su ne */
+    { &pinyin_table[558],  &pinyin_table[129],  &pinyin_table[550],  &pinyin_table[368],  }, /* sun ei => su nei */
+    { &pinyin_table[565],  &pinyin_table[0],    &pinyin_table[561],  &pinyin_table[359],  }, /* tan a => ta na */
+    { &pinyin_table[565],  &pinyin_table[5],    &pinyin_table[561],  &pinyin_table[364],  }, /* tan ang => ta nang */
+    { &pinyin_table[565],  &pinyin_table[6],    &pinyin_table[561],  &pinyin_table[365],  }, /* tan ao => ta nao */
+    { &pinyin_table[565],  &pinyin_table[128],  &pinyin_table[561],  &pinyin_table[366],  }, /* tan e => ta ne */
+    { &pinyin_table[565],  &pinyin_table[129],  &pinyin_table[561],  &pinyin_table[368],  }, /* tan ei => ta nei */
+    { &pinyin_table[566],  &pinyin_table[2],    &pinyin_table[565],  &pinyin_table[163],  }, /* tang ai => tan gai */
+    { &pinyin_table[566],  &pinyin_table[4],    &pinyin_table[565],  &pinyin_table[165],  }, /* tang an => tan gan */
+    { &pinyin_table[566],  &pinyin_table[5],    &pinyin_table[565],  &pinyin_table[166],  }, /* tang ang => tan gang */
+    { &pinyin_table[566],  &pinyin_table[128],  &pinyin_table[565],  &pinyin_table[168],  }, /* tang e => tan ge */
+    { &pinyin_table[566],  &pinyin_table[129],  &pinyin_table[565],  &pinyin_table[170],  }, /* tang ei => tan gei */
+    { &pinyin_table[566],  &pinyin_table[402],  &pinyin_table[565],  &pinyin_table[178],  }, /* tang ou => tan gou */
+    { &pinyin_table[571],  &pinyin_table[0],    &pinyin_table[568],  &pinyin_table[359],  }, /* ten a => te na */
+    { &pinyin_table[571],  &pinyin_table[2],    &pinyin_table[568],  &pinyin_table[361],  }, /* ten ai => te nai */
+    { &pinyin_table[571],  &pinyin_table[4],    &pinyin_table[568],  &pinyin_table[363],  }, /* ten an => te nan */
+    { &pinyin_table[571],  &pinyin_table[5],    &pinyin_table[568],  &pinyin_table[364],  }, /* ten ang => te nang */
+    { &pinyin_table[571],  &pinyin_table[6],    &pinyin_table[568],  &pinyin_table[365],  }, /* ten ao => te nao */
+    { &pinyin_table[571],  &pinyin_table[128],  &pinyin_table[568],  &pinyin_table[366],  }, /* ten e => te ne */
+    { &pinyin_table[571],  &pinyin_table[129],  &pinyin_table[568],  &pinyin_table[368],  }, /* ten ei => te nei */
+    { &pinyin_table[571],  &pinyin_table[130],  &pinyin_table[568],  &pinyin_table[370],  }, /* ten en => te nen */
+    { &pinyin_table[571],  &pinyin_table[402],  &pinyin_table[568],  &pinyin_table[391],  }, /* ten ou => te nou */
+    { &pinyin_table[575],  &pinyin_table[0],    &pinyin_table[574],  &pinyin_table[161],  }, /* tiang a => tian ga */
+    { &pinyin_table[575],  &pinyin_table[2],    &pinyin_table[574],  &pinyin_table[163],  }, /* tiang ai => tian gai */
+    { &pinyin_table[575],  &pinyin_table[4],    &pinyin_table[574],  &pinyin_table[165],  }, /* tiang an => tian gan */
+    { &pinyin_table[575],  &pinyin_table[5],    &pinyin_table[574],  &pinyin_table[166],  }, /* tiang ang => tian gang */
+    { &pinyin_table[575],  &pinyin_table[6],    &pinyin_table[574],  &pinyin_table[167],  }, /* tiang ao => tian gao */
+    { &pinyin_table[575],  &pinyin_table[128],  &pinyin_table[574],  &pinyin_table[168],  }, /* tiang e => tian ge */
+    { &pinyin_table[575],  &pinyin_table[129],  &pinyin_table[574],  &pinyin_table[170],  }, /* tiang ei => tian gei */
+    { &pinyin_table[575],  &pinyin_table[130],  &pinyin_table[574],  &pinyin_table[172],  }, /* tiang en => tian gen */
+    { &pinyin_table[575],  &pinyin_table[402],  &pinyin_table[574],  &pinyin_table[178],  }, /* tiang ou => tian gou */
+    { &pinyin_table[577],  &pinyin_table[459],  &pinyin_table[573],  &pinyin_table[131],  }, /* tie r => ti er */
+    { &pinyin_table[580],  &pinyin_table[0],    &pinyin_table[573],  &pinyin_table[359],  }, /* tin a => ti na */
+    { &pinyin_table[580],  &pinyin_table[2],    &pinyin_table[573],  &pinyin_table[361],  }, /* tin ai => ti nai */
+    { &pinyin_table[580],  &pinyin_table[4],    &pinyin_table[573],  &pinyin_table[363],  }, /* tin an => ti nan */
+    { &pinyin_table[580],  &pinyin_table[5],    &pinyin_table[573],  &pinyin_table[364],  }, /* tin ang => ti nang */
+    { &pinyin_table[580],  &pinyin_table[6],    &pinyin_table[573],  &pinyin_table[365],  }, /* tin ao => ti nao */
+    { &pinyin_table[580],  &pinyin_table[128],  &pinyin_table[573],  &pinyin_table[366],  }, /* tin e => ti ne */
+    { &pinyin_table[580],  &pinyin_table[129],  &pinyin_table[573],  &pinyin_table[368],  }, /* tin ei => ti nei */
+    { &pinyin_table[580],  &pinyin_table[130],  &pinyin_table[573],  &pinyin_table[370],  }, /* tin en => ti nen */
+    { &pinyin_table[580],  &pinyin_table[402],  &pinyin_table[573],  &pinyin_table[391],  }, /* tin ou => ti nou */
+    { &pinyin_table[589],  &pinyin_table[0],    &pinyin_table[588],  &pinyin_table[161],  }, /* tuang a => tuan ga */
+    { &pinyin_table[589],  &pinyin_table[2],    &pinyin_table[588],  &pinyin_table[163],  }, /* tuang ai => tuan gai */
+    { &pinyin_table[589],  &pinyin_table[4],    &pinyin_table[588],  &pinyin_table[165],  }, /* tuang an => tuan gan */
+    { &pinyin_table[589],  &pinyin_table[5],    &pinyin_table[588],  &pinyin_table[166],  }, /* tuang ang => tuan gang */
+    { &pinyin_table[589],  &pinyin_table[6],    &pinyin_table[588],  &pinyin_table[167],  }, /* tuang ao => tuan gao */
+    { &pinyin_table[589],  &pinyin_table[128],  &pinyin_table[588],  &pinyin_table[168],  }, /* tuang e => tuan ge */
+    { &pinyin_table[589],  &pinyin_table[129],  &pinyin_table[588],  &pinyin_table[170],  }, /* tuang ei => tuan gei */
+    { &pinyin_table[589],  &pinyin_table[130],  &pinyin_table[588],  &pinyin_table[172],  }, /* tuang en => tuan gen */
+    { &pinyin_table[589],  &pinyin_table[402],  &pinyin_table[588],  &pinyin_table[178],  }, /* tuang ou => tuan gou */
+    { &pinyin_table[593],  &pinyin_table[0],    &pinyin_table[587],  &pinyin_table[359],  }, /* tun a => tu na */
+    { &pinyin_table[593],  &pinyin_table[2],    &pinyin_table[587],  &pinyin_table[361],  }, /* tun ai => tu nai */
+    { &pinyin_table[593],  &pinyin_table[4],    &pinyin_table[587],  &pinyin_table[363],  }, /* tun an => tu nan */
+    { &pinyin_table[593],  &pinyin_table[5],    &pinyin_table[587],  &pinyin_table[364],  }, /* tun ang => tu nang */
+    { &pinyin_table[593],  &pinyin_table[6],    &pinyin_table[587],  &pinyin_table[365],  }, /* tun ao => tu nao */
+    { &pinyin_table[593],  &pinyin_table[128],  &pinyin_table[587],  &pinyin_table[366],  }, /* tun e => tu ne */
+    { &pinyin_table[593],  &pinyin_table[129],  &pinyin_table[587],  &pinyin_table[368],  }, /* tun ei => tu nei */
+    { &pinyin_table[593],  &pinyin_table[130],  &pinyin_table[587],  &pinyin_table[370],  }, /* tun en => tu nen */
+    { &pinyin_table[600],  &pinyin_table[129],  &pinyin_table[596],  &pinyin_table[368],  }, /* wan ei => wa nei */
+    { &pinyin_table[601],  &pinyin_table[5],    &pinyin_table[600],  &pinyin_table[166],  }, /* wang ang => wan gang */
+    { &pinyin_table[601],  &pinyin_table[6],    &pinyin_table[600],  &pinyin_table[167],  }, /* wang ao => wan gao */
+    { &pinyin_table[601],  &pinyin_table[128],  &pinyin_table[600],  &pinyin_table[168],  }, /* wang e => wan ge */
+    { &pinyin_table[601],  &pinyin_table[129],  &pinyin_table[600],  &pinyin_table[170],  }, /* wang ei => wan gei */
+    { &pinyin_table[601],  &pinyin_table[402],  &pinyin_table[600],  &pinyin_table[178],  }, /* wang ou => wan gou */
+    { &pinyin_table[606],  &pinyin_table[0],    &pinyin_table[605],  &pinyin_table[161],  }, /* weng a => wen ga */
+    { &pinyin_table[606],  &pinyin_table[2],    &pinyin_table[605],  &pinyin_table[163],  }, /* weng ai => wen gai */
+    { &pinyin_table[606],  &pinyin_table[4],    &pinyin_table[605],  &pinyin_table[165],  }, /* weng an => wen gan */
+    { &pinyin_table[606],  &pinyin_table[5],    &pinyin_table[605],  &pinyin_table[166],  }, /* weng ang => wen gang */
+    { &pinyin_table[606],  &pinyin_table[6],    &pinyin_table[605],  &pinyin_table[167],  }, /* weng ao => wen gao */
+    { &pinyin_table[606],  &pinyin_table[128],  &pinyin_table[605],  &pinyin_table[168],  }, /* weng e => wen ge */
+    { &pinyin_table[606],  &pinyin_table[129],  &pinyin_table[605],  &pinyin_table[170],  }, /* weng ei => wen gei */
+    { &pinyin_table[606],  &pinyin_table[130],  &pinyin_table[605],  &pinyin_table[172],  }, /* weng en => wen gen */
+    { &pinyin_table[606],  &pinyin_table[402],  &pinyin_table[605],  &pinyin_table[178],  }, /* weng ou => wen gou */
+    { &pinyin_table[614],  &pinyin_table[0],    &pinyin_table[611],  &pinyin_table[359],  }, /* xian a => xia na */
+    { &pinyin_table[614],  &pinyin_table[5],    &pinyin_table[611],  &pinyin_table[364],  }, /* xian ang => xia nang */
+    { &pinyin_table[614],  &pinyin_table[6],    &pinyin_table[611],  &pinyin_table[365],  }, /* xian ao => xia nao */
+    { &pinyin_table[614],  &pinyin_table[129],  &pinyin_table[611],  &pinyin_table[368],  }, /* xian ei => xia nei */
+    { &pinyin_table[615],  &pinyin_table[5],    &pinyin_table[614],  &pinyin_table[166],  }, /* xiang ang => xian gang */
+    { &pinyin_table[615],  &pinyin_table[6],    &pinyin_table[614],  &pinyin_table[167],  }, /* xiang ao => xian gao */
+    { &pinyin_table[615],  &pinyin_table[129],  &pinyin_table[614],  &pinyin_table[170],  }, /* xiang ei => xian gei */
+    { &pinyin_table[615],  &pinyin_table[130],  &pinyin_table[614],  &pinyin_table[172],  }, /* xiang en => xian gen */
+    { &pinyin_table[615],  &pinyin_table[402],  &pinyin_table[614],  &pinyin_table[178],  }, /* xiang ou => xian gou */
+    { &pinyin_table[617],  &pinyin_table[459],  &pinyin_table[610],  &pinyin_table[131],  }, /* xie r => xi er */
+    { &pinyin_table[620],  &pinyin_table[0],    &pinyin_table[610],  &pinyin_table[359],  }, /* xin a => xi na */
+    { &pinyin_table[620],  &pinyin_table[4],    &pinyin_table[610],  &pinyin_table[363],  }, /* xin an => xi nan */
+    { &pinyin_table[620],  &pinyin_table[128],  &pinyin_table[610],  &pinyin_table[366],  }, /* xin e => xi ne */
+    { &pinyin_table[620],  &pinyin_table[129],  &pinyin_table[610],  &pinyin_table[368],  }, /* xin ei => xi nei */
+    { &pinyin_table[620],  &pinyin_table[130],  &pinyin_table[610],  &pinyin_table[370],  }, /* xin en => xi nen */
+    { &pinyin_table[621],  &pinyin_table[4],    &pinyin_table[620],  &pinyin_table[165],  }, /* xing an => xin gan */
+    { &pinyin_table[621],  &pinyin_table[5],    &pinyin_table[620],  &pinyin_table[166],  }, /* xing ang => xin gang */
+    { &pinyin_table[621],  &pinyin_table[6],    &pinyin_table[620],  &pinyin_table[167],  }, /* xing ao => xin gao */
+    { &pinyin_table[621],  &pinyin_table[128],  &pinyin_table[620],  &pinyin_table[168],  }, /* xing e => xin ge */
+    { &pinyin_table[621],  &pinyin_table[129],  &pinyin_table[620],  &pinyin_table[170],  }, /* xing ei => xin gei */
+    { &pinyin_table[621],  &pinyin_table[130],  &pinyin_table[620],  &pinyin_table[172],  }, /* xing en => xin gen */
+    { &pinyin_table[621],  &pinyin_table[402],  &pinyin_table[620],  &pinyin_table[178],  }, /* xing ou => xin gou */
+    { &pinyin_table[630],  &pinyin_table[0],    &pinyin_table[629],  &pinyin_table[161],  }, /* xuang a => xuan ga */
+    { &pinyin_table[630],  &pinyin_table[2],    &pinyin_table[629],  &pinyin_table[163],  }, /* xuang ai => xuan gai */
+    { &pinyin_table[630],  &pinyin_table[4],    &pinyin_table[629],  &pinyin_table[165],  }, /* xuang an => xuan gan */
+    { &pinyin_table[630],  &pinyin_table[5],    &pinyin_table[629],  &pinyin_table[166],  }, /* xuang ang => xuan gang */
+    { &pinyin_table[630],  &pinyin_table[6],    &pinyin_table[629],  &pinyin_table[167],  }, /* xuang ao => xuan gao */
+    { &pinyin_table[630],  &pinyin_table[128],  &pinyin_table[629],  &pinyin_table[168],  }, /* xuang e => xuan ge */
+    { &pinyin_table[630],  &pinyin_table[129],  &pinyin_table[629],  &pinyin_table[170],  }, /* xuang ei => xuan gei */
+    { &pinyin_table[630],  &pinyin_table[130],  &pinyin_table[629],  &pinyin_table[172],  }, /* xuang en => xuan gen */
+    { &pinyin_table[630],  &pinyin_table[402],  &pinyin_table[629],  &pinyin_table[178],  }, /* xuang ou => xuan gou */
+    { &pinyin_table[631],  &pinyin_table[459],  &pinyin_table[628],  &pinyin_table[131],  }, /* xue r => xu er */
+    { &pinyin_table[632],  &pinyin_table[0],    &pinyin_table[631],  &pinyin_table[359],  }, /* xuen a => xue na */
+    { &pinyin_table[632],  &pinyin_table[2],    &pinyin_table[631],  &pinyin_table[361],  }, /* xuen ai => xue nai */
+    { &pinyin_table[632],  &pinyin_table[4],    &pinyin_table[631],  &pinyin_table[363],  }, /* xuen an => xue nan */
+    { &pinyin_table[632],  &pinyin_table[5],    &pinyin_table[631],  &pinyin_table[364],  }, /* xuen ang => xue nang */
+    { &pinyin_table[632],  &pinyin_table[6],    &pinyin_table[631],  &pinyin_table[365],  }, /* xuen ao => xue nao */
+    { &pinyin_table[632],  &pinyin_table[128],  &pinyin_table[631],  &pinyin_table[366],  }, /* xuen e => xue ne */
+    { &pinyin_table[632],  &pinyin_table[129],  &pinyin_table[631],  &pinyin_table[368],  }, /* xuen ei => xue nei */
+    { &pinyin_table[632],  &pinyin_table[130],  &pinyin_table[631],  &pinyin_table[370],  }, /* xuen en => xue nen */
+    { &pinyin_table[632],  &pinyin_table[402],  &pinyin_table[631],  &pinyin_table[391],  }, /* xuen ou => xue nou */
+    { &pinyin_table[633],  &pinyin_table[5],    &pinyin_table[628],  &pinyin_table[364],  }, /* xun ang => xu nang */
+    { &pinyin_table[633],  &pinyin_table[6],    &pinyin_table[628],  &pinyin_table[365],  }, /* xun ao => xu nao */
+    { &pinyin_table[633],  &pinyin_table[128],  &pinyin_table[628],  &pinyin_table[366],  }, /* xun e => xu ne */
+    { &pinyin_table[633],  &pinyin_table[129],  &pinyin_table[628],  &pinyin_table[368],  }, /* xun ei => xu nei */
+    { &pinyin_table[644],  &pinyin_table[0],    &pinyin_table[641],  &pinyin_table[359],  }, /* yan a => ya na */
+    { &pinyin_table[644],  &pinyin_table[128],  &pinyin_table[641],  &pinyin_table[366],  }, /* yan e => ya ne */
+    { &pinyin_table[644],  &pinyin_table[129],  &pinyin_table[641],  &pinyin_table[368],  }, /* yan ei => ya nei */
+    { &pinyin_table[645],  &pinyin_table[2],    &pinyin_table[644],  &pinyin_table[163],  }, /* yang ai => yan gai */
+    { &pinyin_table[645],  &pinyin_table[4],    &pinyin_table[644],  &pinyin_table[165],  }, /* yang an => yan gan */
+    { &pinyin_table[645],  &pinyin_table[5],    &pinyin_table[644],  &pinyin_table[166],  }, /* yang ang => yan gang */
+    { &pinyin_table[645],  &pinyin_table[6],    &pinyin_table[644],  &pinyin_table[167],  }, /* yang ao => yan gao */
+    { &pinyin_table[645],  &pinyin_table[128],  &pinyin_table[644],  &pinyin_table[168],  }, /* yang e => yan ge */
+    { &pinyin_table[645],  &pinyin_table[129],  &pinyin_table[644],  &pinyin_table[170],  }, /* yang ei => yan gei */
+    { &pinyin_table[645],  &pinyin_table[402],  &pinyin_table[644],  &pinyin_table[178],  }, /* yang ou => yan gou */
+    { &pinyin_table[651],  &pinyin_table[0],    &pinyin_table[648],  &pinyin_table[359],  }, /* yin a => yi na */
+    { &pinyin_table[651],  &pinyin_table[2],    &pinyin_table[648],  &pinyin_table[361],  }, /* yin ai => yi nai */
+    { &pinyin_table[651],  &pinyin_table[4],    &pinyin_table[648],  &pinyin_table[363],  }, /* yin an => yi nan */
+    { &pinyin_table[651],  &pinyin_table[5],    &pinyin_table[648],  &pinyin_table[364],  }, /* yin ang => yi nang */
+    { &pinyin_table[651],  &pinyin_table[6],    &pinyin_table[648],  &pinyin_table[365],  }, /* yin ao => yi nao */
+    { &pinyin_table[651],  &pinyin_table[129],  &pinyin_table[648],  &pinyin_table[368],  }, /* yin ei => yi nei */
+    { &pinyin_table[652],  &pinyin_table[2],    &pinyin_table[651],  &pinyin_table[163],  }, /* ying ai => yin gai */
+    { &pinyin_table[652],  &pinyin_table[5],    &pinyin_table[651],  &pinyin_table[166],  }, /* ying ang => yin gang */
+    { &pinyin_table[652],  &pinyin_table[6],    &pinyin_table[651],  &pinyin_table[167],  }, /* ying ao => yin gao */
+    { &pinyin_table[652],  &pinyin_table[129],  &pinyin_table[651],  &pinyin_table[170],  }, /* ying ei => yin gei */
+    { &pinyin_table[652],  &pinyin_table[130],  &pinyin_table[651],  &pinyin_table[172],  }, /* ying en => yin gen */
+    { &pinyin_table[652],  &pinyin_table[402],  &pinyin_table[651],  &pinyin_table[178],  }, /* ying ou => yin gou */
+    { &pinyin_table[656],  &pinyin_table[0],    &pinyin_table[653],  &pinyin_table[359],  }, /* yon a => yo na */
+    { &pinyin_table[656],  &pinyin_table[2],    &pinyin_table[653],  &pinyin_table[361],  }, /* yon ai => yo nai */
+    { &pinyin_table[656],  &pinyin_table[4],    &pinyin_table[653],  &pinyin_table[363],  }, /* yon an => yo nan */
+    { &pinyin_table[656],  &pinyin_table[5],    &pinyin_table[653],  &pinyin_table[364],  }, /* yon ang => yo nang */
+    { &pinyin_table[656],  &pinyin_table[6],    &pinyin_table[653],  &pinyin_table[365],  }, /* yon ao => yo nao */
+    { &pinyin_table[656],  &pinyin_table[128],  &pinyin_table[653],  &pinyin_table[366],  }, /* yon e => yo ne */
+    { &pinyin_table[656],  &pinyin_table[129],  &pinyin_table[653],  &pinyin_table[368],  }, /* yon ei => yo nei */
+    { &pinyin_table[656],  &pinyin_table[130],  &pinyin_table[653],  &pinyin_table[370],  }, /* yon en => yo nen */
+    { &pinyin_table[656],  &pinyin_table[402],  &pinyin_table[653],  &pinyin_table[391],  }, /* yon ou => yo nou */
+    { &pinyin_table[661],  &pinyin_table[0],    &pinyin_table[660],  &pinyin_table[161],  }, /* yuang a => yuan ga */
+    { &pinyin_table[661],  &pinyin_table[2],    &pinyin_table[660],  &pinyin_table[163],  }, /* yuang ai => yuan gai */
+    { &pinyin_table[661],  &pinyin_table[4],    &pinyin_table[660],  &pinyin_table[165],  }, /* yuang an => yuan gan */
+    { &pinyin_table[661],  &pinyin_table[5],    &pinyin_table[660],  &pinyin_table[166],  }, /* yuang ang => yuan gang */
+    { &pinyin_table[661],  &pinyin_table[6],    &pinyin_table[660],  &pinyin_table[167],  }, /* yuang ao => yuan gao */
+    { &pinyin_table[661],  &pinyin_table[128],  &pinyin_table[660],  &pinyin_table[168],  }, /* yuang e => yuan ge */
+    { &pinyin_table[661],  &pinyin_table[129],  &pinyin_table[660],  &pinyin_table[170],  }, /* yuang ei => yuan gei */
+    { &pinyin_table[661],  &pinyin_table[130],  &pinyin_table[660],  &pinyin_table[172],  }, /* yuang en => yuan gen */
+    { &pinyin_table[661],  &pinyin_table[402],  &pinyin_table[660],  &pinyin_table[178],  }, /* yuang ou => yuan gou */
+    { &pinyin_table[662],  &pinyin_table[459],  &pinyin_table[659],  &pinyin_table[131],  }, /* yue r => yu er */
+    { &pinyin_table[663],  &pinyin_table[0],    &pinyin_table[662],  &pinyin_table[359],  }, /* yuen a => yue na */
+    { &pinyin_table[663],  &pinyin_table[2],    &pinyin_table[662],  &pinyin_table[361],  }, /* yuen ai => yue nai */
+    { &pinyin_table[663],  &pinyin_table[4],    &pinyin_table[662],  &pinyin_table[363],  }, /* yuen an => yue nan */
+    { &pinyin_table[663],  &pinyin_table[5],    &pinyin_table[662],  &pinyin_table[364],  }, /* yuen ang => yue nang */
+    { &pinyin_table[663],  &pinyin_table[6],    &pinyin_table[662],  &pinyin_table[365],  }, /* yuen ao => yue nao */
+    { &pinyin_table[663],  &pinyin_table[128],  &pinyin_table[662],  &pinyin_table[366],  }, /* yuen e => yue ne */
+    { &pinyin_table[663],  &pinyin_table[129],  &pinyin_table[662],  &pinyin_table[368],  }, /* yuen ei => yue nei */
+    { &pinyin_table[663],  &pinyin_table[130],  &pinyin_table[662],  &pinyin_table[370],  }, /* yuen en => yue nen */
+    { &pinyin_table[663],  &pinyin_table[402],  &pinyin_table[662],  &pinyin_table[391],  }, /* yuen ou => yue nou */
+    { &pinyin_table[664],  &pinyin_table[0],    &pinyin_table[659],  &pinyin_table[359],  }, /* yun a => yu na */
+    { &pinyin_table[664],  &pinyin_table[2],    &pinyin_table[659],  &pinyin_table[361],  }, /* yun ai => yu nai */
+    { &pinyin_table[664],  &pinyin_table[4],    &pinyin_table[659],  &pinyin_table[363],  }, /* yun an => yu nan */
+    { &pinyin_table[664],  &pinyin_table[5],    &pinyin_table[659],  &pinyin_table[364],  }, /* yun ang => yu nang */
+    { &pinyin_table[664],  &pinyin_table[6],    &pinyin_table[659],  &pinyin_table[365],  }, /* yun ao => yu nao */
+    { &pinyin_table[664],  &pinyin_table[128],  &pinyin_table[659],  &pinyin_table[366],  }, /* yun e => yu ne */
+    { &pinyin_table[664],  &pinyin_table[129],  &pinyin_table[659],  &pinyin_table[368],  }, /* yun ei => yu nei */
+    { &pinyin_table[676],  &pinyin_table[0],    &pinyin_table[672],  &pinyin_table[359],  }, /* zan a => za na */
+    { &pinyin_table[676],  &pinyin_table[4],    &pinyin_table[672],  &pinyin_table[363],  }, /* zan an => za nan */
+    { &pinyin_table[676],  &pinyin_table[5],    &pinyin_table[672],  &pinyin_table[364],  }, /* zan ang => za nang */
+    { &pinyin_table[676],  &pinyin_table[6],    &pinyin_table[672],  &pinyin_table[365],  }, /* zan ao => za nao */
+    { &pinyin_table[676],  &pinyin_table[128],  &pinyin_table[672],  &pinyin_table[366],  }, /* zan e => za ne */
+    { &pinyin_table[676],  &pinyin_table[129],  &pinyin_table[672],  &pinyin_table[368],  }, /* zan ei => za nei */
+    { &pinyin_table[677],  &pinyin_table[4],    &pinyin_table[676],  &pinyin_table[165],  }, /* zang an => zan gan */
+    { &pinyin_table[677],  &pinyin_table[5],    &pinyin_table[676],  &pinyin_table[166],  }, /* zang ang => zan gang */
+    { &pinyin_table[677],  &pinyin_table[6],    &pinyin_table[676],  &pinyin_table[167],  }, /* zang ao => zan gao */
+    { &pinyin_table[677],  &pinyin_table[128],  &pinyin_table[676],  &pinyin_table[168],  }, /* zang e => zan ge */
+    { &pinyin_table[677],  &pinyin_table[129],  &pinyin_table[676],  &pinyin_table[170],  }, /* zang ei => zan gei */
+    { &pinyin_table[677],  &pinyin_table[130],  &pinyin_table[676],  &pinyin_table[172],  }, /* zang en => zan gen */
+    { &pinyin_table[677],  &pinyin_table[402],  &pinyin_table[676],  &pinyin_table[178],  }, /* zang ou => zan gou */
+    { &pinyin_table[683],  &pinyin_table[0],    &pinyin_table[679],  &pinyin_table[359],  }, /* zen a => ze na */
+    { &pinyin_table[683],  &pinyin_table[4],    &pinyin_table[679],  &pinyin_table[363],  }, /* zen an => ze nan */
+    { &pinyin_table[683],  &pinyin_table[6],    &pinyin_table[679],  &pinyin_table[365],  }, /* zen ao => ze nao */
+    { &pinyin_table[683],  &pinyin_table[128],  &pinyin_table[679],  &pinyin_table[366],  }, /* zen e => ze ne */
+    { &pinyin_table[683],  &pinyin_table[129],  &pinyin_table[679],  &pinyin_table[368],  }, /* zen ei => ze nei */
+    { &pinyin_table[684],  &pinyin_table[2],    &pinyin_table[683],  &pinyin_table[163],  }, /* zeng ai => zen gai */
+    { &pinyin_table[684],  &pinyin_table[4],    &pinyin_table[683],  &pinyin_table[165],  }, /* zeng an => zen gan */
+    { &pinyin_table[684],  &pinyin_table[5],    &pinyin_table[683],  &pinyin_table[166],  }, /* zeng ang => zen gang */
+    { &pinyin_table[684],  &pinyin_table[6],    &pinyin_table[683],  &pinyin_table[167],  }, /* zeng ao => zen gao */
+    { &pinyin_table[684],  &pinyin_table[129],  &pinyin_table[683],  &pinyin_table[170],  }, /* zeng ei => zen gei */
+    { &pinyin_table[684],  &pinyin_table[130],  &pinyin_table[683],  &pinyin_table[172],  }, /* zeng en => zen gen */
+    { &pinyin_table[684],  &pinyin_table[402],  &pinyin_table[683],  &pinyin_table[178],  }, /* zeng ou => zen gou */
+    { &pinyin_table[690],  &pinyin_table[129],  &pinyin_table[686],  &pinyin_table[368],  }, /* zhan ei => zha nei */
+    { &pinyin_table[691],  &pinyin_table[4],    &pinyin_table[690],  &pinyin_table[165],  }, /* zhang an => zhan gan */
+    { &pinyin_table[691],  &pinyin_table[5],    &pinyin_table[690],  &pinyin_table[166],  }, /* zhang ang => zhan gang */
+    { &pinyin_table[691],  &pinyin_table[6],    &pinyin_table[690],  &pinyin_table[167],  }, /* zhang ao => zhan gao */
+    { &pinyin_table[691],  &pinyin_table[128],  &pinyin_table[690],  &pinyin_table[168],  }, /* zhang e => zhan ge */
+    { &pinyin_table[691],  &pinyin_table[129],  &pinyin_table[690],  &pinyin_table[170],  }, /* zhang ei => zhan gei */
+    { &pinyin_table[691],  &pinyin_table[130],  &pinyin_table[690],  &pinyin_table[172],  }, /* zhang en => zhan gen */
+    { &pinyin_table[691],  &pinyin_table[402],  &pinyin_table[690],  &pinyin_table[178],  }, /* zhang ou => zhan gou */
+    { &pinyin_table[697],  &pinyin_table[0],    &pinyin_table[693],  &pinyin_table[359],  }, /* zhen a => zhe na */
+    { &pinyin_table[697],  &pinyin_table[4],    &pinyin_table[693],  &pinyin_table[363],  }, /* zhen an => zhe nan */
+    { &pinyin_table[697],  &pinyin_table[5],    &pinyin_table[693],  &pinyin_table[364],  }, /* zhen ang => zhe nang */
+    { &pinyin_table[697],  &pinyin_table[6],    &pinyin_table[693],  &pinyin_table[365],  }, /* zhen ao => zhe nao */
+    { &pinyin_table[697],  &pinyin_table[128],  &pinyin_table[693],  &pinyin_table[366],  }, /* zhen e => zhe ne */
+    { &pinyin_table[697],  &pinyin_table[129],  &pinyin_table[693],  &pinyin_table[368],  }, /* zhen ei => zhe nei */
+    { &pinyin_table[698],  &pinyin_table[2],    &pinyin_table[697],  &pinyin_table[163],  }, /* zheng ai => zhen gai */
+    { &pinyin_table[698],  &pinyin_table[4],    &pinyin_table[697],  &pinyin_table[165],  }, /* zheng an => zhen gan */
+    { &pinyin_table[698],  &pinyin_table[5],    &pinyin_table[697],  &pinyin_table[166],  }, /* zheng ang => zhen gang */
+    { &pinyin_table[698],  &pinyin_table[6],    &pinyin_table[697],  &pinyin_table[167],  }, /* zheng ao => zhen gao */
+    { &pinyin_table[698],  &pinyin_table[128],  &pinyin_table[697],  &pinyin_table[168],  }, /* zheng e => zhen ge */
+    { &pinyin_table[698],  &pinyin_table[129],  &pinyin_table[697],  &pinyin_table[170],  }, /* zheng ei => zhen gei */
+    { &pinyin_table[698],  &pinyin_table[130],  &pinyin_table[697],  &pinyin_table[172],  }, /* zheng en => zhen gen */
+    { &pinyin_table[698],  &pinyin_table[402],  &pinyin_table[697],  &pinyin_table[178],  }, /* zheng ou => zhen gou */
+    { &pinyin_table[710],  &pinyin_table[6],    &pinyin_table[706],  &pinyin_table[365],  }, /* zhuan ao => zhua nao */
+    { &pinyin_table[710],  &pinyin_table[128],  &pinyin_table[706],  &pinyin_table[366],  }, /* zhuan e => zhua ne */
+    { &pinyin_table[710],  &pinyin_table[129],  &pinyin_table[706],  &pinyin_table[368],  }, /* zhuan ei => zhua nei */
+    { &pinyin_table[711],  &pinyin_table[2],    &pinyin_table[710],  &pinyin_table[163],  }, /* zhuang ai => zhuan gai */
+    { &pinyin_table[711],  &pinyin_table[4],    &pinyin_table[710],  &pinyin_table[165],  }, /* zhuang an => zhuan gan */
+    { &pinyin_table[711],  &pinyin_table[5],    &pinyin_table[710],  &pinyin_table[166],  }, /* zhuang ang => zhuan gang */
+    { &pinyin_table[711],  &pinyin_table[6],    &pinyin_table[710],  &pinyin_table[167],  }, /* zhuang ao => zhuan gao */
+    { &pinyin_table[711],  &pinyin_table[128],  &pinyin_table[710],  &pinyin_table[168],  }, /* zhuang e => zhuan ge */
+    { &pinyin_table[711],  &pinyin_table[129],  &pinyin_table[710],  &pinyin_table[170],  }, /* zhuang ei => zhuan gei */
+    { &pinyin_table[711],  &pinyin_table[130],  &pinyin_table[710],  &pinyin_table[172],  }, /* zhuang en => zhuan gen */
+    { &pinyin_table[711],  &pinyin_table[402],  &pinyin_table[710],  &pinyin_table[178],  }, /* zhuang ou => zhuan gou */
+    { &pinyin_table[715],  &pinyin_table[0],    &pinyin_table[705],  &pinyin_table[359],  }, /* zhun a => zhu na */
+    { &pinyin_table[715],  &pinyin_table[4],    &pinyin_table[705],  &pinyin_table[363],  }, /* zhun an => zhu nan */
+    { &pinyin_table[715],  &pinyin_table[5],    &pinyin_table[705],  &pinyin_table[364],  }, /* zhun ang => zhu nang */
+    { &pinyin_table[715],  &pinyin_table[6],    &pinyin_table[705],  &pinyin_table[365],  }, /* zhun ao => zhu nao */
+    { &pinyin_table[715],  &pinyin_table[128],  &pinyin_table[705],  &pinyin_table[366],  }, /* zhun e => zhu ne */
+    { &pinyin_table[715],  &pinyin_table[129],  &pinyin_table[705],  &pinyin_table[368],  }, /* zhun ei => zhu nei */
+    { &pinyin_table[727],  &pinyin_table[0],    &pinyin_table[726],  &pinyin_table[161],  }, /* zuang a => zuan ga */
+    { &pinyin_table[727],  &pinyin_table[2],    &pinyin_table[726],  &pinyin_table[163],  }, /* zuang ai => zuan gai */
+    { &pinyin_table[727],  &pinyin_table[4],    &pinyin_table[726],  &pinyin_table[165],  }, /* zuang an => zuan gan */
+    { &pinyin_table[727],  &pinyin_table[5],    &pinyin_table[726],  &pinyin_table[166],  }, /* zuang ang => zuan gang */
+    { &pinyin_table[727],  &pinyin_table[6],    &pinyin_table[726],  &pinyin_table[167],  }, /* zuang ao => zuan gao */
+    { &pinyin_table[727],  &pinyin_table[128],  &pinyin_table[726],  &pinyin_table[168],  }, /* zuang e => zuan ge */
+    { &pinyin_table[727],  &pinyin_table[129],  &pinyin_table[726],  &pinyin_table[170],  }, /* zuang ei => zuan gei */
+    { &pinyin_table[727],  &pinyin_table[130],  &pinyin_table[726],  &pinyin_table[172],  }, /* zuang en => zuan gen */
+    { &pinyin_table[727],  &pinyin_table[402],  &pinyin_table[726],  &pinyin_table[178],  }, /* zuang ou => zuan gou */
+    { &pinyin_table[731],  &pinyin_table[0],    &pinyin_table[723],  &pinyin_table[359],  }, /* zun a => zu na */
+    { &pinyin_table[731],  &pinyin_table[4],    &pinyin_table[723],  &pinyin_table[363],  }, /* zun an => zu nan */
+    { &pinyin_table[731],  &pinyin_table[5],    &pinyin_table[723],  &pinyin_table[364],  }, /* zun ang => zu nang */
+    { &pinyin_table[731],  &pinyin_table[6],    &pinyin_table[723],  &pinyin_table[365],  }, /* zun ao => zu nao */
+    { &pinyin_table[731],  &pinyin_table[128],  &pinyin_table[723],  &pinyin_table[366],  }, /* zun e => zu ne */
+    { &pinyin_table[731],  &pinyin_table[129],  &pinyin_table[723],  &pinyin_table[368],  }, /* zun ei => zu nei */
 };
 
index c8919ad..65d2b11 100644 (file)
@@ -95,34 +95,35 @@ namespace PY {
 #define PINYIN_CORRECT_UEN_TO_UN    (1U << 5)
 #define PINYIN_CORRECT_UE_TO_VE     (1U << 6)
 #define PINYIN_CORRECT_V_TO_U       (1U << 7)
-#define PINYIN_CORRECT_ALL          (0x000000fe)
+#define PINYIN_CORRECT_ON_TO_ONG    (1U << 8)
+#define PINYIN_CORRECT_ALL          (0x000001fe)
 
-#define PINYIN_FUZZY_C_CH           (1U << 8)
-#define PINYIN_FUZZY_CH_C           (1U << 9)
-#define PINYIN_FUZZY_Z_ZH           (1U << 10)
-#define PINYIN_FUZZY_ZH_Z           (1U << 11)
-#define PINYIN_FUZZY_S_SH           (1U << 12)
-#define PINYIN_FUZZY_SH_S           (1U << 13)
-#define PINYIN_FUZZY_L_N            (1U << 14)
-#define PINYIN_FUZZY_N_L            (1U << 15)
-#define PINYIN_FUZZY_F_H            (1U << 16)
-#define PINYIN_FUZZY_H_F            (1U << 17)
-#define PINYIN_FUZZY_L_R            (1U << 18)
-#define PINYIN_FUZZY_R_L            (1U << 19)
-#define PINYIN_FUZZY_K_G            (1U << 20)
-#define PINYIN_FUZZY_G_K            (1U << 21)
+#define PINYIN_FUZZY_C_CH           (1U << 9)
+#define PINYIN_FUZZY_CH_C           (1U << 10)
+#define PINYIN_FUZZY_Z_ZH           (1U << 11)
+#define PINYIN_FUZZY_ZH_Z           (1U << 12)
+#define PINYIN_FUZZY_S_SH           (1U << 13)
+#define PINYIN_FUZZY_SH_S           (1U << 14)
+#define PINYIN_FUZZY_L_N            (1U << 15)
+#define PINYIN_FUZZY_N_L            (1U << 16)
+#define PINYIN_FUZZY_F_H            (1U << 17)
+#define PINYIN_FUZZY_H_F            (1U << 18)
+#define PINYIN_FUZZY_L_R            (1U << 19)
+#define PINYIN_FUZZY_R_L            (1U << 20)
+#define PINYIN_FUZZY_K_G            (1U << 21)
+#define PINYIN_FUZZY_G_K            (1U << 22)
 
-#define PINYIN_FUZZY_AN_ANG         (1U << 22)
-#define PINYIN_FUZZY_ANG_AN         (1U << 23)
-#define PINYIN_FUZZY_EN_ENG         (1U << 24)
-#define PINYIN_FUZZY_ENG_EN         (1U << 25)
-#define PINYIN_FUZZY_IN_ING         (1U << 26)
-#define PINYIN_FUZZY_ING_IN         (1U << 27)
-#define PINYIN_FUZZY_IAN_IANG       (1U << 28)
-#define PINYIN_FUZZY_IANG_IAN       (1U << 29)
-#define PINYIN_FUZZY_UAN_UANG       (1U << 30)
-#define PINYIN_FUZZY_UANG_UAN       (1U << 31)
-#define PINYIN_FUZZY_ALL            (0xffffff00)
+#define PINYIN_FUZZY_AN_ANG         (1U << 23)
+#define PINYIN_FUZZY_ANG_AN         (1U << 24)
+#define PINYIN_FUZZY_EN_ENG         (1U << 25)
+#define PINYIN_FUZZY_ENG_EN         (1U << 26)
+#define PINYIN_FUZZY_IN_ING         (1U << 27)
+#define PINYIN_FUZZY_ING_IN         (1U << 28)
+#define PINYIN_FUZZY_IAN_IANG       PINYIN_FUZZY_AN_ANG
+#define PINYIN_FUZZY_IANG_IAN       PINYIN_FUZZY_ANG_AN
+#define PINYIN_FUZZY_UAN_UANG       PINYIN_FUZZY_AN_ANG
+#define PINYIN_FUZZY_UANG_UAN       PINYIN_FUZZY_ANG_AN
+#define PINYIN_FUZZY_ALL            (0x1ffffe00)
 
 struct Pinyin {
     const gchar *text;