레이블이 문자코드인 게시물을 표시합니다. 모든 게시물 표시
레이블이 문자코드인 게시물을 표시합니다. 모든 게시물 표시

2020년 2월 3일 월요일

완성형 한글 + CP949 문자 코드 + 유니코드 초성, 중성, 종성 음소 분리표

Excel, VB Macro 함수를 이용하면 문자 코드표를 쉽게 만든다.


★ 문자를 주면 코드를 알려 주는 함수

  • VB 함수 : asc(문자) = 부호 있는 16비트 KS코드
  • VB 함수 : ascw(문자) = 부호 있는 16비트 유니 코드
  • Excel 함수 : Code(문자) = 부호 없는 KS 코드
  • Excel 함수 : UniCode(문자) = 부호 없는 유니 코드


    ★ 부호 없는 유니코드 만드는 함수

    • VB_UniCode = Application.WorksheetFunction.Hex2Dec(Hex(AscW(a)))


    ★ 부호 없는 KS 코드 만드는 함수 = Excel 함수 Code()
    • VB_KsCode = Application.WorksheetFunction.Hex2Dec(Hex(Asc(a)))


    ★ 문자 코드를 주면 문자로 바꾸는 함수
    • VB 함수 : chr(KS 코드) = 문자
    • VB 함수 : chrw(유니 코드) = 문자
    • Excel 함수 : Char(KS 코드) = 문자
    • Excel 함수 : UniChar(유니 코드) = 문자
    ※ 여기서 넣어 주는 문자 코드는 부호 있는 표현이나 없는 표현이나 상관 없다.


    ★ 한글 코드 순서가 연속적인 함수들 

    • Unicode(문자) : 부호 없는 유니 코드
    • AscW(문자) : 부호 있는 유니 코드


    일단 먼저 유니 코드를 구한 후에 초성, 중성, 종성 분리를 하면 쉽다.




    b = AscW(d) '부호 있는 유니코드 얻기
    n = b - AscW("가") '첫 글자 위치를 0으로
    c1 = Int(n / 588) '초성 위치
    c2 = Int((n Mod 588) / 28) '중성 위치
    c3 = (n Mod 28) '종성 위치
    Sound1 = Mid("ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ", c1 + 1, 1)
    Sound2 = Mid("ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ", c2 + 1, 1)
    Sound3 = Mid("※ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ", c3 + 1, 1)
    if Sound3 = "※" then Sound3 = ""



    예)
    AscW("가") = -21504
    Unicode("가") = 44032
    순번("가") = 0
    가=00.00.00

    AscW("힣") = -10333
    Unicode("힣") = 55203
    순번("힣") = 11171 = 21504 -10333 = 55203 - 44032
    힣=18.20.27



    초성 순서 - 순번, 초성(자음)

    1. 0
    2. 1
    3. 2
    4. 3
    5. 4
    6. 5
    7. 6
    8. 7
    9. 8
    10. 9
    11. 10
    12. 11
    13. 12
    14. 13
    15. 14
    16. 15
    17. 16
    18. 17
    19. 18


    중성 순서 - 순번, 중성(모음)

    1. 0
    2. 1
    3. 2
    4. 3
    5. 4
    6. 5
    7. 6
    8. 7
    9. 8
    10. 9
    11. 10
    12. 11
    13. 12
    14. 13
    15. 14
    16. 15
    17. 16
    18. 17
    19. 18
    20. 19
    21. 20


    종성 순서 - 순번, 종성(받침), 종성 분리

    1. 0
    2. 1
    3. 2 ㄱㄱ
    4. 3 ㄱㅅ
    5. 4
    6. 5 ㄴㅈ
    7. 6 ㄴㅎ
    8. 7
    9. 8
    10. 9 ㄹㄱ
    11. 10 ㄹㅁ
    12. 11 ㄹㅂ
    13. 12 ㄹㅅ
    14. 13 ㄹㅌ
    15. 14 ㄹㅍ
    16. 15 ㄹㅎ
    17. 16
    18. 17
    19. 18 ㅂㅅ
    20. 19
    21. 20 ㅅㅅ
    22. 21
    23. 22
    24. 23
    25. 24
    26. 25
    27. 26
    28. 27



    행 : 초성 + 종성 순번
    열 : 중성 순번
    쉼표로 구분

    초,종,00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20
    00,00,가,개,갸,걔,거,게,겨,계,고,과,괘,괴,교,구,궈,궤,귀,규,그,긔,기
    00,01,각,객,갹,걕,걱,겍,격,곅,곡,곽,괙,괵,굑,국,궉,궥,귁,귝,극,긕,긱
    00,02,갂,갞,갺,걖,걲,겎,겪,곆,곢,곾,괚,괶,굒,굮,궊,궦,귂,귞,귺,긖,긲
    00,03,갃,갟,갻,걗,걳,겏,겫,곇,곣,곿,괛,괷,굓,굯,궋,궧,귃,귟,귻,긗,긳
    00,04,간,갠,갼,걘,건,겐,견,곈,곤,관,괜,괸,굔,군,권,궨,귄,균,근,긘,긴
    00,05,갅,갡,갽,걙,걵,겑,겭,곉,곥,괁,괝,괹,굕,굱,궍,궩,귅,귡,귽,긙,긵
    00,06,갆,갢,갾,걚,걶,겒,겮,곊,곦,괂,괞,괺,굖,굲,궎,궪,귆,귢,귾,긚,긶
    00,07,갇,갣,갿,걛,걷,겓,겯,곋,곧,괃,괟,괻,굗,굳,궏,궫,귇,귣,귿,긛,긷
    00,08,갈,갤,걀,걜,걸,겔,결,곌,골,괄,괠,괼,굘,굴,궐,궬,귈,귤,글,긜,길
    00,09,갉,갥,걁,걝,걹,겕,겱,곍,곩,괅,괡,괽,굙,굵,궑,궭,귉,귥,긁,긝,긹
    00,10,갊,갦,걂,걞,걺,겖,겲,곎,곪,괆,괢,괾,굚,굶,궒,궮,귊,귦,긂,긞,긺
    00,11,갋,갧,걃,걟,걻,겗,겳,곏,곫,괇,괣,괿,굛,굷,궓,궯,귋,귧,긃,긟,긻
    00,12,갌,갨,걄,걠,걼,겘,겴,곐,곬,괈,괤,굀,굜,굸,궔,궰,귌,귨,긄,긠,긼
    00,13,갍,갩,걅,걡,걽,겙,겵,곑,곭,괉,괥,굁,굝,굹,궕,궱,귍,귩,긅,긡,긽
    00,14,갎,갪,걆,걢,걾,겚,겶,곒,곮,괊,괦,굂,굞,굺,궖,궲,귎,귪,긆,긢,긾
    00,15,갏,갫,걇,걣,걿,겛,겷,곓,곯,괋,괧,굃,굟,굻,궗,궳,귏,귫,긇,긣,긿
    00,16,감,갬,걈,걤,검,겜,겸,곔,곰,괌,괨,굄,굠,굼,궘,궴,귐,귬,금,긤,김
    00,17,갑,갭,걉,걥,겁,겝,겹,곕,곱,괍,괩,굅,굡,굽,궙,궵,귑,귭,급,긥,깁
    00,18,값,갮,걊,걦,겂,겞,겺,곖,곲,괎,괪,굆,굢,굾,궚,궶,귒,귮,긊,긦,깂
    00,19,갓,갯,걋,걧,것,겟,겻,곗,곳,괏,괫,굇,굣,굿,궛,궷,귓,귯,긋,긧,깃
    00,20,갔,갰,걌,걨,겄,겠,겼,곘,곴,괐,괬,굈,굤,궀,궜,궸,귔,귰,긌,긨,깄
    00,21,강,갱,걍,걩,겅,겡,경,곙,공,광,괭,굉,굥,궁,궝,궹,귕,귱,긍,긩,깅
    00,22,갖,갲,걎,걪,겆,겢,겾,곚,곶,괒,괮,굊,굦,궂,궞,궺,귖,귲,긎,긪,깆
    00,23,갗,갳,걏,걫,겇,겣,겿,곛,곷,괓,괯,굋,굧,궃,궟,궻,귗,귳,긏,긫,깇
    00,24,갘,갴,걐,걬,겈,겤,곀,곜,곸,괔,괰,굌,굨,궄,궠,궼,귘,귴,긐,긬,깈
    00,25,같,갵,걑,걭,겉,겥,곁,곝,곹,괕,괱,굍,굩,궅,궡,궽,귙,귵,긑,긭,깉
    00,26,갚,갶,걒,걮,겊,겦,곂,곞,곺,괖,괲,굎,굪,궆,궢,궾,귚,귶,긒,긮,깊
    00,27,갛,갷,걓,걯,겋,겧,곃,곟,곻,괗,괳,굏,굫,궇,궣,궿,귛,귷,긓,긯,깋
    01,00,까,깨,꺄,꺠,꺼,께,껴,꼐,꼬,꽈,꽤,꾀,꾜,꾸,꿔,꿰,뀌,뀨,끄,끠,끼
    01,01,깍,깩,꺅,꺡,꺽,껙,껵,꼑,꼭,꽉,꽥,꾁,꾝,꾹,꿕,꿱,뀍,뀩,끅,끡,끽
    01,02,깎,깪,꺆,꺢,꺾,껚,껶,꼒,꼮,꽊,꽦,꾂,꾞,꾺,꿖,꿲,뀎,뀪,끆,끢,끾
    01,03,깏,깫,꺇,꺣,꺿,껛,껷,꼓,꼯,꽋,꽧,꾃,꾟,꾻,꿗,꿳,뀏,뀫,끇,끣,끿
    01,04,깐,깬,꺈,꺤,껀,껜,껸,꼔,꼰,꽌,꽨,꾄,꾠,꾼,꿘,꿴,뀐,뀬,끈,끤,낀
    01,05,깑,깭,꺉,꺥,껁,껝,껹,꼕,꼱,꽍,꽩,꾅,꾡,꾽,꿙,꿵,뀑,뀭,끉,끥,낁
    01,06,깒,깮,꺊,꺦,껂,껞,껺,꼖,꼲,꽎,꽪,꾆,꾢,꾾,꿚,꿶,뀒,뀮,끊,끦,낂
    01,07,깓,깯,꺋,꺧,껃,껟,껻,꼗,꼳,꽏,꽫,꾇,꾣,꾿,꿛,꿷,뀓,뀯,끋,끧,낃
    01,08,깔,깰,꺌,꺨,껄,껠,껼,꼘,꼴,꽐,꽬,꾈,꾤,꿀,꿜,꿸,뀔,뀰,끌,끨,낄
    01,09,깕,깱,꺍,꺩,껅,껡,껽,꼙,꼵,꽑,꽭,꾉,꾥,꿁,꿝,꿹,뀕,뀱,끍,끩,낅
    01,10,깖,깲,꺎,꺪,껆,껢,껾,꼚,꼶,꽒,꽮,꾊,꾦,꿂,꿞,꿺,뀖,뀲,끎,끪,낆
    01,11,깗,깳,꺏,꺫,껇,껣,껿,꼛,꼷,꽓,꽯,꾋,꾧,꿃,꿟,꿻,뀗,뀳,끏,끫,낇
    01,12,깘,깴,꺐,꺬,껈,껤,꼀,꼜,꼸,꽔,꽰,꾌,꾨,꿄,꿠,꿼,뀘,뀴,끐,끬,낈
    01,13,깙,깵,꺑,꺭,껉,껥,꼁,꼝,꼹,꽕,꽱,꾍,꾩,꿅,꿡,꿽,뀙,뀵,끑,끭,낉
    01,14,깚,깶,꺒,꺮,껊,껦,꼂,꼞,꼺,꽖,꽲,꾎,꾪,꿆,꿢,꿾,뀚,뀶,끒,끮,낊
    01,15,깛,깷,꺓,꺯,껋,껧,꼃,꼟,꼻,꽗,꽳,꾏,꾫,꿇,꿣,꿿,뀛,뀷,끓,끯,낋
    01,16,깜,깸,꺔,꺰,껌,껨,꼄,꼠,꼼,꽘,꽴,꾐,꾬,꿈,꿤,뀀,뀜,뀸,끔,끰,낌
    01,17,깝,깹,꺕,꺱,껍,껩,꼅,꼡,꼽,꽙,꽵,꾑,꾭,꿉,꿥,뀁,뀝,뀹,끕,끱,낍
    01,18,깞,깺,꺖,꺲,껎,껪,꼆,꼢,꼾,꽚,꽶,꾒,꾮,꿊,꿦,뀂,뀞,뀺,끖,끲,낎
    01,19,깟,깻,꺗,꺳,껏,껫,꼇,꼣,꼿,꽛,꽷,꾓,꾯,꿋,꿧,뀃,뀟,뀻,끗,끳,낏
    01,20,깠,깼,꺘,꺴,껐,껬,꼈,꼤,꽀,꽜,꽸,꾔,꾰,꿌,꿨,뀄,뀠,뀼,끘,끴,낐
    01,21,깡,깽,꺙,꺵,껑,껭,꼉,꼥,꽁,꽝,꽹,꾕,꾱,꿍,꿩,뀅,뀡,뀽,끙,끵,낑
    01,22,깢,깾,꺚,꺶,껒,껮,꼊,꼦,꽂,꽞,꽺,꾖,꾲,꿎,꿪,뀆,뀢,뀾,끚,끶,낒
    01,23,깣,깿,꺛,꺷,껓,껯,꼋,꼧,꽃,꽟,꽻,꾗,꾳,꿏,꿫,뀇,뀣,뀿,끛,끷,낓
    01,24,깤,꺀,꺜,꺸,껔,껰,꼌,꼨,꽄,꽠,꽼,꾘,꾴,꿐,꿬,뀈,뀤,끀,끜,끸,낔
    01,25,깥,꺁,꺝,꺹,껕,껱,꼍,꼩,꽅,꽡,꽽,꾙,꾵,꿑,꿭,뀉,뀥,끁,끝,끹,낕
    01,26,깦,꺂,꺞,꺺,껖,껲,꼎,꼪,꽆,꽢,꽾,꾚,꾶,꿒,꿮,뀊,뀦,끂,끞,끺,낖
    01,27,깧,꺃,꺟,꺻,껗,껳,꼏,꼫,꽇,꽣,꽿,꾛,꾷,꿓,꿯,뀋,뀧,끃,끟,끻,낗
    02,00,나,내,냐,냬,너,네,녀,녜,노,놔,놰,뇌,뇨,누,눠,눼,뉘,뉴,느,늬,니
    02,01,낙,낵,냑,냭,넉,넥,녁,녝,녹,놕,놱,뇍,뇩,눅,눡,눽,뉙,뉵,늑,늭,닉
    02,02,낚,낶,냒,냮,넊,넦,녂,녞,녺,놖,놲,뇎,뇪,눆,눢,눾,뉚,뉶,늒,늮,닊
    02,03,낛,낷,냓,냯,넋,넧,녃,녟,녻,놗,놳,뇏,뇫,눇,눣,눿,뉛,뉷,늓,늯,닋
    02,04,난,낸,냔,냰,넌,넨,년,녠,논,놘,놴,뇐,뇬,눈,눤,뉀,뉜,뉸,는,늰,닌
    02,05,낝,낹,냕,냱,넍,넩,녅,녡,녽,놙,놵,뇑,뇭,눉,눥,뉁,뉝,뉹,늕,늱,닍
    02,06,낞,낺,냖,냲,넎,넪,녆,녢,녾,놚,놶,뇒,뇮,눊,눦,뉂,뉞,뉺,늖,늲,닎
    02,07,낟,낻,냗,냳,넏,넫,녇,녣,녿,놛,놷,뇓,뇯,눋,눧,뉃,뉟,뉻,늗,늳,닏
    02,08,날,낼,냘,냴,널,넬,녈,녤,놀,놜,놸,뇔,뇰,눌,눨,뉄,뉠,뉼,늘,늴,닐
    02,09,낡,낽,냙,냵,넑,넭,녉,녥,놁,놝,놹,뇕,뇱,눍,눩,뉅,뉡,뉽,늙,늵,닑
    02,10,낢,낾,냚,냶,넒,넮,녊,녦,놂,놞,놺,뇖,뇲,눎,눪,뉆,뉢,뉾,늚,늶,닒
    02,11,낣,낿,냛,냷,넓,넯,녋,녧,놃,놟,놻,뇗,뇳,눏,눫,뉇,뉣,뉿,늛,늷,닓
    02,12,낤,냀,냜,냸,넔,넰,녌,녨,놄,놠,놼,뇘,뇴,눐,눬,뉈,뉤,늀,늜,늸,닔
    02,13,낥,냁,냝,냹,넕,넱,녍,녩,놅,놡,놽,뇙,뇵,눑,눭,뉉,뉥,늁,늝,늹,닕
    02,14,낦,냂,냞,냺,넖,넲,녎,녪,놆,놢,놾,뇚,뇶,눒,눮,뉊,뉦,늂,늞,늺,닖
    02,15,낧,냃,냟,냻,넗,넳,녏,녫,놇,놣,놿,뇛,뇷,눓,눯,뉋,뉧,늃,늟,늻,닗
    02,16,남,냄,냠,냼,넘,넴,념,녬,놈,놤,뇀,뇜,뇸,눔,눰,뉌,뉨,늄,늠,늼,님
    02,17,납,냅,냡,냽,넙,넵,녑,녭,놉,놥,뇁,뇝,뇹,눕,눱,뉍,뉩,늅,늡,늽,닙
    02,18,낪,냆,냢,냾,넚,넶,녒,녮,놊,놦,뇂,뇞,뇺,눖,눲,뉎,뉪,늆,늢,늾,닚
    02,19,낫,냇,냣,냿,넛,넷,녓,녯,놋,놧,뇃,뇟,뇻,눗,눳,뉏,뉫,늇,늣,늿,닛
    02,20,났,냈,냤,넀,넜,넸,녔,녰,놌,놨,뇄,뇠,뇼,눘,눴,뉐,뉬,늈,늤,닀,닜
    02,21,낭,냉,냥,넁,넝,넹,녕,녱,농,놩,뇅,뇡,뇽,눙,눵,뉑,뉭,늉,능,닁,닝
    02,22,낮,냊,냦,넂,넞,넺,녖,녲,놎,놪,뇆,뇢,뇾,눚,눶,뉒,뉮,늊,늦,닂,닞
    02,23,낯,냋,냧,넃,넟,넻,녗,녳,놏,놫,뇇,뇣,뇿,눛,눷,뉓,뉯,늋,늧,닃,닟
    02,24,낰,냌,냨,넄,넠,넼,녘,녴,놐,놬,뇈,뇤,눀,눜,눸,뉔,뉰,늌,늨,닄,닠
    02,25,낱,냍,냩,넅,넡,넽,녙,녵,놑,놭,뇉,뇥,눁,눝,눹,뉕,뉱,늍,늩,닅,닡
    02,26,낲,냎,냪,넆,넢,넾,녚,녶,높,놮,뇊,뇦,눂,눞,눺,뉖,뉲,늎,늪,닆,닢
    02,27,낳,냏,냫,넇,넣,넿,녛,녷,놓,놯,뇋,뇧,눃,눟,눻,뉗,뉳,늏,늫,닇,닣
    03,00,다,대,댜,댸,더,데,뎌,뎨,도,돠,돼,되,됴,두,둬,뒈,뒤,듀,드,듸,디
    03,01,닥,댁,댝,댹,덕,덱,뎍,뎩,독,돡,돽,됙,됵,둑,둭,뒉,뒥,듁,득,듹,딕
    03,02,닦,댂,댞,댺,덖,덲,뎎,뎪,돆,돢,돾,됚,됶,둒,둮,뒊,뒦,듂,듞,듺,딖
    03,03,닧,댃,댟,댻,덗,덳,뎏,뎫,돇,돣,돿,됛,됷,둓,둯,뒋,뒧,듃,듟,듻,딗
    03,04,단,댄,댠,댼,던,덴,뎐,뎬,돈,돤,됀,된,됸,둔,둰,뒌,뒨,듄,든,듼,딘
    03,05,닩,댅,댡,댽,덙,덵,뎑,뎭,돉,돥,됁,됝,됹,둕,둱,뒍,뒩,듅,듡,듽,딙
    03,06,닪,댆,댢,댾,덚,덶,뎒,뎮,돊,돦,됂,됞,됺,둖,둲,뒎,뒪,듆,듢,듾,딚
    03,07,닫,댇,댣,댿,덛,덷,뎓,뎯,돋,돧,됃,됟,됻,둗,둳,뒏,뒫,듇,듣,듿,딛
    03,08,달,댈,댤,덀,덜,델,뎔,뎰,돌,돨,됄,될,됼,둘,둴,뒐,뒬,듈,들,딀,딜
    03,09,닭,댉,댥,덁,덝,덹,뎕,뎱,돍,돩,됅,됡,됽,둙,둵,뒑,뒭,듉,듥,딁,딝
    03,10,닮,댊,댦,덂,덞,덺,뎖,뎲,돎,돪,됆,됢,됾,둚,둶,뒒,뒮,듊,듦,딂,딞
    03,11,닯,댋,댧,덃,덟,덻,뎗,뎳,돏,돫,됇,됣,됿,둛,둷,뒓,뒯,듋,듧,딃,딟
    03,12,닰,댌,댨,덄,덠,덼,뎘,뎴,돐,돬,됈,됤,둀,둜,둸,뒔,뒰,듌,듨,딄,딠
    03,13,닱,댍,댩,덅,덡,덽,뎙,뎵,돑,돭,됉,됥,둁,둝,둹,뒕,뒱,듍,듩,딅,딡
    03,14,닲,댎,댪,덆,덢,덾,뎚,뎶,돒,돮,됊,됦,둂,둞,둺,뒖,뒲,듎,듪,딆,딢
    03,15,닳,댏,댫,덇,덣,덿,뎛,뎷,돓,돯,됋,됧,둃,둟,둻,뒗,뒳,듏,듫,딇,딣
    03,16,담,댐,댬,덈,덤,뎀,뎜,뎸,돔,돰,됌,됨,둄,둠,둼,뒘,뒴,듐,듬,딈,딤
    03,17,답,댑,댭,덉,덥,뎁,뎝,뎹,돕,돱,됍,됩,둅,둡,둽,뒙,뒵,듑,듭,딉,딥
    03,18,닶,댒,댮,덊,덦,뎂,뎞,뎺,돖,돲,됎,됪,둆,둢,둾,뒚,뒶,듒,듮,딊,딦
    03,19,닷,댓,댯,덋,덧,뎃,뎟,뎻,돗,돳,됏,됫,둇,둣,둿,뒛,뒷,듓,듯,딋,딧
    03,20,닸,댔,댰,덌,덨,뎄,뎠,뎼,돘,돴,됐,됬,둈,둤,뒀,뒜,뒸,듔,듰,딌,딨
    03,21,당,댕,댱,덍,덩,뎅,뎡,뎽,동,돵,됑,됭,둉,둥,뒁,뒝,뒹,듕,등,딍,딩
    03,22,닺,댖,댲,덎,덪,뎆,뎢,뎾,돚,돶,됒,됮,둊,둦,뒂,뒞,뒺,듖,듲,딎,딪
    03,23,닻,댗,댳,덏,덫,뎇,뎣,뎿,돛,돷,됓,됯,둋,둧,뒃,뒟,뒻,듗,듳,딏,딫
    03,24,닼,댘,댴,덐,덬,뎈,뎤,돀,돜,돸,됔,됰,둌,둨,뒄,뒠,뒼,듘,듴,딐,딬
    03,25,닽,댙,댵,덑,덭,뎉,뎥,돁,돝,돹,됕,됱,둍,둩,뒅,뒡,뒽,듙,듵,딑,딭
    03,26,닾,댚,댶,덒,덮,뎊,뎦,돂,돞,돺,됖,됲,둎,둪,뒆,뒢,뒾,듚,듶,딒,딮
    03,27,닿,댛,댷,덓,덯,뎋,뎧,돃,돟,돻,됗,됳,둏,둫,뒇,뒣,뒿,듛,듷,딓,딯
    04,00,따,때,땨,떄,떠,떼,뗘,뗴,또,똬,뙈,뙤,뚀,뚜,뚸,뛔,뛰,뜌,뜨,띄,띠
    04,01,딱,땍,땩,떅,떡,떽,뗙,뗵,똑,똭,뙉,뙥,뚁,뚝,뚹,뛕,뛱,뜍,뜩,띅,띡
    04,02,딲,땎,땪,떆,떢,떾,뗚,뗶,똒,똮,뙊,뙦,뚂,뚞,뚺,뛖,뛲,뜎,뜪,띆,띢
    04,03,딳,땏,땫,떇,떣,떿,뗛,뗷,똓,똯,뙋,뙧,뚃,뚟,뚻,뛗,뛳,뜏,뜫,띇,띣
    04,04,딴,땐,땬,떈,떤,뗀,뗜,뗸,똔,똰,뙌,뙨,뚄,뚠,뚼,뛘,뛴,뜐,뜬,띈,띤
    04,05,딵,땑,땭,떉,떥,뗁,뗝,뗹,똕,똱,뙍,뙩,뚅,뚡,뚽,뛙,뛵,뜑,뜭,띉,띥
    04,06,딶,땒,땮,떊,떦,뗂,뗞,뗺,똖,똲,뙎,뙪,뚆,뚢,뚾,뛚,뛶,뜒,뜮,띊,띦
    04,07,딷,땓,땯,떋,떧,뗃,뗟,뗻,똗,똳,뙏,뙫,뚇,뚣,뚿,뛛,뛷,뜓,뜯,띋,띧
    04,08,딸,땔,땰,떌,떨,뗄,뗠,뗼,똘,똴,뙐,뙬,뚈,뚤,뛀,뛜,뛸,뜔,뜰,띌,띨
    04,09,딹,땕,땱,떍,떩,뗅,뗡,뗽,똙,똵,뙑,뙭,뚉,뚥,뛁,뛝,뛹,뜕,뜱,띍,띩
    04,10,딺,땖,땲,떎,떪,뗆,뗢,뗾,똚,똶,뙒,뙮,뚊,뚦,뛂,뛞,뛺,뜖,뜲,띎,띪
    04,11,딻,땗,땳,떏,떫,뗇,뗣,뗿,똛,똷,뙓,뙯,뚋,뚧,뛃,뛟,뛻,뜗,뜳,띏,띫
    04,12,딼,땘,땴,떐,떬,뗈,뗤,똀,똜,똸,뙔,뙰,뚌,뚨,뛄,뛠,뛼,뜘,뜴,띐,띬
    04,13,딽,땙,땵,떑,떭,뗉,뗥,똁,똝,똹,뙕,뙱,뚍,뚩,뛅,뛡,뛽,뜙,뜵,띑,띭
    04,14,딾,땚,땶,떒,떮,뗊,뗦,똂,똞,똺,뙖,뙲,뚎,뚪,뛆,뛢,뛾,뜚,뜶,띒,띮
    04,15,딿,땛,땷,떓,떯,뗋,뗧,똃,똟,똻,뙗,뙳,뚏,뚫,뛇,뛣,뛿,뜛,뜷,띓,띯
    04,16,땀,땜,땸,떔,떰,뗌,뗨,똄,똠,똼,뙘,뙴,뚐,뚬,뛈,뛤,뜀,뜜,뜸,띔,띰
    04,17,땁,땝,땹,떕,떱,뗍,뗩,똅,똡,똽,뙙,뙵,뚑,뚭,뛉,뛥,뜁,뜝,뜹,띕,띱
    04,18,땂,땞,땺,떖,떲,뗎,뗪,똆,똢,똾,뙚,뙶,뚒,뚮,뛊,뛦,뜂,뜞,뜺,띖,띲
    04,19,땃,땟,땻,떗,떳,뗏,뗫,똇,똣,똿,뙛,뙷,뚓,뚯,뛋,뛧,뜃,뜟,뜻,띗,띳
    04,20,땄,땠,땼,떘,떴,뗐,뗬,똈,똤,뙀,뙜,뙸,뚔,뚰,뛌,뛨,뜄,뜠,뜼,띘,띴
    04,21,땅,땡,땽,떙,떵,뗑,뗭,똉,똥,뙁,뙝,뙹,뚕,뚱,뛍,뛩,뜅,뜡,뜽,띙,띵
    04,22,땆,땢,땾,떚,떶,뗒,뗮,똊,똦,뙂,뙞,뙺,뚖,뚲,뛎,뛪,뜆,뜢,뜾,띚,띶
    04,23,땇,땣,땿,떛,떷,뗓,뗯,똋,똧,뙃,뙟,뙻,뚗,뚳,뛏,뛫,뜇,뜣,뜿,띛,띷
    04,24,땈,땤,떀,떜,떸,뗔,뗰,똌,똨,뙄,뙠,뙼,뚘,뚴,뛐,뛬,뜈,뜤,띀,띜,띸
    04,25,땉,땥,떁,떝,떹,뗕,뗱,똍,똩,뙅,뙡,뙽,뚙,뚵,뛑,뛭,뜉,뜥,띁,띝,띹
    04,26,땊,땦,떂,떞,떺,뗖,뗲,똎,똪,뙆,뙢,뙾,뚚,뚶,뛒,뛮,뜊,뜦,띂,띞,띺
    04,27,땋,땧,떃,떟,떻,뗗,뗳,똏,똫,뙇,뙣,뙿,뚛,뚷,뛓,뛯,뜋,뜧,띃,띟,띻
    05,00,라,래,랴,럐,러,레,려,례,로,롸,뢔,뢰,료,루,뤄,뤠,뤼,류,르,릐,리
    05,01,락,랙,략,럑,럭,렉,력,롁,록,롹,뢕,뢱,룍,룩,뤅,뤡,뤽,륙,륵,릑,릭
    05,02,띾,랚,랶,럒,럮,렊,렦,롂,롞,롺,뢖,뢲,룎,룪,뤆,뤢,뤾,륚,륶,릒,릮
    05,03,띿,랛,랷,럓,럯,렋,렧,롃,롟,롻,뢗,뢳,룏,룫,뤇,뤣,뤿,륛,륷,릓,릯
    05,04,란,랜,랸,럔,런,렌,련,롄,론,롼,뢘,뢴,룐,룬,뤈,뤤,륀,륜,른,릔,린
    05,05,랁,랝,랹,럕,럱,렍,렩,롅,롡,롽,뢙,뢵,룑,룭,뤉,뤥,륁,륝,륹,릕,릱
    05,06,랂,랞,랺,럖,럲,렎,렪,롆,롢,롾,뢚,뢶,룒,룮,뤊,뤦,륂,륞,륺,릖,릲
    05,07,랃,랟,랻,럗,럳,렏,렫,롇,롣,롿,뢛,뢷,룓,룯,뤋,뤧,륃,륟,륻,릗,릳
    05,08,랄,랠,랼,럘,럴,렐,렬,롈,롤,뢀,뢜,뢸,룔,룰,뤌,뤨,륄,률,를,릘,릴
    05,09,랅,랡,랽,럙,럵,렑,렭,롉,롥,뢁,뢝,뢹,룕,룱,뤍,뤩,륅,륡,륽,릙,릵
    05,10,랆,랢,랾,럚,럶,렒,렮,롊,롦,뢂,뢞,뢺,룖,룲,뤎,뤪,륆,륢,륾,릚,릶
    05,11,랇,랣,랿,럛,럷,렓,렯,롋,롧,뢃,뢟,뢻,룗,룳,뤏,뤫,륇,륣,륿,릛,릷
    05,12,랈,랤,럀,럜,럸,렔,렰,롌,롨,뢄,뢠,뢼,룘,룴,뤐,뤬,륈,륤,릀,릜,릸
    05,13,랉,랥,럁,럝,럹,렕,렱,롍,롩,뢅,뢡,뢽,룙,룵,뤑,뤭,륉,륥,릁,릝,릹
    05,14,랊,랦,럂,럞,럺,렖,렲,롎,롪,뢆,뢢,뢾,룚,룶,뤒,뤮,륊,륦,릂,릞,릺
    05,15,랋,랧,럃,럟,럻,렗,렳,롏,롫,뢇,뢣,뢿,룛,룷,뤓,뤯,륋,륧,릃,릟,릻
    05,16,람,램,럄,럠,럼,렘,렴,롐,롬,뢈,뢤,룀,룜,룸,뤔,뤰,륌,륨,름,릠,림
    05,17,랍,랩,럅,럡,럽,렙,렵,롑,롭,뢉,뢥,룁,룝,룹,뤕,뤱,륍,륩,릅,릡,립
    05,18,랎,랪,럆,럢,럾,렚,렶,롒,롮,뢊,뢦,룂,룞,룺,뤖,뤲,륎,륪,릆,릢,릾
    05,19,랏,랫,럇,럣,럿,렛,렷,롓,롯,뢋,뢧,룃,룟,룻,뤗,뤳,륏,륫,릇,릣,릿
    05,20,랐,랬,럈,럤,렀,렜,렸,롔,롰,뢌,뢨,룄,룠,룼,뤘,뤴,륐,륬,릈,릤,맀
    05,21,랑,랭,량,럥,렁,렝,령,롕,롱,뢍,뢩,룅,룡,룽,뤙,뤵,륑,륭,릉,릥,링
    05,22,랒,랮,럊,럦,렂,렞,렺,롖,롲,뢎,뢪,룆,룢,룾,뤚,뤶,륒,륮,릊,릦,맂
    05,23,랓,랯,럋,럧,렃,렟,렻,롗,롳,뢏,뢫,룇,룣,룿,뤛,뤷,륓,륯,릋,릧,맃
    05,24,랔,랰,럌,럨,렄,렠,렼,롘,롴,뢐,뢬,룈,룤,뤀,뤜,뤸,륔,륰,릌,릨,맄
    05,25,랕,랱,럍,럩,렅,렡,렽,롙,롵,뢑,뢭,룉,룥,뤁,뤝,뤹,륕,륱,릍,릩,맅
    05,26,랖,랲,럎,럪,렆,렢,렾,롚,롶,뢒,뢮,룊,룦,뤂,뤞,뤺,륖,륲,릎,릪,맆
    05,27,랗,랳,럏,럫,렇,렣,렿,롛,롷,뢓,뢯,룋,룧,뤃,뤟,뤻,륗,륳,릏,릫,맇
    06,00,마,매,먀,먜,머,메,며,몌,모,뫄,뫠,뫼,묘,무,뭐,뭬,뮈,뮤,므,믜,미
    06,01,막,맥,먁,먝,먹,멕,멱,몍,목,뫅,뫡,뫽,묙,묵,뭑,뭭,뮉,뮥,믁,믝,믹
    06,02,맊,맦,먂,먞,먺,멖,멲,몎,몪,뫆,뫢,뫾,묚,묶,뭒,뭮,뮊,뮦,믂,믞,믺
    06,03,맋,맧,먃,먟,먻,멗,멳,몏,몫,뫇,뫣,뫿,묛,묷,뭓,뭯,뮋,뮧,믃,믟,믻
    06,04,만,맨,먄,먠,먼,멘,면,몐,몬,뫈,뫤,묀,묜,문,뭔,뭰,뮌,뮨,믄,믠,민
    06,05,맍,맩,먅,먡,먽,멙,멵,몑,몭,뫉,뫥,묁,묝,묹,뭕,뭱,뮍,뮩,믅,믡,믽
    06,06,많,맪,먆,먢,먾,멚,멶,몒,몮,뫊,뫦,묂,묞,묺,뭖,뭲,뮎,뮪,믆,믢,믾
    06,07,맏,맫,먇,먣,먿,멛,멷,몓,몯,뫋,뫧,묃,묟,묻,뭗,뭳,뮏,뮫,믇,믣,믿
    06,08,말,맬,먈,먤,멀,멜,멸,몔,몰,뫌,뫨,묄,묠,물,뭘,뭴,뮐,뮬,믈,믤,밀
    06,09,맑,맭,먉,먥,멁,멝,멹,몕,몱,뫍,뫩,묅,묡,묽,뭙,뭵,뮑,뮭,믉,믥,밁
    06,10,맒,맮,먊,먦,멂,멞,멺,몖,몲,뫎,뫪,묆,묢,묾,뭚,뭶,뮒,뮮,믊,믦,밂
    06,11,맓,맯,먋,먧,멃,멟,멻,몗,몳,뫏,뫫,묇,묣,묿,뭛,뭷,뮓,뮯,믋,믧,밃
    06,12,맔,맰,먌,먨,멄,멠,멼,몘,몴,뫐,뫬,묈,묤,뭀,뭜,뭸,뮔,뮰,믌,믨,밄
    06,13,맕,맱,먍,먩,멅,멡,멽,몙,몵,뫑,뫭,묉,묥,뭁,뭝,뭹,뮕,뮱,믍,믩,밅
    06,14,맖,맲,먎,먪,멆,멢,멾,몚,몶,뫒,뫮,묊,묦,뭂,뭞,뭺,뮖,뮲,믎,믪,밆
    06,15,맗,맳,먏,먫,멇,멣,멿,몛,몷,뫓,뫯,묋,묧,뭃,뭟,뭻,뮗,뮳,믏,믫,밇
    06,16,맘,맴,먐,먬,멈,멤,몀,몜,몸,뫔,뫰,묌,묨,뭄,뭠,뭼,뮘,뮴,믐,믬,밈
    06,17,맙,맵,먑,먭,멉,멥,몁,몝,몹,뫕,뫱,묍,묩,뭅,뭡,뭽,뮙,뮵,믑,믭,밉
    06,18,맚,맶,먒,먮,멊,멦,몂,몞,몺,뫖,뫲,묎,묪,뭆,뭢,뭾,뮚,뮶,믒,믮,밊
    06,19,맛,맷,먓,먯,멋,멧,몃,몟,못,뫗,뫳,묏,묫,뭇,뭣,뭿,뮛,뮷,믓,믯,밋
    06,20,맜,맸,먔,먰,멌,멨,몄,몠,몼,뫘,뫴,묐,묬,뭈,뭤,뮀,뮜,뮸,믔,믰,밌
    06,21,망,맹,먕,먱,멍,멩,명,몡,몽,뫙,뫵,묑,묭,뭉,뭥,뮁,뮝,뮹,믕,믱,밍
    06,22,맞,맺,먖,먲,멎,멪,몆,몢,몾,뫚,뫶,묒,묮,뭊,뭦,뮂,뮞,뮺,믖,믲,밎
    06,23,맟,맻,먗,먳,멏,멫,몇,몣,몿,뫛,뫷,묓,묯,뭋,뭧,뮃,뮟,뮻,믗,믳,및
    06,24,맠,맼,먘,먴,멐,멬,몈,몤,뫀,뫜,뫸,묔,묰,뭌,뭨,뮄,뮠,뮼,믘,믴,밐
    06,25,맡,맽,먙,먵,멑,멭,몉,몥,뫁,뫝,뫹,묕,묱,뭍,뭩,뮅,뮡,뮽,믙,믵,밑
    06,26,맢,맾,먚,먶,멒,멮,몊,몦,뫂,뫞,뫺,묖,묲,뭎,뭪,뮆,뮢,뮾,믚,믶,밒
    06,27,맣,맿,먛,먷,멓,멯,몋,몧,뫃,뫟,뫻,묗,묳,뭏,뭫,뮇,뮣,뮿,믛,믷,밓
    07,00,바,배,뱌,뱨,버,베,벼,볘,보,봐,봬,뵈,뵤,부,붜,붸,뷔,뷰,브,븨,비
    07,01,박,백,뱍,뱩,벅,벡,벽,볙,복,봑,봭,뵉,뵥,북,붝,붹,뷕,뷱,븍,븩,빅
    07,02,밖,밲,뱎,뱪,벆,벢,벾,볚,볶,봒,봮,뵊,뵦,붂,붞,붺,뷖,뷲,븎,븪,빆
    07,03,밗,밳,뱏,뱫,벇,벣,벿,볛,볷,봓,봯,뵋,뵧,붃,붟,붻,뷗,뷳,븏,븫,빇
    07,04,반,밴,뱐,뱬,번,벤,변,볜,본,봔,봰,뵌,뵨,분,붠,붼,뷘,뷴,븐,븬,빈
    07,05,밙,밵,뱑,뱭,벉,벥,볁,볝,볹,봕,봱,뵍,뵩,붅,붡,붽,뷙,뷵,븑,븭,빉
    07,06,밚,밶,뱒,뱮,벊,벦,볂,볞,볺,봖,봲,뵎,뵪,붆,붢,붾,뷚,뷶,븒,븮,빊
    07,07,받,밷,뱓,뱯,벋,벧,볃,볟,볻,봗,봳,뵏,뵫,붇,붣,붿,뷛,뷷,븓,븯,빋
    07,08,발,밸,뱔,뱰,벌,벨,별,볠,볼,봘,봴,뵐,뵬,불,붤,뷀,뷜,뷸,블,븰,빌
    07,09,밝,밹,뱕,뱱,벍,벩,볅,볡,볽,봙,봵,뵑,뵭,붉,붥,뷁,뷝,뷹,븕,븱,빍
    07,10,밞,밺,뱖,뱲,벎,벪,볆,볢,볾,봚,봶,뵒,뵮,붊,붦,뷂,뷞,뷺,븖,븲,빎
    07,11,밟,밻,뱗,뱳,벏,벫,볇,볣,볿,봛,봷,뵓,뵯,붋,붧,뷃,뷟,뷻,븗,븳,빏
    07,12,밠,밼,뱘,뱴,벐,벬,볈,볤,봀,봜,봸,뵔,뵰,붌,붨,뷄,뷠,뷼,븘,븴,빐
    07,13,밡,밽,뱙,뱵,벑,벭,볉,볥,봁,봝,봹,뵕,뵱,붍,붩,뷅,뷡,뷽,븙,븵,빑
    07,14,밢,밾,뱚,뱶,벒,벮,볊,볦,봂,봞,봺,뵖,뵲,붎,붪,뷆,뷢,뷾,븚,븶,빒
    07,15,밣,밿,뱛,뱷,벓,벯,볋,볧,봃,봟,봻,뵗,뵳,붏,붫,뷇,뷣,뷿,븛,븷,빓
    07,16,밤,뱀,뱜,뱸,범,벰,볌,볨,봄,봠,봼,뵘,뵴,붐,붬,뷈,뷤,븀,븜,븸,빔
    07,17,밥,뱁,뱝,뱹,법,벱,볍,볩,봅,봡,봽,뵙,뵵,붑,붭,뷉,뷥,븁,븝,븹,빕
    07,18,밦,뱂,뱞,뱺,벖,벲,볎,볪,봆,봢,봾,뵚,뵶,붒,붮,뷊,뷦,븂,븞,븺,빖
    07,19,밧,뱃,뱟,뱻,벗,벳,볏,볫,봇,봣,봿,뵛,뵷,붓,붯,뷋,뷧,븃,븟,븻,빗
    07,20,밨,뱄,뱠,뱼,벘,벴,볐,볬,봈,봤,뵀,뵜,뵸,붔,붰,뷌,뷨,븄,븠,븼,빘
    07,21,방,뱅,뱡,뱽,벙,벵,병,볭,봉,봥,뵁,뵝,뵹,붕,붱,뷍,뷩,븅,븡,븽,빙
    07,22,밪,뱆,뱢,뱾,벚,벶,볒,볮,봊,봦,뵂,뵞,뵺,붖,붲,뷎,뷪,븆,븢,븾,빚
    07,23,밫,뱇,뱣,뱿,벛,벷,볓,볯,봋,봧,뵃,뵟,뵻,붗,붳,뷏,뷫,븇,븣,븿,빛
    07,24,밬,뱈,뱤,벀,벜,벸,볔,볰,봌,봨,뵄,뵠,뵼,붘,붴,뷐,뷬,븈,븤,빀,빜
    07,25,밭,뱉,뱥,벁,벝,벹,볕,볱,봍,봩,뵅,뵡,뵽,붙,붵,뷑,뷭,븉,븥,빁,빝
    07,26,밮,뱊,뱦,벂,벞,벺,볖,볲,봎,봪,뵆,뵢,뵾,붚,붶,뷒,뷮,븊,븦,빂,빞
    07,27,밯,뱋,뱧,벃,벟,벻,볗,볳,봏,봫,뵇,뵣,뵿,붛,붷,뷓,뷯,븋,븧,빃,빟
    08,00,빠,빼,뺘,뺴,뻐,뻬,뼈,뼤,뽀,뽜,뽸,뾔,뾰,뿌,뿨,쀄,쀠,쀼,쁘,쁴,삐
    08,01,빡,빽,뺙,뺵,뻑,뻭,뼉,뼥,뽁,뽝,뽹,뾕,뾱,뿍,뿩,쀅,쀡,쀽,쁙,쁵,삑
    08,02,빢,빾,뺚,뺶,뻒,뻮,뼊,뼦,뽂,뽞,뽺,뾖,뾲,뿎,뿪,쀆,쀢,쀾,쁚,쁶,삒
    08,03,빣,빿,뺛,뺷,뻓,뻯,뼋,뼧,뽃,뽟,뽻,뾗,뾳,뿏,뿫,쀇,쀣,쀿,쁛,쁷,삓
    08,04,빤,뺀,뺜,뺸,뻔,뻰,뼌,뼨,뽄,뽠,뽼,뾘,뾴,뿐,뿬,쀈,쀤,쁀,쁜,쁸,삔
    08,05,빥,뺁,뺝,뺹,뻕,뻱,뼍,뼩,뽅,뽡,뽽,뾙,뾵,뿑,뿭,쀉,쀥,쁁,쁝,쁹,삕
    08,06,빦,뺂,뺞,뺺,뻖,뻲,뼎,뼪,뽆,뽢,뽾,뾚,뾶,뿒,뿮,쀊,쀦,쁂,쁞,쁺,삖
    08,07,빧,뺃,뺟,뺻,뻗,뻳,뼏,뼫,뽇,뽣,뽿,뾛,뾷,뿓,뿯,쀋,쀧,쁃,쁟,쁻,삗
    08,08,빨,뺄,뺠,뺼,뻘,뻴,뼐,뼬,뽈,뽤,뾀,뾜,뾸,뿔,뿰,쀌,쀨,쁄,쁠,쁼,삘
    08,09,빩,뺅,뺡,뺽,뻙,뻵,뼑,뼭,뽉,뽥,뾁,뾝,뾹,뿕,뿱,쀍,쀩,쁅,쁡,쁽,삙
    08,10,빪,뺆,뺢,뺾,뻚,뻶,뼒,뼮,뽊,뽦,뾂,뾞,뾺,뿖,뿲,쀎,쀪,쁆,쁢,쁾,삚
    08,11,빫,뺇,뺣,뺿,뻛,뻷,뼓,뼯,뽋,뽧,뾃,뾟,뾻,뿗,뿳,쀏,쀫,쁇,쁣,쁿,삛
    08,12,빬,뺈,뺤,뻀,뻜,뻸,뼔,뼰,뽌,뽨,뾄,뾠,뾼,뿘,뿴,쀐,쀬,쁈,쁤,삀,삜
    08,13,빭,뺉,뺥,뻁,뻝,뻹,뼕,뼱,뽍,뽩,뾅,뾡,뾽,뿙,뿵,쀑,쀭,쁉,쁥,삁,삝
    08,14,빮,뺊,뺦,뻂,뻞,뻺,뼖,뼲,뽎,뽪,뾆,뾢,뾾,뿚,뿶,쀒,쀮,쁊,쁦,삂,삞
    08,15,빯,뺋,뺧,뻃,뻟,뻻,뼗,뼳,뽏,뽫,뾇,뾣,뾿,뿛,뿷,쀓,쀯,쁋,쁧,삃,삟
    08,16,빰,뺌,뺨,뻄,뻠,뻼,뼘,뼴,뽐,뽬,뾈,뾤,뿀,뿜,뿸,쀔,쀰,쁌,쁨,삄,삠
    08,17,빱,뺍,뺩,뻅,뻡,뻽,뼙,뼵,뽑,뽭,뾉,뾥,뿁,뿝,뿹,쀕,쀱,쁍,쁩,삅,삡
    08,18,빲,뺎,뺪,뻆,뻢,뻾,뼚,뼶,뽒,뽮,뾊,뾦,뿂,뿞,뿺,쀖,쀲,쁎,쁪,삆,삢
    08,19,빳,뺏,뺫,뻇,뻣,뻿,뼛,뼷,뽓,뽯,뾋,뾧,뿃,뿟,뿻,쀗,쀳,쁏,쁫,삇,삣
    08,20,빴,뺐,뺬,뻈,뻤,뼀,뼜,뼸,뽔,뽰,뾌,뾨,뿄,뿠,뿼,쀘,쀴,쁐,쁬,삈,삤
    08,21,빵,뺑,뺭,뻉,뻥,뼁,뼝,뼹,뽕,뽱,뾍,뾩,뿅,뿡,뿽,쀙,쀵,쁑,쁭,삉,삥
    08,22,빶,뺒,뺮,뻊,뻦,뼂,뼞,뼺,뽖,뽲,뾎,뾪,뿆,뿢,뿾,쀚,쀶,쁒,쁮,삊,삦
    08,23,빷,뺓,뺯,뻋,뻧,뼃,뼟,뼻,뽗,뽳,뾏,뾫,뿇,뿣,뿿,쀛,쀷,쁓,쁯,삋,삧
    08,24,빸,뺔,뺰,뻌,뻨,뼄,뼠,뼼,뽘,뽴,뾐,뾬,뿈,뿤,쀀,쀜,쀸,쁔,쁰,삌,삨
    08,25,빹,뺕,뺱,뻍,뻩,뼅,뼡,뼽,뽙,뽵,뾑,뾭,뿉,뿥,쀁,쀝,쀹,쁕,쁱,삍,삩
    08,26,빺,뺖,뺲,뻎,뻪,뼆,뼢,뼾,뽚,뽶,뾒,뾮,뿊,뿦,쀂,쀞,쀺,쁖,쁲,삎,삪
    08,27,빻,뺗,뺳,뻏,뻫,뼇,뼣,뼿,뽛,뽷,뾓,뾯,뿋,뿧,쀃,쀟,쀻,쁗,쁳,삏,삫
    09,00,사,새,샤,섀,서,세,셔,셰,소,솨,쇄,쇠,쇼,수,숴,쉐,쉬,슈,스,싀,시
    09,01,삭,색,샥,섁,석,섹,셕,셱,속,솩,쇅,쇡,쇽,숙,숵,쉑,쉭,슉,슥,싁,식
    09,02,삮,샊,샦,섂,섞,섺,셖,셲,솎,솪,쇆,쇢,쇾,숚,숶,쉒,쉮,슊,슦,싂,싞
    09,03,삯,샋,샧,섃,섟,섻,셗,셳,솏,솫,쇇,쇣,쇿,숛,숷,쉓,쉯,슋,슧,싃,싟
    09,04,산,샌,샨,섄,선,센,션,셴,손,솬,쇈,쇤,숀,순,숸,쉔,쉰,슌,슨,싄,신
    09,05,삱,샍,샩,섅,섡,섽,셙,셵,솑,솭,쇉,쇥,숁,숝,숹,쉕,쉱,슍,슩,싅,싡
    09,06,삲,샎,샪,섆,섢,섾,셚,셶,솒,솮,쇊,쇦,숂,숞,숺,쉖,쉲,슎,슪,싆,싢
    09,07,삳,샏,샫,섇,섣,섿,셛,셷,솓,솯,쇋,쇧,숃,숟,숻,쉗,쉳,슏,슫,싇,싣
    09,08,살,샐,샬,섈,설,셀,셜,셸,솔,솰,쇌,쇨,숄,술,숼,쉘,쉴,슐,슬,싈,실
    09,09,삵,샑,샭,섉,섥,셁,셝,셹,솕,솱,쇍,쇩,숅,숡,숽,쉙,쉵,슑,슭,싉,싥
    09,10,삶,샒,샮,섊,섦,셂,셞,셺,솖,솲,쇎,쇪,숆,숢,숾,쉚,쉶,슒,슮,싊,싦
    09,11,삷,샓,샯,섋,섧,셃,셟,셻,솗,솳,쇏,쇫,숇,숣,숿,쉛,쉷,슓,슯,싋,싧
    09,12,삸,샔,샰,섌,섨,셄,셠,셼,솘,솴,쇐,쇬,숈,숤,쉀,쉜,쉸,슔,슰,싌,싨
    09,13,삹,샕,샱,섍,섩,셅,셡,셽,솙,솵,쇑,쇭,숉,숥,쉁,쉝,쉹,슕,슱,싍,싩
    09,14,삺,샖,샲,섎,섪,셆,셢,셾,솚,솶,쇒,쇮,숊,숦,쉂,쉞,쉺,슖,슲,싎,싪
    09,15,삻,샗,샳,섏,섫,셇,셣,셿,솛,솷,쇓,쇯,숋,숧,쉃,쉟,쉻,슗,슳,싏,싫
    09,16,삼,샘,샴,섐,섬,셈,셤,솀,솜,솸,쇔,쇰,숌,숨,쉄,쉠,쉼,슘,슴,싐,심
    09,17,삽,샙,샵,섑,섭,셉,셥,솁,솝,솹,쇕,쇱,숍,숩,쉅,쉡,쉽,슙,습,싑,십
    09,18,삾,샚,샶,섒,섮,셊,셦,솂,솞,솺,쇖,쇲,숎,숪,쉆,쉢,쉾,슚,슶,싒,싮
    09,19,삿,샛,샷,섓,섯,셋,셧,솃,솟,솻,쇗,쇳,숏,숫,쉇,쉣,쉿,슛,슷,싓,싯
    09,20,샀,샜,샸,섔,섰,셌,셨,솄,솠,솼,쇘,쇴,숐,숬,쉈,쉤,슀,슜,슸,싔,싰
    09,21,상,생,샹,섕,성,셍,셩,솅,송,솽,쇙,쇵,숑,숭,쉉,쉥,슁,슝,승,싕,싱
    09,22,샂,샞,샺,섖,섲,셎,셪,솆,솢,솾,쇚,쇶,숒,숮,쉊,쉦,슂,슞,슺,싖,싲
    09,23,샃,샟,샻,섗,섳,셏,셫,솇,솣,솿,쇛,쇷,숓,숯,쉋,쉧,슃,슟,슻,싗,싳
    09,24,샄,샠,샼,섘,섴,셐,셬,솈,솤,쇀,쇜,쇸,숔,숰,쉌,쉨,슄,슠,슼,싘,싴
    09,25,샅,샡,샽,섙,섵,셑,셭,솉,솥,쇁,쇝,쇹,숕,숱,쉍,쉩,슅,슡,슽,싙,싵
    09,26,샆,샢,샾,섚,섶,셒,셮,솊,솦,쇂,쇞,쇺,숖,숲,쉎,쉪,슆,슢,슾,싚,싶
    09,27,샇,샣,샿,섛,섷,셓,셯,솋,솧,쇃,쇟,쇻,숗,숳,쉏,쉫,슇,슣,슿,싛,싷
    10,00,싸,쌔,쌰,썌,써,쎄,쎠,쎼,쏘,쏴,쐐,쐬,쑈,쑤,쒀,쒜,쒸,쓔,쓰,씌,씨
    10,01,싹,쌕,쌱,썍,썩,쎅,쎡,쎽,쏙,쏵,쐑,쐭,쑉,쑥,쒁,쒝,쒹,쓕,쓱,씍,씩
    10,02,싺,쌖,쌲,썎,썪,쎆,쎢,쎾,쏚,쏶,쐒,쐮,쑊,쑦,쒂,쒞,쒺,쓖,쓲,씎,씪
    10,03,싻,쌗,쌳,썏,썫,쎇,쎣,쎿,쏛,쏷,쐓,쐯,쑋,쑧,쒃,쒟,쒻,쓗,쓳,씏,씫
    10,04,싼,쌘,쌴,썐,썬,쎈,쎤,쏀,쏜,쏸,쐔,쐰,쑌,쑨,쒄,쒠,쒼,쓘,쓴,씐,씬
    10,05,싽,쌙,쌵,썑,썭,쎉,쎥,쏁,쏝,쏹,쐕,쐱,쑍,쑩,쒅,쒡,쒽,쓙,쓵,씑,씭
    10,06,싾,쌚,쌶,썒,썮,쎊,쎦,쏂,쏞,쏺,쐖,쐲,쑎,쑪,쒆,쒢,쒾,쓚,쓶,씒,씮
    10,07,싿,쌛,쌷,썓,썯,쎋,쎧,쏃,쏟,쏻,쐗,쐳,쑏,쑫,쒇,쒣,쒿,쓛,쓷,씓,씯
    10,08,쌀,쌜,쌸,썔,썰,쎌,쎨,쏄,쏠,쏼,쐘,쐴,쑐,쑬,쒈,쒤,쓀,쓜,쓸,씔,씰
    10,09,쌁,쌝,쌹,썕,썱,쎍,쎩,쏅,쏡,쏽,쐙,쐵,쑑,쑭,쒉,쒥,쓁,쓝,쓹,씕,씱
    10,10,쌂,쌞,쌺,썖,썲,쎎,쎪,쏆,쏢,쏾,쐚,쐶,쑒,쑮,쒊,쒦,쓂,쓞,쓺,씖,씲
    10,11,쌃,쌟,쌻,썗,썳,쎏,쎫,쏇,쏣,쏿,쐛,쐷,쑓,쑯,쒋,쒧,쓃,쓟,쓻,씗,씳
    10,12,쌄,쌠,쌼,썘,썴,쎐,쎬,쏈,쏤,쐀,쐜,쐸,쑔,쑰,쒌,쒨,쓄,쓠,쓼,씘,씴
    10,13,쌅,쌡,쌽,썙,썵,쎑,쎭,쏉,쏥,쐁,쐝,쐹,쑕,쑱,쒍,쒩,쓅,쓡,쓽,씙,씵
    10,14,쌆,쌢,쌾,썚,썶,쎒,쎮,쏊,쏦,쐂,쐞,쐺,쑖,쑲,쒎,쒪,쓆,쓢,쓾,씚,씶
    10,15,쌇,쌣,쌿,썛,썷,쎓,쎯,쏋,쏧,쐃,쐟,쐻,쑗,쑳,쒏,쒫,쓇,쓣,쓿,씛,씷
    10,16,쌈,쌤,썀,썜,썸,쎔,쎰,쏌,쏨,쐄,쐠,쐼,쑘,쑴,쒐,쒬,쓈,쓤,씀,씜,씸
    10,17,쌉,쌥,썁,썝,썹,쎕,쎱,쏍,쏩,쐅,쐡,쐽,쑙,쑵,쒑,쒭,쓉,쓥,씁,씝,씹
    10,18,쌊,쌦,썂,썞,썺,쎖,쎲,쏎,쏪,쐆,쐢,쐾,쑚,쑶,쒒,쒮,쓊,쓦,씂,씞,씺
    10,19,쌋,쌧,썃,썟,썻,쎗,쎳,쏏,쏫,쐇,쐣,쐿,쑛,쑷,쒓,쒯,쓋,쓧,씃,씟,씻
    10,20,쌌,쌨,썄,썠,썼,쎘,쎴,쏐,쏬,쐈,쐤,쑀,쑜,쑸,쒔,쒰,쓌,쓨,씄,씠,씼
    10,21,쌍,쌩,썅,썡,썽,쎙,쎵,쏑,쏭,쐉,쐥,쑁,쑝,쑹,쒕,쒱,쓍,쓩,씅,씡,씽
    10,22,쌎,쌪,썆,썢,썾,쎚,쎶,쏒,쏮,쐊,쐦,쑂,쑞,쑺,쒖,쒲,쓎,쓪,씆,씢,씾
    10,23,쌏,쌫,썇,썣,썿,쎛,쎷,쏓,쏯,쐋,쐧,쑃,쑟,쑻,쒗,쒳,쓏,쓫,씇,씣,씿
    10,24,쌐,쌬,썈,썤,쎀,쎜,쎸,쏔,쏰,쐌,쐨,쑄,쑠,쑼,쒘,쒴,쓐,쓬,씈,씤,앀
    10,25,쌑,쌭,썉,썥,쎁,쎝,쎹,쏕,쏱,쐍,쐩,쑅,쑡,쑽,쒙,쒵,쓑,쓭,씉,씥,앁
    10,26,쌒,쌮,썊,썦,쎂,쎞,쎺,쏖,쏲,쐎,쐪,쑆,쑢,쑾,쒚,쒶,쓒,쓮,씊,씦,앂
    10,27,쌓,쌯,썋,썧,쎃,쎟,쎻,쏗,쏳,쐏,쐫,쑇,쑣,쑿,쒛,쒷,쓓,쓯,씋,씧,앃
    11,00,아,애,야,얘,어,에,여,예,오,와,왜,외,요,우,워,웨,위,유,으,의,이
    11,01,악,액,약,얙,억,엑,역,옉,옥,왁,왝,왹,욕,욱,웍,웩,윅,육,윽,읙,익
    11,02,앆,앢,앾,얚,얶,엒,엮,옊,옦,왂,왞,왺,욖,욲,웎,웪,윆,윢,윾,읚,읶
    11,03,앇,앣,앿,얛,얷,엓,엯,옋,옧,왃,왟,왻,욗,욳,웏,웫,윇,윣,윿,읛,읷
    11,04,안,앤,얀,얜,언,엔,연,옌,온,완,왠,왼,욘,운,원,웬,윈,윤,은,읜,인
    11,05,앉,앥,얁,얝,얹,엕,엱,옍,옩,왅,왡,왽,욙,욵,웑,웭,윉,윥,읁,읝,읹
    11,06,않,앦,얂,얞,얺,엖,엲,옎,옪,왆,왢,왾,욚,욶,웒,웮,윊,윦,읂,읞,읺
    11,07,앋,앧,얃,얟,얻,엗,엳,옏,옫,왇,왣,왿,욛,욷,웓,웯,윋,윧,읃,읟,읻
    11,08,알,앨,얄,얠,얼,엘,열,옐,올,왈,왤,욀,욜,울,월,웰,윌,율,을,읠,일
    11,09,앍,앩,얅,얡,얽,엙,엵,옑,옭,왉,왥,욁,욝,욹,웕,웱,윍,윩,읅,읡,읽
    11,10,앎,앪,얆,얢,얾,엚,엶,옒,옮,왊,왦,욂,욞,욺,웖,웲,윎,윪,읆,읢,읾
    11,11,앏,앫,얇,얣,얿,엛,엷,옓,옯,왋,왧,욃,욟,욻,웗,웳,윏,윫,읇,읣,읿
    11,12,앐,앬,얈,얤,엀,엜,엸,옔,옰,왌,왨,욄,욠,욼,웘,웴,윐,윬,읈,읤,잀
    11,13,앑,앭,얉,얥,엁,엝,엹,옕,옱,왍,왩,욅,욡,욽,웙,웵,윑,윭,읉,읥,잁
    11,14,앒,앮,얊,얦,엂,엞,엺,옖,옲,왎,왪,욆,욢,욾,웚,웶,윒,윮,읊,읦,잂
    11,15,앓,앯,얋,얧,엃,엟,엻,옗,옳,왏,왫,욇,욣,욿,웛,웷,윓,윯,읋,읧,잃
    11,16,암,앰,얌,얨,엄,엠,염,옘,옴,왐,왬,욈,욤,움,웜,웸,윔,윰,음,읨,임
    11,17,압,앱,얍,얩,업,엡,엽,옙,옵,왑,왭,욉,욥,웁,웝,웹,윕,윱,읍,읩,입
    11,18,앖,앲,얎,얪,없,엢,엾,옚,옶,왒,왮,욊,욦,웂,웞,웺,윖,윲,읎,읪,잆
    11,19,앗,앳,얏,얫,엇,엣,엿,옛,옷,왓,왯,욋,욧,웃,웟,웻,윗,윳,읏,읫,잇
    11,20,았,앴,얐,얬,었,엤,였,옜,옸,왔,왰,욌,욨,웄,웠,웼,윘,윴,읐,읬,있
    11,21,앙,앵,양,얭,엉,엥,영,옝,옹,왕,왱,욍,용,웅,웡,웽,윙,융,응,읭,잉
    11,22,앚,앶,얒,얮,엊,엦,옂,옞,옺,왖,왲,욎,욪,웆,웢,웾,윚,윶,읒,읮,잊
    11,23,앛,앷,얓,얯,엋,엧,옃,옟,옻,왗,왳,욏,욫,웇,웣,웿,윛,윷,읓,읯,잋
    11,24,앜,앸,얔,얰,엌,엨,옄,옠,옼,왘,왴,욐,욬,웈,웤,윀,윜,윸,읔,읰,잌
    11,25,앝,앹,얕,얱,엍,엩,옅,옡,옽,왙,왵,욑,욭,웉,웥,윁,윝,윹,읕,읱,잍
    11,26,앞,앺,얖,얲,엎,엪,옆,옢,옾,왚,왶,욒,욮,웊,웦,윂,윞,윺,읖,읲,잎
    11,27,앟,앻,얗,얳,엏,엫,옇,옣,옿,왛,왷,욓,욯,웋,웧,윃,윟,윻,읗,읳,잏
    12,00,자,재,쟈,쟤,저,제,져,졔,조,좌,좨,죄,죠,주,줘,줴,쥐,쥬,즈,즤,지
    12,01,작,잭,쟉,쟥,적,젝,젹,졕,족,좍,좩,죅,죡,죽,줙,줵,쥑,쥭,즉,즥,직
    12,02,잒,잮,쟊,쟦,젂,젞,젺,졖,졲,좎,좪,죆,죢,죾,줚,줶,쥒,쥮,즊,즦,짂
    12,03,잓,잯,쟋,쟧,젃,젟,젻,졗,졳,좏,좫,죇,죣,죿,줛,줷,쥓,쥯,즋,즧,짃
    12,04,잔,잰,쟌,쟨,전,젠,젼,졘,존,좐,좬,죈,죤,준,줜,줸,쥔,쥰,즌,즨,진
    12,05,잕,잱,쟍,쟩,젅,젡,젽,졙,졵,좑,좭,죉,죥,줁,줝,줹,쥕,쥱,즍,즩,짅
    12,06,잖,잲,쟎,쟪,젆,젢,젾,졚,졶,좒,좮,죊,죦,줂,줞,줺,쥖,쥲,즎,즪,짆
    12,07,잗,잳,쟏,쟫,젇,젣,젿,졛,졷,좓,좯,죋,죧,줃,줟,줻,쥗,쥳,즏,즫,짇
    12,08,잘,잴,쟐,쟬,절,젤,졀,졜,졸,좔,좰,죌,죨,줄,줠,줼,쥘,쥴,즐,즬,질
    12,09,잙,잵,쟑,쟭,젉,젥,졁,졝,졹,좕,좱,죍,죩,줅,줡,줽,쥙,쥵,즑,즭,짉
    12,10,잚,잶,쟒,쟮,젊,젦,졂,졞,졺,좖,좲,죎,죪,줆,줢,줾,쥚,쥶,즒,즮,짊
    12,11,잛,잷,쟓,쟯,젋,젧,졃,졟,졻,좗,좳,죏,죫,줇,줣,줿,쥛,쥷,즓,즯,짋
    12,12,잜,잸,쟔,쟰,젌,젨,졄,졠,졼,좘,좴,죐,죬,줈,줤,쥀,쥜,쥸,즔,즰,짌
    12,13,잝,잹,쟕,쟱,젍,젩,졅,졡,졽,좙,좵,죑,죭,줉,줥,쥁,쥝,쥹,즕,즱,짍
    12,14,잞,잺,쟖,쟲,젎,젪,졆,졢,졾,좚,좶,죒,죮,줊,줦,쥂,쥞,쥺,즖,즲,짎
    12,15,잟,잻,쟗,쟳,젏,젫,졇,졣,졿,좛,좷,죓,죯,줋,줧,쥃,쥟,쥻,즗,즳,짏
    12,16,잠,잼,쟘,쟴,점,젬,졈,졤,좀,좜,좸,죔,죰,줌,줨,쥄,쥠,쥼,즘,즴,짐
    12,17,잡,잽,쟙,쟵,접,젭,졉,졥,좁,좝,좹,죕,죱,줍,줩,쥅,쥡,쥽,즙,즵,집
    12,18,잢,잾,쟚,쟶,젒,젮,졊,졦,좂,좞,좺,죖,죲,줎,줪,쥆,쥢,쥾,즚,즶,짒
    12,19,잣,잿,쟛,쟷,젓,젯,졋,졧,좃,좟,좻,죗,죳,줏,줫,쥇,쥣,쥿,즛,즷,짓
    12,20,잤,쟀,쟜,쟸,젔,젰,졌,졨,좄,좠,좼,죘,죴,줐,줬,쥈,쥤,즀,즜,즸,짔
    12,21,장,쟁,쟝,쟹,정,젱,졍,졩,종,좡,좽,죙,죵,중,줭,쥉,쥥,즁,증,즹,징
    12,22,잦,쟂,쟞,쟺,젖,젲,졎,졪,좆,좢,좾,죚,죶,줒,줮,쥊,쥦,즂,즞,즺,짖
    12,23,잧,쟃,쟟,쟻,젗,젳,졏,졫,좇,좣,좿,죛,죷,줓,줯,쥋,쥧,즃,즟,즻,짗
    12,24,잨,쟄,쟠,쟼,젘,젴,졐,졬,좈,좤,죀,죜,죸,줔,줰,쥌,쥨,즄,즠,즼,짘
    12,25,잩,쟅,쟡,쟽,젙,젵,졑,졭,좉,좥,죁,죝,죹,줕,줱,쥍,쥩,즅,즡,즽,짙
    12,26,잪,쟆,쟢,쟾,젚,젶,졒,졮,좊,좦,죂,죞,죺,줖,줲,쥎,쥪,즆,즢,즾,짚
    12,27,잫,쟇,쟣,쟿,젛,젷,졓,졯,좋,좧,죃,죟,죻,줗,줳,쥏,쥫,즇,즣,즿,짛
    13,00,짜,째,쨔,쨰,쩌,쩨,쪄,쪠,쪼,쫘,쫴,쬐,쬬,쭈,쭤,쮀,쮜,쮸,쯔,쯰,찌
    13,01,짝,짹,쨕,쨱,쩍,쩩,쪅,쪡,쪽,쫙,쫵,쬑,쬭,쭉,쭥,쮁,쮝,쮹,쯕,쯱,찍
    13,02,짞,짺,쨖,쨲,쩎,쩪,쪆,쪢,쪾,쫚,쫶,쬒,쬮,쭊,쭦,쮂,쮞,쮺,쯖,쯲,찎
    13,03,짟,짻,쨗,쨳,쩏,쩫,쪇,쪣,쪿,쫛,쫷,쬓,쬯,쭋,쭧,쮃,쮟,쮻,쯗,쯳,찏
    13,04,짠,짼,쨘,쨴,쩐,쩬,쪈,쪤,쫀,쫜,쫸,쬔,쬰,쭌,쭨,쮄,쮠,쮼,쯘,쯴,찐
    13,05,짡,짽,쨙,쨵,쩑,쩭,쪉,쪥,쫁,쫝,쫹,쬕,쬱,쭍,쭩,쮅,쮡,쮽,쯙,쯵,찑
    13,06,짢,짾,쨚,쨶,쩒,쩮,쪊,쪦,쫂,쫞,쫺,쬖,쬲,쭎,쭪,쮆,쮢,쮾,쯚,쯶,찒
    13,07,짣,짿,쨛,쨷,쩓,쩯,쪋,쪧,쫃,쫟,쫻,쬗,쬳,쭏,쭫,쮇,쮣,쮿,쯛,쯷,찓
    13,08,짤,쨀,쨜,쨸,쩔,쩰,쪌,쪨,쫄,쫠,쫼,쬘,쬴,쭐,쭬,쮈,쮤,쯀,쯜,쯸,찔
    13,09,짥,쨁,쨝,쨹,쩕,쩱,쪍,쪩,쫅,쫡,쫽,쬙,쬵,쭑,쭭,쮉,쮥,쯁,쯝,쯹,찕
    13,10,짦,쨂,쨞,쨺,쩖,쩲,쪎,쪪,쫆,쫢,쫾,쬚,쬶,쭒,쭮,쮊,쮦,쯂,쯞,쯺,찖
    13,11,짧,쨃,쨟,쨻,쩗,쩳,쪏,쪫,쫇,쫣,쫿,쬛,쬷,쭓,쭯,쮋,쮧,쯃,쯟,쯻,찗
    13,12,짨,쨄,쨠,쨼,쩘,쩴,쪐,쪬,쫈,쫤,쬀,쬜,쬸,쭔,쭰,쮌,쮨,쯄,쯠,쯼,찘
    13,13,짩,쨅,쨡,쨽,쩙,쩵,쪑,쪭,쫉,쫥,쬁,쬝,쬹,쭕,쭱,쮍,쮩,쯅,쯡,쯽,찙
    13,14,짪,쨆,쨢,쨾,쩚,쩶,쪒,쪮,쫊,쫦,쬂,쬞,쬺,쭖,쭲,쮎,쮪,쯆,쯢,쯾,찚
    13,15,짫,쨇,쨣,쨿,쩛,쩷,쪓,쪯,쫋,쫧,쬃,쬟,쬻,쭗,쭳,쮏,쮫,쯇,쯣,쯿,찛
    13,16,짬,쨈,쨤,쩀,쩜,쩸,쪔,쪰,쫌,쫨,쬄,쬠,쬼,쭘,쭴,쮐,쮬,쯈,쯤,찀,찜
    13,17,짭,쨉,쨥,쩁,쩝,쩹,쪕,쪱,쫍,쫩,쬅,쬡,쬽,쭙,쭵,쮑,쮭,쯉,쯥,찁,찝
    13,18,짮,쨊,쨦,쩂,쩞,쩺,쪖,쪲,쫎,쫪,쬆,쬢,쬾,쭚,쭶,쮒,쮮,쯊,쯦,찂,찞
    13,19,짯,쨋,쨧,쩃,쩟,쩻,쪗,쪳,쫏,쫫,쬇,쬣,쬿,쭛,쭷,쮓,쮯,쯋,쯧,찃,찟
    13,20,짰,쨌,쨨,쩄,쩠,쩼,쪘,쪴,쫐,쫬,쬈,쬤,쭀,쭜,쭸,쮔,쮰,쯌,쯨,찄,찠
    13,21,짱,쨍,쨩,쩅,쩡,쩽,쪙,쪵,쫑,쫭,쬉,쬥,쭁,쭝,쭹,쮕,쮱,쯍,쯩,찅,찡
    13,22,짲,쨎,쨪,쩆,쩢,쩾,쪚,쪶,쫒,쫮,쬊,쬦,쭂,쭞,쭺,쮖,쮲,쯎,쯪,찆,찢
    13,23,짳,쨏,쨫,쩇,쩣,쩿,쪛,쪷,쫓,쫯,쬋,쬧,쭃,쭟,쭻,쮗,쮳,쯏,쯫,찇,찣
    13,24,짴,쨐,쨬,쩈,쩤,쪀,쪜,쪸,쫔,쫰,쬌,쬨,쭄,쭠,쭼,쮘,쮴,쯐,쯬,찈,찤
    13,25,짵,쨑,쨭,쩉,쩥,쪁,쪝,쪹,쫕,쫱,쬍,쬩,쭅,쭡,쭽,쮙,쮵,쯑,쯭,찉,찥
    13,26,짶,쨒,쨮,쩊,쩦,쪂,쪞,쪺,쫖,쫲,쬎,쬪,쭆,쭢,쭾,쮚,쮶,쯒,쯮,찊,찦
    13,27,짷,쨓,쨯,쩋,쩧,쪃,쪟,쪻,쫗,쫳,쬏,쬫,쭇,쭣,쭿,쮛,쮷,쯓,쯯,찋,찧
    14,00,차,채,챠,챼,처,체,쳐,쳬,초,촤,쵀,최,쵸,추,춰,췌,취,츄,츠,츼,치
    14,01,착,책,챡,챽,척,첵,쳑,쳭,촉,촥,쵁,쵝,쵹,축,춱,췍,췩,츅,측,츽,칙
    14,02,찪,챆,챢,챾,첚,첶,쳒,쳮,촊,촦,쵂,쵞,쵺,춖,춲,췎,췪,츆,츢,츾,칚
    14,03,찫,챇,챣,챿,첛,첷,쳓,쳯,촋,촧,쵃,쵟,쵻,춗,춳,췏,췫,츇,츣,츿,칛
    14,04,찬,챈,챤,첀,천,첸,쳔,쳰,촌,촨,쵄,쵠,쵼,춘,춴,췐,췬,츈,츤,칀,친
    14,05,찭,챉,챥,첁,첝,첹,쳕,쳱,촍,촩,쵅,쵡,쵽,춙,춵,췑,췭,츉,츥,칁,칝
    14,06,찮,챊,챦,첂,첞,첺,쳖,쳲,촎,촪,쵆,쵢,쵾,춚,춶,췒,췮,츊,츦,칂,칞
    14,07,찯,챋,챧,첃,첟,첻,쳗,쳳,촏,촫,쵇,쵣,쵿,춛,춷,췓,췯,츋,츧,칃,칟
    14,08,찰,챌,챨,첄,철,첼,쳘,쳴,촐,촬,쵈,쵤,춀,출,춸,췔,췰,츌,츨,칄,칠
    14,09,찱,챍,챩,첅,첡,첽,쳙,쳵,촑,촭,쵉,쵥,춁,춝,춹,췕,췱,츍,츩,칅,칡
    14,10,찲,챎,챪,첆,첢,첾,쳚,쳶,촒,촮,쵊,쵦,춂,춞,춺,췖,췲,츎,츪,칆,칢
    14,11,찳,챏,챫,첇,첣,첿,쳛,쳷,촓,촯,쵋,쵧,춃,춟,춻,췗,췳,츏,츫,칇,칣
    14,12,찴,챐,챬,첈,첤,쳀,쳜,쳸,촔,촰,쵌,쵨,춄,춠,춼,췘,췴,츐,츬,칈,칤
    14,13,찵,챑,챭,첉,첥,쳁,쳝,쳹,촕,촱,쵍,쵩,춅,춡,춽,췙,췵,츑,츭,칉,칥
    14,14,찶,챒,챮,첊,첦,쳂,쳞,쳺,촖,촲,쵎,쵪,춆,춢,춾,췚,췶,츒,츮,칊,칦
    14,15,찷,챓,챯,첋,첧,쳃,쳟,쳻,촗,촳,쵏,쵫,춇,춣,춿,췛,췷,츓,츯,칋,칧
    14,16,참,챔,챰,첌,첨,쳄,쳠,쳼,촘,촴,쵐,쵬,춈,춤,췀,췜,췸,츔,츰,칌,침
    14,17,찹,챕,챱,첍,첩,쳅,쳡,쳽,촙,촵,쵑,쵭,춉,춥,췁,췝,췹,츕,츱,칍,칩
    14,18,찺,챖,챲,첎,첪,쳆,쳢,쳾,촚,촶,쵒,쵮,춊,춦,췂,췞,췺,츖,츲,칎,칪
    14,19,찻,챗,챳,첏,첫,쳇,쳣,쳿,촛,촷,쵓,쵯,춋,춧,췃,췟,췻,츗,츳,칏,칫
    14,20,찼,챘,챴,첐,첬,쳈,쳤,촀,촜,촸,쵔,쵰,춌,춨,췄,췠,췼,츘,츴,칐,칬
    14,21,창,챙,챵,첑,청,쳉,쳥,촁,총,촹,쵕,쵱,춍,충,췅,췡,췽,츙,층,칑,칭
    14,22,찾,챚,챶,첒,첮,쳊,쳦,촂,촞,촺,쵖,쵲,춎,춪,췆,췢,췾,츚,츶,칒,칮
    14,23,찿,챛,챷,첓,첯,쳋,쳧,촃,촟,촻,쵗,쵳,춏,춫,췇,췣,췿,츛,츷,칓,칯
    14,24,챀,챜,챸,첔,첰,쳌,쳨,촄,촠,촼,쵘,쵴,춐,춬,췈,췤,츀,츜,츸,칔,칰
    14,25,챁,챝,챹,첕,첱,쳍,쳩,촅,촡,촽,쵙,쵵,춑,춭,췉,췥,츁,츝,츹,칕,칱
    14,26,챂,챞,챺,첖,첲,쳎,쳪,촆,촢,촾,쵚,쵶,춒,춮,췊,췦,츂,츞,츺,칖,칲
    14,27,챃,챟,챻,첗,첳,쳏,쳫,촇,촣,촿,쵛,쵷,춓,춯,췋,췧,츃,츟,츻,칗,칳
    15,00,카,캐,캬,컈,커,케,켜,켸,코,콰,쾌,쾨,쿄,쿠,쿼,퀘,퀴,큐,크,킈,키
    15,01,칵,캑,캭,컉,컥,켁,켝,켹,콕,콱,쾍,쾩,쿅,쿡,쿽,퀙,퀵,큑,큭,킉,킥
    15,02,칶,캒,캮,컊,컦,켂,켞,켺,콖,콲,쾎,쾪,쿆,쿢,쿾,퀚,퀶,큒,큮,킊,킦
    15,03,칷,캓,캯,컋,컧,켃,켟,켻,콗,콳,쾏,쾫,쿇,쿣,쿿,퀛,퀷,큓,큯,킋,킧
    15,04,칸,캔,캰,컌,컨,켄,켠,켼,콘,콴,쾐,쾬,쿈,쿤,퀀,퀜,퀸,큔,큰,킌,킨
    15,05,칹,캕,캱,컍,컩,켅,켡,켽,콙,콵,쾑,쾭,쿉,쿥,퀁,퀝,퀹,큕,큱,킍,킩
    15,06,칺,캖,캲,컎,컪,켆,켢,켾,콚,콶,쾒,쾮,쿊,쿦,퀂,퀞,퀺,큖,큲,킎,킪
    15,07,칻,캗,캳,컏,컫,켇,켣,켿,콛,콷,쾓,쾯,쿋,쿧,퀃,퀟,퀻,큗,큳,킏,킫
    15,08,칼,캘,캴,컐,컬,켈,켤,콀,콜,콸,쾔,쾰,쿌,쿨,퀄,퀠,퀼,큘,클,킐,킬
    15,09,칽,캙,캵,컑,컭,켉,켥,콁,콝,콹,쾕,쾱,쿍,쿩,퀅,퀡,퀽,큙,큵,킑,킭
    15,10,칾,캚,캶,컒,컮,켊,켦,콂,콞,콺,쾖,쾲,쿎,쿪,퀆,퀢,퀾,큚,큶,킒,킮
    15,11,칿,캛,캷,컓,컯,켋,켧,콃,콟,콻,쾗,쾳,쿏,쿫,퀇,퀣,퀿,큛,큷,킓,킯
    15,12,캀,캜,캸,컔,컰,켌,켨,콄,콠,콼,쾘,쾴,쿐,쿬,퀈,퀤,큀,큜,큸,킔,킰
    15,13,캁,캝,캹,컕,컱,켍,켩,콅,콡,콽,쾙,쾵,쿑,쿭,퀉,퀥,큁,큝,큹,킕,킱
    15,14,캂,캞,캺,컖,컲,켎,켪,콆,콢,콾,쾚,쾶,쿒,쿮,퀊,퀦,큂,큞,큺,킖,킲
    15,15,캃,캟,캻,컗,컳,켏,켫,콇,콣,콿,쾛,쾷,쿓,쿯,퀋,퀧,큃,큟,큻,킗,킳
    15,16,캄,캠,캼,컘,컴,켐,켬,콈,콤,쾀,쾜,쾸,쿔,쿰,퀌,퀨,큄,큠,큼,킘,킴
    15,17,캅,캡,캽,컙,컵,켑,켭,콉,콥,쾁,쾝,쾹,쿕,쿱,퀍,퀩,큅,큡,큽,킙,킵
    15,18,캆,캢,캾,컚,컶,켒,켮,콊,콦,쾂,쾞,쾺,쿖,쿲,퀎,퀪,큆,큢,큾,킚,킶
    15,19,캇,캣,캿,컛,컷,켓,켯,콋,콧,쾃,쾟,쾻,쿗,쿳,퀏,퀫,큇,큣,큿,킛,킷
    15,20,캈,캤,컀,컜,컸,켔,켰,콌,콨,쾄,쾠,쾼,쿘,쿴,퀐,퀬,큈,큤,킀,킜,킸
    15,21,캉,캥,컁,컝,컹,켕,켱,콍,콩,쾅,쾡,쾽,쿙,쿵,퀑,퀭,큉,큥,킁,킝,킹
    15,22,캊,캦,컂,컞,컺,켖,켲,콎,콪,쾆,쾢,쾾,쿚,쿶,퀒,퀮,큊,큦,킂,킞,킺
    15,23,캋,캧,컃,컟,컻,켗,켳,콏,콫,쾇,쾣,쾿,쿛,쿷,퀓,퀯,큋,큧,킃,킟,킻
    15,24,캌,캨,컄,컠,컼,켘,켴,콐,콬,쾈,쾤,쿀,쿜,쿸,퀔,퀰,큌,큨,킄,킠,킼
    15,25,캍,캩,컅,컡,컽,켙,켵,콑,콭,쾉,쾥,쿁,쿝,쿹,퀕,퀱,큍,큩,킅,킡,킽
    15,26,캎,캪,컆,컢,컾,켚,켶,콒,콮,쾊,쾦,쿂,쿞,쿺,퀖,퀲,큎,큪,킆,킢,킾
    15,27,캏,캫,컇,컣,컿,켛,켷,콓,콯,쾋,쾧,쿃,쿟,쿻,퀗,퀳,큏,큫,킇,킣,킿
    16,00,타,태,탸,턔,터,테,텨,톄,토,톼,퇘,퇴,툐,투,퉈,퉤,튀,튜,트,틔,티
    16,01,탁,택,탹,턕,턱,텍,텩,톅,톡,톽,퇙,퇵,툑,툭,퉉,퉥,튁,튝,특,틕,틱
    16,02,탂,탞,탺,턖,턲,텎,텪,톆,톢,톾,퇚,퇶,툒,툮,퉊,퉦,튂,튞,튺,틖,틲
    16,03,탃,탟,탻,턗,턳,텏,텫,톇,톣,톿,퇛,퇷,툓,툯,퉋,퉧,튃,튟,튻,틗,틳
    16,04,탄,탠,탼,턘,턴,텐,텬,톈,톤,퇀,퇜,퇸,툔,툰,퉌,퉨,튄,튠,튼,틘,틴
    16,05,탅,탡,탽,턙,턵,텑,텭,톉,톥,퇁,퇝,퇹,툕,툱,퉍,퉩,튅,튡,튽,틙,틵
    16,06,탆,탢,탾,턚,턶,텒,텮,톊,톦,퇂,퇞,퇺,툖,툲,퉎,퉪,튆,튢,튾,틚,틶
    16,07,탇,탣,탿,턛,턷,텓,텯,톋,톧,퇃,퇟,퇻,툗,툳,퉏,퉫,튇,튣,튿,틛,틷
    16,08,탈,탤,턀,턜,털,텔,텰,톌,톨,퇄,퇠,퇼,툘,툴,퉐,퉬,튈,튤,틀,틜,틸
    16,09,탉,탥,턁,턝,턹,텕,텱,톍,톩,퇅,퇡,퇽,툙,툵,퉑,퉭,튉,튥,틁,틝,틹
    16,10,탊,탦,턂,턞,턺,텖,텲,톎,톪,퇆,퇢,퇾,툚,툶,퉒,퉮,튊,튦,틂,틞,틺
    16,11,탋,탧,턃,턟,턻,텗,텳,톏,톫,퇇,퇣,퇿,툛,툷,퉓,퉯,튋,튧,틃,틟,틻
    16,12,탌,탨,턄,턠,턼,텘,텴,톐,톬,퇈,퇤,툀,툜,툸,퉔,퉰,튌,튨,틄,틠,틼
    16,13,탍,탩,턅,턡,턽,텙,텵,톑,톭,퇉,퇥,툁,툝,툹,퉕,퉱,튍,튩,틅,틡,틽
    16,14,탎,탪,턆,턢,턾,텚,텶,톒,톮,퇊,퇦,툂,툞,툺,퉖,퉲,튎,튪,틆,틢,틾
    16,15,탏,탫,턇,턣,턿,텛,텷,톓,톯,퇋,퇧,툃,툟,툻,퉗,퉳,튏,튫,틇,틣,틿
    16,16,탐,탬,턈,턤,텀,템,텸,톔,톰,퇌,퇨,툄,툠,툼,퉘,퉴,튐,튬,틈,틤,팀
    16,17,탑,탭,턉,턥,텁,텝,텹,톕,톱,퇍,퇩,툅,툡,툽,퉙,퉵,튑,튭,틉,틥,팁
    16,18,탒,탮,턊,턦,텂,텞,텺,톖,톲,퇎,퇪,툆,툢,툾,퉚,퉶,튒,튮,틊,틦,팂
    16,19,탓,탯,턋,턧,텃,텟,텻,톗,톳,퇏,퇫,툇,툣,툿,퉛,퉷,튓,튯,틋,틧,팃
    16,20,탔,탰,턌,턨,텄,텠,텼,톘,톴,퇐,퇬,툈,툤,퉀,퉜,퉸,튔,튰,틌,틨,팄
    16,21,탕,탱,턍,턩,텅,텡,텽,톙,통,퇑,퇭,툉,툥,퉁,퉝,퉹,튕,튱,틍,틩,팅
    16,22,탖,탲,턎,턪,텆,텢,텾,톚,톶,퇒,퇮,툊,툦,퉂,퉞,퉺,튖,튲,틎,틪,팆
    16,23,탗,탳,턏,턫,텇,텣,텿,톛,톷,퇓,퇯,툋,툧,퉃,퉟,퉻,튗,튳,틏,틫,팇
    16,24,탘,탴,턐,턬,텈,텤,톀,톜,톸,퇔,퇰,툌,툨,퉄,퉠,퉼,튘,튴,틐,틬,팈
    16,25,탙,탵,턑,턭,텉,텥,톁,톝,톹,퇕,퇱,툍,툩,퉅,퉡,퉽,튙,튵,틑,틭,팉
    16,26,탚,탶,턒,턮,텊,텦,톂,톞,톺,퇖,퇲,툎,툪,퉆,퉢,퉾,튚,튶,틒,틮,팊
    16,27,탛,탷,턓,턯,텋,텧,톃,톟,톻,퇗,퇳,툏,툫,퉇,퉣,퉿,튛,튷,틓,틯,팋
    17,00,파,패,퍄,퍠,퍼,페,펴,폐,포,퐈,퐤,푀,표,푸,풔,풰,퓌,퓨,프,픠,피
    17,01,팍,팩,퍅,퍡,퍽,펙,펵,폑,폭,퐉,퐥,푁,푝,푹,풕,풱,퓍,퓩,픅,픡,픽
    17,02,팎,팪,퍆,퍢,퍾,펚,펶,폒,폮,퐊,퐦,푂,푞,푺,풖,풲,퓎,퓪,픆,픢,픾
    17,03,팏,팫,퍇,퍣,퍿,펛,펷,폓,폯,퐋,퐧,푃,푟,푻,풗,풳,퓏,퓫,픇,픣,픿
    17,04,판,팬,퍈,퍤,펀,펜,편,폔,폰,퐌,퐨,푄,푠,푼,풘,풴,퓐,퓬,픈,픤,핀
    17,05,팑,팭,퍉,퍥,펁,펝,펹,폕,폱,퐍,퐩,푅,푡,푽,풙,풵,퓑,퓭,픉,픥,핁
    17,06,팒,팮,퍊,퍦,펂,펞,펺,폖,폲,퐎,퐪,푆,푢,푾,풚,풶,퓒,퓮,픊,픦,핂
    17,07,팓,팯,퍋,퍧,펃,펟,펻,폗,폳,퐏,퐫,푇,푣,푿,풛,풷,퓓,퓯,픋,픧,핃
    17,08,팔,팰,퍌,퍨,펄,펠,펼,폘,폴,퐐,퐬,푈,푤,풀,풜,풸,퓔,퓰,플,픨,필
    17,09,팕,팱,퍍,퍩,펅,펡,펽,폙,폵,퐑,퐭,푉,푥,풁,풝,풹,퓕,퓱,픍,픩,핅
    17,10,팖,팲,퍎,퍪,펆,펢,펾,폚,폶,퐒,퐮,푊,푦,풂,풞,풺,퓖,퓲,픎,픪,핆
    17,11,팗,팳,퍏,퍫,펇,펣,펿,폛,폷,퐓,퐯,푋,푧,풃,풟,풻,퓗,퓳,픏,픫,핇
    17,12,팘,팴,퍐,퍬,펈,펤,폀,폜,폸,퐔,퐰,푌,푨,풄,풠,풼,퓘,퓴,픐,픬,핈
    17,13,팙,팵,퍑,퍭,펉,펥,폁,폝,폹,퐕,퐱,푍,푩,풅,풡,풽,퓙,퓵,픑,픭,핉
    17,14,팚,팶,퍒,퍮,펊,펦,폂,폞,폺,퐖,퐲,푎,푪,풆,풢,풾,퓚,퓶,픒,픮,핊
    17,15,팛,팷,퍓,퍯,펋,펧,폃,폟,폻,퐗,퐳,푏,푫,풇,풣,풿,퓛,퓷,픓,픯,핋
    17,16,팜,팸,퍔,퍰,펌,펨,폄,폠,폼,퐘,퐴,푐,푬,품,풤,퓀,퓜,퓸,픔,픰,핌
    17,17,팝,팹,퍕,퍱,펍,펩,폅,폡,폽,퐙,퐵,푑,푭,풉,풥,퓁,퓝,퓹,픕,픱,핍
    17,18,팞,팺,퍖,퍲,펎,펪,폆,폢,폾,퐚,퐶,푒,푮,풊,풦,퓂,퓞,퓺,픖,픲,핎
    17,19,팟,팻,퍗,퍳,펏,펫,폇,폣,폿,퐛,퐷,푓,푯,풋,풧,퓃,퓟,퓻,픗,픳,핏
    17,20,팠,팼,퍘,퍴,펐,펬,폈,폤,퐀,퐜,퐸,푔,푰,풌,풨,퓄,퓠,퓼,픘,픴,핐
    17,21,팡,팽,퍙,퍵,펑,펭,평,폥,퐁,퐝,퐹,푕,푱,풍,풩,퓅,퓡,퓽,픙,픵,핑
    17,22,팢,팾,퍚,퍶,펒,펮,폊,폦,퐂,퐞,퐺,푖,푲,풎,풪,퓆,퓢,퓾,픚,픶,핒
    17,23,팣,팿,퍛,퍷,펓,펯,폋,폧,퐃,퐟,퐻,푗,푳,풏,풫,퓇,퓣,퓿,픛,픷,핓
    17,24,팤,퍀,퍜,퍸,펔,펰,폌,폨,퐄,퐠,퐼,푘,푴,풐,풬,퓈,퓤,픀,픜,픸,핔
    17,25,팥,퍁,퍝,퍹,펕,펱,폍,폩,퐅,퐡,퐽,푙,푵,풑,풭,퓉,퓥,픁,픝,픹,핕
    17,26,팦,퍂,퍞,퍺,펖,펲,폎,폪,퐆,퐢,퐾,푚,푶,풒,풮,퓊,퓦,픂,픞,픺,핖
    17,27,팧,퍃,퍟,퍻,펗,펳,폏,폫,퐇,퐣,퐿,푛,푷,풓,풯,퓋,퓧,픃,픟,픻,핗
    18,00,하,해,햐,햬,허,헤,혀,혜,호,화,홰,회,효,후,훠,훼,휘,휴,흐,희,히
    18,01,학,핵,햑,햭,헉,헥,혁,혝,혹,확,홱,획,횩,훅,훡,훽,휙,휵,흑,흭,힉
    18,02,핚,핶,햒,햮,헊,헦,혂,혞,혺,홖,홲,횎,횪,훆,훢,훾,휚,휶,흒,흮,힊
    18,03,핛,핷,햓,햯,헋,헧,혃,혟,혻,홗,홳,횏,횫,훇,훣,훿,휛,휷,흓,흯,힋
    18,04,한,핸,햔,햰,헌,헨,현,혠,혼,환,홴,횐,횬,훈,훤,휀,휜,휸,흔,흰,힌
    18,05,핝,핹,햕,햱,헍,헩,혅,혡,혽,홙,홵,횑,횭,훉,훥,휁,휝,휹,흕,흱,힍
    18,06,핞,핺,햖,햲,헎,헪,혆,혢,혾,홚,홶,횒,횮,훊,훦,휂,휞,휺,흖,흲,힎
    18,07,핟,핻,햗,햳,헏,헫,혇,혣,혿,홛,홷,횓,횯,훋,훧,휃,휟,휻,흗,흳,힏
    18,08,할,핼,햘,햴,헐,헬,혈,혤,홀,활,홸,횔,횰,훌,훨,휄,휠,휼,흘,흴,힐
    18,09,핡,핽,햙,햵,헑,헭,혉,혥,홁,홝,홹,횕,횱,훍,훩,휅,휡,휽,흙,흵,힑
    18,10,핢,핾,햚,햶,헒,헮,혊,혦,홂,홞,홺,횖,횲,훎,훪,휆,휢,휾,흚,흶,힒
    18,11,핣,핿,햛,햷,헓,헯,혋,혧,홃,홟,홻,횗,횳,훏,훫,휇,휣,휿,흛,흷,힓
    18,12,핤,햀,햜,햸,헔,헰,혌,혨,홄,홠,홼,횘,횴,훐,훬,휈,휤,흀,흜,흸,힔
    18,13,핥,햁,햝,햹,헕,헱,혍,혩,홅,홡,홽,횙,횵,훑,훭,휉,휥,흁,흝,흹,힕
    18,14,핦,햂,햞,햺,헖,헲,혎,혪,홆,홢,홾,횚,횶,훒,훮,휊,휦,흂,흞,흺,힖
    18,15,핧,햃,햟,햻,헗,헳,혏,혫,홇,홣,홿,횛,횷,훓,훯,휋,휧,흃,흟,흻,힗
    18,16,함,햄,햠,햼,험,헴,혐,혬,홈,홤,횀,횜,횸,훔,훰,휌,휨,흄,흠,흼,힘
    18,17,합,햅,햡,햽,헙,헵,협,혭,홉,홥,횁,횝,횹,훕,훱,휍,휩,흅,흡,흽,힙
    18,18,핪,햆,햢,햾,헚,헶,혒,혮,홊,홦,횂,횞,횺,훖,훲,휎,휪,흆,흢,흾,힚
    18,19,핫,햇,햣,햿,헛,헷,혓,혯,홋,홧,횃,횟,횻,훗,훳,휏,휫,흇,흣,흿,힛
    18,20,핬,했,햤,헀,헜,헸,혔,혰,홌,홨,횄,횠,횼,훘,훴,휐,휬,흈,흤,힀,힜
    18,21,항,행,향,헁,헝,헹,형,혱,홍,황,횅,횡,횽,훙,훵,휑,휭,흉,흥,힁,힝
    18,22,핮,햊,햦,헂,헞,헺,혖,혲,홎,홪,횆,횢,횾,훚,훶,휒,휮,흊,흦,힂,힞
    18,23,핯,햋,햧,헃,헟,헻,혗,혳,홏,홫,횇,횣,횿,훛,훷,휓,휯,흋,흧,힃,힟
    18,24,핰,햌,햨,헄,헠,헼,혘,혴,홐,홬,횈,횤,훀,훜,훸,휔,휰,흌,흨,힄,힠
    18,25,핱,햍,햩,헅,헡,헽,혙,혵,홑,홭,횉,횥,훁,훝,훹,휕,휱,흍,흩,힅,힡
    18,26,핲,햎,햪,헆,헢,헾,혚,혶,홒,홮,횊,횦,훂,훞,훺,휖,휲,흎,흪,힆,힢
    18,27,핳,햏,햫,헇,헣,헿,혛,혷,홓,홯,횋,횧,훃,훟,훻,휗,휳,흏,흫,힇,힣

    2017년 1월 21일 토요일

    Excel(엑셀)로 File Debugger(파일 디버거) 만들기 & 유니코드 파일 분석

    옛날 DOS 시절에 사용하던 디버거 프로그램이 없어서 Excel로 만들었다. CPU, O/S, 컴퓨터 언어가 진화하면서 옛날 기계어(어셈블리어)를 사용할 필요가 없어졌다. 고로 CPU 명령어 해석은 불필요하니 파일 데이터만 분석하는 기능만 만들면 된다. Excel의 편리한 인터페이스와 계산 능력을 사용할 수 있어 훨씬 좋은 디버거를 만들 수 있다.





    위 화면은 파일의 일부를 바이트 단위로 읽어 여러 방법으로 해석해서 보여주는 화면이다. 옛날 디버거를 사용해 보고 필요하겠다싶은 해석을 넣었다. 일부 바이트를 수정한 후에 써넣을 수도 있다. 그러니 원본 파일을 이름을 바꿔 보전한 후에 해킹을 해야 한다.

    8비트 정수를 10진수, 16진수, 2진수로 나타낸다. 16진수는 디버거에서 많이 보는 형태이나 별로 쓸모가 없다. 때론 2진수 패턴을 분석할 필요가 많다. 그리고 16비트로 묶어 정수로 볼 필요도 있다. 문자열이 섞인 경우를 보기 위해 7비트 아스키 문자, 16비트 한글 완성형 문자로 묶어 표현한다. 먼저 기록된 바이트를 상위 바이트로 보는 것은 완성형 코드이고, 하위 바이트로 보는 것은 16비트 정수일 때다.

    파일에 따라 때론 32비트 정수, 유니코드 문자 등으로 해석할 필요가 있는데 원리가 같으니 직접 우측 공백에 함수를 이용해 만들어 넣으면 된다. 이런 다양한 해석은 Excel 함수를 이용해서 직접 만들어 넣으면 된다. 





    위 화면은 2개 파일의 헤더부분을 비교할 때 사용하는 화면이다. 같은 종류의 파일은 헤더(머리) 부분의 패턴이 거의 같다. 고로 기준이 되는 파일과 내용에 있어 약간의 차이가 나는 비교 파일에서 그 차이 나는 부분만 찾아 표시해 줘서 파일 구조 해석에 도움을 준다.

    위와 같이 화면을 만든 후에 다음 코드를 모듈에 복사해 넣어 버튼에 연결시킨다. 화면에서와 같이 정확한 행렬(가로/세로) 위치에 만들어야한다. 그림에서와 같은 Test 파일을 만들어 동작 시험을 해 본다.


    Public Sub ReadFile()
        '주소, 값 영역 지우기
        Range("A5:B5").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.ClearContents
        '파일 이름, 주소, 읽을 수량 지정
        Filename = Worksheets("디버거").Cells(1, 4).Value
        ByteAddress = Worksheets("디버거").Cells(2, 4).Value
        ByteCount = Worksheets("디버거").Cells(3, 4).Value
        Dim ByteValue As Byte
        '내용 읽어서 배치, EOF보다는 LOF를 쓰는 것이 깔끔하다.
        Open Filename For Binary As 1
            For i = 0 To ByteCount - 1
                If ByteAddress + i > LOF(1) Then Exit For
                Get #1, ByteAddress + i, ByteValue
                Worksheets("디버거").Cells(5 + i, 1).Value = ByteAddress + i
                Worksheets("디버거").Cells(5 + i, 2).Value = ByteValue
            Next i
        Close 1
        '다음 주소 자동 계산
        Worksheets("디버거").Cells(2, 4).Value = ByteAddress + ByteCount
    End Sub


    Public Sub WriteFile()
        Filename = Worksheets("디버거").Cells(1, 4).Value
        Dim ByteValue As Byte
        Open Filename For Binary As 1
            i = 0
            ByteAddress = Worksheets("디버거").Cells(5 + i, 1).Value
            Do While ByteAddress <> ""
                ByteValue = Worksheets("디버거").Cells(5 + i, 2).Value
                Put #1, ByteAddress, ByteValue
                i = i + 1
                ByteAddress = Worksheets("디버거").Cells(5 + i, 1).Value
            Loop
        Close 1
    End Sub


    Public Sub CompareFile()
        '주소, 값 영역 지우기
        Range("A3:B3").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.ClearContents
        Range("I3:J3").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.ClearContents
        '파일 이름 지정
        FileName1 = Worksheets("비교").Cells(1, 4).Value
        FileName2 = Worksheets("비교").Cells(1, 12).Value
        '파일 길이 비교
        Dim ByteValue1 As Byte
        Dim ByteValue2 As Byte
        Open FileName1 For Binary As 1
        Open FileName2 For Binary As 2
        filelength1 = LOF(1)
        filelength2 = LOF(2)
        MaxLength = filelength1
        minlength = filelength2
        If filelength1 < filelength2 Then
            MaxLength = filelength2
            minlength = filelength1
        End If
        '헤더 부분 비교 차이 나는 부분만 표시
        r = 3
        For i = 1 To minlength
            Get #1, i, ByteValue1
            Get #2, i, ByteValue2
            If ByteValue1 <> ByteValue2 Then
                Worksheets("비교").Cells(r, 1).Value = i
                Worksheets("비교").Cells(r, 2).Value = ByteValue1
                Worksheets("비교").Cells(r, 9).Value = i
                Worksheets("비교").Cells(r, 10).Value = ByteValue2
                r = r + 1
            End If
        Next i
        For i = minlength + 1 To MaxLength
            If filelength1 = MaxLength Then
                Get #1, i, ByteValue1
                Worksheets("비교").Cells(r, 1).Value = i
                Worksheets("비교").Cells(r, 2).Value = ByteValue1
            End If
            If filelength2 = MaxLength Then
                Get #2, i, ByteValue2
                Worksheets("비교").Cells(r, 9).Value = i
                Worksheets("비교").Cells(r, 10).Value = ByteValue2
            End If
            r = r + 1
        Next i
        Close
    End Sub


    이걸 왜 만들었냐고? 옛날 게임 데이터 파일 해킹하려고. 요즘 것은 암호화 되어 있다.

    자 이제 어떻게 사용하는지 보도록 하자. 사용법을 알면 감이 잡힐 것이다. 노트패드에서 숫자, 알파벳, 한글의 시작과 끝 문자를 입력해 넣고 4가지 표준으로 저장한다.


    1. ANSI(기존표준) = 영문 아스키 + 한글 완성형(한글 부족) + MS CP949(한글 보충)
    2. 유니코드(UTF-8) = 통신 목적으로 사용하며 기존 영문 아스키와 호환을 유지한다.
    3. 유니코드(UTF-16 little Endian) = 16비트로 세계 문자 표현. 하위 바이트 먼저 기록.
    4. 유니코드(UTF-16 Big Endian) = 16비트로 세계 문자 표현. 상위 바이트 먼저 기록.


    ※ Endian(엔디안)은 여러 바이트가 하나의 의미를 나타낼 때 바이트 저장 순서를 말한다. 예를 들어 123(백이십삼)을 저장(기록)할 때 기계에 따라 1, 2, 3 순서와 3, 2, 1 순서로 저장해서 구분이 필요한 것이다. IBM PC의 Intel CPU는 3, 2, 1 순서로 기록한다. 옛날 Mac PC 등 다른 컴퓨터 CPU는 1, 2, 3 순서로 기록할 수도 있다.





    기존 파일 형식에선 문자 파일의 경우 아무런 예고도 없이 내용이 나온다. 왜냐하면 파일 확장자에 *.txt로 문자 파일임을 나타내기 때문이다. 계산해 보면 0~9, a~z, A~Z까지 숫자가 순서대로 할당되어 있다. 한글 완성형의 경우는 2바이트를 묶어 해석해야 한다. 이 때 상위/하위 바이트를 앞에 것으로 하느냐 뒤의 것으로 하느냐 정해야 하는데 문자의 경우 먼저 나온 것을 보고 뒤의 것을 해석하기 때문에 앞의 것을 상위 바이트로 본다. 16비트 정수 해석은 여기선 필요 없으니 무시한다.

    ※ 완성형의 경우 시작과 끝 글자의 순서가 뒤죽박죽인데 띨띨하게 완성형 만들 때 모든 한글을 반영하지 않았다. 약 2천 개만 등록했던 것이다. 그래서 MS사(社)에서 불쌍하다며 CP949란 보충 코드를 만들어 주다보니 이렇게 되었다.

    유니코드 중에 UTF-8은 기존의 ANSI 문서 파일이 아님을 나타내기 위해서 첫 3바이트가 헤더 형태로 나온다. 그 다음은 아스키와 호환성을 유지하니 같다. 한글 코드가 3바이트로 할당 되어 있는데 이건 가변길이 코드이다. 1번 바이트의 특징을 보고 2번 바이트를 이어 해석하고, 2번째 바이트를 보고 3번 바이트를 이어 해석하는 방식이다. 그러다 보니 한글이 3바이트나 차지하게 되었다. 이건 유니코드를 공부해야 해석이 가능하다. 비트 패턴을 보고 해석해야 한다.

    유니코드 중에 UTF-16 Little Endian 순서가 PC에서 표준인 것 같다. PC에선 16비트 정수의 경우 하위 바이트를 먼저 저장한다. 고로 문자 코드는 16비트 정수 해석과 정확히 일치한다. 기존 ANSI 파일이 아니며 UTF-16 Little Endian이란 헤더가 나온다. UTF-16 Big Endian과 정확히 반대 순서이다. 아스키(ASCII) 코드는 8비트에서 상위 바이트에 0을 더해 16비트로 그대로 확장했고, 한글의 경우 16비트 정수 해석 값이 그대로 문자 코드가 된다.

    여기서 UTF-16 Big Endian과 UTF-8 가변 길이 코드를 비교해 보자. Big Endian은 우리가 숫자를 나열하는 방식과 같다. 좌측에 먼저 적는 숫자가 높은 자릿수이다. 낮은 자릿수는 가장 늦게 우측에 적는다. 사람이 기록하는 순서와 컴퓨터가 기록하는 순서가 같다. 이 방식이 인간에겐 더 자연스러운 순서이다.

    가 = 1010 1100 - 0000 0000 = 1110 1010 - 1011 0000 - 1000 0000
    힣 = 1101 0111 - 1010 0011 = 1110 1101 - 1001 1110 - 1010 0011

    이제 알겠는가? UTF-8은 비트의 앞을 보고 뒤를 이어 해석하는 방식이다. 비트의 나머지 부분을 묶어 연결해서 UTF-16으로 만들어서 문자처리를 한다. 왜 이 짓을 하느냐? 아스키 코드와 호환성을 위해서다. 아스키 코드엔 옛날 구식 기계 동작을 제어하는 코드가 포함 되어 있어 그 코드를 피하기 위함이다. 일단 UTF-16으로 바꾸면 아주 쉽게 간단한 계산으로 한글의 초성, 중성, 종성을 분리해 낼 수 있다. 완성형은 이게 불가능하다.

    첫 바이트 1110은 총 3바이트란 의미다. 1이 3번 나온다. 0은 그냥 구분용이다. 같은 방식으로 110일 경우는 총 2바이트, 11110일 경우는 총 4바이트란 의미다. 뒤에 이어지는 바이트 모두 10으로 시작한다. 만약 첫 비트가 0이면 그건 아스키 코드와 같다는 뜻이다.

    대충 사용법은 알겠지? 16비트 정수 해석 순서를 바꾸려면 빈 셀에 계산식만 추가로 더 입력해 넣으면 된다.








    인간처럼 똥 많이 싸고 쓰레기 많이 버리는 동물도 없을 거다.
    불필요하게 많이 먹고, 불필요하게 많이 생산한다.
    살기 위해 돈 벌어야 하고, 돈 벌려고 쓰레기를 만들어야 한다.
    미래엔 진짜 1명만 일하고 9명이 백수인 세상이 올 것이다.
    로봇(기계+컴퓨터)에 의한 복지국가 외엔 답이 없을 것이다.

    2017년 1월 20일 금요일

    ASCII(아스키) 코드 이해하기

    미국정보교환표준부호(American Standard Code for Information Interchange; ASCII) : 1967년 표준 제정, 1986년 마지막 개정

    이 코드를 이해하려면 먼저 타자기 시대를 이해해야 한다. 년도를 보면 타자기를 사용하던 시절에 제정하여, 컴퓨터 화면 출력 시절에 마지막 개정을 한다. 타자기인데 사람이 치는 것이 아니라 기계가 통신을 해서 자동으로 치는 타자기이다. 그래서 제어 명령(통신에 필요한 명령 + 타자기를 움직이는 명령)이 함께 들어 있다. 컴퓨터와 프린터도 이 아스키 코드로 통신할 수 있다. 프린터는 자동 타자기에 해당한다.


    이진법
    십육진법
    십진법
    약자
    설명이 아닌 이름
    엉터리 설명에 대한 추측
    000 0000
    00
    0
    NUL
    Null Character
    공백 문자(문자가 아니라 그냥 없음 표시)
    000 0001
    01
    1
    SOH
    Start of Header
    헤더 시작
    000 0010
    02
    2
    STX
    Start of Text
    본문 시작 & 헤더 종료
    000 0011
    03
    3
    ETX
    End of Text
    본문 종료
    000 0100
    04
    4
    EOT
    End of Transmission
    전송 종료 & 통신 초기화
    000 0101
    05
    5
    ENQ
    Enquiry
    응답하라!
    000 0110
    06
    6
    ACK
    Acknowledgment
    긍정응답 = OK/Yes/그렇다!
    000 0111
    07
    7
    BEL
    Bell
    경고음(삐~)
    000 1000
    08
    8
    BS
    Backspace
    백스페이스 = 커서 좌측 이동
    000 1001
    09
    9
    HT
    Horizontal Tab
    수평 탭 = 커서 우측 몇 칸 이동
    000 1010
    0A
    10
    LF
    Line feed
    개행 = 종이 한 줄 정도 올리기
    000 1011
    0B
    11
    VT
    Vertical Tab
    수직 탭 = 커서 아래 몇 칸 이동
    000 1100
    0C
    12
    FF
    Form feed
    다음 페이지 = 종이 넘기기
    000 1101
    0D
    13
    CR
    Carriage return
    복귀 = 커서 좌측 끝으로 이동
    000 1110
    0E
    14
    SO
    Shift Out
    확장문자(외국문자/그림문자) 시작
    000 1111
    0F
    15
    SI
    Shift In
    확장문자(외국문자/그림문자) 종료
    001 0000
    10
    16
    DLE
    Data Link Escape
    전송 제어 확장(탈출? 다른 방식으로 통신?)
    001 0001
    11
    17
    DC1
    Device Control 1
    장치 제어 1 (다른 장치가 있다면)
    001 0010
    12
    18
    DC2
    Device Control 2
    장치 제어 2
    001 0011
    13
    19
    DC3
    Device Control 3
    장치 제어 3
    001 0100
    14
    20
    DC4
    Device Control 4
    장치 제어 4
    001 0101
    15
    21
    NAK
    Negative Acknowledgement
    부정응답 = NG/No/아니다!
    001 0110
    16
    22
    SYN
    Synchronous idle
    동기 = 상대와 대화하기 위해 기다림?
    001 0111
    17
    23
    ETB
    End of Transmission Block
    전송블록 종료
    001 1000
    18
    24
    CAN
    Cancel
    무시 = 방금 전송한 것 무시해라?
    001 1001
    19
    25
    EM
    End of Medium
    매체 종료(중간 종료?)
    001 1010
    1A
    26
    SUB
    Substitute
    치환 = 잘 못 전송한 것 대체?
    001 1011
    1B
    27
    ESC
    Escape
    제어기능 추가(탈출? 다른 제어 명령 사용?)
    001 1100
    1C
    28
    FS
    File Separator
    파일경계 할당 = 파일 구분자
    001 1101
    1D
    29
    GS
    Group Separator
    레코드 그룹 경계 할당 = 그룹 구분자
    001 1110
    1E
    30
    RS
    Record Separator
    레코드 경계 할당 = 레코드 구분자
    001 1111
    1F
    31
    US
    Unit Separator
    장치 경계 할당(단위 구분자?)
    이 구간은 화면에 표시 가능한 문자
    알파벳 + 숫자 + 기호
    111 1111
    7F
    127
    DEL
    Delete
    삭제 = 잘 못 전송한 것 삭제?


    위에서 보통 Null이라고 하면 정말 아무 것도 없는 것을 말한다. 즉, 숫자 0도 아니고 문자 공백도 아니라 정말 무(無)이다. 

    1~6은 통신에 관한 것이다. 통신 시작한다. 끝낸다. 응답하라. 그런 내용이다.

    7~15은 타자기를 제어하는 명령이다. 소리를 내거나. 문자를 두드리는 타자기 머리(케리지, 컴퓨터에선 커서)와 종이 넘기는 바퀴를 제어하는 것이다. 머리를 좌우로 한 칸 움직이거나 종이를 한 줄, 한 페이지 넘기는 것 등이다. 고로 컴퓨터에서 Enter는 LF+CR = CR+LF 조합이다.

    16~20은 뭔가 다른 기계 장치가 연결 되어 있으면 그걸 제어하려는 명령이다. Escape는 탈출을 의미한다. 보통 무조건 빠져나가는 것을 의미한다. 헌데 이걸 중간에 다른 명령 삽입이라고 해석할 수도 있다. 보통 이런 코드 바로 뒤에 오는 코드는 다른 의미로 해석한다.

    21~31, 127은 나중에 추가한 것 같다. 왜냐하면 보통 짝을 지어 나타나는 것들은 함께 제정한 것인데 나중에 추가한 것들은 땜질을 한 것이라 위치가 추가한 순서가 된다. 뭔가 통신 장애에 대한 대책과 메모리 기능이 있는 장치(프린터)에서만 통하는 명령이다. 이미 종이에 찍은 것을 취소하거나 지울 수는 없기 때문이다. 프린터는 자체 메모리가 있어 내용을 적당히 받은 후에 출력을 한다.


    2진법
    십육진법
    십진법
    모양
    010 0000
    20
    32
    공백
    010 0001
    21
    33
    !
    010 0010
    22
    34
    "
    010 0011
    23
    35
    #
    010 0100
    24
    36
    $
    010 0101
    25
    37
    %
    010 0110
    26
    38
    &
    010 0111
    27
    39
    '
    010 1000
    28
    40
    (
    010 1001
    29
    41
    )
    010 1010
    2A
    42
    *
    010 1011
    2B
    43
    +
    010 1100
    2C
    44
    ,
    010 1101
    2D
    45
    -
    010 1110
    2E
    46
    .
    010 1111
    2F
    47
    /
    011 0000
    30
    48
    0
    011 0001
    31
    49
    1
    011 0010
    32
    50
    2
    011 0011
    33
    51
    3
    011 0100
    34
    52
    4
    011 0101
    35
    53
    5
    011 0110
    36
    54
    6
    011 0111
    37
    55
    7
    011 1000
    38
    56
    8
    011 1001
    39
    57
    9
    011 1010
    3A
    58
    :
    011 1011
    3B
    59
    ;
    011 1100
    3C
    60
    <
    011 1101
    3D
    61
    =
    011 1110
    3E
    62
    >
    011 1111
    3F
    63
    ?
    100 0000
    40
    64
    @
    100 0001
    41
    65
    A
    100 0010
    42
    66
    B
    100 0011
    43
    67
    C
    100 0100
    44
    68
    D
    100 0101
    45
    69
    E
    100 0110
    46
    70
    F
    100 0111
    47
    71
    G
    100 1000
    48
    72
    H
    100 1001
    49
    73
    I
    100 1010
    4A
    74
    J
    100 1011
    4B
    75
    K
    100 1100
    4C
    76
    L
    100 1101
    4D
    77
    M
    100 1110
    4E
    78
    N
    100 1111
    4F
    79
    O
    101 0000
    50
    80
    P
    101 0001
    51
    81
    Q
    101 0010
    52
    82
    R
    101 0011
    53
    83
    S
    101 0100
    54
    84
    T
    101 0101
    55
    85
    U
    101 0110
    56
    86
    V
    101 0111
    57
    87
    W
    101 1000
    58
    88
    X
    101 1001
    59
    89
    Y
    101 1010
    5A
    90
    Z
    101 1011
    5B
    91
    [
    101 1100
    5C
    92
    \
    101 1101
    5D
    93
    ]
    101 1110
    5E
    94
    ^
    101 1111
    5F
    95
    _
    110 0000
    60
    96
    `
    110 0001
    61
    97
    a
    110 0010
    62
    98
    b
    110 0011
    63
    99
    c
    110 0100
    64
    100
    d
    110 0101
    65
    101
    e
    110 0110
    66
    102
    f
    110 0111
    67
    103
    g
    110 1000
    68
    104
    h
    110 1001
    69
    105
    i
    110 1010
    6A
    106
    j
    110 1011
    6B
    107
    k
    110 1100
    6C
    108
    l
    110 1101
    6D
    109
    m
    110 1110
    6E
    110
    n
    110 1111
    6F
    111
    o
    111 0000
    70
    112
    p
    111 0001
    71
    113
    q
    111 0010
    72
    114
    r
    111 0011
    73
    115
    s
    111 0100
    74
    116
    t
    111 0101
    75
    117
    u
    111 0110
    76
    118
    v
    111 0111
    77
    119
    w
    111 1000
    78
    120
    x
    111 1001
    79
    121
    y
    111 1010
    7A
    122
    z
    111 1011
    7B
    123
    {
    111 1100
    7C
    124
    |
    111 1101
    7D
    125
    }
    111 1110
    7E
    126
    ~


    위의 코드는 종이에(모니터 화면에, 프린터에) 출력할 수 있는 문자이다. 로마 알파벳이 지금의 영어 알파벳의 원조인데 미국에서 만든 표준이라 다른 유럽 언어는 표현할 수 없다. 컴퓨터는 미국에서 먼저 만들었으니 할 수 없다. 그래서 유럽 (8비트로 확장) → 일본(16비트로 확장) → 한국(일본 모방) 등 자기 문자를 표현하려는 노력이 있었다.

    아스키와 호환성을 유지하려고 제어 문자를 피하다 보니 코드가 꼬이고 지저분해졌다. 그래서 새로 깔끔하게 세계 문자코드를 만들자는 것이 유니코드인데 인터넷 통신에선 아스키와의 호환성 유지를 하려고 다시 지저분한 버전(UTF-8)을 만들어 사용하고 있다. 컴퓨터 내부에서 처리만 하려면 깔끔한 버전(UTF-16)을 사용하는 게 좋다.




    한국은 법은 잘 만들었는데 사람이 지키지 않는다고 한다. 내 생각엔 개소리다.
    기계는 잘 못 만들면 제대로 동작하지 않는다. 법도 마찬가지다.
    대체로 법을 만드는 사람들은 두루뭉술하고 애매모호하게 만든다. 개구멍이 있다.
    그래서 법을 코에 걸면 코걸이 귀에 걸면 귀걸이라고 한다.
    정신 나간 대통령 탄핵도 못 하는 나라다. 판사 필요 없으니 배심원제 하자.