Full Code of junzew/HanTTS for AI

master 8e1f856d39c9 cached
19 files
89.0 KB
85.1k tokens
7 symbols
1 requests
Download .txt
Repository: junzew/HanTTS
Branch: master
Commit: 8e1f856d39c9
Files: 19
Total size: 89.0 KB

Directory structure:
gitextract_y6ircjdz/

├── .gitignore
├── .travis.yml
├── Aptfile
├── LICENSE
├── Procfile
├── README.md
├── README.zh.md
├── app.js
├── atc.py
├── characters.txt
├── main.py
├── mapping.json
├── package.json
├── process.py
├── public/
│   ├── index.html
│   └── style.css
├── requirements.txt
├── script.py
└── to_read.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
.DS_Store
.wav

================================================
FILE: .travis.yml
================================================
matrix:
  include:
    - language: python
      python: 3.4
      before_install:
        - sudo apt-get update
        - sudo apt-get install python3
        - sudo apt-get install python-pyaudio python3-pyaudio
      install:
        - pip install pypinyin
        - pip install jieba
        - pip install pydub
      script:
        - echo "foo"

    - language: node_js
      node_js: 
        - "6"


================================================
FILE: Aptfile
================================================
libjack-jackd2-dev 
portaudio19-dev
python3-pyaudio


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2017 Junze Wu

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.


================================================
FILE: Procfile
================================================
web: node app.js


================================================
FILE: README.md
================================================
# HanTTS [![Build Status](https://travis-ci.org/junzew/HanTTS.svg?branch=master)](https://travis-ci.org/junzew/HanTTS)

Chinese Text-to-Speech(TTS)

汉字 => ["han4", "zi4"] => .wav audio

