diff --git a/data/font/Times9k.bdf b/data/font/Times9k.bdf
deleted file mode 100644
index f1a67cd..0000000
--- a/data/font/Times9k.bdf
+++ /dev/null
@@ -1,3240 +0,0 @@
-STARTFONT 2.1
-COMMENT
-COMMENT Copyright (c) 2022, Sammy L. Koch (sammykoch2004@gmail.com),
-COMMENT with Reserved Font Name: "Times9k". Version 1.1.
-COMMENT
-COMMENT This Font Software is licensed under the SIL Open Font License, Version 1.1.
-FONT Times9k
-SIZE 7 72 72
-FONTBOUNDINGBOX 5 9 0 -2
-STARTPROPERTIES 11
-FOUNDRY "Fine"
-FAMILY_NAME "Times9k"
-WEIGHT_NAME "Book"
-SLANT "R"
-SETWIDTH_NAME "Book"
-SPACING "c"
-CHARSET_REGISTRY "ISO-8859"
-CHARSET_ENCODING "1"
-COPYRIGHT "Copyright (c) 2022, Sammy L. Koch"
-FONT_ASCENT 7
-FONT_DESCENT 2
-ENDPROPERTIES
-CHARS 256
-STARTCHAR C000
-ENCODING 0
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 0 0 0 0
-BITMAP
-ENDCHAR
-STARTCHAR C001
-ENCODING 1
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 5 1 0
-BITMAP
-a0
-a0
-00
-e0
-40
-ENDCHAR
-STARTCHAR C002
-ENCODING 2
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-f8
-f8
-a8
-a8
-f8
-88
-d8
-f8
-f8
-ENDCHAR
-STARTCHAR C003
-ENCODING 3
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 5 1 0
-BITMAP
-a0
-e0
-e0
-e0
-40
-ENDCHAR
-STARTCHAR C004
-ENCODING 4
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 1
-BITMAP
-60
-f0
-f0
-60
-ENDCHAR
-STARTCHAR C005
-ENCODING 5
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-60
-f0
-60
-f0
-f0
-60
-f0
-ENDCHAR
-STARTCHAR C006
-ENCODING 6
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 0
-BITMAP
-60
-f0
-f0
-60
-f0
-ENDCHAR
-STARTCHAR C007
-ENCODING 7
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 2 1 2
-BITMAP
-c0
-c0
-ENDCHAR
-STARTCHAR C010
-ENCODING 8
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-f8
-f8
-f8
-98
-98
-f8
-f8
-f8
-f8
-ENDCHAR
-STARTCHAR C011
-ENCODING 9
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 0 0 0 0
-BITMAP
-ENDCHAR
-STARTCHAR C012
-ENCODING 10
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 0 0 0 0
-BITMAP
-ENDCHAR
-STARTCHAR C013
-ENCODING 11
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-70
-30
-20
-60
-90
-60
-ENDCHAR
-STARTCHAR C014
-ENCODING 12
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-60
-20
-70
-20
-ENDCHAR
-STARTCHAR C015
-ENCODING 13
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 0 0 0 0
-BITMAP
-ENDCHAR
-STARTCHAR C016
-ENCODING 14
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-70
-50
-70
-40
-c0
-c0
-ENDCHAR
-STARTCHAR C017
-ENCODING 15
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-70
-50
-70
-50
-d0
-d0
-ENDCHAR
-STARTCHAR C020
-ENCODING 16
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-80
-c0
-e0
-f0
-e0
-c0
-80
-ENDCHAR
-STARTCHAR C021
-ENCODING 17
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-10
-30
-70
-f0
-70
-30
-10
-ENDCHAR
-STARTCHAR C022
-ENCODING 18
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 5 0 1
-BITMAP
-40
-e0
-40
-e0
-40
-ENDCHAR
-STARTCHAR C023
-ENCODING 19
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-a0
-a0
-a0
-a0
-00
-a0
-ENDCHAR
-STARTCHAR C024
-ENCODING 20
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 -1
-BITMAP
-f0
-d0
-d0
-d0
-50
-50
-50
-ENDCHAR
-STARTCHAR C025
-ENCODING 21
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-70
-c0
-a0
-50
-30
-e0
-ENDCHAR
-STARTCHAR C026
-ENCODING 22
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 2 0 0
-BITMAP
-f0
-f0
-ENDCHAR
-STARTCHAR C027
-ENCODING 23
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-40
-e0
-40
-e0
-40
-e0
-ENDCHAR
-STARTCHAR C030
-ENCODING 24
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 5 1 1
-BITMAP
-40
-e0
-40
-40
-40
-ENDCHAR
-STARTCHAR C031
-ENCODING 25
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 5 1 1
-BITMAP
-40
-40
-40
-e0
-40
-ENDCHAR
-STARTCHAR C032
-ENCODING 26
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 3 0 1
-BITMAP
-20
-f0
-20
-ENDCHAR
-STARTCHAR C033
-ENCODING 27
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 3 0 1
-BITMAP
-40
-f0
-40
-ENDCHAR
-STARTCHAR C034
-ENCODING 28
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 2 0 0
-BITMAP
-80
-f0
-ENDCHAR
-STARTCHAR C035
-ENCODING 29
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 3 0 1
-BITMAP
-50
-f0
-50
-ENDCHAR
-STARTCHAR C036
-ENCODING 30
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-60
-60
-f0
-f0
-f0
-ENDCHAR
-STARTCHAR C037
-ENCODING 31
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-f0
-f0
-f0
-60
-60
-60
-ENDCHAR
-STARTCHAR C040
-ENCODING 32
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 0 0 0 0
-BITMAP
-ENDCHAR
-STARTCHAR C041
-ENCODING 33
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 6 1 0
-BITMAP
-c0
-c0
-c0
-c0
-00
-c0
-ENDCHAR
-STARTCHAR C042
-ENCODING 34
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 3 0 3
-BITMAP
-50
-50
-a0
-ENDCHAR
-STARTCHAR C043
-ENCODING 35
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-50
-f0
-50
-50
-f0
-50
-ENDCHAR
-STARTCHAR C044
-ENCODING 36
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 8 0 -1
-BITMAP
-20
-70
-a0
-60
-20
-30
-e0
-20
-ENDCHAR
-STARTCHAR C045
-ENCODING 37
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 0
-BITMAP
-90
-30
-60
-c0
-90
-ENDCHAR
-STARTCHAR C046
-ENCODING 38
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-20
-50
-20
-60
-b0
-90
-60
-ENDCHAR
-STARTCHAR C047
-ENCODING 39
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 3 1 3
-BITMAP
-40
-40
-80
-ENDCHAR
-STARTCHAR C050
-ENCODING 40
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 6 2 0
-BITMAP
-40
-80
-80
-80
-80
-40
-ENDCHAR
-STARTCHAR C051
-ENCODING 41
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 6 0 0
-BITMAP
-80
-40
-40
-40
-40
-80
-ENDCHAR
-STARTCHAR C052
-ENCODING 42
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 3 1 3
-BITMAP
-a0
-40
-a0
-ENDCHAR
-STARTCHAR C053
-ENCODING 43
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 3 1 2
-BITMAP
-40
-e0
-40
-ENDCHAR
-STARTCHAR C054
-ENCODING 44
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 3 1 -1
-BITMAP
-c0
-c0
-80
-ENDCHAR
-STARTCHAR C055
-ENCODING 45
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 1 1 3
-BITMAP
-e0
-ENDCHAR
-STARTCHAR C056
-ENCODING 46
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 2 1 0
-BITMAP
-c0
-c0
-ENDCHAR
-STARTCHAR C057
-ENCODING 47
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-10
-10
-20
-40
-80
-80
-ENDCHAR
-STARTCHAR C060
-ENCODING 48
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-b0
-d0
-90
-60
-ENDCHAR
-STARTCHAR C061
-ENCODING 49
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-40
-c0
-40
-40
-40
-e0
-ENDCHAR
-STARTCHAR C062
-ENCODING 50
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-20
-40
-80
-f0
-ENDCHAR
-STARTCHAR C063
-ENCODING 51
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-20
-10
-90
-60
-ENDCHAR
-STARTCHAR C064
-ENCODING 52
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-60
-a0
-a0
-f0
-20
-ENDCHAR
-STARTCHAR C065
-ENCODING 53
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-f0
-80
-e0
-10
-90
-60
-ENDCHAR
-STARTCHAR C066
-ENCODING 54
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-80
-e0
-90
-90
-60
-ENDCHAR
-STARTCHAR C067
-ENCODING 55
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-f0
-10
-20
-40
-40
-40
-ENDCHAR
-STARTCHAR C070
-ENCODING 56
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-60
-90
-90
-60
-ENDCHAR
-STARTCHAR C071
-ENCODING 57
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-90
-70
-10
-60
-ENDCHAR
-STARTCHAR C072
-ENCODING 58
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 5 1 0
-BITMAP
-c0
-c0
-00
-c0
-c0
-ENDCHAR
-STARTCHAR C073
-ENCODING 59
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 5 0 -1
-BITMAP
-60
-00
-60
-60
-c0
-ENDCHAR
-STARTCHAR C074
-ENCODING 60
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 0
-BITMAP
-30
-60
-c0
-60
-30
-ENDCHAR
-STARTCHAR C075
-ENCODING 61
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 3 0 1
-BITMAP
-f0
-00
-f0
-ENDCHAR
-STARTCHAR C076
-ENCODING 62
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 0
-BITMAP
-c0
-60
-30
-60
-c0
-ENDCHAR
-STARTCHAR C077
-ENCODING 63
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-10
-60
-00
-40
-ENDCHAR
-STARTCHAR C100
-ENCODING 64
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-b0
-b0
-80
-60
-ENDCHAR
-STARTCHAR C101
-ENCODING 65
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-f0
-90
-90
-90
-ENDCHAR
-STARTCHAR C102
-ENCODING 66
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-e0
-90
-e0
-90
-90
-e0
-ENDCHAR
-STARTCHAR C103
-ENCODING 67
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-80
-80
-90
-60
-ENDCHAR
-STARTCHAR C104
-ENCODING 68
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-e0
-90
-90
-90
-90
-e0
-ENDCHAR
-STARTCHAR C105
-ENCODING 69
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-f0
-80
-e0
-80
-80
-f0
-ENDCHAR
-STARTCHAR C106
-ENCODING 70
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-f0
-80
-e0
-80
-80
-80
-ENDCHAR
-STARTCHAR C107
-ENCODING 71
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-70
-80
-b0
-90
-90
-60
-ENDCHAR
-STARTCHAR C110
-ENCODING 72
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-90
-f0
-90
-90
-90
-ENDCHAR
-STARTCHAR C111
-ENCODING 73
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-e0
-40
-40
-40
-40
-e0
-ENDCHAR
-STARTCHAR C112
-ENCODING 74
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-30
-10
-10
-10
-90
-60
-ENDCHAR
-STARTCHAR C113
-ENCODING 75
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-90
-e0
-90
-90
-90
-ENDCHAR
-STARTCHAR C114
-ENCODING 76
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-80
-80
-80
-80
-80
-f0
-ENDCHAR
-STARTCHAR C115
-ENCODING 77
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-f0
-f0
-90
-90
-90
-ENDCHAR
-STARTCHAR C116
-ENCODING 78
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-d0
-f0
-f0
-b0
-90
-ENDCHAR
-STARTCHAR C117
-ENCODING 79
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C120
-ENCODING 80
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-e0
-90
-e0
-80
-80
-80
-ENDCHAR
-STARTCHAR C121
-ENCODING 81
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 -1
-BITMAP
-60
-90
-90
-90
-b0
-60
-10
-ENDCHAR
-STARTCHAR C122
-ENCODING 82
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-e0
-90
-e0
-90
-90
-90
-ENDCHAR
-STARTCHAR C123
-ENCODING 83
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-40
-20
-90
-60
-ENDCHAR
-STARTCHAR C124
-ENCODING 84
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-e0
-40
-40
-40
-40
-40
-ENDCHAR
-STARTCHAR C125
-ENCODING 85
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-90
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C126
-ENCODING 86
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-90
-90
-f0
-60
-60
-ENDCHAR
-STARTCHAR C127
-ENCODING 87
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-90
-90
-f0
-f0
-90
-ENDCHAR
-STARTCHAR C130
-ENCODING 88
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-90
-60
-60
-90
-90
-ENDCHAR
-STARTCHAR C131
-ENCODING 89
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-90
-70
-10
-90
-60
-ENDCHAR
-STARTCHAR C132
-ENCODING 90
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-f0
-10
-20
-40
-80
-f0
-ENDCHAR
-STARTCHAR C133
-ENCODING 91
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 6 2 0
-BITMAP
-c0
-80
-80
-80
-80
-c0
-ENDCHAR
-STARTCHAR C134
-ENCODING 92
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-80
-80
-40
-20
-10
-10
-ENDCHAR
-STARTCHAR C135
-ENCODING 93
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 6 0 0
-BITMAP
-c0
-40
-40
-40
-40
-c0
-ENDCHAR
-STARTCHAR C136
-ENCODING 94
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 2 1 4
-BITMAP
-40
-a0
-ENDCHAR
-STARTCHAR C137
-ENCODING 95
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 1 0 -1
-BITMAP
-f0
-ENDCHAR
-STARTCHAR C140
-ENCODING 96
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 3 1 3
-BITMAP
-80
-80
-40
-ENDCHAR
-STARTCHAR C141
-ENCODING 97
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-60
-10
-f0
-70
-ENDCHAR
-STARTCHAR C142
-ENCODING 98
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-80
-80
-e0
-90
-90
-e0
-ENDCHAR
-STARTCHAR C143
-ENCODING 99
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 4 0 0
-BITMAP
-60
-80
-80
-60
-ENDCHAR
-STARTCHAR C144
-ENCODING 100
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-10
-10
-70
-90
-90
-70
-ENDCHAR
-STARTCHAR C145
-ENCODING 101
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-60
-f0
-80
-60
-ENDCHAR
-STARTCHAR C146
-ENCODING 102
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-30
-40
-e0
-40
-40
-40
-ENDCHAR
-STARTCHAR C147
-ENCODING 103
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 -2
-BITMAP
-60
-90
-90
-70
-10
-e0
-ENDCHAR
-STARTCHAR C150
-ENCODING 104
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-80
-80
-e0
-90
-90
-90
-ENDCHAR
-STARTCHAR C151
-ENCODING 105
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-40
-00
-c0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C152
-ENCODING 106
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 0 0
-BITMAP
-20
-00
-60
-20
-a0
-40
-ENDCHAR
-STARTCHAR C153
-ENCODING 107
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-80
-80
-90
-e0
-a0
-90
-ENDCHAR
-STARTCHAR C154
-ENCODING 108
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-80
-80
-80
-80
-a0
-40
-ENDCHAR
-STARTCHAR C155
-ENCODING 109
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-60
-f0
-f0
-90
-ENDCHAR
-STARTCHAR C156
-ENCODING 110
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-60
-90
-90
-90
-ENDCHAR
-STARTCHAR C157
-ENCODING 111
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-60
-90
-90
-60
-ENDCHAR
-STARTCHAR C160
-ENCODING 112
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 -2
-BITMAP
-60
-90
-90
-e0
-80
-80
-ENDCHAR
-STARTCHAR C161
-ENCODING 113
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 -2
-BITMAP
-60
-90
-90
-70
-10
-10
-ENDCHAR
-STARTCHAR C162
-ENCODING 114
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-b0
-c0
-80
-80
-ENDCHAR
-STARTCHAR C163
-ENCODING 115
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-70
-c0
-30
-e0
-ENDCHAR
-STARTCHAR C164
-ENCODING 116
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-40
-40
-e0
-40
-40
-20
-ENDCHAR
-STARTCHAR C165
-ENCODING 117
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C166
-ENCODING 118
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-90
-90
-60
-60
-ENDCHAR
-STARTCHAR C167
-ENCODING 119
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-90
-90
-f0
-f0
-ENDCHAR
-STARTCHAR C170
-ENCODING 120
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-90
-60
-60
-90
-ENDCHAR
-STARTCHAR C171
-ENCODING 121
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 -2
-BITMAP
-90
-90
-90
-70
-10
-e0
-ENDCHAR
-STARTCHAR C172
-ENCODING 122
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-f0
-30
-c0
-f0
-ENDCHAR
-STARTCHAR C173
-ENCODING 123
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 7 1 0
-BITMAP
-20
-40
-40
-80
-40
-40
-20
-ENDCHAR
-STARTCHAR C174
-ENCODING 124
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 1 7 2 0
-BITMAP
-80
-80
-80
-00
-80
-80
-80
-ENDCHAR
-STARTCHAR C175
-ENCODING 125
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 7 1 0
-BITMAP
-80
-40
-40
-20
-40
-40
-80
-ENDCHAR
-STARTCHAR C176
-ENCODING 126
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 2 0 3
-BITMAP
-50
-a0
-ENDCHAR
-STARTCHAR C177
-ENCODING 127
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-60
-88
-10
-60
-88
-10
-60
-88
-10
-ENDCHAR
-STARTCHAR C200
-ENCODING 128
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 0 0 0 0
-BITMAP
-ENDCHAR
-STARTCHAR C201
-ENCODING 129
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 3 0 4
-BITMAP
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C202
-ENCODING 130
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 3 2 4
-BITMAP
-e0
-e0
-e0
-ENDCHAR
-STARTCHAR C203
-ENCODING 131
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 3 0 4
-BITMAP
-f8
-f8
-f8
-ENDCHAR
-STARTCHAR C204
-ENCODING 132
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 3 0 1
-BITMAP
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C205
-ENCODING 133
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 6 0 1
-BITMAP
-c0
-c0
-c0
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C206
-ENCODING 134
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 6 0 1
-BITMAP
-38
-38
-38
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C207
-ENCODING 135
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 6 0 1
-BITMAP
-f8
-f8
-f8
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C210
-ENCODING 136
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 3 2 1
-BITMAP
-e0
-e0
-e0
-ENDCHAR
-STARTCHAR C211
-ENCODING 137
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 6 0 1
-BITMAP
-c0
-c0
-c0
-38
-38
-38
-ENDCHAR
-STARTCHAR C212
-ENCODING 138
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 2 1
-BITMAP
-e0
-e0
-e0
-e0
-e0
-e0
-ENDCHAR
-STARTCHAR C213
-ENCODING 139
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 6 0 1
-BITMAP
-f8
-f8
-f8
-38
-38
-38
-ENDCHAR
-STARTCHAR C214
-ENCODING 140
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 3 0 1
-BITMAP
-f8
-f8
-f8
-ENDCHAR
-STARTCHAR C215
-ENCODING 141
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 6 0 1
-BITMAP
-c0
-c0
-c0
-f8
-f8
-f8
-ENDCHAR
-STARTCHAR C216
-ENCODING 142
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 6 0 1
-BITMAP
-38
-38
-38
-f8
-f8
-f8
-ENDCHAR
-STARTCHAR C217
-ENCODING 143
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 6 0 1
-BITMAP
-f8
-f8
-f8
-f8
-f8
-f8
-ENDCHAR
-STARTCHAR C220
-ENCODING 144
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 3 0 -2
-BITMAP
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C221
-ENCODING 145
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 9 0 -2
-BITMAP
-c0
-c0
-c0
-00
-00
-00
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C222
-ENCODING 146
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-38
-38
-38
-00
-00
-00
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C223
-ENCODING 147
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-f8
-f8
-f8
-00
-00
-00
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C224
-ENCODING 148
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 6 0 -2
-BITMAP
-c0
-c0
-c0
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C225
-ENCODING 149
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 9 0 -2
-BITMAP
-c0
-c0
-c0
-c0
-c0
-c0
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C226
-ENCODING 150
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-38
-38
-38
-c0
-c0
-c0
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C227
-ENCODING 151
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-f8
-f8
-f8
-c0
-c0
-c0
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C230
-ENCODING 152
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 6 0 -2
-BITMAP
-38
-38
-38
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C231
-ENCODING 153
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-c0
-c0
-c0
-38
-38
-38
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C232
-ENCODING 154
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-38
-38
-38
-38
-38
-38
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C233
-ENCODING 155
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-f8
-f8
-f8
-38
-38
-38
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C234
-ENCODING 156
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 6 0 -2
-BITMAP
-f8
-f8
-f8
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C235
-ENCODING 157
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-c0
-c0
-c0
-f8
-f8
-f8
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C236
-ENCODING 158
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-38
-38
-38
-f8
-f8
-f8
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C237
-ENCODING 159
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 5 9 0 -2
-BITMAP
-f8
-f8
-f8
-f8
-f8
-f8
-c0
-c0
-c0
-ENDCHAR
-STARTCHAR C240
-ENCODING 160
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 0 0 0 0
-BITMAP
-ENDCHAR
-STARTCHAR C241
-ENCODING 161
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-40
-00
-c0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C242
-ENCODING 162
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-20
-70
-80
-80
-70
-20
-ENDCHAR
-STARTCHAR C243
-ENCODING 163
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-20
-50
-40
-e0
-40
-f0
-ENDCHAR
-STARTCHAR C244
-ENCODING 164
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 9 0 -2
-BITMAP
-90
-90
-60
-90
-90
-60
-90
-90
-60
-ENDCHAR
-STARTCHAR C245
-ENCODING 165
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 7 1 0
-BITMAP
-a0
-a0
-40
-e0
-40
-e0
-40
-ENDCHAR
-STARTCHAR C246
-ENCODING 166
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 1 5 1 0
-BITMAP
-80
-80
-00
-80
-80
-ENDCHAR
-STARTCHAR C247
-ENCODING 167
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-70
-c0
-a0
-50
-30
-e0
-ENDCHAR
-STARTCHAR C250
-ENCODING 168
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 1 0 5
-BITMAP
-a0
-ENDCHAR
-STARTCHAR C251
-ENCODING 169
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 0
-BITMAP
-60
-d0
-b0
-d0
-60
-ENDCHAR
-STARTCHAR C252
-ENCODING 170
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 1
-BITMAP
-60
-10
-70
-90
-90
-70
-ENDCHAR
-STARTCHAR C253
-ENCODING 171
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 3 0 1
-BITMAP
-50
-a0
-50
-ENDCHAR
-STARTCHAR C254
-ENCODING 172
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 2 0 1
-BITMAP
-f0
-10
-ENDCHAR
-STARTCHAR C255
-ENCODING 173
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 1 0 2
-BITMAP
-f0
-ENDCHAR
-STARTCHAR C256
-ENCODING 174
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 0
-BITMAP
-60
-d0
-b0
-b0
-60
-ENDCHAR
-STARTCHAR C257
-ENCODING 175
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 1 0 5
-BITMAP
-f0
-ENDCHAR
-STARTCHAR C260
-ENCODING 176
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 3 1 3
-BITMAP
-40
-a0
-40
-ENDCHAR
-STARTCHAR C261
-ENCODING 177
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 5 1 0
-BITMAP
-40
-e0
-40
-00
-e0
-ENDCHAR
-STARTCHAR C262
-ENCODING 178
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 4 1 3
-BITMAP
-80
-40
-80
-c0
-ENDCHAR
-STARTCHAR C263
-ENCODING 179
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 5 1 2
-BITMAP
-80
-40
-80
-40
-80
-ENDCHAR
-STARTCHAR C264
-ENCODING 180
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 3 1 3
-BITMAP
-40
-80
-80
-ENDCHAR
-STARTCHAR C265
-ENCODING 181
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 -2
-BITMAP
-90
-90
-90
-e0
-80
-80
-ENDCHAR
-STARTCHAR C266
-ENCODING 182
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 -1
-BITMAP
-f0
-d0
-d0
-d0
-50
-50
-50
-ENDCHAR
-STARTCHAR C267
-ENCODING 183
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 2 1 2
-BITMAP
-c0
-c0
-ENDCHAR
-STARTCHAR C270
-ENCODING 184
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 3 1 -1
-BITMAP
-c0
-40
-80
-ENDCHAR
-STARTCHAR C271
-ENCODING 185
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 2 4 1 3
-BITMAP
-40
-c0
-40
-40
-ENDCHAR
-STARTCHAR C272
-ENCODING 186
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 1
-BITMAP
-60
-90
-90
-60
-ENDCHAR
-STARTCHAR C273
-ENCODING 187
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 3 0 1
-BITMAP
-a0
-50
-a0
-ENDCHAR
-STARTCHAR C274
-ENCODING 188
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 0
-BITMAP
-90
-30
-60
-c0
-90
-ENDCHAR
-STARTCHAR C275
-ENCODING 189
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 0
-BITMAP
-90
-30
-60
-c0
-90
-ENDCHAR
-STARTCHAR C276
-ENCODING 190
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 0
-BITMAP
-90
-30
-60
-c0
-90
-ENDCHAR
-STARTCHAR C277
-ENCODING 191
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-40
-00
-60
-10
-90
-60
-ENDCHAR
-STARTCHAR C300
-ENCODING 192
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-c0
-00
-60
-90
-f0
-90
-90
-ENDCHAR
-STARTCHAR C301
-ENCODING 193
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-30
-00
-60
-90
-f0
-90
-90
-ENDCHAR
-STARTCHAR C302
-ENCODING 194
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-60
-90
-60
-90
-f0
-90
-90
-ENDCHAR
-STARTCHAR C303
-ENCODING 195
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-50
-a0
-60
-90
-f0
-90
-90
-ENDCHAR
-STARTCHAR C304
-ENCODING 196
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-90
-00
-60
-90
-f0
-90
-90
-ENDCHAR
-STARTCHAR C305
-ENCODING 197
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-60
-00
-60
-90
-f0
-90
-90
-ENDCHAR
-STARTCHAR C306
-ENCODING 198
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-70
-a0
-f0
-a0
-a0
-b0
-ENDCHAR
-STARTCHAR C307
-ENCODING 199
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 8 0 -2
-BITMAP
-60
-90
-80
-80
-90
-60
-20
-40
-ENDCHAR
-STARTCHAR C310
-ENCODING 200
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-c0
-00
-f0
-80
-e0
-80
-f0
-ENDCHAR
-STARTCHAR C311
-ENCODING 201
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-30
-00
-f0
-80
-e0
-80
-f0
-ENDCHAR
-STARTCHAR C312
-ENCODING 202
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-50
-a0
-f0
-80
-e0
-80
-f0
-ENDCHAR
-STARTCHAR C313
-ENCODING 203
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-90
-00
-f0
-80
-e0
-80
-f0
-ENDCHAR
-STARTCHAR C314
-ENCODING 204
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 7 1 0
-BITMAP
-80
-40
-00
-e0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C315
-ENCODING 205
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 7 1 0
-BITMAP
-20
-40
-00
-e0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C316
-ENCODING 206
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 7 1 0
-BITMAP
-40
-a0
-00
-e0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C317
-ENCODING 207
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-a0
-00
-e0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C320
-ENCODING 208
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-e0
-90
-d0
-90
-90
-e0
-ENDCHAR
-STARTCHAR C321
-ENCODING 209
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-50
-a0
-90
-d0
-f0
-b0
-90
-ENDCHAR
-STARTCHAR C322
-ENCODING 210
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-40
-20
-60
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C323
-ENCODING 211
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-20
-40
-60
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C324
-ENCODING 212
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-60
-90
-60
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C325
-ENCODING 213
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-50
-a0
-60
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C326
-ENCODING 214
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-90
-00
-60
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C327
-ENCODING 215
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 1
-BITMAP
-90
-60
-60
-90
-ENDCHAR
-STARTCHAR C330
-ENCODING 216
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-60
-90
-a0
-50
-90
-60
-ENDCHAR
-STARTCHAR C331
-ENCODING 217
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-80
-40
-90
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C332
-ENCODING 218
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-10
-20
-90
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C333
-ENCODING 219
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-60
-00
-90
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C334
-ENCODING 220
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-90
-00
-90
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C335
-ENCODING 221
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-10
-20
-90
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C336
-ENCODING 222
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-80
-e0
-90
-e0
-80
-80
-ENDCHAR
-STARTCHAR C337
-ENCODING 223
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 -1
-BITMAP
-60
-90
-a0
-90
-90
-a0
-80
-ENDCHAR
-STARTCHAR C340
-ENCODING 224
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-40
-20
-00
-60
-10
-f0
-70
-ENDCHAR
-STARTCHAR C341
-ENCODING 225
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-20
-40
-00
-60
-10
-f0
-70
-ENDCHAR
-STARTCHAR C342
-ENCODING 226
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-20
-50
-00
-60
-10
-f0
-70
-ENDCHAR
-STARTCHAR C343
-ENCODING 227
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-50
-a0
-00
-60
-10
-f0
-70
-ENDCHAR
-STARTCHAR C344
-ENCODING 228
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-50
-00
-60
-10
-f0
-70
-ENDCHAR
-STARTCHAR C345
-ENCODING 229
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-20
-50
-20
-60
-10
-f0
-70
-ENDCHAR
-STARTCHAR C346
-ENCODING 230
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-70
-b0
-a0
-70
-ENDCHAR
-STARTCHAR C347
-ENCODING 231
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 0 -2
-BITMAP
-60
-80
-80
-60
-40
-80
-ENDCHAR
-STARTCHAR C350
-ENCODING 232
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-40
-20
-00
-60
-f0
-80
-60
-ENDCHAR
-STARTCHAR C351
-ENCODING 233
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-20
-40
-00
-60
-f0
-80
-60
-ENDCHAR
-STARTCHAR C352
-ENCODING 234
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-20
-50
-00
-60
-f0
-80
-60
-ENDCHAR
-STARTCHAR C353
-ENCODING 235
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-50
-00
-60
-f0
-80
-60
-ENDCHAR
-STARTCHAR C354
-ENCODING 236
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 7 1 0
-BITMAP
-80
-40
-00
-c0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C355
-ENCODING 237
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 7 1 0
-BITMAP
-20
-40
-00
-c0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C356
-ENCODING 238
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 7 1 0
-BITMAP
-40
-a0
-00
-c0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C357
-ENCODING 239
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 3 6 1 0
-BITMAP
-a0
-00
-c0
-40
-40
-e0
-ENDCHAR
-STARTCHAR C360
-ENCODING 240
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-40
-20
-10
-70
-90
-90
-60
-ENDCHAR
-STARTCHAR C361
-ENCODING 241
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-50
-a0
-00
-60
-90
-90
-90
-ENDCHAR
-STARTCHAR C362
-ENCODING 242
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-40
-20
-00
-60
-90
-90
-60
-ENDCHAR
-STARTCHAR C363
-ENCODING 243
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-20
-40
-00
-60
-90
-90
-60
-ENDCHAR
-STARTCHAR C364
-ENCODING 244
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-60
-90
-00
-60
-90
-90
-60
-ENDCHAR
-STARTCHAR C365
-ENCODING 245
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-50
-a0
-00
-60
-90
-90
-60
-ENDCHAR
-STARTCHAR C366
-ENCODING 246
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-00
-60
-90
-90
-60
-ENDCHAR
-STARTCHAR C367
-ENCODING 247
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 5 0 1
-BITMAP
-40
-00
-f0
-00
-20
-ENDCHAR
-STARTCHAR C370
-ENCODING 248
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 4 0 0
-BITMAP
-60
-b0
-d0
-60
-ENDCHAR
-STARTCHAR C371
-ENCODING 249
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-40
-20
-00
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C372
-ENCODING 250
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-20
-40
-00
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C373
-ENCODING 251
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 7 0 0
-BITMAP
-60
-90
-00
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C374
-ENCODING 252
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-90
-00
-90
-90
-90
-60
-ENDCHAR
-STARTCHAR C375
-ENCODING 253
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 9 0 -2
-BITMAP
-20
-40
-00
-90
-90
-90
-70
-10
-e0
-ENDCHAR
-STARTCHAR C376
-ENCODING 254
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 6 0 0
-BITMAP
-80
-e0
-90
-90
-e0
-80
-ENDCHAR
-STARTCHAR C377
-ENCODING 255
-SWIDTH 714 0
-DWIDTH 5 0
-BBX 4 8 0 -2
-BITMAP
-90
-00
-90
-90
-90
-70
-10
-e0
-ENDCHAR
-ENDFONT
diff --git a/data/fonts/Times9k.bdf b/data/fonts/Times9k.bdf
new file mode 100644
index 0000000..f1a67cd
--- /dev/null
+++ b/data/fonts/Times9k.bdf
@@ -0,0 +1,3240 @@
+STARTFONT 2.1
+COMMENT
+COMMENT Copyright (c) 2022, Sammy L. Koch (sammykoch2004@gmail.com),
+COMMENT with Reserved Font Name: "Times9k". Version 1.1.
+COMMENT
+COMMENT This Font Software is licensed under the SIL Open Font License, Version 1.1.
+FONT Times9k
+SIZE 7 72 72
+FONTBOUNDINGBOX 5 9 0 -2
+STARTPROPERTIES 11
+FOUNDRY "Fine"
+FAMILY_NAME "Times9k"
+WEIGHT_NAME "Book"
+SLANT "R"
+SETWIDTH_NAME "Book"
+SPACING "c"
+CHARSET_REGISTRY "ISO-8859"
+CHARSET_ENCODING "1"
+COPYRIGHT "Copyright (c) 2022, Sammy L. Koch"
+FONT_ASCENT 7
+FONT_DESCENT 2
+ENDPROPERTIES
+CHARS 256
+STARTCHAR C000
+ENCODING 0
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 0 0 0 0
+BITMAP
+ENDCHAR
+STARTCHAR C001
+ENCODING 1
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 5 1 0
+BITMAP
+a0
+a0
+00
+e0
+40
+ENDCHAR
+STARTCHAR C002
+ENCODING 2
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+f8
+f8
+a8
+a8
+f8
+88
+d8
+f8
+f8
+ENDCHAR
+STARTCHAR C003
+ENCODING 3
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 5 1 0
+BITMAP
+a0
+e0
+e0
+e0
+40
+ENDCHAR
+STARTCHAR C004
+ENCODING 4
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 1
+BITMAP
+60
+f0
+f0
+60
+ENDCHAR
+STARTCHAR C005
+ENCODING 5
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+60
+f0
+60
+f0
+f0
+60
+f0
+ENDCHAR
+STARTCHAR C006
+ENCODING 6
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 0
+BITMAP
+60
+f0
+f0
+60
+f0
+ENDCHAR
+STARTCHAR C007
+ENCODING 7
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 2 1 2
+BITMAP
+c0
+c0
+ENDCHAR
+STARTCHAR C010
+ENCODING 8
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+f8
+f8
+f8
+98
+98
+f8
+f8
+f8
+f8
+ENDCHAR
+STARTCHAR C011
+ENCODING 9
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 0 0 0 0
+BITMAP
+ENDCHAR
+STARTCHAR C012
+ENCODING 10
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 0 0 0 0
+BITMAP
+ENDCHAR
+STARTCHAR C013
+ENCODING 11
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+70
+30
+20
+60
+90
+60
+ENDCHAR
+STARTCHAR C014
+ENCODING 12
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+60
+20
+70
+20
+ENDCHAR
+STARTCHAR C015
+ENCODING 13
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 0 0 0 0
+BITMAP
+ENDCHAR
+STARTCHAR C016
+ENCODING 14
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+70
+50
+70
+40
+c0
+c0
+ENDCHAR
+STARTCHAR C017
+ENCODING 15
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+70
+50
+70
+50
+d0
+d0
+ENDCHAR
+STARTCHAR C020
+ENCODING 16
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+80
+c0
+e0
+f0
+e0
+c0
+80
+ENDCHAR
+STARTCHAR C021
+ENCODING 17
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+10
+30
+70
+f0
+70
+30
+10
+ENDCHAR
+STARTCHAR C022
+ENCODING 18
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 5 0 1
+BITMAP
+40
+e0
+40
+e0
+40
+ENDCHAR
+STARTCHAR C023
+ENCODING 19
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+a0
+a0
+a0
+a0
+00
+a0
+ENDCHAR
+STARTCHAR C024
+ENCODING 20
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 -1
+BITMAP
+f0
+d0
+d0
+d0
+50
+50
+50
+ENDCHAR
+STARTCHAR C025
+ENCODING 21
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+70
+c0
+a0
+50
+30
+e0
+ENDCHAR
+STARTCHAR C026
+ENCODING 22
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 2 0 0
+BITMAP
+f0
+f0
+ENDCHAR
+STARTCHAR C027
+ENCODING 23
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+40
+e0
+40
+e0
+40
+e0
+ENDCHAR
+STARTCHAR C030
+ENCODING 24
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 5 1 1
+BITMAP
+40
+e0
+40
+40
+40
+ENDCHAR
+STARTCHAR C031
+ENCODING 25
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 5 1 1
+BITMAP
+40
+40
+40
+e0
+40
+ENDCHAR
+STARTCHAR C032
+ENCODING 26
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 3 0 1
+BITMAP
+20
+f0
+20
+ENDCHAR
+STARTCHAR C033
+ENCODING 27
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 3 0 1
+BITMAP
+40
+f0
+40
+ENDCHAR
+STARTCHAR C034
+ENCODING 28
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 2 0 0
+BITMAP
+80
+f0
+ENDCHAR
+STARTCHAR C035
+ENCODING 29
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 3 0 1
+BITMAP
+50
+f0
+50
+ENDCHAR
+STARTCHAR C036
+ENCODING 30
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+60
+60
+f0
+f0
+f0
+ENDCHAR
+STARTCHAR C037
+ENCODING 31
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+f0
+f0
+f0
+60
+60
+60
+ENDCHAR
+STARTCHAR C040
+ENCODING 32
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 0 0 0 0
+BITMAP
+ENDCHAR
+STARTCHAR C041
+ENCODING 33
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 6 1 0
+BITMAP
+c0
+c0
+c0
+c0
+00
+c0
+ENDCHAR
+STARTCHAR C042
+ENCODING 34
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 3 0 3
+BITMAP
+50
+50
+a0
+ENDCHAR
+STARTCHAR C043
+ENCODING 35
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+50
+f0
+50
+50
+f0
+50
+ENDCHAR
+STARTCHAR C044
+ENCODING 36
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 8 0 -1
+BITMAP
+20
+70
+a0
+60
+20
+30
+e0
+20
+ENDCHAR
+STARTCHAR C045
+ENCODING 37
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 0
+BITMAP
+90
+30
+60
+c0
+90
+ENDCHAR
+STARTCHAR C046
+ENCODING 38
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+20
+50
+20
+60
+b0
+90
+60
+ENDCHAR
+STARTCHAR C047
+ENCODING 39
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 3 1 3
+BITMAP
+40
+40
+80
+ENDCHAR
+STARTCHAR C050
+ENCODING 40
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 6 2 0
+BITMAP
+40
+80
+80
+80
+80
+40
+ENDCHAR
+STARTCHAR C051
+ENCODING 41
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 6 0 0
+BITMAP
+80
+40
+40
+40
+40
+80
+ENDCHAR
+STARTCHAR C052
+ENCODING 42
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 3 1 3
+BITMAP
+a0
+40
+a0
+ENDCHAR
+STARTCHAR C053
+ENCODING 43
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 3 1 2
+BITMAP
+40
+e0
+40
+ENDCHAR
+STARTCHAR C054
+ENCODING 44
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 3 1 -1
+BITMAP
+c0
+c0
+80
+ENDCHAR
+STARTCHAR C055
+ENCODING 45
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 1 1 3
+BITMAP
+e0
+ENDCHAR
+STARTCHAR C056
+ENCODING 46
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 2 1 0
+BITMAP
+c0
+c0
+ENDCHAR
+STARTCHAR C057
+ENCODING 47
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+10
+10
+20
+40
+80
+80
+ENDCHAR
+STARTCHAR C060
+ENCODING 48
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+b0
+d0
+90
+60
+ENDCHAR
+STARTCHAR C061
+ENCODING 49
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+40
+c0
+40
+40
+40
+e0
+ENDCHAR
+STARTCHAR C062
+ENCODING 50
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+20
+40
+80
+f0
+ENDCHAR
+STARTCHAR C063
+ENCODING 51
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+20
+10
+90
+60
+ENDCHAR
+STARTCHAR C064
+ENCODING 52
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+60
+a0
+a0
+f0
+20
+ENDCHAR
+STARTCHAR C065
+ENCODING 53
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+f0
+80
+e0
+10
+90
+60
+ENDCHAR
+STARTCHAR C066
+ENCODING 54
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+80
+e0
+90
+90
+60
+ENDCHAR
+STARTCHAR C067
+ENCODING 55
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+f0
+10
+20
+40
+40
+40
+ENDCHAR
+STARTCHAR C070
+ENCODING 56
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+60
+90
+90
+60
+ENDCHAR
+STARTCHAR C071
+ENCODING 57
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+90
+70
+10
+60
+ENDCHAR
+STARTCHAR C072
+ENCODING 58
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 5 1 0
+BITMAP
+c0
+c0
+00
+c0
+c0
+ENDCHAR
+STARTCHAR C073
+ENCODING 59
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 5 0 -1
+BITMAP
+60
+00
+60
+60
+c0
+ENDCHAR
+STARTCHAR C074
+ENCODING 60
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 0
+BITMAP
+30
+60
+c0
+60
+30
+ENDCHAR
+STARTCHAR C075
+ENCODING 61
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 3 0 1
+BITMAP
+f0
+00
+f0
+ENDCHAR
+STARTCHAR C076
+ENCODING 62
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 0
+BITMAP
+c0
+60
+30
+60
+c0
+ENDCHAR
+STARTCHAR C077
+ENCODING 63
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+10
+60
+00
+40
+ENDCHAR
+STARTCHAR C100
+ENCODING 64
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+b0
+b0
+80
+60
+ENDCHAR
+STARTCHAR C101
+ENCODING 65
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+f0
+90
+90
+90
+ENDCHAR
+STARTCHAR C102
+ENCODING 66
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+e0
+90
+e0
+90
+90
+e0
+ENDCHAR
+STARTCHAR C103
+ENCODING 67
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+80
+80
+90
+60
+ENDCHAR
+STARTCHAR C104
+ENCODING 68
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+e0
+90
+90
+90
+90
+e0
+ENDCHAR
+STARTCHAR C105
+ENCODING 69
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+f0
+80
+e0
+80
+80
+f0
+ENDCHAR
+STARTCHAR C106
+ENCODING 70
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+f0
+80
+e0
+80
+80
+80
+ENDCHAR
+STARTCHAR C107
+ENCODING 71
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+70
+80
+b0
+90
+90
+60
+ENDCHAR
+STARTCHAR C110
+ENCODING 72
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+90
+f0
+90
+90
+90
+ENDCHAR
+STARTCHAR C111
+ENCODING 73
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+e0
+40
+40
+40
+40
+e0
+ENDCHAR
+STARTCHAR C112
+ENCODING 74
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+30
+10
+10
+10
+90
+60
+ENDCHAR
+STARTCHAR C113
+ENCODING 75
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+90
+e0
+90
+90
+90
+ENDCHAR
+STARTCHAR C114
+ENCODING 76
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+80
+80
+80
+80
+80
+f0
+ENDCHAR
+STARTCHAR C115
+ENCODING 77
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+f0
+f0
+90
+90
+90
+ENDCHAR
+STARTCHAR C116
+ENCODING 78
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+d0
+f0
+f0
+b0
+90
+ENDCHAR
+STARTCHAR C117
+ENCODING 79
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C120
+ENCODING 80
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+e0
+90
+e0
+80
+80
+80
+ENDCHAR
+STARTCHAR C121
+ENCODING 81
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 -1
+BITMAP
+60
+90
+90
+90
+b0
+60
+10
+ENDCHAR
+STARTCHAR C122
+ENCODING 82
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+e0
+90
+e0
+90
+90
+90
+ENDCHAR
+STARTCHAR C123
+ENCODING 83
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+40
+20
+90
+60
+ENDCHAR
+STARTCHAR C124
+ENCODING 84
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+e0
+40
+40
+40
+40
+40
+ENDCHAR
+STARTCHAR C125
+ENCODING 85
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+90
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C126
+ENCODING 86
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+90
+90
+f0
+60
+60
+ENDCHAR
+STARTCHAR C127
+ENCODING 87
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+90
+90
+f0
+f0
+90
+ENDCHAR
+STARTCHAR C130
+ENCODING 88
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+90
+60
+60
+90
+90
+ENDCHAR
+STARTCHAR C131
+ENCODING 89
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+90
+70
+10
+90
+60
+ENDCHAR
+STARTCHAR C132
+ENCODING 90
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+f0
+10
+20
+40
+80
+f0
+ENDCHAR
+STARTCHAR C133
+ENCODING 91
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 6 2 0
+BITMAP
+c0
+80
+80
+80
+80
+c0
+ENDCHAR
+STARTCHAR C134
+ENCODING 92
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+80
+80
+40
+20
+10
+10
+ENDCHAR
+STARTCHAR C135
+ENCODING 93
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 6 0 0
+BITMAP
+c0
+40
+40
+40
+40
+c0
+ENDCHAR
+STARTCHAR C136
+ENCODING 94
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 2 1 4
+BITMAP
+40
+a0
+ENDCHAR
+STARTCHAR C137
+ENCODING 95
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 1 0 -1
+BITMAP
+f0
+ENDCHAR
+STARTCHAR C140
+ENCODING 96
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 3 1 3
+BITMAP
+80
+80
+40
+ENDCHAR
+STARTCHAR C141
+ENCODING 97
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+60
+10
+f0
+70
+ENDCHAR
+STARTCHAR C142
+ENCODING 98
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+80
+80
+e0
+90
+90
+e0
+ENDCHAR
+STARTCHAR C143
+ENCODING 99
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 4 0 0
+BITMAP
+60
+80
+80
+60
+ENDCHAR
+STARTCHAR C144
+ENCODING 100
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+10
+10
+70
+90
+90
+70
+ENDCHAR
+STARTCHAR C145
+ENCODING 101
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+60
+f0
+80
+60
+ENDCHAR
+STARTCHAR C146
+ENCODING 102
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+30
+40
+e0
+40
+40
+40
+ENDCHAR
+STARTCHAR C147
+ENCODING 103
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 -2
+BITMAP
+60
+90
+90
+70
+10
+e0
+ENDCHAR
+STARTCHAR C150
+ENCODING 104
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+80
+80
+e0
+90
+90
+90
+ENDCHAR
+STARTCHAR C151
+ENCODING 105
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+40
+00
+c0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C152
+ENCODING 106
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 0 0
+BITMAP
+20
+00
+60
+20
+a0
+40
+ENDCHAR
+STARTCHAR C153
+ENCODING 107
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+80
+80
+90
+e0
+a0
+90
+ENDCHAR
+STARTCHAR C154
+ENCODING 108
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+80
+80
+80
+80
+a0
+40
+ENDCHAR
+STARTCHAR C155
+ENCODING 109
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+60
+f0
+f0
+90
+ENDCHAR
+STARTCHAR C156
+ENCODING 110
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+60
+90
+90
+90
+ENDCHAR
+STARTCHAR C157
+ENCODING 111
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+60
+90
+90
+60
+ENDCHAR
+STARTCHAR C160
+ENCODING 112
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 -2
+BITMAP
+60
+90
+90
+e0
+80
+80
+ENDCHAR
+STARTCHAR C161
+ENCODING 113
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 -2
+BITMAP
+60
+90
+90
+70
+10
+10
+ENDCHAR
+STARTCHAR C162
+ENCODING 114
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+b0
+c0
+80
+80
+ENDCHAR
+STARTCHAR C163
+ENCODING 115
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+70
+c0
+30
+e0
+ENDCHAR
+STARTCHAR C164
+ENCODING 116
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+40
+40
+e0
+40
+40
+20
+ENDCHAR
+STARTCHAR C165
+ENCODING 117
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C166
+ENCODING 118
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+90
+90
+60
+60
+ENDCHAR
+STARTCHAR C167
+ENCODING 119
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+90
+90
+f0
+f0
+ENDCHAR
+STARTCHAR C170
+ENCODING 120
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+90
+60
+60
+90
+ENDCHAR
+STARTCHAR C171
+ENCODING 121
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 -2
+BITMAP
+90
+90
+90
+70
+10
+e0
+ENDCHAR
+STARTCHAR C172
+ENCODING 122
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+f0
+30
+c0
+f0
+ENDCHAR
+STARTCHAR C173
+ENCODING 123
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 7 1 0
+BITMAP
+20
+40
+40
+80
+40
+40
+20
+ENDCHAR
+STARTCHAR C174
+ENCODING 124
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 1 7 2 0
+BITMAP
+80
+80
+80
+00
+80
+80
+80
+ENDCHAR
+STARTCHAR C175
+ENCODING 125
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 7 1 0
+BITMAP
+80
+40
+40
+20
+40
+40
+80
+ENDCHAR
+STARTCHAR C176
+ENCODING 126
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 2 0 3
+BITMAP
+50
+a0
+ENDCHAR
+STARTCHAR C177
+ENCODING 127
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+60
+88
+10
+60
+88
+10
+60
+88
+10
+ENDCHAR
+STARTCHAR C200
+ENCODING 128
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 0 0 0 0
+BITMAP
+ENDCHAR
+STARTCHAR C201
+ENCODING 129
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 3 0 4
+BITMAP
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C202
+ENCODING 130
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 3 2 4
+BITMAP
+e0
+e0
+e0
+ENDCHAR
+STARTCHAR C203
+ENCODING 131
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 3 0 4
+BITMAP
+f8
+f8
+f8
+ENDCHAR
+STARTCHAR C204
+ENCODING 132
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 3 0 1
+BITMAP
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C205
+ENCODING 133
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 6 0 1
+BITMAP
+c0
+c0
+c0
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C206
+ENCODING 134
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 6 0 1
+BITMAP
+38
+38
+38
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C207
+ENCODING 135
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 6 0 1
+BITMAP
+f8
+f8
+f8
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C210
+ENCODING 136
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 3 2 1
+BITMAP
+e0
+e0
+e0
+ENDCHAR
+STARTCHAR C211
+ENCODING 137
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 6 0 1
+BITMAP
+c0
+c0
+c0
+38
+38
+38
+ENDCHAR
+STARTCHAR C212
+ENCODING 138
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 2 1
+BITMAP
+e0
+e0
+e0
+e0
+e0
+e0
+ENDCHAR
+STARTCHAR C213
+ENCODING 139
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 6 0 1
+BITMAP
+f8
+f8
+f8
+38
+38
+38
+ENDCHAR
+STARTCHAR C214
+ENCODING 140
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 3 0 1
+BITMAP
+f8
+f8
+f8
+ENDCHAR
+STARTCHAR C215
+ENCODING 141
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 6 0 1
+BITMAP
+c0
+c0
+c0
+f8
+f8
+f8
+ENDCHAR
+STARTCHAR C216
+ENCODING 142
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 6 0 1
+BITMAP
+38
+38
+38
+f8
+f8
+f8
+ENDCHAR
+STARTCHAR C217
+ENCODING 143
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 6 0 1
+BITMAP
+f8
+f8
+f8
+f8
+f8
+f8
+ENDCHAR
+STARTCHAR C220
+ENCODING 144
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 3 0 -2
+BITMAP
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C221
+ENCODING 145
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 9 0 -2
+BITMAP
+c0
+c0
+c0
+00
+00
+00
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C222
+ENCODING 146
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+38
+38
+38
+00
+00
+00
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C223
+ENCODING 147
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+f8
+f8
+f8
+00
+00
+00
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C224
+ENCODING 148
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 6 0 -2
+BITMAP
+c0
+c0
+c0
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C225
+ENCODING 149
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 9 0 -2
+BITMAP
+c0
+c0
+c0
+c0
+c0
+c0
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C226
+ENCODING 150
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+38
+38
+38
+c0
+c0
+c0
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C227
+ENCODING 151
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+f8
+f8
+f8
+c0
+c0
+c0
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C230
+ENCODING 152
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 6 0 -2
+BITMAP
+38
+38
+38
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C231
+ENCODING 153
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+c0
+c0
+c0
+38
+38
+38
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C232
+ENCODING 154
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+38
+38
+38
+38
+38
+38
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C233
+ENCODING 155
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+f8
+f8
+f8
+38
+38
+38
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C234
+ENCODING 156
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 6 0 -2
+BITMAP
+f8
+f8
+f8
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C235
+ENCODING 157
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+c0
+c0
+c0
+f8
+f8
+f8
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C236
+ENCODING 158
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+38
+38
+38
+f8
+f8
+f8
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C237
+ENCODING 159
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 5 9 0 -2
+BITMAP
+f8
+f8
+f8
+f8
+f8
+f8
+c0
+c0
+c0
+ENDCHAR
+STARTCHAR C240
+ENCODING 160
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 0 0 0 0
+BITMAP
+ENDCHAR
+STARTCHAR C241
+ENCODING 161
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+40
+00
+c0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C242
+ENCODING 162
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+20
+70
+80
+80
+70
+20
+ENDCHAR
+STARTCHAR C243
+ENCODING 163
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+20
+50
+40
+e0
+40
+f0
+ENDCHAR
+STARTCHAR C244
+ENCODING 164
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 9 0 -2
+BITMAP
+90
+90
+60
+90
+90
+60
+90
+90
+60
+ENDCHAR
+STARTCHAR C245
+ENCODING 165
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 7 1 0
+BITMAP
+a0
+a0
+40
+e0
+40
+e0
+40
+ENDCHAR
+STARTCHAR C246
+ENCODING 166
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 1 5 1 0
+BITMAP
+80
+80
+00
+80
+80
+ENDCHAR
+STARTCHAR C247
+ENCODING 167
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+70
+c0
+a0
+50
+30
+e0
+ENDCHAR
+STARTCHAR C250
+ENCODING 168
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 1 0 5
+BITMAP
+a0
+ENDCHAR
+STARTCHAR C251
+ENCODING 169
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 0
+BITMAP
+60
+d0
+b0
+d0
+60
+ENDCHAR
+STARTCHAR C252
+ENCODING 170
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 1
+BITMAP
+60
+10
+70
+90
+90
+70
+ENDCHAR
+STARTCHAR C253
+ENCODING 171
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 3 0 1
+BITMAP
+50
+a0
+50
+ENDCHAR
+STARTCHAR C254
+ENCODING 172
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 2 0 1
+BITMAP
+f0
+10
+ENDCHAR
+STARTCHAR C255
+ENCODING 173
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 1 0 2
+BITMAP
+f0
+ENDCHAR
+STARTCHAR C256
+ENCODING 174
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 0
+BITMAP
+60
+d0
+b0
+b0
+60
+ENDCHAR
+STARTCHAR C257
+ENCODING 175
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 1 0 5
+BITMAP
+f0
+ENDCHAR
+STARTCHAR C260
+ENCODING 176
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 3 1 3
+BITMAP
+40
+a0
+40
+ENDCHAR
+STARTCHAR C261
+ENCODING 177
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 5 1 0
+BITMAP
+40
+e0
+40
+00
+e0
+ENDCHAR
+STARTCHAR C262
+ENCODING 178
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 4 1 3
+BITMAP
+80
+40
+80
+c0
+ENDCHAR
+STARTCHAR C263
+ENCODING 179
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 5 1 2
+BITMAP
+80
+40
+80
+40
+80
+ENDCHAR
+STARTCHAR C264
+ENCODING 180
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 3 1 3
+BITMAP
+40
+80
+80
+ENDCHAR
+STARTCHAR C265
+ENCODING 181
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 -2
+BITMAP
+90
+90
+90
+e0
+80
+80
+ENDCHAR
+STARTCHAR C266
+ENCODING 182
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 -1
+BITMAP
+f0
+d0
+d0
+d0
+50
+50
+50
+ENDCHAR
+STARTCHAR C267
+ENCODING 183
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 2 1 2
+BITMAP
+c0
+c0
+ENDCHAR
+STARTCHAR C270
+ENCODING 184
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 3 1 -1
+BITMAP
+c0
+40
+80
+ENDCHAR
+STARTCHAR C271
+ENCODING 185
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 2 4 1 3
+BITMAP
+40
+c0
+40
+40
+ENDCHAR
+STARTCHAR C272
+ENCODING 186
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 1
+BITMAP
+60
+90
+90
+60
+ENDCHAR
+STARTCHAR C273
+ENCODING 187
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 3 0 1
+BITMAP
+a0
+50
+a0
+ENDCHAR
+STARTCHAR C274
+ENCODING 188
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 0
+BITMAP
+90
+30
+60
+c0
+90
+ENDCHAR
+STARTCHAR C275
+ENCODING 189
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 0
+BITMAP
+90
+30
+60
+c0
+90
+ENDCHAR
+STARTCHAR C276
+ENCODING 190
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 0
+BITMAP
+90
+30
+60
+c0
+90
+ENDCHAR
+STARTCHAR C277
+ENCODING 191
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+40
+00
+60
+10
+90
+60
+ENDCHAR
+STARTCHAR C300
+ENCODING 192
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+c0
+00
+60
+90
+f0
+90
+90
+ENDCHAR
+STARTCHAR C301
+ENCODING 193
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+30
+00
+60
+90
+f0
+90
+90
+ENDCHAR
+STARTCHAR C302
+ENCODING 194
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+60
+90
+60
+90
+f0
+90
+90
+ENDCHAR
+STARTCHAR C303
+ENCODING 195
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+50
+a0
+60
+90
+f0
+90
+90
+ENDCHAR
+STARTCHAR C304
+ENCODING 196
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+90
+00
+60
+90
+f0
+90
+90
+ENDCHAR
+STARTCHAR C305
+ENCODING 197
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+60
+00
+60
+90
+f0
+90
+90
+ENDCHAR
+STARTCHAR C306
+ENCODING 198
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+70
+a0
+f0
+a0
+a0
+b0
+ENDCHAR
+STARTCHAR C307
+ENCODING 199
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 8 0 -2
+BITMAP
+60
+90
+80
+80
+90
+60
+20
+40
+ENDCHAR
+STARTCHAR C310
+ENCODING 200
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+c0
+00
+f0
+80
+e0
+80
+f0
+ENDCHAR
+STARTCHAR C311
+ENCODING 201
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+30
+00
+f0
+80
+e0
+80
+f0
+ENDCHAR
+STARTCHAR C312
+ENCODING 202
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+50
+a0
+f0
+80
+e0
+80
+f0
+ENDCHAR
+STARTCHAR C313
+ENCODING 203
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+90
+00
+f0
+80
+e0
+80
+f0
+ENDCHAR
+STARTCHAR C314
+ENCODING 204
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 7 1 0
+BITMAP
+80
+40
+00
+e0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C315
+ENCODING 205
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 7 1 0
+BITMAP
+20
+40
+00
+e0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C316
+ENCODING 206
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 7 1 0
+BITMAP
+40
+a0
+00
+e0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C317
+ENCODING 207
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+a0
+00
+e0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C320
+ENCODING 208
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+e0
+90
+d0
+90
+90
+e0
+ENDCHAR
+STARTCHAR C321
+ENCODING 209
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+50
+a0
+90
+d0
+f0
+b0
+90
+ENDCHAR
+STARTCHAR C322
+ENCODING 210
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+40
+20
+60
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C323
+ENCODING 211
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+20
+40
+60
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C324
+ENCODING 212
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+60
+90
+60
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C325
+ENCODING 213
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+50
+a0
+60
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C326
+ENCODING 214
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+90
+00
+60
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C327
+ENCODING 215
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 1
+BITMAP
+90
+60
+60
+90
+ENDCHAR
+STARTCHAR C330
+ENCODING 216
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+60
+90
+a0
+50
+90
+60
+ENDCHAR
+STARTCHAR C331
+ENCODING 217
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+80
+40
+90
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C332
+ENCODING 218
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+10
+20
+90
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C333
+ENCODING 219
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+60
+00
+90
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C334
+ENCODING 220
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+90
+00
+90
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C335
+ENCODING 221
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+10
+20
+90
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C336
+ENCODING 222
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+80
+e0
+90
+e0
+80
+80
+ENDCHAR
+STARTCHAR C337
+ENCODING 223
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 -1
+BITMAP
+60
+90
+a0
+90
+90
+a0
+80
+ENDCHAR
+STARTCHAR C340
+ENCODING 224
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+40
+20
+00
+60
+10
+f0
+70
+ENDCHAR
+STARTCHAR C341
+ENCODING 225
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+20
+40
+00
+60
+10
+f0
+70
+ENDCHAR
+STARTCHAR C342
+ENCODING 226
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+20
+50
+00
+60
+10
+f0
+70
+ENDCHAR
+STARTCHAR C343
+ENCODING 227
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+50
+a0
+00
+60
+10
+f0
+70
+ENDCHAR
+STARTCHAR C344
+ENCODING 228
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+50
+00
+60
+10
+f0
+70
+ENDCHAR
+STARTCHAR C345
+ENCODING 229
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+20
+50
+20
+60
+10
+f0
+70
+ENDCHAR
+STARTCHAR C346
+ENCODING 230
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+70
+b0
+a0
+70
+ENDCHAR
+STARTCHAR C347
+ENCODING 231
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 0 -2
+BITMAP
+60
+80
+80
+60
+40
+80
+ENDCHAR
+STARTCHAR C350
+ENCODING 232
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+40
+20
+00
+60
+f0
+80
+60
+ENDCHAR
+STARTCHAR C351
+ENCODING 233
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+20
+40
+00
+60
+f0
+80
+60
+ENDCHAR
+STARTCHAR C352
+ENCODING 234
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+20
+50
+00
+60
+f0
+80
+60
+ENDCHAR
+STARTCHAR C353
+ENCODING 235
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+50
+00
+60
+f0
+80
+60
+ENDCHAR
+STARTCHAR C354
+ENCODING 236
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 7 1 0
+BITMAP
+80
+40
+00
+c0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C355
+ENCODING 237
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 7 1 0
+BITMAP
+20
+40
+00
+c0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C356
+ENCODING 238
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 7 1 0
+BITMAP
+40
+a0
+00
+c0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C357
+ENCODING 239
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 3 6 1 0
+BITMAP
+a0
+00
+c0
+40
+40
+e0
+ENDCHAR
+STARTCHAR C360
+ENCODING 240
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+40
+20
+10
+70
+90
+90
+60
+ENDCHAR
+STARTCHAR C361
+ENCODING 241
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+50
+a0
+00
+60
+90
+90
+90
+ENDCHAR
+STARTCHAR C362
+ENCODING 242
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+40
+20
+00
+60
+90
+90
+60
+ENDCHAR
+STARTCHAR C363
+ENCODING 243
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+20
+40
+00
+60
+90
+90
+60
+ENDCHAR
+STARTCHAR C364
+ENCODING 244
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+60
+90
+00
+60
+90
+90
+60
+ENDCHAR
+STARTCHAR C365
+ENCODING 245
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+50
+a0
+00
+60
+90
+90
+60
+ENDCHAR
+STARTCHAR C366
+ENCODING 246
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+00
+60
+90
+90
+60
+ENDCHAR
+STARTCHAR C367
+ENCODING 247
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 5 0 1
+BITMAP
+40
+00
+f0
+00
+20
+ENDCHAR
+STARTCHAR C370
+ENCODING 248
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 4 0 0
+BITMAP
+60
+b0
+d0
+60
+ENDCHAR
+STARTCHAR C371
+ENCODING 249
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+40
+20
+00
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C372
+ENCODING 250
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+20
+40
+00
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C373
+ENCODING 251
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 7 0 0
+BITMAP
+60
+90
+00
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C374
+ENCODING 252
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+90
+00
+90
+90
+90
+60
+ENDCHAR
+STARTCHAR C375
+ENCODING 253
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 9 0 -2
+BITMAP
+20
+40
+00
+90
+90
+90
+70
+10
+e0
+ENDCHAR
+STARTCHAR C376
+ENCODING 254
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 6 0 0
+BITMAP
+80
+e0
+90
+90
+e0
+80
+ENDCHAR
+STARTCHAR C377
+ENCODING 255
+SWIDTH 714 0
+DWIDTH 5 0
+BBX 4 8 0 -2
+BITMAP
+90
+00
+90
+90
+90
+70
+10
+e0
+ENDCHAR
+ENDFONT
diff --git a/data/images/missing.bimg b/data/images/missing.bimg
new file mode 100644
index 0000000..e788e91
--- /dev/null
+++ b/data/images/missing.bimg
@@ -0,0 +1,15 @@
+{
+ {
+ {"","787","808"},
+ {"
","080","808"},
+ {"","708","887"}
+ },
+ version = "1.0.0",
+ animation = false,
+ title = "Missing bimg",
+ description = "Oh oh, the source is missing!",
+ author = "Kristify",
+ creator = "Keyboard and Mouse",
+ date = "2022-09-11T19:04:24+0000",
+}
+
diff --git a/data/images/script.bimg b/data/images/script.bimg
new file mode 100644
index 0000000..4e5467c
--- /dev/null
+++ b/data/images/script.bimg
@@ -0,0 +1,15 @@
+{
+ {
+ {"ddd","7c7","208"},
+ {"aaa","f32","403"},
+ {"fff","733","867"}
+ },
+ version = "1.0.0",
+ animation = false,
+ title = "Missing bimg",
+ description = "Oh oh, the source is missing!",
+ author = "Kristify",
+ creator = "Keyboard and Mouse",
+ date = "2022-09-11T19:04:24+0000",
+}
+
diff --git a/data/pages/home.xml b/data/pages/home.xml
index 69d7c79..ca6e09c 100644
--- a/data/pages/home.xml
+++ b/data/pages/home.xml
@@ -2,4 +2,5 @@
+
\ No newline at end of file
diff --git a/data/products.lua b/data/products.lua
index 8981142..c853586 100644
--- a/data/products.lua
+++ b/data/products.lua
@@ -1,6 +1,8 @@
return {
{
displayName = "Dirt",
+ description = "Has good quality.",
+ bimg = {{""," ","888"},{"","888","ccc"},{"","c c"," c "}},
categorys={"Items"},
type = "item",
price = 2,
@@ -11,6 +13,7 @@
},
{
displayName = "Diamond",
+ description = "Only for a limited time!",
categorys={"Items","RARE"},
type = "item",
price = 14,
@@ -21,6 +24,8 @@
},
{
displayName = "MiloX",
+ description = "Get access to a script!",
+ bimg = "script.bimg",
categorys={"Files"},
type = "link",
price = 20,
@@ -28,4 +33,5 @@
link = "https://devbin.dev/8f3wy"
}
}
-}
\ No newline at end of file
+}
+
diff --git a/src/Basalt/objects/Bimg.lua b/src/Basalt/objects/Bimg.lua
new file mode 100644
index 0000000..ee40f18
--- /dev/null
+++ b/src/Basalt/objects/Bimg.lua
@@ -0,0 +1,101 @@
+local Object = require("Object")
+local utils = require("utils")
+local xmlValue = utils.getValueFromXML
+local createText = utils.createText
+local tHex = require("tHex")
+local bdf = require("miniBDF")
+
+return function(name)
+ -- Bimg
+ local base = Object(name)
+ local objectType = "Bimg"
+ base:setZIndex(2)
+ local image
+ local index = 1
+
+ local object = {
+ getType = function(self)
+ return objectType
+ end;
+
+ setIndex = function(self, i)
+ index = i
+ self:updateDraw()
+ return self
+ end;
+
+ loadImage = function(self, path)
+ if type(path) == "table" then
+ image = path
+ elseif type(path) == "string" then
+ if fs.exists(path) and not fs.isDir(path) then
+ local f = fs.open(path, 'r')
+ local str = f.readAll()
+ f.close()
+
+ local col = {white=0x1,orange=0x2,magenta=0x4,lightBlue=0x8,yellow=0x10,lime=0x20,pink=0x40,grey=0x80,lightGrey=0x100,cyan=0x200,purple=0x400,blue=0x800,brown=0x1000,green=0x2000,red=0x4000,black=0x8000}
+ local inferiorcol=col; inferiorcol.gray=col.grey; inferiorcol.lightGray=col.lightGrey
+ local b,tBimg = pcall( load("return "..str,"bimg","t",{colours=col,colors=inferiorcol}) )
+
+ if b and type(tBimg) == "table" then
+ image = tBimg
+ end
+ end
+ end
+ self:updateDraw()
+ return self
+ end;
+
+ unloadImage = function(self)
+ image = nil
+ self:updateDraw()
+ return self
+ end;
+
+ setValuesByXMLData = function(self, data)
+ base.setValuesByXMLData(self, data)
+ if(xmlValue("path", data)~=nil)then self:loadImage(xmlValue("path", data)) end
+ return self
+ end,
+
+ draw = function(self)
+ if (base.draw(self)) then
+ if (self.parent ~= nil) then
+ local blits = {[1]='0',[2]='1',[4]='2',[8]='3',[16]='4',[32]='5',[64]='6',[128]='7',[256]='8',[512]='9',[1024]='a',[2048]='b',[4096]='c',[8192]='d',[16384]='e',[32768]='f' }
+ if image and image[index] then
+ local obx, oby = self:getAnchorPosition()
+
+ local width = 1
+ for i=1,#image[index] do
+ local line = image[index][i]
+
+ if #line[1] > width then
+ width = #line[1]
+ end
+
+ if line[2]:find(' ') then
+ local c = blits[self.parent:getBackground()]
+ line[2] = (line[2]):gsub(' ', c)
+ end
+ if line[3]:find(' ') then
+ local c = blits[self.parent:getBackground()]
+ line[3] = (line[3]):gsub(' ', c)
+ end
+
+ self.parent:setText(obx, oby+i-1, line[1])
+ self.parent:setFG(obx, oby+i-1, line[2])
+ self.parent:setBG(obx, oby+i-1, line[3])
+ end
+ self:setSize(width, #image[index])
+ end
+ end
+ end
+ end,
+
+ init = function(self) end
+
+ }
+
+ return setmetatable(object, base)
+end
+
diff --git a/src/Basalt/objects/Button.lua b/src/Basalt/objects/Button.lua
index 577f593..a6509b6 100644
--- a/src/Basalt/objects/Button.lua
+++ b/src/Basalt/objects/Button.lua
@@ -9,6 +9,7 @@
local objectType = "Button"
local textHorizontalAlign = "center"
local textVerticalAlign = "center"
+ local metadata = {}
base:setZIndex(5)
base:setValue("Button")
@@ -18,7 +19,7 @@
local object = {
init = function(self)
self.bgColor = self.parent:getTheme("ButtonBG")
- self.fgColor = self.parent:getTheme("ButtonText")
+ self.fgColor = self.parent:getTheme("ButtonText")
end,
getType = function(self)
return objectType
@@ -41,6 +42,15 @@
return self
end;
+ setMetadata = function(self, newMdata)
+ metadata = newMdata
+ return self
+ end;
+
+ getMetadata = function(self)
+ return metadata
+ end;
+
setValuesByXMLData = function(self, data)
base.setValuesByXMLData(self, data)
if(xmlValue("text", data)~=nil)then self:setText(xmlValue("text", data)) end
@@ -68,4 +78,5 @@
}
return setmetatable(object, base)
-end
\ No newline at end of file
+end
+
diff --git a/src/Basalt/objects/Image.lua b/src/Basalt/objects/Image.lua
deleted file mode 100644
index 24ff76e..0000000
--- a/src/Basalt/objects/Image.lua
+++ /dev/null
@@ -1,202 +0,0 @@
-local Object = require("Object")
-local xmlValue = require("utils").getValueFromXML
-
-return function(name)
- -- Image
- local base = Object(name)
- local objectType = "Image"
- base:setZIndex(2)
- local image
- local shrinkedImage
- local imageGotShrinked = false
-
- local function shrink()
- -- shrinkSystem is copy pasted (and slightly changed) from blittle by Bomb Bloke: http://www.computercraft.info/forums2/index.php?/topic/25354-cc-176-blittle-api/
- local relations = { [0] = { 8, 4, 3, 6, 5 }, { 4, 14, 8, 7 }, { 6, 10, 8, 7 }, { 9, 11, 8, 0 }, { 1, 14, 8, 0 }, { 13, 12, 8, 0 }, { 2, 10, 8, 0 }, { 15, 8, 10, 11, 12, 14 },
- { 0, 7, 1, 9, 2, 13 }, { 3, 11, 8, 7 }, { 2, 6, 7, 15 }, { 9, 3, 7, 15 }, { 13, 5, 7, 15 }, { 5, 12, 8, 7 }, { 1, 4, 7, 15 }, { 7, 10, 11, 12, 14 } }
-
- local colourNum, exponents, colourChar = {}, {}, {}
- for i = 0, 15 do
- exponents[2 ^ i] = i
- end
- do
- local hex = "0123456789abcdef"
- for i = 1, 16 do
- colourNum[hex:sub(i, i)] = i - 1
- colourNum[i - 1] = hex:sub(i, i)
- colourChar[hex:sub(i, i)] = 2 ^ (i - 1)
- colourChar[2 ^ (i - 1)] = hex:sub(i, i)
-
- local thisRel = relations[i - 1]
- for i = 1, #thisRel do
- thisRel[i] = 2 ^ thisRel[i]
- end
- end
- end
-
- local function getBestColourMatch(usage)
- local lastCol = relations[exponents[usage[#usage][1]]]
-
- for j = 1, #lastCol do
- local thisRelation = lastCol[j]
- for i = 1, #usage - 1 do
- if usage[i][1] == thisRelation then
- return i
- end
- end
- end
-
- return 1
- end
-
- local function colsToChar(pattern, totals)
- if not totals then
- local newPattern = {}
- totals = {}
- for i = 1, 6 do
- local thisVal = pattern[i]
- local thisTot = totals[thisVal]
- totals[thisVal], newPattern[i] = thisTot and (thisTot + 1) or 1, thisVal
- end
- pattern = newPattern
- end
-
- local usage = {}
- for key, value in pairs(totals) do
- usage[#usage + 1] = { key, value }
- end
-
- if #usage > 1 then
- -- Reduce the chunk to two colours:
- while #usage > 2 do
- table.sort(usage, function(a, b)
- return a[2] > b[2]
- end)
- local matchToInd, usageLen = getBestColourMatch(usage), #usage
- local matchFrom, matchTo = usage[usageLen][1], usage[matchToInd][1]
- for i = 1, 6 do
- if pattern[i] == matchFrom then
- pattern[i] = matchTo
- usage[matchToInd][2] = usage[matchToInd][2] + 1
- end
- end
- usage[usageLen] = nil
- end
-
- -- Convert to character. Adapted from oli414's function:
- -- http://www.computercraft.info/forums2/index.php?/topic/25340-cc-176-easy-drawing-characters/
- local data = 128
- for i = 1, #pattern - 1 do
- if pattern[i] ~= pattern[6] then
- data = data + 2 ^ (i - 1)
- end
- end
- return string.char(data), colourChar[usage[1][1] == pattern[6] and usage[2][1] or usage[1][1]], colourChar[pattern[6]]
- else
- -- Solid colour character:
- return "\128", colourChar[pattern[1]], colourChar[pattern[1]]
- end
- end
-
- local results, width, height, bgCol = { {}, {}, {} }, 0, #image + #image % 3, base.bgColor or colors.black
- for i = 1, #image do
- if #image[i] > width then
- width = #image[i]
- end
- end
-
- for y = 0, height - 1, 3 do
- local cRow, tRow, bRow, counter = {}, {}, {}, 1
-
- for x = 0, width - 1, 2 do
- -- Grab a 2x3 chunk:
- local pattern, totals = {}, {}
-
- for yy = 1, 3 do
- for xx = 1, 2 do
- pattern[#pattern + 1] = (image[y + yy] and image[y + yy][x + xx]) and (image[y + yy][x + xx] == 0 and bgCol or image[y + yy][x + xx]) or bgCol
- totals[pattern[#pattern]] = totals[pattern[#pattern]] and (totals[pattern[#pattern]] + 1) or 1
- end
- end
-
- cRow[counter], tRow[counter], bRow[counter] = colsToChar(pattern, totals)
- counter = counter + 1
- end
-
- results[1][#results[1] + 1], results[2][#results[2] + 1], results[3][#results[3] + 1] = table.concat(cRow), table.concat(tRow), table.concat(bRow)
- end
-
- results.width, results.height = #results[1][1], #results[1]
-
- shrinkedImage = results
- end
-
- local object = {
- init = function(self)
- self.bgColor = self.parent:getTheme("ImageBG")
- end,
- getType = function(self)
- return objectType
- end;
-
- loadImage = function(self, path)
- image = paintutils.loadImage(path)
- imageGotShrinked = false
- self:updateDraw()
- return self
- end;
-
-
- shrink = function(self)
- shrink()
- imageGotShrinked = true
- self:updateDraw()
- return self
- end;
-
- setValuesByXMLData = function(self, data)
- base.setValuesByXMLData(self, data)
- if(xmlValue("shrink", data)~=nil)then if(xmlValue("shrink", data))then self:shrink() end end
- if(xmlValue("path", data)~=nil)then self:loadImage(xmlValue("path", data)) end
- return self
- end,
-
- draw = function(self)
- if (base.draw(self)) then
- if (self.parent ~= nil) then
- if (image ~= nil) then
- local obx, oby = self:getAnchorPosition()
- local w,h = self:getSize()
- if (imageGotShrinked) then
- -- this is copy pasted (and slightly changed) from blittle by Bomb Bloke: http://www.computercraft.info/forums2/index.php?/topic/25354-cc-176-blittle-api/
- local t, tC, bC = shrinkedImage[1], shrinkedImage[2], shrinkedImage[3]
- for i = 1, shrinkedImage.height do
- local tI = t[i]
- if type(tI) == "string" then
- self.parent:setText(obx, oby + i - 1, tI)
- self.parent:setFG(obx, oby + i - 1, tC[i])
- self.parent:setBG(obx, oby + i - 1, bC[i])
- elseif type(tI) == "table" then
- self.parent:setText(obx, oby + i - 1, tI[2])
- self.parent:setFG(obx, oby + i - 1, tC[i])
- self.parent:setBG(obx, oby + i - 1, bC[i])
- end
- end
- else
- for yPos = 1, math.min(#image, h) do
- local line = image[yPos]
- for xPos = 1, math.min(#line, w) do
- if line[xPos] > 0 then
- self.parent:drawBackgroundBox(obx + xPos - 1, oby + yPos - 1, 1, 1, line[xPos])
- end
- end
- end
- end
- end
- end
- end
- end,
- }
-
- return setmetatable(object, base)
-end
\ No newline at end of file
diff --git a/src/Basalt/objects/Nfp.lua b/src/Basalt/objects/Nfp.lua
new file mode 100644
index 0000000..f8b62a2
--- /dev/null
+++ b/src/Basalt/objects/Nfp.lua
@@ -0,0 +1,209 @@
+local Object = require("Object")
+local xmlValue = require("utils").getValueFromXML
+
+return function(name)
+ -- Nfp
+ local base = Object(name)
+ local objectType = "Nfp"
+ base:setZIndex(2)
+ local image
+ local shrinkedImage
+ local imageGotShrinked = false
+
+ local function shrink()
+ -- shrinkSystem is copy pasted (and slightly changed) from blittle by Bomb Bloke: http://www.computercraft.info/forums2/index.php?/topic/25354-cc-176-blittle-api/
+ local relations = { [0] = { 8, 4, 3, 6, 5 }, { 4, 14, 8, 7 }, { 6, 10, 8, 7 }, { 9, 11, 8, 0 }, { 1, 14, 8, 0 }, { 13, 12, 8, 0 }, { 2, 10, 8, 0 }, { 15, 8, 10, 11, 12, 14 },
+ { 0, 7, 1, 9, 2, 13 }, { 3, 11, 8, 7 }, { 2, 6, 7, 15 }, { 9, 3, 7, 15 }, { 13, 5, 7, 15 }, { 5, 12, 8, 7 }, { 1, 4, 7, 15 }, { 7, 10, 11, 12, 14 } }
+
+ local colourNum, exponents, colourChar = {}, {}, {}
+ for i = 0, 15 do
+ exponents[2 ^ i] = i
+ end
+ do
+ local hex = "0123456789abcdef"
+ for i = 1, 16 do
+ colourNum[hex:sub(i, i)] = i - 1
+ colourNum[i - 1] = hex:sub(i, i)
+ colourChar[hex:sub(i, i)] = 2 ^ (i - 1)
+ colourChar[2 ^ (i - 1)] = hex:sub(i, i)
+
+ local thisRel = relations[i - 1]
+ for i = 1, #thisRel do
+ thisRel[i] = 2 ^ thisRel[i]
+ end
+ end
+ end
+
+ local function getBestColourMatch(usage)
+ local lastCol = relations[exponents[usage[#usage][1]]]
+
+ for j = 1, #lastCol do
+ local thisRelation = lastCol[j]
+ for i = 1, #usage - 1 do
+ if usage[i][1] == thisRelation then
+ return i
+ end
+ end
+ end
+
+ return 1
+ end
+
+ local function colsToChar(pattern, totals)
+ if not totals then
+ local newPattern = {}
+ totals = {}
+ for i = 1, 6 do
+ local thisVal = pattern[i]
+ local thisTot = totals[thisVal]
+ totals[thisVal], newPattern[i] = thisTot and (thisTot + 1) or 1, thisVal
+ end
+ pattern = newPattern
+ end
+
+ local usage = {}
+ for key, value in pairs(totals) do
+ usage[#usage + 1] = { key, value }
+ end
+
+ if #usage > 1 then
+ -- Reduce the chunk to two colours:
+ while #usage > 2 do
+ table.sort(usage, function(a, b)
+ return a[2] > b[2]
+ end)
+ local matchToInd, usageLen = getBestColourMatch(usage), #usage
+ local matchFrom, matchTo = usage[usageLen][1], usage[matchToInd][1]
+ for i = 1, 6 do
+ if pattern[i] == matchFrom then
+ pattern[i] = matchTo
+ usage[matchToInd][2] = usage[matchToInd][2] + 1
+ end
+ end
+ usage[usageLen] = nil
+ end
+
+ -- Convert to character. Adapted from oli414's function:
+ -- http://www.computercraft.info/forums2/index.php?/topic/25340-cc-176-easy-drawing-characters/
+ local data = 128
+ for i = 1, #pattern - 1 do
+ if pattern[i] ~= pattern[6] then
+ data = data + 2 ^ (i - 1)
+ end
+ end
+ return string.char(data), colourChar[usage[1][1] == pattern[6] and usage[2][1] or usage[1][1]], colourChar[pattern[6]]
+ else
+ -- Solid colour character:
+ return "\128", colourChar[pattern[1]], colourChar[pattern[1]]
+ end
+ end
+
+ local results, width, height, bgCol = { {}, {}, {} }, 0, #image + #image % 3, base.bgColor or colors.black
+ for i = 1, #image do
+ if #image[i] > width then
+ width = #image[i]
+ end
+ end
+
+ for y = 0, height - 1, 3 do
+ local cRow, tRow, bRow, counter = {}, {}, {}, 1
+
+ for x = 0, width - 1, 2 do
+ -- Grab a 2x3 chunk:
+ local pattern, totals = {}, {}
+
+ for yy = 1, 3 do
+ for xx = 1, 2 do
+ pattern[#pattern + 1] = (image[y + yy] and image[y + yy][x + xx]) and (image[y + yy][x + xx] == 0 and bgCol or image[y + yy][x + xx]) or bgCol
+ totals[pattern[#pattern]] = totals[pattern[#pattern]] and (totals[pattern[#pattern]] + 1) or 1
+ end
+ end
+
+ cRow[counter], tRow[counter], bRow[counter] = colsToChar(pattern, totals)
+ counter = counter + 1
+ end
+
+ results[1][#results[1] + 1], results[2][#results[2] + 1], results[3][#results[3] + 1] = table.concat(cRow), table.concat(tRow), table.concat(bRow)
+ end
+
+ results.width, results.height = #results[1][1], #results[1]
+
+ shrinkedImage = results
+ end
+
+ local object = {
+ init = function(self)
+ self.bgColor = self.parent:getTheme("NfpBG")
+ end,
+ getType = function(self)
+ return objectType
+ end;
+
+ loadImage = function(self, path)
+ image = paintutils.loadImage(path)
+ imageGotShrinked = false
+ self:updateDraw()
+ return self
+ end;
+
+ unloadImage = function(self)
+ image = nil
+ self:updateDraw()
+ return self
+ end;
+
+ shrink = function(self)
+ shrink()
+ imageGotShrinked = true
+ self:updateDraw()
+ return self
+ end;
+
+ setValuesByXMLData = function(self, data)
+ base.setValuesByXMLData(self, data)
+ if(xmlValue("shrink", data)~=nil)then if(xmlValue("shrink", data))then self:shrink() end end
+ if(xmlValue("path", data)~=nil)then self:loadImage(xmlValue("path", data)) end
+ return self
+ end,
+
+ draw = function(self)
+ if (base.draw(self)) then
+ if (self.parent ~= nil) then
+ if (image ~= nil) then
+ local obx, oby = self:getAnchorPosition()
+ if (imageGotShrinked) then
+ -- this is copy pasted (and slightly changed) from blittle by Bomb Bloke: http://www.computercraft.info/forums2/index.php?/topic/25354-cc-176-blittle-api/
+ local t, tC, bC = shrinkedImage[1], shrinkedImage[2], shrinkedImage[3]
+ self:setSize(#t[1],#t)
+ for i = 1, shrinkedImage.height do
+ local tI = t[i]
+ if type(tI) == "string" then
+ self.parent:setText(obx, oby + i - 1, tI)
+ self.parent:setFG(obx, oby + i - 1, tC[i])
+ self.parent:setBG(obx, oby + i - 1, bC[i])
+ elseif type(tI) == "table" then
+ self.parent:setText(obx, oby + i - 1, tI[2])
+ self.parent:setFG(obx, oby + i - 1, tC[i])
+ self.parent:setBG(obx, oby + i - 1, bC[i])
+ end
+ end
+ else
+ local w,h = #image[1],#image
+ self:setSize(w,h)
+ for yPos = 1, math.min(#image, h) do
+ local line = image[yPos]
+ for xPos = 1, math.min(#line, w) do
+ if line[xPos] > 0 then
+ self.parent:drawBackgroundBox(obx + xPos - 1, oby + yPos - 1, 1, 1, line[xPos])
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end,
+ }
+
+ return setmetatable(object, base)
+end
\ No newline at end of file
diff --git a/src/init.lua b/src/init.lua
index 495cbdb..970d974 100644
--- a/src/init.lua
+++ b/src/init.lua
@@ -2,17 +2,28 @@
local sSrc = fs.getDir(shell.getRunningProgram())
local sRoot = fs.combine(sSrc,"..")
local sData = fs.combine(sRoot,"data")
-local sFont = fs.combine(sData,"font")
+local sFont = fs.combine(sData,"fonts")
+local sImg = fs.combine(sData,"images")
local sPage = fs.combine(sData,"pages")
local basalt = require("basalt")
local bdf = require("basalt/libraries/miniBDF")
local ctx
+local function purchase(self,event,button,x,y)
+ if event == "mouse_click" and button == 1 then
+ local metadata = self:getMetadata()
+ if metadata.id then
+ -- TODO Open popup that tells user where to send krist to get item
+ basalt.debug("Item: "..ctx.products[metadata.id].displayName)
+ end
+ end
+end
+
local function init(...)
-- [Context]
- ctx = {gui={},theme={},config={},pages={},current=1,scroll=0,redraw=true}
-
+ ctx = {gui={},image={},products={},theme={},config={},pages={},current=1,scroll=0,redraw=true}
+
-- [Fonts]
fontBDF = {}
if fs.exists(sFont) and fs.isDir(sFont) then
@@ -41,16 +52,28 @@
end
-- [Data] (config,theme,products, etc.)
+ local function loadStr(str, begin, env)
+ if not begin then begin = "" end
+ local success,result = pcall( loadstring(begin..str, "t", env) )
+ if success and type(result) == "table" then
+ return result
+ end
+ return false
+ end
local function loadLuaFile(path, env)
if fs.exists(path) and not fs.isDir(path) then
-
- local success,result = pcall( loadfile(path, "t", env) )
- if success and type(result) == "table" then
- return result
- else
- printError("Could not load \'"..fs.getName(path).."\' properly!\n"..tostring(theme))
+ local f = fs.open(path, 'r')
+ local c = f.readAll()
+ f.close()
+ local result = loadStr(c, "", env)
+ if not result then
+ printError("Could not load \'"..path.."\' properly!\n"..tostring(result))
sleep(1)
end
+ return result
+ else
+ printError("Could not load \'"..path.."\'!")
+ sleep(0.5)
end
return false
end
@@ -58,28 +81,160 @@
local col = {white=0x1,orange=0x2,magenta=0x4,lightBlue=0x8,yellow=0x10,lime=0x20,pink=0x40,grey=0x80,lightGrey=0x100,cyan=0x200,purple=0x400,blue=0x800,brown=0x1000,green=0x2000,red=0x4000,black=0x8000}
local inferiorcol=col; inferiorcol.gray=col.grey; inferiorcol.lightGray=col.lightGrey
local result = loadLuaFile(fs.combine(sPage,"theme.lua"), {colours=col,colors=inferiorcol})
- if not result then return end
- ctx.theme = result
+ if result then
+ ctx.theme = result
+ end
+ -- bimg
+ local files = fs.list(sImg)
+ for i=1,#files do
+ if files[i]:sub(-4) == "bimg" then
+ local f = fs.open(fs.combine(sImg,files[i]), 'r')
+ local c = f.readAll()
+ f.close()
+ local result = loadStr(c, "return ", {colours=col,colors=inferiorcol})
+ if result then
+ ctx.image[files[i] or (#ctx.image+1)] = result
+ end
+ end
+ end
-- config
- local result = loadLuaFile(fs.combine(sData,"config.lua"))
- if not result then return end
- ctx.config = result
+ result = loadLuaFile(fs.combine(sData,"config.lua"))
+ if result then
+ ctx.config = result
+ end
+ -- products
+ result = loadLuaFile(fs.combine(sData,"products.lua"))
+ if result then
+ ctx.products = result
+ end
+ -- [Purchase]
+ basalt.setVariable("purchase", purchase)
return ctx
end
+
+---Saves the current proucts states into the file
+---and loads them into the interface.
+local function updateProducts()
+end
+
+---Checks if a given table has all keys inside it, building a chain with each other.
+---@param ctx table The table to inspect
+---@param ... any The keys to check
+---@return boolean status true if all keys are there and false if not
+local function checkTableTree(ctx, ...)
+ local tmp = ctx
+ for _,key in pairs({...}) do
+ if tmp[key] then
+ tmp = tmp[key]
+ else
+ return false
+ end
+ end
+ return true
+end
+
+---Go through layout and replace stuff with our content
+---@param page table The Basalt frame layout
+local function insertData(page,ctx)
+ local layout = page:getLastLayout()
+ local function repalceContent(layout)
+ for _,object in pairs(layout) do
+ -- Is frame?
+ if object.addLayout then
+ id = object:getName()
+ -- Is frame for products?
+ if id:find("products") then
+ local listHeight = 1
+ local nW,nH = object:getSize()
+ for i,product in pairs(ctx.products) do
+ if product.displayName and product.price and product.description then
+ local item = object:addFrame(tostring(i))
+ :setPosition(1,listHeight)
+ :setSize(nW,3)
+ :setBackground(colors.gray)
+ local offX = 0
+ -- Image
+ local bimg = {}
+ for k,v in pairs(ctx.image["missing.bimg"]) do
+ bimg[k] = v
+ end
+ if product.bimg then
+ if type(product.bimg) == "table" then
+ bimg[1] = product.bimg
+ elseif type(product.bimg) == "string" then
+ bimg = fs.combine(sImg,product.bimg)
+ end
+ end
+ if bimg then
+ local img = item:addBimg()
+ :setPosition(1,1)
+ :loadImage(bimg)
+ local x,y = img:getSize()
+ offX = x+2
+ end
+ -- Title
+ item:addLabel()
+ :setText(product.displayName)
+ :setPosition(2+offX,1)
+ :setSize(1,nW-(6+offX),1)
+ :setBackground(colors.gray)
+ -- Description
+ item:addLabel()
+ :setText(product.description)
+ :setPosition(2+offX,2)
+ :setSize(2,nW-(6+offX),1)
+ :setForeground(colors.lightGray)
+ :setBackground(colors.gray)
+ -- Button
+ item:addButton()
+ :setText("BUY")
+ :setPosition(nW-6,1)
+ :setSize(7,3)
+ :setForeground(colors.white)
+ :setBackground(colors.green)
+ :setMetadata({
+ id = i
+ })
+ :onClick(purchase)
+
+
+ listHeight = listHeight+4
+ end
+ end
+ object:setSize(nW,listHeight)
+ -- Look into frame for other stuff
+ else
+ local subLayout = object:getLastLayout()
+ repalceContent(subLayout)
+ end
+ -- Is something else we are looking for?
+ elseif object.setText then
+ local id = object:getName()
+ local txt = object:getValue()
+ if id:find("subtitle") then
+ if checkTableTree(ctx,"config","details","description") then
+ object:setText(string.format(txt,ctx.config.details.description))
+ end
+ elseif id:find("title") then
+ if checkTableTree(ctx,"config","details","title") then
+ object:setText(string.format(txt,ctx.config.details.title))
+ end
+ end
+ end
+ end
+ end
+ repalceContent(layout)
+end
+
+
local function main(ctx)
local base = basalt.createFrame()
:setTheme(ctx.theme)
:addLayout(fs.combine(sPage,"index.xml"))
- ---Saves the current proucts states into the file
- ---and loads them into the interface.
- local function updateProducts()
-
- end
-
local sCurPage = ""
parallel.waitForAny(
basalt.autoUpdate,
@@ -102,28 +257,7 @@
end
displayPage:addLayoutFromString(ctx.pages[sCurPage:lower()..".xml"])
- -- Go through layout and replace stuff with our content
- local function repalceContent(layout)
- for _,object in pairs(layout) do
- -- Is frame?
- if object.addLayout then
- local subLayout = object:getLastLayout()
- repalceContent(subLayout)
- -- Is something we are looking for?
- elseif object.setText then
- local id = object:getName()
- local txt = object:getValue()
- if id:find("subtitle") then
- object:setText(string.format(txt,ctx.config.details.description))
- elseif id:find("title") then
- object:setText(string.format(txt,ctx.config.details.title))
- end
- end
- end
- end
-
- local layout = displayPage:getLastLayout()
- repalceContent(layout)
+ insertData(displayPage,ctx)
end
-- Update products
@@ -155,4 +289,5 @@
end,function(err)
printError(err)
end)
-end
\ No newline at end of file
+end
+