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

587 lines
30 KiB
C++

namespace zh {
constexpr static const std::uint16_t ha[] = {
0x5475, 0x9228, 0x93BA, 0x86E4, 0x927F, 0x4E64, 0x54C8, 0x567A, 0x5964,
0x6256, 0x697E, 0x6E8C, 0x7D26, 0x867E, 0x94EA, 0x9C1A, 0x9C30, 0x9C69,
};
constexpr static const std::uint16_t ha1[] = {
0x5475, 0x9228, 0x93BA, 0x86E4, 0x927F, 0x54C8, 0x6E8C, 0x7D26, 0x94EA,
0x9C69,
};
constexpr static const std::uint16_t ha2[] = {
0x86E4, 0x867E,
};
constexpr static const std::uint16_t ha3[] = {
0x54C8, 0x5964, 0x9C1A, 0x9C69,
};
constexpr static const std::uint16_t ha4[] = {
0x54C8,
};
constexpr static const std::uint16_t ha5[] = {
0x4E64, 0x567A, 0x6256, 0x697E,
};
constexpr static const std::uint16_t hai[] = {
0x62F8, 0x7D6F, 0x80F2, 0x90C2, 0x9AB8, 0x4EA5, 0x548D, 0x54B3, 0x55D0,
0x55E8, 0x5870, 0x598E, 0x5B69, 0x5BB3, 0x6C26, 0x6D77, 0x70F8, 0x8EB5,
0x8FD8, 0x9084, 0x917C, 0x91A2, 0x9900, 0x995A, 0x99ED, 0x99F4, 0x9A87,
0x7332, 0x56A1,
};
constexpr static const std::uint16_t hai1[] = {
0x548D, 0x54B3, 0x55E8, 0x5B69,
};
constexpr static const std::uint16_t hai2[] = {
0x90C2, 0x9AB8, 0x54B3, 0x8FD8, 0x9084, 0x56A1,
};
constexpr static const std::uint16_t hai3[] = {
0x80F2, 0x55E8, 0x6D77, 0x70F8, 0x8EB5, 0x917C, 0x91A2,
};
constexpr static const std::uint16_t hai4[] = {
0x62F8, 0x7D6F, 0x4EA5, 0x54B3, 0x55D0, 0x598E, 0x5BB3, 0x6C26, 0x9900,
0x995A, 0x99ED, 0x99F4, 0x9A87, 0x7332,
};
constexpr static const std::uint16_t hai5[] = {
0x5870, 0x5BB3,
};
constexpr static const std::uint16_t han[] = {
0x5382, 0x5388, 0x72B4, 0x9807, 0x7B12, 0x4EE0, 0x5FD3, 0x611F, 0x625E,
0x653C, 0x65F0, 0x6C57, 0x6C75, 0x8677, 0x872C, 0x91EC, 0x9CF1, 0x4F44,
0x50BC, 0x516F, 0x51FD, 0x51FE, 0x54FB, 0x5505, 0x558A, 0x5705, 0x57BE,
0x5A22, 0x5AE8, 0x5BD2, 0x5C7D, 0x5D21, 0x608D, 0x61A8, 0x61BE, 0x634D,
0x6496, 0x64BC, 0x65F1, 0x6657, 0x6658, 0x66B5, 0x6892, 0x6937, 0x6B5B,
0x6C49, 0x6D5B, 0x6D6B, 0x6D86, 0x6DB5, 0x6F22, 0x6F8F, 0x701A, 0x710A,
0x7113, 0x71AF, 0x7233, 0x7302, 0x7400, 0x751D, 0x7694, 0x7745, 0x7B68,
0x7F55, 0x7FF0, 0x80A3, 0x839F, 0x850A, 0x86B6, 0x86FF, 0x872D, 0x8792,
0x8B40, 0x8C3D, 0x8C43, 0x9097, 0x90AF, 0x9163, 0x92B2, 0x92CE, 0x92E1,
0x9588, 0x95DE, 0x95EC, 0x96D7, 0x97D3, 0x97E9, 0x9837, 0x9844, 0x9878,
0x9894, 0x99A0, 0x99AF,
};
constexpr static const std::uint16_t han1[] = {
0x72B4, 0x9807, 0x4F44, 0x54FB, 0x5505, 0x5AE8, 0x61A8, 0x6B5B, 0x751D,
0x86B6, 0x8C3D, 0x9163, 0x9878, 0x99A0,
};
constexpr static const std::uint16_t han2[] = {
0x7B12, 0x6C57, 0x6C75, 0x8677, 0x872C, 0x4F44, 0x51FD, 0x51FE, 0x5505,
0x5705, 0x5A22, 0x5BD2, 0x5D21, 0x6657, 0x6892, 0x6937, 0x6D5B, 0x6DB5,
0x6F8F, 0x7113, 0x7400, 0x751D, 0x7B68, 0x80A3, 0x9097, 0x90AF, 0x92E1,
0x97D3, 0x97E9, 0x99AF,
};
constexpr static const std::uint16_t han3[] = {
0x5388, 0x558A, 0x6D6B, 0x7F55, 0x850A, 0x8C43, 0x95DE,
};
constexpr static const std::uint16_t han4[] = {
0x5382, 0x5388, 0x4EE0, 0x5FD3, 0x611F, 0x625E, 0x653C, 0x65F0, 0x6C57,
0x91EC, 0x9CF1, 0x50BC, 0x54FB, 0x5505, 0x57BE, 0x5C7D, 0x608D, 0x61BE,
0x634D, 0x6496, 0x64BC, 0x65F1, 0x6658, 0x66B5, 0x6C49, 0x6D5B, 0x6D86,
0x6DB5, 0x6F8F, 0x701A, 0x710A, 0x71AF, 0x7302, 0x7400, 0x7694, 0x7745,
0x7F55, 0x7FF0, 0x80A3, 0x839F, 0x850A, 0x86FF, 0x872D, 0x8792, 0x8B40,
0x90AF, 0x9163, 0x92B2, 0x92CE, 0x9588, 0x95EC, 0x96D7, 0x9837, 0x9844,
0x9894, 0x99AF,
};
constexpr static const std::uint16_t han5[] = {
0x516F, 0x64BC, 0x6DB5, 0x6F22, 0x7233, 0x7F55,
};
constexpr static const std::uint16_t hang[] = {
0x80AE, 0x592F, 0x7B10, 0x980F, 0x542D, 0x57B3, 0x5DF7, 0x65BB, 0x676D,
0x6841, 0x6C86, 0x7095, 0x73E9, 0x7B55, 0x7D4E, 0x7ED7, 0x822A, 0x82C0,
0x86A2, 0x884C, 0x88C4, 0x8CA5, 0x8FD2, 0x9B67, 0x5FFC, 0x909F, 0x5994,
};
constexpr static const std::uint16_t hang1[] = {
0x592F, 0x9883, 0x7095,
};
constexpr static const std::uint16_t hang2[] = {
0x80AE, 0x7B10, 0x980F, 0x542D, 0x65BB, 0x676D, 0x6841, 0x6C86, 0x73E9,
0x7B55, 0x7D4E, 0x7ED7, 0x822A, 0x82C0, 0x86A2, 0x884C, 0x88C4, 0x8CA5,
0x8FD2, 0x9B67, 0x909F, 0x5994,
};
constexpr static const std::uint16_t hang4[] = {
0x7B10, 0x980F, 0x5DF7, 0x6841, 0x6C86, 0x884C, 0x5FFC,
};
constexpr static const std::uint16_t hang5[] = {
0x57B3,
};
constexpr static const std::uint16_t hao[] = {
0x4FB4, 0x869D, 0x66A0, 0x6D69, 0x6EDC, 0x768B, 0x769C, 0x84BF, 0x93AC,
0x9550, 0x4E5A, 0x5090, 0x512B, 0x53F7, 0x547A, 0x54E0, 0x55E5, 0x5637,
0x5651, 0x5686, 0x568E, 0x58D5, 0x597D, 0x604F, 0x608E, 0x660A, 0x6626,
0x6667, 0x66A4, 0x66AD, 0x66CD, 0x6903, 0x6BEB, 0x6DCF, 0x6EC8, 0x6F94,
0x6FE0, 0x704F, 0x705D, 0x7346, 0x734B, 0x7354, 0x7693, 0x769E, 0x76A1,
0x76A5, 0x79CF, 0x7AD3, 0x7C47, 0x8017, 0x8055, 0x8320, 0x8583, 0x8585,
0x85A7, 0x85C3, 0x865F, 0x8814, 0x8AD5, 0x8B79, 0x8C6A, 0x8C89, 0x90DD,
0x9117, 0x9865, 0x98A2, 0x9C1D,
};
constexpr static const std::uint16_t hao1[] = {
0x84BF, 0x5686, 0x8320, 0x8585, 0x85A7,
};
constexpr static const std::uint16_t hao2[] = {
0x869D, 0x6EDC, 0x768B, 0x4E5A, 0x512B, 0x53F7, 0x547A, 0x55E5, 0x5637,
0x5651, 0x568E, 0x58D5, 0x6903, 0x6BEB, 0x6FE0, 0x7346, 0x734B, 0x7354,
0x7C47, 0x865F, 0x8814, 0x8AD5, 0x8B79, 0x8C6A, 0x8C89,
};
constexpr static const std::uint16_t hao3[] = {
0x597D, 0x604F, 0x8583, 0x90DD,
};
constexpr static const std::uint16_t hao4[] = {
0x4FB4, 0x66A0, 0x6D69, 0x6EDC, 0x769C, 0x93AC, 0x9550, 0x5090, 0x53F7,
0x54E0, 0x597D, 0x604F, 0x608E, 0x660A, 0x6626, 0x6667, 0x66A4, 0x66AD,
0x66CD, 0x6DCF, 0x6EC8, 0x6F94, 0x704F, 0x705D, 0x7693, 0x769E, 0x76A1,
0x76A5, 0x79CF, 0x8017, 0x8055, 0x8583, 0x85C3, 0x865F, 0x9117, 0x9865,
0x98A2, 0x9C1D,
};
constexpr static const std::uint16_t hao5[] = {
0x7AD3,
};
constexpr static const std::uint16_t he[] = {
0x5475, 0x95A1, 0x9932, 0x76D2, 0x6838, 0x76D6, 0x84CB, 0x9602, 0x5408,
0x6E2E, 0x7D07, 0x7EA5, 0x83CF, 0x90C3, 0x95A4, 0x95D4, 0x9616, 0x981C,
0x988C, 0x9EA7, 0x9DAE, 0x9E44, 0x5459, 0x5BB3, 0x6DB8, 0x8C88, 0x8C89,
0x4F55, 0x52BE, 0x5413, 0x548A, 0x548C, 0x54EC, 0x555D, 0x559B, 0x559D,
0x55C3, 0x55EC, 0x5687, 0x578E, 0x58D1, 0x59C0, 0x5BC9, 0x5CC6, 0x60D2,
0x62B2, 0x6546, 0x66F7, 0x67C7, 0x6941, 0x6B31, 0x6BFC, 0x6CB3, 0x6F95,
0x7103, 0x7142, 0x7186, 0x7187, 0x71FA, 0x7200, 0x72E2, 0x7332, 0x764B,
0x76AC, 0x76C7, 0x76C9, 0x76CD, 0x788B, 0x7909, 0x79BE, 0x7BD5, 0x7C7A,
0x7CAD, 0x7FEE, 0x7FEF, 0x82DB, 0x8377, 0x8402, 0x879B, 0x881A, 0x8894,
0x8910, 0x8988, 0x8A36, 0x8A38, 0x8A65, 0x8B1E, 0x8BC3, 0x8CC0, 0x8D3A,
};
constexpr static const std::uint16_t he1[] = {
0x4F55, 0x559D, 0x55EC, 0x5CC6, 0x62B2, 0x6B31, 0x82DB, 0x8377, 0x881A,
0x8A36, 0x8BC3,
};
constexpr static const std::uint16_t he2[] = {
0x95A1, 0x9932, 0x76D2, 0x6838, 0x76D6, 0x84CB, 0x9602, 0x5408, 0x6E2E,
0x7D07, 0x7EA5, 0x83CF, 0x90C3, 0x95A4, 0x95D4, 0x9616, 0x981C, 0x988C,
0x9EA7, 0x5459, 0x5BB3, 0x6DB8, 0x8C88, 0x8C89, 0x4F55, 0x52BE, 0x548A,
0x548C, 0x54EC, 0x555D, 0x559B, 0x59C0, 0x5CC6, 0x60D2, 0x6546, 0x66F7,
0x67C7, 0x6941, 0x6BFC, 0x6CB3, 0x6F95, 0x7103, 0x7186, 0x72E2, 0x76AC,
0x76C7, 0x76C9, 0x76CD, 0x7909, 0x79BE, 0x7BD5, 0x7C7A, 0x7FEE, 0x7FEF,
0x82DB, 0x8377, 0x8402, 0x879B, 0x8910, 0x8988, 0x8A38, 0x8A65,
};
constexpr static const std::uint16_t he4[] = {
0x9DAE, 0x9E44, 0x4F55, 0x5413, 0x548A, 0x548C, 0x54EC, 0x559D, 0x55C3,
0x5687, 0x578E, 0x58D1, 0x5BC9, 0x60D2, 0x62B2, 0x7142, 0x7187, 0x71FA,
0x7200, 0x7332, 0x764B, 0x76AC, 0x788B, 0x7FEF, 0x8377, 0x881A, 0x8894,
0x8910, 0x8B1E, 0x8CC0, 0x8D3A,
};
constexpr static const std::uint16_t he5[] = {
0x5475, 0x5408, 0x548C, 0x559D, 0x7CAD, 0x8377,
};
constexpr static const std::uint16_t hei[] = {
0x55E8, 0x9ED1, 0x563F, 0x6F76, 0x9ED2,
};
constexpr static const std::uint16_t hei1[] = {
0x55E8, 0x9ED1, 0x563F, 0x6F76, 0x9ED2,
};
constexpr static const std::uint16_t hen[] = {
0x54CF, 0x75D5, 0x72E0, 0x4F77, 0x5677, 0x5F88, 0x6068, 0x62EB, 0x8A6A,
0x978E,
};
constexpr static const std::uint16_t hen1[] = {
0x5677,
};
constexpr static const std::uint16_t hen2[] = {
0x75D5, 0x62EB, 0x978E,
};
constexpr static const std::uint16_t hen3[] = {
0x54CF, 0x72E0, 0x4F77, 0x5677, 0x5F88, 0x8A6A,
};
constexpr static const std::uint16_t hen4[] = {
0x5677, 0x6068,
};
constexpr static const std::uint16_t heng[] = {
0x6A2A, 0x6841, 0x73E9, 0x884C, 0x9D34, 0x9E3B, 0x4EA8, 0x54FC, 0x5548,
0x59EE, 0x6046, 0x6052, 0x6099, 0x6497, 0x6A6B, 0x6DA5, 0x70C6, 0x80FB,
0x811D, 0x8605, 0x8861, 0x9445,
};
constexpr static const std::uint16_t heng1[] = {
0x4EA8, 0x54FC, 0x6099, 0x6DA5, 0x811D,
};
constexpr static const std::uint16_t heng2[] = {
0x6A2A, 0x6841, 0x73E9, 0x884C, 0x9D34, 0x9E3B, 0x59EE, 0x6046, 0x6052,
0x6497, 0x6A6B, 0x70C6, 0x80FB, 0x8605, 0x8861, 0x9445,
};
constexpr static const std::uint16_t heng4[] = {
0x6A2A, 0x5548, 0x6099, 0x6A6B,
};
constexpr static const std::uint16_t heng5[] = {
0x54FC,
};
constexpr static const std::uint16_t hong[] = {
0x6D72, 0x6E84, 0x53B7, 0x551D, 0x55CA, 0x6129, 0x6150, 0x6F92, 0x739C,
0x7D05, 0x7EA2, 0x7FBE, 0x8679, 0x92BE, 0x9B5F, 0x6494, 0x8A07, 0x9EC9,
0x9ECC, 0x4EDC, 0x53FF, 0x5430, 0x543D, 0x544D, 0x54C4, 0x569D, 0x57AC,
0x5985, 0x5A02, 0x5B8F, 0x5B96, 0x5C78, 0x5F18, 0x5F4B, 0x63C8, 0x664E,
0x6C6F, 0x6C97, 0x6CD3, 0x6D2A, 0x6D64, 0x6E31, 0x6E39, 0x6F42, 0x7074,
0x70D8, 0x7122, 0x7392, 0x74E8, 0x7854, 0x7861, 0x7AD1, 0x7AE4, 0x7BCA,
0x7CA0, 0x7D18, 0x7D2D, 0x7D8B, 0x7EAE, 0x7FC3, 0x7FDD, 0x803E, 0x82F0,
0x836D, 0x8452, 0x8453, 0x857B, 0x85A8, 0x8A0C, 0x8BA7, 0x8C39, 0x8C3C,
0x8C3E, 0x8EE3, 0x8F37, 0x8F5F, 0x8F70, 0x921C, 0x9277, 0x92D0, 0x9367,
0x958E, 0x95A7, 0x95C0, 0x95C2, 0x95F3, 0x9710, 0x971F, 0x9783, 0x9B28,
0x9D3B, 0x9E3F, 0x5DC6,
};
constexpr static const std::uint16_t hong1[] = {
0x7EA2, 0x8A07, 0x53FF, 0x543D, 0x544D, 0x54C4, 0x569D, 0x63C8, 0x6E39,
0x7074, 0x70D8, 0x7122, 0x7861, 0x85A8, 0x8C3E, 0x8EE3, 0x8F37, 0x8F5F,
0x8F70, 0x9367, 0x9B28, 0x5DC6,
};
constexpr static const std::uint16_t hong2[] = {
0x6D72, 0x6E84, 0x53B7, 0x739C, 0x7D05, 0x7EA2, 0x7FBE, 0x8679, 0x9B5F,
0x9EC9, 0x9ECC, 0x4EDC, 0x53FF, 0x5430, 0x57AC, 0x5985, 0x5A02, 0x5B8F,
0x5B96, 0x5C78, 0x5F18, 0x5F4B, 0x6C97, 0x6CD3, 0x6D2A, 0x6D64, 0x6E31,
0x6F42, 0x7074, 0x7392, 0x74E8, 0x7854, 0x7AD1, 0x7AE4, 0x7BCA, 0x7CA0,
0x7D18, 0x7D2D, 0x7D8B, 0x7EAE, 0x7FC3, 0x7FDD, 0x803E, 0x82F0, 0x836D,
0x8452, 0x8453, 0x857B, 0x8A0C, 0x8BA7, 0x8C39, 0x8C3C, 0x921C, 0x9277,
0x92D0, 0x958E, 0x95F3, 0x9710, 0x971F, 0x9783, 0x9D3B, 0x9E3F,
};
constexpr static const std::uint16_t hong3[] = {
0x551D, 0x55CA, 0x6129, 0x6150, 0x6F92, 0x54C4, 0x664E, 0x95A7, 0x9B28,
};
constexpr static const std::uint16_t hong4[] = {
0x6F92, 0x8679, 0x92BE, 0x6494, 0x54C4, 0x857B, 0x8A0C, 0x8BA7, 0x95A7,
0x95C0, 0x95C2, 0x9B28, 0x9D3B,
};
constexpr static const std::uint16_t hong5[] = {
0x54C4,
};
constexpr static const std::uint16_t hou[] = {
0x8329, 0x9005, 0x9ABA, 0x540E, 0x543D, 0x4FAF, 0x5019, 0x539A, 0x540E,
0x543C, 0x5474, 0x5589, 0x5795, 0x5820, 0x5E3F, 0x5F8C, 0x6D09, 0x72BC,
0x7334, 0x760A, 0x777A, 0x77E6, 0x7BCC, 0x7CC7, 0x7FED, 0x7FF5, 0x8454,
0x8C5E, 0x90C8, 0x9107, 0x9297, 0x936D, 0x9931, 0x9B9C, 0x9BF8, 0x9C5F,
0x9C8E, 0x9C98, 0x9F41,
};
constexpr static const std::uint16_t hou1[] = {
0x5474, 0x9F41,
};
constexpr static const std::uint16_t hou2[] = {
0x9ABA, 0x540E, 0x4FAF, 0x5589, 0x5E3F, 0x7334, 0x760A, 0x777A, 0x77E6,
0x7BCC, 0x7CC7, 0x7FED, 0x7FF5, 0x8454, 0x9107, 0x9297, 0x936D, 0x9931,
0x9BF8, 0x9F41,
};
constexpr static const std::uint16_t hou3[] = {
0x543D, 0x543C, 0x5474, 0x72BC,
};
constexpr static const std::uint16_t hou4[] = {
0x8329, 0x9005, 0x4FAF, 0x5019, 0x539A, 0x540E, 0x5795, 0x5820, 0x5F8C,
0x6D09, 0x77E6, 0x8C5E, 0x90C8, 0x9107, 0x9297, 0x9B9C, 0x9C5F, 0x9C8E,
0x9C98,
};
constexpr static const std::uint16_t hou5[] = {
0x5019,
};
constexpr static const std::uint16_t hu[] = {
0x6DF2, 0x8C70, 0x60DA, 0x6838, 0x6018, 0x6287, 0x6430, 0x74E0, 0x7E0E,
0x96C7, 0x9D60, 0x9DAE, 0x9DBB, 0x9E44, 0x9E58, 0x6C7B, 0x548C, 0x55C3,
0x96BA, 0x9359, 0x4E4E, 0x4E55, 0x4E92, 0x4FFF, 0x51B1, 0x5322, 0x532B,
0x547C, 0x552C, 0x553F, 0x5596, 0x55C0, 0x5611, 0x561D, 0x569B, 0x56EB,
0x5780, 0x58F6, 0x58F7, 0x58FA, 0x5A5F, 0x5AA9, 0x5AED, 0x5AEE, 0x5BE3,
0x5CB5, 0x5E0D, 0x5E60, 0x5F16, 0x5F27, 0x5FFD, 0x6019, 0x6057, 0x620F,
0x622F, 0x6231, 0x6236, 0x6237, 0x6238, 0x623D, 0x6248, 0x62A4, 0x6462,
0x659B, 0x6608, 0x6612, 0x66F6, 0x6791, 0x695B, 0x695C, 0x69F2, 0x69F4,
0x6B51, 0x6C8D, 0x6CAA, 0x6CD8, 0x6D52, 0x6DF4, 0x6E56, 0x6EEC, 0x6EF8,
0x6EF9, 0x6FE9, 0x702B, 0x70C0, 0x7100, 0x7173, 0x71A9, 0x72D0, 0x7322,
0x7425, 0x745A, 0x74F3, 0x795C, 0x7B0F, 0x7BB6, 0x7C04, 0x7C90, 0x7CCA,
};
constexpr static const std::uint16_t hu1[] = {
0x60DA, 0x4E4E, 0x5322, 0x532B, 0x547C, 0x553F, 0x5611, 0x5780, 0x5BE3,
0x5E60, 0x5FFD, 0x6057, 0x620F, 0x622F, 0x6231, 0x6612, 0x66F6, 0x6B51,
0x6CD8, 0x6DF4, 0x6EF9, 0x70C0, 0x7CCA,
};
constexpr static const std::uint16_t hu2[] = {
0x6838, 0x6287, 0x6430, 0x74E0, 0x7E0E, 0x9D60, 0x9DAE, 0x9DBB, 0x9E44,
0x9E58, 0x548C, 0x96BA, 0x5596, 0x561D, 0x56EB, 0x58F6, 0x58F7, 0x58FA,
0x5AA9, 0x5F27, 0x659B, 0x695C, 0x69F2, 0x6E56, 0x702B, 0x7100, 0x7173,
0x72D0, 0x7322, 0x745A, 0x74F3, 0x7CCA, 0x7BB6,
};
constexpr static const std::uint16_t hu3[] = {
0x6DF2, 0x6C7B, 0x4E4E, 0x4E55, 0x4FFF, 0x552C, 0x6D52, 0x6EF8, 0x6EF9,
0x7425,
};
constexpr static const std::uint16_t hu4[] = {
0x8C70, 0x6018, 0x74E0, 0x96C7, 0x55C3, 0x9359, 0x4E92, 0x51B1, 0x55C0,
0x5611, 0x569B, 0x5A5F, 0x5AED, 0x5AEE, 0x5CB5, 0x5E0D, 0x5F16, 0x6019,
0x6236, 0x6237, 0x6238, 0x623D, 0x6248, 0x62A4, 0x6462, 0x6608, 0x66F6,
0x6791, 0x695B, 0x69F4, 0x6C8D, 0x6CAA, 0x6EEC, 0x6FE9, 0x71A9, 0x795C,
0x7B0F, 0x7C04, 0x7CCA,
};
constexpr static const std::uint16_t hu5[] = {
0x4E4E, 0x547C, 0x552C, 0x5FFD, 0x7C90, 0x7CCA,
};
constexpr static const std::uint16_t hua[] = {
0x542A, 0x6ED1, 0x9C91, 0x5212, 0x5283, 0x5316, 0x534E, 0x545A, 0x54D7,
0x5629, 0x57D6, 0x593B, 0x59E1, 0x5A72, 0x5A73, 0x5AFF, 0x5B05, 0x5D0B,
0x6433, 0x6466, 0x64B6, 0x6779, 0x67A0, 0x6866, 0x691B, 0x69EC, 0x6A3A,
0x6F85, 0x733E, 0x753B, 0x756B, 0x7575, 0x7809, 0x7874, 0x78C6, 0x7CC0,
0x7E63, 0x8219, 0x82B1, 0x82B2, 0x83EF, 0x8550, 0x8624, 0x8796, 0x89DF,
0x8A71, 0x8AAE, 0x8AE3, 0x8B41, 0x8B6E, 0x8BDD, 0x91EA, 0x91EB, 0x92D8,
0x9335, 0x93F5, 0x94E7, 0x9A4A, 0x9A85, 0x9DE8, 0x9ECA, 0x8AD9, 0x5212,
};
constexpr static const std::uint16_t hua1[] = {
0x542A, 0x5316, 0x534E, 0x54D7, 0x5629, 0x7809, 0x82B1, 0x82B2, 0x83EF,
0x8624, 0x8B41, 0x9335, 0x9DE8,
};
constexpr static const std::uint16_t hua2[] = {
0x6ED1, 0x9C91, 0x5212, 0x5283, 0x534E, 0x545A, 0x54D7, 0x5629, 0x593B,
0x59E1, 0x5B05, 0x5D0B, 0x6433, 0x64B6, 0x733E, 0x78C6, 0x83EF, 0x8550,
0x8796, 0x8B41, 0x91EA, 0x91EB, 0x92D8, 0x93F5, 0x94E7, 0x9A4A, 0x9A85,
0x9DE8, 0x5212,
};
constexpr static const std::uint16_t hua3[] = {
0x5316,
};
constexpr static const std::uint16_t hua4[] = {
0x5212, 0x5283, 0x5316, 0x534E, 0x5A73, 0x5AFF, 0x5B05, 0x5D0B, 0x6466,
0x6779, 0x67A0, 0x6866, 0x69EC, 0x6A3A, 0x6F85, 0x753B, 0x756B, 0x7575,
0x7E63, 0x8219, 0x83EF, 0x89DF, 0x8A71, 0x8AE3, 0x8B6E, 0x8BDD, 0x9ECA,
0x8AD9, 0x5212,
};
constexpr static const std::uint16_t hua5[] = {
0x57D6, 0x5A72, 0x691B, 0x7874, 0x7CC0, 0x82B1, 0x8AAE, 0x8BDD,
};
constexpr static const std::uint16_t huai[] = {
0x54B6, 0x5212, 0x8E1D, 0x4F6A, 0x574F, 0x58CA, 0x58DE, 0x5F8A, 0x6000,
0x61D0, 0x61F7, 0x69D0, 0x6AF0, 0x6DEE, 0x7024, 0x8032, 0x8639, 0x863E,
0x8922, 0x8931,
};
constexpr static const std::uint16_t huai2[] = {
0x8E1D, 0x4F6A, 0x5F8A, 0x6000, 0x61D0, 0x61F7, 0x69D0, 0x6AF0, 0x6DEE,
0x7024, 0x8032, 0x8639, 0x8922, 0x8931,
};
constexpr static const std::uint16_t huai4[] = {
0x54B6, 0x574F, 0x58CA, 0x58DE, 0x8639, 0x863E,
};
constexpr static const std::uint16_t huai5[] = {
0x5212,
};
constexpr static const std::uint16_t huan[] = {
0x72BF, 0x7D59, 0x61FD, 0x64D0, 0x6D63, 0x6FA3, 0x96DA, 0x8FD8, 0x9084,
0x650C, 0x559B, 0x5CD8, 0x5524, 0x559A, 0x56BE, 0x571C, 0x57B8, 0x581A,
0x5942, 0x5950, 0x5B1B, 0x5B49, 0x5BA6, 0x5BCF, 0x5BF0, 0x5D48, 0x5E7B,
0x60A3, 0x610C, 0x61C1, 0x6362, 0x63DB, 0x6853, 0x6899, 0x69F5, 0x6B22,
0x6B53, 0x6B61, 0x6D39, 0x6DA3, 0x6E19, 0x6F36, 0x6FB4, 0x70C9, 0x7115,
0x7165, 0x72DF, 0x7342, 0x737E, 0x73AF, 0x744D, 0x74B0, 0x74DB, 0x75EA,
0x7613, 0x7729, 0x7746, 0x7CEB, 0x7D84, 0x7DE9, 0x7E6F, 0x7F13, 0x7F33,
0x7FA6, 0x8092, 0x8341, 0x8408, 0x8411, 0x85E7, 0x8B99, 0x8C62, 0x8C72,
0x8C86, 0x8C9B, 0x8F58, 0x902D, 0x90C7, 0x9144, 0x9370, 0x9436, 0x953E,
0x956E, 0x95E4, 0x961B, 0x96C8, 0x9A69, 0x9B1F, 0x9BC7, 0x9BF6,
};
constexpr static const std::uint16_t huan1[] = {
0x72BF, 0x61FD, 0x5CD8, 0x56BE, 0x5B49, 0x6B22, 0x6B53, 0x6B61, 0x72DF,
0x737E, 0x8B99, 0x8C86, 0x8C9B, 0x9144, 0x9A69,
};
constexpr static const std::uint16_t huan2[] = {
0x7D59, 0x96DA, 0x8FD8, 0x9084, 0x571C, 0x57B8, 0x581A, 0x5B1B, 0x5BCF,
0x5BF0, 0x61C1, 0x6853, 0x6D39, 0x6FB4, 0x72DF, 0x7342, 0x73AF, 0x74B0,
0x74DB, 0x7CEB, 0x7D84, 0x7E6F, 0x7F33, 0x7FA6, 0x8092, 0x8341, 0x8408,
0x8411, 0x8C72, 0x8C86, 0x8F58, 0x90C7, 0x9370, 0x9436, 0x953E, 0x956E,
0x95E4, 0x961B, 0x96C8, 0x9B1F,
};
constexpr static const std::uint16_t huan3[] = {
0x6FA3, 0x650C, 0x5D48, 0x7746, 0x7D84, 0x7DE9, 0x7F13, 0x85E7,
};
constexpr static const std::uint16_t huan4[] = {
0x64D0, 0x6D63, 0x6FA3, 0x650C, 0x559B, 0x5524, 0x559A, 0x56BE, 0x5942,
0x5950, 0x5BA6, 0x5D48, 0x5E7B, 0x60A3, 0x610C, 0x6362, 0x63DB, 0x6899,
0x69F5, 0x6DA3, 0x6E19, 0x6F36, 0x70C9, 0x7115, 0x7165, 0x744D, 0x74B0,
0x75EA, 0x7613, 0x7729, 0x7746, 0x7D84, 0x7E6F, 0x7F33, 0x8092, 0x85E7,
0x8C62, 0x8F58, 0x902D, 0x9BC7, 0x9BF6,
};
constexpr static const std::uint16_t huan5[] = {
0x5524, 0x6362, 0x6B22, 0x9B1F,
};
constexpr static const std::uint16_t huang[] = {
0x6ACE, 0x6F62, 0x6C7B, 0x63D8, 0x697B, 0x8AFB, 0x9404, 0x97F9, 0x505F,
0x5164, 0x51F0, 0x55A4, 0x582D, 0x5843, 0x58B4, 0x595B, 0x5A93, 0x5BBA,
0x5D32, 0x5DDF, 0x5E4C, 0x5FA8, 0x6033, 0x604D, 0x60F6, 0x6130, 0x614C,
0x6643, 0x6644, 0x66C2, 0x671A, 0x69A5, 0x6E5F, 0x6EC9, 0x70BE, 0x714C,
0x7180, 0x71BF, 0x720C, 0x735A, 0x745D, 0x749C, 0x7640, 0x7687, 0x769D,
0x76A9, 0x78FA, 0x7A54, 0x7BC1, 0x7C27, 0x7E28, 0x8093, 0x824E, 0x8352,
0x845F, 0x8757, 0x87E5, 0x8841, 0x8A64, 0x8B0A, 0x8C0E, 0x8DAA, 0x9051,
0x9360, 0x93A4, 0x953D, 0x968D, 0x992D, 0x9A1C, 0x9C09, 0x9C51, 0x9CC7,
0x9DEC, 0x9EC3, 0x9EC4,
};
constexpr static const std::uint16_t huang1[] = {
0x5843, 0x5BBA, 0x5DDF, 0x614C, 0x671A, 0x8093, 0x8352, 0x8841,
};
constexpr static const std::uint16_t huang2[] = {
0x6F62, 0x63D8, 0x697B, 0x8AFB, 0x9404, 0x97F9, 0x505F, 0x5164, 0x51F0,
0x55A4, 0x582D, 0x58B4, 0x5A93, 0x5D32, 0x5FA8, 0x60F6, 0x66C2, 0x6E5F,
0x714C, 0x71BF, 0x735A, 0x745D, 0x749C, 0x7640, 0x7687, 0x78FA, 0x7A54,
0x7BC1, 0x7C27, 0x824E, 0x845F, 0x8757, 0x87E5, 0x8DAA, 0x9051, 0x9360,
0x953D, 0x968D, 0x992D, 0x9A1C, 0x9C09, 0x9C51, 0x9CC7, 0x9DEC, 0x9EC3,
0x9EC4,
};
constexpr static const std::uint16_t huang3[] = {
0x6ACE, 0x6F62, 0x6C7B, 0x5164, 0x595B, 0x5BBA, 0x5E4C, 0x6033, 0x604D,
0x6130, 0x614C, 0x6643, 0x6644, 0x69A5, 0x6EC9, 0x70BE, 0x7180, 0x71BF,
0x720C, 0x769D, 0x8352, 0x8A64, 0x8B0A, 0x8C0E, 0x93A4,
};
constexpr static const std::uint16_t huang4[] = {
0x6F62, 0x6130, 0x6643, 0x69A5, 0x6EC9, 0x720C, 0x769D, 0x76A9, 0x93A4,
};
constexpr static const std::uint16_t huang5[] = {
0x614C, 0x6643, 0x7E28, 0x8352,
};
constexpr static const std::uint16_t hui[] = {
0x5815, 0x58AE, 0x4F1A, 0x5EC6, 0x6703, 0x6867, 0x6A9C, 0x6FAE, 0x7E6A,
0x879D, 0x620F, 0x8633, 0x4F6A, 0x56DE, 0x50E1, 0x5136, 0x532F, 0x5349,
0x54B4, 0x54D5, 0x5599, 0x5612, 0x5645, 0x5655, 0x5666, 0x5696, 0x56D8,
0x56DE, 0x56EC, 0x571A, 0x5A4E, 0x5A88, 0x5B12, 0x5B48, 0x5BED, 0x5C76,
0x5C77, 0x5E51, 0x5EFB, 0x5EFD, 0x5F57, 0x5F59, 0x5F5A, 0x5FBB, 0x5FBD,
0x605A, 0x605B, 0x6062, 0x6075, 0x6094, 0x60E0, 0x6167, 0x6193, 0x61F3,
0x62FB, 0x6325, 0x63EE, 0x649D, 0x6656, 0x6666, 0x6689, 0x66B3, 0x694E,
0x69E5, 0x6A5E, 0x6A85, 0x6A93, 0x6AD8, 0x6BA8, 0x6BC0, 0x6BC1, 0x6BC7,
0x6C47, 0x6CCB, 0x6D03, 0x6D04, 0x6D4D, 0x6E4F, 0x6ED9, 0x6F53, 0x6FCA,
0x7008, 0x7070, 0x7073, 0x709C, 0x70E0, 0x70E3, 0x70E9, 0x7147, 0x71EC,
0x71F4, 0x7369, 0x73F2, 0x743F, 0x74A4, 0x74AF, 0x75D0,
};
constexpr static const std::uint16_t hui1[] = {
0x5815, 0x58AE, 0x620F, 0x8633, 0x54B4, 0x5645, 0x5655, 0x5A4E, 0x5A88,
0x5B48, 0x5E51, 0x5FBD, 0x6062, 0x62FB, 0x6325, 0x63EE, 0x649D, 0x6656,
0x6689, 0x694E, 0x6D03, 0x7008, 0x7070, 0x7073, 0x709C, 0x70E3, 0x7147,
0x71EC, 0x73F2, 0x743F,
};
constexpr static const std::uint16_t hui2[] = {
0x4F6A, 0x56DE, 0x56D8, 0x56DE, 0x56EC, 0x5EFB, 0x5EFD, 0x605B, 0x6D04,
0x70E0, 0x75D0,
};
constexpr static const std::uint16_t hui3[] = {
0x879D, 0x6094, 0x6A93, 0x6BC0, 0x6BC1, 0x6BC7, 0x70E0,
};
constexpr static const std::uint16_t hui4[] = {
0x4F1A, 0x5EC6, 0x6703, 0x6867, 0x6A9C, 0x6FAE, 0x7E6A, 0x50E1, 0x5136,
0x532F, 0x5349, 0x54D5, 0x5599, 0x5612, 0x5666, 0x5696, 0x571A, 0x5B12,
0x5B48, 0x5BED, 0x5C76, 0x5C77, 0x5F57, 0x5F59, 0x5F5A, 0x5FBB, 0x605A,
0x6075, 0x60E0, 0x6167, 0x6193, 0x61F3, 0x6666, 0x66B3, 0x69E5, 0x6A5E,
0x6A85, 0x6AD8, 0x6BA8, 0x6BC0, 0x6C47, 0x6CCB, 0x6D04, 0x6D4D, 0x6E4F,
0x6ED9, 0x6F53, 0x6FCA, 0x70E9, 0x71F4, 0x7369, 0x74AF,
};
constexpr static const std::uint16_t hui5[] = {
0x4F1A, 0x6656, 0x74A4,
};
constexpr static const std::uint16_t hun[] = {
0x68CD, 0x6E77, 0x638D, 0x6D51, 0x6DF7, 0x6E3E, 0x7774, 0x73F2, 0x743F,
0x4FD2, 0x5031, 0x5702, 0x5A5A, 0x5A6B, 0x5C21, 0x5FF6, 0x60DB, 0x6141,
0x660F, 0x662C, 0x68D4, 0x6B99, 0x6DBD, 0x6E63, 0x7104, 0x711D, 0x7767,
0x776F, 0x8364, 0x8477, 0x8512, 0x89E8, 0x8AE2, 0x8BE8, 0x8F4B, 0x95BD,
0x960D, 0x991B, 0x9984, 0x9B42, 0x9F32, 0x7703,
};
constexpr static const std::uint16_t hun1[] = {
0x5A5A, 0x60DB, 0x660F, 0x662C, 0x68D4, 0x6B99, 0x6DBD, 0x6E63, 0x7104,
0x7767, 0x776F, 0x8364, 0x8477, 0x8512, 0x95BD, 0x960D,
};
constexpr static const std::uint16_t hun2[] = {
0x6E77, 0x6D51, 0x6DF7, 0x6E3E, 0x73F2, 0x743F, 0x5FF6, 0x6EB7, 0x991B,
0x9984, 0x9B42, 0x9F32,
};
constexpr static const std::uint16_t hun3[] = {
0x638D, 0x6D51, 0x6DF7, 0x4FD2, 0x5702, 0x6141, 0x6EB7, 0x8BE8, 0x8F4B,
};
constexpr static const std::uint16_t hun4[] = {
0x68CD, 0x638D, 0x6D51, 0x6DF7, 0x6E3E, 0x7774, 0x4FD2, 0x5031, 0x5702,
0x5A6B, 0x5C21, 0x6141, 0x6EB7, 0x711D, 0x89E8, 0x8AE2, 0x8BE8, 0x8F4B,
0x7703,
};
constexpr static const std::uint16_t hun5[] = {
0x6DF7,
};
constexpr static const std::uint16_t huo[] = {
0x706C, 0x8D8F, 0x6D3B, 0x4FF0, 0x548C, 0x79F4, 0x8020, 0x85FF, 0x970D,
0x64ED, 0x6FE9, 0x97C4, 0x59E1, 0x8C41, 0x6FCA, 0x6FCA, 0x4F19, 0x4F78,
0x5268, 0x5290, 0x5419, 0x549F, 0x5590, 0x5684, 0x56AF, 0x56BF, 0x5925,
0x596F, 0x5F5F, 0x5F60, 0x60D1, 0x6216, 0x6347, 0x639D, 0x6509, 0x65E4,
0x66E4, 0x6AB4, 0x6C8E, 0x6E71, 0x6F37, 0x7016, 0x706B, 0x7177, 0x7372,
0x7668, 0x7713, 0x77C6, 0x77D0, 0x790A, 0x7978, 0x798D, 0x79EE, 0x79F3,
0x7A6B, 0x7AA2, 0x802F, 0x81DB, 0x8267, 0x83B7, 0x84A6, 0x8816, 0x8B0B,
0x8CA8, 0x8D27, 0x90A9, 0x9225, 0x9343, 0x944A, 0x94AC, 0x952A, 0x956C,
0x9584, 0x96D8, 0x9743, 0x9A1E, 0x7BE7, 0x83B7,
};
constexpr static const std::uint16_t huo1[] = {
0x79F4, 0x8020, 0x8C41, 0x5290, 0x5419, 0x5684, 0x6509, 0x706B, 0x9343,
0x952A, 0x9A1E,
};
constexpr static const std::uint16_t huo2[] = {
0x8D8F, 0x6D3B, 0x548C, 0x59E1, 0x8C41, 0x4F78, 0x79EE, 0x79F3, 0x9225,
0x94AC,
};
constexpr static const std::uint16_t huo3[] = {
0x706C, 0x6FCA, 0x4F19, 0x5925, 0x6F37, 0x706B, 0x7177, 0x90A9, 0x9225,
0x94AC,
};
constexpr static const std::uint16_t huo4[] = {
0x4FF0, 0x548C, 0x85FF, 0x970D, 0x64ED, 0x6FE9, 0x97C4, 0x8C41, 0x6FCA,
0x5268, 0x549F, 0x5590, 0x5684, 0x56AF, 0x56BF, 0x596F, 0x5F5F, 0x5F60,
0x60D1, 0x6216, 0x6347, 0x639D, 0x6509, 0x65E4, 0x66E4, 0x6AB4, 0x6C8E,
0x6E71, 0x6F37, 0x7016, 0x7372, 0x7668, 0x7713, 0x77C6, 0x77D0, 0x790A,
0x7978, 0x798D, 0x7A6B, 0x7AA2, 0x802F, 0x81DB, 0x8267, 0x83B7, 0x84A6,
0x8816, 0x8B0B, 0x8CA8, 0x8D27, 0x9343, 0x944A, 0x952A, 0x956C, 0x9584,
0x96D8, 0x9743, 0x9A1E, 0x7BE7, 0x83B7,
};
constexpr static const std::uint16_t huo5[] = {
0x6D3B, 0x548C, 0x6FCA, 0x4F19, 0x706B,
};
constexpr static const CandidateGroup h = {
{ section(ha), section(ha1), section(ha2), section(ha3), section(ha4), section(ha5), },
{ section(hai), section(hai1), section(hai2), section(hai3), section(hai4), section(hai5), },
{ section(han), section(han1), section(han2), section(han3), section(han4), section(han5), },
{ section(hang), section(hang1), section(hang2), { 0, 0 }, section(hang4), section(hang5), },
{ section(hao), section(hao1), section(hao2), section(hao3), section(hao4), section(hao5), },
{ section(he), section(he1), section(he2), { 0, 0 }, section(he4), section(he5), },
{ section(hei), section(hei1), { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ section(hen), section(hen1), section(hen2), section(hen3), section(hen4), { 0, 0 }, },
{ section(heng), section(heng1), section(heng2), { 0, 0 }, section(heng4), section(heng5), },
{ { 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 }, },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ section(hong), section(hong1), section(hong2), section(hong3), section(hong4), section(hong5), },
{ section(hou), section(hou1), section(hou2), section(hou3), section(hou4), section(hou5), },
{ section(hu), section(hu1), section(hu2), section(hu3), section(hu4), section(hu5), },
{ section(hua), section(hua1), section(hua2), section(hua3), section(hua4), section(hua5), },
{ section(huai), { 0, 0 }, section(huai2), { 0, 0 }, section(huai4), section(huai5), },
{ section(huan), section(huan1), section(huan2), section(huan3), section(huan4), section(huan5), },
{ section(huang), section(huang1), section(huang2), section(huang3), section(huang4), section(huang5), },
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, },
{ section(hui), section(hui1), section(hui2), section(hui3), section(hui4), section(hui5), },
{ section(hun), section(hun1), section(hun2), section(hun3), section(hun4), section(hun5), },
{ section(huo), section(huo1), section(huo2), section(huo3), section(huo4), section(huo5), },
{ { 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