interim build. Bug with } in comment fixed. Bit reversal and individual text lines implemented. The latter not fully checked.

pull/7/head
Peter Hinch 2016-04-04 18:56:21 +01:00
rodzic 39c5a1e493
commit 25f9d68916
3 zmienionych plików z 148 dodań i 127 usunięć

Wyświetl plik

@ -16,7 +16,10 @@
# with a dictionary 'fonts.fonts' indexed by name and the value being a PyFont instance.
# The name index is the font filename less path and extension
# TODO decide whether to bit reverse the font data or not
# TODO check that new format below works for all cases of character line length as per inded
# terminal7hex = b'\x08\x0C\x20\x80\x01'\
# b'\x08\x00\x00\x3F\x00\x40\x80\x3F\x00\x00\x00\x0F\x80\x10\x40\x0F\x80'\
# b'\x08\x00\x00\x3F\x00\x40\x80\x3F\x00\x00\x00\x08\x40\x1F\xC0\x00\x40'\
import argparse, os
@ -38,19 +41,26 @@ def rbits(n): # reverse bits in a byte
# Given a string 0f form '0x23' representing a byte, return a string of same form but with the bits
# comprising the byte reversed
def rbits_text(string):
return hex(rbits(int(string, 16)))
return 'x{:02x}'.format(rbits(int(string, 16)))
def writestart(outfile, name):
print('{}: header found'.format(name))
outfile.write('_')
outfile.write(name) # _fontname = b'
outfile.write(" = b'")
outfile.write('_{} = '.format(name))
def write_index(outfile, name, index):
outfile.write("_{:}_index = b'".format(name))
outfile.write("_{:}_index = ".format(name))
count = 0
for val in index:
if count == 0:
outfile.write("b'")
outfile.write(halfword_to_str(val))
outfile.write("'\n")
count += 1
count %= 8
if count == 0:
outfile.write("'\\\n")
if count > 0:
outfile.write("'")
outfile.write("\n\n")
def process(infile, outfile, sourcefile):
chars_processed = 0
@ -102,33 +112,34 @@ def process(infile, outfile, sourcefile):
break # No header data
if phase == 3: # Process data until '}'
bytes_vert = (vert + 7)//8
comment = line.find('//')
if comment > 0 :
line = line[:comment]
end = line.find('}')
if end > 0 :
line = line[:end]
phase = 4
comment = line.find('//')
if comment > 0 :
line = line[:comment]
hexnums = line.split(',')
if hexnums[0] != '':
width = int(''.join(('0',hexnums[0].strip()[1:4])), 16) # in horizontal bits
hbit_bytes = width * bytes_vert # Bytes per horiz bit
offset += hbit_bytes
index.append(offset)
for hexnum in [x for x in hexnums[1:] if not x.isspace()]:
outfile.write('\\')
hex_txt = hexnum.strip()[1:4]
if True:
outfile.write(hex_txt) # Don't reverse bits TODO which do we want?
else:
outfile.write(rbits_text(hex_txt)) # reverse bits
hbit_bytes -= 1
if hbit_bytes == 0:
break
chars_processed += 1
outfile.write("\\\n")
nums = [x for x in hexnums[1:] if not x.isspace()]
if nums:
outfile.write("b'")
for hexnum in nums:
outfile.write('\\')
# outfile.write(hexnum.strip()[1:4]) # Don't reverse bits
outfile.write(rbits_text(hexnum.strip()[0:4])) # reverse bits
hbit_bytes -= 1
if hbit_bytes == 0:
break
outfile.write("'")
chars_processed += 1
outfile.write("\\\n") # each char line ends with \
if phase == 4 :
outfile.write("'\n")
outfile.write("\n")
write_index(outfile, name, index)
outfile.write('{:} = pyfont.PyFont(_{:}, _{:}_index, {}, {}, {})\n\n'.format(name, name, name, vert, horiz, chars_processed))
print('{}: Characters in font: {} width: {} height: {}'.format(name, chars_processed, horiz, vert))
@ -143,12 +154,7 @@ def write_trailer(sourcefiles, outfile):
outfile.write('fonts = {')
for sourcefile in sourcefiles:
name = getname(sourcefile)
outfile.write('"')
outfile.write(name)
outfile.write('"')
outfile.write(':')
outfile.write(name)
outfile.write(',\n')
outfile.write('"{}":{},\n'.format(name, name))
outfile.write('}\n\n')
def load_c(sourcefiles, destfile):

Wyświetl plik

