40de726537cab8ca7bbfa39d9bf435800ea1198b
[unifont.git] / hangul / unifontksx
1 #!/usr/bin/perl
2 #
3 # This script searches for Unicode code points in a Unifont .hex file
4 # that appear in the Hangul syllables as defined in the Republic of
5 # Korea standard KS X 1001:1992.  The output is the subset of the
6 # .hex file that contains these syllables.  This allows focus on
7 # the design of Hangul Syllables that are in actual modern usage.
8 # The older KS X 1001:1992 standard defines 2,350 syllables that
9 # are in modern use.  The Unicode Standard defines # 11,172 Hangul
10 # Syllables--all possible combinations of modern letters.  Most
11 # of these are not used.
12 #
13 # Author: Paul Hardy, January 2012
14 #
15 # Copyright (C) 2012, 2013 Paul Hardy
16 #
17 # LICENSE:
18 #
19 #    This program is free software: you can redistribute it and/or modify
20 #    it under the terms of the GNU General Public License as published by
21 #    the Free Software Foundation, either version 2 of the License, or
22 #    (at your option) any later version.
23 #  
24 #    This program is distributed in the hope that it will be useful,
25 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
26 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
27 #    GNU General Public License for more details.
28 #  
29 #    You should have received a copy of the GNU General Public License
30 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
31 #
32
33 @ksx = (
34    # KS X 1001:1992 16-01..16-94
35    'AC00:', 'AC01:', 'AC04:', 'AC07:', 'AC08:', 'AC09:', 'AC0A:', 'AC10:',
36    'AC11:', 'AC12:', 'AC13:', 'AC14:', 'AC15:', 'AC16:', 'AC17:', 'AC19:',
37    'AC1A:', 'AC1B:', 'AC1C:', 'AC1D:', 'AC20:', 'AC24:', 'AC2C:', 'AC2D:',
38    'AC2F:', 'AC30:', 'AC31:', 'AC38:', 'AC39:', 'AC3C:', 'AC40:', 'AC4B:',
39    'AC4D:', 'AC54:', 'AC58:', 'AC5C:', 'AC70:', 'AC71:', 'AC74:', 'AC77:',
40    'AC78:', 'AC7A:', 'AC80:', 'AC81:', 'AC83:', 'AC84:', 'AC85:', 'AC86:',
41    'AC89:', 'AC8A:', 'AC8B:', 'AC8C:', 'AC90:', 'AC94:', 'AC9C:', 'AC9D:',
42    'AC9F:', 'ACA0:', 'ACA1:', 'ACA8:', 'ACA9:', 'ACAA:', 'ACAC:', 'ACAF:',
43    'ACB0:', 'ACB8:', 'ACB9:', 'ACBB:', 'ACBC:', 'ACBD:', 'ACC1:', 'ACC4:',
44    'ACC8:', 'ACCC:', 'ACD5:', 'ACD7:', 'ACE0:', 'ACE1:', 'ACE4:', 'ACE7:',
45    'ACE8:', 'ACEA:', 'ACEC:', 'ACEF:', 'ACF0:', 'ACF1:', 'ACF3:', 'ACF5:',
46    'ACF6:', 'ACFC:', 'ACFD:', 'AD00:', 'AD04:', 'AD06:',
47
48    # KS X 1001:1992 17-01..17-94
49    'AD0C:', 'AD0D:', 'AD0F:', 'AD11:', 'AD18:', 'AD1C:', 'AD20:', 'AD29:',
50    'AD2C:', 'AD2D:', 'AD34:', 'AD35:', 'AD38:', 'AD3C:', 'AD44:', 'AD45:',
51    'AD47:', 'AD49:', 'AD50:', 'AD54:', 'AD58:', 'AD61:', 'AD63:', 'AD6C:',
52    'AD6D:', 'AD70:', 'AD73:', 'AD74:', 'AD75:', 'AD76:', 'AD7B:', 'AD7C:',
53    'AD7D:', 'AD7F:', 'AD81:', 'AD82:', 'AD88:', 'AD89:', 'AD8C:', 'AD90:',
54    'AD9C:', 'AD9D:', 'ADA4:', 'ADB7:', 'ADC0:', 'ADC1:', 'ADC4:', 'ADC8:',
55    'ADD0:', 'ADD1:', 'ADD3:', 'ADDC:', 'ADE0:', 'ADE4:', 'ADF8:', 'ADF9:',
56    'ADFC:', 'ADFF:', 'AE00:', 'AE01:', 'AE08:', 'AE09:', 'AE0B:', 'AE0D:',
57    'AE14:', 'AE30:', 'AE31:', 'AE34:', 'AE37:', 'AE38:', 'AE3A:', 'AE40:',
58    'AE41:', 'AE43:', 'AE45:', 'AE46:', 'AE4A:', 'AE4C:', 'AE4D:', 'AE4E:',
59    'AE50:', 'AE54:', 'AE56:', 'AE5C:', 'AE5D:', 'AE5F:', 'AE60:', 'AE61:',
60    'AE65:', 'AE68:', 'AE69:', 'AE6C:', 'AE70:', 'AE78:',
61
62    # KS X 1001:1992 18-01..18-94
63    'AE79:', 'AE7B:', 'AE7C:', 'AE7D:', 'AE84:', 'AE85:', 'AE8C:', 'AEBC:',
64    'AEBD:', 'AEBE:', 'AEC0:', 'AEC4:', 'AECC:', 'AECD:', 'AECF:', 'AED0:',
65    'AED1:', 'AED8:', 'AED9:', 'AEDC:', 'AEE8:', 'AEEB:', 'AEED:', 'AEF4:',
66    'AEF8:', 'AEFC:', 'AF07:', 'AF08:', 'AF0D:', 'AF10:', 'AF2C:', 'AF2D:',
67    'AF30:', 'AF32:', 'AF34:', 'AF3C:', 'AF3D:', 'AF3F:', 'AF41:', 'AF42:',
68    'AF43:', 'AF48:', 'AF49:', 'AF50:', 'AF5C:', 'AF5D:', 'AF64:', 'AF65:',
69    'AF79:', 'AF80:', 'AF84:', 'AF88:', 'AF90:', 'AF91:', 'AF95:', 'AF9C:',
70    'AFB8:', 'AFB9:', 'AFBC:', 'AFC0:', 'AFC7:', 'AFC8:', 'AFC9:', 'AFCB:',
71    'AFCD:', 'AFCE:', 'AFD4:', 'AFDC:', 'AFE8:', 'AFE9:', 'AFF0:', 'AFF1:',
72    'AFF4:', 'AFF8:', 'B000:', 'B001:', 'B004:', 'B00C:', 'B010:', 'B014:',
73    'B01C:', 'B01D:', 'B028:', 'B044:', 'B045:', 'B048:', 'B04A:', 'B04C:',
74    'B04E:', 'B053:', 'B054:', 'B055:', 'B057:', 'B059:',
75
76    # KS X 1001:1992 19-01..19-94
77    'B05D:', 'B07C:', 'B07D:', 'B080:', 'B084:', 'B08C:', 'B08D:', 'B08F:',
78    'B091:', 'B098:', 'B099:', 'B09A:', 'B09C:', 'B09F:', 'B0A0:', 'B0A1:',
79    'B0A2:', 'B0A8:', 'B0A9:', 'B0AB:', 'B0AC:', 'B0AD:', 'B0AE:', 'B0AF:',
80    'B0B1:', 'B0B3:', 'B0B4:', 'B0B5:', 'B0B8:', 'B0BC:', 'B0C4:', 'B0C5:',
81    'B0C7:', 'B0C8:', 'B0C9:', 'B0D0:', 'B0D1:', 'B0D4:', 'B0D8:', 'B0E0:',
82    'B0E5:', 'B108:', 'B109:', 'B10B:', 'B10C:', 'B110:', 'B112:', 'B113:',
83    'B118:', 'B119:', 'B11B:', 'B11C:', 'B11D:', 'B123:', 'B124:', 'B125:',
84    'B128:', 'B12C:', 'B134:', 'B135:', 'B137:', 'B138:', 'B139:', 'B140:',
85    'B141:', 'B144:', 'B148:', 'B150:', 'B151:', 'B154:', 'B155:', 'B158:',
86    'B15C:', 'B160:', 'B178:', 'B179:', 'B17C:', 'B180:', 'B182:', 'B188:',
87    'B189:', 'B18B:', 'B18D:', 'B192:', 'B193:', 'B194:', 'B198:', 'B19C:',
88    'B1A8:', 'B1CC:', 'B1D0:', 'B1D4:', 'B1DC:', 'B1DD:',
89
90    # KS X 1001:1992 20-01..20-94
91    'B1DF:', 'B1E8:', 'B1E9:', 'B1EC:', 'B1F0:', 'B1F9:', 'B1FB:', 'B1FD:',
92    'B204:', 'B205:', 'B208:', 'B20B:', 'B20C:', 'B214:', 'B215:', 'B217:',
93    'B219:', 'B220:', 'B234:', 'B23C:', 'B258:', 'B25C:', 'B260:', 'B268:',
94    'B269:', 'B274:', 'B275:', 'B27C:', 'B284:', 'B285:', 'B289:', 'B290:',
95    'B291:', 'B294:', 'B298:', 'B299:', 'B29A:', 'B2A0:', 'B2A1:', 'B2A3:',
96    'B2A5:', 'B2A6:', 'B2AA:', 'B2AC:', 'B2B0:', 'B2B4:', 'B2C8:', 'B2C9:',
97    'B2CC:', 'B2D0:', 'B2D2:', 'B2D8:', 'B2D9:', 'B2DB:', 'B2DD:', 'B2E2:',
98    'B2E4:', 'B2E5:', 'B2E6:', 'B2E8:', 'B2EB:', 'B2EC:', 'B2ED:', 'B2EE:',
99    'B2EF:', 'B2F3:', 'B2F4:', 'B2F5:', 'B2F7:', 'B2F8:', 'B2F9:', 'B2FA:',
100    'B2FB:', 'B2FF:', 'B300:', 'B301:', 'B304:', 'B308:', 'B310:', 'B311:',
101    'B313:', 'B314:', 'B315:', 'B31C:', 'B354:', 'B355:', 'B356:', 'B358:',
102    'B35B:', 'B35C:', 'B35E:', 'B35F:', 'B364:', 'B365:',
103
104    # KS X 1001:1992 21-01..21-94
105    'B367:', 'B369:', 'B36B:', 'B36E:', 'B370:', 'B371:', 'B374:', 'B378:',
106    'B380:', 'B381:', 'B383:', 'B384:', 'B385:', 'B38C:', 'B390:', 'B394:',
107    'B3A0:', 'B3A1:', 'B3A8:', 'B3AC:', 'B3C4:', 'B3C5:', 'B3C8:', 'B3CB:',
108    'B3CC:', 'B3CE:', 'B3D0:', 'B3D4:', 'B3D5:', 'B3D7:', 'B3D9:', 'B3DB:',
109    'B3DD:', 'B3E0:', 'B3E4:', 'B3E8:', 'B3FC:', 'B410:', 'B418:', 'B41C:',
110    'B420:', 'B428:', 'B429:', 'B42B:', 'B434:', 'B450:', 'B451:', 'B454:',
111    'B458:', 'B460:', 'B461:', 'B463:', 'B465:', 'B46C:', 'B480:', 'B488:',
112    'B49D:', 'B4A4:', 'B4A8:', 'B4AC:', 'B4B5:', 'B4B7:', 'B4B9:', 'B4C0:',
113    'B4C4:', 'B4C8:', 'B4D0:', 'B4D5:', 'B4DC:', 'B4DD:', 'B4E0:', 'B4E3:',
114    'B4E4:', 'B4E6:', 'B4EC:', 'B4ED:', 'B4EF:', 'B4F1:', 'B4F8:', 'B514:',
115    'B515:', 'B518:', 'B51B:', 'B51C:', 'B524:', 'B525:', 'B527:', 'B528:',
116    'B529:', 'B52A:', 'B530:', 'B531:', 'B534:', 'B538:',
117
118    # KS X 1001:1992 22-01..22-94
119    'B540:', 'B541:', 'B543:', 'B544:', 'B545:', 'B54B:', 'B54C:', 'B54D:',
120    'B550:', 'B554:', 'B55C:', 'B55D:', 'B55F:', 'B560:', 'B561:', 'B5A0:',
121    'B5A1:', 'B5A4:', 'B5A8:', 'B5AA:', 'B5AB:', 'B5B0:', 'B5B1:', 'B5B3:',
122    'B5B4:', 'B5B5:', 'B5BB:', 'B5BC:', 'B5BD:', 'B5C0:', 'B5C4:', 'B5CC:',
123    'B5CD:', 'B5CF:', 'B5D0:', 'B5D1:', 'B5D8:', 'B5EC:', 'B610:', 'B611:',
124    'B614:', 'B618:', 'B625:', 'B62C:', 'B634:', 'B648:', 'B664:', 'B668:',
125    'B69C:', 'B69D:', 'B6A0:', 'B6A4:', 'B6AB:', 'B6AC:', 'B6B1:', 'B6D4:',
126    'B6F0:', 'B6F4:', 'B6F8:', 'B700:', 'B701:', 'B705:', 'B728:', 'B729:',
127    'B72C:', 'B72F:', 'B730:', 'B738:', 'B739:', 'B73B:', 'B744:', 'B748:',
128    'B74C:', 'B754:', 'B755:', 'B760:', 'B764:', 'B768:', 'B770:', 'B771:',
129    'B773:', 'B775:', 'B77C:', 'B77D:', 'B780:', 'B784:', 'B78C:', 'B78D:',
130    'B78F:', 'B790:', 'B791:', 'B792:', 'B796:', 'B797:',
131
132    # KS X 1001:1992 23-01..23-94
133    'B798:', 'B799:', 'B79C:', 'B7A0:', 'B7A8:', 'B7A9:', 'B7AB:', 'B7AC:',
134    'B7AD:', 'B7B4:', 'B7B5:', 'B7B8:', 'B7C7:', 'B7C9:', 'B7EC:', 'B7ED:',
135    'B7F0:', 'B7F4:', 'B7FC:', 'B7FD:', 'B7FF:', 'B800:', 'B801:', 'B807:',
136    'B808:', 'B809:', 'B80C:', 'B810:', 'B818:', 'B819:', 'B81B:', 'B81D:',
137    'B824:', 'B825:', 'B828:', 'B82C:', 'B834:', 'B835:', 'B837:', 'B838:',
138    'B839:', 'B840:', 'B844:', 'B851:', 'B853:', 'B85C:', 'B85D:', 'B860:',
139    'B864:', 'B86C:', 'B86D:', 'B86F:', 'B871:', 'B878:', 'B87C:', 'B88D:',
140    'B8A8:', 'B8B0:', 'B8B4:', 'B8B8:', 'B8C0:', 'B8C1:', 'B8C3:', 'B8C5:',
141    'B8CC:', 'B8D0:', 'B8D4:', 'B8DD:', 'B8DF:', 'B8E1:', 'B8E8:', 'B8E9:',
142    'B8EC:', 'B8F0:', 'B8F8:', 'B8F9:', 'B8FB:', 'B8FD:', 'B904:', 'B918:',
143    'B920:', 'B93C:', 'B93D:', 'B940:', 'B944:', 'B94C:', 'B94F:', 'B951:',
144    'B958:', 'B959:', 'B95C:', 'B960:', 'B968:', 'B969:',
145
146    # KS X 1001:1992 24-01..24-94
147    'B96B:', 'B96D:', 'B974:', 'B975:', 'B978:', 'B97C:', 'B984:', 'B985:',
148    'B987:', 'B989:', 'B98A:', 'B98D:', 'B98E:', 'B9AC:', 'B9AD:', 'B9B0:',
149    'B9B4:', 'B9BC:', 'B9BD:', 'B9BF:', 'B9C1:', 'B9C8:', 'B9C9:', 'B9CC:',
150    'B9CE:', 'B9CF:', 'B9D0:', 'B9D1:', 'B9D2:', 'B9D8:', 'B9D9:', 'B9DB:',
151    'B9DD:', 'B9DE:', 'B9E1:', 'B9E3:', 'B9E4:', 'B9E5:', 'B9E8:', 'B9EC:',
152    'B9F4:', 'B9F5:', 'B9F7:', 'B9F8:', 'B9F9:', 'B9FA:', 'BA00:', 'BA01:',
153    'BA08:', 'BA15:', 'BA38:', 'BA39:', 'BA3C:', 'BA40:', 'BA42:', 'BA48:',
154    'BA49:', 'BA4B:', 'BA4D:', 'BA4E:', 'BA53:', 'BA54:', 'BA55:', 'BA58:',
155    'BA5C:', 'BA64:', 'BA65:', 'BA67:', 'BA68:', 'BA69:', 'BA70:', 'BA71:',
156    'BA74:', 'BA78:', 'BA83:', 'BA84:', 'BA85:', 'BA87:', 'BA8C:', 'BAA8:',
157    'BAA9:', 'BAAB:', 'BAAC:', 'BAB0:', 'BAB2:', 'BAB8:', 'BAB9:', 'BABB:',
158    'BABD:', 'BAC4:', 'BAC8:', 'BAD8:', 'BAD9:', 'BAFC:',
159
160    # KS X 1001:1992 25-01..25-94
161    'BB00:', 'BB04:', 'BB0D:', 'BB0F:', 'BB11:', 'BB18:', 'BB1C:', 'BB20:',
162    'BB29:', 'BB2B:', 'BB34:', 'BB35:', 'BB36:', 'BB38:', 'BB3B:', 'BB3C:',
163    'BB3D:', 'BB3E:', 'BB44:', 'BB45:', 'BB47:', 'BB49:', 'BB4D:', 'BB4F:',
164    'BB50:', 'BB54:', 'BB58:', 'BB61:', 'BB63:', 'BB6C:', 'BB88:', 'BB8C:',
165    'BB90:', 'BBA4:', 'BBA8:', 'BBAC:', 'BBB4:', 'BBB7:', 'BBC0:', 'BBC4:',
166    'BBC8:', 'BBD0:', 'BBD3:', 'BBF8:', 'BBF9:', 'BBFC:', 'BBFF:', 'BC00:',
167    'BC02:', 'BC08:', 'BC09:', 'BC0B:', 'BC0C:', 'BC0D:', 'BC0F:', 'BC11:',
168    'BC14:', 'BC15:', 'BC16:', 'BC17:', 'BC18:', 'BC1B:', 'BC1C:', 'BC1D:',
169    'BC1E:', 'BC1F:', 'BC24:', 'BC25:', 'BC27:', 'BC29:', 'BC2D:', 'BC30:',
170    'BC31:', 'BC34:', 'BC38:', 'BC40:', 'BC41:', 'BC43:', 'BC44:', 'BC45:',
171    'BC49:', 'BC4C:', 'BC4D:', 'BC50:', 'BC5D:', 'BC84:', 'BC85:', 'BC88:',
172    'BC8B:', 'BC8C:', 'BC8E:', 'BC94:', 'BC95:', 'BC97:',
173
174    # KS X 1001:1992 26-01..26-94
175    'BC99:', 'BC9A:', 'BCA0:', 'BCA1:', 'BCA4:', 'BCA7:', 'BCA8:', 'BCB0:',
176    'BCB1:', 'BCB3:', 'BCB4:', 'BCB5:', 'BCBC:', 'BCBD:', 'BCC0:', 'BCC4:',
177    'BCCD:', 'BCCF:', 'BCD0:', 'BCD1:', 'BCD5:', 'BCD8:', 'BCDC:', 'BCF4:',
178    'BCF5:', 'BCF6:', 'BCF8:', 'BCFC:', 'BD04:', 'BD05:', 'BD07:', 'BD09:',
179    'BD10:', 'BD14:', 'BD24:', 'BD2C:', 'BD40:', 'BD48:', 'BD49:', 'BD4C:',
180    'BD50:', 'BD58:', 'BD59:', 'BD64:', 'BD68:', 'BD80:', 'BD81:', 'BD84:',
181    'BD87:', 'BD88:', 'BD89:', 'BD8A:', 'BD90:', 'BD91:', 'BD93:', 'BD95:',
182    'BD99:', 'BD9A:', 'BD9C:', 'BDA4:', 'BDB0:', 'BDB8:', 'BDD4:', 'BDD5:',
183    'BDD8:', 'BDDC:', 'BDE9:', 'BDF0:', 'BDF4:', 'BDF8:', 'BE00:', 'BE03:',
184    'BE05:', 'BE0C:', 'BE0D:', 'BE10:', 'BE14:', 'BE1C:', 'BE1D:', 'BE1F:',
185    'BE44:', 'BE45:', 'BE48:', 'BE4C:', 'BE4E:', 'BE54:', 'BE55:', 'BE57:',
186    'BE59:', 'BE5A:', 'BE5B:', 'BE60:', 'BE61:', 'BE64:',
187
188    # KS X 1001:1992 27-01..27-94
189    'BE68:', 'BE6A:', 'BE70:', 'BE71:', 'BE73:', 'BE74:', 'BE75:', 'BE7B:',
190    'BE7C:', 'BE7D:', 'BE80:', 'BE84:', 'BE8C:', 'BE8D:', 'BE8F:', 'BE90:',
191    'BE91:', 'BE98:', 'BE99:', 'BEA8:', 'BED0:', 'BED1:', 'BED4:', 'BED7:',
192    'BED8:', 'BEE0:', 'BEE3:', 'BEE4:', 'BEE5:', 'BEEC:', 'BF01:', 'BF08:',
193    'BF09:', 'BF18:', 'BF19:', 'BF1B:', 'BF1C:', 'BF1D:', 'BF40:', 'BF41:',
194    'BF44:', 'BF48:', 'BF50:', 'BF51:', 'BF55:', 'BF94:', 'BFB0:', 'BFC5:',
195    'BFCC:', 'BFCD:', 'BFD0:', 'BFD4:', 'BFDC:', 'BFDF:', 'BFE1:', 'C03C:',
196    'C051:', 'C058:', 'C05C:', 'C060:', 'C068:', 'C069:', 'C090:', 'C091:',
197    'C094:', 'C098:', 'C0A0:', 'C0A1:', 'C0A3:', 'C0A5:', 'C0AC:', 'C0AD:',
198    'C0AF:', 'C0B0:', 'C0B3:', 'C0B4:', 'C0B5:', 'C0B6:', 'C0BC:', 'C0BD:',
199    'C0BF:', 'C0C0:', 'C0C1:', 'C0C5:', 'C0C8:', 'C0C9:', 'C0CC:', 'C0D0:',
200    'C0D8:', 'C0D9:', 'C0DB:', 'C0DC:', 'C0DD:', 'C0E4:',
201
202    # KS X 1001:1992 28-01..28-94
203    'C0E5:', 'C0E8:', 'C0EC:', 'C0F4:', 'C0F5:', 'C0F7:', 'C0F9:', 'C100:',
204    'C104:', 'C108:', 'C110:', 'C115:', 'C11C:', 'C11D:', 'C11E:', 'C11F:',
205    'C120:', 'C123:', 'C124:', 'C126:', 'C127:', 'C12C:', 'C12D:', 'C12F:',
206    'C130:', 'C131:', 'C136:', 'C138:', 'C139:', 'C13C:', 'C140:', 'C148:',
207    'C149:', 'C14B:', 'C14C:', 'C14D:', 'C154:', 'C155:', 'C158:', 'C15C:',
208    'C164:', 'C165:', 'C167:', 'C168:', 'C169:', 'C170:', 'C174:', 'C178:',
209    'C185:', 'C18C:', 'C18D:', 'C18E:', 'C190:', 'C194:', 'C196:', 'C19C:',
210    'C19D:', 'C19F:', 'C1A1:', 'C1A5:', 'C1A8:', 'C1A9:', 'C1AC:', 'C1B0:',
211    'C1BD:', 'C1C4:', 'C1C8:', 'C1CC:', 'C1D4:', 'C1D7:', 'C1D8:', 'C1E0:',
212    'C1E4:', 'C1E8:', 'C1F0:', 'C1F1:', 'C1F3:', 'C1FC:', 'C1FD:', 'C200:',
213    'C204:', 'C20C:', 'C20D:', 'C20F:', 'C211:', 'C218:', 'C219:', 'C21C:',
214    'C21F:', 'C220:', 'C228:', 'C229:', 'C22B:', 'C22D:',
215
216    # KS X 1001:1992 29-01..29-94
217    'C22F:', 'C231:', 'C232:', 'C234:', 'C248:', 'C250:', 'C251:', 'C254:',
218    'C258:', 'C260:', 'C265:', 'C26C:', 'C26D:', 'C270:', 'C274:', 'C27C:',
219    'C27D:', 'C27F:', 'C281:', 'C288:', 'C289:', 'C290:', 'C298:', 'C29B:',
220    'C29D:', 'C2A4:', 'C2A5:', 'C2A8:', 'C2AC:', 'C2AD:', 'C2B4:', 'C2B5:',
221    'C2B7:', 'C2B9:', 'C2DC:', 'C2DD:', 'C2E0:', 'C2E3:', 'C2E4:', 'C2EB:',
222    'C2EC:', 'C2ED:', 'C2EF:', 'C2F1:', 'C2F6:', 'C2F8:', 'C2F9:', 'C2FB:',
223    'C2FC:', 'C300:', 'C308:', 'C309:', 'C30C:', 'C30D:', 'C313:', 'C314:',
224    'C315:', 'C318:', 'C31C:', 'C324:', 'C325:', 'C328:', 'C329:', 'C345:',
225    'C368:', 'C369:', 'C36C:', 'C370:', 'C372:', 'C378:', 'C379:', 'C37C:',
226    'C37D:', 'C384:', 'C388:', 'C38C:', 'C3C0:', 'C3D8:', 'C3D9:', 'C3DC:',
227    'C3DF:', 'C3E0:', 'C3E2:', 'C3E8:', 'C3E9:', 'C3ED:', 'C3F4:', 'C3F5:',
228    'C3F8:', 'C408:', 'C410:', 'C424:', 'C42C:', 'C430:',
229
230    # KS X 1001:1992 30-01..30-94
231    'C434:', 'C43C:', 'C43D:', 'C448:', 'C464:', 'C465:', 'C468:', 'C46C:',
232    'C474:', 'C475:', 'C479:', 'C480:', 'C494:', 'C49C:', 'C4B8:', 'C4BC:',
233    'C4E9:', 'C4F0:', 'C4F1:', 'C4F4:', 'C4F8:', 'C4FA:', 'C4FF:', 'C500:',
234    'C501:', 'C50C:', 'C510:', 'C514:', 'C51C:', 'C528:', 'C529:', 'C52C:',
235    'C530:', 'C538:', 'C539:', 'C53B:', 'C53D:', 'C544:', 'C545:', 'C548:',
236    'C549:', 'C54A:', 'C54C:', 'C54D:', 'C54E:', 'C553:', 'C554:', 'C555:',
237    'C557:', 'C558:', 'C559:', 'C55D:', 'C55E:', 'C560:', 'C561:', 'C564:',
238    'C568:', 'C570:', 'C571:', 'C573:', 'C574:', 'C575:', 'C57C:', 'C57D:',
239    'C580:', 'C584:', 'C587:', 'C58C:', 'C58D:', 'C58F:', 'C591:', 'C595:',
240    'C597:', 'C598:', 'C59C:', 'C5A0:', 'C5A9:', 'C5B4:', 'C5B5:', 'C5B8:',
241    'C5B9:', 'C5BB:', 'C5BC:', 'C5BD:', 'C5BE:', 'C5C4:', 'C5C5:', 'C5C6:',
242    'C5C7:', 'C5C8:', 'C5C9:', 'C5CA:', 'C5CC:', 'C5CE:',
243
244    # KS X 1001:1992 31-01..31-94
245    'C5D0:', 'C5D1:', 'C5D4:', 'C5D8:', 'C5E0:', 'C5E1:', 'C5E3:', 'C5E5:',
246    'C5EC:', 'C5ED:', 'C5EE:', 'C5F0:', 'C5F4:', 'C5F6:', 'C5F7:', 'C5FC:',
247    'C5FD:', 'C5FE:', 'C5FF:', 'C600:', 'C601:', 'C605:', 'C606:', 'C607:',
248    'C608:', 'C60C:', 'C610:', 'C618:', 'C619:', 'C61B:', 'C61C:', 'C624:',
249    'C625:', 'C628:', 'C62C:', 'C62D:', 'C62E:', 'C630:', 'C633:', 'C634:',
250    'C635:', 'C637:', 'C639:', 'C63B:', 'C640:', 'C641:', 'C644:', 'C648:',
251    'C650:', 'C651:', 'C653:', 'C654:', 'C655:', 'C65C:', 'C65D:', 'C660:',
252    'C66C:', 'C66F:', 'C671:', 'C678:', 'C679:', 'C67C:', 'C680:', 'C688:',
253    'C689:', 'C68B:', 'C68D:', 'C694:', 'C695:', 'C698:', 'C69C:', 'C6A4:',
254    'C6A5:', 'C6A7:', 'C6A9:', 'C6B0:', 'C6B1:', 'C6B4:', 'C6B8:', 'C6B9:',
255    'C6BA:', 'C6C0:', 'C6C1:', 'C6C3:', 'C6C5:', 'C6CC:', 'C6CD:', 'C6D0:',
256    'C6D4:', 'C6DC:', 'C6DD:', 'C6E0:', 'C6E1:', 'C6E8:',
257
258    # KS X 1001:1992 32-01..32-94
259    'C6E9:', 'C6EC:', 'C6F0:', 'C6F8:', 'C6F9:', 'C6FD:', 'C704:', 'C705:',
260    'C708:', 'C70C:', 'C714:', 'C715:', 'C717:', 'C719:', 'C720:', 'C721:',
261    'C724:', 'C728:', 'C730:', 'C731:', 'C733:', 'C735:', 'C737:', 'C73C:',
262    'C73D:', 'C740:', 'C744:', 'C74A:', 'C74C:', 'C74D:', 'C74F:', 'C751:',
263    'C752:', 'C753:', 'C754:', 'C755:', 'C756:', 'C757:', 'C758:', 'C75C:',
264    'C760:', 'C768:', 'C76B:', 'C774:', 'C775:', 'C778:', 'C77C:', 'C77D:',
265    'C77E:', 'C783:', 'C784:', 'C785:', 'C787:', 'C788:', 'C789:', 'C78A:',
266    'C78E:', 'C790:', 'C791:', 'C794:', 'C796:', 'C797:', 'C798:', 'C79A:',
267    'C7A0:', 'C7A1:', 'C7A3:', 'C7A4:', 'C7A5:', 'C7A6:', 'C7AC:', 'C7AD:',
268    'C7B0:', 'C7B4:', 'C7BC:', 'C7BD:', 'C7BF:', 'C7C0:', 'C7C1:', 'C7C8:',
269    'C7C9:', 'C7CC:', 'C7CE:', 'C7D0:', 'C7D8:', 'C7DD:', 'C7E4:', 'C7E8:',
270    'C7EC:', 'C800:', 'C801:', 'C804:', 'C808:', 'C80A:',
271
272    # KS X 1001:1992 33-01..33-94
273    'C810:', 'C811:', 'C813:', 'C815:', 'C816:', 'C81C:', 'C81D:', 'C820:',
274    'C824:', 'C82C:', 'C82D:', 'C82F:', 'C831:', 'C838:', 'C83C:', 'C840:',
275    'C848:', 'C849:', 'C84C:', 'C84D:', 'C854:', 'C870:', 'C871:', 'C874:',
276    'C878:', 'C87A:', 'C880:', 'C881:', 'C883:', 'C885:', 'C886:', 'C887:',
277    'C88B:', 'C88C:', 'C88D:', 'C894:', 'C89D:', 'C89F:', 'C8A1:', 'C8A8:',
278    'C8BC:', 'C8BD:', 'C8C4:', 'C8C8:', 'C8CC:', 'C8D4:', 'C8D5:', 'C8D7:',
279    'C8D9:', 'C8E0:', 'C8E1:', 'C8E4:', 'C8F5:', 'C8FC:', 'C8FD:', 'C900:',
280    'C904:', 'C905:', 'C906:', 'C90C:', 'C90D:', 'C90F:', 'C911:', 'C918:',
281    'C92C:', 'C934:', 'C950:', 'C951:', 'C954:', 'C958:', 'C960:', 'C961:',
282    'C963:', 'C96C:', 'C970:', 'C974:', 'C97C:', 'C988:', 'C989:', 'C98C:',
283    'C990:', 'C998:', 'C999:', 'C99B:', 'C99D:', 'C9C0:', 'C9C1:', 'C9C4:',
284    'C9C7:', 'C9C8:', 'C9CA:', 'C9D0:', 'C9D1:', 'C9D3:',
285
286    # KS X 1001:1992 34-01..34-94
287    'C9D5:', 'C9D6:', 'C9D9:', 'C9DA:', 'C9DC:', 'C9DD:', 'C9E0:', 'C9E2:',
288    'C9E4:', 'C9E7:', 'C9EC:', 'C9ED:', 'C9EF:', 'C9F0:', 'C9F1:', 'C9F8:',
289    'C9F9:', 'C9FC:', 'CA00:', 'CA08:', 'CA09:', 'CA0B:', 'CA0C:', 'CA0D:',
290    'CA14:', 'CA18:', 'CA29:', 'CA4C:', 'CA4D:', 'CA50:', 'CA54:', 'CA5C:',
291    'CA5D:', 'CA5F:', 'CA60:', 'CA61:', 'CA68:', 'CA7D:', 'CA84:', 'CA98:',
292    'CABC:', 'CABD:', 'CAC0:', 'CAC4:', 'CACC:', 'CACD:', 'CACF:', 'CAD1:',
293    'CAD3:', 'CAD8:', 'CAD9:', 'CAE0:', 'CAEC:', 'CAF4:', 'CB08:', 'CB10:',
294    'CB14:', 'CB18:', 'CB20:', 'CB21:', 'CB41:', 'CB48:', 'CB49:', 'CB4C:',
295    'CB50:', 'CB58:', 'CB59:', 'CB5D:', 'CB64:', 'CB78:', 'CB79:', 'CB9C:',
296    'CBB8:', 'CBD4:', 'CBE4:', 'CBE7:', 'CBE9:', 'CC0C:', 'CC0D:', 'CC10:',
297    'CC14:', 'CC1C:', 'CC1D:', 'CC21:', 'CC22:', 'CC27:', 'CC28:', 'CC29:',
298    'CC2C:', 'CC2E:', 'CC30:', 'CC38:', 'CC39:', 'CC3B:',
299
300    # KS X 1001:1992 35-01..35-94
301    'CC3C:', 'CC3D:', 'CC3E:', 'CC44:', 'CC45:', 'CC48:', 'CC4C:', 'CC54:',
302    'CC55:', 'CC57:', 'CC58:', 'CC59:', 'CC60:', 'CC64:', 'CC66:', 'CC68:',
303    'CC70:', 'CC75:', 'CC98:', 'CC99:', 'CC9C:', 'CCA0:', 'CCA8:', 'CCA9:',
304    'CCAB:', 'CCAC:', 'CCAD:', 'CCB4:', 'CCB5:', 'CCB8:', 'CCBC:', 'CCC4:',
305    'CCC5:', 'CCC7:', 'CCC9:', 'CCD0:', 'CCD4:', 'CCE4:', 'CCEC:', 'CCF0:',
306    'CD01:', 'CD08:', 'CD09:', 'CD0C:', 'CD10:', 'CD18:', 'CD19:', 'CD1B:',
307    'CD1D:', 'CD24:', 'CD28:', 'CD2C:', 'CD39:', 'CD5C:', 'CD60:', 'CD64:',
308    'CD6C:', 'CD6D:', 'CD6F:', 'CD71:', 'CD78:', 'CD88:', 'CD94:', 'CD95:',
309    'CD98:', 'CD9C:', 'CDA4:', 'CDA5:', 'CDA7:', 'CDA9:', 'CDB0:', 'CDC4:',
310    'CDCC:', 'CDD0:', 'CDE8:', 'CDEC:', 'CDF0:', 'CDF8:', 'CDF9:', 'CDFB:',
311    'CDFD:', 'CE04:', 'CE08:', 'CE0C:', 'CE14:', 'CE19:', 'CE20:', 'CE21:',
312    'CE24:', 'CE28:', 'CE30:', 'CE31:', 'CE33:', 'CE35:',
313
314    # KS X 1001:1992 36-01..36-94
315    'CE58:', 'CE59:', 'CE5C:', 'CE5F:', 'CE60:', 'CE61:', 'CE68:', 'CE69:',
316    'CE6B:', 'CE6D:', 'CE74:', 'CE75:', 'CE78:', 'CE7C:', 'CE84:', 'CE85:',
317    'CE87:', 'CE89:', 'CE90:', 'CE91:', 'CE94:', 'CE98:', 'CEA0:', 'CEA1:',
318    'CEA3:', 'CEA4:', 'CEA5:', 'CEAC:', 'CEAD:', 'CEC1:', 'CEE4:', 'CEE5:',
319    'CEE8:', 'CEEB:', 'CEEC:', 'CEF4:', 'CEF5:', 'CEF7:', 'CEF8:', 'CEF9:',
320    'CF00:', 'CF01:', 'CF04:', 'CF08:', 'CF10:', 'CF11:', 'CF13:', 'CF15:',
321    'CF1C:', 'CF20:', 'CF24:', 'CF2C:', 'CF2D:', 'CF2F:', 'CF30:', 'CF31:',
322    'CF38:', 'CF54:', 'CF55:', 'CF58:', 'CF5C:', 'CF64:', 'CF65:', 'CF67:',
323    'CF69:', 'CF70:', 'CF71:', 'CF74:', 'CF78:', 'CF80:', 'CF85:', 'CF8C:',
324    'CFA1:', 'CFA8:', 'CFB0:', 'CFC4:', 'CFE0:', 'CFE1:', 'CFE4:', 'CFE8:',
325    'CFF0:', 'CFF1:', 'CFF3:', 'CFF5:', 'CFFC:', 'D000:', 'D004:', 'D011:',
326    'D018:', 'D02D:', 'D034:', 'D035:', 'D038:', 'D03C:',
327
328    # KS X 1001:1992 37-01..37-94
329    'D044:', 'D045:', 'D047:', 'D049:', 'D050:', 'D054:', 'D058:', 'D060:',
330    'D06C:', 'D06D:', 'D070:', 'D074:', 'D07C:', 'D07D:', 'D081:', 'D0A4:',
331    'D0A5:', 'D0A8:', 'D0AC:', 'D0B4:', 'D0B5:', 'D0B7:', 'D0B9:', 'D0C0:',
332    'D0C1:', 'D0C4:', 'D0C8:', 'D0C9:', 'D0D0:', 'D0D1:', 'D0D3:', 'D0D4:',
333    'D0D5:', 'D0DC:', 'D0DD:', 'D0E0:', 'D0E4:', 'D0EC:', 'D0ED:', 'D0EF:',
334    'D0F0:', 'D0F1:', 'D0F8:', 'D10D:', 'D130:', 'D131:', 'D134:', 'D138:',
335    'D13A:', 'D140:', 'D141:', 'D143:', 'D144:', 'D145:', 'D14C:', 'D14D:',
336    'D150:', 'D154:', 'D15C:', 'D15D:', 'D15F:', 'D161:', 'D168:', 'D16C:',
337    'D17C:', 'D184:', 'D188:', 'D1A0:', 'D1A1:', 'D1A4:', 'D1A8:', 'D1B0:',
338    'D1B1:', 'D1B3:', 'D1B5:', 'D1BA:', 'D1BC:', 'D1C0:', 'D1D8:', 'D1F4:',
339    'D1F8:', 'D207:', 'D209:', 'D210:', 'D22C:', 'D22D:', 'D230:', 'D234:',
340    'D23C:', 'D23D:', 'D23F:', 'D241:', 'D248:', 'D25C:',
341
342    # KS X 1001:1992 38-01..38-94
343    'D264:', 'D280:', 'D281:', 'D284:', 'D288:', 'D290:', 'D291:', 'D295:',
344    'D29C:', 'D2A0:', 'D2A4:', 'D2AC:', 'D2B1:', 'D2B8:', 'D2B9:', 'D2BC:',
345    'D2BF:', 'D2C0:', 'D2C2:', 'D2C8:', 'D2C9:', 'D2CB:', 'D2D4:', 'D2D8:',
346    'D2DC:', 'D2E4:', 'D2E5:', 'D2F0:', 'D2F1:', 'D2F4:', 'D2F8:', 'D300:',
347    'D301:', 'D303:', 'D305:', 'D30C:', 'D30D:', 'D30E:', 'D310:', 'D314:',
348    'D316:', 'D31C:', 'D31D:', 'D31F:', 'D320:', 'D321:', 'D325:', 'D328:',
349    'D329:', 'D32C:', 'D330:', 'D338:', 'D339:', 'D33B:', 'D33C:', 'D33D:',
350    'D344:', 'D345:', 'D37C:', 'D37D:', 'D380:', 'D384:', 'D38C:', 'D38D:',
351    'D38F:', 'D390:', 'D391:', 'D398:', 'D399:', 'D39C:', 'D3A0:', 'D3A8:',
352    'D3A9:', 'D3AB:', 'D3AD:', 'D3B4:', 'D3B8:', 'D3BC:', 'D3C4:', 'D3C5:',
353    'D3C8:', 'D3C9:', 'D3D0:', 'D3D8:', 'D3E1:', 'D3E3:', 'D3EC:', 'D3ED:',
354    'D3F0:', 'D3F4:', 'D3FC:', 'D3FD:', 'D3FF:', 'D401:',
355
356    # KS X 1001:1992 39-01..39-94
357    'D408:', 'D41D:', 'D440:', 'D444:', 'D45C:', 'D460:', 'D464:', 'D46D:',
358    'D46F:', 'D478:', 'D479:', 'D47C:', 'D47F:', 'D480:', 'D482:', 'D488:',
359    'D489:', 'D48B:', 'D48D:', 'D494:', 'D4A9:', 'D4CC:', 'D4D0:', 'D4D4:',
360    'D4DC:', 'D4DF:', 'D4E8:', 'D4EC:', 'D4F0:', 'D4F8:', 'D4FB:', 'D4FD:',
361    'D504:', 'D508:', 'D50C:', 'D514:', 'D515:', 'D517:', 'D53C:', 'D53D:',
362    'D540:', 'D544:', 'D54C:', 'D54D:', 'D54F:', 'D551:', 'D558:', 'D559:',
363    'D55C:', 'D560:', 'D565:', 'D568:', 'D569:', 'D56B:', 'D56D:', 'D574:',
364    'D575:', 'D578:', 'D57C:', 'D584:', 'D585:', 'D587:', 'D588:', 'D589:',
365    'D590:', 'D5A5:', 'D5C8:', 'D5C9:', 'D5CC:', 'D5D0:', 'D5D2:', 'D5D8:',
366    'D5D9:', 'D5DB:', 'D5DD:', 'D5E4:', 'D5E5:', 'D5E8:', 'D5EC:', 'D5F4:',
367    'D5F5:', 'D5F7:', 'D5F9:', 'D600:', 'D601:', 'D604:', 'D608:', 'D610:',
368    'D611:', 'D613:', 'D614:', 'D615:', 'D61C:', 'D620:',
369
370    # KS X 1001:1992 40-01..40-94
371    'D624:', 'D62D:', 'D638:', 'D639:', 'D63C:', 'D640:', 'D645:', 'D648:',
372    'D649:', 'D64B:', 'D64D:', 'D651:', 'D654:', 'D655:', 'D658:', 'D65C:',
373    'D667:', 'D669:', 'D670:', 'D671:', 'D674:', 'D683:', 'D685:', 'D68C:',
374    'D68D:', 'D690:', 'D694:', 'D69D:', 'D69F:', 'D6A1:', 'D6A8:', 'D6AC:',
375    'D6B0:', 'D6B9:', 'D6BB:', 'D6C4:', 'D6C5:', 'D6C8:', 'D6CC:', 'D6D1:',
376    'D6D4:', 'D6D7:', 'D6D9:', 'D6E0:', 'D6E4:', 'D6E8:', 'D6F0:', 'D6F5:',
377    'D6FC:', 'D6FD:', 'D700:', 'D704:', 'D711:', 'D718:', 'D719:', 'D71C:',
378    'D720:', 'D728:', 'D729:', 'D72B:', 'D72D:', 'D734:', 'D735:', 'D738:',
379    'D73C:', 'D744:', 'D747:', 'D749:', 'D750:', 'D751:', 'D754:', 'D756:',
380    'D757:', 'D758:', 'D759:', 'D760:', 'D761:', 'D763:', 'D765:', 'D769:',
381    'D76C:', 'D770:', 'D774:', 'D77C:', 'D77D:', 'D781:', 'D788:', 'D789:',
382    'D78C:', 'D790:', 'D798:', 'D799:', 'D79B:', 'D79D:'
383 );
384
385 $nextksx = shift(@ksx); # get first code point to find
386
387 while (<>) {
388    if (substr($nextksx, 0, 5) eq substr($_, 0, 5)) {
389       print;  # this is one of the syllables we're seeking; print it
390       # Now get next Hangul Syllable to find; if no more, exit.
391       if ($#ksx < 0) {
392          exit;
393       }
394       else {
395          $nextksx = shift(@ksx); # get next code point to find
396       }
397    }
398 }