~ubuntu-branches/ubuntu/quantal/mesa/quantal

« back to all changes in this revision

Viewing changes to src/mesa/drivers/windows/gldirect/mesasw/colors.h

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2007-02-21 12:44:07 UTC
  • mfrom: (1.2.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 22.
  • Revision ID: james.westby@ubuntu.com-20070221124407-rgcacs32mycrtadl
ImportĀ upstreamĀ versionĀ 6.5.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*      File name       :       colors.h
2
 
 *  Version             :       2.3
3
 
 *
4
 
 *  Header file for display driver for Mesa 2.3  under 
5
 
 *      Windows95 and WindowsNT 
6
 
 *      This file defines macros and global variables  needed
7
 
 *      for converting color format
8
 
 *
9
 
 *      Copyright (C) 1996-  Li Wei
10
 
 *  Address             :               Institute of Artificial Intelligence
11
 
 *                              :                       & Robotics
12
 
 *                              :               Xi'an Jiaotong University
13
 
 *  Email               :               liwei@aiar.xjtu.edu.cn
14
 
 *  Web page    :               http://sun.aiar.xjtu.edu.cn
15
 
 *
16
 
 *  This file and its associations are partially based on the 
17
 
 *  Windows NT driver for Mesa, written by Mark Leaming
18
 
 *  (mark@rsinc.com).
19
 
 */
20
 
 
21
 
/* $Log: ddcolors.h 1997/6/14 by Li Wei(liwei@aiar.xjtu.edu.cn)
22
 
 * Macros for pixel format defined
23
 
 */
24
 
 
25
 
/*
26
 
 * $Log: colors.h,v $
27
 
 * Revision 1.1  2004-04-20 11:13:11  alanh
28
 
 * add SciTech's GLDirect driver for Windows.
29
 
 *
30
 
 * This code is donated to Mesa which allows the usage of
31
 
 * a Direct3D layer (DX7, DX8, DX9 or complete software fallback).
32
 
 *
33
 
 * No build system exists for this code yet, that will come.....
34
 
 *
35
 
 * Revision 1.1.1.1  1999/08/19 00:55:42  jtg
36
 
 * Imported sources
37
 
 *
38
 
 * Revision 1.2  1999/01/03 03:08:57  brianp
39
 
 * Ted Jump's changes
40
 
 *
41
 
 * Revision 1.1  1999/01/03 03:08:12  brianp
42
 
 * Initial revision
43
 
 *
44
 
 * Revision 2.0.2  1997/4/30 15:58:00  CST by Li Wei(liwei@aiar.xjtu.edu.cn)
45
 
 * Add LUTs need for dithering
46
 
 */
47
 
 
48
 
/*
49
 
 * $Log: colors.h,v $
50
 
 * Revision 1.1  2004-04-20 11:13:11  alanh
51
 
 * add SciTech's GLDirect driver for Windows.
52
 
 *
53
 
 * This code is donated to Mesa which allows the usage of
54
 
 * a Direct3D layer (DX7, DX8, DX9 or complete software fallback).
55
 
 *
56
 
 * No build system exists for this code yet, that will come.....
57
 
 *
58
 
 * Revision 1.1.1.1  1999/08/19 00:55:42  jtg
59
 
 * Imported sources
60
 
 *
61
 
 * Revision 1.2  1999/01/03 03:08:57  brianp
62
 
 * Ted Jump's changes
63
 
 *
64
 
 * Revision 1.1  1999/01/03 03:08:12  brianp
65
 
 * Initial revision
66
 
 *
67
 
 * Revision 2.0.1  1997/4/29 15:52:00  CST by Li Wei(liwei@aiar.xjtu.edu.cn)
68
 
 * Add BGR8 Macro
69
 
 */
70
 
 
71
 
/*
72
 
 * $Log: colors.h,v $
73
 
 * Revision 1.1  2004-04-20 11:13:11  alanh
74
 
 * add SciTech's GLDirect driver for Windows.
75
 
 *
76
 
 * This code is donated to Mesa which allows the usage of
77
 
 * a Direct3D layer (DX7, DX8, DX9 or complete software fallback).
78
 
 *
79
 
 * No build system exists for this code yet, that will come.....
80
 
 *
81
 
 * Revision 1.1.1.1  1999/08/19 00:55:42  jtg
82
 
 * Imported sources
83
 
 *
84
 
 * Revision 1.2  1999/01/03 03:08:57  brianp
85
 
 * Ted Jump's changes
86
 
 *
87
 
 * Revision 1.1  1999/01/03 03:08:12  brianp
88
 
 * Initial revision
89
 
 *
90
 
 * Revision 2.0  1996/11/15 10:55:00  CST by Li Wei(liwei@aiar.xjtu.edu.cn)
91
 
 * Initial revision
92
 
 */
93
 
/* Values for wmesa->pixelformat: */
94
 
 
95
 
#define PF_8A8B8G8R     3       /* 32-bit TrueColor:  8-A, 8-B, 8-G, 8-R */
96
 
#define PF_8R8G8B       4       /* 32-bit TrueColor:  8-R, 8-G, 8-B */
97
 
#define PF_5R6G5B       5       /* 16-bit TrueColor:  5-R, 6-G, 5-B bits */
98
 
#define PF_DITHER8      6       /* Dithered RGB using a lookup table */
99
 
#define PF_LOOKUP       7       /* Undithered RGB using a lookup table */
100
 
#define PF_GRAYSCALE    10      /* Grayscale or StaticGray */
101
 
#define PF_BADFORMAT    11
102
 
#define PF_INDEX8               12
103
 
 
104
 
char ColorMap16[] = {
105
 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
106
 
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
107
 
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
108
 
0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
109
 
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
110
 
0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
111
 
0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
112
 
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
113
 
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
114
 
0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
115
 
0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
116
 
0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
117
 
0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
118
 
0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
119
 
0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
120
 
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
121
 
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
122
 
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
123
 
0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
124
 
0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
125
 
0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
126
 
0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
127
 
0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
128
 
0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
129
 
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
130
 
0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
131
 
0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,
132
 
0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
133
 
0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,
134
 
0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
135
 
0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
136
 
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F};
137
 
 
138
 
#define BGR8(r,g,b)             (unsigned)(((BYTE)(b & 0xc0 | (g & 0xe0)>>2 | (r & 0xe0)>>5)))
139
 
#ifdef DDRAW
140
 
#define BGR16(r,g,b)    ((WORD)(((BYTE)(ColorMap16[b]) | ((BYTE)(g&0xfc) << 3)) | (((WORD)(BYTE)(ColorMap16[r])) << 11)))
141
 
#else
142
 
#define BGR16(r,g,b)    ((WORD)(((BYTE)(ColorMap16[b]) | ((BYTE)(ColorMap16[g]) << 5)) | (((WORD)(BYTE)(ColorMap16[r])) << 10)))
143
 
#endif
144
 
#define BGR24(r,g,b)    (unsigned long)(((DWORD)(((BYTE)(b)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(r))<<16))) << 8)
145
 
#define BGR32(r,g,b)    (unsigned long)((DWORD)(((BYTE)(b)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(r))<<16)))
146
 
 
147
 
 
148
 
 
149
 
/*
150
 
 * If pixelformat==PF_8A8B8G8R:
151
 
 */
152
 
#define PACK_8A8B8G8R( R, G, B, A )     \
153
 
        ( ((A) << 24) | ((B) << 16) | ((G) << 8) | (R) )
154
 
 
155
 
 
156
 
/*
157
 
 * If pixelformat==PF_8R8G8B:
158
 
 */
159
 
#define PACK_8R8G8B( R, G, B)    ( ((R) << 16) | ((G) << 8) | (B) )
160
 
 
161
 
 
162
 
/*
163
 
 * If pixelformat==PF_5R6G5B:
164
 
 */
165
 
 
166
 
 
167
 
#ifdef DDRAW
168
 
#define PACK_5R6G5B( R, G, B) ((WORD)(((BYTE)(ColorMap16[B]) | ((BYTE)(G&0xfc) << 3)) | (((WORD)(BYTE)(ColorMap16[R])) << 11)))
169
 
#else
170
 
#define PACK_5R6G5B( R, G, B)   ((WORD)(((BYTE)(ColorMap16[B]) | ((BYTE)(ColorMap16[G]) << 5)) | (((WORD)(BYTE)(ColorMap16[R])) << 10)))
171
 
#endif
172
 
/*----------------------------------------------------------------------------
173
 
 
174
 
Division lookup tables.  These tables compute 0-255 divided by 51 and
175
 
modulo 51.  These tables could approximate gamma correction.
176
 
 
177
 
*/
178
 
 
179
 
char unsigned const aDividedBy51Rounded[256] =
180
 
{
181
 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
182
 
  0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
183
 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
184
 
  1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
185
 
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
186
 
  2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
187
 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
188
 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
189
 
  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
190
 
  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
191
 
  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
192
 
};
193
 
 
194
 
char unsigned const aDividedBy51[256] =
195
 
{
196
 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
197
 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
198
 
  0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
199
 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
200
 
  1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
201
 
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
202
 
  2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
203
 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
204
 
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
205
 
  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
206
 
  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 
207
 
};
208
 
 
209
 
char unsigned const aModulo51[256] =
210
 
{
211
 
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
212
 
  20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
213
 
  38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 1, 2, 3, 4, 5, 6,
214
 
  7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
215
 
  26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
216
 
  44, 45, 46, 47, 48, 49, 50, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
217
 
  13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
218
 
  31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
219
 
  49, 50, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
220
 
  18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
221
 
  36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 1, 2, 3,
222
 
  4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
223
 
  23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
224
 
  41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 
225
 
};
226
 
 
227
 
/*----------------------------------------------------------------------------
228
 
 
229
 
Multiplication LUTs.  These compute 0-5 times 6 and 36.
230
 
 
231
 
*/
232
 
 
233
 
char unsigned const aTimes6[6] =
234
 
{
235
 
  0, 6, 12, 18, 24, 30
236
 
};
237
 
 
238
 
char unsigned const aTimes36[6] =
239
 
{
240
 
  0, 36, 72, 108, 144, 180
241
 
};
242
 
 
243
 
 
244
 
/*----------------------------------------------------------------------------
245
 
 
246
 
Dither matrices for 8 bit to 2.6 bit halftones.
247
 
 
248
 
*/
249
 
 
250
 
char unsigned const aHalftone16x16[256] =
251
 
{
252
 
  0, 44, 9, 41, 3, 46, 12, 43, 1, 44, 10, 41, 3, 46, 12, 43,
253
 
  34, 16, 25, 19, 37, 18, 28, 21, 35, 16, 26, 19, 37, 18, 28, 21,
254
 
  38, 6, 47, 3, 40, 9, 50, 6, 38, 7, 47, 4, 40, 9, 49, 6,
255
 
  22, 28, 13, 31, 25, 31, 15, 34, 22, 29, 13, 32, 24, 31, 15, 34,
256
 
  2, 46, 12, 43, 1, 45, 10, 42, 2, 45, 11, 42, 1, 45, 11, 42,
257
 
  37, 18, 27, 21, 35, 17, 26, 20, 36, 17, 27, 20, 36, 17, 26, 20,
258
 
  40, 8, 49, 5, 38, 7, 48, 4, 39, 8, 48, 5, 39, 7, 48, 4,
259
 
  24, 30, 15, 33, 23, 29, 13, 32, 23, 30, 14, 33, 23, 29, 14, 32,
260
 
  2, 46, 12, 43, 0, 44, 10, 41, 3, 47, 12, 44, 0, 44, 10, 41,
261
 
  37, 18, 27, 21, 35, 16, 25, 19, 37, 19, 28, 22, 35, 16, 25, 19,
262
 
  40, 9, 49, 5, 38, 7, 47, 4, 40, 9, 50, 6, 38, 6, 47, 3,
263
 
  24, 30, 15, 34, 22, 29, 13, 32, 25, 31, 15, 34, 22, 28, 13, 31,
264
 
  1, 45, 11, 42, 2, 46, 11, 42, 1, 45, 10, 41, 2, 46, 11, 43,
265
 
  36, 17, 26, 20, 36, 17, 27, 21, 35, 16, 26, 20, 36, 18, 27, 21,
266
 
  39, 8, 48, 4, 39, 8, 49, 5, 38, 7, 48, 4, 39, 8, 49, 5,
267
 
  23, 29, 14, 33, 24, 30, 14, 33, 23, 29, 13, 32, 24, 30, 14, 33,
268
 
};
269
 
 
270
 
char unsigned const aHalftone8x8[64] =
271
 
{
272
 
   0, 38,  9, 47,  2, 40, 11, 50,
273
 
  25, 12, 35, 22, 27, 15, 37, 24,
274
 
   6, 44,  3, 41,  8, 47,  5, 43,
275
 
  31, 19, 28, 15, 34, 21, 31, 18,
276
 
   1, 39, 11, 49,  0, 39, 10, 48,
277
 
  27, 14, 36, 23, 26, 13, 35, 23,
278
 
   7, 46,  4, 43,  7, 45,  3, 42,
279
 
  33, 20, 30, 17, 32, 19, 29, 16,
280
 
};
281
 
 
282
 
char unsigned const aHalftone4x4_1[16] =
283
 
{
284
 
  0, 25, 6, 31,
285
 
  38, 12, 44, 19,
286
 
  9, 35, 3, 28,
287
 
  47, 22, 41, 15
288
 
};
289
 
 
290
 
char unsigned const aHalftone4x4_2[16] =
291
 
{
292
 
  41, 3, 9, 28,
293
 
  35, 15, 22, 47,
294
 
  6, 25, 38, 0,
295
 
  19, 44, 31, 12
296
 
};
297
 
 
298
 
/***************************************************************************
299
 
  aWinGHalftoneTranslation
300
 
 
301
 
  Translates a 2.6 bit-per-pixel halftoned representation into the
302
 
  slightly rearranged WinG Halftone Palette.
303
 
*/
304
 
 
305
 
char unsigned const aWinGHalftoneTranslation[216] =
306
 
{
307
 
  0,
308
 
  29,
309
 
  30,
310
 
  31,
311
 
  32,
312
 
  249,
313
 
  33,
314
 
  34,
315
 
  35,
316
 
  36,
317
 
  37,
318
 
  38,
319
 
  39,
320
 
  40,
321
 
  41,
322
 
  42,
323
 
  43,
324
 
  44,
325
 
  45,
326
 
  46,
327
 
  47,
328
 
  48,
329
 
  49,
330
 
  50,
331
 
  51,
332
 
  52,
333
 
  53,
334
 
  54,
335
 
  55,
336
 
  56,
337
 
  250,
338
 
  250,
339
 
  57,
340
 
  58,
341
 
  59,
342
 
  251,
343
 
  60,
344
 
  61,
345
 
  62,
346
 
  63,
347
 
  64,
348
 
  65,
349
 
  66,
350
 
  67,
351
 
  68,
352
 
  69,
353
 
  70,
354
 
  71,
355
 
  72,
356
 
  73,
357
 
  74,
358
 
  75,
359
 
  76,
360
 
  77,
361
 
  78,
362
 
  79,
363
 
  80,
364
 
  81,
365
 
  82,
366
 
  83,
367
 
  84,
368
 
  85,
369
 
  86,
370
 
  87,
371
 
  88,
372
 
  89,
373
 
  250,
374
 
  90,
375
 
  91,
376
 
  92,
377
 
  93,
378
 
  94,
379
 
  95,
380
 
  96,
381
 
  97,
382
 
  98,
383
 
  99,
384
 
  100,
385
 
  101,
386
 
  102,
387
 
  103,
388
 
  104,
389
 
  105,
390
 
  106,
391
 
  107,
392
 
  108,
393
 
  109,
394
 
  110,
395
 
  111,
396
 
  227,
397
 
  112,
398
 
  113,
399
 
  114,
400
 
  115,
401
 
  116,
402
 
  117,
403
 
  118,
404
 
  119,
405
 
  151,
406
 
  120,
407
 
  121,
408
 
  122,
409
 
  123,
410
 
  124,
411
 
  228,
412
 
  125,
413
 
  126,
414
 
  229,
415
 
  133,
416
 
  162,
417
 
  135,
418
 
  131,
419
 
  132,
420
 
  137,
421
 
  166,
422
 
  134,
423
 
  140,
424
 
  130,
425
 
  136,
426
 
  143,
427
 
  138,
428
 
  139,
429
 
  174,
430
 
  141,
431
 
  142,
432
 
  177,
433
 
  129,
434
 
  144,
435
 
  145,
436
 
  146,
437
 
  147,
438
 
  148,
439
 
  149,
440
 
  150,
441
 
  157,
442
 
  152,
443
 
  153,
444
 
  154,
445
 
  155,
446
 
  156,
447
 
  192,
448
 
  158,
449
 
  159,
450
 
  160,
451
 
  161,
452
 
  196,
453
 
  163,
454
 
  164,
455
 
  165,
456
 
  127,
457
 
  199,
458
 
  167,
459
 
  168,
460
 
  169,
461
 
  170,
462
 
  171,
463
 
  172,
464
 
  173,
465
 
  207,
466
 
  175,
467
 
  176,
468
 
  210,
469
 
  178,
470
 
  179,
471
 
  180,
472
 
  181,
473
 
  182,
474
 
  183,
475
 
  184,
476
 
  185,
477
 
  186,
478
 
  187,
479
 
  188,
480
 
  189,
481
 
  190,
482
 
  191,
483
 
  224,
484
 
  193,
485
 
  194,
486
 
  195,
487
 
  252,
488
 
  252,
489
 
  197,
490
 
  198,
491
 
  128,
492
 
  253,
493
 
  252,
494
 
  200,
495
 
  201,
496
 
  202,
497
 
  203,
498
 
  204,
499
 
  205,
500
 
  206,
501
 
  230,
502
 
  208,
503
 
  209,
504
 
  231,
505
 
  211,
506
 
  212,
507
 
  213,
508
 
  214,
509
 
  215,
510
 
  216,
511
 
  217,
512
 
  218,
513
 
  219,
514
 
  220,
515
 
  221,
516
 
  222,
517
 
  254,
518
 
  223,
519
 
  232,
520
 
  225,
521
 
  226,
522
 
  255,
523
 
};
 
 
b'\\ No newline at end of file'