Coverage report: /home/ellis/.stash/quicklisp/dists/ultralisp/software/cl-babel-babel-20240610131823/src/enc-koi8.lisp

KindCoveredAll%
expression026 0.0
branch00nil
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;;; -*- Mode: lisp; indent-tabs-mode: nil -*-
2
 ;;;
3
 ;;; enc-cp1251.lisp --- Implementation of the CP1251 character encoding.
4
 ;;;
5
 ;;; Copyright (C) 2009, Andrey Moskvitin
6
 ;;;
7
 ;;; Permission is hereby granted, free of charge, to any person
8
 ;;; obtaining a copy of this software and associated documentation
9
 ;;; files (the "Software"), to deal in the Software without
10
 ;;; restriction, including without limitation the rights to use, copy,
11
 ;;; modify, merge, publish, distribute, sublicense, and/or sell copies
12
 ;;; of the Software, and to permit persons to whom the Software is
13
 ;;; furnished to do so, subject to the following conditions:
14
 ;;;
15
 ;;; The above copyright notice and this permission notice shall be
16
 ;;; included in all copies or substantial portions of the Software.
17
 ;;;
18
 ;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
 ;;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
 ;;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
 ;;; NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22
 ;;; HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23
 ;;; WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
 ;;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25
 ;;; DEALINGS IN THE SOFTWARE.
26
 
