From 023776dbe8b5e73f5ddba0e1bb80391ceb45bd69 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Tue, 22 Apr 2025 22:33:25 +0800
Subject: [PATCH 01/22] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DFluTableView?=
=?UTF-8?q?=E9=94=99=E4=BD=8D=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../FluentUI/Controls/FluTableView.qml | 46 ++++++++-----------
.../FluentUI/Controls/FluTableView.qml | 46 ++++++++-----------
2 files changed, 36 insertions(+), 56 deletions(-)
diff --git a/src/Qt5/imports/FluentUI/Controls/FluTableView.qml b/src/Qt5/imports/FluentUI/Controls/FluTableView.qml
index 681200aa..6fb39b4f 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluTableView.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluTableView.qml
@@ -266,30 +266,18 @@ Rectangle {
d.rowHoverIndex = row
}
onWidthChanged: {
- if(editVisible){
- updateEditPosition()
- }
- if(isMainTable){
- updateTableItem()
- }
+ updatePosition()
}
onHeightChanged: {
- if(editVisible){
- updateEditPosition()
- }
- if(isMainTable){
- updateTableItem()
- }
+ updatePosition()
}
onXChanged: {
- if(editVisible){
- updateEditPosition()
- }
- if(isMainTable){
- updateTableItem()
- }
+ updatePosition()
}
onYChanged: {
+ updatePosition()
+ }
+ function updatePosition(){
if(editVisible){
updateEditPosition()
}
@@ -310,9 +298,11 @@ Rectangle {
}
function updateTableItem(){
var columnModel = control.columnSource[column]
- columnModel.x = item_table_mouse.x
- columnModel.y = item_table_mouse.y
- d.tableItemLayout(column)
+ if(columnModel.x !== item_table_mouse.x || columnModel.y !== item_table_mouse.y){
+ columnModel.x = item_table_mouse.x
+ columnModel.y = item_table_mouse.y
+ d.tableItemLayout(column)
+ }
}
Rectangle{
anchors.fill: parent
@@ -352,6 +342,7 @@ Rectangle {
}
FluLoader{
id: item_table_loader
+ property var tableView: control
property var model: item_table_mouse._model
property var display: rowModel[columnModel.dataIndex]
property var rowModel : model.rowModel
@@ -445,10 +436,6 @@ Rectangle {
}
}
- onWidthChanged:{
- table_view.forceLayout()
- }
-
MouseArea{
id:layout_mouse_table
hoverEnabled: true
@@ -479,6 +466,9 @@ Rectangle {
table_view.flick(0,1)
}
delegate: com_table_delegate
+ onWidthChanged: {
+ Qt.callLater(forceLayout)
+ }
}
}
@@ -955,18 +945,18 @@ Rectangle {
target: d
function onTableItemLayout(column){
if(item_layout_frozen._index === column){
- updateLayout()
+ Qt.callLater(updateLayout)
}
}
}
Connections{
target: table_view
function onContentXChanged(){
- updateLayout()
+ Qt.callLater(updateLayout)
}
}
function updateLayout(){
- width = table_view.columnWidthProvider(_index)
+ width = Qt.binding(() => table_view.columnWidthProvider(_index))
x = Qt.binding(function(){
var minX = 0
var maxX = table_view.width-width
diff --git a/src/Qt6/imports/FluentUI/Controls/FluTableView.qml b/src/Qt6/imports/FluentUI/Controls/FluTableView.qml
index 7efea849..100be1d9 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluTableView.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluTableView.qml
@@ -266,30 +266,18 @@ Rectangle {
d.rowHoverIndex = row
}
onWidthChanged: {
- if(editVisible){
- updateEditPosition()
- }
- if(isMainTable){
- updateTableItem()
- }
+ updatePosition()
}
onHeightChanged: {
- if(editVisible){
- updateEditPosition()
- }
- if(isMainTable){
- updateTableItem()
- }
+ updatePosition()
}
onXChanged: {
- if(editVisible){
- updateEditPosition()
- }
- if(isMainTable){
- updateTableItem()
- }
+ updatePosition()
}
onYChanged: {
+ updatePosition()
+ }
+ function updatePosition(){
if(editVisible){
updateEditPosition()
}
@@ -310,9 +298,11 @@ Rectangle {
}
function updateTableItem(){
var columnModel = control.columnSource[column]
- columnModel.x = item_table_mouse.x
- columnModel.y = item_table_mouse.y
- d.tableItemLayout(column)
+ if(columnModel.x !== item_table_mouse.x || columnModel.y !== item_table_mouse.y){
+ columnModel.x = item_table_mouse.x
+ columnModel.y = item_table_mouse.y
+ d.tableItemLayout(column)
+ }
}
Rectangle{
anchors.fill: parent
@@ -352,6 +342,7 @@ Rectangle {
}
FluLoader{
id: item_table_loader
+ property var tableView: control
property var model: item_table_mouse._model
property var display: rowModel[columnModel.dataIndex]
property var rowModel : model.rowModel
@@ -445,10 +436,6 @@ Rectangle {
}
}
- onWidthChanged:{
- table_view.forceLayout()
- }
-
MouseArea{
id:layout_mouse_table
hoverEnabled: true
@@ -479,6 +466,9 @@ Rectangle {
table_view.flick(0,1)
}
delegate: com_table_delegate
+ onWidthChanged: {
+ Qt.callLater(forceLayout)
+ }
}
}
@@ -955,18 +945,18 @@ Rectangle {
target: d
function onTableItemLayout(column){
if(item_layout_frozen._index === column){
- updateLayout()
+ Qt.callLater(updateLayout)
}
}
}
Connections{
target: table_view
function onContentXChanged(){
- updateLayout()
+ Qt.callLater(updateLayout)
}
}
function updateLayout(){
- width = table_view.columnWidthProvider(_index)
+ width = Qt.binding(() => table_view.columnWidthProvider(_index))
x = Qt.binding(function(){
var minX = 0
var maxX = table_view.width-width
From 5de9588b93e80813360b04e6bd02d4ef65627306 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Wed, 7 May 2025 23:15:32 +0800
Subject: [PATCH 02/22] =?UTF-8?q?feat:=20FluAutoSuggestBox=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E8=AE=BE=E7=BD=AE=E5=BB=BA=E8=AE=AE=E8=A1=8C=E6=95=B0?=
=?UTF-8?q?=E5=92=8C=E8=A1=8C=E9=AB=98=E4=BB=A5=E5=8F=8Apressed=E6=97=B6?=
=?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=BB=BA=E8=AE=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/example_en_US.ts | 9 ++++--
example/example_zh_CN.ts | 9 ++++--
example/qml/page/T_TextBox.qml | 17 +++++++++--
.../FluentUI/Controls/FluAutoSuggestBox.qml | 29 +++++++++++--------
.../FluentUI/Controls/FluAutoSuggestBox.qml | 29 +++++++++++--------
5 files changed, 62 insertions(+), 31 deletions(-)
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 390f78c6..802e0585 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -2487,8 +2487,8 @@ Some contents...
-
-
+
+
Disabled
@@ -2507,6 +2507,11 @@ Some contents...
AutoSuggestBox
+
+
+ Show suggest when pressed
+
+
T_Theme
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 6796d1c0..00981b6d 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -2676,8 +2676,8 @@ Some contents...
-
-
+
+
Disabled
禁用
@@ -2696,6 +2696,11 @@ Some contents...
AutoSuggestBox
自动建议框
+
+
+ Show suggest when pressed
+ 按下时显示建议
+
T_Theme
diff --git a/example/qml/page/T_TextBox.qml b/example/qml/page/T_TextBox.qml
index 357720d2..ab722ba5 100644
--- a/example/qml/page/T_TextBox.qml
+++ b/example/qml/page/T_TextBox.qml
@@ -114,18 +114,26 @@ FluScrollablePage{
placeholderText: qsTr("AutoSuggestBox")
items: generateRandomNames(100)
disabled: text_box_suggest_switch.checked
+ itemRows: 12
+ showSuggestWhenPressed: text_box_show_suggest_switch.checked
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
}
- FluToggleSwitch{
- id:text_box_suggest_switch
+ RowLayout{
anchors{
verticalCenter: parent.verticalCenter
right: parent.right
}
- text: qsTr("Disabled")
+ FluToggleSwitch{
+ id:text_box_show_suggest_switch
+ text: qsTr("Show suggest when pressed")
+ }
+ FluToggleSwitch{
+ id:text_box_suggest_switch
+ text: qsTr("Disabled")
+ }
}
}
CodeExpander{
@@ -133,6 +141,9 @@ FluScrollablePage{
Layout.topMargin: -6
code:'FluAutoSuggestBox{
placeholderText: qsTr("AutoSuggestBox")
+ itemRows: 12
+ itemHeight: 38
+ showSuggestWhenPressed: false
}'
}
diff --git a/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml b/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml
index 4cf102ed..9f28175c 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml
@@ -7,9 +7,12 @@ FluTextBox{
property var items:[]
property string emptyText: qsTr("No results found")
property int autoSuggestBoxReplacement: FluentIcons.Search
+ property int itemHeight: 38
+ property int itemRows: 8
+ property bool showSuggestWhenPressed: false
property string textRole: "title"
property var filter: function(item){
- if(item.title.indexOf(control.text)!==-1){
+ if(item[textRole].indexOf(control.text)!==-1){
return true
}
return false
@@ -29,17 +32,11 @@ FluTextBox{
control.updateText(modelData[textRole])
}
function loadData(){
- var result = []
if(items==null){
- list_view.model = result
+ list_view.model = []
return
}
- items.map(function(item){
- if(control.filter(item)){
- result.push(item)
- }
- })
- list_view.model = result
+ list_view.model = items.filter(item => control.filter(item))
}
}
onActiveFocusChanged: {
@@ -69,7 +66,7 @@ FluTextBox{
ScrollBar.vertical: FluScrollBar {}
header: Item{
width: control.width
- height: visible ? 38 : 0
+ height: visible ? control.itemHeight : 0
visible: list_view.count === 0
FluText{
text: emptyText
@@ -82,7 +79,7 @@ FluTextBox{
}
delegate:FluControl{
id: item_control
- height: 38
+ height: control.itemHeight
width: control.width
onClicked: {
d.handleClick(modelData)
@@ -114,7 +111,7 @@ FluTextBox{
background:Rectangle{
id: rect_background
implicitWidth: control.width
- implicitHeight: 38*Math.min(Math.max(list_view.count,1),8)
+ implicitHeight: control.itemHeight*Math.min(Math.max(list_view.count,1),control.itemRows)
radius: 5
color: FluTheme.dark ? Qt.rgba(43/255,43/255,43/255,1) : Qt.rgba(1,1,1,1)
border.color: FluTheme.dark ? Qt.rgba(26/255,26/255,26/255,1) : Qt.rgba(191/255,191/255,191/255,1)
@@ -124,6 +121,14 @@ FluTextBox{
}
}
onTextChanged: {
+ control.showSuggest()
+ }
+ onPressed: {
+ if(control.showSuggestWhenPressed){
+ control.showSuggest()
+ }
+ }
+ function showSuggest(){
d.loadData()
if(d.flagVisible){
var pos = control.mapToItem(null, 0, 0)
diff --git a/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml b/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml
index 18119013..93697196 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml
@@ -6,9 +6,12 @@ FluTextBox{
property var items:[]
property string emptyText: qsTr("No results found")
property int autoSuggestBoxReplacement: FluentIcons.Search
+ property int itemHeight: 38
+ property int itemRows: 8
+ property bool showSuggestWhenPressed: false
property string textRole: "title"
property var filter: function(item){
- if(item.title.indexOf(control.text)!==-1){
+ if(item[textRole].indexOf(control.text)!==-1){
return true
}
return false
@@ -28,17 +31,11 @@ FluTextBox{
control.updateText(modelData[textRole])
}
function loadData(){
- var result = []
if(items==null){
- list_view.model = result
+ list_view.model = []
return
}
- items.map(function(item){
- if(control.filter(item)){
- result.push(item)
- }
- })
- list_view.model = result
+ list_view.model = items.filter(item => control.filter(item))
}
}
onActiveFocusChanged: {
@@ -68,7 +65,7 @@ FluTextBox{
ScrollBar.vertical: FluScrollBar {}
header: Item{
width: control.width
- height: visible ? 38 : 0
+ height: visible ? control.itemHeight : 0
visible: list_view.count === 0
FluText{
text: emptyText
@@ -81,7 +78,7 @@ FluTextBox{
}
delegate:FluControl{
id: item_control
- height: 38
+ height: control.itemHeight
width: control.width
onClicked: {
d.handleClick(modelData)
@@ -113,7 +110,7 @@ FluTextBox{
background:Rectangle{
id: rect_background
implicitWidth: control.width
- implicitHeight: 38*Math.min(Math.max(list_view.count,1),8)
+ implicitHeight: control.itemHeight*Math.min(Math.max(list_view.count,1),control.itemRows)
radius: 5
color: FluTheme.dark ? Qt.rgba(43/255,43/255,43/255,1) : Qt.rgba(1,1,1,1)
border.color: FluTheme.dark ? Qt.rgba(26/255,26/255,26/255,1) : Qt.rgba(191/255,191/255,191/255,1)
@@ -123,6 +120,14 @@ FluTextBox{
}
}
onTextChanged: {
+ control.showSuggest()
+ }
+ onPressed: {
+ if(control.showSuggestWhenPressed){
+ control.showSuggest()
+ }
+ }
+ function showSuggest(){
d.loadData()
if(d.flagVisible){
var pos = control.mapToItem(null, 0, 0)
From 99c77d2786629f632d8160ce5e0e10e6adcd1317 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Fri, 9 May 2025 08:22:09 +0800
Subject: [PATCH 03/22] =?UTF-8?q?feat:=20FluBadge=E6=94=AF=E6=8C=81?=
=?UTF-8?q?=E8=AE=BE=E7=BD=AEmax=E5=92=8Cposition?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/qml/page/T_Badge.qml | 81 ++++++++++++++++--
.../imports/FluentUI/Controls/FluBadge.qml | 85 ++++++++++++-------
.../imports/FluentUI/Controls/FluBadge.qml | 85 ++++++++++++-------
3 files changed, 178 insertions(+), 73 deletions(-)
diff --git a/example/qml/page/T_Badge.qml b/example/qml/page/T_Badge.qml
index 6a2db9c5..941fc241 100644
--- a/example/qml/page/T_Badge.qml
+++ b/example/qml/page/T_Badge.qml
@@ -26,7 +26,8 @@ FluScrollablePage{
width: parent.width
text: qsTr("It usually appears in the upper right corner of the notification icon or avatar to display the number of messages that need to be processed")
}
- Row{
+ Flow{
+ width: parent.width
spacing: 20
Rectangle{
width: 40
@@ -34,7 +35,7 @@ FluScrollablePage{
radius: 8
color: Qt.rgba(191/255,191/255,191/255,1)
FluBadge{
- topRight: true
+ position: "topRight"
showZero: true
count:0
}
@@ -46,7 +47,7 @@ FluScrollablePage{
radius: 8
color: Qt.rgba(191/255,191/255,191/255,1)
FluBadge{
- topRight: true
+ position: "topRight"
showZero: true
count:5
}
@@ -57,7 +58,7 @@ FluScrollablePage{
radius: 8
color: Qt.rgba(191/255,191/255,191/255,1)
FluBadge{
- topRight: true
+ position: "topRight"
showZero: true
count:50
}
@@ -68,9 +69,10 @@ FluScrollablePage{
radius: 8
color: Qt.rgba(191/255,191/255,191/255,1)
FluBadge{
- topRight: true
+ position: "topRight"
showZero: true
- count:100
+ count:1000
+ max: 999
}
}
Rectangle{
@@ -79,7 +81,7 @@ FluScrollablePage{
radius: 8
color: Qt.rgba(191/255,191/255,191/255,1)
FluBadge{
- topRight: true
+ position: "topRight"
showZero: true
isDot:true
}
@@ -90,7 +92,7 @@ FluScrollablePage{
radius: 8
color: Qt.rgba(191/255,191/255,191/255,1)
FluBadge{
- topRight: true
+ position: "topRight"
showZero: true
count:99
color: Qt.rgba(250/255,173/255,20/255,1)
@@ -102,12 +104,71 @@ FluScrollablePage{
radius: 8
color: Qt.rgba(191/255,191/255,191/255,1)
FluBadge{
- topRight: true
+ position: "topRight"
showZero: true
count:99
color: Qt.rgba(82/255,196/255,26/255,1)
}
}
+ Rectangle{
+ width: 40
+ height: 40
+ radius: 8
+ color: Qt.rgba(191/255,191/255,191/255,1)
+ FluBadge{
+ position: "topRight"
+ showZero: true
+ count:100
+ color: Qt.rgba(84/255,169/255,1,1)
+ }
+ }
+ Rectangle{
+ width: 40
+ height: 40
+ radius: 8
+ color: Qt.rgba(191/255,191/255,191/255,1)
+ FluBadge{
+ position: "bottomLeft"
+ showZero: true
+ count:100
+ color: Qt.rgba(84/255,169/255,1,1)
+ }
+ }
+ Rectangle{
+ width: 40
+ height: 40
+ radius: 8
+ color: Qt.rgba(191/255,191/255,191/255,1)
+ FluBadge{
+ position: "topLeft"
+ showZero: true
+ count:100
+ color: Qt.rgba(84/255,169/255,1,1)
+ }
+ }
+ Rectangle{
+ width: 40
+ height: 40
+ radius: 8
+ color: Qt.rgba(191/255,191/255,191/255,1)
+ FluBadge{
+ position: "bottomRight"
+ showZero: true
+ count:100
+ color: Qt.rgba(84/255,169/255,1,1)
+ }
+ }
+ Rectangle{
+ width: 40
+ height: 40
+ radius: 8
+ color: Qt.rgba(191/255,191/255,191/255,1)
+ FluBadge{
+ position: "topRight"
+ count: "NEW"
+ color: Qt.rgba(84/255,169/255,1,1)
+ }
+ }
}
}
}
@@ -120,7 +181,9 @@ FluScrollablePage{
radius: 8
color: Qt.rgba(191/255,191/255,191/255,1)
FluBadge{
+ position: "topRight"
count: 100
+ max: 99
isDot: false
color: Qt.rgba(82/255,196/255,26/255,1)
}
diff --git a/src/Qt5/imports/FluentUI/Controls/FluBadge.qml b/src/Qt5/imports/FluentUI/Controls/FluBadge.qml
index 32fe084c..22086a7d 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluBadge.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluBadge.qml
@@ -5,19 +5,15 @@ import FluentUI 1.0
Rectangle{
property bool isDot: false
property bool showZero: false
- property int count: 0
- property bool topRight: false
+ property var count: 0
+ property int max: 99
+ property string position: "" // topLeft, topRight, bottomLeft, bottomRight
id:control
color:Qt.rgba(255/255,77/255,79/255,1)
width: {
if(isDot)
return 10
- if(count<10){
- return 20
- }else if(count<100){
- return 30
- }
- return 40
+ return content_text.implicitWidth + 12
}
height: {
if(isDot)
@@ -31,49 +27,74 @@ Rectangle{
}
border.width: 1
border.color: Qt.rgba(1,1,1,1)
- anchors{
+ anchors {
+ left: {
+ if(!parent){
+ return undefined
+ }
+ return (position === "topLeft" || position === "bottomLeft") ? parent.left : undefined
+ }
right: {
- if(parent && topRight)
- return parent.right
- return undefined
+ if(!parent){
+ return undefined
+ }
+ return (position === "topRight" || position === "bottomRight") ? parent.right : undefined
}
top: {
- if(parent && topRight)
- return parent.top
- return undefined
+ if(!parent){
+ return undefined
+ }
+ return (position === "topLeft" || position === "topRight") ? parent.top : undefined
+ }
+ bottom: {
+ if(!parent){
+ return undefined
+ }
+ return (position === "bottomLeft" || position === "bottomRight") ? parent.bottom : undefined
+ }
+ leftMargin: {
+ if(!parent){
+ return 0
+ }
+ return (position === "topLeft" || position === "bottomLeft") ? (isDot ? -2.5 : -(width / 2)) : 0
}
rightMargin: {
- if(parent && topRight){
- if(isDot){
- return -2.5
- }
- return -(control.width/2)
+ if(!parent){
+ return 0
}
- return 0
+ return (position === "topRight" || position === "bottomRight") ? (isDot ? -2.5 : -(width / 2)) : 0
}
topMargin: {
- if(parent && topRight){
- if(isDot){
- return -2.5
- }
- return -10
+ if(!parent){
+ return 0
+ }
+ return (position === "topLeft" || position === "topRight") ? (isDot ? -2.5 : -10) : 0
+ }
+ bottomMargin: {
+ if(!parent){
+ return 0
}
- return 0
+ return (position === "bottomLeft" || position === "bottomRight") ? (isDot ? -2.5 : -10) : 0
}
}
visible: {
- if(showZero)
- return true
- return count!==0
+ if(typeof(count) === "number"){
+ return showZero ? true : count !== 0
+ }
+ return true
}
FluText{
+ id: content_text
anchors.centerIn: parent
color: Qt.rgba(1,1,1,1)
visible: !isDot
text:{
- if(count<100)
+ if(typeof(count) === "string"){
return count
- return "100+"
+ }else if(typeof(count) === "number"){
+ return count <= max ? count.toString() : "%1+".arg(max.toString())
+ }
+ return ""
}
}
}
diff --git a/src/Qt6/imports/FluentUI/Controls/FluBadge.qml b/src/Qt6/imports/FluentUI/Controls/FluBadge.qml
index 2e88c728..2c390c48 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluBadge.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluBadge.qml
@@ -5,19 +5,15 @@ import FluentUI
Rectangle{
property bool isDot: false
property bool showZero: false
- property int count: 0
- property bool topRight: false
+ property var count: 0
+ property int max: 99
+ property string position: "" // topLeft, topRight, bottomLeft, bottomRight
id:control
color:Qt.rgba(255/255,77/255,79/255,1)
width: {
if(isDot)
return 10
- if(count<10){
- return 20
- }else if(count<100){
- return 30
- }
- return 40
+ return content_text.implicitWidth + 12
}
height: {
if(isDot)
@@ -31,49 +27,74 @@ Rectangle{
}
border.width: 1
border.color: Qt.rgba(1,1,1,1)
- anchors{
+ anchors {
+ left: {
+ if(!parent){
+ return undefined
+ }
+ return (position === "topLeft" || position === "bottomLeft") ? parent.left : undefined
+ }
right: {
- if(parent && topRight)
- return parent.right
- return undefined
+ if(!parent){
+ return undefined
+ }
+ return (position === "topRight" || position === "bottomRight") ? parent.right : undefined
}
top: {
- if(parent && topRight)
- return parent.top
- return undefined
+ if(!parent){
+ return undefined
+ }
+ return (position === "topLeft" || position === "topRight") ? parent.top : undefined
+ }
+ bottom: {
+ if(!parent){
+ return undefined
+ }
+ return (position === "bottomLeft" || position === "bottomRight") ? parent.bottom : undefined
+ }
+ leftMargin: {
+ if(!parent){
+ return 0
+ }
+ return (position === "topLeft" || position === "bottomLeft") ? (isDot ? -2.5 : -(width / 2)) : 0
}
rightMargin: {
- if(parent && topRight){
- if(isDot){
- return -2.5
- }
- return -(control.width/2)
+ if(!parent){
+ return 0
}
- return 0
+ return (position === "topRight" || position === "bottomRight") ? (isDot ? -2.5 : -(width / 2)) : 0
}
topMargin: {
- if(parent && topRight){
- if(isDot){
- return -2.5
- }
- return -10
+ if(!parent){
+ return 0
+ }
+ return (position === "topLeft" || position === "topRight") ? (isDot ? -2.5 : -10) : 0
+ }
+ bottomMargin: {
+ if(!parent){
+ return 0
}
- return 0
+ return (position === "bottomLeft" || position === "bottomRight") ? (isDot ? -2.5 : -10) : 0
}
}
visible: {
- if(showZero)
- return true
- return count!==0
+ if(typeof(count) === "number"){
+ return showZero ? true : count !== 0
+ }
+ return true
}
FluText{
+ id: content_text
anchors.centerIn: parent
color: Qt.rgba(1,1,1,1)
visible: !isDot
text:{
- if(count<100)
+ if(typeof(count) === "string"){
return count
- return "100+"
+ }else if(typeof(count) === "number"){
+ return count <= max ? count.toString() : "%1+".arg(max.toString())
+ }
+ return ""
}
}
}
From 49e96b094b780c1b625af349bb5bc0107fa28d61 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sat, 10 May 2025 20:38:01 +0800
Subject: [PATCH 04/22] =?UTF-8?q?feat:=20FluRectangle=E6=94=AF=E6=8C=81bor?=
=?UTF-8?q?der=E7=BB=98=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/qml/page/T_Rectangle.qml | 18 +++++++
src/FluRectangle.cpp | 62 ++++++++++++++++-------
src/FluRectangle.h | 4 ++
src/Qt5/imports/FluentUI/plugins.qmltypes | 17 +++++--
4 files changed, 79 insertions(+), 22 deletions(-)
diff --git a/example/qml/page/T_Rectangle.qml b/example/qml/page/T_Rectangle.qml
index edd8d153..08a016ca 100644
--- a/example/qml/page/T_Rectangle.qml
+++ b/example/qml/page/T_Rectangle.qml
@@ -58,6 +58,22 @@ FluScrollablePage{
color:"#b4009e"
radius:[0,0,0,15]
}
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#a8d5ba"
+ radius:[15,15,15,15]
+ borderWidth: 3
+ borderColor: "#5b8a72"
+ }
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#dbe2ef"
+ radius:[15,0,0,0]
+ borderWidth: 2
+ borderColor: "#3f72af"
+ }
}
}
}
@@ -66,6 +82,8 @@ FluScrollablePage{
Layout.topMargin: -6
code:'FluRectangle{
radius: [25,25,25,25]
+ borderWidth: 2
+ borderColor: "#000000"
width: 50
height: 50
}'
diff --git a/src/FluRectangle.cpp b/src/FluRectangle.cpp
index 00890a76..fdd69d5f 100644
--- a/src/FluRectangle.cpp
+++ b/src/FluRectangle.cpp
@@ -2,33 +2,61 @@
#include
FluRectangle::FluRectangle(QQuickItem *parent) : QQuickPaintedItem(parent) {
- color(QColor(255, 255, 255, 255));
+ color(Qt::white);
radius({0, 0, 0, 0});
+ borderWidth(0);
+ borderColor(Qt::black);
connect(this, &FluRectangle::colorChanged, this, [=] { update(); });
connect(this, &FluRectangle::radiusChanged, this, [=] { update(); });
+ connect(this, &FluRectangle::borderWidthChanged, this, [=] { update(); });
+ connect(this, &FluRectangle::borderColorChanged, this, [=] { update(); });
}
+bool FluRectangle::borderValid() const {
+ return qRound(_borderWidth) >= 1 && _color.isValid() && _color.alpha() > 0;
+}
void FluRectangle::paint(QPainter *painter) {
painter->save();
painter->setRenderHint(QPainter::Antialiasing);
- QPainterPath path;
+
QRectF rect = boundingRect();
- path.moveTo(rect.bottomRight() - QPointF(0, _radius[2]));
- path.lineTo(rect.topRight() + QPointF(0, _radius[1]));
- path.arcTo(QRectF(QPointF(rect.topRight() - QPointF(_radius[1] * 2, 0)),
- QSize(_radius[1] * 2, _radius[1] * 2)),
- 0, 90);
- path.lineTo(rect.topLeft() + QPointF(_radius[0], 0));
- path.arcTo(QRectF(QPointF(rect.topLeft()), QSize(_radius[0] * 2, _radius[0] * 2)), 90, 90);
- path.lineTo(rect.bottomLeft() - QPointF(0, _radius[3]));
- path.arcTo(QRectF(QPointF(rect.bottomLeft() - QPointF(0, _radius[3] * 2)),
- QSize(_radius[3] * 2, _radius[3] * 2)),
- 180, 90);
- path.lineTo(rect.bottomRight() - QPointF(_radius[2], 0));
- path.arcTo(QRectF(QPointF(rect.bottomRight() - QPointF(_radius[2] * 2, _radius[2] * 2)),
- QSize(_radius[2] * 2, _radius[2] * 2)),
- 270, 90);
+ bool valid = borderValid();
+ if (valid) {
+ // 绘制边框时画笔的宽度从路径向两侧扩充
+ // 因此实际绘制的矩形应向内侧收缩边框宽度的一半,避免边框裁剪导致不完整
+ qreal halfBorderWidth = _borderWidth / 2.0;
+ rect.adjust(halfBorderWidth, halfBorderWidth, -halfBorderWidth, -halfBorderWidth);
+ }
+
+ QPainterPath path;
+ QList r = _radius;
+
+ while (r.size() < 4) {
+ r.append(0);
+ }
+
+ // 从右下角开始逆时针绘制圆角矩形路径
+ path.moveTo(rect.bottomRight() - QPointF(0, r[2]));
+ path.lineTo(rect.topRight() + QPointF(0, r[1]));
+ path.arcTo(QRectF(QPointF(rect.topRight() - QPointF(r[1] * 2, 0)), QSize(r[1] * 2, r[1] * 2)), 0, 90);
+
+ path.lineTo(rect.topLeft() + QPointF(r[0], 0));
+ path.arcTo(QRectF(QPointF(rect.topLeft()), QSize(r[0] * 2, r[0] * 2)), 90, 90);
+
+ path.lineTo(rect.bottomLeft() - QPointF(0, r[3]));
+ path.arcTo(QRectF(QPointF(rect.bottomLeft() - QPointF(0, r[3] * 2)), QSize(r[3] * 2, r[3] * 2)), 180, 90);
+
+ path.lineTo(rect.bottomRight() - QPointF(r[2], 0));
+ path.arcTo(QRectF(QPointF(rect.bottomRight() - QPointF(r[2] * 2, r[2] * 2)), QSize(r[2] * 2, r[2] * 2)), 270, 90);
+
+ // 填充背景
painter->fillPath(path, _color);
+
+ // 绘制边框
+ if (valid) {
+ painter->strokePath(path, QPen(_borderColor, _borderWidth));
+ }
+
painter->restore();
}
diff --git a/src/FluRectangle.h b/src/FluRectangle.h
index 4690ff39..571af4f6 100644
--- a/src/FluRectangle.h
+++ b/src/FluRectangle.h
@@ -12,9 +12,13 @@ class FluRectangle : public QQuickPaintedItem {
Q_OBJECT
Q_PROPERTY_AUTO(QColor, color)
Q_PROPERTY_AUTO(QList, radius)
+ Q_PROPERTY_AUTO(qreal, borderWidth)
+ Q_PROPERTY_AUTO(QColor, borderColor)
QML_NAMED_ELEMENT(FluRectangle)
public:
explicit FluRectangle(QQuickItem *parent = nullptr);
+ bool borderValid() const;
+
void paint(QPainter *painter) override;
};
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index 26d694db..17e31c99 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -231,6 +231,8 @@ Module {
exportMetaObjectRevisions: [0]
Property { name: "color"; type: "QColor" }
Property { name: "radius"; type: "QList" }
+ Property { name: "borderWidth"; type: "double" }
+ Property { name: "borderColor"; type: "QColor" }
}
Component {
name: "FluSheetType"
@@ -2776,7 +2778,7 @@ Module {
}
Property {
name: "layoutMacosButtons"
- type: "FluLoader_QMLTYPE_14"
+ type: "FluLoader_QMLTYPE_11"
isReadonly: true
isPointer: true
}
@@ -2797,12 +2799,16 @@ Module {
Property { name: "items"; type: "QVariant" }
Property { name: "emptyText"; type: "string" }
Property { name: "autoSuggestBoxReplacement"; type: "int" }
+ Property { name: "itemHeight"; type: "int" }
+ Property { name: "itemRows"; type: "int" }
+ Property { name: "showSuggestWhenPressed"; type: "bool" }
Property { name: "textRole"; type: "string" }
Property { name: "filter"; type: "QVariant" }
Signal {
name: "itemClicked"
Parameter { name: "data"; type: "QVariant" }
}
+ Method { name: "showSuggest"; type: "QVariant" }
Method {
name: "updateText"
type: "QVariant"
@@ -2830,8 +2836,9 @@ Module {
defaultProperty: "data"
Property { name: "isDot"; type: "bool" }
Property { name: "showZero"; type: "bool" }
- Property { name: "count"; type: "int" }
- Property { name: "topRight"; type: "bool" }
+ Property { name: "count"; type: "QVariant" }
+ Property { name: "max"; type: "int" }
+ Property { name: "position"; type: "string" }
}
Component {
prototype: "QQuickItem"
@@ -3479,8 +3486,8 @@ Module {
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
- Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_47"; isPointer: true }
- Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_47"; isPointer: true }
+ Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_37"; isPointer: true }
+ Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_37"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
From b2fd3acda33c31cdd029eaa9b523a0ef75f9f31a Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sun, 11 May 2025 22:18:37 +0800
Subject: [PATCH 05/22] =?UTF-8?q?feat:=20FluDatePicker=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E6=9C=88=E4=BB=BD=E6=97=B6=EF=BC=8C=E8=8B=A5=E5=BD=93=E5=89=8D?=
=?UTF-8?q?=E6=97=A5=E5=AD=98=E5=9C=A8=E4=BA=8E=E6=96=B0=E7=9A=84=E6=9C=88?=
=?UTF-8?q?=E4=BB=BD=E4=B8=AD=E5=88=99=E4=BF=9D=E6=8C=81=E6=97=A5=E4=B8=8D?=
=?UTF-8?q?=E5=8F=98=EF=BC=8C=E5=90=A6=E5=88=99=E4=BF=AE=E6=94=B9=E4=B8=BA?=
=?UTF-8?q?=E6=96=B0=E6=9C=88=E4=BB=BD=E7=9A=84=E6=9C=80=E5=90=8E=E4=B8=80?=
=?UTF-8?q?=E6=97=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/Qt5/imports/FluentUI/Controls/FluDatePicker.qml | 5 +++++
src/Qt6/imports/FluentUI/Controls/FluDatePicker.qml | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/src/Qt5/imports/FluentUI/Controls/FluDatePicker.qml b/src/Qt5/imports/FluentUI/Controls/FluDatePicker.qml
index 1ba43afa..b2f4e96d 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluDatePicker.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluDatePicker.qml
@@ -178,7 +178,12 @@ FluButton {
}
if(type === 1){
text_month.text = model
+ let day = list_view_3.model[list_view_3.currentIndex]
list_view_3.model = generateMonthDaysArray(list_view_1.model[list_view_1.currentIndex],list_view_2.model[list_view_2.currentIndex])
+ if(list_view_3.model.indexOf(day) === -1){
+ day = list_view_3.model[list_view_3.model.length - 1]
+ }
+ list_view_3.currentIndex = list_view_3.model.indexOf(day)
text_day.text = list_view_3.model[list_view_3.currentIndex]
}
diff --git a/src/Qt6/imports/FluentUI/Controls/FluDatePicker.qml b/src/Qt6/imports/FluentUI/Controls/FluDatePicker.qml
index 7afd1ca3..3c3a2ac5 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluDatePicker.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluDatePicker.qml
@@ -178,7 +178,12 @@ FluButton {
}
if(type === 1){
text_month.text = model
+ let day = list_view_3.model[list_view_3.currentIndex]
list_view_3.model = generateMonthDaysArray(list_view_1.model[list_view_1.currentIndex],list_view_2.model[list_view_2.currentIndex])
+ if(list_view_3.model.indexOf(day) === -1){
+ day = list_view_3.model[list_view_3.model.length - 1]
+ }
+ list_view_3.currentIndex = list_view_3.model.indexOf(day)
text_day.text = list_view_3.model[list_view_3.currentIndex]
}
From a787a733c41e51aad89eedc1179649fd721be176 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sun, 11 May 2025 22:27:48 +0800
Subject: [PATCH 06/22] =?UTF-8?q?refactor:=20=E9=83=A8=E5=88=86=E6=8E=A7?=
=?UTF-8?q?=E4=BB=B6=E7=94=A8enabled=E6=9B=BF=E4=BB=A3disabled=E8=BF=9B?=
=?UTF-8?q?=E8=A1=8C=E9=80=BB=E8=BE=91=E5=88=A4=E6=96=AD=EF=BC=8C=E6=8F=90?=
=?UTF-8?q?=E5=8D=87=E4=BD=BF=E7=94=A8=E5=8E=9F=E7=94=9Fenabled=E5=B1=9E?=
=?UTF-8?q?=E6=80=A7=E6=97=B6=E7=9A=84=E5=85=BC=E5=AE=B9=E6=80=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/Qt5/imports/FluentUI/Controls/FluComboBox.qml | 4 ++--
src/Qt5/imports/FluentUI/Controls/FluMenuBarItem.qml | 4 ++--
src/Qt5/imports/FluentUI/Controls/FluSpinBox.qml | 4 ++--
src/Qt5/imports/FluentUI/Controls/FluTextBoxBackground.qml | 2 +-
src/Qt6/imports/FluentUI/Controls/FluComboBox.qml | 4 ++--
src/Qt6/imports/FluentUI/Controls/FluMenuBarItem.qml | 4 ++--
src/Qt6/imports/FluentUI/Controls/FluSpinBox.qml | 4 ++--
src/Qt6/imports/FluentUI/Controls/FluTextBoxBackground.qml | 2 +-
8 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/Qt5/imports/FluentUI/Controls/FluComboBox.qml b/src/Qt5/imports/FluentUI/Controls/FluComboBox.qml
index 3000cc7c..1792f911 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluComboBox.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluComboBox.qml
@@ -55,7 +55,7 @@ T.ComboBox {
font:control.font
readOnly: control.down
color: {
- if(control.disabled) {
+ if(!control.enabled) {
return FluTheme.dark ? Qt.rgba(131/255,131/255,131/255,1) : Qt.rgba(160/255,160/255,160/255,1)
}
return FluTheme.dark ? Qt.rgba(255/255,255/255,255/255,1) : Qt.rgba(27/255,27/255,27/255,1)
@@ -97,7 +97,7 @@ T.ComboBox {
anchors.margins: -2
}
color:{
- if(disabled){
+ if(!enabled){
return disableColor
}
return hovered ? hoverColor :normalColor
diff --git a/src/Qt5/imports/FluentUI/Controls/FluMenuBarItem.qml b/src/Qt5/imports/FluentUI/Controls/FluMenuBarItem.qml
index e772314f..4d366fcf 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluMenuBarItem.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluMenuBarItem.qml
@@ -6,7 +6,7 @@ T.MenuBarItem {
property bool disabled: false
property color textColor: {
if(FluTheme.dark){
- if(disabled){
+ if(!enabled){
return Qt.rgba(131/255,131/255,131/255,1)
}
if(pressed){
@@ -14,7 +14,7 @@ T.MenuBarItem {
}
return Qt.rgba(1,1,1,1)
}else{
- if(disabled){
+ if(!enabled){
return Qt.rgba(160/255,160/255,160/255,1)
}
if(pressed){
diff --git a/src/Qt5/imports/FluentUI/Controls/FluSpinBox.qml b/src/Qt5/imports/FluentUI/Controls/FluSpinBox.qml
index 2f562e35..bd3ab1aa 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluSpinBox.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluSpinBox.qml
@@ -139,13 +139,13 @@ T.SpinBox {
radius: 4
border.width: 1
border.color: {
- if(contentItem.disabled){
+ if(!contentItem.enabled){
return FluTheme.dark ? Qt.rgba(73/255,73/255,73/255,1) : Qt.rgba(237/255,237/255,237/255,1)
}
return FluTheme.dark ? Qt.rgba(76/255,76/255,76/255,1) : Qt.rgba(240/255,240/255,240/255,1)
}
color: {
- if(contentItem.disabled){
+ if(!contentItem.enabled){
return FluTheme.dark ? Qt.rgba(59/255,59/255,59/255,1) : Qt.rgba(252/255,252/255,252/255,1)
}
if(contentItem.activeFocus){
diff --git a/src/Qt5/imports/FluentUI/Controls/FluTextBoxBackground.qml b/src/Qt5/imports/FluentUI/Controls/FluTextBoxBackground.qml
index ef82bd13..3467a621 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluTextBoxBackground.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluTextBoxBackground.qml
@@ -6,7 +6,7 @@ FluControlBackground{
property Item inputItem
id:control
color: {
- if(inputItem && inputItem.disabled){
+ if(inputItem && !inputItem.enabled){
return FluTheme.dark ? Qt.rgba(59/255,59/255,59/255,1) : Qt.rgba(252/255,252/255,252/255,1)
}
if(inputItem && inputItem.activeFocus){
diff --git a/src/Qt6/imports/FluentUI/Controls/FluComboBox.qml b/src/Qt6/imports/FluentUI/Controls/FluComboBox.qml
index 6dc161b1..6a8662c4 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluComboBox.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluComboBox.qml
@@ -55,7 +55,7 @@ T.ComboBox {
font:control.font
readOnly: control.down
color: {
- if(control.disabled) {
+ if(!control.enabled) {
return FluTheme.dark ? Qt.rgba(131/255,131/255,131/255,1) : Qt.rgba(160/255,160/255,160/255,1)
}
return FluTheme.dark ? Qt.rgba(255/255,255/255,255/255,1) : Qt.rgba(27/255,27/255,27/255,1)
@@ -97,7 +97,7 @@ T.ComboBox {
anchors.margins: -2
}
color:{
- if(disabled){
+ if(!enabled){
return disableColor
}
return hovered ? hoverColor :normalColor
diff --git a/src/Qt6/imports/FluentUI/Controls/FluMenuBarItem.qml b/src/Qt6/imports/FluentUI/Controls/FluMenuBarItem.qml
index 03e06cf0..9e0c6891 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluMenuBarItem.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluMenuBarItem.qml
@@ -7,7 +7,7 @@ T.MenuBarItem {
property bool disabled: false
property color textColor: {
if(FluTheme.dark){
- if(disabled){
+ if(!enabled){
return Qt.rgba(131/255,131/255,131/255,1)
}
if(pressed){
@@ -15,7 +15,7 @@ T.MenuBarItem {
}
return Qt.rgba(1,1,1,1)
}else{
- if(disabled){
+ if(!enabled){
return Qt.rgba(160/255,160/255,160/255,1)
}
if(pressed){
diff --git a/src/Qt6/imports/FluentUI/Controls/FluSpinBox.qml b/src/Qt6/imports/FluentUI/Controls/FluSpinBox.qml
index 7dcc6294..335d73eb 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluSpinBox.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluSpinBox.qml
@@ -140,13 +140,13 @@ T.SpinBox {
radius: 4
border.width: 1
border.color: {
- if(contentItem.disabled){
+ if(!contentItem.enabled){
return FluTheme.dark ? Qt.rgba(73/255,73/255,73/255,1) : Qt.rgba(237/255,237/255,237/255,1)
}
return FluTheme.dark ? Qt.rgba(76/255,76/255,76/255,1) : Qt.rgba(240/255,240/255,240/255,1)
}
color: {
- if(contentItem.disabled){
+ if(!contentItem.enabled){
return FluTheme.dark ? Qt.rgba(59/255,59/255,59/255,1) : Qt.rgba(252/255,252/255,252/255,1)
}
if(contentItem.activeFocus){
diff --git a/src/Qt6/imports/FluentUI/Controls/FluTextBoxBackground.qml b/src/Qt6/imports/FluentUI/Controls/FluTextBoxBackground.qml
index a57cff5a..44a4604e 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluTextBoxBackground.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluTextBoxBackground.qml
@@ -6,7 +6,7 @@ FluControlBackground{
property Item inputItem
id:control
color: {
- if(inputItem && inputItem.disabled){
+ if(inputItem && !inputItem.enabled){
return FluTheme.dark ? Qt.rgba(59/255,59/255,59/255,1) : Qt.rgba(252/255,252/255,252/255,1)
}
if(inputItem && inputItem.activeFocus){
From f2c2beb90ac9d2ac1ec1cd919728a4d2980b4936 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sun, 11 May 2025 23:13:36 +0800
Subject: [PATCH 07/22] =?UTF-8?q?feat:=20FluTableView=E5=A2=9E=E5=8A=A0sta?=
=?UTF-8?q?rtRowIndex=E5=B1=9E=E6=80=A7=EF=BC=8C=E4=BB=A5=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E5=88=86=E9=A1=B5=E6=95=B0=E6=8D=AE=E5=9C=BA=E6=99=AF?=
=?UTF-8?q?=E4=B8=8B=E6=AD=A3=E7=A1=AE=E8=AE=A1=E7=AE=97=E8=A1=8C=E5=BA=8F?=
=?UTF-8?q?=E5=8F=B7=EF=BC=8C=E9=81=BF=E5=85=8D=E4=BB=85=E4=BE=9D=E8=B5=96?=
=?UTF-8?q?=E8=A1=A8=E6=A0=BC=E6=95=B0=E6=8D=AE=E9=87=8F=E8=BF=9B=E8=A1=8C?=
=?UTF-8?q?=E7=BC=96=E5=8F=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/example_en_US.ts | 16 ++++++++--------
example/example_zh_CN.ts | 16 ++++++++--------
example/qml/page/T_TableView.qml | 1 +
.../imports/FluentUI/Controls/FluTableView.qml | 12 +++++++++++-
src/Qt5/imports/FluentUI/plugins.qmltypes | 7 ++++---
.../imports/FluentUI/Controls/FluTableView.qml | 12 +++++++++++-
6 files changed, 43 insertions(+), 21 deletions(-)
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 802e0585..a4886c29 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -2368,7 +2368,7 @@ Some contents...
-
+
Name
@@ -2418,37 +2418,37 @@ Some contents...
-
+
Avatar
-
+
Address
-
+
Nickname
-
+
Long String
-
+
Options
-
+
<Previous
-
+
Next>
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 00981b6d..5d1d3c5d 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -2557,7 +2557,7 @@ Some contents...
-
+
Name
名称
@@ -2597,37 +2597,37 @@ Some contents...
焦点未获取:请点击表格中的任意一项,作为插入的靶点!
-
+
Avatar
头像
-
+
Address
地址
-
+
Nickname
昵称
-
+
Long String
长字符串
-
+
Options
操作
-
+
<Previous
<上一页
-
+
Next>
下一页>
diff --git a/example/qml/page/T_TableView.qml b/example/qml/page/T_TableView.qml
index 242fdb4b..e9681387 100644
--- a/example/qml/page/T_TableView.qml
+++ b/example/qml/page/T_TableView.qml
@@ -493,6 +493,7 @@ FluContentPage{
onRowsChanged: {
root.checkBoxChanged()
}
+ startRowIndex: (gagination.pageCurrent - 1) * gagination.__itemPerPage + 1
columnSource:[
{
title: table_view.customItem(com_column_checbox,{checked:true}),
diff --git a/src/Qt5/imports/FluentUI/Controls/FluTableView.qml b/src/Qt5/imports/FluentUI/Controls/FluTableView.qml
index 6fb39b4f..c1beabbe 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluTableView.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluTableView.qml
@@ -17,6 +17,7 @@ Rectangle {
property color borderColor: FluTheme.dark ? Qt.rgba(37/255,37/255,37/255,1) : Qt.rgba(228/255,228/255,228/255,1)
property bool horizonalHeaderVisible: true
property bool verticalHeaderVisible: true
+ property int startRowIndex: 1
property color selectedBorderColor: FluTheme.primaryColor
property color selectedColor: FluTools.withOpacity(FluTheme.primaryColor,0.3)
property alias view: table_view
@@ -841,7 +842,13 @@ Rectangle {
Connections{
target: table_view
function onRowsChanged(){
- header_row_model.rows = Array.from({length: table_view.rows}, (_, i) => ({rowIndex:i+1}))
+ header_vertical.updateRowIndex()
+ }
+ }
+ Connections {
+ target: control
+ function onStartRowIndexChanged(){
+ header_vertical.updateRowIndex()
}
}
Timer{
@@ -851,6 +858,9 @@ Rectangle {
header_vertical.forceLayout()
}
}
+ function updateRowIndex(){
+ header_row_model.rows = Array.from({length: table_view.rows}, (_, i) => ({rowIndex:i+control.startRowIndex}))
+ }
}
Item{
anchors{
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index 17e31c99..ffeabf87 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -2778,7 +2778,7 @@ Module {
}
Property {
name: "layoutMacosButtons"
- type: "FluLoader_QMLTYPE_11"
+ type: "FluLoader_QMLTYPE_12"
isReadonly: true
isPointer: true
}
@@ -3486,8 +3486,8 @@ Module {
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
- Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_37"; isPointer: true }
- Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_37"; isPointer: true }
+ Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_49"; isPointer: true }
+ Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_49"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
@@ -4092,6 +4092,7 @@ Module {
Property { name: "borderColor"; type: "QColor" }
Property { name: "horizonalHeaderVisible"; type: "bool" }
Property { name: "verticalHeaderVisible"; type: "bool" }
+ Property { name: "startRowIndex"; type: "int" }
Property { name: "selectedBorderColor"; type: "QColor" }
Property { name: "selectedColor"; type: "QColor" }
Property { name: "columnWidthProvider"; type: "QVariant" }
diff --git a/src/Qt6/imports/FluentUI/Controls/FluTableView.qml b/src/Qt6/imports/FluentUI/Controls/FluTableView.qml
index 100be1d9..ebb50392 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluTableView.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluTableView.qml
@@ -17,6 +17,7 @@ Rectangle {
property color borderColor: FluTheme.dark ? Qt.rgba(37/255,37/255,37/255,1) : Qt.rgba(228/255,228/255,228/255,1)
property bool horizonalHeaderVisible: true
property bool verticalHeaderVisible: true
+ property int startRowIndex: 1
property color selectedBorderColor: FluTheme.primaryColor
property color selectedColor: FluTools.withOpacity(FluTheme.primaryColor,0.3)
property alias view: table_view
@@ -841,7 +842,13 @@ Rectangle {
Connections{
target: table_view
function onRowsChanged(){
- header_row_model.rows = Array.from({length: table_view.rows}, (_, i) => ({rowIndex:i+1}))
+ header_vertical.updateRowIndex()
+ }
+ }
+ Connections {
+ target: control
+ function onStartRowIndexChanged(){
+ header_vertical.updateRowIndex()
}
}
Timer{
@@ -851,6 +858,9 @@ Rectangle {
header_vertical.forceLayout()
}
}
+ function updateRowIndex(){
+ header_row_model.rows = Array.from({length: table_view.rows}, (_, i) => ({rowIndex:i+control.startRowIndex}))
+ }
}
Item{
anchors{
From 97e88dbd6f96074fd5085064bca2b29e1b24bfaa Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sat, 17 May 2025 08:25:17 +0800
Subject: [PATCH 08/22] =?UTF-8?q?feat:=20FluTour=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?=E6=8C=87=E7=A4=BA=E5=99=A8=E5=92=8C=E5=8A=A8=E7=94=BB=E6=95=88?=
=?UTF-8?q?=E6=9E=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/example_en_US.ts | 23 +-
example/example_zh_CN.ts | 29 ++-
example/qml/page/T_Tour.qml | 30 ++-
src/Qt5/imports/FluentUI/Controls/FluTour.qml | 229 +++++++++++++++---
src/Qt5/imports/FluentUI/plugins.qmltypes | 2 +
src/Qt6/imports/FluentUI/Controls/FluTour.qml | 229 +++++++++++++++---
6 files changed, 449 insertions(+), 93 deletions(-)
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index a4886c29..15e18788 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -2737,49 +2737,60 @@ Some contents...
T_Tour
+
Upload File
+
Put your files here.
-
-
+
+
+
Save
+
Save your changes.
+
Other Actions
+
Click to see other actions.
-
+
Begin Tour
-
-
+
+ Begin Tour with custom indicator
+
+
+
+
+
Upload
-
+
More
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 5d1d3c5d..f2be137d 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -552,7 +552,7 @@
Tour
- 游览
+ 漫游式引导
@@ -2938,56 +2938,67 @@ Some contents...
+
Upload File
上传文件
+
Put your files here.
把你的文件放在这里
-
-
+
+
+
Save
保存
+
Save your changes.
保存更改
+
Other Actions
其他操作
+
Click to see other actions.
点击查看其他操作
-
+
Begin Tour
- 开始游览
+ 开始导览
+
+
+
+ Begin Tour with custom indicator
+ 以自定义指示器开始导览
-
-
+
+
Upload
上传
-
+
More
更多
Tour
- 游览
+ 漫游式引导
diff --git a/example/qml/page/T_Tour.qml b/example/qml/page/T_Tour.qml
index e87e5827..f7ce16df 100644
--- a/example/qml/page/T_Tour.qml
+++ b/example/qml/page/T_Tour.qml
@@ -17,20 +17,42 @@ FluScrollablePage{
{title:qsTr("Other Actions"),description: qsTr("Click to see other actions."),target:()=>btn_more}
]
}
+ FluTour{
+ id:tour_custom_indicator
+ steps:[
+ {title:qsTr("Upload File"),description: qsTr("Put your files here."),target:()=>btn_upload},
+ {title:qsTr("Save"),description: qsTr("Save your changes."),target:()=>btn_save},
+ {title:qsTr("Other Actions"),description: qsTr("Click to see other actions."),target:()=>btn_more}
+ ]
+ indicator: Component{
+ FluText {
+ text: "%1 / %2".arg(current + 1).arg(total)
+ }
+ }
+ }
FluFrame{
Layout.fillWidth: true
Layout.preferredHeight: 130
padding: 10
- FluFilledButton{
+ Row{
anchors{
top: parent.top
topMargin: 14
}
- text: qsTr("Begin Tour")
- onClicked: {
- tour.open()
+ spacing: 20
+ FluFilledButton{
+ text: qsTr("Begin Tour")
+ onClicked: {
+ tour.open()
+ }
+ }
+ FluFilledButton{
+ text: qsTr("Begin Tour with custom indicator")
+ onClicked: {
+ tour_custom_indicator.open()
+ }
}
}
diff --git a/src/Qt5/imports/FluentUI/Controls/FluTour.qml b/src/Qt5/imports/FluentUI/Controls/FluTour.qml
index d8ff7027..b73b4853 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluTour.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluTour.qml
@@ -7,8 +7,10 @@ import FluentUI 1.0
Popup{
property var steps : []
property int targetMargins: 5
+ property int targetRadius: 2
property Component nextButton: com_next_button
property Component prevButton: com_prev_button
+ property Component indicator: com_indicator
property int index : 0
property string finishText: qsTr("Finish")
property string nextText: qsTr("Next")
@@ -22,12 +24,12 @@ Popup{
contentItem: Item{}
onVisibleChanged: {
if(visible){
+ d.animationEnabled = false
control.index = 0
+ d.updatePos()
+ d.animationEnabled = true
}
}
- onIndexChanged: {
- canvas.requestPaint()
- }
Component{
id: com_next_button
FluFilledButton{
@@ -50,10 +52,32 @@ Popup{
}
}
}
+ Component{
+ id: com_indicator
+ Row{
+ spacing: 10
+ Repeater{
+ model: total
+ delegate: Rectangle{
+ width: 8
+ height: 8
+ radius: 4
+ scale: current === index ? 1.2 : 1
+ color:{
+ if(current === index){
+ return FluTheme.primaryColor
+ }
+ return FluTheme.dark ? Qt.rgba(99/255,99/255,99/255,1) : Qt.rgba(214/255,214/255,214/255,1)
+ }
+ }
+ }
+ }
+ }
Item{
id:d
property var window: Window.window
property point pos: Qt.point(0,0)
+ property bool animationEnabled: true
property var step: steps[index]
property var target: {
if(steps[index]){
@@ -73,15 +97,22 @@ Popup{
}
return control.width
}
+ function updatePos(){
+ if(d.target && d.window){
+ d.pos = d.target.mapToGlobal(0,0)
+ d.pos = Qt.point(d.pos.x-d.window.x,d.pos.y-d.window.y)
+ }
+ }
+ onTargetChanged: {
+ updatePos()
+ }
}
Connections{
target: d.window
function onWidthChanged(){
- canvas.requestPaint()
timer_delay.restart()
}
function onHeightChanged(){
- canvas.requestPaint()
timer_delay.restart()
}
}
@@ -89,39 +120,128 @@ Popup{
id: timer_delay
interval: 200
onTriggered: {
- canvas.requestPaint()
+ d.updatePos()
+ }
+ }
+ Item{
+ id: targetRect
+ x: d.pos.x - control.targetMargins
+ y: d.pos.y - control.targetMargins
+ width: d.target ? d.target.width + control.targetMargins * 2 : 0
+ height: d.target ? d.target.height + control.targetMargins * 2 : 0
+ Behavior on x {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on y {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on width {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on height {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
}
}
- Canvas{
- id: canvas
+ Shape {
anchors.fill: parent
- onPaint: {
- d.pos = d.target.mapToGlobal(0,0)
- d.pos = Qt.point(d.pos.x-d.window.x,d.pos.y-d.window.y)
- var ctx = canvas.getContext("2d")
- ctx.clearRect(0, 0, canvasSize.width, canvasSize.height)
- ctx.save()
- ctx.fillStyle = "#88000000"
- ctx.fillRect(0, 0, canvasSize.width, canvasSize.height)
- ctx.globalCompositeOperation = 'destination-out'
- ctx.fillStyle = 'black'
- var rect = Qt.rect(d.pos.x-control.targetMargins,d.pos.y-control.targetMargins, d.target.width+control.targetMargins*2, d.target.height+control.targetMargins*2)
- drawRoundedRect(rect,2,ctx)
- ctx.restore()
- }
- function drawRoundedRect(rect, r, ctx) {
- ctx.beginPath();
- ctx.moveTo(rect.x + r, rect.y);
- ctx.lineTo(rect.x + rect.width - r, rect.y);
- ctx.arcTo(rect.x + rect.width, rect.y, rect.x + rect.width, rect.y + r, r);
- ctx.lineTo(rect.x + rect.width, rect.y + rect.height - r);
- ctx.arcTo(rect.x + rect.width, rect.y + rect.height, rect.x + rect.width - r, rect.y + rect.height, r);
- ctx.lineTo(rect.x + r, rect.y + rect.height);
- ctx.arcTo(rect.x, rect.y + rect.height, rect.x, rect.y + rect.height - r, r);
- ctx.lineTo(rect.x, rect.y + r);
- ctx.arcTo(rect.x, rect.y, rect.x + r, rect.y, r);
- ctx.closePath();
- ctx.fill()
+ layer.enabled: true
+ layer.samples: 4
+ layer.smooth: true
+ ShapePath {
+ fillColor: "#88000000"
+ strokeWidth: 0
+ strokeColor: "transparent"
+
+ // draw background
+ PathMove {
+ x: 0
+ y: 0
+ }
+ PathLine {
+ x: control.width
+ y: 0
+ }
+ PathLine {
+ x: control.width
+ y: control.height
+ }
+ PathLine {
+ x: 0
+ y: control.height
+ }
+ PathLine {
+ x: 0
+ y: 0
+ }
+
+ // draw highlight
+ PathMove {
+ x: targetRect.x + control.targetRadius
+ y: targetRect.y
+ }
+ PathLine {
+ x: targetRect.x + targetRect.width - control.targetRadius
+ y: targetRect.y
+ }
+ PathArc {
+ x: targetRect.x + targetRect.width
+ y: targetRect.y + control.targetRadius
+ radiusX: control.targetRadius
+ radiusY: control.targetRadius
+ useLargeArc: false
+ direction: PathArc.Clockwise
+ }
+
+ PathLine {
+ x: targetRect.x + targetRect.width
+ y: targetRect.y + targetRect.height - control.targetRadius
+ }
+ PathArc {
+ x: targetRect.x + targetRect.width - control.targetRadius
+ y: targetRect.y + targetRect.height
+ radiusX: control.targetRadius
+ radiusY: control.targetRadius
+ useLargeArc: false
+ direction: PathArc.Clockwise
+ }
+
+ PathLine {
+ x: targetRect.x + control.targetRadius
+ y: targetRect.y + targetRect.height
+ }
+ PathArc {
+ x: targetRect.x
+ y: targetRect.y + targetRect.height - control.targetRadius
+ radiusX: control.targetRadius
+ radiusY: control.targetRadius
+ useLargeArc: false
+ direction: PathArc.Clockwise
+ }
+
+ PathLine {
+ x: targetRect.x
+ y: targetRect.y + control.targetRadius
+ }
+ PathArc {
+ x: targetRect.x + control.targetRadius
+ y: targetRect.y
+ radiusX: control.targetRadius
+ radiusY: control.targetRadius
+ useLargeArc: false
+ direction: PathArc.Clockwise
+ }
}
}
FluFrame{
@@ -151,6 +271,18 @@ Popup{
return 0
}
border.width: 0
+ Behavior on x {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on y {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
FluShadow{
radius: 5
}
@@ -193,10 +325,21 @@ Popup{
leftMargin: 15
}
}
+ FluLoader{
+ readonly property int total: steps.length
+ readonly property int current: control.index
+ sourceComponent: control.indicator
+ anchors{
+ bottom: parent.bottom
+ left: parent.left
+ bottomMargin: 15
+ leftMargin: 15
+ }
+ }
FluLoader{
id: loader_next
property bool isEnd: control.index === steps.length-1
- sourceComponent: com_next_button
+ sourceComponent: control.nextButton
anchors{
top: text_desc.bottom
topMargin: 10
@@ -207,7 +350,7 @@ Popup{
FluLoader{
id: loader_prev
visible: control.index !== 0
- sourceComponent: com_prev_button
+ sourceComponent: control.prevButton
anchors{
right: loader_next.left
top: loader_next.top
@@ -246,5 +389,17 @@ Popup{
}
return 0
}
+ Behavior on x {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on y {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
}
}
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index ffeabf87..17c84d82 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -4328,8 +4328,10 @@ Module {
defaultProperty: "contentData"
Property { name: "steps"; type: "QVariant" }
Property { name: "targetMargins"; type: "int" }
+ Property { name: "targetRadius"; type: "int" }
Property { name: "nextButton"; type: "QQmlComponent"; isPointer: true }
Property { name: "prevButton"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "indicator"; type: "QQmlComponent"; isPointer: true }
Property { name: "index"; type: "int" }
Property { name: "finishText"; type: "string" }
Property { name: "nextText"; type: "string" }
diff --git a/src/Qt6/imports/FluentUI/Controls/FluTour.qml b/src/Qt6/imports/FluentUI/Controls/FluTour.qml
index fea6368b..5049c9cc 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluTour.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluTour.qml
@@ -7,8 +7,10 @@ import FluentUI
Popup{
property var steps : []
property int targetMargins: 5
+ property int targetRadius: 2
property Component nextButton: com_next_button
property Component prevButton: com_prev_button
+ property Component indicator: com_indicator
property int index : 0
property string finishText: qsTr("Finish")
property string nextText: qsTr("Next")
@@ -22,12 +24,12 @@ Popup{
contentItem: Item{}
onVisibleChanged: {
if(visible){
+ d.animationEnabled = false
control.index = 0
+ d.updatePos()
+ d.animationEnabled = true
}
}
- onIndexChanged: {
- canvas.requestPaint()
- }
Component{
id: com_next_button
FluFilledButton{
@@ -50,10 +52,32 @@ Popup{
}
}
}
+ Component{
+ id: com_indicator
+ Row{
+ spacing: 10
+ Repeater{
+ model: total
+ delegate: Rectangle{
+ width: 8
+ height: 8
+ radius: 4
+ scale: current === index ? 1.2 : 1
+ color:{
+ if(current === index){
+ return FluTheme.primaryColor
+ }
+ return FluTheme.dark ? Qt.rgba(99/255,99/255,99/255,1) : Qt.rgba(214/255,214/255,214/255,1)
+ }
+ }
+ }
+ }
+ }
Item{
id:d
property var window: Window.window
property point pos: Qt.point(0,0)
+ property bool animationEnabled: true
property var step: steps[index]
property var target: {
if(steps[index]){
@@ -73,15 +97,22 @@ Popup{
}
return control.width
}
+ function updatePos(){
+ if(d.target && d.window){
+ d.pos = d.target.mapToGlobal(0,0)
+ d.pos = Qt.point(d.pos.x-d.window.x,d.pos.y-d.window.y)
+ }
+ }
+ onTargetChanged: {
+ updatePos()
+ }
}
Connections{
target: d.window
function onWidthChanged(){
- canvas.requestPaint()
timer_delay.restart()
}
function onHeightChanged(){
- canvas.requestPaint()
timer_delay.restart()
}
}
@@ -89,39 +120,128 @@ Popup{
id: timer_delay
interval: 200
onTriggered: {
- canvas.requestPaint()
+ d.updatePos()
+ }
+ }
+ Item{
+ id: targetRect
+ x: d.pos.x - control.targetMargins
+ y: d.pos.y - control.targetMargins
+ width: d.target ? d.target.width + control.targetMargins * 2 : 0
+ height: d.target ? d.target.height + control.targetMargins * 2 : 0
+ Behavior on x {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on y {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on width {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on height {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
}
}
- Canvas{
- id: canvas
+ Shape {
anchors.fill: parent
- onPaint: {
- d.pos = d.target.mapToGlobal(0,0)
- d.pos = Qt.point(d.pos.x-d.window.x,d.pos.y-d.window.y)
- var ctx = canvas.getContext("2d")
- ctx.clearRect(0, 0, canvasSize.width, canvasSize.height)
- ctx.save()
- ctx.fillStyle = "#88000000"
- ctx.fillRect(0, 0, canvasSize.width, canvasSize.height)
- ctx.globalCompositeOperation = 'destination-out'
- ctx.fillStyle = 'black'
- var rect = Qt.rect(d.pos.x-control.targetMargins,d.pos.y-control.targetMargins, d.target.width+control.targetMargins*2, d.target.height+control.targetMargins*2)
- drawRoundedRect(rect,2,ctx)
- ctx.restore()
- }
- function drawRoundedRect(rect, r, ctx) {
- ctx.beginPath();
- ctx.moveTo(rect.x + r, rect.y);
- ctx.lineTo(rect.x + rect.width - r, rect.y);
- ctx.arcTo(rect.x + rect.width, rect.y, rect.x + rect.width, rect.y + r, r);
- ctx.lineTo(rect.x + rect.width, rect.y + rect.height - r);
- ctx.arcTo(rect.x + rect.width, rect.y + rect.height, rect.x + rect.width - r, rect.y + rect.height, r);
- ctx.lineTo(rect.x + r, rect.y + rect.height);
- ctx.arcTo(rect.x, rect.y + rect.height, rect.x, rect.y + rect.height - r, r);
- ctx.lineTo(rect.x, rect.y + r);
- ctx.arcTo(rect.x, rect.y, rect.x + r, rect.y, r);
- ctx.closePath();
- ctx.fill()
+ layer.enabled: true
+ layer.samples: 4
+ layer.smooth: true
+ ShapePath {
+ fillColor: "#88000000"
+ strokeWidth: 0
+ strokeColor: "transparent"
+
+ // draw background
+ PathMove {
+ x: 0
+ y: 0
+ }
+ PathLine {
+ x: control.width
+ y: 0
+ }
+ PathLine {
+ x: control.width
+ y: control.height
+ }
+ PathLine {
+ x: 0
+ y: control.height
+ }
+ PathLine {
+ x: 0
+ y: 0
+ }
+
+ // draw highlight
+ PathMove {
+ x: targetRect.x + control.targetRadius
+ y: targetRect.y
+ }
+ PathLine {
+ x: targetRect.x + targetRect.width - control.targetRadius
+ y: targetRect.y
+ }
+ PathArc {
+ x: targetRect.x + targetRect.width
+ y: targetRect.y + control.targetRadius
+ radiusX: control.targetRadius
+ radiusY: control.targetRadius
+ useLargeArc: false
+ direction: PathArc.Clockwise
+ }
+
+ PathLine {
+ x: targetRect.x + targetRect.width
+ y: targetRect.y + targetRect.height - control.targetRadius
+ }
+ PathArc {
+ x: targetRect.x + targetRect.width - control.targetRadius
+ y: targetRect.y + targetRect.height
+ radiusX: control.targetRadius
+ radiusY: control.targetRadius
+ useLargeArc: false
+ direction: PathArc.Clockwise
+ }
+
+ PathLine {
+ x: targetRect.x + control.targetRadius
+ y: targetRect.y + targetRect.height
+ }
+ PathArc {
+ x: targetRect.x
+ y: targetRect.y + targetRect.height - control.targetRadius
+ radiusX: control.targetRadius
+ radiusY: control.targetRadius
+ useLargeArc: false
+ direction: PathArc.Clockwise
+ }
+
+ PathLine {
+ x: targetRect.x
+ y: targetRect.y + control.targetRadius
+ }
+ PathArc {
+ x: targetRect.x + control.targetRadius
+ y: targetRect.y
+ radiusX: control.targetRadius
+ radiusY: control.targetRadius
+ useLargeArc: false
+ direction: PathArc.Clockwise
+ }
}
}
FluFrame{
@@ -151,6 +271,18 @@ Popup{
return 0
}
border.width: 0
+ Behavior on x {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on y {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
FluShadow{
radius: 5
}
@@ -193,10 +325,21 @@ Popup{
leftMargin: 15
}
}
+ FluLoader{
+ readonly property int total: steps.length
+ readonly property int current: control.index
+ sourceComponent: control.indicator
+ anchors{
+ bottom: parent.bottom
+ left: parent.left
+ bottomMargin: 15
+ leftMargin: 15
+ }
+ }
FluLoader{
id: loader_next
property bool isEnd: control.index === steps.length-1
- sourceComponent: com_next_button
+ sourceComponent: control.nextButton
anchors{
top: text_desc.bottom
topMargin: 10
@@ -207,7 +350,7 @@ Popup{
FluLoader{
id: loader_prev
visible: control.index !== 0
- sourceComponent: com_prev_button
+ sourceComponent: control.prevButton
anchors{
right: loader_next.left
top: loader_next.top
@@ -246,5 +389,17 @@ Popup{
}
return 0
}
+ Behavior on x {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
+ Behavior on y {
+ enabled: d.animationEnabled && FluTheme.animationEnabled
+ NumberAnimation {
+ duration: 167
+ }
+ }
}
}
From ce4fb060845729b8ff34fc8f400948f57851313a Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sat, 17 May 2025 09:24:44 +0800
Subject: [PATCH 09/22] =?UTF-8?q?feat:=20FluRectangle=E6=94=AF=E6=8C=81?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BE=B9=E6=A1=86=E6=A0=B7=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/example_en_US.ts | 6 +-
example/example_zh_CN.ts | 6 +-
example/qml/page/T_Rectangle.qml | 122 +++++++++++-----------
example/qml/window/CrashWindow.qml | 3 +
src/FluRectangle.cpp | 16 ++-
src/FluRectangle.h | 2 +
src/Qt5/imports/FluentUI/plugins.qmltypes | 2 +
7 files changed, 88 insertions(+), 69 deletions(-)
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 15e18788..d3ae65e0 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -70,17 +70,17 @@
-
+
We apologize for the inconvenience caused by an unexpected error
-
+
Report Logs
-
+
Restart Program
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index f2be137d..8e55a866 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -70,17 +70,17 @@
友情提示
-
+
We apologize for the inconvenience caused by an unexpected error
对于意外错误给您带来的不便,我们深表歉意
-
+
Report Logs
上报日志
-
+
Restart Program
重启程序
diff --git a/example/qml/page/T_Rectangle.qml b/example/qml/page/T_Rectangle.qml
index 08a016ca..12cd429b 100644
--- a/example/qml/page/T_Rectangle.qml
+++ b/example/qml/page/T_Rectangle.qml
@@ -11,69 +11,71 @@ FluScrollablePage{
FluFrame{
Layout.fillWidth: true
- Layout.preferredHeight: 80
padding: 10
- Column{
+ Flow{
+ width: parent.width
spacing: 15
- anchors{
- left: parent.left
- verticalCenter: parent.verticalCenter
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#0078d4"
+ radius:[0,0,0,0]
}
- RowLayout{
- Layout.topMargin: 20
- FluRectangle{
- width: 50
- height: 50
- color:"#0078d4"
- radius:[0,0,0,0]
- }
- FluRectangle{
- width: 50
- height: 50
- color:"#744da9"
- radius:[15,15,15,15]
- }
- FluRectangle{
- width: 50
- height: 50
- color:"#ffeb3b"
- radius:[15,0,0,0]
- }
- FluRectangle{
- width: 50
- height: 50
- color:"#f7630c"
- radius:[0,15,0,0]
- }
- FluRectangle{
- width: 50
- height: 50
- color:"#e71123"
- radius:[0,0,15,0]
- }
- FluRectangle{
- width: 50
- height: 50
- color:"#b4009e"
- radius:[0,0,0,15]
- }
- FluRectangle{
- width: 50
- height: 50
- color:"#a8d5ba"
- radius:[15,15,15,15]
- borderWidth: 3
- borderColor: "#5b8a72"
- }
- FluRectangle{
- width: 50
- height: 50
- color:"#dbe2ef"
- radius:[15,0,0,0]
- borderWidth: 2
- borderColor: "#3f72af"
- }
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#744da9"
+ radius:[15,15,15,15]
+ }
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#ffeb3b"
+ radius:[15,0,0,0]
+ }
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#f7630c"
+ radius:[0,15,0,0]
+ }
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#e71123"
+ radius:[0,0,15,0]
+ }
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#b4009e"
+ radius:[0,0,0,15]
+ }
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#a8d5ba"
+ radius:[15,15,15,15]
+ borderWidth: 3
+ borderColor: "#5b8a72"
+ }
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#dbe2ef"
+ radius:[15,0,0,0]
+ borderWidth: 2
+ borderColor: "#3f72af"
+ }
+ FluRectangle{
+ width: 50
+ height: 50
+ color:"#dbe2ef"
+ borderWidth: 2
+ borderColor: "#3f72af"
+ borderStyle: Qt.DashLine
+ dashPattern: [4,2]
}
}
}
@@ -84,6 +86,8 @@ FluScrollablePage{
radius: [25,25,25,25]
borderWidth: 2
borderColor: "#000000"
+ borderStyle: Qt.DashLine
+ dashPattern: [4,2]
width: 50
height: 50
}'
diff --git a/example/qml/window/CrashWindow.qml b/example/qml/window/CrashWindow.qml
index b70fa0d5..4451816b 100644
--- a/example/qml/window/CrashWindow.qml
+++ b/example/qml/window/CrashWindow.qml
@@ -19,6 +19,9 @@ FluWindow {
Component.onCompleted: {
window.stayTop = true
}
+ Component.onDestruction: {
+ FluRouter.exit()
+ }
onInitArgument:
(argument)=>{
diff --git a/src/FluRectangle.cpp b/src/FluRectangle.cpp
index fdd69d5f..f682eae1 100644
--- a/src/FluRectangle.cpp
+++ b/src/FluRectangle.cpp
@@ -6,10 +6,14 @@ FluRectangle::FluRectangle(QQuickItem *parent) : QQuickPaintedItem(parent) {
radius({0, 0, 0, 0});
borderWidth(0);
borderColor(Qt::black);
+ borderStyle(Qt::SolidLine);
+ dashPattern({});
connect(this, &FluRectangle::colorChanged, this, [=] { update(); });
connect(this, &FluRectangle::radiusChanged, this, [=] { update(); });
connect(this, &FluRectangle::borderWidthChanged, this, [=] { update(); });
connect(this, &FluRectangle::borderColorChanged, this, [=] { update(); });
+ connect(this, &FluRectangle::borderStyleChanged, this, [=] { update(); });
+ connect(this, &FluRectangle::dashPatternChanged, this, [=] { update(); });
}
bool FluRectangle::borderValid() const {
@@ -21,8 +25,8 @@ void FluRectangle::paint(QPainter *painter) {
painter->setRenderHint(QPainter::Antialiasing);
QRectF rect = boundingRect();
- bool valid = borderValid();
- if (valid) {
+ bool drawBorder = borderValid();
+ if (drawBorder) {
// 绘制边框时画笔的宽度从路径向两侧扩充
// 因此实际绘制的矩形应向内侧收缩边框宽度的一半,避免边框裁剪导致不完整
qreal halfBorderWidth = _borderWidth / 2.0;
@@ -54,8 +58,12 @@ void FluRectangle::paint(QPainter *painter) {
painter->fillPath(path, _color);
// 绘制边框
- if (valid) {
- painter->strokePath(path, QPen(_borderColor, _borderWidth));
+ if (drawBorder) {
+ QPen pen(_borderColor, _borderWidth, _borderStyle);
+ if (_borderStyle == Qt::DashLine || _borderStyle == Qt::CustomDashLine) {
+ pen.setDashPattern(_dashPattern);
+ }
+ painter->strokePath(path, pen);
}
painter->restore();
diff --git a/src/FluRectangle.h b/src/FluRectangle.h
index 571af4f6..53556cc1 100644
--- a/src/FluRectangle.h
+++ b/src/FluRectangle.h
@@ -14,6 +14,8 @@ class FluRectangle : public QQuickPaintedItem {
Q_PROPERTY_AUTO(QList, radius)
Q_PROPERTY_AUTO(qreal, borderWidth)
Q_PROPERTY_AUTO(QColor, borderColor)
+ Q_PROPERTY_AUTO(Qt::PenStyle, borderStyle)
+ Q_PROPERTY_AUTO(QVector, dashPattern)
QML_NAMED_ELEMENT(FluRectangle)
public:
explicit FluRectangle(QQuickItem *parent = nullptr);
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index 17c84d82..5790dc12 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -233,6 +233,8 @@ Module {
Property { name: "radius"; type: "QList" }
Property { name: "borderWidth"; type: "double" }
Property { name: "borderColor"; type: "QColor" }
+ Property { name: "borderStyle"; type: "Qt::PenStyle" }
+ Property { name: "dashPattern"; type: "QVector" }
}
Component {
name: "FluSheetType"
From f8b7475261007b5c5bfa81e8e606f5c6bed50a39 Mon Sep 17 00:00:00 2001
From: "ZHUZICHU\\zhuzi"
Date: Wed, 28 May 2025 17:35:52 +0800
Subject: [PATCH 10/22] fix bug
---
example/example_en_US.ts | 55 ++++++++++++++-----------------
example/example_zh_CN.ts | 55 ++++++++++++++-----------------
example/qml/window/MainWindow.qml | 2 ++
src/FluFrameless.cpp | 3 ++
4 files changed, 55 insertions(+), 60 deletions(-)
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 390f78c6..01b97f79 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -612,104 +612,104 @@
MainWindow
-
-
+
+
Quit
-
+
Are you sure you want to exit the program?
-
+
Minimize
-
+
Friendly Reminder
-
+
FluentUI is hidden from the tray, click on the tray to activate the window again
-
-
+
+
Cancel
-
+
Open in Separate Window
-
+
Click Time
-
+
Search
-
+
Finish
-
+
Next
-
+
Previous
-
+
Dark Mode
-
+
Here you can switch to night mode.
-
+
Hide Easter eggs
-
+
Try a few more clicks!!
-
+
Upgrade Tips
-
+
FluentUI is currently up to date
-
+
-- The current app version
-
+
Now go and download the new version?
@@ -718,17 +718,17 @@ Updated content:
-
+
OK
-
+
The current version is already the latest
-
+
The network is abnormal
@@ -2567,11 +2567,6 @@ Some contents...
window effect
-
-
-
-
-
T_TimePicker
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 6796d1c0..3cead65e 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -616,104 +616,104 @@
MainWindow
-
+
Dark Mode
夜间模式
-
-
+
+
Quit
退出
-
+
Are you sure you want to exit the program?
您确定要退出程序吗
-
+
Minimize
最小化
-
+
Friendly Reminder
友情提示
-
+
FluentUI is hidden from the tray, click on the tray to activate the window again
FluentUI 在托盘中处于隐藏状态,单击托盘以再次激活窗口
-
-
+
+
Cancel
取消
-
+
Open in Separate Window
在独立窗口中打开
-
+
Click Time
点击次数
-
+
Search
搜索
-
+
Finish
完成
-
+
Next
下一步
-
+
Previous
上一步
-
+
Here you can switch to night mode.
在这里,您可以切换到夜间模式。
-
+
Hide Easter eggs
隐藏彩蛋
-
+
Try a few more clicks!!
再试几下!!
-
+
Upgrade Tips
升级提示
-
+
FluentUI is currently up to date
FluentUI 目前最新版本
-
+
-- The current app version
-- 当前应用版本
-
+
Now go and download the new version?
@@ -726,17 +726,17 @@ Updated content:
-
+
OK
确定
-
+
The current version is already the latest
当前版本已经是最新版本
-
+
The network is abnormal
网络异常
@@ -2756,11 +2756,6 @@ Some contents...
window effect
窗口效果
-
-
-
-
-
T_TimePicker
diff --git a/example/qml/window/MainWindow.qml b/example/qml/window/MainWindow.qml
index 7f3e0fbb..218fbb13 100644
--- a/example/qml/window/MainWindow.qml
+++ b/example/qml/window/MainWindow.qml
@@ -69,6 +69,8 @@ FluWindow {
window.show()
window.raise()
window.requestActivate()
+ }else if(reason === SystemTrayIcon.Context){
+ system_tray.menu.open()
}
}
}
diff --git a/src/FluFrameless.cpp b/src/FluFrameless.cpp
index 52576267..1d3894e6 100644
--- a/src/FluFrameless.cpp
+++ b/src/FluFrameless.cpp
@@ -441,6 +441,9 @@ void FluFrameless::componentComplete() {
window()->setFlag(Qt::CustomizeWindowHint, true);
window()->setFlag(Qt::FramelessWindowHint, true);
window()->setProperty("__borderWidth", 1);
+#endif
+#ifdef Q_OS_WIN
+ window()->setFlag(Qt::CustomizeWindowHint, true);
#endif
window()->installEventFilter(this);
QGuiApplication::instance()->installNativeEventFilter(this);
From f4c1c15ffae126d0c3a58a282316651caadae54b Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sat, 2 Aug 2025 23:02:34 +0800
Subject: [PATCH 11/22] feat: Add FluBubbleBox
---
example/example.qrc | 1 +
example/example_en_US.ts | 148 +++++++----
example/example_zh_CN.ts | 148 +++++++----
example/qml/component/CodeExpander.qml | 1 +
example/qml/global/ItemsOriginal.qml | 6 +
example/qml/page/T_BubbleBox.qml | 125 ++++++++++
src/FluentUI.cpp | 1 +
.../FluentUI/Controls/FluBubbleBox.qml | 235 ++++++++++++++++++
src/Qt5/imports/FluentUI/plugins.qmltypes | 39 ++-
src/Qt5/imports/FluentUI/qmldir | 1 +
src/Qt5/imports/fluentui.qrc | 1 +
.../FluentUI/Controls/FluBubbleBox.qml | 235 ++++++++++++++++++
12 files changed, 837 insertions(+), 104 deletions(-)
create mode 100644 example/qml/page/T_BubbleBox.qml
create mode 100644 src/Qt5/imports/FluentUI/Controls/FluBubbleBox.qml
create mode 100644 src/Qt6/imports/FluentUI/Controls/FluBubbleBox.qml
diff --git a/example/example.qrc b/example/example.qrc
index 072a1dc0..8fef630b 100644
--- a/example/example.qrc
+++ b/example/example.qrc
@@ -213,6 +213,7 @@
qml/page/T_CustomPlot.qml
res/image/logo_pro.png
qml/page/T_FluentPro.qml
+ qml/page/T_BubbleBox.qml
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index e853567d..0e37f261 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -349,238 +349,243 @@
-
+
+ BubbleBox
+
+
+
+
Layout
-
+
StaggeredLayout
-
+
SplitLayout
-
+
StatusLayout
-
+
Popus
-
+
Dialog
-
+
ComboBox
-
+
Tooltip
-
+
Menu
-
+
Sheet
-
+
Navigation
-
+
Pivot
-
+
Presents information from different sources in a tabbed view.
-
+
BreadcrumbBar
-
+
TabView
-
+
A control that displays a collection of tabs thatcan be used to display several documents.
-
+
TreeView
-
+
TableView
TreeView2
-
+
The TableView control provides a flexible way to display a collection of data in rows and columns
-
+
Pagination
-
+
MultiWindow
-
+
FlipView
-
+
Presents a collection of items that the user canflip through, one item at a time.
-
+
Theming
-
+
Acrylic
-
+
Theme
-
+
Typography
-
+
Icons
-
+
Chart
-
+
Bar Chart
-
+
Line Chart
-
+
Pie Chart
-
+
Polar Area Chart
-
+
Bubble Chart
-
+
Scatter Chart
-
+
Radar Chart
-
+
Other
-
+
OpenGL
-
+
QCustomPlot
-
+
QRCode
-
+
Tour
-
+
Timeline
-
+
Captcha
-
+
Network
-
+
Remote Loader
-
+
Hot Loader
-
+
Test Crash
@@ -896,6 +901,55 @@ Updated content:
+
+ T_BubbleBox
+
+
+
+ BubbleBox
+
+
+
+
+ bubblebox offset:
+
+
+
+
+ traingle offset:
+
+
+
+
+ direction:
+
+
+
+
+ top
+
+
+
+
+ right
+
+
+
+
+ bottom
+
+
+
+
+ left
+
+
+
+
+ Standard Button
+
+
+
T_BubbleChart
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index ae385d80..40445274 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -349,233 +349,238 @@
水印
-
+
+ BubbleBox
+ 气泡框
+
+
+
Layout
布局
-
+
StaggeredLayout
瀑布流布局
-
+
SplitLayout
拆分布局
-
+
StatusLayout
状态布局
-
+
Popus
弹窗
-
+
Dialog
弹窗
-
+
ComboBox
组合框
-
+
Tooltip
工具提示
-
+
Menu
菜单
-
+
Sheet
抽屉
-
+
Navigation
导航
-
+
Pivot
轴转
-
+
Presents information from different sources in a tabbed view.
在选项卡式视图中显示来自不同源的信息。
-
+
BreadcrumbBar
面包屑
-
+
TabView
选项卡
-
+
A control that displays a collection of tabs thatcan be used to display several documents.
一个控件,用于显示可用于显示多个文档的选项卡集合。
-
+
TreeView
树
-
+
TableView
TreeView2
表格
-
+
The TableView control provides a flexible way to display a collection of data in rows and columns
TableView 控件提供了一种以行和列形式显示数据集合的灵活方法
-
+
Pagination
分页
-
+
MultiWindow
多窗口
-
+
FlipView
翻转视图
-
+
Presents a collection of items that the user canflip through, one item at a time.
显示用户可以翻阅的项集合,一次翻阅一个项。
-
+
Theming
主题
-
+
Acrylic
亚克力
-
+
Theme
主题
-
+
Typography
字体
-
+
Icons
图标
-
+
Chart
图表
-
+
Bar Chart
条形图
-
+
Line Chart
线型图
-
+
Pie Chart
饼图
-
+
Polar Area Chart
极坐标区域图
-
+
Bubble Chart
气泡图
-
+
Scatter Chart
散点图
-
+
Radar Chart
雷达图
-
+
Other
其他
-
+
OpenGL
-
+
QCustomPlot
-
+
QRCode
二维码
-
+
Tour
漫游式引导
-
+
Timeline
时间轴
-
+
Captcha
验证码
-
+
Network
网络
-
+
Remote Loader
远程加载
-
+
Hot Loader
热加载
@@ -584,7 +589,7 @@
3D
-
+
Test Crash
测试崩溃
@@ -922,6 +927,55 @@ Updated content:
+
+ T_BubbleBox
+
+
+
+ BubbleBox
+ 气泡框
+
+
+
+ bubblebox offset:
+ 气泡框偏移:
+
+
+
+ traingle offset:
+ 三角形偏移:
+
+
+
+ direction:
+ 方向:
+
+
+
+ top
+ 上
+
+
+
+ right
+ 右
+
+
+
+ bottom
+ 下
+
+
+
+ left
+ 左
+
+
+
+ Standard Button
+ 标准按钮
+
+
T_BubbleChart
diff --git a/example/qml/component/CodeExpander.qml b/example/qml/component/CodeExpander.qml
index 88deb7bc..6d1a9bc3 100644
--- a/example/qml/component/CodeExpander.qml
+++ b/example/qml/component/CodeExpander.qml
@@ -140,6 +140,7 @@ FluExpander{
"FluRouter",
"FluGroupBox",
"FluSheet",
+ "FluBubbleBox",
];
code = code.replace(/\n/g, "
");
code = code.replace(/ /g, " ");
diff --git a/example/qml/global/ItemsOriginal.qml b/example/qml/global/ItemsOriginal.qml
index 85f9ff42..2ec7e204 100644
--- a/example/qml/global/ItemsOriginal.qml
+++ b/example/qml/global/ItemsOriginal.qml
@@ -216,6 +216,12 @@ FluObject{
url: "qrc:/example/qml/page/T_Watermark.qml"
onTap: { navigationView.push(url) }
}
+ FluPaneItem{
+ title: qsTr("BubbleBox")
+ menuDelegate: paneItemMenu
+ url: "qrc:/example/qml/page/T_BubbleBox.qml"
+ onTap: { navigationView.push(url) }
+ }
}
FluPaneItemExpander{
diff --git a/example/qml/page/T_BubbleBox.qml b/example/qml/page/T_BubbleBox.qml
new file mode 100644
index 00000000..0fe423a3
--- /dev/null
+++ b/example/qml/page/T_BubbleBox.qml
@@ -0,0 +1,125 @@
+import QtQuick 2.15
+import QtQuick.Layouts 1.15
+import QtQuick.Window 2.15
+import QtQuick.Controls 2.15
+import FluentUI 1.0
+import "../component"
+
+FluScrollablePage {
+
+ title: qsTr("BubbleBox")
+
+ FluFrame {
+ Layout.fillWidth: true
+ Layout.preferredHeight: grid.height + topPadding + bottomPadding
+ padding: 10
+ Grid {
+ id: grid
+ width: parent.width
+ columns: 2
+ spacing: 20
+ RowLayout {
+ FluText {
+ text: qsTr("bubblebox offset:")
+ }
+ FluSlider {
+ id: boxSlider
+ value: 0.5
+ stepSize: 0.1
+ from: 0
+ to: 1
+ }
+ }
+ RowLayout {
+ FluText {
+ text: qsTr("traingle offset:")
+ }
+ FluSlider {
+ id: traingleSlider
+ value: 0.5
+ stepSize: 0.1
+ from: 0
+ to: 1
+ }
+ }
+ RowLayout {
+ FluText {
+ text: qsTr("direction:")
+ }
+ FluComboBox {
+ id: directionBox
+ textRole: "key"
+ valueRole: "value"
+ model: ListModel {
+ ListElement {
+ key: qsTr("top")
+ value: "top"
+ }
+ ListElement {
+ key: qsTr("right")
+ value: "right"
+ }
+ ListElement {
+ key: qsTr("bottom")
+ value: "bottom"
+ }
+ ListElement {
+ key: qsTr("left")
+ value: "left"
+ }
+ }
+ }
+ }
+ }
+ }
+
+ FluFrame {
+ Layout.fillWidth: true
+ Layout.preferredHeight: 200 + topPadding + bottomPadding + bubbleBox.triangleHeight
+ padding: 10
+ FluButton {
+ id: btn
+ anchors.centerIn: parent
+ text: qsTr("Standard Button")
+ }
+ FluBubbleBox {
+ id: bubbleBox
+ width: 150
+ height: 50
+ attachTarget: btn
+ attachDirection: directionBox.currentValue
+ targetAlignRatio: boxSlider.value
+ triangleWidth: 30
+ triangleHeight: 20
+ triangleOffsetRatio: traingleSlider.value
+ FluText {
+ anchors.centerIn: parent
+ text: qsTr("BubbleBox")
+ }
+ }
+ }
+ CodeExpander {
+ Layout.fillWidth: true
+ Layout.topMargin: -6
+ code: 'FluButton {
+ id: btn
+ anchors.centerIn: parent
+ text: "Button"
+}
+FluBubbleBox {
+ id: bubbleBox
+ width: 150
+ height: 50
+ attachTarget: btn
+ attachDirection: "top"
+ targetAlignRatio: 0.5
+ triangleWidth: 30
+ triangleHeight: 20
+ triangleOffsetRatio: 0.5
+ FluText {
+ anchors.centerIn: parent
+ text: "BubbleBox"
+ }
+}'
+ }
+}
diff --git a/src/FluentUI.cpp b/src/FluentUI.cpp
index 8842a8e1..3e1ed4ea 100644
--- a/src/FluentUI.cpp
+++ b/src/FluentUI.cpp
@@ -147,6 +147,7 @@ void FluentUI::registerTypes(const char *uri) {
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluSheet.qml"), uri, major, minor, "FluSheet");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluGroupBox.qml"), uri, major, minor, "FluGroupBox");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluControlBackground.qml"), uri, major, minor, "FluControlBackground");
+ qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluBubbleBox.qml"), uri, major, minor, "FluBubbleBox");
qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluRouter.qml"), uri, major, minor, "FluRouter");
qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluEventBus.qml"), uri, major, minor, "FluEventBus");
diff --git a/src/Qt5/imports/FluentUI/Controls/FluBubbleBox.qml b/src/Qt5/imports/FluentUI/Controls/FluBubbleBox.qml
new file mode 100644
index 00000000..6125e645
--- /dev/null
+++ b/src/Qt5/imports/FluentUI/Controls/FluBubbleBox.qml
@@ -0,0 +1,235 @@
+import QtQuick 2.15
+import QtQuick.Shapes 1.15
+import FluentUI 1.0
+
+Rectangle {
+ id: control
+ // target properties
+ property Item attachTarget: null
+ property string attachDirection: "top" // top, right, bottom, left
+ property real attachMargin: 5
+ property real targetAlignRatio: 0.5 // offset ratio to the target width or height
+ property var targetX: function () {
+ return attachTarget ? attachTarget.x : 0
+ }
+ property var targetY: function () {
+ return attachTarget ? attachTarget.y : 0
+ }
+ // triangle properties
+ property alias triangleItem: triangle
+ property alias triangleWidth: triangle.width
+ property alias triangleHeight: triangle.height
+ property real triangleOffsetRatio: 0.5 // offset ratio to the triangle width or height
+ readonly property string triangleDirection: {
+ switch (attachDirection) {
+ case "top":
+ return "bottom"
+ case "right":
+ return "left"
+ case "bottom":
+ return "top"
+ case "left":
+ return "right"
+ default:
+ return "top"
+ }
+ }
+
+ implicitWidth: 100
+ implicitHeight: 50
+ radius: 4
+ color: FluTheme.dark ? Qt.rgba(
+ 32 / 255, 32 / 255, 32 / 255,
+ 1) : Qt.rgba(243 / 255, 243 / 255, 243 / 255, 1)
+
+ x: {
+ if (!attachTarget) {
+ return 0
+ }
+ switch (attachDirection) {
+ case "top":
+ case "bottom":
+ const baseX = targetX() + attachTarget.width * targetAlignRatio
+ return baseX - control.width / 2
+ case "left":
+ return targetX() - control.width - triangle.width - attachMargin
+ case "right":
+ return targetX(
+ ) + attachTarget.width + triangle.width + attachMargin
+ default:
+ return 0
+ }
+ }
+
+ y: {
+ if (!attachTarget) {
+ return 0
+ }
+ switch (attachDirection) {
+ case "left":
+ case "right":
+ const baseY = targetY() + attachTarget.height * targetAlignRatio
+ return baseY - control.height / 2
+ case "top":
+ return targetY() - control.height - triangle.height - attachMargin
+ case "bottom":
+ return targetY(
+ ) + attachTarget.height + triangle.height + attachMargin
+ default:
+ return 0
+ }
+ }
+
+ QtObject {
+ id: d
+ readonly property real clampedRatio: {
+
+ const isHorizontal = triangleDirection === "top"
+ || triangleDirection === "bottom"
+
+ let clamped = triangleOffsetRatio
+ const boxSize = isHorizontal ? control.width : control.height
+ const triangleSize = isHorizontal ? triangle.width : triangle.height
+ const minRatio = (triangleSize / 2 + control.radius) / boxSize
+ const maxRatio = 1 - minRatio
+ clamped = Math.max(minRatio, Math.min(maxRatio, clamped))
+
+ if (attachTarget) {
+ const targetSize = isHorizontal ? attachTarget.width : control.attachTarget.height
+ const bubblePos = isHorizontal ? control.x - targetX(
+ ) : control.y - targetY()
+ const targetRelativePos = targetAlignRatio * targetSize
+ const trianglePos = clamped * boxSize - triangleSize / 2
+ const minTrianglePos = -bubblePos - triangleSize / 2
+ const maxTrianglePos = targetSize - bubblePos - triangleSize / 2
+ const minTargetRatio = (minTrianglePos + triangleSize / 2) / boxSize
+ const maxTargetRatio = (maxTrianglePos + triangleSize / 2) / boxSize
+ clamped = Math.max(minTargetRatio,
+ Math.min(maxTargetRatio, clamped))
+ }
+
+ return clamped
+ }
+ }
+
+ Shape {
+ id: triangle
+ width: 30
+ height: 20
+
+ x: {
+ switch (triangleDirection) {
+ case "top":
+ case "bottom":
+ return control.width * d.clampedRatio - triangle.width / 2
+ case "left":
+ return -triangle.width
+ case "right":
+ return control.width
+ default:
+ return 0
+ }
+ }
+
+ y: {
+ switch (triangleDirection) {
+ case "left":
+ case "right":
+ return control.height * d.clampedRatio - triangle.height / 2
+ case "top":
+ return -triangle.height
+ case "bottom":
+ return control.height
+ default:
+ return 0
+ }
+ }
+
+ antialiasing: true
+ layer.enabled: true
+ layer.samples: 8
+ smooth: true
+ ShapePath {
+ fillColor: control.color
+ strokeColor: control.color
+ startX: {
+ switch (triangleDirection) {
+ case "left":
+ return triangle.width
+ case "top":
+ case "right":
+ case "bottom":
+ return 0
+ default:
+ return 0
+ }
+ }
+ startY: {
+ switch (triangleDirection) {
+ case "top":
+ return triangle.height
+ case "right":
+ case "bottom":
+ case "left":
+ return 0
+ default:
+ return 0
+ }
+ }
+ PathLine {
+ x: {
+ switch (triangleDirection) {
+ case "top":
+ case "bottom":
+ return triangle.width / 2
+ case "right":
+ return triangle.width
+ case "left":
+ return 0
+ default:
+ return 0
+ }
+ }
+ y: {
+ switch (triangleDirection) {
+ case "bottom":
+ return triangle.height
+ case "right":
+ case "left":
+ return triangle.height / 2
+ case "top":
+ return 0
+ default:
+ return 0
+ }
+ }
+ }
+ PathLine {
+ x: {
+ switch (triangleDirection) {
+ case "top":
+ case "bottom":
+ case "left":
+ return triangle.width
+ case "right":
+ return 0
+ default:
+ return 0
+ }
+ }
+ y: {
+ switch (triangleDirection) {
+ case "top":
+ case "right":
+ case "left":
+ return triangle.height
+ case "bottom":
+ return 0
+ default:
+ return 0
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index 5790dc12..60fff63f 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -2750,37 +2750,37 @@ Module {
Property { name: "darkClickListener"; type: "QVariant" }
Property {
name: "buttonStayTop"
- type: "FluIconButton_QMLTYPE_19"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMinimize"
- type: "FluIconButton_QMLTYPE_19"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMaximize"
- type: "FluIconButton_QMLTYPE_19"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonClose"
- type: "FluIconButton_QMLTYPE_19"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonDark"
- type: "FluIconButton_QMLTYPE_19"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "layoutMacosButtons"
- type: "FluLoader_QMLTYPE_12"
+ type: "FluLoader_QMLTYPE_19"
isReadonly: true
isPointer: true
}
@@ -2865,6 +2865,25 @@ Module {
}
Method { name: "count"; type: "QVariant" }
}
+ Component {
+ prototype: "QQuickRectangle"
+ name: "FluentUI/FluBubbleBox 1.0"
+ exports: ["FluentUI/FluBubbleBox 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "data"
+ Property { name: "attachTarget"; type: "QQuickItem"; isPointer: true }
+ Property { name: "attachDirection"; type: "string" }
+ Property { name: "attachMargin"; type: "double" }
+ Property { name: "targetAlignRatio"; type: "double" }
+ Property { name: "targetX"; type: "QVariant" }
+ Property { name: "targetY"; type: "QVariant" }
+ Property { name: "triangleOffsetRatio"; type: "double" }
+ Property { name: "triangleDirection"; type: "string"; isReadonly: true }
+ Property { name: "triangleItem"; type: "QQuickShape"; isReadonly: true; isPointer: true }
+ Property { name: "triangleWidth"; type: "double" }
+ Property { name: "triangleHeight"; type: "double" }
+ }
Component {
prototype: "QQuickButton"
name: "FluentUI/FluButton 1.0"
@@ -3481,8 +3500,8 @@ Module {
defaultProperty: "data"
Property { name: "logo"; type: "QUrl" }
Property { name: "title"; type: "string" }
- Property { name: "items"; type: "FluObject_QMLTYPE_182"; isPointer: true }
- Property { name: "footerItems"; type: "FluObject_QMLTYPE_182"; isPointer: true }
+ Property { name: "items"; type: "FluObject_QMLTYPE_184"; isPointer: true }
+ Property { name: "footerItems"; type: "FluObject_QMLTYPE_184"; isPointer: true }
Property { name: "displayMode"; type: "int" }
Property { name: "autoSuggestBox"; type: "QQmlComponent"; isPointer: true }
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
@@ -3497,13 +3516,13 @@ Module {
Property { name: "hideNavAppBar"; type: "bool" }
Property {
name: "buttonMenu"
- type: "FluIconButton_QMLTYPE_19"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonBack"
- type: "FluIconButton_QMLTYPE_19"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
diff --git a/src/Qt5/imports/FluentUI/qmldir b/src/Qt5/imports/FluentUI/qmldir
index fc12b266..15101ce9 100644
--- a/src/Qt5/imports/FluentUI/qmldir
+++ b/src/Qt5/imports/FluentUI/qmldir
@@ -98,5 +98,6 @@ FluTreeView 1.0 Controls/FluTreeView.qml
FluWindow 1.0 Controls/FluWindow.qml
FluWindowDialog 1.0 Controls/FluWindowDialog.qml
FluWindowResultLauncher 1.0 Controls/FluWindowResultLauncher.qml
+FluBubbleBox 1.0 Controls/FluBubbleBox.qml
plugin fluentuiplugin
diff --git a/src/Qt5/imports/fluentui.qrc b/src/Qt5/imports/fluentui.qrc
index e27840cc..d70ce195 100644
--- a/src/Qt5/imports/fluentui.qrc
+++ b/src/Qt5/imports/fluentui.qrc
@@ -110,5 +110,6 @@
FluentUI/Controls/FluGroupBox.qml
FluentUI/Controls/FluControlBackground.qml
FluentUI/Font/FluentIcons.ttf
+ FluentUI/Controls/FluBubbleBox.qml
diff --git a/src/Qt6/imports/FluentUI/Controls/FluBubbleBox.qml b/src/Qt6/imports/FluentUI/Controls/FluBubbleBox.qml
new file mode 100644
index 00000000..5db99b06
--- /dev/null
+++ b/src/Qt6/imports/FluentUI/Controls/FluBubbleBox.qml
@@ -0,0 +1,235 @@
+import QtQuick
+import QtQuick.Shapes
+import FluentUI
+
+Rectangle {
+ id: control
+ // target properties
+ property Item attachTarget: null
+ property string attachDirection: "top" // top, right, bottom, left
+ property real attachMargin: 5
+ property real targetAlignRatio: 0.5 // offset ratio to the target width or height
+ property var targetX: function () {
+ return attachTarget ? attachTarget.x : 0
+ }
+ property var targetY: function () {
+ return attachTarget ? attachTarget.y : 0
+ }
+ // triangle properties
+ property alias triangleItem: triangle
+ property alias triangleWidth: triangle.width
+ property alias triangleHeight: triangle.height
+ property real triangleOffsetRatio: 0.5 // offset ratio to the triangle width or height
+ readonly property string triangleDirection: {
+ switch (attachDirection) {
+ case "top":
+ return "bottom"
+ case "right":
+ return "left"
+ case "bottom":
+ return "top"
+ case "left":
+ return "right"
+ default:
+ return "top"
+ }
+ }
+
+ implicitWidth: 100
+ implicitHeight: 50
+ radius: 4
+ color: FluTheme.dark ? Qt.rgba(
+ 32 / 255, 32 / 255, 32 / 255,
+ 1) : Qt.rgba(243 / 255, 243 / 255, 243 / 255, 1)
+
+ x: {
+ if (!attachTarget) {
+ return 0
+ }
+ switch (attachDirection) {
+ case "top":
+ case "bottom":
+ const baseX = targetX() + attachTarget.width * targetAlignRatio
+ return baseX - control.width / 2
+ case "left":
+ return targetX() - control.width - triangle.width - attachMargin
+ case "right":
+ return targetX(
+ ) + attachTarget.width + triangle.width + attachMargin
+ default:
+ return 0
+ }
+ }
+
+ y: {
+ if (!attachTarget) {
+ return 0
+ }
+ switch (attachDirection) {
+ case "left":
+ case "right":
+ const baseY = targetY() + attachTarget.height * targetAlignRatio
+ return baseY - control.height / 2
+ case "top":
+ return targetY() - control.height - triangle.height - attachMargin
+ case "bottom":
+ return targetY(
+ ) + attachTarget.height + triangle.height + attachMargin
+ default:
+ return 0
+ }
+ }
+
+ QtObject {
+ id: d
+ readonly property real clampedRatio: {
+
+ const isHorizontal = triangleDirection === "top"
+ || triangleDirection === "bottom"
+
+ let clamped = triangleOffsetRatio
+ const boxSize = isHorizontal ? control.width : control.height
+ const triangleSize = isHorizontal ? triangle.width : triangle.height
+ const minRatio = (triangleSize / 2 + control.radius) / boxSize
+ const maxRatio = 1 - minRatio
+ clamped = Math.max(minRatio, Math.min(maxRatio, clamped))
+
+ if (attachTarget) {
+ const targetSize = isHorizontal ? attachTarget.width : control.attachTarget.height
+ const bubblePos = isHorizontal ? control.x - targetX(
+ ) : control.y - targetY()
+ const targetRelativePos = targetAlignRatio * targetSize
+ const trianglePos = clamped * boxSize - triangleSize / 2
+ const minTrianglePos = -bubblePos - triangleSize / 2
+ const maxTrianglePos = targetSize - bubblePos - triangleSize / 2
+ const minTargetRatio = (minTrianglePos + triangleSize / 2) / boxSize
+ const maxTargetRatio = (maxTrianglePos + triangleSize / 2) / boxSize
+ clamped = Math.max(minTargetRatio,
+ Math.min(maxTargetRatio, clamped))
+ }
+
+ return clamped
+ }
+ }
+
+ Shape {
+ id: triangle
+ width: 30
+ height: 20
+
+ x: {
+ switch (triangleDirection) {
+ case "top":
+ case "bottom":
+ return control.width * d.clampedRatio - triangle.width / 2
+ case "left":
+ return -triangle.width
+ case "right":
+ return control.width
+ default:
+ return 0
+ }
+ }
+
+ y: {
+ switch (triangleDirection) {
+ case "left":
+ case "right":
+ return control.height * d.clampedRatio - triangle.height / 2
+ case "top":
+ return -triangle.height
+ case "bottom":
+ return control.height
+ default:
+ return 0
+ }
+ }
+
+ antialiasing: true
+ layer.enabled: true
+ layer.samples: 8
+ smooth: true
+ ShapePath {
+ fillColor: control.color
+ strokeColor: control.color
+ startX: {
+ switch (triangleDirection) {
+ case "left":
+ return triangle.width
+ case "top":
+ case "right":
+ case "bottom":
+ return 0
+ default:
+ return 0
+ }
+ }
+ startY: {
+ switch (triangleDirection) {
+ case "top":
+ return triangle.height
+ case "right":
+ case "bottom":
+ case "left":
+ return 0
+ default:
+ return 0
+ }
+ }
+ PathLine {
+ x: {
+ switch (triangleDirection) {
+ case "top":
+ case "bottom":
+ return triangle.width / 2
+ case "right":
+ return triangle.width
+ case "left":
+ return 0
+ default:
+ return 0
+ }
+ }
+ y: {
+ switch (triangleDirection) {
+ case "bottom":
+ return triangle.height
+ case "right":
+ case "left":
+ return triangle.height / 2
+ case "top":
+ return 0
+ default:
+ return 0
+ }
+ }
+ }
+ PathLine {
+ x: {
+ switch (triangleDirection) {
+ case "top":
+ case "bottom":
+ case "left":
+ return triangle.width
+ case "right":
+ return 0
+ default:
+ return 0
+ }
+ }
+ y: {
+ switch (triangleDirection) {
+ case "top":
+ case "right":
+ case "left":
+ return triangle.height
+ case "bottom":
+ return 0
+ default:
+ return 0
+ }
+ }
+ }
+ }
+ }
+}
From 75e3ec0d12dc9ad9c951fc639c0a8f2b07927ca1 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sun, 3 Aug 2025 10:59:39 +0800
Subject: [PATCH 12/22] =?UTF-8?q?feat:=20FluAutoSuggestBox=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E6=96=B9=E5=90=91=E9=94=AE=E5=BE=AA=E7=8E=AF=E7=A7=BB?=
=?UTF-8?q?=E5=8A=A8=E5=88=97=E8=A1=A8=E9=A1=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../FluentUI/Controls/FluAutoSuggestBox.qml | 34 +++++++++++++++++++
.../FluentUI/Controls/FluAutoSuggestBox.qml | 34 +++++++++++++++++++
2 files changed, 68 insertions(+)
diff --git a/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml b/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml
index 9f28175c..c5ca7f6d 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml
@@ -37,6 +37,25 @@ FluTextBox{
return
}
list_view.model = items.filter(item => control.filter(item))
+ list_view.currentIndex = -1
+ }
+ function navigateList(step) {
+ if (list_view.count < 1) {
+ return
+ }
+ let newIndex = list_view.currentIndex + step
+ if (newIndex >= list_view.count) {
+ newIndex = 0
+ } else if (newIndex < 0) {
+ newIndex = list_view.count - 1
+ }
+ list_view.currentIndex = newIndex
+ list_view.positionViewAtIndex(newIndex, ListView.Contain)
+ }
+ function handleEnterReturn() {
+ if (list_view.count > 0 && list_view.currentIndex !== -1) {
+ d.handleClick(list_view.model[list_view.currentIndex])
+ }
}
}
onActiveFocusChanged: {
@@ -44,6 +63,18 @@ FluTextBox{
control_popup.visible = false
}
}
+ Keys.onDownPressed: {
+ d.navigateList(1)
+ }
+ Keys.onUpPressed: {
+ d.navigateList(-1)
+ }
+ Keys.onEnterPressed: {
+ d.handleEnterReturn()
+ }
+ Keys.onReturnPressed: {
+ d.handleEnterReturn()
+ }
Popup{
id:control_popup
focus: false
@@ -77,6 +108,9 @@ FluTextBox{
}
}
}
+ highlight: Rectangle {
+ color: FluTheme.itemHoverColor
+ }
delegate:FluControl{
id: item_control
height: control.itemHeight
diff --git a/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml b/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml
index 93697196..16fdeeda 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml
@@ -36,6 +36,25 @@ FluTextBox{
return
}
list_view.model = items.filter(item => control.filter(item))
+ list_view.currentIndex = -1
+ }
+ function navigateList(step) {
+ if (list_view.count < 1) {
+ return
+ }
+ let newIndex = list_view.currentIndex + step
+ if (newIndex >= list_view.count) {
+ newIndex = 0
+ } else if (newIndex < 0) {
+ newIndex = list_view.count - 1
+ }
+ list_view.currentIndex = newIndex
+ list_view.positionViewAtIndex(newIndex, ListView.Contain)
+ }
+ function handleEnterReturn() {
+ if (list_view.count > 0 && list_view.currentIndex !== -1) {
+ d.handleClick(list_view.model[list_view.currentIndex])
+ }
}
}
onActiveFocusChanged: {
@@ -43,6 +62,18 @@ FluTextBox{
control_popup.visible = false
}
}
+ Keys.onDownPressed: {
+ d.navigateList(1)
+ }
+ Keys.onUpPressed: {
+ d.navigateList(-1)
+ }
+ Keys.onEnterPressed: {
+ d.handleEnterReturn()
+ }
+ Keys.onReturnPressed: {
+ d.handleEnterReturn()
+ }
Popup{
id:control_popup
focus: false
@@ -76,6 +107,9 @@ FluTextBox{
}
}
}
+ highlight: Rectangle {
+ color: FluTheme.itemHoverColor
+ }
delegate:FluControl{
id: item_control
height: control.itemHeight
From 8d0c79299d63a01fd5f7cab1fff88222c64eebc5 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Mon, 18 Aug 2025 20:38:01 +0800
Subject: [PATCH 13/22] feat: Add FluPinyin, base on pinyin-pro
---
THIRD_PARTY_COPYRIGHT.txt | 23 +
example/example.qrc | 1 +
example/example_en_US.ts | 31 +-
example/example_zh_CN.ts | 31 +-
example/qml/global/ItemsOriginal.qml | 6 +
example/qml/page/T_Pinyin.qml | 127 +
src/CMakeLists.txt | 2 +-
src/FluentUI.cpp | 1 +
.../imports/FluentUI/Controls/FluPinyin.qml | 80 +
src/Qt5/imports/FluentUI/Controls/qmldir | 1 +
src/Qt5/imports/FluentUI/JS/PinyinPro.mjs | 25197 ++++++++++++++++
src/Qt5/imports/FluentUI/plugins.qmltypes | 84 +-
src/Qt5/imports/FluentUI/qmldir | 1 +
src/Qt5/imports/fluentui.qrc | 2 +
.../imports/FluentUI/Controls/FluPinyin.qml | 80 +
src/Qt6/imports/FluentUI/Controls/qmldir | 1 +
src/Qt6/imports/FluentUI/JS/PinyinPro.mjs | 25197 ++++++++++++++++
17 files changed, 50851 insertions(+), 14 deletions(-)
create mode 100644 example/qml/page/T_Pinyin.qml
create mode 100644 src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
create mode 100644 src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
create mode 100644 src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
create mode 100644 src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
diff --git a/THIRD_PARTY_COPYRIGHT.txt b/THIRD_PARTY_COPYRIGHT.txt
index 38bdd591..2045d811 100644
--- a/THIRD_PARTY_COPYRIGHT.txt
+++ b/THIRD_PARTY_COPYRIGHT.txt
@@ -1024,3 +1024,26 @@ the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
.
+************************************************************************************
+MIT License
+
+Copyright (c) 2022-present zh-lx
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/example/example.qrc b/example/example.qrc
index 8fef630b..3f142d3a 100644
--- a/example/example.qrc
+++ b/example/example.qrc
@@ -214,6 +214,7 @@
res/image/logo_pro.png
qml/page/T_FluentPro.qml
qml/page/T_BubbleBox.qml
+ qml/page/T_Pinyin.qml
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 0e37f261..5f6994c6 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -566,26 +566,31 @@
- Captcha
+ Pinyin
+ Captcha
+
+
+
+
Network
-
+
Remote Loader
-
+
Hot Loader
-
+
Test Crash
@@ -1932,6 +1937,24 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
+
+ T_Pinyin
+
+
+ Pinyin
+
+
+
+
+ [pinyin-pro document](https://pinyin-pro.cn/guide/compare.html)
+
+
+
+
+ Input Chinese or Pinyin
+
+
+
T_Pivot
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 40445274..f9d87ba4 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -566,21 +566,26 @@
+ Pinyin
+ 拼音
+
+
+
Captcha
验证码
-
+
Network
网络
-
+
Remote Loader
远程加载
-
+
Hot Loader
热加载
@@ -589,7 +594,7 @@
3D
-
+
Test Crash
测试崩溃
@@ -2082,6 +2087,24 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
饼图
+
+ T_Pinyin
+
+
+ Pinyin
+ 拼音
+
+
+
+ [pinyin-pro document](https://pinyin-pro.cn/guide/compare.html)
+ [pinyin-pro文档](https://pinyin-pro.cn/guide/compare.html)
+
+
+
+ Input Chinese or Pinyin
+ 输入汉字或拼音
+
+
T_Pivot
diff --git a/example/qml/global/ItemsOriginal.qml b/example/qml/global/ItemsOriginal.qml
index 2ec7e204..dba0f652 100644
--- a/example/qml/global/ItemsOriginal.qml
+++ b/example/qml/global/ItemsOriginal.qml
@@ -462,6 +462,12 @@ FluObject{
url: "qrc:/example/qml/page/T_Timeline.qml"
onTap: { navigationView.push(url) }
}
+ FluPaneItem{
+ title: qsTr("Pinyin")
+ menuDelegate: paneItemMenu
+ url: "qrc:/example/qml/page/T_Pinyin.qml"
+ onTap: { navigationView.push(url) }
+ }
FluPaneItem{
title: qsTr("Captcha")
menuDelegate: paneItemMenu
diff --git a/example/qml/page/T_Pinyin.qml b/example/qml/page/T_Pinyin.qml
new file mode 100644
index 00000000..7343ab8d
--- /dev/null
+++ b/example/qml/page/T_Pinyin.qml
@@ -0,0 +1,127 @@
+import QtQuick 2.15
+import QtQuick.Layouts 1.15
+import QtQuick.Window 2.15
+import QtQuick.Controls 2.15
+import FluentUI 1.0
+import "../component"
+
+FluScrollablePage {
+
+ title: qsTr("Pinyin")
+
+ Component.onCompleted: {
+ FluPinyin.buildPattern()
+ const chineseWords = ["中国", "北京", "上海", "广州", "深圳", "杭州", "成都", "你好", "谢谢", "再见", "请问", "名字", "朋友", "学习", "天气", "今天", "明天", "昨天", "时间", "星期", "早上", "中文", "拼音", "输入法", "计算机", "手机", "电视", "音乐", "旅游", "美食", "餐厅", "医院", "学校", "工作", "工资", "重要", "快乐", "幸福", "爱情", "家庭", "孩子", "父母", "银行", "行长", "长大", "重量", "重新", "重庆", "长城", "苹果", "香蕉", "西瓜", "草莓", "咖啡", "茶", "啤酒", "汽车", "飞机", "地铁", "自行车", "出租车", "公交", "走路"]
+ pinyinBox.items = chineseWords.map(text => ({
+ [pinyinBox.textRole]: text
+ }))
+ }
+
+ FluText {
+ textFormat: Text.MarkdownText
+ onLinkActivated: link => {
+ Qt.openUrlExternally(link)
+ }
+ onLinkHovered: link => {
+ if (link === "") {
+ FluTools.restoreOverrideCursor()
+ } else {
+ FluTools.setOverrideCursor(Qt.PointingHandCursor)
+ }
+ }
+ text: qsTr('[pinyin-pro document](https://pinyin-pro.cn/guide/compare.html)')
+ }
+
+ FluGroupBox {
+ Layout.fillWidth: true
+ padding: 10
+ title: "pinyin"
+ ColumnLayout {
+ FluText {
+ text: 'FluPinyin.pinyin("汉语拼音") --> %1'.arg(FluPinyin.pinyin("汉语拼音"))
+ }
+ FluText {
+ text: 'FluPinyin.pinyin("汉语拼音", { "toneType": "none" }) --> %1'.arg(FluPinyin.pinyin("汉语拼音", { "toneType": "none" }))
+ }
+ FluText {
+ text: 'FluPinyin.pinyin("汉语拼音", { "toneType": "num" }) --> %1'.arg(FluPinyin.pinyin("汉语拼音", { "toneType": "num" }))
+ }
+ FluText {
+ text: 'FluPinyin.pinyin("汉语拼音", { "type": "array" }) --> %1'.arg(JSON.stringify(FluPinyin.pinyin("汉语拼音", { "type": "array" })))
+ }
+ }
+ }
+
+ FluGroupBox {
+ Layout.topMargin: 20
+ Layout.fillWidth: true
+ padding: 10
+ title: "match"
+ ColumnLayout {
+ Layout.fillWidth: true
+ FluText {
+ text: 'FluPinyin.match("汉语拼音", "hanyupinyin") --> %1'.arg(JSON.stringify(FluPinyin.match("汉语拼音", "hanpin")))
+ }
+ FluText {
+ text: 'FluPinyin.match("汉语拼音", "hanpin") --> %1'.arg(JSON.stringify(FluPinyin.match("汉语拼音", "hanpin")))
+ }
+ FluText {
+ text: 'FluPinyin.match("汉语拼音", "hanpin", { "continuous": true }) --> %1'.arg(JSON.stringify(FluPinyin.match("汉语拼音", "hanpin", { "continuous": true })))
+ }
+ FluAutoSuggestBox {
+ id: pinyinBox
+ Layout.topMargin: 10
+ placeholderText: qsTr("Input Chinese or Pinyin")
+ showSuggestWhenPressed: true
+ filter: function (item) {
+ return length === 0 || FluPinyin.match(item[textRole], text, { "continuous": true })
+ }
+ }
+ }
+ }
+
+ FluGroupBox {
+ Layout.topMargin: 20
+ Layout.fillWidth: true
+ padding: 10
+ title: "convert"
+ ColumnLayout {
+ FluText {
+ text: 'FluPinyin.convert("pin1 yin1", { "format": "numToSymbol" }) --> %1'.arg(FluPinyin.convert("pin1 yin1", { "format": "numToSymbol" }))
+ }
+ FluText {
+ text: 'FluPinyin.convert("pīn yīn", { "format": "symbolToNum" }) --> %1'.arg(FluPinyin.convert("pīn yīn", { "format": "symbolToNum" }))
+ }
+ FluText {
+ text: 'FluPinyin.convert("pīn yīn", { "format": "toneNone" }) --> %1'.arg(FluPinyin.convert("pīn yīn", { "format": "toneNone" }))
+ }
+ }
+ }
+
+ FluGroupBox {
+ Layout.topMargin: 20
+ Layout.fillWidth: true
+ padding: 10
+ title: "html"
+ ColumnLayout {
+ FluText {
+ text: 'FluPinyin.html("汉语拼音") --> %1'.arg(FluPinyin.html("汉语拼音"))
+ }
+ FluText {
+ text: 'FluPinyin.html("汉语拼音", { "toneType": "none" }) --> %1'.arg(FluPinyin.html("汉语拼音", { "toneType": "none" }))
+ }
+ }
+ }
+
+ FluGroupBox {
+ Layout.topMargin: 20
+ Layout.fillWidth: true
+ padding: 10
+ title: "segment"
+ ColumnLayout {
+ FluText {
+ text: 'FluPinyin.segment("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") --> \n%1'.arg(JSON.stringify(FluPinyin.segment("小明硕士毕业于中国科学院计算所,后在日本京都大学深造"), null, 2))
+ }
+ }
+ }
+}
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2b2ed970..c8b3e50c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -104,7 +104,7 @@ if (QT_VERSION VERSION_GREATER_EQUAL "6.2")
endforeach (filepath)
#遍历所有资源文件
- file(GLOB_RECURSE RES_PATHS *.png *.jpg *.svg *.ico *.ttf *.webp *.js *.qm)
+ file(GLOB_RECURSE RES_PATHS *.png *.jpg *.svg *.ico *.ttf *.webp *.js *.mjs *.qm)
foreach (filepath ${RES_PATHS})
if (${filepath} MATCHES "Qt${QT_VERSION_MAJOR}/")
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
diff --git a/src/FluentUI.cpp b/src/FluentUI.cpp
index 3e1ed4ea..69038f9d 100644
--- a/src/FluentUI.cpp
+++ b/src/FluentUI.cpp
@@ -150,6 +150,7 @@ void FluentUI::registerTypes(const char *uri) {
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluBubbleBox.qml"), uri, major, minor, "FluBubbleBox");
qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluRouter.qml"), uri, major, minor, "FluRouter");
qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluEventBus.qml"), uri, major, minor, "FluEventBus");
+ qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluPinyin.qml"), uri, major, minor, "FluPinyin");
qmlRegisterUncreatableMetaObject(FluentIcons::staticMetaObject, uri, major, minor, "FluentIcons", "Access to enums & flags only");
qmlRegisterUncreatableMetaObject(FluThemeType::staticMetaObject, uri, major, minor, "FluThemeType", "Access to enums & flags only");
diff --git a/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml b/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
new file mode 100644
index 00000000..f9e46bf4
--- /dev/null
+++ b/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
@@ -0,0 +1,80 @@
+pragma Singleton
+
+import QtQuick 2.15
+import "./../JS/PinyinPro.mjs" as Pinyin
+
+QtObject {
+ property list children
+ readonly property var context: Pinyin
+ property int patternValue: 500 // In "size" mode, number of patterns per build; in "group" mode, number of groups to divide patterns into
+ property string patternBuildMode: "size" // size, group
+ property alias patternBuildInterval: patternTimer.interval
+ readonly property alias isPatternBuilt: d.isPatternBuilt
+ readonly property var outputFormat: Pinyin.OutputFormat
+ function buildPattern(buildAllAtOnce = true) {
+ if (d.isPatternBuilt || patternTimer.running) {
+ return
+ }
+ d.builder = context.getPatternsNormalBuilder(patternValue,
+ patternBuildMode)
+ if (buildAllAtOnce) {
+ while (!d.buildNext()) {
+
+ }
+ d.builder = null
+ d.isPatternBuilt = true
+ } else {
+ patternTimer.start()
+ }
+ }
+ function addDict(dict, options) {
+ context.addDict(dict, options)
+ }
+ function clearCustomDict(dict) {
+ context.clearCustomDict(dict)
+ }
+ function convert(pinyin, options) {
+ return context.convert(pinyin, options)
+ }
+ function customPinyin(config = {}, options) {
+ context.customPinyin(config, options)
+ }
+ function html(text, options) {
+ return context.html(text, options)
+ }
+ function match(text, pinyin, options) {
+ return context.match(text, pinyin, options)
+ }
+ function pinyin(word, options) {
+ return context.pinyin(word, options)
+ }
+ function removeDict(dictName) {
+ context.removeDict(dictName)
+ }
+ function segment(word, options) {
+ return context.segment(word, options)
+ }
+ children: [
+ QtObject {
+ id: d
+ property bool isPatternBuilt: false
+ property var builder: null
+ function buildNext() {
+ return d.builder.next().done
+ }
+ },
+ Timer {
+ id: patternTimer
+ interval: 1500
+ repeat: true
+ triggeredOnStart: true
+ onTriggered: {
+ if (d.buildNext()) {
+ d.builder = null
+ d.isPatternBuilt = true
+ stop()
+ }
+ }
+ }
+ ]
+}
diff --git a/src/Qt5/imports/FluentUI/Controls/qmldir b/src/Qt5/imports/FluentUI/Controls/qmldir
index a4b6cc13..4726cff4 100644
--- a/src/Qt5/imports/FluentUI/Controls/qmldir
+++ b/src/Qt5/imports/FluentUI/Controls/qmldir
@@ -1,2 +1,3 @@
singleton FluRouter 1.0 FluRouter.qml
singleton FluEventBus 1.0 FluEventBus.qml
+singleton FluPinyin 1.0 FluPinyin.qml
diff --git a/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs b/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
new file mode 100644
index 00000000..aa5d6d4e
--- /dev/null
+++ b/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
@@ -0,0 +1,25197 @@
+/*
+ * pinyin-pro 3.27.0
+ * https://github.com/zh-lx/pinyin-pro
+ *
+ * Copyright (c) 2022-present zh-lx
+ * Licensed under the MIT License
+ *
+ * Modifications Copyright (c) 2025 Polaris-Night
+ *
+ * Changes:
+ * - Refactored AC-Tree construction pattern by introducing PatternsNormalBuilder
+ * to enable delayed/asynchronous building with improved performance control
+ *
+ * This modified work is also licensed under the MIT License.
+ */
+
+const DoubleUnicodePrefixReg = /^[\uD800-\uDBFF]$/;
+const DoubleUnicodeSuffixReg = /^[\uDC00-\uDFFF]$/;
+const DoubleUnicodeReg = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+var Probability;
+(function (Probability) {
+ Probability[Probability["Unknown"] = 1e-13] = "Unknown";
+ Probability[Probability["Rule"] = 1e-12] = "Rule";
+ Probability[Probability["DICT"] = 2e-8] = "DICT";
+ Probability[Probability["Surname"] = 1] = "Surname";
+ Probability[Probability["Custom"] = 1] = "Custom";
+})(Probability || (Probability = {}));
+const Priority = {
+ Normal: 1,
+ Surname: 10,
+ Custom: 100,
+};
+
+function stringLength(text) {
+ var _a;
+ return text.length - (((_a = text.match(DoubleUnicodeReg)) === null || _a === void 0 ? void 0 : _a.length) || 0);
+}
+// 双音节字符处理
+function splitString(text) {
+ const result = [];
+ let i = 0;
+ while (i < text.length) {
+ const char = text[i];
+ if (DoubleUnicodePrefixReg.test(char) &&
+ DoubleUnicodeSuffixReg.test(text[i + 1])) {
+ result.push(text.substring(i, i + 2));
+ i += 2;
+ }
+ else {
+ result.push(char);
+ i += 1;
+ }
+ }
+ return result;
+}
+class FastDictFactory {
+ constructor() {
+ this.NumberDICT = [];
+ this.StringDICT = new Map();
+ }
+ get(word) {
+ if (word.length > 1) {
+ return this.StringDICT.get(word);
+ }
+ else {
+ const code = word.charCodeAt(0);
+ return this.NumberDICT[code];
+ }
+ }
+ set(word, pinyin) {
+ if (word.length > 1) {
+ this.StringDICT.set(word, pinyin);
+ }
+ else {
+ const code = word.charCodeAt(0);
+ this.NumberDICT[code] = pinyin;
+ }
+ }
+ clear() {
+ this.NumberDICT = [];
+ this.StringDICT.clear();
+ }
+}
+
+const map = {
+ 'bǎng páng pāng': ['膀'],
+ líng: [
+ '〇',
+ '伶',
+ '凌',
+ '刢',
+ '囹',
+ '坽',
+ '夌',
+ '姈',
+ '婈',
+ '孁',
+ '岺',
+ '彾',
+ '掕',
+ '昤',
+ '朎',
+ '柃',
+ '棂',
+ '櫺',
+ '欞',
+ '泠',
+ '淩',
+ '澪',
+ '灵',
+ '燯',
+ '爧',
+ '狑',
+ '玲',
+ '琌',
+ '瓴',
+ '皊',
+ '砱',
+ '祾',
+ '秢',
+ '竛',
+ '笭',
+ '紷',
+ '綾',
+ '绫',
+ '羐',
+ '羚',
+ '翎',
+ '聆',
+ '舲',
+ '苓',
+ '菱',
+ '蓤',
+ '蔆',
+ '蕶',
+ '蛉',
+ '衑',
+ '裬',
+ '詅',
+ '跉',
+ '軨',
+ '輘',
+ '酃',
+ '醽',
+ '鈴',
+ '錂',
+ '铃',
+ '閝',
+ '陵',
+ '零',
+ '霊',
+ '霗',
+ '霛',
+ '霝',
+ '靈',
+ '駖',
+ '魿',
+ '鯪',
+ '鲮',
+ '鴒',
+ '鸰',
+ '鹷',
+ '麢',
+ '齡',
+ '齢',
+ '龄',
+ '龗',
+ '㥄',
+ ],
+ yī: [
+ '一',
+ '乊',
+ '伊',
+ '依',
+ '医',
+ '吚',
+ '咿',
+ '噫',
+ '壱',
+ '壹',
+ '夁',
+ '嫛',
+ '嬄',
+ '弌',
+ '揖',
+ '撎',
+ '檹',
+ '毉',
+ '洢',
+ '渏',
+ '漪',
+ '瑿',
+ '畩',
+ '祎',
+ '禕',
+ '稦',
+ '繄',
+ '蛜',
+ '衤',
+ '譩',
+ '辷',
+ '郼',
+ '醫',
+ '銥',
+ '铱',
+ '鷖',
+ '鹥',
+ '黟',
+ '黳',
+ ],
+ 'dīng zhēng': ['丁'],
+ 'kǎo qiǎo yú': ['丂'],
+ qī: [
+ '七',
+ '倛',
+ '僛',
+ '凄',
+ '嘁',
+ '墄',
+ '娸',
+ '悽',
+ '慼',
+ '慽',
+ '戚',
+ '捿',
+ '柒',
+ '桤',
+ '桼',
+ '棲',
+ '榿',
+ '欺',
+ '沏',
+ '淒',
+ '漆',
+ '紪',
+ '緀',
+ '萋',
+ '褄',
+ '諆',
+ '迉',
+ '郪',
+ '鏚',
+ '霋',
+ '魌',
+ '鶈',
+ ],
+ shàng: ['丄', '尙', '尚', '恦', '緔', '绱'],
+ xià: [
+ '丅',
+ '下',
+ '乤',
+ '圷',
+ '夏',
+ '夓',
+ '懗',
+ '梺',
+ '疜',
+ '睱',
+ '罅',
+ '鎼',
+ '鏬',
+ ],
+ hǎn: ['丆', '喊', '浫', '罕', '豃', '㘎'],
+ 'wàn mò': ['万'],
+ zhàng: [
+ '丈',
+ '仗',
+ '墇',
+ '嶂',
+ '帐',
+ '帳',
+ '幛',
+ '扙',
+ '杖',
+ '涱',
+ '痮',
+ '瘬',
+ '瘴',
+ '瞕',
+ '粀',
+ '胀',
+ '脹',
+ '賬',
+ '账',
+ '障',
+ ],
+ sān: ['三', '厁', '叁', '弎', '毵', '毶', '毿', '犙', '鬖'],
+ 'shàng shǎng shang': ['上'],
+ 'qí jī': ['丌', '其', '奇'],
+ 'bù fǒu': ['不'],
+ 'yǔ yù yú': ['与'],
+ miǎn: [
+ '丏',
+ '偭',
+ '免',
+ '冕',
+ '勉',
+ '勔',
+ '喕',
+ '娩',
+ '愐',
+ '汅',
+ '沔',
+ '湎',
+ '睌',
+ '緬',
+ '缅',
+ '腼',
+ '葂',
+ '靦',
+ '鮸',
+ '𩾃',
+ ],
+ gài: [
+ '丐',
+ '乢',
+ '匃',
+ '匄',
+ '戤',
+ '概',
+ '槩',
+ '槪',
+ '溉',
+ '漑',
+ '瓂',
+ '葢',
+ '鈣',
+ '钙',
+ '𬮿',
+ ],
+ chǒu: ['丑', '丒', '侴', '吜', '杽', '瞅', '矁', '醜', '魗'],
+ zhuān: [
+ '专',
+ '叀',
+ '嫥',
+ '専',
+ '專',
+ '瑼',
+ '甎',
+ '砖',
+ '磗',
+ '磚',
+ '蟤',
+ '諯',
+ '鄟',
+ '顓',
+ '颛',
+ '鱄',
+ '䏝',
+ ],
+ 'qiě jū': ['且'],
+ pī: [
+ '丕',
+ '伓',
+ '伾',
+ '噼',
+ '坯',
+ '岯',
+ '憵',
+ '批',
+ '披',
+ '炋',
+ '狉',
+ '狓',
+ '砒',
+ '磇',
+ '礔',
+ '礕',
+ '秛',
+ '秠',
+ '耚',
+ '豾',
+ '邳',
+ '鈚',
+ '鉟',
+ '銔',
+ '錃',
+ '錍',
+ '霹',
+ '駓',
+ '髬',
+ '魾',
+ '𬳵',
+ ],
+ shì: [
+ '世',
+ '丗',
+ '亊',
+ '事',
+ '仕',
+ '侍',
+ '冟',
+ '势',
+ '勢',
+ '卋',
+ '呩',
+ '嗜',
+ '噬',
+ '士',
+ '奭',
+ '嬕',
+ '室',
+ '市',
+ '式',
+ '弑',
+ '弒',
+ '恀',
+ '恃',
+ '戺',
+ '拭',
+ '揓',
+ '是',
+ '昰',
+ '枾',
+ '柿',
+ '栻',
+ '澨',
+ '烒',
+ '煶',
+ '眂',
+ '眎',
+ '眡',
+ '睗',
+ '示',
+ '礻',
+ '筮',
+ '簭',
+ '舐',
+ '舓',
+ '襫',
+ '視',
+ '视',
+ '觢',
+ '試',
+ '誓',
+ '諡',
+ '謚',
+ '试',
+ '谥',
+ '貰',
+ '贳',
+ '軾',
+ '轼',
+ '逝',
+ '遾',
+ '釈',
+ '释',
+ '釋',
+ '鈰',
+ '鉃',
+ '鉽',
+ '铈',
+ '飾',
+ '餙',
+ '餝',
+ '饰',
+ '鰘',
+ '䏡',
+ '𬤊',
+ ],
+ qiū: [
+ '丘',
+ '丠',
+ '坵',
+ '媝',
+ '恘',
+ '恷',
+ '楸',
+ '秋',
+ '秌',
+ '穐',
+ '篍',
+ '緧',
+ '萩',
+ '蘒',
+ '蚯',
+ '蝵',
+ '蟗',
+ '蠤',
+ '趥',
+ '邱',
+ '鞦',
+ '鞧',
+ '鰌',
+ '鰍',
+ '鳅',
+ '鶖',
+ '鹙',
+ '龝',
+ ],
+ bǐng: [
+ '丙',
+ '屛',
+ '怲',
+ '抦',
+ '昞',
+ '昺',
+ '柄',
+ '棅',
+ '炳',
+ '禀',
+ '秉',
+ '稟',
+ '苪',
+ '蛃',
+ '邴',
+ '鈵',
+ '陃',
+ '鞆',
+ '餅',
+ '餠',
+ '饼',
+ ],
+ yè: [
+ '业',
+ '亱',
+ '僷',
+ '墷',
+ '夜',
+ '嶪',
+ '嶫',
+ '抴',
+ '捙',
+ '擛',
+ '擪',
+ '擫',
+ '晔',
+ '曄',
+ '曅',
+ '曗',
+ '曳',
+ '曵',
+ '枼',
+ '枽',
+ '業',
+ '洂',
+ '液',
+ '澲',
+ '烨',
+ '燁',
+ '爗',
+ '璍',
+ '皣',
+ '瞱',
+ '瞸',
+ '礏',
+ '腋',
+ '葉',
+ '謁',
+ '谒',
+ '邺',
+ '鄴',
+ '鍱',
+ '鐷',
+ '靥',
+ '靨',
+ '頁',
+ '页',
+ '餣',
+ '饁',
+ '馌',
+ '驜',
+ '鵺',
+ '鸈',
+ ],
+ cóng: [
+ '丛',
+ '从',
+ '叢',
+ '婃',
+ '孮',
+ '従',
+ '徔',
+ '徖',
+ '悰',
+ '樷',
+ '欉',
+ '淙',
+ '灇',
+ '爜',
+ '琮',
+ '藂',
+ '誴',
+ '賨',
+ '賩',
+ '錝',
+ ],
+ dōng: [
+ '东',
+ '倲',
+ '冬',
+ '咚',
+ '埬',
+ '岽',
+ '崬',
+ '徚',
+ '昸',
+ '東',
+ '氡',
+ '氭',
+ '涷',
+ '笗',
+ '苳',
+ '菄',
+ '蝀',
+ '鮗',
+ '鯟',
+ '鶇',
+ '鶫',
+ '鸫',
+ '鼕',
+ '𬟽',
+ ],
+ sī: [
+ '丝',
+ '俬',
+ '凘',
+ '厮',
+ '司',
+ '咝',
+ '嘶',
+ '噝',
+ '媤',
+ '廝',
+ '恖',
+ '撕',
+ '斯',
+ '楒',
+ '泀',
+ '澌',
+ '燍',
+ '禗',
+ '禠',
+ '私',
+ '糹',
+ '絲',
+ '緦',
+ '纟',
+ '缌',
+ '罳',
+ '蕬',
+ '虒',
+ '蛳',
+ '蜤',
+ '螄',
+ '蟖',
+ '蟴',
+ '鉰',
+ '銯',
+ '鍶',
+ '鐁',
+ '锶',
+ '颸',
+ '飔',
+ '騦',
+ '鷥',
+ '鸶',
+ '鼶',
+ '㟃',
+ ],
+ chéng: [
+ '丞',
+ '呈',
+ '城',
+ '埕',
+ '堘',
+ '塍',
+ '塖',
+ '宬',
+ '峸',
+ '惩',
+ '懲',
+ '成',
+ '承',
+ '挰',
+ '掁',
+ '揨',
+ '枨',
+ '棖',
+ '橙',
+ '檙',
+ '洆',
+ '溗',
+ '澂',
+ '珵',
+ '珹',
+ '畻',
+ '程',
+ '窚',
+ '筬',
+ '絾',
+ '脭',
+ '荿',
+ '誠',
+ '诚',
+ '郕',
+ '酲',
+ '鋮',
+ '铖',
+ '騬',
+ '鯎',
+ ],
+ diū: ['丟', '丢', '銩', '铥'],
+ liǎng: [
+ '両',
+ '两',
+ '兩',
+ '唡',
+ '啢',
+ '掚',
+ '緉',
+ '脼',
+ '蜽',
+ '裲',
+ '魉',
+ '魎',
+ '𬜯',
+ ],
+ yǒu: [
+ '丣',
+ '卣',
+ '友',
+ '梄',
+ '湵',
+ '牖',
+ '禉',
+ '羑',
+ '聈',
+ '苃',
+ '莠',
+ '蜏',
+ '酉',
+ '銪',
+ '铕',
+ '黝',
+ ],
+ yán: [
+ '严',
+ '厳',
+ '啱',
+ '喦',
+ '嚴',
+ '塩',
+ '壛',
+ '壧',
+ '妍',
+ '姸',
+ '娫',
+ '娮',
+ '岩',
+ '嵒',
+ '嵓',
+ '巌',
+ '巖',
+ '巗',
+ '延',
+ '揅',
+ '昖',
+ '楌',
+ '檐',
+ '櫩',
+ '欕',
+ '沿',
+ '炎',
+ '炏',
+ '狿',
+ '琂',
+ '盐',
+ '碞',
+ '筵',
+ '簷',
+ '莚',
+ '蔅',
+ '虤',
+ '蜒',
+ '言',
+ '訁',
+ '訮',
+ '詽',
+ '讠',
+ '郔',
+ '閆',
+ '閻',
+ '闫',
+ '阎',
+ '顏',
+ '顔',
+ '颜',
+ '鹽',
+ '麣',
+ '𫄧',
+ ],
+ bìng: [
+ '並',
+ '併',
+ '倂',
+ '傡',
+ '垪',
+ '摒',
+ '栤',
+ '病',
+ '窉',
+ '竝',
+ '誁',
+ '靐',
+ '鮩',
+ ],
+ 'sàng sāng': ['丧'],
+ gǔn: [
+ '丨',
+ '惃',
+ '滚',
+ '滾',
+ '磙',
+ '緄',
+ '绲',
+ '蓘',
+ '蔉',
+ '衮',
+ '袞',
+ '輥',
+ '辊',
+ '鮌',
+ '鯀',
+ '鲧',
+ ],
+ jiū: [
+ '丩',
+ '勼',
+ '啾',
+ '揪',
+ '揫',
+ '朻',
+ '究',
+ '糾',
+ '纠',
+ '萛',
+ '赳',
+ '阄',
+ '鬏',
+ '鬮',
+ '鳩',
+ '鸠',
+ ],
+ 'gè gě': ['个', '個', '各'],
+ yā: [
+ '丫',
+ '圧',
+ '孲',
+ '庘',
+ '押',
+ '枒',
+ '桠',
+ '椏',
+ '錏',
+ '鐚',
+ '鴉',
+ '鴨',
+ '鵶',
+ '鸦',
+ '鸭',
+ ],
+ pán: [
+ '丬',
+ '媻',
+ '幋',
+ '槃',
+ '洀',
+ '瀊',
+ '爿',
+ '盘',
+ '盤',
+ '磐',
+ '縏',
+ '蒰',
+ '蟠',
+ '蹒',
+ '蹣',
+ '鎜',
+ '鞶',
+ ],
+ 'zhōng zhòng': ['中'],
+ jǐ: [
+ '丮',
+ '妀',
+ '己',
+ '戟',
+ '挤',
+ '掎',
+ '撠',
+ '擠',
+ '橶',
+ '泲',
+ '犱',
+ '脊',
+ '虮',
+ '蟣',
+ '魢',
+ '鱾',
+ '麂',
+ ],
+ jiè: [
+ '丯',
+ '介',
+ '借',
+ '唶',
+ '堺',
+ '屆',
+ '届',
+ '岕',
+ '庎',
+ '徣',
+ '戒',
+ '楐',
+ '犗',
+ '玠',
+ '琾',
+ '界',
+ '畍',
+ '疥',
+ '砎',
+ '蚧',
+ '蛶',
+ '衸',
+ '褯',
+ '誡',
+ '诫',
+ '鎅',
+ '骱',
+ '魪',
+ ],
+ fēng: [
+ '丰',
+ '仹',
+ '偑',
+ '僼',
+ '凨',
+ '凬',
+ '凮',
+ '妦',
+ '寷',
+ '封',
+ '峯',
+ '峰',
+ '崶',
+ '枫',
+ '楓',
+ '檒',
+ '沣',
+ '沨',
+ '渢',
+ '灃',
+ '烽',
+ '犎',
+ '猦',
+ '琒',
+ '疯',
+ '瘋',
+ '盽',
+ '砜',
+ '碸',
+ '篈',
+ '蘴',
+ '蜂',
+ '蠭',
+ '豐',
+ '鄷',
+ '酆',
+ '鋒',
+ '鎽',
+ '鏠',
+ '锋',
+ '霻',
+ '靊',
+ '飌',
+ '麷',
+ ],
+ 'guàn kuàng': ['丱'],
+ chuàn: ['串', '汌', '玔', '賗', '釧', '钏'],
+ chǎn: [
+ '丳',
+ '产',
+ '冁',
+ '剷',
+ '囅',
+ '嵼',
+ '旵',
+ '浐',
+ '滻',
+ '灛',
+ '產',
+ '産',
+ '簅',
+ '蒇',
+ '蕆',
+ '諂',
+ '譂',
+ '讇',
+ '谄',
+ '鏟',
+ '铲',
+ '閳',
+ '闡',
+ '阐',
+ '骣',
+ '𬊤',
+ ],
+ lín: [
+ '临',
+ '冧',
+ '壣',
+ '崊',
+ '嶙',
+ '斴',
+ '晽',
+ '暽',
+ '林',
+ '潾',
+ '瀶',
+ '燐',
+ '琳',
+ '璘',
+ '瞵',
+ '碄',
+ '磷',
+ '粦',
+ '粼',
+ '繗',
+ '翷',
+ '臨',
+ '轔',
+ '辚',
+ '遴',
+ '邻',
+ '鄰',
+ '鏻',
+ '阾',
+ '隣',
+ '霖',
+ '驎',
+ '鱗',
+ '鳞',
+ '麐',
+ '麟',
+ '𬴊',
+ '𬭸',
+ ],
+ zhuó: [
+ '丵',
+ '劅',
+ '卓',
+ '啄',
+ '圴',
+ '妰',
+ '娺',
+ '撯',
+ '擆',
+ '擢',
+ '斫',
+ '斮',
+ '斱',
+ '斲',
+ '斵',
+ '晫',
+ '椓',
+ '浊',
+ '浞',
+ '濁',
+ '灼',
+ '烵',
+ '琸',
+ '硺',
+ '禚',
+ '窡',
+ '籗',
+ '籱',
+ '罬',
+ '茁',
+ '蠗',
+ '蠿',
+ '諁',
+ '諑',
+ '謶',
+ '诼',
+ '酌',
+ '鐲',
+ '镯',
+ '鵫',
+ '鷟',
+ '䓬',
+ '𬸦',
+ ],
+ zhǔ: [
+ '丶',
+ '主',
+ '劯',
+ '嘱',
+ '囑',
+ '宔',
+ '帾',
+ '拄',
+ '渚',
+ '濐',
+ '煑',
+ '煮',
+ '燝',
+ '瞩',
+ '矚',
+ '罜',
+ '詝',
+ '陼',
+ '鸀',
+ '麈',
+ '𬣞',
+ ],
+ bā: [
+ '丷',
+ '仈',
+ '八',
+ '叭',
+ '哵',
+ '夿',
+ '岜',
+ '巴',
+ '捌',
+ '朳',
+ '玐',
+ '疤',
+ '笆',
+ '粑',
+ '羓',
+ '芭',
+ '蚆',
+ '豝',
+ '釟',
+ ],
+ wán: [
+ '丸',
+ '刓',
+ '完',
+ '岏',
+ '抏',
+ '捖',
+ '汍',
+ '烷',
+ '玩',
+ '琓',
+ '笂',
+ '紈',
+ '纨',
+ '翫',
+ '芄',
+ '貦',
+ '頑',
+ '顽',
+ ],
+ dān: [
+ '丹',
+ '勯',
+ '匰',
+ '単',
+ '妉',
+ '媅',
+ '殚',
+ '殫',
+ '甔',
+ '眈',
+ '砃',
+ '箪',
+ '簞',
+ '耼',
+ '耽',
+ '聃',
+ '聸',
+ '褝',
+ '襌',
+ '躭',
+ '郸',
+ '鄲',
+ '酖',
+ '頕',
+ ],
+ 'wèi wéi': ['为'],
+ 'jǐng dǎn': ['丼'],
+ 'lì lí': ['丽'],
+ jǔ: [
+ '举',
+ '弆',
+ '挙',
+ '擧',
+ '椇',
+ '榉',
+ '榘',
+ '櫸',
+ '欅',
+ '矩',
+ '筥',
+ '聥',
+ '舉',
+ '莒',
+ '蒟',
+ '襷',
+ '踽',
+ '齟',
+ '龃',
+ ],
+ piě: ['丿', '苤', '鐅', '𬭯'],
+ fú: [
+ '乀',
+ '伏',
+ '俘',
+ '凫',
+ '刜',
+ '匐',
+ '咈',
+ '哹',
+ '垘',
+ '孚',
+ '岪',
+ '巿',
+ '帗',
+ '幅',
+ '幞',
+ '弗',
+ '彿',
+ '怫',
+ '扶',
+ '柫',
+ '栿',
+ '桴',
+ '氟',
+ '泭',
+ '浮',
+ '涪',
+ '澓',
+ '炥',
+ '玸',
+ '甶',
+ '畉',
+ '癁',
+ '祓',
+ '福',
+ '稪',
+ '符',
+ '箙',
+ '紱',
+ '紼',
+ '絥',
+ '綍',
+ '绂',
+ '绋',
+ '罘',
+ '罦',
+ '翇',
+ '艀',
+ '芙',
+ '芣',
+ '苻',
+ '茀',
+ '茯',
+ '菔',
+ '葍',
+ '虙',
+ '蚨',
+ '蜉',
+ '蝠',
+ '袚',
+ '袱',
+ '襆',
+ '襥',
+ '諨',
+ '豧',
+ '踾',
+ '輻',
+ '辐',
+ '郛',
+ '鉘',
+ '鉜',
+ '韍',
+ '韨',
+ '颫',
+ '髴',
+ '鮄',
+ '鮲',
+ '鳧',
+ '鳬',
+ '鴔',
+ '鵩',
+ '黻',
+ ],
+ 'yí jí': ['乁'],
+ yì: [
+ '乂',
+ '义',
+ '亄',
+ '亦',
+ '亿',
+ '伇',
+ '伿',
+ '佾',
+ '俋',
+ '億',
+ '兿',
+ '刈',
+ '劓',
+ '劮',
+ '勚',
+ '勩',
+ '匇',
+ '呓',
+ '呭',
+ '呹',
+ '唈',
+ '囈',
+ '圛',
+ '坄',
+ '垼',
+ '埸',
+ '奕',
+ '嫕',
+ '嬑',
+ '寱',
+ '屹',
+ '峄',
+ '嶧',
+ '帟',
+ '帠',
+ '幆',
+ '廙',
+ '异',
+ '弈',
+ '弋',
+ '役',
+ '忆',
+ '怈',
+ '怿',
+ '悒',
+ '意',
+ '憶',
+ '懌',
+ '懿',
+ '抑',
+ '挹',
+ '敡',
+ '易',
+ '晹',
+ '曀',
+ '曎',
+ '杙',
+ '枍',
+ '棭',
+ '榏',
+ '槸',
+ '檍',
+ '歝',
+ '殔',
+ '殪',
+ '殹',
+ '毅',
+ '浂',
+ '浥',
+ '浳',
+ '湙',
+ '溢',
+ '潩',
+ '澺',
+ '瀷',
+ '炈',
+ '焲',
+ '熠',
+ '熤',
+ '熼',
+ '燚',
+ '燡',
+ '燱',
+ '獈',
+ '玴',
+ '異',
+ '疫',
+ '痬',
+ '瘗',
+ '瘞',
+ '瘱',
+ '癔',
+ '益',
+ '瞖',
+ '穓',
+ '竩',
+ '篒',
+ '縊',
+ '繶',
+ '繹',
+ '绎',
+ '缢',
+ '義',
+ '羿',
+ '翊',
+ '翌',
+ '翳',
+ '翼',
+ '耴',
+ '肄',
+ '肊',
+ '膉',
+ '臆',
+ '艗',
+ '艺',
+ '芅',
+ '苅',
+ '萟',
+ '蓺',
+ '薏',
+ '藙',
+ '藝',
+ '蘙',
+ '虉',
+ '蜴',
+ '螠',
+ '衪',
+ '袣',
+ '裔',
+ '裛',
+ '褹',
+ '襼',
+ '訲',
+ '訳',
+ '詍',
+ '詣',
+ '誼',
+ '譯',
+ '議',
+ '讛',
+ '议',
+ '译',
+ '诣',
+ '谊',
+ '豙',
+ '豛',
+ '豷',
+ '貖',
+ '贀',
+ '跇',
+ '轶',
+ '逸',
+ '邑',
+ '鄓',
+ '醷',
+ '釴',
+ '鈠',
+ '鎰',
+ '鐿',
+ '镒',
+ '镱',
+ '阣',
+ '隿',
+ '霬',
+ '饐',
+ '駅',
+ '驛',
+ '驿',
+ '骮',
+ '鮨',
+ '鶂',
+ '鶃',
+ '鶍',
+ '鷁',
+ '鷊',
+ '鷧',
+ '鷾',
+ '鸃',
+ '鹝',
+ '鹢',
+ '黓',
+ '齸',
+ '𬬩',
+ '㑊',
+ '𫄷',
+ '𬟁',
+ ],
+ nǎi: ['乃', '倷', '奶', '嬭', '廼', '氖', '疓', '艿', '迺', '釢'],
+ wǔ: [
+ '乄',
+ '五',
+ '仵',
+ '伍',
+ '侮',
+ '倵',
+ '儛',
+ '午',
+ '啎',
+ '妩',
+ '娬',
+ '嫵',
+ '庑',
+ '廡',
+ '忤',
+ '怃',
+ '憮',
+ '摀',
+ '武',
+ '潕',
+ '熓',
+ '牾',
+ '玝',
+ '珷',
+ '瑦',
+ '甒',
+ '碔',
+ '舞',
+ '躌',
+ '迕',
+ '逜',
+ '陚',
+ '鵡',
+ '鹉',
+ '𣲘',
+ ],
+ jiǔ: [
+ '久',
+ '乆',
+ '九',
+ '乣',
+ '奺',
+ '杦',
+ '汣',
+ '灸',
+ '玖',
+ '紤',
+ '舏',
+ '酒',
+ '镹',
+ '韭',
+ '韮',
+ ],
+ 'tuō zhé': ['乇', '杔', '馲'],
+ 'me mó ma yāo': ['么'],
+ zhī: [
+ '之',
+ '倁',
+ '卮',
+ '巵',
+ '搘',
+ '支',
+ '栀',
+ '梔',
+ '椥',
+ '榰',
+ '汁',
+ '泜',
+ '疷',
+ '祗',
+ '祬',
+ '秓',
+ '稙',
+ '綕',
+ '肢',
+ '胑',
+ '胝',
+ '脂',
+ '芝',
+ '蘵',
+ '蜘',
+ '衼',
+ '隻',
+ '鳷',
+ '鴲',
+ '鼅',
+ '𦭜',
+ ],
+ 'wū wù': ['乌'],
+ zhà: [
+ '乍',
+ '咤',
+ '宱',
+ '搾',
+ '榨',
+ '溠',
+ '痄',
+ '蚱',
+ '詐',
+ '诈',
+ '醡',
+ '霅',
+ '䃎',
+ ],
+ hū: [
+ '乎',
+ '乯',
+ '匢',
+ '匫',
+ '呼',
+ '唿',
+ '嘑',
+ '垀',
+ '寣',
+ '幠',
+ '忽',
+ '惚',
+ '昒',
+ '歑',
+ '泘',
+ '淴',
+ '滹',
+ '烀',
+ '苸',
+ '虍',
+ '虖',
+ '謼',
+ '軤',
+ '轷',
+ '雐',
+ ],
+ fá: [
+ '乏',
+ '伐',
+ '傠',
+ '坺',
+ '垡',
+ '墢',
+ '姂',
+ '栰',
+ '浌',
+ '瞂',
+ '笩',
+ '筏',
+ '罚',
+ '罰',
+ '罸',
+ '藅',
+ '閥',
+ '阀',
+ ],
+ 'lè yuè yào lào': ['乐', '樂'],
+ yín: [
+ '乑',
+ '吟',
+ '噖',
+ '嚚',
+ '圁',
+ '垠',
+ '夤',
+ '婬',
+ '寅',
+ '峾',
+ '崟',
+ '崯',
+ '檭',
+ '殥',
+ '泿',
+ '淫',
+ '滛',
+ '烎',
+ '犾',
+ '狺',
+ '璌',
+ '硍',
+ '碒',
+ '荶',
+ '蔩',
+ '訔',
+ '訚',
+ '訡',
+ '誾',
+ '鄞',
+ '鈝',
+ '銀',
+ '银',
+ '霪',
+ '鷣',
+ '齦',
+ ],
+ pīng: ['乒', '俜', '娉', '涄', '甹', '砯', '聠', '艵', '頩'],
+ pāng: ['乓', '滂', '胮', '膖', '雱', '霶'],
+ qiáo: [
+ '乔',
+ '侨',
+ '僑',
+ '嫶',
+ '憔',
+ '桥',
+ '槗',
+ '樵',
+ '橋',
+ '櫵',
+ '犞',
+ '瞧',
+ '硚',
+ '礄',
+ '荍',
+ '荞',
+ '蕎',
+ '藮',
+ '譙',
+ '趫',
+ '鐈',
+ '鞒',
+ '鞽',
+ '顦',
+ ],
+ hǔ: ['乕', '琥', '萀', '虎', '虝', '錿', '鯱'],
+ guāi: ['乖'],
+ 'chéng shèng': ['乗', '乘', '娍'],
+ yǐ: [
+ '乙',
+ '乛',
+ '以',
+ '倚',
+ '偯',
+ '嬟',
+ '崺',
+ '已',
+ '庡',
+ '扆',
+ '攺',
+ '敼',
+ '旑',
+ '旖',
+ '檥',
+ '矣',
+ '礒',
+ '笖',
+ '舣',
+ '艤',
+ '苡',
+ '苢',
+ '蚁',
+ '螘',
+ '蟻',
+ '裿',
+ '踦',
+ '輢',
+ '轙',
+ '逘',
+ '酏',
+ '釔',
+ '鈘',
+ '鉯',
+ '钇',
+ '顗',
+ '鳦',
+ '齮',
+ '𫖮',
+ '𬺈',
+ ],
+ 'háo yǐ': ['乚'],
+ 'niè miē': ['乜'],
+ qǐ: [
+ '乞',
+ '企',
+ '启',
+ '唘',
+ '啓',
+ '啔',
+ '啟',
+ '婍',
+ '屺',
+ '杞',
+ '棨',
+ '玘',
+ '盀',
+ '綺',
+ '绮',
+ '芑',
+ '諬',
+ '起',
+ '邔',
+ '闙',
+ ],
+ yě: ['也', '冶', '嘢', '埜', '壄', '漜', '野'],
+ xí: [
+ '习',
+ '喺',
+ '媳',
+ '嶍',
+ '席',
+ '椺',
+ '檄',
+ '漝',
+ '習',
+ '蓆',
+ '袭',
+ '襲',
+ '覡',
+ '觋',
+ '謵',
+ '趘',
+ '郋',
+ '鎴',
+ '隰',
+ '霫',
+ '飁',
+ '騱',
+ '騽',
+ '驨',
+ '鰼',
+ '鳛',
+ '𠅤',
+ '𫘬',
+ ],
+ xiāng: [
+ '乡',
+ '厢',
+ '廂',
+ '忀',
+ '楿',
+ '欀',
+ '湘',
+ '瓖',
+ '稥',
+ '箱',
+ '緗',
+ '缃',
+ '膷',
+ '芗',
+ '萫',
+ '葙',
+ '薌',
+ '襄',
+ '郷',
+ '鄉',
+ '鄊',
+ '鄕',
+ '鑲',
+ '镶',
+ '香',
+ '驤',
+ '骧',
+ '鱜',
+ '麘',
+ '𬙋',
+ ],
+ shū: [
+ '书',
+ '倏',
+ '倐',
+ '儵',
+ '叔',
+ '姝',
+ '尗',
+ '抒',
+ '掓',
+ '摅',
+ '攄',
+ '書',
+ '枢',
+ '梳',
+ '樞',
+ '殊',
+ '殳',
+ '毹',
+ '毺',
+ '淑',
+ '瀭',
+ '焂',
+ '疎',
+ '疏',
+ '紓',
+ '綀',
+ '纾',
+ '舒',
+ '菽',
+ '蔬',
+ '踈',
+ '軗',
+ '輸',
+ '输',
+ '鄃',
+ '陎',
+ '鮛',
+ '鵨',
+ ],
+ dǒu: ['乧', '抖', '枓', '蚪', '鈄', '阧', '陡'],
+ shǐ: [
+ '乨',
+ '使',
+ '兘',
+ '史',
+ '始',
+ '宩',
+ '屎',
+ '榁',
+ '矢',
+ '笶',
+ '豕',
+ '鉂',
+ '駛',
+ '驶',
+ ],
+ jī: [
+ '乩',
+ '僟',
+ '击',
+ '刉',
+ '刏',
+ '剞',
+ '叽',
+ '唧',
+ '喞',
+ '嗘',
+ '嘰',
+ '圾',
+ '基',
+ '墼',
+ '姬',
+ '屐',
+ '嵆',
+ '嵇',
+ '撃',
+ '擊',
+ '朞',
+ '机',
+ '枅',
+ '樭',
+ '機',
+ '毄',
+ '激',
+ '犄',
+ '玑',
+ '璣',
+ '畸',
+ '畿',
+ '癪',
+ '矶',
+ '磯',
+ '积',
+ '積',
+ '笄',
+ '筓',
+ '箕',
+ '簊',
+ '緁',
+ '羁',
+ '羇',
+ '羈',
+ '耭',
+ '肌',
+ '芨',
+ '虀',
+ '覉',
+ '覊',
+ '譏',
+ '譤',
+ '讥',
+ '賫',
+ '賷',
+ '赍',
+ '跻',
+ '踑',
+ '躋',
+ '躸',
+ '銈',
+ '錤',
+ '鐖',
+ '鑇',
+ '鑙',
+ '隮',
+ '雞',
+ '鞿',
+ '韲',
+ '飢',
+ '饑',
+ '饥',
+ '魕',
+ '鳮',
+ '鶏',
+ '鶺',
+ '鷄',
+ '鸄',
+ '鸡',
+ '齎',
+ '齏',
+ '齑',
+ '𬯀',
+ '𫓯',
+ '𫓹',
+ '𫌀',
+ ],
+ náng: ['乪', '嚢', '欜', '蠰', '饢'],
+ jiā: [
+ '乫',
+ '佳',
+ '傢',
+ '加',
+ '嘉',
+ '抸',
+ '枷',
+ '梜',
+ '毠',
+ '泇',
+ '浃',
+ '浹',
+ '犌',
+ '猳',
+ '珈',
+ '痂',
+ '笳',
+ '糘',
+ '耞',
+ '腵',
+ '葭',
+ '袈',
+ '豭',
+ '貑',
+ '跏',
+ '迦',
+ '鉫',
+ '鎵',
+ '镓',
+ '鴐',
+ '麚',
+ '𬂩',
+ ],
+ jù: [
+ '乬',
+ '倨',
+ '倶',
+ '具',
+ '剧',
+ '劇',
+ '勮',
+ '埧',
+ '埾',
+ '壉',
+ '姖',
+ '屦',
+ '屨',
+ '岠',
+ '巨',
+ '巪',
+ '怇',
+ '惧',
+ '愳',
+ '懅',
+ '懼',
+ '拒',
+ '拠',
+ '昛',
+ '歫',
+ '洰',
+ '澽',
+ '炬',
+ '烥',
+ '犋',
+ '秬',
+ '窭',
+ '窶',
+ '簴',
+ '粔',
+ '耟',
+ '聚',
+ '虡',
+ '蚷',
+ '詎',
+ '讵',
+ '豦',
+ '距',
+ '踞',
+ '躆',
+ '遽',
+ '邭',
+ '醵',
+ '鉅',
+ '鐻',
+ '钜',
+ '颶',
+ '飓',
+ '駏',
+ '鮔',
+ ],
+ shí: [
+ '乭',
+ '十',
+ '埘',
+ '塒',
+ '姼',
+ '实',
+ '実',
+ '寔',
+ '實',
+ '峕',
+ '嵵',
+ '时',
+ '旹',
+ '時',
+ '榯',
+ '湜',
+ '溡',
+ '炻',
+ '祏',
+ '竍',
+ '蚀',
+ '蝕',
+ '辻',
+ '遈',
+ '鉐',
+ '飠',
+ '饣',
+ '鮖',
+ '鰣',
+ '鲥',
+ '鼫',
+ '鼭',
+ ],
+ mǎo: ['乮', '冇', '卯', '峁', '戼', '昴', '泖', '笷', '蓩', '鉚', '铆'],
+ mǎi: ['买', '嘪', '荬', '蕒', '買', '鷶'],
+ luàn: ['乱', '亂', '釠'],
+ rǔ: ['乳', '擩', '汝', '肗', '辱', '鄏'],
+ xué: [
+ '乴',
+ '学',
+ '學',
+ '峃',
+ '嶨',
+ '斈',
+ '泶',
+ '澩',
+ '燢',
+ '穴',
+ '茓',
+ '袕',
+ '踅',
+ '鷽',
+ '鸴',
+ ],
+ yǎn: [
+ '䶮',
+ '乵',
+ '俨',
+ '偃',
+ '儼',
+ '兖',
+ '兗',
+ '厣',
+ '厴',
+ '噞',
+ '孍',
+ '嵃',
+ '巘',
+ '巚',
+ '弇',
+ '愝',
+ '戭',
+ '扊',
+ '抁',
+ '掩',
+ '揜',
+ '曮',
+ '椼',
+ '檿',
+ '沇',
+ '渷',
+ '演',
+ '琰',
+ '甗',
+ '眼',
+ '罨',
+ '萒',
+ '蝘',
+ '衍',
+ '褗',
+ '躽',
+ '遃',
+ '郾',
+ '隒',
+ '顩',
+ '魇',
+ '魘',
+ '鰋',
+ '鶠',
+ '黡',
+ '黤',
+ '黬',
+ '黭',
+ '黶',
+ '鼴',
+ '鼹',
+ '齴',
+ '龑',
+ '𬸘',
+ '𬙂',
+ '𪩘',
+ ],
+ fǔ: [
+ '乶',
+ '俌',
+ '俛',
+ '俯',
+ '府',
+ '弣',
+ '抚',
+ '拊',
+ '撫',
+ '斧',
+ '椨',
+ '滏',
+ '焤',
+ '甫',
+ '盙',
+ '簠',
+ '腐',
+ '腑',
+ '蜅',
+ '輔',
+ '辅',
+ '郙',
+ '釜',
+ '釡',
+ '阝',
+ '頫',
+ '鬴',
+ '黼',
+ '㕮',
+ '𫖯',
+ ],
+ shā: [
+ '乷',
+ '唦',
+ '杀',
+ '桬',
+ '殺',
+ '毮',
+ '猀',
+ '痧',
+ '砂',
+ '硰',
+ '紗',
+ '繺',
+ '纱',
+ '蔱',
+ '裟',
+ '鎩',
+ '铩',
+ '閷',
+ '髿',
+ '魦',
+ '鯊',
+ '鯋',
+ '鲨',
+ ],
+ nǎ: ['乸', '雫'],
+ qián: [
+ '乹',
+ '亁',
+ '仱',
+ '偂',
+ '前',
+ '墘',
+ '媊',
+ '岒',
+ '拑',
+ '掮',
+ '榩',
+ '橬',
+ '歬',
+ '潛',
+ '潜',
+ '濳',
+ '灊',
+ '箝',
+ '葥',
+ '虔',
+ '軡',
+ '鈐',
+ '鉗',
+ '銭',
+ '錢',
+ '鎆',
+ '钤',
+ '钱',
+ '钳',
+ '靬',
+ '騚',
+ '騝',
+ '鰬',
+ '黔',
+ '黚',
+ ],
+ suǒ: [
+ '乺',
+ '唢',
+ '嗩',
+ '所',
+ '暛',
+ '溑',
+ '溹',
+ '琐',
+ '琑',
+ '瑣',
+ '索',
+ '褨',
+ '鎖',
+ '鎻',
+ '鏁',
+ '锁',
+ ],
+ yú: [
+ '乻',
+ '于',
+ '亐',
+ '伃',
+ '余',
+ '堣',
+ '堬',
+ '妤',
+ '娛',
+ '娯',
+ '娱',
+ '嬩',
+ '崳',
+ '嵎',
+ '嵛',
+ '愚',
+ '扵',
+ '揄',
+ '旟',
+ '楡',
+ '楰',
+ '榆',
+ '欤',
+ '歈',
+ '歟',
+ '歶',
+ '渔',
+ '渝',
+ '湡',
+ '漁',
+ '澞',
+ '牏',
+ '狳',
+ '玗',
+ '玙',
+ '瑜',
+ '璵',
+ '盂',
+ '睮',
+ '窬',
+ '竽',
+ '籅',
+ '羭',
+ '腴',
+ '臾',
+ '舁',
+ '舆',
+ '艅',
+ '茰',
+ '萮',
+ '萸',
+ '蕍',
+ '蘛',
+ '虞',
+ '虶',
+ '蝓',
+ '螸',
+ '衧',
+ '褕',
+ '覦',
+ '觎',
+ '諛',
+ '謣',
+ '谀',
+ '踰',
+ '輿',
+ '轝',
+ '逾',
+ '邘',
+ '酑',
+ '鍝',
+ '隅',
+ '雓',
+ '雩',
+ '餘',
+ '馀',
+ '騟',
+ '骬',
+ '髃',
+ '魚',
+ '魣',
+ '鮽',
+ '鯲',
+ '鰅',
+ '鱼',
+ '鷠',
+ '鸆',
+ '齵',
+ ],
+ zhù: [
+ '乼',
+ '伫',
+ '佇',
+ '住',
+ '坾',
+ '墸',
+ '壴',
+ '嵀',
+ '拀',
+ '杼',
+ '柱',
+ '樦',
+ '殶',
+ '注',
+ '炷',
+ '疰',
+ '眝',
+ '祝',
+ '祩',
+ '竚',
+ '筯',
+ '箸',
+ '篫',
+ '簗',
+ '紵',
+ '紸',
+ '纻',
+ '羜',
+ '翥',
+ '苎',
+ '莇',
+ '蛀',
+ '註',
+ '貯',
+ '贮',
+ '跓',
+ '軴',
+ '鉒',
+ '鋳',
+ '鑄',
+ '铸',
+ '馵',
+ '駐',
+ '驻',
+ ],
+ zhě: ['乽', '者', '褶', '襵', '赭', '踷', '鍺', '锗'],
+ 'qián gān': ['乾'],
+ 'zhì luàn': ['乿'],
+ guī: [
+ '亀',
+ '圭',
+ '妫',
+ '媯',
+ '嫢',
+ '嬀',
+ '帰',
+ '归',
+ '摫',
+ '椝',
+ '槻',
+ '槼',
+ '櫷',
+ '歸',
+ '珪',
+ '瑰',
+ '璝',
+ '瓌',
+ '皈',
+ '瞡',
+ '硅',
+ '茥',
+ '蘬',
+ '規',
+ '规',
+ '邽',
+ '郌',
+ '閨',
+ '闺',
+ '騩',
+ '鬶',
+ '鬹',
+ ],
+ 'lǐn lìn': ['亃'],
+ jué: [
+ '亅',
+ '决',
+ '刔',
+ '劂',
+ '匷',
+ '厥',
+ '噊',
+ '孒',
+ '孓',
+ '崛',
+ '崫',
+ '嶥',
+ '彏',
+ '憠',
+ '憰',
+ '戄',
+ '抉',
+ '挗',
+ '掘',
+ '攫',
+ '桷',
+ '橛',
+ '橜',
+ '欮',
+ '氒',
+ '決',
+ '灍',
+ '焳',
+ '熦',
+ '爑',
+ '爴',
+ '爵',
+ '獗',
+ '玃',
+ '玦',
+ '玨',
+ '珏',
+ '瑴',
+ '瘚',
+ '矍',
+ '矡',
+ '砄',
+ '絕',
+ '絶',
+ '绝',
+ '臄',
+ '芵',
+ '蕝',
+ '蕨',
+ '虳',
+ '蟨',
+ '蟩',
+ '觖',
+ '觮',
+ '觼',
+ '訣',
+ '譎',
+ '诀',
+ '谲',
+ '貜',
+ '赽',
+ '趉',
+ '蹷',
+ '躩',
+ '鈌',
+ '鐍',
+ '鐝',
+ '钁',
+ '镢',
+ '鴂',
+ '鴃',
+ '鷢',
+ '𫘝',
+ '㵐',
+ '𫔎',
+ ],
+ 'le liǎo': ['了'],
+ 'gè mā': ['亇'],
+ 'yǔ yú': ['予', '懙'],
+ zhēng: [
+ '争',
+ '佂',
+ '凧',
+ '姃',
+ '媜',
+ '峥',
+ '崝',
+ '崢',
+ '征',
+ '徰',
+ '炡',
+ '烝',
+ '爭',
+ '狰',
+ '猙',
+ '癥',
+ '眐',
+ '睁',
+ '睜',
+ '筝',
+ '箏',
+ '篜',
+ '聇',
+ '脀',
+ '蒸',
+ '踭',
+ '鉦',
+ '錚',
+ '鏳',
+ '鬇',
+ ],
+ èr: ['二', '刵', '咡', '弍', '弐', '樲', '誀', '貮', '貳', '贰', '髶'],
+ chù: [
+ '亍',
+ '傗',
+ '儊',
+ '怵',
+ '憷',
+ '搐',
+ '斶',
+ '歜',
+ '珿',
+ '琡',
+ '矗',
+ '竌',
+ '絀',
+ '绌',
+ '臅',
+ '触',
+ '觸',
+ '豖',
+ '鄐',
+ '閦',
+ '黜',
+ ],
+ kuī: ['亏', '刲', '岿', '巋', '盔', '窥', '窺', '聧', '虧', '闚', '顝'],
+ yún: [
+ '云',
+ '伝',
+ '勻',
+ '匀',
+ '囩',
+ '妘',
+ '愪',
+ '抣',
+ '昀',
+ '橒',
+ '沄',
+ '涢',
+ '溳',
+ '澐',
+ '熉',
+ '畇',
+ '秐',
+ '筼',
+ '篔',
+ '紜',
+ '縜',
+ '纭',
+ '耘',
+ '芸',
+ '蒷',
+ '蕓',
+ '郧',
+ '鄖',
+ '鋆',
+ '雲',
+ ],
+ hù: [
+ '互',
+ '冱',
+ '嗀',
+ '嚛',
+ '婟',
+ '嫭',
+ '嫮',
+ '岵',
+ '帍',
+ '弖',
+ '怙',
+ '戶',
+ '户',
+ '戸',
+ '戽',
+ '扈',
+ '护',
+ '昈',
+ '槴',
+ '沍',
+ '沪',
+ '滬',
+ '熩',
+ '瓠',
+ '祜',
+ '笏',
+ '簄',
+ '粐',
+ '綔',
+ '蔰',
+ '護',
+ '豰',
+ '鄠',
+ '鍙',
+ '頀',
+ '鱯',
+ '鳠',
+ '鳸',
+ '鸌',
+ '鹱',
+ ],
+ qí: [
+ '亓',
+ '剘',
+ '埼',
+ '岐',
+ '岓',
+ '崎',
+ '嵜',
+ '愭',
+ '掑',
+ '斉',
+ '斊',
+ '旂',
+ '旗',
+ '棊',
+ '棋',
+ '檱',
+ '櫀',
+ '歧',
+ '淇',
+ '濝',
+ '猉',
+ '玂',
+ '琦',
+ '琪',
+ '璂',
+ '畦',
+ '疧',
+ '碁',
+ '碕',
+ '祁',
+ '祈',
+ '祺',
+ '禥',
+ '竒',
+ '簯',
+ '簱',
+ '籏',
+ '粸',
+ '綥',
+ '綦',
+ '肵',
+ '脐',
+ '臍',
+ '艩',
+ '芪',
+ '萁',
+ '萕',
+ '蕲',
+ '藄',
+ '蘄',
+ '蚑',
+ '蚚',
+ '蛴',
+ '蜝',
+ '蜞',
+ '螧',
+ '蠐',
+ '褀',
+ '軝',
+ '鄿',
+ '釮',
+ '錡',
+ '锜',
+ '陭',
+ '頎',
+ '颀',
+ '騎',
+ '騏',
+ '騹',
+ '骐',
+ '骑',
+ '鬐',
+ '鬿',
+ '鯕',
+ '鰭',
+ '鲯',
+ '鳍',
+ '鵸',
+ '鶀',
+ '麒',
+ '麡',
+ '𨙸',
+ '𬨂',
+ '䓫',
+ ],
+ jǐng: [
+ '井',
+ '儆',
+ '刭',
+ '剄',
+ '坓',
+ '宑',
+ '幜',
+ '憬',
+ '暻',
+ '殌',
+ '汫',
+ '汬',
+ '澋',
+ '璄',
+ '璟',
+ '璥',
+ '穽',
+ '肼',
+ '蟼',
+ '警',
+ '阱',
+ '頚',
+ '頸',
+ ],
+ sì: [
+ '亖',
+ '佀',
+ '価',
+ '儩',
+ '兕',
+ '嗣',
+ '四',
+ '姒',
+ '娰',
+ '孠',
+ '寺',
+ '巳',
+ '柶',
+ '榹',
+ '汜',
+ '泗',
+ '泤',
+ '洍',
+ '洠',
+ '涘',
+ '瀃',
+ '牭',
+ '祀',
+ '禩',
+ '竢',
+ '笥',
+ '耜',
+ '肂',
+ '肆',
+ '蕼',
+ '覗',
+ '貄',
+ '釲',
+ '鈶',
+ '鈻',
+ '飤',
+ '飼',
+ '饲',
+ '駟',
+ '騃',
+ '驷',
+ ],
+ suì: [
+ '亗',
+ '嬘',
+ '岁',
+ '嵗',
+ '旞',
+ '檖',
+ '歲',
+ '歳',
+ '澻',
+ '煫',
+ '燧',
+ '璲',
+ '砕',
+ '碎',
+ '祟',
+ '禭',
+ '穂',
+ '穗',
+ '穟',
+ '繀',
+ '繐',
+ '繸',
+ '襚',
+ '誶',
+ '譢',
+ '谇',
+ '賥',
+ '邃',
+ '鐆',
+ '鐩',
+ '隧',
+ '韢',
+ '𫟦',
+ '𬭼',
+ ],
+ gèn: ['亘', '亙', '揯', '搄', '茛'],
+ yà: [
+ '亚',
+ '亜',
+ '俹',
+ '冴',
+ '劜',
+ '圔',
+ '圠',
+ '埡',
+ '娅',
+ '婭',
+ '揠',
+ '氩',
+ '氬',
+ '犽',
+ '砑',
+ '稏',
+ '聐',
+ '襾',
+ '覀',
+ '訝',
+ '讶',
+ '迓',
+ '齾',
+ ],
+ 'xiē suò': ['些'],
+ 'qí zhāi': ['亝', '齊'],
+ 'yā yà': ['亞', '压', '垭', '壓', '铔'],
+ 'jí qì': ['亟', '焏'],
+ tóu: ['亠', '投', '頭', '骰'],
+ 'wáng wú': ['亡'],
+ 'kàng háng gāng': ['亢'],
+ dà: ['亣', '眔'],
+ jiāo: [
+ '交',
+ '僬',
+ '娇',
+ '嬌',
+ '峧',
+ '嶕',
+ '嶣',
+ '憍',
+ '椒',
+ '浇',
+ '澆',
+ '焦',
+ '礁',
+ '穚',
+ '簥',
+ '胶',
+ '膠',
+ '膲',
+ '茭',
+ '茮',
+ '蕉',
+ '虠',
+ '蛟',
+ '蟭',
+ '跤',
+ '轇',
+ '郊',
+ '鐎',
+ '驕',
+ '骄',
+ '鮫',
+ '鲛',
+ '鵁',
+ '鷦',
+ '鷮',
+ '鹪',
+ '䴔',
+ ],
+ hài: ['亥', '嗐', '害', '氦', '餀', '饚', '駭', '駴', '骇'],
+ 'hēng pēng': ['亨'],
+ mǔ: [
+ '亩',
+ '姆',
+ '峔',
+ '拇',
+ '母',
+ '牡',
+ '牳',
+ '畂',
+ '畆',
+ '畒',
+ '畝',
+ '畞',
+ '畮',
+ '砪',
+ '胟',
+ '踇',
+ '鉧',
+ '𬭁',
+ '𧿹',
+ ],
+ ye: ['亪'],
+ xiǎng: [
+ '享',
+ '亯',
+ '响',
+ '想',
+ '晑',
+ '蚃',
+ '蠁',
+ '響',
+ '飨',
+ '餉',
+ '饗',
+ '饷',
+ '鮝',
+ '鯗',
+ '鱶',
+ '鲞',
+ ],
+ jīng: [
+ '京',
+ '亰',
+ '兢',
+ '坕',
+ '坙',
+ '婛',
+ '惊',
+ '旌',
+ '旍',
+ '晶',
+ '橸',
+ '泾',
+ '涇',
+ '猄',
+ '睛',
+ '秔',
+ '稉',
+ '粳',
+ '精',
+ '経',
+ '經',
+ '綡',
+ '聙',
+ '腈',
+ '茎',
+ '荆',
+ '荊',
+ '菁',
+ '葏',
+ '驚',
+ '鯨',
+ '鲸',
+ '鶁',
+ '鶄',
+ '麖',
+ '麠',
+ '鼱',
+ '䴖',
+ ],
+ tíng: [
+ '亭',
+ '停',
+ '婷',
+ '嵉',
+ '庭',
+ '廷',
+ '楟',
+ '榳',
+ '筳',
+ '聤',
+ '莛',
+ '葶',
+ '蜓',
+ '蝏',
+ '諪',
+ '邒',
+ '霆',
+ '鼮',
+ '䗴',
+ ],
+ liàng: ['亮', '喨', '悢', '晾', '湸', '諒', '谅', '輌', '輛', '辆', '鍄'],
+ 'qīn qìng': ['亲', '親'],
+ bó: [
+ '亳',
+ '仢',
+ '侼',
+ '僰',
+ '博',
+ '帛',
+ '愽',
+ '懪',
+ '挬',
+ '搏',
+ '欂',
+ '浡',
+ '淿',
+ '渤',
+ '煿',
+ '牔',
+ '狛',
+ '瓝',
+ '礴',
+ '秡',
+ '箔',
+ '簙',
+ '糪',
+ '胉',
+ '脖',
+ '膊',
+ '舶',
+ '艊',
+ '萡',
+ '葧',
+ '袯',
+ '襏',
+ '襮',
+ '謈',
+ '踣',
+ '郣',
+ '鈸',
+ '鉑',
+ '鋍',
+ '鎛',
+ '鑮',
+ '钹',
+ '铂',
+ '镈',
+ '餺',
+ '馎',
+ '馛',
+ '馞',
+ '駁',
+ '駮',
+ '驳',
+ '髆',
+ '鵓',
+ '鹁',
+ ],
+ yòu: [
+ '亴',
+ '佑',
+ '佦',
+ '侑',
+ '又',
+ '右',
+ '哊',
+ '唀',
+ '囿',
+ '姷',
+ '宥',
+ '峟',
+ '幼',
+ '狖',
+ '祐',
+ '蚴',
+ '誘',
+ '诱',
+ '貁',
+ '迶',
+ '酭',
+ '釉',
+ '鼬',
+ ],
+ xiè: [
+ '亵',
+ '伳',
+ '偞',
+ '偰',
+ '僁',
+ '卨',
+ '卸',
+ '噧',
+ '塮',
+ '夑',
+ '媟',
+ '屑',
+ '屧',
+ '廨',
+ '徢',
+ '懈',
+ '暬',
+ '械',
+ '榍',
+ '榭',
+ '泻',
+ '洩',
+ '渫',
+ '澥',
+ '瀉',
+ '瀣',
+ '灺',
+ '炧',
+ '炨',
+ '燮',
+ '爕',
+ '獬',
+ '祄',
+ '禼',
+ '糏',
+ '紲',
+ '絏',
+ '絬',
+ '繲',
+ '纈',
+ '绁',
+ '缷',
+ '薢',
+ '薤',
+ '蟹',
+ '蠏',
+ '褉',
+ '褻',
+ '謝',
+ '谢',
+ '躞',
+ '邂',
+ '靾',
+ '韰',
+ '齂',
+ '齘',
+ '齛',
+ '齥',
+ '𬹼',
+ '𤫉',
+ ],
+ 'dǎn dàn': ['亶', '馾'],
+ lián: [
+ '亷',
+ '劆',
+ '匲',
+ '匳',
+ '嗹',
+ '噒',
+ '奁',
+ '奩',
+ '嫾',
+ '帘',
+ '廉',
+ '怜',
+ '憐',
+ '涟',
+ '漣',
+ '濂',
+ '濓',
+ '瀮',
+ '熑',
+ '燫',
+ '簾',
+ '籢',
+ '籨',
+ '縺',
+ '翴',
+ '联',
+ '聨',
+ '聫',
+ '聮',
+ '聯',
+ '臁',
+ '莲',
+ '蓮',
+ '薕',
+ '螊',
+ '蠊',
+ '裢',
+ '褳',
+ '覝',
+ '謰',
+ '蹥',
+ '连',
+ '連',
+ '鎌',
+ '鐮',
+ '镰',
+ '鬑',
+ '鰱',
+ '鲢',
+ ],
+ duǒ: [
+ '亸',
+ '哚',
+ '嚲',
+ '埵',
+ '崜',
+ '朵',
+ '朶',
+ '綞',
+ '缍',
+ '趓',
+ '躱',
+ '躲',
+ '軃',
+ ],
+ 'wěi mén': ['亹', '斖'],
+ rén: ['人', '亻', '仁', '壬', '忈', '忎', '朲', '秂', '芢', '魜', '鵀'],
+ jí: [
+ '亼',
+ '亽',
+ '伋',
+ '佶',
+ '偮',
+ '卙',
+ '即',
+ '卽',
+ '及',
+ '叝',
+ '吉',
+ '堲',
+ '塉',
+ '姞',
+ '嫉',
+ '岌',
+ '嵴',
+ '嶯',
+ '彶',
+ '忣',
+ '急',
+ '愱',
+ '戢',
+ '揤',
+ '极',
+ '棘',
+ '楫',
+ '極',
+ '槉',
+ '檝',
+ '殛',
+ '汲',
+ '湒',
+ '潗',
+ '疾',
+ '瘠',
+ '皍',
+ '笈',
+ '箿',
+ '籍',
+ '級',
+ '级',
+ '膌',
+ '艥',
+ '蒺',
+ '蕀',
+ '蕺',
+ '蝍',
+ '螏',
+ '襋',
+ '觙',
+ '谻',
+ '踖',
+ '蹐',
+ '躤',
+ '輯',
+ '轚',
+ '辑',
+ '郆',
+ '銡',
+ '鍓',
+ '鏶',
+ '集',
+ '雧',
+ '霵',
+ '鹡',
+ '㴔',
+ ],
+ wáng: ['亾', '仼', '兦', '莣', '蚟'],
+ 'shén shí': ['什'],
+ lè: [
+ '仂',
+ '叻',
+ '忇',
+ '氻',
+ '泐',
+ '玏',
+ '砳',
+ '簕',
+ '艻',
+ '阞',
+ '韷',
+ '餎',
+ '鰳',
+ '鱳',
+ '鳓',
+ ],
+ dīng: ['仃', '叮', '帄', '玎', '疔', '盯', '耵', '虰', '靪'],
+ zè: ['仄', '崱', '庂', '捑', '昃', '昗', '汄'],
+ 'jǐn jìn': ['仅', '僅', '嫤'],
+ 'pú pū': ['仆'],
+ 'chóu qiú': ['仇'],
+ zhǎng: ['仉', '幥', '掌', '礃'],
+ jīn: [
+ '今',
+ '堻',
+ '巾',
+ '惍',
+ '斤',
+ '津',
+ '珒',
+ '琻',
+ '璡',
+ '砛',
+ '筋',
+ '荕',
+ '衿',
+ '襟',
+ '觔',
+ '金',
+ '釒',
+ '釿',
+ '钅',
+ '鹶',
+ '黅',
+ '𬬱',
+ ],
+ bīng: ['仌', '仒', '兵', '冫', '冰', '掤', '氷', '鋲'],
+ réng: ['仍', '礽', '芿', '辸', '陾'],
+ fó: ['仏', '坲', '梻'],
+ 'jīn sǎn': ['仐'],
+ lún: [
+ '仑',
+ '伦',
+ '侖',
+ '倫',
+ '囵',
+ '圇',
+ '婨',
+ '崘',
+ '崙',
+ '棆',
+ '沦',
+ '淪',
+ '磮',
+ '腀',
+ '菕',
+ '蜦',
+ '踚',
+ '輪',
+ '轮',
+ '錀',
+ '陯',
+ '鯩',
+ '𬬭',
+ ],
+ cāng: [
+ '仓',
+ '仺',
+ '倉',
+ '凔',
+ '嵢',
+ '沧',
+ '滄',
+ '濸',
+ '獊',
+ '舱',
+ '艙',
+ '苍',
+ '蒼',
+ '螥',
+ '鸧',
+ ],
+ 'zǎi zǐ zī': ['仔'],
+ tā: ['他', '塌', '它', '榙', '溻', '牠', '祂', '褟', '趿', '遢', '闧'],
+ fù: [
+ '付',
+ '偩',
+ '傅',
+ '冨',
+ '副',
+ '咐',
+ '坿',
+ '复',
+ '妇',
+ '婦',
+ '媍',
+ '嬔',
+ '富',
+ '復',
+ '椱',
+ '祔',
+ '禣',
+ '竎',
+ '緮',
+ '縛',
+ '缚',
+ '腹',
+ '萯',
+ '蕧',
+ '蚹',
+ '蛗',
+ '蝜',
+ '蝮',
+ '袝',
+ '複',
+ '覄',
+ '覆',
+ '訃',
+ '詂',
+ '讣',
+ '負',
+ '賦',
+ '賻',
+ '负',
+ '赋',
+ '赙',
+ '赴',
+ '輹',
+ '鍑',
+ '鍢',
+ '阜',
+ '附',
+ '馥',
+ '駙',
+ '驸',
+ '鮒',
+ '鰒',
+ '鲋',
+ '鳆',
+ '㳇',
+ ],
+ xiān: [
+ '仙',
+ '仚',
+ '佡',
+ '僊',
+ '僲',
+ '先',
+ '嘕',
+ '奾',
+ '屳',
+ '廯',
+ '忺',
+ '憸',
+ '掀',
+ '暹',
+ '杴',
+ '氙',
+ '珗',
+ '祆',
+ '秈',
+ '籼',
+ '繊',
+ '纎',
+ '纖',
+ '苮',
+ '褼',
+ '襳',
+ '跹',
+ '蹮',
+ '躚',
+ '酰',
+ '鍁',
+ '锨',
+ '韯',
+ '韱',
+ '馦',
+ '鱻',
+ '鶱',
+ '𬸣',
+ ],
+ 'tuō chà duó': ['仛'],
+ hóng: [
+ '仜',
+ '吰',
+ '垬',
+ '妅',
+ '娂',
+ '宏',
+ '宖',
+ '弘',
+ '彋',
+ '汯',
+ '泓',
+ '洪',
+ '浤',
+ '渱',
+ '潂',
+ '玒',
+ '玜',
+ '竑',
+ '竤',
+ '篊',
+ '粠',
+ '紘',
+ '紭',
+ '綋',
+ '纮',
+ '翃',
+ '翝',
+ '耾',
+ '苰',
+ '荭',
+ '葒',
+ '葓',
+ '谹',
+ '谼',
+ '鈜',
+ '鉷',
+ '鋐',
+ '閎',
+ '闳',
+ '霐',
+ '霟',
+ '鞃',
+ '魟',
+ '鴻',
+ '鸿',
+ '黉',
+ '黌',
+ '𫟹',
+ '𬭎',
+ ],
+ tóng: [
+ '仝',
+ '佟',
+ '哃',
+ '峂',
+ '峝',
+ '庝',
+ '彤',
+ '晍',
+ '曈',
+ '桐',
+ '氃',
+ '浵',
+ '潼',
+ '犝',
+ '獞',
+ '眮',
+ '瞳',
+ '砼',
+ '秱',
+ '童',
+ '粡',
+ '膧',
+ '茼',
+ '蚒',
+ '詷',
+ '赨',
+ '酮',
+ '鉖',
+ '鉵',
+ '銅',
+ '铜',
+ '餇',
+ '鮦',
+ '鲖',
+ '𫍣',
+ '𦒍',
+ ],
+ rèn: [
+ '仞',
+ '仭',
+ '刃',
+ '刄',
+ '妊',
+ '姙',
+ '屻',
+ '岃',
+ '扨',
+ '牣',
+ '祍',
+ '紉',
+ '紝',
+ '絍',
+ '纫',
+ '纴',
+ '肕',
+ '腍',
+ '衽',
+ '袵',
+ '訒',
+ '認',
+ '认',
+ '讱',
+ '軔',
+ '轫',
+ '鈓',
+ '靭',
+ '靱',
+ '韌',
+ '韧',
+ '飪',
+ '餁',
+ '饪',
+ ],
+ qiān: [
+ '仟',
+ '佥',
+ '僉',
+ '千',
+ '圲',
+ '奷',
+ '孯',
+ '岍',
+ '悭',
+ '愆',
+ '慳',
+ '扦',
+ '拪',
+ '搴',
+ '撁',
+ '攐',
+ '攑',
+ '攓',
+ '杄',
+ '櫏',
+ '汘',
+ '汧',
+ '牵',
+ '牽',
+ '竏',
+ '签',
+ '簽',
+ '籖',
+ '籤',
+ '粁',
+ '芊',
+ '茾',
+ '蚈',
+ '褰',
+ '諐',
+ '謙',
+ '谦',
+ '谸',
+ '迁',
+ '遷',
+ '釺',
+ '鈆',
+ '鉛',
+ '鏲',
+ '钎',
+ '阡',
+ '韆',
+ '顅',
+ '騫',
+ '骞',
+ '鬜',
+ '鬝',
+ '鵮',
+ '鹐',
+ ],
+ 'gǎn hàn': ['仠'],
+ 'yì gē': ['仡'],
+ dài: [
+ '代',
+ '侢',
+ '叇',
+ '垈',
+ '埭',
+ '岱',
+ '帒',
+ '带',
+ '帯',
+ '帶',
+ '廗',
+ '怠',
+ '戴',
+ '曃',
+ '柋',
+ '殆',
+ '瀻',
+ '玳',
+ '瑇',
+ '甙',
+ '簤',
+ '紿',
+ '緿',
+ '绐',
+ '艜',
+ '蝳',
+ '袋',
+ '襶',
+ '貣',
+ '贷',
+ '蹛',
+ '軑',
+ '軚',
+ '軩',
+ '轪',
+ '迨',
+ '霴',
+ '靆',
+ '鴏',
+ '黛',
+ '黱',
+ ],
+ 'lìng líng lǐng': ['令'],
+ chào: ['仦', '耖', '觘'],
+ 'cháng zhǎng': ['仧', '兏', '長', '长'],
+ sā: ['仨'],
+ cháng: [
+ '仩',
+ '偿',
+ '償',
+ '嘗',
+ '嚐',
+ '嫦',
+ '尝',
+ '常',
+ '徜',
+ '瑺',
+ '瓺',
+ '甞',
+ '肠',
+ '腸',
+ '膓',
+ '苌',
+ '萇',
+ '镸',
+ '鱨',
+ '鲿',
+ ],
+ yí: [
+ '仪',
+ '侇',
+ '儀',
+ '冝',
+ '匜',
+ '咦',
+ '圯',
+ '夷',
+ '姨',
+ '宐',
+ '宜',
+ '宧',
+ '寲',
+ '峓',
+ '嶬',
+ '嶷',
+ '巸',
+ '彛',
+ '彜',
+ '彝',
+ '彞',
+ '怡',
+ '恞',
+ '扅',
+ '暆',
+ '栘',
+ '椬',
+ '椸',
+ '沂',
+ '洟',
+ '熪',
+ '瓵',
+ '痍',
+ '移',
+ '簃',
+ '籎',
+ '羠',
+ '胰',
+ '萓',
+ '蛦',
+ '螔',
+ '觺',
+ '謻',
+ '貽',
+ '贻',
+ '跠',
+ '迻',
+ '遺',
+ '鏔',
+ '頉',
+ '頤',
+ '頥',
+ '顊',
+ '颐',
+ '饴',
+ '鮧',
+ '鴺',
+ ],
+ mù: [
+ '仫',
+ '凩',
+ '募',
+ '墓',
+ '幕',
+ '幙',
+ '慔',
+ '慕',
+ '暮',
+ '暯',
+ '木',
+ '楘',
+ '毣',
+ '沐',
+ '炑',
+ '牧',
+ '狇',
+ '目',
+ '睦',
+ '穆',
+ '艒',
+ '苜',
+ '莯',
+ '蚞',
+ '鉬',
+ '钼',
+ '雮',
+ '霂',
+ ],
+ 'men mén': ['们'],
+ fǎn: ['仮', '反', '橎', '返'],
+ 'chào miǎo': ['仯'],
+ 'yǎng áng': ['仰'],
+ zhòng: [
+ '仲',
+ '众',
+ '堹',
+ '妕',
+ '媑',
+ '狆',
+ '眾',
+ '祌',
+ '筗',
+ '茽',
+ '蚛',
+ '衆',
+ '衶',
+ '諥',
+ ],
+ 'pǐ pí': ['仳'],
+ wò: [
+ '仴',
+ '偓',
+ '卧',
+ '媉',
+ '幄',
+ '握',
+ '楃',
+ '沃',
+ '渥',
+ '濣',
+ '瓁',
+ '瞃',
+ '硪',
+ '肟',
+ '腛',
+ '臥',
+ '齷',
+ '龌',
+ ],
+ jiàn: [
+ '件',
+ '俴',
+ '健',
+ '僭',
+ '剑',
+ '剣',
+ '剱',
+ '劍',
+ '劎',
+ '劒',
+ '劔',
+ '墹',
+ '寋',
+ '建',
+ '徤',
+ '擶',
+ '旔',
+ '楗',
+ '毽',
+ '洊',
+ '涧',
+ '澗',
+ '牮',
+ '珔',
+ '瞷',
+ '磵',
+ '礀',
+ '箭',
+ '糋',
+ '繝',
+ '腱',
+ '臶',
+ '舰',
+ '艦',
+ '荐',
+ '薦',
+ '覸',
+ '諓',
+ '諫',
+ '譛',
+ '谏',
+ '賎',
+ '賤',
+ '贱',
+ '趝',
+ '践',
+ '踐',
+ '踺',
+ '轞',
+ '鉴',
+ '鍳',
+ '鍵',
+ '鐱',
+ '鑑',
+ '鑒',
+ '鑬',
+ '鑳',
+ '键',
+ '間',
+ '餞',
+ '饯',
+ '𬣡',
+ ],
+ 'jià jiè jie': ['价'],
+ 'yǎo fó': ['仸'],
+ 'rèn rén': ['任'],
+ 'fèn bīn': ['份'],
+ dī: [
+ '仾',
+ '低',
+ '啲',
+ '埞',
+ '堤',
+ '岻',
+ '彽',
+ '樀',
+ '滴',
+ '磾',
+ '秪',
+ '羝',
+ '袛',
+ '趆',
+ '隄',
+ '鞮',
+ '䃅',
+ ],
+ fǎng: [
+ '仿',
+ '倣',
+ '旊',
+ '昉',
+ '昘',
+ '瓬',
+ '眆',
+ '紡',
+ '纺',
+ '舫',
+ '訪',
+ '访',
+ '髣',
+ '鶭',
+ ],
+ zhōng: [
+ '伀',
+ '刣',
+ '妐',
+ '幒',
+ '彸',
+ '忠',
+ '柊',
+ '汷',
+ '泈',
+ '炂',
+ '盅',
+ '籦',
+ '終',
+ '终',
+ '舯',
+ '蔠',
+ '蜙',
+ '螤',
+ '螽',
+ '衳',
+ '衷',
+ '蹱',
+ '鈡',
+ '鍾',
+ '鐘',
+ '钟',
+ '锺',
+ '鴤',
+ '鼨',
+ ],
+ pèi: [
+ '伂',
+ '佩',
+ '姵',
+ '帔',
+ '斾',
+ '旆',
+ '沛',
+ '浿',
+ '珮',
+ '蓜',
+ '轡',
+ '辔',
+ '配',
+ '霈',
+ '馷',
+ ],
+ diào: [
+ '伄',
+ '吊',
+ '弔',
+ '掉',
+ '瘹',
+ '盄',
+ '窎',
+ '窵',
+ '竨',
+ '訋',
+ '釣',
+ '鈟',
+ '銱',
+ '鋽',
+ '鑃',
+ '钓',
+ '铞',
+ '雿',
+ '魡',
+ ],
+ dùn: [
+ '伅',
+ '潡',
+ '炖',
+ '燉',
+ '盾',
+ '砘',
+ '碷',
+ '踲',
+ '逇',
+ '遁',
+ '遯',
+ '鈍',
+ '钝',
+ ],
+ wěn: ['伆', '刎', '吻', '呅', '抆', '桽', '稳', '穏', '穩', '紊', '肳', '脗'],
+ xǐn: ['伈'],
+ kàng: ['伉', '匟', '囥', '抗', '炕', '鈧', '钪'],
+ ài: [
+ '伌',
+ '僾',
+ '塧',
+ '壒',
+ '嫒',
+ '嬡',
+ '愛',
+ '懓',
+ '暧',
+ '曖',
+ '爱',
+ '瑷',
+ '璦',
+ '皧',
+ '瞹',
+ '砹',
+ '硋',
+ '碍',
+ '礙',
+ '薆',
+ '譺',
+ '賹',
+ '鑀',
+ '隘',
+ '靉',
+ '餲',
+ '馤',
+ '鱫',
+ '鴱',
+ ],
+ 'jì qí': ['伎', '薺'],
+ 'xiū xǔ': ['休'],
+ 'jìn yín': ['伒'],
+ dǎn: [
+ '伔',
+ '刐',
+ '撢',
+ '玬',
+ '瓭',
+ '紞',
+ '胆',
+ '膽',
+ '衴',
+ '賧',
+ '赕',
+ '黕',
+ '𬘘',
+ ],
+ fū: [
+ '伕',
+ '呋',
+ '娐',
+ '孵',
+ '尃',
+ '怤',
+ '懯',
+ '敷',
+ '旉',
+ '玞',
+ '砆',
+ '稃',
+ '筟',
+ '糐',
+ '綒',
+ '肤',
+ '膚',
+ '荂',
+ '荴',
+ '衭',
+ '趺',
+ '跗',
+ '邞',
+ '鄜',
+ '酜',
+ '鈇',
+ '麩',
+ '麬',
+ '麱',
+ '麸',
+ '𫓧',
+ ],
+ tǎng: [
+ '伖',
+ '傥',
+ '儻',
+ '埫',
+ '戃',
+ '曭',
+ '爣',
+ '矘',
+ '躺',
+ '鎲',
+ '钂',
+ '镋',
+ ],
+ yōu: [
+ '优',
+ '優',
+ '呦',
+ '嚘',
+ '峳',
+ '幽',
+ '忧',
+ '悠',
+ '憂',
+ '攸',
+ '櫌',
+ '滺',
+ '瀀',
+ '纋',
+ '羪',
+ '耰',
+ '逌',
+ '鄾',
+ '麀',
+ ],
+ huǒ: ['伙', '夥', '火', '煷', '邩', '鈥', '钬'],
+ 'huì kuài': ['会', '會', '浍', '璯'],
+ yǔ: [
+ '伛',
+ '俁',
+ '俣',
+ '偊',
+ '傴',
+ '匬',
+ '噳',
+ '圄',
+ '圉',
+ '宇',
+ '寙',
+ '屿',
+ '嶼',
+ '庾',
+ '挧',
+ '敔',
+ '斞',
+ '楀',
+ '瑀',
+ '瘐',
+ '祤',
+ '禹',
+ '穥',
+ '窳',
+ '羽',
+ '與',
+ '萭',
+ '貐',
+ '鄅',
+ '頨',
+ '麌',
+ '齬',
+ '龉',
+ '㺄',
+ ],
+ cuì: [
+ '伜',
+ '啛',
+ '忰',
+ '悴',
+ '毳',
+ '淬',
+ '焠',
+ '疩',
+ '瘁',
+ '竁',
+ '粋',
+ '粹',
+ '紣',
+ '綷',
+ '翆',
+ '翠',
+ '脃',
+ '脆',
+ '脺',
+ '膬',
+ '膵',
+ '臎',
+ '萃',
+ '襊',
+ '顇',
+ ],
+ sǎn: ['伞', '傘', '糤', '繖', '饊', '馓'],
+ wěi: [
+ '伟',
+ '伪',
+ '偉',
+ '偽',
+ '僞',
+ '儰',
+ '娓',
+ '寪',
+ '屗',
+ '崣',
+ '嶉',
+ '徫',
+ '愇',
+ '捤',
+ '暐',
+ '梶',
+ '洧',
+ '浘',
+ '渨',
+ '炜',
+ '煒',
+ '猥',
+ '玮',
+ '瑋',
+ '痿',
+ '緯',
+ '纬',
+ '腲',
+ '艉',
+ '芛',
+ '苇',
+ '荱',
+ '萎',
+ '葦',
+ '蒍',
+ '蔿',
+ '蜼',
+ '諉',
+ '诿',
+ '踓',
+ '鍡',
+ '韑',
+ '韙',
+ '韡',
+ '韪',
+ '頠',
+ '颹',
+ '骩',
+ '骪',
+ '骫',
+ '鮪',
+ '鲔',
+ '𫇭',
+ '𬀩',
+ '𬱟',
+ ],
+ 'chuán zhuàn': ['传', '傳'],
+ 'chē jū': ['伡', '俥', '车'],
+ 'jū chē': ['車'],
+ yá: [
+ '伢',
+ '厑',
+ '厓',
+ '堐',
+ '岈',
+ '崕',
+ '崖',
+ '涯',
+ '漄',
+ '牙',
+ '玡',
+ '琊',
+ '睚',
+ '笌',
+ '芽',
+ '蚜',
+ '衙',
+ '齖',
+ ],
+ qiàn: [
+ '伣',
+ '俔',
+ '倩',
+ '儙',
+ '刋',
+ '壍',
+ '嬱',
+ '悓',
+ '棈',
+ '椠',
+ '槧',
+ '欠',
+ '歉',
+ '皘',
+ '篏',
+ '篟',
+ '縴',
+ '芡',
+ '蒨',
+ '蔳',
+ '輤',
+ '𬘬',
+ ],
+ shāng: [
+ '伤',
+ '傷',
+ '商',
+ '墒',
+ '慯',
+ '殇',
+ '殤',
+ '滳',
+ '漡',
+ '熵',
+ '蔏',
+ '螪',
+ '觞',
+ '觴',
+ '謪',
+ '鬺',
+ ],
+ chāng: [
+ '伥',
+ '倀',
+ '娼',
+ '昌',
+ '椙',
+ '淐',
+ '猖',
+ '琩',
+ '菖',
+ '裮',
+ '錩',
+ '锠',
+ '閶',
+ '阊',
+ '鯧',
+ '鲳',
+ '鼚',
+ ],
+ 'chen cāng': ['伧'],
+ xùn: [
+ '伨',
+ '侚',
+ '卂',
+ '噀',
+ '巺',
+ '巽',
+ '徇',
+ '愻',
+ '殉',
+ '殾',
+ '汛',
+ '潠',
+ '狥',
+ '蕈',
+ '訊',
+ '訓',
+ '訙',
+ '训',
+ '讯',
+ '迅',
+ '迿',
+ '逊',
+ '遜',
+ '鑂',
+ '顨',
+ '馴',
+ '驯',
+ ],
+ xìn: ['伩', '囟', '孞', '脪', '舋', '衅', '訫', '釁', '阠', '顖'],
+ chǐ: [
+ '伬',
+ '侈',
+ '卶',
+ '叺',
+ '呎',
+ '垑',
+ '恥',
+ '歯',
+ '耻',
+ '肔',
+ '胣',
+ '蚇',
+ '裭',
+ '褫',
+ '豉',
+ '鉹',
+ '齒',
+ '齿',
+ ],
+ 'xián xuán': ['伭'],
+ 'nú nǔ': ['伮'],
+ 'bó bǎi': ['伯'],
+ 'gū gù': ['估'],
+ nǐ: ['伱', '你', '儞', '孴', '拟', '擬', '旎', '晲', '狔', '苨', '薿', '隬'],
+ 'nì ní': ['伲'],
+ bàn: [
+ '伴',
+ '办',
+ '半',
+ '姅',
+ '怑',
+ '扮',
+ '瓣',
+ '秚',
+ '絆',
+ '绊',
+ '辦',
+ '鉡',
+ '靽',
+ ],
+ xù: [
+ '伵',
+ '侐',
+ '勖',
+ '勗',
+ '卹',
+ '叙',
+ '垿',
+ '壻',
+ '婿',
+ '序',
+ '恤',
+ '敍',
+ '敘',
+ '旭',
+ '昫',
+ '朂',
+ '槒',
+ '欰',
+ '殈',
+ '汿',
+ '沀',
+ '洫',
+ '溆',
+ '漵',
+ '潊',
+ '烅',
+ '烼',
+ '煦',
+ '獝',
+ '珬',
+ '盢',
+ '瞁',
+ '稸',
+ '絮',
+ '続',
+ '緒',
+ '緖',
+ '續',
+ '绪',
+ '续',
+ '聓',
+ '聟',
+ '蓄',
+ '藚',
+ '訹',
+ '賉',
+ '酗',
+ '頊',
+ '鱮',
+ '㳚',
+ ],
+ zhòu: [
+ '伷',
+ '僽',
+ '冑',
+ '呪',
+ '咒',
+ '咮',
+ '宙',
+ '昼',
+ '晝',
+ '甃',
+ '皱',
+ '皺',
+ '籀',
+ '籒',
+ '籕',
+ '粙',
+ '紂',
+ '縐',
+ '纣',
+ '绉',
+ '胄',
+ '荮',
+ '葤',
+ '詋',
+ '酎',
+ '駎',
+ '驟',
+ '骤',
+ '㤘',
+ '㑇',
+ ],
+ shēn: [
+ '伸',
+ '侁',
+ '兟',
+ '呻',
+ '堔',
+ '妽',
+ '娠',
+ '屾',
+ '峷',
+ '扟',
+ '敒',
+ '曑',
+ '柛',
+ '氠',
+ '深',
+ '燊',
+ '珅',
+ '甡',
+ '甧',
+ '申',
+ '眒',
+ '砷',
+ '穼',
+ '籶',
+ '籸',
+ '糂',
+ '紳',
+ '绅',
+ '罙',
+ '罧',
+ '葠',
+ '蓡',
+ '蔘',
+ '薓',
+ '裑',
+ '訷',
+ '詵',
+ '诜',
+ '身',
+ '駪',
+ '鯓',
+ '鯵',
+ '鰺',
+ '鲹',
+ '鵢',
+ '𬳽',
+ ],
+ qū: [
+ '伹',
+ '佉',
+ '匤',
+ '呿',
+ '坥',
+ '屈',
+ '岖',
+ '岴',
+ '嶇',
+ '憈',
+ '抾',
+ '敺',
+ '浀',
+ '煀',
+ '祛',
+ '筁',
+ '粬',
+ '胠',
+ '蛆',
+ '蛐',
+ '袪',
+ '覻',
+ '詘',
+ '诎',
+ '趍',
+ '躯',
+ '軀',
+ '阹',
+ '駆',
+ '駈',
+ '驅',
+ '驱',
+ '髷',
+ '魼',
+ '鰸',
+ '鱋',
+ '鶌',
+ '麯',
+ '麴',
+ '麹',
+ '黢',
+ '㭕',
+ '𪨰',
+ '䓛',
+ ],
+ 'sì cì': ['伺'],
+ bēng: ['伻', '嘣', '奟', '崩', '嵭', '閍'],
+ 'sì shì': ['似'],
+ 'jiā qié gā': ['伽'],
+ 'yǐ chì': ['佁'],
+ 'diàn tián': ['佃', '钿'],
+ 'hān gàn': ['佄'],
+ mài: [
+ '佅',
+ '劢',
+ '勱',
+ '卖',
+ '唛',
+ '売',
+ '脈',
+ '衇',
+ '賣',
+ '迈',
+ '邁',
+ '霡',
+ '霢',
+ '麥',
+ '麦',
+ '鿏',
+ ],
+ dàn: [
+ '但',
+ '僤',
+ '啖',
+ '啗',
+ '啿',
+ '噉',
+ '嚪',
+ '帎',
+ '憺',
+ '旦',
+ '柦',
+ '氮',
+ '沊',
+ '泹',
+ '淡',
+ '狚',
+ '疍',
+ '癚',
+ '禫',
+ '窞',
+ '腅',
+ '萏',
+ '蓞',
+ '蛋',
+ '蜑',
+ '觛',
+ '訑',
+ '誕',
+ '诞',
+ '贉',
+ '霮',
+ '餤',
+ '饏',
+ '駳',
+ '髧',
+ '鴠',
+ '𫢸',
+ ],
+ bù: [
+ '佈',
+ '勏',
+ '吥',
+ '咘',
+ '埗',
+ '埠',
+ '布',
+ '廍',
+ '怖',
+ '悑',
+ '步',
+ '歨',
+ '歩',
+ '瓿',
+ '篰',
+ '荹',
+ '蔀',
+ '踄',
+ '部',
+ '郶',
+ '鈈',
+ '钚',
+ '餢',
+ ],
+ bǐ: [
+ '佊',
+ '俾',
+ '匕',
+ '夶',
+ '妣',
+ '彼',
+ '朼',
+ '柀',
+ '比',
+ '毞',
+ '沘',
+ '疕',
+ '秕',
+ '笔',
+ '筆',
+ '粃',
+ '聛',
+ '舭',
+ '貏',
+ '鄙',
+ ],
+ 'zhāo shào': ['佋'],
+ cǐ: ['佌', '此', '泚', '皉', '𫚖'],
+ wèi: [
+ '位',
+ '卫',
+ '味',
+ '喂',
+ '墛',
+ '媦',
+ '慰',
+ '懀',
+ '未',
+ '渭',
+ '煟',
+ '熭',
+ '犚',
+ '猬',
+ '畏',
+ '緭',
+ '罻',
+ '胃',
+ '苿',
+ '菋',
+ '藯',
+ '蘶',
+ '蝟',
+ '螱',
+ '衛',
+ '衞',
+ '褽',
+ '謂',
+ '讆',
+ '讏',
+ '谓',
+ '躗',
+ '躛',
+ '軎',
+ '轊',
+ '鏏',
+ '霨',
+ '餧',
+ '餵',
+ '饖',
+ '魏',
+ '鮇',
+ '鳚',
+ ],
+ zuǒ: ['佐', '左', '繓'],
+ yǎng: [
+ '佒',
+ '傟',
+ '养',
+ '坱',
+ '岟',
+ '慃',
+ '懩',
+ '攁',
+ '氧',
+ '氱',
+ '炴',
+ '痒',
+ '癢',
+ '礢',
+ '紻',
+ '蝆',
+ '軮',
+ '養',
+ '駚',
+ ],
+ 'tǐ tī': ['体', '體'],
+ zhàn: [
+ '佔',
+ '偡',
+ '嶘',
+ '战',
+ '戦',
+ '戰',
+ '栈',
+ '桟',
+ '棧',
+ '湛',
+ '站',
+ '綻',
+ '绽',
+ '菚',
+ '蘸',
+ '虥',
+ '虦',
+ '譧',
+ '轏',
+ '驏',
+ ],
+ 'hé hē hè': ['何'],
+ bì: [
+ '佖',
+ '咇',
+ '哔',
+ '嗶',
+ '坒',
+ '堛',
+ '壁',
+ '奰',
+ '妼',
+ '婢',
+ '嬖',
+ '币',
+ '幣',
+ '幤',
+ '庇',
+ '庳',
+ '廦',
+ '弊',
+ '弻',
+ '弼',
+ '彃',
+ '必',
+ '怭',
+ '愊',
+ '愎',
+ '敝',
+ '斃',
+ '梐',
+ '毕',
+ '毖',
+ '毙',
+ '湢',
+ '滗',
+ '滭',
+ '潷',
+ '煏',
+ '熚',
+ '狴',
+ '獘',
+ '獙',
+ '珌',
+ '璧',
+ '畀',
+ '畢',
+ '疪',
+ '痹',
+ '痺',
+ '皕',
+ '睤',
+ '碧',
+ '筚',
+ '箅',
+ '箆',
+ '篦',
+ '篳',
+ '粊',
+ '綼',
+ '縪',
+ '繴',
+ '罼',
+ '腷',
+ '苾',
+ '荜',
+ '萆',
+ '萞',
+ '蓖',
+ '蓽',
+ '蔽',
+ '薜',
+ '蜌',
+ '袐',
+ '襅',
+ '襞',
+ '襣',
+ '觱',
+ '詖',
+ '诐',
+ '貱',
+ '贔',
+ '赑',
+ '跸',
+ '蹕',
+ '躃',
+ '躄',
+ '避',
+ '邲',
+ '鄨',
+ '鄪',
+ '鉍',
+ '鏎',
+ '鐴',
+ '铋',
+ '閇',
+ '閉',
+ '閟',
+ '闭',
+ '陛',
+ '韠',
+ '飶',
+ '饆',
+ '馝',
+ '駜',
+ '驆',
+ '髀',
+ '魓',
+ '鮅',
+ '鷝',
+ '鷩',
+ '鼊',
+ ],
+ tuó: [
+ '佗',
+ '坨',
+ '堶',
+ '岮',
+ '槖',
+ '橐',
+ '沱',
+ '砣',
+ '砤',
+ '碢',
+ '紽',
+ '詑',
+ '跎',
+ '酡',
+ '阤',
+ '陀',
+ '陁',
+ '駝',
+ '駞',
+ '騨',
+ '驒',
+ '驝',
+ '驼',
+ '鮀',
+ '鴕',
+ '鸵',
+ '鼉',
+ '鼍',
+ '鼧',
+ '𬶍',
+ ],
+ shé: ['佘', '舌', '虵', '蛥'],
+ 'yì dié': ['佚', '昳', '泆', '軼'],
+ 'fó fú bì bó': ['佛'],
+ 'zuò zuō': ['作'],
+ gōu: [
+ '佝',
+ '沟',
+ '溝',
+ '痀',
+ '篝',
+ '簼',
+ '緱',
+ '缑',
+ '袧',
+ '褠',
+ '鈎',
+ '鉤',
+ '钩',
+ '鞲',
+ '韝',
+ ],
+ nìng: ['佞', '侫', '倿', '寕', '泞', '澝', '濘'],
+ qú: [
+ '佢',
+ '劬',
+ '戵',
+ '斪',
+ '欋',
+ '欔',
+ '氍',
+ '淭',
+ '灈',
+ '爠',
+ '璖',
+ '璩',
+ '癯',
+ '磲',
+ '籧',
+ '絇',
+ '胊',
+ '臞',
+ '菃',
+ '葋',
+ '蕖',
+ '蘧',
+ '蟝',
+ '蠷',
+ '蠼',
+ '衐',
+ '衢',
+ '躣',
+ '軥',
+ '鑺',
+ '鴝',
+ '鸜',
+ '鸲',
+ '鼩',
+ ],
+ 'yōng yòng': ['佣'],
+ wǎ: ['佤', '咓', '砙', '邷'],
+ kǎ: ['佧', '垰', '胩', '裃', '鉲'],
+ bāo: [
+ '佨',
+ '勹',
+ '包',
+ '孢',
+ '煲',
+ '笣',
+ '胞',
+ '苞',
+ '蕔',
+ '裦',
+ '褒',
+ '襃',
+ '闁',
+ '齙',
+ '龅',
+ ],
+ 'huái huí': ['佪'],
+ 'gé hè': ['佫'],
+ lǎo: [
+ '佬',
+ '咾',
+ '恅',
+ '栳',
+ '狫',
+ '珯',
+ '硓',
+ '老',
+ '耂',
+ '荖',
+ '蛯',
+ '轑',
+ '銠',
+ '铑',
+ '鮱',
+ ],
+ xiáng: ['佭', '庠', '栙', '祥', '絴', '翔', '詳', '跭'],
+ gé: [
+ '佮',
+ '匌',
+ '呄',
+ '嗝',
+ '塥',
+ '愅',
+ '挌',
+ '搿',
+ '槅',
+ '櫊',
+ '滆',
+ '膈',
+ '臵',
+ '茖',
+ '觡',
+ '諽',
+ '輵',
+ '轕',
+ '閣',
+ '阁',
+ '隔',
+ '鞷',
+ '韐',
+ '韚',
+ '騔',
+ '骼',
+ '鮯',
+ ],
+ yáng: [
+ '佯',
+ '劷',
+ '垟',
+ '崸',
+ '徉',
+ '扬',
+ '揚',
+ '敭',
+ '旸',
+ '昜',
+ '暘',
+ '杨',
+ '楊',
+ '洋',
+ '炀',
+ '珜',
+ '疡',
+ '瘍',
+ '眻',
+ '蛘',
+ '諹',
+ '輰',
+ '鍚',
+ '钖',
+ '阦',
+ '阳',
+ '陽',
+ '霷',
+ '颺',
+ '飏',
+ '鰑',
+ '鴹',
+ '鸉',
+ ],
+ bǎi: ['佰', '捭', '摆', '擺', '栢', '百', '竡', '粨', '襬'],
+ fǎ: ['佱', '峜', '法', '灋', '砝', '鍅'],
+ mǐng: ['佲', '凕', '姳', '慏', '酩'],
+ 'èr nài': ['佴'],
+ hěn: ['佷', '很', '狠', '詪', '𬣳'],
+ huó: ['佸', '活'],
+ guǐ: [
+ '佹',
+ '匦',
+ '匭',
+ '厬',
+ '垝',
+ '姽',
+ '宄',
+ '庋',
+ '庪',
+ '恑',
+ '晷',
+ '湀',
+ '癸',
+ '祪',
+ '簋',
+ '蛫',
+ '蟡',
+ '觤',
+ '詭',
+ '诡',
+ '軌',
+ '轨',
+ '陒',
+ '鬼',
+ ],
+ quán: [
+ '佺',
+ '全',
+ '啳',
+ '埢',
+ '姾',
+ '峑',
+ '巏',
+ '拳',
+ '搼',
+ '权',
+ '楾',
+ '権',
+ '權',
+ '泉',
+ '洤',
+ '湶',
+ '牷',
+ '犈',
+ '瑔',
+ '痊',
+ '硂',
+ '筌',
+ '縓',
+ '荃',
+ '葲',
+ '蜷',
+ '蠸',
+ '觠',
+ '詮',
+ '诠',
+ '跧',
+ '踡',
+ '輇',
+ '辁',
+ '醛',
+ '銓',
+ '铨',
+ '闎',
+ '顴',
+ '颧',
+ '駩',
+ '騡',
+ '鬈',
+ '鰁',
+ '鳈',
+ '齤',
+ ],
+ tiāo: ['佻', '庣', '旫', '祧', '聎'],
+ jiǎo: [
+ '佼',
+ '儌',
+ '孂',
+ '挢',
+ '搅',
+ '撟',
+ '撹',
+ '攪',
+ '敫',
+ '敽',
+ '敿',
+ '晈',
+ '暞',
+ '曒',
+ '灚',
+ '燞',
+ '狡',
+ '璬',
+ '皎',
+ '皦',
+ '絞',
+ '纐',
+ '绞',
+ '腳',
+ '臫',
+ '蟜',
+ '譑',
+ '賋',
+ '踋',
+ '鉸',
+ '铰',
+ '餃',
+ '饺',
+ '鱎',
+ '龣',
+ ],
+ cì: [
+ '佽',
+ '刾',
+ '庛',
+ '朿',
+ '栨',
+ '次',
+ '絘',
+ '茦',
+ '莿',
+ '蛓',
+ '螆',
+ '賜',
+ '赐',
+ ],
+ xíng: [
+ '侀',
+ '刑',
+ '哘',
+ '型',
+ '娙',
+ '形',
+ '洐',
+ '硎',
+ '蛵',
+ '邢',
+ '郉',
+ '鈃',
+ '鉶',
+ '銒',
+ '钘',
+ '铏',
+ '陉',
+ '陘',
+ '餳',
+ '𫰛',
+ ],
+ tuō: [
+ '侂',
+ '咃',
+ '咜',
+ '圫',
+ '托',
+ '拕',
+ '拖',
+ '汑',
+ '脫',
+ '脱',
+ '莌',
+ '袥',
+ '託',
+ '讬',
+ '飥',
+ '饦',
+ '魠',
+ '鮵',
+ ],
+ kǎn: ['侃', '偘', '冚', '坎', '惂', '砍', '莰', '輡', '轗', '顑'],
+ zhí: [
+ '侄',
+ '値',
+ '值',
+ '埴',
+ '執',
+ '姪',
+ '嬂',
+ '戠',
+ '执',
+ '摭',
+ '植',
+ '樴',
+ '淔',
+ '漐',
+ '直',
+ '禃',
+ '絷',
+ '縶',
+ '聀',
+ '职',
+ '職',
+ '膱',
+ '蟙',
+ '跖',
+ '踯',
+ '蹠',
+ '躑',
+ '軄',
+ '釞',
+ '馽',
+ ],
+ gāi: [
+ '侅',
+ '垓',
+ '姟',
+ '峐',
+ '晐',
+ '畡',
+ '祴',
+ '荄',
+ '該',
+ '该',
+ '豥',
+ '賅',
+ '賌',
+ '赅',
+ '陔',
+ ],
+ lái: [
+ '來',
+ '俫',
+ '倈',
+ '崃',
+ '崍',
+ '庲',
+ '来',
+ '梾',
+ '棶',
+ '涞',
+ '淶',
+ '猍',
+ '琜',
+ '筙',
+ '箂',
+ '莱',
+ '萊',
+ '逨',
+ '郲',
+ '錸',
+ '铼',
+ '騋',
+ '鯠',
+ '鶆',
+ '麳',
+ ],
+ kuǎ: ['侉', '咵', '垮', '銙'],
+ gōng: [
+ '侊',
+ '公',
+ '功',
+ '匑',
+ '匔',
+ '塨',
+ '宫',
+ '宮',
+ '工',
+ '幊',
+ '弓',
+ '恭',
+ '攻',
+ '杛',
+ '碽',
+ '糼',
+ '糿',
+ '肱',
+ '觥',
+ '觵',
+ '躬',
+ '躳',
+ '髸',
+ '龔',
+ '龚',
+ '䢼',
+ ],
+ lì: [
+ '例',
+ '俐',
+ '俪',
+ '傈',
+ '儮',
+ '儷',
+ '凓',
+ '利',
+ '力',
+ '励',
+ '勵',
+ '历',
+ '厉',
+ '厤',
+ '厯',
+ '厲',
+ '叓',
+ '吏',
+ '呖',
+ '唎',
+ '唳',
+ '嚦',
+ '囇',
+ '坜',
+ '塛',
+ '壢',
+ '娳',
+ '婯',
+ '屴',
+ '岦',
+ '悧',
+ '悷',
+ '慄',
+ '戾',
+ '搮',
+ '暦',
+ '曆',
+ '曞',
+ '朸',
+ '枥',
+ '栃',
+ '栗',
+ '栛',
+ '檪',
+ '櫔',
+ '櫪',
+ '欐',
+ '歴',
+ '歷',
+ '沥',
+ '沴',
+ '涖',
+ '溧',
+ '濿',
+ '瀝',
+ '爏',
+ '犡',
+ '猁',
+ '珕',
+ '瑮',
+ '瓅',
+ '瓑',
+ '瓥',
+ '疬',
+ '痢',
+ '癧',
+ '盭',
+ '睙',
+ '砅',
+ '砺',
+ '砾',
+ '磿',
+ '礪',
+ '礫',
+ '礰',
+ '禲',
+ '秝',
+ '立',
+ '笠',
+ '篥',
+ '粒',
+ '粝',
+ '糲',
+ '脷',
+ '苈',
+ '茘',
+ '荔',
+ '莅',
+ '莉',
+ '蒚',
+ '蒞',
+ '藶',
+ '蚸',
+ '蛎',
+ '蛠',
+ '蜧',
+ '蝷',
+ '蠇',
+ '蠣',
+ '詈',
+ '讈',
+ '赲',
+ '轢',
+ '轣',
+ '轹',
+ '酈',
+ '鉝',
+ '隶',
+ '隷',
+ '雳',
+ '靂',
+ '靋',
+ '鬁',
+ '鳨',
+ '鴗',
+ '鷅',
+ '麜',
+ '𫵷',
+ '𬍛',
+ ],
+ yīn: [
+ '侌',
+ '凐',
+ '喑',
+ '噾',
+ '囙',
+ '因',
+ '垔',
+ '堙',
+ '姻',
+ '婣',
+ '愔',
+ '慇',
+ '栶',
+ '氤',
+ '洇',
+ '溵',
+ '濦',
+ '瘖',
+ '禋',
+ '秵',
+ '筃',
+ '絪',
+ '緸',
+ '茵',
+ '蒑',
+ '蔭',
+ '裀',
+ '諲',
+ '銦',
+ '铟',
+ '闉',
+ '阥',
+ '阴',
+ '陰',
+ '陻',
+ '隂',
+ '霒',
+ '霠',
+ '鞇',
+ '音',
+ '韾',
+ '駰',
+ '骃',
+ '齗',
+ '𬘡',
+ '𬤇',
+ '𬮱',
+ ],
+ mǐ: [
+ '侎',
+ '孊',
+ '弭',
+ '敉',
+ '洣',
+ '渳',
+ '灖',
+ '米',
+ '粎',
+ '羋',
+ '脒',
+ '芈',
+ '葞',
+ '蔝',
+ '銤',
+ ],
+ zhū: [
+ '侏',
+ '株',
+ '槠',
+ '橥',
+ '櫧',
+ '櫫',
+ '洙',
+ '潴',
+ '瀦',
+ '猪',
+ '珠',
+ '硃',
+ '秼',
+ '絑',
+ '茱',
+ '蕏',
+ '蛛',
+ '蝫',
+ '蠩',
+ '袾',
+ '誅',
+ '諸',
+ '诛',
+ '诸',
+ '豬',
+ '跦',
+ '邾',
+ '銖',
+ '铢',
+ '駯',
+ '鮢',
+ '鯺',
+ '鴸',
+ '鼄',
+ ],
+ ān: [
+ '侒',
+ '偣',
+ '媕',
+ '安',
+ '峖',
+ '庵',
+ '桉',
+ '氨',
+ '盦',
+ '盫',
+ '腤',
+ '菴',
+ '萻',
+ '葊',
+ '蓭',
+ '誝',
+ '諳',
+ '谙',
+ '鞌',
+ '鞍',
+ '韽',
+ '馣',
+ '鮟',
+ '鵪',
+ '鶕',
+ '鹌',
+ '𩽾',
+ ],
+ lù: [
+ '侓',
+ '僇',
+ '勎',
+ '勠',
+ '圥',
+ '坴',
+ '塶',
+ '娽',
+ '峍',
+ '廘',
+ '彔',
+ '录',
+ '戮',
+ '摝',
+ '椂',
+ '樚',
+ '淕',
+ '淥',
+ '渌',
+ '漉',
+ '潞',
+ '琭',
+ '璐',
+ '甪',
+ '盝',
+ '睩',
+ '硉',
+ '祿',
+ '禄',
+ '稑',
+ '穋',
+ '箓',
+ '簏',
+ '簬',
+ '簵',
+ '簶',
+ '籙',
+ '粶',
+ '蔍',
+ '蕗',
+ '虂',
+ '螰',
+ '賂',
+ '赂',
+ '趢',
+ '路',
+ '踛',
+ '蹗',
+ '輅',
+ '轆',
+ '辂',
+ '辘',
+ '逯',
+ '醁',
+ '錄',
+ '録',
+ '錴',
+ '鏴',
+ '陸',
+ '騄',
+ '騼',
+ '鯥',
+ '鴼',
+ '鵦',
+ '鵱',
+ '鷺',
+ '鹭',
+ '鹿',
+ '麓',
+ '𫘧',
+ ],
+ móu: ['侔', '劺', '恈', '眸', '蛑', '謀', '谋', '踎', '鍪', '鴾', '麰'],
+ ér: [
+ '侕',
+ '儿',
+ '児',
+ '兒',
+ '峏',
+ '栭',
+ '洏',
+ '粫',
+ '而',
+ '胹',
+ '荋',
+ '袻',
+ '輀',
+ '轜',
+ '陑',
+ '隭',
+ '髵',
+ '鮞',
+ '鲕',
+ '鴯',
+ '鸸',
+ ],
+ 'dòng tǒng tóng': ['侗'],
+ chà: ['侘', '奼', '姹', '岔', '汊', '詫', '诧'],
+ chì: [
+ '侙',
+ '傺',
+ '勅',
+ '勑',
+ '叱',
+ '啻',
+ '彳',
+ '恜',
+ '慗',
+ '憏',
+ '懘',
+ '抶',
+ '敕',
+ '斥',
+ '杘',
+ '湁',
+ '灻',
+ '炽',
+ '烾',
+ '熾',
+ '痓',
+ '痸',
+ '瘛',
+ '翄',
+ '翅',
+ '翤',
+ '翨',
+ '腟',
+ '赤',
+ '趩',
+ '遫',
+ '鉓',
+ '雴',
+ '飭',
+ '饬',
+ '鶒',
+ '鷘',
+ ],
+ 'gòng gōng': ['供', '共'],
+ zhōu: [
+ '侜',
+ '周',
+ '喌',
+ '州',
+ '徟',
+ '洲',
+ '淍',
+ '炿',
+ '烐',
+ '珘',
+ '矪',
+ '舟',
+ '謅',
+ '譸',
+ '诌',
+ '賙',
+ '赒',
+ '輈',
+ '輖',
+ '辀',
+ '週',
+ '郮',
+ '銂',
+ '霌',
+ '駲',
+ '騆',
+ '鵃',
+ '鸼',
+ ],
+ rú: [
+ '侞',
+ '儒',
+ '嚅',
+ '如',
+ '嬬',
+ '孺',
+ '帤',
+ '曘',
+ '桇',
+ '渪',
+ '濡',
+ '筎',
+ '茹',
+ '蕠',
+ '薷',
+ '蝡',
+ '蠕',
+ '袽',
+ '襦',
+ '邚',
+ '醹',
+ '銣',
+ '铷',
+ '顬',
+ '颥',
+ '鱬',
+ '鴑',
+ '鴽',
+ ],
+ 'jiàn cún': ['侟'],
+ xiá: [
+ '侠',
+ '俠',
+ '匣',
+ '峡',
+ '峽',
+ '敮',
+ '暇',
+ '柙',
+ '炠',
+ '烚',
+ '狎',
+ '狭',
+ '狹',
+ '珨',
+ '瑕',
+ '硖',
+ '硤',
+ '碬',
+ '祫',
+ '筪',
+ '縖',
+ '翈',
+ '舝',
+ '舺',
+ '蕸',
+ '赮',
+ '轄',
+ '辖',
+ '遐',
+ '鍜',
+ '鎋',
+ '陜',
+ '陿',
+ '霞',
+ '騢',
+ '魻',
+ '鶷',
+ '黠',
+ ],
+ lǚ: [
+ '侣',
+ '侶',
+ '儢',
+ '吕',
+ '呂',
+ '屡',
+ '屢',
+ '履',
+ '挔',
+ '捛',
+ '旅',
+ '梠',
+ '焒',
+ '祣',
+ '稆',
+ '穭',
+ '絽',
+ '縷',
+ '缕',
+ '膂',
+ '膐',
+ '褛',
+ '褸',
+ '郘',
+ '鋁',
+ '铝',
+ ],
+ ta: ['侤'],
+ 'jiǎo yáo': ['侥', '僥', '徺'],
+ zhēn: [
+ '侦',
+ '偵',
+ '寊',
+ '帧',
+ '帪',
+ '幀',
+ '搸',
+ '斟',
+ '桢',
+ '楨',
+ '榛',
+ '樼',
+ '殝',
+ '浈',
+ '湞',
+ '潧',
+ '澵',
+ '獉',
+ '珍',
+ '珎',
+ '瑧',
+ '甄',
+ '眞',
+ '真',
+ '砧',
+ '碪',
+ '祯',
+ '禎',
+ '禛',
+ '箴',
+ '胗',
+ '臻',
+ '葴',
+ '蒖',
+ '蓁',
+ '薽',
+ '貞',
+ '贞',
+ '轃',
+ '遉',
+ '酙',
+ '針',
+ '鉁',
+ '錱',
+ '鍼',
+ '针',
+ '鱵',
+ ],
+ 'cè zè zhāi': ['侧', '側'],
+ kuài: [
+ '侩',
+ '儈',
+ '凷',
+ '哙',
+ '噲',
+ '圦',
+ '块',
+ '塊',
+ '巜',
+ '廥',
+ '快',
+ '旝',
+ '欳',
+ '狯',
+ '獪',
+ '筷',
+ '糩',
+ '脍',
+ '膾',
+ '郐',
+ '鄶',
+ '鱠',
+ '鲙',
+ ],
+ chái: ['侪', '儕', '喍', '柴', '犲', '祡', '豺'],
+ nóng: [
+ '侬',
+ '儂',
+ '农',
+ '哝',
+ '噥',
+ '檂',
+ '欁',
+ '浓',
+ '濃',
+ '燶',
+ '禯',
+ '秾',
+ '穠',
+ '脓',
+ '膿',
+ '蕽',
+ '襛',
+ '譨',
+ '農',
+ '辳',
+ '醲',
+ '鬞',
+ '𬪩',
+ ],
+ jǐn: [
+ '侭',
+ '儘',
+ '卺',
+ '厪',
+ '巹',
+ '槿',
+ '漌',
+ '瑾',
+ '紧',
+ '緊',
+ '菫',
+ '蓳',
+ '謹',
+ '谨',
+ '錦',
+ '锦',
+ '饉',
+ '馑',
+ ],
+ 'hóu hòu': ['侯', '矦'],
+ jiǒng: [
+ '侰',
+ '僒',
+ '冏',
+ '囧',
+ '泂',
+ '澃',
+ '炯',
+ '烱',
+ '煚',
+ '煛',
+ '熲',
+ '燛',
+ '窘',
+ '綗',
+ '褧',
+ '迥',
+ '逈',
+ '顈',
+ '颎',
+ '䌹',
+ ],
+ 'chěng tǐng': ['侱'],
+ 'zhèn zhēn': ['侲', '揕'],
+ zuò: [
+ '侳',
+ '做',
+ '唑',
+ '坐',
+ '岝',
+ '岞',
+ '座',
+ '祚',
+ '糳',
+ '胙',
+ '葃',
+ '葄',
+ '蓙',
+ '袏',
+ '阼',
+ ],
+ qīn: [
+ '侵',
+ '兓',
+ '媇',
+ '嵚',
+ '嶔',
+ '欽',
+ '衾',
+ '誛',
+ '钦',
+ '顉',
+ '駸',
+ '骎',
+ '鮼',
+ ],
+ jú: [
+ '侷',
+ '啹',
+ '婅',
+ '局',
+ '巈',
+ '椈',
+ '橘',
+ '泦',
+ '淗',
+ '湨',
+ '焗',
+ '犑',
+ '狊',
+ '粷',
+ '菊',
+ '蘜',
+ '趜',
+ '跼',
+ '蹫',
+ '輂',
+ '郹',
+ '閰',
+ '駶',
+ '驧',
+ '鵙',
+ '鵴',
+ '鶪',
+ '鼰',
+ '鼳',
+ '䴗',
+ ],
+ 'shù dōu': ['侸'],
+ tǐng: [
+ '侹',
+ '圢',
+ '娗',
+ '挺',
+ '涏',
+ '烶',
+ '珽',
+ '脡',
+ '艇',
+ '誔',
+ '頲',
+ '颋',
+ ],
+ shèn: [
+ '侺',
+ '愼',
+ '慎',
+ '昚',
+ '涁',
+ '渗',
+ '滲',
+ '瘆',
+ '瘮',
+ '眘',
+ '祳',
+ '肾',
+ '胂',
+ '脤',
+ '腎',
+ '蜃',
+ '蜄',
+ '鋠',
+ ],
+ 'tuì tuó': ['侻'],
+ nán: [
+ '侽',
+ '喃',
+ '娚',
+ '抩',
+ '暔',
+ '枏',
+ '柟',
+ '楠',
+ '男',
+ '畘',
+ '莮',
+ '萳',
+ '遖',
+ ],
+ xiāo: [
+ '侾',
+ '哓',
+ '嘵',
+ '嚻',
+ '囂',
+ '婋',
+ '宯',
+ '宵',
+ '庨',
+ '彇',
+ '揱',
+ '枭',
+ '枵',
+ '梟',
+ '櫹',
+ '歊',
+ '毊',
+ '消',
+ '潇',
+ '瀟',
+ '灱',
+ '灲',
+ '烋',
+ '焇',
+ '猇',
+ '獢',
+ '痚',
+ '痟',
+ '硝',
+ '硣',
+ '窙',
+ '箫',
+ '簘',
+ '簫',
+ '綃',
+ '绡',
+ '翛',
+ '膮',
+ '萧',
+ '蕭',
+ '虈',
+ '虓',
+ '蟂',
+ '蟏',
+ '蟰',
+ '蠨',
+ '踃',
+ '逍',
+ '銷',
+ '销',
+ '霄',
+ '颵',
+ '驍',
+ '骁',
+ '髇',
+ '髐',
+ '魈',
+ '鴞',
+ '鴵',
+ '鷍',
+ '鸮',
+ ],
+ 'biàn pián': ['便', '緶', '缏'],
+ tuǐ: ['俀', '腿', '蹆', '骽'],
+ xì: [
+ '係',
+ '匸',
+ '卌',
+ '呬',
+ '墍',
+ '屃',
+ '屓',
+ '屭',
+ '忥',
+ '怬',
+ '恄',
+ '椞',
+ '潝',
+ '潟',
+ '澙',
+ '熂',
+ '犔',
+ '磶',
+ '禊',
+ '細',
+ '綌',
+ '縘',
+ '细',
+ '绤',
+ '舃',
+ '舄',
+ '蕮',
+ '虩',
+ '衋',
+ '覤',
+ '赩',
+ '趇',
+ '郤',
+ '釳',
+ '阋',
+ '隙',
+ '隟',
+ '霼',
+ '餼',
+ '饩',
+ '鬩',
+ '黖',
+ ],
+ cù: [
+ '促',
+ '媨',
+ '憱',
+ '猝',
+ '瘄',
+ '瘯',
+ '簇',
+ '縬',
+ '脨',
+ '蔟',
+ '誎',
+ '趗',
+ '踧',
+ '踿',
+ '蹙',
+ '蹴',
+ '蹵',
+ '醋',
+ '顣',
+ '鼀',
+ ],
+ é: [
+ '俄',
+ '囮',
+ '娥',
+ '峉',
+ '峨',
+ '峩',
+ '涐',
+ '珴',
+ '皒',
+ '睋',
+ '磀',
+ '莪',
+ '訛',
+ '誐',
+ '譌',
+ '讹',
+ '迗',
+ '鈋',
+ '鋨',
+ '锇',
+ '頟',
+ '額',
+ '额',
+ '魤',
+ '鵝',
+ '鵞',
+ '鹅',
+ ],
+ qiú: [
+ '俅',
+ '叴',
+ '唒',
+ '囚',
+ '崷',
+ '巯',
+ '巰',
+ '扏',
+ '梂',
+ '殏',
+ '毬',
+ '求',
+ '汓',
+ '泅',
+ '浗',
+ '湭',
+ '煪',
+ '犰',
+ '玌',
+ '球',
+ '璆',
+ '皳',
+ '盚',
+ '紌',
+ '絿',
+ '肍',
+ '芁',
+ '莍',
+ '虬',
+ '虯',
+ '蛷',
+ '裘',
+ '觓',
+ '觩',
+ '訄',
+ '訅',
+ '賕',
+ '赇',
+ '逎',
+ '逑',
+ '遒',
+ '酋',
+ '釚',
+ '釻',
+ '銶',
+ '頄',
+ '鮂',
+ '鯄',
+ '鰽',
+ '鼽',
+ '𨱇',
+ ],
+ xú: ['俆', '徐', '禑'],
+ 'guàng kuāng': ['俇'],
+ kù: [
+ '俈',
+ '喾',
+ '嚳',
+ '库',
+ '庫',
+ '廤',
+ '瘔',
+ '絝',
+ '绔',
+ '袴',
+ '裤',
+ '褲',
+ '酷',
+ ],
+ wù: [
+ '俉',
+ '务',
+ '務',
+ '勿',
+ '卼',
+ '坞',
+ '塢',
+ '奦',
+ '婺',
+ '寤',
+ '屼',
+ '岉',
+ '嵨',
+ '忢',
+ '悞',
+ '悟',
+ '悮',
+ '戊',
+ '扤',
+ '晤',
+ '杌',
+ '溩',
+ '焐',
+ '熃',
+ '物',
+ '痦',
+ '矹',
+ '窹',
+ '粅',
+ '蘁',
+ '誤',
+ '误',
+ '鋈',
+ '阢',
+ '隖',
+ '雾',
+ '霚',
+ '霧',
+ '靰',
+ '騖',
+ '骛',
+ '鶩',
+ '鹜',
+ '鼿',
+ '齀',
+ ],
+ jùn: [
+ '俊',
+ '儁',
+ '呁',
+ '埈',
+ '寯',
+ '峻',
+ '懏',
+ '捃',
+ '攟',
+ '晙',
+ '棞',
+ '燇',
+ '珺',
+ '畯',
+ '竣',
+ '箟',
+ '蜠',
+ '賐',
+ '郡',
+ '陖',
+ '餕',
+ '馂',
+ '駿',
+ '骏',
+ '鵔',
+ '鵕',
+ '鵘',
+ '䐃',
+ ],
+ liáng: [
+ '俍',
+ '墚',
+ '梁',
+ '椋',
+ '樑',
+ '粮',
+ '粱',
+ '糧',
+ '良',
+ '輬',
+ '辌',
+ '𫟅',
+ ],
+ zǔ: ['俎', '唨', '爼', '祖', '組', '组', '詛', '诅', '鎺', '阻', '靻'],
+ 'qiào xiào': ['俏'],
+ yǒng: [
+ '俑',
+ '勇',
+ '勈',
+ '咏',
+ '埇',
+ '塎',
+ '嵱',
+ '彮',
+ '怺',
+ '恿',
+ '悀',
+ '惥',
+ '愑',
+ '愹',
+ '慂',
+ '柡',
+ '栐',
+ '永',
+ '泳',
+ '湧',
+ '甬',
+ '蛹',
+ '詠',
+ '踊',
+ '踴',
+ '鯒',
+ '鲬',
+ ],
+ hùn: ['俒', '倱', '圂', '尡', '慁', '掍', '溷', '焝', '睴', '觨', '諢', '诨'],
+ jìng: [
+ '俓',
+ '傹',
+ '境',
+ '妌',
+ '婙',
+ '婧',
+ '弪',
+ '弳',
+ '径',
+ '徑',
+ '敬',
+ '曔',
+ '桱',
+ '梷',
+ '浄',
+ '瀞',
+ '獍',
+ '痉',
+ '痙',
+ '竞',
+ '竟',
+ '竫',
+ '競',
+ '竸',
+ '胫',
+ '脛',
+ '莖',
+ '誩',
+ '踁',
+ '迳',
+ '逕',
+ '鏡',
+ '镜',
+ '靖',
+ '静',
+ '靜',
+ '鵛',
+ ],
+ sàn: ['俕', '閐'],
+ pěi: ['俖'],
+ sú: ['俗'],
+ xī: [
+ '俙',
+ '僖',
+ '兮',
+ '凞',
+ '卥',
+ '厀',
+ '吸',
+ '唏',
+ '唽',
+ '嘻',
+ '噏',
+ '嚱',
+ '夕',
+ '奚',
+ '嬆',
+ '嬉',
+ '屖',
+ '嵠',
+ '巇',
+ '希',
+ '徆',
+ '徯',
+ '息',
+ '悉',
+ '悕',
+ '惁',
+ '惜',
+ '昔',
+ '晞',
+ '晰',
+ '晳',
+ '曦',
+ '析',
+ '桸',
+ '榽',
+ '樨',
+ '橀',
+ '欷',
+ '氥',
+ '汐',
+ '浠',
+ '淅',
+ '渓',
+ '溪',
+ '烯',
+ '焁',
+ '焈',
+ '焟',
+ '熄',
+ '熈',
+ '熙',
+ '熹',
+ '熺',
+ '熻',
+ '燨',
+ '爔',
+ '牺',
+ '犀',
+ '犠',
+ '犧',
+ '琋',
+ '瘜',
+ '皙',
+ '睎',
+ '瞦',
+ '矽',
+ '硒',
+ '磎',
+ '礂',
+ '稀',
+ '穸',
+ '窸',
+ '粞',
+ '糦',
+ '緆',
+ '繥',
+ '羲',
+ '翕',
+ '翖',
+ '肸',
+ '肹',
+ '膝',
+ '舾',
+ '莃',
+ '菥',
+ '蒠',
+ '蜥',
+ '螅',
+ '蟋',
+ '蠵',
+ '西',
+ '觹',
+ '觽',
+ '觿',
+ '譆',
+ '谿',
+ '豀',
+ '豨',
+ '豯',
+ '貕',
+ '赥',
+ '邜',
+ '鄎',
+ '酅',
+ '醯',
+ '釸',
+ '錫',
+ '鏭',
+ '鐊',
+ '鑴',
+ '锡',
+ '隵',
+ '餏',
+ '饎',
+ '饻',
+ '鯑',
+ '鵗',
+ '鸂',
+ '鼷',
+ ],
+ lǐ: [
+ '俚',
+ '娌',
+ '峢',
+ '峲',
+ '李',
+ '欚',
+ '浬',
+ '澧',
+ '理',
+ '礼',
+ '禮',
+ '粴',
+ '裏',
+ '裡',
+ '豊',
+ '逦',
+ '邐',
+ '醴',
+ '鋰',
+ '锂',
+ '鯉',
+ '鱧',
+ '鱱',
+ '鲤',
+ '鳢',
+ ],
+ bǎo: [
+ '保',
+ '堢',
+ '媬',
+ '宝',
+ '寚',
+ '寳',
+ '寶',
+ '珤',
+ '緥',
+ '葆',
+ '藵',
+ '褓',
+ '賲',
+ '靌',
+ '飹',
+ '飽',
+ '饱',
+ '駂',
+ '鳵',
+ '鴇',
+ '鸨',
+ ],
+ 'yú shù yù': ['俞'],
+ 'sì qí': ['俟'],
+ 'xìn shēn': ['信'],
+ xiū: [
+ '俢',
+ '修',
+ '咻',
+ '庥',
+ '樇',
+ '烌',
+ '羞',
+ '脙',
+ '脩',
+ '臹',
+ '貅',
+ '銝',
+ '鎀',
+ '飍',
+ '饈',
+ '馐',
+ '髤',
+ '髹',
+ '鮴',
+ '鱃',
+ '鵂',
+ '鸺',
+ '䗛',
+ ],
+ dì: [
+ '俤',
+ '偙',
+ '僀',
+ '埊',
+ '墑',
+ '墬',
+ '娣',
+ '帝',
+ '怟',
+ '旳',
+ '梊',
+ '焍',
+ '玓',
+ '甋',
+ '眱',
+ '睇',
+ '碲',
+ '祶',
+ '禘',
+ '第',
+ '締',
+ '缔',
+ '腣',
+ '菂',
+ '蒂',
+ '蔕',
+ '蝃',
+ '蝭',
+ '螮',
+ '諦',
+ '谛',
+ '踶',
+ '递',
+ '逓',
+ '遞',
+ '遰',
+ '鉪',
+ '𤧛',
+ '䗖',
+ ],
+ chóu: [
+ '俦',
+ '儔',
+ '嬦',
+ '惆',
+ '愁',
+ '懤',
+ '栦',
+ '燽',
+ '畴',
+ '疇',
+ '皗',
+ '稠',
+ '筹',
+ '籌',
+ '絒',
+ '綢',
+ '绸',
+ '菗',
+ '詶',
+ '讎',
+ '讐',
+ '踌',
+ '躊',
+ '酧',
+ '酬',
+ '醻',
+ '雔',
+ '雠',
+ '雦',
+ ],
+ zhì: [
+ '俧',
+ '偫',
+ '儨',
+ '制',
+ '劕',
+ '垁',
+ '娡',
+ '寘',
+ '帙',
+ '帜',
+ '幟',
+ '庢',
+ '庤',
+ '廌',
+ '彘',
+ '徏',
+ '徝',
+ '志',
+ '忮',
+ '懥',
+ '懫',
+ '挃',
+ '挚',
+ '掷',
+ '摯',
+ '擲',
+ '旘',
+ '晊',
+ '智',
+ '栉',
+ '桎',
+ '梽',
+ '櫍',
+ '櫛',
+ '治',
+ '洷',
+ '滍',
+ '滞',
+ '滯',
+ '潌',
+ '瀄',
+ '炙',
+ '熫',
+ '狾',
+ '猘',
+ '璏',
+ '瓆',
+ '痔',
+ '痣',
+ '礩',
+ '祑',
+ '秩',
+ '秷',
+ '稚',
+ '稺',
+ '穉',
+ '窒',
+ '紩',
+ '緻',
+ '置',
+ '翐',
+ '膣',
+ '至',
+ '致',
+ '芖',
+ '蛭',
+ '袟',
+ '袠',
+ '製',
+ '覟',
+ '觗',
+ '觯',
+ '觶',
+ '誌',
+ '豑',
+ '豒',
+ '貭',
+ '質',
+ '贄',
+ '质',
+ '贽',
+ '跱',
+ '踬',
+ '躓',
+ '輊',
+ '轾',
+ '郅',
+ '銍',
+ '鋕',
+ '鑕',
+ '铚',
+ '锧',
+ '陟',
+ '隲',
+ '雉',
+ '駤',
+ '騭',
+ '騺',
+ '驇',
+ '骘',
+ '鯯',
+ '鴙',
+ '鷙',
+ '鸷',
+ '𬃊',
+ ],
+ 'liǎ liǎng': ['俩'],
+ jiǎn: [
+ '俭',
+ '倹',
+ '儉',
+ '减',
+ '剪',
+ '堿',
+ '弿',
+ '彅',
+ '戩',
+ '戬',
+ '拣',
+ '挸',
+ '捡',
+ '揀',
+ '撿',
+ '枧',
+ '柬',
+ '梘',
+ '检',
+ '検',
+ '檢',
+ '減',
+ '湕',
+ '瀽',
+ '瑐',
+ '睑',
+ '瞼',
+ '硷',
+ '碱',
+ '礆',
+ '笕',
+ '筧',
+ '简',
+ '簡',
+ '絸',
+ '繭',
+ '翦',
+ '茧',
+ '藆',
+ '蠒',
+ '裥',
+ '襇',
+ '襉',
+ '襺',
+ '詃',
+ '謇',
+ '謭',
+ '譾',
+ '谫',
+ '趼',
+ '蹇',
+ '鐗',
+ '鬋',
+ '鰎',
+ '鹸',
+ '鹻',
+ '鹼',
+ ],
+ huò: [
+ '俰',
+ '咟',
+ '嚯',
+ '嚿',
+ '奯',
+ '彠',
+ '惑',
+ '或',
+ '擭',
+ '旤',
+ '曤',
+ '檴',
+ '沎',
+ '湱',
+ '瀖',
+ '獲',
+ '癨',
+ '眓',
+ '矐',
+ '祸',
+ '禍',
+ '穫',
+ '窢',
+ '耯',
+ '臛',
+ '艧',
+ '获',
+ '蒦',
+ '藿',
+ '蠖',
+ '謋',
+ '貨',
+ '货',
+ '鍃',
+ '鑊',
+ '镬',
+ '雘',
+ '霍',
+ '靃',
+ '韄',
+ '㸌',
+ ],
+ 'jù jū': ['俱', '据', '鋸', '锯'],
+ xiào: [
+ '俲',
+ '傚',
+ '効',
+ '咲',
+ '哮',
+ '啸',
+ '嘋',
+ '嘨',
+ '嘯',
+ '孝',
+ '效',
+ '斅',
+ '斆',
+ '歗',
+ '涍',
+ '熽',
+ '笑',
+ '詨',
+ '誟',
+ ],
+ pái: ['俳', '徘', '牌', '犤', '猅', '簰', '簲', '輫'],
+ biào: ['俵', '鰾', '鳔'],
+ 'chù tì': ['俶'],
+ fèi: [
+ '俷',
+ '剕',
+ '厞',
+ '吠',
+ '屝',
+ '废',
+ '廃',
+ '廢',
+ '昲',
+ '曊',
+ '櫠',
+ '沸',
+ '濷',
+ '狒',
+ '癈',
+ '肺',
+ '萉',
+ '費',
+ '费',
+ '鐨',
+ '镄',
+ '陫',
+ '靅',
+ '鼣',
+ ],
+ fèng: ['俸', '凤', '奉', '湗', '焨', '煈', '賵', '赗', '鳯', '鳳', '鴌'],
+ ǎn: ['俺', '唵', '埯', '揞', '罯', '銨', '铵'],
+ bèi: [
+ '俻',
+ '倍',
+ '偝',
+ '偹',
+ '備',
+ '僃',
+ '备',
+ '悖',
+ '惫',
+ '愂',
+ '憊',
+ '昁',
+ '梖',
+ '焙',
+ '牬',
+ '犕',
+ '狈',
+ '狽',
+ '珼',
+ '琲',
+ '碚',
+ '禙',
+ '糒',
+ '苝',
+ '蓓',
+ '蛽',
+ '褙',
+ '貝',
+ '贝',
+ '軰',
+ '輩',
+ '辈',
+ '邶',
+ '郥',
+ '鄁',
+ '鋇',
+ '鐾',
+ '钡',
+ '鞁',
+ '鞴',
+ '𬇙',
+ ],
+ yù: [
+ '俼',
+ '儥',
+ '喅',
+ '喩',
+ '喻',
+ '域',
+ '堉',
+ '妪',
+ '嫗',
+ '寓',
+ '峪',
+ '嶎',
+ '庽',
+ '彧',
+ '御',
+ '愈',
+ '慾',
+ '戫',
+ '昱',
+ '棛',
+ '棜',
+ '棫',
+ '櫲',
+ '欎',
+ '欝',
+ '欲',
+ '毓',
+ '浴',
+ '淯',
+ '滪',
+ '潏',
+ '澦',
+ '灪',
+ '焴',
+ '煜',
+ '燏',
+ '燠',
+ '爩',
+ '狱',
+ '獄',
+ '玉',
+ '琙',
+ '瘉',
+ '癒',
+ '砡',
+ '硢',
+ '硲',
+ '礇',
+ '礖',
+ '礜',
+ '禦',
+ '秗',
+ '稢',
+ '稶',
+ '篽',
+ '籞',
+ '籲',
+ '粖',
+ '緎',
+ '罭',
+ '聿',
+ '肀',
+ '艈',
+ '芋',
+ '芌',
+ '茟',
+ '蒮',
+ '蓣',
+ '蓹',
+ '蕷',
+ '蘌',
+ '蜟',
+ '蜮',
+ '袬',
+ '裕',
+ '誉',
+ '諭',
+ '譽',
+ '谕',
+ '豫',
+ '軉',
+ '輍',
+ '逳',
+ '遇',
+ '遹',
+ '郁',
+ '醧',
+ '鈺',
+ '鋊',
+ '錥',
+ '鐭',
+ '钰',
+ '閾',
+ '阈',
+ '雤',
+ '霱',
+ '預',
+ '预',
+ '飫',
+ '饇',
+ '饫',
+ '馭',
+ '驈',
+ '驭',
+ '鬰',
+ '鬱',
+ '鬻',
+ '魊',
+ '鱊',
+ '鳿',
+ '鴥',
+ '鴧',
+ '鴪',
+ '鵒',
+ '鷸',
+ '鸒',
+ '鹆',
+ '鹬',
+ ],
+ xīn: [
+ '俽',
+ '噺',
+ '妡',
+ '嬜',
+ '廞',
+ '心',
+ '忄',
+ '忻',
+ '惞',
+ '新',
+ '昕',
+ '杺',
+ '欣',
+ '歆',
+ '炘',
+ '盺',
+ '薪',
+ '訢',
+ '辛',
+ '邤',
+ '鈊',
+ '鋅',
+ '鑫',
+ '锌',
+ '馨',
+ '馫',
+ '䜣',
+ '𫷷',
+ ],
+ 'hǔ chí': ['俿'],
+ jiù: [
+ '倃',
+ '僦',
+ '匓',
+ '匛',
+ '匶',
+ '厩',
+ '咎',
+ '就',
+ '廄',
+ '廏',
+ '廐',
+ '慦',
+ '捄',
+ '救',
+ '旧',
+ '柩',
+ '柾',
+ '桕',
+ '欍',
+ '殧',
+ '疚',
+ '臼',
+ '舅',
+ '舊',
+ '鯦',
+ '鷲',
+ '鹫',
+ '麔',
+ '齨',
+ '㠇',
+ ],
+ yáo: [
+ '倄',
+ '傜',
+ '嗂',
+ '垚',
+ '堯',
+ '姚',
+ '媱',
+ '尧',
+ '尭',
+ '峣',
+ '嶢',
+ '嶤',
+ '徭',
+ '揺',
+ '搖',
+ '摇',
+ '摿',
+ '暚',
+ '榣',
+ '烑',
+ '爻',
+ '猺',
+ '珧',
+ '瑤',
+ '瑶',
+ '磘',
+ '窑',
+ '窯',
+ '窰',
+ '肴',
+ '蘨',
+ '謠',
+ '謡',
+ '谣',
+ '軺',
+ '轺',
+ '遙',
+ '遥',
+ '邎',
+ '顤',
+ '颻',
+ '飖',
+ '餆',
+ '餚',
+ '鰩',
+ '鱙',
+ '鳐',
+ ],
+ 'cuì zú': ['倅'],
+ 'liǎng liǎ': ['倆'],
+ wǎn: [
+ '倇',
+ '唍',
+ '婉',
+ '惋',
+ '挽',
+ '晚',
+ '晥',
+ '晩',
+ '晼',
+ '梚',
+ '椀',
+ '琬',
+ '畹',
+ '皖',
+ '盌',
+ '碗',
+ '綩',
+ '綰',
+ '绾',
+ '脘',
+ '萖',
+ '踠',
+ '輓',
+ '鋔',
+ ],
+ zǒng: [
+ '倊',
+ '偬',
+ '傯',
+ '嵸',
+ '总',
+ '惣',
+ '捴',
+ '搃',
+ '摠',
+ '燪',
+ '総',
+ '緫',
+ '縂',
+ '總',
+ '蓗',
+ ],
+ guān: [
+ '倌',
+ '关',
+ '官',
+ '棺',
+ '瘝',
+ '癏',
+ '窤',
+ '蒄',
+ '関',
+ '闗',
+ '關',
+ '鰥',
+ '鱞',
+ '鳏',
+ ],
+ tiǎn: [
+ '倎',
+ '唺',
+ '忝',
+ '悿',
+ '晪',
+ '殄',
+ '淟',
+ '睓',
+ '腆',
+ '舔',
+ '覥',
+ '觍',
+ '賟',
+ '錪',
+ '餂',
+ ],
+ mén: ['們', '扪', '捫', '璊', '菛', '虋', '鍆', '钔', '門', '閅', '门', '𫞩'],
+ 'dǎo dào': ['倒'],
+ 'tán tàn': ['倓', '埮'],
+ 'juè jué': ['倔'],
+ chuí: [
+ '倕',
+ '垂',
+ '埀',
+ '捶',
+ '搥',
+ '桘',
+ '棰',
+ '槌',
+ '箠',
+ '腄',
+ '菙',
+ '錘',
+ '鎚',
+ '锤',
+ '陲',
+ '顀',
+ ],
+ xìng: [
+ '倖',
+ '姓',
+ '婞',
+ '嬹',
+ '幸',
+ '性',
+ '悻',
+ '杏',
+ '涬',
+ '緈',
+ '臖',
+ '荇',
+ '莕',
+ '葕',
+ ],
+ péng: [
+ '倗',
+ '傰',
+ '塜',
+ '塳',
+ '弸',
+ '憉',
+ '捀',
+ '朋',
+ '棚',
+ '椖',
+ '樥',
+ '硼',
+ '稝',
+ '竼',
+ '篷',
+ '纄',
+ '膨',
+ '芃',
+ '蓬',
+ '蘕',
+ '蟚',
+ '蟛',
+ '袶',
+ '輣',
+ '錋',
+ '鑝',
+ '韸',
+ '韼',
+ '騯',
+ '髼',
+ '鬅',
+ '鬔',
+ '鵬',
+ '鹏',
+ ],
+ 'tǎng cháng': ['倘'],
+ hòu: [
+ '候',
+ '厚',
+ '后',
+ '垕',
+ '堠',
+ '後',
+ '洉',
+ '茩',
+ '豞',
+ '逅',
+ '郈',
+ '鮜',
+ '鱟',
+ '鲎',
+ '鲘',
+ ],
+ tì: [
+ '倜',
+ '剃',
+ '嚏',
+ '嚔',
+ '屉',
+ '屜',
+ '悌',
+ '悐',
+ '惕',
+ '惖',
+ '戻',
+ '掦',
+ '替',
+ '朑',
+ '歒',
+ '殢',
+ '涕',
+ '瓋',
+ '笹',
+ '籊',
+ '薙',
+ '褅',
+ '逖',
+ '逷',
+ '髰',
+ '鬀',
+ '鬄',
+ ],
+ gàn: [
+ '倝',
+ '凎',
+ '幹',
+ '榦',
+ '檊',
+ '淦',
+ '灨',
+ '盰',
+ '紺',
+ '绀',
+ '詌',
+ '贑',
+ '赣',
+ '骭',
+ '㽏',
+ ],
+ 'liàng jìng': ['倞', '靓'],
+ suī: [
+ '倠',
+ '哸',
+ '夊',
+ '滖',
+ '濉',
+ '眭',
+ '睢',
+ '芕',
+ '荽',
+ '荾',
+ '虽',
+ '雖',
+ '鞖',
+ ],
+ 'chàng chāng': ['倡'],
+ jié: [
+ '倢',
+ '偼',
+ '傑',
+ '刦',
+ '刧',
+ '刼',
+ '劫',
+ '劼',
+ '卩',
+ '卪',
+ '婕',
+ '媫',
+ '孑',
+ '岊',
+ '崨',
+ '嵥',
+ '嶻',
+ '巀',
+ '幯',
+ '截',
+ '捷',
+ '掶',
+ '擮',
+ '昅',
+ '杢',
+ '杰',
+ '桀',
+ '桝',
+ '楬',
+ '楶',
+ '榤',
+ '洁',
+ '滐',
+ '潔',
+ '狤',
+ '睫',
+ '礍',
+ '竭',
+ '節',
+ '羯',
+ '莭',
+ '蓵',
+ '蛣',
+ '蜐',
+ '蠘',
+ '蠞',
+ '蠽',
+ '衱',
+ '袺',
+ '訐',
+ '詰',
+ '誱',
+ '讦',
+ '踕',
+ '迼',
+ '鉣',
+ '鍻',
+ '镼',
+ '頡',
+ '鮚',
+ '鲒',
+ '㛃',
+ ],
+ 'kǒng kōng': ['倥'],
+ juàn: [
+ '倦',
+ '劵',
+ '奆',
+ '慻',
+ '桊',
+ '淃',
+ '狷',
+ '獧',
+ '眷',
+ '睊',
+ '睠',
+ '絭',
+ '絹',
+ '绢',
+ '罥',
+ '羂',
+ '腃',
+ '蔨',
+ '鄄',
+ '餋',
+ ],
+ zōng: [
+ '倧',
+ '堫',
+ '宗',
+ '嵏',
+ '嵕',
+ '惾',
+ '朡',
+ '棕',
+ '椶',
+ '熧',
+ '猣',
+ '磫',
+ '緃',
+ '翪',
+ '腙',
+ '葼',
+ '蝬',
+ '豵',
+ '踨',
+ '踪',
+ '蹤',
+ '鍐',
+ '鑁',
+ '騌',
+ '騣',
+ '骔',
+ '鬃',
+ '鬉',
+ '鬷',
+ '鯮',
+ '鯼',
+ ],
+ ní: [
+ '倪',
+ '坭',
+ '埿',
+ '尼',
+ '屔',
+ '怩',
+ '淣',
+ '猊',
+ '籾',
+ '聣',
+ '蚭',
+ '蜺',
+ '觬',
+ '貎',
+ '跜',
+ '輗',
+ '郳',
+ '鈮',
+ '铌',
+ '霓',
+ '馜',
+ '鯢',
+ '鲵',
+ '麑',
+ '齯',
+ '𫐐',
+ '𫠜',
+ ],
+ zhuō: [
+ '倬',
+ '拙',
+ '捉',
+ '桌',
+ '梲',
+ '棁',
+ '棳',
+ '槕',
+ '涿',
+ '窧',
+ '鐯',
+ '䦃',
+ ],
+ 'wō wēi': ['倭'],
+ luǒ: ['倮', '剆', '曪', '瘰', '癳', '臝', '蓏', '蠃', '裸', '躶'],
+ sōng: [
+ '倯',
+ '凇',
+ '娀',
+ '崧',
+ '嵩',
+ '庺',
+ '憽',
+ '松',
+ '枀',
+ '枩',
+ '柗',
+ '梥',
+ '檧',
+ '淞',
+ '濍',
+ '硹',
+ '菘',
+ '鬆',
+ ],
+ lèng: ['倰', '堎', '愣', '睖', '踜'],
+ zì: [
+ '倳',
+ '剚',
+ '字',
+ '恣',
+ '渍',
+ '漬',
+ '牸',
+ '眥',
+ '眦',
+ '胔',
+ '胾',
+ '自',
+ '茡',
+ '荢',
+ ],
+ bèn: ['倴', '坌', '捹', '撪', '渀', '笨', '逩'],
+ cǎi: ['倸', '啋', '婇', '彩', '採', '棌', '毝', '睬', '綵', '跴', '踩'],
+ zhài: ['债', '債', '寨', '瘵', '砦'],
+ yē: ['倻', '吔', '噎', '擨', '暍', '椰', '歋', '潱', '蠮'],
+ shà: ['倽', '唼', '喢', '歃', '箑', '翜', '翣', '萐', '閯', '霎'],
+ qīng: [
+ '倾',
+ '傾',
+ '卿',
+ '圊',
+ '寈',
+ '氢',
+ '氫',
+ '淸',
+ '清',
+ '蜻',
+ '軽',
+ '輕',
+ '轻',
+ '郬',
+ '錆',
+ '鑋',
+ '靑',
+ '青',
+ '鯖',
+ ],
+ yīng: [
+ '偀',
+ '嘤',
+ '噟',
+ '嚶',
+ '婴',
+ '媖',
+ '嫈',
+ '嬰',
+ '孆',
+ '孾',
+ '愥',
+ '撄',
+ '攖',
+ '朠',
+ '桜',
+ '樱',
+ '櫻',
+ '渶',
+ '煐',
+ '珱',
+ '瑛',
+ '璎',
+ '瓔',
+ '甇',
+ '甖',
+ '碤',
+ '礯',
+ '緓',
+ '纓',
+ '绬',
+ '缨',
+ '罂',
+ '罃',
+ '罌',
+ '膺',
+ '英',
+ '莺',
+ '蘡',
+ '蝧',
+ '蠳',
+ '褮',
+ '譻',
+ '賏',
+ '軈',
+ '鑍',
+ '锳',
+ '霙',
+ '韺',
+ '鴬',
+ '鶑',
+ '鶧',
+ '鶯',
+ '鷪',
+ '鷹',
+ '鸎',
+ '鸚',
+ '鹦',
+ '鹰',
+ '䓨',
+ ],
+ 'chēng chèn': ['偁', '爯'],
+ ruǎn: ['偄', '朊', '瑌', '瓀', '碝', '礝', '腝', '軟', '輭', '软', '阮'],
+ 'zhòng tóng': ['偅'],
+ chǔn: ['偆', '惷', '睶', '萶', '蠢', '賰'],
+ 'jiǎ jià': ['假'],
+ 'jì jié': ['偈'],
+ 'bǐng bìng': ['偋'],
+ ruò: [
+ '偌',
+ '叒',
+ '嵶',
+ '弱',
+ '楉',
+ '焫',
+ '爇',
+ '箬',
+ '篛',
+ '蒻',
+ '鄀',
+ '鰙',
+ '鰯',
+ '鶸',
+ ],
+ tí: [
+ '偍',
+ '厗',
+ '啼',
+ '嗁',
+ '崹',
+ '漽',
+ '瑅',
+ '睼',
+ '禵',
+ '稊',
+ '緹',
+ '缇',
+ '罤',
+ '蕛',
+ '褆',
+ '謕',
+ '趧',
+ '蹄',
+ '蹏',
+ '醍',
+ '鍗',
+ '題',
+ '题',
+ '騠',
+ '鮷',
+ '鯷',
+ '鳀',
+ '鵜',
+ '鷤',
+ '鹈',
+ '𫘨',
+ ],
+ wēi: [
+ '偎',
+ '危',
+ '喴',
+ '威',
+ '媙',
+ '嶶',
+ '巍',
+ '微',
+ '愄',
+ '揋',
+ '揻',
+ '椳',
+ '楲',
+ '溦',
+ '烓',
+ '煨',
+ '燰',
+ '癓',
+ '縅',
+ '葨',
+ '葳',
+ '薇',
+ '蜲',
+ '蝛',
+ '覣',
+ '詴',
+ '逶',
+ '隇',
+ '隈',
+ '霺',
+ '鰃',
+ '鰄',
+ '鳂',
+ ],
+ piān: ['偏', '囨', '媥', '楄', '犏', '篇', '翩', '鍂'],
+ yàn: [
+ '偐',
+ '厌',
+ '厭',
+ '唁',
+ '喭',
+ '嚈',
+ '嚥',
+ '堰',
+ '妟',
+ '姲',
+ '嬊',
+ '嬿',
+ '宴',
+ '彥',
+ '彦',
+ '敥',
+ '晏',
+ '暥',
+ '曕',
+ '曣',
+ '滟',
+ '灎',
+ '灔',
+ '灧',
+ '灩',
+ '焔',
+ '焰',
+ '焱',
+ '熖',
+ '燄',
+ '牪',
+ '猒',
+ '砚',
+ '硯',
+ '艳',
+ '艶',
+ '艷',
+ '覎',
+ '觃',
+ '觾',
+ '諺',
+ '讌',
+ '讞',
+ '谚',
+ '谳',
+ '豓',
+ '豔',
+ '贋',
+ '贗',
+ '赝',
+ '軅',
+ '酀',
+ '酽',
+ '醼',
+ '釅',
+ '雁',
+ '餍',
+ '饜',
+ '騐',
+ '験',
+ '騴',
+ '驗',
+ '驠',
+ '验',
+ '鬳',
+ '鳫',
+ '鴈',
+ '鴳',
+ '鷃',
+ '鷰',
+ '齞',
+ ],
+ 'tǎng dàng': ['偒'],
+ è: [
+ '偔',
+ '匎',
+ '卾',
+ '厄',
+ '呝',
+ '咢',
+ '噩',
+ '垩',
+ '堊',
+ '堮',
+ '岋',
+ '崿',
+ '廅',
+ '悪',
+ '愕',
+ '戹',
+ '扼',
+ '搤',
+ '搹',
+ '擜',
+ '櫮',
+ '歞',
+ '歺',
+ '湂',
+ '琧',
+ '砈',
+ '砐',
+ '硆',
+ '腭',
+ '苊',
+ '萼',
+ '蕚',
+ '蚅',
+ '蝁',
+ '覨',
+ '諤',
+ '讍',
+ '谔',
+ '豟',
+ '軛',
+ '軶',
+ '轭',
+ '遌',
+ '遏',
+ '遻',
+ '鄂',
+ '鈪',
+ '鍔',
+ '鑩',
+ '锷',
+ '阨',
+ '阸',
+ '頞',
+ '顎',
+ '颚',
+ '餓',
+ '餩',
+ '饿',
+ '鰐',
+ '鰪',
+ '鱷',
+ '鳄',
+ '鶚',
+ '鹗',
+ '齃',
+ '齶',
+ '𫫇',
+ '𥔲',
+ ],
+ xié: [
+ '偕',
+ '勰',
+ '协',
+ '協',
+ '嗋',
+ '垥',
+ '奊',
+ '恊',
+ '愶',
+ '拹',
+ '携',
+ '撷',
+ '擕',
+ '擷',
+ '攜',
+ '斜',
+ '旪',
+ '熁',
+ '燲',
+ '綊',
+ '緳',
+ '縀',
+ '缬',
+ '翓',
+ '胁',
+ '脅',
+ '脇',
+ '脋',
+ '膎',
+ '蝢',
+ '衺',
+ '襭',
+ '諧',
+ '讗',
+ '谐',
+ '鞋',
+ '鞵',
+ '龤',
+ '㙦',
+ ],
+ chě: ['偖', '扯', '撦'],
+ shěng: ['偗', '渻', '眚'],
+ chā: [
+ '偛',
+ '嗏',
+ '扠',
+ '挿',
+ '插',
+ '揷',
+ '疀',
+ '臿',
+ '艖',
+ '銟',
+ '鍤',
+ '锸',
+ '餷',
+ ],
+ huáng: [
+ '偟',
+ '凰',
+ '喤',
+ '堭',
+ '墴',
+ '媓',
+ '崲',
+ '徨',
+ '惶',
+ '楻',
+ '湟',
+ '煌',
+ '獚',
+ '瑝',
+ '璜',
+ '癀',
+ '皇',
+ '磺',
+ '穔',
+ '篁',
+ '簧',
+ '艎',
+ '葟',
+ '蝗',
+ '蟥',
+ '諻',
+ '趪',
+ '遑',
+ '鍠',
+ '鐄',
+ '锽',
+ '隍',
+ '韹',
+ '餭',
+ '騜',
+ '鰉',
+ '鱑',
+ '鳇',
+ '鷬',
+ '黃',
+ '黄',
+ '𨱑',
+ ],
+ yǎo: [
+ '偠',
+ '咬',
+ '婹',
+ '宎',
+ '岆',
+ '杳',
+ '柼',
+ '榚',
+ '溔',
+ '狕',
+ '窅',
+ '窈',
+ '舀',
+ '苭',
+ '闄',
+ '騕',
+ '鷕',
+ '齩',
+ ],
+ 'chǒu qiào': ['偢'],
+ yóu: [
+ '偤',
+ '尤',
+ '庮',
+ '怣',
+ '沋',
+ '油',
+ '浟',
+ '游',
+ '犹',
+ '猶',
+ '猷',
+ '由',
+ '疣',
+ '秞',
+ '肬',
+ '莜',
+ '莸',
+ '蕕',
+ '蚰',
+ '蝣',
+ '訧',
+ '輏',
+ '輶',
+ '逰',
+ '遊',
+ '邮',
+ '郵',
+ '鈾',
+ '铀',
+ '駀',
+ '魷',
+ '鮋',
+ '鱿',
+ '鲉',
+ '𬨎',
+ ],
+ xū: [
+ '偦',
+ '墟',
+ '媭',
+ '嬃',
+ '楈',
+ '欨',
+ '歔',
+ '燸',
+ '疞',
+ '盱',
+ '綇',
+ '縃',
+ '繻',
+ '胥',
+ '蕦',
+ '虗',
+ '虚',
+ '虛',
+ '蝑',
+ '裇',
+ '訏',
+ '許',
+ '諝',
+ '譃',
+ '谞',
+ '鑐',
+ '需',
+ '須',
+ '须',
+ '顼',
+ '驉',
+ '鬚',
+ '魆',
+ '魖',
+ '𬣙',
+ '𦈡',
+ ],
+ zhā: [
+ '偧',
+ '哳',
+ '抯',
+ '挓',
+ '揸',
+ '摣',
+ '樝',
+ '渣',
+ '皶',
+ '觰',
+ '譇',
+ '齄',
+ '齇',
+ ],
+ cī: ['偨', '疵', '蠀', '趀', '骴', '髊', '齹'],
+ bī: ['偪', '屄', '楅', '毴', '豍', '逼', '鰏', '鲾', '鵖'],
+ xún: [
+ '偱',
+ '噚',
+ '寻',
+ '尋',
+ '峋',
+ '巡',
+ '廵',
+ '循',
+ '恂',
+ '揗',
+ '攳',
+ '旬',
+ '杊',
+ '栒',
+ '桪',
+ '樳',
+ '洵',
+ '浔',
+ '潯',
+ '燅',
+ '燖',
+ '珣',
+ '璕',
+ '畃',
+ '紃',
+ '荀',
+ '蟳',
+ '詢',
+ '询',
+ '鄩',
+ '鱏',
+ '鱘',
+ '鲟',
+ '𬘓',
+ '𬩽',
+ '𬍤',
+ '𬊈',
+ ],
+ 'cāi sī': ['偲'],
+ duān: ['偳', '媏', '端', '褍', '鍴'],
+ ǒu: ['偶', '吘', '嘔', '耦', '腢', '蕅', '藕', '𬉼', '𠙶'],
+ tōu: ['偷', '偸', '鍮'],
+ 'zán zá zǎ': ['偺'],
+ 'lǚ lóu': ['偻', '僂'],
+ fèn: [
+ '偾',
+ '僨',
+ '奋',
+ '奮',
+ '弅',
+ '忿',
+ '愤',
+ '憤',
+ '瀵',
+ '瞓',
+ '秎',
+ '粪',
+ '糞',
+ '膹',
+ '鱝',
+ '鲼',
+ ],
+ 'kuǐ guī': ['傀'],
+ sǒu: ['傁', '叜', '叟', '嗾', '櫢', '瞍', '薮', '藪'],
+ 'zhì sī tí': ['傂'],
+ sù: [
+ '傃',
+ '僳',
+ '嗉',
+ '塐',
+ '塑',
+ '夙',
+ '嫊',
+ '愫',
+ '憟',
+ '榡',
+ '樎',
+ '樕',
+ '殐',
+ '泝',
+ '涑',
+ '溯',
+ '溸',
+ '潚',
+ '潥',
+ '玊',
+ '珟',
+ '璛',
+ '簌',
+ '粛',
+ '粟',
+ '素',
+ '縤',
+ '肃',
+ '肅',
+ '膆',
+ '蔌',
+ '藗',
+ '觫',
+ '訴',
+ '謖',
+ '诉',
+ '谡',
+ '趚',
+ '蹜',
+ '速',
+ '遡',
+ '遬',
+ '鋉',
+ '餗',
+ '驌',
+ '骕',
+ '鱐',
+ '鷫',
+ '鹔',
+ '𫗧',
+ ],
+ xiā: ['傄', '煆', '瞎', '虲', '谺', '颬', '鰕'],
+ 'yuàn yuán': ['傆', '媛'],
+ rǒng: ['傇', '冗', '宂', '氄', '軵'],
+ nù: ['傉', '怒'],
+ yùn: [
+ '傊',
+ '孕',
+ '恽',
+ '惲',
+ '愠',
+ '慍',
+ '枟',
+ '腪',
+ '蕴',
+ '薀',
+ '藴',
+ '蘊',
+ '褞',
+ '貟',
+ '运',
+ '運',
+ '郓',
+ '鄆',
+ '酝',
+ '醖',
+ '醞',
+ '韗',
+ '韞',
+ '韵',
+ '韻',
+ '餫',
+ ],
+ 'gòu jiǎng': ['傋'],
+ mà: ['傌', '嘜', '榪', '睰', '祃', '禡', '罵', '閁', '駡', '骂', '鬕'],
+ bàng: [
+ '傍',
+ '塝',
+ '棒',
+ '玤',
+ '稖',
+ '艕',
+ '蒡',
+ '蜯',
+ '謗',
+ '谤',
+ '鎊',
+ '镑',
+ ],
+ diān: [
+ '傎',
+ '厧',
+ '嵮',
+ '巅',
+ '巓',
+ '巔',
+ '掂',
+ '攧',
+ '敁',
+ '槇',
+ '滇',
+ '癫',
+ '癲',
+ '蹎',
+ '顚',
+ '顛',
+ '颠',
+ '齻',
+ ],
+ táng: [
+ '傏',
+ '唐',
+ '啺',
+ '坣',
+ '堂',
+ '塘',
+ '搪',
+ '棠',
+ '榶',
+ '溏',
+ '漟',
+ '煻',
+ '瑭',
+ '磄',
+ '禟',
+ '篖',
+ '糃',
+ '糖',
+ '糛',
+ '膅',
+ '膛',
+ '蓎',
+ '螗',
+ '螳',
+ '赯',
+ '踼',
+ '鄌',
+ '醣',
+ '鎕',
+ '隚',
+ '餹',
+ '饄',
+ '鶶',
+ '䣘',
+ ],
+ hào: [
+ '傐',
+ '哠',
+ '恏',
+ '昊',
+ '昦',
+ '晧',
+ '暠',
+ '暤',
+ '暭',
+ '曍',
+ '浩',
+ '淏',
+ '澔',
+ '灏',
+ '灝',
+ '皓',
+ '皜',
+ '皞',
+ '皡',
+ '皥',
+ '耗',
+ '聕',
+ '薃',
+ '號',
+ '鄗',
+ '顥',
+ '颢',
+ '鰝',
+ ],
+ 'xī xì': ['傒'],
+ shān: [
+ '傓',
+ '删',
+ '刪',
+ '剼',
+ '圸',
+ '山',
+ '挻',
+ '搧',
+ '柵',
+ '檆',
+ '潸',
+ '澘',
+ '煽',
+ '狦',
+ '珊',
+ '笘',
+ '縿',
+ '羴',
+ '羶',
+ '脠',
+ '舢',
+ '芟',
+ '衫',
+ '跚',
+ '軕',
+ '邖',
+ '閊',
+ '鯅',
+ ],
+ 'qiàn jiān': ['傔'],
+ 'què jué': ['傕', '埆'],
+ 'cāng chen': ['傖'],
+ róng: [
+ '傛',
+ '媶',
+ '嫆',
+ '嬫',
+ '容',
+ '峵',
+ '嵘',
+ '嶸',
+ '戎',
+ '搈',
+ '曧',
+ '栄',
+ '榕',
+ '榮',
+ '榵',
+ '毧',
+ '溶',
+ '瀜',
+ '烿',
+ '熔',
+ '狨',
+ '瑢',
+ '穁',
+ '絨',
+ '绒',
+ '羢',
+ '肜',
+ '茙',
+ '茸',
+ '荣',
+ '蓉',
+ '蝾',
+ '融',
+ '螎',
+ '蠑',
+ '褣',
+ '鎔',
+ '镕',
+ '駥',
+ ],
+ 'tà tàn': ['傝'],
+ suō: [
+ '傞',
+ '唆',
+ '嗍',
+ '嗦',
+ '娑',
+ '摍',
+ '桫',
+ '梭',
+ '睃',
+ '簑',
+ '簔',
+ '羧',
+ '莏',
+ '蓑',
+ '趖',
+ '鮻',
+ ],
+ dǎi: ['傣', '歹'],
+ zài: ['傤', '儎', '再', '在', '扗', '洅', '載', '酨'],
+ gǔ: [
+ '傦',
+ '古',
+ '啒',
+ '尳',
+ '愲',
+ '榖',
+ '榾',
+ '汩',
+ '淈',
+ '濲',
+ '瀔',
+ '牯',
+ '皷',
+ '皼',
+ '盬',
+ '瞽',
+ '穀',
+ '罟',
+ '羖',
+ '股',
+ '脵',
+ '臌',
+ '薣',
+ '蛊',
+ '蠱',
+ '詁',
+ '诂',
+ '轂',
+ '逧',
+ '鈷',
+ '钴',
+ '餶',
+ '馉',
+ '鼓',
+ '鼔',
+ '𦙶',
+ ],
+ bīn: [
+ '傧',
+ '宾',
+ '彬',
+ '斌',
+ '椕',
+ '滨',
+ '濒',
+ '濱',
+ '濵',
+ '瀕',
+ '繽',
+ '缤',
+ '虨',
+ '豩',
+ '豳',
+ '賓',
+ '賔',
+ '邠',
+ '鑌',
+ '镔',
+ '霦',
+ '顮',
+ ],
+ chǔ: [
+ '储',
+ '儲',
+ '杵',
+ '椘',
+ '楚',
+ '楮',
+ '檚',
+ '濋',
+ '璴',
+ '础',
+ '礎',
+ '禇',
+ '處',
+ '齭',
+ '齼',
+ '𬺓',
+ ],
+ nuó: ['傩', '儺', '挪', '梛', '橠'],
+ 'cān càn': ['傪'],
+ lěi: [
+ '傫',
+ '儡',
+ '厽',
+ '垒',
+ '塁',
+ '壘',
+ '壨',
+ '櫐',
+ '灅',
+ '癗',
+ '矋',
+ '磊',
+ '礨',
+ '耒',
+ '蕌',
+ '蕾',
+ '藟',
+ '蘽',
+ '蠝',
+ '誄',
+ '讄',
+ '诔',
+ '鑸',
+ '鸓',
+ ],
+ cuī: ['催', '凗', '墔', '崔', '嵟', '慛', '摧', '榱', '獕', '磪', '鏙'],
+ yōng: [
+ '傭',
+ '嗈',
+ '墉',
+ '壅',
+ '嫞',
+ '庸',
+ '廱',
+ '慵',
+ '拥',
+ '擁',
+ '滽',
+ '灉',
+ '牅',
+ '痈',
+ '癕',
+ '癰',
+ '臃',
+ '邕',
+ '郺',
+ '鄘',
+ '鏞',
+ '镛',
+ '雍',
+ '雝',
+ '饔',
+ '鱅',
+ '鳙',
+ '鷛',
+ ],
+ 'zāo cáo': ['傮'],
+ sǒng: ['傱', '嵷', '怂', '悚', '愯', '慫', '竦', '耸', '聳', '駷', '㧐'],
+ ào: [
+ '傲',
+ '坳',
+ '垇',
+ '墺',
+ '奡',
+ '嫯',
+ '岙',
+ '岰',
+ '嶴',
+ '懊',
+ '擙',
+ '澳',
+ '鏊',
+ '驁',
+ '骜',
+ ],
+ 'qī còu': ['傶'],
+ chuǎng: ['傸', '磢', '闖', '闯'],
+ shǎ: ['傻', '儍'],
+ hàn: [
+ '傼',
+ '垾',
+ '悍',
+ '憾',
+ '扞',
+ '捍',
+ '撖',
+ '撼',
+ '旱',
+ '晘',
+ '暵',
+ '汉',
+ '涆',
+ '漢',
+ '瀚',
+ '焊',
+ '猂',
+ '皔',
+ '睅',
+ '翰',
+ '莟',
+ '菡',
+ '蛿',
+ '蜭',
+ '螒',
+ '譀',
+ '輚',
+ '釬',
+ '銲',
+ '鋎',
+ '雗',
+ '頷',
+ '顄',
+ '颔',
+ '駻',
+ '鶾',
+ ],
+ zhāng: [
+ '傽',
+ '嫜',
+ '张',
+ '張',
+ '彰',
+ '慞',
+ '暲',
+ '樟',
+ '漳',
+ '獐',
+ '璋',
+ '章',
+ '粻',
+ '蔁',
+ '蟑',
+ '遧',
+ '鄣',
+ '鏱',
+ '餦',
+ '騿',
+ '鱆',
+ '麞',
+ ],
+ 'yān yàn': ['傿', '墕', '嬮'],
+ 'piào biāo': ['僄', '骠'],
+ liàn: [
+ '僆',
+ '堜',
+ '媡',
+ '恋',
+ '戀',
+ '楝',
+ '殓',
+ '殮',
+ '湅',
+ '潋',
+ '澰',
+ '瀲',
+ '炼',
+ '煉',
+ '瑓',
+ '練',
+ '纞',
+ '练',
+ '萰',
+ '錬',
+ '鍊',
+ '鏈',
+ '链',
+ '鰊',
+ '𬶠',
+ ],
+ màn: [
+ '㵘',
+ '僈',
+ '墁',
+ '幔',
+ '慢',
+ '曼',
+ '漫',
+ '澷',
+ '熳',
+ '獌',
+ '縵',
+ '缦',
+ '蔄',
+ '蘰',
+ '鄤',
+ '鏝',
+ '镘',
+ '𬜬',
+ ],
+ 'tàn tǎn': ['僋'],
+ yíng: [
+ '僌',
+ '営',
+ '塋',
+ '嬴',
+ '攍',
+ '楹',
+ '櫿',
+ '溁',
+ '溋',
+ '滢',
+ '潆',
+ '濙',
+ '濚',
+ '濴',
+ '瀅',
+ '瀛',
+ '瀠',
+ '瀯',
+ '灐',
+ '灜',
+ '熒',
+ '營',
+ '瑩',
+ '盁',
+ '盈',
+ '禜',
+ '籝',
+ '籯',
+ '縈',
+ '茔',
+ '荧',
+ '莹',
+ '萤',
+ '营',
+ '萦',
+ '萾',
+ '蓥',
+ '藀',
+ '蛍',
+ '蝇',
+ '蝿',
+ '螢',
+ '蠅',
+ '謍',
+ '贏',
+ '赢',
+ '迎',
+ '鎣',
+ ],
+ dòng: [
+ '働',
+ '冻',
+ '凍',
+ '动',
+ '動',
+ '姛',
+ '戙',
+ '挏',
+ '栋',
+ '棟',
+ '湩',
+ '硐',
+ '胨',
+ '胴',
+ '腖',
+ '迵',
+ '霘',
+ '駧',
+ ],
+ zhuàn: [
+ '僎',
+ '啭',
+ '囀',
+ '堟',
+ '撰',
+ '灷',
+ '瑑',
+ '篆',
+ '腞',
+ '蒃',
+ '襈',
+ '譔',
+ '饌',
+ '馔',
+ ],
+ xiàng: [
+ '像',
+ '勨',
+ '向',
+ '嚮',
+ '姠',
+ '嶑',
+ '曏',
+ '橡',
+ '珦',
+ '缿',
+ '蟓',
+ '衖',
+ '襐',
+ '象',
+ '鐌',
+ '項',
+ '项',
+ '鱌',
+ ],
+ shàn: [
+ '僐',
+ '善',
+ '墠',
+ '墡',
+ '嬗',
+ '擅',
+ '敾',
+ '椫',
+ '樿',
+ '歚',
+ '汕',
+ '灗',
+ '疝',
+ '磰',
+ '繕',
+ '缮',
+ '膳',
+ '蟮',
+ '蟺',
+ '訕',
+ '謆',
+ '譱',
+ '讪',
+ '贍',
+ '赡',
+ '赸',
+ '鄯',
+ '鐥',
+ '饍',
+ '騸',
+ '骟',
+ '鱓',
+ '鱔',
+ '鳝',
+ '𫮃',
+ ],
+ 'tuí tuǐ': ['僓'],
+ zǔn: ['僔', '噂', '撙', '譐'],
+ pú: [
+ '僕',
+ '匍',
+ '圤',
+ '墣',
+ '濮',
+ '獛',
+ '璞',
+ '瞨',
+ '穙',
+ '莆',
+ '菐',
+ '菩',
+ '葡',
+ '蒱',
+ '蒲',
+ '贌',
+ '酺',
+ '鏷',
+ '镤',
+ ],
+ láo: [
+ '僗',
+ '劳',
+ '労',
+ '勞',
+ '哰',
+ '崂',
+ '嶗',
+ '憥',
+ '朥',
+ '浶',
+ '牢',
+ '痨',
+ '癆',
+ '窂',
+ '簩',
+ '醪',
+ '鐒',
+ '铹',
+ '顟',
+ '髝',
+ '𫭼',
+ ],
+ chǎng: ['僘', '厰', '廠', '敞', '昶', '氅', '鋹', '𬬮'],
+ guāng: [
+ '僙',
+ '光',
+ '咣',
+ '垙',
+ '姯',
+ '洸',
+ '灮',
+ '炗',
+ '炚',
+ '炛',
+ '烡',
+ '珖',
+ '胱',
+ '茪',
+ '輄',
+ '銧',
+ '黆',
+ '𨐈',
+ ],
+ liáo: [
+ '僚',
+ '嘹',
+ '嫽',
+ '寥',
+ '寮',
+ '尞',
+ '屪',
+ '嵺',
+ '嶚',
+ '嶛',
+ '廫',
+ '憀',
+ '敹',
+ '暸',
+ '橑',
+ '獠',
+ '璙',
+ '疗',
+ '療',
+ '竂',
+ '簝',
+ '繚',
+ '缭',
+ '聊',
+ '膋',
+ '膫',
+ '藔',
+ '蟟',
+ '豂',
+ '賿',
+ '蹘',
+ '辽',
+ '遼',
+ '飉',
+ '髎',
+ '鷯',
+ '鹩',
+ ],
+ dèng: ['僜', '凳', '墱', '嶝', '櫈', '瞪', '磴', '覴', '邓', '鄧', '隥'],
+ 'chán zhàn zhuàn': ['僝'],
+ bō: [
+ '僠',
+ '嶓',
+ '拨',
+ '撥',
+ '播',
+ '波',
+ '溊',
+ '玻',
+ '癶',
+ '盋',
+ '砵',
+ '碆',
+ '礡',
+ '缽',
+ '菠',
+ '袰',
+ '蹳',
+ '鉢',
+ '钵',
+ '餑',
+ '饽',
+ '驋',
+ '鱍',
+ '𬭛',
+ ],
+ huì: [
+ '僡',
+ '匯',
+ '卉',
+ '喙',
+ '嘒',
+ '嚖',
+ '圚',
+ '嬒',
+ '寭',
+ '屶',
+ '屷',
+ '彗',
+ '彙',
+ '彚',
+ '徻',
+ '恚',
+ '恵',
+ '惠',
+ '慧',
+ '憓',
+ '懳',
+ '晦',
+ '暳',
+ '槥',
+ '橞',
+ '檅',
+ '櫘',
+ '汇',
+ '泋',
+ '滙',
+ '潓',
+ '烩',
+ '燴',
+ '獩',
+ '璤',
+ '瞺',
+ '硊',
+ '秽',
+ '穢',
+ '篲',
+ '絵',
+ '繪',
+ '绘',
+ '翙',
+ '翽',
+ '荟',
+ '蔧',
+ '蕙',
+ '薈',
+ '薉',
+ '蟪',
+ '詯',
+ '誨',
+ '諱',
+ '譓',
+ '譿',
+ '讳',
+ '诲',
+ '賄',
+ '贿',
+ '鐬',
+ '闠',
+ '阓',
+ '靧',
+ '頮',
+ '顪',
+ '颒',
+ '餯',
+ '𬤝',
+ '𬭬',
+ ],
+ chuǎn: ['僢', '喘', '舛', '荈', '踳'],
+ 'tiě jiàn': ['僣'],
+ sēng: ['僧', '鬙'],
+ xiàn: [
+ '僩',
+ '僴',
+ '哯',
+ '垷',
+ '塪',
+ '姭',
+ '娊',
+ '宪',
+ '岘',
+ '峴',
+ '憲',
+ '撊',
+ '晛',
+ '橌',
+ '橺',
+ '涀',
+ '瀗',
+ '献',
+ '獻',
+ '现',
+ '現',
+ '県',
+ '睍',
+ '粯',
+ '糮',
+ '絤',
+ '綫',
+ '線',
+ '线',
+ '缐',
+ '羡',
+ '羨',
+ '腺',
+ '臔',
+ '臽',
+ '苋',
+ '莧',
+ '誢',
+ '豏',
+ '鋧',
+ '錎',
+ '限',
+ '陥',
+ '陷',
+ '霰',
+ '餡',
+ '馅',
+ '麲',
+ '鼸',
+ '𬀪',
+ '𪾢',
+ ],
+ 'yù jú': ['僪'],
+ 'è wū': ['僫'],
+ 'tóng zhuàng': ['僮'],
+ lǐn: [
+ '僯',
+ '凛',
+ '凜',
+ '廩',
+ '廪',
+ '懍',
+ '懔',
+ '撛',
+ '檁',
+ '檩',
+ '澟',
+ '癛',
+ '癝',
+ ],
+ gù: [
+ '僱',
+ '凅',
+ '固',
+ '堌',
+ '崓',
+ '崮',
+ '故',
+ '梏',
+ '棝',
+ '牿',
+ '痼',
+ '祻',
+ '錮',
+ '锢',
+ '雇',
+ '顧',
+ '顾',
+ '鯝',
+ '鲴',
+ ],
+ jiāng: [
+ '僵',
+ '壃',
+ '姜',
+ '橿',
+ '殭',
+ '江',
+ '畕',
+ '疅',
+ '礓',
+ '繮',
+ '缰',
+ '翞',
+ '茳',
+ '葁',
+ '薑',
+ '螀',
+ '螿',
+ '豇',
+ '韁',
+ '鱂',
+ '鳉',
+ ],
+ mǐn: [
+ '僶',
+ '冺',
+ '刡',
+ '勄',
+ '悯',
+ '惽',
+ '愍',
+ '慜',
+ '憫',
+ '抿',
+ '敃',
+ '敏',
+ '敯',
+ '泯',
+ '潣',
+ '皿',
+ '笢',
+ '笽',
+ '簢',
+ '蠠',
+ '閔',
+ '閩',
+ '闵',
+ '闽',
+ '鰵',
+ '鳘',
+ '黽',
+ ],
+ jìn: [
+ '僸',
+ '凚',
+ '噤',
+ '嚍',
+ '墐',
+ '壗',
+ '妗',
+ '嬧',
+ '搢',
+ '晉',
+ '晋',
+ '枃',
+ '殣',
+ '浕',
+ '浸',
+ '溍',
+ '濅',
+ '濜',
+ '烬',
+ '煡',
+ '燼',
+ '琎',
+ '瑨',
+ '璶',
+ '盡',
+ '祲',
+ '縉',
+ '缙',
+ '荩',
+ '藎',
+ '覲',
+ '觐',
+ '賮',
+ '贐',
+ '赆',
+ '近',
+ '进',
+ '進',
+ '靳',
+ '齽',
+ ],
+ 'jià jie': ['價'],
+ qiào: [
+ '僺',
+ '峭',
+ '帩',
+ '撬',
+ '殻',
+ '窍',
+ '竅',
+ '誚',
+ '诮',
+ '躈',
+ '陗',
+ '鞩',
+ '韒',
+ '髚',
+ ],
+ pì: ['僻', '媲', '嫓', '屁', '澼', '甓', '疈', '譬', '闢', '鷿', '鸊', '䴙'],
+ sài: ['僿', '簺', '賽', '赛'],
+ 'chán tǎn shàn': ['儃'],
+ 'dāng dàng': ['儅', '当', '闣'],
+ xuān: [
+ '儇',
+ '喧',
+ '塇',
+ '媗',
+ '宣',
+ '愃',
+ '愋',
+ '揎',
+ '昍',
+ '暄',
+ '煊',
+ '煖',
+ '瑄',
+ '睻',
+ '矎',
+ '禤',
+ '箮',
+ '翧',
+ '翾',
+ '萱',
+ '萲',
+ '蓒',
+ '蕿',
+ '藼',
+ '蘐',
+ '蝖',
+ '蠉',
+ '諠',
+ '諼',
+ '譞',
+ '谖',
+ '軒',
+ '轩',
+ '鍹',
+ '駽',
+ '鰚',
+ '𫓶',
+ '𫍽',
+ ],
+ 'dān dàn': ['儋', '擔', '瘅'],
+ càn: ['儏', '澯', '灿', '燦', '璨', '粲', '薒', '謲'],
+ 'bīn bìn': ['儐'],
+ 'án àn': ['儑'],
+ tái: [
+ '儓',
+ '坮',
+ '嬯',
+ '抬',
+ '擡',
+ '檯',
+ '炱',
+ '炲',
+ '籉',
+ '臺',
+ '薹',
+ '跆',
+ '邰',
+ '颱',
+ '鮐',
+ '鲐',
+ ],
+ lán: [
+ '儖',
+ '兰',
+ '囒',
+ '婪',
+ '岚',
+ '嵐',
+ '幱',
+ '拦',
+ '攔',
+ '斓',
+ '斕',
+ '栏',
+ '欄',
+ '欗',
+ '澜',
+ '瀾',
+ '灆',
+ '灡',
+ '燣',
+ '燷',
+ '璼',
+ '篮',
+ '籃',
+ '籣',
+ '繿',
+ '葻',
+ '蓝',
+ '藍',
+ '蘫',
+ '蘭',
+ '褴',
+ '襕',
+ '襤',
+ '襴',
+ '襽',
+ '譋',
+ '讕',
+ '谰',
+ '躝',
+ '鑭',
+ '镧',
+ '闌',
+ '阑',
+ '韊',
+ '𬒗',
+ ],
+ 'nǐ yì ài yí': ['儗'],
+ méng: [
+ '儚',
+ '幪',
+ '曚',
+ '朦',
+ '橗',
+ '檬',
+ '氋',
+ '溕',
+ '濛',
+ '甍',
+ '甿',
+ '盟',
+ '礞',
+ '艨',
+ '莔',
+ '萌',
+ '蕄',
+ '虻',
+ '蝱',
+ '鄳',
+ '鄸',
+ '霿',
+ '靀',
+ '顭',
+ '饛',
+ '鯍',
+ '鸏',
+ '鹲',
+ '𫑡',
+ '㠓',
+ ],
+ níng: [
+ '儜',
+ '凝',
+ '咛',
+ '嚀',
+ '嬣',
+ '柠',
+ '橣',
+ '檸',
+ '狞',
+ '獰',
+ '聍',
+ '聹',
+ '薴',
+ '鑏',
+ '鬡',
+ '鸋',
+ ],
+ qióng: [
+ '儝',
+ '卭',
+ '宆',
+ '惸',
+ '憌',
+ '桏',
+ '橩',
+ '焪',
+ '焭',
+ '煢',
+ '熍',
+ '琼',
+ '瓊',
+ '睘',
+ '穷',
+ '穹',
+ '窮',
+ '竆',
+ '笻',
+ '筇',
+ '舼',
+ '茕',
+ '藑',
+ '藭',
+ '蛩',
+ '蛬',
+ '赹',
+ '跫',
+ '邛',
+ '銎',
+ '䓖',
+ ],
+ liè: [
+ '儠',
+ '冽',
+ '列',
+ '劣',
+ '劽',
+ '埒',
+ '埓',
+ '姴',
+ '峛',
+ '巤',
+ '挒',
+ '捩',
+ '栵',
+ '洌',
+ '浖',
+ '烈',
+ '烮',
+ '煭',
+ '犣',
+ '猎',
+ '猟',
+ '獵',
+ '聗',
+ '脟',
+ '茢',
+ '蛚',
+ '趔',
+ '躐',
+ '迾',
+ '颲',
+ '鬛',
+ '鬣',
+ '鮤',
+ '鱲',
+ '鴷',
+ '䴕',
+ '𫚭',
+ ],
+ kuǎng: ['儣', '夼', '懭'],
+ bào: [
+ '儤',
+ '勽',
+ '報',
+ '忁',
+ '报',
+ '抱',
+ '曓',
+ '爆',
+ '犦',
+ '菢',
+ '虣',
+ '蚫',
+ '豹',
+ '鉋',
+ '鑤',
+ '铇',
+ '骲',
+ '髱',
+ '鮑',
+ '鲍',
+ ],
+ biāo: [
+ '儦',
+ '墂',
+ '幖',
+ '彪',
+ '标',
+ '標',
+ '滮',
+ '瀌',
+ '熛',
+ '爂',
+ '猋',
+ '瘭',
+ '磦',
+ '膘',
+ '臕',
+ '謤',
+ '贆',
+ '鏢',
+ '鑣',
+ '镖',
+ '镳',
+ '颮',
+ '颷',
+ '飆',
+ '飇',
+ '飈',
+ '飊',
+ '飑',
+ '飙',
+ '飚',
+ '驫',
+ '骉',
+ '髟',
+ ],
+ zǎn: ['儧', '儹', '噆', '攅', '昝', '趱', '趲'],
+ háo: [
+ '儫',
+ '嗥',
+ '嘷',
+ '噑',
+ '嚎',
+ '壕',
+ '椃',
+ '毜',
+ '毫',
+ '濠',
+ '獆',
+ '獔',
+ '竓',
+ '籇',
+ '蚝',
+ '蠔',
+ '譹',
+ '豪',
+ ],
+ qìng: ['儬', '凊', '庆', '慶', '櫦', '濪', '碃', '磬', '罄', '靘'],
+ chèn: [
+ '儭',
+ '嚫',
+ '榇',
+ '櫬',
+ '疢',
+ '衬',
+ '襯',
+ '讖',
+ '谶',
+ '趁',
+ '趂',
+ '齓',
+ '齔',
+ '龀',
+ ],
+ téng: [
+ '儯',
+ '幐',
+ '滕',
+ '漛',
+ '疼',
+ '籐',
+ '籘',
+ '縢',
+ '腾',
+ '藤',
+ '虅',
+ '螣',
+ '誊',
+ '謄',
+ '邆',
+ '駦',
+ '騰',
+ '驣',
+ '鰧',
+ '䲢',
+ ],
+ 'lǒng lóng lòng': ['儱'],
+ 'chán chàn': ['儳'],
+ 'ráng xiāng': ['儴', '勷'],
+ 'huì xié': ['儶'],
+ luó: [
+ '儸',
+ '攞',
+ '椤',
+ '欏',
+ '猡',
+ '玀',
+ '箩',
+ '籮',
+ '罗',
+ '羅',
+ '脶',
+ '腡',
+ '萝',
+ '蘿',
+ '螺',
+ '覼',
+ '逻',
+ '邏',
+ '鏍',
+ '鑼',
+ '锣',
+ '镙',
+ '饠',
+ '騾',
+ '驘',
+ '骡',
+ '鸁',
+ ],
+ léi: [
+ '儽',
+ '嫘',
+ '檑',
+ '欙',
+ '瓃',
+ '畾',
+ '縲',
+ '纍',
+ '纝',
+ '缧',
+ '罍',
+ '羸',
+ '蔂',
+ '蘲',
+ '虆',
+ '轠',
+ '鐳',
+ '鑘',
+ '镭',
+ '雷',
+ '靁',
+ '鱩',
+ '鼺',
+ ],
+ 'nàng nāng': ['儾'],
+ 'wù wū': ['兀'],
+ yǔn: [
+ '允',
+ '喗',
+ '夽',
+ '抎',
+ '殒',
+ '殞',
+ '狁',
+ '磒',
+ '荺',
+ '賱',
+ '鈗',
+ '阭',
+ '陨',
+ '隕',
+ '霣',
+ '馻',
+ '齫',
+ '齳',
+ ],
+ zān: ['兂', '橵', '簪', '簮', '糌', '鐕', '鐟', '鵤'],
+ yuán: [
+ '元',
+ '円',
+ '原',
+ '厡',
+ '厵',
+ '园',
+ '圆',
+ '圎',
+ '園',
+ '圓',
+ '垣',
+ '塬',
+ '媴',
+ '嫄',
+ '援',
+ '榞',
+ '榬',
+ '橼',
+ '櫞',
+ '沅',
+ '湲',
+ '源',
+ '溒',
+ '爰',
+ '猨',
+ '猿',
+ '笎',
+ '緣',
+ '縁',
+ '缘',
+ '羱',
+ '茒',
+ '薗',
+ '蝝',
+ '蝯',
+ '螈',
+ '袁',
+ '褤',
+ '謜',
+ '轅',
+ '辕',
+ '邍',
+ '邧',
+ '酛',
+ '鈨',
+ '鎱',
+ '騵',
+ '魭',
+ '鶢',
+ '鶰',
+ '黿',
+ '鼋',
+ '𫘪',
+ ],
+ xiōng: [
+ '兄',
+ '兇',
+ '凶',
+ '匂',
+ '匈',
+ '哅',
+ '忷',
+ '恟',
+ '汹',
+ '洶',
+ '胷',
+ '胸',
+ '芎',
+ '訩',
+ '詾',
+ '讻',
+ ],
+ chōng: [
+ '充',
+ '嘃',
+ '忡',
+ '憃',
+ '憧',
+ '摏',
+ '沖',
+ '浺',
+ '珫',
+ '罿',
+ '翀',
+ '舂',
+ '艟',
+ '茺',
+ '衝',
+ '蹖',
+ '㳘',
+ ],
+ zhào: [
+ '兆',
+ '垗',
+ '旐',
+ '曌',
+ '枛',
+ '櫂',
+ '照',
+ '燳',
+ '狣',
+ '瞾',
+ '笊',
+ '罀',
+ '罩',
+ '羄',
+ '肁',
+ '肇',
+ '肈',
+ '詔',
+ '诏',
+ '赵',
+ '趙',
+ '鮡',
+ '𬶐',
+ ],
+ 'duì ruì yuè': ['兊', '兌', '兑'],
+ kè: [
+ '克',
+ '刻',
+ '勀',
+ '勊',
+ '堁',
+ '娔',
+ '客',
+ '恪',
+ '愙',
+ '氪',
+ '溘',
+ '碦',
+ '緙',
+ '缂',
+ '艐',
+ '衉',
+ '課',
+ '课',
+ '錁',
+ '锞',
+ '騍',
+ '骒',
+ ],
+ tù: ['兎', '兔', '堍', '迌', '鵵'],
+ dǎng: ['党', '攩', '欓', '譡', '讜', '谠', '黨', '𣗋'],
+ dōu: ['兜', '兠', '唗', '橷', '篼', '蔸'],
+ huǎng: [
+ '兤',
+ '奛',
+ '幌',
+ '怳',
+ '恍',
+ '晄',
+ '炾',
+ '熀',
+ '縨',
+ '詤',
+ '謊',
+ '谎',
+ ],
+ rù: ['入', '嗕', '媷', '扖', '杁', '洳', '溽', '縟', '缛', '蓐', '褥', '鳰'],
+ nèi: ['內', '氝', '氞', '錗'],
+ 'yú shù': ['兪'],
+ 'liù lù': ['六'],
+ han: ['兯', '爳'],
+ tiān: ['兲', '天', '婖', '添', '酟', '靔', '靝', '黇'],
+ 'xīng xìng': ['兴'],
+ diǎn: [
+ '典',
+ '嚸',
+ '奌',
+ '婰',
+ '敟',
+ '椣',
+ '点',
+ '碘',
+ '蒧',
+ '蕇',
+ '踮',
+ '點',
+ ],
+ 'zī cí': ['兹'],
+ jiān: [
+ '兼',
+ '冿',
+ '囏',
+ '坚',
+ '堅',
+ '奸',
+ '姦',
+ '姧',
+ '尖',
+ '幵',
+ '惤',
+ '戋',
+ '戔',
+ '搛',
+ '椾',
+ '樫',
+ '櫼',
+ '歼',
+ '殱',
+ '殲',
+ '湔',
+ '瀐',
+ '瀸',
+ '煎',
+ '熞',
+ '熸',
+ '牋',
+ '瑊',
+ '睷',
+ '礛',
+ '礷',
+ '笺',
+ '箋',
+ '緘',
+ '縑',
+ '缄',
+ '缣',
+ '肩',
+ '艰',
+ '艱',
+ '菅',
+ '菺',
+ '葌',
+ '蒹',
+ '蔪',
+ '蕑',
+ '蕳',
+ '虃',
+ '譼',
+ '豜',
+ '鑯',
+ '雃',
+ '鞯',
+ '韀',
+ '韉',
+ '餰',
+ '馢',
+ '鰔',
+ '鰜',
+ '鰹',
+ '鲣',
+ '鳒',
+ '鵑',
+ '鵳',
+ '鶼',
+ '鹣',
+ '麉',
+ ],
+ shòu: [
+ '兽',
+ '受',
+ '售',
+ '壽',
+ '夀',
+ '寿',
+ '授',
+ '狩',
+ '獣',
+ '獸',
+ '痩',
+ '瘦',
+ '綬',
+ '绶',
+ '膄',
+ ],
+ jì: [
+ '兾',
+ '冀',
+ '剂',
+ '剤',
+ '劑',
+ '勣',
+ '坖',
+ '垍',
+ '塈',
+ '妓',
+ '季',
+ '寂',
+ '寄',
+ '廭',
+ '彑',
+ '徛',
+ '忌',
+ '悸',
+ '惎',
+ '懻',
+ '技',
+ '旡',
+ '既',
+ '旣',
+ '暨',
+ '暩',
+ '曁',
+ '梞',
+ '檕',
+ '檵',
+ '洎',
+ '漃',
+ '漈',
+ '瀱',
+ '痵',
+ '癠',
+ '禝',
+ '稩',
+ '稷',
+ '穄',
+ '穊',
+ '穧',
+ '紀',
+ '継',
+ '績',
+ '繋',
+ '繼',
+ '继',
+ '绩',
+ '罽',
+ '臮',
+ '芰',
+ '茍',
+ '茤',
+ '葪',
+ '蓟',
+ '蔇',
+ '薊',
+ '蘎',
+ '蘮',
+ '蘻',
+ '裚',
+ '襀',
+ '覬',
+ '觊',
+ '計',
+ '記',
+ '誋',
+ '计',
+ '记',
+ '跡',
+ '跽',
+ '蹟',
+ '迹',
+ '际',
+ '際',
+ '霁',
+ '霽',
+ '驥',
+ '骥',
+ '髻',
+ '鬾',
+ '魝',
+ '魥',
+ '鯚',
+ '鯽',
+ '鰶',
+ '鰿',
+ '鱀',
+ '鱭',
+ '鲚',
+ '鲫',
+ '鵋',
+ '鷑',
+ '齌',
+ '𪟝',
+ '𬶨',
+ '𬶭',
+ ],
+ jiōng: ['冂', '冋', '坰', '埛', '扃', '蘏', '蘔', '駉', '駫', '𬳶'],
+ mào: [
+ '冃',
+ '冐',
+ '媢',
+ '帽',
+ '愗',
+ '懋',
+ '暓',
+ '柕',
+ '楙',
+ '毷',
+ '瑁',
+ '皃',
+ '眊',
+ '瞀',
+ '耄',
+ '茂',
+ '萺',
+ '蝐',
+ '袤',
+ '覒',
+ '貌',
+ '貿',
+ '贸',
+ '鄚',
+ '鄮',
+ ],
+ rǎn: ['冄', '冉', '姌', '媣', '染', '珃', '苒', '蒅', '䎃'],
+ 'nèi nà': ['内'],
+ gāng: [
+ '冈',
+ '冮',
+ '刚',
+ '剛',
+ '堈',
+ '堽',
+ '岡',
+ '掆',
+ '摃',
+ '棡',
+ '牨',
+ '犅',
+ '疘',
+ '綱',
+ '纲',
+ '缸',
+ '罁',
+ '罡',
+ '肛',
+ '釭',
+ '鎠',
+ '㭎',
+ ],
+ cè: [
+ '冊',
+ '册',
+ '厕',
+ '厠',
+ '夨',
+ '廁',
+ '恻',
+ '惻',
+ '憡',
+ '敇',
+ '测',
+ '測',
+ '笧',
+ '策',
+ '筞',
+ '筴',
+ '箣',
+ '荝',
+ '萗',
+ '萴',
+ '蓛',
+ ],
+ guǎ: ['冎', '剐', '剮', '叧', '寡'],
+ 'mào mò': ['冒'],
+ gòu: [
+ '冓',
+ '啂',
+ '坸',
+ '垢',
+ '够',
+ '夠',
+ '媾',
+ '彀',
+ '搆',
+ '撀',
+ '构',
+ '構',
+ '煹',
+ '覯',
+ '觏',
+ '訽',
+ '詬',
+ '诟',
+ '購',
+ '购',
+ '遘',
+ '雊',
+ ],
+ xǔ: ['冔', '喣', '暊', '栩', '珝', '盨', '糈', '詡', '諿', '诩', '鄦', '醑'],
+ mì: [
+ '冖',
+ '冪',
+ '嘧',
+ '塓',
+ '宻',
+ '密',
+ '峚',
+ '幂',
+ '幎',
+ '幦',
+ '怽',
+ '榓',
+ '樒',
+ '櫁',
+ '汨',
+ '淧',
+ '滵',
+ '漞',
+ '濗',
+ '熐',
+ '羃',
+ '蔤',
+ '蜜',
+ '覓',
+ '覔',
+ '覛',
+ '觅',
+ '謐',
+ '谧',
+ '鼏',
+ ],
+ 'yóu yín': ['冘'],
+ xiě: ['写', '冩', '藛'],
+ jūn: [
+ '军',
+ '君',
+ '均',
+ '桾',
+ '汮',
+ '皲',
+ '皸',
+ '皹',
+ '碅',
+ '莙',
+ '蚐',
+ '袀',
+ '覠',
+ '軍',
+ '鈞',
+ '銁',
+ '銞',
+ '鍕',
+ '钧',
+ '頵',
+ '鮶',
+ '鲪',
+ '麏',
+ ],
+ mí: [
+ '冞',
+ '擟',
+ '瀰',
+ '爢',
+ '猕',
+ '獼',
+ '祢',
+ '禰',
+ '縻',
+ '蒾',
+ '藌',
+ '蘪',
+ '蘼',
+ '袮',
+ '詸',
+ '謎',
+ '迷',
+ '醚',
+ '醾',
+ '醿',
+ '釄',
+ '镾',
+ '鸍',
+ '麊',
+ '麋',
+ '麛',
+ ],
+ 'guān guàn': ['冠', '覌', '観', '觀', '观'],
+ měng: [
+ '冡',
+ '勐',
+ '懵',
+ '掹',
+ '猛',
+ '獴',
+ '艋',
+ '蜢',
+ '蠓',
+ '錳',
+ '锰',
+ '鯭',
+ '鼆',
+ ],
+ zhǒng: ['冢', '塚', '尰', '歱', '煄', '瘇', '肿', '腫', '踵'],
+ zuì: [
+ '冣',
+ '嶵',
+ '晬',
+ '最',
+ '栬',
+ '槜',
+ '檇',
+ '檌',
+ '祽',
+ '絊',
+ '罪',
+ '蕞',
+ '辠',
+ '酔',
+ '酻',
+ '醉',
+ '錊',
+ ],
+ yuān: [
+ '冤',
+ '剈',
+ '囦',
+ '嬽',
+ '寃',
+ '棩',
+ '淵',
+ '渁',
+ '渆',
+ '渊',
+ '渕',
+ '灁',
+ '眢',
+ '肙',
+ '葾',
+ '蒬',
+ '蜎',
+ '蜵',
+ '駌',
+ '鳶',
+ '鴛',
+ '鵷',
+ '鸢',
+ '鸳',
+ '鹓',
+ '鼘',
+ '鼝',
+ ],
+ míng: [
+ '冥',
+ '名',
+ '明',
+ '暝',
+ '朙',
+ '榠',
+ '洺',
+ '溟',
+ '猽',
+ '眀',
+ '眳',
+ '瞑',
+ '茗',
+ '螟',
+ '覭',
+ '詺',
+ '鄍',
+ '銘',
+ '铭',
+ '鳴',
+ '鸣',
+ ],
+ kòu: [
+ '冦',
+ '叩',
+ '宼',
+ '寇',
+ '扣',
+ '敂',
+ '滱',
+ '窛',
+ '筘',
+ '簆',
+ '蔲',
+ '蔻',
+ '釦',
+ '鷇',
+ ],
+ tài: [
+ '冭',
+ '太',
+ '夳',
+ '忲',
+ '态',
+ '態',
+ '汰',
+ '汱',
+ '泰',
+ '溙',
+ '肽',
+ '舦',
+ '酞',
+ '鈦',
+ '钛',
+ ],
+ 'féng píng': ['冯', '馮'],
+ 'chōng chòng': ['冲'],
+ kuàng: [
+ '况',
+ '圹',
+ '壙',
+ '岲',
+ '懬',
+ '旷',
+ '昿',
+ '曠',
+ '框',
+ '況',
+ '爌',
+ '眖',
+ '眶',
+ '矿',
+ '砿',
+ '礦',
+ '穬',
+ '絋',
+ '絖',
+ '纊',
+ '纩',
+ '貺',
+ '贶',
+ '軦',
+ '邝',
+ '鄺',
+ '鉱',
+ '鋛',
+ '鑛',
+ '黋',
+ ],
+ lěng: ['冷'],
+ pàn: [
+ '冸',
+ '判',
+ '叛',
+ '沜',
+ '泮',
+ '溿',
+ '炍',
+ '牉',
+ '畔',
+ '盼',
+ '聁',
+ '袢',
+ '襻',
+ '詊',
+ '鋬',
+ '鑻',
+ '頖',
+ '鵥',
+ ],
+ fā: ['冹', '彂', '沷', '発', '發'],
+ xiǎn: [
+ '冼',
+ '尟',
+ '尠',
+ '崄',
+ '嶮',
+ '幰',
+ '攇',
+ '显',
+ '櫶',
+ '毨',
+ '灦',
+ '烍',
+ '燹',
+ '狝',
+ '猃',
+ '獫',
+ '獮',
+ '玁',
+ '禒',
+ '筅',
+ '箲',
+ '藓',
+ '蘚',
+ '蚬',
+ '蜆',
+ '譣',
+ '赻',
+ '跣',
+ '鍌',
+ '险',
+ '険',
+ '險',
+ '韅',
+ '顕',
+ '顯',
+ '㬎',
+ ],
+ qià: ['冾', '圶', '帢', '恰', '殎', '洽', '硈', '胢', '髂'],
+ 'jìng chēng': ['净', '凈', '淨'],
+ sōu: [
+ '凁',
+ '嗖',
+ '廀',
+ '廋',
+ '捜',
+ '搜',
+ '摉',
+ '溲',
+ '獀',
+ '艘',
+ '蒐',
+ '螋',
+ '鄋',
+ '醙',
+ '鎪',
+ '锼',
+ '颼',
+ '飕',
+ '餿',
+ '馊',
+ '騪',
+ ],
+ měi: [
+ '凂',
+ '媄',
+ '媺',
+ '嬍',
+ '嵄',
+ '挴',
+ '毎',
+ '每',
+ '浼',
+ '渼',
+ '燘',
+ '美',
+ '躾',
+ '鎂',
+ '镁',
+ '黣',
+ ],
+ tú: [
+ '凃',
+ '図',
+ '图',
+ '圖',
+ '圗',
+ '塗',
+ '屠',
+ '峹',
+ '嵞',
+ '庩',
+ '廜',
+ '徒',
+ '悇',
+ '揬',
+ '涂',
+ '瘏',
+ '筡',
+ '腯',
+ '荼',
+ '蒤',
+ '跿',
+ '途',
+ '酴',
+ '鈯',
+ '鍎',
+ '馟',
+ '駼',
+ '鵌',
+ '鶟',
+ '鷋',
+ '鷵',
+ '𬳿',
+ ],
+ zhǔn: ['准', '凖', '埻', '準', '𬘯'],
+ 'liáng liàng': ['凉', '涼', '量'],
+ diāo: [
+ '凋',
+ '刁',
+ '刟',
+ '叼',
+ '奝',
+ '弴',
+ '彫',
+ '汈',
+ '琱',
+ '碉',
+ '簓',
+ '虭',
+ '蛁',
+ '貂',
+ '錭',
+ '雕',
+ '鮉',
+ '鯛',
+ '鲷',
+ '鵰',
+ '鼦',
+ ],
+ còu: ['凑', '湊', '腠', '輳', '辏'],
+ ái: ['凒', '啀', '嘊', '捱', '溰', '癌', '皑', '皚'],
+ duó: ['凙', '剫', '夺', '奪', '痥', '踱', '鈬', '鐸', '铎'],
+ dú: [
+ '凟',
+ '匵',
+ '嬻',
+ '椟',
+ '櫝',
+ '殰',
+ '涜',
+ '牍',
+ '牘',
+ '犊',
+ '犢',
+ '独',
+ '獨',
+ '瓄',
+ '皾',
+ '裻',
+ '読',
+ '讀',
+ '讟',
+ '豄',
+ '贕',
+ '錖',
+ '鑟',
+ '韇',
+ '韣',
+ '韥',
+ '騳',
+ '髑',
+ '黩',
+ '黷',
+ ],
+ 'jǐ jī': ['几'],
+ fán: [
+ '凡',
+ '凢',
+ '凣',
+ '匥',
+ '墦',
+ '杋',
+ '柉',
+ '棥',
+ '樊',
+ '瀿',
+ '烦',
+ '煩',
+ '燔',
+ '璠',
+ '矾',
+ '礬',
+ '笲',
+ '籵',
+ '緐',
+ '羳',
+ '舤',
+ '舧',
+ '薠',
+ '蘩',
+ '蠜',
+ '襎',
+ '蹯',
+ '釩',
+ '鐇',
+ '鐢',
+ '钒',
+ '鷭',
+ '𫔍',
+ '𬸪',
+ ],
+ jū: [
+ '凥',
+ '匊',
+ '娵',
+ '婮',
+ '居',
+ '崌',
+ '抅',
+ '挶',
+ '掬',
+ '梮',
+ '椐',
+ '檋',
+ '毩',
+ '毱',
+ '泃',
+ '涺',
+ '狙',
+ '琚',
+ '疽',
+ '砠',
+ '罝',
+ '腒',
+ '艍',
+ '蜛',
+ '裾',
+ '諊',
+ '跔',
+ '踘',
+ '躹',
+ '陱',
+ '雎',
+ '鞠',
+ '鞫',
+ '駒',
+ '驹',
+ '鮈',
+ '鴡',
+ '鶋',
+ '𬶋',
+ ],
+ 'chù chǔ': ['処', '处'],
+ zhǐ: [
+ '凪',
+ '劧',
+ '咫',
+ '址',
+ '坧',
+ '帋',
+ '恉',
+ '扺',
+ '指',
+ '旨',
+ '枳',
+ '止',
+ '汦',
+ '沚',
+ '洔',
+ '淽',
+ '疻',
+ '砋',
+ '祉',
+ '秖',
+ '紙',
+ '纸',
+ '芷',
+ '藢',
+ '衹',
+ '襧',
+ '訨',
+ '趾',
+ '軹',
+ '轵',
+ '酯',
+ '阯',
+ '黹',
+ ],
+ píng: [
+ '凭',
+ '凴',
+ '呯',
+ '坪',
+ '塀',
+ '岼',
+ '帡',
+ '帲',
+ '幈',
+ '平',
+ '慿',
+ '憑',
+ '枰',
+ '洴',
+ '焩',
+ '玶',
+ '瓶',
+ '甁',
+ '竮',
+ '箳',
+ '簈',
+ '缾',
+ '荓',
+ '萍',
+ '蓱',
+ '蚲',
+ '蛢',
+ '評',
+ '评',
+ '軿',
+ '輧',
+ '郱',
+ '鮃',
+ '鲆',
+ ],
+ kǎi: [
+ '凯',
+ '凱',
+ '剀',
+ '剴',
+ '垲',
+ '塏',
+ '恺',
+ '愷',
+ '慨',
+ '暟',
+ '蒈',
+ '輆',
+ '鍇',
+ '鎧',
+ '铠',
+ '锴',
+ '闓',
+ '闿',
+ '颽',
+ ],
+ gān: [
+ '凲',
+ '坩',
+ '尲',
+ '尴',
+ '尶',
+ '尷',
+ '柑',
+ '泔',
+ '漧',
+ '玕',
+ '甘',
+ '疳',
+ '矸',
+ '竿',
+ '筸',
+ '粓',
+ '肝',
+ '苷',
+ '迀',
+ '酐',
+ '魐',
+ ],
+ 'kǎn qiǎn': ['凵'],
+ tū: [
+ '凸',
+ '堗',
+ '嶀',
+ '捸',
+ '涋',
+ '湥',
+ '痜',
+ '禿',
+ '秃',
+ '突',
+ '葖',
+ '鋵',
+ '鵚',
+ '鼵',
+ '㻬',
+ ],
+ 'āo wā': ['凹'],
+ chū: ['出', '初', '岀', '摴', '榋', '樗', '貙', '齣', '䢺', '䝙'],
+ dàng: [
+ '凼',
+ '圵',
+ '垱',
+ '壋',
+ '档',
+ '檔',
+ '氹',
+ '璗',
+ '瓽',
+ '盪',
+ '瞊',
+ '砀',
+ '碭',
+ '礑',
+ '簜',
+ '荡',
+ '菪',
+ '蕩',
+ '蘯',
+ '趤',
+ '逿',
+ '雼',
+ '𬍡',
+ ],
+ hán: [
+ '函',
+ '凾',
+ '含',
+ '圅',
+ '娢',
+ '寒',
+ '崡',
+ '晗',
+ '梒',
+ '浛',
+ '涵',
+ '澏',
+ '焓',
+ '琀',
+ '甝',
+ '筨',
+ '蜬',
+ '邗',
+ '邯',
+ '鋡',
+ '韓',
+ '韩',
+ ],
+ záo: ['凿', '鑿'],
+ dāo: ['刀', '刂', '忉', '氘', '舠', '螩', '釖', '魛', '鱽'],
+ chuāng: ['刅', '摐', '牎', '牕', '疮', '瘡', '窓', '窗', '窻'],
+ 'fēn fèn': ['分'],
+ 'qiè qiē': ['切'],
+ kān: ['刊', '勘', '堪', '戡', '栞', '龕', '龛'],
+ cǔn: ['刌', '忖'],
+ chú: [
+ '刍',
+ '厨',
+ '幮',
+ '廚',
+ '橱',
+ '櫉',
+ '櫥',
+ '滁',
+ '犓',
+ '篨',
+ '耡',
+ '芻',
+ '蒢',
+ '蒭',
+ '蜍',
+ '蟵',
+ '豠',
+ '趎',
+ '蹰',
+ '躇',
+ '躕',
+ '鉏',
+ '鋤',
+ '锄',
+ '除',
+ '雏',
+ '雛',
+ '鶵',
+ ],
+ 'huà huá': ['划'],
+ lí: [
+ '刕',
+ '剓',
+ '剺',
+ '劙',
+ '厘',
+ '喱',
+ '嚟',
+ '囄',
+ '嫠',
+ '孷',
+ '廲',
+ '悡',
+ '梨',
+ '梸',
+ '棃',
+ '漓',
+ '灕',
+ '犁',
+ '犂',
+ '狸',
+ '琍',
+ '璃',
+ '瓈',
+ '盠',
+ '睝',
+ '离',
+ '穲',
+ '竰',
+ '筣',
+ '篱',
+ '籬',
+ '糎',
+ '縭',
+ '缡',
+ '罹',
+ '艃',
+ '荲',
+ '菞',
+ '蓠',
+ '蔾',
+ '藜',
+ '蘺',
+ '蜊',
+ '蟍',
+ '蟸',
+ '蠫',
+ '褵',
+ '謧',
+ '貍',
+ '醨',
+ '鋫',
+ '錅',
+ '鏫',
+ '鑗',
+ '離',
+ '驪',
+ '骊',
+ '鯏',
+ '鯬',
+ '鱺',
+ '鲡',
+ '鵹',
+ '鸝',
+ '鹂',
+ '黎',
+ '黧',
+ '㰀',
+ ],
+ yuè: [
+ '刖',
+ '嬳',
+ '岄',
+ '岳',
+ '嶽',
+ '恱',
+ '悅',
+ '悦',
+ '戉',
+ '抈',
+ '捳',
+ '月',
+ '樾',
+ '瀹',
+ '爚',
+ '玥',
+ '礿',
+ '禴',
+ '篗',
+ '籆',
+ '籥',
+ '籰',
+ '粤',
+ '粵',
+ '蘥',
+ '蚎',
+ '蚏',
+ '説',
+ '越',
+ '跀',
+ '跃',
+ '躍',
+ '軏',
+ '鈅',
+ '鉞',
+ '鑰',
+ '钺',
+ '閱',
+ '閲',
+ '阅',
+ '鸑',
+ '鸙',
+ '黦',
+ '龠',
+ '𫐄',
+ '𬸚',
+ ],
+ liú: [
+ '刘',
+ '劉',
+ '嚠',
+ '媹',
+ '嵧',
+ '旈',
+ '旒',
+ '榴',
+ '橊',
+ '流',
+ '浏',
+ '瀏',
+ '琉',
+ '瑠',
+ '瑬',
+ '璢',
+ '畄',
+ '留',
+ '畱',
+ '疁',
+ '瘤',
+ '癅',
+ '硫',
+ '蒥',
+ '蓅',
+ '蟉',
+ '裗',
+ '鎏',
+ '鏐',
+ '鐂',
+ '镠',
+ '飀',
+ '飅',
+ '飗',
+ '駠',
+ '駵',
+ '騮',
+ '驑',
+ '骝',
+ '鰡',
+ '鶹',
+ '鹠',
+ '麍',
+ ],
+ zé: [
+ '则',
+ '則',
+ '啧',
+ '嘖',
+ '嫧',
+ '帻',
+ '幘',
+ '択',
+ '樍',
+ '歵',
+ '沢',
+ '泎',
+ '溭',
+ '皟',
+ '瞔',
+ '矠',
+ '礋',
+ '箦',
+ '簀',
+ '舴',
+ '蔶',
+ '蠌',
+ '襗',
+ '謮',
+ '賾',
+ '赜',
+ '迮',
+ '鸅',
+ '齚',
+ '齰',
+ ],
+ 'chuàng chuāng': ['创', '創'],
+ qù: ['刞', '厺', '去', '閴', '闃', '阒', '麮', '鼁'],
+ 'bié biè': ['別', '别'],
+ 'páo bào': ['刨'],
+ 'chǎn chàn': ['刬', '剗', '幝'],
+ guā: [
+ '刮',
+ '劀',
+ '桰',
+ '歄',
+ '煱',
+ '瓜',
+ '胍',
+ '踻',
+ '颪',
+ '颳',
+ '騧',
+ '鴰',
+ '鸹',
+ ],
+ gēng: [
+ '刯',
+ '庚',
+ '椩',
+ '浭',
+ '焿',
+ '畊',
+ '絚',
+ '羮',
+ '羹',
+ '耕',
+ '菮',
+ '賡',
+ '赓',
+ '鶊',
+ '鹒',
+ ],
+ dào: [
+ '到',
+ '噵',
+ '悼',
+ '椡',
+ '檤',
+ '燾',
+ '瓙',
+ '盗',
+ '盜',
+ '稲',
+ '稻',
+ '纛',
+ '翿',
+ '艔',
+ '菿',
+ '衜',
+ '衟',
+ '軇',
+ '道',
+ ],
+ chuàng: ['刱', '剏', '剙', '怆', '愴'],
+ kū: ['刳', '哭', '圐', '堀', '枯', '桍', '矻', '窟', '跍', '郀', '骷', '鮬'],
+ duò: [
+ '刴',
+ '剁',
+ '墯',
+ '尮',
+ '惰',
+ '憜',
+ '挅',
+ '桗',
+ '舵',
+ '跥',
+ '跺',
+ '陊',
+ '陏',
+ '飿',
+ '饳',
+ '鵽',
+ ],
+ 'shuā shuà': ['刷'],
+ 'quàn xuàn': ['券'],
+ 'chà shā': ['刹', '剎'],
+ 'cì cī': ['刺'],
+ guì: [
+ '刽',
+ '刿',
+ '劊',
+ '劌',
+ '撌',
+ '攰',
+ '昋',
+ '桂',
+ '椢',
+ '槶',
+ '樻',
+ '櫃',
+ '猤',
+ '禬',
+ '筀',
+ '蓕',
+ '襘',
+ '貴',
+ '贵',
+ '跪',
+ '鐀',
+ '鑎',
+ '鞼',
+ '鱖',
+ '鱥',
+ ],
+ lóu: [
+ '剅',
+ '娄',
+ '婁',
+ '廔',
+ '楼',
+ '樓',
+ '溇',
+ '漊',
+ '熡',
+ '耧',
+ '耬',
+ '艛',
+ '蒌',
+ '蔞',
+ '蝼',
+ '螻',
+ '謱',
+ '軁',
+ '遱',
+ '鞻',
+ '髅',
+ '髏',
+ '𪣻',
+ ],
+ cuò: [
+ '剉',
+ '剒',
+ '厝',
+ '夎',
+ '挫',
+ '措',
+ '棤',
+ '莝',
+ '莡',
+ '蓌',
+ '逪',
+ '銼',
+ '錯',
+ '锉',
+ '错',
+ ],
+ 'xiāo xuē': ['削'],
+ 'kēi kè': ['剋', '尅'],
+ 'là lá': ['剌'],
+ tī: ['剔', '梯', '踢', '銻', '锑', '鷈', '鷉', '䏲', '䴘'],
+ pōu: ['剖'],
+ wān: ['剜', '塆', '壪', '帵', '弯', '彎', '湾', '潫', '灣', '睕', '蜿', '豌'],
+ 'bāo bō': ['剝', '剥'],
+ duō: ['剟', '咄', '哆', '嚉', '多', '夛', '掇', '毲', '畓', '裰', '㙍'],
+ qíng: [
+ '剠',
+ '勍',
+ '夝',
+ '情',
+ '擎',
+ '晴',
+ '暒',
+ '棾',
+ '樈',
+ '檠',
+ '氰',
+ '甠',
+ '硘',
+ '葝',
+ '黥',
+ ],
+ 'yǎn shàn': ['剡'],
+ 'dū zhuó': ['剢'],
+ yān: [
+ '剦',
+ '嫣',
+ '崦',
+ '嶖',
+ '恹',
+ '懕',
+ '懨',
+ '樮',
+ '淊',
+ '淹',
+ '漹',
+ '烟',
+ '焉',
+ '焑',
+ '煙',
+ '珚',
+ '篶',
+ '胭',
+ '臙',
+ '菸',
+ '鄢',
+ '醃',
+ '閹',
+ '阉',
+ '黫',
+ ],
+ huō: ['剨', '劐', '吙', '攉', '秴', '耠', '锪', '騞', '𬴃'],
+ shèng: [
+ '剩',
+ '剰',
+ '勝',
+ '圣',
+ '墭',
+ '嵊',
+ '晠',
+ '榺',
+ '橳',
+ '琞',
+ '聖',
+ '蕂',
+ '貹',
+ '賸',
+ ],
+ 'duān zhì': ['剬'],
+ wū: [
+ '剭',
+ '呜',
+ '嗚',
+ '圬',
+ '屋',
+ '巫',
+ '弙',
+ '杇',
+ '歍',
+ '汙',
+ '汚',
+ '污',
+ '洿',
+ '烏',
+ '窏',
+ '箼',
+ '螐',
+ '誈',
+ '誣',
+ '诬',
+ '邬',
+ '鄔',
+ '鎢',
+ '钨',
+ '鰞',
+ '鴮',
+ ],
+ gē: [
+ '割',
+ '哥',
+ '圪',
+ '彁',
+ '戈',
+ '戓',
+ '戨',
+ '歌',
+ '滒',
+ '犵',
+ '肐',
+ '袼',
+ '謌',
+ '鎶',
+ '鴚',
+ '鴿',
+ '鸽',
+ ],
+ 'dá zhá': ['剳'],
+ chuán: ['剶', '暷', '椽', '篅', '舡', '舩', '船', '輲', '遄'],
+ 'tuán zhuān': ['剸', '漙', '篿'],
+ 'lù jiū': ['剹'],
+ pēng: ['剻', '匉', '嘭', '怦', '恲', '抨', '梈', '烹', '砰', '軯', '駍'],
+ piāo: ['剽', '勡', '慓', '旚', '犥', '翲', '螵', '飃', '飄', '飘', '魒'],
+ kōu: ['剾', '彄', '抠', '摳', '眍', '瞘', '芤', '𫸩'],
+ 'jiǎo chāo': ['剿', '劋', '勦', '摷'],
+ qiāo: [
+ '劁',
+ '勪',
+ '墝',
+ '幧',
+ '敲',
+ '橇',
+ '毃',
+ '燆',
+ '硗',
+ '磽',
+ '繑',
+ '趬',
+ '跷',
+ '踍',
+ '蹺',
+ '蹻',
+ '郻',
+ '鄡',
+ '鄥',
+ '鍫',
+ '鍬',
+ '鐰',
+ '锹',
+ '頝',
+ ],
+ 'huá huà': ['劃'],
+ 'zhā zhá': ['劄'],
+ 'pī pǐ': ['劈', '悂'],
+ tāng: ['劏', '嘡', '羰', '薚', '蝪', '蹚', '鞺', '鼞'],
+ chán: [
+ '劖',
+ '嚵',
+ '壥',
+ '婵',
+ '嬋',
+ '巉',
+ '廛',
+ '棎',
+ '毚',
+ '湹',
+ '潹',
+ '潺',
+ '澶',
+ '瀍',
+ '瀺',
+ '煘',
+ '獑',
+ '磛',
+ '緾',
+ '纏',
+ '纒',
+ '缠',
+ '艬',
+ '蝉',
+ '蟐',
+ '蟬',
+ '蟾',
+ '誗',
+ '讒',
+ '谗',
+ '躔',
+ '鄽',
+ '酁',
+ '鋋',
+ '鑱',
+ '镵',
+ '饞',
+ '馋',
+ ],
+ zuān: ['劗', '躜', '躦', '鉆', '鑚'],
+ mó: [
+ '劘',
+ '嫫',
+ '嬤',
+ '嬷',
+ '尛',
+ '摹',
+ '擵',
+ '橅',
+ '糢',
+ '膜',
+ '藦',
+ '蘑',
+ '謨',
+ '謩',
+ '谟',
+ '饃',
+ '饝',
+ '馍',
+ '髍',
+ '魔',
+ '魹',
+ ],
+ zhú: [
+ '劚',
+ '斸',
+ '曯',
+ '欘',
+ '灟',
+ '炢',
+ '烛',
+ '燭',
+ '爥',
+ '瘃',
+ '竹',
+ '笁',
+ '笜',
+ '舳',
+ '茿',
+ '蓫',
+ '蠋',
+ '蠾',
+ '躅',
+ '逐',
+ '逫',
+ '钃',
+ '鱁',
+ ],
+ quàn: ['劝', '勧', '勸', '牶', '韏'],
+ 'jìn jìng': ['劤', '劲', '勁'],
+ kēng: ['劥', '坑', '牼', '硁', '硜', '誙', '銵', '鍞', '鏗', '铿', '阬'],
+ 'xié liè': ['劦'],
+ 'zhù chú': ['助'],
+ nǔ: ['努', '弩', '砮', '胬'],
+ shào: ['劭', '卲', '哨', '潲', '紹', '綤', '绍', '袑', '邵'],
+ miǎo: ['劰', '杪', '淼', '渺', '眇', '秒', '篎', '緲', '缈', '藐', '邈'],
+ kǒu: ['劶', '口'],
+ wā: [
+ '劸',
+ '娲',
+ '媧',
+ '屲',
+ '挖',
+ '攨',
+ '洼',
+ '溛',
+ '漥',
+ '瓾',
+ '畖',
+ '穵',
+ '窊',
+ '窪',
+ '蛙',
+ '韈',
+ '鼃',
+ ],
+ kuāng: [
+ '劻',
+ '匡',
+ '匩',
+ '哐',
+ '恇',
+ '洭',
+ '筐',
+ '筺',
+ '誆',
+ '诓',
+ '軭',
+ '邼',
+ ],
+ hé: [
+ '劾',
+ '咊',
+ '啝',
+ '姀',
+ '峆',
+ '敆',
+ '曷',
+ '柇',
+ '楁',
+ '毼',
+ '河',
+ '涸',
+ '渮',
+ '澕',
+ '熆',
+ '皬',
+ '盇',
+ '盉',
+ '盍',
+ '盒',
+ '禾',
+ '篕',
+ '籺',
+ '粭',
+ '翮',
+ '菏',
+ '萂',
+ '覈',
+ '訸',
+ '詥',
+ '郃',
+ '釛',
+ '鉌',
+ '鑉',
+ '閡',
+ '闔',
+ '阂',
+ '阖',
+ '鞨',
+ '頜',
+ '餄',
+ '饸',
+ '魺',
+ '鹖',
+ '麧',
+ '齕',
+ '龁',
+ '龢',
+ '𬌗',
+ ],
+ gào: [
+ '勂',
+ '吿',
+ '告',
+ '峼',
+ '祮',
+ '祰',
+ '禞',
+ '筶',
+ '誥',
+ '诰',
+ '郜',
+ '鋯',
+ '锆',
+ ],
+ 'bó bèi': ['勃'],
+ láng: [
+ '勆',
+ '嫏',
+ '廊',
+ '斏',
+ '桹',
+ '榔',
+ '樃',
+ '欴',
+ '狼',
+ '琅',
+ '瑯',
+ '硠',
+ '稂',
+ '艆',
+ '蓈',
+ '蜋',
+ '螂',
+ '躴',
+ '郒',
+ '郞',
+ '鋃',
+ '鎯',
+ '锒',
+ ],
+ xūn: [
+ '勋',
+ '勛',
+ '勲',
+ '勳',
+ '嚑',
+ '坃',
+ '埙',
+ '塤',
+ '壎',
+ '壦',
+ '曛',
+ '燻',
+ '獯',
+ '矄',
+ '纁',
+ '臐',
+ '薫',
+ '薰',
+ '蘍',
+ '醺',
+ '𫄸',
+ ],
+ 'juàn juān': ['勌', '瓹'],
+ 'lè lēi': ['勒'],
+ kài: ['勓', '炌', '烗', '鎎'],
+ 'wěng yǎng': ['勜'],
+ qín: [
+ '勤',
+ '嗪',
+ '噙',
+ '嶜',
+ '庈',
+ '懃',
+ '懄',
+ '捦',
+ '擒',
+ '斳',
+ '檎',
+ '澿',
+ '珡',
+ '琴',
+ '琹',
+ '瘽',
+ '禽',
+ '秦',
+ '耹',
+ '芩',
+ '芹',
+ '菦',
+ '螓',
+ '蠄',
+ '鈙',
+ '鈫',
+ '雂',
+ '靲',
+ '鳹',
+ '鵭',
+ ],
+ jiàng: [
+ '勥',
+ '匞',
+ '匠',
+ '嵹',
+ '弜',
+ '弶',
+ '摾',
+ '櫤',
+ '洚',
+ '滰',
+ '犟',
+ '糡',
+ '糨',
+ '絳',
+ '绛',
+ '謽',
+ '酱',
+ '醤',
+ '醬',
+ ],
+ fān: [
+ '勫',
+ '嬏',
+ '帆',
+ '幡',
+ '忛',
+ '憣',
+ '旙',
+ '旛',
+ '繙',
+ '翻',
+ '藩',
+ '轓',
+ '颿',
+ '飜',
+ '鱕',
+ ],
+ juān: ['勬', '姢', '娟', '捐', '涓', '蠲', '裐', '鎸', '鐫', '镌', '鹃'],
+ 'tóng dòng': ['勭', '烔', '燑', '狪'],
+ lǜ: [
+ '勴',
+ '垏',
+ '嵂',
+ '律',
+ '慮',
+ '氯',
+ '滤',
+ '濾',
+ '爈',
+ '箻',
+ '綠',
+ '繂',
+ '膟',
+ '葎',
+ '虑',
+ '鑢',
+ ],
+ chè: [
+ '勶',
+ '坼',
+ '彻',
+ '徹',
+ '掣',
+ '撤',
+ '澈',
+ '烢',
+ '爡',
+ '瞮',
+ '硩',
+ '聅',
+ '迠',
+ '頙',
+ '㬚',
+ ],
+ sháo: ['勺', '玿', '韶'],
+ 'gōu gòu': ['勾'],
+ cōng: [
+ '匆',
+ '囪',
+ '囱',
+ '忩',
+ '怱',
+ '悤',
+ '暰',
+ '樬',
+ '漗',
+ '瑽',
+ '璁',
+ '瞛',
+ '篵',
+ '繱',
+ '聡',
+ '聦',
+ '聪',
+ '聰',
+ '苁',
+ '茐',
+ '葱',
+ '蓯',
+ '蔥',
+ '蟌',
+ '鍯',
+ '鏓',
+ '鏦',
+ '騘',
+ '驄',
+ '骢',
+ ],
+ 'táo yáo': ['匋', '陶'],
+ páo: ['匏', '咆', '垉', '庖', '爮', '狍', '袍', '褜', '軳', '鞄', '麅'],
+ dá: [
+ '匒',
+ '妲',
+ '怛',
+ '炟',
+ '燵',
+ '畣',
+ '笪',
+ '羍',
+ '荙',
+ '薘',
+ '蟽',
+ '詚',
+ '达',
+ '迏',
+ '迖',
+ '迚',
+ '逹',
+ '達',
+ '鐽',
+ '靼',
+ '鞑',
+ '韃',
+ '龖',
+ '龘',
+ '𫟼',
+ ],
+ 'huà huā': ['化'],
+ 'běi bèi': ['北'],
+ nǎo: ['匘', '垴', '堖', '嫐', '恼', '悩', '惱', '瑙', '碯', '脑', '脳', '腦'],
+ 'chí shi': ['匙'],
+ fāng: ['匚', '堏', '方', '淓', '牥', '芳', '邡', '鈁', '錺', '钫', '鴋'],
+ zā: ['匝', '咂', '帀', '沞', '臜', '臢', '迊', '鉔', '魳'],
+ qiè: [
+ '匧',
+ '厒',
+ '妾',
+ '怯',
+ '悏',
+ '惬',
+ '愜',
+ '挈',
+ '穕',
+ '窃',
+ '竊',
+ '笡',
+ '箧',
+ '篋',
+ '籡',
+ '踥',
+ '鍥',
+ '锲',
+ '鯜',
+ ],
+ 'zāng cáng': ['匨'],
+ fěi: ['匪', '奜', '悱', '棐', '榧', '篚', '翡', '蕜', '誹', '诽'],
+ 'kuì guì': ['匮', '匱'],
+ suǎn: ['匴'],
+ pǐ: ['匹', '噽', '嚭', '圮', '庀', '痞', '癖', '脴', '苉', '銢', '鴄'],
+ 'qū ōu': ['区', '區'],
+ 'kē qià': ['匼'],
+ 'yǎn yàn': ['匽', '棪'],
+ biǎn: ['匾', '惼', '揙', '碥', '稨', '窆', '藊', '褊', '貶', '贬', '鴘'],
+ nì: [
+ '匿',
+ '堄',
+ '嫟',
+ '嬺',
+ '惄',
+ '愵',
+ '昵',
+ '暱',
+ '氼',
+ '眤',
+ '睨',
+ '縌',
+ '胒',
+ '腻',
+ '膩',
+ '逆',
+ '𨺙',
+ ],
+ niàn: ['卄', '唸', '埝', '廿', '念', '惗', '艌'],
+ sà: ['卅', '櫒', '脎', '萨', '蕯', '薩', '鈒', '隡', '颯', '飒', '馺'],
+ zú: ['卆', '哫', '崪', '族', '箤', '足', '踤', '镞'],
+ shēng: [
+ '升',
+ '呏',
+ '声',
+ '斘',
+ '昇',
+ '曻',
+ '枡',
+ '殅',
+ '泩',
+ '湦',
+ '焺',
+ '牲',
+ '珄',
+ '生',
+ '甥',
+ '竔',
+ '笙',
+ '聲',
+ '鉎',
+ '鍟',
+ '阩',
+ '陞',
+ '陹',
+ '鵿',
+ '鼪',
+ ],
+ wàn: [
+ '卍',
+ '卐',
+ '忨',
+ '杤',
+ '瞣',
+ '脕',
+ '腕',
+ '萬',
+ '蟃',
+ '贎',
+ '輐',
+ '錽',
+ '𬇕',
+ ],
+ 'huá huà huā': ['华', '華'],
+ bēi: ['卑', '悲', '揹', '杯', '桮', '盃', '碑', '藣', '鵯', '鹎'],
+ 'zú cù': ['卒'],
+ 'dān shàn chán': ['单', '單'],
+ 'nán nā': ['南'],
+ 'shuài lǜ': ['卛'],
+ 'bǔ bo pú': ['卜'],
+ 'kuàng guàn': ['卝'],
+ biàn: [
+ '卞',
+ '变',
+ '変',
+ '峅',
+ '弁',
+ '徧',
+ '忭',
+ '抃',
+ '昪',
+ '汳',
+ '汴',
+ '玣',
+ '艑',
+ '苄',
+ '覍',
+ '諚',
+ '變',
+ '辡',
+ '辧',
+ '辨',
+ '辩',
+ '辫',
+ '辮',
+ '辯',
+ '遍',
+ '釆',
+ '𨚕',
+ ],
+ bǔ: ['卟', '哺', '捕', '补', '補', '鸔', '𬷕'],
+ 'zhàn zhān': ['占', '覱'],
+ 'kǎ qiǎ': ['卡'],
+ lú: [
+ '卢',
+ '嚧',
+ '垆',
+ '壚',
+ '庐',
+ '廬',
+ '曥',
+ '枦',
+ '栌',
+ '櫨',
+ '泸',
+ '瀘',
+ '炉',
+ '爐',
+ '獹',
+ '玈',
+ '瓐',
+ '盧',
+ '矑',
+ '籚',
+ '纑',
+ '罏',
+ '胪',
+ '臚',
+ '舮',
+ '舻',
+ '艫',
+ '芦',
+ '蘆',
+ '蠦',
+ '轤',
+ '轳',
+ '鈩',
+ '鑪',
+ '顱',
+ '颅',
+ '馿',
+ '髗',
+ '魲',
+ '鱸',
+ '鲈',
+ '鸕',
+ '鸬',
+ '黸',
+ '𬬻',
+ ],
+ lǔ: [
+ '卤',
+ '塷',
+ '掳',
+ '擄',
+ '樐',
+ '橹',
+ '櫓',
+ '氌',
+ '滷',
+ '澛',
+ '瀂',
+ '硵',
+ '磠',
+ '穞',
+ '艣',
+ '艪',
+ '蓾',
+ '虏',
+ '虜',
+ '鏀',
+ '鐪',
+ '鑥',
+ '镥',
+ '魯',
+ '鲁',
+ '鹵',
+ ],
+ guà: ['卦', '啩', '挂', '掛', '罣', '褂', '詿', '诖'],
+ 'áng yǎng': ['卬'],
+ yìn: [
+ '印',
+ '垽',
+ '堷',
+ '廕',
+ '慭',
+ '憖',
+ '憗',
+ '懚',
+ '洕',
+ '湚',
+ '猌',
+ '癊',
+ '胤',
+ '茚',
+ '酳',
+ '鮣',
+ '䲟',
+ ],
+ què: [
+ '却',
+ '卻',
+ '塙',
+ '崅',
+ '悫',
+ '愨',
+ '慤',
+ '搉',
+ '榷',
+ '燩',
+ '琷',
+ '皵',
+ '确',
+ '確',
+ '礭',
+ '闋',
+ '阕',
+ '鵲',
+ '鹊',
+ '𬒈',
+ ],
+ luǎn: ['卵'],
+ 'juàn juǎn': ['卷', '巻'],
+ 'chǎng ān hàn': ['厂'],
+ 'wěi yán': ['厃'],
+ tīng: [
+ '厅',
+ '厛',
+ '听',
+ '庁',
+ '廰',
+ '廳',
+ '汀',
+ '烃',
+ '烴',
+ '綎',
+ '耓',
+ '聴',
+ '聼',
+ '聽',
+ '鞓',
+ '𬘩',
+ ],
+ 'zhé zhái': ['厇'],
+ 'hàn àn': ['厈', '屽'],
+ yǎ: ['厊', '唖', '庌', '痖', '瘂', '蕥'],
+ shè: [
+ '厍',
+ '厙',
+ '弽',
+ '慑',
+ '慴',
+ '懾',
+ '摂',
+ '欇',
+ '涉',
+ '涻',
+ '渉',
+ '滠',
+ '灄',
+ '社',
+ '舎',
+ '蔎',
+ '蠂',
+ '設',
+ '设',
+ '赦',
+ '騇',
+ '麝',
+ ],
+ dǐ: [
+ '厎',
+ '呧',
+ '坘',
+ '弤',
+ '抵',
+ '拞',
+ '掋',
+ '牴',
+ '砥',
+ '菧',
+ '觝',
+ '詆',
+ '诋',
+ '軧',
+ '邸',
+ '阺',
+ '骶',
+ '鯳',
+ ],
+ 'zhǎ zhǎi': ['厏'],
+ páng: ['厐', '嫎', '庞', '徬', '舽', '螃', '逄', '鰟', '鳑', '龎', '龐'],
+ 'zhì shī': ['厔'],
+ máng: [
+ '厖',
+ '吂',
+ '哤',
+ '娏',
+ '忙',
+ '恾',
+ '杗',
+ '杧',
+ '汒',
+ '浝',
+ '牻',
+ '痝',
+ '盲',
+ '硭',
+ '笀',
+ '芒',
+ '茫',
+ '蘉',
+ '邙',
+ '釯',
+ '鋩',
+ '铓',
+ '駹',
+ ],
+ zuī: ['厜', '樶', '纗', '蟕'],
+ 'shà xià': ['厦', '廈'],
+ áo: [
+ '厫',
+ '嗷',
+ '嗸',
+ '廒',
+ '敖',
+ '滶',
+ '獒',
+ '獓',
+ '璈',
+ '翱',
+ '翶',
+ '翺',
+ '聱',
+ '蔜',
+ '螯',
+ '謷',
+ '謸',
+ '遨',
+ '鏖',
+ '隞',
+ '鰲',
+ '鳌',
+ '鷔',
+ '鼇',
+ ],
+ 'lán qiān': ['厱'],
+ 'sī mǒu': ['厶'],
+ 'gōng hóng': ['厷'],
+ 'lín miǎo': ['厸'],
+ 'qiú róu': ['厹'],
+ dū: ['厾', '嘟', '督', '醏'],
+ 'xiàn xuán': ['县', '縣'],
+ 'cān shēn cēn sān': ['参', '參', '叄', '叅'],
+ 'ài yǐ': ['叆'],
+ 'chā chà chǎ chá': ['叉'],
+ shuāng: [
+ '双',
+ '孀',
+ '孇',
+ '欆',
+ '礵',
+ '艭',
+ '雙',
+ '霜',
+ '騻',
+ '驦',
+ '骦',
+ '鷞',
+ '鸘',
+ '鹴',
+ ],
+ shōu: ['収', '收'],
+ guái: ['叏'],
+ bá: [
+ '叐',
+ '妭',
+ '抜',
+ '拔',
+ '炦',
+ '癹',
+ '胈',
+ '茇',
+ '菝',
+ '詙',
+ '跋',
+ '軷',
+ '魃',
+ '鼥',
+ ],
+ 'fā fà': ['发'],
+ 'zhuó yǐ lì jué': ['叕'],
+ qǔ: ['取', '娶', '竬', '蝺', '詓', '齲', '龋'],
+ 'jiǎ xiá': ['叚', '徦'],
+ 'wèi yù': ['叞', '尉', '蔚'],
+ dié: [
+ '叠',
+ '垤',
+ '堞',
+ '峌',
+ '幉',
+ '恎',
+ '惵',
+ '戜',
+ '曡',
+ '殜',
+ '氎',
+ '牃',
+ '牒',
+ '瓞',
+ '畳',
+ '疂',
+ '疉',
+ '疊',
+ '碟',
+ '絰',
+ '绖',
+ '耊',
+ '耋',
+ '胅',
+ '艓',
+ '苵',
+ '蜨',
+ '蝶',
+ '褋',
+ '詄',
+ '諜',
+ '谍',
+ '跮',
+ '蹀',
+ '迭',
+ '镻',
+ '鰈',
+ '鲽',
+ '鴩',
+ '𫶇',
+ ],
+ ruì: ['叡', '枘', '汭', '瑞', '睿', '芮', '蚋', '蜹', '銳', '鋭', '锐'],
+ 'jù gōu': ['句'],
+ lìng: ['另', '呤', '炩', '蘦'],
+ 'dāo dáo tāo': ['叨'],
+ 'zhī zhǐ': ['只'],
+ jiào: [
+ '叫',
+ '呌',
+ '嘂',
+ '嘦',
+ '噍',
+ '嬓',
+ '斍',
+ '斠',
+ '滘',
+ '漖',
+ '獥',
+ '珓',
+ '皭',
+ '窖',
+ '藠',
+ '訆',
+ '譥',
+ '趭',
+ '較',
+ '轎',
+ '轿',
+ '较',
+ '酵',
+ '醮',
+ '釂',
+ ],
+ 'zhào shào': ['召'],
+ 'kě kè': ['可'],
+ 'tái tāi': ['台', '苔'],
+ pǒ: ['叵', '尀', '笸', '箥', '鉕', '钷', '駊'],
+ 'yè xié': ['叶'],
+ 'hào háo': ['号'],
+ tàn: ['叹', '嘆', '探', '歎', '湠', '炭', '碳', '舕'],
+ 'hōng hóng': ['叿'],
+ miē: ['吀', '咩', '哶', '孭'],
+ 'xū yū yù': ['吁'],
+ chī: [
+ '吃',
+ '哧',
+ '喫',
+ '嗤',
+ '噄',
+ '妛',
+ '媸',
+ '彨',
+ '彲',
+ '摛',
+ '攡',
+ '殦',
+ '瓻',
+ '痴',
+ '癡',
+ '眵',
+ '瞝',
+ '笞',
+ '粚',
+ '胵',
+ '蚩',
+ '螭',
+ '訵',
+ '魑',
+ '鴟',
+ '鵄',
+ '鸱',
+ '黐',
+ '齝',
+ '𫄨',
+ ],
+ 'xuān sòng': ['吅'],
+ yāo: [
+ '吆',
+ '喓',
+ '夭',
+ '妖',
+ '幺',
+ '楆',
+ '殀',
+ '祅',
+ '腰',
+ '葽',
+ '訞',
+ '邀',
+ '鴁',
+ '鴢',
+ '㙘',
+ ],
+ zǐ: [
+ '吇',
+ '姉',
+ '姊',
+ '子',
+ '杍',
+ '梓',
+ '榟',
+ '橴',
+ '滓',
+ '矷',
+ '秭',
+ '笫',
+ '籽',
+ '紫',
+ '耔',
+ '虸',
+ '訿',
+ '釨',
+ ],
+ 'hé gě': ['合', '鲄'],
+ 'cùn dòu': ['吋'],
+ 'tóng tòng': ['同'],
+ 'tǔ tù': ['吐', '唋'],
+ 'zhà zhā': ['吒', '奓'],
+ 'xià hè': ['吓'],
+ 'ā yā': ['吖'],
+ 'ma má mǎ': ['吗'],
+ lìn: [
+ '吝',
+ '恡',
+ '悋',
+ '橉',
+ '焛',
+ '甐',
+ '膦',
+ '蔺',
+ '藺',
+ '賃',
+ '赁',
+ '蹸',
+ '躏',
+ '躙',
+ '躪',
+ '轥',
+ '閵',
+ ],
+ tūn: ['吞', '暾', '朜', '焞'],
+ 'bǐ pǐ': ['吡'],
+ qìn: ['吢', '吣', '唚', '抋', '揿', '搇', '撳', '沁', '瀙', '菣', '藽'],
+ 'jiè gè': ['吤'],
+ 'fǒu pǐ': ['否'],
+ 'ba bā': ['吧'],
+ dūn: [
+ '吨',
+ '噸',
+ '墩',
+ '墪',
+ '惇',
+ '撉',
+ '撴',
+ '犜',
+ '獤',
+ '礅',
+ '蜳',
+ '蹾',
+ '驐',
+ ],
+ fēn: [
+ '吩',
+ '帉',
+ '昐',
+ '朆',
+ '梤',
+ '棻',
+ '氛',
+ '竕',
+ '紛',
+ '纷',
+ '翂',
+ '芬',
+ '衯',
+ '訜',
+ '躮',
+ '酚',
+ '鈖',
+ '雰',
+ '餴',
+ '饙',
+ '馚',
+ ],
+ 'é huā': ['吪'],
+ 'kēng háng': ['吭', '妔'],
+ shǔn: ['吮'],
+ 'zhī zī': ['吱'],
+ 'yǐn shěn': ['吲'],
+ wú: [
+ '吳',
+ '吴',
+ '呉',
+ '墲',
+ '峿',
+ '梧',
+ '橆',
+ '毋',
+ '洖',
+ '浯',
+ '無',
+ '珸',
+ '璑',
+ '祦',
+ '芜',
+ '茣',
+ '莁',
+ '蕪',
+ '蜈',
+ '蟱',
+ '譕',
+ '郚',
+ '鋙',
+ '铻',
+ '鯃',
+ '鵐',
+ '鷡',
+ '鹀',
+ '鼯',
+ ],
+ 'chǎo chāo': ['吵'],
+ 'nà nè': ['吶'],
+ 'xuè chuò jué': ['吷'],
+ chuī: ['吹', '炊', '龡'],
+ 'dōu rú': ['吺'],
+ hǒu: ['吼', '犼'],
+ 'hōng hǒu ōu': ['吽'],
+ 'wú yù': ['吾'],
+ 'ya yā': ['呀'],
+ 'è e': ['呃'],
+ dāi: ['呆', '懛', '獃'],
+ 'mèn qǐ': ['呇'],
+ hōng: [
+ '呍',
+ '嚝',
+ '揈',
+ '灴',
+ '烘',
+ '焢',
+ '硡',
+ '薨',
+ '訇',
+ '谾',
+ '軣',
+ '輷',
+ '轟',
+ '轰',
+ '鍧',
+ ],
+ nà: [
+ '呐',
+ '捺',
+ '笝',
+ '納',
+ '纳',
+ '肭',
+ '蒳',
+ '衲',
+ '豽',
+ '貀',
+ '軜',
+ '郍',
+ '鈉',
+ '钠',
+ '靹',
+ '魶',
+ ],
+ 'tūn tiān': ['呑'],
+ 'fǔ ḿ': ['呒', '嘸'],
+ 'dāi tǎi': ['呔'],
+ 'ǒu ōu òu': ['呕'],
+ 'bài bei': ['呗'],
+ 'yuán yún yùn': ['员', '員'],
+ guō: [
+ '呙',
+ '啯',
+ '嘓',
+ '埚',
+ '堝',
+ '墎',
+ '崞',
+ '彉',
+ '彍',
+ '懖',
+ '猓',
+ '瘑',
+ '聒',
+ '蝈',
+ '蟈',
+ '郭',
+ '鈛',
+ '鍋',
+ '锅',
+ ],
+ 'huá qì': ['呚'],
+ 'qiàng qiāng': ['呛', '跄'],
+ shī: [
+ '呞',
+ '失',
+ '尸',
+ '屍',
+ '师',
+ '師',
+ '施',
+ '浉',
+ '湤',
+ '湿',
+ '溮',
+ '溼',
+ '濕',
+ '狮',
+ '獅',
+ '瑡',
+ '絁',
+ '葹',
+ '蒒',
+ '蓍',
+ '虱',
+ '蝨',
+ '褷',
+ '襹',
+ '詩',
+ '诗',
+ '邿',
+ '釃',
+ '鉇',
+ '鍦',
+ '鯴',
+ '鰤',
+ '鲺',
+ '鳲',
+ '鳾',
+ '鶳',
+ '鸤',
+ '䴓',
+ '𫚕',
+ ],
+ juǎn: ['呟', '埍', '臇', '菤', '錈', '锩'],
+ pěn: ['呠', '翸'],
+ 'wěn mǐn': ['呡'],
+ 'ne ní': ['呢'],
+ 'ḿ m̀ móu': ['呣'],
+ rán: [
+ '呥',
+ '嘫',
+ '然',
+ '燃',
+ '繎',
+ '肰',
+ '蚦',
+ '蚺',
+ '衻',
+ '袇',
+ '袡',
+ '髥',
+ '髯',
+ ],
+ 'tiè chè': ['呫'],
+ 'qì zhī': ['呮'],
+ 'zǐ cī': ['呰'],
+ 'guā gū guǎ': ['呱'],
+ 'cī zī': ['呲'],
+ 'hǒu xǔ gòu': ['呴'],
+ 'hē ā á ǎ à a': ['呵'],
+ náo: [
+ '呶',
+ '夒',
+ '峱',
+ '嶩',
+ '巎',
+ '挠',
+ '撓',
+ '猱',
+ '硇',
+ '蛲',
+ '蟯',
+ '詉',
+ '譊',
+ '鐃',
+ '铙',
+ ],
+ 'xiā gā': ['呷'],
+ pēi: ['呸', '怌', '肧', '胚', '衃', '醅'],
+ 'háo xiāo': ['呺'],
+ mìng: ['命', '掵'],
+ 'dá dàn': ['呾'],
+ 'zuǐ jǔ': ['咀'],
+ 'xián gān': ['咁'],
+ pǒu: ['咅', '哣', '犃'],
+ 'yǎng yāng': ['咉'],
+ 'zǎ zé zhā': ['咋'],
+ 'hé hè huó huò hú': ['和'],
+ hāi: ['咍'],
+ dā: ['咑', '哒', '噠', '墶', '搭', '撘', '耷', '褡', '鎝', '𨱏'],
+ 'kǎ kā': ['咔'],
+ gū: [
+ '咕',
+ '唂',
+ '唃',
+ '姑',
+ '嫴',
+ '孤',
+ '巬',
+ '巭',
+ '柧',
+ '橭',
+ '沽',
+ '泒',
+ '稒',
+ '笟',
+ '箍',
+ '箛',
+ '篐',
+ '罛',
+ '苽',
+ '菇',
+ '菰',
+ '蓇',
+ '觚',
+ '軱',
+ '軲',
+ '轱',
+ '辜',
+ '酤',
+ '鈲',
+ '鮕',
+ '鴣',
+ '鸪',
+ ],
+ 'kā gā': ['咖'],
+ zuo: ['咗'],
+ lóng: [
+ '咙',
+ '嚨',
+ '嶐',
+ '巃',
+ '巄',
+ '昽',
+ '曨',
+ '朧',
+ '栊',
+ '槞',
+ '櫳',
+ '湰',
+ '滝',
+ '漋',
+ '爖',
+ '珑',
+ '瓏',
+ '癃',
+ '眬',
+ '矓',
+ '砻',
+ '礱',
+ '礲',
+ '窿',
+ '竜',
+ '聋',
+ '聾',
+ '胧',
+ '茏',
+ '蘢',
+ '蠪',
+ '蠬',
+ '襱',
+ '豅',
+ '鏧',
+ '鑨',
+ '霳',
+ '靇',
+ '驡',
+ '鸗',
+ '龍',
+ '龒',
+ '龙',
+ ],
+ 'xiàn xián': ['咞'],
+ qì: [
+ '咠',
+ '唭',
+ '噐',
+ '器',
+ '夡',
+ '弃',
+ '憇',
+ '憩',
+ '暣',
+ '棄',
+ '欫',
+ '气',
+ '気',
+ '氣',
+ '汔',
+ '汽',
+ '泣',
+ '湆',
+ '湇',
+ '炁',
+ '甈',
+ '盵',
+ '矵',
+ '碛',
+ '碶',
+ '磜',
+ '磧',
+ '罊',
+ '芞',
+ '葺',
+ '藒',
+ '蟿',
+ '訖',
+ '讫',
+ '迄',
+ '鐑',
+ ],
+ 'xì dié': ['咥'],
+ 'liē liě lié lie': ['咧'],
+ zī: [
+ '咨',
+ '嗞',
+ '姕',
+ '姿',
+ '孜',
+ '孳',
+ '孶',
+ '崰',
+ '嵫',
+ '栥',
+ '椔',
+ '淄',
+ '湽',
+ '滋',
+ '澬',
+ '玆',
+ '禌',
+ '秶',
+ '粢',
+ '紎',
+ '緇',
+ '緕',
+ '纃',
+ '缁',
+ '茊',
+ '茲',
+ '葘',
+ '諮',
+ '谘',
+ '貲',
+ '資',
+ '赀',
+ '资',
+ '赼',
+ '趑',
+ '趦',
+ '輜',
+ '輺',
+ '辎',
+ '鄑',
+ '鈭',
+ '錙',
+ '鍿',
+ '鎡',
+ '锱',
+ '镃',
+ '頾',
+ '頿',
+ '髭',
+ '鯔',
+ '鰦',
+ '鲻',
+ '鶅',
+ '鼒',
+ '齍',
+ '齜',
+ '龇',
+ ],
+ mī: ['咪'],
+ 'jī xī qià': ['咭'],
+ 'gē luò kǎ lo': ['咯'],
+ 'shù xún': ['咰'],
+ 'zán zá zǎ zan': ['咱'],
+ 'hāi ké': ['咳'],
+ huī: [
+ '咴',
+ '噅',
+ '噕',
+ '婎',
+ '媈',
+ '幑',
+ '徽',
+ '恢',
+ '拻',
+ '挥',
+ '揮',
+ '晖',
+ '暉',
+ '楎',
+ '洃',
+ '瀈',
+ '灰',
+ '灳',
+ '烣',
+ '睳',
+ '禈',
+ '翚',
+ '翬',
+ '蘳',
+ '袆',
+ '褘',
+ '詼',
+ '诙',
+ '豗',
+ '輝',
+ '辉',
+ '鰴',
+ '麾',
+ '㧑',
+ ],
+ 'huài shì': ['咶'],
+ táo: [
+ '咷',
+ '啕',
+ '桃',
+ '檮',
+ '洮',
+ '淘',
+ '祹',
+ '綯',
+ '绹',
+ '萄',
+ '蜪',
+ '裪',
+ '迯',
+ '逃',
+ '醄',
+ '鋾',
+ '鞀',
+ '鞉',
+ '饀',
+ '駣',
+ '騊',
+ '鼗',
+ '𫘦',
+ ],
+ xián: [
+ '咸',
+ '啣',
+ '娴',
+ '娹',
+ '婱',
+ '嫌',
+ '嫺',
+ '嫻',
+ '弦',
+ '挦',
+ '撏',
+ '涎',
+ '湺',
+ '澖',
+ '甉',
+ '痫',
+ '癇',
+ '癎',
+ '絃',
+ '胘',
+ '舷',
+ '藖',
+ '蚿',
+ '蛝',
+ '衔',
+ '衘',
+ '誸',
+ '諴',
+ '賢',
+ '贒',
+ '贤',
+ '輱',
+ '醎',
+ '銜',
+ '鑦',
+ '閑',
+ '闲',
+ '鷳',
+ '鷴',
+ '鷼',
+ '鹇',
+ '鹹',
+ '麙',
+ '𫍯',
+ ],
+ 'è àn': ['咹'],
+ 'xuān xuǎn': ['咺', '烜'],
+ 'wāi hé wǒ guǎ guō': ['咼'],
+ 'yàn yè yān': ['咽'],
+ āi: ['哀', '哎', '埃', '溾', '銰', '鎄', '锿'],
+ pǐn: ['品', '榀'],
+ shěn: [
+ '哂',
+ '婶',
+ '嬸',
+ '审',
+ '宷',
+ '審',
+ '弞',
+ '曋',
+ '渖',
+ '瀋',
+ '瞫',
+ '矤',
+ '矧',
+ '覾',
+ '訠',
+ '諗',
+ '讅',
+ '谂',
+ '谉',
+ '邥',
+ '頣',
+ '魫',
+ ],
+ 'hǒng hōng hòng': ['哄'],
+ 'wā wa': ['哇'],
+ 'hā hǎ hà': ['哈'],
+ zāi: ['哉', '栽', '渽', '溨', '災', '灾', '烖', '睵', '賳'],
+ 'dì diè': ['哋'],
+ pài: ['哌', '沠', '派', '渒', '湃', '蒎', '鎃'],
+ 'gén hěn': ['哏'],
+ 'yǎ yā': ['哑', '雅'],
+ 'yuě huì': ['哕', '噦'],
+ nián: ['哖', '年', '秊', '秥', '鮎', '鯰', '鲇', '鲶', '鵇', '黏'],
+ 'huá huā': ['哗', '嘩'],
+ 'jì jiē zhāi': ['哜', '嚌'],
+ mōu: ['哞'],
+ 'yō yo': ['哟', '喲'],
+ lòng: ['哢', '梇', '贚'],
+ 'ò ó é': ['哦'],
+ 'lī lǐ li': ['哩'],
+ 'nǎ na nǎi né něi': ['哪'],
+ hè: [
+ '哬',
+ '垎',
+ '壑',
+ '寉',
+ '惒',
+ '焃',
+ '煂',
+ '燺',
+ '爀',
+ '癋',
+ '碋',
+ '翯',
+ '褐',
+ '謞',
+ '賀',
+ '贺',
+ '赫',
+ '靍',
+ '靎',
+ '靏',
+ '鶴',
+ '鸖',
+ '鹤',
+ ],
+ 'bō pò bā': ['哱'],
+ zhé: [
+ '哲',
+ '啠',
+ '喆',
+ '嚞',
+ '埑',
+ '悊',
+ '摺',
+ '晢',
+ '晣',
+ '歽',
+ '矺',
+ '砓',
+ '磔',
+ '籷',
+ '粍',
+ '虴',
+ '蛰',
+ '蟄',
+ '袩',
+ '詟',
+ '謫',
+ '謺',
+ '讁',
+ '讋',
+ '谪',
+ '輒',
+ '輙',
+ '轍',
+ '辄',
+ '辙',
+ '鮿',
+ ],
+ 'liàng láng': ['哴'],
+ 'liè lǜ': ['哷'],
+ hān: ['哻', '憨', '蚶', '谽', '酣', '頇', '顸', '馠', '魽', '鼾'],
+ 'hēng hng': ['哼'],
+ gěng: [
+ '哽',
+ '埂',
+ '峺',
+ '挭',
+ '梗',
+ '綆',
+ '绠',
+ '耿',
+ '莄',
+ '郠',
+ '骾',
+ '鯁',
+ '鲠',
+ '𬒔',
+ ],
+ 'chuò yuè': ['哾'],
+ 'gě jiā': ['哿'],
+ 'bei bài': ['唄'],
+ 'hán hàn': ['唅'],
+ chún: [
+ '唇',
+ '浱',
+ '湻',
+ '滣',
+ '漘',
+ '犉',
+ '純',
+ '纯',
+ '脣',
+ '莼',
+ '蒓',
+ '蓴',
+ '醇',
+ '醕',
+ '錞',
+ '陙',
+ '鯙',
+ '鶉',
+ '鹑',
+ '𬭚',
+ ],
+ 'ài āi': ['唉'],
+ 'jiá qiǎn': ['唊'],
+ 'yán dàn xián': ['唌'],
+ chē: ['唓', '砗', '硨', '莗', '蛼'],
+ 'wú ńg ń': ['唔'],
+ zào: [
+ '唕',
+ '唣',
+ '噪',
+ '慥',
+ '梍',
+ '灶',
+ '煰',
+ '燥',
+ '皁',
+ '皂',
+ '竃',
+ '竈',
+ '簉',
+ '艁',
+ '譟',
+ '趮',
+ '躁',
+ '造',
+ '𥖨',
+ ],
+ dí: [
+ '唙',
+ '啇',
+ '嘀',
+ '嚁',
+ '嫡',
+ '廸',
+ '敌',
+ '敵',
+ '梑',
+ '涤',
+ '滌',
+ '狄',
+ '笛',
+ '籴',
+ '糴',
+ '苖',
+ '荻',
+ '蔋',
+ '蔐',
+ '藡',
+ '覿',
+ '觌',
+ '豴',
+ '迪',
+ '靮',
+ '頔',
+ '馰',
+ '髢',
+ '鸐',
+ '𬱖',
+ ],
+ 'gòng hǒng gǒng': ['唝', '嗊'],
+ dóu: ['唞'],
+ 'lào láo': ['唠', '嘮', '憦'],
+ huàn: [
+ '唤',
+ '喚',
+ '奂',
+ '奐',
+ '宦',
+ '嵈',
+ '幻',
+ '患',
+ '愌',
+ '换',
+ '換',
+ '擐',
+ '攌',
+ '梙',
+ '槵',
+ '浣',
+ '涣',
+ '渙',
+ '漶',
+ '澣',
+ '烉',
+ '焕',
+ '煥',
+ '瑍',
+ '痪',
+ '瘓',
+ '睆',
+ '肒',
+ '藧',
+ '豢',
+ '轘',
+ '逭',
+ '鯇',
+ '鯶',
+ '鰀',
+ '鲩',
+ ],
+ léng: ['唥', '塄', '楞', '碐', '薐'],
+ 'wō wěi': ['唩'],
+ fěng: ['唪', '覂', '諷', '讽'],
+ 'yín jìn': ['唫'],
+ 'hǔ xià': ['唬'],
+ wéi: [
+ '唯',
+ '围',
+ '圍',
+ '壝',
+ '峗',
+ '峞',
+ '嵬',
+ '帏',
+ '帷',
+ '幃',
+ '惟',
+ '桅',
+ '沩',
+ '洈',
+ '涠',
+ '湋',
+ '溈',
+ '潍',
+ '潙',
+ '潿',
+ '濰',
+ '犩',
+ '矀',
+ '維',
+ '维',
+ '蓶',
+ '覹',
+ '违',
+ '違',
+ '鄬',
+ '醀',
+ '鍏',
+ '闈',
+ '闱',
+ '韋',
+ '韦',
+ '鮠',
+ '𣲗',
+ '𬶏',
+ ],
+ shuā: ['唰'],
+ chàng: ['唱', '怅', '悵', '暢', '焻', '畅', '畼', '誯', '韔', '鬯'],
+ 'ér wā': ['唲'],
+ qiàng: ['唴', '炝', '熗', '羻'],
+ yō: ['唷'],
+ yū: ['唹', '淤', '瘀', '盓', '箊', '紆', '纡', '込', '迂', '迃', '陓'],
+ lài: [
+ '唻',
+ '濑',
+ '瀨',
+ '瀬',
+ '癞',
+ '癩',
+ '睐',
+ '睞',
+ '籁',
+ '籟',
+ '藾',
+ '賚',
+ '賴',
+ '赉',
+ '赖',
+ '頼',
+ '顂',
+ '鵣',
+ ],
+ tuò: ['唾', '嶞', '柝', '毤', '毻', '箨', '籜', '萚', '蘀', '跅'],
+ 'zhōu zhāo tiào': ['啁'],
+ kěn: ['啃', '垦', '墾', '恳', '懇', '肎', '肯', '肻', '豤', '錹'],
+ 'zhuó zhào': ['啅', '濯'],
+ 'hēng hèng': ['啈', '悙'],
+ 'lín lán': ['啉'],
+ 'a ā á ǎ à': ['啊'],
+ qiāng: [
+ '啌',
+ '嗴',
+ '嶈',
+ '戕',
+ '摤',
+ '斨',
+ '枪',
+ '槍',
+ '溬',
+ '牄',
+ '猐',
+ '獇',
+ '羌',
+ '羗',
+ '腔',
+ '蜣',
+ '謒',
+ '鏘',
+ '锖',
+ '锵',
+ ],
+ 'tūn zhūn xiāng duǐ': ['啍'],
+ wèn: ['問', '妏', '揾', '搵', '璺', '问', '顐'],
+ 'cuì qi': ['啐'],
+ 'dié shà jié tì': ['啑'],
+ 'yuē wā': ['啘'],
+ 'zǐ cǐ': ['啙'],
+ 'bǐ tú': ['啚'],
+ 'chuò chuài': ['啜'],
+ 'yǎ yā è': ['啞'],
+ fēi: [
+ '啡',
+ '婓',
+ '婔',
+ '扉',
+ '暃',
+ '渄',
+ '猆',
+ '緋',
+ '绯',
+ '裶',
+ '霏',
+ '非',
+ '靟',
+ '飛',
+ '飝',
+ '飞',
+ '餥',
+ '馡',
+ '騑',
+ '騛',
+ '鯡',
+ '鲱',
+ '𬴂',
+ ],
+ pí: [
+ '啤',
+ '壀',
+ '枇',
+ '毗',
+ '毘',
+ '焷',
+ '琵',
+ '疲',
+ '皮',
+ '篺',
+ '罴',
+ '羆',
+ '脾',
+ '腗',
+ '膍',
+ '蚍',
+ '蚽',
+ '蜱',
+ '螷',
+ '蠯',
+ '豼',
+ '貔',
+ '郫',
+ '鈹',
+ '阰',
+ '陴',
+ '隦',
+ '魮',
+ '鮍',
+ '鲏',
+ '鵧',
+ '鼙',
+ ],
+ shá: ['啥'],
+ 'lā la': ['啦'],
+ 'yīng qíng': ['啨'],
+ pā: ['啪', '妑', '舥', '葩', '趴'],
+ 'zhě shì': ['啫'],
+ sè: [
+ '啬',
+ '嗇',
+ '懎',
+ '擌',
+ '栜',
+ '歮',
+ '涩',
+ '渋',
+ '澀',
+ '澁',
+ '濇',
+ '濏',
+ '瀒',
+ '瑟',
+ '璱',
+ '瘷',
+ '穑',
+ '穡',
+ '穯',
+ '繬',
+ '譅',
+ '轖',
+ '銫',
+ '鏼',
+ '铯',
+ '飋',
+ ],
+ niè: [
+ '啮',
+ '嗫',
+ '噛',
+ '嚙',
+ '囁',
+ '囓',
+ '圼',
+ '孼',
+ '孽',
+ '嵲',
+ '嶭',
+ '巕',
+ '帇',
+ '敜',
+ '枿',
+ '槷',
+ '櫱',
+ '涅',
+ '湼',
+ '痆',
+ '篞',
+ '籋',
+ '糱',
+ '糵',
+ '聂',
+ '聶',
+ '臬',
+ '臲',
+ '蘖',
+ '蠥',
+ '讘',
+ '踂',
+ '踗',
+ '踙',
+ '蹑',
+ '躡',
+ '錜',
+ '鎳',
+ '鑈',
+ '鑷',
+ '钀',
+ '镊',
+ '镍',
+ '闑',
+ '陧',
+ '隉',
+ '顳',
+ '颞',
+ '齧',
+ '𫔶',
+ ],
+ 'luō luó luo': ['啰', '囉'],
+ 'tān chǎn tuō': ['啴'],
+ bo: ['啵', '蔔'],
+ dìng: [
+ '啶',
+ '定',
+ '椗',
+ '矴',
+ '碇',
+ '碠',
+ '磸',
+ '聢',
+ '腚',
+ '萣',
+ '蝊',
+ '訂',
+ '订',
+ '錠',
+ '锭',
+ '顁',
+ '飣',
+ '饤',
+ ],
+ lāng: ['啷'],
+ 'án ān': ['啽'],
+ kā: ['喀', '擖'],
+ 'yóng yú': ['喁'],
+ 'lā lá lǎ': ['喇'],
+ jiē: [
+ '喈',
+ '喼',
+ '嗟',
+ '堦',
+ '媘',
+ '接',
+ '掲',
+ '擑',
+ '湝',
+ '煯',
+ '疖',
+ '痎',
+ '癤',
+ '皆',
+ '秸',
+ '稭',
+ '脻',
+ '蝔',
+ '街',
+ '謯',
+ '阶',
+ '階',
+ '鞂',
+ '鶛',
+ ],
+ hóu: [
+ '喉',
+ '帿',
+ '猴',
+ '瘊',
+ '睺',
+ '篌',
+ '糇',
+ '翭',
+ '葔',
+ '鄇',
+ '鍭',
+ '餱',
+ '骺',
+ '鯸',
+ '𬭤',
+ ],
+ 'dié zhá': ['喋'],
+ wāi: ['喎', '歪', '竵'],
+ 'nuò rě': ['喏'],
+ 'xù huò guó': ['喐'],
+ zán: ['喒'],
+ 'wō ō': ['喔'],
+ hú: [
+ '喖',
+ '嘝',
+ '囫',
+ '壶',
+ '壷',
+ '壺',
+ '媩',
+ '弧',
+ '搰',
+ '斛',
+ '楜',
+ '槲',
+ '湖',
+ '瀫',
+ '焀',
+ '煳',
+ '狐',
+ '猢',
+ '瑚',
+ '瓳',
+ '箶',
+ '絗',
+ '縠',
+ '胡',
+ '葫',
+ '蔛',
+ '蝴',
+ '螜',
+ '衚',
+ '觳',
+ '醐',
+ '鍸',
+ '頶',
+ '餬',
+ '鬍',
+ '魱',
+ '鰗',
+ '鵠',
+ '鶘',
+ '鶦',
+ '鹕',
+ ],
+ 'huàn yuán xuǎn hé': ['喛'],
+ xǐ: [
+ '喜',
+ '囍',
+ '壐',
+ '屣',
+ '徙',
+ '憙',
+ '枲',
+ '橲',
+ '歖',
+ '漇',
+ '玺',
+ '璽',
+ '矖',
+ '禧',
+ '縰',
+ '葈',
+ '葸',
+ '蓰',
+ '蟢',
+ '謑',
+ '蹝',
+ '躧',
+ '鈢',
+ '鉨',
+ '鉩',
+ '鱚',
+ '𬭳',
+ '𬶮',
+ ],
+ 'hē hè yè': ['喝'],
+ kuì: [
+ '喟',
+ '嘳',
+ '媿',
+ '嬇',
+ '愦',
+ '愧',
+ '憒',
+ '篑',
+ '簣',
+ '籄',
+ '聩',
+ '聭',
+ '聵',
+ '膭',
+ '蕢',
+ '謉',
+ '餽',
+ '饋',
+ '馈',
+ ],
+ 'zhǒng chuáng': ['喠'],
+ 'wéi wèi': ['喡', '為', '爲'],
+ 'duó zhà': ['喥'],
+ 'sāng sàng': ['喪'],
+ 'qiáo jiāo': ['喬'],
+ 'pèn bēn': ['喯'],
+ 'cān sūn qī': ['喰'],
+ 'zhā chā': ['喳'],
+ miāo: ['喵'],
+ 'pēn pèn': ['喷'],
+ kuí: [
+ '喹',
+ '夔',
+ '奎',
+ '巙',
+ '戣',
+ '揆',
+ '晆',
+ '暌',
+ '楏',
+ '楑',
+ '櫆',
+ '犪',
+ '睽',
+ '葵',
+ '藈',
+ '蘷',
+ '虁',
+ '蝰',
+ '躨',
+ '逵',
+ '鄈',
+ '鍨',
+ '鍷',
+ '頯',
+ '馗',
+ '騤',
+ '骙',
+ '魁',
+ ],
+ 'lou lóu': ['喽'],
+ 'zào qiāo': ['喿'],
+ 'hè xiāo xiào hù': ['嗃'],
+ 'á shà': ['嗄'],
+ xiù: [
+ '嗅',
+ '岫',
+ '峀',
+ '溴',
+ '珛',
+ '琇',
+ '璓',
+ '秀',
+ '綉',
+ '繍',
+ '繡',
+ '绣',
+ '螑',
+ '袖',
+ '褎',
+ '褏',
+ '銹',
+ '鏥',
+ '鏽',
+ '锈',
+ '齅',
+ ],
+ 'qiāng qiàng': ['嗆', '戗', '戧', '蹌', '蹡'],
+ 'ài yì': ['嗌', '艾'],
+ 'má mǎ ma': ['嗎'],
+ 'kè kē': ['嗑'],
+ 'dā tà': ['嗒', '鎉'],
+ sǎng: ['嗓', '搡', '磉', '褬', '鎟', '顙', '颡'],
+ chēn: ['嗔', '抻', '琛', '瞋', '諃', '謓', '賝', '郴', '𬘭'],
+ 'wā gǔ': ['嗗'],
+ 'pǎng bēng': ['嗙'],
+ 'xián qiǎn qiān': ['嗛'],
+ lào: ['嗠', '嫪', '橯', '涝', '澇', '耢', '耮', '躼', '軂', '酪'],
+ wēng: ['嗡', '翁', '聬', '螉', '鎓', '鶲', '鹟', '𬭩'],
+ wà: ['嗢', '腽', '膃', '袜', '襪', '韤'],
+ 'hēi hāi': ['嗨'],
+ hē: ['嗬', '欱', '蠚', '訶', '诃'],
+ zi: ['嗭'],
+ sǎi: ['嗮'],
+ 'ǹg ńg ňg': ['嗯'],
+ gě: ['嗰', '舸'],
+ ná: ['嗱', '拏', '拿', '鎿', '镎'],
+ diǎ: ['嗲'],
+ 'ài ǎi āi': ['嗳'],
+ tōng: ['嗵', '樋', '炵', '蓪'],
+ 'zuī suī': ['嗺'],
+ 'zhē zhè zhù zhe': ['嗻'],
+ mò: [
+ '嗼',
+ '圽',
+ '塻',
+ '墨',
+ '妺',
+ '嫼',
+ '寞',
+ '帞',
+ '昩',
+ '末',
+ '枺',
+ '歿',
+ '殁',
+ '沫',
+ '漠',
+ '爅',
+ '獏',
+ '瘼',
+ '皌',
+ '眽',
+ '眿',
+ '瞐',
+ '瞙',
+ '砞',
+ '礳',
+ '秣',
+ '絈',
+ '纆',
+ '耱',
+ '茉',
+ '莈',
+ '蓦',
+ '蛨',
+ '蟔',
+ '貃',
+ '貊',
+ '貘',
+ '銆',
+ '鏌',
+ '镆',
+ '陌',
+ '靺',
+ '驀',
+ '魩',
+ '默',
+ '黙',
+ '𬙊',
+ ],
+ sòu: ['嗽', '瘶'],
+ tǎn: [
+ '嗿',
+ '坦',
+ '忐',
+ '憳',
+ '憻',
+ '暺',
+ '毯',
+ '璮',
+ '菼',
+ '袒',
+ '襢',
+ '醓',
+ '鉭',
+ '钽',
+ ],
+ 'jiào dǎo': ['嘄'],
+ 'kǎi gě': ['嘅'],
+ 'shān càn': ['嘇'],
+ cáo: ['嘈', '嶆', '曹', '曺', '槽', '漕', '艚', '蓸', '螬', '褿', '鏪', '𥕢'],
+ piào: ['嘌', '徱', '蔈', '驃'],
+ 'lóu lou': ['嘍'],
+ gǎ: ['尕', '玍'],
+ 'gǔ jiǎ': ['嘏'],
+ 'jiāo xiāo': ['嘐'],
+ 'xū shī': ['嘘', '噓'],
+ pó: ['嘙', '嚩', '婆', '櫇', '皤', '鄱'],
+ 'dē dēi': ['嘚'],
+ 'ma má': ['嘛'],
+ 'lē lei': ['嘞'],
+ 'gā gá gǎ': ['嘠'],
+ sāi: ['嘥', '噻', '毢', '腮', '顋', '鰓'],
+ 'zuō chuài': ['嘬'],
+ 'cháo zhāo': ['嘲', '朝', '鼂'],
+ zuǐ: ['嘴', '噿', '嶊', '璻'],
+ 'qiáo qiào': ['嘺', '翹', '谯'],
+ 'chù xù shòu': ['嘼'],
+ 'tān chǎn': ['嘽'],
+ 'dàn tán': ['嘾', '弾', '彈', '惔', '澹'],
+ 'hēi mò': ['嘿'],
+ ě: ['噁', '砨', '頋', '騀', '鵈'],
+ 'fān bo': ['噃'],
+ chuáng: ['噇', '床', '牀'],
+ 'cù zā hé': ['噈'],
+ 'tūn kuò': ['噋'],
+ 'cēng chēng': ['噌'],
+ dēng: ['噔', '嬁', '灯', '燈', '璒', '登', '竳', '簦', '艠', '豋'],
+ pū: ['噗', '扑', '撲', '攴', '攵', '潽', '炇', '陠'],
+ juē: ['噘', '屩', '屫', '撧'],
+ lū: ['噜', '嚕', '撸', '擼', '謢'],
+ zhān: [
+ '噡',
+ '岾',
+ '惉',
+ '旃',
+ '旜',
+ '枬',
+ '栴',
+ '毡',
+ '氈',
+ '氊',
+ '沾',
+ '瞻',
+ '薝',
+ '蛅',
+ '詀',
+ '詹',
+ '譫',
+ '谵',
+ '趈',
+ '邅',
+ '閚',
+ '霑',
+ '飦',
+ '饘',
+ '驙',
+ '魙',
+ '鱣',
+ '鸇',
+ '鹯',
+ '𫗴',
+ ],
+ ō: ['噢'],
+ 'zhòu zhuó': ['噣'],
+ 'jiào qiào chī': ['噭'],
+ yuàn: [
+ '噮',
+ '妴',
+ '怨',
+ '愿',
+ '掾',
+ '瑗',
+ '禐',
+ '苑',
+ '衏',
+ '裫',
+ '褑',
+ '院',
+ '願',
+ ],
+ 'ǎi ài āi': ['噯'],
+ 'yōng yǒng': ['噰', '澭'],
+ 'jué xué': ['噱'],
+ 'pēn pèn fèn': ['噴'],
+ gá: ['噶', '尜', '釓', '錷', '钆'],
+ 'xīn hěn hèn': ['噷'],
+ dāng: ['噹', '澢', '珰', '璫', '筜', '簹', '艡', '蟷', '裆', '襠'],
+ làn: ['嚂', '滥', '濫', '烂', '燗', '爁', '爛', '爤', '瓓', '糷', '钄'],
+ tà: [
+ '嚃',
+ '嚺',
+ '崉',
+ '挞',
+ '搨',
+ '撻',
+ '榻',
+ '橽',
+ '毾',
+ '涾',
+ '澾',
+ '濌',
+ '禢',
+ '粏',
+ '誻',
+ '譶',
+ '蹋',
+ '蹹',
+ '躂',
+ '躢',
+ '遝',
+ '錔',
+ '闒',
+ '闥',
+ '闼',
+ '阘',
+ '鞜',
+ '鞳',
+ ],
+ 'huō huò ǒ': ['嚄'],
+ hāo: ['嚆', '茠', '蒿', '薅'],
+ 'hè xià': ['嚇'],
+ 'xiù pì': ['嚊'],
+ 'zhōu chóu': ['嚋', '盩', '诪'],
+ mē: ['嚒'],
+ 'chā cā': ['嚓'],
+ 'bó pào bào': ['嚗'],
+ 'me mèi mò': ['嚜'],
+ 'xié hái': ['嚡'],
+ 'áo xiāo': ['嚣'],
+ mō: ['嚤', '摸'],
+ pín: [
+ '嚬',
+ '娦',
+ '嫔',
+ '嬪',
+ '玭',
+ '矉',
+ '薲',
+ '蠙',
+ '貧',
+ '贫',
+ '顰',
+ '颦',
+ '𬞟',
+ ],
+ mè: ['嚰', '濹'],
+ 'rǎng rāng': ['嚷'],
+ lá: ['嚹', '旯'],
+ 'jiáo jué jiào': ['嚼'],
+ chuò: [
+ '嚽',
+ '娖',
+ '擉',
+ '歠',
+ '涰',
+ '磭',
+ '踀',
+ '輟',
+ '辍',
+ '辵',
+ '辶',
+ '酫',
+ '鑡',
+ '餟',
+ '齪',
+ '龊',
+ ],
+ 'huān huàn': ['嚾'],
+ 'zá cà': ['囃'],
+ chài: ['囆', '虿', '蠆', '袃', '訍'],
+ 'náng nāng': ['囊'],
+ 'zá zàn cān': ['囋'],
+ sū: ['囌', '櫯', '甦', '稣', '穌', '窣', '蘇', '蘓', '酥', '鯂'],
+ zèng: ['囎', '熷', '甑', '贈', '赠', '鋥', '锃'],
+ 'zá niè yàn': ['囐'],
+ nāng: ['囔'],
+ 'luó luō luo': ['囖'],
+ 'wéi guó': ['囗'],
+ huí: [
+ '囘',
+ '回',
+ '囬',
+ '廻',
+ '廽',
+ '恛',
+ '洄',
+ '痐',
+ '茴',
+ '蚘',
+ '蛔',
+ '蛕',
+ '蜖',
+ '迴',
+ '逥',
+ '鮰',
+ ],
+ nín: ['囜', '您', '脌'],
+ 'jiǎn nān': ['囝'],
+ nān: ['囡'],
+ tuán: ['团', '団', '團', '慱', '抟', '摶', '檲', '糰', '鏄', '鷒', '鷻'],
+ 'tún dùn': ['囤', '坉'],
+ guó: [
+ '囯',
+ '囶',
+ '囻',
+ '国',
+ '圀',
+ '國',
+ '帼',
+ '幗',
+ '慖',
+ '摑',
+ '漍',
+ '聝',
+ '腘',
+ '膕',
+ '蔮',
+ '虢',
+ '馘',
+ '𬇹',
+ ],
+ kùn: ['困', '涃', '睏'],
+ 'wéi tōng': ['囲'],
+ qūn: ['囷', '夋', '逡'],
+ rì: ['囸', '日', '衵', '鈤', '馹', '驲'],
+ tāi: ['囼', '孡', '胎'],
+ pǔ: [
+ '圃',
+ '圑',
+ '擈',
+ '普',
+ '暜',
+ '樸',
+ '檏',
+ '氆',
+ '浦',
+ '溥',
+ '烳',
+ '諩',
+ '譜',
+ '谱',
+ '蹼',
+ '鐠',
+ '镨',
+ ],
+ 'quān juàn juān': ['圈', '圏'],
+ 'chuí chuán': ['圌'],
+ tuǎn: ['圕', '畽', '疃'],
+ lüè: ['圙', '掠', '略', '畧', '稤', '鋝', '鋢', '锊', '䂮'],
+ 'huán yuán': ['圜'],
+ luán: [
+ '圝',
+ '圞',
+ '奱',
+ '娈',
+ '孌',
+ '孪',
+ '孿',
+ '峦',
+ '巒',
+ '挛',
+ '攣',
+ '曫',
+ '栾',
+ '欒',
+ '滦',
+ '灤',
+ '癴',
+ '癵',
+ '羉',
+ '脔',
+ '臠',
+ '虊',
+ '銮',
+ '鑾',
+ '鵉',
+ '鸞',
+ '鸾',
+ ],
+ tǔ: ['土', '圡', '釷', '钍'],
+ 'xū wéi': ['圩'],
+ 'dì de': ['地', '嶳'],
+ 'qiān sú': ['圱'],
+ zhèn: [
+ '圳',
+ '塦',
+ '挋',
+ '振',
+ '朕',
+ '栚',
+ '甽',
+ '眹',
+ '紖',
+ '絼',
+ '纼',
+ '誫',
+ '賑',
+ '赈',
+ '鋴',
+ '鎭',
+ '鎮',
+ '镇',
+ '阵',
+ '陣',
+ '震',
+ '鴆',
+ '鸩',
+ ],
+ 'chǎng cháng': ['场', '場', '塲'],
+ 'qí yín': ['圻'],
+ jiá: [
+ '圿',
+ '忦',
+ '恝',
+ '戞',
+ '扴',
+ '脥',
+ '荚',
+ '莢',
+ '蛱',
+ '蛺',
+ '裌',
+ '跲',
+ '郏',
+ '郟',
+ '鋏',
+ '铗',
+ '頬',
+ '頰',
+ '颊',
+ '鴶',
+ '鵊',
+ ],
+ 'zhǐ zhì': ['坁'],
+ bǎn: [
+ '坂',
+ '岅',
+ '昄',
+ '板',
+ '版',
+ '瓪',
+ '粄',
+ '舨',
+ '蝂',
+ '鈑',
+ '钣',
+ '阪',
+ '魬',
+ ],
+ qǐn: ['坅', '寑', '寝', '寢', '昑', '梫', '笉', '螼', '赾', '鋟', '锓'],
+ 'méi fén': ['坆'],
+ 'rǒng kēng': ['坈'],
+ 'fāng fáng': ['坊'],
+ 'fèn bèn': ['坋'],
+ tān: ['坍', '怹', '摊', '擹', '攤', '滩', '灘', '瘫', '癱', '舑', '貪', '贪'],
+ 'huài pēi pī péi': ['坏'],
+ 'dì làn': ['坔'],
+ tán: [
+ '坛',
+ '墰',
+ '墵',
+ '壇',
+ '壜',
+ '婒',
+ '憛',
+ '昙',
+ '曇',
+ '榃',
+ '檀',
+ '潭',
+ '燂',
+ '痰',
+ '磹',
+ '罈',
+ '罎',
+ '藫',
+ '談',
+ '譚',
+ '譠',
+ '谈',
+ '谭',
+ '貚',
+ '郯',
+ '醰',
+ '錟',
+ '顃',
+ ],
+ bà: ['坝', '垻', '壩', '弝', '欛', '灞', '爸', '矲', '覇', '霸', '鮁', '鲅'],
+ fén: [
+ '坟',
+ '墳',
+ '妢',
+ '岎',
+ '幩',
+ '枌',
+ '棼',
+ '汾',
+ '焚',
+ '燌',
+ '燓',
+ '羒',
+ '羵',
+ '蒶',
+ '蕡',
+ '蚠',
+ '蚡',
+ '豮',
+ '豶',
+ '轒',
+ '鐼',
+ '隫',
+ '馩',
+ '魵',
+ '黂',
+ '鼖',
+ '鼢',
+ '𣸣',
+ ],
+ zhuì: [
+ '坠',
+ '墜',
+ '惴',
+ '甀',
+ '畷',
+ '礈',
+ '綴',
+ '縋',
+ '缀',
+ '缒',
+ '腏',
+ '膇',
+ '諈',
+ '贅',
+ '赘',
+ '醊',
+ '錣',
+ '鑆',
+ ],
+ pō: ['坡', '岥', '泼', '溌', '潑', '釙', '鏺', '钋', '頗', '颇', '䥽'],
+ 'pǎn bàn': ['坢'],
+ kūn: [
+ '坤',
+ '堃',
+ '堒',
+ '崐',
+ '崑',
+ '昆',
+ '晜',
+ '潉',
+ '焜',
+ '熴',
+ '猑',
+ '琨',
+ '瑻',
+ '菎',
+ '蜫',
+ '裈',
+ '裩',
+ '褌',
+ '醌',
+ '錕',
+ '锟',
+ '騉',
+ '髠',
+ '髡',
+ '髨',
+ '鯤',
+ '鲲',
+ '鵾',
+ '鶤',
+ '鹍',
+ ],
+ diàn: [
+ '坫',
+ '垫',
+ '墊',
+ '壂',
+ '奠',
+ '婝',
+ '店',
+ '惦',
+ '扂',
+ '橂',
+ '殿',
+ '淀',
+ '澱',
+ '玷',
+ '琔',
+ '电',
+ '癜',
+ '簟',
+ '蜔',
+ '鈿',
+ '電',
+ '靛',
+ '驔',
+ ],
+ 'mù mǔ': ['坶'],
+ 'kē kě': ['坷', '軻'],
+ xuè: ['坹', '岤', '桖', '瀥', '狘', '瞲', '謔', '谑', '趐'],
+ 'dǐ chí': ['坻', '柢'],
+ lā: ['垃', '柆', '菈', '邋'],
+ lǒng: ['垄', '垅', '壟', '壠', '拢', '攏', '竉', '陇', '隴', '𬕂'],
+ mín: [
+ '垊',
+ '姄',
+ '岷',
+ '崏',
+ '捪',
+ '旻',
+ '旼',
+ '民',
+ '珉',
+ '琘',
+ '琝',
+ '瑉',
+ '痻',
+ '盿',
+ '砇',
+ '緍',
+ '緡',
+ '缗',
+ '罠',
+ '苠',
+ '鈱',
+ '錉',
+ '鍲',
+ '鴖',
+ ],
+ 'dòng tóng': ['垌', '峒', '洞'],
+ cí: [
+ '垐',
+ '嬨',
+ '慈',
+ '柌',
+ '濨',
+ '珁',
+ '瓷',
+ '甆',
+ '磁',
+ '礠',
+ '祠',
+ '糍',
+ '茨',
+ '詞',
+ '词',
+ '辝',
+ '辞',
+ '辤',
+ '辭',
+ '雌',
+ '飺',
+ '餈',
+ '鴜',
+ '鶿',
+ '鷀',
+ '鹚',
+ ],
+ duī: ['垖', '堆', '塠', '痽', '磓', '鐓', '鐜', '鴭'],
+ 'duò duǒ': ['垛'],
+ 'duǒ duò': ['垜', '挆'],
+ chá: ['垞', '察', '嵖', '搽', '槎', '檫', '猹', '茬', '茶', '詧', '靫', '𥻗'],
+ shǎng: ['垧', '晌', '樉', '賞', '贘', '赏', '鋿', '鏛', '鑜'],
+ shǒu: ['垨', '守', '手', '扌', '艏', '首'],
+ da: ['垯', '繨', '跶'],
+ háng: [
+ '垳',
+ '斻',
+ '杭',
+ '筕',
+ '絎',
+ '绗',
+ '航',
+ '苀',
+ '蚢',
+ '裄',
+ '貥',
+ '迒',
+ '頏',
+ '颃',
+ '魧',
+ ],
+ 'ān ǎn': ['垵'],
+ xīng: [
+ '垶',
+ '惺',
+ '星',
+ '曐',
+ '煋',
+ '猩',
+ '瑆',
+ '皨',
+ '篂',
+ '腥',
+ '興',
+ '觪',
+ '觲',
+ '謃',
+ '騂',
+ '骍',
+ '鮏',
+ '鯹',
+ ],
+ 'yuàn huán': ['垸'],
+ bāng: [
+ '垹',
+ '帮',
+ '幇',
+ '幚',
+ '幫',
+ '捠',
+ '梆',
+ '浜',
+ '邦',
+ '邫',
+ '鞤',
+ '𠳐',
+ ],
+ 'póu fú': ['垺'],
+ cén: ['埁', '岑', '涔'],
+ 'běng fēng': ['埄'],
+ 'dì fáng': ['埅'],
+ 'xiá jiā': ['埉'],
+ 'mái mán': ['埋'],
+ làng: ['埌', '崀', '浪', '蒗', '閬', '㫰'],
+ 'shān yán': ['埏'],
+ 'qín jīn': ['埐'],
+ 'pǔ bù': ['埔'],
+ huā: ['埖', '婲', '椛', '硴', '糀', '花', '蒊', '蘤', '誮', '錵'],
+ 'suì sù': ['埣'],
+ 'pí pì': ['埤'],
+ 'qīng zhēng': ['埥', '鲭'],
+ 'wǎn wān': ['埦'],
+ lǔn: ['埨', '稐', '𫭢'],
+ 'zhēng chéng': ['埩'],
+ kōng: ['埪', '崆', '箜', '躻', '錓', '鵼'],
+ 'cǎi cài': ['埰', '寀', '采'],
+ 'chù tòu': ['埱'],
+ běng: ['埲', '琫', '菶', '鞛'],
+ 'kǎn xiàn': ['埳'],
+ 'yì shì': ['埶', '醳'],
+ péi: ['培', '毰', '裴', '裵', '賠', '赔', '錇', '锫', '阫', '陪'],
+ 'sào sǎo': ['埽'],
+ 'jǐn qīn jìn': ['堇'],
+ 'péng bèng': ['堋'],
+ 'qiàn zàn jiàn': ['堑'],
+ àn: [
+ '堓',
+ '屵',
+ '岸',
+ '按',
+ '暗',
+ '案',
+ '胺',
+ '荌',
+ '豻',
+ '貋',
+ '錌',
+ '闇',
+ '隌',
+ '黯',
+ ],
+ 'duò huī': ['堕', '墮'],
+ huán: [
+ '堚',
+ '寏',
+ '寰',
+ '峘',
+ '桓',
+ '洹',
+ '澴',
+ '獂',
+ '环',
+ '環',
+ '糫',
+ '繯',
+ '缳',
+ '羦',
+ '荁',
+ '萈',
+ '萑',
+ '豲',
+ '鍰',
+ '鐶',
+ '锾',
+ '镮',
+ '闤',
+ '阛',
+ '雈',
+ '鬟',
+ '鹮',
+ '𬘫',
+ '𤩽',
+ ],
+ 'bǎo bǔ pù': ['堡'],
+ 'máo móu wǔ': ['堥'],
+ ruán: ['堧', '壖', '撋'],
+ 'ài è yè': ['堨'],
+ gèng: ['堩', '暅'],
+ méi: [
+ '堳',
+ '塺',
+ '媒',
+ '嵋',
+ '徾',
+ '攗',
+ '枚',
+ '栂',
+ '梅',
+ '楣',
+ '楳',
+ '槑',
+ '湄',
+ '湈',
+ '煤',
+ '猸',
+ '玫',
+ '珻',
+ '瑂',
+ '眉',
+ '睂',
+ '禖',
+ '脄',
+ '脢',
+ '腜',
+ '苺',
+ '莓',
+ '葿',
+ '郿',
+ '酶',
+ '鎇',
+ '镅',
+ '霉',
+ '鶥',
+ '鹛',
+ '黴',
+ ],
+ dǔ: ['堵', '琽', '睹', '笃', '篤', '覩', '賭', '赌'],
+ féng: ['堸', '綘', '艂', '逢'],
+ hèng: ['堼'],
+ chūn: [
+ '堾',
+ '媋',
+ '旾',
+ '春',
+ '暙',
+ '杶',
+ '椿',
+ '槆',
+ '橁',
+ '櫄',
+ '瑃',
+ '箺',
+ '萅',
+ '蝽',
+ '輴',
+ '鰆',
+ '鶞',
+ '䲠',
+ ],
+ jiǎng: [
+ '塂',
+ '奖',
+ '奨',
+ '奬',
+ '桨',
+ '槳',
+ '獎',
+ '耩',
+ '膙',
+ '蒋',
+ '蔣',
+ '講',
+ '讲',
+ '顜',
+ ],
+ huāng: ['塃', '巟', '慌', '肓', '荒', '衁'],
+ duàn: [
+ '塅',
+ '断',
+ '斷',
+ '椴',
+ '段',
+ '毈',
+ '煅',
+ '瑖',
+ '碫',
+ '簖',
+ '籪',
+ '緞',
+ '缎',
+ '腶',
+ '葮',
+ '躖',
+ '鍛',
+ '锻',
+ ],
+ tǎ: ['塔', '墖', '獭', '獺', '鮙', '鰨', '鳎'],
+ wěng: ['塕', '奣', '嵡', '攚', '暡', '瞈', '蓊'],
+ 'sāi sài sè': ['塞'],
+ zàng: ['塟', '弉', '臓', '臟', '葬', '蔵', '銺'],
+ tián: [
+ '塡',
+ '屇',
+ '恬',
+ '沺',
+ '湉',
+ '璳',
+ '甛',
+ '甜',
+ '田',
+ '畋',
+ '畑',
+ '碵',
+ '磌',
+ '胋',
+ '闐',
+ '阗',
+ '鴫',
+ '鷆',
+ '鷏',
+ ],
+ zhèng: [
+ '塣',
+ '幁',
+ '政',
+ '証',
+ '諍',
+ '證',
+ '证',
+ '诤',
+ '郑',
+ '鄭',
+ '靕',
+ '鴊',
+ ],
+ 'tián zhèn': ['填'],
+ wēn: [
+ '塭',
+ '昷',
+ '榲',
+ '殟',
+ '温',
+ '溫',
+ '瑥',
+ '瘟',
+ '蕰',
+ '豱',
+ '輼',
+ '轀',
+ '辒',
+ '鎾',
+ '饂',
+ '鰛',
+ '鰮',
+ '鳁',
+ ],
+ liù: ['塯', '廇', '磟', '翏', '雡', '霤', '餾', '鬸', '鷚', '鹨'],
+ hǎi: ['塰', '海', '烸', '酼', '醢'],
+ lǎng: ['塱', '朖', '朗', '朤', '烺', '蓢', '㮾'],
+ bèng: ['塴', '揼', '泵', '甏', '綳', '蹦', '迸', '逬', '鏰', '镚'],
+ chén: [
+ '塵',
+ '宸',
+ '尘',
+ '忱',
+ '敐',
+ '敶',
+ '晨',
+ '曟',
+ '栕',
+ '樄',
+ '沉',
+ '煁',
+ '瘎',
+ '臣',
+ '茞',
+ '莀',
+ '莐',
+ '蔯',
+ '薼',
+ '螴',
+ '訦',
+ '諶',
+ '軙',
+ '辰',
+ '迧',
+ '鈂',
+ '陈',
+ '陳',
+ '霃',
+ '鷐',
+ '麎',
+ ],
+ 'ōu qiū': ['塸'],
+ 'qiàn jiàn': ['塹'],
+ 'zhuān tuán': ['塼'],
+ shuǎng: ['塽', '慡', '漺', '爽', '縔', '鏯'],
+ shú: ['塾', '婌', '孰', '璹', '秫', '贖', '赎'],
+ lǒu: ['塿', '嵝', '嶁', '甊', '篓', '簍'],
+ chí: [
+ '墀',
+ '弛',
+ '持',
+ '池',
+ '漦',
+ '竾',
+ '筂',
+ '箎',
+ '篪',
+ '茌',
+ '荎',
+ '蚳',
+ '謘',
+ '貾',
+ '赿',
+ '踟',
+ '迟',
+ '迡',
+ '遅',
+ '遟',
+ '遲',
+ '鍉',
+ '馳',
+ '驰',
+ ],
+ shù: [
+ '墅',
+ '庶',
+ '庻',
+ '怷',
+ '恕',
+ '戍',
+ '束',
+ '树',
+ '樹',
+ '沭',
+ '漱',
+ '潄',
+ '濖',
+ '竖',
+ '竪',
+ '絉',
+ '腧',
+ '荗',
+ '蒁',
+ '虪',
+ '術',
+ '裋',
+ '豎',
+ '述',
+ '鉥',
+ '錰',
+ '鏣',
+ '霔',
+ '鶐',
+ '𬬸',
+ ],
+ 'dì zhì': ['墆', '疐'],
+ kàn: ['墈', '崁', '瞰', '矙', '磡', '衎', '鬫'],
+ chěn: ['墋', '夦', '硶', '碜', '磣', '贂', '趻', '踸', '鍖'],
+ 'zhǐ zhuó': ['墌'],
+ qiǎng: ['墏', '繈', '繦', '羥', '襁'],
+ zēng: ['増', '增', '憎', '璔', '矰', '磳', '罾', '譄', '鄫', '鱛', '䎖'],
+ qiáng: [
+ '墙',
+ '墻',
+ '嫱',
+ '嬙',
+ '樯',
+ '檣',
+ '漒',
+ '牆',
+ '艢',
+ '蔃',
+ '蔷',
+ '蘠',
+ ],
+ 'kuài tuí': ['墤'],
+ 'tuǎn dǒng': ['墥'],
+ 'qiáo què': ['墧'],
+ 'zūn dūn': ['墫'],
+ 'qiāo áo': ['墽'],
+ 'yì tú': ['墿'],
+ 'xué bó jué': ['壆'],
+ lǎn: [
+ '壈',
+ '嬾',
+ '孄',
+ '孏',
+ '懒',
+ '懶',
+ '揽',
+ '擥',
+ '攬',
+ '榄',
+ '欖',
+ '浨',
+ '漤',
+ '灠',
+ '纜',
+ '缆',
+ '罱',
+ '覧',
+ '覽',
+ '览',
+ '醂',
+ '顲',
+ ],
+ huài: ['壊', '壞', '蘾'],
+ rǎng: ['壌', '壤', '攘', '爙'],
+ 'làn xiàn': ['壏'],
+ dǎo: [
+ '壔',
+ '导',
+ '導',
+ '岛',
+ '島',
+ '嶋',
+ '嶌',
+ '嶹',
+ '捣',
+ '搗',
+ '擣',
+ '槝',
+ '祷',
+ '禂',
+ '禱',
+ '蹈',
+ '陦',
+ '隝',
+ '隯',
+ ],
+ ruǐ: ['壡', '桵', '橤', '繠', '蕊', '蕋', '蘂', '蘃'],
+ san: ['壭'],
+ zhuàng: ['壮', '壯', '壵', '撞', '焋', '状', '狀'],
+ 'ké qiào': ['壳', '殼'],
+ kǔn: [
+ '壸',
+ '壼',
+ '悃',
+ '捆',
+ '梱',
+ '硱',
+ '祵',
+ '稇',
+ '稛',
+ '綑',
+ '裍',
+ '閫',
+ '閸',
+ '阃',
+ ],
+ mǎng: ['壾', '漭', '茻', '莽', '莾', '蠎'],
+ cún: ['壿', '存'],
+ 'zhǐ zhōng': ['夂'],
+ 'gǔ yíng': ['夃'],
+ 'jiàng xiáng': ['夅', '降'],
+ 'páng féng fēng': ['夆'],
+ zhāi: ['夈', '捚', '摘', '斋', '斎', '榸', '粂', '齋'],
+ 'xuàn xiòng': ['夐'],
+ wài: ['外', '顡'],
+ 'wǎn yuàn wān yuān': ['夗'],
+ 'mǎo wǎn': ['夘'],
+ mèng: ['夢', '夣', '孟', '梦', '癦', '霥'],
+ 'dà dài': ['大'],
+ 'fū fú': ['夫', '姇', '枎', '粰'],
+ guài: ['夬', '怪', '恠'],
+ yāng: [
+ '央',
+ '姎',
+ '抰',
+ '殃',
+ '泱',
+ '秧',
+ '胦',
+ '鉠',
+ '鍈',
+ '雵',
+ '鴦',
+ '鸯',
+ ],
+ 'hāng bèn': ['夯'],
+ gǎo: [
+ '夰',
+ '搞',
+ '杲',
+ '槀',
+ '槁',
+ '檺',
+ '稁',
+ '稾',
+ '稿',
+ '縞',
+ '缟',
+ '菒',
+ '藁',
+ '藳',
+ ],
+ 'tāo běn': ['夲'],
+ 'tóu tou': ['头'],
+ 'yǎn tāo': ['夵'],
+ 'kuā kuà': ['夸', '誇'],
+ 'jiá jiā gā xiá': ['夹'],
+ huà: [
+ '夻',
+ '婳',
+ '嫿',
+ '嬅',
+ '崋',
+ '摦',
+ '杹',
+ '枠',
+ '桦',
+ '槬',
+ '樺',
+ '澅',
+ '画',
+ '畫',
+ '畵',
+ '繣',
+ '舙',
+ '話',
+ '諙',
+ '譮',
+ '话',
+ '黊',
+ ],
+ 'jiā jiá gā xiá': ['夾'],
+ ēn: ['奀', '恩', '蒽'],
+ 'dī tì': ['奃'],
+ 'yǎn yān': ['奄', '渰'],
+ pào: ['奅', '疱', '皰', '砲', '礟', '礮', '靤', '麭'],
+ nài: ['奈', '柰', '渿', '耐', '萘', '褦', '錼', '鼐'],
+ 'quān juàn': ['奍', '弮', '棬'],
+ zòu: ['奏', '揍'],
+ 'qì qiè xiè': ['契'],
+ kāi: ['奒', '开', '揩', '鐦', '锎', '開'],
+ 'bēn bèn': ['奔', '泍'],
+ tào: ['套'],
+ 'zàng zhuǎng': ['奘'],
+ běn: ['奙', '本', '楍', '畚', '翉', '苯'],
+ 'xùn zhuì': ['奞'],
+ shē: ['奢', '檨', '猞', '畭', '畲', '賒', '賖', '赊', '輋', '𪨶'],
+ 'hǎ pò tǎi': ['奤'],
+ 'ào yù': ['奥', '奧', '澚'],
+ yūn: ['奫', '氲', '氳', '蒀', '蒕', '蝹', '贇', '赟', '𫖳'],
+ 'duǒ chě': ['奲'],
+ 'nǚ rǔ': ['女'],
+ nú: ['奴', '孥', '笯', '駑', '驽'],
+ 'dīng dǐng tiǎn': ['奵'],
+ 'tā jiě': ['她'],
+ nuán: ['奻'],
+ 'hǎo hào': ['好'],
+ fàn: [
+ '奿',
+ '嬎',
+ '梵',
+ '汎',
+ '泛',
+ '滼',
+ '瀪',
+ '犯',
+ '畈',
+ '盕',
+ '笵',
+ '範',
+ '范',
+ '訉',
+ '販',
+ '贩',
+ '軬',
+ '輽',
+ '飯',
+ '飰',
+ '饭',
+ ],
+ shuò: ['妁', '搠', '朔', '槊', '烁', '爍', '矟', '蒴', '鎙', '鑠', '铄'],
+ 'fēi pèi': ['妃'],
+ wàng: ['妄', '忘', '旺', '望', '朢'],
+ zhuāng: [
+ '妆',
+ '妝',
+ '娤',
+ '庄',
+ '庒',
+ '桩',
+ '梉',
+ '樁',
+ '粧',
+ '糚',
+ '荘',
+ '莊',
+ '装',
+ '裝',
+ ],
+ mā: ['妈', '媽'],
+ 'fū yōu': ['妋'],
+ 'hài jiè': ['妎'],
+ dù: [
+ '妒',
+ '妬',
+ '杜',
+ '殬',
+ '渡',
+ '秺',
+ '芏',
+ '荰',
+ '螙',
+ '蠧',
+ '蠹',
+ '鍍',
+ '镀',
+ '靯',
+ '𬭊',
+ ],
+ miào: ['妙', '庙', '庿', '廟', '玅', '竗'],
+ 'fǒu pēi pī': ['妚'],
+ 'yuè jué': ['妜'],
+ niū: ['妞'],
+ 'nà nàn': ['妠'],
+ tuǒ: ['妥', '嫷', '庹', '椭', '楕', '橢', '鬌', '鰖', '鵎'],
+ 'wàn yuán': ['妧'],
+ fáng: ['妨', '房', '肪', '防', '魴', '鲂'],
+ nī: ['妮'],
+ zhóu: ['妯', '碡'],
+ zhāo: ['妱', '巶', '招', '昭', '釗', '鉊', '鍣', '钊', '駋', '𬬿'],
+ 'nǎi nǐ': ['妳'],
+ tǒu: ['妵', '敨', '紏', '蘣', '黈'],
+ 'xián xuán xù': ['妶'],
+ 'zhí yì': ['妷', '秇'],
+ ē: ['妸', '妿', '婀', '屙'],
+ mèi: [
+ '妹',
+ '媚',
+ '寐',
+ '抺',
+ '旀',
+ '昧',
+ '沬',
+ '煝',
+ '痗',
+ '眛',
+ '睸',
+ '祙',
+ '篃',
+ '蝞',
+ '袂',
+ '跊',
+ '鬽',
+ '魅',
+ ],
+ 'qī qì': ['妻'],
+ 'xū xǔ': ['姁', '稰'],
+ 'shān shàn': ['姍', '姗', '苫', '釤', '钐'],
+ mán: ['姏', '慲', '樠', '蛮', '蠻', '謾', '饅', '馒', '鬗', '鬘', '鰻', '鳗'],
+ jiě: ['姐', '媎', '檞', '毑', '飷'],
+ 'wěi wēi': ['委'],
+ pīn: ['姘', '拼', '礗', '穦', '馪', '驞'],
+ 'huá huó': ['姡'],
+ 'jiāo xiáo': ['姣'],
+ 'gòu dù': ['姤'],
+ 'lǎo mǔ': ['姥'],
+ 'nián niàn': ['姩'],
+ zhěn: [
+ '姫',
+ '屒',
+ '弫',
+ '抮',
+ '昣',
+ '枕',
+ '畛',
+ '疹',
+ '眕',
+ '稹',
+ '縝',
+ '縥',
+ '缜',
+ '聄',
+ '萙',
+ '袗',
+ '裖',
+ '覙',
+ '診',
+ '诊',
+ '軫',
+ '轸',
+ '辴',
+ '駗',
+ '鬒',
+ ],
+ héng: [
+ '姮',
+ '恆',
+ '恒',
+ '烆',
+ '珩',
+ '胻',
+ '蘅',
+ '衡',
+ '鑅',
+ '鴴',
+ '鵆',
+ '鸻',
+ ],
+ 'jūn xún': ['姰'],
+ 'kuā hù': ['姱'],
+ 'è yà': ['姶'],
+ 'xiān shēn': ['姺'],
+ wá: ['娃'],
+ 'ráo rǎo': ['娆', '嬈'],
+ 'shào shāo': ['娋'],
+ xiē: ['娎', '揳', '楔', '歇', '蝎', '蠍'],
+ 'wǔ méi mǔ': ['娒'],
+ 'chuò lài': ['娕'],
+ niáng: ['娘', '嬢', '孃'],
+ 'nà nuó': ['娜', '𦰡'],
+ 'pōu bǐ': ['娝'],
+ 'něi suī': ['娞'],
+ tuì: ['娧', '煺', '蛻', '蜕', '退', '駾'],
+ mǎn: ['娨', '屘', '満', '满', '滿', '螨', '蟎', '襔', '鏋'],
+ 'wú wù yú': ['娪'],
+ 'xī āi': ['娭'],
+ 'zhuì shuì': ['娷'],
+ 'dōng dòng': ['娻'],
+ 'ǎi ái è': ['娾'],
+ 'ē ě': ['娿'],
+ mián: [
+ '婂',
+ '嬵',
+ '宀',
+ '杣',
+ '棉',
+ '檰',
+ '櫋',
+ '眠',
+ '矈',
+ '矊',
+ '矏',
+ '綿',
+ '緜',
+ '绵',
+ '芇',
+ '蝒',
+ ],
+ 'pǒu péi bù': ['婄'],
+ biǎo: ['婊', '脿', '表', '裱', '褾', '諘', '錶'],
+ 'fù fàn': ['婏'],
+ wǒ: ['婐', '婑', '我'],
+ 'ní nǐ': ['婗', '棿'],
+ 'quán juàn': ['婘', '惓'],
+ hūn: [
+ '婚',
+ '昏',
+ '昬',
+ '棔',
+ '涽',
+ '睧',
+ '睯',
+ '碈',
+ '荤',
+ '葷',
+ '蔒',
+ '轋',
+ '閽',
+ '阍',
+ ],
+ 'qiān jǐn': ['婜'],
+ 'wān wà': ['婠'],
+ 'lái lài': ['婡', '徕', '徠'],
+ 'zhōu chōu': ['婤'],
+ 'chuò nào': ['婥'],
+ 'nüè àn': ['婩'],
+ 'hùn kūn': ['婫'],
+ 'dàng yáng': ['婸'],
+ nàn: ['婻'],
+ 'ruò chuò': ['婼'],
+ jiǎ: ['婽', '岬', '斚', '斝', '榎', '槚', '檟', '玾', '甲', '胛', '鉀', '钾'],
+ 'tōu yú': ['婾', '媮'],
+ 'yù yú': ['媀'],
+ 'wéi wěi': ['媁'],
+ 'dì tí': ['媂', '珶', '苐'],
+ róu: [
+ '媃',
+ '揉',
+ '柔',
+ '渘',
+ '煣',
+ '瑈',
+ '瓇',
+ '禸',
+ '粈',
+ '糅',
+ '脜',
+ '腬',
+ '葇',
+ '蝚',
+ '蹂',
+ '輮',
+ '鍒',
+ '鞣',
+ '騥',
+ '鰇',
+ '鶔',
+ '𫐓',
+ ],
+ 'ruǎn nèn': ['媆'],
+ miáo: ['媌', '嫹', '描', '瞄', '苗', '鶓', '鹋'],
+ 'yí pèi': ['媐'],
+ 'mián miǎn': ['媔'],
+ 'tí shì': ['媞', '惿'],
+ 'duò tuó': ['媠', '沲'],
+ ǎo: ['媪', '媼', '艹', '芺', '袄', '襖', '镺'],
+ 'chú zòu': ['媰'],
+ yìng: ['媵', '映', '暎', '硬', '膡', '鱦'],
+ 'qín shēn': ['嫀'],
+ jià: ['嫁', '幏', '架', '榢', '稼', '駕', '驾'],
+ sǎo: ['嫂'],
+ 'zhēn zhěn': ['嫃'],
+ 'jiē suǒ': ['嫅'],
+ 'míng mǐng': ['嫇'],
+ niǎo: ['嫋', '嬝', '嬲', '茑', '蔦', '袅', '裊', '褭', '鸟'],
+ tāo: [
+ '嫍',
+ '幍',
+ '弢',
+ '慆',
+ '掏',
+ '搯',
+ '槄',
+ '涛',
+ '滔',
+ '濤',
+ '瑫',
+ '絛',
+ '縚',
+ '縧',
+ '绦',
+ '詜',
+ '謟',
+ '轁',
+ '鞱',
+ '韜',
+ '韬',
+ '飸',
+ '饕',
+ ],
+ biáo: ['嫑'],
+ 'piáo piāo': ['嫖', '薸'],
+ xuán: [
+ '嫙',
+ '悬',
+ '懸',
+ '暶',
+ '檈',
+ '漩',
+ '玄',
+ '璇',
+ '璿',
+ '痃',
+ '蜁',
+ '𫠊',
+ ],
+ 'màn mān': ['嫚'],
+ kāng: [
+ '嫝',
+ '嵻',
+ '康',
+ '慷',
+ '槺',
+ '漮',
+ '砊',
+ '穅',
+ '糠',
+ '躿',
+ '鏮',
+ '鱇',
+ '𡐓',
+ '𩾌',
+ ],
+ 'hān nǎn': ['嫨'],
+ nèn: ['嫩', '嫰'],
+ zhē: ['嫬', '遮'],
+ 'mā má': ['嫲'],
+ piè: ['嫳'],
+ zhǎn: [
+ '嫸',
+ '展',
+ '搌',
+ '斩',
+ '斬',
+ '琖',
+ '盏',
+ '盞',
+ '輾',
+ '醆',
+ '颭',
+ '飐',
+ ],
+ 'xiān yǎn jìn': ['嬐'],
+ liǎn: [
+ '嬚',
+ '敛',
+ '斂',
+ '琏',
+ '璉',
+ '羷',
+ '脸',
+ '臉',
+ '蔹',
+ '蘝',
+ '蘞',
+ '裣',
+ '襝',
+ '鄻',
+ ],
+ 'qióng huán xuān': ['嬛'],
+ dǒng: ['嬞', '懂', '箽', '董', '蕫', '諌'],
+ cān: ['嬠', '湌', '爘', '飡', '餐', '驂', '骖'],
+ tiǎo: ['嬥', '宨', '晀', '朓', '窱', '脁'],
+ bí: ['嬶', '荸', '鼻'],
+ liǔ: [
+ '嬼',
+ '柳',
+ '栁',
+ '桞',
+ '桺',
+ '橮',
+ '熮',
+ '珋',
+ '綹',
+ '绺',
+ '罶',
+ '羀',
+ '鋶',
+ '锍',
+ ],
+ 'qiān xiān': ['孅', '欦'],
+ 'xié huī': ['孈'],
+ 'huān quán': ['孉'],
+ 'lí lì': ['孋', '麗'],
+ 'zhú chuò': ['孎'],
+ kǒng: ['孔', '恐'],
+ 'mā zī': ['孖'],
+ 'sūn xùn': ['孙', '孫'],
+ 'bèi bó': ['孛', '誖'],
+ 'yòu niū': ['孧'],
+ zhuǎn: ['孨', '竱', '轉'],
+ hái: ['孩', '骸'],
+ nāo: ['孬'],
+ 'chán càn': ['孱'],
+ bò: ['孹', '檗', '蘗', '譒'],
+ nái: ['孻', '腉'],
+ 'níng nìng': ['宁', '寍', '寗', '寜', '寧', '甯'],
+ zhái: ['宅'],
+ 'tū jiā': ['宊'],
+ sòng: ['宋', '訟', '誦', '讼', '诵', '送', '鎹', '頌', '颂', '餸'],
+ ròu: ['宍', '肉', '譳'],
+ zhūn: ['宒', '窀', '衠', '諄', '谆', '迍'],
+ 'mì fú': ['宓'],
+ 'dàng tàn': ['宕'],
+ 'wǎn yuān': ['宛'],
+ chǒng: ['宠', '寵'],
+ qún: ['宭', '峮', '帬', '羣', '群', '裙', '裠'],
+ zǎi: ['宰', '崽'],
+ 'bǎo shí': ['宲'],
+ 'jiā jia jie': ['家'],
+ 'huāng huǎng': ['宺'],
+ kuān: ['宽', '寛', '寬', '臗', '鑧', '髋', '髖'],
+ 'sù xiǔ xiù': ['宿'],
+ 'jié zǎn': ['寁'],
+ 'bìng bǐng': ['寎'],
+ 'jìn qǐn': ['寖'],
+ 'lóu jù': ['寠'],
+ 'xiě xiè': ['寫'],
+ 'qīn qìn': ['寴'],
+ cùn: ['寸', '籿'],
+ duì: [
+ '对',
+ '対',
+ '對',
+ '怼',
+ '憝',
+ '懟',
+ '濧',
+ '瀩',
+ '碓',
+ '祋',
+ '綐',
+ '薱',
+ '譈',
+ '譵',
+ '轛',
+ '队',
+ '陮',
+ ],
+ 'lüè luó': ['寽'],
+ 'shè yè yì': ['射'],
+ 'jiāng jiàng qiāng': ['将'],
+ 'jiāng jiàng': ['將', '浆', '漿', '畺'],
+ zūn: ['尊', '嶟', '樽', '罇', '遵', '鐏', '鱒', '鳟', '鶎', '鷷', '𨱔'],
+ 'shù zhù': ['尌', '澍'],
+ xiǎo: ['小', '晓', '暁', '曉', '皛', '皢', '筱', '筿', '篠', '謏', '𫍲'],
+ 'jié jí': ['尐', '诘', '鞊'],
+ 'shǎo shào': ['少'],
+ ěr: [
+ '尒',
+ '尓',
+ '尔',
+ '栮',
+ '毦',
+ '洱',
+ '爾',
+ '珥',
+ '耳',
+ '薾',
+ '衈',
+ '趰',
+ '迩',
+ '邇',
+ '鉺',
+ '铒',
+ '餌',
+ '饵',
+ '駬',
+ ],
+ 'wāng yóu': ['尢'],
+ wāng: ['尣', '尩', '尪', '尫', '汪'],
+ liào: ['尥', '尦', '廖', '撂', '料', '炓', '窷', '鐐', '镣', '𪤗'],
+ 'méng máng lóng páng': ['尨'],
+ gà: ['尬', '魀'],
+ 'kuì kuǐ': ['尯'],
+ tuí: ['尵', '弚', '穨', '蘈', '蹪', '隤', '頹', '頺', '頽', '颓', '魋', '𬯎'],
+ yǐn: [
+ '尹',
+ '嶾',
+ '引',
+ '朄',
+ '檃',
+ '檼',
+ '櫽',
+ '淾',
+ '濥',
+ '瘾',
+ '癮',
+ '粌',
+ '蘟',
+ '蚓',
+ '螾',
+ '讔',
+ '赺',
+ '趛',
+ '輑',
+ '鈏',
+ '靷',
+ ],
+ 'chǐ chě': ['尺'],
+ kāo: ['尻', '髛'],
+ 'jìn jǐn': ['尽'],
+ 'wěi yǐ': ['尾'],
+ 'niào suī': ['尿'],
+ céng: ['层', '層', '嶒', '驓'],
+ diǎo: ['屌'],
+ 'píng bǐng bīng': ['屏'],
+ lòu: ['屚', '漏', '瘘', '瘺', '瘻', '鏤', '镂', '陋'],
+ 'shǔ zhǔ': ['属', '屬'],
+ 'xiè tì': ['屟'],
+ 'chè cǎo': ['屮'],
+ 'tún zhūn': ['屯'],
+ 'nì jǐ': ['屰'],
+ 'hóng lóng': ['屸'],
+ 'qǐ kǎi': ['岂', '豈'],
+ áng: ['岇', '昂', '昻'],
+ 'gǎng gāng': ['岗', '崗'],
+ kě: ['岢', '敤', '渇', '渴', '炣'],
+ gǒu: ['岣', '狗', '玽', '笱', '耇', '耈', '耉', '苟', '豿'],
+ tiáo: [
+ '岧',
+ '岹',
+ '樤',
+ '祒',
+ '笤',
+ '芀',
+ '萔',
+ '蓚',
+ '蓨',
+ '蜩',
+ '迢',
+ '鋚',
+ '鎥',
+ '鞗',
+ '髫',
+ '鯈',
+ '鰷',
+ '鲦',
+ '齠',
+ '龆',
+ ],
+ 'qū jū': ['岨'],
+ lǐng: ['岭', '嶺', '領', '领'],
+ pò: ['岶', '敀', '洦', '湐', '烞', '珀', '破', '砶', '粕', '蒪', '魄'],
+ 'bā kè': ['峇'],
+ luò: [
+ '峈',
+ '摞',
+ '洛',
+ '洜',
+ '犖',
+ '珞',
+ '笿',
+ '纙',
+ '荦',
+ '詻',
+ '雒',
+ '駱',
+ '骆',
+ '鵅',
+ ],
+ 'fù niè': ['峊'],
+ ěn: ['峎'],
+ 'zhì shì': ['峙', '崻'],
+ qiǎ: ['峠', '跒', '酠', '鞐'],
+ 'qiáo jiào': ['峤', '癄'],
+ 'xié yé': ['峫'],
+ bū: ['峬', '庯', '晡', '誧', '逋', '鈽', '錻', '钸', '餔', '鵏'],
+ chóng: ['崇', '崈', '爞', '虫', '蝩', '蟲', '褈', '隀'],
+ 'zú cuì': ['崒', '椊'],
+ 'líng léng': ['崚'],
+ 'dòng dōng': ['崠'],
+ xiáo: ['崤', '洨', '淆', '訤', '誵'],
+ 'pí bǐ': ['崥', '芘'],
+ 'zhǎn chán': ['崭', '嶃', '嶄'],
+ 'wǎi wēi': ['崴'],
+ 'yáng dàng': ['崵'],
+ 'shì dié': ['崼'],
+ yào: [
+ '崾',
+ '曜',
+ '熎',
+ '燿',
+ '矅',
+ '穾',
+ '窔',
+ '筄',
+ '耀',
+ '艞',
+ '药',
+ '葯',
+ '薬',
+ '藥',
+ '袎',
+ '覞',
+ '詏',
+ '讑',
+ '靿',
+ '鷂',
+ '鹞',
+ '鼼',
+ ],
+ 'kān zhàn': ['嵁'],
+ 'hán dǎng': ['嵅'],
+ 'qiàn kàn': ['嵌'],
+ 'wù máo': ['嵍'],
+ 'kě jié': ['嵑', '嶱'],
+ 'wēi wěi': ['嵔'],
+ kē: [
+ '嵙',
+ '柯',
+ '棵',
+ '榼',
+ '樖',
+ '牁',
+ '牱',
+ '犐',
+ '珂',
+ '疴',
+ '瞌',
+ '磕',
+ '礚',
+ '科',
+ '稞',
+ '窠',
+ '萪',
+ '薖',
+ '蚵',
+ '蝌',
+ '趷',
+ '轲',
+ '醘',
+ '鈳',
+ '钶',
+ '頦',
+ '顆',
+ '颗',
+ '髁',
+ ],
+ 'dàng táng': ['嵣'],
+ 'róng yíng': ['嵤', '爃'],
+ 'ái kǎi': ['嵦'],
+ 'kāo qiāo': ['嵪'],
+ cuó: ['嵯', '嵳', '痤', '矬', '蒫', '蔖', '虘', '鹺', '鹾'],
+ 'qiǎn qīn': ['嵰'],
+ 'dì dié': ['嵽'],
+ cēn: ['嵾'],
+ dǐng: ['嵿', '艼', '薡', '鐤', '頂', '顶', '鼎', '鼑'],
+ 'áo ào': ['嶅'],
+ 'pǐ pèi': ['嶏'],
+ 'jiào qiáo': ['嶠', '潐'],
+ 'jué guì': ['嶡', '鳜'],
+ 'zhān shàn': ['嶦', '鳣'],
+ 'xiè jiè': ['嶰'],
+ 'guī xī juàn': ['嶲'],
+ rū: ['嶿'],
+ 'lì liè': ['巁', '棙', '爄', '綟'],
+ 'xī guī juàn': ['巂'],
+ 'yíng hōng': ['巆'],
+ yǐng: [
+ '巊',
+ '廮',
+ '影',
+ '摬',
+ '梬',
+ '潁',
+ '瘿',
+ '癭',
+ '矨',
+ '穎',
+ '郢',
+ '鐛',
+ '頴',
+ '颍',
+ '颕',
+ '颖',
+ ],
+ chǎo: ['巐', '炒', '煼', '眧', '麨'],
+ cuán: ['巑', '櫕', '欑'],
+ chuān: ['巛', '川', '氚', '瑏', '穿'],
+ 'jīng xíng': ['巠'],
+ cháo: [
+ '巢',
+ '巣',
+ '晁',
+ '漅',
+ '潮',
+ '牊',
+ '窲',
+ '罺',
+ '謿',
+ '轈',
+ '鄛',
+ '鼌',
+ ],
+ qiǎo: ['巧', '愀', '髜'],
+ gǒng: ['巩', '廾', '拱', '拲', '栱', '汞', '珙', '輁', '鞏'],
+ 'chà chā chāi cī': ['差'],
+ 'xiàng hàng': ['巷'],
+ shuài: ['帅', '帥', '蟀'],
+ pà: ['帊', '帕', '怕', '袙'],
+ 'tǎng nú': ['帑'],
+ 'mò wà': ['帓'],
+ 'tiē tiě tiè': ['帖'],
+ zhǒu: ['帚', '晭', '疛', '睭', '箒', '肘', '菷', '鯞'],
+ 'juǎn juàn': ['帣'],
+ shuì: ['帨', '涗', '涚', '睡', '稅', '税', '裞'],
+ 'chóu dào': ['帱', '幬'],
+ 'jiǎn jiān sàn': ['帴'],
+ 'shà qiè': ['帹'],
+ 'qí jì': ['帺', '荠'],
+ 'shān qiāo shēn': ['幓'],
+ 'zhuàng chuáng': ['幢'],
+ 'chān chàn': ['幨'],
+ miè: [
+ '幭',
+ '懱',
+ '搣',
+ '滅',
+ '灭',
+ '烕',
+ '礣',
+ '篾',
+ '蔑',
+ '薎',
+ '蠛',
+ '衊',
+ '鑖',
+ '鱴',
+ '鴓',
+ ],
+ 'gān gàn': ['干'],
+ 'bìng bīng': ['并', '幷'],
+ 'jī jǐ': ['幾'],
+ 'guǎng ān': ['广'],
+ guǎng: ['広', '廣', '犷', '獷'],
+ me: ['庅'],
+ 'dùn tún': ['庉'],
+ 'bài tīng': ['庍'],
+ 'yìng yīng': ['应'],
+ 'dǐ de': ['底'],
+ 'dù duó': ['度'],
+ 'máng méng páng': ['庬'],
+ 'bìng píng': ['庰'],
+ chěng: ['庱', '悜', '睈', '逞', '騁', '骋'],
+ 'jī cuò': ['庴'],
+ qǐng: ['庼', '廎', '檾', '漀', '苘', '請', '謦', '请', '頃', '顷'],
+ 'guī wěi huì': ['廆'],
+ 'jǐn qín': ['廑'],
+ kuò: [
+ '廓',
+ '扩',
+ '拡',
+ '擴',
+ '濶',
+ '筈',
+ '萿',
+ '葀',
+ '蛞',
+ '闊',
+ '阔',
+ '霩',
+ '鞟',
+ '鞹',
+ '韕',
+ '頢',
+ '鬠',
+ ],
+ 'qiáng sè': ['廧', '薔'],
+ 'yǐn yìn': ['廴', '隐', '隠', '隱', '飮', '飲', '饮'],
+ 'pò pǎi': ['廹', '迫'],
+ 'nòng lòng': ['弄'],
+ 'dì tì tuí': ['弟'],
+ 'jué zhāng': ['弡'],
+ 'mí mǐ': ['弥', '彌', '靡'],
+ chāo: ['弨', '怊', '抄', '欩', '訬', '超', '鈔', '钞'],
+ yi: ['弬'],
+ shāo: [
+ '弰',
+ '旓',
+ '烧',
+ '焼',
+ '燒',
+ '筲',
+ '艄',
+ '萷',
+ '蕱',
+ '輎',
+ '髾',
+ '鮹',
+ ],
+ 'xuān yuān': ['弲'],
+ 'qiáng qiǎng jiàng': ['強', '强'],
+ 'tán dàn': ['弹', '醈'],
+ biè: ['彆'],
+ 'qiáng jiàng qiǎng': ['彊'],
+ 'jì xuě': ['彐'],
+ tuàn: ['彖', '褖'],
+ yuē: ['彟', '曰', '曱', '矱'],
+ 'shān xiǎn': ['彡'],
+ wén: [
+ '彣',
+ '文',
+ '炆',
+ '珳',
+ '瘒',
+ '繧',
+ '聞',
+ '芠',
+ '蚉',
+ '蚊',
+ '螡',
+ '蟁',
+ '閺',
+ '閿',
+ '闅',
+ '闦',
+ '闻',
+ '阌',
+ '雯',
+ '馼',
+ '駇',
+ '魰',
+ '鳼',
+ '鴍',
+ '鼤',
+ '𫘜',
+ ],
+ 'péng bāng': ['彭'],
+ 'piāo piào': ['彯'],
+ 'zhuó bó': ['彴'],
+ 'tuǒ yí': ['彵'],
+ 'páng fǎng': ['彷'],
+ wǎng: [
+ '彺',
+ '往',
+ '徃',
+ '惘',
+ '枉',
+ '棢',
+ '網',
+ '网',
+ '罒',
+ '罓',
+ '罔',
+ '罖',
+ '菵',
+ '蛧',
+ '蝄',
+ '誷',
+ '輞',
+ '辋',
+ '魍',
+ ],
+ cú: ['徂', '殂'],
+ 'dài dāi': ['待'],
+ huái: ['徊', '怀', '懐', '懷', '槐', '淮', '耲', '蘹', '褢', '褱', '踝'],
+ 'wā wàng jiā': ['徍'],
+ 'chěng zhèng': ['徎'],
+ 'dé děi de': ['得'],
+ 'cóng zòng': ['從'],
+ 'shì tǐ': ['徥'],
+ 'tí chí': ['徲', '鶗', '鶙'],
+ dé: ['徳', '德', '恴', '悳', '惪', '淂', '鍀', '锝'],
+ 'zhǐ zhēng': ['徴', '徵'],
+ bié: ['徶', '癿', '莂', '蛂', '襒', '蹩'],
+ 'chōng zhǒng': ['徸'],
+ 'jiǎo jiào': ['徼', '笅', '筊'],
+ 'lòng lǒng': ['徿'],
+ 'qú jù': ['忂', '渠', '瞿', '螶'],
+ 'dìng tìng': ['忊'],
+ gǎi: ['忋', '改'],
+ rěn: ['忍', '栠', '栣', '秹', '稔', '綛', '荏', '荵', '躵'],
+ chàn: ['忏', '懴', '懺', '硟', '羼', '韂', '顫'],
+ tè: ['忑', '慝', '特', '蟘', '鋱', '铽'],
+ 'tè tēi tuī': ['忒'],
+ 'gān hàn': ['忓', '攼'],
+ 'yì qì': ['忔'],
+ 'tài shì': ['忕'],
+ 'xī liě': ['忚'],
+ 'yīng yìng': ['応', '應', '譍'],
+ 'mǐn wěn mín': ['忞', '忟'],
+ 'sōng zhōng': ['忪'],
+ 'yù shū': ['忬', '悆'],
+ 'qí shì': ['忯', '耆'],
+ 'tún zhūn dùn': ['忳'],
+ 'qián qín': ['忴', '扲'],
+ hún: ['忶', '浑', '渾', '餛', '馄', '魂', '鼲'],
+ niǔ: ['忸', '扭', '炄', '狃', '紐', '纽', '莥', '鈕', '钮', '靵'],
+ 'kuáng wǎng': ['忹'],
+ 'kāng hàng': ['忼'],
+ 'kài xì': ['忾', '愾'],
+ òu: ['怄', '慪'],
+ 'bǎo bào': ['怉'],
+ 'mín mén': ['怋'],
+ 'zuò zhà': ['怍'],
+ zěn: ['怎'],
+ yàng: ['怏', '恙', '样', '様', '樣', '漾', '羕', '詇'],
+ 'kòu jù': ['怐'],
+ 'náo niú': ['怓'],
+ 'zhēng zhèng': ['怔', '掙', '钲', '铮'],
+ 'tiē zhān': ['怗'],
+ 'hù gù': ['怘'],
+ 'cū jù zū': ['怚'],
+ 'sī sāi': ['思'],
+ 'yóu chóu': ['怞'],
+ 'tū dié': ['怢'],
+ 'yōu yào': ['怮'],
+ xuàn: [
+ '怰',
+ '昡',
+ '楦',
+ '泫',
+ '渲',
+ '炫',
+ '琄',
+ '眩',
+ '碹',
+ '絢',
+ '縼',
+ '繏',
+ '绚',
+ '蔙',
+ '衒',
+ '袨',
+ '贙',
+ '鉉',
+ '鏇',
+ '铉',
+ '镟',
+ '颴',
+ ],
+ 'xù xuè': ['怴'],
+ 'bì pī': ['怶'],
+ 'xī shù': ['怸'],
+ 'nèn nín': ['恁'],
+ 'tiāo yáo': ['恌'],
+ 'xī qī xù': ['恓'],
+ 'xiào jiǎo': ['恔'],
+ 'hū kuā': ['恗'],
+ nǜ: ['恧', '朒', '衂', '衄'],
+ hèn: ['恨'],
+ 'dòng tōng': ['恫'],
+ 'quán zhuān': ['恮'],
+ 'è wù ě wū': ['恶', '惡'],
+ tòng: ['恸', '慟', '憅', '痛', '衕'],
+ 'yuān juàn': ['悁'],
+ 'qiāo qiǎo': ['悄'],
+ 'jiè kè': ['悈'],
+ 'hào jiào': ['悎'],
+ huǐ: ['悔', '檓', '毀', '毁', '毇', '燬', '譭'],
+ 'mán mèn': ['悗', '鞔'],
+ 'yī yì': ['悘', '衣'],
+ quān: ['悛', '箞', '鐉', '𨟠'],
+ 'kuī lǐ': ['悝'],
+ 'yì niàn': ['悥'],
+ 'mèn mēn': ['悶'],
+ guàn: [
+ '悹',
+ '悺',
+ '惯',
+ '慣',
+ '掼',
+ '摜',
+ '樌',
+ '欟',
+ '泴',
+ '涫',
+ '潅',
+ '灌',
+ '爟',
+ '瓘',
+ '盥',
+ '礶',
+ '祼',
+ '罆',
+ '罐',
+ '貫',
+ '贯',
+ '躀',
+ '遦',
+ '鏆',
+ '鑵',
+ '鱹',
+ '鸛',
+ '鹳',
+ ],
+ 'kōng kǒng': ['悾'],
+ 'lǔn lùn': ['惀'],
+ guǒ: [
+ '惈',
+ '果',
+ '椁',
+ '槨',
+ '粿',
+ '綶',
+ '菓',
+ '蜾',
+ '裹',
+ '褁',
+ '輠',
+ '餜',
+ '馃',
+ ],
+ 'yuān wǎn': ['惌', '箢'],
+ 'lán lín': ['惏'],
+ 'yù xù': ['惐', '淢'],
+ 'chuò chuì': ['惙'],
+ 'hūn mèn': ['惛'],
+ 'chǎng tǎng': ['惝'],
+ 'suǒ ruǐ': ['惢'],
+ cǎn: ['惨', '慘', '憯', '黪', '黲', '䅟'],
+ cán: ['惭', '慙', '慚', '残', '殘', '蚕', '蝅', '蠶', '蠺'],
+ 'dàn dá': ['惮', '憚'],
+ rě: ['惹'],
+ 'yú tōu': ['愉'],
+ 'kài qì': ['愒'],
+ 'dàng táng shāng yáng': ['愓'],
+ 'chén xìn dān': ['愖'],
+ 'kè qià': ['愘'],
+ nuò: [
+ '愞',
+ '懦',
+ '懧',
+ '掿',
+ '搦',
+ '榒',
+ '稬',
+ '穤',
+ '糑',
+ '糥',
+ '糯',
+ '諾',
+ '诺',
+ '蹃',
+ '逽',
+ '鍩',
+ '锘',
+ ],
+ gǎn: [
+ '感',
+ '擀',
+ '敢',
+ '桿',
+ '橄',
+ '澉',
+ '澸',
+ '皯',
+ '秆',
+ '稈',
+ '笴',
+ '芉',
+ '衦',
+ '赶',
+ '趕',
+ '鱤',
+ '鳡',
+ ],
+ 'còng sōng': ['愡'],
+ 'sāi sī sǐ': ['愢'],
+ 'gōng gòng hǒng': ['愩', '慐'],
+ 'shuò sù': ['愬', '洬'],
+ 'yáo yào': ['愮'],
+ huàng: ['愰', '曂', '榥', '滉', '皝', '皩', '鎤', '㿠'],
+ zhěng: ['愸', '抍', '拯', '整', '晸'],
+ cǎo: ['愺', '艸', '草', '騲'],
+ 'xì xié': ['慀'],
+ 'cǎo sāo': ['慅'],
+ 'xù chù': ['慉'],
+ 'qiè qiàn': ['慊'],
+ 'cáo cóng': ['慒'],
+ 'ào áo': ['慠'],
+ 'lián liǎn': ['慩', '梿', '槤', '櫣'],
+ 'jìn qín jǐn': ['慬'],
+ 'dì chì': ['慸'],
+ 'zhí zhé': ['慹'],
+ 'lóu lǚ': ['慺', '鷜'],
+ còng: ['憁', '謥'],
+ 'zhī zhì': ['憄', '知', '織', '织'],
+ chēng: [
+ '憆',
+ '摚',
+ '撐',
+ '撑',
+ '晿',
+ '柽',
+ '棦',
+ '橕',
+ '檉',
+ '泟',
+ '浾',
+ '琤',
+ '瞠',
+ '碀',
+ '緽',
+ '罉',
+ '蛏',
+ '蟶',
+ '赪',
+ '赬',
+ '鏿',
+ '鐣',
+ '阷',
+ '靗',
+ '頳',
+ '饓',
+ ],
+ biē: ['憋', '虌', '鱉', '鳖', '鼈', '龞'],
+ 'chéng dèng zhèng': ['憕'],
+ 'xǐ xī': ['憘'],
+ 'duì dùn tūn': ['憞'],
+ 'xiāo jiāo': ['憢'],
+ 'xián xiàn': ['憪'],
+ 'liáo liǎo': ['憭', '燎', '爎', '爒'],
+ shéng: ['憴', '縄', '繉', '繩', '绳', '譝'],
+ 'náo nǎo náng': ['憹'],
+ 'jǐng jìng': ['憼'],
+ 'jǐ jiǎo': ['憿'],
+ 'xuān huān': ['懁'],
+ 'cǎo sāo sào': ['懆'],
+ mèn: ['懑', '懣', '暪', '焖', '燜'],
+ 'mèng méng měng': ['懜'],
+ 'ài yì nǐ': ['懝'],
+ 'méng měng': ['懞', '瞢', '矒'],
+ 'qí jī jì': ['懠'],
+ mǒ: ['懡'],
+ 'lán xiàn': ['懢'],
+ 'yōu yǒu': ['懮'],
+ 'liú liǔ': ['懰', '藰'],
+ ràng: ['懹', '譲', '讓', '让'],
+ huān: ['懽', '欢', '歓', '歡', '獾', '讙', '貛', '酄', '驩', '鴅', '鵍'],
+ nǎn: ['戁', '揇', '湳', '煵', '腩', '蝻', '赧'],
+ 'mí mó': ['戂'],
+ 'gàng zhuàng': ['戅', '戆'],
+ 'zhuàng gàng': ['戇'],
+ 'xū qu': ['戌'],
+ 'xì hū': ['戏', '戯', '戲'],
+ 'jiá gā': ['戛'],
+ zéi: ['戝', '蠈', '賊', '贼', '鰂', '鱡', '鲗'],
+ děng: ['戥', '等'],
+ 'hū xì': ['戱'],
+ chuō: ['戳', '踔', '逴'],
+ 'biǎn piān': ['扁'],
+ 'shǎng jiōng': ['扄'],
+ 'shàn shān': ['扇'],
+ cái: ['才', '材', '纔', '裁', '財', '财'],
+ 'zhā zā zhá': ['扎'],
+ 'lè lì cái': ['扐'],
+ 'bā pá': ['扒'],
+ 'dǎ dá': ['打'],
+ rēng: ['扔'],
+ 'fǎn fú': ['払'],
+ 'diǎo dí yuē lì': ['扚'],
+ 'káng gāng': ['扛'],
+ 'yū wū': ['扜'],
+ 'yū wū kū': ['扝'],
+ 'tuō chǐ yǐ': ['扡'],
+ 'gǔ jié xì gē': ['扢'],
+ dèn: ['扥', '扽'],
+ 'sǎo sào': ['扫', '掃'],
+ rǎo: ['扰', '擾', '隢'],
+ 'xī chā qì': ['扱'],
+ 'bān pān': ['扳'],
+ 'bā ào': ['扷'],
+ 'xī zhé': ['扸'],
+ 'zhì sǔn kǎn': ['扻'],
+ zhǎo: ['找', '沼', '瑵'],
+ 'kuáng wǎng zài': ['抂'],
+ 'hú gǔ': ['抇', '鹄', '鹘'],
+ 'bǎ bà': ['把'],
+ 'dǎn shěn': ['抌'],
+ 'nè nì ruì nà': ['抐'],
+ zhuā: ['抓', '檛', '簻', '膼', '髽'],
+ póu: ['抔', '裒'],
+ 'zhé shé zhē': ['折'],
+ 'póu pōu fū': ['抙', '捊'],
+ pāo: ['抛', '拋', '脬', '萢'],
+ 'ǎo ào niù': ['抝'],
+ 'lūn lún': ['抡', '掄'],
+ 'qiǎng qiāng chēng': ['抢'],
+ 'zhǐ zhǎi': ['抧'],
+ 'bù pū': ['抪', '柨'],
+ 'yǎo tāo': ['抭'],
+ 'hē hè qiā': ['抲'],
+ 'nǐ ní': ['抳'],
+ 'pī pēi': ['抷'],
+ 'mǒ mò mā': ['抹'],
+ chōu: ['抽', '犨', '犫', '瘳', '篘'],
+ 'jiā yá': ['拁'],
+ 'fú bì': ['拂', '畐', '鶝'],
+ zhǎ: ['拃', '眨', '砟', '鮺', '鲝'],
+ 'dān dàn dǎn': ['担'],
+ 'chāi cā': ['拆'],
+ niān: ['拈', '蔫'],
+ 'lā lá lǎ là': ['拉'],
+ 'bàn pàn': ['拌'],
+ pāi: ['拍'],
+ līn: ['拎'],
+ guǎi: ['拐', '枴', '柺'],
+ 'tuò tà zhí': ['拓'],
+ 'ào ǎo niù': ['拗'],
+ 'jū gōu': ['拘'],
+ 'pīn pàn fān': ['拚'],
+ 'bài bái': ['拜'],
+ bài: ['拝', '敗', '稗', '粺', '薭', '贁', '败', '韛'],
+ qiá: ['拤'],
+ 'nǐng níng nìng': ['拧'],
+ 'zé zhái': ['择', '擇'],
+ hén: ['拫', '痕', '鞎'],
+ 'kuò guā': ['括'],
+ 'jié jiá': ['拮'],
+ nǐn: ['拰'],
+ shuān: ['拴', '栓', '閂', '闩'],
+ 'cún zùn': ['拵'],
+ 'zā zǎn': ['拶', '桚'],
+ kǎo: ['拷', '攷', '栲', '烤', '考'],
+ 'yí chǐ hài': ['拸'],
+ 'cè sè chuò': ['拺'],
+ 'zhuài zhuāi yè': ['拽'],
+ 'shí shè': ['拾'],
+ bāi: ['挀', '掰'],
+ 'kuò guāng': ['挄'],
+ nòng: ['挊', '挵', '齈'],
+ 'jiào jiāo': ['挍', '敎', '教'],
+ 'kuà kū': ['挎'],
+ 'ná rú': ['挐'],
+ 'tiāo tiǎo': ['挑'],
+ 'dié shè': ['挕'],
+ liě: ['挘', '毟'],
+ 'yà yǎ': ['挜', '掗'],
+ 'wō zhuā': ['挝'],
+ 'xié jiā': ['挟', '挾'],
+ 'dǎng dàng': ['挡', '擋'],
+ 'zhèng zhēng': ['挣', '正', '症'],
+ 'āi ái': ['挨'],
+ 'tuō shuì': ['挩', '捝'],
+ 'tǐ tì': ['挮'],
+ 'suō shā': ['挱'],
+ 'sā shā suō': ['挲'],
+ 'kēng qiān': ['挳', '摼'],
+ 'bàng péng': ['挷'],
+ 'ruó ruá': ['挼'],
+ 'jiǎo kù': ['捁'],
+ 'wǔ wú': ['捂'],
+ tǒng: ['捅', '桶', '筒', '筩', '統', '綂', '统', '㛚'],
+ 'huò chì': ['捇'],
+ 'tú shū chá': ['捈'],
+ 'lǚ luō': ['捋'],
+ 'shāo shào': ['捎', '稍'],
+ niē: ['捏', '揑'],
+ 'shù sǒng sōu': ['捒'],
+ 'yé yú': ['捓'],
+ 'jué zhuó': ['捔'],
+ 'bù pú zhì': ['捗'],
+ zùn: ['捘', '銌'],
+ lāo: ['捞', '撈', '粩'],
+ sǔn: ['损', '損', '榫', '笋', '筍', '箰', '鎨', '隼'],
+ 'wàn wǎn wān yù': ['捥'],
+ pěng: ['捧', '淎', '皏'],
+ shě: ['捨'],
+ 'fǔ fù bǔ': ['捬'],
+ dáo: ['捯'],
+ 'luò luǒ wǒ': ['捰'],
+ 'juǎn quán': ['捲'],
+ 'chēn tiǎn': ['捵'],
+ 'niǎn niē': ['捻'],
+ 'ruó wěi ré': ['捼'],
+ zuó: ['捽', '昨', '秨', '稓', '筰', '莋', '鈼'],
+ 'wò xiá': ['捾'],
+ 'qìng qiàn': ['掅'],
+ 'póu pǒu': ['掊'],
+ qiā: ['掐', '葜'],
+ 'pái pǎi': ['排'],
+ 'qiān wàn': ['掔'],
+ 'yè yē': ['掖'],
+ 'niè nǐ yì': ['掜'],
+ 'huò xù': ['掝'],
+ 'yàn shàn yǎn': ['掞'],
+ 'zhěng dìng': ['掟'],
+ kòng: ['控', '鞚'],
+ tuī: ['推', '蓷', '藬'],
+ 'zōu zhōu chōu': ['掫'],
+ tiàn: ['掭', '舚'],
+ kèn: ['掯', '裉', '褃'],
+ pá: ['掱', '杷', '潖', '爬', '琶', '筢'],
+ 'guó guāi': ['掴'],
+ 'dǎn shàn': ['掸', '撣'],
+ 'chān xiān càn shǎn': ['掺'],
+ sāo: ['掻', '搔', '溞', '繅', '缫', '螦', '騒', '騷', '鰠', '鱢', '鳋'],
+ pèng: ['掽', '椪', '槰', '碰', '踫'],
+ 'zhēng kēng': ['揁'],
+ 'jiū yóu': ['揂'],
+ 'jiān jiǎn': ['揃', '籛'],
+ 'pì chè': ['揊'],
+ 'sāi zǒng cāi': ['揌'],
+ 'tí dī dǐ': ['提'],
+ 'zǒng sōng': ['揔'],
+ 'huáng yóng': ['揘'],
+ 'zǎn zuàn': ['揝'],
+ 'xū jū': ['揟'],
+ 'ké qiā': ['揢'],
+ 'chuāi chuǎi chuài tuán zhuī': ['揣'],
+ 'dì tì': ['揥'],
+ 'lá là': ['揦'],
+ là: [
+ '揧',
+ '楋',
+ '溂',
+ '瓎',
+ '瘌',
+ '翋',
+ '臘',
+ '蝋',
+ '蝲',
+ '蠟',
+ '辢',
+ '辣',
+ '鑞',
+ '镴',
+ '鬎',
+ '鯻',
+ '𬶟',
+ ],
+ 'jiē qì': ['揭'],
+ 'chòng dǒng': ['揰'],
+ 'dié shé yè': ['揲'],
+ 'jiàn qián jiǎn': ['揵'],
+ yé: ['揶', '爷', '爺', '瑘', '鋣', '鎁', '铘'],
+ chān: ['搀', '摻', '攙', '裧', '襜', '覘', '觇', '辿', '鋓'],
+ 'gē gé': ['搁', '擱'],
+ 'lǒu lōu': ['搂', '摟'],
+ 'chōu zǒu': ['搊'],
+ chuāi: ['搋'],
+ sūn: ['搎', '槂', '狲', '猻', '荪', '蓀', '蕵', '薞', '飧', '飱'],
+ 'róng náng nǎng': ['搑'],
+ 'péng bàng': ['搒'],
+ cuō: ['搓', '瑳', '磋', '蹉', '遳', '醝'],
+ 'kē è': ['搕'],
+ 'nù nuò nòu': ['搙'],
+ 'lā xié xiàn': ['搚'],
+ qiǔ: ['搝', '糗'],
+ 'xiǎn xiān': ['搟'],
+ 'jié zhé': ['搩'],
+ 'pán bān pó': ['搫'],
+ bān: [
+ '搬',
+ '攽',
+ '斑',
+ '斒',
+ '班',
+ '瘢',
+ '癍',
+ '肦',
+ '螁',
+ '螌',
+ '褩',
+ '辬',
+ '頒',
+ '颁',
+ '𨭉',
+ ],
+ 'zhì nái': ['搱'],
+ 'wā wǎ wà': ['搲'],
+ huá: ['搳', '撶', '滑', '猾', '蕐', '螖', '譁', '鏵', '铧', '驊', '骅', '鷨'],
+ 'qiāng qiǎng chēng': ['搶'],
+ 'tián shēn': ['搷'],
+ 'ná nuò': ['搻'],
+ èn: ['摁'],
+ 'shè niè': ['摄', '攝'],
+ bìn: ['摈', '擯', '殡', '殯', '膑', '臏', '髌', '髕', '髩', '鬂', '鬓', '鬢'],
+ 'shā sà shǎi': ['摋'],
+ 'chǎn sùn': ['摌'],
+ 'jiū liú liáo jiǎo náo': ['摎'],
+ 'féng pěng': ['摓'],
+ shuāi: ['摔'],
+ 'dì tú zhí': ['摕'],
+ 'qì jì chá': ['摖'],
+ 'sōu sǒng': ['摗'],
+ 'liǎn liàn': ['摙'],
+ 'gài xì': ['摡'],
+ 'hù chū': ['摢'],
+ tàng: ['摥', '烫', '燙', '鐋'],
+ 'nái zhì': ['摨'],
+ 'mó mā': ['摩'],
+ 'jiāng qiàng': ['摪'],
+ 'áo qiáo': ['摮'],
+ 'niè chè': ['摰'],
+ 'mán màn': ['摱'],
+ 'chàn cán': ['摲'],
+ 'sè mí sù': ['摵'],
+ 'biāo biào': ['摽'],
+ 'juē jué': ['撅'],
+ piē: ['撆', '暼', '氕', '瞥'],
+ 'piě piē': ['撇'],
+ 'zǎn zān zēn qián': ['撍'],
+ 'sā sǎ': ['撒'],
+ hòng: ['撔', '訌', '讧', '闀', '鬨'],
+ 'héng guàng': ['撗'],
+ niǎn: [
+ '撚',
+ '撵',
+ '攆',
+ '涊',
+ '焾',
+ '碾',
+ '簐',
+ '蹍',
+ '蹨',
+ '躎',
+ '輦',
+ '辇',
+ ],
+ 'chéng zhěng': ['撜'],
+ 'huī wéi': ['撝'],
+ cāo: ['撡', '操', '糙'],
+ 'xiāo sōu': ['撨'],
+ 'liáo liāo': ['撩'],
+ 'cuō zuǒ': ['撮'],
+ 'wěi tuǒ': ['撱'],
+ cuān: ['撺', '攛', '汆', '蹿', '躥', '鑹', '镩'],
+ 'qiào yāo jī': ['撽'],
+ 'zhuā wō': ['撾'],
+ 'lèi léi': ['擂'],
+ nǎng: ['擃', '攮', '曩', '灢'],
+ 'qíng jǐng': ['擏'],
+ kuǎi: ['擓', '蒯', '㧟'],
+ 'pǐ bò': ['擗'],
+ 'bò bāi': ['擘'],
+ 'jù jǐ': ['據'],
+ mēng: ['擝'],
+ 'sǒu sòu': ['擞'],
+ xǐng: ['擤', '箵', '醒'],
+ cā: ['擦'],
+ 'níng nǐng nìng': ['擰'],
+ 'zhì jié': ['擳'],
+ 'là liè': ['擸', '爉'],
+ 'sòu sǒu': ['擻'],
+ 'lì luò yuè': ['擽'],
+ 'tī zhāi zhì': ['擿'],
+ pān: ['攀', '潘', '眅', '萠'],
+ lèi: [
+ '攂',
+ '泪',
+ '涙',
+ '淚',
+ '禷',
+ '类',
+ '纇',
+ '蘱',
+ '酹',
+ '銇',
+ '錑',
+ '頛',
+ '頪',
+ '類',
+ '颣',
+ ],
+ 'cā sǎ': ['攃'],
+ 'jùn pèi': ['攈'],
+ 'lì luò': ['攊', '躒'],
+ 'là lài': ['攋', '櫴'],
+ 'lú luó': ['攎'],
+ 'zǎn cuán': ['攒'],
+ 'xiān jiān': ['攕'],
+ 'mí mǐ mó': ['攠'],
+ 'zǎn cuán zàn zuān': ['攢'],
+ zuàn: ['攥'],
+ 'lì shài': ['攦'],
+ 'lì luǒ': ['攭'],
+ 'guǐ guì': ['攱'],
+ 'jī qī yǐ': ['攲'],
+ fàng: ['放'],
+ 'wù móu': ['敄'],
+ 'chù shōu': ['敊'],
+ 'gé guó è': ['敋'],
+ 'duó duì': ['敓', '敚'],
+ 'duō què': ['敠', '敪'],
+ 'sàn sǎn': ['散'],
+ 'dūn duì': ['敦', '镦'],
+ 'qī yǐ jī': ['敧'],
+ 'xiào xué': ['敩'],
+ 'shù shǔ shuò': ['数', '數'],
+ 'ái zhú': ['敱', '敳'],
+ 'xiòng xuàn': ['敻'],
+ 'zhuó zhú': ['斀'],
+ 'yì dù': ['斁'],
+ 'lí tái': ['斄'],
+ 'fěi fēi': ['斐'],
+ 'yǔ zhōng': ['斔'],
+ 'dòu dǒu': ['斗'],
+ 'wò guǎn': ['斡'],
+ 'tǒu tiǎo': ['斢'],
+ dòu: [
+ '斣',
+ '梪',
+ '浢',
+ '痘',
+ '窦',
+ '竇',
+ '脰',
+ '荳',
+ '豆',
+ '逗',
+ '郖',
+ '酘',
+ '閗',
+ '闘',
+ '餖',
+ '饾',
+ '鬥',
+ '鬦',
+ '鬪',
+ '鬬',
+ '鬭',
+ ],
+ 'yín zhì': ['斦'],
+ 'chǎn jiè': ['斺'],
+ 'wū yū yú': ['於'],
+ 'yóu liú': ['斿'],
+ 'páng bàng': ['旁'],
+ 'máo mào': ['旄'],
+ 'pī bì': ['旇'],
+ 'xuán xuàn': ['旋'],
+ 'wú mó': ['无'],
+ zǎo: ['早', '枣', '栆', '棗', '澡', '璪', '薻', '藻', '蚤'],
+ gā: ['旮'],
+ 'gàn hàn': ['旰'],
+ 'tái yīng': ['旲'],
+ 'xū xù': ['旴'],
+ 'tūn zhùn': ['旽'],
+ 'wù wǔ': ['旿'],
+ 'pò pèi': ['昢'],
+ zòng: ['昮', '猔', '疭', '瘲', '粽', '糉', '糭', '縦'],
+ ǎi: ['昹', '毐', '矮', '蔼', '藹', '譪', '躷', '霭', '靄'],
+ 'huàng huǎng': ['晃'],
+ xuǎn: ['晅', '癣', '癬', '选', '選'],
+ 'xù kuā': ['晇'],
+ hǒng: ['晎'],
+ shài: ['晒', '曬'],
+ 'yūn yùn': ['晕', '煴'],
+ 'shèng chéng': ['晟', '椉', '盛'],
+ 'jǐng yǐng': ['景'],
+ shǎn: ['晱', '熌', '睒', '覢', '閃', '闪', '陕', '陝'],
+ 'qǐ dù': ['晵'],
+ 'ǎn àn yǎn': ['晻'],
+ 'wǎng wàng': ['暀'],
+ zàn: [
+ '暂',
+ '暫',
+ '瓉',
+ '瓒',
+ '瓚',
+ '禶',
+ '襸',
+ '讃',
+ '讚',
+ '賛',
+ '贊',
+ '赞',
+ '蹔',
+ '鄼',
+ '錾',
+ '鏨',
+ '饡',
+ ],
+ 'yùn yūn': ['暈'],
+ 'mín mǐn': ['暋'],
+ 'dǔ shǔ': ['暏'],
+ shǔ: [
+ '暑',
+ '曙',
+ '潻',
+ '癙',
+ '糬',
+ '署',
+ '薥',
+ '薯',
+ '藷',
+ '蜀',
+ '蠴',
+ '襡',
+ '襩',
+ '鱪',
+ '鱰',
+ '黍',
+ '鼠',
+ '鼡',
+ ],
+ 'jiǎn lán': ['暕'],
+ nuǎn: ['暖', '煗', '餪'],
+ 'bào pù': ['暴'],
+ 'xī xǐ': ['暿'],
+ 'pù bào': ['曝', '瀑'],
+ 'qū qǔ': ['紶'],
+ 'qǔ qū': ['曲'],
+ 'gèng gēng': ['更'],
+ 'hū hù': ['曶', '雽'],
+ 'zēng céng': ['曽', '橧'],
+ 'céng zēng': ['曾', '竲'],
+ 'cǎn qián jiàn': ['朁'],
+ 'qiè hé': ['朅'],
+ 'bì pí': ['朇', '禆', '笓', '裨'],
+ 'yǒu yòu': ['有'],
+ 'bān fén': ['朌', '鳻'],
+ 'fú fù': ['服', '洑'],
+ 'fěi kū': ['朏', '胐'],
+ 'qú xù chǔn': ['朐'],
+ 'juān zuī': ['朘'],
+ 'huāng máng wáng': ['朚'],
+ 'qī jī': ['期'],
+ 'tóng chuáng': ['朣', '橦'],
+ zhá: ['札', '牐', '箚', '蚻', '譗', '鍘', '铡', '閘', '闸'],
+ 'zhú shù shú': ['朮'],
+ 'shù shú zhú': ['术'],
+ 'zhū shú': ['朱'],
+ 'pǔ pò pō piáo': ['朴'],
+ 'dāo tiáo mù': ['朷'],
+ 'guǐ qiú': ['朹'],
+ xiǔ: ['朽', '滫', '潃', '糔'],
+ 'chéng chēng': ['朾'],
+ zá: ['杂', '沯', '砸', '襍', '雑', '雜', '雥', '韴'],
+ 'yú wū': ['杅'],
+ 'gān gǎn': ['杆'],
+ 'chā chà': ['杈'],
+ 'shān shā': ['杉'],
+ cūn: ['村', '皴', '竴', '膥', '踆', '邨'],
+ 'rèn ér': ['杒', '梕'],
+ 'sháo biāo': ['杓'],
+ 'dì duò': ['杕', '枤'],
+ 'gū gài': ['杚'],
+ 'yí zhì lí duò': ['杝'],
+ 'gàng gāng': ['杠'],
+ 'tiáo tiāo': ['条', '條'],
+ 'mà mǎ': ['杩'],
+ 'sì zhǐ xǐ': ['杫'],
+ 'yuán wán': ['杬', '蚖'],
+ 'bèi fèi': ['杮'],
+ 'shū duì': ['杸'],
+ 'niǔ chǒu': ['杻'],
+ 'wò yuè': ['枂', '臒'],
+ máo: [
+ '枆',
+ '毛',
+ '氂',
+ '渵',
+ '牦',
+ '矛',
+ '罞',
+ '茅',
+ '茆',
+ '蝥',
+ '蟊',
+ '軞',
+ '酕',
+ '鉾',
+ '錨',
+ '锚',
+ '髦',
+ '鶜',
+ ],
+ 'pī mì': ['枈'],
+ àng: ['枊', '盎', '醠'],
+ 'fāng bìng': ['枋'],
+ 'hù dǐ': ['枑'],
+ xín: ['枔', '襑', '鐔', '鬵'],
+ 'yāo yǎo': ['枖'],
+ 'ě è': ['枙'],
+ 'zhī qí': ['枝'],
+ 'cōng zōng': ['枞', '樅'],
+ 'xiān zhēn': ['枮'],
+ 'tái sì': ['枱'],
+ 'gǒu jǔ gōu': ['枸'],
+ 'bāo fú': ['枹'],
+ 'yì xiè': ['枻', '栧'],
+ 'tuó duò': ['柁', '馱', '駄', '驮'],
+ 'yí duò lí': ['柂'],
+ 'nǐ chì': ['柅'],
+ 'pán bàn': ['柈', '跘'],
+ 'yǎng yàng yāng yīng': ['柍'],
+ 'fù fū fǔ': ['柎'],
+ 'bǎi bó bò': ['柏'],
+ mǒu: ['某'],
+ 'sháo shào': ['柖'],
+ zhè: ['柘', '樜', '浙', '淛', '蔗', '蟅', '這', '鷓', '鹧', '䗪'],
+ 'yòu yóu': ['柚', '櫾'],
+ 'guì jǔ': ['柜'],
+ 'zhà zuò': ['柞'],
+ 'dié zhì': ['柣', '眰'],
+ 'zhā zǔ zū': ['柤'],
+ 'chá zhā': ['查', '査'],
+ 'āo ào': ['柪', '軪'],
+ 'bā fú pèi bó biē': ['柭'],
+ 'duò zuó wù': ['柮'],
+ 'bì bié': ['柲'],
+ 'zhù chù': ['柷'],
+ 'bēi pēi': ['柸'],
+ 'shì fèi': ['柹'],
+ 'shān zhà shi cè': ['栅'],
+ 'lì yuè': ['栎', '櫟'],
+ 'qì qiè': ['栔', '砌'],
+ 'qī xī': ['栖', '蹊'],
+ 'guā kuò': ['栝'],
+ 'bīng bēn': ['栟'],
+ 'xiào jiào': ['校'],
+ 'jiàn zùn': ['栫', '袸'],
+ 'yǒu yù': ['栯'],
+ 'hé hú': ['核'],
+ gēn: ['根', '跟'],
+ 'zhī yì': ['栺'],
+ 'gé gē': ['格'],
+ 'héng háng': ['桁'],
+ 'guàng guāng': ['桄'],
+ 'yí tí': ['桋', '荑'],
+ sāng: ['桑', '桒', '槡'],
+ 'jú jié': ['桔'],
+ 'yú móu': ['桙'],
+ 'ráo náo': ['桡', '橈'],
+ 'guì huì': ['桧', '檜'],
+ 'chén zhèn': ['桭'],
+ 'tīng yíng': ['桯'],
+ 'bó po': ['桲'],
+ 'bèn fàn': ['桳'],
+ 'fēng fèng': ['桻', '葑'],
+ 'sù yìn': ['梀'],
+ 'tǐng tìng': ['梃'],
+ 'xuān juān xié': ['梋'],
+ 'tú chá': ['梌'],
+ 'āo yòu': ['梎'],
+ kuǎn: ['梡', '欵', '款', '歀'],
+ 'shāo sào': ['梢'],
+ 'qín chén cén': ['梣'],
+ 'lí sì qǐ': ['梩'],
+ 'chān yán': ['梴'],
+ 'bīn bīng': ['梹', '槟', '檳'],
+ 'táo chóu dào': ['梼'],
+ 'cōng sōng': ['棇'],
+ 'gùn hùn': ['棍'],
+ 'dé zhé': ['棏'],
+ 'pái bèi pèi': ['棑'],
+ 'bàng pǒu bèi bēi': ['棓'],
+ 'dì dài tì': ['棣'],
+ sēn: ['森', '椮', '槮', '襂'],
+ 'rěn shěn': ['棯'],
+ 'léng lēng líng': ['棱'],
+ 'fú sù': ['棴'],
+ 'zōu sǒu': ['棷'],
+ zōu: [
+ '棸',
+ '箃',
+ '緅',
+ '諏',
+ '诹',
+ '邹',
+ '郰',
+ '鄒',
+ '鄹',
+ '陬',
+ '騶',
+ '驺',
+ '鯫',
+ '鲰',
+ '黀',
+ '齱',
+ '齺',
+ ],
+ 'zhào zhuō': ['棹'],
+ 'chēn shēn': ['棽'],
+ 'jiē qiè': ['椄'],
+ 'yǐ yī': ['椅'],
+ 'chóu zhòu diāo': ['椆'],
+ 'qiāng kōng': ['椌'],
+ 'zhuī chuí': ['椎'],
+ 'bēi pí': ['椑'],
+ mēn: ['椚'],
+ 'quān juàn quán': ['椦'],
+ 'duǒ chuán': ['椯'],
+ 'wěi huī': ['椲'],
+ 'jiǎ jiā': ['椵'],
+ 'hán jiān': ['椷'],
+ 'shèn zhēn': ['椹'],
+ 'yàn yà': ['椻'],
+ 'zhā chá': ['楂'],
+ 'guō kuǎ': ['楇'],
+ 'jí zhì': ['楖'],
+ 'kǔ hù': ['楛'],
+ 'yóu yǒu': ['楢'],
+ 'sǒng cōng': ['楤'],
+ 'yuán xuàn': ['楥'],
+ 'yǎng yàng yīng': ['楧'],
+ pián: ['楩', '胼', '腁', '賆', '蹁', '駢', '騈', '骈', '骿', '㛹'],
+ 'dié yè': ['楪'],
+ 'dùn shǔn': ['楯'],
+ 'còu zòu': ['楱'],
+ 'dì dǐ shì': ['楴'],
+ 'kǎi jiē': ['楷'],
+ 'róu ròu': ['楺'],
+ 'lè yuè': ['楽'],
+ 'wēn yùn': ['榅', '鞰'],
+ lǘ: ['榈', '櫚', '氀', '膢', '藘', '閭', '闾', '驢', '驴'],
+ shén: ['榊', '神', '鉮', '鰰', '𬬹'],
+ 'bī pi': ['榌'],
+ 'zhǎn niǎn zhèn': ['榐'],
+ 'fú fù bó': ['榑'],
+ 'jiàn jìn': ['榗'],
+ 'bǎng bàng': ['榜'],
+ 'shā xiè': ['榝', '樧'],
+ nòu: ['槈', '耨', '鎒', '鐞'],
+ 'qiǎn lián xiàn': ['槏'],
+ gàng: ['槓', '焵', '焹', '筻', '鿍'],
+ gāo: [
+ '槔',
+ '槹',
+ '橰',
+ '櫜',
+ '睾',
+ '篙',
+ '糕',
+ '羔',
+ '臯',
+ '韟',
+ '餻',
+ '高',
+ '髙',
+ '鷎',
+ '鷱',
+ '鼛',
+ ],
+ 'diān zhěn zhēn': ['槙'],
+ 'kǎn jiàn': ['槛'],
+ 'xí dié': ['槢'],
+ 'jī guī': ['槣'],
+ 'róng yōng': ['槦'],
+ 'tuán shuàn quán': ['槫'],
+ 'qì sè': ['槭'],
+ 'cuī zhǐ': ['槯'],
+ 'yǒu chǎo': ['槱'],
+ 'màn wàn': ['槾'],
+ 'lí chī': ['樆'],
+ 'léi lěi': ['樏', '櫑', '礌'],
+ 'cháo jiǎo chāo': ['樔'],
+ 'chēng táng': ['樘'],
+ 'jiū liáo': ['樛'],
+ 'mó mú': ['模'],
+ 'niǎo mù': ['樢'],
+ 'héng hèng': ['横', '橫'],
+ xuě: ['樰', '膤', '艝', '轌', '雪', '鱈', '鳕'],
+ 'fá fèi': ['橃'],
+ rùn: ['橍', '润', '潤', '膶', '閏', '閠', '闰'],
+ 'zhǎn jiǎn': ['橏'],
+ shùn: ['橓', '瞚', '瞬', '舜', '蕣', '順', '顺', '鬊'],
+ 'tuí dūn': ['橔'],
+ 'táng chēng': ['橖'],
+ 'sù qiū': ['橚'],
+ 'tán diàn': ['橝'],
+ 'fén fèn fèi': ['橨'],
+ 'rǎn yān': ['橪'],
+ 'cū chu': ['橻'],
+ 'shū qiāo': ['橾'],
+ 'píng bò': ['檘'],
+ 'zhái shì tú': ['檡'],
+ 'biǎo biāo': ['檦'],
+ 'qiān lián': ['檶'],
+ 'nǐ mí': ['檷'],
+ 'jiàn kǎn': ['檻'],
+ 'nòu ruǎn rú': ['檽'],
+ 'jī jì': ['櫅', '禨'],
+ 'huǎng guǒ gǔ': ['櫎'],
+ 'lǜ chū': ['櫖'],
+ 'miè mèi': ['櫗'],
+ ōu: [
+ '櫙',
+ '欧',
+ '歐',
+ '殴',
+ '毆',
+ '瓯',
+ '甌',
+ '膒',
+ '藲',
+ '謳',
+ '讴',
+ '鏂',
+ '鴎',
+ '鷗',
+ '鸥',
+ ],
+ 'zhù zhuó': ['櫡'],
+ 'jué jì': ['櫭'],
+ 'huái guī': ['櫰'],
+ 'chán zhàn': ['欃'],
+ 'wéi zuì': ['欈'],
+ cáng: ['欌', '鑶'],
+ 'yù yì': ['欥'],
+ 'chù qù xì': ['欪'],
+ 'kài ài': ['欬'],
+ 'yì yīn': ['欭'],
+ 'xì kài': ['欯'],
+ 'shuò sòu': ['欶'],
+ 'ǎi ēi éi ěi èi ê̄ ế ê̌ ề': ['欸'],
+ 'qī yī': ['欹'],
+ 'chuā xū': ['欻'],
+ 'chǐ chuài': ['欼'],
+ 'kǎn qiàn': ['欿'],
+ 'kǎn kè': ['歁'],
+ 'chuǎn chuán': ['歂'],
+ 'yīn yān': ['歅'],
+ 'jìn qūn': ['歏'],
+ pēn: ['歕'],
+ 'xū chuā': ['歘'],
+ 'xī shè': ['歙'],
+ 'liǎn hān': ['歛'],
+ 'zhì chí': ['歭'],
+ 'sè shà': ['歰'],
+ sǐ: ['死'],
+ 'wěn mò': ['歾'],
+ piǎo: ['殍', '皫', '瞟', '醥', '顠'],
+ 'qíng jìng': ['殑'],
+ 'fǒu bó': ['殕'],
+ 'zhí shi': ['殖'],
+ 'yè yān yàn': ['殗'],
+ 'hūn mèi': ['殙'],
+ chòu: ['殠', '臰', '遚'],
+ 'kuì huì': ['殨', '溃', '潰'],
+ cuàn: ['殩', '熶', '爨', '窜', '竄', '篡', '簒'],
+ 'yīn yān yǐn': ['殷'],
+ 'qìng kēng shēng': ['殸'],
+ 'yáo xiáo xiào': ['殽'],
+ 'gū gǔ': ['毂', '蛄'],
+ 'guàn wān': ['毌'],
+ 'dú dài': ['毒'],
+ 'xún xùn': ['毥'],
+ mú: ['毪', '氁'],
+ 'dòu nuò': ['毭'],
+ 'sāi suī': ['毸'],
+ lu: ['氇'],
+ sào: ['氉', '瘙', '矂', '髞'],
+ 'shì zhī': ['氏'],
+ 'dī dǐ': ['氐'],
+ 'máng méng': ['氓'],
+ 'yáng rì': ['氜'],
+ shuǐ: ['水', '氵', '氺', '閖'],
+ 'zhěng chéng zhèng': ['氶'],
+ tǔn: ['氽'],
+ 'fán fàn': ['氾'],
+ 'guǐ jiǔ': ['氿'],
+ 'bīn pà pā': ['汃'],
+ 'zhuó què': ['汋'],
+ 'dà tài': ['汏'],
+ pìn: ['汖', '牝', '聘'],
+ 'hàn hán': ['汗', '馯'],
+ tu: ['汢'],
+ 'tāng shāng': ['汤', '湯'],
+ 'zhī jì': ['汥'],
+ 'gàn hán cén': ['汵'],
+ 'wèn mén': ['汶'],
+ 'fāng pāng': ['汸'],
+ 'hǔ huǎng': ['汻'],
+ 'niú yóu': ['汼'],
+ hàng: ['沆'],
+ 'shěn chén': ['沈'],
+ 'dùn zhuàn': ['沌'],
+ 'nǜ niǔ': ['沑'],
+ 'méi mò': ['沒', '没'],
+ 'tà dá': ['沓'],
+ 'mì wù': ['沕'],
+ 'hóng pāng': ['沗'],
+ 'shā shà': ['沙'],
+ 'zhuǐ zǐ': ['沝'],
+ 'ōu òu': ['沤', '漚'],
+ 'jǔ jù': ['沮'],
+ 'tuō duó': ['沰'],
+ 'mǐ lì': ['沵'],
+ 'yí chí': ['沶'],
+ 'xiè yì': ['泄'],
+ 'bó pō': ['泊'],
+ 'mì bì': ['泌', '秘'],
+ 'chù shè': ['泏'],
+ 'yōu yòu āo': ['泑'],
+ 'pēng píng': ['泙', '硑'],
+ 'pào pāo': ['泡'],
+ 'ní nì': ['泥', '秜'],
+ 'yuè sà': ['泧'],
+ 'jué xuè': ['泬', '疦'],
+ 'lóng shuāng': ['泷', '瀧'],
+ 'luò pō': ['泺', '濼'],
+ 'zé shì': ['泽', '澤'],
+ 'sǎ xǐ': ['洒'],
+ 'sè qì zì': ['洓'],
+ 'xǐ xiǎn': ['洗'],
+ 'kǎo kào': ['洘'],
+ 'àn yàn è': ['洝'],
+ 'lěi lèi': ['洡'],
+ 'qiè jié': ['洯'],
+ 'qiǎn jiān': ['浅'],
+ 'jì jǐ': ['济', '済', '濟', '纪'],
+ 'hǔ xǔ': ['浒', '滸'],
+ 'jùn xùn': ['浚', '濬'],
+ 'yǐng chéng yíng': ['浧'],
+ 'liàn lì': ['浰'],
+ 'féng hóng': ['浲', '溄'],
+ 'jiǒng jiōng': ['浻'],
+ 'suī něi': ['浽'],
+ 'yǒng chōng': ['涌'],
+ 'tūn yūn': ['涒'],
+ 'wō guō': ['涡', '渦'],
+ hēng: ['涥', '脝'],
+ 'zhǎng zhàng': ['涨', '漲'],
+ 'shòu tāo': ['涭'],
+ shuàn: ['涮', '腨'],
+ 'kōng náng': ['涳'],
+ 'wò wǎn yuān': ['涴'],
+ 'tuō tuò': ['涶'],
+ wō: ['涹', '猧', '窝', '窩', '莴', '萵', '蜗', '蝸', '踒'],
+ 'qiè jí': ['淁'],
+ 'guǒ guàn': ['淉'],
+ 'lín lìn': ['淋', '獜', '疄'],
+ 'tǎng chǎng': ['淌'],
+ 'nào chuò zhuō': ['淖'],
+ 'péng píng': ['淜'],
+ féi: ['淝', '肥', '腓', '蜰'],
+ 'pì pèi': ['淠'],
+ 'niǎn shěn': ['淰'],
+ 'biāo hǔ': ['淲'],
+ 'chún zhūn': ['淳'],
+ 'hùn hún': ['混'],
+ qiǎn: ['淺', '繾', '缱', '肷', '膁', '蜸', '譴', '谴', '遣', '鑓'],
+ 'wèn mín': ['渂'],
+ 'rè ruò luò': ['渃'],
+ 'dú dòu': ['渎', '瀆', '读'],
+ 'jiàn jiān': ['渐', '溅', '漸', '濺'],
+ 'miǎn shéng': ['渑', '澠'],
+ 'nuǎn nuán': ['渜'],
+ 'qiú wù': ['渞'],
+ 'tíng tīng': ['渟'],
+ 'dì tí dī': ['渧'],
+ 'gǎng jiǎng': ['港'],
+ 'hōng qìng': ['渹'],
+ tuān: ['湍', '煓'],
+ 'huì mǐn xū': ['湏'],
+ 'xǔ xù': ['湑'],
+ pén: ['湓', '瓫', '盆', '葐'],
+ 'mǐn hūn': ['湣'],
+ 'tuàn nuǎn': ['湪'],
+ 'qiū jiǎo': ['湫', '湬'],
+ 'yān yīn': ['湮'],
+ 'bàn pán': ['湴'],
+ 'zhuāng hún': ['湷'],
+ 'yàn guì': ['溎'],
+ 'lián liǎn nián xián xiàn': ['溓'],
+ 'dá tǎ': ['溚', '鿎'],
+ 'liū liù': ['溜', '澑', '蹓'],
+ lùn: ['溣'],
+ mǎ: [
+ '溤',
+ '犸',
+ '獁',
+ '玛',
+ '瑪',
+ '码',
+ '碼',
+ '遤',
+ '鎷',
+ '馬',
+ '马',
+ '鰢',
+ '鷌',
+ ],
+ 'zhēn qín': ['溱'],
+ 'nì niào': ['溺'],
+ 'chù xù': ['滀', '畜'],
+ 'wěng wēng': ['滃'],
+ 'hào xuè': ['滈'],
+ 'qì xì xiē': ['滊'],
+ 'xíng yíng': ['滎'],
+ 'zé hào': ['滜'],
+ 'piāo piào piǎo': ['漂'],
+ 'cóng sǒng': ['漎'],
+ 'féng péng': ['漨'],
+ 'luò tà': ['漯'],
+ 'pēng bēn': ['漰'],
+ 'chóng shuāng': ['漴'],
+ 'huǒ kuò huò': ['漷'],
+ 'liáo liú': ['漻'],
+ 'cuǐ cuī': ['漼'],
+ 'cóng zǒng': ['潀'],
+ 'cóng zōng': ['潈'],
+ 'pì piē': ['潎'],
+ 'dàng xiàng': ['潒'],
+ 'huáng guāng': ['潢'],
+ 'liáo lào lǎo': ['潦'],
+ 'cōng zòng': ['潨'],
+ 'zhí zhì': ['潪'],
+ 'tān shàn': ['潬'],
+ 'tú zhā': ['潳'],
+ 'sàn sǎ': ['潵'],
+ hēi: ['潶', '黑', '黒', '𬭶'],
+ 'chéng dèng': ['澄', '瀓'],
+ 'cūn cún': ['澊'],
+ 'péng pēng': ['澎'],
+ 'hòng gǒng': ['澒', '銾'],
+ 'wàn màn': ['澫'],
+ 'kuài huì': ['澮'],
+ 'guō wō': ['濄'],
+ 'pēn fén': ['濆'],
+ 'jí shà': ['濈'],
+ 'huì huò': ['濊'],
+ 'dǐng tìng': ['濎'],
+ 'mǐ nǐ': ['濔'],
+ 'bì pì': ['濞'],
+ 'cuì zuǐ': ['濢'],
+ 'hù huò': ['濩'],
+ 'ǎi kài kè': ['濭'],
+ 'wěi duì': ['濻', '瀢'],
+ 'zàn cuán': ['濽', '灒'],
+ 'yǎng yàng': ['瀁'],
+ 'wǎng wāng': ['瀇'],
+ 'mò miè': ['瀎', '眜'],
+ suǐ: ['瀡', '膸', '髓'],
+ 'huái wāi': ['瀤'],
+ 'zùn jiàn': ['瀳'],
+ 'yīng yǐng yìng': ['瀴'],
+ 'ráng ràng': ['瀼'],
+ shuàng: ['灀'],
+ 'zhuó jiào zé': ['灂'],
+ sǎ: ['灑', '訯', '靸'],
+ 'luán luàn': ['灓'],
+ 'dǎng tǎng': ['灙'],
+ 'xún quán quàn': ['灥'],
+ 'huǒ biāo': ['灬'],
+ 'zhà yù': ['灹'],
+ 'fén bèn': ['炃'],
+ 'jiǒng guì': ['炅'],
+ 'pàng fēng': ['炐'],
+ quē: ['炔', '缺', '缼', '蒛'],
+ biān: [
+ '炞',
+ '煸',
+ '甂',
+ '砭',
+ '笾',
+ '箯',
+ '籩',
+ '編',
+ '编',
+ '蝙',
+ '邉',
+ '邊',
+ '鍽',
+ '鞭',
+ '鯾',
+ '鯿',
+ '鳊',
+ ],
+ 'zhāo zhào': ['炤'],
+ 'zhuō chù': ['炪'],
+ 'pào páo bāo': ['炮'],
+ 'páo fǒu': ['炰'],
+ 'shǎn qián shān': ['炶'],
+ 'zhà zhá': ['炸'],
+ 'jiǎo yào': ['烄'],
+ quǎn: ['烇', '犬', '犭', '畎', '綣', '绻', '虇'],
+ 'yàng yáng': ['烊'],
+ 'lào luò': ['烙'],
+ 'huí huǐ': ['烠'],
+ rè: ['热', '熱'],
+ 'fú páo': ['烰'],
+ 'xiè chè': ['烲', '焎'],
+ 'yàn shān': ['烻'],
+ 'hūn xūn': ['焄'],
+ kào: ['焅', '犒', '銬', '铐', '靠', '鮳', '鯌', '鲓', '㸆'],
+ 'juān yè': ['焆'],
+ 'jùn qū': ['焌'],
+ 'tāo dào': ['焘'],
+ 'chǎo jù': ['焣'],
+ 'wò ài': ['焥'],
+ 'zǒng cōng': ['焧'],
+ 'xī yì': ['焬'],
+ 'xìn xīn': ['焮'],
+ 'chāo zhuō': ['焯'],
+ 'xiǒng yīng': ['焸', '焽'],
+ kuǐ: ['煃', '跬', '蹞', '頍', '𫠆'],
+ 'huī yùn xūn': ['煇'],
+ 'jiǎo qiāo': ['煍'],
+ 'qián shǎn shān': ['煔'],
+ 'xī yí': ['煕'],
+ 'shà shā': ['煞'],
+ 'yè zhá': ['煠'],
+ 'yáng yàng': ['煬'],
+ 'ēn yūn': ['煾'],
+ 'yūn yǔn': ['熅'],
+ 'hè xiāo': ['熇'],
+ xióng: ['熊', '熋', '雄'],
+ 'xūn xùn': ['熏', '爋'],
+ gòng: ['熕', '貢', '贡'],
+ liū: ['熘'],
+ 'cōng zǒng': ['熜'],
+ 'lù āo': ['熝'],
+ 'shú shóu': ['熟'],
+ 'fēng péng': ['熢'],
+ 'cuǐ suī': ['熣'],
+ tēng: ['熥', '膯', '鼟'],
+ 'yùn yù': ['熨'],
+ 'áo āo': ['熬'],
+ 'hàn rǎn': ['熯'],
+ 'ōu ǒu': ['熰'],
+ 'huáng huǎng': ['熿'],
+ 'chǎn dǎn chàn': ['燀'],
+ 'jiāo zhuó qiáo jué': ['燋'],
+ 'yàn yān': ['燕'],
+ 'tài liè': ['燤'],
+ āo: ['爊'],
+ 'yàn xún': ['爓'],
+ 'jué jiào': ['爝', '覐', '覚', '覺', '觉'],
+ 'lǎn làn': ['爦'],
+ 'zhuǎ zhǎo': ['爪'],
+ 'zhǎo zhuǎ': ['爫'],
+ 'fù fǔ': ['父'],
+ diē: ['爹', '褺', '跌'],
+ zāng: ['牂', '羘', '臧', '賍', '賘', '贓', '贜', '赃', '髒'],
+ 'piàn piān': ['片'],
+ 'biān miàn': ['牑'],
+ bǎng: ['牓', '綁', '绑'],
+ 'yǒu yōng': ['牗'],
+ 'chēng chèng': ['牚', '竀'],
+ niú: ['牛', '牜'],
+ 'jiū lè': ['牞'],
+ 'mù móu': ['牟'],
+ māng: ['牤'],
+ 'gē qiú': ['牫'],
+ 'yòu chōu': ['牰'],
+ 'tè zhí': ['犆'],
+ bēn: ['犇', '錛', '锛'],
+ 'jiān qián': ['犍', '玪'],
+ má: ['犘', '痲', '蔴', '蟇', '麻'],
+ 'máo lí': ['犛'],
+ 'bá quǎn': ['犮'],
+ 'zhuó bào': ['犳'],
+ 'àn hān': ['犴'],
+ 'kàng gǎng': ['犺'],
+ 'pèi fèi': ['犻'],
+ 'fān huān': ['犿'],
+ kuáng: ['狂', '狅', '誑', '诳', '軖', '軠', '鵟', '𫛭'],
+ 'yí quán chí': ['狋'],
+ 'xīng shēng': ['狌'],
+ 'tuó yí': ['狏'],
+ kǔ: ['狜', '苦'],
+ 'huán huān': ['狟'],
+ 'hé mò': ['狢'],
+ 'tà shì': ['狧'],
+ 'máng dòu': ['狵'],
+ 'xī shǐ': ['狶'],
+ suān: ['狻', '痠', '酸'],
+ 'bài pí': ['猈'],
+ 'jiān yàn': ['猏', '豣'],
+ 'yī yǐ': ['猗'],
+ 'yá wèi': ['猚'],
+ cāi: ['猜'],
+ 'māo máo': ['猫', '貓'],
+ 'chuàn chuān': ['猭'],
+ 'tuān tuàn': ['猯', '貒'],
+ 'yà jiá qiè': ['猰'],
+ 'hè xiē gé hài': ['猲'],
+ 'biān piàn': ['猵', '獱'],
+ 'bó pò': ['猼'],
+ 'háo gāo': ['獋'],
+ 'fén fèn': ['獖'],
+ 'yào xiāo': ['獟'],
+ 'shuò xī': ['獡'],
+ 'gé liè xiē': ['獦'],
+ 'nòu rú': ['獳'],
+ 'náo nǎo yōu': ['獶'],
+ ráng: ['獽', '瓤', '禳', '穣', '穰', '蘘', '躟', '鬤'],
+ 'náo yōu': ['獿'],
+ 'lǜ shuài': ['率'],
+ 'wáng wàng': ['王'],
+ 'yáng chàng': ['玚'],
+ 'mín wén': ['玟'],
+ 'bīn fēn': ['玢'],
+ 'mén yǔn': ['玧'],
+ 'qiāng cāng': ['玱', '瑲', '篬'],
+ 'án gān': ['玵'],
+ 'xuán xián': ['玹'],
+ 'cī cǐ': ['玼', '跐'],
+ 'yí tāi': ['珆'],
+ 'zǔ jù': ['珇'],
+ fà: ['珐', '琺', '蕟', '髪', '髮'],
+ 'yín kèn': ['珢'],
+ 'huī hún': ['珲'],
+ 'xuán qióng': ['琁'],
+ 'fú fū': ['琈'],
+ 'bǐng pín': ['琕'],
+ 'cuì sè': ['琗'],
+ 'yù wéi': ['琟'],
+ 'tiǎn tiàn': ['琠'],
+ 'zhuó zuó': ['琢'],
+ 'běng pěi': ['琣'],
+ guǎn: ['琯', '璭', '痯', '筦', '管', '舘', '輨', '錧', '館', '馆', '鳤'],
+ 'hún huī': ['琿'],
+ 'xié jiē': ['瑎'],
+ 'chàng dàng yáng': ['瑒'],
+ 'tiàn zhèn': ['瑱'],
+ 'bīn pián': ['瑸', '璸'],
+ 'tú shū': ['瑹'],
+ cuǐ: ['璀', '皠', '趡'],
+ 'zǎo suǒ': ['璅'],
+ 'jué qióng': ['璚'],
+ 'lú fū': ['璷'],
+ 'jì zī': ['璾'],
+ suí: ['瓍', '綏', '绥', '遀', '随', '隨', '髄'],
+ 'mí xǐ': ['瓕'],
+ 'qióng wěi wèi': ['瓗'],
+ 'huán yè yà': ['瓛'],
+ 'bó páo': ['瓟'],
+ 'zhí hú': ['瓡'],
+ piáo: ['瓢', '闝'],
+ 'wǎ wà': ['瓦'],
+ 'xiáng hóng': ['瓨'],
+ wèng: ['瓮', '甕', '罋', '蕹', '齆'],
+ 'shèn shén': ['甚'],
+ ruí: ['甤', '緌', '蕤'],
+ yòng: ['用', '砽', '苚', '蒏', '醟', '㶲'],
+ shuǎi: ['甩'],
+ béng: ['甭', '甮'],
+ 'yóu zhá': ['甴'],
+ 'diàn tián shèng': ['甸'],
+ 'tǐng dīng': ['町', '甼'],
+ 'zāi zī': ['甾'],
+ 'bì qí': ['畁'],
+ 'dá fú': ['畗'],
+ 'cè jì': ['畟'],
+ 'zāi zī tián': ['畠'],
+ 'zhì chóu shì': ['畤'],
+ 'fān pān': ['畨', '番'],
+ 'shē yú': ['畬'],
+ 'dāng dàng dǎng': ['當'],
+ 'jiāng qiáng': ['疆'],
+ 'pǐ yǎ shū': ['疋'],
+ 'jié qiè': ['疌'],
+ 'yí nǐ': ['疑'],
+ nè: ['疒', '眲', '訥', '讷'],
+ 'gē yì': ['疙'],
+ 'nüè yào': ['疟', '瘧'],
+ 'lì lài': ['疠', '癘'],
+ 'yǎ xiā': ['疨'],
+ xuē: ['疶', '蒆', '薛', '辥', '辪', '靴', '鞾'],
+ 'dǎn da': ['疸'],
+ 'fá biǎn': ['疺'],
+ 'fèi féi': ['疿', '痱'],
+ 'shān diàn': ['痁'],
+ 'téng chóng': ['痋'],
+ 'tōng tóng': ['痌'],
+ 'wěi yòu yù': ['痏'],
+ 'tān shǐ': ['痑'],
+ 'pū pù': ['痡', '鋪'],
+ 'bēng péng': ['痭'],
+ 'má lìn': ['痳'],
+ 'tiǎn diàn': ['痶'],
+ 'ān yè è': ['痷'],
+ 'kē ē': ['痾'],
+ 'zhì chì': ['瘈'],
+ 'jiǎ xiá xiā': ['瘕'],
+ 'lěi huì': ['瘣'],
+ 'chài cuó': ['瘥'],
+ 'diān chēn': ['瘨'],
+ 'da dá': ['瘩'],
+ 'biě biē': ['瘪'],
+ qué: ['瘸'],
+ 'dàn dān': ['癉'],
+ 'guì wēi': ['癐'],
+ 'nòng nóng': ['癑'],
+ 'biē biě': ['癟'],
+ 'bō bǒ': ['癷'],
+ bái: ['白'],
+ 'jí bī': ['皀'],
+ 'de dì dí dī': ['的'],
+ 'pā bà': ['皅'],
+ 'gāo háo': ['皋'],
+ 'gāo yáo': ['皐'],
+ 'lì luò bō': ['皪'],
+ 'zhā cǔ': ['皻'],
+ 'zhāo zhǎn dǎn': ['皽'],
+ 'jiān jiàn': ['监', '監', '鋻', '间', '鞬'],
+ 'gài gě hé': ['盖'],
+ 'máng wàng': ['盳'],
+ yuǎn: ['盶', '逺', '遠'],
+ 'tián xián': ['盷'],
+ 'xiāng xiàng': ['相'],
+ dǔn: ['盹', '趸', '躉'],
+ 'xì pǎn': ['盻'],
+ 'shěng xǐng': ['省'],
+ 'yún hùn': ['眃'],
+ 'miǎn miàn': ['眄'],
+ 'kàn kān': ['看'],
+ 'yìng yāng yǎng': ['眏'],
+ 'yǎo āo ǎo': ['眑'],
+ 'jū xū kōu': ['眗'],
+ 'yí chì': ['眙'],
+ 'dié tì': ['眣'],
+ 'bǐng fǎng': ['眪'],
+ 'pàng pán': ['眫'],
+ 'mī mí': ['眯', '瞇'],
+ 'xuàn shùn xún': ['眴'],
+ tiào: ['眺', '粜', '糶', '覜', '趒'],
+ 'zhe zhuó zháo zhāo': ['着'],
+ 'qiáo shào xiāo': ['睄'],
+ 'cuó zhuài': ['睉'],
+ gùn: ['睔', '謴'],
+ 'suì zuì': ['睟'],
+ 'pì bì': ['睥', '稫', '辟'],
+ 'yì zé gāo': ['睪'],
+ 'xǐng xìng': ['睲'],
+ 'guì wèi kuì': ['瞆'],
+ 'kòu jì': ['瞉'],
+ 'qióng huán': ['瞏'],
+ 'mán mén': ['瞒', '瞞'],
+ 'diāo dōu': ['瞗'],
+ 'lou lóu lǘ': ['瞜'],
+ 'shùn rún': ['瞤'],
+ 'liào liǎo': ['瞭', '钌'],
+ 'jiàn xián': ['瞯'],
+ 'wǔ mí': ['瞴'],
+ 'guì kuì': ['瞶'],
+ 'nǐng chēng': ['矃'],
+ 'huò yuè': ['矆'],
+ 'mēng méng': ['矇'],
+ 'kuàng guō': ['矌'],
+ 'guàn quán': ['矔'],
+ 'mǎn mán': ['矕'],
+ 'jīn guān qín': ['矜'],
+ 'jīn qín guān': ['矝'],
+ 'yù xù jué': ['矞'],
+ 'jiǎo jiáo': ['矫', '矯'],
+ duǎn: ['短'],
+ 'shí dàn': ['石'],
+ 'gāng qiāng kòng': ['矼'],
+ 'huā xū': ['砉'],
+ 'pīn bīn fēn': ['砏'],
+ 'yán yàn': ['研', '硏'],
+ 'luǒ kē': ['砢'],
+ 'fú fèi': ['砩', '笰'],
+ 'zhǔ zhù': ['砫'],
+ 'lá lì lā': ['砬'],
+ 'kuāng guāng': ['硄'],
+ 'gè luò': ['硌'],
+ 'shuò shí': ['硕', '碩'],
+ 'wèi wéi ái': ['硙'],
+ 'què kè kù': ['硞'],
+ 'mǎng bàng': ['硥'],
+ 'luò lòng': ['硦'],
+ 'yǒng tóng': ['硧'],
+ nüè: ['硸', '虐'],
+ 'kēng kěng': ['硻'],
+ 'yān yǎn': ['硽'],
+ 'zhuì chuí duǒ': ['硾'],
+ 'kōng kòng': ['硿'],
+ 'zòng cóng': ['碂'],
+ 'jiān zhàn': ['碊'],
+ 'lù liù': ['碌', '陆'],
+ 'què xī': ['碏'],
+ 'lún lǔn lùn': ['碖'],
+ 'náo gāng': ['碙'],
+ 'jié yà': ['碣'],
+ 'wèi wěi': ['碨'],
+ 'tí dī': ['碮'],
+ 'chá chā': ['碴'],
+ 'qiāo què': ['碻'],
+ 'sù xiè': ['碿'],
+ 'liú liù': ['磂', '遛', '鎦', '馏'],
+ 'sī tí': ['磃'],
+ 'bàng páng': ['磅'],
+ 'huá kě gū': ['磆'],
+ 'wěi kuǐ': ['磈'],
+ 'xiá qià yà': ['磍'],
+ 'lián qiān': ['磏'],
+ 'wèi ái gài': ['磑'],
+ 'lá lā': ['磖'],
+ 'áo qiāo': ['磝'],
+ 'pēng pèng': ['磞', '閛'],
+ 'yīn yǐn': ['磤'],
+ 'lěi léi': ['磥'],
+ 'mó mò': ['磨'],
+ 'qì zhú': ['磩'],
+ 'láo luò': ['磱'],
+ 'pán bō': ['磻'],
+ 'jí shé': ['磼'],
+ 'hé qiāo qiào': ['礉'],
+ 'kè huò': ['礊'],
+ 'què hú': ['礐'],
+ 'è qì': ['礘'],
+ cǎ: ['礤', '礸'],
+ 'xián xín': ['礥'],
+ 'léi lěi lèi': ['礧'],
+ 'yán yǎn': ['礹'],
+ 'qí zhǐ': ['祇', '蚔'],
+ 'bēng fāng': ['祊'],
+ 'bì mì': ['祕'],
+ suàn: ['祘', '笇', '筭', '算', '蒜'],
+ 'piào piāo': ['票'],
+ 'jì zhài': ['祭'],
+ 'shuì lèi': ['祱'],
+ 'jìn jīn': ['禁'],
+ 'chán shàn': ['禅'],
+ 'yáng shāng': ['禓'],
+ 'zhī zhǐ tí': ['禔'],
+ 'shàn chán': ['禪'],
+ 'yú yù ǒu': ['禺'],
+ 'zǐ zì': ['秄'],
+ 'chá ná': ['秅'],
+ 'zhǒng zhòng chóng': ['种'],
+ 'hào mào': ['秏'],
+ 'kù kū': ['秙'],
+ zū: ['租', '葅'],
+ chèng: ['秤', '穪'],
+ 'huó kuò': ['秮', '秳'],
+ 'chēng chèn chèng': ['称', '稱'],
+ 'shì zhì': ['秲', '銴'],
+ 'fù pū': ['秿'],
+ 'xùn zè': ['稄'],
+ 'tú shǔ': ['稌'],
+ 'zhùn zhǔn': ['稕'],
+ 'jī qí': ['稘', '綨', '觭'],
+ 'léng líng': ['稜'],
+ 'zuì zú sū': ['稡'],
+ 'xì qiè': ['稧', '郄'],
+ 'zhǒng zhòng': ['種'],
+ 'zōng zǒng': ['稯'],
+ 'xián jiān liàn': ['稴'],
+ 'zī jiū': ['稵'],
+ 'jī qǐ': ['稽'],
+ ròng: ['穃'],
+ 'shān cǎn cēn': ['穇'],
+ 'mén méi': ['穈'],
+ 'jǐ jì': ['穖'],
+ 'xiāo rào': ['穘'],
+ 'zhuō bó': ['穛'],
+ 'tóng zhǒng zhòng': ['穜'],
+ zuō: ['穝'],
+ 'biāo pāo': ['穮', '藨'],
+ 'zhuō jué': ['穱'],
+ 'cuán zàn': ['穳'],
+ 'kōng kòng kǒng': ['空'],
+ 'yū yǔ': ['穻'],
+ zhǎi: ['窄', '鉙'],
+ báo: ['窇', '雹'],
+ 'kū zhú': ['窋'],
+ 'jiào liáo liù': ['窌'],
+ 'wā guī': ['窐'],
+ 'tiǎo yáo': ['窕'],
+ 'xūn yìn': ['窨'],
+ 'yà yē': ['窫'],
+ 'tián diān yǎn': ['窴'],
+ 'chāo kē': ['窼'],
+ 'kuǎn cuàn': ['窽', '窾'],
+ 'chù qì': ['竐'],
+ 'qǔ kǒu': ['竘'],
+ 'jìng zhěn': ['竧'],
+ 'kǎn kàn': ['竷'],
+ 'zhú dǔ': ['竺'],
+ 'lè jīn': ['竻'],
+ 'zhuì ruì': ['笍'],
+ 'háng hàng': ['笐'],
+ 'cén jìn hán': ['笒'],
+ 'dā xiá nà': ['笚'],
+ 'zé zuó': ['笮'],
+ 'lóng lǒng': ['笼', '篭', '籠', '躘', '龓'],
+ 'zhù zhú': ['筑', '築'],
+ 'dá dā': ['答', '荅'],
+ shāi: ['筛', '篩', '簁', '籭'],
+ 'yún jūn': ['筠'],
+ 'láng làng': ['筤', '郎', '阆'],
+ 'zhì zhǐ': ['筫'],
+ o: ['筽'],
+ 'póu bù fú pú': ['箁'],
+ 'pái bēi': ['箄'],
+ gè: ['箇', '虼', '鉻', '铬'],
+ 'tái chí': ['箈'],
+ 'guǎi dài': ['箉'],
+ 'zhào dào': ['箌'],
+ 'jīng qìng': ['箐'],
+ 'lín lǐn': ['箖'],
+ 'jùn qūn': ['箘'],
+ 'shī yí': ['箷', '釶'],
+ 'yuē yào chuò': ['箹'],
+ 'xiāo shuò qiào': ['箾'],
+ 'gōng gǎn lǒng': ['篢'],
+ 'páng péng': ['篣'],
+ 'zhuó huò': ['篧'],
+ 'jiǎn jiān': ['篯'],
+ 'dí zhú': ['篴'],
+ 'zān cēn cǎn': ['篸'],
+ 'zhuàn suǎn zuàn': ['篹'],
+ 'piǎo biāo': ['篻'],
+ 'guó guì': ['簂'],
+ 'cè jí': ['簎'],
+ 'mì miè': ['簚'],
+ 'shāi sī': ['簛'],
+ 'sǔn zhuàn': ['簨'],
+ 'gàn gǎn': ['簳'],
+ 'bò bǒ': ['簸'],
+ 'bó bù': ['簿'],
+ shi: ['籂'],
+ 'zhēn jiān': ['籈'],
+ 'zhuàn zuǎn': ['籑'],
+ 'fān pān biān': ['籓'],
+ 'sǒu shǔ': ['籔'],
+ zuǎn: ['籫', '繤', '纂', '纉', '纘', '缵'],
+ nǚ: ['籹', '釹', '钕'],
+ 'shā chǎo': ['粆'],
+ 'kāng jīng': ['粇'],
+ fěn: ['粉', '黺'],
+ cū: ['粗', '觕', '麁', '麄', '麤'],
+ 'nián zhān': ['粘'],
+ 'cè sè': ['粣'],
+ 'zhōu yù': ['粥'],
+ 'shēn sǎn': ['糁'],
+ 'biān biǎn': ['糄', '萹'],
+ miàn: ['糆', '面', '靣', '麪', '麫', '麵', '麺'],
+ 'hú hū hù': ['糊'],
+ 'gǔ gòu': ['糓'],
+ 'mí méi': ['糜'],
+ 'sǎn shēn': ['糝', '糣'],
+ zāo: ['糟', '蹧', '遭', '醩'],
+ 'mì sī': ['糸'],
+ 'jiū jiǔ': ['糺'],
+ 'xì jì': ['系', '繫'],
+ 'zhēng zhěng': ['糽'],
+ 'chà chǎ': ['紁', '衩'],
+ 'yuē yāo': ['約', '约'],
+ 'hóng gōng': ['紅', '红'],
+ 'hé gē': ['紇', '纥'],
+ 'wén wèn': ['紋', '纹'],
+ fóu: ['紑'],
+ 'jì jié jiè': ['紒'],
+ 'pī pí bǐ': ['紕', '纰'],
+ 'jīn jìn': ['紟'],
+ 'zhā zā': ['紥', '紮'],
+ hā: ['紦'],
+ 'fū fù': ['紨'],
+ 'chōu chóu': ['紬'],
+ 'lèi léi lěi': ['累'],
+ 'bō bì': ['紴'],
+ 'tiǎn zhěn': ['紾'],
+ 'jiōng jiǒng': ['絅'],
+ 'jié jiē': ['結', '结', '节'],
+ 'guà kuā': ['絓'],
+ 'bǎi mò': ['絔'],
+ 'gēng huán': ['絙'],
+ 'jié xié': ['絜'],
+ 'quán shuān': ['絟'],
+ 'gǎi ǎi': ['絠'],
+ 'luò lào': ['絡', '络'],
+ 'bīng bēng pēng': ['絣'],
+ 'gěi jǐ': ['給', '给'],
+ 'tóng tōng dòng': ['絧'],
+ 'tiào diào dào': ['絩'],
+ 'lěi lèi léi': ['絫'],
+ 'gāi hài': ['絯'],
+ 'chī zhǐ': ['絺'],
+ 'wèn miǎn mán wàn': ['絻'],
+ 'huán huàn wàn': ['綄'],
+ 'qīn xiān': ['綅'],
+ 'tì tí': ['綈'],
+ 'yán xiàn': ['綖'],
+ 'zōng zèng zòng': ['綜'],
+ 'chēn lín': ['綝'],
+ 'zhǔn zhùn': ['綧'],
+ 'qiàn qīng zhēng': ['綪'],
+ 'qìng qǐ': ['綮'],
+ 'lún guān': ['綸', '纶'],
+ 'chuò chāo': ['綽', '绰'],
+ 'tián tǎn chān': ['緂'],
+ 'lǜ lù': ['緑', '绿'],
+ 'ruǎn ruàn': ['緛'],
+ 'jí qī': ['緝'],
+ 'zhòng chóng': ['緟', '重'],
+ 'miáo máo': ['緢'],
+ 'xiè yè': ['緤'],
+ huǎn: ['緩', '缓', '㬊'],
+ 'gēng gèng': ['緪', '縆'],
+ 'tōu xū shū': ['緰'],
+ 'zōng zòng': ['緵', '繌'],
+ 'yùn gǔn': ['緷'],
+ 'guā wō': ['緺'],
+ 'yùn yūn wēn': ['緼', '縕'],
+ 'bāng bàng': ['縍'],
+ 'gǔ hú': ['縎', '鶻'],
+ 'cī cuò suǒ': ['縒'],
+ 'cuī shuāi': ['縗'],
+ 'róng rǒng ròng': ['縙'],
+ 'zài zēng': ['縡'],
+ cài: ['縩', '菜', '蔡'],
+ 'féng fèng': ['縫'],
+ 'suō sù': ['縮', '缩'],
+ 'yǎn yǐn': ['縯', '酓'],
+ 'zòng zǒng': ['縱', '纵'],
+ 'zhuàn juàn': ['縳'],
+ 'mò mù': ['縸', '莫'],
+ 'piǎo piāo': ['縹', '缥'],
+ 'fán pó': ['繁'],
+ 'bēng bèng': ['繃'],
+ 'móu miù miào liǎo': ['繆'],
+ 'yáo yóu zhòu': ['繇'],
+ 'zēng zèng': ['繒', '缯'],
+ 'jú jué': ['繘'],
+ 'chuō chuò': ['繛'],
+ 'zūn zǔn': ['繜'],
+ rào: ['繞', '绕', '遶'],
+ 'chǎn chán': ['繟'],
+ 'huì huí': ['繢', '缋', '藱'],
+ 'qiāo sāo zǎo': ['繰'],
+ 'jiǎo zhuó': ['繳', '缴'],
+ 'dàn tán chán': ['繵'],
+ nǒng: ['繷'],
+ 'pú fú': ['纀'],
+ 'yào lì': ['纅'],
+ 'rǎng xiāng': ['纕'],
+ 'lí sǎ xǐ lǐ': ['纚'],
+ 'xiān qiàn': ['纤'],
+ 'jīng jìng': ['经'],
+ 'tí tì': ['绨'],
+ 'bēng běng bèng': ['绷'],
+ 'zōng zèng': ['综'],
+ 'jī qī': ['缉'],
+ 'wēn yùn yūn': ['缊'],
+ 'fèng féng': ['缝'],
+ 'shuāi cuī suī': ['缞'],
+ 'miù móu liáo miào mù': ['缪'],
+ 'qiāo sāo': ['缲'],
+ fǒu: ['缶', '缹', '缻', '雬', '鴀'],
+ 'bà ba pí': ['罢', '罷'],
+ 'guà guǎi': ['罫'],
+ 'yáng xiáng': ['羊', '羏'],
+ 'měi gāo': ['羙'],
+ 'yì xī': ['羛'],
+ 'qiǎng qiān': ['羟'],
+ 'qiāng kòng': ['羫'],
+ 'qián xián yán': ['羬'],
+ nóu: ['羺'],
+ 'hóng gòng': ['羾'],
+ 'pī bì pō': ['翍'],
+ 'qú yù': ['翑'],
+ ké: ['翗'],
+ 'qiào qiáo': ['翘'],
+ 'zhái dí': ['翟'],
+ 'dào zhōu': ['翢'],
+ 'hóu qú': ['翵'],
+ shuǎ: ['耍'],
+ 'ruǎn nuò': ['耎'],
+ 'ér nài': ['耏'],
+ 'zhuān duān': ['耑'],
+ 'pá bà': ['耙'],
+ 'chí sì': ['耛'],
+ 'qù chú': ['耝'],
+ 'lún lǔn': ['耣'],
+ 'jí jiè': ['耤'],
+ 'tāng tǎng': ['耥'],
+ pǎng: ['耪', '覫'],
+ 'zhá zé': ['耫'],
+ 'yē yé': ['耶'],
+ 'yún yíng': ['耺'],
+ 'wà tuǐ zhuó': ['聉'],
+ 'ér nǜ': ['聏'],
+ 'tiē zhé': ['聑'],
+ 'dǐ zhì': ['聜'],
+ qié: ['聺'],
+ 'nǐ jiàn': ['聻'],
+ 'lèi lē': ['肋'],
+ cào: ['肏', '襙', '鄵', '鼜'],
+ 'bó dí': ['肑'],
+ 'xiào xiāo': ['肖'],
+ 'dù dǔ': ['肚'],
+ chāi: ['肞', '釵', '钗'],
+ 'hán qín hàn': ['肣'],
+ 'pàng pán pàn': ['肨', '胖'],
+ 'zhūn chún': ['肫'],
+ āng: ['肮', '骯'],
+ 'yù yō': ['育'],
+ 'pí bǐ bì': ['肶'],
+ 'fèi bì': ['胇'],
+ 'bèi bēi': ['背'],
+ 'fèi zǐ': ['胏'],
+ 'píng pēng': ['胓', '苹'],
+ 'fū fú zhǒu': ['胕'],
+ 'shèng shēng': ['胜'],
+ kuà: ['胯', '跨', '骻'],
+ 'gǎi hǎi': ['胲'],
+ 'gē gé gā': ['胳'],
+ 'néng nài': ['能'],
+ 'guī kuì': ['胿'],
+ 'mài mò': ['脉'],
+ 'zāng zàng': ['脏'],
+ 'jiǎo jué': ['脚', '角'],
+ cuǒ: ['脞'],
+ 'de te': ['脦'],
+ 'zuī juān': ['脧'],
+ něi: ['脮', '腇', '餒', '馁', '鮾', '鯘'],
+ 'pú fǔ': ['脯'],
+ niào: ['脲'],
+ shuí: ['脽'],
+ guò: ['腂', '過', '鐹'],
+ 'là xī': ['腊'],
+ 'yān ā': ['腌'],
+ 'gāo gào': ['膏'],
+ 'lù biāo': ['膔'],
+ chuái: ['膗'],
+ 'zhuān chuán chún zhuǎn': ['膞'],
+ chuài: ['膪', '踹'],
+ 'fán pán': ['膰'],
+ 'wǔ hū': ['膴'],
+ 'shān dàn': ['膻'],
+ tún: ['臀', '臋', '蛌', '豘', '豚', '軘', '霕', '飩', '饨', '魨', '鲀', '黗'],
+ 'bì bei': ['臂'],
+ 'là gé': ['臈'],
+ 'sào sāo': ['臊'],
+ nào: ['臑', '閙', '闹', '鬧'],
+ 'ní luán': ['臡'],
+ 'qiān xián': ['臤'],
+ 'guàng jiǒng': ['臦'],
+ 'guǎng jiǒng': ['臩'],
+ 'chòu xiù': ['臭'],
+ 'mián biān': ['臱'],
+ 'dié zhí': ['臷'],
+ 'zhī jìn': ['臸'],
+ 'shè shě': ['舍'],
+ pù: ['舖', '舗'],
+ 'bān bō pán': ['般'],
+ kuā: ['舿'],
+ 'gèn gěn': ['艮'],
+ 'sè shǎi': ['色'],
+ 'fú bó': ['艴'],
+ 'jiāo qiú': ['艽'],
+ 'chāi chā': ['芆'],
+ 'sháo què': ['芍'],
+ 'hù xià': ['芐'],
+ 'zì zǐ': ['芓'],
+ 'huì hū': ['芔'],
+ 'tún chūn': ['芚'],
+ 'jiè gài': ['芥'],
+ 'xù zhù': ['芧'],
+ 'yuán yán': ['芫'],
+ 'xīn xìn': ['芯'],
+ 'lún huā': ['芲'],
+ 'wù hū': ['芴'],
+ 'gōu gǒu': ['芶'],
+ 'mào máo': ['芼'],
+ 'fèi fú': ['芾'],
+ 'chán yín': ['苂'],
+ qiē: ['苆'],
+ 'sū sù': ['苏'],
+ 'tiáo sháo': ['苕'],
+ 'lì jī': ['苙'],
+ 'kē hē': ['苛'],
+ 'jù qǔ': ['苣'],
+ 'ruò rě': ['若'],
+ 'zhù níng': ['苧'],
+ 'pā bó': ['苩'],
+ xiú: ['苬'],
+ 'zhǎ zuó': ['苲'],
+ 'jū chá': ['苴'],
+ nié: ['苶'],
+ 'shēng ruí': ['苼'],
+ 'qié jiā': ['茄'],
+ 'zǐ cí': ['茈'],
+ 'qiàn xī': ['茜'],
+ chǎi: ['茝'],
+ 'fá pèi': ['茷'],
+ ráo: ['荛', '蕘', '襓', '饒', '饶'],
+ 'yíng xíng': ['荥'],
+ 'qián xún': ['荨', '蕁'],
+ 'yìn yīn': ['荫'],
+ 'hé hè': ['荷'],
+ 'shā suō': ['莎'],
+ 'péng fēng': ['莑'],
+ 'shēn xīn': ['莘'],
+ 'wǎn guān guǎn': ['莞'],
+ 'yóu sù': ['莤'],
+ 'shāo xiāo': ['莦', '蛸'],
+ 'làng liáng': ['莨'],
+ 'piǎo fú': ['莩'],
+ 'wèn wǎn miǎn': ['莬'],
+ 'shì shí': ['莳', '蒔'],
+ 'tù tú': ['莵'],
+ 'xiān liǎn': ['莶', '薟'],
+ 'wǎn yù': ['菀'],
+ 'zōu chù': ['菆'],
+ 'lù lǜ': ['菉'],
+ 'jūn jùn': ['菌'],
+ 'niè rěn': ['菍'],
+ 'zī zì zāi': ['菑'],
+ 'tú tù': ['菟'],
+ 'jiē shà': ['菨'],
+ 'qiáo zhǎo': ['菬'],
+ 'tái zhī chí': ['菭'],
+ 'fēi fěi': ['菲', '蜚'],
+ 'qín qīn jīn': ['菳'],
+ 'zū jù': ['菹', '蒩'],
+ 'lǐn má': ['菻'],
+ 'tián tiàn': ['菾'],
+ tiē: ['萜', '貼', '贴'],
+ 'luò là lào luō': ['落'],
+ 'zhù zhuó zhe': ['著'],
+ 'shèn rèn': ['葚'],
+ 'gě gé': ['葛'],
+ 'jùn suǒ': ['葰'],
+ 'kuì kuài': ['蒉'],
+ 'rú ná': ['蒘'],
+ 'méng mēng měng': ['蒙'],
+ 'yuán huán': ['蒝'],
+ 'xú shú': ['蒣'],
+ 'xí xì': ['蒵'],
+ 'mì míng': ['蓂'],
+ 'sōu sǒu': ['蓃'],
+ 'gài gě hé hài': ['蓋'],
+ 'yǎo zhuó': ['蓔'],
+ 'diào tiáo dí': ['蓧'],
+ 'xū qiū fū': ['蓲'],
+ 'zí jú': ['蓻'],
+ 'liǎo lù': ['蓼'],
+ xu: ['蓿'],
+ 'hàn hǎn': ['蔊'],
+ 'màn wàn mán': ['蔓'],
+ 'pó bò': ['蔢'],
+ 'fān fán bō': ['蕃'],
+ 'hóng hòng': ['蕻'],
+ 'yù ào': ['薁', '隩'],
+ 'xí xiào': ['薂'],
+ 'báo bó bò': ['薄'],
+ 'cí zī': ['薋'],
+ 'wàn luàn': ['薍'],
+ 'kǎo hāo': ['薧'],
+ 'yuǎn wěi': ['薳'],
+ 'zhòu chóu': ['薵'],
+ 'wō mái': ['薶'],
+ 'xiāo hào': ['藃'],
+ 'yù xù xū': ['藇'],
+ 'jiè jí': ['藉'],
+ 'diào zhuó': ['藋'],
+ 'cáng zàng': ['藏'],
+ lǎ: ['藞'],
+ 'chú zhū': ['藸'],
+ 'pín píng': ['蘋'],
+ 'gān hán': ['虷'],
+ 'hóng jiàng': ['虹'],
+ 'huī huǐ': ['虺'],
+ 'xiā há': ['虾'],
+ 'mǎ mà mā': ['蚂'],
+ 'fāng bàng': ['蚄'],
+ 'bàng bèng': ['蚌'],
+ 'jué quē': ['蚗'],
+ 'qín qián': ['蚙'],
+ 'gōng zhōng': ['蚣'],
+ 'fǔ fù': ['蚥'],
+ 'dài dé': ['蚮'],
+ 'gǒu qú xù': ['蚼'],
+ 'bǒ pí': ['蚾'],
+ 'shé yí': ['蛇'],
+ tiě: ['蛈', '鉄', '銕', '鐡', '鐵', '铁', '驖'],
+ 'gé luò': ['蛒'],
+ 'máng bàng': ['蛖'],
+ 'yì xǔ': ['蛡'],
+ 'há gé': ['蛤'],
+ 'qiè ní': ['蛪'],
+ 'é yǐ': ['蛾'],
+ 'zhē zhé': ['蜇'],
+ 'là zhà': ['蜡'],
+ suò: ['蜶', '逤'],
+ 'yóu qiú': ['蝤'],
+ 'xiā hā': ['蝦'],
+ 'xī qī': ['螇'],
+ 'bī pí': ['螕'],
+ 'nài něng': ['螚'],
+ 'hé xiá': ['螛'],
+ 'guì huǐ': ['螝'],
+ 'mǎ mā mà': ['螞'],
+ 'shì zhē': ['螫'],
+ 'zhì dié': ['螲'],
+ 'jiàn chán': ['螹'],
+ 'ma má mò': ['蟆'],
+ 'mǎng měng': ['蟒'],
+ 'biē bié': ['蟞'],
+ 'bēn fèi': ['蟦'],
+ 'láo liáo': ['蟧'],
+ 'yín xún': ['蟫'],
+ 'lí lǐ': ['蠡'],
+ 'xuè xiě': ['血'],
+ 'xíng háng hàng héng': ['行'],
+ 'shuāi cuī': ['衰'],
+ 'tuó tuō': ['袉'],
+ 'lǐng líng': ['袊'],
+ 'bào páo pào': ['袌'],
+ 'jù jiē': ['袓'],
+ 'hè kè': ['袔'],
+ 'yí yì': ['袘', '貤'],
+ 'nà jué': ['袦'],
+ 'bèi pī': ['被'],
+ 'chǐ nuǒ': ['袲'],
+ 'chǐ qǐ duǒ nuǒ': ['袳'],
+ 'jiá qiā jié': ['袷'],
+ 'bó mò': ['袹'],
+ 'guī guà': ['袿'],
+ 'liè liě': ['裂'],
+ 'chéng chěng': ['裎'],
+ 'jiē gé': ['裓'],
+ 'dāo chóu': ['裯'],
+ 'shang cháng': ['裳'],
+ 'yuān gǔn': ['裷'],
+ 'yǎn ān': ['裺'],
+ 'tì xī': ['裼'],
+ 'fù fú': ['褔'],
+ 'chǔ zhǔ': ['褚'],
+ 'tuì tùn': ['褪'],
+ lǎi: ['襰'],
+ 'yào yāo': ['要'],
+ 'qín tán': ['覃'],
+ 'jiàn xiàn': ['見', '见'],
+ piǎn: ['覑', '諞', '谝', '貵', '𡎚'],
+ 'piē miè': ['覕'],
+ 'yíng yǐng': ['覮'],
+ 'qù qū': ['覰', '覷', '觑'],
+ 'jiàn biǎn': ['覵'],
+ 'luó luǎn': ['覶'],
+ 'zī zuǐ': ['觜'],
+ 'huà xiè': ['觟'],
+ 'jiě jiè xiè': ['解', '觧'],
+ 'xué hù': ['觷'],
+ 'lì lù': ['觻'],
+ tǎo: ['討', '讨'],
+ zhùn: ['訰'],
+ 'zī zǐ': ['訾'],
+ 'yí dài': ['詒', '诒'],
+ xiòng: ['詗', '诇'],
+ 'diào tiǎo': ['誂'],
+ 'yí chǐ chì': ['誃'],
+ 'lǎng làng': ['誏'],
+ 'ēi éi ěi èi xī': ['誒', '诶'],
+ shuà: ['誜'],
+ 'yǔ yù': ['語', '语', '雨'],
+ 'shuō shuì yuè': ['說', '说'],
+ 'shuí shéi': ['誰', '谁'],
+ 'qū juè': ['誳'],
+ 'chī lài': ['誺'],
+ 'nì ná': ['誽'],
+ 'diào tiáo': ['調'],
+ 'pǐ bēi': ['諀'],
+ 'jì jī': ['諅'],
+ 'zé zuò zhǎ cuò': ['諎'],
+ 'chù jí': ['諔'],
+ 'háo xià': ['諕'],
+ 'lùn lún': ['論', '论'],
+ 'shì dì': ['諟'],
+ 'huà guā': ['諣'],
+ 'xǐ shāi āi': ['諰'],
+ 'nán nàn': ['諵', '難'],
+ miù: ['謬', '谬'],
+ zèn: ['譖', '谮'],
+ 'shí zhì': ['識', '识'],
+ 'juàn xuān': ['讂'],
+ 'yí tuī': ['讉'],
+ zhán: ['讝'],
+ 'xǔ hǔ': ['许'],
+ 'xiáng yáng': ['详'],
+ 'tiáo diào zhōu': ['调'],
+ 'chén shèn': ['谌'],
+ 'mí mèi': ['谜'],
+ 'màn mán': ['谩'],
+ 'gǔ yù': ['谷'],
+ 'huō huò huá': ['豁'],
+ 'zhì zhài': ['豸'],
+ 'huān huán': ['貆'],
+ 'kěn kūn': ['貇'],
+ 'mò hé': ['貈'],
+ 'mò hé háo': ['貉'],
+ 'jù lóu': ['貗'],
+ 'zé zhài': ['責', '责'],
+ 'dài tè': ['貸'],
+ 'bì bēn': ['賁'],
+ 'jiǎ gǔ jià': ['賈'],
+ 'xiōng mín': ['賯'],
+ càng: ['賶'],
+ 'zhuàn zuàn': ['賺', '赚'],
+ 'wàn zhuàn': ['贃'],
+ 'gàn gòng zhuàng': ['贛'],
+ 'yuán yùn': ['贠'],
+ 'bēn bì': ['贲'],
+ 'jiǎ gǔ': ['贾'],
+ zǒu: ['走', '赱', '鯐'],
+ 'dié tú': ['趃'],
+ 'jū qiè': ['趄'],
+ 'qū cù': ['趋', '趨'],
+ 'jí jié': ['趌'],
+ 'guā huó': ['趏'],
+ 'què qì jí': ['趞'],
+ 'tàng tāng': ['趟'],
+ 'chuō zhuó': ['趠'],
+ 'qù cù': ['趣'],
+ 'yuè tì': ['趯'],
+ 'bō bào': ['趵'],
+ 'kuà wù': ['趶'],
+ 'guì jué': ['趹'],
+ 'fāng fàng páng': ['趽'],
+ 'páo bà': ['跁'],
+ 'qí qǐ': ['跂'],
+ 'jiàn chén': ['跈'],
+ 'pǎo páo': ['跑'],
+ 'diǎn diē tiē': ['跕'],
+ 'jū jù qiè': ['跙'],
+ bǒ: ['跛'],
+ 'luò lì': ['跞'],
+ 'dài duò duō chí': ['跢'],
+ zhuǎi: ['跩'],
+ 'bèng pián': ['跰'],
+ 'tiào táo': ['跳'],
+ 'shū chōu': ['跾'],
+ 'liàng liáng': ['踉'],
+ 'tà tā': ['踏'],
+ chǎ: ['蹅', '鑔', '镲'],
+ 'dí zhí': ['蹢'],
+ 'dēng dèng': ['蹬', '鐙', '镫'],
+ cèng: ['蹭'],
+ 'dūn cún': ['蹲'],
+ 'juě jué': ['蹶'],
+ liāo: ['蹽'],
+ 'xiè sǎ': ['躠'],
+ tǐ: ['躰', '軆', '骵'],
+ 'yà zhá gá': ['轧', '軋'],
+ 'xìn xiàn': ['軐'],
+ 'fàn guǐ': ['軓'],
+ 'zhuàn zhuǎn': ['転'],
+ 'zhóu zhòu': ['軸', '轴'],
+ bú: ['轐', '醭', '鳪'],
+ 'zhuǎn zhuàn zhuǎi': ['转'],
+ 'zǎi zài': ['载'],
+ 'niǎn zhǎn': ['辗'],
+ 'biān bian': ['边'],
+ 'dào biān': ['辺'],
+ 'yǐ yí': ['迆', '迤', '迱'],
+ 'guò guo guō': ['过'],
+ 'wàng kuāng': ['迋'],
+ 'hái huán': ['还'],
+ 'zhè zhèi': ['这'],
+ 'yuǎn yuàn': ['远'],
+ 'zhì lì': ['迣'],
+ 'zhù wǎng': ['迬'],
+ 'zhuī duī': ['追'],
+ 'shì kuò': ['适'],
+ tòu: ['透'],
+ 'tōng tòng': ['通'],
+ guàng: ['逛'],
+ 'dǎi dài': ['逮'],
+ 'suì suí': ['遂'],
+ 'tí dì': ['遆'],
+ 'yí wèi': ['遗'],
+ 'shì dí zhé': ['適'],
+ cà: ['遪'],
+ 'huán hái': ['還'],
+ 'lí chí': ['邌'],
+ 'kàng háng': ['邟'],
+ 'nà nèi nā': ['那'],
+ 'xié yá yé yú xú': ['邪'],
+ 'gāi hái': ['郂'],
+ 'huán xún': ['郇'],
+ 'chī xī': ['郗'],
+ hǎo: ['郝'],
+ 'lì zhí': ['郦'],
+ 'xiáo ǎo': ['郩'],
+ 'dōu dū': ['都'],
+ liǎo: ['曢', '鄝', '镽'],
+ 'zàn cuán cuó': ['酂', '酇'],
+ 'dīng dǐng': ['酊'],
+ 'cù zuò': ['酢'],
+ 'fā pō': ['酦'],
+ 'shāi shī': ['酾'],
+ niàng: ['酿', '醸'],
+ 'qiú chōu': ['醔'],
+ 'pō fā': ['醗', '醱'],
+ 'chǎn chěn': ['醦'],
+ 'yàn liǎn xiān': ['醶'],
+ 'niàng niáng': ['釀'],
+ 'lǐ li': ['里'],
+ 'lí xǐ xī': ['釐'],
+ 'liǎo liào': ['釕'],
+ 'dīng dìng': ['釘', '钉'],
+ 'qiǎo jiǎo': ['釥'],
+ 'yú huá': ['釪'],
+ 'huá wū': ['釫'],
+ 'rì rèn jiàn': ['釰', '釼'],
+ 'dì dài': ['釱'],
+ 'pī zhāo': ['釽'],
+ 'yá yé': ['釾'],
+ 'bǎ pá': ['鈀', '钯'],
+ 'tā tuó': ['鉈', '铊'],
+ běi: ['鉳'],
+ 'bǐng píng': ['鉼'],
+ 'hā kē': ['鉿', '铪'],
+ chòng: ['銃', '铳'],
+ 'xiǎng jiōng': ['銄'],
+ 'yù sì': ['銉'],
+ 'xù huì': ['銊'],
+ 'rén rěn': ['銋'],
+ 'shàn shuò': ['銏'],
+ 'chì lì': ['銐'],
+ 'xiǎn xǐ': ['銑', '铣'],
+ 'hóu xiàng': ['銗'],
+ 'diào tiáo yáo': ['銚'],
+ 'xiān kuò tiǎn guā': ['銛', '銽', '铦'],
+ 'zhé niè': ['銸'],
+ 'zhōng yōng': ['銿'],
+ 'tōu tù dòu': ['鋀'],
+ 'méi méng': ['鋂'],
+ 'wàn jiǎn': ['鋄', '鎫'],
+ 'tǐng dìng': ['鋌', '铤'],
+ 'juān jiān cuān': ['鋑'],
+ 'sī tuó': ['鋖'],
+ 'juān xuān juàn': ['鋗'],
+ 'wú huá wū': ['鋘'],
+ 'zhuó chuò': ['鋜'],
+ 'xíng xìng jīng': ['鋞'],
+ 'jū jú': ['鋦', '锔'],
+ 'zuì niè': ['鋷'],
+ 'yuān yuǎn wǎn wān': ['鋺'],
+ 'gāng gàng': ['鋼', '钢'],
+ zhuī: ['錐', '锥', '騅', '骓', '鵻'],
+ ā: ['錒', '锕'],
+ 'cuō chā': ['鎈'],
+ 'suǒ sè': ['鎍'],
+ 'yáo zú': ['鎐'],
+ 'yè tà gé': ['鎑'],
+ 'qiāng chēng': ['鎗'],
+ 'gé lì': ['鎘', '镉', '鬲'],
+ 'bī pī bì': ['鎞'],
+ 'gǎo hào': ['鎬'],
+ 'zú chuò': ['鏃'],
+ 'xiū xiù': ['鏅'],
+ 'shòu sōu': ['鏉'],
+ 'dí dī': ['鏑', '镝'],
+ 'qiāo sǎn càn': ['鏒'],
+ 'lù áo': ['鏕'],
+ 'tāng táng': ['鏜'],
+ 'jiàn zàn': ['鏩'],
+ 'huì suì ruì': ['鏸'],
+ 'qiǎng qiāng': ['鏹', '镪'],
+ 'sǎn xiàn sà': ['鏾'],
+ 'jiǎn jiàn': ['鐧', '锏'],
+ 'dāng chēng': ['鐺', '铛'],
+ 'zuān zuàn': ['鑽'],
+ 'sà xì': ['钑'],
+ 'yào yuè': ['钥'],
+ 'tǒu dǒu': ['钭'],
+ 'zuàn zuān': ['钻'],
+ 'qiān yán': ['铅'],
+ 'pí pī': ['铍'],
+ 'yáo diào tiáo': ['铫'],
+ 'tāng tàng': ['铴'],
+ 'pù pū': ['铺'],
+ 'tán xiān': ['锬'],
+ 'liù liú': ['镏'],
+ 'hào gǎo': ['镐'],
+ 'táng tāng': ['镗'],
+ 'tán chán xín': ['镡'],
+ 'huò shǎn': ['閄'],
+ 'hàn bì': ['閈', '闬'],
+ 'kāng kàng': ['閌', '闶'],
+ 'xián jiàn jiān jiǎn': ['閒'],
+ 'xiā xiǎ': ['閕'],
+ 'xiǎ kě': ['閜'],
+ 'biàn guān': ['閞'],
+ 'hé gé': ['閤', '颌'],
+ 'hòng xiàng': ['閧'],
+ 'sē xī': ['閪'],
+ 'tíng tǐng': ['閮'],
+ 'è yān': ['閼', '阏'],
+ 'hòng juǎn xiàng': ['闂'],
+ 'bǎn pàn': ['闆'],
+ 'dū shé': ['闍', '阇'],
+ 'què quē': ['闕'],
+ 'tāng táng chāng': ['闛'],
+ 'kàn hǎn': ['闞', '阚'],
+ 'xì sè tà': ['闟'],
+ 'mēn mèn': ['闷'],
+ 'quē què': ['阙'],
+ 'yán diàn': ['阽'],
+ 'ā ē': ['阿'],
+ 'bēi pō pí': ['陂'],
+ 'yàn yǎn': ['隁'],
+ 'yú yáo shù': ['隃'],
+ 'lóng lōng': ['隆'],
+ 'duì zhuì': ['隊'],
+ 'suí duò': ['隋'],
+ 'gāi qí ái': ['隑'],
+ 'huī duò': ['隓', '隳'],
+ 'wěi kuí': ['隗'],
+ 'lì dài': ['隸'],
+ 'zhuī cuī wéi': ['隹'],
+ 'hè hú': ['隺', '鶮'],
+ 'jùn juàn': ['隽', '雋'],
+ 'nán nàn nuó': ['难'],
+ 'què qiāo qiǎo': ['雀'],
+ 'guàn huán': ['雚'],
+ 'guī xī': ['雟'],
+ 'sè xí': ['雭'],
+ án: ['雸'],
+ 'wù méng': ['雺'],
+ tèng: ['霯'],
+ 'lù lòu': ['露'],
+ mái: ['霾'],
+ 'jìng liàng': ['靚'],
+ 'gé jí': ['革'],
+ bǎ: ['靶'],
+ 'yāng yàng': ['鞅'],
+ 'gé tà sǎ': ['鞈'],
+ 'biān yìng': ['鞕'],
+ 'qiào shāo': ['鞘'],
+ 'juān xuān': ['鞙'],
+ 'shàng zhǎng': ['鞝'],
+ 'pí bǐng bì bēi': ['鞞'],
+ la: ['鞡'],
+ 'xiè dié': ['鞢'],
+ ēng: ['鞥'],
+ 'móu mù': ['鞪'],
+ 'bì bǐng': ['鞸'],
+ 'mèi wà': ['韎'],
+ rǒu: ['韖'],
+ 'shè xiè': ['韘'],
+ 'yùn wēn': ['韫'],
+ 'dùn dú': ['頓', '顿'],
+ duǐ: ['頧'],
+ luō: ['頱'],
+ 'bīn pín': ['頻'],
+ yóng: ['顒', '颙', '鰫'],
+ mān: ['顢', '颟'],
+ 'jǐng gěng': ['颈'],
+ 'jié xié jiá': ['颉'],
+ 'kē ké': ['颏'],
+ 'pín bīn': ['频'],
+ 'chàn zhàn': ['颤'],
+ 'fēng fěng': ['風', '风'],
+ 'biāo diū': ['颩'],
+ 'bá fú': ['颰'],
+ 'sāo sōu': ['颾'],
+ 'liù liáo': ['飂'],
+ 'shí sì yì': ['食'],
+ 'yǎng juàn': ['飬'],
+ 'zhù tǒu': ['飳'],
+ 'yí sì': ['飴'],
+ 'zuò zé zhā': ['飵'],
+ tiè: ['飻', '餮'],
+ 'xiǎng náng': ['饟'],
+ 'táng xíng': ['饧'],
+ 'gē le': ['饹'],
+ 'chā zha': ['馇'],
+ 'náng nǎng': ['馕'],
+ 'yūn wò': ['馧'],
+ 'zhī shì': ['馶'],
+ 'xìn jìn': ['馸'],
+ 'kuài jué': ['駃'],
+ zǎng: ['駔', '驵'],
+ 'tái dài': ['駘'],
+ 'xún xuān': ['駨'],
+ 'liáng láng': ['駺'],
+ piàn: ['騗', '騙', '骗', '魸'],
+ 'dài tái': ['骀'],
+ 'sāo sǎo': ['骚'],
+ 'gǔ gū': ['骨'],
+ 'bèi mó': ['骳'],
+ 'xiāo qiāo': ['骹'],
+ 'bǎng pǎng': ['髈'],
+ 'bó jué': ['髉'],
+ 'bì pǒ': ['髲'],
+ 'máo méng': ['髳'],
+ 'kuò yuè': ['髺'],
+ 'bā bà': ['魞', '鲃'],
+ 'jì cǐ': ['鮆'],
+ 'bó bà': ['鮊'],
+ 'zhǎ zhà': ['鮓', '鲊'],
+ 'chóu dài': ['鮘'],
+ 'luò gé': ['鮥'],
+ 'guī xié wā kuí': ['鮭'],
+ 'xiān xiǎn': ['鮮', '鲜'],
+ 'pū bū': ['鯆'],
+ 'yì sī': ['鯣'],
+ 'bà bó': ['鲌'],
+ 'guī xié': ['鲑'],
+ 'sāi xǐ': ['鳃'],
+ 'niǎo diǎo': ['鳥'],
+ 'diāo zhāo': ['鳭'],
+ 'gān hàn yàn': ['鳱'],
+ 'fū guī': ['鳺'],
+ 'jiān qiān zhān': ['鳽'],
+ 'hé jiè': ['鶡'],
+ 'piān biǎn': ['鶣'],
+ 'chuàn zhì': ['鶨'],
+ 'cāng qiāng': ['鶬'],
+ 'sǔn xùn': ['鶽'],
+ 'biāo páo': ['麃'],
+ 'zhù cū': ['麆'],
+ 'jūn qún': ['麇', '麕'],
+ chi: ['麶'],
+ 'mó me': ['麼'],
+ 'mó me ma': ['麽'],
+ 'mí mǒ': ['麿'],
+ 'dàn shèn': ['黮'],
+ 'zhěn yān': ['黰'],
+ 'dǎn zhǎn': ['黵'],
+ 'miǎn mǐn měng': ['黾'],
+ hōu: ['齁'],
+ nàng: ['齉'],
+ 'qí jì zī zhāi': ['齐'],
+ 'yín kěn yǎn': ['龂'],
+ 'yín kěn': ['龈'],
+ 'gōng wò': ['龏'],
+ 'guī jūn qiū': ['龜', '龟'],
+ 'kuí wā': ['䖯'],
+ lōu: ['䁖'],
+ 'ōu qū': ['𫭟'],
+ 'lóu lǘ': ['𦝼'],
+ 'gǎ gā gá': ['嘎'],
+ 'wā guà': ['坬'],
+ 'zhǐ dǐ': ['茋'],
+ 'gǒng hóng': ['硔'],
+ 'yáo xiào': ['滧'],
+};
+const DICT1 = new FastDictFactory();
+Object.keys(map).forEach((key) => {
+ const chars = map[key];
+ for (let char of chars) {
+ DICT1.set(char, key);
+ }
+});
+
+const InitialList = [
+ 'zh',
+ 'ch',
+ 'sh',
+ 'z',
+ 'c',
+ 's',
+ 'b',
+ 'p',
+ 'm',
+ 'f',
+ 'd',
+ 't',
+ 'n',
+ 'l',
+ 'g',
+ 'k',
+ 'h',
+ 'j',
+ 'q',
+ 'x',
+ 'r',
+ 'y',
+ 'w',
+ '',
+];
+const SpecialInitialList = ['j', 'q', 'x'];
+const SpecialFinalList = [
+ 'uān',
+ 'uán',
+ 'uǎn',
+ 'uàn',
+ 'uan',
+ 'uē',
+ 'ué',
+ 'uě',
+ 'uè',
+ 'ue',
+ 'ūn',
+ 'ún',
+ 'ǔn',
+ 'ùn',
+ 'un',
+ 'ū',
+ 'ú',
+ 'ǔ',
+ 'ù',
+ 'u',
+];
+const SpecialFinalMap = {
+ uān: 'üān',
+ uán: 'üán',
+ uǎn: 'üǎn',
+ uàn: 'üàn',
+ uan: 'üan',
+ uē: 'üē',
+ ué: 'üé',
+ uě: 'üě',
+ uè: 'üè',
+ ue: 'üe',
+ ūn: 'ǖn',
+ ún: 'ǘn',
+ ǔn: 'ǚn',
+ ùn: 'ǜn',
+ un: 'ün',
+ ū: 'ǖ',
+ ú: 'ǘ',
+ ǔ: 'ǚ',
+ ù: 'ǜ',
+ u: 'ü',
+};
+const doubleFinalList = [
+ 'ia',
+ 'ian',
+ 'iang',
+ 'iao',
+ 'ie',
+ 'iu',
+ 'iong',
+ 'ua',
+ 'uai',
+ 'uan',
+ 'uang',
+ 'ue',
+ 'ui',
+ 'uo',
+ 'üan',
+ 'üe',
+ 'van',
+ 've',
+];
+/**
+ * @description: 数量词 + 特殊词 音调处理
+ */
+const Numbers = {
+ 一: 'yì',
+ 二: 'èr',
+ 三: 'sān',
+ 四: 'sì',
+ 五: 'wǔ',
+ 六: 'liù',
+ 七: 'qī',
+ 八: 'bā',
+ 九: 'jiǔ',
+ 十: 'shí',
+ 百: 'bǎi',
+ 千: 'qiān',
+ 万: 'wàn',
+ 亿: 'yì',
+ 单: 'dān',
+ 两: 'liǎng',
+ 双: 'shuāng',
+ 多: 'duō',
+ 几: 'jǐ',
+ 十一: 'shí yī',
+ 零一: 'líng yī',
+ 第一: 'dì yī',
+ 一十: 'yī shí',
+ 一十一: 'yī shí yī',
+};
+const NumberWordMap = {
+ 重: 'chóng',
+ 行: 'háng',
+ 斗: 'dǒu',
+ 更: 'gēng',
+};
+// 与以下词组合时,不变调
+function genNumberDict() {
+ const dict = {
+ 零一: 'líng yī',
+ 〇一: 'líng yī',
+ 十一: 'shí yī',
+ 一十: 'yī shí',
+ 第一: 'dì yī',
+ 一十一: 'yī shí yī',
+ };
+ for (let number in Numbers) {
+ for (let key in NumberWordMap) {
+ const word = `${number}${key}`;
+ const pinyin = `${Numbers[number]} ${NumberWordMap[key]}`;
+ dict[word] = pinyin;
+ }
+ }
+ return dict;
+}
+const NumberDict = genNumberDict();
+const PatternNumberDict = Object.keys(NumberDict).map((key) => ({
+ zh: key,
+ pinyin: NumberDict[key],
+ probability: 1e-12 /* Probability.Rule */,
+ length: stringLength(key),
+ priority: Priority.Normal,
+ dict: Symbol('rule'),
+}));
+/**
+ * @description: 连续变调处理:https://zh.wiktionary.org/wiki/Appendix:%E2%80%9C%E4%B8%80%E2%80%9D%E5%8F%8A%E2%80%9C%E4%B8%8D%E2%80%9D%E7%9A%84%E5%8F%98%E8%B0%83
+ */
+const toneSandhiMap = {
+ // 说不说,说一说,叠词之间发音为轻声
+ 不: {
+ bú: [4], // "不" 后面跟 4 声时,变调为 2 声
+ },
+ 一: {
+ yí: [4],
+ yì: [1, 2, 3],
+ },
+};
+const toneSandhiIgnoreSuffix = {
+ 不: ['的', '而', '之', '后', '也', '还', '地'],
+ 一: ['的', '而', '之', '后', '也', '还', '是'],
+};
+const toneSandhiList = Object.keys(toneSandhiMap);
+// 处理「一」和 「不」字的变调
+function processToneSandhi(cur, pre, next) {
+ if (toneSandhiList.indexOf(cur) === -1) {
+ return getSingleWordPinyin(cur);
+ }
+ // 轻声变调:说不说,说一说,叠词之间发音为轻声
+ if (pre === next && pre && getSingleWordPinyin(pre) !== pre) {
+ return getPinyinWithoutTone(getSingleWordPinyin(cur));
+ }
+ // 「一」和 「不」字变调处理
+ if (next &&
+ !toneSandhiIgnoreSuffix[cur].includes(next)) {
+ const nextPinyin = getSingleWordPinyin(next);
+ if (nextPinyin !== next) {
+ const nextTone = getNumOfTone(nextPinyin);
+ const pinyinMap = toneSandhiMap[cur];
+ for (let pinyin in pinyinMap) {
+ const tones = pinyinMap[pinyin];
+ if (tones.indexOf(Number(nextTone)) !== -1) {
+ return pinyin;
+ }
+ }
+ }
+ }
+}
+// 处理「了」字的变调
+function processToneSandhiLiao(cur, pre) {
+ if (cur === '了' && (!pre || !DICT1.get(pre))) {
+ return 'liǎo';
+ }
+}
+// 处理叠字符[々]
+function processReduplicationChar(cur, pre) {
+ if (cur === '々') {
+ if (!pre || !DICT1.get(pre)) {
+ return 'tóng';
+ }
+ else {
+ return DICT1.get(pre).split(' ')[0];
+ }
+ }
+}
+function processSepecialPinyin(cur, pre, next) {
+ return (processReduplicationChar(cur, pre) ||
+ processToneSandhiLiao(cur, pre) ||
+ processToneSandhi(cur, pre, next) ||
+ getSingleWordPinyin(cur));
+}
+
+const Surnames = {
+ 南宫: 'nán gōng',
+ 第五: 'dì wǔ',
+ 万俟: 'mò qí',
+ 司马: 'sī mǎ',
+ 上官: 'shàng guān',
+ 欧阳: 'ōu yáng',
+ 夏侯: 'xià hóu',
+ 诸葛: 'zhū gě',
+ 闻人: 'wén rén',
+ 东方: 'dōng fāng',
+ 赫连: 'hè lián',
+ 皇甫: 'huáng fǔ',
+ 尉迟: 'yù chí',
+ 公羊: 'gōng yáng',
+ 澹台: 'tán tái',
+ 公冶: 'gōng yě',
+ 宗政: 'zōng zhèng',
+ 濮阳: 'pú yáng',
+ 淳于: 'chún yú',
+ 太叔: 'tài shū',
+ 申屠: 'shēn tú',
+ 公孙: 'gōng sūn',
+ 仲孙: 'zhòng sūn',
+ 轩辕: 'xuān yuán',
+ 令狐: 'líng hú',
+ 钟离: 'zhōng lí',
+ 宇文: 'yǔ wén',
+ 长孙: 'zhǎng sūn',
+ 慕容: 'mù róng',
+ 鲜于: 'xiān yú',
+ 闾丘: 'lǘ qiū',
+ 司徒: 'sī tú',
+ 司空: 'sī kōng',
+ 亓官: 'qí guān',
+ 司寇: 'sī kòu',
+ 仉督: 'zhǎng dū',
+ 子车: 'zǐ jū',
+ 颛孙: 'zhuān sūn',
+ 端木: 'duān mù',
+ 巫马: 'wū mǎ',
+ 公西: 'gōng xī',
+ 漆雕: 'qī diāo',
+ 乐正: 'yuè zhèng',
+ 壤驷: 'rǎng sì',
+ 公良: 'gōng liáng',
+ 拓跋: 'tuò bá',
+ 夹谷: 'jiá gǔ',
+ 宰父: 'zǎi fǔ',
+ 榖梁: 'gǔ liáng',
+ 段干: 'duàn gān',
+ 百里: 'bǎi lǐ',
+ 东郭: 'dōng guō',
+ 南门: 'nán mén',
+ 呼延: 'hū yán',
+ 羊舌: 'yáng shé',
+ 梁丘: 'liáng qiū',
+ 左丘: 'zuǒ qiū',
+ 东门: 'dōng mén',
+ 西门: 'xī mén',
+ 句龙: 'gōu lóng',
+ 毌丘: 'guàn qiū',
+ 赵: 'zhào',
+ 钱: 'qián',
+ 孙: 'sūn',
+ 李: 'lǐ',
+ 周: 'zhōu',
+ 吴: 'wú',
+ 郑: 'zhèng',
+ 王: 'wáng',
+ 冯: 'féng',
+ 陈: 'chén',
+ 褚: 'chǔ',
+ 卫: 'wèi',
+ 蒋: 'jiǎng',
+ 沈: 'shěn',
+ 韩: 'hán',
+ 杨: 'yáng',
+ 朱: 'zhū',
+ 秦: 'qín',
+ 尤: 'yóu',
+ 许: 'xǔ',
+ 何: 'hé',
+ 吕: 'lǚ',
+ 施: 'shī',
+ 张: 'zhāng',
+ 孔: 'kǒng',
+ 曹: 'cáo',
+ 严: 'yán',
+ 华: 'huà',
+ 金: 'jīn',
+ 魏: 'wèi',
+ 陶: 'táo',
+ 姜: 'jiāng',
+ 戚: 'qī',
+ 谢: 'xiè',
+ 邹: 'zōu',
+ 喻: 'yù',
+ 柏: 'bǎi',
+ 水: 'shuǐ',
+ 窦: 'dòu',
+ 章: 'zhāng',
+ 云: 'yún',
+ 苏: 'sū',
+ 潘: 'pān',
+ 葛: 'gě',
+ 奚: 'xī',
+ 范: 'fàn',
+ 彭: 'péng',
+ 郎: 'láng',
+ 鲁: 'lǔ',
+ 韦: 'wéi',
+ 昌: 'chāng',
+ 马: 'mǎ',
+ 苗: 'miáo',
+ 凤: 'fèng',
+ 花: 'huā',
+ 方: 'fāng',
+ 俞: 'yú',
+ 任: 'rén',
+ 袁: 'yuán',
+ 柳: 'liǔ',
+ 酆: 'fēng',
+ 鲍: 'bào',
+ 史: 'shǐ',
+ 唐: 'táng',
+ 费: 'fèi',
+ 廉: 'lián',
+ 岑: 'cén',
+ 薛: 'xuē',
+ 雷: 'léi',
+ 贺: 'hè',
+ 倪: 'ní',
+ 汤: 'tāng',
+ 滕: 'téng',
+ 殷: 'yīn',
+ 罗: 'luó',
+ 毕: 'bì',
+ 郝: 'hǎo',
+ 邬: 'wū',
+ 安: 'ān',
+ 常: 'cháng',
+ 乐: 'yuè',
+ 于: 'yú',
+ 时: 'shí',
+ 傅: 'fù',
+ 皮: 'pí',
+ 卞: 'biàn',
+ 齐: 'qí',
+ 康: 'kāng',
+ 伍: 'wǔ',
+ 余: 'yú',
+ 元: 'yuán',
+ 卜: 'bǔ',
+ 顾: 'gù',
+ 孟: 'mèng',
+ 平: 'píng',
+ 黄: 'huáng',
+ 和: 'hé',
+ 穆: 'mù',
+ 萧: 'xiāo',
+ 尹: 'yǐn',
+ 姚: 'yáo',
+ 邵: 'shào',
+ 湛: 'zhàn',
+ 汪: 'wāng',
+ 祁: 'qí',
+ 毛: 'máo',
+ 禹: 'yǔ',
+ 狄: 'dí',
+ 米: 'mǐ',
+ 贝: 'bèi',
+ 明: 'míng',
+ 臧: 'zāng',
+ 计: 'jì',
+ 伏: 'fú',
+ 成: 'chéng',
+ 戴: 'dài',
+ 谈: 'tán',
+ 宋: 'sòng',
+ 茅: 'máo',
+ 庞: 'páng',
+ 熊: 'xióng',
+ 纪: 'jǐ',
+ 舒: 'shū',
+ 屈: 'qū',
+ 项: 'xiàng',
+ 祝: 'zhù',
+ 董: 'dǒng',
+ 梁: 'liáng',
+ 杜: 'dù',
+ 阮: 'ruǎn',
+ 蓝: 'lán',
+ 闵: 'mǐn',
+ 席: 'xí',
+ 季: 'jì',
+ 麻: 'má',
+ 强: 'qiáng',
+ 贾: 'jiǎ',
+ 路: 'lù',
+ 娄: 'lóu',
+ 危: 'wēi',
+ 江: 'jiāng',
+ 童: 'tóng',
+ 颜: 'yán',
+ 郭: 'guō',
+ 梅: 'méi',
+ 盛: 'shèng',
+ 林: 'lín',
+ 刁: 'diāo',
+ 钟: 'zhōng',
+ 徐: 'xú',
+ 邱: 'qiū',
+ 骆: 'luò',
+ 高: 'gāo',
+ 夏: 'xià',
+ 蔡: 'cài',
+ 田: 'tián',
+ 樊: 'fán',
+ 胡: 'hú',
+ 凌: 'líng',
+ 霍: 'huò',
+ 虞: 'yú',
+ 万: 'wàn',
+ 支: 'zhī',
+ 柯: 'kē',
+ 昝: 'zǎn',
+ 管: 'guǎn',
+ 卢: 'lú',
+ 莫: 'mò',
+ 经: 'jīng',
+ 房: 'fáng',
+ 裘: 'qiú',
+ 缪: 'miào',
+ 干: 'gān',
+ 解: 'xiè',
+ 应: 'yīng',
+ 宗: 'zōng',
+ 丁: 'dīng',
+ 宣: 'xuān',
+ 贲: 'bēn',
+ 邓: 'dèng',
+ 郁: 'yù',
+ 单: 'shàn',
+ 杭: 'háng',
+ 洪: 'hóng',
+ 包: 'bāo',
+ 诸: 'zhū',
+ 左: 'zuǒ',
+ 石: 'shí',
+ 崔: 'cuī',
+ 吉: 'jí',
+ 钮: 'niǔ',
+ 龚: 'gōng',
+ 程: 'chéng',
+ 嵇: 'jī',
+ 邢: 'xíng',
+ 滑: 'huá',
+ 裴: 'péi',
+ 陆: 'lù',
+ 荣: 'róng',
+ 翁: 'wēng',
+ 荀: 'xún',
+ 羊: 'yáng',
+ 於: 'yū',
+ 惠: 'huì',
+ 甄: 'zhēn',
+ 曲: 'qū',
+ 家: 'jiā',
+ 封: 'fēng',
+ 芮: 'ruì',
+ 羿: 'yì',
+ 储: 'chǔ',
+ 靳: 'jìn',
+ 汲: 'jí',
+ 邴: 'bǐng',
+ 糜: 'mí',
+ 松: 'sōng',
+ 井: 'jǐng',
+ 段: 'duàn',
+ 富: 'fù',
+ 巫: 'wū',
+ 乌: 'wū',
+ 焦: 'jiāo',
+ 巴: 'bā',
+ 弓: 'gōng',
+ 牧: 'mù',
+ 隗: 'wěi',
+ 山: 'shān',
+ 谷: 'gǔ',
+ 车: 'chē',
+ 侯: 'hóu',
+ 宓: 'mì',
+ 蓬: 'péng',
+ 全: 'quán',
+ 郗: 'xī',
+ 班: 'bān',
+ 仰: 'yǎng',
+ 秋: 'qiū',
+ 仲: 'zhòng',
+ 伊: 'yī',
+ 宫: 'gōng',
+ 宁: 'nìng',
+ 仇: 'qiú',
+ 栾: 'luán',
+ 暴: 'bào',
+ 甘: 'gān',
+ 钭: 'tǒu',
+ 厉: 'lì',
+ 戎: 'róng',
+ 祖: 'zǔ',
+ 武: 'wǔ',
+ 符: 'fú',
+ 刘: 'liú',
+ 景: 'jǐng',
+ 詹: 'zhān',
+ 束: 'shù',
+ 龙: 'lóng',
+ 叶: 'yè',
+ 幸: 'xìng',
+ 司: 'sī',
+ 韶: 'sháo',
+ 郜: 'gào',
+ 黎: 'lí',
+ 蓟: 'jì',
+ 薄: 'bó',
+ 印: 'yìn',
+ 宿: 'sù',
+ 白: 'bái',
+ 怀: 'huái',
+ 蒲: 'pú',
+ 邰: 'tái',
+ 从: 'cóng',
+ 鄂: 'è',
+ 索: 'suǒ',
+ 咸: 'xián',
+ 籍: 'jí',
+ 赖: 'lài',
+ 卓: 'zhuó',
+ 蔺: 'lìn',
+ 屠: 'tú',
+ 蒙: 'méng',
+ 池: 'chí',
+ 乔: 'qiáo',
+ 阴: 'yīn',
+ 鬱: 'yù',
+ 胥: 'xū',
+ 能: 'nài',
+ 苍: 'cāng',
+ 双: 'shuāng',
+ 闻: 'wén',
+ 莘: 'shēn',
+ 党: 'dǎng',
+ 翟: 'zhái',
+ 谭: 'tán',
+ 贡: 'gòng',
+ 劳: 'láo',
+ 逄: 'páng',
+ 姬: 'jī',
+ 申: 'shēn',
+ 扶: 'fú',
+ 堵: 'dǔ',
+ 冉: 'rǎn',
+ 宰: 'zǎi',
+ 郦: 'lì',
+ 雍: 'yōng',
+ 郤: 'xì',
+ 璩: 'qú',
+ 桑: 'sāng',
+ 桂: 'guì',
+ 濮: 'pú',
+ 牛: 'niú',
+ 寿: 'shòu',
+ 通: 'tōng',
+ 边: 'biān',
+ 扈: 'hù',
+ 燕: 'yān',
+ 冀: 'jì',
+ 郏: 'jiá',
+ 浦: 'pǔ',
+ 尚: 'shàng',
+ 农: 'nóng',
+ 温: 'wēn',
+ 别: 'bié',
+ 庄: 'zhuāng',
+ 晏: 'yàn',
+ 柴: 'chái',
+ 瞿: 'qú',
+ 阎: 'yán',
+ 充: 'chōng',
+ 慕: 'mù',
+ 连: 'lián',
+ 茹: 'rú',
+ 习: 'xí',
+ 宦: 'huàn',
+ 艾: 'ài',
+ 鱼: 'yú',
+ 容: 'róng',
+ 向: 'xiàng',
+ 古: 'gǔ',
+ 易: 'yì',
+ 慎: 'shèn',
+ 戈: 'gē',
+ 廖: 'liào',
+ 庾: 'yǔ',
+ 终: 'zhōng',
+ 暨: 'jì',
+ 居: 'jū',
+ 衡: 'héng',
+ 步: 'bù',
+ 都: 'dū',
+ 耿: 'gěng',
+ 满: 'mǎn',
+ 弘: 'hóng',
+ 匡: 'kuāng',
+ 国: 'guó',
+ 文: 'wén',
+ 寇: 'kòu',
+ 广: 'guǎng',
+ 禄: 'lù',
+ 阙: 'quē',
+ 东: 'dōng',
+ 欧: 'ōu',
+ 殳: 'shū',
+ 沃: 'wò',
+ 利: 'lì',
+ 蔚: 'wèi',
+ 越: 'yuè',
+ 夔: 'kuí',
+ 隆: 'lóng',
+ 师: 'shī',
+ 巩: 'gǒng',
+ 厍: 'shè',
+ 聂: 'niè',
+ 晁: 'cháo',
+ 勾: 'gōu',
+ 敖: 'áo',
+ 融: 'róng',
+ 冷: 'lěng',
+ 訾: 'zī',
+ 辛: 'xīn',
+ 阚: 'kàn',
+ 那: 'nā',
+ 简: 'jiǎn',
+ 饶: 'ráo',
+ 空: 'kōng',
+ 曾: 'zēng',
+ 母: 'mǔ',
+ 沙: 'shā',
+ 乜: 'niè',
+ 养: 'yǎng',
+ 鞠: 'jū',
+ 须: 'xū',
+ 丰: 'fēng',
+ 巢: 'cháo',
+ 关: 'guān',
+ 蒯: 'kuǎi',
+ 相: 'xiàng',
+ 查: 'zhā',
+ 后: 'hòu',
+ 荆: 'jīng',
+ 红: 'hóng',
+ 游: 'yóu',
+ 竺: 'zhú',
+ 权: 'quán',
+ 逯: 'lù',
+ 盖: 'gě',
+ 益: 'yì',
+ 桓: 'huán',
+ 公: 'gōng',
+ 牟: 'móu',
+ 哈: 'hǎ',
+ 言: 'yán',
+ 福: 'fú',
+ 肖: 'xiāo',
+ 区: 'ōu',
+ 覃: 'qín',
+ 朴: 'piáo',
+ 繁: 'pó',
+ 员: 'yùn',
+ 句: 'gōu',
+ 要: 'yāo',
+ 过: 'guō',
+ 钻: 'zuān',
+ 谌: 'chén',
+ 折: 'shé',
+ 召: 'shào',
+ 郄: 'qiè',
+ 撒: 'sǎ',
+ 甯: 'nìng',
+ 六: 'lù',
+ 啜: 'chuài',
+ 行: 'xíng',
+};
+const PatternSurname = Object.keys(Surnames).map((key) => ({
+ zh: key,
+ pinyin: Surnames[key],
+ probability: 1 /* Probability.Surname */ + stringLength(key),
+ length: stringLength(key),
+ priority: Priority.Surname,
+ dict: Symbol('surname'),
+}));
+
+const DICT2 = {
+ 这个: 'zhè ge',
+ 成为: 'chéng wéi',
+ 认为: 'rèn wéi',
+ 作为: 'zuò wéi',
+ 部分: 'bù fen',
+ 要求: 'yāo qiú',
+ 应该: 'yīng gāi',
+ 增长: 'zēng zhǎng',
+ 提供: 'tí gōng',
+ 觉得: 'jué de',
+ 任务: 'rèn wu',
+ 那个: 'nà ge',
+ 称为: 'chēng wéi',
+ 为主: 'wéi zhǔ',
+ 了解: 'liǎo jiě',
+ 处理: 'chǔ lǐ',
+ 皇上: 'huáng shang',
+ 只要: 'zhǐ yào',
+ 大量: 'dà liàng',
+ 力量: 'lì liàng',
+ 几乎: 'jī hū',
+ 干部: 'gàn bù',
+ 目的: 'mù dì',
+ 行为: 'xíng wéi',
+ 只见: 'zhǐ jiàn',
+ 认识: 'rèn shi',
+ 市长: 'shì zhǎng',
+ 师父: 'shī fu',
+ 调查: 'diào chá',
+ 重新: 'chóng xīn',
+ 分为: 'fēn wéi',
+ 知识: 'zhī shi',
+ 导弹: 'dǎo dàn',
+ 质量: 'zhì liàng',
+ 行款: 'háng kuǎn',
+ 行列: 'háng liè',
+ 行话: 'háng huà',
+ 行业: 'háng yè',
+ 隔行: 'gé háng',
+ 在行: 'zài háng',
+ 行家: 'háng jia',
+ 内行: 'nèi háng',
+ 外行: 'wài háng',
+ 同行: 'tóng háng',
+ 本行: 'běn háng',
+ 行伍: 'háng wǔ',
+ 洋行: 'yáng háng',
+ 银行: 'yín háng',
+ 商行: 'shāng háng',
+ 支行: 'zhī háng',
+ 总行: 'zǒng háng',
+ 行情: 'háng qíng',
+ 懂行: 'dǒng háng',
+ 行规: 'háng guī',
+ 行当: 'háng dang',
+ 行货: 'háng huò',
+ 太行: 'tài háng',
+ 入行: 'rù háng',
+ 中行: 'zhōng háng',
+ 农行: 'nóng háng',
+ 工行: 'gōng háng',
+ 建行: 'jiàn háng',
+ 各行: "gè háng",
+ 行号: 'háng hào',
+ 行高: 'háng gāo',
+ 行首: 'háng shǒu',
+ 行尾: 'háng wěi',
+ 行末: 'háng mò',
+ 行长: 'háng cháng',
+ 行距: 'háng jù',
+ 换行: 'huàn háng',
+ 行会: 'háng huì',
+ 行辈: 'háng bèi',
+ 行道: 'háng dào',
+ 道行: 'dào heng',
+ 参与: 'cān yù',
+ 充分: 'chōng fèn',
+ 尽管: 'jǐn guǎn',
+ 生长: 'shēng zhǎng',
+ 数量: 'shù liàng',
+ 应当: 'yīng dāng',
+ 院长: 'yuàn zhǎng',
+ 强调: 'qiáng diào',
+ 只能: 'zhǐ néng',
+ 音乐: 'yīn yuè',
+ 以为: 'yǐ wéi',
+ 处于: 'chǔ yú',
+ 部长: 'bù zhǎng',
+ 蒙古: 'měng gǔ',
+ 只有: 'zhǐ yǒu',
+ 适当: 'shì dàng',
+ 只好: 'zhǐ hǎo',
+ 成长: 'chéng zhǎng',
+ 高兴: 'gāo xìng',
+ 不了: 'bù liǎo',
+ 产量: 'chǎn liàng',
+ 胖子: 'pàng zi',
+ 显得: 'xiǎn de',
+ 只是: 'zhǐ shì',
+ 似的: 'shì de',
+ 率领: 'shuài lǐng',
+ 改为: 'gǎi wéi',
+ 不禁: 'bù jīn',
+ 成分: 'chéng fèn',
+ 答应: 'dā ying',
+ 少年: 'shào nián',
+ 兴趣: 'xìng qù',
+ 太监: 'tài jian',
+ 休息: 'xiū xi',
+ 校长: 'xiào zhǎng',
+ 更新: 'gēng xīn',
+ 合同: 'hé tong',
+ 喝道: 'hè dào',
+ 重庆: 'chóng qìng',
+ 重建: 'chóng jiàn',
+ 使得: 'shǐ de',
+ 审查: 'shěn chá',
+ 累计: 'lěi jì',
+ 给予: 'jǐ yǔ',
+ 极为: 'jí wéi',
+ 冠军: 'guàn jūn',
+ 仿佛: 'fǎng fú',
+ 头发: 'tóu fa',
+ 投降: 'tóu xiáng',
+ 家长: 'jiā zhǎng',
+ 仔细: 'zǐ xì',
+ 要是: 'yào shi',
+ 将领: 'jiàng lǐng',
+ 含量: 'hán liàng',
+ 更为: 'gèng wéi',
+ 积累: 'jī lěi',
+ 地处: 'dì chǔ',
+ 县长: 'xiàn zhǎng',
+ 少女: 'shào nǚ',
+ 路上: 'lù shang',
+ 只怕: 'zhǐ pà',
+ 能量: 'néng liàng',
+ 储量: 'chǔ liàng',
+ 供应: 'gōng yìng',
+ 挑战: 'tiǎo zhàn',
+ 西藏: 'xī zàng',
+ 记得: 'jì de',
+ 总量: 'zǒng liàng',
+ 当真: 'dàng zhēn',
+ 将士: 'jiàng shì',
+ 差别: 'chā bié',
+ 较为: 'jiào wéi',
+ 长老: 'zhǎng lǎo',
+ 大夫: 'dài fu',
+ 差异: 'chā yì',
+ 懂得: 'dǒng de',
+ 尽量: 'jǐn liàng',
+ 模样: 'mú yàng',
+ 的确: 'dí què',
+ 为首: 'wéi shǒu',
+ 便宜: 'pián yi',
+ 更名: 'gēng míng',
+ 石头: 'shí tou',
+ 州长: 'zhōu zhǎng',
+ 为止: 'wéi zhǐ',
+ 漂亮: 'piào liang',
+ 炮弹: 'pào dàn',
+ 藏族: 'zàng zú',
+ 角色: 'jué sè',
+ 当作: 'dàng zuò',
+ 尽快: 'jǐn kuài',
+ 人为: 'rén wéi',
+ 重复: 'chóng fù',
+ 胡同: 'hú tòng',
+ 差距: 'chā jù',
+ 弟兄: 'dì xiong',
+ 大将: 'dà jiàng',
+ 睡觉: 'shuì jiào',
+ 一觉: 'yí jiào',
+ 团长: 'tuán zhǎng',
+ 队长: 'duì zhǎng',
+ 区长: 'qū zhǎng',
+ 难得: 'nán dé',
+ 丫头: 'yā tou',
+ 会长: 'huì zhǎng',
+ 弟弟: 'dì di',
+ 王爷: 'wáng ye',
+ 重量: 'zhòng liàng',
+ 誉为: 'yù wéi',
+ 家伙: 'jiā huo',
+ 华山: 'huà shān',
+ 椅子: 'yǐ zi',
+ 流量: 'liú liàng',
+ 长大: 'zhǎng dà',
+ 勉强: 'miǎn qiǎng',
+ 会计: 'kuài jì',
+ 过分: 'guò fèn',
+ 济南: 'jǐ nán',
+ 调动: 'diào dòng',
+ 燕京: 'yān jīng',
+ 少将: 'shào jiàng',
+ 中毒: 'zhòng dú',
+ 晓得: 'xiǎo de',
+ 变更: 'biàn gēng',
+ 打更: 'dǎ gēng',
+ 认得: 'rèn de',
+ 苹果: 'píng guǒ',
+ 念头: 'niàn tou',
+ 挣扎: 'zhēng zhá',
+ 三藏: 'sān zàng',
+ 剥削: 'bō xuē',
+ 丞相: 'chéng xiàng',
+ 少量: 'shǎo liàng',
+ 寻思: 'xún si',
+ 夺得: 'duó dé',
+ 干线: 'gàn xiàn',
+ 呼吁: 'hū yù',
+ 处罚: 'chǔ fá',
+ 长官: 'zhǎng guān',
+ 柏林: 'bó lín',
+ 亲戚: 'qīn qi',
+ 身分: 'shēn fèn',
+ 胳膊: 'gē bo',
+ 着手: 'zhuó shǒu',
+ 炸弹: 'zhà dàn',
+ 咳嗽: 'ké sou',
+ 叶子: 'yè zi',
+ 外长: 'wài zhǎng',
+ 供给: 'gōng jǐ',
+ 师长: 'shī zhǎng',
+ 变量: 'biàn liàng',
+ 应有: 'yīng yǒu',
+ 下载: 'xià zài',
+ 乐器: 'yuè qì',
+ 间接: 'jiàn jiē',
+ 底下: 'dǐ xià',
+ 打扮: 'dǎ bàn',
+ 子弹: 'zǐ dàn',
+ 弹药: 'dàn yào',
+ 热量: 'rè liàng',
+ 削弱: 'xuē ruò',
+ 骨干: 'gǔ gàn',
+ 容量: 'róng liàng',
+ 模糊: 'mó hu',
+ 转动: 'zhuàn dòng',
+ 称呼: 'chēng hu',
+ 科长: 'kē zhǎng',
+ 处置: 'chǔ zhì',
+ 着重: 'zhuó zhòng',
+ 着急: 'zháo jí',
+ 强迫: 'qiǎng pò',
+ 庭长: 'tíng zhǎng',
+ 首相: 'shǒu xiàng',
+ 喇嘛: 'lǎ ma',
+ 镇长: 'zhèn zhǎng',
+ 只管: 'zhǐ guǎn',
+ 重重: 'chóng chóng',
+ 免得: 'miǎn de',
+ 着实: 'zhuó shí',
+ 度假: 'dù jià',
+ 真相: 'zhēn xiàng',
+ 相貌: 'xiàng mào',
+ 处分: 'chǔ fèn',
+ 委屈: 'wěi qu',
+ 为期: 'wéi qī',
+ 伯伯: 'bó bo',
+ 伯子: 'bǎi zi',
+ 圈子: 'quān zi',
+ 见识: 'jiàn shi',
+ 笼罩: 'lǒng zhào',
+ 与会: 'yù huì',
+ 都督: 'dū du',
+ 都市: 'dū shì',
+ 成都: 'chéng dū',
+ 首都: 'shǒu dū',
+ 帝都: 'dì dū',
+ 王都: 'wáng dū',
+ 东都: 'dōng dū',
+ 都护: 'dū hù',
+ 都城: 'dū chéng',
+ 建都: 'jiàn dū',
+ 迁都: 'qiān dū',
+ 故都: 'gù dū',
+ 定都: 'dìng dū',
+ 中都: 'zhōng dū',
+ 六安: 'lù ān',
+ 宰相: 'zǎi xiàng',
+ 较量: 'jiào liàng',
+ 对称: 'duì chèn',
+ 总长: 'zǒng zhǎng',
+ 相公: 'xiàng gong',
+ 空白: 'kòng bái',
+ 打量: 'dǎ liang',
+ 水分: 'shuǐ fèn',
+ 舌头: 'shé tou',
+ 没收: 'mò shōu',
+ 行李: 'xíng li',
+ 判处: 'pàn chǔ',
+ 散文: 'sǎn wén',
+ 处境: 'chǔ jìng',
+ 孙子: 'sūn zi',
+ 拳头: 'quán tou',
+ 打发: 'dǎ fā',
+ 组长: 'zǔ zhǎng',
+ 骨头: 'gǔ tou',
+ 宁可: 'nìng kě',
+ 更换: 'gēng huàn',
+ 薄弱: 'bó ruò',
+ 还原: 'huán yuán',
+ 重修: 'chóng xiū',
+ 重来: 'chóng lái',
+ 只顾: 'zhǐ gù',
+ 爱好: 'ài hào',
+ 馒头: 'mán tou',
+ 军长: 'jūn zhǎng',
+ 首长: 'shǒu zhǎng',
+ 厂长: 'chǎng zhǎng',
+ 司长: 'sī zhǎng',
+ 长子: 'zhǎng zǐ',
+ 强劲: 'qiáng jìng',
+ 恰当: 'qià dàng',
+ 头儿: 'tóu er',
+ 站长: 'zhàn zhǎng',
+ 折腾: 'zhē teng',
+ 相处: 'xiāng chǔ',
+ 统率: 'tǒng shuài',
+ 中将: 'zhōng jiàng',
+ 命中: 'mìng zhòng',
+ 名将: 'míng jiàng',
+ 木头: 'mù tou',
+ 动弹: 'dòng tan',
+ 地壳: 'dì qiào',
+ 干活: 'gàn huó',
+ 少爷: 'shào ye',
+ 水量: 'shuǐ liàng',
+ 补给: 'bǔ jǐ',
+ 尾巴: 'wěi ba',
+ 来得: 'lái de',
+ 好奇: 'hào qí',
+ 钥匙: 'yào shi',
+ 当做: 'dàng zuò',
+ 沉着: 'chén zhuó',
+ 哑巴: 'yǎ ba',
+ 车子: 'chē zi',
+ 上将: 'shàng jiàng',
+ 恶心: 'ě xīn',
+ 担子: 'dàn zi',
+ 应届: 'yīng jiè',
+ 主角: 'zhǔ jué',
+ 运转: 'yùn zhuǎn',
+ 兄长: 'xiōng zhǎng',
+ 格式: 'gé shì',
+ 正月: 'zhēng yuè',
+ 营长: 'yíng zhǎng',
+ 当成: 'dàng chéng',
+ 女婿: 'nǚ xu',
+ 咽喉: 'yān hóu',
+ 重阳: 'chóng yáng',
+ 化为: 'huà wéi',
+ 吐蕃: 'tǔ bō',
+ 钻进: 'zuān jìn',
+ 乐队: 'yuè duì',
+ 亮相: 'liàng xiàng',
+ 被子: 'bèi zi',
+ 舍得: 'shě de',
+ 杉木: 'shā mù',
+ 击中: 'jī zhòng',
+ 排长: 'pái zhǎng',
+ 假期: 'jià qī',
+ 分量: 'fèn liàng',
+ 数次: 'shù cì',
+ 提防: 'dī fáng',
+ 吆喝: 'yāo he',
+ 查处: 'chá chǔ',
+ 量子: 'liàng zǐ',
+ 里头: 'lǐ tou',
+ 调研: 'diào yán',
+ 伺候: 'cì hou',
+ 重申: 'chóng shēn',
+ 枕头: 'zhěn tou',
+ 拚命: 'pīn mìng',
+ 社长: 'shè zhǎng',
+ 归还: 'guī huán',
+ 批量: 'pī liàng',
+ 畜牧: 'xù mù',
+ 点着: 'diǎn zháo',
+ 甚为: 'shèn wéi',
+ 小将: 'xiǎo jiàng',
+ 着眼: 'zhuó yǎn',
+ 处死: 'chǔ sǐ',
+ 厌恶: 'yàn wù',
+ 鼓乐: 'gǔ yuè',
+ 树干: 'shù gàn',
+ 秘鲁: 'bì lǔ',
+ 大方: 'dà fāng',
+ 外头: 'wài tou',
+ 班长: 'bān zhǎng',
+ 星宿: 'xīng xiù',
+ 宁愿: 'nìng yuàn',
+ 钦差: 'qīn chāi',
+ 为数: 'wéi shù',
+ 勾当: 'gòu dàng',
+ 削减: 'xuē jiǎn',
+ 间谍: 'jiàn dié',
+ 埋怨: 'mán yuàn',
+ 结实: 'jiē shi',
+ 计量: 'jì liáng',
+ 淹没: 'yān mò',
+ 村长: 'cūn zhǎng',
+ 连长: 'lián zhǎng',
+ 自给: 'zì jǐ',
+ 武将: 'wǔ jiàng',
+ 温差: 'wēn chā',
+ 直奔: 'zhí bèn',
+ 供求: 'gōng qiú',
+ 剂量: 'jì liàng',
+ 道长: 'dào zhǎng',
+ 泄露: 'xiè lòu',
+ 王八: 'wáng ba',
+ 切割: 'qiē gē',
+ 间隔: 'jiàn gé',
+ 一晃: 'yì huǎng',
+ 长假: 'cháng jià',
+ 令狐: 'líng hú',
+ 为害: 'wéi hài',
+ 句子: 'jù zi',
+ 偿还: 'cháng huán',
+ 疙瘩: 'gē da',
+ 燕山: 'yān shān',
+ 堵塞: 'dǔ sè',
+ 夺冠: 'duó guàn',
+ 扎实: 'zhā shi',
+ 电荷: 'diàn hè',
+ 看守: 'kān shǒu',
+ 复辟: 'fù bì',
+ 郁闷: 'yù mèn',
+ 尽早: 'jǐn zǎo',
+ 切断: 'qiē duàn',
+ 指头: 'zhǐ tou',
+ 为生: 'wéi shēng',
+ 畜生: 'chù sheng',
+ 切除: 'qiē chú',
+ 着力: 'zhuó lì',
+ 着想: 'zhuó xiǎng',
+ 级差: 'jí chā',
+ 投奔: 'tóu bèn',
+ 棍子: 'gùn zi',
+ 含糊: 'hán hu',
+ 少妇: 'shào fù',
+ 兴致: 'xìng zhì',
+ 纳闷: 'nà mèn',
+ 干流: 'gàn liú',
+ 卷起: 'juǎn qǐ',
+ 扇子: 'shàn zi',
+ 更改: 'gēng gǎi',
+ 笼络: 'lǒng luò',
+ 喇叭: 'lǎ ba',
+ 载荷: 'zài hè',
+ 妥当: 'tuǒ dàng',
+ 为难: 'wéi nán',
+ 着陆: 'zhuó lù',
+ 燕子: 'yàn zi',
+ 干吗: 'gàn má',
+ 白发: 'bái fà',
+ 总得: 'zǒng děi',
+ 夹击: 'jiā jī',
+ 曝光: 'bào guāng',
+ 曲调: 'qǔ diào',
+ 相机: 'xiàng jī',
+ 叫化: 'jiào huà',
+ 角逐: 'jué zhú',
+ 啊哟: 'ā yō',
+ 载重: 'zài zhòng',
+ 长辈: 'zhǎng bèi',
+ 出差: 'chū chāi',
+ 垛口: 'duǒ kǒu',
+ 撇开: 'piē kāi',
+ 厅长: 'tīng zhǎng',
+ 组分: 'zǔ fèn',
+ 误差: 'wù chā',
+ 家当: 'jiā dàng',
+ 传记: 'zhuàn jì',
+ 个子: 'gè zi',
+ 铺设: 'pū shè',
+ 干事: 'gàn shì',
+ 杆菌: 'gǎn jūn',
+ 定量: 'dìng liàng',
+ 运载: 'yùn zài',
+ 会儿: 'huì er',
+ 酋长: 'qiú zhǎng',
+ 重返: 'chóng fǎn',
+ 差额: 'chā é',
+ 露面: 'lòu miàn',
+ 钻研: 'zuān yán',
+ 大城: 'dài chéng',
+ 上当: 'shàng dàng',
+ 销量: 'xiāo liàng',
+ 作坊: 'zuō fang',
+ 照相: 'zhào xiàng',
+ 哎呀: 'āi yā',
+ 调集: 'diào jí',
+ 看中: 'kàn zhòng',
+ 议长: 'yì zhǎng',
+ 风筝: 'fēng zheng',
+ 辟邪: 'bì xié',
+ 空隙: 'kòng xì',
+ 更迭: 'gēng dié',
+ 偏差: 'piān chā',
+ 声调: 'shēng diào',
+ 适量: 'shì liàng',
+ 屯子: 'tún zi',
+ 无量: 'wú liàng',
+ 空地: 'kòng dì',
+ 调度: 'diào dù',
+ 散射: 'sǎn shè',
+ 创伤: 'chuāng shāng',
+ 海参: 'hǎi shēn',
+ 满载: 'mǎn zài',
+ 重叠: 'chóng dié',
+ 落差: 'luò chā',
+ 单调: 'dān diào',
+ 老将: 'lǎo jiàng',
+ 人参: 'rén shēn',
+ 间断: 'jiàn duàn',
+ 重现: 'chóng xiàn',
+ 夹杂: 'jiā zá',
+ 调用: 'diào yòng',
+ 萝卜: 'luó bo',
+ 附着: 'fù zhuó',
+ 应声: 'yìng shēng',
+ 主将: 'zhǔ jiàng',
+ 罪过: 'zuì guo',
+ 咀嚼: 'jǔ jué',
+ 为政: 'wéi zhèng',
+ 过量: 'guò liàng',
+ 乐曲: 'yuè qǔ',
+ 负荷: 'fù hè',
+ 枪弹: 'qiāng dàn',
+ 悄然: 'qiǎo rán',
+ 处方: 'chǔ fāng',
+ 悄声: 'qiǎo shēng',
+ 曲子: 'qǔ zi',
+ 情调: 'qíng diào',
+ 挑衅: 'tiǎo xìn',
+ 代为: 'dài wéi',
+ 了结: 'liǎo jié',
+ 打中: 'dǎ zhòng',
+ 酒吧: 'jiǔ bā',
+ 懒得: 'lǎn de',
+ 增量: 'zēng liàng',
+ 衣着: 'yī zhuó',
+ 部将: 'bù jiàng',
+ 要塞: 'yào sài',
+ 茶几: 'chá jī',
+ 杠杆: 'gàng gǎn',
+ 出没: 'chū mò',
+ 鲜有: 'xiǎn yǒu',
+ 间隙: 'jiàn xì',
+ 重担: 'zhòng dàn',
+ 重演: 'chóng yǎn',
+ 重试: 'chóng shì',
+ 应酬: 'yìng chou',
+ 只当: 'zhǐ dāng',
+ 毋宁: 'wú nìng',
+ 包扎: 'bāo zā',
+ 前头: 'qián tou',
+ 卷烟: 'juǎn yān',
+ 非得: 'fēi děi',
+ 弹道: 'dàn dào',
+ 杆子: 'gān zi',
+ 门将: 'mén jiàng',
+ 后头: 'hòu tou',
+ 喝彩: 'hè cǎi',
+ 暖和: 'nuǎn huo',
+ 累积: 'lěi jī',
+ 调遣: 'diào qiǎn',
+ 倔强: 'jué jiàng',
+ 宝藏: 'bǎo zàng',
+ 丧事: 'sāng shì',
+ 约莫: 'yuē mo',
+ 纤夫: 'qiàn fū',
+ 更替: 'gēng tì',
+ 装载: 'zhuāng zài',
+ 背包: 'bēi bāo',
+ 帖子: 'tiě zi',
+ 松散: 'sōng sǎn',
+ 呼喝: 'hū hè',
+ 可恶: 'kě wù',
+ 自转: 'zì zhuàn',
+ 供电: 'gōng diàn',
+ 反省: 'fǎn xǐng',
+ 坦率: 'tǎn shuài',
+ 苏打: 'sū dá',
+ 本分: 'běn fèn',
+ 落得: 'luò de',
+ 鄙薄: 'bǐ bó',
+ 相间: 'xiāng jiàn',
+ 单薄: 'dān bó',
+ 混蛋: 'hún dàn',
+ 贞观: 'zhēn guān',
+ 附和: 'fù hè',
+ 能耐: 'néng nài',
+ 吓唬: 'xià hu',
+ 未了: 'wèi liǎo',
+ 引着: 'yǐn zháo',
+ 抽调: 'chōu diào',
+ 沙子: 'shā zi',
+ 席卷: 'xí juǎn',
+ 标的: 'biāo dì',
+ 别扭: 'biè niu',
+ 思量: 'sī liang',
+ 喝采: 'hè cǎi',
+ 论语: 'lún yǔ',
+ 盖子: 'gài zi',
+ 分外: 'fèn wài',
+ 弄堂: 'lòng táng',
+ 乐舞: 'yuè wǔ',
+ 雨量: 'yǔ liàng',
+ 毛发: 'máo fà',
+ 差遣: 'chāi qiǎn',
+ 背负: 'bēi fù',
+ 转速: 'zhuàn sù',
+ 声乐: 'shēng yuè',
+ 夹攻: 'jiā gōng',
+ 供水: 'gōng shuǐ',
+ 主干: 'zhǔ gàn',
+ 惩处: 'chéng chǔ',
+ 长相: 'zhǎng xiàng',
+ 公差: 'gōng chāi',
+ 榴弹: 'liú dàn',
+ 省得: 'shěng de',
+ 条子: 'tiáo zi',
+ 重围: 'chóng wéi',
+ 阻塞: 'zǔ sè',
+ 劲风: 'jìng fēng',
+ 纠葛: 'jiū gé',
+ 颠簸: 'diān bǒ',
+ 点中: 'diǎn zhòng',
+ 重创: 'zhòng chuāng',
+ 姥姥: 'lǎo lao',
+ 迷糊: 'mí hu',
+ 公家: 'gōng jia',
+ 几率: 'jī lǜ',
+ 苦闷: 'kǔ mèn',
+ 度量: 'dù liàng',
+ 差错: 'chā cuò',
+ 暑假: 'shǔ jià',
+ 参差: 'cēn cī',
+ 搭载: 'dā zài',
+ 助长: 'zhù zhǎng',
+ 相称: 'xiāng chèn',
+ 红晕: 'hóng yùn',
+ 舍命: 'shě mìng',
+ 喜好: 'xǐ hào',
+ 列传: 'liè zhuàn',
+ 劲敌: 'jìng dí',
+ 蛤蟆: 'há ma',
+ 请假: 'qǐng jià',
+ 钉子: 'dīng zi',
+ 沉没: 'chén mò',
+ 高丽: 'gāo lí',
+ 休假: 'xiū jià',
+ 无为: 'wú wéi',
+ 巴结: 'bā jie',
+ 了得: 'liǎo dé',
+ 变相: 'biàn xiàng',
+ 核弹: 'hé dàn',
+ 亲家: 'qìng jia',
+ 承载: 'chéng zài',
+ 喝问: 'hè wèn',
+ 还击: 'huán jī',
+ 交还: 'jiāo huán',
+ 将令: 'jiàng lìng',
+ 单于: 'chán yú',
+ 空缺: 'kòng quē',
+ 绿林: 'lù lín',
+ 胆量: 'dǎn liàng',
+ 执着: 'zhí zhuó',
+ 低调: 'dī diào',
+ 闭塞: 'bì sè',
+ 轻薄: 'qīng bó',
+ 得当: 'dé dàng',
+ 占卜: 'zhān bǔ',
+ 扫帚: 'sào zhou',
+ 龟兹: 'qiū cí',
+ 年长: 'nián zhǎng',
+ 外传: 'wài zhuàn',
+ 头子: 'tóu zi',
+ 裁缝: 'cái feng',
+ 礼乐: 'lǐ yuè',
+ 血泊: 'xuè pō',
+ 散乱: 'sǎn luàn',
+ 动量: 'dòng liàng',
+ 倒腾: 'dǎo teng',
+ 取舍: 'qǔ shě',
+ 咱家: 'zán jiā',
+ 长发: 'cháng fà',
+ 爪哇: 'zhǎo wā',
+ 弹壳: 'dàn ké',
+ 省悟: 'xǐng wù',
+ 嚷嚷: 'rāng rang',
+ 连累: 'lián lèi',
+ 应得: 'yīng dé',
+ 族长: 'zú zhǎng',
+ 柜子: 'guì zi',
+ 擂鼓: 'léi gǔ',
+ 眩晕: 'xuàn yùn',
+ 调配: 'tiáo pèi',
+ 躯干: 'qū gàn',
+ 差役: 'chāi yì',
+ 坎坷: 'kǎn kě',
+ 少儿: 'shào ér',
+ 乐团: 'yuè tuán',
+ 养分: 'yǎng fèn',
+ 退还: 'tuì huán',
+ 格调: 'gé diào',
+ 语调: 'yǔ diào',
+ 音调: 'yīn diào',
+ 乐府: 'yuè fǔ',
+ 古朴: 'gǔ pǔ',
+ 打点: 'dǎ diǎn',
+ 差使: 'chāi shǐ',
+ 匀称: 'yún chèn',
+ 瘦削: 'shòu xuē',
+ 膏药: 'gāo yao',
+ 吞没: 'tūn mò',
+ 调任: 'diào rèn',
+ 散居: 'sǎn jū',
+ 上头: 'shàng tóu',
+ 风靡: 'fēng mǐ',
+ 放假: 'fàng jià',
+ 估量: 'gū liang',
+ 失当: 'shī dàng',
+ 中弹: 'zhòng dàn',
+ 妄为: 'wàng wéi',
+ 长者: 'zhǎng zhě',
+ 起哄: 'qǐ hòng',
+ 末了: 'mò liǎo',
+ 相声: 'xiàng sheng',
+ 校正: 'jiào zhèng',
+ 劝降: 'quàn xiáng',
+ 矢量: 'shǐ liàng',
+ 沉闷: 'chén mèn',
+ 给与: 'jǐ yǔ',
+ 解法: 'jiě fǎ',
+ 塞外: 'sài wài',
+ 将校: 'jiàng xiào',
+ 嗜好: 'shì hào',
+ 没落: 'mò luò',
+ 朴刀: 'pō dāo',
+ 片子: 'piān zi',
+ 切削: 'qiē xiāo',
+ 弹丸: 'dàn wán',
+ 稀薄: 'xī bó',
+ 亏得: 'kuī dé',
+ 间歇: 'jiàn xiē',
+ 翘首: 'qiáo shǒu',
+ 色调: 'sè diào',
+ 处决: 'chǔ jué',
+ 表率: 'biǎo shuài',
+ 尺子: 'chǐ zi',
+ 招降: 'zhāo xiáng',
+ 称职: 'chèn zhí',
+ 斗篷: 'dǒu peng',
+ 铺子: 'pù zi',
+ 底子: 'dǐ zi',
+ 负载: 'fù zài',
+ 干警: 'gàn jǐng',
+ 倒数: 'dào shǔ',
+ 将官: 'jiàng guān',
+ 锄头: 'chú tou',
+ 归降: 'guī xiáng',
+ 疟疾: 'nüè ji',
+ 唠叨: 'láo dao',
+ 限量: 'xiàn liàng',
+ 屏息: 'bǐng xī',
+ 重逢: 'chóng féng',
+ 器乐: 'qì yuè',
+ 氢弹: 'qīng dàn',
+ 脖颈: 'bó gěng',
+ 妃子: 'fēi zi',
+ 处事: 'chǔ shì',
+ 参量: 'cān liàng',
+ 轻率: 'qīng shuài',
+ 缥缈: 'piāo miǎo',
+ 中奖: 'zhòng jiǎng',
+ 才干: 'cái gàn',
+ 施舍: 'shī shě',
+ 卷子: 'juàn zi',
+ 游说: 'yóu shuì',
+ 巷子: 'xiàng zi',
+ 膀胱: 'páng guāng',
+ 切勿: 'qiè wù',
+ 看管: 'kān guǎn',
+ 风头: 'fēng tou',
+ 精干: 'jīng gàn',
+ 高差: 'gāo chā',
+ 恐吓: 'kǒng hè',
+ 扁担: 'biǎn dàn',
+ 给养: 'jǐ yǎng',
+ 格子: 'gé zi',
+ 供需: 'gōng xū',
+ 反差: 'fǎn chā',
+ 飞弹: 'fēi dàn',
+ 微薄: 'wēi bó',
+ 发型: 'fà xíng',
+ 即兴: 'jí xìng',
+ 攒动: 'cuán dòng',
+ 间或: 'jiàn huò',
+ 浅薄: 'qiǎn bó',
+ 乐章: 'yuè zhāng',
+ 顺差: 'shùn chā',
+ 调子: 'diào zi',
+ 相位: 'xiàng wèi',
+ 转子: 'zhuàn zǐ',
+ 劲旅: 'jìng lǚ',
+ 咔嚓: 'kā chā',
+ 了事: 'liǎo shì',
+ 转悠: 'zhuàn you',
+ 当铺: 'dàng pù',
+ 爪子: 'zhuǎ zi',
+ 单子: 'dān zi',
+ 好战: 'hào zhàn',
+ 燕麦: 'yàn mài',
+ 只许: 'zhǐ xǔ',
+ 干练: 'gàn liàn',
+ 女将: 'nǚ jiàng',
+ 酒量: 'jiǔ liàng',
+ 划船: 'huá chuán',
+ 伎俩: 'jì liǎng',
+ 挑拨: 'tiǎo bō',
+ 少校: 'shào xiào',
+ 着落: 'zhuó luò',
+ 憎恶: 'zēng wù',
+ 刻薄: 'kè bó',
+ 要挟: 'yāo xié',
+ 用处: 'yòng chu',
+ 还手: 'huán shǒu',
+ 模具: 'mú jù',
+ 执著: 'zhí zhuó',
+ 喝令: 'hè lìng',
+ 保长: 'bǎo zhǎng',
+ 吸着: 'xī zhe',
+ 症结: 'zhēng jié',
+ 公转: 'gōng zhuàn',
+ 校勘: 'jiào kān',
+ 重提: 'chóng tí',
+ 扫兴: 'sǎo xìng',
+ 铺盖: 'pū gài',
+ 长史: 'zhǎng shǐ',
+ 差价: 'chā jià',
+ 压根: 'yà gēn',
+ 怔住: 'zhèng zhù',
+ 应允: 'yīng yǔn',
+ 切入: 'qiē rù',
+ 战将: 'zhàn jiàng',
+ 年少: 'nián shào',
+ 舍身: 'shě shēn',
+ 执拗: 'zhí niù',
+ 处世: 'chǔ shì',
+ 中风: 'zhòng fēng',
+ 等量: 'děng liàng',
+ 放量: 'fàng liàng',
+ 腔调: 'qiāng diào',
+ 老少: 'lǎo shào',
+ 没入: 'mò rù',
+ 瓜葛: 'guā gé',
+ 将帅: 'jiàng shuài',
+ 车载: 'chē zài',
+ 窝囊: 'wō nang',
+ 长进: 'zhǎng jìn',
+ 可汗: 'kè hán',
+ 并州: 'bīng zhōu',
+ 供销: 'gōng xiāo',
+ 切片: 'qiē piàn',
+ 差事: 'chāi shì',
+ 知会: 'zhī hui',
+ 鹰爪: 'yīng zhǎo',
+ 处女: 'chǔ nǚ',
+ 切磋: 'qiē cuō',
+ 日头: 'rì tou',
+ 押解: 'yā jiè',
+ 滋长: 'zī zhǎng',
+ 道观: 'dào guàn',
+ 脚色: 'jué sè',
+ 当量: 'dāng liàng',
+ 婆家: 'pó jia',
+ 缘分: 'yuán fèn',
+ 空闲: 'kòng xián',
+ 好色: 'hào sè',
+ 怒喝: 'nù hè',
+ 笼统: 'lǒng tǒng',
+ 边塞: 'biān sài',
+ 何曾: 'hé céng',
+ 重合: 'chóng hé',
+ 零散: 'líng sǎn',
+ 轰隆: 'hōng lōng',
+ 化子: 'huà zi',
+ 内蒙: 'nèi měng',
+ 数落: 'shǔ luò',
+ 逆差: 'nì chā',
+ 牟利: 'móu lì',
+ 栅栏: 'zhà lan',
+ 中标: 'zhòng biāo',
+ 调档: 'diào dàng',
+ 佝偻: 'gōu lóu',
+ 场子: 'chǎng zi',
+ 甲壳: 'jiǎ qiào',
+ 重温: 'chóng wēn',
+ 炮制: 'páo zhì',
+ 返还: 'fǎn huán',
+ 自传: 'zì zhuàn',
+ 高调: 'gāo diào',
+ 殷红: 'yān hóng',
+ 固着: 'gù zhuó',
+ 强求: 'qiǎng qiú',
+ 本相: 'běn xiàng',
+ 骄横: 'jiāo hèng',
+ 草率: 'cǎo shuài',
+ 气闷: 'qì mèn',
+ 着色: 'zhuó sè',
+ 宁肯: 'nìng kěn',
+ 兴头: 'xìng tou',
+ 拘泥: 'jū nì',
+ 夹角: 'jiā jiǎo',
+ 发髻: 'fà jì',
+ 猛将: 'měng jiàng',
+ 约摸: 'yuē mo',
+ 拖累: 'tuō lěi',
+ 呢绒: 'ní róng',
+ 钻探: 'zuān tàn',
+ 夹层: 'jiā céng',
+ 落魄: 'luò pò',
+ 巷道: 'hàng dào',
+ 运量: 'yùn liàng',
+ 解闷: 'jiě mèn',
+ 空儿: 'kòng er',
+ 估摸: 'gū mo',
+ 好客: 'hào kè',
+ 钻孔: 'zuān kǒng',
+ 糊弄: 'hù nòng',
+ 荥阳: 'xíng yáng',
+ 烦闷: 'fán mèn',
+ 仓卒: 'cāng cù',
+ 分叉: 'fēn chà',
+ 厂子: 'chǎng zi',
+ 小调: 'xiǎo diào',
+ 少阳: 'shào yáng',
+ 受降: 'shòu xiáng',
+ 染坊: 'rǎn fáng',
+ 胳臂: 'gē bei',
+ 将门: 'jiàng mén',
+ 模板: 'mú bǎn',
+ 配给: 'pèi jǐ',
+ 为伍: 'wéi wǔ',
+ 跟头: 'gēn tou',
+ 划算: 'huá suàn',
+ 累赘: 'léi zhui',
+ 哄笑: 'hōng xiào',
+ 晕眩: 'yūn xuàn',
+ 干掉: 'gàn diào',
+ 缝制: 'féng zhì',
+ 难处: 'nán chù',
+ 着意: 'zhuó yì',
+ 蛮横: 'mán hèng',
+ 奇数: 'jī shù',
+ 短发: 'duǎn fà',
+ 生还: 'shēng huán',
+ 还清: 'huán qīng',
+ 看护: 'kān hù',
+ 直率: 'zhí shuài',
+ 奏乐: 'zòu yuè',
+ 载客: 'zài kè',
+ 专横: 'zhuān hèng',
+ 湮没: 'yān mò',
+ 空格: 'kòng gé',
+ 铺垫: 'pū diàn',
+ 良将: 'liáng jiàng',
+ 哗啦: 'huā lā',
+ 散漫: 'sǎn màn',
+ 脱发: 'tuō fà',
+ 送还: 'sòng huán',
+ 埋没: 'mái mò',
+ 累及: 'lěi jí',
+ 薄雾: 'bó wù',
+ 调离: 'diào lí',
+ 舌苔: 'shé tāi',
+ 机长: 'jī zhǎng',
+ 栓塞: 'shuān sè',
+ 配角: 'pèi jué',
+ 切口: 'qiē kǒu',
+ 创口: 'chuāng kǒu',
+ 哈欠: 'hā qian',
+ 实弹: 'shí dàn',
+ 铺平: 'pū píng',
+ 哈达: 'hǎ dá',
+ 懒散: 'lǎn sǎn',
+ 实干: 'shí gàn',
+ 填空: 'tián kòng',
+ 刁钻: 'diāo zuān',
+ 乐师: 'yuè shī',
+ 量变: 'liàng biàn',
+ 诱降: 'yòu xiáng',
+ 搪塞: 'táng sè',
+ 征调: 'zhēng diào',
+ 夹道: 'jiā dào',
+ 干咳: 'gān ké',
+ 止咳: 'zhǐ ké',
+ 乐工: 'yuè gōng',
+ 划过: 'huá guò',
+ 着火: 'zháo huǒ',
+ 更正: 'gēng zhèng',
+ 给付: 'jǐ fù',
+ 空子: 'kòng zi',
+ 哪吒: 'né zhā',
+ 正着: 'zhèng zháo',
+ 刷子: 'shuā zi',
+ 丧葬: 'sāng zàng',
+ 夹带: 'jiā dài',
+ 安分: 'ān fèn',
+ 中意: 'zhòng yì',
+ 长孙: 'zhǎng sūn',
+ 校订: 'jiào dìng',
+ 卷曲: 'juǎn qū',
+ 载运: 'zài yùn',
+ 投弹: 'tóu dàn',
+ 柞蚕: 'zuò cán',
+ 份量: 'fèn liàng',
+ 调换: 'diào huàn',
+ 了然: 'liǎo rán',
+ 咧嘴: 'liě zuǐ',
+ 典当: 'diǎn dàng',
+ 寒假: 'hán jià',
+ 长兄: 'zhǎng xiōng',
+ 给水: 'jǐ shuǐ',
+ 须发: 'xū fà',
+ 枝干: 'zhī gàn',
+ 属相: 'shǔ xiàng',
+ 哄抢: 'hōng qiǎng',
+ 刻划: 'kè huà',
+ 塞子: 'sāi zi',
+ 单干: 'dān gàn',
+ 还乡: 'huán xiāng',
+ 兆头: 'zhào tou',
+ 寺观: 'sì guàn',
+ 督率: 'dū shuài',
+ 啊哈: 'ā ha',
+ 割舍: 'gē shě',
+ 抹布: 'mā bù',
+ 好恶: 'hào wù',
+ 下处: 'xià chǔ',
+ 消长: 'xiāo zhǎng',
+ 离间: 'lí jiàn',
+ 准头: 'zhǔn tou',
+ 校对: 'jiào duì',
+ 什物: 'shí wù',
+ 番禺: 'pān yú',
+ 佛爷: 'fó ye',
+ 吗啡: 'mǎ fēi',
+ 盐分: 'yán fèn',
+ 虎将: 'hǔ jiàng',
+ 薄荷: 'bò he',
+ 独处: 'dú chǔ',
+ 空位: 'kòng wèi',
+ 铺路: 'pū lù',
+ 乌拉: 'wū lā',
+ 调回: 'diào huí',
+ 来头: 'lái tou',
+ 闲散: 'xián sǎn',
+ 胶卷: 'jiāo juǎn',
+ 冒失: 'mào shi',
+ 干劲: 'gàn jìn',
+ 弦乐: 'xián yuè',
+ 相国: 'xiàng guó',
+ 丹参: 'dān shēn',
+ 助兴: 'zhù xìng',
+ 铺开: 'pū kāi',
+ 次长: 'cì zhǎng',
+ 发卡: 'fà qiǎ',
+ 拮据: 'jié jū',
+ 刹车: 'shā chē',
+ 生发: 'shēng fà',
+ 重播: 'chóng bō',
+ 缝合: 'féng hé',
+ 音量: 'yīn liàng',
+ 少尉: 'shào wèi',
+ 冲压: 'chòng yā',
+ 苍劲: 'cāng jìng',
+ 厚薄: 'hòu báo',
+ 威吓: 'wēi hè',
+ 外相: 'wài xiàng',
+ 呼号: 'hū háo',
+ 着迷: 'zháo mí',
+ 挑担: 'tiāo dàn',
+ 纹路: 'wén lù',
+ 还俗: 'huán sú',
+ 强横: 'qiáng hèng',
+ 着数: 'zhāo shù',
+ 降顺: 'xiáng shùn',
+ 挑明: 'tiǎo míng',
+ 眯缝: 'mī feng',
+ 分内: 'fèn nèi',
+ 更衣: 'gēng yī',
+ 软和: 'ruǎn huo',
+ 尽兴: 'jìn xìng',
+ 号子: 'hào zi',
+ 爪牙: 'zhǎo yá',
+ 败将: 'bài jiàng',
+ 猜中: 'cāi zhòng',
+ 结扎: 'jié zā',
+ 没空: 'méi kòng',
+ 夹缝: 'jiā fèng',
+ 拾掇: 'shí duo',
+ 掺和: 'chān huo',
+ 簸箕: 'bò ji',
+ 电量: 'diàn liàng',
+ 荷载: 'hè zǎi',
+ 调式: 'diào shì',
+ 处身: 'chǔ shēn',
+ 打手: 'dǎ shǒu',
+ 弹弓: 'dàn gōng',
+ 横蛮: 'hèng mán',
+ 能干: 'néng gàn',
+ 校点: 'jiào diǎn',
+ 加载: 'jiā zài',
+ 干校: 'gàn xiào',
+ 哄传: 'hōng chuán',
+ 校注: 'jiào zhù',
+ 淤塞: 'yū sè',
+ 马扎: 'mǎ zhá',
+ 月氏: 'yuè zhī',
+ 高干: 'gāo gàn',
+ 经传: 'jīng zhuàn',
+ 曾孙: 'zēng sūn',
+ 好斗: 'hào dòu',
+ 关卡: 'guān qiǎ',
+ 逃奔: 'táo bèn',
+ 磨蹭: 'mó ceng',
+ 牟取: 'móu qǔ',
+ 颤栗: 'zhàn lì',
+ 蚂蚱: 'mà zha',
+ 撮合: 'cuō he',
+ 趔趄: 'liè qie',
+ 摔打: 'shuāi dǎ',
+ 台子: 'tái zi',
+ 分得: 'fēn de',
+ 粘着: 'nián zhuó',
+ 采邑: 'cài yì',
+ 散装: 'sǎn zhuāng',
+ 婀娜: 'ē nuó',
+ 兴味: 'xìng wèi',
+ 行头: 'xíng tou',
+ 气量: 'qì liàng',
+ 调运: 'diào yùn',
+ 处治: 'chǔ zhì',
+ 乐音: 'yuè yīn',
+ 充塞: 'chōng sè',
+ 恫吓: 'dòng hè',
+ 论调: 'lùn diào',
+ 相中: 'xiāng zhòng',
+ 民乐: 'mín yuè',
+ 炮仗: 'pào zhang',
+ 丧服: 'sāng fú',
+ 骁将: 'xiāo jiàng',
+ 量刑: 'liàng xíng',
+ 缝补: 'féng bǔ',
+ 财会: 'cái kuài',
+ 大干: 'dà gàn',
+ 历数: 'lì shǔ',
+ 校场: 'jiào chǎng',
+ 塞北: 'sài běi',
+ 识相: 'shí xiàng',
+ 辱没: 'rǔ mò',
+ 鲜亮: 'xiān liàng',
+ 语塞: 'yǔ sè',
+ 露脸: 'lòu liǎn',
+ 凉快: 'liáng kuai',
+ 腰杆: 'yāo gǎn',
+ 溜达: 'liū da',
+ 嘎嘎: 'gā gā',
+ 公干: 'gōng gàn',
+ 桔梗: 'jié gěng',
+ 挑逗: 'tiǎo dòu',
+ 看门: 'kān mén',
+ 乐歌: 'yuè gē',
+ 拓片: 'tà piàn',
+ 挑动: 'tiǎo dòng',
+ 准将: 'zhǔn jiàng',
+ 遒劲: 'qiú jìng',
+ 磨坊: 'mò fáng',
+ 逶迤: 'wēi yí',
+ 搅和: 'jiǎo huo',
+ 摩挲: 'mó suō',
+ 作弄: 'zuò nòng',
+ 苗头: 'miáo tou',
+ 打颤: 'dǎ zhàn',
+ 大藏: 'dà zàng',
+ 畜牲: 'chù shēng',
+ 勾搭: 'gōu da',
+ 树荫: 'shù yīn',
+ 树杈: 'shù chà',
+ 铁杆: 'tiě gǎn',
+ 将相: 'jiàng xiàng',
+ 份子: 'fèn zi',
+ 视差: 'shì chā',
+ 绿荫: 'lǜ yīn',
+ 枪杆: 'qiāng gǎn',
+ 缝纫: 'féng rèn',
+ 愁闷: 'chóu mèn',
+ 点将: 'diǎn jiàng',
+ 华佗: 'huà tuó',
+ 劲射: 'jìng shè',
+ 箱笼: 'xiāng lǒng',
+ 终了: 'zhōng liǎo',
+ 鬓发: 'bìn fà',
+ 结巴: 'jiē ba',
+ 苦干: 'kǔ gàn',
+ 看家: 'kān jiā',
+ 正旦: 'zhēng dàn',
+ 中肯: 'zhòng kěn',
+ 厦门: 'xià mén',
+ 东莞: 'dōng guǎn',
+ 食量: 'shí liàng',
+ 宫调: 'gōng diào',
+ 间作: 'jiàn zuò',
+ 弹片: 'dàn piàn',
+ 差池: 'chā chí',
+ 漂白: 'piǎo bái',
+ 杠子: 'gàng zi',
+ 调处: 'tiáo chǔ',
+ 好动: 'hào dòng',
+ 转炉: 'zhuàn lú',
+ 屏气: 'bǐng qì',
+ 夹板: 'jiā bǎn',
+ 哀乐: 'āi yuè',
+ 干道: 'gàn dào',
+ 苦处: 'kǔ chù',
+ 劈柴: 'pǐ chái',
+ 长势: 'zhǎng shì',
+ 天华: 'tiān huá',
+ 共处: 'gòng chǔ',
+ 校验: 'jiào yàn',
+ 出塞: 'chū sài',
+ 磨盘: 'mò pán',
+ 萎靡: 'wěi mǐ',
+ 奔丧: 'bēn sāng',
+ 唱和: 'chàng hè',
+ 大调: 'dà diào',
+ 非分: 'fēi fèn',
+ 钻营: 'zuān yíng',
+ 夹子: 'jiā zi',
+ 超载: 'chāo zài',
+ 更始: 'gēng shǐ',
+ 铃铛: 'líng dang',
+ 披散: 'pī sàn',
+ 发还: 'fā huán',
+ 转轮: 'zhuàn lún',
+ 横财: 'hèng cái',
+ 泡桐: 'pāo tóng',
+ 抛撒: 'pāo sǎ',
+ 天呀: 'tiān yā',
+ 糊糊: 'hū hu',
+ 躯壳: 'qū qiào',
+ 通量: 'tōng liàng',
+ 奉还: 'fèng huán',
+ 午觉: 'wǔ jiào',
+ 闷棍: 'mèn gùn',
+ 浪头: 'làng tou',
+ 砚台: 'yàn tái',
+ 油坊: 'yóu fáng',
+ 学长: 'xué zhǎng',
+ 过载: 'guò zài',
+ 笔调: 'bǐ diào',
+ 衣被: 'yī bèi',
+ 畜产: 'xù chǎn',
+ 调阅: 'diào yuè',
+ 蛮干: 'mán gàn',
+ 曾祖: 'zēng zǔ',
+ 提干: 'tí gàn',
+ 变调: 'biàn diào',
+ 覆没: 'fù mò',
+ 模子: 'mú zi',
+ 乐律: 'yuè lǜ',
+ 称心: 'chèn xīn',
+ 木杆: 'mù gān',
+ 重印: 'chóng yìn',
+ 自省: 'zì xǐng',
+ 提调: 'tí diào',
+ 看相: 'kàn xiàng',
+ 芋头: 'yù tou',
+ 下切: 'xià qiē',
+ 塞上: 'sài shàng',
+ 铺张: 'pū zhāng',
+ 藤蔓: 'téng wàn',
+ 薄幸: 'bó xìng',
+ 解数: 'xiè shù',
+ 褪去: 'tuì qù',
+ 霰弹: 'xiàn dàn',
+ 柚木: 'yóu mù',
+ 痕量: 'hén liàng',
+ 雅乐: 'yǎ yuè',
+ 号哭: 'háo kū',
+ 诈降: 'zhà xiáng',
+ 猪圈: 'zhū juàn',
+ 咋舌: 'zé shé',
+ 铣床: 'xǐ chuáng',
+ 防弹: 'fáng dàn',
+ 健将: 'jiàn jiàng',
+ 丽水: 'lí shuǐ',
+ 削发: 'xuē fà',
+ 空当: 'kòng dāng',
+ 多相: 'duō xiàng',
+ 鲜见: 'xiǎn jiàn',
+ 划桨: 'huá jiǎng',
+ 载波: 'zài bō',
+ 跳蚤: 'tiào zao',
+ 俏皮: 'qiào pí',
+ 吧嗒: 'bā dā',
+ 结发: 'jié fà',
+ 了断: 'liǎo duàn',
+ 同调: 'tóng diào',
+ 石磨: 'shí mò',
+ 时差: 'shí chā',
+ 鼻塞: 'bí sè',
+ 挑子: 'tiāo zi',
+ 推磨: 'tuī mò',
+ 武侯: 'wǔ hóu',
+ 抹煞: 'mǒ shā',
+ 调转: 'diào zhuǎn',
+ 籍没: 'jí mò',
+ 还债: 'huán zhài',
+ 调演: 'diào yǎn',
+ 分划: 'fēn huá',
+ 奇偶: 'jī ǒu',
+ 断喝: 'duàn hè',
+ 闷雷: 'mèn léi',
+ 狼藉: 'láng jí',
+ 饭量: 'fàn liàng',
+ 还礼: 'huán lǐ',
+ 转调: 'zhuǎn diào',
+ 星相: 'xīng xiàng',
+ 手相: 'shǒu xiàng',
+ 配乐: 'pèi yuè',
+ 盖头: 'gài tou',
+ 连杆: 'lián gǎn',
+ 簿记: 'bù jì',
+ 刀把: 'dāo bà',
+ 量词: 'liàng cí',
+ 名角: 'míng jué',
+ 步调: 'bù diào',
+ 校本: 'jiào běn',
+ 账簿: 'zhàng bù',
+ 隽永: 'juàn yǒng',
+ 稍为: 'shāo wéi',
+ 易传: 'yì zhuàn',
+ 乐谱: 'yuè pǔ',
+ 牵累: 'qiān lěi',
+ 答理: 'dā li',
+ 喝斥: 'hè chì',
+ 吟哦: 'yín é',
+ 干渠: 'gàn qú',
+ 海量: 'hǎi liàng',
+ 精当: 'jīng dàng',
+ 着床: 'zhuó chuáng',
+ 月相: 'yuè xiàng',
+ 庶几: 'shù jī',
+ 宫观: 'gōng guàn',
+ 论处: 'lùn chǔ',
+ 征辟: 'zhēng bì',
+ 厚朴: 'hòu pò',
+ 介壳: 'jiè qiào',
+ 吭哧: 'kēng chī',
+ 咯血: 'kǎ xiě',
+ 铺陈: 'pū chén',
+ 重生: 'chóng shēng',
+ 乐理: 'yuè lǐ',
+ 哀号: 'āi háo',
+ 藏历: 'zàng lì',
+ 刚劲: 'gāng jìng',
+ 削平: 'xuē píng',
+ 浓荫: 'nóng yīn',
+ 城垛: 'chéng duǒ',
+ 当差: 'dāng chāi',
+ 正传: 'zhèng zhuàn',
+ 并处: 'bìng chǔ',
+ 创面: 'chuāng miàn',
+ 旦角: 'dàn jué',
+ 薄礼: 'bó lǐ',
+ 晃荡: 'huàng dang',
+ 臊子: 'sào zi',
+ 家什: 'jiā shí',
+ 闷头: 'mēn tóu',
+ 美发: 'měi fà',
+ 度数: 'dù shu',
+ 着凉: 'zháo liáng',
+ 闯将: 'chuǎng jiàng',
+ 几案: 'jī àn',
+ 姘头: 'pīn tou',
+ 差数: 'chā shù',
+ 散碎: 'sǎn suì',
+ 壅塞: 'yōng sè',
+ 寒颤: 'hán zhàn',
+ 牵强: 'qiān qiǎng',
+ 无间: 'wú jiàn',
+ 轮转: 'lún zhuàn',
+ 号叫: 'háo jiào',
+ 铺排: 'pū pái',
+ 降伏: 'xiáng fú',
+ 轧钢: 'zhá gāng',
+ 东阿: 'dōng ē',
+ 病假: 'bìng jià',
+ 累加: 'lěi jiā',
+ 梗塞: 'gěng sè',
+ 弹夹: 'dàn jiā',
+ 钻心: 'zuān xīn',
+ 晃眼: 'huǎng yǎn',
+ 魔爪: 'mó zhǎo',
+ 标量: 'biāo liàng',
+ 憋闷: 'biē mèn',
+ 猜度: 'cāi duó',
+ 处士: 'chǔ shì',
+ 官差: 'guān chāi',
+ 讨还: 'tǎo huán',
+ 长门: 'cháng mén',
+ 馏分: 'liú fēn',
+ 里弄: 'lǐ lòng',
+ 色相: 'sè xiàng',
+ 雅兴: 'yǎ xìng',
+ 角力: 'jué lì',
+ 弹坑: 'dàn kēng',
+ 枝杈: 'zhī chà',
+ 夹具: 'jiā jù',
+ 处刑: 'chǔ xíng',
+ 悍将: 'hàn jiàng',
+ 好学: 'hào xué',
+ 好好: 'hǎo hǎo',
+ 银发: 'yín fà',
+ 扫把: 'sào bǎ',
+ 法相: 'fǎ xiàng',
+ 贵干: 'guì gàn',
+ 供气: 'gōng qì',
+ 空余: 'kòng yú',
+ 捆扎: 'kǔn zā',
+ 瘠薄: 'jí bó',
+ 浆糊: 'jiàng hu',
+ 嘎吱: 'gā zhī',
+ 调令: 'diào lìng',
+ 法帖: 'fǎ tiè',
+ 淋病: 'lìn bìng',
+ 调派: 'diào pài',
+ 转盘: 'zhuàn pán',
+ 供稿: 'gōng gǎo',
+ 差官: 'chāi guān',
+ 忧闷: 'yōu mèn',
+ 教长: 'jiào zhǎng',
+ 重唱: 'chóng chàng',
+ 酒兴: 'jiǔ xìng',
+ 乐坛: 'yuè tán',
+ 花呢: 'huā ní',
+ 叱喝: 'chì hè',
+ 膀臂: 'bǎng bì',
+ 得空: 'dé kòng',
+ 转圈: 'zhuàn quān',
+ 横暴: 'hèng bào',
+ 哄抬: 'hōng tái',
+ 引吭: 'yǐn háng',
+ 载货: 'zài huò',
+ 中计: 'zhòng jì',
+ 官长: 'guān zhǎng',
+ 相面: 'xiàng miàn',
+ 看头: 'kàn tou',
+ 盼头: 'pàn tou',
+ 意兴: 'yì xìng',
+ 军乐: 'jūn yuè',
+ 累次: 'lěi cì',
+ 骨嘟: 'gǔ dū',
+ 燕赵: 'yān zhào',
+ 报丧: 'bào sāng',
+ 弥撒: 'mí sa',
+ 挨斗: 'ái dòu',
+ 扁舟: 'piān zhōu',
+ 丑角: 'chǒu jué',
+ 吊丧: 'diào sāng',
+ 强将: 'qiáng jiàng',
+ 重奏: 'chóng zòu',
+ 发辫: 'fà biàn',
+ 着魔: 'zháo mó',
+ 着法: 'zhāo fǎ',
+ 盛放: 'shèng fàng',
+ 填塞: 'tián sè',
+ 凶横: 'xiōng hèng',
+ 稽首: 'qǐ shǒu',
+ 碑帖: 'bēi tiè',
+ 冲量: 'chōng liàng',
+ 发菜: 'fà cài',
+ 假发: 'jiǎ fà',
+ 翻卷: 'fān juǎn',
+ 小量: 'xiǎo liàng',
+ 胶着: 'jiāo zhuó',
+ 里子: 'lǐ zi',
+ 调调: 'diào diao',
+ 散兵: 'sǎn bīng',
+ 高挑: 'gāo tiǎo',
+ 播撒: 'bō sǎ',
+ 夹心: 'jiā xīn',
+ 扇动: 'shān dòng',
+ 叨扰: 'tāo rǎo',
+ 霓裳: 'ní cháng',
+ 捻子: 'niǎn zi',
+ 弥缝: 'mí féng',
+ 撒布: 'sǎ bù',
+ 场院: 'cháng yuàn',
+ 省亲: 'xǐng qīn',
+ 提拉: 'tí lā',
+ 惯量: 'guàn liàng',
+ 强逼: 'qiáng bī',
+ 强征: 'qiáng zhēng',
+ 晕车: 'yùn chē',
+ 数道: 'shù dào',
+ 带累: 'dài lèi',
+ 拓本: 'tà běn',
+ 嫌恶: 'xián wù',
+ 宿将: 'sù jiàng',
+ 龟裂: 'jūn liè',
+ 缠夹: 'chán jiā',
+ 发式: 'fà shì',
+ 隔扇: 'gé shàn',
+ 天分: 'tiān fèn',
+ 癖好: 'pǐ hào',
+ 四通: 'sì tōng',
+ 白术: 'bái zhú',
+ 划伤: 'huá shāng',
+ 角斗: 'jué dòu',
+ 听差: 'tīng chāi',
+ 岁差: 'suì chā',
+ 丧礼: 'sāng lǐ',
+ 脉脉: 'mò mò',
+ 削瘦: 'xuē shòu',
+ 撒播: 'sǎ bō',
+ 莎草: 'suō cǎo',
+ 犍为: 'qián wéi',
+ 调头: 'diào tóu',
+ 龙卷: 'lóng juǎn',
+ 外调: 'wài diào',
+ 字帖: 'zì tiè',
+ 卷发: 'juǎn fà',
+ 揣度: 'chuǎi duó',
+ 洋相: 'yáng xiàng',
+ 散光: 'sǎn guāng',
+ 骨碌: 'gū lu',
+ 薄命: 'bó mìng',
+ 笼头: 'lóng tóu',
+ 咽炎: 'yān yán',
+ 碌碡: 'liù zhou',
+ 片儿: 'piàn er',
+ 纤手: 'qiàn shǒu',
+ 散体: 'sǎn tǐ',
+ 内省: 'nèi xǐng',
+ 强留: 'qiáng liú',
+ 解送: 'jiè sòng',
+ 反间: 'fǎn jiàn',
+ 少壮: 'shào zhuàng',
+ 留空: 'liú kōng',
+ 告假: 'gào jià',
+ 咳血: 'ké xuè',
+ 薄暮: 'bó mù',
+ 铺轨: 'pū guǐ',
+ 磨削: 'mó xuē',
+ 治丧: 'zhì sāng',
+ 叉子: 'chā zi',
+ 哄动: 'hōng dòng',
+ 蛾子: 'é zi',
+ 出落: 'chū luò',
+ 股长: 'gǔ zhǎng',
+ 贵处: 'guì chù',
+ 还魂: 'huán hún',
+ 例假: 'lì jià',
+ 刹住: 'shā zhù',
+ 身量: 'shēn liàng',
+ 同好: 'tóng hào',
+ 模量: 'mó liàng',
+ 更生: 'gēng shēng',
+ 服丧: 'fú sāng',
+ 率直: 'shuài zhí',
+ 字模: 'zì mú',
+ 散架: 'sǎn jià',
+ 答腔: 'dā qiāng',
+ 交恶: 'jiāo wù',
+ 薄情: 'bó qíng',
+ 眼泡: 'yǎn pāo',
+ 袅娜: 'niǎo nuó',
+ 草垛: 'cǎo duò',
+ 冲劲: 'chòng jìn',
+ 呢喃: 'ní nán',
+ 切中: 'qiè zhòng',
+ 挑灯: 'tiǎo dēng',
+ 还愿: 'huán yuàn',
+ 激将: 'jī jiàng',
+ 更鼓: 'gēng gǔ',
+ 没药: 'mò yào',
+ 败兴: 'bài xìng',
+ 切面: 'qiē miàn',
+ 散户: 'sǎn hù',
+ 累进: 'lěi jìn',
+ 背带: 'bēi dài',
+ 秤杆: 'chèng gǎn',
+ 碾坊: 'niǎn fáng',
+ 簿子: 'bù zi',
+ 扳手: 'bān shǒu',
+ 铅山: 'yán shān',
+ 儒将: 'rú jiàng',
+ 重光: 'chóng guāng',
+ 剪发: 'jiǎn fà',
+ 长上: 'zhǎng shàng',
+ 小传: 'xiǎo zhuàn',
+ 压轴: 'yā zhòu',
+ 弱冠: 'ruò guàn',
+ 花卷: 'huā juǎn',
+ 横祸: 'hèng huò',
+ 夹克: 'jiā kè',
+ 光晕: 'guāng yùn',
+ 披靡: 'pī mǐ',
+ 对调: 'duì diào',
+ 夹持: 'jiā chí',
+ 空额: 'kòng é',
+ 平调: 'píng diào',
+ 铺床: 'pū chuáng',
+ 丧钟: 'sāng zhōng',
+ 作乐: 'zuò lè',
+ 少府: 'shào fǔ',
+ 数数: 'shuò shuò',
+ 奔头: 'bèn tou',
+ 进给: 'jìn jǐ',
+ 率性: 'shuài xìng',
+ 乐子: 'lè zi',
+ 绑扎: 'bǎng zā',
+ 挑唆: 'tiǎo suō',
+ 漂洗: 'piǎo xǐ',
+ 夹墙: 'jiā qiáng',
+ 咳喘: 'ké chuǎn',
+ 乜斜: 'miē xie',
+ 错处: 'cuò chù',
+ 闷酒: 'mèn jiǔ',
+ 时调: 'shí diào',
+ 重孙: 'chóng sūn',
+ 经幢: 'jīng chuáng',
+ 圩场: 'xū chǎng',
+ 调门: 'diào mén',
+ 花头: 'huā tóu',
+ 划拉: 'huá la',
+ 套色: 'tào shǎi',
+ 粗率: 'cū shuài',
+ 相率: 'xiāng shuài',
+ 款识: 'kuǎn zhì',
+ 吁请: 'yù qǐng',
+ 荫蔽: 'yīn bì',
+ 文蛤: 'wén gé',
+ 嘀嗒: 'dī dā',
+ 调取: 'diào qǔ',
+ 交差: 'jiāo chāi',
+ 落子: 'luò zǐ',
+ 相册: 'xiàng cè',
+ 絮叨: 'xù dao',
+ 落发: 'luò fà',
+ 异相: 'yì xiàng',
+ 浸没: 'jìn mò',
+ 角抵: 'jué dǐ',
+ 卸载: 'xiè zài',
+ 春卷: 'chūn juǎn',
+ 扎挣: 'zhá zheng',
+ 畜养: 'xù yǎng',
+ 吡咯: 'bǐ luò',
+ 垛子: 'duò zi',
+ 恶少: 'è shào',
+ 发际: 'fà jì',
+ 红苕: 'hóng sháo',
+ 糨糊: 'jiàng hu',
+ 哭丧: 'kū sāng',
+ 稍息: 'shào xī',
+ 晕船: 'yùn chuán',
+ 校样: 'jiào yàng',
+ 外差: 'wài chā',
+ 脚爪: 'jiǎo zhǎo',
+ 铺展: 'pū zhǎn',
+ 芫荽: 'yán sui',
+ 夹紧: 'jiā jǐn',
+ 尿泡: 'suī pào',
+ 丧乱: 'sāng luàn',
+ 凶相: 'xiōng xiàng',
+ 华发: 'huá fà',
+ 打场: 'dǎ cháng',
+ 云量: 'yún liàng',
+ 正切: 'zhèng qiē',
+ 划拳: 'huá quán',
+ 划艇: 'huá tǐng',
+ 评传: 'píng zhuàn',
+ 拉纤: 'lā qiàn',
+ 句读: 'jù dòu',
+ 散剂: 'sǎn jì',
+ 骨殖: 'gǔ shi',
+ 塞音: 'sè yīn',
+ 铺叙: 'pū xù',
+ 阏氏: 'yān zhī',
+ 冷颤: 'lěng zhàn',
+ 煞住: 'shā zhù',
+ 少男: 'shào nán',
+ 管乐: 'guǎn yuè',
+ 号啕: 'háo táo',
+ 纳降: 'nà xiáng',
+ 拥塞: 'yōng sè',
+ 万乘: 'wàn shèng',
+ 杆儿: 'gǎn ér',
+ 葛藤: 'gé téng',
+ 簿籍: 'bù jí',
+ 皮夹: 'pí jiā',
+ 校准: 'jiào zhǔn',
+ 允当: 'yǔn dàng',
+ 器量: 'qì liàng',
+ 选调: 'xuǎn diào',
+ 扮相: 'bàn xiàng',
+ 干才: 'gàn cái',
+ 基干: 'jī gàn',
+ 割切: 'gē qiē',
+ 国乐: 'guó yuè',
+ 卡壳: 'qiǎ ké',
+ 辟谷: 'bì gǔ',
+ 磨房: 'mò fáng',
+ 咿呀: 'yī yā',
+ 芥末: 'jiè mo',
+ 薄技: 'bó jì',
+ 产假: 'chǎn jià',
+ 诗兴: 'shī xìng',
+ 重出: 'chóng chū',
+ 转椅: 'zhuàn yǐ',
+ 酌量: 'zhuó liang',
+ 簿册: 'bù cè',
+ 藏青: 'zàng qīng',
+ 的士: 'dī shì',
+ 调人: 'diào rén',
+ 解元: 'jiè yuán',
+ 茎干: 'jīng gàn',
+ 巨量: 'jù liàng',
+ 榔头: 'láng tou',
+ 率真: 'shuài zhēn',
+ 喷香: 'pèn xiāng',
+ 锁钥: 'suǒ yuè',
+ 虾蟆: 'há má',
+ 相图: 'xiàng tú',
+ 兴会: 'xìng huì',
+ 灶头: 'zào tóu',
+ 重婚: 'chóng hūn',
+ 钻洞: 'zuān dòng',
+ 忖度: 'cǔn duó',
+ 党参: 'dǎng shēn',
+ 调温: 'diào wēn',
+ 杆塔: 'gān tǎ',
+ 葛布: 'gé bù',
+ 拱券: 'gǒng xuàn',
+ 夹生: 'jiā shēng',
+ 露馅: 'lòu xiàn',
+ 恰切: 'qià qiè',
+ 散见: 'sǎn jiàn',
+ 哨卡: 'shào qiǎ',
+ 烫发: 'tàng fà',
+ 体量: 'tǐ liàng',
+ 挺括: 'tǐng kuò',
+ 系带: 'jì dài',
+ 相士: 'xiàng shì',
+ 羊圈: 'yáng juàn',
+ 转矩: 'zhuàn jǔ',
+ 吧台: 'bā tái',
+ 苍术: 'cāng zhú',
+ 菲薄: 'fěi bó',
+ 蛤蚧: 'gé jiè',
+ 蛤蜊: 'gé lí',
+ 瓜蔓: 'guā wàn',
+ 怪相: 'guài xiàng',
+ 临帖: 'lín tiè',
+ 女红: 'nǚ gōng',
+ 刨床: 'bào chuáng',
+ 翘楚: 'qiáo chǔ',
+ 数九: 'shǔ jiǔ',
+ 谈兴: 'tán xìng',
+ 雄劲: 'xióng jìng',
+ 扎染: 'zā rǎn',
+ 遮荫: 'zhē yīn',
+ 周正: 'zhōu zhèng',
+ 赚头: 'zhuàn tou',
+ 扒手: 'pá shǒu',
+ 搀和: 'chān huo',
+ 诚朴: 'chéng pǔ',
+ 肚量: 'dù liàng',
+ 干结: 'gān jié',
+ 工尺: 'gōng chě',
+ 家累: 'jiā lěi',
+ 曲水: 'qū shuǐ',
+ 沙参: 'shā shēn',
+ 挑花: 'tiǎo huā',
+ 阿门: 'ā mén',
+ 背篓: 'bēi lǒu',
+ 瘪三: 'biē sān',
+ 裁处: 'cái chǔ',
+ 创痛: 'chuāng tòng',
+ 福相: 'fú xiàng',
+ 更动: 'gēng dòng',
+ 豪兴: 'háo xìng',
+ 还阳: 'huán yáng',
+ 还嘴: 'huán zuǐ',
+ 借调: 'jiè diào',
+ 卷云: 'juǎn yún',
+ 流弹: 'liú dàn',
+ 想头: 'xiǎng tou',
+ 削价: 'xuē jià',
+ 校阅: 'jiào yuè',
+ 雅量: 'yǎ liàng',
+ 别传: 'bié zhuàn',
+ 薄酒: 'bó jiǔ',
+ 春假: 'chūn jià',
+ 发妻: 'fà qī',
+ 哗哗: 'huā huā',
+ 宽绰: 'kuān chuo',
+ 了悟: 'liǎo wù',
+ 切花: 'qiē huā',
+ 审度: 'shěn duó',
+ 应许: 'yīng xǔ',
+ 转台: 'zhuàn tái',
+ 仔猪: 'zǐ zhū',
+ 裁量: 'cái liáng',
+ 藏戏: 'zàng xì',
+ 乘兴: 'chéng xìng',
+ 绸缪: 'chóu móu',
+ 摧折: 'cuī zhé',
+ 调经: 'tiáo jīng',
+ 调职: 'diào zhí',
+ 缝缀: 'féng zhuì',
+ 骨朵: 'gū duǒ',
+ 核儿: 'hú er',
+ 恒量: 'héng liàng',
+ 还价: 'huán jià',
+ 浑朴: 'hún pǔ',
+ 苦差: 'kǔ chāi',
+ 面糊: 'miàn hù',
+ 煞车: 'shā chē',
+ 省视: 'xǐng shì',
+ 什锦: 'shí jǐn',
+ 信差: 'xìn chāi',
+ 余切: 'yú qiē',
+ 攒眉: 'cuán méi',
+ 炸糕: 'zhá gāo',
+ 钻杆: 'zuàn gǎn',
+ 扒灰: 'pá huī',
+ 拌和: 'bàn huò',
+ 长调: 'cháng diào',
+ 大溜: 'dà liù',
+ 抖搂: 'dǒu lōu',
+ 飞转: 'fēi zhuàn',
+ 干仗: 'gàn zhàng',
+ 好胜: 'hào shèng',
+ 画片: 'huà piàn',
+ 搅混: 'jiǎo hún',
+ 螺杆: 'luó gǎn',
+ 木模: 'mù mú',
+ 怒号: 'nù háo',
+ 频数: 'pín shù',
+ 无宁: 'wú níng',
+ 遗少: 'yí shào',
+ 邮差: 'yóu chāi',
+ 占卦: 'zhān guà',
+ 占星: 'zhān xīng',
+ 重审: 'chóng shěn',
+ 自量: 'zì liàng',
+ 调防: 'diào fáng',
+ 发廊: 'fà láng',
+ 反调: 'fǎn diào',
+ 缝子: 'fèng zi',
+ 更夫: 'gēng fū',
+ 骨子: 'gǔ zi',
+ 光杆: 'guāng gǎn',
+ 夹棍: 'jiā gùn',
+ 居丧: 'jū sāng',
+ 巨贾: 'jù gǔ',
+ 看押: 'kān yā',
+ 空转: 'kōng zhuàn',
+ 量力: 'liàng lì',
+ 炮烙: 'páo luò',
+ 赔还: 'péi huán',
+ 扑扇: 'pū shān',
+ 散记: 'sǎn jì',
+ 散件: 'sǎn jiàn',
+ 删削: 'shān xuē',
+ 射干: 'shè gàn',
+ 条几: 'tiáo jī',
+ 偷空: 'tōu kòng',
+ 削壁: 'xuē bì',
+ 校核: 'jiào hé',
+ 阴干: 'yīn gān',
+ 择菜: 'zhái cài',
+ 重九: 'chóng jiǔ',
+ 主调: 'zhǔ diào',
+ 自禁: 'zì jīn',
+ 吧唧: 'bā jī',
+ 便溺: 'biàn niào',
+ 词调: 'cí diào',
+ 叨咕: 'dáo gu',
+ 落枕: 'lào zhěn',
+ 铺砌: 'pū qì',
+ 刷白: 'shuà bái',
+ 委靡: 'wěi mǐ',
+ 系泊: 'xì bó',
+ 相马: 'xiàng mǎ',
+ 熨帖: 'yù tiē',
+ 转筋: 'zhuàn jīn',
+ 棒喝: 'bàng hè',
+ 傧相: 'bīn xiàng',
+ 镐头: 'gǎo tóu',
+ 间苗: 'jiàn miáo',
+ 乐池: 'yuè chí',
+ 卖相: 'mài xiàng',
+ 屏弃: 'bǐng qì',
+ 铅弹: 'qiān dàn',
+ 切变: 'qiē biàn',
+ 请调: 'qǐng diào',
+ 群氓: 'qún méng',
+ 散板: 'sǎn bǎn',
+ 省察: 'xǐng chá',
+ 事假: 'shì jià',
+ 纤绳: 'qiàn shéng',
+ 重影: 'chóng yǐng',
+ 耕种: 'gēng zhòng',
+ 种地: 'zhòng dì',
+ 种菜: 'zhòng cài',
+ 栽种: 'zāi zhòng',
+ 接种: 'jiē zhòng',
+ 垦种: 'kěn zhòng',
+ 种殖: 'zhòng zhí',
+ 种瓜: 'zhòng guā',
+ 种豆: 'zhòng dòu',
+ 种树: 'zhòng shù',
+ 睡着: 'shuì zháo',
+ 笼子: 'lóng zi',
+ 重启: 'chóng qǐ',
+ 重整: 'chóng zhěng',
+ 重弹: 'chóng tán',
+ 重足: 'chóng zú',
+ 重山: 'chóng shān',
+ 重游: 'chóng yóu',
+ 重峦: 'chóng luán',
+ 爷爷: 'yé ye',
+ 奶奶: 'nǎi nai',
+ 姥爷: 'lǎo ye',
+ 爸爸: 'bà ba',
+ 妈妈: 'mā ma',
+ 婶婶: 'shěn shen',
+ 舅舅: 'jiù jiu',
+ 姑姑: 'gū gu',
+ 叔叔: 'shū shu',
+ 姨夫: 'yí fu',
+ 舅母: 'jiù mu',
+ 姑父: 'gū fu',
+ 姐夫: 'jiě fu',
+ 婆婆: 'pó po',
+ 公公: 'gōng gong',
+ 舅子: 'jiù zi',
+ 姐姐: 'jiě jie',
+ 哥哥: 'gē ge',
+ 妹妹: 'mèi mei',
+ 妹夫: 'mèi fu',
+ 姨子: 'yí zi',
+ 宝宝: 'bǎo bao',
+ 娃娃: 'wá wa',
+ 孩子: 'hái zi',
+ 日子: 'rì zi',
+ 样子: 'yàng zi',
+ 狮子: 'shī zi',
+ 身子: 'shēn zi',
+ 架子: 'jià zi',
+ 嫂子: 'sǎo zi',
+ 鼻子: 'bí zi',
+ 亭子: 'tíng zi',
+ 折子: 'zhé zi',
+ 面子: 'miàn zi',
+ 脖子: 'bó zi',
+ 辈子: 'bèi zi',
+ 帽子: 'mào zi',
+ 拍子: 'pāi zi',
+ 柱子: 'zhù zi',
+ 辫子: 'biàn zi',
+ 鸽子: 'gē zi',
+ 房子: 'fáng zi',
+ 丸子: 'wán zi',
+ 摊子: 'tān zi',
+ 牌子: 'pái zi',
+ 胡子: 'hú zi',
+ 鬼子: 'guǐ zi',
+ 矮子: 'ǎi zi',
+ 鸭子: 'yā zi',
+ 小子: 'xiǎo zi',
+ 影子: 'yǐng zi',
+ 屋子: 'wū zi',
+ 对子: 'duì zi',
+ 点子: 'diǎn zi',
+ 本子: 'běn zi',
+ 种子: 'zhǒng zi',
+ 儿子: 'ér zi',
+ 兔子: 'tù zi',
+ 骗子: 'piàn zi',
+ 院子: 'yuàn zi',
+ 猴子: 'hóu zi',
+ 嗓子: 'sǎng zi',
+ 侄子: 'zhí zi',
+ 柿子: 'shì zi',
+ 钳子: 'qián zi',
+ 虱子: 'shī zi',
+ 瓶子: 'píng zi',
+ 豹子: 'bào zi',
+ 筷子: 'kuài zi',
+ 篮子: 'lán zi',
+ 绳子: 'shéng zi',
+ 嘴巴: 'zuǐ ba',
+ 耳朵: 'ěr duo',
+ 茄子: 'qié zi',
+ 蚌埠: 'bèng bù',
+ 崆峒: 'kōng tóng',
+ 琵琶: 'pí pa',
+ 蘑菇: 'mó gu',
+ 葫芦: 'hú lu',
+ 狐狸: 'hú li',
+ 桔子: 'jú zi',
+ 盒子: 'hé zi',
+ 桌子: 'zhuō zi',
+ 竹子: 'zhú zi',
+ 师傅: 'shī fu',
+ 衣服: 'yī fu',
+ 袜子: 'wà zi',
+ 杯子: 'bēi zi',
+ 刺猬: 'cì wei',
+ 麦子: 'mài zi',
+ 队伍: 'duì wu',
+ 知了: 'zhī liǎo',
+ 鱼儿: 'yú er',
+ 馄饨: 'hún tun',
+ 灯笼: 'dēng long',
+ 庄稼: 'zhuāng jia',
+ 聪明: 'cōng ming',
+ 镜子: 'jìng zi',
+ 银子: 'yín zi',
+ 盘子: 'pán zi',
+ 了却: 'liǎo què',
+ 力气: 'lì qi',
+ 席子: 'xí zi',
+ 林子: 'lín zi',
+ 朝霞: 'zhāo xiá',
+ 朝夕: 'zhāo xī',
+ 朝气: 'zhāo qì',
+ 翅膀: 'chì bǎng',
+ 省长: 'shěng zhǎng',
+ 臧否: 'zāng pǐ',
+ 否泰: 'pǐ tài',
+ 变得: 'biàn de',
+ 丈夫: 'zhàng fu',
+ 豆腐: 'dòu fu',
+ 笔杆: 'bǐ gǎn',
+ 枞阳: 'zōng yáng',
+ 行人: 'xíng rén',
+ 打着: 'dǎ zhe',
+ // 一字不变调的词语(需要增补更多)
+ // 有歧义的词:一楼、一栋、一层、一排、一连
+ // “一楼”这个词,上下文语意是“一整栋楼”时,需要变调成四声;我住一楼时,则是一声
+ 第一: 'dì yī',
+ 万一: 'wàn yī',
+ 之一: 'zhī yī',
+ 得之: 'dé zhī',
+ 统一: 'tǒng yī',
+ 唯一: 'wéi yī',
+ 专一: 'zhuān yī',
+ 单一: 'dān yī',
+ 如一: 'rú yī',
+ 其一: 'qí yī',
+ 合一: 'hé yī',
+ 逐一: 'zhú yī',
+ 周一: 'zhōu yī',
+ 初一: 'chū yī',
+ 研一: 'yán yī',
+ 归一: 'guī yī',
+ 假一: 'jiǎ yī',
+ 闻一: 'wén yī',
+ 了了: 'liǎo liǎo',
+ 公了: 'gōng liǎo',
+ 私了: 'sī liǎo',
+ // 一 发音
+ 一月: 'yī yuè',
+ 一号: 'yī hào',
+ 一级: 'yī jí',
+ 一等: 'yī děng',
+ 一哥: 'yī gē',
+ 月一: 'yuè yī',
+ 一一: 'yī yī',
+ 二一: 'èr yī',
+ 三一: 'sān yī',
+ 四一: 'sì yī',
+ 五一: 'wǔ yī',
+ 六一: 'liù yī',
+ 七一: 'qī yī',
+ 八一: 'bā yī',
+ 九一: 'jiǔ yī',
+ 一〇: 'yī líng',
+ 一零: 'yī líng',
+ 一二: 'yī èr',
+ 一三: 'yī sān',
+ 一四: 'yī sì',
+ 一五: 'yī wǔ',
+ 一六: 'yī liù',
+ 一七: 'yī qī',
+ 一八: 'yī bā',
+ 一九: 'yī jiǔ',
+ 一又: 'yī yòu',
+ 一饼: 'yī bǐng',
+ 一楼: 'yī lóu',
+ 为例: 'wéi lì',
+ 为准: 'wéi zhǔn',
+ 沧海: 'cāng hǎi',
+ 难为: 'nán wéi',
+ 责难: 'zé nàn',
+ 患难: 'huàn nàn',
+ 磨难: 'mó nàn',
+ 大难: 'dà nàn',
+ 刁难: 'diāo nàn',
+ 殉难: 'xùn nàn',
+ 落难: 'luò nàn',
+ 罹难: 'lí nàn',
+ 灾难: 'zāi nàn',
+ 难民: 'nàn mín',
+ 苦难: 'kǔ nàn',
+ 危难: 'wēi nàn',
+ 发难: 'fā nàn',
+ 逃难: 'táo nàn',
+ 避难: 'bì nàn',
+ 遇难: 'yù nàn',
+ 阻难: 'zǔ nàn',
+ 厄难: 'è nàn',
+ 徇难: 'xùn nàn',
+ 空难: 'kōng nàn',
+ 喜欢: 'xǐ huan',
+ 朝朝: 'zhāo zhāo',
+ 不行: 'bù xíng',
+ 轧轧: 'yà yà',
+ 弯曲: 'wān qū',
+ 扭曲: 'niǔ qū',
+ 曲直: 'qū zhí',
+ 委曲: 'wěi qū',
+ 酒曲: 'jiǔ qū',
+ 曲径: 'qū jìng',
+ 曲解: 'qū jiě',
+ 歪曲: 'wāi qū',
+ 曲线: 'qū xiàn',
+ 曲阜: 'qū fù',
+ 九曲: 'jiǔ qū',
+ 曲折: 'qū zhé',
+ 曲肱: 'qū gōng',
+ 曲意: 'qū yì',
+ 仡佬: 'gē lǎo',
+};
+const Pattern2 = Object.keys(DICT2).map((key) => ({
+ zh: key,
+ pinyin: DICT2[key],
+ probability: 2e-8 /* Probability.DICT */,
+ length: 2,
+ priority: Priority.Normal,
+ dict: Symbol('dict2'),
+}));
+
+const DICT3 = {
+ 为什么: 'wèi shén me',
+ 实际上: 'shí jì shang',
+ 检察长: 'jiǎn chá zhǎng',
+ 干什么: 'gàn shén me',
+ 这会儿: 'zhè huì er',
+ 尽可能: 'jǐn kě néng',
+ 董事长: 'dǒng shì zhǎng',
+ 了不起: 'liǎo bù qǐ',
+ 参谋长: 'cān móu zhǎng',
+ 朝鲜族: 'cháo xiǎn zú',
+ 海内外: 'hǎi nèi wài',
+ 禁不住: 'jīn bú zhù',
+ 柏拉图: 'bó lā tú',
+ 不在乎: 'bú zài hu',
+ 洛杉矶: 'luò shān jī',
+ 有点儿: 'yǒu diǎn er',
+ 迫击炮: 'pǎi jī pào',
+ 不得了: 'bù dé liǎo',
+ 马尾松: 'mǎ wěi sōng',
+ 运输量: 'yùn shū liàng',
+ 发脾气: 'fā pí qi',
+ 士大夫: 'shì dà fū',
+ 鸭绿江: 'yā lù jiāng',
+ 压根儿: 'yà gēn er',
+ 对得起: 'duì de qǐ',
+ 那会儿: 'nà huì er',
+ 自个儿: 'zì gě er',
+ 物理量: 'wù lǐ liàng',
+ 怎么着: 'zěn me zhāo',
+ 明晃晃: 'míng huǎng huǎng',
+ 节假日: 'jié jià rì',
+ 心里话: 'xīn lǐ huà',
+ 发行量: 'fā xíng liàng',
+ 兴冲冲: 'xìng chōng chōng',
+ 分子量: 'fēn zǐ liàng',
+ 国子监: 'guó zǐ jiàn',
+ 老大难: 'lǎo dà nán',
+ 党内外: 'dǎng nèi wài',
+ 这么着: 'zhè me zhāo',
+ 少奶奶: 'shào nǎi nai',
+ 暗地里: 'àn dì lǐ',
+ 更年期: 'gēng nián qī',
+ 工作量: 'gōng zuò liàng',
+ 背地里: 'bèi dì lǐ',
+ 山里红: 'shān li hóng',
+ 好好儿: 'hǎo hāo er',
+ 交响乐: 'jiāo xiǎng yuè',
+ 好意思: 'hǎo yì si',
+ 吐谷浑: 'tǔ yù hún',
+ 没意思: 'méi yì si',
+ 理发师: 'lǐ fà shī',
+ 塔什干: 'tǎ shí gān',
+ 充其量: 'chōng qí liàng',
+ 靠得住: 'kào de zhù',
+ 车行道: 'chē xíng dào',
+ 人行道: 'rén xíng dào',
+ 中郎将: 'zhōng láng jiàng',
+ 照明弹: 'zhào míng dàn',
+ 烟幕弹: 'yān mù dàn',
+ 没奈何: 'mò nài hé',
+ 乱哄哄: 'luàn hōng hōng',
+ 惠更斯: 'huì gēng sī',
+ 载重量: 'zài zhòng liàng',
+ 瞧得起: 'qiáo de qǐ',
+ 纪传体: 'jì zhuàn tǐ',
+ 阿房宫: 'ē páng gōng',
+ 卷心菜: 'juǎn xīn cài',
+ 戏班子: 'xì bān zi',
+ 过得去: 'guò de qù',
+ 花岗石: 'huā gāng shí',
+ 外甥女: 'wài sheng nǚ',
+ 团团转: 'tuán tuán zhuàn',
+ 大堡礁: 'dà bǎo jiāo',
+ 燃烧弹: 'rán shāo dàn',
+ 劳什子: 'láo shí zi',
+ 摇滚乐: 'yáo gǔn yuè',
+ 夹竹桃: 'jiā zhú táo',
+ 闹哄哄: 'nào hōng hōng',
+ 三连冠: 'sān lián guàn',
+ 重头戏: 'zhòng tóu xì',
+ 二人转: 'èr rén zhuàn',
+ 节骨眼: 'jiē gǔ yǎn',
+ 知识面: 'zhī shi miàn',
+ 护士长: 'hù shi zhǎng',
+ 信号弹: 'xìn hào dàn',
+ 干电池: 'gān diàn chí',
+ 枪杆子: 'qiāng gǎn zi',
+ 哭丧棒: 'kū sāng bàng',
+ 鼻咽癌: 'bí yān ái',
+ 瓦岗军: 'wǎ gāng jūn',
+ 买得起: 'mǎi de qǐ',
+ 癞蛤蟆: 'lài há ma',
+ 脊梁骨: 'jǐ liang gǔ',
+ 子母弹: 'zǐ mǔ dàn',
+ 开小差: 'kāi xiǎo chāi',
+ 女强人: 'nǚ qiáng rén',
+ 英雄传: 'yīng xióng zhuàn',
+ 爵士乐: 'jué shì yuè',
+ 说笑话: 'shuō xiào hua',
+ 碰头会: 'pèng tóu huì',
+ 玻璃钢: 'bō li gāng',
+ 曳光弹: 'yè guāng dàn',
+ 少林拳: 'shào lín quán',
+ 咏叹调: 'yǒng tàn diào',
+ 少先队: 'shào xiān duì',
+ 灵长目: 'líng zhǎng mù',
+ 对着干: 'duì zhe gàn',
+ 蒙蒙亮: 'méng méng liàng',
+ 软骨头: 'ruǎn gǔ tou',
+ 铺盖卷: 'pū gài juǎn',
+ 和稀泥: 'huò xī ní',
+ 背黑锅: 'bēi hēi guō',
+ 红彤彤: 'hóng tōng tōng',
+ 武侯祠: 'wǔ hóu cí',
+ 打哆嗦: 'dǎ duō suo',
+ 户口簿: 'hù kǒu bù',
+ 马尾藻: 'mǎ wěi zǎo',
+ 夜猫子: 'yè māo zi',
+ 打手势: 'dǎ shǒu shì',
+ 龙王爷: 'lóng wáng yé',
+ 气头上: 'qì tóu shang',
+ 糊涂虫: 'hú tu chóng',
+ 笔杆子: 'bǐ gǎn zi',
+ 占便宜: 'zhàn pián yi',
+ 打主意: 'dǎ zhǔ yì',
+ 多弹头: 'duō dàn tóu',
+ 露一手: 'lòu yì shǒu',
+ 堰塞湖: 'yàn sè hú',
+ 保得住: 'bǎo de zhù',
+ 趵突泉: 'bào tū quán',
+ 奥得河: 'ào de hé',
+ 司务长: 'sī wù zhǎng',
+ 禁不起: 'jīn bù qǐ',
+ 什刹海: 'shí chà hǎi',
+ 莲花落: 'lián huā lào',
+ 见世面: 'jiàn shì miàn',
+ 豁出去: 'huō chū qù',
+ 电位差: 'diàn wèi chā',
+ 挨个儿: 'āi gè er',
+ 那阵儿: 'nà zhèn er',
+ 肺活量: 'fèi huó liàng',
+ 大师傅: 'dà shī fu',
+ 掷弹筒: 'zhì dàn tǒng',
+ 打呼噜: 'dǎ hū lu',
+ 广渠门: 'ān qú mén',
+ 未见得: 'wèi jiàn dé',
+ 大婶儿: 'dà shěn er',
+ 谈得来: 'tán de lái',
+ 脚丫子: 'jiǎo yā zi',
+ 空包弹: 'kōng bāo dàn',
+ 窝里斗: 'wō li dòu',
+ 弹着点: 'dàn zhuó diǎn',
+ 个头儿: 'gè tóu er',
+ 看得起: 'kàn de qǐ',
+ 糊涂账: 'hú tu zhàng',
+ 大猩猩: 'dà xīng xing',
+ 禁得起: 'jīn de qǐ',
+ 法相宗: 'fǎ xiàng zōng',
+ 可怜相: 'kě lián xiàng',
+ 吃得下: 'chī de xià',
+ 汉堡包: 'hàn bǎo bāo',
+ 闹嚷嚷: 'nào rāng rāng',
+ 数来宝: 'shǔ lái bǎo',
+ 合得来: 'hé de lái',
+ 干性油: 'gān xìng yóu',
+ 闷葫芦: 'mèn hú lu',
+ 呱呱叫: 'guā guā jiào',
+ 西洋参: 'xī yáng shēn',
+ 林荫道: 'lín yīn dào',
+ 拉家常: 'lā jiā cháng',
+ 卷铺盖: 'juǎn pū gài',
+ 过得硬: 'guò de yìng',
+ 飞将军: 'fēi jiāng jūn',
+ 挑大梁: 'tiǎo dà liáng',
+ 哈巴狗: 'hǎ ba gǒu',
+ 过家家: 'guò jiā jiā',
+ 催泪弹: 'cuī lèi dàn',
+ 雨夹雪: 'yǔ jiā xuě',
+ 敲竹杠: 'qiāo zhú gàng',
+ 列车长: 'liè chē zhǎng',
+ 华达呢: 'huá dá ní',
+ 犯得着: 'fàn de zháo',
+ 土疙瘩: 'tǔ gē da',
+ 煞风景: 'shā fēng jǐng',
+ 轻量级: 'qīng liàng jí',
+ 羞答答: 'xiū dā dā',
+ 石子儿: 'shí zǐ er',
+ 达姆弹: 'dá mǔ dàn',
+ 科教片: 'kē jiào piān',
+ 侃大山: 'kǎn dà shān',
+ 丁点儿: 'dīng diǎn er',
+ 吃得消: 'chī de xiāo',
+ 捋虎须: 'luō hǔ xū',
+ 高丽参: 'gāo lí shēn',
+ 众生相: 'zhòng shēng xiàng',
+ 咽峡炎: 'yān xiá yán',
+ 禁得住: 'jīn de zhù',
+ 吃得开: 'chī de kāi',
+ 柞丝绸: 'zuò sī chóu',
+ 应声虫: 'yìng shēng chóng',
+ 数得着: 'shǔ de zháo',
+ 傻劲儿: 'shǎ jìn er',
+ 铅玻璃: 'qiān bō li',
+ 可的松: 'kě dì sōng',
+ 划得来: 'huá de lái',
+ 晕乎乎: 'yūn hū hū',
+ 屎壳郎: 'shǐ ke làng',
+ 尥蹶子: 'liào juě zi',
+ 藏红花: 'zàng hóng huā',
+ 闷罐车: 'mèn guàn chē',
+ 卡脖子: 'qiǎ bó zi',
+ 红澄澄: 'hóng deng deng',
+ 赶得及: 'gǎn de jí',
+ 当间儿: 'dāng jiàn er',
+ 露马脚: 'lòu mǎ jiǎo',
+ 鸡内金: 'jī nèi jīn',
+ 犯得上: 'fàn de shàng',
+ 钉齿耙: 'dīng chǐ bà',
+ 饱和点: 'bǎo hé diǎn',
+ 龙爪槐: 'lóng zhǎo huái',
+ 喝倒彩: 'hè dào cǎi',
+ 定冠词: 'dìng guàn cí',
+ 担担面: 'dàn dan miàn',
+ 吃得住: 'chī de zhù',
+ 爪尖儿: 'zhuǎ jiān er',
+ 支着儿: 'zhī zhāo er',
+ 折跟头: 'zhē gēn tou',
+ 阴着儿: 'yīn zhāo er',
+ 烟卷儿: 'yān juǎn er',
+ 宣传弹: 'xuān chuán dàn',
+ 信皮儿: 'xìn pí er',
+ 弦切角: 'xián qiē jiǎo',
+ 缩砂密: 'sù shā mì',
+ 说得来: 'shuō de lái',
+ 水漂儿: 'shuǐ piāo er',
+ 耍笔杆: 'shuǎ bǐ gǎn',
+ 数得上: 'shǔ de shàng',
+ 数不着: 'shǔ bù zháo',
+ 数不清: 'shǔ bù qīng',
+ 什件儿: 'shí jiàn er',
+ 生死簿: 'shēng sǐ bù',
+ 扇风机: 'shān fēng jī',
+ 撒呓挣: 'sā yì zheng',
+ 日记簿: 'rì jì bù',
+ 热得快: 'rè de kuài',
+ 亲家公: 'qìng jia gōng',
+ 奇函数: 'jī hán shù',
+ 拍纸簿: 'pāi zhǐ bù',
+ 努劲儿: 'nǔ jìn er',
+ 泥娃娃: 'ní wá wa',
+ 内切圆: 'nèi qiē yuán',
+ 哪会儿: 'nǎ huì er',
+ 闷头儿: 'mēn tóu er',
+ 没谱儿: 'méi pǔ er',
+ 铆劲儿: 'mǎo jìn er',
+ 溜肩膀: 'liū jiān bǎng',
+ 了望台: 'liào wàng tái',
+ 老来少: 'lǎo lái shào',
+ 坤角儿: 'kūn jué er',
+ 考勤簿: 'kǎo qín bù',
+ 卷笔刀: 'juǎn bǐ dāo',
+ 进给量: 'jìn jǐ liàng',
+ 划不来: 'huá bù lái',
+ 汗褂儿: 'hàn guà er',
+ 鼓囊囊: 'gǔ nāng nāng',
+ 够劲儿: 'gòu jìn er',
+ 公切线: 'gōng qiē xiàn',
+ 搁得住: 'gé de zhù',
+ 赶浪头: 'gǎn làng tóu',
+ 赶得上: 'gǎn de shàng',
+ 干酵母: 'gān jiào mǔ',
+ 嘎渣儿: 'gā zhā er',
+ 嘎嘣脆: 'gā bēng cuì',
+ 对得住: 'duì de zhù',
+ 逗闷子: 'dòu mèn zi',
+ 顶呱呱: 'dǐng guā guā',
+ 滴溜儿: 'dī liù er',
+ 大轴子: 'dà zhòu zi',
+ 打板子: 'dǎ bǎn zi',
+ 寸劲儿: 'cùn jìn er',
+ 醋劲儿: 'cù jìn er',
+ 揣手儿: 'chuāi shǒu er',
+ 冲劲儿: 'chòng jìn er',
+ 吃得来: 'chī de lái',
+ 不更事: 'bù gēng shì',
+ 奔头儿: 'bèn tou er',
+ 百夫长: 'bǎi fū zhǎng',
+ 娃娃亲: 'wá wa qīn',
+ 死劲儿: 'sǐ jìn er',
+ 骨朵儿: 'gū duǒ er',
+ 功劳簿: 'gōng láo bù',
+ 都江堰: 'dū jiāng yàn',
+ 一担水: 'yí dàn shuǐ',
+ 否极泰: 'pǐ jí tài',
+ 泰来否: 'tài lái pǐ',
+ 咳特灵: 'ké tè líng',
+ 开户行: 'kāi hù háng',
+ 郦食其: 'lì yì jī',
+ 花事了: 'huā shì liǎo',
+ // 一字变调的词语(与两个字的字典冲突,故需要重新定义)
+ 一更更: 'yì gēng gēng',
+ 一重山: 'yì chóng shān',
+ 风一更: 'fēng yì gēng',
+ 雪一更: 'xuě yì gēng',
+ 归一码: 'guī yì mǎ',
+ // 一字不变调的词语(需要增补更多)
+ 星期一: 'xīng qī yī',
+ 礼拜一: 'lǐ bài yī',
+ 一季度: 'yī jì dù',
+ 一月一: 'yī yuè yī',
+ 一字马: 'yī zì mǎ',
+ 一是一: 'yī shì yī',
+ 一次方: 'yī cì fāng',
+ 一阳指: 'yī yáng zhǐ',
+ 一字决: 'yī zì jué',
+ 一年级: 'yī nián jí',
+ 一不做: 'yī bú zuò',
+ 屈戌儿: 'qū qu ér',
+ 难为水: 'nán wéi shuǐ',
+ 难为情: 'nán wéi qíng',
+ 行一行: 'xíng yì háng',
+ 别别的: 'biè bié de',
+ 干哪行: 'gàn nǎ háng',
+ 干一行: 'gàn yì háng',
+ 曲别针: 'qū bié zhēn',
+};
+const Pattern3 = Object.keys(DICT3).map((key) => ({
+ zh: key,
+ pinyin: DICT3[key],
+ probability: 2e-8 /* Probability.DICT */,
+ length: 3,
+ priority: Priority.Normal,
+ dict: Symbol('dict3'),
+}));
+
+const DICT4 = {
+ 成吉思汗: "chéng jí sī hán",
+ 四通八达: "sì tōng bā dá",
+ 一模一样: "yì mú yí yàng",
+ 青藏高原: "qīng zàng gāo yuán",
+ 阿弥陀佛: "ē mí tuó fó",
+ 解放思想: "jiè fàng sī xiǎng",
+ 所作所为: "suǒ zuò suǒ wéi",
+ 迷迷糊糊: "mí mí hu hū",
+ 荷枪实弹: "hè qiāng shí dàn",
+ 兴高采烈: "xìng gāo cǎi liè",
+ 无能为力: "wú néng wéi lì",
+ 布鲁塞尔: "bù lǔ sài ěr",
+ 为所欲为: "wéi suǒ yù wéi",
+ 克什米尔: "kè shí mǐ ěr",
+ 没完没了: "méi wán méi liǎo",
+ 不为人知: "bù wéi rén zhī",
+ 结结巴巴: "jiē jiē bā bā",
+ 前仆后继: "qián pū hòu jì",
+ 铺天盖地: "pū tiān gài dì",
+ 直截了当: "zhí jié liǎo dàng",
+ 供不应求: "gōng bú yìng qiú",
+ 御史大夫: "yù shǐ dà fū",
+ 不为瓦全: "bù wéi wǎ quán",
+ 不可收拾: "bù kě shōu shi",
+ 胡作非为: "hú zuò fēi wéi",
+ 分毫不差: "fēn háo bú chà",
+ 模模糊糊: "mó mó hu hū",
+ 不足为奇: "bù zú wéi qí",
+ 悄无声息: "qiǎo wú shēng xī",
+ 了如指掌: "liǎo rú zhǐ zhǎng",
+ 深恶痛绝: "shēn wù tòng jué",
+ 高高兴兴: "gāo gāo xìng xìng",
+ 唉声叹气: "āi shēng tàn qì",
+ 汉藏语系: "hàn zàng yǔ xì",
+ 处心积虑: "chǔ xīn jī lǜ",
+ 泣不成声: "qì bù chéng shēng",
+ 半夜三更: "bàn yè sān gēng",
+ 失魂落魄: "shī hún luò pò",
+ 二十八宿: "èr shí bā xiù",
+ 转来转去: "zhuàn lái zhuàn qù",
+ 数以万计: "shǔ yǐ wàn jì",
+ 相依为命: "xiāng yī wéi mìng",
+ 恋恋不舍: "liàn liàn bù shě",
+ 屈指可数: "qū zhǐ kě shǔ",
+ 神出鬼没: "shén chū guǐ mò",
+ 结结实实: "jiē jiē shí shí",
+ 有的放矢: "yǒu dì fàng shǐ",
+ 叽哩咕噜: "jī lǐ gū lū",
+ 调兵遣将: "diào bīng qiǎn jiàng",
+ 载歌载舞: "zài gē zài wǔ",
+ 转危为安: "zhuǎn wēi wéi ān",
+ 踏踏实实: "tā tā shi shí",
+ 桑给巴尔: "sāng jǐ bā ěr",
+ 装模作样: "zhuāng mú zuò yàng",
+ 见义勇为: "jiàn yì yǒng wéi",
+ 相差无几: "xiāng chā wú jǐ",
+ 叹为观止: "tàn wéi guān zhǐ",
+ 闷闷不乐: "mèn mèn bú lè",
+ 喜怒哀乐: "xǐ nù āi lè",
+ 鲜为人知: "xiǎn wéi rén zhī",
+ 张牙舞爪: "zhāng yá wǔ zhǎo",
+ 为非作歹: "wéi fēi zuò dǎi",
+ 含糊其辞: "hán hú qí cí",
+ 疲于奔命: "pí yú bēn mìng",
+ 勉为其难: "miǎn wéi qí nán",
+ 依依不舍: "yī yī bù shě",
+ 顶头上司: "dǐng tóu shàng si",
+ 不着边际: "bù zhuó biān jì",
+ 大模大样: "dà mú dà yàng",
+ 寻欢作乐: "xún huān zuò lè",
+ 一走了之: "yì zǒu liǎo zhī",
+ 字里行间: "zì lǐ háng jiān",
+ 含含糊糊: "hán hán hu hū",
+ 恰如其分: "qià rú qí fèn",
+ 破涕为笑: "pò tì wéi xiào",
+ 深更半夜: "shēn gēng bàn yè",
+ 千差万别: "qiān chā wàn bié",
+ 数不胜数: "shǔ bú shèng shǔ",
+ 据为己有: "jù wéi jǐ yǒu",
+ 天旋地转: "tiān xuán dì zhuàn",
+ 养尊处优: "yǎng zūn chǔ yōu",
+ 玻璃纤维: "bō li xiān wéi",
+ 吵吵闹闹: "chāo chao nào nào",
+ 晕头转向: "yūn tóu zhuàn xiàng",
+ 土生土长: "tǔ shēng tǔ zhǎng",
+ 宁死不屈: "nìng sǐ bù qū",
+ 不省人事: "bù xǐng rén shì",
+ 尽力而为: "jìn lì ér wéi",
+ 精明强干: "jīng míng qiáng gàn",
+ 唠唠叨叨: "láo lao dāo dāo",
+ 叽叽喳喳: "jī ji zhā zhā",
+ 功不可没: "gōng bù kě mò",
+ 锲而不舍: "qiè ér bù shě",
+ 排忧解难: "pái yōu jiě nàn",
+ 稀里糊涂: "xī li hú tú",
+ 各有所长: "gè yǒu suǒ cháng",
+ 的的确确: "dí dí què què",
+ 哄堂大笑: "hōng táng dà xiào",
+ 听而不闻: "tīng ér bù wén",
+ 刀耕火种: "dāo gēng huǒ zhòng",
+ 内分泌腺: "nèi fèn mì xiàn",
+ 化险为夷: "huà xiǎn wéi yí",
+ 百发百中: "bǎi fā bǎi zhòng",
+ 重见天日: "chóng jiàn tiān rì",
+ 反败为胜: "fǎn bài wéi shèng",
+ 一了百了: "yì liǎo bǎi liǎo",
+ 大大咧咧: "dà da liē liē",
+ 心急火燎: "xīn jí huǒ liǎo",
+ 粗心大意: "cū xīn dà yi",
+ 鸡皮疙瘩: "jī pí gē da",
+ 夷为平地: "yí wéi píng dì",
+ 日积月累: "rì jī yuè lěi",
+ 设身处地: "shè shēn chǔ dì",
+ 投其所好: "tóu qí suǒ hào",
+ 间不容发: "jiān bù róng fà",
+ 人满为患: "rén mǎn wéi huàn",
+ 穷追不舍: "qióng zhuī bù shě",
+ 为时已晚: "wéi shí yǐ wǎn",
+ 如数家珍: "rú shǔ jiā zhēn",
+ 心里有数: "xīn lǐ yǒu shù",
+ 以牙还牙: "yǐ yá huán yá",
+ 神不守舍: "shén bù shǒu shě",
+ 孟什维克: "mèng shí wéi kè",
+ 各自为战: "gè zì wéi zhàn",
+ 怨声载道: "yuàn shēng zài dào",
+ 救苦救难: "jiù kǔ jiù nàn",
+ 好好先生: "hǎo hǎo xiān sheng",
+ 怪模怪样: "guài mú guài yàng",
+ 抛头露面: "pāo tóu lù miàn",
+ 游手好闲: "yóu shǒu hào xián",
+ 无所不为: "wú suǒ bù wéi",
+ 调虎离山: "diào hǔ lí shān",
+ 步步为营: "bù bù wéi yíng",
+ 好大喜功: "hào dà xǐ gōng",
+ 众矢之的: "zhòng shǐ zhī dì",
+ 长生不死: "cháng shēng bù sǐ",
+ 蔚为壮观: "wèi wéi zhuàng guān",
+ 不可胜数: "bù kě shèng shǔ",
+ 鬼使神差: "guǐ shǐ shén chāi",
+ 洁身自好: "jié shēn zì hào",
+ 敢作敢为: "gǎn zuò gǎn wéi",
+ 茅塞顿开: "máo sè dùn kāi",
+ 走马换将: "zǒu mǎ huàn jiàng",
+ 为时过早: "wéi shí guò zǎo",
+ 为人师表: "wéi rén shī biǎo",
+ 阴差阳错: "yīn chā yáng cuò",
+ 油腔滑调: "yóu qiāng huá diào",
+ 重蹈覆辙: "chóng dǎo fù zhé",
+ 骂骂咧咧: "mà ma liē liē",
+ 絮絮叨叨: "xù xù dāo dāo",
+ 如履薄冰: "rú lǚ bó bīng",
+ 损兵折将: "sǔn bīng zhé jiàng",
+ 拐弯抹角: "guǎi wān mò jiǎo",
+ 像模像样: "xiàng mú xiàng yàng",
+ 供过于求: "gōng guò yú qiú",
+ 开花结果: "kāi huā jiē guǒ",
+ 仔仔细细: "zǐ zǐ xì xì",
+ 川藏公路: "chuān zàng gōng lù",
+ 河北梆子: "hé běi bāng zi",
+ 长年累月: "cháng nián lěi yuè",
+ 正儿八经: "zhèng er bā jīng",
+ 不识抬举: "bù shí tái ju",
+ 重振旗鼓: "chóng zhèn qí gǔ",
+ 气息奄奄: "qì xī yān yān",
+ 紧追不舍: "jǐn zhuī bù shě",
+ 服服帖帖: "fú fu tiē tiē",
+ 强词夺理: "qiǎng cí duó lǐ",
+ 噼里啪啦: "pī li pā lā",
+ 人才济济: "rén cái jǐ jǐ",
+ 发人深省: "fā rén shēn xǐng",
+ 不足为凭: "bù zú wéi píng",
+ 为富不仁: "wéi fù bù rén",
+ 连篇累牍: "lián piān lěi dú",
+ 呼天抢地: "hū tiān qiāng dì",
+ 落落大方: "luò luò dà fāng",
+ 自吹自擂: "zì chuī zì léi",
+ 乐善好施: "lè shàn hào shī",
+ 以攻为守: "yǐ gōng wéi shǒu",
+ 磨磨蹭蹭: "mó mó cèng cèng",
+ 削铁如泥: "xuē tiě rú ní",
+ 助纣为虐: "zhù zhòu wéi nüè",
+ 以退为进: "yǐ tuì wéi jìn",
+ 嘁嘁喳喳: "qī qī chā chā",
+ 枪林弹雨: "qiāng lín dàn yǔ",
+ 令人发指: "lìng rén fà zhǐ",
+ 转败为胜: "zhuǎn bài wéi shèng",
+ 转弯抹角: "zhuǎn wān mò jiǎo",
+ 在劫难逃: "zài jié nán táo",
+ 正当防卫: "zhèng dàng fáng wèi",
+ 不足为怪: "bù zú wéi guài",
+ 难兄难弟: "nàn xiōng nàn dì",
+ 咿咿呀呀: "yī yī yā yā",
+ 弹尽粮绝: "dàn jìn liáng jué",
+ 阿谀奉承: "ē yú fèng chéng",
+ 稀里哗啦: "xī li huā lā",
+ 返老还童: "fǎn lǎo huán tóng",
+ 好高骛远: "hào gāo wù yuǎn",
+ 鹿死谁手: "lù sǐ shéi shǒu",
+ 差强人意: "chā qiáng rén yì",
+ 大吹大擂: "dà chuī dà léi",
+ 成家立业: "chéng jiā lì yè",
+ 自怨自艾: "zì yuàn zì yì",
+ 负债累累: "fù zhài lěi lěi",
+ 古为今用: "gǔ wéi jīn yòng",
+ 入土为安: "rù tǔ wéi ān",
+ 下不为例: "xià bù wéi lì",
+ 一哄而上: "yì hōng ér shàng",
+ 没头苍蝇: "méi tóu cāng ying",
+ 天差地远: "tiān chā dì yuǎn",
+ 风卷残云: "fēng juǎn cán yún",
+ 多灾多难: "duō zāi duō nàn",
+ 乳臭未干: "rǔ xiù wèi gān",
+ 行家里手: "háng jiā lǐ shǒu",
+ 狼狈为奸: "láng bèi wéi jiān",
+ 处变不惊: "chǔ biàn bù jīng",
+ 一唱一和: "yí chàng yí hè",
+ 一念之差: "yí niàn zhī chā",
+ 金蝉脱壳: "jīn chán tuō qiào",
+ 滴滴答答: "dī dī dā dā",
+ 硕果累累: "shuò guǒ léi léi",
+ 好整以暇: "hào zhěng yǐ xiá",
+ 红得发紫: "hóng de fā zǐ",
+ 传为美谈: "chuán wéi měi tán",
+ 富商大贾: "fù shāng dà gǔ",
+ 四海为家: "sì hǎi wéi jiā",
+ 了若指掌: "liǎo ruò zhǐ zhǎng",
+ 大有可为: "dà yǒu kě wéi",
+ 出头露面: "chū tóu lù miàn",
+ 鼓鼓囊囊: "gǔ gu nāng nāng",
+ 窗明几净: "chuāng míng jī jìng",
+ 泰然处之: "tài rán chǔ zhī",
+ 怒发冲冠: "nù fà chōng guān",
+ 有机玻璃: "yǒu jī bō li",
+ 骨头架子: "gǔ tou jià zi",
+ 义薄云天: "yì bó yún tiān",
+ 一丁点儿: "yī dīng diǎn er",
+ 时来运转: "shí lái yùn zhuǎn",
+ 陈词滥调: "chén cí làn diào",
+ 化整为零: "huà zhěng wéi líng",
+ 火烧火燎: "huǒ shāo huǒ liǎo",
+ 干脆利索: "gàn cuì lì suǒ",
+ 吊儿郎当: "diào er láng dāng",
+ 广种薄收: "guǎng zhòng bó shōu",
+ 种瓜得瓜: "zhòng guā dé guā",
+ 种豆得豆: "zhòng dòu dé dòu",
+ 难舍难分: "nán shě nán fēn",
+ 歃血为盟: "shà xuè wéi méng",
+ 奋发有为: "fèn fā yǒu wéi",
+ 阴错阳差: "yīn cuò yáng chā",
+ 东躲西藏: "dōng duǒ xī cáng",
+ 烟熏火燎: "yān xūn huǒ liǎo",
+ 钻牛角尖: "zuān niú jiǎo jiān",
+ 乔装打扮: "qiáo zhuāng dǎ bàn",
+ 改弦更张: "gǎi xián gēng zhāng",
+ 河南梆子: "hé nán bāng zi",
+ 好吃懒做: "hào chī lǎn zuò",
+ 何乐不为: "hé lè bù wéi",
+ 大出风头: "dà chū fēng tóu",
+ 攻城掠地: "gōng chéng lüè dì",
+ 漂漂亮亮: "piào piào liang liang",
+ 折衷主义: "zhé zhōng zhǔ yì",
+ 大马哈鱼: "dà mǎ hǎ yú",
+ 绿树成荫: "lǜ shù chéng yīn",
+ 率先垂范: "shuài xiān chuí fàn",
+ 家长里短: "jiā cháng lǐ duǎn",
+ 宽大为怀: "kuān dà wéi huái",
+ 左膀右臂: "zuǒ bǎng yòu bì",
+ 一笑了之: "yí xiào liǎo zhī",
+ 天下为公: "tiān xià wéi gōng",
+ 还我河山: "huán wǒ hé shān",
+ 何足为奇: "hé zú wéi qí",
+ 好自为之: "hǎo zì wéi zhī",
+ 风姿绰约: "fēng zī chuò yuē",
+ 大雨滂沱: "dà yǔ pāng tuó",
+ 传为佳话: "chuán wéi jiā huà",
+ 吃里扒外: "chī lǐ pá wài",
+ 重操旧业: "chóng cāo jiù yè",
+ 小家子气: "xiǎo jiā zi qì",
+ 少不更事: "shào bù gēng shì",
+ 难分难舍: "nán fēn nán shě",
+ 添砖加瓦: "tiān zhuān jiā wǎ",
+ 是非分明: "shì fēi fēn míng",
+ 舍我其谁: "shě wǒ qí shuí",
+ 偏听偏信: "piān tīng piān xìn",
+ 量入为出: "liàng rù wéi chū",
+ 降龙伏虎: "xiáng lóng fú hǔ",
+ 钢化玻璃: "gāng huà bō li",
+ 正中下怀: "zhèng zhòng xià huái",
+ 以身许国: "yǐ shēn xǔ guó",
+ 一语中的: "yì yǔ zhòng dì",
+ 丧魂落魄: "sàng hún luò pò",
+ 三座大山: "sān zuò dà shān",
+ 济济一堂: "jǐ jǐ yì táng",
+ 好事之徒: "hào shì zhī tú",
+ 干净利索: "gàn jìng lì suǒ",
+ 出将入相: "chū jiàng rù xiàng",
+ 袅袅娜娜: "niǎo niǎo nuó nuó",
+ 狐狸尾巴: "hú li wěi ba",
+ 好逸恶劳: "hào yì wù láo",
+ 大而无当: "dà ér wú dàng",
+ 打马虎眼: "dǎ mǎ hu yǎn",
+ 板上钉钉: "bǎn shàng dìng dīng",
+ 吆五喝六: "yāo wǔ hè liù",
+ 虾兵蟹将: "xiā bīng xiè jiàng",
+ 水调歌头: "shuǐ diào gē tóu",
+ 数典忘祖: "shǔ diǎn wàng zǔ",
+ 人事不省: "rén shì bù xǐng",
+ 曲高和寡: "qǔ gāo hè guǎ",
+ 屡教不改: "lǚ jiào bù gǎi",
+ 互为因果: "hù wéi yīn guǒ",
+ 互为表里: "hù wéi biǎo lǐ",
+ 厚此薄彼: "hòu cǐ bó bǐ",
+ 过关斩将: "guò guān zhǎn jiàng",
+ 疙疙瘩瘩: "gē ge dā dā",
+ 大腹便便: "dà fù pián pián",
+ 走为上策: "zǒu wéi shàng cè",
+ 冤家对头: "yuān jia duì tóu",
+ 有隙可乘: "yǒu xì kě chèng",
+ 一鳞半爪: "yì lín bàn zhǎo",
+ 片言只语: "piàn yán zhǐ yǔ",
+ 开花结实: "kāi huā jié shí",
+ 经年累月: "jīng nián lěi yuè",
+ 含糊其词: "hán hú qí cí",
+ 寡廉鲜耻: "guǎ lián xiǎn chǐ",
+ 成年累月: "chéng nián lěi yuè",
+ 不徇私情: "bú xùn sī qíng",
+ 不当人子: "bù dāng rén zǐ",
+ 膀大腰圆: "bǎng dà yāo yuán",
+ 指腹为婚: "zhǐ fù wéi hūn",
+ 这么点儿: "zhè me diǎn er",
+ 意兴索然: "yì xīng suǒ rán",
+ 绣花枕头: "xiù huā zhěn tou",
+ 无的放矢: "wú dì fàng shǐ",
+ 望闻问切: "wàng wén wèn qiè",
+ 舍己为人: "shě jǐ wèi rén",
+ 穷年累月: "qióng nián lěi yuè",
+ 排难解纷: "pái nàn jiě fēn",
+ 处之泰然: "chǔ zhī tài rán",
+ 指鹿为马: "zhǐ lù wéi mǎ",
+ 危如累卵: "wēi rú lěi luǎn",
+ 天兵天将: "tiān bīng tiān jiàng",
+ 舍近求远: "shě jìn qiú yuǎn",
+ 南腔北调: "nán qiāng běi diào",
+ 苦中作乐: "kǔ zhōng zuò lè",
+ 厚积薄发: "hòu jī bó fā",
+ 臭味相投: "xiù wèi xiāng tóu",
+ 长幼有序: "zhǎng yòu yǒu xù",
+ 逼良为娼: "bī liáng wéi chāng",
+ 悲悲切切: "bēi bēi qiè qiē",
+ 败军之将: "bài jūn zhī jiàng",
+ 欺行霸市: "qī háng bà shì",
+ 削足适履: "xuē zú shì lǚ",
+ 先睹为快: "xiān dǔ wéi kuài",
+ 啼饥号寒: "tí jī háo hán",
+ 疏不间亲: "shū bú jiàn qīn",
+ 神差鬼使: "shén chāi guǐ shǐ",
+ 敲敲打打: "qiāo qiāo dǎ dǎ",
+ 平铺直叙: "píng pū zhí xù",
+ 没头没尾: "méi tóu mò wěi",
+ 寥寥可数: "liáo liáo kě shǔ",
+ 哼哈二将: "hēng hā èr jiàng",
+ 鹤发童颜: "hè fà tóng yán",
+ 各奔前程: "gè bèn qián chéng",
+ 弹无虚发: "dàn wú xū fā",
+ 大人先生: "dà rén xiān sheng",
+ 与民更始: "yǔ mín gēng shǐ",
+ 树碑立传: "shù bēi lì zhuàn",
+ 是非得失: "shì fēi dé shī",
+ 实逼处此: "shí bī chǔ cǐ",
+ 塞翁失马: "sài wēng shī mǎ",
+ 日薄西山: "rì bó xī shān",
+ 切身体会: "qiè shēn tǐ huì",
+ 片言只字: "piàn yán zhǐ zì",
+ 跑马卖解: "pǎo mǎ mài xiè",
+ 宁折不弯: "nìng zhé bù wān",
+ 零零散散: "líng líng sǎn sǎn",
+ 量体裁衣: "liàng tǐ cái yī",
+ 连中三元: "lián zhòng sān yuán",
+ 礼崩乐坏: "lǐ bēng yuè huài",
+ 不为已甚: "bù wéi yǐ shèn",
+ 转悲为喜: "zhuǎn bēi wéi xǐ",
+ 以眼还眼: "yǐ yǎn huán yǎn",
+ 蔚为大观: "wèi wéi dà guān",
+ 未为不可: "wèi wéi bù kě",
+ 童颜鹤发: "tóng yán hè fà",
+ 朋比为奸: "péng bǐ wéi jiān",
+ 莫此为甚: "mò cǐ wéi shèn",
+ 夹枪带棒: "jiā qiāng dài bàng",
+ 富商巨贾: "fù shāng jù jiǎ",
+ 淡然处之: "dàn rán chǔ zhī",
+ 箪食壶浆: "dān shí hú jiāng",
+ 创巨痛深: "chuāng jù tòng shēn",
+ 草长莺飞: "cǎo zhǎng yīng fēi",
+ 坐视不救: "zuò shī bú jiù",
+ 以己度人: "yǐ jǐ duó rén",
+ 随行就市: "suí háng jiù shì",
+ 文以载道: "wén yǐ zài dào",
+ 文不对题: "wén bú duì tí",
+ 铁板钉钉: "tiě bǎn dìng dīng",
+ 身体发肤: "shēn tǐ fà fū",
+ 缺吃少穿: "quē chī shǎo chuān",
+ 目无尊长: "mù wú zūn zhǎng",
+ 吉人天相: "jí rén tiān xiàng",
+ 毁家纾难: "huǐ jiā shū nàn",
+ 钢筋铁骨: "gāng jīn tiě gǔ",
+ 丢卒保车: "diū zú bǎo jū",
+ 丢三落四: "diū sān là sì",
+ 闭目塞听: "bì mù sè tīng",
+ 削尖脑袋: "xuē jiān nǎo dài",
+ 为非作恶: "wéi fēi zuò è",
+ 人才难得: "rén cái nán dé",
+ 情非得已: "qíng fēi dé yǐ",
+ 切中要害: "qiè zhòng yào hài",
+ 火急火燎: "huǒ jí huǒ liǎo",
+ 画地为牢: "huà dì wéi láo",
+ 好酒贪杯: "hào jiǔ tān bēi",
+ 长歌当哭: "cháng gē dàng kū",
+ 载沉载浮: "zài chén zài fú",
+ 遇难呈祥: "yù nàn chéng xiáng",
+ 榆木疙瘩: "yú mù gē da",
+ 以邻为壑: "yǐ lín wéi hè",
+ 洋为中用: "yáng wéi zhōng yòng",
+ 言为心声: "yán wéi xīn shēng",
+ 言必有中: "yán bì yǒu zhòng",
+ 图穷匕见: "tú qióng bǐ xiàn",
+ 滂沱大雨: "páng tuó dà yǔ",
+ 目不暇给: "mù bù xiá jǐ",
+ 量才录用: "liàng cái lù yòng",
+ 教学相长: "jiào xué xiāng zhǎng",
+ 悔不当初: "huǐ bù dāng chū",
+ 呼幺喝六: "hū yāo hè liù",
+ 不足为训: "bù zú wéi xùn",
+ 不拘形迹: "bù jū xíng jī",
+ 傍若无人: "páng ruò wú rén",
+ 罪责难逃: "zuì zé nán táo",
+ 自我吹嘘: "zì wǒ chuī xū",
+ 转祸为福: "zhuǎn huò wéi fú",
+ 勇冠三军: "yǒng guàn sān jūn",
+ 易地而处: "yì dì ér chǔ",
+ 卸磨杀驴: "xiè mò shā lǘ",
+ 玩儿不转: "wán ér bú zhuàn",
+ 天道好还: "tiān dào hǎo huán",
+ 身单力薄: "shēn dān lì bó",
+ 撒豆成兵: "sǎ dòu chéng bīng",
+ 片纸只字: "piàn zhǐ zhī zì",
+ 宁缺毋滥: "nìng quē wú làn",
+ 没没无闻: "mò mò wú wén",
+ 量力而为: "liàng lì ér wéi",
+ 历历可数: "lì lì kě shǔ",
+ 口碑载道: "kǒu bēi zài dào",
+ 君子好逑: "jūn zǐ hǎo qiú",
+ 好为人师: "hào wéi rén shī",
+ 豪商巨贾: "háo shāng jù jiǎ",
+ 各有所好: "gè yǒu suǒ hào",
+ 度德量力: "duó dé liàng lì",
+ 指天为誓: "zhǐ tiān wéi shì",
+ 逸兴遄飞: "yì xìng chuán fēi",
+ 心宽体胖: "xīn kuān tǐ pán",
+ 为德不卒: "wéi dé bù zú",
+ 天下为家: "tiān xià wéi jiā",
+ 视为畏途: "shì wéi wèi tú",
+ 三灾八难: "sān zāi bā nàn",
+ 沐猴而冠: "mù hóu ér guàn",
+ 哩哩啦啦: "lī li lā lā",
+ 见缝就钻: "jiàn fèng jiù zuān",
+ 夹层玻璃: "jiā céng bō li",
+ 急公好义: "jí gōng hào yì",
+ 积年累月: "jī nián lěi yuè",
+ 划地为牢: "huá dì wéi láo",
+ 更名改姓: "gēng míng gǎi xìng",
+ 奉为圭臬: "fèng wéi guī niè",
+ 多难兴邦: "duō nàn xīng bāng",
+ 不破不立: "bú pò bú lì",
+ 坐地自划: "zuò dì zì huá",
+ 坐不重席: "zuò bù chóng xí",
+ 坐不窥堂: "zuò bù kuī táng",
+ 作嫁衣裳: "zuò jià yī shang",
+ 左枝右梧: "zuǒ zhī yòu wú",
+ 左宜右有: "zuǒ yí yòu yǒu",
+ 钻头觅缝: "zuān tóu mì fèng",
+ 钻天打洞: "zuān tiān dǎ dòng",
+ 钻皮出羽: "zuān pí chū yǔ",
+ 钻火得冰: "zuān huǒ dé bīng",
+ 钻洞觅缝: "zuàn dòng mì féng",
+ 钻冰求火: "zuān bīng qiú huǒ",
+ 子为父隐: "zǐ wéi fù yǐn",
+ 擢发难数: "zhuó fà nán shǔ",
+ 着人先鞭: "zhuó rén xiān biān",
+ 斫雕为朴: "zhuó diāo wéi pǔ",
+ 锥处囊中: "zhuī chǔ náng zhōng",
+ 椎心饮泣: "chuí xīn yǐn qì",
+ 椎心泣血: "chuí xīn qì xuè",
+ 椎牛飨士: "chuí niú xiǎng shì",
+ 椎牛歃血: "chuí niú shà xuè",
+ 椎牛发冢: "chuí niú fà zhǒng",
+ 椎埋屠狗: "chuí mái tú gǒu",
+ 椎埋狗窃: "chuí mái gǒu qiè",
+ 壮发冲冠: "zhuàng fā chōng guàn",
+ 庄严宝相: "zhuāng yán bǎo xiàng",
+ 转愁为喜: "zhuǎn chóu wéi xǐ",
+ 转嗔为喜: "zhuǎn chēn wéi xǐ",
+ 拽巷啰街: "zhuài xiàng luó jiē",
+ 拽耙扶犁: "zhuāi pá fú lí",
+ 拽布拖麻: "zhuài bù tuō má",
+ 箸长碗短: "zhù cháng wǎn duǎn",
+ 铸剑为犁: "zhù jiàn wéi lí",
+ 杼柚其空: "zhù yòu qí kōng",
+ 杼柚空虚: "zhù yòu kōng xū",
+ 助天为虐: "zhù tiān wéi nüè",
+ 属垣有耳: "zhǔ yuán yǒu ěr",
+ 属毛离里: "zhǔ máo lí lǐ",
+ 属辞比事: "zhǔ cí bǐ shì",
+ 逐物不还: "zhú wù bù huán",
+ 铢量寸度: "zhū liáng cùn duó",
+ 铢两悉称: "zhū liǎng xī chèn",
+ 侏儒观戏: "zhū rú guān xì",
+ 朱轓皁盖: "zhū fān zào gài",
+ 昼度夜思: "zhòu duó yè sī",
+ 诪张为幻: "zhōu zhāng wéi huàn",
+ 重明继焰: "chóng míng jì yàn",
+ 众啄同音: "zhòng zhuó tóng yīn",
+ 众毛攒裘: "zhòng máo cuán qiú",
+ 众好众恶: "zhòng hào zhòng wù",
+ 擿埴索涂: "zhāi zhí suǒ tú",
+ 稚齿婑媠: "zhì chǐ wǒ tuó",
+ 至当不易: "zhì dàng bú yì",
+ 指皂为白: "zhǐ zào wéi bái",
+ 指雁为羹: "zhǐ yàn wéi gēng",
+ 指树为姓: "zhǐ shù wéi xìng",
+ 指山说磨: "zhǐ shān shuō mò",
+ 止戈为武: "zhǐ gē wéi wǔ",
+ 枝干相持: "zhī gàn xiāng chí",
+ 枝大于本: "zh dà yú běn",
+ 支吾其词: "zhī wú qí cí",
+ 正身率下: "zhèng shēn shuài xià",
+ 正冠李下: "zhèng guàn lǐ xià",
+ 整冠纳履: "zhěng guān nà lǚ",
+ 整躬率物: "zhěng gōng shuài wù",
+ 整顿干坤: "zhěng dùn gàn kūn",
+ 针头削铁: "zhēn tóu xuē tiě",
+ 贞松劲柏: "zhēn sōng jìng bǎi",
+ 赭衣塞路: "zhě yī sè lù",
+ 折箭为誓: "shé jiàn wéi shì",
+ 折而族之: "zhé ér zú zhī",
+ 昭德塞违: "zhāo dé sè wéi",
+ 章句小儒: "zhāng jù xiǎo rú",
+ 湛恩汪濊: "zhàn ēn wāng huì",
+ 占风望气: "zhān fēng wàng qì",
+ 斩将搴旗: "zhǎn jiàng qiān qí",
+ 曾母投杼: "zēng mǔ tóu zhù",
+ 曾参杀人: "zēng shēn shā rén",
+ 造谣中伤: "zào yáo zhòng shāng",
+ 早占勿药: "zǎo zhān wù yào",
+ 凿龟数策: "záo guī shǔ cè",
+ 攒三聚五: "cuán sān jù wǔ",
+ 攒眉蹙额: "cuán mei cù é",
+ 攒零合整: "cuán líng hé zhěng",
+ 攒锋聚镝: "cuán fēng jù dí",
+ 载笑载言: "zài xiào zài yán",
+ 载酒问字: "zài jiǔ wèn zì",
+ 殒身不恤: "yǔn shēn bú xù",
+ 云舒霞卷: "yún shū xiá juǎn",
+ 月中折桂: "yuè zhōng shé guì",
+ 月落参横: "yuè luò shēn héng",
+ 鬻驽窃价: "yù nú qiè jià",
+ 鬻鸡为凤: "yù jī wéi fèng",
+ 遇难成祥: "yù nàn chéng xiáng",
+ 郁郁累累: "yù yù lěi lěi",
+ 玉卮无当: "yù zhī wú dàng",
+ 语笑喧阗: "yǔ xiào xuān tián",
+ 与世沉浮: "yǔ shì chén fú",
+ 与时消息: "yǔ shí xiāo xi",
+ 逾墙钻隙: "yú qiáng zuān xì",
+ 渔夺侵牟: "yú duó qīn móu",
+ 杅穿皮蠹: "yú chuān pí dù",
+ 余勇可贾: "yú yǒng kě gǔ",
+ 予智予雄: "yú zhì yú xióng",
+ 予取予求: "yú qǔ yú qiú",
+ 于家为国: "yú jiā wéi guó",
+ 有借无还: "yǒu jiè wú huán",
+ 有加无已: "yǒu jiā wú yǐ",
+ 有国难投: "yǒu guó nán tóu",
+ 游必有方: "yóu bì yǒu fāng",
+ 油干灯尽: "yóu gàn dēng jìn",
+ 尤云殢雨: "yóu yún tì yǔ",
+ 庸中皦皦: "yōng zhōng jiǎo jiǎo",
+ 郢书燕说: "yǐng shū yān shuō",
+ 营蝇斐锦: "yíng yíng fēi jǐn",
+ 鹰心雁爪: "yīng xīn yàn zhǎo",
+ 莺吟燕儛: "yīng yín yàn wǔ",
+ 应天顺时: "yīng tiān shùn shí",
+ 印累绶若: "yìn léi shòu ruò",
+ 隐占身体: "yǐn zhàn shēn tǐ",
+ 饮犊上流: "yìn dú shàng liú",
+ 引绳切墨: "yǐn shéng qiē mò",
+ 龈齿弹舌: "yín chǐ dàn shé",
+ 因缘为市: "yīn yuán wéi shì",
+ 因树为屋: "yīn shù wéi wū",
+ 溢美溢恶: "yì měi yì wù",
+ 抑塞磊落: "yì sè lěi luò",
+ 倚闾望切: "yǐ lǘ wàng qiē",
+ 以意为之: "yǐ yì wéi zhī",
+ 以言为讳: "yǐ yán wéi huì",
+ 以疏间亲: "yǐ shū jiàn qīn",
+ 以水济水: "yǐ shuǐ jǐ shuǐ",
+ 以书为御: "yǐ shū wéi yù",
+ 以守为攻: "yǐ shǒu wéi gōng",
+ 以升量石: "yǐ shēng liáng dàn",
+ 以慎为键: "yǐ shèn wéi jiàn",
+ 以筌为鱼: "yǐ quán wéi yú",
+ 以利累形: "yǐ lì lěi xíng",
+ 以毁为罚: "yǐ huǐ wéi fá",
+ 以黑为白: "yǐ hēi wéi bái",
+ 以规为瑱: "yǐ guī wéi tiàn",
+ 以古为鉴: "yǐ gǔ wéi jiàn",
+ 以宫笑角: "yǐ gōng xiào jué",
+ 以法为教: "yǐ fǎ wéi jiào",
+ 以大恶细: "yǐ dà wù xì",
+ 遗世忘累: "yí shì wàng lěi",
+ 遗寝载怀: "yí qǐn zài huái",
+ 移的就箭: "yí dì jiù jiàn",
+ 依头缕当: "yī tóu lǚ dàng",
+ 衣租食税: "yì zū shí shuì",
+ 衣轻乘肥: "yì qīng chéng féi",
+ 衣裳之会: "yī shang zhī huì",
+ 衣单食薄: "yī dān shí bó",
+ 一还一报: "yì huán yí bào",
+ 叶公好龙: "yè gōng hào lóng",
+ 野调无腔: "yě diào wú qiāng",
+ 瑶池女使: "yáo chí nǚ shǐ",
+ 幺麽小丑: "yāo mó xiǎo chǒu",
+ 养精畜锐: "yǎng jīng xù ruì",
+ 卬首信眉: "áng shǒu shēn méi",
+ 洋洋纚纚: "yáng yáng sǎ sǎ",
+ 羊羔美酒: "yáng gāo měi jiǔ",
+ 扬风扢雅: "yáng fēng jié yǎ",
+ 燕昭市骏: "yān zhāo shì jùn",
+ 燕昭好马: "yān zhāo hǎo mǎ",
+ 燕石妄珍: "yān shí wàng zhēn",
+ 燕骏千金: "yān jùn qiān jīn",
+ 燕金募秀: "yān jīn mù xiù",
+ 燕驾越毂: "yān jià yuè gǔ",
+ 燕歌赵舞: "yān gē zhào wǔ",
+ 燕岱之石: "yān dài zhī shí",
+ 燕处危巢: "yàn chǔ wēi cháo",
+ 掞藻飞声: "shàn zǎo fēi shēng",
+ 偃革为轩: "yǎn gé wéi xuān",
+ 妍蚩好恶: "yán chī hǎo è",
+ 压良为贱: "yā liáng wéi jiàn",
+ 搀行夺市: "chān háng duó shì",
+ 泣数行下: "qì shù háng xià",
+ 当行出色: "dāng háng chū sè",
+ 秀出班行: "xiù chū bān háng",
+ 儿女成行: "ér nǚ chéng háng",
+ 大行大市: "dà háng dà shì",
+ 寻行数墨: "xún háng shǔ mò",
+ 埙篪相和: "xūn chí xiāng hè",
+ 血债累累: "xuè zhài lěi lěi",
+ 炫玉贾石: "xuàn yù gǔ shí",
+ 炫石为玉: "xuàn shí wéi yù",
+ 悬石程书: "xuán dàn chéng shū",
+ 悬狟素飡: "xuán huán sù cān",
+ 悬龟系鱼: "xuán guī xì yú",
+ 揎拳捋袖: "xuān quán luō xiù",
+ 轩鹤冠猴: "xuān hè guàn hóu",
+ 畜妻养子: "xù qī yǎng zǐ",
+ 羞人答答: "xiū rén dā dā",
+ 修鳞养爪: "xiū lín yǎng zhǎo",
+ 熊据虎跱: "xióng jù hǔ zhì",
+ 兄死弟及: "xiōng sǐ dì jí",
+ 腥闻在上: "xīng wén zài shàng",
+ 兴文匽武: "xīng wén yǎn wǔ",
+ 兴观群怨: "xìng guān qún yuàn",
+ 兴高彩烈: "xìng gāo cǎi liè",
+ 心手相应: "xīn shǒu xiāng yìng",
+ 心口相应: "xīn kǒu xiāng yīng",
+ 挟势弄权: "xié shì nòng quán",
+ 胁肩累足: "xié jiān lěi zú",
+ 校短量长: "jiào duǎn liáng cháng",
+ 小眼薄皮: "xiǎo yǎn bó pí",
+ 硝云弹雨: "xiāo yún dàn yǔ",
+ 鸮鸣鼠暴: "xiāo míng shǔ bào",
+ 削株掘根: "xuē zhū jué gēn",
+ 削铁无声: "xuē tiě wú shēng",
+ 削职为民: "xuē zhí wéi mín",
+ 削木为吏: "xuē mù wéi lì",
+ 想望风褱: "xiǎng wàng fēng huái",
+ 香培玉琢: "xiang pei yu zhuó",
+ 相鼠有皮: "xiàng shǔ yǒu pí",
+ 相时而动: "xiàng shí ér dòng",
+ 相切相磋: "xiāng qiē xiāng cuō",
+ 相女配夫: "xiàng nǚ pèi fū",
+ 相门有相: "xiàng mén yǒu xiàng",
+ 挦章撦句: "xián zhāng chě jù",
+ 先我着鞭: "xiān wǒ zhuó biān",
+ 习焉不察: "xí yān bù chá",
+ 歙漆阿胶: "shè qī ē jiāo",
+ 晰毛辨发: "xī máo biàn fà",
+ 悉索薄赋: "xī suǒ bó fù",
+ 雾鳞云爪: "wù lín yún zhǎo",
+ 物稀为贵: "wù xī wéi guì",
+ 碔砆混玉: "wǔ fū hùn yù",
+ 武断专横: "wǔ duàn zhuān héng",
+ 五石六鹢: "wǔ shí liù yì",
+ 五色相宣: "wǔ sè xiāng xuān",
+ 五侯七贵: "wǔ hóu qī guì",
+ 五侯蜡烛: "wǔ hòu là zhú",
+ 五羖大夫: "wǔ gǔ dà fū",
+ 吾自有处: "wú zì yǒu chǔ",
+ 无下箸处: "wú xià zhù chǔ",
+ 无伤无臭: "wú shāng wú xiù",
+ 无能为役: "wú néng wéi yì",
+ 无寇暴死: "wú kòu bào sǐ",
+ 无孔不钻: "wú kǒng bú zuàn",
+ 无间可乘: "wú jiān kě chéng",
+ 无间冬夏: "wú jiān dōng xià",
+ 无恶不为: "wú è bù wéi",
+ 无动为大: "wú dòng wéi dà",
+ 诬良为盗: "wū liáng wéi dào",
+ 握拳透爪: "wò quán tòu zhǎo",
+ 文武差事: "wén wǔ chāi shì",
+ 委委佗佗: "wēi wēi tuó tuó",
+ 惟日为岁: "wéi rì wéi suì",
+ 帷薄不修: "wéi bó bù xiū",
+ 为善最乐: "wéi shàn zuì lè",
+ 为山止篑: "wéi shān zhǐ kuì",
+ 为仁不富: "wéi rén bú fù",
+ 为裘为箕: "wéi qiú wéi jī",
+ 为民父母: "wéi mín fù mǔ",
+ 为虺弗摧: "wéi huǐ fú cuī",
+ 为好成歉: "wéi hǎo chéng qiàn",
+ 为鬼为蜮: "wéi guǐ wéi yù",
+ 望风响应: "wàng fēng xiǎng yīng",
+ 望尘僄声: "wàng chén piào shēng",
+ 往渚还汀: "wǎng zhǔ huán tīng",
+ 王贡弹冠: "wáng gòng dàn guàn",
+ 亡国大夫: "wáng guó dà fū",
+ 万贯家私: "wàn guàn jiā sī",
+ 晚食当肉: "wǎn shí dàng ròu",
+ 晚节不保: "wǎn jié bù bǎo",
+ 玩岁愒时: "wán suì kài shí",
+ 蛙蟆胜负: "wā má shèng fù",
+ 吞言咽理: "tūn yán yàn lǐ",
+ 颓垣断堑: "tuí yuán duàn qiàn",
+ 推干就湿: "tuī gàn jiù shī",
+ 剸繁决剧: "tuán fán jué jù",
+ 团头聚面: "tuán tóu jù miàn",
+ 兔丝燕麦: "tù sī yàn mài",
+ 兔头麞脑: "tù tóu zhāng nǎo",
+ 兔葵燕麦: "tù kuí yàn mài",
+ 吐哺握发: "tǔ bǔ wò fà",
+ 投传而去: "tóu zhuàn ér qù",
+ 头没杯案: "tóu mò bēi àn",
+ 头昏脑闷: "tóu hūn nǎo mèn",
+ 头会箕敛: "tóu kuài jī liǎn",
+ 头出头没: "tóu chū tóu mò",
+ 痛自创艾: "tòng zì chuāng yì",
+ 同恶相助: "tóng wù xiāng zhù",
+ 同恶相恤: "tóng wù xiāng xù",
+ 痌瘝在抱: "tōng guān zài bào",
+ 通文调武: "tōng wén diào wǔ",
+ 停留长智: "tíng liú zhǎng zhì",
+ 铁树开华: "tiě shù kāi huā",
+ 条贯部分: "tiáo guàn bù fēn",
+ 挑牙料唇: "tiǎo yá liào chún",
+ 挑么挑六: "tiāo yāo tiāo liù",
+ 挑唇料嘴: "tiǎo chún liào zuǐ",
+ 恬不为意: "tián bù wéi yì",
+ 恬不为怪: "tián bù wéi guài",
+ 天下为笼: "tiān xià wéi lóng",
+ 天台路迷: "tiān tái lù mí",
+ 天年不遂: "tiān nián bú suì",
+ 探囊胠箧: "tàn náng qū qiè",
+ 谭言微中: "tán yán wēi zhòng",
+ 谈言微中: "tán yán wēi zhòng",
+ 狧穅及米: "shì kāng jí mǐ",
+ 随物应机: "suí wù yīng jī",
+ 搜岩采干: "sōu yán cǎi gàn",
+ 宋斤鲁削: "sòng jīn lǔ xuē",
+ 松筠之节: "sōng yún zhī jié",
+ 四亭八当: "sì tíng bā dàng",
+ 四马攒蹄: "sì mǎ cuán tí",
+ 四不拗六: "sì bú niù liù",
+ 思所逐之: "sī suǒ zhú zhī",
+ 丝恩发怨: "sī ēn fà yuàn",
+ 硕望宿德: "shuò wàng xiǔ dé",
+ 铄古切今: "shuò gǔ qiē jīn",
+ 顺风而呼: "shùn fēng ér hū",
+ 顺风吹火: "shùn fēng chuī huǒ",
+ 水中著盐: "shuǐ zhōng zhuó yán",
+ 双柑斗酒: "shuāng gān dǒu jiǔ",
+ 数米而炊: "shǔ mǐ ér chuī",
+ 数米量柴: "shǔ mǐ liáng chái",
+ 数理逻辑: "shù lǐ luó ji",
+ 数黑论黄: "shǔ hēi lùn huáng",
+ 数白论黄: "shǔ bái lùn huáng",
+ 束缊还妇: "shù yūn huán fù",
+ 束蒲为脯: "shù pú wéi pú",
+ 束椽为柱: "shù chuán wéi zhù",
+ 书缺有间: "shū quē yǒu jiàn",
+ 手足重茧: "shǒu zú chóng jiǎn",
+ 手足异处: "shǒu zú yì chǔ",
+ 手脚干净: "shǒu jiǎo gàn jìng",
+ 手不应心: "shǒu bù yīng xīn",
+ 螫手解腕: "shì shǒu jiě wàn",
+ 释知遗形: "shì zhī yí xíng",
+ 适时应务: "shì shí yīng wù",
+ 适情率意: "shì qíng shuài yì",
+ 适当其冲: "shì dāng qí chōng",
+ 视为知己: "shì wéi zhī jǐ",
+ 使羊将狼: "shǐ yáng jiàng láng",
+ 食为民天: "shí wéi mín tiān",
+ 拾掇无遗: "shí duō wú yí",
+ 实与有力: "shí yù yǒu lì",
+ 石英玻璃: "shí yīng bō li",
+ 石室金匮: "shí shì jīn guì",
+ 什袭珍藏: "shí xí zhēn cáng",
+ 什伍东西: "shí wǔ dōng xī",
+ 什围伍攻: "shí wéi wǔ gōng",
+ 十魔九难: "shí mó jiǔ nàn",
+ 诗书发冢: "shī shū fà zhǒng",
+ 虱处裈中: "shī chǔ kūn zhōng",
+ 师直为壮: "shī zhí wéi zhuàng",
+ 尸居龙见: "shī jū lóng xiàn",
+ 圣经贤传: "shèng jīng xián zhuàn",
+ 圣君贤相: "shèng jūn xián xiàng",
+ 生拖死拽: "shēng tuō sǐ zhuài",
+ 审己度人: "shěn jǐ duó rén",
+ 神武挂冠: "shén wǔ guà guàn",
+ 神龙失埶: "shén lóng shī shì",
+ 深文曲折: "shēn wén qǔ shé",
+ 深厉浅揭: "shēn lì qiǎn qì",
+ 深谷为陵: "shēn gǔ wéi líng",
+ 深恶痛疾: "shēn wù tòng jí",
+ 深仇宿怨: "shēn chóu xiǔ yuàn",
+ 舍己为公: "shě jǐ wèi gōng",
+ 舍短取长: "shě duǎn qǔ cháng",
+ 舍策追羊: "shě cè zhuī yáng",
+ 蛇蝎为心: "shé xiē wéi xīn",
+ 少成若性: "shào chéng ruò xìng",
+ 上当学乖: "shàng dàng xué guāi",
+ 赏不当功: "shǎng bù dāng gōng",
+ 善自为谋: "shàn zì wéi móu",
+ 善为说辞: "shàn wéi shuō cí",
+ 善善恶恶: "shàn shàn wù è",
+ 善财难舍: "shàn cái nán shě",
+ 苫眼铺眉: "shān yǎn pū méi",
+ 讪牙闲嗑: "shàn yá xián kē",
+ 山阴乘兴: "shān yīn chéng xīng",
+ 山殽野湋: "shān yáo yě wéi",
+ 山溜穿石: "shān liù chuān shí",
+ 山节藻棁: "shān jié zǎo zhuō",
+ 杀鸡为黍: "shā jī wéi shǔ",
+ 色厉胆薄: "sè lì dǎn bó",
+ 桑荫未移: "sāng yīn wèi yí",
+ 桑荫不徙: "sāng yīn bù xǐ",
+ 桑土绸缪: "sāng tǔ chóu miù",
+ 桑户棬枢: "sāng hù juàn shū",
+ 三战三北: "sān zhàn sān běi",
+ 三瓦两舍: "sān wǎ liǎng shě",
+ 三人为众: "sān rén wèi zhòng",
+ 三差两错: "sān chā liǎng cuò",
+ 塞井焚舍: "sāi jǐng fén shě",
+ 洒心更始: "sǎ xīn gèng shǐ",
+ 洒扫应对: "sǎ sǎo yìng duì",
+ 软红香土: "ruǎn hóng xiāng tǔ",
+ 入吾彀中: "rù wú gòu zhōng",
+ 入铁主簿: "rù tiě zhǔ bù",
+ 入理切情: "rù lǐ qiē qíng",
+ 汝成人耶: "rǔ chéng rén yé",
+ 如水投石: "rú shuǐ tóu shí",
+ 如切如磋: "rú qiē rú cuō",
+ 如登春台: "rú dēng chūn tái",
+ 肉薄骨并: "ròu bó gǔ bìng",
+ 柔情绰态: "róu qíng chuò tài",
+ 戎马劻勷: "róng mǎ kuāng ráng",
+ 日中为市: "rì zhōng wéi shì",
+ 日月参辰: "rì yuè shēn chén",
+ 日省月修: "rì xǐng yuè xiū",
+ 日削月割: "rì xuē yuè gē",
+ 日省月试: "rì xǐng yuè shì",
+ 任达不拘: "rèn dá bù jū",
+ 人言藉藉: "rén yán jí jí",
+ 人模狗样: "rén mú gǒu yàng",
+ 人莫予毒: "rén mò yú dú",
+ 热熬翻饼: "rè áo fān bǐng",
+ 圈牢养物: "juàn láo yǎng wù",
+ 取予有节: "qǔ yǔ yǒu jié",
+ 诎要桡腘: "qū yāo ráo guó",
+ 穷形尽相: "qióng xíng jìn xiàng",
+ 情凄意切: "qíng qī yì qiè",
+ 情见势屈: "qíng xiàn shì qū",
+ 情见乎辞: "qíng xiàn hū cí",
+ 清都绛阙: "qīng dōu jiàng què",
+ 倾肠倒肚: "qīng cháng dào dǔ",
+ 青紫被体: "qīng zǐ pī tǐ",
+ 青林黑塞: "qīng lín hēi sài",
+ 螓首蛾眉: "qín shǒu é méi",
+ 琴瑟之好: "qín sè zhī hào",
+ 且住为佳: "qiě zhù wéi jiā",
+ 切树倒根: "qiē shù dǎo gēn",
+ 切理餍心: "qiē lǐ yàn xīn",
+ 切近的当: "qiē jìn de dāng",
+ 翘足引领: "qiáo zú yǐn lǐng",
+ 巧发奇中: "qiǎo fā qí zhòng",
+ 强嘴拗舌: "jiàng zuǐ niù shé",
+ 强直自遂: "qiáng zhí zì suí",
+ 强死强活: "qiǎng sǐ qiǎng huó",
+ 强食自爱: "qiǎng shí zì ài",
+ 强食靡角: "qiǎng shí mí jiǎo",
+ 强弓劲弩: "qiáng gōng jìng nǔ",
+ 强聒不舍: "qiǎng guō bù shě",
+ 强凫变鹤: "qiáng fú biàn hè",
+ 强而后可: "qiǎng ér hòu kě",
+ 强得易贫: "qiǎng dé yì pín",
+ 遣兴陶情: "qiǎn xìng táo qíng",
+ 牵羊担酒: "qiān yáng dān jiǔ",
+ 千了百当: "qiān liǎo bǎi dàng",
+ 泣下如雨: "qì xià rú yǔ",
+ 起偃为竖: "qǐ yǎn wéi shù",
+ 岂弟君子: "kǎi tì jūn zǐ",
+ 綦溪利跂: "qí xī lì qí",
+ 棋输先著: "qí shū xiān zhuó",
+ 齐王舍牛: "qí wáng shě niú",
+ 欺天诳地: "qī tiān kuáng dì",
+ 普天率土: "pǔ tiān shuài tǔ",
+ 铺胸纳地: "pū xiōng nà dì",
+ 铺锦列绣: "pū jǐn liè xiù",
+ 破家为国: "pò jiā wèi guó",
+ 破觚为圜: "pò gū wéi yuán",
+ 萍飘蓬转: "píng piāo péng zhuàn",
+ 帡天极地: "píng tiān jí dì",
+ 屏声息气: "bǐng shēng xī qì",
+ 凭几据杖: "píng jī jù zhàng",
+ 贫嘴薄舌: "pín zuǐ bó shé",
+ 片语只辞: "piàn yǔ zhī cí",
+ 披发文身: "pī fà wén shēn",
+ 烹龙炮凤: "pēng lóng páo fèng",
+ 炰鳖脍鲤: "fǒu biē kuài lǐ",
+ 庞眉皓发: "páng méi hào fà",
+ 攀花折柳: "pān huā zhé liǔ",
+ 攀蟾折桂: "pān chán shé guì",
+ 女大难留: "nǚ dà nán liú",
+ 弄玉吹箫: "nòng yù chuī xiāo",
+ 弄管调弦: "nòng guǎn tiáo xián",
+ 弄粉调朱: "nòng fěn diào zhū",
+ 浓抹淡妆: "nóng mò dàn zhuāng",
+ 捻土为香: "niǎn tǔ wéi xiāng",
+ 年谊世好: "nián yì shì hǎo",
+ 年华垂暮: "nián huá chuí mù",
+ 儗不于伦: "nǐ bù yú lún",
+ 泥而不滓: "ní ér bù zǐ",
+ 能者为师: "néng zhě wéi shī",
+ 能不称官: "néng bú chèn guān",
+ 挠直为曲: "náo zhí wéi qū",
+ 难进易退: "nán jìn yì tuì",
+ 难得糊涂: "nán dé hú tú",
+ 南蛮鴂舌: "nán mán jué shé",
+ 南贩北贾: "nán fàn běi gǔ",
+ 牧猪奴戏: "mù zhū nú xì",
+ 目眢心忳: "mù yuān xīn tún",
+ 目挑心招: "mù tiǎo xīn zhāo",
+ 目量意营: "mù liàng yì yíng",
+ 木头木脑: "mù tóu mù nǎo",
+ 木干鸟栖: "mù gàn niǎo qī",
+ 侔色揣称: "móu sè chuǎi chèn",
+ 莫予毒也: "mò yú dú yě",
+ 抹粉施脂: "mò fěn shī zhī",
+ 磨砻镌切: "mó lóng juān qiē",
+ 磨棱刓角: "mó léng wán jiǎo",
+ 摸门不着: "mō mén bù zháo",
+ 摸不着边: "mō bù zhuó biān",
+ 命中注定: "mìng zhōng zhù dìng",
+ 鸣鹤之应: "míng hè zhī yìng",
+ 明效大验: "míng xiào dà yàn",
+ 名我固当: "míng wǒ gù dāng",
+ 邈处欿视: "miǎo chǔ kǎn shì",
+ 黾穴鸲巢: "měng xué qú cháo",
+ 绵里薄材: "mián lǐ bó cái",
+ 靡有孑遗: "mǐ yǒu jié yí",
+ 靡衣偷食: "mǐ yī tōu shí",
+ 迷恋骸骨: "mí liàn hái gǔ",
+ 扪参历井: "mén shēn lì jǐng",
+ 门单户薄: "mén dān hù bó",
+ 昧旦晨兴: "mèi dàn chén xīng",
+ 冒名接脚: "mào míng jiē jiǎo",
+ 毛遂堕井: "máo suí duò jǐng",
+ 毛发倒竖: "máo fā dǎo shù",
+ 卖文为生: "mài wén wéi shēng",
+ 卖李钻核: "mài lǐ zuān hé",
+ 买椟还珠: "mǎi dú huán zhū",
+ 埋三怨四: "mán sān yuàn sì",
+ 马入华山: "mǎ rù huá shān",
+ 落魄江湖: "luò pò jiāng hú",
+ 落落难合: "luò luò nán hé",
+ 落草为寇: "luò cǎo wéi kòu",
+ 罗织构陷: "luó zhī gòu xiàn",
+ 鸾凤和鸣: "luán fèng hè míng",
+ 率由旧章: "shuài yóu jiù zhāng",
+ 率土同庆: "shuài tǔ tóng qìng",
+ 率兽食人: "shuài shòu shí rén",
+ 率土归心: "shuài tǔ guī xīn",
+ 率马以骥: "shuài mǎ yǐ jì",
+ 率尔成章: "shuài ěr chéng zhāng",
+ 鲁斤燕削: "lǔ jīn yàn xuē",
+ 漏尽更阑: "lòu jìn gēng lán",
+ 笼鸟槛猿: "lóng niǎo jiàn yuán",
+ 笼鸟池鱼: "lóng niǎo chí yú",
+ 龙游曲沼: "lóng yóu qū zhǎo",
+ 龙血玄黄: "lóng xuè xuán huáng",
+ 龙雕凤咀: "lóng diāo fèng jǔ",
+ 六尺之讬: "liù chǐ zhī tuō",
+ 令原之戚: "líng yuán zhī qī",
+ 令人捧腹: "lìng rén pěng fù",
+ 陵劲淬砺: "líng jìng cuì lì",
+ 临敌易将: "lín dí yì jiàng",
+ 裂裳衣疮: "liè shang yī chuāng",
+ 裂冠毁冕: "liè guàn huǐ miǎn",
+ 了无惧色: "liǎo wú jù sè",
+ 了身达命: "liǎo shēn dá mìng",
+ 了然无闻: "liǎo rán wú wén",
+ 了不可见: "liǎo bù kě jiàn",
+ 了不长进: "liǎo bù zhǎng jìn",
+ 燎发摧枯: "liǎo fà cuī kū",
+ 审时度势: "shěn shí duó shì",
+ 量小力微: "liàng xiǎo lì wēi",
+ 相时度力: "xiāng shí duó lì",
+ 量枘制凿: "liàng ruì zhì záo",
+ 量如江海: "liàng rú jiāng hǎi",
+ 量金买赋: "liàng jīn mǎi fù",
+ 量己审分: "liàng jǐ shěn fēn",
+ 敛骨吹魂: "liǎn gǔ chuī hún",
+ 詈夷为跖: "lì yí wéi zhí",
+ 利令志惛: "lì lìng zhì hūn",
+ 李广不侯: "lǐ guǎng bú hòu",
+ 礼为情貌: "lǐ wéi qíng mào",
+ 礼让为国: "lǐ ràng wéi guó",
+ 犁生骍角: "lí shēng xīng jiǎo",
+ 离本徼末: "lí běn jiǎo mò",
+ 楞眉横眼: "léng méi hèng yǎn",
+ 擂天倒地: "léi tiān dǎo dì",
+ 累足成步: "lěi zú chéng bù",
+ 累瓦结绳: "lěi wǎ jié shéng",
+ 累土至山: "lěi tǔ zhì shān",
+ 累土聚沙: "lěi tǔ jù shā",
+ 累卵之危: "lěi luǎn zhī wēi",
+ 累累如珠: "lěi lěi rú zhū",
+ 累块积苏: "lěi kuài jī sū",
+ 乐山乐水: "lè shān lè shuǐ",
+ 潦原浸天: "lǎo yuán jìn tiān",
+ 老师宿儒: "lǎo shī xiǔ rú",
+ 牢什古子: "láo shí gǔ zi",
+ 琅嬛福地: "láng huán fú dì",
+ 揆情度理: "kuí qíng duó lǐ",
+ 旷日累时: "kuàng rì lěi shí",
+ 匡救弥缝: "kuāng jiù mí fèng",
+ 枯树生华: "kū shù shēng huā",
+ 口轻舌薄: "kǒu qīng shé bó",
+ 口角生风: "kǒu jiǎo shēng fēng",
+ 口角春风: "kǒu jiǎo chūn fēng",
+ 口角风情: "kǒu jiǎo fēng qíng",
+ 口干舌焦: "kǒu gān shé jiāo",
+ 口腹之累: "kǒu fù zhī lěi",
+ 空腹便便: "kōng fù pián pián",
+ 嗑牙料嘴: "kē yá liào zuǐ",
+ 刻木为鹄: "kè mù wéi hú",
+ 咳珠唾玉: "ké zhū tuò yù",
+ 咳唾成珠: "ké tuò chéng zhū",
+ 抗颜为师: "kàng yán wéi shī",
+ 开华结果: "kāi huā jié guǒ",
+ 峻阪盐车: "jùn bǎn yán chē",
+ 嚼铁咀金: "jiáo tiě jǔ jīn",
+ 嚼墨喷纸: "jué mò pēn zhǐ",
+ 倔头强脑: "juè tóu jiàng nǎo",
+ 倔头倔脑: "juè tóu juè nǎo",
+ 倦鸟知还: "juàn niǎo zhī huán",
+ 卷席而葬: "juǎn xí ér zàng",
+ 卷甲倍道: "juǎn jiǎ bèi dào",
+ 聚米为山: "jù mǐ wéi shān",
+ 举手相庆: "jǔ shǒu xiāng qìng",
+ 举世混浊: "jǔ shì hún zhuó",
+ 鞠为茂草: "jū wéi mào cǎo",
+ 拘神遣将: "jū shén qiǎn jiàng",
+ 居下讪上: "jū xià shàn shàng",
+ 久要不忘: "jiǔ yāo bú wàng",
+ 九转功成: "jiǔ zhuǎn gōng chéng",
+ 九蒸三熯: "jiǔ zhēng sān hàn",
+ 敬业乐群: "jìng yè lè qún",
+ 井底虾蟆: "jǐng dǐ xiā má",
+ 旌旗卷舒: "jīng qí juǎn shū",
+ 荆棘载途: "jīng jí zài tú",
+ 禁舍开塞: "jìn shě kāi sāi",
+ 祲威盛容: "jìn wēi shèng róng",
+ 进退消长: "jìn tuì xiāo cháng",
+ 进退应矩: "jìn tuì yīng jǔ",
+ 进退触籓: "jìn tuì chù fān",
+ 进退跋疐: "jìn tuì bá zhì",
+ 尽多尽少: "jǐn duō jǐn shǎo",
+ 锦囊还矢: "jǐn náng huán shǐ",
+ 矜己自饰: "jīn jǐ zì shì",
+ 矜功负气: "jīn gōng fù qì",
+ 津关险塞: "jīn guān xiǎn sài",
+ 金吾不禁: "jīn wú bú jìn",
+ 金翅擘海: "jīn chì bāi hǎi",
+ 解衣衣人: "jiě yī yī rén",
+ 解人难得: "jiě rén nán dé",
+ 解铃系铃: "jiě líng xì líng",
+ 解发佯狂: "jiě fà yáng kuáng",
+ 诘屈磝碻: "jié qū áo qiāo",
+ 教猱升木: "jiāo náo shēng mù",
+ 较瘦量肥: "jiào shòu liàng féi",
+ 角立杰出: "jiǎo lì jié chū",
+ 焦沙烂石: "jiāo shā làn shí",
+ 骄儿騃女: "jiāo ér sì nǚ",
+ 浇风薄俗: "jiāo fēng bó sú",
+ 降妖捉怪: "xiáng yāo zhuō guài",
+ 将取固予: "jiāng qǔ gù yǔ",
+ 将门有将: "jiàng mén yǒu jiàng",
+ 将夺固与: "jiāng duó gù yǔ",
+ 槛花笼鹤: "jiàn huā lóng hè",
+ 鉴影度形: "jiàn yǐng duó xíng",
+ 渐不可长: "jiàn bù kě zhǎng",
+ 见素抱朴: "xiàn sù bào pǔ",
+ 见弃于人: "jiàn qì yú rén",
+ 简丝数米: "jiǎn sī shǔ mǐ",
+ 俭不中礼: "jiǎn bú zhòng lǐ",
+ 间见层出: "jiàn xiàn céng chū",
+ 尖嘴薄舌: "jiān zuǐ bó shé",
+ 甲冠天下: "jiǎ guàn tiān xià",
+ 葭莩之亲: "jiā fú zhī qīn",
+ 家累千金: "jiā lèi qiān jīn",
+ 家给人足: "jiā jǐ rén zú",
+ 家道从容: "jiā dào cóng róng",
+ 夹袋人物: "jiā dài rén wù",
+ 霁风朗月: "jì fēng lǎng yuè",
+ 寄兴寓情: "jì xìng yù qíng",
+ 计深虑远: "jì shēn lǜ yuǎn",
+ 计功量罪: "jì gōng liàng zuì",
+ 掎裳连襼: "jǐ shang lián yì",
+ 虮虱相吊: "jǐ shī xiāng diào",
+ 疾不可为: "jí bù kě wéi",
+ 极深研几: "jí shēn yán jī",
+ 及宾有鱼: "jí bīn yǒu yú",
+ 激薄停浇: "jī bó tíng jiāo",
+ 积素累旧: "jī sù lěi jiù",
+ 积时累日: "jī shí lěi rì",
+ 积露为波: "jī lù wéi bō",
+ 积德累功: "jī dé lěi gōng",
+ 积谗糜骨: "jī chán méi gǔ",
+ 击排冒没: "jī pái mào mò",
+ 祸为福先: "huò wéi fú xiān",
+ 祸福相依: "huò fú xiāng yī",
+ 获隽公车: "huò jùn gōng chē",
+ 混应滥应: "hùn yīng làn yīng",
+ 毁舟为杕: "huǐ zhōu wéi duò",
+ 毁钟为铎: "huǐ zhōng wéi duó",
+ 毁冠裂裳: "huǐ guān liè cháng",
+ 晦盲否塞: "huì máng pǐ sè",
+ 回船转舵: "huí chuán zhuàn duò",
+ 潢池盗弄: "huáng chí dào nòng",
+ 黄冠草履: "huáng guàn cǎo lǚ",
+ 黄发儿齿: "huáng fà ér chǐ",
+ 黄发垂髫: "huáng fà chuí tiáo",
+ 还珠返璧: "huán zhū fǎn bì",
+ 还年驻色: "huán nián zhù sè",
+ 还年却老: "huán nián què lǎo",
+ 坏裳为裤: "huài shang wéi kù",
+ 画荻和丸: "huà dí huò wán",
+ 化枭为鸠: "huà xiāo wéi jiū",
+ 化腐为奇: "huà fǔ wéi qí",
+ 化鸱为凤: "huà chī wéi fèng",
+ 花不棱登: "huā bu lēng dēng",
+ 户限为穿: "hù xiàn wéi chuān",
+ 呼卢喝雉: "hū lú hè zhì",
+ 呼来喝去: "hū lái hè qù",
+ 呼不给吸: "hū bù jǐ xī",
+ 厚味腊毒: "hòu wèi xī dú",
+ 厚德载物: "hòu dé zài wù",
+ 鸿渐于干: "hóng jiàn yú gàn",
+ 洪炉燎发: "hóng lú liáo fà",
+ 红绳系足: "hóng shéng jì zú",
+ 红不棱登: "hóng bu lēng dēng",
+ 横抢硬夺: "hèng qiǎng yìng duó",
+ 横恩滥赏: "hèng ēn làn shǎng",
+ 恨海难填: "hèn hǎi nán tián",
+ 鹤发鸡皮: "hè fà jī pí",
+ 涸思干虑: "hé sī gān lǜ",
+ 河涸海干: "hé hé hǎi gān",
+ 和颜说色: "hé yán yuè sè",
+ 合从连衡: "hé zòng lián héng",
+ 浩浩汤汤: "hào hào shāng shāng",
+ 好勇斗狠: "hào yǒng dòu hěn",
+ 好问则裕: "hào wèn zé yù",
+ 好为事端: "hào wéi shì duān",
+ 好问决疑: "hào wèn jué yí",
+ 好生之德: "hào shēng zhī dé",
+ 好奇尚异: "hǎo qí shàng yì",
+ 好恶不同: "hǎo è bù tóng",
+ 好丹非素: "hào dān fēi sù",
+ 豪干暴取: "háo gàn bào qǔ",
+ 毫发不爽: "háo fà bù shuǎng",
+ 寒酸落魄: "hán suān luò pò",
+ 含英咀华: "hán yīng jǔ huá",
+ 含糊不明: "hán hú bù míng",
+ 过为已甚: "guò wéi yǐ shèn",
+ 桂折兰摧: "guì shé lán cuī",
+ 规旋矩折: "guī xuán jǔ shé",
+ 广文先生: "guǎng wén xiān sheng",
+ 广陵散绝: "guǎng líng sǎn jué",
+ 冠山戴粒: "guàn shān dài lì",
+ 冠屦倒施: "guàn jù dǎo shī",
+ 挂席为门: "guà xí wéi mén",
+ 寡见鲜闻: "guǎ jiàn xiǎn wén",
+ 瓜葛相连: "guā gé xiāng lián",
+ 鼓吻奋爪: "gǔ wěn fèn zhǎo",
+ 古调单弹: "gǔ diào dān tán",
+ 古调不弹: "gǔ diào bù tán",
+ 姑射神人: "gū yè shén rén",
+ 苟合取容: "gǒu hé qǔ róng",
+ 狗续侯冠: "gǒu xù hòu guàn",
+ 钩爪锯牙: "gōu zhǎo jù yá",
+ 共枝别干: "gòng zhī bié gàn",
+ 共为唇齿: "gòng wéi chún chǐ",
+ 拱手而降: "gǒng shǒu ér xiáng",
+ 拱肩缩背: "gǒng jiān suō bèi",
+ 功薄蝉翼: "gōng bó chán yì",
+ 弓调马服: "gōng diào mǎ fú",
+ 更姓改物: "gēng xìng gǎi wù",
+ 更仆难数: "gēng pú nán shǔ",
+ 更令明号: "gēng lìng míng hào",
+ 更待干罢: "gèng dài gàn bà",
+ 更唱迭和: "gēng chàng dié hé",
+ 更长梦短: "gēng cháng mèng duǎn",
+ 各色名样: "gè sè míng yàng",
+ 格格不纳: "gé gé bú nà",
+ 格格不吐: "gé gé bù tǔ",
+ 告朔饩羊: "gù shuò xì yáng",
+ 膏车秣马: "gào chē mò mǎ",
+ 高义薄云: "gāo yì bó yún",
+ 岗头泽底: "gāng tóu zé dǐ",
+ 敢为敢做: "gǎn wéi gǎn zuò",
+ 甘分随时: "gān fèn suí shí",
+ 甘处下流: "gān chǔ xià liú",
+ 干啼湿哭: "gàn tí shī kū",
+ 干名犯义: "gàn míng fàn yì",
+ 干将莫邪: "gān jiāng mò yé",
+ 干城之将: "gān chéng zhī jiàng",
+ 腹载五车: "fù zài wǔ chē",
+ 父债子还: "fù zhài zǐ huán",
+ 父为子隐: "fù wéi zǐ yǐn",
+ 辅世长民: "fǔ shì zhǎng mín",
+ 福为祸始: "fú wéi huò shǐ",
+ 符号逻辑: "fú hào luó jí",
+ 浮收勒折: "fú shōu lè shé",
+ 肤受之愬: "fū shòu zhī sù",
+ 否终则泰: "pǐ zhōng zé tài",
+ 佛头著粪: "fó tóu zhuó fèn",
+ 奉为楷模: "fèng wéi kǎi mó",
+ 凤靡鸾吪: "fèng mǐ luán é",
+ 封豨修蛇: "fēng xī xiū shé",
+ 风影敷衍: "fēng yǐng fū yǎn",
+ 丰屋蔀家: "fēng wū bù jiā",
+ 粪土不如: "fèn tǔ bù rú",
+ 分风劈流: "fēn fēng pǐ liú",
+ 沸沸汤汤: "fèi fèi shāng shāng",
+ 菲食薄衣: "fěi shí bó yī",
+ 飞将数奇: "fēi jiàng shù qí",
+ 放辟邪侈: "fàng pì xié chǐ",
+ 方领圆冠: "fāng lǐng yuán guàn",
+ 犯而不校: "fàn ér bú jiào",
+ 返本还源: "fǎn běn huán yuán",
+ 反劳为逸: "fǎn láo wéi yì",
+ 法轮常转: "fǎ lún cháng zhuàn",
+ 罚不当罪: "fá bù dāng zuì",
+ 发引千钧: "fà yǐn qiān jūn",
+ 发奸擿伏: "fā jiān tī fú",
+ 发短心长: "fà duǎn xīn cháng",
+ 二竖为虐: "èr shù wéi nüè",
+ 儿女心肠: "ér nǚ xīn cháng",
+ 儿女亲家: "ér nǚ qìng jiā",
+ 遏恶扬善: "è wù yáng shàn",
+ 饿殍枕藉: "è piǎo zhěn jí",
+ 饿殍载道: "è piǎo zài dào",
+ 恶醉强酒: "wù zuì qiǎng jiǔ",
+ 恶意中伤: "è yì zhòng shāng",
+ 恶湿居下: "wù shī jū xià",
+ 恶居下流: "wù jū xià liú",
+ 恶不去善: "wù bú qù shàn",
+ 扼吭夺食: "è háng duó shí",
+ 扼襟控咽: "è jīn kòng yān",
+ 峨峨汤汤: "é é shāng shāng",
+ 屙金溺银: "ē jīn niào yín",
+ 朵颐大嚼: "duǒ yí dà jiáo",
+ 夺人所好: "duó rén suǒ hào",
+ 多言数穷: "duō yán shuò qióng",
+ 多文为富: "duō wén wéi fù",
+ 多端寡要: "duō duān guǎ yào",
+ 多财善贾: "duō cái shàn gǔ",
+ 遁世无闷: "dùn shì wú mèn",
+ 遁迹黄冠: "dùn jì huáng guàn",
+ 堆案盈几: "duī àn yíng jī",
+ 断还归宗: "duàn huán guī zōng",
+ 短见薄识: "duǎn jiàn bó shí",
+ 蠹居棊处: "dù jū qí chǔ",
+ 度己以绳: "duó jǐ yǐ shéng",
+ 杜默为诗: "dù mò wéi shī",
+ 杜鹃啼血: "dù juān tí xuè",
+ 笃近举远: "dǔ jìn jǔ yuǎn",
+ 独有千秋: "dú yǒu qiān qiū",
+ 读书得间: "dú shū dé jiàn",
+ 斗转参横: "dǒu zhuǎn shēn héng",
+ 兜肚连肠: "dōu dǔ lián cháng",
+ 洞见症结: "dòng jiàn zhèng jié",
+ 恫疑虚喝: "dòng yí xū hè",
+ 动中窾要: "dòng zhōng kuǎn yào",
+ 东鸣西应: "dōng míng xī yīng",
+ 东鳞西爪: "dōng lín xī zhǎo",
+ 东量西折: "dōng liàng xī shé",
+ 东家西舍: "dōng jiā xī shè",
+ 东扯西拽: "dōng chě xī zhuāi",
+ 鼎铛有耳: "dǐng chēng yǒu ěr",
+ 鼎铛玉石: "dǐng chēng yù shí",
+ 钉头磷磷: "dīng tóu lín lín",
+ 跌宕不羁: "diē dàng bù jī",
+ 跌弹斑鸠: "diē dàn bān jiū",
+ 雕心雁爪: "diāo xīn yàn zhǎo",
+ 颠倒衣裳: "diān dǎo yī cháng",
+ 德薄能鲜: "dé bó néng xiǎn",
+ 得马折足: "dé mǎ shé zú",
+ 蹈其覆辙: "dǎo qí fù zhé",
+ 捣虚撇抗: "dǎo xū piē kàng",
+ 倒载干戈: "dào zài gān gē",
+ 倒裳索领: "dào cháng suǒ lǐng",
+ 倒果为因: "dào guǒ wéi yīn",
+ 叨在知己: "tāo zài zhī jǐ",
+ 叨陪末座: "tāo péi mò zuò",
+ 党豺为虐: "dǎng chái wéi nüè",
+ 当轴处中: "dāng zhóu chǔ zhōng",
+ 当着不着: "dāng zhuó bù zhuó",
+ 当务始终: "dāng wù shǐ zhōng",
+ 淡汝浓抹: "dàn rǔ nóng mǒ",
+ 弹丸脱手: "tán wán tuō shǒu",
+ 弹铗无鱼: "dàn jiá wú yú",
+ 箪食瓢饮: "dān sì piáo yǐn",
+ 大璞不完: "dà pú bù wán",
+ 大明法度: "dà míng fǎ dù",
+ 大车以载: "dà chē yǐ zài",
+ 打闷葫芦: "dǎ mèn hú lu",
+ 沓来踵至: "tà lái zhǒng zhì",
+ 厝火燎原: "cuò huǒ liǎo yuán",
+ 撮科打哄: "cuō kē dǎ hòng",
+ 寸积铢累: "cùn jī zhū lěi",
+ 啛啛喳喳: "cuì cuì chā chā",
+ 摧折豪强: "cuī zhé háo qiáng",
+ 摧刚为柔: "cuī gāng wéi róu",
+ 从俗就简: "cóng sú jiù jiǎn",
+ 此发彼应: "cǐ fā bǐ yīng",
+ 此唱彼和: "cǐ chàng bǐ hè",
+ 慈悲为本: "cí bēi wéi běn",
+ 纯属骗局: "chún shǔ piàn jú",
+ 春笋怒发: "chūn sǔn nù fā",
+ 垂头搨翼: "chuí tóu tà yì",
+ 传为笑谈: "chuán wéi xiào tán",
+ 传风扇火: "chuán fēng shān huǒ",
+ 穿红着绿: "chuān hóng zhuó lǜ",
+ 触处机来: "chù chǔ jī lái",
+ 处尊居显: "chǔ zūn jū xiǎn",
+ 处堂燕雀: "chǔ táng yàn què",
+ 处实效功: "chǔ shí xiào gōng",
+ 处高临深: "chǔ gāo lín shēn",
+ 出入无间: "chū rù wú jiān",
+ 出门应辙: "chū mén yīng zhé",
+ 出处语默: "chū chǔ yǔ mò",
+ 出处殊途: "chū chǔ shū tú",
+ 出处进退: "chū chǔ jìn tuì",
+ 愁山闷海: "chóu shān mèn hǎi",
+ 冲冠眦裂: "chōng guàn zì liè",
+ 齿牙为祸: "chǐ yá wéi huò",
+ 尺二冤家: "chǐ èr yuān jia",
+ 尺短寸长: "chǐ duǎn cùn cháng",
+ 尺寸之功: "chǐ cùn zhī gōng",
+ 城北徐公: "chéng běi xú gōng",
+ 成败兴废: "chéng bài xīng fèi",
+ 趁水和泥: "chèn shuǐ huò ní",
+ 称雨道晴: "chēng yǔ dào qíng",
+ 称体载衣: "chēng tǐ zài yī",
+ 称体裁衣: "chèn tǐ cái yī",
+ 称家有无: "chèn jiā yǒu wú",
+ 称德度功: "chēng dé duó gōng",
+ 沉吟章句: "chén yín zhāng jù",
+ 沉吟不决: "chén yín bù jué",
+ 沉疴宿疾: "chén kē sù jí",
+ 扯纤拉烟: "chě qiàn lā yān",
+ 扯顺风旗: "chě shùn fēng qí",
+ 车载船装: "chē zǎi chuán zhuāng",
+ 朝升暮合: "zhāo shēng mù gě",
+ 朝攀暮折: "zhāo pān mù shé",
+ 超今冠古: "chāo jīn guàn gǔ",
+ 倡而不和: "chàng ér bú hè",
+ 畅所欲为: "chàng suǒ yù wéi",
+ 苌弘碧血: "cháng hóng bì xiě",
+ 长幼尊卑: "zhǎng yòu zūn bēi",
+ 长绳系日: "cháng shéng jì rì",
+ 长年三老: "zhǎng nián sān lǎo",
+ 长春不老: "cháng chūn bù lǎo",
+ 长傲饰非: "zhǎng ào shì fēi",
+ 昌亭旅食: "chāng tíng lǚ shí",
+ 禅絮沾泥: "chán xù zhān ní",
+ 差三错四: "chā sān cuò sì",
+ 层台累榭: "céng tái lěi xiè",
+ 层见迭出: "céng xiàn dié chū",
+ 藏踪蹑迹: "cáng zōng niè jì",
+ 苍蝇见血: "cāng yíng jiàn xiě",
+ 餐松啖柏: "cān sōng dàn bó",
+ 骖风驷霞: "cān fēng sì xiá",
+ 参伍错综: "cēn wǔ cuò zōng",
+ 参辰卯酉: "shēn chén mǎo yǒu",
+ 材优干济: "cái yōu gān jǐ",
+ 材薄质衰: "cái bó zhì shuāi",
+ 才大难用: "cái dà nán yòng",
+ 才薄智浅: "cái bó zhì qiǎn",
+ 不足为意: "bù zú wéi yì",
+ 不足为据: "bù zú wéi jù",
+ 不足为法: "bù zú wéi fǎ",
+ 不足齿数: "bù zú chǐ shǔ",
+ 不着疼热: "bù zhuó téng rè",
+ 不知薡蕫: "bù zhī dǐng dǒng",
+ 不越雷池: "bú yuè léi chí",
+ 不相为谋: "bù xiāng wéi móu",
+ 不贪为宝: "bù tān wéi bǎo",
+ 不了而了: "bù liǎo ér liǎo",
+ 不可揆度: "bù kě kuí duó",
+ 不遑启处: "bù huáng qǐ chǔ",
+ 不当不正: "bù dāng bú zhèng",
+ 不差什么: "bú chà shén me",
+ 不差累黍: "bù chā lěi shǔ",
+ 擘两分星: "bò liǎng fēn xīng",
+ 簸土扬沙: "bǒ tǔ yáng shā",
+ 薄物细故: "bó wù xì gù",
+ 薄寒中人: "bó hán zhòng rén",
+ 博文约礼: "bó wén yuē lǐ",
+ 播糠眯目: "bō kāng mí mù",
+ 剥皮抽筋: "bō pí chōu jīn",
+ 剥肤椎髓: "bō fū chuí suǐ",
+ 波属云委: "bō zhǔ yún wěi",
+ 波骇云属: "bō hài yún zhǔ",
+ 兵微将寡: "bīng wēi jiàng guǎ",
+ 兵强将勇: "bīng qiáng jiàng yǒng",
+ 兵多将广: "bīng duō jiàng guǎng",
+ 兵不由将: "bīng bù yóu jiàng",
+ 冰解的破: "bīng jiě dì pò",
+ 彬彬济济: "bīn bīn jǐ jǐ",
+ 摽梅之年: "biào méi zhī nián",
+ 表里为奸: "biǎo lǐ wéi jiān",
+ 飙发电举: "biāo fā diàn jǔ",
+ 变贪厉薄: "biàn tān lì bó",
+ 敝盖不弃: "bì gài bú qì",
+ 秕言谬说: "bǐ yán miù shuō",
+ 比物属事: "bǐ wù zhǔ shì",
+ 被山带河: "pī shān dài hé",
+ 被甲枕戈: "pī jiǎ zhěn gē",
+ 被甲据鞍: "pī jiǎ jù ān",
+ 被褐怀玉: "pī hè huái yù",
+ 被发缨冠: "pī fà yīng guàn",
+ 背曲腰躬: "bèi qǔ yāo gōng",
+ 北窗高卧: "běi chuāng gāo wò",
+ 北辰星拱: "běi chén xīng gǒng",
+ 北鄙之音: "běi bǐ zhī yīn",
+ 卑宫菲食: "bēi gōng fěi shí",
+ 暴衣露冠: "pù yī lù guàn",
+ 暴腮龙门: "pù sāi lóng mén",
+ 暴露文学: "bào lù wén xué",
+ 暴虎冯河: "bào hǔ píng hé",
+ 抱蔓摘瓜: "bào wàn zhāi guā",
+ 抱法处势: "bào fǎ chǔ shì",
+ 褒贬与夺: "bāo biǎn yǔ duó",
+ 帮闲钻懒: "bāng xián zuān lǎn",
+ 拜将封侯: "bài jiàng fēng hóu",
+ 百兽率舞: "bǎi shòu shuài wǔ",
+ 百孔千创: "bǎi kǒng qiān chuāng",
+ 白衣卿相: "bái yī qīng xiàng",
+ 白首为郎: "bái shǒu wéi láng",
+ 白首相知: "bái shǒu xiāng zhī",
+ 把玩无厌: "bǎ wán wú yàn",
+ 拔锅卷席: "bá guō juǎn xí",
+ 拔本塞源: "bá běn sè yuán",
+ 傲不可长: "ào bù kě zhǎng",
+ 熬更守夜: "áo gēng shǒu yè",
+ 安时处顺: "ān shí chǔ shùn",
+ 安身为乐: "ān shēn wéi lè",
+ 安老怀少: "ān lǎo huái shào",
+ 安步当车: "ān bù dàng chē",
+ 爱人好士: "ài rén hào shì",
+ 矮人观场: "ǎi rén guān chǎng",
+ 捱风缉缝: "ái fēng jī fèng",
+ 挨山塞海: "āi shān sè hǎi",
+ 阿家阿翁: "ā jiā ā wēng",
+ 阿党相为: "ē dǎng xiāng wéi",
+ 追亡逐北: "zhuī wáng zhú běi",
+ 竹篮打水: "zhú lán dá shuǐ",
+ 知疼着热: "zhī téng zháo rè",
+ 语不惊人: "yǔ bù jīng rén",
+ 于今为烈: "yú jīn wéi liè",
+ 一日三省: "yí rì sān xǐng",
+ 穴居野处: "xué jū yě chǔ",
+ 五脊六兽: "wǔ jǐ liù shòu",
+ 无声无臭: "wú shēng wú xiù",
+ 谓予不信: "wèi yú bú xìn",
+ 舍身为国: "shě shēn wéi guó",
+ 杀妻求将: "shā qī qiú jiàng",
+ 强作解人: "qiǎng zuò jiě rén",
+ 气冲斗牛: "qì chōng dǒu niú",
+ 临深履薄: "lín shēn lǚ bó",
+ 钧天广乐: "jūn tiān guǎng yuè",
+ 艰难竭蹶: "jiān nán jié jué",
+ 夹七夹八: "jiā qī jiā bā",
+ 混混噩噩: "hún hún è è",
+ 厚古薄今: "hòu gǔ bó jīn",
+ 鬼怕恶人: "guǐ pà è rén",
+ 伽马射线: "gā mǎ shè xiàn",
+ 佛头着粪: "fó tóu zhuó fèn",
+ 奉为至宝: "fèng wéi zhì bǎo",
+ 登坛拜将: "dēng tán bài jiàng",
+ 晨昏定省: "chén hūn dìng xǐng",
+ 察察为明: "chá chá wéi míng",
+ 博闻强识: "bó wén qiáng zhì",
+ 避难就易: "bì nán jiù yì",
+ 了无生机: 'liǎo wú shēng jī',
+ // 一字不变调的词语,如果词语仅有单个一且一字在结尾的无需添加(需要增补更多)
+ 有一说一: 'yǒu yī shuō yī',
+ 独一无二: 'dú yī wú èr',
+ 说一不二: 'shuō yī bù èr',
+ 举一反三: 'jǔ yī fǎn sān',
+ 数一数二: 'shǔ yī shǔ èr',
+ 杀一儆百: 'shā yī jǐng bǎi',
+ 丁一卯二: 'dīng yī mǎo èr',
+ 丁一确二: 'dīng yī què èr',
+ 不一而止: 'bù yī ér zhǐ',
+ 无一幸免: 'wú yī xìng miǎn',
+ // 来源:https://m.gushici.com/cyxy_4e00_4
+ 表里不一: 'biǎo lǐ bù yī',
+ 良莠不一: 'liáng yǒu bù yī',
+ 心口不一: 'xīn kǒu bù yī',
+ 言行不一: 'yán xíng bù yī',
+ 政令不一: 'zhèng lìng bù yī',
+ 参差不一: 'cēn cī bù yī',
+ 纷纷不一: 'fēn fēn bù yī',
+ 毁誉不一: 'huǐ yù bù yī',
+ 不一而三: 'bù yī ér sān',
+ 百不一遇: 'bǎi bù yī yù',
+ 言行抱一: 'yán xíng bào yī',
+ 瑜百瑕一: 'yú bǎi xiá yī',
+ 背城借一: 'bèi chéng jiè yī',
+ 凭城借一: 'píng chéng jiè yī',
+ 劝百讽一: 'quàn bǎi fěng yī',
+ 群居和一: 'qún jū hé yī',
+ 百不获一: 'bǎi bù huò yī',
+ 百不失一: 'bǎi bù shī yī',
+ 百无失一: 'bǎi wú shī yī',
+ 万不失一: 'wàn bù shī yī',
+ 万无失一: 'wàn wú shī yī',
+ 合而为一: 'hé ér wéi yī',
+ 合两为一: 'hé liǎng wéi yī',
+ 合二为一: 'hé èr wéi yī',
+ 天下为一: 'tiān xià wéi yī',
+ 相与为一: 'xiāng yǔ wéi yī',
+ 较若画一: 'jiào ruò huà yī',
+ 较如画一: 'jiào rú huà yī',
+ 斠若画一: 'jiào ruò huà yī',
+ 言行若一: 'yán xíng ruò yī',
+ 始终若一: 'shǐ zhōng ruò yī',
+ 终始若一: 'zhōng shǐ ruò yī',
+ 惟精惟一: 'wéi jīng wéi yī',
+ 众多非一: 'zhòng duō fēi yī',
+ 不能赞一: 'bù néng zàn yī',
+ 问一答十: 'wèn yī dá shí',
+ 一不扭众: 'yī bù niǔ zhòng',
+ 一以贯之: 'yī yǐ guàn zhī',
+ 一以当百: 'yī yǐ dāng bǎi',
+ 百不当一: 'bǎi bù dāng yī',
+ 十不当一: 'shí bù dāng yī',
+ 以一警百: 'yǐ yī jǐng bǎi',
+ 以一奉百: 'yǐ yī fèng bǎi',
+ 以一持万: 'yǐ yī chí wàn',
+ 以一知万: 'yǐ yī zhī wàn',
+ 百里挑一: 'bǎi lǐ tiāo yī',
+ 整齐划一: 'zhěng qí huà yī',
+ 一来二去: 'yī lái èr qù',
+ 一路公交: 'yī lù gōng jiāo',
+ 一路汽车: 'yī lù qì chē',
+ 一路巴士: 'yī lù bā shì',
+ 朝朝朝落: 'zhāo cháo zhāo luò',
+ 曲意逢迎: 'qū yì féng yíng',
+ 一行不行: 'yì háng bù xíng',
+ 行行不行: 'háng háng bù xíng'
+};
+const Pattern4 = Object.keys(DICT4).map((key) => ({
+ zh: key,
+ pinyin: DICT4[key],
+ probability: 2e-8 /* Probability.DICT */,
+ length: 4,
+ priority: Priority.Normal,
+ dict: Symbol('dict4'),
+}));
+
+const DICT5 = {
+ 巴尔干半岛: 'bā ěr gàn bàn dǎo',
+ 巴尔喀什湖: 'bā ěr kā shí hú',
+ 不幸而言中: 'bú xìng ér yán zhòng',
+ 布尔什维克: 'bù ěr shí wéi kè',
+ 何乐而不为: 'hé lè ér bù wéi',
+ 苛政猛于虎: 'kē zhèng měng yú hǔ',
+ 蒙得维的亚: 'méng dé wéi dì yà',
+ 民以食为天: 'mín yǐ shí wéi tiān',
+ 事后诸葛亮: 'shì hòu zhū gě liàng',
+ 物以稀为贵: 'wù yǐ xī wéi guì',
+ 先下手为强: 'xiān xià shǒu wéi qiáng',
+ 行行出状元: 'háng háng chū zhuàng yuan',
+ 亚得里亚海: 'yà dé lǐ yà hǎi',
+ 眼不见为净: 'yǎn bú jiàn wéi jìng',
+ 竹筒倒豆子: 'zhú tǒng dào dòu zi',
+};
+const Pattern5 = Object.keys(DICT5).map((key) => ({
+ zh: key,
+ pinyin: DICT5[key],
+ probability: 2e-8 /* Probability.DICT */,
+ length: 5,
+ priority: Priority.Normal,
+ dict: Symbol('dict5'),
+}));
+
+// 根据 probability 和 decimal 获取两个概率中最大的
+function getMaxProbability(a, b) {
+ if (!a) {
+ return b;
+ }
+ if (a.decimal < b.decimal) {
+ return a;
+ }
+ else if (a.decimal === b.decimal) {
+ return a.probability > b.probability ? a : b;
+ }
+ else {
+ return b;
+ }
+}
+// probability 小于 1e-300 时,为防止小数溢出需要进位
+function checkDecimal(prob) {
+ if (prob.probability < 1e-300) {
+ prob.probability *= 1e300;
+ prob.decimal += 1;
+ }
+}
+function getPatternDecimal(pattern) {
+ if (pattern.priority === Priority.Custom) {
+ return -(pattern.length * pattern.length * 100);
+ }
+ if (pattern.priority === Priority.Surname) {
+ return -(pattern.length * pattern.length * 10);
+ }
+ return 0;
+}
+// 最大概率算法
+function maxProbability(patterns, length) {
+ const dp = [];
+ let patternIndex = patterns.length - 1;
+ let pattern = patterns[patternIndex];
+ // 按照长度去除重叠词
+ for (let i = length - 1; i >= 0; i--) {
+ // suffix
+ const suffixDP = i + 1 >= length
+ ? { probability: 1, decimal: 0, patterns: [] }
+ : dp[i + 1];
+ while (pattern && pattern.index + pattern.length - 1 === i) {
+ const startIndex = pattern.index;
+ const curDP = {
+ probability: pattern.probability * suffixDP.probability,
+ decimal: suffixDP.decimal + getPatternDecimal(pattern),
+ patterns: suffixDP.patterns,
+ concatPattern: pattern,
+ };
+ checkDecimal(curDP);
+ dp[startIndex] = getMaxProbability(dp[startIndex], curDP);
+ pattern = patterns[--patternIndex];
+ }
+ // dp[i]
+ const iDP = {
+ probability: 1e-13 /* Probability.Unknown */ * suffixDP.probability,
+ decimal: 0,
+ patterns: suffixDP.patterns,
+ };
+ checkDecimal(iDP);
+ dp[i] = getMaxProbability(dp[i], iDP);
+ if (dp[i].concatPattern) {
+ dp[i].patterns = dp[i].patterns.concat(dp[i].concatPattern);
+ dp[i].concatPattern = undefined;
+ delete dp[i + 1];
+ }
+ }
+ return dp[0].patterns.reverse();
+}
+
+// 取最少分词数
+function getMinCount(a, b) {
+ if (!a) {
+ return b;
+ }
+ return a.count <= b.count ? a : b;
+}
+function getPatternCount(pattern) {
+ if (pattern.priority === Priority.Custom) {
+ return -(pattern.length * pattern.length * 100000);
+ }
+ if (pattern.priority === Priority.Surname) {
+ return -(pattern.length * pattern.length * 100);
+ }
+ return 1;
+}
+// 最少分词算法
+function minTokenization(patterns, length) {
+ const dp = [];
+ let patternIndex = patterns.length - 1;
+ let pattern = patterns[patternIndex];
+ // 按照长度去除重叠词
+ for (let i = length - 1; i >= 0; i--) {
+ // suffix
+ const suffixDP = i + 1 >= length
+ ? { count: 0, patterns: [] }
+ : dp[i + 1];
+ while (pattern && pattern.index + pattern.length - 1 === i) {
+ const startIndex = pattern.index;
+ const curDP = {
+ count: getPatternCount(pattern) + suffixDP.count,
+ patterns: suffixDP.patterns,
+ concatPattern: pattern
+ };
+ dp[startIndex] = getMinCount(dp[startIndex], curDP);
+ pattern = patterns[--patternIndex];
+ }
+ // dp[i]
+ const iDP = {
+ count: 1 + suffixDP.count,
+ patterns: suffixDP.patterns,
+ };
+ dp[i] = getMinCount(dp[i], iDP);
+ if (dp[i].concatPattern) {
+ dp[i].patterns = dp[i].patterns.concat(dp[i].concatPattern);
+ dp[i].concatPattern = undefined;
+ delete dp[i + 1];
+ }
+ }
+ return dp[0].patterns.reverse();
+}
+
+// 判断 pre 是否可以被忽略的重叠词
+function isIgnorablePattern(cur, pre) {
+ // 未重叠
+ if (pre.index + pre.length <= cur.index) {
+ return false;
+ }
+ if (pre.priority > cur.priority) {
+ return false;
+ }
+ if (pre.priority === cur.priority && pre.length > cur.length) {
+ return false;
+ }
+ return true;
+}
+// 逆向最大匹配算法
+function reverseMaxMatch(patterns) {
+ const filteredArr = [];
+ // 按照长度去除重叠词
+ for (let i = patterns.length - 1; i >= 0;) {
+ const { index } = patterns[i];
+ let j = i - 1;
+ while (j >= 0 && isIgnorablePattern(patterns[i], patterns[j])) {
+ j--;
+ }
+ if (j < 0 || patterns[j].index + patterns[j].length <= index) {
+ filteredArr.push(patterns[i]);
+ }
+ i = j;
+ }
+ return filteredArr.reverse();
+}
+
+var TokenizationAlgorithm;
+(function (TokenizationAlgorithm) {
+ TokenizationAlgorithm[TokenizationAlgorithm["ReverseMaxMatch"] = 1] = "ReverseMaxMatch";
+ TokenizationAlgorithm[TokenizationAlgorithm["MaxProbability"] = 2] = "MaxProbability";
+ TokenizationAlgorithm[TokenizationAlgorithm["MinTokenization"] = 3] = "MinTokenization";
+})(TokenizationAlgorithm || (TokenizationAlgorithm = {}));
+class TrieNode {
+ constructor(parent, prefix = "", key = "") {
+ this.children = new Map();
+ this.fail = null;
+ this.patterns = [];
+ this.parent = parent;
+ this.prefix = prefix;
+ this.key = key;
+ }
+}
+class AC {
+ constructor() {
+ this.dictMap = new Map();
+ this.queues = [];
+ this.root = new TrieNode(null);
+ }
+ build(patternList) {
+ this.buildTrie(patternList);
+ this.buildFailPointer();
+ }
+ // 构建 trie 树
+ buildTrie(patternList) {
+ for (let pattern of patternList) {
+ const zhChars = splitString(pattern.zh);
+ let cur = this.root;
+ for (let i = 0; i < zhChars.length; i++) {
+ let c = zhChars[i];
+ if (!cur.children.has(c)) {
+ const trieNode = new TrieNode(cur, zhChars.slice(0, i).join(''), c);
+ cur.children.set(c, trieNode);
+ this.addNodeToQueues(trieNode);
+ }
+ cur = cur.children.get(c);
+ }
+ this.insertPattern(cur.patterns, pattern);
+ pattern.node = cur;
+ this.addPatternToDictMap(pattern);
+ }
+ }
+ // 构建失败指针
+ buildFailPointer() {
+ let queue = [];
+ let queueIndex = 0;
+ this.queues.forEach((_queue) => {
+ queue = queue.concat(_queue);
+ });
+ this.queues = [];
+ while (queue.length > queueIndex) {
+ let node = queue[queueIndex++];
+ let failNode = node.parent && node.parent.fail;
+ let key = node.key;
+ while (failNode && !failNode.children.has(key)) {
+ failNode = failNode.fail;
+ }
+ if (!failNode) {
+ node.fail = this.root;
+ }
+ else {
+ node.fail = failNode.children.get(key);
+ }
+ }
+ }
+ // 将 pattern 添加到 dictMap 中
+ addPatternToDictMap(pattern) {
+ if (!this.dictMap.has(pattern.dict)) {
+ this.dictMap.set(pattern.dict, new Set());
+ }
+ this.dictMap.get(pattern.dict).add(pattern);
+ }
+ addNodeToQueues(trieNode) {
+ if (!this.queues[stringLength(trieNode.prefix)]) {
+ this.queues[stringLength(trieNode.prefix)] = [];
+ }
+ this.queues[stringLength(trieNode.prefix)].push(trieNode);
+ }
+ // 按照优先级插入 pattern
+ insertPattern(patterns, pattern) {
+ for (let i = patterns.length - 1; i >= 0; i--) {
+ const _pattern = patterns[i];
+ if (pattern.priority === _pattern.priority &&
+ pattern.probability >= _pattern.probability) {
+ patterns[i + 1] = _pattern;
+ }
+ else if (pattern.priority > _pattern.priority) {
+ patterns[i + 1] = _pattern;
+ }
+ else {
+ patterns[i + 1] = pattern;
+ return;
+ }
+ }
+ patterns[0] = pattern;
+ }
+ removeDict(dictName) {
+ if (this.dictMap.has(dictName)) {
+ const set = this.dictMap.get(dictName);
+ set.forEach((pattern) => {
+ pattern.node.patterns = pattern.node.patterns.filter((_pattern) => _pattern !== pattern);
+ });
+ this.dictMap.delete(dictName);
+ }
+ }
+ // 搜索字符串返回匹配的模式串
+ match(text, surname) {
+ let cur = this.root;
+ let result = [];
+ const zhChars = splitString(text);
+ for (let i = 0; i < zhChars.length; i++) {
+ let c = zhChars[i];
+ while (cur !== null && !cur.children.has(c)) {
+ cur = cur.fail;
+ }
+ if (cur === null) {
+ cur = this.root;
+ }
+ else {
+ cur = cur.children.get(c);
+ const pattern = cur.patterns.find((item) => {
+ if (surname === "off") {
+ return item.priority !== Priority.Surname;
+ }
+ else if (surname === "head") {
+ return item.length - 1 - i === 0;
+ }
+ else {
+ return true;
+ }
+ });
+ if (pattern) {
+ result.push(Object.assign(Object.assign({}, pattern), { index: i - pattern.length + 1 }));
+ }
+ let failNode = cur.fail;
+ while (failNode !== null) {
+ const pattern = failNode.patterns.find((item) => {
+ if (surname === "off") {
+ return item.priority !== Priority.Surname;
+ }
+ else if (surname === "head") {
+ return item.length - 1 - i === 0;
+ }
+ else {
+ return true;
+ }
+ });
+ if (pattern) {
+ result.push(Object.assign(Object.assign({}, pattern), { index: i - pattern.length + 1 }));
+ }
+ failNode = failNode.fail;
+ }
+ }
+ }
+ return result;
+ }
+ search(text, surname, algorithm = 2 /* TokenizationAlgorithm.MaxProbability */) {
+ const patterns = this.match(text, surname);
+ if (algorithm === 1 /* TokenizationAlgorithm.ReverseMaxMatch */) {
+ return reverseMaxMatch(patterns);
+ }
+ else if (algorithm === 3 /* TokenizationAlgorithm.MinTokenization */) {
+ return minTokenization(patterns, stringLength(text));
+ }
+ return maxProbability(patterns, stringLength(text));
+ }
+}
+const acTree = new AC();
+// 常规匹配
+class PatternsNormalBuilder {
+ constructor() {
+ this.buildArg = {
+ value: 500,
+ mode: "size", /* "size" | "group" */
+ };
+ this.finishedCallback = () => { };
+ this.builder = null;
+ this.builder = (function* (ctx) {
+ const patterns = Pattern5.concat(Pattern4, Pattern3, Pattern2, PatternNumberDict, PatternSurname);
+ let chunkSize = ctx.buildArg.value;
+ if (ctx.buildArg.mode === "group") {
+ chunkSize = Math.ceil(patterns.length / ctx.buildArg.value);
+ }
+ for (let i = 0, len = patterns.length; i < len; i += chunkSize) {
+ acTree.build(patterns.slice(i, i + chunkSize));
+ yield;
+ }
+ ctx.finishedCallback();
+ })(this);
+ }
+ getBuilder(value, mode, finishedCallback) {
+ this.buildArg.value = value;
+ this.buildArg.mode = mode;
+ this.finishedCallback = finishedCallback;
+ return this.builder;
+ }
+}
+let patternsNormalBuilder = new PatternsNormalBuilder();
+export function getPatternsNormalBuilder(value, mode) {
+ return patternsNormalBuilder ? patternsNormalBuilder.getBuilder(value, mode, () => patternsNormalBuilder = null) : null;
+}
+
+let customDict = {};
+const customMultipleDict = new FastDictFactory();
+const customPolyphonicDict = new FastDictFactory();
+const CustomDictName = Symbol('custom');
+/**
+ * @description: 用户自定义拼音
+ * @param {{ [key: string]: string }} config 用户自定义的拼音映射(支持汉字、词语、句子的映射),若匹配到该映射,优先将汉字转换为该映射
+ * @param {CustomPinyinOptions} options multiple/polyphonic 对于 customPinyin 补充词汇的处理
+ */
+function customPinyin(config = {}, options) {
+ const words = Object.keys(config).sort((word1, word2) => stringLength(word2) - stringLength(word1));
+ words.forEach((word) => {
+ customDict[word] = config[word];
+ });
+ const customPatterns = Object.keys(customDict).map((word) => ({
+ zh: word,
+ pinyin: customDict[word],
+ probability: 1 /* Probability.Custom */ + stringLength(word),
+ length: stringLength(word),
+ priority: Priority.Custom,
+ dict: CustomDictName,
+ }));
+ acTree.build(customPatterns);
+ // add words for multiple and polyphonic
+ if (options === null || options === void 0 ? void 0 : options.multiple) {
+ addCustomConfigToDict(config, customMultipleDict, options.multiple);
+ }
+ if (options === null || options === void 0 ? void 0 : options.polyphonic) {
+ addCustomConfigToDict(config, customPolyphonicDict, options.polyphonic);
+ }
+}
+function addCustomConfigToDict(config, dict, handleType) {
+ for (let word in config) {
+ const pinyins = config[word];
+ splitString(word).forEach((char, index) => {
+ const pinyin = pinyins.split(' ')[index] || '';
+ if (handleType === 'replace' || (handleType === 'add' && !dict.get(char) && !DICT1.get(char))) {
+ // 直接覆盖原词典
+ dict.set(char, pinyin);
+ }
+ else {
+ // 补充至原词典
+ dict.set(char, dict.get(char) || DICT1.get(char));
+ if (!dict.get(char).split(' ').includes(pinyin)) {
+ dict.set(char, `${dict.get(char)} ${pinyin}`.trim());
+ }
+ }
+ });
+ }
+}
+const getCustomMultpileDict = () => {
+ return customMultipleDict;
+};
+const getCustomPolyphonicDict = () => {
+ return customPolyphonicDict;
+};
+function clearCustomDict(dict) {
+ if (dict === 'pinyin' || dict.indexOf('pinyin') !== -1) {
+ Object.keys(customDict).forEach(function (word) {
+ delete customDict[word];
+ });
+ acTree.removeDict(CustomDictName);
+ }
+ if (dict === 'multiple' || dict.indexOf('multiple') !== -1) {
+ customMultipleDict.clear();
+ }
+ if (dict === 'polyphonic' || dict.indexOf('polyphonic') !== -1) {
+ customPolyphonicDict.clear();
+ }
+}
+
+const getSingleWordPinyin = (char) => {
+ const pinyin = DICT1.get(char);
+ // 若查到, 则返回第一个拼音; 若未查到, 返回原字符
+ return pinyin ? pinyin.split(" ")[0] : char;
+};
+const getPinyin = (word, list, surname, segmentit) => {
+ const matches = acTree.search(word, surname, segmentit);
+ let matchIndex = 0;
+ const zhChars = splitString(word);
+ for (let i = 0; i < zhChars.length;) {
+ const match = matches[matchIndex];
+ if (match && i === match.index) {
+ if (match.length === 1 && match.priority <= Priority.Normal) {
+ const char = zhChars[i];
+ let pinyin = "";
+ pinyin = processSepecialPinyin(char, zhChars[i - 1], zhChars[i + 1]);
+ list[i] = {
+ origin: char,
+ result: pinyin,
+ isZh: pinyin !== char,
+ originPinyin: pinyin,
+ };
+ i++;
+ matchIndex++;
+ continue;
+ }
+ const pinyins = match.pinyin.split(" ");
+ let pinyinIndex = 0;
+ for (let j = 0; j < match.length; j++) {
+ const zhChars = splitString(match.zh);
+ list[i + j] = {
+ origin: zhChars[j],
+ result: pinyins[pinyinIndex] || "",
+ isZh: true,
+ originPinyin: pinyins[pinyinIndex] || "",
+ };
+ pinyinIndex++;
+ }
+ i += match.length;
+ matchIndex++;
+ }
+ else {
+ const char = zhChars[i];
+ let pinyin = "";
+ pinyin = processSepecialPinyin(char, zhChars[i - 1], zhChars[i + 1]);
+ list[i] = {
+ origin: char,
+ result: pinyin,
+ isZh: pinyin !== char,
+ originPinyin: pinyin,
+ };
+ i++;
+ }
+ }
+ return { list, matches };
+};
+const getPinyinWithoutTone = (pinyin) => {
+ return pinyin
+ .replace(/(ā|á|ǎ|à)/g, "a")
+ .replace(/(ō|ó|ǒ|ò)/g, "o")
+ .replace(/(ē|é|ě|è)/g, "e")
+ .replace(/(ī|í|ǐ|ì)/g, "i")
+ .replace(/(ū|ú|ǔ|ù)/g, "u")
+ .replace(/(ǖ|ǘ|ǚ|ǜ)/g, "ü")
+ .replace(/(n̄|ń|ň|ǹ)/g, "n")
+ .replace(/(m̄|ḿ|m̌|m̀)/g, "m")
+ .replace(/(ê̄|ế|ê̌|ề)/g, "ê");
+};
+const getAllPinyin = (char, surname = "off") => {
+ const customMultpileDict = getCustomMultpileDict();
+ let pinyin = DICT1.get(char) ? DICT1.get(char).split(" ") : [];
+ if (customMultpileDict.get(char)) {
+ pinyin = customMultpileDict.get(char).split(" ");
+ }
+ else if (surname !== "off") {
+ const surnamePinyin = Surnames[char];
+ if (surnamePinyin) {
+ pinyin = [surnamePinyin].concat(pinyin.filter((py) => py !== surnamePinyin));
+ }
+ }
+ return pinyin;
+};
+const getMultiplePinyin = (word, surname = "off") => {
+ let pinyin = getAllPinyin(word, surname);
+ if (pinyin.length > 0) {
+ return pinyin.map((value) => ({
+ origin: word,
+ result: value,
+ isZh: true,
+ originPinyin: value,
+ }));
+ }
+ else {
+ return [
+ {
+ origin: word,
+ result: word,
+ isZh: false,
+ originPinyin: word,
+ },
+ ];
+ }
+};
+const getInitialAndFinal = (pinyin, initialPattern) => {
+ const pinyin_arr = pinyin.split(" ");
+ const initial_arr = [];
+ const final_arr = [];
+ for (let _pinyin of pinyin_arr) {
+ for (let _initial of InitialList) {
+ if (_pinyin.startsWith(_initial)) {
+ let _final = _pinyin.slice(_initial.length);
+ if (SpecialInitialList.indexOf(_initial) !== -1 &&
+ SpecialFinalList.indexOf(_final) !== -1) {
+ // 针对 jqx 的 u 特殊处理
+ _final = SpecialFinalMap[_final];
+ }
+ initial_arr.push(_initial);
+ final_arr.push(_final);
+ break;
+ }
+ }
+ }
+ if (initialPattern === "standard") {
+ initial_arr.forEach((initial, index) => {
+ if (initial === "y" || initial === "w") {
+ initial_arr[index] = "";
+ }
+ });
+ }
+ return {
+ final: final_arr.join(" "),
+ initial: initial_arr.join(" "), // 声母
+ };
+};
+const getFinalParts = (pinyin) => {
+ const { final } = getInitialAndFinal(pinyin);
+ let head = "", body = "", tail = "";
+ if (doubleFinalList.indexOf(getPinyinWithoutTone(final)) !== -1) {
+ head = final[0];
+ body = final[1];
+ tail = final.slice(2);
+ }
+ else {
+ body = final[0] || "";
+ tail = final.slice(1) || "";
+ }
+ return { head, body, tail };
+};
+const getNumOfTone = (pinyin) => {
+ const reg_tone1 = /(ā|ō|ē|ī|ū|ǖ|n̄|m̄|ê̄)/;
+ const reg_tone2 = /(á|ó|é|í|ú|ǘ|ń|ḿ|ế)/;
+ const reg_tone3 = /(ǎ|ǒ|ě|ǐ|ǔ|ǚ|ň|m̌|ê̌)/;
+ const reg_tone4 = /(à|ò|è|ì|ù|ǜ|ǹ|m̀|ề)/;
+ const reg_tone0 = /(a|o|e|i|u|ü|ê)/;
+ const special_tone = /(n|m)$/;
+ const tone_num_arr = [];
+ const pinyin_arr = pinyin.split(" ");
+ pinyin_arr.forEach((_pinyin) => {
+ if (reg_tone1.test(_pinyin)) {
+ tone_num_arr.push("1");
+ }
+ else if (reg_tone2.test(_pinyin)) {
+ tone_num_arr.push("2");
+ }
+ else if (reg_tone3.test(_pinyin)) {
+ tone_num_arr.push("3");
+ }
+ else if (reg_tone4.test(_pinyin)) {
+ tone_num_arr.push("4");
+ }
+ else if (reg_tone0.test(_pinyin)) {
+ tone_num_arr.push("0");
+ }
+ else if (special_tone.test(_pinyin)) {
+ tone_num_arr.push("0");
+ }
+ else {
+ tone_num_arr.push("");
+ }
+ });
+ return tone_num_arr.join(" ");
+};
+const getPinyinWithNum = (pinyin, originPinyin) => {
+ const pinyin_arr = getPinyinWithoutTone(pinyin).split(" ");
+ const tone_num_arr = getNumOfTone(originPinyin).split(" ");
+ const res_arr = [];
+ pinyin_arr.forEach((item, index) => {
+ res_arr.push(`${item}${tone_num_arr[index]}`);
+ });
+ return res_arr.join(" ");
+};
+const getFirstLetter = (pinyin, isZh) => {
+ const first_letter_arr = [];
+ const pinyin_arr = pinyin.split(" ");
+ pinyin_arr.forEach((pinyin) => {
+ first_letter_arr.push(isZh ? pinyin[0] : pinyin);
+ });
+ return first_letter_arr.join(" ");
+};
+
+// 验证输入是否为字符串
+const validateType = (word) => {
+ if (typeof word !== "string") {
+ console.error("The first param of pinyin is error: " +
+ word +
+ ' is not assignable to type "string".');
+ return false;
+ }
+ else {
+ return true;
+ }
+};
+function isNonZhScope(char, scope) {
+ if (scope instanceof RegExp) {
+ return scope.test(char);
+ }
+ return true;
+}
+// nonZh 属性处理
+const middleWareNonZh = (list, options) => {
+ let nonZh = options.nonZh;
+ if (nonZh === "removed") {
+ return list.filter((item) => item.isZh || !isNonZhScope(item.origin, options.nonZhScope));
+ }
+ else if (nonZh === "consecutive") {
+ for (let i = list.length - 2; i >= 0; i--) {
+ const cur = list[i];
+ const pre = list[i + 1];
+ if (!cur.isZh &&
+ !pre.isZh &&
+ isNonZhScope(cur.origin, options.nonZhScope) &&
+ isNonZhScope(pre.origin, options.nonZhScope)) {
+ cur.origin += pre.origin;
+ cur.result += pre.result;
+ pre.delete = true;
+ }
+ }
+ return list.filter((item) => !item.delete);
+ }
+ else {
+ return list;
+ }
+};
+// multiple 属性处理
+const middlewareMultiple = (word, options) => {
+ if (stringLength(word) === 1 && options.multiple) {
+ return getMultiplePinyin(word, options.surname);
+ }
+ else {
+ return false;
+ }
+};
+// pattern 属性处理
+const middlewarePattern = (list, options) => {
+ switch (options.pattern) {
+ case "pinyin":
+ break;
+ case "num":
+ list.forEach((item) => {
+ item.result = item.isZh ? getNumOfTone(item.result) : "";
+ });
+ break;
+ case "initial":
+ list.forEach((item) => {
+ item.result = item.isZh
+ ? getInitialAndFinal(item.result, options.initialPattern).initial
+ : "";
+ });
+ break;
+ case "final":
+ list.forEach((item) => {
+ item.result = item.isZh
+ ? getInitialAndFinal(item.result, options.initialPattern).final
+ : "";
+ });
+ break;
+ case "first":
+ list.forEach((item) => {
+ item.result = getFirstLetter(item.result, item.isZh);
+ });
+ break;
+ case "finalHead":
+ list.forEach((item) => {
+ item.result = item.isZh ? getFinalParts(item.result).head : "";
+ });
+ break;
+ case "finalBody":
+ list.forEach((item) => {
+ item.result = item.isZh ? getFinalParts(item.result).body : "";
+ });
+ break;
+ case "finalTail":
+ list.forEach((item) => {
+ item.result = item.isZh ? getFinalParts(item.result).tail : "";
+ });
+ break;
+ }
+};
+// toneType 属性处理
+const middlewareToneType = (list, options) => {
+ switch (options.toneType) {
+ case "symbol":
+ break;
+ case "none":
+ list.forEach((item) => {
+ if (item.isZh) {
+ item.result = getPinyinWithoutTone(item.result);
+ }
+ });
+ break;
+ case "num": {
+ list.forEach((item) => {
+ if (item.isZh) {
+ item.result = getPinyinWithNum(item.result, item.originPinyin);
+ }
+ });
+ break;
+ }
+ }
+};
+// v 属性处理
+const middlewareV = (list, options) => {
+ if (options.v) {
+ list.forEach((item) => {
+ if (item.isZh) {
+ item.result = item.result.replace(/ü/g, typeof options.v === "string" ? options.v : "v");
+ }
+ });
+ }
+};
+// type 属性处理
+const middlewareType = (list, options, word) => {
+ if (options.multiple && stringLength(word) === 1) {
+ let last = "";
+ list = list.filter((item) => {
+ const res = item.result !== last;
+ last = item.result;
+ return res;
+ });
+ }
+ if (options.type === "array") {
+ return list.map((item) => item.result);
+ }
+ if (options.type === "all") {
+ return list.map((item) => {
+ const pinyin = item.isZh ? item.result : "";
+ const { initial, final } = getInitialAndFinal(pinyin, options.initialPattern);
+ const { head, body, tail } = getFinalParts(pinyin);
+ let polyphonic = [];
+ if (pinyin !== "") {
+ polyphonic = [pinyin].concat(getAllPinyin(item.origin, options.surname).filter((item) => item !== pinyin));
+ }
+ return {
+ origin: item.origin,
+ pinyin,
+ initial,
+ final,
+ first: getFirstLetter(item.result, item.isZh),
+ finalHead: head,
+ finalBody: body,
+ finalTail: tail,
+ num: Number(getNumOfTone(item.originPinyin)),
+ isZh: item.isZh,
+ polyphonic,
+ inZhRange: !!DICT1.get(item.origin),
+ result: item.result,
+ };
+ });
+ }
+ return list.map((item) => item.result).join(options.separator);
+};
+// 是否开启变调
+const middlewareToneSandhi = (list, toneSandhi) => {
+ if (toneSandhi === false) {
+ list.forEach((item) => {
+ if (item.origin === "一") {
+ item.result = item.originPinyin = "yī";
+ }
+ else if (item.origin === "不") {
+ item.result = item.originPinyin = "bù";
+ }
+ });
+ }
+ return list;
+};
+
+const DEFAULT_OPTIONS$2 = {
+ pattern: "pinyin",
+ toneType: "symbol",
+ type: "string",
+ multiple: false,
+ mode: "normal",
+ removeNonZh: false,
+ nonZh: "spaced",
+ v: false,
+ separator: " ",
+ toneSandhi: true,
+ segmentit: 2 /* TokenizationAlgorithm.MaxProbability */,
+};
+/**
+ * @description: 获取汉语字符串的拼音
+ * @param {string} word 要转换的汉语字符串
+ * @param {CompleteOptions=} options 配置项
+ * @return {string | string[] | AllData[]} options.type 为 string 时,返回字符串,中间用空格隔开;为 array 时,返回拼音字符串数组;为 all 时返回全部信息的数组
+ */
+function pinyin(word, options) {
+ options = Object.assign(Object.assign({}, DEFAULT_OPTIONS$2), (options || {}));
+ // 校验 word 类型是否正确
+ const legal = validateType(word);
+ if (!legal) {
+ return word;
+ }
+ // 传入空字符串
+ if (word === "") {
+ return options.type === "array" || options.type === "all" ? [] : "";
+ }
+ if (options.surname === undefined) {
+ if (options.mode === "surname") {
+ options.surname = "all";
+ }
+ else {
+ options.surname = "off";
+ }
+ }
+ if (options.type === "all") {
+ options.pattern = "pinyin";
+ }
+ if (options.pattern === "num") {
+ options.toneType = "none";
+ }
+ if (options.removeNonZh) {
+ options.nonZh = "removed";
+ }
+ let _list = Array(stringLength(word));
+ let { list } = getPinyin(word, _list, options.surname, options.segmentit);
+ // 一和不变调处理
+ list = middlewareToneSandhi(list, options.toneSandhi);
+ // nonZh 参数及 removeNonZh 参数
+ list = middleWareNonZh(list, options);
+ // multiple 参数
+ if (middlewareMultiple(word, options)) {
+ list = middlewareMultiple(word, options);
+ }
+ // pattern 参数
+ middlewarePattern(list, options);
+ // toneType参数处理
+ middlewareToneType(list, options);
+ // v参数处理
+ middlewareV(list, options);
+ // type 参数处理
+ return middlewareType(list, options, word);
+}
+
+const DefaultName = Symbol("default");
+const originDictMap = new Map();
+function addDict(dict, options) {
+ const patterns = [];
+ // string 类型时:options 为 name()
+ const name = typeof options === "object" ? options.name : options;
+ const dictName = name || DefaultName;
+ const dict1Handle = (options === null || options === void 0 ? void 0 : options.dict1) || "add";
+ for (let word in dict) {
+ const value = dict[word];
+ const pinyin = Array.isArray(value) ? value[0] : value;
+ const wordLength = stringLength(word);
+ if (wordLength === 1) {
+ addToOriginDict(dictName, word, pinyin, dict1Handle);
+ }
+ if (Array.isArray(value)) {
+ patterns.push({
+ zh: word,
+ pinyin,
+ probability: typeof value[1] === "number"
+ ? value[1]
+ : 2e-8 /* Probability.DICT */ * wordLength * wordLength,
+ length: wordLength,
+ priority: Priority.Normal,
+ dict: dictName,
+ pos: typeof value[2] === "string" ? value[2] : "",
+ });
+ }
+ else {
+ patterns.push({
+ zh: word,
+ pinyin,
+ probability: 2e-8 /* Probability.DICT */ * wordLength * wordLength,
+ length: wordLength,
+ priority: Priority.Normal,
+ dict: dictName,
+ });
+ }
+ }
+ acTree.build(patterns);
+}
+function removeDict(dictName) {
+ acTree.removeDict(dictName || DefaultName);
+ removeOriginDict(dictName || DefaultName);
+}
+function addToOriginDict(dict, char, pinyin, handle = "add") {
+ if (!originDictMap.get(dict)) {
+ originDictMap.set(dict, {});
+ }
+ const originDict = originDictMap.get(dict);
+ if (!originDict[char]) {
+ originDict[char] = DICT1.get(char);
+ }
+ if (handle === "add") {
+ const existedPinyin = DICT1.get(char);
+ if (existedPinyin && !existedPinyin.split(' ').includes(pinyin)) {
+ DICT1.set(char, `${existedPinyin} ${pinyin}`);
+ }
+ else if (!DICT1.get(char)) {
+ DICT1.set(char, pinyin);
+ }
+ }
+ else if (handle === "replace") {
+ DICT1.set(char, pinyin);
+ }
+}
+function removeOriginDict(dict) {
+ const originDict = originDictMap.get(dict) || {};
+ for (let char in originDict) {
+ DICT1.set(char, originDict[char]);
+ delete originDict[char];
+ }
+}
+
+const DefaultMatchOptions = {
+ precision: "first",
+ continuous: false,
+ space: "ignore",
+ lastPrecision: "start",
+ insensitive: true,
+ v: false,
+};
+const MAX_PINYIN_LENGTH = 6;
+/**
+ * @description: 检测汉语字符串和拼音是否匹配
+ * @param {string} text 汉语字符串
+ * @param {string} pinyin 拼音,支持各种缩写形式
+ * @param {MatchOptions=} options 配置项
+ * @return {Array | null} 若匹配成功,返回 text 中匹配成功的下标数组;若匹配失败,返回 null
+ */
+const match = (text, pinyin, options) => {
+ if ((options === null || options === void 0 ? void 0 : options.precision) === "any") {
+ options.lastPrecision = "any";
+ }
+ if (options === null || options === void 0 ? void 0 : options.v) {
+ pinyin = pinyin.replace(/ü/g, "v");
+ }
+ const completeOptions = Object.assign(Object.assign({}, DefaultMatchOptions), (options || {}));
+ // 是否大小写不敏感
+ if (completeOptions.insensitive !== false) {
+ text = text.toLowerCase();
+ pinyin = pinyin.toLowerCase();
+ }
+ // 移除空格
+ if (completeOptions.space === "ignore") {
+ pinyin = pinyin.replace(/\s/g, "");
+ }
+ const result = (options === null || options === void 0 ? void 0 : options.precision) === "any"
+ ? matchAny(text, pinyin, completeOptions)
+ : matchAboveStart(text, pinyin, completeOptions);
+ return processDoubleUnicodeIndex(text, result);
+};
+// 检测两个拼音最大的匹配长度
+const getMatchLength = (pinyin1, pinyin2) => {
+ let length = 0;
+ for (let i = 0; i < pinyin1.length; i++) {
+ if (pinyin1[i] === pinyin2[length]) {
+ length++;
+ }
+ }
+ return length;
+};
+const matchAny = (text, pinyin$1, options) => {
+ let result = [];
+ const words = splitString(text);
+ const ignoreSpace = options.space === "ignore";
+ for (let i = 0; i < words.length; i++) {
+ // 空格字符
+ if (ignoreSpace && words[i] === " ") {
+ result.push(i);
+ continue;
+ }
+ // 是否为中文匹配
+ if (words[i] === pinyin$1[0]) {
+ pinyin$1 = pinyin$1.slice(1);
+ result.push(i);
+ continue;
+ }
+ // 当前字的多音字拼音
+ const ps = pinyin(words[i], {
+ toneType: "none",
+ multiple: true,
+ type: "array",
+ v: options.v,
+ });
+ let currentLength = 0;
+ ps.forEach((p) => {
+ const length = getMatchLength(p, pinyin$1);
+ if (length > currentLength) {
+ currentLength = length;
+ }
+ });
+ if (currentLength) {
+ pinyin$1 = pinyin$1.slice(currentLength);
+ result.push(i);
+ }
+ if (!pinyin$1) {
+ break;
+ }
+ }
+ // 未匹配完
+ if (pinyin$1) {
+ return null;
+ }
+ // 是否连续
+ if (options.continuous) {
+ const _result = result;
+ const isNotContinuous = result.some((val, index) => index > 0 && val !== _result[index - 1] + 1);
+ if (isNotContinuous) {
+ return null;
+ }
+ }
+ if (options.space === "ignore") {
+ result = result.filter((i) => words[i] !== " ");
+ }
+ return result.length ? result : null;
+};
+const matchAboveStart = (text, pinyin$1, options) => {
+ const words = splitString(text);
+ // 二维数组 dp[i][j],i 表示遍历到的 text 索引+1, j 表示遍历到的 pinyin 的索引+1
+ const dp = Array(words.length + 1);
+ // 使用哨兵初始化 dp
+ for (let i = 0; i < dp.length; i++) {
+ dp[i] = Array(pinyin$1.length + 1);
+ dp[i][0] = [];
+ }
+ for (let i = 0; i < dp[0].length; i++) {
+ dp[0][i] = [];
+ }
+ // 动态规划匹配
+ for (let i = 1; i < dp.length; i++) {
+ // options.continuous 为 false 或 options.space 为 ignore 且当前为空格时,第 i 个字可以不参与匹配
+ if (!options.continuous ||
+ (options.space == "ignore" && words[i - 1] === " ")) {
+ for (let j = 1; j <= pinyin$1.length; j++) {
+ dp[i][j - 1] = dp[i - 1][j - 1];
+ }
+ }
+ // 第 i 个字参与匹配
+ for (let j = 1; j <= pinyin$1.length; j++) {
+ if (!dp[i - 1][j - 1]) {
+ // 第 i - 1 已经匹配失败,停止向后匹配
+ continue;
+ }
+ else if (j !== 1 && !dp[i - 1][j - 1].length) {
+ // 非开头且前面的字符未匹配完成,停止向后匹配
+ continue;
+ }
+ else {
+ const muls = pinyin(words[i - 1], {
+ type: "array",
+ toneType: "none",
+ multiple: true,
+ v: options.v,
+ });
+ // 非中文匹配
+ if (words[i - 1] === pinyin$1[j - 1]) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ // 记录最长的可匹配下标数组
+ if (!dp[i][j] || matches.length > dp[i][j].length) {
+ dp[i][j] = matches;
+ }
+ // pinyin 参数完全匹配完成,记录结果
+ if (j === pinyin$1.length) {
+ return dp[i][j];
+ }
+ }
+ // 剩余长度小于等于 MAX_PINYIN_LENGTH(6) 时,有可能是最后一个拼音了
+ if (pinyin$1.length - j <= MAX_PINYIN_LENGTH) {
+ // lastPrecision 参数处理
+ const last = muls.some((py) => {
+ if (options.lastPrecision === "any") {
+ return py.includes(pinyin$1.slice(j - 1, pinyin$1.length));
+ }
+ if (options.lastPrecision === "start") {
+ return py.startsWith(pinyin$1.slice(j - 1, pinyin$1.length));
+ }
+ if (options.lastPrecision === "first") {
+ return py[0] === pinyin$1.slice(j - 1, pinyin$1.length);
+ }
+ if (options.lastPrecision === "every") {
+ return py === pinyin$1.slice(j - 1, pinyin$1.length);
+ }
+ return false;
+ });
+ if (last) {
+ return [...dp[i - 1][j - 1], i - 1];
+ }
+ }
+ const precision = options.precision;
+ // precision 为 start 时,匹配开头
+ if (precision === "start") {
+ muls.forEach((py) => {
+ let end = j;
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ while (end <= pinyin$1.length &&
+ py.startsWith(pinyin$1.slice(j - 1, end))) {
+ if (!dp[i][end] || matches.length > dp[i][end].length) {
+ dp[i][end] = matches;
+ }
+ end++;
+ }
+ });
+ }
+ // precision 为 first 时,匹配首字母
+ if (precision === "first") {
+ if (muls.some((py) => py[0] === pinyin$1[j - 1])) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ // 记录最长的可匹配下标数组
+ if (!dp[i][j] || matches.length > dp[i][j].length) {
+ dp[i][j] = matches;
+ }
+ }
+ }
+ // 匹配当前汉字的完整拼音
+ const completeMatch = muls.find((py) => py === pinyin$1.slice(j - 1, j - 1 + py.length));
+ if (completeMatch) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ const endIndex = j - 1 + completeMatch.length;
+ // 记录最长的可匹配下标数组
+ if (!dp[i][endIndex] || matches.length > dp[i][endIndex].length) {
+ dp[i][endIndex] = matches;
+ }
+ }
+ }
+ }
+ }
+ return null;
+};
+// 对于双字节的字符,需要将 index 顺延 +1
+function processDoubleUnicodeIndex(text, indexArray) {
+ if (!indexArray) {
+ return null;
+ }
+ const result = [];
+ let doubleUnicodeCount = 0;
+ const words = splitString(text);
+ let i = 0;
+ for (let j = 0; j < indexArray.length; j++) {
+ const curIndex = indexArray[j];
+ while (i <= curIndex) {
+ if (words[i].length === 2) {
+ doubleUnicodeCount++;
+ }
+ i++;
+ }
+ const realIndex = curIndex + doubleUnicodeCount;
+ if (words[curIndex].length === 2) {
+ result.push(realIndex - 1, realIndex);
+ }
+ else {
+ result.push(realIndex);
+ }
+ }
+ return result;
+}
+
+const DefaultHtmlOptions = {
+ resultClass: "py-result-item",
+ chineseClass: "py-chinese-item",
+ pinyinClass: "py-pinyin-item",
+ nonChineseClass: "py-non-chinese-item",
+ wrapNonChinese: false,
+ toneType: "symbol",
+ customClassMap: {},
+ toneSandhi: true,
+ rp: true,
+ v: false,
+};
+/**
+ * @description: 获取带拼音汉字的 html 字符串
+ * @param {string} text 要转换的字符串
+ * @param {HtmlOptions=} options html 中标签类名相关配置
+ * @return {string} 带汉字的拼音字符串
+ */
+const html = (text, options) => {
+ const completeOptions = Object.assign(Object.assign({}, DefaultHtmlOptions), (options || {}));
+ const pinyinArray = pinyin(text, {
+ type: "all",
+ toneType: completeOptions.toneType,
+ toneSandhi: options === null || options === void 0 ? void 0 : options.toneSandhi,
+ v: completeOptions.v,
+ });
+ const result = pinyinArray.map((item) => {
+ let additionalClass = "";
+ for (const classname in completeOptions.customClassMap) {
+ const dict = completeOptions.customClassMap[classname];
+ if (dict.includes(item.origin)) {
+ additionalClass += ` ${classname}`;
+ }
+ }
+ if (item.isZh) {
+ // 汉字字符处理
+ const resultClass = completeOptions.resultClass || DefaultHtmlOptions.resultClass;
+ const chineseClass = completeOptions.chineseClass || DefaultHtmlOptions.chineseClass;
+ const pinyinClass = completeOptions.pinyinClass || DefaultHtmlOptions.pinyinClass;
+ return `${item.origin}${completeOptions.rp ? "" : ""}${completeOptions.rp ? "" : ""}`;
+ }
+ else {
+ // 非汉字字符处理
+ if (completeOptions.wrapNonChinese) {
+ const nonChineseClass = completeOptions.nonChineseClass || DefaultHtmlOptions.nonChineseClass;
+ return `${item.origin}`;
+ }
+ else {
+ return item.origin;
+ }
+ }
+ });
+ return result.join("");
+};
+
+const DEFAULT_OPTIONS$1 = {
+ pattern: "pinyin",
+ toneType: "symbol",
+ type: "string",
+ v: false,
+ nonZh: "spaced",
+};
+/**
+ * @description: 获取每个汉字的所有读音
+ * @param {string} text 要转换的汉语字符串
+ * @param {CompleteOptions=} options 配置项
+ * @return {string[] | string[][] | AllData[][]} options.type 为 string 时,返回字符串数组,中间用空格隔开;为 array 时,返回二维拼音字符串数组;为 all 时返回二维全部信息的数组
+ */
+function polyphonic(text, options = DEFAULT_OPTIONS$1) {
+ // 校验 text 类型是否正确
+ const legal = validateType(text);
+ if (!legal) {
+ return [];
+ }
+ // 传入空字符串
+ if (text === "") {
+ return [];
+ }
+ if (options.type === "all") {
+ options.pattern = "pinyin";
+ }
+ if (options.pattern === "num") {
+ options.toneType = "none";
+ }
+ if (options.removeNonZh) {
+ options.nonZh = "removed";
+ }
+ let list = getPolyphonicList(text);
+ // nonZh 参数及 removeNonZh 参数
+ list = middleWareNonZh(list, options);
+ let doubleList = getSplittedPolyphonicList(list);
+ // pattern 参数
+ doubleList.forEach((list) => {
+ middlewarePattern(list, options);
+ });
+ // toneType参数处理
+ doubleList.forEach((list) => {
+ middlewareToneType(list, options);
+ });
+ // v参数处理
+ doubleList.forEach((list) => {
+ middlewareV(list, options);
+ });
+ // type 参数处理
+ const result = doubleList.map((list) => handleType(list, options));
+ return result;
+}
+// 获取每个字多音字的数组
+const getPolyphonicList = (text) => {
+ return splitString(text).map((char) => {
+ const customPolyphonicDict = getCustomPolyphonicDict();
+ const pinyin = customPolyphonicDict.get(char) || DICT1.get(char) || char;
+ return {
+ origin: char,
+ result: pinyin,
+ isZh: pinyin !== char,
+ originPinyin: pinyin,
+ };
+ });
+};
+// 将多音字每个读音都单独切为一个数组项
+const getSplittedPolyphonicList = (list) => {
+ return list.map((item) => {
+ return item.isZh
+ ? item.result.split(" ").map((pinyin) => ({
+ origin: item.origin,
+ result: pinyin,
+ isZh: true,
+ originPinyin: pinyin,
+ }))
+ : [item];
+ });
+};
+// type 属性处理
+const handleType = (list, options) => {
+ if (options.type === "array") {
+ return Array.from(new Set(list.map((item) => item.result)));
+ }
+ if (options.type === "all") {
+ return list.map((item) => {
+ const pinyin = item.isZh ? item.result : "";
+ const { initial, final } = getInitialAndFinal(pinyin, options.initialPattern);
+ const { head, body, tail } = getFinalParts(pinyin);
+ return {
+ origin: item.origin,
+ pinyin,
+ initial,
+ final,
+ first: getFirstLetter(item.result, item.isZh),
+ finalHead: head,
+ finalBody: body,
+ finalTail: tail,
+ num: Number(getNumOfTone(item.originPinyin)),
+ isZh: item.isZh,
+ inZhRange: !!DICT1.get(item.origin),
+ };
+ });
+ }
+ return Array.from(new Set(list.map((item) => item.result))).join(" ");
+};
+
+const DefaultConvertOptions = {
+ separator: ' ',
+ format: 'numToSymbol',
+};
+const toneMap = {
+ a: ['a', 'ā', 'á', 'ǎ', 'à'],
+ o: ['o', 'ō', 'ó', 'ǒ', 'ò'],
+ e: ['e', 'ē', 'é', 'ě', 'è'],
+ ü: ['ü', 'ǖ', 'ǘ', 'ǚ', 'ǜ'],
+ v: ['ü', 'ǖ', 'ǘ', 'ǚ', 'ǜ'],
+ ui: ['ui', 'uī', 'uí', 'uǐ', 'uì'],
+ iu: ['iu', 'iū', 'iú', 'iǔ', 'iù'],
+ i: ['i', 'ī', 'í', 'ǐ', 'ì'],
+ u: ['u', 'ū', 'ú', 'ǔ', 'ù'],
+ n: ['n', 'n̄', 'ń', 'ň', 'ǹ'],
+ m: ['m', 'm̄', 'ḿ', 'm̌', 'm̀'],
+ ê: ['ê', 'ê̄', 'ế', 'ê̌', 'ề'],
+};
+/**
+ * @description: 拼音格式转换。pin1 yin1 -> pīn yīn 或 pīn yīn -> pin1 yin1 或 pīn yīn -> pin yin
+ * @param {string | string[]} pinyin 要转换的拼音字符串或者拼音字符串数组
+ * @param {ConvertOptions=} options 配置项
+ * @return {string | string[]} 转换后的拼音字符串或者拼音字符串数组
+ */
+function convert(pinyin, options) {
+ options = Object.assign(Object.assign({}, DefaultConvertOptions), (options || {}));
+ const originType = typeof pinyin;
+ if (typeof pinyin === 'string') {
+ pinyin = pinyin.split(options.separator);
+ }
+ pinyin = pinyin.map((item) => {
+ const format = options.format;
+ if (format === 'numToSymbol') {
+ return formatNumToSymbol(item);
+ }
+ else if (format === 'symbolToNum') {
+ return formatSymbolToNum(item);
+ }
+ else if (format === 'toneNone') {
+ return formatToneNone(item);
+ }
+ return item;
+ });
+ if (originType === 'string') {
+ return pinyin.join(options.separator);
+ }
+ else {
+ return pinyin;
+ }
+}
+function formatNumToSymbol(pinyin) {
+ const lastChar = Number(pinyin[pinyin.length - 1]);
+ if (lastChar >= 0 && lastChar <= 4) {
+ for (let key in toneMap) {
+ if (pinyin.includes(key)) {
+ return pinyin
+ .slice(0, pinyin.length - 1)
+ .replace(key, toneMap[key][lastChar]);
+ }
+ }
+ return pinyin;
+ }
+ else {
+ return pinyin;
+ }
+}
+function formatSymbolToNum(pinyin) {
+ return `${getPinyinWithoutTone(pinyin)}${getNumOfTone(pinyin)}`;
+}
+function formatToneNone(pinyin) {
+ return getPinyinWithoutTone(pinyin);
+}
+
+var OutputFormat;
+(function (OutputFormat) {
+ OutputFormat[OutputFormat["AllSegment"] = 1] = "AllSegment";
+ OutputFormat[OutputFormat["AllArray"] = 2] = "AllArray";
+ OutputFormat[OutputFormat["AllString"] = 3] = "AllString";
+ OutputFormat[OutputFormat["PinyinSegment"] = 4] = "PinyinSegment";
+ OutputFormat[OutputFormat["PinyinArray"] = 5] = "PinyinArray";
+ OutputFormat[OutputFormat["PinyinString"] = 6] = "PinyinString";
+ OutputFormat[OutputFormat["ZhSegment"] = 7] = "ZhSegment";
+ OutputFormat[OutputFormat["ZhArray"] = 8] = "ZhArray";
+ OutputFormat[OutputFormat["ZhString"] = 9] = "ZhString";
+})(OutputFormat || (OutputFormat = {}));
+function middlewareSegment(list, matches) {
+ const segments = [];
+ let i = 0;
+ let j = 0;
+ while (i < list.length && j < matches.length) {
+ const match = matches[j];
+ const item = list[i];
+ if (match.zh.startsWith(item.origin)) {
+ const start = i;
+ const chars = splitString(match.zh);
+ let cur = start + 1;
+ while (cur < list.length && list[cur].origin === chars[cur - start]) {
+ cur++;
+ }
+ const _segment = list.slice(start, cur);
+ segments.push({
+ segment: _segment.map((item) => ({
+ origin: item.origin,
+ result: item.result,
+ })),
+ isZh: true,
+ });
+ i += cur - start;
+ j++;
+ }
+ else {
+ segments.push({
+ segment: [
+ {
+ origin: item.origin,
+ result: item.result,
+ }
+ ],
+ isZh: false,
+ });
+ i++;
+ }
+ }
+ while (i < list.length) {
+ const item = list[i];
+ segments.push({
+ segment: [
+ {
+ origin: item.origin,
+ result: item.result,
+ }
+ ],
+ isZh: false,
+ });
+ i++;
+ }
+ return segments;
+}
+function middlewareOutputFormat(segments, options) {
+ const { format = OutputFormat.AllSegment, separator = ' ' } = options;
+ if (format === OutputFormat.AllSegment) {
+ return segments.map(item => {
+ return {
+ origin: item.segment.map(item => item.origin).join(''),
+ result: item.segment.map(item => item.result).join(''),
+ };
+ });
+ }
+ else if (format === OutputFormat.AllArray) {
+ return segments.map(item => item.segment);
+ }
+ else if (format === OutputFormat.AllString) {
+ const list = segments.map(item => {
+ return {
+ origin: item.segment.map(item => item.origin).join(''),
+ result: item.segment.map(item => item.result).join(''),
+ };
+ });
+ return {
+ origin: list.map(item => item.origin).join(separator),
+ result: list.map(item => item.result).join(separator),
+ };
+ }
+ else if (format === OutputFormat.PinyinSegment) {
+ return segments.map(item => item.segment.map(item => item.result).join(''));
+ }
+ else if (format === OutputFormat.PinyinArray) {
+ return segments.map(item => item.segment.map(item => item.result));
+ }
+ else if (format === OutputFormat.PinyinString) {
+ return segments.map(item => item.segment.map(item => item.result).join('')).join(separator);
+ }
+ else if (format === OutputFormat.ZhSegment) {
+ return segments.map(item => item.segment.map(item => item.origin).join(''));
+ }
+ else if (format === OutputFormat.ZhArray) {
+ return segments.map(item => item.segment.map(item => item.origin));
+ }
+ else if (format === OutputFormat.ZhString) {
+ return segments.map(item => item.segment.map(item => item.origin).join('')).join(separator);
+ }
+}
+
+const DEFAULT_OPTIONS = {
+ toneType: "symbol",
+ mode: "normal",
+ nonZh: "spaced",
+ v: false,
+ separator: " ",
+ toneSandhi: true,
+ segmentit: 2 /* TokenizationAlgorithm.MaxProbability */,
+ format: OutputFormat.AllSegment,
+};
+function segment(word, options) {
+ options = Object.assign(Object.assign({}, DEFAULT_OPTIONS), (options || {}));
+ // 校验 word 类型是否正确
+ const legal = validateType(word);
+ if (!legal) {
+ return word;
+ }
+ if (options.surname === undefined) {
+ if (options.mode === "surname") {
+ options.surname = "all";
+ }
+ else {
+ options.surname = "off";
+ }
+ }
+ let _list = Array(stringLength(word));
+ let { list, matches } = getPinyin(word, _list, options.surname, options.segmentit);
+ // 一和不变调处理
+ list = middlewareToneSandhi(list, options.toneSandhi);
+ // nonZh
+ list = middleWareNonZh(list, options);
+ // toneType参数处理
+ middlewareToneType(list, options);
+ // v参数处理
+ middlewareV(list, options);
+ const segments = middlewareSegment(list, matches);
+ return middlewareOutputFormat(segments, { format: options.format, separator: options.separator });
+}
+
+export { OutputFormat, addDict, clearCustomDict, convert, customPinyin, getFinalParts, getInitialAndFinal, getNumOfTone, html, match, pinyin, polyphonic, removeDict, segment };
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index 60fff63f..ba2cb747 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -2780,7 +2780,7 @@ Module {
}
Property {
name: "layoutMacosButtons"
- type: "FluLoader_QMLTYPE_19"
+ type: "FluLoader_QMLTYPE_13"
isReadonly: true
isPointer: true
}
@@ -3500,15 +3500,15 @@ Module {
defaultProperty: "data"
Property { name: "logo"; type: "QUrl" }
Property { name: "title"; type: "string" }
- Property { name: "items"; type: "FluObject_QMLTYPE_184"; isPointer: true }
- Property { name: "footerItems"; type: "FluObject_QMLTYPE_184"; isPointer: true }
+ Property { name: "items"; type: "FluObject_QMLTYPE_141"; isPointer: true }
+ Property { name: "footerItems"; type: "FluObject_QMLTYPE_141"; isPointer: true }
Property { name: "displayMode"; type: "int" }
Property { name: "autoSuggestBox"; type: "QQmlComponent"; isPointer: true }
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
- Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_49"; isPointer: true }
- Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_49"; isPointer: true }
+ Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_45"; isPointer: true }
+ Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_45"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
@@ -3700,6 +3700,80 @@ Module {
Parameter { name: "text"; type: "string" }
}
}
+ Component {
+ prototype: "QObject"
+ name: "FluentUI/FluPinyin 1.0"
+ exports: ["FluentUI/FluPinyin 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ isCreatable: false
+ isSingleton: true
+ Property { name: "children"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "context"; type: "QVariant"; isReadonly: true }
+ Property { name: "patternValue"; type: "int" }
+ Property { name: "patternBuildMode"; type: "string" }
+ Property { name: "outputFormat"; type: "QVariant"; isReadonly: true }
+ Property { name: "patternBuildInterval"; type: "int" }
+ Property { name: "isPatternBuilt"; type: "bool"; isReadonly: true }
+ Method {
+ name: "buildPattern"
+ type: "QVariant"
+ Parameter { name: "buildAllAtOnce"; type: "QVariant" }
+ }
+ Method {
+ name: "addDict"
+ type: "QVariant"
+ Parameter { name: "dict"; type: "QVariant" }
+ Parameter { name: "options"; type: "QVariant" }
+ }
+ Method {
+ name: "clearCustomDict"
+ type: "QVariant"
+ Parameter { name: "dict"; type: "QVariant" }
+ }
+ Method {
+ name: "convert"
+ type: "QVariant"
+ Parameter { name: "pinyin"; type: "QVariant" }
+ Parameter { name: "options"; type: "QVariant" }
+ }
+ Method {
+ name: "customPinyin"
+ type: "QVariant"
+ Parameter { name: "config"; type: "QVariant" }
+ Parameter { name: "options"; type: "QVariant" }
+ }
+ Method {
+ name: "html"
+ type: "QVariant"
+ Parameter { name: "text"; type: "QVariant" }
+ Parameter { name: "options"; type: "QVariant" }
+ }
+ Method {
+ name: "match"
+ type: "QVariant"
+ Parameter { name: "text"; type: "QVariant" }
+ Parameter { name: "pinyin"; type: "QVariant" }
+ Parameter { name: "options"; type: "QVariant" }
+ }
+ Method {
+ name: "pinyin"
+ type: "QVariant"
+ Parameter { name: "word"; type: "QVariant" }
+ Parameter { name: "options"; type: "QVariant" }
+ }
+ Method {
+ name: "removeDict"
+ type: "QVariant"
+ Parameter { name: "dictName"; type: "QVariant" }
+ }
+ Method {
+ name: "segment"
+ type: "QVariant"
+ Parameter { name: "word"; type: "QVariant" }
+ Parameter { name: "options"; type: "QVariant" }
+ }
+ }
Component {
prototype: "QQuickPage"
name: "FluentUI/FluPivot 1.0"
diff --git a/src/Qt5/imports/FluentUI/qmldir b/src/Qt5/imports/FluentUI/qmldir
index 15101ce9..cf66139c 100644
--- a/src/Qt5/imports/FluentUI/qmldir
+++ b/src/Qt5/imports/FluentUI/qmldir
@@ -99,5 +99,6 @@ FluWindow 1.0 Controls/FluWindow.qml
FluWindowDialog 1.0 Controls/FluWindowDialog.qml
FluWindowResultLauncher 1.0 Controls/FluWindowResultLauncher.qml
FluBubbleBox 1.0 Controls/FluBubbleBox.qml
+FluPinyin 1.0 Controls/FluPinyin.qml
plugin fluentuiplugin
diff --git a/src/Qt5/imports/fluentui.qrc b/src/Qt5/imports/fluentui.qrc
index d70ce195..418454dc 100644
--- a/src/Qt5/imports/fluentui.qrc
+++ b/src/Qt5/imports/fluentui.qrc
@@ -111,5 +111,7 @@
FluentUI/Controls/FluControlBackground.qml
FluentUI/Font/FluentIcons.ttf
FluentUI/Controls/FluBubbleBox.qml
+ FluentUI/JS/PinyinPro.mjs
+ FluentUI/Controls/FluPinyin.qml
diff --git a/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml b/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
new file mode 100644
index 00000000..80634100
--- /dev/null
+++ b/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
@@ -0,0 +1,80 @@
+pragma Singleton
+
+import QtQuick
+import "./../JS/PinyinPro.mjs" as Pinyin
+
+QtObject {
+ property list children
+ readonly property var context: Pinyin
+ property int patternValue: 500 // In "size" mode, number of patterns per build; in "group" mode, number of groups to divide patterns into
+ property string patternBuildMode: "size" // size, group
+ property alias patternBuildInterval: patternTimer.interval
+ readonly property alias isPatternBuilt: d.isPatternBuilt
+ readonly property var outputFormat: Pinyin.OutputFormat
+ function buildPattern(buildAllAtOnce = true) {
+ if (d.isPatternBuilt || patternTimer.running) {
+ return
+ }
+ d.builder = context.getPatternsNormalBuilder(patternValue,
+ patternBuildMode)
+ if (buildAllAtOnce) {
+ while (!d.buildNext()) {
+
+ }
+ d.builder = null
+ d.isPatternBuilt = true
+ } else {
+ patternTimer.start()
+ }
+ }
+ function addDict(dict, options) {
+ context.addDict(dict, options)
+ }
+ function clearCustomDict(dict) {
+ context.clearCustomDict(dict)
+ }
+ function convert(pinyin, options) {
+ return context.convert(pinyin, options)
+ }
+ function customPinyin(config = {}, options) {
+ context.customPinyin(config, options)
+ }
+ function html(text, options) {
+ return context.html(text, options)
+ }
+ function match(text, pinyin, options) {
+ return context.match(text, pinyin, options)
+ }
+ function pinyin(word, options) {
+ return context.pinyin(word, options)
+ }
+ function removeDict(dictName) {
+ context.removeDict(dictName)
+ }
+ function segment(word, options) {
+ return context.segment(word, options)
+ }
+ children: [
+ QtObject {
+ id: d
+ property bool isPatternBuilt: false
+ property var builder: null
+ function buildNext() {
+ return d.builder.next().done
+ }
+ },
+ Timer {
+ id: patternTimer
+ interval: 1500
+ repeat: true
+ triggeredOnStart: true
+ onTriggered: {
+ if (d.buildNext()) {
+ d.builder = null
+ d.isPatternBuilt = true
+ stop()
+ }
+ }
+ }
+ ]
+}
diff --git a/src/Qt6/imports/FluentUI/Controls/qmldir b/src/Qt6/imports/FluentUI/Controls/qmldir
index 24e4704e..7ce8a3c5 100644
--- a/src/Qt6/imports/FluentUI/Controls/qmldir
+++ b/src/Qt6/imports/FluentUI/Controls/qmldir
@@ -1,2 +1,3 @@
singleton FluRouter FluRouter.qml
singleton FluEventBus FluEventBus.qml
+singleton FluPinyin FluPinyin.qml
diff --git a/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs b/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
new file mode 100644
index 00000000..aa5d6d4e
--- /dev/null
+++ b/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
@@ -0,0 +1,25197 @@
+/*
+ * pinyin-pro 3.27.0
+ * https://github.com/zh-lx/pinyin-pro
+ *
+ * Copyright (c) 2022-present zh-lx
+ * Licensed under the MIT License
+ *
+ * Modifications Copyright (c) 2025 Polaris-Night
+ *
+ * Changes:
+ * - Refactored AC-Tree construction pattern by introducing PatternsNormalBuilder
+ * to enable delayed/asynchronous building with improved performance control
+ *
+ * This modified work is also licensed under the MIT License.
+ */
+
+const DoubleUnicodePrefixReg = /^[\uD800-\uDBFF]$/;
+const DoubleUnicodeSuffixReg = /^[\uDC00-\uDFFF]$/;
+const DoubleUnicodeReg = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+var Probability;
+(function (Probability) {
+ Probability[Probability["Unknown"] = 1e-13] = "Unknown";
+ Probability[Probability["Rule"] = 1e-12] = "Rule";
+ Probability[Probability["DICT"] = 2e-8] = "DICT";
+ Probability[Probability["Surname"] = 1] = "Surname";
+ Probability[Probability["Custom"] = 1] = "Custom";
+})(Probability || (Probability = {}));
+const Priority = {
+ Normal: 1,
+ Surname: 10,
+ Custom: 100,
+};
+
+function stringLength(text) {
+ var _a;
+ return text.length - (((_a = text.match(DoubleUnicodeReg)) === null || _a === void 0 ? void 0 : _a.length) || 0);
+}
+// 双音节字符处理
+function splitString(text) {
+ const result = [];
+ let i = 0;
+ while (i < text.length) {
+ const char = text[i];
+ if (DoubleUnicodePrefixReg.test(char) &&
+ DoubleUnicodeSuffixReg.test(text[i + 1])) {
+ result.push(text.substring(i, i + 2));
+ i += 2;
+ }
+ else {
+ result.push(char);
+ i += 1;
+ }
+ }
+ return result;
+}
+class FastDictFactory {
+ constructor() {
+ this.NumberDICT = [];
+ this.StringDICT = new Map();
+ }
+ get(word) {
+ if (word.length > 1) {
+ return this.StringDICT.get(word);
+ }
+ else {
+ const code = word.charCodeAt(0);
+ return this.NumberDICT[code];
+ }
+ }
+ set(word, pinyin) {
+ if (word.length > 1) {
+ this.StringDICT.set(word, pinyin);
+ }
+ else {
+ const code = word.charCodeAt(0);
+ this.NumberDICT[code] = pinyin;
+ }
+ }
+ clear() {
+ this.NumberDICT = [];
+ this.StringDICT.clear();
+ }
+}
+
+const map = {
+ 'bǎng páng pāng': ['膀'],
+ líng: [
+ '〇',
+ '伶',
+ '凌',
+ '刢',
+ '囹',
+ '坽',
+ '夌',
+ '姈',
+ '婈',
+ '孁',
+ '岺',
+ '彾',
+ '掕',
+ '昤',
+ '朎',
+ '柃',
+ '棂',
+ '櫺',
+ '欞',
+ '泠',
+ '淩',
+ '澪',
+ '灵',
+ '燯',
+ '爧',
+ '狑',
+ '玲',
+ '琌',
+ '瓴',
+ '皊',
+ '砱',
+ '祾',
+ '秢',
+ '竛',
+ '笭',
+ '紷',
+ '綾',
+ '绫',
+ '羐',
+ '羚',
+ '翎',
+ '聆',
+ '舲',
+ '苓',
+ '菱',
+ '蓤',
+ '蔆',
+ '蕶',
+ '蛉',
+ '衑',
+ '裬',
+ '詅',
+ '跉',
+ '軨',
+ '輘',
+ '酃',
+ '醽',
+ '鈴',
+ '錂',
+ '铃',
+ '閝',
+ '陵',
+ '零',
+ '霊',
+ '霗',
+ '霛',
+ '霝',
+ '靈',
+ '駖',
+ '魿',
+ '鯪',
+ '鲮',
+ '鴒',
+ '鸰',
+ '鹷',
+ '麢',
+ '齡',
+ '齢',
+ '龄',
+ '龗',
+ '㥄',
+ ],
+ yī: [
+ '一',
+ '乊',
+ '伊',
+ '依',
+ '医',
+ '吚',
+ '咿',
+ '噫',
+ '壱',
+ '壹',
+ '夁',
+ '嫛',
+ '嬄',
+ '弌',
+ '揖',
+ '撎',
+ '檹',
+ '毉',
+ '洢',
+ '渏',
+ '漪',
+ '瑿',
+ '畩',
+ '祎',
+ '禕',
+ '稦',
+ '繄',
+ '蛜',
+ '衤',
+ '譩',
+ '辷',
+ '郼',
+ '醫',
+ '銥',
+ '铱',
+ '鷖',
+ '鹥',
+ '黟',
+ '黳',
+ ],
+ 'dīng zhēng': ['丁'],
+ 'kǎo qiǎo yú': ['丂'],
+ qī: [
+ '七',
+ '倛',
+ '僛',
+ '凄',
+ '嘁',
+ '墄',
+ '娸',
+ '悽',
+ '慼',
+ '慽',
+ '戚',
+ '捿',
+ '柒',
+ '桤',
+ '桼',
+ '棲',
+ '榿',
+ '欺',
+ '沏',
+ '淒',
+ '漆',
+ '紪',
+ '緀',
+ '萋',
+ '褄',
+ '諆',
+ '迉',
+ '郪',
+ '鏚',
+ '霋',
+ '魌',
+ '鶈',
+ ],
+ shàng: ['丄', '尙', '尚', '恦', '緔', '绱'],
+ xià: [
+ '丅',
+ '下',
+ '乤',
+ '圷',
+ '夏',
+ '夓',
+ '懗',
+ '梺',
+ '疜',
+ '睱',
+ '罅',
+ '鎼',
+ '鏬',
+ ],
+ hǎn: ['丆', '喊', '浫', '罕', '豃', '㘎'],
+ 'wàn mò': ['万'],
+ zhàng: [
+ '丈',
+ '仗',
+ '墇',
+ '嶂',
+ '帐',
+ '帳',
+ '幛',
+ '扙',
+ '杖',
+ '涱',
+ '痮',
+ '瘬',
+ '瘴',
+ '瞕',
+ '粀',
+ '胀',
+ '脹',
+ '賬',
+ '账',
+ '障',
+ ],
+ sān: ['三', '厁', '叁', '弎', '毵', '毶', '毿', '犙', '鬖'],
+ 'shàng shǎng shang': ['上'],
+ 'qí jī': ['丌', '其', '奇'],
+ 'bù fǒu': ['不'],
+ 'yǔ yù yú': ['与'],
+ miǎn: [
+ '丏',
+ '偭',
+ '免',
+ '冕',
+ '勉',
+ '勔',
+ '喕',
+ '娩',
+ '愐',
+ '汅',
+ '沔',
+ '湎',
+ '睌',
+ '緬',
+ '缅',
+ '腼',
+ '葂',
+ '靦',
+ '鮸',
+ '𩾃',
+ ],
+ gài: [
+ '丐',
+ '乢',
+ '匃',
+ '匄',
+ '戤',
+ '概',
+ '槩',
+ '槪',
+ '溉',
+ '漑',
+ '瓂',
+ '葢',
+ '鈣',
+ '钙',
+ '𬮿',
+ ],
+ chǒu: ['丑', '丒', '侴', '吜', '杽', '瞅', '矁', '醜', '魗'],
+ zhuān: [
+ '专',
+ '叀',
+ '嫥',
+ '専',
+ '專',
+ '瑼',
+ '甎',
+ '砖',
+ '磗',
+ '磚',
+ '蟤',
+ '諯',
+ '鄟',
+ '顓',
+ '颛',
+ '鱄',
+ '䏝',
+ ],
+ 'qiě jū': ['且'],
+ pī: [
+ '丕',
+ '伓',
+ '伾',
+ '噼',
+ '坯',
+ '岯',
+ '憵',
+ '批',
+ '披',
+ '炋',
+ '狉',
+ '狓',
+ '砒',
+ '磇',
+ '礔',
+ '礕',
+ '秛',
+ '秠',
+ '耚',
+ '豾',
+ '邳',
+ '鈚',
+ '鉟',
+ '銔',
+ '錃',
+ '錍',
+ '霹',
+ '駓',
+ '髬',
+ '魾',
+ '𬳵',
+ ],
+ shì: [
+ '世',
+ '丗',
+ '亊',
+ '事',
+ '仕',
+ '侍',
+ '冟',
+ '势',
+ '勢',
+ '卋',
+ '呩',
+ '嗜',
+ '噬',
+ '士',
+ '奭',
+ '嬕',
+ '室',
+ '市',
+ '式',
+ '弑',
+ '弒',
+ '恀',
+ '恃',
+ '戺',
+ '拭',
+ '揓',
+ '是',
+ '昰',
+ '枾',
+ '柿',
+ '栻',
+ '澨',
+ '烒',
+ '煶',
+ '眂',
+ '眎',
+ '眡',
+ '睗',
+ '示',
+ '礻',
+ '筮',
+ '簭',
+ '舐',
+ '舓',
+ '襫',
+ '視',
+ '视',
+ '觢',
+ '試',
+ '誓',
+ '諡',
+ '謚',
+ '试',
+ '谥',
+ '貰',
+ '贳',
+ '軾',
+ '轼',
+ '逝',
+ '遾',
+ '釈',
+ '释',
+ '釋',
+ '鈰',
+ '鉃',
+ '鉽',
+ '铈',
+ '飾',
+ '餙',
+ '餝',
+ '饰',
+ '鰘',
+ '䏡',
+ '𬤊',
+ ],
+ qiū: [
+ '丘',
+ '丠',
+ '坵',
+ '媝',
+ '恘',
+ '恷',
+ '楸',
+ '秋',
+ '秌',
+ '穐',
+ '篍',
+ '緧',
+ '萩',
+ '蘒',
+ '蚯',
+ '蝵',
+ '蟗',
+ '蠤',
+ '趥',
+ '邱',
+ '鞦',
+ '鞧',
+ '鰌',
+ '鰍',
+ '鳅',
+ '鶖',
+ '鹙',
+ '龝',
+ ],
+ bǐng: [
+ '丙',
+ '屛',
+ '怲',
+ '抦',
+ '昞',
+ '昺',
+ '柄',
+ '棅',
+ '炳',
+ '禀',
+ '秉',
+ '稟',
+ '苪',
+ '蛃',
+ '邴',
+ '鈵',
+ '陃',
+ '鞆',
+ '餅',
+ '餠',
+ '饼',
+ ],
+ yè: [
+ '业',
+ '亱',
+ '僷',
+ '墷',
+ '夜',
+ '嶪',
+ '嶫',
+ '抴',
+ '捙',
+ '擛',
+ '擪',
+ '擫',
+ '晔',
+ '曄',
+ '曅',
+ '曗',
+ '曳',
+ '曵',
+ '枼',
+ '枽',
+ '業',
+ '洂',
+ '液',
+ '澲',
+ '烨',
+ '燁',
+ '爗',
+ '璍',
+ '皣',
+ '瞱',
+ '瞸',
+ '礏',
+ '腋',
+ '葉',
+ '謁',
+ '谒',
+ '邺',
+ '鄴',
+ '鍱',
+ '鐷',
+ '靥',
+ '靨',
+ '頁',
+ '页',
+ '餣',
+ '饁',
+ '馌',
+ '驜',
+ '鵺',
+ '鸈',
+ ],
+ cóng: [
+ '丛',
+ '从',
+ '叢',
+ '婃',
+ '孮',
+ '従',
+ '徔',
+ '徖',
+ '悰',
+ '樷',
+ '欉',
+ '淙',
+ '灇',
+ '爜',
+ '琮',
+ '藂',
+ '誴',
+ '賨',
+ '賩',
+ '錝',
+ ],
+ dōng: [
+ '东',
+ '倲',
+ '冬',
+ '咚',
+ '埬',
+ '岽',
+ '崬',
+ '徚',
+ '昸',
+ '東',
+ '氡',
+ '氭',
+ '涷',
+ '笗',
+ '苳',
+ '菄',
+ '蝀',
+ '鮗',
+ '鯟',
+ '鶇',
+ '鶫',
+ '鸫',
+ '鼕',
+ '𬟽',
+ ],
+ sī: [
+ '丝',
+ '俬',
+ '凘',
+ '厮',
+ '司',
+ '咝',
+ '嘶',
+ '噝',
+ '媤',
+ '廝',
+ '恖',
+ '撕',
+ '斯',
+ '楒',
+ '泀',
+ '澌',
+ '燍',
+ '禗',
+ '禠',
+ '私',
+ '糹',
+ '絲',
+ '緦',
+ '纟',
+ '缌',
+ '罳',
+ '蕬',
+ '虒',
+ '蛳',
+ '蜤',
+ '螄',
+ '蟖',
+ '蟴',
+ '鉰',
+ '銯',
+ '鍶',
+ '鐁',
+ '锶',
+ '颸',
+ '飔',
+ '騦',
+ '鷥',
+ '鸶',
+ '鼶',
+ '㟃',
+ ],
+ chéng: [
+ '丞',
+ '呈',
+ '城',
+ '埕',
+ '堘',
+ '塍',
+ '塖',
+ '宬',
+ '峸',
+ '惩',
+ '懲',
+ '成',
+ '承',
+ '挰',
+ '掁',
+ '揨',
+ '枨',
+ '棖',
+ '橙',
+ '檙',
+ '洆',
+ '溗',
+ '澂',
+ '珵',
+ '珹',
+ '畻',
+ '程',
+ '窚',
+ '筬',
+ '絾',
+ '脭',
+ '荿',
+ '誠',
+ '诚',
+ '郕',
+ '酲',
+ '鋮',
+ '铖',
+ '騬',
+ '鯎',
+ ],
+ diū: ['丟', '丢', '銩', '铥'],
+ liǎng: [
+ '両',
+ '两',
+ '兩',
+ '唡',
+ '啢',
+ '掚',
+ '緉',
+ '脼',
+ '蜽',
+ '裲',
+ '魉',
+ '魎',
+ '𬜯',
+ ],
+ yǒu: [
+ '丣',
+ '卣',
+ '友',
+ '梄',
+ '湵',
+ '牖',
+ '禉',
+ '羑',
+ '聈',
+ '苃',
+ '莠',
+ '蜏',
+ '酉',
+ '銪',
+ '铕',
+ '黝',
+ ],
+ yán: [
+ '严',
+ '厳',
+ '啱',
+ '喦',
+ '嚴',
+ '塩',
+ '壛',
+ '壧',
+ '妍',
+ '姸',
+ '娫',
+ '娮',
+ '岩',
+ '嵒',
+ '嵓',
+ '巌',
+ '巖',
+ '巗',
+ '延',
+ '揅',
+ '昖',
+ '楌',
+ '檐',
+ '櫩',
+ '欕',
+ '沿',
+ '炎',
+ '炏',
+ '狿',
+ '琂',
+ '盐',
+ '碞',
+ '筵',
+ '簷',
+ '莚',
+ '蔅',
+ '虤',
+ '蜒',
+ '言',
+ '訁',
+ '訮',
+ '詽',
+ '讠',
+ '郔',
+ '閆',
+ '閻',
+ '闫',
+ '阎',
+ '顏',
+ '顔',
+ '颜',
+ '鹽',
+ '麣',
+ '𫄧',
+ ],
+ bìng: [
+ '並',
+ '併',
+ '倂',
+ '傡',
+ '垪',
+ '摒',
+ '栤',
+ '病',
+ '窉',
+ '竝',
+ '誁',
+ '靐',
+ '鮩',
+ ],
+ 'sàng sāng': ['丧'],
+ gǔn: [
+ '丨',
+ '惃',
+ '滚',
+ '滾',
+ '磙',
+ '緄',
+ '绲',
+ '蓘',
+ '蔉',
+ '衮',
+ '袞',
+ '輥',
+ '辊',
+ '鮌',
+ '鯀',
+ '鲧',
+ ],
+ jiū: [
+ '丩',
+ '勼',
+ '啾',
+ '揪',
+ '揫',
+ '朻',
+ '究',
+ '糾',
+ '纠',
+ '萛',
+ '赳',
+ '阄',
+ '鬏',
+ '鬮',
+ '鳩',
+ '鸠',
+ ],
+ 'gè gě': ['个', '個', '各'],
+ yā: [
+ '丫',
+ '圧',
+ '孲',
+ '庘',
+ '押',
+ '枒',
+ '桠',
+ '椏',
+ '錏',
+ '鐚',
+ '鴉',
+ '鴨',
+ '鵶',
+ '鸦',
+ '鸭',
+ ],
+ pán: [
+ '丬',
+ '媻',
+ '幋',
+ '槃',
+ '洀',
+ '瀊',
+ '爿',
+ '盘',
+ '盤',
+ '磐',
+ '縏',
+ '蒰',
+ '蟠',
+ '蹒',
+ '蹣',
+ '鎜',
+ '鞶',
+ ],
+ 'zhōng zhòng': ['中'],
+ jǐ: [
+ '丮',
+ '妀',
+ '己',
+ '戟',
+ '挤',
+ '掎',
+ '撠',
+ '擠',
+ '橶',
+ '泲',
+ '犱',
+ '脊',
+ '虮',
+ '蟣',
+ '魢',
+ '鱾',
+ '麂',
+ ],
+ jiè: [
+ '丯',
+ '介',
+ '借',
+ '唶',
+ '堺',
+ '屆',
+ '届',
+ '岕',
+ '庎',
+ '徣',
+ '戒',
+ '楐',
+ '犗',
+ '玠',
+ '琾',
+ '界',
+ '畍',
+ '疥',
+ '砎',
+ '蚧',
+ '蛶',
+ '衸',
+ '褯',
+ '誡',
+ '诫',
+ '鎅',
+ '骱',
+ '魪',
+ ],
+ fēng: [
+ '丰',
+ '仹',
+ '偑',
+ '僼',
+ '凨',
+ '凬',
+ '凮',
+ '妦',
+ '寷',
+ '封',
+ '峯',
+ '峰',
+ '崶',
+ '枫',
+ '楓',
+ '檒',
+ '沣',
+ '沨',
+ '渢',
+ '灃',
+ '烽',
+ '犎',
+ '猦',
+ '琒',
+ '疯',
+ '瘋',
+ '盽',
+ '砜',
+ '碸',
+ '篈',
+ '蘴',
+ '蜂',
+ '蠭',
+ '豐',
+ '鄷',
+ '酆',
+ '鋒',
+ '鎽',
+ '鏠',
+ '锋',
+ '霻',
+ '靊',
+ '飌',
+ '麷',
+ ],
+ 'guàn kuàng': ['丱'],
+ chuàn: ['串', '汌', '玔', '賗', '釧', '钏'],
+ chǎn: [
+ '丳',
+ '产',
+ '冁',
+ '剷',
+ '囅',
+ '嵼',
+ '旵',
+ '浐',
+ '滻',
+ '灛',
+ '產',
+ '産',
+ '簅',
+ '蒇',
+ '蕆',
+ '諂',
+ '譂',
+ '讇',
+ '谄',
+ '鏟',
+ '铲',
+ '閳',
+ '闡',
+ '阐',
+ '骣',
+ '𬊤',
+ ],
+ lín: [
+ '临',
+ '冧',
+ '壣',
+ '崊',
+ '嶙',
+ '斴',
+ '晽',
+ '暽',
+ '林',
+ '潾',
+ '瀶',
+ '燐',
+ '琳',
+ '璘',
+ '瞵',
+ '碄',
+ '磷',
+ '粦',
+ '粼',
+ '繗',
+ '翷',
+ '臨',
+ '轔',
+ '辚',
+ '遴',
+ '邻',
+ '鄰',
+ '鏻',
+ '阾',
+ '隣',
+ '霖',
+ '驎',
+ '鱗',
+ '鳞',
+ '麐',
+ '麟',
+ '𬴊',
+ '𬭸',
+ ],
+ zhuó: [
+ '丵',
+ '劅',
+ '卓',
+ '啄',
+ '圴',
+ '妰',
+ '娺',
+ '撯',
+ '擆',
+ '擢',
+ '斫',
+ '斮',
+ '斱',
+ '斲',
+ '斵',
+ '晫',
+ '椓',
+ '浊',
+ '浞',
+ '濁',
+ '灼',
+ '烵',
+ '琸',
+ '硺',
+ '禚',
+ '窡',
+ '籗',
+ '籱',
+ '罬',
+ '茁',
+ '蠗',
+ '蠿',
+ '諁',
+ '諑',
+ '謶',
+ '诼',
+ '酌',
+ '鐲',
+ '镯',
+ '鵫',
+ '鷟',
+ '䓬',
+ '𬸦',
+ ],
+ zhǔ: [
+ '丶',
+ '主',
+ '劯',
+ '嘱',
+ '囑',
+ '宔',
+ '帾',
+ '拄',
+ '渚',
+ '濐',
+ '煑',
+ '煮',
+ '燝',
+ '瞩',
+ '矚',
+ '罜',
+ '詝',
+ '陼',
+ '鸀',
+ '麈',
+ '𬣞',
+ ],
+ bā: [
+ '丷',
+ '仈',
+ '八',
+ '叭',
+ '哵',
+ '夿',
+ '岜',
+ '巴',
+ '捌',
+ '朳',
+ '玐',
+ '疤',
+ '笆',
+ '粑',
+ '羓',
+ '芭',
+ '蚆',
+ '豝',
+ '釟',
+ ],
+ wán: [
+ '丸',
+ '刓',
+ '完',
+ '岏',
+ '抏',
+ '捖',
+ '汍',
+ '烷',
+ '玩',
+ '琓',
+ '笂',
+ '紈',
+ '纨',
+ '翫',
+ '芄',
+ '貦',
+ '頑',
+ '顽',
+ ],
+ dān: [
+ '丹',
+ '勯',
+ '匰',
+ '単',
+ '妉',
+ '媅',
+ '殚',
+ '殫',
+ '甔',
+ '眈',
+ '砃',
+ '箪',
+ '簞',
+ '耼',
+ '耽',
+ '聃',
+ '聸',
+ '褝',
+ '襌',
+ '躭',
+ '郸',
+ '鄲',
+ '酖',
+ '頕',
+ ],
+ 'wèi wéi': ['为'],
+ 'jǐng dǎn': ['丼'],
+ 'lì lí': ['丽'],
+ jǔ: [
+ '举',
+ '弆',
+ '挙',
+ '擧',
+ '椇',
+ '榉',
+ '榘',
+ '櫸',
+ '欅',
+ '矩',
+ '筥',
+ '聥',
+ '舉',
+ '莒',
+ '蒟',
+ '襷',
+ '踽',
+ '齟',
+ '龃',
+ ],
+ piě: ['丿', '苤', '鐅', '𬭯'],
+ fú: [
+ '乀',
+ '伏',
+ '俘',
+ '凫',
+ '刜',
+ '匐',
+ '咈',
+ '哹',
+ '垘',
+ '孚',
+ '岪',
+ '巿',
+ '帗',
+ '幅',
+ '幞',
+ '弗',
+ '彿',
+ '怫',
+ '扶',
+ '柫',
+ '栿',
+ '桴',
+ '氟',
+ '泭',
+ '浮',
+ '涪',
+ '澓',
+ '炥',
+ '玸',
+ '甶',
+ '畉',
+ '癁',
+ '祓',
+ '福',
+ '稪',
+ '符',
+ '箙',
+ '紱',
+ '紼',
+ '絥',
+ '綍',
+ '绂',
+ '绋',
+ '罘',
+ '罦',
+ '翇',
+ '艀',
+ '芙',
+ '芣',
+ '苻',
+ '茀',
+ '茯',
+ '菔',
+ '葍',
+ '虙',
+ '蚨',
+ '蜉',
+ '蝠',
+ '袚',
+ '袱',
+ '襆',
+ '襥',
+ '諨',
+ '豧',
+ '踾',
+ '輻',
+ '辐',
+ '郛',
+ '鉘',
+ '鉜',
+ '韍',
+ '韨',
+ '颫',
+ '髴',
+ '鮄',
+ '鮲',
+ '鳧',
+ '鳬',
+ '鴔',
+ '鵩',
+ '黻',
+ ],
+ 'yí jí': ['乁'],
+ yì: [
+ '乂',
+ '义',
+ '亄',
+ '亦',
+ '亿',
+ '伇',
+ '伿',
+ '佾',
+ '俋',
+ '億',
+ '兿',
+ '刈',
+ '劓',
+ '劮',
+ '勚',
+ '勩',
+ '匇',
+ '呓',
+ '呭',
+ '呹',
+ '唈',
+ '囈',
+ '圛',
+ '坄',
+ '垼',
+ '埸',
+ '奕',
+ '嫕',
+ '嬑',
+ '寱',
+ '屹',
+ '峄',
+ '嶧',
+ '帟',
+ '帠',
+ '幆',
+ '廙',
+ '异',
+ '弈',
+ '弋',
+ '役',
+ '忆',
+ '怈',
+ '怿',
+ '悒',
+ '意',
+ '憶',
+ '懌',
+ '懿',
+ '抑',
+ '挹',
+ '敡',
+ '易',
+ '晹',
+ '曀',
+ '曎',
+ '杙',
+ '枍',
+ '棭',
+ '榏',
+ '槸',
+ '檍',
+ '歝',
+ '殔',
+ '殪',
+ '殹',
+ '毅',
+ '浂',
+ '浥',
+ '浳',
+ '湙',
+ '溢',
+ '潩',
+ '澺',
+ '瀷',
+ '炈',
+ '焲',
+ '熠',
+ '熤',
+ '熼',
+ '燚',
+ '燡',
+ '燱',
+ '獈',
+ '玴',
+ '異',
+ '疫',
+ '痬',
+ '瘗',
+ '瘞',
+ '瘱',
+ '癔',
+ '益',
+ '瞖',
+ '穓',
+ '竩',
+ '篒',
+ '縊',
+ '繶',
+ '繹',
+ '绎',
+ '缢',
+ '義',
+ '羿',
+ '翊',
+ '翌',
+ '翳',
+ '翼',
+ '耴',
+ '肄',
+ '肊',
+ '膉',
+ '臆',
+ '艗',
+ '艺',
+ '芅',
+ '苅',
+ '萟',
+ '蓺',
+ '薏',
+ '藙',
+ '藝',
+ '蘙',
+ '虉',
+ '蜴',
+ '螠',
+ '衪',
+ '袣',
+ '裔',
+ '裛',
+ '褹',
+ '襼',
+ '訲',
+ '訳',
+ '詍',
+ '詣',
+ '誼',
+ '譯',
+ '議',
+ '讛',
+ '议',
+ '译',
+ '诣',
+ '谊',
+ '豙',
+ '豛',
+ '豷',
+ '貖',
+ '贀',
+ '跇',
+ '轶',
+ '逸',
+ '邑',
+ '鄓',
+ '醷',
+ '釴',
+ '鈠',
+ '鎰',
+ '鐿',
+ '镒',
+ '镱',
+ '阣',
+ '隿',
+ '霬',
+ '饐',
+ '駅',
+ '驛',
+ '驿',
+ '骮',
+ '鮨',
+ '鶂',
+ '鶃',
+ '鶍',
+ '鷁',
+ '鷊',
+ '鷧',
+ '鷾',
+ '鸃',
+ '鹝',
+ '鹢',
+ '黓',
+ '齸',
+ '𬬩',
+ '㑊',
+ '𫄷',
+ '𬟁',
+ ],
+ nǎi: ['乃', '倷', '奶', '嬭', '廼', '氖', '疓', '艿', '迺', '釢'],
+ wǔ: [
+ '乄',
+ '五',
+ '仵',
+ '伍',
+ '侮',
+ '倵',
+ '儛',
+ '午',
+ '啎',
+ '妩',
+ '娬',
+ '嫵',
+ '庑',
+ '廡',
+ '忤',
+ '怃',
+ '憮',
+ '摀',
+ '武',
+ '潕',
+ '熓',
+ '牾',
+ '玝',
+ '珷',
+ '瑦',
+ '甒',
+ '碔',
+ '舞',
+ '躌',
+ '迕',
+ '逜',
+ '陚',
+ '鵡',
+ '鹉',
+ '𣲘',
+ ],
+ jiǔ: [
+ '久',
+ '乆',
+ '九',
+ '乣',
+ '奺',
+ '杦',
+ '汣',
+ '灸',
+ '玖',
+ '紤',
+ '舏',
+ '酒',
+ '镹',
+ '韭',
+ '韮',
+ ],
+ 'tuō zhé': ['乇', '杔', '馲'],
+ 'me mó ma yāo': ['么'],
+ zhī: [
+ '之',
+ '倁',
+ '卮',
+ '巵',
+ '搘',
+ '支',
+ '栀',
+ '梔',
+ '椥',
+ '榰',
+ '汁',
+ '泜',
+ '疷',
+ '祗',
+ '祬',
+ '秓',
+ '稙',
+ '綕',
+ '肢',
+ '胑',
+ '胝',
+ '脂',
+ '芝',
+ '蘵',
+ '蜘',
+ '衼',
+ '隻',
+ '鳷',
+ '鴲',
+ '鼅',
+ '𦭜',
+ ],
+ 'wū wù': ['乌'],
+ zhà: [
+ '乍',
+ '咤',
+ '宱',
+ '搾',
+ '榨',
+ '溠',
+ '痄',
+ '蚱',
+ '詐',
+ '诈',
+ '醡',
+ '霅',
+ '䃎',
+ ],
+ hū: [
+ '乎',
+ '乯',
+ '匢',
+ '匫',
+ '呼',
+ '唿',
+ '嘑',
+ '垀',
+ '寣',
+ '幠',
+ '忽',
+ '惚',
+ '昒',
+ '歑',
+ '泘',
+ '淴',
+ '滹',
+ '烀',
+ '苸',
+ '虍',
+ '虖',
+ '謼',
+ '軤',
+ '轷',
+ '雐',
+ ],
+ fá: [
+ '乏',
+ '伐',
+ '傠',
+ '坺',
+ '垡',
+ '墢',
+ '姂',
+ '栰',
+ '浌',
+ '瞂',
+ '笩',
+ '筏',
+ '罚',
+ '罰',
+ '罸',
+ '藅',
+ '閥',
+ '阀',
+ ],
+ 'lè yuè yào lào': ['乐', '樂'],
+ yín: [
+ '乑',
+ '吟',
+ '噖',
+ '嚚',
+ '圁',
+ '垠',
+ '夤',
+ '婬',
+ '寅',
+ '峾',
+ '崟',
+ '崯',
+ '檭',
+ '殥',
+ '泿',
+ '淫',
+ '滛',
+ '烎',
+ '犾',
+ '狺',
+ '璌',
+ '硍',
+ '碒',
+ '荶',
+ '蔩',
+ '訔',
+ '訚',
+ '訡',
+ '誾',
+ '鄞',
+ '鈝',
+ '銀',
+ '银',
+ '霪',
+ '鷣',
+ '齦',
+ ],
+ pīng: ['乒', '俜', '娉', '涄', '甹', '砯', '聠', '艵', '頩'],
+ pāng: ['乓', '滂', '胮', '膖', '雱', '霶'],
+ qiáo: [
+ '乔',
+ '侨',
+ '僑',
+ '嫶',
+ '憔',
+ '桥',
+ '槗',
+ '樵',
+ '橋',
+ '櫵',
+ '犞',
+ '瞧',
+ '硚',
+ '礄',
+ '荍',
+ '荞',
+ '蕎',
+ '藮',
+ '譙',
+ '趫',
+ '鐈',
+ '鞒',
+ '鞽',
+ '顦',
+ ],
+ hǔ: ['乕', '琥', '萀', '虎', '虝', '錿', '鯱'],
+ guāi: ['乖'],
+ 'chéng shèng': ['乗', '乘', '娍'],
+ yǐ: [
+ '乙',
+ '乛',
+ '以',
+ '倚',
+ '偯',
+ '嬟',
+ '崺',
+ '已',
+ '庡',
+ '扆',
+ '攺',
+ '敼',
+ '旑',
+ '旖',
+ '檥',
+ '矣',
+ '礒',
+ '笖',
+ '舣',
+ '艤',
+ '苡',
+ '苢',
+ '蚁',
+ '螘',
+ '蟻',
+ '裿',
+ '踦',
+ '輢',
+ '轙',
+ '逘',
+ '酏',
+ '釔',
+ '鈘',
+ '鉯',
+ '钇',
+ '顗',
+ '鳦',
+ '齮',
+ '𫖮',
+ '𬺈',
+ ],
+ 'háo yǐ': ['乚'],
+ 'niè miē': ['乜'],
+ qǐ: [
+ '乞',
+ '企',
+ '启',
+ '唘',
+ '啓',
+ '啔',
+ '啟',
+ '婍',
+ '屺',
+ '杞',
+ '棨',
+ '玘',
+ '盀',
+ '綺',
+ '绮',
+ '芑',
+ '諬',
+ '起',
+ '邔',
+ '闙',
+ ],
+ yě: ['也', '冶', '嘢', '埜', '壄', '漜', '野'],
+ xí: [
+ '习',
+ '喺',
+ '媳',
+ '嶍',
+ '席',
+ '椺',
+ '檄',
+ '漝',
+ '習',
+ '蓆',
+ '袭',
+ '襲',
+ '覡',
+ '觋',
+ '謵',
+ '趘',
+ '郋',
+ '鎴',
+ '隰',
+ '霫',
+ '飁',
+ '騱',
+ '騽',
+ '驨',
+ '鰼',
+ '鳛',
+ '𠅤',
+ '𫘬',
+ ],
+ xiāng: [
+ '乡',
+ '厢',
+ '廂',
+ '忀',
+ '楿',
+ '欀',
+ '湘',
+ '瓖',
+ '稥',
+ '箱',
+ '緗',
+ '缃',
+ '膷',
+ '芗',
+ '萫',
+ '葙',
+ '薌',
+ '襄',
+ '郷',
+ '鄉',
+ '鄊',
+ '鄕',
+ '鑲',
+ '镶',
+ '香',
+ '驤',
+ '骧',
+ '鱜',
+ '麘',
+ '𬙋',
+ ],
+ shū: [
+ '书',
+ '倏',
+ '倐',
+ '儵',
+ '叔',
+ '姝',
+ '尗',
+ '抒',
+ '掓',
+ '摅',
+ '攄',
+ '書',
+ '枢',
+ '梳',
+ '樞',
+ '殊',
+ '殳',
+ '毹',
+ '毺',
+ '淑',
+ '瀭',
+ '焂',
+ '疎',
+ '疏',
+ '紓',
+ '綀',
+ '纾',
+ '舒',
+ '菽',
+ '蔬',
+ '踈',
+ '軗',
+ '輸',
+ '输',
+ '鄃',
+ '陎',
+ '鮛',
+ '鵨',
+ ],
+ dǒu: ['乧', '抖', '枓', '蚪', '鈄', '阧', '陡'],
+ shǐ: [
+ '乨',
+ '使',
+ '兘',
+ '史',
+ '始',
+ '宩',
+ '屎',
+ '榁',
+ '矢',
+ '笶',
+ '豕',
+ '鉂',
+ '駛',
+ '驶',
+ ],
+ jī: [
+ '乩',
+ '僟',
+ '击',
+ '刉',
+ '刏',
+ '剞',
+ '叽',
+ '唧',
+ '喞',
+ '嗘',
+ '嘰',
+ '圾',
+ '基',
+ '墼',
+ '姬',
+ '屐',
+ '嵆',
+ '嵇',
+ '撃',
+ '擊',
+ '朞',
+ '机',
+ '枅',
+ '樭',
+ '機',
+ '毄',
+ '激',
+ '犄',
+ '玑',
+ '璣',
+ '畸',
+ '畿',
+ '癪',
+ '矶',
+ '磯',
+ '积',
+ '積',
+ '笄',
+ '筓',
+ '箕',
+ '簊',
+ '緁',
+ '羁',
+ '羇',
+ '羈',
+ '耭',
+ '肌',
+ '芨',
+ '虀',
+ '覉',
+ '覊',
+ '譏',
+ '譤',
+ '讥',
+ '賫',
+ '賷',
+ '赍',
+ '跻',
+ '踑',
+ '躋',
+ '躸',
+ '銈',
+ '錤',
+ '鐖',
+ '鑇',
+ '鑙',
+ '隮',
+ '雞',
+ '鞿',
+ '韲',
+ '飢',
+ '饑',
+ '饥',
+ '魕',
+ '鳮',
+ '鶏',
+ '鶺',
+ '鷄',
+ '鸄',
+ '鸡',
+ '齎',
+ '齏',
+ '齑',
+ '𬯀',
+ '𫓯',
+ '𫓹',
+ '𫌀',
+ ],
+ náng: ['乪', '嚢', '欜', '蠰', '饢'],
+ jiā: [
+ '乫',
+ '佳',
+ '傢',
+ '加',
+ '嘉',
+ '抸',
+ '枷',
+ '梜',
+ '毠',
+ '泇',
+ '浃',
+ '浹',
+ '犌',
+ '猳',
+ '珈',
+ '痂',
+ '笳',
+ '糘',
+ '耞',
+ '腵',
+ '葭',
+ '袈',
+ '豭',
+ '貑',
+ '跏',
+ '迦',
+ '鉫',
+ '鎵',
+ '镓',
+ '鴐',
+ '麚',
+ '𬂩',
+ ],
+ jù: [
+ '乬',
+ '倨',
+ '倶',
+ '具',
+ '剧',
+ '劇',
+ '勮',
+ '埧',
+ '埾',
+ '壉',
+ '姖',
+ '屦',
+ '屨',
+ '岠',
+ '巨',
+ '巪',
+ '怇',
+ '惧',
+ '愳',
+ '懅',
+ '懼',
+ '拒',
+ '拠',
+ '昛',
+ '歫',
+ '洰',
+ '澽',
+ '炬',
+ '烥',
+ '犋',
+ '秬',
+ '窭',
+ '窶',
+ '簴',
+ '粔',
+ '耟',
+ '聚',
+ '虡',
+ '蚷',
+ '詎',
+ '讵',
+ '豦',
+ '距',
+ '踞',
+ '躆',
+ '遽',
+ '邭',
+ '醵',
+ '鉅',
+ '鐻',
+ '钜',
+ '颶',
+ '飓',
+ '駏',
+ '鮔',
+ ],
+ shí: [
+ '乭',
+ '十',
+ '埘',
+ '塒',
+ '姼',
+ '实',
+ '実',
+ '寔',
+ '實',
+ '峕',
+ '嵵',
+ '时',
+ '旹',
+ '時',
+ '榯',
+ '湜',
+ '溡',
+ '炻',
+ '祏',
+ '竍',
+ '蚀',
+ '蝕',
+ '辻',
+ '遈',
+ '鉐',
+ '飠',
+ '饣',
+ '鮖',
+ '鰣',
+ '鲥',
+ '鼫',
+ '鼭',
+ ],
+ mǎo: ['乮', '冇', '卯', '峁', '戼', '昴', '泖', '笷', '蓩', '鉚', '铆'],
+ mǎi: ['买', '嘪', '荬', '蕒', '買', '鷶'],
+ luàn: ['乱', '亂', '釠'],
+ rǔ: ['乳', '擩', '汝', '肗', '辱', '鄏'],
+ xué: [
+ '乴',
+ '学',
+ '學',
+ '峃',
+ '嶨',
+ '斈',
+ '泶',
+ '澩',
+ '燢',
+ '穴',
+ '茓',
+ '袕',
+ '踅',
+ '鷽',
+ '鸴',
+ ],
+ yǎn: [
+ '䶮',
+ '乵',
+ '俨',
+ '偃',
+ '儼',
+ '兖',
+ '兗',
+ '厣',
+ '厴',
+ '噞',
+ '孍',
+ '嵃',
+ '巘',
+ '巚',
+ '弇',
+ '愝',
+ '戭',
+ '扊',
+ '抁',
+ '掩',
+ '揜',
+ '曮',
+ '椼',
+ '檿',
+ '沇',
+ '渷',
+ '演',
+ '琰',
+ '甗',
+ '眼',
+ '罨',
+ '萒',
+ '蝘',
+ '衍',
+ '褗',
+ '躽',
+ '遃',
+ '郾',
+ '隒',
+ '顩',
+ '魇',
+ '魘',
+ '鰋',
+ '鶠',
+ '黡',
+ '黤',
+ '黬',
+ '黭',
+ '黶',
+ '鼴',
+ '鼹',
+ '齴',
+ '龑',
+ '𬸘',
+ '𬙂',
+ '𪩘',
+ ],
+ fǔ: [
+ '乶',
+ '俌',
+ '俛',
+ '俯',
+ '府',
+ '弣',
+ '抚',
+ '拊',
+ '撫',
+ '斧',
+ '椨',
+ '滏',
+ '焤',
+ '甫',
+ '盙',
+ '簠',
+ '腐',
+ '腑',
+ '蜅',
+ '輔',
+ '辅',
+ '郙',
+ '釜',
+ '釡',
+ '阝',
+ '頫',
+ '鬴',
+ '黼',
+ '㕮',
+ '𫖯',
+ ],
+ shā: [
+ '乷',
+ '唦',
+ '杀',
+ '桬',
+ '殺',
+ '毮',
+ '猀',
+ '痧',
+ '砂',
+ '硰',
+ '紗',
+ '繺',
+ '纱',
+ '蔱',
+ '裟',
+ '鎩',
+ '铩',
+ '閷',
+ '髿',
+ '魦',
+ '鯊',
+ '鯋',
+ '鲨',
+ ],
+ nǎ: ['乸', '雫'],
+ qián: [
+ '乹',
+ '亁',
+ '仱',
+ '偂',
+ '前',
+ '墘',
+ '媊',
+ '岒',
+ '拑',
+ '掮',
+ '榩',
+ '橬',
+ '歬',
+ '潛',
+ '潜',
+ '濳',
+ '灊',
+ '箝',
+ '葥',
+ '虔',
+ '軡',
+ '鈐',
+ '鉗',
+ '銭',
+ '錢',
+ '鎆',
+ '钤',
+ '钱',
+ '钳',
+ '靬',
+ '騚',
+ '騝',
+ '鰬',
+ '黔',
+ '黚',
+ ],
+ suǒ: [
+ '乺',
+ '唢',
+ '嗩',
+ '所',
+ '暛',
+ '溑',
+ '溹',
+ '琐',
+ '琑',
+ '瑣',
+ '索',
+ '褨',
+ '鎖',
+ '鎻',
+ '鏁',
+ '锁',
+ ],
+ yú: [
+ '乻',
+ '于',
+ '亐',
+ '伃',
+ '余',
+ '堣',
+ '堬',
+ '妤',
+ '娛',
+ '娯',
+ '娱',
+ '嬩',
+ '崳',
+ '嵎',
+ '嵛',
+ '愚',
+ '扵',
+ '揄',
+ '旟',
+ '楡',
+ '楰',
+ '榆',
+ '欤',
+ '歈',
+ '歟',
+ '歶',
+ '渔',
+ '渝',
+ '湡',
+ '漁',
+ '澞',
+ '牏',
+ '狳',
+ '玗',
+ '玙',
+ '瑜',
+ '璵',
+ '盂',
+ '睮',
+ '窬',
+ '竽',
+ '籅',
+ '羭',
+ '腴',
+ '臾',
+ '舁',
+ '舆',
+ '艅',
+ '茰',
+ '萮',
+ '萸',
+ '蕍',
+ '蘛',
+ '虞',
+ '虶',
+ '蝓',
+ '螸',
+ '衧',
+ '褕',
+ '覦',
+ '觎',
+ '諛',
+ '謣',
+ '谀',
+ '踰',
+ '輿',
+ '轝',
+ '逾',
+ '邘',
+ '酑',
+ '鍝',
+ '隅',
+ '雓',
+ '雩',
+ '餘',
+ '馀',
+ '騟',
+ '骬',
+ '髃',
+ '魚',
+ '魣',
+ '鮽',
+ '鯲',
+ '鰅',
+ '鱼',
+ '鷠',
+ '鸆',
+ '齵',
+ ],
+ zhù: [
+ '乼',
+ '伫',
+ '佇',
+ '住',
+ '坾',
+ '墸',
+ '壴',
+ '嵀',
+ '拀',
+ '杼',
+ '柱',
+ '樦',
+ '殶',
+ '注',
+ '炷',
+ '疰',
+ '眝',
+ '祝',
+ '祩',
+ '竚',
+ '筯',
+ '箸',
+ '篫',
+ '簗',
+ '紵',
+ '紸',
+ '纻',
+ '羜',
+ '翥',
+ '苎',
+ '莇',
+ '蛀',
+ '註',
+ '貯',
+ '贮',
+ '跓',
+ '軴',
+ '鉒',
+ '鋳',
+ '鑄',
+ '铸',
+ '馵',
+ '駐',
+ '驻',
+ ],
+ zhě: ['乽', '者', '褶', '襵', '赭', '踷', '鍺', '锗'],
+ 'qián gān': ['乾'],
+ 'zhì luàn': ['乿'],
+ guī: [
+ '亀',
+ '圭',
+ '妫',
+ '媯',
+ '嫢',
+ '嬀',
+ '帰',
+ '归',
+ '摫',
+ '椝',
+ '槻',
+ '槼',
+ '櫷',
+ '歸',
+ '珪',
+ '瑰',
+ '璝',
+ '瓌',
+ '皈',
+ '瞡',
+ '硅',
+ '茥',
+ '蘬',
+ '規',
+ '规',
+ '邽',
+ '郌',
+ '閨',
+ '闺',
+ '騩',
+ '鬶',
+ '鬹',
+ ],
+ 'lǐn lìn': ['亃'],
+ jué: [
+ '亅',
+ '决',
+ '刔',
+ '劂',
+ '匷',
+ '厥',
+ '噊',
+ '孒',
+ '孓',
+ '崛',
+ '崫',
+ '嶥',
+ '彏',
+ '憠',
+ '憰',
+ '戄',
+ '抉',
+ '挗',
+ '掘',
+ '攫',
+ '桷',
+ '橛',
+ '橜',
+ '欮',
+ '氒',
+ '決',
+ '灍',
+ '焳',
+ '熦',
+ '爑',
+ '爴',
+ '爵',
+ '獗',
+ '玃',
+ '玦',
+ '玨',
+ '珏',
+ '瑴',
+ '瘚',
+ '矍',
+ '矡',
+ '砄',
+ '絕',
+ '絶',
+ '绝',
+ '臄',
+ '芵',
+ '蕝',
+ '蕨',
+ '虳',
+ '蟨',
+ '蟩',
+ '觖',
+ '觮',
+ '觼',
+ '訣',
+ '譎',
+ '诀',
+ '谲',
+ '貜',
+ '赽',
+ '趉',
+ '蹷',
+ '躩',
+ '鈌',
+ '鐍',
+ '鐝',
+ '钁',
+ '镢',
+ '鴂',
+ '鴃',
+ '鷢',
+ '𫘝',
+ '㵐',
+ '𫔎',
+ ],
+ 'le liǎo': ['了'],
+ 'gè mā': ['亇'],
+ 'yǔ yú': ['予', '懙'],
+ zhēng: [
+ '争',
+ '佂',
+ '凧',
+ '姃',
+ '媜',
+ '峥',
+ '崝',
+ '崢',
+ '征',
+ '徰',
+ '炡',
+ '烝',
+ '爭',
+ '狰',
+ '猙',
+ '癥',
+ '眐',
+ '睁',
+ '睜',
+ '筝',
+ '箏',
+ '篜',
+ '聇',
+ '脀',
+ '蒸',
+ '踭',
+ '鉦',
+ '錚',
+ '鏳',
+ '鬇',
+ ],
+ èr: ['二', '刵', '咡', '弍', '弐', '樲', '誀', '貮', '貳', '贰', '髶'],
+ chù: [
+ '亍',
+ '傗',
+ '儊',
+ '怵',
+ '憷',
+ '搐',
+ '斶',
+ '歜',
+ '珿',
+ '琡',
+ '矗',
+ '竌',
+ '絀',
+ '绌',
+ '臅',
+ '触',
+ '觸',
+ '豖',
+ '鄐',
+ '閦',
+ '黜',
+ ],
+ kuī: ['亏', '刲', '岿', '巋', '盔', '窥', '窺', '聧', '虧', '闚', '顝'],
+ yún: [
+ '云',
+ '伝',
+ '勻',
+ '匀',
+ '囩',
+ '妘',
+ '愪',
+ '抣',
+ '昀',
+ '橒',
+ '沄',
+ '涢',
+ '溳',
+ '澐',
+ '熉',
+ '畇',
+ '秐',
+ '筼',
+ '篔',
+ '紜',
+ '縜',
+ '纭',
+ '耘',
+ '芸',
+ '蒷',
+ '蕓',
+ '郧',
+ '鄖',
+ '鋆',
+ '雲',
+ ],
+ hù: [
+ '互',
+ '冱',
+ '嗀',
+ '嚛',
+ '婟',
+ '嫭',
+ '嫮',
+ '岵',
+ '帍',
+ '弖',
+ '怙',
+ '戶',
+ '户',
+ '戸',
+ '戽',
+ '扈',
+ '护',
+ '昈',
+ '槴',
+ '沍',
+ '沪',
+ '滬',
+ '熩',
+ '瓠',
+ '祜',
+ '笏',
+ '簄',
+ '粐',
+ '綔',
+ '蔰',
+ '護',
+ '豰',
+ '鄠',
+ '鍙',
+ '頀',
+ '鱯',
+ '鳠',
+ '鳸',
+ '鸌',
+ '鹱',
+ ],
+ qí: [
+ '亓',
+ '剘',
+ '埼',
+ '岐',
+ '岓',
+ '崎',
+ '嵜',
+ '愭',
+ '掑',
+ '斉',
+ '斊',
+ '旂',
+ '旗',
+ '棊',
+ '棋',
+ '檱',
+ '櫀',
+ '歧',
+ '淇',
+ '濝',
+ '猉',
+ '玂',
+ '琦',
+ '琪',
+ '璂',
+ '畦',
+ '疧',
+ '碁',
+ '碕',
+ '祁',
+ '祈',
+ '祺',
+ '禥',
+ '竒',
+ '簯',
+ '簱',
+ '籏',
+ '粸',
+ '綥',
+ '綦',
+ '肵',
+ '脐',
+ '臍',
+ '艩',
+ '芪',
+ '萁',
+ '萕',
+ '蕲',
+ '藄',
+ '蘄',
+ '蚑',
+ '蚚',
+ '蛴',
+ '蜝',
+ '蜞',
+ '螧',
+ '蠐',
+ '褀',
+ '軝',
+ '鄿',
+ '釮',
+ '錡',
+ '锜',
+ '陭',
+ '頎',
+ '颀',
+ '騎',
+ '騏',
+ '騹',
+ '骐',
+ '骑',
+ '鬐',
+ '鬿',
+ '鯕',
+ '鰭',
+ '鲯',
+ '鳍',
+ '鵸',
+ '鶀',
+ '麒',
+ '麡',
+ '𨙸',
+ '𬨂',
+ '䓫',
+ ],
+ jǐng: [
+ '井',
+ '儆',
+ '刭',
+ '剄',
+ '坓',
+ '宑',
+ '幜',
+ '憬',
+ '暻',
+ '殌',
+ '汫',
+ '汬',
+ '澋',
+ '璄',
+ '璟',
+ '璥',
+ '穽',
+ '肼',
+ '蟼',
+ '警',
+ '阱',
+ '頚',
+ '頸',
+ ],
+ sì: [
+ '亖',
+ '佀',
+ '価',
+ '儩',
+ '兕',
+ '嗣',
+ '四',
+ '姒',
+ '娰',
+ '孠',
+ '寺',
+ '巳',
+ '柶',
+ '榹',
+ '汜',
+ '泗',
+ '泤',
+ '洍',
+ '洠',
+ '涘',
+ '瀃',
+ '牭',
+ '祀',
+ '禩',
+ '竢',
+ '笥',
+ '耜',
+ '肂',
+ '肆',
+ '蕼',
+ '覗',
+ '貄',
+ '釲',
+ '鈶',
+ '鈻',
+ '飤',
+ '飼',
+ '饲',
+ '駟',
+ '騃',
+ '驷',
+ ],
+ suì: [
+ '亗',
+ '嬘',
+ '岁',
+ '嵗',
+ '旞',
+ '檖',
+ '歲',
+ '歳',
+ '澻',
+ '煫',
+ '燧',
+ '璲',
+ '砕',
+ '碎',
+ '祟',
+ '禭',
+ '穂',
+ '穗',
+ '穟',
+ '繀',
+ '繐',
+ '繸',
+ '襚',
+ '誶',
+ '譢',
+ '谇',
+ '賥',
+ '邃',
+ '鐆',
+ '鐩',
+ '隧',
+ '韢',
+ '𫟦',
+ '𬭼',
+ ],
+ gèn: ['亘', '亙', '揯', '搄', '茛'],
+ yà: [
+ '亚',
+ '亜',
+ '俹',
+ '冴',
+ '劜',
+ '圔',
+ '圠',
+ '埡',
+ '娅',
+ '婭',
+ '揠',
+ '氩',
+ '氬',
+ '犽',
+ '砑',
+ '稏',
+ '聐',
+ '襾',
+ '覀',
+ '訝',
+ '讶',
+ '迓',
+ '齾',
+ ],
+ 'xiē suò': ['些'],
+ 'qí zhāi': ['亝', '齊'],
+ 'yā yà': ['亞', '压', '垭', '壓', '铔'],
+ 'jí qì': ['亟', '焏'],
+ tóu: ['亠', '投', '頭', '骰'],
+ 'wáng wú': ['亡'],
+ 'kàng háng gāng': ['亢'],
+ dà: ['亣', '眔'],
+ jiāo: [
+ '交',
+ '僬',
+ '娇',
+ '嬌',
+ '峧',
+ '嶕',
+ '嶣',
+ '憍',
+ '椒',
+ '浇',
+ '澆',
+ '焦',
+ '礁',
+ '穚',
+ '簥',
+ '胶',
+ '膠',
+ '膲',
+ '茭',
+ '茮',
+ '蕉',
+ '虠',
+ '蛟',
+ '蟭',
+ '跤',
+ '轇',
+ '郊',
+ '鐎',
+ '驕',
+ '骄',
+ '鮫',
+ '鲛',
+ '鵁',
+ '鷦',
+ '鷮',
+ '鹪',
+ '䴔',
+ ],
+ hài: ['亥', '嗐', '害', '氦', '餀', '饚', '駭', '駴', '骇'],
+ 'hēng pēng': ['亨'],
+ mǔ: [
+ '亩',
+ '姆',
+ '峔',
+ '拇',
+ '母',
+ '牡',
+ '牳',
+ '畂',
+ '畆',
+ '畒',
+ '畝',
+ '畞',
+ '畮',
+ '砪',
+ '胟',
+ '踇',
+ '鉧',
+ '𬭁',
+ '𧿹',
+ ],
+ ye: ['亪'],
+ xiǎng: [
+ '享',
+ '亯',
+ '响',
+ '想',
+ '晑',
+ '蚃',
+ '蠁',
+ '響',
+ '飨',
+ '餉',
+ '饗',
+ '饷',
+ '鮝',
+ '鯗',
+ '鱶',
+ '鲞',
+ ],
+ jīng: [
+ '京',
+ '亰',
+ '兢',
+ '坕',
+ '坙',
+ '婛',
+ '惊',
+ '旌',
+ '旍',
+ '晶',
+ '橸',
+ '泾',
+ '涇',
+ '猄',
+ '睛',
+ '秔',
+ '稉',
+ '粳',
+ '精',
+ '経',
+ '經',
+ '綡',
+ '聙',
+ '腈',
+ '茎',
+ '荆',
+ '荊',
+ '菁',
+ '葏',
+ '驚',
+ '鯨',
+ '鲸',
+ '鶁',
+ '鶄',
+ '麖',
+ '麠',
+ '鼱',
+ '䴖',
+ ],
+ tíng: [
+ '亭',
+ '停',
+ '婷',
+ '嵉',
+ '庭',
+ '廷',
+ '楟',
+ '榳',
+ '筳',
+ '聤',
+ '莛',
+ '葶',
+ '蜓',
+ '蝏',
+ '諪',
+ '邒',
+ '霆',
+ '鼮',
+ '䗴',
+ ],
+ liàng: ['亮', '喨', '悢', '晾', '湸', '諒', '谅', '輌', '輛', '辆', '鍄'],
+ 'qīn qìng': ['亲', '親'],
+ bó: [
+ '亳',
+ '仢',
+ '侼',
+ '僰',
+ '博',
+ '帛',
+ '愽',
+ '懪',
+ '挬',
+ '搏',
+ '欂',
+ '浡',
+ '淿',
+ '渤',
+ '煿',
+ '牔',
+ '狛',
+ '瓝',
+ '礴',
+ '秡',
+ '箔',
+ '簙',
+ '糪',
+ '胉',
+ '脖',
+ '膊',
+ '舶',
+ '艊',
+ '萡',
+ '葧',
+ '袯',
+ '襏',
+ '襮',
+ '謈',
+ '踣',
+ '郣',
+ '鈸',
+ '鉑',
+ '鋍',
+ '鎛',
+ '鑮',
+ '钹',
+ '铂',
+ '镈',
+ '餺',
+ '馎',
+ '馛',
+ '馞',
+ '駁',
+ '駮',
+ '驳',
+ '髆',
+ '鵓',
+ '鹁',
+ ],
+ yòu: [
+ '亴',
+ '佑',
+ '佦',
+ '侑',
+ '又',
+ '右',
+ '哊',
+ '唀',
+ '囿',
+ '姷',
+ '宥',
+ '峟',
+ '幼',
+ '狖',
+ '祐',
+ '蚴',
+ '誘',
+ '诱',
+ '貁',
+ '迶',
+ '酭',
+ '釉',
+ '鼬',
+ ],
+ xiè: [
+ '亵',
+ '伳',
+ '偞',
+ '偰',
+ '僁',
+ '卨',
+ '卸',
+ '噧',
+ '塮',
+ '夑',
+ '媟',
+ '屑',
+ '屧',
+ '廨',
+ '徢',
+ '懈',
+ '暬',
+ '械',
+ '榍',
+ '榭',
+ '泻',
+ '洩',
+ '渫',
+ '澥',
+ '瀉',
+ '瀣',
+ '灺',
+ '炧',
+ '炨',
+ '燮',
+ '爕',
+ '獬',
+ '祄',
+ '禼',
+ '糏',
+ '紲',
+ '絏',
+ '絬',
+ '繲',
+ '纈',
+ '绁',
+ '缷',
+ '薢',
+ '薤',
+ '蟹',
+ '蠏',
+ '褉',
+ '褻',
+ '謝',
+ '谢',
+ '躞',
+ '邂',
+ '靾',
+ '韰',
+ '齂',
+ '齘',
+ '齛',
+ '齥',
+ '𬹼',
+ '𤫉',
+ ],
+ 'dǎn dàn': ['亶', '馾'],
+ lián: [
+ '亷',
+ '劆',
+ '匲',
+ '匳',
+ '嗹',
+ '噒',
+ '奁',
+ '奩',
+ '嫾',
+ '帘',
+ '廉',
+ '怜',
+ '憐',
+ '涟',
+ '漣',
+ '濂',
+ '濓',
+ '瀮',
+ '熑',
+ '燫',
+ '簾',
+ '籢',
+ '籨',
+ '縺',
+ '翴',
+ '联',
+ '聨',
+ '聫',
+ '聮',
+ '聯',
+ '臁',
+ '莲',
+ '蓮',
+ '薕',
+ '螊',
+ '蠊',
+ '裢',
+ '褳',
+ '覝',
+ '謰',
+ '蹥',
+ '连',
+ '連',
+ '鎌',
+ '鐮',
+ '镰',
+ '鬑',
+ '鰱',
+ '鲢',
+ ],
+ duǒ: [
+ '亸',
+ '哚',
+ '嚲',
+ '埵',
+ '崜',
+ '朵',
+ '朶',
+ '綞',
+ '缍',
+ '趓',
+ '躱',
+ '躲',
+ '軃',
+ ],
+ 'wěi mén': ['亹', '斖'],
+ rén: ['人', '亻', '仁', '壬', '忈', '忎', '朲', '秂', '芢', '魜', '鵀'],
+ jí: [
+ '亼',
+ '亽',
+ '伋',
+ '佶',
+ '偮',
+ '卙',
+ '即',
+ '卽',
+ '及',
+ '叝',
+ '吉',
+ '堲',
+ '塉',
+ '姞',
+ '嫉',
+ '岌',
+ '嵴',
+ '嶯',
+ '彶',
+ '忣',
+ '急',
+ '愱',
+ '戢',
+ '揤',
+ '极',
+ '棘',
+ '楫',
+ '極',
+ '槉',
+ '檝',
+ '殛',
+ '汲',
+ '湒',
+ '潗',
+ '疾',
+ '瘠',
+ '皍',
+ '笈',
+ '箿',
+ '籍',
+ '級',
+ '级',
+ '膌',
+ '艥',
+ '蒺',
+ '蕀',
+ '蕺',
+ '蝍',
+ '螏',
+ '襋',
+ '觙',
+ '谻',
+ '踖',
+ '蹐',
+ '躤',
+ '輯',
+ '轚',
+ '辑',
+ '郆',
+ '銡',
+ '鍓',
+ '鏶',
+ '集',
+ '雧',
+ '霵',
+ '鹡',
+ '㴔',
+ ],
+ wáng: ['亾', '仼', '兦', '莣', '蚟'],
+ 'shén shí': ['什'],
+ lè: [
+ '仂',
+ '叻',
+ '忇',
+ '氻',
+ '泐',
+ '玏',
+ '砳',
+ '簕',
+ '艻',
+ '阞',
+ '韷',
+ '餎',
+ '鰳',
+ '鱳',
+ '鳓',
+ ],
+ dīng: ['仃', '叮', '帄', '玎', '疔', '盯', '耵', '虰', '靪'],
+ zè: ['仄', '崱', '庂', '捑', '昃', '昗', '汄'],
+ 'jǐn jìn': ['仅', '僅', '嫤'],
+ 'pú pū': ['仆'],
+ 'chóu qiú': ['仇'],
+ zhǎng: ['仉', '幥', '掌', '礃'],
+ jīn: [
+ '今',
+ '堻',
+ '巾',
+ '惍',
+ '斤',
+ '津',
+ '珒',
+ '琻',
+ '璡',
+ '砛',
+ '筋',
+ '荕',
+ '衿',
+ '襟',
+ '觔',
+ '金',
+ '釒',
+ '釿',
+ '钅',
+ '鹶',
+ '黅',
+ '𬬱',
+ ],
+ bīng: ['仌', '仒', '兵', '冫', '冰', '掤', '氷', '鋲'],
+ réng: ['仍', '礽', '芿', '辸', '陾'],
+ fó: ['仏', '坲', '梻'],
+ 'jīn sǎn': ['仐'],
+ lún: [
+ '仑',
+ '伦',
+ '侖',
+ '倫',
+ '囵',
+ '圇',
+ '婨',
+ '崘',
+ '崙',
+ '棆',
+ '沦',
+ '淪',
+ '磮',
+ '腀',
+ '菕',
+ '蜦',
+ '踚',
+ '輪',
+ '轮',
+ '錀',
+ '陯',
+ '鯩',
+ '𬬭',
+ ],
+ cāng: [
+ '仓',
+ '仺',
+ '倉',
+ '凔',
+ '嵢',
+ '沧',
+ '滄',
+ '濸',
+ '獊',
+ '舱',
+ '艙',
+ '苍',
+ '蒼',
+ '螥',
+ '鸧',
+ ],
+ 'zǎi zǐ zī': ['仔'],
+ tā: ['他', '塌', '它', '榙', '溻', '牠', '祂', '褟', '趿', '遢', '闧'],
+ fù: [
+ '付',
+ '偩',
+ '傅',
+ '冨',
+ '副',
+ '咐',
+ '坿',
+ '复',
+ '妇',
+ '婦',
+ '媍',
+ '嬔',
+ '富',
+ '復',
+ '椱',
+ '祔',
+ '禣',
+ '竎',
+ '緮',
+ '縛',
+ '缚',
+ '腹',
+ '萯',
+ '蕧',
+ '蚹',
+ '蛗',
+ '蝜',
+ '蝮',
+ '袝',
+ '複',
+ '覄',
+ '覆',
+ '訃',
+ '詂',
+ '讣',
+ '負',
+ '賦',
+ '賻',
+ '负',
+ '赋',
+ '赙',
+ '赴',
+ '輹',
+ '鍑',
+ '鍢',
+ '阜',
+ '附',
+ '馥',
+ '駙',
+ '驸',
+ '鮒',
+ '鰒',
+ '鲋',
+ '鳆',
+ '㳇',
+ ],
+ xiān: [
+ '仙',
+ '仚',
+ '佡',
+ '僊',
+ '僲',
+ '先',
+ '嘕',
+ '奾',
+ '屳',
+ '廯',
+ '忺',
+ '憸',
+ '掀',
+ '暹',
+ '杴',
+ '氙',
+ '珗',
+ '祆',
+ '秈',
+ '籼',
+ '繊',
+ '纎',
+ '纖',
+ '苮',
+ '褼',
+ '襳',
+ '跹',
+ '蹮',
+ '躚',
+ '酰',
+ '鍁',
+ '锨',
+ '韯',
+ '韱',
+ '馦',
+ '鱻',
+ '鶱',
+ '𬸣',
+ ],
+ 'tuō chà duó': ['仛'],
+ hóng: [
+ '仜',
+ '吰',
+ '垬',
+ '妅',
+ '娂',
+ '宏',
+ '宖',
+ '弘',
+ '彋',
+ '汯',
+ '泓',
+ '洪',
+ '浤',
+ '渱',
+ '潂',
+ '玒',
+ '玜',
+ '竑',
+ '竤',
+ '篊',
+ '粠',
+ '紘',
+ '紭',
+ '綋',
+ '纮',
+ '翃',
+ '翝',
+ '耾',
+ '苰',
+ '荭',
+ '葒',
+ '葓',
+ '谹',
+ '谼',
+ '鈜',
+ '鉷',
+ '鋐',
+ '閎',
+ '闳',
+ '霐',
+ '霟',
+ '鞃',
+ '魟',
+ '鴻',
+ '鸿',
+ '黉',
+ '黌',
+ '𫟹',
+ '𬭎',
+ ],
+ tóng: [
+ '仝',
+ '佟',
+ '哃',
+ '峂',
+ '峝',
+ '庝',
+ '彤',
+ '晍',
+ '曈',
+ '桐',
+ '氃',
+ '浵',
+ '潼',
+ '犝',
+ '獞',
+ '眮',
+ '瞳',
+ '砼',
+ '秱',
+ '童',
+ '粡',
+ '膧',
+ '茼',
+ '蚒',
+ '詷',
+ '赨',
+ '酮',
+ '鉖',
+ '鉵',
+ '銅',
+ '铜',
+ '餇',
+ '鮦',
+ '鲖',
+ '𫍣',
+ '𦒍',
+ ],
+ rèn: [
+ '仞',
+ '仭',
+ '刃',
+ '刄',
+ '妊',
+ '姙',
+ '屻',
+ '岃',
+ '扨',
+ '牣',
+ '祍',
+ '紉',
+ '紝',
+ '絍',
+ '纫',
+ '纴',
+ '肕',
+ '腍',
+ '衽',
+ '袵',
+ '訒',
+ '認',
+ '认',
+ '讱',
+ '軔',
+ '轫',
+ '鈓',
+ '靭',
+ '靱',
+ '韌',
+ '韧',
+ '飪',
+ '餁',
+ '饪',
+ ],
+ qiān: [
+ '仟',
+ '佥',
+ '僉',
+ '千',
+ '圲',
+ '奷',
+ '孯',
+ '岍',
+ '悭',
+ '愆',
+ '慳',
+ '扦',
+ '拪',
+ '搴',
+ '撁',
+ '攐',
+ '攑',
+ '攓',
+ '杄',
+ '櫏',
+ '汘',
+ '汧',
+ '牵',
+ '牽',
+ '竏',
+ '签',
+ '簽',
+ '籖',
+ '籤',
+ '粁',
+ '芊',
+ '茾',
+ '蚈',
+ '褰',
+ '諐',
+ '謙',
+ '谦',
+ '谸',
+ '迁',
+ '遷',
+ '釺',
+ '鈆',
+ '鉛',
+ '鏲',
+ '钎',
+ '阡',
+ '韆',
+ '顅',
+ '騫',
+ '骞',
+ '鬜',
+ '鬝',
+ '鵮',
+ '鹐',
+ ],
+ 'gǎn hàn': ['仠'],
+ 'yì gē': ['仡'],
+ dài: [
+ '代',
+ '侢',
+ '叇',
+ '垈',
+ '埭',
+ '岱',
+ '帒',
+ '带',
+ '帯',
+ '帶',
+ '廗',
+ '怠',
+ '戴',
+ '曃',
+ '柋',
+ '殆',
+ '瀻',
+ '玳',
+ '瑇',
+ '甙',
+ '簤',
+ '紿',
+ '緿',
+ '绐',
+ '艜',
+ '蝳',
+ '袋',
+ '襶',
+ '貣',
+ '贷',
+ '蹛',
+ '軑',
+ '軚',
+ '軩',
+ '轪',
+ '迨',
+ '霴',
+ '靆',
+ '鴏',
+ '黛',
+ '黱',
+ ],
+ 'lìng líng lǐng': ['令'],
+ chào: ['仦', '耖', '觘'],
+ 'cháng zhǎng': ['仧', '兏', '長', '长'],
+ sā: ['仨'],
+ cháng: [
+ '仩',
+ '偿',
+ '償',
+ '嘗',
+ '嚐',
+ '嫦',
+ '尝',
+ '常',
+ '徜',
+ '瑺',
+ '瓺',
+ '甞',
+ '肠',
+ '腸',
+ '膓',
+ '苌',
+ '萇',
+ '镸',
+ '鱨',
+ '鲿',
+ ],
+ yí: [
+ '仪',
+ '侇',
+ '儀',
+ '冝',
+ '匜',
+ '咦',
+ '圯',
+ '夷',
+ '姨',
+ '宐',
+ '宜',
+ '宧',
+ '寲',
+ '峓',
+ '嶬',
+ '嶷',
+ '巸',
+ '彛',
+ '彜',
+ '彝',
+ '彞',
+ '怡',
+ '恞',
+ '扅',
+ '暆',
+ '栘',
+ '椬',
+ '椸',
+ '沂',
+ '洟',
+ '熪',
+ '瓵',
+ '痍',
+ '移',
+ '簃',
+ '籎',
+ '羠',
+ '胰',
+ '萓',
+ '蛦',
+ '螔',
+ '觺',
+ '謻',
+ '貽',
+ '贻',
+ '跠',
+ '迻',
+ '遺',
+ '鏔',
+ '頉',
+ '頤',
+ '頥',
+ '顊',
+ '颐',
+ '饴',
+ '鮧',
+ '鴺',
+ ],
+ mù: [
+ '仫',
+ '凩',
+ '募',
+ '墓',
+ '幕',
+ '幙',
+ '慔',
+ '慕',
+ '暮',
+ '暯',
+ '木',
+ '楘',
+ '毣',
+ '沐',
+ '炑',
+ '牧',
+ '狇',
+ '目',
+ '睦',
+ '穆',
+ '艒',
+ '苜',
+ '莯',
+ '蚞',
+ '鉬',
+ '钼',
+ '雮',
+ '霂',
+ ],
+ 'men mén': ['们'],
+ fǎn: ['仮', '反', '橎', '返'],
+ 'chào miǎo': ['仯'],
+ 'yǎng áng': ['仰'],
+ zhòng: [
+ '仲',
+ '众',
+ '堹',
+ '妕',
+ '媑',
+ '狆',
+ '眾',
+ '祌',
+ '筗',
+ '茽',
+ '蚛',
+ '衆',
+ '衶',
+ '諥',
+ ],
+ 'pǐ pí': ['仳'],
+ wò: [
+ '仴',
+ '偓',
+ '卧',
+ '媉',
+ '幄',
+ '握',
+ '楃',
+ '沃',
+ '渥',
+ '濣',
+ '瓁',
+ '瞃',
+ '硪',
+ '肟',
+ '腛',
+ '臥',
+ '齷',
+ '龌',
+ ],
+ jiàn: [
+ '件',
+ '俴',
+ '健',
+ '僭',
+ '剑',
+ '剣',
+ '剱',
+ '劍',
+ '劎',
+ '劒',
+ '劔',
+ '墹',
+ '寋',
+ '建',
+ '徤',
+ '擶',
+ '旔',
+ '楗',
+ '毽',
+ '洊',
+ '涧',
+ '澗',
+ '牮',
+ '珔',
+ '瞷',
+ '磵',
+ '礀',
+ '箭',
+ '糋',
+ '繝',
+ '腱',
+ '臶',
+ '舰',
+ '艦',
+ '荐',
+ '薦',
+ '覸',
+ '諓',
+ '諫',
+ '譛',
+ '谏',
+ '賎',
+ '賤',
+ '贱',
+ '趝',
+ '践',
+ '踐',
+ '踺',
+ '轞',
+ '鉴',
+ '鍳',
+ '鍵',
+ '鐱',
+ '鑑',
+ '鑒',
+ '鑬',
+ '鑳',
+ '键',
+ '間',
+ '餞',
+ '饯',
+ '𬣡',
+ ],
+ 'jià jiè jie': ['价'],
+ 'yǎo fó': ['仸'],
+ 'rèn rén': ['任'],
+ 'fèn bīn': ['份'],
+ dī: [
+ '仾',
+ '低',
+ '啲',
+ '埞',
+ '堤',
+ '岻',
+ '彽',
+ '樀',
+ '滴',
+ '磾',
+ '秪',
+ '羝',
+ '袛',
+ '趆',
+ '隄',
+ '鞮',
+ '䃅',
+ ],
+ fǎng: [
+ '仿',
+ '倣',
+ '旊',
+ '昉',
+ '昘',
+ '瓬',
+ '眆',
+ '紡',
+ '纺',
+ '舫',
+ '訪',
+ '访',
+ '髣',
+ '鶭',
+ ],
+ zhōng: [
+ '伀',
+ '刣',
+ '妐',
+ '幒',
+ '彸',
+ '忠',
+ '柊',
+ '汷',
+ '泈',
+ '炂',
+ '盅',
+ '籦',
+ '終',
+ '终',
+ '舯',
+ '蔠',
+ '蜙',
+ '螤',
+ '螽',
+ '衳',
+ '衷',
+ '蹱',
+ '鈡',
+ '鍾',
+ '鐘',
+ '钟',
+ '锺',
+ '鴤',
+ '鼨',
+ ],
+ pèi: [
+ '伂',
+ '佩',
+ '姵',
+ '帔',
+ '斾',
+ '旆',
+ '沛',
+ '浿',
+ '珮',
+ '蓜',
+ '轡',
+ '辔',
+ '配',
+ '霈',
+ '馷',
+ ],
+ diào: [
+ '伄',
+ '吊',
+ '弔',
+ '掉',
+ '瘹',
+ '盄',
+ '窎',
+ '窵',
+ '竨',
+ '訋',
+ '釣',
+ '鈟',
+ '銱',
+ '鋽',
+ '鑃',
+ '钓',
+ '铞',
+ '雿',
+ '魡',
+ ],
+ dùn: [
+ '伅',
+ '潡',
+ '炖',
+ '燉',
+ '盾',
+ '砘',
+ '碷',
+ '踲',
+ '逇',
+ '遁',
+ '遯',
+ '鈍',
+ '钝',
+ ],
+ wěn: ['伆', '刎', '吻', '呅', '抆', '桽', '稳', '穏', '穩', '紊', '肳', '脗'],
+ xǐn: ['伈'],
+ kàng: ['伉', '匟', '囥', '抗', '炕', '鈧', '钪'],
+ ài: [
+ '伌',
+ '僾',
+ '塧',
+ '壒',
+ '嫒',
+ '嬡',
+ '愛',
+ '懓',
+ '暧',
+ '曖',
+ '爱',
+ '瑷',
+ '璦',
+ '皧',
+ '瞹',
+ '砹',
+ '硋',
+ '碍',
+ '礙',
+ '薆',
+ '譺',
+ '賹',
+ '鑀',
+ '隘',
+ '靉',
+ '餲',
+ '馤',
+ '鱫',
+ '鴱',
+ ],
+ 'jì qí': ['伎', '薺'],
+ 'xiū xǔ': ['休'],
+ 'jìn yín': ['伒'],
+ dǎn: [
+ '伔',
+ '刐',
+ '撢',
+ '玬',
+ '瓭',
+ '紞',
+ '胆',
+ '膽',
+ '衴',
+ '賧',
+ '赕',
+ '黕',
+ '𬘘',
+ ],
+ fū: [
+ '伕',
+ '呋',
+ '娐',
+ '孵',
+ '尃',
+ '怤',
+ '懯',
+ '敷',
+ '旉',
+ '玞',
+ '砆',
+ '稃',
+ '筟',
+ '糐',
+ '綒',
+ '肤',
+ '膚',
+ '荂',
+ '荴',
+ '衭',
+ '趺',
+ '跗',
+ '邞',
+ '鄜',
+ '酜',
+ '鈇',
+ '麩',
+ '麬',
+ '麱',
+ '麸',
+ '𫓧',
+ ],
+ tǎng: [
+ '伖',
+ '傥',
+ '儻',
+ '埫',
+ '戃',
+ '曭',
+ '爣',
+ '矘',
+ '躺',
+ '鎲',
+ '钂',
+ '镋',
+ ],
+ yōu: [
+ '优',
+ '優',
+ '呦',
+ '嚘',
+ '峳',
+ '幽',
+ '忧',
+ '悠',
+ '憂',
+ '攸',
+ '櫌',
+ '滺',
+ '瀀',
+ '纋',
+ '羪',
+ '耰',
+ '逌',
+ '鄾',
+ '麀',
+ ],
+ huǒ: ['伙', '夥', '火', '煷', '邩', '鈥', '钬'],
+ 'huì kuài': ['会', '會', '浍', '璯'],
+ yǔ: [
+ '伛',
+ '俁',
+ '俣',
+ '偊',
+ '傴',
+ '匬',
+ '噳',
+ '圄',
+ '圉',
+ '宇',
+ '寙',
+ '屿',
+ '嶼',
+ '庾',
+ '挧',
+ '敔',
+ '斞',
+ '楀',
+ '瑀',
+ '瘐',
+ '祤',
+ '禹',
+ '穥',
+ '窳',
+ '羽',
+ '與',
+ '萭',
+ '貐',
+ '鄅',
+ '頨',
+ '麌',
+ '齬',
+ '龉',
+ '㺄',
+ ],
+ cuì: [
+ '伜',
+ '啛',
+ '忰',
+ '悴',
+ '毳',
+ '淬',
+ '焠',
+ '疩',
+ '瘁',
+ '竁',
+ '粋',
+ '粹',
+ '紣',
+ '綷',
+ '翆',
+ '翠',
+ '脃',
+ '脆',
+ '脺',
+ '膬',
+ '膵',
+ '臎',
+ '萃',
+ '襊',
+ '顇',
+ ],
+ sǎn: ['伞', '傘', '糤', '繖', '饊', '馓'],
+ wěi: [
+ '伟',
+ '伪',
+ '偉',
+ '偽',
+ '僞',
+ '儰',
+ '娓',
+ '寪',
+ '屗',
+ '崣',
+ '嶉',
+ '徫',
+ '愇',
+ '捤',
+ '暐',
+ '梶',
+ '洧',
+ '浘',
+ '渨',
+ '炜',
+ '煒',
+ '猥',
+ '玮',
+ '瑋',
+ '痿',
+ '緯',
+ '纬',
+ '腲',
+ '艉',
+ '芛',
+ '苇',
+ '荱',
+ '萎',
+ '葦',
+ '蒍',
+ '蔿',
+ '蜼',
+ '諉',
+ '诿',
+ '踓',
+ '鍡',
+ '韑',
+ '韙',
+ '韡',
+ '韪',
+ '頠',
+ '颹',
+ '骩',
+ '骪',
+ '骫',
+ '鮪',
+ '鲔',
+ '𫇭',
+ '𬀩',
+ '𬱟',
+ ],
+ 'chuán zhuàn': ['传', '傳'],
+ 'chē jū': ['伡', '俥', '车'],
+ 'jū chē': ['車'],
+ yá: [
+ '伢',
+ '厑',
+ '厓',
+ '堐',
+ '岈',
+ '崕',
+ '崖',
+ '涯',
+ '漄',
+ '牙',
+ '玡',
+ '琊',
+ '睚',
+ '笌',
+ '芽',
+ '蚜',
+ '衙',
+ '齖',
+ ],
+ qiàn: [
+ '伣',
+ '俔',
+ '倩',
+ '儙',
+ '刋',
+ '壍',
+ '嬱',
+ '悓',
+ '棈',
+ '椠',
+ '槧',
+ '欠',
+ '歉',
+ '皘',
+ '篏',
+ '篟',
+ '縴',
+ '芡',
+ '蒨',
+ '蔳',
+ '輤',
+ '𬘬',
+ ],
+ shāng: [
+ '伤',
+ '傷',
+ '商',
+ '墒',
+ '慯',
+ '殇',
+ '殤',
+ '滳',
+ '漡',
+ '熵',
+ '蔏',
+ '螪',
+ '觞',
+ '觴',
+ '謪',
+ '鬺',
+ ],
+ chāng: [
+ '伥',
+ '倀',
+ '娼',
+ '昌',
+ '椙',
+ '淐',
+ '猖',
+ '琩',
+ '菖',
+ '裮',
+ '錩',
+ '锠',
+ '閶',
+ '阊',
+ '鯧',
+ '鲳',
+ '鼚',
+ ],
+ 'chen cāng': ['伧'],
+ xùn: [
+ '伨',
+ '侚',
+ '卂',
+ '噀',
+ '巺',
+ '巽',
+ '徇',
+ '愻',
+ '殉',
+ '殾',
+ '汛',
+ '潠',
+ '狥',
+ '蕈',
+ '訊',
+ '訓',
+ '訙',
+ '训',
+ '讯',
+ '迅',
+ '迿',
+ '逊',
+ '遜',
+ '鑂',
+ '顨',
+ '馴',
+ '驯',
+ ],
+ xìn: ['伩', '囟', '孞', '脪', '舋', '衅', '訫', '釁', '阠', '顖'],
+ chǐ: [
+ '伬',
+ '侈',
+ '卶',
+ '叺',
+ '呎',
+ '垑',
+ '恥',
+ '歯',
+ '耻',
+ '肔',
+ '胣',
+ '蚇',
+ '裭',
+ '褫',
+ '豉',
+ '鉹',
+ '齒',
+ '齿',
+ ],
+ 'xián xuán': ['伭'],
+ 'nú nǔ': ['伮'],
+ 'bó bǎi': ['伯'],
+ 'gū gù': ['估'],
+ nǐ: ['伱', '你', '儞', '孴', '拟', '擬', '旎', '晲', '狔', '苨', '薿', '隬'],
+ 'nì ní': ['伲'],
+ bàn: [
+ '伴',
+ '办',
+ '半',
+ '姅',
+ '怑',
+ '扮',
+ '瓣',
+ '秚',
+ '絆',
+ '绊',
+ '辦',
+ '鉡',
+ '靽',
+ ],
+ xù: [
+ '伵',
+ '侐',
+ '勖',
+ '勗',
+ '卹',
+ '叙',
+ '垿',
+ '壻',
+ '婿',
+ '序',
+ '恤',
+ '敍',
+ '敘',
+ '旭',
+ '昫',
+ '朂',
+ '槒',
+ '欰',
+ '殈',
+ '汿',
+ '沀',
+ '洫',
+ '溆',
+ '漵',
+ '潊',
+ '烅',
+ '烼',
+ '煦',
+ '獝',
+ '珬',
+ '盢',
+ '瞁',
+ '稸',
+ '絮',
+ '続',
+ '緒',
+ '緖',
+ '續',
+ '绪',
+ '续',
+ '聓',
+ '聟',
+ '蓄',
+ '藚',
+ '訹',
+ '賉',
+ '酗',
+ '頊',
+ '鱮',
+ '㳚',
+ ],
+ zhòu: [
+ '伷',
+ '僽',
+ '冑',
+ '呪',
+ '咒',
+ '咮',
+ '宙',
+ '昼',
+ '晝',
+ '甃',
+ '皱',
+ '皺',
+ '籀',
+ '籒',
+ '籕',
+ '粙',
+ '紂',
+ '縐',
+ '纣',
+ '绉',
+ '胄',
+ '荮',
+ '葤',
+ '詋',
+ '酎',
+ '駎',
+ '驟',
+ '骤',
+ '㤘',
+ '㑇',
+ ],
+ shēn: [
+ '伸',
+ '侁',
+ '兟',
+ '呻',
+ '堔',
+ '妽',
+ '娠',
+ '屾',
+ '峷',
+ '扟',
+ '敒',
+ '曑',
+ '柛',
+ '氠',
+ '深',
+ '燊',
+ '珅',
+ '甡',
+ '甧',
+ '申',
+ '眒',
+ '砷',
+ '穼',
+ '籶',
+ '籸',
+ '糂',
+ '紳',
+ '绅',
+ '罙',
+ '罧',
+ '葠',
+ '蓡',
+ '蔘',
+ '薓',
+ '裑',
+ '訷',
+ '詵',
+ '诜',
+ '身',
+ '駪',
+ '鯓',
+ '鯵',
+ '鰺',
+ '鲹',
+ '鵢',
+ '𬳽',
+ ],
+ qū: [
+ '伹',
+ '佉',
+ '匤',
+ '呿',
+ '坥',
+ '屈',
+ '岖',
+ '岴',
+ '嶇',
+ '憈',
+ '抾',
+ '敺',
+ '浀',
+ '煀',
+ '祛',
+ '筁',
+ '粬',
+ '胠',
+ '蛆',
+ '蛐',
+ '袪',
+ '覻',
+ '詘',
+ '诎',
+ '趍',
+ '躯',
+ '軀',
+ '阹',
+ '駆',
+ '駈',
+ '驅',
+ '驱',
+ '髷',
+ '魼',
+ '鰸',
+ '鱋',
+ '鶌',
+ '麯',
+ '麴',
+ '麹',
+ '黢',
+ '㭕',
+ '𪨰',
+ '䓛',
+ ],
+ 'sì cì': ['伺'],
+ bēng: ['伻', '嘣', '奟', '崩', '嵭', '閍'],
+ 'sì shì': ['似'],
+ 'jiā qié gā': ['伽'],
+ 'yǐ chì': ['佁'],
+ 'diàn tián': ['佃', '钿'],
+ 'hān gàn': ['佄'],
+ mài: [
+ '佅',
+ '劢',
+ '勱',
+ '卖',
+ '唛',
+ '売',
+ '脈',
+ '衇',
+ '賣',
+ '迈',
+ '邁',
+ '霡',
+ '霢',
+ '麥',
+ '麦',
+ '鿏',
+ ],
+ dàn: [
+ '但',
+ '僤',
+ '啖',
+ '啗',
+ '啿',
+ '噉',
+ '嚪',
+ '帎',
+ '憺',
+ '旦',
+ '柦',
+ '氮',
+ '沊',
+ '泹',
+ '淡',
+ '狚',
+ '疍',
+ '癚',
+ '禫',
+ '窞',
+ '腅',
+ '萏',
+ '蓞',
+ '蛋',
+ '蜑',
+ '觛',
+ '訑',
+ '誕',
+ '诞',
+ '贉',
+ '霮',
+ '餤',
+ '饏',
+ '駳',
+ '髧',
+ '鴠',
+ '𫢸',
+ ],
+ bù: [
+ '佈',
+ '勏',
+ '吥',
+ '咘',
+ '埗',
+ '埠',
+ '布',
+ '廍',
+ '怖',
+ '悑',
+ '步',
+ '歨',
+ '歩',
+ '瓿',
+ '篰',
+ '荹',
+ '蔀',
+ '踄',
+ '部',
+ '郶',
+ '鈈',
+ '钚',
+ '餢',
+ ],
+ bǐ: [
+ '佊',
+ '俾',
+ '匕',
+ '夶',
+ '妣',
+ '彼',
+ '朼',
+ '柀',
+ '比',
+ '毞',
+ '沘',
+ '疕',
+ '秕',
+ '笔',
+ '筆',
+ '粃',
+ '聛',
+ '舭',
+ '貏',
+ '鄙',
+ ],
+ 'zhāo shào': ['佋'],
+ cǐ: ['佌', '此', '泚', '皉', '𫚖'],
+ wèi: [
+ '位',
+ '卫',
+ '味',
+ '喂',
+ '墛',
+ '媦',
+ '慰',
+ '懀',
+ '未',
+ '渭',
+ '煟',
+ '熭',
+ '犚',
+ '猬',
+ '畏',
+ '緭',
+ '罻',
+ '胃',
+ '苿',
+ '菋',
+ '藯',
+ '蘶',
+ '蝟',
+ '螱',
+ '衛',
+ '衞',
+ '褽',
+ '謂',
+ '讆',
+ '讏',
+ '谓',
+ '躗',
+ '躛',
+ '軎',
+ '轊',
+ '鏏',
+ '霨',
+ '餧',
+ '餵',
+ '饖',
+ '魏',
+ '鮇',
+ '鳚',
+ ],
+ zuǒ: ['佐', '左', '繓'],
+ yǎng: [
+ '佒',
+ '傟',
+ '养',
+ '坱',
+ '岟',
+ '慃',
+ '懩',
+ '攁',
+ '氧',
+ '氱',
+ '炴',
+ '痒',
+ '癢',
+ '礢',
+ '紻',
+ '蝆',
+ '軮',
+ '養',
+ '駚',
+ ],
+ 'tǐ tī': ['体', '體'],
+ zhàn: [
+ '佔',
+ '偡',
+ '嶘',
+ '战',
+ '戦',
+ '戰',
+ '栈',
+ '桟',
+ '棧',
+ '湛',
+ '站',
+ '綻',
+ '绽',
+ '菚',
+ '蘸',
+ '虥',
+ '虦',
+ '譧',
+ '轏',
+ '驏',
+ ],
+ 'hé hē hè': ['何'],
+ bì: [
+ '佖',
+ '咇',
+ '哔',
+ '嗶',
+ '坒',
+ '堛',
+ '壁',
+ '奰',
+ '妼',
+ '婢',
+ '嬖',
+ '币',
+ '幣',
+ '幤',
+ '庇',
+ '庳',
+ '廦',
+ '弊',
+ '弻',
+ '弼',
+ '彃',
+ '必',
+ '怭',
+ '愊',
+ '愎',
+ '敝',
+ '斃',
+ '梐',
+ '毕',
+ '毖',
+ '毙',
+ '湢',
+ '滗',
+ '滭',
+ '潷',
+ '煏',
+ '熚',
+ '狴',
+ '獘',
+ '獙',
+ '珌',
+ '璧',
+ '畀',
+ '畢',
+ '疪',
+ '痹',
+ '痺',
+ '皕',
+ '睤',
+ '碧',
+ '筚',
+ '箅',
+ '箆',
+ '篦',
+ '篳',
+ '粊',
+ '綼',
+ '縪',
+ '繴',
+ '罼',
+ '腷',
+ '苾',
+ '荜',
+ '萆',
+ '萞',
+ '蓖',
+ '蓽',
+ '蔽',
+ '薜',
+ '蜌',
+ '袐',
+ '襅',
+ '襞',
+ '襣',
+ '觱',
+ '詖',
+ '诐',
+ '貱',
+ '贔',
+ '赑',
+ '跸',
+ '蹕',
+ '躃',
+ '躄',
+ '避',
+ '邲',
+ '鄨',
+ '鄪',
+ '鉍',
+ '鏎',
+ '鐴',
+ '铋',
+ '閇',
+ '閉',
+ '閟',
+ '闭',
+ '陛',
+ '韠',
+ '飶',
+ '饆',
+ '馝',
+ '駜',
+ '驆',
+ '髀',
+ '魓',
+ '鮅',
+ '鷝',
+ '鷩',
+ '鼊',
+ ],
+ tuó: [
+ '佗',
+ '坨',
+ '堶',
+ '岮',
+ '槖',
+ '橐',
+ '沱',
+ '砣',
+ '砤',
+ '碢',
+ '紽',
+ '詑',
+ '跎',
+ '酡',
+ '阤',
+ '陀',
+ '陁',
+ '駝',
+ '駞',
+ '騨',
+ '驒',
+ '驝',
+ '驼',
+ '鮀',
+ '鴕',
+ '鸵',
+ '鼉',
+ '鼍',
+ '鼧',
+ '𬶍',
+ ],
+ shé: ['佘', '舌', '虵', '蛥'],
+ 'yì dié': ['佚', '昳', '泆', '軼'],
+ 'fó fú bì bó': ['佛'],
+ 'zuò zuō': ['作'],
+ gōu: [
+ '佝',
+ '沟',
+ '溝',
+ '痀',
+ '篝',
+ '簼',
+ '緱',
+ '缑',
+ '袧',
+ '褠',
+ '鈎',
+ '鉤',
+ '钩',
+ '鞲',
+ '韝',
+ ],
+ nìng: ['佞', '侫', '倿', '寕', '泞', '澝', '濘'],
+ qú: [
+ '佢',
+ '劬',
+ '戵',
+ '斪',
+ '欋',
+ '欔',
+ '氍',
+ '淭',
+ '灈',
+ '爠',
+ '璖',
+ '璩',
+ '癯',
+ '磲',
+ '籧',
+ '絇',
+ '胊',
+ '臞',
+ '菃',
+ '葋',
+ '蕖',
+ '蘧',
+ '蟝',
+ '蠷',
+ '蠼',
+ '衐',
+ '衢',
+ '躣',
+ '軥',
+ '鑺',
+ '鴝',
+ '鸜',
+ '鸲',
+ '鼩',
+ ],
+ 'yōng yòng': ['佣'],
+ wǎ: ['佤', '咓', '砙', '邷'],
+ kǎ: ['佧', '垰', '胩', '裃', '鉲'],
+ bāo: [
+ '佨',
+ '勹',
+ '包',
+ '孢',
+ '煲',
+ '笣',
+ '胞',
+ '苞',
+ '蕔',
+ '裦',
+ '褒',
+ '襃',
+ '闁',
+ '齙',
+ '龅',
+ ],
+ 'huái huí': ['佪'],
+ 'gé hè': ['佫'],
+ lǎo: [
+ '佬',
+ '咾',
+ '恅',
+ '栳',
+ '狫',
+ '珯',
+ '硓',
+ '老',
+ '耂',
+ '荖',
+ '蛯',
+ '轑',
+ '銠',
+ '铑',
+ '鮱',
+ ],
+ xiáng: ['佭', '庠', '栙', '祥', '絴', '翔', '詳', '跭'],
+ gé: [
+ '佮',
+ '匌',
+ '呄',
+ '嗝',
+ '塥',
+ '愅',
+ '挌',
+ '搿',
+ '槅',
+ '櫊',
+ '滆',
+ '膈',
+ '臵',
+ '茖',
+ '觡',
+ '諽',
+ '輵',
+ '轕',
+ '閣',
+ '阁',
+ '隔',
+ '鞷',
+ '韐',
+ '韚',
+ '騔',
+ '骼',
+ '鮯',
+ ],
+ yáng: [
+ '佯',
+ '劷',
+ '垟',
+ '崸',
+ '徉',
+ '扬',
+ '揚',
+ '敭',
+ '旸',
+ '昜',
+ '暘',
+ '杨',
+ '楊',
+ '洋',
+ '炀',
+ '珜',
+ '疡',
+ '瘍',
+ '眻',
+ '蛘',
+ '諹',
+ '輰',
+ '鍚',
+ '钖',
+ '阦',
+ '阳',
+ '陽',
+ '霷',
+ '颺',
+ '飏',
+ '鰑',
+ '鴹',
+ '鸉',
+ ],
+ bǎi: ['佰', '捭', '摆', '擺', '栢', '百', '竡', '粨', '襬'],
+ fǎ: ['佱', '峜', '法', '灋', '砝', '鍅'],
+ mǐng: ['佲', '凕', '姳', '慏', '酩'],
+ 'èr nài': ['佴'],
+ hěn: ['佷', '很', '狠', '詪', '𬣳'],
+ huó: ['佸', '活'],
+ guǐ: [
+ '佹',
+ '匦',
+ '匭',
+ '厬',
+ '垝',
+ '姽',
+ '宄',
+ '庋',
+ '庪',
+ '恑',
+ '晷',
+ '湀',
+ '癸',
+ '祪',
+ '簋',
+ '蛫',
+ '蟡',
+ '觤',
+ '詭',
+ '诡',
+ '軌',
+ '轨',
+ '陒',
+ '鬼',
+ ],
+ quán: [
+ '佺',
+ '全',
+ '啳',
+ '埢',
+ '姾',
+ '峑',
+ '巏',
+ '拳',
+ '搼',
+ '权',
+ '楾',
+ '権',
+ '權',
+ '泉',
+ '洤',
+ '湶',
+ '牷',
+ '犈',
+ '瑔',
+ '痊',
+ '硂',
+ '筌',
+ '縓',
+ '荃',
+ '葲',
+ '蜷',
+ '蠸',
+ '觠',
+ '詮',
+ '诠',
+ '跧',
+ '踡',
+ '輇',
+ '辁',
+ '醛',
+ '銓',
+ '铨',
+ '闎',
+ '顴',
+ '颧',
+ '駩',
+ '騡',
+ '鬈',
+ '鰁',
+ '鳈',
+ '齤',
+ ],
+ tiāo: ['佻', '庣', '旫', '祧', '聎'],
+ jiǎo: [
+ '佼',
+ '儌',
+ '孂',
+ '挢',
+ '搅',
+ '撟',
+ '撹',
+ '攪',
+ '敫',
+ '敽',
+ '敿',
+ '晈',
+ '暞',
+ '曒',
+ '灚',
+ '燞',
+ '狡',
+ '璬',
+ '皎',
+ '皦',
+ '絞',
+ '纐',
+ '绞',
+ '腳',
+ '臫',
+ '蟜',
+ '譑',
+ '賋',
+ '踋',
+ '鉸',
+ '铰',
+ '餃',
+ '饺',
+ '鱎',
+ '龣',
+ ],
+ cì: [
+ '佽',
+ '刾',
+ '庛',
+ '朿',
+ '栨',
+ '次',
+ '絘',
+ '茦',
+ '莿',
+ '蛓',
+ '螆',
+ '賜',
+ '赐',
+ ],
+ xíng: [
+ '侀',
+ '刑',
+ '哘',
+ '型',
+ '娙',
+ '形',
+ '洐',
+ '硎',
+ '蛵',
+ '邢',
+ '郉',
+ '鈃',
+ '鉶',
+ '銒',
+ '钘',
+ '铏',
+ '陉',
+ '陘',
+ '餳',
+ '𫰛',
+ ],
+ tuō: [
+ '侂',
+ '咃',
+ '咜',
+ '圫',
+ '托',
+ '拕',
+ '拖',
+ '汑',
+ '脫',
+ '脱',
+ '莌',
+ '袥',
+ '託',
+ '讬',
+ '飥',
+ '饦',
+ '魠',
+ '鮵',
+ ],
+ kǎn: ['侃', '偘', '冚', '坎', '惂', '砍', '莰', '輡', '轗', '顑'],
+ zhí: [
+ '侄',
+ '値',
+ '值',
+ '埴',
+ '執',
+ '姪',
+ '嬂',
+ '戠',
+ '执',
+ '摭',
+ '植',
+ '樴',
+ '淔',
+ '漐',
+ '直',
+ '禃',
+ '絷',
+ '縶',
+ '聀',
+ '职',
+ '職',
+ '膱',
+ '蟙',
+ '跖',
+ '踯',
+ '蹠',
+ '躑',
+ '軄',
+ '釞',
+ '馽',
+ ],
+ gāi: [
+ '侅',
+ '垓',
+ '姟',
+ '峐',
+ '晐',
+ '畡',
+ '祴',
+ '荄',
+ '該',
+ '该',
+ '豥',
+ '賅',
+ '賌',
+ '赅',
+ '陔',
+ ],
+ lái: [
+ '來',
+ '俫',
+ '倈',
+ '崃',
+ '崍',
+ '庲',
+ '来',
+ '梾',
+ '棶',
+ '涞',
+ '淶',
+ '猍',
+ '琜',
+ '筙',
+ '箂',
+ '莱',
+ '萊',
+ '逨',
+ '郲',
+ '錸',
+ '铼',
+ '騋',
+ '鯠',
+ '鶆',
+ '麳',
+ ],
+ kuǎ: ['侉', '咵', '垮', '銙'],
+ gōng: [
+ '侊',
+ '公',
+ '功',
+ '匑',
+ '匔',
+ '塨',
+ '宫',
+ '宮',
+ '工',
+ '幊',
+ '弓',
+ '恭',
+ '攻',
+ '杛',
+ '碽',
+ '糼',
+ '糿',
+ '肱',
+ '觥',
+ '觵',
+ '躬',
+ '躳',
+ '髸',
+ '龔',
+ '龚',
+ '䢼',
+ ],
+ lì: [
+ '例',
+ '俐',
+ '俪',
+ '傈',
+ '儮',
+ '儷',
+ '凓',
+ '利',
+ '力',
+ '励',
+ '勵',
+ '历',
+ '厉',
+ '厤',
+ '厯',
+ '厲',
+ '叓',
+ '吏',
+ '呖',
+ '唎',
+ '唳',
+ '嚦',
+ '囇',
+ '坜',
+ '塛',
+ '壢',
+ '娳',
+ '婯',
+ '屴',
+ '岦',
+ '悧',
+ '悷',
+ '慄',
+ '戾',
+ '搮',
+ '暦',
+ '曆',
+ '曞',
+ '朸',
+ '枥',
+ '栃',
+ '栗',
+ '栛',
+ '檪',
+ '櫔',
+ '櫪',
+ '欐',
+ '歴',
+ '歷',
+ '沥',
+ '沴',
+ '涖',
+ '溧',
+ '濿',
+ '瀝',
+ '爏',
+ '犡',
+ '猁',
+ '珕',
+ '瑮',
+ '瓅',
+ '瓑',
+ '瓥',
+ '疬',
+ '痢',
+ '癧',
+ '盭',
+ '睙',
+ '砅',
+ '砺',
+ '砾',
+ '磿',
+ '礪',
+ '礫',
+ '礰',
+ '禲',
+ '秝',
+ '立',
+ '笠',
+ '篥',
+ '粒',
+ '粝',
+ '糲',
+ '脷',
+ '苈',
+ '茘',
+ '荔',
+ '莅',
+ '莉',
+ '蒚',
+ '蒞',
+ '藶',
+ '蚸',
+ '蛎',
+ '蛠',
+ '蜧',
+ '蝷',
+ '蠇',
+ '蠣',
+ '詈',
+ '讈',
+ '赲',
+ '轢',
+ '轣',
+ '轹',
+ '酈',
+ '鉝',
+ '隶',
+ '隷',
+ '雳',
+ '靂',
+ '靋',
+ '鬁',
+ '鳨',
+ '鴗',
+ '鷅',
+ '麜',
+ '𫵷',
+ '𬍛',
+ ],
+ yīn: [
+ '侌',
+ '凐',
+ '喑',
+ '噾',
+ '囙',
+ '因',
+ '垔',
+ '堙',
+ '姻',
+ '婣',
+ '愔',
+ '慇',
+ '栶',
+ '氤',
+ '洇',
+ '溵',
+ '濦',
+ '瘖',
+ '禋',
+ '秵',
+ '筃',
+ '絪',
+ '緸',
+ '茵',
+ '蒑',
+ '蔭',
+ '裀',
+ '諲',
+ '銦',
+ '铟',
+ '闉',
+ '阥',
+ '阴',
+ '陰',
+ '陻',
+ '隂',
+ '霒',
+ '霠',
+ '鞇',
+ '音',
+ '韾',
+ '駰',
+ '骃',
+ '齗',
+ '𬘡',
+ '𬤇',
+ '𬮱',
+ ],
+ mǐ: [
+ '侎',
+ '孊',
+ '弭',
+ '敉',
+ '洣',
+ '渳',
+ '灖',
+ '米',
+ '粎',
+ '羋',
+ '脒',
+ '芈',
+ '葞',
+ '蔝',
+ '銤',
+ ],
+ zhū: [
+ '侏',
+ '株',
+ '槠',
+ '橥',
+ '櫧',
+ '櫫',
+ '洙',
+ '潴',
+ '瀦',
+ '猪',
+ '珠',
+ '硃',
+ '秼',
+ '絑',
+ '茱',
+ '蕏',
+ '蛛',
+ '蝫',
+ '蠩',
+ '袾',
+ '誅',
+ '諸',
+ '诛',
+ '诸',
+ '豬',
+ '跦',
+ '邾',
+ '銖',
+ '铢',
+ '駯',
+ '鮢',
+ '鯺',
+ '鴸',
+ '鼄',
+ ],
+ ān: [
+ '侒',
+ '偣',
+ '媕',
+ '安',
+ '峖',
+ '庵',
+ '桉',
+ '氨',
+ '盦',
+ '盫',
+ '腤',
+ '菴',
+ '萻',
+ '葊',
+ '蓭',
+ '誝',
+ '諳',
+ '谙',
+ '鞌',
+ '鞍',
+ '韽',
+ '馣',
+ '鮟',
+ '鵪',
+ '鶕',
+ '鹌',
+ '𩽾',
+ ],
+ lù: [
+ '侓',
+ '僇',
+ '勎',
+ '勠',
+ '圥',
+ '坴',
+ '塶',
+ '娽',
+ '峍',
+ '廘',
+ '彔',
+ '录',
+ '戮',
+ '摝',
+ '椂',
+ '樚',
+ '淕',
+ '淥',
+ '渌',
+ '漉',
+ '潞',
+ '琭',
+ '璐',
+ '甪',
+ '盝',
+ '睩',
+ '硉',
+ '祿',
+ '禄',
+ '稑',
+ '穋',
+ '箓',
+ '簏',
+ '簬',
+ '簵',
+ '簶',
+ '籙',
+ '粶',
+ '蔍',
+ '蕗',
+ '虂',
+ '螰',
+ '賂',
+ '赂',
+ '趢',
+ '路',
+ '踛',
+ '蹗',
+ '輅',
+ '轆',
+ '辂',
+ '辘',
+ '逯',
+ '醁',
+ '錄',
+ '録',
+ '錴',
+ '鏴',
+ '陸',
+ '騄',
+ '騼',
+ '鯥',
+ '鴼',
+ '鵦',
+ '鵱',
+ '鷺',
+ '鹭',
+ '鹿',
+ '麓',
+ '𫘧',
+ ],
+ móu: ['侔', '劺', '恈', '眸', '蛑', '謀', '谋', '踎', '鍪', '鴾', '麰'],
+ ér: [
+ '侕',
+ '儿',
+ '児',
+ '兒',
+ '峏',
+ '栭',
+ '洏',
+ '粫',
+ '而',
+ '胹',
+ '荋',
+ '袻',
+ '輀',
+ '轜',
+ '陑',
+ '隭',
+ '髵',
+ '鮞',
+ '鲕',
+ '鴯',
+ '鸸',
+ ],
+ 'dòng tǒng tóng': ['侗'],
+ chà: ['侘', '奼', '姹', '岔', '汊', '詫', '诧'],
+ chì: [
+ '侙',
+ '傺',
+ '勅',
+ '勑',
+ '叱',
+ '啻',
+ '彳',
+ '恜',
+ '慗',
+ '憏',
+ '懘',
+ '抶',
+ '敕',
+ '斥',
+ '杘',
+ '湁',
+ '灻',
+ '炽',
+ '烾',
+ '熾',
+ '痓',
+ '痸',
+ '瘛',
+ '翄',
+ '翅',
+ '翤',
+ '翨',
+ '腟',
+ '赤',
+ '趩',
+ '遫',
+ '鉓',
+ '雴',
+ '飭',
+ '饬',
+ '鶒',
+ '鷘',
+ ],
+ 'gòng gōng': ['供', '共'],
+ zhōu: [
+ '侜',
+ '周',
+ '喌',
+ '州',
+ '徟',
+ '洲',
+ '淍',
+ '炿',
+ '烐',
+ '珘',
+ '矪',
+ '舟',
+ '謅',
+ '譸',
+ '诌',
+ '賙',
+ '赒',
+ '輈',
+ '輖',
+ '辀',
+ '週',
+ '郮',
+ '銂',
+ '霌',
+ '駲',
+ '騆',
+ '鵃',
+ '鸼',
+ ],
+ rú: [
+ '侞',
+ '儒',
+ '嚅',
+ '如',
+ '嬬',
+ '孺',
+ '帤',
+ '曘',
+ '桇',
+ '渪',
+ '濡',
+ '筎',
+ '茹',
+ '蕠',
+ '薷',
+ '蝡',
+ '蠕',
+ '袽',
+ '襦',
+ '邚',
+ '醹',
+ '銣',
+ '铷',
+ '顬',
+ '颥',
+ '鱬',
+ '鴑',
+ '鴽',
+ ],
+ 'jiàn cún': ['侟'],
+ xiá: [
+ '侠',
+ '俠',
+ '匣',
+ '峡',
+ '峽',
+ '敮',
+ '暇',
+ '柙',
+ '炠',
+ '烚',
+ '狎',
+ '狭',
+ '狹',
+ '珨',
+ '瑕',
+ '硖',
+ '硤',
+ '碬',
+ '祫',
+ '筪',
+ '縖',
+ '翈',
+ '舝',
+ '舺',
+ '蕸',
+ '赮',
+ '轄',
+ '辖',
+ '遐',
+ '鍜',
+ '鎋',
+ '陜',
+ '陿',
+ '霞',
+ '騢',
+ '魻',
+ '鶷',
+ '黠',
+ ],
+ lǚ: [
+ '侣',
+ '侶',
+ '儢',
+ '吕',
+ '呂',
+ '屡',
+ '屢',
+ '履',
+ '挔',
+ '捛',
+ '旅',
+ '梠',
+ '焒',
+ '祣',
+ '稆',
+ '穭',
+ '絽',
+ '縷',
+ '缕',
+ '膂',
+ '膐',
+ '褛',
+ '褸',
+ '郘',
+ '鋁',
+ '铝',
+ ],
+ ta: ['侤'],
+ 'jiǎo yáo': ['侥', '僥', '徺'],
+ zhēn: [
+ '侦',
+ '偵',
+ '寊',
+ '帧',
+ '帪',
+ '幀',
+ '搸',
+ '斟',
+ '桢',
+ '楨',
+ '榛',
+ '樼',
+ '殝',
+ '浈',
+ '湞',
+ '潧',
+ '澵',
+ '獉',
+ '珍',
+ '珎',
+ '瑧',
+ '甄',
+ '眞',
+ '真',
+ '砧',
+ '碪',
+ '祯',
+ '禎',
+ '禛',
+ '箴',
+ '胗',
+ '臻',
+ '葴',
+ '蒖',
+ '蓁',
+ '薽',
+ '貞',
+ '贞',
+ '轃',
+ '遉',
+ '酙',
+ '針',
+ '鉁',
+ '錱',
+ '鍼',
+ '针',
+ '鱵',
+ ],
+ 'cè zè zhāi': ['侧', '側'],
+ kuài: [
+ '侩',
+ '儈',
+ '凷',
+ '哙',
+ '噲',
+ '圦',
+ '块',
+ '塊',
+ '巜',
+ '廥',
+ '快',
+ '旝',
+ '欳',
+ '狯',
+ '獪',
+ '筷',
+ '糩',
+ '脍',
+ '膾',
+ '郐',
+ '鄶',
+ '鱠',
+ '鲙',
+ ],
+ chái: ['侪', '儕', '喍', '柴', '犲', '祡', '豺'],
+ nóng: [
+ '侬',
+ '儂',
+ '农',
+ '哝',
+ '噥',
+ '檂',
+ '欁',
+ '浓',
+ '濃',
+ '燶',
+ '禯',
+ '秾',
+ '穠',
+ '脓',
+ '膿',
+ '蕽',
+ '襛',
+ '譨',
+ '農',
+ '辳',
+ '醲',
+ '鬞',
+ '𬪩',
+ ],
+ jǐn: [
+ '侭',
+ '儘',
+ '卺',
+ '厪',
+ '巹',
+ '槿',
+ '漌',
+ '瑾',
+ '紧',
+ '緊',
+ '菫',
+ '蓳',
+ '謹',
+ '谨',
+ '錦',
+ '锦',
+ '饉',
+ '馑',
+ ],
+ 'hóu hòu': ['侯', '矦'],
+ jiǒng: [
+ '侰',
+ '僒',
+ '冏',
+ '囧',
+ '泂',
+ '澃',
+ '炯',
+ '烱',
+ '煚',
+ '煛',
+ '熲',
+ '燛',
+ '窘',
+ '綗',
+ '褧',
+ '迥',
+ '逈',
+ '顈',
+ '颎',
+ '䌹',
+ ],
+ 'chěng tǐng': ['侱'],
+ 'zhèn zhēn': ['侲', '揕'],
+ zuò: [
+ '侳',
+ '做',
+ '唑',
+ '坐',
+ '岝',
+ '岞',
+ '座',
+ '祚',
+ '糳',
+ '胙',
+ '葃',
+ '葄',
+ '蓙',
+ '袏',
+ '阼',
+ ],
+ qīn: [
+ '侵',
+ '兓',
+ '媇',
+ '嵚',
+ '嶔',
+ '欽',
+ '衾',
+ '誛',
+ '钦',
+ '顉',
+ '駸',
+ '骎',
+ '鮼',
+ ],
+ jú: [
+ '侷',
+ '啹',
+ '婅',
+ '局',
+ '巈',
+ '椈',
+ '橘',
+ '泦',
+ '淗',
+ '湨',
+ '焗',
+ '犑',
+ '狊',
+ '粷',
+ '菊',
+ '蘜',
+ '趜',
+ '跼',
+ '蹫',
+ '輂',
+ '郹',
+ '閰',
+ '駶',
+ '驧',
+ '鵙',
+ '鵴',
+ '鶪',
+ '鼰',
+ '鼳',
+ '䴗',
+ ],
+ 'shù dōu': ['侸'],
+ tǐng: [
+ '侹',
+ '圢',
+ '娗',
+ '挺',
+ '涏',
+ '烶',
+ '珽',
+ '脡',
+ '艇',
+ '誔',
+ '頲',
+ '颋',
+ ],
+ shèn: [
+ '侺',
+ '愼',
+ '慎',
+ '昚',
+ '涁',
+ '渗',
+ '滲',
+ '瘆',
+ '瘮',
+ '眘',
+ '祳',
+ '肾',
+ '胂',
+ '脤',
+ '腎',
+ '蜃',
+ '蜄',
+ '鋠',
+ ],
+ 'tuì tuó': ['侻'],
+ nán: [
+ '侽',
+ '喃',
+ '娚',
+ '抩',
+ '暔',
+ '枏',
+ '柟',
+ '楠',
+ '男',
+ '畘',
+ '莮',
+ '萳',
+ '遖',
+ ],
+ xiāo: [
+ '侾',
+ '哓',
+ '嘵',
+ '嚻',
+ '囂',
+ '婋',
+ '宯',
+ '宵',
+ '庨',
+ '彇',
+ '揱',
+ '枭',
+ '枵',
+ '梟',
+ '櫹',
+ '歊',
+ '毊',
+ '消',
+ '潇',
+ '瀟',
+ '灱',
+ '灲',
+ '烋',
+ '焇',
+ '猇',
+ '獢',
+ '痚',
+ '痟',
+ '硝',
+ '硣',
+ '窙',
+ '箫',
+ '簘',
+ '簫',
+ '綃',
+ '绡',
+ '翛',
+ '膮',
+ '萧',
+ '蕭',
+ '虈',
+ '虓',
+ '蟂',
+ '蟏',
+ '蟰',
+ '蠨',
+ '踃',
+ '逍',
+ '銷',
+ '销',
+ '霄',
+ '颵',
+ '驍',
+ '骁',
+ '髇',
+ '髐',
+ '魈',
+ '鴞',
+ '鴵',
+ '鷍',
+ '鸮',
+ ],
+ 'biàn pián': ['便', '緶', '缏'],
+ tuǐ: ['俀', '腿', '蹆', '骽'],
+ xì: [
+ '係',
+ '匸',
+ '卌',
+ '呬',
+ '墍',
+ '屃',
+ '屓',
+ '屭',
+ '忥',
+ '怬',
+ '恄',
+ '椞',
+ '潝',
+ '潟',
+ '澙',
+ '熂',
+ '犔',
+ '磶',
+ '禊',
+ '細',
+ '綌',
+ '縘',
+ '细',
+ '绤',
+ '舃',
+ '舄',
+ '蕮',
+ '虩',
+ '衋',
+ '覤',
+ '赩',
+ '趇',
+ '郤',
+ '釳',
+ '阋',
+ '隙',
+ '隟',
+ '霼',
+ '餼',
+ '饩',
+ '鬩',
+ '黖',
+ ],
+ cù: [
+ '促',
+ '媨',
+ '憱',
+ '猝',
+ '瘄',
+ '瘯',
+ '簇',
+ '縬',
+ '脨',
+ '蔟',
+ '誎',
+ '趗',
+ '踧',
+ '踿',
+ '蹙',
+ '蹴',
+ '蹵',
+ '醋',
+ '顣',
+ '鼀',
+ ],
+ é: [
+ '俄',
+ '囮',
+ '娥',
+ '峉',
+ '峨',
+ '峩',
+ '涐',
+ '珴',
+ '皒',
+ '睋',
+ '磀',
+ '莪',
+ '訛',
+ '誐',
+ '譌',
+ '讹',
+ '迗',
+ '鈋',
+ '鋨',
+ '锇',
+ '頟',
+ '額',
+ '额',
+ '魤',
+ '鵝',
+ '鵞',
+ '鹅',
+ ],
+ qiú: [
+ '俅',
+ '叴',
+ '唒',
+ '囚',
+ '崷',
+ '巯',
+ '巰',
+ '扏',
+ '梂',
+ '殏',
+ '毬',
+ '求',
+ '汓',
+ '泅',
+ '浗',
+ '湭',
+ '煪',
+ '犰',
+ '玌',
+ '球',
+ '璆',
+ '皳',
+ '盚',
+ '紌',
+ '絿',
+ '肍',
+ '芁',
+ '莍',
+ '虬',
+ '虯',
+ '蛷',
+ '裘',
+ '觓',
+ '觩',
+ '訄',
+ '訅',
+ '賕',
+ '赇',
+ '逎',
+ '逑',
+ '遒',
+ '酋',
+ '釚',
+ '釻',
+ '銶',
+ '頄',
+ '鮂',
+ '鯄',
+ '鰽',
+ '鼽',
+ '𨱇',
+ ],
+ xú: ['俆', '徐', '禑'],
+ 'guàng kuāng': ['俇'],
+ kù: [
+ '俈',
+ '喾',
+ '嚳',
+ '库',
+ '庫',
+ '廤',
+ '瘔',
+ '絝',
+ '绔',
+ '袴',
+ '裤',
+ '褲',
+ '酷',
+ ],
+ wù: [
+ '俉',
+ '务',
+ '務',
+ '勿',
+ '卼',
+ '坞',
+ '塢',
+ '奦',
+ '婺',
+ '寤',
+ '屼',
+ '岉',
+ '嵨',
+ '忢',
+ '悞',
+ '悟',
+ '悮',
+ '戊',
+ '扤',
+ '晤',
+ '杌',
+ '溩',
+ '焐',
+ '熃',
+ '物',
+ '痦',
+ '矹',
+ '窹',
+ '粅',
+ '蘁',
+ '誤',
+ '误',
+ '鋈',
+ '阢',
+ '隖',
+ '雾',
+ '霚',
+ '霧',
+ '靰',
+ '騖',
+ '骛',
+ '鶩',
+ '鹜',
+ '鼿',
+ '齀',
+ ],
+ jùn: [
+ '俊',
+ '儁',
+ '呁',
+ '埈',
+ '寯',
+ '峻',
+ '懏',
+ '捃',
+ '攟',
+ '晙',
+ '棞',
+ '燇',
+ '珺',
+ '畯',
+ '竣',
+ '箟',
+ '蜠',
+ '賐',
+ '郡',
+ '陖',
+ '餕',
+ '馂',
+ '駿',
+ '骏',
+ '鵔',
+ '鵕',
+ '鵘',
+ '䐃',
+ ],
+ liáng: [
+ '俍',
+ '墚',
+ '梁',
+ '椋',
+ '樑',
+ '粮',
+ '粱',
+ '糧',
+ '良',
+ '輬',
+ '辌',
+ '𫟅',
+ ],
+ zǔ: ['俎', '唨', '爼', '祖', '組', '组', '詛', '诅', '鎺', '阻', '靻'],
+ 'qiào xiào': ['俏'],
+ yǒng: [
+ '俑',
+ '勇',
+ '勈',
+ '咏',
+ '埇',
+ '塎',
+ '嵱',
+ '彮',
+ '怺',
+ '恿',
+ '悀',
+ '惥',
+ '愑',
+ '愹',
+ '慂',
+ '柡',
+ '栐',
+ '永',
+ '泳',
+ '湧',
+ '甬',
+ '蛹',
+ '詠',
+ '踊',
+ '踴',
+ '鯒',
+ '鲬',
+ ],
+ hùn: ['俒', '倱', '圂', '尡', '慁', '掍', '溷', '焝', '睴', '觨', '諢', '诨'],
+ jìng: [
+ '俓',
+ '傹',
+ '境',
+ '妌',
+ '婙',
+ '婧',
+ '弪',
+ '弳',
+ '径',
+ '徑',
+ '敬',
+ '曔',
+ '桱',
+ '梷',
+ '浄',
+ '瀞',
+ '獍',
+ '痉',
+ '痙',
+ '竞',
+ '竟',
+ '竫',
+ '競',
+ '竸',
+ '胫',
+ '脛',
+ '莖',
+ '誩',
+ '踁',
+ '迳',
+ '逕',
+ '鏡',
+ '镜',
+ '靖',
+ '静',
+ '靜',
+ '鵛',
+ ],
+ sàn: ['俕', '閐'],
+ pěi: ['俖'],
+ sú: ['俗'],
+ xī: [
+ '俙',
+ '僖',
+ '兮',
+ '凞',
+ '卥',
+ '厀',
+ '吸',
+ '唏',
+ '唽',
+ '嘻',
+ '噏',
+ '嚱',
+ '夕',
+ '奚',
+ '嬆',
+ '嬉',
+ '屖',
+ '嵠',
+ '巇',
+ '希',
+ '徆',
+ '徯',
+ '息',
+ '悉',
+ '悕',
+ '惁',
+ '惜',
+ '昔',
+ '晞',
+ '晰',
+ '晳',
+ '曦',
+ '析',
+ '桸',
+ '榽',
+ '樨',
+ '橀',
+ '欷',
+ '氥',
+ '汐',
+ '浠',
+ '淅',
+ '渓',
+ '溪',
+ '烯',
+ '焁',
+ '焈',
+ '焟',
+ '熄',
+ '熈',
+ '熙',
+ '熹',
+ '熺',
+ '熻',
+ '燨',
+ '爔',
+ '牺',
+ '犀',
+ '犠',
+ '犧',
+ '琋',
+ '瘜',
+ '皙',
+ '睎',
+ '瞦',
+ '矽',
+ '硒',
+ '磎',
+ '礂',
+ '稀',
+ '穸',
+ '窸',
+ '粞',
+ '糦',
+ '緆',
+ '繥',
+ '羲',
+ '翕',
+ '翖',
+ '肸',
+ '肹',
+ '膝',
+ '舾',
+ '莃',
+ '菥',
+ '蒠',
+ '蜥',
+ '螅',
+ '蟋',
+ '蠵',
+ '西',
+ '觹',
+ '觽',
+ '觿',
+ '譆',
+ '谿',
+ '豀',
+ '豨',
+ '豯',
+ '貕',
+ '赥',
+ '邜',
+ '鄎',
+ '酅',
+ '醯',
+ '釸',
+ '錫',
+ '鏭',
+ '鐊',
+ '鑴',
+ '锡',
+ '隵',
+ '餏',
+ '饎',
+ '饻',
+ '鯑',
+ '鵗',
+ '鸂',
+ '鼷',
+ ],
+ lǐ: [
+ '俚',
+ '娌',
+ '峢',
+ '峲',
+ '李',
+ '欚',
+ '浬',
+ '澧',
+ '理',
+ '礼',
+ '禮',
+ '粴',
+ '裏',
+ '裡',
+ '豊',
+ '逦',
+ '邐',
+ '醴',
+ '鋰',
+ '锂',
+ '鯉',
+ '鱧',
+ '鱱',
+ '鲤',
+ '鳢',
+ ],
+ bǎo: [
+ '保',
+ '堢',
+ '媬',
+ '宝',
+ '寚',
+ '寳',
+ '寶',
+ '珤',
+ '緥',
+ '葆',
+ '藵',
+ '褓',
+ '賲',
+ '靌',
+ '飹',
+ '飽',
+ '饱',
+ '駂',
+ '鳵',
+ '鴇',
+ '鸨',
+ ],
+ 'yú shù yù': ['俞'],
+ 'sì qí': ['俟'],
+ 'xìn shēn': ['信'],
+ xiū: [
+ '俢',
+ '修',
+ '咻',
+ '庥',
+ '樇',
+ '烌',
+ '羞',
+ '脙',
+ '脩',
+ '臹',
+ '貅',
+ '銝',
+ '鎀',
+ '飍',
+ '饈',
+ '馐',
+ '髤',
+ '髹',
+ '鮴',
+ '鱃',
+ '鵂',
+ '鸺',
+ '䗛',
+ ],
+ dì: [
+ '俤',
+ '偙',
+ '僀',
+ '埊',
+ '墑',
+ '墬',
+ '娣',
+ '帝',
+ '怟',
+ '旳',
+ '梊',
+ '焍',
+ '玓',
+ '甋',
+ '眱',
+ '睇',
+ '碲',
+ '祶',
+ '禘',
+ '第',
+ '締',
+ '缔',
+ '腣',
+ '菂',
+ '蒂',
+ '蔕',
+ '蝃',
+ '蝭',
+ '螮',
+ '諦',
+ '谛',
+ '踶',
+ '递',
+ '逓',
+ '遞',
+ '遰',
+ '鉪',
+ '𤧛',
+ '䗖',
+ ],
+ chóu: [
+ '俦',
+ '儔',
+ '嬦',
+ '惆',
+ '愁',
+ '懤',
+ '栦',
+ '燽',
+ '畴',
+ '疇',
+ '皗',
+ '稠',
+ '筹',
+ '籌',
+ '絒',
+ '綢',
+ '绸',
+ '菗',
+ '詶',
+ '讎',
+ '讐',
+ '踌',
+ '躊',
+ '酧',
+ '酬',
+ '醻',
+ '雔',
+ '雠',
+ '雦',
+ ],
+ zhì: [
+ '俧',
+ '偫',
+ '儨',
+ '制',
+ '劕',
+ '垁',
+ '娡',
+ '寘',
+ '帙',
+ '帜',
+ '幟',
+ '庢',
+ '庤',
+ '廌',
+ '彘',
+ '徏',
+ '徝',
+ '志',
+ '忮',
+ '懥',
+ '懫',
+ '挃',
+ '挚',
+ '掷',
+ '摯',
+ '擲',
+ '旘',
+ '晊',
+ '智',
+ '栉',
+ '桎',
+ '梽',
+ '櫍',
+ '櫛',
+ '治',
+ '洷',
+ '滍',
+ '滞',
+ '滯',
+ '潌',
+ '瀄',
+ '炙',
+ '熫',
+ '狾',
+ '猘',
+ '璏',
+ '瓆',
+ '痔',
+ '痣',
+ '礩',
+ '祑',
+ '秩',
+ '秷',
+ '稚',
+ '稺',
+ '穉',
+ '窒',
+ '紩',
+ '緻',
+ '置',
+ '翐',
+ '膣',
+ '至',
+ '致',
+ '芖',
+ '蛭',
+ '袟',
+ '袠',
+ '製',
+ '覟',
+ '觗',
+ '觯',
+ '觶',
+ '誌',
+ '豑',
+ '豒',
+ '貭',
+ '質',
+ '贄',
+ '质',
+ '贽',
+ '跱',
+ '踬',
+ '躓',
+ '輊',
+ '轾',
+ '郅',
+ '銍',
+ '鋕',
+ '鑕',
+ '铚',
+ '锧',
+ '陟',
+ '隲',
+ '雉',
+ '駤',
+ '騭',
+ '騺',
+ '驇',
+ '骘',
+ '鯯',
+ '鴙',
+ '鷙',
+ '鸷',
+ '𬃊',
+ ],
+ 'liǎ liǎng': ['俩'],
+ jiǎn: [
+ '俭',
+ '倹',
+ '儉',
+ '减',
+ '剪',
+ '堿',
+ '弿',
+ '彅',
+ '戩',
+ '戬',
+ '拣',
+ '挸',
+ '捡',
+ '揀',
+ '撿',
+ '枧',
+ '柬',
+ '梘',
+ '检',
+ '検',
+ '檢',
+ '減',
+ '湕',
+ '瀽',
+ '瑐',
+ '睑',
+ '瞼',
+ '硷',
+ '碱',
+ '礆',
+ '笕',
+ '筧',
+ '简',
+ '簡',
+ '絸',
+ '繭',
+ '翦',
+ '茧',
+ '藆',
+ '蠒',
+ '裥',
+ '襇',
+ '襉',
+ '襺',
+ '詃',
+ '謇',
+ '謭',
+ '譾',
+ '谫',
+ '趼',
+ '蹇',
+ '鐗',
+ '鬋',
+ '鰎',
+ '鹸',
+ '鹻',
+ '鹼',
+ ],
+ huò: [
+ '俰',
+ '咟',
+ '嚯',
+ '嚿',
+ '奯',
+ '彠',
+ '惑',
+ '或',
+ '擭',
+ '旤',
+ '曤',
+ '檴',
+ '沎',
+ '湱',
+ '瀖',
+ '獲',
+ '癨',
+ '眓',
+ '矐',
+ '祸',
+ '禍',
+ '穫',
+ '窢',
+ '耯',
+ '臛',
+ '艧',
+ '获',
+ '蒦',
+ '藿',
+ '蠖',
+ '謋',
+ '貨',
+ '货',
+ '鍃',
+ '鑊',
+ '镬',
+ '雘',
+ '霍',
+ '靃',
+ '韄',
+ '㸌',
+ ],
+ 'jù jū': ['俱', '据', '鋸', '锯'],
+ xiào: [
+ '俲',
+ '傚',
+ '効',
+ '咲',
+ '哮',
+ '啸',
+ '嘋',
+ '嘨',
+ '嘯',
+ '孝',
+ '效',
+ '斅',
+ '斆',
+ '歗',
+ '涍',
+ '熽',
+ '笑',
+ '詨',
+ '誟',
+ ],
+ pái: ['俳', '徘', '牌', '犤', '猅', '簰', '簲', '輫'],
+ biào: ['俵', '鰾', '鳔'],
+ 'chù tì': ['俶'],
+ fèi: [
+ '俷',
+ '剕',
+ '厞',
+ '吠',
+ '屝',
+ '废',
+ '廃',
+ '廢',
+ '昲',
+ '曊',
+ '櫠',
+ '沸',
+ '濷',
+ '狒',
+ '癈',
+ '肺',
+ '萉',
+ '費',
+ '费',
+ '鐨',
+ '镄',
+ '陫',
+ '靅',
+ '鼣',
+ ],
+ fèng: ['俸', '凤', '奉', '湗', '焨', '煈', '賵', '赗', '鳯', '鳳', '鴌'],
+ ǎn: ['俺', '唵', '埯', '揞', '罯', '銨', '铵'],
+ bèi: [
+ '俻',
+ '倍',
+ '偝',
+ '偹',
+ '備',
+ '僃',
+ '备',
+ '悖',
+ '惫',
+ '愂',
+ '憊',
+ '昁',
+ '梖',
+ '焙',
+ '牬',
+ '犕',
+ '狈',
+ '狽',
+ '珼',
+ '琲',
+ '碚',
+ '禙',
+ '糒',
+ '苝',
+ '蓓',
+ '蛽',
+ '褙',
+ '貝',
+ '贝',
+ '軰',
+ '輩',
+ '辈',
+ '邶',
+ '郥',
+ '鄁',
+ '鋇',
+ '鐾',
+ '钡',
+ '鞁',
+ '鞴',
+ '𬇙',
+ ],
+ yù: [
+ '俼',
+ '儥',
+ '喅',
+ '喩',
+ '喻',
+ '域',
+ '堉',
+ '妪',
+ '嫗',
+ '寓',
+ '峪',
+ '嶎',
+ '庽',
+ '彧',
+ '御',
+ '愈',
+ '慾',
+ '戫',
+ '昱',
+ '棛',
+ '棜',
+ '棫',
+ '櫲',
+ '欎',
+ '欝',
+ '欲',
+ '毓',
+ '浴',
+ '淯',
+ '滪',
+ '潏',
+ '澦',
+ '灪',
+ '焴',
+ '煜',
+ '燏',
+ '燠',
+ '爩',
+ '狱',
+ '獄',
+ '玉',
+ '琙',
+ '瘉',
+ '癒',
+ '砡',
+ '硢',
+ '硲',
+ '礇',
+ '礖',
+ '礜',
+ '禦',
+ '秗',
+ '稢',
+ '稶',
+ '篽',
+ '籞',
+ '籲',
+ '粖',
+ '緎',
+ '罭',
+ '聿',
+ '肀',
+ '艈',
+ '芋',
+ '芌',
+ '茟',
+ '蒮',
+ '蓣',
+ '蓹',
+ '蕷',
+ '蘌',
+ '蜟',
+ '蜮',
+ '袬',
+ '裕',
+ '誉',
+ '諭',
+ '譽',
+ '谕',
+ '豫',
+ '軉',
+ '輍',
+ '逳',
+ '遇',
+ '遹',
+ '郁',
+ '醧',
+ '鈺',
+ '鋊',
+ '錥',
+ '鐭',
+ '钰',
+ '閾',
+ '阈',
+ '雤',
+ '霱',
+ '預',
+ '预',
+ '飫',
+ '饇',
+ '饫',
+ '馭',
+ '驈',
+ '驭',
+ '鬰',
+ '鬱',
+ '鬻',
+ '魊',
+ '鱊',
+ '鳿',
+ '鴥',
+ '鴧',
+ '鴪',
+ '鵒',
+ '鷸',
+ '鸒',
+ '鹆',
+ '鹬',
+ ],
+ xīn: [
+ '俽',
+ '噺',
+ '妡',
+ '嬜',
+ '廞',
+ '心',
+ '忄',
+ '忻',
+ '惞',
+ '新',
+ '昕',
+ '杺',
+ '欣',
+ '歆',
+ '炘',
+ '盺',
+ '薪',
+ '訢',
+ '辛',
+ '邤',
+ '鈊',
+ '鋅',
+ '鑫',
+ '锌',
+ '馨',
+ '馫',
+ '䜣',
+ '𫷷',
+ ],
+ 'hǔ chí': ['俿'],
+ jiù: [
+ '倃',
+ '僦',
+ '匓',
+ '匛',
+ '匶',
+ '厩',
+ '咎',
+ '就',
+ '廄',
+ '廏',
+ '廐',
+ '慦',
+ '捄',
+ '救',
+ '旧',
+ '柩',
+ '柾',
+ '桕',
+ '欍',
+ '殧',
+ '疚',
+ '臼',
+ '舅',
+ '舊',
+ '鯦',
+ '鷲',
+ '鹫',
+ '麔',
+ '齨',
+ '㠇',
+ ],
+ yáo: [
+ '倄',
+ '傜',
+ '嗂',
+ '垚',
+ '堯',
+ '姚',
+ '媱',
+ '尧',
+ '尭',
+ '峣',
+ '嶢',
+ '嶤',
+ '徭',
+ '揺',
+ '搖',
+ '摇',
+ '摿',
+ '暚',
+ '榣',
+ '烑',
+ '爻',
+ '猺',
+ '珧',
+ '瑤',
+ '瑶',
+ '磘',
+ '窑',
+ '窯',
+ '窰',
+ '肴',
+ '蘨',
+ '謠',
+ '謡',
+ '谣',
+ '軺',
+ '轺',
+ '遙',
+ '遥',
+ '邎',
+ '顤',
+ '颻',
+ '飖',
+ '餆',
+ '餚',
+ '鰩',
+ '鱙',
+ '鳐',
+ ],
+ 'cuì zú': ['倅'],
+ 'liǎng liǎ': ['倆'],
+ wǎn: [
+ '倇',
+ '唍',
+ '婉',
+ '惋',
+ '挽',
+ '晚',
+ '晥',
+ '晩',
+ '晼',
+ '梚',
+ '椀',
+ '琬',
+ '畹',
+ '皖',
+ '盌',
+ '碗',
+ '綩',
+ '綰',
+ '绾',
+ '脘',
+ '萖',
+ '踠',
+ '輓',
+ '鋔',
+ ],
+ zǒng: [
+ '倊',
+ '偬',
+ '傯',
+ '嵸',
+ '总',
+ '惣',
+ '捴',
+ '搃',
+ '摠',
+ '燪',
+ '総',
+ '緫',
+ '縂',
+ '總',
+ '蓗',
+ ],
+ guān: [
+ '倌',
+ '关',
+ '官',
+ '棺',
+ '瘝',
+ '癏',
+ '窤',
+ '蒄',
+ '関',
+ '闗',
+ '關',
+ '鰥',
+ '鱞',
+ '鳏',
+ ],
+ tiǎn: [
+ '倎',
+ '唺',
+ '忝',
+ '悿',
+ '晪',
+ '殄',
+ '淟',
+ '睓',
+ '腆',
+ '舔',
+ '覥',
+ '觍',
+ '賟',
+ '錪',
+ '餂',
+ ],
+ mén: ['們', '扪', '捫', '璊', '菛', '虋', '鍆', '钔', '門', '閅', '门', '𫞩'],
+ 'dǎo dào': ['倒'],
+ 'tán tàn': ['倓', '埮'],
+ 'juè jué': ['倔'],
+ chuí: [
+ '倕',
+ '垂',
+ '埀',
+ '捶',
+ '搥',
+ '桘',
+ '棰',
+ '槌',
+ '箠',
+ '腄',
+ '菙',
+ '錘',
+ '鎚',
+ '锤',
+ '陲',
+ '顀',
+ ],
+ xìng: [
+ '倖',
+ '姓',
+ '婞',
+ '嬹',
+ '幸',
+ '性',
+ '悻',
+ '杏',
+ '涬',
+ '緈',
+ '臖',
+ '荇',
+ '莕',
+ '葕',
+ ],
+ péng: [
+ '倗',
+ '傰',
+ '塜',
+ '塳',
+ '弸',
+ '憉',
+ '捀',
+ '朋',
+ '棚',
+ '椖',
+ '樥',
+ '硼',
+ '稝',
+ '竼',
+ '篷',
+ '纄',
+ '膨',
+ '芃',
+ '蓬',
+ '蘕',
+ '蟚',
+ '蟛',
+ '袶',
+ '輣',
+ '錋',
+ '鑝',
+ '韸',
+ '韼',
+ '騯',
+ '髼',
+ '鬅',
+ '鬔',
+ '鵬',
+ '鹏',
+ ],
+ 'tǎng cháng': ['倘'],
+ hòu: [
+ '候',
+ '厚',
+ '后',
+ '垕',
+ '堠',
+ '後',
+ '洉',
+ '茩',
+ '豞',
+ '逅',
+ '郈',
+ '鮜',
+ '鱟',
+ '鲎',
+ '鲘',
+ ],
+ tì: [
+ '倜',
+ '剃',
+ '嚏',
+ '嚔',
+ '屉',
+ '屜',
+ '悌',
+ '悐',
+ '惕',
+ '惖',
+ '戻',
+ '掦',
+ '替',
+ '朑',
+ '歒',
+ '殢',
+ '涕',
+ '瓋',
+ '笹',
+ '籊',
+ '薙',
+ '褅',
+ '逖',
+ '逷',
+ '髰',
+ '鬀',
+ '鬄',
+ ],
+ gàn: [
+ '倝',
+ '凎',
+ '幹',
+ '榦',
+ '檊',
+ '淦',
+ '灨',
+ '盰',
+ '紺',
+ '绀',
+ '詌',
+ '贑',
+ '赣',
+ '骭',
+ '㽏',
+ ],
+ 'liàng jìng': ['倞', '靓'],
+ suī: [
+ '倠',
+ '哸',
+ '夊',
+ '滖',
+ '濉',
+ '眭',
+ '睢',
+ '芕',
+ '荽',
+ '荾',
+ '虽',
+ '雖',
+ '鞖',
+ ],
+ 'chàng chāng': ['倡'],
+ jié: [
+ '倢',
+ '偼',
+ '傑',
+ '刦',
+ '刧',
+ '刼',
+ '劫',
+ '劼',
+ '卩',
+ '卪',
+ '婕',
+ '媫',
+ '孑',
+ '岊',
+ '崨',
+ '嵥',
+ '嶻',
+ '巀',
+ '幯',
+ '截',
+ '捷',
+ '掶',
+ '擮',
+ '昅',
+ '杢',
+ '杰',
+ '桀',
+ '桝',
+ '楬',
+ '楶',
+ '榤',
+ '洁',
+ '滐',
+ '潔',
+ '狤',
+ '睫',
+ '礍',
+ '竭',
+ '節',
+ '羯',
+ '莭',
+ '蓵',
+ '蛣',
+ '蜐',
+ '蠘',
+ '蠞',
+ '蠽',
+ '衱',
+ '袺',
+ '訐',
+ '詰',
+ '誱',
+ '讦',
+ '踕',
+ '迼',
+ '鉣',
+ '鍻',
+ '镼',
+ '頡',
+ '鮚',
+ '鲒',
+ '㛃',
+ ],
+ 'kǒng kōng': ['倥'],
+ juàn: [
+ '倦',
+ '劵',
+ '奆',
+ '慻',
+ '桊',
+ '淃',
+ '狷',
+ '獧',
+ '眷',
+ '睊',
+ '睠',
+ '絭',
+ '絹',
+ '绢',
+ '罥',
+ '羂',
+ '腃',
+ '蔨',
+ '鄄',
+ '餋',
+ ],
+ zōng: [
+ '倧',
+ '堫',
+ '宗',
+ '嵏',
+ '嵕',
+ '惾',
+ '朡',
+ '棕',
+ '椶',
+ '熧',
+ '猣',
+ '磫',
+ '緃',
+ '翪',
+ '腙',
+ '葼',
+ '蝬',
+ '豵',
+ '踨',
+ '踪',
+ '蹤',
+ '鍐',
+ '鑁',
+ '騌',
+ '騣',
+ '骔',
+ '鬃',
+ '鬉',
+ '鬷',
+ '鯮',
+ '鯼',
+ ],
+ ní: [
+ '倪',
+ '坭',
+ '埿',
+ '尼',
+ '屔',
+ '怩',
+ '淣',
+ '猊',
+ '籾',
+ '聣',
+ '蚭',
+ '蜺',
+ '觬',
+ '貎',
+ '跜',
+ '輗',
+ '郳',
+ '鈮',
+ '铌',
+ '霓',
+ '馜',
+ '鯢',
+ '鲵',
+ '麑',
+ '齯',
+ '𫐐',
+ '𫠜',
+ ],
+ zhuō: [
+ '倬',
+ '拙',
+ '捉',
+ '桌',
+ '梲',
+ '棁',
+ '棳',
+ '槕',
+ '涿',
+ '窧',
+ '鐯',
+ '䦃',
+ ],
+ 'wō wēi': ['倭'],
+ luǒ: ['倮', '剆', '曪', '瘰', '癳', '臝', '蓏', '蠃', '裸', '躶'],
+ sōng: [
+ '倯',
+ '凇',
+ '娀',
+ '崧',
+ '嵩',
+ '庺',
+ '憽',
+ '松',
+ '枀',
+ '枩',
+ '柗',
+ '梥',
+ '檧',
+ '淞',
+ '濍',
+ '硹',
+ '菘',
+ '鬆',
+ ],
+ lèng: ['倰', '堎', '愣', '睖', '踜'],
+ zì: [
+ '倳',
+ '剚',
+ '字',
+ '恣',
+ '渍',
+ '漬',
+ '牸',
+ '眥',
+ '眦',
+ '胔',
+ '胾',
+ '自',
+ '茡',
+ '荢',
+ ],
+ bèn: ['倴', '坌', '捹', '撪', '渀', '笨', '逩'],
+ cǎi: ['倸', '啋', '婇', '彩', '採', '棌', '毝', '睬', '綵', '跴', '踩'],
+ zhài: ['债', '債', '寨', '瘵', '砦'],
+ yē: ['倻', '吔', '噎', '擨', '暍', '椰', '歋', '潱', '蠮'],
+ shà: ['倽', '唼', '喢', '歃', '箑', '翜', '翣', '萐', '閯', '霎'],
+ qīng: [
+ '倾',
+ '傾',
+ '卿',
+ '圊',
+ '寈',
+ '氢',
+ '氫',
+ '淸',
+ '清',
+ '蜻',
+ '軽',
+ '輕',
+ '轻',
+ '郬',
+ '錆',
+ '鑋',
+ '靑',
+ '青',
+ '鯖',
+ ],
+ yīng: [
+ '偀',
+ '嘤',
+ '噟',
+ '嚶',
+ '婴',
+ '媖',
+ '嫈',
+ '嬰',
+ '孆',
+ '孾',
+ '愥',
+ '撄',
+ '攖',
+ '朠',
+ '桜',
+ '樱',
+ '櫻',
+ '渶',
+ '煐',
+ '珱',
+ '瑛',
+ '璎',
+ '瓔',
+ '甇',
+ '甖',
+ '碤',
+ '礯',
+ '緓',
+ '纓',
+ '绬',
+ '缨',
+ '罂',
+ '罃',
+ '罌',
+ '膺',
+ '英',
+ '莺',
+ '蘡',
+ '蝧',
+ '蠳',
+ '褮',
+ '譻',
+ '賏',
+ '軈',
+ '鑍',
+ '锳',
+ '霙',
+ '韺',
+ '鴬',
+ '鶑',
+ '鶧',
+ '鶯',
+ '鷪',
+ '鷹',
+ '鸎',
+ '鸚',
+ '鹦',
+ '鹰',
+ '䓨',
+ ],
+ 'chēng chèn': ['偁', '爯'],
+ ruǎn: ['偄', '朊', '瑌', '瓀', '碝', '礝', '腝', '軟', '輭', '软', '阮'],
+ 'zhòng tóng': ['偅'],
+ chǔn: ['偆', '惷', '睶', '萶', '蠢', '賰'],
+ 'jiǎ jià': ['假'],
+ 'jì jié': ['偈'],
+ 'bǐng bìng': ['偋'],
+ ruò: [
+ '偌',
+ '叒',
+ '嵶',
+ '弱',
+ '楉',
+ '焫',
+ '爇',
+ '箬',
+ '篛',
+ '蒻',
+ '鄀',
+ '鰙',
+ '鰯',
+ '鶸',
+ ],
+ tí: [
+ '偍',
+ '厗',
+ '啼',
+ '嗁',
+ '崹',
+ '漽',
+ '瑅',
+ '睼',
+ '禵',
+ '稊',
+ '緹',
+ '缇',
+ '罤',
+ '蕛',
+ '褆',
+ '謕',
+ '趧',
+ '蹄',
+ '蹏',
+ '醍',
+ '鍗',
+ '題',
+ '题',
+ '騠',
+ '鮷',
+ '鯷',
+ '鳀',
+ '鵜',
+ '鷤',
+ '鹈',
+ '𫘨',
+ ],
+ wēi: [
+ '偎',
+ '危',
+ '喴',
+ '威',
+ '媙',
+ '嶶',
+ '巍',
+ '微',
+ '愄',
+ '揋',
+ '揻',
+ '椳',
+ '楲',
+ '溦',
+ '烓',
+ '煨',
+ '燰',
+ '癓',
+ '縅',
+ '葨',
+ '葳',
+ '薇',
+ '蜲',
+ '蝛',
+ '覣',
+ '詴',
+ '逶',
+ '隇',
+ '隈',
+ '霺',
+ '鰃',
+ '鰄',
+ '鳂',
+ ],
+ piān: ['偏', '囨', '媥', '楄', '犏', '篇', '翩', '鍂'],
+ yàn: [
+ '偐',
+ '厌',
+ '厭',
+ '唁',
+ '喭',
+ '嚈',
+ '嚥',
+ '堰',
+ '妟',
+ '姲',
+ '嬊',
+ '嬿',
+ '宴',
+ '彥',
+ '彦',
+ '敥',
+ '晏',
+ '暥',
+ '曕',
+ '曣',
+ '滟',
+ '灎',
+ '灔',
+ '灧',
+ '灩',
+ '焔',
+ '焰',
+ '焱',
+ '熖',
+ '燄',
+ '牪',
+ '猒',
+ '砚',
+ '硯',
+ '艳',
+ '艶',
+ '艷',
+ '覎',
+ '觃',
+ '觾',
+ '諺',
+ '讌',
+ '讞',
+ '谚',
+ '谳',
+ '豓',
+ '豔',
+ '贋',
+ '贗',
+ '赝',
+ '軅',
+ '酀',
+ '酽',
+ '醼',
+ '釅',
+ '雁',
+ '餍',
+ '饜',
+ '騐',
+ '験',
+ '騴',
+ '驗',
+ '驠',
+ '验',
+ '鬳',
+ '鳫',
+ '鴈',
+ '鴳',
+ '鷃',
+ '鷰',
+ '齞',
+ ],
+ 'tǎng dàng': ['偒'],
+ è: [
+ '偔',
+ '匎',
+ '卾',
+ '厄',
+ '呝',
+ '咢',
+ '噩',
+ '垩',
+ '堊',
+ '堮',
+ '岋',
+ '崿',
+ '廅',
+ '悪',
+ '愕',
+ '戹',
+ '扼',
+ '搤',
+ '搹',
+ '擜',
+ '櫮',
+ '歞',
+ '歺',
+ '湂',
+ '琧',
+ '砈',
+ '砐',
+ '硆',
+ '腭',
+ '苊',
+ '萼',
+ '蕚',
+ '蚅',
+ '蝁',
+ '覨',
+ '諤',
+ '讍',
+ '谔',
+ '豟',
+ '軛',
+ '軶',
+ '轭',
+ '遌',
+ '遏',
+ '遻',
+ '鄂',
+ '鈪',
+ '鍔',
+ '鑩',
+ '锷',
+ '阨',
+ '阸',
+ '頞',
+ '顎',
+ '颚',
+ '餓',
+ '餩',
+ '饿',
+ '鰐',
+ '鰪',
+ '鱷',
+ '鳄',
+ '鶚',
+ '鹗',
+ '齃',
+ '齶',
+ '𫫇',
+ '𥔲',
+ ],
+ xié: [
+ '偕',
+ '勰',
+ '协',
+ '協',
+ '嗋',
+ '垥',
+ '奊',
+ '恊',
+ '愶',
+ '拹',
+ '携',
+ '撷',
+ '擕',
+ '擷',
+ '攜',
+ '斜',
+ '旪',
+ '熁',
+ '燲',
+ '綊',
+ '緳',
+ '縀',
+ '缬',
+ '翓',
+ '胁',
+ '脅',
+ '脇',
+ '脋',
+ '膎',
+ '蝢',
+ '衺',
+ '襭',
+ '諧',
+ '讗',
+ '谐',
+ '鞋',
+ '鞵',
+ '龤',
+ '㙦',
+ ],
+ chě: ['偖', '扯', '撦'],
+ shěng: ['偗', '渻', '眚'],
+ chā: [
+ '偛',
+ '嗏',
+ '扠',
+ '挿',
+ '插',
+ '揷',
+ '疀',
+ '臿',
+ '艖',
+ '銟',
+ '鍤',
+ '锸',
+ '餷',
+ ],
+ huáng: [
+ '偟',
+ '凰',
+ '喤',
+ '堭',
+ '墴',
+ '媓',
+ '崲',
+ '徨',
+ '惶',
+ '楻',
+ '湟',
+ '煌',
+ '獚',
+ '瑝',
+ '璜',
+ '癀',
+ '皇',
+ '磺',
+ '穔',
+ '篁',
+ '簧',
+ '艎',
+ '葟',
+ '蝗',
+ '蟥',
+ '諻',
+ '趪',
+ '遑',
+ '鍠',
+ '鐄',
+ '锽',
+ '隍',
+ '韹',
+ '餭',
+ '騜',
+ '鰉',
+ '鱑',
+ '鳇',
+ '鷬',
+ '黃',
+ '黄',
+ '𨱑',
+ ],
+ yǎo: [
+ '偠',
+ '咬',
+ '婹',
+ '宎',
+ '岆',
+ '杳',
+ '柼',
+ '榚',
+ '溔',
+ '狕',
+ '窅',
+ '窈',
+ '舀',
+ '苭',
+ '闄',
+ '騕',
+ '鷕',
+ '齩',
+ ],
+ 'chǒu qiào': ['偢'],
+ yóu: [
+ '偤',
+ '尤',
+ '庮',
+ '怣',
+ '沋',
+ '油',
+ '浟',
+ '游',
+ '犹',
+ '猶',
+ '猷',
+ '由',
+ '疣',
+ '秞',
+ '肬',
+ '莜',
+ '莸',
+ '蕕',
+ '蚰',
+ '蝣',
+ '訧',
+ '輏',
+ '輶',
+ '逰',
+ '遊',
+ '邮',
+ '郵',
+ '鈾',
+ '铀',
+ '駀',
+ '魷',
+ '鮋',
+ '鱿',
+ '鲉',
+ '𬨎',
+ ],
+ xū: [
+ '偦',
+ '墟',
+ '媭',
+ '嬃',
+ '楈',
+ '欨',
+ '歔',
+ '燸',
+ '疞',
+ '盱',
+ '綇',
+ '縃',
+ '繻',
+ '胥',
+ '蕦',
+ '虗',
+ '虚',
+ '虛',
+ '蝑',
+ '裇',
+ '訏',
+ '許',
+ '諝',
+ '譃',
+ '谞',
+ '鑐',
+ '需',
+ '須',
+ '须',
+ '顼',
+ '驉',
+ '鬚',
+ '魆',
+ '魖',
+ '𬣙',
+ '𦈡',
+ ],
+ zhā: [
+ '偧',
+ '哳',
+ '抯',
+ '挓',
+ '揸',
+ '摣',
+ '樝',
+ '渣',
+ '皶',
+ '觰',
+ '譇',
+ '齄',
+ '齇',
+ ],
+ cī: ['偨', '疵', '蠀', '趀', '骴', '髊', '齹'],
+ bī: ['偪', '屄', '楅', '毴', '豍', '逼', '鰏', '鲾', '鵖'],
+ xún: [
+ '偱',
+ '噚',
+ '寻',
+ '尋',
+ '峋',
+ '巡',
+ '廵',
+ '循',
+ '恂',
+ '揗',
+ '攳',
+ '旬',
+ '杊',
+ '栒',
+ '桪',
+ '樳',
+ '洵',
+ '浔',
+ '潯',
+ '燅',
+ '燖',
+ '珣',
+ '璕',
+ '畃',
+ '紃',
+ '荀',
+ '蟳',
+ '詢',
+ '询',
+ '鄩',
+ '鱏',
+ '鱘',
+ '鲟',
+ '𬘓',
+ '𬩽',
+ '𬍤',
+ '𬊈',
+ ],
+ 'cāi sī': ['偲'],
+ duān: ['偳', '媏', '端', '褍', '鍴'],
+ ǒu: ['偶', '吘', '嘔', '耦', '腢', '蕅', '藕', '𬉼', '𠙶'],
+ tōu: ['偷', '偸', '鍮'],
+ 'zán zá zǎ': ['偺'],
+ 'lǚ lóu': ['偻', '僂'],
+ fèn: [
+ '偾',
+ '僨',
+ '奋',
+ '奮',
+ '弅',
+ '忿',
+ '愤',
+ '憤',
+ '瀵',
+ '瞓',
+ '秎',
+ '粪',
+ '糞',
+ '膹',
+ '鱝',
+ '鲼',
+ ],
+ 'kuǐ guī': ['傀'],
+ sǒu: ['傁', '叜', '叟', '嗾', '櫢', '瞍', '薮', '藪'],
+ 'zhì sī tí': ['傂'],
+ sù: [
+ '傃',
+ '僳',
+ '嗉',
+ '塐',
+ '塑',
+ '夙',
+ '嫊',
+ '愫',
+ '憟',
+ '榡',
+ '樎',
+ '樕',
+ '殐',
+ '泝',
+ '涑',
+ '溯',
+ '溸',
+ '潚',
+ '潥',
+ '玊',
+ '珟',
+ '璛',
+ '簌',
+ '粛',
+ '粟',
+ '素',
+ '縤',
+ '肃',
+ '肅',
+ '膆',
+ '蔌',
+ '藗',
+ '觫',
+ '訴',
+ '謖',
+ '诉',
+ '谡',
+ '趚',
+ '蹜',
+ '速',
+ '遡',
+ '遬',
+ '鋉',
+ '餗',
+ '驌',
+ '骕',
+ '鱐',
+ '鷫',
+ '鹔',
+ '𫗧',
+ ],
+ xiā: ['傄', '煆', '瞎', '虲', '谺', '颬', '鰕'],
+ 'yuàn yuán': ['傆', '媛'],
+ rǒng: ['傇', '冗', '宂', '氄', '軵'],
+ nù: ['傉', '怒'],
+ yùn: [
+ '傊',
+ '孕',
+ '恽',
+ '惲',
+ '愠',
+ '慍',
+ '枟',
+ '腪',
+ '蕴',
+ '薀',
+ '藴',
+ '蘊',
+ '褞',
+ '貟',
+ '运',
+ '運',
+ '郓',
+ '鄆',
+ '酝',
+ '醖',
+ '醞',
+ '韗',
+ '韞',
+ '韵',
+ '韻',
+ '餫',
+ ],
+ 'gòu jiǎng': ['傋'],
+ mà: ['傌', '嘜', '榪', '睰', '祃', '禡', '罵', '閁', '駡', '骂', '鬕'],
+ bàng: [
+ '傍',
+ '塝',
+ '棒',
+ '玤',
+ '稖',
+ '艕',
+ '蒡',
+ '蜯',
+ '謗',
+ '谤',
+ '鎊',
+ '镑',
+ ],
+ diān: [
+ '傎',
+ '厧',
+ '嵮',
+ '巅',
+ '巓',
+ '巔',
+ '掂',
+ '攧',
+ '敁',
+ '槇',
+ '滇',
+ '癫',
+ '癲',
+ '蹎',
+ '顚',
+ '顛',
+ '颠',
+ '齻',
+ ],
+ táng: [
+ '傏',
+ '唐',
+ '啺',
+ '坣',
+ '堂',
+ '塘',
+ '搪',
+ '棠',
+ '榶',
+ '溏',
+ '漟',
+ '煻',
+ '瑭',
+ '磄',
+ '禟',
+ '篖',
+ '糃',
+ '糖',
+ '糛',
+ '膅',
+ '膛',
+ '蓎',
+ '螗',
+ '螳',
+ '赯',
+ '踼',
+ '鄌',
+ '醣',
+ '鎕',
+ '隚',
+ '餹',
+ '饄',
+ '鶶',
+ '䣘',
+ ],
+ hào: [
+ '傐',
+ '哠',
+ '恏',
+ '昊',
+ '昦',
+ '晧',
+ '暠',
+ '暤',
+ '暭',
+ '曍',
+ '浩',
+ '淏',
+ '澔',
+ '灏',
+ '灝',
+ '皓',
+ '皜',
+ '皞',
+ '皡',
+ '皥',
+ '耗',
+ '聕',
+ '薃',
+ '號',
+ '鄗',
+ '顥',
+ '颢',
+ '鰝',
+ ],
+ 'xī xì': ['傒'],
+ shān: [
+ '傓',
+ '删',
+ '刪',
+ '剼',
+ '圸',
+ '山',
+ '挻',
+ '搧',
+ '柵',
+ '檆',
+ '潸',
+ '澘',
+ '煽',
+ '狦',
+ '珊',
+ '笘',
+ '縿',
+ '羴',
+ '羶',
+ '脠',
+ '舢',
+ '芟',
+ '衫',
+ '跚',
+ '軕',
+ '邖',
+ '閊',
+ '鯅',
+ ],
+ 'qiàn jiān': ['傔'],
+ 'què jué': ['傕', '埆'],
+ 'cāng chen': ['傖'],
+ róng: [
+ '傛',
+ '媶',
+ '嫆',
+ '嬫',
+ '容',
+ '峵',
+ '嵘',
+ '嶸',
+ '戎',
+ '搈',
+ '曧',
+ '栄',
+ '榕',
+ '榮',
+ '榵',
+ '毧',
+ '溶',
+ '瀜',
+ '烿',
+ '熔',
+ '狨',
+ '瑢',
+ '穁',
+ '絨',
+ '绒',
+ '羢',
+ '肜',
+ '茙',
+ '茸',
+ '荣',
+ '蓉',
+ '蝾',
+ '融',
+ '螎',
+ '蠑',
+ '褣',
+ '鎔',
+ '镕',
+ '駥',
+ ],
+ 'tà tàn': ['傝'],
+ suō: [
+ '傞',
+ '唆',
+ '嗍',
+ '嗦',
+ '娑',
+ '摍',
+ '桫',
+ '梭',
+ '睃',
+ '簑',
+ '簔',
+ '羧',
+ '莏',
+ '蓑',
+ '趖',
+ '鮻',
+ ],
+ dǎi: ['傣', '歹'],
+ zài: ['傤', '儎', '再', '在', '扗', '洅', '載', '酨'],
+ gǔ: [
+ '傦',
+ '古',
+ '啒',
+ '尳',
+ '愲',
+ '榖',
+ '榾',
+ '汩',
+ '淈',
+ '濲',
+ '瀔',
+ '牯',
+ '皷',
+ '皼',
+ '盬',
+ '瞽',
+ '穀',
+ '罟',
+ '羖',
+ '股',
+ '脵',
+ '臌',
+ '薣',
+ '蛊',
+ '蠱',
+ '詁',
+ '诂',
+ '轂',
+ '逧',
+ '鈷',
+ '钴',
+ '餶',
+ '馉',
+ '鼓',
+ '鼔',
+ '𦙶',
+ ],
+ bīn: [
+ '傧',
+ '宾',
+ '彬',
+ '斌',
+ '椕',
+ '滨',
+ '濒',
+ '濱',
+ '濵',
+ '瀕',
+ '繽',
+ '缤',
+ '虨',
+ '豩',
+ '豳',
+ '賓',
+ '賔',
+ '邠',
+ '鑌',
+ '镔',
+ '霦',
+ '顮',
+ ],
+ chǔ: [
+ '储',
+ '儲',
+ '杵',
+ '椘',
+ '楚',
+ '楮',
+ '檚',
+ '濋',
+ '璴',
+ '础',
+ '礎',
+ '禇',
+ '處',
+ '齭',
+ '齼',
+ '𬺓',
+ ],
+ nuó: ['傩', '儺', '挪', '梛', '橠'],
+ 'cān càn': ['傪'],
+ lěi: [
+ '傫',
+ '儡',
+ '厽',
+ '垒',
+ '塁',
+ '壘',
+ '壨',
+ '櫐',
+ '灅',
+ '癗',
+ '矋',
+ '磊',
+ '礨',
+ '耒',
+ '蕌',
+ '蕾',
+ '藟',
+ '蘽',
+ '蠝',
+ '誄',
+ '讄',
+ '诔',
+ '鑸',
+ '鸓',
+ ],
+ cuī: ['催', '凗', '墔', '崔', '嵟', '慛', '摧', '榱', '獕', '磪', '鏙'],
+ yōng: [
+ '傭',
+ '嗈',
+ '墉',
+ '壅',
+ '嫞',
+ '庸',
+ '廱',
+ '慵',
+ '拥',
+ '擁',
+ '滽',
+ '灉',
+ '牅',
+ '痈',
+ '癕',
+ '癰',
+ '臃',
+ '邕',
+ '郺',
+ '鄘',
+ '鏞',
+ '镛',
+ '雍',
+ '雝',
+ '饔',
+ '鱅',
+ '鳙',
+ '鷛',
+ ],
+ 'zāo cáo': ['傮'],
+ sǒng: ['傱', '嵷', '怂', '悚', '愯', '慫', '竦', '耸', '聳', '駷', '㧐'],
+ ào: [
+ '傲',
+ '坳',
+ '垇',
+ '墺',
+ '奡',
+ '嫯',
+ '岙',
+ '岰',
+ '嶴',
+ '懊',
+ '擙',
+ '澳',
+ '鏊',
+ '驁',
+ '骜',
+ ],
+ 'qī còu': ['傶'],
+ chuǎng: ['傸', '磢', '闖', '闯'],
+ shǎ: ['傻', '儍'],
+ hàn: [
+ '傼',
+ '垾',
+ '悍',
+ '憾',
+ '扞',
+ '捍',
+ '撖',
+ '撼',
+ '旱',
+ '晘',
+ '暵',
+ '汉',
+ '涆',
+ '漢',
+ '瀚',
+ '焊',
+ '猂',
+ '皔',
+ '睅',
+ '翰',
+ '莟',
+ '菡',
+ '蛿',
+ '蜭',
+ '螒',
+ '譀',
+ '輚',
+ '釬',
+ '銲',
+ '鋎',
+ '雗',
+ '頷',
+ '顄',
+ '颔',
+ '駻',
+ '鶾',
+ ],
+ zhāng: [
+ '傽',
+ '嫜',
+ '张',
+ '張',
+ '彰',
+ '慞',
+ '暲',
+ '樟',
+ '漳',
+ '獐',
+ '璋',
+ '章',
+ '粻',
+ '蔁',
+ '蟑',
+ '遧',
+ '鄣',
+ '鏱',
+ '餦',
+ '騿',
+ '鱆',
+ '麞',
+ ],
+ 'yān yàn': ['傿', '墕', '嬮'],
+ 'piào biāo': ['僄', '骠'],
+ liàn: [
+ '僆',
+ '堜',
+ '媡',
+ '恋',
+ '戀',
+ '楝',
+ '殓',
+ '殮',
+ '湅',
+ '潋',
+ '澰',
+ '瀲',
+ '炼',
+ '煉',
+ '瑓',
+ '練',
+ '纞',
+ '练',
+ '萰',
+ '錬',
+ '鍊',
+ '鏈',
+ '链',
+ '鰊',
+ '𬶠',
+ ],
+ màn: [
+ '㵘',
+ '僈',
+ '墁',
+ '幔',
+ '慢',
+ '曼',
+ '漫',
+ '澷',
+ '熳',
+ '獌',
+ '縵',
+ '缦',
+ '蔄',
+ '蘰',
+ '鄤',
+ '鏝',
+ '镘',
+ '𬜬',
+ ],
+ 'tàn tǎn': ['僋'],
+ yíng: [
+ '僌',
+ '営',
+ '塋',
+ '嬴',
+ '攍',
+ '楹',
+ '櫿',
+ '溁',
+ '溋',
+ '滢',
+ '潆',
+ '濙',
+ '濚',
+ '濴',
+ '瀅',
+ '瀛',
+ '瀠',
+ '瀯',
+ '灐',
+ '灜',
+ '熒',
+ '營',
+ '瑩',
+ '盁',
+ '盈',
+ '禜',
+ '籝',
+ '籯',
+ '縈',
+ '茔',
+ '荧',
+ '莹',
+ '萤',
+ '营',
+ '萦',
+ '萾',
+ '蓥',
+ '藀',
+ '蛍',
+ '蝇',
+ '蝿',
+ '螢',
+ '蠅',
+ '謍',
+ '贏',
+ '赢',
+ '迎',
+ '鎣',
+ ],
+ dòng: [
+ '働',
+ '冻',
+ '凍',
+ '动',
+ '動',
+ '姛',
+ '戙',
+ '挏',
+ '栋',
+ '棟',
+ '湩',
+ '硐',
+ '胨',
+ '胴',
+ '腖',
+ '迵',
+ '霘',
+ '駧',
+ ],
+ zhuàn: [
+ '僎',
+ '啭',
+ '囀',
+ '堟',
+ '撰',
+ '灷',
+ '瑑',
+ '篆',
+ '腞',
+ '蒃',
+ '襈',
+ '譔',
+ '饌',
+ '馔',
+ ],
+ xiàng: [
+ '像',
+ '勨',
+ '向',
+ '嚮',
+ '姠',
+ '嶑',
+ '曏',
+ '橡',
+ '珦',
+ '缿',
+ '蟓',
+ '衖',
+ '襐',
+ '象',
+ '鐌',
+ '項',
+ '项',
+ '鱌',
+ ],
+ shàn: [
+ '僐',
+ '善',
+ '墠',
+ '墡',
+ '嬗',
+ '擅',
+ '敾',
+ '椫',
+ '樿',
+ '歚',
+ '汕',
+ '灗',
+ '疝',
+ '磰',
+ '繕',
+ '缮',
+ '膳',
+ '蟮',
+ '蟺',
+ '訕',
+ '謆',
+ '譱',
+ '讪',
+ '贍',
+ '赡',
+ '赸',
+ '鄯',
+ '鐥',
+ '饍',
+ '騸',
+ '骟',
+ '鱓',
+ '鱔',
+ '鳝',
+ '𫮃',
+ ],
+ 'tuí tuǐ': ['僓'],
+ zǔn: ['僔', '噂', '撙', '譐'],
+ pú: [
+ '僕',
+ '匍',
+ '圤',
+ '墣',
+ '濮',
+ '獛',
+ '璞',
+ '瞨',
+ '穙',
+ '莆',
+ '菐',
+ '菩',
+ '葡',
+ '蒱',
+ '蒲',
+ '贌',
+ '酺',
+ '鏷',
+ '镤',
+ ],
+ láo: [
+ '僗',
+ '劳',
+ '労',
+ '勞',
+ '哰',
+ '崂',
+ '嶗',
+ '憥',
+ '朥',
+ '浶',
+ '牢',
+ '痨',
+ '癆',
+ '窂',
+ '簩',
+ '醪',
+ '鐒',
+ '铹',
+ '顟',
+ '髝',
+ '𫭼',
+ ],
+ chǎng: ['僘', '厰', '廠', '敞', '昶', '氅', '鋹', '𬬮'],
+ guāng: [
+ '僙',
+ '光',
+ '咣',
+ '垙',
+ '姯',
+ '洸',
+ '灮',
+ '炗',
+ '炚',
+ '炛',
+ '烡',
+ '珖',
+ '胱',
+ '茪',
+ '輄',
+ '銧',
+ '黆',
+ '𨐈',
+ ],
+ liáo: [
+ '僚',
+ '嘹',
+ '嫽',
+ '寥',
+ '寮',
+ '尞',
+ '屪',
+ '嵺',
+ '嶚',
+ '嶛',
+ '廫',
+ '憀',
+ '敹',
+ '暸',
+ '橑',
+ '獠',
+ '璙',
+ '疗',
+ '療',
+ '竂',
+ '簝',
+ '繚',
+ '缭',
+ '聊',
+ '膋',
+ '膫',
+ '藔',
+ '蟟',
+ '豂',
+ '賿',
+ '蹘',
+ '辽',
+ '遼',
+ '飉',
+ '髎',
+ '鷯',
+ '鹩',
+ ],
+ dèng: ['僜', '凳', '墱', '嶝', '櫈', '瞪', '磴', '覴', '邓', '鄧', '隥'],
+ 'chán zhàn zhuàn': ['僝'],
+ bō: [
+ '僠',
+ '嶓',
+ '拨',
+ '撥',
+ '播',
+ '波',
+ '溊',
+ '玻',
+ '癶',
+ '盋',
+ '砵',
+ '碆',
+ '礡',
+ '缽',
+ '菠',
+ '袰',
+ '蹳',
+ '鉢',
+ '钵',
+ '餑',
+ '饽',
+ '驋',
+ '鱍',
+ '𬭛',
+ ],
+ huì: [
+ '僡',
+ '匯',
+ '卉',
+ '喙',
+ '嘒',
+ '嚖',
+ '圚',
+ '嬒',
+ '寭',
+ '屶',
+ '屷',
+ '彗',
+ '彙',
+ '彚',
+ '徻',
+ '恚',
+ '恵',
+ '惠',
+ '慧',
+ '憓',
+ '懳',
+ '晦',
+ '暳',
+ '槥',
+ '橞',
+ '檅',
+ '櫘',
+ '汇',
+ '泋',
+ '滙',
+ '潓',
+ '烩',
+ '燴',
+ '獩',
+ '璤',
+ '瞺',
+ '硊',
+ '秽',
+ '穢',
+ '篲',
+ '絵',
+ '繪',
+ '绘',
+ '翙',
+ '翽',
+ '荟',
+ '蔧',
+ '蕙',
+ '薈',
+ '薉',
+ '蟪',
+ '詯',
+ '誨',
+ '諱',
+ '譓',
+ '譿',
+ '讳',
+ '诲',
+ '賄',
+ '贿',
+ '鐬',
+ '闠',
+ '阓',
+ '靧',
+ '頮',
+ '顪',
+ '颒',
+ '餯',
+ '𬤝',
+ '𬭬',
+ ],
+ chuǎn: ['僢', '喘', '舛', '荈', '踳'],
+ 'tiě jiàn': ['僣'],
+ sēng: ['僧', '鬙'],
+ xiàn: [
+ '僩',
+ '僴',
+ '哯',
+ '垷',
+ '塪',
+ '姭',
+ '娊',
+ '宪',
+ '岘',
+ '峴',
+ '憲',
+ '撊',
+ '晛',
+ '橌',
+ '橺',
+ '涀',
+ '瀗',
+ '献',
+ '獻',
+ '现',
+ '現',
+ '県',
+ '睍',
+ '粯',
+ '糮',
+ '絤',
+ '綫',
+ '線',
+ '线',
+ '缐',
+ '羡',
+ '羨',
+ '腺',
+ '臔',
+ '臽',
+ '苋',
+ '莧',
+ '誢',
+ '豏',
+ '鋧',
+ '錎',
+ '限',
+ '陥',
+ '陷',
+ '霰',
+ '餡',
+ '馅',
+ '麲',
+ '鼸',
+ '𬀪',
+ '𪾢',
+ ],
+ 'yù jú': ['僪'],
+ 'è wū': ['僫'],
+ 'tóng zhuàng': ['僮'],
+ lǐn: [
+ '僯',
+ '凛',
+ '凜',
+ '廩',
+ '廪',
+ '懍',
+ '懔',
+ '撛',
+ '檁',
+ '檩',
+ '澟',
+ '癛',
+ '癝',
+ ],
+ gù: [
+ '僱',
+ '凅',
+ '固',
+ '堌',
+ '崓',
+ '崮',
+ '故',
+ '梏',
+ '棝',
+ '牿',
+ '痼',
+ '祻',
+ '錮',
+ '锢',
+ '雇',
+ '顧',
+ '顾',
+ '鯝',
+ '鲴',
+ ],
+ jiāng: [
+ '僵',
+ '壃',
+ '姜',
+ '橿',
+ '殭',
+ '江',
+ '畕',
+ '疅',
+ '礓',
+ '繮',
+ '缰',
+ '翞',
+ '茳',
+ '葁',
+ '薑',
+ '螀',
+ '螿',
+ '豇',
+ '韁',
+ '鱂',
+ '鳉',
+ ],
+ mǐn: [
+ '僶',
+ '冺',
+ '刡',
+ '勄',
+ '悯',
+ '惽',
+ '愍',
+ '慜',
+ '憫',
+ '抿',
+ '敃',
+ '敏',
+ '敯',
+ '泯',
+ '潣',
+ '皿',
+ '笢',
+ '笽',
+ '簢',
+ '蠠',
+ '閔',
+ '閩',
+ '闵',
+ '闽',
+ '鰵',
+ '鳘',
+ '黽',
+ ],
+ jìn: [
+ '僸',
+ '凚',
+ '噤',
+ '嚍',
+ '墐',
+ '壗',
+ '妗',
+ '嬧',
+ '搢',
+ '晉',
+ '晋',
+ '枃',
+ '殣',
+ '浕',
+ '浸',
+ '溍',
+ '濅',
+ '濜',
+ '烬',
+ '煡',
+ '燼',
+ '琎',
+ '瑨',
+ '璶',
+ '盡',
+ '祲',
+ '縉',
+ '缙',
+ '荩',
+ '藎',
+ '覲',
+ '觐',
+ '賮',
+ '贐',
+ '赆',
+ '近',
+ '进',
+ '進',
+ '靳',
+ '齽',
+ ],
+ 'jià jie': ['價'],
+ qiào: [
+ '僺',
+ '峭',
+ '帩',
+ '撬',
+ '殻',
+ '窍',
+ '竅',
+ '誚',
+ '诮',
+ '躈',
+ '陗',
+ '鞩',
+ '韒',
+ '髚',
+ ],
+ pì: ['僻', '媲', '嫓', '屁', '澼', '甓', '疈', '譬', '闢', '鷿', '鸊', '䴙'],
+ sài: ['僿', '簺', '賽', '赛'],
+ 'chán tǎn shàn': ['儃'],
+ 'dāng dàng': ['儅', '当', '闣'],
+ xuān: [
+ '儇',
+ '喧',
+ '塇',
+ '媗',
+ '宣',
+ '愃',
+ '愋',
+ '揎',
+ '昍',
+ '暄',
+ '煊',
+ '煖',
+ '瑄',
+ '睻',
+ '矎',
+ '禤',
+ '箮',
+ '翧',
+ '翾',
+ '萱',
+ '萲',
+ '蓒',
+ '蕿',
+ '藼',
+ '蘐',
+ '蝖',
+ '蠉',
+ '諠',
+ '諼',
+ '譞',
+ '谖',
+ '軒',
+ '轩',
+ '鍹',
+ '駽',
+ '鰚',
+ '𫓶',
+ '𫍽',
+ ],
+ 'dān dàn': ['儋', '擔', '瘅'],
+ càn: ['儏', '澯', '灿', '燦', '璨', '粲', '薒', '謲'],
+ 'bīn bìn': ['儐'],
+ 'án àn': ['儑'],
+ tái: [
+ '儓',
+ '坮',
+ '嬯',
+ '抬',
+ '擡',
+ '檯',
+ '炱',
+ '炲',
+ '籉',
+ '臺',
+ '薹',
+ '跆',
+ '邰',
+ '颱',
+ '鮐',
+ '鲐',
+ ],
+ lán: [
+ '儖',
+ '兰',
+ '囒',
+ '婪',
+ '岚',
+ '嵐',
+ '幱',
+ '拦',
+ '攔',
+ '斓',
+ '斕',
+ '栏',
+ '欄',
+ '欗',
+ '澜',
+ '瀾',
+ '灆',
+ '灡',
+ '燣',
+ '燷',
+ '璼',
+ '篮',
+ '籃',
+ '籣',
+ '繿',
+ '葻',
+ '蓝',
+ '藍',
+ '蘫',
+ '蘭',
+ '褴',
+ '襕',
+ '襤',
+ '襴',
+ '襽',
+ '譋',
+ '讕',
+ '谰',
+ '躝',
+ '鑭',
+ '镧',
+ '闌',
+ '阑',
+ '韊',
+ '𬒗',
+ ],
+ 'nǐ yì ài yí': ['儗'],
+ méng: [
+ '儚',
+ '幪',
+ '曚',
+ '朦',
+ '橗',
+ '檬',
+ '氋',
+ '溕',
+ '濛',
+ '甍',
+ '甿',
+ '盟',
+ '礞',
+ '艨',
+ '莔',
+ '萌',
+ '蕄',
+ '虻',
+ '蝱',
+ '鄳',
+ '鄸',
+ '霿',
+ '靀',
+ '顭',
+ '饛',
+ '鯍',
+ '鸏',
+ '鹲',
+ '𫑡',
+ '㠓',
+ ],
+ níng: [
+ '儜',
+ '凝',
+ '咛',
+ '嚀',
+ '嬣',
+ '柠',
+ '橣',
+ '檸',
+ '狞',
+ '獰',
+ '聍',
+ '聹',
+ '薴',
+ '鑏',
+ '鬡',
+ '鸋',
+ ],
+ qióng: [
+ '儝',
+ '卭',
+ '宆',
+ '惸',
+ '憌',
+ '桏',
+ '橩',
+ '焪',
+ '焭',
+ '煢',
+ '熍',
+ '琼',
+ '瓊',
+ '睘',
+ '穷',
+ '穹',
+ '窮',
+ '竆',
+ '笻',
+ '筇',
+ '舼',
+ '茕',
+ '藑',
+ '藭',
+ '蛩',
+ '蛬',
+ '赹',
+ '跫',
+ '邛',
+ '銎',
+ '䓖',
+ ],
+ liè: [
+ '儠',
+ '冽',
+ '列',
+ '劣',
+ '劽',
+ '埒',
+ '埓',
+ '姴',
+ '峛',
+ '巤',
+ '挒',
+ '捩',
+ '栵',
+ '洌',
+ '浖',
+ '烈',
+ '烮',
+ '煭',
+ '犣',
+ '猎',
+ '猟',
+ '獵',
+ '聗',
+ '脟',
+ '茢',
+ '蛚',
+ '趔',
+ '躐',
+ '迾',
+ '颲',
+ '鬛',
+ '鬣',
+ '鮤',
+ '鱲',
+ '鴷',
+ '䴕',
+ '𫚭',
+ ],
+ kuǎng: ['儣', '夼', '懭'],
+ bào: [
+ '儤',
+ '勽',
+ '報',
+ '忁',
+ '报',
+ '抱',
+ '曓',
+ '爆',
+ '犦',
+ '菢',
+ '虣',
+ '蚫',
+ '豹',
+ '鉋',
+ '鑤',
+ '铇',
+ '骲',
+ '髱',
+ '鮑',
+ '鲍',
+ ],
+ biāo: [
+ '儦',
+ '墂',
+ '幖',
+ '彪',
+ '标',
+ '標',
+ '滮',
+ '瀌',
+ '熛',
+ '爂',
+ '猋',
+ '瘭',
+ '磦',
+ '膘',
+ '臕',
+ '謤',
+ '贆',
+ '鏢',
+ '鑣',
+ '镖',
+ '镳',
+ '颮',
+ '颷',
+ '飆',
+ '飇',
+ '飈',
+ '飊',
+ '飑',
+ '飙',
+ '飚',
+ '驫',
+ '骉',
+ '髟',
+ ],
+ zǎn: ['儧', '儹', '噆', '攅', '昝', '趱', '趲'],
+ háo: [
+ '儫',
+ '嗥',
+ '嘷',
+ '噑',
+ '嚎',
+ '壕',
+ '椃',
+ '毜',
+ '毫',
+ '濠',
+ '獆',
+ '獔',
+ '竓',
+ '籇',
+ '蚝',
+ '蠔',
+ '譹',
+ '豪',
+ ],
+ qìng: ['儬', '凊', '庆', '慶', '櫦', '濪', '碃', '磬', '罄', '靘'],
+ chèn: [
+ '儭',
+ '嚫',
+ '榇',
+ '櫬',
+ '疢',
+ '衬',
+ '襯',
+ '讖',
+ '谶',
+ '趁',
+ '趂',
+ '齓',
+ '齔',
+ '龀',
+ ],
+ téng: [
+ '儯',
+ '幐',
+ '滕',
+ '漛',
+ '疼',
+ '籐',
+ '籘',
+ '縢',
+ '腾',
+ '藤',
+ '虅',
+ '螣',
+ '誊',
+ '謄',
+ '邆',
+ '駦',
+ '騰',
+ '驣',
+ '鰧',
+ '䲢',
+ ],
+ 'lǒng lóng lòng': ['儱'],
+ 'chán chàn': ['儳'],
+ 'ráng xiāng': ['儴', '勷'],
+ 'huì xié': ['儶'],
+ luó: [
+ '儸',
+ '攞',
+ '椤',
+ '欏',
+ '猡',
+ '玀',
+ '箩',
+ '籮',
+ '罗',
+ '羅',
+ '脶',
+ '腡',
+ '萝',
+ '蘿',
+ '螺',
+ '覼',
+ '逻',
+ '邏',
+ '鏍',
+ '鑼',
+ '锣',
+ '镙',
+ '饠',
+ '騾',
+ '驘',
+ '骡',
+ '鸁',
+ ],
+ léi: [
+ '儽',
+ '嫘',
+ '檑',
+ '欙',
+ '瓃',
+ '畾',
+ '縲',
+ '纍',
+ '纝',
+ '缧',
+ '罍',
+ '羸',
+ '蔂',
+ '蘲',
+ '虆',
+ '轠',
+ '鐳',
+ '鑘',
+ '镭',
+ '雷',
+ '靁',
+ '鱩',
+ '鼺',
+ ],
+ 'nàng nāng': ['儾'],
+ 'wù wū': ['兀'],
+ yǔn: [
+ '允',
+ '喗',
+ '夽',
+ '抎',
+ '殒',
+ '殞',
+ '狁',
+ '磒',
+ '荺',
+ '賱',
+ '鈗',
+ '阭',
+ '陨',
+ '隕',
+ '霣',
+ '馻',
+ '齫',
+ '齳',
+ ],
+ zān: ['兂', '橵', '簪', '簮', '糌', '鐕', '鐟', '鵤'],
+ yuán: [
+ '元',
+ '円',
+ '原',
+ '厡',
+ '厵',
+ '园',
+ '圆',
+ '圎',
+ '園',
+ '圓',
+ '垣',
+ '塬',
+ '媴',
+ '嫄',
+ '援',
+ '榞',
+ '榬',
+ '橼',
+ '櫞',
+ '沅',
+ '湲',
+ '源',
+ '溒',
+ '爰',
+ '猨',
+ '猿',
+ '笎',
+ '緣',
+ '縁',
+ '缘',
+ '羱',
+ '茒',
+ '薗',
+ '蝝',
+ '蝯',
+ '螈',
+ '袁',
+ '褤',
+ '謜',
+ '轅',
+ '辕',
+ '邍',
+ '邧',
+ '酛',
+ '鈨',
+ '鎱',
+ '騵',
+ '魭',
+ '鶢',
+ '鶰',
+ '黿',
+ '鼋',
+ '𫘪',
+ ],
+ xiōng: [
+ '兄',
+ '兇',
+ '凶',
+ '匂',
+ '匈',
+ '哅',
+ '忷',
+ '恟',
+ '汹',
+ '洶',
+ '胷',
+ '胸',
+ '芎',
+ '訩',
+ '詾',
+ '讻',
+ ],
+ chōng: [
+ '充',
+ '嘃',
+ '忡',
+ '憃',
+ '憧',
+ '摏',
+ '沖',
+ '浺',
+ '珫',
+ '罿',
+ '翀',
+ '舂',
+ '艟',
+ '茺',
+ '衝',
+ '蹖',
+ '㳘',
+ ],
+ zhào: [
+ '兆',
+ '垗',
+ '旐',
+ '曌',
+ '枛',
+ '櫂',
+ '照',
+ '燳',
+ '狣',
+ '瞾',
+ '笊',
+ '罀',
+ '罩',
+ '羄',
+ '肁',
+ '肇',
+ '肈',
+ '詔',
+ '诏',
+ '赵',
+ '趙',
+ '鮡',
+ '𬶐',
+ ],
+ 'duì ruì yuè': ['兊', '兌', '兑'],
+ kè: [
+ '克',
+ '刻',
+ '勀',
+ '勊',
+ '堁',
+ '娔',
+ '客',
+ '恪',
+ '愙',
+ '氪',
+ '溘',
+ '碦',
+ '緙',
+ '缂',
+ '艐',
+ '衉',
+ '課',
+ '课',
+ '錁',
+ '锞',
+ '騍',
+ '骒',
+ ],
+ tù: ['兎', '兔', '堍', '迌', '鵵'],
+ dǎng: ['党', '攩', '欓', '譡', '讜', '谠', '黨', '𣗋'],
+ dōu: ['兜', '兠', '唗', '橷', '篼', '蔸'],
+ huǎng: [
+ '兤',
+ '奛',
+ '幌',
+ '怳',
+ '恍',
+ '晄',
+ '炾',
+ '熀',
+ '縨',
+ '詤',
+ '謊',
+ '谎',
+ ],
+ rù: ['入', '嗕', '媷', '扖', '杁', '洳', '溽', '縟', '缛', '蓐', '褥', '鳰'],
+ nèi: ['內', '氝', '氞', '錗'],
+ 'yú shù': ['兪'],
+ 'liù lù': ['六'],
+ han: ['兯', '爳'],
+ tiān: ['兲', '天', '婖', '添', '酟', '靔', '靝', '黇'],
+ 'xīng xìng': ['兴'],
+ diǎn: [
+ '典',
+ '嚸',
+ '奌',
+ '婰',
+ '敟',
+ '椣',
+ '点',
+ '碘',
+ '蒧',
+ '蕇',
+ '踮',
+ '點',
+ ],
+ 'zī cí': ['兹'],
+ jiān: [
+ '兼',
+ '冿',
+ '囏',
+ '坚',
+ '堅',
+ '奸',
+ '姦',
+ '姧',
+ '尖',
+ '幵',
+ '惤',
+ '戋',
+ '戔',
+ '搛',
+ '椾',
+ '樫',
+ '櫼',
+ '歼',
+ '殱',
+ '殲',
+ '湔',
+ '瀐',
+ '瀸',
+ '煎',
+ '熞',
+ '熸',
+ '牋',
+ '瑊',
+ '睷',
+ '礛',
+ '礷',
+ '笺',
+ '箋',
+ '緘',
+ '縑',
+ '缄',
+ '缣',
+ '肩',
+ '艰',
+ '艱',
+ '菅',
+ '菺',
+ '葌',
+ '蒹',
+ '蔪',
+ '蕑',
+ '蕳',
+ '虃',
+ '譼',
+ '豜',
+ '鑯',
+ '雃',
+ '鞯',
+ '韀',
+ '韉',
+ '餰',
+ '馢',
+ '鰔',
+ '鰜',
+ '鰹',
+ '鲣',
+ '鳒',
+ '鵑',
+ '鵳',
+ '鶼',
+ '鹣',
+ '麉',
+ ],
+ shòu: [
+ '兽',
+ '受',
+ '售',
+ '壽',
+ '夀',
+ '寿',
+ '授',
+ '狩',
+ '獣',
+ '獸',
+ '痩',
+ '瘦',
+ '綬',
+ '绶',
+ '膄',
+ ],
+ jì: [
+ '兾',
+ '冀',
+ '剂',
+ '剤',
+ '劑',
+ '勣',
+ '坖',
+ '垍',
+ '塈',
+ '妓',
+ '季',
+ '寂',
+ '寄',
+ '廭',
+ '彑',
+ '徛',
+ '忌',
+ '悸',
+ '惎',
+ '懻',
+ '技',
+ '旡',
+ '既',
+ '旣',
+ '暨',
+ '暩',
+ '曁',
+ '梞',
+ '檕',
+ '檵',
+ '洎',
+ '漃',
+ '漈',
+ '瀱',
+ '痵',
+ '癠',
+ '禝',
+ '稩',
+ '稷',
+ '穄',
+ '穊',
+ '穧',
+ '紀',
+ '継',
+ '績',
+ '繋',
+ '繼',
+ '继',
+ '绩',
+ '罽',
+ '臮',
+ '芰',
+ '茍',
+ '茤',
+ '葪',
+ '蓟',
+ '蔇',
+ '薊',
+ '蘎',
+ '蘮',
+ '蘻',
+ '裚',
+ '襀',
+ '覬',
+ '觊',
+ '計',
+ '記',
+ '誋',
+ '计',
+ '记',
+ '跡',
+ '跽',
+ '蹟',
+ '迹',
+ '际',
+ '際',
+ '霁',
+ '霽',
+ '驥',
+ '骥',
+ '髻',
+ '鬾',
+ '魝',
+ '魥',
+ '鯚',
+ '鯽',
+ '鰶',
+ '鰿',
+ '鱀',
+ '鱭',
+ '鲚',
+ '鲫',
+ '鵋',
+ '鷑',
+ '齌',
+ '𪟝',
+ '𬶨',
+ '𬶭',
+ ],
+ jiōng: ['冂', '冋', '坰', '埛', '扃', '蘏', '蘔', '駉', '駫', '𬳶'],
+ mào: [
+ '冃',
+ '冐',
+ '媢',
+ '帽',
+ '愗',
+ '懋',
+ '暓',
+ '柕',
+ '楙',
+ '毷',
+ '瑁',
+ '皃',
+ '眊',
+ '瞀',
+ '耄',
+ '茂',
+ '萺',
+ '蝐',
+ '袤',
+ '覒',
+ '貌',
+ '貿',
+ '贸',
+ '鄚',
+ '鄮',
+ ],
+ rǎn: ['冄', '冉', '姌', '媣', '染', '珃', '苒', '蒅', '䎃'],
+ 'nèi nà': ['内'],
+ gāng: [
+ '冈',
+ '冮',
+ '刚',
+ '剛',
+ '堈',
+ '堽',
+ '岡',
+ '掆',
+ '摃',
+ '棡',
+ '牨',
+ '犅',
+ '疘',
+ '綱',
+ '纲',
+ '缸',
+ '罁',
+ '罡',
+ '肛',
+ '釭',
+ '鎠',
+ '㭎',
+ ],
+ cè: [
+ '冊',
+ '册',
+ '厕',
+ '厠',
+ '夨',
+ '廁',
+ '恻',
+ '惻',
+ '憡',
+ '敇',
+ '测',
+ '測',
+ '笧',
+ '策',
+ '筞',
+ '筴',
+ '箣',
+ '荝',
+ '萗',
+ '萴',
+ '蓛',
+ ],
+ guǎ: ['冎', '剐', '剮', '叧', '寡'],
+ 'mào mò': ['冒'],
+ gòu: [
+ '冓',
+ '啂',
+ '坸',
+ '垢',
+ '够',
+ '夠',
+ '媾',
+ '彀',
+ '搆',
+ '撀',
+ '构',
+ '構',
+ '煹',
+ '覯',
+ '觏',
+ '訽',
+ '詬',
+ '诟',
+ '購',
+ '购',
+ '遘',
+ '雊',
+ ],
+ xǔ: ['冔', '喣', '暊', '栩', '珝', '盨', '糈', '詡', '諿', '诩', '鄦', '醑'],
+ mì: [
+ '冖',
+ '冪',
+ '嘧',
+ '塓',
+ '宻',
+ '密',
+ '峚',
+ '幂',
+ '幎',
+ '幦',
+ '怽',
+ '榓',
+ '樒',
+ '櫁',
+ '汨',
+ '淧',
+ '滵',
+ '漞',
+ '濗',
+ '熐',
+ '羃',
+ '蔤',
+ '蜜',
+ '覓',
+ '覔',
+ '覛',
+ '觅',
+ '謐',
+ '谧',
+ '鼏',
+ ],
+ 'yóu yín': ['冘'],
+ xiě: ['写', '冩', '藛'],
+ jūn: [
+ '军',
+ '君',
+ '均',
+ '桾',
+ '汮',
+ '皲',
+ '皸',
+ '皹',
+ '碅',
+ '莙',
+ '蚐',
+ '袀',
+ '覠',
+ '軍',
+ '鈞',
+ '銁',
+ '銞',
+ '鍕',
+ '钧',
+ '頵',
+ '鮶',
+ '鲪',
+ '麏',
+ ],
+ mí: [
+ '冞',
+ '擟',
+ '瀰',
+ '爢',
+ '猕',
+ '獼',
+ '祢',
+ '禰',
+ '縻',
+ '蒾',
+ '藌',
+ '蘪',
+ '蘼',
+ '袮',
+ '詸',
+ '謎',
+ '迷',
+ '醚',
+ '醾',
+ '醿',
+ '釄',
+ '镾',
+ '鸍',
+ '麊',
+ '麋',
+ '麛',
+ ],
+ 'guān guàn': ['冠', '覌', '観', '觀', '观'],
+ měng: [
+ '冡',
+ '勐',
+ '懵',
+ '掹',
+ '猛',
+ '獴',
+ '艋',
+ '蜢',
+ '蠓',
+ '錳',
+ '锰',
+ '鯭',
+ '鼆',
+ ],
+ zhǒng: ['冢', '塚', '尰', '歱', '煄', '瘇', '肿', '腫', '踵'],
+ zuì: [
+ '冣',
+ '嶵',
+ '晬',
+ '最',
+ '栬',
+ '槜',
+ '檇',
+ '檌',
+ '祽',
+ '絊',
+ '罪',
+ '蕞',
+ '辠',
+ '酔',
+ '酻',
+ '醉',
+ '錊',
+ ],
+ yuān: [
+ '冤',
+ '剈',
+ '囦',
+ '嬽',
+ '寃',
+ '棩',
+ '淵',
+ '渁',
+ '渆',
+ '渊',
+ '渕',
+ '灁',
+ '眢',
+ '肙',
+ '葾',
+ '蒬',
+ '蜎',
+ '蜵',
+ '駌',
+ '鳶',
+ '鴛',
+ '鵷',
+ '鸢',
+ '鸳',
+ '鹓',
+ '鼘',
+ '鼝',
+ ],
+ míng: [
+ '冥',
+ '名',
+ '明',
+ '暝',
+ '朙',
+ '榠',
+ '洺',
+ '溟',
+ '猽',
+ '眀',
+ '眳',
+ '瞑',
+ '茗',
+ '螟',
+ '覭',
+ '詺',
+ '鄍',
+ '銘',
+ '铭',
+ '鳴',
+ '鸣',
+ ],
+ kòu: [
+ '冦',
+ '叩',
+ '宼',
+ '寇',
+ '扣',
+ '敂',
+ '滱',
+ '窛',
+ '筘',
+ '簆',
+ '蔲',
+ '蔻',
+ '釦',
+ '鷇',
+ ],
+ tài: [
+ '冭',
+ '太',
+ '夳',
+ '忲',
+ '态',
+ '態',
+ '汰',
+ '汱',
+ '泰',
+ '溙',
+ '肽',
+ '舦',
+ '酞',
+ '鈦',
+ '钛',
+ ],
+ 'féng píng': ['冯', '馮'],
+ 'chōng chòng': ['冲'],
+ kuàng: [
+ '况',
+ '圹',
+ '壙',
+ '岲',
+ '懬',
+ '旷',
+ '昿',
+ '曠',
+ '框',
+ '況',
+ '爌',
+ '眖',
+ '眶',
+ '矿',
+ '砿',
+ '礦',
+ '穬',
+ '絋',
+ '絖',
+ '纊',
+ '纩',
+ '貺',
+ '贶',
+ '軦',
+ '邝',
+ '鄺',
+ '鉱',
+ '鋛',
+ '鑛',
+ '黋',
+ ],
+ lěng: ['冷'],
+ pàn: [
+ '冸',
+ '判',
+ '叛',
+ '沜',
+ '泮',
+ '溿',
+ '炍',
+ '牉',
+ '畔',
+ '盼',
+ '聁',
+ '袢',
+ '襻',
+ '詊',
+ '鋬',
+ '鑻',
+ '頖',
+ '鵥',
+ ],
+ fā: ['冹', '彂', '沷', '発', '發'],
+ xiǎn: [
+ '冼',
+ '尟',
+ '尠',
+ '崄',
+ '嶮',
+ '幰',
+ '攇',
+ '显',
+ '櫶',
+ '毨',
+ '灦',
+ '烍',
+ '燹',
+ '狝',
+ '猃',
+ '獫',
+ '獮',
+ '玁',
+ '禒',
+ '筅',
+ '箲',
+ '藓',
+ '蘚',
+ '蚬',
+ '蜆',
+ '譣',
+ '赻',
+ '跣',
+ '鍌',
+ '险',
+ '険',
+ '險',
+ '韅',
+ '顕',
+ '顯',
+ '㬎',
+ ],
+ qià: ['冾', '圶', '帢', '恰', '殎', '洽', '硈', '胢', '髂'],
+ 'jìng chēng': ['净', '凈', '淨'],
+ sōu: [
+ '凁',
+ '嗖',
+ '廀',
+ '廋',
+ '捜',
+ '搜',
+ '摉',
+ '溲',
+ '獀',
+ '艘',
+ '蒐',
+ '螋',
+ '鄋',
+ '醙',
+ '鎪',
+ '锼',
+ '颼',
+ '飕',
+ '餿',
+ '馊',
+ '騪',
+ ],
+ měi: [
+ '凂',
+ '媄',
+ '媺',
+ '嬍',
+ '嵄',
+ '挴',
+ '毎',
+ '每',
+ '浼',
+ '渼',
+ '燘',
+ '美',
+ '躾',
+ '鎂',
+ '镁',
+ '黣',
+ ],
+ tú: [
+ '凃',
+ '図',
+ '图',
+ '圖',
+ '圗',
+ '塗',
+ '屠',
+ '峹',
+ '嵞',
+ '庩',
+ '廜',
+ '徒',
+ '悇',
+ '揬',
+ '涂',
+ '瘏',
+ '筡',
+ '腯',
+ '荼',
+ '蒤',
+ '跿',
+ '途',
+ '酴',
+ '鈯',
+ '鍎',
+ '馟',
+ '駼',
+ '鵌',
+ '鶟',
+ '鷋',
+ '鷵',
+ '𬳿',
+ ],
+ zhǔn: ['准', '凖', '埻', '準', '𬘯'],
+ 'liáng liàng': ['凉', '涼', '量'],
+ diāo: [
+ '凋',
+ '刁',
+ '刟',
+ '叼',
+ '奝',
+ '弴',
+ '彫',
+ '汈',
+ '琱',
+ '碉',
+ '簓',
+ '虭',
+ '蛁',
+ '貂',
+ '錭',
+ '雕',
+ '鮉',
+ '鯛',
+ '鲷',
+ '鵰',
+ '鼦',
+ ],
+ còu: ['凑', '湊', '腠', '輳', '辏'],
+ ái: ['凒', '啀', '嘊', '捱', '溰', '癌', '皑', '皚'],
+ duó: ['凙', '剫', '夺', '奪', '痥', '踱', '鈬', '鐸', '铎'],
+ dú: [
+ '凟',
+ '匵',
+ '嬻',
+ '椟',
+ '櫝',
+ '殰',
+ '涜',
+ '牍',
+ '牘',
+ '犊',
+ '犢',
+ '独',
+ '獨',
+ '瓄',
+ '皾',
+ '裻',
+ '読',
+ '讀',
+ '讟',
+ '豄',
+ '贕',
+ '錖',
+ '鑟',
+ '韇',
+ '韣',
+ '韥',
+ '騳',
+ '髑',
+ '黩',
+ '黷',
+ ],
+ 'jǐ jī': ['几'],
+ fán: [
+ '凡',
+ '凢',
+ '凣',
+ '匥',
+ '墦',
+ '杋',
+ '柉',
+ '棥',
+ '樊',
+ '瀿',
+ '烦',
+ '煩',
+ '燔',
+ '璠',
+ '矾',
+ '礬',
+ '笲',
+ '籵',
+ '緐',
+ '羳',
+ '舤',
+ '舧',
+ '薠',
+ '蘩',
+ '蠜',
+ '襎',
+ '蹯',
+ '釩',
+ '鐇',
+ '鐢',
+ '钒',
+ '鷭',
+ '𫔍',
+ '𬸪',
+ ],
+ jū: [
+ '凥',
+ '匊',
+ '娵',
+ '婮',
+ '居',
+ '崌',
+ '抅',
+ '挶',
+ '掬',
+ '梮',
+ '椐',
+ '檋',
+ '毩',
+ '毱',
+ '泃',
+ '涺',
+ '狙',
+ '琚',
+ '疽',
+ '砠',
+ '罝',
+ '腒',
+ '艍',
+ '蜛',
+ '裾',
+ '諊',
+ '跔',
+ '踘',
+ '躹',
+ '陱',
+ '雎',
+ '鞠',
+ '鞫',
+ '駒',
+ '驹',
+ '鮈',
+ '鴡',
+ '鶋',
+ '𬶋',
+ ],
+ 'chù chǔ': ['処', '处'],
+ zhǐ: [
+ '凪',
+ '劧',
+ '咫',
+ '址',
+ '坧',
+ '帋',
+ '恉',
+ '扺',
+ '指',
+ '旨',
+ '枳',
+ '止',
+ '汦',
+ '沚',
+ '洔',
+ '淽',
+ '疻',
+ '砋',
+ '祉',
+ '秖',
+ '紙',
+ '纸',
+ '芷',
+ '藢',
+ '衹',
+ '襧',
+ '訨',
+ '趾',
+ '軹',
+ '轵',
+ '酯',
+ '阯',
+ '黹',
+ ],
+ píng: [
+ '凭',
+ '凴',
+ '呯',
+ '坪',
+ '塀',
+ '岼',
+ '帡',
+ '帲',
+ '幈',
+ '平',
+ '慿',
+ '憑',
+ '枰',
+ '洴',
+ '焩',
+ '玶',
+ '瓶',
+ '甁',
+ '竮',
+ '箳',
+ '簈',
+ '缾',
+ '荓',
+ '萍',
+ '蓱',
+ '蚲',
+ '蛢',
+ '評',
+ '评',
+ '軿',
+ '輧',
+ '郱',
+ '鮃',
+ '鲆',
+ ],
+ kǎi: [
+ '凯',
+ '凱',
+ '剀',
+ '剴',
+ '垲',
+ '塏',
+ '恺',
+ '愷',
+ '慨',
+ '暟',
+ '蒈',
+ '輆',
+ '鍇',
+ '鎧',
+ '铠',
+ '锴',
+ '闓',
+ '闿',
+ '颽',
+ ],
+ gān: [
+ '凲',
+ '坩',
+ '尲',
+ '尴',
+ '尶',
+ '尷',
+ '柑',
+ '泔',
+ '漧',
+ '玕',
+ '甘',
+ '疳',
+ '矸',
+ '竿',
+ '筸',
+ '粓',
+ '肝',
+ '苷',
+ '迀',
+ '酐',
+ '魐',
+ ],
+ 'kǎn qiǎn': ['凵'],
+ tū: [
+ '凸',
+ '堗',
+ '嶀',
+ '捸',
+ '涋',
+ '湥',
+ '痜',
+ '禿',
+ '秃',
+ '突',
+ '葖',
+ '鋵',
+ '鵚',
+ '鼵',
+ '㻬',
+ ],
+ 'āo wā': ['凹'],
+ chū: ['出', '初', '岀', '摴', '榋', '樗', '貙', '齣', '䢺', '䝙'],
+ dàng: [
+ '凼',
+ '圵',
+ '垱',
+ '壋',
+ '档',
+ '檔',
+ '氹',
+ '璗',
+ '瓽',
+ '盪',
+ '瞊',
+ '砀',
+ '碭',
+ '礑',
+ '簜',
+ '荡',
+ '菪',
+ '蕩',
+ '蘯',
+ '趤',
+ '逿',
+ '雼',
+ '𬍡',
+ ],
+ hán: [
+ '函',
+ '凾',
+ '含',
+ '圅',
+ '娢',
+ '寒',
+ '崡',
+ '晗',
+ '梒',
+ '浛',
+ '涵',
+ '澏',
+ '焓',
+ '琀',
+ '甝',
+ '筨',
+ '蜬',
+ '邗',
+ '邯',
+ '鋡',
+ '韓',
+ '韩',
+ ],
+ záo: ['凿', '鑿'],
+ dāo: ['刀', '刂', '忉', '氘', '舠', '螩', '釖', '魛', '鱽'],
+ chuāng: ['刅', '摐', '牎', '牕', '疮', '瘡', '窓', '窗', '窻'],
+ 'fēn fèn': ['分'],
+ 'qiè qiē': ['切'],
+ kān: ['刊', '勘', '堪', '戡', '栞', '龕', '龛'],
+ cǔn: ['刌', '忖'],
+ chú: [
+ '刍',
+ '厨',
+ '幮',
+ '廚',
+ '橱',
+ '櫉',
+ '櫥',
+ '滁',
+ '犓',
+ '篨',
+ '耡',
+ '芻',
+ '蒢',
+ '蒭',
+ '蜍',
+ '蟵',
+ '豠',
+ '趎',
+ '蹰',
+ '躇',
+ '躕',
+ '鉏',
+ '鋤',
+ '锄',
+ '除',
+ '雏',
+ '雛',
+ '鶵',
+ ],
+ 'huà huá': ['划'],
+ lí: [
+ '刕',
+ '剓',
+ '剺',
+ '劙',
+ '厘',
+ '喱',
+ '嚟',
+ '囄',
+ '嫠',
+ '孷',
+ '廲',
+ '悡',
+ '梨',
+ '梸',
+ '棃',
+ '漓',
+ '灕',
+ '犁',
+ '犂',
+ '狸',
+ '琍',
+ '璃',
+ '瓈',
+ '盠',
+ '睝',
+ '离',
+ '穲',
+ '竰',
+ '筣',
+ '篱',
+ '籬',
+ '糎',
+ '縭',
+ '缡',
+ '罹',
+ '艃',
+ '荲',
+ '菞',
+ '蓠',
+ '蔾',
+ '藜',
+ '蘺',
+ '蜊',
+ '蟍',
+ '蟸',
+ '蠫',
+ '褵',
+ '謧',
+ '貍',
+ '醨',
+ '鋫',
+ '錅',
+ '鏫',
+ '鑗',
+ '離',
+ '驪',
+ '骊',
+ '鯏',
+ '鯬',
+ '鱺',
+ '鲡',
+ '鵹',
+ '鸝',
+ '鹂',
+ '黎',
+ '黧',
+ '㰀',
+ ],
+ yuè: [
+ '刖',
+ '嬳',
+ '岄',
+ '岳',
+ '嶽',
+ '恱',
+ '悅',
+ '悦',
+ '戉',
+ '抈',
+ '捳',
+ '月',
+ '樾',
+ '瀹',
+ '爚',
+ '玥',
+ '礿',
+ '禴',
+ '篗',
+ '籆',
+ '籥',
+ '籰',
+ '粤',
+ '粵',
+ '蘥',
+ '蚎',
+ '蚏',
+ '説',
+ '越',
+ '跀',
+ '跃',
+ '躍',
+ '軏',
+ '鈅',
+ '鉞',
+ '鑰',
+ '钺',
+ '閱',
+ '閲',
+ '阅',
+ '鸑',
+ '鸙',
+ '黦',
+ '龠',
+ '𫐄',
+ '𬸚',
+ ],
+ liú: [
+ '刘',
+ '劉',
+ '嚠',
+ '媹',
+ '嵧',
+ '旈',
+ '旒',
+ '榴',
+ '橊',
+ '流',
+ '浏',
+ '瀏',
+ '琉',
+ '瑠',
+ '瑬',
+ '璢',
+ '畄',
+ '留',
+ '畱',
+ '疁',
+ '瘤',
+ '癅',
+ '硫',
+ '蒥',
+ '蓅',
+ '蟉',
+ '裗',
+ '鎏',
+ '鏐',
+ '鐂',
+ '镠',
+ '飀',
+ '飅',
+ '飗',
+ '駠',
+ '駵',
+ '騮',
+ '驑',
+ '骝',
+ '鰡',
+ '鶹',
+ '鹠',
+ '麍',
+ ],
+ zé: [
+ '则',
+ '則',
+ '啧',
+ '嘖',
+ '嫧',
+ '帻',
+ '幘',
+ '択',
+ '樍',
+ '歵',
+ '沢',
+ '泎',
+ '溭',
+ '皟',
+ '瞔',
+ '矠',
+ '礋',
+ '箦',
+ '簀',
+ '舴',
+ '蔶',
+ '蠌',
+ '襗',
+ '謮',
+ '賾',
+ '赜',
+ '迮',
+ '鸅',
+ '齚',
+ '齰',
+ ],
+ 'chuàng chuāng': ['创', '創'],
+ qù: ['刞', '厺', '去', '閴', '闃', '阒', '麮', '鼁'],
+ 'bié biè': ['別', '别'],
+ 'páo bào': ['刨'],
+ 'chǎn chàn': ['刬', '剗', '幝'],
+ guā: [
+ '刮',
+ '劀',
+ '桰',
+ '歄',
+ '煱',
+ '瓜',
+ '胍',
+ '踻',
+ '颪',
+ '颳',
+ '騧',
+ '鴰',
+ '鸹',
+ ],
+ gēng: [
+ '刯',
+ '庚',
+ '椩',
+ '浭',
+ '焿',
+ '畊',
+ '絚',
+ '羮',
+ '羹',
+ '耕',
+ '菮',
+ '賡',
+ '赓',
+ '鶊',
+ '鹒',
+ ],
+ dào: [
+ '到',
+ '噵',
+ '悼',
+ '椡',
+ '檤',
+ '燾',
+ '瓙',
+ '盗',
+ '盜',
+ '稲',
+ '稻',
+ '纛',
+ '翿',
+ '艔',
+ '菿',
+ '衜',
+ '衟',
+ '軇',
+ '道',
+ ],
+ chuàng: ['刱', '剏', '剙', '怆', '愴'],
+ kū: ['刳', '哭', '圐', '堀', '枯', '桍', '矻', '窟', '跍', '郀', '骷', '鮬'],
+ duò: [
+ '刴',
+ '剁',
+ '墯',
+ '尮',
+ '惰',
+ '憜',
+ '挅',
+ '桗',
+ '舵',
+ '跥',
+ '跺',
+ '陊',
+ '陏',
+ '飿',
+ '饳',
+ '鵽',
+ ],
+ 'shuā shuà': ['刷'],
+ 'quàn xuàn': ['券'],
+ 'chà shā': ['刹', '剎'],
+ 'cì cī': ['刺'],
+ guì: [
+ '刽',
+ '刿',
+ '劊',
+ '劌',
+ '撌',
+ '攰',
+ '昋',
+ '桂',
+ '椢',
+ '槶',
+ '樻',
+ '櫃',
+ '猤',
+ '禬',
+ '筀',
+ '蓕',
+ '襘',
+ '貴',
+ '贵',
+ '跪',
+ '鐀',
+ '鑎',
+ '鞼',
+ '鱖',
+ '鱥',
+ ],
+ lóu: [
+ '剅',
+ '娄',
+ '婁',
+ '廔',
+ '楼',
+ '樓',
+ '溇',
+ '漊',
+ '熡',
+ '耧',
+ '耬',
+ '艛',
+ '蒌',
+ '蔞',
+ '蝼',
+ '螻',
+ '謱',
+ '軁',
+ '遱',
+ '鞻',
+ '髅',
+ '髏',
+ '𪣻',
+ ],
+ cuò: [
+ '剉',
+ '剒',
+ '厝',
+ '夎',
+ '挫',
+ '措',
+ '棤',
+ '莝',
+ '莡',
+ '蓌',
+ '逪',
+ '銼',
+ '錯',
+ '锉',
+ '错',
+ ],
+ 'xiāo xuē': ['削'],
+ 'kēi kè': ['剋', '尅'],
+ 'là lá': ['剌'],
+ tī: ['剔', '梯', '踢', '銻', '锑', '鷈', '鷉', '䏲', '䴘'],
+ pōu: ['剖'],
+ wān: ['剜', '塆', '壪', '帵', '弯', '彎', '湾', '潫', '灣', '睕', '蜿', '豌'],
+ 'bāo bō': ['剝', '剥'],
+ duō: ['剟', '咄', '哆', '嚉', '多', '夛', '掇', '毲', '畓', '裰', '㙍'],
+ qíng: [
+ '剠',
+ '勍',
+ '夝',
+ '情',
+ '擎',
+ '晴',
+ '暒',
+ '棾',
+ '樈',
+ '檠',
+ '氰',
+ '甠',
+ '硘',
+ '葝',
+ '黥',
+ ],
+ 'yǎn shàn': ['剡'],
+ 'dū zhuó': ['剢'],
+ yān: [
+ '剦',
+ '嫣',
+ '崦',
+ '嶖',
+ '恹',
+ '懕',
+ '懨',
+ '樮',
+ '淊',
+ '淹',
+ '漹',
+ '烟',
+ '焉',
+ '焑',
+ '煙',
+ '珚',
+ '篶',
+ '胭',
+ '臙',
+ '菸',
+ '鄢',
+ '醃',
+ '閹',
+ '阉',
+ '黫',
+ ],
+ huō: ['剨', '劐', '吙', '攉', '秴', '耠', '锪', '騞', '𬴃'],
+ shèng: [
+ '剩',
+ '剰',
+ '勝',
+ '圣',
+ '墭',
+ '嵊',
+ '晠',
+ '榺',
+ '橳',
+ '琞',
+ '聖',
+ '蕂',
+ '貹',
+ '賸',
+ ],
+ 'duān zhì': ['剬'],
+ wū: [
+ '剭',
+ '呜',
+ '嗚',
+ '圬',
+ '屋',
+ '巫',
+ '弙',
+ '杇',
+ '歍',
+ '汙',
+ '汚',
+ '污',
+ '洿',
+ '烏',
+ '窏',
+ '箼',
+ '螐',
+ '誈',
+ '誣',
+ '诬',
+ '邬',
+ '鄔',
+ '鎢',
+ '钨',
+ '鰞',
+ '鴮',
+ ],
+ gē: [
+ '割',
+ '哥',
+ '圪',
+ '彁',
+ '戈',
+ '戓',
+ '戨',
+ '歌',
+ '滒',
+ '犵',
+ '肐',
+ '袼',
+ '謌',
+ '鎶',
+ '鴚',
+ '鴿',
+ '鸽',
+ ],
+ 'dá zhá': ['剳'],
+ chuán: ['剶', '暷', '椽', '篅', '舡', '舩', '船', '輲', '遄'],
+ 'tuán zhuān': ['剸', '漙', '篿'],
+ 'lù jiū': ['剹'],
+ pēng: ['剻', '匉', '嘭', '怦', '恲', '抨', '梈', '烹', '砰', '軯', '駍'],
+ piāo: ['剽', '勡', '慓', '旚', '犥', '翲', '螵', '飃', '飄', '飘', '魒'],
+ kōu: ['剾', '彄', '抠', '摳', '眍', '瞘', '芤', '𫸩'],
+ 'jiǎo chāo': ['剿', '劋', '勦', '摷'],
+ qiāo: [
+ '劁',
+ '勪',
+ '墝',
+ '幧',
+ '敲',
+ '橇',
+ '毃',
+ '燆',
+ '硗',
+ '磽',
+ '繑',
+ '趬',
+ '跷',
+ '踍',
+ '蹺',
+ '蹻',
+ '郻',
+ '鄡',
+ '鄥',
+ '鍫',
+ '鍬',
+ '鐰',
+ '锹',
+ '頝',
+ ],
+ 'huá huà': ['劃'],
+ 'zhā zhá': ['劄'],
+ 'pī pǐ': ['劈', '悂'],
+ tāng: ['劏', '嘡', '羰', '薚', '蝪', '蹚', '鞺', '鼞'],
+ chán: [
+ '劖',
+ '嚵',
+ '壥',
+ '婵',
+ '嬋',
+ '巉',
+ '廛',
+ '棎',
+ '毚',
+ '湹',
+ '潹',
+ '潺',
+ '澶',
+ '瀍',
+ '瀺',
+ '煘',
+ '獑',
+ '磛',
+ '緾',
+ '纏',
+ '纒',
+ '缠',
+ '艬',
+ '蝉',
+ '蟐',
+ '蟬',
+ '蟾',
+ '誗',
+ '讒',
+ '谗',
+ '躔',
+ '鄽',
+ '酁',
+ '鋋',
+ '鑱',
+ '镵',
+ '饞',
+ '馋',
+ ],
+ zuān: ['劗', '躜', '躦', '鉆', '鑚'],
+ mó: [
+ '劘',
+ '嫫',
+ '嬤',
+ '嬷',
+ '尛',
+ '摹',
+ '擵',
+ '橅',
+ '糢',
+ '膜',
+ '藦',
+ '蘑',
+ '謨',
+ '謩',
+ '谟',
+ '饃',
+ '饝',
+ '馍',
+ '髍',
+ '魔',
+ '魹',
+ ],
+ zhú: [
+ '劚',
+ '斸',
+ '曯',
+ '欘',
+ '灟',
+ '炢',
+ '烛',
+ '燭',
+ '爥',
+ '瘃',
+ '竹',
+ '笁',
+ '笜',
+ '舳',
+ '茿',
+ '蓫',
+ '蠋',
+ '蠾',
+ '躅',
+ '逐',
+ '逫',
+ '钃',
+ '鱁',
+ ],
+ quàn: ['劝', '勧', '勸', '牶', '韏'],
+ 'jìn jìng': ['劤', '劲', '勁'],
+ kēng: ['劥', '坑', '牼', '硁', '硜', '誙', '銵', '鍞', '鏗', '铿', '阬'],
+ 'xié liè': ['劦'],
+ 'zhù chú': ['助'],
+ nǔ: ['努', '弩', '砮', '胬'],
+ shào: ['劭', '卲', '哨', '潲', '紹', '綤', '绍', '袑', '邵'],
+ miǎo: ['劰', '杪', '淼', '渺', '眇', '秒', '篎', '緲', '缈', '藐', '邈'],
+ kǒu: ['劶', '口'],
+ wā: [
+ '劸',
+ '娲',
+ '媧',
+ '屲',
+ '挖',
+ '攨',
+ '洼',
+ '溛',
+ '漥',
+ '瓾',
+ '畖',
+ '穵',
+ '窊',
+ '窪',
+ '蛙',
+ '韈',
+ '鼃',
+ ],
+ kuāng: [
+ '劻',
+ '匡',
+ '匩',
+ '哐',
+ '恇',
+ '洭',
+ '筐',
+ '筺',
+ '誆',
+ '诓',
+ '軭',
+ '邼',
+ ],
+ hé: [
+ '劾',
+ '咊',
+ '啝',
+ '姀',
+ '峆',
+ '敆',
+ '曷',
+ '柇',
+ '楁',
+ '毼',
+ '河',
+ '涸',
+ '渮',
+ '澕',
+ '熆',
+ '皬',
+ '盇',
+ '盉',
+ '盍',
+ '盒',
+ '禾',
+ '篕',
+ '籺',
+ '粭',
+ '翮',
+ '菏',
+ '萂',
+ '覈',
+ '訸',
+ '詥',
+ '郃',
+ '釛',
+ '鉌',
+ '鑉',
+ '閡',
+ '闔',
+ '阂',
+ '阖',
+ '鞨',
+ '頜',
+ '餄',
+ '饸',
+ '魺',
+ '鹖',
+ '麧',
+ '齕',
+ '龁',
+ '龢',
+ '𬌗',
+ ],
+ gào: [
+ '勂',
+ '吿',
+ '告',
+ '峼',
+ '祮',
+ '祰',
+ '禞',
+ '筶',
+ '誥',
+ '诰',
+ '郜',
+ '鋯',
+ '锆',
+ ],
+ 'bó bèi': ['勃'],
+ láng: [
+ '勆',
+ '嫏',
+ '廊',
+ '斏',
+ '桹',
+ '榔',
+ '樃',
+ '欴',
+ '狼',
+ '琅',
+ '瑯',
+ '硠',
+ '稂',
+ '艆',
+ '蓈',
+ '蜋',
+ '螂',
+ '躴',
+ '郒',
+ '郞',
+ '鋃',
+ '鎯',
+ '锒',
+ ],
+ xūn: [
+ '勋',
+ '勛',
+ '勲',
+ '勳',
+ '嚑',
+ '坃',
+ '埙',
+ '塤',
+ '壎',
+ '壦',
+ '曛',
+ '燻',
+ '獯',
+ '矄',
+ '纁',
+ '臐',
+ '薫',
+ '薰',
+ '蘍',
+ '醺',
+ '𫄸',
+ ],
+ 'juàn juān': ['勌', '瓹'],
+ 'lè lēi': ['勒'],
+ kài: ['勓', '炌', '烗', '鎎'],
+ 'wěng yǎng': ['勜'],
+ qín: [
+ '勤',
+ '嗪',
+ '噙',
+ '嶜',
+ '庈',
+ '懃',
+ '懄',
+ '捦',
+ '擒',
+ '斳',
+ '檎',
+ '澿',
+ '珡',
+ '琴',
+ '琹',
+ '瘽',
+ '禽',
+ '秦',
+ '耹',
+ '芩',
+ '芹',
+ '菦',
+ '螓',
+ '蠄',
+ '鈙',
+ '鈫',
+ '雂',
+ '靲',
+ '鳹',
+ '鵭',
+ ],
+ jiàng: [
+ '勥',
+ '匞',
+ '匠',
+ '嵹',
+ '弜',
+ '弶',
+ '摾',
+ '櫤',
+ '洚',
+ '滰',
+ '犟',
+ '糡',
+ '糨',
+ '絳',
+ '绛',
+ '謽',
+ '酱',
+ '醤',
+ '醬',
+ ],
+ fān: [
+ '勫',
+ '嬏',
+ '帆',
+ '幡',
+ '忛',
+ '憣',
+ '旙',
+ '旛',
+ '繙',
+ '翻',
+ '藩',
+ '轓',
+ '颿',
+ '飜',
+ '鱕',
+ ],
+ juān: ['勬', '姢', '娟', '捐', '涓', '蠲', '裐', '鎸', '鐫', '镌', '鹃'],
+ 'tóng dòng': ['勭', '烔', '燑', '狪'],
+ lǜ: [
+ '勴',
+ '垏',
+ '嵂',
+ '律',
+ '慮',
+ '氯',
+ '滤',
+ '濾',
+ '爈',
+ '箻',
+ '綠',
+ '繂',
+ '膟',
+ '葎',
+ '虑',
+ '鑢',
+ ],
+ chè: [
+ '勶',
+ '坼',
+ '彻',
+ '徹',
+ '掣',
+ '撤',
+ '澈',
+ '烢',
+ '爡',
+ '瞮',
+ '硩',
+ '聅',
+ '迠',
+ '頙',
+ '㬚',
+ ],
+ sháo: ['勺', '玿', '韶'],
+ 'gōu gòu': ['勾'],
+ cōng: [
+ '匆',
+ '囪',
+ '囱',
+ '忩',
+ '怱',
+ '悤',
+ '暰',
+ '樬',
+ '漗',
+ '瑽',
+ '璁',
+ '瞛',
+ '篵',
+ '繱',
+ '聡',
+ '聦',
+ '聪',
+ '聰',
+ '苁',
+ '茐',
+ '葱',
+ '蓯',
+ '蔥',
+ '蟌',
+ '鍯',
+ '鏓',
+ '鏦',
+ '騘',
+ '驄',
+ '骢',
+ ],
+ 'táo yáo': ['匋', '陶'],
+ páo: ['匏', '咆', '垉', '庖', '爮', '狍', '袍', '褜', '軳', '鞄', '麅'],
+ dá: [
+ '匒',
+ '妲',
+ '怛',
+ '炟',
+ '燵',
+ '畣',
+ '笪',
+ '羍',
+ '荙',
+ '薘',
+ '蟽',
+ '詚',
+ '达',
+ '迏',
+ '迖',
+ '迚',
+ '逹',
+ '達',
+ '鐽',
+ '靼',
+ '鞑',
+ '韃',
+ '龖',
+ '龘',
+ '𫟼',
+ ],
+ 'huà huā': ['化'],
+ 'běi bèi': ['北'],
+ nǎo: ['匘', '垴', '堖', '嫐', '恼', '悩', '惱', '瑙', '碯', '脑', '脳', '腦'],
+ 'chí shi': ['匙'],
+ fāng: ['匚', '堏', '方', '淓', '牥', '芳', '邡', '鈁', '錺', '钫', '鴋'],
+ zā: ['匝', '咂', '帀', '沞', '臜', '臢', '迊', '鉔', '魳'],
+ qiè: [
+ '匧',
+ '厒',
+ '妾',
+ '怯',
+ '悏',
+ '惬',
+ '愜',
+ '挈',
+ '穕',
+ '窃',
+ '竊',
+ '笡',
+ '箧',
+ '篋',
+ '籡',
+ '踥',
+ '鍥',
+ '锲',
+ '鯜',
+ ],
+ 'zāng cáng': ['匨'],
+ fěi: ['匪', '奜', '悱', '棐', '榧', '篚', '翡', '蕜', '誹', '诽'],
+ 'kuì guì': ['匮', '匱'],
+ suǎn: ['匴'],
+ pǐ: ['匹', '噽', '嚭', '圮', '庀', '痞', '癖', '脴', '苉', '銢', '鴄'],
+ 'qū ōu': ['区', '區'],
+ 'kē qià': ['匼'],
+ 'yǎn yàn': ['匽', '棪'],
+ biǎn: ['匾', '惼', '揙', '碥', '稨', '窆', '藊', '褊', '貶', '贬', '鴘'],
+ nì: [
+ '匿',
+ '堄',
+ '嫟',
+ '嬺',
+ '惄',
+ '愵',
+ '昵',
+ '暱',
+ '氼',
+ '眤',
+ '睨',
+ '縌',
+ '胒',
+ '腻',
+ '膩',
+ '逆',
+ '𨺙',
+ ],
+ niàn: ['卄', '唸', '埝', '廿', '念', '惗', '艌'],
+ sà: ['卅', '櫒', '脎', '萨', '蕯', '薩', '鈒', '隡', '颯', '飒', '馺'],
+ zú: ['卆', '哫', '崪', '族', '箤', '足', '踤', '镞'],
+ shēng: [
+ '升',
+ '呏',
+ '声',
+ '斘',
+ '昇',
+ '曻',
+ '枡',
+ '殅',
+ '泩',
+ '湦',
+ '焺',
+ '牲',
+ '珄',
+ '生',
+ '甥',
+ '竔',
+ '笙',
+ '聲',
+ '鉎',
+ '鍟',
+ '阩',
+ '陞',
+ '陹',
+ '鵿',
+ '鼪',
+ ],
+ wàn: [
+ '卍',
+ '卐',
+ '忨',
+ '杤',
+ '瞣',
+ '脕',
+ '腕',
+ '萬',
+ '蟃',
+ '贎',
+ '輐',
+ '錽',
+ '𬇕',
+ ],
+ 'huá huà huā': ['华', '華'],
+ bēi: ['卑', '悲', '揹', '杯', '桮', '盃', '碑', '藣', '鵯', '鹎'],
+ 'zú cù': ['卒'],
+ 'dān shàn chán': ['单', '單'],
+ 'nán nā': ['南'],
+ 'shuài lǜ': ['卛'],
+ 'bǔ bo pú': ['卜'],
+ 'kuàng guàn': ['卝'],
+ biàn: [
+ '卞',
+ '变',
+ '変',
+ '峅',
+ '弁',
+ '徧',
+ '忭',
+ '抃',
+ '昪',
+ '汳',
+ '汴',
+ '玣',
+ '艑',
+ '苄',
+ '覍',
+ '諚',
+ '變',
+ '辡',
+ '辧',
+ '辨',
+ '辩',
+ '辫',
+ '辮',
+ '辯',
+ '遍',
+ '釆',
+ '𨚕',
+ ],
+ bǔ: ['卟', '哺', '捕', '补', '補', '鸔', '𬷕'],
+ 'zhàn zhān': ['占', '覱'],
+ 'kǎ qiǎ': ['卡'],
+ lú: [
+ '卢',
+ '嚧',
+ '垆',
+ '壚',
+ '庐',
+ '廬',
+ '曥',
+ '枦',
+ '栌',
+ '櫨',
+ '泸',
+ '瀘',
+ '炉',
+ '爐',
+ '獹',
+ '玈',
+ '瓐',
+ '盧',
+ '矑',
+ '籚',
+ '纑',
+ '罏',
+ '胪',
+ '臚',
+ '舮',
+ '舻',
+ '艫',
+ '芦',
+ '蘆',
+ '蠦',
+ '轤',
+ '轳',
+ '鈩',
+ '鑪',
+ '顱',
+ '颅',
+ '馿',
+ '髗',
+ '魲',
+ '鱸',
+ '鲈',
+ '鸕',
+ '鸬',
+ '黸',
+ '𬬻',
+ ],
+ lǔ: [
+ '卤',
+ '塷',
+ '掳',
+ '擄',
+ '樐',
+ '橹',
+ '櫓',
+ '氌',
+ '滷',
+ '澛',
+ '瀂',
+ '硵',
+ '磠',
+ '穞',
+ '艣',
+ '艪',
+ '蓾',
+ '虏',
+ '虜',
+ '鏀',
+ '鐪',
+ '鑥',
+ '镥',
+ '魯',
+ '鲁',
+ '鹵',
+ ],
+ guà: ['卦', '啩', '挂', '掛', '罣', '褂', '詿', '诖'],
+ 'áng yǎng': ['卬'],
+ yìn: [
+ '印',
+ '垽',
+ '堷',
+ '廕',
+ '慭',
+ '憖',
+ '憗',
+ '懚',
+ '洕',
+ '湚',
+ '猌',
+ '癊',
+ '胤',
+ '茚',
+ '酳',
+ '鮣',
+ '䲟',
+ ],
+ què: [
+ '却',
+ '卻',
+ '塙',
+ '崅',
+ '悫',
+ '愨',
+ '慤',
+ '搉',
+ '榷',
+ '燩',
+ '琷',
+ '皵',
+ '确',
+ '確',
+ '礭',
+ '闋',
+ '阕',
+ '鵲',
+ '鹊',
+ '𬒈',
+ ],
+ luǎn: ['卵'],
+ 'juàn juǎn': ['卷', '巻'],
+ 'chǎng ān hàn': ['厂'],
+ 'wěi yán': ['厃'],
+ tīng: [
+ '厅',
+ '厛',
+ '听',
+ '庁',
+ '廰',
+ '廳',
+ '汀',
+ '烃',
+ '烴',
+ '綎',
+ '耓',
+ '聴',
+ '聼',
+ '聽',
+ '鞓',
+ '𬘩',
+ ],
+ 'zhé zhái': ['厇'],
+ 'hàn àn': ['厈', '屽'],
+ yǎ: ['厊', '唖', '庌', '痖', '瘂', '蕥'],
+ shè: [
+ '厍',
+ '厙',
+ '弽',
+ '慑',
+ '慴',
+ '懾',
+ '摂',
+ '欇',
+ '涉',
+ '涻',
+ '渉',
+ '滠',
+ '灄',
+ '社',
+ '舎',
+ '蔎',
+ '蠂',
+ '設',
+ '设',
+ '赦',
+ '騇',
+ '麝',
+ ],
+ dǐ: [
+ '厎',
+ '呧',
+ '坘',
+ '弤',
+ '抵',
+ '拞',
+ '掋',
+ '牴',
+ '砥',
+ '菧',
+ '觝',
+ '詆',
+ '诋',
+ '軧',
+ '邸',
+ '阺',
+ '骶',
+ '鯳',
+ ],
+ 'zhǎ zhǎi': ['厏'],
+ páng: ['厐', '嫎', '庞', '徬', '舽', '螃', '逄', '鰟', '鳑', '龎', '龐'],
+ 'zhì shī': ['厔'],
+ máng: [
+ '厖',
+ '吂',
+ '哤',
+ '娏',
+ '忙',
+ '恾',
+ '杗',
+ '杧',
+ '汒',
+ '浝',
+ '牻',
+ '痝',
+ '盲',
+ '硭',
+ '笀',
+ '芒',
+ '茫',
+ '蘉',
+ '邙',
+ '釯',
+ '鋩',
+ '铓',
+ '駹',
+ ],
+ zuī: ['厜', '樶', '纗', '蟕'],
+ 'shà xià': ['厦', '廈'],
+ áo: [
+ '厫',
+ '嗷',
+ '嗸',
+ '廒',
+ '敖',
+ '滶',
+ '獒',
+ '獓',
+ '璈',
+ '翱',
+ '翶',
+ '翺',
+ '聱',
+ '蔜',
+ '螯',
+ '謷',
+ '謸',
+ '遨',
+ '鏖',
+ '隞',
+ '鰲',
+ '鳌',
+ '鷔',
+ '鼇',
+ ],
+ 'lán qiān': ['厱'],
+ 'sī mǒu': ['厶'],
+ 'gōng hóng': ['厷'],
+ 'lín miǎo': ['厸'],
+ 'qiú róu': ['厹'],
+ dū: ['厾', '嘟', '督', '醏'],
+ 'xiàn xuán': ['县', '縣'],
+ 'cān shēn cēn sān': ['参', '參', '叄', '叅'],
+ 'ài yǐ': ['叆'],
+ 'chā chà chǎ chá': ['叉'],
+ shuāng: [
+ '双',
+ '孀',
+ '孇',
+ '欆',
+ '礵',
+ '艭',
+ '雙',
+ '霜',
+ '騻',
+ '驦',
+ '骦',
+ '鷞',
+ '鸘',
+ '鹴',
+ ],
+ shōu: ['収', '收'],
+ guái: ['叏'],
+ bá: [
+ '叐',
+ '妭',
+ '抜',
+ '拔',
+ '炦',
+ '癹',
+ '胈',
+ '茇',
+ '菝',
+ '詙',
+ '跋',
+ '軷',
+ '魃',
+ '鼥',
+ ],
+ 'fā fà': ['发'],
+ 'zhuó yǐ lì jué': ['叕'],
+ qǔ: ['取', '娶', '竬', '蝺', '詓', '齲', '龋'],
+ 'jiǎ xiá': ['叚', '徦'],
+ 'wèi yù': ['叞', '尉', '蔚'],
+ dié: [
+ '叠',
+ '垤',
+ '堞',
+ '峌',
+ '幉',
+ '恎',
+ '惵',
+ '戜',
+ '曡',
+ '殜',
+ '氎',
+ '牃',
+ '牒',
+ '瓞',
+ '畳',
+ '疂',
+ '疉',
+ '疊',
+ '碟',
+ '絰',
+ '绖',
+ '耊',
+ '耋',
+ '胅',
+ '艓',
+ '苵',
+ '蜨',
+ '蝶',
+ '褋',
+ '詄',
+ '諜',
+ '谍',
+ '跮',
+ '蹀',
+ '迭',
+ '镻',
+ '鰈',
+ '鲽',
+ '鴩',
+ '𫶇',
+ ],
+ ruì: ['叡', '枘', '汭', '瑞', '睿', '芮', '蚋', '蜹', '銳', '鋭', '锐'],
+ 'jù gōu': ['句'],
+ lìng: ['另', '呤', '炩', '蘦'],
+ 'dāo dáo tāo': ['叨'],
+ 'zhī zhǐ': ['只'],
+ jiào: [
+ '叫',
+ '呌',
+ '嘂',
+ '嘦',
+ '噍',
+ '嬓',
+ '斍',
+ '斠',
+ '滘',
+ '漖',
+ '獥',
+ '珓',
+ '皭',
+ '窖',
+ '藠',
+ '訆',
+ '譥',
+ '趭',
+ '較',
+ '轎',
+ '轿',
+ '较',
+ '酵',
+ '醮',
+ '釂',
+ ],
+ 'zhào shào': ['召'],
+ 'kě kè': ['可'],
+ 'tái tāi': ['台', '苔'],
+ pǒ: ['叵', '尀', '笸', '箥', '鉕', '钷', '駊'],
+ 'yè xié': ['叶'],
+ 'hào háo': ['号'],
+ tàn: ['叹', '嘆', '探', '歎', '湠', '炭', '碳', '舕'],
+ 'hōng hóng': ['叿'],
+ miē: ['吀', '咩', '哶', '孭'],
+ 'xū yū yù': ['吁'],
+ chī: [
+ '吃',
+ '哧',
+ '喫',
+ '嗤',
+ '噄',
+ '妛',
+ '媸',
+ '彨',
+ '彲',
+ '摛',
+ '攡',
+ '殦',
+ '瓻',
+ '痴',
+ '癡',
+ '眵',
+ '瞝',
+ '笞',
+ '粚',
+ '胵',
+ '蚩',
+ '螭',
+ '訵',
+ '魑',
+ '鴟',
+ '鵄',
+ '鸱',
+ '黐',
+ '齝',
+ '𫄨',
+ ],
+ 'xuān sòng': ['吅'],
+ yāo: [
+ '吆',
+ '喓',
+ '夭',
+ '妖',
+ '幺',
+ '楆',
+ '殀',
+ '祅',
+ '腰',
+ '葽',
+ '訞',
+ '邀',
+ '鴁',
+ '鴢',
+ '㙘',
+ ],
+ zǐ: [
+ '吇',
+ '姉',
+ '姊',
+ '子',
+ '杍',
+ '梓',
+ '榟',
+ '橴',
+ '滓',
+ '矷',
+ '秭',
+ '笫',
+ '籽',
+ '紫',
+ '耔',
+ '虸',
+ '訿',
+ '釨',
+ ],
+ 'hé gě': ['合', '鲄'],
+ 'cùn dòu': ['吋'],
+ 'tóng tòng': ['同'],
+ 'tǔ tù': ['吐', '唋'],
+ 'zhà zhā': ['吒', '奓'],
+ 'xià hè': ['吓'],
+ 'ā yā': ['吖'],
+ 'ma má mǎ': ['吗'],
+ lìn: [
+ '吝',
+ '恡',
+ '悋',
+ '橉',
+ '焛',
+ '甐',
+ '膦',
+ '蔺',
+ '藺',
+ '賃',
+ '赁',
+ '蹸',
+ '躏',
+ '躙',
+ '躪',
+ '轥',
+ '閵',
+ ],
+ tūn: ['吞', '暾', '朜', '焞'],
+ 'bǐ pǐ': ['吡'],
+ qìn: ['吢', '吣', '唚', '抋', '揿', '搇', '撳', '沁', '瀙', '菣', '藽'],
+ 'jiè gè': ['吤'],
+ 'fǒu pǐ': ['否'],
+ 'ba bā': ['吧'],
+ dūn: [
+ '吨',
+ '噸',
+ '墩',
+ '墪',
+ '惇',
+ '撉',
+ '撴',
+ '犜',
+ '獤',
+ '礅',
+ '蜳',
+ '蹾',
+ '驐',
+ ],
+ fēn: [
+ '吩',
+ '帉',
+ '昐',
+ '朆',
+ '梤',
+ '棻',
+ '氛',
+ '竕',
+ '紛',
+ '纷',
+ '翂',
+ '芬',
+ '衯',
+ '訜',
+ '躮',
+ '酚',
+ '鈖',
+ '雰',
+ '餴',
+ '饙',
+ '馚',
+ ],
+ 'é huā': ['吪'],
+ 'kēng háng': ['吭', '妔'],
+ shǔn: ['吮'],
+ 'zhī zī': ['吱'],
+ 'yǐn shěn': ['吲'],
+ wú: [
+ '吳',
+ '吴',
+ '呉',
+ '墲',
+ '峿',
+ '梧',
+ '橆',
+ '毋',
+ '洖',
+ '浯',
+ '無',
+ '珸',
+ '璑',
+ '祦',
+ '芜',
+ '茣',
+ '莁',
+ '蕪',
+ '蜈',
+ '蟱',
+ '譕',
+ '郚',
+ '鋙',
+ '铻',
+ '鯃',
+ '鵐',
+ '鷡',
+ '鹀',
+ '鼯',
+ ],
+ 'chǎo chāo': ['吵'],
+ 'nà nè': ['吶'],
+ 'xuè chuò jué': ['吷'],
+ chuī: ['吹', '炊', '龡'],
+ 'dōu rú': ['吺'],
+ hǒu: ['吼', '犼'],
+ 'hōng hǒu ōu': ['吽'],
+ 'wú yù': ['吾'],
+ 'ya yā': ['呀'],
+ 'è e': ['呃'],
+ dāi: ['呆', '懛', '獃'],
+ 'mèn qǐ': ['呇'],
+ hōng: [
+ '呍',
+ '嚝',
+ '揈',
+ '灴',
+ '烘',
+ '焢',
+ '硡',
+ '薨',
+ '訇',
+ '谾',
+ '軣',
+ '輷',
+ '轟',
+ '轰',
+ '鍧',
+ ],
+ nà: [
+ '呐',
+ '捺',
+ '笝',
+ '納',
+ '纳',
+ '肭',
+ '蒳',
+ '衲',
+ '豽',
+ '貀',
+ '軜',
+ '郍',
+ '鈉',
+ '钠',
+ '靹',
+ '魶',
+ ],
+ 'tūn tiān': ['呑'],
+ 'fǔ ḿ': ['呒', '嘸'],
+ 'dāi tǎi': ['呔'],
+ 'ǒu ōu òu': ['呕'],
+ 'bài bei': ['呗'],
+ 'yuán yún yùn': ['员', '員'],
+ guō: [
+ '呙',
+ '啯',
+ '嘓',
+ '埚',
+ '堝',
+ '墎',
+ '崞',
+ '彉',
+ '彍',
+ '懖',
+ '猓',
+ '瘑',
+ '聒',
+ '蝈',
+ '蟈',
+ '郭',
+ '鈛',
+ '鍋',
+ '锅',
+ ],
+ 'huá qì': ['呚'],
+ 'qiàng qiāng': ['呛', '跄'],
+ shī: [
+ '呞',
+ '失',
+ '尸',
+ '屍',
+ '师',
+ '師',
+ '施',
+ '浉',
+ '湤',
+ '湿',
+ '溮',
+ '溼',
+ '濕',
+ '狮',
+ '獅',
+ '瑡',
+ '絁',
+ '葹',
+ '蒒',
+ '蓍',
+ '虱',
+ '蝨',
+ '褷',
+ '襹',
+ '詩',
+ '诗',
+ '邿',
+ '釃',
+ '鉇',
+ '鍦',
+ '鯴',
+ '鰤',
+ '鲺',
+ '鳲',
+ '鳾',
+ '鶳',
+ '鸤',
+ '䴓',
+ '𫚕',
+ ],
+ juǎn: ['呟', '埍', '臇', '菤', '錈', '锩'],
+ pěn: ['呠', '翸'],
+ 'wěn mǐn': ['呡'],
+ 'ne ní': ['呢'],
+ 'ḿ m̀ móu': ['呣'],
+ rán: [
+ '呥',
+ '嘫',
+ '然',
+ '燃',
+ '繎',
+ '肰',
+ '蚦',
+ '蚺',
+ '衻',
+ '袇',
+ '袡',
+ '髥',
+ '髯',
+ ],
+ 'tiè chè': ['呫'],
+ 'qì zhī': ['呮'],
+ 'zǐ cī': ['呰'],
+ 'guā gū guǎ': ['呱'],
+ 'cī zī': ['呲'],
+ 'hǒu xǔ gòu': ['呴'],
+ 'hē ā á ǎ à a': ['呵'],
+ náo: [
+ '呶',
+ '夒',
+ '峱',
+ '嶩',
+ '巎',
+ '挠',
+ '撓',
+ '猱',
+ '硇',
+ '蛲',
+ '蟯',
+ '詉',
+ '譊',
+ '鐃',
+ '铙',
+ ],
+ 'xiā gā': ['呷'],
+ pēi: ['呸', '怌', '肧', '胚', '衃', '醅'],
+ 'háo xiāo': ['呺'],
+ mìng: ['命', '掵'],
+ 'dá dàn': ['呾'],
+ 'zuǐ jǔ': ['咀'],
+ 'xián gān': ['咁'],
+ pǒu: ['咅', '哣', '犃'],
+ 'yǎng yāng': ['咉'],
+ 'zǎ zé zhā': ['咋'],
+ 'hé hè huó huò hú': ['和'],
+ hāi: ['咍'],
+ dā: ['咑', '哒', '噠', '墶', '搭', '撘', '耷', '褡', '鎝', '𨱏'],
+ 'kǎ kā': ['咔'],
+ gū: [
+ '咕',
+ '唂',
+ '唃',
+ '姑',
+ '嫴',
+ '孤',
+ '巬',
+ '巭',
+ '柧',
+ '橭',
+ '沽',
+ '泒',
+ '稒',
+ '笟',
+ '箍',
+ '箛',
+ '篐',
+ '罛',
+ '苽',
+ '菇',
+ '菰',
+ '蓇',
+ '觚',
+ '軱',
+ '軲',
+ '轱',
+ '辜',
+ '酤',
+ '鈲',
+ '鮕',
+ '鴣',
+ '鸪',
+ ],
+ 'kā gā': ['咖'],
+ zuo: ['咗'],
+ lóng: [
+ '咙',
+ '嚨',
+ '嶐',
+ '巃',
+ '巄',
+ '昽',
+ '曨',
+ '朧',
+ '栊',
+ '槞',
+ '櫳',
+ '湰',
+ '滝',
+ '漋',
+ '爖',
+ '珑',
+ '瓏',
+ '癃',
+ '眬',
+ '矓',
+ '砻',
+ '礱',
+ '礲',
+ '窿',
+ '竜',
+ '聋',
+ '聾',
+ '胧',
+ '茏',
+ '蘢',
+ '蠪',
+ '蠬',
+ '襱',
+ '豅',
+ '鏧',
+ '鑨',
+ '霳',
+ '靇',
+ '驡',
+ '鸗',
+ '龍',
+ '龒',
+ '龙',
+ ],
+ 'xiàn xián': ['咞'],
+ qì: [
+ '咠',
+ '唭',
+ '噐',
+ '器',
+ '夡',
+ '弃',
+ '憇',
+ '憩',
+ '暣',
+ '棄',
+ '欫',
+ '气',
+ '気',
+ '氣',
+ '汔',
+ '汽',
+ '泣',
+ '湆',
+ '湇',
+ '炁',
+ '甈',
+ '盵',
+ '矵',
+ '碛',
+ '碶',
+ '磜',
+ '磧',
+ '罊',
+ '芞',
+ '葺',
+ '藒',
+ '蟿',
+ '訖',
+ '讫',
+ '迄',
+ '鐑',
+ ],
+ 'xì dié': ['咥'],
+ 'liē liě lié lie': ['咧'],
+ zī: [
+ '咨',
+ '嗞',
+ '姕',
+ '姿',
+ '孜',
+ '孳',
+ '孶',
+ '崰',
+ '嵫',
+ '栥',
+ '椔',
+ '淄',
+ '湽',
+ '滋',
+ '澬',
+ '玆',
+ '禌',
+ '秶',
+ '粢',
+ '紎',
+ '緇',
+ '緕',
+ '纃',
+ '缁',
+ '茊',
+ '茲',
+ '葘',
+ '諮',
+ '谘',
+ '貲',
+ '資',
+ '赀',
+ '资',
+ '赼',
+ '趑',
+ '趦',
+ '輜',
+ '輺',
+ '辎',
+ '鄑',
+ '鈭',
+ '錙',
+ '鍿',
+ '鎡',
+ '锱',
+ '镃',
+ '頾',
+ '頿',
+ '髭',
+ '鯔',
+ '鰦',
+ '鲻',
+ '鶅',
+ '鼒',
+ '齍',
+ '齜',
+ '龇',
+ ],
+ mī: ['咪'],
+ 'jī xī qià': ['咭'],
+ 'gē luò kǎ lo': ['咯'],
+ 'shù xún': ['咰'],
+ 'zán zá zǎ zan': ['咱'],
+ 'hāi ké': ['咳'],
+ huī: [
+ '咴',
+ '噅',
+ '噕',
+ '婎',
+ '媈',
+ '幑',
+ '徽',
+ '恢',
+ '拻',
+ '挥',
+ '揮',
+ '晖',
+ '暉',
+ '楎',
+ '洃',
+ '瀈',
+ '灰',
+ '灳',
+ '烣',
+ '睳',
+ '禈',
+ '翚',
+ '翬',
+ '蘳',
+ '袆',
+ '褘',
+ '詼',
+ '诙',
+ '豗',
+ '輝',
+ '辉',
+ '鰴',
+ '麾',
+ '㧑',
+ ],
+ 'huài shì': ['咶'],
+ táo: [
+ '咷',
+ '啕',
+ '桃',
+ '檮',
+ '洮',
+ '淘',
+ '祹',
+ '綯',
+ '绹',
+ '萄',
+ '蜪',
+ '裪',
+ '迯',
+ '逃',
+ '醄',
+ '鋾',
+ '鞀',
+ '鞉',
+ '饀',
+ '駣',
+ '騊',
+ '鼗',
+ '𫘦',
+ ],
+ xián: [
+ '咸',
+ '啣',
+ '娴',
+ '娹',
+ '婱',
+ '嫌',
+ '嫺',
+ '嫻',
+ '弦',
+ '挦',
+ '撏',
+ '涎',
+ '湺',
+ '澖',
+ '甉',
+ '痫',
+ '癇',
+ '癎',
+ '絃',
+ '胘',
+ '舷',
+ '藖',
+ '蚿',
+ '蛝',
+ '衔',
+ '衘',
+ '誸',
+ '諴',
+ '賢',
+ '贒',
+ '贤',
+ '輱',
+ '醎',
+ '銜',
+ '鑦',
+ '閑',
+ '闲',
+ '鷳',
+ '鷴',
+ '鷼',
+ '鹇',
+ '鹹',
+ '麙',
+ '𫍯',
+ ],
+ 'è àn': ['咹'],
+ 'xuān xuǎn': ['咺', '烜'],
+ 'wāi hé wǒ guǎ guō': ['咼'],
+ 'yàn yè yān': ['咽'],
+ āi: ['哀', '哎', '埃', '溾', '銰', '鎄', '锿'],
+ pǐn: ['品', '榀'],
+ shěn: [
+ '哂',
+ '婶',
+ '嬸',
+ '审',
+ '宷',
+ '審',
+ '弞',
+ '曋',
+ '渖',
+ '瀋',
+ '瞫',
+ '矤',
+ '矧',
+ '覾',
+ '訠',
+ '諗',
+ '讅',
+ '谂',
+ '谉',
+ '邥',
+ '頣',
+ '魫',
+ ],
+ 'hǒng hōng hòng': ['哄'],
+ 'wā wa': ['哇'],
+ 'hā hǎ hà': ['哈'],
+ zāi: ['哉', '栽', '渽', '溨', '災', '灾', '烖', '睵', '賳'],
+ 'dì diè': ['哋'],
+ pài: ['哌', '沠', '派', '渒', '湃', '蒎', '鎃'],
+ 'gén hěn': ['哏'],
+ 'yǎ yā': ['哑', '雅'],
+ 'yuě huì': ['哕', '噦'],
+ nián: ['哖', '年', '秊', '秥', '鮎', '鯰', '鲇', '鲶', '鵇', '黏'],
+ 'huá huā': ['哗', '嘩'],
+ 'jì jiē zhāi': ['哜', '嚌'],
+ mōu: ['哞'],
+ 'yō yo': ['哟', '喲'],
+ lòng: ['哢', '梇', '贚'],
+ 'ò ó é': ['哦'],
+ 'lī lǐ li': ['哩'],
+ 'nǎ na nǎi né něi': ['哪'],
+ hè: [
+ '哬',
+ '垎',
+ '壑',
+ '寉',
+ '惒',
+ '焃',
+ '煂',
+ '燺',
+ '爀',
+ '癋',
+ '碋',
+ '翯',
+ '褐',
+ '謞',
+ '賀',
+ '贺',
+ '赫',
+ '靍',
+ '靎',
+ '靏',
+ '鶴',
+ '鸖',
+ '鹤',
+ ],
+ 'bō pò bā': ['哱'],
+ zhé: [
+ '哲',
+ '啠',
+ '喆',
+ '嚞',
+ '埑',
+ '悊',
+ '摺',
+ '晢',
+ '晣',
+ '歽',
+ '矺',
+ '砓',
+ '磔',
+ '籷',
+ '粍',
+ '虴',
+ '蛰',
+ '蟄',
+ '袩',
+ '詟',
+ '謫',
+ '謺',
+ '讁',
+ '讋',
+ '谪',
+ '輒',
+ '輙',
+ '轍',
+ '辄',
+ '辙',
+ '鮿',
+ ],
+ 'liàng láng': ['哴'],
+ 'liè lǜ': ['哷'],
+ hān: ['哻', '憨', '蚶', '谽', '酣', '頇', '顸', '馠', '魽', '鼾'],
+ 'hēng hng': ['哼'],
+ gěng: [
+ '哽',
+ '埂',
+ '峺',
+ '挭',
+ '梗',
+ '綆',
+ '绠',
+ '耿',
+ '莄',
+ '郠',
+ '骾',
+ '鯁',
+ '鲠',
+ '𬒔',
+ ],
+ 'chuò yuè': ['哾'],
+ 'gě jiā': ['哿'],
+ 'bei bài': ['唄'],
+ 'hán hàn': ['唅'],
+ chún: [
+ '唇',
+ '浱',
+ '湻',
+ '滣',
+ '漘',
+ '犉',
+ '純',
+ '纯',
+ '脣',
+ '莼',
+ '蒓',
+ '蓴',
+ '醇',
+ '醕',
+ '錞',
+ '陙',
+ '鯙',
+ '鶉',
+ '鹑',
+ '𬭚',
+ ],
+ 'ài āi': ['唉'],
+ 'jiá qiǎn': ['唊'],
+ 'yán dàn xián': ['唌'],
+ chē: ['唓', '砗', '硨', '莗', '蛼'],
+ 'wú ńg ń': ['唔'],
+ zào: [
+ '唕',
+ '唣',
+ '噪',
+ '慥',
+ '梍',
+ '灶',
+ '煰',
+ '燥',
+ '皁',
+ '皂',
+ '竃',
+ '竈',
+ '簉',
+ '艁',
+ '譟',
+ '趮',
+ '躁',
+ '造',
+ '𥖨',
+ ],
+ dí: [
+ '唙',
+ '啇',
+ '嘀',
+ '嚁',
+ '嫡',
+ '廸',
+ '敌',
+ '敵',
+ '梑',
+ '涤',
+ '滌',
+ '狄',
+ '笛',
+ '籴',
+ '糴',
+ '苖',
+ '荻',
+ '蔋',
+ '蔐',
+ '藡',
+ '覿',
+ '觌',
+ '豴',
+ '迪',
+ '靮',
+ '頔',
+ '馰',
+ '髢',
+ '鸐',
+ '𬱖',
+ ],
+ 'gòng hǒng gǒng': ['唝', '嗊'],
+ dóu: ['唞'],
+ 'lào láo': ['唠', '嘮', '憦'],
+ huàn: [
+ '唤',
+ '喚',
+ '奂',
+ '奐',
+ '宦',
+ '嵈',
+ '幻',
+ '患',
+ '愌',
+ '换',
+ '換',
+ '擐',
+ '攌',
+ '梙',
+ '槵',
+ '浣',
+ '涣',
+ '渙',
+ '漶',
+ '澣',
+ '烉',
+ '焕',
+ '煥',
+ '瑍',
+ '痪',
+ '瘓',
+ '睆',
+ '肒',
+ '藧',
+ '豢',
+ '轘',
+ '逭',
+ '鯇',
+ '鯶',
+ '鰀',
+ '鲩',
+ ],
+ léng: ['唥', '塄', '楞', '碐', '薐'],
+ 'wō wěi': ['唩'],
+ fěng: ['唪', '覂', '諷', '讽'],
+ 'yín jìn': ['唫'],
+ 'hǔ xià': ['唬'],
+ wéi: [
+ '唯',
+ '围',
+ '圍',
+ '壝',
+ '峗',
+ '峞',
+ '嵬',
+ '帏',
+ '帷',
+ '幃',
+ '惟',
+ '桅',
+ '沩',
+ '洈',
+ '涠',
+ '湋',
+ '溈',
+ '潍',
+ '潙',
+ '潿',
+ '濰',
+ '犩',
+ '矀',
+ '維',
+ '维',
+ '蓶',
+ '覹',
+ '违',
+ '違',
+ '鄬',
+ '醀',
+ '鍏',
+ '闈',
+ '闱',
+ '韋',
+ '韦',
+ '鮠',
+ '𣲗',
+ '𬶏',
+ ],
+ shuā: ['唰'],
+ chàng: ['唱', '怅', '悵', '暢', '焻', '畅', '畼', '誯', '韔', '鬯'],
+ 'ér wā': ['唲'],
+ qiàng: ['唴', '炝', '熗', '羻'],
+ yō: ['唷'],
+ yū: ['唹', '淤', '瘀', '盓', '箊', '紆', '纡', '込', '迂', '迃', '陓'],
+ lài: [
+ '唻',
+ '濑',
+ '瀨',
+ '瀬',
+ '癞',
+ '癩',
+ '睐',
+ '睞',
+ '籁',
+ '籟',
+ '藾',
+ '賚',
+ '賴',
+ '赉',
+ '赖',
+ '頼',
+ '顂',
+ '鵣',
+ ],
+ tuò: ['唾', '嶞', '柝', '毤', '毻', '箨', '籜', '萚', '蘀', '跅'],
+ 'zhōu zhāo tiào': ['啁'],
+ kěn: ['啃', '垦', '墾', '恳', '懇', '肎', '肯', '肻', '豤', '錹'],
+ 'zhuó zhào': ['啅', '濯'],
+ 'hēng hèng': ['啈', '悙'],
+ 'lín lán': ['啉'],
+ 'a ā á ǎ à': ['啊'],
+ qiāng: [
+ '啌',
+ '嗴',
+ '嶈',
+ '戕',
+ '摤',
+ '斨',
+ '枪',
+ '槍',
+ '溬',
+ '牄',
+ '猐',
+ '獇',
+ '羌',
+ '羗',
+ '腔',
+ '蜣',
+ '謒',
+ '鏘',
+ '锖',
+ '锵',
+ ],
+ 'tūn zhūn xiāng duǐ': ['啍'],
+ wèn: ['問', '妏', '揾', '搵', '璺', '问', '顐'],
+ 'cuì qi': ['啐'],
+ 'dié shà jié tì': ['啑'],
+ 'yuē wā': ['啘'],
+ 'zǐ cǐ': ['啙'],
+ 'bǐ tú': ['啚'],
+ 'chuò chuài': ['啜'],
+ 'yǎ yā è': ['啞'],
+ fēi: [
+ '啡',
+ '婓',
+ '婔',
+ '扉',
+ '暃',
+ '渄',
+ '猆',
+ '緋',
+ '绯',
+ '裶',
+ '霏',
+ '非',
+ '靟',
+ '飛',
+ '飝',
+ '飞',
+ '餥',
+ '馡',
+ '騑',
+ '騛',
+ '鯡',
+ '鲱',
+ '𬴂',
+ ],
+ pí: [
+ '啤',
+ '壀',
+ '枇',
+ '毗',
+ '毘',
+ '焷',
+ '琵',
+ '疲',
+ '皮',
+ '篺',
+ '罴',
+ '羆',
+ '脾',
+ '腗',
+ '膍',
+ '蚍',
+ '蚽',
+ '蜱',
+ '螷',
+ '蠯',
+ '豼',
+ '貔',
+ '郫',
+ '鈹',
+ '阰',
+ '陴',
+ '隦',
+ '魮',
+ '鮍',
+ '鲏',
+ '鵧',
+ '鼙',
+ ],
+ shá: ['啥'],
+ 'lā la': ['啦'],
+ 'yīng qíng': ['啨'],
+ pā: ['啪', '妑', '舥', '葩', '趴'],
+ 'zhě shì': ['啫'],
+ sè: [
+ '啬',
+ '嗇',
+ '懎',
+ '擌',
+ '栜',
+ '歮',
+ '涩',
+ '渋',
+ '澀',
+ '澁',
+ '濇',
+ '濏',
+ '瀒',
+ '瑟',
+ '璱',
+ '瘷',
+ '穑',
+ '穡',
+ '穯',
+ '繬',
+ '譅',
+ '轖',
+ '銫',
+ '鏼',
+ '铯',
+ '飋',
+ ],
+ niè: [
+ '啮',
+ '嗫',
+ '噛',
+ '嚙',
+ '囁',
+ '囓',
+ '圼',
+ '孼',
+ '孽',
+ '嵲',
+ '嶭',
+ '巕',
+ '帇',
+ '敜',
+ '枿',
+ '槷',
+ '櫱',
+ '涅',
+ '湼',
+ '痆',
+ '篞',
+ '籋',
+ '糱',
+ '糵',
+ '聂',
+ '聶',
+ '臬',
+ '臲',
+ '蘖',
+ '蠥',
+ '讘',
+ '踂',
+ '踗',
+ '踙',
+ '蹑',
+ '躡',
+ '錜',
+ '鎳',
+ '鑈',
+ '鑷',
+ '钀',
+ '镊',
+ '镍',
+ '闑',
+ '陧',
+ '隉',
+ '顳',
+ '颞',
+ '齧',
+ '𫔶',
+ ],
+ 'luō luó luo': ['啰', '囉'],
+ 'tān chǎn tuō': ['啴'],
+ bo: ['啵', '蔔'],
+ dìng: [
+ '啶',
+ '定',
+ '椗',
+ '矴',
+ '碇',
+ '碠',
+ '磸',
+ '聢',
+ '腚',
+ '萣',
+ '蝊',
+ '訂',
+ '订',
+ '錠',
+ '锭',
+ '顁',
+ '飣',
+ '饤',
+ ],
+ lāng: ['啷'],
+ 'án ān': ['啽'],
+ kā: ['喀', '擖'],
+ 'yóng yú': ['喁'],
+ 'lā lá lǎ': ['喇'],
+ jiē: [
+ '喈',
+ '喼',
+ '嗟',
+ '堦',
+ '媘',
+ '接',
+ '掲',
+ '擑',
+ '湝',
+ '煯',
+ '疖',
+ '痎',
+ '癤',
+ '皆',
+ '秸',
+ '稭',
+ '脻',
+ '蝔',
+ '街',
+ '謯',
+ '阶',
+ '階',
+ '鞂',
+ '鶛',
+ ],
+ hóu: [
+ '喉',
+ '帿',
+ '猴',
+ '瘊',
+ '睺',
+ '篌',
+ '糇',
+ '翭',
+ '葔',
+ '鄇',
+ '鍭',
+ '餱',
+ '骺',
+ '鯸',
+ '𬭤',
+ ],
+ 'dié zhá': ['喋'],
+ wāi: ['喎', '歪', '竵'],
+ 'nuò rě': ['喏'],
+ 'xù huò guó': ['喐'],
+ zán: ['喒'],
+ 'wō ō': ['喔'],
+ hú: [
+ '喖',
+ '嘝',
+ '囫',
+ '壶',
+ '壷',
+ '壺',
+ '媩',
+ '弧',
+ '搰',
+ '斛',
+ '楜',
+ '槲',
+ '湖',
+ '瀫',
+ '焀',
+ '煳',
+ '狐',
+ '猢',
+ '瑚',
+ '瓳',
+ '箶',
+ '絗',
+ '縠',
+ '胡',
+ '葫',
+ '蔛',
+ '蝴',
+ '螜',
+ '衚',
+ '觳',
+ '醐',
+ '鍸',
+ '頶',
+ '餬',
+ '鬍',
+ '魱',
+ '鰗',
+ '鵠',
+ '鶘',
+ '鶦',
+ '鹕',
+ ],
+ 'huàn yuán xuǎn hé': ['喛'],
+ xǐ: [
+ '喜',
+ '囍',
+ '壐',
+ '屣',
+ '徙',
+ '憙',
+ '枲',
+ '橲',
+ '歖',
+ '漇',
+ '玺',
+ '璽',
+ '矖',
+ '禧',
+ '縰',
+ '葈',
+ '葸',
+ '蓰',
+ '蟢',
+ '謑',
+ '蹝',
+ '躧',
+ '鈢',
+ '鉨',
+ '鉩',
+ '鱚',
+ '𬭳',
+ '𬶮',
+ ],
+ 'hē hè yè': ['喝'],
+ kuì: [
+ '喟',
+ '嘳',
+ '媿',
+ '嬇',
+ '愦',
+ '愧',
+ '憒',
+ '篑',
+ '簣',
+ '籄',
+ '聩',
+ '聭',
+ '聵',
+ '膭',
+ '蕢',
+ '謉',
+ '餽',
+ '饋',
+ '馈',
+ ],
+ 'zhǒng chuáng': ['喠'],
+ 'wéi wèi': ['喡', '為', '爲'],
+ 'duó zhà': ['喥'],
+ 'sāng sàng': ['喪'],
+ 'qiáo jiāo': ['喬'],
+ 'pèn bēn': ['喯'],
+ 'cān sūn qī': ['喰'],
+ 'zhā chā': ['喳'],
+ miāo: ['喵'],
+ 'pēn pèn': ['喷'],
+ kuí: [
+ '喹',
+ '夔',
+ '奎',
+ '巙',
+ '戣',
+ '揆',
+ '晆',
+ '暌',
+ '楏',
+ '楑',
+ '櫆',
+ '犪',
+ '睽',
+ '葵',
+ '藈',
+ '蘷',
+ '虁',
+ '蝰',
+ '躨',
+ '逵',
+ '鄈',
+ '鍨',
+ '鍷',
+ '頯',
+ '馗',
+ '騤',
+ '骙',
+ '魁',
+ ],
+ 'lou lóu': ['喽'],
+ 'zào qiāo': ['喿'],
+ 'hè xiāo xiào hù': ['嗃'],
+ 'á shà': ['嗄'],
+ xiù: [
+ '嗅',
+ '岫',
+ '峀',
+ '溴',
+ '珛',
+ '琇',
+ '璓',
+ '秀',
+ '綉',
+ '繍',
+ '繡',
+ '绣',
+ '螑',
+ '袖',
+ '褎',
+ '褏',
+ '銹',
+ '鏥',
+ '鏽',
+ '锈',
+ '齅',
+ ],
+ 'qiāng qiàng': ['嗆', '戗', '戧', '蹌', '蹡'],
+ 'ài yì': ['嗌', '艾'],
+ 'má mǎ ma': ['嗎'],
+ 'kè kē': ['嗑'],
+ 'dā tà': ['嗒', '鎉'],
+ sǎng: ['嗓', '搡', '磉', '褬', '鎟', '顙', '颡'],
+ chēn: ['嗔', '抻', '琛', '瞋', '諃', '謓', '賝', '郴', '𬘭'],
+ 'wā gǔ': ['嗗'],
+ 'pǎng bēng': ['嗙'],
+ 'xián qiǎn qiān': ['嗛'],
+ lào: ['嗠', '嫪', '橯', '涝', '澇', '耢', '耮', '躼', '軂', '酪'],
+ wēng: ['嗡', '翁', '聬', '螉', '鎓', '鶲', '鹟', '𬭩'],
+ wà: ['嗢', '腽', '膃', '袜', '襪', '韤'],
+ 'hēi hāi': ['嗨'],
+ hē: ['嗬', '欱', '蠚', '訶', '诃'],
+ zi: ['嗭'],
+ sǎi: ['嗮'],
+ 'ǹg ńg ňg': ['嗯'],
+ gě: ['嗰', '舸'],
+ ná: ['嗱', '拏', '拿', '鎿', '镎'],
+ diǎ: ['嗲'],
+ 'ài ǎi āi': ['嗳'],
+ tōng: ['嗵', '樋', '炵', '蓪'],
+ 'zuī suī': ['嗺'],
+ 'zhē zhè zhù zhe': ['嗻'],
+ mò: [
+ '嗼',
+ '圽',
+ '塻',
+ '墨',
+ '妺',
+ '嫼',
+ '寞',
+ '帞',
+ '昩',
+ '末',
+ '枺',
+ '歿',
+ '殁',
+ '沫',
+ '漠',
+ '爅',
+ '獏',
+ '瘼',
+ '皌',
+ '眽',
+ '眿',
+ '瞐',
+ '瞙',
+ '砞',
+ '礳',
+ '秣',
+ '絈',
+ '纆',
+ '耱',
+ '茉',
+ '莈',
+ '蓦',
+ '蛨',
+ '蟔',
+ '貃',
+ '貊',
+ '貘',
+ '銆',
+ '鏌',
+ '镆',
+ '陌',
+ '靺',
+ '驀',
+ '魩',
+ '默',
+ '黙',
+ '𬙊',
+ ],
+ sòu: ['嗽', '瘶'],
+ tǎn: [
+ '嗿',
+ '坦',
+ '忐',
+ '憳',
+ '憻',
+ '暺',
+ '毯',
+ '璮',
+ '菼',
+ '袒',
+ '襢',
+ '醓',
+ '鉭',
+ '钽',
+ ],
+ 'jiào dǎo': ['嘄'],
+ 'kǎi gě': ['嘅'],
+ 'shān càn': ['嘇'],
+ cáo: ['嘈', '嶆', '曹', '曺', '槽', '漕', '艚', '蓸', '螬', '褿', '鏪', '𥕢'],
+ piào: ['嘌', '徱', '蔈', '驃'],
+ 'lóu lou': ['嘍'],
+ gǎ: ['尕', '玍'],
+ 'gǔ jiǎ': ['嘏'],
+ 'jiāo xiāo': ['嘐'],
+ 'xū shī': ['嘘', '噓'],
+ pó: ['嘙', '嚩', '婆', '櫇', '皤', '鄱'],
+ 'dē dēi': ['嘚'],
+ 'ma má': ['嘛'],
+ 'lē lei': ['嘞'],
+ 'gā gá gǎ': ['嘠'],
+ sāi: ['嘥', '噻', '毢', '腮', '顋', '鰓'],
+ 'zuō chuài': ['嘬'],
+ 'cháo zhāo': ['嘲', '朝', '鼂'],
+ zuǐ: ['嘴', '噿', '嶊', '璻'],
+ 'qiáo qiào': ['嘺', '翹', '谯'],
+ 'chù xù shòu': ['嘼'],
+ 'tān chǎn': ['嘽'],
+ 'dàn tán': ['嘾', '弾', '彈', '惔', '澹'],
+ 'hēi mò': ['嘿'],
+ ě: ['噁', '砨', '頋', '騀', '鵈'],
+ 'fān bo': ['噃'],
+ chuáng: ['噇', '床', '牀'],
+ 'cù zā hé': ['噈'],
+ 'tūn kuò': ['噋'],
+ 'cēng chēng': ['噌'],
+ dēng: ['噔', '嬁', '灯', '燈', '璒', '登', '竳', '簦', '艠', '豋'],
+ pū: ['噗', '扑', '撲', '攴', '攵', '潽', '炇', '陠'],
+ juē: ['噘', '屩', '屫', '撧'],
+ lū: ['噜', '嚕', '撸', '擼', '謢'],
+ zhān: [
+ '噡',
+ '岾',
+ '惉',
+ '旃',
+ '旜',
+ '枬',
+ '栴',
+ '毡',
+ '氈',
+ '氊',
+ '沾',
+ '瞻',
+ '薝',
+ '蛅',
+ '詀',
+ '詹',
+ '譫',
+ '谵',
+ '趈',
+ '邅',
+ '閚',
+ '霑',
+ '飦',
+ '饘',
+ '驙',
+ '魙',
+ '鱣',
+ '鸇',
+ '鹯',
+ '𫗴',
+ ],
+ ō: ['噢'],
+ 'zhòu zhuó': ['噣'],
+ 'jiào qiào chī': ['噭'],
+ yuàn: [
+ '噮',
+ '妴',
+ '怨',
+ '愿',
+ '掾',
+ '瑗',
+ '禐',
+ '苑',
+ '衏',
+ '裫',
+ '褑',
+ '院',
+ '願',
+ ],
+ 'ǎi ài āi': ['噯'],
+ 'yōng yǒng': ['噰', '澭'],
+ 'jué xué': ['噱'],
+ 'pēn pèn fèn': ['噴'],
+ gá: ['噶', '尜', '釓', '錷', '钆'],
+ 'xīn hěn hèn': ['噷'],
+ dāng: ['噹', '澢', '珰', '璫', '筜', '簹', '艡', '蟷', '裆', '襠'],
+ làn: ['嚂', '滥', '濫', '烂', '燗', '爁', '爛', '爤', '瓓', '糷', '钄'],
+ tà: [
+ '嚃',
+ '嚺',
+ '崉',
+ '挞',
+ '搨',
+ '撻',
+ '榻',
+ '橽',
+ '毾',
+ '涾',
+ '澾',
+ '濌',
+ '禢',
+ '粏',
+ '誻',
+ '譶',
+ '蹋',
+ '蹹',
+ '躂',
+ '躢',
+ '遝',
+ '錔',
+ '闒',
+ '闥',
+ '闼',
+ '阘',
+ '鞜',
+ '鞳',
+ ],
+ 'huō huò ǒ': ['嚄'],
+ hāo: ['嚆', '茠', '蒿', '薅'],
+ 'hè xià': ['嚇'],
+ 'xiù pì': ['嚊'],
+ 'zhōu chóu': ['嚋', '盩', '诪'],
+ mē: ['嚒'],
+ 'chā cā': ['嚓'],
+ 'bó pào bào': ['嚗'],
+ 'me mèi mò': ['嚜'],
+ 'xié hái': ['嚡'],
+ 'áo xiāo': ['嚣'],
+ mō: ['嚤', '摸'],
+ pín: [
+ '嚬',
+ '娦',
+ '嫔',
+ '嬪',
+ '玭',
+ '矉',
+ '薲',
+ '蠙',
+ '貧',
+ '贫',
+ '顰',
+ '颦',
+ '𬞟',
+ ],
+ mè: ['嚰', '濹'],
+ 'rǎng rāng': ['嚷'],
+ lá: ['嚹', '旯'],
+ 'jiáo jué jiào': ['嚼'],
+ chuò: [
+ '嚽',
+ '娖',
+ '擉',
+ '歠',
+ '涰',
+ '磭',
+ '踀',
+ '輟',
+ '辍',
+ '辵',
+ '辶',
+ '酫',
+ '鑡',
+ '餟',
+ '齪',
+ '龊',
+ ],
+ 'huān huàn': ['嚾'],
+ 'zá cà': ['囃'],
+ chài: ['囆', '虿', '蠆', '袃', '訍'],
+ 'náng nāng': ['囊'],
+ 'zá zàn cān': ['囋'],
+ sū: ['囌', '櫯', '甦', '稣', '穌', '窣', '蘇', '蘓', '酥', '鯂'],
+ zèng: ['囎', '熷', '甑', '贈', '赠', '鋥', '锃'],
+ 'zá niè yàn': ['囐'],
+ nāng: ['囔'],
+ 'luó luō luo': ['囖'],
+ 'wéi guó': ['囗'],
+ huí: [
+ '囘',
+ '回',
+ '囬',
+ '廻',
+ '廽',
+ '恛',
+ '洄',
+ '痐',
+ '茴',
+ '蚘',
+ '蛔',
+ '蛕',
+ '蜖',
+ '迴',
+ '逥',
+ '鮰',
+ ],
+ nín: ['囜', '您', '脌'],
+ 'jiǎn nān': ['囝'],
+ nān: ['囡'],
+ tuán: ['团', '団', '團', '慱', '抟', '摶', '檲', '糰', '鏄', '鷒', '鷻'],
+ 'tún dùn': ['囤', '坉'],
+ guó: [
+ '囯',
+ '囶',
+ '囻',
+ '国',
+ '圀',
+ '國',
+ '帼',
+ '幗',
+ '慖',
+ '摑',
+ '漍',
+ '聝',
+ '腘',
+ '膕',
+ '蔮',
+ '虢',
+ '馘',
+ '𬇹',
+ ],
+ kùn: ['困', '涃', '睏'],
+ 'wéi tōng': ['囲'],
+ qūn: ['囷', '夋', '逡'],
+ rì: ['囸', '日', '衵', '鈤', '馹', '驲'],
+ tāi: ['囼', '孡', '胎'],
+ pǔ: [
+ '圃',
+ '圑',
+ '擈',
+ '普',
+ '暜',
+ '樸',
+ '檏',
+ '氆',
+ '浦',
+ '溥',
+ '烳',
+ '諩',
+ '譜',
+ '谱',
+ '蹼',
+ '鐠',
+ '镨',
+ ],
+ 'quān juàn juān': ['圈', '圏'],
+ 'chuí chuán': ['圌'],
+ tuǎn: ['圕', '畽', '疃'],
+ lüè: ['圙', '掠', '略', '畧', '稤', '鋝', '鋢', '锊', '䂮'],
+ 'huán yuán': ['圜'],
+ luán: [
+ '圝',
+ '圞',
+ '奱',
+ '娈',
+ '孌',
+ '孪',
+ '孿',
+ '峦',
+ '巒',
+ '挛',
+ '攣',
+ '曫',
+ '栾',
+ '欒',
+ '滦',
+ '灤',
+ '癴',
+ '癵',
+ '羉',
+ '脔',
+ '臠',
+ '虊',
+ '銮',
+ '鑾',
+ '鵉',
+ '鸞',
+ '鸾',
+ ],
+ tǔ: ['土', '圡', '釷', '钍'],
+ 'xū wéi': ['圩'],
+ 'dì de': ['地', '嶳'],
+ 'qiān sú': ['圱'],
+ zhèn: [
+ '圳',
+ '塦',
+ '挋',
+ '振',
+ '朕',
+ '栚',
+ '甽',
+ '眹',
+ '紖',
+ '絼',
+ '纼',
+ '誫',
+ '賑',
+ '赈',
+ '鋴',
+ '鎭',
+ '鎮',
+ '镇',
+ '阵',
+ '陣',
+ '震',
+ '鴆',
+ '鸩',
+ ],
+ 'chǎng cháng': ['场', '場', '塲'],
+ 'qí yín': ['圻'],
+ jiá: [
+ '圿',
+ '忦',
+ '恝',
+ '戞',
+ '扴',
+ '脥',
+ '荚',
+ '莢',
+ '蛱',
+ '蛺',
+ '裌',
+ '跲',
+ '郏',
+ '郟',
+ '鋏',
+ '铗',
+ '頬',
+ '頰',
+ '颊',
+ '鴶',
+ '鵊',
+ ],
+ 'zhǐ zhì': ['坁'],
+ bǎn: [
+ '坂',
+ '岅',
+ '昄',
+ '板',
+ '版',
+ '瓪',
+ '粄',
+ '舨',
+ '蝂',
+ '鈑',
+ '钣',
+ '阪',
+ '魬',
+ ],
+ qǐn: ['坅', '寑', '寝', '寢', '昑', '梫', '笉', '螼', '赾', '鋟', '锓'],
+ 'méi fén': ['坆'],
+ 'rǒng kēng': ['坈'],
+ 'fāng fáng': ['坊'],
+ 'fèn bèn': ['坋'],
+ tān: ['坍', '怹', '摊', '擹', '攤', '滩', '灘', '瘫', '癱', '舑', '貪', '贪'],
+ 'huài pēi pī péi': ['坏'],
+ 'dì làn': ['坔'],
+ tán: [
+ '坛',
+ '墰',
+ '墵',
+ '壇',
+ '壜',
+ '婒',
+ '憛',
+ '昙',
+ '曇',
+ '榃',
+ '檀',
+ '潭',
+ '燂',
+ '痰',
+ '磹',
+ '罈',
+ '罎',
+ '藫',
+ '談',
+ '譚',
+ '譠',
+ '谈',
+ '谭',
+ '貚',
+ '郯',
+ '醰',
+ '錟',
+ '顃',
+ ],
+ bà: ['坝', '垻', '壩', '弝', '欛', '灞', '爸', '矲', '覇', '霸', '鮁', '鲅'],
+ fén: [
+ '坟',
+ '墳',
+ '妢',
+ '岎',
+ '幩',
+ '枌',
+ '棼',
+ '汾',
+ '焚',
+ '燌',
+ '燓',
+ '羒',
+ '羵',
+ '蒶',
+ '蕡',
+ '蚠',
+ '蚡',
+ '豮',
+ '豶',
+ '轒',
+ '鐼',
+ '隫',
+ '馩',
+ '魵',
+ '黂',
+ '鼖',
+ '鼢',
+ '𣸣',
+ ],
+ zhuì: [
+ '坠',
+ '墜',
+ '惴',
+ '甀',
+ '畷',
+ '礈',
+ '綴',
+ '縋',
+ '缀',
+ '缒',
+ '腏',
+ '膇',
+ '諈',
+ '贅',
+ '赘',
+ '醊',
+ '錣',
+ '鑆',
+ ],
+ pō: ['坡', '岥', '泼', '溌', '潑', '釙', '鏺', '钋', '頗', '颇', '䥽'],
+ 'pǎn bàn': ['坢'],
+ kūn: [
+ '坤',
+ '堃',
+ '堒',
+ '崐',
+ '崑',
+ '昆',
+ '晜',
+ '潉',
+ '焜',
+ '熴',
+ '猑',
+ '琨',
+ '瑻',
+ '菎',
+ '蜫',
+ '裈',
+ '裩',
+ '褌',
+ '醌',
+ '錕',
+ '锟',
+ '騉',
+ '髠',
+ '髡',
+ '髨',
+ '鯤',
+ '鲲',
+ '鵾',
+ '鶤',
+ '鹍',
+ ],
+ diàn: [
+ '坫',
+ '垫',
+ '墊',
+ '壂',
+ '奠',
+ '婝',
+ '店',
+ '惦',
+ '扂',
+ '橂',
+ '殿',
+ '淀',
+ '澱',
+ '玷',
+ '琔',
+ '电',
+ '癜',
+ '簟',
+ '蜔',
+ '鈿',
+ '電',
+ '靛',
+ '驔',
+ ],
+ 'mù mǔ': ['坶'],
+ 'kē kě': ['坷', '軻'],
+ xuè: ['坹', '岤', '桖', '瀥', '狘', '瞲', '謔', '谑', '趐'],
+ 'dǐ chí': ['坻', '柢'],
+ lā: ['垃', '柆', '菈', '邋'],
+ lǒng: ['垄', '垅', '壟', '壠', '拢', '攏', '竉', '陇', '隴', '𬕂'],
+ mín: [
+ '垊',
+ '姄',
+ '岷',
+ '崏',
+ '捪',
+ '旻',
+ '旼',
+ '民',
+ '珉',
+ '琘',
+ '琝',
+ '瑉',
+ '痻',
+ '盿',
+ '砇',
+ '緍',
+ '緡',
+ '缗',
+ '罠',
+ '苠',
+ '鈱',
+ '錉',
+ '鍲',
+ '鴖',
+ ],
+ 'dòng tóng': ['垌', '峒', '洞'],
+ cí: [
+ '垐',
+ '嬨',
+ '慈',
+ '柌',
+ '濨',
+ '珁',
+ '瓷',
+ '甆',
+ '磁',
+ '礠',
+ '祠',
+ '糍',
+ '茨',
+ '詞',
+ '词',
+ '辝',
+ '辞',
+ '辤',
+ '辭',
+ '雌',
+ '飺',
+ '餈',
+ '鴜',
+ '鶿',
+ '鷀',
+ '鹚',
+ ],
+ duī: ['垖', '堆', '塠', '痽', '磓', '鐓', '鐜', '鴭'],
+ 'duò duǒ': ['垛'],
+ 'duǒ duò': ['垜', '挆'],
+ chá: ['垞', '察', '嵖', '搽', '槎', '檫', '猹', '茬', '茶', '詧', '靫', '𥻗'],
+ shǎng: ['垧', '晌', '樉', '賞', '贘', '赏', '鋿', '鏛', '鑜'],
+ shǒu: ['垨', '守', '手', '扌', '艏', '首'],
+ da: ['垯', '繨', '跶'],
+ háng: [
+ '垳',
+ '斻',
+ '杭',
+ '筕',
+ '絎',
+ '绗',
+ '航',
+ '苀',
+ '蚢',
+ '裄',
+ '貥',
+ '迒',
+ '頏',
+ '颃',
+ '魧',
+ ],
+ 'ān ǎn': ['垵'],
+ xīng: [
+ '垶',
+ '惺',
+ '星',
+ '曐',
+ '煋',
+ '猩',
+ '瑆',
+ '皨',
+ '篂',
+ '腥',
+ '興',
+ '觪',
+ '觲',
+ '謃',
+ '騂',
+ '骍',
+ '鮏',
+ '鯹',
+ ],
+ 'yuàn huán': ['垸'],
+ bāng: [
+ '垹',
+ '帮',
+ '幇',
+ '幚',
+ '幫',
+ '捠',
+ '梆',
+ '浜',
+ '邦',
+ '邫',
+ '鞤',
+ '𠳐',
+ ],
+ 'póu fú': ['垺'],
+ cén: ['埁', '岑', '涔'],
+ 'běng fēng': ['埄'],
+ 'dì fáng': ['埅'],
+ 'xiá jiā': ['埉'],
+ 'mái mán': ['埋'],
+ làng: ['埌', '崀', '浪', '蒗', '閬', '㫰'],
+ 'shān yán': ['埏'],
+ 'qín jīn': ['埐'],
+ 'pǔ bù': ['埔'],
+ huā: ['埖', '婲', '椛', '硴', '糀', '花', '蒊', '蘤', '誮', '錵'],
+ 'suì sù': ['埣'],
+ 'pí pì': ['埤'],
+ 'qīng zhēng': ['埥', '鲭'],
+ 'wǎn wān': ['埦'],
+ lǔn: ['埨', '稐', '𫭢'],
+ 'zhēng chéng': ['埩'],
+ kōng: ['埪', '崆', '箜', '躻', '錓', '鵼'],
+ 'cǎi cài': ['埰', '寀', '采'],
+ 'chù tòu': ['埱'],
+ běng: ['埲', '琫', '菶', '鞛'],
+ 'kǎn xiàn': ['埳'],
+ 'yì shì': ['埶', '醳'],
+ péi: ['培', '毰', '裴', '裵', '賠', '赔', '錇', '锫', '阫', '陪'],
+ 'sào sǎo': ['埽'],
+ 'jǐn qīn jìn': ['堇'],
+ 'péng bèng': ['堋'],
+ 'qiàn zàn jiàn': ['堑'],
+ àn: [
+ '堓',
+ '屵',
+ '岸',
+ '按',
+ '暗',
+ '案',
+ '胺',
+ '荌',
+ '豻',
+ '貋',
+ '錌',
+ '闇',
+ '隌',
+ '黯',
+ ],
+ 'duò huī': ['堕', '墮'],
+ huán: [
+ '堚',
+ '寏',
+ '寰',
+ '峘',
+ '桓',
+ '洹',
+ '澴',
+ '獂',
+ '环',
+ '環',
+ '糫',
+ '繯',
+ '缳',
+ '羦',
+ '荁',
+ '萈',
+ '萑',
+ '豲',
+ '鍰',
+ '鐶',
+ '锾',
+ '镮',
+ '闤',
+ '阛',
+ '雈',
+ '鬟',
+ '鹮',
+ '𬘫',
+ '𤩽',
+ ],
+ 'bǎo bǔ pù': ['堡'],
+ 'máo móu wǔ': ['堥'],
+ ruán: ['堧', '壖', '撋'],
+ 'ài è yè': ['堨'],
+ gèng: ['堩', '暅'],
+ méi: [
+ '堳',
+ '塺',
+ '媒',
+ '嵋',
+ '徾',
+ '攗',
+ '枚',
+ '栂',
+ '梅',
+ '楣',
+ '楳',
+ '槑',
+ '湄',
+ '湈',
+ '煤',
+ '猸',
+ '玫',
+ '珻',
+ '瑂',
+ '眉',
+ '睂',
+ '禖',
+ '脄',
+ '脢',
+ '腜',
+ '苺',
+ '莓',
+ '葿',
+ '郿',
+ '酶',
+ '鎇',
+ '镅',
+ '霉',
+ '鶥',
+ '鹛',
+ '黴',
+ ],
+ dǔ: ['堵', '琽', '睹', '笃', '篤', '覩', '賭', '赌'],
+ féng: ['堸', '綘', '艂', '逢'],
+ hèng: ['堼'],
+ chūn: [
+ '堾',
+ '媋',
+ '旾',
+ '春',
+ '暙',
+ '杶',
+ '椿',
+ '槆',
+ '橁',
+ '櫄',
+ '瑃',
+ '箺',
+ '萅',
+ '蝽',
+ '輴',
+ '鰆',
+ '鶞',
+ '䲠',
+ ],
+ jiǎng: [
+ '塂',
+ '奖',
+ '奨',
+ '奬',
+ '桨',
+ '槳',
+ '獎',
+ '耩',
+ '膙',
+ '蒋',
+ '蔣',
+ '講',
+ '讲',
+ '顜',
+ ],
+ huāng: ['塃', '巟', '慌', '肓', '荒', '衁'],
+ duàn: [
+ '塅',
+ '断',
+ '斷',
+ '椴',
+ '段',
+ '毈',
+ '煅',
+ '瑖',
+ '碫',
+ '簖',
+ '籪',
+ '緞',
+ '缎',
+ '腶',
+ '葮',
+ '躖',
+ '鍛',
+ '锻',
+ ],
+ tǎ: ['塔', '墖', '獭', '獺', '鮙', '鰨', '鳎'],
+ wěng: ['塕', '奣', '嵡', '攚', '暡', '瞈', '蓊'],
+ 'sāi sài sè': ['塞'],
+ zàng: ['塟', '弉', '臓', '臟', '葬', '蔵', '銺'],
+ tián: [
+ '塡',
+ '屇',
+ '恬',
+ '沺',
+ '湉',
+ '璳',
+ '甛',
+ '甜',
+ '田',
+ '畋',
+ '畑',
+ '碵',
+ '磌',
+ '胋',
+ '闐',
+ '阗',
+ '鴫',
+ '鷆',
+ '鷏',
+ ],
+ zhèng: [
+ '塣',
+ '幁',
+ '政',
+ '証',
+ '諍',
+ '證',
+ '证',
+ '诤',
+ '郑',
+ '鄭',
+ '靕',
+ '鴊',
+ ],
+ 'tián zhèn': ['填'],
+ wēn: [
+ '塭',
+ '昷',
+ '榲',
+ '殟',
+ '温',
+ '溫',
+ '瑥',
+ '瘟',
+ '蕰',
+ '豱',
+ '輼',
+ '轀',
+ '辒',
+ '鎾',
+ '饂',
+ '鰛',
+ '鰮',
+ '鳁',
+ ],
+ liù: ['塯', '廇', '磟', '翏', '雡', '霤', '餾', '鬸', '鷚', '鹨'],
+ hǎi: ['塰', '海', '烸', '酼', '醢'],
+ lǎng: ['塱', '朖', '朗', '朤', '烺', '蓢', '㮾'],
+ bèng: ['塴', '揼', '泵', '甏', '綳', '蹦', '迸', '逬', '鏰', '镚'],
+ chén: [
+ '塵',
+ '宸',
+ '尘',
+ '忱',
+ '敐',
+ '敶',
+ '晨',
+ '曟',
+ '栕',
+ '樄',
+ '沉',
+ '煁',
+ '瘎',
+ '臣',
+ '茞',
+ '莀',
+ '莐',
+ '蔯',
+ '薼',
+ '螴',
+ '訦',
+ '諶',
+ '軙',
+ '辰',
+ '迧',
+ '鈂',
+ '陈',
+ '陳',
+ '霃',
+ '鷐',
+ '麎',
+ ],
+ 'ōu qiū': ['塸'],
+ 'qiàn jiàn': ['塹'],
+ 'zhuān tuán': ['塼'],
+ shuǎng: ['塽', '慡', '漺', '爽', '縔', '鏯'],
+ shú: ['塾', '婌', '孰', '璹', '秫', '贖', '赎'],
+ lǒu: ['塿', '嵝', '嶁', '甊', '篓', '簍'],
+ chí: [
+ '墀',
+ '弛',
+ '持',
+ '池',
+ '漦',
+ '竾',
+ '筂',
+ '箎',
+ '篪',
+ '茌',
+ '荎',
+ '蚳',
+ '謘',
+ '貾',
+ '赿',
+ '踟',
+ '迟',
+ '迡',
+ '遅',
+ '遟',
+ '遲',
+ '鍉',
+ '馳',
+ '驰',
+ ],
+ shù: [
+ '墅',
+ '庶',
+ '庻',
+ '怷',
+ '恕',
+ '戍',
+ '束',
+ '树',
+ '樹',
+ '沭',
+ '漱',
+ '潄',
+ '濖',
+ '竖',
+ '竪',
+ '絉',
+ '腧',
+ '荗',
+ '蒁',
+ '虪',
+ '術',
+ '裋',
+ '豎',
+ '述',
+ '鉥',
+ '錰',
+ '鏣',
+ '霔',
+ '鶐',
+ '𬬸',
+ ],
+ 'dì zhì': ['墆', '疐'],
+ kàn: ['墈', '崁', '瞰', '矙', '磡', '衎', '鬫'],
+ chěn: ['墋', '夦', '硶', '碜', '磣', '贂', '趻', '踸', '鍖'],
+ 'zhǐ zhuó': ['墌'],
+ qiǎng: ['墏', '繈', '繦', '羥', '襁'],
+ zēng: ['増', '增', '憎', '璔', '矰', '磳', '罾', '譄', '鄫', '鱛', '䎖'],
+ qiáng: [
+ '墙',
+ '墻',
+ '嫱',
+ '嬙',
+ '樯',
+ '檣',
+ '漒',
+ '牆',
+ '艢',
+ '蔃',
+ '蔷',
+ '蘠',
+ ],
+ 'kuài tuí': ['墤'],
+ 'tuǎn dǒng': ['墥'],
+ 'qiáo què': ['墧'],
+ 'zūn dūn': ['墫'],
+ 'qiāo áo': ['墽'],
+ 'yì tú': ['墿'],
+ 'xué bó jué': ['壆'],
+ lǎn: [
+ '壈',
+ '嬾',
+ '孄',
+ '孏',
+ '懒',
+ '懶',
+ '揽',
+ '擥',
+ '攬',
+ '榄',
+ '欖',
+ '浨',
+ '漤',
+ '灠',
+ '纜',
+ '缆',
+ '罱',
+ '覧',
+ '覽',
+ '览',
+ '醂',
+ '顲',
+ ],
+ huài: ['壊', '壞', '蘾'],
+ rǎng: ['壌', '壤', '攘', '爙'],
+ 'làn xiàn': ['壏'],
+ dǎo: [
+ '壔',
+ '导',
+ '導',
+ '岛',
+ '島',
+ '嶋',
+ '嶌',
+ '嶹',
+ '捣',
+ '搗',
+ '擣',
+ '槝',
+ '祷',
+ '禂',
+ '禱',
+ '蹈',
+ '陦',
+ '隝',
+ '隯',
+ ],
+ ruǐ: ['壡', '桵', '橤', '繠', '蕊', '蕋', '蘂', '蘃'],
+ san: ['壭'],
+ zhuàng: ['壮', '壯', '壵', '撞', '焋', '状', '狀'],
+ 'ké qiào': ['壳', '殼'],
+ kǔn: [
+ '壸',
+ '壼',
+ '悃',
+ '捆',
+ '梱',
+ '硱',
+ '祵',
+ '稇',
+ '稛',
+ '綑',
+ '裍',
+ '閫',
+ '閸',
+ '阃',
+ ],
+ mǎng: ['壾', '漭', '茻', '莽', '莾', '蠎'],
+ cún: ['壿', '存'],
+ 'zhǐ zhōng': ['夂'],
+ 'gǔ yíng': ['夃'],
+ 'jiàng xiáng': ['夅', '降'],
+ 'páng féng fēng': ['夆'],
+ zhāi: ['夈', '捚', '摘', '斋', '斎', '榸', '粂', '齋'],
+ 'xuàn xiòng': ['夐'],
+ wài: ['外', '顡'],
+ 'wǎn yuàn wān yuān': ['夗'],
+ 'mǎo wǎn': ['夘'],
+ mèng: ['夢', '夣', '孟', '梦', '癦', '霥'],
+ 'dà dài': ['大'],
+ 'fū fú': ['夫', '姇', '枎', '粰'],
+ guài: ['夬', '怪', '恠'],
+ yāng: [
+ '央',
+ '姎',
+ '抰',
+ '殃',
+ '泱',
+ '秧',
+ '胦',
+ '鉠',
+ '鍈',
+ '雵',
+ '鴦',
+ '鸯',
+ ],
+ 'hāng bèn': ['夯'],
+ gǎo: [
+ '夰',
+ '搞',
+ '杲',
+ '槀',
+ '槁',
+ '檺',
+ '稁',
+ '稾',
+ '稿',
+ '縞',
+ '缟',
+ '菒',
+ '藁',
+ '藳',
+ ],
+ 'tāo běn': ['夲'],
+ 'tóu tou': ['头'],
+ 'yǎn tāo': ['夵'],
+ 'kuā kuà': ['夸', '誇'],
+ 'jiá jiā gā xiá': ['夹'],
+ huà: [
+ '夻',
+ '婳',
+ '嫿',
+ '嬅',
+ '崋',
+ '摦',
+ '杹',
+ '枠',
+ '桦',
+ '槬',
+ '樺',
+ '澅',
+ '画',
+ '畫',
+ '畵',
+ '繣',
+ '舙',
+ '話',
+ '諙',
+ '譮',
+ '话',
+ '黊',
+ ],
+ 'jiā jiá gā xiá': ['夾'],
+ ēn: ['奀', '恩', '蒽'],
+ 'dī tì': ['奃'],
+ 'yǎn yān': ['奄', '渰'],
+ pào: ['奅', '疱', '皰', '砲', '礟', '礮', '靤', '麭'],
+ nài: ['奈', '柰', '渿', '耐', '萘', '褦', '錼', '鼐'],
+ 'quān juàn': ['奍', '弮', '棬'],
+ zòu: ['奏', '揍'],
+ 'qì qiè xiè': ['契'],
+ kāi: ['奒', '开', '揩', '鐦', '锎', '開'],
+ 'bēn bèn': ['奔', '泍'],
+ tào: ['套'],
+ 'zàng zhuǎng': ['奘'],
+ běn: ['奙', '本', '楍', '畚', '翉', '苯'],
+ 'xùn zhuì': ['奞'],
+ shē: ['奢', '檨', '猞', '畭', '畲', '賒', '賖', '赊', '輋', '𪨶'],
+ 'hǎ pò tǎi': ['奤'],
+ 'ào yù': ['奥', '奧', '澚'],
+ yūn: ['奫', '氲', '氳', '蒀', '蒕', '蝹', '贇', '赟', '𫖳'],
+ 'duǒ chě': ['奲'],
+ 'nǚ rǔ': ['女'],
+ nú: ['奴', '孥', '笯', '駑', '驽'],
+ 'dīng dǐng tiǎn': ['奵'],
+ 'tā jiě': ['她'],
+ nuán: ['奻'],
+ 'hǎo hào': ['好'],
+ fàn: [
+ '奿',
+ '嬎',
+ '梵',
+ '汎',
+ '泛',
+ '滼',
+ '瀪',
+ '犯',
+ '畈',
+ '盕',
+ '笵',
+ '範',
+ '范',
+ '訉',
+ '販',
+ '贩',
+ '軬',
+ '輽',
+ '飯',
+ '飰',
+ '饭',
+ ],
+ shuò: ['妁', '搠', '朔', '槊', '烁', '爍', '矟', '蒴', '鎙', '鑠', '铄'],
+ 'fēi pèi': ['妃'],
+ wàng: ['妄', '忘', '旺', '望', '朢'],
+ zhuāng: [
+ '妆',
+ '妝',
+ '娤',
+ '庄',
+ '庒',
+ '桩',
+ '梉',
+ '樁',
+ '粧',
+ '糚',
+ '荘',
+ '莊',
+ '装',
+ '裝',
+ ],
+ mā: ['妈', '媽'],
+ 'fū yōu': ['妋'],
+ 'hài jiè': ['妎'],
+ dù: [
+ '妒',
+ '妬',
+ '杜',
+ '殬',
+ '渡',
+ '秺',
+ '芏',
+ '荰',
+ '螙',
+ '蠧',
+ '蠹',
+ '鍍',
+ '镀',
+ '靯',
+ '𬭊',
+ ],
+ miào: ['妙', '庙', '庿', '廟', '玅', '竗'],
+ 'fǒu pēi pī': ['妚'],
+ 'yuè jué': ['妜'],
+ niū: ['妞'],
+ 'nà nàn': ['妠'],
+ tuǒ: ['妥', '嫷', '庹', '椭', '楕', '橢', '鬌', '鰖', '鵎'],
+ 'wàn yuán': ['妧'],
+ fáng: ['妨', '房', '肪', '防', '魴', '鲂'],
+ nī: ['妮'],
+ zhóu: ['妯', '碡'],
+ zhāo: ['妱', '巶', '招', '昭', '釗', '鉊', '鍣', '钊', '駋', '𬬿'],
+ 'nǎi nǐ': ['妳'],
+ tǒu: ['妵', '敨', '紏', '蘣', '黈'],
+ 'xián xuán xù': ['妶'],
+ 'zhí yì': ['妷', '秇'],
+ ē: ['妸', '妿', '婀', '屙'],
+ mèi: [
+ '妹',
+ '媚',
+ '寐',
+ '抺',
+ '旀',
+ '昧',
+ '沬',
+ '煝',
+ '痗',
+ '眛',
+ '睸',
+ '祙',
+ '篃',
+ '蝞',
+ '袂',
+ '跊',
+ '鬽',
+ '魅',
+ ],
+ 'qī qì': ['妻'],
+ 'xū xǔ': ['姁', '稰'],
+ 'shān shàn': ['姍', '姗', '苫', '釤', '钐'],
+ mán: ['姏', '慲', '樠', '蛮', '蠻', '謾', '饅', '馒', '鬗', '鬘', '鰻', '鳗'],
+ jiě: ['姐', '媎', '檞', '毑', '飷'],
+ 'wěi wēi': ['委'],
+ pīn: ['姘', '拼', '礗', '穦', '馪', '驞'],
+ 'huá huó': ['姡'],
+ 'jiāo xiáo': ['姣'],
+ 'gòu dù': ['姤'],
+ 'lǎo mǔ': ['姥'],
+ 'nián niàn': ['姩'],
+ zhěn: [
+ '姫',
+ '屒',
+ '弫',
+ '抮',
+ '昣',
+ '枕',
+ '畛',
+ '疹',
+ '眕',
+ '稹',
+ '縝',
+ '縥',
+ '缜',
+ '聄',
+ '萙',
+ '袗',
+ '裖',
+ '覙',
+ '診',
+ '诊',
+ '軫',
+ '轸',
+ '辴',
+ '駗',
+ '鬒',
+ ],
+ héng: [
+ '姮',
+ '恆',
+ '恒',
+ '烆',
+ '珩',
+ '胻',
+ '蘅',
+ '衡',
+ '鑅',
+ '鴴',
+ '鵆',
+ '鸻',
+ ],
+ 'jūn xún': ['姰'],
+ 'kuā hù': ['姱'],
+ 'è yà': ['姶'],
+ 'xiān shēn': ['姺'],
+ wá: ['娃'],
+ 'ráo rǎo': ['娆', '嬈'],
+ 'shào shāo': ['娋'],
+ xiē: ['娎', '揳', '楔', '歇', '蝎', '蠍'],
+ 'wǔ méi mǔ': ['娒'],
+ 'chuò lài': ['娕'],
+ niáng: ['娘', '嬢', '孃'],
+ 'nà nuó': ['娜', '𦰡'],
+ 'pōu bǐ': ['娝'],
+ 'něi suī': ['娞'],
+ tuì: ['娧', '煺', '蛻', '蜕', '退', '駾'],
+ mǎn: ['娨', '屘', '満', '满', '滿', '螨', '蟎', '襔', '鏋'],
+ 'wú wù yú': ['娪'],
+ 'xī āi': ['娭'],
+ 'zhuì shuì': ['娷'],
+ 'dōng dòng': ['娻'],
+ 'ǎi ái è': ['娾'],
+ 'ē ě': ['娿'],
+ mián: [
+ '婂',
+ '嬵',
+ '宀',
+ '杣',
+ '棉',
+ '檰',
+ '櫋',
+ '眠',
+ '矈',
+ '矊',
+ '矏',
+ '綿',
+ '緜',
+ '绵',
+ '芇',
+ '蝒',
+ ],
+ 'pǒu péi bù': ['婄'],
+ biǎo: ['婊', '脿', '表', '裱', '褾', '諘', '錶'],
+ 'fù fàn': ['婏'],
+ wǒ: ['婐', '婑', '我'],
+ 'ní nǐ': ['婗', '棿'],
+ 'quán juàn': ['婘', '惓'],
+ hūn: [
+ '婚',
+ '昏',
+ '昬',
+ '棔',
+ '涽',
+ '睧',
+ '睯',
+ '碈',
+ '荤',
+ '葷',
+ '蔒',
+ '轋',
+ '閽',
+ '阍',
+ ],
+ 'qiān jǐn': ['婜'],
+ 'wān wà': ['婠'],
+ 'lái lài': ['婡', '徕', '徠'],
+ 'zhōu chōu': ['婤'],
+ 'chuò nào': ['婥'],
+ 'nüè àn': ['婩'],
+ 'hùn kūn': ['婫'],
+ 'dàng yáng': ['婸'],
+ nàn: ['婻'],
+ 'ruò chuò': ['婼'],
+ jiǎ: ['婽', '岬', '斚', '斝', '榎', '槚', '檟', '玾', '甲', '胛', '鉀', '钾'],
+ 'tōu yú': ['婾', '媮'],
+ 'yù yú': ['媀'],
+ 'wéi wěi': ['媁'],
+ 'dì tí': ['媂', '珶', '苐'],
+ róu: [
+ '媃',
+ '揉',
+ '柔',
+ '渘',
+ '煣',
+ '瑈',
+ '瓇',
+ '禸',
+ '粈',
+ '糅',
+ '脜',
+ '腬',
+ '葇',
+ '蝚',
+ '蹂',
+ '輮',
+ '鍒',
+ '鞣',
+ '騥',
+ '鰇',
+ '鶔',
+ '𫐓',
+ ],
+ 'ruǎn nèn': ['媆'],
+ miáo: ['媌', '嫹', '描', '瞄', '苗', '鶓', '鹋'],
+ 'yí pèi': ['媐'],
+ 'mián miǎn': ['媔'],
+ 'tí shì': ['媞', '惿'],
+ 'duò tuó': ['媠', '沲'],
+ ǎo: ['媪', '媼', '艹', '芺', '袄', '襖', '镺'],
+ 'chú zòu': ['媰'],
+ yìng: ['媵', '映', '暎', '硬', '膡', '鱦'],
+ 'qín shēn': ['嫀'],
+ jià: ['嫁', '幏', '架', '榢', '稼', '駕', '驾'],
+ sǎo: ['嫂'],
+ 'zhēn zhěn': ['嫃'],
+ 'jiē suǒ': ['嫅'],
+ 'míng mǐng': ['嫇'],
+ niǎo: ['嫋', '嬝', '嬲', '茑', '蔦', '袅', '裊', '褭', '鸟'],
+ tāo: [
+ '嫍',
+ '幍',
+ '弢',
+ '慆',
+ '掏',
+ '搯',
+ '槄',
+ '涛',
+ '滔',
+ '濤',
+ '瑫',
+ '絛',
+ '縚',
+ '縧',
+ '绦',
+ '詜',
+ '謟',
+ '轁',
+ '鞱',
+ '韜',
+ '韬',
+ '飸',
+ '饕',
+ ],
+ biáo: ['嫑'],
+ 'piáo piāo': ['嫖', '薸'],
+ xuán: [
+ '嫙',
+ '悬',
+ '懸',
+ '暶',
+ '檈',
+ '漩',
+ '玄',
+ '璇',
+ '璿',
+ '痃',
+ '蜁',
+ '𫠊',
+ ],
+ 'màn mān': ['嫚'],
+ kāng: [
+ '嫝',
+ '嵻',
+ '康',
+ '慷',
+ '槺',
+ '漮',
+ '砊',
+ '穅',
+ '糠',
+ '躿',
+ '鏮',
+ '鱇',
+ '𡐓',
+ '𩾌',
+ ],
+ 'hān nǎn': ['嫨'],
+ nèn: ['嫩', '嫰'],
+ zhē: ['嫬', '遮'],
+ 'mā má': ['嫲'],
+ piè: ['嫳'],
+ zhǎn: [
+ '嫸',
+ '展',
+ '搌',
+ '斩',
+ '斬',
+ '琖',
+ '盏',
+ '盞',
+ '輾',
+ '醆',
+ '颭',
+ '飐',
+ ],
+ 'xiān yǎn jìn': ['嬐'],
+ liǎn: [
+ '嬚',
+ '敛',
+ '斂',
+ '琏',
+ '璉',
+ '羷',
+ '脸',
+ '臉',
+ '蔹',
+ '蘝',
+ '蘞',
+ '裣',
+ '襝',
+ '鄻',
+ ],
+ 'qióng huán xuān': ['嬛'],
+ dǒng: ['嬞', '懂', '箽', '董', '蕫', '諌'],
+ cān: ['嬠', '湌', '爘', '飡', '餐', '驂', '骖'],
+ tiǎo: ['嬥', '宨', '晀', '朓', '窱', '脁'],
+ bí: ['嬶', '荸', '鼻'],
+ liǔ: [
+ '嬼',
+ '柳',
+ '栁',
+ '桞',
+ '桺',
+ '橮',
+ '熮',
+ '珋',
+ '綹',
+ '绺',
+ '罶',
+ '羀',
+ '鋶',
+ '锍',
+ ],
+ 'qiān xiān': ['孅', '欦'],
+ 'xié huī': ['孈'],
+ 'huān quán': ['孉'],
+ 'lí lì': ['孋', '麗'],
+ 'zhú chuò': ['孎'],
+ kǒng: ['孔', '恐'],
+ 'mā zī': ['孖'],
+ 'sūn xùn': ['孙', '孫'],
+ 'bèi bó': ['孛', '誖'],
+ 'yòu niū': ['孧'],
+ zhuǎn: ['孨', '竱', '轉'],
+ hái: ['孩', '骸'],
+ nāo: ['孬'],
+ 'chán càn': ['孱'],
+ bò: ['孹', '檗', '蘗', '譒'],
+ nái: ['孻', '腉'],
+ 'níng nìng': ['宁', '寍', '寗', '寜', '寧', '甯'],
+ zhái: ['宅'],
+ 'tū jiā': ['宊'],
+ sòng: ['宋', '訟', '誦', '讼', '诵', '送', '鎹', '頌', '颂', '餸'],
+ ròu: ['宍', '肉', '譳'],
+ zhūn: ['宒', '窀', '衠', '諄', '谆', '迍'],
+ 'mì fú': ['宓'],
+ 'dàng tàn': ['宕'],
+ 'wǎn yuān': ['宛'],
+ chǒng: ['宠', '寵'],
+ qún: ['宭', '峮', '帬', '羣', '群', '裙', '裠'],
+ zǎi: ['宰', '崽'],
+ 'bǎo shí': ['宲'],
+ 'jiā jia jie': ['家'],
+ 'huāng huǎng': ['宺'],
+ kuān: ['宽', '寛', '寬', '臗', '鑧', '髋', '髖'],
+ 'sù xiǔ xiù': ['宿'],
+ 'jié zǎn': ['寁'],
+ 'bìng bǐng': ['寎'],
+ 'jìn qǐn': ['寖'],
+ 'lóu jù': ['寠'],
+ 'xiě xiè': ['寫'],
+ 'qīn qìn': ['寴'],
+ cùn: ['寸', '籿'],
+ duì: [
+ '对',
+ '対',
+ '對',
+ '怼',
+ '憝',
+ '懟',
+ '濧',
+ '瀩',
+ '碓',
+ '祋',
+ '綐',
+ '薱',
+ '譈',
+ '譵',
+ '轛',
+ '队',
+ '陮',
+ ],
+ 'lüè luó': ['寽'],
+ 'shè yè yì': ['射'],
+ 'jiāng jiàng qiāng': ['将'],
+ 'jiāng jiàng': ['將', '浆', '漿', '畺'],
+ zūn: ['尊', '嶟', '樽', '罇', '遵', '鐏', '鱒', '鳟', '鶎', '鷷', '𨱔'],
+ 'shù zhù': ['尌', '澍'],
+ xiǎo: ['小', '晓', '暁', '曉', '皛', '皢', '筱', '筿', '篠', '謏', '𫍲'],
+ 'jié jí': ['尐', '诘', '鞊'],
+ 'shǎo shào': ['少'],
+ ěr: [
+ '尒',
+ '尓',
+ '尔',
+ '栮',
+ '毦',
+ '洱',
+ '爾',
+ '珥',
+ '耳',
+ '薾',
+ '衈',
+ '趰',
+ '迩',
+ '邇',
+ '鉺',
+ '铒',
+ '餌',
+ '饵',
+ '駬',
+ ],
+ 'wāng yóu': ['尢'],
+ wāng: ['尣', '尩', '尪', '尫', '汪'],
+ liào: ['尥', '尦', '廖', '撂', '料', '炓', '窷', '鐐', '镣', '𪤗'],
+ 'méng máng lóng páng': ['尨'],
+ gà: ['尬', '魀'],
+ 'kuì kuǐ': ['尯'],
+ tuí: ['尵', '弚', '穨', '蘈', '蹪', '隤', '頹', '頺', '頽', '颓', '魋', '𬯎'],
+ yǐn: [
+ '尹',
+ '嶾',
+ '引',
+ '朄',
+ '檃',
+ '檼',
+ '櫽',
+ '淾',
+ '濥',
+ '瘾',
+ '癮',
+ '粌',
+ '蘟',
+ '蚓',
+ '螾',
+ '讔',
+ '赺',
+ '趛',
+ '輑',
+ '鈏',
+ '靷',
+ ],
+ 'chǐ chě': ['尺'],
+ kāo: ['尻', '髛'],
+ 'jìn jǐn': ['尽'],
+ 'wěi yǐ': ['尾'],
+ 'niào suī': ['尿'],
+ céng: ['层', '層', '嶒', '驓'],
+ diǎo: ['屌'],
+ 'píng bǐng bīng': ['屏'],
+ lòu: ['屚', '漏', '瘘', '瘺', '瘻', '鏤', '镂', '陋'],
+ 'shǔ zhǔ': ['属', '屬'],
+ 'xiè tì': ['屟'],
+ 'chè cǎo': ['屮'],
+ 'tún zhūn': ['屯'],
+ 'nì jǐ': ['屰'],
+ 'hóng lóng': ['屸'],
+ 'qǐ kǎi': ['岂', '豈'],
+ áng: ['岇', '昂', '昻'],
+ 'gǎng gāng': ['岗', '崗'],
+ kě: ['岢', '敤', '渇', '渴', '炣'],
+ gǒu: ['岣', '狗', '玽', '笱', '耇', '耈', '耉', '苟', '豿'],
+ tiáo: [
+ '岧',
+ '岹',
+ '樤',
+ '祒',
+ '笤',
+ '芀',
+ '萔',
+ '蓚',
+ '蓨',
+ '蜩',
+ '迢',
+ '鋚',
+ '鎥',
+ '鞗',
+ '髫',
+ '鯈',
+ '鰷',
+ '鲦',
+ '齠',
+ '龆',
+ ],
+ 'qū jū': ['岨'],
+ lǐng: ['岭', '嶺', '領', '领'],
+ pò: ['岶', '敀', '洦', '湐', '烞', '珀', '破', '砶', '粕', '蒪', '魄'],
+ 'bā kè': ['峇'],
+ luò: [
+ '峈',
+ '摞',
+ '洛',
+ '洜',
+ '犖',
+ '珞',
+ '笿',
+ '纙',
+ '荦',
+ '詻',
+ '雒',
+ '駱',
+ '骆',
+ '鵅',
+ ],
+ 'fù niè': ['峊'],
+ ěn: ['峎'],
+ 'zhì shì': ['峙', '崻'],
+ qiǎ: ['峠', '跒', '酠', '鞐'],
+ 'qiáo jiào': ['峤', '癄'],
+ 'xié yé': ['峫'],
+ bū: ['峬', '庯', '晡', '誧', '逋', '鈽', '錻', '钸', '餔', '鵏'],
+ chóng: ['崇', '崈', '爞', '虫', '蝩', '蟲', '褈', '隀'],
+ 'zú cuì': ['崒', '椊'],
+ 'líng léng': ['崚'],
+ 'dòng dōng': ['崠'],
+ xiáo: ['崤', '洨', '淆', '訤', '誵'],
+ 'pí bǐ': ['崥', '芘'],
+ 'zhǎn chán': ['崭', '嶃', '嶄'],
+ 'wǎi wēi': ['崴'],
+ 'yáng dàng': ['崵'],
+ 'shì dié': ['崼'],
+ yào: [
+ '崾',
+ '曜',
+ '熎',
+ '燿',
+ '矅',
+ '穾',
+ '窔',
+ '筄',
+ '耀',
+ '艞',
+ '药',
+ '葯',
+ '薬',
+ '藥',
+ '袎',
+ '覞',
+ '詏',
+ '讑',
+ '靿',
+ '鷂',
+ '鹞',
+ '鼼',
+ ],
+ 'kān zhàn': ['嵁'],
+ 'hán dǎng': ['嵅'],
+ 'qiàn kàn': ['嵌'],
+ 'wù máo': ['嵍'],
+ 'kě jié': ['嵑', '嶱'],
+ 'wēi wěi': ['嵔'],
+ kē: [
+ '嵙',
+ '柯',
+ '棵',
+ '榼',
+ '樖',
+ '牁',
+ '牱',
+ '犐',
+ '珂',
+ '疴',
+ '瞌',
+ '磕',
+ '礚',
+ '科',
+ '稞',
+ '窠',
+ '萪',
+ '薖',
+ '蚵',
+ '蝌',
+ '趷',
+ '轲',
+ '醘',
+ '鈳',
+ '钶',
+ '頦',
+ '顆',
+ '颗',
+ '髁',
+ ],
+ 'dàng táng': ['嵣'],
+ 'róng yíng': ['嵤', '爃'],
+ 'ái kǎi': ['嵦'],
+ 'kāo qiāo': ['嵪'],
+ cuó: ['嵯', '嵳', '痤', '矬', '蒫', '蔖', '虘', '鹺', '鹾'],
+ 'qiǎn qīn': ['嵰'],
+ 'dì dié': ['嵽'],
+ cēn: ['嵾'],
+ dǐng: ['嵿', '艼', '薡', '鐤', '頂', '顶', '鼎', '鼑'],
+ 'áo ào': ['嶅'],
+ 'pǐ pèi': ['嶏'],
+ 'jiào qiáo': ['嶠', '潐'],
+ 'jué guì': ['嶡', '鳜'],
+ 'zhān shàn': ['嶦', '鳣'],
+ 'xiè jiè': ['嶰'],
+ 'guī xī juàn': ['嶲'],
+ rū: ['嶿'],
+ 'lì liè': ['巁', '棙', '爄', '綟'],
+ 'xī guī juàn': ['巂'],
+ 'yíng hōng': ['巆'],
+ yǐng: [
+ '巊',
+ '廮',
+ '影',
+ '摬',
+ '梬',
+ '潁',
+ '瘿',
+ '癭',
+ '矨',
+ '穎',
+ '郢',
+ '鐛',
+ '頴',
+ '颍',
+ '颕',
+ '颖',
+ ],
+ chǎo: ['巐', '炒', '煼', '眧', '麨'],
+ cuán: ['巑', '櫕', '欑'],
+ chuān: ['巛', '川', '氚', '瑏', '穿'],
+ 'jīng xíng': ['巠'],
+ cháo: [
+ '巢',
+ '巣',
+ '晁',
+ '漅',
+ '潮',
+ '牊',
+ '窲',
+ '罺',
+ '謿',
+ '轈',
+ '鄛',
+ '鼌',
+ ],
+ qiǎo: ['巧', '愀', '髜'],
+ gǒng: ['巩', '廾', '拱', '拲', '栱', '汞', '珙', '輁', '鞏'],
+ 'chà chā chāi cī': ['差'],
+ 'xiàng hàng': ['巷'],
+ shuài: ['帅', '帥', '蟀'],
+ pà: ['帊', '帕', '怕', '袙'],
+ 'tǎng nú': ['帑'],
+ 'mò wà': ['帓'],
+ 'tiē tiě tiè': ['帖'],
+ zhǒu: ['帚', '晭', '疛', '睭', '箒', '肘', '菷', '鯞'],
+ 'juǎn juàn': ['帣'],
+ shuì: ['帨', '涗', '涚', '睡', '稅', '税', '裞'],
+ 'chóu dào': ['帱', '幬'],
+ 'jiǎn jiān sàn': ['帴'],
+ 'shà qiè': ['帹'],
+ 'qí jì': ['帺', '荠'],
+ 'shān qiāo shēn': ['幓'],
+ 'zhuàng chuáng': ['幢'],
+ 'chān chàn': ['幨'],
+ miè: [
+ '幭',
+ '懱',
+ '搣',
+ '滅',
+ '灭',
+ '烕',
+ '礣',
+ '篾',
+ '蔑',
+ '薎',
+ '蠛',
+ '衊',
+ '鑖',
+ '鱴',
+ '鴓',
+ ],
+ 'gān gàn': ['干'],
+ 'bìng bīng': ['并', '幷'],
+ 'jī jǐ': ['幾'],
+ 'guǎng ān': ['广'],
+ guǎng: ['広', '廣', '犷', '獷'],
+ me: ['庅'],
+ 'dùn tún': ['庉'],
+ 'bài tīng': ['庍'],
+ 'yìng yīng': ['应'],
+ 'dǐ de': ['底'],
+ 'dù duó': ['度'],
+ 'máng méng páng': ['庬'],
+ 'bìng píng': ['庰'],
+ chěng: ['庱', '悜', '睈', '逞', '騁', '骋'],
+ 'jī cuò': ['庴'],
+ qǐng: ['庼', '廎', '檾', '漀', '苘', '請', '謦', '请', '頃', '顷'],
+ 'guī wěi huì': ['廆'],
+ 'jǐn qín': ['廑'],
+ kuò: [
+ '廓',
+ '扩',
+ '拡',
+ '擴',
+ '濶',
+ '筈',
+ '萿',
+ '葀',
+ '蛞',
+ '闊',
+ '阔',
+ '霩',
+ '鞟',
+ '鞹',
+ '韕',
+ '頢',
+ '鬠',
+ ],
+ 'qiáng sè': ['廧', '薔'],
+ 'yǐn yìn': ['廴', '隐', '隠', '隱', '飮', '飲', '饮'],
+ 'pò pǎi': ['廹', '迫'],
+ 'nòng lòng': ['弄'],
+ 'dì tì tuí': ['弟'],
+ 'jué zhāng': ['弡'],
+ 'mí mǐ': ['弥', '彌', '靡'],
+ chāo: ['弨', '怊', '抄', '欩', '訬', '超', '鈔', '钞'],
+ yi: ['弬'],
+ shāo: [
+ '弰',
+ '旓',
+ '烧',
+ '焼',
+ '燒',
+ '筲',
+ '艄',
+ '萷',
+ '蕱',
+ '輎',
+ '髾',
+ '鮹',
+ ],
+ 'xuān yuān': ['弲'],
+ 'qiáng qiǎng jiàng': ['強', '强'],
+ 'tán dàn': ['弹', '醈'],
+ biè: ['彆'],
+ 'qiáng jiàng qiǎng': ['彊'],
+ 'jì xuě': ['彐'],
+ tuàn: ['彖', '褖'],
+ yuē: ['彟', '曰', '曱', '矱'],
+ 'shān xiǎn': ['彡'],
+ wén: [
+ '彣',
+ '文',
+ '炆',
+ '珳',
+ '瘒',
+ '繧',
+ '聞',
+ '芠',
+ '蚉',
+ '蚊',
+ '螡',
+ '蟁',
+ '閺',
+ '閿',
+ '闅',
+ '闦',
+ '闻',
+ '阌',
+ '雯',
+ '馼',
+ '駇',
+ '魰',
+ '鳼',
+ '鴍',
+ '鼤',
+ '𫘜',
+ ],
+ 'péng bāng': ['彭'],
+ 'piāo piào': ['彯'],
+ 'zhuó bó': ['彴'],
+ 'tuǒ yí': ['彵'],
+ 'páng fǎng': ['彷'],
+ wǎng: [
+ '彺',
+ '往',
+ '徃',
+ '惘',
+ '枉',
+ '棢',
+ '網',
+ '网',
+ '罒',
+ '罓',
+ '罔',
+ '罖',
+ '菵',
+ '蛧',
+ '蝄',
+ '誷',
+ '輞',
+ '辋',
+ '魍',
+ ],
+ cú: ['徂', '殂'],
+ 'dài dāi': ['待'],
+ huái: ['徊', '怀', '懐', '懷', '槐', '淮', '耲', '蘹', '褢', '褱', '踝'],
+ 'wā wàng jiā': ['徍'],
+ 'chěng zhèng': ['徎'],
+ 'dé děi de': ['得'],
+ 'cóng zòng': ['從'],
+ 'shì tǐ': ['徥'],
+ 'tí chí': ['徲', '鶗', '鶙'],
+ dé: ['徳', '德', '恴', '悳', '惪', '淂', '鍀', '锝'],
+ 'zhǐ zhēng': ['徴', '徵'],
+ bié: ['徶', '癿', '莂', '蛂', '襒', '蹩'],
+ 'chōng zhǒng': ['徸'],
+ 'jiǎo jiào': ['徼', '笅', '筊'],
+ 'lòng lǒng': ['徿'],
+ 'qú jù': ['忂', '渠', '瞿', '螶'],
+ 'dìng tìng': ['忊'],
+ gǎi: ['忋', '改'],
+ rěn: ['忍', '栠', '栣', '秹', '稔', '綛', '荏', '荵', '躵'],
+ chàn: ['忏', '懴', '懺', '硟', '羼', '韂', '顫'],
+ tè: ['忑', '慝', '特', '蟘', '鋱', '铽'],
+ 'tè tēi tuī': ['忒'],
+ 'gān hàn': ['忓', '攼'],
+ 'yì qì': ['忔'],
+ 'tài shì': ['忕'],
+ 'xī liě': ['忚'],
+ 'yīng yìng': ['応', '應', '譍'],
+ 'mǐn wěn mín': ['忞', '忟'],
+ 'sōng zhōng': ['忪'],
+ 'yù shū': ['忬', '悆'],
+ 'qí shì': ['忯', '耆'],
+ 'tún zhūn dùn': ['忳'],
+ 'qián qín': ['忴', '扲'],
+ hún: ['忶', '浑', '渾', '餛', '馄', '魂', '鼲'],
+ niǔ: ['忸', '扭', '炄', '狃', '紐', '纽', '莥', '鈕', '钮', '靵'],
+ 'kuáng wǎng': ['忹'],
+ 'kāng hàng': ['忼'],
+ 'kài xì': ['忾', '愾'],
+ òu: ['怄', '慪'],
+ 'bǎo bào': ['怉'],
+ 'mín mén': ['怋'],
+ 'zuò zhà': ['怍'],
+ zěn: ['怎'],
+ yàng: ['怏', '恙', '样', '様', '樣', '漾', '羕', '詇'],
+ 'kòu jù': ['怐'],
+ 'náo niú': ['怓'],
+ 'zhēng zhèng': ['怔', '掙', '钲', '铮'],
+ 'tiē zhān': ['怗'],
+ 'hù gù': ['怘'],
+ 'cū jù zū': ['怚'],
+ 'sī sāi': ['思'],
+ 'yóu chóu': ['怞'],
+ 'tū dié': ['怢'],
+ 'yōu yào': ['怮'],
+ xuàn: [
+ '怰',
+ '昡',
+ '楦',
+ '泫',
+ '渲',
+ '炫',
+ '琄',
+ '眩',
+ '碹',
+ '絢',
+ '縼',
+ '繏',
+ '绚',
+ '蔙',
+ '衒',
+ '袨',
+ '贙',
+ '鉉',
+ '鏇',
+ '铉',
+ '镟',
+ '颴',
+ ],
+ 'xù xuè': ['怴'],
+ 'bì pī': ['怶'],
+ 'xī shù': ['怸'],
+ 'nèn nín': ['恁'],
+ 'tiāo yáo': ['恌'],
+ 'xī qī xù': ['恓'],
+ 'xiào jiǎo': ['恔'],
+ 'hū kuā': ['恗'],
+ nǜ: ['恧', '朒', '衂', '衄'],
+ hèn: ['恨'],
+ 'dòng tōng': ['恫'],
+ 'quán zhuān': ['恮'],
+ 'è wù ě wū': ['恶', '惡'],
+ tòng: ['恸', '慟', '憅', '痛', '衕'],
+ 'yuān juàn': ['悁'],
+ 'qiāo qiǎo': ['悄'],
+ 'jiè kè': ['悈'],
+ 'hào jiào': ['悎'],
+ huǐ: ['悔', '檓', '毀', '毁', '毇', '燬', '譭'],
+ 'mán mèn': ['悗', '鞔'],
+ 'yī yì': ['悘', '衣'],
+ quān: ['悛', '箞', '鐉', '𨟠'],
+ 'kuī lǐ': ['悝'],
+ 'yì niàn': ['悥'],
+ 'mèn mēn': ['悶'],
+ guàn: [
+ '悹',
+ '悺',
+ '惯',
+ '慣',
+ '掼',
+ '摜',
+ '樌',
+ '欟',
+ '泴',
+ '涫',
+ '潅',
+ '灌',
+ '爟',
+ '瓘',
+ '盥',
+ '礶',
+ '祼',
+ '罆',
+ '罐',
+ '貫',
+ '贯',
+ '躀',
+ '遦',
+ '鏆',
+ '鑵',
+ '鱹',
+ '鸛',
+ '鹳',
+ ],
+ 'kōng kǒng': ['悾'],
+ 'lǔn lùn': ['惀'],
+ guǒ: [
+ '惈',
+ '果',
+ '椁',
+ '槨',
+ '粿',
+ '綶',
+ '菓',
+ '蜾',
+ '裹',
+ '褁',
+ '輠',
+ '餜',
+ '馃',
+ ],
+ 'yuān wǎn': ['惌', '箢'],
+ 'lán lín': ['惏'],
+ 'yù xù': ['惐', '淢'],
+ 'chuò chuì': ['惙'],
+ 'hūn mèn': ['惛'],
+ 'chǎng tǎng': ['惝'],
+ 'suǒ ruǐ': ['惢'],
+ cǎn: ['惨', '慘', '憯', '黪', '黲', '䅟'],
+ cán: ['惭', '慙', '慚', '残', '殘', '蚕', '蝅', '蠶', '蠺'],
+ 'dàn dá': ['惮', '憚'],
+ rě: ['惹'],
+ 'yú tōu': ['愉'],
+ 'kài qì': ['愒'],
+ 'dàng táng shāng yáng': ['愓'],
+ 'chén xìn dān': ['愖'],
+ 'kè qià': ['愘'],
+ nuò: [
+ '愞',
+ '懦',
+ '懧',
+ '掿',
+ '搦',
+ '榒',
+ '稬',
+ '穤',
+ '糑',
+ '糥',
+ '糯',
+ '諾',
+ '诺',
+ '蹃',
+ '逽',
+ '鍩',
+ '锘',
+ ],
+ gǎn: [
+ '感',
+ '擀',
+ '敢',
+ '桿',
+ '橄',
+ '澉',
+ '澸',
+ '皯',
+ '秆',
+ '稈',
+ '笴',
+ '芉',
+ '衦',
+ '赶',
+ '趕',
+ '鱤',
+ '鳡',
+ ],
+ 'còng sōng': ['愡'],
+ 'sāi sī sǐ': ['愢'],
+ 'gōng gòng hǒng': ['愩', '慐'],
+ 'shuò sù': ['愬', '洬'],
+ 'yáo yào': ['愮'],
+ huàng: ['愰', '曂', '榥', '滉', '皝', '皩', '鎤', '㿠'],
+ zhěng: ['愸', '抍', '拯', '整', '晸'],
+ cǎo: ['愺', '艸', '草', '騲'],
+ 'xì xié': ['慀'],
+ 'cǎo sāo': ['慅'],
+ 'xù chù': ['慉'],
+ 'qiè qiàn': ['慊'],
+ 'cáo cóng': ['慒'],
+ 'ào áo': ['慠'],
+ 'lián liǎn': ['慩', '梿', '槤', '櫣'],
+ 'jìn qín jǐn': ['慬'],
+ 'dì chì': ['慸'],
+ 'zhí zhé': ['慹'],
+ 'lóu lǚ': ['慺', '鷜'],
+ còng: ['憁', '謥'],
+ 'zhī zhì': ['憄', '知', '織', '织'],
+ chēng: [
+ '憆',
+ '摚',
+ '撐',
+ '撑',
+ '晿',
+ '柽',
+ '棦',
+ '橕',
+ '檉',
+ '泟',
+ '浾',
+ '琤',
+ '瞠',
+ '碀',
+ '緽',
+ '罉',
+ '蛏',
+ '蟶',
+ '赪',
+ '赬',
+ '鏿',
+ '鐣',
+ '阷',
+ '靗',
+ '頳',
+ '饓',
+ ],
+ biē: ['憋', '虌', '鱉', '鳖', '鼈', '龞'],
+ 'chéng dèng zhèng': ['憕'],
+ 'xǐ xī': ['憘'],
+ 'duì dùn tūn': ['憞'],
+ 'xiāo jiāo': ['憢'],
+ 'xián xiàn': ['憪'],
+ 'liáo liǎo': ['憭', '燎', '爎', '爒'],
+ shéng: ['憴', '縄', '繉', '繩', '绳', '譝'],
+ 'náo nǎo náng': ['憹'],
+ 'jǐng jìng': ['憼'],
+ 'jǐ jiǎo': ['憿'],
+ 'xuān huān': ['懁'],
+ 'cǎo sāo sào': ['懆'],
+ mèn: ['懑', '懣', '暪', '焖', '燜'],
+ 'mèng méng měng': ['懜'],
+ 'ài yì nǐ': ['懝'],
+ 'méng měng': ['懞', '瞢', '矒'],
+ 'qí jī jì': ['懠'],
+ mǒ: ['懡'],
+ 'lán xiàn': ['懢'],
+ 'yōu yǒu': ['懮'],
+ 'liú liǔ': ['懰', '藰'],
+ ràng: ['懹', '譲', '讓', '让'],
+ huān: ['懽', '欢', '歓', '歡', '獾', '讙', '貛', '酄', '驩', '鴅', '鵍'],
+ nǎn: ['戁', '揇', '湳', '煵', '腩', '蝻', '赧'],
+ 'mí mó': ['戂'],
+ 'gàng zhuàng': ['戅', '戆'],
+ 'zhuàng gàng': ['戇'],
+ 'xū qu': ['戌'],
+ 'xì hū': ['戏', '戯', '戲'],
+ 'jiá gā': ['戛'],
+ zéi: ['戝', '蠈', '賊', '贼', '鰂', '鱡', '鲗'],
+ děng: ['戥', '等'],
+ 'hū xì': ['戱'],
+ chuō: ['戳', '踔', '逴'],
+ 'biǎn piān': ['扁'],
+ 'shǎng jiōng': ['扄'],
+ 'shàn shān': ['扇'],
+ cái: ['才', '材', '纔', '裁', '財', '财'],
+ 'zhā zā zhá': ['扎'],
+ 'lè lì cái': ['扐'],
+ 'bā pá': ['扒'],
+ 'dǎ dá': ['打'],
+ rēng: ['扔'],
+ 'fǎn fú': ['払'],
+ 'diǎo dí yuē lì': ['扚'],
+ 'káng gāng': ['扛'],
+ 'yū wū': ['扜'],
+ 'yū wū kū': ['扝'],
+ 'tuō chǐ yǐ': ['扡'],
+ 'gǔ jié xì gē': ['扢'],
+ dèn: ['扥', '扽'],
+ 'sǎo sào': ['扫', '掃'],
+ rǎo: ['扰', '擾', '隢'],
+ 'xī chā qì': ['扱'],
+ 'bān pān': ['扳'],
+ 'bā ào': ['扷'],
+ 'xī zhé': ['扸'],
+ 'zhì sǔn kǎn': ['扻'],
+ zhǎo: ['找', '沼', '瑵'],
+ 'kuáng wǎng zài': ['抂'],
+ 'hú gǔ': ['抇', '鹄', '鹘'],
+ 'bǎ bà': ['把'],
+ 'dǎn shěn': ['抌'],
+ 'nè nì ruì nà': ['抐'],
+ zhuā: ['抓', '檛', '簻', '膼', '髽'],
+ póu: ['抔', '裒'],
+ 'zhé shé zhē': ['折'],
+ 'póu pōu fū': ['抙', '捊'],
+ pāo: ['抛', '拋', '脬', '萢'],
+ 'ǎo ào niù': ['抝'],
+ 'lūn lún': ['抡', '掄'],
+ 'qiǎng qiāng chēng': ['抢'],
+ 'zhǐ zhǎi': ['抧'],
+ 'bù pū': ['抪', '柨'],
+ 'yǎo tāo': ['抭'],
+ 'hē hè qiā': ['抲'],
+ 'nǐ ní': ['抳'],
+ 'pī pēi': ['抷'],
+ 'mǒ mò mā': ['抹'],
+ chōu: ['抽', '犨', '犫', '瘳', '篘'],
+ 'jiā yá': ['拁'],
+ 'fú bì': ['拂', '畐', '鶝'],
+ zhǎ: ['拃', '眨', '砟', '鮺', '鲝'],
+ 'dān dàn dǎn': ['担'],
+ 'chāi cā': ['拆'],
+ niān: ['拈', '蔫'],
+ 'lā lá lǎ là': ['拉'],
+ 'bàn pàn': ['拌'],
+ pāi: ['拍'],
+ līn: ['拎'],
+ guǎi: ['拐', '枴', '柺'],
+ 'tuò tà zhí': ['拓'],
+ 'ào ǎo niù': ['拗'],
+ 'jū gōu': ['拘'],
+ 'pīn pàn fān': ['拚'],
+ 'bài bái': ['拜'],
+ bài: ['拝', '敗', '稗', '粺', '薭', '贁', '败', '韛'],
+ qiá: ['拤'],
+ 'nǐng níng nìng': ['拧'],
+ 'zé zhái': ['择', '擇'],
+ hén: ['拫', '痕', '鞎'],
+ 'kuò guā': ['括'],
+ 'jié jiá': ['拮'],
+ nǐn: ['拰'],
+ shuān: ['拴', '栓', '閂', '闩'],
+ 'cún zùn': ['拵'],
+ 'zā zǎn': ['拶', '桚'],
+ kǎo: ['拷', '攷', '栲', '烤', '考'],
+ 'yí chǐ hài': ['拸'],
+ 'cè sè chuò': ['拺'],
+ 'zhuài zhuāi yè': ['拽'],
+ 'shí shè': ['拾'],
+ bāi: ['挀', '掰'],
+ 'kuò guāng': ['挄'],
+ nòng: ['挊', '挵', '齈'],
+ 'jiào jiāo': ['挍', '敎', '教'],
+ 'kuà kū': ['挎'],
+ 'ná rú': ['挐'],
+ 'tiāo tiǎo': ['挑'],
+ 'dié shè': ['挕'],
+ liě: ['挘', '毟'],
+ 'yà yǎ': ['挜', '掗'],
+ 'wō zhuā': ['挝'],
+ 'xié jiā': ['挟', '挾'],
+ 'dǎng dàng': ['挡', '擋'],
+ 'zhèng zhēng': ['挣', '正', '症'],
+ 'āi ái': ['挨'],
+ 'tuō shuì': ['挩', '捝'],
+ 'tǐ tì': ['挮'],
+ 'suō shā': ['挱'],
+ 'sā shā suō': ['挲'],
+ 'kēng qiān': ['挳', '摼'],
+ 'bàng péng': ['挷'],
+ 'ruó ruá': ['挼'],
+ 'jiǎo kù': ['捁'],
+ 'wǔ wú': ['捂'],
+ tǒng: ['捅', '桶', '筒', '筩', '統', '綂', '统', '㛚'],
+ 'huò chì': ['捇'],
+ 'tú shū chá': ['捈'],
+ 'lǚ luō': ['捋'],
+ 'shāo shào': ['捎', '稍'],
+ niē: ['捏', '揑'],
+ 'shù sǒng sōu': ['捒'],
+ 'yé yú': ['捓'],
+ 'jué zhuó': ['捔'],
+ 'bù pú zhì': ['捗'],
+ zùn: ['捘', '銌'],
+ lāo: ['捞', '撈', '粩'],
+ sǔn: ['损', '損', '榫', '笋', '筍', '箰', '鎨', '隼'],
+ 'wàn wǎn wān yù': ['捥'],
+ pěng: ['捧', '淎', '皏'],
+ shě: ['捨'],
+ 'fǔ fù bǔ': ['捬'],
+ dáo: ['捯'],
+ 'luò luǒ wǒ': ['捰'],
+ 'juǎn quán': ['捲'],
+ 'chēn tiǎn': ['捵'],
+ 'niǎn niē': ['捻'],
+ 'ruó wěi ré': ['捼'],
+ zuó: ['捽', '昨', '秨', '稓', '筰', '莋', '鈼'],
+ 'wò xiá': ['捾'],
+ 'qìng qiàn': ['掅'],
+ 'póu pǒu': ['掊'],
+ qiā: ['掐', '葜'],
+ 'pái pǎi': ['排'],
+ 'qiān wàn': ['掔'],
+ 'yè yē': ['掖'],
+ 'niè nǐ yì': ['掜'],
+ 'huò xù': ['掝'],
+ 'yàn shàn yǎn': ['掞'],
+ 'zhěng dìng': ['掟'],
+ kòng: ['控', '鞚'],
+ tuī: ['推', '蓷', '藬'],
+ 'zōu zhōu chōu': ['掫'],
+ tiàn: ['掭', '舚'],
+ kèn: ['掯', '裉', '褃'],
+ pá: ['掱', '杷', '潖', '爬', '琶', '筢'],
+ 'guó guāi': ['掴'],
+ 'dǎn shàn': ['掸', '撣'],
+ 'chān xiān càn shǎn': ['掺'],
+ sāo: ['掻', '搔', '溞', '繅', '缫', '螦', '騒', '騷', '鰠', '鱢', '鳋'],
+ pèng: ['掽', '椪', '槰', '碰', '踫'],
+ 'zhēng kēng': ['揁'],
+ 'jiū yóu': ['揂'],
+ 'jiān jiǎn': ['揃', '籛'],
+ 'pì chè': ['揊'],
+ 'sāi zǒng cāi': ['揌'],
+ 'tí dī dǐ': ['提'],
+ 'zǒng sōng': ['揔'],
+ 'huáng yóng': ['揘'],
+ 'zǎn zuàn': ['揝'],
+ 'xū jū': ['揟'],
+ 'ké qiā': ['揢'],
+ 'chuāi chuǎi chuài tuán zhuī': ['揣'],
+ 'dì tì': ['揥'],
+ 'lá là': ['揦'],
+ là: [
+ '揧',
+ '楋',
+ '溂',
+ '瓎',
+ '瘌',
+ '翋',
+ '臘',
+ '蝋',
+ '蝲',
+ '蠟',
+ '辢',
+ '辣',
+ '鑞',
+ '镴',
+ '鬎',
+ '鯻',
+ '𬶟',
+ ],
+ 'jiē qì': ['揭'],
+ 'chòng dǒng': ['揰'],
+ 'dié shé yè': ['揲'],
+ 'jiàn qián jiǎn': ['揵'],
+ yé: ['揶', '爷', '爺', '瑘', '鋣', '鎁', '铘'],
+ chān: ['搀', '摻', '攙', '裧', '襜', '覘', '觇', '辿', '鋓'],
+ 'gē gé': ['搁', '擱'],
+ 'lǒu lōu': ['搂', '摟'],
+ 'chōu zǒu': ['搊'],
+ chuāi: ['搋'],
+ sūn: ['搎', '槂', '狲', '猻', '荪', '蓀', '蕵', '薞', '飧', '飱'],
+ 'róng náng nǎng': ['搑'],
+ 'péng bàng': ['搒'],
+ cuō: ['搓', '瑳', '磋', '蹉', '遳', '醝'],
+ 'kē è': ['搕'],
+ 'nù nuò nòu': ['搙'],
+ 'lā xié xiàn': ['搚'],
+ qiǔ: ['搝', '糗'],
+ 'xiǎn xiān': ['搟'],
+ 'jié zhé': ['搩'],
+ 'pán bān pó': ['搫'],
+ bān: [
+ '搬',
+ '攽',
+ '斑',
+ '斒',
+ '班',
+ '瘢',
+ '癍',
+ '肦',
+ '螁',
+ '螌',
+ '褩',
+ '辬',
+ '頒',
+ '颁',
+ '𨭉',
+ ],
+ 'zhì nái': ['搱'],
+ 'wā wǎ wà': ['搲'],
+ huá: ['搳', '撶', '滑', '猾', '蕐', '螖', '譁', '鏵', '铧', '驊', '骅', '鷨'],
+ 'qiāng qiǎng chēng': ['搶'],
+ 'tián shēn': ['搷'],
+ 'ná nuò': ['搻'],
+ èn: ['摁'],
+ 'shè niè': ['摄', '攝'],
+ bìn: ['摈', '擯', '殡', '殯', '膑', '臏', '髌', '髕', '髩', '鬂', '鬓', '鬢'],
+ 'shā sà shǎi': ['摋'],
+ 'chǎn sùn': ['摌'],
+ 'jiū liú liáo jiǎo náo': ['摎'],
+ 'féng pěng': ['摓'],
+ shuāi: ['摔'],
+ 'dì tú zhí': ['摕'],
+ 'qì jì chá': ['摖'],
+ 'sōu sǒng': ['摗'],
+ 'liǎn liàn': ['摙'],
+ 'gài xì': ['摡'],
+ 'hù chū': ['摢'],
+ tàng: ['摥', '烫', '燙', '鐋'],
+ 'nái zhì': ['摨'],
+ 'mó mā': ['摩'],
+ 'jiāng qiàng': ['摪'],
+ 'áo qiáo': ['摮'],
+ 'niè chè': ['摰'],
+ 'mán màn': ['摱'],
+ 'chàn cán': ['摲'],
+ 'sè mí sù': ['摵'],
+ 'biāo biào': ['摽'],
+ 'juē jué': ['撅'],
+ piē: ['撆', '暼', '氕', '瞥'],
+ 'piě piē': ['撇'],
+ 'zǎn zān zēn qián': ['撍'],
+ 'sā sǎ': ['撒'],
+ hòng: ['撔', '訌', '讧', '闀', '鬨'],
+ 'héng guàng': ['撗'],
+ niǎn: [
+ '撚',
+ '撵',
+ '攆',
+ '涊',
+ '焾',
+ '碾',
+ '簐',
+ '蹍',
+ '蹨',
+ '躎',
+ '輦',
+ '辇',
+ ],
+ 'chéng zhěng': ['撜'],
+ 'huī wéi': ['撝'],
+ cāo: ['撡', '操', '糙'],
+ 'xiāo sōu': ['撨'],
+ 'liáo liāo': ['撩'],
+ 'cuō zuǒ': ['撮'],
+ 'wěi tuǒ': ['撱'],
+ cuān: ['撺', '攛', '汆', '蹿', '躥', '鑹', '镩'],
+ 'qiào yāo jī': ['撽'],
+ 'zhuā wō': ['撾'],
+ 'lèi léi': ['擂'],
+ nǎng: ['擃', '攮', '曩', '灢'],
+ 'qíng jǐng': ['擏'],
+ kuǎi: ['擓', '蒯', '㧟'],
+ 'pǐ bò': ['擗'],
+ 'bò bāi': ['擘'],
+ 'jù jǐ': ['據'],
+ mēng: ['擝'],
+ 'sǒu sòu': ['擞'],
+ xǐng: ['擤', '箵', '醒'],
+ cā: ['擦'],
+ 'níng nǐng nìng': ['擰'],
+ 'zhì jié': ['擳'],
+ 'là liè': ['擸', '爉'],
+ 'sòu sǒu': ['擻'],
+ 'lì luò yuè': ['擽'],
+ 'tī zhāi zhì': ['擿'],
+ pān: ['攀', '潘', '眅', '萠'],
+ lèi: [
+ '攂',
+ '泪',
+ '涙',
+ '淚',
+ '禷',
+ '类',
+ '纇',
+ '蘱',
+ '酹',
+ '銇',
+ '錑',
+ '頛',
+ '頪',
+ '類',
+ '颣',
+ ],
+ 'cā sǎ': ['攃'],
+ 'jùn pèi': ['攈'],
+ 'lì luò': ['攊', '躒'],
+ 'là lài': ['攋', '櫴'],
+ 'lú luó': ['攎'],
+ 'zǎn cuán': ['攒'],
+ 'xiān jiān': ['攕'],
+ 'mí mǐ mó': ['攠'],
+ 'zǎn cuán zàn zuān': ['攢'],
+ zuàn: ['攥'],
+ 'lì shài': ['攦'],
+ 'lì luǒ': ['攭'],
+ 'guǐ guì': ['攱'],
+ 'jī qī yǐ': ['攲'],
+ fàng: ['放'],
+ 'wù móu': ['敄'],
+ 'chù shōu': ['敊'],
+ 'gé guó è': ['敋'],
+ 'duó duì': ['敓', '敚'],
+ 'duō què': ['敠', '敪'],
+ 'sàn sǎn': ['散'],
+ 'dūn duì': ['敦', '镦'],
+ 'qī yǐ jī': ['敧'],
+ 'xiào xué': ['敩'],
+ 'shù shǔ shuò': ['数', '數'],
+ 'ái zhú': ['敱', '敳'],
+ 'xiòng xuàn': ['敻'],
+ 'zhuó zhú': ['斀'],
+ 'yì dù': ['斁'],
+ 'lí tái': ['斄'],
+ 'fěi fēi': ['斐'],
+ 'yǔ zhōng': ['斔'],
+ 'dòu dǒu': ['斗'],
+ 'wò guǎn': ['斡'],
+ 'tǒu tiǎo': ['斢'],
+ dòu: [
+ '斣',
+ '梪',
+ '浢',
+ '痘',
+ '窦',
+ '竇',
+ '脰',
+ '荳',
+ '豆',
+ '逗',
+ '郖',
+ '酘',
+ '閗',
+ '闘',
+ '餖',
+ '饾',
+ '鬥',
+ '鬦',
+ '鬪',
+ '鬬',
+ '鬭',
+ ],
+ 'yín zhì': ['斦'],
+ 'chǎn jiè': ['斺'],
+ 'wū yū yú': ['於'],
+ 'yóu liú': ['斿'],
+ 'páng bàng': ['旁'],
+ 'máo mào': ['旄'],
+ 'pī bì': ['旇'],
+ 'xuán xuàn': ['旋'],
+ 'wú mó': ['无'],
+ zǎo: ['早', '枣', '栆', '棗', '澡', '璪', '薻', '藻', '蚤'],
+ gā: ['旮'],
+ 'gàn hàn': ['旰'],
+ 'tái yīng': ['旲'],
+ 'xū xù': ['旴'],
+ 'tūn zhùn': ['旽'],
+ 'wù wǔ': ['旿'],
+ 'pò pèi': ['昢'],
+ zòng: ['昮', '猔', '疭', '瘲', '粽', '糉', '糭', '縦'],
+ ǎi: ['昹', '毐', '矮', '蔼', '藹', '譪', '躷', '霭', '靄'],
+ 'huàng huǎng': ['晃'],
+ xuǎn: ['晅', '癣', '癬', '选', '選'],
+ 'xù kuā': ['晇'],
+ hǒng: ['晎'],
+ shài: ['晒', '曬'],
+ 'yūn yùn': ['晕', '煴'],
+ 'shèng chéng': ['晟', '椉', '盛'],
+ 'jǐng yǐng': ['景'],
+ shǎn: ['晱', '熌', '睒', '覢', '閃', '闪', '陕', '陝'],
+ 'qǐ dù': ['晵'],
+ 'ǎn àn yǎn': ['晻'],
+ 'wǎng wàng': ['暀'],
+ zàn: [
+ '暂',
+ '暫',
+ '瓉',
+ '瓒',
+ '瓚',
+ '禶',
+ '襸',
+ '讃',
+ '讚',
+ '賛',
+ '贊',
+ '赞',
+ '蹔',
+ '鄼',
+ '錾',
+ '鏨',
+ '饡',
+ ],
+ 'yùn yūn': ['暈'],
+ 'mín mǐn': ['暋'],
+ 'dǔ shǔ': ['暏'],
+ shǔ: [
+ '暑',
+ '曙',
+ '潻',
+ '癙',
+ '糬',
+ '署',
+ '薥',
+ '薯',
+ '藷',
+ '蜀',
+ '蠴',
+ '襡',
+ '襩',
+ '鱪',
+ '鱰',
+ '黍',
+ '鼠',
+ '鼡',
+ ],
+ 'jiǎn lán': ['暕'],
+ nuǎn: ['暖', '煗', '餪'],
+ 'bào pù': ['暴'],
+ 'xī xǐ': ['暿'],
+ 'pù bào': ['曝', '瀑'],
+ 'qū qǔ': ['紶'],
+ 'qǔ qū': ['曲'],
+ 'gèng gēng': ['更'],
+ 'hū hù': ['曶', '雽'],
+ 'zēng céng': ['曽', '橧'],
+ 'céng zēng': ['曾', '竲'],
+ 'cǎn qián jiàn': ['朁'],
+ 'qiè hé': ['朅'],
+ 'bì pí': ['朇', '禆', '笓', '裨'],
+ 'yǒu yòu': ['有'],
+ 'bān fén': ['朌', '鳻'],
+ 'fú fù': ['服', '洑'],
+ 'fěi kū': ['朏', '胐'],
+ 'qú xù chǔn': ['朐'],
+ 'juān zuī': ['朘'],
+ 'huāng máng wáng': ['朚'],
+ 'qī jī': ['期'],
+ 'tóng chuáng': ['朣', '橦'],
+ zhá: ['札', '牐', '箚', '蚻', '譗', '鍘', '铡', '閘', '闸'],
+ 'zhú shù shú': ['朮'],
+ 'shù shú zhú': ['术'],
+ 'zhū shú': ['朱'],
+ 'pǔ pò pō piáo': ['朴'],
+ 'dāo tiáo mù': ['朷'],
+ 'guǐ qiú': ['朹'],
+ xiǔ: ['朽', '滫', '潃', '糔'],
+ 'chéng chēng': ['朾'],
+ zá: ['杂', '沯', '砸', '襍', '雑', '雜', '雥', '韴'],
+ 'yú wū': ['杅'],
+ 'gān gǎn': ['杆'],
+ 'chā chà': ['杈'],
+ 'shān shā': ['杉'],
+ cūn: ['村', '皴', '竴', '膥', '踆', '邨'],
+ 'rèn ér': ['杒', '梕'],
+ 'sháo biāo': ['杓'],
+ 'dì duò': ['杕', '枤'],
+ 'gū gài': ['杚'],
+ 'yí zhì lí duò': ['杝'],
+ 'gàng gāng': ['杠'],
+ 'tiáo tiāo': ['条', '條'],
+ 'mà mǎ': ['杩'],
+ 'sì zhǐ xǐ': ['杫'],
+ 'yuán wán': ['杬', '蚖'],
+ 'bèi fèi': ['杮'],
+ 'shū duì': ['杸'],
+ 'niǔ chǒu': ['杻'],
+ 'wò yuè': ['枂', '臒'],
+ máo: [
+ '枆',
+ '毛',
+ '氂',
+ '渵',
+ '牦',
+ '矛',
+ '罞',
+ '茅',
+ '茆',
+ '蝥',
+ '蟊',
+ '軞',
+ '酕',
+ '鉾',
+ '錨',
+ '锚',
+ '髦',
+ '鶜',
+ ],
+ 'pī mì': ['枈'],
+ àng: ['枊', '盎', '醠'],
+ 'fāng bìng': ['枋'],
+ 'hù dǐ': ['枑'],
+ xín: ['枔', '襑', '鐔', '鬵'],
+ 'yāo yǎo': ['枖'],
+ 'ě è': ['枙'],
+ 'zhī qí': ['枝'],
+ 'cōng zōng': ['枞', '樅'],
+ 'xiān zhēn': ['枮'],
+ 'tái sì': ['枱'],
+ 'gǒu jǔ gōu': ['枸'],
+ 'bāo fú': ['枹'],
+ 'yì xiè': ['枻', '栧'],
+ 'tuó duò': ['柁', '馱', '駄', '驮'],
+ 'yí duò lí': ['柂'],
+ 'nǐ chì': ['柅'],
+ 'pán bàn': ['柈', '跘'],
+ 'yǎng yàng yāng yīng': ['柍'],
+ 'fù fū fǔ': ['柎'],
+ 'bǎi bó bò': ['柏'],
+ mǒu: ['某'],
+ 'sháo shào': ['柖'],
+ zhè: ['柘', '樜', '浙', '淛', '蔗', '蟅', '這', '鷓', '鹧', '䗪'],
+ 'yòu yóu': ['柚', '櫾'],
+ 'guì jǔ': ['柜'],
+ 'zhà zuò': ['柞'],
+ 'dié zhì': ['柣', '眰'],
+ 'zhā zǔ zū': ['柤'],
+ 'chá zhā': ['查', '査'],
+ 'āo ào': ['柪', '軪'],
+ 'bā fú pèi bó biē': ['柭'],
+ 'duò zuó wù': ['柮'],
+ 'bì bié': ['柲'],
+ 'zhù chù': ['柷'],
+ 'bēi pēi': ['柸'],
+ 'shì fèi': ['柹'],
+ 'shān zhà shi cè': ['栅'],
+ 'lì yuè': ['栎', '櫟'],
+ 'qì qiè': ['栔', '砌'],
+ 'qī xī': ['栖', '蹊'],
+ 'guā kuò': ['栝'],
+ 'bīng bēn': ['栟'],
+ 'xiào jiào': ['校'],
+ 'jiàn zùn': ['栫', '袸'],
+ 'yǒu yù': ['栯'],
+ 'hé hú': ['核'],
+ gēn: ['根', '跟'],
+ 'zhī yì': ['栺'],
+ 'gé gē': ['格'],
+ 'héng háng': ['桁'],
+ 'guàng guāng': ['桄'],
+ 'yí tí': ['桋', '荑'],
+ sāng: ['桑', '桒', '槡'],
+ 'jú jié': ['桔'],
+ 'yú móu': ['桙'],
+ 'ráo náo': ['桡', '橈'],
+ 'guì huì': ['桧', '檜'],
+ 'chén zhèn': ['桭'],
+ 'tīng yíng': ['桯'],
+ 'bó po': ['桲'],
+ 'bèn fàn': ['桳'],
+ 'fēng fèng': ['桻', '葑'],
+ 'sù yìn': ['梀'],
+ 'tǐng tìng': ['梃'],
+ 'xuān juān xié': ['梋'],
+ 'tú chá': ['梌'],
+ 'āo yòu': ['梎'],
+ kuǎn: ['梡', '欵', '款', '歀'],
+ 'shāo sào': ['梢'],
+ 'qín chén cén': ['梣'],
+ 'lí sì qǐ': ['梩'],
+ 'chān yán': ['梴'],
+ 'bīn bīng': ['梹', '槟', '檳'],
+ 'táo chóu dào': ['梼'],
+ 'cōng sōng': ['棇'],
+ 'gùn hùn': ['棍'],
+ 'dé zhé': ['棏'],
+ 'pái bèi pèi': ['棑'],
+ 'bàng pǒu bèi bēi': ['棓'],
+ 'dì dài tì': ['棣'],
+ sēn: ['森', '椮', '槮', '襂'],
+ 'rěn shěn': ['棯'],
+ 'léng lēng líng': ['棱'],
+ 'fú sù': ['棴'],
+ 'zōu sǒu': ['棷'],
+ zōu: [
+ '棸',
+ '箃',
+ '緅',
+ '諏',
+ '诹',
+ '邹',
+ '郰',
+ '鄒',
+ '鄹',
+ '陬',
+ '騶',
+ '驺',
+ '鯫',
+ '鲰',
+ '黀',
+ '齱',
+ '齺',
+ ],
+ 'zhào zhuō': ['棹'],
+ 'chēn shēn': ['棽'],
+ 'jiē qiè': ['椄'],
+ 'yǐ yī': ['椅'],
+ 'chóu zhòu diāo': ['椆'],
+ 'qiāng kōng': ['椌'],
+ 'zhuī chuí': ['椎'],
+ 'bēi pí': ['椑'],
+ mēn: ['椚'],
+ 'quān juàn quán': ['椦'],
+ 'duǒ chuán': ['椯'],
+ 'wěi huī': ['椲'],
+ 'jiǎ jiā': ['椵'],
+ 'hán jiān': ['椷'],
+ 'shèn zhēn': ['椹'],
+ 'yàn yà': ['椻'],
+ 'zhā chá': ['楂'],
+ 'guō kuǎ': ['楇'],
+ 'jí zhì': ['楖'],
+ 'kǔ hù': ['楛'],
+ 'yóu yǒu': ['楢'],
+ 'sǒng cōng': ['楤'],
+ 'yuán xuàn': ['楥'],
+ 'yǎng yàng yīng': ['楧'],
+ pián: ['楩', '胼', '腁', '賆', '蹁', '駢', '騈', '骈', '骿', '㛹'],
+ 'dié yè': ['楪'],
+ 'dùn shǔn': ['楯'],
+ 'còu zòu': ['楱'],
+ 'dì dǐ shì': ['楴'],
+ 'kǎi jiē': ['楷'],
+ 'róu ròu': ['楺'],
+ 'lè yuè': ['楽'],
+ 'wēn yùn': ['榅', '鞰'],
+ lǘ: ['榈', '櫚', '氀', '膢', '藘', '閭', '闾', '驢', '驴'],
+ shén: ['榊', '神', '鉮', '鰰', '𬬹'],
+ 'bī pi': ['榌'],
+ 'zhǎn niǎn zhèn': ['榐'],
+ 'fú fù bó': ['榑'],
+ 'jiàn jìn': ['榗'],
+ 'bǎng bàng': ['榜'],
+ 'shā xiè': ['榝', '樧'],
+ nòu: ['槈', '耨', '鎒', '鐞'],
+ 'qiǎn lián xiàn': ['槏'],
+ gàng: ['槓', '焵', '焹', '筻', '鿍'],
+ gāo: [
+ '槔',
+ '槹',
+ '橰',
+ '櫜',
+ '睾',
+ '篙',
+ '糕',
+ '羔',
+ '臯',
+ '韟',
+ '餻',
+ '高',
+ '髙',
+ '鷎',
+ '鷱',
+ '鼛',
+ ],
+ 'diān zhěn zhēn': ['槙'],
+ 'kǎn jiàn': ['槛'],
+ 'xí dié': ['槢'],
+ 'jī guī': ['槣'],
+ 'róng yōng': ['槦'],
+ 'tuán shuàn quán': ['槫'],
+ 'qì sè': ['槭'],
+ 'cuī zhǐ': ['槯'],
+ 'yǒu chǎo': ['槱'],
+ 'màn wàn': ['槾'],
+ 'lí chī': ['樆'],
+ 'léi lěi': ['樏', '櫑', '礌'],
+ 'cháo jiǎo chāo': ['樔'],
+ 'chēng táng': ['樘'],
+ 'jiū liáo': ['樛'],
+ 'mó mú': ['模'],
+ 'niǎo mù': ['樢'],
+ 'héng hèng': ['横', '橫'],
+ xuě: ['樰', '膤', '艝', '轌', '雪', '鱈', '鳕'],
+ 'fá fèi': ['橃'],
+ rùn: ['橍', '润', '潤', '膶', '閏', '閠', '闰'],
+ 'zhǎn jiǎn': ['橏'],
+ shùn: ['橓', '瞚', '瞬', '舜', '蕣', '順', '顺', '鬊'],
+ 'tuí dūn': ['橔'],
+ 'táng chēng': ['橖'],
+ 'sù qiū': ['橚'],
+ 'tán diàn': ['橝'],
+ 'fén fèn fèi': ['橨'],
+ 'rǎn yān': ['橪'],
+ 'cū chu': ['橻'],
+ 'shū qiāo': ['橾'],
+ 'píng bò': ['檘'],
+ 'zhái shì tú': ['檡'],
+ 'biǎo biāo': ['檦'],
+ 'qiān lián': ['檶'],
+ 'nǐ mí': ['檷'],
+ 'jiàn kǎn': ['檻'],
+ 'nòu ruǎn rú': ['檽'],
+ 'jī jì': ['櫅', '禨'],
+ 'huǎng guǒ gǔ': ['櫎'],
+ 'lǜ chū': ['櫖'],
+ 'miè mèi': ['櫗'],
+ ōu: [
+ '櫙',
+ '欧',
+ '歐',
+ '殴',
+ '毆',
+ '瓯',
+ '甌',
+ '膒',
+ '藲',
+ '謳',
+ '讴',
+ '鏂',
+ '鴎',
+ '鷗',
+ '鸥',
+ ],
+ 'zhù zhuó': ['櫡'],
+ 'jué jì': ['櫭'],
+ 'huái guī': ['櫰'],
+ 'chán zhàn': ['欃'],
+ 'wéi zuì': ['欈'],
+ cáng: ['欌', '鑶'],
+ 'yù yì': ['欥'],
+ 'chù qù xì': ['欪'],
+ 'kài ài': ['欬'],
+ 'yì yīn': ['欭'],
+ 'xì kài': ['欯'],
+ 'shuò sòu': ['欶'],
+ 'ǎi ēi éi ěi èi ê̄ ế ê̌ ề': ['欸'],
+ 'qī yī': ['欹'],
+ 'chuā xū': ['欻'],
+ 'chǐ chuài': ['欼'],
+ 'kǎn qiàn': ['欿'],
+ 'kǎn kè': ['歁'],
+ 'chuǎn chuán': ['歂'],
+ 'yīn yān': ['歅'],
+ 'jìn qūn': ['歏'],
+ pēn: ['歕'],
+ 'xū chuā': ['歘'],
+ 'xī shè': ['歙'],
+ 'liǎn hān': ['歛'],
+ 'zhì chí': ['歭'],
+ 'sè shà': ['歰'],
+ sǐ: ['死'],
+ 'wěn mò': ['歾'],
+ piǎo: ['殍', '皫', '瞟', '醥', '顠'],
+ 'qíng jìng': ['殑'],
+ 'fǒu bó': ['殕'],
+ 'zhí shi': ['殖'],
+ 'yè yān yàn': ['殗'],
+ 'hūn mèi': ['殙'],
+ chòu: ['殠', '臰', '遚'],
+ 'kuì huì': ['殨', '溃', '潰'],
+ cuàn: ['殩', '熶', '爨', '窜', '竄', '篡', '簒'],
+ 'yīn yān yǐn': ['殷'],
+ 'qìng kēng shēng': ['殸'],
+ 'yáo xiáo xiào': ['殽'],
+ 'gū gǔ': ['毂', '蛄'],
+ 'guàn wān': ['毌'],
+ 'dú dài': ['毒'],
+ 'xún xùn': ['毥'],
+ mú: ['毪', '氁'],
+ 'dòu nuò': ['毭'],
+ 'sāi suī': ['毸'],
+ lu: ['氇'],
+ sào: ['氉', '瘙', '矂', '髞'],
+ 'shì zhī': ['氏'],
+ 'dī dǐ': ['氐'],
+ 'máng méng': ['氓'],
+ 'yáng rì': ['氜'],
+ shuǐ: ['水', '氵', '氺', '閖'],
+ 'zhěng chéng zhèng': ['氶'],
+ tǔn: ['氽'],
+ 'fán fàn': ['氾'],
+ 'guǐ jiǔ': ['氿'],
+ 'bīn pà pā': ['汃'],
+ 'zhuó què': ['汋'],
+ 'dà tài': ['汏'],
+ pìn: ['汖', '牝', '聘'],
+ 'hàn hán': ['汗', '馯'],
+ tu: ['汢'],
+ 'tāng shāng': ['汤', '湯'],
+ 'zhī jì': ['汥'],
+ 'gàn hán cén': ['汵'],
+ 'wèn mén': ['汶'],
+ 'fāng pāng': ['汸'],
+ 'hǔ huǎng': ['汻'],
+ 'niú yóu': ['汼'],
+ hàng: ['沆'],
+ 'shěn chén': ['沈'],
+ 'dùn zhuàn': ['沌'],
+ 'nǜ niǔ': ['沑'],
+ 'méi mò': ['沒', '没'],
+ 'tà dá': ['沓'],
+ 'mì wù': ['沕'],
+ 'hóng pāng': ['沗'],
+ 'shā shà': ['沙'],
+ 'zhuǐ zǐ': ['沝'],
+ 'ōu òu': ['沤', '漚'],
+ 'jǔ jù': ['沮'],
+ 'tuō duó': ['沰'],
+ 'mǐ lì': ['沵'],
+ 'yí chí': ['沶'],
+ 'xiè yì': ['泄'],
+ 'bó pō': ['泊'],
+ 'mì bì': ['泌', '秘'],
+ 'chù shè': ['泏'],
+ 'yōu yòu āo': ['泑'],
+ 'pēng píng': ['泙', '硑'],
+ 'pào pāo': ['泡'],
+ 'ní nì': ['泥', '秜'],
+ 'yuè sà': ['泧'],
+ 'jué xuè': ['泬', '疦'],
+ 'lóng shuāng': ['泷', '瀧'],
+ 'luò pō': ['泺', '濼'],
+ 'zé shì': ['泽', '澤'],
+ 'sǎ xǐ': ['洒'],
+ 'sè qì zì': ['洓'],
+ 'xǐ xiǎn': ['洗'],
+ 'kǎo kào': ['洘'],
+ 'àn yàn è': ['洝'],
+ 'lěi lèi': ['洡'],
+ 'qiè jié': ['洯'],
+ 'qiǎn jiān': ['浅'],
+ 'jì jǐ': ['济', '済', '濟', '纪'],
+ 'hǔ xǔ': ['浒', '滸'],
+ 'jùn xùn': ['浚', '濬'],
+ 'yǐng chéng yíng': ['浧'],
+ 'liàn lì': ['浰'],
+ 'féng hóng': ['浲', '溄'],
+ 'jiǒng jiōng': ['浻'],
+ 'suī něi': ['浽'],
+ 'yǒng chōng': ['涌'],
+ 'tūn yūn': ['涒'],
+ 'wō guō': ['涡', '渦'],
+ hēng: ['涥', '脝'],
+ 'zhǎng zhàng': ['涨', '漲'],
+ 'shòu tāo': ['涭'],
+ shuàn: ['涮', '腨'],
+ 'kōng náng': ['涳'],
+ 'wò wǎn yuān': ['涴'],
+ 'tuō tuò': ['涶'],
+ wō: ['涹', '猧', '窝', '窩', '莴', '萵', '蜗', '蝸', '踒'],
+ 'qiè jí': ['淁'],
+ 'guǒ guàn': ['淉'],
+ 'lín lìn': ['淋', '獜', '疄'],
+ 'tǎng chǎng': ['淌'],
+ 'nào chuò zhuō': ['淖'],
+ 'péng píng': ['淜'],
+ féi: ['淝', '肥', '腓', '蜰'],
+ 'pì pèi': ['淠'],
+ 'niǎn shěn': ['淰'],
+ 'biāo hǔ': ['淲'],
+ 'chún zhūn': ['淳'],
+ 'hùn hún': ['混'],
+ qiǎn: ['淺', '繾', '缱', '肷', '膁', '蜸', '譴', '谴', '遣', '鑓'],
+ 'wèn mín': ['渂'],
+ 'rè ruò luò': ['渃'],
+ 'dú dòu': ['渎', '瀆', '读'],
+ 'jiàn jiān': ['渐', '溅', '漸', '濺'],
+ 'miǎn shéng': ['渑', '澠'],
+ 'nuǎn nuán': ['渜'],
+ 'qiú wù': ['渞'],
+ 'tíng tīng': ['渟'],
+ 'dì tí dī': ['渧'],
+ 'gǎng jiǎng': ['港'],
+ 'hōng qìng': ['渹'],
+ tuān: ['湍', '煓'],
+ 'huì mǐn xū': ['湏'],
+ 'xǔ xù': ['湑'],
+ pén: ['湓', '瓫', '盆', '葐'],
+ 'mǐn hūn': ['湣'],
+ 'tuàn nuǎn': ['湪'],
+ 'qiū jiǎo': ['湫', '湬'],
+ 'yān yīn': ['湮'],
+ 'bàn pán': ['湴'],
+ 'zhuāng hún': ['湷'],
+ 'yàn guì': ['溎'],
+ 'lián liǎn nián xián xiàn': ['溓'],
+ 'dá tǎ': ['溚', '鿎'],
+ 'liū liù': ['溜', '澑', '蹓'],
+ lùn: ['溣'],
+ mǎ: [
+ '溤',
+ '犸',
+ '獁',
+ '玛',
+ '瑪',
+ '码',
+ '碼',
+ '遤',
+ '鎷',
+ '馬',
+ '马',
+ '鰢',
+ '鷌',
+ ],
+ 'zhēn qín': ['溱'],
+ 'nì niào': ['溺'],
+ 'chù xù': ['滀', '畜'],
+ 'wěng wēng': ['滃'],
+ 'hào xuè': ['滈'],
+ 'qì xì xiē': ['滊'],
+ 'xíng yíng': ['滎'],
+ 'zé hào': ['滜'],
+ 'piāo piào piǎo': ['漂'],
+ 'cóng sǒng': ['漎'],
+ 'féng péng': ['漨'],
+ 'luò tà': ['漯'],
+ 'pēng bēn': ['漰'],
+ 'chóng shuāng': ['漴'],
+ 'huǒ kuò huò': ['漷'],
+ 'liáo liú': ['漻'],
+ 'cuǐ cuī': ['漼'],
+ 'cóng zǒng': ['潀'],
+ 'cóng zōng': ['潈'],
+ 'pì piē': ['潎'],
+ 'dàng xiàng': ['潒'],
+ 'huáng guāng': ['潢'],
+ 'liáo lào lǎo': ['潦'],
+ 'cōng zòng': ['潨'],
+ 'zhí zhì': ['潪'],
+ 'tān shàn': ['潬'],
+ 'tú zhā': ['潳'],
+ 'sàn sǎ': ['潵'],
+ hēi: ['潶', '黑', '黒', '𬭶'],
+ 'chéng dèng': ['澄', '瀓'],
+ 'cūn cún': ['澊'],
+ 'péng pēng': ['澎'],
+ 'hòng gǒng': ['澒', '銾'],
+ 'wàn màn': ['澫'],
+ 'kuài huì': ['澮'],
+ 'guō wō': ['濄'],
+ 'pēn fén': ['濆'],
+ 'jí shà': ['濈'],
+ 'huì huò': ['濊'],
+ 'dǐng tìng': ['濎'],
+ 'mǐ nǐ': ['濔'],
+ 'bì pì': ['濞'],
+ 'cuì zuǐ': ['濢'],
+ 'hù huò': ['濩'],
+ 'ǎi kài kè': ['濭'],
+ 'wěi duì': ['濻', '瀢'],
+ 'zàn cuán': ['濽', '灒'],
+ 'yǎng yàng': ['瀁'],
+ 'wǎng wāng': ['瀇'],
+ 'mò miè': ['瀎', '眜'],
+ suǐ: ['瀡', '膸', '髓'],
+ 'huái wāi': ['瀤'],
+ 'zùn jiàn': ['瀳'],
+ 'yīng yǐng yìng': ['瀴'],
+ 'ráng ràng': ['瀼'],
+ shuàng: ['灀'],
+ 'zhuó jiào zé': ['灂'],
+ sǎ: ['灑', '訯', '靸'],
+ 'luán luàn': ['灓'],
+ 'dǎng tǎng': ['灙'],
+ 'xún quán quàn': ['灥'],
+ 'huǒ biāo': ['灬'],
+ 'zhà yù': ['灹'],
+ 'fén bèn': ['炃'],
+ 'jiǒng guì': ['炅'],
+ 'pàng fēng': ['炐'],
+ quē: ['炔', '缺', '缼', '蒛'],
+ biān: [
+ '炞',
+ '煸',
+ '甂',
+ '砭',
+ '笾',
+ '箯',
+ '籩',
+ '編',
+ '编',
+ '蝙',
+ '邉',
+ '邊',
+ '鍽',
+ '鞭',
+ '鯾',
+ '鯿',
+ '鳊',
+ ],
+ 'zhāo zhào': ['炤'],
+ 'zhuō chù': ['炪'],
+ 'pào páo bāo': ['炮'],
+ 'páo fǒu': ['炰'],
+ 'shǎn qián shān': ['炶'],
+ 'zhà zhá': ['炸'],
+ 'jiǎo yào': ['烄'],
+ quǎn: ['烇', '犬', '犭', '畎', '綣', '绻', '虇'],
+ 'yàng yáng': ['烊'],
+ 'lào luò': ['烙'],
+ 'huí huǐ': ['烠'],
+ rè: ['热', '熱'],
+ 'fú páo': ['烰'],
+ 'xiè chè': ['烲', '焎'],
+ 'yàn shān': ['烻'],
+ 'hūn xūn': ['焄'],
+ kào: ['焅', '犒', '銬', '铐', '靠', '鮳', '鯌', '鲓', '㸆'],
+ 'juān yè': ['焆'],
+ 'jùn qū': ['焌'],
+ 'tāo dào': ['焘'],
+ 'chǎo jù': ['焣'],
+ 'wò ài': ['焥'],
+ 'zǒng cōng': ['焧'],
+ 'xī yì': ['焬'],
+ 'xìn xīn': ['焮'],
+ 'chāo zhuō': ['焯'],
+ 'xiǒng yīng': ['焸', '焽'],
+ kuǐ: ['煃', '跬', '蹞', '頍', '𫠆'],
+ 'huī yùn xūn': ['煇'],
+ 'jiǎo qiāo': ['煍'],
+ 'qián shǎn shān': ['煔'],
+ 'xī yí': ['煕'],
+ 'shà shā': ['煞'],
+ 'yè zhá': ['煠'],
+ 'yáng yàng': ['煬'],
+ 'ēn yūn': ['煾'],
+ 'yūn yǔn': ['熅'],
+ 'hè xiāo': ['熇'],
+ xióng: ['熊', '熋', '雄'],
+ 'xūn xùn': ['熏', '爋'],
+ gòng: ['熕', '貢', '贡'],
+ liū: ['熘'],
+ 'cōng zǒng': ['熜'],
+ 'lù āo': ['熝'],
+ 'shú shóu': ['熟'],
+ 'fēng péng': ['熢'],
+ 'cuǐ suī': ['熣'],
+ tēng: ['熥', '膯', '鼟'],
+ 'yùn yù': ['熨'],
+ 'áo āo': ['熬'],
+ 'hàn rǎn': ['熯'],
+ 'ōu ǒu': ['熰'],
+ 'huáng huǎng': ['熿'],
+ 'chǎn dǎn chàn': ['燀'],
+ 'jiāo zhuó qiáo jué': ['燋'],
+ 'yàn yān': ['燕'],
+ 'tài liè': ['燤'],
+ āo: ['爊'],
+ 'yàn xún': ['爓'],
+ 'jué jiào': ['爝', '覐', '覚', '覺', '觉'],
+ 'lǎn làn': ['爦'],
+ 'zhuǎ zhǎo': ['爪'],
+ 'zhǎo zhuǎ': ['爫'],
+ 'fù fǔ': ['父'],
+ diē: ['爹', '褺', '跌'],
+ zāng: ['牂', '羘', '臧', '賍', '賘', '贓', '贜', '赃', '髒'],
+ 'piàn piān': ['片'],
+ 'biān miàn': ['牑'],
+ bǎng: ['牓', '綁', '绑'],
+ 'yǒu yōng': ['牗'],
+ 'chēng chèng': ['牚', '竀'],
+ niú: ['牛', '牜'],
+ 'jiū lè': ['牞'],
+ 'mù móu': ['牟'],
+ māng: ['牤'],
+ 'gē qiú': ['牫'],
+ 'yòu chōu': ['牰'],
+ 'tè zhí': ['犆'],
+ bēn: ['犇', '錛', '锛'],
+ 'jiān qián': ['犍', '玪'],
+ má: ['犘', '痲', '蔴', '蟇', '麻'],
+ 'máo lí': ['犛'],
+ 'bá quǎn': ['犮'],
+ 'zhuó bào': ['犳'],
+ 'àn hān': ['犴'],
+ 'kàng gǎng': ['犺'],
+ 'pèi fèi': ['犻'],
+ 'fān huān': ['犿'],
+ kuáng: ['狂', '狅', '誑', '诳', '軖', '軠', '鵟', '𫛭'],
+ 'yí quán chí': ['狋'],
+ 'xīng shēng': ['狌'],
+ 'tuó yí': ['狏'],
+ kǔ: ['狜', '苦'],
+ 'huán huān': ['狟'],
+ 'hé mò': ['狢'],
+ 'tà shì': ['狧'],
+ 'máng dòu': ['狵'],
+ 'xī shǐ': ['狶'],
+ suān: ['狻', '痠', '酸'],
+ 'bài pí': ['猈'],
+ 'jiān yàn': ['猏', '豣'],
+ 'yī yǐ': ['猗'],
+ 'yá wèi': ['猚'],
+ cāi: ['猜'],
+ 'māo máo': ['猫', '貓'],
+ 'chuàn chuān': ['猭'],
+ 'tuān tuàn': ['猯', '貒'],
+ 'yà jiá qiè': ['猰'],
+ 'hè xiē gé hài': ['猲'],
+ 'biān piàn': ['猵', '獱'],
+ 'bó pò': ['猼'],
+ 'háo gāo': ['獋'],
+ 'fén fèn': ['獖'],
+ 'yào xiāo': ['獟'],
+ 'shuò xī': ['獡'],
+ 'gé liè xiē': ['獦'],
+ 'nòu rú': ['獳'],
+ 'náo nǎo yōu': ['獶'],
+ ráng: ['獽', '瓤', '禳', '穣', '穰', '蘘', '躟', '鬤'],
+ 'náo yōu': ['獿'],
+ 'lǜ shuài': ['率'],
+ 'wáng wàng': ['王'],
+ 'yáng chàng': ['玚'],
+ 'mín wén': ['玟'],
+ 'bīn fēn': ['玢'],
+ 'mén yǔn': ['玧'],
+ 'qiāng cāng': ['玱', '瑲', '篬'],
+ 'án gān': ['玵'],
+ 'xuán xián': ['玹'],
+ 'cī cǐ': ['玼', '跐'],
+ 'yí tāi': ['珆'],
+ 'zǔ jù': ['珇'],
+ fà: ['珐', '琺', '蕟', '髪', '髮'],
+ 'yín kèn': ['珢'],
+ 'huī hún': ['珲'],
+ 'xuán qióng': ['琁'],
+ 'fú fū': ['琈'],
+ 'bǐng pín': ['琕'],
+ 'cuì sè': ['琗'],
+ 'yù wéi': ['琟'],
+ 'tiǎn tiàn': ['琠'],
+ 'zhuó zuó': ['琢'],
+ 'běng pěi': ['琣'],
+ guǎn: ['琯', '璭', '痯', '筦', '管', '舘', '輨', '錧', '館', '馆', '鳤'],
+ 'hún huī': ['琿'],
+ 'xié jiē': ['瑎'],
+ 'chàng dàng yáng': ['瑒'],
+ 'tiàn zhèn': ['瑱'],
+ 'bīn pián': ['瑸', '璸'],
+ 'tú shū': ['瑹'],
+ cuǐ: ['璀', '皠', '趡'],
+ 'zǎo suǒ': ['璅'],
+ 'jué qióng': ['璚'],
+ 'lú fū': ['璷'],
+ 'jì zī': ['璾'],
+ suí: ['瓍', '綏', '绥', '遀', '随', '隨', '髄'],
+ 'mí xǐ': ['瓕'],
+ 'qióng wěi wèi': ['瓗'],
+ 'huán yè yà': ['瓛'],
+ 'bó páo': ['瓟'],
+ 'zhí hú': ['瓡'],
+ piáo: ['瓢', '闝'],
+ 'wǎ wà': ['瓦'],
+ 'xiáng hóng': ['瓨'],
+ wèng: ['瓮', '甕', '罋', '蕹', '齆'],
+ 'shèn shén': ['甚'],
+ ruí: ['甤', '緌', '蕤'],
+ yòng: ['用', '砽', '苚', '蒏', '醟', '㶲'],
+ shuǎi: ['甩'],
+ béng: ['甭', '甮'],
+ 'yóu zhá': ['甴'],
+ 'diàn tián shèng': ['甸'],
+ 'tǐng dīng': ['町', '甼'],
+ 'zāi zī': ['甾'],
+ 'bì qí': ['畁'],
+ 'dá fú': ['畗'],
+ 'cè jì': ['畟'],
+ 'zāi zī tián': ['畠'],
+ 'zhì chóu shì': ['畤'],
+ 'fān pān': ['畨', '番'],
+ 'shē yú': ['畬'],
+ 'dāng dàng dǎng': ['當'],
+ 'jiāng qiáng': ['疆'],
+ 'pǐ yǎ shū': ['疋'],
+ 'jié qiè': ['疌'],
+ 'yí nǐ': ['疑'],
+ nè: ['疒', '眲', '訥', '讷'],
+ 'gē yì': ['疙'],
+ 'nüè yào': ['疟', '瘧'],
+ 'lì lài': ['疠', '癘'],
+ 'yǎ xiā': ['疨'],
+ xuē: ['疶', '蒆', '薛', '辥', '辪', '靴', '鞾'],
+ 'dǎn da': ['疸'],
+ 'fá biǎn': ['疺'],
+ 'fèi féi': ['疿', '痱'],
+ 'shān diàn': ['痁'],
+ 'téng chóng': ['痋'],
+ 'tōng tóng': ['痌'],
+ 'wěi yòu yù': ['痏'],
+ 'tān shǐ': ['痑'],
+ 'pū pù': ['痡', '鋪'],
+ 'bēng péng': ['痭'],
+ 'má lìn': ['痳'],
+ 'tiǎn diàn': ['痶'],
+ 'ān yè è': ['痷'],
+ 'kē ē': ['痾'],
+ 'zhì chì': ['瘈'],
+ 'jiǎ xiá xiā': ['瘕'],
+ 'lěi huì': ['瘣'],
+ 'chài cuó': ['瘥'],
+ 'diān chēn': ['瘨'],
+ 'da dá': ['瘩'],
+ 'biě biē': ['瘪'],
+ qué: ['瘸'],
+ 'dàn dān': ['癉'],
+ 'guì wēi': ['癐'],
+ 'nòng nóng': ['癑'],
+ 'biē biě': ['癟'],
+ 'bō bǒ': ['癷'],
+ bái: ['白'],
+ 'jí bī': ['皀'],
+ 'de dì dí dī': ['的'],
+ 'pā bà': ['皅'],
+ 'gāo háo': ['皋'],
+ 'gāo yáo': ['皐'],
+ 'lì luò bō': ['皪'],
+ 'zhā cǔ': ['皻'],
+ 'zhāo zhǎn dǎn': ['皽'],
+ 'jiān jiàn': ['监', '監', '鋻', '间', '鞬'],
+ 'gài gě hé': ['盖'],
+ 'máng wàng': ['盳'],
+ yuǎn: ['盶', '逺', '遠'],
+ 'tián xián': ['盷'],
+ 'xiāng xiàng': ['相'],
+ dǔn: ['盹', '趸', '躉'],
+ 'xì pǎn': ['盻'],
+ 'shěng xǐng': ['省'],
+ 'yún hùn': ['眃'],
+ 'miǎn miàn': ['眄'],
+ 'kàn kān': ['看'],
+ 'yìng yāng yǎng': ['眏'],
+ 'yǎo āo ǎo': ['眑'],
+ 'jū xū kōu': ['眗'],
+ 'yí chì': ['眙'],
+ 'dié tì': ['眣'],
+ 'bǐng fǎng': ['眪'],
+ 'pàng pán': ['眫'],
+ 'mī mí': ['眯', '瞇'],
+ 'xuàn shùn xún': ['眴'],
+ tiào: ['眺', '粜', '糶', '覜', '趒'],
+ 'zhe zhuó zháo zhāo': ['着'],
+ 'qiáo shào xiāo': ['睄'],
+ 'cuó zhuài': ['睉'],
+ gùn: ['睔', '謴'],
+ 'suì zuì': ['睟'],
+ 'pì bì': ['睥', '稫', '辟'],
+ 'yì zé gāo': ['睪'],
+ 'xǐng xìng': ['睲'],
+ 'guì wèi kuì': ['瞆'],
+ 'kòu jì': ['瞉'],
+ 'qióng huán': ['瞏'],
+ 'mán mén': ['瞒', '瞞'],
+ 'diāo dōu': ['瞗'],
+ 'lou lóu lǘ': ['瞜'],
+ 'shùn rún': ['瞤'],
+ 'liào liǎo': ['瞭', '钌'],
+ 'jiàn xián': ['瞯'],
+ 'wǔ mí': ['瞴'],
+ 'guì kuì': ['瞶'],
+ 'nǐng chēng': ['矃'],
+ 'huò yuè': ['矆'],
+ 'mēng méng': ['矇'],
+ 'kuàng guō': ['矌'],
+ 'guàn quán': ['矔'],
+ 'mǎn mán': ['矕'],
+ 'jīn guān qín': ['矜'],
+ 'jīn qín guān': ['矝'],
+ 'yù xù jué': ['矞'],
+ 'jiǎo jiáo': ['矫', '矯'],
+ duǎn: ['短'],
+ 'shí dàn': ['石'],
+ 'gāng qiāng kòng': ['矼'],
+ 'huā xū': ['砉'],
+ 'pīn bīn fēn': ['砏'],
+ 'yán yàn': ['研', '硏'],
+ 'luǒ kē': ['砢'],
+ 'fú fèi': ['砩', '笰'],
+ 'zhǔ zhù': ['砫'],
+ 'lá lì lā': ['砬'],
+ 'kuāng guāng': ['硄'],
+ 'gè luò': ['硌'],
+ 'shuò shí': ['硕', '碩'],
+ 'wèi wéi ái': ['硙'],
+ 'què kè kù': ['硞'],
+ 'mǎng bàng': ['硥'],
+ 'luò lòng': ['硦'],
+ 'yǒng tóng': ['硧'],
+ nüè: ['硸', '虐'],
+ 'kēng kěng': ['硻'],
+ 'yān yǎn': ['硽'],
+ 'zhuì chuí duǒ': ['硾'],
+ 'kōng kòng': ['硿'],
+ 'zòng cóng': ['碂'],
+ 'jiān zhàn': ['碊'],
+ 'lù liù': ['碌', '陆'],
+ 'què xī': ['碏'],
+ 'lún lǔn lùn': ['碖'],
+ 'náo gāng': ['碙'],
+ 'jié yà': ['碣'],
+ 'wèi wěi': ['碨'],
+ 'tí dī': ['碮'],
+ 'chá chā': ['碴'],
+ 'qiāo què': ['碻'],
+ 'sù xiè': ['碿'],
+ 'liú liù': ['磂', '遛', '鎦', '馏'],
+ 'sī tí': ['磃'],
+ 'bàng páng': ['磅'],
+ 'huá kě gū': ['磆'],
+ 'wěi kuǐ': ['磈'],
+ 'xiá qià yà': ['磍'],
+ 'lián qiān': ['磏'],
+ 'wèi ái gài': ['磑'],
+ 'lá lā': ['磖'],
+ 'áo qiāo': ['磝'],
+ 'pēng pèng': ['磞', '閛'],
+ 'yīn yǐn': ['磤'],
+ 'lěi léi': ['磥'],
+ 'mó mò': ['磨'],
+ 'qì zhú': ['磩'],
+ 'láo luò': ['磱'],
+ 'pán bō': ['磻'],
+ 'jí shé': ['磼'],
+ 'hé qiāo qiào': ['礉'],
+ 'kè huò': ['礊'],
+ 'què hú': ['礐'],
+ 'è qì': ['礘'],
+ cǎ: ['礤', '礸'],
+ 'xián xín': ['礥'],
+ 'léi lěi lèi': ['礧'],
+ 'yán yǎn': ['礹'],
+ 'qí zhǐ': ['祇', '蚔'],
+ 'bēng fāng': ['祊'],
+ 'bì mì': ['祕'],
+ suàn: ['祘', '笇', '筭', '算', '蒜'],
+ 'piào piāo': ['票'],
+ 'jì zhài': ['祭'],
+ 'shuì lèi': ['祱'],
+ 'jìn jīn': ['禁'],
+ 'chán shàn': ['禅'],
+ 'yáng shāng': ['禓'],
+ 'zhī zhǐ tí': ['禔'],
+ 'shàn chán': ['禪'],
+ 'yú yù ǒu': ['禺'],
+ 'zǐ zì': ['秄'],
+ 'chá ná': ['秅'],
+ 'zhǒng zhòng chóng': ['种'],
+ 'hào mào': ['秏'],
+ 'kù kū': ['秙'],
+ zū: ['租', '葅'],
+ chèng: ['秤', '穪'],
+ 'huó kuò': ['秮', '秳'],
+ 'chēng chèn chèng': ['称', '稱'],
+ 'shì zhì': ['秲', '銴'],
+ 'fù pū': ['秿'],
+ 'xùn zè': ['稄'],
+ 'tú shǔ': ['稌'],
+ 'zhùn zhǔn': ['稕'],
+ 'jī qí': ['稘', '綨', '觭'],
+ 'léng líng': ['稜'],
+ 'zuì zú sū': ['稡'],
+ 'xì qiè': ['稧', '郄'],
+ 'zhǒng zhòng': ['種'],
+ 'zōng zǒng': ['稯'],
+ 'xián jiān liàn': ['稴'],
+ 'zī jiū': ['稵'],
+ 'jī qǐ': ['稽'],
+ ròng: ['穃'],
+ 'shān cǎn cēn': ['穇'],
+ 'mén méi': ['穈'],
+ 'jǐ jì': ['穖'],
+ 'xiāo rào': ['穘'],
+ 'zhuō bó': ['穛'],
+ 'tóng zhǒng zhòng': ['穜'],
+ zuō: ['穝'],
+ 'biāo pāo': ['穮', '藨'],
+ 'zhuō jué': ['穱'],
+ 'cuán zàn': ['穳'],
+ 'kōng kòng kǒng': ['空'],
+ 'yū yǔ': ['穻'],
+ zhǎi: ['窄', '鉙'],
+ báo: ['窇', '雹'],
+ 'kū zhú': ['窋'],
+ 'jiào liáo liù': ['窌'],
+ 'wā guī': ['窐'],
+ 'tiǎo yáo': ['窕'],
+ 'xūn yìn': ['窨'],
+ 'yà yē': ['窫'],
+ 'tián diān yǎn': ['窴'],
+ 'chāo kē': ['窼'],
+ 'kuǎn cuàn': ['窽', '窾'],
+ 'chù qì': ['竐'],
+ 'qǔ kǒu': ['竘'],
+ 'jìng zhěn': ['竧'],
+ 'kǎn kàn': ['竷'],
+ 'zhú dǔ': ['竺'],
+ 'lè jīn': ['竻'],
+ 'zhuì ruì': ['笍'],
+ 'háng hàng': ['笐'],
+ 'cén jìn hán': ['笒'],
+ 'dā xiá nà': ['笚'],
+ 'zé zuó': ['笮'],
+ 'lóng lǒng': ['笼', '篭', '籠', '躘', '龓'],
+ 'zhù zhú': ['筑', '築'],
+ 'dá dā': ['答', '荅'],
+ shāi: ['筛', '篩', '簁', '籭'],
+ 'yún jūn': ['筠'],
+ 'láng làng': ['筤', '郎', '阆'],
+ 'zhì zhǐ': ['筫'],
+ o: ['筽'],
+ 'póu bù fú pú': ['箁'],
+ 'pái bēi': ['箄'],
+ gè: ['箇', '虼', '鉻', '铬'],
+ 'tái chí': ['箈'],
+ 'guǎi dài': ['箉'],
+ 'zhào dào': ['箌'],
+ 'jīng qìng': ['箐'],
+ 'lín lǐn': ['箖'],
+ 'jùn qūn': ['箘'],
+ 'shī yí': ['箷', '釶'],
+ 'yuē yào chuò': ['箹'],
+ 'xiāo shuò qiào': ['箾'],
+ 'gōng gǎn lǒng': ['篢'],
+ 'páng péng': ['篣'],
+ 'zhuó huò': ['篧'],
+ 'jiǎn jiān': ['篯'],
+ 'dí zhú': ['篴'],
+ 'zān cēn cǎn': ['篸'],
+ 'zhuàn suǎn zuàn': ['篹'],
+ 'piǎo biāo': ['篻'],
+ 'guó guì': ['簂'],
+ 'cè jí': ['簎'],
+ 'mì miè': ['簚'],
+ 'shāi sī': ['簛'],
+ 'sǔn zhuàn': ['簨'],
+ 'gàn gǎn': ['簳'],
+ 'bò bǒ': ['簸'],
+ 'bó bù': ['簿'],
+ shi: ['籂'],
+ 'zhēn jiān': ['籈'],
+ 'zhuàn zuǎn': ['籑'],
+ 'fān pān biān': ['籓'],
+ 'sǒu shǔ': ['籔'],
+ zuǎn: ['籫', '繤', '纂', '纉', '纘', '缵'],
+ nǚ: ['籹', '釹', '钕'],
+ 'shā chǎo': ['粆'],
+ 'kāng jīng': ['粇'],
+ fěn: ['粉', '黺'],
+ cū: ['粗', '觕', '麁', '麄', '麤'],
+ 'nián zhān': ['粘'],
+ 'cè sè': ['粣'],
+ 'zhōu yù': ['粥'],
+ 'shēn sǎn': ['糁'],
+ 'biān biǎn': ['糄', '萹'],
+ miàn: ['糆', '面', '靣', '麪', '麫', '麵', '麺'],
+ 'hú hū hù': ['糊'],
+ 'gǔ gòu': ['糓'],
+ 'mí méi': ['糜'],
+ 'sǎn shēn': ['糝', '糣'],
+ zāo: ['糟', '蹧', '遭', '醩'],
+ 'mì sī': ['糸'],
+ 'jiū jiǔ': ['糺'],
+ 'xì jì': ['系', '繫'],
+ 'zhēng zhěng': ['糽'],
+ 'chà chǎ': ['紁', '衩'],
+ 'yuē yāo': ['約', '约'],
+ 'hóng gōng': ['紅', '红'],
+ 'hé gē': ['紇', '纥'],
+ 'wén wèn': ['紋', '纹'],
+ fóu: ['紑'],
+ 'jì jié jiè': ['紒'],
+ 'pī pí bǐ': ['紕', '纰'],
+ 'jīn jìn': ['紟'],
+ 'zhā zā': ['紥', '紮'],
+ hā: ['紦'],
+ 'fū fù': ['紨'],
+ 'chōu chóu': ['紬'],
+ 'lèi léi lěi': ['累'],
+ 'bō bì': ['紴'],
+ 'tiǎn zhěn': ['紾'],
+ 'jiōng jiǒng': ['絅'],
+ 'jié jiē': ['結', '结', '节'],
+ 'guà kuā': ['絓'],
+ 'bǎi mò': ['絔'],
+ 'gēng huán': ['絙'],
+ 'jié xié': ['絜'],
+ 'quán shuān': ['絟'],
+ 'gǎi ǎi': ['絠'],
+ 'luò lào': ['絡', '络'],
+ 'bīng bēng pēng': ['絣'],
+ 'gěi jǐ': ['給', '给'],
+ 'tóng tōng dòng': ['絧'],
+ 'tiào diào dào': ['絩'],
+ 'lěi lèi léi': ['絫'],
+ 'gāi hài': ['絯'],
+ 'chī zhǐ': ['絺'],
+ 'wèn miǎn mán wàn': ['絻'],
+ 'huán huàn wàn': ['綄'],
+ 'qīn xiān': ['綅'],
+ 'tì tí': ['綈'],
+ 'yán xiàn': ['綖'],
+ 'zōng zèng zòng': ['綜'],
+ 'chēn lín': ['綝'],
+ 'zhǔn zhùn': ['綧'],
+ 'qiàn qīng zhēng': ['綪'],
+ 'qìng qǐ': ['綮'],
+ 'lún guān': ['綸', '纶'],
+ 'chuò chāo': ['綽', '绰'],
+ 'tián tǎn chān': ['緂'],
+ 'lǜ lù': ['緑', '绿'],
+ 'ruǎn ruàn': ['緛'],
+ 'jí qī': ['緝'],
+ 'zhòng chóng': ['緟', '重'],
+ 'miáo máo': ['緢'],
+ 'xiè yè': ['緤'],
+ huǎn: ['緩', '缓', '㬊'],
+ 'gēng gèng': ['緪', '縆'],
+ 'tōu xū shū': ['緰'],
+ 'zōng zòng': ['緵', '繌'],
+ 'yùn gǔn': ['緷'],
+ 'guā wō': ['緺'],
+ 'yùn yūn wēn': ['緼', '縕'],
+ 'bāng bàng': ['縍'],
+ 'gǔ hú': ['縎', '鶻'],
+ 'cī cuò suǒ': ['縒'],
+ 'cuī shuāi': ['縗'],
+ 'róng rǒng ròng': ['縙'],
+ 'zài zēng': ['縡'],
+ cài: ['縩', '菜', '蔡'],
+ 'féng fèng': ['縫'],
+ 'suō sù': ['縮', '缩'],
+ 'yǎn yǐn': ['縯', '酓'],
+ 'zòng zǒng': ['縱', '纵'],
+ 'zhuàn juàn': ['縳'],
+ 'mò mù': ['縸', '莫'],
+ 'piǎo piāo': ['縹', '缥'],
+ 'fán pó': ['繁'],
+ 'bēng bèng': ['繃'],
+ 'móu miù miào liǎo': ['繆'],
+ 'yáo yóu zhòu': ['繇'],
+ 'zēng zèng': ['繒', '缯'],
+ 'jú jué': ['繘'],
+ 'chuō chuò': ['繛'],
+ 'zūn zǔn': ['繜'],
+ rào: ['繞', '绕', '遶'],
+ 'chǎn chán': ['繟'],
+ 'huì huí': ['繢', '缋', '藱'],
+ 'qiāo sāo zǎo': ['繰'],
+ 'jiǎo zhuó': ['繳', '缴'],
+ 'dàn tán chán': ['繵'],
+ nǒng: ['繷'],
+ 'pú fú': ['纀'],
+ 'yào lì': ['纅'],
+ 'rǎng xiāng': ['纕'],
+ 'lí sǎ xǐ lǐ': ['纚'],
+ 'xiān qiàn': ['纤'],
+ 'jīng jìng': ['经'],
+ 'tí tì': ['绨'],
+ 'bēng běng bèng': ['绷'],
+ 'zōng zèng': ['综'],
+ 'jī qī': ['缉'],
+ 'wēn yùn yūn': ['缊'],
+ 'fèng féng': ['缝'],
+ 'shuāi cuī suī': ['缞'],
+ 'miù móu liáo miào mù': ['缪'],
+ 'qiāo sāo': ['缲'],
+ fǒu: ['缶', '缹', '缻', '雬', '鴀'],
+ 'bà ba pí': ['罢', '罷'],
+ 'guà guǎi': ['罫'],
+ 'yáng xiáng': ['羊', '羏'],
+ 'měi gāo': ['羙'],
+ 'yì xī': ['羛'],
+ 'qiǎng qiān': ['羟'],
+ 'qiāng kòng': ['羫'],
+ 'qián xián yán': ['羬'],
+ nóu: ['羺'],
+ 'hóng gòng': ['羾'],
+ 'pī bì pō': ['翍'],
+ 'qú yù': ['翑'],
+ ké: ['翗'],
+ 'qiào qiáo': ['翘'],
+ 'zhái dí': ['翟'],
+ 'dào zhōu': ['翢'],
+ 'hóu qú': ['翵'],
+ shuǎ: ['耍'],
+ 'ruǎn nuò': ['耎'],
+ 'ér nài': ['耏'],
+ 'zhuān duān': ['耑'],
+ 'pá bà': ['耙'],
+ 'chí sì': ['耛'],
+ 'qù chú': ['耝'],
+ 'lún lǔn': ['耣'],
+ 'jí jiè': ['耤'],
+ 'tāng tǎng': ['耥'],
+ pǎng: ['耪', '覫'],
+ 'zhá zé': ['耫'],
+ 'yē yé': ['耶'],
+ 'yún yíng': ['耺'],
+ 'wà tuǐ zhuó': ['聉'],
+ 'ér nǜ': ['聏'],
+ 'tiē zhé': ['聑'],
+ 'dǐ zhì': ['聜'],
+ qié: ['聺'],
+ 'nǐ jiàn': ['聻'],
+ 'lèi lē': ['肋'],
+ cào: ['肏', '襙', '鄵', '鼜'],
+ 'bó dí': ['肑'],
+ 'xiào xiāo': ['肖'],
+ 'dù dǔ': ['肚'],
+ chāi: ['肞', '釵', '钗'],
+ 'hán qín hàn': ['肣'],
+ 'pàng pán pàn': ['肨', '胖'],
+ 'zhūn chún': ['肫'],
+ āng: ['肮', '骯'],
+ 'yù yō': ['育'],
+ 'pí bǐ bì': ['肶'],
+ 'fèi bì': ['胇'],
+ 'bèi bēi': ['背'],
+ 'fèi zǐ': ['胏'],
+ 'píng pēng': ['胓', '苹'],
+ 'fū fú zhǒu': ['胕'],
+ 'shèng shēng': ['胜'],
+ kuà: ['胯', '跨', '骻'],
+ 'gǎi hǎi': ['胲'],
+ 'gē gé gā': ['胳'],
+ 'néng nài': ['能'],
+ 'guī kuì': ['胿'],
+ 'mài mò': ['脉'],
+ 'zāng zàng': ['脏'],
+ 'jiǎo jué': ['脚', '角'],
+ cuǒ: ['脞'],
+ 'de te': ['脦'],
+ 'zuī juān': ['脧'],
+ něi: ['脮', '腇', '餒', '馁', '鮾', '鯘'],
+ 'pú fǔ': ['脯'],
+ niào: ['脲'],
+ shuí: ['脽'],
+ guò: ['腂', '過', '鐹'],
+ 'là xī': ['腊'],
+ 'yān ā': ['腌'],
+ 'gāo gào': ['膏'],
+ 'lù biāo': ['膔'],
+ chuái: ['膗'],
+ 'zhuān chuán chún zhuǎn': ['膞'],
+ chuài: ['膪', '踹'],
+ 'fán pán': ['膰'],
+ 'wǔ hū': ['膴'],
+ 'shān dàn': ['膻'],
+ tún: ['臀', '臋', '蛌', '豘', '豚', '軘', '霕', '飩', '饨', '魨', '鲀', '黗'],
+ 'bì bei': ['臂'],
+ 'là gé': ['臈'],
+ 'sào sāo': ['臊'],
+ nào: ['臑', '閙', '闹', '鬧'],
+ 'ní luán': ['臡'],
+ 'qiān xián': ['臤'],
+ 'guàng jiǒng': ['臦'],
+ 'guǎng jiǒng': ['臩'],
+ 'chòu xiù': ['臭'],
+ 'mián biān': ['臱'],
+ 'dié zhí': ['臷'],
+ 'zhī jìn': ['臸'],
+ 'shè shě': ['舍'],
+ pù: ['舖', '舗'],
+ 'bān bō pán': ['般'],
+ kuā: ['舿'],
+ 'gèn gěn': ['艮'],
+ 'sè shǎi': ['色'],
+ 'fú bó': ['艴'],
+ 'jiāo qiú': ['艽'],
+ 'chāi chā': ['芆'],
+ 'sháo què': ['芍'],
+ 'hù xià': ['芐'],
+ 'zì zǐ': ['芓'],
+ 'huì hū': ['芔'],
+ 'tún chūn': ['芚'],
+ 'jiè gài': ['芥'],
+ 'xù zhù': ['芧'],
+ 'yuán yán': ['芫'],
+ 'xīn xìn': ['芯'],
+ 'lún huā': ['芲'],
+ 'wù hū': ['芴'],
+ 'gōu gǒu': ['芶'],
+ 'mào máo': ['芼'],
+ 'fèi fú': ['芾'],
+ 'chán yín': ['苂'],
+ qiē: ['苆'],
+ 'sū sù': ['苏'],
+ 'tiáo sháo': ['苕'],
+ 'lì jī': ['苙'],
+ 'kē hē': ['苛'],
+ 'jù qǔ': ['苣'],
+ 'ruò rě': ['若'],
+ 'zhù níng': ['苧'],
+ 'pā bó': ['苩'],
+ xiú: ['苬'],
+ 'zhǎ zuó': ['苲'],
+ 'jū chá': ['苴'],
+ nié: ['苶'],
+ 'shēng ruí': ['苼'],
+ 'qié jiā': ['茄'],
+ 'zǐ cí': ['茈'],
+ 'qiàn xī': ['茜'],
+ chǎi: ['茝'],
+ 'fá pèi': ['茷'],
+ ráo: ['荛', '蕘', '襓', '饒', '饶'],
+ 'yíng xíng': ['荥'],
+ 'qián xún': ['荨', '蕁'],
+ 'yìn yīn': ['荫'],
+ 'hé hè': ['荷'],
+ 'shā suō': ['莎'],
+ 'péng fēng': ['莑'],
+ 'shēn xīn': ['莘'],
+ 'wǎn guān guǎn': ['莞'],
+ 'yóu sù': ['莤'],
+ 'shāo xiāo': ['莦', '蛸'],
+ 'làng liáng': ['莨'],
+ 'piǎo fú': ['莩'],
+ 'wèn wǎn miǎn': ['莬'],
+ 'shì shí': ['莳', '蒔'],
+ 'tù tú': ['莵'],
+ 'xiān liǎn': ['莶', '薟'],
+ 'wǎn yù': ['菀'],
+ 'zōu chù': ['菆'],
+ 'lù lǜ': ['菉'],
+ 'jūn jùn': ['菌'],
+ 'niè rěn': ['菍'],
+ 'zī zì zāi': ['菑'],
+ 'tú tù': ['菟'],
+ 'jiē shà': ['菨'],
+ 'qiáo zhǎo': ['菬'],
+ 'tái zhī chí': ['菭'],
+ 'fēi fěi': ['菲', '蜚'],
+ 'qín qīn jīn': ['菳'],
+ 'zū jù': ['菹', '蒩'],
+ 'lǐn má': ['菻'],
+ 'tián tiàn': ['菾'],
+ tiē: ['萜', '貼', '贴'],
+ 'luò là lào luō': ['落'],
+ 'zhù zhuó zhe': ['著'],
+ 'shèn rèn': ['葚'],
+ 'gě gé': ['葛'],
+ 'jùn suǒ': ['葰'],
+ 'kuì kuài': ['蒉'],
+ 'rú ná': ['蒘'],
+ 'méng mēng měng': ['蒙'],
+ 'yuán huán': ['蒝'],
+ 'xú shú': ['蒣'],
+ 'xí xì': ['蒵'],
+ 'mì míng': ['蓂'],
+ 'sōu sǒu': ['蓃'],
+ 'gài gě hé hài': ['蓋'],
+ 'yǎo zhuó': ['蓔'],
+ 'diào tiáo dí': ['蓧'],
+ 'xū qiū fū': ['蓲'],
+ 'zí jú': ['蓻'],
+ 'liǎo lù': ['蓼'],
+ xu: ['蓿'],
+ 'hàn hǎn': ['蔊'],
+ 'màn wàn mán': ['蔓'],
+ 'pó bò': ['蔢'],
+ 'fān fán bō': ['蕃'],
+ 'hóng hòng': ['蕻'],
+ 'yù ào': ['薁', '隩'],
+ 'xí xiào': ['薂'],
+ 'báo bó bò': ['薄'],
+ 'cí zī': ['薋'],
+ 'wàn luàn': ['薍'],
+ 'kǎo hāo': ['薧'],
+ 'yuǎn wěi': ['薳'],
+ 'zhòu chóu': ['薵'],
+ 'wō mái': ['薶'],
+ 'xiāo hào': ['藃'],
+ 'yù xù xū': ['藇'],
+ 'jiè jí': ['藉'],
+ 'diào zhuó': ['藋'],
+ 'cáng zàng': ['藏'],
+ lǎ: ['藞'],
+ 'chú zhū': ['藸'],
+ 'pín píng': ['蘋'],
+ 'gān hán': ['虷'],
+ 'hóng jiàng': ['虹'],
+ 'huī huǐ': ['虺'],
+ 'xiā há': ['虾'],
+ 'mǎ mà mā': ['蚂'],
+ 'fāng bàng': ['蚄'],
+ 'bàng bèng': ['蚌'],
+ 'jué quē': ['蚗'],
+ 'qín qián': ['蚙'],
+ 'gōng zhōng': ['蚣'],
+ 'fǔ fù': ['蚥'],
+ 'dài dé': ['蚮'],
+ 'gǒu qú xù': ['蚼'],
+ 'bǒ pí': ['蚾'],
+ 'shé yí': ['蛇'],
+ tiě: ['蛈', '鉄', '銕', '鐡', '鐵', '铁', '驖'],
+ 'gé luò': ['蛒'],
+ 'máng bàng': ['蛖'],
+ 'yì xǔ': ['蛡'],
+ 'há gé': ['蛤'],
+ 'qiè ní': ['蛪'],
+ 'é yǐ': ['蛾'],
+ 'zhē zhé': ['蜇'],
+ 'là zhà': ['蜡'],
+ suò: ['蜶', '逤'],
+ 'yóu qiú': ['蝤'],
+ 'xiā hā': ['蝦'],
+ 'xī qī': ['螇'],
+ 'bī pí': ['螕'],
+ 'nài něng': ['螚'],
+ 'hé xiá': ['螛'],
+ 'guì huǐ': ['螝'],
+ 'mǎ mā mà': ['螞'],
+ 'shì zhē': ['螫'],
+ 'zhì dié': ['螲'],
+ 'jiàn chán': ['螹'],
+ 'ma má mò': ['蟆'],
+ 'mǎng měng': ['蟒'],
+ 'biē bié': ['蟞'],
+ 'bēn fèi': ['蟦'],
+ 'láo liáo': ['蟧'],
+ 'yín xún': ['蟫'],
+ 'lí lǐ': ['蠡'],
+ 'xuè xiě': ['血'],
+ 'xíng háng hàng héng': ['行'],
+ 'shuāi cuī': ['衰'],
+ 'tuó tuō': ['袉'],
+ 'lǐng líng': ['袊'],
+ 'bào páo pào': ['袌'],
+ 'jù jiē': ['袓'],
+ 'hè kè': ['袔'],
+ 'yí yì': ['袘', '貤'],
+ 'nà jué': ['袦'],
+ 'bèi pī': ['被'],
+ 'chǐ nuǒ': ['袲'],
+ 'chǐ qǐ duǒ nuǒ': ['袳'],
+ 'jiá qiā jié': ['袷'],
+ 'bó mò': ['袹'],
+ 'guī guà': ['袿'],
+ 'liè liě': ['裂'],
+ 'chéng chěng': ['裎'],
+ 'jiē gé': ['裓'],
+ 'dāo chóu': ['裯'],
+ 'shang cháng': ['裳'],
+ 'yuān gǔn': ['裷'],
+ 'yǎn ān': ['裺'],
+ 'tì xī': ['裼'],
+ 'fù fú': ['褔'],
+ 'chǔ zhǔ': ['褚'],
+ 'tuì tùn': ['褪'],
+ lǎi: ['襰'],
+ 'yào yāo': ['要'],
+ 'qín tán': ['覃'],
+ 'jiàn xiàn': ['見', '见'],
+ piǎn: ['覑', '諞', '谝', '貵', '𡎚'],
+ 'piē miè': ['覕'],
+ 'yíng yǐng': ['覮'],
+ 'qù qū': ['覰', '覷', '觑'],
+ 'jiàn biǎn': ['覵'],
+ 'luó luǎn': ['覶'],
+ 'zī zuǐ': ['觜'],
+ 'huà xiè': ['觟'],
+ 'jiě jiè xiè': ['解', '觧'],
+ 'xué hù': ['觷'],
+ 'lì lù': ['觻'],
+ tǎo: ['討', '讨'],
+ zhùn: ['訰'],
+ 'zī zǐ': ['訾'],
+ 'yí dài': ['詒', '诒'],
+ xiòng: ['詗', '诇'],
+ 'diào tiǎo': ['誂'],
+ 'yí chǐ chì': ['誃'],
+ 'lǎng làng': ['誏'],
+ 'ēi éi ěi èi xī': ['誒', '诶'],
+ shuà: ['誜'],
+ 'yǔ yù': ['語', '语', '雨'],
+ 'shuō shuì yuè': ['說', '说'],
+ 'shuí shéi': ['誰', '谁'],
+ 'qū juè': ['誳'],
+ 'chī lài': ['誺'],
+ 'nì ná': ['誽'],
+ 'diào tiáo': ['調'],
+ 'pǐ bēi': ['諀'],
+ 'jì jī': ['諅'],
+ 'zé zuò zhǎ cuò': ['諎'],
+ 'chù jí': ['諔'],
+ 'háo xià': ['諕'],
+ 'lùn lún': ['論', '论'],
+ 'shì dì': ['諟'],
+ 'huà guā': ['諣'],
+ 'xǐ shāi āi': ['諰'],
+ 'nán nàn': ['諵', '難'],
+ miù: ['謬', '谬'],
+ zèn: ['譖', '谮'],
+ 'shí zhì': ['識', '识'],
+ 'juàn xuān': ['讂'],
+ 'yí tuī': ['讉'],
+ zhán: ['讝'],
+ 'xǔ hǔ': ['许'],
+ 'xiáng yáng': ['详'],
+ 'tiáo diào zhōu': ['调'],
+ 'chén shèn': ['谌'],
+ 'mí mèi': ['谜'],
+ 'màn mán': ['谩'],
+ 'gǔ yù': ['谷'],
+ 'huō huò huá': ['豁'],
+ 'zhì zhài': ['豸'],
+ 'huān huán': ['貆'],
+ 'kěn kūn': ['貇'],
+ 'mò hé': ['貈'],
+ 'mò hé háo': ['貉'],
+ 'jù lóu': ['貗'],
+ 'zé zhài': ['責', '责'],
+ 'dài tè': ['貸'],
+ 'bì bēn': ['賁'],
+ 'jiǎ gǔ jià': ['賈'],
+ 'xiōng mín': ['賯'],
+ càng: ['賶'],
+ 'zhuàn zuàn': ['賺', '赚'],
+ 'wàn zhuàn': ['贃'],
+ 'gàn gòng zhuàng': ['贛'],
+ 'yuán yùn': ['贠'],
+ 'bēn bì': ['贲'],
+ 'jiǎ gǔ': ['贾'],
+ zǒu: ['走', '赱', '鯐'],
+ 'dié tú': ['趃'],
+ 'jū qiè': ['趄'],
+ 'qū cù': ['趋', '趨'],
+ 'jí jié': ['趌'],
+ 'guā huó': ['趏'],
+ 'què qì jí': ['趞'],
+ 'tàng tāng': ['趟'],
+ 'chuō zhuó': ['趠'],
+ 'qù cù': ['趣'],
+ 'yuè tì': ['趯'],
+ 'bō bào': ['趵'],
+ 'kuà wù': ['趶'],
+ 'guì jué': ['趹'],
+ 'fāng fàng páng': ['趽'],
+ 'páo bà': ['跁'],
+ 'qí qǐ': ['跂'],
+ 'jiàn chén': ['跈'],
+ 'pǎo páo': ['跑'],
+ 'diǎn diē tiē': ['跕'],
+ 'jū jù qiè': ['跙'],
+ bǒ: ['跛'],
+ 'luò lì': ['跞'],
+ 'dài duò duō chí': ['跢'],
+ zhuǎi: ['跩'],
+ 'bèng pián': ['跰'],
+ 'tiào táo': ['跳'],
+ 'shū chōu': ['跾'],
+ 'liàng liáng': ['踉'],
+ 'tà tā': ['踏'],
+ chǎ: ['蹅', '鑔', '镲'],
+ 'dí zhí': ['蹢'],
+ 'dēng dèng': ['蹬', '鐙', '镫'],
+ cèng: ['蹭'],
+ 'dūn cún': ['蹲'],
+ 'juě jué': ['蹶'],
+ liāo: ['蹽'],
+ 'xiè sǎ': ['躠'],
+ tǐ: ['躰', '軆', '骵'],
+ 'yà zhá gá': ['轧', '軋'],
+ 'xìn xiàn': ['軐'],
+ 'fàn guǐ': ['軓'],
+ 'zhuàn zhuǎn': ['転'],
+ 'zhóu zhòu': ['軸', '轴'],
+ bú: ['轐', '醭', '鳪'],
+ 'zhuǎn zhuàn zhuǎi': ['转'],
+ 'zǎi zài': ['载'],
+ 'niǎn zhǎn': ['辗'],
+ 'biān bian': ['边'],
+ 'dào biān': ['辺'],
+ 'yǐ yí': ['迆', '迤', '迱'],
+ 'guò guo guō': ['过'],
+ 'wàng kuāng': ['迋'],
+ 'hái huán': ['还'],
+ 'zhè zhèi': ['这'],
+ 'yuǎn yuàn': ['远'],
+ 'zhì lì': ['迣'],
+ 'zhù wǎng': ['迬'],
+ 'zhuī duī': ['追'],
+ 'shì kuò': ['适'],
+ tòu: ['透'],
+ 'tōng tòng': ['通'],
+ guàng: ['逛'],
+ 'dǎi dài': ['逮'],
+ 'suì suí': ['遂'],
+ 'tí dì': ['遆'],
+ 'yí wèi': ['遗'],
+ 'shì dí zhé': ['適'],
+ cà: ['遪'],
+ 'huán hái': ['還'],
+ 'lí chí': ['邌'],
+ 'kàng háng': ['邟'],
+ 'nà nèi nā': ['那'],
+ 'xié yá yé yú xú': ['邪'],
+ 'gāi hái': ['郂'],
+ 'huán xún': ['郇'],
+ 'chī xī': ['郗'],
+ hǎo: ['郝'],
+ 'lì zhí': ['郦'],
+ 'xiáo ǎo': ['郩'],
+ 'dōu dū': ['都'],
+ liǎo: ['曢', '鄝', '镽'],
+ 'zàn cuán cuó': ['酂', '酇'],
+ 'dīng dǐng': ['酊'],
+ 'cù zuò': ['酢'],
+ 'fā pō': ['酦'],
+ 'shāi shī': ['酾'],
+ niàng: ['酿', '醸'],
+ 'qiú chōu': ['醔'],
+ 'pō fā': ['醗', '醱'],
+ 'chǎn chěn': ['醦'],
+ 'yàn liǎn xiān': ['醶'],
+ 'niàng niáng': ['釀'],
+ 'lǐ li': ['里'],
+ 'lí xǐ xī': ['釐'],
+ 'liǎo liào': ['釕'],
+ 'dīng dìng': ['釘', '钉'],
+ 'qiǎo jiǎo': ['釥'],
+ 'yú huá': ['釪'],
+ 'huá wū': ['釫'],
+ 'rì rèn jiàn': ['釰', '釼'],
+ 'dì dài': ['釱'],
+ 'pī zhāo': ['釽'],
+ 'yá yé': ['釾'],
+ 'bǎ pá': ['鈀', '钯'],
+ 'tā tuó': ['鉈', '铊'],
+ běi: ['鉳'],
+ 'bǐng píng': ['鉼'],
+ 'hā kē': ['鉿', '铪'],
+ chòng: ['銃', '铳'],
+ 'xiǎng jiōng': ['銄'],
+ 'yù sì': ['銉'],
+ 'xù huì': ['銊'],
+ 'rén rěn': ['銋'],
+ 'shàn shuò': ['銏'],
+ 'chì lì': ['銐'],
+ 'xiǎn xǐ': ['銑', '铣'],
+ 'hóu xiàng': ['銗'],
+ 'diào tiáo yáo': ['銚'],
+ 'xiān kuò tiǎn guā': ['銛', '銽', '铦'],
+ 'zhé niè': ['銸'],
+ 'zhōng yōng': ['銿'],
+ 'tōu tù dòu': ['鋀'],
+ 'méi méng': ['鋂'],
+ 'wàn jiǎn': ['鋄', '鎫'],
+ 'tǐng dìng': ['鋌', '铤'],
+ 'juān jiān cuān': ['鋑'],
+ 'sī tuó': ['鋖'],
+ 'juān xuān juàn': ['鋗'],
+ 'wú huá wū': ['鋘'],
+ 'zhuó chuò': ['鋜'],
+ 'xíng xìng jīng': ['鋞'],
+ 'jū jú': ['鋦', '锔'],
+ 'zuì niè': ['鋷'],
+ 'yuān yuǎn wǎn wān': ['鋺'],
+ 'gāng gàng': ['鋼', '钢'],
+ zhuī: ['錐', '锥', '騅', '骓', '鵻'],
+ ā: ['錒', '锕'],
+ 'cuō chā': ['鎈'],
+ 'suǒ sè': ['鎍'],
+ 'yáo zú': ['鎐'],
+ 'yè tà gé': ['鎑'],
+ 'qiāng chēng': ['鎗'],
+ 'gé lì': ['鎘', '镉', '鬲'],
+ 'bī pī bì': ['鎞'],
+ 'gǎo hào': ['鎬'],
+ 'zú chuò': ['鏃'],
+ 'xiū xiù': ['鏅'],
+ 'shòu sōu': ['鏉'],
+ 'dí dī': ['鏑', '镝'],
+ 'qiāo sǎn càn': ['鏒'],
+ 'lù áo': ['鏕'],
+ 'tāng táng': ['鏜'],
+ 'jiàn zàn': ['鏩'],
+ 'huì suì ruì': ['鏸'],
+ 'qiǎng qiāng': ['鏹', '镪'],
+ 'sǎn xiàn sà': ['鏾'],
+ 'jiǎn jiàn': ['鐧', '锏'],
+ 'dāng chēng': ['鐺', '铛'],
+ 'zuān zuàn': ['鑽'],
+ 'sà xì': ['钑'],
+ 'yào yuè': ['钥'],
+ 'tǒu dǒu': ['钭'],
+ 'zuàn zuān': ['钻'],
+ 'qiān yán': ['铅'],
+ 'pí pī': ['铍'],
+ 'yáo diào tiáo': ['铫'],
+ 'tāng tàng': ['铴'],
+ 'pù pū': ['铺'],
+ 'tán xiān': ['锬'],
+ 'liù liú': ['镏'],
+ 'hào gǎo': ['镐'],
+ 'táng tāng': ['镗'],
+ 'tán chán xín': ['镡'],
+ 'huò shǎn': ['閄'],
+ 'hàn bì': ['閈', '闬'],
+ 'kāng kàng': ['閌', '闶'],
+ 'xián jiàn jiān jiǎn': ['閒'],
+ 'xiā xiǎ': ['閕'],
+ 'xiǎ kě': ['閜'],
+ 'biàn guān': ['閞'],
+ 'hé gé': ['閤', '颌'],
+ 'hòng xiàng': ['閧'],
+ 'sē xī': ['閪'],
+ 'tíng tǐng': ['閮'],
+ 'è yān': ['閼', '阏'],
+ 'hòng juǎn xiàng': ['闂'],
+ 'bǎn pàn': ['闆'],
+ 'dū shé': ['闍', '阇'],
+ 'què quē': ['闕'],
+ 'tāng táng chāng': ['闛'],
+ 'kàn hǎn': ['闞', '阚'],
+ 'xì sè tà': ['闟'],
+ 'mēn mèn': ['闷'],
+ 'quē què': ['阙'],
+ 'yán diàn': ['阽'],
+ 'ā ē': ['阿'],
+ 'bēi pō pí': ['陂'],
+ 'yàn yǎn': ['隁'],
+ 'yú yáo shù': ['隃'],
+ 'lóng lōng': ['隆'],
+ 'duì zhuì': ['隊'],
+ 'suí duò': ['隋'],
+ 'gāi qí ái': ['隑'],
+ 'huī duò': ['隓', '隳'],
+ 'wěi kuí': ['隗'],
+ 'lì dài': ['隸'],
+ 'zhuī cuī wéi': ['隹'],
+ 'hè hú': ['隺', '鶮'],
+ 'jùn juàn': ['隽', '雋'],
+ 'nán nàn nuó': ['难'],
+ 'què qiāo qiǎo': ['雀'],
+ 'guàn huán': ['雚'],
+ 'guī xī': ['雟'],
+ 'sè xí': ['雭'],
+ án: ['雸'],
+ 'wù méng': ['雺'],
+ tèng: ['霯'],
+ 'lù lòu': ['露'],
+ mái: ['霾'],
+ 'jìng liàng': ['靚'],
+ 'gé jí': ['革'],
+ bǎ: ['靶'],
+ 'yāng yàng': ['鞅'],
+ 'gé tà sǎ': ['鞈'],
+ 'biān yìng': ['鞕'],
+ 'qiào shāo': ['鞘'],
+ 'juān xuān': ['鞙'],
+ 'shàng zhǎng': ['鞝'],
+ 'pí bǐng bì bēi': ['鞞'],
+ la: ['鞡'],
+ 'xiè dié': ['鞢'],
+ ēng: ['鞥'],
+ 'móu mù': ['鞪'],
+ 'bì bǐng': ['鞸'],
+ 'mèi wà': ['韎'],
+ rǒu: ['韖'],
+ 'shè xiè': ['韘'],
+ 'yùn wēn': ['韫'],
+ 'dùn dú': ['頓', '顿'],
+ duǐ: ['頧'],
+ luō: ['頱'],
+ 'bīn pín': ['頻'],
+ yóng: ['顒', '颙', '鰫'],
+ mān: ['顢', '颟'],
+ 'jǐng gěng': ['颈'],
+ 'jié xié jiá': ['颉'],
+ 'kē ké': ['颏'],
+ 'pín bīn': ['频'],
+ 'chàn zhàn': ['颤'],
+ 'fēng fěng': ['風', '风'],
+ 'biāo diū': ['颩'],
+ 'bá fú': ['颰'],
+ 'sāo sōu': ['颾'],
+ 'liù liáo': ['飂'],
+ 'shí sì yì': ['食'],
+ 'yǎng juàn': ['飬'],
+ 'zhù tǒu': ['飳'],
+ 'yí sì': ['飴'],
+ 'zuò zé zhā': ['飵'],
+ tiè: ['飻', '餮'],
+ 'xiǎng náng': ['饟'],
+ 'táng xíng': ['饧'],
+ 'gē le': ['饹'],
+ 'chā zha': ['馇'],
+ 'náng nǎng': ['馕'],
+ 'yūn wò': ['馧'],
+ 'zhī shì': ['馶'],
+ 'xìn jìn': ['馸'],
+ 'kuài jué': ['駃'],
+ zǎng: ['駔', '驵'],
+ 'tái dài': ['駘'],
+ 'xún xuān': ['駨'],
+ 'liáng láng': ['駺'],
+ piàn: ['騗', '騙', '骗', '魸'],
+ 'dài tái': ['骀'],
+ 'sāo sǎo': ['骚'],
+ 'gǔ gū': ['骨'],
+ 'bèi mó': ['骳'],
+ 'xiāo qiāo': ['骹'],
+ 'bǎng pǎng': ['髈'],
+ 'bó jué': ['髉'],
+ 'bì pǒ': ['髲'],
+ 'máo méng': ['髳'],
+ 'kuò yuè': ['髺'],
+ 'bā bà': ['魞', '鲃'],
+ 'jì cǐ': ['鮆'],
+ 'bó bà': ['鮊'],
+ 'zhǎ zhà': ['鮓', '鲊'],
+ 'chóu dài': ['鮘'],
+ 'luò gé': ['鮥'],
+ 'guī xié wā kuí': ['鮭'],
+ 'xiān xiǎn': ['鮮', '鲜'],
+ 'pū bū': ['鯆'],
+ 'yì sī': ['鯣'],
+ 'bà bó': ['鲌'],
+ 'guī xié': ['鲑'],
+ 'sāi xǐ': ['鳃'],
+ 'niǎo diǎo': ['鳥'],
+ 'diāo zhāo': ['鳭'],
+ 'gān hàn yàn': ['鳱'],
+ 'fū guī': ['鳺'],
+ 'jiān qiān zhān': ['鳽'],
+ 'hé jiè': ['鶡'],
+ 'piān biǎn': ['鶣'],
+ 'chuàn zhì': ['鶨'],
+ 'cāng qiāng': ['鶬'],
+ 'sǔn xùn': ['鶽'],
+ 'biāo páo': ['麃'],
+ 'zhù cū': ['麆'],
+ 'jūn qún': ['麇', '麕'],
+ chi: ['麶'],
+ 'mó me': ['麼'],
+ 'mó me ma': ['麽'],
+ 'mí mǒ': ['麿'],
+ 'dàn shèn': ['黮'],
+ 'zhěn yān': ['黰'],
+ 'dǎn zhǎn': ['黵'],
+ 'miǎn mǐn měng': ['黾'],
+ hōu: ['齁'],
+ nàng: ['齉'],
+ 'qí jì zī zhāi': ['齐'],
+ 'yín kěn yǎn': ['龂'],
+ 'yín kěn': ['龈'],
+ 'gōng wò': ['龏'],
+ 'guī jūn qiū': ['龜', '龟'],
+ 'kuí wā': ['䖯'],
+ lōu: ['䁖'],
+ 'ōu qū': ['𫭟'],
+ 'lóu lǘ': ['𦝼'],
+ 'gǎ gā gá': ['嘎'],
+ 'wā guà': ['坬'],
+ 'zhǐ dǐ': ['茋'],
+ 'gǒng hóng': ['硔'],
+ 'yáo xiào': ['滧'],
+};
+const DICT1 = new FastDictFactory();
+Object.keys(map).forEach((key) => {
+ const chars = map[key];
+ for (let char of chars) {
+ DICT1.set(char, key);
+ }
+});
+
+const InitialList = [
+ 'zh',
+ 'ch',
+ 'sh',
+ 'z',
+ 'c',
+ 's',
+ 'b',
+ 'p',
+ 'm',
+ 'f',
+ 'd',
+ 't',
+ 'n',
+ 'l',
+ 'g',
+ 'k',
+ 'h',
+ 'j',
+ 'q',
+ 'x',
+ 'r',
+ 'y',
+ 'w',
+ '',
+];
+const SpecialInitialList = ['j', 'q', 'x'];
+const SpecialFinalList = [
+ 'uān',
+ 'uán',
+ 'uǎn',
+ 'uàn',
+ 'uan',
+ 'uē',
+ 'ué',
+ 'uě',
+ 'uè',
+ 'ue',
+ 'ūn',
+ 'ún',
+ 'ǔn',
+ 'ùn',
+ 'un',
+ 'ū',
+ 'ú',
+ 'ǔ',
+ 'ù',
+ 'u',
+];
+const SpecialFinalMap = {
+ uān: 'üān',
+ uán: 'üán',
+ uǎn: 'üǎn',
+ uàn: 'üàn',
+ uan: 'üan',
+ uē: 'üē',
+ ué: 'üé',
+ uě: 'üě',
+ uè: 'üè',
+ ue: 'üe',
+ ūn: 'ǖn',
+ ún: 'ǘn',
+ ǔn: 'ǚn',
+ ùn: 'ǜn',
+ un: 'ün',
+ ū: 'ǖ',
+ ú: 'ǘ',
+ ǔ: 'ǚ',
+ ù: 'ǜ',
+ u: 'ü',
+};
+const doubleFinalList = [
+ 'ia',
+ 'ian',
+ 'iang',
+ 'iao',
+ 'ie',
+ 'iu',
+ 'iong',
+ 'ua',
+ 'uai',
+ 'uan',
+ 'uang',
+ 'ue',
+ 'ui',
+ 'uo',
+ 'üan',
+ 'üe',
+ 'van',
+ 've',
+];
+/**
+ * @description: 数量词 + 特殊词 音调处理
+ */
+const Numbers = {
+ 一: 'yì',
+ 二: 'èr',
+ 三: 'sān',
+ 四: 'sì',
+ 五: 'wǔ',
+ 六: 'liù',
+ 七: 'qī',
+ 八: 'bā',
+ 九: 'jiǔ',
+ 十: 'shí',
+ 百: 'bǎi',
+ 千: 'qiān',
+ 万: 'wàn',
+ 亿: 'yì',
+ 单: 'dān',
+ 两: 'liǎng',
+ 双: 'shuāng',
+ 多: 'duō',
+ 几: 'jǐ',
+ 十一: 'shí yī',
+ 零一: 'líng yī',
+ 第一: 'dì yī',
+ 一十: 'yī shí',
+ 一十一: 'yī shí yī',
+};
+const NumberWordMap = {
+ 重: 'chóng',
+ 行: 'háng',
+ 斗: 'dǒu',
+ 更: 'gēng',
+};
+// 与以下词组合时,不变调
+function genNumberDict() {
+ const dict = {
+ 零一: 'líng yī',
+ 〇一: 'líng yī',
+ 十一: 'shí yī',
+ 一十: 'yī shí',
+ 第一: 'dì yī',
+ 一十一: 'yī shí yī',
+ };
+ for (let number in Numbers) {
+ for (let key in NumberWordMap) {
+ const word = `${number}${key}`;
+ const pinyin = `${Numbers[number]} ${NumberWordMap[key]}`;
+ dict[word] = pinyin;
+ }
+ }
+ return dict;
+}
+const NumberDict = genNumberDict();
+const PatternNumberDict = Object.keys(NumberDict).map((key) => ({
+ zh: key,
+ pinyin: NumberDict[key],
+ probability: 1e-12 /* Probability.Rule */,
+ length: stringLength(key),
+ priority: Priority.Normal,
+ dict: Symbol('rule'),
+}));
+/**
+ * @description: 连续变调处理:https://zh.wiktionary.org/wiki/Appendix:%E2%80%9C%E4%B8%80%E2%80%9D%E5%8F%8A%E2%80%9C%E4%B8%8D%E2%80%9D%E7%9A%84%E5%8F%98%E8%B0%83
+ */
+const toneSandhiMap = {
+ // 说不说,说一说,叠词之间发音为轻声
+ 不: {
+ bú: [4], // "不" 后面跟 4 声时,变调为 2 声
+ },
+ 一: {
+ yí: [4],
+ yì: [1, 2, 3],
+ },
+};
+const toneSandhiIgnoreSuffix = {
+ 不: ['的', '而', '之', '后', '也', '还', '地'],
+ 一: ['的', '而', '之', '后', '也', '还', '是'],
+};
+const toneSandhiList = Object.keys(toneSandhiMap);
+// 处理「一」和 「不」字的变调
+function processToneSandhi(cur, pre, next) {
+ if (toneSandhiList.indexOf(cur) === -1) {
+ return getSingleWordPinyin(cur);
+ }
+ // 轻声变调:说不说,说一说,叠词之间发音为轻声
+ if (pre === next && pre && getSingleWordPinyin(pre) !== pre) {
+ return getPinyinWithoutTone(getSingleWordPinyin(cur));
+ }
+ // 「一」和 「不」字变调处理
+ if (next &&
+ !toneSandhiIgnoreSuffix[cur].includes(next)) {
+ const nextPinyin = getSingleWordPinyin(next);
+ if (nextPinyin !== next) {
+ const nextTone = getNumOfTone(nextPinyin);
+ const pinyinMap = toneSandhiMap[cur];
+ for (let pinyin in pinyinMap) {
+ const tones = pinyinMap[pinyin];
+ if (tones.indexOf(Number(nextTone)) !== -1) {
+ return pinyin;
+ }
+ }
+ }
+ }
+}
+// 处理「了」字的变调
+function processToneSandhiLiao(cur, pre) {
+ if (cur === '了' && (!pre || !DICT1.get(pre))) {
+ return 'liǎo';
+ }
+}
+// 处理叠字符[々]
+function processReduplicationChar(cur, pre) {
+ if (cur === '々') {
+ if (!pre || !DICT1.get(pre)) {
+ return 'tóng';
+ }
+ else {
+ return DICT1.get(pre).split(' ')[0];
+ }
+ }
+}
+function processSepecialPinyin(cur, pre, next) {
+ return (processReduplicationChar(cur, pre) ||
+ processToneSandhiLiao(cur, pre) ||
+ processToneSandhi(cur, pre, next) ||
+ getSingleWordPinyin(cur));
+}
+
+const Surnames = {
+ 南宫: 'nán gōng',
+ 第五: 'dì wǔ',
+ 万俟: 'mò qí',
+ 司马: 'sī mǎ',
+ 上官: 'shàng guān',
+ 欧阳: 'ōu yáng',
+ 夏侯: 'xià hóu',
+ 诸葛: 'zhū gě',
+ 闻人: 'wén rén',
+ 东方: 'dōng fāng',
+ 赫连: 'hè lián',
+ 皇甫: 'huáng fǔ',
+ 尉迟: 'yù chí',
+ 公羊: 'gōng yáng',
+ 澹台: 'tán tái',
+ 公冶: 'gōng yě',
+ 宗政: 'zōng zhèng',
+ 濮阳: 'pú yáng',
+ 淳于: 'chún yú',
+ 太叔: 'tài shū',
+ 申屠: 'shēn tú',
+ 公孙: 'gōng sūn',
+ 仲孙: 'zhòng sūn',
+ 轩辕: 'xuān yuán',
+ 令狐: 'líng hú',
+ 钟离: 'zhōng lí',
+ 宇文: 'yǔ wén',
+ 长孙: 'zhǎng sūn',
+ 慕容: 'mù róng',
+ 鲜于: 'xiān yú',
+ 闾丘: 'lǘ qiū',
+ 司徒: 'sī tú',
+ 司空: 'sī kōng',
+ 亓官: 'qí guān',
+ 司寇: 'sī kòu',
+ 仉督: 'zhǎng dū',
+ 子车: 'zǐ jū',
+ 颛孙: 'zhuān sūn',
+ 端木: 'duān mù',
+ 巫马: 'wū mǎ',
+ 公西: 'gōng xī',
+ 漆雕: 'qī diāo',
+ 乐正: 'yuè zhèng',
+ 壤驷: 'rǎng sì',
+ 公良: 'gōng liáng',
+ 拓跋: 'tuò bá',
+ 夹谷: 'jiá gǔ',
+ 宰父: 'zǎi fǔ',
+ 榖梁: 'gǔ liáng',
+ 段干: 'duàn gān',
+ 百里: 'bǎi lǐ',
+ 东郭: 'dōng guō',
+ 南门: 'nán mén',
+ 呼延: 'hū yán',
+ 羊舌: 'yáng shé',
+ 梁丘: 'liáng qiū',
+ 左丘: 'zuǒ qiū',
+ 东门: 'dōng mén',
+ 西门: 'xī mén',
+ 句龙: 'gōu lóng',
+ 毌丘: 'guàn qiū',
+ 赵: 'zhào',
+ 钱: 'qián',
+ 孙: 'sūn',
+ 李: 'lǐ',
+ 周: 'zhōu',
+ 吴: 'wú',
+ 郑: 'zhèng',
+ 王: 'wáng',
+ 冯: 'féng',
+ 陈: 'chén',
+ 褚: 'chǔ',
+ 卫: 'wèi',
+ 蒋: 'jiǎng',
+ 沈: 'shěn',
+ 韩: 'hán',
+ 杨: 'yáng',
+ 朱: 'zhū',
+ 秦: 'qín',
+ 尤: 'yóu',
+ 许: 'xǔ',
+ 何: 'hé',
+ 吕: 'lǚ',
+ 施: 'shī',
+ 张: 'zhāng',
+ 孔: 'kǒng',
+ 曹: 'cáo',
+ 严: 'yán',
+ 华: 'huà',
+ 金: 'jīn',
+ 魏: 'wèi',
+ 陶: 'táo',
+ 姜: 'jiāng',
+ 戚: 'qī',
+ 谢: 'xiè',
+ 邹: 'zōu',
+ 喻: 'yù',
+ 柏: 'bǎi',
+ 水: 'shuǐ',
+ 窦: 'dòu',
+ 章: 'zhāng',
+ 云: 'yún',
+ 苏: 'sū',
+ 潘: 'pān',
+ 葛: 'gě',
+ 奚: 'xī',
+ 范: 'fàn',
+ 彭: 'péng',
+ 郎: 'láng',
+ 鲁: 'lǔ',
+ 韦: 'wéi',
+ 昌: 'chāng',
+ 马: 'mǎ',
+ 苗: 'miáo',
+ 凤: 'fèng',
+ 花: 'huā',
+ 方: 'fāng',
+ 俞: 'yú',
+ 任: 'rén',
+ 袁: 'yuán',
+ 柳: 'liǔ',
+ 酆: 'fēng',
+ 鲍: 'bào',
+ 史: 'shǐ',
+ 唐: 'táng',
+ 费: 'fèi',
+ 廉: 'lián',
+ 岑: 'cén',
+ 薛: 'xuē',
+ 雷: 'léi',
+ 贺: 'hè',
+ 倪: 'ní',
+ 汤: 'tāng',
+ 滕: 'téng',
+ 殷: 'yīn',
+ 罗: 'luó',
+ 毕: 'bì',
+ 郝: 'hǎo',
+ 邬: 'wū',
+ 安: 'ān',
+ 常: 'cháng',
+ 乐: 'yuè',
+ 于: 'yú',
+ 时: 'shí',
+ 傅: 'fù',
+ 皮: 'pí',
+ 卞: 'biàn',
+ 齐: 'qí',
+ 康: 'kāng',
+ 伍: 'wǔ',
+ 余: 'yú',
+ 元: 'yuán',
+ 卜: 'bǔ',
+ 顾: 'gù',
+ 孟: 'mèng',
+ 平: 'píng',
+ 黄: 'huáng',
+ 和: 'hé',
+ 穆: 'mù',
+ 萧: 'xiāo',
+ 尹: 'yǐn',
+ 姚: 'yáo',
+ 邵: 'shào',
+ 湛: 'zhàn',
+ 汪: 'wāng',
+ 祁: 'qí',
+ 毛: 'máo',
+ 禹: 'yǔ',
+ 狄: 'dí',
+ 米: 'mǐ',
+ 贝: 'bèi',
+ 明: 'míng',
+ 臧: 'zāng',
+ 计: 'jì',
+ 伏: 'fú',
+ 成: 'chéng',
+ 戴: 'dài',
+ 谈: 'tán',
+ 宋: 'sòng',
+ 茅: 'máo',
+ 庞: 'páng',
+ 熊: 'xióng',
+ 纪: 'jǐ',
+ 舒: 'shū',
+ 屈: 'qū',
+ 项: 'xiàng',
+ 祝: 'zhù',
+ 董: 'dǒng',
+ 梁: 'liáng',
+ 杜: 'dù',
+ 阮: 'ruǎn',
+ 蓝: 'lán',
+ 闵: 'mǐn',
+ 席: 'xí',
+ 季: 'jì',
+ 麻: 'má',
+ 强: 'qiáng',
+ 贾: 'jiǎ',
+ 路: 'lù',
+ 娄: 'lóu',
+ 危: 'wēi',
+ 江: 'jiāng',
+ 童: 'tóng',
+ 颜: 'yán',
+ 郭: 'guō',
+ 梅: 'méi',
+ 盛: 'shèng',
+ 林: 'lín',
+ 刁: 'diāo',
+ 钟: 'zhōng',
+ 徐: 'xú',
+ 邱: 'qiū',
+ 骆: 'luò',
+ 高: 'gāo',
+ 夏: 'xià',
+ 蔡: 'cài',
+ 田: 'tián',
+ 樊: 'fán',
+ 胡: 'hú',
+ 凌: 'líng',
+ 霍: 'huò',
+ 虞: 'yú',
+ 万: 'wàn',
+ 支: 'zhī',
+ 柯: 'kē',
+ 昝: 'zǎn',
+ 管: 'guǎn',
+ 卢: 'lú',
+ 莫: 'mò',
+ 经: 'jīng',
+ 房: 'fáng',
+ 裘: 'qiú',
+ 缪: 'miào',
+ 干: 'gān',
+ 解: 'xiè',
+ 应: 'yīng',
+ 宗: 'zōng',
+ 丁: 'dīng',
+ 宣: 'xuān',
+ 贲: 'bēn',
+ 邓: 'dèng',
+ 郁: 'yù',
+ 单: 'shàn',
+ 杭: 'háng',
+ 洪: 'hóng',
+ 包: 'bāo',
+ 诸: 'zhū',
+ 左: 'zuǒ',
+ 石: 'shí',
+ 崔: 'cuī',
+ 吉: 'jí',
+ 钮: 'niǔ',
+ 龚: 'gōng',
+ 程: 'chéng',
+ 嵇: 'jī',
+ 邢: 'xíng',
+ 滑: 'huá',
+ 裴: 'péi',
+ 陆: 'lù',
+ 荣: 'róng',
+ 翁: 'wēng',
+ 荀: 'xún',
+ 羊: 'yáng',
+ 於: 'yū',
+ 惠: 'huì',
+ 甄: 'zhēn',
+ 曲: 'qū',
+ 家: 'jiā',
+ 封: 'fēng',
+ 芮: 'ruì',
+ 羿: 'yì',
+ 储: 'chǔ',
+ 靳: 'jìn',
+ 汲: 'jí',
+ 邴: 'bǐng',
+ 糜: 'mí',
+ 松: 'sōng',
+ 井: 'jǐng',
+ 段: 'duàn',
+ 富: 'fù',
+ 巫: 'wū',
+ 乌: 'wū',
+ 焦: 'jiāo',
+ 巴: 'bā',
+ 弓: 'gōng',
+ 牧: 'mù',
+ 隗: 'wěi',
+ 山: 'shān',
+ 谷: 'gǔ',
+ 车: 'chē',
+ 侯: 'hóu',
+ 宓: 'mì',
+ 蓬: 'péng',
+ 全: 'quán',
+ 郗: 'xī',
+ 班: 'bān',
+ 仰: 'yǎng',
+ 秋: 'qiū',
+ 仲: 'zhòng',
+ 伊: 'yī',
+ 宫: 'gōng',
+ 宁: 'nìng',
+ 仇: 'qiú',
+ 栾: 'luán',
+ 暴: 'bào',
+ 甘: 'gān',
+ 钭: 'tǒu',
+ 厉: 'lì',
+ 戎: 'róng',
+ 祖: 'zǔ',
+ 武: 'wǔ',
+ 符: 'fú',
+ 刘: 'liú',
+ 景: 'jǐng',
+ 詹: 'zhān',
+ 束: 'shù',
+ 龙: 'lóng',
+ 叶: 'yè',
+ 幸: 'xìng',
+ 司: 'sī',
+ 韶: 'sháo',
+ 郜: 'gào',
+ 黎: 'lí',
+ 蓟: 'jì',
+ 薄: 'bó',
+ 印: 'yìn',
+ 宿: 'sù',
+ 白: 'bái',
+ 怀: 'huái',
+ 蒲: 'pú',
+ 邰: 'tái',
+ 从: 'cóng',
+ 鄂: 'è',
+ 索: 'suǒ',
+ 咸: 'xián',
+ 籍: 'jí',
+ 赖: 'lài',
+ 卓: 'zhuó',
+ 蔺: 'lìn',
+ 屠: 'tú',
+ 蒙: 'méng',
+ 池: 'chí',
+ 乔: 'qiáo',
+ 阴: 'yīn',
+ 鬱: 'yù',
+ 胥: 'xū',
+ 能: 'nài',
+ 苍: 'cāng',
+ 双: 'shuāng',
+ 闻: 'wén',
+ 莘: 'shēn',
+ 党: 'dǎng',
+ 翟: 'zhái',
+ 谭: 'tán',
+ 贡: 'gòng',
+ 劳: 'láo',
+ 逄: 'páng',
+ 姬: 'jī',
+ 申: 'shēn',
+ 扶: 'fú',
+ 堵: 'dǔ',
+ 冉: 'rǎn',
+ 宰: 'zǎi',
+ 郦: 'lì',
+ 雍: 'yōng',
+ 郤: 'xì',
+ 璩: 'qú',
+ 桑: 'sāng',
+ 桂: 'guì',
+ 濮: 'pú',
+ 牛: 'niú',
+ 寿: 'shòu',
+ 通: 'tōng',
+ 边: 'biān',
+ 扈: 'hù',
+ 燕: 'yān',
+ 冀: 'jì',
+ 郏: 'jiá',
+ 浦: 'pǔ',
+ 尚: 'shàng',
+ 农: 'nóng',
+ 温: 'wēn',
+ 别: 'bié',
+ 庄: 'zhuāng',
+ 晏: 'yàn',
+ 柴: 'chái',
+ 瞿: 'qú',
+ 阎: 'yán',
+ 充: 'chōng',
+ 慕: 'mù',
+ 连: 'lián',
+ 茹: 'rú',
+ 习: 'xí',
+ 宦: 'huàn',
+ 艾: 'ài',
+ 鱼: 'yú',
+ 容: 'róng',
+ 向: 'xiàng',
+ 古: 'gǔ',
+ 易: 'yì',
+ 慎: 'shèn',
+ 戈: 'gē',
+ 廖: 'liào',
+ 庾: 'yǔ',
+ 终: 'zhōng',
+ 暨: 'jì',
+ 居: 'jū',
+ 衡: 'héng',
+ 步: 'bù',
+ 都: 'dū',
+ 耿: 'gěng',
+ 满: 'mǎn',
+ 弘: 'hóng',
+ 匡: 'kuāng',
+ 国: 'guó',
+ 文: 'wén',
+ 寇: 'kòu',
+ 广: 'guǎng',
+ 禄: 'lù',
+ 阙: 'quē',
+ 东: 'dōng',
+ 欧: 'ōu',
+ 殳: 'shū',
+ 沃: 'wò',
+ 利: 'lì',
+ 蔚: 'wèi',
+ 越: 'yuè',
+ 夔: 'kuí',
+ 隆: 'lóng',
+ 师: 'shī',
+ 巩: 'gǒng',
+ 厍: 'shè',
+ 聂: 'niè',
+ 晁: 'cháo',
+ 勾: 'gōu',
+ 敖: 'áo',
+ 融: 'róng',
+ 冷: 'lěng',
+ 訾: 'zī',
+ 辛: 'xīn',
+ 阚: 'kàn',
+ 那: 'nā',
+ 简: 'jiǎn',
+ 饶: 'ráo',
+ 空: 'kōng',
+ 曾: 'zēng',
+ 母: 'mǔ',
+ 沙: 'shā',
+ 乜: 'niè',
+ 养: 'yǎng',
+ 鞠: 'jū',
+ 须: 'xū',
+ 丰: 'fēng',
+ 巢: 'cháo',
+ 关: 'guān',
+ 蒯: 'kuǎi',
+ 相: 'xiàng',
+ 查: 'zhā',
+ 后: 'hòu',
+ 荆: 'jīng',
+ 红: 'hóng',
+ 游: 'yóu',
+ 竺: 'zhú',
+ 权: 'quán',
+ 逯: 'lù',
+ 盖: 'gě',
+ 益: 'yì',
+ 桓: 'huán',
+ 公: 'gōng',
+ 牟: 'móu',
+ 哈: 'hǎ',
+ 言: 'yán',
+ 福: 'fú',
+ 肖: 'xiāo',
+ 区: 'ōu',
+ 覃: 'qín',
+ 朴: 'piáo',
+ 繁: 'pó',
+ 员: 'yùn',
+ 句: 'gōu',
+ 要: 'yāo',
+ 过: 'guō',
+ 钻: 'zuān',
+ 谌: 'chén',
+ 折: 'shé',
+ 召: 'shào',
+ 郄: 'qiè',
+ 撒: 'sǎ',
+ 甯: 'nìng',
+ 六: 'lù',
+ 啜: 'chuài',
+ 行: 'xíng',
+};
+const PatternSurname = Object.keys(Surnames).map((key) => ({
+ zh: key,
+ pinyin: Surnames[key],
+ probability: 1 /* Probability.Surname */ + stringLength(key),
+ length: stringLength(key),
+ priority: Priority.Surname,
+ dict: Symbol('surname'),
+}));
+
+const DICT2 = {
+ 这个: 'zhè ge',
+ 成为: 'chéng wéi',
+ 认为: 'rèn wéi',
+ 作为: 'zuò wéi',
+ 部分: 'bù fen',
+ 要求: 'yāo qiú',
+ 应该: 'yīng gāi',
+ 增长: 'zēng zhǎng',
+ 提供: 'tí gōng',
+ 觉得: 'jué de',
+ 任务: 'rèn wu',
+ 那个: 'nà ge',
+ 称为: 'chēng wéi',
+ 为主: 'wéi zhǔ',
+ 了解: 'liǎo jiě',
+ 处理: 'chǔ lǐ',
+ 皇上: 'huáng shang',
+ 只要: 'zhǐ yào',
+ 大量: 'dà liàng',
+ 力量: 'lì liàng',
+ 几乎: 'jī hū',
+ 干部: 'gàn bù',
+ 目的: 'mù dì',
+ 行为: 'xíng wéi',
+ 只见: 'zhǐ jiàn',
+ 认识: 'rèn shi',
+ 市长: 'shì zhǎng',
+ 师父: 'shī fu',
+ 调查: 'diào chá',
+ 重新: 'chóng xīn',
+ 分为: 'fēn wéi',
+ 知识: 'zhī shi',
+ 导弹: 'dǎo dàn',
+ 质量: 'zhì liàng',
+ 行款: 'háng kuǎn',
+ 行列: 'háng liè',
+ 行话: 'háng huà',
+ 行业: 'háng yè',
+ 隔行: 'gé háng',
+ 在行: 'zài háng',
+ 行家: 'háng jia',
+ 内行: 'nèi háng',
+ 外行: 'wài háng',
+ 同行: 'tóng háng',
+ 本行: 'běn háng',
+ 行伍: 'háng wǔ',
+ 洋行: 'yáng háng',
+ 银行: 'yín háng',
+ 商行: 'shāng háng',
+ 支行: 'zhī háng',
+ 总行: 'zǒng háng',
+ 行情: 'háng qíng',
+ 懂行: 'dǒng háng',
+ 行规: 'háng guī',
+ 行当: 'háng dang',
+ 行货: 'háng huò',
+ 太行: 'tài háng',
+ 入行: 'rù háng',
+ 中行: 'zhōng háng',
+ 农行: 'nóng háng',
+ 工行: 'gōng háng',
+ 建行: 'jiàn háng',
+ 各行: "gè háng",
+ 行号: 'háng hào',
+ 行高: 'háng gāo',
+ 行首: 'háng shǒu',
+ 行尾: 'háng wěi',
+ 行末: 'háng mò',
+ 行长: 'háng cháng',
+ 行距: 'háng jù',
+ 换行: 'huàn háng',
+ 行会: 'háng huì',
+ 行辈: 'háng bèi',
+ 行道: 'háng dào',
+ 道行: 'dào heng',
+ 参与: 'cān yù',
+ 充分: 'chōng fèn',
+ 尽管: 'jǐn guǎn',
+ 生长: 'shēng zhǎng',
+ 数量: 'shù liàng',
+ 应当: 'yīng dāng',
+ 院长: 'yuàn zhǎng',
+ 强调: 'qiáng diào',
+ 只能: 'zhǐ néng',
+ 音乐: 'yīn yuè',
+ 以为: 'yǐ wéi',
+ 处于: 'chǔ yú',
+ 部长: 'bù zhǎng',
+ 蒙古: 'měng gǔ',
+ 只有: 'zhǐ yǒu',
+ 适当: 'shì dàng',
+ 只好: 'zhǐ hǎo',
+ 成长: 'chéng zhǎng',
+ 高兴: 'gāo xìng',
+ 不了: 'bù liǎo',
+ 产量: 'chǎn liàng',
+ 胖子: 'pàng zi',
+ 显得: 'xiǎn de',
+ 只是: 'zhǐ shì',
+ 似的: 'shì de',
+ 率领: 'shuài lǐng',
+ 改为: 'gǎi wéi',
+ 不禁: 'bù jīn',
+ 成分: 'chéng fèn',
+ 答应: 'dā ying',
+ 少年: 'shào nián',
+ 兴趣: 'xìng qù',
+ 太监: 'tài jian',
+ 休息: 'xiū xi',
+ 校长: 'xiào zhǎng',
+ 更新: 'gēng xīn',
+ 合同: 'hé tong',
+ 喝道: 'hè dào',
+ 重庆: 'chóng qìng',
+ 重建: 'chóng jiàn',
+ 使得: 'shǐ de',
+ 审查: 'shěn chá',
+ 累计: 'lěi jì',
+ 给予: 'jǐ yǔ',
+ 极为: 'jí wéi',
+ 冠军: 'guàn jūn',
+ 仿佛: 'fǎng fú',
+ 头发: 'tóu fa',
+ 投降: 'tóu xiáng',
+ 家长: 'jiā zhǎng',
+ 仔细: 'zǐ xì',
+ 要是: 'yào shi',
+ 将领: 'jiàng lǐng',
+ 含量: 'hán liàng',
+ 更为: 'gèng wéi',
+ 积累: 'jī lěi',
+ 地处: 'dì chǔ',
+ 县长: 'xiàn zhǎng',
+ 少女: 'shào nǚ',
+ 路上: 'lù shang',
+ 只怕: 'zhǐ pà',
+ 能量: 'néng liàng',
+ 储量: 'chǔ liàng',
+ 供应: 'gōng yìng',
+ 挑战: 'tiǎo zhàn',
+ 西藏: 'xī zàng',
+ 记得: 'jì de',
+ 总量: 'zǒng liàng',
+ 当真: 'dàng zhēn',
+ 将士: 'jiàng shì',
+ 差别: 'chā bié',
+ 较为: 'jiào wéi',
+ 长老: 'zhǎng lǎo',
+ 大夫: 'dài fu',
+ 差异: 'chā yì',
+ 懂得: 'dǒng de',
+ 尽量: 'jǐn liàng',
+ 模样: 'mú yàng',
+ 的确: 'dí què',
+ 为首: 'wéi shǒu',
+ 便宜: 'pián yi',
+ 更名: 'gēng míng',
+ 石头: 'shí tou',
+ 州长: 'zhōu zhǎng',
+ 为止: 'wéi zhǐ',
+ 漂亮: 'piào liang',
+ 炮弹: 'pào dàn',
+ 藏族: 'zàng zú',
+ 角色: 'jué sè',
+ 当作: 'dàng zuò',
+ 尽快: 'jǐn kuài',
+ 人为: 'rén wéi',
+ 重复: 'chóng fù',
+ 胡同: 'hú tòng',
+ 差距: 'chā jù',
+ 弟兄: 'dì xiong',
+ 大将: 'dà jiàng',
+ 睡觉: 'shuì jiào',
+ 一觉: 'yí jiào',
+ 团长: 'tuán zhǎng',
+ 队长: 'duì zhǎng',
+ 区长: 'qū zhǎng',
+ 难得: 'nán dé',
+ 丫头: 'yā tou',
+ 会长: 'huì zhǎng',
+ 弟弟: 'dì di',
+ 王爷: 'wáng ye',
+ 重量: 'zhòng liàng',
+ 誉为: 'yù wéi',
+ 家伙: 'jiā huo',
+ 华山: 'huà shān',
+ 椅子: 'yǐ zi',
+ 流量: 'liú liàng',
+ 长大: 'zhǎng dà',
+ 勉强: 'miǎn qiǎng',
+ 会计: 'kuài jì',
+ 过分: 'guò fèn',
+ 济南: 'jǐ nán',
+ 调动: 'diào dòng',
+ 燕京: 'yān jīng',
+ 少将: 'shào jiàng',
+ 中毒: 'zhòng dú',
+ 晓得: 'xiǎo de',
+ 变更: 'biàn gēng',
+ 打更: 'dǎ gēng',
+ 认得: 'rèn de',
+ 苹果: 'píng guǒ',
+ 念头: 'niàn tou',
+ 挣扎: 'zhēng zhá',
+ 三藏: 'sān zàng',
+ 剥削: 'bō xuē',
+ 丞相: 'chéng xiàng',
+ 少量: 'shǎo liàng',
+ 寻思: 'xún si',
+ 夺得: 'duó dé',
+ 干线: 'gàn xiàn',
+ 呼吁: 'hū yù',
+ 处罚: 'chǔ fá',
+ 长官: 'zhǎng guān',
+ 柏林: 'bó lín',
+ 亲戚: 'qīn qi',
+ 身分: 'shēn fèn',
+ 胳膊: 'gē bo',
+ 着手: 'zhuó shǒu',
+ 炸弹: 'zhà dàn',
+ 咳嗽: 'ké sou',
+ 叶子: 'yè zi',
+ 外长: 'wài zhǎng',
+ 供给: 'gōng jǐ',
+ 师长: 'shī zhǎng',
+ 变量: 'biàn liàng',
+ 应有: 'yīng yǒu',
+ 下载: 'xià zài',
+ 乐器: 'yuè qì',
+ 间接: 'jiàn jiē',
+ 底下: 'dǐ xià',
+ 打扮: 'dǎ bàn',
+ 子弹: 'zǐ dàn',
+ 弹药: 'dàn yào',
+ 热量: 'rè liàng',
+ 削弱: 'xuē ruò',
+ 骨干: 'gǔ gàn',
+ 容量: 'róng liàng',
+ 模糊: 'mó hu',
+ 转动: 'zhuàn dòng',
+ 称呼: 'chēng hu',
+ 科长: 'kē zhǎng',
+ 处置: 'chǔ zhì',
+ 着重: 'zhuó zhòng',
+ 着急: 'zháo jí',
+ 强迫: 'qiǎng pò',
+ 庭长: 'tíng zhǎng',
+ 首相: 'shǒu xiàng',
+ 喇嘛: 'lǎ ma',
+ 镇长: 'zhèn zhǎng',
+ 只管: 'zhǐ guǎn',
+ 重重: 'chóng chóng',
+ 免得: 'miǎn de',
+ 着实: 'zhuó shí',
+ 度假: 'dù jià',
+ 真相: 'zhēn xiàng',
+ 相貌: 'xiàng mào',
+ 处分: 'chǔ fèn',
+ 委屈: 'wěi qu',
+ 为期: 'wéi qī',
+ 伯伯: 'bó bo',
+ 伯子: 'bǎi zi',
+ 圈子: 'quān zi',
+ 见识: 'jiàn shi',
+ 笼罩: 'lǒng zhào',
+ 与会: 'yù huì',
+ 都督: 'dū du',
+ 都市: 'dū shì',
+ 成都: 'chéng dū',
+ 首都: 'shǒu dū',
+ 帝都: 'dì dū',
+ 王都: 'wáng dū',
+ 东都: 'dōng dū',
+ 都护: 'dū hù',
+ 都城: 'dū chéng',
+ 建都: 'jiàn dū',
+ 迁都: 'qiān dū',
+ 故都: 'gù dū',
+ 定都: 'dìng dū',
+ 中都: 'zhōng dū',
+ 六安: 'lù ān',
+ 宰相: 'zǎi xiàng',
+ 较量: 'jiào liàng',
+ 对称: 'duì chèn',
+ 总长: 'zǒng zhǎng',
+ 相公: 'xiàng gong',
+ 空白: 'kòng bái',
+ 打量: 'dǎ liang',
+ 水分: 'shuǐ fèn',
+ 舌头: 'shé tou',
+ 没收: 'mò shōu',
+ 行李: 'xíng li',
+ 判处: 'pàn chǔ',
+ 散文: 'sǎn wén',
+ 处境: 'chǔ jìng',
+ 孙子: 'sūn zi',
+ 拳头: 'quán tou',
+ 打发: 'dǎ fā',
+ 组长: 'zǔ zhǎng',
+ 骨头: 'gǔ tou',
+ 宁可: 'nìng kě',
+ 更换: 'gēng huàn',
+ 薄弱: 'bó ruò',
+ 还原: 'huán yuán',
+ 重修: 'chóng xiū',
+ 重来: 'chóng lái',
+ 只顾: 'zhǐ gù',
+ 爱好: 'ài hào',
+ 馒头: 'mán tou',
+ 军长: 'jūn zhǎng',
+ 首长: 'shǒu zhǎng',
+ 厂长: 'chǎng zhǎng',
+ 司长: 'sī zhǎng',
+ 长子: 'zhǎng zǐ',
+ 强劲: 'qiáng jìng',
+ 恰当: 'qià dàng',
+ 头儿: 'tóu er',
+ 站长: 'zhàn zhǎng',
+ 折腾: 'zhē teng',
+ 相处: 'xiāng chǔ',
+ 统率: 'tǒng shuài',
+ 中将: 'zhōng jiàng',
+ 命中: 'mìng zhòng',
+ 名将: 'míng jiàng',
+ 木头: 'mù tou',
+ 动弹: 'dòng tan',
+ 地壳: 'dì qiào',
+ 干活: 'gàn huó',
+ 少爷: 'shào ye',
+ 水量: 'shuǐ liàng',
+ 补给: 'bǔ jǐ',
+ 尾巴: 'wěi ba',
+ 来得: 'lái de',
+ 好奇: 'hào qí',
+ 钥匙: 'yào shi',
+ 当做: 'dàng zuò',
+ 沉着: 'chén zhuó',
+ 哑巴: 'yǎ ba',
+ 车子: 'chē zi',
+ 上将: 'shàng jiàng',
+ 恶心: 'ě xīn',
+ 担子: 'dàn zi',
+ 应届: 'yīng jiè',
+ 主角: 'zhǔ jué',
+ 运转: 'yùn zhuǎn',
+ 兄长: 'xiōng zhǎng',
+ 格式: 'gé shì',
+ 正月: 'zhēng yuè',
+ 营长: 'yíng zhǎng',
+ 当成: 'dàng chéng',
+ 女婿: 'nǚ xu',
+ 咽喉: 'yān hóu',
+ 重阳: 'chóng yáng',
+ 化为: 'huà wéi',
+ 吐蕃: 'tǔ bō',
+ 钻进: 'zuān jìn',
+ 乐队: 'yuè duì',
+ 亮相: 'liàng xiàng',
+ 被子: 'bèi zi',
+ 舍得: 'shě de',
+ 杉木: 'shā mù',
+ 击中: 'jī zhòng',
+ 排长: 'pái zhǎng',
+ 假期: 'jià qī',
+ 分量: 'fèn liàng',
+ 数次: 'shù cì',
+ 提防: 'dī fáng',
+ 吆喝: 'yāo he',
+ 查处: 'chá chǔ',
+ 量子: 'liàng zǐ',
+ 里头: 'lǐ tou',
+ 调研: 'diào yán',
+ 伺候: 'cì hou',
+ 重申: 'chóng shēn',
+ 枕头: 'zhěn tou',
+ 拚命: 'pīn mìng',
+ 社长: 'shè zhǎng',
+ 归还: 'guī huán',
+ 批量: 'pī liàng',
+ 畜牧: 'xù mù',
+ 点着: 'diǎn zháo',
+ 甚为: 'shèn wéi',
+ 小将: 'xiǎo jiàng',
+ 着眼: 'zhuó yǎn',
+ 处死: 'chǔ sǐ',
+ 厌恶: 'yàn wù',
+ 鼓乐: 'gǔ yuè',
+ 树干: 'shù gàn',
+ 秘鲁: 'bì lǔ',
+ 大方: 'dà fāng',
+ 外头: 'wài tou',
+ 班长: 'bān zhǎng',
+ 星宿: 'xīng xiù',
+ 宁愿: 'nìng yuàn',
+ 钦差: 'qīn chāi',
+ 为数: 'wéi shù',
+ 勾当: 'gòu dàng',
+ 削减: 'xuē jiǎn',
+ 间谍: 'jiàn dié',
+ 埋怨: 'mán yuàn',
+ 结实: 'jiē shi',
+ 计量: 'jì liáng',
+ 淹没: 'yān mò',
+ 村长: 'cūn zhǎng',
+ 连长: 'lián zhǎng',
+ 自给: 'zì jǐ',
+ 武将: 'wǔ jiàng',
+ 温差: 'wēn chā',
+ 直奔: 'zhí bèn',
+ 供求: 'gōng qiú',
+ 剂量: 'jì liàng',
+ 道长: 'dào zhǎng',
+ 泄露: 'xiè lòu',
+ 王八: 'wáng ba',
+ 切割: 'qiē gē',
+ 间隔: 'jiàn gé',
+ 一晃: 'yì huǎng',
+ 长假: 'cháng jià',
+ 令狐: 'líng hú',
+ 为害: 'wéi hài',
+ 句子: 'jù zi',
+ 偿还: 'cháng huán',
+ 疙瘩: 'gē da',
+ 燕山: 'yān shān',
+ 堵塞: 'dǔ sè',
+ 夺冠: 'duó guàn',
+ 扎实: 'zhā shi',
+ 电荷: 'diàn hè',
+ 看守: 'kān shǒu',
+ 复辟: 'fù bì',
+ 郁闷: 'yù mèn',
+ 尽早: 'jǐn zǎo',
+ 切断: 'qiē duàn',
+ 指头: 'zhǐ tou',
+ 为生: 'wéi shēng',
+ 畜生: 'chù sheng',
+ 切除: 'qiē chú',
+ 着力: 'zhuó lì',
+ 着想: 'zhuó xiǎng',
+ 级差: 'jí chā',
+ 投奔: 'tóu bèn',
+ 棍子: 'gùn zi',
+ 含糊: 'hán hu',
+ 少妇: 'shào fù',
+ 兴致: 'xìng zhì',
+ 纳闷: 'nà mèn',
+ 干流: 'gàn liú',
+ 卷起: 'juǎn qǐ',
+ 扇子: 'shàn zi',
+ 更改: 'gēng gǎi',
+ 笼络: 'lǒng luò',
+ 喇叭: 'lǎ ba',
+ 载荷: 'zài hè',
+ 妥当: 'tuǒ dàng',
+ 为难: 'wéi nán',
+ 着陆: 'zhuó lù',
+ 燕子: 'yàn zi',
+ 干吗: 'gàn má',
+ 白发: 'bái fà',
+ 总得: 'zǒng děi',
+ 夹击: 'jiā jī',
+ 曝光: 'bào guāng',
+ 曲调: 'qǔ diào',
+ 相机: 'xiàng jī',
+ 叫化: 'jiào huà',
+ 角逐: 'jué zhú',
+ 啊哟: 'ā yō',
+ 载重: 'zài zhòng',
+ 长辈: 'zhǎng bèi',
+ 出差: 'chū chāi',
+ 垛口: 'duǒ kǒu',
+ 撇开: 'piē kāi',
+ 厅长: 'tīng zhǎng',
+ 组分: 'zǔ fèn',
+ 误差: 'wù chā',
+ 家当: 'jiā dàng',
+ 传记: 'zhuàn jì',
+ 个子: 'gè zi',
+ 铺设: 'pū shè',
+ 干事: 'gàn shì',
+ 杆菌: 'gǎn jūn',
+ 定量: 'dìng liàng',
+ 运载: 'yùn zài',
+ 会儿: 'huì er',
+ 酋长: 'qiú zhǎng',
+ 重返: 'chóng fǎn',
+ 差额: 'chā é',
+ 露面: 'lòu miàn',
+ 钻研: 'zuān yán',
+ 大城: 'dài chéng',
+ 上当: 'shàng dàng',
+ 销量: 'xiāo liàng',
+ 作坊: 'zuō fang',
+ 照相: 'zhào xiàng',
+ 哎呀: 'āi yā',
+ 调集: 'diào jí',
+ 看中: 'kàn zhòng',
+ 议长: 'yì zhǎng',
+ 风筝: 'fēng zheng',
+ 辟邪: 'bì xié',
+ 空隙: 'kòng xì',
+ 更迭: 'gēng dié',
+ 偏差: 'piān chā',
+ 声调: 'shēng diào',
+ 适量: 'shì liàng',
+ 屯子: 'tún zi',
+ 无量: 'wú liàng',
+ 空地: 'kòng dì',
+ 调度: 'diào dù',
+ 散射: 'sǎn shè',
+ 创伤: 'chuāng shāng',
+ 海参: 'hǎi shēn',
+ 满载: 'mǎn zài',
+ 重叠: 'chóng dié',
+ 落差: 'luò chā',
+ 单调: 'dān diào',
+ 老将: 'lǎo jiàng',
+ 人参: 'rén shēn',
+ 间断: 'jiàn duàn',
+ 重现: 'chóng xiàn',
+ 夹杂: 'jiā zá',
+ 调用: 'diào yòng',
+ 萝卜: 'luó bo',
+ 附着: 'fù zhuó',
+ 应声: 'yìng shēng',
+ 主将: 'zhǔ jiàng',
+ 罪过: 'zuì guo',
+ 咀嚼: 'jǔ jué',
+ 为政: 'wéi zhèng',
+ 过量: 'guò liàng',
+ 乐曲: 'yuè qǔ',
+ 负荷: 'fù hè',
+ 枪弹: 'qiāng dàn',
+ 悄然: 'qiǎo rán',
+ 处方: 'chǔ fāng',
+ 悄声: 'qiǎo shēng',
+ 曲子: 'qǔ zi',
+ 情调: 'qíng diào',
+ 挑衅: 'tiǎo xìn',
+ 代为: 'dài wéi',
+ 了结: 'liǎo jié',
+ 打中: 'dǎ zhòng',
+ 酒吧: 'jiǔ bā',
+ 懒得: 'lǎn de',
+ 增量: 'zēng liàng',
+ 衣着: 'yī zhuó',
+ 部将: 'bù jiàng',
+ 要塞: 'yào sài',
+ 茶几: 'chá jī',
+ 杠杆: 'gàng gǎn',
+ 出没: 'chū mò',
+ 鲜有: 'xiǎn yǒu',
+ 间隙: 'jiàn xì',
+ 重担: 'zhòng dàn',
+ 重演: 'chóng yǎn',
+ 重试: 'chóng shì',
+ 应酬: 'yìng chou',
+ 只当: 'zhǐ dāng',
+ 毋宁: 'wú nìng',
+ 包扎: 'bāo zā',
+ 前头: 'qián tou',
+ 卷烟: 'juǎn yān',
+ 非得: 'fēi děi',
+ 弹道: 'dàn dào',
+ 杆子: 'gān zi',
+ 门将: 'mén jiàng',
+ 后头: 'hòu tou',
+ 喝彩: 'hè cǎi',
+ 暖和: 'nuǎn huo',
+ 累积: 'lěi jī',
+ 调遣: 'diào qiǎn',
+ 倔强: 'jué jiàng',
+ 宝藏: 'bǎo zàng',
+ 丧事: 'sāng shì',
+ 约莫: 'yuē mo',
+ 纤夫: 'qiàn fū',
+ 更替: 'gēng tì',
+ 装载: 'zhuāng zài',
+ 背包: 'bēi bāo',
+ 帖子: 'tiě zi',
+ 松散: 'sōng sǎn',
+ 呼喝: 'hū hè',
+ 可恶: 'kě wù',
+ 自转: 'zì zhuàn',
+ 供电: 'gōng diàn',
+ 反省: 'fǎn xǐng',
+ 坦率: 'tǎn shuài',
+ 苏打: 'sū dá',
+ 本分: 'běn fèn',
+ 落得: 'luò de',
+ 鄙薄: 'bǐ bó',
+ 相间: 'xiāng jiàn',
+ 单薄: 'dān bó',
+ 混蛋: 'hún dàn',
+ 贞观: 'zhēn guān',
+ 附和: 'fù hè',
+ 能耐: 'néng nài',
+ 吓唬: 'xià hu',
+ 未了: 'wèi liǎo',
+ 引着: 'yǐn zháo',
+ 抽调: 'chōu diào',
+ 沙子: 'shā zi',
+ 席卷: 'xí juǎn',
+ 标的: 'biāo dì',
+ 别扭: 'biè niu',
+ 思量: 'sī liang',
+ 喝采: 'hè cǎi',
+ 论语: 'lún yǔ',
+ 盖子: 'gài zi',
+ 分外: 'fèn wài',
+ 弄堂: 'lòng táng',
+ 乐舞: 'yuè wǔ',
+ 雨量: 'yǔ liàng',
+ 毛发: 'máo fà',
+ 差遣: 'chāi qiǎn',
+ 背负: 'bēi fù',
+ 转速: 'zhuàn sù',
+ 声乐: 'shēng yuè',
+ 夹攻: 'jiā gōng',
+ 供水: 'gōng shuǐ',
+ 主干: 'zhǔ gàn',
+ 惩处: 'chéng chǔ',
+ 长相: 'zhǎng xiàng',
+ 公差: 'gōng chāi',
+ 榴弹: 'liú dàn',
+ 省得: 'shěng de',
+ 条子: 'tiáo zi',
+ 重围: 'chóng wéi',
+ 阻塞: 'zǔ sè',
+ 劲风: 'jìng fēng',
+ 纠葛: 'jiū gé',
+ 颠簸: 'diān bǒ',
+ 点中: 'diǎn zhòng',
+ 重创: 'zhòng chuāng',
+ 姥姥: 'lǎo lao',
+ 迷糊: 'mí hu',
+ 公家: 'gōng jia',
+ 几率: 'jī lǜ',
+ 苦闷: 'kǔ mèn',
+ 度量: 'dù liàng',
+ 差错: 'chā cuò',
+ 暑假: 'shǔ jià',
+ 参差: 'cēn cī',
+ 搭载: 'dā zài',
+ 助长: 'zhù zhǎng',
+ 相称: 'xiāng chèn',
+ 红晕: 'hóng yùn',
+ 舍命: 'shě mìng',
+ 喜好: 'xǐ hào',
+ 列传: 'liè zhuàn',
+ 劲敌: 'jìng dí',
+ 蛤蟆: 'há ma',
+ 请假: 'qǐng jià',
+ 钉子: 'dīng zi',
+ 沉没: 'chén mò',
+ 高丽: 'gāo lí',
+ 休假: 'xiū jià',
+ 无为: 'wú wéi',
+ 巴结: 'bā jie',
+ 了得: 'liǎo dé',
+ 变相: 'biàn xiàng',
+ 核弹: 'hé dàn',
+ 亲家: 'qìng jia',
+ 承载: 'chéng zài',
+ 喝问: 'hè wèn',
+ 还击: 'huán jī',
+ 交还: 'jiāo huán',
+ 将令: 'jiàng lìng',
+ 单于: 'chán yú',
+ 空缺: 'kòng quē',
+ 绿林: 'lù lín',
+ 胆量: 'dǎn liàng',
+ 执着: 'zhí zhuó',
+ 低调: 'dī diào',
+ 闭塞: 'bì sè',
+ 轻薄: 'qīng bó',
+ 得当: 'dé dàng',
+ 占卜: 'zhān bǔ',
+ 扫帚: 'sào zhou',
+ 龟兹: 'qiū cí',
+ 年长: 'nián zhǎng',
+ 外传: 'wài zhuàn',
+ 头子: 'tóu zi',
+ 裁缝: 'cái feng',
+ 礼乐: 'lǐ yuè',
+ 血泊: 'xuè pō',
+ 散乱: 'sǎn luàn',
+ 动量: 'dòng liàng',
+ 倒腾: 'dǎo teng',
+ 取舍: 'qǔ shě',
+ 咱家: 'zán jiā',
+ 长发: 'cháng fà',
+ 爪哇: 'zhǎo wā',
+ 弹壳: 'dàn ké',
+ 省悟: 'xǐng wù',
+ 嚷嚷: 'rāng rang',
+ 连累: 'lián lèi',
+ 应得: 'yīng dé',
+ 族长: 'zú zhǎng',
+ 柜子: 'guì zi',
+ 擂鼓: 'léi gǔ',
+ 眩晕: 'xuàn yùn',
+ 调配: 'tiáo pèi',
+ 躯干: 'qū gàn',
+ 差役: 'chāi yì',
+ 坎坷: 'kǎn kě',
+ 少儿: 'shào ér',
+ 乐团: 'yuè tuán',
+ 养分: 'yǎng fèn',
+ 退还: 'tuì huán',
+ 格调: 'gé diào',
+ 语调: 'yǔ diào',
+ 音调: 'yīn diào',
+ 乐府: 'yuè fǔ',
+ 古朴: 'gǔ pǔ',
+ 打点: 'dǎ diǎn',
+ 差使: 'chāi shǐ',
+ 匀称: 'yún chèn',
+ 瘦削: 'shòu xuē',
+ 膏药: 'gāo yao',
+ 吞没: 'tūn mò',
+ 调任: 'diào rèn',
+ 散居: 'sǎn jū',
+ 上头: 'shàng tóu',
+ 风靡: 'fēng mǐ',
+ 放假: 'fàng jià',
+ 估量: 'gū liang',
+ 失当: 'shī dàng',
+ 中弹: 'zhòng dàn',
+ 妄为: 'wàng wéi',
+ 长者: 'zhǎng zhě',
+ 起哄: 'qǐ hòng',
+ 末了: 'mò liǎo',
+ 相声: 'xiàng sheng',
+ 校正: 'jiào zhèng',
+ 劝降: 'quàn xiáng',
+ 矢量: 'shǐ liàng',
+ 沉闷: 'chén mèn',
+ 给与: 'jǐ yǔ',
+ 解法: 'jiě fǎ',
+ 塞外: 'sài wài',
+ 将校: 'jiàng xiào',
+ 嗜好: 'shì hào',
+ 没落: 'mò luò',
+ 朴刀: 'pō dāo',
+ 片子: 'piān zi',
+ 切削: 'qiē xiāo',
+ 弹丸: 'dàn wán',
+ 稀薄: 'xī bó',
+ 亏得: 'kuī dé',
+ 间歇: 'jiàn xiē',
+ 翘首: 'qiáo shǒu',
+ 色调: 'sè diào',
+ 处决: 'chǔ jué',
+ 表率: 'biǎo shuài',
+ 尺子: 'chǐ zi',
+ 招降: 'zhāo xiáng',
+ 称职: 'chèn zhí',
+ 斗篷: 'dǒu peng',
+ 铺子: 'pù zi',
+ 底子: 'dǐ zi',
+ 负载: 'fù zài',
+ 干警: 'gàn jǐng',
+ 倒数: 'dào shǔ',
+ 将官: 'jiàng guān',
+ 锄头: 'chú tou',
+ 归降: 'guī xiáng',
+ 疟疾: 'nüè ji',
+ 唠叨: 'láo dao',
+ 限量: 'xiàn liàng',
+ 屏息: 'bǐng xī',
+ 重逢: 'chóng féng',
+ 器乐: 'qì yuè',
+ 氢弹: 'qīng dàn',
+ 脖颈: 'bó gěng',
+ 妃子: 'fēi zi',
+ 处事: 'chǔ shì',
+ 参量: 'cān liàng',
+ 轻率: 'qīng shuài',
+ 缥缈: 'piāo miǎo',
+ 中奖: 'zhòng jiǎng',
+ 才干: 'cái gàn',
+ 施舍: 'shī shě',
+ 卷子: 'juàn zi',
+ 游说: 'yóu shuì',
+ 巷子: 'xiàng zi',
+ 膀胱: 'páng guāng',
+ 切勿: 'qiè wù',
+ 看管: 'kān guǎn',
+ 风头: 'fēng tou',
+ 精干: 'jīng gàn',
+ 高差: 'gāo chā',
+ 恐吓: 'kǒng hè',
+ 扁担: 'biǎn dàn',
+ 给养: 'jǐ yǎng',
+ 格子: 'gé zi',
+ 供需: 'gōng xū',
+ 反差: 'fǎn chā',
+ 飞弹: 'fēi dàn',
+ 微薄: 'wēi bó',
+ 发型: 'fà xíng',
+ 即兴: 'jí xìng',
+ 攒动: 'cuán dòng',
+ 间或: 'jiàn huò',
+ 浅薄: 'qiǎn bó',
+ 乐章: 'yuè zhāng',
+ 顺差: 'shùn chā',
+ 调子: 'diào zi',
+ 相位: 'xiàng wèi',
+ 转子: 'zhuàn zǐ',
+ 劲旅: 'jìng lǚ',
+ 咔嚓: 'kā chā',
+ 了事: 'liǎo shì',
+ 转悠: 'zhuàn you',
+ 当铺: 'dàng pù',
+ 爪子: 'zhuǎ zi',
+ 单子: 'dān zi',
+ 好战: 'hào zhàn',
+ 燕麦: 'yàn mài',
+ 只许: 'zhǐ xǔ',
+ 干练: 'gàn liàn',
+ 女将: 'nǚ jiàng',
+ 酒量: 'jiǔ liàng',
+ 划船: 'huá chuán',
+ 伎俩: 'jì liǎng',
+ 挑拨: 'tiǎo bō',
+ 少校: 'shào xiào',
+ 着落: 'zhuó luò',
+ 憎恶: 'zēng wù',
+ 刻薄: 'kè bó',
+ 要挟: 'yāo xié',
+ 用处: 'yòng chu',
+ 还手: 'huán shǒu',
+ 模具: 'mú jù',
+ 执著: 'zhí zhuó',
+ 喝令: 'hè lìng',
+ 保长: 'bǎo zhǎng',
+ 吸着: 'xī zhe',
+ 症结: 'zhēng jié',
+ 公转: 'gōng zhuàn',
+ 校勘: 'jiào kān',
+ 重提: 'chóng tí',
+ 扫兴: 'sǎo xìng',
+ 铺盖: 'pū gài',
+ 长史: 'zhǎng shǐ',
+ 差价: 'chā jià',
+ 压根: 'yà gēn',
+ 怔住: 'zhèng zhù',
+ 应允: 'yīng yǔn',
+ 切入: 'qiē rù',
+ 战将: 'zhàn jiàng',
+ 年少: 'nián shào',
+ 舍身: 'shě shēn',
+ 执拗: 'zhí niù',
+ 处世: 'chǔ shì',
+ 中风: 'zhòng fēng',
+ 等量: 'děng liàng',
+ 放量: 'fàng liàng',
+ 腔调: 'qiāng diào',
+ 老少: 'lǎo shào',
+ 没入: 'mò rù',
+ 瓜葛: 'guā gé',
+ 将帅: 'jiàng shuài',
+ 车载: 'chē zài',
+ 窝囊: 'wō nang',
+ 长进: 'zhǎng jìn',
+ 可汗: 'kè hán',
+ 并州: 'bīng zhōu',
+ 供销: 'gōng xiāo',
+ 切片: 'qiē piàn',
+ 差事: 'chāi shì',
+ 知会: 'zhī hui',
+ 鹰爪: 'yīng zhǎo',
+ 处女: 'chǔ nǚ',
+ 切磋: 'qiē cuō',
+ 日头: 'rì tou',
+ 押解: 'yā jiè',
+ 滋长: 'zī zhǎng',
+ 道观: 'dào guàn',
+ 脚色: 'jué sè',
+ 当量: 'dāng liàng',
+ 婆家: 'pó jia',
+ 缘分: 'yuán fèn',
+ 空闲: 'kòng xián',
+ 好色: 'hào sè',
+ 怒喝: 'nù hè',
+ 笼统: 'lǒng tǒng',
+ 边塞: 'biān sài',
+ 何曾: 'hé céng',
+ 重合: 'chóng hé',
+ 零散: 'líng sǎn',
+ 轰隆: 'hōng lōng',
+ 化子: 'huà zi',
+ 内蒙: 'nèi měng',
+ 数落: 'shǔ luò',
+ 逆差: 'nì chā',
+ 牟利: 'móu lì',
+ 栅栏: 'zhà lan',
+ 中标: 'zhòng biāo',
+ 调档: 'diào dàng',
+ 佝偻: 'gōu lóu',
+ 场子: 'chǎng zi',
+ 甲壳: 'jiǎ qiào',
+ 重温: 'chóng wēn',
+ 炮制: 'páo zhì',
+ 返还: 'fǎn huán',
+ 自传: 'zì zhuàn',
+ 高调: 'gāo diào',
+ 殷红: 'yān hóng',
+ 固着: 'gù zhuó',
+ 强求: 'qiǎng qiú',
+ 本相: 'běn xiàng',
+ 骄横: 'jiāo hèng',
+ 草率: 'cǎo shuài',
+ 气闷: 'qì mèn',
+ 着色: 'zhuó sè',
+ 宁肯: 'nìng kěn',
+ 兴头: 'xìng tou',
+ 拘泥: 'jū nì',
+ 夹角: 'jiā jiǎo',
+ 发髻: 'fà jì',
+ 猛将: 'měng jiàng',
+ 约摸: 'yuē mo',
+ 拖累: 'tuō lěi',
+ 呢绒: 'ní róng',
+ 钻探: 'zuān tàn',
+ 夹层: 'jiā céng',
+ 落魄: 'luò pò',
+ 巷道: 'hàng dào',
+ 运量: 'yùn liàng',
+ 解闷: 'jiě mèn',
+ 空儿: 'kòng er',
+ 估摸: 'gū mo',
+ 好客: 'hào kè',
+ 钻孔: 'zuān kǒng',
+ 糊弄: 'hù nòng',
+ 荥阳: 'xíng yáng',
+ 烦闷: 'fán mèn',
+ 仓卒: 'cāng cù',
+ 分叉: 'fēn chà',
+ 厂子: 'chǎng zi',
+ 小调: 'xiǎo diào',
+ 少阳: 'shào yáng',
+ 受降: 'shòu xiáng',
+ 染坊: 'rǎn fáng',
+ 胳臂: 'gē bei',
+ 将门: 'jiàng mén',
+ 模板: 'mú bǎn',
+ 配给: 'pèi jǐ',
+ 为伍: 'wéi wǔ',
+ 跟头: 'gēn tou',
+ 划算: 'huá suàn',
+ 累赘: 'léi zhui',
+ 哄笑: 'hōng xiào',
+ 晕眩: 'yūn xuàn',
+ 干掉: 'gàn diào',
+ 缝制: 'féng zhì',
+ 难处: 'nán chù',
+ 着意: 'zhuó yì',
+ 蛮横: 'mán hèng',
+ 奇数: 'jī shù',
+ 短发: 'duǎn fà',
+ 生还: 'shēng huán',
+ 还清: 'huán qīng',
+ 看护: 'kān hù',
+ 直率: 'zhí shuài',
+ 奏乐: 'zòu yuè',
+ 载客: 'zài kè',
+ 专横: 'zhuān hèng',
+ 湮没: 'yān mò',
+ 空格: 'kòng gé',
+ 铺垫: 'pū diàn',
+ 良将: 'liáng jiàng',
+ 哗啦: 'huā lā',
+ 散漫: 'sǎn màn',
+ 脱发: 'tuō fà',
+ 送还: 'sòng huán',
+ 埋没: 'mái mò',
+ 累及: 'lěi jí',
+ 薄雾: 'bó wù',
+ 调离: 'diào lí',
+ 舌苔: 'shé tāi',
+ 机长: 'jī zhǎng',
+ 栓塞: 'shuān sè',
+ 配角: 'pèi jué',
+ 切口: 'qiē kǒu',
+ 创口: 'chuāng kǒu',
+ 哈欠: 'hā qian',
+ 实弹: 'shí dàn',
+ 铺平: 'pū píng',
+ 哈达: 'hǎ dá',
+ 懒散: 'lǎn sǎn',
+ 实干: 'shí gàn',
+ 填空: 'tián kòng',
+ 刁钻: 'diāo zuān',
+ 乐师: 'yuè shī',
+ 量变: 'liàng biàn',
+ 诱降: 'yòu xiáng',
+ 搪塞: 'táng sè',
+ 征调: 'zhēng diào',
+ 夹道: 'jiā dào',
+ 干咳: 'gān ké',
+ 止咳: 'zhǐ ké',
+ 乐工: 'yuè gōng',
+ 划过: 'huá guò',
+ 着火: 'zháo huǒ',
+ 更正: 'gēng zhèng',
+ 给付: 'jǐ fù',
+ 空子: 'kòng zi',
+ 哪吒: 'né zhā',
+ 正着: 'zhèng zháo',
+ 刷子: 'shuā zi',
+ 丧葬: 'sāng zàng',
+ 夹带: 'jiā dài',
+ 安分: 'ān fèn',
+ 中意: 'zhòng yì',
+ 长孙: 'zhǎng sūn',
+ 校订: 'jiào dìng',
+ 卷曲: 'juǎn qū',
+ 载运: 'zài yùn',
+ 投弹: 'tóu dàn',
+ 柞蚕: 'zuò cán',
+ 份量: 'fèn liàng',
+ 调换: 'diào huàn',
+ 了然: 'liǎo rán',
+ 咧嘴: 'liě zuǐ',
+ 典当: 'diǎn dàng',
+ 寒假: 'hán jià',
+ 长兄: 'zhǎng xiōng',
+ 给水: 'jǐ shuǐ',
+ 须发: 'xū fà',
+ 枝干: 'zhī gàn',
+ 属相: 'shǔ xiàng',
+ 哄抢: 'hōng qiǎng',
+ 刻划: 'kè huà',
+ 塞子: 'sāi zi',
+ 单干: 'dān gàn',
+ 还乡: 'huán xiāng',
+ 兆头: 'zhào tou',
+ 寺观: 'sì guàn',
+ 督率: 'dū shuài',
+ 啊哈: 'ā ha',
+ 割舍: 'gē shě',
+ 抹布: 'mā bù',
+ 好恶: 'hào wù',
+ 下处: 'xià chǔ',
+ 消长: 'xiāo zhǎng',
+ 离间: 'lí jiàn',
+ 准头: 'zhǔn tou',
+ 校对: 'jiào duì',
+ 什物: 'shí wù',
+ 番禺: 'pān yú',
+ 佛爷: 'fó ye',
+ 吗啡: 'mǎ fēi',
+ 盐分: 'yán fèn',
+ 虎将: 'hǔ jiàng',
+ 薄荷: 'bò he',
+ 独处: 'dú chǔ',
+ 空位: 'kòng wèi',
+ 铺路: 'pū lù',
+ 乌拉: 'wū lā',
+ 调回: 'diào huí',
+ 来头: 'lái tou',
+ 闲散: 'xián sǎn',
+ 胶卷: 'jiāo juǎn',
+ 冒失: 'mào shi',
+ 干劲: 'gàn jìn',
+ 弦乐: 'xián yuè',
+ 相国: 'xiàng guó',
+ 丹参: 'dān shēn',
+ 助兴: 'zhù xìng',
+ 铺开: 'pū kāi',
+ 次长: 'cì zhǎng',
+ 发卡: 'fà qiǎ',
+ 拮据: 'jié jū',
+ 刹车: 'shā chē',
+ 生发: 'shēng fà',
+ 重播: 'chóng bō',
+ 缝合: 'féng hé',
+ 音量: 'yīn liàng',
+ 少尉: 'shào wèi',
+ 冲压: 'chòng yā',
+ 苍劲: 'cāng jìng',
+ 厚薄: 'hòu báo',
+ 威吓: 'wēi hè',
+ 外相: 'wài xiàng',
+ 呼号: 'hū háo',
+ 着迷: 'zháo mí',
+ 挑担: 'tiāo dàn',
+ 纹路: 'wén lù',
+ 还俗: 'huán sú',
+ 强横: 'qiáng hèng',
+ 着数: 'zhāo shù',
+ 降顺: 'xiáng shùn',
+ 挑明: 'tiǎo míng',
+ 眯缝: 'mī feng',
+ 分内: 'fèn nèi',
+ 更衣: 'gēng yī',
+ 软和: 'ruǎn huo',
+ 尽兴: 'jìn xìng',
+ 号子: 'hào zi',
+ 爪牙: 'zhǎo yá',
+ 败将: 'bài jiàng',
+ 猜中: 'cāi zhòng',
+ 结扎: 'jié zā',
+ 没空: 'méi kòng',
+ 夹缝: 'jiā fèng',
+ 拾掇: 'shí duo',
+ 掺和: 'chān huo',
+ 簸箕: 'bò ji',
+ 电量: 'diàn liàng',
+ 荷载: 'hè zǎi',
+ 调式: 'diào shì',
+ 处身: 'chǔ shēn',
+ 打手: 'dǎ shǒu',
+ 弹弓: 'dàn gōng',
+ 横蛮: 'hèng mán',
+ 能干: 'néng gàn',
+ 校点: 'jiào diǎn',
+ 加载: 'jiā zài',
+ 干校: 'gàn xiào',
+ 哄传: 'hōng chuán',
+ 校注: 'jiào zhù',
+ 淤塞: 'yū sè',
+ 马扎: 'mǎ zhá',
+ 月氏: 'yuè zhī',
+ 高干: 'gāo gàn',
+ 经传: 'jīng zhuàn',
+ 曾孙: 'zēng sūn',
+ 好斗: 'hào dòu',
+ 关卡: 'guān qiǎ',
+ 逃奔: 'táo bèn',
+ 磨蹭: 'mó ceng',
+ 牟取: 'móu qǔ',
+ 颤栗: 'zhàn lì',
+ 蚂蚱: 'mà zha',
+ 撮合: 'cuō he',
+ 趔趄: 'liè qie',
+ 摔打: 'shuāi dǎ',
+ 台子: 'tái zi',
+ 分得: 'fēn de',
+ 粘着: 'nián zhuó',
+ 采邑: 'cài yì',
+ 散装: 'sǎn zhuāng',
+ 婀娜: 'ē nuó',
+ 兴味: 'xìng wèi',
+ 行头: 'xíng tou',
+ 气量: 'qì liàng',
+ 调运: 'diào yùn',
+ 处治: 'chǔ zhì',
+ 乐音: 'yuè yīn',
+ 充塞: 'chōng sè',
+ 恫吓: 'dòng hè',
+ 论调: 'lùn diào',
+ 相中: 'xiāng zhòng',
+ 民乐: 'mín yuè',
+ 炮仗: 'pào zhang',
+ 丧服: 'sāng fú',
+ 骁将: 'xiāo jiàng',
+ 量刑: 'liàng xíng',
+ 缝补: 'féng bǔ',
+ 财会: 'cái kuài',
+ 大干: 'dà gàn',
+ 历数: 'lì shǔ',
+ 校场: 'jiào chǎng',
+ 塞北: 'sài běi',
+ 识相: 'shí xiàng',
+ 辱没: 'rǔ mò',
+ 鲜亮: 'xiān liàng',
+ 语塞: 'yǔ sè',
+ 露脸: 'lòu liǎn',
+ 凉快: 'liáng kuai',
+ 腰杆: 'yāo gǎn',
+ 溜达: 'liū da',
+ 嘎嘎: 'gā gā',
+ 公干: 'gōng gàn',
+ 桔梗: 'jié gěng',
+ 挑逗: 'tiǎo dòu',
+ 看门: 'kān mén',
+ 乐歌: 'yuè gē',
+ 拓片: 'tà piàn',
+ 挑动: 'tiǎo dòng',
+ 准将: 'zhǔn jiàng',
+ 遒劲: 'qiú jìng',
+ 磨坊: 'mò fáng',
+ 逶迤: 'wēi yí',
+ 搅和: 'jiǎo huo',
+ 摩挲: 'mó suō',
+ 作弄: 'zuò nòng',
+ 苗头: 'miáo tou',
+ 打颤: 'dǎ zhàn',
+ 大藏: 'dà zàng',
+ 畜牲: 'chù shēng',
+ 勾搭: 'gōu da',
+ 树荫: 'shù yīn',
+ 树杈: 'shù chà',
+ 铁杆: 'tiě gǎn',
+ 将相: 'jiàng xiàng',
+ 份子: 'fèn zi',
+ 视差: 'shì chā',
+ 绿荫: 'lǜ yīn',
+ 枪杆: 'qiāng gǎn',
+ 缝纫: 'féng rèn',
+ 愁闷: 'chóu mèn',
+ 点将: 'diǎn jiàng',
+ 华佗: 'huà tuó',
+ 劲射: 'jìng shè',
+ 箱笼: 'xiāng lǒng',
+ 终了: 'zhōng liǎo',
+ 鬓发: 'bìn fà',
+ 结巴: 'jiē ba',
+ 苦干: 'kǔ gàn',
+ 看家: 'kān jiā',
+ 正旦: 'zhēng dàn',
+ 中肯: 'zhòng kěn',
+ 厦门: 'xià mén',
+ 东莞: 'dōng guǎn',
+ 食量: 'shí liàng',
+ 宫调: 'gōng diào',
+ 间作: 'jiàn zuò',
+ 弹片: 'dàn piàn',
+ 差池: 'chā chí',
+ 漂白: 'piǎo bái',
+ 杠子: 'gàng zi',
+ 调处: 'tiáo chǔ',
+ 好动: 'hào dòng',
+ 转炉: 'zhuàn lú',
+ 屏气: 'bǐng qì',
+ 夹板: 'jiā bǎn',
+ 哀乐: 'āi yuè',
+ 干道: 'gàn dào',
+ 苦处: 'kǔ chù',
+ 劈柴: 'pǐ chái',
+ 长势: 'zhǎng shì',
+ 天华: 'tiān huá',
+ 共处: 'gòng chǔ',
+ 校验: 'jiào yàn',
+ 出塞: 'chū sài',
+ 磨盘: 'mò pán',
+ 萎靡: 'wěi mǐ',
+ 奔丧: 'bēn sāng',
+ 唱和: 'chàng hè',
+ 大调: 'dà diào',
+ 非分: 'fēi fèn',
+ 钻营: 'zuān yíng',
+ 夹子: 'jiā zi',
+ 超载: 'chāo zài',
+ 更始: 'gēng shǐ',
+ 铃铛: 'líng dang',
+ 披散: 'pī sàn',
+ 发还: 'fā huán',
+ 转轮: 'zhuàn lún',
+ 横财: 'hèng cái',
+ 泡桐: 'pāo tóng',
+ 抛撒: 'pāo sǎ',
+ 天呀: 'tiān yā',
+ 糊糊: 'hū hu',
+ 躯壳: 'qū qiào',
+ 通量: 'tōng liàng',
+ 奉还: 'fèng huán',
+ 午觉: 'wǔ jiào',
+ 闷棍: 'mèn gùn',
+ 浪头: 'làng tou',
+ 砚台: 'yàn tái',
+ 油坊: 'yóu fáng',
+ 学长: 'xué zhǎng',
+ 过载: 'guò zài',
+ 笔调: 'bǐ diào',
+ 衣被: 'yī bèi',
+ 畜产: 'xù chǎn',
+ 调阅: 'diào yuè',
+ 蛮干: 'mán gàn',
+ 曾祖: 'zēng zǔ',
+ 提干: 'tí gàn',
+ 变调: 'biàn diào',
+ 覆没: 'fù mò',
+ 模子: 'mú zi',
+ 乐律: 'yuè lǜ',
+ 称心: 'chèn xīn',
+ 木杆: 'mù gān',
+ 重印: 'chóng yìn',
+ 自省: 'zì xǐng',
+ 提调: 'tí diào',
+ 看相: 'kàn xiàng',
+ 芋头: 'yù tou',
+ 下切: 'xià qiē',
+ 塞上: 'sài shàng',
+ 铺张: 'pū zhāng',
+ 藤蔓: 'téng wàn',
+ 薄幸: 'bó xìng',
+ 解数: 'xiè shù',
+ 褪去: 'tuì qù',
+ 霰弹: 'xiàn dàn',
+ 柚木: 'yóu mù',
+ 痕量: 'hén liàng',
+ 雅乐: 'yǎ yuè',
+ 号哭: 'háo kū',
+ 诈降: 'zhà xiáng',
+ 猪圈: 'zhū juàn',
+ 咋舌: 'zé shé',
+ 铣床: 'xǐ chuáng',
+ 防弹: 'fáng dàn',
+ 健将: 'jiàn jiàng',
+ 丽水: 'lí shuǐ',
+ 削发: 'xuē fà',
+ 空当: 'kòng dāng',
+ 多相: 'duō xiàng',
+ 鲜见: 'xiǎn jiàn',
+ 划桨: 'huá jiǎng',
+ 载波: 'zài bō',
+ 跳蚤: 'tiào zao',
+ 俏皮: 'qiào pí',
+ 吧嗒: 'bā dā',
+ 结发: 'jié fà',
+ 了断: 'liǎo duàn',
+ 同调: 'tóng diào',
+ 石磨: 'shí mò',
+ 时差: 'shí chā',
+ 鼻塞: 'bí sè',
+ 挑子: 'tiāo zi',
+ 推磨: 'tuī mò',
+ 武侯: 'wǔ hóu',
+ 抹煞: 'mǒ shā',
+ 调转: 'diào zhuǎn',
+ 籍没: 'jí mò',
+ 还债: 'huán zhài',
+ 调演: 'diào yǎn',
+ 分划: 'fēn huá',
+ 奇偶: 'jī ǒu',
+ 断喝: 'duàn hè',
+ 闷雷: 'mèn léi',
+ 狼藉: 'láng jí',
+ 饭量: 'fàn liàng',
+ 还礼: 'huán lǐ',
+ 转调: 'zhuǎn diào',
+ 星相: 'xīng xiàng',
+ 手相: 'shǒu xiàng',
+ 配乐: 'pèi yuè',
+ 盖头: 'gài tou',
+ 连杆: 'lián gǎn',
+ 簿记: 'bù jì',
+ 刀把: 'dāo bà',
+ 量词: 'liàng cí',
+ 名角: 'míng jué',
+ 步调: 'bù diào',
+ 校本: 'jiào běn',
+ 账簿: 'zhàng bù',
+ 隽永: 'juàn yǒng',
+ 稍为: 'shāo wéi',
+ 易传: 'yì zhuàn',
+ 乐谱: 'yuè pǔ',
+ 牵累: 'qiān lěi',
+ 答理: 'dā li',
+ 喝斥: 'hè chì',
+ 吟哦: 'yín é',
+ 干渠: 'gàn qú',
+ 海量: 'hǎi liàng',
+ 精当: 'jīng dàng',
+ 着床: 'zhuó chuáng',
+ 月相: 'yuè xiàng',
+ 庶几: 'shù jī',
+ 宫观: 'gōng guàn',
+ 论处: 'lùn chǔ',
+ 征辟: 'zhēng bì',
+ 厚朴: 'hòu pò',
+ 介壳: 'jiè qiào',
+ 吭哧: 'kēng chī',
+ 咯血: 'kǎ xiě',
+ 铺陈: 'pū chén',
+ 重生: 'chóng shēng',
+ 乐理: 'yuè lǐ',
+ 哀号: 'āi háo',
+ 藏历: 'zàng lì',
+ 刚劲: 'gāng jìng',
+ 削平: 'xuē píng',
+ 浓荫: 'nóng yīn',
+ 城垛: 'chéng duǒ',
+ 当差: 'dāng chāi',
+ 正传: 'zhèng zhuàn',
+ 并处: 'bìng chǔ',
+ 创面: 'chuāng miàn',
+ 旦角: 'dàn jué',
+ 薄礼: 'bó lǐ',
+ 晃荡: 'huàng dang',
+ 臊子: 'sào zi',
+ 家什: 'jiā shí',
+ 闷头: 'mēn tóu',
+ 美发: 'měi fà',
+ 度数: 'dù shu',
+ 着凉: 'zháo liáng',
+ 闯将: 'chuǎng jiàng',
+ 几案: 'jī àn',
+ 姘头: 'pīn tou',
+ 差数: 'chā shù',
+ 散碎: 'sǎn suì',
+ 壅塞: 'yōng sè',
+ 寒颤: 'hán zhàn',
+ 牵强: 'qiān qiǎng',
+ 无间: 'wú jiàn',
+ 轮转: 'lún zhuàn',
+ 号叫: 'háo jiào',
+ 铺排: 'pū pái',
+ 降伏: 'xiáng fú',
+ 轧钢: 'zhá gāng',
+ 东阿: 'dōng ē',
+ 病假: 'bìng jià',
+ 累加: 'lěi jiā',
+ 梗塞: 'gěng sè',
+ 弹夹: 'dàn jiā',
+ 钻心: 'zuān xīn',
+ 晃眼: 'huǎng yǎn',
+ 魔爪: 'mó zhǎo',
+ 标量: 'biāo liàng',
+ 憋闷: 'biē mèn',
+ 猜度: 'cāi duó',
+ 处士: 'chǔ shì',
+ 官差: 'guān chāi',
+ 讨还: 'tǎo huán',
+ 长门: 'cháng mén',
+ 馏分: 'liú fēn',
+ 里弄: 'lǐ lòng',
+ 色相: 'sè xiàng',
+ 雅兴: 'yǎ xìng',
+ 角力: 'jué lì',
+ 弹坑: 'dàn kēng',
+ 枝杈: 'zhī chà',
+ 夹具: 'jiā jù',
+ 处刑: 'chǔ xíng',
+ 悍将: 'hàn jiàng',
+ 好学: 'hào xué',
+ 好好: 'hǎo hǎo',
+ 银发: 'yín fà',
+ 扫把: 'sào bǎ',
+ 法相: 'fǎ xiàng',
+ 贵干: 'guì gàn',
+ 供气: 'gōng qì',
+ 空余: 'kòng yú',
+ 捆扎: 'kǔn zā',
+ 瘠薄: 'jí bó',
+ 浆糊: 'jiàng hu',
+ 嘎吱: 'gā zhī',
+ 调令: 'diào lìng',
+ 法帖: 'fǎ tiè',
+ 淋病: 'lìn bìng',
+ 调派: 'diào pài',
+ 转盘: 'zhuàn pán',
+ 供稿: 'gōng gǎo',
+ 差官: 'chāi guān',
+ 忧闷: 'yōu mèn',
+ 教长: 'jiào zhǎng',
+ 重唱: 'chóng chàng',
+ 酒兴: 'jiǔ xìng',
+ 乐坛: 'yuè tán',
+ 花呢: 'huā ní',
+ 叱喝: 'chì hè',
+ 膀臂: 'bǎng bì',
+ 得空: 'dé kòng',
+ 转圈: 'zhuàn quān',
+ 横暴: 'hèng bào',
+ 哄抬: 'hōng tái',
+ 引吭: 'yǐn háng',
+ 载货: 'zài huò',
+ 中计: 'zhòng jì',
+ 官长: 'guān zhǎng',
+ 相面: 'xiàng miàn',
+ 看头: 'kàn tou',
+ 盼头: 'pàn tou',
+ 意兴: 'yì xìng',
+ 军乐: 'jūn yuè',
+ 累次: 'lěi cì',
+ 骨嘟: 'gǔ dū',
+ 燕赵: 'yān zhào',
+ 报丧: 'bào sāng',
+ 弥撒: 'mí sa',
+ 挨斗: 'ái dòu',
+ 扁舟: 'piān zhōu',
+ 丑角: 'chǒu jué',
+ 吊丧: 'diào sāng',
+ 强将: 'qiáng jiàng',
+ 重奏: 'chóng zòu',
+ 发辫: 'fà biàn',
+ 着魔: 'zháo mó',
+ 着法: 'zhāo fǎ',
+ 盛放: 'shèng fàng',
+ 填塞: 'tián sè',
+ 凶横: 'xiōng hèng',
+ 稽首: 'qǐ shǒu',
+ 碑帖: 'bēi tiè',
+ 冲量: 'chōng liàng',
+ 发菜: 'fà cài',
+ 假发: 'jiǎ fà',
+ 翻卷: 'fān juǎn',
+ 小量: 'xiǎo liàng',
+ 胶着: 'jiāo zhuó',
+ 里子: 'lǐ zi',
+ 调调: 'diào diao',
+ 散兵: 'sǎn bīng',
+ 高挑: 'gāo tiǎo',
+ 播撒: 'bō sǎ',
+ 夹心: 'jiā xīn',
+ 扇动: 'shān dòng',
+ 叨扰: 'tāo rǎo',
+ 霓裳: 'ní cháng',
+ 捻子: 'niǎn zi',
+ 弥缝: 'mí féng',
+ 撒布: 'sǎ bù',
+ 场院: 'cháng yuàn',
+ 省亲: 'xǐng qīn',
+ 提拉: 'tí lā',
+ 惯量: 'guàn liàng',
+ 强逼: 'qiáng bī',
+ 强征: 'qiáng zhēng',
+ 晕车: 'yùn chē',
+ 数道: 'shù dào',
+ 带累: 'dài lèi',
+ 拓本: 'tà běn',
+ 嫌恶: 'xián wù',
+ 宿将: 'sù jiàng',
+ 龟裂: 'jūn liè',
+ 缠夹: 'chán jiā',
+ 发式: 'fà shì',
+ 隔扇: 'gé shàn',
+ 天分: 'tiān fèn',
+ 癖好: 'pǐ hào',
+ 四通: 'sì tōng',
+ 白术: 'bái zhú',
+ 划伤: 'huá shāng',
+ 角斗: 'jué dòu',
+ 听差: 'tīng chāi',
+ 岁差: 'suì chā',
+ 丧礼: 'sāng lǐ',
+ 脉脉: 'mò mò',
+ 削瘦: 'xuē shòu',
+ 撒播: 'sǎ bō',
+ 莎草: 'suō cǎo',
+ 犍为: 'qián wéi',
+ 调头: 'diào tóu',
+ 龙卷: 'lóng juǎn',
+ 外调: 'wài diào',
+ 字帖: 'zì tiè',
+ 卷发: 'juǎn fà',
+ 揣度: 'chuǎi duó',
+ 洋相: 'yáng xiàng',
+ 散光: 'sǎn guāng',
+ 骨碌: 'gū lu',
+ 薄命: 'bó mìng',
+ 笼头: 'lóng tóu',
+ 咽炎: 'yān yán',
+ 碌碡: 'liù zhou',
+ 片儿: 'piàn er',
+ 纤手: 'qiàn shǒu',
+ 散体: 'sǎn tǐ',
+ 内省: 'nèi xǐng',
+ 强留: 'qiáng liú',
+ 解送: 'jiè sòng',
+ 反间: 'fǎn jiàn',
+ 少壮: 'shào zhuàng',
+ 留空: 'liú kōng',
+ 告假: 'gào jià',
+ 咳血: 'ké xuè',
+ 薄暮: 'bó mù',
+ 铺轨: 'pū guǐ',
+ 磨削: 'mó xuē',
+ 治丧: 'zhì sāng',
+ 叉子: 'chā zi',
+ 哄动: 'hōng dòng',
+ 蛾子: 'é zi',
+ 出落: 'chū luò',
+ 股长: 'gǔ zhǎng',
+ 贵处: 'guì chù',
+ 还魂: 'huán hún',
+ 例假: 'lì jià',
+ 刹住: 'shā zhù',
+ 身量: 'shēn liàng',
+ 同好: 'tóng hào',
+ 模量: 'mó liàng',
+ 更生: 'gēng shēng',
+ 服丧: 'fú sāng',
+ 率直: 'shuài zhí',
+ 字模: 'zì mú',
+ 散架: 'sǎn jià',
+ 答腔: 'dā qiāng',
+ 交恶: 'jiāo wù',
+ 薄情: 'bó qíng',
+ 眼泡: 'yǎn pāo',
+ 袅娜: 'niǎo nuó',
+ 草垛: 'cǎo duò',
+ 冲劲: 'chòng jìn',
+ 呢喃: 'ní nán',
+ 切中: 'qiè zhòng',
+ 挑灯: 'tiǎo dēng',
+ 还愿: 'huán yuàn',
+ 激将: 'jī jiàng',
+ 更鼓: 'gēng gǔ',
+ 没药: 'mò yào',
+ 败兴: 'bài xìng',
+ 切面: 'qiē miàn',
+ 散户: 'sǎn hù',
+ 累进: 'lěi jìn',
+ 背带: 'bēi dài',
+ 秤杆: 'chèng gǎn',
+ 碾坊: 'niǎn fáng',
+ 簿子: 'bù zi',
+ 扳手: 'bān shǒu',
+ 铅山: 'yán shān',
+ 儒将: 'rú jiàng',
+ 重光: 'chóng guāng',
+ 剪发: 'jiǎn fà',
+ 长上: 'zhǎng shàng',
+ 小传: 'xiǎo zhuàn',
+ 压轴: 'yā zhòu',
+ 弱冠: 'ruò guàn',
+ 花卷: 'huā juǎn',
+ 横祸: 'hèng huò',
+ 夹克: 'jiā kè',
+ 光晕: 'guāng yùn',
+ 披靡: 'pī mǐ',
+ 对调: 'duì diào',
+ 夹持: 'jiā chí',
+ 空额: 'kòng é',
+ 平调: 'píng diào',
+ 铺床: 'pū chuáng',
+ 丧钟: 'sāng zhōng',
+ 作乐: 'zuò lè',
+ 少府: 'shào fǔ',
+ 数数: 'shuò shuò',
+ 奔头: 'bèn tou',
+ 进给: 'jìn jǐ',
+ 率性: 'shuài xìng',
+ 乐子: 'lè zi',
+ 绑扎: 'bǎng zā',
+ 挑唆: 'tiǎo suō',
+ 漂洗: 'piǎo xǐ',
+ 夹墙: 'jiā qiáng',
+ 咳喘: 'ké chuǎn',
+ 乜斜: 'miē xie',
+ 错处: 'cuò chù',
+ 闷酒: 'mèn jiǔ',
+ 时调: 'shí diào',
+ 重孙: 'chóng sūn',
+ 经幢: 'jīng chuáng',
+ 圩场: 'xū chǎng',
+ 调门: 'diào mén',
+ 花头: 'huā tóu',
+ 划拉: 'huá la',
+ 套色: 'tào shǎi',
+ 粗率: 'cū shuài',
+ 相率: 'xiāng shuài',
+ 款识: 'kuǎn zhì',
+ 吁请: 'yù qǐng',
+ 荫蔽: 'yīn bì',
+ 文蛤: 'wén gé',
+ 嘀嗒: 'dī dā',
+ 调取: 'diào qǔ',
+ 交差: 'jiāo chāi',
+ 落子: 'luò zǐ',
+ 相册: 'xiàng cè',
+ 絮叨: 'xù dao',
+ 落发: 'luò fà',
+ 异相: 'yì xiàng',
+ 浸没: 'jìn mò',
+ 角抵: 'jué dǐ',
+ 卸载: 'xiè zài',
+ 春卷: 'chūn juǎn',
+ 扎挣: 'zhá zheng',
+ 畜养: 'xù yǎng',
+ 吡咯: 'bǐ luò',
+ 垛子: 'duò zi',
+ 恶少: 'è shào',
+ 发际: 'fà jì',
+ 红苕: 'hóng sháo',
+ 糨糊: 'jiàng hu',
+ 哭丧: 'kū sāng',
+ 稍息: 'shào xī',
+ 晕船: 'yùn chuán',
+ 校样: 'jiào yàng',
+ 外差: 'wài chā',
+ 脚爪: 'jiǎo zhǎo',
+ 铺展: 'pū zhǎn',
+ 芫荽: 'yán sui',
+ 夹紧: 'jiā jǐn',
+ 尿泡: 'suī pào',
+ 丧乱: 'sāng luàn',
+ 凶相: 'xiōng xiàng',
+ 华发: 'huá fà',
+ 打场: 'dǎ cháng',
+ 云量: 'yún liàng',
+ 正切: 'zhèng qiē',
+ 划拳: 'huá quán',
+ 划艇: 'huá tǐng',
+ 评传: 'píng zhuàn',
+ 拉纤: 'lā qiàn',
+ 句读: 'jù dòu',
+ 散剂: 'sǎn jì',
+ 骨殖: 'gǔ shi',
+ 塞音: 'sè yīn',
+ 铺叙: 'pū xù',
+ 阏氏: 'yān zhī',
+ 冷颤: 'lěng zhàn',
+ 煞住: 'shā zhù',
+ 少男: 'shào nán',
+ 管乐: 'guǎn yuè',
+ 号啕: 'háo táo',
+ 纳降: 'nà xiáng',
+ 拥塞: 'yōng sè',
+ 万乘: 'wàn shèng',
+ 杆儿: 'gǎn ér',
+ 葛藤: 'gé téng',
+ 簿籍: 'bù jí',
+ 皮夹: 'pí jiā',
+ 校准: 'jiào zhǔn',
+ 允当: 'yǔn dàng',
+ 器量: 'qì liàng',
+ 选调: 'xuǎn diào',
+ 扮相: 'bàn xiàng',
+ 干才: 'gàn cái',
+ 基干: 'jī gàn',
+ 割切: 'gē qiē',
+ 国乐: 'guó yuè',
+ 卡壳: 'qiǎ ké',
+ 辟谷: 'bì gǔ',
+ 磨房: 'mò fáng',
+ 咿呀: 'yī yā',
+ 芥末: 'jiè mo',
+ 薄技: 'bó jì',
+ 产假: 'chǎn jià',
+ 诗兴: 'shī xìng',
+ 重出: 'chóng chū',
+ 转椅: 'zhuàn yǐ',
+ 酌量: 'zhuó liang',
+ 簿册: 'bù cè',
+ 藏青: 'zàng qīng',
+ 的士: 'dī shì',
+ 调人: 'diào rén',
+ 解元: 'jiè yuán',
+ 茎干: 'jīng gàn',
+ 巨量: 'jù liàng',
+ 榔头: 'láng tou',
+ 率真: 'shuài zhēn',
+ 喷香: 'pèn xiāng',
+ 锁钥: 'suǒ yuè',
+ 虾蟆: 'há má',
+ 相图: 'xiàng tú',
+ 兴会: 'xìng huì',
+ 灶头: 'zào tóu',
+ 重婚: 'chóng hūn',
+ 钻洞: 'zuān dòng',
+ 忖度: 'cǔn duó',
+ 党参: 'dǎng shēn',
+ 调温: 'diào wēn',
+ 杆塔: 'gān tǎ',
+ 葛布: 'gé bù',
+ 拱券: 'gǒng xuàn',
+ 夹生: 'jiā shēng',
+ 露馅: 'lòu xiàn',
+ 恰切: 'qià qiè',
+ 散见: 'sǎn jiàn',
+ 哨卡: 'shào qiǎ',
+ 烫发: 'tàng fà',
+ 体量: 'tǐ liàng',
+ 挺括: 'tǐng kuò',
+ 系带: 'jì dài',
+ 相士: 'xiàng shì',
+ 羊圈: 'yáng juàn',
+ 转矩: 'zhuàn jǔ',
+ 吧台: 'bā tái',
+ 苍术: 'cāng zhú',
+ 菲薄: 'fěi bó',
+ 蛤蚧: 'gé jiè',
+ 蛤蜊: 'gé lí',
+ 瓜蔓: 'guā wàn',
+ 怪相: 'guài xiàng',
+ 临帖: 'lín tiè',
+ 女红: 'nǚ gōng',
+ 刨床: 'bào chuáng',
+ 翘楚: 'qiáo chǔ',
+ 数九: 'shǔ jiǔ',
+ 谈兴: 'tán xìng',
+ 雄劲: 'xióng jìng',
+ 扎染: 'zā rǎn',
+ 遮荫: 'zhē yīn',
+ 周正: 'zhōu zhèng',
+ 赚头: 'zhuàn tou',
+ 扒手: 'pá shǒu',
+ 搀和: 'chān huo',
+ 诚朴: 'chéng pǔ',
+ 肚量: 'dù liàng',
+ 干结: 'gān jié',
+ 工尺: 'gōng chě',
+ 家累: 'jiā lěi',
+ 曲水: 'qū shuǐ',
+ 沙参: 'shā shēn',
+ 挑花: 'tiǎo huā',
+ 阿门: 'ā mén',
+ 背篓: 'bēi lǒu',
+ 瘪三: 'biē sān',
+ 裁处: 'cái chǔ',
+ 创痛: 'chuāng tòng',
+ 福相: 'fú xiàng',
+ 更动: 'gēng dòng',
+ 豪兴: 'háo xìng',
+ 还阳: 'huán yáng',
+ 还嘴: 'huán zuǐ',
+ 借调: 'jiè diào',
+ 卷云: 'juǎn yún',
+ 流弹: 'liú dàn',
+ 想头: 'xiǎng tou',
+ 削价: 'xuē jià',
+ 校阅: 'jiào yuè',
+ 雅量: 'yǎ liàng',
+ 别传: 'bié zhuàn',
+ 薄酒: 'bó jiǔ',
+ 春假: 'chūn jià',
+ 发妻: 'fà qī',
+ 哗哗: 'huā huā',
+ 宽绰: 'kuān chuo',
+ 了悟: 'liǎo wù',
+ 切花: 'qiē huā',
+ 审度: 'shěn duó',
+ 应许: 'yīng xǔ',
+ 转台: 'zhuàn tái',
+ 仔猪: 'zǐ zhū',
+ 裁量: 'cái liáng',
+ 藏戏: 'zàng xì',
+ 乘兴: 'chéng xìng',
+ 绸缪: 'chóu móu',
+ 摧折: 'cuī zhé',
+ 调经: 'tiáo jīng',
+ 调职: 'diào zhí',
+ 缝缀: 'féng zhuì',
+ 骨朵: 'gū duǒ',
+ 核儿: 'hú er',
+ 恒量: 'héng liàng',
+ 还价: 'huán jià',
+ 浑朴: 'hún pǔ',
+ 苦差: 'kǔ chāi',
+ 面糊: 'miàn hù',
+ 煞车: 'shā chē',
+ 省视: 'xǐng shì',
+ 什锦: 'shí jǐn',
+ 信差: 'xìn chāi',
+ 余切: 'yú qiē',
+ 攒眉: 'cuán méi',
+ 炸糕: 'zhá gāo',
+ 钻杆: 'zuàn gǎn',
+ 扒灰: 'pá huī',
+ 拌和: 'bàn huò',
+ 长调: 'cháng diào',
+ 大溜: 'dà liù',
+ 抖搂: 'dǒu lōu',
+ 飞转: 'fēi zhuàn',
+ 干仗: 'gàn zhàng',
+ 好胜: 'hào shèng',
+ 画片: 'huà piàn',
+ 搅混: 'jiǎo hún',
+ 螺杆: 'luó gǎn',
+ 木模: 'mù mú',
+ 怒号: 'nù háo',
+ 频数: 'pín shù',
+ 无宁: 'wú níng',
+ 遗少: 'yí shào',
+ 邮差: 'yóu chāi',
+ 占卦: 'zhān guà',
+ 占星: 'zhān xīng',
+ 重审: 'chóng shěn',
+ 自量: 'zì liàng',
+ 调防: 'diào fáng',
+ 发廊: 'fà láng',
+ 反调: 'fǎn diào',
+ 缝子: 'fèng zi',
+ 更夫: 'gēng fū',
+ 骨子: 'gǔ zi',
+ 光杆: 'guāng gǎn',
+ 夹棍: 'jiā gùn',
+ 居丧: 'jū sāng',
+ 巨贾: 'jù gǔ',
+ 看押: 'kān yā',
+ 空转: 'kōng zhuàn',
+ 量力: 'liàng lì',
+ 炮烙: 'páo luò',
+ 赔还: 'péi huán',
+ 扑扇: 'pū shān',
+ 散记: 'sǎn jì',
+ 散件: 'sǎn jiàn',
+ 删削: 'shān xuē',
+ 射干: 'shè gàn',
+ 条几: 'tiáo jī',
+ 偷空: 'tōu kòng',
+ 削壁: 'xuē bì',
+ 校核: 'jiào hé',
+ 阴干: 'yīn gān',
+ 择菜: 'zhái cài',
+ 重九: 'chóng jiǔ',
+ 主调: 'zhǔ diào',
+ 自禁: 'zì jīn',
+ 吧唧: 'bā jī',
+ 便溺: 'biàn niào',
+ 词调: 'cí diào',
+ 叨咕: 'dáo gu',
+ 落枕: 'lào zhěn',
+ 铺砌: 'pū qì',
+ 刷白: 'shuà bái',
+ 委靡: 'wěi mǐ',
+ 系泊: 'xì bó',
+ 相马: 'xiàng mǎ',
+ 熨帖: 'yù tiē',
+ 转筋: 'zhuàn jīn',
+ 棒喝: 'bàng hè',
+ 傧相: 'bīn xiàng',
+ 镐头: 'gǎo tóu',
+ 间苗: 'jiàn miáo',
+ 乐池: 'yuè chí',
+ 卖相: 'mài xiàng',
+ 屏弃: 'bǐng qì',
+ 铅弹: 'qiān dàn',
+ 切变: 'qiē biàn',
+ 请调: 'qǐng diào',
+ 群氓: 'qún méng',
+ 散板: 'sǎn bǎn',
+ 省察: 'xǐng chá',
+ 事假: 'shì jià',
+ 纤绳: 'qiàn shéng',
+ 重影: 'chóng yǐng',
+ 耕种: 'gēng zhòng',
+ 种地: 'zhòng dì',
+ 种菜: 'zhòng cài',
+ 栽种: 'zāi zhòng',
+ 接种: 'jiē zhòng',
+ 垦种: 'kěn zhòng',
+ 种殖: 'zhòng zhí',
+ 种瓜: 'zhòng guā',
+ 种豆: 'zhòng dòu',
+ 种树: 'zhòng shù',
+ 睡着: 'shuì zháo',
+ 笼子: 'lóng zi',
+ 重启: 'chóng qǐ',
+ 重整: 'chóng zhěng',
+ 重弹: 'chóng tán',
+ 重足: 'chóng zú',
+ 重山: 'chóng shān',
+ 重游: 'chóng yóu',
+ 重峦: 'chóng luán',
+ 爷爷: 'yé ye',
+ 奶奶: 'nǎi nai',
+ 姥爷: 'lǎo ye',
+ 爸爸: 'bà ba',
+ 妈妈: 'mā ma',
+ 婶婶: 'shěn shen',
+ 舅舅: 'jiù jiu',
+ 姑姑: 'gū gu',
+ 叔叔: 'shū shu',
+ 姨夫: 'yí fu',
+ 舅母: 'jiù mu',
+ 姑父: 'gū fu',
+ 姐夫: 'jiě fu',
+ 婆婆: 'pó po',
+ 公公: 'gōng gong',
+ 舅子: 'jiù zi',
+ 姐姐: 'jiě jie',
+ 哥哥: 'gē ge',
+ 妹妹: 'mèi mei',
+ 妹夫: 'mèi fu',
+ 姨子: 'yí zi',
+ 宝宝: 'bǎo bao',
+ 娃娃: 'wá wa',
+ 孩子: 'hái zi',
+ 日子: 'rì zi',
+ 样子: 'yàng zi',
+ 狮子: 'shī zi',
+ 身子: 'shēn zi',
+ 架子: 'jià zi',
+ 嫂子: 'sǎo zi',
+ 鼻子: 'bí zi',
+ 亭子: 'tíng zi',
+ 折子: 'zhé zi',
+ 面子: 'miàn zi',
+ 脖子: 'bó zi',
+ 辈子: 'bèi zi',
+ 帽子: 'mào zi',
+ 拍子: 'pāi zi',
+ 柱子: 'zhù zi',
+ 辫子: 'biàn zi',
+ 鸽子: 'gē zi',
+ 房子: 'fáng zi',
+ 丸子: 'wán zi',
+ 摊子: 'tān zi',
+ 牌子: 'pái zi',
+ 胡子: 'hú zi',
+ 鬼子: 'guǐ zi',
+ 矮子: 'ǎi zi',
+ 鸭子: 'yā zi',
+ 小子: 'xiǎo zi',
+ 影子: 'yǐng zi',
+ 屋子: 'wū zi',
+ 对子: 'duì zi',
+ 点子: 'diǎn zi',
+ 本子: 'běn zi',
+ 种子: 'zhǒng zi',
+ 儿子: 'ér zi',
+ 兔子: 'tù zi',
+ 骗子: 'piàn zi',
+ 院子: 'yuàn zi',
+ 猴子: 'hóu zi',
+ 嗓子: 'sǎng zi',
+ 侄子: 'zhí zi',
+ 柿子: 'shì zi',
+ 钳子: 'qián zi',
+ 虱子: 'shī zi',
+ 瓶子: 'píng zi',
+ 豹子: 'bào zi',
+ 筷子: 'kuài zi',
+ 篮子: 'lán zi',
+ 绳子: 'shéng zi',
+ 嘴巴: 'zuǐ ba',
+ 耳朵: 'ěr duo',
+ 茄子: 'qié zi',
+ 蚌埠: 'bèng bù',
+ 崆峒: 'kōng tóng',
+ 琵琶: 'pí pa',
+ 蘑菇: 'mó gu',
+ 葫芦: 'hú lu',
+ 狐狸: 'hú li',
+ 桔子: 'jú zi',
+ 盒子: 'hé zi',
+ 桌子: 'zhuō zi',
+ 竹子: 'zhú zi',
+ 师傅: 'shī fu',
+ 衣服: 'yī fu',
+ 袜子: 'wà zi',
+ 杯子: 'bēi zi',
+ 刺猬: 'cì wei',
+ 麦子: 'mài zi',
+ 队伍: 'duì wu',
+ 知了: 'zhī liǎo',
+ 鱼儿: 'yú er',
+ 馄饨: 'hún tun',
+ 灯笼: 'dēng long',
+ 庄稼: 'zhuāng jia',
+ 聪明: 'cōng ming',
+ 镜子: 'jìng zi',
+ 银子: 'yín zi',
+ 盘子: 'pán zi',
+ 了却: 'liǎo què',
+ 力气: 'lì qi',
+ 席子: 'xí zi',
+ 林子: 'lín zi',
+ 朝霞: 'zhāo xiá',
+ 朝夕: 'zhāo xī',
+ 朝气: 'zhāo qì',
+ 翅膀: 'chì bǎng',
+ 省长: 'shěng zhǎng',
+ 臧否: 'zāng pǐ',
+ 否泰: 'pǐ tài',
+ 变得: 'biàn de',
+ 丈夫: 'zhàng fu',
+ 豆腐: 'dòu fu',
+ 笔杆: 'bǐ gǎn',
+ 枞阳: 'zōng yáng',
+ 行人: 'xíng rén',
+ 打着: 'dǎ zhe',
+ // 一字不变调的词语(需要增补更多)
+ // 有歧义的词:一楼、一栋、一层、一排、一连
+ // “一楼”这个词,上下文语意是“一整栋楼”时,需要变调成四声;我住一楼时,则是一声
+ 第一: 'dì yī',
+ 万一: 'wàn yī',
+ 之一: 'zhī yī',
+ 得之: 'dé zhī',
+ 统一: 'tǒng yī',
+ 唯一: 'wéi yī',
+ 专一: 'zhuān yī',
+ 单一: 'dān yī',
+ 如一: 'rú yī',
+ 其一: 'qí yī',
+ 合一: 'hé yī',
+ 逐一: 'zhú yī',
+ 周一: 'zhōu yī',
+ 初一: 'chū yī',
+ 研一: 'yán yī',
+ 归一: 'guī yī',
+ 假一: 'jiǎ yī',
+ 闻一: 'wén yī',
+ 了了: 'liǎo liǎo',
+ 公了: 'gōng liǎo',
+ 私了: 'sī liǎo',
+ // 一 发音
+ 一月: 'yī yuè',
+ 一号: 'yī hào',
+ 一级: 'yī jí',
+ 一等: 'yī děng',
+ 一哥: 'yī gē',
+ 月一: 'yuè yī',
+ 一一: 'yī yī',
+ 二一: 'èr yī',
+ 三一: 'sān yī',
+ 四一: 'sì yī',
+ 五一: 'wǔ yī',
+ 六一: 'liù yī',
+ 七一: 'qī yī',
+ 八一: 'bā yī',
+ 九一: 'jiǔ yī',
+ 一〇: 'yī líng',
+ 一零: 'yī líng',
+ 一二: 'yī èr',
+ 一三: 'yī sān',
+ 一四: 'yī sì',
+ 一五: 'yī wǔ',
+ 一六: 'yī liù',
+ 一七: 'yī qī',
+ 一八: 'yī bā',
+ 一九: 'yī jiǔ',
+ 一又: 'yī yòu',
+ 一饼: 'yī bǐng',
+ 一楼: 'yī lóu',
+ 为例: 'wéi lì',
+ 为准: 'wéi zhǔn',
+ 沧海: 'cāng hǎi',
+ 难为: 'nán wéi',
+ 责难: 'zé nàn',
+ 患难: 'huàn nàn',
+ 磨难: 'mó nàn',
+ 大难: 'dà nàn',
+ 刁难: 'diāo nàn',
+ 殉难: 'xùn nàn',
+ 落难: 'luò nàn',
+ 罹难: 'lí nàn',
+ 灾难: 'zāi nàn',
+ 难民: 'nàn mín',
+ 苦难: 'kǔ nàn',
+ 危难: 'wēi nàn',
+ 发难: 'fā nàn',
+ 逃难: 'táo nàn',
+ 避难: 'bì nàn',
+ 遇难: 'yù nàn',
+ 阻难: 'zǔ nàn',
+ 厄难: 'è nàn',
+ 徇难: 'xùn nàn',
+ 空难: 'kōng nàn',
+ 喜欢: 'xǐ huan',
+ 朝朝: 'zhāo zhāo',
+ 不行: 'bù xíng',
+ 轧轧: 'yà yà',
+ 弯曲: 'wān qū',
+ 扭曲: 'niǔ qū',
+ 曲直: 'qū zhí',
+ 委曲: 'wěi qū',
+ 酒曲: 'jiǔ qū',
+ 曲径: 'qū jìng',
+ 曲解: 'qū jiě',
+ 歪曲: 'wāi qū',
+ 曲线: 'qū xiàn',
+ 曲阜: 'qū fù',
+ 九曲: 'jiǔ qū',
+ 曲折: 'qū zhé',
+ 曲肱: 'qū gōng',
+ 曲意: 'qū yì',
+ 仡佬: 'gē lǎo',
+};
+const Pattern2 = Object.keys(DICT2).map((key) => ({
+ zh: key,
+ pinyin: DICT2[key],
+ probability: 2e-8 /* Probability.DICT */,
+ length: 2,
+ priority: Priority.Normal,
+ dict: Symbol('dict2'),
+}));
+
+const DICT3 = {
+ 为什么: 'wèi shén me',
+ 实际上: 'shí jì shang',
+ 检察长: 'jiǎn chá zhǎng',
+ 干什么: 'gàn shén me',
+ 这会儿: 'zhè huì er',
+ 尽可能: 'jǐn kě néng',
+ 董事长: 'dǒng shì zhǎng',
+ 了不起: 'liǎo bù qǐ',
+ 参谋长: 'cān móu zhǎng',
+ 朝鲜族: 'cháo xiǎn zú',
+ 海内外: 'hǎi nèi wài',
+ 禁不住: 'jīn bú zhù',
+ 柏拉图: 'bó lā tú',
+ 不在乎: 'bú zài hu',
+ 洛杉矶: 'luò shān jī',
+ 有点儿: 'yǒu diǎn er',
+ 迫击炮: 'pǎi jī pào',
+ 不得了: 'bù dé liǎo',
+ 马尾松: 'mǎ wěi sōng',
+ 运输量: 'yùn shū liàng',
+ 发脾气: 'fā pí qi',
+ 士大夫: 'shì dà fū',
+ 鸭绿江: 'yā lù jiāng',
+ 压根儿: 'yà gēn er',
+ 对得起: 'duì de qǐ',
+ 那会儿: 'nà huì er',
+ 自个儿: 'zì gě er',
+ 物理量: 'wù lǐ liàng',
+ 怎么着: 'zěn me zhāo',
+ 明晃晃: 'míng huǎng huǎng',
+ 节假日: 'jié jià rì',
+ 心里话: 'xīn lǐ huà',
+ 发行量: 'fā xíng liàng',
+ 兴冲冲: 'xìng chōng chōng',
+ 分子量: 'fēn zǐ liàng',
+ 国子监: 'guó zǐ jiàn',
+ 老大难: 'lǎo dà nán',
+ 党内外: 'dǎng nèi wài',
+ 这么着: 'zhè me zhāo',
+ 少奶奶: 'shào nǎi nai',
+ 暗地里: 'àn dì lǐ',
+ 更年期: 'gēng nián qī',
+ 工作量: 'gōng zuò liàng',
+ 背地里: 'bèi dì lǐ',
+ 山里红: 'shān li hóng',
+ 好好儿: 'hǎo hāo er',
+ 交响乐: 'jiāo xiǎng yuè',
+ 好意思: 'hǎo yì si',
+ 吐谷浑: 'tǔ yù hún',
+ 没意思: 'méi yì si',
+ 理发师: 'lǐ fà shī',
+ 塔什干: 'tǎ shí gān',
+ 充其量: 'chōng qí liàng',
+ 靠得住: 'kào de zhù',
+ 车行道: 'chē xíng dào',
+ 人行道: 'rén xíng dào',
+ 中郎将: 'zhōng láng jiàng',
+ 照明弹: 'zhào míng dàn',
+ 烟幕弹: 'yān mù dàn',
+ 没奈何: 'mò nài hé',
+ 乱哄哄: 'luàn hōng hōng',
+ 惠更斯: 'huì gēng sī',
+ 载重量: 'zài zhòng liàng',
+ 瞧得起: 'qiáo de qǐ',
+ 纪传体: 'jì zhuàn tǐ',
+ 阿房宫: 'ē páng gōng',
+ 卷心菜: 'juǎn xīn cài',
+ 戏班子: 'xì bān zi',
+ 过得去: 'guò de qù',
+ 花岗石: 'huā gāng shí',
+ 外甥女: 'wài sheng nǚ',
+ 团团转: 'tuán tuán zhuàn',
+ 大堡礁: 'dà bǎo jiāo',
+ 燃烧弹: 'rán shāo dàn',
+ 劳什子: 'láo shí zi',
+ 摇滚乐: 'yáo gǔn yuè',
+ 夹竹桃: 'jiā zhú táo',
+ 闹哄哄: 'nào hōng hōng',
+ 三连冠: 'sān lián guàn',
+ 重头戏: 'zhòng tóu xì',
+ 二人转: 'èr rén zhuàn',
+ 节骨眼: 'jiē gǔ yǎn',
+ 知识面: 'zhī shi miàn',
+ 护士长: 'hù shi zhǎng',
+ 信号弹: 'xìn hào dàn',
+ 干电池: 'gān diàn chí',
+ 枪杆子: 'qiāng gǎn zi',
+ 哭丧棒: 'kū sāng bàng',
+ 鼻咽癌: 'bí yān ái',
+ 瓦岗军: 'wǎ gāng jūn',
+ 买得起: 'mǎi de qǐ',
+ 癞蛤蟆: 'lài há ma',
+ 脊梁骨: 'jǐ liang gǔ',
+ 子母弹: 'zǐ mǔ dàn',
+ 开小差: 'kāi xiǎo chāi',
+ 女强人: 'nǚ qiáng rén',
+ 英雄传: 'yīng xióng zhuàn',
+ 爵士乐: 'jué shì yuè',
+ 说笑话: 'shuō xiào hua',
+ 碰头会: 'pèng tóu huì',
+ 玻璃钢: 'bō li gāng',
+ 曳光弹: 'yè guāng dàn',
+ 少林拳: 'shào lín quán',
+ 咏叹调: 'yǒng tàn diào',
+ 少先队: 'shào xiān duì',
+ 灵长目: 'líng zhǎng mù',
+ 对着干: 'duì zhe gàn',
+ 蒙蒙亮: 'méng méng liàng',
+ 软骨头: 'ruǎn gǔ tou',
+ 铺盖卷: 'pū gài juǎn',
+ 和稀泥: 'huò xī ní',
+ 背黑锅: 'bēi hēi guō',
+ 红彤彤: 'hóng tōng tōng',
+ 武侯祠: 'wǔ hóu cí',
+ 打哆嗦: 'dǎ duō suo',
+ 户口簿: 'hù kǒu bù',
+ 马尾藻: 'mǎ wěi zǎo',
+ 夜猫子: 'yè māo zi',
+ 打手势: 'dǎ shǒu shì',
+ 龙王爷: 'lóng wáng yé',
+ 气头上: 'qì tóu shang',
+ 糊涂虫: 'hú tu chóng',
+ 笔杆子: 'bǐ gǎn zi',
+ 占便宜: 'zhàn pián yi',
+ 打主意: 'dǎ zhǔ yì',
+ 多弹头: 'duō dàn tóu',
+ 露一手: 'lòu yì shǒu',
+ 堰塞湖: 'yàn sè hú',
+ 保得住: 'bǎo de zhù',
+ 趵突泉: 'bào tū quán',
+ 奥得河: 'ào de hé',
+ 司务长: 'sī wù zhǎng',
+ 禁不起: 'jīn bù qǐ',
+ 什刹海: 'shí chà hǎi',
+ 莲花落: 'lián huā lào',
+ 见世面: 'jiàn shì miàn',
+ 豁出去: 'huō chū qù',
+ 电位差: 'diàn wèi chā',
+ 挨个儿: 'āi gè er',
+ 那阵儿: 'nà zhèn er',
+ 肺活量: 'fèi huó liàng',
+ 大师傅: 'dà shī fu',
+ 掷弹筒: 'zhì dàn tǒng',
+ 打呼噜: 'dǎ hū lu',
+ 广渠门: 'ān qú mén',
+ 未见得: 'wèi jiàn dé',
+ 大婶儿: 'dà shěn er',
+ 谈得来: 'tán de lái',
+ 脚丫子: 'jiǎo yā zi',
+ 空包弹: 'kōng bāo dàn',
+ 窝里斗: 'wō li dòu',
+ 弹着点: 'dàn zhuó diǎn',
+ 个头儿: 'gè tóu er',
+ 看得起: 'kàn de qǐ',
+ 糊涂账: 'hú tu zhàng',
+ 大猩猩: 'dà xīng xing',
+ 禁得起: 'jīn de qǐ',
+ 法相宗: 'fǎ xiàng zōng',
+ 可怜相: 'kě lián xiàng',
+ 吃得下: 'chī de xià',
+ 汉堡包: 'hàn bǎo bāo',
+ 闹嚷嚷: 'nào rāng rāng',
+ 数来宝: 'shǔ lái bǎo',
+ 合得来: 'hé de lái',
+ 干性油: 'gān xìng yóu',
+ 闷葫芦: 'mèn hú lu',
+ 呱呱叫: 'guā guā jiào',
+ 西洋参: 'xī yáng shēn',
+ 林荫道: 'lín yīn dào',
+ 拉家常: 'lā jiā cháng',
+ 卷铺盖: 'juǎn pū gài',
+ 过得硬: 'guò de yìng',
+ 飞将军: 'fēi jiāng jūn',
+ 挑大梁: 'tiǎo dà liáng',
+ 哈巴狗: 'hǎ ba gǒu',
+ 过家家: 'guò jiā jiā',
+ 催泪弹: 'cuī lèi dàn',
+ 雨夹雪: 'yǔ jiā xuě',
+ 敲竹杠: 'qiāo zhú gàng',
+ 列车长: 'liè chē zhǎng',
+ 华达呢: 'huá dá ní',
+ 犯得着: 'fàn de zháo',
+ 土疙瘩: 'tǔ gē da',
+ 煞风景: 'shā fēng jǐng',
+ 轻量级: 'qīng liàng jí',
+ 羞答答: 'xiū dā dā',
+ 石子儿: 'shí zǐ er',
+ 达姆弹: 'dá mǔ dàn',
+ 科教片: 'kē jiào piān',
+ 侃大山: 'kǎn dà shān',
+ 丁点儿: 'dīng diǎn er',
+ 吃得消: 'chī de xiāo',
+ 捋虎须: 'luō hǔ xū',
+ 高丽参: 'gāo lí shēn',
+ 众生相: 'zhòng shēng xiàng',
+ 咽峡炎: 'yān xiá yán',
+ 禁得住: 'jīn de zhù',
+ 吃得开: 'chī de kāi',
+ 柞丝绸: 'zuò sī chóu',
+ 应声虫: 'yìng shēng chóng',
+ 数得着: 'shǔ de zháo',
+ 傻劲儿: 'shǎ jìn er',
+ 铅玻璃: 'qiān bō li',
+ 可的松: 'kě dì sōng',
+ 划得来: 'huá de lái',
+ 晕乎乎: 'yūn hū hū',
+ 屎壳郎: 'shǐ ke làng',
+ 尥蹶子: 'liào juě zi',
+ 藏红花: 'zàng hóng huā',
+ 闷罐车: 'mèn guàn chē',
+ 卡脖子: 'qiǎ bó zi',
+ 红澄澄: 'hóng deng deng',
+ 赶得及: 'gǎn de jí',
+ 当间儿: 'dāng jiàn er',
+ 露马脚: 'lòu mǎ jiǎo',
+ 鸡内金: 'jī nèi jīn',
+ 犯得上: 'fàn de shàng',
+ 钉齿耙: 'dīng chǐ bà',
+ 饱和点: 'bǎo hé diǎn',
+ 龙爪槐: 'lóng zhǎo huái',
+ 喝倒彩: 'hè dào cǎi',
+ 定冠词: 'dìng guàn cí',
+ 担担面: 'dàn dan miàn',
+ 吃得住: 'chī de zhù',
+ 爪尖儿: 'zhuǎ jiān er',
+ 支着儿: 'zhī zhāo er',
+ 折跟头: 'zhē gēn tou',
+ 阴着儿: 'yīn zhāo er',
+ 烟卷儿: 'yān juǎn er',
+ 宣传弹: 'xuān chuán dàn',
+ 信皮儿: 'xìn pí er',
+ 弦切角: 'xián qiē jiǎo',
+ 缩砂密: 'sù shā mì',
+ 说得来: 'shuō de lái',
+ 水漂儿: 'shuǐ piāo er',
+ 耍笔杆: 'shuǎ bǐ gǎn',
+ 数得上: 'shǔ de shàng',
+ 数不着: 'shǔ bù zháo',
+ 数不清: 'shǔ bù qīng',
+ 什件儿: 'shí jiàn er',
+ 生死簿: 'shēng sǐ bù',
+ 扇风机: 'shān fēng jī',
+ 撒呓挣: 'sā yì zheng',
+ 日记簿: 'rì jì bù',
+ 热得快: 'rè de kuài',
+ 亲家公: 'qìng jia gōng',
+ 奇函数: 'jī hán shù',
+ 拍纸簿: 'pāi zhǐ bù',
+ 努劲儿: 'nǔ jìn er',
+ 泥娃娃: 'ní wá wa',
+ 内切圆: 'nèi qiē yuán',
+ 哪会儿: 'nǎ huì er',
+ 闷头儿: 'mēn tóu er',
+ 没谱儿: 'méi pǔ er',
+ 铆劲儿: 'mǎo jìn er',
+ 溜肩膀: 'liū jiān bǎng',
+ 了望台: 'liào wàng tái',
+ 老来少: 'lǎo lái shào',
+ 坤角儿: 'kūn jué er',
+ 考勤簿: 'kǎo qín bù',
+ 卷笔刀: 'juǎn bǐ dāo',
+ 进给量: 'jìn jǐ liàng',
+ 划不来: 'huá bù lái',
+ 汗褂儿: 'hàn guà er',
+ 鼓囊囊: 'gǔ nāng nāng',
+ 够劲儿: 'gòu jìn er',
+ 公切线: 'gōng qiē xiàn',
+ 搁得住: 'gé de zhù',
+ 赶浪头: 'gǎn làng tóu',
+ 赶得上: 'gǎn de shàng',
+ 干酵母: 'gān jiào mǔ',
+ 嘎渣儿: 'gā zhā er',
+ 嘎嘣脆: 'gā bēng cuì',
+ 对得住: 'duì de zhù',
+ 逗闷子: 'dòu mèn zi',
+ 顶呱呱: 'dǐng guā guā',
+ 滴溜儿: 'dī liù er',
+ 大轴子: 'dà zhòu zi',
+ 打板子: 'dǎ bǎn zi',
+ 寸劲儿: 'cùn jìn er',
+ 醋劲儿: 'cù jìn er',
+ 揣手儿: 'chuāi shǒu er',
+ 冲劲儿: 'chòng jìn er',
+ 吃得来: 'chī de lái',
+ 不更事: 'bù gēng shì',
+ 奔头儿: 'bèn tou er',
+ 百夫长: 'bǎi fū zhǎng',
+ 娃娃亲: 'wá wa qīn',
+ 死劲儿: 'sǐ jìn er',
+ 骨朵儿: 'gū duǒ er',
+ 功劳簿: 'gōng láo bù',
+ 都江堰: 'dū jiāng yàn',
+ 一担水: 'yí dàn shuǐ',
+ 否极泰: 'pǐ jí tài',
+ 泰来否: 'tài lái pǐ',
+ 咳特灵: 'ké tè líng',
+ 开户行: 'kāi hù háng',
+ 郦食其: 'lì yì jī',
+ 花事了: 'huā shì liǎo',
+ // 一字变调的词语(与两个字的字典冲突,故需要重新定义)
+ 一更更: 'yì gēng gēng',
+ 一重山: 'yì chóng shān',
+ 风一更: 'fēng yì gēng',
+ 雪一更: 'xuě yì gēng',
+ 归一码: 'guī yì mǎ',
+ // 一字不变调的词语(需要增补更多)
+ 星期一: 'xīng qī yī',
+ 礼拜一: 'lǐ bài yī',
+ 一季度: 'yī jì dù',
+ 一月一: 'yī yuè yī',
+ 一字马: 'yī zì mǎ',
+ 一是一: 'yī shì yī',
+ 一次方: 'yī cì fāng',
+ 一阳指: 'yī yáng zhǐ',
+ 一字决: 'yī zì jué',
+ 一年级: 'yī nián jí',
+ 一不做: 'yī bú zuò',
+ 屈戌儿: 'qū qu ér',
+ 难为水: 'nán wéi shuǐ',
+ 难为情: 'nán wéi qíng',
+ 行一行: 'xíng yì háng',
+ 别别的: 'biè bié de',
+ 干哪行: 'gàn nǎ háng',
+ 干一行: 'gàn yì háng',
+ 曲别针: 'qū bié zhēn',
+};
+const Pattern3 = Object.keys(DICT3).map((key) => ({
+ zh: key,
+ pinyin: DICT3[key],
+ probability: 2e-8 /* Probability.DICT */,
+ length: 3,
+ priority: Priority.Normal,
+ dict: Symbol('dict3'),
+}));
+
+const DICT4 = {
+ 成吉思汗: "chéng jí sī hán",
+ 四通八达: "sì tōng bā dá",
+ 一模一样: "yì mú yí yàng",
+ 青藏高原: "qīng zàng gāo yuán",
+ 阿弥陀佛: "ē mí tuó fó",
+ 解放思想: "jiè fàng sī xiǎng",
+ 所作所为: "suǒ zuò suǒ wéi",
+ 迷迷糊糊: "mí mí hu hū",
+ 荷枪实弹: "hè qiāng shí dàn",
+ 兴高采烈: "xìng gāo cǎi liè",
+ 无能为力: "wú néng wéi lì",
+ 布鲁塞尔: "bù lǔ sài ěr",
+ 为所欲为: "wéi suǒ yù wéi",
+ 克什米尔: "kè shí mǐ ěr",
+ 没完没了: "méi wán méi liǎo",
+ 不为人知: "bù wéi rén zhī",
+ 结结巴巴: "jiē jiē bā bā",
+ 前仆后继: "qián pū hòu jì",
+ 铺天盖地: "pū tiān gài dì",
+ 直截了当: "zhí jié liǎo dàng",
+ 供不应求: "gōng bú yìng qiú",
+ 御史大夫: "yù shǐ dà fū",
+ 不为瓦全: "bù wéi wǎ quán",
+ 不可收拾: "bù kě shōu shi",
+ 胡作非为: "hú zuò fēi wéi",
+ 分毫不差: "fēn háo bú chà",
+ 模模糊糊: "mó mó hu hū",
+ 不足为奇: "bù zú wéi qí",
+ 悄无声息: "qiǎo wú shēng xī",
+ 了如指掌: "liǎo rú zhǐ zhǎng",
+ 深恶痛绝: "shēn wù tòng jué",
+ 高高兴兴: "gāo gāo xìng xìng",
+ 唉声叹气: "āi shēng tàn qì",
+ 汉藏语系: "hàn zàng yǔ xì",
+ 处心积虑: "chǔ xīn jī lǜ",
+ 泣不成声: "qì bù chéng shēng",
+ 半夜三更: "bàn yè sān gēng",
+ 失魂落魄: "shī hún luò pò",
+ 二十八宿: "èr shí bā xiù",
+ 转来转去: "zhuàn lái zhuàn qù",
+ 数以万计: "shǔ yǐ wàn jì",
+ 相依为命: "xiāng yī wéi mìng",
+ 恋恋不舍: "liàn liàn bù shě",
+ 屈指可数: "qū zhǐ kě shǔ",
+ 神出鬼没: "shén chū guǐ mò",
+ 结结实实: "jiē jiē shí shí",
+ 有的放矢: "yǒu dì fàng shǐ",
+ 叽哩咕噜: "jī lǐ gū lū",
+ 调兵遣将: "diào bīng qiǎn jiàng",
+ 载歌载舞: "zài gē zài wǔ",
+ 转危为安: "zhuǎn wēi wéi ān",
+ 踏踏实实: "tā tā shi shí",
+ 桑给巴尔: "sāng jǐ bā ěr",
+ 装模作样: "zhuāng mú zuò yàng",
+ 见义勇为: "jiàn yì yǒng wéi",
+ 相差无几: "xiāng chā wú jǐ",
+ 叹为观止: "tàn wéi guān zhǐ",
+ 闷闷不乐: "mèn mèn bú lè",
+ 喜怒哀乐: "xǐ nù āi lè",
+ 鲜为人知: "xiǎn wéi rén zhī",
+ 张牙舞爪: "zhāng yá wǔ zhǎo",
+ 为非作歹: "wéi fēi zuò dǎi",
+ 含糊其辞: "hán hú qí cí",
+ 疲于奔命: "pí yú bēn mìng",
+ 勉为其难: "miǎn wéi qí nán",
+ 依依不舍: "yī yī bù shě",
+ 顶头上司: "dǐng tóu shàng si",
+ 不着边际: "bù zhuó biān jì",
+ 大模大样: "dà mú dà yàng",
+ 寻欢作乐: "xún huān zuò lè",
+ 一走了之: "yì zǒu liǎo zhī",
+ 字里行间: "zì lǐ háng jiān",
+ 含含糊糊: "hán hán hu hū",
+ 恰如其分: "qià rú qí fèn",
+ 破涕为笑: "pò tì wéi xiào",
+ 深更半夜: "shēn gēng bàn yè",
+ 千差万别: "qiān chā wàn bié",
+ 数不胜数: "shǔ bú shèng shǔ",
+ 据为己有: "jù wéi jǐ yǒu",
+ 天旋地转: "tiān xuán dì zhuàn",
+ 养尊处优: "yǎng zūn chǔ yōu",
+ 玻璃纤维: "bō li xiān wéi",
+ 吵吵闹闹: "chāo chao nào nào",
+ 晕头转向: "yūn tóu zhuàn xiàng",
+ 土生土长: "tǔ shēng tǔ zhǎng",
+ 宁死不屈: "nìng sǐ bù qū",
+ 不省人事: "bù xǐng rén shì",
+ 尽力而为: "jìn lì ér wéi",
+ 精明强干: "jīng míng qiáng gàn",
+ 唠唠叨叨: "láo lao dāo dāo",
+ 叽叽喳喳: "jī ji zhā zhā",
+ 功不可没: "gōng bù kě mò",
+ 锲而不舍: "qiè ér bù shě",
+ 排忧解难: "pái yōu jiě nàn",
+ 稀里糊涂: "xī li hú tú",
+ 各有所长: "gè yǒu suǒ cháng",
+ 的的确确: "dí dí què què",
+ 哄堂大笑: "hōng táng dà xiào",
+ 听而不闻: "tīng ér bù wén",
+ 刀耕火种: "dāo gēng huǒ zhòng",
+ 内分泌腺: "nèi fèn mì xiàn",
+ 化险为夷: "huà xiǎn wéi yí",
+ 百发百中: "bǎi fā bǎi zhòng",
+ 重见天日: "chóng jiàn tiān rì",
+ 反败为胜: "fǎn bài wéi shèng",
+ 一了百了: "yì liǎo bǎi liǎo",
+ 大大咧咧: "dà da liē liē",
+ 心急火燎: "xīn jí huǒ liǎo",
+ 粗心大意: "cū xīn dà yi",
+ 鸡皮疙瘩: "jī pí gē da",
+ 夷为平地: "yí wéi píng dì",
+ 日积月累: "rì jī yuè lěi",
+ 设身处地: "shè shēn chǔ dì",
+ 投其所好: "tóu qí suǒ hào",
+ 间不容发: "jiān bù róng fà",
+ 人满为患: "rén mǎn wéi huàn",
+ 穷追不舍: "qióng zhuī bù shě",
+ 为时已晚: "wéi shí yǐ wǎn",
+ 如数家珍: "rú shǔ jiā zhēn",
+ 心里有数: "xīn lǐ yǒu shù",
+ 以牙还牙: "yǐ yá huán yá",
+ 神不守舍: "shén bù shǒu shě",
+ 孟什维克: "mèng shí wéi kè",
+ 各自为战: "gè zì wéi zhàn",
+ 怨声载道: "yuàn shēng zài dào",
+ 救苦救难: "jiù kǔ jiù nàn",
+ 好好先生: "hǎo hǎo xiān sheng",
+ 怪模怪样: "guài mú guài yàng",
+ 抛头露面: "pāo tóu lù miàn",
+ 游手好闲: "yóu shǒu hào xián",
+ 无所不为: "wú suǒ bù wéi",
+ 调虎离山: "diào hǔ lí shān",
+ 步步为营: "bù bù wéi yíng",
+ 好大喜功: "hào dà xǐ gōng",
+ 众矢之的: "zhòng shǐ zhī dì",
+ 长生不死: "cháng shēng bù sǐ",
+ 蔚为壮观: "wèi wéi zhuàng guān",
+ 不可胜数: "bù kě shèng shǔ",
+ 鬼使神差: "guǐ shǐ shén chāi",
+ 洁身自好: "jié shēn zì hào",
+ 敢作敢为: "gǎn zuò gǎn wéi",
+ 茅塞顿开: "máo sè dùn kāi",
+ 走马换将: "zǒu mǎ huàn jiàng",
+ 为时过早: "wéi shí guò zǎo",
+ 为人师表: "wéi rén shī biǎo",
+ 阴差阳错: "yīn chā yáng cuò",
+ 油腔滑调: "yóu qiāng huá diào",
+ 重蹈覆辙: "chóng dǎo fù zhé",
+ 骂骂咧咧: "mà ma liē liē",
+ 絮絮叨叨: "xù xù dāo dāo",
+ 如履薄冰: "rú lǚ bó bīng",
+ 损兵折将: "sǔn bīng zhé jiàng",
+ 拐弯抹角: "guǎi wān mò jiǎo",
+ 像模像样: "xiàng mú xiàng yàng",
+ 供过于求: "gōng guò yú qiú",
+ 开花结果: "kāi huā jiē guǒ",
+ 仔仔细细: "zǐ zǐ xì xì",
+ 川藏公路: "chuān zàng gōng lù",
+ 河北梆子: "hé běi bāng zi",
+ 长年累月: "cháng nián lěi yuè",
+ 正儿八经: "zhèng er bā jīng",
+ 不识抬举: "bù shí tái ju",
+ 重振旗鼓: "chóng zhèn qí gǔ",
+ 气息奄奄: "qì xī yān yān",
+ 紧追不舍: "jǐn zhuī bù shě",
+ 服服帖帖: "fú fu tiē tiē",
+ 强词夺理: "qiǎng cí duó lǐ",
+ 噼里啪啦: "pī li pā lā",
+ 人才济济: "rén cái jǐ jǐ",
+ 发人深省: "fā rén shēn xǐng",
+ 不足为凭: "bù zú wéi píng",
+ 为富不仁: "wéi fù bù rén",
+ 连篇累牍: "lián piān lěi dú",
+ 呼天抢地: "hū tiān qiāng dì",
+ 落落大方: "luò luò dà fāng",
+ 自吹自擂: "zì chuī zì léi",
+ 乐善好施: "lè shàn hào shī",
+ 以攻为守: "yǐ gōng wéi shǒu",
+ 磨磨蹭蹭: "mó mó cèng cèng",
+ 削铁如泥: "xuē tiě rú ní",
+ 助纣为虐: "zhù zhòu wéi nüè",
+ 以退为进: "yǐ tuì wéi jìn",
+ 嘁嘁喳喳: "qī qī chā chā",
+ 枪林弹雨: "qiāng lín dàn yǔ",
+ 令人发指: "lìng rén fà zhǐ",
+ 转败为胜: "zhuǎn bài wéi shèng",
+ 转弯抹角: "zhuǎn wān mò jiǎo",
+ 在劫难逃: "zài jié nán táo",
+ 正当防卫: "zhèng dàng fáng wèi",
+ 不足为怪: "bù zú wéi guài",
+ 难兄难弟: "nàn xiōng nàn dì",
+ 咿咿呀呀: "yī yī yā yā",
+ 弹尽粮绝: "dàn jìn liáng jué",
+ 阿谀奉承: "ē yú fèng chéng",
+ 稀里哗啦: "xī li huā lā",
+ 返老还童: "fǎn lǎo huán tóng",
+ 好高骛远: "hào gāo wù yuǎn",
+ 鹿死谁手: "lù sǐ shéi shǒu",
+ 差强人意: "chā qiáng rén yì",
+ 大吹大擂: "dà chuī dà léi",
+ 成家立业: "chéng jiā lì yè",
+ 自怨自艾: "zì yuàn zì yì",
+ 负债累累: "fù zhài lěi lěi",
+ 古为今用: "gǔ wéi jīn yòng",
+ 入土为安: "rù tǔ wéi ān",
+ 下不为例: "xià bù wéi lì",
+ 一哄而上: "yì hōng ér shàng",
+ 没头苍蝇: "méi tóu cāng ying",
+ 天差地远: "tiān chā dì yuǎn",
+ 风卷残云: "fēng juǎn cán yún",
+ 多灾多难: "duō zāi duō nàn",
+ 乳臭未干: "rǔ xiù wèi gān",
+ 行家里手: "háng jiā lǐ shǒu",
+ 狼狈为奸: "láng bèi wéi jiān",
+ 处变不惊: "chǔ biàn bù jīng",
+ 一唱一和: "yí chàng yí hè",
+ 一念之差: "yí niàn zhī chā",
+ 金蝉脱壳: "jīn chán tuō qiào",
+ 滴滴答答: "dī dī dā dā",
+ 硕果累累: "shuò guǒ léi léi",
+ 好整以暇: "hào zhěng yǐ xiá",
+ 红得发紫: "hóng de fā zǐ",
+ 传为美谈: "chuán wéi měi tán",
+ 富商大贾: "fù shāng dà gǔ",
+ 四海为家: "sì hǎi wéi jiā",
+ 了若指掌: "liǎo ruò zhǐ zhǎng",
+ 大有可为: "dà yǒu kě wéi",
+ 出头露面: "chū tóu lù miàn",
+ 鼓鼓囊囊: "gǔ gu nāng nāng",
+ 窗明几净: "chuāng míng jī jìng",
+ 泰然处之: "tài rán chǔ zhī",
+ 怒发冲冠: "nù fà chōng guān",
+ 有机玻璃: "yǒu jī bō li",
+ 骨头架子: "gǔ tou jià zi",
+ 义薄云天: "yì bó yún tiān",
+ 一丁点儿: "yī dīng diǎn er",
+ 时来运转: "shí lái yùn zhuǎn",
+ 陈词滥调: "chén cí làn diào",
+ 化整为零: "huà zhěng wéi líng",
+ 火烧火燎: "huǒ shāo huǒ liǎo",
+ 干脆利索: "gàn cuì lì suǒ",
+ 吊儿郎当: "diào er láng dāng",
+ 广种薄收: "guǎng zhòng bó shōu",
+ 种瓜得瓜: "zhòng guā dé guā",
+ 种豆得豆: "zhòng dòu dé dòu",
+ 难舍难分: "nán shě nán fēn",
+ 歃血为盟: "shà xuè wéi méng",
+ 奋发有为: "fèn fā yǒu wéi",
+ 阴错阳差: "yīn cuò yáng chā",
+ 东躲西藏: "dōng duǒ xī cáng",
+ 烟熏火燎: "yān xūn huǒ liǎo",
+ 钻牛角尖: "zuān niú jiǎo jiān",
+ 乔装打扮: "qiáo zhuāng dǎ bàn",
+ 改弦更张: "gǎi xián gēng zhāng",
+ 河南梆子: "hé nán bāng zi",
+ 好吃懒做: "hào chī lǎn zuò",
+ 何乐不为: "hé lè bù wéi",
+ 大出风头: "dà chū fēng tóu",
+ 攻城掠地: "gōng chéng lüè dì",
+ 漂漂亮亮: "piào piào liang liang",
+ 折衷主义: "zhé zhōng zhǔ yì",
+ 大马哈鱼: "dà mǎ hǎ yú",
+ 绿树成荫: "lǜ shù chéng yīn",
+ 率先垂范: "shuài xiān chuí fàn",
+ 家长里短: "jiā cháng lǐ duǎn",
+ 宽大为怀: "kuān dà wéi huái",
+ 左膀右臂: "zuǒ bǎng yòu bì",
+ 一笑了之: "yí xiào liǎo zhī",
+ 天下为公: "tiān xià wéi gōng",
+ 还我河山: "huán wǒ hé shān",
+ 何足为奇: "hé zú wéi qí",
+ 好自为之: "hǎo zì wéi zhī",
+ 风姿绰约: "fēng zī chuò yuē",
+ 大雨滂沱: "dà yǔ pāng tuó",
+ 传为佳话: "chuán wéi jiā huà",
+ 吃里扒外: "chī lǐ pá wài",
+ 重操旧业: "chóng cāo jiù yè",
+ 小家子气: "xiǎo jiā zi qì",
+ 少不更事: "shào bù gēng shì",
+ 难分难舍: "nán fēn nán shě",
+ 添砖加瓦: "tiān zhuān jiā wǎ",
+ 是非分明: "shì fēi fēn míng",
+ 舍我其谁: "shě wǒ qí shuí",
+ 偏听偏信: "piān tīng piān xìn",
+ 量入为出: "liàng rù wéi chū",
+ 降龙伏虎: "xiáng lóng fú hǔ",
+ 钢化玻璃: "gāng huà bō li",
+ 正中下怀: "zhèng zhòng xià huái",
+ 以身许国: "yǐ shēn xǔ guó",
+ 一语中的: "yì yǔ zhòng dì",
+ 丧魂落魄: "sàng hún luò pò",
+ 三座大山: "sān zuò dà shān",
+ 济济一堂: "jǐ jǐ yì táng",
+ 好事之徒: "hào shì zhī tú",
+ 干净利索: "gàn jìng lì suǒ",
+ 出将入相: "chū jiàng rù xiàng",
+ 袅袅娜娜: "niǎo niǎo nuó nuó",
+ 狐狸尾巴: "hú li wěi ba",
+ 好逸恶劳: "hào yì wù láo",
+ 大而无当: "dà ér wú dàng",
+ 打马虎眼: "dǎ mǎ hu yǎn",
+ 板上钉钉: "bǎn shàng dìng dīng",
+ 吆五喝六: "yāo wǔ hè liù",
+ 虾兵蟹将: "xiā bīng xiè jiàng",
+ 水调歌头: "shuǐ diào gē tóu",
+ 数典忘祖: "shǔ diǎn wàng zǔ",
+ 人事不省: "rén shì bù xǐng",
+ 曲高和寡: "qǔ gāo hè guǎ",
+ 屡教不改: "lǚ jiào bù gǎi",
+ 互为因果: "hù wéi yīn guǒ",
+ 互为表里: "hù wéi biǎo lǐ",
+ 厚此薄彼: "hòu cǐ bó bǐ",
+ 过关斩将: "guò guān zhǎn jiàng",
+ 疙疙瘩瘩: "gē ge dā dā",
+ 大腹便便: "dà fù pián pián",
+ 走为上策: "zǒu wéi shàng cè",
+ 冤家对头: "yuān jia duì tóu",
+ 有隙可乘: "yǒu xì kě chèng",
+ 一鳞半爪: "yì lín bàn zhǎo",
+ 片言只语: "piàn yán zhǐ yǔ",
+ 开花结实: "kāi huā jié shí",
+ 经年累月: "jīng nián lěi yuè",
+ 含糊其词: "hán hú qí cí",
+ 寡廉鲜耻: "guǎ lián xiǎn chǐ",
+ 成年累月: "chéng nián lěi yuè",
+ 不徇私情: "bú xùn sī qíng",
+ 不当人子: "bù dāng rén zǐ",
+ 膀大腰圆: "bǎng dà yāo yuán",
+ 指腹为婚: "zhǐ fù wéi hūn",
+ 这么点儿: "zhè me diǎn er",
+ 意兴索然: "yì xīng suǒ rán",
+ 绣花枕头: "xiù huā zhěn tou",
+ 无的放矢: "wú dì fàng shǐ",
+ 望闻问切: "wàng wén wèn qiè",
+ 舍己为人: "shě jǐ wèi rén",
+ 穷年累月: "qióng nián lěi yuè",
+ 排难解纷: "pái nàn jiě fēn",
+ 处之泰然: "chǔ zhī tài rán",
+ 指鹿为马: "zhǐ lù wéi mǎ",
+ 危如累卵: "wēi rú lěi luǎn",
+ 天兵天将: "tiān bīng tiān jiàng",
+ 舍近求远: "shě jìn qiú yuǎn",
+ 南腔北调: "nán qiāng běi diào",
+ 苦中作乐: "kǔ zhōng zuò lè",
+ 厚积薄发: "hòu jī bó fā",
+ 臭味相投: "xiù wèi xiāng tóu",
+ 长幼有序: "zhǎng yòu yǒu xù",
+ 逼良为娼: "bī liáng wéi chāng",
+ 悲悲切切: "bēi bēi qiè qiē",
+ 败军之将: "bài jūn zhī jiàng",
+ 欺行霸市: "qī háng bà shì",
+ 削足适履: "xuē zú shì lǚ",
+ 先睹为快: "xiān dǔ wéi kuài",
+ 啼饥号寒: "tí jī háo hán",
+ 疏不间亲: "shū bú jiàn qīn",
+ 神差鬼使: "shén chāi guǐ shǐ",
+ 敲敲打打: "qiāo qiāo dǎ dǎ",
+ 平铺直叙: "píng pū zhí xù",
+ 没头没尾: "méi tóu mò wěi",
+ 寥寥可数: "liáo liáo kě shǔ",
+ 哼哈二将: "hēng hā èr jiàng",
+ 鹤发童颜: "hè fà tóng yán",
+ 各奔前程: "gè bèn qián chéng",
+ 弹无虚发: "dàn wú xū fā",
+ 大人先生: "dà rén xiān sheng",
+ 与民更始: "yǔ mín gēng shǐ",
+ 树碑立传: "shù bēi lì zhuàn",
+ 是非得失: "shì fēi dé shī",
+ 实逼处此: "shí bī chǔ cǐ",
+ 塞翁失马: "sài wēng shī mǎ",
+ 日薄西山: "rì bó xī shān",
+ 切身体会: "qiè shēn tǐ huì",
+ 片言只字: "piàn yán zhǐ zì",
+ 跑马卖解: "pǎo mǎ mài xiè",
+ 宁折不弯: "nìng zhé bù wān",
+ 零零散散: "líng líng sǎn sǎn",
+ 量体裁衣: "liàng tǐ cái yī",
+ 连中三元: "lián zhòng sān yuán",
+ 礼崩乐坏: "lǐ bēng yuè huài",
+ 不为已甚: "bù wéi yǐ shèn",
+ 转悲为喜: "zhuǎn bēi wéi xǐ",
+ 以眼还眼: "yǐ yǎn huán yǎn",
+ 蔚为大观: "wèi wéi dà guān",
+ 未为不可: "wèi wéi bù kě",
+ 童颜鹤发: "tóng yán hè fà",
+ 朋比为奸: "péng bǐ wéi jiān",
+ 莫此为甚: "mò cǐ wéi shèn",
+ 夹枪带棒: "jiā qiāng dài bàng",
+ 富商巨贾: "fù shāng jù jiǎ",
+ 淡然处之: "dàn rán chǔ zhī",
+ 箪食壶浆: "dān shí hú jiāng",
+ 创巨痛深: "chuāng jù tòng shēn",
+ 草长莺飞: "cǎo zhǎng yīng fēi",
+ 坐视不救: "zuò shī bú jiù",
+ 以己度人: "yǐ jǐ duó rén",
+ 随行就市: "suí háng jiù shì",
+ 文以载道: "wén yǐ zài dào",
+ 文不对题: "wén bú duì tí",
+ 铁板钉钉: "tiě bǎn dìng dīng",
+ 身体发肤: "shēn tǐ fà fū",
+ 缺吃少穿: "quē chī shǎo chuān",
+ 目无尊长: "mù wú zūn zhǎng",
+ 吉人天相: "jí rén tiān xiàng",
+ 毁家纾难: "huǐ jiā shū nàn",
+ 钢筋铁骨: "gāng jīn tiě gǔ",
+ 丢卒保车: "diū zú bǎo jū",
+ 丢三落四: "diū sān là sì",
+ 闭目塞听: "bì mù sè tīng",
+ 削尖脑袋: "xuē jiān nǎo dài",
+ 为非作恶: "wéi fēi zuò è",
+ 人才难得: "rén cái nán dé",
+ 情非得已: "qíng fēi dé yǐ",
+ 切中要害: "qiè zhòng yào hài",
+ 火急火燎: "huǒ jí huǒ liǎo",
+ 画地为牢: "huà dì wéi láo",
+ 好酒贪杯: "hào jiǔ tān bēi",
+ 长歌当哭: "cháng gē dàng kū",
+ 载沉载浮: "zài chén zài fú",
+ 遇难呈祥: "yù nàn chéng xiáng",
+ 榆木疙瘩: "yú mù gē da",
+ 以邻为壑: "yǐ lín wéi hè",
+ 洋为中用: "yáng wéi zhōng yòng",
+ 言为心声: "yán wéi xīn shēng",
+ 言必有中: "yán bì yǒu zhòng",
+ 图穷匕见: "tú qióng bǐ xiàn",
+ 滂沱大雨: "páng tuó dà yǔ",
+ 目不暇给: "mù bù xiá jǐ",
+ 量才录用: "liàng cái lù yòng",
+ 教学相长: "jiào xué xiāng zhǎng",
+ 悔不当初: "huǐ bù dāng chū",
+ 呼幺喝六: "hū yāo hè liù",
+ 不足为训: "bù zú wéi xùn",
+ 不拘形迹: "bù jū xíng jī",
+ 傍若无人: "páng ruò wú rén",
+ 罪责难逃: "zuì zé nán táo",
+ 自我吹嘘: "zì wǒ chuī xū",
+ 转祸为福: "zhuǎn huò wéi fú",
+ 勇冠三军: "yǒng guàn sān jūn",
+ 易地而处: "yì dì ér chǔ",
+ 卸磨杀驴: "xiè mò shā lǘ",
+ 玩儿不转: "wán ér bú zhuàn",
+ 天道好还: "tiān dào hǎo huán",
+ 身单力薄: "shēn dān lì bó",
+ 撒豆成兵: "sǎ dòu chéng bīng",
+ 片纸只字: "piàn zhǐ zhī zì",
+ 宁缺毋滥: "nìng quē wú làn",
+ 没没无闻: "mò mò wú wén",
+ 量力而为: "liàng lì ér wéi",
+ 历历可数: "lì lì kě shǔ",
+ 口碑载道: "kǒu bēi zài dào",
+ 君子好逑: "jūn zǐ hǎo qiú",
+ 好为人师: "hào wéi rén shī",
+ 豪商巨贾: "háo shāng jù jiǎ",
+ 各有所好: "gè yǒu suǒ hào",
+ 度德量力: "duó dé liàng lì",
+ 指天为誓: "zhǐ tiān wéi shì",
+ 逸兴遄飞: "yì xìng chuán fēi",
+ 心宽体胖: "xīn kuān tǐ pán",
+ 为德不卒: "wéi dé bù zú",
+ 天下为家: "tiān xià wéi jiā",
+ 视为畏途: "shì wéi wèi tú",
+ 三灾八难: "sān zāi bā nàn",
+ 沐猴而冠: "mù hóu ér guàn",
+ 哩哩啦啦: "lī li lā lā",
+ 见缝就钻: "jiàn fèng jiù zuān",
+ 夹层玻璃: "jiā céng bō li",
+ 急公好义: "jí gōng hào yì",
+ 积年累月: "jī nián lěi yuè",
+ 划地为牢: "huá dì wéi láo",
+ 更名改姓: "gēng míng gǎi xìng",
+ 奉为圭臬: "fèng wéi guī niè",
+ 多难兴邦: "duō nàn xīng bāng",
+ 不破不立: "bú pò bú lì",
+ 坐地自划: "zuò dì zì huá",
+ 坐不重席: "zuò bù chóng xí",
+ 坐不窥堂: "zuò bù kuī táng",
+ 作嫁衣裳: "zuò jià yī shang",
+ 左枝右梧: "zuǒ zhī yòu wú",
+ 左宜右有: "zuǒ yí yòu yǒu",
+ 钻头觅缝: "zuān tóu mì fèng",
+ 钻天打洞: "zuān tiān dǎ dòng",
+ 钻皮出羽: "zuān pí chū yǔ",
+ 钻火得冰: "zuān huǒ dé bīng",
+ 钻洞觅缝: "zuàn dòng mì féng",
+ 钻冰求火: "zuān bīng qiú huǒ",
+ 子为父隐: "zǐ wéi fù yǐn",
+ 擢发难数: "zhuó fà nán shǔ",
+ 着人先鞭: "zhuó rén xiān biān",
+ 斫雕为朴: "zhuó diāo wéi pǔ",
+ 锥处囊中: "zhuī chǔ náng zhōng",
+ 椎心饮泣: "chuí xīn yǐn qì",
+ 椎心泣血: "chuí xīn qì xuè",
+ 椎牛飨士: "chuí niú xiǎng shì",
+ 椎牛歃血: "chuí niú shà xuè",
+ 椎牛发冢: "chuí niú fà zhǒng",
+ 椎埋屠狗: "chuí mái tú gǒu",
+ 椎埋狗窃: "chuí mái gǒu qiè",
+ 壮发冲冠: "zhuàng fā chōng guàn",
+ 庄严宝相: "zhuāng yán bǎo xiàng",
+ 转愁为喜: "zhuǎn chóu wéi xǐ",
+ 转嗔为喜: "zhuǎn chēn wéi xǐ",
+ 拽巷啰街: "zhuài xiàng luó jiē",
+ 拽耙扶犁: "zhuāi pá fú lí",
+ 拽布拖麻: "zhuài bù tuō má",
+ 箸长碗短: "zhù cháng wǎn duǎn",
+ 铸剑为犁: "zhù jiàn wéi lí",
+ 杼柚其空: "zhù yòu qí kōng",
+ 杼柚空虚: "zhù yòu kōng xū",
+ 助天为虐: "zhù tiān wéi nüè",
+ 属垣有耳: "zhǔ yuán yǒu ěr",
+ 属毛离里: "zhǔ máo lí lǐ",
+ 属辞比事: "zhǔ cí bǐ shì",
+ 逐物不还: "zhú wù bù huán",
+ 铢量寸度: "zhū liáng cùn duó",
+ 铢两悉称: "zhū liǎng xī chèn",
+ 侏儒观戏: "zhū rú guān xì",
+ 朱轓皁盖: "zhū fān zào gài",
+ 昼度夜思: "zhòu duó yè sī",
+ 诪张为幻: "zhōu zhāng wéi huàn",
+ 重明继焰: "chóng míng jì yàn",
+ 众啄同音: "zhòng zhuó tóng yīn",
+ 众毛攒裘: "zhòng máo cuán qiú",
+ 众好众恶: "zhòng hào zhòng wù",
+ 擿埴索涂: "zhāi zhí suǒ tú",
+ 稚齿婑媠: "zhì chǐ wǒ tuó",
+ 至当不易: "zhì dàng bú yì",
+ 指皂为白: "zhǐ zào wéi bái",
+ 指雁为羹: "zhǐ yàn wéi gēng",
+ 指树为姓: "zhǐ shù wéi xìng",
+ 指山说磨: "zhǐ shān shuō mò",
+ 止戈为武: "zhǐ gē wéi wǔ",
+ 枝干相持: "zhī gàn xiāng chí",
+ 枝大于本: "zh dà yú běn",
+ 支吾其词: "zhī wú qí cí",
+ 正身率下: "zhèng shēn shuài xià",
+ 正冠李下: "zhèng guàn lǐ xià",
+ 整冠纳履: "zhěng guān nà lǚ",
+ 整躬率物: "zhěng gōng shuài wù",
+ 整顿干坤: "zhěng dùn gàn kūn",
+ 针头削铁: "zhēn tóu xuē tiě",
+ 贞松劲柏: "zhēn sōng jìng bǎi",
+ 赭衣塞路: "zhě yī sè lù",
+ 折箭为誓: "shé jiàn wéi shì",
+ 折而族之: "zhé ér zú zhī",
+ 昭德塞违: "zhāo dé sè wéi",
+ 章句小儒: "zhāng jù xiǎo rú",
+ 湛恩汪濊: "zhàn ēn wāng huì",
+ 占风望气: "zhān fēng wàng qì",
+ 斩将搴旗: "zhǎn jiàng qiān qí",
+ 曾母投杼: "zēng mǔ tóu zhù",
+ 曾参杀人: "zēng shēn shā rén",
+ 造谣中伤: "zào yáo zhòng shāng",
+ 早占勿药: "zǎo zhān wù yào",
+ 凿龟数策: "záo guī shǔ cè",
+ 攒三聚五: "cuán sān jù wǔ",
+ 攒眉蹙额: "cuán mei cù é",
+ 攒零合整: "cuán líng hé zhěng",
+ 攒锋聚镝: "cuán fēng jù dí",
+ 载笑载言: "zài xiào zài yán",
+ 载酒问字: "zài jiǔ wèn zì",
+ 殒身不恤: "yǔn shēn bú xù",
+ 云舒霞卷: "yún shū xiá juǎn",
+ 月中折桂: "yuè zhōng shé guì",
+ 月落参横: "yuè luò shēn héng",
+ 鬻驽窃价: "yù nú qiè jià",
+ 鬻鸡为凤: "yù jī wéi fèng",
+ 遇难成祥: "yù nàn chéng xiáng",
+ 郁郁累累: "yù yù lěi lěi",
+ 玉卮无当: "yù zhī wú dàng",
+ 语笑喧阗: "yǔ xiào xuān tián",
+ 与世沉浮: "yǔ shì chén fú",
+ 与时消息: "yǔ shí xiāo xi",
+ 逾墙钻隙: "yú qiáng zuān xì",
+ 渔夺侵牟: "yú duó qīn móu",
+ 杅穿皮蠹: "yú chuān pí dù",
+ 余勇可贾: "yú yǒng kě gǔ",
+ 予智予雄: "yú zhì yú xióng",
+ 予取予求: "yú qǔ yú qiú",
+ 于家为国: "yú jiā wéi guó",
+ 有借无还: "yǒu jiè wú huán",
+ 有加无已: "yǒu jiā wú yǐ",
+ 有国难投: "yǒu guó nán tóu",
+ 游必有方: "yóu bì yǒu fāng",
+ 油干灯尽: "yóu gàn dēng jìn",
+ 尤云殢雨: "yóu yún tì yǔ",
+ 庸中皦皦: "yōng zhōng jiǎo jiǎo",
+ 郢书燕说: "yǐng shū yān shuō",
+ 营蝇斐锦: "yíng yíng fēi jǐn",
+ 鹰心雁爪: "yīng xīn yàn zhǎo",
+ 莺吟燕儛: "yīng yín yàn wǔ",
+ 应天顺时: "yīng tiān shùn shí",
+ 印累绶若: "yìn léi shòu ruò",
+ 隐占身体: "yǐn zhàn shēn tǐ",
+ 饮犊上流: "yìn dú shàng liú",
+ 引绳切墨: "yǐn shéng qiē mò",
+ 龈齿弹舌: "yín chǐ dàn shé",
+ 因缘为市: "yīn yuán wéi shì",
+ 因树为屋: "yīn shù wéi wū",
+ 溢美溢恶: "yì měi yì wù",
+ 抑塞磊落: "yì sè lěi luò",
+ 倚闾望切: "yǐ lǘ wàng qiē",
+ 以意为之: "yǐ yì wéi zhī",
+ 以言为讳: "yǐ yán wéi huì",
+ 以疏间亲: "yǐ shū jiàn qīn",
+ 以水济水: "yǐ shuǐ jǐ shuǐ",
+ 以书为御: "yǐ shū wéi yù",
+ 以守为攻: "yǐ shǒu wéi gōng",
+ 以升量石: "yǐ shēng liáng dàn",
+ 以慎为键: "yǐ shèn wéi jiàn",
+ 以筌为鱼: "yǐ quán wéi yú",
+ 以利累形: "yǐ lì lěi xíng",
+ 以毁为罚: "yǐ huǐ wéi fá",
+ 以黑为白: "yǐ hēi wéi bái",
+ 以规为瑱: "yǐ guī wéi tiàn",
+ 以古为鉴: "yǐ gǔ wéi jiàn",
+ 以宫笑角: "yǐ gōng xiào jué",
+ 以法为教: "yǐ fǎ wéi jiào",
+ 以大恶细: "yǐ dà wù xì",
+ 遗世忘累: "yí shì wàng lěi",
+ 遗寝载怀: "yí qǐn zài huái",
+ 移的就箭: "yí dì jiù jiàn",
+ 依头缕当: "yī tóu lǚ dàng",
+ 衣租食税: "yì zū shí shuì",
+ 衣轻乘肥: "yì qīng chéng féi",
+ 衣裳之会: "yī shang zhī huì",
+ 衣单食薄: "yī dān shí bó",
+ 一还一报: "yì huán yí bào",
+ 叶公好龙: "yè gōng hào lóng",
+ 野调无腔: "yě diào wú qiāng",
+ 瑶池女使: "yáo chí nǚ shǐ",
+ 幺麽小丑: "yāo mó xiǎo chǒu",
+ 养精畜锐: "yǎng jīng xù ruì",
+ 卬首信眉: "áng shǒu shēn méi",
+ 洋洋纚纚: "yáng yáng sǎ sǎ",
+ 羊羔美酒: "yáng gāo měi jiǔ",
+ 扬风扢雅: "yáng fēng jié yǎ",
+ 燕昭市骏: "yān zhāo shì jùn",
+ 燕昭好马: "yān zhāo hǎo mǎ",
+ 燕石妄珍: "yān shí wàng zhēn",
+ 燕骏千金: "yān jùn qiān jīn",
+ 燕金募秀: "yān jīn mù xiù",
+ 燕驾越毂: "yān jià yuè gǔ",
+ 燕歌赵舞: "yān gē zhào wǔ",
+ 燕岱之石: "yān dài zhī shí",
+ 燕处危巢: "yàn chǔ wēi cháo",
+ 掞藻飞声: "shàn zǎo fēi shēng",
+ 偃革为轩: "yǎn gé wéi xuān",
+ 妍蚩好恶: "yán chī hǎo è",
+ 压良为贱: "yā liáng wéi jiàn",
+ 搀行夺市: "chān háng duó shì",
+ 泣数行下: "qì shù háng xià",
+ 当行出色: "dāng háng chū sè",
+ 秀出班行: "xiù chū bān háng",
+ 儿女成行: "ér nǚ chéng háng",
+ 大行大市: "dà háng dà shì",
+ 寻行数墨: "xún háng shǔ mò",
+ 埙篪相和: "xūn chí xiāng hè",
+ 血债累累: "xuè zhài lěi lěi",
+ 炫玉贾石: "xuàn yù gǔ shí",
+ 炫石为玉: "xuàn shí wéi yù",
+ 悬石程书: "xuán dàn chéng shū",
+ 悬狟素飡: "xuán huán sù cān",
+ 悬龟系鱼: "xuán guī xì yú",
+ 揎拳捋袖: "xuān quán luō xiù",
+ 轩鹤冠猴: "xuān hè guàn hóu",
+ 畜妻养子: "xù qī yǎng zǐ",
+ 羞人答答: "xiū rén dā dā",
+ 修鳞养爪: "xiū lín yǎng zhǎo",
+ 熊据虎跱: "xióng jù hǔ zhì",
+ 兄死弟及: "xiōng sǐ dì jí",
+ 腥闻在上: "xīng wén zài shàng",
+ 兴文匽武: "xīng wén yǎn wǔ",
+ 兴观群怨: "xìng guān qún yuàn",
+ 兴高彩烈: "xìng gāo cǎi liè",
+ 心手相应: "xīn shǒu xiāng yìng",
+ 心口相应: "xīn kǒu xiāng yīng",
+ 挟势弄权: "xié shì nòng quán",
+ 胁肩累足: "xié jiān lěi zú",
+ 校短量长: "jiào duǎn liáng cháng",
+ 小眼薄皮: "xiǎo yǎn bó pí",
+ 硝云弹雨: "xiāo yún dàn yǔ",
+ 鸮鸣鼠暴: "xiāo míng shǔ bào",
+ 削株掘根: "xuē zhū jué gēn",
+ 削铁无声: "xuē tiě wú shēng",
+ 削职为民: "xuē zhí wéi mín",
+ 削木为吏: "xuē mù wéi lì",
+ 想望风褱: "xiǎng wàng fēng huái",
+ 香培玉琢: "xiang pei yu zhuó",
+ 相鼠有皮: "xiàng shǔ yǒu pí",
+ 相时而动: "xiàng shí ér dòng",
+ 相切相磋: "xiāng qiē xiāng cuō",
+ 相女配夫: "xiàng nǚ pèi fū",
+ 相门有相: "xiàng mén yǒu xiàng",
+ 挦章撦句: "xián zhāng chě jù",
+ 先我着鞭: "xiān wǒ zhuó biān",
+ 习焉不察: "xí yān bù chá",
+ 歙漆阿胶: "shè qī ē jiāo",
+ 晰毛辨发: "xī máo biàn fà",
+ 悉索薄赋: "xī suǒ bó fù",
+ 雾鳞云爪: "wù lín yún zhǎo",
+ 物稀为贵: "wù xī wéi guì",
+ 碔砆混玉: "wǔ fū hùn yù",
+ 武断专横: "wǔ duàn zhuān héng",
+ 五石六鹢: "wǔ shí liù yì",
+ 五色相宣: "wǔ sè xiāng xuān",
+ 五侯七贵: "wǔ hóu qī guì",
+ 五侯蜡烛: "wǔ hòu là zhú",
+ 五羖大夫: "wǔ gǔ dà fū",
+ 吾自有处: "wú zì yǒu chǔ",
+ 无下箸处: "wú xià zhù chǔ",
+ 无伤无臭: "wú shāng wú xiù",
+ 无能为役: "wú néng wéi yì",
+ 无寇暴死: "wú kòu bào sǐ",
+ 无孔不钻: "wú kǒng bú zuàn",
+ 无间可乘: "wú jiān kě chéng",
+ 无间冬夏: "wú jiān dōng xià",
+ 无恶不为: "wú è bù wéi",
+ 无动为大: "wú dòng wéi dà",
+ 诬良为盗: "wū liáng wéi dào",
+ 握拳透爪: "wò quán tòu zhǎo",
+ 文武差事: "wén wǔ chāi shì",
+ 委委佗佗: "wēi wēi tuó tuó",
+ 惟日为岁: "wéi rì wéi suì",
+ 帷薄不修: "wéi bó bù xiū",
+ 为善最乐: "wéi shàn zuì lè",
+ 为山止篑: "wéi shān zhǐ kuì",
+ 为仁不富: "wéi rén bú fù",
+ 为裘为箕: "wéi qiú wéi jī",
+ 为民父母: "wéi mín fù mǔ",
+ 为虺弗摧: "wéi huǐ fú cuī",
+ 为好成歉: "wéi hǎo chéng qiàn",
+ 为鬼为蜮: "wéi guǐ wéi yù",
+ 望风响应: "wàng fēng xiǎng yīng",
+ 望尘僄声: "wàng chén piào shēng",
+ 往渚还汀: "wǎng zhǔ huán tīng",
+ 王贡弹冠: "wáng gòng dàn guàn",
+ 亡国大夫: "wáng guó dà fū",
+ 万贯家私: "wàn guàn jiā sī",
+ 晚食当肉: "wǎn shí dàng ròu",
+ 晚节不保: "wǎn jié bù bǎo",
+ 玩岁愒时: "wán suì kài shí",
+ 蛙蟆胜负: "wā má shèng fù",
+ 吞言咽理: "tūn yán yàn lǐ",
+ 颓垣断堑: "tuí yuán duàn qiàn",
+ 推干就湿: "tuī gàn jiù shī",
+ 剸繁决剧: "tuán fán jué jù",
+ 团头聚面: "tuán tóu jù miàn",
+ 兔丝燕麦: "tù sī yàn mài",
+ 兔头麞脑: "tù tóu zhāng nǎo",
+ 兔葵燕麦: "tù kuí yàn mài",
+ 吐哺握发: "tǔ bǔ wò fà",
+ 投传而去: "tóu zhuàn ér qù",
+ 头没杯案: "tóu mò bēi àn",
+ 头昏脑闷: "tóu hūn nǎo mèn",
+ 头会箕敛: "tóu kuài jī liǎn",
+ 头出头没: "tóu chū tóu mò",
+ 痛自创艾: "tòng zì chuāng yì",
+ 同恶相助: "tóng wù xiāng zhù",
+ 同恶相恤: "tóng wù xiāng xù",
+ 痌瘝在抱: "tōng guān zài bào",
+ 通文调武: "tōng wén diào wǔ",
+ 停留长智: "tíng liú zhǎng zhì",
+ 铁树开华: "tiě shù kāi huā",
+ 条贯部分: "tiáo guàn bù fēn",
+ 挑牙料唇: "tiǎo yá liào chún",
+ 挑么挑六: "tiāo yāo tiāo liù",
+ 挑唇料嘴: "tiǎo chún liào zuǐ",
+ 恬不为意: "tián bù wéi yì",
+ 恬不为怪: "tián bù wéi guài",
+ 天下为笼: "tiān xià wéi lóng",
+ 天台路迷: "tiān tái lù mí",
+ 天年不遂: "tiān nián bú suì",
+ 探囊胠箧: "tàn náng qū qiè",
+ 谭言微中: "tán yán wēi zhòng",
+ 谈言微中: "tán yán wēi zhòng",
+ 狧穅及米: "shì kāng jí mǐ",
+ 随物应机: "suí wù yīng jī",
+ 搜岩采干: "sōu yán cǎi gàn",
+ 宋斤鲁削: "sòng jīn lǔ xuē",
+ 松筠之节: "sōng yún zhī jié",
+ 四亭八当: "sì tíng bā dàng",
+ 四马攒蹄: "sì mǎ cuán tí",
+ 四不拗六: "sì bú niù liù",
+ 思所逐之: "sī suǒ zhú zhī",
+ 丝恩发怨: "sī ēn fà yuàn",
+ 硕望宿德: "shuò wàng xiǔ dé",
+ 铄古切今: "shuò gǔ qiē jīn",
+ 顺风而呼: "shùn fēng ér hū",
+ 顺风吹火: "shùn fēng chuī huǒ",
+ 水中著盐: "shuǐ zhōng zhuó yán",
+ 双柑斗酒: "shuāng gān dǒu jiǔ",
+ 数米而炊: "shǔ mǐ ér chuī",
+ 数米量柴: "shǔ mǐ liáng chái",
+ 数理逻辑: "shù lǐ luó ji",
+ 数黑论黄: "shǔ hēi lùn huáng",
+ 数白论黄: "shǔ bái lùn huáng",
+ 束缊还妇: "shù yūn huán fù",
+ 束蒲为脯: "shù pú wéi pú",
+ 束椽为柱: "shù chuán wéi zhù",
+ 书缺有间: "shū quē yǒu jiàn",
+ 手足重茧: "shǒu zú chóng jiǎn",
+ 手足异处: "shǒu zú yì chǔ",
+ 手脚干净: "shǒu jiǎo gàn jìng",
+ 手不应心: "shǒu bù yīng xīn",
+ 螫手解腕: "shì shǒu jiě wàn",
+ 释知遗形: "shì zhī yí xíng",
+ 适时应务: "shì shí yīng wù",
+ 适情率意: "shì qíng shuài yì",
+ 适当其冲: "shì dāng qí chōng",
+ 视为知己: "shì wéi zhī jǐ",
+ 使羊将狼: "shǐ yáng jiàng láng",
+ 食为民天: "shí wéi mín tiān",
+ 拾掇无遗: "shí duō wú yí",
+ 实与有力: "shí yù yǒu lì",
+ 石英玻璃: "shí yīng bō li",
+ 石室金匮: "shí shì jīn guì",
+ 什袭珍藏: "shí xí zhēn cáng",
+ 什伍东西: "shí wǔ dōng xī",
+ 什围伍攻: "shí wéi wǔ gōng",
+ 十魔九难: "shí mó jiǔ nàn",
+ 诗书发冢: "shī shū fà zhǒng",
+ 虱处裈中: "shī chǔ kūn zhōng",
+ 师直为壮: "shī zhí wéi zhuàng",
+ 尸居龙见: "shī jū lóng xiàn",
+ 圣经贤传: "shèng jīng xián zhuàn",
+ 圣君贤相: "shèng jūn xián xiàng",
+ 生拖死拽: "shēng tuō sǐ zhuài",
+ 审己度人: "shěn jǐ duó rén",
+ 神武挂冠: "shén wǔ guà guàn",
+ 神龙失埶: "shén lóng shī shì",
+ 深文曲折: "shēn wén qǔ shé",
+ 深厉浅揭: "shēn lì qiǎn qì",
+ 深谷为陵: "shēn gǔ wéi líng",
+ 深恶痛疾: "shēn wù tòng jí",
+ 深仇宿怨: "shēn chóu xiǔ yuàn",
+ 舍己为公: "shě jǐ wèi gōng",
+ 舍短取长: "shě duǎn qǔ cháng",
+ 舍策追羊: "shě cè zhuī yáng",
+ 蛇蝎为心: "shé xiē wéi xīn",
+ 少成若性: "shào chéng ruò xìng",
+ 上当学乖: "shàng dàng xué guāi",
+ 赏不当功: "shǎng bù dāng gōng",
+ 善自为谋: "shàn zì wéi móu",
+ 善为说辞: "shàn wéi shuō cí",
+ 善善恶恶: "shàn shàn wù è",
+ 善财难舍: "shàn cái nán shě",
+ 苫眼铺眉: "shān yǎn pū méi",
+ 讪牙闲嗑: "shàn yá xián kē",
+ 山阴乘兴: "shān yīn chéng xīng",
+ 山殽野湋: "shān yáo yě wéi",
+ 山溜穿石: "shān liù chuān shí",
+ 山节藻棁: "shān jié zǎo zhuō",
+ 杀鸡为黍: "shā jī wéi shǔ",
+ 色厉胆薄: "sè lì dǎn bó",
+ 桑荫未移: "sāng yīn wèi yí",
+ 桑荫不徙: "sāng yīn bù xǐ",
+ 桑土绸缪: "sāng tǔ chóu miù",
+ 桑户棬枢: "sāng hù juàn shū",
+ 三战三北: "sān zhàn sān běi",
+ 三瓦两舍: "sān wǎ liǎng shě",
+ 三人为众: "sān rén wèi zhòng",
+ 三差两错: "sān chā liǎng cuò",
+ 塞井焚舍: "sāi jǐng fén shě",
+ 洒心更始: "sǎ xīn gèng shǐ",
+ 洒扫应对: "sǎ sǎo yìng duì",
+ 软红香土: "ruǎn hóng xiāng tǔ",
+ 入吾彀中: "rù wú gòu zhōng",
+ 入铁主簿: "rù tiě zhǔ bù",
+ 入理切情: "rù lǐ qiē qíng",
+ 汝成人耶: "rǔ chéng rén yé",
+ 如水投石: "rú shuǐ tóu shí",
+ 如切如磋: "rú qiē rú cuō",
+ 如登春台: "rú dēng chūn tái",
+ 肉薄骨并: "ròu bó gǔ bìng",
+ 柔情绰态: "róu qíng chuò tài",
+ 戎马劻勷: "róng mǎ kuāng ráng",
+ 日中为市: "rì zhōng wéi shì",
+ 日月参辰: "rì yuè shēn chén",
+ 日省月修: "rì xǐng yuè xiū",
+ 日削月割: "rì xuē yuè gē",
+ 日省月试: "rì xǐng yuè shì",
+ 任达不拘: "rèn dá bù jū",
+ 人言藉藉: "rén yán jí jí",
+ 人模狗样: "rén mú gǒu yàng",
+ 人莫予毒: "rén mò yú dú",
+ 热熬翻饼: "rè áo fān bǐng",
+ 圈牢养物: "juàn láo yǎng wù",
+ 取予有节: "qǔ yǔ yǒu jié",
+ 诎要桡腘: "qū yāo ráo guó",
+ 穷形尽相: "qióng xíng jìn xiàng",
+ 情凄意切: "qíng qī yì qiè",
+ 情见势屈: "qíng xiàn shì qū",
+ 情见乎辞: "qíng xiàn hū cí",
+ 清都绛阙: "qīng dōu jiàng què",
+ 倾肠倒肚: "qīng cháng dào dǔ",
+ 青紫被体: "qīng zǐ pī tǐ",
+ 青林黑塞: "qīng lín hēi sài",
+ 螓首蛾眉: "qín shǒu é méi",
+ 琴瑟之好: "qín sè zhī hào",
+ 且住为佳: "qiě zhù wéi jiā",
+ 切树倒根: "qiē shù dǎo gēn",
+ 切理餍心: "qiē lǐ yàn xīn",
+ 切近的当: "qiē jìn de dāng",
+ 翘足引领: "qiáo zú yǐn lǐng",
+ 巧发奇中: "qiǎo fā qí zhòng",
+ 强嘴拗舌: "jiàng zuǐ niù shé",
+ 强直自遂: "qiáng zhí zì suí",
+ 强死强活: "qiǎng sǐ qiǎng huó",
+ 强食自爱: "qiǎng shí zì ài",
+ 强食靡角: "qiǎng shí mí jiǎo",
+ 强弓劲弩: "qiáng gōng jìng nǔ",
+ 强聒不舍: "qiǎng guō bù shě",
+ 强凫变鹤: "qiáng fú biàn hè",
+ 强而后可: "qiǎng ér hòu kě",
+ 强得易贫: "qiǎng dé yì pín",
+ 遣兴陶情: "qiǎn xìng táo qíng",
+ 牵羊担酒: "qiān yáng dān jiǔ",
+ 千了百当: "qiān liǎo bǎi dàng",
+ 泣下如雨: "qì xià rú yǔ",
+ 起偃为竖: "qǐ yǎn wéi shù",
+ 岂弟君子: "kǎi tì jūn zǐ",
+ 綦溪利跂: "qí xī lì qí",
+ 棋输先著: "qí shū xiān zhuó",
+ 齐王舍牛: "qí wáng shě niú",
+ 欺天诳地: "qī tiān kuáng dì",
+ 普天率土: "pǔ tiān shuài tǔ",
+ 铺胸纳地: "pū xiōng nà dì",
+ 铺锦列绣: "pū jǐn liè xiù",
+ 破家为国: "pò jiā wèi guó",
+ 破觚为圜: "pò gū wéi yuán",
+ 萍飘蓬转: "píng piāo péng zhuàn",
+ 帡天极地: "píng tiān jí dì",
+ 屏声息气: "bǐng shēng xī qì",
+ 凭几据杖: "píng jī jù zhàng",
+ 贫嘴薄舌: "pín zuǐ bó shé",
+ 片语只辞: "piàn yǔ zhī cí",
+ 披发文身: "pī fà wén shēn",
+ 烹龙炮凤: "pēng lóng páo fèng",
+ 炰鳖脍鲤: "fǒu biē kuài lǐ",
+ 庞眉皓发: "páng méi hào fà",
+ 攀花折柳: "pān huā zhé liǔ",
+ 攀蟾折桂: "pān chán shé guì",
+ 女大难留: "nǚ dà nán liú",
+ 弄玉吹箫: "nòng yù chuī xiāo",
+ 弄管调弦: "nòng guǎn tiáo xián",
+ 弄粉调朱: "nòng fěn diào zhū",
+ 浓抹淡妆: "nóng mò dàn zhuāng",
+ 捻土为香: "niǎn tǔ wéi xiāng",
+ 年谊世好: "nián yì shì hǎo",
+ 年华垂暮: "nián huá chuí mù",
+ 儗不于伦: "nǐ bù yú lún",
+ 泥而不滓: "ní ér bù zǐ",
+ 能者为师: "néng zhě wéi shī",
+ 能不称官: "néng bú chèn guān",
+ 挠直为曲: "náo zhí wéi qū",
+ 难进易退: "nán jìn yì tuì",
+ 难得糊涂: "nán dé hú tú",
+ 南蛮鴂舌: "nán mán jué shé",
+ 南贩北贾: "nán fàn běi gǔ",
+ 牧猪奴戏: "mù zhū nú xì",
+ 目眢心忳: "mù yuān xīn tún",
+ 目挑心招: "mù tiǎo xīn zhāo",
+ 目量意营: "mù liàng yì yíng",
+ 木头木脑: "mù tóu mù nǎo",
+ 木干鸟栖: "mù gàn niǎo qī",
+ 侔色揣称: "móu sè chuǎi chèn",
+ 莫予毒也: "mò yú dú yě",
+ 抹粉施脂: "mò fěn shī zhī",
+ 磨砻镌切: "mó lóng juān qiē",
+ 磨棱刓角: "mó léng wán jiǎo",
+ 摸门不着: "mō mén bù zháo",
+ 摸不着边: "mō bù zhuó biān",
+ 命中注定: "mìng zhōng zhù dìng",
+ 鸣鹤之应: "míng hè zhī yìng",
+ 明效大验: "míng xiào dà yàn",
+ 名我固当: "míng wǒ gù dāng",
+ 邈处欿视: "miǎo chǔ kǎn shì",
+ 黾穴鸲巢: "měng xué qú cháo",
+ 绵里薄材: "mián lǐ bó cái",
+ 靡有孑遗: "mǐ yǒu jié yí",
+ 靡衣偷食: "mǐ yī tōu shí",
+ 迷恋骸骨: "mí liàn hái gǔ",
+ 扪参历井: "mén shēn lì jǐng",
+ 门单户薄: "mén dān hù bó",
+ 昧旦晨兴: "mèi dàn chén xīng",
+ 冒名接脚: "mào míng jiē jiǎo",
+ 毛遂堕井: "máo suí duò jǐng",
+ 毛发倒竖: "máo fā dǎo shù",
+ 卖文为生: "mài wén wéi shēng",
+ 卖李钻核: "mài lǐ zuān hé",
+ 买椟还珠: "mǎi dú huán zhū",
+ 埋三怨四: "mán sān yuàn sì",
+ 马入华山: "mǎ rù huá shān",
+ 落魄江湖: "luò pò jiāng hú",
+ 落落难合: "luò luò nán hé",
+ 落草为寇: "luò cǎo wéi kòu",
+ 罗织构陷: "luó zhī gòu xiàn",
+ 鸾凤和鸣: "luán fèng hè míng",
+ 率由旧章: "shuài yóu jiù zhāng",
+ 率土同庆: "shuài tǔ tóng qìng",
+ 率兽食人: "shuài shòu shí rén",
+ 率土归心: "shuài tǔ guī xīn",
+ 率马以骥: "shuài mǎ yǐ jì",
+ 率尔成章: "shuài ěr chéng zhāng",
+ 鲁斤燕削: "lǔ jīn yàn xuē",
+ 漏尽更阑: "lòu jìn gēng lán",
+ 笼鸟槛猿: "lóng niǎo jiàn yuán",
+ 笼鸟池鱼: "lóng niǎo chí yú",
+ 龙游曲沼: "lóng yóu qū zhǎo",
+ 龙血玄黄: "lóng xuè xuán huáng",
+ 龙雕凤咀: "lóng diāo fèng jǔ",
+ 六尺之讬: "liù chǐ zhī tuō",
+ 令原之戚: "líng yuán zhī qī",
+ 令人捧腹: "lìng rén pěng fù",
+ 陵劲淬砺: "líng jìng cuì lì",
+ 临敌易将: "lín dí yì jiàng",
+ 裂裳衣疮: "liè shang yī chuāng",
+ 裂冠毁冕: "liè guàn huǐ miǎn",
+ 了无惧色: "liǎo wú jù sè",
+ 了身达命: "liǎo shēn dá mìng",
+ 了然无闻: "liǎo rán wú wén",
+ 了不可见: "liǎo bù kě jiàn",
+ 了不长进: "liǎo bù zhǎng jìn",
+ 燎发摧枯: "liǎo fà cuī kū",
+ 审时度势: "shěn shí duó shì",
+ 量小力微: "liàng xiǎo lì wēi",
+ 相时度力: "xiāng shí duó lì",
+ 量枘制凿: "liàng ruì zhì záo",
+ 量如江海: "liàng rú jiāng hǎi",
+ 量金买赋: "liàng jīn mǎi fù",
+ 量己审分: "liàng jǐ shěn fēn",
+ 敛骨吹魂: "liǎn gǔ chuī hún",
+ 詈夷为跖: "lì yí wéi zhí",
+ 利令志惛: "lì lìng zhì hūn",
+ 李广不侯: "lǐ guǎng bú hòu",
+ 礼为情貌: "lǐ wéi qíng mào",
+ 礼让为国: "lǐ ràng wéi guó",
+ 犁生骍角: "lí shēng xīng jiǎo",
+ 离本徼末: "lí běn jiǎo mò",
+ 楞眉横眼: "léng méi hèng yǎn",
+ 擂天倒地: "léi tiān dǎo dì",
+ 累足成步: "lěi zú chéng bù",
+ 累瓦结绳: "lěi wǎ jié shéng",
+ 累土至山: "lěi tǔ zhì shān",
+ 累土聚沙: "lěi tǔ jù shā",
+ 累卵之危: "lěi luǎn zhī wēi",
+ 累累如珠: "lěi lěi rú zhū",
+ 累块积苏: "lěi kuài jī sū",
+ 乐山乐水: "lè shān lè shuǐ",
+ 潦原浸天: "lǎo yuán jìn tiān",
+ 老师宿儒: "lǎo shī xiǔ rú",
+ 牢什古子: "láo shí gǔ zi",
+ 琅嬛福地: "láng huán fú dì",
+ 揆情度理: "kuí qíng duó lǐ",
+ 旷日累时: "kuàng rì lěi shí",
+ 匡救弥缝: "kuāng jiù mí fèng",
+ 枯树生华: "kū shù shēng huā",
+ 口轻舌薄: "kǒu qīng shé bó",
+ 口角生风: "kǒu jiǎo shēng fēng",
+ 口角春风: "kǒu jiǎo chūn fēng",
+ 口角风情: "kǒu jiǎo fēng qíng",
+ 口干舌焦: "kǒu gān shé jiāo",
+ 口腹之累: "kǒu fù zhī lěi",
+ 空腹便便: "kōng fù pián pián",
+ 嗑牙料嘴: "kē yá liào zuǐ",
+ 刻木为鹄: "kè mù wéi hú",
+ 咳珠唾玉: "ké zhū tuò yù",
+ 咳唾成珠: "ké tuò chéng zhū",
+ 抗颜为师: "kàng yán wéi shī",
+ 开华结果: "kāi huā jié guǒ",
+ 峻阪盐车: "jùn bǎn yán chē",
+ 嚼铁咀金: "jiáo tiě jǔ jīn",
+ 嚼墨喷纸: "jué mò pēn zhǐ",
+ 倔头强脑: "juè tóu jiàng nǎo",
+ 倔头倔脑: "juè tóu juè nǎo",
+ 倦鸟知还: "juàn niǎo zhī huán",
+ 卷席而葬: "juǎn xí ér zàng",
+ 卷甲倍道: "juǎn jiǎ bèi dào",
+ 聚米为山: "jù mǐ wéi shān",
+ 举手相庆: "jǔ shǒu xiāng qìng",
+ 举世混浊: "jǔ shì hún zhuó",
+ 鞠为茂草: "jū wéi mào cǎo",
+ 拘神遣将: "jū shén qiǎn jiàng",
+ 居下讪上: "jū xià shàn shàng",
+ 久要不忘: "jiǔ yāo bú wàng",
+ 九转功成: "jiǔ zhuǎn gōng chéng",
+ 九蒸三熯: "jiǔ zhēng sān hàn",
+ 敬业乐群: "jìng yè lè qún",
+ 井底虾蟆: "jǐng dǐ xiā má",
+ 旌旗卷舒: "jīng qí juǎn shū",
+ 荆棘载途: "jīng jí zài tú",
+ 禁舍开塞: "jìn shě kāi sāi",
+ 祲威盛容: "jìn wēi shèng róng",
+ 进退消长: "jìn tuì xiāo cháng",
+ 进退应矩: "jìn tuì yīng jǔ",
+ 进退触籓: "jìn tuì chù fān",
+ 进退跋疐: "jìn tuì bá zhì",
+ 尽多尽少: "jǐn duō jǐn shǎo",
+ 锦囊还矢: "jǐn náng huán shǐ",
+ 矜己自饰: "jīn jǐ zì shì",
+ 矜功负气: "jīn gōng fù qì",
+ 津关险塞: "jīn guān xiǎn sài",
+ 金吾不禁: "jīn wú bú jìn",
+ 金翅擘海: "jīn chì bāi hǎi",
+ 解衣衣人: "jiě yī yī rén",
+ 解人难得: "jiě rén nán dé",
+ 解铃系铃: "jiě líng xì líng",
+ 解发佯狂: "jiě fà yáng kuáng",
+ 诘屈磝碻: "jié qū áo qiāo",
+ 教猱升木: "jiāo náo shēng mù",
+ 较瘦量肥: "jiào shòu liàng féi",
+ 角立杰出: "jiǎo lì jié chū",
+ 焦沙烂石: "jiāo shā làn shí",
+ 骄儿騃女: "jiāo ér sì nǚ",
+ 浇风薄俗: "jiāo fēng bó sú",
+ 降妖捉怪: "xiáng yāo zhuō guài",
+ 将取固予: "jiāng qǔ gù yǔ",
+ 将门有将: "jiàng mén yǒu jiàng",
+ 将夺固与: "jiāng duó gù yǔ",
+ 槛花笼鹤: "jiàn huā lóng hè",
+ 鉴影度形: "jiàn yǐng duó xíng",
+ 渐不可长: "jiàn bù kě zhǎng",
+ 见素抱朴: "xiàn sù bào pǔ",
+ 见弃于人: "jiàn qì yú rén",
+ 简丝数米: "jiǎn sī shǔ mǐ",
+ 俭不中礼: "jiǎn bú zhòng lǐ",
+ 间见层出: "jiàn xiàn céng chū",
+ 尖嘴薄舌: "jiān zuǐ bó shé",
+ 甲冠天下: "jiǎ guàn tiān xià",
+ 葭莩之亲: "jiā fú zhī qīn",
+ 家累千金: "jiā lèi qiān jīn",
+ 家给人足: "jiā jǐ rén zú",
+ 家道从容: "jiā dào cóng róng",
+ 夹袋人物: "jiā dài rén wù",
+ 霁风朗月: "jì fēng lǎng yuè",
+ 寄兴寓情: "jì xìng yù qíng",
+ 计深虑远: "jì shēn lǜ yuǎn",
+ 计功量罪: "jì gōng liàng zuì",
+ 掎裳连襼: "jǐ shang lián yì",
+ 虮虱相吊: "jǐ shī xiāng diào",
+ 疾不可为: "jí bù kě wéi",
+ 极深研几: "jí shēn yán jī",
+ 及宾有鱼: "jí bīn yǒu yú",
+ 激薄停浇: "jī bó tíng jiāo",
+ 积素累旧: "jī sù lěi jiù",
+ 积时累日: "jī shí lěi rì",
+ 积露为波: "jī lù wéi bō",
+ 积德累功: "jī dé lěi gōng",
+ 积谗糜骨: "jī chán méi gǔ",
+ 击排冒没: "jī pái mào mò",
+ 祸为福先: "huò wéi fú xiān",
+ 祸福相依: "huò fú xiāng yī",
+ 获隽公车: "huò jùn gōng chē",
+ 混应滥应: "hùn yīng làn yīng",
+ 毁舟为杕: "huǐ zhōu wéi duò",
+ 毁钟为铎: "huǐ zhōng wéi duó",
+ 毁冠裂裳: "huǐ guān liè cháng",
+ 晦盲否塞: "huì máng pǐ sè",
+ 回船转舵: "huí chuán zhuàn duò",
+ 潢池盗弄: "huáng chí dào nòng",
+ 黄冠草履: "huáng guàn cǎo lǚ",
+ 黄发儿齿: "huáng fà ér chǐ",
+ 黄发垂髫: "huáng fà chuí tiáo",
+ 还珠返璧: "huán zhū fǎn bì",
+ 还年驻色: "huán nián zhù sè",
+ 还年却老: "huán nián què lǎo",
+ 坏裳为裤: "huài shang wéi kù",
+ 画荻和丸: "huà dí huò wán",
+ 化枭为鸠: "huà xiāo wéi jiū",
+ 化腐为奇: "huà fǔ wéi qí",
+ 化鸱为凤: "huà chī wéi fèng",
+ 花不棱登: "huā bu lēng dēng",
+ 户限为穿: "hù xiàn wéi chuān",
+ 呼卢喝雉: "hū lú hè zhì",
+ 呼来喝去: "hū lái hè qù",
+ 呼不给吸: "hū bù jǐ xī",
+ 厚味腊毒: "hòu wèi xī dú",
+ 厚德载物: "hòu dé zài wù",
+ 鸿渐于干: "hóng jiàn yú gàn",
+ 洪炉燎发: "hóng lú liáo fà",
+ 红绳系足: "hóng shéng jì zú",
+ 红不棱登: "hóng bu lēng dēng",
+ 横抢硬夺: "hèng qiǎng yìng duó",
+ 横恩滥赏: "hèng ēn làn shǎng",
+ 恨海难填: "hèn hǎi nán tián",
+ 鹤发鸡皮: "hè fà jī pí",
+ 涸思干虑: "hé sī gān lǜ",
+ 河涸海干: "hé hé hǎi gān",
+ 和颜说色: "hé yán yuè sè",
+ 合从连衡: "hé zòng lián héng",
+ 浩浩汤汤: "hào hào shāng shāng",
+ 好勇斗狠: "hào yǒng dòu hěn",
+ 好问则裕: "hào wèn zé yù",
+ 好为事端: "hào wéi shì duān",
+ 好问决疑: "hào wèn jué yí",
+ 好生之德: "hào shēng zhī dé",
+ 好奇尚异: "hǎo qí shàng yì",
+ 好恶不同: "hǎo è bù tóng",
+ 好丹非素: "hào dān fēi sù",
+ 豪干暴取: "háo gàn bào qǔ",
+ 毫发不爽: "háo fà bù shuǎng",
+ 寒酸落魄: "hán suān luò pò",
+ 含英咀华: "hán yīng jǔ huá",
+ 含糊不明: "hán hú bù míng",
+ 过为已甚: "guò wéi yǐ shèn",
+ 桂折兰摧: "guì shé lán cuī",
+ 规旋矩折: "guī xuán jǔ shé",
+ 广文先生: "guǎng wén xiān sheng",
+ 广陵散绝: "guǎng líng sǎn jué",
+ 冠山戴粒: "guàn shān dài lì",
+ 冠屦倒施: "guàn jù dǎo shī",
+ 挂席为门: "guà xí wéi mén",
+ 寡见鲜闻: "guǎ jiàn xiǎn wén",
+ 瓜葛相连: "guā gé xiāng lián",
+ 鼓吻奋爪: "gǔ wěn fèn zhǎo",
+ 古调单弹: "gǔ diào dān tán",
+ 古调不弹: "gǔ diào bù tán",
+ 姑射神人: "gū yè shén rén",
+ 苟合取容: "gǒu hé qǔ róng",
+ 狗续侯冠: "gǒu xù hòu guàn",
+ 钩爪锯牙: "gōu zhǎo jù yá",
+ 共枝别干: "gòng zhī bié gàn",
+ 共为唇齿: "gòng wéi chún chǐ",
+ 拱手而降: "gǒng shǒu ér xiáng",
+ 拱肩缩背: "gǒng jiān suō bèi",
+ 功薄蝉翼: "gōng bó chán yì",
+ 弓调马服: "gōng diào mǎ fú",
+ 更姓改物: "gēng xìng gǎi wù",
+ 更仆难数: "gēng pú nán shǔ",
+ 更令明号: "gēng lìng míng hào",
+ 更待干罢: "gèng dài gàn bà",
+ 更唱迭和: "gēng chàng dié hé",
+ 更长梦短: "gēng cháng mèng duǎn",
+ 各色名样: "gè sè míng yàng",
+ 格格不纳: "gé gé bú nà",
+ 格格不吐: "gé gé bù tǔ",
+ 告朔饩羊: "gù shuò xì yáng",
+ 膏车秣马: "gào chē mò mǎ",
+ 高义薄云: "gāo yì bó yún",
+ 岗头泽底: "gāng tóu zé dǐ",
+ 敢为敢做: "gǎn wéi gǎn zuò",
+ 甘分随时: "gān fèn suí shí",
+ 甘处下流: "gān chǔ xià liú",
+ 干啼湿哭: "gàn tí shī kū",
+ 干名犯义: "gàn míng fàn yì",
+ 干将莫邪: "gān jiāng mò yé",
+ 干城之将: "gān chéng zhī jiàng",
+ 腹载五车: "fù zài wǔ chē",
+ 父债子还: "fù zhài zǐ huán",
+ 父为子隐: "fù wéi zǐ yǐn",
+ 辅世长民: "fǔ shì zhǎng mín",
+ 福为祸始: "fú wéi huò shǐ",
+ 符号逻辑: "fú hào luó jí",
+ 浮收勒折: "fú shōu lè shé",
+ 肤受之愬: "fū shòu zhī sù",
+ 否终则泰: "pǐ zhōng zé tài",
+ 佛头著粪: "fó tóu zhuó fèn",
+ 奉为楷模: "fèng wéi kǎi mó",
+ 凤靡鸾吪: "fèng mǐ luán é",
+ 封豨修蛇: "fēng xī xiū shé",
+ 风影敷衍: "fēng yǐng fū yǎn",
+ 丰屋蔀家: "fēng wū bù jiā",
+ 粪土不如: "fèn tǔ bù rú",
+ 分风劈流: "fēn fēng pǐ liú",
+ 沸沸汤汤: "fèi fèi shāng shāng",
+ 菲食薄衣: "fěi shí bó yī",
+ 飞将数奇: "fēi jiàng shù qí",
+ 放辟邪侈: "fàng pì xié chǐ",
+ 方领圆冠: "fāng lǐng yuán guàn",
+ 犯而不校: "fàn ér bú jiào",
+ 返本还源: "fǎn běn huán yuán",
+ 反劳为逸: "fǎn láo wéi yì",
+ 法轮常转: "fǎ lún cháng zhuàn",
+ 罚不当罪: "fá bù dāng zuì",
+ 发引千钧: "fà yǐn qiān jūn",
+ 发奸擿伏: "fā jiān tī fú",
+ 发短心长: "fà duǎn xīn cháng",
+ 二竖为虐: "èr shù wéi nüè",
+ 儿女心肠: "ér nǚ xīn cháng",
+ 儿女亲家: "ér nǚ qìng jiā",
+ 遏恶扬善: "è wù yáng shàn",
+ 饿殍枕藉: "è piǎo zhěn jí",
+ 饿殍载道: "è piǎo zài dào",
+ 恶醉强酒: "wù zuì qiǎng jiǔ",
+ 恶意中伤: "è yì zhòng shāng",
+ 恶湿居下: "wù shī jū xià",
+ 恶居下流: "wù jū xià liú",
+ 恶不去善: "wù bú qù shàn",
+ 扼吭夺食: "è háng duó shí",
+ 扼襟控咽: "è jīn kòng yān",
+ 峨峨汤汤: "é é shāng shāng",
+ 屙金溺银: "ē jīn niào yín",
+ 朵颐大嚼: "duǒ yí dà jiáo",
+ 夺人所好: "duó rén suǒ hào",
+ 多言数穷: "duō yán shuò qióng",
+ 多文为富: "duō wén wéi fù",
+ 多端寡要: "duō duān guǎ yào",
+ 多财善贾: "duō cái shàn gǔ",
+ 遁世无闷: "dùn shì wú mèn",
+ 遁迹黄冠: "dùn jì huáng guàn",
+ 堆案盈几: "duī àn yíng jī",
+ 断还归宗: "duàn huán guī zōng",
+ 短见薄识: "duǎn jiàn bó shí",
+ 蠹居棊处: "dù jū qí chǔ",
+ 度己以绳: "duó jǐ yǐ shéng",
+ 杜默为诗: "dù mò wéi shī",
+ 杜鹃啼血: "dù juān tí xuè",
+ 笃近举远: "dǔ jìn jǔ yuǎn",
+ 独有千秋: "dú yǒu qiān qiū",
+ 读书得间: "dú shū dé jiàn",
+ 斗转参横: "dǒu zhuǎn shēn héng",
+ 兜肚连肠: "dōu dǔ lián cháng",
+ 洞见症结: "dòng jiàn zhèng jié",
+ 恫疑虚喝: "dòng yí xū hè",
+ 动中窾要: "dòng zhōng kuǎn yào",
+ 东鸣西应: "dōng míng xī yīng",
+ 东鳞西爪: "dōng lín xī zhǎo",
+ 东量西折: "dōng liàng xī shé",
+ 东家西舍: "dōng jiā xī shè",
+ 东扯西拽: "dōng chě xī zhuāi",
+ 鼎铛有耳: "dǐng chēng yǒu ěr",
+ 鼎铛玉石: "dǐng chēng yù shí",
+ 钉头磷磷: "dīng tóu lín lín",
+ 跌宕不羁: "diē dàng bù jī",
+ 跌弹斑鸠: "diē dàn bān jiū",
+ 雕心雁爪: "diāo xīn yàn zhǎo",
+ 颠倒衣裳: "diān dǎo yī cháng",
+ 德薄能鲜: "dé bó néng xiǎn",
+ 得马折足: "dé mǎ shé zú",
+ 蹈其覆辙: "dǎo qí fù zhé",
+ 捣虚撇抗: "dǎo xū piē kàng",
+ 倒载干戈: "dào zài gān gē",
+ 倒裳索领: "dào cháng suǒ lǐng",
+ 倒果为因: "dào guǒ wéi yīn",
+ 叨在知己: "tāo zài zhī jǐ",
+ 叨陪末座: "tāo péi mò zuò",
+ 党豺为虐: "dǎng chái wéi nüè",
+ 当轴处中: "dāng zhóu chǔ zhōng",
+ 当着不着: "dāng zhuó bù zhuó",
+ 当务始终: "dāng wù shǐ zhōng",
+ 淡汝浓抹: "dàn rǔ nóng mǒ",
+ 弹丸脱手: "tán wán tuō shǒu",
+ 弹铗无鱼: "dàn jiá wú yú",
+ 箪食瓢饮: "dān sì piáo yǐn",
+ 大璞不完: "dà pú bù wán",
+ 大明法度: "dà míng fǎ dù",
+ 大车以载: "dà chē yǐ zài",
+ 打闷葫芦: "dǎ mèn hú lu",
+ 沓来踵至: "tà lái zhǒng zhì",
+ 厝火燎原: "cuò huǒ liǎo yuán",
+ 撮科打哄: "cuō kē dǎ hòng",
+ 寸积铢累: "cùn jī zhū lěi",
+ 啛啛喳喳: "cuì cuì chā chā",
+ 摧折豪强: "cuī zhé háo qiáng",
+ 摧刚为柔: "cuī gāng wéi róu",
+ 从俗就简: "cóng sú jiù jiǎn",
+ 此发彼应: "cǐ fā bǐ yīng",
+ 此唱彼和: "cǐ chàng bǐ hè",
+ 慈悲为本: "cí bēi wéi běn",
+ 纯属骗局: "chún shǔ piàn jú",
+ 春笋怒发: "chūn sǔn nù fā",
+ 垂头搨翼: "chuí tóu tà yì",
+ 传为笑谈: "chuán wéi xiào tán",
+ 传风扇火: "chuán fēng shān huǒ",
+ 穿红着绿: "chuān hóng zhuó lǜ",
+ 触处机来: "chù chǔ jī lái",
+ 处尊居显: "chǔ zūn jū xiǎn",
+ 处堂燕雀: "chǔ táng yàn què",
+ 处实效功: "chǔ shí xiào gōng",
+ 处高临深: "chǔ gāo lín shēn",
+ 出入无间: "chū rù wú jiān",
+ 出门应辙: "chū mén yīng zhé",
+ 出处语默: "chū chǔ yǔ mò",
+ 出处殊途: "chū chǔ shū tú",
+ 出处进退: "chū chǔ jìn tuì",
+ 愁山闷海: "chóu shān mèn hǎi",
+ 冲冠眦裂: "chōng guàn zì liè",
+ 齿牙为祸: "chǐ yá wéi huò",
+ 尺二冤家: "chǐ èr yuān jia",
+ 尺短寸长: "chǐ duǎn cùn cháng",
+ 尺寸之功: "chǐ cùn zhī gōng",
+ 城北徐公: "chéng běi xú gōng",
+ 成败兴废: "chéng bài xīng fèi",
+ 趁水和泥: "chèn shuǐ huò ní",
+ 称雨道晴: "chēng yǔ dào qíng",
+ 称体载衣: "chēng tǐ zài yī",
+ 称体裁衣: "chèn tǐ cái yī",
+ 称家有无: "chèn jiā yǒu wú",
+ 称德度功: "chēng dé duó gōng",
+ 沉吟章句: "chén yín zhāng jù",
+ 沉吟不决: "chén yín bù jué",
+ 沉疴宿疾: "chén kē sù jí",
+ 扯纤拉烟: "chě qiàn lā yān",
+ 扯顺风旗: "chě shùn fēng qí",
+ 车载船装: "chē zǎi chuán zhuāng",
+ 朝升暮合: "zhāo shēng mù gě",
+ 朝攀暮折: "zhāo pān mù shé",
+ 超今冠古: "chāo jīn guàn gǔ",
+ 倡而不和: "chàng ér bú hè",
+ 畅所欲为: "chàng suǒ yù wéi",
+ 苌弘碧血: "cháng hóng bì xiě",
+ 长幼尊卑: "zhǎng yòu zūn bēi",
+ 长绳系日: "cháng shéng jì rì",
+ 长年三老: "zhǎng nián sān lǎo",
+ 长春不老: "cháng chūn bù lǎo",
+ 长傲饰非: "zhǎng ào shì fēi",
+ 昌亭旅食: "chāng tíng lǚ shí",
+ 禅絮沾泥: "chán xù zhān ní",
+ 差三错四: "chā sān cuò sì",
+ 层台累榭: "céng tái lěi xiè",
+ 层见迭出: "céng xiàn dié chū",
+ 藏踪蹑迹: "cáng zōng niè jì",
+ 苍蝇见血: "cāng yíng jiàn xiě",
+ 餐松啖柏: "cān sōng dàn bó",
+ 骖风驷霞: "cān fēng sì xiá",
+ 参伍错综: "cēn wǔ cuò zōng",
+ 参辰卯酉: "shēn chén mǎo yǒu",
+ 材优干济: "cái yōu gān jǐ",
+ 材薄质衰: "cái bó zhì shuāi",
+ 才大难用: "cái dà nán yòng",
+ 才薄智浅: "cái bó zhì qiǎn",
+ 不足为意: "bù zú wéi yì",
+ 不足为据: "bù zú wéi jù",
+ 不足为法: "bù zú wéi fǎ",
+ 不足齿数: "bù zú chǐ shǔ",
+ 不着疼热: "bù zhuó téng rè",
+ 不知薡蕫: "bù zhī dǐng dǒng",
+ 不越雷池: "bú yuè léi chí",
+ 不相为谋: "bù xiāng wéi móu",
+ 不贪为宝: "bù tān wéi bǎo",
+ 不了而了: "bù liǎo ér liǎo",
+ 不可揆度: "bù kě kuí duó",
+ 不遑启处: "bù huáng qǐ chǔ",
+ 不当不正: "bù dāng bú zhèng",
+ 不差什么: "bú chà shén me",
+ 不差累黍: "bù chā lěi shǔ",
+ 擘两分星: "bò liǎng fēn xīng",
+ 簸土扬沙: "bǒ tǔ yáng shā",
+ 薄物细故: "bó wù xì gù",
+ 薄寒中人: "bó hán zhòng rén",
+ 博文约礼: "bó wén yuē lǐ",
+ 播糠眯目: "bō kāng mí mù",
+ 剥皮抽筋: "bō pí chōu jīn",
+ 剥肤椎髓: "bō fū chuí suǐ",
+ 波属云委: "bō zhǔ yún wěi",
+ 波骇云属: "bō hài yún zhǔ",
+ 兵微将寡: "bīng wēi jiàng guǎ",
+ 兵强将勇: "bīng qiáng jiàng yǒng",
+ 兵多将广: "bīng duō jiàng guǎng",
+ 兵不由将: "bīng bù yóu jiàng",
+ 冰解的破: "bīng jiě dì pò",
+ 彬彬济济: "bīn bīn jǐ jǐ",
+ 摽梅之年: "biào méi zhī nián",
+ 表里为奸: "biǎo lǐ wéi jiān",
+ 飙发电举: "biāo fā diàn jǔ",
+ 变贪厉薄: "biàn tān lì bó",
+ 敝盖不弃: "bì gài bú qì",
+ 秕言谬说: "bǐ yán miù shuō",
+ 比物属事: "bǐ wù zhǔ shì",
+ 被山带河: "pī shān dài hé",
+ 被甲枕戈: "pī jiǎ zhěn gē",
+ 被甲据鞍: "pī jiǎ jù ān",
+ 被褐怀玉: "pī hè huái yù",
+ 被发缨冠: "pī fà yīng guàn",
+ 背曲腰躬: "bèi qǔ yāo gōng",
+ 北窗高卧: "běi chuāng gāo wò",
+ 北辰星拱: "běi chén xīng gǒng",
+ 北鄙之音: "běi bǐ zhī yīn",
+ 卑宫菲食: "bēi gōng fěi shí",
+ 暴衣露冠: "pù yī lù guàn",
+ 暴腮龙门: "pù sāi lóng mén",
+ 暴露文学: "bào lù wén xué",
+ 暴虎冯河: "bào hǔ píng hé",
+ 抱蔓摘瓜: "bào wàn zhāi guā",
+ 抱法处势: "bào fǎ chǔ shì",
+ 褒贬与夺: "bāo biǎn yǔ duó",
+ 帮闲钻懒: "bāng xián zuān lǎn",
+ 拜将封侯: "bài jiàng fēng hóu",
+ 百兽率舞: "bǎi shòu shuài wǔ",
+ 百孔千创: "bǎi kǒng qiān chuāng",
+ 白衣卿相: "bái yī qīng xiàng",
+ 白首为郎: "bái shǒu wéi láng",
+ 白首相知: "bái shǒu xiāng zhī",
+ 把玩无厌: "bǎ wán wú yàn",
+ 拔锅卷席: "bá guō juǎn xí",
+ 拔本塞源: "bá běn sè yuán",
+ 傲不可长: "ào bù kě zhǎng",
+ 熬更守夜: "áo gēng shǒu yè",
+ 安时处顺: "ān shí chǔ shùn",
+ 安身为乐: "ān shēn wéi lè",
+ 安老怀少: "ān lǎo huái shào",
+ 安步当车: "ān bù dàng chē",
+ 爱人好士: "ài rén hào shì",
+ 矮人观场: "ǎi rén guān chǎng",
+ 捱风缉缝: "ái fēng jī fèng",
+ 挨山塞海: "āi shān sè hǎi",
+ 阿家阿翁: "ā jiā ā wēng",
+ 阿党相为: "ē dǎng xiāng wéi",
+ 追亡逐北: "zhuī wáng zhú běi",
+ 竹篮打水: "zhú lán dá shuǐ",
+ 知疼着热: "zhī téng zháo rè",
+ 语不惊人: "yǔ bù jīng rén",
+ 于今为烈: "yú jīn wéi liè",
+ 一日三省: "yí rì sān xǐng",
+ 穴居野处: "xué jū yě chǔ",
+ 五脊六兽: "wǔ jǐ liù shòu",
+ 无声无臭: "wú shēng wú xiù",
+ 谓予不信: "wèi yú bú xìn",
+ 舍身为国: "shě shēn wéi guó",
+ 杀妻求将: "shā qī qiú jiàng",
+ 强作解人: "qiǎng zuò jiě rén",
+ 气冲斗牛: "qì chōng dǒu niú",
+ 临深履薄: "lín shēn lǚ bó",
+ 钧天广乐: "jūn tiān guǎng yuè",
+ 艰难竭蹶: "jiān nán jié jué",
+ 夹七夹八: "jiā qī jiā bā",
+ 混混噩噩: "hún hún è è",
+ 厚古薄今: "hòu gǔ bó jīn",
+ 鬼怕恶人: "guǐ pà è rén",
+ 伽马射线: "gā mǎ shè xiàn",
+ 佛头着粪: "fó tóu zhuó fèn",
+ 奉为至宝: "fèng wéi zhì bǎo",
+ 登坛拜将: "dēng tán bài jiàng",
+ 晨昏定省: "chén hūn dìng xǐng",
+ 察察为明: "chá chá wéi míng",
+ 博闻强识: "bó wén qiáng zhì",
+ 避难就易: "bì nán jiù yì",
+ 了无生机: 'liǎo wú shēng jī',
+ // 一字不变调的词语,如果词语仅有单个一且一字在结尾的无需添加(需要增补更多)
+ 有一说一: 'yǒu yī shuō yī',
+ 独一无二: 'dú yī wú èr',
+ 说一不二: 'shuō yī bù èr',
+ 举一反三: 'jǔ yī fǎn sān',
+ 数一数二: 'shǔ yī shǔ èr',
+ 杀一儆百: 'shā yī jǐng bǎi',
+ 丁一卯二: 'dīng yī mǎo èr',
+ 丁一确二: 'dīng yī què èr',
+ 不一而止: 'bù yī ér zhǐ',
+ 无一幸免: 'wú yī xìng miǎn',
+ // 来源:https://m.gushici.com/cyxy_4e00_4
+ 表里不一: 'biǎo lǐ bù yī',
+ 良莠不一: 'liáng yǒu bù yī',
+ 心口不一: 'xīn kǒu bù yī',
+ 言行不一: 'yán xíng bù yī',
+ 政令不一: 'zhèng lìng bù yī',
+ 参差不一: 'cēn cī bù yī',
+ 纷纷不一: 'fēn fēn bù yī',
+ 毁誉不一: 'huǐ yù bù yī',
+ 不一而三: 'bù yī ér sān',
+ 百不一遇: 'bǎi bù yī yù',
+ 言行抱一: 'yán xíng bào yī',
+ 瑜百瑕一: 'yú bǎi xiá yī',
+ 背城借一: 'bèi chéng jiè yī',
+ 凭城借一: 'píng chéng jiè yī',
+ 劝百讽一: 'quàn bǎi fěng yī',
+ 群居和一: 'qún jū hé yī',
+ 百不获一: 'bǎi bù huò yī',
+ 百不失一: 'bǎi bù shī yī',
+ 百无失一: 'bǎi wú shī yī',
+ 万不失一: 'wàn bù shī yī',
+ 万无失一: 'wàn wú shī yī',
+ 合而为一: 'hé ér wéi yī',
+ 合两为一: 'hé liǎng wéi yī',
+ 合二为一: 'hé èr wéi yī',
+ 天下为一: 'tiān xià wéi yī',
+ 相与为一: 'xiāng yǔ wéi yī',
+ 较若画一: 'jiào ruò huà yī',
+ 较如画一: 'jiào rú huà yī',
+ 斠若画一: 'jiào ruò huà yī',
+ 言行若一: 'yán xíng ruò yī',
+ 始终若一: 'shǐ zhōng ruò yī',
+ 终始若一: 'zhōng shǐ ruò yī',
+ 惟精惟一: 'wéi jīng wéi yī',
+ 众多非一: 'zhòng duō fēi yī',
+ 不能赞一: 'bù néng zàn yī',
+ 问一答十: 'wèn yī dá shí',
+ 一不扭众: 'yī bù niǔ zhòng',
+ 一以贯之: 'yī yǐ guàn zhī',
+ 一以当百: 'yī yǐ dāng bǎi',
+ 百不当一: 'bǎi bù dāng yī',
+ 十不当一: 'shí bù dāng yī',
+ 以一警百: 'yǐ yī jǐng bǎi',
+ 以一奉百: 'yǐ yī fèng bǎi',
+ 以一持万: 'yǐ yī chí wàn',
+ 以一知万: 'yǐ yī zhī wàn',
+ 百里挑一: 'bǎi lǐ tiāo yī',
+ 整齐划一: 'zhěng qí huà yī',
+ 一来二去: 'yī lái èr qù',
+ 一路公交: 'yī lù gōng jiāo',
+ 一路汽车: 'yī lù qì chē',
+ 一路巴士: 'yī lù bā shì',
+ 朝朝朝落: 'zhāo cháo zhāo luò',
+ 曲意逢迎: 'qū yì féng yíng',
+ 一行不行: 'yì háng bù xíng',
+ 行行不行: 'háng háng bù xíng'
+};
+const Pattern4 = Object.keys(DICT4).map((key) => ({
+ zh: key,
+ pinyin: DICT4[key],
+ probability: 2e-8 /* Probability.DICT */,
+ length: 4,
+ priority: Priority.Normal,
+ dict: Symbol('dict4'),
+}));
+
+const DICT5 = {
+ 巴尔干半岛: 'bā ěr gàn bàn dǎo',
+ 巴尔喀什湖: 'bā ěr kā shí hú',
+ 不幸而言中: 'bú xìng ér yán zhòng',
+ 布尔什维克: 'bù ěr shí wéi kè',
+ 何乐而不为: 'hé lè ér bù wéi',
+ 苛政猛于虎: 'kē zhèng měng yú hǔ',
+ 蒙得维的亚: 'méng dé wéi dì yà',
+ 民以食为天: 'mín yǐ shí wéi tiān',
+ 事后诸葛亮: 'shì hòu zhū gě liàng',
+ 物以稀为贵: 'wù yǐ xī wéi guì',
+ 先下手为强: 'xiān xià shǒu wéi qiáng',
+ 行行出状元: 'háng háng chū zhuàng yuan',
+ 亚得里亚海: 'yà dé lǐ yà hǎi',
+ 眼不见为净: 'yǎn bú jiàn wéi jìng',
+ 竹筒倒豆子: 'zhú tǒng dào dòu zi',
+};
+const Pattern5 = Object.keys(DICT5).map((key) => ({
+ zh: key,
+ pinyin: DICT5[key],
+ probability: 2e-8 /* Probability.DICT */,
+ length: 5,
+ priority: Priority.Normal,
+ dict: Symbol('dict5'),
+}));
+
+// 根据 probability 和 decimal 获取两个概率中最大的
+function getMaxProbability(a, b) {
+ if (!a) {
+ return b;
+ }
+ if (a.decimal < b.decimal) {
+ return a;
+ }
+ else if (a.decimal === b.decimal) {
+ return a.probability > b.probability ? a : b;
+ }
+ else {
+ return b;
+ }
+}
+// probability 小于 1e-300 时,为防止小数溢出需要进位
+function checkDecimal(prob) {
+ if (prob.probability < 1e-300) {
+ prob.probability *= 1e300;
+ prob.decimal += 1;
+ }
+}
+function getPatternDecimal(pattern) {
+ if (pattern.priority === Priority.Custom) {
+ return -(pattern.length * pattern.length * 100);
+ }
+ if (pattern.priority === Priority.Surname) {
+ return -(pattern.length * pattern.length * 10);
+ }
+ return 0;
+}
+// 最大概率算法
+function maxProbability(patterns, length) {
+ const dp = [];
+ let patternIndex = patterns.length - 1;
+ let pattern = patterns[patternIndex];
+ // 按照长度去除重叠词
+ for (let i = length - 1; i >= 0; i--) {
+ // suffix
+ const suffixDP = i + 1 >= length
+ ? { probability: 1, decimal: 0, patterns: [] }
+ : dp[i + 1];
+ while (pattern && pattern.index + pattern.length - 1 === i) {
+ const startIndex = pattern.index;
+ const curDP = {
+ probability: pattern.probability * suffixDP.probability,
+ decimal: suffixDP.decimal + getPatternDecimal(pattern),
+ patterns: suffixDP.patterns,
+ concatPattern: pattern,
+ };
+ checkDecimal(curDP);
+ dp[startIndex] = getMaxProbability(dp[startIndex], curDP);
+ pattern = patterns[--patternIndex];
+ }
+ // dp[i]
+ const iDP = {
+ probability: 1e-13 /* Probability.Unknown */ * suffixDP.probability,
+ decimal: 0,
+ patterns: suffixDP.patterns,
+ };
+ checkDecimal(iDP);
+ dp[i] = getMaxProbability(dp[i], iDP);
+ if (dp[i].concatPattern) {
+ dp[i].patterns = dp[i].patterns.concat(dp[i].concatPattern);
+ dp[i].concatPattern = undefined;
+ delete dp[i + 1];
+ }
+ }
+ return dp[0].patterns.reverse();
+}
+
+// 取最少分词数
+function getMinCount(a, b) {
+ if (!a) {
+ return b;
+ }
+ return a.count <= b.count ? a : b;
+}
+function getPatternCount(pattern) {
+ if (pattern.priority === Priority.Custom) {
+ return -(pattern.length * pattern.length * 100000);
+ }
+ if (pattern.priority === Priority.Surname) {
+ return -(pattern.length * pattern.length * 100);
+ }
+ return 1;
+}
+// 最少分词算法
+function minTokenization(patterns, length) {
+ const dp = [];
+ let patternIndex = patterns.length - 1;
+ let pattern = patterns[patternIndex];
+ // 按照长度去除重叠词
+ for (let i = length - 1; i >= 0; i--) {
+ // suffix
+ const suffixDP = i + 1 >= length
+ ? { count: 0, patterns: [] }
+ : dp[i + 1];
+ while (pattern && pattern.index + pattern.length - 1 === i) {
+ const startIndex = pattern.index;
+ const curDP = {
+ count: getPatternCount(pattern) + suffixDP.count,
+ patterns: suffixDP.patterns,
+ concatPattern: pattern
+ };
+ dp[startIndex] = getMinCount(dp[startIndex], curDP);
+ pattern = patterns[--patternIndex];
+ }
+ // dp[i]
+ const iDP = {
+ count: 1 + suffixDP.count,
+ patterns: suffixDP.patterns,
+ };
+ dp[i] = getMinCount(dp[i], iDP);
+ if (dp[i].concatPattern) {
+ dp[i].patterns = dp[i].patterns.concat(dp[i].concatPattern);
+ dp[i].concatPattern = undefined;
+ delete dp[i + 1];
+ }
+ }
+ return dp[0].patterns.reverse();
+}
+
+// 判断 pre 是否可以被忽略的重叠词
+function isIgnorablePattern(cur, pre) {
+ // 未重叠
+ if (pre.index + pre.length <= cur.index) {
+ return false;
+ }
+ if (pre.priority > cur.priority) {
+ return false;
+ }
+ if (pre.priority === cur.priority && pre.length > cur.length) {
+ return false;
+ }
+ return true;
+}
+// 逆向最大匹配算法
+function reverseMaxMatch(patterns) {
+ const filteredArr = [];
+ // 按照长度去除重叠词
+ for (let i = patterns.length - 1; i >= 0;) {
+ const { index } = patterns[i];
+ let j = i - 1;
+ while (j >= 0 && isIgnorablePattern(patterns[i], patterns[j])) {
+ j--;
+ }
+ if (j < 0 || patterns[j].index + patterns[j].length <= index) {
+ filteredArr.push(patterns[i]);
+ }
+ i = j;
+ }
+ return filteredArr.reverse();
+}
+
+var TokenizationAlgorithm;
+(function (TokenizationAlgorithm) {
+ TokenizationAlgorithm[TokenizationAlgorithm["ReverseMaxMatch"] = 1] = "ReverseMaxMatch";
+ TokenizationAlgorithm[TokenizationAlgorithm["MaxProbability"] = 2] = "MaxProbability";
+ TokenizationAlgorithm[TokenizationAlgorithm["MinTokenization"] = 3] = "MinTokenization";
+})(TokenizationAlgorithm || (TokenizationAlgorithm = {}));
+class TrieNode {
+ constructor(parent, prefix = "", key = "") {
+ this.children = new Map();
+ this.fail = null;
+ this.patterns = [];
+ this.parent = parent;
+ this.prefix = prefix;
+ this.key = key;
+ }
+}
+class AC {
+ constructor() {
+ this.dictMap = new Map();
+ this.queues = [];
+ this.root = new TrieNode(null);
+ }
+ build(patternList) {
+ this.buildTrie(patternList);
+ this.buildFailPointer();
+ }
+ // 构建 trie 树
+ buildTrie(patternList) {
+ for (let pattern of patternList) {
+ const zhChars = splitString(pattern.zh);
+ let cur = this.root;
+ for (let i = 0; i < zhChars.length; i++) {
+ let c = zhChars[i];
+ if (!cur.children.has(c)) {
+ const trieNode = new TrieNode(cur, zhChars.slice(0, i).join(''), c);
+ cur.children.set(c, trieNode);
+ this.addNodeToQueues(trieNode);
+ }
+ cur = cur.children.get(c);
+ }
+ this.insertPattern(cur.patterns, pattern);
+ pattern.node = cur;
+ this.addPatternToDictMap(pattern);
+ }
+ }
+ // 构建失败指针
+ buildFailPointer() {
+ let queue = [];
+ let queueIndex = 0;
+ this.queues.forEach((_queue) => {
+ queue = queue.concat(_queue);
+ });
+ this.queues = [];
+ while (queue.length > queueIndex) {
+ let node = queue[queueIndex++];
+ let failNode = node.parent && node.parent.fail;
+ let key = node.key;
+ while (failNode && !failNode.children.has(key)) {
+ failNode = failNode.fail;
+ }
+ if (!failNode) {
+ node.fail = this.root;
+ }
+ else {
+ node.fail = failNode.children.get(key);
+ }
+ }
+ }
+ // 将 pattern 添加到 dictMap 中
+ addPatternToDictMap(pattern) {
+ if (!this.dictMap.has(pattern.dict)) {
+ this.dictMap.set(pattern.dict, new Set());
+ }
+ this.dictMap.get(pattern.dict).add(pattern);
+ }
+ addNodeToQueues(trieNode) {
+ if (!this.queues[stringLength(trieNode.prefix)]) {
+ this.queues[stringLength(trieNode.prefix)] = [];
+ }
+ this.queues[stringLength(trieNode.prefix)].push(trieNode);
+ }
+ // 按照优先级插入 pattern
+ insertPattern(patterns, pattern) {
+ for (let i = patterns.length - 1; i >= 0; i--) {
+ const _pattern = patterns[i];
+ if (pattern.priority === _pattern.priority &&
+ pattern.probability >= _pattern.probability) {
+ patterns[i + 1] = _pattern;
+ }
+ else if (pattern.priority > _pattern.priority) {
+ patterns[i + 1] = _pattern;
+ }
+ else {
+ patterns[i + 1] = pattern;
+ return;
+ }
+ }
+ patterns[0] = pattern;
+ }
+ removeDict(dictName) {
+ if (this.dictMap.has(dictName)) {
+ const set = this.dictMap.get(dictName);
+ set.forEach((pattern) => {
+ pattern.node.patterns = pattern.node.patterns.filter((_pattern) => _pattern !== pattern);
+ });
+ this.dictMap.delete(dictName);
+ }
+ }
+ // 搜索字符串返回匹配的模式串
+ match(text, surname) {
+ let cur = this.root;
+ let result = [];
+ const zhChars = splitString(text);
+ for (let i = 0; i < zhChars.length; i++) {
+ let c = zhChars[i];
+ while (cur !== null && !cur.children.has(c)) {
+ cur = cur.fail;
+ }
+ if (cur === null) {
+ cur = this.root;
+ }
+ else {
+ cur = cur.children.get(c);
+ const pattern = cur.patterns.find((item) => {
+ if (surname === "off") {
+ return item.priority !== Priority.Surname;
+ }
+ else if (surname === "head") {
+ return item.length - 1 - i === 0;
+ }
+ else {
+ return true;
+ }
+ });
+ if (pattern) {
+ result.push(Object.assign(Object.assign({}, pattern), { index: i - pattern.length + 1 }));
+ }
+ let failNode = cur.fail;
+ while (failNode !== null) {
+ const pattern = failNode.patterns.find((item) => {
+ if (surname === "off") {
+ return item.priority !== Priority.Surname;
+ }
+ else if (surname === "head") {
+ return item.length - 1 - i === 0;
+ }
+ else {
+ return true;
+ }
+ });
+ if (pattern) {
+ result.push(Object.assign(Object.assign({}, pattern), { index: i - pattern.length + 1 }));
+ }
+ failNode = failNode.fail;
+ }
+ }
+ }
+ return result;
+ }
+ search(text, surname, algorithm = 2 /* TokenizationAlgorithm.MaxProbability */) {
+ const patterns = this.match(text, surname);
+ if (algorithm === 1 /* TokenizationAlgorithm.ReverseMaxMatch */) {
+ return reverseMaxMatch(patterns);
+ }
+ else if (algorithm === 3 /* TokenizationAlgorithm.MinTokenization */) {
+ return minTokenization(patterns, stringLength(text));
+ }
+ return maxProbability(patterns, stringLength(text));
+ }
+}
+const acTree = new AC();
+// 常规匹配
+class PatternsNormalBuilder {
+ constructor() {
+ this.buildArg = {
+ value: 500,
+ mode: "size", /* "size" | "group" */
+ };
+ this.finishedCallback = () => { };
+ this.builder = null;
+ this.builder = (function* (ctx) {
+ const patterns = Pattern5.concat(Pattern4, Pattern3, Pattern2, PatternNumberDict, PatternSurname);
+ let chunkSize = ctx.buildArg.value;
+ if (ctx.buildArg.mode === "group") {
+ chunkSize = Math.ceil(patterns.length / ctx.buildArg.value);
+ }
+ for (let i = 0, len = patterns.length; i < len; i += chunkSize) {
+ acTree.build(patterns.slice(i, i + chunkSize));
+ yield;
+ }
+ ctx.finishedCallback();
+ })(this);
+ }
+ getBuilder(value, mode, finishedCallback) {
+ this.buildArg.value = value;
+ this.buildArg.mode = mode;
+ this.finishedCallback = finishedCallback;
+ return this.builder;
+ }
+}
+let patternsNormalBuilder = new PatternsNormalBuilder();
+export function getPatternsNormalBuilder(value, mode) {
+ return patternsNormalBuilder ? patternsNormalBuilder.getBuilder(value, mode, () => patternsNormalBuilder = null) : null;
+}
+
+let customDict = {};
+const customMultipleDict = new FastDictFactory();
+const customPolyphonicDict = new FastDictFactory();
+const CustomDictName = Symbol('custom');
+/**
+ * @description: 用户自定义拼音
+ * @param {{ [key: string]: string }} config 用户自定义的拼音映射(支持汉字、词语、句子的映射),若匹配到该映射,优先将汉字转换为该映射
+ * @param {CustomPinyinOptions} options multiple/polyphonic 对于 customPinyin 补充词汇的处理
+ */
+function customPinyin(config = {}, options) {
+ const words = Object.keys(config).sort((word1, word2) => stringLength(word2) - stringLength(word1));
+ words.forEach((word) => {
+ customDict[word] = config[word];
+ });
+ const customPatterns = Object.keys(customDict).map((word) => ({
+ zh: word,
+ pinyin: customDict[word],
+ probability: 1 /* Probability.Custom */ + stringLength(word),
+ length: stringLength(word),
+ priority: Priority.Custom,
+ dict: CustomDictName,
+ }));
+ acTree.build(customPatterns);
+ // add words for multiple and polyphonic
+ if (options === null || options === void 0 ? void 0 : options.multiple) {
+ addCustomConfigToDict(config, customMultipleDict, options.multiple);
+ }
+ if (options === null || options === void 0 ? void 0 : options.polyphonic) {
+ addCustomConfigToDict(config, customPolyphonicDict, options.polyphonic);
+ }
+}
+function addCustomConfigToDict(config, dict, handleType) {
+ for (let word in config) {
+ const pinyins = config[word];
+ splitString(word).forEach((char, index) => {
+ const pinyin = pinyins.split(' ')[index] || '';
+ if (handleType === 'replace' || (handleType === 'add' && !dict.get(char) && !DICT1.get(char))) {
+ // 直接覆盖原词典
+ dict.set(char, pinyin);
+ }
+ else {
+ // 补充至原词典
+ dict.set(char, dict.get(char) || DICT1.get(char));
+ if (!dict.get(char).split(' ').includes(pinyin)) {
+ dict.set(char, `${dict.get(char)} ${pinyin}`.trim());
+ }
+ }
+ });
+ }
+}
+const getCustomMultpileDict = () => {
+ return customMultipleDict;
+};
+const getCustomPolyphonicDict = () => {
+ return customPolyphonicDict;
+};
+function clearCustomDict(dict) {
+ if (dict === 'pinyin' || dict.indexOf('pinyin') !== -1) {
+ Object.keys(customDict).forEach(function (word) {
+ delete customDict[word];
+ });
+ acTree.removeDict(CustomDictName);
+ }
+ if (dict === 'multiple' || dict.indexOf('multiple') !== -1) {
+ customMultipleDict.clear();
+ }
+ if (dict === 'polyphonic' || dict.indexOf('polyphonic') !== -1) {
+ customPolyphonicDict.clear();
+ }
+}
+
+const getSingleWordPinyin = (char) => {
+ const pinyin = DICT1.get(char);
+ // 若查到, 则返回第一个拼音; 若未查到, 返回原字符
+ return pinyin ? pinyin.split(" ")[0] : char;
+};
+const getPinyin = (word, list, surname, segmentit) => {
+ const matches = acTree.search(word, surname, segmentit);
+ let matchIndex = 0;
+ const zhChars = splitString(word);
+ for (let i = 0; i < zhChars.length;) {
+ const match = matches[matchIndex];
+ if (match && i === match.index) {
+ if (match.length === 1 && match.priority <= Priority.Normal) {
+ const char = zhChars[i];
+ let pinyin = "";
+ pinyin = processSepecialPinyin(char, zhChars[i - 1], zhChars[i + 1]);
+ list[i] = {
+ origin: char,
+ result: pinyin,
+ isZh: pinyin !== char,
+ originPinyin: pinyin,
+ };
+ i++;
+ matchIndex++;
+ continue;
+ }
+ const pinyins = match.pinyin.split(" ");
+ let pinyinIndex = 0;
+ for (let j = 0; j < match.length; j++) {
+ const zhChars = splitString(match.zh);
+ list[i + j] = {
+ origin: zhChars[j],
+ result: pinyins[pinyinIndex] || "",
+ isZh: true,
+ originPinyin: pinyins[pinyinIndex] || "",
+ };
+ pinyinIndex++;
+ }
+ i += match.length;
+ matchIndex++;
+ }
+ else {
+ const char = zhChars[i];
+ let pinyin = "";
+ pinyin = processSepecialPinyin(char, zhChars[i - 1], zhChars[i + 1]);
+ list[i] = {
+ origin: char,
+ result: pinyin,
+ isZh: pinyin !== char,
+ originPinyin: pinyin,
+ };
+ i++;
+ }
+ }
+ return { list, matches };
+};
+const getPinyinWithoutTone = (pinyin) => {
+ return pinyin
+ .replace(/(ā|á|ǎ|à)/g, "a")
+ .replace(/(ō|ó|ǒ|ò)/g, "o")
+ .replace(/(ē|é|ě|è)/g, "e")
+ .replace(/(ī|í|ǐ|ì)/g, "i")
+ .replace(/(ū|ú|ǔ|ù)/g, "u")
+ .replace(/(ǖ|ǘ|ǚ|ǜ)/g, "ü")
+ .replace(/(n̄|ń|ň|ǹ)/g, "n")
+ .replace(/(m̄|ḿ|m̌|m̀)/g, "m")
+ .replace(/(ê̄|ế|ê̌|ề)/g, "ê");
+};
+const getAllPinyin = (char, surname = "off") => {
+ const customMultpileDict = getCustomMultpileDict();
+ let pinyin = DICT1.get(char) ? DICT1.get(char).split(" ") : [];
+ if (customMultpileDict.get(char)) {
+ pinyin = customMultpileDict.get(char).split(" ");
+ }
+ else if (surname !== "off") {
+ const surnamePinyin = Surnames[char];
+ if (surnamePinyin) {
+ pinyin = [surnamePinyin].concat(pinyin.filter((py) => py !== surnamePinyin));
+ }
+ }
+ return pinyin;
+};
+const getMultiplePinyin = (word, surname = "off") => {
+ let pinyin = getAllPinyin(word, surname);
+ if (pinyin.length > 0) {
+ return pinyin.map((value) => ({
+ origin: word,
+ result: value,
+ isZh: true,
+ originPinyin: value,
+ }));
+ }
+ else {
+ return [
+ {
+ origin: word,
+ result: word,
+ isZh: false,
+ originPinyin: word,
+ },
+ ];
+ }
+};
+const getInitialAndFinal = (pinyin, initialPattern) => {
+ const pinyin_arr = pinyin.split(" ");
+ const initial_arr = [];
+ const final_arr = [];
+ for (let _pinyin of pinyin_arr) {
+ for (let _initial of InitialList) {
+ if (_pinyin.startsWith(_initial)) {
+ let _final = _pinyin.slice(_initial.length);
+ if (SpecialInitialList.indexOf(_initial) !== -1 &&
+ SpecialFinalList.indexOf(_final) !== -1) {
+ // 针对 jqx 的 u 特殊处理
+ _final = SpecialFinalMap[_final];
+ }
+ initial_arr.push(_initial);
+ final_arr.push(_final);
+ break;
+ }
+ }
+ }
+ if (initialPattern === "standard") {
+ initial_arr.forEach((initial, index) => {
+ if (initial === "y" || initial === "w") {
+ initial_arr[index] = "";
+ }
+ });
+ }
+ return {
+ final: final_arr.join(" "),
+ initial: initial_arr.join(" "), // 声母
+ };
+};
+const getFinalParts = (pinyin) => {
+ const { final } = getInitialAndFinal(pinyin);
+ let head = "", body = "", tail = "";
+ if (doubleFinalList.indexOf(getPinyinWithoutTone(final)) !== -1) {
+ head = final[0];
+ body = final[1];
+ tail = final.slice(2);
+ }
+ else {
+ body = final[0] || "";
+ tail = final.slice(1) || "";
+ }
+ return { head, body, tail };
+};
+const getNumOfTone = (pinyin) => {
+ const reg_tone1 = /(ā|ō|ē|ī|ū|ǖ|n̄|m̄|ê̄)/;
+ const reg_tone2 = /(á|ó|é|í|ú|ǘ|ń|ḿ|ế)/;
+ const reg_tone3 = /(ǎ|ǒ|ě|ǐ|ǔ|ǚ|ň|m̌|ê̌)/;
+ const reg_tone4 = /(à|ò|è|ì|ù|ǜ|ǹ|m̀|ề)/;
+ const reg_tone0 = /(a|o|e|i|u|ü|ê)/;
+ const special_tone = /(n|m)$/;
+ const tone_num_arr = [];
+ const pinyin_arr = pinyin.split(" ");
+ pinyin_arr.forEach((_pinyin) => {
+ if (reg_tone1.test(_pinyin)) {
+ tone_num_arr.push("1");
+ }
+ else if (reg_tone2.test(_pinyin)) {
+ tone_num_arr.push("2");
+ }
+ else if (reg_tone3.test(_pinyin)) {
+ tone_num_arr.push("3");
+ }
+ else if (reg_tone4.test(_pinyin)) {
+ tone_num_arr.push("4");
+ }
+ else if (reg_tone0.test(_pinyin)) {
+ tone_num_arr.push("0");
+ }
+ else if (special_tone.test(_pinyin)) {
+ tone_num_arr.push("0");
+ }
+ else {
+ tone_num_arr.push("");
+ }
+ });
+ return tone_num_arr.join(" ");
+};
+const getPinyinWithNum = (pinyin, originPinyin) => {
+ const pinyin_arr = getPinyinWithoutTone(pinyin).split(" ");
+ const tone_num_arr = getNumOfTone(originPinyin).split(" ");
+ const res_arr = [];
+ pinyin_arr.forEach((item, index) => {
+ res_arr.push(`${item}${tone_num_arr[index]}`);
+ });
+ return res_arr.join(" ");
+};
+const getFirstLetter = (pinyin, isZh) => {
+ const first_letter_arr = [];
+ const pinyin_arr = pinyin.split(" ");
+ pinyin_arr.forEach((pinyin) => {
+ first_letter_arr.push(isZh ? pinyin[0] : pinyin);
+ });
+ return first_letter_arr.join(" ");
+};
+
+// 验证输入是否为字符串
+const validateType = (word) => {
+ if (typeof word !== "string") {
+ console.error("The first param of pinyin is error: " +
+ word +
+ ' is not assignable to type "string".');
+ return false;
+ }
+ else {
+ return true;
+ }
+};
+function isNonZhScope(char, scope) {
+ if (scope instanceof RegExp) {
+ return scope.test(char);
+ }
+ return true;
+}
+// nonZh 属性处理
+const middleWareNonZh = (list, options) => {
+ let nonZh = options.nonZh;
+ if (nonZh === "removed") {
+ return list.filter((item) => item.isZh || !isNonZhScope(item.origin, options.nonZhScope));
+ }
+ else if (nonZh === "consecutive") {
+ for (let i = list.length - 2; i >= 0; i--) {
+ const cur = list[i];
+ const pre = list[i + 1];
+ if (!cur.isZh &&
+ !pre.isZh &&
+ isNonZhScope(cur.origin, options.nonZhScope) &&
+ isNonZhScope(pre.origin, options.nonZhScope)) {
+ cur.origin += pre.origin;
+ cur.result += pre.result;
+ pre.delete = true;
+ }
+ }
+ return list.filter((item) => !item.delete);
+ }
+ else {
+ return list;
+ }
+};
+// multiple 属性处理
+const middlewareMultiple = (word, options) => {
+ if (stringLength(word) === 1 && options.multiple) {
+ return getMultiplePinyin(word, options.surname);
+ }
+ else {
+ return false;
+ }
+};
+// pattern 属性处理
+const middlewarePattern = (list, options) => {
+ switch (options.pattern) {
+ case "pinyin":
+ break;
+ case "num":
+ list.forEach((item) => {
+ item.result = item.isZh ? getNumOfTone(item.result) : "";
+ });
+ break;
+ case "initial":
+ list.forEach((item) => {
+ item.result = item.isZh
+ ? getInitialAndFinal(item.result, options.initialPattern).initial
+ : "";
+ });
+ break;
+ case "final":
+ list.forEach((item) => {
+ item.result = item.isZh
+ ? getInitialAndFinal(item.result, options.initialPattern).final
+ : "";
+ });
+ break;
+ case "first":
+ list.forEach((item) => {
+ item.result = getFirstLetter(item.result, item.isZh);
+ });
+ break;
+ case "finalHead":
+ list.forEach((item) => {
+ item.result = item.isZh ? getFinalParts(item.result).head : "";
+ });
+ break;
+ case "finalBody":
+ list.forEach((item) => {
+ item.result = item.isZh ? getFinalParts(item.result).body : "";
+ });
+ break;
+ case "finalTail":
+ list.forEach((item) => {
+ item.result = item.isZh ? getFinalParts(item.result).tail : "";
+ });
+ break;
+ }
+};
+// toneType 属性处理
+const middlewareToneType = (list, options) => {
+ switch (options.toneType) {
+ case "symbol":
+ break;
+ case "none":
+ list.forEach((item) => {
+ if (item.isZh) {
+ item.result = getPinyinWithoutTone(item.result);
+ }
+ });
+ break;
+ case "num": {
+ list.forEach((item) => {
+ if (item.isZh) {
+ item.result = getPinyinWithNum(item.result, item.originPinyin);
+ }
+ });
+ break;
+ }
+ }
+};
+// v 属性处理
+const middlewareV = (list, options) => {
+ if (options.v) {
+ list.forEach((item) => {
+ if (item.isZh) {
+ item.result = item.result.replace(/ü/g, typeof options.v === "string" ? options.v : "v");
+ }
+ });
+ }
+};
+// type 属性处理
+const middlewareType = (list, options, word) => {
+ if (options.multiple && stringLength(word) === 1) {
+ let last = "";
+ list = list.filter((item) => {
+ const res = item.result !== last;
+ last = item.result;
+ return res;
+ });
+ }
+ if (options.type === "array") {
+ return list.map((item) => item.result);
+ }
+ if (options.type === "all") {
+ return list.map((item) => {
+ const pinyin = item.isZh ? item.result : "";
+ const { initial, final } = getInitialAndFinal(pinyin, options.initialPattern);
+ const { head, body, tail } = getFinalParts(pinyin);
+ let polyphonic = [];
+ if (pinyin !== "") {
+ polyphonic = [pinyin].concat(getAllPinyin(item.origin, options.surname).filter((item) => item !== pinyin));
+ }
+ return {
+ origin: item.origin,
+ pinyin,
+ initial,
+ final,
+ first: getFirstLetter(item.result, item.isZh),
+ finalHead: head,
+ finalBody: body,
+ finalTail: tail,
+ num: Number(getNumOfTone(item.originPinyin)),
+ isZh: item.isZh,
+ polyphonic,
+ inZhRange: !!DICT1.get(item.origin),
+ result: item.result,
+ };
+ });
+ }
+ return list.map((item) => item.result).join(options.separator);
+};
+// 是否开启变调
+const middlewareToneSandhi = (list, toneSandhi) => {
+ if (toneSandhi === false) {
+ list.forEach((item) => {
+ if (item.origin === "一") {
+ item.result = item.originPinyin = "yī";
+ }
+ else if (item.origin === "不") {
+ item.result = item.originPinyin = "bù";
+ }
+ });
+ }
+ return list;
+};
+
+const DEFAULT_OPTIONS$2 = {
+ pattern: "pinyin",
+ toneType: "symbol",
+ type: "string",
+ multiple: false,
+ mode: "normal",
+ removeNonZh: false,
+ nonZh: "spaced",
+ v: false,
+ separator: " ",
+ toneSandhi: true,
+ segmentit: 2 /* TokenizationAlgorithm.MaxProbability */,
+};
+/**
+ * @description: 获取汉语字符串的拼音
+ * @param {string} word 要转换的汉语字符串
+ * @param {CompleteOptions=} options 配置项
+ * @return {string | string[] | AllData[]} options.type 为 string 时,返回字符串,中间用空格隔开;为 array 时,返回拼音字符串数组;为 all 时返回全部信息的数组
+ */
+function pinyin(word, options) {
+ options = Object.assign(Object.assign({}, DEFAULT_OPTIONS$2), (options || {}));
+ // 校验 word 类型是否正确
+ const legal = validateType(word);
+ if (!legal) {
+ return word;
+ }
+ // 传入空字符串
+ if (word === "") {
+ return options.type === "array" || options.type === "all" ? [] : "";
+ }
+ if (options.surname === undefined) {
+ if (options.mode === "surname") {
+ options.surname = "all";
+ }
+ else {
+ options.surname = "off";
+ }
+ }
+ if (options.type === "all") {
+ options.pattern = "pinyin";
+ }
+ if (options.pattern === "num") {
+ options.toneType = "none";
+ }
+ if (options.removeNonZh) {
+ options.nonZh = "removed";
+ }
+ let _list = Array(stringLength(word));
+ let { list } = getPinyin(word, _list, options.surname, options.segmentit);
+ // 一和不变调处理
+ list = middlewareToneSandhi(list, options.toneSandhi);
+ // nonZh 参数及 removeNonZh 参数
+ list = middleWareNonZh(list, options);
+ // multiple 参数
+ if (middlewareMultiple(word, options)) {
+ list = middlewareMultiple(word, options);
+ }
+ // pattern 参数
+ middlewarePattern(list, options);
+ // toneType参数处理
+ middlewareToneType(list, options);
+ // v参数处理
+ middlewareV(list, options);
+ // type 参数处理
+ return middlewareType(list, options, word);
+}
+
+const DefaultName = Symbol("default");
+const originDictMap = new Map();
+function addDict(dict, options) {
+ const patterns = [];
+ // string 类型时:options 为 name()
+ const name = typeof options === "object" ? options.name : options;
+ const dictName = name || DefaultName;
+ const dict1Handle = (options === null || options === void 0 ? void 0 : options.dict1) || "add";
+ for (let word in dict) {
+ const value = dict[word];
+ const pinyin = Array.isArray(value) ? value[0] : value;
+ const wordLength = stringLength(word);
+ if (wordLength === 1) {
+ addToOriginDict(dictName, word, pinyin, dict1Handle);
+ }
+ if (Array.isArray(value)) {
+ patterns.push({
+ zh: word,
+ pinyin,
+ probability: typeof value[1] === "number"
+ ? value[1]
+ : 2e-8 /* Probability.DICT */ * wordLength * wordLength,
+ length: wordLength,
+ priority: Priority.Normal,
+ dict: dictName,
+ pos: typeof value[2] === "string" ? value[2] : "",
+ });
+ }
+ else {
+ patterns.push({
+ zh: word,
+ pinyin,
+ probability: 2e-8 /* Probability.DICT */ * wordLength * wordLength,
+ length: wordLength,
+ priority: Priority.Normal,
+ dict: dictName,
+ });
+ }
+ }
+ acTree.build(patterns);
+}
+function removeDict(dictName) {
+ acTree.removeDict(dictName || DefaultName);
+ removeOriginDict(dictName || DefaultName);
+}
+function addToOriginDict(dict, char, pinyin, handle = "add") {
+ if (!originDictMap.get(dict)) {
+ originDictMap.set(dict, {});
+ }
+ const originDict = originDictMap.get(dict);
+ if (!originDict[char]) {
+ originDict[char] = DICT1.get(char);
+ }
+ if (handle === "add") {
+ const existedPinyin = DICT1.get(char);
+ if (existedPinyin && !existedPinyin.split(' ').includes(pinyin)) {
+ DICT1.set(char, `${existedPinyin} ${pinyin}`);
+ }
+ else if (!DICT1.get(char)) {
+ DICT1.set(char, pinyin);
+ }
+ }
+ else if (handle === "replace") {
+ DICT1.set(char, pinyin);
+ }
+}
+function removeOriginDict(dict) {
+ const originDict = originDictMap.get(dict) || {};
+ for (let char in originDict) {
+ DICT1.set(char, originDict[char]);
+ delete originDict[char];
+ }
+}
+
+const DefaultMatchOptions = {
+ precision: "first",
+ continuous: false,
+ space: "ignore",
+ lastPrecision: "start",
+ insensitive: true,
+ v: false,
+};
+const MAX_PINYIN_LENGTH = 6;
+/**
+ * @description: 检测汉语字符串和拼音是否匹配
+ * @param {string} text 汉语字符串
+ * @param {string} pinyin 拼音,支持各种缩写形式
+ * @param {MatchOptions=} options 配置项
+ * @return {Array | null} 若匹配成功,返回 text 中匹配成功的下标数组;若匹配失败,返回 null
+ */
+const match = (text, pinyin, options) => {
+ if ((options === null || options === void 0 ? void 0 : options.precision) === "any") {
+ options.lastPrecision = "any";
+ }
+ if (options === null || options === void 0 ? void 0 : options.v) {
+ pinyin = pinyin.replace(/ü/g, "v");
+ }
+ const completeOptions = Object.assign(Object.assign({}, DefaultMatchOptions), (options || {}));
+ // 是否大小写不敏感
+ if (completeOptions.insensitive !== false) {
+ text = text.toLowerCase();
+ pinyin = pinyin.toLowerCase();
+ }
+ // 移除空格
+ if (completeOptions.space === "ignore") {
+ pinyin = pinyin.replace(/\s/g, "");
+ }
+ const result = (options === null || options === void 0 ? void 0 : options.precision) === "any"
+ ? matchAny(text, pinyin, completeOptions)
+ : matchAboveStart(text, pinyin, completeOptions);
+ return processDoubleUnicodeIndex(text, result);
+};
+// 检测两个拼音最大的匹配长度
+const getMatchLength = (pinyin1, pinyin2) => {
+ let length = 0;
+ for (let i = 0; i < pinyin1.length; i++) {
+ if (pinyin1[i] === pinyin2[length]) {
+ length++;
+ }
+ }
+ return length;
+};
+const matchAny = (text, pinyin$1, options) => {
+ let result = [];
+ const words = splitString(text);
+ const ignoreSpace = options.space === "ignore";
+ for (let i = 0; i < words.length; i++) {
+ // 空格字符
+ if (ignoreSpace && words[i] === " ") {
+ result.push(i);
+ continue;
+ }
+ // 是否为中文匹配
+ if (words[i] === pinyin$1[0]) {
+ pinyin$1 = pinyin$1.slice(1);
+ result.push(i);
+ continue;
+ }
+ // 当前字的多音字拼音
+ const ps = pinyin(words[i], {
+ toneType: "none",
+ multiple: true,
+ type: "array",
+ v: options.v,
+ });
+ let currentLength = 0;
+ ps.forEach((p) => {
+ const length = getMatchLength(p, pinyin$1);
+ if (length > currentLength) {
+ currentLength = length;
+ }
+ });
+ if (currentLength) {
+ pinyin$1 = pinyin$1.slice(currentLength);
+ result.push(i);
+ }
+ if (!pinyin$1) {
+ break;
+ }
+ }
+ // 未匹配完
+ if (pinyin$1) {
+ return null;
+ }
+ // 是否连续
+ if (options.continuous) {
+ const _result = result;
+ const isNotContinuous = result.some((val, index) => index > 0 && val !== _result[index - 1] + 1);
+ if (isNotContinuous) {
+ return null;
+ }
+ }
+ if (options.space === "ignore") {
+ result = result.filter((i) => words[i] !== " ");
+ }
+ return result.length ? result : null;
+};
+const matchAboveStart = (text, pinyin$1, options) => {
+ const words = splitString(text);
+ // 二维数组 dp[i][j],i 表示遍历到的 text 索引+1, j 表示遍历到的 pinyin 的索引+1
+ const dp = Array(words.length + 1);
+ // 使用哨兵初始化 dp
+ for (let i = 0; i < dp.length; i++) {
+ dp[i] = Array(pinyin$1.length + 1);
+ dp[i][0] = [];
+ }
+ for (let i = 0; i < dp[0].length; i++) {
+ dp[0][i] = [];
+ }
+ // 动态规划匹配
+ for (let i = 1; i < dp.length; i++) {
+ // options.continuous 为 false 或 options.space 为 ignore 且当前为空格时,第 i 个字可以不参与匹配
+ if (!options.continuous ||
+ (options.space == "ignore" && words[i - 1] === " ")) {
+ for (let j = 1; j <= pinyin$1.length; j++) {
+ dp[i][j - 1] = dp[i - 1][j - 1];
+ }
+ }
+ // 第 i 个字参与匹配
+ for (let j = 1; j <= pinyin$1.length; j++) {
+ if (!dp[i - 1][j - 1]) {
+ // 第 i - 1 已经匹配失败,停止向后匹配
+ continue;
+ }
+ else if (j !== 1 && !dp[i - 1][j - 1].length) {
+ // 非开头且前面的字符未匹配完成,停止向后匹配
+ continue;
+ }
+ else {
+ const muls = pinyin(words[i - 1], {
+ type: "array",
+ toneType: "none",
+ multiple: true,
+ v: options.v,
+ });
+ // 非中文匹配
+ if (words[i - 1] === pinyin$1[j - 1]) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ // 记录最长的可匹配下标数组
+ if (!dp[i][j] || matches.length > dp[i][j].length) {
+ dp[i][j] = matches;
+ }
+ // pinyin 参数完全匹配完成,记录结果
+ if (j === pinyin$1.length) {
+ return dp[i][j];
+ }
+ }
+ // 剩余长度小于等于 MAX_PINYIN_LENGTH(6) 时,有可能是最后一个拼音了
+ if (pinyin$1.length - j <= MAX_PINYIN_LENGTH) {
+ // lastPrecision 参数处理
+ const last = muls.some((py) => {
+ if (options.lastPrecision === "any") {
+ return py.includes(pinyin$1.slice(j - 1, pinyin$1.length));
+ }
+ if (options.lastPrecision === "start") {
+ return py.startsWith(pinyin$1.slice(j - 1, pinyin$1.length));
+ }
+ if (options.lastPrecision === "first") {
+ return py[0] === pinyin$1.slice(j - 1, pinyin$1.length);
+ }
+ if (options.lastPrecision === "every") {
+ return py === pinyin$1.slice(j - 1, pinyin$1.length);
+ }
+ return false;
+ });
+ if (last) {
+ return [...dp[i - 1][j - 1], i - 1];
+ }
+ }
+ const precision = options.precision;
+ // precision 为 start 时,匹配开头
+ if (precision === "start") {
+ muls.forEach((py) => {
+ let end = j;
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ while (end <= pinyin$1.length &&
+ py.startsWith(pinyin$1.slice(j - 1, end))) {
+ if (!dp[i][end] || matches.length > dp[i][end].length) {
+ dp[i][end] = matches;
+ }
+ end++;
+ }
+ });
+ }
+ // precision 为 first 时,匹配首字母
+ if (precision === "first") {
+ if (muls.some((py) => py[0] === pinyin$1[j - 1])) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ // 记录最长的可匹配下标数组
+ if (!dp[i][j] || matches.length > dp[i][j].length) {
+ dp[i][j] = matches;
+ }
+ }
+ }
+ // 匹配当前汉字的完整拼音
+ const completeMatch = muls.find((py) => py === pinyin$1.slice(j - 1, j - 1 + py.length));
+ if (completeMatch) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ const endIndex = j - 1 + completeMatch.length;
+ // 记录最长的可匹配下标数组
+ if (!dp[i][endIndex] || matches.length > dp[i][endIndex].length) {
+ dp[i][endIndex] = matches;
+ }
+ }
+ }
+ }
+ }
+ return null;
+};
+// 对于双字节的字符,需要将 index 顺延 +1
+function processDoubleUnicodeIndex(text, indexArray) {
+ if (!indexArray) {
+ return null;
+ }
+ const result = [];
+ let doubleUnicodeCount = 0;
+ const words = splitString(text);
+ let i = 0;
+ for (let j = 0; j < indexArray.length; j++) {
+ const curIndex = indexArray[j];
+ while (i <= curIndex) {
+ if (words[i].length === 2) {
+ doubleUnicodeCount++;
+ }
+ i++;
+ }
+ const realIndex = curIndex + doubleUnicodeCount;
+ if (words[curIndex].length === 2) {
+ result.push(realIndex - 1, realIndex);
+ }
+ else {
+ result.push(realIndex);
+ }
+ }
+ return result;
+}
+
+const DefaultHtmlOptions = {
+ resultClass: "py-result-item",
+ chineseClass: "py-chinese-item",
+ pinyinClass: "py-pinyin-item",
+ nonChineseClass: "py-non-chinese-item",
+ wrapNonChinese: false,
+ toneType: "symbol",
+ customClassMap: {},
+ toneSandhi: true,
+ rp: true,
+ v: false,
+};
+/**
+ * @description: 获取带拼音汉字的 html 字符串
+ * @param {string} text 要转换的字符串
+ * @param {HtmlOptions=} options html 中标签类名相关配置
+ * @return {string} 带汉字的拼音字符串
+ */
+const html = (text, options) => {
+ const completeOptions = Object.assign(Object.assign({}, DefaultHtmlOptions), (options || {}));
+ const pinyinArray = pinyin(text, {
+ type: "all",
+ toneType: completeOptions.toneType,
+ toneSandhi: options === null || options === void 0 ? void 0 : options.toneSandhi,
+ v: completeOptions.v,
+ });
+ const result = pinyinArray.map((item) => {
+ let additionalClass = "";
+ for (const classname in completeOptions.customClassMap) {
+ const dict = completeOptions.customClassMap[classname];
+ if (dict.includes(item.origin)) {
+ additionalClass += ` ${classname}`;
+ }
+ }
+ if (item.isZh) {
+ // 汉字字符处理
+ const resultClass = completeOptions.resultClass || DefaultHtmlOptions.resultClass;
+ const chineseClass = completeOptions.chineseClass || DefaultHtmlOptions.chineseClass;
+ const pinyinClass = completeOptions.pinyinClass || DefaultHtmlOptions.pinyinClass;
+ return `${item.origin}${completeOptions.rp ? "" : ""}${completeOptions.rp ? "" : ""}`;
+ }
+ else {
+ // 非汉字字符处理
+ if (completeOptions.wrapNonChinese) {
+ const nonChineseClass = completeOptions.nonChineseClass || DefaultHtmlOptions.nonChineseClass;
+ return `${item.origin}`;
+ }
+ else {
+ return item.origin;
+ }
+ }
+ });
+ return result.join("");
+};
+
+const DEFAULT_OPTIONS$1 = {
+ pattern: "pinyin",
+ toneType: "symbol",
+ type: "string",
+ v: false,
+ nonZh: "spaced",
+};
+/**
+ * @description: 获取每个汉字的所有读音
+ * @param {string} text 要转换的汉语字符串
+ * @param {CompleteOptions=} options 配置项
+ * @return {string[] | string[][] | AllData[][]} options.type 为 string 时,返回字符串数组,中间用空格隔开;为 array 时,返回二维拼音字符串数组;为 all 时返回二维全部信息的数组
+ */
+function polyphonic(text, options = DEFAULT_OPTIONS$1) {
+ // 校验 text 类型是否正确
+ const legal = validateType(text);
+ if (!legal) {
+ return [];
+ }
+ // 传入空字符串
+ if (text === "") {
+ return [];
+ }
+ if (options.type === "all") {
+ options.pattern = "pinyin";
+ }
+ if (options.pattern === "num") {
+ options.toneType = "none";
+ }
+ if (options.removeNonZh) {
+ options.nonZh = "removed";
+ }
+ let list = getPolyphonicList(text);
+ // nonZh 参数及 removeNonZh 参数
+ list = middleWareNonZh(list, options);
+ let doubleList = getSplittedPolyphonicList(list);
+ // pattern 参数
+ doubleList.forEach((list) => {
+ middlewarePattern(list, options);
+ });
+ // toneType参数处理
+ doubleList.forEach((list) => {
+ middlewareToneType(list, options);
+ });
+ // v参数处理
+ doubleList.forEach((list) => {
+ middlewareV(list, options);
+ });
+ // type 参数处理
+ const result = doubleList.map((list) => handleType(list, options));
+ return result;
+}
+// 获取每个字多音字的数组
+const getPolyphonicList = (text) => {
+ return splitString(text).map((char) => {
+ const customPolyphonicDict = getCustomPolyphonicDict();
+ const pinyin = customPolyphonicDict.get(char) || DICT1.get(char) || char;
+ return {
+ origin: char,
+ result: pinyin,
+ isZh: pinyin !== char,
+ originPinyin: pinyin,
+ };
+ });
+};
+// 将多音字每个读音都单独切为一个数组项
+const getSplittedPolyphonicList = (list) => {
+ return list.map((item) => {
+ return item.isZh
+ ? item.result.split(" ").map((pinyin) => ({
+ origin: item.origin,
+ result: pinyin,
+ isZh: true,
+ originPinyin: pinyin,
+ }))
+ : [item];
+ });
+};
+// type 属性处理
+const handleType = (list, options) => {
+ if (options.type === "array") {
+ return Array.from(new Set(list.map((item) => item.result)));
+ }
+ if (options.type === "all") {
+ return list.map((item) => {
+ const pinyin = item.isZh ? item.result : "";
+ const { initial, final } = getInitialAndFinal(pinyin, options.initialPattern);
+ const { head, body, tail } = getFinalParts(pinyin);
+ return {
+ origin: item.origin,
+ pinyin,
+ initial,
+ final,
+ first: getFirstLetter(item.result, item.isZh),
+ finalHead: head,
+ finalBody: body,
+ finalTail: tail,
+ num: Number(getNumOfTone(item.originPinyin)),
+ isZh: item.isZh,
+ inZhRange: !!DICT1.get(item.origin),
+ };
+ });
+ }
+ return Array.from(new Set(list.map((item) => item.result))).join(" ");
+};
+
+const DefaultConvertOptions = {
+ separator: ' ',
+ format: 'numToSymbol',
+};
+const toneMap = {
+ a: ['a', 'ā', 'á', 'ǎ', 'à'],
+ o: ['o', 'ō', 'ó', 'ǒ', 'ò'],
+ e: ['e', 'ē', 'é', 'ě', 'è'],
+ ü: ['ü', 'ǖ', 'ǘ', 'ǚ', 'ǜ'],
+ v: ['ü', 'ǖ', 'ǘ', 'ǚ', 'ǜ'],
+ ui: ['ui', 'uī', 'uí', 'uǐ', 'uì'],
+ iu: ['iu', 'iū', 'iú', 'iǔ', 'iù'],
+ i: ['i', 'ī', 'í', 'ǐ', 'ì'],
+ u: ['u', 'ū', 'ú', 'ǔ', 'ù'],
+ n: ['n', 'n̄', 'ń', 'ň', 'ǹ'],
+ m: ['m', 'm̄', 'ḿ', 'm̌', 'm̀'],
+ ê: ['ê', 'ê̄', 'ế', 'ê̌', 'ề'],
+};
+/**
+ * @description: 拼音格式转换。pin1 yin1 -> pīn yīn 或 pīn yīn -> pin1 yin1 或 pīn yīn -> pin yin
+ * @param {string | string[]} pinyin 要转换的拼音字符串或者拼音字符串数组
+ * @param {ConvertOptions=} options 配置项
+ * @return {string | string[]} 转换后的拼音字符串或者拼音字符串数组
+ */
+function convert(pinyin, options) {
+ options = Object.assign(Object.assign({}, DefaultConvertOptions), (options || {}));
+ const originType = typeof pinyin;
+ if (typeof pinyin === 'string') {
+ pinyin = pinyin.split(options.separator);
+ }
+ pinyin = pinyin.map((item) => {
+ const format = options.format;
+ if (format === 'numToSymbol') {
+ return formatNumToSymbol(item);
+ }
+ else if (format === 'symbolToNum') {
+ return formatSymbolToNum(item);
+ }
+ else if (format === 'toneNone') {
+ return formatToneNone(item);
+ }
+ return item;
+ });
+ if (originType === 'string') {
+ return pinyin.join(options.separator);
+ }
+ else {
+ return pinyin;
+ }
+}
+function formatNumToSymbol(pinyin) {
+ const lastChar = Number(pinyin[pinyin.length - 1]);
+ if (lastChar >= 0 && lastChar <= 4) {
+ for (let key in toneMap) {
+ if (pinyin.includes(key)) {
+ return pinyin
+ .slice(0, pinyin.length - 1)
+ .replace(key, toneMap[key][lastChar]);
+ }
+ }
+ return pinyin;
+ }
+ else {
+ return pinyin;
+ }
+}
+function formatSymbolToNum(pinyin) {
+ return `${getPinyinWithoutTone(pinyin)}${getNumOfTone(pinyin)}`;
+}
+function formatToneNone(pinyin) {
+ return getPinyinWithoutTone(pinyin);
+}
+
+var OutputFormat;
+(function (OutputFormat) {
+ OutputFormat[OutputFormat["AllSegment"] = 1] = "AllSegment";
+ OutputFormat[OutputFormat["AllArray"] = 2] = "AllArray";
+ OutputFormat[OutputFormat["AllString"] = 3] = "AllString";
+ OutputFormat[OutputFormat["PinyinSegment"] = 4] = "PinyinSegment";
+ OutputFormat[OutputFormat["PinyinArray"] = 5] = "PinyinArray";
+ OutputFormat[OutputFormat["PinyinString"] = 6] = "PinyinString";
+ OutputFormat[OutputFormat["ZhSegment"] = 7] = "ZhSegment";
+ OutputFormat[OutputFormat["ZhArray"] = 8] = "ZhArray";
+ OutputFormat[OutputFormat["ZhString"] = 9] = "ZhString";
+})(OutputFormat || (OutputFormat = {}));
+function middlewareSegment(list, matches) {
+ const segments = [];
+ let i = 0;
+ let j = 0;
+ while (i < list.length && j < matches.length) {
+ const match = matches[j];
+ const item = list[i];
+ if (match.zh.startsWith(item.origin)) {
+ const start = i;
+ const chars = splitString(match.zh);
+ let cur = start + 1;
+ while (cur < list.length && list[cur].origin === chars[cur - start]) {
+ cur++;
+ }
+ const _segment = list.slice(start, cur);
+ segments.push({
+ segment: _segment.map((item) => ({
+ origin: item.origin,
+ result: item.result,
+ })),
+ isZh: true,
+ });
+ i += cur - start;
+ j++;
+ }
+ else {
+ segments.push({
+ segment: [
+ {
+ origin: item.origin,
+ result: item.result,
+ }
+ ],
+ isZh: false,
+ });
+ i++;
+ }
+ }
+ while (i < list.length) {
+ const item = list[i];
+ segments.push({
+ segment: [
+ {
+ origin: item.origin,
+ result: item.result,
+ }
+ ],
+ isZh: false,
+ });
+ i++;
+ }
+ return segments;
+}
+function middlewareOutputFormat(segments, options) {
+ const { format = OutputFormat.AllSegment, separator = ' ' } = options;
+ if (format === OutputFormat.AllSegment) {
+ return segments.map(item => {
+ return {
+ origin: item.segment.map(item => item.origin).join(''),
+ result: item.segment.map(item => item.result).join(''),
+ };
+ });
+ }
+ else if (format === OutputFormat.AllArray) {
+ return segments.map(item => item.segment);
+ }
+ else if (format === OutputFormat.AllString) {
+ const list = segments.map(item => {
+ return {
+ origin: item.segment.map(item => item.origin).join(''),
+ result: item.segment.map(item => item.result).join(''),
+ };
+ });
+ return {
+ origin: list.map(item => item.origin).join(separator),
+ result: list.map(item => item.result).join(separator),
+ };
+ }
+ else if (format === OutputFormat.PinyinSegment) {
+ return segments.map(item => item.segment.map(item => item.result).join(''));
+ }
+ else if (format === OutputFormat.PinyinArray) {
+ return segments.map(item => item.segment.map(item => item.result));
+ }
+ else if (format === OutputFormat.PinyinString) {
+ return segments.map(item => item.segment.map(item => item.result).join('')).join(separator);
+ }
+ else if (format === OutputFormat.ZhSegment) {
+ return segments.map(item => item.segment.map(item => item.origin).join(''));
+ }
+ else if (format === OutputFormat.ZhArray) {
+ return segments.map(item => item.segment.map(item => item.origin));
+ }
+ else if (format === OutputFormat.ZhString) {
+ return segments.map(item => item.segment.map(item => item.origin).join('')).join(separator);
+ }
+}
+
+const DEFAULT_OPTIONS = {
+ toneType: "symbol",
+ mode: "normal",
+ nonZh: "spaced",
+ v: false,
+ separator: " ",
+ toneSandhi: true,
+ segmentit: 2 /* TokenizationAlgorithm.MaxProbability */,
+ format: OutputFormat.AllSegment,
+};
+function segment(word, options) {
+ options = Object.assign(Object.assign({}, DEFAULT_OPTIONS), (options || {}));
+ // 校验 word 类型是否正确
+ const legal = validateType(word);
+ if (!legal) {
+ return word;
+ }
+ if (options.surname === undefined) {
+ if (options.mode === "surname") {
+ options.surname = "all";
+ }
+ else {
+ options.surname = "off";
+ }
+ }
+ let _list = Array(stringLength(word));
+ let { list, matches } = getPinyin(word, _list, options.surname, options.segmentit);
+ // 一和不变调处理
+ list = middlewareToneSandhi(list, options.toneSandhi);
+ // nonZh
+ list = middleWareNonZh(list, options);
+ // toneType参数处理
+ middlewareToneType(list, options);
+ // v参数处理
+ middlewareV(list, options);
+ const segments = middlewareSegment(list, matches);
+ return middlewareOutputFormat(segments, { format: options.format, separator: options.separator });
+}
+
+export { OutputFormat, addDict, clearCustomDict, convert, customPinyin, getFinalParts, getInitialAndFinal, getNumOfTone, html, match, pinyin, polyphonic, removeDict, segment };
From 6498fc4a86eca18e4f7f1e0048f7ef4eadadc168 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Tue, 19 Aug 2025 08:28:12 +0800
Subject: [PATCH 14/22] =?UTF-8?q?feat:=20FluPinyin=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?=E6=8B=BC=E9=9F=B3=E7=BC=93=E5=AD=98=E6=9C=BA=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/qml/page/T_Pinyin.qml | 2 +-
.../imports/FluentUI/Controls/FluPinyin.qml | 73 ++--
src/Qt5/imports/FluentUI/JS/PinyinPro.mjs | 344 ++++++++++++++++++
src/Qt5/imports/FluentUI/plugins.qmltypes | 44 ++-
.../imports/FluentUI/Controls/FluPinyin.qml | 73 ++--
src/Qt6/imports/FluentUI/JS/PinyinPro.mjs | 344 ++++++++++++++++++
6 files changed, 821 insertions(+), 59 deletions(-)
diff --git a/example/qml/page/T_Pinyin.qml b/example/qml/page/T_Pinyin.qml
index 7343ab8d..ae755a8b 100644
--- a/example/qml/page/T_Pinyin.qml
+++ b/example/qml/page/T_Pinyin.qml
@@ -120,7 +120,7 @@ FluScrollablePage {
title: "segment"
ColumnLayout {
FluText {
- text: 'FluPinyin.segment("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") --> \n%1'.arg(JSON.stringify(FluPinyin.segment("小明硕士毕业于中国科学院计算所,后在日本京都大学深造"), null, 2))
+ text: 'FluPinyin.segment("小明硕士毕业于中国科学院计算所") --> \n%1'.arg(JSON.stringify(FluPinyin.segment("小明硕士毕业于中国科学院计算所,后在日本京都大学深造"), null, 2))
}
}
}
diff --git a/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml b/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
index f9e46bf4..6e4edc90 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
@@ -6,25 +6,24 @@ import "./../JS/PinyinPro.mjs" as Pinyin
QtObject {
property list children
readonly property var context: Pinyin
- property int patternValue: 500 // In "size" mode, number of patterns per build; in "group" mode, number of groups to divide patterns into
property string patternBuildMode: "size" // size, group
- property alias patternBuildInterval: patternTimer.interval
+ property int patternValue: 500 // In "size" mode, number of patterns per build; in "group" mode, number of groups to divide patterns into
+ property int patternBuildInterval: 1500
readonly property alias isPatternBuilt: d.isPatternBuilt
readonly property var outputFormat: Pinyin.OutputFormat
function buildPattern(buildAllAtOnce = true) {
- if (d.isPatternBuilt || patternTimer.running) {
+ const builder = context.getPatternsNormalBuilder(patternValue,
+ patternBuildMode)
+ if (!builder || d.isPatternBuilt || (d.patternTimer && d.patternTimer.running)) {
return
}
- d.builder = context.getPatternsNormalBuilder(patternValue,
- patternBuildMode)
if (buildAllAtOnce) {
- while (!d.buildNext()) {
+ while (!builder.next().done) {
}
- d.builder = null
d.isPatternBuilt = true
} else {
- patternTimer.start()
+ d.patternTimer = d.stepRunner(builder, () => d.isPatternBuilt = true, patternBuildInterval)
}
}
function addDict(dict, options) {
@@ -54,26 +53,54 @@ QtObject {
function segment(word, options) {
return context.segment(word, options)
}
+ function createCache(data, options, buildCache = true) {
+ return context.createCache(data, options, buildCache)
+ }
+ function rebuildCache(cache, data, asyncArg) {
+ cache.data = data
+ const arg = Object.assign({
+ "async": true,
+ "chunkSize": 50,
+ "interval": 500,
+ "triggeredOnStart": true
+ }, asyncArg || {})
+ if (arg.async) {
+ const timer = d.stepRunner(cache.buildGenerator(arg.chunkSize, true, arg.interval, arg.triggeredOnStart))
+ if (cache.data.length > arg.chunkSize) {
+ cache.generatorDeleter = timer.destroy
+ }
+ } else {
+ cache.build(true)
+ }
+ }
+ function findMatches(cache, pinyin) {
+ return context.findMatches(cache, pinyin)
+ }
children: [
QtObject {
id: d
+ property Timer patternTimer: null
property bool isPatternBuilt: false
- property var builder: null
- function buildNext() {
- return d.builder.next().done
- }
- },
- Timer {
- id: patternTimer
- interval: 1500
- repeat: true
- triggeredOnStart: true
- onTriggered: {
- if (d.buildNext()) {
- d.builder = null
- d.isPatternBuilt = true
- stop()
+ function stepRunner(generator, doneCallback, interval = 500, triggeredOnStart = true) {
+ const timer = Qt.createQmlObject("import QtQuick 2.15; Timer {}", Qt.application)
+ timer.interval = interval
+ timer.triggered.connect(function () {
+ const result = generator.next()
+ if (result.done) {
+ timer.destroy()
+ if (typeof doneCallback === "function") {
+ doneCallback()
+ }
+ } else {
+ timer.start()
+ }
+ })
+ timer.Component.onDestruction.connect(() => generator = null)
+ if (triggeredOnStart) {
+ generator.next()
}
+ timer.start()
+ return timer
}
}
]
diff --git a/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs b/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
index aa5d6d4e..ab29686a 100644
--- a/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
+++ b/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
@@ -25194,4 +25194,348 @@ function segment(word, options) {
return middlewareOutputFormat(segments, { format: options.format, separator: options.separator });
}
+class PinyinCache {
+ constructor(data = [], options = null) {
+ this.cache = new Map();
+ this.data = data;
+ this.setOptions(options);
+ this.isBuilt = false;
+ this.generatorDeleter = null;
+ }
+ // 构建拼音缓存
+ build(force = false) {
+ if (this.isBuilt && !force) {
+ return;
+ }
+ this.cache.clear();
+ if (this.data.length === 0) {
+ return;
+ }
+ const text2pinyin = (text) => {
+ // 是否大小写不敏感
+ if (this._options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ return {
+ "text": text,
+ "pinyin": splitString(text).map((word) => {
+ return pinyin(word, {
+ toneType: "none",
+ multiple: true,
+ type: "array",
+ v: this._options.v,
+ });
+ })
+ }
+ }
+ for (const item of this.data) {
+ // 处理字符串类型
+ if (typeof item === 'string') {
+ this.cache.set(item, text2pinyin(item).pinyin);
+ }
+ // 处理对象类型,需要提供字段提取函数,返回值为字符串数组
+ else if (typeof item === 'object' && item !== null && typeof this._options.textSelector === 'function') {
+ const texts = this._options.textSelector(item);
+ if (Array.isArray(texts)) {
+ const pinyinResults = {};
+ for (const text of texts) {
+ if (typeof text === 'string') {
+ const result = text2pinyin(text);
+ pinyinResults[result.text] = result.pinyin; // key为已处理大小写的文本,value为拼音数组
+ }
+ }
+ this.cache.set(item, pinyinResults);
+ }
+ }
+ }
+ this.isBuilt = true;
+ }
+ // 异步分块构建拼音缓存
+ *buildGenerator(chunkSize = 50, force = false) {
+ if (this.isBuilt && !force) {
+ return;
+ }
+ this.deleteGenerator();
+ this.clear();
+ if (this.data.length === 0) {
+ return;
+ }
+ const text2pinyin = (text) => {
+ // 是否大小写不敏感
+ if (this._options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ return {
+ "text": text,
+ "pinyin": splitString(text).map((word) => {
+ return pinyin(word, {
+ toneType: "none",
+ multiple: true,
+ type: "array",
+ v: this._options.v,
+ });
+ })
+ }
+ }
+ let processedCount = 0;
+ for (const item of this.data) {
+ // 处理字符串类型
+ if (typeof item === 'string') {
+ this.cache.set(item, text2pinyin(item).pinyin);
+ processedCount += 1;
+ }
+ // 处理对象类型,需要提供字段提取函数,返回值为字符串数组
+ else if (typeof item === 'object' && item !== null && typeof this._options.textSelector === 'function') {
+ const texts = this._options.textSelector(item);
+ if (Array.isArray(texts)) {
+ const pinyinResults = {};
+ for (const text of texts) {
+ if (typeof text === 'string') {
+ const result = text2pinyin(text);
+ pinyinResults[result.text] = result.pinyin; // key为已处理大小写的文本,value为拼音数组
+ }
+ }
+ this.cache.set(item, pinyinResults);
+ processedCount += 1;
+ }
+ }
+ if (processedCount >= chunkSize) {
+ yield;
+ processedCount = 0;
+ }
+ }
+ this.isBuilt = true;
+ }
+ // 获取缓存的拼音数据
+ getPinyin(text) {
+ return this.cache.get(text);
+ }
+ // 清除缓存
+ clear() {
+ this.cache.clear();
+ this.isBuilt = false;
+ }
+ setOptions(options) {
+ if ((options === null || options === void 0 ? void 0 : options.precision) === "any") {
+ options.lastPrecision = "any";
+ }
+ this._options = Object.assign(Object.assign({}, DefaultMatchOptions), (options || {}));
+ }
+ getOptions() {
+ return this._options;
+ }
+ deleteGenerator() {
+ if (typeof this.generatorDeleter === 'function') {
+ this.generatorDeleter();
+ this.generatorDeleter = null;
+ }
+ }
+}
+const matchAnyWithCache = (textPinyin, text, pinyin$1, options) => {
+ let result = [];
+ const words = splitString(text);
+ const ignoreSpace = options.space === "ignore";
+ for (let i = 0; i < words.length; i++) {
+ // 空格字符
+ if (ignoreSpace && words[i] === " ") {
+ result.push(i);
+ continue;
+ }
+ // 是否为中文匹配
+ if (words[i] === pinyin$1[0]) {
+ pinyin$1 = pinyin$1.slice(1);
+ result.push(i);
+ continue;
+ }
+ // 当前字的多音字拼音
+ const ps = textPinyin[i] || [];
+ let currentLength = 0;
+ ps.forEach((p) => {
+ const length = getMatchLength(p, pinyin$1);
+ if (length > currentLength) {
+ currentLength = length;
+ }
+ });
+ if (currentLength) {
+ pinyin$1 = pinyin$1.slice(currentLength);
+ result.push(i);
+ }
+ if (!pinyin$1) {
+ break;
+ }
+ }
+ // 未匹配完
+ if (pinyin$1) {
+ return null;
+ }
+ // 是否连续
+ if (options.continuous) {
+ const _result = result;
+ const isNotContinuous = result.some((val, index) => index > 0 && val !== _result[index - 1] + 1);
+ if (isNotContinuous) {
+ return null;
+ }
+ }
+ if (options.space === "ignore") {
+ result = result.filter((i) => words[i] !== " ");
+ }
+ return result.length ? result : null;
+}
+const matchAboveStartWithCache = (textPinyin, text, pinyin$1, options) => {
+ const words = splitString(text);
+ // 二维数组 dp[i][j],i 表示遍历到的 text 索引+1, j 表示遍历到的 pinyin 的索引+1
+ const dp = Array(words.length + 1);
+ // 使用哨兵初始化 dp
+ for (let i = 0; i < dp.length; i++) {
+ dp[i] = Array(pinyin$1.length + 1);
+ dp[i][0] = [];
+ }
+ for (let i = 0; i < dp[0].length; i++) {
+ dp[0][i] = [];
+ }
+ // 动态规划匹配
+ for (let i = 1; i < dp.length; i++) {
+ // options.continuous 为 false 或 options.space 为 ignore 且当前为空格时,第 i 个字可以不参与匹配
+ if (!options.continuous ||
+ (options.space == "ignore" && words[i - 1] === " ")) {
+ for (let j = 1; j <= pinyin$1.length; j++) {
+ dp[i][j - 1] = dp[i - 1][j - 1];
+ }
+ }
+ // 第 i 个字参与匹配
+ for (let j = 1; j <= pinyin$1.length; j++) {
+ if (!dp[i - 1][j - 1]) {
+ // 第 i - 1 已经匹配失败,停止向后匹配
+ continue;
+ }
+ else if (j !== 1 && !dp[i - 1][j - 1].length) {
+ // 非开头且前面的字符未匹配完成,停止向后匹配
+ continue;
+ }
+ else {
+ const muls = textPinyin[i - 1] || [];
+ // 非中文匹配
+ if (words[i - 1] === pinyin$1[j - 1]) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ // 记录最长的可匹配下标数组
+ if (!dp[i][j] || matches.length > dp[i][j].length) {
+ dp[i][j] = matches;
+ }
+ // pinyin 参数完全匹配完成,记录结果
+ if (j === pinyin$1.length) {
+ return dp[i][j];
+ }
+ }
+ // 剩余长度小于等于 MAX_PINYIN_LENGTH(6) 时,有可能是最后一个拼音了
+ if (pinyin$1.length - j <= MAX_PINYIN_LENGTH) {
+ // lastPrecision 参数处理
+ const last = muls.some((py) => {
+ if (options.lastPrecision === "any") {
+ return py.includes(pinyin$1.slice(j - 1, pinyin$1.length));
+ }
+ if (options.lastPrecision === "start") {
+ return py.startsWith(pinyin$1.slice(j - 1, pinyin$1.length));
+ }
+ if (options.lastPrecision === "first") {
+ return py[0] === pinyin$1.slice(j - 1, pinyin$1.length);
+ }
+ if (options.lastPrecision === "every") {
+ return py === pinyin$1.slice(j - 1, pinyin$1.length);
+ }
+ return false;
+ });
+ if (last) {
+ return [...dp[i - 1][j - 1], i - 1];
+ }
+ }
+ const precision = options.precision;
+ // precision 为 start 时,匹配开头
+ if (precision === "start") {
+ muls.forEach((py) => {
+ let end = j;
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ while (end <= pinyin$1.length &&
+ py.startsWith(pinyin$1.slice(j - 1, end))) {
+ if (!dp[i][end] || matches.length > dp[i][end].length) {
+ dp[i][end] = matches;
+ }
+ end++;
+ }
+ });
+ }
+ // precision 为 first 时,匹配首字母
+ if (precision === "first") {
+ if (muls.some((py) => py[0] === pinyin$1[j - 1])) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ // 记录最长的可匹配下标数组
+ if (!dp[i][j] || matches.length > dp[i][j].length) {
+ dp[i][j] = matches;
+ }
+ }
+ }
+ // 匹配当前汉字的完整拼音
+ const completeMatch = muls.find((py) => py === pinyin$1.slice(j - 1, j - 1 + py.length));
+ if (completeMatch) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ const endIndex = j - 1 + completeMatch.length;
+ // 记录最长的可匹配下标数组
+ if (!dp[i][endIndex] || matches.length > dp[i][endIndex].length) {
+ dp[i][endIndex] = matches;
+ }
+ }
+ }
+ }
+ }
+ return null;
+}
+function findMatches(cache, pinyin) {
+ const options = cache.getOptions();
+ if (options.v) {
+ pinyin = pinyin.replace(/ü/g, "v");
+ }
+ // 是否大小写不敏感
+ if (options.insensitive !== false) {
+ pinyin = pinyin.toLowerCase();
+ }
+ // 移除空格
+ if (options.space === "ignore") {
+ pinyin = pinyin.replace(/\s/g, "");
+ }
+ return cache.data.filter((item) => {
+ const pinyinData = cache.getPinyin(item);
+ // 处理字符串类型
+ if (typeof item === 'string') {
+ let text = item; // 传入match的文本是需要处理大小写的
+ if (options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ const result = options.precision === "any"
+ ? matchAnyWithCache(pinyinData, text, pinyin, options)
+ : matchAboveStartWithCache(pinyinData, text, pinyin, options);
+ return result && result.length > 0;
+ }
+ // 处理对象类型
+ else if (typeof item === 'object' && item !== null && typeof options.textSelector === 'function' && pinyinData) {
+ for (const text in pinyinData) {
+ const textPinyin = pinyinData[text];
+ const result = options.precision === "any"
+ ? matchAnyWithCache(textPinyin, text, pinyin, options)
+ : matchAboveStartWithCache(textPinyin, text, pinyin, options);
+ if (result && result.length > 0) {
+ return true;
+ }
+ }
+ }
+ return false;
+ })
+}
+function createCache(data, options, build = true) {
+ const cache = new PinyinCache(data || [], options);
+ if (build) {
+ cache.build();
+ }
+ return cache;
+}
+export { createCache, findMatches };
+
export { OutputFormat, addDict, clearCustomDict, convert, customPinyin, getFinalParts, getInitialAndFinal, getNumOfTone, html, match, pinyin, polyphonic, removeDict, segment };
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index ba2cb747..db59991c 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -2750,37 +2750,37 @@ Module {
Property { name: "darkClickListener"; type: "QVariant" }
Property {
name: "buttonStayTop"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMinimize"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMaximize"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonClose"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonDark"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "layoutMacosButtons"
- type: "FluLoader_QMLTYPE_13"
+ type: "FluLoader_QMLTYPE_14"
isReadonly: true
isPointer: true
}
@@ -3507,8 +3507,8 @@ Module {
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
- Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_45"; isPointer: true }
- Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_45"; isPointer: true }
+ Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_41"; isPointer: true }
+ Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_41"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
@@ -3516,13 +3516,13 @@ Module {
Property { name: "hideNavAppBar"; type: "bool" }
Property {
name: "buttonMenu"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonBack"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
@@ -3710,10 +3710,10 @@ Module {
isSingleton: true
Property { name: "children"; type: "QObject"; isList: true; isReadonly: true }
Property { name: "context"; type: "QVariant"; isReadonly: true }
- Property { name: "patternValue"; type: "int" }
Property { name: "patternBuildMode"; type: "string" }
- Property { name: "outputFormat"; type: "QVariant"; isReadonly: true }
+ Property { name: "patternValue"; type: "int" }
Property { name: "patternBuildInterval"; type: "int" }
+ Property { name: "outputFormat"; type: "QVariant"; isReadonly: true }
Property { name: "isPatternBuilt"; type: "bool"; isReadonly: true }
Method {
name: "buildPattern"
@@ -3773,6 +3773,26 @@ Module {
Parameter { name: "word"; type: "QVariant" }
Parameter { name: "options"; type: "QVariant" }
}
+ Method {
+ name: "createCache"
+ type: "QVariant"
+ Parameter { name: "data"; type: "QVariant" }
+ Parameter { name: "options"; type: "QVariant" }
+ Parameter { name: "buildCache"; type: "QVariant" }
+ }
+ Method {
+ name: "rebuildCache"
+ type: "QVariant"
+ Parameter { name: "cache"; type: "QVariant" }
+ Parameter { name: "data"; type: "QVariant" }
+ Parameter { name: "asyncArg"; type: "QVariant" }
+ }
+ Method {
+ name: "findMatches"
+ type: "QVariant"
+ Parameter { name: "cache"; type: "QVariant" }
+ Parameter { name: "pinyin"; type: "QVariant" }
+ }
}
Component {
prototype: "QQuickPage"
diff --git a/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml b/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
index 80634100..7a0b52fb 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
@@ -6,25 +6,24 @@ import "./../JS/PinyinPro.mjs" as Pinyin
QtObject {
property list children
readonly property var context: Pinyin
- property int patternValue: 500 // In "size" mode, number of patterns per build; in "group" mode, number of groups to divide patterns into
property string patternBuildMode: "size" // size, group
- property alias patternBuildInterval: patternTimer.interval
+ property int patternValue: 500 // In "size" mode, number of patterns per build; in "group" mode, number of groups to divide patterns into
+ property int patternBuildInterval: 1500
readonly property alias isPatternBuilt: d.isPatternBuilt
readonly property var outputFormat: Pinyin.OutputFormat
function buildPattern(buildAllAtOnce = true) {
- if (d.isPatternBuilt || patternTimer.running) {
+ const builder = context.getPatternsNormalBuilder(patternValue,
+ patternBuildMode)
+ if (!builder || d.isPatternBuilt || (d.patternTimer && d.patternTimer.running)) {
return
}
- d.builder = context.getPatternsNormalBuilder(patternValue,
- patternBuildMode)
if (buildAllAtOnce) {
- while (!d.buildNext()) {
+ while (!builder.next().done) {
}
- d.builder = null
d.isPatternBuilt = true
} else {
- patternTimer.start()
+ d.patternTimer = d.stepRunner(builder, () => d.isPatternBuilt = true, patternBuildInterval)
}
}
function addDict(dict, options) {
@@ -54,26 +53,54 @@ QtObject {
function segment(word, options) {
return context.segment(word, options)
}
+ function createCache(data, options, buildCache = true) {
+ return context.createCache(data, options, buildCache)
+ }
+ function rebuildCache(cache, data, asyncArg) {
+ cache.data = data
+ const arg = Object.assign({
+ "async": true,
+ "chunkSize": 50,
+ "interval": 500,
+ "triggeredOnStart": true
+ }, asyncArg || {})
+ if (arg.async) {
+ const timer = d.stepRunner(cache.buildGenerator(arg.chunkSize, true, arg.interval, arg.triggeredOnStart))
+ if (cache.data.length > arg.chunkSize) {
+ cache.generatorDeleter = timer.destroy
+ }
+ } else {
+ cache.build(true)
+ }
+ }
+ function findMatches(cache, pinyin) {
+ return context.findMatches(cache, pinyin)
+ }
children: [
QtObject {
id: d
+ property Timer patternTimer: null
property bool isPatternBuilt: false
- property var builder: null
- function buildNext() {
- return d.builder.next().done
- }
- },
- Timer {
- id: patternTimer
- interval: 1500
- repeat: true
- triggeredOnStart: true
- onTriggered: {
- if (d.buildNext()) {
- d.builder = null
- d.isPatternBuilt = true
- stop()
+ function stepRunner(generator, doneCallback, interval = 500, triggeredOnStart = true) {
+ const timer = Qt.createQmlObject("import QtQuick 2.15; Timer {}", Qt.application)
+ timer.interval = interval
+ timer.triggered.connect(function () {
+ const result = generator.next()
+ if (result.done) {
+ timer.destroy()
+ if (typeof doneCallback === "function") {
+ doneCallback()
+ }
+ } else {
+ timer.start()
+ }
+ })
+ timer.Component.onDestruction.connect(() => generator = null)
+ if (triggeredOnStart) {
+ generator.next()
}
+ timer.start()
+ return timer
}
}
]
diff --git a/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs b/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
index aa5d6d4e..ab29686a 100644
--- a/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
+++ b/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
@@ -25194,4 +25194,348 @@ function segment(word, options) {
return middlewareOutputFormat(segments, { format: options.format, separator: options.separator });
}
+class PinyinCache {
+ constructor(data = [], options = null) {
+ this.cache = new Map();
+ this.data = data;
+ this.setOptions(options);
+ this.isBuilt = false;
+ this.generatorDeleter = null;
+ }
+ // 构建拼音缓存
+ build(force = false) {
+ if (this.isBuilt && !force) {
+ return;
+ }
+ this.cache.clear();
+ if (this.data.length === 0) {
+ return;
+ }
+ const text2pinyin = (text) => {
+ // 是否大小写不敏感
+ if (this._options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ return {
+ "text": text,
+ "pinyin": splitString(text).map((word) => {
+ return pinyin(word, {
+ toneType: "none",
+ multiple: true,
+ type: "array",
+ v: this._options.v,
+ });
+ })
+ }
+ }
+ for (const item of this.data) {
+ // 处理字符串类型
+ if (typeof item === 'string') {
+ this.cache.set(item, text2pinyin(item).pinyin);
+ }
+ // 处理对象类型,需要提供字段提取函数,返回值为字符串数组
+ else if (typeof item === 'object' && item !== null && typeof this._options.textSelector === 'function') {
+ const texts = this._options.textSelector(item);
+ if (Array.isArray(texts)) {
+ const pinyinResults = {};
+ for (const text of texts) {
+ if (typeof text === 'string') {
+ const result = text2pinyin(text);
+ pinyinResults[result.text] = result.pinyin; // key为已处理大小写的文本,value为拼音数组
+ }
+ }
+ this.cache.set(item, pinyinResults);
+ }
+ }
+ }
+ this.isBuilt = true;
+ }
+ // 异步分块构建拼音缓存
+ *buildGenerator(chunkSize = 50, force = false) {
+ if (this.isBuilt && !force) {
+ return;
+ }
+ this.deleteGenerator();
+ this.clear();
+ if (this.data.length === 0) {
+ return;
+ }
+ const text2pinyin = (text) => {
+ // 是否大小写不敏感
+ if (this._options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ return {
+ "text": text,
+ "pinyin": splitString(text).map((word) => {
+ return pinyin(word, {
+ toneType: "none",
+ multiple: true,
+ type: "array",
+ v: this._options.v,
+ });
+ })
+ }
+ }
+ let processedCount = 0;
+ for (const item of this.data) {
+ // 处理字符串类型
+ if (typeof item === 'string') {
+ this.cache.set(item, text2pinyin(item).pinyin);
+ processedCount += 1;
+ }
+ // 处理对象类型,需要提供字段提取函数,返回值为字符串数组
+ else if (typeof item === 'object' && item !== null && typeof this._options.textSelector === 'function') {
+ const texts = this._options.textSelector(item);
+ if (Array.isArray(texts)) {
+ const pinyinResults = {};
+ for (const text of texts) {
+ if (typeof text === 'string') {
+ const result = text2pinyin(text);
+ pinyinResults[result.text] = result.pinyin; // key为已处理大小写的文本,value为拼音数组
+ }
+ }
+ this.cache.set(item, pinyinResults);
+ processedCount += 1;
+ }
+ }
+ if (processedCount >= chunkSize) {
+ yield;
+ processedCount = 0;
+ }
+ }
+ this.isBuilt = true;
+ }
+ // 获取缓存的拼音数据
+ getPinyin(text) {
+ return this.cache.get(text);
+ }
+ // 清除缓存
+ clear() {
+ this.cache.clear();
+ this.isBuilt = false;
+ }
+ setOptions(options) {
+ if ((options === null || options === void 0 ? void 0 : options.precision) === "any") {
+ options.lastPrecision = "any";
+ }
+ this._options = Object.assign(Object.assign({}, DefaultMatchOptions), (options || {}));
+ }
+ getOptions() {
+ return this._options;
+ }
+ deleteGenerator() {
+ if (typeof this.generatorDeleter === 'function') {
+ this.generatorDeleter();
+ this.generatorDeleter = null;
+ }
+ }
+}
+const matchAnyWithCache = (textPinyin, text, pinyin$1, options) => {
+ let result = [];
+ const words = splitString(text);
+ const ignoreSpace = options.space === "ignore";
+ for (let i = 0; i < words.length; i++) {
+ // 空格字符
+ if (ignoreSpace && words[i] === " ") {
+ result.push(i);
+ continue;
+ }
+ // 是否为中文匹配
+ if (words[i] === pinyin$1[0]) {
+ pinyin$1 = pinyin$1.slice(1);
+ result.push(i);
+ continue;
+ }
+ // 当前字的多音字拼音
+ const ps = textPinyin[i] || [];
+ let currentLength = 0;
+ ps.forEach((p) => {
+ const length = getMatchLength(p, pinyin$1);
+ if (length > currentLength) {
+ currentLength = length;
+ }
+ });
+ if (currentLength) {
+ pinyin$1 = pinyin$1.slice(currentLength);
+ result.push(i);
+ }
+ if (!pinyin$1) {
+ break;
+ }
+ }
+ // 未匹配完
+ if (pinyin$1) {
+ return null;
+ }
+ // 是否连续
+ if (options.continuous) {
+ const _result = result;
+ const isNotContinuous = result.some((val, index) => index > 0 && val !== _result[index - 1] + 1);
+ if (isNotContinuous) {
+ return null;
+ }
+ }
+ if (options.space === "ignore") {
+ result = result.filter((i) => words[i] !== " ");
+ }
+ return result.length ? result : null;
+}
+const matchAboveStartWithCache = (textPinyin, text, pinyin$1, options) => {
+ const words = splitString(text);
+ // 二维数组 dp[i][j],i 表示遍历到的 text 索引+1, j 表示遍历到的 pinyin 的索引+1
+ const dp = Array(words.length + 1);
+ // 使用哨兵初始化 dp
+ for (let i = 0; i < dp.length; i++) {
+ dp[i] = Array(pinyin$1.length + 1);
+ dp[i][0] = [];
+ }
+ for (let i = 0; i < dp[0].length; i++) {
+ dp[0][i] = [];
+ }
+ // 动态规划匹配
+ for (let i = 1; i < dp.length; i++) {
+ // options.continuous 为 false 或 options.space 为 ignore 且当前为空格时,第 i 个字可以不参与匹配
+ if (!options.continuous ||
+ (options.space == "ignore" && words[i - 1] === " ")) {
+ for (let j = 1; j <= pinyin$1.length; j++) {
+ dp[i][j - 1] = dp[i - 1][j - 1];
+ }
+ }
+ // 第 i 个字参与匹配
+ for (let j = 1; j <= pinyin$1.length; j++) {
+ if (!dp[i - 1][j - 1]) {
+ // 第 i - 1 已经匹配失败,停止向后匹配
+ continue;
+ }
+ else if (j !== 1 && !dp[i - 1][j - 1].length) {
+ // 非开头且前面的字符未匹配完成,停止向后匹配
+ continue;
+ }
+ else {
+ const muls = textPinyin[i - 1] || [];
+ // 非中文匹配
+ if (words[i - 1] === pinyin$1[j - 1]) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ // 记录最长的可匹配下标数组
+ if (!dp[i][j] || matches.length > dp[i][j].length) {
+ dp[i][j] = matches;
+ }
+ // pinyin 参数完全匹配完成,记录结果
+ if (j === pinyin$1.length) {
+ return dp[i][j];
+ }
+ }
+ // 剩余长度小于等于 MAX_PINYIN_LENGTH(6) 时,有可能是最后一个拼音了
+ if (pinyin$1.length - j <= MAX_PINYIN_LENGTH) {
+ // lastPrecision 参数处理
+ const last = muls.some((py) => {
+ if (options.lastPrecision === "any") {
+ return py.includes(pinyin$1.slice(j - 1, pinyin$1.length));
+ }
+ if (options.lastPrecision === "start") {
+ return py.startsWith(pinyin$1.slice(j - 1, pinyin$1.length));
+ }
+ if (options.lastPrecision === "first") {
+ return py[0] === pinyin$1.slice(j - 1, pinyin$1.length);
+ }
+ if (options.lastPrecision === "every") {
+ return py === pinyin$1.slice(j - 1, pinyin$1.length);
+ }
+ return false;
+ });
+ if (last) {
+ return [...dp[i - 1][j - 1], i - 1];
+ }
+ }
+ const precision = options.precision;
+ // precision 为 start 时,匹配开头
+ if (precision === "start") {
+ muls.forEach((py) => {
+ let end = j;
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ while (end <= pinyin$1.length &&
+ py.startsWith(pinyin$1.slice(j - 1, end))) {
+ if (!dp[i][end] || matches.length > dp[i][end].length) {
+ dp[i][end] = matches;
+ }
+ end++;
+ }
+ });
+ }
+ // precision 为 first 时,匹配首字母
+ if (precision === "first") {
+ if (muls.some((py) => py[0] === pinyin$1[j - 1])) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ // 记录最长的可匹配下标数组
+ if (!dp[i][j] || matches.length > dp[i][j].length) {
+ dp[i][j] = matches;
+ }
+ }
+ }
+ // 匹配当前汉字的完整拼音
+ const completeMatch = muls.find((py) => py === pinyin$1.slice(j - 1, j - 1 + py.length));
+ if (completeMatch) {
+ const matches = [...dp[i - 1][j - 1], i - 1];
+ const endIndex = j - 1 + completeMatch.length;
+ // 记录最长的可匹配下标数组
+ if (!dp[i][endIndex] || matches.length > dp[i][endIndex].length) {
+ dp[i][endIndex] = matches;
+ }
+ }
+ }
+ }
+ }
+ return null;
+}
+function findMatches(cache, pinyin) {
+ const options = cache.getOptions();
+ if (options.v) {
+ pinyin = pinyin.replace(/ü/g, "v");
+ }
+ // 是否大小写不敏感
+ if (options.insensitive !== false) {
+ pinyin = pinyin.toLowerCase();
+ }
+ // 移除空格
+ if (options.space === "ignore") {
+ pinyin = pinyin.replace(/\s/g, "");
+ }
+ return cache.data.filter((item) => {
+ const pinyinData = cache.getPinyin(item);
+ // 处理字符串类型
+ if (typeof item === 'string') {
+ let text = item; // 传入match的文本是需要处理大小写的
+ if (options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ const result = options.precision === "any"
+ ? matchAnyWithCache(pinyinData, text, pinyin, options)
+ : matchAboveStartWithCache(pinyinData, text, pinyin, options);
+ return result && result.length > 0;
+ }
+ // 处理对象类型
+ else if (typeof item === 'object' && item !== null && typeof options.textSelector === 'function' && pinyinData) {
+ for (const text in pinyinData) {
+ const textPinyin = pinyinData[text];
+ const result = options.precision === "any"
+ ? matchAnyWithCache(textPinyin, text, pinyin, options)
+ : matchAboveStartWithCache(textPinyin, text, pinyin, options);
+ if (result && result.length > 0) {
+ return true;
+ }
+ }
+ }
+ return false;
+ })
+}
+function createCache(data, options, build = true) {
+ const cache = new PinyinCache(data || [], options);
+ if (build) {
+ cache.build();
+ }
+ return cache;
+}
+export { createCache, findMatches };
+
export { OutputFormat, addDict, clearCustomDict, convert, customPinyin, getFinalParts, getInitialAndFinal, getNumOfTone, html, match, pinyin, polyphonic, removeDict, segment };
From c8c51f01f45f7026057c8d7e18a0a34cd67cef2a Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Wed, 20 Aug 2025 08:20:02 +0800
Subject: [PATCH 15/22] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=8B=BC?=
=?UTF-8?q?=E9=9F=B3=E7=BC=93=E5=AD=98=E5=8C=B9=E9=85=8D=E7=A4=BA=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/example_en_US.ts | 15 ++-
example/example_zh_CN.ts | 15 ++-
example/qml/page/T_Pinyin.qml | 87 ++++++++++++++--
.../imports/FluentUI/Controls/FluPinyin.qml | 23 ++---
src/Qt5/imports/FluentUI/JS/PinyinPro.mjs | 99 ++++++++++++-------
src/Qt5/imports/FluentUI/plugins.qmltypes | 13 +--
.../imports/FluentUI/Controls/FluPinyin.qml | 23 ++---
src/Qt6/imports/FluentUI/JS/PinyinPro.mjs | 99 ++++++++++++-------
8 files changed, 262 insertions(+), 112 deletions(-)
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 5f6994c6..a0898f28 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -1945,15 +1945,26 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
-
+
[pinyin-pro document](https://pinyin-pro.cn/guide/compare.html)
-
+
+
Input Chinese or Pinyin
+
+
+ Matching time: %1
+
+
+
+
+ Matching with cache
+
+
T_Pivot
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index f9d87ba4..a124fa9f 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -2095,15 +2095,26 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
拼音
-
+
[pinyin-pro document](https://pinyin-pro.cn/guide/compare.html)
[pinyin-pro文档](https://pinyin-pro.cn/guide/compare.html)
-
+
+
Input Chinese or Pinyin
输入汉字或拼音
+
+
+ Matching time: %1
+ 匹配耗时: %1
+
+
+
+ Matching with cache
+ 带缓存匹配
+
T_Pivot
diff --git a/example/qml/page/T_Pinyin.qml b/example/qml/page/T_Pinyin.qml
index ae755a8b..67553688 100644
--- a/example/qml/page/T_Pinyin.qml
+++ b/example/qml/page/T_Pinyin.qml
@@ -9,12 +9,27 @@ FluScrollablePage {
title: qsTr("Pinyin")
+ property var pinyinCache: null
+ property var matchingData: []
+ property string elapsedStr: "0ms"
+
Component.onCompleted: {
- FluPinyin.buildPattern()
+ FluPinyin.buildDefaultPatterns()
const chineseWords = ["中国", "北京", "上海", "广州", "深圳", "杭州", "成都", "你好", "谢谢", "再见", "请问", "名字", "朋友", "学习", "天气", "今天", "明天", "昨天", "时间", "星期", "早上", "中文", "拼音", "输入法", "计算机", "手机", "电视", "音乐", "旅游", "美食", "餐厅", "医院", "学校", "工作", "工资", "重要", "快乐", "幸福", "爱情", "家庭", "孩子", "父母", "银行", "行长", "长大", "重量", "重新", "重庆", "长城", "苹果", "香蕉", "西瓜", "草莓", "咖啡", "茶", "啤酒", "汽车", "飞机", "地铁", "自行车", "出租车", "公交", "走路"]
- pinyinBox.items = chineseWords.map(text => ({
- [pinyinBox.textRole]: text
- }))
+ box_pinyin.items = chineseWords.map(text => ({
+ [box_pinyin.textRole]: text
+ }))
+ matchingData = ["成吉思汗", "四通八达", "一模一样", "青藏高原", "阿弥陀佛", "解放思想", "所作所为", "迷迷糊糊", "荷枪实弹", "兴高采烈", "无能为力", "布鲁塞尔", "为所欲为", "克什米尔", "没完没了", "不为人知", "结结巴巴", "前仆后继", "铺天盖地", "直截了当", "供不应求", "御史大夫", "不为瓦全", "不可收拾", "胡作非为", "分毫不差", "模模糊糊", "不足为奇", "悄无声息", "了如指掌", "深恶痛绝", "高高兴兴", "唉声叹气", "汉藏语系", "处心积虑", "泣不成声", "半夜三更", "失魂落魄", "二十八宿", "转来转去", "数以万计", "相依为命", "恋恋不舍", "屈指可数", "神出鬼没", "结结实实", "有的放矢", "叽哩咕噜", "调兵遣将", "载歌载舞", "转危为安", "踏踏实实", "桑给巴尔", "装模作样", "见义勇为", "相差无几", "叹为观止", "闷闷不乐", "喜怒哀乐", "鲜为人知", "张牙舞爪", "为非作歹", "含糊其辞", "疲于奔命", "勉为其难", "依依不舍", "顶头上司", "不着边际", "大模大样", "寻欢作乐", "一走了之", "字里行间", "含含糊糊", "恰如其分", "破涕为笑", "深更半夜", "千差万别", "数不胜数", "据为己有", "天旋地转", "养尊处优", "玻璃纤维", "吵吵闹闹", "晕头转向", "土生土长", "宁死不屈", "不省人事", "尽力而为", "精明强干", "唠唠叨叨", "叽叽喳喳", "功不可没", "锲而不舍", "排忧解难", "稀里糊涂", "各有所长", "的的确确", "哄堂大笑", "听而不闻", "刀耕火种", "内分泌腺", "化险为夷", "百发百中", "重见天日", "反败为胜", "一了百了", "大大咧咧", "心急火燎", "粗心大意", "鸡皮疙瘩", "夷为平地", "日积月累", "设身处地", "投其所好", "间不容发", "人满为患", "穷追不舍", "为时已晚", "如数家珍", "心里有数", "以牙还牙", "神不守舍", "孟什维克", "各自为战", "怨声载道", "救苦救难", "好好先生", "怪模怪样", "抛头露面", "游手好闲", "无所不为", "调虎离山", "步步为营", "好大喜功", "众矢之的", "长生不死", "蔚为壮观", "不可胜数", "鬼使神差", "洁身自好", "敢作敢为", "茅塞顿开", "走马换将", "为时过早", "为人师表", "阴差阳错", "油腔滑调", "重蹈覆辙", "骂骂咧咧", "絮絮叨叨", "如履薄冰", "损兵折将", "拐弯抹角", "像模像样", "供过于求", "开花结果", "仔仔细细", "川藏公路", "河北梆子", "长年累月", "正儿八经", "不识抬举", "重振旗鼓", "气息奄奄", "紧追不舍", "服服帖帖", "强词夺理", "噼里啪啦", "人才济济", "发人深省", "不足为凭", "为富不仁", "连篇累牍", "呼天抢地", "落落大方", "自吹自擂", "乐善好施", "以攻为守", "磨磨蹭蹭", "削铁如泥", "助纣为虐", "以退为进", "嘁嘁喳喳", "枪林弹雨", "令人发指", "转败为胜", "转弯抹角", "在劫难逃", "正当防卫", "不足为怪", "难兄难弟", "咿咿呀呀", "弹尽粮绝", "阿谀奉承", "稀里哗啦", "返老还童", "好高骛远", "鹿死谁手", "差强人意", "大吹大擂", "成家立业", "自怨自艾", "负债累累", "古为今用", "入土为安", "下不为例", "一哄而上", "没头苍蝇", "天差地远", "风卷残云", "多灾多难", "乳臭未干", "行家里手", "狼狈为奸", "处变不惊", "一唱一和", "一念之差", "金蝉脱壳", "滴滴答答", "硕果累累", "好整以暇", "红得发紫", "传为美谈", "富商大贾", "四海为家", "了若指掌", "大有可为", "出头露面", "鼓鼓囊囊", "窗明几净", "泰然处之", "怒发冲冠", "有机玻璃", "骨头架子", "义薄云天", "一丁点儿", "时来运转", "陈词滥调", "化整为零", "火烧火燎", "干脆利索", "吊儿郎当", "广种薄收", "种瓜得瓜", "种豆得豆", "难舍难分", "歃血为盟", "奋发有为", "阴错阳差", "东躲西藏", "烟熏火燎", "钻牛角尖", "乔装打扮", "改弦更张", "河南梆子", "好吃懒做", "何乐不为", "大出风头", "攻城掠地", "漂漂亮亮", "折衷主义", "大马哈鱼", "绿树成荫", "率先垂范", "家长里短", "宽大为怀", "左膀右臂", "一笑了之", "天下为公", "还我河山", "何足为奇", "好自为之", "风姿绰约", "大雨滂沱", "传为佳话", "吃里扒外", "重操旧业", "小家子气", "少不更事", "难分难舍", "添砖加瓦", "是非分明", "舍我其谁", "偏听偏信", "量入为出", "降龙伏虎", "钢化玻璃", "正中下怀", "以身许国", "一语中的", "丧魂落魄", "三座大山", "济济一堂", "好事之徒", "干净利索", "出将入相", "袅袅娜娜", "狐狸尾巴", "好逸恶劳", "大而无当", "打马虎眼", "板上钉钉", "吆五喝六", "虾兵蟹将", "水调歌头", "数典忘祖", "人事不省", "曲高和寡", "屡教不改", "互为因果", "互为表里", "厚此薄彼", "过关斩将", "疙疙瘩瘩", "大腹便便", "走为上策", "冤家对头", "有隙可乘", "一鳞半爪", "片言只语", "开花结实", "经年累月", "含糊其词", "寡廉鲜耻", "成年累月", "不徇私情", "不当人子", "膀大腰圆", "指腹为婚", "这么点儿", "意兴索然", "绣花枕头", "无的放矢", "望闻问切", "舍己为人", "穷年累月", "排难解纷", "处之泰然", "指鹿为马", "危如累卵", "天兵天将", "舍近求远", "南腔北调", "苦中作乐", "厚积薄发", "臭味相投", "长幼有序", "逼良为娼", "悲悲切切", "败军之将", "欺行霸市", "削足适履", "先睹为快", "啼饥号寒", "疏不间亲", "神差鬼使", "敲敲打打", "平铺直叙", "没头没尾", "寥寥可数", "哼哈二将", "鹤发童颜", "各奔前程", "弹无虚发", "大人先生", "与民更始", "树碑立传", "是非得失", "实逼处此", "塞翁失马", "日薄西山", "切身体会", "片言只字", "跑马卖解", "宁折不弯", "零零散散", "量体裁衣", "连中三元", "礼崩乐坏", "不为已甚", "转悲为喜", "以眼还眼", "蔚为大观", "未为不可", "童颜鹤发", "朋比为奸", "莫此为甚", "夹枪带棒", "富商巨贾", "淡然处之", "箪食壶浆", "创巨痛深", "草长莺飞", "坐视不救", "以己度人", "随行就市", "文以载道", "文不对题", "铁板钉钉", "身体发肤", "缺吃少穿", "目无尊长", "吉人天相", "毁家纾难", "钢筋铁骨", "丢卒保车", "丢三落四", "闭目塞听", "削尖脑袋", "为非作恶", "人才难得", "情非得已", "切中要害", "火急火燎", "画地为牢", "好酒贪杯", "长歌当哭", "载沉载浮", "遇难呈祥", "榆木疙瘩", "以邻为壑", "洋为中用", "言为心声", "言必有中", "图穷匕见", "滂沱大雨", "目不暇给", "量才录用", "教学相长", "悔不当初", "呼幺喝六", "不足为训", "不拘形迹", "傍若无人", "罪责难逃", "自我吹嘘", "转祸为福", "勇冠三军", "易地而处", "卸磨杀驴", "玩儿不转", "天道好还", "身单力薄", "撒豆成兵", "片纸只字", "宁缺毋滥", "没没无闻", "量力而为", "历历可数", "口碑载道", "君子好逑", "好为人师", "豪商巨贾", "各有所好", "度德量力", "指天为誓", "逸兴遄飞", "心宽体胖", "为德不卒", "天下为家", "视为畏途", "三灾八难", "沐猴而冠", "哩哩啦啦", "见缝就钻", "夹层玻璃", "急公好义", "积年累月", "划地为牢", "更名改姓", "奉为圭臬", "多难兴邦", "不破不立", "坐地自划", "坐不重席", "坐不窥堂", "作嫁衣裳", "左枝右梧", "左宜右有", "钻头觅缝", "钻天打洞", "钻皮出羽", "钻火得冰", "钻洞觅缝", "钻冰求火", "子为父隐", "擢发难数", "着人先鞭", "斫雕为朴", "锥处囊中", "椎心饮泣", "椎心泣血", "椎牛飨士", "椎牛歃血", "椎牛发冢", "椎埋屠狗", "椎埋狗窃", "壮发冲冠", "庄严宝相", "转愁为喜"]
+ pinyinCache = FluPinyin.createCache(matchingData, { "continuous": true })
+ cache_view.model = matchingData
+ }
+
+ function testElapsed(callback) {
+ const start = Date.now()
+ callback()
+ const end = Date.now()
+ const duration = end - start;
+ return `${duration}ms`
}
FluText {
@@ -69,7 +84,7 @@ FluScrollablePage {
text: 'FluPinyin.match("汉语拼音", "hanpin", { "continuous": true }) --> %1'.arg(JSON.stringify(FluPinyin.match("汉语拼音", "hanpin", { "continuous": true })))
}
FluAutoSuggestBox {
- id: pinyinBox
+ id: box_pinyin
Layout.topMargin: 10
placeholderText: qsTr("Input Chinese or Pinyin")
showSuggestWhenPressed: true
@@ -120,7 +135,67 @@ FluScrollablePage {
title: "segment"
ColumnLayout {
FluText {
- text: 'FluPinyin.segment("小明硕士毕业于中国科学院计算所") --> \n%1'.arg(JSON.stringify(FluPinyin.segment("小明硕士毕业于中国科学院计算所,后在日本京都大学深造"), null, 2))
+ text: 'FluPinyin.segment("汉语拼音") --> \n%1'.arg(JSON.stringify(FluPinyin.segment("汉语拼音")))
+ }
+ }
+ }
+
+ FluGroupBox {
+ Layout.topMargin: 20
+ Layout.fillWidth: true
+ padding: 10
+ title: "cache"
+ ColumnLayout {
+ RowLayout {
+ FluTextBox {
+ placeholderText: qsTr("Input Chinese or Pinyin")
+ iconSource: FluentIcons.Search
+ onTextChanged: {
+ if (length === 0) {
+ cache_view.model = matchingData
+ return
+ }
+ if (switch_cache.checked) {
+ elapsedStr = testElapsed(function () {
+ cache_view.model = FluPinyin.findMatches(pinyinCache, text)
+ })
+ } else {
+ elapsedStr = testElapsed(function () {
+ cache_view.model = matchingData.filter(item => FluPinyin.match(item, text, { "continuous": true }))
+ })
+ }
+ }
+ }
+ FluText {
+ text: qsTr("Matching time: %1").arg(elapsedStr)
+ }
+ FluToggleSwitch {
+ id: switch_cache
+ checked: true
+ text: qsTr("Matching with cache")
+ }
+ }
+ GridView {
+ id: cache_view
+ Layout.preferredWidth: 6 * cellWidth
+ Layout.preferredHeight: 3 * cellHeight
+ cellWidth: 110
+ cellHeight: 110
+ clip: true
+ boundsBehavior: GridView.StopAtBounds
+ ScrollBar.vertical: FluScrollBar {}
+ delegate: Item {
+ width: 100
+ height: 100
+ FluIconButton {
+ anchors.fill: parent
+ text: modelData
+ display: Button.TextOnly
+ onClicked: {
+ showSuccess(text)
+ }
+ }
+ }
}
}
}
diff --git a/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml b/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
index 6e4edc90..277ae52d 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
@@ -6,24 +6,25 @@ import "./../JS/PinyinPro.mjs" as Pinyin
QtObject {
property list children
readonly property var context: Pinyin
- property string patternBuildMode: "size" // size, group
- property int patternValue: 500 // In "size" mode, number of patterns per build; in "group" mode, number of groups to divide patterns into
- property int patternBuildInterval: 1500
readonly property alias isPatternBuilt: d.isPatternBuilt
readonly property var outputFormat: Pinyin.OutputFormat
- function buildPattern(buildAllAtOnce = true) {
- const builder = context.getPatternsNormalBuilder(patternValue,
- patternBuildMode)
+ function buildDefaultPatterns(buildArg) {
+ const arg = Object.assign({
+ "buildAllAtOnce": true,
+ "sizePerBuild": 500,
+ "interval": 1500
+ }, buildArg || {})
+ const builder = context.getPatternsNormalBuilder(arg.sizePerBuild)
if (!builder || d.isPatternBuilt || (d.patternTimer && d.patternTimer.running)) {
return
}
- if (buildAllAtOnce) {
+ if (arg.buildAllAtOnce) {
while (!builder.next().done) {
}
d.isPatternBuilt = true
} else {
- d.patternTimer = d.stepRunner(builder, () => d.isPatternBuilt = true, patternBuildInterval)
+ d.patternTimer = d.generatorExecutor(builder, () => d.isPatternBuilt = true, arg.interval)
}
}
function addDict(dict, options) {
@@ -60,12 +61,12 @@ QtObject {
cache.data = data
const arg = Object.assign({
"async": true,
- "chunkSize": 50,
+ "sizePerBuild": 50,
"interval": 500,
"triggeredOnStart": true
}, asyncArg || {})
if (arg.async) {
- const timer = d.stepRunner(cache.buildGenerator(arg.chunkSize, true, arg.interval, arg.triggeredOnStart))
+ const timer = d.generatorExecutor(cache.buildGenerator(arg.chunkSize, true, arg.interval, arg.triggeredOnStart))
if (cache.data.length > arg.chunkSize) {
cache.generatorDeleter = timer.destroy
}
@@ -81,7 +82,7 @@ QtObject {
id: d
property Timer patternTimer: null
property bool isPatternBuilt: false
- function stepRunner(generator, doneCallback, interval = 500, triggeredOnStart = true) {
+ function generatorExecutor(generator, doneCallback, interval = 500, triggeredOnStart = true) {
const timer = Qt.createQmlObject("import QtQuick 2.15; Timer {}", Qt.application)
timer.interval = interval
timer.triggered.connect(function () {
diff --git a/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs b/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
index ab29686a..a2e1d6b0 100644
--- a/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
+++ b/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
@@ -8,8 +8,10 @@
* Modifications Copyright (c) 2025 Polaris-Night
*
* Changes:
- * - Refactored AC-Tree construction pattern by introducing PatternsNormalBuilder
+ * - Refactored AC-Tree construction pattern by introducing PatternsBuilder
* to enable delayed/asynchronous building with improved performance control
+ * - Added PinyinCache class to enable caching of pinyin data with asynchronous
+ * chunked building capability for better performance with large datasets
*
* This modified work is also licensed under the MIT License.
*/
@@ -23936,38 +23938,54 @@ class AC {
}
}
const acTree = new AC();
-// 常规匹配
-class PatternsNormalBuilder {
- constructor() {
- this.buildArg = {
- value: 500,
- mode: "size", /* "size" | "group" */
+class PatternsBuilder {
+ constructor(patterns) {
+ this.patterns = patterns;
+ this.sizePerBuild = 500;
+ this.callbacks = {
+ progress: () => { },
+ finished: () => { }
+ };
+ this.progress = {
+ total: patterns.length,
+ built: 0,
+ percent: 0
};
- this.finishedCallback = () => { };
- this.builder = null;
this.builder = (function* (ctx) {
- const patterns = Pattern5.concat(Pattern4, Pattern3, Pattern2, PatternNumberDict, PatternSurname);
- let chunkSize = ctx.buildArg.value;
- if (ctx.buildArg.mode === "group") {
- chunkSize = Math.ceil(patterns.length / ctx.buildArg.value);
- }
- for (let i = 0, len = patterns.length; i < len; i += chunkSize) {
- acTree.build(patterns.slice(i, i + chunkSize));
+ ctx.progress.total = ctx.patterns.length;
+ for (let i = 0, len = ctx.patterns.length; i < len; i += ctx.sizePerBuild) {
+ acTree.build(ctx.patterns.slice(i, i + ctx.sizePerBuild));
+ ctx.progress.built = Math.min(i + ctx.sizePerBuild, len);
+ ctx.progress.percent = Math.floor((ctx.progress.built / ctx.progress.total) * 100);
+ ctx.callbacks.progress(ctx.progress);
yield;
}
- ctx.finishedCallback();
+ ctx.callbacks.finished();
})(this);
}
- getBuilder(value, mode, finishedCallback) {
- this.buildArg.value = value;
- this.buildArg.mode = mode;
- this.finishedCallback = finishedCallback;
+ getBuilder(sizePerBuild, progressCallback, finishedCallback) {
+ this.sizePerBuild = sizePerBuild;
+ if (typeof progressCallback === 'function') {
+ this.callbacks.progress = progressCallback;
+ }
+ if (typeof finishedCallback === 'function') {
+ this.callbacks.finished = finishedCallback;
+ }
return this.builder;
}
+ getProgress() {
+ return this.progress;
+ }
}
-let patternsNormalBuilder = new PatternsNormalBuilder();
-export function getPatternsNormalBuilder(value, mode) {
- return patternsNormalBuilder ? patternsNormalBuilder.getBuilder(value, mode, () => patternsNormalBuilder = null) : null;
+// 常规匹配
+let patternsNormalBuilder = new PatternsBuilder(Pattern5.concat(Pattern4, Pattern3, Pattern2, PatternNumberDict, PatternSurname));
+export function getPatternsNormalBuilder(sizePerBuild, progressCallback, finishedCallback) {
+ return patternsNormalBuilder ? patternsNormalBuilder.getBuilder(sizePerBuild, progressCallback, () => {
+ patternsNormalBuilder = null;
+ if (typeof finishedCallback === 'function') {
+ finishedCallback();
+ }
+ }) : null;
}
let customDict = {};
@@ -24041,7 +24059,7 @@ function clearCustomDict(dict) {
}
}
-const getSingleWordPinyin = (char) => {
+function getSingleWordPinyin(char) {
const pinyin = DICT1.get(char);
// 若查到, 则返回第一个拼音; 若未查到, 返回原字符
return pinyin ? pinyin.split(" ")[0] : char;
@@ -24097,7 +24115,7 @@ const getPinyin = (word, list, surname, segmentit) => {
}
return { list, matches };
};
-const getPinyinWithoutTone = (pinyin) => {
+function getPinyinWithoutTone(pinyin) {
return pinyin
.replace(/(ā|á|ǎ|à)/g, "a")
.replace(/(ō|ó|ǒ|ò)/g, "o")
@@ -24189,7 +24207,7 @@ const getFinalParts = (pinyin) => {
}
return { head, body, tail };
};
-const getNumOfTone = (pinyin) => {
+function getNumOfTone(pinyin) {
const reg_tone1 = /(ā|ō|ē|ī|ū|ǖ|n̄|m̄|ê̄)/;
const reg_tone2 = /(á|ó|é|í|ú|ǘ|ń|ḿ|ế)/;
const reg_tone3 = /(ǎ|ǒ|ě|ǐ|ǔ|ǚ|ň|m̌|ê̌)/;
@@ -24616,7 +24634,7 @@ const getMatchLength = (pinyin1, pinyin2) => {
}
return length;
};
-const matchAny = (text, pinyin$1, options) => {
+function matchAny(text, pinyin$1, options) {
let result = [];
const words = splitString(text);
const ignoreSpace = options.space === "ignore";
@@ -24671,7 +24689,7 @@ const matchAny = (text, pinyin$1, options) => {
}
return result.length ? result : null;
};
-const matchAboveStart = (text, pinyin$1, options) => {
+function matchAboveStart(text, pinyin$1, options) {
const words = splitString(text);
// 二维数组 dp[i][j],i 表示遍历到的 text 索引+1, j 表示遍历到的 pinyin 的索引+1
const dp = Array(words.length + 1);
@@ -24919,7 +24937,7 @@ function polyphonic(text, options = DEFAULT_OPTIONS$1) {
return result;
}
// 获取每个字多音字的数组
-const getPolyphonicList = (text) => {
+function getPolyphonicList(text) {
return splitString(text).map((char) => {
const customPolyphonicDict = getCustomPolyphonicDict();
const pinyin = customPolyphonicDict.get(char) || DICT1.get(char) || char;
@@ -24932,7 +24950,7 @@ const getPolyphonicList = (text) => {
});
};
// 将多音字每个读音都单独切为一个数组项
-const getSplittedPolyphonicList = (list) => {
+function getSplittedPolyphonicList(list) {
return list.map((item) => {
return item.isZh
? item.result.split(" ").map((pinyin) => ({
@@ -24945,7 +24963,7 @@ const getSplittedPolyphonicList = (list) => {
});
};
// type 属性处理
-const handleType = (list, options) => {
+function handleType(list, options) {
if (options.type === "array") {
return Array.from(new Set(list.map((item) => item.result)));
}
@@ -25201,13 +25219,22 @@ class PinyinCache {
this.setOptions(options);
this.isBuilt = false;
this.generatorDeleter = null;
+ this.callbacks = {
+ progress: () => { },
+ finished: () => { }
+ };
+ this.progress = {
+ total: data.length,
+ built: 0,
+ percent: 0
+ };
}
// 构建拼音缓存
build(force = false) {
if (this.isBuilt && !force) {
return;
}
- this.cache.clear();
+ this.clear()
if (this.data.length === 0) {
return;
}
@@ -25251,7 +25278,7 @@ class PinyinCache {
this.isBuilt = true;
}
// 异步分块构建拼音缓存
- *buildGenerator(chunkSize = 50, force = false) {
+ *buildGenerator(sizePerBuild = 50, force = false) {
if (this.isBuilt && !force) {
return;
}
@@ -25299,7 +25326,7 @@ class PinyinCache {
processedCount += 1;
}
}
- if (processedCount >= chunkSize) {
+ if (processedCount >= sizePerBuild) {
yield;
processedCount = 0;
}
@@ -25529,7 +25556,7 @@ function findMatches(cache, pinyin) {
return false;
})
}
-function createCache(data, options, build = true) {
+function createCache(data, options, build) {
const cache = new PinyinCache(data || [], options);
if (build) {
cache.build();
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index db59991c..fb789ec0 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -2780,7 +2780,7 @@ Module {
}
Property {
name: "layoutMacosButtons"
- type: "FluLoader_QMLTYPE_14"
+ type: "FluLoader_QMLTYPE_15"
isReadonly: true
isPointer: true
}
@@ -3507,8 +3507,8 @@ Module {
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
- Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_41"; isPointer: true }
- Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_41"; isPointer: true }
+ Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_36"; isPointer: true }
+ Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_36"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
@@ -3710,15 +3710,12 @@ Module {
isSingleton: true
Property { name: "children"; type: "QObject"; isList: true; isReadonly: true }
Property { name: "context"; type: "QVariant"; isReadonly: true }
- Property { name: "patternBuildMode"; type: "string" }
- Property { name: "patternValue"; type: "int" }
- Property { name: "patternBuildInterval"; type: "int" }
Property { name: "outputFormat"; type: "QVariant"; isReadonly: true }
Property { name: "isPatternBuilt"; type: "bool"; isReadonly: true }
Method {
- name: "buildPattern"
+ name: "buildDefaultPatterns"
type: "QVariant"
- Parameter { name: "buildAllAtOnce"; type: "QVariant" }
+ Parameter { name: "buildArg"; type: "QVariant" }
}
Method {
name: "addDict"
diff --git a/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml b/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
index 7a0b52fb..651d86a2 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
@@ -6,24 +6,25 @@ import "./../JS/PinyinPro.mjs" as Pinyin
QtObject {
property list children
readonly property var context: Pinyin
- property string patternBuildMode: "size" // size, group
- property int patternValue: 500 // In "size" mode, number of patterns per build; in "group" mode, number of groups to divide patterns into
- property int patternBuildInterval: 1500
readonly property alias isPatternBuilt: d.isPatternBuilt
readonly property var outputFormat: Pinyin.OutputFormat
- function buildPattern(buildAllAtOnce = true) {
- const builder = context.getPatternsNormalBuilder(patternValue,
- patternBuildMode)
+ function buildDefaultPatterns(buildArg) {
+ const arg = Object.assign({
+ "buildAllAtOnce": true,
+ "sizePerBuild": 500,
+ "interval": 1500
+ }, buildArg || {})
+ const builder = context.getPatternsNormalBuilder(arg.sizePerBuild)
if (!builder || d.isPatternBuilt || (d.patternTimer && d.patternTimer.running)) {
return
}
- if (buildAllAtOnce) {
+ if (arg.buildAllAtOnce) {
while (!builder.next().done) {
}
d.isPatternBuilt = true
} else {
- d.patternTimer = d.stepRunner(builder, () => d.isPatternBuilt = true, patternBuildInterval)
+ d.patternTimer = d.generatorExecutor(builder, () => d.isPatternBuilt = true, arg.interval)
}
}
function addDict(dict, options) {
@@ -60,12 +61,12 @@ QtObject {
cache.data = data
const arg = Object.assign({
"async": true,
- "chunkSize": 50,
+ "sizePerBuild": 50,
"interval": 500,
"triggeredOnStart": true
}, asyncArg || {})
if (arg.async) {
- const timer = d.stepRunner(cache.buildGenerator(arg.chunkSize, true, arg.interval, arg.triggeredOnStart))
+ const timer = d.generatorExecutor(cache.buildGenerator(arg.chunkSize, true, arg.interval, arg.triggeredOnStart))
if (cache.data.length > arg.chunkSize) {
cache.generatorDeleter = timer.destroy
}
@@ -81,7 +82,7 @@ QtObject {
id: d
property Timer patternTimer: null
property bool isPatternBuilt: false
- function stepRunner(generator, doneCallback, interval = 500, triggeredOnStart = true) {
+ function generatorExecutor(generator, doneCallback, interval = 500, triggeredOnStart = true) {
const timer = Qt.createQmlObject("import QtQuick 2.15; Timer {}", Qt.application)
timer.interval = interval
timer.triggered.connect(function () {
diff --git a/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs b/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
index ab29686a..a2e1d6b0 100644
--- a/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
+++ b/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
@@ -8,8 +8,10 @@
* Modifications Copyright (c) 2025 Polaris-Night
*
* Changes:
- * - Refactored AC-Tree construction pattern by introducing PatternsNormalBuilder
+ * - Refactored AC-Tree construction pattern by introducing PatternsBuilder
* to enable delayed/asynchronous building with improved performance control
+ * - Added PinyinCache class to enable caching of pinyin data with asynchronous
+ * chunked building capability for better performance with large datasets
*
* This modified work is also licensed under the MIT License.
*/
@@ -23936,38 +23938,54 @@ class AC {
}
}
const acTree = new AC();
-// 常规匹配
-class PatternsNormalBuilder {
- constructor() {
- this.buildArg = {
- value: 500,
- mode: "size", /* "size" | "group" */
+class PatternsBuilder {
+ constructor(patterns) {
+ this.patterns = patterns;
+ this.sizePerBuild = 500;
+ this.callbacks = {
+ progress: () => { },
+ finished: () => { }
+ };
+ this.progress = {
+ total: patterns.length,
+ built: 0,
+ percent: 0
};
- this.finishedCallback = () => { };
- this.builder = null;
this.builder = (function* (ctx) {
- const patterns = Pattern5.concat(Pattern4, Pattern3, Pattern2, PatternNumberDict, PatternSurname);
- let chunkSize = ctx.buildArg.value;
- if (ctx.buildArg.mode === "group") {
- chunkSize = Math.ceil(patterns.length / ctx.buildArg.value);
- }
- for (let i = 0, len = patterns.length; i < len; i += chunkSize) {
- acTree.build(patterns.slice(i, i + chunkSize));
+ ctx.progress.total = ctx.patterns.length;
+ for (let i = 0, len = ctx.patterns.length; i < len; i += ctx.sizePerBuild) {
+ acTree.build(ctx.patterns.slice(i, i + ctx.sizePerBuild));
+ ctx.progress.built = Math.min(i + ctx.sizePerBuild, len);
+ ctx.progress.percent = Math.floor((ctx.progress.built / ctx.progress.total) * 100);
+ ctx.callbacks.progress(ctx.progress);
yield;
}
- ctx.finishedCallback();
+ ctx.callbacks.finished();
})(this);
}
- getBuilder(value, mode, finishedCallback) {
- this.buildArg.value = value;
- this.buildArg.mode = mode;
- this.finishedCallback = finishedCallback;
+ getBuilder(sizePerBuild, progressCallback, finishedCallback) {
+ this.sizePerBuild = sizePerBuild;
+ if (typeof progressCallback === 'function') {
+ this.callbacks.progress = progressCallback;
+ }
+ if (typeof finishedCallback === 'function') {
+ this.callbacks.finished = finishedCallback;
+ }
return this.builder;
}
+ getProgress() {
+ return this.progress;
+ }
}
-let patternsNormalBuilder = new PatternsNormalBuilder();
-export function getPatternsNormalBuilder(value, mode) {
- return patternsNormalBuilder ? patternsNormalBuilder.getBuilder(value, mode, () => patternsNormalBuilder = null) : null;
+// 常规匹配
+let patternsNormalBuilder = new PatternsBuilder(Pattern5.concat(Pattern4, Pattern3, Pattern2, PatternNumberDict, PatternSurname));
+export function getPatternsNormalBuilder(sizePerBuild, progressCallback, finishedCallback) {
+ return patternsNormalBuilder ? patternsNormalBuilder.getBuilder(sizePerBuild, progressCallback, () => {
+ patternsNormalBuilder = null;
+ if (typeof finishedCallback === 'function') {
+ finishedCallback();
+ }
+ }) : null;
}
let customDict = {};
@@ -24041,7 +24059,7 @@ function clearCustomDict(dict) {
}
}
-const getSingleWordPinyin = (char) => {
+function getSingleWordPinyin(char) {
const pinyin = DICT1.get(char);
// 若查到, 则返回第一个拼音; 若未查到, 返回原字符
return pinyin ? pinyin.split(" ")[0] : char;
@@ -24097,7 +24115,7 @@ const getPinyin = (word, list, surname, segmentit) => {
}
return { list, matches };
};
-const getPinyinWithoutTone = (pinyin) => {
+function getPinyinWithoutTone(pinyin) {
return pinyin
.replace(/(ā|á|ǎ|à)/g, "a")
.replace(/(ō|ó|ǒ|ò)/g, "o")
@@ -24189,7 +24207,7 @@ const getFinalParts = (pinyin) => {
}
return { head, body, tail };
};
-const getNumOfTone = (pinyin) => {
+function getNumOfTone(pinyin) {
const reg_tone1 = /(ā|ō|ē|ī|ū|ǖ|n̄|m̄|ê̄)/;
const reg_tone2 = /(á|ó|é|í|ú|ǘ|ń|ḿ|ế)/;
const reg_tone3 = /(ǎ|ǒ|ě|ǐ|ǔ|ǚ|ň|m̌|ê̌)/;
@@ -24616,7 +24634,7 @@ const getMatchLength = (pinyin1, pinyin2) => {
}
return length;
};
-const matchAny = (text, pinyin$1, options) => {
+function matchAny(text, pinyin$1, options) {
let result = [];
const words = splitString(text);
const ignoreSpace = options.space === "ignore";
@@ -24671,7 +24689,7 @@ const matchAny = (text, pinyin$1, options) => {
}
return result.length ? result : null;
};
-const matchAboveStart = (text, pinyin$1, options) => {
+function matchAboveStart(text, pinyin$1, options) {
const words = splitString(text);
// 二维数组 dp[i][j],i 表示遍历到的 text 索引+1, j 表示遍历到的 pinyin 的索引+1
const dp = Array(words.length + 1);
@@ -24919,7 +24937,7 @@ function polyphonic(text, options = DEFAULT_OPTIONS$1) {
return result;
}
// 获取每个字多音字的数组
-const getPolyphonicList = (text) => {
+function getPolyphonicList(text) {
return splitString(text).map((char) => {
const customPolyphonicDict = getCustomPolyphonicDict();
const pinyin = customPolyphonicDict.get(char) || DICT1.get(char) || char;
@@ -24932,7 +24950,7 @@ const getPolyphonicList = (text) => {
});
};
// 将多音字每个读音都单独切为一个数组项
-const getSplittedPolyphonicList = (list) => {
+function getSplittedPolyphonicList(list) {
return list.map((item) => {
return item.isZh
? item.result.split(" ").map((pinyin) => ({
@@ -24945,7 +24963,7 @@ const getSplittedPolyphonicList = (list) => {
});
};
// type 属性处理
-const handleType = (list, options) => {
+function handleType(list, options) {
if (options.type === "array") {
return Array.from(new Set(list.map((item) => item.result)));
}
@@ -25201,13 +25219,22 @@ class PinyinCache {
this.setOptions(options);
this.isBuilt = false;
this.generatorDeleter = null;
+ this.callbacks = {
+ progress: () => { },
+ finished: () => { }
+ };
+ this.progress = {
+ total: data.length,
+ built: 0,
+ percent: 0
+ };
}
// 构建拼音缓存
build(force = false) {
if (this.isBuilt && !force) {
return;
}
- this.cache.clear();
+ this.clear()
if (this.data.length === 0) {
return;
}
@@ -25251,7 +25278,7 @@ class PinyinCache {
this.isBuilt = true;
}
// 异步分块构建拼音缓存
- *buildGenerator(chunkSize = 50, force = false) {
+ *buildGenerator(sizePerBuild = 50, force = false) {
if (this.isBuilt && !force) {
return;
}
@@ -25299,7 +25326,7 @@ class PinyinCache {
processedCount += 1;
}
}
- if (processedCount >= chunkSize) {
+ if (processedCount >= sizePerBuild) {
yield;
processedCount = 0;
}
@@ -25529,7 +25556,7 @@ function findMatches(cache, pinyin) {
return false;
})
}
-function createCache(data, options, build = true) {
+function createCache(data, options, build) {
const cache = new PinyinCache(data || [], options);
if (build) {
cache.build();
From 6c19f76dd0ed4b5667b31047308060e1c655dcbe Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sat, 23 Aug 2025 23:31:20 +0800
Subject: [PATCH 16/22] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DFluCarousel?=
=?UTF-8?q?=E5=8A=A8=E6=80=81=E4=BF=AE=E6=94=B9orientation=E5=92=8Cindicat?=
=?UTF-8?q?orGravity=E6=97=B6=E6=98=BE=E7=A4=BA=E4=B8=8D=E6=AD=A3=E7=A1=AE?=
=?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E5=B9=B6=E4=BC=98=E5=8C=96=E7=A4=BA?=
=?UTF-8?q?=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/example_en_US.ts | 74 ++++++--
example/example_zh_CN.ts | 74 ++++++--
example/qml/page/T_Carousel.qml | 177 ++++++------------
example/qml/page/T_Icons.qml | 2 +-
example/qml/window/MainWindow.qml | 1 +
src/FluApp.cpp | 4 +-
src/FluApp.h | 2 +-
.../imports/FluentUI/Controls/FluCarousel.qml | 55 ++++--
src/Qt5/imports/FluentUI/plugins.qmltypes | 30 +--
.../imports/FluentUI/Controls/FluCarousel.qml | 55 ++++--
10 files changed, 273 insertions(+), 201 deletions(-)
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index a0898f28..03b4a3e5 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -649,7 +649,7 @@
-
+
Cancel
@@ -669,57 +669,57 @@
-
+
Finish
-
+
Next
-
+
Previous
-
+
Dark Mode
-
+
Here you can switch to night mode.
-
+
Hide Easter eggs
-
+
Try a few more clicks!!
-
+
Upgrade Tips
-
+
FluentUI is currently up to date
-
+
-- The current app version
-
+
Now go and download the new version?
@@ -728,17 +728,17 @@ Updated content:
-
+
OK
-
+
The current version is already the latest
-
+
The network is abnormal
@@ -1178,12 +1178,52 @@ Updated content:
-
+
Carousel map, support infinite carousel, infinite swipe, and components implemented with ListView
-
+
+ Play orientation:
+
+
+
+
+ Horizontal
+
+
+
+
+ Vertical
+
+
+
+
+ Indicator position:
+
+
+
+
+ top
+
+
+
+
+ right
+
+
+
+
+ bottom
+
+
+
+
+ left
+
+
+
+
Auto play
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index a124fa9f..8e59b6a6 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -626,7 +626,7 @@
MainWindow
-
+
Dark Mode
夜间模式
@@ -658,7 +658,7 @@
-
+
Cancel
取消
@@ -678,52 +678,52 @@
搜索
-
+
Finish
完成
-
+
Next
下一步
-
+
Previous
上一步
-
+
Here you can switch to night mode.
在这里,您可以切换到夜间模式。
-
+
Hide Easter eggs
隐藏彩蛋
-
+
Try a few more clicks!!
再试几下!!
-
+
Upgrade Tips
升级提示
-
+
FluentUI is currently up to date
FluentUI 目前最新版本
-
+
-- The current app version
-- 当前应用版本
-
+
Now go and download the new version?
@@ -736,17 +736,17 @@ Updated content:
-
+
OK
确定
-
+
The current version is already the latest
当前版本已经是最新版本
-
+
The network is abnormal
网络异常
@@ -1204,12 +1204,52 @@ Updated content:
轮播图
-
+
Carousel map, support infinite carousel, infinite swipe, and components implemented with ListView
轮播图,支持无限轮播,无限滑动,用ListView实现的组件
-
+
+ Play orientation:
+ 轮播方向:
+
+
+
+ Horizontal
+ 水平
+
+
+
+ Vertical
+ 垂直
+
+
+
+ Indicator position:
+ 指示器位置:
+
+
+
+ top
+ 上
+
+
+
+ right
+ 右
+
+
+
+ bottom
+ 下
+
+
+
+ left
+ 左
+
+
+
Auto play
自动轮播
diff --git a/example/qml/page/T_Carousel.qml b/example/qml/page/T_Carousel.qml
index 095264b5..96250397 100644
--- a/example/qml/page/T_Carousel.qml
+++ b/example/qml/page/T_Carousel.qml
@@ -24,144 +24,78 @@ FluScrollablePage{
FluFrame{
Layout.fillWidth: true
- height: 370
padding: 10
- Column{
- spacing: 15
- anchors{
- verticalCenter: parent.verticalCenter
- left:parent.left
+ ColumnLayout {
+ anchors {
+ left: parent.left
+ right: parent.right
}
- FluText{
+ FluText {
text: qsTr("Carousel map, support infinite carousel, infinite swipe, and components implemented with ListView")
}
- Item{
- width: 400
- height: 300
- FluShadow{
- radius: 8
+ RowLayout {
+ FluText {
+ text: qsTr("Play orientation:")
}
- FluCarousel{
- anchors.fill: parent
- delegate: Component{
- Image {
- anchors.fill: parent
- source: model.url
- asynchronous: true
- fillMode:Image.PreserveAspectCrop
+ FluComboBox {
+ id: orientation_box
+ textRole: "key"
+ valueRole: "value"
+ model: ListModel {
+ ListElement {
+ key: qsTr("Horizontal")
+ value: Qt.Horizontal
+ }
+ ListElement {
+ key: qsTr("Vertical")
+ value: Qt.Vertical
}
- }
- Layout.topMargin: 20
- Layout.leftMargin: 5
- Component.onCompleted: {
- model = [{url:"qrc:/example/res/image/banner_1.jpg"},{url:"qrc:/example/res/image/banner_2.jpg"},{url:"qrc:/example/res/image/banner_3.jpg"}]
}
}
- }
- }
- }
-
- FluFrame{
- Layout.fillWidth: true
- height: 340
- padding: 10
- Layout.topMargin: 10
- Column{
- spacing: 15
- anchors{
- verticalCenter: parent.verticalCenter
- left:parent.left
- }
- Item{
- width: 400
- height: 300
- FluShadow{
- radius: 8
+ FluText {
+ text: qsTr("Indicator position:")
}
- FluCarousel{
- anchors.fill: parent
- loopTime:1500
- indicatorGravity: Qt.AlignHCenter | Qt.AlignTop
- indicatorMarginTop:15
- delegate: Component{
- Item{
- anchors.fill: parent
- Image {
- anchors.fill: parent
- source: model.url
- asynchronous: true
- fillMode:Image.PreserveAspectCrop
- }
- Rectangle{
- height: 40
- width: parent.width
- anchors.bottom: parent.bottom
- color: "#33000000"
- FluText{
- anchors.fill: parent
- verticalAlignment: Qt.AlignVCenter
- horizontalAlignment: Qt.AlignHCenter
- text:model.title
- color: FluColors.Grey10
- }
- }
- }
- }
- Layout.topMargin: 20
- Layout.leftMargin: 5
- Component.onCompleted: {
- var arr = []
- arr.push({url:"qrc:/example/res/image/banner_1.jpg",title:"共同应对全球性问题"})
- arr.push({url:"qrc:/example/res/image/banner_2.jpg",title:"三小只全程没互动"})
- arr.push({url:"qrc:/example/res/image/banner_3.jpg",title:"有效投资扩大 激发增长动能"})
- model = arr
- }
+ FluComboBox {
+ id: position_box
+ textRole: "key"
+ valueRole: "value"
+ model: orientation_box.currentValue === Qt.Horizontal ? [{
+ "key": qsTr("top"),
+ "value": Qt.AlignHCenter | Qt.AlignTop
+ }, {
+ "key": qsTr("bottom"),
+ "value": Qt.AlignHCenter | Qt.AlignBottom
+ }] : [{
+ "key": qsTr("right"),
+ "value": Qt.AlignVCenter | Qt.AlignRight
+ }, {
+ "key": qsTr("left"),
+ "value": Qt.AlignVCenter | Qt.AlignLeft
+ }]
}
}
-
- }
- }
- CodeExpander{
- Layout.fillWidth: true
- Layout.topMargin: -6
- code:'FluCarousel{
- id:carousel
- width: 400
- height: 300
- delegate: Component{
- Image {
- anchors.fill: parent
- source: model.url
- asynchronous: true
- fillMode:Image.PreserveAspectCrop
- }
- }
- Component.onCompleted: {
- carousel.model = [{url:"qrc:/example/res/image/banner_1.jpg"},{url:"qrc:/example/res/image/banner_2.jpg"},{url:"qrc:/example/res/image/banner_3.jpg"}]
- }
-}'
- }
-
- FluFrame{
- Layout.fillWidth: true
- Layout.preferredHeight: 300 + topPadding + bottomPadding
- padding: 10
- Layout.topMargin: 10
- RowLayout{
- anchors.fill: parent
+ FluToggleSwitch{
+ id: auto_play_switch
+ text: qsTr("Auto play")
+ checked: true
+ textRight: false
+ }
Item{
Layout.preferredWidth: 400
- Layout.fillHeight: true
+ Layout.preferredHeight: 300
FluShadow{
radius: 8
}
FluCarousel{
anchors.fill: parent
- orientation: Qt.Vertical
+ orientation: orientation_box.currentValue
autoPlay: auto_play_switch.checked
loopTime:1500
- indicatorGravity: Qt.AlignVCenter | Qt.AlignRight
- indicatorMarginTop:15
+ indicatorGravity: position_box.currentValue
+ indicatorMarginTop: 15
+ indicatorMarginBottom: 15
+ indicatorMarginLeft: 15
+ indicatorMarginRight: 15
delegate: Component{
Item{
anchors.fill: parent
@@ -197,11 +131,6 @@ FluScrollablePage{
}
}
}
- FluToggleSwitch{
- id: auto_play_switch
- Layout.alignment: Qt.AlignRight
- text: qsTr("Auto play")
- }
}
}
CodeExpander{
@@ -212,6 +141,8 @@ FluScrollablePage{
width: 400
height: 300
orientation: Qt.Vertical
+ indicatorGravity: Qt.AlignTop | Qt.AlignHCenter
+ autoPlay: true
delegate: Component{
Image {
anchors.fill: parent
diff --git a/example/qml/page/T_Icons.qml b/example/qml/page/T_Icons.qml
index b22fd462..193a773d 100644
--- a/example/qml/page/T_Icons.qml
+++ b/example/qml/page/T_Icons.qml
@@ -15,7 +15,7 @@ FluContentPage {
top: parent.top
}
onTextChanged: {
- grid_view.model = FluApp.iconData(text_box.text)
+ grid_view.model = FluApp.iconData(text_box.text, false)
}
}
FluToggleSwitch{
diff --git a/example/qml/window/MainWindow.qml b/example/qml/window/MainWindow.qml
index 218fbb13..1aac3da3 100644
--- a/example/qml/window/MainWindow.qml
+++ b/example/qml/window/MainWindow.qml
@@ -213,6 +213,7 @@ FluWindow {
iconSource: FluentIcons.Search
items: ItemsOriginal.getSearchData()
placeholderText: qsTr("Search")
+ filter: (item) => item[textRole].toLowerCase().includes(text.toLowerCase())
onItemClicked:
(data)=>{
ItemsOriginal.startPageByItem(data)
diff --git a/src/FluApp.cpp b/src/FluApp.cpp
index 65f0b3e7..936f70d6 100644
--- a/src/FluApp.cpp
+++ b/src/FluApp.cpp
@@ -32,14 +32,14 @@ void FluApp::init(QObject *launcher, QLocale locale) {
}
}
-[[maybe_unused]] QJsonArray FluApp::iconData(const QString &keyword) {
+[[maybe_unused]] QJsonArray FluApp::iconData(const QString &keyword, bool caseSensitive) {
QJsonArray arr;
QMetaEnum enumType = FluentIcons::staticMetaObject.enumerator(
FluentIcons::staticMetaObject.indexOfEnumerator("Type"));
for (int i = 0; i <= enumType.keyCount() - 1; ++i) {
QString name = enumType.key(i);
int icon = enumType.value(i);
- if (keyword.isEmpty() || name.contains(keyword)) {
+ if (keyword.isEmpty() || name.contains(keyword, caseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive)) {
QJsonObject obj;
obj.insert("name", name);
obj.insert("icon", icon);
diff --git a/src/FluApp.h b/src/FluApp.h
index a78305a9..99effa86 100644
--- a/src/FluApp.h
+++ b/src/FluApp.h
@@ -38,7 +38,7 @@ class FluApp : public QObject {
Q_INVOKABLE void init(QObject *launcher, QLocale locale = QLocale::system());
- [[maybe_unused]] Q_INVOKABLE static QJsonArray iconData(const QString &keyword = "");
+ [[maybe_unused]] Q_INVOKABLE static QJsonArray iconData(const QString &keyword = "", bool caseSensitive = true);
private:
QQmlEngine *_engine{};
diff --git a/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml b/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml
index 678b7f36..8a2cde1c 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml
@@ -18,8 +18,11 @@ Item {
property alias indicatorAnchors: indicator_loader.anchors
property Component indicatorDelegate : com_indicator
id:control
- width: 400
- height: 300
+ implicitWidth: 400
+ implicitHeight: 300
+ onIndicatorGravityChanged: {
+ indicator_loader.updateAnchors()
+ }
ListModel{
id:content_model
}
@@ -147,6 +150,9 @@ Item {
}
}
}
+ onOrientationChanged: {
+ positionViewAtIndex(currentIndex, ListView.Center)
+ }
function resetPos() {
contentX = 0
contentY = 0
@@ -184,20 +190,41 @@ Item {
Loader{
id: indicator_loader
- anchors{
- horizontalCenter:(indicatorGravity & Qt.AlignHCenter) ? parent.horizontalCenter : undefined
- verticalCenter: (indicatorGravity & Qt.AlignVCenter) ? parent.verticalCenter : undefined
- bottom: (indicatorGravity & Qt.AlignBottom) ? parent.bottom : undefined
- top: (indicatorGravity & Qt.AlignTop) ? parent.top : undefined
- left: (indicatorGravity & Qt.AlignLeft) ? parent.left : undefined
- right: (indicatorGravity & Qt.AlignRight) ? parent.right : undefined
- bottomMargin: control.indicatorMarginBottom
- leftMargin: control.indicatorMarginBottom
- rightMargin: control.indicatorMarginBottom
- topMargin: control.indicatorMarginBottom
- }
active: showIndicator
sourceComponent: control.orientation === Qt.Vertical ? column_indicator : row_indicator
+ function updateAnchors() {
+ anchors.horizontalCenter = undefined
+ anchors.verticalCenter = undefined
+ anchors.top = undefined
+ anchors.bottom = undefined
+ anchors.left = undefined
+ anchors.right = undefined
+ if (indicatorGravity & Qt.AlignHCenter) {
+ anchors.horizontalCenter = parent.horizontalCenter
+ }
+ if (indicatorGravity & Qt.AlignVCenter) {
+ anchors.verticalCenter = parent.verticalCenter
+ }
+ if (indicatorGravity & Qt.AlignTop) {
+ anchors.top = parent.top
+ }
+ if (indicatorGravity & Qt.AlignBottom) {
+ anchors.bottom = parent.bottom
+ }
+ if (indicatorGravity & Qt.AlignLeft) {
+ anchors.left = parent.left
+ }
+ if (indicatorGravity & Qt.AlignRight) {
+ anchors.right = parent.right
+ }
+ anchors.topMargin = Qt.binding(() => control.indicatorMarginTop)
+ anchors.bottomMargin = Qt.binding(() => control.indicatorMarginBottom)
+ anchors.leftMargin = Qt.binding(() => control.indicatorMarginLeft)
+ anchors.rightMargin = Qt.binding(() => control.indicatorMarginRight)
+ }
+ Component.onCompleted: {
+ updateAnchors()
+ }
}
Component{
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index fb789ec0..51eb2598 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -41,6 +41,12 @@ Module {
name: "init"
Parameter { name: "launcher"; type: "QObject"; isPointer: true }
}
+ Method {
+ name: "iconData"
+ type: "QJsonArray"
+ Parameter { name: "keyword"; type: "string" }
+ Parameter { name: "caseSensitive"; type: "bool" }
+ }
Method {
name: "iconData"
type: "QJsonArray"
@@ -2750,37 +2756,37 @@ Module {
Property { name: "darkClickListener"; type: "QVariant" }
Property {
name: "buttonStayTop"
- type: "FluIconButton_QMLTYPE_21"
+ type: "FluIconButton_QMLTYPE_22"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMinimize"
- type: "FluIconButton_QMLTYPE_21"
+ type: "FluIconButton_QMLTYPE_22"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMaximize"
- type: "FluIconButton_QMLTYPE_21"
+ type: "FluIconButton_QMLTYPE_22"
isReadonly: true
isPointer: true
}
Property {
name: "buttonClose"
- type: "FluIconButton_QMLTYPE_21"
+ type: "FluIconButton_QMLTYPE_22"
isReadonly: true
isPointer: true
}
Property {
name: "buttonDark"
- type: "FluIconButton_QMLTYPE_21"
+ type: "FluIconButton_QMLTYPE_22"
isReadonly: true
isPointer: true
}
Property {
name: "layoutMacosButtons"
- type: "FluLoader_QMLTYPE_15"
+ type: "FluLoader_QMLTYPE_16"
isReadonly: true
isPointer: true
}
@@ -3500,15 +3506,15 @@ Module {
defaultProperty: "data"
Property { name: "logo"; type: "QUrl" }
Property { name: "title"; type: "string" }
- Property { name: "items"; type: "FluObject_QMLTYPE_141"; isPointer: true }
- Property { name: "footerItems"; type: "FluObject_QMLTYPE_141"; isPointer: true }
+ Property { name: "items"; type: "FluObject_QMLTYPE_188"; isPointer: true }
+ Property { name: "footerItems"; type: "FluObject_QMLTYPE_188"; isPointer: true }
Property { name: "displayMode"; type: "int" }
Property { name: "autoSuggestBox"; type: "QQmlComponent"; isPointer: true }
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
- Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_36"; isPointer: true }
- Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_36"; isPointer: true }
+ Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_39"; isPointer: true }
+ Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_39"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
@@ -3516,13 +3522,13 @@ Module {
Property { name: "hideNavAppBar"; type: "bool" }
Property {
name: "buttonMenu"
- type: "FluIconButton_QMLTYPE_21"
+ type: "FluIconButton_QMLTYPE_22"
isReadonly: true
isPointer: true
}
Property {
name: "buttonBack"
- type: "FluIconButton_QMLTYPE_21"
+ type: "FluIconButton_QMLTYPE_22"
isReadonly: true
isPointer: true
}
diff --git a/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml b/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml
index 65b42470..c4d3d369 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml
@@ -18,8 +18,11 @@ Item {
property alias indicatorAnchors: indicator_loader.anchors
property Component indicatorDelegate : com_indicator
id:control
- width: 400
- height: 300
+ implicitWidth: 400
+ implicitHeight: 300
+ onIndicatorGravityChanged: {
+ indicator_loader.updateAnchors()
+ }
ListModel{
id:content_model
}
@@ -147,6 +150,9 @@ Item {
}
}
}
+ onOrientationChanged: {
+ positionViewAtIndex(currentIndex, ListView.Center)
+ }
function resetPos() {
contentX = 0
contentY = 0
@@ -184,20 +190,41 @@ Item {
Loader{
id: indicator_loader
- anchors{
- horizontalCenter:(indicatorGravity & Qt.AlignHCenter) ? parent.horizontalCenter : undefined
- verticalCenter: (indicatorGravity & Qt.AlignVCenter) ? parent.verticalCenter : undefined
- bottom: (indicatorGravity & Qt.AlignBottom) ? parent.bottom : undefined
- top: (indicatorGravity & Qt.AlignTop) ? parent.top : undefined
- left: (indicatorGravity & Qt.AlignLeft) ? parent.left : undefined
- right: (indicatorGravity & Qt.AlignRight) ? parent.right : undefined
- bottomMargin: control.indicatorMarginBottom
- leftMargin: control.indicatorMarginBottom
- rightMargin: control.indicatorMarginBottom
- topMargin: control.indicatorMarginBottom
- }
active: showIndicator
sourceComponent: control.orientation === Qt.Vertical ? column_indicator : row_indicator
+ function updateAnchors() {
+ anchors.horizontalCenter = undefined
+ anchors.verticalCenter = undefined
+ anchors.top = undefined
+ anchors.bottom = undefined
+ anchors.left = undefined
+ anchors.right = undefined
+ if (indicatorGravity & Qt.AlignHCenter) {
+ anchors.horizontalCenter = parent.horizontalCenter
+ }
+ if (indicatorGravity & Qt.AlignVCenter) {
+ anchors.verticalCenter = parent.verticalCenter
+ }
+ if (indicatorGravity & Qt.AlignTop) {
+ anchors.top = parent.top
+ }
+ if (indicatorGravity & Qt.AlignBottom) {
+ anchors.bottom = parent.bottom
+ }
+ if (indicatorGravity & Qt.AlignLeft) {
+ anchors.left = parent.left
+ }
+ if (indicatorGravity & Qt.AlignRight) {
+ anchors.right = parent.right
+ }
+ anchors.topMargin = Qt.binding(() => control.indicatorMarginTop)
+ anchors.bottomMargin = Qt.binding(() => control.indicatorMarginBottom)
+ anchors.leftMargin = Qt.binding(() => control.indicatorMarginLeft)
+ anchors.rightMargin = Qt.binding(() => control.indicatorMarginRight)
+ }
+ Component.onCompleted: {
+ updateAnchors()
+ }
}
Component{
From d9d36407c878123716cefa640c9d0098481a326f Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sun, 24 Aug 2025 11:26:33 +0800
Subject: [PATCH 17/22] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=AE=A1?=
=?UTF-8?q?=E6=97=B6=E5=99=A8FluCountTimer?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/example.qrc | 1 +
example/example_en_US.ts | 36 +++++++-
example/example_zh_CN.ts | 36 +++++++-
example/qml/component/CodeExpander.qml | 1 +
example/qml/global/ItemsOriginal.qml | 6 ++
example/qml/page/T_CountTimer.qml | 101 ++++++++++++++++++++++
src/FluCountTimer.cpp | 81 +++++++++++++++++
src/FluCountTimer.h | 51 +++++++++++
src/FluentUI.cpp | 2 +
src/Qt5/imports/FluentUI/plugins.qmltypes | 55 +++++++++---
src/stdafx.h | 18 ++--
11 files changed, 361 insertions(+), 27 deletions(-)
create mode 100644 example/qml/page/T_CountTimer.qml
create mode 100644 src/FluCountTimer.cpp
create mode 100644 src/FluCountTimer.h
diff --git a/example/example.qrc b/example/example.qrc
index 3f142d3a..5908555e 100644
--- a/example/example.qrc
+++ b/example/example.qrc
@@ -215,6 +215,7 @@
qml/page/T_FluentPro.qml
qml/page/T_BubbleBox.qml
qml/page/T_Pinyin.qml
+ qml/page/T_CountTimer.qml
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 03b4a3e5..8ed6d823 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -571,26 +571,31 @@
- Captcha
+ CountTimer
+ Captcha
+
+
+
+
Network
-
+
Remote Loader
-
+
Hot Loader
-
+
Test Crash
@@ -1357,6 +1362,29 @@ Updated content:
+
+ T_CountTimer
+
+
+ CountTimer
+
+
+
+
+ Countdown milliseconds: %1
+
+
+
+
+ Countdown seconds: %1
+
+
+
+
+ Countup seconds: %1
+
+
+
T_CustomPlot
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 8e59b6a6..351bef60 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -571,21 +571,26 @@
+ CountTimer
+ 计时器
+
+
+
Captcha
验证码
-
+
Network
网络
-
+
Remote Loader
远程加载
-
+
Hot Loader
热加载
@@ -594,7 +599,7 @@
3D
-
+
Test Crash
测试崩溃
@@ -1427,6 +1432,29 @@ Updated content:
}
+
+ T_CountTimer
+
+
+ CountTimer
+ 计时器
+
+
+
+ Countdown milliseconds: %1
+ 毫秒倒计时:%1
+
+
+
+ Countdown seconds: %1
+ 秒倒计时:%1
+
+
+
+ Countup seconds: %1
+ 秒正计时:%1
+
+
T_CustomPlot
diff --git a/example/qml/component/CodeExpander.qml b/example/qml/component/CodeExpander.qml
index 6d1a9bc3..d0b1118b 100644
--- a/example/qml/component/CodeExpander.qml
+++ b/example/qml/component/CodeExpander.qml
@@ -141,6 +141,7 @@ FluExpander{
"FluGroupBox",
"FluSheet",
"FluBubbleBox",
+ "FluCountTimer"
];
code = code.replace(/\n/g, "
");
code = code.replace(/ /g, " ");
diff --git a/example/qml/global/ItemsOriginal.qml b/example/qml/global/ItemsOriginal.qml
index dba0f652..bf0bf8ea 100644
--- a/example/qml/global/ItemsOriginal.qml
+++ b/example/qml/global/ItemsOriginal.qml
@@ -468,6 +468,12 @@ FluObject{
url: "qrc:/example/qml/page/T_Pinyin.qml"
onTap: { navigationView.push(url) }
}
+ FluPaneItem{
+ title: qsTr("CountTimer")
+ menuDelegate: paneItemMenu
+ url: "qrc:/example/qml/page/T_CountTimer.qml"
+ onTap: { navigationView.push(url) }
+ }
FluPaneItem{
title: qsTr("Captcha")
menuDelegate: paneItemMenu
diff --git a/example/qml/page/T_CountTimer.qml b/example/qml/page/T_CountTimer.qml
new file mode 100644
index 00000000..dd433701
--- /dev/null
+++ b/example/qml/page/T_CountTimer.qml
@@ -0,0 +1,101 @@
+import QtQuick 2.15
+import QtQuick.Layouts 1.15
+import QtQuick.Window 2.15
+import QtQuick.Controls 2.15
+import FluentUI 1.0
+import "../component"
+
+FluScrollablePage {
+
+ title: qsTr("CountTimer")
+
+ FluFrame {
+ Layout.fillWidth: true
+ padding: 10
+ ColumnLayout {
+ RowLayout {
+ FluCountTimer {
+ id: t1
+ value: 25 * 3600 * 1000
+ interval: 33
+ format: "hh:mm:ss.zzz"
+ Component.onCompleted: {
+ t1.start()
+ }
+ }
+ FluText {
+ text: qsTr("Countdown milliseconds: %1").arg(t1.time)
+ }
+ }
+ RowLayout {
+ FluCountTimer {
+ id: t2
+ value: 10000
+ Component.onCompleted: {
+ t2.start()
+ }
+ }
+ FluText {
+ text: qsTr("Countdown seconds: %1").arg(t2.time)
+ }
+ FluButton {
+ text: t2.running ? "Stop" : "Start"
+ onClicked: {
+ if (t2.running) {
+ t2.stop()
+ } else {
+ t2.start()
+ }
+ }
+ }
+ FluButton {
+ text: "Reset"
+ onClicked: {
+ t2.reset(10000)
+ }
+ }
+ }
+ RowLayout {
+ FluCountTimer {
+ id: t3
+ countType: FluCountTimer.Countup
+ Component.onCompleted: {
+ t3.start()
+ }
+ }
+ FluText {
+ text: qsTr("Countup seconds: %1").arg(t3.time)
+ }
+ FluButton {
+ text: t3.running ? "Stop" : "Start"
+ onClicked: {
+ if (t3.running) {
+ t3.stop()
+ } else {
+ t3.start()
+ }
+ }
+ }
+ FluButton {
+ text: "Reset"
+ onClicked: {
+ t3.reset(0)
+ }
+ }
+ }
+ }
+ }
+ CodeExpander {
+ Layout.fillWidth: true
+ Layout.topMargin: -6
+ code: 'FluCountTimer {
+ countType: FluCountTimer.Countdown
+ value: 24 * 3600 * 1000
+ interval: 33
+ format: "hh:mm:ss.zzz"
+ Component.onCompleted: {
+ start()
+ }
+}'
+ }
+}
diff --git a/src/FluCountTimer.cpp b/src/FluCountTimer.cpp
new file mode 100644
index 00000000..36ab7a19
--- /dev/null
+++ b/src/FluCountTimer.cpp
@@ -0,0 +1,81 @@
+#include "FluCountTimer.h"
+
+FluCountTimer::FluCountTimer(QObject *parent)
+ : QObject(parent)
+ , _countType(CountType::Countdown)
+ , _value(0)
+ , _interval(1000)
+ , _running(false)
+ , _format("hh:mm:ss")
+ , _hour(0)
+ , _minute(0)
+ , _second(0)
+ , _millisecond(0)
+ , _timer(new QTimer(this)) {
+ _timer->setInterval(_interval);
+ connect(_timer, &QTimer::timeout, this, &FluCountTimer::onTimeout);
+ connect(this, &FluCountTimer::intervalChanged, this, [this] { _timer->setInterval(_interval); });
+ connect(this, &FluCountTimer::valueChanged, this, [this] { updateTime(); });
+ connect(this, &FluCountTimer::runningChanged, this, &FluCountTimer::onRunningChanged);
+ updateTime();
+}
+
+void FluCountTimer::start() {
+ if ((_countType == CountType::Countdown && _value > 0) || _countType == CountType::Countup) {
+ running(true);
+ }
+}
+
+void FluCountTimer::stop() {
+ running(false);
+}
+
+void FluCountTimer::reset(int baseValue) {
+ stop();
+ value(baseValue);
+}
+
+void FluCountTimer::onTimeout() {
+ if (_countType == CountType::Countdown) {
+ qint64 newValue = _value - _interval;
+ if (newValue < 0) {
+ newValue = 0;
+ }
+ value(newValue);
+ if (newValue == 0) {
+ stop();
+ Q_EMIT finished();
+ }
+ } else {
+ value(_value + _interval);
+ }
+}
+
+void FluCountTimer::onRunningChanged() {
+ if (_running) {
+ _timer->start();
+ } else {
+ _timer->stop();
+ }
+}
+
+void FluCountTimer::updateTime() {
+ hour(_value / 3600000);
+ minute((_value % 3600000) / 60000);
+ second((_value % 60000) / 1000);
+ millisecond(_value % 1000);
+ time(formatTime());
+}
+
+QString FluCountTimer::formatTime() const {
+ QString timeStr = _format;
+ timeStr.replace("hh", QString::number(_hour).rightJustified(2, '0'));
+ timeStr.replace("h", QString::number(_hour));
+ timeStr.replace("mm", QString::number(_minute).rightJustified(2, '0'));
+ timeStr.replace("m", QString::number(_minute));
+ timeStr.replace("ss", QString::number(_second).rightJustified(2, '0'));
+ timeStr.replace("s", QString::number(_second));
+ timeStr.replace("zzz", QString::number(_millisecond).rightJustified(3, '0'));
+ timeStr.replace("z", QString::number(_millisecond));
+ return timeStr;
+}
diff --git a/src/FluCountTimer.h b/src/FluCountTimer.h
new file mode 100644
index 00000000..e13f5271
--- /dev/null
+++ b/src/FluCountTimer.h
@@ -0,0 +1,51 @@
+#pragma once
+
+#include
+#include
+#include
+#include "stdafx.h"
+
+/**
+ * @brief The FluCountTimer class
+ */
+class FluCountTimer : public QObject {
+ Q_OBJECT
+ QML_NAMED_ELEMENT(FluCountTimer)
+public:
+ enum CountType {
+ Countdown,
+ Countup
+ };
+ Q_ENUM(CountType)
+ Q_PROPERTY_AUTO(CountType, countType)
+ Q_PROPERTY_AUTO(int, value)
+ Q_PROPERTY_AUTO(int, interval)
+ Q_PROPERTY_AUTO(bool, running)
+ Q_PROPERTY_AUTO(QString, format)
+ Q_PROPERTY_READONLY_AUTO(int, hour)
+ Q_PROPERTY_READONLY_AUTO(int, minute)
+ Q_PROPERTY_READONLY_AUTO(int, second)
+ Q_PROPERTY_READONLY_AUTO(int, millisecond)
+ Q_PROPERTY_READONLY_AUTO(QString, time)
+
+public:
+ explicit FluCountTimer(QObject *parent = nullptr);
+
+public Q_SLOTS:
+ void start();
+ void stop();
+ void reset(int baseValue = 0);
+
+Q_SIGNALS:
+ void finished();
+
+private Q_SLOTS:
+ void onTimeout();
+ void onRunningChanged();
+
+private:
+ void updateTime();
+ QString formatTime() const;
+
+ QTimer *_timer;
+};
diff --git a/src/FluentUI.cpp b/src/FluentUI.cpp
index 69038f9d..63ba2112 100644
--- a/src/FluentUI.cpp
+++ b/src/FluentUI.cpp
@@ -17,6 +17,7 @@
#include "FluFrameless.h"
#include "FluTableModel.h"
#include "FluHotkey.h"
+#include "FluCountTimer.h"
#include "qmlcustomplot/TimePlot.h"
#include "qmlcustomplot/baseplot.h"
#include "qmlcustomplot/axis.h"
@@ -46,6 +47,7 @@ void FluentUI::registerTypes(const char *uri) {
qmlRegisterType(uri, major, minor, "FluFrameless");
qmlRegisterType(uri, major, minor, "FluHotkey");
qmlRegisterType(uri, major, minor, "FluTableSortProxyModel");
+ qmlRegisterType(uri, major, minor, "FluCountTimer");
qmlRegisterType(uri, major, minor, "TimePlot");
qmlRegisterType(uri, major, minor, "BasePlot");
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index 51eb2598..310f806e 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -143,6 +143,37 @@ Module {
}
}
}
+ Component {
+ name: "FluCountTimer"
+ prototype: "QObject"
+ exports: ["FluentUI/FluCountTimer 1.0"]
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "CountType"
+ values: {
+ "Countdown": 0,
+ "Countup": 1
+ }
+ }
+ Property { name: "countType"; type: "CountType" }
+ Property { name: "value"; type: "int" }
+ Property { name: "interval"; type: "int" }
+ Property { name: "running"; type: "bool" }
+ Property { name: "format"; type: "string" }
+ Property { name: "hour"; type: "int"; isReadonly: true }
+ Property { name: "minute"; type: "int"; isReadonly: true }
+ Property { name: "second"; type: "int"; isReadonly: true }
+ Property { name: "millisecond"; type: "int"; isReadonly: true }
+ Property { name: "time"; type: "string"; isReadonly: true }
+ Signal { name: "finished" }
+ Method { name: "start" }
+ Method { name: "stop" }
+ Method {
+ name: "reset"
+ Parameter { name: "baseValue"; type: "int" }
+ }
+ Method { name: "reset" }
+ }
Component {
name: "FluFrameless"
defaultProperty: "data"
@@ -2756,37 +2787,37 @@ Module {
Property { name: "darkClickListener"; type: "QVariant" }
Property {
name: "buttonStayTop"
- type: "FluIconButton_QMLTYPE_22"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMinimize"
- type: "FluIconButton_QMLTYPE_22"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMaximize"
- type: "FluIconButton_QMLTYPE_22"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonClose"
- type: "FluIconButton_QMLTYPE_22"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonDark"
- type: "FluIconButton_QMLTYPE_22"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "layoutMacosButtons"
- type: "FluLoader_QMLTYPE_16"
+ type: "FluLoader_QMLTYPE_19"
isReadonly: true
isPointer: true
}
@@ -3506,15 +3537,15 @@ Module {
defaultProperty: "data"
Property { name: "logo"; type: "QUrl" }
Property { name: "title"; type: "string" }
- Property { name: "items"; type: "FluObject_QMLTYPE_188"; isPointer: true }
- Property { name: "footerItems"; type: "FluObject_QMLTYPE_188"; isPointer: true }
+ Property { name: "items"; type: "FluObject_QMLTYPE_142"; isPointer: true }
+ Property { name: "footerItems"; type: "FluObject_QMLTYPE_142"; isPointer: true }
Property { name: "displayMode"; type: "int" }
Property { name: "autoSuggestBox"; type: "QQmlComponent"; isPointer: true }
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
- Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_39"; isPointer: true }
- Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_39"; isPointer: true }
+ Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_36"; isPointer: true }
+ Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_36"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
@@ -3522,13 +3553,13 @@ Module {
Property { name: "hideNavAppBar"; type: "bool" }
Property {
name: "buttonMenu"
- type: "FluIconButton_QMLTYPE_22"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonBack"
- type: "FluIconButton_QMLTYPE_22"
+ type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
diff --git a/src/stdafx.h b/src/stdafx.h
index 4ee94c19..79b5a978 100644
--- a/src/stdafx.h
+++ b/src/stdafx.h
@@ -9,7 +9,7 @@ public:
_##M = in_##M; \
Q_EMIT M##Changed(); \
} \
- TYPE M() { \
+ TYPE M() const { \
return _##M; \
} \
\
@@ -21,10 +21,12 @@ private:
public: \
Q_SIGNAL void M##Changed(); \
void M(const TYPE &in_##M) { \
- _##M = in_##M; \
- Q_EMIT M##Changed(); \
+ if (_##M != in_##M) { \
+ _##M = in_##M; \
+ Q_EMIT M##Changed(); \
+ } \
} \
- TYPE M() { \
+ TYPE M() const { \
return _##M; \
} \
\
@@ -37,10 +39,12 @@ private:
public: \
Q_SIGNAL void M##Changed(); \
void M(const TYPE &in_##M) { \
- _##M = in_##M; \
- Q_EMIT M##Changed(); \
+ if (_##M != in_##M) { \
+ _##M = in_##M; \
+ Q_EMIT M##Changed(); \
+ } \
} \
- TYPE M() { \
+ TYPE M() const { \
return _##M; \
} \
\
From 7b04ad51590e93497fda2e5969b834d51d0d0b81 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Wed, 27 Aug 2025 22:16:09 +0800
Subject: [PATCH 18/22] =?UTF-8?q?feat:=20FluPinyin=E5=A2=9E=E5=8A=A0hasPin?=
=?UTF-8?q?yinMatch?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../imports/FluentUI/Controls/FluPinyin.qml | 3 +
src/Qt5/imports/FluentUI/JS/PinyinPro.mjs | 192 ++++++++----------
src/Qt5/imports/FluentUI/plugins.qmltypes | 31 +--
.../imports/FluentUI/Controls/FluPinyin.qml | 3 +
src/Qt6/imports/FluentUI/JS/PinyinPro.mjs | 192 ++++++++----------
5 files changed, 201 insertions(+), 220 deletions(-)
diff --git a/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml b/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
index 277ae52d..f2b4a26f 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluPinyin.qml
@@ -74,6 +74,9 @@ QtObject {
cache.build(true)
}
}
+ function hasPinyinMatch(cache, item, pinyin) {
+ return context.hasPinyinMatch(cache, item, pinyin)
+ }
function findMatches(cache, pinyin) {
return context.findMatches(cache, pinyin)
}
diff --git a/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs b/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
index a2e1d6b0..03578579 100644
--- a/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
+++ b/src/Qt5/imports/FluentUI/JS/PinyinPro.mjs
@@ -25229,51 +25229,61 @@ class PinyinCache {
percent: 0
};
}
+ _text2pinyin(text) {
+ // 是否大小写不敏感
+ if (this._options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ return {
+ "text": text,
+ "pinyin": splitString(text).map((word) =>
+ pinyin(word, {
+ toneType: "none",
+ multiple: true,
+ type: "array",
+ v: this._options.v,
+ })
+ )
+ };
+ }
+ _processItem(item) {
+ // 处理字符串类型
+ if (typeof item === 'string') {
+ this.cache.set(item, this._text2pinyin(item).pinyin);
+ return 1;
+ }
+ // 处理对象类型
+ // 需要提供文本提取函数用于转为拼音,返回值为字符串数组
+ // 需要提供唯一字段值函数用于作为Map的key
+ else if (typeof item === 'object' && item !== null
+ && typeof this._options.textSelector === 'function'
+ && typeof this._options.keySelector === 'function') {
+ const texts = this._options.textSelector(item);
+ if (Array.isArray(texts)) {
+ const pinyinResults = {};
+ for (const text of texts) {
+ if (typeof text === 'string') {
+ const result = this._text2pinyin(text);
+ pinyinResults[result.text] = result.pinyin;
+ }
+ }
+ this.cache.set(this._options.keySelector(item), pinyinResults);
+ return 1;
+ }
+ }
+ return 0;
+ }
// 构建拼音缓存
build(force = false) {
if (this.isBuilt && !force) {
return;
}
- this.clear()
+ this.clear();
if (this.data.length === 0) {
return;
}
- const text2pinyin = (text) => {
- // 是否大小写不敏感
- if (this._options.insensitive !== false) {
- text = text.toLowerCase();
- }
- return {
- "text": text,
- "pinyin": splitString(text).map((word) => {
- return pinyin(word, {
- toneType: "none",
- multiple: true,
- type: "array",
- v: this._options.v,
- });
- })
- }
- }
for (const item of this.data) {
- // 处理字符串类型
- if (typeof item === 'string') {
- this.cache.set(item, text2pinyin(item).pinyin);
- }
- // 处理对象类型,需要提供字段提取函数,返回值为字符串数组
- else if (typeof item === 'object' && item !== null && typeof this._options.textSelector === 'function') {
- const texts = this._options.textSelector(item);
- if (Array.isArray(texts)) {
- const pinyinResults = {};
- for (const text of texts) {
- if (typeof text === 'string') {
- const result = text2pinyin(text);
- pinyinResults[result.text] = result.pinyin; // key为已处理大小写的文本,value为拼音数组
- }
- }
- this.cache.set(item, pinyinResults);
- }
- }
+ this._processItem(item);
}
this.isBuilt = true;
}
@@ -25287,45 +25297,9 @@ class PinyinCache {
if (this.data.length === 0) {
return;
}
- const text2pinyin = (text) => {
- // 是否大小写不敏感
- if (this._options.insensitive !== false) {
- text = text.toLowerCase();
- }
- return {
- "text": text,
- "pinyin": splitString(text).map((word) => {
- return pinyin(word, {
- toneType: "none",
- multiple: true,
- type: "array",
- v: this._options.v,
- });
- })
- }
- }
let processedCount = 0;
for (const item of this.data) {
- // 处理字符串类型
- if (typeof item === 'string') {
- this.cache.set(item, text2pinyin(item).pinyin);
- processedCount += 1;
- }
- // 处理对象类型,需要提供字段提取函数,返回值为字符串数组
- else if (typeof item === 'object' && item !== null && typeof this._options.textSelector === 'function') {
- const texts = this._options.textSelector(item);
- if (Array.isArray(texts)) {
- const pinyinResults = {};
- for (const text of texts) {
- if (typeof text === 'string') {
- const result = text2pinyin(text);
- pinyinResults[result.text] = result.pinyin; // key为已处理大小写的文本,value为拼音数组
- }
- }
- this.cache.set(item, pinyinResults);
- processedCount += 1;
- }
- }
+ processedCount += this._processItem(item);
if (processedCount >= sizePerBuild) {
yield;
processedCount = 0;
@@ -25358,6 +25332,13 @@ class PinyinCache {
}
}
}
+function createCache(data, options, build) {
+ const cache = new PinyinCache(data || [], options);
+ if (build) {
+ cache.build();
+ }
+ return cache;
+}
const matchAnyWithCache = (textPinyin, text, pinyin$1, options) => {
let result = [];
const words = splitString(text);
@@ -25515,7 +25496,7 @@ const matchAboveStartWithCache = (textPinyin, text, pinyin$1, options) => {
}
return null;
}
-function findMatches(cache, pinyin) {
+function hasPinyinMatch(cache, item, pinyin) {
const options = cache.getOptions();
if (options.v) {
pinyin = pinyin.replace(/ü/g, "v");
@@ -25528,41 +25509,44 @@ function findMatches(cache, pinyin) {
if (options.space === "ignore") {
pinyin = pinyin.replace(/\s/g, "");
}
- return cache.data.filter((item) => {
+ // 处理字符串类型
+ if (typeof item === 'string') {
const pinyinData = cache.getPinyin(item);
- // 处理字符串类型
- if (typeof item === 'string') {
- let text = item; // 传入match的文本是需要处理大小写的
- if (options.insensitive !== false) {
- text = text.toLowerCase();
- }
- const result = options.precision === "any"
- ? matchAnyWithCache(pinyinData, text, pinyin, options)
- : matchAboveStartWithCache(pinyinData, text, pinyin, options);
- return result && result.length > 0;
+ if (!pinyinData) {
+ return false;
}
- // 处理对象类型
- else if (typeof item === 'object' && item !== null && typeof options.textSelector === 'function' && pinyinData) {
- for (const text in pinyinData) {
- const textPinyin = pinyinData[text];
- const result = options.precision === "any"
- ? matchAnyWithCache(textPinyin, text, pinyin, options)
- : matchAboveStartWithCache(textPinyin, text, pinyin, options);
- if (result && result.length > 0) {
- return true;
- }
+ let text = item; // 传入match的文本是需要处理大小写的
+ if (options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ const result = options.precision === "any"
+ ? matchAnyWithCache(pinyinData, text, pinyin, options)
+ : matchAboveStartWithCache(pinyinData, text, pinyin, options);
+ return (result && result.length > 0) ? true : false;
+ }
+ // 处理对象类型
+ else if (typeof item === 'object' && item !== null
+ && typeof options.textSelector === 'function'
+ && typeof options.keySelector === 'function') {
+ const pinyinData = cache.getPinyin(options.keySelector(item));
+ if (!pinyinData) {
+ return false;
+ }
+ for (const text in pinyinData) {
+ const textPinyin = pinyinData[text];
+ const result = options.precision === "any"
+ ? matchAnyWithCache(textPinyin, text, pinyin, options)
+ : matchAboveStartWithCache(textPinyin, text, pinyin, options);
+ if (result && result.length > 0) {
+ return true;
}
}
- return false;
- })
-}
-function createCache(data, options, build) {
- const cache = new PinyinCache(data || [], options);
- if (build) {
- cache.build();
}
- return cache;
+ return false;
+}
+function findMatches(cache, pinyin) {
+ return cache.data.filter((item) => hasPinyinMatch(cache, item, pinyin))
}
-export { createCache, findMatches };
+export { createCache, hasPinyinMatch, findMatches };
export { OutputFormat, addDict, clearCustomDict, convert, customPinyin, getFinalParts, getInitialAndFinal, getNumOfTone, html, match, pinyin, polyphonic, removeDict, segment };
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index 310f806e..5dbf1d84 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -2787,37 +2787,37 @@ Module {
Property { name: "darkClickListener"; type: "QVariant" }
Property {
name: "buttonStayTop"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMinimize"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMaximize"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonClose"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonDark"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "layoutMacosButtons"
- type: "FluLoader_QMLTYPE_19"
+ type: "FluLoader_QMLTYPE_20"
isReadonly: true
isPointer: true
}
@@ -3537,15 +3537,15 @@ Module {
defaultProperty: "data"
Property { name: "logo"; type: "QUrl" }
Property { name: "title"; type: "string" }
- Property { name: "items"; type: "FluObject_QMLTYPE_142"; isPointer: true }
- Property { name: "footerItems"; type: "FluObject_QMLTYPE_142"; isPointer: true }
+ Property { name: "items"; type: "FluObject_QMLTYPE_188"; isPointer: true }
+ Property { name: "footerItems"; type: "FluObject_QMLTYPE_188"; isPointer: true }
Property { name: "displayMode"; type: "int" }
Property { name: "autoSuggestBox"; type: "QQmlComponent"; isPointer: true }
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
- Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_36"; isPointer: true }
- Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_36"; isPointer: true }
+ Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_46"; isPointer: true }
+ Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_46"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
@@ -3553,13 +3553,13 @@ Module {
Property { name: "hideNavAppBar"; type: "bool" }
Property {
name: "buttonMenu"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
Property {
name: "buttonBack"
- type: "FluIconButton_QMLTYPE_20"
+ type: "FluIconButton_QMLTYPE_21"
isReadonly: true
isPointer: true
}
@@ -3821,6 +3821,13 @@ Module {
Parameter { name: "data"; type: "QVariant" }
Parameter { name: "asyncArg"; type: "QVariant" }
}
+ Method {
+ name: "hasPinyinMatch"
+ type: "QVariant"
+ Parameter { name: "cache"; type: "QVariant" }
+ Parameter { name: "item"; type: "QVariant" }
+ Parameter { name: "pinyin"; type: "QVariant" }
+ }
Method {
name: "findMatches"
type: "QVariant"
diff --git a/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml b/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
index 651d86a2..e0281c4b 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluPinyin.qml
@@ -74,6 +74,9 @@ QtObject {
cache.build(true)
}
}
+ function hasPinyinMatch(cache, item, pinyin) {
+ return context.hasPinyinMatch(cache, item, pinyin)
+ }
function findMatches(cache, pinyin) {
return context.findMatches(cache, pinyin)
}
diff --git a/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs b/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
index a2e1d6b0..03578579 100644
--- a/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
+++ b/src/Qt6/imports/FluentUI/JS/PinyinPro.mjs
@@ -25229,51 +25229,61 @@ class PinyinCache {
percent: 0
};
}
+ _text2pinyin(text) {
+ // 是否大小写不敏感
+ if (this._options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ return {
+ "text": text,
+ "pinyin": splitString(text).map((word) =>
+ pinyin(word, {
+ toneType: "none",
+ multiple: true,
+ type: "array",
+ v: this._options.v,
+ })
+ )
+ };
+ }
+ _processItem(item) {
+ // 处理字符串类型
+ if (typeof item === 'string') {
+ this.cache.set(item, this._text2pinyin(item).pinyin);
+ return 1;
+ }
+ // 处理对象类型
+ // 需要提供文本提取函数用于转为拼音,返回值为字符串数组
+ // 需要提供唯一字段值函数用于作为Map的key
+ else if (typeof item === 'object' && item !== null
+ && typeof this._options.textSelector === 'function'
+ && typeof this._options.keySelector === 'function') {
+ const texts = this._options.textSelector(item);
+ if (Array.isArray(texts)) {
+ const pinyinResults = {};
+ for (const text of texts) {
+ if (typeof text === 'string') {
+ const result = this._text2pinyin(text);
+ pinyinResults[result.text] = result.pinyin;
+ }
+ }
+ this.cache.set(this._options.keySelector(item), pinyinResults);
+ return 1;
+ }
+ }
+ return 0;
+ }
// 构建拼音缓存
build(force = false) {
if (this.isBuilt && !force) {
return;
}
- this.clear()
+ this.clear();
if (this.data.length === 0) {
return;
}
- const text2pinyin = (text) => {
- // 是否大小写不敏感
- if (this._options.insensitive !== false) {
- text = text.toLowerCase();
- }
- return {
- "text": text,
- "pinyin": splitString(text).map((word) => {
- return pinyin(word, {
- toneType: "none",
- multiple: true,
- type: "array",
- v: this._options.v,
- });
- })
- }
- }
for (const item of this.data) {
- // 处理字符串类型
- if (typeof item === 'string') {
- this.cache.set(item, text2pinyin(item).pinyin);
- }
- // 处理对象类型,需要提供字段提取函数,返回值为字符串数组
- else if (typeof item === 'object' && item !== null && typeof this._options.textSelector === 'function') {
- const texts = this._options.textSelector(item);
- if (Array.isArray(texts)) {
- const pinyinResults = {};
- for (const text of texts) {
- if (typeof text === 'string') {
- const result = text2pinyin(text);
- pinyinResults[result.text] = result.pinyin; // key为已处理大小写的文本,value为拼音数组
- }
- }
- this.cache.set(item, pinyinResults);
- }
- }
+ this._processItem(item);
}
this.isBuilt = true;
}
@@ -25287,45 +25297,9 @@ class PinyinCache {
if (this.data.length === 0) {
return;
}
- const text2pinyin = (text) => {
- // 是否大小写不敏感
- if (this._options.insensitive !== false) {
- text = text.toLowerCase();
- }
- return {
- "text": text,
- "pinyin": splitString(text).map((word) => {
- return pinyin(word, {
- toneType: "none",
- multiple: true,
- type: "array",
- v: this._options.v,
- });
- })
- }
- }
let processedCount = 0;
for (const item of this.data) {
- // 处理字符串类型
- if (typeof item === 'string') {
- this.cache.set(item, text2pinyin(item).pinyin);
- processedCount += 1;
- }
- // 处理对象类型,需要提供字段提取函数,返回值为字符串数组
- else if (typeof item === 'object' && item !== null && typeof this._options.textSelector === 'function') {
- const texts = this._options.textSelector(item);
- if (Array.isArray(texts)) {
- const pinyinResults = {};
- for (const text of texts) {
- if (typeof text === 'string') {
- const result = text2pinyin(text);
- pinyinResults[result.text] = result.pinyin; // key为已处理大小写的文本,value为拼音数组
- }
- }
- this.cache.set(item, pinyinResults);
- processedCount += 1;
- }
- }
+ processedCount += this._processItem(item);
if (processedCount >= sizePerBuild) {
yield;
processedCount = 0;
@@ -25358,6 +25332,13 @@ class PinyinCache {
}
}
}
+function createCache(data, options, build) {
+ const cache = new PinyinCache(data || [], options);
+ if (build) {
+ cache.build();
+ }
+ return cache;
+}
const matchAnyWithCache = (textPinyin, text, pinyin$1, options) => {
let result = [];
const words = splitString(text);
@@ -25515,7 +25496,7 @@ const matchAboveStartWithCache = (textPinyin, text, pinyin$1, options) => {
}
return null;
}
-function findMatches(cache, pinyin) {
+function hasPinyinMatch(cache, item, pinyin) {
const options = cache.getOptions();
if (options.v) {
pinyin = pinyin.replace(/ü/g, "v");
@@ -25528,41 +25509,44 @@ function findMatches(cache, pinyin) {
if (options.space === "ignore") {
pinyin = pinyin.replace(/\s/g, "");
}
- return cache.data.filter((item) => {
+ // 处理字符串类型
+ if (typeof item === 'string') {
const pinyinData = cache.getPinyin(item);
- // 处理字符串类型
- if (typeof item === 'string') {
- let text = item; // 传入match的文本是需要处理大小写的
- if (options.insensitive !== false) {
- text = text.toLowerCase();
- }
- const result = options.precision === "any"
- ? matchAnyWithCache(pinyinData, text, pinyin, options)
- : matchAboveStartWithCache(pinyinData, text, pinyin, options);
- return result && result.length > 0;
+ if (!pinyinData) {
+ return false;
}
- // 处理对象类型
- else if (typeof item === 'object' && item !== null && typeof options.textSelector === 'function' && pinyinData) {
- for (const text in pinyinData) {
- const textPinyin = pinyinData[text];
- const result = options.precision === "any"
- ? matchAnyWithCache(textPinyin, text, pinyin, options)
- : matchAboveStartWithCache(textPinyin, text, pinyin, options);
- if (result && result.length > 0) {
- return true;
- }
+ let text = item; // 传入match的文本是需要处理大小写的
+ if (options.insensitive !== false) {
+ text = text.toLowerCase();
+ }
+ const result = options.precision === "any"
+ ? matchAnyWithCache(pinyinData, text, pinyin, options)
+ : matchAboveStartWithCache(pinyinData, text, pinyin, options);
+ return (result && result.length > 0) ? true : false;
+ }
+ // 处理对象类型
+ else if (typeof item === 'object' && item !== null
+ && typeof options.textSelector === 'function'
+ && typeof options.keySelector === 'function') {
+ const pinyinData = cache.getPinyin(options.keySelector(item));
+ if (!pinyinData) {
+ return false;
+ }
+ for (const text in pinyinData) {
+ const textPinyin = pinyinData[text];
+ const result = options.precision === "any"
+ ? matchAnyWithCache(textPinyin, text, pinyin, options)
+ : matchAboveStartWithCache(textPinyin, text, pinyin, options);
+ if (result && result.length > 0) {
+ return true;
}
}
- return false;
- })
-}
-function createCache(data, options, build) {
- const cache = new PinyinCache(data || [], options);
- if (build) {
- cache.build();
}
- return cache;
+ return false;
+}
+function findMatches(cache, pinyin) {
+ return cache.data.filter((item) => hasPinyinMatch(cache, item, pinyin))
}
-export { createCache, findMatches };
+export { createCache, hasPinyinMatch, findMatches };
export { OutputFormat, addDict, clearCustomDict, convert, customPinyin, getFinalParts, getInitialAndFinal, getNumOfTone, html, match, pinyin, polyphonic, removeDict, segment };
From e3037626ed5252565506cb6221ee9f7f280a4629 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Thu, 28 Aug 2025 08:26:37 +0800
Subject: [PATCH 19/22] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=A7=86?=
=?UTF-8?q?=E5=B7=AE=E8=A7=86=E5=9B=BEFluParallaxView?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/example.qrc | 1 +
example/example_en_US.ts | 90 +++++++---
example/example_zh_CN.ts | 90 +++++++---
example/qml/component/CodeExpander.qml | 3 +-
example/qml/global/ItemsOriginal.qml | 6 +
example/qml/page/T_ParallaxView.qml | 161 ++++++++++++++++++
src/FluentUI.cpp | 1 +
.../FluentUI/Controls/FluParallaxView.qml | 69 ++++++++
src/Qt5/imports/FluentUI/plugins.qmltypes | 20 +++
src/Qt5/imports/FluentUI/qmldir | 1 +
src/Qt5/imports/fluentui.qrc | 1 +
.../FluentUI/Controls/FluParallaxView.qml | 69 ++++++++
12 files changed, 459 insertions(+), 53 deletions(-)
create mode 100644 example/qml/page/T_ParallaxView.qml
create mode 100644 src/Qt5/imports/FluentUI/Controls/FluParallaxView.qml
create mode 100644 src/Qt6/imports/FluentUI/Controls/FluParallaxView.qml
diff --git a/example/example.qrc b/example/example.qrc
index 5908555e..8fa638a8 100644
--- a/example/example.qrc
+++ b/example/example.qrc
@@ -216,6 +216,7 @@
qml/page/T_BubbleBox.qml
qml/page/T_Pinyin.qml
qml/page/T_CountTimer.qml
+ qml/page/T_ParallaxView.qml
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 8ed6d823..e8a30b29 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -470,132 +470,137 @@
-
+
+ ParallaxView
+
+
+
+
Theming
-
+
Acrylic
-
+
Theme
-
+
Typography
-
+
Icons
-
+
Chart
-
+
Bar Chart
-
+
Line Chart
-
+
Pie Chart
-
+
Polar Area Chart
-
+
Bubble Chart
-
+
Scatter Chart
-
+
Radar Chart
-
+
Other
-
+
OpenGL
-
+
QCustomPlot
-
+
QRCode
-
+
Tour
-
+
Timeline
-
+
Pinyin
-
+
CountTimer
-
+
Captcha
-
+
Network
-
+
Remote Loader
-
+
Hot Loader
-
+
Test Crash
@@ -1997,6 +2002,39 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
+
+ T_ParallaxView
+
+
+ ParallaxView
+
+
+
+
+ Background size mode:
+
+
+
+
+ Auto
+
+
+
+
+ Cover
+
+
+
+
+ Fixed
+
+
+
+
+ Speed:
+
+
+
T_PieChart
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 351bef60..c2146e97 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -470,127 +470,132 @@
显示用户可以翻阅的项集合,一次翻阅一个项。
-
+
+ ParallaxView
+ 视差视图
+
+
+
Theming
主题
-
+
Acrylic
亚克力
-
+
Theme
主题
-
+
Typography
字体
-
+
Icons
图标
-
+
Chart
图表
-
+
Bar Chart
条形图
-
+
Line Chart
线型图
-
+
Pie Chart
饼图
-
+
Polar Area Chart
极坐标区域图
-
+
Bubble Chart
气泡图
-
+
Scatter Chart
散点图
-
+
Radar Chart
雷达图
-
+
Other
其他
-
+
OpenGL
-
+
QCustomPlot
-
+
QRCode
二维码
-
+
Tour
漫游式引导
-
+
Timeline
时间轴
-
+
Pinyin
拼音
-
+
CountTimer
计时器
-
+
Captcha
验证码
-
+
Network
网络
-
+
Remote Loader
远程加载
-
+
Hot Loader
热加载
@@ -599,7 +604,7 @@
3D
-
+
Test Crash
测试崩溃
@@ -2146,6 +2151,39 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
下一页>
+
+ T_ParallaxView
+
+
+ ParallaxView
+ 视差视图
+
+
+
+ Background size mode:
+ 背景尺寸模式:
+
+
+
+ Auto
+ 自适应
+
+
+
+ Cover
+ 完全覆盖
+
+
+
+ Fixed
+ 固定
+
+
+
+ Speed:
+ 视差滚动速度:
+
+
T_PieChart
diff --git a/example/qml/component/CodeExpander.qml b/example/qml/component/CodeExpander.qml
index d0b1118b..f2e13534 100644
--- a/example/qml/component/CodeExpander.qml
+++ b/example/qml/component/CodeExpander.qml
@@ -141,7 +141,8 @@ FluExpander{
"FluGroupBox",
"FluSheet",
"FluBubbleBox",
- "FluCountTimer"
+ "FluCountTimer",
+ "FluParallaxView"
];
code = code.replace(/\n/g, "
");
code = code.replace(/ /g, " ");
diff --git a/example/qml/global/ItemsOriginal.qml b/example/qml/global/ItemsOriginal.qml
index bf0bf8ea..c4a92241 100644
--- a/example/qml/global/ItemsOriginal.qml
+++ b/example/qml/global/ItemsOriginal.qml
@@ -346,6 +346,12 @@ FluObject{
url: "qrc:/example/qml/page/T_FlipView.qml"
onTap: { navigationView.push(url) }
}
+ FluPaneItem{
+ title: qsTr("ParallaxView")
+ menuDelegate: paneItemMenu
+ url: "qrc:/example/qml/page/T_ParallaxView.qml"
+ onTap: { navigationView.push(url) }
+ }
}
FluPaneItemExpander{
diff --git a/example/qml/page/T_ParallaxView.qml b/example/qml/page/T_ParallaxView.qml
new file mode 100644
index 00000000..8dfe154e
--- /dev/null
+++ b/example/qml/page/T_ParallaxView.qml
@@ -0,0 +1,161 @@
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Layouts 1.15
+import QtQuick.Window 2.15
+import FluentUI 1.0
+import "../component"
+
+FluScrollablePage {
+
+ title: qsTr("ParallaxView")
+
+ FluFrame {
+ Layout.fillWidth: true
+ padding: 10
+ ColumnLayout {
+ anchors {
+ left: parent.left
+ right: parent.right
+ }
+ RowLayout {
+ FluText {
+ text: qsTr("Background size mode:")
+ }
+ FluComboBox {
+ id: mode_box
+ textRole: "key"
+ valueRole: "value"
+ model: ListModel {
+ ListElement {
+ key: qsTr("Auto")
+ value: "auto"
+ }
+ ListElement {
+ key: qsTr("Cover")
+ value: "cover"
+ }
+ ListElement {
+ key: qsTr("Fixed")
+ value: "fixed"
+ }
+ }
+ }
+ }
+ RowLayout {
+ FluText {
+ text: qsTr("Speed:")
+ }
+ FluSlider{
+ id: speed_slider
+ from: 0
+ to: 1
+ stepSize: 0.1
+ value: 0.5
+ }
+ }
+ FluParallaxView {
+ id: view1
+ width: 1920 / 4
+ height: 1200 / 4
+ backgroundSizeMode: mode_box.currentValue
+ speed: speed_slider.value
+ backgroundItem: FluImage {
+ source: "qrc:/example/res/image/bg_scenic.jpg"
+ sourceSize: Qt.size(2 * width, 2 * height)
+ }
+ backgroundAcrylic.blurRadius: 16
+ Repeater {
+ model: 20
+ Item {
+ Layout.fillWidth: true
+ Layout.preferredHeight: view1.height / 10
+ FluText {
+ anchors.centerIn: parent
+ text: "Item %1".arg(index + 1)
+ color: FluColors.Grey10
+ }
+ }
+ }
+ }
+ }
+ }
+ CodeExpander {
+ Layout.fillWidth: true
+ Layout.topMargin: -6
+ code: 'FluParallaxView {
+ id: view1
+ width: 1920 / 4
+ height: 1200 / 4
+ backgroundItem: FluImage {
+ source: "qrc:/example/res/image/bg_scenic.jpg"
+ sourceSize: Qt.size(2 * width, 2 * height)
+ }
+ backgroundAcrylic.blurRadius: 16
+ Repeater {
+ model: 20
+ Item {
+ Layout.fillWidth: true
+ Layout.preferredHeight: view1.height / 10
+ FluText {
+ anchors.centerIn: parent
+ text: "Item %1".arg(index + 1)
+ color: FluColors.Grey10
+ }
+ }
+ }
+}'
+ }
+
+ FluFrame {
+ Layout.fillWidth: true
+ Layout.preferredHeight: view2.height + topPadding + bottomPadding
+ Layout.topMargin: 20
+ padding: 10
+ FluParallaxView {
+ id: view2
+ width: 1920 / 4
+ height: 1200 / 4
+ radius: [8, 8, 8, 8]
+ backgroundItem: Rectangle {
+ gradient: Gradient.RainyAshville
+ }
+ Repeater {
+ model: 50
+ Item {
+ Layout.fillWidth: true
+ Layout.preferredHeight: view2.height / 10
+ FluText {
+ anchors.centerIn: parent
+ text: "Item %1".arg(index + 1)
+ color: FluColors.Grey10
+ }
+ }
+ }
+ }
+ }
+ CodeExpander {
+ Layout.fillWidth: true
+ Layout.topMargin: -6
+ code: 'FluParallaxView {
+ id: view2
+ width: 1920 / 4
+ height: 1200 / 4
+ radius: [8, 8, 8, 8]
+ backgroundItem: Rectangle {
+ gradient: Gradient.RainyAshville
+ }
+ Repeater {
+ model: 50
+ Item {
+ Layout.fillWidth: true
+ Layout.preferredHeight: view2.height / 10
+ FluText {
+ anchors.centerIn: parent
+ text: "Item %1".arg(index + 1)
+ color: FluColors.Grey10
+ }
+ }
+ }
+}'
+ }
+}
diff --git a/src/FluentUI.cpp b/src/FluentUI.cpp
index 63ba2112..b9d365d2 100644
--- a/src/FluentUI.cpp
+++ b/src/FluentUI.cpp
@@ -150,6 +150,7 @@ void FluentUI::registerTypes(const char *uri) {
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluGroupBox.qml"), uri, major, minor, "FluGroupBox");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluControlBackground.qml"), uri, major, minor, "FluControlBackground");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluBubbleBox.qml"), uri, major, minor, "FluBubbleBox");
+ qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluParallaxView.qml"), uri, major, minor, "FluParallaxView");
qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluRouter.qml"), uri, major, minor, "FluRouter");
qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluEventBus.qml"), uri, major, minor, "FluEventBus");
qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluPinyin.qml"), uri, major, minor, "FluPinyin");
diff --git a/src/Qt5/imports/FluentUI/Controls/FluParallaxView.qml b/src/Qt5/imports/FluentUI/Controls/FluParallaxView.qml
new file mode 100644
index 00000000..d238f082
--- /dev/null
+++ b/src/Qt5/imports/FluentUI/Controls/FluParallaxView.qml
@@ -0,0 +1,69 @@
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Layouts 1.15
+import FluentUI 1.0
+
+FluClip {
+ id: control
+ default property alias content: container.data
+ property alias spacing: container.spacing
+ property alias backgroundItem: backgroundLoader.sourceComponent
+ property alias backgroundAcrylic: acrylic
+ property string backgroundSizeMode: "auto" // auto, cover, fixed
+ property real backgroundMinHeight: -1
+ property real speed: 0.5
+ width: 400
+ height: 300
+ clip: true
+ Item {
+ width: parent.width
+ height: {
+ let h = 0
+ switch (control.backgroundSizeMode) {
+ case "auto":
+ if (flickable.contentHeight > control.height) {
+ h = control.height + (flickable.contentHeight - control.height) * control.speed
+ } else {
+ h = control.height
+ }
+ break
+ case "fixed":
+ h = control.height
+ break
+ case "cover":
+ default:
+ h = Math.max(control.height, flickable.contentHeight)
+ break
+ }
+ return Math.max(h, backgroundMinHeight)
+ }
+ y: {
+ if (control.backgroundSizeMode === "fixed") {
+ return 0
+ }
+ return -flickable.contentY * control.speed
+ }
+ FluLoader {
+ id: backgroundLoader
+ anchors.fill: parent
+ }
+ FluAcrylic {
+ id: acrylic
+ anchors.fill: parent
+ target: backgroundLoader.item
+ tintOpacity: 0
+ blurRadius: 0
+ }
+ }
+ Flickable {
+ id: flickable
+ anchors.fill: parent
+ ScrollBar.vertical: FluScrollBar {}
+ boundsBehavior: Flickable.StopAtBounds
+ contentHeight: container.height
+ ColumnLayout {
+ id: container
+ width: flickable.width
+ }
+ }
+}
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index 5dbf1d84..7839a08f 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -3718,6 +3718,26 @@ Module {
Property { name: "spacing"; type: "double" }
Property { name: "size"; type: "int" }
}
+ Component {
+ prototype: "FluRectangle"
+ name: "FluentUI/FluParallaxView 1.0"
+ exports: ["FluentUI/FluParallaxView 1.0"]
+ exportMetaObjectRevisions: [0]
+ isComposite: true
+ defaultProperty: "content"
+ Property { name: "backgroundSizeMode"; type: "string" }
+ Property { name: "backgroundMinHeight"; type: "double" }
+ Property { name: "speed"; type: "double" }
+ Property { name: "content"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "spacing"; type: "double" }
+ Property { name: "backgroundItem"; type: "QQmlComponent"; isPointer: true }
+ Property {
+ name: "backgroundAcrylic"
+ type: "FluAcrylic_QMLTYPE_12"
+ isReadonly: true
+ isPointer: true
+ }
+ }
Component {
prototype: "QQuickTextField"
name: "FluentUI/FluPasswordBox 1.0"
diff --git a/src/Qt5/imports/FluentUI/qmldir b/src/Qt5/imports/FluentUI/qmldir
index cf66139c..f4baaa5e 100644
--- a/src/Qt5/imports/FluentUI/qmldir
+++ b/src/Qt5/imports/FluentUI/qmldir
@@ -100,5 +100,6 @@ FluWindowDialog 1.0 Controls/FluWindowDialog.qml
FluWindowResultLauncher 1.0 Controls/FluWindowResultLauncher.qml
FluBubbleBox 1.0 Controls/FluBubbleBox.qml
FluPinyin 1.0 Controls/FluPinyin.qml
+FluParallaxView 1.0 Controls/FluParallaxView.qml
plugin fluentuiplugin
diff --git a/src/Qt5/imports/fluentui.qrc b/src/Qt5/imports/fluentui.qrc
index 418454dc..05fc0bb1 100644
--- a/src/Qt5/imports/fluentui.qrc
+++ b/src/Qt5/imports/fluentui.qrc
@@ -113,5 +113,6 @@
FluentUI/Controls/FluBubbleBox.qml
FluentUI/JS/PinyinPro.mjs
FluentUI/Controls/FluPinyin.qml
+ FluentUI/Controls/FluParallaxView.qml
diff --git a/src/Qt6/imports/FluentUI/Controls/FluParallaxView.qml b/src/Qt6/imports/FluentUI/Controls/FluParallaxView.qml
new file mode 100644
index 00000000..6f9a7e1a
--- /dev/null
+++ b/src/Qt6/imports/FluentUI/Controls/FluParallaxView.qml
@@ -0,0 +1,69 @@
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import FluentUI
+
+FluClip {
+ id: control
+ default property alias content: container.data
+ property alias spacing: container.spacing
+ property alias backgroundItem: backgroundLoader.sourceComponent
+ property alias backgroundAcrylic: acrylic
+ property string backgroundSizeMode: "auto" // auto, cover, fixed
+ property real backgroundMinHeight: -1
+ property real speed: 0.5
+ width: 400
+ height: 300
+ clip: true
+ Item {
+ width: parent.width
+ height: {
+ let h = 0
+ switch (control.backgroundSizeMode) {
+ case "auto":
+ if (flickable.contentHeight > control.height) {
+ h = control.height + (flickable.contentHeight - control.height) * control.speed
+ } else {
+ h = control.height
+ }
+ break
+ case "fixed":
+ h = control.height
+ break
+ case "cover":
+ default:
+ h = Math.max(control.height, flickable.contentHeight)
+ break
+ }
+ return Math.max(h, backgroundMinHeight)
+ }
+ y: {
+ if (control.backgroundSizeMode === "fixed") {
+ return 0
+ }
+ return -flickable.contentY * control.speed
+ }
+ FluLoader {
+ id: backgroundLoader
+ anchors.fill: parent
+ }
+ FluAcrylic {
+ id: acrylic
+ anchors.fill: parent
+ target: backgroundLoader.item
+ tintOpacity: 0
+ blurRadius: 0
+ }
+ }
+ Flickable {
+ id: flickable
+ anchors.fill: parent
+ ScrollBar.vertical: FluScrollBar {}
+ boundsBehavior: Flickable.StopAtBounds
+ contentHeight: container.height
+ ColumnLayout {
+ id: container
+ width: flickable.width
+ }
+ }
+}
From f3204fb2ff305970ff75f7a6bf01d523f601ed7c Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Fri, 29 Aug 2025 22:49:30 +0800
Subject: [PATCH 20/22] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96FluCheckBox?=
=?UTF-8?q?=E8=BF=87=E6=B8=A1=E6=95=88=E6=9E=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../imports/FluentUI/Controls/FluCheckBox.qml | 112 +++++++++++++----
.../imports/FluentUI/Controls/FluCheckBox.qml | 113 ++++++++++++++----
2 files changed, 184 insertions(+), 41 deletions(-)
diff --git a/src/Qt5/imports/FluentUI/Controls/FluCheckBox.qml b/src/Qt5/imports/FluentUI/Controls/FluCheckBox.qml
index c02cfc14..c8f7143d 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluCheckBox.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluCheckBox.qml
@@ -86,7 +86,7 @@ Button {
}
border.width: 1
color: {
- if(checked){
+ if(checked || indeterminate){
if(!enabled){
return checkedDisableColor
}
@@ -106,29 +106,101 @@ Button {
}
return normalColor
}
- FluIcon {
+ Canvas {
+ id: markCanvas
+ property real strokeProgress: 0.0
+ property color strokeColor: FluTheme.dark ? "#000000" : "#FFFFFF"
anchors.centerIn: parent
- iconSource: FluentIcons.CheckboxIndeterminate
- iconSize: 14
- visible: indeterminate
- iconColor: FluTheme.dark ? Qt.rgba(0,0,0,1) : Qt.rgba(1,1,1,1)
- Behavior on visible {
- enabled: control.animationEnabled
- NumberAnimation{
- duration: 83
+ width: size - 6
+ height: width
+ visible: state !== "unchecked"
+ state: {
+ if (!indeterminate && checked) {
+ return "checked"
+ } else if (indeterminate) {
+ return "indeterminate"
}
+ return "unchecked"
}
- }
- FluIcon {
- anchors.centerIn: parent
- iconSource: FluentIcons.AcceptMedium
- iconSize: 14
- visible: checked && !indeterminate
- iconColor: FluTheme.dark ? Qt.rgba(0,0,0,1) : Qt.rgba(1,1,1,1)
- Behavior on visible {
+ states: [
+ State {
+ name: "checked"
+ PropertyChanges {
+ target: markCanvas
+ strokeProgress: 1.0
+ }
+ },
+ State {
+ name: "indeterminate"
+ PropertyChanges {
+ target: markCanvas
+ strokeProgress: 1.0
+ }
+ },
+ State {
+ name: "unchecked"
+ PropertyChanges {
+ target: markCanvas
+ strokeProgress: 0.0
+ }
+ }
+ ]
+ onStateChanged: {
+ if (state !== "unchecked") {
+ requestPaint()
+ }
+ }
+ onStrokeProgressChanged: requestPaint()
+ onStrokeColorChanged: requestPaint()
+ onPaint: {
+ const ctx = getContext("2d")
+ ctx.clearRect(0, 0, width, height)
+ ctx.save()
+ ctx.strokeStyle = strokeColor
+ ctx.lineWidth = 2.0
+ ctx.lineCap = "round"
+ ctx.lineJoin = "round"
+ if (state === "checked") {
+ // draw Accept
+ const startX = width * 0.15, startY = height * 0.5
+ const midX = width * 0.4, midY = height * 0.75
+ const endX = width - startX, endY = height * 0.3
+ const line1Width = Math.sqrt(Math.pow(midX - startX, 2) + Math.pow(midY - startY, 2))
+ const line2Width = Math.sqrt(Math.pow(endX - midX, 2) + Math.pow(endY - midY, 2))
+ const totalLen = line1Width + line2Width
+ const drawLen = totalLen * strokeProgress
+ ctx.beginPath()
+ ctx.moveTo(startX, startY)
+ // draw line 1
+ if (drawLen >= line1Width) {
+ ctx.lineTo(midX, midY)
+ } else {
+ const ratio = drawLen / line1Width
+ ctx.lineTo(startX + (midX - startX) * ratio, startY + (midY - startY) * ratio)
+ }
+ // draw line 2
+ if (drawLen > line1Width) {
+ const ratio2 = (drawLen - line1Width) / line2Width
+ ctx.lineTo(midX + (endX - midX) * ratio2, midY + (endY - midY) * ratio2)
+ }
+ } else if (state === "indeterminate") {
+ // draw Indeterminate
+ const totalWidth = width * 0.6
+ const halfWidth = (totalWidth / 2) * strokeProgress
+ const centerX = width / 2
+ const centerY = height / 2
+ ctx.beginPath()
+ ctx.moveTo(centerX - halfWidth, centerY)
+ ctx.lineTo(centerX + halfWidth, centerY)
+ }
+ ctx.stroke()
+ ctx.restore()
+ }
+ Behavior on strokeProgress {
enabled: control.animationEnabled
- NumberAnimation{
- duration: 83
+ NumberAnimation {
+ duration: 167
+ easing.type: Easing.OutCubic
}
}
}
diff --git a/src/Qt6/imports/FluentUI/Controls/FluCheckBox.qml b/src/Qt6/imports/FluentUI/Controls/FluCheckBox.qml
index 2279b0d8..395105dd 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluCheckBox.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluCheckBox.qml
@@ -87,7 +87,7 @@ Button {
}
border.width: 1
color: {
- if(checked){
+ if(checked || indeterminate){
if(!enabled){
return checkedDisableColor
}
@@ -107,30 +107,101 @@ Button {
}
return normalColor
}
- FluIcon {
+ Canvas {
+ id: markCanvas
+ property real strokeProgress: 0.0
+ property color strokeColor: FluTheme.dark ? "#000000" : "#FFFFFF"
anchors.centerIn: parent
- iconSource: FluentIcons.CheckboxIndeterminate
- iconSize: 14
- visible: indeterminate
- iconColor: FluTheme.dark ? Qt.rgba(0,0,0,1) : Qt.rgba(1,1,1,1)
- Behavior on visible {
- enabled: control.animationEnabled
- NumberAnimation{
- duration: 83
+ width: size - 6
+ height: width
+ visible: state !== "unchecked"
+ state: {
+ if (!indeterminate && checked) {
+ return "checked"
+ } else if (indeterminate) {
+ return "indeterminate"
}
+ return "unchecked"
}
- }
-
- FluIcon {
- anchors.centerIn: parent
- iconSource: FluentIcons.AcceptMedium
- iconSize: 14
- visible: checked && !indeterminate
- iconColor: FluTheme.dark ? Qt.rgba(0,0,0,1) : Qt.rgba(1,1,1,1)
- Behavior on visible {
+ states: [
+ State {
+ name: "checked"
+ PropertyChanges {
+ target: markCanvas
+ strokeProgress: 1.0
+ }
+ },
+ State {
+ name: "indeterminate"
+ PropertyChanges {
+ target: markCanvas
+ strokeProgress: 1.0
+ }
+ },
+ State {
+ name: "unchecked"
+ PropertyChanges {
+ target: markCanvas
+ strokeProgress: 0.0
+ }
+ }
+ ]
+ onStateChanged: {
+ if (state !== "unchecked") {
+ requestPaint()
+ }
+ }
+ onStrokeProgressChanged: requestPaint()
+ onStrokeColorChanged: requestPaint()
+ onPaint: {
+ const ctx = getContext("2d")
+ ctx.clearRect(0, 0, width, height)
+ ctx.save()
+ ctx.strokeStyle = strokeColor
+ ctx.lineWidth = 2.0
+ ctx.lineCap = "round"
+ ctx.lineJoin = "round"
+ if (state === "checked") {
+ // draw Accept
+ const startX = width * 0.15, startY = height * 0.5
+ const midX = width * 0.4, midY = height * 0.75
+ const endX = width - startX, endY = height * 0.3
+ const line1Width = Math.sqrt(Math.pow(midX - startX, 2) + Math.pow(midY - startY, 2))
+ const line2Width = Math.sqrt(Math.pow(endX - midX, 2) + Math.pow(endY - midY, 2))
+ const totalLen = line1Width + line2Width
+ const drawLen = totalLen * strokeProgress
+ ctx.beginPath()
+ ctx.moveTo(startX, startY)
+ // draw line 1
+ if (drawLen >= line1Width) {
+ ctx.lineTo(midX, midY)
+ } else {
+ const ratio = drawLen / line1Width
+ ctx.lineTo(startX + (midX - startX) * ratio, startY + (midY - startY) * ratio)
+ }
+ // draw line 2
+ if (drawLen > line1Width) {
+ const ratio2 = (drawLen - line1Width) / line2Width
+ ctx.lineTo(midX + (endX - midX) * ratio2, midY + (endY - midY) * ratio2)
+ }
+ } else if (state === "indeterminate") {
+ // draw Indeterminate
+ const totalWidth = width * 0.6
+ const halfWidth = (totalWidth / 2) * strokeProgress
+ const centerX = width / 2
+ const centerY = height / 2
+ ctx.beginPath()
+ ctx.moveTo(centerX - halfWidth, centerY)
+ ctx.lineTo(centerX + halfWidth, centerY)
+ }
+ ctx.stroke()
+ ctx.restore()
+ }
+ Behavior on strokeProgress {
enabled: control.animationEnabled
- NumberAnimation{
- duration: 83
+ NumberAnimation {
+ duration: 167
+ easing.type: Easing.OutCubic
}
}
}
From 73a90839ece0c4e3a410a4a943589858776b1118 Mon Sep 17 00:00:00 2001
From: Polaris-Night <158275221@qq.com>
Date: Sun, 31 Aug 2025 20:19:51 +0800
Subject: [PATCH 21/22] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9EFluCheckBox?=
=?UTF-8?q?=E4=B8=89=E6=80=81=E5=A4=8D=E9=80=89=E6=A1=86=E4=BD=BF=E7=94=A8?=
=?UTF-8?q?=E7=A4=BA=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
example/example_en_US.ts | 29 ++++++++++----
example/example_zh_CN.ts | 29 ++++++++++----
example/qml/page/T_CheckBox.qml | 69 +++++++++++++++++++++++++++++++++
3 files changed, 113 insertions(+), 14 deletions(-)
diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index e8a30b29..4deee0d0 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -1246,36 +1246,51 @@ Updated content:
-
+
A 2-state CheckBox
-
+
Right
-
+
Left
-
-
+
+
Disabled
-
+
A 3-state CheckBox
-
+
Three State
+
+
+ Using a 3-state CheckBox
+
+
+
+
+ Select all
+
+
+
+
+ Option %1
+
+
T_Clip
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index c2146e97..c3716630 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -1272,36 +1272,51 @@ Updated content:
复选框
-
+
A 2-state CheckBox
两状态复选框
-
+
Right
右
-
+
Left
左
-
-
+
+
Disabled
禁用
-
+
A 3-state CheckBox
三状态复选框
-
+
Three State
三状态
+
+
+ Using a 3-state CheckBox
+ 使用三状态复选框
+
+
+
+ Select all
+ 选中全部
+
+
+
+ Option %1
+ 选项 %1
+
T_Clip
diff --git a/example/qml/page/T_CheckBox.qml b/example/qml/page/T_CheckBox.qml
index 2c437743..8712c0bd 100644
--- a/example/qml/page/T_CheckBox.qml
+++ b/example/qml/page/T_CheckBox.qml
@@ -9,6 +9,40 @@ FluScrollablePage{
title: qsTr("CheckBox")
+ QtObject {
+ id: controller
+ readonly property bool checked: allChecked()
+ readonly property bool indeterminate: !allChecked() && anyChecked()
+ property var items: []
+ function addItem(id, item) {
+ const ref = items
+ ref.push({
+ "id": id,
+ "item": item
+ })
+ items = ref
+ }
+ function setItemChecked(id, checked) {
+ const ref = items
+ const index = ref.findIndex(obj => obj.id === id)
+ if (index !== -1) {
+ ref[index].item.checked = checked
+ }
+ items = ref
+ }
+ function setAllChecked(checked) {
+ const ref = items
+ ref.forEach(obj => obj.item.checked = checked)
+ items = ref
+ }
+ function allChecked() {
+ return items.every(obj => obj.item.checked)
+ }
+ function anyChecked() {
+ return items.some(obj => obj.item.checked)
+ }
+ }
+
FluFrame{
Layout.fillWidth: true
Layout.preferredHeight: 72
@@ -110,4 +144,39 @@ FluScrollablePage{
}'
}
+ FluFrame{
+ Layout.fillWidth: true
+ padding: 10
+ Layout.topMargin: 20
+
+ ColumnLayout {
+ FluText{
+ text: qsTr("Using a 3-state CheckBox")
+ }
+ FluCheckBox {
+ text: qsTr("Select all")
+ checked: controller.checked
+ indeterminate: controller.indeterminate
+ clickListener: function () {
+ controller.setAllChecked(!checked)
+ }
+ }
+ Repeater {
+ model: 3
+ FluCheckBox {
+ Layout.leftMargin: 24
+ text: qsTr("Option %1").arg(index)
+ clickListener: function () {
+ controller.setItemChecked(this.toString(), !checked)
+ }
+ }
+ onItemAdded: (index, item) => {
+ controller.addItem(item.toString(), item)
+ if (index === count - 1) {
+ controller.setItemChecked(item.toString(), true)
+ }
+ }
+ }
+ }
+ }
}
From 1a40adf5167350ace782fcf4faa13f4d48d19735 Mon Sep 17 00:00:00 2001
From: zhuzichu
Date: Sun, 21 Sep 2025 20:24:41 +0800
Subject: [PATCH 22/22] =?UTF-8?q?fixbug=20=20=E4=B8=AD=E6=96=87=E6=B3=A8?=
=?UTF-8?q?=E9=87=8A=E5=AF=BC=E8=87=B4=E6=96=87=E4=BB=B6=E7=BC=96=E7=A0=81?=
=?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=BC=82=E5=B8=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/FluRectangle.cpp | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/FluRectangle.cpp b/src/FluRectangle.cpp
index f682eae1..d384d18c 100644
--- a/src/FluRectangle.cpp
+++ b/src/FluRectangle.cpp
@@ -27,8 +27,6 @@ void FluRectangle::paint(QPainter *painter) {
QRectF rect = boundingRect();
bool drawBorder = borderValid();
if (drawBorder) {
- // 绘制边框时画笔的宽度从路径向两侧扩充
- // 因此实际绘制的矩形应向内侧收缩边框宽度的一半,避免边框裁剪导致不完整
qreal halfBorderWidth = _borderWidth / 2.0;
rect.adjust(halfBorderWidth, halfBorderWidth, -halfBorderWidth, -halfBorderWidth);
}
@@ -40,7 +38,6 @@ void FluRectangle::paint(QPainter *painter) {
r.append(0);
}
- // 从右下角开始逆时针绘制圆角矩形路径
path.moveTo(rect.bottomRight() - QPointF(0, r[2]));
path.lineTo(rect.topRight() + QPointF(0, r[1]));
path.arcTo(QRectF(QPointF(rect.topRight() - QPointF(r[1] * 2, 0)), QSize(r[1] * 2, r[1] * 2)), 0, 90);
@@ -54,10 +51,8 @@ void FluRectangle::paint(QPainter *painter) {
path.lineTo(rect.bottomRight() - QPointF(r[2], 0));
path.arcTo(QRectF(QPointF(rect.bottomRight() - QPointF(r[2] * 2, r[2] * 2)), QSize(r[2] * 2, r[2] * 2)), 270, 90);
- // 填充背景
painter->fillPath(path, _color);
- // 绘制边框
if (drawBorder) {
QPen pen(_borderColor, _borderWidth, _borderStyle);
if (_borderStyle == Qt::DashLine || _borderStyle == Qt::CustomDashLine) {