-
Notifications
You must be signed in to change notification settings - Fork 0
/
matplotlib_colormaps.h
370 lines (366 loc) · 27.7 KB
/
matplotlib_colormaps.h
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
// Colormaps extracted from matplotlib
// Copyright (c) 2012-2013 Matplotlib Development Team; All Rights Reserved.
const uint8_t twilight_shifted[] = {
48, 20, 55, 48, 19, 56, 49, 19, 57, 49, 18, 58, 50, 18, 58,
50, 18, 59, 51, 17, 60, 51, 17, 61, 52, 17, 62, 52, 17, 63,
53, 17, 64, 54, 17, 65, 54, 17, 66, 55, 17, 67, 55, 17, 68,
56, 17, 69, 57, 17, 70, 58, 17, 72, 58, 17, 73, 59, 17, 74,
60, 17, 75, 61, 17, 77, 61, 17, 78, 62, 17, 80, 63, 18, 81,
64, 18, 83, 65, 18, 84, 65, 18, 86, 66, 18, 87, 67, 19, 89,
68, 19, 90, 69, 19, 92, 70, 20, 94, 71, 20, 95, 71, 20, 97,
72, 21, 99, 73, 21, 100, 74, 21, 102, 75, 22, 104, 76, 22, 105,
76, 23, 107, 77, 23, 109, 78, 24, 111, 79, 25, 112, 79, 25, 114,
80, 26, 116, 81, 26, 117, 81, 27, 119, 82, 28, 121, 83, 29, 122,
83, 30, 124, 84, 30, 126, 85, 31, 127, 85, 32, 129, 86, 33, 130,
86, 34, 132, 87, 35, 133, 87, 36, 135, 87, 37, 136, 88, 38, 138,
88, 39, 139, 89, 40, 141, 89, 41, 142, 89, 42, 143, 90, 43, 144,
90, 45, 146, 90, 46, 147, 91, 47, 148, 91, 48, 149, 91, 49, 150,
91, 50, 152, 92, 52, 153, 92, 53, 154, 92, 54, 155, 92, 55, 156,
92, 56, 157, 93, 58, 158, 93, 59, 159, 93, 60, 160, 93, 61, 161,
93, 62, 161, 93, 64, 162, 93, 65, 163, 93, 66, 164, 94, 67, 165,
94, 69, 166, 94, 70, 166, 94, 71, 167, 94, 72, 168, 94, 73, 169,
94, 75, 169, 94, 76, 170, 94, 77, 171, 94, 78, 171, 94, 79, 172,
94, 81, 173, 94, 82, 173, 94, 83, 174, 94, 84, 174, 95, 85, 175,
95, 87, 176, 95, 88, 176, 95, 89, 177, 95, 90, 177, 95, 91, 178,
95, 93, 178, 95, 94, 179, 95, 95, 179, 95, 96, 180, 95, 97, 180,
95, 98, 180, 95, 100, 181, 95, 101, 181, 96, 102, 182, 96, 103, 182,
96, 104, 182, 96, 105, 183, 96, 106, 183, 96, 108, 184, 96, 109, 184,
96, 110, 184, 97, 111, 185, 97, 112, 185, 97, 113, 185, 97, 114, 186,
97, 115, 186, 98, 117, 186, 98, 118, 186, 98, 119, 187, 98, 120, 187,
99, 121, 187, 99, 122, 187, 99, 123, 188, 100, 124, 188, 100, 125, 188,
100, 126, 188, 101, 127, 189, 101, 128, 189, 102, 130, 189, 102, 131, 189,
102, 132, 189, 103, 133, 190, 103, 134, 190, 104, 135, 190, 104, 136, 190,
105, 137, 190, 105, 138, 191, 106, 139, 191, 107, 140, 191, 107, 141, 191,
108, 142, 191, 108, 143, 191, 109, 144, 192, 110, 145, 192, 110, 146, 192,
111, 147, 192, 112, 148, 192, 113, 149, 192, 113, 150, 193, 114, 151, 193,
115, 152, 193, 116, 153, 193, 117, 154, 193, 118, 155, 193, 118, 156, 193,
119, 157, 194, 120, 158, 194, 121, 159, 194, 122, 160, 194, 123, 161, 194,
124, 162, 194, 125, 163, 195, 126, 164, 195, 127, 165, 195, 128, 165, 195,
129, 166, 195, 130, 167, 195, 132, 168, 196, 133, 169, 196, 134, 170, 196,
135, 171, 196, 136, 172, 196, 137, 173, 197, 138, 174, 197, 140, 175, 197,
141, 176, 197, 142, 177, 197, 143, 177, 198, 145, 178, 198, 146, 179, 198,
147, 180, 198, 149, 181, 199, 150, 182, 199, 151, 183, 199, 153, 184, 200,
154, 184, 200, 156, 185, 200, 157, 186, 200, 158, 187, 201, 160, 188, 201,
161, 189, 201, 163, 190, 202, 164, 190, 202, 166, 191, 202, 167, 192, 203,
169, 193, 203, 170, 194, 204, 172, 194, 204, 173, 195, 205, 175, 196, 205,
176, 197, 205, 178, 198, 206, 179, 198, 206, 181, 199, 207, 182, 200, 207,
184, 201, 208, 185, 201, 208, 187, 202, 209, 188, 203, 209, 190, 204, 210,
191, 204, 211, 193, 205, 211, 194, 206, 212, 196, 206, 212, 197, 207, 213,
199, 208, 213, 200, 208, 214, 201, 209, 215, 203, 210, 215, 204, 210, 216,
205, 211, 216, 206, 211, 217, 208, 212, 217, 209, 213, 218, 210, 213, 219,
211, 214, 219, 212, 214, 220, 213, 214, 220, 214, 215, 221, 215, 215, 221,
216, 216, 222, 217, 216, 222, 218, 216, 223, 219, 216, 223, 220, 217, 223,
220, 217, 224, 221, 217, 224, 222, 217, 225, 222, 217, 225, 223, 217, 225,
224, 217, 226, 224, 217, 226, 225, 217, 226, 225, 217, 226, 226, 217, 226,
226, 217, 226, 226, 217, 225, 226, 217, 225, 226, 217, 224, 226, 216, 223,
225, 216, 223, 225, 216, 222, 225, 216, 221, 225, 215, 220, 224, 215, 219,
224, 215, 218, 224, 214, 218, 224, 214, 217, 223, 213, 216, 223, 212, 215,
223, 212, 214, 222, 211, 212, 222, 211, 211, 222, 210, 210, 221, 209, 209,
221, 208, 207, 221, 208, 206, 220, 207, 205, 220, 206, 203, 220, 205, 202,
219, 204, 200, 219, 203, 198, 218, 203, 197, 218, 202, 195, 217, 201, 194,
217, 200, 192, 216, 199, 190, 216, 198, 189, 216, 197, 187, 215, 196, 185,
215, 195, 184, 214, 194, 182, 214, 193, 180, 213, 192, 179, 213, 191, 177,
212, 190, 175, 212, 189, 173, 212, 188, 172, 211, 186, 170, 211, 185, 168,
210, 184, 167, 210, 183, 165, 209, 182, 163, 209, 181, 161, 209, 180, 160,
208, 179, 158, 208, 178, 156, 208, 176, 155, 207, 175, 153, 207, 174, 151,
207, 173, 150, 206, 172, 148, 206, 171, 146, 206, 169, 145, 205, 168, 143,
205, 167, 142, 205, 166, 140, 204, 165, 139, 204, 163, 137, 204, 162, 135,
204, 161, 134, 203, 160, 133, 203, 159, 131, 203, 157, 130, 202, 156, 128,
202, 155, 127, 202, 154, 125, 202, 153, 124, 201, 151, 123, 201, 150, 121,
201, 149, 120, 200, 148, 119, 200, 146, 117, 200, 145, 116, 200, 144, 115,
199, 143, 114, 199, 142, 113, 199, 140, 111, 198, 139, 110, 198, 138, 109,
198, 137, 108, 198, 135, 107, 197, 134, 106, 197, 133, 105, 197, 132, 104,
196, 130, 103, 196, 129, 102, 196, 128, 101, 195, 127, 100, 195, 125, 99,
194, 124, 99, 194, 123, 98, 194, 122, 97, 193, 121, 96, 193, 119, 95,
192, 118, 95, 192, 117, 94, 192, 116, 93, 191, 114, 93, 191, 113, 92,
190, 112, 91, 190, 111, 91, 189, 110, 90, 189, 108, 90, 188, 107, 89,
188, 106, 88, 187, 105, 88, 187, 104, 87, 186, 102, 87, 186, 101, 87,
185, 100, 86, 185, 99, 86, 184, 98, 85, 184, 97, 85, 183, 95, 85,
182, 94, 84, 182, 93, 84, 181, 92, 84, 181, 91, 83, 180, 90, 83,
179, 89, 83, 179, 87, 82, 178, 86, 82, 177, 85, 82, 177, 84, 82,
176, 83, 81, 175, 82, 81, 175, 81, 81, 174, 80, 81, 173, 78, 81,
172, 77, 81, 172, 76, 80, 171, 75, 80, 170, 74, 80, 169, 73, 80,
169, 72, 80, 168, 71, 80, 167, 70, 80, 166, 69, 80, 165, 68, 80,
165, 67, 80, 164, 66, 80, 163, 65, 80, 162, 64, 80, 161, 63, 80,
160, 62, 80, 160, 61, 80, 159, 60, 80, 158, 59, 80, 157, 58, 80,
156, 57, 80, 155, 56, 80, 154, 55, 80, 153, 54, 80, 152, 53, 80,
151, 52, 80, 150, 51, 80, 149, 50, 80, 148, 49, 80, 147, 48, 80,
146, 47, 80, 145, 47, 80, 144, 46, 80, 143, 45, 80, 142, 44, 80,
141, 43, 80, 140, 42, 80, 139, 42, 80, 138, 41, 80, 136, 40, 80,
135, 39, 80, 134, 39, 80, 133, 38, 80, 132, 37, 80, 131, 37, 80,
129, 36, 80, 128, 35, 80, 127, 35, 80, 126, 34, 80, 125, 33, 80,
123, 33, 80, 122, 32, 80, 121, 32, 80, 120, 31, 79, 118, 31, 79,
117, 30, 79, 116, 30, 79, 114, 29, 79, 113, 29, 79, 112, 28, 78,
111, 28, 78, 109, 27, 78, 108, 27, 78, 107, 27, 77, 105, 26, 77,
104, 26, 77, 103, 25, 76, 101, 25, 76, 100, 25, 75, 99, 24, 75,
97, 24, 75, 96, 24, 74, 95, 23, 74, 93, 23, 73, 92, 23, 73,
91, 22, 72, 89, 22, 72, 88, 22, 71, 87, 22, 71, 86, 21, 70,
84, 21, 70, 83, 21, 69, 82, 21, 69, 80, 20, 68, 79, 20, 68,
78, 20, 67, 77, 20, 67, 75, 19, 66, 74, 19, 66, 73, 19, 65,
72, 19, 65, 71, 19, 64, 70, 18, 64, 68, 18, 63, 67, 18, 62,
66, 18, 62, 65, 18, 61, 64, 18, 61, 63, 18, 61, 62, 17, 60,
61, 17, 60, 60, 17, 59, 59, 17, 59, 58, 17, 58, 58, 17, 58,
57, 17, 58, 56, 17, 57, 55, 17, 57, 54, 17, 57, 54, 17, 56,
53, 17, 56, 52, 18, 56, 52, 18, 56, 51, 18, 55, 51, 18, 55,
50, 18, 55, 49, 19, 55, 49, 19, 55, 48, 20, 55, 47, 20, 54};
const uint8_t magma[] = {
0, 0, 4, 1, 0, 5, 1, 1, 6, 1, 1, 8, 2, 1, 9,
2, 2, 11, 2, 2, 13, 3, 3, 15, 3, 3, 18, 4, 4, 20,
5, 4, 22, 6, 5, 24, 6, 5, 26, 7, 6, 28, 8, 7, 30,
9, 7, 32, 10, 8, 34, 11, 9, 36, 12, 9, 38, 13, 10, 41,
14, 11, 43, 16, 11, 45, 17, 12, 47, 18, 13, 49, 19, 13, 52,
20, 14, 54, 21, 14, 56, 22, 15, 59, 24, 15, 61, 25, 16, 63,
26, 16, 66, 28, 16, 68, 29, 17, 71, 30, 17, 73, 32, 17, 75,
33, 17, 78, 34, 17, 80, 36, 18, 83, 37, 18, 85, 39, 18, 88,
41, 17, 90, 42, 17, 92, 44, 17, 95, 45, 17, 97, 47, 17, 99,
49, 17, 101, 51, 16, 103, 52, 16, 105, 54, 16, 107, 56, 16, 108,
57, 15, 110, 59, 15, 112, 61, 15, 113, 63, 15, 114, 64, 15, 116,
66, 15, 117, 68, 15, 118, 69, 16, 119, 71, 16, 120, 73, 16, 120,
74, 16, 121, 76, 17, 122, 78, 17, 123, 79, 18, 123, 81, 18, 124,
82, 19, 124, 84, 19, 125, 86, 20, 125, 87, 21, 126, 89, 21, 126,
90, 22, 126, 92, 22, 127, 93, 23, 127, 95, 24, 127, 96, 24, 128,
98, 25, 128, 100, 26, 128, 101, 26, 128, 103, 27, 128, 104, 28, 129,
106, 28, 129, 107, 29, 129, 109, 29, 129, 110, 30, 129, 112, 31, 129,
114, 31, 129, 115, 32, 129, 117, 33, 129, 118, 33, 129, 120, 34, 129,
121, 34, 130, 123, 35, 130, 124, 35, 130, 126, 36, 130, 128, 37, 130,
129, 37, 129, 131, 38, 129, 132, 38, 129, 134, 39, 129, 136, 39, 129,
137, 40, 129, 139, 41, 129, 140, 41, 129, 142, 42, 129, 144, 42, 129,
145, 43, 129, 147, 43, 128, 148, 44, 128, 150, 44, 128, 152, 45, 128,
153, 45, 128, 155, 46, 127, 156, 46, 127, 158, 47, 127, 160, 47, 127,
161, 48, 126, 163, 48, 126, 165, 49, 126, 166, 49, 125, 168, 50, 125,
170, 51, 125, 171, 51, 124, 173, 52, 124, 174, 52, 123, 176, 53, 123,
178, 53, 123, 179, 54, 122, 181, 54, 122, 183, 55, 121, 184, 55, 121,
186, 56, 120, 188, 57, 120, 189, 57, 119, 191, 58, 119, 192, 58, 118,
194, 59, 117, 196, 60, 117, 197, 60, 116, 199, 61, 115, 200, 62, 115,
202, 62, 114, 204, 63, 113, 205, 64, 113, 207, 64, 112, 208, 65, 111,
210, 66, 111, 211, 67, 110, 213, 68, 109, 214, 69, 108, 216, 69, 108,
217, 70, 107, 219, 71, 106, 220, 72, 105, 222, 73, 104, 223, 74, 104,
224, 76, 103, 226, 77, 102, 227, 78, 101, 228, 79, 100, 229, 80, 100,
231, 82, 99, 232, 83, 98, 233, 84, 98, 234, 86, 97, 235, 87, 96,
236, 88, 96, 237, 90, 95, 238, 91, 94, 239, 93, 94, 240, 95, 94,
241, 96, 93, 242, 98, 93, 242, 100, 92, 243, 101, 92, 244, 103, 92,
244, 105, 92, 245, 107, 92, 246, 108, 92, 246, 110, 92, 247, 112, 92,
247, 114, 92, 248, 116, 92, 248, 118, 92, 249, 120, 93, 249, 121, 93,
249, 123, 93, 250, 125, 94, 250, 127, 94, 250, 129, 95, 251, 131, 95,
251, 133, 96, 251, 135, 97, 252, 137, 97, 252, 138, 98, 252, 140, 99,
252, 142, 100, 252, 144, 101, 253, 146, 102, 253, 148, 103, 253, 150, 104,
253, 152, 105, 253, 154, 106, 253, 155, 107, 254, 157, 108, 254, 159, 109,
254, 161, 110, 254, 163, 111, 254, 165, 113, 254, 167, 114, 254, 169, 115,
254, 170, 116, 254, 172, 118, 254, 174, 119, 254, 176, 120, 254, 178, 122,
254, 180, 123, 254, 182, 124, 254, 183, 126, 254, 185, 127, 254, 187, 129,
254, 189, 130, 254, 191, 132, 254, 193, 133, 254, 194, 135, 254, 196, 136,
254, 198, 138, 254, 200, 140, 254, 202, 141, 254, 204, 143, 254, 205, 144,
254, 207, 146, 254, 209, 148, 254, 211, 149, 254, 213, 151, 254, 215, 153,
254, 216, 154, 253, 218, 156, 253, 220, 158, 253, 222, 160, 253, 224, 161,
253, 226, 163, 253, 227, 165, 253, 229, 167, 253, 231, 169, 253, 233, 170,
253, 235, 172, 252, 236, 174, 252, 238, 176, 252, 240, 178, 252, 242, 180,
252, 244, 182, 252, 246, 184, 252, 247, 185, 252, 249, 187, 252, 251, 189,
252, 253, 191};
const uint8_t bone[] = {
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2,
2, 2, 2, 3, 3, 4, 3, 3, 4, 4, 3, 5, 4, 3, 5,
4, 4, 6, 4, 4, 6, 5, 5, 7, 5, 5, 7, 6, 6, 9,
6, 6, 9, 7, 7, 10, 7, 7, 10, 8, 8, 11, 8, 8, 11,
9, 9, 12, 9, 9, 12, 10, 10, 13, 10, 10, 13, 11, 10, 15,
11, 10, 15, 11, 11, 16, 11, 11, 16, 12, 12, 17, 12, 12, 17,
13, 13, 18, 13, 13, 18, 14, 14, 19, 14, 14, 19, 15, 15, 21,
15, 15, 21, 16, 16, 22, 16, 16, 22, 17, 17, 23, 17, 17, 23,
18, 17, 24, 18, 17, 24, 18, 18, 26, 18, 18, 26, 19, 19, 27,
19, 19, 27, 20, 20, 28, 20, 20, 28, 21, 21, 29, 21, 21, 29,
22, 22, 30, 22, 22, 30, 23, 23, 32, 23, 23, 32, 24, 24, 33,
24, 24, 33, 25, 24, 34, 25, 24, 34, 25, 25, 35, 25, 25, 35,
26, 26, 37, 26, 26, 37, 27, 27, 38, 27, 27, 38, 28, 28, 39,
28, 28, 39, 29, 29, 40, 29, 29, 40, 30, 30, 41, 30, 30, 41,
31, 31, 43, 31, 31, 43, 32, 31, 44, 32, 31, 44, 32, 32, 45,
32, 32, 45, 33, 33, 46, 33, 33, 46, 34, 34, 47, 34, 34, 47,
35, 35, 49, 35, 35, 49, 36, 36, 50, 36, 36, 50, 37, 37, 51,
37, 37, 51, 38, 38, 52, 38, 38, 52, 39, 38, 54, 39, 38, 54,
39, 39, 55, 39, 39, 55, 40, 40, 56, 40, 40, 56, 41, 41, 57,
41, 41, 57, 42, 42, 58, 42, 42, 58, 43, 43, 60, 43, 43, 60,
44, 44, 61, 44, 44, 61, 45, 45, 62, 45, 45, 62, 46, 45, 63,
46, 45, 63, 46, 46, 65, 46, 46, 65, 47, 47, 66, 47, 47, 66,
48, 48, 67, 48, 48, 67, 49, 49, 68, 49, 49, 68, 50, 50, 69,
50, 50, 69, 51, 51, 71, 51, 51, 71, 52, 52, 72, 52, 52, 72,
53, 52, 73, 53, 52, 73, 53, 53, 74, 53, 53, 74, 54, 54, 75,
54, 54, 75, 55, 55, 77, 55, 55, 77, 56, 56, 78, 56, 56, 78,
57, 57, 79, 57, 57, 79, 58, 58, 80, 58, 58, 80, 59, 59, 82,
59, 59, 82, 60, 59, 83, 60, 59, 83, 60, 60, 84, 60, 60, 84,
61, 61, 85, 61, 61, 85, 62, 62, 86, 62, 62, 86, 63, 63, 88,
63, 63, 88, 64, 64, 89, 64, 64, 89, 65, 65, 90, 65, 65, 90,
66, 66, 91, 66, 66, 91, 67, 66, 93, 67, 66, 93, 67, 67, 94,
67, 67, 94, 68, 68, 95, 68, 68, 95, 69, 69, 96, 69, 69, 96,
70, 70, 97, 70, 70, 97, 71, 71, 99, 71, 71, 99, 72, 72, 100,
72, 72, 100, 73, 73, 101, 73, 73, 101, 74, 73, 102, 74, 73, 102,
74, 74, 103, 74, 74, 103, 75, 75, 105, 75, 75, 105, 76, 76, 106,
76, 76, 106, 77, 77, 107, 77, 77, 107, 78, 78, 108, 78, 78, 108,
79, 79, 110, 79, 79, 110, 80, 80, 111, 80, 80, 111, 81, 80, 112,
81, 80, 112, 81, 81, 113, 81, 81, 113, 82, 83, 114, 82, 83, 114,
83, 84, 115, 83, 84, 115, 84, 85, 116, 84, 85, 116, 85, 86, 117,
85, 86, 117, 86, 87, 118, 86, 87, 118, 87, 89, 118, 87, 89, 118,
87, 90, 119, 87, 90, 119, 88, 91, 120, 88, 91, 120, 89, 92, 121,
89, 92, 121, 90, 93, 122, 90, 93, 122, 91, 95, 123, 91, 95, 123,
92, 96, 124, 92, 96, 124, 93, 97, 125, 93, 97, 125, 94, 98, 125,
94, 98, 125, 94, 99, 126, 94, 99, 126, 95, 101, 127, 95, 101, 127,
96, 102, 128, 96, 102, 128, 97, 103, 129, 97, 103, 129, 98, 104, 130,
98, 104, 130, 99, 105, 131, 99, 105, 131, 100, 107, 132, 100, 107, 132,
101, 108, 132, 101, 108, 132, 102, 109, 133, 102, 109, 133, 102, 110, 134,
102, 110, 134, 103, 111, 135, 103, 111, 135, 104, 113, 136, 104, 113, 136,
105, 114, 137, 105, 114, 137, 106, 115, 138, 106, 115, 138, 107, 116, 139,
107, 116, 139, 108, 117, 139, 108, 117, 139, 109, 119, 140, 109, 119, 140,
109, 120, 141, 109, 120, 141, 110, 121, 142, 110, 121, 142, 111, 122, 143,
111, 122, 143, 112, 123, 144, 112, 123, 144, 113, 125, 145, 113, 125, 145,
114, 126, 146, 114, 126, 146, 115, 127, 146, 115, 127, 146, 115, 128, 147,
115, 128, 147, 116, 129, 148, 116, 129, 148, 117, 131, 149, 117, 131, 149,
118, 132, 150, 118, 132, 150, 119, 133, 151, 119, 133, 151, 120, 134, 152,
120, 134, 152, 121, 135, 153, 121, 135, 153, 122, 137, 153, 122, 137, 153,
123, 138, 154, 123, 138, 154, 123, 139, 155, 123, 139, 155, 124, 140, 156,
124, 140, 156, 125, 141, 157, 125, 141, 157, 126, 143, 158, 126, 143, 158,
127, 144, 159, 127, 144, 159, 128, 145, 160, 128, 145, 160, 129, 146, 160,
129, 146, 160, 129, 148, 161, 129, 148, 161, 130, 149, 162, 130, 149, 162,
131, 150, 163, 131, 150, 163, 132, 151, 164, 132, 151, 164, 133, 152, 165,
133, 152, 165, 134, 154, 166, 134, 154, 166, 135, 155, 167, 135, 155, 167,
136, 156, 167, 136, 156, 167, 137, 157, 168, 137, 157, 168, 137, 158, 169,
137, 158, 169, 138, 160, 170, 138, 160, 170, 139, 161, 171, 139, 161, 171,
140, 162, 172, 140, 162, 172, 141, 163, 173, 141, 163, 173, 142, 164, 174,
142, 164, 174, 143, 166, 174, 143, 166, 174, 143, 167, 175, 143, 167, 175,
144, 168, 176, 144, 168, 176, 145, 169, 177, 145, 169, 177, 146, 170, 178,
146, 170, 178, 147, 172, 179, 147, 172, 179, 148, 173, 180, 148, 173, 180,
149, 174, 181, 149, 174, 181, 150, 175, 181, 150, 175, 181, 151, 176, 182,
151, 176, 182, 151, 178, 183, 151, 178, 183, 152, 179, 184, 152, 179, 184,
153, 180, 185, 153, 180, 185, 154, 181, 186, 154, 181, 186, 155, 182, 187,
155, 182, 187, 156, 184, 188, 156, 184, 188, 157, 185, 188, 157, 185, 188,
157, 186, 189, 157, 186, 189, 158, 187, 190, 158, 187, 190, 159, 188, 191,
159, 188, 191, 160, 190, 192, 160, 190, 192, 161, 191, 193, 161, 191, 193,
162, 192, 194, 162, 192, 194, 163, 193, 195, 163, 193, 195, 164, 194, 195,
164, 194, 195, 165, 196, 196, 165, 196, 196, 165, 197, 197, 165, 197, 197,
166, 198, 198, 166, 198, 198, 167, 199, 199, 167, 199, 199, 169, 200, 200,
169, 200, 200, 170, 201, 201, 170, 201, 201, 172, 202, 202, 172, 202, 202,
173, 203, 202, 173, 203, 202, 174, 203, 203, 174, 203, 203, 176, 204, 204,
176, 204, 204, 177, 205, 205, 177, 205, 205, 178, 206, 206, 178, 206, 206,
180, 207, 207, 180, 207, 207, 181, 208, 208, 181, 208, 208, 183, 209, 209,
183, 209, 209, 184, 210, 209, 184, 210, 209, 185, 210, 210, 185, 210, 210,
187, 211, 211, 187, 211, 211, 188, 212, 212, 188, 212, 212, 189, 213, 213,
189, 213, 213, 191, 214, 214, 191, 214, 214, 192, 215, 215, 192, 215, 215,
193, 216, 216, 193, 216, 216, 195, 217, 216, 195, 217, 216, 196, 217, 217,
196, 217, 217, 198, 218, 218, 198, 218, 218, 199, 219, 219, 199, 219, 219,
200, 220, 220, 200, 220, 220, 202, 221, 221, 202, 221, 221, 203, 222, 222,
203, 222, 222, 204, 223, 223, 204, 223, 223, 206, 224, 223, 206, 224, 223,
207, 224, 224, 207, 224, 224, 209, 225, 225, 209, 225, 225, 210, 226, 226,
210, 226, 226, 211, 227, 227, 211, 227, 227, 213, 228, 228, 213, 228, 228,
214, 229, 229, 214, 229, 229, 215, 230, 230, 215, 230, 230, 217, 231, 230,
217, 231, 230, 218, 231, 231, 218, 231, 231, 219, 232, 232, 219, 232, 232,
221, 233, 233, 221, 233, 233, 222, 234, 234, 222, 234, 234, 224, 235, 235,
224, 235, 235, 225, 236, 236, 225, 236, 236, 226, 237, 237, 226, 237, 237,
228, 238, 237, 228, 238, 237, 229, 238, 238, 229, 238, 238, 230, 239, 239,
230, 239, 239, 232, 240, 240, 232, 240, 240, 233, 241, 241, 233, 241, 241,
234, 242, 242, 234, 242, 242, 236, 243, 243, 236, 243, 243, 237, 244, 244,
237, 244, 244, 239, 245, 244, 239, 245, 244, 240, 245, 245, 240, 245, 245,
241, 246, 246, 241, 246, 246, 243, 247, 247, 243, 247, 247, 244, 248, 248,
244, 248, 248, 245, 249, 249, 245, 249, 249, 247, 250, 250, 247, 250, 250,
248, 251, 251, 248, 251, 251, 250, 252, 251, 250, 252, 251, 251, 252, 252,
251, 252, 252, 252, 253, 253, 252, 253, 253, 254, 254, 254, 254, 254, 254,
255, 255, 255, 255, 255, 255};
const uint8_t cmrmap[] = {
0, 0, 0, 0, 0, 0, 1, 1, 4, 1, 1, 4, 2, 2, 8,
2, 2, 8, 4, 4, 12, 4, 4, 12, 5, 5, 16, 5, 5, 16,
6, 6, 20, 6, 6, 20, 7, 7, 24, 7, 7, 24, 8, 8, 28,
8, 8, 28, 10, 10, 32, 10, 10, 32, 11, 11, 36, 11, 11, 36,
12, 12, 40, 12, 12, 40, 13, 13, 44, 13, 13, 44, 14, 14, 48,
14, 14, 48, 16, 16, 52, 16, 16, 52, 17, 17, 56, 17, 17, 56,
18, 18, 60, 18, 18, 60, 19, 19, 64, 19, 19, 64, 20, 20, 68,
20, 20, 68, 22, 22, 72, 22, 22, 72, 23, 23, 76, 23, 23, 76,
24, 24, 80, 24, 24, 80, 25, 25, 84, 25, 25, 84, 26, 26, 88,
26, 26, 88, 28, 28, 92, 28, 28, 92, 29, 29, 96, 29, 29, 96,
30, 30, 100, 30, 30, 100, 31, 31, 104, 31, 31, 104, 32, 32, 108,
32, 32, 108, 34, 34, 112, 34, 34, 112, 35, 35, 116, 35, 35, 116,
36, 36, 120, 36, 36, 120, 37, 37, 124, 37, 37, 124, 38, 38, 128,
38, 38, 128, 40, 38, 130, 40, 38, 130, 41, 38, 132, 41, 38, 132,
42, 38, 134, 42, 38, 134, 43, 38, 136, 43, 38, 136, 44, 38, 138,
44, 38, 138, 46, 38, 140, 46, 38, 140, 47, 38, 142, 47, 38, 142,
48, 38, 144, 48, 38, 144, 49, 38, 146, 49, 38, 146, 50, 38, 148,
50, 38, 148, 52, 38, 150, 52, 38, 150, 53, 38, 152, 53, 38, 152,
54, 38, 154, 54, 38, 154, 55, 38, 156, 55, 38, 156, 56, 38, 158,
56, 38, 158, 58, 38, 160, 58, 38, 160, 59, 38, 162, 59, 38, 162,
60, 38, 164, 60, 38, 164, 61, 38, 166, 61, 38, 166, 62, 38, 168,
62, 38, 168, 64, 38, 170, 64, 38, 170, 65, 38, 172, 65, 38, 172,
66, 38, 174, 66, 38, 174, 67, 38, 176, 67, 38, 176, 68, 38, 178,
68, 38, 178, 70, 38, 180, 70, 38, 180, 71, 38, 182, 71, 38, 182,
72, 38, 184, 72, 38, 184, 73, 38, 186, 73, 38, 186, 74, 38, 188,
74, 38, 188, 76, 38, 190, 76, 38, 190, 77, 38, 191, 77, 38, 191,
80, 39, 189, 80, 39, 189, 82, 39, 187, 82, 39, 187, 84, 40, 185,
84, 40, 185, 87, 40, 183, 87, 40, 183, 89, 40, 181, 89, 40, 181,
92, 41, 179, 92, 41, 179, 94, 41, 177, 94, 41, 177, 96, 42, 175,
96, 42, 175, 99, 42, 173, 99, 42, 173, 101, 42, 171, 101, 42, 171,
104, 43, 169, 104, 43, 169, 106, 43, 167, 106, 43, 167, 108, 44, 165,
108, 44, 165, 111, 44, 163, 111, 44, 163, 113, 44, 161, 113, 44, 161,
115, 45, 159, 115, 45, 159, 118, 45, 157, 118, 45, 157, 120, 46, 155,
120, 46, 155, 123, 46, 153, 123, 46, 153, 125, 46, 151, 125, 46, 151,
128, 47, 149, 128, 47, 149, 130, 47, 147, 130, 47, 147, 132, 48, 145,
132, 48, 145, 135, 48, 143, 135, 48, 143, 137, 48, 141, 137, 48, 141,
139, 49, 139, 139, 49, 139, 142, 49, 137, 142, 49, 137, 144, 50, 135,
144, 50, 135, 147, 50, 133, 147, 50, 133, 149, 50, 131, 149, 50, 131,
151, 51, 129, 151, 51, 129, 154, 51, 126, 154, 51, 126, 157, 52, 124,
157, 52, 124, 161, 52, 121, 161, 52, 121, 164, 52, 118, 164, 52, 118,
167, 53, 115, 167, 53, 115, 170, 53, 112, 170, 53, 112, 173, 54, 110,
173, 54, 110, 177, 54, 107, 177, 54, 107, 180, 54, 104, 180, 54, 104,
183, 55, 101, 183, 55, 101, 186, 55, 98, 186, 55, 98, 189, 56, 96,
189, 56, 96, 193, 56, 93, 193, 56, 93, 196, 56, 90, 196, 56, 90,
199, 57, 87, 199, 57, 87, 202, 57, 84, 202, 57, 84, 205, 58, 82,
205, 58, 82, 209, 58, 79, 209, 58, 79, 212, 58, 76, 212, 58, 76,
215, 59, 73, 215, 59, 73, 218, 59, 70, 218, 59, 70, 221, 60, 68,
221, 60, 68, 225, 60, 65, 225, 60, 65, 228, 60, 62, 228, 60, 62,
231, 61, 59, 231, 61, 59, 234, 61, 56, 234, 61, 56, 237, 62, 54,
237, 62, 54, 241, 62, 51, 241, 62, 51, 244, 62, 48, 244, 62, 48,
247, 63, 45, 247, 63, 45, 250, 63, 42, 250, 63, 42, 253, 64, 40,
253, 64, 40, 255, 65, 38, 255, 65, 38, 254, 67, 36, 254, 67, 36,
253, 69, 35, 253, 69, 35, 252, 71, 34, 252, 71, 34, 251, 73, 33,
251, 73, 33, 251, 75, 32, 251, 75, 32, 250, 77, 30, 250, 77, 30,
249, 79, 29, 249, 79, 29, 248, 81, 28, 248, 81, 28, 247, 83, 27,
247, 83, 27, 247, 85, 26, 247, 85, 26, 246, 87, 24, 246, 87, 24,
245, 89, 23, 245, 89, 23, 244, 91, 22, 244, 91, 22, 243, 93, 21,
243, 93, 21, 243, 95, 20, 243, 95, 20, 242, 97, 18, 242, 97, 18,
241, 99, 17, 241, 99, 17, 240, 101, 16, 240, 101, 16, 239, 103, 15,
239, 103, 15, 239, 105, 14, 239, 105, 14, 238, 107, 12, 238, 107, 12,
237, 109, 11, 237, 109, 11, 236, 111, 10, 236, 111, 10, 235, 113, 9,
235, 113, 9, 235, 115, 8, 235, 115, 8, 234, 117, 6, 234, 117, 6,
233, 119, 5, 233, 119, 5, 232, 121, 4, 232, 121, 4, 231, 123, 3,
231, 123, 3, 231, 125, 2, 231, 125, 2, 230, 127, 0, 230, 127, 0,
230, 129, 1, 230, 129, 1, 230, 131, 1, 230, 131, 1, 230, 133, 2,
230, 133, 2, 230, 135, 3, 230, 135, 3, 230, 137, 4, 230, 137, 4,
230, 139, 5, 230, 139, 5, 230, 141, 5, 230, 141, 5, 230, 143, 6,
230, 143, 6, 230, 145, 7, 230, 145, 7, 230, 147, 8, 230, 147, 8,
230, 149, 9, 230, 149, 9, 230, 151, 9, 230, 151, 9, 230, 153, 10,
230, 153, 10, 230, 155, 11, 230, 155, 11, 230, 157, 12, 230, 157, 12,
230, 159, 13, 230, 159, 13, 230, 161, 13, 230, 161, 13, 230, 163, 14,
230, 163, 14, 230, 165, 15, 230, 165, 15, 230, 167, 16, 230, 167, 16,
230, 169, 16, 230, 169, 16, 230, 171, 17, 230, 171, 17, 230, 173, 18,
230, 173, 18, 230, 175, 19, 230, 175, 19, 230, 177, 20, 230, 177, 20,
230, 179, 21, 230, 179, 21, 230, 181, 21, 230, 181, 21, 230, 183, 22,
230, 183, 22, 230, 185, 23, 230, 185, 23, 230, 187, 24, 230, 187, 24,
230, 189, 25, 230, 189, 25, 230, 191, 25, 230, 191, 25, 230, 192, 28,
230, 192, 28, 230, 193, 31, 230, 193, 31, 230, 195, 34, 230, 195, 34,
230, 196, 38, 230, 196, 38, 230, 197, 41, 230, 197, 41, 230, 198, 44,
230, 198, 44, 230, 199, 47, 230, 199, 47, 230, 201, 50, 230, 201, 50,
230, 202, 54, 230, 202, 54, 230, 203, 57, 230, 203, 57, 230, 204, 60,
230, 204, 60, 230, 205, 63, 230, 205, 63, 230, 207, 66, 230, 207, 66,
230, 208, 70, 230, 208, 70, 230, 209, 73, 230, 209, 73, 230, 210, 76,
230, 210, 76, 230, 211, 79, 230, 211, 79, 230, 213, 82, 230, 213, 82,
230, 214, 86, 230, 214, 86, 230, 215, 89, 230, 215, 89, 230, 216, 92,
230, 216, 92, 230, 217, 95, 230, 217, 95, 230, 219, 98, 230, 219, 98,
230, 220, 102, 230, 220, 102, 230, 221, 105, 230, 221, 105, 230, 222, 108,
230, 222, 108, 230, 223, 111, 230, 223, 111, 230, 225, 114, 230, 225, 114,
230, 226, 118, 230, 226, 118, 230, 227, 121, 230, 227, 121, 230, 228, 124,
230, 228, 124, 230, 229, 127, 230, 229, 127, 230, 230, 131, 230, 230, 131,
231, 231, 135, 231, 231, 135, 232, 232, 139, 232, 232, 139, 233, 233, 143,
233, 233, 143, 233, 233, 147, 233, 233, 147, 234, 234, 151, 234, 234, 151,
235, 235, 155, 235, 235, 155, 236, 236, 159, 236, 236, 159, 237, 237, 163,
237, 237, 163, 237, 237, 167, 237, 237, 167, 238, 238, 171, 238, 238, 171,
239, 239, 175, 239, 239, 175, 240, 240, 179, 240, 240, 179, 241, 241, 183,
241, 241, 183, 241, 241, 187, 241, 241, 187, 242, 242, 191, 242, 242, 191,
243, 243, 195, 243, 243, 195, 244, 244, 199, 244, 244, 199, 245, 245, 203,
245, 245, 203, 245, 245, 207, 245, 245, 207, 246, 246, 211, 246, 246, 211,
247, 247, 215, 247, 247, 215, 248, 248, 219, 248, 248, 219, 249, 249, 223,
249, 249, 223, 249, 249, 227, 249, 249, 227, 250, 250, 231, 250, 250, 231,
251, 251, 235, 251, 251, 235, 252, 252, 239, 252, 252, 239, 253, 253, 243,
253, 253, 243, 253, 253, 247, 253, 253, 247, 254, 254, 251, 254, 254, 251,
255, 255, 255, 255, 255, 255};