summaryrefslogtreecommitdiffstats
path: root/i18npool/source/textconversion
diff options
context:
space:
mode:
Diffstat (limited to 'i18npool/source/textconversion')
-rw-r--r--i18npool/source/textconversion/data/hhc_char.dic559
-rw-r--r--i18npool/source/textconversion/data/stc_char.dic2834
-rw-r--r--i18npool/source/textconversion/data/stc_word.dic1150
-rw-r--r--i18npool/source/textconversion/genconv_dict.cxx473
-rw-r--r--i18npool/source/textconversion/textconversion.cxx93
-rw-r--r--i18npool/source/textconversion/textconversionImpl.cxx132
-rw-r--r--i18npool/source/textconversion/textconversion_ko.cxx338
-rw-r--r--i18npool/source/textconversion/textconversion_zh.cxx330
8 files changed, 5909 insertions, 0 deletions
diff --git a/i18npool/source/textconversion/data/hhc_char.dic b/i18npool/source/textconversion/data/hhc_char.dic
new file mode 100644
index 000000000..249e5f355
--- /dev/null
+++ b/i18npool/source/textconversion/data/hhc_char.dic
@@ -0,0 +1,559 @@
+가:可家加歌價街假佳暇架价賈伽柯迦軻嘉駕嫁稼哥呵苛袈訶枷珂茄痂跏斝葭舸笳哿坷檟謌珈砢佉呿榎仮傢咖瘕耞宊椵叚価猳髂瘸鴐䴥拁㤎榢毠溊牁豭槚诃贾轲镓驾鲄婽尜岢幏彁徦愘戓戨斚樖泇渮滒炣牫牱犌玍癿笴糘胢腵蚵貑跒酠鉫鉲鎵鎶魺鴚麚㗎㚙㞹㢦㤉㧝㪃㪼㱒㹢䂟䈔䑝䔅䕒䪪䯊䶗嘏
+각:各角脚覺閣刻却珏恪殼慤榷骼桷礭搉卻躩咯埆擱塙阁愨覚礐殻胳傕崅茖佫墧斍腳隺㩁㰌㴶壳悫搁觉愙捔斠櫊毃玨袼覐踋鵅鵤㑢㔖㕁㙾㤩㱋㱿㲉㾡䁷䇶䐘䖼䟩䧄䶅
+간:間干看乾幹姦刊肝簡懇奸艮杆諫艱揀澗竿墾癎侃柬磵桿稈赶衎慳榦玕迀偘秆栞茛齦间恳旰简㸔簳瞯㵎趕暕盰覸顅芉囏涆貇鬝㿻悭拣擀涧痫羟艰裥谏踬锏龈倝墹姧婜孯忓攼檊癇癷皯硍礀筸粯繝羥葌蕑蕳虷衦裉襇襉豤鐗鐧靬馯鬜鳱鶫㫔㶕㶥㸧䉍䓸䔵䧲䫀䯎䳚䵟矸啃
+갈:渴葛鞨竭喝褐曷碣蝎乫羯秸鶡楬噶蠍暍渇輵轕鍻鹖圿嵑嶱扴擖毼獦礍鞂騔骱㐓㓞㓤㠰㬞㮖㵣㵧䂒䅥䈓
+감:感減敢甘監鑑憾邯堪勘瞰紺柑疳坎戡鑒嵌橄龕歛酣撼欿减弇嵁闞憨澉轗坩埳泔淦矙鹻监瑊鍳砍椷歁鹼堿塪惂撖汵蚶詌碱绀鉴鳡鹐龛佄冚凲凵厱咁墈尲尶崁嵅玪玵甝磡礛竷篏粓苷莰譼贑輡轁鑬魐鱤鵮鹸㒈㔋㔶㘛㙳㜟㤌㦑㪠㮀㰸㺂㽍䀍䃭䇞䊻䌠䗣䘓䛓䤗䧩䲺芡
+갑:甲閘岬鉀匣胛韐瞌帢㠷钾闸厒搕敆玾笚筪舺醘㓣㕅㕉㗐㧁㪉㭱䐦䖬䗘䘥䪺䫦匼
+갓:㖙
+강:江强講降康綱鋼姜剛疆岡彊崗慷腔薑糠舡絳襁羌堈畺鱇杠僵忼跫橿韁茳壃扛釭殭矼繈穅罡羗羫傋豇強冈奋棡掆犺玒糨繮峕嵻鏹㽘缰刚岗绛讲钢镪冮勥匟唴啌嗴囥堽夅嫝嵹弜弶摃摾椌槺溬漒漮焵牨犅犟猐獇玜琷瓨畕疅砊碙礓筻粇糡繦翞耩膙葁蔃蜣袶謽躿鎠鏮顜㓻㔔㛨㝩㟠㟵㢜㧏㩖㭃㭎㱂㳾㹔㼚㼹㾤䃃䃨䆲䌉䕬䗧䗵䚗䡉䥒䬕䴚跭悾
+개:改開個皆豈槪介蓋慨价塏箇漑芥凱愾盖鎧愷恝疥槩剴玠揩匃闓磕个丐葢㮣嘅喈湝祴礚暟蚧稭概烗䁗䡷凯剀垲开恺钙铠锎锴闿丯乢勓匄吤嗰奒媘尬岕幆庎忋忦戤摡斺溉炌炏煯犗琾瓂砎祄絠腉蒈蝔衸郂鈣鍇鎎鐦阣颽魀魪鶛㑘㕢㝏㠹㨟㪡㯼㱾㿍䃈䇒䏗䐩䐴䒓䤤䪱䯰䰺䱄䲸豈
+객:客喀塥揢碦衉㗆䘔
+갯:㖋㖎
+갱:更坑羹粳賡鏗硜秔鍞阬硻䎴硁赓铿劥坈妔稉羮銵㧶㰢㹴䃘䡖䡠䡰䢚更
+갹:醵蹻噱谻臄勪㖸㷾䣰
+거:車去居巨擧拒距據渠倨醵遽据祛鉅炬踞鋸迲裾袪蘧莒蕖秬籧駏腒苣胠筥佉呿昛舉詎琚柜㨿㩀耟簴㞐鐻璖虡弆磲阹椐璩佢俥壉岠怇懅涺鶋举拠挙榉讵钜键锯伡凥勮匷厺啹姖婮崌攑櫸欅歫洰淭澽粔紶翗艍菃蚷蜛螶蟝衐襷詓豦躆鮔鱋麮鼁﨔㝒㠪㣄㪯㫢㭕㯫㰦䅕䆽䒧䛯䝣䝻䟊䢹䱟䵕䶙車
+걱:巪
+건:建乾件健巾鍵虔腱愆蹇騫楗褰謇鞬揵犍睷搴鶱䖍諐湕徤乹寋㨜骞亁囝墘寈弿攐攓旔榩毽漧瀽藆踺鑳騝鰎鰬㓺㔓㗔㨴㩃㩮㩷㸫䇂䇟䊕䘜䙭䞿䭈䮿䢖
+걸:傑乞杰桀偈朅乬榤嵥㐦滐搩櫭芞藒㘶㹇䎢䒗
+검:檢儉劍劒黔鈐瞼撿芡岒臉劎俭倹剑剣捡检検睑脸钤仱剱劔忴㧄䇜䈩䩎
+겁:怯劫迲刦刧刼㤼㥘袷跲昅抾极砝蜐衱鉣魥鵖㭲㹤㾀䀷䂲䂶
+것:唟
+게:揭憩偈愒垍掲憇
+격:格激擊隔檄膈覡翮骼闃鬲挌鴃毄撃繳閴綌鵙愅滆薂諽击绤缂缴觋阒䴗呄嗝垎墼搹搿敋楁欫湨燩犑狊獥礊緙臵蛒觡譤轚郹鄓鞷鶪鸄鼳㐿㦘㦴㪾䁶䂆䈪䐙䙐䛿䞦䠐
+견:見犬堅遣牽肩絹甄譴鵑繭俔蠲畎縳狷繾筧羂樫鰹牵掔汧岍熞縴梘罥汱甽詃趼鋻坚枧笕绢缱见谴钘鲣鹃䌸儙幵悓挸掮撁枤涀犭猏獧瓹睊絸茾菺蚈蜸蠒裐襺豜豣鄄鈃銒鏲鑓雃鳽鵳麉㑠㝁㢾㭴㯞㯠㹂䄯䅌䅐䋌䋗䌑䑷䗗䚈䚊䡓䣺䪈䭤䳌䵖䵛䵡䵤䶬
+결:結決潔缺訣拮抉闋觖絜玦鴃决鴂鈌駃袺刔洯逫㓗结诀阕僪妜挗炔焆砄缼芵蒛蚗蛪觼赽趹迼釨鐑魝㓶㛃㭈㮮㹟㼤䀗䊽䍳䏐䝌䤿䥛䦬䦼鍥叏
+겸:兼謙慊箝鉗鎌歉蒹嗛縑傔拑檶鹻黚鼸岒㻩鶼缣谦钳鳒鹣嵰槏羬膁趝鰜䈤䈴䊴䭠䯡
+겹:裌唊䛟郟郏圶掐殎鵊䀫䁍䩡韐
+경:京敬輕經慶更景庚驚耕競境竟警鏡傾卿頃徑硬梗瓊儆璟炅勁鯨磬頸莖脛憬痙絅耿逕坰璥擎勍涇烱暻俓倞罄扃竸冏煢惸畊鯁哽檠綆黥褧謦駉剄熲憼焭顈経軽亰獍璚曔㯳澃挭埛麖燝牼鞕囧藑㷀傹剠桱浭綗莄誙鶊䪫径茎倾刭劲庆弪氢泾烃琼痉竞经绠胫茕轻迳镜顷颈颎鲠鲸鹒䌹儝冂冋坕坙埂婛峺巠幜庼廎弳挳掶摼擏棾椩樈橩檾櫦殌氫滰漀烴焿煚煛燛狅猄睘瞏苘菮葝蘏蟼誩赹踁郠鍄鑋頚駫骾鵛鶁麠㒌㓏㜔㢣㤯㩩㪅㬌㯋㷡㷫㹩㹵㹹㼇㾘䃄䋁䌄䔔䔛䜘䮐䯧䲔䵞𠗊璄琁
+계:計界癸溪季鷄啓繼戒係系階契桂械繫悸谿稽棨誡蹊屆磎堺雞烓罽薊堦髻禊筓綮稧瘈縘葪届継洎繋鶏笄悈紒㻑枅䙆鸂啟卟呇晵暩檕甈瘛鍥启鸡继蓟计诫锲阶㶉乩唘啔喺嗘峜嵠彐彑昋栔楐檵瀱畍痵碶筀罊葜蓕蘮蘻蟿諬銈鎅鑙闙鯚鳮齘㑧㒅㕃㖑㛷㡭㪈㬖㮷㲅㳦㳵㾵䀘䁈䁉䋜䋯䏿䚉䛺䠏䡔䦇䫔䭫䭬䳶
+고:古高告苦固故考姑孤庫鼓稿枯顧雇賈皐錮拷痼辜膏叩股袴敲呱誥槁藁攷沽蠱羔苽睾菰暠尻犒瞽刳靠翺罟觚杲栲槀估詁盬篙鴣皋酤櫜糕胯郜羖槹鈷凅牯稁箍鷱塙臯髙皷泒稾鼔吿䯻楛翶餻柧侤蛄嵪笟羙胍搞㟸桍棝槔橰狜翱薧藳鼛㛈库绔蛊裤诂诰轱钴铐锆锢顾鲓鲴鸪僱勂叝咕哌圐堌夃婟嫴崓崮怘挎橭檺洘滜烤焸煰燺瘔祮祰祻禞秙稒筶箛篐絝罛臌菇菒薣蛌褲跍軱軲郀鈲銬鋯韟骷髚髛鮕鮳鯌鯝鷎㑬㓬㕝㗝㘼㚉㚖㣨㤒㧽㪣㰏㱠㴌㸆㼋㼥㽽㾸㿁䀇䀦䆁䇢䉉䉐䍛䎋䐻䑩䓘䓢䔌䔯䚌䜂䣗䧸䫧䭅䯌䯨䯪賈熇
+곡:曲谷穀哭鵠梏斛轂嚳縠觳槲糓榖毂牿瑴喾鹄俈匤唂唃嘝浀濲瀔瀫焀焅硞硲筁粬蔛蛐螜逧髷﨏㖆㪶㮂㻃䀰䈸䎥䐨䒼䚛䢗䧊䧼䳔䵈䶜角
+곤:困坤昆棍袞崑梱鯤滾琨衮閫悃髡鵾崐褌捆堃緄裍錕鶤齫鯀壼滚髠璭綑稇晜蔉蓘蜫鮌䃂壸绲裈辊锟阃鲧鲲鹍丨堒尡惃捁棞涃潉焑熴猑瑻睏睔睴硱磙祵臗菎裩謴輥醌閸騉髨㒭㙥㡓㨰㫻㬷㱎䎾䖵䙛䜇䠅䵪
+골:骨滑汨鶻矻榾搰汩杚圣馉鹘傦尳愲抇縎蓇顝餶㐔㐣㒴㾶䮩䯇滑
+곱:䯩
+곳:廤蒊㖛㖜
+공:工公功空共恐恭供貢孔攻控拱鞏珙蚣跫倥崆蛩釭箜悾栱槓贛蛬龔筇㓛㳟羾鞚廾邛笻㓋涳卭疘糿㭟䂬巩贡赣龚埪塨幊愩慐拲桏灨熕硿碽篢糼舼蒆躻輁銎髸鵼龏㒶㓚㕬㣉㤟㤨㧬㧭㫒㮪㯯㲁㸜㺬㼦䂵䅃䅝䇨䊄䔈䜤䡗䢼䣏䰸䱋䲲䳍
+곶:串串
+과:果過科課寡誇瓜戈菓顆袴蝸跨鍋裹夸窠夥媧胯撾侉踝銙蝌騍倮堝猓稞姱薖蜾鈛檛剮堁淉荂輠剐埚挝课过锅锞颗馃骒㶽䯄冎咵坬垮嵙恗惈敤晇棵歄濄煱犐瘑簻粿綶腂膼舿萪諣踻錁鐹餜骻髁㐄㗻㚌㛻㡁㧓㪙㳀㳡㸯㼫㽿㾧㿆䆼䈑䈖䌀䙨䠸䣬䫚䯞䴹
+곽:郭廓槨藿霍癨躩鞹椁矡漷钁崞瀖墎欔籗鞟㗥㸌䣤䦆䧐
+관:官觀關館管冠寬貫慣款灌串莞琯棺瓘罐菅梡顴盥祼錧綰丱鸛筦窾爟雚髖鑵涫輨舘関観䝺欵瘝寛毌倌窽闗礶躀䦎宽惯掼绾观贯颧馆髋鹳卝悹悺摜樌欟歀泴潅烪痯矔窤罆蒄覌賗遦鏆鑧鱹鳤㮡㯘䏓䕀䗆䗰䘾䙮䤽䥗䩪䪀䲌䲘館
+괄:括檜刮适恝聒栝筈髺佸鴰鸹劀懖桰葀銽頢颳鬠䒷䟯䣶䦚䯏䯺
+광:光廣狂鑛匡曠壙胱筐洸侊珖炚絖誑纊恇獷磺桄茪框爌誆礦撗劻眶迋矌灮垙僙抂銧㼅圹広旷犷矿纩诓诳邝鉱俇儣匩哐姯懬懭昿洭炗炛烡砿硄穬筺絋臦臩軖軭輄逛邼鄺鋛鵟黆黋㤮㫕㫛㹰㾠㿠䇊䊯䒰䖱䯑
+괘:掛卦罫挂詿罣咼喎絓呙诖㖞叧啩枴柺褂
+괴:怪愧壞塊槐傀乖魁拐媿坏恠瑰蒯闠廥襘璝壊蕢瓌烠凷欳膭块蒉墤巜旝晆櫆癐箉糩蘾謉㔞㕟㘨㙕㚍㧔㻁㾩䂯䂷䃶䈐䈛䓒䓙䙌䯣䯤
+괵:馘虢㶁蟈幗帼掴蝈剨啯嘓慖摑漍聝腘膕䂸䬎
+굉:宏肱轟紘閎觥黌訇浤硡鍠鍧汯翃翝纮轰锽闳厷咣渹竤綋耾觵軣錓鞃㚚䆖䡌䡏䧀䩑䵃
+교:校交敎橋巧較郊矯膠絞僑嬌攪酵驕喬轎狡皎蛟咬嶠翹鮫蕎餃徼榷嘐嚙磽鉸姣窖蹻佼趫撟噭憍晈嘄暞橇骹鵁齩教皦挍轇屩嵺鄥恔敫珓穚茭蟜譑儌墽漖獟礉窌簥跤蹺鞽頝鷮㝯㶀䮦啮乔侨娇峤挢搅桥矫硗绞翘荞跷轿较邬铰鞒饺骄鲛䴔丂啋嘂嘦嘺噛嬓孂屫峧撹撽敽敿曒槗滘灚烄燆犞璬硚礄繑纐臫荍虠蟂譥賋趬踍躈郻鄡鐈髜鱎鴵鷍㚁㚣㚽㠐㢗㤍㤭㬵㰾㳢㺒㽱㽲䀉䀊䂪䂭䃝䍊䎗䘨䚩䡈䢒䢪䥞䱁䲾鄗覺
+구:九口求句救究久舊具苟俱區丘拘球構懼驅狗龜邱歐鳩購鷗玖寇仇矩溝舅衢軀鉤廐柩灸謳垢駒嘔臼嶇毆枸咎耉勾毬坵晷瞿逑絿柾銶搆扣裘詬疚遘媾屨嫗劬捄駈甌摳窶彀颶漚韭鸜傴榘糗蚯覯癯韝姤匶璆釦鷇俅佝岣昫篝胊坸冓佉傋厹叴戵痀窛蒟韮鬮惧旧厩乆敺廏耇沟臞緱玽雊耈呴䪷倶賕亀冦㡱抅氍觓訽躣鞲寠椇欨竬絇鈎㪺㲄䆒笱浗蝺褠㣘㽛朹梂泃犋艽芶蔲蔻㳰㺵䙔区构欧殴钩伛呕够妪屦岖巯抠沤瓯眍窭缑觏讴诟购赇躯钆阄飓駆驱驹鸠鸥鸲龟丠丩倃剾劶勼匓匛埧夠奺宼岴巰廄彄忂怐愳慦扏搝撀敂斪朐杦桕欋欍殏汣滱灈煹熰爠牞犰畂皳盚眗瞉瞘竘筘簆簼粂紌翑聥肍脙膒舏茩萛葋蓲蘒蚼蛷蠷蠼袧觩訄訅豿跔軥邭釓釚鑺镹韯鮈鯄鯦鰸鴎鴝麔鼩鼽齨㐀㐜㐤㓂㔚㕤㖵㗕㘗㘳㙀㚱㛏㜹㝌㝤㞗㟈㡚㤹㧨㨌㬬㭝㰶㲃㲘㳋㶢㸨㺃㺫㻤䀠䂂䃓䄔䅓䈮䉩䊆䊵䋧䐟䑦䓻䛮䜪䝭䞤䟬䟵䡂䣇䤛䥲䦰䧢䧱䧶䬨䬲䮃䰗䲥䲫䳎䳹䳼䵶䶚
+국:國局菊鞠鞫麴匊跼掬麯国囯踘閰囗椈鵴锔侷囶囻圀婅巈挶梮檋毩毱泦淗焗粷蘜諊趜躹輂鋦陱駶驧㘲㥌㩴㹼㽤䆐䋰䎤䏱䕮䗇䜯䡞䪕䱡𥮗麹
+군:軍君郡群窘裙捃皸桾羣頵涒军皲鲪侰僒宭帬攈攟珺皹莙蜠裠輑鍕鮶鵘㖥㪊㴫㿏䝍䭽
+굴:屈窟掘堀崛詘矻倔淈朏胐诎崫弡煀虳袦誳趉镼鶌㐇㐝㩿㪂㭾㵠㻕䂗䓛䖦䘿䞷䠇
+굿:㖌
+궁:弓宮窮躬穹芎躳宫穷藭匔杛竆㑋匑宆焪熍㴦䓖䛪䠻䤝
+궉:鴌
+권:權卷勸券拳圈眷倦捲淃惓綣睠蜷棬勌勧劵巻踡鬈帣䄅劝权権绻锩勬啳圏埢奆婘孉巏慻搼桊椦牶犈箞絭菤蔨虇蠸裷觠錈韏飬餋鬳齤㒽㟡㢧㩲㪻㬺䄐䅚䊎䌯䑏䖭䟒䠰顴
+궐:厥闕蹶蕨獗劂撅橛蹷橜鱖欮灍蟨鷢镢阙鳜亅噘孒孓嶡嶥憠氒瘚蟩鐝㙭㵐䙠
+궤:軌蹶潰机詭櫃饋几跪匱樻簋餽憒劂繢闠佹氿麂撅簣䡄匭㧪垝觤鐀陒馈匦匮愦溃篑缋诡轨阓㱮凧厬圚姽嬇恑攱殨祪簂籄蔮蛫鑎鞼鱥㔲㔳㙺㞦䃽䅪䍯䕚䠩䣀䣒䤥
+귀:貴句歸鬼龜晷巋帰䢜宄瞶劌撌㱕嘳尯腃蘬騩䝿刿归瞆贵椢槶櫷皈聭㸵䁛䌆䙡䞈䰎䤥句龜亀
+규:規奎圭糾叫揆珪閨窺葵逵硅繆畦竅赳槻虬跬睽虯闚樛巋糺楏刲嬀潙暌頍馗邽鮭嫢呌䂓戣煃摎槼恘芤頯妫沩岿窍窥纠规闺乣喹媯恷摫朻椝楑湀溈犪玌瞡窐紤聧胿芁茥藈蝰袿訆蹞郌鄈鍨鍷頄鬶鬹黊鼼㙓㧃㨒䅅䆻䖯䙵䞨䟸䠑䤆䯓䲅䳏䳫䶯哇嘄
+균:均菌龜鈞筠勻畇囷麏匀稛麕袀钧呁峮抣汮碅箘箟蚐覠銁銞麇㚬㟒䇹䐃龜亀
+귤:橘蹫䤎䰬
+극:極克劇隙棘戟剋亟屐郄尅殛郤㦸茍鋴隟㞃蕀㥛剧丮勀勊娔撠橶氪裓襋㘌㳳㻷䓧䧍䩯䪂
+근:近根勤謹斤僅筋饉瑾槿覲懃芹菫劤跟靳卺蘄厪觔墐巹釿廑漌堇㘦殣慬斳䈽觐谨馑伒哏嫤懄歏瘽荕菦蓳螼赾馸㝻㞬㢙㧆㨷㮗㹏䈥䌍䒺䤺肵
+글:契訖㐎㔕䞘䰴契
+금:金今禁錦禽琴襟衾擒衿鈐芩檎昑妗噤嶔笒唫黅紟琹顉菳赺㯲嵚钅锦僸凎凚噙坅庈惍扲捦搇澿珡琻砛耹肣蚙蠄軡釒鈙鍂鐢雂靲鳹鵭齽㕋㦗㩒㪁㱈㱽㲐㾣䃢䋮䌝䑤䔷䘳䥅䥆䦦䫴䶖金
+급:給急及級汲扱伋岌皀笈礏圾芨彶级给喼嬆忣礘觙鷑﨤㤂㧀㬤㽺䏜䏠䲯
+긍:肯兢矜亘亙殑矝堩絚緪肎刯奟掯揯搄縆肻褃錹鹶㥤㮓䱍䱎䱭䱴恆
+기:己記氣技起期基其旣幾豈器奇機旗紀棄忌企欺飢祈乞騎寄畿冀箕耆岐沂驥琦麒璣琪騏淇汽譏妓羈机嗜綺杞畸朞肌棋伎崎枳圻饑祇夔祁磯祺碁錡玘璂埼几覬耭錤歧弃曁旂欹頎墍棊鬐蟣跂剞掎蘄攲芰猉綦忮屺愭芪炁羇覉僛庋禨肵虁暣綥蜝鰭隑黖芑竒覊㡬旡惎跽鞿怾碕踦丌徛既禥蘷衹倛庪懻暨榿㙨㟓䕫兾刉嘰噐塈敧穊穖臮蚑蚔蜞觭躸鬿魌㚡㥍䒻䙫䢎䰇饥叽岂桤气気玑矶纪绮羁蕲虮觊讥记锜颀骐骑骥鱾鲯鳍亓僟刏剘呚呩呮唭坖夡妀娸婍岓嵜帺掑攰梞槣樭檱櫀渏溰濝焏玂盀盵稘稩簊簯簱籏粸綨萁蔇藄蘎蚚螧裿褀誋諅諆踑躨軝邔鄿鐖陭鬾魕魢鯕鱀鵋鵸鶀齮﨑㒫㖉㙋㚻㞆㞓㞛㞯㞿㟚㟢㠌㠱㡮㥓㨳㩻㩽㫅㫓㫷㯦㰟㱦㲹㼄㽶䀈䃆䄎䄫䅲䇫䉻䋟䎛䐀䑴䓅䓫䓽䔇䕤䗁䘛䛗䛴䝸䞚䟇䟚䡋䢋䢳䤒䥓䩓䩭䫏䭶䭼䳢䶞忯𧅄
+긴:緊紧菣
+길:吉拮佶桔姞鴶蛣洁趌鲒咭狤郆銡鞊鮚㐞㐟㣟䓀䟌
+김:金
+끗:㖝
+끝:唜
+끽:喫噄
+나:羅那奈拿裸懶儺懦螺拏邏癩蘿喇娜挐挪糯梛糥郍砈穤傩镎乸哪嗱懧橠稬蒘誽鎿㑚㔮㖠㡅㧱㰙䛔柰𣃽䏧𡖔喇奈懶癩羅蘿螺裸邏驘曪亽
+낙:落樂諾洛駱烙酪珞诺掿樂洛烙珞落酪駱嗠
+난:難暖卵亂蘭欄爛鸞煖赧煗偄餪㬉难奻戁渜㫱㬮䎡愞亂卵欄爛蘭鸞
+날:捺捏涅陧苶䖓䖧
+남:南男濫藍嵐楠枏湳襤喃柟娚揇㑲侽婻暔煵畘罱腩莮萳蝻諵遖㓓㣮㭷㵜㽖䈒䊖嵐濫藍襤惏弇
+납:納拉臘蠟衲蒳鈉纳钠妠笝軜靹魶㨥䈫䪏拉臘蠟
+낭:浪娘廊狼囊朗郎曩嚢乪儾囔擃攮欜灢饢齉㚂㶞䁸廊朗浪狼郎
+내:內來乃耐奈柰迺鼐内匂嬭奶廼㮏褦㮈撆耏釢孻摨氖氝渿熋疓萘螚錼㐻㚷㜨㭆㲡㴎㾍䯮䱞䲎來黧
+냉:冷冷
+냑:蹃逽
+냥:娘孃
+녀:女䋈袽钕帤釹㵖䘫
+녁:惄疒䭆
+년:年撚秊碾涊䄵哖姩簐脌躎鵇鼰㬗㮟䄭
+녈:涅圼篞夨㖏㘿䂼
+념:念恬拈捻鮎埝焾艌踗㑫䧔䬯
+녑:鑷喦惗䳖帇幉敜鈢鉩錜㚔㩶㵊䇣䌰䎎
+녕:寧獰寗佞濘嚀儜侫寕寜甯擰聹咛拧聍嬣寍橣檸澝矃薴鑏鬡鸋㝕㣷㲌㲰㿦䆨䔭䗿䭢
+녘:榒
+녜:禰祢䄲
+노:老路勞怒露奴努盧魯爐駑蘆鷺虜擄弩帑櫓瑙孥呶猱笯臑峱砮巙怓鑥镥驽䜧伖伮夒巎獿粩胬蛯詉鴑㚢㞪㺁㺜䛝䜀勞擄櫓爐盧老蘆虜路露魯鷺嘮髗
+녹:綠錄祿鹿碌菉傉搙碌祿綠菉錄鹿角
+논:論嫩㯎論
+놀:㐐㐗
+놈:㖈
+농:農弄籠濃膿聾壟穠儂醲噥禯癑侬农哝浓秾脓㶶嶩檂欁燶繷蕽襛辳鬞齈䙶䢉䵜壟弄籠聾龍竜龒
+놔:雫
+놜:豽貀
+뇌:雷腦惱賂牢磊餒餧脳挼憹垴恼悩脑馁匘堖娞捼碯腇鮾鯘㑎㛴㼏牢磊賂雷攂
+뇨:溺尿撓鬧橈嫋裊淖鐃嬲嬈磠閙褭譊䙚袅铙闹嫐嬝硇硵脲㒟㜵㞙㠡㳮䃩䃵䦊䮍䴃
+누:樓漏淚累屢陋壘縷耨啂㝅鎒槈檽獳羺譨譳鐞㜌㝹䅶䨲壘屢樓淚漏累縷陋厽
+눈:嫩媆嫰㜛㡪㶧
+눌:訥吶肭呐讷抐㕯䟜
+뉴:紐杻忸靵狃鈕扭䋴纽钮妞沑炄粈莥㖻㺲䂇䏔𧘥
+뉵:忸衄恧朒衂䖡䘐䚼䶊
+늑:勒肋䅞䎪勒肋
+늠:凜凜
+늣:莻
+능:能陵凌綾菱稜䏻㴰䘅凌稜綾菱陵
+늦:莻
+니:泥尼禰怩膩呢柅祢你旎埮濔臡妳檷蚭迡腻铌伱倷坭妮屔您抳狔秜胒苨跜鈮鉨鑈隬馜㞾㦐䕥䘦䛏䝚
+닉:溺匿搦嫟糑嬺愵搻氼㥾㲻
+닐:昵暱䁥痆䘌䵑䵒
+님:拰䋻䌾
+닙:㘝囡
+다:多茶爹嗲夛茤觰跢鯺䫂䯬𥥸𣘻
+단:單短端但丹斷段團壇檀旦湍鍛緞簞蛋亶蓴袒彖鄲坍担胆椴慱漙靼癉蜑耑澶腶断单摶槫泹襌㫁瑖猯褖鏄偳潬煓毈鴠㫜团坛钽単団抟瘅箪簖缎郸锻刐剬勯匰唌塅媏枬柦檲湪煅玬璮疍砃碫籪糰繵葮袇褍褝襢觛貒貚踹躖鉭鍴駳驙鶨鷒鷤鷻㟨㠆㡺㣋㣶㩛㱭䃪䉡䊜䐷䒟䕊䜝䜥䝎䞡䠪䢷䦔䩥䵎剸笪揣
+달:達撻疸獺澾怛闥韃靼妲㺚逹橽鐽呾燵㼀炟狚哒挞荙跶闼鞑噠垯墶笪繨羍薘蟽詚躂㒓㣵㳠㿹䃮䵣
+담:談擔淡潭膽譚痰澹曇憺湛聃覃啖蕁坍錟担胆墰禫啗毯郯噉儋薝黮壜忐罎黵惔耼聸紞倓甔萏䃫橝窞餤㗖埿澸罈腅菼蟫霮顃驔髧䨵荨谈谭锬偡啿嘾嚪墵妉姏婒媅帎憛曋氮瓭癚緂舑舕藫衴贉醈醰饏馾黕㕪㘱㚮㜤㲜㲭㲷㳩㴂㻼㽎㽑䆦䆱䉞䊤䐺䑙䔜䗊䜖䨢䭛埮炎
+답:答踏畓遝沓荅剳蹋涾溚褡譶匒崉榙濌畣眔褟誻蹹躢鎉龖龘㙮㜓㟷㧺㭼㯚㳫㾑㿯㿴䂿䈋䌋䍇䍝䎓䐛䓠䜚䠌䪚䳴䵬䶀䶁
+당:堂當唐黨糖塘撞棠螳幢戇倘儻党讜搪璫瑭瞠鐺襠鏜溏餳檔礑蟷餹螗簹戅嵣戃䅯儅嘡噇摚曭澢煻膛钂闣鞺当傥垱戆挡档珰筜裆谠铛镋镗饧㓥傏凼劏啺噹坣壋憆擋攩榶欓氹漟灙爣瓽瞊矘磄禟篖糃糛耥膅艡蓎譡赯蹚躺鄌醣鎕鎲闛隚饄鶶鼞㑽㙶㜍㜭㭻㲥㼕㼺㽆㿩䃥䉎䌅䕋䚒䣊䣘䣣䧜䭚
+대:大代待對帶隊貸臺台戴垈袋擡岱黛玳錞坮懟碓儓汏隶旲鐓㐲䑓帯帒憝襨濧薱襶㙜檯祋薹蹛㘆㭖䒫䨴对対带怼贷轪镦队亣嬯廗憞懛柋瀩瀻瑇甙簤籉艜譈譵軑軚轛鐜鮘黱㒗㓫㙵㚎㛿㝳㞭㠚㣕㦠㬃㬣㯂㳔㷘㸀㻖䃍䈆䙊䚞䚟䯟䲦抬枱隸隷
+댁:宅
+덕:德悳徳恴惪㤫㥁
+도:刀道度圖島都到徒逃導渡盜途倒桃跳陶塗稻挑禱悼燾濤蹈屠滔睹鍍掉堵兜搗萄賭淘覩棹韜嶋櫂叨菟鼗擣饕涂絛杲闍忉弢稌鞱搯檮慆壔洮掏酴鞀盗謟迯禂荼翿䆃图熖舠夲幍咷釖綯裪㨶朷縚噵鞉䵚唋捈暏槝瘏衜跿鳭䂽䄻捣図导岛梼涛焘祷稲绹赌镀阇韬鱽凃刂匋啕喥嘟圗嫍屶峹嵞嶀嶌嶹帾庩廜捯旫梌椡槄槅檤氘潳琽瑫瓙祹筡艔菿蒤蓞虭蜪衟詜軇醄醏鋾陦隝隯靯飸饀馟駼騊魛鵌鷋鷵﨩㞵㠀㢭㧅㫞㬸㭸㴞㷹㸓㹗㻌㻬㻯䀞䀾䅷䈱䊭䌦䑬䑲䖘䛬䞮䟻䣄䣝䤾䩣䩲䬞䬢䬭䮻䳜纛都璹
+독:讀獨督毒篤瀆禿牘犢纛黷櫝髑独讟秃凟匵殰蝳錖韣椟渎牍犊笃読读黩㱩嬻涋涜瓄痜皾碡裻豄贕鋵鑟韇韥騳鵚㒔㞘㸿㾄䄣䈞䐁䓯䛢䢱䫳䮷
+돈:敦豚頓惇沌燉褪遯旽暾墩焞潡噸弴瓲躉鐓炖橔獤㬿㹠㻻礅伅囤墪忳扥撉趸顿饨鲀崸庉扽撴朜犜砘豘蹾軘逇韕飩驐魨黗㢯㥫㩐㪟䃦䔻䪃䵊䵍
+돌:突乭咄堗宊腯湥揬柮㐑㟮㻠饳嚉怢葖迌鈯鍎飿鶟鼵㷝䃐䠈
+돗:㘏
+동:同東冬動洞童銅凍董桐棟憧疼瞳胴仝潼錬僮蕫彤侗峒佟蝀涷垌朣橦艟茼哃苳鮗諌働埬曈㨂穜詷膧㠉挏烔絧餇懂湩獞罿鮦鼕岽东冻动栋胨铜鲖鸫倲偅勭咚墥姛娻嬞峂峝崠崬庝戙昸晍氃氡氭浵炵燑犝狪眮砼硐秱笗箽粡腖菄蘔蚒衕赨迵酮鉖鉵霘駧鯟鶇㑈㓊㖦㗢㚵㠽㢥㣠㤏㫡㯵㲇㷲㸗㼧㼯㼿䂈䂢䆚䍶䞒䮵䰤䱰䳉䳋䴀䵔䶱虫
+두:頭讀斗豆杜兜痘竇逗荳枓斁蠹肚陡蚪抖脰吋紏蠧餖㞳㪷兠㺶阧﨣䇺䢏䲧头窦钭饾亠侸剅吺唗唞梪橷殬毭浢篼荰蔸螙郖酘鈄鋀閗鬥㓱㛒㟕㢄㨮㰯㿡䄈䇆䕆䕱䚵䬦䱏䵉讀
+둑:㪲纛
+둔:鈍屯遁臀芚遯窀迍吨钝坉臋踲霕㩔㼊䜳䤜
+둘:乧㐈㐙
+둣:㖍
+둥:㪳
+득:得淂嘚锝棏鍀㝶䙷䙸
+등:等登燈騰藤鄧嶝謄橙滕鐙灯磴縢螣墱凳籐䓁蹬䒭簦豋驣㽅籘膯隥㔁腾誊邓镫僜儯噔嬁幐戥櫈漛璒竳艠虅覴邆霯駦鰧鼟㲪䒅䔲䕨䗳䙞䠬䠮䮴䲍䲢䳾
+똥:㖯㖰
+뜰:㐢
+라:羅裸懶螺拏邏癩蘿喇騾囉鑼瘰臝砢倮曪驘覼蠃灕覶玀躶㞅纙㼈䇔罗懒椤猡癞箩脶萝逻锣镙骡㑩亽儸剆啰嚹囖摞攞攭旯欏籮罖腡蓏覙鎯鏍饠鸁㒩㦬㩡㰁㱻㽋㿚䉓䊨䌱䌴䯁拏
+락:落樂諾絡洛駱烙酪珞犖嗠硌濼鉻雒泺络荦铬饹骆峈笿餎鮥鴼㓢㦡䀩䈷䎊樂諾攊
+란:丹卵亂蘭欄爛鸞懶瀾欒闌鑾攔襴嬾幱灓乱䦨滦灤斕圝圞灡籣兰拦斓栏栾澜烂谰銮镧阑鸾亪囒孄孏曫欗燗爤瓓癵糷羉膥虊襕襽譋讕躝釠鑭钄韊鵉㘓㡩㦨㱍㱫㳕䃹䑌䖂䪍丹
+랄:剌辣喇埒辢捋獭垃埓揦揧攋楋瓎瘌蝲頱鬎鯻㸊㻋㻝䀳䏀䓥䓶䱫䶛
+람:覽濫藍籃攬嵐纜欖擥襤婪惏覧灠壈㲯䰐㩜囕㑣岚揽榄滥漤篮缆蓝褴览䍀儖啉嚂懢浨灆燣燷爁爦璼礷繿葻蘫顲㘕㛦㜮㞩㧛㨫㰓㰖䆾䌫䨬𢱯厱
+랍:拉臘蠟摺鑞臈爉䗶镴啦搚柆磖翋菈蝋邋鞡㕇㡴䂰䃳䇱
+랑:郞浪廊狼朗琅郎螂瀧瑯踉閬蜋稂榔硠莨桹烺蓈鋃欴艆㫰锒阆勆啷埌塱嫏崀朖朤樃筤蒗蓢誏躴郒駺㓪㙟㟍㢃㮾㱢㾿䆡䍚䕞䡙䯖䱶
+래:來萊賚崍徠来淶騋顂勑徕莱䅘猍琜倈箂棶睞錸鵣䋱䚅崃俫梾涞睐铼儽唻婡庲逨郲鯠鶆麳㚓㴺㾢䂾䧒𧼛黧
+랭:冷唥
+략:略掠畧攊圙撂洜㑼㗉㨼䂮䌎䛚
+량:兩場良量凉梁糧諒亮樑輛粱倆粮涼魎踉椋悢喨两両惊㾗湸緉裲輌輬俍俩唡谅辆辌魉哴啢墚掚斏晾煷簗綡羪脼蜽㒳㔀㔝㝗㹁䀶䁁䓣䝶䠃䣼䩫䭪駺
+려:旅慮麗勵呂廬礪驪閭戾黎侶濾犁驢藜儷蠣櫚厲臚癘膂蠡糲唳梠鑢儢邌吕沴荔丽侣盭瓈欐蟸黧棙穭廲藘攦櫖爈茘蜧㑦䕻励俪厉庐榈滤疠砺稆粝胪蛎铝闾驴骊鲡勴囇婯巁悷挔捛曞曥栛沵焒珕矋祣禲穞絽綟膐蛠蠇郘鋁鏫鑗馿騹鱱鱺鵹㒧㓯㛎㠟㠠㭚㰀㱺㴝㾐㾔㿛䉫䊪䓞䔣䔧䕡䗍䘈䣓䥨䥿䮉䰕䴡戻
+력:力歷曆瀝礫轢靂櫟櫪鬲酈攊癧轣歴暦䔉厯皪屴朸檪磿礰躒历呖坜枥栎沥疬砾苈跞轹郦镉雳儮厤叻嚦壢擽爏瓅瓑砳秝蒚藶蚸蝷觻讈赲鎘靋韷鱳鳨㔏㠣㧰㬏㯤㱹㷴㺡㻺㽁㿨䃯䍥䍽䟏䟐䤙䥶䮥䰛䰜
+련:連練鍊憐戀聯蓮漣輦煉怜璉攣錬臠孌鰱楝鏈孿湅鰊恋堜摙䏈縺聨㜻链娈挛撵梿涟炼琏练联脔莲裢辇连鲢僆嗹噒奱媡嫾徚慩攆槤櫣瑓癴纞翴聫聮膦萰褳謰蹥鄻㜃㜕㝈㟀㥕㦁㪝㰈㶌㺦㼑䃛䜌𨏶
+렬:列烈劣裂冽洌捩颲挒茢迾鋢鴷㭩锊䴕劽咧哷姴挘栵浖烮煭爄睙脟蛚蛶趔迣鋝鮤㤠㬯㭞㸹㽟䅀䟹䮋戻
+렴:廉濂斂簾殮歛籟瀲奩獫磏帘㢘嬚鐮搛溓薕蘝蠊奁敛潋莶蔹镰亷劆匲匳澰濓熑燫稴籢籨羷臁薟蘞螊覝鬑㝺㡘㪘㯬㱨㶑㼓䁠䆂䌞䙺䥥䭑
+렵:獵鬣躐儠擸猟巤犣聗鱲㯿㲱㼃㼲䁽䉭䜲䝓䪉
+령:令領寧靈嶺零鈴玲囹齡逞聆怜伶翎羚岺笭另岭泠苓鴒蛉欞呤昤姈秢軨鹷灵坽㱓櫺醽霛瓴狑舲彾竛跉霝燯詅酃棂铃霊领鸰齢龄刢孁拎朎柃澪炩爧皊砱紷蕶蘦衑袊閝阾霗駖魿麢龗㚑㡵㦭㩕㪮㬡㯪㲆㸳㻏㾉䄥䉁䉖䉹䌢䍅䕘䖅䙥䠲䡼䡿䨩䯍䰱䴇䴒䴫寧
+례:禮例豊隷醴澧隸鱧礼㘑鳢櫔欚濿犡瓥砅㡂㤡㽝䅄䵩礼
+로:老路勞怒露盧魯爐蘆鷺虜擄撈輅鹵潞芦櫓瀘潦鑪鱸壚騾艪顱艫鸕轤玈窂滷癆磠鐪髗劳㳣澇鏴璐獹罏攎簵䳓咾嫪櫨珯矑簬艣髝卤橹炉労卢唠噜垆崂捞掳撸栌氇泸涝痨耢舻虏轳辂铑铹颅鲁鲈鸬鹭僗哰嘮嚕嚧塷嶗恅憥憦擼朥栳樐橯氌浶澛瀂狫瓐硓磱簩籚纑耂耮蓾蕗虂蟧蠦軂銠鏀鐒魲鮱黸㔧㔪㗦㟉㢚㢳㧯㨓㪭㭔㯝㯭㿖䃕䇭䜎䜮䝁䡎䲏䲐䵏怒
+록:綠錄祿鹿麓碌菉淥漉彔騄簏轆圥录盝籙禄醁緑廘録㖨睩蔍逯绿渌箓辘塶娽摝梺椂樚氯熝琭甪簶粶膔螰觮趢蹗錴騼鵦龣㜙㟤㦇㪖㫽㯟㲶㼾䃙䌒䍡䎑䎼䐂䘵䚄䟿䩮䱚䴪角
+론:論掄惀碖菕论婨溣㤻
+롱:弄籠龐聾壟瓏朧瀧隴礱曨蘢儱攏龎櫳壠巃哢礲䏊嚨竉㺯胧厐咙垄垅拢昽栊泷滝珑砻笼聋茏陇巄挊挵梇槞硦篭蠪裃襱豅鏧鑨靇鸗龓㑝㙙㛞㟖㢅㰍㳥䆍䡁䪊龍竜龒
+뢰:雷賴賂儡牢磊賚瀨罍耒籟酹誄礧纇蕾顂攂礌頼瀬㵢䨓藾鐳傫櫑瓃礨䒹濑籁诔赂赉赖镭壨擂檑櫴洡珱畾癗磥筙蠝襰讄轠銇錑鑘鑸靁頛頪颣鱩㑍㒦㔣㠥㲕㵽㼍㿔䄤䉪䍣䐯䛶䠭䢮䣂䮑䲚
+료:料了僚遼療聊寮燎瞭廖寥鬧蓼潦醪繚膋撩暸獠鐐嘹嫽飂飉憀憭鷯䝤璙炓㵳尞橑爎轑㝋疗缭辽镣鹩佬叾尥尦屪嶚嶛廫敹曢熮爒爳窲窷竂簝翏膫藔蟉蟟豂賿蹘蹽鄝镽顟髎㙩㞠㟹㡻㶫䄦䉼䎆䑠䒿䕩䜍䢧䨅䩍䭜
+룡:龍龒矓眬龙徿爖竜蠬贚躘驡㡣
+루:樓漏淚累屢陋壘縷婁鏤褸蔞瘻螻僂髏嶁慺嘍耬楼屡泪蝼塁摟塿䮫嫘屚廔䫫瘘偻喽垒娄嵝搂篓缕耧蒌褛镂髅䁖厽櫐氀涙溇漊熡甊瘺癳瞜簍膢艛謱貗軁遱鞻鷜鼺㒍㔷㙼㜢㟺㡞㥪㪹㲎㴃㶟㹎㺏㻲䄛䅹䉂䝏䣚䱾䴎
+류:流留柳類劉謬溜琉瘤繆瑠旒榴硫瀏纍鶹縲瑬遛橊飂霤騮鏐旈䄂鎏罶飀藟鎦飅絫羀蘽虆蹓駠駵䖻刘浏类绺缧蔂谬铆锍镏镠飗馏骝鹨嚠塯媹嬼嵧廇懰栁桺樏橮欙漻澑灅熘珋璢畄畱疁癅磂禷綹纝艈蒥蓅蕌藰蘱蘲裗鉚鋶鐂雡飹餾驑鬸鰡鷚鸓麍㐬㙧㧕㳅㶯㽌㽞㾋䉧䗜䚧䝀䣦䬟䰘䱖䶉
+륙:六陸戮勠僇稑穋陆剹勎坴淕磟踛鯥鵱㓐㛬䡜
+륜:倫輪崙綸淪侖掄錀踚崘圇棆仑伦囵抡沦纶轮嗧埨磮稐耣腀蜦陯鯩㓆㖮㷍䈁䑳
+률:律率栗慄嵂溧篥㟳硉瑮膟㮚峍侓傈凓垏塛寽徍搮箻繂葎鷅麜㖀㗚㪐䔁䔞䡃䬆𥠲率
+륭:隆瀜癃窿烿嶐蕯湰霳㚅㝫㦕䃧䥢
+륵:勒肋泐玏仂扐鳓嘞忇椚氻竻簕艻阞鰳
+를:㔹
+름:凜廩凛澟檩廪懍懔檁癛癝菻㐭㨆䕲
+릉:陵楞凌綾菱稜倰蔆棱崚淩夌庱掕睖鯪绫鲮堎婈愣琌碐祾蓤薐裬踜輘錂㖫㘄㥄㱥䈊䉄䔖䧙䬋䮚
+리:里利理異李吏離履裏梨驪罹裡籬厘俚痢悧羸釐狸犁璃鯉唎莉浬漓莅离螭俐嫠魑貍邐涖哩蜊黐剺詈纚鸝摛醨蒞蘺褵縭盠劙峛彲悝樆犂蔾俬娌棃氂䍦䙰篱缡蓠逦锂鲤鹂兣刕剓喱嚟囄娳孋孷峢峲彨悡攡梩梸浰犛猁琍瓼甅睝瞝矖穲竰筣粚粴糎繌脷艃荲菞蟍蠫謧鋫鋰錅鬁鯏鯬麶㒿㛤㤦㥎㦒㰚㲠㷰㸚㹈㻳㼖㾖䄜䅻䇐䊍䋥䍠䔆䖽䖿䚕䣫䤚䦄䧉䬜䱘䴻䵓𢻠異麗黧灑
+린:隣麟鱗吝躪燐璘藺潾獜鄰磷粼嶙驎轔繗悋躙鏻粦遴恡瞵䗲疄撛僯厸轥蔺躏辚邻鳞亃壣斴暽橉焛甐翷蹸閵麐㔂㖁㷠䉮䚏䚬䢯䫰䮼䱯𪊭
+림:林臨淋琳霖痳惏冧崊晽棽瀮瀶碄箖醂㝝㣩㵉䫐玪滲渗
+립:立笠粒砬岦雴苙鴗湁鉝㕸䇉䢂䲞䶘
+마:馬麻磨摩魔痲瑪碼麽麿劘媽螞蟇麼蟆亇嗎禡䔍嘛鎷㦄吗唛妈嬷杩犸玛码祃蚂马傌吀哶嘜嚒嚤嚰嫲嬤尛懡戂擵榪溤犘獁礳耱蔴藦蘑饝髍鬕鰢鷌㐃㐷㾺䃺䗫䘞䜆䣕䣖䧞䩋䭩䯢䲈䳸
+막:莫幕漠膜寞邈藐鏌瞙瘼幙暯嗼鄚饃馍镆劰塻瞐縸㠳㦝㱳㷬䒬䮬
+만:萬滿晩慢漫蠻灣娩挽蔓瞞輓彎饅鰻卍万曼巒謾幔懣嫚蹣墁悗縵鏝鬘鏋湾晚満熳㬅鬛澫脕僈摱睌矕蟎鋔㡢䐽蛮峦弯满瞒缦螨谩蹒镘颟馒鳗卐塆壪屘慲梚槾樠潫澷濷獌蔄蘰蟃襔贎鄤鞔顢鬗㒼㗄㗈㙢㵘㸘㻴㿸䅋䅼䊡䒥䕕䘎䜱䝡䝢䡬䤍䯶䰋
+말:末靺抹襪沫唜茉帕秣昩袜妺韈眜枺帓怽瀎皌睰砞礣粖袹閁韤魩㑻㨸㭐㶬䍪䏞䬴䯦䱅䴲
+맘:鋄錽鎫㛧䥑
+망:亡望忘忙妄罔茫網芒莽邙輞惘魍莾蟒漭汒网亾鋩蠎㒺㤀兦㕵䋄恾朢杗蘉誷蝄釯㟿㬒䰶纲辋铓吂壾奀娏杧棢焹牤琞痝盳硥硭笀罒罓茻莣菵蛧㟌㟐䁳䅒䋞䍏䒎䒽䓼䥈䰣䱩䵨龍竜龒
+매:賣買每妹梅媒埋枚魅昧寐罵邁煤呆楳眛莓玫沬苺酶霉浼霾䨪禖毎抺痗佅凂勱湈脄韎駡鬽骂买劢卖売荬迈呅嘪坆塺挴槑珻脢腜蕒薶跊鋂鷶黣㙁㜥㦟㭑㵋㺳䀛䀜䁲䆀䊈䍙䔦䚑䜕䜸䤂䰨䰪䵢
+맥:麥脈貊陌驀脉貃貘霡貉霢眽覛麦蓦帞眿絈蛨衇㵹㹮䘑䨫䮮䳮
+맹:孟盟猛盲萌氓黽甍甿虻儚蝱艋蕄鄳锰勐掹擝橗瓾莔蜢錳鯭鼆䁅䇇䈍䉚䓝䖟䗈䥰
+먀:乜
+며:旀厼㢱
+멱:覓汨蓂冪糸幎羃覔幂纟觅冖塓幦淿漞濗簚糹鼏㯒䈿䌐䖑䣾䮭
+면:面免勉眠綿冕沔娩緬眄麵棉俛緜麪糆湎靣丏偭㴐勔愐櫋莬葂麫绵缅腼丆喕婂媔嬵宀檰汅矈矊矏臱芇蝒鮸麺㒙㛯㝃㝰㨠㨺㮌㰃䀎䃇䛉䛲䤄䫵䰓湣
+멸:滅蔑衊篾㓕蠛搣櫗灭孭幭懱揻薎鑖鱴鴓㒝㩢䁾䈼䌩䘊䡸䩏
+명:明命名鳴銘冥溟暝皿螟酩瞑蓂茗椧黽洺㝠眀凕㫥詺䏃铭鸣佲姳嫇慏掵朙榠焽熐猽眳笽覭鄍鵈㓁㗮㟰䄙䆩䊅䒌䫤䳟
+몌:袂
+모:母毛暮慕募模某謀冒侮貌謨牟帽茅矛耗摸牡眸摹瑁芼姆糢耄侔髦旄媢蟊嫫眊皃姥蝥粍鉾恈冐麰㡌謩氁秏䫉橅䖥牦谋谟兞冃哞娒峔慔枆栂毟毪毮毷洠獏玥瓱砪竓罞艒萺蓩蛑蝐蟱覒軞酕魹鴾鶜㑄㒵㒻㖼㘪㛌㝟㟂㧇㧌㪞㴘㹸㺺㿞䋃䗋䡚䭷藐
+목:目木牧睦穆沐鶩苜凩楘莯霂䳱㜈毣炑钼鹜坶杢狇蚞鉬雮㣎㾇䀲䊾䑵䜼䲷
+몰:沒歿没殁圽朰歽歾莈
+몸:鯍
+몽:夢蒙朦矇濛曚瞢幪雺懞艨儚溕鸏梦懵冡懜䑃蠓㠓饛矒霿䤓䝉鹲夣檬氋獴甮礞鄸霥靀㒱㙹㜴㝱㩚㴳䀄䏵䑅䒐䙦䙩䟥䠢䥂䰒䲛䴌䴿䵆
+묘:卯妙廟墓秒苗猫昴描畝渺杳竗錨眇藐淼貓庙緲畒玅茆篎缈锚鹋冇喵媌嫹峁庿戼泖渵畆瞄笷緢覅鱙鶓㑤㚹䁧䅦䏚䖢吵
+묠:乮
+무:無武務戊茂舞貿霧誣巫毋撫畝蕪憮拇无懋繆鵡珷楙廡騖膴儛嘸抚瞀袤鍪婺嫵碔幠甒倵堥瞴莁鉧㒇亩务呒妩庑怃缪芜诬贸雾骛鹀鹉仫劺呣墲奦娬嵍愗敄暓柕橆潕熃牳璑畞畮胟袰誈譕踇躌鄮錻霚鞪髳鵐鷡㡔㣳㭌㮊㮘㱐㳇㵲㶃㷻㽗䀤䉑䋷䌗䍢䏬䒉䓮䟼䥐䥻䨁䱕䳇橅
+묵:墨黙默嘿纆嚜爅嫼濹癦蟔㩏㫯㷵䁼䁿䘃
+문:門問文聞紊汶紋蚊吻刎們雯捫懣抆忞悗炆匁忟璊闻问门懑㦖脗暪絻蚉閿馼们扪纹钔阌伆勽呡妏彣渂珳璺肳芠菛虋螡蟁鈫鍆閅閺闅駇魰鳼鴍鼤㗃㡈㭣㵍㻊䊟䎹䎽䘇䟂䠺䦩䫒䰚
+물:物勿沕岉昒粅㫚䥼
+미:美米未味尾微迷眉彌靡媚薇楣湄嵋渼謎黴梶弥弭糜縻亹瀰麋敉媺獼娓蘼媄苿㫆眯冞洣罙㣲麛㜷䞔郿㜫㳽浘眫㞑猕芈谜镁镅鹛侎咩咪堳嬍孊嵄嶶徾捤擟攗攠斖渳溦灖煝爢猸瑂癓睂睸瞇矀祙穈篃羋脒艉荱菋葞葿蒾蔝蘪蝞覹詸躾醚醾醿釄銤鎂鎇镾霺鮇鶥麊㜆㝥㟜㠧㣆㥝㴹㵟㸏䅏䆊䇻䉋䉠䉲䊊䊳䋛䌕䍘䓺䕳䕷䙿䛧䥩䥸䦵䬿䭧䱊䴢濔𥹄辟
+민:民敏閔憫悶旻旼珉玟愍泯岷緡黽閩忞暋緍湣忟罠苠鰵黾僶渑澠慜潣敃燘痻砇悯焖缗闵闷闽鳘冺刡勄垊姄崏怋抿捪敯燜琘琝瑉盿碈笢簢鈱錉鍲鴖㞶㟩㟭㥃㥗㥸㨉㫣㬆䁕䂥䃉䋋䝧䟨䡑䡻䪸䲄𩔉脗
+밀:密蜜謐宓樒滵宻谧嘧峚櫁淧蔤藌蠠㫘㳴㴵㵥䁇䌏䛑䤉
+박:朴迫博泊拍薄駁舶剝縛撲搏樸珀箔粕膊雹璞亳駮鎛墣欂牔髆剥敀礴襮廹愽䪨礡檏擈煿鑮彴窇㩧瞨䥬缚钋铂镈镤飑馎驳啪噗嚗圤懪炇烞犦狛猼瓟砶簙胉艊萡蒪趵釙鉑鏷颮餺骲髉㕷㗘㙸㬍㴖㵡㹒㺪㼎㿺䂍䃗䄸䍸䎅䑈䗚䙏䥤䨌䨔䨣䨰䪇䪙䬪䭦䮀䰊䶈曝
+반:半反飯班般返伴盤叛頒槃斑潘搬磻攀畔蟠絆礬拌泮盼磐瘢胖蹣扳搫頖攽朌仮媻肦螌盘襻鞶癍憣詊斒牉㜶㮽䛀矾绊颁饭冸坢奤姅婏嬎嬔幋怑柈沜溿瀊炍秚縏蒰虨褩跘辬鉡鋬鎜鑻闆靽飰魬鳻㐴㚘㢖㪵㫠㭧㶗㽃㽹㿀䃑䃲䆺䈲䉊䉽䊩䙪䡊䣲䬳䰉䰔豳飯乑
+발:發髮拔跋鉢潑渤撥勃魃醱孛浡鈸鵓哱脖钵発彂綍髪沷㪍墢茇㧞䟦袚襏抜犮軷㗶柭秡胈鏺馞䣮发拨泼袯酦钹饽鲅鹁侼叐坺妭愂挬桲溌炦癶癹盋砵缽荸菝葧詙蹳郣醗鋍餑馛驋鮁鱍鼥㔇㔜㛘㛲㞈㟑㧊㴾㶿㺴䍨䘠䚨䟛䢌䣪䥽䪬䭯䮂䯋䳁䳊
+밤:湴
+밧:夞
+방:方放防房訪邦妨芳傍倣旁彷紡龐坊榜昉謗棒枋幇肪尨膀滂蚌磅舫蒡仿牓髣厖魴搒幫螃徬旊梆舽鎊龎霶綁逄鈁雱狵㮄庬哤埅胮駹昘汸浝淓眆膖蚄㧍䅭䨦帮庞纺绑访谤钫镑鲂鳑匚嗙垹堏塄塝嫎幚挷氆炐牥牻玤瓬稖篣縍耪肨艕蛖蜯覫趽邡邫錺鞤髈鰟鴋鶭㑂㕩㕫㝑㤃㤶㥬㨍㫄㭋㭶㿶䂜䄱䏺䏾䒍䖫䠙䢍䢶䦁䧛䩷䰷䲱
+배:北拜杯輩背配倍培排裵俳賠陪徘胚湃裴盃褙焙坏坯琲扒蓓軰环桮辈拝醅禙柸毰肧㚰赔伓俖偝啡妚嶏掰揹炋猅琣碚荖蓜衃輫阫韛㔨㗑㟝㠔㤳㮎㯁㰆㶔㶨㶪㻗㾦䋔䋳䒔䔒䣙䪹䫊貝北
+백:百白伯栢帛魄柏佰粨苩銆洦鲌兡岶湐瓸竡絔鮊㓦㡍㼟㼣㿟䞟䳆珀
+뱀:㖱
+번:番煩繁飜磻蕃藩燔幡樊翻蘩繙膰袢畨璠旛轓旙瀿笲蹯墦橎㺕嬏籓蠜烦僠勫噃奿棥瀪緐羳薠襎鐇鑁鱕鷭㸋䉒䋣䋦䌓䕰䪛䪤䫶䮳磻
+벌:伐罰閥筏橃罸罚阀傠垡栰浌瞂藅㕹㘺䇅䑔䣹
+범:凡犯範范汎泛帆梵氾颿笵訉凢軓杋㠶舤㕨䭵钒凣忛柉滼盕舧諚釩㴀䀀䑺䒦䒮䟪䬚渢
+법:法琺㳒疺珐佱灋鍅
+벽:壁碧僻闢璧癖劈擘霹蘗檗辟擗甓椑襞疈鷿鼊薜皕躄躃湢澼綼鐴䌟鲾䴙噼堛孹廦憵挀揊檘礔礕稫糪繴釽銢鰏鸊㘠㨽㱸㵨㷶䑀䤨䧗䮠
+변:便變邊辯辨卞弁騈玭籩抃徧忭汴辮駢腁匾賆萹骿鴘拚邉変釆变辺昪㺹跰胼䪻䮁笾苄辩辫边骈匥峅汳炞犿玣甂稨糄藊覍辡閞㛹㝸㣐㦚㭓㲢㳎㵷㻘䉸䐔䒪䛒䟍便
+별:別瞥鱉鼈鷩彆别撇蹩莂潎䠥瘪鳖丿嫳徶憋暼癟虌蛂蟞襒覕鐅龞㔡㢼㿜䇷䋢䌘䏟䘷䟤䤢䥕䨆䭱䳤𩠻炦
+병:兵病丙竝屛秉炳柄倂昺昞甁餠幷騈浜輧棅並迸駢缾搒塀絣鈵鉼鋲并屏併餅逬瓶帲邴傡陃帡怲栟竮聠㨀乒幈恲洴甹苪蛃蛢軿頩䈂饼偋垪寎庰抦捠摒椪氞琕眪窉箳簈艵荓誁踫郱鞆鮩鵧㔙㙃㻂䋑䍈䔊䗒䨻䰃䴵䶄拼乓
+보:步保報寶補普譜輔甫逋堡潽菩洑褓珤湺靌簠俌黼葆捗鞴鴇盙宝寳莆歩踄椺賲堢藵㙛报补谱辅镨鸨埗媬寚暜歨烳煲緥蕔蚥諩鐠駂鮬鳵㙅㷛㻄㻉㾟䀯䋠䑰䩉䯙䲕䳈䳰䴐𤣰呆
+복:福服復伏卜腹覆複馥僕撲輻匐鰒洑宓茯蔔輹仆扑幞濮鵩蝮墣蝠箙菔袱㒒菐攴葍攵栿覄楅襆醭澓复辐鳆垘棴椱獛畐畗癁稪穙絥纀蕧虙虲襥諨贌踾蹼轐鍑鍢鮲鳪鶝鸔㓀㙏㚆㠅㬼㯷㲫䃼䇚䈏䑑䕎䕐䗱䞳䟮䧤䨱䪁䫝䴆䵗樸福踣復
+본:本呠楍絊㡷㮺㯻㶱䬱
+볼:乶
+봉:奉逢封鳳峯蜂蓬俸縫捧鋒烽棒峰熢琫丰綘篷葑夆菶鴌篈鳯塜賵芃捀艂蠭髼唪崶淎莑鏠凤缝赗锋仹埄埲塳妦摓桻槰樥浲湗溄漨焨犎琒甭盽竼纄蘕覂鎽鑝鞛韸韼鬔㛔㜂㠮㡝㦀㶻㷨㷭㷯㸼㻱䀱䆇䋽䒠䗦䗬䙜䡫䧏䩬䩼䭰䮾䳞䴶鬅
+부:父不夫部富復否婦浮扶府副付負賦培赴附簿符腐釜傅敷訃阜膚俯賻斧剖芙駙腑埠咐孵孚溥鳧缶莩趺俛艀仆祔俘鈇拊裒桴蔀榑掊苻鮒蜉袝頫抔涪麩玞跗罘蚨筟胕罦芣媍専仅痡瓿冨棓郛釡巭滏鳬尃怤捊柎咅暊砆秿㭪嚩弣捬枎犃璷萯詂錇㓡㠸㷌䔰䝾䫍凫妇怀肤讣负赋赙锫驸鲋麸伕偩剻勏吥呋哹坿垺妋姇娐娝婄峊巬廍懯抙旉椨殕泭渓烰焤玸琈畉磗禣稃竎箁篰粰糐紑紨綒緮缹缻腝荴蚹蛗蝜衭褔豧踎邞郙郶鄜酜鉜阝陚雬颫餢鬴鳺鴀麬麱麹﨓㕊㕮㟊㠫㠬㤔㤱㥉㧵㨐㩤㫙㭥㰴㲗㵚㷆㽬㾈䂤䃿䄮䊿䋨䍌䍍䍒䎍䎔䎧䏽䑧䒀䒄䒇䓏䓨䓵䗄䘀䞜䞯䞸䟔䠵䡍䦣䨗䪔䪖䬏䭸䮛䯽䱐䳕䳝䴸䴺䵾復踣福
+북:北踣僰鉳
+분:分憤奮粉紛奔墳頒芬焚盆忿糞噴雰扮吩賁汾昐体氛棼坌犇濆蕡枌畚朌湓轒帉棻砏笨肦膹黺鼢僨蚡黂翂衯玢秎羵鼖燌瓫訜豶躮鐼饙偾喷坟愤粪纷豮贲锛鲼倴兝喯坋奙妢岎幩弅捹撪朆桳梤橨歕泍渀瀵炃燓獖瓰竕羒翉翸聁苯葐蒶蚠軬輽逩酚鈖錛隫餴馚馩魵鱝㖹㞣㤋㤓㥹㨧㮥㯣㱵㷊㸮㿎䩿䭻䴅
+불:不佛拂弗彿黻紱髴祓茀芾岪艴韍咈巿紼怫昢刜坲帗煘笰仏払绂绋韨乀冹柫梻氟炥甶翇鉘鮄㘬㚕㞸㪄㺻䞞䭮
+붓:㖚
+붕:朋崩鵬棚硼繃鬅堋漰萠弸塴掤椖綳绷镚鹏倗傰嘣焩痭蹦鏰㥊㬟㵯㻚䙖䨜
+비:非鼻悲備比飛秘費妃卑碑肥批婢匪丕毖泌毘鄙扉譬庇臂裨沸憊緋脾誹痺蜚琵匕砒翡秕賁毗菲斐粃榧枇妣俾祕閟霏轡圮沘騑羆髀棐睥痞鼙邳紕貔贔悱椑腓庳陴仳芘淝篦芾濞蚍狒剕埤萆鞴鵯痹屁淠狉蓖郫騛篚畀疪禆庀痱裶啚媲鞞伾奰秠柲糒豼䀝嚭渄蠯䚹俻偹厞婓嫓屝昲箄聛膍陫馡㩌䤵备惫纰绯罴诽费赑辔钚镄飞鲱俷僃呸啤噽嚊坒壀夶奜婔嬶屄岯崥怌悂抷暃曊朇朼枈榌毞毴渒焷犕猆畁疕疿睤磇笓箆簲粊肶脴腗舭苤萉萞蕜薭蚽蜰蜱螕螷蟦襣諀豍豾鄪鈈鈚鉟錍鎞鐨阰隦靅靟飝餥駓髬魮魾鯡㑭㔈㔗㔻㗠㗺㘘㘩㠲㡙㣁㥱㧙㩺㪏㫵㮰㳪㵒㵺㸢㹃㺽㼰㽡㿙㿫䀟䀣䁹䃾䆏䇑䈈䉾䊌䊧䎵䑄䒈䕁䕗䘡䙍䚜䚰䛍䠊䠋䡟䡶䣥䤏䨽䨾䩀䩁䪐䪟䫁䫌䫠䬠䮆䯱䰁䰦䲹䴽泌辟
+빈:貧賓頻彬嬪殯濱嚬瀕贇牝斌浜玭檳鬢擯儐蘋邠苹顰繽豳霦鑌鬂矉臏賔䎙份馪璸髩薲蠙濵梹傧嫔宾摈槟殡滨濒缤膑贫镔频颦髌鬓㺍娦朩椕獱瑸礗穦豩顮驞髕㟗㡦㯽㰋㻞䚔䧬䨈
+빙:氷聘馮憑騁冰凭娉凴俜砯䀻骋仌冫慿泵涄淜靐㓈㵗䛣葑
+뼘:乀
+뿐:兺哛
+사:四事食士死思使史私寺師仕絲舍謝巳射司辭似賜社斯祀査沙詞寫捨邪詐斜蛇赦祠泗埈獅飼唆嗣徙紗些奢瀉娑麝簑肆俟乍伺蓑砂莎駟裟梭篩柶渣僿槎竢蜡糸笥榭騃姒卸闍撕楂駛缷剚咋汜傞覗鯊崽痧皶魦鰤辞查賖涘耜蓰屣冩簁賒挲辤禠舎虵辝髿禩肂衺柤厙嗄漇蹝戺柌蒒蕬鍦䣃写泻丝厍咝师狮筛纱蛳诈词谢赊赐铊饲馇驶驷鲨鸶䴓亊亖佀佘倳倽傻儍儩厶叓唦啥喳嘥噝塮娰孠峫嵖恖挱揸摣桫桬楒榹樝泀泤洍浉涻溮瀃灺燍牭猀猞猹瑡皻砟硰碴磃禗簔籭粆耍肀莏葸蕼藛虒蜤螄蟖蟴訯誜貄蹅躧逤釲釶鈶鈻鉂鉇鉈鉰銯鋖鐁閯飤餷騇騦魳鮻鯋鳾鶳鷥鼶齄㐶㓔㕐㕜㕽㖿㙦㚶㛖㜁㝍㟃㠺㠼㡸㩄㭒㱔㱝㲚㴓㴬㴲㵃㵔㵼㸺㸻㹑㹬㺨㺰㽄㾚㾴㾹䀅䄕䇁䇃䉣䎣䏤䓾䔋䔑䔮䛐䞏䠶䣉䣳䤬䥱䥾䦉䩖䫢䬷䭄䯯䲉䵦飼枱
+삭:數削索朔鑠槊爍箾蒴矟搠烁铄嗍揱溹獡鎙㩂㮶䀥䁻䅴䌇䖛數索
+산:山産散算酸傘刪珊疝霰蒜汕繖訕餕潸毿狻鏟澘剷橵姍孿閊產筭删㪚跚滻㦃仐痠隡产铲伞姗孪毵浐讪闩馓匴厁圸壭嵼摌杣潵狦祘笇簅糤舢藖赸軕邖鏾閂饊㛽㢫㪔㮼㯆㹌㹪䃟䈀䉈䊲䐮䚲䝜䡲䨷䴮
+살:殺蔡薩撒煞乷杀摋㐊蔱萨榝樧脎虄閷䊛
+삼:三參蔘森滲渗衫芟杉叅纔摻毿糝鬖椙櫼釤彡縿槮襂穇穼糁钐仨俕剼嘇幓弎曑椮檆毝涁犙甧糂糣罧葠蓡薓贂鏒閐㡎㣌㧲㭅㰑㵕㺑䀐䅟䊉䊏䥇䦂䫅䫩䫮䵇參叁参鰺鐥
+삽:揷澁颯鈒歃翣鍤卅霎霅唼挿澀鎝插牐箑靸趿涩渋钑锸飒偛喢帹歰甴箿翜臿萐譅遪雭馺㒎㚫㛼㩑㪪㰱㴙㵤㽂䈉䔼䙣䛽䝊䬃䬊䮜䮢
+상:上相想常賞商尙喪傷霜狀嘗詳祥象床桑像償裳庠箱爽觴翔孀廂湘牀橡嫦瀧峠倘甞殤顙徜緗晌塽鎟鬺状尚愓恦垧厢瑺礵丧鋿鏛扄謪鸘䘮鱨樉贘驦鮝㫾绱鲞伤偿墒尝殇缃觞详赏颡骦鲿鹴丄仩傸嗓嚐嶑慡慯搡桒桛槡滳漡漺潒灀磉絴緔縔葙蔏螪蟐蟓蠰褬襐鏯鐌鑜騻鯗鱌鱶鷞㜀㟄㦂㦼䉘䌮䒙䔗䔪䗮䡦䫙䫪䮣䴂䵰䵼樣儴祥
+새:塞璽賽鰓崽壐玺赛鳃噻愢瓕簺㗷㘔䈢䚡䰄䵘
+색:色塞索嗇薔穡愬槭濇瀒賾摵矠繬鎍啬穑赜铯嗦懎擌栜歮歵泎洓瘷穯轖銫齚齰㣱㥶㩙㮦㱇㾊䂹䉢䊂䞽塞
+생:生省牲甥笙眚鉎泩栍鼪殅湦珄苼貹﨡㗂㽒㽓䚇䲼䴤省
+서:西書序暑庶徐署恕緖誓敍逝瑞舒曙棲胥黍鼠犀薯嶼抒壻栖筮鋤絮墅捿婿叙紓噬撕鉏湑澨芧揟耡敘遾閪溆醑諝蜍㥠漵潻庻糈緒偦俆圕垿屖悇䋒䑕书屿纾绪谞锄卥唑嫬徆恓楈樨氥汿沀潊濖瑹癙硒稰簭粞糬縃聓聟舾蒣藇蝑蠴觢迉鏣魣鱪鱮鱰鵨鼡㐨㓾㘧㛉㜿㠘㢴㣽㭀㯕㵂㵰㷂㽰㾷䇴䈝䉀䋡䍱䓚䤱䦽䧈䧾䱬悆𧩑
+석:石夕席昔惜釋析錫奭碩晳潟汐淅蓆腊舃蜥鉐晰矽鼫释穸螫祏裼焬皙襫邜桞棤檡炻睗舄硕釈锡佦冟匇唽嬕惁扸沯澙焟磶緆菥蕮褯釸鮖㒪㙽㛫㛭㝜㫺㭊㱤䁺䂖䂙䂞䄷䖨䨛䲽
+선:先仙善單線船選鮮洗宣旋禪膳繕扇煽璿璇瑄癬腺亘羨銑蟬詵饍嬋霰僊蘚跣鐥渲琁敾湺尠燹譔綫鏇騸愃墡筅脧駪熯鱻姍姺嫙尟屳歚譱鱓縇鲜缮墠獮躚僎蟺嬗揎蟮襈軐㶍㷽䆄僐漩舩鍌鱔㵛禅线铣婵狝癣籼藓蝉诜跹选镟骟鳝傓僲塇奾嫸廯搧暶檈毨氙灗灷烍珗碹磰禒秈箲絤縼繏缐苮蔙蜁褼謆赻跴蹮鄯酰鍹颴鯅鰚㒨㔯㔵㘣㧥㩊㪇㪨㭠㯀㲔㳬㵪㺼㾌㿅䁢䁣䃠䄠䄳䄽䉳䍻䗠䘰䙋䙲䙴䚚䠣䡪䢭䢾䤼䥧䦅䨘䱇䱧䲂䳦洒㻽羡亙
+설:雪說設舌泄薛卨屑洩渫褻楔齧偰揲爇紲稧媟碟暬挈絏䙝枻囓焫躠緤褉樰㻡说亵绁设鳕乴伳僁哾抴揳榍疶禼糏絬膤艝蔎蛥説轌辥辪鱈㐥㓭㔎㞕㡜㣯㨝㳿㴮㴽㿱䝟䥹䨮䱑契㨹
+섬:暹纖蟾陝殲閃贍剡憸摻銛譫睒韱孅笘殱爓纎棎掞㴸䃸纤掺歼繊谵赡铦闪嬐撡攕晱炶熌燅襳覢讝㚒㣣㨛㩥㪎㰇㰊㺤䀹䁡䃱䆎䊱䊹䕭䠾䯭䯹
+섭:葉涉攝燮躡懾歙囁聶鑷灄顳爕摂讋屧籋渉夑鍱欇鞢躞嗫慑摄滠聂蹑镊颞屟弽徢疌蠂詟讘踂踙銸韘㒤㦪㰔㰼㴇㸉㸎㽊䜓䢡䤮䯀䯅𦁗葉
+성:成星省性姓城誠聖聲盛晟醒宬惺腥珹猩筬騂餳瑆渻垶峸狌晠煋郕鋮偗箵絾荿謃声胜诚铖骍墭娍曐殸皨睲窚篂觪觲鍟鮏鯎鯹㙚㝭㨘㮐㷣㼩㼳㽮㾪䁞䃏䇈䗌䚖䫆貹𦖤垩
+세:世說歲細洗勢稅貰笹洒繐蛻帨税嵗歳挩裞檅涗䵻岁细贳丗亗卋朑涚祱蔧跩軎轊銴齛齥㑕㔟㔺㢷㱑㸷䬽忕𡜧彗說蜕
+소:小少所笑消素召昭訴掃蘇燒騷疎蔬巢紹邵沼蕭宵逍簫梢搔遡梳塑甦瘙疏嘯銷韶瀟炤溯釗篠踈艘霄泝埽翛愬鞘酥繅卲劭蛸俏捎魈佋箾嗉筱塐樔膆鮹鰺䟽㪽咲穌焇焼销熽筲謏蠨傃㴑玿痟矂喿璅騒㗛愫慅旓櫹歗溸琑苏关啸巣扫潇烧稣箫绍缫萧蟏诉骚鲹鳋嘨囌娋嫊尕巶弰彇掻柖榡櫯毜氉溞漅潲牊窼笤筿簘綀綤縤艄莦萷螦蟰袑踃輎鄛颵颾髾鯂鯵鰠鱢齭㑿㔅㕖㙌㢝㥰㧧㨞㪢㫹㮴㲈㲖㲧㲵㴅㶮㸛㸴㿋䈃䈰䊥䏴䑹䒕䒚䔠䔥䔫䕅䘘䙼䛾䜹䝪䨭䬰䲆䴛潚
+속:速俗續束屬粟贖涑謖洬遬属蔌餗觫鋉梀誎簌続续谡赎僳憟樕殐潥藗藚趚㑛㔄㬘㯈䅇䌚䔎䔩䞖䥔䲇䴰
+손:孫損遜巽飡蓀飧飱喰噀孙损狲荪逊巺愻搎槂潠猻蕵薞顨㢲䁚䐣䕖
+솔:率蟀窣卛乺摔甩碿蜶㲞䢦帥𧗿卹
+솟:㕾
+송:送松訟誦頌宋悚淞竦柗鬆菘荣㩳㞞讼诵锶颂倯凇庺彸愯憽捒枀枩梥楤檧蜙鍶鎹餸駷㧐㨦㬝㮤㮸㹐䛦䢠䯳憃
+솨:惢䐝
+솰:唰
+쇄:殺刷鎖灑碎洒瑣曬惢晒鎻鏁锁縰鎩嗩埣㬠唢琐铩嗮涮溑砕繀㕞䈗䞆䣔䵀殺
+쇠:衰釗钊哸夊鞖㲤䪎
+수:水手數守首樹受授收雖修壽須誰秀愁遂隨囚殊輸需獸垂帥洙睡搜隋髓銖蒐酬羞繡粹袖瘦讐竪嗾狩嫂穗脩戍綏藪綬邃鬚岫燧隧涑嗽漱琇峀茱璲蓚銹叟讎售豎晬睟陲睢祟莠瞍颼殳酥廋溲膄脺泅濉籔膸饈随収数捜薮虽髄綉襚瀡倕滫䢘詶繻鎪䜿誶潄稤篲酧䏂惥擻橾櫢穂菙訹醻扌檖腄㒸䆳夀栦澻痩禭雔魗䇕䝂嬃嬦嶲杸氵滖瀭脽鏽㑯㥞䐹䜔䤹寿竖绣锈须兽帅擞树獣粋绥绶缍谁谇输铢锼雠飕馊馐䍁俢傁凁厜叜嗖嚺圳垨埀娷媭嬘嶿幁廀惾掱摉摗旞樇欶氺汓浽涭煫獀璓瓍瘶盨穟糔絒綇繍繸纗腧臹艏苬荾蓃蓨蕦螋裋譢賥軗遀鄋醙鎀鏅鏉鏥鐆鐩閖陎餿騪鮂鰽㑔㒘㖟㖬㘜㛐㛢㛮㛸㜐㝊㝽㟬㢑㣊㥅㥨㱁㲑㲓㲙㲣㴚㵞㵦㸂㸡㹋㻟㻽㼡㽷䄖䅡䅫䇓䈭䈹䉌䉤䋶䍋䐰䒘䔹䔺䕑䗏䗛䛵䜐䜬䝐䠔䠼䡭䡵䢫䤇䥙䥦䧌䩳䬒䭉䭨䭭䮟䯝䰅䰑䱸䳠宿璹嘼陏
+숙:宿叔淑孰熟肅夙菽塾璹潚琡倏俶橚儵鷫驌婌䎘璛埱蓿倐焂鱐玊掓㶖䃤䨹粛肃骕鹔儴尗摍珟莤虪諔跾鮛㑉㑐㓘㜚㝛㩋㪩㳤㴋㴼䃞䏋䑿䱙
+순:順純脣巡循旬殉瞬舜淳珣盾洵筍醇馴荀唇詢諄徇恂蓴楯錞焞蕣栒橓肫鶉紃狥鬊眴侚盹駨笋峋廵輴漘㥧㦏䋸䥎莼纯询谆顺驯鹑鹠伨偱咰奞姰憌揗杊榫槆毥浱湻滣潃犉畃瞚瞤碷磭箰簨芛蒓衠賐郇醕陙鯙㒐㔼㚝㝄㝇㡄㨚㫬㬀㰬㵌㵮㶷㸪㽦䀢䀵䏛䐇䑞䓐䔚䖲䘩䙉䜦䣨䴄
+술:戌述術鉥卹潏絉銊㺷荗珬沭欰蒁袕錰鶐㖅㞊㾁䢞䢤䮅䳳𡊍术
+숭:崇嵩崧滕菘硹㓽㟣㣝䯷
+쉬:倅晬淬焠伜琗㳃䘹
+슬:瑟膝蝨虱飋㻭厀鲺濏璱鯴㺩㻎𩇣
+습:習拾襲濕褶隰慴熠湿霫謵习袭鳛啃嶍槢溼漝飁騽鰼㒊㗩㠄㦻㿇䏉䒁䗑
+승:勝承乘僧昇升繩丞陞蠅塍鬙乗蝇䋲鱦椉氶㱡嵊憴縄绳冼呏堘抍斘枡桝榺橳洆溗焺畻竔脀蕂蝿譝阩陹騬鵿㐼㞼㮱㴍䒏䮪䱆
+시:十時始示市寺視詩試是施侍矢柴屍諡弑匙猜豺媤柿尸恃蓍謚豕翅屎嘶蒔昰枾啻厮緦澌廝柹偲禔撕諟兕豉塒顋枲諰釃翤鍉絁腮颸弒䌤眎鳲凘翨䲭乨毸漦襹揌犲褷䂠埘时缌莳视试诗酾铈飔鲥鸤兘呞咶宩崼嵵徥戠揓旹榯毢沶湤溡眂礻祡笶簛罳翄膪葈葹邿鈰鉃鰣鸍鼭㒋㒮㒾㔭㖷㚸㞔㣈㫭㮛㳏㹝㺇㻢䈕䊓䌳䏡䒨䓱䗐䙾䛈䜵䜻䟗䡳䢄䦠䩃䲩媞愢灑
+식:食式植識息飾湜殖軾蝕拭熄寔埴篒栻喰媳鉽烒蚀轼饣饰煶瘜禃籂蒠遈鄎鎴飠餝㥀㮩㴧㵓䤭䭒
+신:身信臣新神申辰辛愼伸晨紳訊迅腎燼宸薪呻蜃娠藎莘侁汕矧贐哂汛頣脤駪噺囟姺慎抻賮兟伩柛璶㾕峷鋠㜪烬绅肾荩讯识赆卂吲妽孞屾弞扟敒昚曟榊氠烥燊珅甡眒眘矤砷祳笉籶籸胂茞莀裑訙訠訫訷鉮阠顖鯓鰰鵢鷐麎㐰㑗㚨㛙㛛㢹㫳㭡㰮㳯㶦㶳䅸䆣䊁䒖䚱䛜䛨䝲䢅䢻䣅䪿䭀䯂䰠辰神詵
+실:室失實悉蟋飋窸实実怸榁螅鏭鰘㗭㣰㺙䊝䶡
+심:心甚深沈尋審瀋沁諶芯沉潯梣椹燖葚鐔鱏淰愖諗杺伈蕈㴱襑㝷宷枔鬵煁瞫覾㻣吣婶审寻浔渖谂谌镡鲟㖊侺吢噚堔嬸忄憳攳桪樳橬璕瘎蟳讅谉邥鄩鈊魫鱘㔤㚞㚯㜄㜦㣺㤈㰂㶒㽸䉇䚓䤁沈
+십:十拾什辻兙卌椞瓧竍籵趇䦹拾汁
+쌀:㐘
+쌍:雙双䨇艭孇欆﨎㕠䉶䝄
+씨:氏
+씻:㘒
+아:兒我雅亞餓芽牙阿衙俄訝啞鴉峨娥鵝莪蛾迓疴哦婀丫峩娿砑笌錏鵞痾児婭亜椏稏妸鵶俹聣䋍亚哑垭娅挜桠氩痖讶钶铔锕饿鸦鹅䅉伢厊吖唖啊妿孲屙庌掗氬涐犽玡珴疨瘂皒睋硪蕥蚜襾覀誐鈳錒鐚騀齖㚳㝞㢌㢐㦱㧎㧴㰳㿿䃁䄉䄰䋩䋪䍓䖸䢝䪵䳗䳘猗枒唲
+악:樂惡岳握愕堊顎嶽幄渥鰐鄂鍔齷萼諤鶚咢喔噩卾腭偓覨齶楽鸑遌崿蕚㮙堮恶鳄乐垩悪谔锷颚鹗龌偔僫捳楃櫮湂琧腛蝁讍鑩鱷㓵㖾㗁㟧㠋㦍㹊䠎䣞䥃䫷嗌攊
+안:安案眼顔岸雁鞍按晏鮟鴈犴贋桉顏鷃贗䬶楌㷳䅁赝颜铵顸侒偐垵堓妟姲婩峖暥氨洝矸荌軅銨錌鞌頇騴鳫鴳黫㗴㘖㟁㫨㸩䀂䢿䨃䮗䯃䳛𤎝䭓喭
+알:謁閼軋斡遏訐戞頞揠鴶嘎穵戛歹嶭猰圠捾堨钀䵝讦谒轧阏劜咹嘠屵挖擜歺濣焥窫聐胺錷齃齾﨟㖕㖖㧉㩵㷎䀑䁊䔾䥟䮸䯉䯵䰲按
+암:暗巖癌庵闇岩菴俺唵諳黯嵓頷馣晻媕啽腤葊蓭嵒碞韽揞黭痷萻鵪黤䳺埯谙颔鹌匼啱堷壧巌巗盦盫礹罯裺誝隌雸鶕麙麣黬㘙㛺㜝㞄㽢䅖䖗䨄䫡䬓䯥喑
+압:壓押鴨岬狎礏罨鸭庒岋姶㔩䑪压圧儑匎圔庘曱炠砐硆鞥鰪㕎㛕㳌㷈㾎䆘䑥䜙匼
+앙:仰殃央怏昻鴦秧盎鞅泱卬坱昂枊䭹抰胦㟅䀚鸯佒傟咉姎岇岟慃炴眏紻羻詇軮醠鉠雵駚㒕㭿㹧㼜㿮䄃䇦䒋䒢䘧䩕䬬䭺䱀
+애:愛哀涯碍埃艾喝崖隘靄曖厓礙藹欸騃睚皚瞹挨僾薆靉捱獃磑娭唉啀噯崕漄瑷敱爱閡㝵壒䔽譪呃毐璦㣻嗳嫒暧皑硙蔼锿阂霭伌叆哎唲嘊堐塧娾嬡嵦懓懝敳昹濭燰猚皧砹硋賹銰鎄鑀餲馤鱫鴱㕌㗒㘷㤅㦈㱯㶼㾏㿄䅬䕏䝽䨠䬵䶣嗌
+액:額厄液腋扼縊掖阨搤戹呝詻軛頟缢轭额峉涱砨磀苊蚅豟貖軶鈪阸㟯㧖䘸䝈䩹䱮
+앳:厑
+앵:鶯櫻鸚罌嚶鷪罃嫈鸎甖䴍嘤桜樱罂莺鹦奣甇譻㴄㹙㹚䁝䨉
+야:夜野也若射耶惹倻椰爺冶揶埜捓枒喏琊鋣嘢焲瑘䤳爷铘乛亱偌吔壄婼擨漜祂釾鎁鵺㖡㘃㙒㭨䓉䥺若
+약:弱藥約若略躍掠葯蒻鑰籥禴爚篛鰯龠鶸瀹礿㵸箬箹蘥㿑药哟约薬跃叒喲嵶楉洂渃纅藞鄀鰙鸙㒢㜰㰛䋤䐞䖃䚥䟑䠯䤀䶳掠略攊
+양:羊兩陽洋良養量讓揚凉梁樣糧楊壤諒亮襄孃瘍攘釀恙禳痒佯暘穰瀁敭煬癢驤漾颺徉鑲瀼烊眻蘘輰譲様㨾样昜鍚懹勷䑋崵㐮纕壌饟䉴垟欀瓖諹嚷禓阦㔦扬镶阳养嬢旸杨炀疡让酿醸钖飏馕骧劷勨奍忀懩攁檨氜氧氱爙獽珜瓤礢穣羏羕蛘蝆躟鐊霷鬤鰑鴹鸉㠤㦹㬕㳱㺊䁑䍩䑆䖆䖹䬗䬺䭐䭥䵮椋亮兩凉梁糧良諒量儴
+어:魚語漁於御禦圄瘀馭齬圉飫敔淤茣扵蘓峿籞菸鋙渔语铻饫驭鱼龉仒唹棜秗箊篽蓹蘌醧饇鯲鷠䁩䏸䐳䔡䗨䢩䥏䰻䱷䲣䘘閼
+억:億憶抑臆檍薏嶷繶澺亿忆悥癔肊訲餩㫇䖁䗷
+언:言焉彦諺堰偃讞嫣鄢鼴匽鼹傿彥琂唁漹蔫喭蝘讠谚谳嘕墕娮嵃愝椻牪甗篶萒褗訁躽遃郾隁鰋鶠齞齴㢇㫃㰽䁙䇾䓂䗡䞁䤷
+얼:蘖孼臬孽糱乻臲闑隉嵲糵枿㜸櫱蠥镍巕槷鎳㙞㮆㴪䡾噦讞
+엄:嚴掩奄儼俺淹广閹晻崦弇罨曮醃釅渰揜顩㤿㛪隒严俨厂腌觃阉剦厈厳噞孍嶖欕硽覎龑㚧㢂㢛㭺䄋䉷䕾䛳䣍䲓䶫䶮厱吅
+업:業嶪鄴嶫业㡤澲邺殗餣驜鸈㗼㡋㪑㱉㸣䁆䌜䎨䤶䧨䱒䲜
+엇:旕
+엉:㫈
+에:恚曀饐殪㤬
+엔:円
+여:女如餘與余汝旅予麗輿勵呂廬礪驪閭黎濾歟轝茹璵艅礖舁与欤畬洳旟䂊蕷鴽伃妤澦籹馀滪畲舆蓣铷侞嬩忬悆懙桇櫲狳玙畭硢礜穥筎籅肗蕠邚銣雓鮽鸒㒜㦛㶛㺞㼂㾒䂛䑂勵呂女廬旅濾礪閭驪麗黎黧邌戻
+역:力亦易逆歷役驛譯曆域疫繹轢斁嶧懌鬩閾淢埸蜮晹㴒湙帟棫燡睪鶂坄歝琙魊峄怿绎訳译阈駅驿鹝鹟伇圛垼墿屰戫曎棭炈痬硛緎縌罭虉豛醳鈠鯣鶃鷊㑊㘁㚜㣂㴁㶠㻛㽣䍞䓈䓪䖌䡛䦴䧕䭞䮙䰥䳬力曆歷轢攊
+연:年然連煙練硏鍊宴延緣演憐戀聯蓮燃軟淵燕沿鉛咽衍捐硯漣姸筵輦懦椽鳶撚煉烟涓璉沇娟涎堧嚥挻秊縯讌臙莚吮掾悁兗埏渷蠕鷰嬿囦曣櫞蜵葕研兖缘壖蜒輭鈆碝㮒愞耎綖鋋妍珚縁㳂肰蜎蝝㳙撋抁灁瑌瓀礝醼䂩橼渊砚软铅鸢剈嘫噮姢娫嬊嬽揅昖棩椼樮橪渁渆渕溎烻狿緛繎肙胭蔅裫觾蹨轋郔酀驠鼘鼝㒄㓴㕣㜣㝚㦓㨎㫟㬫㭇㳄㳭㴊㶜㷑㷼㸐㸶㻆㽭㾓㿵㿼䀽䂴䄗䆓䊙䍾䓴䔳䕼䖄䗎䗺䙇䛇䜩䞂䢥䨊䬇䬼䱲䳣䳿䴏均戭年憐戀撚漣煉璉秊練聯輦蓮連鍊唌閼孿熯羨
+열:說熱列悅烈劣裂閱咽涅爇噎拽揑潱閲恱湼阅悦热蠮㖶䆕䆢䊦䭇列劣咽烈裂說挒戻
+염:念炎鹽染廉厭閻焰簾艶殮苒髥琰剡捻枏錟塩冉灎饜魘灩靨黶扊檿焱懕檶釅燄髯曕猒㷔袡豔灧偣冄厴呥嬮蚦䀋艳厌厣恹殓滟盐酽闫阎餍魇鲶黡乵壛夵姌媣懨抩敥棪櫩灔焔珃艷蒅蚺衻豓酓醶閆鯰㚩㦔㱘㶄㷋㷺㿕䅧䌪䎃䎦䒣䛁䣸䤡䦲䫇䶲廉念捻殮簾歛
+엽:葉獵燁曄叶揲楪魘爗熀靨曅饁瞱曗擛晔烨靥馌偞僷嚈擪擫枼枽殜皣瞸鐷㒯㩎㷸䈎䭎䭟獵喦
+엿:㖲㖳
+영:永英令領榮迎營寧靈嶺影詠映泳零盈塋鈴瑛玲囹暎穎纓瑩聆怜楹瀛潁嶸霙獰濚渶瀯羚煐瓔鍈嬰咏贏縈嬴郢癭韺浧濴碤蠑营営嵘栐禜攖頴灜覮籝籯偀媖溋濙瀴蘡婴撄栄狞璎瘿绬缨萦蝾赢锳颍颕颖嬫孆孾巆巊廮怺愥摬攍攚朠柍柡梬楧櫿溁爃璄盁矨礯緓萾蝧蠳謍賏醟鐛鑍鶧㘇㜲㡕㢍㨕㮠㲟㵬㶈㿘䀴䁐䃷䊔䋝䑉䑍䕦䙬䚆䣐䦫䨍䪯䭊䭗䭘𢥏荣令囹寧嶺怜玲瑩羚聆鈴零靈領
+예:禮例藝豫譽銳隷預睿泄醴濊芮詣曳裔穢洩刈乂倪霓猊汭蘂叡隸翳繄睨蕊鯢獩曀蛻枘拽蜺薉鷖蕋蚋囈瞖麑嫛惢掜苅瘞羿勩蜹曵䓲䛖輗蓺貎䃜埶堄晲㡼枍瑿蘙觬鋭㙯誉锐勚呓瘗秽艺诣预鲵鹥兿呭壡婗嫕寱帠怈悘捙栧棿槸橤殹淣玴瘱秇繠蘃袣褹襼詍讛跇踅郳鏏靾饖黳齯㖂㙠㙪㛳㜒㝣㡫㤤㨅㪒㪫㲊㲼㵝㵩㹭䂱䄁䄿䆌䆿䇤䇩䋵䍲䎈䕍䖊䗟䘽䜜䜭䞊䡺䢃䮘䮹𣫙艾兒芸例禮醴隸医澧豊鱧礼礼禰
+오:五午惡吾誤烏悟吳嗚汚娛傲奧梧墺伍寤懊禑澳鰲鼇晤敖塢熬獒筽蜈俉旿忤嗷媪汙遨鏖襖迃驁媼窹迕鼯聱唔慠謷隩捂鏊仵俣圬噁嫯茣杇悞䫨吴污牾呉洿厫噢鄔嗸扷浯螯廒璈㹳圫嵨嶅擙珸祦郚鏕䎸磝鋘隖鷔㥿鳌乌呜坞奥娱岙悮袄误钨骜乄啎埡奡娪娯嶴弙忢摀摮歍汻洖溩滶澚焐熓爊獓玝瑦痦窏繺肟脵蔜蘁螐謸趶逜遻鎢鐭镺隞鰞鴮㐅㑨㜜㜩㟼㠂㠗㢪㤇㩠㬳㮧㱬㻍㾲㿰䃖䐿䓊䖚䛩䜑䜒䞛䡧䥝䦋䦜䫓䮏䮯䯠䴈䴠䵅燠惡迂
+옥:玉屋獄沃鈺鋈狱莹钰剭媉砡箼軉鳿㓇䑁䞝
+온:溫穩蘊縕瘟瑥醞慍氳韞媼昷薀轀熅饂鰮温愠藴蕰氲醖馧鞰榲蒕塭瘒鎾蕴酝揾榅煴缊辒韫鳁搵桽殟緼蒀褞豱輼闦鰛㝧㬈㼔䅱䦟䦷䭓𥠺𥁕媪稳穏
+올:兀膃嗢腽杌卼屼扤矹㐏乯䪲淴瞃阢靰鼿齀㐚㐳㽾䑢䦍兀
+옹:翁擁雍壅甕邕瓮饔癰顒喁蓊雝滃罋禺廱癕痈臃䩺㙲㝘拥颙勜嗈嗡噰塕嵡暡澭灉瞈聬蕹螉郺鎓鰅鶲齆㘢㜉㢕㨣㮬㴩㷏㺋㻾㽫㿈䈵䐥䔨䗸䱵
+와:臥瓦訛蝸渦蛙窩鍋窪娃洼哇媧涴譌萵囮枙窊婐猧卧鼃吪䨟捰漥鈋涡窝莴蜗讹佤咓唩搲攨涹溛畖砙迗邷頋㘥㛂㧚㹻㼘䂺䆧䠚䰀䵷倭
+왁:䢲
+완:完緩莞頑宛婉阮琓玩浣腕翫椀琬碗梡脘豌惋岏蜿盌刓涴忨垸妧薍剜抏輐园缓顽唍啘埦婠嵈帵捖捥烷睕羱萖貦贃㘤㛡㝴㣪㱧㻨㼝䖾䛃䝹䯈䯛鋺杬
+왈:曰刖嗗聉䚴
+왕:王往旺汪枉尫迬瀇徃尢仼㲿尣尩尪彺忹暀蚟㑌㒬㞷㳝㳹㴏䤑䶭迋
+왜:倭娃歪媧騧娲劸緺躷㗏㰪䶐矮
+외:外畏猥巍嵬聵煨隗磈偎崴碨嵔渨隈廆桅椳詴懀揋腲聩鳂峞徻愄溾瘣葨鍡鮠鰃㙗㛱㞇㟴㠕䃬䋿䠿䫥
+욋:夞
+요:要樂料了謠僚遙陶搖腰遼堯妖耀療曜姚尿擾撓饒邀夭寮僥燎窈咬凹拗窯寥繞瑤蓼嶢繇橈燿蟯幺徭澆徼殀軺蕘遶窅嚙坳鷂祅穾銚墝偠喓嬈么揺謡摇窑瑶窰颻㴭尭傜宎袎溔騕䙅窔䁏䆗嶤珧芺葽訞㨱䁘䢣䯚谣侥娆尧峣挠桡浇绕荛蛲遥飖饶鳐鹞仸吆嗂垇垚垰婹媱嫑岆崾徺愮憿抝暚枖柪柼梎楆榚榣烑熎狕猺矅磘筄舀艞苭蓔蘨襓覞詏讑軪輋鎐闄隢靿餆鰩鴁鴢鷕㑃㑱㑸㑾㕭㘭㙘㝔㞁㟱㧒㫏㫐㹓㹛㿢䄏䆙䆞䌁䌊䌛䍃䔄䖴䚺䚻䠛䫜䬙䳩䶧了僚寮尿料樂燎療蓼遼
+욕:欲浴辱慾褥縟溽蓐鵒鄏昙缛鹆嗕媷峪輍鋊㦺
+용:用容勇龍庸踊鏞茸鎔傭溶瑢熔聳湧蓉涌冗墉俑甬慂榕埇舂慵宂踴憃嵱筩硧蛹傛槦佣鄘㼸牗摏牅髶蹖䢇耸镕镛鲬鳙傇勈塎媶嫆嫞彮恿悀愑愹搈搑榵氄滽砽穁穃縙苚褣軵鯒鰫鱅鴪鷛㐯㛚㝐㟾㣑㦶㦷㫪㯴㲝㲨㶲㺎䄾䇀䇯䈶䗤䞻䠜䡆䡥䢆䤊䧡䩸龍竜龒
+우:右牛雨友又宇于尤憂遇愚優羽郵偶佑祐禹迂虞寓隅禑雩紆瑀盂旴亐芋藕玗嵎釪吁亏堣耦踽盱喁竽俁迃疣耰禺麀麌庽杅鍝俣亴偊吽謣齲訏圩穻㝢塸櫌苃嚘懮訧㘾㚥䁱噳扜楀瀀纋肬腢㤑㷒䋅䨞叹优忧怄扰犹纡邮鱿龋吘媀峟怣慪扝挧桙櫙歶汼沋湡澞牜獶盓祤翢芌荢萭蕅虶衧訦邘鄅鄾酑鏂陓駀骬髃魷鯃鸆齵㒁㒖㕛㕱㙑㙖㚭㝼㡰㥑㥥㦙㪀㬂㱊㲾㳓㺮㻦㼴䄨䆰䉱䊸䌂䌔䍂䒜䚤䟳䢓䣁䣿䥳䦀䦸䦾䨒䨕䩒䩽䴁燠羽噢惢
+욱:旭郁煜頊昱勖澳彧栯稶燠隩勗䤋薁稢㮋顼喐旮朂礇㤢㦽㰲䉛䜡𢒰噢
+운:雲運云韻芸暈隕殞耘蕓澐橒熉紜韵惲沄霣篔餫鄆鄖溳夽愪抎縜韗䩵殒恽筼纭运郓郧陨喗囩妘枟涢眃磒秐繧耺腪蒷蝹賱齳㚃㛣㜏㟦㩈㻒䆬䇖䉙䚋䞫䢵䨶䫟䲰員暈
+울:鬱蔚亐熨欝㭗菀鬰爩黦䁌欎灪㐛㠨䖇䵥𠃗
+웅:雄熊䧺僌㞲㷱
+원:元原遠園願圓怨院員源援苑瑗袁媛寃猿鴛阮轅垣爰愿琬湲沅嫄洹円冤圜鵷蜿黿謜猨杬楥綩芫薗鋺騵貟逺畹晼圎榞㤪㥳䲶夘眢踠夗溒茒薳邍鶢䩊䲮员圆诨贠辕远鸳鹓鼋䓕倇傆傊厡厵塬妴媴惌朊榬獂盶禐笎箢葾蒝蒬蚖蝯螈衏褑褤諢豲邧酛鈨鎱闧顐駌魭鶰㐾㝨㟲㟶㠾㥐㨬㷧㹉㽜䅈䈠䏍䑱䕂䖠䖤䗕䘼䛄䛷䡝䥉䩩䪭䬧䳃䳒䴨婉阮楦园
+월:月越鉞粤刖粵樾軏戉抈狘钺钥仴岄怴枂泧蚎蚏跀鈅㜧㞽㳉䄴䋐䎳䞲䟠䡇䢁䤦䬂
+위:位危爲威偉謂衛委慰圍僞胃違倭緯尉魏蔚渭韋萎瑋葦蝟暐褘蔿為諉闈衞逶喟韙痿葳撝煒幃熨韡餧潙骪喂猬偽㙔蘤骫罻蝛躗㗸徫湋硊縅蜲䦱嶎愇藯躛頠骩䘙为伪伟卫囲围帏涠炜玮纬苇袆诿谓违闱韦韪儰叞喡喴噅噕墛媁媙媦孬寪峗崣楲洈潿煟熭犚犩緭蒍蘶螱蟡褽覣讆讏贀踒鄬鍏隇霨韑韚颹餵鰄鳚㖐㙎㞮㟪㢻㣦㥜㦣㫉㬙㮃㷉㻰䈧䍴䍷䙟䧦䪘䬐䬑䭳䲁䴧厃嘳
+유:有流由油留猶柳遺遊酉唯幼柔惟類裕悠誘乳儒維愈幽劉兪踰庾楡紐癒諭游宥喩溜諛鍮琉愉柚蹂揄攸猷綏逾濡孺臾瑜侑硫杻繇萸洧楢釉籲帷牖壝囿腴逌莠糅揉蕕蕤窬黝瘐緌窳讉呦鮪蠕褕泑冘蚴蝤鼬斿瘉蚰鞣龥襦俞覦喻嚅嵛㓜褎輶蝣褏婾曘蜼㳺浟㽔䛕擩槱羑毹狖薷逰濰隃媮滺㽥卣痏婑楺渪甤㺄䘱崳怮榆歈煣睮秞羭腬葇趡踓輏迶醹鈾銪鍒騥㥚㹨㾞潍维莸觎诱谀谕遗铀铕颥鲉鲔丣偤匬唀堬姷媃媨嬬孧寙岰峳庮抭斔斞桵梄楰櫾毺渘湵濻瀢燸牰琟瑈瓇眑禉禸羐聈脜芕茰荽萮蒏蓶蕍蜏蝓蝚螤螸貁貐輮邎鄃酭醀鑐韖顬騟鮋鰇鱬鶔㐡㐵㒡㔱㔽㕗㗀㛜㡏㣸㧫㫍㫿㬰㳊㳛㳶㴗㶋㶙㶭㹘㺠㻀㻥㼌㼶㽕䀁䂋䃋䅎䅑䅗䆜䐓䑊䑻䒴䔀䗽䚃䛻䜅䜽䞕䞥䢊䢟䧷䩱䪋䫱䬀䬔䰆䰭䰰䱂䳑䵋需劉杻柳流溜琉留硫紐類吁橊靵
+육:六肉育陸戮堉毓儥淯錥哊唷喅宍棛焴蒮蘛蜟袬逳㣃㥔㻙䋭䘻六戮陸勠
+윤:倫輪尹允潤閏崙胤鈗淪贇勻畇奫玧昀鋆酳閠狁蝡㣧阭润赟闰橍膶荺蜳馻㠈㽙䤞䦞䪳沇倫崙淪輪
+율:律率栗慄聿潏矞茟䢖欥鴥噊燏繘銉驈鱊鴧㐕㐠㯨䋖䫻䮇汩律慄栗率凓
+융:隆融戎絨瀜狨羢漋娀㭜肜駥绒曧毧茙螎䘬隆
+은:銀恩隱殷誾垠圻慇訔听憖嚚狺溵檼癮垽鄞圁珢齗齦隠隐穏稳垦㤙檃㥯櫽泿慭濦磤㶏憗懚煾犾蒑瘾訚银龂乚嗯峎峾嶾摁斦檭猌蒽蘟讔㐆㒚㕶㙬㡥㥼㦩㴈㹜㹞䅰䇵䌥䓄䖐䖜䨸䭡䴦𤨒訢𪙤𨶡眼
+을:乙鳦圪钇釔䎲
+음:音飮陰吟淫蔭喑愔霪崟廕隂䕃飲瘖婬霠阥霒荫阴饮乑侌噖噾崯摿淾烎癊碒窨苂荶訡趛鈝韾鷣㕂㖗㞤㱃㸒䚿䜾䤃䨙䨧䪩
+읍:邑泣揖挹悒浥裛湆䭂俋唈歞湇㘊㱞㴔㵫䇼䉗䓃䔱
+응:應凝鷹膺譍应応鹰噟軈㒣㣹㶐㶝䧹𥌾
+의:衣意義依醫矣議宜儀疑誼擬毅椅縊倚懿蟻薏艤錡猗嶷欹漪儗劓螘饐凒礒医义冝扆顗宐檥毉竩㼁禕旖犄薿㠜㦤譩㩘䝘䴊仪拟祎蚁议谊铱镱饻亄偯吚嬑嬟孴寲嶬庡撎旑椬檹燱狋畩稦籎羛萓藙螠衤觺譺豙輢轙逘郼醷鈘銥鐿顡餏鷾鸃㓷㕈㕒㘈㛄㝖㠖㢊㥋㦉㫊㬾㱅㱲㳖㽈㾨㿲䉝䉨䒾䓹䝝䣡䧇䧧䪰䫑䫯䬥䭲䰙䰮䰯䲑
+이:二耳里利理異以而李已移易吏離履裏梨伊夷泥珥弛貳怡罹餌裡痍爾痢姨貽邇彛肄苡飴荑彝迤訑詑洟咿珆栮尔隶鮧坨頉頤羡尒异圯薾迩儞匜貮詒迆洱眤輀杝敡眙貤轜尓暆柂駬彜洏彞栭酏頥羠苢蛦黟佁刵崺弍扅攺樲潩眱眲綛胹蛜衈謻趰迻髵㑆㕥㠯䔬弐诒贰贻铒颐饴饵鲕鸸乁伿佴侇侕咡咦媐宧峏峓巸廙弬恞枱桋椸歋殔毦洢熪狏瓵笖箷簃粫聏肔胣胰荋螔衪袘袲袻誀跠迱鉯鉺陑隭顊鮞鴯鶍㐌㑥㒃㖇㛅㛋㜇㢮㢽㣇㥴㦾㧠㮕㯩㰘㰝㰻㴣㹫㺿㼢䄬䋙䌺䎟䎠䎶䏪䔟䙹䛂䝯䞅䣵䧅䩟䬁䬮䮊䱌利吏履易李梨泥理痢罹裏裡里離阤灑黧剓刕隸隷禰厼
+익:益翼翊溺翌匿謚瀷弋鷁熤榏釴杙嗌艗黓䄩谥鹢浳熼獈穓膉芅蛡隿霬骮齸㔴㚤㜋㢞䋚䌻䘝䣧䯆䴬匿溺益
+인:人仁因引印寅忍認隣姻咽麟刃湮鱗吝燐蚓靭璘茵絪靷藺堙仞禋夤氤裀婣洇扨籾芢訒軔儿囙紉闉戭牣諲韌鏔駰䄄垔湚釼陻㣼仭欭歅璌筃螾纫认讱轫铟韧骃亻凐刄囜屻岃廴忈忎朄朲杒梕殥洕濥秂秵粌緸肕茚荵蔩躵鈏銦靱鞇魜鮣㘻㝙㠴㧈㧢㪦㲽㸾㽼䀔䀕䃌䇙䍰䏖䏰䑒䒡䓰䧣䲟𣍃𦟘吝燐璘藺隣鱗麟
+일:一日逸壹鎰佾溢佚馹軼泆釰皼衵壱轶镒驲劮呹囸夁嬄弌浂燚辷鈤鴩鷧㳑䒤䭿䳀𨓜逸益
+임:林壬任臨賃姙淋稔荏恁妊衽飪絍銋袵餁紝棯腍鈓㶵䄒临纴赁饪栠栣祍秹菍軠鵀㤛䇮䋕䏕䚾䛘䭃林淋臨惏
+입:入立笠粒卄廿込圦扖杁魞鳰立笠粒叺
+잇:㗡
+잉:剩孕仍芿媵剰賸礽陾䞉扔膡艿辸㑞㚺㞌㭁㺱䄧䚮䵴
+자:子自者字姉慈資姿玆紫恣刺滋疵雌磁炙諮藉煮仔蔗瓷炸咨孜茨薺茲貲眦孶訾赭粢髭觜泚柘耔鷓眥鶿牸胾呰鎡莿鮓嬨孖茈虸蚱頿兹姊扻煑趦朿胔趑餈孳嵫庛訿澬㧗榨杍啫栥秭稵㹀䵭呲姕橴笫骴䄍䏑䳄鹚蚝谘赀资锌镃鲊鲝鹧刾吇啙嗞垐塖宱樜毑溂溠濨熫玼珁甆痄矷礠禌秄秶籽糍緕纃胏芓茊茡薋蛓螆蟅蠀赼趀鄑醡鈭鋅頾飷飺髊鮺鰦鴜鷀鼒齍㑑㓨㖢㘂㘞㘹㚗㜽㠿㢀㤵㧘㪥㫮㰣㰷㷷㺆㺭㾅㾳䂣䆅䈘䋾䔂䔝䕢䖪䗪䗹䘣䙻䛋䠖䦻䧳䨏䩾䭣䰞䰵䲿褯齊
+작:作昨爵酌杓灼雀鵲綽勺嚼芍醋炸斫酢怍焯碏柞岝汋犳斱妁鷟婥爝皭圴扚禚筰䱜猎绰鹊仢妰岞烵焳熦爑皵秨稓穱繛苲莋謶趞鈼鐯靍飵㑅㘀㤰㩱㪕㬭㸲㹱䅵䇎䋏䎞䎰䝫䞢䦃䧿䲵舃
+잔:殘盞棧孱潺戔剗驏残醆僝刬戋栈盏骣嶘拃桟潹琖菚虥虦輚轏㟞㥇㮍㱚㻵䎒䏼䗃䙁䝳䩆䱠䴼
+잘:囐乽
+잠:潛暫蠶箴簪湛岑潜蚕涔梣笒濳蹔蘸埁簮熸篸賺撏蠺挦暂臜赚兂喒寁揝撍昝硶臢蝅譧趈鐕㔆㞥㟛㣅㺘㻸䁮䃡䅾䍼䐶䗝䗞䘉䟅䣟䣠䤐䫈䭕䰼䲋䳥
+잡:雜閘襍磼霅卡囃眨匝迊雑帀啑煠咂币杂咔嘁抸拤沞疀砸譗鉔雥韴㧜㬁䕹䙄䞙䨿䪞䵽
+잣:㗯
+장:長場將章壯狀張掌丈腸帳障獎葬藏莊墻裝粧臟匠庄璋蔣樟杖仗獐醬漿檣薔奬臧贓牆欌暲将装戕瘴嶂鏘糚漳萇奘賬麞牂妝嬙廧橦鄣傽羘餦壮墙蔵荘膓奨臓贜塲髒駔槳慞嶈螿扙斨粻樁蘠醤摪賍蹡奖脏赃场妆嫱帐张桨桩樯浆肠苌蒋蔷螀账酱锵长驵鳉丬仉仧兏匞匨塟墇墏壵娤嫜幛幥弉梉焋爿牄瓺痮瘬瞕礃粀罉艢蔁蟑賘躼遧銺鏱鐣鑶镸鞝騿鱂鱆㘯㙊㙣㛇㢓㢡㮜㯍㵴㶓㼻㽴㽵䉃䊋䊢䍧䍭䒂䗅䛫䞪䠆䯴䵁狀状
+재:在才材再財哉栽載災裁宰滓齋梓縡渽齎灾纔菑榟夈扗崽賫㢤䝴賷㦲捚烖賳㦳赍斋财载龇侢傤儎喍斎洅溨睵酨釮鉙齜㒲㗍㘽㧳㩟㪰㱰䍉䏁䬩䮨䴭䵧齊
+쟁:爭錚諍箏崢鎗瞠鐺琤猙争峥筝掁崝掙䋫挣狰诤铮噌崡棦碀趟鏳鏿饓鬇㓌㬹䍵䟫䦛䦶䱢
+저:低貯諸著底抵沮躇猪邸咀箸詛狙苧儲楮佇這渚紵杵疽雎樗菹姐觝藷齟詆氐宁柢瀦苴杼袛潴牴蛆羝褚豬罝岨芧陼伹筯泞葅趄翥竚滁䃴眡櫧篨詝袓怚抯摴疷砠禇㡳㫝呧弤疧茋㤖伫储柠槠橥纻苎诅诋贮这龃仾劯唨坥坾墸奃她媎庅拞掋櫡櫫濐眝羜聜菧蕏藸蝫蠩豠趆跙軧阺骶鯳鴡㑏㓳㝉㡹㪆㫂㭬㭽㯉㵭㶆㸖㾻㿾䃊䇡䈌䊰䍆䍕䎝䏣䐗䘄䘢䠧䡤䢸䣌䣷䪶䬡䭖䱉猪諸
+적:赤的敵適賊積籍跡績摘寂滴蹟笛炙迹嫡藉謫狄吊迪勣翟鏑荻糴逖覿幘磧樀菂馰踖啇篴靮廸頔苖逷耤籊擿讁墑䟱嚁趯㰅㺓庴樍歒甋硳襀鸐积碛籴绩觌谪贼镝唙啲嘀廭戝旳梑浾漃灻烾熵玓瓋癪聻肑葃蔋蔐藡蠈豴躤鰿㒀㠃㢩㣙㭙㯖㹍䁤䊞䊮䚍䚐䢰䣢䤲䨀䨤䮰䯼䰹䳭䴞䵂䵠炙
+전:田前全電戰展傳典錢專轉殿顚甸悛奠箭銓箋塡餞篆纏剪煎廛氈輾顫澱癲栓鐫詮雋佺佃鈿琠淀筌塼畑靦牋畋腆顓翦戔瑱痊湔縳旃躔巓羶荃磚戩鸇吮甎邅囀飦澶揃栴屇餰鱣槇錪畠籛膞輇嫥癜鄽鋑靛鬋銭烇竱瑑戦跧戬笺闐剸填氊饘㙉橏倎纒膻譾顛淟沺搌瘨縓謭槙滇傎瀍牷拴瑼硂窴篿䇳搷晪朘瑔㕓㫋䡒谫镌专伝传啭巅战毡电癫砖缠觍诠転转辁辗钱钿铨阗隽颛颠颤饯鳣鹯䩄偂厧叀唺堟壂壥姾婝婰媊孨峑嵮巔帴彅恮捵擶攧敟旜暷椣椫椾榐樿櫤歬湹猠瑐璳痶皽盷睓碊碘磌篯糋絟緾羴脠腞臇葏葥蒃蕇蜔蟤覥諓諯賟跈蹍蹎鄟鎆鎸鐉馢駩騚騡鱄鴫鷆鷏齻㒰㒹㔊㙻㜊㞟㞡㠭㡐㢆㥏㦮㧂㨵㭵㮵㰄㰜㷙㻇㼷䀬䁴䍹䏝䐌䐪䓦䔐䟢䟧䠄䡀䡘䡱䣑䥖䧃䧖䧘䧠䩅䬻䱳䱼䳪専齊
+절:節絶切折竊截浙癤窃軼晢岊卩晣蕝嶻絕㔾绝棁疖节卪尐幯撧擮棳楶沏聺苆蠘蠞蠽趃镻㐉㑜㔃㔢㗫㦢㪿㮞㸅㸞䁀䏳䓆䕙䗻䘁䟙䩢䪼䫕䲙蕞
+점:店點占漸粘霑点拈岾鮎玷覘佔簟苫墊黏颭蔪笘蛅坫阽痁扂蒧㸃磹鲇垫渐觇飐唸嚸奌惦掂煔秥胋螹袩誗踮鏩頕㓠㝪㶘㶣㼭䀡䍄䘂䘋䛸䟋䤔䩇
+접:接蝶渫摺揲楪鰈慴檝蹀跕椄蜨艓褋䐑鲽挕擑聑菨襵㑙㢎䐲䝃䝕䪓
+정:正定丁政情庭停精靜貞井淨頂廷征程亭整鄭訂晶呈鼎旌挺禎偵汀楨艇珽靖釘幀錠碇穽町酊睛炡霆菁渟淀晸綎鉦瀞玎諪鯖檉姃柾湞鋌証灯筳靚酲梃怔叮棖莛婷琤珵疔鋥桯佂婧掟遉静净㝎鞓浄泟㫌埥頲矴侹涏飣凈阱琔赬仃頳揁裎烶脡蜓愸睜誔㵾旍椗濎竧耵鼮㘫㲂䄇䅍䵺证侦帧枨柽桢浈睁祯蛏订贞赪郑钉钲铤锃锭靓顶颋饤丼侱啨啶圢埕埩塣奵妌娗婙媜宑寊屲嵉嵿帄徎徰忊悜挰揨朾栕梷楟榳橸檙汫汬濪甼盯眐睈碠碵磸竫箐糽緽耓聇聙聢聤肼脭腈腚艼萣葶薡虰蝊蝏蟶踭邒鐤閮阷靗靘靪顁鴊鼑鼱㓅㡠㡧㣏㣔㫀㱏㴿㷚㹶㼗㽀䁎䂻䆑䆵䆸䇸䈣䊒䋊䋼䗴䞓䟓䦐䦺䩠䩶䯕䰳䱓𩓞𩇕胜靖精
+제:弟第題諸祭除帝製制濟提際齊堤劑悌蹄梯啼霽臍薺醍荑齎儕躋擠隄娣禔睇稊瑅鯷緹踶猘蹏韲鍗鮧苐剤褆滛斉隮磾癠穧虀穄綈鶗嚌淛傺鵜渧鞮嗁懠僀泲漈璾偍偙徲摕蒢鑇騠㫼䀸侪剂哜挤济済绨缇脐荠蛴诸跻锑际霁题鲚鳀鹈齐齑亝俤厗埞姼媂媞怟惿慸憏斊栬梊櫅漽焍狾珶睼碮碲禵罤腣艩萕蕛蝭蠐袃裚謕趧銻鮆鮷鯯鰶鱭鴺鶙麡齌齏㐧㑪㖒㗣㝂㣢㨈㨹㴉㸄㼵䂑䃅䄞䄢䄺䅠䇽䍤䎺䏲䐎䐡䑭䑯䔶䖙䚣䛱䜞䠁䢑䧑䨑䨖䩘䩚䪠䪡䪢䪣䬫䬾䭁䮺䰏䱥䱨䱱䶍䶑䶒䶓䶩晢諸蝉蟬
+조:朝祖助鳥調造早兆條照操租弔潮組跳趙曺祚燥措遭釣彫曹詔阻粗漕凋稠藻肇嘲爪眺躁棗糟詛繰雕吊俎炤窕蚤槽晁璪噪皁祧徂胙糶竈厝刁絛譟鵰澡蜩殂鼂臊嘈佻琱蔦銚糙找洮誂傮嬥懆笊絩艚鈟鋽鯛条阼皂慥脁粜罩旐朓啁爼窵鯈窱螬曌沠珇瞾縧蓧垗恌莇藋釂駋䆴晀碉竃竨罺艁趮醩䝖䧂绦枣灶窎组缲茑荮诏调赵钌钓铞铫鲦鲷鸟伄刟叼唕唣奝宨嶆幧庣抓枛栆梍樢樤殦汈燳爫狣瑵瘹盄瞗穒箌簓罀羄聎肁肈肏莜葤蒩蓸薻蛁螩褿襙覜訋謯謿趒蹧鄵釕銱鋚錭鎥鎺鏪鐰鑃雿靎靻鞗駣髞魡鮉鮡鰷麆鼌㒛㓮㕚㚋㜖㟘㡑㡟㡽㣿㨄㬽㭤㮻㯥㯾㷖㷮㸠㺐䂏䄚䆆䈇䉆䍜䍮䎭䏆䐬䒃䒒䔃䔘䔙䖣䖺䗢䘟䜊䞴䟭䠷䢐䥄䩦䯾䱔䳂䵲昭𠄬
+족:足族簇鏃蔟瘯哫镞踿㞺㵀
+존:存尊拵鐏燇橂袸銌
+졸:卒拙猝倅脺捽㐒稡椊踤卆炪箤㐍㰵䂐䘚䚝䯿䱣伜
+종:終宗種從鐘縱腫琮綜踵踪慫鍾淙悰棕倧蹤瘇螽椶蓯粽伀慒柊樅瑽従縦嵸騣蓗鬃賨踨徖忪倊尰朡籦糉緃緵衳鍐钟从怂枞疭纵终综肿苁锺骔骙傱刣喠堫堹妐婃孮嵏嵕嵷幒徔徸昮暰歱汷泈潀炂煄熧猔猣瘲瞛碂磫稯糭緟翪腙艐葼蔠蝬誴諥豵賩蹱銿錝騌騤鬉鬷鯮鯼鴤鶎鼨㗰㙡㚇㜡㡖㢔㣫㣭㥖㨑㯶㹣㻜䁓䅊䇗䈦䈺䍟䐫䑸䗥䘴䙂䙕䝋䡮䢨䳷
+좌:左坐佐座挫髽剉莝痤㘴脞袏锉侳咗夎屮睉矬蓌蓙趖遳銼㔫㘸㛗㝾㟇㭫䂳䟶
+죄:罪辠嶵檌㠑㪓
+주:主住走注晝朱宙酒州周舟柱洲珠株奏鑄駐疇週躊誅註紬做稠廚紂嗾呪輳冑胄籌湊綢澍炷蛛姝酎侏枓齟霔肘儔拄裯遒賙輈侜幬腠迬霌硃蔟尌籒蛀詋丟趎鉒鼄厨蹰躕譸籀黈㴻邾紸䛆麈伷噣淍咮晭跦㕑椆珘唒妵揍㕀怞楱疰秼絑薵軴馵㕏㡡㴤䌧昼丢俦凑帱橱畴筹纣绸诛诪赒踌辀辏鋳铥铸驻鸼䌷丶厾咒喌嚋壴婤宔嵀幮徟懤斢樦櫉櫥殶洀炿烐燽犨犫疛皗盩矪砫祩粙罜菗葄蟕蟵袾赱跓輖逎郮銂銩飳駯駲騆鮢鯐鴸鵃㔿㖄㞫㤽㦞㦵㧣㫶㹥㺛㿒㿧䇠䈙䊘䎇䎷䎻䏭䓓䓟䖞䝬䟞䠫䣭䧓䩜䪒䲖䲤䶇調胕
+죽:竹粥鬻俼
+준:準俊遵准浚峻駿埈濬晙樽竣蠢儁雋畯逡寯焌罇蹲隼餕撙惷綧噂踆皴埻墫鐏鱒鵔凖睃㕙䥴䞭踳㑺㻐捘殾陖鵕㡒馂骏鳟偆僔壿夋宒嶟懏稕竴箺繜葰訰譐迿鎨鶽鷷㑓㒞㝦㷪㻪㼱䐏䔿䣩䮞純𨶊𢓭䜭僎
+줄:茁乼崒崪窋笜㤕
+줏:㗟
+중:中重衆仲眾褈众妕媑狆筗舯茽蚛蝩衶迚鈡隀㐺㑖㣡㲴㴢䌬䝦䦿䳯乑
+즉:則卽即喞鯽唧萴崱莭蝍鲗鲫揤皍荝鰂鱡㑡䐚
+즐:櫛騭喞瀄堲栉骘擳楖㘉
+즘:怎
+즙:輯汁葺楫檝蕺濈湒霵
+증:曾增證贈症憎蒸拯烝甑繒証嶒矰罾曽増璔橧鄫熷驓䎖缯赠囎撜潧磳竲篜譄鱛㣒㷥㽪䇰䉕䒱䕄䗀䙢䡕䥌䥭䰝塍
+지:地知至志之止紙持指識支只枝智池誌遲旨址芝脂肢祉咫摯枳祗趾祇砥贄漬沚芷蜘墀秪躓箎舐踟篪鷙榰坻扺軹泜阯痣鮨遅㫖秖祬䘭輊胝鳷帋䑛搘蚳厎墬鋕驇彽恉抧遟䙙䞇䶵挚渍纸贽轵轾迟鸷俧倁凪劧吱哋坁坔坘埊娡岻嶳忯杫栺梽椥汥汦洔淽潪疻砋秓竾筂筫箈綕胑舓衼覟觗訨謘貾赿酯馶鴲鼅㕄㞢㞨㞴㡶㢟㨁㩼㫑㯄㱴㲍㲛㴯㸟㽧㽻䂡䄊䅩䇛䏯䓋䓌䓜䓡䓩䜄䝷䟖䟡䠦䡹䣽䤠䥍䧴䪧䱈䲀䲬䳅䵹禔𥎵𥏾識逇邌都
+직:直職織稷稙禝溭㮨聀犆樴嬂织职膱蘵蟙軄㞋㹄䐈
+진:眞進盡辰陳振震陣珍鎭晉塵津秦診嗔疹賑晋軫唇搢臻殄縉榛袗瑨畛璡縝瞋溱桭蔯趁儘瑱稹蓁珒鬒侲鉁螴真禛鎮趂疢眹胗䫃溍珎姫敶榗眕紾䀌搸濜薼螓轃辴㐱䀼尽尘纼缙缜诊赈轸进镇阵陈侭嗪嚍堻塦壗嫀嫃嬧屒帪弫抮挋敐昣枃樄樼殝浕獉琎瑧籈紖絼縥聄臸蒖薽蜄裖誫謓軙迧錱靕駗黰㖘㣀㥲㬐㬜㭄㯸㰉㲀䀆䂦䂧䈯䊶䐜䑐䗯䝩䟴䡩䨯䪾䳲塡槇敒𤨁
+질:質疾秩姪迭跌窒叱嫉帙佚桎膣侄蛭瓆絰軼躓騭垤郅鑕蒺咥耋晊抶銍袠瓞袟礩祑昳翐挃妷峌恎柣耊㗌绖质铚锧儨劕厔庢愱戜槉櫍洷潌眣眰秷紩胅腟臷苵螏螲詄豑豒貭㑵㗧㘍㜱㜼㩫㲳㲺䏄䑇䜠䟈䬹䱃
+짐:朕斟鴆酖酙㯢鸩栚㘰㪸㮳㴨㼉䧵䲴
+집:集執輯什緝潗鏶戢咠諿縶㠍慹㙫㠎䌖蓻䐕执絷缉辑亼偮卙嶯瓡艥謺鍓雦雧㗊㗱㣬㱷㴕䁒䅤䉅䩰䮶楫𬄕什汁
+짓:嗭
+징:徵懲澄澂瀓瞪癥徴憕惩㠞
+차:車次此且借差茶叉遮嗟蹉箚嵯釵磋侘槎苴瑳佽奓硨岔偖徣姹䂨劄汊杈莗唶扯撦鹺挓訍跐踷醝㨋砗舣车鹾佌偧偨厏唓嗏嗻奲嫅嵳扠搓搽暛栨笡紁絘肞艖芆蒫蔖虘蛼衩褨譇銟鎈齇齹㗬㞖㢒㣾㦋㷢㸙㼮㽨㾝䁟䂘䃎䊬䐒䐤䑘䑡䒲䖕䖳䞣䟕䠡䡨䣜䦈䯸䰈䰩䱹䳐䴾䵙䶥茶仛剳齄齜猪泚
+착:着著捉錯躇搾鑿窄齪斲戳擉斵斮諑娖浞笮娕珿凿诼错龊丵剒撯擆灂穛篧簎籱糳縒莡辵辶逪鋜鑡㒂㓸㚟㲋䇥䓎䕴䥘䥣蔟
+찬:贊讚餐瓚燦鑽璨撰饌纂簒竄纘粲飡澯攢爨賛欑巑趲儧儹劗湌纉㸑攅讃酇篡濽穳鑚瓉禶攛灒籫躥丳櫕襸鄼赞撺攒灿瓒窜缵趱蹿躜酂镩馔儏囋殩熶爘篹籑繤羼薒躦鑹饡㛑㜺㠝㣓㦌㬄㸇㹽㺗㻮䂎䉔䉵䌣䞼䟎䡽䬤䬸䰖䱗戔譔饍串
+찰:察刹札擦紮扎拶咱哳巀剎檫礸詧鑔铡镲乲偺嚓攃桚櫒礤糌紥耫蚻蠿鍘㞉㦫㱜㳐㳨䃰䓭䕓䥷䶪囋
+참:參慘慙斬站讒僭讖塹懺叅慚驂譖黲巉嶄槧鑱憯摻攙饞欃儳毚鏨参惨僣㕘叁叄旵䜛墋謲懴毶詀醦䜟劖噆嵾嶊朁瀺覱趻堑崭惭搀斩椠瘆碜谗谮谶錾镵馋骖黪傪嚵壍嬠嬱嶃摲獑瘮磛磣艬譛酁魙㜗㜞㟥㟻㠁㦧㨻㰫㸥㺥㽩㿊䁪䂁䑎䟃䤘䤫䧯䪌䱿䳻䶨參
+창:唱窓昌倉創蒼暢彰滄敞昶倡漲槍瘡愴脹娼猖菖廠艙悵搶鬯刱倀蹌鎗閶氅惝窻憃傖鏦窗瑲鋹鶬凔戧錆椙囱牕淐摐剏剙牎畼瑒篬厰磢謒錩枪仓伥伧创呛怅怆戗抢沧涨炝玚玱畅疮胀舱苍跄锖锠阊鲳鸧仺僘刅嗆囪嵢惐摤晿淌濸焻熗獊琩螥裮誯賶鯧鼚㒉㘟㧿㫤㼽䄝䅛䅮䆫䎫䗉䚎䞎䠀䢢䤌䥊䩨䮖䱽䲝
+채:採菜采彩債蔡埰寨綵釵寀砦茝棌瘵蠆瘥倸囆债虿钗䌽婇榸睬縩踩靫㥒㦅㳗䃀䌨䐆䐱䘍䞗䠕䣋䰂琗責
+책:責冊策柵翟簀嘖磔幘笧蚱栅册筞䇿㥽舴茦謮啧帻箦责厇嫧憡拺敇皟瞔箣籷粣萗蓛蔶虴諎迮銏鏼頙㖽㟙㨲㩍㩞㳻㿭䜺䞰䟄䯔䶦
+처:處妻悽凄萋淒覷褄郪䖏处処覰觑刞竌紪緀耝覻霋鶈㜘䁦
+척:尺拓斥戚刺隻陟滌擲瘠脊倜慽剔蹠惕跖摭躑俶蜴塉捗呎坧褁慼蹐掦鶺隲蹢踢墄墌鼜掷涤踯鹡傶叺嵴彳徏悐惖硩磩粎膌蚇鏚齣㘮㞝㡿㥻㽚䋇䑾䗩䞠䞶䯜刺槭
+천:天千川泉淺遷賤薦踐串釧擅穿喘闡阡舛韆仟玔蚕荐倩濺洊蕆蒨茜芊俴儃辿祆僢瓩粁臶靝迁遄刋燀賎栫韉拪剶奷荈梴棈洤湶綪闎韀浅践钎冁忏扦溅蒇贱钏阐鞯鳈侟兛兲囅圌圱圲夼巛幝揼曻杄楾櫏歂氚汌汘瀳灛灥牮猭珔瑏皘硟竏篅篟繟腨葲蔳譂谸輤輲釺閳靔鰁㐪㚈㟫㣤㯌㱛䀒䀖䄹䆤䆥䉦䍎䑶䒶䚶䢬䢴䥀䵐
+철:鐵哲徹撤澈喆轍綴凸輟銕掇啜惙餮歠剟埑錣飻鉄腏鐡畷䮕醊㯙悊㬚彻缀辍辙铁锇勶叕啠嚞嚽敠敪涰烲焎爡瞮砓罬聅蛈蜇裰諁酫醛鋨驖㙍䄌䒆䚢䞵䟾䥫䫎軼
+첨:添尖瞻僉諂籤沾詹簽甛忝簷憸檐槧襜栝惉瀸幨櫼甜韂籖悿湉掭沗裧冿噡婖燂鑯㤁䪜签佥裣谄锘厃嶦敁瀐灊籡舔舚菾虃襝讇酟鋓鍩鐱閚餂黇㐁㑒㔐㖭㙴㚲㜬㡨㤐㦰㬲㮇㵇㶺㾆䄡䄼䇝䋬䏦䑚䞌䠨䦓覘
+첩:妾諜帖牒疊貼捷輒堞睫褶喋鰈怗褺倢呫輙㡇疂倿氎耴䴴婕牃疉穕䩞钻叠畳谍贴辄偼媫崨惵曡淁緁脻萜蓵誱踕踥迠鉆鮿鯜㤴㥈㨗㨩㩸㩹㫸㬪㭯㱌㲲㳧䌌䑖䕈䠟䥡䧪䴑䵿帕
+청:靑淸請聽晴廳菁鯖倩听凊圊婧蜻鶄青清㕔聼聴廰厅庁请鲭䴖厛夝掅暒氰甠碃郬㵙䝼䞍䨝錆晴
+체:體切遞滯替逮締涕綴諦剃体軆砌棣彘泚蕞蔕薙蒂殢靆嚏髰遆滞逓禘掣遰杕躰髢疐蝃䙗嵽螮餟屜懘栘褅揥摰㚄䪆屉缔谛达递䗖䴘叇嚔墆崹挮搋摖楴璏痸皉矵磜祶笍迏迖釱鉪銐鐟霴骵鬀鬄鷈鷉㓹㔸㡗㬱㿃䀙䄟䇧䌡䎮䏅䐭䟷䠠䶏諟玼切
+초:草初招超礎抄肖秒哨楚焦礁稍樵貂梢炒憔硝蕉醋醮椒酢剿艸湫苕迢誚勦悄綃鈔軺峭怊愀髫鞘譙杪噍岧踔燋鷦顦劭俏趠僬嶕鍬偢隹嫶耖鍫齠椘䎐憷岹弨撨眧檚膲芀蟭鉊䘯绡艹诌诮谯轺钞锹鹪龆仦仯僺儊劁劋吵妱屌嶣巐帩愺摷櫵欩潐濋焣煍燞璴瘄癄睄瞧祒茮荹菬萔蕱藮觘訬謅趭轈釥鍣鐎陗鞩韒騲麨鼦齼㗹㤘㥮㩰㭂㯧㲬㴥㶤㷅㸈㹦䂃䄪䇌䈾䌃䌭䎄䒑䜈䟁䠂䥚䩌䫸䫿䰫䲃䶰𪓐嘮
+촉:觸屬燭促蜀囑矗鏃躅矚髑爥曯薥嘱瞩斸瘃蠋劚歜灟触烛㔉亍孎斶欘竐脨臅蠾襡襩趗踀钃鸀㙇㯮㻿䃚䇍䌵䎌䕽䙱䛤䟉䟟䠱䪅属
+촌:寸村忖邨吋刌屗澊籿
+총:總聰銃寵叢塚摠悤蔥憁葱驄蓯鏦騘冢捴総揔匆偬漎怱緫聦傯棇潨聡忩璁藂惣漗篵㷓䓗䤸丛宠总聪铳骢埫愡搃樬樷欉潈濍灇焧熜燪爜縂繱茐蟌謥鍯鏓㞱㹅䆹䈡䉥䐋䕺䗓䡯䧭䰌囱塚龍竜龒
+촬:撮娺攥窡繓襊㔍㭮㵶䆯䵵蕞
+쵀:啐啛祽錊䦤
+최:最催崔摧蕞淬榱璀漼縗脧嘬磪㝡嗺墔慛槯綷缞凗樶欼熣獕皠穝紣羧膗鋷鏙㜠㝮㵏䊫䔴䘒䙑䧽䴝洒
+추:秋推丑追抽醜趨鄒楸椎樞墜酋芻錐槌錘鎚鰍藪雛騶皺諏湫杻萩麤蒭瘳惆簉陬箠啾愀箒搥帚鞦僦甃捶縋魋娵騅鰌縐鍬鶖鶵妯蝤隹揫鵻麄龝趍篘鯫麁萑崷橻鄹㨨寉棰菆揂棷煼緅諈貙顀鬌䨨枢锤刍坠尴皱绉缒诹趋邹锥雏驺骓鲰鳅鹙䝙侴僽吜埾媝媰尷憱掫揪搊棸榋殠沝渞湬湭溴煪犓甀睭瞅矁硾礈秌穐箃篍籕緧膇菷藲蝵蟗蠤觕趥遚郰醔錗鑆鞧駎鬏鯞鱃黀齱齺㑇㑳㔌㖩㗓㗙㛀㠇㥢㩅㩆㩾㭰㮅㮲㰎㵵㷃㷕㻓㼙㾭㾽㿷䀺䅢䅳䆋䆶䇬䋓䋘䋺䎿䐍䐐䐢䑼䔏䜴䝒䠓䣯䦌䨂䪮䮔䱦䲡䳡䵸䶆揣
+축:祝丑築逐縮畜蓄軸蹴柚蹙筑竺舳蹜豖槭妯鼀踧柷滀拀閦笁蓫䠞缩轴丒傗嘼噈敊斣殧稸篫縬茿蹵鄐顣鱁㗤㛩㜅㰗㾥䙒䙘䙯䥮䮱嘁潚
+춘:春椿瑃櫄杶橁䞐堾媋旾暙杽湷睶萅萶蝽賰鰆鶞㖺㫩㿤䞺䡅䦮䲠
+출:出黜朮秫术怵絀岀础绌怷樎欪泏炢莍黢㑁㔘䘤䟣䢺
+충:忠充蟲衝衷沖冲虫忡珫艟种䖝翀盅揰浺漴茺㤝茧嘃爞痋祌㓍㥙㧤㮔㳘㳞䂌䆔䘪䝑䟲䡴
+췌:悴萃贅膵瘁揣惴顇疩赘忰
+취:取就吹趣臭醉聚炊娶翠脆驟鷲嘴揣觜毳冣橇酔竁翆骤鹫噿嶉槜檇欈濢璻脃膬臎臰酻龡㪜㯔㯜㱖䕜䶴顇
+측:測側惻仄厠廁昃稄厕侧恻测庂捑昗汄畟㳁䈟
+츤:襯櫬藽齔儭
+츰:闖
+층:層蹭层䁬
+치:治致齒置恥値徵雉痴稚峙馳侈熾幟嗤緻痔癡緇蚩穉嵯埴梔淄輜寘鴟螭廁巵菑錙褫豸絺薙哆畤卮鵄跱阤黐痓鯔鴙耻歯懥䐉媸夂偫眵稺觶乿廌值椔歭袳陊騺㨖㱀庤滍瓻糦胵裭郗㢋㣥䀿栀帜炽缁觯辎锱驰鲻鸱齿俿傂卶垁垑妛崰崻徝恀憄懫拸搱旘杘湽甾秲紎耛芖茌茬荎葘藢袮襧訵誃誺跮輺鉹鍿駤鶅黹齝㛓㢁㥡㮹㯰㰞㴛㶴㺈㿂㿐㿳䅆䅔䆈䇪䉜䊷䊼䌶䎩䏧䕌䚦䚳䝰䞃䞾䟀䣎䦯䧝䮈䰡䶔偨
+칙:則勅飭敕恜侙慗遫鶒鷘则饬淔趩鉓䳵
+친:親襯櫬齔藽嚫瀙䞋亲榇衬龀儬媇寴澵齓䠳䠴
+칠:七漆柒㓒㭍桼㐂㓼㓿㔑㯃䜉䣛
+침:針沈侵寢浸枕鍼砧湛琛諶忱沉駸鋟寖梣椹郴祲碪伔寑抌踸揕枮梫賝䆮䑣寝针锓骎兓唚埐夦嶜抋濅綅綝莐萙葴誛諃鈂鍖霃鮼鱵㑴㓄㓎㕴㝲㪛㴆㴴㶩㾛䈜䒞䘲䚀䚁䜷䤟䥠䪴䫖䫬䭙棽
+칩:蟄馽蛰漐釞㙷㞏㞚㮑
+칭:稱秤称穪偁爯㛵䕝
+카:㻔佧胩
+쾌:快獪夬噲儈侩哙叏筷
+타:他打妥墮隋惰唾陀駝舵楕馱朶咤拖迤駄躱沱詑跎詫佗鼉駞柁拕橢鮀垞阤坨驒鴕堕陁它吒酡嚲㙐垜咜奼沲媠嶞朵陏㓃亸椭诧锗驮驼鸵鼍刴剁咃咑哚垛埵堶墯嫷尮岮崜彵憜扡挅挆撱桗椯毤毻涶灹炧炨牠痑砣砤碢秅紽綞袉趓跥跺躲軃鍺鰖鵎鼧㛆㛊㟎㢉㥩㨊㯐㰐㸰㸱㻧㼠㾃䂝䅜䆛䍫䑨䑮䒳䙃䙤䜏䠤䡐䤩䤪䤻䩔䪑䰿䲊䴱仛
+탁:度濁拓托卓濯託琢擢鐸坼啄倬柝晫琸拆橐涿逴籜踔趠沰矺蘀乇槖椓侂跅魠仛斀杔㤞㧻浊箨讬铎镯饦伲凙剢剫劅啅庹桌槕汑硺窧萚蠗袥襗踱鈬鐲飥馲驝鵫㔬㪬㹿㺟䐾䓬䮓度拓
+탄:歎彈炭誕灘綻憚呑坦嘆殫癱攤憻驒惮殚弹吞瘓撣僤嘽掸啴弾摊滩痪瘫绽诞怹擹暺氽汆湠疃碳羰譠騨㖔㛶㧷㨏䋎䘺
+탈:脫奪侻梲敓夺捝脱敚毲痥莌鮵鵽㣞䫄
+탐:探貪耽眈酖嗿忐醓撢躭贪赕僋沊賧㤾㴷㵅䏙䏥
+탑:塔搭榻鰈搨塌傝闒嗒撘漯㲮鑉鞜鞳㗳阘鳎嚃墖毾溻狧瘩禢耷遢錔鎑鮙鰨㛥㯓㲩㹺䈳䌈䑜䑽
+탕:糖湯蕩宕帑盪碭蘯燙逿簜蝪踼璗鐋荡汤烫砀铴偒圵婸摥菪薚趤雼㼒䑗䦒糖
+태:太泰殆怠台胎兌跆颱汰苔笞邰呆駄迨蛻駘埭娧孡抬兑紿蜕䭾鮐忕呔兊忲㤗溙㥭态绐钛骀鲐䌼傣冭囼夳戻捸斄曃炱炲燤粏綐緿肽舦菭軩酞鈦颰駾㑀㑷㙂㟋㣍㣖㳲䈚䬈珆脫態
+택:宅擇澤択择沢泽伬烢礋蠌鸅㡯㭦䕉䕪垞宅
+탱:撑撐牚竀樘橖橕㯑
+터:攄摅
+토:土討吐兎菟兔圡茔讨钍堍汢芏莵釷鵵㫦
+톤:噸噋瓲啍畽䵯
+톨:㐋
+통:通洞統痛慟筒桶恫侗筩樋㷁憅熥綂恸统嗵捅痌蓪㣚㪌㳆洞
+퇴:退椎頹堆槌腿鎚褪焞搥隤魋頽僓蓷痽頺俀尵䫋颓垖塠嵟弚桘煺磓穨脮藬蘈螁蹆蹪陮頧骽鴭㕍㞂㞜㢈㥆㨃㱣㷟㾼㿉㿗䀃䇏䊚䏨䜃䨺䭔
+투:投鬪透套鍮妬偸渝妒骰偷闘鬭哣敨牏秺緰蘣鬦鬬㕻㖣㚐㢏㪗䛠䞬䟝䤅
+퉁:佟
+특:特慝忒螣蟘貣铽忑脦蚮鋱鴏㥂㧹
+틈:闖闯
+파:破波罷播派頗把坡巴婆跛琶芭爬擺陂杷霸叵怕葩皤帕簸灞玻笆鄱妑岥爸耙菠壩罢疤帊靶䆉嶓垻吧欛鈀摆坝钯钷颇啵嘙夿尀岜弝櫇汖潖皅碆笸筢箥粑紦羓舥蒎蔢蚆蚾袙譒豝趴跁鉕錃鎃駊鲃㗞㜑㝿㞎㨇㩯㭛㸭㿬䃻䎬䎱䔤䝛䥯䯲䰾䶕
+판:判板版販阪辦坂瓣鈑汴辧昄舨蝂办贩钣岅瓪畈眅粄鵥㤆
+팔:八叭捌扒朳汃仈哵玐釟㭭
+팟:巼
+팡:乓
+패:貝敗牌悖覇佩沛稗唄狽浿霈霸孛旆珮犻誖邶棑捭㶚斾矲郥呗狈贝败钡伂姵昁梖牬猈珼笩篺簰粺苝茷蛽贁鄁鋇馷㔥㗗㛝㤄㧩㫲㳈㸬㸽䊃䖰䟺䢙䩗䩻䰽䱝壩芾
+팽:庄彭硼膨澎烹祊砰蟚蟛伻閍碰嘭嵭憉掽梈甏皏硑磞稝軯輣錋闏騯㑟㤣㧸㱶㼞䄘䑫䙀䥋
+퍅:愎
+편:便篇片遍偏編扁鞭騙翩徧褊艑蝙匾諞惼緶萹煸蹁楩楄鯾鯿缏编谝骗鳊囨媥揙牑犏猵碥箯覑貵鍽頨騗魸鶣㓲㴜㸤㼐㾫䏒䡢䭏
+폄:貶窆砭贬
+평:平評坪萍枰苹抨怦泙蓱鮃玶呯䦕评鲆匉姘岼拼胓蚲閛駍㛁㺸䍬䓑
+폐:閉廢肺弊蔽幣陛斃吠嬖獘敝癈狴廃杮梐㢢幤废毙箅闭櫠獙砩蕟蜌鄨鐾閇鼣㙄㡀㯇㾱䉬䕠䠘䯗
+포:布抱暴捕浦胞包飽砲抛鋪逋怖鮑泡葡褒袍蒲圃脯哺曝匍咆疱苞佈匏庖炮晡餔舖炰誧儤鞄鯆曓鉋拋酺宲礮枹襃虣圑蒱麅笣怉脬舗跑麃㳍刨钸铇铺饱鲍龅佨勹咘垉埔奅孢峬庯忁悑抪柨爮狍瓝皰礟菢萢蚫蜅袌裦褜謈軳鈽鑤闁陠靤髱鵏麭齙㘵㚴㚿㫧㬥㬧㯡㲒䈬䈻䊇䍖䎂䔕䛌䝵䤖䩝䫽䭋䮒䶌暴
+폭:暴爆幅瀑曝輻曓䋹䌿輻
+폿:喸
+표:表標票漂杓豹飄剽慓瓢俵彪驃飇縹摽殍鑣裱僄嫖勡嘌熛鏢髟鰾飆颷醥淲藨飈飊彯爂猋穮膘蔈薸褾謤驫魒㼼䅺标缥镖镳飘飙飚骉骠鳔儦墂婊幖徱旚檦滮瀌燢犥瘭皫瞟磦篻翲脿臕螵諘贆錶闝顠颩飃㘐㟽㠒㧼㬓㯱㯹㲏㵱㶾㹾䁃䁭䏇䔸䕯䙳䞄䮽䱪䴩䶂
+푸:䬌
+품:品稟禀榀
+풍:風豊楓諷馮丰葑豐瘋酆鄷渢偑凮灃蘴冯枫沣疯砜讽风僼凨凬堸寷栤檒沨煈猦碸霻靊颪飌麷㐽㒥㠦䏎䵄
+피:皮彼被避疲披跛陂辟詖鞁屁髲柀帔骳狓鈹佊秛㱟诐铍鲏䙓怶旇氕犤紴翍耚藣襬貏貱銔鮍㓟㗪㢰㨢㯅䏢䏶
+픽:腷煏
+필:必筆匹畢弼泌疋苾珌馝蹕蓽韠篳觱佖滭駜鵯咇罼鞸驆弻榓㻶熚胇袐飶䟆哔毕滗笔筚荜虑跸铋鹎吡嗶妼彃怭潷縪苉襅邲鉍鏎饆魓鮅鴄鷝㓖㢶㢸㪤㮿㳼㻫䄶䏘䖩䩛䫾䬛䮡芾
+핍:乏逼偪愊姂鴔
+핑:乒
+하:下夏河何賀荷瑕遐霞蝦厦廈鰕昰嚇罅呀鍜煆岈懗瘕嘏縀睱谺騢鏬哧抲菏㙈虾贺丅丷哬嗬圷夓疜碋碬芐蕸袔諕赮鎼閕閜鞐颬㗇㗿㙤㰤㰺㵑䠍䪗䫗𧬂
+학:學鶴虐壑謔瘧确涸郝狢熇鷽皬学翯觷嗃澩矐㕰䳽疟谑鸴鹤嗀嚛嚯壆峃嶨斈癋硸蠚謞貈雤靏鴬鶮鸖㕡㰒㶅㿥䅂䖈䖋䤕䨋䮤鶴
+한:韓漢寒限閑恨旱汗翰邯罕悍澣閒瀚桿捍閈暵鼾犴僩嫺熯嫻駻鷳扞狠僴覵瞷猂邗骭撊鷴垾憪橌㸁䛞䦘闲鹇娴汉焊闬韩仠佷傼兯哻娨嫨屽晘橺浫澖皔蓒蔊蛝螒豻貋釬銲雗鶾鷼麲㒏㛠㡾㢨㪋㯗㲦㵄䁂䂅䈨䉯䍐䍑䎯䏷䓍䓳䕿䗙䥜䦥䮧𡽜忓
+할:割轄蝎黠瞎鶡蠍傄劼縖舝䫘辖乤嗐搳硈磍螛鎋韔鶷㔛㔠㝬㪴㮫㿣䕣䕸䦖䦪䶤
+함:咸陷含函艦喊涵銜緘檻鹹啣諴菡頷嗛闞憨莟轞䧟淊凾醎顑圅㴠䓿衘谽馠䘖唅浛筨琀甉魽㨔㺝䤴䶢衔槛缄舰阚馅壏娢晗梒欦澏焓糮臽蛿蜬蜭譀豃豏輱鋡錎陥顄餡鬫鰔㓧㖤㘅㘎㘚㛾㟏㟔㤷㮭㯺㰹㶰㺖㼨㽉䈄䎏䐄䕔䖔䘶䟰䣻䥁䨡䩂䫲䱤䲗䶃䶟䶠酣澉淦泔歛
+합:合陜蛤盒閤哈闔盍溘榼郃柙匌嗑呷詥鴿篕㝓峆欱烚盇鮯䢔陕阖颌鸽佮峇廅敮熆珨秴粭翈耠頜魻㘡㥺㭘㰰䆟䖎䖖䛅䧻䶎
+항:行恒降項抗巷港航沆亢缸肛杭伉姮桁嫦恆頏炕夯缿骯吭閌衖佭斻闀肮钪闶项颃塂岲栙笐罁苀蚢貥跭迒邟酐鈧闂魧㔰㟟㤚㰠䀪䁰䘕䜶䟘䢽䣈䲳行降
+해:海害解亥該奚偕駭骸諧楷懈咳邂孩垓瀣蟹醢廨薤獬瑎欬咍嶰痎鮭頦觧澥晐陔荄蠏侅駴㤥畡賅峐檞膎韰㧡䪥该谐赅颏骇鲑嗨塰妎姟慀氦絯繲胲薢觟豥賌輆郋酼餀饚龤㒠㗨㙰㚊㜾㞒㰡㰧㰩㱼㾂㾬䀭䇋䉏䚸䠹䠽䡡䦏䯐䱺䲒祄
+핵:核劾覈翮栶势䃒
+행:行幸杏倖荇悻婞涬筕㼬绗鸻哘啈垳堼洐烆絎緈胻莕裄鴴鵆﨨㓑䁄䂔䓷䛭䯒䰢
+향:向鄕香享響饗嚮餉珦薌鄊晑曏郷蠁膷鄉銄麘䦳乡响芗飨饷亯姠楿稥萫蚃鱜黁㕿㗽㴡㿝䅨䊑䖮䦭
+허:許虛墟噓詡歔虚栩虗㠊魖嘘浒许憈鄦驉魼㞰䔓
+헌:憲獻軒櫶掀献巚幰攇巘瀗宪轩仚佡搟㦥䆭䘆䜢䧮䡣昍
+헐:歇蝎蠍滊
+험:險驗憸嶮玁獫硷崄猃险険験验姭忺杴榃礆譣騐㷿㸝㿌
+혁:革赫爀奕嚇洫鬩弈焱衋虩侐焃殈赩㷜吓阋伵捇煂盢瞁覤赥趘㤸㦦㬨㮝㷦䓇䚂䚫䦗䱛䵱𧹽
+현:見現賢顯玄縣懸絃弦鉉峴炫洵眩衒絢晛俔玹泫睍舷儇嬛昡誢琄眴繯痃筧県祆翾蜆鋗駽顕袨灦敻礥贒垷莧㬎哯埍胘蚿蠉鋧鑦䧎伣县岘悬显现绚缳苋蚬贤铉伭呟咞妶娊娹婱弲怰惤梋矎臔臤虤訮詪詽誸譞讂贙鞙韅㘋㡉㢺㧋㧦㫫㭹㹡㻹䀏䍗䏹䗾䚯䛹䝨䝮䥪䧋䩙䮄䲻見
+혈:血穴孑頁絜趐泬蝢緳䆷䦧页吷坹奊娎岤桖烕疦茓裇㐖䆝䋉䐼䒸䕵䙽䛎䦑䩤䩧䫼
+혐:嫌鼸馦㾾㺌㽐䵌
+협:協脅狹峽陜挾俠頰夾浹脇鋏莢叶恊愜篋悏匧埉祫峡惬䝱筴蛺劦冾勰脥硤陿拹狭侠协夹挟浃硖箧胁荚蛱铗铪颊饸䇲嗋垥愶旪梜熁燲綊脋鉿鞈頬餄㙝㛍㢵㤲㥦㥷㮉㶸㼪㽠㾜㿓䁋䏩䏮䕛䬅䶝汁
+형:兄形刑亨螢衡炯馨邢瀅型荊熒瑩泂珩逈烱桁滎鎣灐迥詗夐陘娙荆鉶硎浻蘅郉脝㢠侀涥㺾㼆泶滢潆荥荧萤蓥诇铏陉哼坓嵤悙擤瀠藀蛍蛵褮賯鋞鶑㐩㓝㚾㣜㭢㯏㼛䅽䚘䢛䣆䤯䤰䳙
+혜:惠慧兮彗醯鞋蹊蕙暳盻徯槥傒嘒寭謑譿恵嵇鼷鞵潓嵆橞蟪譓豀嚖憓㜎䚷䧥僡匸嚡忚懳榽橀櫘璤蒵螇豯鏸韢騱㚛㥣㨙㩨㬩㰥㰿㿽䎚䒊䙎䛊䜁䤈䫣䲪儶
+호:好戶號湖乎呼虎胡護毫浩豪互扈鎬皓糊昊濠祜晧澔壕狐瑚弧琥壺槁蒿濩芦灝瓠縞顥岵蝴滸頀淏葫犒怙沍箎餬皞醐嘷滈冱嫮滬皜儫嫭猢聕鬍号户㦿昈皥乕䎁蠔鄗唬皡壷暭虖鄠猲嘑楜苸䕶䚽帍暤曍枑滹籇萀謼譹錿䊀壶护沪灏缟轷镐颢鹕乊傐冴哠喖嗥噑嚎垀夰媩峼弖恏悎戸戽摢昦枦椃槴歑泘瀥烀煳熩獆獋獔瓳箶簄粐綔舮蔰薃薅藃虍虝衚軤鈩鍸雐雽魱鯱鰗鰝鳸鶘鶦㕆㗅㙱㚏㚪㚼㝀㞻㠙㣗㦆㨭㩝㬔㬶㯛㵆㸦㾰䇘䉿䊺䋀䋆䐧䒵䗂䜰䝞䝥䠒䤣䧚䧫䨼䩴䪽䭌䭍䯫䰧䴣婋芐羽
+혹:或惑酷鵠豰掝鍙閄頶嗀㦯㷤㺉㽇䞱熇
+혼:混婚昏魂渾煇琿溷閽睨惛焜湣圂惽睯掍鯶鼲䰟挥浑珲阍馄倱堚婫忶昬棔殙涽焝睧緷繉觨餛㑮㖧㛰㮯㱪䅙䊐䎜䐊䚠䛰䡣䧰䮝䴷俒䫟鯇
+홀:忽笏惚囫絗曶芴㧾䬍锪乥匢匫唿啒寣鍃㖴㧮㨡㳷㺀䁫䓤䝆䨚䩐䴯
+홍:紅洪弘鴻泓訌虹哄烘汞鬨澒晎篊鉷洚閧葒妅唝红荭讧鸿仜叿嗊垬娂屸渱潂灴焢硔粠苰葓蕻谼谾銾霐霟魟㖓㙆㬴㶹䀧䂫䃔䆪䉺䜫䞑䧆䨎䪦䫹䲨
+화:火花化話和畵華貨禍禾靴樺嬅譁樗畫夥擭嘩驊俰婲龢画澕槬墷鞾咊鏵伙楇璍訸㠏划华哗桦祸话货钬铧骅鳠吙啝埖夻姀崈崋惒摦旤杹枠柇椛沎灬盉硴竵糀舙芲萂蕐誮譮邩釫鈥鉌錵魤鱯鷨㕦㗾㟆㦊㭉㳸㶡䄀䅿䒩䔢䛡哇
+확:確擴穫廓濩攫碻鑊确涸擭矍礭矡䨥镬雘矱蠖彍戄彉攉玃臛艧靃彠扩拡鹱劐嬳彏彟挄曤檴爴瓁矆篗籆籰耯臒蒦貜霩鸌㠛㦜㨯㬑㬦㸕㺢䁨䂄䈅䉟廓塙
+환:患歡還換丸環喚煥桓幻宦鰥驩渙紈奐晥懽圜寰豢鬟擐轘瓛睆鍰絙鐶繯垸皖逭癏寏瑍䆠讙鱞漶㬊汍闤澴弮芄㬇綄䚪䝔唤奂换欢歓涣焕纨还锾镮阛鲩鳏喛峘愌懁攌暅梙槵烉犱獾睅瞣笂糫羦肒荁萈萟藧貛酄釻鋎雈鯇鰀鴅鵍鹮㕕㛟㞍㡲㪱㶎㹕㹖㿪䀓䁵䍺䒛䒯䗭䜨䝠䠉䦡䭴䯘䴉䴋䴟洹嚾圂莞
+활:活闊滑猾豁佸蛞濶䀨敌阔奯姡眓磆秮秳萿螖趏㓉㕲㵈䄆䄑䦢䱻䴳
+황:黃皇況荒滉慌徨晃惶遑煌凰潢璜蝗榥隍篁愰簧恍幌湟晄怳貺肓喤鎤熀瑝媓况黄䌙皝熿偟艎謊㡛癀穔縨墴揘衁詤䁜谎贶鳇兤堭塃奛宺崲巟曂朚楻櫎炾獚皩眖葟蟥諻趪軦韹餭騜鰉鱑鷬㠩㠵㡃㡆㣴㤺㨪㬻㵁㶂㾮䀮䄓䅣䊗䊣䍿䐠䐵䑟䞹䪄䮲䳨
+홰:罫噦翽哕噧澅翙
+회:回會悔懷淮恢灰廻檜膾濊晦徊誨賄繪蛔澮匯獪茴迴燹洄詼鱠佪繢滙闠頮沬盔栃湏会懐囬禬㑹薈豗囘逥瀤恛璯蛕螝褢鄶刽桧浍烩狯絵绘脍荟诙诲贿郐颒鲙㧟劊咴嬒屷廽拻擓敼杤櫰洃烣烸燴痐瞺硘耲藱蘹蚘蜖褱詯諙鐬靧鮰㒑㜳㞀㞧㠢㣛㨤㱱㷄㷇㻅㾯䕇䖶䛛䜋䝅䝇䢈䤧䩈䫭䭝䴜䵳
+획:畵獲劃硅畫擭嚄謢撶繣㗲获婳咟嚿嫿湱砉窢謋讗韄騞㓰㖪㦎㩇䐸䦝䪝䬉画
+횡:橫薨宖鐄黌鈜澋横鋐紭竑黉吰嚝峵彋揈撔谹輷鑅㢬㶇䍔䎕䫺䬖䬝
+효:孝效曉酵爻嚆哮梟肴淆驍斅涍囂嘐傚殽崤熇皛虓餚効暁嘵枵鴞歊斆憢毊嘋獢筊髇哓嚣晓枭胶骁鸮侾俲倄呺嚻婋宯庨撬敩洨滧灱灲猇痚皢硣穘窙笅膮藠虈訤詨誟誵郩顤髐﨧㕺㚠㤊㩭㫴㭳㮁㵿㹲㺧䂚䉰䋂䒝䓔䕧䖀䥵䫞䬘謼烋嗃
+후:後厚侯后候喉吼朽逅嗅煦帿珝詬涸垕詡酗猴堠喣餱篌佝譃吽糇齅姁睺矦郈鍭珛齁鱟㗋䣱诩鲎鲘冔呍洉犼猤疞瘊翭翵葔螑豞鄇銗骺鮜鯸㖃㗜㢿㤧㫗㬋㮢㰭㱙㴟㷞㸸㺅㻈㽳䂉䏏䖉䗔䙈䞀䞧䣴䧁䫛䳧芋
+훈:訓薰熏勳壎暈塤勛焄燻曛纁葷獯鑂爋勲醺坃薫矄埙勋晕荤训嚑壦瞓臐蔒蘍䌲䗼䙧䠝䵫煇𬟓𤋱
+훌:欻歘烼魆㗵
+훙:薨顭
+훤:喧萱暄煊諼諠烜翧晅楦藼箮䁔咺愋蝖貆谖吅嚾媗昍狟睻禤萲蕿蘐㓩䚙䚭愃
+훨:䎀
+훼:毁喙卉虫虺燬芔毀毇檓譭顪餯㑰㩓㷐䂕䃣䛼𠦄
+휘:揮輝徽諱麾彙暉煇褘撝翬彚椲禈䘗幑楎汇晖讳辉㧑媈泋瀈灳翚鰴㩣㫎㭏㹆㺔煒
+휭:遤
+휴:休携墮烋虧畦隳亏睢鵂咻擕髹庥鑴貅攜巂瓗眭茠觿雟飍鸺倠儶婎孈烌睳蘳蠵觹觽貕酅銝隓驨髤鮴㔒㥟㩗㩦㱗㳜㵻㹯㽯䏫䝗䮌䰍
+휵:畜慉搐槒䛙
+휼:恤譎鷸卹潏霱遹鐍䘏獝䎉谲鹬憰烅瞲肷賉㤜㳚䢕䬄
+흉:凶胸匈兇洶胷恟汹㐫忷訩讻哅詾㓙㕳㕼䠗
+흑:黑黒潶釛㱄
+흔:痕欣昕炘釁忻訢掀焮很舋盺慁俒拫鞎锨衅䜣俽妡庍惞煡脪邤鍁㥵㯊㾙佷
+흘:汽訖吃屹紇迄汔仡疙齕忔扢虼籺麧纥讫龁肐趷釳㐹䇄䏌䢀䬣
+흠:欽欠歆廞揿钦噷嬜撳鑫㐸䜗吽
+흡:吸洽恰扱翕潝歙噏翖熻闟㩉㒆㡊㪧㬛㲸㽏䁯䞩䨐䶋
+흥:興兴嬹臖馫㒷䕟
+희:希喜稀戱嬉熙噫羲禧犧姬熹憙愾僖曦凞晞憘熺囍戲嘻餼燹欷唏暿咥悕豨爔黖戯煕餙犠俙巇屭狶㶊饎浠嚱橲熈睎蟢誒㬢呬桸琋繥霼㱆屃戏牺诶饩屓忥怬歖烯焁焈熂燨犔瞦礂莃譆豷隵鯑鱚鵗齂㑶㙿㚀㚦㜯㝆㠻㩬㰕㰨㷗㷩㸍㹷㺣䂀䊠䐅䖒䖷䛥䨳䮎𡅕姫凞
+히:屎忾㕧䐖䦙
+힐:詰黠頡纈犵襭肹擷肸撷缬诘颉恄欯翓㩪
diff --git a/i18npool/source/textconversion/data/stc_char.dic b/i18npool/source/textconversion/data/stc_char.dic
new file mode 100644
index 000000000..5f06fa770
--- /dev/null
+++ b/i18npool/source/textconversion/data/stc_char.dic
@@ -0,0 +1,2834 @@
+¨:‥
+≤:≦
+≥:≧
+ˉ:¯ˉ
+―:─
+∶:︰
+∧:︿
+∨:﹀
+[:﹝
+]:﹞
+":〝
+″:〞
+`:‵
+≈:≒
+‖:∥
+・:‧·
+/:/╱
+\:\╲
+,:,﹐
+、:、﹑
+.:.﹒
+;:;﹔
+:::﹕
+?:?﹖
+!:!﹗
+_:╴_
+(:(﹙
+):)﹚
+{:{﹛
+}:}﹜
+#:#﹟
+&:&﹠
+*:*﹡
++:+﹢
+-:-﹣
+<:<﹤
+>:>﹥
+=:=﹦
+$:$﹩
+%:%﹪
+@:@﹫
+|:|︱︳
+∏:Π
+∑:Σ
+万:萬万
+与:與与
+丑:丑醜
+专:專
+丘:丘坵
+业:業
+丛:叢
+东:東
+丝:絲
+丢:丟
+两:兩
+严:嚴
+丧:喪
+个:個箇
+丰:丰豐
+临:臨
+丸:丸汍
+为:為爲
+丽:麗
+举:舉
+乃:乃迺
+么:么麼麽
+义:義
+乌:烏
+乐:樂
+乔:喬
+习:習
+乡:鄉
+书:書
+买:買
+乱:亂
+了:了暸瞭
+争:爭
+亍:亍豖
+于:於
+亏:虧
+云:云雲
+井:井丼
+亘:亙
+亚:亞
+产:產産
+亩:畝
+亲:親
+亵:褻
+亸:嚲
+亿:億
+仂:仂扐
+仄:仄庂
+仅:僅
+仆:仆僕
+从:從
+仑:侖崙
+仓:倉
+他:他祂
+仙:仙僊
+仪:儀
+们:們
+价:價价
+仿:仿倣髣
+众:眾衆
+优:優优
+伙:伙夥
+会:會
+伛:傴
+伞:傘
+伟:偉
+传:傳
+伣:俔
+伤:傷
+伥:倀
+伦:倫
+伧:傖
+伪:偽僞
+伫:佇
+佑:佑祐
+体:體体
+余:余餘
+佛:佛彿
+你:你妳
+佣:佣傭
+佥:僉
+佩:佩珮
+侄:侄姪
+侠:俠
+侣:侶
+侥:僥
+侦:偵
+侧:側
+侨:僑
+侩:儈
+侪:儕
+侬:儂
+俣:俁
+俦:儔
+俨:儼
+俩:倆
+俪:儷
+俫:倈
+俭:儉
+修:修脩
+俯:俯頫
+债:債
+倾:傾
+偬:傯
+偷:偷媮
+偻:僂
+偾:僨
+偿:償
+傥:儻
+傧:儐
+储:儲
+傩:儺
+僭:僭僣
+僵:僵殭
+儿:兒儿
+兀:兀兀
+克:克剋
+兑:兌
+兖:兗
+党:黨党
+兰:蘭
+关:關
+兴:興
+兹:玆茲
+养:養
+兽:獸
+冁:囅
+内:內
+冈:岡
+册:冊
+写:寫
+军:軍
+农:農
+冢:冢塚
+冬:冬鼕
+冯:馮
+冱:沍冱
+冲:沖衝
+决:決
+况:況
+冻:凍
+净:淨凈
+凄:悽淒凄
+准:准準
+凉:涼
+减:減
+凑:湊
+凛:凜
+几:几幾
+凤:鳳
+凫:鳧鳬
+凭:憑
+凯:凱
+凶:凶兇
+出:出齣
+击:擊
+凿:鑿
+刍:芻
+划:划劃畫
+刘:劉
+则:則
+刚:剛
+创:創
+删:刪
+刨:刨鉋鑤
+别:別彆
+刬:剗
+刭:剄
+刮:刮颳
+制:制製
+刹:剎
+刽:劊
+刿:劌
+剀:剴
+剂:劑
+剃:剃薙
+剐:剮
+剑:劍
+剥:剝
+剧:劇
+剩:剩賸
+剿:剿勦
+劝:勸
+办:辦
+务:務
+劢:勱
+动:動
+助:助耡
+励:勵
+劲:勁
+劳:勞
+势:勢
+勋:勛勳
+勖:勗勖
+勤:勤懃
+勚:勩
+匀:勻
+匡:匡劻
+匦:匭
+匮:匱
+区:區
+医:醫
+匾:匾楄
+千:千韆
+升:升昇陞
+华:華
+协:協
+单:單
+卖:賣
+卜:卜蔔
+占:占佔
+卢:盧
+卤:鹵滷
+卧:臥
+卫:衛
+却:卻
+卷:卷捲
+卺:巹
+厂:廠厂
+厄:厄阨
+厅:廳
+历:曆歷
+厉:厲
+压:壓
+厌:厭
+厍:厙
+厐:龎
+厕:廁厠
+厘:釐厘
+厢:廂
+厣:厴
+厦:廈
+厨:廚
+厩:廄
+厮:廝
+县:縣
+叁:叄
+参:參
+双:雙
+发:發髮醱
+变:變
+叙:敘
+叠:疊
+只:只祇衹隻
+台:台臺颱檯
+叶:葉
+号:號
+叹:嘆歎
+叽:嘰
+吁:吁籲
+吃:吃喫
+合:合閤
+吊:弔吊
+同:同衕
+后:后後
+向:向嚮曏
+吓:嚇
+吕:呂
+吗:嗎
+吣:唚
+吨:噸吨
+听:聽听
+启:啟啓
+吴:吳
+呆:呆獃騃
+呐:吶
+呒:嘸
+呓:囈
+呕:嘔
+呖:嚦
+呗:唄
+员:員
+呙:咼
+呛:嗆
+呜:嗚
+周:周週賙
+呼:呼虖謼
+和:和龢
+咏:詠
+咙:嚨
+咛:嚀
+咯:咯詻
+咱:咱偺
+咝:噝
+咤:吒
+咸:咸鹹
+咽:咽嚥
+哄:哄鬨
+响:響
+哑:啞
+哒:噠
+哓:嘵
+哔:嗶
+哕:噦
+哗:嘩譁
+哙:噲
+哜:嚌
+哝:噥
+哟:喲
+哺:哺餔
+唇:唇脣
+唉:唉欸
+唛:嘜
+唝:嗊
+唠:嘮
+唡:啢
+唢:嗩
+唤:喚
+啕:啕咷
+啖:啖啗
+啧:嘖
+啬:嗇
+啭:囀
+啮:齧嚙囓
+啴:嘽
+啸:嘯
+喂:喂餵
+喧:喧諠
+喷:噴
+喽:嘍
+喾:嚳
+嗉:嗉膆
+嗫:囁
+嗳:噯
+嘘:噓
+嘤:嚶
+嘱:囑
+嘻:嘻譆
+噜:嚕
+噪:噪譟
+嚣:囂
+回:回迴
+团:團糰
+园:園
+困:困睏
+囱:囪
+围:圍
+囵:圇
+国:國
+图:圖
+圆:圓
+圣:聖圣
+圬:圬杇
+圭:圭珪
+圹:壙
+场:場
+址:址阯
+坂:阪
+坏:壞坏
+坑:坑阬
+块:塊
+坚:堅
+坛:壇罈
+坜:壢
+坝:壩
+坞:塢
+坟:墳
+坠:墜
+垄:壟
+垅:壠
+垆:壚
+垒:壘
+垦:墾
+垩:堊
+垫:墊
+垭:埡
+垱:壋
+垲:塏
+垴:堖
+埘:塒
+埙:壎塤
+埚:堝
+堇:堇菫
+埯:垵
+堑:塹
+堕:墮
+堤:堤隄
+墒:墑
+墙:牆墻
+壮:壯
+声:聲
+壳:殼殻
+壶:壺
+壸:壼
+处:處
+备:備
+复:復複复覆
+够:夠
+夫:夫伕
+夭:夭殀
+头:頭
+夸:夸誇
+夹:夾
+夺:奪
+奁:奩
+奂:奐
+奋:奮
+奖:獎奬
+奥:奧
+奶:奶嬭
+奸:奸姦
+妆:妝粧
+妇:婦
+妈:媽
+妙:妙玅
+妩:嫵
+妪:嫗
+妫:媯嬀
+姗:姍
+姜:姜薑
+姹:奼
+娄:婁
+娅:婭
+娆:嬈
+娇:嬌
+娈:孌
+娘:娘孃
+娱:娛
+娲:媧
+娴:嫻
+婴:嬰
+婵:嬋
+婶:嬸
+媪:媼
+嫒:嬡
+嫔:嬪
+嫱:嬙
+嬷:嬤
+孙:孫
+学:學
+孪:孿
+宁:寧宁甯
+它:它牠
+宝:寶
+实:實
+宠:寵
+审:審
+宪:憲
+宫:宮
+宴:宴讌醼
+家:家傢
+宽:寬
+宾:賓
+寝:寢
+寸:寸吋
+对:對
+寻:尋
+导:導
+寿:壽
+将:將
+尔:爾
+尘:塵
+尝:嘗嚐
+尧:堯
+尴:尷
+尸:尸屍
+尺:尺呎
+尽:盡儘
+局:局侷跼挶
+层:層
+屃:屓
+屉:屜
+届:屆
+属:屬
+屡:屢
+屦:屨
+屿:嶼
+岁:歲
+岂:豈
+岖:嶇
+岗:崗
+岘:峴
+岙:嶴
+岚:嵐
+岛:島
+岩:岩巖嵒
+岭:嶺岭
+岳:岳嶽
+岽:崠崬
+岿:巋
+峄:嶧
+峡:峽
+峤:嶠
+峥:崢
+峦:巒
+崂:嶗
+崃:崍
+崎:崎埼碕
+崭:嶄
+嵘:嶸
+嵛:崳
+嵝:嶁
+巅:巔
+巨:巨鉅
+巩:鞏
+巯:巰
+币:幣
+布:布佈
+帅:帥
+师:師
+帏:幃
+帐:帳
+帘:簾帘
+帜:幟
+带:帶
+帧:幀
+席:席蓆
+帮:幫
+帱:幬
+帻:幘
+帼:幗
+幂:冪
+幡:幡旛
+幢:幢橦
+干:干乾幹榦
+并:并並併
+幸:幸倖
+广:廣
+庄:莊庄
+庆:慶
+庐:廬
+庑:廡
+库:庫
+应:應
+庙:廟
+庞:龐
+废:廢
+庵:庵菴
+廪:廩
+廿:廿卄
+开:開幵
+异:異异
+弃:棄
+弑:弒
+张:張
+弥:彌瀰
+弦:弦絃
+弪:弳
+弯:彎
+弹:彈
+强:強彊
+归:歸
+当:當儅噹
+录:錄録
+彝:彞
+彗:彗篲
+彦:彥
+彩:彩綵
+彻:徹
+征:徵
+径:徑
+徇:徇侚
+徊:徊佪
+徕:徠
+御:御禦
+忆:憶
+忏:懺忏
+志:志誌
+忧:憂
+念:念唸
+忾:愾
+怀:懷怀
+态:態
+怂:慫
+怃:憮
+怄:慪
+怅:悵
+怆:愴
+怜:憐怜
+总:總
+怼:懟
+怿:懌
+恋:戀
+恒:恆恒
+恤:卹恤
+恳:懇
+恶:惡噁
+恸:慟
+恹:懨
+恺:愷
+恻:惻
+恼:惱
+恽:惲
+悦:悅
+悫:愨慤
+悬:懸
+悭:慳
+悯:憫
+惊:驚惊
+惧:懼
+惨:慘
+惩:懲
+惫:憊
+惬:愜
+惭:慚
+惮:憚
+惯:慣
+愈:愈瘉癒
+愠:慍
+愤:憤
+愦:憒
+愧:愧媿
+愿:願愿
+慑:懾
+懑:懣
+懒:懶
+懔:懍
+戆:戇
+戋:戔
+戏:戲
+戗:戧
+战:戰
+戚:戚慼
+戬:戩
+戯:戱
+户:戶
+扁:扁稨
+扉:屝扉
+才:才纔
+扎:扎紮
+扑:撲扑
+打:打搨
+托:托託
+扛:扛摃
+扣:扣釦
+执:執
+扩:擴
+扪:捫
+扫:掃
+扬:揚颺
+扯:扯撦
+扰:擾扰
+抚:撫
+抛:拋
+抟:摶
+抠:摳
+抡:掄
+抢:搶
+护:護
+报:報
+抱:抱抔
+抵:抵牴扺觝
+担:擔
+拐:拐枴柺
+拚:拚抃
+拟:擬
+拢:攏
+拣:揀
+拥:擁
+拦:攔
+拧:擰
+拨:撥
+择:擇
+挂:掛挂
+挜:掗
+挚:摯
+挛:攣
+挝:撾
+挞:撻
+挟:挾
+挠:撓
+挡:擋
+挢:撟
+挣:掙
+挤:擠
+挥:揮
+挦:撏
+挽:挽輓
+捂:捂摀
+捆:捆梱綑
+捍:捍扞
+捞:撈
+损:損
+捡:撿
+换:換
+捣:搗擣
+据:據据
+捶:捶搥
+捻:捻撚
+掏:掏搯
+掳:擄
+掴:摑
+掷:擲
+掸:撣撢
+掺:摻
+掼:摜
+插:插扱
+揽:攬
+揾:搵
+揿:撳
+搀:攙
+搁:擱
+搂:摟
+搅:攪
+搜:搜蒐
+携:攜
+摄:攝
+摅:攄
+摆:擺襬
+摇:搖
+摈:擯
+摊:攤
+撄:攖
+撑:撐
+撰:撰譔
+撵:攆
+撷:擷
+撸:擼
+撺:攛
+擀:搟
+操:操肏
+擞:擻
+攒:攢
+效:效傚
+敌:敵
+敛:斂
+敦:惇敦
+数:數
+斋:齋
+斓:斕
+斗:斗鬥
+斩:斬
+断:斷
+旁:旁徬
+旗:旗旂
+无:無
+旦:旦狚
+旧:舊
+旬:旬栒
+时:時
+旷:曠
+昂:昂卬
+昆:昆崑
+旸:暘
+昙:曇
+昵:暱昵
+昼:晝
+昽:曨
+显:顯
+晋:晉
+晒:曬晒
+晓:曉
+晔:曄
+晕:暈
+晖:暉
+晰:晰晢
+暂:暫
+暖:暖煖
+暗:暗晻闇
+暧:曖
+曦:曦晞
+曳:曳抴
+朐:朐胊
+望:望朢
+札:札劄
+术:朮術
+朱:朱硃
+朴:朴樸
+机:機机
+杀:殺
+杂:雜
+权:權
+杆:杆桿
+杠:杠槓
+条:條
+来:來
+杨:楊
+杩:榪
+杯:杯盃桮
+杰:杰傑
+松:松鬆
+板:板闆
+极:極极
+构:搆構构
+枞:樅
+枢:樞
+枣:棗
+枥:櫪
+枧:梘
+枨:棖
+枪:槍鎗
+枫:楓
+枭:梟
+柜:櫃柜
+柠:檸
+柽:檉
+栀:梔
+栅:柵
+标:標
+栈:棧
+栉:櫛
+栊:櫳
+栋:棟
+栌:櫨
+栎:櫟
+栏:欄
+树:樹
+栖:棲栖
+栗:栗慄
+样:樣
+核:核覈
+格:格挌
+栾:欒
+桠:椏
+桡:橈
+桢:楨
+档:檔
+桤:榿
+桥:橋
+桦:樺
+桧:檜
+桨:槳
+桩:樁
+梁:梁樑
+梦:夢
+梼:檮
+梾:棶
+梿:槤
+检:檢
+棂:櫺欞
+棋:棋碁
+棰:箠棰
+棱:稜棱
+棹:棹櫂
+椁:槨
+椟:櫝
+椠:槧
+椤:欏
+椭:橢
+楼:樓
+榄:欖
+榅:榲
+榇:櫬
+榈:櫚
+榉:櫸
+榨:搾榨
+槚:檟
+槛:檻
+槟:檳
+槠:櫧
+横:橫
+樯:檣
+樱:櫻
+樽:樽墫
+橥:櫫
+橱:櫥
+橹:櫓艣
+橼:櫞
+檐:檐簷
+檩:檁
+欢:歡
+欣:欣訢
+欤:歟
+欧:歐
+欲:欲慾
+歼:殲
+殁:歿
+殇:殤
+残:殘
+殒:殞
+殓:殮
+殚:殫
+殡:殯
+殴:毆
+殷:殷慇
+毁:毀燬譭
+毂:轂
+毋:毋毌
+毕:畢
+毗:毗毘
+毙:斃
+毡:氈
+毵:毿
+氇:氌
+气:氣气
+氢:氫
+氩:氬
+氲:氳
+氽:汆
+汇:匯彙
+汉:漢
+污:污汙
+汤:湯
+汹:洶
+沈:沈瀋
+沟:溝
+没:沒
+沣:灃
+沤:漚
+沥:瀝
+沦:淪
+沧:滄
+沩:溈潙
+沪:滬
+沾:沾霑
+泄:泄洩
+泛:泛氾汎
+泞:濘泞
+注:注註
+泪:淚
+泶:澩
+泷:瀧
+泸:瀘
+泺:濼
+泻:瀉
+泼:潑
+泽:澤
+泾:涇
+洁:潔洁
+洒:灑洒
+洼:窪洼
+浃:浹
+浅:淺
+浆:漿
+浇:澆
+浈:湞
+浊:濁
+测:測
+浍:澮
+济:濟
+浏:瀏
+浐:滻
+浑:渾
+浒:滸
+浓:濃
+浔:潯
+浚:浚濬
+浩:浩澔
+涂:塗涂
+涌:涌湧
+涕:涕洟
+涛:濤
+涝:澇
+涞:淶
+涟:漣
+涠:潿
+涡:渦
+涣:渙
+涤:滌
+润:潤
+涧:澗
+涨:漲
+涩:澀
+涸:涸凅
+淀:澱淀
+淫:淫婬
+渊:淵
+渌:淥
+渍:漬
+渎:瀆
+渐:漸
+渑:澠
+渔:漁
+渗:滲
+温:溫
+游:游遊
+湾:灣
+湿:溼濕
+溃:潰
+溅:濺
+溆:漵
+溜:溜霤
+溪:溪谿
+溯:溯泝
+滗:潷
+滚:滾
+滞:滯
+滟:灩灧
+滠:灄
+满:滿
+滢:瀅
+滤:濾
+滥:濫
+滦:灤
+滨:濱
+滩:灘
+滪:澦
+漓:漓灕
+演:演縯
+漾:漾瀁
+漤:灠
+潆:瀠
+潇:瀟
+潋:瀲
+潍:濰
+潜:潛
+潴:瀦
+澄:澄澂
+澜:瀾
+濑:瀨
+濒:瀕
+灏:灝
+灭:滅
+灯:燈
+灵:靈
+灶:竈
+灾:災
+灿:燦
+炀:煬
+炉:爐鑪
+炖:燉炖
+炜:煒
+炝:熗
+炫:炫衒
+炮:炮砲炰
+点:點
+炼:煉鍊
+炽:熾
+烁:爍
+烂:爛
+烃:烴
+烛:燭
+烟:煙
+烦:煩
+烧:燒
+烨:燁
+烩:燴
+烫:燙
+烬:燼
+热:熱
+焊:焊銲
+焕:煥
+焖:燜
+焘:燾
+焰:焰燄
+照:照炤
+熏:燻熏
+熔:熔鎔
+燕:燕鷰
+爱:愛
+爷:爺
+牍:牘
+牦:犛氂
+牵:牽
+牺:犧
+犊:犢
+状:狀
+犷:獷
+犸:獁
+犹:猶
+狈:狽
+狞:獰
+独:獨
+狭:狹
+狮:獅
+狯:獪
+狰:猙
+狱:獄
+狲:猻
+狸:狸貍
+猃:獫
+猎:獵
+猕:獼
+猡:玀
+猪:豬
+猫:貓
+猬:蝟
+献:獻
+獭:獺
+玑:璣
+玚:瑒
+玛:瑪
+玮:瑋
+环:環鐶
+现:現
+玱:瑲
+玺:璽
+珏:玨
+珐:琺
+珑:瓏
+珰:璫
+珲:琿
+球:球毬
+琅:琅瑯
+琏:璉
+琐:瑣
+琼:瓊
+瑶:瑤
+瑷:璦
+璇:璇璿
+璎:瓔
+瓒:瓚
+瓮:甕瓮
+瓯:甌
+瓶:瓶缾
+电:電
+画:畫
+畅:暢
+畲:畬
+畴:疇
+疖:癤
+疗:療
+疟:瘧
+疠:癘
+疡:瘍
+疬:癧
+疭:瘲
+疮:瘡
+疯:瘋
+疱:皰
+疴:痾
+症:症癥
+痈:廱癰
+痉:痙
+痒:癢痒
+痖:瘂
+痨:癆
+痪:瘓
+痫:癇
+痱:痱疿
+痴:痴癡
+痹:痺痹
+瘅:癉
+瘗:瘞
+瘘:瘺瘻
+瘪:癟
+瘫:癱
+瘾:癮
+瘿:癭
+癞:癩
+癣:癬
+癫:癲
+皂:皂皁
+皑:皚
+皱:皺
+皲:皸
+盏:盞醆
+盐:鹽
+监:監
+盖:蓋
+盗:盜
+盘:槃盤
+眍:瞘
+眦:眥
+眯:瞇眯
+眺:眺覜
+眬:矓
+睁:睜
+睐:睞
+睑:瞼
+睾:睪睾
+睿:睿叡
+瞆:瞶
+瞒:瞞
+瞩:矚
+矫:矯
+矶:磯
+矾:礬
+矿:礦
+砀:碭
+码:碼
+砖:磚
+砗:硨
+砚:硯
+砧:砧碪
+砜:碸
+砺:礪
+砻:礱
+砾:礫
+础:礎
+硁:硜
+硕:碩
+硖:硤
+硗:磽
+硙:磑
+确:確确
+硷:鹼礆
+碍:礙
+碛:磧
+碜:磣
+碰:碰踫
+碱:堿
+磷:燐磷
+礴:礡
+礼:禮
+祆:祆祅
+祛:祛袪
+祃:禡
+祎:禕
+祢:禰
+祯:禎
+祷:禱
+祸:禍
+禀:稟
+禄:祿
+禅:禪
+离:離离
+秃:禿
+秆:稈
+秋:秋鞦
+种:種种
+秘:秘祕
+积:積
+称:稱
+秽:穢
+秾:穠
+稆:穭
+税:稅
+稣:穌
+稳:穩
+穑:穡
+穷:窮
+窃:竊
+窍:竅
+窎:窵
+窑:窯
+窜:竄
+窝:窩
+窥:窺
+窦:竇
+窭:窶
+竖:豎竪
+竞:競
+端:端耑
+笃:篤
+笋:筍
+笔:筆
+笕:筧
+笺:箋
+笼:籠
+笾:籩
+筇:筇笻
+筋:筋觔
+筑:筑築
+答:答荅
+策:策筴
+筚:篳
+筛:篩
+筜:簹
+筝:箏
+筱:筱篠
+筹:籌
+筼:篔
+签:簽籤
+简:簡
+箅:箄箅
+箦:簀
+箧:篋
+箨:籜
+箩:籮
+箪:簞
+箫:簫
+箬:篛箬
+篑:簣
+篓:簍
+篮:籃
+篱:籬篱
+簖:籪
+籁:籟
+籴:糴
+类:類
+籼:秈
+粜:糶
+粝:糲
+粤:粵
+粪:糞
+粮:糧
+糁:糝
+糇:餱
+糊:糊餬
+糍:餈
+糟:糟蹧
+系:系係繫
+紧:緊
+累:累櫐纍
+絷:縶
+纟:糹
+纠:糾
+纡:紆
+红:紅
+纣:紂
+纤:縴纖
+纥:紇
+约:約
+级:級
+纨:紈
+纩:纊
+纪:紀
+纫:紉
+纬:緯
+纭:紜
+纮:紘
+纯:純
+纰:紕
+纱:紗
+纲:綱
+纳:納
+纴:紝
+纵:縱
+纶:綸
+纷:紛
+纸:紙
+纹:紋
+纺:紡
+纻:紵
+纼:紖
+纽:紐
+纾:紓
+线:線綫
+绀:紺
+绁:紲
+绂:紱
+练:練
+组:組
+绅:紳
+细:細
+织:織
+终:終
+绉:縐
+绊:絆
+绋:紼
+绌:絀
+绍:紹
+绎:繹
+经:經
+绐:紿
+绑:綁
+绒:絨
+结:結
+绔:絝
+绕:繞
+绖:絰
+绗:絎
+绘:繪
+给:給
+绚:絢
+绛:絳
+络:絡
+绝:絕絶
+绞:絞
+统:統
+绠:綆
+绡:綃
+绢:絹
+绣:繡綉
+绤:綌
+绥:綏
+绦:絛縚縧
+继:繼
+绨:綈
+绩:績勣
+绪:緒
+绫:綾
+绬:緓
+续:續
+绮:綺
+绯:緋
+绰:綽
+绱:緔鞝
+绲:緄
+绳:繩
+维:維
+绵:綿
+绶:綬
+绷:繃綳
+绸:綢
+绹:綯
+绺:綹
+绻:綣
+综:綜
+绽:綻
+绾:綰
+绿:綠緑
+缀:綴
+缁:緇
+缂:緙
+缃:緗
+缄:緘
+缅:緬
+缆:纜
+缇:緹
+缈:緲
+缉:緝
+缊:縕
+缋:繢
+缌:緦
+缍:綞
+缎:緞
+缏:緶
+缑:緱
+缒:縋
+缓:緩
+缔:締
+缕:縷
+编:編
+缗:緡
+缘:緣
+缙:縉
+缚:縛縳
+缛:縟
+缜:縝
+缝:縫
+缞:縗
+缟:縞
+缠:纏
+缡:縭
+缢:縊
+缣:縑
+缤:繽
+缥:縹
+缦:縵
+缧:縲
+缨:纓
+缩:縮
+缪:繆
+缫:繅
+缬:纈
+缭:繚
+缮:繕
+缯:繒
+缰:韁繮
+缱:繾
+缲:繰
+缳:繯
+缴:繳
+缵:纘
+罂:罌
+罐:罐鑵
+网:網网
+罗:羅儸囉
+罘:罘罦
+罚:罰
+罢:罷
+置:置寘
+罴:羆
+羁:羈
+羟:羥
+羡:羨羡
+翘:翹
+翻:翻繙
+耀:耀燿
+考:考攷
+耗:耗秏
+耢:耮
+耧:耬
+耸:聳
+耻:恥
+聂:聶
+聋:聾
+职:職
+聍:聹
+联:聯
+聩:聵
+聪:聰
+肃:肅
+肠:腸
+肤:膚
+肮:骯肮
+肴:肴餚殽
+肺:肺胇
+肾:腎
+肿:腫
+胀:脹
+胁:脅
+胄:冑胄
+胆:膽
+背:背揹
+胜:勝胜
+胡:胡鬍楜衚
+胧:朧矓
+胨:腖
+胪:臚
+胫:脛
+胭:胭臙
+胳:胳肐
+胶:膠
+脉:脈
+脍:膾
+脏:臟髒
+脐:臍
+脑:腦
+脓:膿
+脔:臠
+脚:腳
+脱:脫
+脶:腡
+脸:臉
+腊:臘腊
+腌:腌醃
+腭:齶
+腻:膩
+腼:靦
+腽:膃
+腾:騰
+膑:臏
+膘:膘臕
+膻:羶膻
+臜:臢
+致:致緻
+舄:舄潟
+舆:輿
+舍:舍捨
+舣:艤
+舰:艦
+舱:艙
+舻:艫
+艰:艱
+艳:艷豔
+艹:艸
+艺:藝
+节:節
+芈:羋
+芗:薌
+芜:蕪
+芦:蘆
+芸:芸蕓
+苁:蓯
+苇:葦
+苈:藶
+苋:莧
+苌:萇
+苍:蒼
+苎:苧
+苏:蘇甦囌
+苧:薴
+苟:苟茍
+苹:蘋苹
+茂:茂楙
+范:范範
+茎:莖
+茏:蘢
+茑:蔦
+茔:塋
+茕:煢
+茧:繭茧
+荆:荊
+荐:荐薦
+荙:薘
+荚:莢
+荛:蕘
+荜:蓽
+荞:蕎
+荟:薈
+荠:薺
+荡:蕩盪
+荣:榮
+荤:葷
+荥:滎
+荦:犖
+荧:熒
+荨:蕁
+荩:藎
+荪:蓀
+荫:蔭
+荬:藚蕒
+荭:葒
+荮:葤
+药:藥葯
+莅:蒞
+莓:莓苺
+莱:萊
+莲:蓮
+莳:蒔
+莴:萵
+莶:薟
+获:獲穫
+莸:蕕
+莹:瑩
+莺:鶯
+莼:蓴蒓
+菱:菱蔆
+萝:蘿
+萤:螢
+营:營
+萦:縈
+萧:蕭
+萨:薩
+葱:蔥
+蒇:蕆
+蒉:蕢
+蒋:蔣
+蒌:蔞
+蒙:蒙濛矇懞
+蓑:蓑簑
+蓝:藍
+蓟:薊
+蓠:蘺
+蓣:蕷
+蓥:鎣
+蓦:驀
+蔑:蔑衊
+蔂:虆
+蔷:薔
+蔹:蘞
+蔺:藺
+蔼:藹
+蕰:薀
+蕲:蘄
+蕴:蘊
+薮:藪
+薯:薯藷
+藉:藉耤
+藓:蘚
+藤:藤籐
+蘖:蘗櫱
+虏:虜
+虑:慮
+虚:虛
+虫:蟲虫
+虬:虯
+虮:蟣虮
+虱:虱蝨
+虽:雖
+虾:蝦
+虿:蠆
+蚀:蝕
+蚁:蟻
+蚂:螞
+蚕:蠶蚕
+蚝:蠔蚝
+蚬:蜆
+蛊:蠱
+蛎:蠣
+蛏:蟶
+蛮:蠻
+蛰:蟄
+蛱:蛺
+蛲:蟯
+蛳:螄
+蛴:蠐
+蜕:蛻
+蜗:蝸
+蜡:蠟蜡
+蜷:蜷踡
+蝇:蠅
+蝈:蟈
+蝉:蟬
+蝎:蠍蝎
+蝼:螻
+蝾:蠑
+蟮:蟺
+螀:螿
+螨:蟎
+蠢:蠢惷
+蠼:蠷蠼
+蟏:蠨
+衅:釁舋
+衔:銜啣
+补:補
+表:表錶
+衬:襯
+衮:袞
+袄:襖
+袅:裊嬝嫋
+袖:袖褎
+袆:褘
+袜:襪
+袭:襲
+袯:襏
+装:裝
+裆:襠
+裈:褌
+裢:褳
+裣:襝
+裤:褲
+裥:襉襇
+裸:裸祼
+褛:褸
+褴:襤
+襁:襁繈
+西:西襾
+见:見
+观:觀
+规:規
+觅:覓
+视:視
+觇:覘
+览:覽
+觉:覺
+觊:覬
+觋:覡
+觌:覿
+觍:覥
+觎:覦
+觏:覯
+觐:覲
+觑:覷
+角:角甪
+觞:觴
+触:觸触
+觯:觶
+訚:誾
+誉:譽
+誊:謄
+讠:訁
+计:計
+订:訂
+讣:訃
+认:認
+讥:譏
+讦:訐
+讧:訌
+讨:討
+让:讓
+讪:訕
+讫:訖
+讬:託
+训:訓
+议:議
+讯:訊
+记:記
+讱:訒
+讲:講
+讳:諱
+讴:謳
+讵:詎
+讶:訝
+讷:訥
+许:許
+讹:訛
+论:論
+讻:訩
+讼:訟
+讽:諷
+设:設
+访:訪
+诀:訣
+证:證証
+诂:詁
+诃:訶
+评:評
+诅:詛
+识:識
+诇:詗
+诈:詐
+诉:訴
+诊:診
+诋:詆
+诌:謅
+词:詞
+诎:詘
+诏:詔
+诐:詖
+译:譯
+诒:詒
+诓:誆
+诔:誄
+试:試
+诖:詿
+诗:詩
+诘:詰
+诙:詼
+诚:誠
+诛:誅
+诜:詵
+话:話
+诞:誕
+诟:詬
+诠:詮
+诡:詭
+询:詢
+诣:詣
+诤:諍
+该:該
+详:詳
+诧:詫
+诨:諢
+诩:詡
+诪:譸
+诫:誡
+诬:誣
+语:語
+诮:誚
+误:誤
+诰:誥
+诱:誘
+诲:誨
+诳:誑
+说:說説
+诵:誦
+诶:誒
+请:請
+诸:諸
+诹:諏
+诺:諾
+读:讀
+诼:諑
+诽:誹
+课:課
+诿:諉
+谀:諛
+谁:誰
+谂:諗
+调:調
+谄:諂
+谅:諒
+谆:諄
+谇:誶
+谈:談
+谊:誼
+谋:謀
+谌:諶
+谍:諜
+谎:謊
+谏:諫
+谐:諧
+谑:謔
+谒:謁
+谓:謂
+谔:諤
+谕:諭
+谖:諼
+谗:讒
+谘:諮
+谙:諳
+谚:諺
+谛:諦
+谜:謎
+谝:諞
+谞:諝
+谟:謨
+谠:讜
+谡:謖
+谢:謝
+谣:謠謡
+谤:謗
+谥:謚
+谦:謙
+谧:謐
+谨:謹
+谩:謾
+谪:謫
+谫:譾謭
+谬:謬
+谭:譚
+谮:譖
+谯:譙
+谰:讕
+谱:譜
+谲:譎
+谳:讞
+谴:譴
+谵:譫
+谶:讖
+谷:谷穀
+豆:豆荳
+豚:豚魨
+豮:豶
+贝:貝
+贞:貞
+负:負
+贠:貟
+贡:貢
+财:財
+责:責
+贤:賢
+败:敗
+账:賬
+货:貨
+质:質
+贩:販
+贪:貪
+贫:貧
+贬:貶
+购:購
+贮:貯
+贯:貫
+贰:貳
+贱:賤
+贲:賁
+贳:貰
+贴:貼
+贵:貴
+贶:貺
+贷:貸
+贸:貿
+费:費
+贺:賀
+贻:貽
+贼:賊
+贽:贄
+贾:賈
+贿:賄
+赀:貲
+赁:賃
+赂:賂
+赃:贓贜
+资:資
+赅:賅
+赆:贐
+赇:賕
+赈:賑
+赉:賚
+赊:賒
+赋:賦
+赌:賭
+赍:齎賫
+赎:贖
+赏:賞
+赐:賜
+赑:贔
+赒:賙
+赓:賡
+赔:賠
+赕:賧
+赖:賴
+赗:賵
+赘:贅
+赙:賻
+赚:賺
+赛:賽
+赜:賾
+赝:贗贋
+赞:贊讚
+赟:贇
+赠:贈
+赡:贍
+赢:贏
+赣:贛
+赪:赬
+赵:趙
+赶:趕赶
+趋:趨
+趱:趲
+趸:躉
+跃:躍
+跄:蹌
+跖:跖蹠
+跞:躒
+践:踐
+跶:躂
+跷:蹺
+跸:蹕
+跹:躚
+跻:躋
+踊:踴踊
+踌:躊
+踪:蹤
+踬:躓
+踯:躑
+蹑:躡
+蹒:蹣
+蹰:躕
+蹿:躥
+躏:躪
+躜:躦
+躯:軀
+车:車
+轧:軋
+轨:軌
+轩:軒
+轪:軑
+轫:軔
+转:轉
+轭:軛
+轮:輪
+软:軟
+轰:轟
+轱:軲
+轲:軻
+轳:轤
+轴:軸
+轵:軹
+轶:軼
+轷:軤
+轸:軫
+轹:轢
+轺:軺
+轻:輕
+轼:軾
+载:載
+轾:輊
+轿:轎
+辀:輈
+辁:輇
+辂:輅
+较:較
+辄:輒
+辅:輔
+辆:輛
+辇:輦
+辈:輩
+辉:輝
+辊:輥
+辋:輞
+辌:輬
+辍:輟
+辎:輜
+辏:輳
+辐:輻
+辑:輯
+辒:轀
+输:輸
+辔:轡
+辕:轅
+辖:轄
+辗:輾
+辘:轆
+辙:轍
+辚:轔
+辞:辭
+辟:辟闢
+辩:辯
+辫:辮
+边:邊
+辽:遼
+达:達
+迁:遷
+过:過
+迈:邁
+运:運
+还:還
+这:這
+进:進
+远:遠
+违:違
+连:連
+迟:遲
+迤:迆迤
+迩:邇
+迳:逕
+迹:跡蹟
+适:適适
+选:選
+逊:遜
+递:遞
+逦:邐
+逻:邏
+逼:逼偪
+逾:逾踰
+遗:遺
+遥:遙
+邓:鄧
+邝:鄺
+邬:鄔
+邮:郵
+邹:鄒
+邺:鄴
+邻:鄰
+郁:郁鬱
+郏:郟
+郐:鄶
+郑:鄭
+郓:鄆
+郦:酈
+郧:鄖
+郸:鄲
+酂:酇
+酝:醞
+酬:酬詶
+酦:醱
+酱:醬
+酸:酸痠
+酽:釅
+酾:釃
+酿:釀
+采:釆采採埰
+释:釋
+里:里浬裡裏
+野:野埜
+鉴:鑒鋻鑑
+銮:鑾
+錾:鏨
+钅:釒
+钆:釓
+钇:釔
+针:針鍼
+钉:釘
+钊:釗
+钋:釙
+钌:釕
+钍:釷
+钎:釬釺
+钏:釧
+钐:釤
+钑:鈒
+钒:釩
+钓:釣
+钔:鍆
+钕:釹
+钖:鍚
+钗:釵
+钘:鈃
+钙:鈣
+钚:鈈
+钛:鈦
+钜:鉅
+钝:鈍
+钞:鈔
+钟:鐘鍾
+钠:鈉
+钡:鋇
+钢:鋼
+钣:鈑
+钤:鈐
+钥:鑰
+钦:欽
+钧:鈞
+钨:鎢
+钩:鈎鉤
+钪:鈧
+钫:鈁
+钬:鈥
+钭:鈄
+钮:鈕
+钯:鈀
+钰:鈺
+钱:錢
+钲:鉦
+钳:鉗拑
+钴:鈷
+钵:缽鉢
+钶:鈳
+钷:鉕
+钸:鈽
+钹:鈸
+钺:鉞戉
+钻:鑽鉆
+钼:鉬
+钽:鉭
+钾:鉀
+钿:鈿
+铀:鈾
+铁:鐵
+铂:鉑
+铃:鈴
+铄:鑠
+铅:鉛
+铆:鉚
+铇:鉋
+铈:鈰
+铉:鉉
+铊:鉈
+铋:鉍
+铌:鈮
+铍:鈹
+铎:鐸
+铏:鉶
+铐:銬
+铑:銠
+铒:鉺
+铓:鋩
+铔:錏
+铕:銪
+铖:鋮
+铗:鋏
+铘:鋣
+铙:鐃
+铚:銍
+铛:鐺
+铜:銅
+铝:鋁
+铞:銱
+铟:銦
+铠:鎧
+铡:鍘
+铢:銖
+铣:銑鐉
+铤:鋌
+铥:銩
+铦:銛
+铧:鏵
+铨:銓
+铩:鎩
+铪:鉿
+铫:銚
+铬:鉻
+铭:銘
+铮:錚
+铯:銫
+铰:鉸
+铱:銥
+铲:鏟剷
+铳:銃
+铴:鐋
+铵:銨
+银:銀
+铷:銣
+铸:鑄
+铹:鐒
+铺:鋪舖
+铻:鋙
+铼:錸
+铽:鋱
+链:鏈
+铿:鏗
+销:銷
+锁:鎖
+锂:鋰
+锃:鋥
+锄:鋤
+锅:鍋
+锆:鋯
+锇:鋨
+锈:鏽銹
+锉:銼剉
+锊:鋝
+锋:鋒
+锌:鋅
+锍:鋶
+锎:鐦
+锏:鐧
+锐:銳鋭
+锑:銻
+锒:鋃
+锓:鋟
+锔:鋦
+锕:錒
+锖:錆
+锗:鍺
+锘:鍩
+错:錯
+锚:錨
+锛:錛
+锜:錡
+锝:鍀
+锞:錁
+锟:錕
+锠:錩
+锡:錫
+锢:錮
+锣:鑼
+锤:錘鎚
+锥:錐
+锦:錦
+锧:鑕
+锨:杴鍁
+锩:錈
+锪:鍃
+锫:錇
+锬:錟
+锭:錠
+键:鍵
+锯:鋸
+锰:錳
+锱:錙
+锲:鍥
+锳:鍈
+锴:鍇
+锵:鏘
+锶:鍶
+锷:鍔
+锸:鍤
+锹:鍬
+锻:鍛
+锼:鎪
+锽:鍠
+锾:鍰
+锿:鎄
+镀:鍍
+镁:鎂
+镂:鏤
+镃:鎡
+镄:鐨
+镅:鎇
+镆:鏌
+镇:鎮
+镈:鎛
+镉:鎘
+镊:鑷
+镋:鎲
+镌:鐫鎸
+镍:鎳
+镎:鎿
+镏:鎦
+镐:鎬
+镑:鎊
+镒:鎰
+镓:鎵
+镔:鑌
+镕:鎔
+镖:鏢
+镗:鏜
+镘:鏝
+镙:鏍
+镚:鏰
+镛:鏞
+镜:鏡
+镝:鏑
+镞:鏃
+镟:鏇
+镠:鏐
+镡:鐔
+镢:鐝钁
+镣:鐐
+镤:鏷
+镥:鑥
+镦:鐓
+镧:鑭
+镨:鐠
+镩:鑹
+镪:鏹
+镫:鐙
+镬:鑊
+镭:鐳
+镮:鐶
+镯:鐲
+镰:鐮鎌
+镱:鐿
+镲:鑔
+镳:鑣
+镴:鑞
+镵:鑱
+镶:鑲瓖
+长:長
+门:門
+闩:閂
+闪:閃
+闫:閆
+闬:閈
+闭:閉
+问:問
+闯:闖
+闰:閏
+闱:闈
+闲:閑閒
+闳:閎
+间:間
+闵:閔湣
+闶:閌
+闷:悶
+闸:閘
+闹:鬧
+闺:閨
+闻:聞
+闼:闥
+闽:閩
+闾:閭
+闿:闓
+阀:閥
+阁:閣
+阂:閡
+阃:閫
+阄:鬮
+阅:閱閲
+阆:閬
+阇:闍
+阈:閾
+阉:閹
+阊:閶
+阋:鬩
+阌:閿
+阍:閽
+阎:閻
+阏:閼
+阐:闡
+阑:闌
+阒:闃
+阓:闠
+阔:闊
+阕:闋
+阖:闔
+阗:闐
+阘:闒
+阙:闕
+阚:闞
+阛:闤
+队:隊
+阳:陽暘
+阴:陰
+阵:陣
+阶:階
+际:際
+陆:陸
+陇:隴
+陈:陳
+陉:陘
+陕:陝
+陧:隉
+陨:隕
+险:險
+陶:陶匋
+隋:隋陏
+随:隨
+隐:隱
+隶:隸
+隽:雋
+难:難
+雁:雁鴈
+雇:雇僱
+雏:雛
+雕:雕琱鵰彫
+雠:讎
+雳:靂
+雾:霧
+霁:霽
+霉:霉黴
+霓:霓蜺
+霡:霢
+霭:靄
+靓:靚
+静:靜
+面:面麵
+靥:靨
+鞑:韃
+鞒:鞽
+鞯:韉
+韦:韋
+韧:韌
+韨:韍
+韩:韓
+韪:韙
+韫:韞
+韬:韜
+韵:韻
+页:頁
+顶:頂
+顷:頃
+顸:頇
+项:項
+顺:順
+须:須鬚
+顼:頊
+顽:頑
+顾:顧
+顿:頓
+颀:頎
+颁:頒
+颂:頌
+颃:頏
+预:預
+颅:顱
+领:領
+颇:頗
+颈:頸
+颉:頡
+颊:頰
+颋:頲
+颌:頜
+颍:潁
+颎:熲
+颏:頦
+颐:頤
+频:頻
+颓:頹隤穨頽
+颔:頷
+颕:頴
+颖:穎
+颗:顆
+题:題
+颙:顒
+颚:顎
+颛:顓
+颜:顏顔
+额:額
+颞:顳
+颟:顢
+颠:顛
+颡:顙
+颢:顥
+颤:顫
+颥:顬
+颦:顰
+颧:顴
+风:風
+飏:颺
+飐:颭
+飑:颮
+飒:颯
+飓:颶
+飔:颸
+飕:颼
+飖:颻
+飗:飀
+飘:飄
+飙:飆
+飚:飈
+飞:飛
+飨:饗
+餍:饜
+饣:飠
+饤:飣
+饥:飢饑
+饦:飥
+饧:餳
+饨:飩
+饩:餼
+饪:飪
+饫:飫
+饬:飭
+饭:飯
+饮:飲
+饯:餞
+饰:飾
+饱:飽
+饲:飼
+饴:飴
+饵:餌
+饶:饒
+饷:餉饟
+饹:餎
+饺:餃
+饻:餏
+饼:餅
+饽:餑
+饾:餖
+饿:餓
+馀:余
+馁:餒
+馂:餕
+馃:餜
+馄:餛
+馅:餡
+馆:館
+馇:餷
+馈:饋餽
+馊:餿
+馋:饞
+馌:饁
+馍:饃糢
+馎:餺
+馏:餾
+馐:饈
+馑:饉
+馒:饅
+馓:饊
+馔:饌
+馕:饢
+马:馬
+驭:馭
+驮:馱
+驯:馴
+驰:馳
+驱:驅
+驲:馹
+驳:駁駮
+驴:驢
+驵:駔
+驶:駛
+驷:駟
+驸:駙
+驹:駒
+驺:騶
+驻:駐
+驼:駝
+驽:駑
+驾:駕
+驿:驛
+骀:駘
+骁:驍
+骂:罵駡
+骃:駰
+骄:驕
+骅:驊
+骆:駱
+骇:駭
+骈:駢
+骉:驫
+骊:驪
+骋:騁
+验:驗
+骍:騂
+骎:駸
+骏:駿
+骐:騏
+骑:騎
+骒:騍
+骓:騅
+骔:騌
+骕:驌
+骖:驂
+骗:騙
+骘:騭
+骙:騤
+骚:騷
+骛:騖
+骜:驁
+骝:騮
+骞:騫鶱
+骟:騸
+骠:驃
+骡:騾
+骢:驄
+骣:驏
+骤:驟
+骥:驥
+骦:驦
+骧:驤
+髅:髏
+髋:髖
+髌:髕
+鬃:鬃騣
+鬓:鬢
+魇:魘
+魉:魎
+鱼:魚
+鱽:魛
+鱿:魷
+鲀:魨
+鲁:魯
+鲂:魴
+鲃:䰾
+鲄:魺
+鲅:鮁
+鲆:鮃
+鲇:鯰鮎
+鲈:鱸
+鲉:鮋
+鲊:鮓
+鲋:鮒
+鲌:鮊
+鲍:鮑
+鲎:鱟
+鲏:鮍
+鲐:鮐
+鲑:鮭
+鲒:鮚
+鲔:鮪
+鲕:鮞
+鲖:鮦
+鲗:鰂
+鲘:鮜
+鲙:鱠
+鲚:鱭
+鲛:鮫
+鲜:鮮
+鲞:鯗鮝
+鲟:鱘
+鲠:鯁
+鲡:鱺
+鲢:鰱
+鲣:鰹
+鲤:鯉
+鲥:鰣
+鲦:鰷
+鲧:鯀
+鲨:鯊
+鲩:鯇
+鲪:鮶
+鲫:鯽
+鲬:鯒
+鲭:鯖
+鲮:鯪
+鲯:鯕
+鲰:鯫
+鲱:鯡
+鲲:鯤
+鲳:鯧
+鲴:鯝
+鲵:鯢
+鲷:鯛
+鲸:鯨
+鲹:鰺
+鲺:鯴
+鲻:鯔
+鲼:鱝
+鲽:鰈
+鲾:鰏
+鲿:鱨
+鳀:鯷
+鳁:鰮
+鳃:鰓
+鳄:鱷鰐
+鳅:鰍
+鳆:鰒
+鳇:鰉
+鳊:鯿
+鳋:鰠
+鳌:鰲鼇
+鳍:鰭
+鳎:鰨
+鳏:鰥
+鳐:鰩
+鳑:鰟
+鳒:鰜
+鳓:鰳
+鳔:鰾
+鳕:鱈
+鳖:鱉
+鳗:鰻
+鳘:鰵
+鳙:鱅
+鳚:䲁
+鳛:鰼
+鳜:鱖
+鳝:鱔
+鳞:鱗
+鳟:鱒
+鳢:鱧
+鳣:鱣
+鸟:鳥
+鸠:鳩
+鸡:雞鷄
+鸢:鳶
+鸣:鳴
+鸤:鳲
+鸥:鷗
+鸦:鴉
+鸧:鶬
+鸨:鴇
+鸩:鴆酖
+鸪:鴣
+鸫:鶇
+鸬:鸕
+鸭:鴨
+鸮:鴞
+鸯:鴦
+鸰:鴒
+鸱:鴟
+鸲:鴝
+鸳:鴛
+鸴:鷽
+鸵:鴕
+鸶:鷥
+鸷:鷙
+鸸:鴯
+鸹:鴰
+鸺:鵂
+鸻:鴴
+鸼:鵃
+鸽:鴿
+鸾:鸞
+鸿:鴻
+鹀:鵐
+鹁:鵓
+鹂:鸝
+鹃:鵑
+鹄:鵠
+鹅:鵝
+鹆:鵒
+鹇:鷴鷳
+鹈:鵜
+鹉:鵡
+鹊:鵲
+鹋:鶓
+鹌:鵪
+鹍:鵾
+鹎:鵯
+鹏:鵬
+鹐:鵮
+鹑:鶉
+鹒:鶊
+鹓:鵷
+鹔:鷫
+鹕:鶘
+鹖:鶡
+鹗:鶚
+鹘:鶻
+鹙:鶖
+鹚:鶿鷀
+鹛:鶥
+鹜:鶩
+鹝:鷊
+鹞:鷂
+鹟:鶲
+鹠:鶹
+鹡:鶺
+鹢:鷁
+鹣:鶼
+鹤:鶴
+鹥:鷖
+鹦:鸚
+鹧:鷓
+鹨:鷚
+鹩:鷯
+鹪:鷦
+鹫:鷲
+鹬:鷸
+鹭:鷺
+鹯:鸇
+鹰:鷹
+鹱:鸌
+鹲:鸏
+鹳:鸛
+鹴:鸘
+鹾:鹺
+麦:麥
+麸:麩
+麻:麻痲痳
+黄:黃
+黉:黌
+黡:黶
+黩:黷
+黪:黲
+黾:黽
+鼋:黿
+鼍:鼉
+鼗:鞀
+鼹:鼴
+齐:齊
+齑:齏
+齿:齒
+龀:齔
+龁:齕
+龂:齗
+龃:齟
+龄:齡
+龅:齙
+龆:齠
+龇:齜
+龈:齦
+龉:齬
+龊:齪
+龋:齲
+龌:齷
+龙:龍
+龚:龔
+龛:龕
+龟:龜
+龠:龠籥
diff --git a/i18npool/source/textconversion/data/stc_word.dic b/i18npool/source/textconversion/data/stc_word.dic
new file mode 100644
index 000000000..4ae423668
--- /dev/null
+++ b/i18npool/source/textconversion/data/stc_word.dic
@@ -0,0 +1,1150 @@
+一发>一髮
+万历>萬曆
+万年历>萬年曆
+三复>三複
+不干>不幹
+严复>嚴複
+中干>中幹
+主干>主幹
+乌发>烏髮
+乱发>亂髮
+人赃俱获>人贓俱獲
+佛历>佛曆
+假发>假髮
+偷偷干>偷偷幹
+傻干>傻幹
+光纤>光纖
+公历>西曆
+公干>公幹
+兴复>興復
+冒险干>冒險幹
+农历年>農曆年
+农历>農曆
+创历>創曆
+削发>削髮
+化纤>化纖
+匡复>匡復
+千纤>千纖
+华发>華髮
+单干>單幹
+卤味>滷味
+卷发>捲髮
+历书>曆書
+历月>曆月
+历法>曆法
+历象>曆象
+发乳>髮乳
+发卡>髮卡
+发型>髮型
+发夹>髮夾
+发廊>髮廊
+发式>髮式
+发指>髮指
+发油>髮油
+发粉>髮粉
+发菜>髮菜
+发蜡>髮蠟
+发辫>髮辮
+发露>髮露
+发髻>髮髻
+变脏>變髒
+叮叮当当>叮叮噹噹
+叮当>叮噹
+台历=桌曆
+台球=撞球
+台风>颱風
+响当当>響噹噹
+四复>四複
+团粒>糰粒
+国历>國曆
+坛坛罐罐>壇壇罐罐
+坛子>壇子
+垦复>墾復
+基干>基幹
+复业>復業
+复交>復交
+复任>復任
+复值>復值
+复健>復健
+复元>復元
+复关>複關
+复写>複寫
+复决>複決
+复出>複出
+复击>複擊
+复分数>複分數
+复利>複利
+复制>複製
+复加>複加
+复印>複印
+复变数>複變數
+复句>複句
+复叶>複葉
+复合>復合
+复名数>複名數
+复名词>複名詞
+复唱句>複唱句
+复国>復國
+复圆>複圓
+复地>複地
+复始>複始
+复姓>複姓
+复子明辟>複子明辟
+复学>復學
+复对数>複對數
+复州湾>複州灣
+复建>複建
+复式>複式
+复归>複歸
+复得>複得
+复打孔机>複打孔機
+复折>複折
+复摆>複擺
+复数>複數
+复新率>複新率
+复方>複方
+复明>複明
+复本>複本
+复杂>複雜
+复权>複權
+复染>複染
+复根>複根
+复框>複框
+复检>複檢
+复次>複次
+复比>複比
+复燃>複燃
+复燎>複燎
+复现>複現
+复生>複生
+复用>複用
+复电>複電
+复白>複白
+复盐>複鹽
+复眼>複眼
+复矩阵>複矩陣
+复礼>複禮
+复算>複算
+复籍>複籍
+复线>複綫
+复置>複置
+复耕>複耕
+复职>複職
+复萌>複萌
+复衍>複衍
+复视>複視
+复讼>複訟
+复评>複評
+复词>複詞
+复读>複讀
+复课>複課
+复起>複起
+复蹈>複蹈
+复转>複轉
+复选>複選
+复醒>複醒
+复长>複長
+复阅>複閱
+复雠>複讎
+复音>複音
+复频>複頻
+复驳>複駁
+夏历>夏曆
+大历>大曆
+大干>大幹
+太阳历>太陽曆
+太阴历>太陰曆
+头发>頭髮
+字汇>字彙
+实干>實幹
+审干>審幹
+小干>小幹
+尽先>儘先
+尽快>儘快
+尽早>儘早
+尽是>儘是
+尽然>儘然
+尽管>儘管
+尽自>儘自
+尽量>儘量
+巧干>巧幹
+巴尔干>巴爾幹
+干下>幹下
+干了>幹了
+干事>幹事
+干什么>幹什麼
+干休>幹休
+干休所>幹休所
+干制>幹制
+干劲>幹勁
+干卿何事>干卿何事
+干县>幹縣
+干名采誉>幹名采譽
+干吗>幹嗎
+干吧>幹吧
+干员>幹員
+干嘛>幹嘛
+干好>幹好
+干完>幹完
+干将>幹將
+干干脆脆>乾乾脆脆
+干得>幹得
+干才>幹才
+干掉>幹掉
+干政>幹政
+干校>幹校
+干活>幹活
+干流>幹流
+干渠>幹渠
+干着>幹著
+干线>幹線
+干练>幹練
+干群>幹群
+干蠢事>幹蠢事
+干警>幹警
+干起>幹起
+干过>幹過
+干道>幹道
+干部>幹部
+年历>年曆
+弄脏>弄髒
+强干弱枝>強幹弱枝
+当啷>噹啷
+很脏>很髒
+德干高原>德幹高原
+心长发短>心長髮短
+快干>快幹
+怒发>怒髮
+性历>性曆
+恶心>噁心
+才干>才幹
+找点事干>找點事幹
+找点活干>找點活幹
+护发>護髮
+拉纤>拉纖
+拖脏>拖髒
+招干>招幹
+拭干>拭幹
+挂历>掛曆
+提干>提幹
+收获>收穫
+敢干>敢幹
+散发>散髮
+新干>新幹
+无复孑遗>無複孑遺
+日历>日曆
+旧历>舊曆
+月历>月曆
+朝干夕惕>朝幹夕惕
+来复>來複
+枝干>枝幹
+柜台>櫃檯
+查干乌苏>查幹烏蘇
+树干>樹幹
+梳妆台>梳粧檯
+棉纤维>棉纖維
+榨干>榨幹
+此复>此複
+毛发>毛髮
+毫发>毫髮
+汇报>彙報
+汇编>彙編
+汇聚>彙聚
+汇集>彙集
+汤团>湯糰
+泼脏>潑髒
+洗发>洗髮
+洗头发>洗頭髮
+灯台>燈檯
+灰蒙蒙>灰濛濛
+烫发>燙髮
+犹太历>猶太曆
+猛干>猛幹
+珠干玉戚>珠幹玉戚
+理发>理髮
+生发>生髮
+白发>白髮
+皇历>皇曆
+盲干>盲幹
+矫情干誉>矯情幹譽
+短发>短髮
+硬干>硬幹
+秀发>秀髮
+穷纤入微>窮纖入微
+童颜鹤发>童顏鶴髮
+简复>簡複
+精干>精幹
+精明强干>精明強幹
+精明能干>精明能幹
+系念>繫念
+繁复>繁複
+纤小>纖小
+纤尘>纖塵
+纤巧>纖巧
+纤弱>纖弱
+纤悉不遗>纖悉不遺
+纤手>纖手
+纤指>纖指
+纤毛>纖毛
+纤纤>纖纖
+纤细>纖細
+纤绳>纖繩
+纤维>纖維
+纤腰>纖腰
+纤芥>纖芥
+纤道>纖道
+纪历>紀曆
+细蒙蒙>細濛濛
+结发>結髮
+维系>維繫
+老态龙钟>老態龍鍾
+老迈龙钟>老邁龍鍾
+联系>聯繫
+肮肮脏脏>骯骯髒髒
+肮脏>骯髒
+肯干>肯幹
+胎发>胎髮
+能干>能幹
+脏东西>髒東西
+脏乱>髒亂
+脏了>髒了
+脏兮兮>髒兮兮
+脏土>髒土
+脏字>髒字
+脏手>髒手
+脏水>髒水
+脏污>髒污
+脏物>髒物
+脏话>髒話
+脏钱>髒錢
+脱发>脫髮
+腐干>腐幹
+苦干>苦幹
+蒙蒙>濛濛
+藏历>藏曆
+蛮干>蠻幹
+行事历>行事曆
+西历>西曆
+词干>詞幹
+词汇>辭彙
+语汇>語彙
+调复机>調複機
+贵干>貴幹
+起伏=起復
+躯干>軀幹
+转干>轉幹
+边干>邊幹
+重复>重複
+金发>金髮
+钟情>鍾情
+钟爱>鍾愛
+钟馗>鍾馗
+钱复>錢複
+银发>銀髮
+锺县>鍾縣
+锺离>鍾離
+长发>長髮
+间不容发>間不容髮
+阳历>陽曆
+阴历>陰曆
+亚历山大>亞歷山大
+随干>隨幹
+须发>鬚髮
+顾复>顧複
+颠复>顛複
+颠干倒坤>顛幹倒坤
+驱干>驅幹
+骨干>骨幹
+骯脏>骯髒
+高干>高幹
+鬓发>鬢髮
+魂牵梦系>魂牽夢繫
+鹤发>鶴髮
+黄历>黃曆
+黑发>黑髮
+龙钟>龍鍾
+循环>迴圈
+万维网=全球資訊網
+三击=按三下
+上下文=內文
+下划线=底線
+下溢=超下限
+不区分大小写=大小寫不須相符
+不能=無法
+与元件=交集元件
+与操作=交集運算
+与设备无关=不依賴裝置
+与设备有关=裝置相依的
+与门=且閘
+专用=專屬
+专用线路>專屬電路
+中规模=中型
+串行=串列
+临时文件=暫存檔
+主从式=主從式
+主存=主記憶體
+主页=首頁
+主驱动器=主磁碟機
+书写=書寫
+书签>書籤
+二叉树=二元樹
+二极管=二極體
+交换区=置換
+仅文本>純文字
+介质密度=媒體密度
+仓库=倉儲
+代码=程式碼
+代码集=字元集
+令牌>記號
+以太网=乙太網路
+任务>工作
+仿真=模擬
+仿真器>模擬器
+休假=自動回信
+优质彩色显示器=高級彩色顯示器
+优选>偏好
+会话=階段作業
+传感器=感應器
+传播>傳遞
+传输>傳送
+传输层=傳送層
+传送>傳輸
+伪>虛擬
+伪类=虛擬類別
+伪随机数=虛擬亂數
+位图=點陣圖
+位映射>點陣
+低层次=低階
+体系结构>架構
+余弦=餘弦
+作用域>範圍
+使缺省=變成預設值
+例行程序=常式
+供电=電源供應
+依赖平台的=平台相依
+依赖性=相依性
+保修期=保證期
+保存>儲存
+保密性=私密性
+信件>郵件
+信号=訊號
+信息=資訊
+信箱=郵箱
+倒置=反轉
+假脱机>同時周邊線上作業
+兆=百萬
+光栅=光域
+光标>游標
+光电产品=光學產品
+光盘=光碟
+光笔=光筆
+克隆>複製
+入口=進入點
+入口级=初階
+全局=全域
+全息照相=全像術
+全路径=完整路徑
+公共=公用
+共享=共用
+关系>關係
+其它=其他
+兼容=相容
+内存=記憶體
+内核>核心
+内置=內建
+内置宏=內建巨集
+内部网=企業網路
+冗余>多餘
+冗余模式>冗長模式
+写作>撰寫
+冲突>衝突
+减震=避震裝置
+击键>按鍵
+分区=分割區
+分发>分配
+分层=階層式
+分布=分散
+分析>解析
+分辨率=解析度
+分配=配置
+列数=欄數
+列表>清單
+刚好及时编译器=即時編譯程式
+创建=建立
+初始化=起始
+初级功能=初階功能
+删除=移除
+别名=代號
+制表符=跳格
+制表键>跳格
+刷新>清除
+前台=前景
+前沿=前廊
+前缀=前置
+剩下=剩餘
+剩余>剩餘
+剪切=剪下
+剪贴板=剪貼簿
+助记=助憶
+包交换=分封交換
+包语句=套裝模組敘述
+匹配>符合
+区分大小写=區分大小寫
+千字节=千位元組
+协处理器=輔助處理器
+协议=協定
+单击=按一下
+单列内置内存模块=單一線內記憶體模組
+单精度=單精準度
+占用>使用
+卸载=卸載
+压缩=壓縮
+厘米=公分
+原始>初始
+去磁>消磁
+参数=參數
+参考>參照
+双击=按兩下
+反斜杠=反斜線
+反汇编=反向組譯
+反汇编程序=反組譯程式
+反馈=回饋
+发信=發信
+发送>傳送
+变元=自變數
+变量=變數
+口令=密碼
+句柄=控點
+另存为=另存新檔
+只读=唯讀
+可抢先的=可先佔的
+可移植=可攜式
+可编程=可程式化
+可装=可載入
+可视图象=視覺影像
+台式系统=桌面系統
+合并>合併
+名称字段=名稱欄位
+后台=背景
+后缀=字尾
+周视图>周查看
+命令>指令
+响应=回應
+响铃=嗶聲
+哑终端=無智型終端機
+噪声=聲音雜訊
+噪音=雜訊
+四击=連按四下
+回复=回覆
+回应=因應
+回放=重播
+回溯=反向搜尋
+回绕>換行
+回路切换=電路交換
+回车=回轉鍵
+因特网>網際網路
+固件=韌體
+国际互联网=網際網路
+国际无线电委员会=國際無線電諮詢委員會
+国际标准化组织=國際標準組織
+图像>影像
+图标>圖像
+图象>影像
+地址=位址
+坐标=座標
+块校验字符=區塊檢查字元
+基准程序=基準程式
+基准线=基線
+基带=基頻
+基本类=基礎類別
+堆栈=堆疊
+塞尔维亚=賽爾維亞
+填充=填補
+增量式=遞增
+声卡=音效卡
+声音>音響
+声频>聲訊
+备份=復本
+复位=重設
+复制>複製
+复合>複合
+复选=核取
+外围>周邊
+外设>周邊設備
+多字节=多位元組
+多屏=多重螢幕
+多总线=多重匯流排
+多用户=多重使用者
+多线程=多重執行緒
+多路复用=多工
+头文件=標頭檔案
+奇偶校验=同位檢查
+威尔士=威爾斯
+子域=子網域
+子数组=子陣列
+子网掩码=子網路遮罩
+子题目=次層題目
+字体=字型
+字段=欄位
+字母数字=文數字
+字符=字元
+字符串=字串
+字符集=字集
+字节=位元組
+存储=儲存
+存储器>記憶體
+守护=常駐
+守护程序=常駐程式
+安装=裝載
+宏=巨集
+定制>自訂
+审计=稽核
+客户>用戶
+客户机服务器>主從式
+宽字符=寬字元
+宿主机>主機
+寄存器=暫存器
+密钥=加密鍵
+对准=調校
+对分查找树=二元搜尋樹
+对话框=對話方塊
+对象=物件
+寻址=定址
+寻找=搜尋
+小型计算机=迷你電腦
+小规模=小型
+小键盘=數字鍵盤
+就绪=備妥
+尺寸=大小
+局域网=區域網路
+屏幕=螢幕
+属主=所有者
+嵌入=內嵌
+工具栏=工具軸
+左侧=左手邊
+左撇子=慣用左手
+布告=告示
+布尔=布林
+布局>佈局
+带宽=頻寬
+帧菜单=框架功能表
+帮助=輔助說明
+常量=常數
+常驻字体=內建字型
+干扰>干擾
+平均故障时间=平均故障間隔時間
+平铺式=非重疊
+年视图=年查看
+并行=並列
+并行口=並列埠
+并行打印机=並列印表機
+并行接口=平行介面
+广域网=廣域網路
+序列>串列
+库=程式庫
+应用程序=應用程式
+应用程序包=應用程序集
+应答>回應
+应答符=回應字元
+底座=基本框架
+废纸篓=垃圾桶
+开发环境=設計環境
+异常>不規則
+异常终止=異常終結
+异步=非同步
+式样=樣式
+引导=啟動
+引用=參照
+弹出=即現
+归档文件>檔案
+当前=目前
+彩色>色彩
+循环>迴圈
+微分=差動
+快捷图形=圖形加速
+快捷键=捷徑鍵
+忽略=舍棄
+性能=效能
+总线=匯流排
+恢复=回復
+意大利=義大利
+或非=非或
+或非门=非或閘
+扇区=磁區
+手册集=手冊叢書
+手册页=線上援助頁
+打印=列印
+打印机=印表機
+打开=開啟
+扩展=延伸
+扩展名=副檔名
+抢先=先佔
+报文>訊息
+报警=警示
+抽样=取樣
+抽象窗口工具箱=虛擬視窗工具組
+拖动=拖曳
+括号=括弧
+拼写=拼字
+拼接=銜接
+指针>指標
+挑选=挑揀
+捕获=擷取
+换名=改名
+换码=逸出
+换码符>逸出字元
+接口>介面
+控制台>主控台
+推动器>磁碟機
+推荐=建議
+掩码=遮罩
+描述>說明
+提取>擷取
+提条件>先決條件
+提示>輔助說明
+提醒器=通告程式
+插值=內插
+撤消=還原
+操作>作業
+操作数=運算元
+操作符>運算子
+支持=支援
+收听=偵聽
+放入=擺入
+散列=雜湊
+数据=資料
+数据报=資料封包
+数模=數位/類比
+数组=陣列
+文件=檔案
+文件句柄=檔案標示元
+文件名=檔名
+文件头=檔頭
+文件尾>檔案結尾
+文本=文字檔
+文本编辑器=文字編輯程式
+文档>文件
+断电=電源切斷
+断言>假設
+斯洛伐克=斯洛法克
+无噪声>靜音
+无盘=無磁碟
+日历>行事曆
+日志>日誌
+日程=約會
+日视图=日查看
+日边界=日期界限
+时延=延時
+易失性=揮發性
+星号=星狀圖形
+映射=對映
+显示=察看
+晕影=光暈
+晶体管=電晶體
+智能卡=智慧卡
+智能卡片>智慧卡
+智能终端=智慧型終端機
+更改=變更
+替代=交替
+替换=替代
+最后清除=最終清除
+最终用户=一般使用者
+月视图=月查看
+有限并行性=有限同作
+服务器=伺服器
+末端=尾端
+本地=區域
+本地化=本土化
+本机接口=原生介面
+本机方法=原生方法
+权限=許可權
+条目>項目
+构造函数=建構元
+枚举=列舉
+查准率=精度率
+查找>尋找
+查看=檢視
+查色表=色彩查詢表
+柱面=磁柱
+标号>標籤
+标志=旗標
+标志位>旗標
+标记>記號
+标识=識別
+标识符>旗標
+标量=純量
+栈>堆疊
+样例=範例
+核心反射>核心映像
+根访问=根存取
+格式化磁盘>製作磁碟格式
+桌上环境>桌上管理系統環境
+桌面=桌上管理系統
+桌面环境=桌上管理系統環境
+检修>修復
+检测=偵測
+检验器=檢查程式
+概览=概觀
+概述=簡介
+模块=模組
+模式=型態
+模式识别=圖形辨識
+模数转换器=類比/數位轉換器
+模板=樣板
+正文>手稿
+死锁=死結
+死锁条件=死結狀況
+毁坏=損毀
+比特>位元
+比较=比對
+汇入方法>輸入法
+汇总行=摘要行
+汇编程序=組譯器
+汇编语言=組合語言
+波特率=鮑率
+注册>註冊
+注释>註釋
+注销=登出
+活动=現行
+流水线=管線
+浮点部件=浮點單元
+消息=訊息
+源代码=來源碼
+源文件=來源檔
+溢出=外溢
+滑块=調整器
+滚动>捲動
+滚动条>捲動軸
+滚动框>捲動方塊
+满屏=全螢幕
+演示程序=示範程式
+激光=雷射
+激活>啟動
+灰度=灰階
+灰度等级>灰階
+灰度级>灰階
+灵活性=彈性
+父节点=母項
+版本标记=版本戳記
+版权声明=版權宣告
+物理位元=實體位元
+物理地址=實體位址
+物理柱面=實際磁柱
+物理滚动>實體捲動
+物理线路=實體線路
+物理终端=實體終端
+特性>特徴
+环绕=自動換行
+环路检测>迴圈檢測
+生产商>製造商
+生成器=建構程式
+用户支持=客戶支援
+界面=介面
+登录=登入
+登记>註冊
+监视器=監控器
+盒式=卡匣
+盘托>托盤
+目录文件=目錄檔
+目标程序=目的程式
+目标语言=目的語言
+目次>目錄
+相关文件=相依檔案
+相关类型=相依類型
+瞬态=暫態
+短整数=短式
+硅=矽
+硬件=硬體
+硬盘=硬碟
+磁盘=磁碟
+磁盘托=磁碟盒
+磁芯映像>核心影像
+程序=程式
+程序包>套裝軟體
+程序员=程式設計師
+空字符=空字元
+空操作=無作業
+空文档=空白文件
+空格=空白字元
+空闲>閒置
+窗口=視窗
+窗口脚注>視窗註腳
+站点>網站
+端口=通訊埠
+端接器=終止器
+笔记本=筆記型電腦
+笛卡尔=卡氏
+符号=象徵式
+等宽字型=單距字型
+算法语言=演算語言
+算符=算子
+管理器=管理者
+管道=導管
+箭头=箭號
+类型=類別
+类路径=類別路徑
+粘贴=黏貼
+系列=家族
+系统调用=系統呼叫
+素数=質數
+级转储=階傾印
+纵向=垂直
+纹理=材質
+线程=執行緒
+组件=套件
+终端=終端機
+绑定>連結
+结构=架構
+结构注释>結構註解
+综合业务数字网络=整體服務數位網路
+缓冲>緩衝
+缓存>緩衝區
+编程=程式設計
+编辑器=編輯程式
+缩进=內縮
+缺省=預設
+缺省值>預設值
+网关=閘道
+网桥=橋接器
+网络=網路
+网络互联>網際網路
+置标=標示
+美国国家标准学会=美國國家標準局
+群集=叢集
+联机=線上
+联机文档>線上文件
+联系>聯繫
+脉冲>脈衝
+脚本=程式檔
+脱机=離線
+自动应答=自動回應
+自动清屏=螢幕自動轉空白
+自变量>自變數
+自定=自訂
+自定义>自訂
+自由表=自由清單
+自述文件=讀我檔案
+致命错误>嚴重錯誤
+舍入>捨入
+芯片=晶片
+花括号=大括弧
+英寸>英吋
+范围>範圍
+获取=抓取
+菜单=功能表
+菜单组=功能表群組
+虚存=虛擬記憶體
+行业>工業
+行回绕>換行
+补码=補數
+表达式=表示式
+装入=載入
+覆盖=覆寫
+规范=規格
+视图>檢視
+视频=視訊
+解释=解譯
+解释器=解譯程式
+触发器=正反器
+计算器=計算機
+计算机=電腦
+认证>認證
+许可方=授權者
+设备=裝置
+设置=設定
+访问=存取
+词汇>辭彙
+词法域=詞法範圍
+试图>嘗試
+试探性=啟發式
+语句=敘述
+语言包=語言套裝模組
+语言预处理程序=語言前處理器
+语言预处理程序宏=語言前處理巨集
+请求>要求
+读入=讀取
+调制解调器=數據機
+调度=排程
+调用=呼叫
+调色板=選盤
+调试=除錯
+调试器=除錯程式
+象素>像素
+贝赛儿曲线=貝茲曲線
+质量=品質
+赞助>贊助
+超时=逾時
+超级用户=高階使用者
+跟踪=追蹤
+路由>路線
+跳线=跳躍
+跳过>略過
+转储=傾印
+转发=轉寄
+转接器=變性接頭
+转移>移轉
+转至=前往
+轮廓=外框
+软件=軟體
+软件包=套裝軟體
+软盘=軟碟
+软驱=軟碟機
+轻量=輕型
+输入=匯入
+输出=匯出
+边框=邊線方塊
+边界=邊線
+过载=超載
+运算符=運算子
+运行>執行
+返回=傳回
+进制=進位
+进程>程式
+远程=遠端
+连接=連線
+退出>結束
+适配卡>配接卡
+适配器=配接卡
+选定>選取
+选择=選取
+透明=透通
+递归>遞迴
+逗号=逗點
+通信>通訊
+通电自检=開機自我測試
+通配符=萬用字元
+邮寄程序=電子信件
+采样>取樣
+里>裡
+里程碑>里程碑
+重复>重複
+重定向=重導
+鉴别>認證
+链接=鏈結
+链结>連結
+错误标记=錯誤旗號
+锚定=定控點
+锚点>控點
+键绑定>按鍵組合
+长整数=長整數
+闭路控制系统>迴圈系統
+阈值>臨界值
+队列=佇列
+写保护 =複製保護
+阶乘>階乘
+附件=附屬裝置
+随机数=亂數
+隐含=隱藏式
+集成电路=積體電路
+非局部转移=非本機跳越
+非易失性存储器=非揮發性記憶體
+非电路>非電路
+面向作业=作業導向
+面向对象=物件導向
+面向进程=程序導向
+音箱=揚聲器
+音频=聲訊
+页脚=頁腳
+页面交换=分頁交換
+页面寻址=分頁定址
+预处理=前處理
+预置>預設
+领域>網域
+题目>主題
+颜色>色彩
+额外=其餘
+颠倒>復原
+首选=偏好
+首选语言=語言偏好
+首选项=個人偏好
+驱动器>磁碟機
+验证>驗證
+高宽比=縱橫比
+高级=進階
+高速缓冲=快取
+黑体=粗體
+默认>預設
+鼠标=滑鼠
+流<串流
+串口<串行埠
+交互=互動
+位<位元
+操作环境=作業環境
+用户<使用者
+组件<元件
+配置<分配
+格式化磁盘<製作磁碟格式
+生产商<製造商
+分析<剖析
+块<區塊
+滚动<捲動
+滚动框<捲動方塊
+滚动条<捲動軸
+高亮<反白
+可执行文件<可執行檔
+假脱机<同時週邊線上作業
+首选<喜好
+循环<回圈
+环路检测<回圈檢測
+闭路控制系统<回圈系統
+回放口<回放埠
+端口<埠
+前缀<字首
+物理滚动<實體捲動
+干扰<幹擾
+串口=序列埠
+写保护<復制保護
+恢复<復原
+复合<復合
+供应商<供應商
+命令行<指令行
+获取<捕獲
+收件箱<收件匣
+完整性<整合性
+数字信号<數位信號
+文本文件<文字文件
+书签<書簽
+标记<標簽
+破坏<毀損
+注释<注釋
+谘询<洽詢
+用户机<用戶端
+转到<移至
+脚本<程序檔
+窗口<窗格
+向导<精靈
+纯文本<純文字
+标签<索引標號
+组合框<組合方塊
+结构注释<結構注解
+通过<經由
+直插式<線內
+校验和<總和檢查
+原因<肇因
+字母数字终端<英數終端
+日历<行事歷
+里程碑<裡程碑
+窗口脚注<視窗注腳
+卸装<解除安裝
+计算机<計算器
+盘托<託盤
+配置文件<設定檔
+概述文件<設置檔
+试着<試著
+输入口<輸入埠
+输出口<輸出埠
+词汇<辭匯
+通过<透過
+端口<連接埠
+双击<連雙擊
+周视图<週查看
+外围<週邊
+外设<週邊設備
+光标<游標
+递归<遞回
+快捷键<快捷鍵
+音频口<音頻埠
+音频文件<音頻檔
+模拟信号<類比信號
+驱动程序<驅動程式
+什么<甚麼
diff --git a/i18npool/source/textconversion/genconv_dict.cxx b/i18npool/source/textconversion/genconv_dict.cxx
new file mode 100644
index 000000000..5cfd45809
--- /dev/null
+++ b/i18npool/source/textconversion/genconv_dict.cxx
@@ -0,0 +1,473 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sal/main.h>
+#include <sal/types.h>
+#include <rtl/ustring.hxx>
+
+#include <vector>
+
+static void make_hhc_char(FILE *sfp, FILE *cfp);
+static void make_stc_char(FILE *sfp, FILE *cfp);
+static void make_stc_word(FILE *sfp, FILE *cfp);
+
+/* Main Procedure */
+
+SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
+{
+ FILE *sfp, *cfp;
+
+ if (argc < 4) exit(-1);
+
+
+ sfp = fopen(argv[2], "rb"); // open the source file for read;
+ if (sfp == nullptr)
+ {
+ fprintf(stderr, "Opening the dictionary source file %s for reading failed: %s\n", argv[1], strerror(errno));
+ exit(1);
+ }
+
+ // create the C source file to write
+ cfp = fopen(argv[3], "wb");
+ if (cfp == nullptr) {
+ fclose(sfp);
+ fprintf(stderr, "Opening %s for writing failed: %s\n", argv[3], strerror(errno));
+ exit(1);
+ }
+
+ fprintf(cfp, "/*\n");
+ fprintf(cfp, " * Copyright(c) 1999 - 2000, Sun Microsystems, Inc.\n");
+ fprintf(cfp, " * All Rights Reserved.\n");
+ fprintf(cfp, " */\n\n");
+ fprintf(cfp, "/* !!!The file is generated automatically. DO NOT edit the file manually!!! */\n\n");
+ fprintf(cfp, "#include <sal/types.h>\n");
+ fprintf(cfp, "#include <textconversion.hxx>\n");
+ fprintf(cfp, "\nextern \"C\" {\n");
+
+ if (strcmp(argv[1], "hhc_char") == 0)
+ make_hhc_char(sfp, cfp);
+ else if (strcmp(argv[1], "stc_char") == 0)
+ make_stc_char(sfp, cfp);
+ else if (strcmp(argv[1], "stc_word") == 0)
+ make_stc_word(sfp, cfp);
+
+ fprintf (cfp, "}\n");
+
+ fclose(sfp);
+ fclose(cfp);
+
+ return 0;
+} // end of main
+
+// Hangul/Hanja character conversion
+void make_hhc_char(FILE *sfp, FILE *cfp)
+{
+ sal_Int32 count, address, i, j, k;
+ sal_Unicode Hanja2HangulData[0x10000];
+ for (i = 0; i < 0x10000; i++) {
+ Hanja2HangulData[i] = 0;
+ }
+ sal_uInt16 Hangul2HanjaData[10000][3];
+
+ // generate main dict. data array
+ fprintf(cfp, "\nstatic const sal_Unicode Hangul2HanjaData[] = {");
+
+ char Cstr[1024];
+ count = 0;
+ address = 0;
+ while (fgets(Cstr, 1024, sfp)) {
+ // input file is in UTF-8 encoding (Hangul:Hanja)
+ // don't convert last new line character to Ostr.
+ OUString Ostr(Cstr, strlen(Cstr) - 1, RTL_TEXTENCODING_UTF8);
+ sal_Int32 len = Ostr.getLength();
+
+ Hangul2HanjaData[count][0] = Ostr[0];
+ Hangul2HanjaData[count][1] = sal::static_int_cast<sal_uInt16>( address );
+ Hangul2HanjaData[count][2] = sal::static_int_cast<sal_uInt16>( len - 2 );
+ count++;
+
+ for (i = 2; i < len; i++) {
+ Hanja2HangulData[Ostr[i]] = Ostr[0];
+ if (address++ % 16 == 0)
+ fprintf(cfp, "\n\t");
+ fprintf(cfp, "0x%04x, ", Ostr[i]);
+ }
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic const i18npool::Hangul_Index Hangul2HanjaIndex[] = {\n");
+ for (i = 0; i < count; i++)
+ fprintf(cfp, "\t{ 0x%04x, 0x%04x, 0x%02x },\n",
+ Hangul2HanjaData[i][0],
+ Hangul2HanjaData[i][1],
+ Hangul2HanjaData[i][2]);
+ fprintf(cfp, "};\n");
+
+ fprintf(cfp, "\nstatic const sal_uInt16 Hanja2HangulIndex[] = {");
+
+ address=0;
+ for (i = 0; i < 0x10; i++) {
+ fprintf(cfp, "\n\t");
+ for (j = 0; j < 0x10; j++) {
+ for (k = 0; k < 0x100; k++) {
+ if (Hanja2HangulData[((i*0x10)+j)*0x100+k] != 0)
+ break;
+ }
+ fprintf(
+ cfp, "0x%04lx, ",
+ sal::static_int_cast< unsigned long >(
+ k < 0x100 ? (address++)*0x100 : 0xFFFF));
+ }
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic const sal_Unicode Hanja2HangulData[] = {");
+
+ for (i = 0; i < 0x100; i++) {
+ for (j = 0; j < 0x100; j++) {
+ if (Hanja2HangulData[i*0x100+j] != 0)
+ break;
+ }
+ if (j < 0x100) {
+ for (j = 0; j < 0x10; j++) {
+ fprintf(cfp, "\n\t");
+ for (k = 0; k < 0x10; k++) {
+ sal_Unicode c = Hanja2HangulData[((i*0x10+j)*0x10)+k];
+ fprintf(cfp, "0x%04x, ", c ? c : 0xFFFF);
+ }
+ }
+ }
+ }
+ fprintf(cfp, "\n};\n");
+
+ // create function to return arrays
+ fprintf (cfp, "\tconst sal_Unicode* getHangul2HanjaData() { return Hangul2HanjaData; }\n");
+ fprintf (cfp, "\tconst i18npool::Hangul_Index* getHangul2HanjaIndex() { return Hangul2HanjaIndex; }\n");
+ fprintf (cfp, "\tsal_Int16 getHangul2HanjaIndexCount() { return sizeof(Hangul2HanjaIndex) / sizeof(i18npool::Hangul_Index); }\n");
+ fprintf (cfp, "\tconst sal_uInt16* getHanja2HangulIndex() { return Hanja2HangulIndex; }\n");
+ fprintf (cfp, "\tconst sal_Unicode* getHanja2HangulData() { return Hanja2HangulData; }\n");
+}
+
+// Simplified/Traditional Chinese character conversion
+void make_stc_char(FILE *sfp, FILE *cfp)
+{
+ sal_Int32 address, i, j, k;
+ sal_Unicode SChinese2TChineseData[0x10000];
+ sal_Unicode SChinese2VChineseData[0x10000];
+ sal_Unicode TChinese2SChineseData[0x10000];
+ for (i = 0; i < 0x10000; i++) {
+ SChinese2TChineseData[i] = 0;
+ SChinese2VChineseData[i] = 0;
+ TChinese2SChineseData[i] = 0;
+ }
+
+ char Cstr[1024];
+ while (fgets(Cstr, 1024, sfp)) {
+ // input file is in UTF-8 encoding (SChinese:TChinese)
+ // don't convert last new line character to Ostr.
+ OUString Ostr(Cstr, strlen(Cstr) - 1, RTL_TEXTENCODING_UTF8);
+ sal_Int32 len = Ostr.getLength();
+ if (Ostr[1] == 'v')
+ SChinese2VChineseData[Ostr[0]] = Ostr[2];
+ else {
+ SChinese2TChineseData[Ostr[0]] = Ostr[2];
+ if (SChinese2VChineseData[Ostr[0]] == 0)
+ SChinese2VChineseData[Ostr[0]] = Ostr[2];
+ }
+ for (i = 2; i < len; i++)
+ TChinese2SChineseData[Ostr[i]] = Ostr[0];
+ }
+
+ fprintf(cfp, "\nstatic const sal_uInt16 STC_CharIndex_S2T[] = {");
+
+ address=0;
+ for (i = 0; i < 0x10; i++) {
+ fprintf(cfp, "\n\t");
+ for (j = 0; j < 0x10; j++) {
+ for (k = 0; k < 0x100; k++) {
+ if (SChinese2TChineseData[((i*0x10)+j)*0x100+k] != 0)
+ break;
+ }
+ fprintf(
+ cfp, "0x%04lx, ",
+ sal::static_int_cast< unsigned long >(
+ k < 0x100 ? (address++)*0x100 : 0xFFFF));
+ }
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic const sal_Unicode STC_CharData_S2T[] = {");
+
+ for (i = 0; i < 0x100; i++) {
+ for (j = 0; j < 0x100; j++) {
+ if (SChinese2TChineseData[i*0x100+j] != 0)
+ break;
+ }
+ if (j < 0x100) {
+ for (j = 0; j < 0x10; j++) {
+ fprintf(cfp, "\n\t");
+ for (k = 0; k < 0x10; k++) {
+ sal_Unicode c = SChinese2TChineseData[((i*0x10+j)*0x10)+k];
+ fprintf(cfp, "0x%04x, ", c ? c : 0xFFFF);
+ }
+ }
+ }
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic const sal_uInt16 STC_CharIndex_S2V[] = {");
+
+ address=0;
+ for (i = 0; i < 0x10; i++) {
+ fprintf(cfp, "\n\t");
+ for (j = 0; j < 0x10; j++) {
+ for (k = 0; k < 0x100; k++) {
+ if (SChinese2VChineseData[((i*0x10)+j)*0x100+k] != 0)
+ break;
+ }
+ fprintf(
+ cfp, "0x%04lx, ",
+ sal::static_int_cast< unsigned long >(
+ k < 0x100 ? (address++)*0x100 : 0xFFFF));
+ }
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic const sal_Unicode STC_CharData_S2V[] = {");
+
+ for (i = 0; i < 0x100; i++) {
+ for (j = 0; j < 0x100; j++) {
+ if (SChinese2VChineseData[i*0x100+j] != 0)
+ break;
+ }
+ if (j < 0x100) {
+ for (j = 0; j < 0x10; j++) {
+ fprintf(cfp, "\n\t");
+ for (k = 0; k < 0x10; k++) {
+ sal_Unicode c = SChinese2VChineseData[((i*0x10+j)*0x10)+k];
+ fprintf(cfp, "0x%04x, ", c ? c : 0xFFFF);
+ }
+ }
+ }
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic const sal_uInt16 STC_CharIndex_T2S[] = {");
+
+ address=0;
+ for (i = 0; i < 0x10; i++) {
+ fprintf(cfp, "\n\t");
+ for (j = 0; j < 0x10; j++) {
+ for (k = 0; k < 0x100; k++) {
+ if (TChinese2SChineseData[((i*0x10)+j)*0x100+k] != 0)
+ break;
+ }
+ fprintf(
+ cfp, "0x%04lx, ",
+ sal::static_int_cast< unsigned long >(
+ k < 0x100 ? (address++)*0x100 : 0xFFFF));
+ }
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic const sal_Unicode STC_CharData_T2S[] = {");
+
+ for (i = 0; i < 0x100; i++) {
+ for (j = 0; j < 0x100; j++) {
+ if (TChinese2SChineseData[i*0x100+j] != 0)
+ break;
+ }
+ if (j < 0x100) {
+ for (j = 0; j < 0x10; j++) {
+ fprintf(cfp, "\n\t");
+ for (k = 0; k < 0x10; k++) {
+ sal_Unicode c = TChinese2SChineseData[((i*0x10+j)*0x10)+k];
+ fprintf(cfp, "0x%04x, ", c ? c : 0xFFFF);
+ }
+ }
+ }
+ }
+ fprintf(cfp, "\n};\n");
+
+ // create function to return arrays
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_CharIndex_S2T() { return STC_CharIndex_S2T; }\n");
+ fprintf (cfp, "\tconst sal_Unicode* getSTC_CharData_S2T() { return STC_CharData_S2T; }\n");
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_CharIndex_S2V() { return STC_CharIndex_S2V; }\n");
+ fprintf (cfp, "\tconst sal_Unicode* getSTC_CharData_S2V() { return STC_CharData_S2V; }\n");
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_CharIndex_T2S() { return STC_CharIndex_T2S; }\n");
+ fprintf (cfp, "\tconst sal_Unicode* getSTC_CharData_T2S() { return STC_CharData_T2S; }\n");
+}
+
+namespace {
+
+struct Index {
+ sal_uInt16 address;
+ sal_Int32 len;
+ sal_Unicode *data;
+};
+
+}
+
+extern "C" {
+static int Index_comp(const void* s1, const void* s2)
+{
+ Index const *p1 = static_cast<Index const *>(s1), *p2 = static_cast<Index const *>(s2);
+ int result = p1->len - p2->len;
+ for (int i = 0; result == 0 && i < p1->len; i++)
+ result = *(p1->data+i) - *(p2->data+i);
+ return result;
+}
+}
+
+// Simplified/Traditional Chinese word conversion
+void make_stc_word(FILE *sfp, FILE *cfp)
+{
+ sal_Int32 count, i, length;
+ sal_Unicode STC_WordData[0x10000];
+ std::vector<Index> STC_WordEntry_S2T(0x10000);
+ std::vector<Index> STC_WordEntry_T2S(0x10000);
+ sal_Int32 count_S2T = 0, count_T2S = 0;
+ sal_Int32 line = 0, char_total = 0;
+ char Cstr[1024];
+
+ while (fgets(Cstr, 1024, sfp)) {
+ // input file is in UTF-8 encoding (SChinese:TChinese)
+ // don't convert last new line character to Ostr.
+ OUString Ostr(Cstr, strlen(Cstr) - 1, RTL_TEXTENCODING_UTF8);
+ sal_Int32 len = Ostr.getLength();
+ if (char_total + len + 1 > 0xFFFF) {
+ fprintf(stderr, "Word Dictionary stc_word.dic is too big (line %ld)", sal::static_int_cast< long >(line));
+ return;
+ }
+ sal_Int32 sep=-1, eq=-1, gt=-1, lt=-1;
+ if (((sep = eq = Ostr.indexOf('=')) > 0) ||
+ ((sep = gt = Ostr.indexOf('>')) > 0) ||
+ ((sep = lt = Ostr.indexOf('<')) > 0)) {
+
+ if (eq > 0 || gt > 0) {
+ STC_WordEntry_S2T[count_S2T].address = sal::static_int_cast<sal_uInt16>( char_total );
+ STC_WordEntry_S2T[count_S2T].len = sep;
+ STC_WordEntry_S2T[count_S2T++].data = &STC_WordData[char_total];
+ }
+ if (eq > 0 || lt > 0) {
+ STC_WordEntry_T2S[count_T2S].address = sal::static_int_cast<sal_uInt16>( char_total + sep + 1 );
+ STC_WordEntry_T2S[count_T2S].len = len - sep - 1;
+ STC_WordEntry_T2S[count_T2S++].data = &STC_WordData[char_total + sep + 1];
+ }
+ for (i = 0; i < len; i++)
+ STC_WordData[char_total++] = (i == sep) ? 0 : Ostr[i];
+ STC_WordData[char_total++] = 0;
+ } else {
+ fprintf(stderr, "Invalid entry in stc_word.dic (line %ld)", sal::static_int_cast< long >(line));
+ return;
+ }
+ line++;
+ }
+
+ if (char_total > 0) {
+ fprintf(cfp, "\nstatic const sal_Unicode STC_WordData[] = {");
+ for (i = 0; i < char_total; i++) {
+ if (i % 32 == 0) fprintf(cfp, "\n\t");
+ fprintf(cfp, "0x%04x, ", STC_WordData[i]);
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic sal_Int32 STC_WordData_Count = %ld;\n", sal::static_int_cast< long >(char_total));
+
+ // create function to return arrays
+ fprintf (cfp, "\tconst sal_Unicode* getSTC_WordData(sal_Int32& count) { count = STC_WordData_Count; return STC_WordData; }\n");
+ } else {
+ fprintf (cfp, "\tconst sal_Unicode* getSTC_WordData(sal_Int32& count) { count = 0; return NULL; }\n");
+ }
+
+ sal_uInt16 STC_WordIndex[0x100];
+
+ if (count_S2T > 0) {
+ qsort(STC_WordEntry_S2T.data(), count_S2T, sizeof(Index), Index_comp);
+
+ fprintf(cfp, "\nstatic const sal_uInt16 STC_WordEntry_S2T[] = {");
+ count = 0;
+ length = 0;
+ for (i = 0; i < count_S2T; i++) {
+ if (i % 32 == 0) fprintf(cfp, "\n\t");
+ fprintf(cfp, "0x%04x, ", STC_WordEntry_S2T[i].address);
+ if (STC_WordEntry_S2T[i].len != length) {
+ length = STC_WordEntry_S2T[i].len;
+ while (count <= length)
+ STC_WordIndex[count++] = sal::static_int_cast<sal_uInt16>(i);
+ }
+ }
+ fprintf(cfp, "\n};\n");
+ STC_WordIndex[count++] = sal::static_int_cast<sal_uInt16>(i);
+
+ fprintf(cfp, "\nstatic const sal_uInt16 STC_WordIndex_S2T[] = {");
+ for (i = 0; i < count; i++) {
+ if (i % 16 == 0) fprintf(cfp, "\n\t");
+ fprintf(cfp, "0x%04x, ", STC_WordIndex[i]);
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic sal_Int32 STC_WordIndex_S2T_Count = %ld;\n", sal::static_int_cast< long >(length));
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_WordEntry_S2T() { return STC_WordEntry_S2T; }\n");
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_WordIndex_S2T(sal_Int32& count) { count = STC_WordIndex_S2T_Count; return STC_WordIndex_S2T; }\n");
+ } else {
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_WordEntry_S2T() { return NULL; }\n");
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_WordIndex_S2T(sal_Int32& count) { count = 0; return NULL; }\n");
+ }
+
+ if (count_T2S > 0) {
+ qsort(STC_WordEntry_T2S.data(), count_T2S, sizeof(Index), Index_comp);
+
+ fprintf(cfp, "\nstatic const sal_uInt16 STC_WordEntry_T2S[] = {");
+ count = 0;
+ length = 0;
+ for (i = 0; i < count_T2S; i++) {
+ if (i % 32 == 0) fprintf(cfp, "\n\t");
+ fprintf(cfp, "0x%04x, ", STC_WordEntry_T2S[i].address);
+ if (STC_WordEntry_T2S[i].len != length) {
+ length = STC_WordEntry_T2S[i].len;
+ while (count <= length)
+ STC_WordIndex[count++] = sal::static_int_cast<sal_uInt16>(i);
+ }
+ }
+ STC_WordIndex[count++] = sal::static_int_cast<sal_uInt16>(i);
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic const sal_uInt16 STC_WordIndex_T2S[] = {");
+ for (i = 0; i < count; i++) {
+ if (i % 16 == 0) fprintf(cfp, "\n\t");
+ fprintf(cfp, "0x%04x, ", STC_WordIndex[i]);
+ }
+ fprintf(cfp, "\n};\n");
+
+ fprintf(cfp, "\nstatic sal_Int32 STC_WordIndex_T2S_Count = %ld;\n\n", sal::static_int_cast< long >(length));
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_WordEntry_T2S() { return STC_WordEntry_T2S; }\n");
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_WordIndex_T2S(sal_Int32& count) { count = STC_WordIndex_T2S_Count; return STC_WordIndex_T2S; }\n");
+ } else {
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_WordEntry_T2S() { return NULL; }\n");
+ fprintf (cfp, "\tconst sal_uInt16* getSTC_WordIndex_T2S(sal_Int32& count) { count = 0; return NULL; }\n");
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/textconversion/textconversion.cxx b/i18npool/source/textconversion/textconversion.cxx
new file mode 100644
index 000000000..a64f4072c
--- /dev/null
+++ b/i18npool/source/textconversion/textconversion.cxx
@@ -0,0 +1,93 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <cppuhelper/supportsservice.hxx>
+#include <textconversion.hxx>
+
+using namespace com::sun::star::uno;
+
+namespace i18npool {
+
+#ifndef DISABLE_DYNLOADING
+
+extern "C" { static void thisModule() {} }
+
+#endif
+
+TextConversionService::TextConversionService(const char *pImplName)
+ : implementationName(pImplName)
+{
+#ifndef DISABLE_DYNLOADING
+#ifdef SAL_DLLPREFIX
+ OUString lib(SAL_DLLPREFIX"textconv_dict" SAL_DLLEXTENSION);
+#else
+ OUString lib("textconv_dict" SAL_DLLEXTENSION);
+#endif
+ hModule = osl_loadModuleRelative(
+ &thisModule, lib.pData, SAL_LOADMODULE_DEFAULT );
+#endif
+}
+
+TextConversionService::~TextConversionService()
+{
+#ifndef DISABLE_DYNLOADING
+ if (hModule) osl_unloadModule(hModule);
+#endif
+}
+
+#ifndef DISABLE_DYNLOADING
+
+static void* nullFunc()
+{
+ return nullptr;
+}
+
+oslGenericFunction
+TextConversionService::getFunctionBySymbol(const char* func)
+{
+ if (hModule)
+ return osl_getFunctionSymbol(hModule, OUString::createFromAscii(func).pData);
+ else
+ return reinterpret_cast< oslGenericFunction >(nullFunc);
+}
+
+#endif
+
+OUString SAL_CALL
+TextConversionService::getImplementationName()
+{
+ return OUString::createFromAscii(implementationName);
+}
+
+sal_Bool SAL_CALL
+TextConversionService::supportsService(const OUString& rServiceName)
+{
+ return cppu::supportsService(this, rServiceName);
+}
+
+Sequence< OUString > SAL_CALL
+TextConversionService::getSupportedServiceNames()
+{
+ Sequence< OUString > aRet { OUString::createFromAscii(implementationName) };
+ return aRet;
+}
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/textconversion/textconversionImpl.cxx b/i18npool/source/textconversion/textconversionImpl.cxx
new file mode 100644
index 000000000..fbdbc1501
--- /dev/null
+++ b/i18npool/source/textconversion/textconversionImpl.cxx
@@ -0,0 +1,132 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <com/sun/star/lang/NoSupportException.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <cppuhelper/supportsservice.hxx>
+#include <textconversionImpl.hxx>
+#include <localedata.hxx>
+
+using namespace com::sun::star::lang;
+using namespace ::com::sun::star::i18n;
+using namespace com::sun::star::uno;
+
+namespace i18npool {
+
+TextConversionResult SAL_CALL
+TextConversionImpl::getConversions( const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength,
+ const Locale& rLocale, sal_Int16 nConversionType, sal_Int32 nConversionOptions)
+{
+ getLocaleSpecificTextConversion(rLocale);
+
+ sal_Int32 len = aText.getLength() - nStartPos;
+ if (nLength > len)
+ nLength = std::max<sal_Int32>(len, 0);
+ return xTC->getConversions(aText, nStartPos, nLength, rLocale, nConversionType, nConversionOptions);
+}
+
+OUString SAL_CALL
+TextConversionImpl::getConversion( const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength,
+ const Locale& rLocale, sal_Int16 nConversionType, sal_Int32 nConversionOptions)
+{
+ getLocaleSpecificTextConversion(rLocale);
+
+ sal_Int32 len = aText.getLength() - nStartPos;
+ if (nLength > len)
+ nLength = std::max<sal_Int32>(len, 0);
+ return xTC->getConversion(aText, nStartPos, nLength, rLocale, nConversionType, nConversionOptions);
+}
+
+OUString SAL_CALL
+TextConversionImpl::getConversionWithOffset( const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength,
+ const Locale& rLocale, sal_Int16 nConversionType, sal_Int32 nConversionOptions, Sequence< sal_Int32>& offset)
+{
+ getLocaleSpecificTextConversion(rLocale);
+
+ sal_Int32 len = aText.getLength() - nStartPos;
+ if (nLength > len)
+ nLength = std::max<sal_Int32>(len, 0);
+ return xTC->getConversionWithOffset(aText, nStartPos, nLength, rLocale, nConversionType, nConversionOptions, offset);
+}
+
+sal_Bool SAL_CALL
+TextConversionImpl::interactiveConversion( const Locale& rLocale, sal_Int16 nTextConversionType, sal_Int32 nTextConversionOptions )
+{
+ getLocaleSpecificTextConversion(rLocale);
+
+ return xTC->interactiveConversion(rLocale, nTextConversionType, nTextConversionOptions);
+}
+
+void
+TextConversionImpl::getLocaleSpecificTextConversion(const Locale& rLocale)
+{
+ if (rLocale != aLocale) {
+ aLocale = rLocale;
+
+ OUString aPrefix("com.sun.star.i18n.TextConversion_");
+ Reference < XInterface > xI = m_xContext->getServiceManager()->createInstanceWithContext(
+ aPrefix + LocaleDataImpl::getFirstLocaleServiceName( aLocale), m_xContext);
+ if (!xI.is())
+ {
+ ::std::vector< OUString > aFallbacks( LocaleDataImpl::getFallbackLocaleServiceNames( aLocale));
+ for (auto const& fallback : aFallbacks)
+ {
+ xI = m_xContext->getServiceManager()->createInstanceWithContext( aPrefix + fallback, m_xContext);
+ if (xI.is())
+ break;
+ }
+ }
+ if (xI.is())
+ xTC.set( xI, UNO_QUERY );
+ else if (xTC.is())
+ xTC.clear();
+ }
+ if (! xTC.is())
+ throw NoSupportException(); // aLocale is not supported
+}
+
+OUString SAL_CALL
+TextConversionImpl::getImplementationName()
+{
+ return "com.sun.star.i18n.TextConversion";
+}
+
+sal_Bool SAL_CALL
+TextConversionImpl::supportsService(const OUString& rServiceName)
+{
+ return cppu::supportsService(this, rServiceName);
+}
+
+Sequence< OUString > SAL_CALL
+TextConversionImpl::getSupportedServiceNames()
+{
+ return { "com.sun.star.i18n.TextConversion" };
+}
+
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
+com_sun_star_i18n_TextConversion_get_implementation(
+ css::uno::XComponentContext *context,
+ css::uno::Sequence<css::uno::Any> const &)
+{
+ return cppu::acquire(new i18npool::TextConversionImpl(context));
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/textconversion/textconversion_ko.cxx b/i18npool/source/textconversion/textconversion_ko.cxx
new file mode 100644
index 000000000..cfcb08d6d
--- /dev/null
+++ b/i18npool/source/textconversion/textconversion_ko.cxx
@@ -0,0 +1,338 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <textconversion.hxx>
+#include <com/sun/star/i18n/TextConversionType.hpp>
+#include <com/sun/star/i18n/TextConversionOption.hpp>
+#include <com/sun/star/lang/NoSupportException.hpp>
+#include <com/sun/star/linguistic2/ConversionDirection.hpp>
+#include <com/sun/star/linguistic2/ConversionDictionaryType.hpp>
+#include <com/sun/star/linguistic2/ConversionDictionaryList.hpp>
+#include <comphelper/sequence.hxx>
+#include <rtl/ustrbuf.hxx>
+#include <unicode/uchar.h>
+#include <memory>
+
+using namespace com::sun::star::lang;
+using namespace com::sun::star::i18n;
+using namespace com::sun::star::linguistic2;
+using namespace com::sun::star::uno;
+
+
+namespace i18npool {
+
+#define SCRIPT_OTHERS 0
+#define SCRIPT_HANJA 1
+#define SCRIPT_HANGUL 2
+
+TextConversion_ko::TextConversion_ko( const Reference < XComponentContext >& xContext )
+ : TextConversionService("com.sun.star.i18n.TextConversion_ko")
+{
+ Reference < XInterface > xI = xContext->getServiceManager()->createInstanceWithContext(
+ "com.sun.star.i18n.ConversionDictionary_ko", xContext);
+
+ if ( xI.is() )
+ xCD.set( xI, UNO_QUERY );
+
+ xCDL = ConversionDictionaryList::create(xContext);
+
+ maxLeftLength = maxRightLength = 1;
+
+ // get maximum length of word in dictionary
+ if (xCDL.is()) {
+ Locale loc("ko", "KR", OUString());
+ maxLeftLength = xCDL->queryMaxCharCount(loc,
+ ConversionDictionaryType::HANGUL_HANJA,
+ ConversionDirection_FROM_LEFT);
+ maxRightLength = xCDL->queryMaxCharCount(loc,
+ ConversionDictionaryType::HANGUL_HANJA,
+ ConversionDirection_FROM_RIGHT);
+ if (xCD.is()) {
+ sal_Int32 tmp = xCD->getMaxCharCount(ConversionDirection_FROM_LEFT);
+ if (tmp > maxLeftLength)
+ maxLeftLength = tmp;
+ tmp = xCD->getMaxCharCount(ConversionDirection_FROM_RIGHT);
+ if (tmp > maxRightLength)
+ maxRightLength = tmp;
+ }
+ } else if (xCD.is()) {
+ maxLeftLength = xCD->getMaxCharCount(ConversionDirection_FROM_LEFT);
+ maxRightLength = xCD->getMaxCharCount(ConversionDirection_FROM_RIGHT);
+ }
+}
+
+static sal_Int16 checkScriptType(sal_Unicode c)
+{
+ struct UBlock2Script {
+ UBlockCode from;
+ UBlockCode to;
+ sal_Int16 script;
+ };
+
+ static const UBlock2Script scriptList[] = {
+ {UBLOCK_HANGUL_JAMO, UBLOCK_HANGUL_JAMO, SCRIPT_HANGUL},
+ {UBLOCK_CJK_RADICALS_SUPPLEMENT, UBLOCK_BOPOMOFO, SCRIPT_HANJA},
+ {UBLOCK_HANGUL_COMPATIBILITY_JAMO, UBLOCK_HANGUL_COMPATIBILITY_JAMO, SCRIPT_HANGUL},
+ {UBLOCK_KANBUN, UBLOCK_YI_RADICALS, SCRIPT_HANJA},
+ {UBLOCK_HANGUL_SYLLABLES, UBLOCK_HANGUL_SYLLABLES, SCRIPT_HANGUL},
+ {UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS, UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS, SCRIPT_HANJA},
+ {UBLOCK_COMBINING_HALF_MARKS, UBLOCK_SMALL_FORM_VARIANTS, SCRIPT_HANJA},
+ {UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS, UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS, SCRIPT_HANJA},
+ };
+
+ UBlockCode block=ublock_getCode(static_cast<sal_uInt32>(c));
+ size_t i;
+ for ( i = 0; i < SAL_N_ELEMENTS(scriptList); i++) {
+ if (block <= scriptList[i].to) break;
+ }
+ return (i < SAL_N_ELEMENTS(scriptList) && block >= scriptList[i].from) ? scriptList[i].script : SCRIPT_OTHERS;
+}
+
+#ifdef DISABLE_DYNLOADING
+
+extern "C" {
+
+const sal_Unicode* getHangul2HanjaData();
+const Hangul_Index* getHangul2HanjaIndex();
+sal_Int16 getHangul2HanjaIndexCount();
+const sal_uInt16* getHanja2HangulIndex();
+const sal_Unicode* getHanja2HangulData();
+
+}
+
+#endif
+
+Sequence< OUString >
+TextConversion_ko::getCharConversions(const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength, bool toHanja)
+{
+ sal_Unicode ch;
+ Sequence< OUString > output;
+#ifndef DISABLE_DYNLOADING
+ const sal_Unicode* (*getHangul2HanjaData)() = reinterpret_cast<const sal_Unicode* (*)()>(getFunctionBySymbol("getHangul2HanjaData"));
+ const Hangul_Index* (*getHangul2HanjaIndex)() = reinterpret_cast<const Hangul_Index* (*)()>(getFunctionBySymbol("getHangul2HanjaIndex"));
+ sal_Int16 (*getHangul2HanjaIndexCount)() = reinterpret_cast<sal_Int16 (*)()>(getFunctionBySymbol("getHangul2HanjaIndexCount"));
+ const sal_uInt16* (*getHanja2HangulIndex)() = reinterpret_cast<const sal_uInt16* (*)()>(getFunctionBySymbol("getHanja2HangulIndex"));
+ const sal_Unicode* (*getHanja2HangulData)() = reinterpret_cast<const sal_Unicode* (*)()>(getFunctionBySymbol("getHanja2HangulData"));
+#else
+#pragma GCC diagnostic push
+#ifdef __clang__
+#pragma GCC diagnostic warning "-Wbool-conversions"
+#else
+#pragma GCC diagnostic warning "-Waddress"
+#endif
+#endif
+ if (toHanja && getHangul2HanjaIndex && getHangul2HanjaIndexCount && getHangul2HanjaData) {
+ ch = aText[nStartPos];
+ const Hangul_Index *Hangul_ko = getHangul2HanjaIndex();
+ sal_Int16 top = getHangul2HanjaIndexCount();
+ --top;
+ sal_Int16 bottom = 0;
+
+ while (bottom <= top) {
+ sal_Int16 current = (top + bottom) / 2;
+ sal_Unicode current_ch = Hangul_ko[current].code;
+ if (ch < current_ch)
+ top = current - 1;
+ else if (ch > current_ch)
+ bottom = current + 1;
+ else {
+ const sal_Unicode *ptr = getHangul2HanjaData() + Hangul_ko[current].address;
+ sal_Int16 count = Hangul_ko[current].count;
+ output.realloc(count);
+ for (sal_Int16 i = 0; i < count; i++)
+ output[i] = OUString(ptr + i, 1);
+ break;
+ }
+ }
+ } else if (! toHanja && getHanja2HangulIndex && getHanja2HangulData)
+ {
+ std::unique_ptr<sal_Unicode[]> newStr(new sal_Unicode[nLength+1]);
+ sal_Int32 count = 0;
+ while (count < nLength)
+ {
+ ch = aText[nStartPos + count];
+ sal_Unicode address = getHanja2HangulIndex()[ch>>8];
+ if (address != 0xFFFF)
+ address = getHanja2HangulData()[address + (ch & 0xFF)];
+
+ if (address != 0xFFFF)
+ newStr[count++] = address;
+ else
+ break;
+ }
+ if (count > 0)
+ {
+ output.realloc(1);
+ output[0] = OUString(newStr.get(), count);
+ }
+ }
+#if defined(DISABLE_DYNLOADING)
+#pragma GCC diagnostic pop
+#endif
+ return output;
+}
+
+static Sequence< OUString >& operator += (Sequence< OUString > &rSeq1, Sequence< OUString > &rSeq2 )
+{
+ if (! rSeq1.hasElements() && rSeq2.hasElements())
+ rSeq1 = rSeq2;
+ else if (rSeq2.hasElements())
+ rSeq1 = comphelper::combineSequences(rSeq1, rSeq2);
+
+ return rSeq1;
+}
+
+TextConversionResult SAL_CALL
+TextConversion_ko::getConversions( const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength,
+ const Locale& aLocale, sal_Int16 nConversionType, sal_Int32 nConversionOptions)
+{
+ TextConversionResult result;
+ Sequence <OUString> candidates;
+ result.Boundary.startPos = result.Boundary.endPos = 0;
+
+ // do conversion only when there are right conversion type and dictionary services.
+ if (nConversionType != TextConversionType::TO_HANGUL &&
+ nConversionType != TextConversionType::TO_HANJA)
+ throw NoSupportException(); // Conversion type is not supported in this service.
+ sal_Int32 start, end, length = aText.getLength() - nStartPos;
+
+ if (length < 0 || nStartPos < 0)
+ length = 0;
+ else if (length > nLength)
+ length = nLength;
+
+ sal_Int16 scriptType = SCRIPT_OTHERS;
+ sal_Int32 len = 1;
+ bool toHanja = (nConversionType == TextConversionType::TO_HANJA);
+ // FROM_LEFT: Hangul -> Hanja
+ // FROM_RIGHT: Hanja -> Hangul
+ ConversionDirection eDirection = toHanja ? ConversionDirection_FROM_LEFT : ConversionDirection_FROM_RIGHT;
+ sal_Int32 maxLength = toHanja ? maxLeftLength : maxRightLength;
+ if (maxLength == 0) maxLength = 1;
+
+ // search for a max length of convertible text
+ for (start = 0, end = 0; start < length; start++) {
+ if (end <= start) {
+ scriptType = checkScriptType(aText[nStartPos + start]);
+ if (nConversionType == TextConversionType::TO_HANJA) {
+ if (scriptType != SCRIPT_HANGUL) // skip non-Hangul characters
+ continue;
+ } else {
+ if (scriptType != SCRIPT_HANJA) // skip non-Hanja characters
+ continue;
+ }
+ end = start + 1;
+ }
+ if (nConversionOptions & TextConversionOption::CHARACTER_BY_CHARACTER) {
+ result.Candidates = getCharConversions(aText, nStartPos + start, len, toHanja); // char2char conversion
+ } else {
+ for (; end < length && end - start < maxLength; end++)
+ if (checkScriptType(aText[nStartPos + end]) != scriptType)
+ break;
+
+ for (len = end - start; len > 0; len--) {
+ if (len > 1) {
+ try {
+ if (xCDL.is())
+ result.Candidates = xCDL->queryConversions(aText, start + nStartPos, len,
+ aLocale, ConversionDictionaryType::HANGUL_HANJA, eDirection, nConversionOptions); // user dictionary
+ }
+ catch ( NoSupportException & ) {
+ // clear reference (when there is no user dictionary) in order
+ // to not always have to catch this exception again
+ // in further calls. (save time)
+ xCDL = nullptr;
+ }
+ catch (...) {
+ // catch all other exceptions to allow
+ // querying the system dictionary in the next line
+ }
+ if (xCD.is() && toHanja) { // System dictionary would not do Hanja_to_Hangul conversion.
+ candidates = xCD->getConversions(aText, start + nStartPos, len, eDirection, nConversionOptions);
+ result.Candidates += candidates;
+ }
+ } else if (! toHanja) { // do whole word character 2 character conversion for Hanja to Hangul conversion
+ result.Candidates = getCharConversions(aText, nStartPos + start, length - start, toHanja);
+ if (result.Candidates.hasElements())
+ len = result.Candidates[0].getLength();
+ }
+ if (result.Candidates.hasElements())
+ break;
+ }
+ }
+ // found match
+ if (result.Candidates.hasElements()) {
+ result.Boundary.startPos = start + nStartPos;
+ result.Boundary.endPos = start + len + nStartPos;
+ return result;
+ }
+ }
+
+ return result;
+}
+
+OUString SAL_CALL
+TextConversion_ko::getConversion( const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength,
+ const Locale& aLocale, sal_Int16 nConversionType, sal_Int32 nConversionOptions)
+{
+ sal_Int32 length = aText.getLength() - nStartPos;
+
+ if (length <= 0 || nStartPos < 0)
+ return OUString();
+ else if (length > nLength)
+ length = nLength;
+
+ OUStringBuffer aBuf(length + 1);
+ TextConversionResult result;
+ const sal_Unicode *str = aText.getStr();
+
+ for (sal_Int32 start = nStartPos; length + nStartPos > start; start = result.Boundary.endPos) {
+
+ result = getConversions(aText, start, length + nStartPos - start, aLocale, nConversionType, nConversionOptions);
+
+ if (result.Boundary.endPos > 0) {
+ if (result.Boundary.startPos > start)
+ aBuf.append(str + start, result.Boundary.startPos - start); // append skip portion
+ aBuf.append(result.Candidates[0]); // append converted portion
+ } else {
+ aBuf.append(str + start, length + nStartPos - start); // append last portion
+ break;
+ }
+ }
+
+ return aBuf.makeStringAndClear();
+}
+
+OUString SAL_CALL
+TextConversion_ko::getConversionWithOffset( const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength,
+ const Locale& rLocale, sal_Int16 nConversionType, sal_Int32 nConversionOptions, Sequence<sal_Int32>& offset)
+{
+ offset.realloc(0);
+ return getConversion(aText, nStartPos, nLength, rLocale, nConversionType, nConversionOptions);
+}
+
+sal_Bool SAL_CALL
+TextConversion_ko::interactiveConversion( const Locale& /*rLocale*/, sal_Int16 /*nTextConversionType*/, sal_Int32 /*nTextConversionOptions*/ )
+{
+ return true;
+}
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/textconversion/textconversion_zh.cxx b/i18npool/source/textconversion/textconversion_zh.cxx
new file mode 100644
index 000000000..3f7ff96d8
--- /dev/null
+++ b/i18npool/source/textconversion/textconversion_zh.cxx
@@ -0,0 +1,330 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+#include <textconversion.hxx>
+#include <com/sun/star/i18n/TextConversionType.hpp>
+#include <com/sun/star/i18n/TextConversionOption.hpp>
+#include <com/sun/star/lang/NoSupportException.hpp>
+#include <com/sun/star/linguistic2/ConversionDirection.hpp>
+#include <com/sun/star/linguistic2/ConversionDictionaryType.hpp>
+#include <com/sun/star/linguistic2/ConversionDictionaryList.hpp>
+#include <memory>
+
+using namespace com::sun::star::lang;
+using namespace com::sun::star::i18n;
+using namespace com::sun::star::linguistic2;
+using namespace com::sun::star::uno;
+
+
+namespace i18npool {
+
+TextConversion_zh::TextConversion_zh( const Reference < XComponentContext >& xContext )
+ : TextConversionService("com.sun.star.i18n.TextConversion_zh")
+{
+ xCDL = ConversionDictionaryList::create(xContext);
+}
+
+static sal_Unicode getOneCharConversion(sal_Unicode ch, const sal_Unicode* Data, const sal_uInt16* Index)
+{
+ if (Data && Index) {
+ sal_Unicode address = Index[ch>>8];
+ if (address != 0xFFFF)
+ address = Data[address + (ch & 0xFF)];
+ return (address != 0xFFFF) ? address : ch;
+ } else {
+ return ch;
+ }
+}
+
+#ifdef DISABLE_DYNLOADING
+
+extern "C" {
+
+const sal_Unicode* getSTC_CharData_T2S();
+const sal_uInt16* getSTC_CharIndex_T2S();
+const sal_Unicode* getSTC_CharData_S2V();
+const sal_uInt16* getSTC_CharIndex_S2V();
+const sal_Unicode* getSTC_CharData_S2T();
+const sal_uInt16* getSTC_CharIndex_S2T();
+
+const sal_Unicode *getSTC_WordData(sal_Int32&);
+
+const sal_uInt16 *getSTC_WordIndex_T2S(sal_Int32&);
+const sal_uInt16 *getSTC_WordEntry_T2S();
+const sal_uInt16 *getSTC_WordIndex_S2T(sal_Int32&);
+const sal_uInt16 *getSTC_WordEntry_S2T();
+
+}
+
+#endif
+
+OUString
+TextConversion_zh::getCharConversion(const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength, bool toSChinese, sal_Int32 nConversionOptions)
+{
+ const sal_Unicode *Data;
+ const sal_uInt16 *Index;
+
+#ifndef DISABLE_DYNLOADING
+ if (toSChinese) {
+ Data = reinterpret_cast<const sal_Unicode* (*)()>(getFunctionBySymbol("getSTC_CharData_T2S"))();
+ Index = reinterpret_cast<const sal_uInt16* (*)()>(getFunctionBySymbol("getSTC_CharIndex_T2S"))();
+ } else if (nConversionOptions & TextConversionOption::USE_CHARACTER_VARIANTS) {
+ Data = reinterpret_cast<const sal_Unicode* (*)()>(getFunctionBySymbol("getSTC_CharData_S2V"))();
+ Index = reinterpret_cast<const sal_uInt16* (*)()>(getFunctionBySymbol("getSTC_CharIndex_S2V"))();
+ } else {
+ Data = reinterpret_cast<const sal_Unicode* (*)()>(getFunctionBySymbol("getSTC_CharData_S2T"))();
+ Index = reinterpret_cast<const sal_uInt16* (*)()>(getFunctionBySymbol("getSTC_CharIndex_S2T"))();
+ }
+#else
+ if (toSChinese) {
+ Data = getSTC_CharData_T2S();
+ Index = getSTC_CharIndex_T2S();
+ } else if (nConversionOptions & TextConversionOption::USE_CHARACTER_VARIANTS) {
+ Data = getSTC_CharData_S2V();
+ Index = getSTC_CharIndex_S2V();
+ } else {
+ Data = getSTC_CharData_S2T();
+ Index = getSTC_CharIndex_S2T();
+ }
+#endif
+
+ rtl_uString * newStr = rtl_uString_alloc(nLength);
+ for (sal_Int32 i = 0; i < nLength; i++)
+ newStr->buffer[i] =
+ getOneCharConversion(aText[nStartPos+i], Data, Index);
+ return OUString(newStr, SAL_NO_ACQUIRE); //take ownership
+}
+
+OUString
+TextConversion_zh::getWordConversion(const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength, bool toSChinese, sal_Int32 nConversionOptions, Sequence<sal_Int32>& offset)
+{
+ sal_Int32 dictLen = 0;
+ sal_Int32 maxLen = 0;
+ const sal_uInt16 *index;
+ const sal_uInt16 *entry;
+ const sal_Unicode *charData;
+ const sal_uInt16 *charIndex;
+ bool one2one=true;
+
+#ifndef DISABLE_DYNLOADING
+ const sal_Unicode *wordData = reinterpret_cast<const sal_Unicode* (*)(sal_Int32&)>(getFunctionBySymbol("getSTC_WordData"))(dictLen);
+ if (toSChinese) {
+ index = reinterpret_cast<const sal_uInt16* (*)(sal_Int32&)>(getFunctionBySymbol("getSTC_WordIndex_T2S"))(maxLen);
+ entry = reinterpret_cast<const sal_uInt16* (*)()>(getFunctionBySymbol("getSTC_WordEntry_T2S"))();
+ charData = reinterpret_cast<const sal_Unicode* (*)()>(getFunctionBySymbol("getSTC_CharData_T2S"))();
+ charIndex = reinterpret_cast<const sal_uInt16* (*)()>(getFunctionBySymbol("getSTC_CharIndex_T2S"))();
+ } else {
+ index = reinterpret_cast<const sal_uInt16* (*)(sal_Int32&)>(getFunctionBySymbol("getSTC_WordIndex_S2T"))(maxLen);
+ entry = reinterpret_cast<const sal_uInt16* (*)()>(getFunctionBySymbol("getSTC_WordEntry_S2T"))();
+ if (nConversionOptions & TextConversionOption::USE_CHARACTER_VARIANTS) {
+ charData = reinterpret_cast<const sal_Unicode* (*)()>(getFunctionBySymbol("getSTC_CharData_S2V"))();
+ charIndex = reinterpret_cast<const sal_uInt16* (*)()>(getFunctionBySymbol("getSTC_CharIndex_S2V"))();
+ } else {
+ charData = reinterpret_cast<const sal_Unicode* (*)()>(getFunctionBySymbol("getSTC_CharData_S2T"))();
+ charIndex = reinterpret_cast<const sal_uInt16* (*)()>(getFunctionBySymbol("getSTC_CharIndex_S2T"))();
+ }
+ }
+#else
+ const sal_Unicode *wordData = getSTC_WordData(dictLen);
+ if (toSChinese) {
+ index = getSTC_WordIndex_T2S(maxLen);
+ entry = getSTC_WordEntry_T2S();
+ charData = getSTC_CharData_T2S();
+ charIndex = getSTC_CharIndex_T2S();
+ } else {
+ index = getSTC_WordIndex_S2T(maxLen);
+ entry = getSTC_WordEntry_S2T();
+ if (nConversionOptions & TextConversionOption::USE_CHARACTER_VARIANTS) {
+ charData = getSTC_CharData_S2V();
+ charIndex = getSTC_CharIndex_S2V();
+ } else {
+ charData = getSTC_CharData_S2T();
+ charIndex = getSTC_CharIndex_S2T();
+ }
+ }
+#endif
+
+ if ((!wordData || !index || !entry) && !xCDL.is()) // no word mapping defined, do char2char conversion.
+ return getCharConversion(aText, nStartPos, nLength, toSChinese, nConversionOptions);
+
+ std::unique_ptr<sal_Unicode[]> newStr(new sal_Unicode[nLength * 2 + 1]);
+ sal_Int32 currPos = 0, count = 0;
+ while (currPos < nLength) {
+ sal_Int32 len = nLength - currPos;
+ bool found = false;
+ if (len > maxLen)
+ len = maxLen;
+ for (; len > 0 && ! found; len--) {
+ OUString word = aText.copy(nStartPos + currPos, len);
+ sal_Int32 current = 0;
+ // user dictionary
+ if (xCDL.is()) {
+ Sequence < OUString > conversions;
+ try {
+ conversions = xCDL->queryConversions(word, 0, len,
+ aLocale, ConversionDictionaryType::SCHINESE_TCHINESE,
+ /*toSChinese ?*/ ConversionDirection_FROM_LEFT /*: ConversionDirection_FROM_RIGHT*/,
+ nConversionOptions);
+ }
+ catch ( NoSupportException & ) {
+ // clear reference (when there is no user dictionary) in order
+ // to not always have to catch this exception again
+ // in further calls. (save time)
+ xCDL = nullptr;
+ }
+ catch (...) {
+ // catch all other exceptions to allow
+ // querying the system dictionary in the next line
+ }
+ if (conversions.hasElements()) {
+ if (offset.hasElements()) {
+ if (word.getLength() != conversions[0].getLength())
+ one2one=false;
+ while (current < conversions[0].getLength()) {
+ offset[count] = nStartPos + currPos + (current *
+ word.getLength() / conversions[0].getLength());
+ newStr[count++] = conversions[0][current++];
+ }
+ // offset[count-1] = nStartPos + currPos + word.getLength() - 1;
+ } else {
+ while (current < conversions[0].getLength())
+ newStr[count++] = conversions[0][current++];
+ }
+ currPos += word.getLength();
+ found = true;
+ }
+ }
+
+ if (!found && index[len+1] - index[len] > 0) {
+ sal_Int32 bottom = static_cast<sal_Int32>(index[len]);
+ sal_Int32 top = static_cast<sal_Int32>(index[len+1]) - 1;
+
+ while (bottom <= top && !found) {
+ current = (top + bottom) / 2;
+ const sal_Int32 result = word.compareTo(wordData + entry[current]);
+ if (result < 0)
+ top = current - 1;
+ else if (result > 0)
+ bottom = current + 1;
+ else {
+ if (toSChinese) // Traditionary/Simplified conversion,
+ for (current = entry[current]-1; current > 0 && wordData[current-1]; current--) ;
+ else // Simplified/Traditionary conversion, forwards search for next word
+ current = entry[current] + word.getLength() + 1;
+ sal_Int32 start=current;
+ if (offset.hasElements()) {
+ if (word.getLength() != OUString(&wordData[current]).getLength())
+ one2one=false;
+ sal_Int32 convertedLength=OUString(&wordData[current]).getLength();
+ while (wordData[current]) {
+ offset[count]=nStartPos + currPos + ((current-start) *
+ word.getLength() / convertedLength);
+ newStr[count++] = wordData[current++];
+ }
+ // offset[count-1]=nStartPos + currPos + word.getLength() - 1;
+ } else {
+ while (wordData[current])
+ newStr[count++] = wordData[current++];
+ }
+ currPos += word.getLength();
+ found = true;
+ }
+ }
+ }
+ }
+ if (!found) {
+ if (offset.hasElements())
+ offset[count]=nStartPos+currPos;
+ newStr[count++] =
+ getOneCharConversion(aText[nStartPos+currPos], charData, charIndex);
+ currPos++;
+ }
+ }
+ if (offset.hasElements())
+ offset.realloc(one2one ? 0 : count);
+ OUString aRet(newStr.get(), count);
+ return aRet;
+}
+
+TextConversionResult SAL_CALL
+TextConversion_zh::getConversions( const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength,
+ const Locale& rLocale, sal_Int16 nConversionType, sal_Int32 nConversionOptions)
+{
+ TextConversionResult result;
+
+ result.Candidates.realloc(1);
+ result.Candidates[0] = getConversion( aText, nStartPos, nLength, rLocale, nConversionType, nConversionOptions);
+ result.Boundary.startPos = nStartPos;
+ result.Boundary.endPos = nStartPos + nLength;
+
+ return result;
+}
+
+OUString SAL_CALL
+TextConversion_zh::getConversion( const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength,
+ const Locale& rLocale, sal_Int16 nConversionType, sal_Int32 nConversionOptions)
+{
+ if (rLocale.Language != "zh" || ( nConversionType != TextConversionType::TO_SCHINESE && nConversionType != TextConversionType::TO_TCHINESE) )
+ throw NoSupportException(); // Conversion type is not supported in this service.
+
+ aLocale=rLocale;
+ bool toSChinese = nConversionType == TextConversionType::TO_SCHINESE;
+
+ if (nConversionOptions & TextConversionOption::CHARACTER_BY_CHARACTER)
+ // char to char dictionary
+ return getCharConversion(aText, nStartPos, nLength, toSChinese, nConversionOptions);
+ else {
+ Sequence <sal_Int32> offset;
+ // word to word dictionary
+ return getWordConversion(aText, nStartPos, nLength, toSChinese, nConversionOptions, offset);
+ }
+}
+
+OUString SAL_CALL
+TextConversion_zh::getConversionWithOffset( const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength,
+ const Locale& rLocale, sal_Int16 nConversionType, sal_Int32 nConversionOptions, Sequence<sal_Int32>& offset)
+{
+ if (rLocale.Language != "zh" || ( nConversionType != TextConversionType::TO_SCHINESE && nConversionType != TextConversionType::TO_TCHINESE) )
+ throw NoSupportException(); // Conversion type is not supported in this service.
+
+ aLocale=rLocale;
+ bool toSChinese = nConversionType == TextConversionType::TO_SCHINESE;
+
+ if (nConversionOptions & TextConversionOption::CHARACTER_BY_CHARACTER) {
+ offset.realloc(0);
+ // char to char dictionary
+ return getCharConversion(aText, nStartPos, nLength, toSChinese, nConversionOptions);
+ } else {
+ if (offset.getLength() < 2*nLength)
+ offset.realloc(2*nLength);
+ // word to word dictionary
+ return getWordConversion(aText, nStartPos, nLength, toSChinese, nConversionOptions, offset);
+ }
+}
+
+sal_Bool SAL_CALL
+TextConversion_zh::interactiveConversion( const Locale& /*rLocale*/, sal_Int16 /*nTextConversionType*/, sal_Int32 /*nTextConversionOptions*/ )
+{
+ return false;
+}
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */