aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/prop/uprop_get_bmg.c
blob: 2242f01c31317827563b5eab1e09e2edba805e43 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
/* This file is autogenerated by gen/prop/bmg; DO NOT EDIT. */

#include "_bsearch.h"
#include "macros.h"
#include "rune.h"
#include "unicode/prop.h"

static constexpr rune lookup_lat1[] = {
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x29, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x3C, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x5D, 0x00, 0x5B, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x7D, 0x00, 0x7B, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

static const struct {
	rune k, v;
} lookup[] = {
	{RUNE_C(0x000F3A), RUNE_C(0x000F3B)},
	{RUNE_C(0x000F3B), RUNE_C(0x000F3A)},
	{RUNE_C(0x000F3C), RUNE_C(0x000F3D)},
	{RUNE_C(0x000F3D), RUNE_C(0x000F3C)},
	{RUNE_C(0x00169B), RUNE_C(0x00169C)},
	{RUNE_C(0x00169C), RUNE_C(0x00169B)},
	{RUNE_C(0x002039), RUNE_C(0x00203A)},
	{RUNE_C(0x00203A), RUNE_C(0x002039)},
	{RUNE_C(0x002045), RUNE_C(0x002046)},
	{RUNE_C(0x002046), RUNE_C(0x002045)},
	{RUNE_C(0x00207D), RUNE_C(0x00207E)},
	{RUNE_C(0x00207E), RUNE_C(0x00207D)},
	{RUNE_C(0x00208D), RUNE_C(0x00208E)},
	{RUNE_C(0x00208E), RUNE_C(0x00208D)},
	{RUNE_C(0x002208), RUNE_C(0x00220B)},
	{RUNE_C(0x002209), RUNE_C(0x00220C)},
	{RUNE_C(0x00220A), RUNE_C(0x00220D)},
	{RUNE_C(0x00220B), RUNE_C(0x002208)},
	{RUNE_C(0x00220C), RUNE_C(0x002209)},
	{RUNE_C(0x00220D), RUNE_C(0x00220A)},
	{RUNE_C(0x002215), RUNE_C(0x0029F5)},
	{RUNE_C(0x00221F), RUNE_C(0x002BFE)},
	{RUNE_C(0x002220), RUNE_C(0x0029A3)},
	{RUNE_C(0x002221), RUNE_C(0x00299B)},
	{RUNE_C(0x002222), RUNE_C(0x0029A0)},
	{RUNE_C(0x002224), RUNE_C(0x002AEE)},
	{RUNE_C(0x00223C), RUNE_C(0x00223D)},
	{RUNE_C(0x00223D), RUNE_C(0x00223C)},
	{RUNE_C(0x002243), RUNE_C(0x0022CD)},
	{RUNE_C(0x002245), RUNE_C(0x00224C)},
	{RUNE_C(0x00224C), RUNE_C(0x002245)},
	{RUNE_C(0x002252), RUNE_C(0x002253)},
	{RUNE_C(0x002253), RUNE_C(0x002252)},
	{RUNE_C(0x002254), RUNE_C(0x002255)},
	{RUNE_C(0x002255), RUNE_C(0x002254)},
	{RUNE_C(0x002264), RUNE_C(0x002265)},
	{RUNE_C(0x002265), RUNE_C(0x002264)},
	{RUNE_C(0x002266), RUNE_C(0x002267)},
	{RUNE_C(0x002267), RUNE_C(0x002266)},
	{RUNE_C(0x002268), RUNE_C(0x002269)},
	{RUNE_C(0x002269), RUNE_C(0x002268)},
	{RUNE_C(0x00226A), RUNE_C(0x00226B)},
	{RUNE_C(0x00226B), RUNE_C(0x00226A)},
	{RUNE_C(0x00226E), RUNE_C(0x00226F)},
	{RUNE_C(0x00226F), RUNE_C(0x00226E)},
	{RUNE_C(0x002270), RUNE_C(0x002271)},
	{RUNE_C(0x002271), RUNE_C(0x002270)},
	{RUNE_C(0x002272), RUNE_C(0x002273)},
	{RUNE_C(0x002273), RUNE_C(0x002272)},
	{RUNE_C(0x002274), RUNE_C(0x002275)},
	{RUNE_C(0x002275), RUNE_C(0x002274)},
	{RUNE_C(0x002276), RUNE_C(0x002277)},
	{RUNE_C(0x002277), RUNE_C(0x002276)},
	{RUNE_C(0x002278), RUNE_C(0x002279)},
	{RUNE_C(0x002279), RUNE_C(0x002278)},
	{RUNE_C(0x00227A), RUNE_C(0x00227B)},
	{RUNE_C(0x00227B), RUNE_C(0x00227A)},
	{RUNE_C(0x00227C), RUNE_C(0x00227D)},
	{RUNE_C(0x00227D), RUNE_C(0x00227C)},
	{RUNE_C(0x00227E), RUNE_C(0x00227F)},
	{RUNE_C(0x00227F), RUNE_C(0x00227E)},
	{RUNE_C(0x002280), RUNE_C(0x002281)},
	{RUNE_C(0x002281), RUNE_C(0x002280)},
	{RUNE_C(0x002282), RUNE_C(0x002283)},
	{RUNE_C(0x002283), RUNE_C(0x002282)},
	{RUNE_C(0x002284), RUNE_C(0x002285)},
	{RUNE_C(0x002285), RUNE_C(0x002284)},
	{RUNE_C(0x002286), RUNE_C(0x002287)},
	{RUNE_C(0x002287), RUNE_C(0x002286)},
	{RUNE_C(0x002288), RUNE_C(0x002289)},
	{RUNE_C(0x002289), RUNE_C(0x002288)},
	{RUNE_C(0x00228A), RUNE_C(0x00228B)},
	{RUNE_C(0x00228B), RUNE_C(0x00228A)},
	{RUNE_C(0x00228F), RUNE_C(0x002290)},
	{RUNE_C(0x002290), RUNE_C(0x00228F)},
	{RUNE_C(0x002291), RUNE_C(0x002292)},
	{RUNE_C(0x002292), RUNE_C(0x002291)},
	{RUNE_C(0x002298), RUNE_C(0x0029B8)},
	{RUNE_C(0x0022A2), RUNE_C(0x0022A3)},
	{RUNE_C(0x0022A3), RUNE_C(0x0022A2)},
	{RUNE_C(0x0022A6), RUNE_C(0x002ADE)},
	{RUNE_C(0x0022A8), RUNE_C(0x002AE4)},
	{RUNE_C(0x0022A9), RUNE_C(0x002AE3)},
	{RUNE_C(0x0022AB), RUNE_C(0x002AE5)},
	{RUNE_C(0x0022B0), RUNE_C(0x0022B1)},
	{RUNE_C(0x0022B1), RUNE_C(0x0022B0)},
	{RUNE_C(0x0022B2), RUNE_C(0x0022B3)},
	{RUNE_C(0x0022B3), RUNE_C(0x0022B2)},
	{RUNE_C(0x0022B4), RUNE_C(0x0022B5)},
	{RUNE_C(0x0022B5), RUNE_C(0x0022B4)},
	{RUNE_C(0x0022B6), RUNE_C(0x0022B7)},
	{RUNE_C(0x0022B7), RUNE_C(0x0022B6)},
	{RUNE_C(0x0022B8), RUNE_C(0x0027DC)},
	{RUNE_C(0x0022C9), RUNE_C(0x0022CA)},
	{RUNE_C(0x0022CA), RUNE_C(0x0022C9)},
	{RUNE_C(0x0022CB), RUNE_C(0x0022CC)},
	{RUNE_C(0x0022CC), RUNE_C(0x0022CB)},
	{RUNE_C(0x0022CD), RUNE_C(0x002243)},
	{RUNE_C(0x0022D0), RUNE_C(0x0022D1)},
	{RUNE_C(0x0022D1), RUNE_C(0x0022D0)},
	{RUNE_C(0x0022D6), RUNE_C(0x0022D7)},
	{RUNE_C(0x0022D7), RUNE_C(0x0022D6)},
	{RUNE_C(0x0022D8), RUNE_C(0x0022D9)},
	{RUNE_C(0x0022D9), RUNE_C(0x0022D8)},
	{RUNE_C(0x0022DA), RUNE_C(0x0022DB)},
	{RUNE_C(0x0022DB), RUNE_C(0x0022DA)},
	{RUNE_C(0x0022DC), RUNE_C(0x0022DD)},
	{RUNE_C(0x0022DD), RUNE_C(0x0022DC)},
	{RUNE_C(0x0022DE), RUNE_C(0x0022DF)},
	{RUNE_C(0x0022DF), RUNE_C(0x0022DE)},
	{RUNE_C(0x0022E0), RUNE_C(0x0022E1)},
	{RUNE_C(0x0022E1), RUNE_C(0x0022E0)},
	{RUNE_C(0x0022E2), RUNE_C(0x0022E3)},
	{RUNE_C(0x0022E3), RUNE_C(0x0022E2)},
	{RUNE_C(0x0022E4), RUNE_C(0x0022E5)},
	{RUNE_C(0x0022E5), RUNE_C(0x0022E4)},
	{RUNE_C(0x0022E6), RUNE_C(0x0022E7)},
	{RUNE_C(0x0022E7), RUNE_C(0x0022E6)},
	{RUNE_C(0x0022E8), RUNE_C(0x0022E9)},
	{RUNE_C(0x0022E9), RUNE_C(0x0022E8)},
	{RUNE_C(0x0022EA), RUNE_C(0x0022EB)},
	{RUNE_C(0x0022EB), RUNE_C(0x0022EA)},
	{RUNE_C(0x0022EC), RUNE_C(0x0022ED)},
	{RUNE_C(0x0022ED), RUNE_C(0x0022EC)},
	{RUNE_C(0x0022F0), RUNE_C(0x0022F1)},
	{RUNE_C(0x0022F1), RUNE_C(0x0022F0)},
	{RUNE_C(0x0022F2), RUNE_C(0x0022FA)},
	{RUNE_C(0x0022F3), RUNE_C(0x0022FB)},
	{RUNE_C(0x0022F4), RUNE_C(0x0022FC)},
	{RUNE_C(0x0022F6), RUNE_C(0x0022FD)},
	{RUNE_C(0x0022F7), RUNE_C(0x0022FE)},
	{RUNE_C(0x0022FA), RUNE_C(0x0022F2)},
	{RUNE_C(0x0022FB), RUNE_C(0x0022F3)},
	{RUNE_C(0x0022FC), RUNE_C(0x0022F4)},
	{RUNE_C(0x0022FD), RUNE_C(0x0022F6)},
	{RUNE_C(0x0022FE), RUNE_C(0x0022F7)},
	{RUNE_C(0x002308), RUNE_C(0x002309)},
	{RUNE_C(0x002309), RUNE_C(0x002308)},
	{RUNE_C(0x00230A), RUNE_C(0x00230B)},
	{RUNE_C(0x00230B), RUNE_C(0x00230A)},
	{RUNE_C(0x002329), RUNE_C(0x00232A)},
	{RUNE_C(0x00232A), RUNE_C(0x002329)},
	{RUNE_C(0x002768), RUNE_C(0x002769)},
	{RUNE_C(0x002769), RUNE_C(0x002768)},
	{RUNE_C(0x00276A), RUNE_C(0x00276B)},
	{RUNE_C(0x00276B), RUNE_C(0x00276A)},
	{RUNE_C(0x00276C), RUNE_C(0x00276D)},
	{RUNE_C(0x00276D), RUNE_C(0x00276C)},
	{RUNE_C(0x00276E), RUNE_C(0x00276F)},
	{RUNE_C(0x00276F), RUNE_C(0x00276E)},
	{RUNE_C(0x002770), RUNE_C(0x002771)},
	{RUNE_C(0x002771), RUNE_C(0x002770)},
	{RUNE_C(0x002772), RUNE_C(0x002773)},
	{RUNE_C(0x002773), RUNE_C(0x002772)},
	{RUNE_C(0x002774), RUNE_C(0x002775)},
	{RUNE_C(0x002775), RUNE_C(0x002774)},
	{RUNE_C(0x0027C3), RUNE_C(0x0027C4)},
	{RUNE_C(0x0027C4), RUNE_C(0x0027C3)},
	{RUNE_C(0x0027C5), RUNE_C(0x0027C6)},
	{RUNE_C(0x0027C6), RUNE_C(0x0027C5)},
	{RUNE_C(0x0027C8), RUNE_C(0x0027C9)},
	{RUNE_C(0x0027C9), RUNE_C(0x0027C8)},
	{RUNE_C(0x0027CB), RUNE_C(0x0027CD)},
	{RUNE_C(0x0027CD), RUNE_C(0x0027CB)},
	{RUNE_C(0x0027D5), RUNE_C(0x0027D6)},
	{RUNE_C(0x0027D6), RUNE_C(0x0027D5)},
	{RUNE_C(0x0027DC), RUNE_C(0x0022B8)},
	{RUNE_C(0x0027DD), RUNE_C(0x0027DE)},
	{RUNE_C(0x0027DE), RUNE_C(0x0027DD)},
	{RUNE_C(0x0027E2), RUNE_C(0x0027E3)},
	{RUNE_C(0x0027E3), RUNE_C(0x0027E2)},
	{RUNE_C(0x0027E4), RUNE_C(0x0027E5)},
	{RUNE_C(0x0027E5), RUNE_C(0x0027E4)},
	{RUNE_C(0x0027E6), RUNE_C(0x0027E7)},
	{RUNE_C(0x0027E7), RUNE_C(0x0027E6)},
	{RUNE_C(0x0027E8), RUNE_C(0x0027E9)},
	{RUNE_C(0x0027E9), RUNE_C(0x0027E8)},
	{RUNE_C(0x0027EA), RUNE_C(0x0027EB)},
	{RUNE_C(0x0027EB), RUNE_C(0x0027EA)},
	{RUNE_C(0x0027EC), RUNE_C(0x0027ED)},
	{RUNE_C(0x0027ED), RUNE_C(0x0027EC)},
	{RUNE_C(0x0027EE), RUNE_C(0x0027EF)},
	{RUNE_C(0x0027EF), RUNE_C(0x0027EE)},
	{RUNE_C(0x002983), RUNE_C(0x002984)},
	{RUNE_C(0x002984), RUNE_C(0x002983)},
	{RUNE_C(0x002985), RUNE_C(0x002986)},
	{RUNE_C(0x002986), RUNE_C(0x002985)},
	{RUNE_C(0x002987), RUNE_C(0x002988)},
	{RUNE_C(0x002988), RUNE_C(0x002987)},
	{RUNE_C(0x002989), RUNE_C(0x00298A)},
	{RUNE_C(0x00298A), RUNE_C(0x002989)},
	{RUNE_C(0x00298B), RUNE_C(0x00298C)},
	{RUNE_C(0x00298C), RUNE_C(0x00298B)},
	{RUNE_C(0x00298D), RUNE_C(0x002990)},
	{RUNE_C(0x00298E), RUNE_C(0x00298F)},
	{RUNE_C(0x00298F), RUNE_C(0x00298E)},
	{RUNE_C(0x002990), RUNE_C(0x00298D)},
	{RUNE_C(0x002991), RUNE_C(0x002992)},
	{RUNE_C(0x002992), RUNE_C(0x002991)},
	{RUNE_C(0x002993), RUNE_C(0x002994)},
	{RUNE_C(0x002994), RUNE_C(0x002993)},
	{RUNE_C(0x002995), RUNE_C(0x002996)},
	{RUNE_C(0x002996), RUNE_C(0x002995)},
	{RUNE_C(0x002997), RUNE_C(0x002998)},
	{RUNE_C(0x002998), RUNE_C(0x002997)},
	{RUNE_C(0x00299B), RUNE_C(0x002221)},
	{RUNE_C(0x0029A0), RUNE_C(0x002222)},
	{RUNE_C(0x0029A3), RUNE_C(0x002220)},
	{RUNE_C(0x0029A4), RUNE_C(0x0029A5)},
	{RUNE_C(0x0029A5), RUNE_C(0x0029A4)},
	{RUNE_C(0x0029A8), RUNE_C(0x0029A9)},
	{RUNE_C(0x0029A9), RUNE_C(0x0029A8)},
	{RUNE_C(0x0029AA), RUNE_C(0x0029AB)},
	{RUNE_C(0x0029AB), RUNE_C(0x0029AA)},
	{RUNE_C(0x0029AC), RUNE_C(0x0029AD)},
	{RUNE_C(0x0029AD), RUNE_C(0x0029AC)},
	{RUNE_C(0x0029AE), RUNE_C(0x0029AF)},
	{RUNE_C(0x0029AF), RUNE_C(0x0029AE)},
	{RUNE_C(0x0029B8), RUNE_C(0x002298)},
	{RUNE_C(0x0029C0), RUNE_C(0x0029C1)},
	{RUNE_C(0x0029C1), RUNE_C(0x0029C0)},
	{RUNE_C(0x0029C4), RUNE_C(0x0029C5)},
	{RUNE_C(0x0029C5), RUNE_C(0x0029C4)},
	{RUNE_C(0x0029CF), RUNE_C(0x0029D0)},
	{RUNE_C(0x0029D0), RUNE_C(0x0029CF)},
	{RUNE_C(0x0029D1), RUNE_C(0x0029D2)},
	{RUNE_C(0x0029D2), RUNE_C(0x0029D1)},
	{RUNE_C(0x0029D4), RUNE_C(0x0029D5)},
	{RUNE_C(0x0029D5), RUNE_C(0x0029D4)},
	{RUNE_C(0x0029D8), RUNE_C(0x0029D9)},
	{RUNE_C(0x0029D9), RUNE_C(0x0029D8)},
	{RUNE_C(0x0029DA), RUNE_C(0x0029DB)},
	{RUNE_C(0x0029DB), RUNE_C(0x0029DA)},
	{RUNE_C(0x0029E8), RUNE_C(0x0029E9)},
	{RUNE_C(0x0029E9), RUNE_C(0x0029E8)},
	{RUNE_C(0x0029F5), RUNE_C(0x002215)},
	{RUNE_C(0x0029F8), RUNE_C(0x0029F9)},
	{RUNE_C(0x0029F9), RUNE_C(0x0029F8)},
	{RUNE_C(0x0029FC), RUNE_C(0x0029FD)},
	{RUNE_C(0x0029FD), RUNE_C(0x0029FC)},
	{RUNE_C(0x002A2B), RUNE_C(0x002A2C)},
	{RUNE_C(0x002A2C), RUNE_C(0x002A2B)},
	{RUNE_C(0x002A2D), RUNE_C(0x002A2E)},
	{RUNE_C(0x002A2E), RUNE_C(0x002A2D)},
	{RUNE_C(0x002A34), RUNE_C(0x002A35)},
	{RUNE_C(0x002A35), RUNE_C(0x002A34)},
	{RUNE_C(0x002A3C), RUNE_C(0x002A3D)},
	{RUNE_C(0x002A3D), RUNE_C(0x002A3C)},
	{RUNE_C(0x002A64), RUNE_C(0x002A65)},
	{RUNE_C(0x002A65), RUNE_C(0x002A64)},
	{RUNE_C(0x002A79), RUNE_C(0x002A7A)},
	{RUNE_C(0x002A7A), RUNE_C(0x002A79)},
	{RUNE_C(0x002A7B), RUNE_C(0x002A7C)},
	{RUNE_C(0x002A7C), RUNE_C(0x002A7B)},
	{RUNE_C(0x002A7D), RUNE_C(0x002A7E)},
	{RUNE_C(0x002A7E), RUNE_C(0x002A7D)},
	{RUNE_C(0x002A7F), RUNE_C(0x002A80)},
	{RUNE_C(0x002A80), RUNE_C(0x002A7F)},
	{RUNE_C(0x002A81), RUNE_C(0x002A82)},
	{RUNE_C(0x002A82), RUNE_C(0x002A81)},
	{RUNE_C(0x002A83), RUNE_C(0x002A84)},
	{RUNE_C(0x002A84), RUNE_C(0x002A83)},
	{RUNE_C(0x002A85), RUNE_C(0x002A86)},
	{RUNE_C(0x002A86), RUNE_C(0x002A85)},
	{RUNE_C(0x002A87), RUNE_C(0x002A88)},
	{RUNE_C(0x002A88), RUNE_C(0x002A87)},
	{RUNE_C(0x002A89), RUNE_C(0x002A8A)},
	{RUNE_C(0x002A8A), RUNE_C(0x002A89)},
	{RUNE_C(0x002A8B), RUNE_C(0x002A8C)},
	{RUNE_C(0x002A8C), RUNE_C(0x002A8B)},
	{RUNE_C(0x002A8D), RUNE_C(0x002A8E)},
	{RUNE_C(0x002A8E), RUNE_C(0x002A8D)},
	{RUNE_C(0x002A8F), RUNE_C(0x002A90)},
	{RUNE_C(0x002A90), RUNE_C(0x002A8F)},
	{RUNE_C(0x002A91), RUNE_C(0x002A92)},
	{RUNE_C(0x002A92), RUNE_C(0x002A91)},
	{RUNE_C(0x002A93), RUNE_C(0x002A94)},
	{RUNE_C(0x002A94), RUNE_C(0x002A93)},
	{RUNE_C(0x002A95), RUNE_C(0x002A96)},
	{RUNE_C(0x002A96), RUNE_C(0x002A95)},
	{RUNE_C(0x002A97), RUNE_C(0x002A98)},
	{RUNE_C(0x002A98), RUNE_C(0x002A97)},
	{RUNE_C(0x002A99), RUNE_C(0x002A9A)},
	{RUNE_C(0x002A9A), RUNE_C(0x002A99)},
	{RUNE_C(0x002A9B), RUNE_C(0x002A9C)},
	{RUNE_C(0x002A9C), RUNE_C(0x002A9B)},
	{RUNE_C(0x002A9D), RUNE_C(0x002A9E)},
	{RUNE_C(0x002A9E), RUNE_C(0x002A9D)},
	{RUNE_C(0x002A9F), RUNE_C(0x002AA0)},
	{RUNE_C(0x002AA0), RUNE_C(0x002A9F)},
	{RUNE_C(0x002AA1), RUNE_C(0x002AA2)},
	{RUNE_C(0x002AA2), RUNE_C(0x002AA1)},
	{RUNE_C(0x002AA6), RUNE_C(0x002AA7)},
	{RUNE_C(0x002AA7), RUNE_C(0x002AA6)},
	{RUNE_C(0x002AA8), RUNE_C(0x002AA9)},
	{RUNE_C(0x002AA9), RUNE_C(0x002AA8)},
	{RUNE_C(0x002AAA), RUNE_C(0x002AAB)},
	{RUNE_C(0x002AAB), RUNE_C(0x002AAA)},
	{RUNE_C(0x002AAC), RUNE_C(0x002AAD)},
	{RUNE_C(0x002AAD), RUNE_C(0x002AAC)},
	{RUNE_C(0x002AAF), RUNE_C(0x002AB0)},
	{RUNE_C(0x002AB0), RUNE_C(0x002AAF)},
	{RUNE_C(0x002AB1), RUNE_C(0x002AB2)},
	{RUNE_C(0x002AB2), RUNE_C(0x002AB1)},
	{RUNE_C(0x002AB3), RUNE_C(0x002AB4)},
	{RUNE_C(0x002AB4), RUNE_C(0x002AB3)},
	{RUNE_C(0x002AB5), RUNE_C(0x002AB6)},
	{RUNE_C(0x002AB6), RUNE_C(0x002AB5)},
	{RUNE_C(0x002AB7), RUNE_C(0x002AB8)},
	{RUNE_C(0x002AB8), RUNE_C(0x002AB7)},
	{RUNE_C(0x002AB9), RUNE_C(0x002ABA)},
	{RUNE_C(0x002ABA), RUNE_C(0x002AB9)},
	{RUNE_C(0x002ABB), RUNE_C(0x002ABC)},
	{RUNE_C(0x002ABC), RUNE_C(0x002ABB)},
	{RUNE_C(0x002ABD), RUNE_C(0x002ABE)},
	{RUNE_C(0x002ABE), RUNE_C(0x002ABD)},
	{RUNE_C(0x002ABF), RUNE_C(0x002AC0)},
	{RUNE_C(0x002AC0), RUNE_C(0x002ABF)},
	{RUNE_C(0x002AC1), RUNE_C(0x002AC2)},
	{RUNE_C(0x002AC2), RUNE_C(0x002AC1)},
	{RUNE_C(0x002AC3), RUNE_C(0x002AC4)},
	{RUNE_C(0x002AC4), RUNE_C(0x002AC3)},
	{RUNE_C(0x002AC5), RUNE_C(0x002AC6)},
	{RUNE_C(0x002AC6), RUNE_C(0x002AC5)},
	{RUNE_C(0x002AC7), RUNE_C(0x002AC8)},
	{RUNE_C(0x002AC8), RUNE_C(0x002AC7)},
	{RUNE_C(0x002AC9), RUNE_C(0x002ACA)},
	{RUNE_C(0x002ACA), RUNE_C(0x002AC9)},
	{RUNE_C(0x002ACB), RUNE_C(0x002ACC)},
	{RUNE_C(0x002ACC), RUNE_C(0x002ACB)},
	{RUNE_C(0x002ACD), RUNE_C(0x002ACE)},
	{RUNE_C(0x002ACE), RUNE_C(0x002ACD)},
	{RUNE_C(0x002ACF), RUNE_C(0x002AD0)},
	{RUNE_C(0x002AD0), RUNE_C(0x002ACF)},
	{RUNE_C(0x002AD1), RUNE_C(0x002AD2)},
	{RUNE_C(0x002AD2), RUNE_C(0x002AD1)},
	{RUNE_C(0x002AD3), RUNE_C(0x002AD4)},
	{RUNE_C(0x002AD4), RUNE_C(0x002AD3)},
	{RUNE_C(0x002AD5), RUNE_C(0x002AD6)},
	{RUNE_C(0x002AD6), RUNE_C(0x002AD5)},
	{RUNE_C(0x002ADE), RUNE_C(0x0022A6)},
	{RUNE_C(0x002AE3), RUNE_C(0x0022A9)},
	{RUNE_C(0x002AE4), RUNE_C(0x0022A8)},
	{RUNE_C(0x002AE5), RUNE_C(0x0022AB)},
	{RUNE_C(0x002AEC), RUNE_C(0x002AED)},
	{RUNE_C(0x002AED), RUNE_C(0x002AEC)},
	{RUNE_C(0x002AEE), RUNE_C(0x002224)},
	{RUNE_C(0x002AF7), RUNE_C(0x002AF8)},
	{RUNE_C(0x002AF8), RUNE_C(0x002AF7)},
	{RUNE_C(0x002AF9), RUNE_C(0x002AFA)},
	{RUNE_C(0x002AFA), RUNE_C(0x002AF9)},
	{RUNE_C(0x002BFE), RUNE_C(0x00221F)},
	{RUNE_C(0x002E02), RUNE_C(0x002E03)},
	{RUNE_C(0x002E03), RUNE_C(0x002E02)},
	{RUNE_C(0x002E04), RUNE_C(0x002E05)},
	{RUNE_C(0x002E05), RUNE_C(0x002E04)},
	{RUNE_C(0x002E09), RUNE_C(0x002E0A)},
	{RUNE_C(0x002E0A), RUNE_C(0x002E09)},
	{RUNE_C(0x002E0C), RUNE_C(0x002E0D)},
	{RUNE_C(0x002E0D), RUNE_C(0x002E0C)},
	{RUNE_C(0x002E1C), RUNE_C(0x002E1D)},
	{RUNE_C(0x002E1D), RUNE_C(0x002E1C)},
	{RUNE_C(0x002E20), RUNE_C(0x002E21)},
	{RUNE_C(0x002E21), RUNE_C(0x002E20)},
	{RUNE_C(0x002E22), RUNE_C(0x002E23)},
	{RUNE_C(0x002E23), RUNE_C(0x002E22)},
	{RUNE_C(0x002E24), RUNE_C(0x002E25)},
	{RUNE_C(0x002E25), RUNE_C(0x002E24)},
	{RUNE_C(0x002E26), RUNE_C(0x002E27)},
	{RUNE_C(0x002E27), RUNE_C(0x002E26)},
	{RUNE_C(0x002E28), RUNE_C(0x002E29)},
	{RUNE_C(0x002E29), RUNE_C(0x002E28)},
	{RUNE_C(0x002E55), RUNE_C(0x002E56)},
	{RUNE_C(0x002E56), RUNE_C(0x002E55)},
	{RUNE_C(0x002E57), RUNE_C(0x002E58)},
	{RUNE_C(0x002E58), RUNE_C(0x002E57)},
	{RUNE_C(0x002E59), RUNE_C(0x002E5A)},
	{RUNE_C(0x002E5A), RUNE_C(0x002E59)},
	{RUNE_C(0x002E5B), RUNE_C(0x002E5C)},
	{RUNE_C(0x002E5C), RUNE_C(0x002E5B)},
	{RUNE_C(0x003008), RUNE_C(0x003009)},
	{RUNE_C(0x003009), RUNE_C(0x003008)},
	{RUNE_C(0x00300A), RUNE_C(0x00300B)},
	{RUNE_C(0x00300B), RUNE_C(0x00300A)},
	{RUNE_C(0x00300C), RUNE_C(0x00300D)},
	{RUNE_C(0x00300D), RUNE_C(0x00300C)},
	{RUNE_C(0x00300E), RUNE_C(0x00300F)},
	{RUNE_C(0x00300F), RUNE_C(0x00300E)},
	{RUNE_C(0x003010), RUNE_C(0x003011)},
	{RUNE_C(0x003011), RUNE_C(0x003010)},
	{RUNE_C(0x003014), RUNE_C(0x003015)},
	{RUNE_C(0x003015), RUNE_C(0x003014)},
	{RUNE_C(0x003016), RUNE_C(0x003017)},
	{RUNE_C(0x003017), RUNE_C(0x003016)},
	{RUNE_C(0x003018), RUNE_C(0x003019)},
	{RUNE_C(0x003019), RUNE_C(0x003018)},
	{RUNE_C(0x00301A), RUNE_C(0x00301B)},
	{RUNE_C(0x00301B), RUNE_C(0x00301A)},
	{RUNE_C(0x00FE59), RUNE_C(0x00FE5A)},
	{RUNE_C(0x00FE5A), RUNE_C(0x00FE59)},
	{RUNE_C(0x00FE5B), RUNE_C(0x00FE5C)},
	{RUNE_C(0x00FE5C), RUNE_C(0x00FE5B)},
	{RUNE_C(0x00FE5D), RUNE_C(0x00FE5E)},
	{RUNE_C(0x00FE5E), RUNE_C(0x00FE5D)},
	{RUNE_C(0x00FE64), RUNE_C(0x00FE65)},
	{RUNE_C(0x00FE65), RUNE_C(0x00FE64)},
	{RUNE_C(0x00FF08), RUNE_C(0x00FF09)},
	{RUNE_C(0x00FF09), RUNE_C(0x00FF08)},
	{RUNE_C(0x00FF1C), RUNE_C(0x00FF1E)},
	{RUNE_C(0x00FF1E), RUNE_C(0x00FF1C)},
	{RUNE_C(0x00FF3B), RUNE_C(0x00FF3D)},
	{RUNE_C(0x00FF3D), RUNE_C(0x00FF3B)},
	{RUNE_C(0x00FF5B), RUNE_C(0x00FF5D)},
	{RUNE_C(0x00FF5D), RUNE_C(0x00FF5B)},
	{RUNE_C(0x00FF5F), RUNE_C(0x00FF60)},
	{RUNE_C(0x00FF60), RUNE_C(0x00FF5F)},
	{RUNE_C(0x00FF62), RUNE_C(0x00FF63)},
	{RUNE_C(0x00FF63), RUNE_C(0x00FF62)},
};

_MLIB_DEFINE_BSEARCH_KV(rune, lookup, 0)

rune
uprop_get_bmg(rune ch)
{
	return ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup_kv(ch);
}