Transform csv font into binary

master
D4VID 4 months ago
parent 89afe84682
commit bee89acc0d

2
.gitignore vendored

@ -1,2 +1,2 @@
/target /target
text_display.bin font.bin

@ -0,0 +1,575 @@
20,SP,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,!,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,"""",FALSE,FALSE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,,TRUE,FALSE,TRUE,,,,
,#,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,$,FALSE,TRUE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,%,TRUE,FALSE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,&,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,FALSE,TRUE,TRUE,,,,
,,TRUE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,',FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,(,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE
,,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE
,,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE
,,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE
,,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE
,,,,,,,,
,),FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE
,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE
,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE
,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE
,,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE
,,,,,,,,
,*,TRUE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,+,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,comma,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,,,,,,,
,-,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,.,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,/,FALSE,FALSE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,,,,,,,
,0,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE
,,,,,,,,
,1,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,TRUE,TRUE
,,FALSE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,,,,,,,
,2,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE
,,FALSE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,FALSE,FALSE,TRUE
,,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,,,,,,,
,3,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,FALSE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,,,,,,,
,4,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,,,,,,,
,5,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,,,,,,,
,6,TRUE,TRUE,TRUE,,FALSE,TRUE,TRUE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,,,,,,,
,7,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE
,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE
,,FALSE,FALSE,TRUE,,TRUE,FALSE,FALSE
,,,,,,,,
,8,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,,,,,,,
,9,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,,,,,,,
,:,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,;,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,,,,,,,
,<,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,=,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,>,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,?,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,@,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,A,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,,,,,,,
,B,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,FALSE,,TRUE,TRUE,FALSE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,,,,,,,
,C,TRUE,TRUE,TRUE,,FALSE,TRUE,TRUE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,TRUE,TRUE,,FALSE,TRUE,TRUE
,,,,,,,,
,D,TRUE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,FALSE,,,,
,,,,,,,,
,E,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,,,,,,,
,F,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,,,,,,,
,G,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,H,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,I,TRUE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,J,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE
,,,,,,,,
,K,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,L,TRUE,FALSE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,M,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,N,FALSE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,FALSE,,,,
,,,,,,,,
,O,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,P,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,,,,,,,
,Q,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,,,,,,,
,R,TRUE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,S,FALSE,TRUE,TRUE,,FALSE,TRUE,TRUE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,FALSE,TRUE,FALSE,,TRUE,TRUE,TRUE
,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE
,,TRUE,TRUE,FALSE,,TRUE,TRUE,FALSE
,,,,,,,,
,T,TRUE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,U,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,V,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,W,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,X,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,Y,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE
,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE
,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE
,,,,,,,,
,Z,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,[,FALSE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE
,,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE
,,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE
,,FALSE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,,,,,,,
,\,TRUE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,TRUE,,,,
,,,,,,,,
,],TRUE,TRUE,FALSE,,FALSE,TRUE,TRUE
,,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE
,,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE
,,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE
,,TRUE,TRUE,FALSE,,FALSE,TRUE,TRUE
,,,,,,,,
,^,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,_,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,`,TRUE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,a,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,b,TRUE,FALSE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,c,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,d,FALSE,FALSE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,e,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,f,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,g,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,FALSE,TRUE,TRUE,,,,
,,,,,,,,
,h,TRUE,FALSE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,i,FALSE,FALSE,FALSE,,FALSE,TRUE,FALSE
,,FALSE,TRUE,FALSE,,FALSE,FALSE,FALSE
,,FALSE,FALSE,FALSE,,FALSE,TRUE,FALSE
,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE
,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE
,,,,,,,,
,j,FALSE,TRUE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,TRUE,FALSE,,,,
,,,,,,,,
,k,TRUE,FALSE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,l,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,m,FALSE,FALSE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,n,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,o,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,p,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,,,,,,,
,q,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,,,,,,,
,r,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE
,,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE
,,TRUE,TRUE,FALSE,,TRUE,TRUE,TRUE
,,TRUE,FALSE,TRUE,,TRUE,FALSE,FALSE
,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE
,,,,,,,,
,s,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,FALSE,,,,
,,,,,,,,
,t,FALSE,FALSE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,TRUE,,,,
,,,,,,,,
,u,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,,,,,,,
,v,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,w,FALSE,FALSE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,x,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,,,,,,,
,y,FALSE,FALSE,FALSE,,,,
,,TRUE,FALSE,TRUE,,,,
,,TRUE,TRUE,TRUE,,,,
,,FALSE,FALSE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,z,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE
,,TRUE,TRUE,TRUE,,FALSE,FALSE,FALSE
,,FALSE,FALSE,TRUE,,TRUE,TRUE,TRUE
,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE
,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE
,,,,,,,,
,{,FALSE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,TRUE,,,,
,,,,,,,,
,|,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,,,,,,,
,},TRUE,TRUE,FALSE,,,,
,,FALSE,TRUE,FALSE,,,,
,,FALSE,TRUE,TRUE,,,,
,,FALSE,TRUE,FALSE,,,,
,,TRUE,TRUE,FALSE,,,,
,,,,,,,,
,~,FALSE,FALSE,FALSE,,,,
,,TRUE,TRUE,FALSE,,,,
,,FALSE,TRUE,TRUE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,,,,,,,
,DEL,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
,,FALSE,FALSE,FALSE,,,,
1 20 SP FALSE FALSE FALSE
2 FALSE FALSE FALSE
3 FALSE FALSE FALSE
4 FALSE FALSE FALSE
5 FALSE FALSE FALSE
6
7 ! FALSE TRUE FALSE
8 FALSE TRUE FALSE
9 FALSE TRUE FALSE
10 FALSE FALSE FALSE
11 FALSE TRUE FALSE
12
13 " FALSE FALSE FALSE
14 TRUE FALSE TRUE
15 TRUE FALSE TRUE
16 FALSE FALSE FALSE
17 FALSE FALSE FALSE
18
19 TRUE FALSE TRUE
20 # TRUE TRUE TRUE
21 TRUE FALSE TRUE
22 TRUE TRUE TRUE
23 TRUE FALSE TRUE
24
25 $ FALSE TRUE FALSE
26 TRUE TRUE TRUE
27 FALSE TRUE FALSE
28 TRUE TRUE TRUE
29 FALSE TRUE FALSE
30
31 % TRUE FALSE TRUE
32 FALSE FALSE TRUE
33 FALSE TRUE FALSE
34 TRUE FALSE FALSE
35 TRUE FALSE TRUE
36
37 & FALSE TRUE FALSE
38 TRUE FALSE TRUE
39 FALSE TRUE TRUE
40 TRUE TRUE FALSE
41 TRUE FALSE TRUE
42
43 ' FALSE FALSE FALSE
44 FALSE TRUE FALSE
45 FALSE TRUE FALSE
46 FALSE FALSE FALSE
47 FALSE FALSE FALSE
48
49 ( FALSE TRUE FALSE FALSE FALSE TRUE
50 TRUE FALSE FALSE FALSE TRUE FALSE
51 TRUE FALSE FALSE FALSE TRUE FALSE
52 TRUE FALSE FALSE FALSE TRUE FALSE
53 FALSE TRUE FALSE FALSE FALSE TRUE
54
55 ) FALSE TRUE FALSE TRUE FALSE FALSE
56 FALSE FALSE TRUE FALSE TRUE FALSE
57 FALSE FALSE TRUE FALSE TRUE FALSE
58 FALSE FALSE TRUE FALSE TRUE FALSE
59 FALSE TRUE FALSE TRUE FALSE FALSE
60
61 * TRUE FALSE TRUE
62 FALSE TRUE FALSE
63 TRUE FALSE TRUE
64 FALSE FALSE FALSE
65 FALSE FALSE FALSE
66
67 + FALSE FALSE FALSE
68 FALSE TRUE FALSE
69 TRUE TRUE TRUE
70 FALSE TRUE FALSE
71 FALSE FALSE FALSE
72
73 comma FALSE FALSE FALSE
74 FALSE FALSE FALSE
75 FALSE FALSE FALSE
76 FALSE TRUE FALSE
77 TRUE FALSE FALSE
78
79 - FALSE FALSE FALSE
80 FALSE FALSE FALSE
81 TRUE TRUE TRUE
82 FALSE FALSE FALSE
83 FALSE FALSE FALSE
84
85 . FALSE FALSE FALSE
86 FALSE FALSE FALSE
87 FALSE FALSE FALSE
88 FALSE FALSE FALSE
89 FALSE TRUE FALSE
90
91 / FALSE FALSE TRUE
92 FALSE FALSE TRUE
93 FALSE TRUE FALSE
94 TRUE FALSE FALSE
95 TRUE FALSE FALSE
96
97 0 TRUE TRUE TRUE FALSE TRUE FALSE
98 TRUE FALSE TRUE TRUE FALSE TRUE
99 TRUE FALSE TRUE TRUE FALSE TRUE
100 TRUE FALSE TRUE TRUE FALSE TRUE
101 TRUE TRUE TRUE FALSE TRUE FALSE
102
103 1 FALSE FALSE TRUE FALSE FALSE TRUE
104 FALSE FALSE TRUE FALSE TRUE TRUE
105 FALSE FALSE TRUE TRUE FALSE TRUE
106 FALSE FALSE TRUE FALSE FALSE TRUE
107 FALSE FALSE TRUE FALSE FALSE TRUE
108
109 2 TRUE TRUE TRUE FALSE TRUE FALSE
110 FALSE FALSE TRUE TRUE FALSE TRUE
111 TRUE TRUE TRUE FALSE FALSE TRUE
112 TRUE FALSE FALSE FALSE TRUE FALSE
113 TRUE TRUE TRUE TRUE TRUE TRUE
114
115 3 TRUE TRUE TRUE TRUE TRUE FALSE
116 FALSE FALSE TRUE FALSE FALSE TRUE
117 FALSE TRUE TRUE TRUE TRUE FALSE
118 FALSE FALSE TRUE FALSE FALSE TRUE
119 TRUE TRUE TRUE TRUE TRUE FALSE
120
121 4 TRUE FALSE TRUE TRUE FALSE TRUE
122 TRUE FALSE TRUE TRUE FALSE TRUE
123 TRUE TRUE TRUE TRUE TRUE TRUE
124 FALSE FALSE TRUE FALSE FALSE TRUE
125 FALSE FALSE TRUE FALSE FALSE TRUE
126
127 5 TRUE TRUE TRUE TRUE TRUE TRUE
128 TRUE FALSE FALSE TRUE FALSE FALSE
129 TRUE TRUE TRUE TRUE TRUE FALSE
130 FALSE FALSE TRUE FALSE FALSE TRUE
131 TRUE TRUE TRUE TRUE TRUE FALSE
132
133 6 TRUE TRUE TRUE FALSE TRUE TRUE
134 TRUE FALSE FALSE TRUE FALSE FALSE
135 TRUE TRUE TRUE TRUE TRUE TRUE
136 TRUE FALSE TRUE TRUE FALSE TRUE
137 TRUE TRUE TRUE TRUE TRUE TRUE
138
139 7 TRUE TRUE TRUE TRUE TRUE TRUE
140 FALSE FALSE TRUE FALSE FALSE TRUE
141 FALSE FALSE TRUE FALSE TRUE FALSE
142 FALSE FALSE TRUE FALSE TRUE FALSE
143 FALSE FALSE TRUE TRUE FALSE FALSE
144
145 8 TRUE TRUE TRUE TRUE TRUE TRUE
146 TRUE FALSE TRUE TRUE FALSE TRUE
147 TRUE TRUE TRUE FALSE TRUE FALSE
148 TRUE FALSE TRUE TRUE FALSE TRUE
149 TRUE TRUE TRUE TRUE TRUE TRUE
150
151 9 TRUE TRUE TRUE TRUE TRUE TRUE
152 TRUE FALSE TRUE TRUE FALSE TRUE
153 TRUE TRUE TRUE TRUE TRUE TRUE
154 FALSE FALSE TRUE FALSE FALSE TRUE
155 TRUE TRUE TRUE TRUE TRUE FALSE
156
157 : FALSE FALSE FALSE
158 FALSE TRUE FALSE
159 FALSE FALSE FALSE
160 FALSE TRUE FALSE
161 FALSE FALSE FALSE
162
163 ; FALSE FALSE FALSE
164 FALSE TRUE FALSE
165 FALSE FALSE FALSE
166 FALSE TRUE FALSE
167 TRUE FALSE FALSE
168
169 < FALSE FALSE FALSE
170 FALSE TRUE FALSE
171 TRUE FALSE FALSE
172 FALSE TRUE FALSE
173 FALSE FALSE FALSE
174
175 = FALSE FALSE FALSE
176 TRUE TRUE TRUE
177 FALSE FALSE FALSE
178 TRUE TRUE TRUE
179 FALSE FALSE FALSE
180
181 > FALSE FALSE FALSE
182 FALSE TRUE FALSE
183 FALSE FALSE TRUE
184 FALSE TRUE FALSE
185 FALSE FALSE FALSE
186
187 ? TRUE TRUE TRUE
188 FALSE FALSE TRUE
189 FALSE TRUE FALSE
190 FALSE FALSE FALSE
191 FALSE TRUE FALSE
192
193 @ TRUE TRUE TRUE
194 TRUE FALSE TRUE
195 TRUE FALSE TRUE
196 TRUE FALSE FALSE
197 TRUE TRUE TRUE
198
199 A TRUE TRUE TRUE FALSE TRUE FALSE
200 TRUE FALSE TRUE TRUE FALSE TRUE
201 TRUE TRUE TRUE TRUE TRUE TRUE
202 TRUE FALSE TRUE TRUE FALSE TRUE
203 TRUE FALSE TRUE TRUE FALSE TRUE
204
205 B TRUE TRUE TRUE TRUE TRUE FALSE
206 TRUE FALSE TRUE TRUE FALSE TRUE
207 TRUE TRUE FALSE TRUE TRUE FALSE
208 TRUE FALSE TRUE TRUE FALSE TRUE
209 TRUE TRUE TRUE TRUE TRUE FALSE
210
211 C TRUE TRUE TRUE FALSE TRUE TRUE
212 TRUE FALSE FALSE TRUE FALSE FALSE
213 TRUE FALSE FALSE TRUE FALSE FALSE
214 TRUE FALSE FALSE TRUE FALSE FALSE
215 TRUE TRUE TRUE FALSE TRUE TRUE
216
217 D TRUE TRUE FALSE
218 TRUE FALSE TRUE
219 TRUE FALSE TRUE
220 TRUE FALSE TRUE
221 TRUE TRUE FALSE
222
223 E TRUE TRUE TRUE TRUE TRUE TRUE
224 TRUE FALSE FALSE TRUE FALSE FALSE
225 TRUE TRUE TRUE TRUE TRUE FALSE
226 TRUE FALSE FALSE TRUE FALSE FALSE
227 TRUE TRUE TRUE TRUE TRUE TRUE
228
229 F TRUE TRUE TRUE TRUE TRUE TRUE
230 TRUE FALSE FALSE TRUE FALSE FALSE
231 TRUE TRUE TRUE TRUE TRUE FALSE
232 TRUE FALSE FALSE TRUE FALSE FALSE
233 TRUE FALSE FALSE TRUE FALSE FALSE
234
235 G TRUE TRUE TRUE
236 TRUE FALSE FALSE
237 TRUE TRUE TRUE
238 TRUE FALSE TRUE
239 TRUE TRUE TRUE
240
241 H TRUE FALSE TRUE
242 TRUE FALSE TRUE
243 TRUE TRUE TRUE
244 TRUE FALSE TRUE
245 TRUE FALSE TRUE
246
247 I TRUE TRUE TRUE
248 FALSE TRUE FALSE
249 FALSE TRUE FALSE
250 FALSE TRUE FALSE
251 TRUE TRUE TRUE
252
253 J FALSE FALSE TRUE FALSE FALSE TRUE
254 FALSE FALSE TRUE FALSE FALSE TRUE
255 FALSE FALSE TRUE FALSE FALSE TRUE
256 TRUE FALSE TRUE TRUE FALSE TRUE
257 TRUE TRUE TRUE FALSE TRUE FALSE
258
259 K TRUE FALSE TRUE
260 TRUE FALSE TRUE
261 TRUE TRUE FALSE
262 TRUE FALSE TRUE
263 TRUE FALSE TRUE
264
265 L TRUE FALSE FALSE
266 TRUE FALSE FALSE
267 TRUE FALSE FALSE
268 TRUE FALSE FALSE
269 TRUE TRUE TRUE
270
271 M TRUE FALSE TRUE
272 TRUE TRUE TRUE
273 TRUE FALSE TRUE
274 TRUE FALSE TRUE
275 TRUE FALSE TRUE
276
277 N FALSE FALSE TRUE
278 TRUE FALSE TRUE
279 TRUE TRUE TRUE
280 TRUE FALSE TRUE
281 TRUE FALSE FALSE
282
283 O FALSE FALSE FALSE
284 TRUE TRUE TRUE
285 TRUE FALSE TRUE
286 TRUE FALSE TRUE
287 TRUE TRUE TRUE
288
289 P TRUE TRUE TRUE TRUE TRUE FALSE
290 TRUE FALSE TRUE TRUE FALSE TRUE
291 TRUE TRUE TRUE TRUE TRUE FALSE
292 TRUE FALSE FALSE TRUE FALSE FALSE
293 TRUE FALSE FALSE TRUE FALSE FALSE
294
295 Q TRUE TRUE TRUE
296 TRUE FALSE TRUE
297 TRUE FALSE TRUE
298 TRUE TRUE TRUE
299 FALSE FALSE TRUE
300
301 R TRUE TRUE FALSE
302 TRUE FALSE TRUE
303 TRUE TRUE FALSE
304 TRUE FALSE TRUE
305 TRUE FALSE TRUE
306
307 S FALSE TRUE TRUE FALSE TRUE TRUE
308 TRUE FALSE FALSE TRUE FALSE FALSE
309 FALSE TRUE FALSE TRUE TRUE TRUE
310 FALSE FALSE TRUE FALSE FALSE TRUE
311 TRUE TRUE FALSE TRUE TRUE FALSE
312
313 T TRUE TRUE TRUE
314 FALSE TRUE FALSE
315 FALSE TRUE FALSE
316 FALSE TRUE FALSE
317 FALSE TRUE FALSE
318
319 U TRUE FALSE TRUE
320 TRUE FALSE TRUE
321 TRUE FALSE TRUE
322 TRUE FALSE TRUE
323 TRUE TRUE TRUE
324
325 V TRUE FALSE TRUE
326 TRUE FALSE TRUE
327 TRUE FALSE TRUE
328 TRUE FALSE TRUE
329 FALSE TRUE FALSE
330
331 W TRUE FALSE TRUE
332 TRUE FALSE TRUE
333 TRUE FALSE TRUE
334 TRUE TRUE TRUE
335 TRUE FALSE TRUE
336
337 X TRUE FALSE TRUE
338 TRUE FALSE TRUE
339 FALSE TRUE FALSE
340 TRUE FALSE TRUE
341 TRUE FALSE TRUE
342
343 Y TRUE FALSE TRUE TRUE FALSE TRUE
344 TRUE FALSE TRUE TRUE FALSE TRUE
345 TRUE TRUE TRUE FALSE TRUE FALSE
346 FALSE TRUE FALSE FALSE TRUE FALSE
347 FALSE TRUE FALSE FALSE TRUE FALSE
348
349 Z TRUE TRUE TRUE
350 FALSE FALSE TRUE
351 FALSE TRUE FALSE
352 TRUE FALSE FALSE
353 TRUE TRUE TRUE
354
355 [ FALSE TRUE TRUE TRUE TRUE FALSE
356 FALSE TRUE FALSE TRUE FALSE FALSE
357 FALSE TRUE FALSE TRUE FALSE FALSE
358 FALSE TRUE FALSE TRUE FALSE FALSE
359 FALSE TRUE TRUE TRUE TRUE FALSE
360
361 \ TRUE FALSE FALSE
362 FALSE TRUE FALSE
363 FALSE TRUE FALSE
364 FALSE TRUE FALSE
365 FALSE FALSE TRUE
366
367 ] TRUE TRUE FALSE FALSE TRUE TRUE
368 FALSE TRUE FALSE FALSE FALSE TRUE
369 FALSE TRUE FALSE FALSE FALSE TRUE
370 FALSE TRUE FALSE FALSE FALSE TRUE
371 TRUE TRUE FALSE FALSE TRUE TRUE
372
373 ^ FALSE TRUE FALSE
374 TRUE FALSE TRUE
375 FALSE FALSE FALSE
376 FALSE FALSE FALSE
377 FALSE FALSE FALSE
378
379 _ FALSE FALSE FALSE
380 FALSE FALSE FALSE
381 FALSE FALSE FALSE
382 FALSE FALSE FALSE
383 TRUE TRUE TRUE
384
385 ` TRUE FALSE FALSE
386 FALSE TRUE FALSE
387 FALSE FALSE FALSE
388 FALSE FALSE FALSE
389 FALSE FALSE FALSE
390
391 a TRUE TRUE TRUE
392 FALSE FALSE TRUE
393 TRUE TRUE TRUE
394 TRUE FALSE TRUE
395 TRUE TRUE TRUE
396
397 b TRUE FALSE FALSE
398 TRUE FALSE FALSE
399 TRUE TRUE TRUE
400 TRUE FALSE TRUE
401 TRUE TRUE TRUE
402
403 c FALSE FALSE FALSE
404 FALSE FALSE FALSE
405 TRUE TRUE TRUE
406 TRUE FALSE FALSE
407 TRUE TRUE TRUE
408
409 d FALSE FALSE TRUE
410 FALSE FALSE TRUE
411 TRUE TRUE TRUE
412 TRUE FALSE TRUE
413 TRUE TRUE TRUE
414
415 e TRUE TRUE TRUE
416 TRUE FALSE TRUE
417 TRUE TRUE TRUE
418 TRUE FALSE FALSE
419 TRUE TRUE TRUE
420
421 f FALSE FALSE FALSE
422 FALSE TRUE TRUE
423 FALSE TRUE FALSE
424 FALSE TRUE TRUE
425 FALSE TRUE FALSE
426
427 g TRUE TRUE TRUE
428 TRUE FALSE TRUE
429 TRUE TRUE TRUE
430 FALSE FALSE TRUE
431 FALSE TRUE TRUE
432
433 h TRUE FALSE FALSE
434 TRUE FALSE FALSE
435 TRUE TRUE TRUE
436 TRUE FALSE TRUE
437 TRUE FALSE TRUE
438
439 i FALSE FALSE FALSE FALSE TRUE FALSE
440 FALSE TRUE FALSE FALSE FALSE FALSE
441 FALSE FALSE FALSE FALSE TRUE FALSE
442 FALSE TRUE FALSE FALSE TRUE FALSE
443 FALSE TRUE FALSE FALSE TRUE FALSE
444
445 j FALSE TRUE FALSE
446 FALSE FALSE FALSE
447 FALSE TRUE FALSE
448 FALSE TRUE FALSE
449 TRUE TRUE FALSE
450
451 k TRUE FALSE FALSE
452 TRUE FALSE TRUE
453 TRUE TRUE FALSE
454 TRUE FALSE TRUE
455 TRUE FALSE TRUE
456
457 l FALSE TRUE FALSE
458 FALSE TRUE FALSE
459 FALSE TRUE FALSE
460 FALSE TRUE FALSE
461 FALSE TRUE FALSE
462
463 m FALSE FALSE FALSE
464 TRUE FALSE TRUE
465 TRUE TRUE TRUE
466 TRUE FALSE TRUE
467 TRUE FALSE TRUE
468
469 n FALSE FALSE FALSE
470 FALSE FALSE FALSE
471 TRUE TRUE FALSE
472 TRUE FALSE TRUE
473 TRUE FALSE TRUE
474
475 o FALSE FALSE FALSE
476 FALSE FALSE FALSE
477 TRUE TRUE TRUE
478 TRUE FALSE TRUE
479 TRUE TRUE TRUE
480
481 p FALSE FALSE FALSE FALSE FALSE FALSE
482 TRUE TRUE TRUE TRUE TRUE FALSE
483 TRUE FALSE TRUE TRUE FALSE TRUE
484 TRUE TRUE TRUE TRUE TRUE FALSE
485 TRUE FALSE FALSE TRUE FALSE FALSE
486
487 q FALSE FALSE FALSE
488 TRUE TRUE TRUE
489 TRUE FALSE TRUE
490 TRUE TRUE TRUE
491 FALSE FALSE TRUE
492
493 r FALSE FALSE FALSE FALSE FALSE FALSE
494 FALSE FALSE FALSE FALSE FALSE FALSE
495 TRUE TRUE FALSE TRUE TRUE TRUE
496 TRUE FALSE TRUE TRUE FALSE FALSE
497 TRUE FALSE FALSE TRUE FALSE FALSE
498
499 s FALSE FALSE FALSE
500 FALSE TRUE FALSE
501 TRUE FALSE FALSE
502 FALSE TRUE FALSE
503 TRUE FALSE FALSE
504
505 t FALSE FALSE FALSE
506 FALSE TRUE FALSE
507 TRUE TRUE TRUE
508 FALSE TRUE FALSE
509 FALSE TRUE TRUE
510
511 u FALSE FALSE FALSE
512 FALSE FALSE FALSE
513 TRUE FALSE TRUE
514 TRUE FALSE TRUE
515 TRUE TRUE TRUE
516
517 v FALSE FALSE FALSE
518 FALSE FALSE FALSE
519 TRUE FALSE TRUE
520 TRUE FALSE TRUE
521 FALSE TRUE FALSE
522
523 w FALSE FALSE FALSE
524 TRUE FALSE TRUE
525 TRUE FALSE TRUE
526 TRUE TRUE TRUE
527 TRUE FALSE TRUE
528
529 x FALSE FALSE FALSE
530 FALSE FALSE FALSE
531 TRUE FALSE TRUE
532 FALSE TRUE FALSE
533 TRUE FALSE TRUE
534
535 y FALSE FALSE FALSE
536 TRUE FALSE TRUE
537 TRUE TRUE TRUE
538 FALSE FALSE TRUE
539 FALSE TRUE FALSE
540
541 z FALSE FALSE FALSE FALSE FALSE FALSE
542 TRUE TRUE TRUE FALSE FALSE FALSE
543 FALSE FALSE TRUE TRUE TRUE TRUE
544 FALSE TRUE FALSE FALSE TRUE FALSE
545 TRUE TRUE TRUE TRUE TRUE TRUE
546
547 { FALSE TRUE TRUE
548 FALSE TRUE FALSE
549 TRUE TRUE FALSE
550 FALSE TRUE FALSE
551 FALSE TRUE TRUE
552
553 | FALSE TRUE FALSE
554 FALSE TRUE FALSE
555 FALSE TRUE FALSE
556 FALSE TRUE FALSE
557 FALSE TRUE FALSE
558
559 } TRUE TRUE FALSE
560 FALSE TRUE FALSE
561 FALSE TRUE TRUE
562 FALSE TRUE FALSE
563 TRUE TRUE FALSE
564
565 ~ FALSE FALSE FALSE
566 TRUE TRUE FALSE
567 FALSE TRUE TRUE
568 FALSE FALSE FALSE
569 FALSE FALSE FALSE
570
571 DEL FALSE FALSE FALSE
572 FALSE FALSE FALSE
573 FALSE FALSE FALSE
574 FALSE FALSE FALSE
575 FALSE FALSE FALSE

@ -1,16 +1,55 @@
use std::{fs::File, io::Write}; use std::{fs::File, io::{self, BufRead, BufReader, Write}};
const letter: u16 = 0b111101111101101;
fn main() { fn main() {
let mut file = match File::create("text_display.bin") { let result = generate_font_data();
Ok(file) => file,
Err(err) => { if let Err(err) = result {
eprintln!("Cannot create output file: {}", err); eprintln!("{}", err);
return; }
}, }
};
fn generate_font_data() -> io::Result<()> {
let _ = file.write_all(&letter.to_le_bytes());
let font_file = File::open("font.csv")?;
let mut output_file = File::create("font.bin")?;
// First 0x20 characters are not printable
for _ in 0..0x20 {
output_file.write(&[0,0])?;
}
let reader = BufReader::new(font_file);
let mut bits: u16 = 0;
for (i, line) in reader.lines().enumerate() {
if i % 6 == 5 {
// Write the digit to the output binary file
println!("Writing {:x}", bits);
output_file.write(&bits.to_be_bytes())?;
bits = 0;
println!();
continue; // Ignore empty character separation lines
}
let pixels_line: Vec<u16> = line?.split(',').skip(2).take(3).map(|v| match v {
"TRUE" => Ok(1),
"FALSE" => Ok(0),
_ => Err(io::Error::new(io::ErrorKind::InvalidData, format!("Invalid value: '{}' on line {}", v, i)))
}).collect::<Result<_, _>>()?;
bits <<= 3;
bits |= pixels_line[0] << 2 | pixels_line[1] << 1 | pixels_line[2];
println!("{}{}{}", pixels_line[0], pixels_line[1], pixels_line[2])
}
// Write last remaining character
println!("Writing remaining {:x}", bits);
output_file.write(&bits.to_be_bytes())?;
return Ok(());
} }

Loading…
Cancel
Save