diff --git a/temporary/benchmark.py b/temporary/benchmark.py deleted file mode 100644 index 82d6092..0000000 --- a/temporary/benchmark.py +++ /dev/null @@ -1,93 +0,0 @@ -import framebuf -from writer import Writer -import utime -import courier_virt_25 as font - -def timed_function(f, *args, **kwargs): - myname = str(f).split(' ')[1] - def new_func(*args, **kwargs): - t = utime.ticks_us() - result = f(*args, **kwargs) - delta = utime.ticks_diff(utime.ticks_us(), t) # Argument order new, old - print('Function {} Time = {:6.3f}ms'.format(myname, delta/1000)) - return result - return new_func - -class VirtualDisplay(object): - def __init__(self): - self.width = 256 # 16K framebuf - self.height = 512 - self.pages = self.height // 8 - self.size = self.pages * self.width - self.buffer = bytearray(self.size) - self.framebuf = framebuf.FrameBuffer1(self.buffer, self.width, self.height) - - def show(self): - pass - - def fill(self, col): - val = 0xff if col else 0 - for x in range(self.size): - self.buffer[x] = val - -class SlowWriter(Writer): - def __init__(self, device, font): - super().__init__(device, font) - - def _printchar(self, char): - bmap = Writer.bmap # Buffer mapping - if char == '\n': - self._newline() - return - device = self.device - fbuff = device.framebuf - glyph, char_height, char_width = self.font.get_ch(char) - if Writer.text_row+char_height > self.screenheight and Writer.row_clip: - return - if Writer.text_col + char_width > self.screenwidth: - if Writer.col_clip: - return - else: - self._newline() - - div, mod = divmod(char_height, 8) - gbytes = div + 1 if mod else div # No. of bytes per column of glyph - for scol in range(0, char_width): # Source column - dcol = scol + Writer.text_col # Destination column - drow = Writer.text_row - for row_offset in range(char_height): - gbyte = row_offset >> 3 # Glyph byte in column - gbit = row_offset & 7 - data_byte = glyph[scol * gbytes + gbyte] - fbuff.pixel(dcol, drow + row_offset, data_byte & (1 << gbit)) - Writer.text_col += char_width - -def check(): - x = len(device.buffer) -1 - while device.buffer[x] == 0: - x -= 1 - print('x = ', x) - print(device.buffer[x -16:x]) - -def setup(): - device.fill(0) - Writer.set_textpos(0,0) - -device = VirtualDisplay() -mystr = 'The quick brown fox\n' - -wri = Writer(device, font) -wrislow = SlowWriter(device, font) - -@timed_function -def test(writer): - for _ in range(5): - writer.printstring(mystr) - -setup() -test(wri) # Bytewise output -check() - -setup() -test(wrislow) # Bitwise output -check() diff --git a/temporary/courier_virt_25.py b/temporary/courier_virt_25.py deleted file mode 100644 index 656cd6c..0000000 --- a/temporary/courier_virt_25.py +++ /dev/null @@ -1,465 +0,0 @@ -# Code generated by font-to-py.py. -# Font: Courier Prime.ttf -version = '0.1' - -def height(): - return 25 - -def max_width(): - return 17 - -def hmap(): - return False - -def reverse(): - return False - -def monospaced(): - return False - -_font =\ -b'\x11\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\x00\x00\x00\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x03\x00\xf8\x87\x07\x00'\ -b'\xf8\x9f\x07\x00\xf8\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x78\x00'\ -b'\x00\x00\xf8\x03\x00\x00\xf8\x03\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x18\x00\x00\x00\xf8\x03\x00\x00\xf8\x03\x00\x00\x18\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x00\x30\x00\x00\x80\x31\x00\x00\x80\xb1\x07\x00'\ -b'\x80\xf1\x03\x00\x80\x7f\x00\x00\xc0\x3f\x00\x00\xf8\x31\x00\x00'\ -b'\xbc\xb1\x07\x00\x80\xf1\x03\x00\x80\x3f\x00\x00\xc0\x37\x00\x00'\ -b'\xf8\x31\x00\x00\x9c\x31\x00\x00\x80\x31\x00\x00\x80\x01\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xc0\xc3\x03\x00\xe0\xc7'\ -b'\x03\x00\x30\x0e\x01\x00\x30\x0e\x03\x00\xfe\xff\x1f\x00\xfe\xff'\ -b'\x1f\x00\x30\x0c\x03\x00\x20\x1c\x03\x00\x60\x9c\x01\x00\xf0\xf8'\ -b'\x01\x00\xf0\xf0\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\x00\x00\x11\x00'\ -b'\xe0\x00\x01\x00\xf0\x81\x03\x00\x18\xc3\x01\x00\x18\xe3\x00\x00'\ -b'\x18\x73\x00\x00\xf0\x39\x00\x00\xe0\x1c\x00\x00\x00\x0e\x00\x00'\ -b'\x00\xc6\x01\x00\x00\xe3\x03\x00\x80\x31\x06\x00\xc0\x30\x06\x00'\ -b'\x60\x30\x06\x00\x30\xe0\x03\x00\x00\xc0\x01\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\x00\xf0\x01\x00\xe0\xf9\x03\x00\xf0\x1f'\ -b'\x07\x00\x38\x0e\x06\x00\x18\x0c\x06\x00\x18\x38\x06\x00\x18\x70'\ -b'\x07\x00\x18\xe0\x03\x00\x70\xe0\x01\x00\x70\xf8\x03\x00\x00\x38'\ -b'\x07\x00\x00\x18\x06\x00\x00\x18\x06\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xf8\x01\x00\x00'\ -b'\xf8\x03\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x11\x00\x00\xfe\x00\x00\xc0\xff\x07\x00\xe0\x01\x1f\x00\x78\x00'\ -b'\x38\x00\x1c\x00\x70\x00\x0c\x00\xe0\x00\x06\x00\xc0\x01\x06\x00'\ -b'\x80\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\x06\x00\x80\x01\x06\x00\xc0\x00'\ -b'\x0c\x00\xe0\x00\x18\x00\x70\x00\x70\x00\x38\x00\xe0\x01\x1f\x00'\ -b'\xc0\xff\x07\x00\x00\xfe\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\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\x11\x00\xc0\x01'\ -b'\x00\x00\x80\x31\x00\x00\x80\x39\x00\x00\x80\x3d\x00\x00\x38\x0f'\ -b'\x00\x00\xf8\x03\x00\x00\x10\x0f\x00\x00\x80\x3d\x00\x00\x80\x31'\ -b'\x00\x00\xc0\x01\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\ -b'\x00\x0c\x00\x00\x00\x0c\x00\x00\xe0\xff\x01\x00\xe0\xff\x01\x00'\ -b'\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\ -b'\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x70\x00\x00\x00'\ -b'\x7f\x00\x00\x80\x1f\x00\x00\x80\x07\x00\x00\x80\x01\x00\x00\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\ -b'\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\ -b'\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\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\x00\x00\x03\x00\x00\x80\x07\x00\x00\x80'\ -b'\x07\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x70\x00'\ -b'\x00\x00\x7c\x00\x00\x00\x1f\x00\x00\xc0\x07\x00\x00\xf0\x00\x00'\ -b'\x00\x3e\x00\x00\x80\x0f\x00\x00\xe0\x03\x00\x00\xf8\x00\x00\x00'\ -b'\x1e\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x11\x00\x80\x7f\x00\x00\xe0\xff\x01\x00\xf0\xc0\x03\x00\x38\x00'\ -b'\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x38\x00'\ -b'\x07\x00\xf0\xc0\x03\x00\xe0\xff\x01\x00\x80\x7f\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\x20\x00\x04\x00\x30\x00\x06\x00'\ -b'\x30\x00\x06\x00\x30\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00'\ -b'\xf8\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00'\ -b'\x00\x00\x06\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\x11\x00\xf0\x00'\ -b'\x06\x00\xf0\x00\x07\x00\x38\x80\x07\x00\x18\xc0\x07\x00\x18\xe0'\ -b'\x06\x00\x18\x70\x06\x00\x18\x38\x06\x00\x30\x1e\x06\x00\xf0\x0f'\ -b'\x06\x00\xe0\x83\x07\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x70\x80\x01\x00\x70\x00\x03\x00\x18\x00\x03\x00'\ -b'\x18\x06\x06\x00\x18\x06\x06\x00\x18\x06\x06\x00\x18\x06\x06\x00'\ -b'\x30\x0f\x06\x00\xf0\x0f\x03\x00\xe0\xf9\x03\x00\x00\xf0\x00\x00'\ -b'\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\x11\x00\x00\x38\x00\x00\x00\x3c'\ -b'\x00\x00\x00\x3e\x00\x00\x00\x33\x00\x00\xc0\x31\x06\x00\xe0\x30'\ -b'\x06\x00\x30\x30\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x00\x30'\ -b'\x06\x00\x00\x30\x06\x00\x00\x30\x06\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\x00\x80\x01\x00\xf8\x07\x03\x00\xf8\x07\x03\x00\x18\x03\x06\x00'\ -b'\x18\x03\x06\x00\x18\x03\x06\x00\x18\x03\x06\x00\x18\x03\x07\x00'\ -b'\x18\x8e\x03\x00\x18\xfe\x01\x00\x00\xf8\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\x00\x7e\x00\x00\x80\xff\x01\x00\xc0\x0d'\ -b'\x03\x00\xe0\x04\x06\x00\x70\x06\x06\x00\x30\x06\x06\x00\x38\x06'\ -b'\x06\x00\x18\x06\x06\x00\x18\x0c\x03\x00\x18\xfc\x03\x00\x00\xf0'\ -b'\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\x11\x00\x78\x00\x00\x00'\ -b'\x78\x00\x00\x00\x18\x00\x00\x00\x18\x00\x06\x00\x18\xc0\x07\x00'\ -b'\x18\xf0\x01\x00\x18\x7c\x00\x00\x98\x0f\x00\x00\xf8\x03\x00\x00'\ -b'\xf8\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x11\x00\xe0\xf0\x00\x00\xf0\xf9\x03\x00\x30\x0f\x03\x00\x18\x06'\ -b'\x06\x00\x18\x06\x06\x00\x18\x06\x06\x00\x18\x06\x06\x00\x30\x07'\ -b'\x06\x00\xf0\x0f\x03\x00\xe0\xf9\x03\x00\x00\xf0\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x03\x00\x00\xf0\x0f\x06\x00'\ -b'\x30\x0c\x06\x00\x18\x18\x06\x00\x18\x18\x07\x00\x18\x18\x03\x00'\ -b'\x18\x98\x03\x00\x38\xc8\x01\x00\x30\xec\x00\x00\xe0\x7f\x00\x00'\ -b'\x80\x1f\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\x11\x00\x80\x01'\ -b'\x03\x00\xc0\x83\x07\x00\xc0\x83\x07\x00\x80\x01\x03\x00\x00\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x00\x00\x70\x00\x80\x01\x7f\x00\xc0\x83\x1f\x00'\ -b'\xc0\x83\x07\x00\x80\x81\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x0c\x00\x00\x00\x1c'\ -b'\x00\x00\x00\x1e\x00\x00\x00\x3e\x00\x00\x00\x33\x00\x00\x00\x33'\ -b'\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00\xc0\xc0\x00\x00\xc0\xc0'\ -b'\x00\x00\x60\x80\x01\x00\x60\x80\x01\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00'\ -b'\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00'\ -b'\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\x20\x00\x01\x00\x60\x80\x01\x00\x60\x80'\ -b'\x01\x00\xc0\xc0\x00\x00\xc0\xc0\x00\x00\x80\x61\x00\x00\x80\x61'\ -b'\x00\x00\x00\x33\x00\x00\x00\x33\x00\x00\x00\x1e\x00\x00\x00\x1e'\ -b'\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x70\x00\x00\x00'\ -b'\x70\x00\x00\x00\x18\x00\x00\x00\x18\x00\x03\x00\x18\xfc\x07\x00'\ -b'\x18\xbc\x07\x00\x18\x0c\x03\x00\x38\x06\x00\x00\xf0\x07\x00\x00'\ -b'\xe0\x01\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\x00\x00\x00\x00'\ -b'\x11\x00\x00\xfc\x00\x00\x00\xff\x03\x00\x80\x03\x07\x00\xc0\xf8'\ -b'\x0c\x00\x60\xfc\x1d\x00\x70\x8e\x19\x00\x30\x87\x19\x00\x30\x83'\ -b'\x18\x00\x30\x63\x18\x00\x30\xfe\x19\x00\x70\x87\x0d\x00\x60\x80'\ -b'\x09\x00\xc0\xc1\x01\x00\x80\xff\x00\x00\x00\x3f\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x06\x00\x00\x00\x06\x00'\ -b'\x00\x00\x07\x00\x18\xe0\x07\x00\x18\xfc\x06\x00\x18\x3f\x06\x00'\ -b'\xf8\x33\x04\x00\x78\x30\x00\x00\x18\x30\x00\x00\xf8\x30\x00\x00'\ -b'\xe0\x37\x06\x00\x80\x3f\x06\x00\x00\xfc\x06\x00\x00\xe0\x07\x00'\ -b'\x00\x00\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x11\x00\x18\x00'\ -b'\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x0c'\ -b'\x06\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\x18\x0c'\ -b'\x06\x00\x18\x0c\x06\x00\x30\x0e\x06\x00\xf0\x1f\x03\x00\xe0\xf9'\ -b'\x03\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x00\x3f\x00\x00\xc0\xff\x00\x00\xe0\xc0\x01\x00'\ -b'\x70\x00\x03\x00\x38\x00\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00'\ -b'\x18\x00\x06\x00\x18\x00\x06\x00\x30\x00\x06\x00\x70\x00\x03\x00'\ -b'\xf8\x01\x03\x00\xf8\x81\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x18\x00\x06\x00\x18\x00'\ -b'\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x00\x06\x00\x18\x00'\ -b'\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x38\x00'\ -b'\x07\x00\x70\x80\x03\x00\xe0\xc0\x01\x00\xc0\xff\x00\x00\x00\x3f'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00'\ -b'\x18\x0c\x06\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\x18\x0c\x06\x00'\ -b'\x18\x3f\x06\x00\x18\x3f\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00'\ -b'\xf8\xe0\x07\x00\xf8\xe0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00'\ -b'\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x0c\x06\x00\x18\x0c'\ -b'\x06\x00\x18\x0c\x06\x00\x18\x3f\x06\x00\x18\x3f\x00\x00\x18\x00'\ -b'\x00\x00\x18\x00\x00\x00\xf8\x00\x00\x00\xf8\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x3f\x00\x00'\ -b'\xc0\xff\x00\x00\xe0\xc0\x01\x00\x70\x00\x03\x00\x38\x00\x07\x00'\ -b'\x18\x00\x06\x00\x18\x00\x06\x00\x18\x30\x06\x00\x18\x30\x06\x00'\ -b'\x18\x30\x06\x00\x30\x30\x06\x00\xf8\xf1\x03\x00\xf8\xf1\x03\x00'\ -b'\x00\x30\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff'\ -b'\x07\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\x00\x0c\x00\x00\x00\x0c'\ -b'\x00\x00\x00\x0c\x00\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\xf8\xff'\ -b'\x07\x00\xf8\xff\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x06\x00\x18\x00\x06\x00'\ -b'\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00'\ -b'\xf8\xff\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00'\ -b'\x18\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\xf8'\ -b'\x01\x00\x00\xf0\x03\x00\x10\x00\x07\x00\x18\x00\x06\x00\x18\x00'\ -b'\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x07\x00\xf8\xff'\ -b'\x03\x00\xf8\xff\x01\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\ -b'\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00'\ -b'\xf8\xff\x07\x00\x18\x0c\x06\x00\x18\x0e\x06\x00\x00\x0f\x06\x00'\ -b'\x00\x0f\x00\x00\x80\x19\x00\x00\xd8\x78\x00\x00\x78\xf0\x01\x00'\ -b'\x38\x80\x07\x00\x38\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x18\x00\x06\x00\x18\x00'\ -b'\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x00'\ -b'\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x00\x00'\ -b'\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\xf0\x07\x00\x00\xf0'\ -b'\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\x00\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00'\ -b'\x78\x00\x06\x00\xf0\x01\x06\x00\xc0\x0f\x00\x00\x00\x3e\x00\x00'\ -b'\x00\x70\x00\x00\x00\x3e\x00\x00\xc0\x0f\x00\x00\xf0\x01\x06\x00'\ -b'\x78\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x00\x06\x00'\ -b'\x00\x00\x06\x00\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff'\ -b'\x07\x00\xf8\xff\x07\x00\x78\x00\x06\x00\xe0\x00\x06\x00\x80\x03'\ -b'\x06\x00\x00\x0e\x00\x00\x00\x3c\x00\x00\x18\xf0\x00\x00\x18\xc0'\ -b'\x03\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x00\x00\x00\x18\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x3f\x00\x00'\ -b'\xc0\xff\x00\x00\xe0\xc0\x01\x00\x70\x80\x03\x00\x30\x00\x03\x00'\ -b'\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00'\ -b'\x18\x00\x06\x00\x30\x00\x03\x00\x70\x80\x03\x00\xe0\xc0\x01\x00'\ -b'\xc0\xff\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff'\ -b'\x07\x00\xf8\xff\x07\x00\x18\x18\x06\x00\x18\x18\x06\x00\x18\x18'\ -b'\x06\x00\x18\x18\x06\x00\x18\x18\x00\x00\x38\x18\x00\x00\x30\x0c'\ -b'\x00\x00\xf0\x0f\x00\x00\xc0\x03\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x3f\x00\x00\xc0\xff\x00\x00'\ -b'\xe0\xc0\x21\x00\x70\x80\x73\x00\x30\x00\x3b\x00\x18\x00\x3e\x00'\ -b'\x18\x00\x36\x00\x18\x00\x36\x00\x18\x00\x36\x00\x18\x00\x36\x00'\ -b'\x30\x00\x33\x00\x70\x80\x33\x00\xe0\xc0\x39\x00\xc0\xff\x10\x00'\ -b'\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x18\x00'\ -b'\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x0c'\ -b'\x06\x00\x18\x0c\x06\x00\x18\x0c\x00\x00\x18\x1c\x00\x00\x18\x1c'\ -b'\x00\x00\x18\x34\x00\x00\x30\xf6\x00\x00\xf0\xc7\x03\x00\xe0\x81'\ -b'\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\xe0\xe1\x07\x00\xf0\xc3\x07\x00\x30\x86\x03\x00'\ -b'\x18\x06\x03\x00\x18\x06\x06\x00\x18\x04\x06\x00\x18\x0c\x06\x00'\ -b'\x18\x0c\x06\x00\x30\x0c\x06\x00\x30\x0c\x06\x00\x78\x18\x03\x00'\ -b'\x78\xf8\x03\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xf8\x03\x00\x00\xf8\x03'\ -b'\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff'\ -b'\x07\x00\xf8\xff\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00'\ -b'\x06\x00\x18\x00\x06\x00\xf8\x03\x00\x00\xf8\x03\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\x18\x00\x00\x00\x18\x00\x00\x00\xf8\xff\x00\x00\xf8\xff\x03\x00'\ -b'\x18\x00\x03\x00\x18\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00'\ -b'\x00\x00\x06\x00\x18\x00\x06\x00\x18\x00\x03\x00\xf8\xff\x03\x00'\ -b'\xf8\xff\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\x18\x00\x00\x00\x18\x00\x00\x00\x38\x00'\ -b'\x00\x00\xf8\x01\x00\x00\xd8\x0f\x00\x00\x18\x3e\x00\x00\x18\xf8'\ -b'\x01\x00\x00\xc0\x07\x00\x00\x00\x07\x00\x00\xc0\x07\x00\x00\xf8'\ -b'\x01\x00\x18\x3f\x00\x00\xd8\x07\x00\x00\xf8\x01\x00\x00\x38\x00'\ -b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x11\x00\x18\x00\x00\x00'\ -b'\x18\x00\x00\x00\xf8\x0f\x00\x00\xf8\xff\x07\x00\x18\xf0\x07\x00'\ -b'\x18\xc0\x07\x00\x00\xf8\x01\x00\x80\x3f\x00\x00\x80\x07\x00\x00'\ -b'\x80\x1f\x00\x00\x00\xfc\x00\x00\x18\xe0\x07\x00\x18\xe0\x07\x00'\ -b'\xf8\xff\x07\x00\xf8\x0f\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00'\ -b'\x11\x00\x00\x00\x06\x00\x18\x00\x06\x00\x18\x00\x07\x00\x38\x80'\ -b'\x07\x00\xf8\xc0\x06\x00\xd8\x71\x06\x00\x98\x3b\x00\x00\x00\x1e'\ -b'\x00\x00\x00\x1f\x00\x00\x80\x3b\x00\x00\xd8\x71\x06\x00\xf8\xc0'\ -b'\x06\x00\x38\x80\x07\x00\x18\x00\x07\x00\x18\x00\x06\x00\x00\x00'\ -b'\x06\x00\x00\x00\x00\x00\x11\x00\x18\x00\x00\x00\x18\x00\x00\x00'\ -b'\x38\x00\x06\x00\xf8\x00\x06\x00\xd8\x03\x06\x00\x18\x07\x06\x00'\ -b'\x00\xfe\x07\x00\x00\xfc\x07\x00\x00\x0f\x06\x00\x98\x03\x06\x00'\ -b'\xf8\x01\x06\x00\x78\x00\x06\x00\x38\x00\x00\x00\x18\x00\x00\x00'\ -b'\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xf8\x01'\ -b'\x06\x00\xf8\x81\x07\x00\x18\xc0\x07\x00\x18\xe0\x06\x00\x18\x78'\ -b'\x06\x00\x18\x1c\x06\x00\x18\x0f\x06\x00\x98\x03\x06\x00\xf8\x01'\ -b'\x06\x00\xf8\x00\x06\x00\x38\xe0\x07\x00\x18\xe0\x07\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\xfe\xff\xff\x00\xfe\xff\xff\x00\x06\x00\xc0\x00'\ -b'\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x0e\x00\x00\x00\x3e\x00'\ -b'\x00\x00\xf8\x00\x00\x00\xe0\x03\x00\x00\x00\x0f\x00\x00\x00\x7c'\ -b'\x00\x00\x00\xf0\x01\x00\x00\xc0\x07\x00\x00\x00\x1f\x00\x00\x00'\ -b'\x78\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00'\ -b'\x06\x00\xc0\x00\xfe\xff\xff\x00\xfe\xff\xff\x00\x00\x00\x00\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\x00\x08\x00\x00\x00\x1e\x00\x00\x80\x0f'\ -b'\x00\x00\xe0\x03\x00\x00\xf8\x00\x00\x00\x38\x00\x00\x00\xf0\x00'\ -b'\x00\x00\xc0\x03\x00\x00\x00\x0f\x00\x00\x00\x1c\x00\x00\x00\x10'\ -b'\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\x11\x00\x00\x00\x18\x00'\ -b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\ -b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\ -b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\ -b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\ -b'\x11\x00\x07\x00\x00\x00\x07\x00\x00\x00\x06\x00\x00\x00\x0c\x00'\ -b'\x00\x00\x0c\x00\x00\x00\x08\x00\x00\x00\x18\x00\x00\x00\x00\x00'\ -b'\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\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\xe0\x01\x00\x00\xf1\x03\x00'\ -b'\x80\x31\x07\x00\x80\x19\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00'\ -b'\xc0\x18\x06\x00\xc0\x18\x07\x00\xc0\x18\x03\x00\xc0\x91\x03\x00'\ -b'\x80\xff\x03\x00\x00\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x06\x00'\ -b'\x06\x00\x06\x00\x06\x00\xfe\xff\x07\x00\xfe\xff\x07\x00\x00\x83'\ -b'\x01\x00\x80\x01\x03\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00'\ -b'\x06\x00\xc0\x00\x06\x00\xc0\x01\x07\x00\x80\x83\x03\x00\x00\xff'\ -b'\x01\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x00\x7c\x00\x00\x00\xff\x01\x00\x80\x83\x03\x00'\ -b'\x80\x01\x03\x00\xc0\x01\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00'\ -b'\xc0\x00\x06\x00\xc0\x00\x06\x00\x80\x01\x06\x00\x80\x01\x03\x00'\ -b'\xc0\x0f\x03\x00\xc0\x8f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\xfc\x00\x00\x00\xfe'\ -b'\x01\x00\x00\x87\x03\x00\x80\x03\x07\x00\x80\x01\x06\x00\x80\x01'\ -b'\x06\x00\x86\x01\x06\x00\x86\x01\x06\x00\x06\x03\x03\x00\x06\x86'\ -b'\x01\x00\xfe\xff\x07\x00\xfe\xff\x07\x00\x00\x00\x06\x00\x00\x00'\ -b'\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\x00\xfc\x00\x00\x00\xff\x01\x00\x80\x9b\x03\x00\x80\x19\x07\x00'\ -b'\xc0\x18\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00'\ -b'\xc0\x18\x06\x00\x80\x19\x07\x00\x80\x1b\x03\x00\x00\x1f\x03\x00'\ -b'\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\x80\x01\x06\x00\x80\x01\x06\x00\x80\x01'\ -b'\x06\x00\x80\x01\x06\x00\xf8\xff\x07\x00\xfc\xff\x07\x00\x8e\x01'\ -b'\x06\x00\x86\x01\x06\x00\x86\x01\x06\x00\x86\x01\x06\x00\x86\x01'\ -b'\x06\x00\x8e\x01\x06\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x7c\x00\x00'\ -b'\x00\xff\x61\x00\x80\x83\x63\x00\xc0\x01\xc7\x00\xc0\x00\xc6\x00'\ -b'\xc0\x00\xc6\x00\xc0\x00\xc6\x00\xc0\x00\xc6\x00\x80\x01\xc3\x00'\ -b'\x00\x83\x61\x00\xc0\xff\x7f\x00\xc0\xff\x1f\x00\xc0\x00\x00\x00'\ -b'\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x11\x00\x06\x00\x06\x00\x06\x00\x06\x00\xfe\xff\x07\x00\xfe\xff'\ -b'\x07\x00\x00\x07\x06\x00\x80\x01\x06\x00\x80\x01\x00\x00\xc0\x00'\ -b'\x00\x00\xc0\x00\x00\x00\xc0\x00\x06\x00\xc0\x01\x06\x00\x80\xff'\ -b'\x07\x00\x00\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x06\x00\xc0\x00\x06\x00'\ -b'\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xcf\xff\x07\x00'\ -b'\xcf\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00'\ -b'\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00'\ -b'\x20\x00\xc0\x00\x60\x00\xc0\x00\x60\x00\xc0\x00\xc0\x00\xc0\x00'\ -b'\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xe0\x00\xcf\xff'\ -b'\x7f\x00\xcf\xff\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x06\x00\x06\x00\x06\x00\x06\x00\xfe\xff\x07\x00'\ -b'\xfe\xff\x07\x00\x00\x70\x06\x00\x00\x38\x06\x00\x00\x18\x00\x00'\ -b'\x00\x3c\x00\x00\xc0\x76\x00\x00\xc0\xe7\x06\x00\xc0\xc3\x07\x00'\ -b'\xc0\x81\x07\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\x00\x00\x06\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x06\x00\x06\x00\x06\x00'\ -b'\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\xfe\xff'\ -b'\x07\x00\xfe\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00'\ -b'\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\xff\x07\x00\xc0\xff\x07\x00'\ -b'\x80\x03\x06\x00\xc0\x00\x04\x00\xc0\x00\x00\x00\xc0\x00\x00\x00'\ -b'\xc0\xff\x07\x00\x00\xff\x07\x00\x80\x03\x06\x00\xc0\x00\x06\x00'\ -b'\xc0\x00\x00\x00\xc0\xff\x07\x00\x80\xff\x07\x00\x00\x00\x06\x00'\ -b'\x00\x00\x06\x00\x11\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\xff'\ -b'\x07\x00\xc0\xff\x07\x00\x00\x07\x06\x00\x80\x01\x06\x00\x80\x00'\ -b'\x00\x00\xc0\x00\x00\x00\xc0\x00\x00\x00\xc0\x00\x06\x00\xc0\x01'\ -b'\x06\x00\x80\xff\x07\x00\x00\xff\x07\x00\x00\x00\x06\x00\x00\x00'\ -b'\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x7c\x00\x00'\ -b'\x00\xff\x01\x00\x80\x83\x03\x00\x80\x01\x03\x00\xc0\x00\x06\x00'\ -b'\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00'\ -b'\x80\x01\x03\x00\x80\x83\x03\x00\x00\xff\x01\x00\x00\x7c\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x11\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\xff\xff\x00\xc0\xff'\ -b'\xff\x00\x00\x83\xc1\x00\x80\x01\xc3\x00\xc0\x00\xc6\x00\xc0\x00'\ -b'\xc6\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x01\x07\x00\x80\x83'\ -b'\x03\x00\x00\xff\x01\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x7c\x00\x00\x00\xff\x01\x00'\ -b'\x80\x83\x03\x00\xc0\x01\x07\x00\xc0\x00\x06\x00\xc0\x00\x06\x00'\ -b'\xc0\x00\xc6\x00\xc0\x00\xc6\x00\x80\x01\xc3\x00\x00\x83\xc1\x00'\ -b'\xc0\xff\xff\x00\xc0\xff\xff\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x00'\ -b'\x06\x00\xc0\x00\x06\x00\xc0\xff\x07\x00\xc0\xff\x07\x00\x00\x0e'\ -b'\x06\x00\x00\x03\x06\x00\x80\x01\x06\x00\xc0\x01\x06\x00\xc0\x00'\ -b'\x06\x00\xc0\x00\x00\x00\xc0\x01\x00\x00\x80\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x00\x87\x07\x00\x80\x8f\x07\x00\xc0\x19\x03\x00'\ -b'\xc0\x18\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00'\ -b'\x80\x30\x06\x00\x80\x31\x07\x00\xc0\xf3\x03\x00\xc0\xe3\x01\x00'\ -b'\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\x11\x00\x80\x01\x00\x00\x80\x01'\ -b'\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\xfc\xff\x01\x00\xfc\xff'\ -b'\x03\x00\x80\x01\x07\x00\x80\x01\x06\x00\x80\x01\x06\x00\x80\x01'\ -b'\x06\x00\x80\x01\x06\x00\x80\x01\x03\x00\x00\x00\x03\x00\x00\x00'\ -b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\ -b'\xc0\x00\x00\x00\xc0\x00\x00\x00\xc0\xff\x01\x00\xc0\xff\x03\x00'\ -b'\x00\x00\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00'\ -b'\xc0\x00\x02\x00\xc0\x00\x03\x00\xc0\xc0\x01\x00\xc0\xff\x07\x00'\ -b'\xc0\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\xc0\x00\x00\x00\xc0\x00\x00\x00\xc0\x03'\ -b'\x00\x00\xc0\x0f\x00\x00\xc0\x7e\x00\x00\xc0\xf0\x01\x00\x80\xc0'\ -b'\x07\x00\x00\x00\x06\x00\x00\x80\x07\x00\xc0\xf0\x03\x00\xc0\x7c'\ -b'\x00\x00\xc0\x1f\x00\x00\xc0\x07\x00\x00\xc0\x00\x00\x00\xc0\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x00\x00\x00'\ -b'\xc0\x01\x00\x00\xc0\x1f\x00\x00\xc0\xfe\x01\x00\xc0\xe0\x07\x00'\ -b'\xc0\x80\x07\x00\x00\xf0\x03\x00\x00\x7e\x00\x00\x00\x0e\x00\x00'\ -b'\x00\x7e\x00\x00\x00\xf0\x03\x00\x00\x80\x07\x00\xc0\xe0\x07\x00'\ -b'\xc0\xfc\x01\x00\xc0\x1f\x00\x00\xc0\x03\x00\x00\xc0\x00\x00\x00'\ -b'\x11\x00\x00\x00\x04\x00\xc0\x00\x06\x00\xc0\x00\x07\x00\xc0\x81'\ -b'\x07\x00\xc0\xc3\x07\x00\xc0\xe6\x06\x00\x00\x3c\x00\x00\x00\x18'\ -b'\x00\x00\x00\x3c\x00\x00\xc0\x66\x06\x00\xc0\xc3\x07\x00\xc0\x81'\ -b'\x07\x00\xc0\x00\x07\x00\xc0\x00\x06\x00\x00\x00\x04\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x00\x00\x00\xc0\x00\xc0\x00'\ -b'\xc0\x03\xc0\x00\xc0\x07\xc0\x00\xc0\x1e\x60\x00\xc0\x78\x70\x00'\ -b'\x80\xe0\x3d\x00\x00\x80\x0f\x00\x00\xc0\x03\x00\xc0\xf0\x00\x00'\ -b'\xc0\x3c\x00\x00\xc0\x0f\x00\x00\xc0\x03\x00\x00\xc0\x00\x00\x00'\ -b'\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x03'\ -b'\x06\x00\xc0\x03\x07\x00\xc0\x80\x07\x00\xc0\xe0\x07\x00\xc0\xf0'\ -b'\x06\x00\xc0\x78\x06\x00\xc0\x3c\x06\x00\xc0\x0e\x06\x00\xc0\x07'\ -b'\x06\x00\xc0\x03\x06\x00\xc0\xc1\x07\x00\xc0\xc0\x07\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x11\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00'\ -b'\x00\x3c\x00\x00\xf8\xff\x3f\x00\xfc\xc7\x7f\x00\x0e\x00\xe0\x00'\ -b'\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x00\x00\x00\x00'\ -b'\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\x11\x00\xfe\xff\xff\x00\xfe\xff'\ -b'\xff\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\x00\x00\x00\x00'\ -b'\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\x00\x00\x11\x00'\ -b'\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x0e\x00\xe0\x00'\ -b'\xfc\xe7\x7f\x00\xf8\xff\x3f\x00\x00\x3c\x00\x00\x00\x18\x00\x00'\ -b'\x00\x18\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x11\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x0c'\ -b'\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x18'\ -b'\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18'\ -b'\x00\x00\x00\x0c\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00'\ -b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - -_index =\ -b'\x00\x00\x46\x00\x8c\x00\xd2\x00\x18\x01\x5e\x01\xa4\x01\xea\x01'\ -b'\x30\x02\x76\x02\xbc\x02\x02\x03\x48\x03\x8e\x03\xd4\x03\x1a\x04'\ -b'\x60\x04\xa6\x04\xec\x04\x32\x05\x78\x05\xbe\x05\x04\x06\x4a\x06'\ -b'\x90\x06\xd6\x06\x1c\x07\x62\x07\xa8\x07\xee\x07\x34\x08\x7a\x08'\ -b'\xc0\x08\x06\x09\x4c\x09\x92\x09\xd8\x09\x1e\x0a\x64\x0a\xaa\x0a'\ -b'\xf0\x0a\x36\x0b\x7c\x0b\xc2\x0b\x08\x0c\x4e\x0c\x94\x0c\xda\x0c'\ -b'\x20\x0d\x66\x0d\xac\x0d\xf2\x0d\x38\x0e\x7e\x0e\xc4\x0e\x0a\x0f'\ -b'\x50\x0f\x96\x0f\xdc\x0f\x22\x10\x68\x10\xae\x10\xf4\x10\x3a\x11'\ -b'\x80\x11\xc6\x11\x0c\x12\x52\x12\x98\x12\xde\x12\x24\x13\x6a\x13'\ -b'\xb0\x13\xf6\x13\x3c\x14\x82\x14\xc8\x14\x0e\x15\x54\x15\x9a\x15'\ -b'\xe0\x15\x26\x16\x6c\x16\xb2\x16\xf8\x16\x3e\x17\x84\x17\xca\x17'\ -b'\x10\x18\x56\x18\x9c\x18\xe2\x18\x28\x19\x6e\x19\xb4\x19\xfa\x19'\ - - - -def _chr_addr(ordch): - offset = 2 * (ordch - 32) - return int.from_bytes(_index[offset:offset + 2], 'little') - -def get_ch(ch): - ordch = ord(ch) - ordch = ordch if ordch >= 32 and ordch <= 126 else ord('?') - offset = _chr_addr(ordch) - width = int.from_bytes(_font[offset:offset + 2], 'little') - next_offs = _chr_addr(ordch +1) - return memoryview(_font[offset + 2:next_offs]), 25, width -