2017-07-21 18:21:34 +02:00

491 lines
23 KiB
C++

namespace zh {
constexpr static const std::uint16_t sha[] = {
0x55C4, 0x5239, 0x524E, 0x5551, 0x6FC8, 0x7B91, 0x83E8, 0x7D17, 0x553C,
0x644B, 0x6740, 0x6BBA, 0x6B70, 0x7FDC, 0x93A9, 0x503D, 0x50BB, 0x510D,
0x53A6, 0x5526, 0x5565, 0x55A2, 0x564E, 0x5962, 0x5E39, 0x5EC8, 0x6332,
0x6749, 0x686C, 0x699D, 0x6A27, 0x6B43, 0x6C99, 0x715E, 0x7300, 0x75E7,
0x7802, 0x7870, 0x7C86, 0x7E7A, 0x7EB1, 0x7FE3, 0x838E, 0x8410, 0x8531,
0x88DF, 0x94E9, 0x95AF, 0x95B7, 0x970E, 0x9AFF, 0x9B66, 0x9BCA, 0x9BCB,
0x9CA8, 0x6331,
};
constexpr static const std::uint16_t sha1[] = {
0x5239, 0x524E, 0x7D17, 0x644B, 0x6740, 0x6BBA, 0x93A9, 0x5526, 0x564E,
0x6332, 0x6749, 0x686C, 0x699D, 0x6A27, 0x6C99, 0x7300, 0x75E7, 0x7802,
0x7870, 0x7C86, 0x7E7A, 0x7EB1, 0x838E, 0x8531, 0x88DF, 0x94E9, 0x95B7,
0x9AFF, 0x9B66, 0x9BCA, 0x9BCB, 0x9CA8,
};
constexpr static const std::uint16_t sha2[] = {
0x5565, 0x5962,
};
constexpr static const std::uint16_t sha3[] = {
0x50BB, 0x510D,
};
constexpr static const std::uint16_t sha4[] = {
0x55C4, 0x5551, 0x6FC8, 0x7B91, 0x83E8, 0x553C, 0x6B70, 0x7FDC, 0x503D,
0x53A6, 0x5565, 0x55A2, 0x5E39, 0x5EC8, 0x6B43, 0x6C99, 0x715E, 0x7FE3,
0x8410, 0x95AF, 0x970E,
};
constexpr static const std::uint16_t sha5[] = {
0x5526, 0x6331,
};
constexpr static const std::uint16_t shai[] = {
0x6526, 0x917E, 0x644B, 0x8272, 0x6652, 0x66EC, 0x7B5B, 0x7BE9, 0x7C01,
0x7C1B, 0x7C6D, 0x8AF0,
};
constexpr static const std::uint16_t shai1[] = {
0x917E, 0x7B5B, 0x7BE9, 0x7C01, 0x7C1B, 0x7C6D, 0x8AF0,
};
constexpr static const std::uint16_t shai3[] = {
0x644B, 0x8272,
};
constexpr static const std::uint16_t shai4[] = {
0x6526, 0x6652, 0x66EC,
};
constexpr static const std::uint16_t shai5[] = {
0x8272,
};
constexpr static const std::uint16_t shan[] = {
0x63BA, 0x647B, 0x7A47, 0x67F5, 0x6805, 0x5103, 0x5355, 0x55AE, 0x63B8,
0x64A3, 0x7985, 0x79AA, 0x8120, 0x82EB, 0x87FA, 0x6F6C, 0x81BB, 0x8D0D,
0x8D61, 0x75C1, 0x70B6, 0x9584, 0x7154, 0x5607, 0x6749, 0x6A86, 0x5093,
0x50D0, 0x5220, 0x522A, 0x5261, 0x527C, 0x5584, 0x5738, 0x57CF, 0x58A0,
0x58A1, 0x59CD, 0x59D7, 0x5B17, 0x5C71, 0x5E53, 0x5F61, 0x6247, 0x633B,
0x639E, 0x6427, 0x64C5, 0x657E, 0x6671, 0x692B, 0x6A3F, 0x6B5A, 0x6C55,
0x6F78, 0x6F98, 0x7057, 0x717D, 0x718C, 0x72E6, 0x73CA, 0x759D, 0x7752,
0x78F0, 0x7B18, 0x7E3F, 0x7E55, 0x7F2E, 0x7FB4, 0x7FB6, 0x81B3, 0x8222,
0x829F, 0x87EE, 0x886B, 0x89A2, 0x8A15, 0x8B06, 0x8B71, 0x8BAA, 0x8D78,
0x8DDA, 0x8ED5, 0x9096, 0x912F, 0x91E4, 0x928F, 0x9425, 0x9490,
};
constexpr static const std::uint16_t shan1[] = {
0x63BA, 0x7A47, 0x67F5, 0x6805, 0x8120, 0x82EB, 0x81BB, 0x75C1, 0x70B6,
0x7154, 0x5607, 0x6749, 0x6A86, 0x5093, 0x5220, 0x522A, 0x527C, 0x57CF,
0x59CD, 0x59D7, 0x5C71, 0x5E53, 0x5F61, 0x6247, 0x633B, 0x6427, 0x6F78,
0x6F98, 0x717D, 0x72E6, 0x73CA, 0x7B18, 0x7E3F, 0x7FB4, 0x7FB6, 0x8222,
0x829F, 0x886B, 0x8DDA, 0x8ED5, 0x9096, 0x91E4, 0x9490,
};
constexpr static const std::uint16_t shan3[] = {
0x63BA, 0x647B, 0x63B8, 0x70B6, 0x9584, 0x7154, 0x6671, 0x718C, 0x7752,
0x89A2,
};
constexpr static const std::uint16_t shan4[] = {
0x5103, 0x5355, 0x55AE, 0x63B8, 0x64A3, 0x7985, 0x79AA, 0x82EB, 0x87FA,
0x6F6C, 0x8D0D, 0x8D61, 0x5093, 0x50D0, 0x5261, 0x5584, 0x58A0, 0x58A1,
0x59CD, 0x59D7, 0x5B17, 0x6247, 0x639E, 0x64C5, 0x657E, 0x692B, 0x6A3F,
0x6B5A, 0x6C55, 0x7057, 0x717D, 0x718C, 0x72E6, 0x759D, 0x78F0, 0x7E55,
0x7F2E, 0x81B3, 0x87EE, 0x8A15, 0x8B06, 0x8B71, 0x8BAA, 0x8D78, 0x912F,
0x91E4, 0x928F, 0x9425, 0x9490,
};
constexpr static const std::uint16_t shan5[] = {
0x5738, 0x6247,
};
constexpr static const std::uint16_t shang[] = {
0x5C19, 0x5C1A, 0x88F3, 0x92FF, 0x93DB, 0x57EB, 0x6113, 0x57A7, 0x4E04,
0x4E0A, 0x4F24, 0x50B7, 0x5546, 0x5892, 0x6066, 0x616F, 0x6244, 0x664C,
0x6A09, 0x6B87, 0x6BA4, 0x6C64, 0x6E6F, 0x6EF3, 0x6F21, 0x71B5, 0x7993,
0x7DD4, 0x7EF1, 0x850F, 0x87AA, 0x89DE, 0x89F4, 0x8B2A, 0x8CDE, 0x8D18,
0x8D4F, 0x945C, 0x979D, 0x9B3A,
};
constexpr static const std::uint16_t shang1[] = {
0x6113, 0x4F24, 0x50B7, 0x5546, 0x5892, 0x616F, 0x6B87, 0x6BA4, 0x6C64,
0x6E6F, 0x6EF3, 0x6F21, 0x71B5, 0x7993, 0x850F, 0x87AA, 0x89DE, 0x89F4,
0x8B2A, 0x9B3A,
};
constexpr static const std::uint16_t shang2[] = {
0x88F3,
};
constexpr static const std::uint16_t shang3[] = {
0x92FF, 0x93DB, 0x57EB, 0x57A7, 0x4E04, 0x4E0A, 0x6244, 0x664C, 0x6A09,
0x8CDE, 0x8D18, 0x8D4F, 0x945C,
};
constexpr static const std::uint16_t shang4[] = {
0x5C19, 0x5C1A, 0x4E04, 0x4E0A, 0x6066, 0x7DD4, 0x7EF1, 0x945C, 0x979D,
};
constexpr static const std::uint16_t shang5[] = {
0x5C1A, 0x88F3, 0x4E0A,
};
constexpr static const std::uint16_t shao[] = {
0x6753, 0x7D39, 0x828D, 0x7744, 0x9798, 0x4F4B, 0x52AD, 0x52FA, 0x5372,
0x53EC, 0x54E8, 0x5A0B, 0x5C11, 0x5F30, 0x634E, 0x65D3, 0x67D6, 0x68A2,
0x6F72, 0x70E7, 0x713C, 0x71D2, 0x73BF, 0x7A0D, 0x7B72, 0x7DA4, 0x7ECD,
0x8244, 0x82D5, 0x83A6, 0x8437, 0x8571, 0x86F8, 0x8891, 0x8F0E, 0x90B5,
0x97F6, 0x9AFE, 0x9BB9,
};
constexpr static const std::uint16_t shao1[] = {
0x9798, 0x5F30, 0x634E, 0x65D3, 0x68A2, 0x70E7, 0x713C, 0x71D2, 0x7B72,
0x8244, 0x83A6, 0x8437, 0x86F8, 0x8F0E, 0x9AFE, 0x9BB9,
};
constexpr static const std::uint16_t shao2[] = {
0x6753, 0x828D, 0x52FA, 0x67D6, 0x73BF, 0x82D5, 0x97F6,
};
constexpr static const std::uint16_t shao3[] = {
0x5C11,
};
constexpr static const std::uint16_t shao4[] = {
0x7D39, 0x7744, 0x4F4B, 0x52AD, 0x5372, 0x53EC, 0x54E8, 0x5A0B, 0x5C11,
0x634E, 0x67D6, 0x68A2, 0x6F72, 0x71D2, 0x7A0D, 0x7DA4, 0x7ECD, 0x8244,
0x8891, 0x90B5,
};
constexpr static const std::uint16_t shao5[] = {
0x54E8, 0x8571,
};
constexpr static const std::uint16_t she[] = {
0x8D66, 0x5953, 0x86C7, 0x6CCF, 0x6315, 0x63F2, 0x6D89, 0x6E09, 0x95CD,
0x9607, 0x6DBB, 0x820C, 0x78FC, 0x62FE, 0x7044, 0x6442, 0x6444, 0x651D,
0x5962, 0x8CD2, 0x8D4A, 0x4F58, 0x538D, 0x5399, 0x53F6, 0x5C04, 0x5F3D,
0x6151, 0x6174, 0x61FE, 0x6298, 0x6368, 0x6AA8, 0x6B07, 0x6B59, 0x6EE0,
0x731E, 0x756C, 0x756D, 0x7572, 0x793E, 0x820D, 0x820E, 0x850E, 0x8675,
0x86E5, 0x8802, 0x8A2D, 0x8BBE, 0x8CD6, 0x8F0B, 0x97D8, 0x9A07, 0x9E9D,
};
constexpr static const std::uint16_t she1[] = {
0x5953, 0x5962, 0x8CD2, 0x8D4A, 0x6AA8, 0x731E, 0x756C, 0x756D, 0x7572,
0x8CD6, 0x8F0B,
};
constexpr static const std::uint16_t she2[] = {
0x86C7, 0x63F2, 0x95CD, 0x9607, 0x820C, 0x78FC, 0x4F58, 0x6298, 0x8675,
0x86E5,
};
constexpr static const std::uint16_t she3[] = {
0x6368, 0x820D, 0x9A07,
};
constexpr static const std::uint16_t she4[] = {
0x8D66, 0x6CCF, 0x6315, 0x6D89, 0x6E09, 0x6DBB, 0x62FE, 0x7044, 0x6442,
0x6444, 0x651D, 0x538D, 0x5399, 0x53F6, 0x5C04, 0x5F3D, 0x6151, 0x6174,
0x61FE, 0x6B07, 0x6B59, 0x6EE0, 0x731E, 0x793E, 0x820D, 0x820E, 0x850E,
0x8802, 0x8A2D, 0x8BBE, 0x97D8, 0x9A07, 0x9E9D,
};
constexpr static const std::uint16_t shei[] = {
0x8AB0, 0x8C01,
};
constexpr static const std::uint16_t shei2[] = {
0x8AB0, 0x8C01,
};
constexpr static const std::uint16_t shen[] = {
0x53C2, 0x53C3, 0x53C4, 0x53C5, 0x84E1, 0x9C3A, 0x6C88, 0x700B, 0x7973,
0x80C2, 0x8C0C, 0x628C, 0x9EEE, 0x8EAB, 0x6DF0, 0x6EF2, 0x7F67, 0x519E,
0x7F59, 0x9BD3, 0x68EF, 0x8AD7, 0x5AC0, 0x66CB, 0x6E17, 0x845A, 0x7CC1,
0x7CC2, 0x7CDD, 0x7CE3, 0x8518, 0x66D1, 0x7527, 0x7A7C, 0x5E53, 0x8460,
0x7C61, 0x4EC0, 0x4F38, 0x4F81, 0x4FBA, 0x4FE1, 0x515F, 0x5432, 0x547B,
0x54C2, 0x5814, 0x59BD, 0x59FA, 0x5A20, 0x5A76, 0x5B38, 0x5BA1, 0x5BE9,
0x5C7E, 0x5CF7, 0x5F1E, 0x613C, 0x614E, 0x625F, 0x6437, 0x6552, 0x661A,
0x67DB, 0x6939, 0x698A, 0x6C20, 0x6D81, 0x6DF1, 0x6E16, 0x71CA, 0x73C5,
0x751A, 0x7521, 0x7533, 0x7606, 0x762E, 0x7712, 0x7718, 0x77AB, 0x77E4,
0x77E7, 0x7837, 0x795E, 0x7C76, 0x7C78, 0x7D33, 0x7EC5, 0x80BE, 0x8124,
0x814E, 0x8398, 0x8593, 0x8703, 0x8704, 0x88D1,
};
constexpr static const std::uint16_t shen1[] = {
0x53C2, 0x53C3, 0x53C4, 0x53C5, 0x84E1, 0x9C3A, 0x80C2, 0x8EAB, 0x7F67,
0x519E, 0x7F59, 0x9BD3, 0x68EF, 0x5AC0, 0x7CC1, 0x7CC2, 0x7CDD, 0x7CE3,
0x8518, 0x66D1, 0x7527, 0x7A7C, 0x5E53, 0x8460, 0x4F38, 0x4F81, 0x4FE1,
0x515F, 0x547B, 0x54C2, 0x59BD, 0x59FA, 0x5A20, 0x5C7E, 0x5CF7, 0x625F,
0x6437, 0x6552, 0x67DB, 0x6C20, 0x6DF1, 0x71CA, 0x73C5, 0x7521, 0x7533,
0x7712, 0x7837, 0x795E, 0x7C76, 0x7C78, 0x7D33, 0x7EC5, 0x8398, 0x8593,
0x88D1,
};
constexpr static const std::uint16_t shen2[] = {
0x4EC0, 0x751A, 0x795E,
};
constexpr static const std::uint16_t shen3[] = {
0x6C88, 0x700B, 0x628C, 0x6DF0, 0x68EF, 0x8AD7, 0x66CB, 0x5432, 0x54C2,
0x5A76, 0x5B38, 0x5BA1, 0x5BE9, 0x5F1E, 0x6E16, 0x77AB, 0x77E4, 0x77E7,
};
constexpr static const std::uint16_t shen4[] = {
0x7973, 0x80C2, 0x8C0C, 0x9EEE, 0x6EF2, 0x7F67, 0x6E17, 0x845A, 0x4FBA,
0x613C, 0x614E, 0x661A, 0x6939, 0x6D81, 0x751A, 0x7606, 0x762E, 0x7712,
0x7718, 0x80BE, 0x8124, 0x814E, 0x8703, 0x8704,
};
constexpr static const std::uint16_t shen5[] = {
0x7C61, 0x5814, 0x698A,
};
constexpr static const std::uint16_t sheng[] = {
0x4E57, 0x4E58, 0x5A0D, 0x665F, 0x6909, 0x76DB, 0x7538, 0x67A1, 0x7E49,
0x5723, 0x6E11, 0x6FA0, 0x7E69, 0x7EF3, 0x6BB8, 0x5057, 0x5269, 0x5270,
0x52DD, 0x5347, 0x544F, 0x58AD, 0x58F0, 0x5D4A, 0x61B4, 0x6598, 0x6607,
0x6660, 0x66FB, 0x69BA, 0x6A73, 0x6B85, 0x6CE9, 0x6E3B, 0x6E66, 0x713A,
0x7272, 0x72CC, 0x73C4, 0x741E, 0x751F, 0x7525, 0x7701, 0x771A, 0x7AD4,
0x7B19, 0x7E04, 0x8056, 0x8072, 0x80DC, 0x82FC, 0x8542, 0x8B5D, 0x8CB9,
0x8CF8, 0x924E, 0x935F, 0x9629, 0x965E, 0x9679, 0x9D7F, 0x9F2A, 0x5347,
};
constexpr static const std::uint16_t sheng1[] = {
0x67A1, 0x6BB8, 0x52DD, 0x5347, 0x544F, 0x58F0, 0x6598, 0x6607, 0x6B85,
0x6CE9, 0x6E66, 0x713A, 0x7272, 0x72CC, 0x73C4, 0x751F, 0x7525, 0x8072,
0x80DC, 0x82FC, 0x924E, 0x935F, 0x9629, 0x965E, 0x9679, 0x9D7F, 0x9F2A,
0x5347,
};
constexpr static const std::uint16_t sheng2[] = {
0x7E49, 0x6E11, 0x6FA0, 0x7E69, 0x7EF3, 0x61B4, 0x6660, 0x7E04, 0x8B5D,
};
constexpr static const std::uint16_t sheng3[] = {
0x5057, 0x6E3B, 0x7701, 0x771A, 0x7B19,
};
constexpr static const std::uint16_t sheng4[] = {
0x4E57, 0x4E58, 0x5A0D, 0x665F, 0x6909, 0x76DB, 0x7538, 0x5723, 0x7E69,
0x5269, 0x5270, 0x52DD, 0x58AD, 0x5D4A, 0x6660, 0x69BA, 0x6E3B, 0x741E,
0x8056, 0x80DC, 0x8CB9, 0x8CF8,
};
constexpr static const std::uint16_t sheng5[] = {
0x58F0, 0x66FB, 0x6A73, 0x751F, 0x7525, 0x7AD4, 0x8542,
};
constexpr static const std::uint16_t shi[] = {
0x5BB2, 0x6805, 0x5319, 0x545E, 0x59FC, 0x5FA5, 0x6040, 0x683B, 0x89E2,
0x98FE, 0x77F3, 0x6974, 0x7721, 0x9069, 0x6CFD, 0x6FA4, 0x75D1, 0x9002,
0x54B6, 0x62FE, 0x6C0F, 0x8755, 0x917E, 0x91C3, 0x4E44, 0x5FEF, 0x6E7F,
0x6EBC, 0x6FD5, 0x793A, 0x8006, 0x91F6, 0x9247, 0x9366, 0x4EC0, 0x4E16,
0x4E17, 0x4E68, 0x4E8A, 0x4E8B, 0x4ED5, 0x4F3C, 0x4F66, 0x4F7F, 0x4F8D,
0x5158, 0x519F, 0x52BF, 0x52E2, 0x5341, 0x534B, 0x53F2, 0x5469, 0x55DC,
0x5618, 0x566C, 0x57D8, 0x57F6, 0x5852, 0x58EB, 0x5931, 0x596D, 0x59CB,
0x5B15, 0x5B9E, 0x5B9F, 0x5BA4, 0x5BA9, 0x5BD4, 0x5BE6, 0x5C38, 0x5C4D,
0x5C4E, 0x5CD5, 0x5CD9, 0x5D3C, 0x5D75, 0x5E02, 0x5E08, 0x5E2B, 0x5F0F,
0x5F11, 0x5F12, 0x5FD5, 0x6043, 0x623A, 0x62ED, 0x63D3, 0x65BD, 0x65F6,
0x65F9, 0x662F, 0x6630, 0x6642, 0x67BE, 0x67F9, 0x67FF, 0x69AF, 0x6AA1,
0x6B96,
};
constexpr static const std::uint16_t shi1[] = {
0x545E, 0x917E, 0x91C3, 0x4E44, 0x6E7F, 0x6EBC, 0x6FD5, 0x91F6, 0x9247,
0x9366, 0x5618, 0x5931, 0x5C38, 0x5C4D, 0x5E08, 0x5E2B, 0x65BD,
};
constexpr static const std::uint16_t shi2[] = {
0x5BB2, 0x59FC, 0x77F3, 0x62FE, 0x8755, 0x793A, 0x4EC0, 0x5341, 0x57D8,
0x5852, 0x5B9E, 0x5B9F, 0x5BD4, 0x5BE6, 0x5CD5, 0x65F6, 0x65F9, 0x6642,
0x69AF,
};
constexpr static const std::uint16_t shi3[] = {
0x75D1, 0x4E68, 0x4F7F, 0x5158, 0x53F2, 0x59CB, 0x5BA9, 0x5C4E,
};
constexpr static const std::uint16_t shi4[] = {
0x5FA5, 0x6040, 0x683B, 0x89E2, 0x98FE, 0x6974, 0x7721, 0x9069, 0x6CFD,
0x6FA4, 0x9002, 0x54B6, 0x6C0F, 0x5FEF, 0x793A, 0x8006, 0x4E16, 0x4E17,
0x4E8A, 0x4E8B, 0x4ED5, 0x4F3C, 0x4F8D, 0x519F, 0x52BF, 0x52E2, 0x534B,
0x5469, 0x55DC, 0x566C, 0x57D8, 0x57F6, 0x58EB, 0x596D, 0x5B15, 0x5BA4,
0x5CD9, 0x5D3C, 0x5E02, 0x5F0F, 0x5F11, 0x5F12, 0x5FD5, 0x6043, 0x623A,
0x62ED, 0x63D3, 0x662F, 0x6630, 0x67BE, 0x67F9, 0x67FF, 0x6AA1, 0x6B96,
};
constexpr static const std::uint16_t shi5[] = {
0x6805, 0x5319, 0x793A, 0x4EC0, 0x4E8B, 0x4F66, 0x4F7F, 0x4F8D, 0x52BF,
0x58EB, 0x5931, 0x5B9E, 0x5D75, 0x5E02, 0x5E08, 0x5F0F, 0x662F, 0x6B96,
};
constexpr static const std::uint16_t shou[] = {
0x654A, 0x563C, 0x517D, 0x53CE, 0x53D7, 0x552E, 0x57A8, 0x58FD, 0x5900,
0x5B88, 0x5BFF, 0x624B, 0x624C, 0x6388, 0x6536, 0x6DAD, 0x719F, 0x72E9,
0x7363, 0x7378, 0x75E9, 0x7626, 0x7DAC, 0x7EF6, 0x8184, 0x824F, 0x93C9,
0x9996,
};
constexpr static const std::uint16_t shou1[] = {
0x654A, 0x53CE, 0x6536,
};
constexpr static const std::uint16_t shou2[] = {
0x719F,
};
constexpr static const std::uint16_t shou3[] = {
0x57A8, 0x5B88, 0x624B, 0x624C, 0x824F, 0x9996,
};
constexpr static const std::uint16_t shou4[] = {
0x563C, 0x517D, 0x53D7, 0x552E, 0x58FD, 0x5900, 0x5B88, 0x5BFF, 0x6388,
0x6DAD, 0x72E9, 0x7363, 0x7378, 0x75E9, 0x7626, 0x7DAC, 0x7EF6, 0x8184,
0x93C9,
};
constexpr static const std::uint16_t shou5[] = {
0x624B, 0x9996,
};
constexpr static const std::uint16_t shu[] = {
0x837C, 0x6DD1, 0x7421, 0x6570, 0x6578, 0x9BF3, 0x668F, 0x8961, 0x83FD,
0x758B, 0x719F, 0x74B9, 0x4E66, 0x4FB8, 0x4FDE, 0x500F, 0x5010, 0x5135,
0x516A, 0x53D4, 0x54B0, 0x587E, 0x5885, 0x59DD, 0x5A4C, 0x5B70, 0x5C0C,
0x5C17, 0x5C5E, 0x5C6C, 0x5EB6, 0x5EBB, 0x6037, 0x6055, 0x620D, 0x6292,
0x6352, 0x6393, 0x6445, 0x6504, 0x6691, 0x66D9, 0x66F8, 0x672E, 0x672F,
0x6731, 0x675F, 0x6778, 0x67A2, 0x6811, 0x68B3, 0x6A1E, 0x6A39, 0x6A7E,
0x6B8A, 0x6BB3, 0x6BF9, 0x6BFA, 0x6CAD, 0x6F31, 0x6F44, 0x6F7B, 0x6F8D,
0x6FD6, 0x702D, 0x7102, 0x758E, 0x758F, 0x7659, 0x79EB, 0x7AD6, 0x7AEA,
0x7C54, 0x7CEC, 0x7D13, 0x7D49, 0x7D80, 0x7EBE, 0x7F72, 0x8167, 0x8212,
0x8357, 0x8481, 0x852C, 0x85A5, 0x85AF, 0x85F7, 0x866A, 0x8700, 0x8834,
0x8853, 0x88CB, 0x8969, 0x8C4E,
};
constexpr static const std::uint16_t shu1[] = {
0x837C, 0x6DD1, 0x7421, 0x9BF3, 0x83FD, 0x758B, 0x4E66, 0x500F, 0x5010,
0x5135, 0x53D4, 0x59DD, 0x5A4C, 0x6292, 0x6393, 0x6445, 0x6504, 0x66F8,
0x6778, 0x67A2, 0x68B3, 0x6A1E, 0x6A7E, 0x6B8A, 0x6BB3, 0x6BF9, 0x6BFA,
0x7102, 0x758E, 0x758F, 0x7D13, 0x7D80, 0x7EBE, 0x8212, 0x852C, 0x866A,
};
constexpr static const std::uint16_t shu2[] = {
0x6DD1, 0x8961, 0x83FD, 0x719F, 0x74B9, 0x587E, 0x5B70, 0x5C17, 0x6393,
0x672E, 0x672F, 0x6731, 0x7102, 0x79EB, 0x866A,
};
constexpr static const std::uint16_t shu3[] = {
0x6570, 0x6578, 0x668F, 0x8961, 0x5A4C, 0x5C5E, 0x5C6C, 0x6691, 0x66D9,
0x6F7B, 0x7659, 0x7C54, 0x7F72, 0x852C, 0x85A5, 0x85AF, 0x85F7, 0x8700,
0x8969,
};
constexpr static const std::uint16_t shu4[] = {
0x6570, 0x6578, 0x4FB8, 0x4FDE, 0x516A, 0x54B0, 0x5885, 0x5C0C, 0x5EB6,
0x5EBB, 0x6037, 0x6055, 0x620D, 0x6352, 0x66D9, 0x672E, 0x672F, 0x675F,
0x6811, 0x6A39, 0x6CAD, 0x6F31, 0x6F44, 0x6F8D, 0x6FD6, 0x758E, 0x758F,
0x79EB, 0x7AD6, 0x7AEA, 0x7D49, 0x8167, 0x8357, 0x8481, 0x866A, 0x8853,
0x88CB, 0x8C4E,
};
constexpr static const std::uint16_t shu5[] = {
0x702D, 0x7CEC, 0x8834,
};
constexpr static const std::uint16_t shua[] = {
0x5237, 0x5530, 0x800D, 0x8A9C,
};
constexpr static const std::uint16_t shua1[] = {
0x5237, 0x5530,
};
constexpr static const std::uint16_t shua3[] = {
0x800D,
};
constexpr static const std::uint16_t shua4[] = {
0x5237,
};
constexpr static const std::uint16_t shuai[] = {
0x7E17, 0x7F1E, 0x8870, 0x7387, 0x535B, 0x5E05, 0x5E25, 0x6454, 0x7529,
0x87C0,
};
constexpr static const std::uint16_t shuai1[] = {
0x7E17, 0x7F1E, 0x8870, 0x6454,
};
constexpr static const std::uint16_t shuai3[] = {
0x7529,
};
constexpr static const std::uint16_t shuai4[] = {
0x7387, 0x535B, 0x5E05, 0x5E25, 0x87C0,
};
constexpr static const std::uint16_t shuan[] = {
0x8168, 0x7D5F, 0x6DAE, 0x62F4, 0x6813, 0x9582, 0x95E9, 0x69EB,
};
constexpr static const std::uint16_t shuan1[] = {
0x7D5F, 0x62F4, 0x6813, 0x9582, 0x95E9,
};
constexpr static const std::uint16_t shuan4[] = {
0x8168, 0x6DAE, 0x69EB,
};
constexpr static const std::uint16_t shuang[] = {
0x6F3A, 0x6CF7, 0x7027, 0x53CC, 0x587D, 0x5B40, 0x5B47, 0x6161, 0x6B06,
0x7040, 0x723D, 0x7935, 0x7E14, 0x826D, 0x93EF, 0x96D9, 0x971C, 0x9A3B,
0x9A66, 0x9AA6, 0x9DDE, 0x9E18, 0x9E74,
};
constexpr static const std::uint16_t shuang1[] = {
0x6CF7, 0x7027, 0x53CC, 0x5B40, 0x5B47, 0x6B06, 0x723D, 0x7935, 0x826D,
0x96D9, 0x971C, 0x9A3B, 0x9A66, 0x9AA6, 0x9DDE, 0x9E18,
};
constexpr static const std::uint16_t shuang3[] = {
0x6F3A, 0x587D, 0x6161, 0x723D, 0x7E14, 0x9A3B,
};
constexpr static const std::uint16_t shuang4[] = {
0x587D, 0x7040, 0x723D,
};
constexpr static const std::uint16_t shuang5[] = {
0x93EF,
};
constexpr static const std::uint16_t shui[] = {
0x8AB0, 0x8C01, 0x5A37, 0x5E28, 0x6329, 0x6C34, 0x6C35, 0x6C3A, 0x6D97,
0x6D9A, 0x7761, 0x7971, 0x7A05, 0x7A0E, 0x813D, 0x88DE, 0x8AAA, 0x8AAC,
0x8BF4, 0x635D,
};
constexpr static const std::uint16_t shui2[] = {
0x8AB0, 0x8C01, 0x813D,
};
constexpr static const std::uint16_t shui3[] = {
0x6C34, 0x6C35, 0x6C3A,
};
constexpr static const std::uint16_t shui4[] = {
0x5A37, 0x5E28, 0x6329, 0x6D97, 0x6D9A, 0x7761, 0x7971, 0x7A05, 0x7A0E,
0x88DE, 0x8AAA, 0x8AAC, 0x8BF4, 0x635D,
};
constexpr static const std::uint16_t shui5[] = {
0x6C34,
};
constexpr static const std::uint16_t shun[] = {
0x696F, 0x77A4, 0x542E, 0x6A53, 0x7734, 0x779A, 0x77AC, 0x821C, 0x8563,
0x9806, 0x987A, 0x9B0A,
};
constexpr static const std::uint16_t shun1[] = {
0x696F,
};
constexpr static const std::uint16_t shun3[] = {
0x696F, 0x542E,
};
constexpr static const std::uint16_t shun4[] = {
0x77A4, 0x6A53, 0x7734, 0x779A, 0x77AC, 0x821C, 0x8563, 0x9806, 0x987A,
0x9B0A,
};
constexpr static const std::uint16_t shuo[] = {
0x6570, 0x6578, 0x9460, 0x70C1, 0x720D, 0x7BBE, 0x7361, 0x928F, 0x7855,
0x78A9, 0x8AAA, 0x8AAC, 0x8BF4, 0x5981, 0x612C, 0x6420, 0x6714, 0x69CA,
0x6B36, 0x6D2C, 0x77DF, 0x84B4, 0x9399, 0x94C4,
};
constexpr static const std::uint16_t shuo1[] = {
0x8AAA, 0x8AAC, 0x8BF4,
};
constexpr static const std::uint16_t shuo4[] = {
0x6570, 0x6578, 0x9460, 0x70C1, 0x720D, 0x7BBE, 0x7361, 0x928F, 0x7855,
0x78A9, 0x5981, 0x612C, 0x6420, 0x6714, 0x69CA, 0x6B36, 0x6D2C, 0x77DF,
0x84B4, 0x9399, 0x94C4,
};
constexpr static const CandidateGroup sh = {
{ section(sha), section(sha1), section(sha2), section(sha3), section(sha4), section(sha5), },
{ section(shai), section(shai1), { 0, 0 }, section(shai3), section(shai4), section(shai5), },
{ section(shan), section(shan1), { 0, 0 }, section(shan3), section(shan4), section(shan5), },
{ section(shang), section(shang1), section(shang2), section(shang3), section(shang4), section(shang5), },
{ section(shao), section(shao1), section(shao2), section(shao3), section(shao4), section(shao5), },
{ section(she), section(she1), section(she2), section(she3), section(she4), { 0, 0 }, },
{ section(shei), { 0, 0 }, section(shei2), { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ section(shen), section(shen1), section(shen2), section(shen3), section(shen4), section(shen5), },
{ section(sheng), section(sheng1), section(sheng2), section(sheng3), section(sheng4), section(sheng5), },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ section(shi), section(shi1), section(shi2), section(shi3), section(shi4), section(shi5), },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ section(shou), section(shou1), section(shou2), section(shou3), section(shou4), section(shou5), },
{ section(shu), section(shu1), section(shu2), section(shu3), section(shu4), section(shu5), },
{ section(shua), section(shua1), { 0, 0 }, section(shua3), section(shua4), { 0, 0 }, },
{ section(shuai), section(shuai1), { 0, 0 }, section(shuai3), section(shuai4), { 0, 0 }, },
{ section(shuan), section(shuan1), { 0, 0 }, { 0, 0 }, section(shuan4), { 0, 0 }, },
{ section(shuang), section(shuang1), { 0, 0 }, section(shuang3), section(shuang4), section(shuang5), },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ section(shui), { 0, 0 }, section(shui2), section(shui3), section(shui4), section(shui5), },
{ section(shun), section(shun1), { 0, 0 }, section(shun3), section(shun4), { 0, 0 }, },
{ section(shuo), section(shuo1), { 0, 0 }, { 0, 0 }, section(shuo4), { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, }
};
} // namespace zh