27
 (in-package #:babel-encodings)
28
 
29
 (define-character-encoding :koi8-ru
30
     "An 8-bit, fixed-width character Russian encoding."
31
   :literal-char-code-limit #x80)
32
 
33
 (define-constant +koi8-ru-to-unicode+
34
     #(#x2500 #x2502 #x250C #x2510 #x2514 #x2518 #x251C #x2524
35
       #x252C #x2534 #x253C #x2580 #x2584 #x2588 #x258C #x2590
36
       #x2591 #x2592 #x2593 #x2320 #x25A0 #x2219 #x221A #x2248
37
       #x2264 #x2265 #x00A0 #x2321 #x00B0 #x00B2 #x00B7 #x00F7
38
       #x2550 #x2551 #x2552 #x0451 #x0454 #x2554 #x0456 #x0457
39
       #x2557 #x2558 #x2559 #x255A #x255B #x0491 #x045E #x255E
40
       #x255F #x2560 #x2561 #x0401 #x0404 #x2563 #x0406 #x0407
41
       #x2566 #x2567 #x2568 #x2569 #x256A #x0490 #x040E #x00A9
42
       #x044E #x0430 #x0431 #x0446 #x0434 #x0435 #x0444 #x0433
43
       #x0445 #x0438 #x0439 #x043A #x043B #x043C #x043D #x043E
44
       #x043F #x044F #x0440 #x0441 #x0442 #x0443 #x0436 #x0432
45
       #x044C #x044B #x0437 #x0448 #x044D #x0449 #x0447 #x044A
46
       #x042E #x0410 #x0411 #x0426 #x0414 #x0415 #x0424 #x0413
47
       #x0425 #x0418 #x0419 #x041A #x041B #x041C #x041D #x041E
48
       #x041F #x042F #x0420 #x0421 #x0422 #x0423 #x0416 #x0412
49
       #x042C #x042B #x0417 #x0428 #x042D #x0429 #x0427 #x042A)
50
       :test #'equalp)
51
 
52
 (define-unibyte-decoder :koi8-ru (octet)
53
   (if (< octet #x80)
54
       octet
55
       (svref +koi8-ru-to-unicode+ (the ub8 (- octet #x80)))))
56
 
57
 (define-constant +unicode-04->koi8-ru+
58
     #(#x7f #x79 #x78 #x7c #x60 #x71 #x41 #x42 #x57 #x47 #x44 #x45 #x56 #x5a
59
       #x49 #x4a #x4b #x4c #x4d #x4e #x4f #x50 #x52 #x53 #x54 #x55 #x46 #x48
60
       #x43 #x5e #x5b #x5d #x5f #x59 #x58 #x5c #x40 #x51 nil #x23 nil nil #x24
61
       nil #x26 #x27 nil nil nil nil nil nil #x2e nil nil nil nil nil nil nil
62
       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
63
       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
64
       nil nil nil nil nil nil #x3d #x2d)
65
   :test 'equalp)
66
 
67
 (define-unibyte-encoder :koi8-ru (code)
68
   (or (and (< code #x80) code)
69
       (let ((hi (ldb (byte 8 8) code))
70
             (lo (ldb (byte 8 0) code)))
71
         (case hi
72
           (#x4
73
            (case lo
74
              (#x1 #xb3)
75
              (#x4 #xb4)
76
              (#x6 #xb6)
77
              (#x7 #xb7)
78
              (#xe #xbe)
79
              (#x10 #xe1)
80
              (#x11 #xe2)
81
              (#x12 #xf7)
82
              (#x13 #xe7)
83
              (#x14 #xe4)
84
              (#x15 #xe5)
85
              (#x16 #xf6)
86
              (#x17 #xfa)
87
              (#x18 #xe9)
88
              (#x19 #xea)
89
              (#x1a #xeb)
90
              (#x1b #xec)
91
              (#x1c #xed)
92
              (#x1d #xee)
93
              (#x1e #xef)
94
              (#x1f #xf0)
95
              (#x20 #xf2)
96
              (#x21 #xf3)
97
              (#x22 #xf4)
98
              (#x23 #xf5)
99
              (#x24 #xe6)
100
              (#x25 #xe8)
101
              (#x26 #xe3)
102
              (#x27 #xfe)
103
              (#x28 #xfb)
104
              (#x29 #xfd)
105
              (#x2a #xff)
106
              (#x2b #xf9)
107
              (#x2c #xf8)
108
              (#x2d #xfc)
109
              (#x2e #xe0)
110
              (#x2f #xf1)
111
              (#x30 #xc1)
112
              (#x31 #xc2)
113
              (#x32 #xd7)
114
              (#x33 #xc7)
115
              (#x34 #xc4)
116
              (#x35 #xc5)
117
              (#x36 #xd6)
118
              (#x37 #xda)
119
              (#x38 #xc9)
120
              (#x39 #xca)
121
              (#x3a #xcb)
122
              (#x3b #xcc)
123
              (#x3c #xcd)
124
              (#x3d #xce)
125
              (#x3e #xcf)
126
              (#x3f #xd0)
127
              (#x40 #xd2)
128
              (#x41 #xd3)
129
              (#x42 #xd4)
130
              (#x43 #xd5)
131
              (#x44 #xc6)
132
              (#x45 #xc8)
133
              (#x46 #xc3)
134
              (#x47 #xde)
135
              (#x48 #xdb)
136
              (#x49 #xdd)
137
              (#x4a #xdf)
138
              (#x4b #xd9)
139
              (#x4c #xd8)
140
              (#x4d #xdc)
141
              (#x4e #xc0)
142
              (#x4f #xd1)
143
              (#x51 #xa3)
144
              (#x54 #xa4)
145
              (#x56 #xa6)
146
              (#x57 #xa7)
147
              (#x5e #xae)
148
              (#x90 #xbd)
149
              (#x91 #xad)))
150
           (#x0
151
            (case lo
152
              (#xa0 #x9a)
153
              (#xa9 #xbf)
154
              (#xb0 #x9c)
155
              (#xb2 #x9d)
156
              (#xb7 #x9e)
157
              (#xf7 #x9f)))
158
           (#x22 (case lo (#x19 #x95) (#x1a #x96) (#x48 #x97) (#x64 #x98) (#x65 #x99)))
159
           (#x23 (case lo (#x20 #x93) (#x21 #x9b)))
160
           (#x25
161
            (case lo
162
              (#x0 #x80)
163
              (#x2 #x81)
164
              (#xc #x82)
165
              (#x10 #x83)
166
              (#x14 #x84)
167
              (#x18 #x85)
168
              (#x1c #x86)
169
              (#x24 #x87)
170
              (#x2c #x88)
171
              (#x34 #x89)
172
              (#x3c #x8a)
173
              (#x50 #xa0)
174
              (#x51 #xa1)
175
              (#x52 #xa2)
176
              (#x54 #xa5)
177
              (#x57 #xa8)
178
              (#x58 #xa9)
179
              (#x59 #xaa)
180
              (#x5a #xab)
181
              (#x5b #xac)
182
              (#x5e #xaf)
183
              (#x5f #xb0)
184
              (#x60 #xb1)
185
              (#x61 #xb2)
186
              (#x63 #xb5)
187
              (#x66 #xb8)
188
              (#x67 #xb9)
189
              (#x68 #xba)
190
              (#x69 #xbb)
191
              (#x6a #xbc)
192
              (#x80 #x8b)
193
              (#x84 #x8c)
194
              (#x88 #x8d)
195
              (#x8c #x8e)
196
              (#x90 #x8f)
197
              (#x91 #x90)
198
              (#x92 #x91)
199
              (#x93 #x92)
200
              (#xa0 #x94)))))
201
       (handle-error)))
202
 
203
 (define-character-encoding :koi8-r
204
     "An 8-bit, fixed-width character Russian encoding."
205
   :literal-char-code-limit #x80)
206
 
207
 (define-constant +koi8-r-to-unicode+
208
     #(#x2500 #x2502 #x250C #x2510 #x2514 #x2518 #x251C #x2524
209
       #x252C #x2534 #x253C #x2580 #x2584 #x2588 #x258C #x2590
210
       #x2591 #x2592 #x2593 #x2320 #x25A0 #x2219 #x221A #x2248
211
       #x2264 #x2265 #x00A0 #x2321 #x00B0 #x00B2 #x00B7 #x00F7
212
       #x2550 #x2551 #x2552 #x0451 #x2553 #x2554 #x2555 #x2556
213
       #x2557 #x2558 #x2559 #x255A #x255B #x255C #x255D #x255E
214
       #x255F #x2560 #x2561 #x0401 #x2562 #x2563 #x2564 #x2565
215
       #x2566 #x2567 #x2568 #x2569 #x256A #x256B #x256C #x00A9
216
       #x044E #x0430 #x0431 #x0446 #x0434 #x0435 #x0444 #x0433
217
       #x0445 #x0438 #x0439 #x043A #x043B #x043C #x043D #x043E
218
       #x043F #x044F #x0440 #x0441 #x0442 #x0443 #x0436 #x0432
219
       #x044C #x044B #x0437 #x0448 #x044D #x0449 #x0447 #x044A
220
       #x042E #x0410 #x0411 #x0426 #x0414 #x0415 #x0424 #x0413
221
       #x0425 #x0418 #x0419 #x041A #x041B #x041C #x041D #x041E
222
       #x041F #x042F #x0420 #x0421 #x0422 #x0423 #x0416 #x0412
223
       #x042C #x042B #x0417 #x0428 #x042D #x0429 #x0427 #x042A)
224
   :test #'equalp)
225
 
226
 (define-unibyte-decoder :koi8-r (octet)
227
   (if (< octet #x80)
228
       octet
229
       (svref +koi8-r-to-unicode+ (the ub8 (- octet #x80)))))
230
 
231
 (define-constant +unicode-x04->koi8-r+
232
     #(nil #x33 nil nil nil nil nil nil nil nil nil nil nil nil nil nil #x61
233
       #x62 #x77 #x67 #x64 #x65 #x76 #x7a #x69 #x6a #x6b #x6c #x6d #x6e #x6f
234
       #x70 #x72 #x73 #x74 #x75 #x66 #x68 #x63 #x7e #x7b #x7d #x7f #x79 #x78
235
       #x7c #x60 #x71 #x41 #x42 #x57 #x47 #x44 #x45 #x56 #x5a #x49 #x4a #x4b
236
       #x4c #x4d #x4e #x4f #x50 #x52 #x53 #x54 #x55 #x46 #x48 #x43 #x5e #x5b
237
       #x5d #x5f #x59 #x58 #x5c #x40 #x51 nil #x23)
238
   :test 'equalp)
239
 
240
 (define-constant +unicode-x25->koi8-r+
241
     #(#x0 nil #x1 nil nil nil nil nil nil nil nil nil #x2 nil nil nil #x3 nil
242
       nil nil #x4 nil nil nil #x5 nil nil nil #x6 nil nil nil nil nil nil nil
243
       #x7 nil nil nil nil nil nil nil #x8 nil nil nil nil nil nil nil #x9 nil
244
       nil nil nil nil nil nil #xa nil nil nil nil nil nil nil nil nil nil nil
245
       nil nil nil nil nil nil nil nil #x20 #x21 #x22 #x24 #x25 #x26 #x27 #x28
246
       #x29 #x2a #x2b #x2c #x2d #x2e #x2f #x30 #x31 #x32 #x34 #x35 #x36 #x37
247
       #x38 #x39 #x3a #x3b #x3c #x3d #x3e nil nil nil nil nil nil nil nil nil
248
       nil nil nil nil nil nil nil nil nil nil #xb nil nil nil #xc nil nil nil
249
       #xd nil nil nil #xe nil nil nil #xf #x10 #x11 #x12 nil nil nil nil nil
250
       nil nil nil nil nil nil nil #x14)
251
     :test 'equalp)
252
 
253
 (define-unibyte-encoder :koi8-r (code)
254
   (or (and (< code #x80) code)
255
       (let ((hi (ldb (byte 8 8) code))
256
             (lo (ldb (byte 8 0) code)))
257
         (case hi
258
           (#x4
259
            (case lo
260
              (#x1 #xb3)
261
              (#x10 #xe1)
262
              (#x11 #xe2)
263
              (#x12 #xf7)
264
              (#x13 #xe7)
265
              (#x14 #xe4)
266
              (#x15 #xe5)
267
              (#x16 #xf6)
268
              (#x17 #xfa)
269
              (#x18 #xe9)
270
              (#x19 #xea)
271
              (#x1a #xeb)
272
              (#x1b #xec)
273
              (#x1c #xed)
274
              (#x1d #xee)
275
              (#x1e #xef)
276
              (#x1f #xf0)
277
              (#x20 #xf2)
278
              (#x21 #xf3)
279
              (#x22 #xf4)
280
              (#x23 #xf5)
281
              (#x24 #xe6)
282
              (#x25 #xe8)
283
              (#x26 #xe3)
284
              (#x27 #xfe)
285
              (#x28 #xfb)
286
              (#x29 #xfd)
287
              (#x2a #xff)
288
              (#x2b #xf9)
289
              (#x2c #xf8)
290
              (#x2d #xfc)
291
              (#x2e #xe0)
292
              (#x2f #xf1)
293
              (#x30 #xc1)
294
              (#x31 #xc2)
295
              (#x32 #xd7)
296
              (#x33 #xc7)
297
              (#x34 #xc4)
298
              (#x35 #xc5)
299
              (#x36 #xd6)
300
              (#x37 #xda)
301
              (#x38 #xc9)
302
              (#x39 #xca)
303
              (#x3a #xcb)
304
              (#x3b #xcc)
305
              (#x3c #xcd)
306
              (#x3d #xce)
307
              (#x3e #xcf)
308
              (#x3f #xd0)
309
              (#x40 #xd2)
310
              (#x41 #xd3)
311
              (#x42 #xd4)
312
              (#x43 #xd5)
313
              (#x44 #xc6)
314
              (#x45 #xc8)
315
              (#x46 #xc3)
316
              (#x47 #xde)
317
              (#x48 #xdb)
318
              (#x49 #xdd)
319
              (#x4a #xdf)
320
              (#x4b #xd9)
321
              (#x4c #xd8)
322
              (#x4d #xdc)
323
              (#x4e #xc0)
324
              (#x4f #xd1)
325
              (#x51 #xa3)))
326
           (#x0
327
            (case lo
328
              (#xa0 #x9a)
329
              (#xa9 #xbf)
330
              (#xb0 #x9c)
331
              (#xb2 #x9d)
332
              (#xb7 #x9e)
333
              (#xf7 #x9f)))
334
           (#x22 (case lo (#x19 #x95) (#x1a #x96) (#x48 #x97) (#x64 #x98) (#x65 #x99)))
335
           (#x23 (case lo (#x20 #x93) (#x21 #x9b)))
336
           (#x25
337
            (case lo
338
              (#x0 #x80)
339
              (#x2 #x81)
340
              (#xc #x82)
341
              (#x10 #x83)
342
              (#x14 #x84)
343
              (#x18 #x85)
344
              (#x1c #x86)
345
              (#x24 #x87)
346
              (#x2c #x88)
347
              (#x34 #x89)
348
              (#x3c #x8a)
349
              (#x50 #xa0)
350
              (#x51 #xa1)
351
              (#x52 #xa2)
352
              (#x53 #xa4)
353
              (#x54 #xa5)
354
              (#x55 #xa6)
355
              (#x56 #xa7)
356
              (#x57 #xa8)
357
              (#x58 #xa9)
358
              (#x59 #xaa)
359
              (#x5a #xab)
360
              (#x5b #xac)
361
              (#x5c #xad)
362
              (#x5d #xae)
363
              (#x5e #xaf)
364
              (#x5f #xb0)
365
              (#x60 #xb1)
366
              (#x61 #xb2)
367
              (#x62 #xb4)
368
              (#x63 #xb5)
369
              (#x64 #xb6)
370
              (#x65 #xb7)
371
              (#x66 #xb8)
372
              (#x67 #xb9)
373
              (#x68 #xba)
374
              (#x69 #xbb)
375
              (#x6a #xbc)
376
              (#x6b #xbd)
377
              (#x6c #xbe)
378
              (#x80 #x8b)
379
              (#x84 #x8c)
380
              (#x88 #x8d)
381
              (#x8c #x8e)
382
              (#x90 #x8f)
383
              (#x91 #x90)
384
              (#x92 #x91)
385
              (#x93 #x92)
386
              (#xa0 #x94)))))
387
       (handle-error)))
388
 
389
 (define-character-encoding :koi8-u
390
     "An 8-bit, fixed-width character Ukranian encoding."
391
   :literal-char-code-limit #x80)
392
 
393
 (define-constant +koi8-u-to-unicode+
394
     #(#x2500 #x2502 #x250C #x2510 #x2514 #x2518 #x251C #x2524
395
       #x252C #x2534 #x253C #x2580 #x2584 #x2588 #x258C #x2590
396
       #x2591 #x2592 #x2593 #x2320 #x25A0 #x2219 #x221A #x2248
397
       #x2264 #x2265 #x00A0 #x2321 #x00B0 #x00B2 #x00B7 #x00F7
398
       #x2550 #x2551 #x2552 #x0451 #x0454 #x2554 #x0456 #x0457
399
       #x2557 #x2558 #x2559 #x255A #x255B #x0491 #x255D #x255E
400
       #x255F #x2560 #x2561 #x0401 #x0404 #x2563 #x0406 #x0407
401
       #x2566 #x2567 #x2568 #x2569 #x256A #x0490 #x256C #x00A9
402
       #x044E #x0430 #x0431 #x0446 #x0434 #x0435 #x0444 #x0433
403
       #x0445 #x0438 #x0439 #x043A #x043B #x043C #x043D #x043E
404
       #x043F #x044F #x0440 #x0441 #x0442 #x0443 #x0436 #x0432
405
       #x044C #x044B #x0437 #x0448 #x044D #x0449 #x0447 #x044A
406
       #x042E #x0410 #x0411 #x0426 #x0414 #x0415 #x0424 #x0413
407
       #x0425 #x0418 #x0419 #x041A #x041B #x041C #x041D #x041E
408
       #x041F #x042F #x0420 #x0421 #x0422 #x0423 #x0416 #x0412
409
       #x042C #x042B #x0417 #x0428 #x042D #x0429 #x0427 #x042A )
410
   :test #'equalp)
411
 
412
 (define-unibyte-decoder :koi8-u (octet)
413
   (if (< octet #x80)
414
       octet
415
       (svref +koi8-u-to-unicode+ (the ub8 (- octet #x80)))))
416
 
417
 (define-constant +unicode-x04->koi8-u+
418
     #(nil #x33 nil nil #x34 nil #x36 #x37 nil nil nil nil nil nil nil nil #x61
419
       #x62 #x77 #x67 #x64 #x65 #x76 #x7a #x69 #x6a #x6b #x6c #x6d #x6e #x6f
420
       #x70 #x72 #x73 #x74 #x75 #x66 #x68 #x63 #x7e #x7b #x7d #x7f #x79 #x78
421
       #x7c #x60 #x71 #x41 #x42 #x57 #x47 #x44 #x45 #x56 #x5a #x49 #x4a #x4b
422
       #x4c #x4d #x4e #x4f #x50 #x52 #x53 #x54 #x55 #x46 #x48 #x43 #x5e #x5b
423
       #x5d #x5f #x59 #x58 #x5c #x40 #x51 nil #x23 nil nil #x24 nil #x26 #x27
424
       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
425
       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
426
       nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
427
       nil nil #x3d #x2d)
428
     :test 'equalp)
429
 
430
 (define-constant +unicode-x25->koi8-u+
431
     #(#x0 nil #x1 nil nil nil nil nil nil nil nil nil #x2 nil nil nil #x3 nil
432
       nil nil #x4 nil nil nil #x5 nil nil nil #x6 nil nil nil nil nil nil nil
433
       #x7 nil nil nil nil nil nil nil #x8 nil nil nil nil nil nil nil #x9 nil
434
       nil nil nil nil nil nil #xa nil nil nil nil nil nil nil nil nil nil nil
435
       nil nil nil nil nil nil nil nil #x20 #x21 #x22 nil #x25 nil nil #x28
436
       #x29 #x2a #x2b #x2c nil #x2e #x2f #x30 #x31 #x32 nil #x35 nil nil #x38
437
       #x39 #x3a #x3b #x3c nil #x3e nil nil nil nil nil nil nil nil nil nil nil
438
       nil nil nil nil nil nil nil nil #xb nil nil nil #xc nil nil nil #xd nil
439
       nil nil #xe nil nil nil #xf #x10 #x11 #x12 nil nil nil nil nil nil nil
440
       nil nil nil nil nil #x14)
441
   :test 'equalp)
442
 
443
 (define-unibyte-encoder :koi8-u (code)
444
   (or (and (< code #x80) code)
445
       (let ((hi (ldb (byte 8 8) code))
446
             (lo (ldb (byte 8 0) code)))
447
         (case hi
448
           (#x4
449
            (case lo
450
              (#x1 #xb3)
451
              (#x4 #xb4)
452
              (#x6 #xb6)
453
              (#x7 #xb7)
454
              (#x10 #xe1)
455
              (#x11 #xe2)
456
              (#x12 #xf7)
457
              (#x13 #xe7)
458
              (#x14 #xe4)
459
              (#x15 #xe5)
460
              (#x16 #xf6)
461
              (#x17 #xfa)
462
              (#x18 #xe9)
463
              (#x19 #xea)
464
              (#x1a #xeb)
465
              (#x1b #xec)
466
              (#x1c #xed)
467
              (#x1d #xee)
468
              (#x1e #xef)
469
              (#x1f #xf0)
470
              (#x20 #xf2)
471
              (#x21 #xf3)
472
              (#x22 #xf4)
473
              (#x23 #xf5)
474
              (#x24 #xe6)
475
              (#x25 #xe8)
476
              (#x26 #xe3)
477
              (#x27 #xfe)
478
              (#x28 #xfb)
479
              (#x29 #xfd)
480
              (#x2a #xff)
481
              (#x2b #xf9)
482
              (#x2c #xf8)
483
              (#x2d #xfc)
484
              (#x2e #xe0)
485
              (#x2f #xf1)
486
              (#x30 #xc1)
487
              (#x31 #xc2)
488
              (#x32 #xd7)
489
              (#x33 #xc7)
490
              (#x34 #xc4)
491
              (#x35 #xc5)
492
              (#x36 #xd6)
493
              (#x37 #xda)
494
              (#x38 #xc9)
495
              (#x39 #xca)
496
              (#x3a #xcb)
497
              (#x3b #xcc)
498
              (#x3c #xcd)
499
              (#x3d #xce)
500
              (#x3e #xcf)
501
              (#x3f #xd0)
502
              (#x40 #xd2)
503
              (#x41 #xd3)
504
              (#x42 #xd4)
505
              (#x43 #xd5)
506
              (#x44 #xc6)
507
              (#x45 #xc8)
508
              (#x46 #xc3)
509
              (#x47 #xde)
510
              (#x48 #xdb)
511
              (#x49 #xdd)
512
              (#x4a #xdf)
513
              (#x4b #xd9)
514
              (#x4c #xd8)
515
              (#x4d #xdc)
516
              (#x4e #xc0)
517
              (#x4f #xd1)
518
              (#x51 #xa3)
519
              (#x54 #xa4)
520
              (#x56 #xa6)
521
              (#x57 #xa7)
522
              (#x90 #xbd)
523
              (#x91 #xad)))
524
           (#x0
525
            (case lo
526
              (#xa0 #x9a)
527
              (#xa9 #xbf)
528
              (#xb0 #x9c)
529
              (#xb2 #x9d)
530
              (#xb7 #x9e)
531
              (#xf7 #x9f)))
532
           (#x22 (case lo (#x19 #x95) (#x1a #x96) (#x48 #x97) (#x64 #x98) (#x65 #x99)))
533
           (#x23 (case lo (#x20 #x93) (#x21 #x9b)))
534
           (#x25
535
            (case lo
536
              (#x0 #x80)
537
              (#x2 #x81)
538
              (#xc #x82)
539
              (#x10 #x83)
540
              (#x14 #x84)
541
              (#x18 #x85)
542
              (#x1c #x86)
543
              (#x24 #x87)
544
              (#x2c #x88)
545
              (#x34 #x89)
546
              (#x3c #x8a)
547
              (#x50 #xa0)
548
              (#x51 #xa1)
549
              (#x52 #xa2)
550
              (#x54 #xa5)
551
              (#x57 #xa8)
552
              (#x58 #xa9)
553
              (#x59 #xaa)
554
              (#x5a #xab)
555
              (#x5b #xac)
556
              (#x5d #xae)
557
              (#x5e #xaf)
558
              (#x5f #xb0)
559
              (#x60 #xb1)
560
              (#x61 #xb2)
561
              (#x63 #xb5)
562
              (#x66 #xb8)
563
              (#x67 #xb9)
564
              (#x68 #xba)
565
              (#x69 #xbb)
566
              (#x6a #xbc)
567
              (#x6c #xbe)
568
              (#x80 #x8b)
569
              (#x84 #x8c)
570
              (#x88 #x8d)
571
              (#x8c #x8e)
572
              (#x90 #x8f)
573
              (#x91 #x90)
574
              (#x92 #x91)
575
              (#x93 #x92)
576
              (#xa0 #x94)))))
577
       (handle-error)))