@ -1,102 +1,117 @@
# Code generated by CfontToPython.py
import pyfont
_freesans23x25 = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0E\x00\xFC\x7F\x0E\x00\
\x00\x00\x00\x00\x78\x00\x00\x00\xF8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\xF8\x01\x00\x00\
\x00\x60\x00\x00\x00\x63\x00\x00\x00\x63\x0E\x00\x00\xF3\x0F\x00\x80\xFF\x00\x00\xF0\x67\x00\x00\x30\x63\x00\x00\x00\x63\x0F\x00\x00\xFB\x0F\x00\xC0\x7F\x00\x00\xF0\x63\x00\x00\x10\x63\x00\x00\x00\x03\x00\x00\
\x00\x00\x00\x00\xC0\x83\x01\x00\xE0\x87\x07\x00\x30\x06\x06\x00\x10\x0C\x0C\x00\x18\x0C\x0C\x00\xFC\xFF\x3F\x00\x18\x0C\x0C\x00\x10\x18\x0C\x00\x30\x18\x06\x00\xF0\xF0\x07\x00\xC0\xE0\x01\x00\
\x00\x00\x00\x00\xC0\x03\x00\x00\xE0\x07\x00\x00\x30\x0C\x00\x00\x30\x0C\x00\x00\x30\x0C\x08\x00\x70\x0E\x0E\x00\xE0\x07\x03\x00\x80\xC1\x01\x00\x00\x70\x00\x00\x00\x1C\x00\x00\x00\x07\x00\x00\xC0\xC1\x03\x00\x70\xE0\x07\x00\x38\x30\x0C\x00\x08\x30\x0C\x00\x00\x30\x0C\x00\x00\x30\x0C\x00\x00\x60\x06\x00\x00\xE0\x07\x00\x00\x80\x01\x00\
\x00\x00\x00\x00\x00\xE0\x03\x00\x00\xF0\x07\x00\xE0\x38\x07\x00\xF0\x1B\x0C\x00\x18\x0F\x0C\x00\x18\x0E\x0C\x00\x18\x1E\x0C\x00\x18\x73\x06\x00\xF0\xE1\x07\x00\xE0\xC0\x03\x00\x00\xE0\x03\x00\x00\xF0\x0F\x00\x00\x30\x0E\x00\x00\x00\x08\x00\
\x00\x00\x00\x00\x78\x00\x00\x00\xF8\x01\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFE\x01\x00\xC0\xFF\x0F\x00\xF0\x00\x7C\x00\x18\x00\xE0\x00\x04\x00\x80\x01\
\x00\x00\x00\x00\x04\x00\x80\x01\x38\x00\xE0\x00\xF0\x01\x3C\x00\xC0\xFF\x0F\x00\x00\xFC\x01\x00\
\x00\x00\x00\x00\x10\x00\x00\x00\xB0\x00\x00\x00\xE0\x00\x00\x00\x7C\x00\x00\x00\xE0\x00\x00\x00\xB0\x01\x00\x00\x10\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x60\x00\x00\x00\x60\x00\x00\x00\x60\x00\x00\x00\xFE\x0F\x00\x00\xFE\x0F\x00\x00\x60\x00\x00\x00\x60\x00\x00\x00\x60\x00\x00\x00\x60\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8E\x00\x00\x00\xFE\x00\x00\x00\x1E\x00\
\x00\x00\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0E\x00\x00\x00\x0E\x00\x00\x00\x0E\x00\
\x00\x00\x0C\x00\x00\x80\x07\x00\x00\xF0\x00\x00\x00\x1E\x00\x00\xC0\x03\x00\x00\x78\x00\x00\x00\x0C\x00\x00\x00\
\x00\x00\x00\x00\x80\xFF\x00\x00\xE0\xFF\x03\x00\xF0\x80\x07\x00\x38\x00\x0E\x00\x18\x00\x0C\x00\x18\x00\x0C\x00\x18\x00\x0C\x00\x38\x00\x0E\x00\xF0\x00\x07\x00\xE0\xFF\x03\x00\x80\xFF\x01\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xC0\x00\x00\x00\xC0\x00\x00\x00\xC0\x00\x00\x00\xE0\xFF\x0F\x00\xF8\xFF\x0F\x00\
\x00\x00\x00\x00\xC0\x01\x0E\x00\xE0\x81\x0F\x00\x70\xC0\x0D\x00\x38\xE0\x0C\x00\x18\x60\x0C\x00\x18\x30\x0C\x00\x18\x30\x0C\x00\x18\x18\x0C\x00\x30\x1C\x0C\x00\xF0\x0F\x0C\x00\xE0\x07\x0C\x00\
\x00\x00\x00\x00\xE0\x80\x01\x00\xF0\x80\x07\x00\x70\x00\x06\x00\x18\x00\x0C\x00\x18\x0C\x0C\x00\x18\x0C\x0C\x00\x18\x0C\x0C\x00\x38\x0E\x0C\x00\xF0\x1F\x06\x00\xE0\xF3\x07\x00\x00\xF0\x03\x00\
\x00\x00\x00\x00\x00\xE0\x00\x00\x00\xF0\x00\x00\x00\xDC\x00\x00\x00\xC6\x00\x00\x80\xC3\x00\x00\xC0\xC1\x00\x00\x60\xC0\x00\x00\xF8\xFF\x0F\x00\xF8\xFF\x0F\x00\x00\xC0\x00\x00\x00\xC0\x00\x00\
\x00\x00\x00\x00\x00\x04\x03\x00\xF0\x07\x07\x00\xF8\x07\x06\x00\x18\x02\x0C\x00\x18\x03\x0C\x00\x18\x03\x0C\x00\x18\x03\x0C\x00\x18\x07\x0E\x00\x18\x0E\x07\x00\x18\xFE\x03\x00\x00\xF8\x01\x00\
\x00\x00\x00\x00\x00\xFF\x00\x00\xE0\xFF\x03\x00\xF0\x18\x07\x00\x30\x0C\x0E\x00\x18\x06\x0C\x00\x18\x06\x0C\x00\x18\x06\x0C\x00\x18\x06\x0E\x00\x70\x0C\x07\x00\x70\xFC\x07\x00\x40\xF0\x01\x00\
\x00\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x0C\x00\x18\xC0\x0F\x00\x18\xF0\x03\x00\x18\x3C\x00\x00\x18\x0F\x00\x00\xD8\x01\x00\x00\xF8\x00\x00\x00\x38\x00\x00\x00\
\x00\x00\x00\x00\x00\xE0\x01\x00\xE0\xF1\x03\x00\xF0\x3B\x07\x00\x30\x1E\x0E\x00\x18\x0C\x0C\x00\x18\x0C\x0C\x00\x18\x0C\x0C\x00\x38\x1E\x0C\x00\xF0\x1F\x06\x00\xE0\xF3\x07\x00\x00\xE0\x01\x00\
\x00\x00\x00\x00\xC0\x07\x01\x00\xE0\x0F\x07\x00\x70\x1C\x07\x00\x38\x38\x0E\x00\x18\x30\x0C\x00\x18\x30\x0C\x00\x18\x30\x0C\x00\x38\x18\x0E\x00\x70\x1C\x07\x00\xE0\xFF\x03\x00\xC0\xFF\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x80\x03\x0E\x00\x80\x03\x0E\x00\x80\x03\x0E\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x80\x03\x8E\x00\x80\x03\xFE\x00\x80\x03\x1E\x00\
\x00\x00\x00\x00\x00\x60\x00\x00\x00\xE0\x00\x00\x00\xF0\x00\x00\x00\xB0\x00\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x08\x03\x00\x00\x0C\x03\x00\x00\x0C\x06\x00\x00\x06\x06\x00\x00\x06\x04\x00\x00\x02\x0C\x00\
\x00\x00\x00\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\x00\x98\x01\x00\
\x00\x00\x00\x00\x00\x02\x0C\x00\x00\x06\x04\x00\x00\x06\x06\x00\x00\x0C\x06\x00\x00\x0C\x03\x00\x00\x18\x03\x00\x00\x18\x01\x00\x00\x98\x01\x00\x00\xB0\x00\x00\x00\xF0\x00\x00\x00\xE0\x00\x00\x00\x60\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x78\x00\x00\x00\x18\x00\x00\x00\x0C\x00\x00\x00\x0C\x70\x0E\x00\x0C\x78\x0E\x00\x0C\x1C\x00\x00\x1C\x06\x00\x00\xF8\x07\x00\x00\xF0\x01\x00\x00\
\x00\x00\x00\x00\x00\xF8\x01\x00\x00\xFF\x07\x00\x80\x07\x0F\x00\xE0\x01\x1C\x00\x60\x00\x18\x00\x30\xF0\x31\x00\x18\xFC\x33\x00\x18\x1E\x67\x00\x0C\x07\x66\x00\x0C\x03\x66\x00\x0C\x01\x66\x00\x8C\x01\x62\x00\x0C\x81\x61\x00\x0C\xF7\x67\x00\x1C\xFE\x27\x00\x18\x1F\x26\x00\x38\x03\x06\x00\x30\x00\x06\x00\x70\x00\x03\x00\xE0\xC1\x03\x00\xC0\xFF\x01\x00\x00\x7F\x00\x00\
\x00\x00\x00\x00\x00\x00\x0E\x00\x00\xC0\x0F\x00\x00\xF8\x03\x00\x00\x7F\x00\x00\xE0\x6F\x00\x00\xFC\x61\x00\x00\x3C\x60\x00\x00\x3C\x60\x00\x00\xFC\x61\x00\x00\xE0\x6F\x00\x00\x00\x7F\x00\x00\x00\xF8\x03\x00\x00\xC0\x0F\x00\x00\x00\x0E\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x1C\x0E\x0C\x00\xF8\x1B\x06\x00\xF0\xF1\x07\x00\x00\xE0\x03\x00\
\x00\x00\x00\x00\x00\x3F\x00\x00\xE0\xFF\x01\x00\xF0\xC1\x03\x00\x38\x00\x07\x00\x18\x00\x06\x00\x1C\x00\x0E\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x18\x00\x06\x00\x38\x00\x07\x00\x70\xC0\x03\x00\x60\xC0\x01\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x1C\x00\x0E\x00\x38\x00\x07\x00\xF0\xC0\x03\x00\xE0\xFF\x01\x00\x80\x7F\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x00\x00\x0C\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x00\x00\x00\
\x00\x00\x00\x00\x80\x3F\x00\x00\xE0\xFF\x00\x00\xF0\xE0\x03\x00\x38\x80\x07\x00\x18\x00\x06\x00\x18\x00\x0E\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x06\x00\x18\x0C\x07\x00\x38\x8C\x03\x00\x70\xFC\x07\x00\x60\xFC\x0F\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\
\x00\x00\x00\x00\x00\xC0\x03\x00\x00\xC0\x07\x00\x00\x00\x0E\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0E\x00\xFC\xFF\x07\x00\xFC\xFF\x03\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x00\x18\x00\x00\x00\x0C\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x80\x1F\x00\x00\xC0\x39\x00\x00\x60\xF0\x00\x00\x38\xC0\x01\x00\x1C\x80\x07\x00\x0C\x00\x0F\x00\x04\x00\x0C\x00\x00\x00\x08\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x3C\x00\x00\x00\xF8\x01\x00\x00\xC0\x0F\x00\x00\x00\x7E\x00\x00\x00\xF0\x03\x00\x00\x00\x0F\x00\x00\x00\x0F\x00\x00\xE0\x07\x00\x00\xFC\x00\x00\x80\x1F\x00\x00\xF0\x03\x00\x00\x7C\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x3C\x00\x00\x00\xF0\x00\x00\x00\xE0\x01\x00\x00\x80\x07\x00\x00\x00\x1E\x00\x00\x00\x78\x00\x00\x00\xF0\x00\x00\x00\xC0\x03\x00\x00\x00\x0F\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\
\x00\x00\x00\x00\x00\x3F\x00\x00\xC0\xFF\x00\x00\xF0\xE1\x03\x00\x78\x00\x03\x00\x18\x00\x06\x00\x18\x00\x06\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x1C\x00\x0E\x00\x18\x00\x06\x00\x38\x00\x07\x00\xF0\xC0\x03\x00\xE0\xFF\x01\x00\x80\x7F\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x1C\x0E\x00\x00\xF8\x07\x00\x00\xF0\x03\x00\x00\
\x00\x00\x00\x00\x00\x3F\x00\x00\xC0\xFF\x00\x00\xF0\xE1\x03\x00\x70\x00\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x00\x0C\x80\x0D\x00\x1C\x80\x0F\x00\x18\x00\x07\x00\x38\x00\x07\x00\xF0\xC0\x0F\x00\xE0\xFF\x1D\x00\x80\x7F\x18\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x0C\x0C\x00\x00\x1C\x1E\x00\x00\xF8\xFB\x0F\x00\xF0\xF1\x0F\x00\x00\x00\x0C\x00\
\x00\x00\x00\x00\x00\xC0\x00\x00\xE0\xC3\x03\x00\xF0\x07\x07\x00\x38\x07\x06\x00\x1C\x0E\x0E\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x0C\x0C\x00\x0C\x1C\x0C\x00\x0C\x18\x0C\x00\x1C\x18\x0C\x00\x18\x38\x06\x00\x78\xF0\x07\x00\x70\xE0\x01\x00\
\x00\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\x01\x00\xFC\xFF\x03\x00\x00\x00\x07\x00\x00\x00\x06\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0E\x00\x00\x00\x07\x00\xFC\xFF\x03\x00\xFC\xFF\x01\x00\
\x00\x00\x00\x00\x1C\x00\x00\x00\xFC\x00\x00\x00\xF0\x07\x00\x00\x80\x3F\x00\x00\x00\xFC\x01\x00\x00\xE0\x0F\x00\x00\x00\x0F\x00\x00\x80\x0F\x00\x00\xF0\x07\x00\x00\xFE\x00\x00\xC0\x1F\x00\x00\xF8\x03\x00\x00\x7C\x00\x00\x00\x0C\x00\x00\x00\
\x04\x00\x00\x00\x7C\x00\x00\x00\xFC\x07\x00\x00\xC0\x7F\x00\x00\x00\xFC\x07\x00\x00\xC0\x0F\x00\x00\x80\x0F\x00\x00\xF8\x07\x00\x00\x7F\x00\x00\xF0\x0F\x00\x00\xFC\x00\x00\x00\x7C\x00\x00\x00\xF8\x03\x00\x00\xC0\x3F\x00\x00\x00\xFC\x01\x00\x00\xE0\x0F\x00\x00\x00\x0F\x00\x00\xF0\x0F\x00\x80\xFF\x01\x00\xFC\x1F\x00\x00\xFC\x01\x00\x00\x1C\x00\x00\x00\
\x00\x00\x00\x00\x04\x00\x0C\x00\x1C\x00\x0E\x00\x3C\x80\x07\x00\xF0\xC0\x03\x00\xE0\xF1\x00\x00\x80\x7F\x00\x00\x00\x1F\x00\x00\x00\x1F\x00\x00\x80\x7B\x00\x00\xE0\xE1\x01\x00\x78\xC0\x03\x00\x3C\x00\x0F\x00\x0C\x00\x0E\x00\x04\x00\x08\x00\
\x00\x00\x00\x00\x0C\x00\x00\x00\x3C\x00\x00\x00\x78\x00\x00\x00\xE0\x01\x00\x00\xC0\x03\x00\x00\x00\x0F\x00\x00\x00\xFC\x0F\x00\x00\xFC\x0F\x00\x00\x1F\x00\x00\x80\x07\x00\x00\xE0\x01\x00\x00\xF8\x00\x00\x00\x3C\x00\x00\x00\x0C\x00\x00\x00\x04\x00\x00\x00\
\x00\x00\x00\x00\x0C\x00\x0E\x00\x0C\x00\x0F\x00\x0C\xC0\x0F\x00\x0C\xE0\x0D\x00\x0C\x70\x0C\x00\x0C\x3C\x0C\x00\x0C\x1E\x0C\x00\x0C\x07\x0C\x00\xCC\x03\x0C\x00\xEC\x01\x0C\x00\x7C\x00\x0C\x00\x3C\x00\x0C\x00\x1C\x00\x0C\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\xFF\x01\xFC\xFF\xFF\x01\x0C\x00\x80\x01\x0C\x00\x80\x01\
\x0C\x00\x00\x00\x78\x00\x00\x00\xC0\x03\x00\x00\x00\x1E\x00\x00\x00\xF0\x00\x00\x00\x80\x07\x00\x00\x00\x0C\x00\
\x00\x00\x00\x00\x0C\x00\x80\x01\x0C\x00\x80\x01\xFC\xFF\xFF\x01\xFC\xFF\xFF\x01\
\x00\x00\x00\x00\x00\x08\x00\x00\x00\x0E\x00\x00\xC0\x03\x00\x00\xF0\x00\x00\x00\x18\x00\x00\x00\x78\x00\x00\x00\xE0\x03\x00\x00\x00\x0F\x00\x00\x00\x0C\x00\x00\
\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\x00\x80\x00\
\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x0C\x00\x00\x00\x18\x00\x00\x00\x20\x00\x00\x00\
\x00\x00\x00\x00\x00\xC6\x03\x00\x00\xC7\x07\x00\x80\xE3\x0C\x00\x80\x61\x0C\x00\x80\x61\x0C\x00\x80\x21\x0C\x00\x80\x21\x04\x00\x80\x33\x06\x00\x00\xFF\x07\x00\x00\xFE\x0F\x00\x00\x00\x0C\x00\
\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x00\x06\x07\x00\x00\x03\x06\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x03\x0E\x00\x00\x07\x07\x00\x00\xFE\x03\x00\x00\xFC\x01\x00\
\x00\x00\x00\x00\x00\xFC\x01\x00\x00\xFE\x03\x00\x00\x07\x07\x00\x80\x03\x0E\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x03\x0E\x00\x00\x87\x07\x00\x00\x86\x03\x00\
\x00\x00\x00\x00\x00\xFC\x01\x00\x00\xFE\x03\x00\x00\x8F\x07\x00\x80\x03\x0E\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x00\x03\x06\x00\x00\x07\x03\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\
\x00\x00\x00\x00\x00\xF8\x01\x00\x00\xFE\x03\x00\x00\x37\x07\x00\x80\x33\x0E\x00\x80\x31\x0C\x00\x80\x31\x0C\x00\x80\x31\x0C\x00\x80\x31\x0C\x00\x00\x37\x06\x00\x00\x3F\x07\x00\x00\x3C\x01\x00\
\x00\x00\x00\x00\x80\x01\x00\x00\xF8\xFF\x0F\x00\xFC\xFF\x0F\x00\x8C\x01\x00\x00\x8C\x01\x00\x00\
\x00\x00\x00\x00\x00\xFC\x61\x00\x00\xFE\xE3\x00\x00\x07\xC7\x01\x80\x03\x8E\x01\x80\x01\x8C\x01\x80\x01\x8C\x01\x80\x01\x8C\x01\x00\x03\x86\x01\x00\x07\xC3\x00\x80\xFF\xFF\x00\x80\xFF\x3F\x00\
\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x00\x07\x00\x00\x00\x01\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\x80\x03\x00\x00\x00\xFF\x0F\x00\x00\xFE\x0F\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x9C\xFF\x0F\x00\x9C\xFF\x0F\x00\
\x00\x00\x80\x01\x00\x00\x80\x01\x9C\xFF\xFF\x01\x9C\xFF\xFF\x00\
\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\x00\x30\x00\x00\x00\x18\x00\x00\x00\x3C\x00\x00\x00\xFE\x00\x00\x00\xE3\x01\x00\x80\x81\x07\x00\x80\x00\x0F\x00\x00\x00\x0C\x00\
\x00\x00\x00\x00\xFC\xFF\x0F\x00\xFC\xFF\x0F\x00\
\x00\x00\x00\x00\x80\xFF\x0F\x00\x80\xFF\x0F\x00\x00\x07\x00\x00\x00\x01\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\x80\x03\x00\x00\x00\xFF\x0F\x00\x00\xFF\x0F\x00\x00\x07\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\x80\x03\x00\x00\x80\xFF\x0F\x00\x00\xFF\x0F\x00\
\x00\x00\x00\x00\x80\xFF\x0F\x00\x80\xFF\x0F\x00\x00\x06\x00\x00\x00\x03\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\x80\x03\x00\x00\x00\xFF\x0F\x00\x00\xFE\x0F\x00\
\x00\x00\x00\x00\x00\xFC\x01\x00\x00\xFE\x03\x00\x00\x0F\x07\x00\x80\x03\x0E\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x03\x0E\x00\x00\x07\x07\x00\x00\xFF\x07\x00\x00\xFC\x01\x00\
\x00\x00\x00\x00\x80\xFF\xFF\x00\x80\xFF\xFF\x00\x00\x8E\x03\x00\x00\x03\x06\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x03\x0E\x00\x00\x07\x07\x00\x00\xFE\x03\x00\x00\xFC\x01\x00\
\x00\x00\x00\x00\x00\xF8\x01\x00\x00\xFE\x03\x00\x00\x8F\x07\x00\x80\x03\x0E\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\x00\x03\x06\x00\x00\x07\x07\x00\x80\xFF\xFF\x00\x80\xFF\xFF\x00\
\x00\x00\x00\x00\x80\xFF\x0F\x00\x80\xFF\x0F\x00\x00\x06\x00\x00\x00\x03\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\
\x00\x00\x00\x00\x00\x1E\x03\x00\x00\x3F\x07\x00\x80\x33\x0E\x00\x80\x31\x0C\x00\x80\x61\x0C\x00\x80\x61\x0C\x00\x80\x63\x0C\x00\x00\xE7\x0E\x00\x00\xC6\x07\x00\x00\xC0\x03\x00\
\x00\x00\x00\x00\x80\x01\x00\x00\xF0\xFF\x07\x00\xF0\xFF\x0F\x00\x80\x01\x0C\x00\x80\x01\x0C\x00\
\x00\x00\x00\x00\x80\xFF\x03\x00\x80\xFF\x07\x00\x00\x00\x0E\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x0C\x00\x00\x00\x04\x00\x00\x00\x03\x00\x80\xFF\x0F\x00\x80\xFF\x0F\x00\
\x80\x00\x00\x00\x80\x07\x00\x00\x80\x3F\x00\x00\x00\xFC\x01\x00\x00\xE0\x0F\x00\x00\x00\x0F\x00\x00\x00\x0F\x00\x00\xE0\x03\x00\x00\xFC\x00\x00\x80\x1F\x00\x00\x80\x03\x00\x00\
\x80\x00\x00\x00\x80\x0F\x00\x00\x00\x7F\x00\x00\x00\xF0\x07\x00\x00\x00\x0F\x00\x00\x80\x0F\x00\x00\xF8\x03\x00\x80\x3F\x00\x00\x80\x03\x00\x00\x80\x3F\x00\x00\x00\xFC\x03\x00\x00\xC0\x0F\x00\x00\x00\x0E\x00\x00\xE0\x0F\x00\x00\xFF\x00\x00\x80\x1F\x00\x00\x80\x01\x00\x00\
\x00\x00\x00\x00\x80\x01\x0C\x00\x80\x03\x0E\x00\x00\x8F\x03\x00\x00\xDC\x01\x00\x00\x78\x00\x00\x00\xF8\x00\x00\x00\xCE\x03\x00\x80\x07\x07\x00\x80\x01\x0E\x00\x80\x00\x08\x00\
\x80\x00\x00\x00\x80\x07\x80\x01\x80\x3F\x80\x01\x00\xFC\xC1\x01\x00\xE0\xFF\x00\x00\x00\x7E\x00\x00\x80\x0F\x00\x00\xF0\x03\x00\x00\x7E\x00\x00\x80\x0F\x00\x00\x80\x01\x00\x00\
\x00\x00\x00\x00\x80\x01\x0E\x00\x80\x01\x0F\x00\x80\x81\x0F\x00\x80\xE1\x0D\x00\x80\x71\x0C\x00\x80\x39\x0C\x00\x80\x1D\x0C\x00\x80\x07\x0C\x00\x80\x03\x0C\x00\x80\x01\x0C\x00\
\x00\x00\x00\x00\x00\x20\x00\x00\x00\x70\x00\x00\xF8\xDF\xFF\x00\xFC\x8F\xFF\x01\x0C\x00\x80\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\xFC\xFF\xFF\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\x0C\x00\x80\x01\xFC\x8F\xFF\x01\xF8\xDF\xFF\x00\x00\x70\x00\x00\x00\x20\x00\x00\
'
_freesans23x25_index = b'\x00\x00\x30\x00\x44\x00\x60\x00\x94\x00\xc4\x00\x18\x01\x54\x01\x60\x01\x7c\x01\x94\x01\xb4\x01\xe4\x01\xf8\x01\x14\x02\x28\x02\x44\x02\x74\x02\x94\x02\xc4\x02\xf4\x02\x24\x03\x54\x03\x84\x03\xb0\x03\xe0\x03\x10\x04\x24\x04\x38\x04\x6c\x04\xa0\x04\xd4\x04\x04\x05\x60\x05\x9c\x05\xd8\x05\x18\x06\x58\x06\x90\x06\xc4\x06\x08\x07\x44\x07\x54\x07\x7c\x07\xbc\x07\xec\x07\x34\x08\x70\x08\xb8\x08\xf0\x08\x38\x09\x78\x09\xb4\x09\xe8\x09\x24\x0a\x60\x0a\xb8\x0a\xf4\x0a\x34\x0b\x6c\x0b\x84\x0b\xa0\x0b\xb4\x0b\xdc\x0b\x14\x0c\x2c\x0c\x5c\x0c\x90\x0c\xbc\x0c\xec\x0c\x1c\x0d\x34\x0d\x64\x0d\x90\x0d\xa0\x0d\xb0\x0d\xdc\x0d\xe8\x0d\x30\x0e\x5c\x0e\x8c\x0e\xc0\x0e\xf0\x0e\x0c\x0f\x38\x0f\x50\x0f\x7c\x0f\xa8\x0f\xec\x0f\x18\x10\x44\x10\x70\x10\x88\x10\x94\x10\xb0\x10'
freesans23x25 = pyfont.PyFont(_freesans23x25, _freesans23x25_index, 25, 23, 94)
_freesans23x25 = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\x70\x00\x3f\xfe\x70\x00'\
b'\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x80\x00\x00'\
b'\x00\x06\x00\x00\x00\xc6\x00\x00\x00\xc6\x70\x00\x00\xcf\xf0\x00\x01\xff\x00\x00\x0f\xe6\x00\x00\x0c\xc6\x00\x00\x00\xc6\xf0\x00\x00\xdf\xf0\x00\x03\xfe\x00\x00\x0f\xc6\x00\x00\x08\xc6\x00\x00\x00\xc0\x00\x00'\
b'\x00\x00\x00\x00\x03\xc1\x80\x00\x07\xe1\xe0\x00\x0c\x60\x60\x00\x08\x30\x30\x00\x18\x30\x30\x00\x3f\xff\xfc\x00\x18\x30\x30\x00\x08\x18\x30\x00\x0c\x18\x60\x00\x0f\x0f\xe0\x00\x03\x07\x80\x00'\
b'\x00\x00\x00\x00\x03\xc0\x00\x00\x07\xe0\x00\x00\x0c\x30\x00\x00\x0c\x30\x00\x00\x0c\x30\x10\x00\x0e\x70\x70\x00\x07\xe0\xc0\x00\x01\x83\x80\x00\x00\x0e\x00\x00\x00\x38\x00\x00\x00\xe0\x00\x00\x03\x83\xc0\x00\x0e\x07\xe0\x00\x1c\x0c\x30\x00\x10\x0c\x30\x00\x00\x0c\x30\x00\x00\x0c\x30\x00\x00\x06\x60\x00\x00\x07\xe0\x00\x00\x01\x80\x00'\
b'\x00\x00\x00\x00\x00\x07\xc0\x00\x00\x0f\xe0\x00\x07\x1c\xe0\x00\x0f\xd8\x30\x00\x18\xf0\x30\x00\x18\x70\x30\x00\x18\x78\x30\x00\x18\xce\x60\x00\x0f\x87\xe0\x00\x07\x03\xc0\x00\x00\x07\xc0\x00\x00\x0f\xf0\x00\x00\x0c\x70\x00\x00\x00\x10\x00'\
b'\x00\x00\x00\x00\x1e\x00\x00\x00\x1f\x80\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x80\x00\x03\xff\xf0\x00\x0f\x00\x3e\x00\x18\x00\x07\x00\x20\x00\x01\x80'\
b'\x00\x00\x00\x00\x20\x00\x01\x80\x1c\x00\x07\x00\x0f\x80\x3c\x00\x03\xff\xf0\x00\x00\x3f\x80\x00'\
b'\x00\x00\x00\x00\x08\x00\x00\x00\x0d\x00\x00\x00\x07\x00\x00\x00\x3e\x00\x00\x00\x07\x00\x00\x00\x0d\x80\x00\x00\x08\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x7f\xf0\x00\x00\x7f\xf0\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\x7f\x00\x00\x00\x78\x00'\
b'\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x70\x00\x00\x00\x70\x00'\
b'\x00\x00\x30\x00\x00\x01\xe0\x00\x00\x0f\x00\x00\x00\x78\x00\x00\x03\xc0\x00\x00\x1e\x00\x00\x00\x30\x00\x00\x00'\
b'\x00\x00\x00\x00\x01\xff\x00\x00\x07\xff\xc0\x00\x0f\x01\xe0\x00\x1c\x00\x70\x00\x18\x00\x30\x00\x18\x00\x30\x00\x18\x00\x30\x00\x1c\x00\x70\x00\x0f\x00\xe0\x00\x07\xff\xc0\x00\x01\xff\x80\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x07\xff\xf0\x00\x1f\xff\xf0\x00'\
b'\x00\x00\x00\x00\x03\x80\x70\x00\x07\x81\xf0\x00\x0e\x03\xb0\x00\x1c\x07\x30\x00\x18\x06\x30\x00\x18\x0c\x30\x00\x18\x0c\x30\x00\x18\x18\x30\x00\x0c\x38\x30\x00\x0f\xf0\x30\x00\x07\xe0\x30\x00'\
b'\x00\x00\x00\x00\x07\x01\x80\x00\x0f\x01\xe0\x00\x0e\x00\x60\x00\x18\x00\x30\x00\x18\x30\x30\x00\x18\x30\x30\x00\x18\x30\x30\x00\x1c\x70\x30\x00\x0f\xf8\x60\x00\x07\xcf\xe0\x00\x00\x0f\xc0\x00'\
b'\x00\x00\x00\x00\x00\x07\x00\x00\x00\x0f\x00\x00\x00\x3b\x00\x00\x00\x63\x00\x00\x01\xc3\x00\x00\x03\x83\x00\x00\x06\x03\x00\x00\x1f\xff\xf0\x00\x1f\xff\xf0\x00\x00\x03\x00\x00\x00\x03\x00\x00'\
b'\x00\x00\x00\x00\x00\x20\xc0\x00\x0f\xe0\xe0\x00\x1f\xe0\x60\x00\x18\x40\x30\x00\x18\xc0\x30\x00\x18\xc0\x30\x00\x18\xc0\x30\x00\x18\xe0\x70\x00\x18\x70\xe0\x00\x18\x7f\xc0\x00\x00\x1f\x80\x00'\
b'\x00\x00\x00\x00\x00\xff\x00\x00\x07\xff\xc0\x00\x0f\x18\xe0\x00\x0c\x30\x70\x00\x18\x60\x30\x00\x18\x60\x30\x00\x18\x60\x30\x00\x18\x60\x70\x00\x0e\x30\xe0\x00\x0e\x3f\xe0\x00\x02\x0f\x80\x00'\
b'\x00\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x30\x00\x18\x03\xf0\x00\x18\x0f\xc0\x00\x18\x3c\x00\x00\x18\xf0\x00\x00\x1b\x80\x00\x00\x1f\x00\x00\x00\x1c\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x07\x80\x00\x07\x8f\xc0\x00\x0f\xdc\xe0\x00\x0c\x78\x70\x00\x18\x30\x30\x00\x18\x30\x30\x00\x18\x30\x30\x00\x1c\x78\x30\x00\x0f\xf8\x60\x00\x07\xcf\xe0\x00\x00\x07\x80\x00'\
b'\x00\x00\x00\x00\x03\xe0\x80\x00\x07\xf0\xe0\x00\x0e\x38\xe0\x00\x1c\x1c\x70\x00\x18\x0c\x30\x00\x18\x0c\x30\x00\x18\x0c\x30\x00\x1c\x18\x70\x00\x0e\x38\xe0\x00\x07\xff\xc0\x00\x03\xff\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x01\xc0\x70\x00\x01\xc0\x70\x00\x01\xc0\x70\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x01\xc0\x71\x00\x01\xc0\x7f\x00\x01\xc0\x78\x00'\
b'\x00\x00\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x0f\x00\x00\x00\x0d\x00\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x10\xc0\x00\x00\x30\xc0\x00\x00\x30\x60\x00\x00\x60\x60\x00\x00\x60\x20\x00\x00\x40\x30\x00'\
b'\x00\x00\x00\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00\x00\x19\x80\x00'\
b'\x00\x00\x00\x00\x00\x40\x30\x00\x00\x60\x20\x00\x00\x60\x60\x00\x00\x30\x60\x00\x00\x30\xc0\x00\x00\x18\xc0\x00\x00\x18\x80\x00\x00\x19\x80\x00\x00\x0d\x00\x00\x00\x0f\x00\x00\x00\x07\x00\x00\x00\x06\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x1e\x00\x00\x00\x18\x00\x00\x00\x30\x00\x00\x00\x30\x0e\x70\x00\x30\x1e\x70\x00\x30\x38\x00\x00\x38\x60\x00\x00\x1f\xe0\x00\x00\x0f\x80\x00\x00'\
b'\x00\x00\x00\x00\x00\x1f\x80\x00\x00\xff\xe0\x00\x01\xe0\xf0\x00\x07\x80\x38\x00\x06\x00\x18\x00\x0c\x0f\x8c\x00\x18\x3f\xcc\x00\x18\x78\xe6\x00\x30\xe0\x66\x00\x30\xc0\x66\x00\x30\x80\x66\x00\x31\x80\x46\x00\x30\x81\x86\x00\x30\xef\xe6\x00\x38\x7f\xe4\x00\x18\xf8\x64\x00\x1c\xc0\x60\x00\x0c\x00\x60\x00\x0e\x00\xc0\x00\x07\x83\xc0\x00\x03\xff\x80\x00\x00\xfe\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x70\x00\x00\x03\xf0\x00\x00\x1f\xc0\x00\x00\xfe\x00\x00\x07\xf6\x00\x00\x3f\x86\x00\x00\x3c\x06\x00\x00\x3c\x06\x00\x00\x3f\x86\x00\x00\x07\xf6\x00\x00\x00\xfe\x00\x00\x00\x1f\xc0\x00\x00\x03\xf0\x00\x00\x00\x70\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x38\x70\x30\x00\x1f\xd8\x60\x00\x0f\x8f\xe0\x00\x00\x07\xc0\x00'\
b'\x00\x00\x00\x00\x00\xfc\x00\x00\x07\xff\x80\x00\x0f\x83\xc0\x00\x1c\x00\xe0\x00\x18\x00\x60\x00\x38\x00\x70\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x18\x00\x60\x00\x1c\x00\xe0\x00\x0e\x03\xc0\x00\x06\x03\x80\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x38\x00\x70\x00\x1c\x00\xe0\x00\x0f\x03\xc0\x00\x07\xff\x80\x00\x01\xfe\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x00\x00\x30\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x00\x00\x00'\
b'\x00\x00\x00\x00\x01\xfc\x00\x00\x07\xff\x00\x00\x0f\x07\xc0\x00\x1c\x01\xe0\x00\x18\x00\x60\x00\x18\x00\x70\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x60\x00\x18\x30\xe0\x00\x1c\x31\xc0\x00\x0e\x3f\xe0\x00\x06\x3f\xf0\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00'\
b'\x00\x00\x00\x00\x00\x03\xc0\x00\x00\x03\xe0\x00\x00\x00\x70\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x70\x00\x3f\xff\xe0\x00\x3f\xff\xc0\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x00\x18\x00\x00\x00\x30\x00\x00\x00\x60\x00\x00\x00\xe0\x00\x00\x01\xf8\x00\x00\x03\x9c\x00\x00\x06\x0f\x00\x00\x1c\x03\x80\x00\x38\x01\xe0\x00\x30\x00\xf0\x00\x20\x00\x30\x00\x00\x00\x10\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x3c\x00\x00\x00\x1f\x80\x00\x00\x03\xf0\x00\x00\x00\x7e\x00\x00\x00\x0f\xc0\x00\x00\x00\xf0\x00\x00\x00\xf0\x00\x00\x07\xe0\x00\x00\x3f\x00\x00\x01\xf8\x00\x00\x0f\xc0\x00\x00\x3e\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x3c\x00\x00\x00\x0f\x00\x00\x00\x07\x80\x00\x00\x01\xe0\x00\x00\x00\x78\x00\x00\x00\x1e\x00\x00\x00\x0f\x00\x00\x00\x03\xc0\x00\x00\x00\xf0\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00'\
b'\x00\x00\x00\x00\x00\xfc\x00\x00\x03\xff\x00\x00\x0f\x87\xc0\x00\x1e\x00\xc0\x00\x18\x00\x60\x00\x18\x00\x60\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x38\x00\x70\x00\x18\x00\x60\x00\x1c\x00\xe0\x00\x0f\x03\xc0\x00\x07\xff\x80\x00\x01\xfe\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x38\x70\x00\x00\x1f\xe0\x00\x00\x0f\xc0\x00\x00'\
b'\x00\x00\x00\x00\x00\xfc\x00\x00\x03\xff\x00\x00\x0f\x87\xc0\x00\x0e\x00\xe0\x00\x18\x00\x60\x00\x18\x00\x60\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x01\xb0\x00\x38\x01\xf0\x00\x18\x00\xe0\x00\x1c\x00\xe0\x00\x0f\x03\xf0\x00\x07\xff\xb8\x00\x01\xfe\x18\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x30\x30\x00\x00\x38\x78\x00\x00\x1f\xdf\xf0\x00\x0f\x8f\xf0\x00\x00\x00\x30\x00'\
b'\x00\x00\x00\x00\x00\x03\x00\x00\x07\xc3\xc0\x00\x0f\xe0\xe0\x00\x1c\xe0\x60\x00\x38\x70\x70\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x30\x30\x00\x30\x38\x30\x00\x30\x18\x30\x00\x38\x18\x30\x00\x18\x1c\x60\x00\x1e\x0f\xe0\x00\x0e\x07\x80\x00'\
b'\x00\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\x80\x00\x3f\xff\xc0\x00\x00\x00\xe0\x00\x00\x00\x60\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x70\x00\x00\x00\xe0\x00\x3f\xff\xc0\x00\x3f\xff\x80\x00'\
b'\x00\x00\x00\x00\x38\x00\x00\x00\x3f\x00\x00\x00\x0f\xe0\x00\x00\x01\xfc\x00\x00\x00\x3f\x80\x00\x00\x07\xf0\x00\x00\x00\xf0\x00\x00\x01\xf0\x00\x00\x0f\xe0\x00\x00\x7f\x00\x00\x03\xf8\x00\x00\x1f\xc0\x00\x00\x3e\x00\x00\x00\x30\x00\x00\x00'\
b'\x20\x00\x00\x00\x3e\x00\x00\x00\x3f\xe0\x00\x00\x03\xfe\x00\x00\x00\x3f\xe0\x00\x00\x03\xf0\x00\x00\x01\xf0\x00\x00\x1f\xe0\x00\x00\xfe\x00\x00\x0f\xf0\x00\x00\x3f\x00\x00\x00\x3e\x00\x00\x00\x1f\xc0\x00\x00\x03\xfc\x00\x00\x00\x3f\x80\x00\x00\x07\xf0\x00\x00\x00\xf0\x00\x00\x0f\xf0\x00\x01\xff\x80\x00\x3f\xf8\x00\x00\x3f\x80\x00\x00\x38\x00\x00\x00'\
b'\x00\x00\x00\x00\x20\x00\x30\x00\x38\x00\x70\x00\x3c\x01\xe0\x00\x0f\x03\xc0\x00\x07\x8f\x00\x00\x01\xfe\x00\x00\x00\xf8\x00\x00\x00\xf8\x00\x00\x01\xde\x00\x00\x07\x87\x80\x00\x1e\x03\xc0\x00\x3c\x00\xf0\x00\x30\x00\x70\x00\x20\x00\x10\x00'\
b'\x00\x00\x00\x00\x30\x00\x00\x00\x3c\x00\x00\x00\x1e\x00\x00\x00\x07\x80\x00\x00\x03\xc0\x00\x00\x00\xf0\x00\x00\x00\x3f\xf0\x00\x00\x3f\xf0\x00\x00\xf8\x00\x00\x01\xe0\x00\x00\x07\x80\x00\x00\x1f\x00\x00\x00\x3c\x00\x00\x00\x30\x00\x00\x00\x20\x00\x00\x00'\
b'\x00\x00\x00\x00\x30\x00\x70\x00\x30\x00\xf0\x00\x30\x03\xf0\x00\x30\x07\xb0\x00\x30\x0e\x30\x00\x30\x3c\x30\x00\x30\x78\x30\x00\x30\xe0\x30\x00\x33\xc0\x30\x00\x37\x80\x30\x00\x3e\x00\x30\x00\x3c\x00\x30\x00\x38\x00\x30\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xff\x80\x3f\xff\xff\x80\x30\x00\x01\x80\x30\x00\x01\x80'\
b'\x30\x00\x00\x00\x1e\x00\x00\x00\x03\xc0\x00\x00\x00\x78\x00\x00\x00\x0f\x00\x00\x00\x01\xe0\x00\x00\x00\x30\x00'\
b'\x00\x00\x00\x00\x30\x00\x01\x80\x30\x00\x01\x80\x3f\xff\xff\x80\x3f\xff\xff\x80'\
b'\x00\x00\x00\x00\x00\x10\x00\x00\x00\x70\x00\x00\x03\xc0\x00\x00\x0f\x00\x00\x00\x18\x00\x00\x00\x1e\x00\x00\x00\x07\xc0\x00\x00\x00\xf0\x00\x00\x00\x30\x00\x00'\
b'\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00'\
b'\x00\x00\x00\x00\x20\x00\x00\x00\x20\x00\x00\x00\x30\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x63\xc0\x00\x00\xe3\xe0\x00\x01\xc7\x30\x00\x01\x86\x30\x00\x01\x86\x30\x00\x01\x84\x30\x00\x01\x84\x20\x00\x01\xcc\x60\x00\x00\xff\xe0\x00\x00\x7f\xf0\x00\x00\x00\x30\x00'\
b'\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x00\x60\xe0\x00\x00\xc0\x60\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\xc0\x70\x00\x00\xe0\xe0\x00\x00\x7f\xc0\x00\x00\x3f\x80\x00'\
b'\x00\x00\x00\x00\x00\x3f\x80\x00\x00\x7f\xc0\x00\x00\xe0\xe0\x00\x01\xc0\x70\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\xc0\x70\x00\x00\xe1\xe0\x00\x00\x61\xc0\x00'\
b'\x00\x00\x00\x00\x00\x3f\x80\x00\x00\x7f\xc0\x00\x00\xf1\xe0\x00\x01\xc0\x70\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\x80\x30\x00\x00\xc0\x60\x00\x00\xe0\xc0\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00'\
b'\x00\x00\x00\x00\x00\x1f\x80\x00\x00\x7f\xc0\x00\x00\xec\xe0\x00\x01\xcc\x70\x00\x01\x8c\x30\x00\x01\x8c\x30\x00\x01\x8c\x30\x00\x01\x8c\x30\x00\x00\xec\x60\x00\x00\xfc\xe0\x00\x00\x3c\x80\x00'\
b'\x00\x00\x00\x00\x01\x80\x00\x00\x1f\xff\xf0\x00\x3f\xff\xf0\x00\x31\x80\x00\x00\x31\x80\x00\x00'\
b'\x00\x00\x00\x00\x00\x3f\x86\x00\x00\x7f\xc7\x00\x00\xe0\xe3\x80\x01\xc0\x71\x80\x01\x80\x31\x80\x01\x80\x31\x80\x01\x80\x31\x80\x00\xc0\x61\x80\x00\xe0\xc3\x00\x01\xff\xff\x00\x01\xff\xfc\x00'\
b'\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x00\xe0\x00\x00\x00\x80\x00\x00\x01\x80\x00\x00\x01\x80\x00\x00\x01\x80\x00\x00\x01\xc0\x00\x00\x00\xff\xf0\x00\x00\x7f\xf0\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x39\xff\xf0\x00\x39\xff\xf0\x00'\
b'\x00\x00\x01\x80\x00\x00\x01\x80\x39\xff\xff\x80\x39\xff\xff\x00'\
b'\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00\x00\x0c\x00\x00\x00\x18\x00\x00\x00\x3c\x00\x00\x00\x7f\x00\x00\x00\xc7\x80\x00\x01\x81\xe0\x00\x01\x00\xf0\x00\x00\x00\x30\x00'\
b'\x00\x00\x00\x00\x3f\xff\xf0\x00\x3f\xff\xf0\x00'\
b'\x00\x00\x00\x00\x01\xff\xf0\x00\x01\xff\xf0\x00\x00\xe0\x00\x00\x00\x80\x00\x00\x01\x80\x00\x00\x01\x80\x00\x00\x01\x80\x00\x00\x01\xc0\x00\x00\x00\xff\xf0\x00\x00\xff\xf0\x00\x00\xe0\x00\x00\x01\x80\x00\x00\x01\x80\x00\x00\x01\x80\x00\x00\x01\xc0\x00\x00\x01\xff\xf0\x00\x00\xff\xf0\x00'\
b'\x00\x00\x00\x00\x01\xff\xf0\x00\x01\xff\xf0\x00\x00\x60\x00\x00\x00\xc0\x00\x00\x01\x80\x00\x00\x01\x80\x00\x00\x01\x80\x00\x00\x01\xc0\x00\x00\x00\xff\xf0\x00\x00\x7f\xf0\x00'\
b'\x00\x00\x00\x00\x00\x3f\x80\x00\x00\x7f\xc0\x00\x00\xf0\xe0\x00\x01\xc0\x70\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\xc0\x70\x00\x00\xe0\xe0\x00\x00\xff\xe0\x00\x00\x3f\x80\x00'\
b'\x00\x00\x00\x00\x01\xff\xff\x00\x01\xff\xff\x00\x00\x71\xc0\x00\x00\xc0\x60\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\xc0\x70\x00\x00\xe0\xe0\x00\x00\x7f\xc0\x00\x00\x3f\x80\x00'\
b'\x00\x00\x00\x00\x00\x1f\x80\x00\x00\x7f\xc0\x00\x00\xf1\xe0\x00\x01\xc0\x70\x00\x01\x80\x30\x00\x01\x80\x30\x00\x01\x80\x30\x00\x00\xc0\x60\x00\x00\xe0\xe0\x00\x01\xff\xff\x00\x01\xff\xff\x00'\
b'\x00\x00\x00\x00\x01\xff\xf0\x00\x01\xff\xf0\x00\x00\x60\x00\x00\x00\xc0\x00\x00\x01\x80\x00\x00\x01\x80\x00\x00'\
b'\x00\x00\x00\x00\x00\x78\xc0\x00\x00\xfc\xe0\x00\x01\xcc\x70\x00\x01\x8c\x30\x00\x01\x86\x30\x00\x01\x86\x30\x00\x01\xc6\x30\x00\x00\xe7\x70\x00\x00\x63\xe0\x00\x00\x03\xc0\x00'\
b'\x00\x00\x00\x00\x01\x80\x00\x00\x0f\xff\xe0\x00\x0f\xff\xf0\x00\x01\x80\x30\x00\x01\x80\x30\x00'\
b'\x00\x00\x00\x00\x01\xff\xc0\x00\x01\xff\xe0\x00\x00\x00\x70\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x20\x00\x00\x00\xc0\x00\x01\xff\xf0\x00\x01\xff\xf0\x00'\
b'\x01\x00\x00\x00\x01\xe0\x00\x00\x01\xfc\x00\x00\x00\x3f\x80\x00\x00\x07\xf0\x00\x00\x00\xf0\x00\x00\x00\xf0\x00\x00\x07\xc0\x00\x00\x3f\x00\x00\x01\xf8\x00\x00\x01\xc0\x00\x00'\
b'\x01\x00\x00\x00\x01\xf0\x00\x00\x00\xfe\x00\x00\x00\x0f\xe0\x00\x00\x00\xf0\x00\x00\x01\xf0\x00\x00\x1f\xc0\x00\x01\xfc\x00\x00\x01\xc0\x00\x00\x01\xfc\x00\x00\x00\x3f\xc0\x00\x00\x03\xf0\x00\x00\x00\x70\x00\x00\x07\xf0\x00\x00\xff\x00\x00\x01\xf8\x00\x00\x01\x80\x00\x00'\
b'\x00\x00\x00\x00\x01\x80\x30\x00\x01\xc0\x70\x00\x00\xf1\xc0\x00\x00\x3b\x80\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x73\xc0\x00\x01\xe0\xe0\x00\x01\x80\x70\x00\x01\x00\x10\x00'\
b'\x01\x00\x00\x00\x01\xe0\x01\x80\x01\xfc\x01\x80\x00\x3f\x83\x80\x00\x07\xff\x00\x00\x00\x7e\x00\x00\x01\xf0\x00\x00\x0f\xc0\x00\x00\x7e\x00\x00\x01\xf0\x00\x00\x01\x80\x00\x00'\
b'\x00\x00\x00\x00\x01\x80\x70\x00\x01\x80\xf0\x00\x01\x81\xf0\x00\x01\x87\xb0\x00\x01\x8e\x30\x00\x01\x9c\x30\x00\x01\xb8\x30\x00\x01\xe0\x30\x00\x01\xc0\x30\x00\x01\x80\x30\x00'\
b'\x00\x00\x00\x00\x00\x04\x00\x00\x00\x0e\x00\x00\x1f\xfb\xff\x00\x3f\xf1\xff\x80\x30\x00\x01\x80'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xff\xff\x80'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x01\x80\x3f\xf1\xff\x80\x1f\xfb\xff\x00\x00\x0e\x00\x00\x00\x04\x00\x00'\
b'\x00\x00\x00\x00\x00\x30\x00\x00\x00\x20\x00\x00\x00\x60\x00\x00\x00\x30\x00\x00\x00\x30\x00\x00\x00\x18\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x18\x00\x00'\
b'\x00\x00\x00\x00\xff\xff\xfe\x00\xff\xff\xfe\x00\xc0\x00\x06\x00\xc7\x00\x06\x00\xcf\x00\x06\x00\xcc\x00\x06\x00\xd8\x00\x06\x00\xd8\x07\x3e\x00\xd8\x0f\x3e\x00\xd8\x1c\x06\x00\xd8\x38\x06\x00\xcc\x70\x06\x00\xcf\xe0\x06\x00\xc7\xc0\x06\x00\xc0\x00\x06\x00\xff\xff\xfe\x00\xff\xff\xfe\x00'\
_freesans23x25_index = b'\x00\x00\x30\x00\x44\x00\x60\x00\x94\x00\xc4\x00\x18\x01\x54\x01'\
b'\x60\x01\x7c\x01\x94\x01\xb4\x01\xe4\x01\xf8\x01\x14\x02\x28\x02'\
b'\x44\x02\x74\x02\x94\x02\xc4\x02\xf4\x02\x24\x03\x54\x03\x84\x03'\
b'\xb0\x03\xe0\x03\x10\x04\x24\x04\x38\x04\x6c\x04\xa0\x04\xd4\x04'\
b'\x04\x05\x60\x05\x9c\x05\xd8\x05\x18\x06\x58\x06\x90\x06\xc4\x06'\
b'\x08\x07\x44\x07\x54\x07\x7c\x07\xbc\x07\xec\x07\x34\x08\x70\x08'\
b'\xb8\x08\xf0\x08\x38\x09\x78\x09\xb4\x09\xe8\x09\x24\x0a\x60\x0a'\
b'\xb8\x0a\xf4\x0a\x34\x0b\x6c\x0b\x84\x0b\xa0\x0b\xb4\x0b\xdc\x0b'\
b'\x14\x0c\x2c\x0c\x5c\x0c\x90\x0c\xbc\x0c\xec\x0c\x1c\x0d\x34\x0d'\
b'\x64\x0d\x90\x0d\xa0\x0d\xb0\x0d\xdc\x0d\xe8\x0d\x30\x0e\x5c\x0e'\
b'\x8c\x0e\xc0\x0e\xf0\x0e\x0c\x0f\x38\x0f\x50\x0f\x7c\x0f\xa8\x0f'\
b'\xec\x0f\x18\x10\x44\x10\x70\x10\x88\x10\x94\x10\xb0\x10\xdc\x10'\
b'\x24\x11\x24\x11'
freesans23x25 = pyfont.PyFont(_freesans23x25, _freesans23x25_index, 25, 23, 96)
fonts = {"freesans23x25":freesans23x25,
}

Wyświetl plik

@ -45,7 +45,7 @@ class PyFont(object):
mv = self.mv
for bit_vert in range(bv): # for each vertical line
bytenum, bitnum = divmod(bit_vert, 8)
bit = 1 << bitnum
bit = 1 << (7 - bitnum) # bits are reversed 1 << bitnum
for bit_horiz in range(bh): # horizontal line
fontbyte = self.mv[self.bytes_vert * bit_horiz + bytenum]
print('*' if fontbyte & bit else ' ', end = '')