*Read this page in [简体中文](https://github.com/junzew/HanTTS/blob/master/README.zh.md)*
## Libraries Used

#### For turning Chinese characters into pinyin
- [pypinyin](https://github.com/mozillazg/python-pinyin)
- [jieba](https://github.com/fxsjy/jieba)

#### For processing .wav files
- [pydub](https://github.com/jiaaro/pydub)
- [pyAudio](https://people.csail.mit.edu/hubert/pyaudio/)

#### Web backend
- [Express](https://expressjs.com)

A list of all Chinese characters is obtained from [倉頡平台2012](https://chinese.stackexchange.com/questions/22484/list-of-all-traditional-chinese-characters), a Chinese input software.

## Build and Run

```
git clone https://github.com/junzew/HanTTS.git
cd HanTTS
pip install --user -r requires.txt
```

Download [`syllables.zip`](https://sourceforge.net/projects/hantts/files/?source=navbar) from SourceForge, and decompress under the directory `HanTTS`.

* Either run locally: `python main.py` 
* Or through web interface:
	`cd` into the `server` folder
	```
	npm install
	node app.js
	```
	Navigate to `localhost:3000` in a browser

## Use your own voice
- Record [five tones](https://en.wikipedia.org/wiki/Pinyin#Tones) of each [pinyin](https://en.wikipedia.org/wiki/Pinyin_table) listed in `mapping.json`
- Group them by the first letter (a,b,c,d, etc.), and save under folder `./recording` as `{letter}.wav`
- Then run `python process.py {letter}`for each `letter` to split recordings into individual pinyin
- Move valid .wav files from `./pre` to the folder `./syllables`
##


## Deploy to Heroku
```
heroku create
heroku git:remote -a <app-name>
heroku buildpacks:set https://github.com/heroku/heroku-buildpack-nodejs#v170 -a <app-name>
heroku buildpacks:add --index 1 heroku-community/apt
heroku buildpacks:add --index 3 heroku/python

$heroku buildpacks
=== hantts Buildpack URLs
1. heroku-community/apt
2. https://github.com/heroku/heroku-buildpack-nodejs#v170
3. heroku/python

heroku apps:rename <newname>
heroku ps:scale web=1
git push heroku master
```

### Issues Encountered during Deployment: 
* Failed to bind to port
https://stackoverflow.com/questions/15693192/heroku-node-js-error-web-process-failed-to-bind-to-port-within-60-seconds-of
`app.listen(process.env.PORT || 3000, function () {...}`
* node Procfile
* apt Aptfile
* python requirements.txt

Based on the [text-to-speech-sample](https://github.com/alexram1313/text-to-speech-sample) project by [@alexram1313](https://github.com/alexram1313)


================================================
FILE: README.zh.md
================================================
# HanTTS [![Build Status](https://travis-ci.org/junzew/HanTTS.svg?branch=master)](https://travis-ci.org/junzew/HanTTS)

汉语文字转语音 (TTS)

汉字 => 拼音 ["han4", "zi4"] => .wav音频

## 使用的库

#### 汉字转拼音
- [pypinyin](https://github.com/mozillazg/python-pinyin)
- [jieba](https://github.com/fxsjy/jieba)

#### 处理、播放.wav音频文件
- [pydub](https://github.com/jiaaro/pydub)
- [pyAudio](https://people.csail.mit.edu/hubert/pyaudio/)

#### Web
- [Express](https://expressjs.com)

全部汉字列表从[倉頡平台2012](https://chinese.stackexchange.com/questions/22484/list-of-all-traditional-chinese-characters)获得

## 运行

```
git clone https://github.com/junzew/HanTTS.git
cd HanTTS
pip install --user -r requires.txt
```

从SourceForge下载语音库[`syllables.zip`](https://sourceforge.net/projects/hantts/files/?source=navbar),并解压到`HanTTS`目录下

- 本地执行 `python main.py`
- 或 Web
	- `cd` 到 `server` 文件夹下
	- `npm install`
	- `node app.js`
	- 浏览器里打开`localhost:3000` 

## 录制新的语音库
- 按阴平、阳平、上声、去声、轻声的顺序录下 mapping.json 里每一个音节的五个声调
- 按开头字母(letter)分组, 将文件存在 ./recording/{letter}.wav下
- 运行 `python process.py {letter}` 将{letter}.wav 完整的录音分成独立的拼音
- 检查核对`./pre`文件夹中的拼音.wav后导入文件夹`./syllables`

## 
基于[@alexram1313](https://github.com/alexram1313)的[text-to-speech-sample](https://github.com/alexram1313/text-to-speech-sample)

================================================
FILE: app.js
================================================
const express = require('express')
var bodyParser = require('body-parser');
const spawn = require('child_process').spawn;
var fs = require('fs');

const app = express()
app.use(express.static('public'))
app.use('/audio', express.static('audio'))
app.use(bodyParser.json()); // for parsing application/json

app.listen(process.env.PORT || 3000, function () {
	console.log('app listening on port 3000')
	var dir = './audio';
	if (!fs.existsSync(dir)){
	    fs.mkdirSync(dir);
	    console.log("created directory ./audio")
	}
});

app.post("/", function(req, res) {
	var text = req.body.text;
	console.log(text)
	args = ["./main.py", 'synthesize', '--text', text, '--src', "./syllables/", '--dst', "./audio/"]
	var process = spawn('python', args);
	var output = "";
    process.stdout.on('data', function(data){ output += data });
    process.stderr.on('data', function(data){ console.error(`stderr: ${data}`); });
	process.on("close", function(code) {
		if (code !== 0) {
			return res.send(`child process exited with code ${code}`)
		}
		console.log(output)
		console.log("sending response")

		res.send('<audio src="./audio/generated.wav" controls="true"></audio>')
	});
});

app.get("/file", function(req, res) {
	res.download("./audio/generated.wav")
});


================================================
FILE: atc.py
================================================
# # -*- coding=utf-8 -*-
# digit=['零','一','二','三','四','五','六','七','八','九']
# unit=['零','十','百','千','万','亿']
# def arabic_to_chinese(number):
# 	if number < 0:
# 		raise Exception("negative arg")
# 	if number < 10:
# 		return digit[number]
# 	elif number < 100:
# 		h = number // 10
# 		if h != 1:
# 			return str(h) + "十" + arabic_to_chinese(number % 10)
# 		else: 
# 			return "十" + arabic_to_chinese(number % 10)
# 	elif number < 1000:
# 		th = number // 100
# 		return str(th) + "百" + arabic_to_chinese(number % 100)
# 	elif number < 10000:
# 		w = number // 1000
# 		return str(w) + "千" + arabic_to_chinese(number % 1000)
# 	else:
# 		pass


# c = 1
# def test(num, expected):
# 	global c
# 	actual = arabic_to_chinese(num)
# 	if (actual != expected):
# 		print(c, actual, expected)
# 	else:
# 		print(c, "pass")
# 	c+=1




# test(0, '零')
# test(1, '一')
# test(5, '五')
# test(12, '十二')
# test(30, '三十')
# test(37, '三十七')
# test(100, '一百')
# test(150,'一百五十')
# test(156,'一百五十六')
# test(999,'九百九十九')
# test(1000 ,'一千')
# test(1001 ,'一千零一')
# test(1001 ,'一千零一')

# -*- coding: utf-8 -*-

# Licensed under WTFPL or the Unlicense or CC0.
# This uses Python 3, but it's easy to port to Python 2 by changing
# strings to u'xx'.

import itertools

def num2chinese(num, big=False, simp=True, o=False, twoalt=False):
    """
    Converts numbers to Chinese representations.
    `big`   : use financial characters.
    `simp`  : use simplified characters instead of traditional characters.
    `o`     : use 〇 for zero.
    `twoalt`: use 两/兩 for two when appropriate.
    Note that `o` and `twoalt` is ignored when `big` is used, 
    and `twoalt` is ignored when `o` is used for formal representations.
    """
    # check num first
    nd = str(num)
    if abs(float(nd)) >= 1e48:
        raise ValueError('number out of range')
    elif 'e' in nd:
        raise ValueError('scientific notation is not supported')
    c_symbol = '正负点' if simp else '正負點'
    if o:  # formal
        twoalt = False
    if big:
        c_basic = '零壹贰叁肆伍陆柒捌玖' if simp else '零壹貳參肆伍陸柒捌玖'
        c_unit1 = '拾佰仟'
        c_twoalt = '贰' if simp else '貳'
    else:
        c_basic = '〇一二三四五六七八九' if o else '零一二三四五六七八九'
        c_unit1 = '十百千'
        if twoalt:
            c_twoalt = '两' if simp else '兩'
        else:
            c_twoalt = '二'
    c_unit2 = '万亿兆京垓秭穰沟涧正载' if simp else '萬億兆京垓秭穰溝澗正載'
    revuniq = lambda l: ''.join(k for k, g in itertools.groupby(reversed(l)))
    nd = str(num)
    result = []
    if nd[0] == '+':
        result.append(c_symbol[0])
    elif nd[0] == '-':
        result.append(c_symbol[1])
    if '.' in nd:
        integer, remainder = nd.lstrip('+-').split('.')
    else:
        integer, remainder = nd.lstrip('+-'), None
    if int(integer):
        splitted = [integer[max(i - 4, 0):i]
                    for i in range(len(integer), 0, -4)]
        intresult = []
        for nu, unit in enumerate(splitted):
            # special cases
            if int(unit) == 0:  # 0000
                intresult.append(c_basic[0])
                continue
            elif nu > 0 and int(unit) == 2:  # 0002
                intresult.append(c_twoalt + c_unit2[nu - 1])
                continue
            ulist = []
            unit = unit.zfill(4)
            for nc, ch in enumerate(reversed(unit)):
                if ch == '0':
                    if ulist:  # ???0
                        ulist.append(c_basic[0])
                elif nc == 0:
                    ulist.append(c_basic[int(ch)])
                elif nc == 1 and ch == '1' and unit[1] == '0':
                    # special case for tens
                    # edit the 'elif' if you don't like
                    # 十四, 三千零十四, 三千三百一十四
                    ulist.append(c_unit1[0])
                elif nc > 1 and ch == '2':
                    ulist.append(c_twoalt + c_unit1[nc - 1])
                else:
                    ulist.append(c_basic[int(ch)] + c_unit1[nc - 1])
            ustr = revuniq(ulist)
            if nu == 0:
                intresult.append(ustr)
            else:
                intresult.append(ustr + c_unit2[nu - 1])
        result.append(revuniq(intresult).strip(c_basic[0]))
    else:
        result.append(c_basic[0])
    if remainder:
        result.append(c_symbol[2])
        result.append(''.join(c_basic[int(ch)] for ch in remainder))
    return ''.join(result)

================================================
FILE: characters.txt
================================================
日
曰
昌
昍
晶
晿
曑
曡
曐
曟
覸
焸
鷼
暒
暥
暘
晘
晹
暍
曝
暻
明
冐
暝
曖
暧
盟
覵
焽
晭
鷳
猒
曌
暈
暉
晕
晖
暖
琞
晍
勗
暩
暚
昷
冒
晛
昖
暡
顕
晜
昐
杲
晽
鷴
晰
时
昩
暐
暕
鄤
炅
炚
曭
暽
晱
影
顯
顥
颢
晃
晄
歞
圼
曀
時
晆
曉
暿
暭
暤
晌
晑
眉
昄
昸
曛
晧
鶍
昴
剔
昕
暀
敭
暰
晷
惖
星
甠
昳
昈
曒
昇
暞
曍
昂
晲
敡
晷
旷
晙
鵖
晟
晠
昿
晡
昽
既
昹
昈
即
昪
曠
早
旪
昁
暔
昧
暷
暑
暏
曢
暄
晥
晼
晓
暁
晏
旲
暸
晞
昦
晻
晇
旯
映
堲
昲
晁
晀
暃
曊
旦
晅
曘
暊
曤
曇
曧
晒
旴
旺
鴠
毾
戥
晊
旱
旰
昊
昮
昙
晸
曬
晤
晨
昃
昺
昞
鼂
鼌
昜
昻
曞
量
曋
昰
是
門
間
閶
闁
闒
晚
冕
晩
閺
閒
閿
闝
閴
闅
闃
曕
閱
閲
閑
閉
闈
闌
閖
閯
闊
焛
闛
闣
闂
閨
闔
閁
闎
昅
閣
闏
閽
閐
闙
闑
閰
閬
闙
曻
闙
閾
閞
闐
闍
閳
閎
閹
闠
閩
閂
閪
閛
閏
閠
閈
闞
閸
閆
閅
閜
開
闘
閕
闉
闄
閇
閻
闞
閮
闋
閃
欥
閄
閵
閥
閝
暌
閤
閦
闟
悶
閟
闚
問
閭
閭
闡
闆
旸
聞
闖
闢
閧
闀
関
闕
闦
閊
闓
闗
關
閫
閘
闤
闥
闧
閌
閍
閗
閔
閙
誾
閼
閚
闇
閡
韙
尟
鶗
昣
昤
昑
晗
旿
題
题
暣
匙
晔
韪
昨
晦
鵾
易
昒
旳
昀
旳
昀
暅
昆
鹍
昫
旽
曷
晣
暳
暳
暙
晴
照
煦
冔
暺
曮
暇
曯
煚
旫
昭
最
朂
曜
昵
昛
暱
暯
晪
曚
显
晎
曗
暴
謈
曦
暪
曂
曣
暎
暵
曄
曅
暛
曔
巴
旵
暨
塈
鶥
毷
勖
暟
郿
鱀
鹛
巼
岊
昢
曓
艮
妟
垦
鶡
鷃
鷐
曏
毼
歇
恳
鹖
曙
曼
曪
曎
晫
曨
昗
晈
暾
昉
昘
旻
旼
曃
晬
曥
暠
景
晾
曩
暆
暶
昱
暗
曈
暲
昡
晐
月
腽
腥
幂
胆
腸
膶
肥
冥
朋
肎
骨
朤
腡
覶
骽
骳
脟
骵
受
髅
髐
鶻
骼
鵬
骺
骰
骪
骶
觅
骶
髀
髆
髍
髍
骮
髂
腪
髕
髌
骷
髖
髋
爱
骻
骩
骫
髏
剮
册
冝
顝
骬
骭
骾
胴
旤
脬
歄
舜
髉
骱
愛
鹏
骲
鹘
咼
髎
髒
髊
骿
體
亂
臞
鼏
覓
脮
膎
髁
髃
髑
髈
骹
骯
髓
髄
骴
髗
髇
辭
骸
賵
賜
贔
賝
賙
賱
賏
覭
鑍
贈
罙
財
貱
贘
賧
贖
鵙
鸎
賉
販
賂
貶
貾
貹
貾
戝
賻
賐
賍
賘
賤
贂
賊
賕
贆
贓
賎
貽
肸
賳
賭
賩
貯
賄
賗
贃
贐
則
罕
貦
賑
賦
肹
甖
贉
贍
鄍
郥
賶
罌
敗
贁
賖
賒
賯
貤
賰
冏
貺
腳
脫
脱
鼆
朌
肦
賿
賬
賟
贌
賹
贜
賆
購
贎
賺
嬰
贚
賋
貥
譻
賥
貼
賠
賅
采
冧
嗠
彩
肘
寽
脨
釉
郛
膝
乳
腖
腏
鶢
肞
辤
炙
膛
膌
冞
脒
膦
腅
朥
縣
爒
胱
鄬
懸
胖
幐
賸
榺
滕
騰
縢
黱
鰧
塍
螣
腾
謄
勝
腃
膡
媵
乿
脳
肚
爯
胿
膮
鸜
氍
胠
戵
脚
周
臌
膨
胉
腺
貋
冟
貇
貜
脓
貕
豺
脷
腇
膰
胮
胳
爳
噕
臐
貃
貌
貈
貉
肜
脈
貏
貔
貎
貁
腶
腫
腄
腯
貗
貄
貊
貆
豾
豻
肵
肌
冗
股
爲
豽
貅
貐
胻
豹
胝
豼
豿
胜
胅
貚
貑
貂
貙
貘
貖
貛
貓
见
臢
貒
臜
貀
膬
胝
胍
貍
脾
膍
舀
膄
冩
腴
腉
朖
膊
朘
脧
脏
脯
脙
肰
肞
胈
胈
胧
肬
膅
頱
脉
腑
悬
膩
臕
腻
脦
胎
臁
膔
虢
虢
肺
脖
腩
膣
腔
皸
肢
鶤
膞
蠈
脻
顐
臏
腙
腟
腚
脘
鄆
腕
膑
膹
臗
胺
軍
冈
罓
膫
谿
胨
脎
然
脄
鷄
鶪
肱
肽
网
脪
刚
腌
羀
胯
胰
肍
肒
郹
雞
脥
军
肋
胁
脇
肿
胦
胇
膢
円
膭
朓
脁
腓
刖
胂
腗
胏
且
肛
囗
臑
臛
腝
胹
膤
膤
脜
肧
胓
胚
脴
鴡
县
胵
肝
爰
助
脼
冎
删
刞
冄
冃
具
冡
肟
朊
脤
胢
雎
同
膈
脰
腷
冨
豚
冢
冦
冠
脛
膘
腼
腰
肊
冤
脃
脕
冎
膽
孚
腬
膙
脡
脠
腱
脠
蠫
脆
肷
胫
膯
膙
肠
贝
赗
腹
膓
赐
肭
赒
朒
赑
赠
财
胕
赕
脽
膲
臇
鶏
贩
赂
胗
贬
赙
赃
朎
贼
贱
赇
肣
腍
贻
赌
贮
赎
贿
则
膾
腀
脍
脸
祭
赈
腧
臉
赋
豋
肐
赡
脞
罂
败
赊
胣
购
账
脌
贶
胙
赆
膴
赚
婴
脢
詧
贴
赔
赅
脂
肔
肳
脗
肑
胀
肶
朐
胊
胞
朑
肫
胸
用
皲
肨
腠
腈
膆
脿
郓
肤
甩
冋
胑
鵰
脭
彫
戙
脭
脵
郮
脶
雕
臊
腭
腵
翢
囘
爭
脲
臔
鵩
豸
肕
脃
冣
腒
服
腛
膠
臎
脹
胒
膒
凸
皿
冊
腊
冪
膜
臈
腆
朦
膉
膳
臓
臟
朕
臙
朠
刪
頯
腜
臒
羘
胼
肼
膳
岡
膿
膁
膵
罔
目
冚
睲
睸
睅
睼
瞷
瞯
瞤
矙
睗
眼
眀
瞑
瞹
瞬
睬
睭
鷪
睴
眮
睜
瞁
睍
覞
瞐
貝
朡
瞈
盻
睇
盼
眜
睞
睐
煛
睄
矘
瞠
眯
瞵
睒
眇
眫
睠
睖
睦
眭
瞌
瞦
鷂
瞗
矈
瞅
眅
矁
矄
眽
眨
睡
瞃
盺
颻
飖
矀
覹
瞛
睧
眡
睋
眣
眊
睙
見
矏
繇
眡
眂
睥
瞍
睨
睃
眸
狊
眬
瞊
眿
眙
睙
矌
眓
瞋
瞾
眛
睵
睹
睫
矉
瞚
睻
眝
睆
睕
矃
瞎
瞭
睳
覐
睎
眱
眏
眈
瞣
瞜
瞶
蜰
眺
瞆
剛
眒
腨
矐
盱
睚
眰
盰
瞰
眄
眎
眃
矖
盶
盯
眪
矋
瞟
瞫
眐
睌
矎
瞻
覎
觃
瞲
眵
眳
瞰
睷
睩
睽
瞪
睁
瞿
睢
膗
矍
瞧
眕
瞺
睔
睑
睮
瞼
盵
睺
睉
瞴
愳
眴
盷
眗
盹
鹞
盽
睶
睛
瞔
瞡
睊
睈
眖
睈
矂
睱
眠
矚
瞩
眧
眲
眍
眶
矅
眤
瞘
瞙
睓
矇
瞨
眹
睰
瞞
瞒
瞱
矆
瞸
眻
矔
瞄
矒
朏
胐
県
矊
眑
鼎
鼎
睩
睏
睤
瞮
矓
瞇
眆
褜
盿
眦
睟
矑
瞓
瞳
瞕
瞝
盳
眩
妥
肗
墾
鸚
鵎
膷
奚
郻
腞
懇
鹦
臘
腦
腂
膕
胭
胛
腢
爵
臅
腘
腲
膃
腮
胟
丹
腿
膼
腣
朧
膪
膀
胶
鴅
彤
膖
肮
膇
肪
膱
膟
腁
膸
脐
肺
刐
胩
脺
腋
臄
臚
胋
朜
脝
胪
写
腤
朣
膧
雘
臆
脑
臃
胘
胲
膻
臍
金
鈤
錩
鎾
鎤
鍟
鎇
鉭
鍚
鍀
銲
鍉
甑
鍆
鐧
鐗
鄫
鐦
鑭
錫
朆
錕
鍻
鎉
鑤
鈀
銀
鏝
鐛
鈅
錋
鑀
銏
鍋
鍘
鋝
錭
鍕
鉏
鍰
銅
鋤
鋢
鎐
錚
銏
鋼
鉬
鋇
钁
鑺
鐤
鋧
鋖
鍂
釡
釟
鑫
鈆
鎓
銻
鋊
鉛
銳
鋭
鈖
鏳
鈢
鑻
錰
釮
鈹
鈌
鋉
鏉
鉢
鍏
錸
錬
鍊
淾
錔
鐋
鎟
錣
鍅
鎃
釵
鈥
釥
銷
鏛
鎖
鑜
鏿
钂
鏜
鐣
鋿
鎲
鐺
銤
鏻
錟
鑅
鐒
鈔
銧
鉡
錈
釷
錂
錴
銈
鐃
鉣
鎑
鑄
鋕
銡
鎱
鑟
鉑
錦
鵭
鍠
鎫
鐭
銄
鉌
鏼
鍬
鋓
鏭
銹
鋵
錗
鐇
鈑
鋒
鉻
鉖
鈓
鑂
銩
鋯
銑
鵜
鳻
鑗
釤
鉚
鎦
釺
銖
鍛
鍾
錘
銛
鍎
鍤
鐈
鑕
剃
釽
鍁
頒
颁
釿
銗
釠
鏫
鈠
釩
邠
鉛
攽
鏦
錉
銽
鹈
鈝
鋨
鉎
鉄
鎢
鈩
鍽
錑
尣
鑙
鑽
鎳
鎴
鈲
錍
鏓
鎞
鎪
銵
公
鈛
鋃
鎛
鋑
枀
鉥
鎺
鏚
銊
鉾
鍼
鋮
鈗
兊
錢
鉱
鏒
鎯
鋪
鉥
銶
鈸
鈸
鏞
鏮
銂
鎕
頌
颂
瓮
銢
忩
釴
鑣
鉽
鋱
銭
鈶
鈩
鍽
錑
翁
鐮
鑛
鍍
鏣
鉞
鏕
針
鎮
鋍
鎍
鑔
鎔
鑹
鈘
鐵
鏄
鏸
鐡
鏩
錷
鍺
鋐
銠
銬
鑌
鏔
錝
鍹
錠
鎵
鋎
郸
鋺
鏥
鉈
鑏
鎋
鈷
鍸
錧
鋴
冁
鐼
鑧
鑳
銨
父
釱
爸
銪
鎩
鐐
鎩
鍷
斧
鈜
鈦
錛
鏯
鈽
銌
錼
釜
錡
銙
銕
釚
釻
爹
鋏
釛
爺
爷
鉫
丫
鈡
鉠
鈂
鉂
鋛
釧
鉘
鏤
鐀
鉵
銚
鉳
釗
鐨
銉
鈾
鉮
鏽
釭
銆
鑐
顉
鐳
釪
銾
鈈
鑈
鋄
錽
銔
鉟
錱
鈺
鑩
鶲
鋣
銍
釬
銒
勜
錏
鐂
銢
鐚
鋙
釫
鈨
鋠
釘
鈳
鈵
憌
錻
鹟
鉐
鎘
鎶
鋀
鍢
鈪
鈃
鉶
鐝
鐕
釾
鎒
鋞
兮
鏢
鐔
鉦
鈣
釔
鐌
銫
鋔
釨
錳
鉨
鈕
鐍
鍒
鈒
釢
錎
釸
銿
鏹
鉹
銘
鋌
鋋
鍵
鈏
弚
鈟
弟
鐊
錒
録
釕
欽
鏺
鍨
鐙
鑱
鏹
錚
鑥
釞
鍑
鈉
銝
鉜
鉩
錐
鏶
鐎
鎨
鐫
鎸
銋
鉁
鈴
鑯
鈐
錜
鎗
鋡
鉃
鏅
鉓
鎀
螸
鑰
錀
鋲
銓
鍮
鐱
鉿
釳
鎎
鍭
銼
慾
鈋
鉇
谷
鎿
鈼
鋂
鈊
銁
鎭
釶
鉍
鍃
釣
鈎
鈞
鍯
鈞
鋾
鈚
鍇
鉤
鉋
鉪
鍱
鈍
鍧
銇
鍥
鏏
鏏
鋳
錆
錶
鈇
鐟
鑚
釦
鋗
豀
鉙
豄
鵒
鋁
兌
兑
谾
谹
銱
鈻
鋥
豃
鋘
鏴
谺
豃
郤
欲
谻
谽
总
懖
鍲
鹆
鋁
鐰
鍔
鍜
鍓
卻
豂
谼
釲
鐉
鋘
鈱
豅
鋜
鑦
鏗
钃
分
釖
貧
炃
坌
釰
蚠
瓫
贫
忿
麄
兺
鉊
盆
弅
岔
鑑
鑬
鉺
鋷
鑷
鎁
鋸
銸
釼
兯
鉔
鑎
鋟
鑃
鏐
鐞
鉰
鑑
鋹
鈬
鈮
鎷
鉕
鐴
鏂
鉅
鋦
錯
鏌
钄
錪
鏾
鎆
鉷
鐠
鐁
鏷
鎰
鑮
鑆
鎂
鑉
錓
鑶
鐯
銰
鍩
鏋
鐄
鍈
鉗
錤
鏵
鍖
鑊
錵
鎝
鐷
鎈
鑵
鍣
鉼
鐥
鎙
鎡
錨
鏪
鐏
鑖
鎌
鑝
錺
鋩
釓
鏰
鍐
鑁
鎽
毤
銟
鍴
尩
錌
鎧
鑴
鏙
敓
敚
尦
鈯
釹
鐑
鑠
銯
鐖
鉯
鏘
鍿
錄
銣
鎻
鏁
鑞
錙
鈿
曾
曽
錁
鋰
单
鏆
錮
銦
鉀
鍝
鑼
鐲
鐸
鎠
鐶
兽
鍡
鎅
鎾
鍶
兾
鏎
鏍
鑸
鑘
鉧
釙
鋽
鍗
鐹
鍞
钀
鑨
鎊
鏑
鉸
鐓
鈙
鉒
鐽
鏠
鏟
鈧
鎚
鈁
銥
錥
鋶
銃
鈄
鏈
鈫
鏟
鈰
鑓
錹
鐬
鑡
鉲
錊
鏬
錿
鐻
鑢
鎼
鐪
鑪
錿
鉆
鎬
錞
鍄
鑲
鎄
鍦
鏃
鏇
鉝
鐘
鋅
鏱
鎹
鐩
鐿
錇
鏡
釯
鉉
鏲
鏀
鑇
木
杳
椙
橸
榅
榥
榯
楣
楖
概
查
柦
楊
棏
桿
椚
橺
橌
橍
櫚
櫊
欄
櫩
棍
楬
樶
榻
杷
櫭
根
槾
朿
枂
榠
棚
榾
栅
橓
楇
棎
櫻
棌
棘
棗
橳
椆
枧
槄
楎
橪
刺
査
柤
椇
楥
枏
檼
桐
桴
僰
敇
榣
樱
棦
棴
柵
棡
棢
相
梖
欔
櫾
欋
檙
梘
桵
榽
枣
枬
朳
朩
檭
椕
松
枩
棇
枍
梯
柗
梲
棁
枌
橧
椫
林
楂
栜
欎
棾
鬱
鬰
鐢
棼
森
檚
櫇
焚
燓
埜
壄
材
柀
彬
梵
檒
村
椘
麓
枺
樊
蠜
礬
攀
梀
櫴
楋
樕
禁
辳
椲
梺
梦
郴
楚
棽
棶
懋
樷
梾
婪
棟
榃
楝
欝
权
皹
樑
树
槡
棳
桫
柽
杈
樑
頗
颇
皯
皰
厀
杰
梢
橖
欓
樘
橕
檔
榉
橉
楼
棪
橩
橩
櫿
檆
橯
杪
隸
桄
歀
柈
椦
棬
档
桜
杜
柟
棱
樯
桂
槸
橈
榼
檮
樾
檣
梽
桔
檯
橲
榬
樹
櫝
榸
才
柏
棉
楾
樢
楻
槹
槔
櫛
梎
梍
槝
桖
鼒
櫸
欅
柇
楿
楸
棅
梸
橎
皮
板
桻
栙
格
柊
檓
櫄
梏
鸉
橮
杉
榭
柳
榴
櫆
柉
杄
櫡
株
椴
棰
栝
楯
枖
橋
桥
楀
櫍
枛
檓
析
栃
梔
栀
柝
机
杸
楓
杋
枫
桁
椼
樅
杔
棔
橁
柢
桰
槪
栍
柣
枆
桘
枦
楄
檄
棙
椖
槴
枡
檱
櫤
欑
槐
橰
櫋
橇
栎
柢
枊
柧
椑
樬
桕
楰
棿
櫷
樦
榹
榹
寸
桹
榑
梭
榊
桩
櫥
槭
桙
椷
楲
棧
樃
槮
榔
栈
梂
枤
柭
椮
桳
柭
栊
槦
槺
栦
刌
椩
榶
栤
栨
栐
櫠
榳
檪
椨
杙
樲
栻
桟
枱
棫
枦
楄
棙
椖
槴
械
櫎
樜
槠
櫦
樚
末
杮
槙
桲
檫
楠
植
椬
欜
柼
椌
榕
榨
枝
叏
楁
槫
橞
橶
檊
杖
楮
栳
槣
栲
棲
檳
棕
榁
楦
柠
椗
榢
梡
椟
椀
樎
槟
柁
榰
橣
櫁
檸
樒
桡
櫶
枯
楜
橭
唜
棺
枿
橨
桉
榟
夬
杕
栯
樧
橑
栋
榝
楏
鴂
鷘
梑
桸
棥
樉
柨
栫
刔
楕
椅
桍
整
桋
朹
枠
槉
梜
憗
憖
慭
慗
槗
朸
槬
枷
檶
栛
束
晳
柍
枕
椞
棣
皙
鵣
螙
槛
榄
勅
鶒
梙
杊
蜤
剌
柫
槵
樓
頼
樻
桃
橷
棑
賴
赖
欶
敕
惁
橷
賴
榈
櫢
柚
柛
栧
梬
橚
柹
棩
辢
本
杠
杢
扌
栢
桓
檽
欛
槓
櫌
橒
栭
樰
欞
櫺
樗
樰
檑
榗
栖
梄
杅
皶
極
杯
檷
枰
柸
檦
桮
枉
櫉
椡
櫮
梇
榞
櫪
榗
桎
杆
橄
枥
梗
椏
桺
橊
柡
标
柰
枟
橱
欐
梧
杇
杬
桭
朾
桏
栵
柯
柄
柘
槅
韋
梪
楅
杤
樮
翉
椓
枙
枅
櫔
桠
橛
杌
橬
榎
枒
槈
桱
枑
朽
舝
檟
標
槱
樮
橝
橿
槚
楆
柾
杛
朰
橡
栬
梚
桷
槲
檞
桷
檐
李
杍
槂
極
櫯
杻
橻
橘
楙
楺
极
桶
柕
桞
栁
栘
杼
桝
橄
梃
梴
楗
梴
橢
椭
樄
椂
榒
桅
櫲
杴
杦
楈
橃
楑
榌
橙
揧
榤
欃
桗
棦
杨
楹
櫈
杩
櫓
橹
櫷
朲
杁
椱
枘
榷
賚
栴
柎
桼
椎
欆
樵
榫
檇
槜
鶆
栣
栰
柃
栿
猌
櫼
枔
棯
槍
梒
杵
枚
権
椥
勑
樇
樤
梻
檜
棆
顂
梹
梌
栓
桧
楩
椧
检
榆
檢
検
楡
杚
郲
來
枞
桽
杹
柂
桦
椺
柞
枪
橅
梅
檎
朼
杺
栒
栺
槇
杝
椈
柲
榓
杓
构
枃
楤
杓
枃
枨
枇
楷
梐
枸
枹
枻
楪
杶
杽
韞
韜
韗
韎
韒
韥
韟
楔
韍
韍
韢
梆
槥
櫘
槥
椿
榛
梼
楱
棒
樁
枾
棈
樍
榡
韖
郼
枎
櫕
韐
槻
韘
韌
韔
韛
韚
韡
韝
韤
韣
韞
韠
韕
杏
梋
枳
桯
梠
柷
檝
柺
桯
枵
梠
橾
樿
欕
榀
楍
椵
枴
楫
椻
樫
欘
樨
榍
堏
朷
杒
柖
梶
梕
檻
栮
棷
欇
椰
椐
枢
桾
櫃
栕
榧
槢
梫
棂
框
櫂
楃
樛
樳
桪
栩
柌
榋
檻
棖
樼
柩
膥
柅
愸
榪
梛
檉
檘
樞
柜
梮
榐
杞
梞
欖
来
棤
橗
模
欗
椣
櫒
橵
椾
檬
赉
栱
檏
欉
櫀
樭
檋
樸
榏
楢
欂
樣
様
榚
檥
檨
橏
欟
樥
欌
楛
栚
楉
樠
横
楧
槿
櫹
柑
棋
橫
楳
樺
栏
椹
檴
櫵
椛
榙
欍
槆
檧
样
槎
權
榵
栉
櫙
栟
構
椪
橏
欁
槽
樽
櫗
橂
檂
槏
札
杣
椶
梤
蚻
椯
榿
欈
槯
梣
想
桤
柮
紮
檰
櫞
櫟
機
柪
朻
梉
橼
椂
椽
欚
樔
檵
桚
椔
東
柶
棵
梱
柬
梩
鶇
鶫
棞
槶
樌
檲
棝
栶
柙
欏
檡
椤
楞
檈
檌
椢
椳
楐
榲
楒
樏
欙
櫑
栂
朴
槕
棹
楴
檛
楨
桢
櫳
榜
樀
校
橔
槨
櫬
椒
柱
橽
楌
槰
杭
槌
枋
樴
棛
橀
梳
枓
槤
楌
梿
柿
杫
檅
櫏
桛
樋
橠
椊
棭
橴
榩
樝
椃
櫖
櫨
椃
枮
櫧
槁
椁
椋
楟
梈
檺
欀
栌
椸
檹
棜
柆
榇
橦
樟
梓
櫣
檖
檍
棓
樈
槞
檤
椄
樆
杧
核
槒
檁
檩
樐
檀
櫰
榱
櫅
水
汨
沓
汩
淐
温
灦
灝
灏
滉
涅
溡
湦
湄
溉
濐
泹
湯
淂
涆
淏
湜
澗
澖
灁
潤
灛
潣
灍
濶
瀾
混
渇
渴
溻
湿
瀑
艰
泿
濕
漫
澷
澋
渂
溟
淝
淜
滑
涭
渦
漞
深
瀃
濺
浫
測
浻
滘
瀴
浖
淍
潙
淫
沉
观
沉
滔
渾
鸂
浑
沮
湲
溕
濦
洞
浮
漈
溅
测
滛
懣
懑
慂
懘
渓
泂
淨
泴
泪
浿
灈
濉
渺
湨
濎
涀
覌
浽
溪
灂
浵
泻
淦
汃
洕
鍙
梁
粱
滃
滏
涕
浴
沿
涗
涚
汾
湓
潧
沐
渣
洓
盓
湘
淞
淋
澘
潸
潹
澿
漜
灪
滼
濋
漤
塗
溎
湐
波
涁
淅
对
沫
決
涑
瀨
瀬
潄
溂
濑
漱
泍
顙
颡
渿
湋
漆
淶
瀒
涞
涷
湅
汉
双
沝
涾
錃
淼
叒
渁
桑
叕
涰
敠
鵽
敪
剟
欼
毲
叠
汊
溞
碆
滩
泽
濷
婆
消
溑
灙
漟
潎
淌
澢
洣
瀵
潾
溇
淡
灐
濚
濴
瀠
濙
瀅
瀯
澇
沙
渻
洸
泮
漛
潫
淃
圣
坔
汢
潱
涜
淩
淕
濲
瀔
洔
瀫
洼
塣
湗
澆
法
溘
準
浾
頚
乼
濤
濇
洁
溒
滶
澎
澍
涬
瀆
泊
淿
湶
鳮
湟
滜
瀄
澔
澳
淛
澚
洫
盪
洎
灚
浓
洀
瀏
桬
潲
潻
湫
浰
溗
涹
潘
汳
汷
涤
浲
湰
洚
洛
瀊
泈
燙
烫
泘
浩
洗
泖
滗
派
溜
泛
汘
洙
湩
涶
活
沃
添
渪
沠
潷
璗
沂
澨
洉
硰
泝
乷
没
汎
渢
沨
洬
沿
鯊
鲨
潃
澓
瀓
洐
漎
漇
汑
涽
泜
漑
挲
汼
涐
湃
泩
泆
溮
溩
沪
淭
溵
激
淚
滬
潨
濳
灒
瀩
溾
溴
濞
娑
泺
泜
泒
汦
渒
漗
溲
潟
澙
湼
淣
裟
戏
叉
浪
溥
浚
灖
梁
沭
灖
粱
灋
滅
洠
減
沇
淺
滲
浅
浦
沭
浗
汱
沷
溈
渗
浝
沷
泷
沩
沋
滽
漮
洲
蚤
溏
泳
澬
涘
怼
浳
瀌
治
淢
澸
沪
淭
淚
涙
滬
瀇
濂
渡
浝
泧
泼
浒
瀍
漉
汁
濵
沛
滇
浡
溹
湳
淔
灢
泬
潌
漥
湥
涳
溛
溶
沬
浨
漖
渤
汥
瀉
浶
瀋
瀻
溨
漙
涋
瀐
潓
渽
潮
澣
濣
漸
瀚
漧
瀭
渚
涍
浤
洘
渖
淒
演
濱
滱
淙
渲
泞
淀
浣
渎
涴
滨
沱
澝
淧
濘
浇
滵
瀗
沽
湖
涫
濅
泋
濆
瀽
洝
漃
滓
汏
洧
鋈
潦
洃
潴
漪
汰
汯
渀
淆
浠
漺
洊
淹
渏
洿
洟
氿
汍
浹
滯
渐
劝
氻
泇
浃
沖
泱
沈
渊
垽
壍
澅
鼝
魙
渱
灗
滥
浉
汌
沜
沸
沜
漶
漊
潰
浊
洮
溃
濜
渄
津
涧
润
聻
澜
峾
嬱
湚
油
洩
涄
潚
泲
淵
江
洦
洹
濡
灞
湏
瀮
瀀
瀖
澐
澪
瀜
渜
洏
灀
溍
酒
洒
汙
濔
泙
汪
洅
涯
濏
潖
源
鴻
瀝
溍
洷
汗
澉
汚
添
沥
沞
浭
沔
澑
澒
沶
沄
灑
浯
污
沅
浱
汀
洌
河
瀦
鸿
沰
沯
滆
滒
浢
湢
涙
涿
汧
濿
潛
灊
漘
溼
溽
涇
沍
滣
汅
溧
潥
漂
湮
湹
潭
湎
漹
泟
潒
浼
渙
涣
澥
湧
盕
澹
染
汓
沒
洆
沵
沑
潏
渘
汲
淊
汐
泓
涌
濥
漒
汿
沀
洺
汛
澉
涏
涎
湕
涎
邓
瀡
濻
滁
漋
泐
瀰
渌
溺
洈
澦
滪
欢
汣
湑
潑
湀
泾
溌
澄
涨
滐
瀺
漒
浄
汤
渳
溋
漲
瀂
澛
漁
渔
汄
氼
漡
汭
盜
潊
溆
泭
漵
难
淮
潗
潐
沴
浌
泠
洑
瀸
汵
淰
滄
浛
湌
汻
瀿
潅
滺
滫
滌
浟
澮
淪
瀹
浜
涂
洤
浍
潋
汽
渝
澰
洽
涻
汔
滊
溣
瀲
沦
沎
沲
潪
湺
潝
渰
泎
洢
沧
潕
濮
海
涖
沁
洵
池
柒
淗
埿
泌
沕
淴
湉
沟
汋
汮
浺
汮
淘
沘
湝
泃
泡
沏
泄
渫
沌
洶
鸡
渹
瀞
濪
洡
堻
潔
浙
沣
湱
滟
湷
溱
溙
涛
湊
淎
清
淸
漬
溸
渍
潜
濽
湁
滶
呇
浥
涓
溳
涢
浧
況
濈
渑
浧
洖
潞
涡
惉
湣
澡
潬
湂
澏
溊
湒
汜
潠
洖
泯
澠
浞
汇
涮
澱
渠
灟
漽
沼
浘
澀
涩
涊
濫
洱
潳
滠
灄
涺
沤
泦
涒
洍
瀶
汈
漝
漏
瀥
瀷
浸
濯
洭
渥
漻
潯
浔
濢
瀈
泀
濫
涱
潺
沢
滙
浕
泥
溤
澼
漚
洰
氾
淈
灠
濗
漠
灡
淟
溁
潆
滢
潵
湔
濛
涝
洪
潽
澲
灇
濝
澌
溢
港
湭
漾
溔
濧
渼
湵
濭
渞
瀳
漭
滞
浂
渕
渃
滿
潢
渶
潇
漌
漢
瀟
泔
满
頮
颒
淇
湈
澕
渮
湛
濩
灘
溚
濸
瀁
濍
洋
溠
灌
灆
洴
汫
溝
湴
渆
灎
灔
溯
満
溬
滋
濨
浀
渵
漕
澫
瀎
澊
澧
濃
溓
淽
淓
汕
潉
漰
鎏
鍌
澂
溄
漴
灃
汹
湠
湍
湠
漄
瑬
滍
溰
涵
溦
漼
涔
潂
灩
灧
泏
溦
汝
灤
濰
灣
濼
泤
泑
潍
湽
淥
湪
洳
灉
漅
淄
沺
畓
渭
泗
溭
淉
涃
潿
溿
浬
潶
濹
漍
涸
洇
濖
湡
濁
澤
瀱
潀
潈
澴
淠
溷
渨
歠
泅
溫
涠
洄
潩
滭
漯
灅
淖
渧
濄
湞
灕
澈
浈
瀧
滂
濬
滴
滳
滦
洨
湙
湾
渷
滾
滚
潡
漷
澵
瀙
澯
瀣
淑
注
塰
澾
瀕
漨
滻
沆
濒
汸
淯
流
灨
漣
汶
滧
济
済
滻
浏
涟
沛
瀢
洂
涉
渉
沚
濊
澁
渋
泚
灜
滮
瀛
淬
液
滹
澞
淲
澽
濾
滤
瀘
淲
沾
湻
滈
淳
涼
滸
渟
涥
湸
濠
湸
瀼
泸
游
湤
漩
淤
泣
湆
湇
濓
潼
浐
漳
澻
澺
涪
滝
滰
淁
漓
滮
汒
澭
泫
滀
澟
滷
澶
瀤
滖
濟
汴
火
焻
焨
煴
熀
煋
焺
煝
炟
煬
焊
煶
燗
燘
熌
燜
爛
爓
焬
焜
燳
熶
爆
爗
熳
燝
煜
肖
熐
焩
燰
觉
煱
覚
烱
栄
泶
坣
鶺
鴬
喾
熖
煇
燃
労
蛍
削
煖
尝
烔
学
烰
鲎
敝
敞
熎
鹡
鸴
尚
炯
尙
賞
赏
棠
堂
営
党
常
牚
瓽
嘗
掌
営
甞
當
黨
裳
黉
焵
焹
峃
爠
覍
爝
烿
脊
炂
焧
焍
焀
举
挙
熷
誉
米
炑
糧
糃
粑
粣
粗
粡
粰
粣
粯
粉
爩
籿
粖
糔
糛
粆
糦
粕
粄
粁
籶
糌
籷
粍
糄
糗
粺
糌
粮
糐
粧
糝
糁
糠
糖
粐
糄
麊
籵
粀
粩
粽
糘
糊
类
炔
粏
粋
粙
粨
糯
糥
頪
粫
粞
粳
粝
煒
粐
糲
糣
糎
糆
籽
粈
糅
糨
粦
籸
粌
粶
糑
糈
糨
敉
敩
糩
粭
籺
糇
粚
粷
粅
粃
精
糏
籾
糮
粻
粎
粔
糢
糷
糤
糋
粪
粠
糕
糒
粓
粸
糂
糀
糚
糍
粬
糟
籼
糭
糉
籹
娄
粶
畨
粿
煉
粴
糰
糬
糫
糞
烞
粇
糙
料
粹
粘
粒
糡
炎
炏
氺
焇
膋
覮
鎣
榮
檾
滎
爣
熒
塋
鶯
焭
犖
憥
勞
螢
禜
瑩
甇
醟
煢
罃
營
嵤
覢
嫈
縈
謍
褮
燐
燮
焱
尛
爕
燊
爃
燚
烾
炒
鶑
夑
飊
勬
剡
纇
顃
颣
郯
欻
歘
熦
敥
虩
虩
煔
灶
尘
爀
烓
燒
熆
焃
燽
熺
少
煌
燠
烅
省
烐
炿
秌
煍
熪
燔
炍
烽
烙
炵
烀
爋
燬
燻
焅
烍
毟
熘
煅
煄
燆
劣
焮
燬
炘
炈
煈
鼡
烆
灹
焝
熓
炉
煸
爋
燩
煽
熩
灮
熄
烁
焷
熜
烺
煿
焌
炢
煘
烳
炦
炦
蠽
焿
煻
爊
烒
炲
炉
煸
煽
熩
爌
燫
熫
熝
煵
焢
焪
熔
烢
戦
爎
烤
煊
烷
焥
炨
烧
煳
熍
燌
焼
尖
暼
烠
瞥
鐅
燎
烣
尜
煃
鷩
氅
龞
獘
烯
幣
幤
蟞
類
斃
彆
鱉
鳖
龞
憋
撆
鄨
鼈
蹩
熁
燲
弊
嫳
炼
炼
炴
爞
炥
熡
烛
烑
燼
灲
焖
熽
灴
烜
燸
煩
熕
燯
煗
烦
爧
兴
烣
炋
爏
厳
焐
灯
厳
炣
炳
炻
煏
烼
爄
光
熸
烴
熛
煙
燂
炡
煥
焕
炄
鵥
燏
煣
焰
烶
烻
煡
烻
邩
焔
炊
烃
燈
揱
炀
尐
烌
雀
焳
燋
炩
焾
熗
焓
炇
炌
燴
爚
烇
烩
烚
熂
炛
炧
烨
熻
炸
炝
烸
灺
灼
灼
煯
炮
煠
炖
煼
半
眷
桊
韏
叛
斴
牶
飬
炐
劵
帣
奍
判
頖
豢
甐
弮
觠
觠
鄰
鮝
鲞
餋
拳
炜
券
翷
駦
卷
巻
亃
絭
粼
誊
齤
焆
熉
炽
焒
炾
獣
焒
燥
燀
煰
煆
熞
爥
灱
炤
爁
烥
当
熠
燿
熮
燖
熤
烬
熰
炬
焗
煀
爦
灷
焟
爤
烘
烡
爜
燍
煪
燨
爔
烪
熿
煂
煐
熯
煤
燁
烂
煁
焫
爑
烵
煫
燪
烊
爟
煹
燤
燇
爡
燶
熑
灿
熴
尡
輝
辉
韑
兤
勌
煓
熣
耀
黋
炪
爍
数
爉
畑
畄
煟
巣
焑
爅
単
烟
煾
炠
燭
燡
劏
顲
煨
熅
熼
熚
焯
煺
爖
熵
烄
燉
燦
爘
炷
燵
熢
炕
熾
焴
炓
炆
熥
焠
焲
爈
爐
炶
熇
焞
燺
煷
煷
爙
燑
燧
燱
焙
炫
烗
燣
燷
炞
土
塭
埘
塒
声
堳
坦
場
壜
垾
堤
墹
壛
埸
堒
堨
塌
垠
墁
冉
塓
堋
堝
堔
埛
埰
埒
埓
坈
壳
觳
悫
坈
売
塪
堚
壺
壷
坥
埧
壸
槖
蠧
壼
塚
塜
垌
壹
垺
坝
壱
坰
埩
壶
堈
垻
垷
坍
覿
皾
坴
赫
夌
赯
塕
赭
赨
頳
赩
郝
赥
赱
赦
赮
鼀
坋
赧
丧
增
増
啬
赬
赪
坡
穀
榖
糓
寺
块
埬
堜
瞽
鏧
墚
漀
鼜
鼞
馨
鼕
毊
鼛
鼙
鼛
墚
螜
鼘
磬
鼟
罄
慤
愨
撀
聲
鼚
謦
韾
灻
埫
壋
塉
埮
鷇
縠
隷
垙
款
坢
堘
埢
垱
圭
堎
墙
封
燅
垚
壵
堯
墝
鵱
瑴
埶
勎
劸
刲
壔
邽
墻
恚
郌
鼃
奊
卦
堭
墺
垧
垍
塖
墦
坂
埄
垎
垀
壎
塮
殸
塯
圲
塅
堹
埵
墧
蟚
圻
垢
甏
坼
垛
坄
堸
垳
圫
坻
塢
埠
垖
墽
圥
塊
坻
坬
坁
埤
堄
去
圹
圡
暬
朅
埌
盍
贄
埈
槷
漐
熱
墊
堼
幫
鷙
墄
犎
堿
城
魗
墋
埔
坺
垅
勢
劫
墉
幇
蟄
刦
塘
邿
垿
埃
慹
摯
摰
坮
域
唟
鼁
刧
刼
刼
却
叝
翿
騺
驇
墭
弆
壙
墌
鞤
縶
塶
褺
謺
填
埴
坹
堗
埪
塎
垨
轂
垞
瓡
塼
墘
堵
執
塇
坾
埞
垸
埦
坨
報
墳
垵
壊
盩
贅
鏊
熬
鷔
獒
塽
螫
螯
埯
堶
埼
垮
鰲
埉
墆
摮
嗸
鼇
聱
驁
嶅
嫯
謷
坱
埭
圳
坲
塿
墤
垗
壗
赤
垏
坤
垣
壩
壖
墵
堧
鋆
圩
坏
坪
坯
堐
塬
壢
垤
坜
埂
埡
坛
圬
坃
圢
坷
坧
塥
堛
垭
坘
塛
墂
堙
壥
墰
壃
圷
墕
堍
埆
埆
圾
殼
彀
殻
埳
埇
垑
埏
埏
燾
壽
垝
坎
壻
墢
墱
垜
埩
场
圦
塲
趕
趧
趄
趛
坿
赽
趚
趙
趟
赻
堆
趬
趌
趎
趏
趫
赾
趓
豰
趆
趃
趲
趱
趆
赿
坽
垘
趑
坅
趦
埝
越
趤
赵
坆
垁
赲
圿
趒
趀
坵
埨
趰
赶
趑
堬
趔
垥
圪
趂
趍
堠
趢
赼
趓
趋
趡
趭
趁
赺
趝
趖
趜
赹
赹
趨
堢
趮
塩
起
墖
趗
超
趘
趣
趯
趐
起
趞
趥
墲
趪
赸
趉
赳
趢
嗇
趩
赴
趠
趈
趇
志
塡
覟
地
圽
圴
均
均
堩
堦
坸
垉
堞
坉
坞
毂
垹
堾
埲
埥
塐
吉
埍
塤
臺
埙
喆
囍
嚞
鴶
埕
嗀
袁
劼
頡
颉
噽
嚭
埕
郆
歖
欯
埚
墠
壧
堮
喪
翓
壴
熹
憙
喜
嘉
圯
垊
敼
堰
墀
墛
壏
壣
壭
埽
埐
敖
坭
壀
塸
垇
塀
圮
堀
塻
垬
墣
塨
塧
塂
皷
皼
尌
墡
壒
鷧
彭
懿
幸
墸
鼓
墴
墐
坩
墴
墷
懿
堪
埖
塔
垟
壦
壾
垪
墡
亄
墈
墫
壿
鼔
塃
圠
圸
塴
堫
瞉
顤
堓
塏
墔
埁
翹
垲
壪
坳
堟
堖
堁
埋
毐
毐
堌
堣
賣
墿
堽
塄
夁
堺
塭
坶
圤
壠
塝
盐
墑
墒
塆
壌
墩
墎
埱
墶
塳
坑
塠
坊
堉
坟
垯
壝
埗
址
圵
垰
走
埣
墟
墟
壉
壚
坫
塙
埻
壕
壤
垆
垃
堷
墥
墇
垶
培
境
垴
垓
壈
塷
壇
壞
竹
丿
白
馧
皔
馤
皅
皧
皗
馟
皭
馚
皌
泉
皐
皢
皛
馫
皨
皡
皞
皤
皈
皓
篂
皒
皦
皃
篃
魄
皥
馢
馛
節
皫
皁
馞
馪
皖
馩
皋
馣
劰
帛
蠞
馡
笪
皬
皇
筸
簡
簢
籣
馥
皊
馠
敀
皂
皀
馝
的
箟
皍
皘
皟
馜
皣
皏
馦
笆
癿
皚
皠
皑
皪
簋
畠
馧
皎
梟
鳥
皉
鳬
皜
島
裊
舋
笧
覺
爨
澩
燢
爂
籐
籘
壆
鶣
鷮
鷽
鵳
嚳
簲
笕
緜
奧
奥
筋
勪
制
笡
顅
釁
璺
筒
礐
筯
甂
觷
觷
學
筟
鄅
鱟
雤
敿
箆
甪
向
簓
箏
箙
翩
騗
血
笧
笽
黌
自
嶨
筫
籰
纂
篎
篡
簒
算
筧
篹
籑
农
敽
舟
乊
臖
盨
澃
鸒
夓
籦
籛
轝
劉
劗
劕
礜
乥
籙
酇
鄮
歟
舉
擧
嬃
籙
箪
頾
譽
禾
香
穊
稈
穝
策
稝
稱
稠
稻
稲
租
穩
秱
箣
稃
穄
穏
盉
箱
穱
稊
稅
税
秎
箖
秛
秣
稦
释
秋
稥
稍
秒
秚
稜
稑
穑
秲
穘
穡
秸
穯
鴸
鷍
穒
穆
秾
秝
秊
秼
種
秳
秗
穚
秃
毇
秅
秪
秩
秏
稨
禿
穳
秪
秖
籕
稗
穥
龝
私
稂
稄
秫
穇
秿
秫
秡
秡
稶
穅
穮
秮
稢
稨
穬
稽
嵇
稹
稙
穃
秓
秺
穗
穦
稼
秙
穂
稀
秇
种
秉
秧
籟
利
剁
籁
簌
乘
釉
秞
秭
笨
穤
稬
穪
秤
秠
秷
秆
稉
稏
秐
穲
稫
甈
季
秄
称
秀
移
邾
鄡
臲
稰
稳
穭
穞
穐
龝
秂
稪
黍
稚
穕
穛
秹
秢
稔
斆
稐
稌
秴
箂
秨
悉
秘
秕
稭
稧
積
和
积
程
程
稆
鼄
篐
穉
穋
釈
秜
秬
稺
乗
稓
簯
穙
穔
稘
穫
穁
稵
穠
稴
秈
稯
秽
委
穖
番
稩
稷
稞
稇
稛
稒
秵
釋
穓
穣
斅
秔
科
穢
稡
秥
稿
稕
稤
穰
穜
穟
稖
稸
穧
反
夂
夊
篞
簜
篞
盤
鎜
簗
条
槃
箥
夈
垼
箔
灥
処
箲
籓
簗
簿
箈
务
幋
螌
磐
鄋
处
慇
筂
搫
夅
夆
各
笵
篊
鞶
媻
縏
备
惫
冬
处
褩
黏
黐
灬
爫
鵿
鸔
筲
箾
簹
鍫
乎
釆
鴃
乯
篓
湬
簩
鶖
鴼
鴤
鳧
鶳
箵
鶃
鷈
鷈
鵔
鴥
鴕
勳
鳨
蝵
醔
鴚
甃
鳦
鄔
鄥
鵦
歍
鵻
鴏
鵌
愁
鹙
揫
箞
筜
鷌
鸃
鶀
鸌
媝
鵦
鷻
壬
皩
簭
等
濌
熏
皝
筀
篈
毀
先
丢
篕
動
顧
籌
筠
告
籉
靠
篁
卿
贸
睝
貿
錅
躮
棃
篍
射
躰
筣
簃
筿
笿
笗
躺
軂
軇
筶
筅
彡
鵹
鵢
躷
笷
躲
辵
犂
躴
躿
軈
躻
箽
箠
軉
筈
笑
簥
躸
躭
籞
軁
笊
須
须
軅
躬
凢
竼
躱
鯬
黎
篽
筕
簁
篵
箻
惣
躹
笙
笔
篩
躳
躳
軃
躽
篇
剓
躵
躯
卯
贕
孵
毈
卵
躼
軀
簄
躾
軆
籫
笟
篼
留
躶
黧
箄
篦
籅
軄
篪
篪
么
筤
簠
魍
魈
簶
鵝
鵞
鴟
鬽
鬿
犩
箴
筬
箋
篸
魃
魃
魊
魆
笺
魅
鬾
笼
肈
篖
魎
魉
魒
邸
乏
魋
魀
鹅
鸱
笞
啔
篇
簄
笲
簾
魌
魐
魕
魓
簏
魁
魖
魖
魑
千
貭
质
盾
箜
谸
朱
筞
圱
鵯
鷱
鷎
段
臿
篿
簙
籖
簳
簐
簵
範
箸
埀
刋
箑
乖
顊
簆
簆
箮
筦
郫
箢
忎
鹎
舌
箶
管
翺
翱
翶
簺
垂
重
夭
昋
晵
簝
棨
沗
叐
鴁
鸄
笅
勶
乔
蚕
肇
笂
鄓
筴
忝
懲
呑
啓
喬
竻
笳
岙
嶴
綮
譥
亻
兎
齃
币
禹
質
齄
斦
齅
篮
齉
鼽
劤
筛
齂
簰
箫
簘
劓
笰
簍
頎
颀
簣
鼾
禦
筄
篑
鼿
齀
乮
乺
邤
欣
爪
齁
筆
啠
简
齈
籔
鼼
齆
笛
斶
簫
笫
齇
笁
巵
甧
篢
籗
籱
眚
簭
竽
籋
箌
籈
筭
鴟
鷎
斵
筑
毁
甡
竿
筓
斤
筻
竺
籭
笎
甀
築
郵
邸
筇
篫
笴
筮
惩
后
笻
歸
卮
笄
簪
笌
篥
篻
簟
甥
斥
篶
几
颺
颶
飓
鋫
簷
朵
梨
凩
颹
箛
凤
殳
篜
颾
颵
颷
飈
飚
鳯
鷉
凰
笈
颩
飀
飗
颳
風
飍
犁
颼
飕
凡
筩
颰
飇
颰
颱
风
飉
筳
筵
筵
凧
篨
第
凮
凬
鳳
頽
颓
箓
飋
風
飅
篛
凨
夙
颲
颬
飃
歋
飏
颴
簦
愆
悡
颮
飑
掣
颫
躗
躛
筝
飂
凲
笃
颸
飔
製
凪
讆
讏
颭
飐
八
彳
昝
得
徥
爬
忁
很
笍
籲
篧
衢
徟
徂
徭
衕
忂
徯
彸
銜
衞
彼
符
徫
徠
衛
徕
徚
衍
熧
徶
徜
坕
待
篗
徍
街
徺
徒
鴔
鴩
徨
鵆
衝
循
役
彽
徃
瓞
徧
徼
彽
筏
籂
術
術
笭
籤
笒
笩
篬
筨
徧
篒
徝
衠
徢
徖
衚
德
徳
笶
徛
劮
筗
篠
瓥
筱
彿
徘
律
籥
徆
筡
筌
彺
衎
箯
签
徰
行
鴴
鸻
簽
答
衙
衏
徑
徱
征
彶
篌
衡
徤
酂
径
復
彾
衑
籢
徻
徐
御
衘
籨
從
衔
筰
慫
怣
惥
徇
彵
彴
瓝
篯
瓟
爮
彻
篟
咎
徎
箚
徦
笮
徲
聳
衐
徣
衖
徔
徉
衜
従
幑
徽
黴
鰴
徵
徴
微
徾
微
媭
後
衟
徊
徹
徿
徬
往
彷
衒
斞
徏
徙
忀
徸
乇
昏
筍
箰
竾
筷
鵖
笏
笉
氒
籎
帋
剩
氐
頿
顖
笉
旣
鄎
笓
筚
笱
笣
印
卽
笹
篘
牛
牜
犦
筢
乕
犋
犅
看
犑
掰
筙
籍
箨
犈
牡
特
犢
犐
牿
篺
犞
牴
牪
牲
犇
牦
犏
牴
籀
我
牫
犙
犥
犏
牻
犆
篲
牸
犊
犗
牯
篲
箺
筹
犄
牞
牰
牬
生
箐
簀
牺
牾
牱
箦
拜
犡
牼
籒
觕
觕
犍
失
簮
牧
牷
犔
籡
搿
牝
牠
物
犓
筘
吿
箉
犌
箍
牣
簎
簼
犪
犠
犧
犕
箝
毛
犣
牭
籜
犤
牳
犜
牨
牥
犒
犉
犝
犃
牤
舓
篔
筼
洜
舕
垕
舑
鵠
鴰
鵅
鴭
舔
筥
舙
舐
阜
勂
劶
帥
蛗
刮
劄
頧
頟
頶
頢
筽
舔
師
簬
舚
郜
郈
雒
啟
敌
敋
惒
鹄
鸹
筥
簞
箿
甜
乱
峊
簨
筽
舏
笢
烏
辞
戶
勹
肩
扃
扁
勲
扊
鳸
扄
所
殷
笤
兜
戾
籃
箃
笋
戻
篋
箧
帍
籄
扉
肁
篚
箒
頺
筐
籊
箼
筺
笥
籃
戹
扅
雇
敫
憅
篤
笸
启
扈
戺
扇
箳
筪
房
扆
戽
簈
扂
升
箭
簸
簊
簛
衅
鷑
衉
衆
衇
簕
箬
簧
剰
箕
衃
篏
衄
欰
籆
衆
憇
衂
衈
卹
篝
衊
筁
屲
曁
赞
贊
覒
臬
槩
臯
熈
毜
焈
毩
毯
墍
鶂
鶞
鷉
鵚
毨
兟
毝
毳
鬼
毪
毧
毬
臭
瞂
毶
瞂
臱
穨
毴
篅
頹
毢
臰
毽
郳
郋
歋
氌
氇
毺
毺
臮
息
憩
毥
毱
氁
氆
嵆
臫
笜
鼻
毸
諬
毡
辠
毰
氊
鼹
鼲
鼰
鼳
覛
覣
鼷
鼢
乐
簖
笯
箹
鼭
鼨
鼪
兜
魏
鼶
鼶
系
鼣
鼥
鼥
籪
瓜
笖
鼵
鼧
鼬
鼯
鼫
瓾
箓
鼮
篆
氏
憄
氐
鼩
鼱
筎
鼴
鼦
卬
鼸
鼺
鼤
甶
笝
睾
鷭
鶹
箘
囱
卑
簂
箇
囟
筃
囪
勫
笚
簚
簤
籮
篾
箩
箅
粵
粤
囱
鄱
飜
悤
恖
鹠
翻
篳
臼
興
盥
身
兒
輿
舆
帠
叟
歃
臾
舄
舁
龜
鼠
舅
與
敮
舃
忄
昝
艒
舥
簻
籬
舰
艀
籠
篣
盘
舩
筊
船
艄
艡
艢
舶
艊
鵃
艎
舨
艂
舽
艁
篷
艞
簅
笐
般
舤
舧
船
簉
籩
舮
艑
艘
艆
舣
舮
艑
艔
舵
舦
簅
舿
艜
笾
舯
螽
艛
舳
舡
艝
艝
舾
舸
篴
兏
籯
艋
艇
郍
艠
艬
籝
艪
艭
舲
艌
艙
箤
艅
舴
舱
簴
虒
箎
舭
籚
艓
虒
箎
鸼
咎
笘
篙
艥
篰
籇
籏
簱
箷
舠
艉
艦
艍
簇
艦
箊
笠
艨
舼
艗
艤
艏
艧
艖
箁
篭
艚
舢
篱
艐
笀
艃
舺
簑
簔
笇
艕
航
舫
艈
籧
艣
艫
舻
艟
舷
艩
戈
、
丶
廄
良
禸
宀
盙
廁
廮
尃
塱
鶣
鵏
鷛
鵳
顅
甂
乶
郙
鄘
贠
能
喸
廫
翩
騗
貟
旉
糜
夋
麾
魔
庺
黂
靡
劆
磨
鄺
廞
怷
摩
黀
麼
床
术
廂
麻
糜
塺
穈
黁
麽
犘
麾
魔
黂
靡
磨
庲
怸
摩
麿
麿
书
黀
麼
縻
氷
昶
盚
盋
皴
皳
鵕
剫
救
裘
厼
禓
禔
禵
禢
禍
禂
视
禈
廠
祖
禐
視
祶
祱
禅
禕
禷
社
祾
祛
禱
祮
禧
鷓
祍
祰
祩
祅
祈
凴
祋
祗
祑
禶
祗
祇
禆
禠
禠
禣
祓
祓
禟
祴
禛
禃
祙
禇
祜
祐
祌
祧
禙
神
应
顣
禰
祬
祆
祘
祳
祏
福
禲
禋
禫
祢
礽
祁
鄬
禄
祪
祃
祔
祣
祄
禬
禴
祫
祚
憑
慼
祂
祕
礿
祹
鹧
禊
祷
祎
祝
祦
祸
禪
祀
祦
蹙
祒
祲
祤
祠
禡
禥
禉
禚
祺
禖
祥
禌
禮
禯
礼
禨
祿
禒
禝
祼
祵
祻
禑
禤
禗
禩
禘
禎
祯
祊
祉
祽
禞
禳
禭
庄
庱
庤
庒
廅
凖
顧
鄽
廧
廒
廚
戊
丷
廭
庝
毿
毵
廇
戍
庅
螷
蠯
剼
戌
烕
庍
咸
威
廏
底
廐
牟
成
庐
允
廆
底
庳
廋
庾
戚
戔
広
厸
朗
盞
斚
厽
絫
垒
參
廊
叄
亝
叅
庯
庞
勆
剗
剆
肈
疒
郎
欴
啔
郒
庐
庬
废
廘
虦
虦
戎
戋
甫
盏
朮
麻
求
庋
廀
廟
廤
庨
刬
庫
犬
义
庆
晵
盋
貵
棨
犮
参
飆
飙
猋
軬
犮
肇
庵
奙
叁
為
欸
龙
慦
懯
廗
库
啓
彧
为
尤
尨
綮
畚
庸
康
州
廔
庣
划
庚
賡
赓
唐
庙
曵
冫
亠
凕
凋
凈
凎
庮
凇
凚
决
凁
凍
冰
冸
凌
凟
冼
庢
减
冹
冹
冶
凄
冻
庑
冲
冿
凞
冮
冽
廲
冴
冱
凓
凐
庁
凂
次
净
冯
准
冷
凔
飡
凃
冾
惑
凝
凑
凊
况
冺
臧
馮
凞
凘
廈
凒
凗
庌
凅
凙
凉
凜
凛
冖
廨
永
礻
廯
序
庭
邝
廕
衤
辶
之
廢
廃
讠
庂
资
盗
資
庥
楽
栥
府
粢
垐
膺
鷹
鹰
應
譍
噟
鶊
秶
腐
焤
庈
矣
庎
廥
庩
瓷
乲
座
餈
恣
鹒
咨
楶
廡
姿
弋
庀
応
麆
貣
鏖
熊
麃
熋
麋
麟
塵
垄
鳶
麇
麘
麝
麂
麔
麑
麔
麙
麤
螚
式
弌
麢
廎
弍
貳
弎
贰
麎
庼
砻
麜
麠
鄜
麛
隿
態
庇
忒
麀
麅
鸢
麌
麣
麚
庖
麌
聋
麏
龚
甙
麒
庉
麕
麈
袭
麍
麐
詟
麖
麞
麡
鴾
緳
庪
劺
廒
台
戓
枲
炱
鶶
刣
或
顑
戜
瓵
觱
觱
邰
鄌
啟
感
怠
乨
辝
户
肩
扃
盛
扁
扊
廳
鳸
扄
戾
廜
廰
戻
帍
扉
肁
廖
戹
扅
郕
雇
敷
启
扈
廦
戺
扇
房
扆
戽
扂
戒
弁
庴
廝
度
庶
鴘
席
廣
廑
懬
廣
懬
庻
慿
庠
庹
庰
庿
廉
焈
尨
戉
谒
谩
调
诨
诅
谖
谣
诇
讼
说
诐
讨
诀
谏
译
诮
谠
谈
诗
诖
诘
诱
诿
诰
诜
谢
诛
话
诟
诉
讥
设
讽
讬
诋
谀
诚
议
诶
谘
试
诒
谝
诫
计
谳
谊
诧
诸
谉
读
诂
发
诙
诳
勆
训
诽
谰
讧
评
讦
语
订
诃
诬
诼
谮
讶
谭
证
谵
谲
谄
诵
讯
诞
郞
诡
谞
诤
诌
谗
认
讷
谁
谯
诊
谶
谂
许
诠
谕
讫
论
讹
诈
诲
询
诣
谧
谐
谍
诔
诪
请
讳
识
误
谔
讱
诏
诹
讴
诓
谬
诩
词
讵
记
谟
谫
谱
谥
诺
谨
谋
谌
详
讲
谦
谎
讪
廱
讻
诎
谓
谡
课
讣
谛
谤
谪
谜
谚
访
谴
让
谇
谑
谆
谅
谙
该
廛
庘
庽
廙
慶
廌
鹿
龐
廓
爢
庡
劘
庛
廬
店
廍
廩
廪
十
覩
煮
煑
賔
斱
殾
寔
乽
都
翥
宴
巿
赍
賫
賷
寀
鶦
寪
櫜
櫜
献
宜
真
直
橐
蠹
孛
察
囊
南
蟗
索
疐
穴
窤
窩
窰
窅
穼
窡
窪
窏
窲
窭
窾
窐
竈
竇
竃
窵
鷏
鴪
竊
窸
窖
窌
窮
竆
窆
穾
窳
窂
竅
竁
窊
窗
窗
窗
窻
竄
戭
梥
窚
突
窓
窢
窴
窙
窦
竂
究
穷
帘
窜
窶
窕
空
顛
顮
颠
穻
窒
窍
竀
窉
窛
穿
穹
穵
窞
穸
窿
歕
窑
窱
窬
容
窄
窽
窇
窃
窀
窎
窫
窺
窥
窝
窷
窘
翸
窟
窯
穽
嚢
窋
窈
窹
窼
窠
窧
竉
窔
窣
窨
未
宋
鵓
守
勃
郣
教
鹁
支
麲
宻
檕
麬
麳
麨
墼
麮
鳷
麰
麱
轚
攰
蟿
頍
麪
礊
麵
麫
罊
麧
麴
麭
擊
撃
麩
寖
攳
翅
麯
麷
繫
繋
麶
灾
宵
宩
叜
鶎
亊
鶴
審
客
宷
宪
宎
宂
寙
宅
牢
宒
愙
宂
寫
博
栽
專
烖
鷒
宬
載
宊
寪
宠
载
蛓
剸
韯
酨
臷
甎
鄟
胾
截
惠
哉
翝
戴
裁
卄
艹
廾
輼
輰
輥
輵
朝
輣
寘
輖
轁
輞
輍
韓
輟
軽
輎
轔
輄
輘
轖
轅
輈
轓
輅
軤
軠
輴
轎
斬
軗
軓
軧
軼
軞
軶
軧
軱
軝
輗
戟
輱
輚
輔
軷
軷
輽
軣
寭
軾
軩
轗
軶
轆
轉
轟
輐
轄
軲
輨
轒
軑
轑
宯
軚
輢
軌
軮
輫
寁
軸
轜
輭
輀
轌
轌
輏
軯
軖
轣
輊
軒
輛
転
軻
輻
軛
軏
輌
輕
輓
輮
輡
軐
軟
倝
輹
軜
榦
軵
鶾
軫
軨
軡
螒
輪
輇
幹
輸
乾
亁
雗
翰
斡
軥
軳
軘
輷
轊
轊
轃
輳
輤
韩
軎
軹
軦
輯
軔
軺
轞
輙
輒
輑
軭
轇
轞
轏
輾
轥
轕
輁
轐
輶
轙
轛
軿
軋
乹
軕
輲
轢
軪
輺
轈
輜
輠
轘
轀
轠
轍
較
軙
軴
轋
輧
轤
輬
輆
丈
耂
者
宥
觌
寮
鶟
宏
斄
漦
犛
氂
耊
孷
寄
剺
嫠
考
釐
宄
孝
老
耇
协
協
考
耉
暫
覱
鏨
槧
叓
塹
衷
吏
事
寠
寝
宨
磛
慙
蹔
妻
宙
审
疌
士
宣
鑋
寡
宇
寳
宝
寚
鵼
賓
室
矗
寅
賨
宗
完
崈
宸
宁
惪
宕
嗭
富
翧
家
寶
寇
宼
寕
定
宆
寃
寏
字
鸋
鴧
宖
宐
宛
剚
麴
惌
卖
寉
寯
麥
宿
顁
宾
麥
宱
寑
它
耆
寧
寜
甯
寍
宓
寗
蜜
耄
密
寲
耋
尧
耈
害
実
寈
憲
害
古
胡
鶘
鹕
豁
宲
鴣
鶷
彮
毄
宮
克
割
官
額
额
宺
瓳
故
怘
鸪
宫
悹
嘏
辜
肀
宭
宦
宧
寥
愂
卉
卋
寞
賁
寬
贲
寛
宽
賽
寨
騫
鶱
塞
骞
弿
赛
蹇
搴
謇
寋
褰
寒
桒
枽
鼖
尭
宑
七
兝
尅
鵷
鴧
鵍
兛
兞
兙
兢
寷
勀
勊
剜
剋
兡
兣
鹓
翘
安
案
鶈
鴳
寎
頞
寐
寱
寢
寤
寣
郪
悳
鞌
曺
覾
専
叀
車
實
寓
寰
畞
恵
寊
寵
宍
寴
寂
宔
实
宰
大
乂
奛
瘟
橥
疸
瘍
癎
癇
痬
奲
疤
夿
痕
有
冇
痭
奟
瘑
癭
奝
鵗
殽
牵
毻
戫
瘒
疽
痌
瓻
郗
郁
郩
欷
瘵
瘿
痈
癯
龓
昚
尞
閷
眘
殺
弒
剎
瘹
痥
瘅
东
杀
閷
痳
疲
殺
夺
疛
弑
弒
疦
癩
瘷
剎
刹
瘌
瘶
癞
雑
敎
鸫
友
痧
瘙
奫
瘫
灰
疢
夵
痟
盔
瘠
瘘
痰
癆
鷯
悐
鹩
圶
痔
奎
鵟
痣
猖
猩
猸
癤
狚
猂
猑
猲
狠
獌
猽
猾
猧
狙
猨
狪
痸
狈
猺
猙
狦
狽
玃
狇
猹
癪
痵
犲
狓
獺
獭
痢
痜
猍
痿
猀
疼
狄
獙
獜
猟
獟
狤
猿
獓
狛
獔
獆
猘
猁
狢
狅
獯
狧
獢
奅
猦
狌
獅
猵
猏
獥
獋
狐
瘤
猈
獀
獡
猊
犷
狼
猼
狻
狁
狨
犾
狵
犹
疺
猵
猏
獷
狵
狘
狱
犻
狖
狩
瘇
獑
猪
狫
獱
猔
狞
獰
狜
猢
獖
獠
狶
猗
犰
犱
狹
狭
狆
狮
狒
独
狣
猅
狟
獳
獶
獿
獮
狉
狂
獂
犴
狋
獗
犽
獬
猻
狲
猛
犼
疫
狝
狃
峱
獝
猱
瘋
疯
狿
狿
獼
猕
猤
狰
犸
癁
猚
狑
獊
癥
癓
獪
狳
狯
猃
獫
猞
犵
猴
瘲
狏
狥
痻
犳
疷
奃
狴
狗
狍
猰
狾
獉
猜
獓
狷
玁
猳
狔
獁
犯
猎
獏
獦
猠
獴
獛
獈
猶
猐
玂
獚
猉
獲
猐
獾
獇
猫
癟
猣
瘣
猯
獕
瘜
瘪
疷
奃
狕
猭
疧
獵
猬
猓
狸
痺
狎
玀
獨
猡
獧
猥
瘦
瘐
癙
狡
獤
瘢
犺
獩
狺
猝
猇
獹
猇
猄
獄
獽
獞
獐
獍
犿
太
厷
厺
盇
痠
瘮
痡
瘆
疣
郄
雄
态
翃
痝
奿
夲
瘨
癲
痲
癫
奢
瘏
痚
痯
奔
爻
夶
肴
痏
爼
療
鷞
鸑
爽
希
痷
痍
疩
瘞
瘱
瘸
夯
痂
瘗
暂
布
錾
椠
在
堑
夰
夼
疿
瘻
痋
痱
刈
存
痫
痩
奄
栆
左
疘
奭
癨
癗
痞
癍
癧
痓
疬
瘂
癅
夳
奈
夽
癋
痦
夸
疞
疔
奇
疴
病
痘
疠
瘃
痖
疨
痙
瘭
奤
疜
症
九
夷
旭
旮
瘓
痪
癚
杂
癬
犭
鳩
鴺
疓
丸
厹
痛
奓
痑
卆
癊
癃
癮
瘾
痾
頄
癣
疗
疚
癈
痉
鸠
叴
疡
瘬
馗
訄
虓
虓
痽
奞
癄
奪
奮
鵊
疹
瘡
疾
痴
疥
癐
頰
痊
瘉
癒
疙
瘊
郟
夾
疭
痤
痄
疮
痗
疕
帶
慸
癡
疪
痀
疱
疶
车
辒
辊
辋
轰
辍
辚
辕
辀
辂
轷
瘈
轿
斩
瘛
轶
轹
辅
轼
辘
辖
轱
轪
轨
轴
轾
轩
轲
辆
辐
轭
软
轻
轸
辁
输
轮
辏
转
轵
辑
轫
轺
辄
辗
轧
辎
辙
较
辌
轳
右
夻
贺
賀
疻
架
鵸
鴐
毠
攲
剞
哿
乫
欹
驾
嗧
癉
癌
瘕
駕
妿
敧
袈
力
办
癜
犭
鴮
綔
瓠
耷
奁
脅
劦
姭
疖
刳
疟
瘺
瘳
套
痮
郀
痆
匏
加
癖
奩
奆
劜
勰
夹
瘄
瘼
痶
痨
瘔
癀
瘽
刾
疳
頬
颊
瘎
郏
癱
瘩
癢
痒
羍
瘥
瘚
癘
癑
疝
尢
乄
尳
鵪
尰
尴
尵
剦
尪
尯
尮
尬
尥
鹌
尷
尷
尲
癵
癴
兂
癰
奋
癦
痼
瘝
瘝
癏
痹
瘟
痐
瘰
癳
冭
疰
奯
疵
瘁
瘧
痁
瘯
瘀
瘖
瘴
癔
癕
痃
痎
奒
癛
癝
癠
中
丨
旧
衵
裮
褞
児
袒
褆
襇
襉
襴
裼
裩
褐
襊
褟
襮
裉
巾
帇
帽
幌
幱
幆
帊
幔
幜
幎
幍
帨
帉
帔
帓
幃
帩
幥
幬
裯
帕
幯
幡
帆
帙
幒
幮
帴
幓
帗
帗
褌
帾
幏
帵
幰
幩
央
裈
帎
袓
帞
幁
幊
褑
衻
帪
帄
幅
幖
幨
鄁
帷
帢
帿
幠
帐
幉
帱
幘
帻
帏
帜
幧
幝
幄
帳
幈
盅
幙
幪
幞
帺
帡
幭
冘
幗
帼
袇
幀
帧
幟
帲
帖
幢
幛
帹
衳
鄪
裕
裞
衯
襋
襟
襻
被
衬
袜
袂
襰
褘
鹇
隶
肾
贤
褬
裰
坚
衩
紧
竖
襒
襠
褛
裧
袢
裷
裆
褝
書
晝
袡
裬
袿
褹
襓
褂
袪
袺
襭
褤
畵
襩
畫
装
袙
襖
裇
襷
襎
袶
袼
衽
衫
袾
褈
袄
凣
裄
褷
袛
袟
褊
襸
襣
袛
衹
裨
裑
褫
褫
亅
蚎
蝹
蝐
蝞
蝍
蝪
蝭
蜴
蜫
蝎
蚆
蛝
蠍
蟃
蚏
螟
螖
蝸
蠳
蛶
蜩
蟡
览
蚬
蛧
蛆
蝯
蚦
蜉
褦
监
蛊
蝄
蛽
蠼
蠷
蜆
螇
蚒
鉴
蚣
螉
蚥
蛻
蜕
蚡
蝉
蚞
蜙
蚾
蜥
蚗
蝲
蝀
蝃
蛏
蟝
蛸
蟐
螳
蟷
蝼
蠑
蟧
蝋
蜷
蚺
蛙
蟯
蜐
蛣
蟢
蟛
蟂
蝗
蝌
蜊
蟋
蜏
蜲
蟠
蜂
蛒
蛛
蝩
蛞
蟜
蝺
蚚
蚸
虮
蟍
虴
蚳
蛾
蛈
蚝
螄
螐
蝙
蜧
蚅
螝
螑
螅
蚳
蛌
蚔
蜱
蟌
螕
螋
蜺
螔
螔
蜋
襂
蛑
蝛
螂
蜅
蛷
蚁
蛂
蟡
蛂
蚘
螗
蠀
蜮
蝙
蜧
蠊
蟅
蝷
蛖
螰
補
蝻
螲
蚑
蠘
蟪
褲
螹
蝫
蛯
蜨
蠙
螾
蝖
蝊
蜿
蛇
螧
蛲
螛
蛄
蝴
蟦
蛼
奨
蛕
蟟
袚
蝰
袚
蛦
螏
蛺
螮
裤
蛠
蛱
蚛
蟲
蠱
蛳
蝂
螻
螀
蚰
蟰
蜵
虹
丬
蛨
蠕
蝢
蝡
醤
虶
蚲
蚽
蚟
螈
蛭
虷
蜽
蟵
蛎
蚖
蜄
虰
蛚
蚵
蛃
螎
蝠
蚅
蚈
蠣
蟩
蚜
蛵
螵
蟫
蝒
虾
蟓
蝜
蠏
蟾
虸
蜢
蝚
蜭
蛹
蛥
蜓
蜒
蜒
蚓
蛫
蝑
蚂
蝮
蚋
蚹
蜼
蟭
蛉
蚙
蚮
螥
蛿
蜘
螩
蚧
蚯
蜦
蜍
蝓
蛤
虼
蜁
蟘
蚱
蛜
蟱
蠄
虵
虳
蚐
蚐
蜪
蚍
蝔
蜌
蚼
蚫
蝶
蜔
蚌
蝽
螓
蜯
蜻
螦
蝳
蚨
蜎
蝇
蜈
蜗
蟬
蝦
蟤
蜈
蠅
门
蝘
褊
蠾
蠮
虭
蛁
蜛
蠗
蟉
蟳
蛡
蚇
蚭
螞
蟶
蚷
裓
蜡
蟆
褯
蝾
蠓
蟖
螠
蝤
蟻
蜣
蟒
蠎
蠎
蟎
蟥
蝧
蟏
螼
蠨
蚶
螨
蜞
蜹
蠖
蠂
蛘
蝆
蜣
蠸
蛢
蟮
螆
蛐
螬
蠴
蠇
蠛
螊
虬
蝬
螘
蜬
蠵
袯
蟣
蚴
虯
蝝
蠟
蝟
蜾
蟔
蜠
蟈
蠋
蠌
蝿
蠉
蝈
蝹
蛔
蜖
螺
蠝
虲
螁
蠬
螃
螪
蛟
蛀
蟽
蚢
蚄
蟙
蜟
蟀
蚪
蚊
蛴
蜶
蟕
蠦
蛅
蠩
蜳
蝏
蠔
蠰
蝣
蟑
螭
虻
蚿
蟺
蠐
袕
褣
衼
襶
褚
褄
袉
史
盎
鴦
袸
裺
袏
襫
裿
袴
裌
鸯
串
衶
暢
衴
覑
朄
肃
粛
牉
牘
版
牐
牖
牑
牌
牕
牔
牋
牗
牖
牑
褴
牍
川
帅
順
顺
褸
师
片
片
裶
弗
畅
临
牏
患
褙
畃
牎
牒
鹔
裥
牊
归
帰
襕
婁
袖
丳
裫
牓
丄
袹
襦
袻
贵
貴
衧
襧
賮
盡
壮
虫
状
衦
裲
劃
襹
兠
裖
将
袔
北
邶
袥
裋
褔
非
剕
兆
頫
鴵
覜
妆
褥
褾
褼
卝
鬥
刂
冖
襐
鬬
费
費
覑
襜
桨
浆
牉
牘
衱
版
牐
牖
牑
牌
牕
鬩
鬮
牔
襁
牋
牗
袳
牖
牑
牍
奖
刜
酱
鬫
鬪
艴
鬫
鬮
襏
牏
牎
牒
襁
鬭
牊
鬨
牓
鬦
鬧
複
衲
袝
袮
襍
鼗
袵
袗
袊
袱
襳
衿
衸
襘
裣
褕
襝
袷
袘
褓
襥
忠
背
衪
袐
兠
袀
軰
丠
袀
裪
袧
袍
袣
褋
冀
聿
褉
衋
襀
裱
衭
袆
裐
裎
裎
襙
襌
襈
冂
间
阊
阘
褗
阌
阒
阅
阐
闲
闭
阑
阔
闺
阖
初
阁
阍
袑
阋
阆
阈
襤
阗
襵
阇
裾
闳
阉
裙
頥
闽
阓
闩
褶
闰
襑
闬
韭
闫
襤
阎
阚
阕
闯
阄
闪
阀
闷
闱
问
闾
闻
阙
闿
阃
闸
阛
闶
闵
闼
闹
訚
阏
阂
襽
襺
襆
襼
襨
襔
褀
褡
褨
褠
褿
襪
襛
儿
乚
沊
鴆
褍
瓭
邥
鸩
袦
胤
鷜
氀
袎
甊
褖
數
袽
由
胄
冑
裸
裍
裡
裀
申
襡
襗
甴
襬
頔
畁
甹
邮
褞
曳
襅
电
肅
鷫
歗
补
褪
褅
襱
棐
襯
靟
猆
裗
褳
輩
奜
辈
裢
蜚
褃
裃
餥
悲
裭
裭
袩
翡
襚
褵
婓
袨
襢
裴
斐
一
百
厭
櫫
厬
戩
戬
厩
亘
皕
碧
厚
鄑
霷
霌
霾
霢
霡
霥
覼
靎
厠
慐
雰
雬
霜
霖
霦
耐
霪
霘
霂
霈
霃
靋
霐
霗
霟
霮
霈
霔
霑
霶
霄
壐
鷊
鸍
鳾
鴯
雾
雽
耏
彨
霤
鬸
霺
雮
霓
戞
丽
鬴
霭
霋
靌
耎
勵
雵
而
融
蠒
雿
霏
亙
顬
需
颥
璽
靂
雳
霊
雲
雩
震
雼
雫
霱
雭
霚
霧
霿
雺
霆
邴
郦
霳
霛
霯
页
贡
鬺
霍
靍
靏
靃
零
厕
霉
恧
憂
雹
鹂
鹝
鸸
霣
霵
露
靈
龗
霝
孁
霞
霨
雪
霫
翮
霹
霰
靀
霸
覇
覊
覉
霙
雸
霻
頁
貢
鬷
靊
耍
雷
霬
電
靁
靇
霩
雱
雯
霁
霅
靄
雴
霠
霎
霽
晋
垩
夒
顨
恶
西
酉
于
盂
厢
暦
厯
歴
鷅
五
邘
汞
亟
鄾
唘
不
灭
爾
厰
甭
盃
覔
覝
鴀
彯
飄
飘
瓢
平
奀
勡
剽
丕
願
顠
厵
祘
嫑
歪
鄢
愿
否
翲
孬
王
圧
琩
瑥
瑁
瑆
瑂
瑒
瑅
瓓
琨
琶
珢
璟
琝
再
玥
璦
瑷
珊
琛
瓔
琱
现
瑫
琿
珲
珇
瑗
琈
瑤
瑶
璎
琤
珊
珼
現
玬
琻
兲
玐
玜
珶
玢
璔
琹
琳
璴
玻
玦
瓎
瑋
琜
瑓
琺
瑵
璖
琑
瑺
瑣
琐
璫
璘
琰
珖
珰
珱
厓
珃
珪
珐
瓙
璹
璈
瓄
珀
瑔
鵄
鳿
鸖
瑝
珦
珘
璳
琍
琇
璠
琒
珞
臵
珗
瓈
珋
瑠
珠
瑖
瑀
瓆
玑
珮
珟
珩
瑽
琘
珴
珄
瑡
瑦
璬
瓚
瑰
瓒
琕
璁
璵
玉
压
丟
玊
琅
珬
瑊
珹
臹
玧
琖
瑯
球
珑
班
瑭
珆
琙
璷
瑱
瑏
瑢
瑼
璤
琽
珯
璸
璌
琮
瑄
琔
琓
琬
瑸
瑚
琯
珛
璙
琋
臶
珔
琦
玏
珈
珕
玔
璝
珧
璶
琲
到
珒
珅
璛
玒
瓀
頊
瓇
瑌
顼
瑨
玗
环
玶
玨
璱
珏
琊
瓑
瑨
臸
玕
璢
珸
玩
玎
珂
珷
琢
玡
珁
甄
瑮
瓊
瑍
珎
璚
瑈
珽
郅
鄄
瓍
琭
玖
歅
璒
琤
玚
玛
珡
琟
珍
玲
琴
玪
玳
瑲
琀
玝
珤
致
玫
玠
璯
瑜
珨
琁
玱
璑
珻
珣
瑟
珌
玓
琵
玭
瑎
玽
玸
玴
玤
瑃
臻
瑧
琫
瑇
玞
瓉
玮
璈
琄
珵
珵
璐
瑉
噩
璪
瑕
珉
珿
玿
璼
珥
瑘
琚
厫
珺
璆
璕
璻
珝
璼
瑪
玘
弄
琠
瑐
珙
璂
璞
瓂
琷
璓
璊
璜
瑛
瑾
玵
琪
璍
瑹
瓁
珜
瑳
琷
瓘
璥
玌
瑞
瓗
璀
琌
瓅
璣
璏
琭
瑑
璅
瑙
理
瑻
珚
玾
環
琾
瑥
瓃
琸
璭
瓛
瓏
璿
珓
璨
琡
琉
珫
璉
玟
斑
珳
琏
玼
琂
璡
琗
琥
璩
瓐
琥
玷
琼
瓖
玙
璇
璋
璲
琣
琎
璄
璃
玹
璮
瓌
璾
玣
瓋
厂
丆
乛
厡
原
鳫
曆
厤
歷
磿
鴉
厜
巩
邪
雅
餮
厇
厎
鸦
厎
靉
叆
至
魂
晉
厌
黡
魇
厣
厐
动
餍
靥
霴
靅
鄏
霒
霼
霕
厖
靆
叇
干
厧
栞
烎
鳱
鷣
麉
聼
刊
頇
顸
幵
郉
邗
敢
攼
亐
厙
天
奣
蠺
檿
沗
壓
鴌
甦
魘
蚕
蝅
靨
郠
饏
饜
忝
憨
懕
擪
厍
吞
功
历
无
嬮
黶
厴
丌
丅
帀
兩
雨
亞
亜
丣
覀
畱
工
厞
丏
更
二
麗
婯
項
丽
项
示
堊
鵡
鵛
鵶
鴊
云
厔
厈
勁
亓
蝁
剄
刯
三
頸
頙
琧
亖
辰
厅
亍
邳
次
政
惡
悪
忈
忢
鹉
靕
吾
厉
厨
元
厦
坖
黿
鼋
厊
瓨
巧
亏
巰
虣
虣
丁
殟
殂
殍
銎
銐
瓰
殚
殐
烈
烮
型
殪
殰
殦
鴷
殈
瓪
瓩
歼
殊
殀
歽
殁
殙
殅
瓱
殠
歹
殘
残
殏
殆
瓧
殖
殱
殯
殥
殡
殑
殗
殎
殢
劽
邛
殃
殔
殨
蛩
列
肂
瓸
頂
顶
殛
殌
甅
殭
歿
殛
邒
邷
鮤
殤
殄
殲
飱
殓
殮
殇
死
恐
殉
歾
殜
瓲
殝
巬
可
殞
殒
殫
跫
聓
鞏
殣
姴
瓼
殬
殟
殩
殧
裂
殕
仄
乀
乁
豱
豝
豤
丙
觋
豠
資
覡
豯
橜
栥
燹
贗
粢
豷
贋
赝
鷢
鵐
鴈
豛
豵
甤
豟
豧
豟
豬
豶
豮
厒
攻
豨
蟸
蟨
劂
剢
豲
豣
厱
豩
豜
瓷
巫
两
雁
餈
恣
憠
豞
豘
鹀
咨
豭
蹷
厏
姿
豱
豴
豣
豥
貮
鸝
彲
弐
酈
武
厫
石
碭
碍
碮
磵
礀
碣
硍
礘
硼
磆
碢
碉
砚
鞷
鬲
砠
硐
磜
磘
砽
碀
碙
硯
磎
砃
碒
硲
砏
磳
碴
硹
碄
礎
破
砞
砄
砵
砅
泵
磉
磲
硝
礃
礑
磷
礯
磱
砂
硄
碐
硅
磽
砝
磕
硳
硈
礂
磝
砶
礇
磻
硌
硞
磂
砭
硃
碫
硾
碷
礄
硚
厛
礩
斫
矶
砓
矾
碸
砜
磫
矺
碈
砥
硪
碥
磤
礉
砨
礸
磈
砾
砥
碑
硇
磇
礖
磶
磃
磃
矿
戨
硠
磗
礳
砯
磩
碱
碊
砿
磣
碜
磄
碥
砨
礦
硥
磌
硿
碦
磚
硣
硡
硓
礗
碂
碹
碇
碗
砣
硗
磍
硨
磢
硽
碕
砕
硤
砗
劯
硖
砩
矵
硉
砷
矼
礝
碩
碽
頢
礭
碝
硕
礵
礌
硒
砰
砡
硦
礰
矸
硏
硬
砺
矴
砢
碔
砳
磊
硺
砈
研
礪
硎
矹
磭
砑
硜
砙
磦
磹
礓
乭
确
确
矷
砐
矽
硧
硟
硟
郚
酃
碌
硊
歌
砍
硁
磴
磔
哥
碀
砀
码
確
碓
磼
礁
砱
砛
敔
砎
砼
碖
硢
硂
硷
礆
硆
矻
砤
砟
厑
礙
砒
砲
砌
碟
砘
碶
碃
磧
碛
碡
砖
砆
磝
磒
磾
礹
碬
礥
碿
礮
礟
礛
砸
磖
磟
碼
礔
碾
豆
碏
礍
碘
礤
礞
硔
礏
礴
礒
礚
礡
砹
磺
碤
碪
硴
礢
磋
礶
礷
硑
碰
磰
磁
礠
磡
礣
磸
磏
硭
磞
碳
碳
硸
碋
磑
磮
磪
硶
硙
础
礫
磯
碌
碯
畐
硱
碅
礋
碨
硘
磥
礧
砪
碲
碵
礲
磅
磙
礅
砫
砊
磓
硫
硑
砇
硛
砋
碎
砧
碻
碠
砬
礈
碚
磀
硋
磠
硵
万
戸
豕
豖
励
劢
卭
虿
鄠
攷
巭
趸
厄
开
厝
亚
严
厮
烎
鳽
形
毭
豍
豉
豌
厪
刑
剅
豇
頭
邢
郖
雃
揅
豏
厥
厲
兀
朁
蠶
両
襾
炁
鸘
夏
戛
兘
奡
虺
刓
頑
頋
顽
顾
尫
鬵
豗
兓
邧
卼
鹴
尶
尶
画
匚
匸
脣
牙
辱
旡
蜃
頋
顾
瓦
互
敐
覅
唇
丂
坙
巠
醖
醒
覃
醍
醌
酹
酮
酻
贾
賈
靦
釂
酚
栗
醂
酎
醊
粟
醈
厘
垔
醘
醻
鶝
酥
酪
醺
酷
酰
覂
酘
覆
酕
覈
醜
醙
酿
酸
醾
醿
釄
醎
醆
醦
酺
酬
醣
疈
酦
醡
酧
醏
酵
酡
酤
醐
酭
酞
醃
酔
醢
勔
酖
蠠
醠
靧
副
醓
醹
酾
醽
酑
酐
畺
票
酝
釃
酛
酊
酠
酽
醥
醰
靐
酩
醁
醑
醱
醗
醀
醮
覄
酴
酫
醶
酢
酶
酯
酏
酌
酌
醄
靤
酜
靣
酲
酲
釅
面
醪
醧
配
醋
醭
覇
覊
覉
醼
酣
醛
醝
醩
醴
醲
酗
要
酳
醁
醳
醞
醸
醚
醯
酼
酙
醉
醵
酟
醕
醇
釀
醷
醅
醨
歃
敮
下
龎
颪
焉
正
兏
乤
忑
厗
丐
弓
兔
免
象
色
弝
觛
弸
夐
敻
觯
觖
觫
烉
觘
觥
角
墮
堕
觟
鷸
鵤
觡
觝
氄
觝
觚
觗
觬
觩
觰
奐
奂
觭
勇
觔
勈
触
劀
觨
瓕
觼
觙
觮
觤
负
觴
觹
觞
隳
恿
鹬
角
觶
解
觲
觵
觾
觧
嶞
負
彏
觿
觽
觻
觓
觮
觸
斛
觪
小
弹
詹
子
孾
孟
孭
孙
鶔
孫
孤
孡
孮
孻
刴
孺
孲
孖
孴
孨
孜
孞
孢
孔
孩
氶
氹
盝
焏
剥
亟
丞
脀
烝
卺
巹
尔
鯧
鰛
鰣
鯹
鯽
鱪
鰑
鯷
鯣
鯤
鰨
鰻
弰
鱫
鱡
鰂
鯛
鯶
鰀
鮦
鰶
鰩
覙
鮾
鮷
鮵
魵
鱛
鮍
鯻
粥
鯠
鯟
鰊
鯋
鰠
鮹
鱨
鱗
魦
鯪
鯥
鮭
鱙
魼
鰪
鮚
鱚
鯐
鮊
鰁
鷠
鰉
鯯
穌
鯚
鰍
鯏
鯘
鱕
魬
鮥
鮗
鯌
鰡
鱵
鮢
鱎
鮜
鯦
魠
鮣
鮏
魹
鰤
鰞
魲
鯿
鯀
鱮
鯓
鯢
鯦
鮻
鰰
鯳
鯳
鰔
鯎
鰄
鰺
鯆
鯄
鮁
鯵
魷
鱅
鱇
鮐
鱤
魲
鯿
鰫
鮇
鱄
鱝
鯺
鮱
鮳
鯮
鰘
鰚
鯇
鮀
鰭
鮕
鰗
鱝
鮟
鮪
鯑
鰖
鮬
鮧
魫
魸
鮄
魸
鮡
鯡
魝
鮋
鱐
魟
鱬
鱏
鮞
鱈
鱈
鱩
鯂
鮃
鰰
魾
玺
鱷
魳
鯁
鱺
鯃
魭
魺
鮖
鰏
鱱
鱖
魱
鰾
鱏
鱌
鮸
鯭
鱻
鱊
鰇
魥
鯴
鯒
魣
鯅
鰎
鯅
鰯
鮠
鱍
魜
魞
鰒
魶
鮴
鮒
魿
鮲
鯰
鮘
鰷
魪
鱠
鯩
鮽
鯾
鮯
鯸
魤
鮓
愻
鮨
鮅
魩
魡
魮
鮈
鮑
鰈
魨
鰆
鯖
鰿
鱢
鱓
鰐
鰕
鱦
鰋
鰹
魛
鮉
鯫
鮿
鮶
鰼
鯞
鮼
鱘
鮙
鰢
鰸
鮔
魢
鰌
鱔
鰳
鰙
鱑
魽
鯕
鱯
鱶
鮮
鱃
鱹
鮩
鱔
鰦
鰽
鱒
鱴
鱧
鰜
鯼
鱜
鱳
鱂
鱲
鯔
鯉
弾
鯝
魻
鱰
鰅
鰥
鰥
鱞
鰃
鮂
鰮
鰓
鮰
鰟
鮫
魧
魴
鯍
鰱
魰
鮛
鱥
鱁
鱋
鰬
鱋
鯱
鱸
鯱
鮎
鰝
鯙
鯨
鯲
鱆
鯜
鮌
鱣
鱭
丑
厾
頲
颋
疆
矞
矡
柔
及
矟
務
虱
蟊
骘
矝
矜
敄
務
弤
乃
夃
騭
矠
弤
弧
臽
夕
弘
甬
鵵
犟
夝
夤
勥
強
劖
矛
多
邜
酁
予
飧
舛
名
夘
夗
彍
婱
圅
麁
外
斘
謽
癶
卂
塦
鳵
聼
蝨
敢
又
暓
瞀
鍪
楘
煞
堥
廹
鶩
廷
延
延
戣
蝥
建
廸
廼
鄈
骛
饏
愗
憨
鹜
騖
鞪
嵍
婺
廵
廻
廽
引
弔
阝
阳
陧
陽
隄
限
隰
阴
阻
隱
際
隠
盄
陂
陳
敶
阥
阦
隙
陗
隚
隣
隙
隲
陵
陸
隢
阹
隯
隞
陡
隝
隍
隩
阪
隆
降
阡
陎
隀
陲
阺
隖
阸
阩
陹
陞
隗
阺
陴
隉
隉
陖
阭
隇
陠
陇
阸
陼
院
陀
隫
陣
陏
陈
隋
隓
陭
陓
陝
陜
阵
阞
陕
隤
陫
陌
隭
陾
陑
陋
阫
隬
际
阮
陙
阿
陃
陚
隔
阨
阢
陘
陻
阷
陷
陊
阠
陥
陒
陉
隥
隐
队
附
陮
陰
阾
阶
陯
除
险
隃
險
険
阣
陁
阼
隂
阤
陱
陶
阰
階
陛
陦
隞
陆
隕
陨
隁
陬
陿
隦
隘
隊
阱
隒
隑
隟
隅
隈
彇
隴
隡
阬
防
阧
隨
随
隡
陟
阯
阽
隌
隵
障
隧
陪
陔
隮
厃
弖
驲
鲳
鳁
鲥
鲫
鳀
弼
鲲
鳎
鲃
鳗
鲷
驵
鲖
鲗
鳐
彚
弙
檃
鲏
疎
驭
骚
鳋
驿
彌
鲿
鳞
彞
彛
鲮
鲑
鲒
鲌
鳈
鳇
稣
鳅
鲦
骆
骝
鳤
骄
鲘
鲧
骢
鲵
骏
鲅
骖
鲹
鱿
鳙
骀
鲐
鳡
驴
骗
鳊
骟
鲓
骔
鲩
驼
鳍
骁
鲼
驮
鲔
驳
骑
劲
鲣
驶
驯
骕
蜑
鳉
鲱
刭
骥
鲉
骋
彐
骊
鲡
鲕
颈
鳕
骦
录
鲆
鲠
夛
鲄
鲾
鳜
骠
鳔
鲺
鲬
弱
郔
鶸
骉
骙
驺
鳆
驸
鲋
骓
鲶
矦
鲙
验
骅
鲊
急
驰
驹
鲍
鲽
鲀
鲭
彁
鳄
骤
鳚
鱽
鲰
驱
鲪
鳛
骎
鲟
骣
危
鱾
鳓
骐
鲯
鳠
鲜
骈
鳝
鳟
鳢
鳒
弳
鲻
驷
骒
鲤
鲴
骃
鳏
鳏
彊
鳂
弻
鳃
骡
鳑
鲛
驻
鲂
疏
巯
鲚
鲢
鲇
鲸
骧
鲈
骍
骇
鳣
了
亇
弜
弥
夡
廴
孑
孒
預
预
鬻
豫
孓
弞
弪
夠
承
叾
卶
翗
郺
欠
久
飞
疍
胥
鐆
弣
灸
粂
墜
坠
墬
癹
飛
矤
勨
蛋
癷
癸
発
凳
登
發
飝
弛
櫽
张
弽
丮
桀
蟹
弲
强
甔
毚
彈
娿
盈
盁
鼐
争
朶
皱
尕
熃
埅
夃
弨
弭
呄
奦
弬
弫
刍
戼
張
孕
邹
雏
急
彄
弡
彅
覴
凳
戤
勐
彉
鄧
乙
盌
眢
弢
鴛
勉
頠
怨
鸳
駌
妴
饣
馄
馒
馉
馁
馇
馌
饷
饭
饹
饪
馏
饫
饥
饦
饿
馊
馎
馂
饯
饴
饽
馕
饶
馆
蜑
蚀
馈
饤
饾
馅
郔
饮
饧
馋
饬
饰
馀
饩
饸
饱
饨
馔
饵
马
饲
馍
馓
馑
馐
饼
饳
馃
饺
饻
乪
魚
魯
螴
亀
彋
鱼
鲁
彃
龟
卍
燄
鵮
欿
鹐
龜
买
疋
弴
弶
夞
弦
人
倡
复
朇
劊
但
偒
偍
們
僴
僩
鄶
倱
偈
傝
儤
佷
儑
僈
內
内
仴
俷
倗
傦
僾
僢
儩
側
倸
隺
偁
倜
鸙
龢
僞
伔
伔
伣
伹
龥
俱
侗
俘
龣
龡
肉
傺
侧
傜
憊
龤
佣
倶
俔
俀
傒
龣
仈
佾
伀
傟
倊
俤
俗
侻
份
僧
休
賲
鎥
倯
僸
儊
叙
煲
烋
堡
佊
鵂
付
体
偉
雓
敘
倈
怹
恷
鸺
糴
俫
倲
敍
斜
仅
汆
氽
傩
伙
尓
尒
仦
俏
償
儻
偿
僘
倘
傥
儅
籴
侎
僯
偻
倓
儝
僗
仯
鷦
鷡
偗
伞
劁
顦
侊
甒
鄦
您
鹪
伴
儯
倦
仕
隹
玍
赁
賃
観
倰
集
栠
侍
雙
隻
焦
佳
僥
鶴
鵀
凭
犨
犫
佉
雠
隼
勧
雋
剉
顀
隽
儔
歓
雔
雧
雥
雦
恁
俧
鹤
售
佶
舎
儓
僖
傲
倖
儥
讐
讎
入
伯
鳰
偟
侐
侬
侜
傻
偢
俬
俐
僁
俰
倭
僠
仮
俢
佭
佫
俻
佟
僽
任
俈
働
侁
乑
仫
仟
侏
偅
倕
佸
偱
偛
仸
僑
侨
偊
儨
俽
伒
仉
佩
伇
偑
偺
偫
傱
倃
仛
低
件
俄
佚
偏
僱
儌
傓
儹
傀
係
低
仰
俾
傯
傁
倪
偺
傂
倃
傂
伐
仏
亽
饂
飠
餳
餛
餲
倉
食
俍
饅
餶
饀
傅
餫
飷
餇
餒
俊
餩
餷
餗
餟
饓
饄
餤
垡
饐
饒
饁
饎
鴒
餭
餉
餧
飯
餎
傶
飪
飹
餾
餂
飫
飢
餰
飥
侂
侔
餓
饡
餽
餿
俴
餺
餕
饝
傪
餞
餔
餹
飴
俌
餑
饢
俅
餬
館
饙
伏
仪
偽
餴
餚
餙
餣
伪
优
傭
饋
蝕
餆
刽
刢
傏
韱
領
餪
领
飦
飣
佽
餖
瓴
今
貪
餡
令
侌
邻
郐
飲
贪
念
含
饞
盦
衾
酓
飤
餁
飻
俯
俟
飭
飾
餘
餄
餼
餱
飵
餩
代
怤
儦
飶
侙
飽
飩
鸰
佁
饌
偏
僱
餌
傓
翎
飼
餦
饇
饃
饊
饛
儣
餻
饚
餀
饉
饈
餅
饍
餝
飿
姇
储
饑
餯
餜
饠
餵
饂
饆
餃
飳
餏
餠
饖
饟
餸
餢
饘
飰
什
午
仐
伂
傎
侼
值
儾
値
倥
傛
僒
佅
俕
伎
鶽
侘
傳
儎
僡
傤
僌
仗
偖
侾
佬
侤
使
倳
倢
伫
儐
倧
啎
佇
傢
俒
倇
傧
佗
儜
侥
估
做
倌
厁
僨
僿
偾
缶
侒
俥
矢
攵
侑
鋚
僚
傄
矰
伖
焂
瀪
鴙
矪
矮
俇
矨
矯
矫
倴
俙
倄
傸
佈
侟
俺
佐
倷
倚
短
侉
仇
侇
伜
矧
偧
鰵
鳘
雉
俠
矬
悠
慜
僀
伡
知
佑
跾
仂
伽
矩
侠
矱
繁
矲
个
仲
佒
脩
條
絛
鯈
儵
倐
修
鞗
倏
翛
偹
们
介
敒
佛
僂
睂
僓
佻
儘
俳
候
脩
條
絛
鯈
儵
修
鞗
攸
倏
翛
偝
侓
伷
伸
俜
丘
仝
仜
亼
佰
儒
俪
優
偄
侕
俞
愈
侖
兪
兵
余
伍
悆
峹
嵞
畬
伓
儞
伻
佥
伾
俖
全
仼
侢
釒
倒
乒
傆
儮
乓
侄
仠
舍
倆
便
俹
剑
価
仁
佘
会
伝
仨
佱
佽
儷
僫
俉
佞
侲
畲
仃
气
邱
例
侴
歙
欫
何
俩
敛
钅
倵
合
佦
龠
命
僉
侸
偪
卸
屔
伌
俨
侀
岳
僭
伢
傉
俓
仾
佤
會
價
傈
僳
僄
偭
僵
僲
僊
偠
傿
佂
乞
亿
亇
氜
氲
氱
像
俛
偩
觎
覦
儋
氛
仔
氭
你
氣
氮
鳹
僪
伋
氡
毹
仍
俑
侈
伃
佲
氪
氨
気
侹
鄇
健
氕
伄
氘
氚
氟
刉
刏
氠
氥
侯
氬
氞
氩
佹
氫
氖
鄃
氯
歈
欦
氢
氝
偦
雂
僜
忥
傑
氰
儳
氧
氙
氯
氤
氳
氦
从
仌
傷
傕
俎
肏
伱
燞
坐
倠
夎
僬
儁
僋
伶
仱
傖
仵
倁
伤
价
劍
剣
丛
儈
倫
顩
俆
佺
侩
俭
偷
儉
倹
佮
倽
偸
仡
歛
众
侳
傘
斂
伦
怂
作
劎
劒
剱
耸
劔
剱
伧
儛
佡
侮
化
仑
伈
侚
锠
镅
钽
锝
锡
锟
钯
银
镘
钥
锊
钢
锾
铜
锄
货
贷
钡
铡
钼
貨
貸
锑
锐
他
柋
铍
钵
铼
钗
铴
铎
钬
销
镗
锁
镋
镂
锬
钞
锩
铛
垈
钍
佖
铂
锦
锽
锹
锈
钣
锋
铬
铥
锆
铣
伆
钐
铆
镏
钎
铢
锻
锺
锤
锧
铦
锸
锨
钒
铅
牮
锇
铁
镍
铄
锼
仢
锒
镈
铖
钱
铺
钹
镛
伨
镳
铽
镰
镀
钺
华
针
镇
镲
镩
镕
锗
铑
铐
锭
镓
镔
铊
铙
钴
铵
铕
镣
铩
钛
锛
钸
锜
儗
偬
铗
钟
帒
铿
钔
钏
锵
铫
钊
镄
锏
锎
镧
铀
镭
傾
钚
钰
铘
铚
伨
铻
钉
钶
倾
镉
钘
铔
铏
镢
镖
镡
钲
钙
钇
铯
锰
钮
钑
铭
铤
键
锕
钌
钦
镫
镵
镪
铮
钖
镥
伥
钠
锥
镌
铃
钤
敜
铨
铪
锉
铧
镎
仳
偕
铋
锪
钓
钩
钧
锴
铇
钝
钨
锲
铸
锖
佝
铞
锃
锅
铝
锷
佨
铒
镊
锯
锓
镠
铌
钷
钜
锔
伳
错
镆
铹
镨
镤
镒
偞
镁
锘
锳
钳
镬
镃
锚
铓
岱
伅
钆
镚
铠
钕
铷
镴
锱
钿
锞
锂
黛
锢
铟
钾
镯
锣
镮
锶
镙
钋
镑
镝
铰
镦
钪
钫
袋
铱
锍
铳
钭
链
铈
钻
镐
镶
锿
镞
镟
铲
锌
镱
锫
镜
铉
年
儬
鵇
偰
仹
偆
傣
俦
俸
倩
債
傃
债
俵
传
伕
僣
儧
伟
傲
智
俋
傊
盒
伿
保
樖
鴿
鶬
鵨
侱
侶
侃
戧
舖
舗
龛
舘
創
佀
頜
頷
颔
颌
侱
俣
盫
舒
郃
欱
鸽
拿
搻
侣
僺
僤
儼
偘
偔
鼅
假
偮
聟
翕
翖
弇
僎
俁
畣
僶
龕
敆
促
乍
偃
榘
仞
佋
儖
佴
倻
倨
伊
伛
仭
侰
仺
侵
偓
僇
伺
儖
倀
僝
飮
伬
侭
怎
伲
傌
僻
傴
佢
侷
偋
仓
倔
借
倎
儰
偂
供
僕
僛
偤
橆
無
儀
僐
備
儰
偌
僙
偀
僅
傼
佄
倛
偡
舞
儺
僃
僷
佯
傞
儆
傇
併
傋
僐
傮
僔
儚
僼
儂
傔
仙
仚
屳
罎
傰
罁
儍
缺
缽
缹
罉
缿
戗
罀
创
缸
偳
缻
罈
缼
儶
催
侺
鸧
缷
罐
缾
罇
罆
缾
諐
罅
罏
伮
僟
似
侞
儠
佃
伵
倮
俚
毎
個
侽
偶
儸
儇
偎
偲
佪
傫
儽
儡
每
韽
仆
仒
倬
偙
偵
侦
儱
傍
佼
儭
儏
俶
僦
住
偐
伉
仿
依
緐
俼
僆
倂
伩
傚
侪
俲
勄
企
儙
仩
佌
信
佧
倅
敏
偨
俿
儢
俿
佔
儲
傐
倞
傠
停
儫
儴
偯
倣
偼
位
偣
僮
傽
億
倍
傡
傹
倿
禽
伭
侅
侫
傗
儃
儕
毓
心
旬
旨
愠
銞
愰
鶛
鴲
惺
匓
慨
勓
怛
愓
悍
惿
憪
憫
郇
惕
惃
愒
懪
恨
慢
憬
慏
愲
懓
惻
墯
惆
慆
惲
恽
怚
惧
愋
懚
恫
憏
恻
愮
惘
眞
戄
懼
悓
慀
惍
鷆
忪
慃
恱
勩
顚
悌
悅
悦
憎
惮
也
惏
憷
鵴
怶
忖
快
悚
懶
懒
穎
颖
愇
乸
惙
怪
慅
潁
颍
怿
灳
悄
戃
憆
惝
匊
憐
惔
憦
頴
熲
顈
颕
颎
恍
怑
惓
慻
悩
懗
恃
憢
怯
懤
懎
恄
懛
憘
慠
憉
悻
必
怕
曶
惶
懊
甮
恦
恤
覕
懰
憡
悸
愀
悧
憣
恪
忹
悎
慟
勿
鴓
匑
匔
忏
恬
憍
悿
懫
刎
惞
忻
忛
邲
忽
惛
匓
怟
性
怢
惼
憿
悷
愧
怟
忯
憁
懙
袃
勾
勺
悢
愽
悛
怵
懡
戂
慽
恈
慘
匍
悑
怵
惨
忧
慵
慷
匀
怺
恜
怡
惐
憾
惼
悷
悈
懭
怴
惦
慎
悖
懥
悾
愹
怽
忮
鴇
愘
慱
懴
憓
慚
恅
悽
悰
愃
惋
愭
懧
鸨
怙
悺
駂
憤
愤
忕
匁
憭
恢
忲
匆
悕
恡
慡
怖
恠
肄
匎
惰
恗
恞
勼
疑
忰
欵
愱
悏
怱
惭
忇
愶
恊
忡
怏
忱
悭
怫
慺
憒
愦
恌
悱
懻
悯
怞
勺
懨
恒
懦
頃
愩
懮
愞
恆
顷
恓
怀
怦
匉
怌
忹
恎
恹
恸
忓
鸵
怃
勻
忶
悟
忨
忊
邬
怲
匐
愊
鹱
憯
慄
憟
慓
憛
愐
怔
忆
乜
悗
愌
懈
愑
憺
忸
憰
忣
惂
匇
悀
恀
忬
憜
愵
恑
忺
憕
惤
长
勽
愎
慯
恘
惟
愯
憔
懏
怜
懺
忴
惗
愴
忤
匋
勚
忦
懀
惀
悇
恮
愉
忾
憸
恰
匌
忔
觺
觺
愾
怍
怆
憮
悔
比
匂
恂
恉
惸
愼
枈
忚
粊
坒
怭
皆
惚
毞
毕
懝
愡
毙
怅
惢
橤
繠
悂
毖
怐
怉
怈
惵
忳
恟
懳
情
愫
慠
句
吢
悒
悁
愪
怾
鴝
悜
斪
怳
劬
悜
悮
够
邭
欨
雊
敂
惽
鸲
懆
憚
愕
包
悞
怋
憴
乜
愝
慳
切
忉
怊
懢
慑
懾
怄
愜
惬
慴
恇
憀
憳
懢
悵
怩
慪
怇
忋
世
惜
愺
慔
懞
贳
貰
枼
懂
慲
愅
愥
慬
懄
愖
匒
懩
憽
懽
恲
慒
懱
懜
懵
憹
慊
慌
恾
屯
旾
胷
惾
皺
炰
鶵
匈
忷
刨
惴
頓
顿
愷
鄒
邨
雛
慛
芻
恺
怓
怮
匃
乌
惱
匘
甸
怬
惈
悃
悝
慖
慣
惯
懌
愣
懁
愄
慍
愢
恛
悼
恔
憞
憱
忼
慥
慩
忟
悋
訇
悴
憈
憈
懅
怗
惇
惊
悙
懹
枭
鸟
凫
岛
袅
愔
憧
慞
憶
恼
忙
匄
怰
慉
懍
懔
憻
懷
懐
懠
忭
手
抇
揾
擝
捏
揤
摡
蠢
担
揚
捍
提
捫
撊
撋
擱
攔
惷
掦
掍
掲
揭
撮
搨
把
拫
捑
摱
撔
抈
掤
搰
授
靓
靜
靚
探
攖
採
捋
靗
鶄
撝
搯
揮
靛
撚
挥
抯
援
挏
揺
靘
捊
郬
静
摖
靔
靝
搖
摇
撄
拥
掙
掆
攫
挸
挼
扒
捦
掰
捴
勣
挮
鄼
撳
搃
挩
捝
扮
掸
耒
揸
耙
拺
耝
耡
耚
耥
耧
耮
耖
披
耗
耱
耛
抹
抉
耞
捒
攋
耬
揦
摗
頛
耰
耘
耓
耨
耔
耣
耠
耫
耜
耟
耤
耢
耯
耕
耩
耭
揀
耦
耪
耲
鋬
搡
掇
挱
扠
搔
掻
麺
摊
麹
择
麸
捎
攩
摚
撐
撇
撑
搅
撹
擋
撛
搂
掞
攚
撈
抄
挘
毮
挄
拌
搼
捲
挡
擞
繛
扗
抩
撎
掕
持
挂
撓
掛
抾
搕
捇
擣
拮
擷
擡
撷
拍
揘
擳
搗
攥
擙
攪
攑
栔
揪
捼
播
扳
洯
捀
拠
挌
捁
挀
抸
扦
揰
挿
揷
捶
括
揗
插
契
扷
撟
挢
擌
掭
蛪
掀
抓
折
拆
觢
觢
挆
投
擨
揝
摐
撘
托
恝
捪
抵
挈
抶
摀
掮
揙
撽
捩
搧
抍
擶
兂
攢
搝
擤
擨
攒
撬
抵
絜
抑
扺
捭
摠
搜
捏
揑
掜
揝
搬
齧
搋
搋
找
扩
払
搏
贽
捘
攠
擵
攠
热
焘
垫
摵
搣
掋
掋
抁
揻
拡
摻
撡
捕
捄
拔
掺
撪
拔
拢
势
扰
蛰
掶
搪
捬
挨
攈
攗
拭
攟
鸷
挚
抬
掝
撼
护
掮
揙
捩
搧
拚
擴
摭
拨
絷
摝
掂
丰
丯
搷
挬
擦
揇
擜
攮
攧
揬
撺
控
挖
摉
搲
攨
搈
搾
攛
抺
技
抭
挓
揢
抭
擮
摶
撠
搟
擀
摲
扙
拷
捷
捿
擯
揎
拧
掟
砉
捖
艳
邦
鄻
捥
摍
摈
拕
搘
擰
挠
攇
搳
邫
捾
彗
熭
慧
攓
攐
按
捙
春
赘
贅
鏊
摋
撩
摋
寿
泰
抜
拻
熬
鷔
秦
奏
舂
獒
撦
捹
摤
抪
拵
螯
掩
捺
奏
掎
挎
挗
扏
执
抛
骜
鰲
鳌
挾
摕
奉
摮
嗸
鼇
扐
劧
搚
聱
摦
驁
拁
拹
挟
嶅
拋
嫯
拣
拣
謷
晢
抰
抌
銴
梊
捸
焎
烲
埑
幚
扪
揽
帮
扸
蜇
拂
扸
摟
撌
挑
硩
排
乴
悊
揹
哲
踅
搁
娎
擻
抽
捜
抻
拽
裚
誓
扛
擫
青
擩
摃
擾
攉
靑
责
摴
責
擂
搢
拪
扜
麦
抔
擟
抨
抷
抂
捱
捯
挵
捓
攊
搢
挃
扞
撖
掭
抚
掚
挭
掗
抎
攦
捂
扝
抏
振
打
挒
抲
抦
拝
拓
搹
夀
揼
揊
扼
挜
撅
扤
撍
表
搙
素
挳
搮
摽
撢
纛
毒
挽
捔
換
换
捔
擔
搎
掹
拯
扭
揉
扱
扔
掐
专
捅
摾
抒
拸
扟
撖
挺
挻
揵
挻
撱
搦
扻
揟
撥
揆
撜
搩
攙
摾
挣
挅
扬
搀
擼
撸
夫
扖
替
摥
抐
搉
规
賛
規
拊
推
撨
携
擕
鳺
拰
抮
拎
攕
扲
捻
搶
搇
輦
辇
扴
拞
掄
捠
捈
拴
掵
捡
揄
撿
拾
捨
捳
扢
邞
挫
抡
拖
揿
搿
揜
拃
抢
撫
挴
扵
摿
擒
抋
指
扡
掬
扚
抅
抣
擬
揔
揯
搄
抣
掏
批
揩
拘
抱
抴
揲
扽
搊
揈
捣
抙
揳
挷
搸
揍
捧
摏
掅
抟
扶
攅
攆
撵
摫
掱
扥
扣
挹
捐
損
损
抧
挰
捛
拀
擑
拐
剨
挰
捛
操
撣
拐
揖
捌
撰
抿
捉
韦
韫
揠
韬
摼
擓
摨
扨
招
捤
韨
挕
摄
掫
攝
揶
摂
据
抠
扨
捃
报
挋
扫
摺
掃
握
擢
摎
撏
挦
挧
掁
択
敖
抳
挪
擗
摳
拒
韧
挶
摒
搌
掘
攬
搱
摒
措
摸
擖
捵
攃
撒
揃
捞
拱
擈
撕
撲
搤
揂
擆
擲
掷
掿
撗
拑
掑
撶
拦
揕
搽
擭
攤
擹
搭
攁
擛
搓
撯
擏
搑
拼
搆
掽
搠
描
撙
擃
搛
击
扎
槼
椝
揣
鬹
鬶
攜
摧
拙
嫢
紥
撧
擽
拟
拗
抝
摪
掾
攭
摷
拶
擸
捆
捰
捚
撂
摑
摜
掼
摁
押
攞
摆
擉
擇
擺
擐
掴
揋
搵
揌
摞
攌
攂
拇
憃
扑
掉
揥
撾
揁
攡
撤
攏
搒
摘
挍
挝
撴
掓
拄
撻
摓
摌
抗
搥
挔
摔
抖
拼
摙
抆
挞
挤
摌
捗
扯
掯
拤
挊
攍
捽
掖
摢
摣
據
攄
摅
擄
掳
攎
拈
搞
掠
揨
攘
揓
拉
揞
撞
掊
摬
接
摛
擁
撁
搐
擅
擠
抃
擿
口
唱
嗢
唧
嘅
呾
啺
哻
嗮
嚪
喝
嘬
嚗
吧
邑
哏
敯
喅
肙
嗗
噯
嗳
喎
囎
嚶
啋
哷
啂
啁
鵑
噅
喗
嘫
剐
剈
咀
喛
哃
瓹
哹
员
呗
嗂
嘤
鹃
翤
嗣
員
唄
哯
哸
嗘
嚼
只
叭
唫
鶰
嗡
嗲
勛
吖
嘦
鄖
唂
哾
吩
噌
啴
呆
喳
啉
噤
唽
氉
吋
喖
吷
喇
劋
嗽
呠
喡
鄵
唻
槑
叹
啵
嗓
啜
嘙
唦
嗨
吙
哨
嚐
嗩
嘡
唢
噹
咪
噒
喽
啖
嘮
吵
咣
啳
吐
呥
噎
嚇
哇
嘵
啩
鷕
呿
嗑
嚽
哧
嚋
郢
哋
咭
嘻
嗷
嘭
啈
唗
嘄
鳴
喤
啲
嗥
噑
唕
唣
噢
响
咱
哝
嚠
咊
啾
唎
啝
唀
唩
噃
咯
咚
呼
呈
嚑
哠
嚟
哌
吀
咮
喠
唾
咶
喢
嘺
听
噬
叽
哚
吺
喒
嘚
哘
嘥
吒
喞
呧
嘅
吽
哦
呹
呂
嗚
噭
唳
呝
呏
兄
囋
嘷
嗅
嚊
呧
呱
囖
啤
嗖
唲
喒
嗁
嗁
哴
唆
嘛
嚒
嚤
嚰
嘁
哞
喊
吮
喴
嘇
啷
哺
嘛
吠
噅
咙
嘃
唥
咏
雖
唉
咍
唳
呝
嚝
喥
嗻
哤
叶
嘟
嗔
哱
嗦
嚓
喃
嚏
嚔
囔
噾
啌
味
嘋
吱
鷤
咤
哰
喀
戰
戢
嘲
囀
啫
哮
咾
啑
啛
喧
辴
咛
啶
唍
鄲
啘
嘜
咜
嗜
嚀
哓
嘧
嗐
咕
囅
噴
噻
喷
咹
唓
啚
暋
哊
喐
睯
嘹
咴
喹
唙
吰
呔
喯
唏
咘
唵
咗
咵
咦
唊
愍
啭
另
叻
嗋
咖
吊
咉
啸
嘨
咈
嘍
嘳
虽
咷
嚍
啡
呻
黾
嘯
叿
咟
嚈
咺
踼
踶
躙
躢
躝
踢
蹋
跁
跟
跀
嚅
跚
踻
嗊
踩
嚘
嚯
蹈
嘠
蹨
跙
唝
跚
躩
躣
蹊
趴
哂
唒
蹭
吁
蹅
跛
趹
踈
踏
吥
踃
蹚
蹐
蹸
躞
呯
呸
跘
踡
呈
踜
踛
跱
跬
啀
蹺
踋
噖
躊
哢
跿
踿
踒
蹯
跭
路
跣
蹓
跦
踵
踬
踲
跃
蹻
踽
躓
嚦
斲
跅
跺
蹤
蹝
跌
蹁
躈
躦
躜
跞
蹏
蹏
踉
踆
咥
躕
踐
践
跋
跋
跆
蹁
踱
蹠
躔
蹗
踮
蹎
蹿
躥
跊
跂
噉
踷
踍
踕
踪
踠
蹜
跎
跷
跍
吴
蹽
踦
跨
跠
蹛
呖
跏
呒
啢
哽
啞
唖
蹪
跳
跩
跴
趶
呩
躎
踎
呍
跮
趼
蹰
躧
跒
噁
囇
跖
唔
踾
趼
蹶
踁
蹮
叮
踴
蹫
蹂
趿
踊
跢
踺
跪
咧
蹳
蹬
呵
跥
踭
唡
跗
踓
跈
跉
趻
踗
蹌
踟
踚
跧
踰
跲
趷
踨
蹹
跄
躌
踇
踘
趵
趵
蹞
跸
跔
跑
跇
蹀
踳
踌
蹖
蹟
趺
嗝
躁
哣
踀
踙
蹑
躡
踞
踂
躍
蹘
啄
跜
躃
距
跼
蹍
呃
跽
咞
踖
躪
哑
躨
蹼
躇
躑
踯
蹃
蹣
躏
蹒
踑
踸
噘
躤
蹉
跰
踫
蹧
蹲
噆
蹦
嗄
嘎
踹
呀
嗕
躒
躖
蹡
咓
号
躐
踝
嘌
喱
嘾
躀
喕
躅
蹕
喓
吓
踔
蹆
蹄
躘
蹢
跤
蹾
嘕
踧
蹴
跓
躂
跹
趽
蹥
跶
跻
跡
踄
趾
跐
躚
踤
躆
跕
躟
蹱
踣
踥
躋
唃
嘝
喚
唤
唃
噡
吇
吼
吜
噊
吸
啗
哆
噉
唌
唌
吲
唨
啊
吹
饕
噔
嚵
喼
吗
嚕
噜
叺
吶
呐
呙
咻
咐
焁
唯
噍
喺
嗿
呤
吟
唸
嗆
唅
喰
吘
呚
勋
吤
噲
唋
哙
啣
喻
噞
哈
啥
哬
喩
吃
喉
郧
唑
吪
咃
哗
哖
噏
嗱
啽
咋
咿
呛
嘸
嚹
嗰
噙
叱
吣
咰
昬
哛
吔
咇
鴖
吻
唿
呁
蟁
刡
呁
敃
啕
吡
喈
哔
呴
咆
呭
喋
吨
噸
哅
呜
鸣
啪
噄
喫
哳
囓
嘒
嚖
嘒
嚽
嗪
唪
啨
嘖
唛
嗉
咑
啧
呋
嗷
唞
啦
吕
吅
唈
斝
呮
喣
鷺
咒
呪
哭
獸
器
喌
囂
嚻
嚴
咢
嚴
嚣
噐
呺
郘
骂
鹭
品
噪
喿
嘽
碞
喦
嵒
嚚
哵
駡
噀
嘂
呡
單
嘼
鼉
鼍
哫
唰
覨
囑
叨
叧
鶚
鴞
嘱
嚂
咠
咡
嗫
囁
啹
呕
吚
叩
咂
別
别
叼
顎
颚
唚
喔
嚁
哐
嘐
噚
噿
呞
嚂
鄂
呎
飸
呢
鹗
鸮
嗎
哪
噼
嘔
叚
卾
啒
囕
號
號
唶
嗼
噶
囒
唺
唠
哄
嘶
噗
嗌
囈
嚉
唴
嚡
嘞
哎
咲
喏
嚥
嘆
咁
唭
嘩
哶
啿
呓
囌
嗏
嚄
嗒
嗬
嚿
咩
嗟
唴
嚾
嗍
嗴
嗞
喵
嘈
噧
噂
囆
噥
嗛
嚆
巳
嘣
导
喘
巺
嘊
嗤
啱
哕
鄳
嗺
饕
攺
异
巽
咄
呶
噝
喲
嚩
吆
嚛
嘰
呦
叫
哟
呉
吳
喙
民
咝
嗈
喟
呬
嚸
哩
嘿
嚜
嘢
嘓
咽
嗯
呷
喁
嘪
囉
噣
啰
噮
啯
喂
鄙
嗢
嗶
呣
黽
卟
啅
噷
啼
囄
囐
嚨
嗙
嘀
咬
囃
噋
噺
嚫
噈
噠
嚬
喭
吭
唷
呌
嗹
呅
哒
喭
哜
啃
噦
呲
唁
嚙
啮
噛
咔
嗵
足
啐
嘴
嘘
嘑
喍
噳
噓
唬
噱
嚧
唬
呫
嗃
啍
哼
喨
嚎
喨
嚷
嗾
唹
喑
噇
嚱
噫
唼
噰
呟
咳
嚃
嚃
嚺
啚
嚌
尸
鷵
飁
翫
匽
屭
朢
刷
朢
屃
屓
匷
匹
鴄
殿
層
杘
尿
腎
臀
瞖
賢
贀
鋻
棸
焣
堅
壂
埾
鷖
聚
聚
犀
蜸
颞
醫
瑿
毉
硻
豎
孯
臋
匯
聚
鹥
掔
翳
娶
嫛
婜
緊
繄
黳
屬
竪
馹
騴
駻
騠
騉
騔
屑
騧
騆
駔
駧
駉
騱
駾
驓
屎
駊
尉
駃
駷
騋
屡
馭
叞
騷
騒
驎
駫
驣
騨
驝
驍
騡
騜
騬
駱
駪
駠
騮
駯
驕
馸
颿
馲
騀
馿
騙
騸
騩
驄
騪
駺
駿
馻
驂
駥
駀
駲
騃
駘
馿
騙
騸
駴
駹
騼
馷
馶
驖
驞
騌
駝
馱
駄
駁
騻
騎
馽
駚
馾
駛
馴
駣
騑
驥
駎
騁
驌
驦
駍
駓
騵
駤
馯
駵
驑
驪
驃
驔
騕
驈
騥
馺
駳
騝
駳
騄
驋
騤
騛
駙
騅
駗
駖
騐
駇
駈
駼
駩
騟
驗
験
騇
駞
駨
馳
駜
馰
騘
騊
駒
騶
騞
駽
驒
騢
驟
驫
駋
駬
駆
騽
駸
驏
駅
騳
驅
駏
駶
馵
騲
騚
驜
驧
驠
騹
騏
驊
驩
駢
騣
驨
騄
駟
騍
駰
驛
騦
驆
騾
騯
駮
驐
駐
褧
騈
馼
驉
驉
驢
驤
騂
騿
駭
驙
鸐
戳
聽
劻
剭
邼
匵
刀
鳲
鬝
鬜
鬄
鬘
鬅
髥
鬇
匴
刅
鬀
鬙
髤
鬎
鬆
髲
鬎
髿
髾
鬈
髯
髻
鷚
鳭
鬏
鬁
髼
鬚
髺
髠
髦
刃
戮
鬖
髮
髮
鬒
鬢
鬃
鬓
鬐
鬡
鬍
髪
鬌
勠
属
髧
髴
剹
顟
髵
髬
匠
髩
髨
髡
凥
髳
鄝
鬇
屩
髹
屧
履
屐
雡
鬠
鬂
屣
髽
屜
屨
屦
髢
髱
髰
鹨
鬊
尾
召
匾
脋
刕
髫
髶
鬕
鬋
髸
鬗
髷
鬞
鬑
鬉
鬣
鬛
鬟
鬔
髣
髭
鬤
監
覧
鍳
熨
髟
镺
斸
犚
镻
镽
蠿
螱
劚
肆
习
镾
瓺
鄩
镹
忍
慰
匾
镼
匥
彠
彟
褽
歰
耳
肀
臂
耼
屄
鐾
聬
聡
聪
聁
檗
取
聂
郰
耿
糪
壁
聃
聐
鷿
鵈
聕
聊
聒
聥
毦
聭
聛
聰
聣
聀
聝
聺
聜
聍
聢
匭
聹
聴
屠
屪
耾
聗
幦
耽
聵
聩
聎
刵
聘
顳
聏
璧
耺
耵
礕
甓
聇
聸
孹
耶
聧
聄
聆
耹
聅
恥
憵
聦
擘
聙
居
职
鼊
躄
劈
聑
聶
联
聠
耴
聉
嬖
繴
聮
聫
聈
聯
聨
襞
職
聠
耻
譬
聤
区
尹
刄
鴎
殴
殹
丒
瓯
尻
欧
匧
悘
鸥
匦
君
匲
卩
匝
臤
卪
屢
卫
頤
頣
颐
匱
匮
匪
屝
臥
臨
賾
赜
巸
臣
臦
綤
届
卧
刁
彐
匞
翨
翬
翚
帚
監
翂
翍
寻
灵
彛
匡
匤
習
翵
翐
毣
镸
屋
翇
翇
翄
翆
翜
翀
屚
羾
頨
层
尋
屒
屍
翟
翏
翭
翑
司
羽
羿
翪
長
翼
翴
翠
翯
翞
翌
翋
翣
孱
屙
匛
尺
昼
医
匬
匳
匼
鄹
咫
尽
尼
贒
匜
匫
鵋
匢
屁
屉
屟
鸤
那
馬
叵
盬
覗
覠
尀
焄
鷗
鶋
鵘
聖
毆
劭
屌
帬
剧
刟
剾
頵
聖
甌
孠
郡
邵
歐
欩
慝
匰
區
巶
卲
群
羣
敺
裠
鸊
辟
巨
燛
臩
螶
乬
巪
局
凹
兕
匿
匶
羼
屏
展
己
已
屗
熙
煕
屆
鶌
匩
屘
邔
改
忌
异
屈
媐
妀
鶠
屫
匨
郾
邔
改
妀
屇
鹽
覽
鑒
匣
擥
譼
匟
屛
屖
廿
昔
菖
蕌
萌
蒀
萺
菒
皵
莳
蒔
鵲
斮
葿
蓢
莭
蔇
草
莫
暮
幕
驀
繤
墓
蟇
蓦
慕
摹
謩
募
剒
菛
蕳
蕑
藺
蕄
蔄
蔅
蘭
葃
菎
葛
鹊
蕞
芭
茛
蔓
蓂
萉
萠
蓇
薆
觏
蕣
萵
薍
覯
典
蓥
萴
黺
蘡
菜
荣
槊
荥
荧
藤
虅
蕂
塑
茔
蔿
薶
荦
苋
藐
蓞
黼
黻
黻
葷
荤
劳
荕
勱
萤
繭
前
蒯
苴
顜
顢
颟
萲
莹
蒄
蒙
茼
莇
蒏
莩
煎
剪
蒬
茕
翦
蔡
散
荝
萞
葄
愬
莺
葋
苚
苘
营
菔
菵
苜
蔝
蘨
繤
萈
藈
薡
萛
莧
荽
萦
蒵
斠
共
业
菳
普
期
朞
觍
益
覥
棊
黹
基
黊
鶼
鷬
夔
斯
蓊
蕲
輂
黆
蛬
蜝
剘
碁
甉
邺
欺
歉
彂
黅
敟
恭
惎
鹣
拲
巷
莌
棻
芬
葐
業
叢
丵
菐
凿
綦
酋
黈
斢
諅
黇
茦
蕀
蓛
莿
葙
菘
菻
荰
蓕
鸈
鷋
菥
茉
芵
藾
蔌
萙
苯
葦
鄴
藮
萊
莕
藲
莱
菄
萰
蕩
蕰
菹
鑿
莯
菠
蔢
糳
莎
蔆
萡
莈
落
萿
蘯
蒎
藩
芆
蒲
薄
菭
蒗
劐
葏
莐
茳
薸
萍
藫
菏
蒅
莈
荡
蒤
虃
蕍
蒞
萢
蔳
藻
蕖
蓡
薓
菬
菃
蘫
范
葓
蓱
薻
蕅
薀
薃
蔋
蓅
茫
苂
炗
蔊
莦
蕿
蔽
萷
蒌
菼
藀
蘱
虌
薠
茪
酀
菤
薮
芏
苒
盖
觀
菱
蔷
對
羨
羔
羙
羮
羹
茥
葑
蓺
蕘
鸛
羲
飌
義
羌
爇
藝
羡
羕
蓋
蕔
蓻
美
勸
羛
顴
颧
薵
酄
歡
羑
莰
羐
臡
薔
恙
戁
荺
鹳
薹
蔜
薣
善
姜
藚
蘾
苩
藠
葲
蔦
蘤
葟
菂
莵
葩
虋
薁
首
藰
萫
藊
蕱
薐
萩
蘓
蕛
菞
萟
萪
薭
萟
蒩
莉
萂
莠
蘒
萎
藒
蕃
莑
茖
苳
苸
蘍
薰
薫
鶜
蕦
蔾
藜
茆
蒥
芊
茱
葮
董
菙
芺
蕎
荞
菾
萭
蘌
蘬
芹
茩
芁
蘈
芟
芃
葻
蒣
蕧
薇
藢
蓹
荇
蘅
葕
蓯
蓗
蓰
蓏
葎
茚
茋
莪
苼
苵
芼
蒒
薛
芦
萹
菺
蒑
薂
蔰
蘈
蒐
蒠
蘶
茋
苽
芪
蔸
萆
蔥
蓖
藇
蓃
蕮
萸
萖
蒰
莨
蒪
荾
藦
蘑
蘼
蔴
藦
蘑
蘼
茂
鷷
鷀
蕆
荗
菧
菧
蒇
葴
蒧
荿
蔵
葳
菚
蓢
蔘
蓈
茙
莆
蔴
莍
芆
茇
蒍
茇
茏
莽
蓭
菮
蓎
蓤
茨
藏
芝
薋
薬
蓙
懟
芅
蘪
藨
薼
鹚
苔
葈
芦
萹
菺
蔰
蓆
薕
蔗
蔼
薦
蔍
卅
丗
鞰
靼
鞮
鞨
靶
鞎
韅
芾
蒖
荸
鞱
萳
带
帯
靻
萓
鞖
鞵
茓
葖
藭
蓉
蘖
苿
鞁
靺
葧
芰
鞜
蘻
靫
鞘
鞺
鞩
鞝
糵
靽
靯
鞋
鞊
韇
鷨
鞂
鞦
藛
鞽
鞒
靳
鞞
蓴
蕙
韀
鞚
蓒
蔪
鞍
著
藔
荖
勒
鞅
鞻
鞼
鞉
荆
萐
萋
苎
蔩
薲
荢
蔻
萗
靬
蔲
鞕
萱
靪
苧
萣
鞆
菪
靰
莞
韁
鞔
韂
孽
茡
靵
鞣
靸
鞃
鞬
靷
鄿
菀
蓿
靹
靲
鞭
鞈
靴
鞥
蓍
鞠
靮
藌
靮
薴
鞄
靾
鞢
蔤
荛
鞫
藼
鞡
苦
葫
鞙
鞓
菅
躠
靭
鞀
靱
韊
蕡
鞧
鞴
韉
鞯
鞾
韄
鞳
藆
鞲
韈
荌
鞿
靿
莗
鞇
鞸
鞹
韃
鞑
韆
鞐
鞟
鞛
关
艾
芖
蔱
檠
蔱
苃
蕏
鶧
鴱
荻
莥
藱
获
莸
蕕
葢
莾
莃
荐
茬
蟼
苅
菴
萘
荂
荑
艽
芄
鄭
郑
鄚
蒺
莢
憼
蔕
擎
若
蠚
惹
艻
苏
驚
茄
荔
荚
警
芇
英
萜
虄
蓝
革
萧
蟴
茀
蔞
蕢
荘
蒋
茧
蒉
苝
藎
菲
燕
鷰
嬊
茟
羋
堇
蔺
韮
藪
苖
黄
茰
蕭
蕜
甘
荁
薷
虉
藿
觐
蕓
蕶
荋
虂
蘦
蘎
覲
蕾
蘷
虁
茜
莤
某
芋
芣
薾
蒜
苹
苤
蘸
菿
薽
蘁
蒝
蕥
甛
藶
斳
茿
荎
芉
菾
勤
苈
芜
黃
莄
菫
兰
其
芸
茨
葝
芌
芫
甚
莀
艼
薚
邯
鄞
薤
茢
歏
苛
蒆
薞
藸
苪
蕤
莁
蕐
塟
葬
蒚
藞
荳
葍
苊
茾
華
荊
蕨
芽
蓐
莖
蔈
蘸
蕈
薑
蓜
葽
芐
蔫
齹
艺
芎
菟
莬
萯
藑
蔛
葪
薢
薝
芓
蓀
荪
菰
芤
蒸
蘇
薊
蘚
葇
芨
艿
蓩
萏
苰
芕
茅
蔃
茒
芧
茤
荈
茗
苑
蕵
莛
莚
莚
荫
藬
蒢
萨
苐
蔭
薩
蕯
蘟
蔯
顭
菉
蒻
蓟
藓
蔬
蕷
鄸
蓣
芡
蕟
葵
茎
蔃
葞
莻
萾
虇
葾
葂
荬
艱
芮
蒮
茶
茠
苻
藵
苶
萑
茌
雈
蒦
蕉
囏
舊
鸏
荏
氋
茷
養
葰
苓
茯
芩
菍
蒼
莟
蘩
薙
茽
蓨
蓧
蓚
莜
养
芥
茊
薈
菕
蘥
荼
荃
荟
蔹
芢
莶
萮
芞
薟
荷
荅
葔
歎
芿
鯗
苁
蓌
難
莝
蘞
葅
蘝
莋
花
芲
蒊
鹲
蒨
葆
葊
苲
葠
苍
蕪
苮
蒛
莓
蓓
莅
芯
荀
蘔
蘏
菊
苾
芴
芍
芶
葡
茐
薿
葱
芍
蔔
苌
萄
芘
蒈
蘂
荜
蕊
苟
茍
苞
苆
葉
芚
萅
蒭
茑
蘹
羊
芈
羯
羓
着
羒
藉
藕
萚
莏
鴹
羳
羏
葜
羖
羝
葀
羝
羪
蒱
羧
菝
羬
兿
羢
菝
羻
羫
蔧
羜
羦
蓵
蔧
羵
萶
蓁
羠
菶
劷
菗
差
菁
羺
蔶
羱
羥
羞
羟
鮺
鲝
芙
蓷
羚
羭
羷
菢
荴
苇
蔜
翔
萔
羴
羌
羰
羰
蘀
譱
菈
羶
蒷
莒
菋
蕺
蘄
剳
苢
茣
蕗
鄯
鄀
歚
莴
蓶
敬
敾
荶
莒
雚
蕇
虈
萼
蕚
葭
葺
莂
茣
苠
莡
苉
藖
蘙
藂
蔚
芀
茘
苕
荱
蕻
荵
藯
蕼
藍
茸
蘵
蘗
菆
芛
莙
节
菣
茝
茞
菷
藋
蓼
蕁
荨
藍
萇
荩
懃
苨
蔒
薜
蓲
苣
芑
井
并
卌
葥
並
虁
藄
蘣
蘳
豑
汬
坓
冓
蓔
薱
葁
鷁
鵧
丼
蘜
蓳
荆
苷
頩
萁
葚
瓶
艶
艵
郱
鄷
鹢
蒫
善
剙
刱
剏
剙
剏
荓
蒴
蘛
蓸
蠲
蕽
蒹
屰
朔
葼
羗
馘
蘴
菡
欮
茁
蒳
虊
藧
蘰
蕬
尠
蒶
葯
葤
蘕
葒
蘊
藴
蕝
蒓
蔠
薌
戡
藥
孳
鶿
兹
茲
甆
苡
慈
苭
卙
菇
勘
荍
莊
药
蔣
薅
荮
荭
蕴
莼
蘠
葘
菉
夦
歁
蒃
茹
蕠
蒘
芗
葌
菑
斟
苗
曲
曹
蠆
躉
莔
菓
尊
蔨
荲
薗
鶓
菌
猷
蔮
奠
茵
蒽
莮
薯
萬
蕒
蘉
蘿
蔑
薎
薥
蠤
夢
萝
甍
藅
蘮
薨
藣
瞢
農
豊
葨
苬
蒕
葸
鹋
茴
蓽
蔂
蘽
虆
蘲
藟
苺
兼
蒂
薖
蘺
藃
蘢
蒡
蔏
蔐
茭
萒
蔉
蓘
薪
藗
藽
薒
蒾
菽
薘
薳
蘋
蓬
菦
苀
芳
蒁
茺
蓮
芠
荙
荠
萕
莲
芾
荹
芷
蘃
茮
薉
蕋
蓫
茈
蓪
藙
萃
蔖
萀
藘
蘆
萀
苫
藷
蒿
藳
藁
蘐
蔎
蕸
蔀
葶
薧
蘘
藹
葹
蔟
虀
蔙
菸
苙
萻
蕫
莘
蔁
薏
菩
蒟
菨
蓠
芒
蕹
荄
莣
荒
蓄
蓾
蓑
薺
苄
藡
蘧
山
嵵
嵋
崵
崼
崑
崐
嵑
岜
峎
岄
崩
崱
巊
岘
岗
剬
剻
岨
顓
颛
嵈
嶾
峒
峝
酅
歂
崢
崗
峴
嵠
崟
崯
嵡
嶔
峪
岎
嶒
嵖
崧
崊
岥
嶘
崍
糶
崃
崠
崬
嵀
汖
凼
崉
埊
顄
峄
峭
嵴
嶙
嵝
嶸
巆
嶗
巀
巌
凷
崚
峙
崶
嶢
嶤
嶹
崁
匕
岶
嶋
嶌
崲
嵙
峲
嵊
崣
嶓
岅
峰
峯
峉
峈
峂
峼
峁
嵧
崜
岆
嶠
峤
巋
岓
嵐
岚
崻
嶶
嵷
嵸
嵂
崏
岻
峨
峩
嵨
嶭
巑
嵲
嵬
巍
岻
岇
崥
嶼
崀
峻
嵗
嵅
峸
崴
嵾
峬
嵻
嵣
鬯
峅
嵮
岤
巔
崆
巅
嵱
櫱
岐
糱
嶻
嶄
嶃
峵
峔
蠥
崨
崇
豐
孼
岮
峣
岵
峖
凶
峟
嶛
嶚
岽
炭
峚
嶽
兇
輋
崤
崦
崎
峓
峽
嵽
崭
屴
峡
屮
岟
岪
岿
嶁
峍
岫
峀
屸
屵
旹
峘
嶿
崸
耑
峏
嶀
巎
炭
岼
岯
崖
崕
峫
峌
屽
蚩
峺
亗
岸
峿
岏
嶏
嵿
峛
峢
岢
嵟
嶳
豳
岩
豈
岍
巁
崋
嶡
嶥
屼
嶜
妛
岈
崾
嶑
嶰
崅
嶦
函
岌
岋
屷
岁
嵹
邖
嶐
刿
嵶
峗
峞
嶝
嵥
凾
巉
嵹
峥
翙
崔
巂
雟
嶕
嶣
嶲
嶺
岭
岺
岑
岒
嵢
峳
岕
岴
崙
崘
峑
崄
崳
嵛
嶮
峇
峆
屹
嵚
嶖
岝
岞
峜
峋
巓
岉
嶷
岣
崝
嶊
岲
嶯
嶉
巖
巗
嵓
崿
岷
辥
嶎
屶
岃
屻
岧
岹
崌
岖
峮
嶍
嵺
嶇
岠
岂
屺
崛
崫
嶱
嵘
崂
覬
嶪
嶫
巙
豒
崷
嶬
豔
嵄
凱
颽
巕
獃
巈
豓
剴
顗
嵌
嵁
艷
酆
敳
嵯
嵳
巏
嵫
嶆
嶟
嶩
嵰
敱
出
艸
屾
岀
乢
觊
嵕
嵏
粜
凯
剀
祟
嵦
崡
欪
芔
茻
幽
岰
嶈
崰
崓
崮
岬
嵎
嶧
嶵
嵔
崽
峕
崹
巘
巚
巃
巄
嵭
巐
峧
嵃
嵼
嵃
嵼
訔
峠
崒
崪
岾
嵩
嵪
崞
嵉
崺
屿
岦
巇
嶂
峷
嵜
峐
女
娼
媪
媢
媚
妲
婸
娨
媞
嫺
嫻
孄
婫
妑
嫚
嫇
嬡
嫒
姗
媧
孆
婇
婤
嬀
婬
嫍
媈
姐
媛
姛
娐
媱
婙
姍
娊
娞
妐
娣
娧
妢
婵
断
妺
妜
勦
娕
嬾
嫩
剿
嫰
媁
鄛
婡
恏
娻
媡
奴
盝
娺
鴑
努
帑
剝
砮
弩
孥
媣
驽
胬
怒
拏
駑
曫
緼
縨
緹
繝
緆
緄
繓
紦
縵
娋
嫦
綳
縎
綬
緺
綗
纓
綵
綢
縚
緷
繎
組
緩
絧
綒
縩
絅
絼
綱
網
矕
緲
繉
絸
綏
縘
鑾
総
綈
綌
縂
綐
紛
繒
欒
緗
綝
紴
紂
綀
絊
緯
嫾
練
灓
縔
綴
経
紁
婒
綃
緔
嬫
繗
緂
紗
絖
絆
綣
続
綾
絓
繞
紶
繬
綕
結
纈
繥
緈
續
妙
絈
綿
線
鸞
鷥
繌
綉
緌
繙
綘
絳
絡
終
紝
纁
絑
緞
緟
綞
絬
繑
紤
絎
縱
縰
縦
綹
緍
紩
編
繳
綟
纘
紙
綼
總
綹
縛
絉
縬
緘
絾
縅
綫
絋
縿
絨
絉
絿
紎
紁
紱
紱
紌
絒
絘
紿
緎
緿
編
綟
纊
纏
纒
卛
縝
綍
繊
縳
纎
繐
緒
緖
綋
緁
緀
繽
縯
綜
縇
紵
綻
綄
綩
縮
紽
縖
綰
縡
奱
絠
繚
紘
絺
綺
絝
紈
紣
綊
糼
紻
紞
繣
紃
繍
紼
縷
繢
蠻
絩
緋
紬
紳
絏
繡
紅
絔
絙
繻
纋
繧
緛
絚
縉
絤
綇
紆
紑
緻
縓
縉
絰
緉
綆
紜
纚
糽
姯
縟
經
縹
緾
纒
緸
緬
繮
彎
絶
絻
繲
孿
紐
繘
級
紭
繈
紓
繺
綎
綖
綖
紖
緑
縁
縃
纔
繦
緮
納
臠
紨
維
絍
紾
紷
絥
纖
紟
變
縧
紒
繪
綸
絟
絵
緶
緰
給
紇
緱
緃
絁
緥
纀
戀
絢
約
緫
約
緪
縆
綯
紕
絇
紲
緤
純
縐
攣
姅
綁
縥
綪
績
縤
纉
婘
轡
絹
縜
絽
緡
絽
繰
繟
縀
緝
繏
繩
糿
紉
紹
絕
綛
繿
緅
綅
繆
繿
紀
纜
縸
繖
縊
緧
繕
緙
緓
紺
綨
繱
絴
縒
縙
絣
繕
緢
繜
繷
縑
纄
巒
糺
繃
緵
纗
繀
絀
孌
継
纞
纅
絲
糾
綠
緣
繅
繼
緇
細
緭
綑
綶
纆
絪
纙
繹
縄
繯
綥
縕
緦
絗
縪
縲
纝
綽
締
緽
縍
絞
紸
繨
縫
縋
紡
織
繂
統
紏
縺
紋
纐
緕
繾
紪
綷
纑
縞
綧
綡
綂
纕
縼
繸
繶
縌
縭
絃
絯
縴
繵
縗
纃
姌
嬄
銺
婈
嫱
焋
娃
嬈
奘
嬦
嬙
娡
姞
嬯
嬉
媴
弉
婞
娤
嬻
裝
婂
媓
郷
孂
嬝
嫓
姠
嬼
姀
娳
婑
嬏
妊
姺
鄕
媹
鄉
姂
奷
姝
媑
娷
姡
妖
嬌
娇
婖
蚃
妡
姤
姵
飨
奼
婚
娥
姓
妷
妒
媥
鄊
嬓
媿
嬶
媳
婢
媲
嬹
嬩
嫂
婗
幺
厶
娘
姢
嬤
樂
槳
嫲
嬷
孊
漿
糸
糹
墏
幾
斷
娍
媙
獎
嫏
娀
奬
妭
媯
妭
幼
妫
鴢
嫞
嫝
螿
劙
醬
以
娭
始
妒
幻
媥
嬚
嫬
乣
娏
畿
姉
嫃
婻
嫆
妹
妓
姹
嬸
嫥
媎
姥
婶
婕
嬪
婃
媗
嫁
婝
婉
嫔
嬣
娆
姑
媩
嫴
婠
娔
姲
夨
姷
盭
嫽
媠
婍
姱
姨
嫉
妕
凵
丩
姎
妉
収
嫿
嚮
丱
蠁
爿
嬇
姚
嬧
婔
饗
收
娴
妯
妽
娉
姊
婣
響
妅
缊
姮
缇
绲
缦
嬬
绷
绶
將
绸
纲
媆
组
缓
缨
嫮
孀
缈
绥
彙
绨
绤
纷
缯
牀
缃
纣
缀
绎
妚
嬭
绡
绱
缕
彝
纱
彜
绊
绻
娝
壯
绫
娾
牆
结
缬
绵
缐
绣
绦
绛
络
终
嫄
纴
纤
缎
缍
斨
绗
缴
缵
纸
绺
纩
戕
缚
姪
缄
线
绒
狀
绂
牅
绐
编
缠
奸
缜
姸
绪
纻
综
绽
续
缩
缤
绕
绾
缭
纮
绮
绔
纨
妩
练
练
蠿
缆
绋
婭
缋
绯
绅
红
缙
纡
妘
绖
绠
纭
牁
孋
娪
妧
娠
缛
缥
缅
缰
奵
绝
纽
级
纾
纼
绿
经
妸
绉
纳
维
牄
绘
缏
给
纥
缑
纵
纶
绚
约
娬
彘
绹
纰
绁
牃
纯
绑
绩
纬
妬
辔
绢
织
绳
缗
缲
缉
纫
绍
缪
纪
妍
娅
缢
缂
绬
绀
牂
缮
缣
绌
婳
妝
继
媷
纠
娙
缘
缫
缁
细
嫖
媔
缳
缌
婹
缧
绰
缔
绞
嫣
缝
缒
纺
统
纹
缱
姃
缟
缡
缞
婏
娩
媍
嫓
好
妳
煭
妞
媃
奶
妤
姼
姳
娗
娫
娫
邚
嫷
婀
彑
彔
娽
嫋
彖
姽
奺
婿
嬁
婙
嬎
嬔
妈
娹
乆
亾
兦
妠
盠
婎
孇
嫶
鶨
姙
姈
孅
妗
娢
蠡
妎
剶
嬒
婨
娦
姾
媮
嬐
姶
婾
姩
媬
嬆
媕
妰
嫵
娰
娒
姰
她
婅
妼
妁
妣
媘
姁
媟
媰
妦
媋
嫀
婧
嫧
嫊
婊
妋
如
娟
桇
鴽
帤
娱
娲
恕
挐
嬠
嬋
孍
婽
娯
絮
娛
姄
娖
孎
鶭
妱
娓
娵
婮
妪
嫕
姬
姫
妇
婦
嬥
媉
嫪
孧
妮
媽
娜
嬺
嫗
姖
嫟
妃
嫫
孏
婰
媊
娂
媨
嬟
媄
嫸
嬞
婼
嫹
嬿
媖
嫤
嫨
姏
娸
媒
嬅
媅
嬳
婲
嫅
孉
媶
姘
妌
媾
嫸
嬨
媌
嫌
奾
嬍
媏
媸
婩
媺
孈
雝
媺
奻
巜
災
嬵
乡
姒
丝
纟
姧
鸶
邕
姦
巛
甾
巢
巤
媦
婐
娌
嫼
鶅
疀
婟
姻
娚
媀
嬕
嬽
嬛
媼
媤
嫐
嫘
姆
卐
婥
媂
媜
嫎
嫡
姣
嬢
婌
妵
妔
妨
嬂
妏
姉
娮
嫭
婋
婋
婛
婷
孃
嫙
媫
媇
嫜
嬘
嬑
婄
妶
姟
嬗
田
畼
胃
朙
畳
顒
颙
愚
四
囧
囶
鷶
畟
圙
圀
果
困
团
褁
団
顆
颗
圍
夥
敤
囦
畷
疄
黠
黷
黢
黬
黲
默
黪
黓
黰
黩
黦
黤
黕
黖
黫
黵
黟
黔
黭
黣
黗
畔
畻
圈
圏
黚
黮
黜
黝
黸
點
黥
黯
里
畘
畤
黑
黒
墨
畦
圔
疇
野
園
圉
鴫
囷
畈
略
畧
图
畽
畖
囜
圎
圑
畯
鸀
圃
圗
畎
劅
歜
塁
疂
囼
國
斀
斣
毌
贯
貫
毋
鸅
鷝
團
歝
畹
斁
固
因
囿
盢
黙
畸
欭
恩
男
甲
禺
罝
罦
買
罤
罾
罧
眔
罬
眔
圕
罣
罫
罢
罴
瞏
睪
鴨
罶
罛
罷
羆
罭
罚
罱
置
署
罟
罨
罒
甽
罪
圚
罘
罽
睘
罡
罗
罞
罖
眾
蜀
罹
鸭
罥
罠
罻
翈
罵
羃
羈
羁
羇
羂
羉
羅
羄
罺
罳
罼
奰
罩
罜
詈
罸
罰
罯
罿
囨
囯
国
爴
氎
畀
曱
囩
圄
园
町
甼
圂
畏
疅
囸
囝
墅
畂
囚
畛
囹
畋
界
畍
圇
畭
囵
慁
囮
畮
思
囫
畇
顋
畇
毗
毘
囤
畴
圊
畉
围
回
圓
圆
圖
囻
圖
囙
囬
疁
嬲
異
畢
囲
畊
圌
囡
圞
圝
累
鹮
翾
畕
鸓
圛
圐
圜
畾
櫐
纍
壘
疊
疉
礨
罍
壨
囥
畩
母
図
圁
毑
疃
甿
畡
袰
卜
桌
亰
鶕
韹
韸
戠
卓
逿
韴
遈
歆
暹
恴
逷
韵
遏
韻
韶
遢
韺
頀
韷
退
韼
迌
髜
肻
過
卨
髝
週
鶙
鶮
望
毃
邈
獻
運
帝
啻
睿
望
遯
迵
甋
甗
鄗
歊
欳
歒
贞
離
敵
遙
遥
啻
迥
邎
髞
髛
盀
貞
敲
髚
旁
龖
龍
六
觑
商
啇
覷
銮
栾
变
鵉
鶐
変
顰
戯
兖
衮
交
奕
帟
蛮
亪
弯
孪
递
歔
脔
逧
恋
戇
戅
鸾
挛
兗
袞
弈
峦
娈
親
亸
鶉
鶐
虨
新
过
孰
速
遫
遬
違
郭
歑
雜
敦
敹
逨
鹑
嚲
攴
督
錖
梷
逫
粲
逤
壑
韰
餐
惄
裻
逍
迷
遴
叔
鶁
就
勍
剠
敊
主
逵
遶
殶
氃
迲
褻
勭
虧
逇
迼
遠
遨
逹
達
逺
逺
广
迫
鳪
遑
亹
逈
透
逶
褎
襃
返
逢
逄
造
选
邌
彦
産
裦
遛
褢
迁
适
遁
劌
頻
顏
顪
顔
频
颜
近
遾
逅
亢
袠
逓
迭
追
方
遍
邀
翽
邉
邊
衣
迎
邍
褏
亷
遚
裒
遞
遞
育
逡
述
熟
玅
塾
充
斔
遪
逋
述
逑
迖
螤
孶
玈
率
逘
迨
袬
遍
弃
棄
遮
夣
玆
斗
辻
遖
邃
辣
鵫
贛
竷
赣
彰
瓣
辨
辩
辦
蠭
贑
顇
乧
鄣
迱
逭
辧
乵
辮
辫
連
幷
甁
辬
辯
辡
文
头
达
斕
迶
斍
鐜
遼
対
墪
鵁
鷟
鳼
鴍
鸆
鵺
斖
逖
逛
彣
斒
迏
斏
斒
逩
効
螡
齐
齑
蚉
斎
刘
斓
遀
頝
斋
彥
產
斌
斈
郊
效
忞
憝
遰
连
撉
吝
边
斊
斉
迦
紊
齾
虠
虠
迚
市
逮
衷
亣
剂
剤
遱
止
遺
步
歩
逃
遗
歨
遣
亦
迪
迧
裵
上
辷
氵
肯
逦
赟
贇
覷
覰
迺
逎
迂
皽
皻
还
尗
邇
迋
歭
鸇
歬
歱
氈
衺
戱
歳
歲
迀
歧
迗
勯
迊
剷
顫
頉
颤
运
邐
悥
言
逜
訁
迃
远
迾
歔
欤
仧
此
忐
雌
鹯
歵
逗
逼
迈
逐
歫
歯
齿
齒
迓
逕
遷
卡
歮
逸
赢
邂
贏
贙
覤
遜
逊
迩
鸁
遹
彪
辸
袤
歺
通
虥
迻
袲
迯
迅
劥
蠃
頏
颃
逯
辽
邟
虪
迳
邆
虝
椉
驘
甝
羸
嬴
臝
虤
込
亱
褒
進
毅
颦
迕
劾
勮
刻
劇
頦
顡
颏
途
逾
迄
夜
郂
欬
卒
戆
迤
迮
嬜
虍
迿
虘
赀
眥
貲
鈭
柴
迆
壟
鷾
鸗
鴜
處
虖
虎
虎
虏
勴
蠪
龑
些
祡
龒
砦
礱
鬳
豦
觜
觜
鮆
胔
雐
飺
虗
虑
虙
呰
虞
啙
虞
聾
虐
驡
迣
龏
虚
龔
虡
虛
虡
迍
袌
姕
紫
膚
盧
虜
歶
慮
龘
襲
虔
訾
讋
逝
亵
逰
违
遨
占
亯
誯
謃
詚
諹
諟
譋
讕
讇
謁
裛
詪
謾
膏
諣
槀
稾
稁
調
譌
觇
謟
諢
詛
諼
詷
亮
亭
亴
豪
謠
謡
亳
高
詗
諍
誷
亮
毫
覘
誢
謑
訟
諡
說
説
訜
譄
諃
詖
討
訣
誎
諱
誺
諌
諫
誻
諁
訍
京
点
誚
讜
譡
詸
談
訬
詊
読
讟
詩
詿
譊
詓
譸
誌
詰
譆
謸
讀
諻
詯
訸
誗
謻
誘
諉
譒
詻
逞
譭
誥
詵
謝
誅
諥
諈
話
訞
譑
譭
訢
詬
訴
設
諷
訉
譗
託
諙
詆
誐
詄
諞
譤
謆
讚
謉
哀
詆
諀
謥
謏
諛
誽
謕
謕
战
誏
誜
訹
諴
誠
諓
謲
誧
訹
詙
詙
訧
詶
詠
誒
諮
試
詒
諞
謆
誡
譧
謶
計
謓
誖
諵
誼
詫
讅
譓
謿
諸
誟
誱
誴
諠
詝
諚
詑
詁
奌
詴
詼
誑
譇
訤
誵
誇
訅
訙
勏
訲
詇
訦
訓
謱
誂
誹
剖
訷
訌
譳
頕
謣
訏
評
逞
讍
謜
讈
誈
訐
詽
譀
語
誫
訂
訶
誣
諮
謌
諨
諑
訮
譖
訝
誙
瓿
謤
諲
譚
証
讂
譫
享
烹
譎
訯
諂
誦
誃
詺
訊
譀
誔
誕
誕
部
訠
讔
詭
亨
諝
證
謋
讒
諍
誸
訥
詂
誰
謢
譙
診
詅
讖
訡
諗
謒
誝
許
敨
譮
論
讑
詮
諭
譣
詥
訖
訛
詐
譕
誨
訫
詢
詣
訑
諊
謐
訋
譺
諧
訽
詍
諜
訰
詾
謅
誄
譿
請
謮
諘
譛
讃
謸
郶
詋
誤
譟
譂
讝
諤
遌
諿
遻
譔
襄
誤
譝
遐
訒
詔
譅
認
誀
諏
讘
謵
誛
誆
謬
詡
詞
訳
謳
詎
記
誋
誳
謘
諎
謨
譪
謭
譾
譜
謚
議
讛
譵
諾
讌
諽
謹
詌
諆
謀
譁
諶
護
誮
詳
讙
誁
講
諩
譐
譨
謙
謊
訕
乩
選
詜
訩
諯
讗
詘
詉
譏
詏
訆
詤
畗
謂
訵
謖
課
謴
譯
譞
諰
讄
訃
諦
讞
謗
謫
謪
詨
譲
譈
敁
謎
諔
註
諺
訪
識
謰
諺
讉
訨
譴
訿
誩
誶
譃
謼
謔
謯
譃
諕
諕
詀
謞
諄
諒
諪
譹
譶
讓
諳
辪
譢
譩
謧
詃
該
譠
讁
卢
迉
覫
遲
褭
堃
辺
鴋
旙
迢
旀
旑
髙
与
颅
瓬
旔
邡
迟
旃
旇
旓
旟
旂
旌
斻
旄
旅
旛
旆
放
旖
斾
斺
旐
韲
旚
旊
斿
旋
旝
旍
族
施
旎
旗
於
旜
旒
迡
鸬
遤
避
遅
旘
旈
遟
旞
立
音
暜
逪
竟
章
意
竭
竫
覻
竕
遒
竲
亲
竦
竗
产
鸕
鴗
竏
竬
竌
竐
颯
飒
竓
竔
道
竧
戲
竣
蒁
竢
辛
竍
竩
攱
竱
竤
竚
送
竑
逽
竡
顱
竵
竰
竳
竒
竫
遳
竛
遂
豙
竘
靖
咅
竞
翊
竮
进
迸
竎
遘
竴
逆
遡
端
妾
遭
邁
童
遵
竜
竨
站
竝
辿
齦
龈
齳
齟
龃
贙
覤
齽
齼
導
叡
壡
鷲
彪
齲
龋
齗
龂
齭
齨
齯
虥
齝
齻
离
齮
齥
遄
齬
龉
齖
齡
龄
齢
虪
齘
齕
龁
齚
齔
龀
虝
齣
齙
龅
齛
齺
鹫
噵
齞
齶
齪
龊
蹵
齠
龆
齱
齷
龌
齰
齸
甝
齓
鼑
鼑
齫
齵
齩
齴
齜
龇
虤
競
竸
亡
朚
肓
膂
裔
牽
盲
杗
壅
甕
罋
饔
衁
雍
巟
亥
瓤
玄
畜
勷
蝱
逯
邙
膐
賌
忘
吂
氓
妄
巡
邋
亩
裹
裏
畆
鹹
鹵
遦
卤
禼
卥
遇
遝
遝
邏
逻
還
褱
衰
鄐
畝
畒
鹷
鹶
鹼
鹸
迴
稟
禀
亶
卣
逥
鹺
鹾
鹻
齊
齍
齎
齋
齌
劑
齏
卞
逴
遆
遉
適
迬
遃
迒
逳
逬
这
迹
這
乻
遽
迠
旕
遊
遧
邅
逌
曰
昍
晿
曐
冐
暧
暉
晖
炚
顥
晄
暤
晑
甠
晠
旪
暏
晀
曧
旰
昞
鼌
冕
閲
欥
昒
暅
煦
晎
曅
旵
昢
妟
鷃
昘
旼
晾
肎
冝
髄
鸎
郥
贁
脱
肦
寽
脒
縢
膡
戵
冗
膬
脧
肞
罓
脎
脄
鶪
肽
肍
脁
腗
肛
冎
刞
冃
冨
冢
脕
贱
胊
冊
臟
肼
冚
覞
瞗
覹
瞚
瞆
觃
睢
矅
胐
肗
鵎
臅
腣
膧
釡
鋭
釥
鑜
鳻
鍁
鎞
鈛
鉥
兊
鉱
釴
鑛
鑔
鏔
鎵
釱
鈦
釚
鈡
錽
鋔
弚
鐊
鏹
鎸
鋡
鉓
錀
鈋
鈎
兑
懖
釖
蚠
麄
弅
鑖
鑁
敚
曽
鐹
銃
鎄
鏱
柦
櫊
枂
棗
柤
枬
朩
枩
棁
鬰
燓
壄
檒
榃
檆
槔
梍
欅
板
栀
杋
椼
橁
棙
櫷
櫠
椬
叏
榢
桡
杕
鷘
朹
憖
檶
柫
杠
欛
樰
梄
柰
橱
枑
槱
朰
梚
桷
杍
楺
栁
杼
椭
杦
棦
橹
杁
槜
猌
梒
検
枞
杺
栺
构
楍
櫂
桪
愸
赉
様
橫
櫗
杣
梱
鶫
檛
梈
梓
槞
榱
沓
灝
渇
泿
滘
沉
懑
濉
覌
汃
涚
瀬
漱
双
叒
涰
濙
坔
瀔
塣
盪
灚
汷
烫
硰
渢
漇
汼
淚
瀩
澙
叉
沭
浝
濂
漥
浨
濣
瀭
濱
滵
汯
浠
氿
氻
壍
灗
沜
沜
溃
灞
澪
洒
鴻
沯
沍
潥
湹
涣
汓
泓
沀
汣
漒
澛
氼
溆
淮
浛
瀹
渝
涻
沎
柒
汋
淸
涩
瀥
洭
浔
瀈
濸
汫
満
渵
澊
鍌
畓
涃
潈
濄
滳
湙
滚
澵
塰
済
洂
渉
滤
涥
湤
滰
滖
鴬
烰
敞
鸴
炯
挙
炑
炔
糥
敩
粠
糉
娄
炏
熒
尛
爃
顃
歘
尘
炿
燫
尜
幤
熕
爧
炋
焕
焳
焓
巻
烡
爡
畄
焑
燺
埓
壳
売
壷
壸
塜
増
榖
愨
縠
壵
墝
劸
圹
堼
劫
幇
摰
驇
螯
壖
壥
彀
埩
坆
堩
嚞
欯
嘉
皼
壿
圸
墒
垯
垶
丿
馫
皞
篃
皀
癿
笧
爂
鷮
奥
勪
礐
筟
笧
嶨
簒
篹
劗
鄮
擧
税
鷍
秉
剁
簌
秞
秄
鄡
穞
稇
夂
槃
夅
处
爫
釆
鳨
鄥
簃
鵢
凢
篵
鵞
鸱
啔
筞
鷱
簙
翱
晵
叐
鸄
懲
啓
嶴
簘
笰
篑
乺
籱
籈
邸
飓
梨
殳
飚
鷉
飗
飕
颰
凬
悡
飑
躛
飔
讏
飐
彳
鴩
筨
徳
彺
怣
瓝
爮
黴
徴
筍
顖
卽
牜
牫
吿
鴰
劶
劄
頟
郈
敌
鸹
峊
勹
戻
籊
启
簈
槩
毜
鶞
鷉
兟
郋
氇
憩
臫
覣
笖
憄
鶹
筃
粤
恖
舧
舮
箎
箎
笘
簱
簔
宀
鷛
鄘
术
盋
皳
鄬
慼
祵
丷
毵
庅
蠯
庐
広
亝
剆
戋
庋
义
奙
慦
亠
楽
噟
庀
麃
垄
弌
庇
戓
鄌
怠
扁
弁
讹
诣
煑
賷
鷏
顮
穵
窥
宋
撃
繋
艹
亁
轛
乹
輧
耂
崈
鴧
寜
鶷
宧
卋
宽
鶱
蹇
枽
鴧
勊
剋
鴳
寱
寣
乂
夿
冇
奟
郁
杀
疛
弒
刹
癞
疢
痜
獆
猏
猏
狲
癓
痻
奃
瘪
奃
厷
痲
瘏
夶
痏
鸑
堑
疘
疞
疴
夷
旮
痪
鴺
厹
痑
瘾
奞
疭
夻
鴐
羍
尢
奒
丨
衵
帇
幊
蚬
蛊
蜕
螕
螾
丬
蛿
蝆
蠴
衶
粛
牑
牑
刂
版
牑
鬮
牋
牑
闼
襨
乚
冑
裍
裢
戬
鸍
彨
鬸
蠒
郦
贡
靏
鹝
覇
貢
灭
厰
覝
顠
圧
玥
瑷
瑶
兲
鳿
臵
压
臹
璌
珔
甄
鄄
歅
玪
琀
玫
珌
玭
瑧
珫
丆
鳫
叆
叇
鷣
攼
蝅
饜
憨
厍
历
丅
亜
畱
鵛
刯
頙
亍
悪
鼋
亏
銐
烮
鴷
歼
殥
邷
恐
乀
鵐
剢
憠
泵
碸
戨
砿
碽
酃
砍
礟
戸
劢
剅
郖
襾
頋
顾
匸
垔
酾
弝
墮
鵤
奂
觔
氹
丞
巹
魸
魞
鮘
鱴
弘
酁
憨
弔
隲
陜
阾
険
随
弖
檃
鳋
鲹
鲐
鳊
骕
鳉
鲡
鳔
鲋
鱾
鲯
巯
亇
孒
弞
久
坠
櫽
盁
朶
熃
弫
内
伣
烋
恷
汆
尓
侎
鷡
隹
栠
隻
鵀
犫
雦
俧
佶
仏
俍
侂
仪
餙
刢
侌
郐
贪
怤
午
値
僒
俕
攵
倄
侇
慜
佑
仲
鯈
鯈
倏
仝
俪
嵞
伾
仼
伝
佱
僫
侲
气
侴
欫
佦
仾
僳
亿
伃
伄
刏
欦
偦
仌
燞
倠
剣
倹
倽
怂
剱
剱
仑
贷
貸
柋
钍
针
镓
镪
钩
伅
铱
铳
锿
鶬
舗
頷
颌
聟
翖
伛
伲
僛
仚
仒
倂
勄
偯
旨
鴲
悦
熲
颎
慻
曶
悷
勺
悑
匁
勼
恌
愩
匉
愊
憟
乜
忬
勽
忾
匌
匂
恉
忚
吢
忉
贳
忷
邨
慛
匘
悃
匄
懐
擝
掲
摇
捦
捝
撹
洯
揷
扷
抓
恝
揙
捩
攒
扩
焘
搣
攗
揙
丯
摉
攨
擀
鄻
抜
熬
扏
摮
劧
烲
扸
换
拸
摾
挅
撸
扖
擕
捨
抅
搄
擓
掫
扨
擢
挦
摒
掷
扎
椝
鬶
抝
捰
擉
撾
摙
挞
挊
摅
掳
邑
嗳
剈
呗
唄
叭
劋
噑
唳
嚓
嚔
戢
嘧
呔
叻
嘨
唒
啀
蹝
唖
囇
唔
踭
蹑
踯
唤
噜
呐
唅
啥
吣
昬
吅
獸
嚻
喿
嵒
鼍
叧
鴞
咡
吚
别
嚁
鸮
嚉
咲
哶
嗬
囆
嚩
哒
啮
喍
喨
臀
贀
壂
嫛
繄
叞
験
騿
鳭
戮
屧
屐
屦
慰
彟
肀
鐾
鵈
聎
憵
聮
聨
尹
殹
頣
屝
彐
翋
覠
鶋
帬
刟
邵
欩
羣
巪
已
煕
妀
邔
繤
蓥
荣
茔
藐
荕
繭
蒯
顢
蒄
繤
业
朞
鷬
蜝
歉
惎
莌
鷋
萿
藫
薓
炗
羙
蓺
羑
戁
蘤
莵
蕱
蘓
菞
薭
藒
薫
葻
藢
蘅
蓗
菺
茋
蓖
鷀
菧
蒧
蔵
芅
菺
丗
帯
萓
苿
薲
苧
莞
茡
鄿
藌
荛
鞙
艾
鴱
艽
郑
茧
鷰
羋
蕶
蘦
虁
莤
芋
薽
苈
芌
莀
鄞
薞
蘸
芎
荪
蓩
芕
茤
苐
蕯
茠
茌
莟
芥
蘥
莶
芞
荅
莝
芲
芶
茍
芈
鄀
敾
蕚
藯
茞
荨
苨
并
蘳
鵧
艵
鄷
剏
蘰
蒶
葤
藴
蒓
孳
茲
蔣
葘
蒃
曲
茵
薎
萝
藣
薖
蔐
蓘
荙
萕
藁
蔎
藹
蔁
蒟
崐
剻
峝
崯
崬
凼
嶤
嶌
峯
峈
嵸
峩
岻
嶃
嶚
峀
屵
峏
崕
嶏
峢
嶳
嶥
崅
岋
峞
嵹
雟
嶣
岺
岒
崘
嵛
峆
岞
巗
屻
岹
屺
崫
嶫
嵳
艸
嵏
崮
巚
巄
崪
嵪
峷
嫒
媣
綳
鷥
縰
綟
絋
紁
纒
緖
縯
繍
綇
纒
絻
繦
縆
姅
糺
綶
嬩
厶
槳
糹
妫
幻
婝
凵
绷
媆
绡
戕
绒
辔
煭
姼
娽
嬔
亾
姫
媉
妌
巜
纟
巛
媫
困
圏
黒
畧
鷝
甼
畍
慁
毘
畊
疉
晩
閄
鷐
黱
囗
瞐
膗
釟
鈟
兺
慭
杢
樮
楃
櫣
檤
汩
慂
沝
渁
汢
瀜
渥
湸
尙
氺
爕
糓
圡
殻
垁
鷽
笽
劕
穒
夊
鴟
鷎
翶
鴟
鷎
筇
凩
惥
鰴
鵅
頶
敋
箼
焈
鵚
笜
厸
庆
懯
栥
応
熋
忒
鴪
廾
軕
鵍
郩
瘌
夵
厺
乄
冖
鳾
鸸
玐
鸖
丟
乛
懕
鵶
忈
乁
栥
堕
勈
阝
弜
飞
墬
仴
氽
尒
玍
舎
亽
仐
儵
儵
仜
亇
伈
钡
钆
鵨
仭
屳
顈
払
抣
唫
唕
呙
哬
哐
噛
埾
婜
刄
匞
鵘
剾
槊
勱
菳
莰
葕
蓰
芖
鄚
雈
卌
剙
薅
薥
甍
蕸
屾
縦
緾
丩
兦
囮
鰧
慗
扌
懘
鵳
鴭
頢
鵳
麀
鴯
玊
鴊
忢
頢
仦
倐
亼
蘮
羐
蓏
荮
藅
乢
岀
鸆
鵺
顔
鴍
歒
戅
襃
顪
达
鳼
歨
氵
訁
鴜
稁
亴
譵
譃
逪
竎
齢
蹵
卨
鶮
甗
欳
遥
迥
啇
鶐
奕
戇
鶐
敹
褎
顏
颜
辻
顇
头
鷟
憝
撉
剤
歩
遗
辷
覰
逎
皻
尗
頉
悥
逜
欤
忐
贙
逊
勮
劇
顡
迆
鸗
勴
龒
礱
龏
龔
讋
詪
稾
亭
謡
詗
毫
誢
説
点
謻
訉
訠
誝
讑
詣
讛
乩
謪
謯
迉
暜
鴗
竍
豙
迸
龈
龃
龋
龂
龉
龄
龁
龀
龅
龊
龆
龌
龇
竸
膂
邋
褱
鹸
鹾
齌
郎
﨎
﨏
﨑
﨓
﨔
礼
﨟
蘒
﨡
﨣
﨤
﨧
﨨
﨩


















































































================================================
FILE: main.py
================================================
# -*- coding=utf-8 -*-
# Author: junzew
# Date: 2017 May 27
# Adapted from code written by Alex I. Ramirez @alexram1313 arcompware.com

from pypinyin import lazy_pinyin
import pypinyin
import pydub
from pydub import AudioSegment
from pathlib import Path
import wave
import pyaudio
import _thread
import time
import sys
import os
import requests
import atc
import argparse

# for demo only, please replace with your own API key
Turing_API_key = "64c88489ad7f432591d702ec1334dedc" 
Turing_API_address = "http://www.tuling123.com/openapi/api"

class TextToSpeech:

    CHUNK = 1024
    punctuation = [',', '。','?','!','“','”',';',':','(',")",":",";",",",".","?","!","\"","\'","(",")"]

    def __init__(self):
        pass

    def speak(self, text):
        syllables = lazy_pinyin(text, style=pypinyin.TONE3)
        print(syllables)
        delay = 0
        
        def preprocess(syllables):
            temp = []
            for syllable in syllables:
                for p in TextToSpeech.punctuation:
                    syllable = syllable.replace(p, "")
                if syllable.isdigit():
                    syllable = atc.num2chinese(syllable)
                    new_sounds = lazy_pinyin(syllable, style=pypinyin.TONE3)
                    for e in new_sounds:
                        temp.append(e)
                else:
                    temp.append(syllable)
            return temp

        syllables = preprocess(syllables)
        for syllable in syllables:
            path = "syllables/"+syllable+".wav"
            _thread.start_new_thread(TextToSpeech._play_audio, (path, delay))
            delay += 0.355

    def synthesize(self, text, src, dst):
        """
        Synthesize .wav from text
        src is the folder that contains all syllables .wav files
        dst is the destination folder to save the synthesized file
        """
        print("Synthesizing ...")
        delay = 0
        increment = 355 # milliseconds
        pause = 500 # pause for punctuation
        syllables = lazy_pinyin(text, style=pypinyin.TONE3)

        # initialize to be complete silence, each character takes up ~500ms
        result = AudioSegment.silent(duration=500*len(text))
        for syllable in syllables:
            path = src+syllable+".wav"
            sound_file = Path(path)
            # insert 500 ms silence for punctuation marks
            if syllable in TextToSpeech.punctuation:
                short_silence = AudioSegment.silent(duration=pause)
                result = result.overlay(short_silence, position=delay)
                delay += increment
                continue
            # skip sound file that doesn't exist
            if not sound_file.is_file():
                continue
            segment = AudioSegment.from_wav(path)
            result = result.overlay(segment, position=delay)
            delay += increment

        directory = dst
        if not os.path.exists(directory):
            os.makedirs(directory)

        result.export(directory+"generated.wav", format="wav")
        print("Exported.")

    def _play_audio(path, delay):
        try:
            time.sleep(delay)
            wf = wave.open(path, 'rb')
            p = pyaudio.PyAudio()
            stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                            channels=wf.getnchannels(),
                            rate=wf.getframerate(),
                            output=True)
            
            data = wf.readframes(TextToSpeech.CHUNK)
            
            while data:
                stream.write(data)
                data = wf.readframes(TextToSpeech.CHUNK)
        
            stream.stop_stream()
            stream.close()

            p.terminate()
            return
        except:
            pass

def start_chatting(key, location):
    print("你好!")
    key = Turing_API_key if key is None else key
    location = "北京市中关村" if location is None else location
    while True:
        sentence = input('输入中文:')
        r = requests.post(
            Turing_API_address, 
            json = {
            "key": key,
            "info": sentence, 
            "loc": location, 
            "userid":"1"
            })
        response = r.json()["text"]
        print(response)
        tts.speak(response)

if __name__ == '__main__':
    tts = TextToSpeech()
    
    parser = argparse.ArgumentParser(description="HanTTS: Chinese Text-to-Speech program")
    subparsers = parser.add_subparsers(title="subcommands", help='optional subcommands', dest='cmd')
    
    synthesize_parser = subparsers.add_parser('synthesize', help='synthesize audio from text')
    synthesize_parser.add_argument('--text', help='the text to convert to speech', dest='text')
    synthesize_parser.add_argument('--src', help='source directory of audio library', dest='src')
    synthesize_parser.add_argument('--dst', help='destination directory for generated .wav file', dest='dst')

    chat_parser = subparsers.add_parser('chat', help='chat using Turing Robot API')
    chat_parser.add_argument('--key', help='Turing Robot API key', dest='api_key')
    chat_parser.add_argument('--location', help='your physical location', dest='location')

    args = parser.parse_args()
    if args.cmd == 'synthesize':
        if not args.text:
            synthesize_parser.print_help()
            print('ERROR: Missing argument --text')
            sys.exit(1)
        if not args.src:
            synthesize_parser.print_help()
            print('ERROR: Missing argument --src')
            sys.exit(1)
        if not args.dst:
            synthesize_parser.print_help()
            print('ERROR: Missing argument --dst')
            sys.exit(1)
        tts.synthesize(args.text, args.src, args.dst)
    elif args.cmd == 'chat':
        start_chatting(args.api_key, args.location)
    else:
        while True:
            tts.speak(input('输入中文:'))




================================================
FILE: mapping.json
================================================
{
    "a": [
        "a",
        "ai",
        "an",
        "ang",
        "ao"
    ],
    "b": [
        "ba",
        "bai",
        "ban",
        "bang",
        "bao",
        "bei",
        "ben",
        "beng",
        "bi",
        "bian",
        "biao",
        "bie",
        "bin",
        "bing",
        "bo",
        "bu"
    ],
    "c": [
        "ca",
        "cai",
        "can",
        "cang",
        "cao",
        "ce",
        "cen",
        "ceng",
        "cha",
        "chai",
        "chan",
        "chang",
        "chao",
        "che",
        "chen",
        "cheng",
        "chi",
        "chong",
        "chou",
        "chu",
        "chua",
        "chuai",
        "chuan",
        "chuang",
        "chui",
        "chun",
        "chuo",
        "ci",
        "cong",
        "cou",
        "cu",
        "cuan",
        "cui",
        "cun",
        "cuo"
    ],
    "d": [
        "da",
        "dai",
        "dan",
        "dang",
        "dao",
        "de",
        "dei",
        "den",
        "deng",
        "di",
        "dia",
        "dian",
        "diao",
        "die",
        "ding",
        "diu",
        "dong",
        "dou",
        "du",
        "duan",
        "dui",
        "dun",
        "duo"
    ],
    "e": [
        "e",
        "ei",
        "en",
        "eng",
        "er"
    ],
    "f": [
        "fa",
        "fan",
        "fang",
        "fei",
        "fen",
        "feng",
        "fiao",
        "fo",
        "fou",
        "fu"
    ],
    "g": [
        "ga",
        "gai",
        "gan",
        "gang",
        "gao",
        "ge",
        "gei",
        "gen",
        "geng",
        "gong",
        "gou",
        "gu",
        "gua",
        "guai",
        "guan",
        "guang",
        "gui",
        "gun",
        "guo"
    ],
    "h": [
        "ha",
        "hai",
        "han",
        "hang",
        "hao",
        "he",
        "hei",
        "hen",
        "heng",
        "hm",
        "hng",
        "hong",
        "hou",
        "hu",
        "hua",
        "huai",
        "huan",
        "huang",
        "hui",
        "hun",
        "huo"
    ],
    "j": [
        "ji",
        "jia",
        "jian",
        "jiang",
        "jiao",
        "jie",
        "jin",
        "jing",
        "jiong",
        "jiu",
        "ju",
        "juan",
        "jue",
        "jun"
    ],
    "k": [
        "ka",
        "kai",
        "kan",
        "kang",
        "kao",
        "ke",
        "kei",
        "ken",
        "keng",
        "kong",
        "kou",
        "ku",
        "kua",
        "kuai",
        "kuan",
        "kuang",
        "kui",
        "kun",
        "kuo"
    ],
    "l": [
        "la",
        "lai",
        "lan",
        "lang",
        "lao",
        "le",
        "lei",
        "len",
        "leng",
        "li",
        "lia",
        "lian",
        "liang",
        "liao",
        "lie",
        "lin",
        "ling",
        "liu",
        "lo",
        "long",
        "lou",
        "lu",
        "luan",
        "lun",
        "luo",
        "lv",
        "lve"
    ],
    "m": [
        "m",
        "ma",
        "mai",
        "man",
        "mang",
        "mao",
        "me",
        "mei",
        "men",
        "meng",
        "mi",
        "mian",
        "miao",
        "mie",
        "min",
        "ming",
        "miu",
        "mo",
        "mou",
        "mu"
    ],
    "n": [
        "n",
        "na",
        "nai",
        "nan",
        "nang",
        "nao",
        "ne",
        "nei",
        "nen",
        "neng",
        "ng",
        "ni",
        "nian",
        "niang",
        "niao",
        "nie",
        "nin",
        "ning",
        "niu",
        "nong",
        "nou",
        "nu",
        "nuan",
        "nun",
        "nuo",
        "nv",
        "nve"
    ],
    "o": [
        "o",
        "ou"
    ],
    "p": [
        "pa",
        "pai",
        "pan",
        "pang",
        "pao",
        "pei",
        "pen",
        "peng",
        "pi",
        "pian",
        "piao",
        "pie",
        "pin",
        "ping",
        "po",
        "pou",
        "pu"
    ],
    "q": [
        "qi",
        "qia",
        "qian",
        "qiang",
        "qiao",
        "qie",
        "qin",
        "qing",
        "qiong",
        "qiu",
        "qu",
        "quan",
        "que",
        "qun"
    ],
    "r": [
        "ran",
        "rang",
        "rao",
        "re",
        "ren",
        "reng",
        "ri",
        "rong",
        "rou",
        "ru",
        "rua",
        "ruan",
        "rui",
        "run",
        "ruo"
    ],
    "s": [
        "sa",
        "sai",
        "san",
        "sang",
        "sao",
        "se",
        "sen",
        "seng",
        "sha",
        "shai",
        "shan",
        "shang",
        "shao",
        "she",
        "shei",
        "shen",
        "sheng",
        "shi",
        "shou",
        "shu",
        "shua",
        "shuai",
        "shuan",
        "shuang",
        "shui",
        "shun",
        "shuo",
        "si",
        "song",
        "sou",
        "su",
        "suan",
        "sui",
        "sun",
        "suo"
    ],
    "t": [
        "ta",
        "tai",
        "tan",
        "tang",
        "tao",
        "te",
        "tei",
        "teng",
        "ti",
        "tian",
        "tiao",
        "tie",
        "ting",
        "tong",
        "tou",
        "tu",
        "tuan",
        "tui",
        "tun",
        "tuo"
    ],
    "w": [
        "wa",
        "wai",
        "wan",
        "wang",
        "wei",
        "wen",
        "weng",
        "wo",
        "wu"
    ],
    "x": [
        "xi",
        "xia",
        "xian",
        "xiang",
        "xiao",
        "xie",
        "xin",
        "xing",
        "xiong",
        "xiu",
        "xu",
        "xuan",
        "xue",
        "xun"
    ],
    "y": [
        "ya",
        "yan",
        "yang",
        "yao",
        "ye",
        "yi",
        "yin",
        "ying",
        "yo",
        "yong",
        "you",
        "yu",
        "yuan",
        "yue",
        "yun"
    ],
    "z": [
        "za",
        "zai",
        "zan",
        "zang",
        "zao",
        "ze",
        "zei",
        "zen",
        "zeng",
        "zha",
        "zhai",
        "zhan",
        "zhang",
        "zhao",
        "zhe",
        "zhei",
        "zhen",
        "zheng",
        "zhi",
        "zhong",
        "zhou",
        "zhu",
        "zhua",
        "zhuai",
        "zhuan",
        "zhuang",
        "zhui",
        "zhun",
        "zhuo",
        "zi",
        "zong",
        "zou",
        "zu",
        "zuan",
        "zui",
        "zun",
        "zuo"
    ]
}

================================================
FILE: package.json
================================================
{
  "name": "server",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "start": "node app.js",
    "test": "echo \"Error: no test specified\""
  },
  "author": "junzew",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.17.2",
    "express": "^4.15.3"
  }
}


================================================
FILE: process.py
================================================
from pydub import AudioSegment
from pydub.silence import split_on_silence
import json
from pprint import pprint
from pathlib import Path
import sys
with open('mapping.json') as data_file:    
    data = json.load(data_file)

# keys = sorted(data.keys())
if len(sys.argv) != 2:
	print("usage:")
	print("      python process.py {key}")
	print("to process ./recording/{key}.wav")
	sys.exit(1)

key = sys.argv[1:][0]

syllables = data[key]

path = "./recording/"+key+".wav"

file = Path(path)
if not file.is_file():
	raise Exception(path+" doesn't exist")

sound_file = AudioSegment.from_wav(path)

audio_chunks = split_on_silence(sound_file, 
    # must be silent for at least 300ms
    min_silence_len=300,
    # consider it silent if quieter than -48 dBFS
    silence_thresh=-48
)

flag = False
if len(syllables)*5 != len(audio_chunks):
	flag = True

for i, chunk in enumerate(audio_chunks):
	syllable = syllables[i//5]
	print(syllable)
	j = i % 5
	if j != 4: # 1st, 2nd, 3rd, 4th tone
		out_file = "./pre/"+ syllable + str(j+1)+".wav"
	else: # neutrual tone
		out_file = "./pre/"+ syllable +".wav"


	# out_file = "./pre/"+ str(i)+".wav"
	print("exporting", out_file)
	chunk.export(out_file, format="wav")

print(key, len(audio_chunks))
if flag:
	print(key, "doesn't match expected audio chunks length")
	print("expected:", len(syllables)*5, "actual:", len(audio_chunks))





================================================
FILE: public/index.html
================================================
<!DOCTYPE html>
<html>
<head>
	<title>HanTTS</title>
	<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<script src="https://code.jquery.com/jquery-3.2.1.js"   integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="   crossorigin="anonymous"></script>
<textarea id="input-text"></textarea>
<br>
<button id="bt">Synthesize</button>
<script type="text/javascript">
	$("#bt").click(function() {
		var text = $("#input-text").val();
		$.ajax({
			url: "https://hantts.herokuapp.com/",
			data: JSON.stringify({"text": text}),
			contentType: "application/json",
			type: "POST",
			success: function(data) {
				alert("Synthesis Completed.")
				$("#player").html(data)
			}
		});
	});
</script>
<div id="player"></div>

</body>

</html>


================================================
FILE: public/style.css
================================================
textarea {
  width: 300px;
  height: 200px;
}

================================================
FILE: requirements.txt
================================================
pypinyin
jieba
pydub
pyaudio
requests
argparse


================================================
FILE: script.py
================================================
from pypinyin import pinyin
from unidecode import unidecode
import pypinyin
import re
import json
import collections
import itertools
"""Script to generate list of all valid pinyins"""

chars = [] # store all Chinese characters

with open("characters.txt", "r") as file:
	for line in file:
		try:
			chars.append(line.strip())
		except:
			pass

# map each character to its pinyin
l = list(map(lambda x: pinyin(x, heteronym=True,strict=True,style=pypinyin.NORMAL), chars))
# flatten list
l = list(itertools.chain(*list(itertools.chain(*l))))
# decode unicode into ascii
l = list(map(unidecode, l))
# remove duplicates
syllables = list(set(l))
# filter invalid pinyin
r = re.compile("[a-z]+")
syllables = list(filter(r.match, sorted(syllables)))

d = {}
# write all pinyin to a file
f = open("./lazy_pinyin.txt","w")
for i in syllables:
	start = i[0]
	if d.get(start) == None:
		d[start] = [i]
	else:
		d[start].append(i)
	f.write(i)
	f.write("\n")
	# print(i)
f.close()

od = collections.OrderedDict(sorted(d.items()))

# print(od)

# write JSON representation
f = open("./mapping.json","w")
# print(json.dumps(od, indent=4))
f.write(json.dumps(od, indent=4))
f.close()

print(len(syllables))

================================================
FILE: to_read.txt
================================================
a
['a1', 'a2', 'a3', 'a4', 'a']
['ai1', 'ai2', 'ai3', 'ai4', 'ai']
['an1', 'an2', 'an3', 'an4', 'an']
['ang1', 'ang2', 'ang3', 'ang4', 'ang']
['ao1', 'ao2', 'ao3', 'ao4', 'ao']
b
['ba1', 'ba2', 'ba3', 'ba4', 'ba']
['bai1', 'bai2', 'bai3', 'bai4', 'bai']
['ban1', 'ban2', 'ban3', 'ban4', 'ban']
['bang1', 'bang2', 'bang3', 'bang4', 'bang']
['bao1', 'bao2', 'bao3', 'bao4', 'bao']
['bei1', 'bei2', 'bei3', 'bei4', 'bei']
['ben1', 'ben2', 'ben3', 'ben4', 'ben']
['beng1', 'beng2', 'beng3', 'beng4', 'beng']
['bi1', 'bi2', 'bi3', 'bi4', 'bi']
['bian1', 'bian2', 'bian3', 'bian4', 'bian']
['biao1', 'biao2', 'biao3', 'biao4', 'biao']
['bie1', 'bie2', 'bie3', 'bie4', 'bie']
['bin1', 'bin2', 'bin3', 'bin4', 'bin']
['bing1', 'bing2', 'bing3', 'bing4', 'bing']
['bo1', 'bo2', 'bo3', 'bo4', 'bo']
['bu1', 'bu2', 'bu3', 'bu4', 'bu']
c
['ca1', 'ca2', 'ca3', 'ca4', 'ca']
['cai1', 'cai2', 'cai3', 'cai4', 'cai']
['can1', 'can2', 'can3', 'can4', 'can']
['cang1', 'cang2', 'cang3', 'cang4', 'cang']
['cao1', 'cao2', 'cao3', 'cao4', 'cao']
['ce1', 'ce2', 'ce3', 'ce4', 'ce']
['cen1', 'cen2', 'cen3', 'cen4', 'cen']
['ceng1', 'ceng2', 'ceng3', 'ceng4', 'ceng']
['cha1', 'cha2', 'cha3', 'cha4', 'cha']
['chai1', 'chai2', 'chai3', 'chai4', 'chai']
['chan1', 'chan2', 'chan3', 'chan4', 'chan']
['chang1', 'chang2', 'chang3', 'chang4', 'chang']
['chao1', 'chao2', 'chao3', 'chao4', 'chao']
['che1', 'che2', 'che3', 'che4', 'che']
['chen1', 'chen2', 'chen3', 'chen4', 'chen']
['cheng1', 'cheng2', 'cheng3', 'cheng4', 'cheng']
['chi1', 'chi2', 'chi3', 'chi4', 'chi']
['chong1', 'chong2', 'chong3', 'chong4', 'chong']
['chou1', 'chou2', 'chou3', 'chou4', 'chou']
['chu1', 'chu2', 'chu3', 'chu4', 'chu']
['chua1', 'chua2', 'chua3', 'chua4', 'chua']
['chuai1', 'chuai2', 'chuai3', 'chuai4', 'chuai']
['chuan1', 'chuan2', 'chuan3', 'chuan4', 'chuan']
['chuang1', 'chuang2', 'chuang3', 'chuang4', 'chuang']
['chui1', 'chui2', 'chui3', 'chui4', 'chui']
['chun1', 'chun2', 'chun3', 'chun4', 'chun']
['chuo1', 'chuo2', 'chuo3', 'chuo4', 'chuo']
['ci1', 'ci2', 'ci3', 'ci4', 'ci']
['cong1', 'cong2', 'cong3', 'cong4', 'cong']
['cou1', 'cou2', 'cou3', 'cou4', 'cou']
['cu1', 'cu2', 'cu3', 'cu4', 'cu']
['cuan1', 'cuan2', 'cuan3', 'cuan4', 'cuan']
['cui1', 'cui2', 'cui3', 'cui4', 'cui']
['cun1', 'cun2', 'cun3', 'cun4', 'cun']
['cuo1', 'cuo2', 'cuo3', 'cuo4', 'cuo']
d
['da1', 'da2', 'da3', 'da4', 'da']
['dai1', 'dai2', 'dai3', 'dai4', 'dai']
['dan1', 'dan2', 'dan3', 'dan4', 'dan']
['dang1', 'dang2', 'dang3', 'dang4', 'dang']
['dao1', 'dao2', 'dao3', 'dao4', 'dao']
['de1', 'de2', 'de3', 'de4', 'de']
['den1', 'den2', 'den3', 'den4', 'den']
['deng1', 'deng2', 'deng3', 'deng4', 'deng']
['di1', 'di2', 'di3', 'di4', 'di']
['dian1', 'dian2', 'dian3', 'dian4', 'dian']
['diao1', 'diao2', 'diao3', 'diao4', 'diao']
['die1', 'die2', 'die3', 'die4', 'die']
['ding1', 'ding2', 'ding3', 'ding4', 'ding']
['diu1', 'diu2', 'diu3', 'diu4', 'diu']
['dong1', 'dong2', 'dong3', 'dong4', 'dong']
['dou1', 'dou2', 'dou3', 'dou4', 'dou']
['du1', 'du2', 'du3', 'du4', 'du']
['duan1', 'duan2', 'duan3', 'duan4', 'duan']
['dui1', 'dui2', 'dui3', 'dui4', 'dui']
['dun1', 'dun2', 'dun3', 'dun4', 'dun']
['duo1', 'duo2', 'duo3', 'duo4', 'duo']
e
['e1', 'e2', 'e3', 'e4', 'e']
['ei1', 'ei2', 'ei3', 'ei4', 'ei']
['en1', 'en2', 'en3', 'en4', 'en']
['eng1', 'eng2', 'eng3', 'eng4', 'eng']
['er1', 'er2', 'er3', 'er4', 'er']
f
['fa1', 'fa2', 'fa3', 'fa4', 'fa']
['fan1', 'fan2', 'fan3', 'fan4', 'fan']
['fang1', 'fang2', 'fang3', 'fang4', 'fang']
['fei1', 'fei2', 'fei3', 'fei4', 'fei']
['fen1', 'fen2', 'fen3', 'fen4', 'fen']
['feng1', 'feng2', 'feng3', 'feng4', 'feng']
['fiao1', 'fiao2', 'fiao3', 'fiao4', 'fiao']
['fo1', 'fo2', 'fo3', 'fo4', 'fo']
['fou1', 'fou2', 'fou3', 'fou4', 'fou']
['fu1', 'fu2', 'fu3', 'fu4', 'fu']
g
['ga1', 'ga2', 'ga3', 'ga4', 'ga']
['gai1', 'gai2', 'gai3', 'gai4', 'gai']
['gan1', 'gan2', 'gan3', 'gan4', 'gan']
['gang1', 'gang2', 'gang3', 'gang4', 'gang']
['gao1', 'gao2', 'gao3', 'gao4', 'gao']
['ge1', 'ge2', 'ge3', 'ge4', 'ge']
['gei1', 'gei2', 'gei3', 'gei4', 'gei']
['gen1', 'gen2', 'gen3', 'gen4', 'gen']
['geng1', 'geng2', 'geng3', 'geng4', 'geng']
['gong1', 'gong2', 'gong3', 'gong4', 'gong']
['gou1', 'gou2', 'gou3', 'gou4', 'gou']
['gu1', 'gu2', 'gu3', 'gu4', 'gu']
['gua1', 'gua2', 'gua3', 'gua4', 'gua']
['guai1', 'guai2', 'guai3', 'guai4', 'guai']
['guan1', 'guan2', 'guan3', 'guan4', 'guan']
['guang1', 'guang2', 'guang3', 'guang4', 'guang']
['gui1', 'gui2', 'gui3', 'gui4', 'gui']
['gun1', 'gun2', 'gun3', 'gun4', 'gun']
['guo1', 'guo2', 'guo3', 'guo4', 'guo']
h
['ha1', 'ha2', 'ha3', 'ha4', 'ha']
['hai1', 'hai2', 'hai3', 'hai4', 'hai']
['han1', 'han2', 'han3', 'han4', 'han']
['hang1', 'hang2', 'hang3', 'hang4', 'hang']
['hao1', 'hao2', 'hao3', 'hao4', 'hao']
['he1', 'he2', 'he3', 'he4', 'he']
['hei1', 'hei2', 'hei3', 'hei4', 'hei']
['hen1', 'hen2', 'hen3', 'hen4', 'hen']
['heng1', 'heng2', 'heng3', 'heng4', 'heng']
['hm1', 'hm2', 'hm3', 'hm4', 'hm']
['hong1', 'hong2', 'hong3', 'hong4', 'hong']
['hou1', 'hou2', 'hou3', 'hou4', 'hou']
['hu1', 'hu2', 'hu3', 'hu4', 'hu']
['hua1', 'hua2', 'hua3', 'hua4', 'hua']
['huai1', 'huai2', 'huai3', 'huai4', 'huai']
['huan1', 'huan2', 'huan3', 'huan4', 'huan']
['huang1', 'huang2', 'huang3', 'huang4', 'huang']
['hui1', 'hui2', 'hui3', 'hui4', 'hui']
['hun1', 'hun2', 'hun3', 'hun4', 'hun']
['huo1', 'huo2', 'huo3', 'huo4', 'huo']
j
['ji1', 'ji2', 'ji3', 'ji4', 'ji']
['jia1', 'jia2', 'jia3', 'jia4', 'jia']
['jian1', 'jian2', 'jian3', 'jian4', 'jian']
['jiang1', 'jiang2', 'jiang3', 'jiang4', 'jiang']
['jiao1', 'jiao2', 'jiao3', 'jiao4', 'jiao']
['jie1', 'jie2', 'jie3', 'jie4', 'jie']
['jin1', 'jin2', 'jin3', 'jin4', 'jin']
['jing1', 'jing2', 'jing3', 'jing4', 'jing']
['jiong1', 'jiong2', 'jiong3', 'jiong4', 'jiong']
['jiu1', 'jiu2', 'jiu3', 'jiu4', 'jiu']
['ju1', 'ju2', 'ju3', 'ju4', 'ju']
['juan1', 'juan2', 'juan3', 'juan4', 'juan']
['jue1', 'jue2', 'jue3', 'jue4', 'jue']
['jun1', 'jun2', 'jun3', 'jun4', 'jun']
k
['ka1', 'ka2', 'ka3', 'ka4', 'ka']
['kai1', 'kai2', 'kai3', 'kai4', 'kai']
['kan1', 'kan2', 'kan3', 'kan4', 'kan']
['kang1', 'kang2', 'kang3', 'kang4', 'kang']
['kao1', 'kao2', 'kao3', 'kao4', 'kao']
['ke1', 'ke2', 'ke3', 'ke4', 'ke']
['ken1', 'ken2', 'ken3', 'ken4', 'ken']
['keng1', 'keng2', 'keng3', 'keng4', 'keng']
['kong1', 'kong2', 'kong3', 'kong4', 'kong']
['kou1', 'kou2', 'kou3', 'kou4', 'kou']
['ku1', 'ku2', 'ku3', 'ku4', 'ku']
['kua1', 'kua2', 'kua3', 'kua4', 'kua']
['kuai1', 'kuai2', 'kuai3', 'kuai4', 'kuai']
['kuan1', 'kuan2', 'kuan3', 'kuan4', 'kuan']
['kuang1', 'kuang2', 'kuang3', 'kuang4', 'kuang']
['kui1', 'kui2', 'kui3', 'kui4', 'kui']
['kun1', 'kun2', 'kun3', 'kun4', 'kun']
['kuo1', 'kuo2', 'kuo3', 'kuo4', 'kuo']
l
['la1', 'la2', 'la3', 'la4', 'la']
['lai1', 'lai2', 'lai3', 'lai4', 'lai']
['lan1', 'lan2', 'lan3', 'lan4', 'lan']
['lang1', 'lang2', 'lang3', 'lang4', 'lang']
['lao1', 'lao2', 'lao3', 'lao4', 'lao']
['le1', 'le2', 'le3', 'le4', 'le']
['lei1', 'lei2', 'lei3', 'lei4', 'lei']
['leng1', 'leng2', 'leng3', 'leng4', 'leng']
['li1', 'li2', 'li3', 'li4', 'li']
['lia1', 'lia2', 'lia3', 'lia4', 'lia']
['lian1', 'lian2', 'lian3', 'lian4', 'lian']
['liang1', 'liang2', 'liang3', 'liang4', 'liang']
['liao1', 'liao2', 'liao3', 'liao4', 'liao']
['lie1', 'lie2', 'lie3', 'lie4', 'lie']
['lin1', 'lin2', 'lin3', 'lin4', 'lin']
['ling1', 'ling2', 'ling3', 'ling4', 'ling']
['liu1', 'liu2', 'liu3', 'liu4', 'liu']
['lo1', 'lo2', 'lo3', 'lo4', 'lo']
['long1', 'long2', 'long3', 'long4', 'long']
['lou1', 'lou2', 'lou3', 'lou4', 'lou']
['lu1', 'lu2', 'lu3', 'lu4', 'lu']
['luan1', 'luan2', 'luan3', 'luan4', 'luan']
['lun1', 'lun2', 'lun3', 'lun4', 'lun']
['luo1', 'luo2', 'luo3', 'luo4', 'luo']
['lv1', 'lv2', 'lv3', 'lv4', 'lv']
['lve1', 'lve2', 'lve3', 'lve4', 'lve']
m
['m1', 'm2', 'm3', 'm4', 'm']
['ma1', 'ma2', 'ma3', 'ma4', 'ma']
['mai1', 'mai2', 'mai3', 'mai4', 'mai']
['man1', 'man2', 'man3', 'man4', 'man']
['mang1', 'mang2', 'mang3', 'mang4', 'mang']
['mao1', 'mao2', 'mao3', 'mao4', 'mao']
['me1', 'me2', 'me3', 'me4', 'me']
['mei1', 'mei2', 'mei3', 'mei4', 'mei']
['men1', 'men2', 'men3', 'men4', 'men']
['meng1', 'meng2', 'meng3', 'meng4', 'meng']
['mi1', 'mi2', 'mi3', 'mi4', 'mi']
['mian1', 'mian2', 'mian3', 'mian4', 'mian']
['miao1', 'miao2', 'miao3', 'miao4', 'miao']
['mie1', 'mie2', 'mie3', 'mie4', 'mie']
['min1', 'min2', 'min3', 'min4', 'min']
['ming1', 'ming2', 'ming3', 'ming4', 'ming']
['miu1', 'miu2', 'miu3', 'miu4', 'miu']
['mo1', 'mo2', 'mo3', 'mo4', 'mo']
['mou1', 'mou2', 'mou3', 'mou4', 'mou']
['mu1', 'mu2', 'mu3', 'mu4', 'mu']
n
['n1', 'n2', 'n3', 'n4', 'n']
['na1', 'na2', 'na3', 'na4', 'na']
['nai1', 'nai2', 'nai3', 'nai4', 'nai']
['nan1', 'nan2', 'nan3', 'nan4', 'nan']
['nang1', 'nang2', 'nang3', 'nang4', 'nang']
['nao1', 'nao2', 'nao3', 'nao4', 'nao']
['ne1', 'ne2', 'ne3', 'ne4', 'ne']
['nei1', 'nei2', 'nei3', 'nei4', 'nei']
['nen1', 'nen2', 'nen3', 'nen4', 'nen']
['neng1', 'neng2', 'neng3', 'neng4', 'neng']
['ni1', 'ni2', 'ni3', 'ni4', 'ni']
['nian1', 'nian2', 'nian3', 'nian4', 'nian']
['niang1', 'niang2', 'niang3', 'niang4', 'niang']
['niao1', 'niao2', 'niao3', 'niao4', 'niao']
['nie1', 'nie2', 'nie3', 'nie4', 'nie']
['nin1', 'nin2', 'nin3', 'nin4', 'nin']
['ning1', 'ning2', 'ning3', 'ning4', 'ning']
['niu1', 'niu2', 'niu3', 'niu4', 'niu']
['nong1', 'nong2', 'nong3', 'nong4', 'nong']
['nou1', 'nou2', 'nou3', 'nou4', 'nou']
['nu1', 'nu2', 'nu3', 'nu4', 'nu']
['nuan1', 'nuan2', 'nuan3', 'nuan4', 'nuan']
['nun1', 'nun2', 'nun3', 'nun4', 'nun']
['nuo1', 'nuo2', 'nuo3', 'nuo4', 'nuo']
['nv1', 'nv2', 'nv3', 'nv4', 'nv']
['nve1', 'nve2', 'nve3', 'nve4', 'nve']
o
['o1', 'o2', 'o3', 'o4', 'o']
['ou1', 'ou2', 'ou3', 'ou4', 'ou']
p
['pa1', 'pa2', 'pa3', 'pa4', 'pa']
['pai1', 'pai2', 'pai3', 'pai4', 'pai']
['pan1', 'pan2', 'pan3', 'pan4', 'pan']
['pang1', 'pang2', 'pang3', 'pang4', 'pang']
['pao1', 'pao2', 'pao3', 'pao4', 'pao']
['pei1', 'pei2', 'pei3', 'pei4', 'pei']
['pen1', 'pen2', 'pen3', 'pen4', 'pen']
['peng1', 'peng2', 'peng3', 'peng4', 'peng']
['pi1', 'pi2', 'pi3', 'pi4', 'pi']
['pian1', 'pian2', 'pian3', 'pian4', 'pian']
['piao1', 'piao2', 'piao3', 'piao4', 'piao']
['pie1', 'pie2', 'pie3', 'pie4', 'pie']
['pin1', 'pin2', 'pin3', 'pin4', 'pin']
['ping1', 'ping2', 'ping3', 'ping4', 'ping']
['po1', 'po2', 'po3', 'po4', 'po']
['pou1', 'pou2', 'pou3', 'pou4', 'pou']
['pu1', 'pu2', 'pu3', 'pu4', 'pu']
q
['qi1', 'qi2', 'qi3', 'qi4', 'qi']
['qia1', 'qia2', 'qia3', 'qia4', 'qia']
['qian1', 'qian2', 'qian3', 'qian4', 'qian']
['qiang1', 'qiang2', 'qiang3', 'qiang4', 'qiang']
['qiao1', 'qiao2', 'qiao3', 'qiao4', 'qiao']
['qie1', 'qie2', 'qie3', 'qie4', 'qie']
['qin1', 'qin2', 'qin3', 'qin4', 'qin']
['qing1', 'qing2', 'qing3', 'qing4', 'qing']
['qiong1', 'qiong2', 'qiong3', 'qiong4', 'qiong']
['qiu1', 'qiu2', 'qiu3', 'qiu4', 'qiu']
['qu1', 'qu2', 'qu3', 'qu4', 'qu']
['quan1', 'quan2', 'quan3', 'quan4', 'quan']
['que1', 'que2', 'que3', 'que4', 'que']
['qun1', 'qun2', 'qun3', 'qun4', 'qun']
r
['ran1', 'ran2', 'ran3', 'ran4', 'ran']
['rang1', 'rang2', 'rang3', 'rang4', 'rang']
['rao1', 'rao2', 'rao3', 'rao4', 'rao']
['re1', 're2', 're3', 're4', 're']
['ren1', 'ren2', 'ren3', 'ren4', 'ren']
['reng1', 'reng2', 'reng3', 'reng4', 'reng']
['ri1', 'ri2', 'ri3', 'ri4', 'ri']
['rong1', 'rong2', 'rong3', 'rong4', 'rong']
['rou1', 'rou2', 'rou3', 'rou4', 'rou']
['ru1', 'ru2', 'ru3', 'ru4', 'ru']
['rua1', 'rua2', 'rua3', 'rua4', 'rua']
['ruan1', 'ruan2', 'ruan3', 'ruan4', 'ruan']
['rui1', 'rui2', 'rui3', 'rui4', 'rui']
['run1', 'run2', 'run3', 'run4', 'run']
['ruo1', 'ruo2', 'ruo3', 'ruo4', 'ruo']
s
['sa1', 'sa2', 'sa3', 'sa4', 'sa']
['sai1', 'sai2', 'sai3', 'sai4', 'sai']
['san1', 'san2', 'san3', 'san4', 'san']
['sang1', 'sang2', 'sang3', 'sang4', 'sang']
['sao1', 'sao2', 'sao3', 'sao4', 'sao']
['se1', 'se2', 'se3', 'se4', 'se']
['sen1', 'sen2', 'sen3', 'sen4', 'sen']
['seng1', 'seng2', 'seng3', 'seng4', 'seng']
['sha1', 'sha2', 'sha3', 'sha4', 'sha']
['shai1', 'shai2', 'shai3', 'shai4', 'shai']
['shan1', 'shan2', 'shan3', 'shan4', 'shan']
['shang1', 'shang2', 'shang3', 'shang4', 'shang']
['shao1', 'shao2', 'shao3', 'shao4', 'shao']
['she1', 'she2', 'she3', 'she4', 'she']
['shei1', 'shei2', 'shei3', 'shei4', 'shei']
['shen1', 'shen2', 'shen3', 'shen4', 'shen']
['sheng1', 'sheng2', 'sheng3', 'sheng4', 'sheng']
['shi1', 'shi2', 'shi3', 'shi4', 'shi']
['shou1', 'shou2', 'shou3', 'shou4', 'shou']
['shu1', 'shu2', 'shu3', 'shu4', 'shu']
['shua1', 'shua2', 'shua3', 'shua4', 'shua']
['shuai1', 'shuai2', 'shuai3', 'shuai4', 'shuai']
['shuan1', 'shuan2', 'shuan3', 'shuan4', 'shuan']
['shuang1', 'shuang2', 'shuang3', 'shuang4', 'shuang']
['shui1', 'shui2', 'shui3', 'shui4', 'shui']
['shun1', 'shun2', 'shun3', 'shun4', 'shun']
['shuo1', 'shuo2', 'shuo3', 'shuo4', 'shuo']
['si1', 'si2', 'si3', 'si4', 'si']
['song1', 'song2', 'song3', 'song4', 'song']
['sou1', 'sou2', 'sou3', 'sou4', 'sou']
['su1', 'su2', 'su3', 'su4', 'su']
['suan1', 'suan2', 'suan3', 'suan4', 'suan']
['sui1', 'sui2', 'sui3', 'sui4', 'sui']
['sun1', 'sun2', 'sun3', 'sun4', 'sun']
['suo1', 'suo2', 'suo3', 'suo4', 'suo']
t
['ta1', 'ta2', 'ta3', 'ta4', 'ta']
['tai1', 'tai2', 'tai3', 'tai4', 'tai']
['tan1', 'tan2', 'tan3', 'tan4', 'tan']
['tang1', 'tang2', 'tang3', 'tang4', 'tang']
['tao1', 'tao2', 'tao3', 'tao4', 'tao']
['te1', 'te2', 'te3', 'te4', 'te']
['teng1', 'teng2', 'teng3', 'teng4', 'teng']
['ti1', 'ti2', 'ti3', 'ti4', 'ti']
['tian1', 'tian2', 'tian3', 'tian4', 'tian']
['tiao1', 'tiao2', 'tiao3', 'tiao4', 'tiao']
['tie1', 'tie2', 'tie3', 'tie4', 'tie']
['ting1', 'ting2', 'ting3', 'ting4', 'ting']
['tong1', 'tong2', 'tong3', 'tong4', 'tong']
['tou1', 'tou2', 'tou3', 'tou4', 'tou']
['tu1', 'tu2', 'tu3', 'tu4', 'tu']
['tuan1', 'tuan2', 'tuan3', 'tuan4', 'tuan']
['tui1', 'tui2', 'tui3', 'tui4', 'tui']
['tun1', 'tun2', 'tun3', 'tun4', 'tun']
['tuo1', 'tuo2', 'tuo3', 'tuo4', 'tuo']
w
['wa1', 'wa2', 'wa3', 'wa4', 'wa']
['wai1', 'wai2', 'wai3', 'wai4', 'wai']
['wan1', 'wan2', 'wan3', 'wan4', 'wan']
['wang1', 'wang2', 'wang3', 'wang4', 'wang']
['wei1', 'wei2', 'wei3', 'wei4', 'wei']
['wen1', 'wen2', 'wen3', 'wen4', 'wen']
['weng1', 'weng2', 'weng3', 'weng4', 'weng']
['wo1', 'wo2', 'wo3', 'wo4', 'wo']
['wu1', 'wu2', 'wu3', 'wu4', 'wu']
x
['xi1', 'xi2', 'xi3', 'xi4', 'xi']
['xia1', 'xia2', 'xia3', 'xia4', 'xia']
['xian1', 'xian2', 'xian3', 'xian4', 'xian']
['xiang1', 'xiang2', 'xiang3', 'xiang4', 'xiang']
['xiao1', 'xiao2', 'xiao3', 'xiao4', 'xiao']
['xie1', 'xie2', 'xie3', 'xie4', 'xie']
['xin1', 'xin2', 'xin3', 'xin4', 'xin']
['xing1', 'xing2', 'xing3', 'xing4', 'xing']
['xiong1', 'xiong2', 'xiong3', 'xiong4', 'xiong']
['xiu1', 'xiu2', 'xiu3', 'xiu4', 'xiu']
['xu1', 'xu2', 'xu3', 'xu4', 'xu']
['xuan1', 'xuan2', 'xuan3', 'xuan4', 'xuan']
['xue1', 'xue2', 'xue3', 'xue4', 'xue']
['xun1', 'xun2', 'xun3', 'xun4', 'xun']
y
['ya1', 'ya2', 'ya3', 'ya4', 'ya']
['yan1', 'yan2', 'yan3', 'yan4', 'yan']
['yang1', 'yang2', 'yang3', 'yang4', 'yang']
['yao1', 'yao2', 'yao3', 'yao4', 'yao']
['ye1', 'ye2', 'ye3', 'ye4', 'ye']
['yi1', 'yi2', 'yi3', 'yi4', 'yi']
['yin1', 'yin2', 'yin3', 'yin4', 'yin']
['ying1', 'ying2', 'ying3', 'ying4', 'ying']
['yo1', 'yo2', 'yo3', 'yo4', 'yo']
['yong1', 'yong2', 'yong3', 'yong4', 'yong']
['you1', 'you2', 'you3', 'you4', 'you']
['yu1', 'yu2', 'yu3', 'yu4', 'yu']
['yuan1', 'yuan2', 'yuan3', 'yuan4', 'yuan']
['yue1', 'yue2', 'yue3', 'yue4', 'yue']
['yun1', 'yun2', 'yun3', 'yun4', 'yun']
z
['za1', 'za2', 'za3', 'za4', 'za']
['zai1', 'zai2', 'zai3', 'zai4', 'zai']
['zan1', 'zan2', 'zan3', 'zan4', 'zan']
['zang1', 'zang2', 'zang3', 'zang4', 'zang']
['zao1', 'zao2', 'zao3', 'zao4', 'zao']
['ze1', 'ze2', 'ze3', 'ze4', 'ze']
['zei1', 'zei2', 'zei3', 'zei4', 'zei']
['zen1', 'zen2', 'zen3', 'zen4', 'zen']
['zeng1', 'zeng2', 'zeng3', 'zeng4', 'zeng']
['zha1', 'zha2', 'zha3', 'zha4', 'zha']
['zhai1', 'zhai2', 'zhai3', 'zhai4', 'zhai']
['zhan1', 'zhan2', 'zhan3', 'zhan4', 'zhan']
['zhang1', 'zhang2', 'zhang3', 'zhang4', 'zhang']
['zhao1', 'zhao2', 'zhao3', 'zhao4', 'zhao']
['zhe1', 'zhe2', 'zhe3', 'zhe4', 'zhe']
['zhen1', 'zhen2', 'zhen3', 'zhen4', 'zhen']
['zheng1', 'zheng2', 'zheng3', 'zheng4', 'zheng']
['zhi1', 'zhi2', 'zhi3', 'zhi4', 'zhi']
['zhong1', 'zhong2', 'zhong3', 'zhong4', 'zhong']
['zhou1', 'zhou2', 'zhou3', 'zhou4', 'zhou']
['zhu1', 'zhu2', 'zhu3', 'zhu4', 'zhu']
['zhua1', 'zhua2', 'zhua3', 'zhua4', 'zhua']
['zhuai1', 'zhuai2', 'zhuai3', 'zhuai4', 'zhuai']
['zhuan1', 'zhuan2', 'zhuan3', 'zhuan4', 'zhuan']
['zhuang1', 'zhuang2', 'zhuang3', 'zhuang4', 'zhuang']
['zhui1', 'zhui2', 'zhui3', 'zhui4', 'zhui']
['zhun1', 'zhun2', 'zhun3', 'zhun4', 'zhun']
['zhuo1', 'zhuo2', 'zhuo3', 'zhuo4', 'zhuo']
['zi1', 'zi2', 'zi3', 'zi4', 'zi']
['zong1', 'zong2', 'zong3', 'zong4', 'zong']
['zou1', 'zou2', 'zou3', 'zou4', 'zou']
['zu1', 'zu2', 'zu3', 'zu4', 'zu']
['zuan1', 'zuan2', 'zuan3', 'zuan4', 'zuan']
['zui1', 'zui2', 'zui3', 'zui4', 'zui']
['zun1', 'zun2', 'zun3', 'zun4', 'zun']
['zuo1', 'zuo2', 'zuo3', 'zuo4', 'zuo']
Download .txt
gitextract_y6ircjdz/

├── .gitignore
├── .travis.yml
├── Aptfile
├── LICENSE
├── Procfile
├── README.md
├── README.zh.md
├── app.js
├── atc.py
├── characters.txt
├── main.py
├── mapping.json
├── package.json
├── process.py
├── public/
│   ├── index.html
│   └── style.css
├── requirements.txt
├── script.py
└── to_read.txt
Download .txt
SYMBOL INDEX (7 symbols across 2 files)

FILE: atc.py
  function num2chinese (line 60) | def num2chinese(num, big=False, simp=True, o=False, twoalt=False):

FILE: main.py
  class TextToSpeech (line 25) | class TextToSpeech:
    method __init__ (line 30) | def __init__(self):
    method speak (line 33) | def speak(self, text):
    method synthesize (line 58) | def synthesize(self, text, src, dst):
    method _play_audio (line 95) | def _play_audio(path, delay):
  function start_chatting (line 119) | def start_chatting(key, location):
Condensed preview — 19 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (166K chars).
[
  {
    "path": ".gitignore",
    "chars": 14,
    "preview": ".DS_Store\n.wav"
  },
  {
    "path": ".travis.yml",
    "chars": 405,
    "preview": "matrix:\n  include:\n    - language: python\n      python: 3.4\n      before_install:\n        - sudo apt-get update\n        "
  },
  {
    "path": "Aptfile",
    "chars": 52,
    "preview": "libjack-jackd2-dev \nportaudio19-dev\npython3-pyaudio\n"
  },
  {
    "path": "LICENSE",
    "chars": 1065,
    "preview": "MIT License\n\nCopyright (c) 2017 Junze Wu\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\no"
  },
  {
    "path": "Procfile",
    "chars": 17,
    "preview": "web: node app.js\n"
  },
  {
    "path": "README.md",
    "chars": 2645,
    "preview": "# HanTTS [![Build Status](https://travis-ci.org/junzew/HanTTS.svg?branch=master)](https://travis-ci.org/junzew/HanTTS)\n\n"
  },
  {
    "path": "README.zh.md",
    "chars": 1258,
    "preview": "# HanTTS [![Build Status](https://travis-ci.org/junzew/HanTTS.svg?branch=master)](https://travis-ci.org/junzew/HanTTS)\n\n"
  },
  {
    "path": "app.js",
    "chars": 1257,
    "preview": "const express = require('express')\nvar bodyParser = require('body-parser');\nconst spawn = require('child_process').spawn"
  },
  {
    "path": "atc.py",
    "chars": 4375,
    "preview": "# # -*- coding=utf-8 -*-\n# digit=['零','一','二','三','四','五','六','七','八','九']\n# unit=['零','十','百','千','万','亿']\n# def arabic"
  },
  {
    "path": "characters.txt",
    "chars": 46705,
    "preview": "日\n曰\n昌\n昍\n晶\n晿\n曑\n曡\n曐\n曟\n覸\n焸\n鷼\n暒\n暥\n暘\n晘\n晹\n暍\n曝\n暻\n明\n冐\n暝\n曖\n暧\n盟\n覵\n焽\n晭\n鷳\n猒\n曌\n暈\n暉\n晕\n晖\n暖\n琞\n晍\n勗\n暩\n暚\n昷\n冒\n晛\n昖\n暡\n顕\n晜\n昐\n杲\n晽\n鷴\n晰\n时\n昩\n暐\n暕\n鄤\n"
  },
  {
    "path": "main.py",
    "chars": 5910,
    "preview": "# -*- coding=utf-8 -*-\n# Author: junzew\n# Date: 2017 May 27\n# Adapted from code written by Alex I. Ramirez @alexram1313 "
  },
  {
    "path": "mapping.json",
    "chars": 6769,
    "preview": "{\n    \"a\": [\n        \"a\",\n        \"ai\",\n        \"an\",\n        \"ang\",\n        \"ao\"\n    ],\n    \"b\": [\n        \"ba\",\n      "
  },
  {
    "path": "package.json",
    "chars": 304,
    "preview": "{\n  \"name\": \"server\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"app.js\",\n  \"scripts\": {\n    \"start\": \"node a"
  },
  {
    "path": "process.py",
    "chars": 1375,
    "preview": "from pydub import AudioSegment\nfrom pydub.silence import split_on_silence\nimport json\nfrom pprint import pprint\nfrom pat"
  },
  {
    "path": "public/index.html",
    "chars": 764,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n\t<title>HanTTS</title>\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">\n</head>\n<"
  },
  {
    "path": "public/style.css",
    "chars": 45,
    "preview": "textarea {\n  width: 300px;\n  height: 200px;\n}"
  },
  {
    "path": "requirements.txt",
    "chars": 47,
    "preview": "pypinyin\njieba\npydub\npyaudio\nrequests\nargparse\n"
  },
  {
    "path": "script.py",
    "chars": 1192,
    "preview": "from pypinyin import pinyin\nfrom unidecode import unidecode\nimport pypinyin\nimport re\nimport json\nimport collections\nimp"
  },
  {
    "path": "to_read.txt",
    "chars": 16940,
    "preview": "a\n['a1', 'a2', 'a3', 'a4', 'a']\n['ai1', 'ai2', 'ai3', 'ai4', 'ai']\n['an1', 'an2', 'an3', 'an4', 'an']\n['ang1', 'ang2', '"
  }
]

About this extraction

This page contains the full source code of the junzew/HanTTS GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 19 files (89.0 KB), approximately 85.1k tokens, and a symbol index with 7 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!