Welcome, Guest |
You have to register before you can post on our site.
|
Latest Threads |
The QB64 IDE shell
Forum: Utilities
Last Post: JasonPag
09-16-2024, 05:37 PM
» Replies: 9
» Views: 762
|
Importance regarding Ches...
Forum: Utilities
Last Post: JasonPag
09-01-2024, 06:34 PM
» Replies: 0
» Views: 31
|
Chess and Analysis and En...
Forum: Utilities
Last Post: JasonPag
08-28-2024, 02:37 PM
» Replies: 0
» Views: 32
|
DAY 009:_PutImage
Forum: Keyword of the Day!
Last Post: grymmjack
09-02-2023, 02:57 PM
» Replies: 54
» Views: 2,033
|
Fall Banner Contest?
Forum: Site Suggestions
Last Post: grymmjack
08-31-2023, 11:50 PM
» Replies: 36
» Views: 1,261
|
ColorPicker - Function th...
Forum: Dav
Last Post: Dav
08-31-2023, 11:04 PM
» Replies: 3
» Views: 315
|
Goals(1) = New Tile()
Forum: Works in Progress
Last Post: RhoSigma
08-31-2023, 09:45 PM
» Replies: 3
» Views: 127
|
micro(A)v11
Forum: QBJS, BAM, and Other BASICs
Last Post: bplus
08-31-2023, 09:14 PM
» Replies: 90
» Views: 3,589
|
Updating The Single Most ...
Forum: QBJS, BAM, and Other BASICs
Last Post: bplus
08-31-2023, 09:13 PM
» Replies: 7
» Views: 254
|
QBJS Image Question
Forum: QBJS, BAM, and Other BASICs
Last Post: bplus
08-31-2023, 05:49 PM
» Replies: 5
» Views: 155
|
|
|
Ken's Artillery 2 |
Posted by: SierraKen - 04-30-2022, 11:46 PM - Forum: Programs
- Replies (20)
|
|
This game was originally a very old early 80's (or so) DOS or Apple game. Microsoft used it to adapt it to their own QBasic game called Gorilla, throwing bananas instead of launching cannonballs. Today I added some features to my own version I made a couple years ago. The object of the game is to beat the computer by hitting its cannon 5 times in any level. Each level has a different sized mountain and color. If you hit him 5 times you advance to the next level. There is no ending to the game and after each level your score goes back to 0 but your Level does add up. To play, you type in a power of the cannonball and the angle. The wind also changes per turn so keep an eye on that to adjust your power and angle. B+ helped me on my original one with the math part of it so I have his name in the title as well. There's no added files. The computer has a small A.I. being almost as smart as you are in your turns (sorta), but don't ask me how I made it because I don't remember LOL.
Code: (Select All) 'I've always wanted to make this game ever since I started programming in the 80's.
'This was created by Ken G. with much help from others below.
'Thank you to B+ for much of the math code.
'It takes the computer a little time to learn how to hit your base.
'Created on June 26, 2019.
'Version 2 made on April 30, 2022.
'Added: Levels, random colored mountains, and better looking cannons.
_Title "Ken's Artillery 2"
_Limit 200
Cls
Screen _NewImage(1200, 700, 32)
Print " Ken's Artillery 2"
Print: Print: Print
Print " By SierraKen with math help from B+."
Print: Print: Print
Print " Instructions: You play against the computer by shooting a cannonball"
Print " from your cannon at your base on the left side of the screen"
Print " to the computer's base on the right side of the screen."
Print " To do this, you type a power number between 0 and 80 and press Enter."
Print " Then you type an angle that the cannonball will travel at,"
Print " between 0 and 90 and press Enter."
Print " You get a point every time you hit the other base."
Print " If you hit the enemy 5 times you advance to the next mountain."
Print " If the enemy hits you 5 times in one mountain, you lose."
Print " Watch the wind speed indicator up on top to see the direction and"
Print " speed of the wind, which makes a big difference on where your"
Print " cannonball will land. Also, there will be a random sized mountain"
Print " and color for every level and game."
Print: Print: Print
Input " Press Enter to begin.", start$
Cls
level = 1
start:
c = 0
mountain = 0
win = 0
compoints = 0
points = 0
ground = 590 'up is negative in direction
'Your Cannon
cbx = 10 ' cannon butt end x, y
cby = ground - 20
cmx = 50 ' cannon mouth end
cmy = ground - 70
'Computer's Cannon
cbx2 = 1190
cby2 = cby
cmx2 = 1150
cmy2 = cmy
g = .15 ' with air resistance
Randomize Timer
air = Int(Rnd * 20)
air2 = air / 1000
Randomize Timer
air3 = Int(Rnd * 100)
If air3 > 50 Then air2 = -air2
airX = air2
Color , _RGB32(156, 210, 237)
Cls
'Bases
Line (cbx, ground)-(cbx + 100, ground - 20), _RGB32(4, 4, 4), BF
Line (cbx2, ground)-(cbx2 - 100, ground - 20), _RGB32(4, 4, 4), BF
'Mountain
Randomize Timer
sz = Int(Rnd * 300) + 100
circx = 595
cl1 = Int(Rnd * 55) + 50
cl2 = Int(Rnd * 55) + 50
cl3 = Int(Rnd * 55) + 50
Line (0, ground)-(1200, 700), _RGB32(cl1, cl2, cl3), BF 'ground
Circle (circx, ground), sz, _RGB32(cl1, cl2, cl3)
Paint (circx, ground - 2), _RGB32(cl1, cl2, cl3)
again:
Color _RGB(0, 0, 0)
Locate 10, 136: Print " "
Locate 10, 2: Print "Your Turn "
Randomize Timer
air = Int(Rnd * 20)
air2 = air / 1000
Randomize Timer
air3 = Int(Rnd * 100)
If air3 > 50 Then air2 = -air2
airX = air2
airx2 = airX * 1000
If airx2 < -1 Then winddir$ = "West"
If airx2 > 1 Then winddir$ = "East"
If airx2 > -1 And airx2 < 1 Then winddir$ = "Sunny"
If airx2 < 0 Then airx2 = airx2 * -1
GoSub Wind:
Color _RGB(0, 0, 0)
Locate 5, 1: Input "Type Power (0-80):>>> ", vel
Locate 6, 1: Input "Type Angle (0-90):>>> ", a
Locate 5, 1: Print " "
Locate 6, 1: Print " "
going:
If a > 90 Then a = 90
If a < 0 Then a = 0
If vel < 0 Then vel = 0
If vel > 80 Then vel = 80
vel = Int(vel / 4)
a = 360 - a
ca = _D2R(a)
cmx = cbx + (100 * Cos(_D2R(a)))
cmy = cby + (100 * Sin(_D2R(a)))
'initialize
bx = cmx 'ball x, y same as cannon mouth at start of shot
by = cmy
dx = vel * Cos(ca) 'start at cannon mouth
dy = vel * Sin(ca)
'shot
Do
_Limit 200
GoSub Wind:
a$ = InKey$
If a$ = Chr$(27) Then End
Circle (bx, by), 5, _RGB32(0, 0, 0)
Paint (bx, by), _RGB32(0, 0, 0), _RGB32(0, 0, 0)
For ccc = 0 To 7 Step .1
Line (cbx, cby)-(cmx + ccc, cmy), _RGB32(150, 50, 0) 'cannon line
Next ccc
oldbx = bx: oldby = by
dx = dx + airX
dy = dy + g
bx = bx + dx
by = by + dy
_Display
_Limit 30
Circle (oldbx, oldby), 5, _RGB(156, 210, 237)
Paint (oldbx, oldby), _RGB(156, 210, 237)
If Point(bx, by) = _RGB32(cl1, cl2, cl3) Then
mountain = 1
For explosion = 0 To 20 Step .5
Circle (bx, by), explosion, _RGB32(156, 210, 237)
Sound 100 + explosion, .25
Next explosion
End If
If bx > cbx2 - 120 And bx < cbx2 + 20 And by >= ground - 2 Then
points = points + 1
win = 0
Locate 3, 64: Print "You: "; points; " Computer: "; compoints
For explosion = 0 To 20 Step .5
Circle (bx, by), explosion, _RGB32(156, 210, 237)
Sound 100 + explosion, .25
Next explosion
For sndd = 500 To 700 Step 50
Sound sndd, 1
Next sndd
mountain = 1
If points = 5 And win = 0 Then win = 1: level = level + 1: GoTo start:
End If
Loop Until mountain = 1 Or by > 700
For ccc = 0 To 7 Step .1
Line (cbx, cby)-(cmx + ccc, cmy), _RGB32(156, 210, 237) 'delete cannon line
Next ccc
mountain = 0
'The Computer's Turn
comp:
Color _RGB(0, 0, 0)
Locate 10, 2: Print " "
Locate 10, 137: Print "Computer Turn"
GoSub Wind:
'Computer learns as it goes but is not perfect, like a human. ;-)
If c = 0 Then GoTo compstuff:
oldvel2 = vel2
compstuff:
Randomize Timer
vel2 = Int(Rnd * 35) + 30
a2 = a
vel2 = Int(vel2 / 4)
If c = 0 Then GoTo nex:
'Last shot was too far away.
If oldbx2 < cbx Then
vel2 = oldvel2 - 1
If vel2 < 8 Then vel2 = 8
End If
'Last shot wasn't far enough.
If oldbx2 > cbx Then
vel2 = oldvel2 + 1
If vel2 > 15 Then vel2 = 15
End If
nex:
c = 1
ca2 = _D2R(a2)
cmx2 = cbx2 - (100 * Cos(_D2R(a2)))
cmy2 = cby2 + (100 * Sin(_D2R(a2)))
'initialize
bx2 = cmx2 'ball x, y same as cannon mouth at start of shot
by2 = cmy2
dx2 = vel2 * Cos(ca2) 'start at cannon mouth
dy2 = vel2 * Sin(ca2)
'shot
Do
_Limit 200
a$ = InKey$
If a$ = Chr$(27) Then End
Circle (bx2, by2), 5, _RGB32(0, 0, 0)
Paint (bx2, by2), _RGB32(0, 0, 0), _RGB32(0, 0, 0)
For ccc = 0 To 7 Step .1
Line (cbx2, cby2)-(cmx2 - ccc, cmy2), _RGB32(150, 50, 0) 'cannon line
Next ccc
oldbx2 = bx2: oldby2 = by2
dx2 = dx2 + airX
dy2 = dy2 + g
bx2 = bx2 - dx2
by2 = by2 + dy2
_Display
_Limit 30
Circle (oldbx2, oldby2), 5, _RGB(156, 210, 237)
Paint (oldbx2, oldby2), _RGB(156, 210, 237)
If Point(bx2, by2) = _RGB32(cl1, cl2, cl3) Then
mountain = 1
For explosion = 0 To 20 Step .5
Circle (bx2, by2), explosion, _RGB32(156, 210, 237)
Sound 100 + explosion, .25
Next explosion
End If
If bx2 > cbx - 20 And bx2 < cbx + 120 And by2 >= ground Then
compoints = compoints + 1
Locate 3, 64: Print "You: "; points; " Computer: "; compoints
For explosion = 0 To 20 Step .5
Circle (bx2, by2), explosion, _RGB32(156, 210, 237)
Sound 100 + explosion, .25
Next explosion
For sndd = 500 To 700 Step 50
Sound sndd, 1
Next sndd
mountain = 1
If compoints = 5 Then Color _RGB(0, 0, 0): Locate 20, 65: Print "COMPUTER WINS!": GoTo asking:
End If
Loop Until mountain = 1 Or by2 > 700
For ccc = 0 To 7 Step .1
Line (cbx2, cby2)-(cmx2 - ccc, cmy2), _RGB32(156, 210, 237) 'delete cannon line
Next ccc
mountain = 0
GoTo again:
'This code is used in a few different places in the program.
Wind:
Color _RGB(0, 0, 0)
Locate 1, 73: Print "Wind"
If winddir$ = "West" Then
Locate 2, 82: Print " "
Locate 2, 59: Print airx2; " mph "
End If
If winddir$ = "East" Then
Locate 2, 59: Print " "
Locate 2, 82: Print airx2; " mph "
End If
Locate 2, 68: Print "West <-> East"
Locate 3, 64: Print "You: "; points; " Computer: "; compoints
Locate 4, 71: Print "Level: "; level
Return
asking:
Locate 22, 65: Input "Again? (Yes/No):", ag$
If ag$ = "y" Or ag$ = "Y" Or ag$ = "yes" Or ag$ = "Yes" Or ag$ = "YES" Or ag$ = "yES" Or ag$ = "yeS" Then points = 0: GoTo start:
End
|
|
|
Fontmonkey |
Posted by: James D Jarvis - 04-30-2022, 03:01 PM - Forum: Works in Progress
- No Replies
|
|
Here's Fontmokey version 0e.e1
I've been fiddling with this for a while now. It's really... really crude but functional. I've already used it to create fonts for other programs that actually function.
This scans and encodes a true type font and reproduces it with characters 1 to 255. Saving it out as a what I'm calling a dash font with extension .qdf.
It doesn't just re-encode a bitmap font from one format to another it also has the ability to edit each of the characters (with a terrible but functional editor).
There's even a help function built into the main program and the character editor. Because...it really needs it.
you are going to want to take this and save it in a file called timmy.qdf (unless you want to edit the program to get around that which is what I did before I had a dash font).
Code: (Select All) "' ***************************************************"
"' timmy"
"' ***************************************************"
"' This Dash Font was wrtitten in QB64"
"' yup.... can't do much with it otherwise"
"H 16W 17B 16BB 16BB 16BB 16BB 16BB 8F 4B 4BB 6F 2B 4F 2B 2BB 5F 1B 8F 1B 1BB 5F 1B 8F 1B 1BB 4F 1B 2F 2B 2F 2B 2F 1BB 4F 1B 2F 2B 2F 2B 2F 1BB 4F 1B 10F 1BB 4F 1B 10F 1BB 5F 1B 1F 1B 4F 1B 1F 1B 1BB 5F 1B 2F 4B 2F 1B 1BB 6F 2B 4F 2B 2BB 8F 4B 4"
"H 16W 17B 16BB 16BB 16BB 16BB 16BB 8F 4B 4BB 6F 8B 2BB 5F 10B 1BB 5F 10B 1BB 4F 3B 2F 2B 2F 3BB 4F 3B 2F 2B 2F 3BB 4F 12BB 4F 12BB 5F 2B 1F 4B 1F 2B 1BB 5F 3B 4F 3B 1BB 6F 8B 2BB 8F 4B 4"
"H 11W 16B 11BB 11BB 11BB 11BB 1F 3B 3F 3B 1BF 5B 1F 5BF 11BF 11BB 1F 9B 1BB 1F 9B 1BB 2F 7B 2BB 3F 5B 3BB 4F 3B 4BB 4F 3B 4BB 5F 1B 5BB 5F 1B 5"
"H 9W 17B 9BB 9BB 9BB 9BB 4F 1B 4BB 4F 1B 4BB 3F 3B 3BB 2F 5B 2BB 2F 5B 2BB 1F 7B 1BF 9BB 1F 7B 1BB 2F 5B 2BB 2F 5B 2BB 3F 3B 3BB 4F 1B 4BB 4F 1B 4"
"H 14W 16B 14BB 14BB 14BB 14BB 6F 3B 5BB 4F 7B 3BB 4F 7B 3BB 4F 7B 3BB 2F 2B 1F 5B 1F 2B 1BB 1F 13BB 1F 13BB 1F 7B 1F 5BB 2F 3B 2F 1B 2F 3B 1BB 6F 3B 5BB 5F 5B 4BB 3F 9B 2"
"H 9W 16B 9BB 9BB 9BB 9BB 4F 1B 4BB 4F 1B 4BB 3F 3B 3BB 2F 5B 2BB 1F 7B 1BF 9BF 9BF 9BB 1F 4B 1F 2B 1BB 4F 1B 4BB 3F 3B 3BB 1F 7B 1"
"H 6W 12B 6BB 6BB 6BB 6BB 6BB 6BB 6BB 2F 3B 1BB 1F 5BB 1F 5BB 1F 5BB 2F 3B 1"
"H 11W 16B 11BB 11BB 11BB 11BB 11BB 11BB 1F 10BB 1F 10BB 1F 3B 4F 3BB 1F 2B 6F 2BB 1F 2B 6F 2BB 1F 2B 6F 2BB 1F 2B 6F 2BB 1F 3B 4F 3BB 1F 10BB 1F 10"
"H 11W 15B 11BB 11BB 11BB 11BB 11BB 11BB 5F 3B 3BB 3F 2B 3F 2B 1BB 2F 2B 5F 2BB 2F 1B 7F 1BB 2F 1B 7F 1BB 2F 1B 7F 1BB 2F 2B 5F 2BB 3F 2B 3F 2B 1BB 5F 3B 3"
"H 11W 16B 11BB 11BB 11BB 11BB 11BF 11BF 3B 5F 3BF 2B 2F 3B 2F 2BF 1B 2F 5B 2F 1BF 1B 1F 7B 1F 1BF 1B 1F 7B 1F 1BF 1B 1F 7B 1F 1BF 1B 2F 5B 2F 1BF 2B 2F 3B 2F 2BF 3B 5F 3BF 11"
"H 13W 18B 10F 2B 1BB 8F 4B 1BB 6F 2B 1F 3B 1BB 5F 1B 3F 1B 1F 1B 1BB 9F 1B 2F 1BB 8F 1B 3F 1BB 8F 1B 3F 1BB 7F 2B 4BB 4F 4B 5BB 2F 2B 4F 1B 4BB 2F 1B 6F 1B 3BB 1F 1B 8F 1B 2BB 1F 1B 8F 1B 2BB 1F 1B 8F 1B 2BB 1F 1B 8F 1B 2BB 2F 1B 6F 1B 3BB 2F 2B 4F 2B 3BB 4F 4B 5"
"H 13W 20B 13BB 5F 4B 4BB 3F 2B 4F 2B 2BB 3F 1B 6F 1B 2BB 2F 1B 8F 1B 1BB 2F 1B 8F 1B 1BB 2F 1B 8F 1B 1BB 2F 1B 8F 1B 1BB 3F 1B 6F 1B 2BB 3F 2B 4F 2B 2BB 5F 5B 3BB 7F 1B 5BB 7F 1B 5BB 7F 1B 5BB 7F 1B 5BB 2F 11BB 7F 1B 5BB 7F 1B 5BB 7F 1B 5BB 7F 1B 5"
"H 10W 16B 10BB 10BB 10BB 5F 4B 1BB 5F 5BB 5F 1B 2F 2BB 5F 1B 3F 1BB 5F 1B 4BB 5F 1B 4BB 5F 1B 4BB 5F 1B 4BB 2F 4B 4BB 1F 5B 4BB 1F 5B 4BB 1F 5B 4BB 2F 3B 5"
"H 13W 17B 13BB 13BB 11F 2BB 7F 6BB 5F 6B 1F 1BB 5F 3B 4F 1BB 5F 1B 6F 1BB 5F 1B 6F 1BB 5F 1B 6F 1BB 5F 1B 6F 1BB 5F 1B 3F 4BB 5F 1B 2F 5BB 2F 4B 2F 5BB 1F 5B 2F 5BB 1F 5B 3F 3B 1BB 1F 5B 7BB 2F 3B 8"
"H 19W 18B 9F 1B 9BB 9F 1B 9BB 3F 1B 5F 1B 5F 1B 3BB 4F 1B 2F 5B 2F 1B 4BB 5F 2B 5F 2B 5BB 5F 1B 7F 1B 5BB 4F 1B 9F 1B 4BB 4F 1B 9F 1B 4BF 5B 9F 5BB 4F 1B 9F 1B 4BB 4F 1B 9F 1B 4BB 5F 1B 7F 1B 5BB 5F 2B 5F 2B 5BB 4F 1B 2F 5B 2F 1B 4BB 3F 1B 5F 1B 5F 1B 3BB 9F 1B 9BB 9F 1B 9BB 9F 1B 9"
"H 17W 16B 17BB 3F 1B 13BB 3F 3B 11BB 3F 5B 9BB 3F 7B 7BB 3F 8B 6BB 3F 10B 4BB 3F 12B 2BB 3F 14BB 3F 12B 2BB 3F 10B 4BB 3F 8B 6BB 3F 7B 7BB 3F 5B 9BB 3F 3B 11BB 3F 1B 13"
"H 17W 16B 17BB 16F 1BB 14F 3BB 12F 5BB 10F 7BB 9F 8BB 7F 10BB 5F 12BB 3F 14BB 5F 12BB 7F 10BB 9F 8BB 10F 7BB 12F 5BB 14F 3BB 16F 1"
"H 8W 20B 8BB 8BB 8BB 4F 1B 3BB 3F 3B 2BB 3F 3B 2BB 2F 1B 1F 1B 1F 1B 1BB 1F 1B 2F 1B 2F 1BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 1F 1B 2F 1B 2F 1BB 2F 1B 1F 1B 1F 1B 1BB 3F 3B 2BB 3F 3B 2"
"H 9W 16B 9BB 9BB 9BB 2F 2B 3F 2BB 2F 2B 3F 2BB 2F 2B 3F 2BB 2F 2B 3F 2BB 2F 2B 3F 2BB 2F 1B 4F 1B 1BB 2F 1B 4F 1B 1BB 2F 1B 4F 1B 1BB 2F 1B 4F 1B 1BB 9BB 9BB 2F 2B 3F 2BB 2F 2B 3F 2"
"H 9W 20B 9BB 9BB 9BB 2F 7BB 1F 4B 2F 1B 1BF 5B 2F 1B 1BF 5B 2F 1B 1BF 5B 2F 1B 1BB 1F 4B 2F 1B 1BB 2F 3B 2F 1B 1BB 4F 1B 2F 1B 1BB 4F 1B 2F 1B 1BB 4F 1B 2F 1B 1BB 4F 1B 2F 1B 1BB 4F 1B 2F 1B 1BB 4F 1B 2F 1B 1BB 4F 1B 2F 1B 1BB 4F 1B 2F 1B 1BB 4F 1B 2F 1B 1BB 4F 1B 2F 1B 1"
"H 8W 20B 8BB 8BB 8BB 3F 4B 1BB 2F 1B 3F 2BB 2F 1B 3F 2BB 2F 2B 4BB 3F 2B 3BB 2F 4B 2BB 1F 1B 3F 2B 1BB 1F 1B 4F 2BB 1F 1B 5F 1BB 1F 2B 4F 1BB 2F 2B 2F 1B 1BB 3F 3B 2BB 4F 2B 2BB 5F 2B 1BB 1F 2B 3F 1B 1BB 1F 2B 3F 1B 1BB 2F 4B 2"
"H 20W 13B 20BB 20BB 20BB 20BB 20BB 20BB 20BB 20BB 20BF 20BF 20BF 20BF 20"
"H 8W 20B 8BB 8BB 8BB 4F 1B 3BB 3F 3B 2BB 3F 3B 2BB 2F 1B 1F 1B 1F 1B 1BB 1F 1B 2F 1B 2F 1BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 1F 1B 2F 1B 2F 1BB 2F 1B 1F 1B 1F 1B 1BB 3F 3B 2BB 3F 3B 2"
"H 8W 20B 8BB 8BB 8BB 4F 1B 3BB 3F 3B 2BB 3F 3B 2BB 2F 1B 1F 1B 1F 1B 1BB 1F 1B 2F 1B 2F 1BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3"
"H 8W 20B 8BB 8BB 8BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 4F 1B 3BB 1F 1B 2F 1B 2F 1BB 2F 1B 1F 1B 1F 1B 1BB 3F 3B 2BB 3F 3B 2BB 4F 1B 3"
"H 19W 14B 19BB 19BB 19BB 19BB 19BB 19BB 19BB 14F 1B 4BB 15F 1B 3BB 16F 2B 1BB 1F 18BB 16F 2B 1BB 15F 1B 3BB 14F 1B 4"
"H 19W 14B 19BB 19BB 19BB 19BB 19BB 19BB 19BB 5F 1B 13BB 4F 1B 14BB 2F 2B 15BB 1F 18BB 2F 2B 15BB 4F 1B 14BB 5F 1B 13"
"H 16W 16B 16BB 16BB 16BB 16BB 3F 1B 12BB 3F 1B 12BB 3F 1B 12BB 3F 1B 12BB 3F 1B 12BB 3F 1B 12BB 3F 1B 12BB 3F 1B 12BB 3F 1B 12BB 3F 1B 12BB 3F 1B 12BB 3F 13"
"H 19W 14B 19BB 19BB 19BB 19BB 19BB 19BB 19BB 5F 1B 8F 1B 4BB 4F 1B 10F 1B 3BB 2F 2B 12F 2B 1BB 1F 18BB 2F 2B 12F 2B 1BB 4F 1B 10F 1B 3BB 5F 1B 8F 1B 4"
"H 18W 16B 18BB 18BB 10F 1B 7BB 10F 1B 7BB 9F 3B 6BB 9F 3B 6BB 8F 5B 5BB 8F 5B 5BB 7F 7B 4BB 6F 9B 3BB 6F 9B 3BB 5F 11B 2BB 5F 11B 2BB 4F 13B 1BB 4F 13B 1BB 3F 15"
"H 18W 16B 18BB 18BB 3F 15BB 4F 13B 1BB 4F 13B 1BB 5F 11B 2BB 5F 11B 2BB 6F 9B 3BB 6F 9B 3BB 7F 7B 4BB 8F 5B 5BB 8F 5B 5BB 9F 3B 6BB 9F 3B 6BB 10F 1B 7BB 10F 1B 7"
"H1W 13B 13"
"H 4W 16B 4BB 4BB 4BB 2F 2BB 2F 2BB 2F 2BB 2F 2BB 2F 2BB 2F 1B 1BB 2F 1B 1BB 2F 1B 1BB 2F 1B 1BB 4BB 4BB 2F 2BB 2F 2"
"H 7W 9B 7BB 7BB 7BB 1F 2B 2F 2BB 1F 2B 2F 2BB 1F 2B 2F 2BB 1F 2B 2F 2BB 1F 1B 3F 1B 1BB 1F 1B 3F 1B 1"
"H 10W 16B 10BB 10BB 4F 1B 3F 1B 1BB 4F 1B 3F 1B 1BB 3F 1B 3F 1B 2BB 3F 1B 3F 1B 2BB 3F 1B 3F 1B 2BF 10BB 3F 1B 3F 1B 2BB 2F 1B 3F 1B 3BB 2F 1B 3F 1B 3BF 10BB 2F 1B 3F 1B 3BB 2F 1B 3F 1B 3BB 1F 1B 3F 1B 4BB 1F 1B 3F 1B 4"
"H 9W 17B 9BB 9BB 4F 1B 4BB 2F 5B 2BB 1F 2B 1F 1B 1F 2B 1BB 1F 2B 1F 1B 2F 1B 1BB 1F 2B 1F 1B 2F 1B 1BB 1F 4B 4BB 2F 3B 4BB 4F 3B 2BB 4F 4B 1BB 4F 1B 2F 2BB 1F 1B 2F 1B 2F 2BB 1F 1B 2F 1B 2F 2BB 1F 2B 1F 1B 1F 2B 1BB 2F 5B 2BB 4F 1B 4"
"H 16W 16B 16BB 16BB 16BB 1F 4B 7F 1B 3BF 2B 2F 2B 5F 1B 4BF 2B 2F 2B 4F 1B 5BF 2B 2F 2B 4F 1B 5BF 2B 2F 2B 3F 1B 6BF 2B 2F 2B 2F 1B 7BB 1F 4B 2F 1B 3F 4B 1BB 7F 1B 2F 2B 2F 2BB 6F 1B 3F 2B 2F 2BB 5F 1B 4F 2B 2F 2BB 4F 1B 5F 2B 2F 2BB 3F 1B 6F 2B 2F 2BB 3F 1B 7F 4B 1"
"H 15W 16B 15BB 15BB 15BB 5F 4B 6BB 4F 2B 3F 1B 5BB 4F 2B 3F 1B 5BB 4F 2B 3F 1B 5BB 4F 2B 2F 1B 6BB 5F 3B 2F 4B 1BB 4F 4B 3F 1B 3BB 2F 2B 2F 2B 3F 1B 3BB 2F 1B 4F 2B 1F 1B 4BB 1F 2B 4F 3B 5BB 1F 2B 5F 3B 3F 1BB 1F 3B 3F 1B 1F 5B 1BB 2F 5B 3F 3B 2"
"H 3W 9B 3BB 3BB 3BB 1F 2BB 1F 2BB 1F 2BB 1F 2BB 1F 1B 1BB 1F 1B 1"
"H 6W 20B 6BB 6BB 5F 1BB 4F 1B 1BB 3F 1B 2BB 2F 2B 2BB 2F 2B 2BB 2F 1B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 2F 1B 3BB 2F 2B 2BB 2F 2B 2BB 3F 2B 1BB 4F 1B 1BB 5F 1"
"H 6W 20B 6BB 6BB 1F 1B 4BB 2F 1B 3BB 3F 1B 2BB 3F 2B 1BB 3F 2B 1BB 4F 1B 1BB 4F 2BB 4F 2BB 4F 2BB 4F 2BB 4F 2BB 4F 2BB 4F 1B 1BB 3F 2B 1BB 3F 2B 1BB 3F 1B 2BB 2F 1B 3BB 1F 1B 4"
"H 8W 11B 8BB 8BB 4F 1B 3BB 4F 1B 3BB 1F 2B 1F 1B 1F 2BB 1F 2B 1F 1B 1F 2BB 3F 3B 2BB 1F 2B 1F 1B 1F 2BB 1F 2B 1F 1B 1F 2BB 4F 1B 3BB 4F 1B 3"
"H 11W 15B 11BB 11BB 11BB 11BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BF 11BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5"
"H 4W 19B 4BB 4BB 4BB 4BB 4BB 4BB 4BB 4BB 4BB 4BB 4BB 4BB 4BB 4BB 1F 2B 1BB 1F 3BB 3F 1BB 2F 1B 1BB 1F 1B 2"
"H 6W 12B 6BB 6BB 6BB 6BB 6BB 6BB 6BB 6BB 6BB 6BB 1F 5BB 1F 5"
"H 3W 16B 3BB 3BB 3BB 3BB 3BB 3BB 3BB 3BB 3BB 3BB 3BB 3BB 3BB 3BB 1F 2BB 1F 2"
"H 6W 16B 6BB 6BB 5F 1BB 4F 1B 1BB 4F 1B 1BB 4F 1B 1BB 3F 1B 2BB 3F 1B 2BB 3F 1B 2BB 2F 1B 3BB 2F 1B 3BB 2F 1B 3BB 1F 1B 4BB 1F 1B 4BB 1F 1B 4BF 1B 5"
"H 9W 16B 9BB 9BB 9BB 3F 4B 2BB 2F 2B 2F 2B 1BB 2F 1B 4F 1B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 1B 4F 1B 1BB 2F 2B 2F 2B 1BB 3F 4B 2"
"H 8W 16B 8BB 8BB 8BB 4F 2B 2BB 2F 4B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 2F 6"
"H 9W 16B 9BB 9BB 9BB 3F 3B 3BB 2F 6B 1BB 1F 1B 3F 3B 1BB 1F 1B 4F 2B 1BB 6F 2B 1BB 6F 1B 2BB 5F 2B 2BB 5F 1B 3BB 4F 1B 4BB 3F 1B 5BB 2F 1B 5F 1BB 2F 7BB 1F 7B 1"
"H 8W 16B 8BB 8BB 8BB 3F 4B 1BB 1F 2B 3F 2BB 1F 1B 4F 2BB 6F 2BB 6F 1B 1BB 4F 2B 2BB 3F 4B 1BB 5F 3BB 6F 2BB 6F 2BB 6F 2BB 1F 2B 2F 2B 1BB 1F 5B 2"
"H 9W 16B 9BB 9BB 9BB 5F 2B 2BB 5F 2B 2BB 4F 3B 2BB 3F 1B 1F 2B 2BB 3F 1B 1F 2B 2BB 2F 1B 2F 2B 2BB 1F 1B 3F 2B 2BB 1F 1B 3F 2B 2BF 1B 4F 2B 2BF 9BB 5F 2B 2BB 5F 2B 2BB 5F 2B 2"
"H 8W 16B 8BB 8BB 8BB 3F 5BB 3F 5BB 3F 1B 4BB 2F 3B 3BB 2F 5B 1BB 4F 3B 1BB 6F 2BB 6F 2BB 7F 1BB 7F 1BB 6F 1B 1BB 1F 2B 3F 1B 1BB 1F 5B 2"
"H 9W 16B 9BB 9BB 9BB 6F 3BB 4F 3B 2BB 3F 2B 4BB 2F 2B 5BB 2F 2B 5BB 1F 2B 1F 3B 2BB 1F 3B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 1B 4F 2BB 2F 2B 2F 2B 1BB 3F 4B 2"
"H 10W 16B 10BB 10BB 10BB 2F 8BB 2F 7B 1BB 1F 1B 6F 1B 1BB 7F 1B 2BB 7F 1B 2BB 7F 1B 2BB 6F 1B 3BB 6F 1B 3BB 6F 1B 3BB 5F 1B 4BB 5F 1B 4BB 5F 1B 4BB 4F 1B 5"
"H 9W 16B 9BB 9BB 9BB 3F 4B 2BB 2F 2B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 2B 2F 2B 1BB 3F 2B 1F 1B 2BB 4F 2B 3BB 2F 2B 1F 3B 1BB 1F 2B 3F 3BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 2B 2F 2B 1BB 3F 4B 2"
"H 9W 16B 9BB 9BB 9BB 3F 4B 2BB 2F 2B 2F 2B 1BB 1F 2B 4F 1B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 2B 3F 2BB 3F 6BB 6F 2B 1BB 6F 2B 1BB 5F 2B 2BB 3F 3B 3BB 1F 3B 5"
"H 4W 16B 4BB 4BB 4BB 4BB 4BB 4BB 4BB 2F 2BB 2F 2BB 4BB 4BB 4BB 4BB 4BB 2F 2BB 2F 2"
"H 4W 19B 4BB 4BB 4BB 4BB 4BB 4BB 4BB 1F 2B 1BB 1F 2B 1BB 4BB 4BB 4BB 4BB 4BB 1F 2B 1BB 1F 3BB 3F 1BB 2F 1B 1BB 1F 1B 2"
"H 11W 14B 11BB 11BB 11BB 11BB 11BB 10F 1BB 7F 3B 1BB 4F 3B 4BB 1F 3B 7BF 1B 10BB 1F 3B 7BB 4F 3B 4BB 7F 3B 1BB 10F 1"
"H 11W 11B 11BB 11BB 11BB 11BB 11BB 11BB 11BF 11BB 11BB 11BF 11"
"H 11W 14B 11BB 11BB 11BB 11BB 11BF 1B 10BB 1F 3B 7BB 4F 3B 4BB 7F 3B 1BB 10F 1BB 7F 3B 1BB 4F 3B 4BB 1F 3B 7BF 1B 10"
"H 8W 16B 8BB 8BB 8BB 2F 5B 1BB 1F 2B 2F 3BB 1F 2B 3F 2BB 1F 2B 3F 2BB 6F 2BB 5F 2B 1BB 5F 1B 2BB 4F 1B 3BB 3F 1B 4BB 3F 1B 4BB 8BB 3F 2B 3BB 3F 2B 3"
"H 18W 20B 18BB 18BB 7F 6B 5BB 5F 2B 6F 2B 3BB 4F 2B 8F 2B 2BB 3F 1B 11F 1B 2BB 2F 2B 4F 3B 2F 1B 2F 1B 1BB 2F 1B 4F 2B 2F 3B 2F 1B 1BB 2F 1B 3F 2B 4F 2B 2F 1B 1BB 1F 1B 3F 3B 4F 1B 3F 1B 1BB 1F 1B 3F 2B 5F 1B 3F 1B 1BB 1F 1B 2F 2B 5F 2B 3F 1B 1BB 1F 1B 2F 2B 4F 2B 3F 1B 2BB 1F 1B 2F 2B 4F 2B 3F 1B 2BB 1F 1B 2F 2B 2F 4B 2F 1B 3BB 2F 1B 2F 3B 2F 4B 3F 1BB 2F 1B 13F 1B 1BB 3F 1B 11F 1B 2BB 3F 2B 9F 1B 3BB 5F 2B 6F 1B 4"
"H 14W 16B 14BB 14BB 14BB 7F 1B 6BB 6F 2B 6BB 6F 3B 5BB 5F 1B 1F 2B 5BB 5F 1B 2F 2B 4BB 4F 1B 3F 2B 4BB 4F 1B 3F 2B 4BB 3F 1B 5F 2B 3BB 3F 8B 3BB 2F 1B 7F 2B 2BB 2F 1B 7F 2B 2BB 1F 2B 8F 2B 1BF 4B 5F 5"
"H 12W 16B 12BB 12BB 12BF 9B 3BB 2F 2B 4F 2B 2BB 2F 2B 5F 2B 1BB 2F 2B 5F 2B 1BB 2F 2B 5F 2B 1BB 2F 2B 4F 2B 2BB 2F 7B 3BB 2F 2B 4F 3B 1BB 2F 2B 6F 2BB 2F 2B 6F 2BB 2F 2B 6F 2BB 2F 2B 5F 2B 1BF 10B 2"
"H 12W 16B 12BB 12BB 12BB 5F 4B 2F 1BB 3F 2B 4F 3BB 2F 2B 6F 2BB 2F 2B 7F 1BB 1F 2B 8F 1BB 1F 2B 9BB 1F 2B 9BB 1F 2B 9BB 1F 2B 9BB 2F 1B 9BB 2F 2B 7F 1BB 3F 2B 5F 1B 1BB 4F 6B 2"
"H 13W 16B 13BB 13BB 13BF 9B 4BB 2F 2B 4F 3B 2BB 2F 2B 6F 2B 1BB 2F 2B 6F 2B 1BB 2F 2B 7F 2BB 2F 2B 7F 2BB 2F 2B 7F 2BB 2F 2B 7F 2BB 2F 2B 7F 2BB 2F 2B 6F 2B 1BB 2F 2B 6F 2B 1BB 2F 2B 4F 3B 2BF 9B 4"
"H 12W 16B 12BB 12BB 12BF 11B 1BB 2F 2B 6F 1B 1BB 2F 2B 6F 1B 1BB 2F 2B 8BB 2F 2B 4F 1B 3BB 2F 2B 4F 1B 3BB 2F 7B 3BB 2F 2B 4F 1B 3BB 2F 2B 4F 1B 3BB 2F 2B 8BB 2F 2B 7F 1BB 2F 2B 6F 1B 1BF 11B 1"
"H 11W 16B 11BB 11BB 11BF 11BB 2F 2B 6F 1BB 2F 2B 6F 1BB 2F 2B 7BB 2F 2B 4F 1B 2BB 2F 2B 4F 1B 2BB 2F 7B 2BB 2F 2B 4F 1B 2BB 2F 2B 4F 1B 2BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BF 6B 5"
"H 14W 16B 14BB 14BB 14BB 5F 5B 2F 1B 1BB 3F 3B 4F 3B 1BB 3F 1B 7F 2B 1BB 2F 2B 8F 1B 1BB 1F 2B 11BB 1F 2B 11BB 1F 2B 6F 5BB 1F 2B 8F 2B 1BB 1F 2B 8F 2B 1BB 2F 2B 7F 2B 1BB 2F 3B 6F 2B 1BB 3F 3B 5F 2B 1BB 5F 7B 2"
"H 14W 16B 14BB 14BB 14BF 6B 2F 6BB 2F 2B 6F 2B 2BB 2F 2B 6F 2B 2BB 2F 2B 6F 2B 2BB 2F 2B 6F 2B 2BB 2F 2B 6F 2B 2BB 2F 10B 2BB 2F 2B 6F 2B 2BB 2F 2B 6F 2B 2BB 2F 2B 6F 2B 2BB 2F 2B 6F 2B 2BB 2F 2B 6F 2B 2BF 6B 2F 6"
"H 6W 16B 6BB 6BB 6BF 6BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BF 6"
"H 8W 16B 8BB 8BB 8BB 2F 6BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BF 2B 2F 2B 2BF 3B 1F 1B 3BB 1F 3B 4"
"H 14W 16B 14BB 14BB 14BF 6B 2F 5B 1BB 2F 2B 5F 2B 3BB 2F 2B 4F 1B 5BB 2F 2B 3F 1B 6BB 2F 2B 2F 1B 7BB 2F 4B 8BB 2F 2B 1F 2B 7BB 2F 2B 2F 2B 6BB 2F 2B 3F 2B 5BB 2F 2B 4F 2B 4BB 2F 2B 5F 2B 3BB 2F 2B 6F 2B 2BF 6B 2F 6"
"H 11W 16B 11BB 11BB 11BF 6B 5BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 6F 1BB 2F 2B 6F 1BB 2F 2B 5F 1B 1BF 10B 1"
"H 17W 16B 17BB 17BB 17BF 4B 9F 4BB 2F 3B 7F 3B 2BB 2F 3B 7F 3B 2BB 2F 1B 1F 2B 5F 1B 1F 2B 2BB 2F 1B 1F 2B 5F 1B 1F 2B 2BB 2F 1B 2F 2B 4F 1B 1F 2B 2BB 2F 1B 2F 2B 3F 1B 2F 2B 2BB 2F 1B 2F 2B 3F 1B 2F 2B 2BB 2F 1B 3F 2B 2F 1B 2F 2B 2BB 2F 1B 3F 2B 1F 1B 3F 2B 2BB 2F 1B 4F 3B 3F 2B 2BB 2F 1B 4F 3B 3F 2B 2BF 5B 3F 1B 2F 6"
"H 15W 16B 15BB 15BB 15BF 4B 6F 5BB 2F 3B 7F 1B 2BB 3F 3B 6F 1B 2BB 3F 4B 5F 1B 2BB 3F 1B 1F 3B 4F 1B 2BB 3F 1B 2F 2B 4F 1B 2BB 3F 1B 3F 2B 3F 1B 2BB 3F 1B 4F 2B 2F 1B 2BB 3F 1B 4F 3B 1F 1B 2BB 3F 1B 5F 4B 2BB 3F 1B 6F 3B 2BB 3F 1B 7F 2B 2BB 1F 5B 6F 1B 2"
"H 13W 16B 13BB 13BB 13BB 5F 4B 4BB 3F 2B 4F 2B 2BB 2F 2B 6F 2B 1BB 2F 1B 8F 1B 1BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 2B 8F 2BB 2F 2B 7F 1B 1BB 2F 2B 6F 2B 1BB 3F 2B 4F 2B 2BB 5F 4B 4"
"H 10W 16B 10BB 10BB 10BF 8B 2BB 2F 2B 3F 2B 1BB 2F 2B 4F 2BB 2F 2B 4F 2BB 2F 2B 4F 2BB 2F 2B 4F 2BB 2F 2B 3F 2B 1BB 2F 6B 2BB 2F 2B 6BB 2F 2B 6BB 2F 2B 6BB 2F 2B 6BF 6B 4"
"H 13W 20B 13BB 13BB 13BB 5F 4B 4BB 3F 2B 4F 2B 2BB 2F 2B 6F 2B 1BB 2F 1B 7F 2B 1BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 3B 7F 1B 1BB 2F 2B 6F 2B 1BB 3F 2B 4F 2B 2BB 4F 5B 4BB 5F 3B 5BB 7F 2B 4BB 8F 3B 2BB 10F 3"
"H 13W 16B 13BB 13BB 13BF 8B 5BB 2F 2B 3F 2B 4BB 2F 2B 4F 2B 3BB 2F 2B 4F 2B 3BB 2F 2B 4F 2B 3BB 2F 2B 3F 2B 4BB 2F 6B 5BB 2F 2B 2F 2B 5BB 2F 2B 3F 2B 4BB 2F 2B 3F 2B 4BB 2F 2B 4F 2B 3BB 2F 2B 5F 2B 2BF 6B 4F 3"
"H 10W 16B 10BB 10BB 10BB 3F 3B 2F 1B 1BB 2F 2B 2F 3B 1BB 1F 2B 4F 2B 1BB 1F 2B 5F 1B 1BB 1F 3B 4F 1B 1BB 2F 4B 4BB 4F 4B 2BB 6F 3B 1BB 1F 1B 5F 3BB 1F 1B 6F 2BB 1F 2B 5F 2BB 1F 3B 3F 2B 1BB 1F 1B 2F 4B 2"
"H 12W 16B 12BB 12BB 12BF 12BF 2B 3F 2B 3F 2BF 1B 4F 2B 4F 1BB 5F 2B 5BB 5F 2B 5BB 5F 2B 5BB 5F 2B 5BB 5F 2B 5BB 5F 2B 5BB 5F 2B 5BB 5F 2B 5BB 5F 2B 5BB 3F 6B 3"
"H 13W 16B 13BB 13BB 13BF 6B 2F 5BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 3F 2B 4F 1B 3BB 4F 5B 4"
"H 13W 16B 13BB 13BB 13BF 5B 4F 4BB 1F 3B 7F 1B 1BB 2F 2B 7F 1B 1BB 2F 2B 6F 1B 2BB 3F 2B 5F 1B 2BB 3F 2B 4F 1B 3BB 4F 2B 3F 1B 3BB 4F 2B 3F 1B 3BB 5F 2B 1F 1B 4BB 5F 2B 1F 1B 4BB 6F 2B 5BB 6F 2B 5BB 7F 1B 5"
"H 18W 16B 18BB 18BB 18BF 5B 2F 5B 2F 4BB 1F 3B 4F 2B 5F 2B 1BB 2F 2B 5F 2B 4F 1B 2BB 2F 2B 5F 2B 4F 1B 2BB 3F 2B 3F 3B 3F 2B 2BB 3F 2B 3F 1B 1F 2B 2F 1B 3BB 3F 2B 2F 1B 2F 2B 2F 1B 3BB 4F 2B 1F 1B 2F 2B 2F 1B 3BB 4F 2B 1F 1B 2F 2B 1F 1B 4BB 4F 3B 4F 3B 4BB 5F 2B 4F 3B 4BB 5F 2B 4F 2B 5BB 5F 1B 6F 1B 5"
"H 14W 16B 14BB 14BB 14BB 1F 5B 4F 4BB 3F 2B 6F 2B 1BB 4F 2B 4F 1B 3BB 4F 3B 2F 1B 4BB 5F 2B 1F 1B 5BB 6F 3B 5BB 7F 2B 5BB 6F 3B 5BB 5F 1B 2F 2B 4BB 5F 1B 3F 2B 3BB 4F 1B 4F 3B 2BB 2F 2B 6F 3B 1BB 1F 4B 4F 5"
"H 14W 16B 14BB 14BB 14BF 6B 3F 5BB 2F 2B 7F 1B 2BB 3F 2B 5F 1B 3BB 3F 2B 4F 1B 4BB 4F 2B 3F 1B 4BB 5F 2B 1F 1B 5BB 5F 2B 1F 1B 5BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 4F 6B 4"
"H 11W 16B 11BB 11BB 11BB 1F 10BB 1F 2B 6F 2BB 1F 1B 6F 2B 1BB 7F 2B 2BB 6F 2B 3BB 6F 2B 3BB 5F 2B 4BB 4F 2B 5BB 3F 2B 6BB 2F 2B 6F 1BB 2F 2B 6F 1BB 1F 2B 6F 2BF 10B 1"
"H 6W 20B 6BB 6BB 1F 5BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 2B 3BB 1F 5"
"H 5W 16B 5BB 5BF 1B 4BF 1B 4BB 1F 1B 3BB 1F 1B 3BB 1F 1B 3BB 2F 1B 2BB 2F 1B 2BB 2F 1B 2BB 2F 1B 2BB 3F 1B 1BB 3F 1B 1BB 3F 1B 1BB 4F 1BB 4F 1"
"H 5W 20B 5BB 5BF 5BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BB 3F 2BF 5"
"H 8W 10B 8BB 8BB 8BB 3F 2B 3BB 2F 1B 2F 1B 2BB 2F 1B 2F 1B 2BB 1F 1B 4F 1B 1BB 1F 1B 4F 1B 1BB 1F 1B 4F 1B 1BF 1B 6F 1"
"H 10W 20B 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BF 10"
"H 4W 6B 4BB 4BB 4BB 1F 2B 1BB 2F 2BB 3F 1"
"H 10W 16B 10BB 10BB 10BB 10BB 10BB 10BB 10BB 2F 5B 3BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 5F 3B 2BB 2F 3B 1F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 2F 3B 1F 1BB 2F 3B 1F 3B 1"
"H 9W 16B 9BB 9BB 1F 2B 6BF 3B 6BB 1F 2B 6BB 1F 2B 6BB 1F 2B 6BB 1F 2B 1F 3B 2BB 1F 3B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 3F 2B 1BB 2F 5B 2"
"H 8W 16B 8BB 8BB 8BB 8BB 8BB 8BB 8BB 3F 4B 1BB 2F 2B 2F 2BB 1F 2B 4F 1BB 1F 2B 5BB 1F 2B 5BB 1F 2B 5BB 1F 3B 3F 1BB 2F 5B 1BB 3F 3B 2"
"H 10W 16B 10BB 10BB 7F 2B 1BB 6F 3B 1BB 7F 2B 1BB 7F 2B 1BB 7F 2B 1BB 3F 3B 1F 2B 1BB 2F 2B 2F 3B 1BB 1F 2B 4F 2B 1BB 1F 2B 4F 2B 1BB 1F 2B 4F 2B 1BB 1F 2B 4F 2B 1BB 1F 2B 4F 2B 1BB 2F 2B 2F 4BB 3F 3B 1F 2B 1"
"H 8W 16B 8BB 8BB 8BB 8BB 8BB 8BB 8BB 3F 3B 2BB 2F 2B 2F 1B 1BB 1F 2B 3F 2BB 1F 7BB 1F 2B 5BB 1F 2B 5BB 1F 3B 3F 1BB 2F 5B 1BB 3F 3B 2"
"H 9W 16B 9BB 9BB 4F 4B 1BB 3F 1B 3F 2BB 2F 2B 5BB 2F 2B 5BB 2F 2B 5BF 6B 3BB 2F 2B 5BB 2F 2B 5BB 2F 2B 5BB 2F 2B 5BB 2F 2B 5BB 2F 2B 5BB 2F 2B 5BF 6B 3"
"H 9W 20B 9BB 9BB 9BB 9BB 9BB 9BB 9BB 3F 3B 3BB 2F 1B 2F 4BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 2F 2B 2F 1B 2BB 2F 4B 3BB 1F 1B 7BB 1F 7B 1BB 2F 7BB 1F 1B 6F 1BF 1B 7F 1BF 2B 5F 1B 1BB 1F 6B 2"
"H 9W 16B 9BB 9BB 1F 2B 6BF 3B 6BB 1F 2B 6BB 1F 2B 6BB 1F 2B 6BB 1F 2B 1F 3B 2BB 1F 3B 2F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BF 4B 1F 4"
"H 5W 16B 5BB 5BB 2F 2B 1BB 2F 2B 1BB 5BB 5BB 5BB 2F 2B 1BB 1F 3B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 1F 4"
"H 6W 20B 6BB 6BB 4F 2BB 4F 2BB 6BB 6BB 6BB 4F 2BB 3F 3BB 4F 2BB 4F 2BB 4F 2BB 4F 2BB 4F 2BB 4F 2BB 4F 2BB 4F 2BB 4F 2BF 2B 2F 1B 1BF 4B 2"
"H 9W 16B 9BB 9BB 1F 2B 6BF 3B 6BB 1F 2B 6BB 1F 2B 6BB 1F 2B 6BB 1F 2B 2F 4BB 1F 2B 3F 1B 2BB 1F 2B 2F 1B 3BB 1F 2B 1F 1B 4BB 1F 4B 4BB 1F 2B 1F 2B 3BB 1F 2B 2F 2B 2BB 1F 2B 3F 2B 1BF 4B 2F 3"
"H 5W 16B 5BB 5BB 2F 2B 1BB 1F 3B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 1F 4"
"H 14W 16B 14BB 14BB 14BB 14BB 14BB 14BB 14BB 1F 2B 1F 3B 2F 3B 2BF 4B 2F 3B 2F 2B 1BB 1F 2B 3F 2B 3F 2B 1BB 1F 2B 3F 2B 3F 2B 1BB 1F 2B 3F 2B 3F 2B 1BB 1F 2B 3F 2B 3F 2B 1BB 1F 2B 3F 2B 3F 2B 1BB 1F 2B 3F 2B 3F 2B 1BF 4B 1F 4B 1F 4"
"H 9W 16B 9BB 9BB 9BB 9BB 9BB 9BB 9BB 1F 2B 1F 3B 2BF 4B 2F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BF 4B 1F 4"
"H 9W 16B 9BB 9BB 9BB 9BB 9BB 9BB 9BB 3F 4B 2BB 2F 2B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 2B 2F 2B 1BB 3F 4B 2"
"H 9W 20B 9BB 9BB 9BB 9BB 9BB 9BB 9BB 1F 2B 1F 3B 2BF 4B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 3B 2F 2B 1BB 1F 2B 1F 3B 2BB 1F 2B 6BB 1F 2B 6BB 1F 2B 6BF 4B 5"
"H 10W 20B 10BB 10BB 10BB 10BB 10BB 10BB 10BB 3F 4B 1F 1B 1BB 2F 2B 3F 2B 1BB 1F 2B 4F 2B 1BB 1F 2B 4F 2B 1BB 1F 2B 4F 2B 1BB 1F 2B 4F 2B 1BB 1F 2B 4F 2B 1BB 2F 2B 2F 3B 1BB 3F 3B 1F 2B 1BB 7F 2B 1BB 7F 2B 1BB 7F 2B 1BB 6F 4"
"H 7W 16B 7BB 7BB 7BB 7BB 7BB 7BB 7BB 1F 2B 1F 3BF 4B 1F 2BB 1F 2B 4BB 1F 2B 4BB 1F 2B 4BB 1F 2B 4BB 1F 2B 4BB 1F 2B 4BF 4B 3"
"H 7W 16B 7BB 7BB 7BB 7BB 7BB 7BB 7BB 2F 3B 1F 1BB 1F 1B 3F 2BB 1F 1B 4F 1BB 1F 3B 3BB 2F 4B 1BB 4F 3BB 1F 1B 4F 1BB 1F 2B 3F 1BB 1F 1B 1F 3B 1"
"H 5W 16B 5BB 5BB 5BB 5BB 2F 1B 2BB 2F 1B 2BB 1F 2B 2BF 5BB 1F 2B 2BB 1F 2B 2BB 1F 2B 2BB 1F 2B 2BB 1F 2B 2BB 1F 2B 2BB 1F 2B 1F 1BB 1F 3B 1"
"H 9W 16B 9BB 9BB 9BB 9BB 9BB 9BB 9BF 3B 2F 3B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 2F 4BB 2F 3B 1F 2B 1"
"H 10W 16B 10BB 10BB 10BB 10BB 10BB 10BB 10BF 4B 3F 3BB 1F 2B 5F 1B 1BB 2F 2B 3F 1B 2BB 2F 2B 3F 1B 2BB 3F 2B 1F 1B 3BB 3F 2B 1F 1B 3BB 4F 2B 4BB 4F 2B 4BB 5F 1B 4"
"H 15W 16B 15BB 15BB 15BB 15BB 15BB 15BB 15BF 4B 2F 4B 2F 3BB 1F 2B 4F 2B 4F 1B 1BB 1F 2B 4F 2B 3F 1B 2BB 2F 2B 2F 1B 1F 2B 2F 1B 2BB 2F 2B 2F 1B 1F 2B 2F 1B 2BB 2F 2B 1F 1B 3F 1B 1F 1B 3BB 3F 3B 3F 3B 3BB 3F 2B 4F 2B 4BB 4F 1B 5F 1B 4"
"H 9W 16B 9BB 9BB 9BB 9BB 9BB 9BB 9BF 4B 1F 4BB 1F 2B 3F 1B 2BB 2F 2B 1F 1B 3BB 3F 2B 4BB 3F 3B 3BB 3F 1B 1F 1B 3BB 2F 1B 2F 2B 2BB 1F 1B 4F 2B 1BF 3B 2F 4"
"H 10W 20B 10BB 10BB 10BB 10BB 10BB 10BB 10BB 1F 4B 2F 3BB 2F 2B 4F 1B 1BB 2F 2B 4F 1B 1BB 3F 2B 2F 1B 2BB 3F 2B 2F 1B 2BB 4F 3B 3BB 4F 3B 3BB 5F 2B 3BB 5F 1B 4BB 5F 1B 4BB 4F 1B 5BB 1F 4B 5BB 1F 3B 6"
"H 8W 16B 8BB 8BB 8BB 8BB 8BB 8BB 8BB 1F 7BB 1F 1B 3F 2B 1BB 5F 2B 1BB 4F 2B 2BB 3F 2B 3BB 2F 2B 4BB 2F 2B 4BB 1F 2B 4F 1BF 8"
"H 8W 20B 8BB 8BB 6F 2BB 5F 2B 1BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 3F 2B 3BB 2F 1B 5BB 3F 2B 3BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 5F 2B 1BB 6F 2"
"H 2W 20B 2BB 2BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1BB 1F 1"
"H 8W 20B 8BB 8BB 2F 2B 4BB 3F 2B 3BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 5F 2B 1BB 7F 1BB 5F 2B 1BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 4F 2B 2BB 3F 2B 3BB 2F 2B 4"
"H 11W 12B 11BB 11BB 11BB 11BB 11BB 11BB 11BB 11BB 11BB 1F 3B 6F 1BF 1B 3F 3B 3F 1BF 1B 6F 3B 1"
"H 10W 16B 10BB 10BB 10BB 10BB 10BB 5F 1B 4BB 5F 2B 3BB 4F 1B 2F 1B 2BB 3F 1B 4F 1B 1BB 2F 1B 6F 1BB 2F 1B 6F 1BB 2F 1B 6F 1BB 2F 1B 6F 1BB 2F 1B 6F 1BB 2F 1B 6F 1BB 2F 8"
"H 12W 20B 12BB 12BB 12BB 5F 4B 2F 1BB 3F 2B 4F 3BB 2F 2B 6F 2BB 2F 2B 7F 1BB 1F 2B 8F 1BB 1F 2B 9BB 1F 2B 9BB 1F 2B 9BB 1F 2B 9BB 2F 1B 9BB 2F 2B 7F 1BB 3F 2B 5F 1B 1BB 4F 6B 2BB 6F 1B 5BB 5F 2B 5BB 6F 2B 4BB 5F 2B 5"
"H 9W 16B 9BB 9BB 9BB 9BB 2F 2B 1F 2B 2BB 2F 2B 1F 2B 2BB 9BF 3B 2F 3B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 2F 4BB 2F 3B 1F 2B 1"
"H 8W 16B 8BB 8BB 8BB 5F 2B 1BB 4F 2B 2BB 4F 1B 3BB 8BB 3F 3B 2BB 2F 2B 2F 1B 1BB 1F 2B 3F 2BB 1F 7BB 1F 2B 5BB 1F 2B 5BB 1F 3B 3F 1BB 2F 5B 1BB 3F 3B 2"
"H 10W 16B 10BB 10BB 10BB 3F 3B 4BB 3F 1B 1F 1B 4BB 2F 1B 3F 1B 3BB 10BB 2F 5B 3BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 5F 3B 2BB 2F 3B 1F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 2F 3B 1F 1BB 2F 3B 1F 3B 1"
"H 10W 16B 10BB 10BB 10BB 10BB 1F 2B 1F 2B 4BB 1F 2B 1F 2B 4BB 10BB 2F 5B 3BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 5F 3B 2BB 2F 3B 1F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 2F 3B 1F 1BB 2F 3B 1F 3B 1"
"H 10W 16B 10BB 10BB 10BB 3F 2B 5BB 4F 2B 4BB 5F 1B 4BB 10BB 2F 5B 3BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 5F 3B 2BB 2F 3B 1F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 2F 3B 1F 1BB 2F 3B 1F 3B 1"
"H 10W 16B 10BB 10BB 4F 2B 4BB 3F 1B 2F 1B 3BB 3F 1B 2F 1B 3BB 4F 2B 4BB 10BB 2F 5B 3BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 5F 3B 2BB 2F 3B 1F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 2F 3B 1F 1BB 2F 3B 1F 3B 1"
"H 8W 20B 8BB 8BB 8BB 8BB 8BB 8BB 8BB 3F 4B 1BB 2F 2B 2F 2BB 1F 2B 4F 1BB 1F 2B 5BB 1F 2B 5BB 1F 2B 5BB 1F 3B 3F 1BB 2F 5B 1BB 3F 3B 2BB 4F 1B 3BB 3F 2B 3BB 4F 2B 2BB 3F 2B 3"
"H 8W 16B 8BB 8BB 8BB 3F 3B 2BB 3F 1B 1F 1B 2BB 2F 1B 3F 1B 1BB 8BB 3F 3B 2BB 2F 2B 2F 1B 1BB 1F 2B 3F 2BB 1F 7BB 1F 2B 5BB 1F 2B 5BB 1F 3B 3F 1BB 2F 5B 1BB 3F 3B 2"
"H 8W 16B 8BB 8BB 8BB 8BB 2F 2B 1F 2B 1BB 2F 2B 1F 2B 1BB 8BB 3F 3B 2BB 2F 2B 2F 1B 1BB 1F 2B 3F 2BB 1F 7BB 1F 2B 5BB 1F 2B 5BB 1F 3B 3F 1BB 2F 5B 1BB 3F 3B 2"
"H 8W 16B 8BB 8BB 8BB 3F 2B 3BB 4F 2B 2BB 5F 1B 2BB 8BB 3F 3B 2BB 2F 2B 2F 1B 1BB 1F 2B 3F 2BB 1F 7BB 1F 2B 5BB 1F 2B 5BB 1F 3B 3F 1BB 2F 5B 1BB 3F 3B 2"
"H 6W 16B 6BB 6BB 6BB 6BB 1F 2B 1F 2BB 1F 2B 1F 2BB 6BB 2F 2B 2BB 1F 3B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 2F 2B 2BB 1F 4B 1"
"H 5W 16B 5BB 5BB 5BB 1F 3B 1BB 1F 1B 1F 1B 1BF 1B 3F 1BB 5BB 2F 2B 1BB 1F 3B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 1F 4"
"H 5W 16B 5BB 5BB 5BB 1F 2B 2BB 2F 2B 1BB 3F 1B 1BB 5BB 2F 2B 1BB 1F 3B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 1F 4"
"H 14W 16B 5F 2B 1F 2B 4BB 5F 2B 1F 2B 4BB 14BB 7F 1B 6BB 6F 2B 6BB 6F 3B 5BB 5F 1B 1F 2B 5BB 5F 1B 2F 2B 4BB 4F 1B 3F 2B 4BB 4F 1B 3F 2B 4BB 3F 1B 5F 2B 3BB 3F 8B 3BB 2F 1B 7F 2B 2BB 2F 1B 7F 2B 2BB 1F 2B 8F 2B 1BF 4B 5F 5"
"H 14W 16B 7F 2B 5BB 6F 1B 2F 1B 4BB 6F 1B 2F 1B 4BB 7F 2B 5BB 6F 2B 6BB 6F 3B 5BB 5F 1B 1F 2B 5BB 5F 1B 2F 2B 4BB 4F 1B 3F 2B 4BB 4F 1B 3F 2B 4BB 3F 1B 5F 2B 3BB 3F 8B 3BB 2F 1B 7F 2B 2BB 2F 1B 7F 2B 2BB 1F 2B 8F 2B 1BF 4B 5F 5"
"H 12W 16B 5F 2B 5BB 5F 1B 6BB 12BF 11B 1BB 2F 2B 6F 1B 1BB 2F 2B 6F 1B 1BB 2F 2B 8BB 2F 2B 4F 1B 3BB 2F 2B 4F 1B 3BB 2F 7B 3BB 2F 2B 4F 1B 3BB 2F 2B 4F 1B 3BB 2F 2B 8BB 2F 2B 7F 1BB 2F 2B 6F 1B 1BF 11B 1"
"H 12W 16B 12BB 12BB 12BB 12BB 12BB 12BB 12BB 2F 4B 1F 3B 2BB 1F 2B 2F 2B 3F 1B 1BB 1F 2B 2F 2B 3F 2BB 4F 8BB 2F 2B 1F 2B 5BB 1F 2B 2F 2B 5BB 1F 2B 2F 3B 3F 1BB 1F 2B 2F 6B 1BB 2F 3B 2F 3B 2"
"H 19W 16B 19BB 19BB 19BB 6F 12B 1BB 8F 3B 5F 2B 1BB 7F 1B 1F 2B 6F 1B 1BB 6F 1B 2F 2B 8BB 6F 1B 2F 2B 4F 1B 3BB 5F 1B 3F 2B 4F 1B 3BB 5F 1B 3F 7B 3BB 4F 7B 4F 1B 3BB 3F 1B 5F 2B 4F 1B 3BB 3F 1B 5F 2B 8BB 2F 1B 6F 2B 7F 1BB 1F 2B 6F 2B 6F 1B 1BF 4B 3F 11B 1"
"H 9W 16B 9BB 9BB 9BB 4F 3B 2BB 4F 1B 1F 1B 2BB 3F 1B 3F 1B 1BB 9BB 3F 4B 2BB 2F 2B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 2B 2F 2B 1BB 3F 4B 2"
"H 9W 16B 9BB 9BB 9BB 9BB 3F 2B 1F 2B 1BB 3F 2B 1F 2B 1BB 9BB 3F 4B 2BB 2F 2B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 2B 2F 2B 1BB 3F 4B 2"
"H 9W 16B 9BB 9BB 9BB 3F 2B 4BB 4F 2B 3BB 5F 1B 3BB 9BB 3F 4B 2BB 2F 2B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 2B 2F 2B 1BB 3F 4B 2"
"H 9W 16B 9BB 9BB 9BB 3F 3B 3BB 3F 1B 1F 1B 3BB 2F 1B 3F 1B 2BB 9BF 3B 2F 3B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 2F 4BB 2F 3B 1F 2B 1"
"H 9W 16B 9BB 9BB 9BB 2F 2B 5BB 3F 2B 4BB 4F 1B 4BB 9BF 3B 2F 3B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 2F 4BB 2F 3B 1F 2B 1"
"H 10W 20B 10BB 10BB 10BB 10BB 3F 2B 1F 2B 2BB 3F 2B 1F 2B 2BB 10BB 1F 4B 2F 3BB 2F 2B 4F 1B 1BB 2F 2B 4F 1B 1BB 3F 2B 2F 1B 2BB 3F 2B 2F 1B 2BB 4F 3B 3BB 4F 3B 3BB 5F 2B 3BB 5F 1B 4BB 5F 1B 4BB 4F 1B 5BB 1F 4B 5BB 1F 3B 6"
"H 13W 16B 5F 2B 1F 2B 3BB 5F 2B 1F 2B 3BB 13BB 5F 4B 4BB 3F 2B 4F 2B 2BB 2F 2B 6F 2B 1BB 2F 1B 8F 1B 1BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 2B 8F 2BB 1F 2B 8F 2BB 2F 2B 7F 1B 1BB 2F 2B 6F 2B 1BB 3F 2B 4F 2B 2BB 5F 4B 4"
"H 13W 16B 5F 2B 1F 2B 3BB 5F 2B 1F 2B 3BB 13BF 6B 2F 5BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 2F 2B 6F 1B 2BB 3F 2B 4F 1B 3BB 4F 5B 4"
"H 9W 19B 9BB 9BB 9BB 9BB 7F 1B 1BB 7F 1B 1BB 6F 1B 2BB 3F 5B 1BB 2F 2B 2F 3BB 1F 2B 2F 1B 1F 2BB 1F 2B 2F 1B 3BB 1F 2B 1F 1B 4BB 1F 2B 1F 1B 3F 1BB 1F 3B 3F 2BB 2F 6B 1BB 3F 4B 2BB 2F 1B 6BB 2F 1B 6BB 1F 1B 7"
"H 10W 16B 10BB 10BB 10BB 6F 3B 1BB 5F 1B 1F 2B 1BB 4F 2B 4BB 4F 2B 4BB 4F 2B 4BB 4F 2B 4BB 2F 7B 1BB 4F 2B 4BB 4F 2B 4BB 4F 2B 4BB 2F 4B 3F 1BB 1F 1B 1F 7BB 1F 3B 2F 3B 1"
"H 10W 16B 10BB 10BB 10BF 4B 3F 3BB 1F 2B 5F 1B 1BB 2F 2B 3F 1B 2BB 2F 2B 3F 1B 2BB 2F 2B 2F 1B 3BB 3F 2B 1F 1B 3BB 3F 2B 1F 1B 3BF 10BB 4F 2B 4BF 10BB 4F 2B 4BB 4F 2B 4BB 2F 6B 2"
"H 20W 16B 20BB 20BB 20BF 8B 12BB 2F 2B 3F 2B 2F 1B 8BB 2F 2B 4F 4B 8BB 2F 2B 4F 4B 8BB 2F 2B 4F 6B 1F 3B 1F 1BB 2F 2B 4F 4B 2F 1B 3F 2BB 2F 2B 3F 2B 1F 2B 2F 1B 4F 1BB 2F 6B 2F 2B 2F 3B 3BB 2F 2B 6F 2B 3F 4B 1BB 2F 2B 6F 2B 5F 3BB 2F 2B 6F 2B 2F 1B 4F 1BB 2F 2B 6F 2B 2F 2B 3F 1BF 6B 4F 5B 1F 3B 1"
"H 10W 20B 10BB 10BB 7F 3BB 6F 2B 1F 1BB 6F 2B 2BB 6F 2B 2BB 5F 2B 3BB 3F 6B 1BB 5F 2B 3BB 5F 2B 3BB 4F 3B 3BB 4F 2B 4BB 4F 2B 4BB 4F 2B 4BB 3F 2B 5BB 3F 2B 5BB 3F 2B 5BB 3F 1B 6BF 1B 1F 2B 6BF 3B 7"
"H 10W 16B 10BB 10BB 10BB 5F 2B 3BB 4F 2B 4BB 4F 1B 5BB 10BB 2F 5B 3BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 5F 3B 2BB 2F 3B 1F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 2F 3B 1F 1BB 2F 3B 1F 3B 1"
"H 5W 16B 5BB 5BB 5BB 3F 2BB 2F 2B 1BB 2F 1B 2BB 5BB 2F 2B 1BB 1F 3B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 2F 2B 1BB 1F 4"
"H 9W 16B 9BB 9BB 9BB 5F 2B 2BB 4F 2B 3BB 4F 1B 4BB 9BB 3F 4B 2BB 2F 2B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 2B 2F 2B 1BB 3F 4B 2"
"H 9W 16B 9BB 9BB 9BB 4F 2B 3BB 3F 2B 4BB 3F 1B 5BB 9BF 3B 2F 3B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 2F 4BB 2F 3B 1F 2B 1"
"H 9W 16B 9BB 9BB 9BB 9BB 3F 2B 2F 1B 1BB 2F 1B 2F 2B 2BB 9BB 1F 2B 1F 3B 2BF 4B 2F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BF 4B 1F 4"
"H 15W 16B 6F 2B 2F 1B 4BB 5F 1B 2F 2B 5BB 15BF 4B 6F 5BB 2F 3B 7F 1B 2BB 3F 3B 6F 1B 2BB 3F 4B 5F 1B 2BB 3F 1B 1F 3B 4F 1B 2BB 3F 1B 2F 2B 4F 1B 2BB 3F 1B 3F 2B 3F 1B 2BB 3F 1B 4F 2B 2F 1B 2BB 3F 1B 4F 3B 1F 1B 2BB 3F 1B 5F 4B 2BB 3F 1B 6F 3B 2BB 3F 1B 7F 2B 2BB 1F 5B 6F 1B 2"
"H 5W 9B 5BB 5BB 5BF 4B 1BF 1B 2F 1B 1BB 2F 2B 1BB 1F 1B 1F 1B 1BF 1B 2F 1B 1BF 5"
"H 6W 9B 6BB 6BB 6BB 1F 4B 1BF 1B 3F 2BF 1B 4F 1BF 1B 4F 1BF 2B 3F 1BB 1F 4B 1"
"H 7W 20B 7BB 7BB 7BB 7BB 7BB 7BB 3F 2B 2BB 3F 2B 2BB 7BB 7BB 4F 1B 2BB 4F 1B 2BB 3F 1B 3BB 2F 1B 4BB 1F 2B 4BF 2B 5BF 2B 3F 2BF 2B 3F 2BF 3B 2F 2BB 1F 5B 1"
"H 10W 11B 10BB 10BB 10BB 10BB 10BB 10BB 10BF 10BF 1B 9BF 1B 9BF 1B 9"
"H 10W 11B 10BB 10BB 10BB 10BB 10BB 10BB 10BF 10BB 9F 1BB 9F 1BB 9F 1"
"H 14W 16B 14BB 14BB 14BB 2F 1B 8F 1B 2BB 1F 2B 7F 1B 3BB 2F 1B 7F 1B 3BB 2F 1B 6F 1B 4BB 2F 1B 5F 1B 5BB 2F 1B 5F 1B 5BB 1F 3B 3F 1B 2F 3B 1BB 6F 1B 2F 1B 3F 1BB 5F 1B 7F 1BB 5F 1B 6F 1B 1BB 4F 1B 6F 1B 2BB 3F 1B 6F 1B 3BB 3F 1B 5F 5"
"H 15W 16B 15BB 15BB 15BB 2F 1B 9F 1B 2BB 1F 2B 8F 1B 3BB 2F 1B 7F 1B 4BB 2F 1B 7F 1B 4BB 2F 1B 6F 1B 5BB 2F 1B 5F 1B 6BB 1F 3B 3F 1B 5F 1B 1BB 7F 1B 4F 2B 1BB 6F 1B 4F 1B 1F 1B 1BB 5F 1B 4F 1B 2F 1B 1BB 4F 1B 5F 5BB 4F 1B 8F 1B 1BB 3F 1B 9F 1B 1"
"H 4W 20B 4BB 4BB 4BB 4BB 4BB 4BB 2F 2BB 2F 2BB 4BB 4BB 3F 1BB 3F 1BB 3F 1BB 3F 1BB 2F 2BB 2F 2BB 2F 2BB 2F 2BB 2F 2BB 2F 2"
"H 9W 16B 9BB 9BB 9BB 9BB 9BB 9BB 9BB 4F 1B 3F 1BB 3F 1B 3F 1B 1BB 2F 1B 3F 1B 2BB 1F 2B 2F 2B 2BF 2B 2F 2B 3BB 1F 2B 2F 2B 2BB 2F 1B 3F 1B 2BB 3F 1B 3F 1B 1BB 4F 1B 3F 1"
"H 9W 16B 9BB 9BB 9BB 9BB 9BB 9BB 9BF 1B 3F 1B 4BB 1F 1B 3F 1B 3BB 2F 1B 3F 1B 2BB 2F 2B 2F 2B 1BB 3F 2B 2F 2BB 2F 2B 2F 2B 1BB 2F 1B 3F 1B 2BB 1F 1B 3F 1B 3BF 1B 3F 1B 4"
"H 12W 19B 12BB 12BB 1F 1B 3F 1B 3F 1B 2BB 12BB 3F 1B 3F 1B 3F 1BB 12BB 1F 1B 3F 1B 3F 1B 2BB 12BB 3F 1B 3F 1B 3F 1BB 12BB 1F 1B 3F 1B 3F 1B 2BB 12BB 3F 1B 3F 1B 3F 1BB 12BB 1F 1B 3F 1B 3F 1B 2BB 12BB 3F 1B 3F 1B 3F 1BB 12BB 1F 1B 3F 1B 3F 1B 2"
"H 12W 19B 12BB 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1BB 12BF 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1BB 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1BB 12BF 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1BB 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1BB 12BF 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1BB 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1BB 12BF 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1BB 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1"
"H 12W 20B 12BB 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1BF 12BF 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1BF 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1BF 12BF 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1BF 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1BF 12BF 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1BF 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1BF 12BF 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1BF 12BB 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1BF 12"
"H 8W 20B 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2"
"H 8W 20B 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BF 8BF 8BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2"
"H 8W 20B 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BF 8BF 8BB 6F 2BB 6F 2BF 8BF 8BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2"
"H 10W 20B 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BF 6B 2F 2BF 6B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2"
"H 10W 20B 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BB 10BF 10BF 10BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2"
"H 8W 20B 8BB 8BB 8BB 8BB 8BB 8BB 8BF 8BF 8BB 6F 2BB 6F 2BF 8BF 8BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2"
"H 10W 20B 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BF 6B 2F 2BF 6B 2F 2BB 8F 2BB 8F 2BF 6B 2F 2BF 6B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2"
"H 10W 20B 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2"
"H 10W 20B 10BB 10BB 10BB 10BB 10BB 10BB 10BF 10BF 10BB 8F 2BB 8F 2BF 6B 2F 2BF 6B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2"
"H 10W 13B 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BF 6B 2F 2BF 6B 2F 2BB 8F 2BB 8F 2BF 10BF 10"
"H 10W 11B 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BB 4F 2B 2F 2BF 10BF 10"
"H 8W 13B 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BF 8BF 8BB 6F 2BB 6F 2BF 8BF 8"
"H 8W 20B 8BB 8BB 8BB 8BB 8BB 8BB 8BB 8BB 8BF 8BF 8BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2"
"H 14W 11B 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 8BB 6F 8"
"H 14W 11B 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BF 14BF 14"
"H 14W 20B 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BF 14BF 14BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6"
"H 14W 20B 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 8BB 6F 8BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6"
"H 14W 11B 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BF 14BF 14"
"H 14W 20B 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BF 14BF 14BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6"
"H 14W 20B 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 8BB 6F 8BB 6F 2B 6BB 6F 2B 6BB 6F 8BB 6F 8BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6"
"H 14W 20B 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 6BB 4F 2B 2F 6BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4"
"H 14W 13B 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 6BB 4F 2B 2F 6BB 4F 2B 8BB 4F 2B 8BB 4F 10BB 4F 10"
"H 14W 20B 14BB 14BB 14BB 14BB 14BB 14BB 14BB 4F 10BB 4F 10BB 4F 2B 8BB 4F 2B 8BB 4F 2B 2F 6BB 4F 2B 2F 6BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4"
"H 14W 13B 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BF 6B 2F 6BF 6B 2F 6BB 14BB 14BF 14BF 14"
"H 14W 20B 14BB 14BB 14BB 14BB 14BB 14BB 14BF 14BF 14BB 14BB 14BF 6B 2F 6BF 6B 2F 6BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4"
"H 14W 20B 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 6BB 4F 2B 2F 6BB 4F 2B 8BB 4F 2B 8BB 4F 2B 2F 6BB 4F 2B 2F 6BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4"
"H 14W 13B 14BB 14BB 14BB 14BB 14BB 14BB 14BF 14BF 14BB 14BB 14BF 14BF 14"
"H 15W 20B 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BF 7B 2F 6BF 7B 2F 6BB 15BB 15BF 7B 2F 6BF 7B 2F 6BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4BB 5F 2B 2F 2B 4"
"H 14W 13B 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BF 14BF 14BB 14BB 14BF 14BF 14"
"H 14W 11B 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BF 14BF 14"
"H 14W 20B 14BB 14BB 14BB 14BB 14BB 14BB 14BF 14BF 14BB 14BB 14BF 14BF 14BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6"
"H 14W 20B 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BF 14BF 14BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4"
"H 14W 11B 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 10BB 4F 10"
"H 14W 13B 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 8BB 6F 8BB 6F 2B 6BB 6F 2B 6BB 6F 8BB 6F 8"
"H 14W 20B 14BB 14BB 14BB 14BB 14BB 14BB 14BB 6F 8BB 6F 8BB 6F 2B 6BB 6F 2B 6BB 6F 8BB 6F 8BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6"
"H 14W 20B 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BB 4F 10BB 4F 10BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4"
"H 14W 20B 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BF 14BF 14BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4BB 4F 2B 2F 2B 4"
"H 14W 20B 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BF 14BF 14BB 6F 2B 6BB 6F 2B 6BF 14BF 14BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6"
"H 8W 11B 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BF 8BF 8"
"H 14W 20B 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BB 6F 8BB 6F 8BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6BB 6F 2B 6"
"H 14W 20BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14"
"H 14W 20B 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BB 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14"
"H 7W 20BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7BF 7"
"H 14W 20B 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7BB 7F 7"
"H 14W 10BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14BF 14"
"H 10W 16B 10BB 10BB 10BB 10BB 10BB 10BB 10BB 3F 2B 2F 2B 1BB 2F 2B 1F 1B 1F 2B 1BB 1F 2B 3F 3B 1BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 1F 2B 3F 2B 2BB 2F 2B 1F 3B 1F 1BB 3F 3B 2F 2"
"H 9W 16B 9BB 9BB 2F 5B 2BB 2F 1B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 2B 1BB 1F 2B 3F 1B 2BB 1F 2B 2F 2B 2BB 1F 2B 3F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 1F 2B 1F 1B 1BF 3B 1F 3B 2"
"H 11W 16B 11BB 11BB 11BF 11BB 2F 2B 5F 2BB 2F 2B 6F 1BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BB 2F 2B 7BF 6B 5"
"H 11W 16B 11BB 11BB 11BB 11BB 11BB 11BB 11BB 1F 10BF 1B 2F 1B 2F 2B 3BB 3F 1B 2F 2B 3BB 3F 1B 2F 2B 3BB 3F 1B 2F 2B 3BB 2F 2B 2F 2B 3BB 2F 1B 3F 2B 1F 1B 1BB 1F 2B 3F 4B 1BB 1F 2B 4F 2B 2"
"H 11W 16B 11BB 11BB 11BF 10B 1BB 1F 2B 5F 2B 1BB 2F 2B 5F 1B 1BB 2F 2B 7BB 3F 2B 6BB 4F 2B 5BB 4F 2B 5BB 4F 1B 6BB 3F 1B 7BB 2F 1B 7F 1BB 2F 1B 6F 2BB 1F 10BF 10B 1"
"H 11W 16B 11BB 11BB 11BB 11BB 11BB 11BB 11BB 3F 8BB 2F 2B 3F 1B 3BB 1F 2B 4F 2B 2BB 1F 2B 5F 2B 1BB 1F 2B 5F 2B 1BB 1F 2B 5F 2B 1BB 2F 2B 4F 2B 1BB 3F 2B 2F 2B 2BB 4F 4B 3"
"H 11W 20B 11BB 11BB 11BB 11BB 11BB 11BB 11BB 2F 2B 3F 2B 2BB 2F 2B 3F 2B 2BB 2F 2B 3F 2B 2BB 2F 2B 3F 2B 2BB 2F 2B 3F 2B 2BB 2F 2B 3F 2B 2BB 2F 2B 3F 2B 2BB 2F 2B 2F 3B 1F 1BB 2F 4B 1F 3B 1BB 2F 1B 8BB 1F 2B 8BB 1F 2B 8BB 1F 2B 8"
"H 8W 16B 8BB 8BB 8BB 8BB 8BB 8BB 8BB 1F 7BF 1B 3F 1B 3BB 3F 2B 3BB 3F 2B 3BB 3F 2B 3BB 3F 2B 3BB 3F 2B 2F 1BB 3F 5BB 4F 3B 1"
"H 14W 16B 14BB 14BB 14BB 5F 6B 3BB 7F 2B 5BB 4F 7B 3BB 2F 3B 2F 2B 2F 2B 1BB 2F 1B 4F 2B 3F 2BB 1F 2B 4F 2B 3F 2BB 1F 2B 4F 2B 3F 2BB 1F 2B 4F 2B 3F 2BB 2F 1B 4F 2B 3F 2BB 2F 3B 2F 2B 2F 2B 1BB 4F 7B 3BB 7F 2B 5BB 5F 6B 3"
"H 13W 16B 13BB 13BB 13BB 5F 4B 4BB 3F 2B 4F 2B 2BB 2F 2B 6F 2B 1BB 2F 1B 7F 2B 1BB 1F 2B 2F 1B 2F 1B 2F 2BB 1F 2B 2F 4B 2F 2BB 1F 2B 2F 4B 2F 2BB 1F 2B 2F 1B 2F 1B 2F 2BB 1F 2B 8F 2BB 2F 2B 7F 1B 1BB 2F 2B 6F 2B 1BB 3F 2B 4F 2B 2BB 4F 5B 4"
"H 14W 16B 14BB 14BB 14BB 5F 6B 3BB 3F 2B 5F 2B 2BB 2F 2B 7F 2B 1BB 1F 2B 9F 2BB 1F 2B 9F 2BB 1F 2B 9F 2BB 1F 2B 9F 2BB 2F 2B 7F 2B 1BB 2F 3B 6F 2B 1BB 4F 2B 3F 2B 3BB 1F 1B 3F 1B 3F 1B 3F 1BB 1F 5B 3F 5BB 1F 5B 3F 5"
"H 9W 16B 9BB 9BB 3F 4B 2BB 2F 1B 3F 2B 1BB 2F 1B 4F 1B 1BB 3F 1B 5BB 4F 1B 4BB 4F 3B 2BB 2F 2B 2F 2B 1BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 1F 2B 4F 2BB 2F 2B 2F 2B 1BB 3F 4B 2"
"H 13W 15B 13BB 13BB 13BB 13BB 13BB 13BB 13BB 7F 4B 2BB 2F 2B 3F 1B 3F 1B 1BB 1F 1B 2F 1B 1F 2B 4F 1BF 1B 4F 2B 5F 1BF 1B 4F 2B 5F 1BF 1B 4F 2B 5F 1BB 1F 1B 2F 2B 1F 1B 3F 1B 1BB 2F 3B 3F 3B 2"
"H 11W 20B 11BB 11BB 11BB 11BB 11BB 11BB 11BB 3F 2B 2F 2B 2BB 2F 2B 2F 1B 1F 2B 1BB 1F 2B 3F 1B 2F 2BB 1F 2B 3F 1B 2F 2BB 1F 2B 3F 1B 2F 2BB 1F 2B 3F 1B 2F 2BB 2F 2B 2F 1B 2F 2BB 2F 3B 1F 1B 1F 2B 1BB 4F 5B 2BB 6F 1B 4BB 6F 1B 4BB 6F 1B 4BB 6F 1B 4"
"H 8W 16B 8BB 8BB 8BB 8BB 8BB 8BB 8BB 2F 5B 1BB 1F 2B 3F 2BB 1F 2B 5BB 1F 2B 5BB 3F 3B 2BB 1F 2B 5BB 1F 2B 4F 1BB 1F 2B 3F 2BB 2F 5B 1"
"H 13W 16B 13BB 13BB 5F 5B 3BB 4F 1B 5F 1B 2BB 3F 1B 7F 1B 1BB 2F 1B 9F 1BB 2F 1B 9F 1BB 2F 1B 9F 1BB 2F 1B 9F 1BB 2F 1B 9F 1BB 2F 1B 9F 1BB 2F 1B 9F 1BB 2F 1B 9F 1BB 2F 1B 9F 1BB 2F 1B 9F 1BB 2F 1B 9F 1"
"H 11W 13B 11BB 11BB 11BB 11BB 11BB 11BF 11BB 11BB 11BF 11BB 11BB 11BF 11"
"H 11W 15B 11BB 11BB 11BB 11BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BF 11BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BB 5F 1B 5BF 11"
"H 11W 18B 11BB 11BB 11BB 11BB 11BF 1B 10BB 1F 3B 7BB 4F 3B 4BB 7F 3B 1BB 10F 1BB 7F 3B 1BB 4F 3B 4BB 1F 3B 7BF 1B 10BB 11BB 11BB 11BF 11"
"H 11W 18B 11BB 11BB 11BB 11BB 11BB 10F 1BB 7F 3B 1BB 4F 3B 4BB 1F 3B 7BF 1B 10BB 1F 3B 7BB 4F 3B 4BB 7F 3B 1BB 10F 1BB 11BB 11BB 11BF 11"
"H 11W 20B 7F 1B 1F 2BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3BB 6F 2B 3"
"H 8W 20B 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 6F 2BB 3F 2B 1F 1B 1"
"H 10W 14B 10BB 10BB 10BB 10BB 10BB 4F 2B 4BB 4F 2B 4BB 10BB 10BF 10BB 10BB 10BB 4F 2B 4BB 4F 2B 4"
"H 11W 14B 11BB 11BB 11BB 11BB 11BB 11BB 1F 3B 6F 1BF 1B 3F 3B 3F 1BF 1B 6F 3B 1BB 11BB 11BB 1F 3B 6F 1BF 1B 3F 3B 3F 1BF 1B 6F 3B 1"
"H 7W 9B 7BB 7BB 7BB 2F 4B 1BB 1F 2B 2F 2BB 1F 1B 4F 1BB 1F 1B 4F 1BB 1F 2B 2F 2BB 2F 4B 1"
"H 3W 10B 3BB 3BB 3BB 3BB 3BB 3BB 3BB 3BB 1F 2BB 1F 2"
"H 4W 10B 4BB 4BB 4BB 4BB 4BB 4BB 4BB 4BB 2F 2BB 2F 2"
"H 11W 17B 10F 1BB 10F 1BB 9F 1B 1BB 9F 1B 1BB 9F 1B 1BB 9F 1B 1BB 2F 2B 5F 1B 1BB 1F 1B 1F 1B 5F 1B 1BB 4F 1B 4F 1B 1BB 4F 1B 3F 1B 2BB 5F 1B 2F 1B 2BB 5F 1B 2F 1B 2BB 6F 1B 1F 1B 2BB 7F 2B 2BB 7F 2B 2BB 8F 1B 2BB 8F 1B 2"
"H 6W 10B 6BB 6BB 6BB 6BB 1F 1B 1F 2B 1BF 3B 1F 1B 1BB 1F 1B 2F 1B 1BB 1F 1B 2F 1B 1BB 1F 1B 2F 1B 1BF 6"
"H 5W 10B 5BB 5BB 5BB 1F 3B 1BF 1B 3F 1BB 4F 1BB 3F 1B 1BB 2F 1B 2BB 1F 1B 3BF 5"
"H 10W 16B 10BB 10BB 10BB 10BB 10BB 10BB 10BB 1F 9BB 1F 9BB 1F 9BB 1F 9BB 1F 9BB 1F 9BB 1F 9BB 1F 9BB 1F 9"
"H 4W 4BB 4BB 4BB 4BB 4"
now the actual program. Call it whatever you want. It's going to need that timmy.qdf file in the same directory if you want it to run without having to do a bunch of editing.
Code: (Select All) ' Fontmonkey v0e.e01
' By James D Jarvis
' a crude bitmap font encoder/editor with display routines
' I'm calling the fonts it creates "dashfonts" with a file extenion of .qdf"
Dim Shared fonts As Integer
'Dim Shared chalimit As Integer
fonts = 3 'no good reason this is 3, I want to be able to load more than one font in a program i create using this so leaving this here
Const chalimit = 255 'you could theoretically change this but the universe might explode
Dim Shared char(fonts, chalimit) As String
Dim Shared currentfont
Dim Shared backgroundkolor
Dim Shared foregroundkolor
Dim Shared rcount(40)
Dim Shared ccount(40)
Dim Shared font_kerning(fonts)
Dim Shared chno
Dim Shared cc(40, 40)
backgroundkolor = 0
foregroundkolor = 15
currentfont = 1
For f = 1 To fonts: font_kerning(f) = 0: Next f
Dim Shared sh&
sh& = _NewImage(800, 600, 256)
Screen sh&
Dim Shared rootpath$, fontname$, fsize, f&
' sorry only works in windows without futher editing
rootpath$ = Environ$("SYSTEMROOT") 'normally "C:\WINDOWS"
fontname$ = "comic" 'you are going to want to change this
fontfile$ = rootpath$ + "\Fonts\" + fontname$ + ".ttf" 'TTF file in Windows
fltr$ = "a"
fsize = 20 'I found this size works well for encoding, yuo can of course change this but bear in mind the top size is 40 pixels
Dim Shared fchar$
Dim Shared lastcharwid
lastcharwid = 8
fnam$ = "timmy" 'the default dash font for the program you can of course edit this
loadqdf 1, fnam$ 'loads timmy as default font
loadqdf 2, fnam$ 'loads timmy as backup font
Do
Print
Print
Input "Select a letter (or command word) ", ltt$
If ltt$ = "" Then ltt$ = " "
If Mid$(ltt$, 1, 1) = "-" Then
ch = Val(ltt$) * -1
chno = ch
Else
If Len(ltt$) > 1 Then ltt$ = LCase$(ltt$)
ch = Asc(ltt$)
chno = ch
End If
Locate 1, 1
Print ltt$
drawchar 100, 1, 0, 15, 1, 1, ch
Locate 10, 1
Print char(1, ch)
If ltt$ = "zoom" Then zoom
If ltt$ = "cls" Then Cls
If ltt$ = "save" Then
Cls
Print "please enter a filename"
Input fnam$
savefont 1, fnam$
End If
If ltt$ = "load" Then
Cls
Print "enter name of font to load (no extension please)"
Input fnam$
fname$ = fnam$ + ".qdf"
loadqdf 1, fnam$
End If
If ltt$ = "load2" Then
Cls
currentfont = 2
Print "enter name of font to load (no extension please)"
Input fnam$
fname$ = fnam$ + ".qdf"
loadqdf 2, fnam$
currentfont = 1
End If
If ltt$ = "encode" Then
Cls
Print "enter name of font to encode (no extension please)"
Input fnam$
fname$ = fnam$ + ".qdf"
encodefont fnam$, 20, 1
End If
If ltt$ = "show" Then
Cls
For y = 1 To 10
For cc = 1 To 24
drawchar (cc * 24), y * 25, backgroundkolor, foregroundkolor, 1, 1, (cc + (y - 1) * 24)
Next cc
Next y
For cc = 241 To 255
drawchar ((cc - 240) * 24), 275, backgroundkolor, foregroundkolor, 1, 1, cc
Next cc
End If
If ltt$ = "show2" Then
currentfont = 2
Cls
For y = 1 To 10
For cc = 1 To 24
drawchar (cc * 24), y * 25, backgroundkolor, foregroundkolor, 1, 1, (cc + (y - 1) * 24)
Next cc
Next y
For cc = 241 To 255
drawchar ((cc - 240) * 24), 275, backgroundkolor, foregroundkolor, 1, 1, cc
Next cc
currentfont = 1
End If
If ltt$ = "help" Then
Cls
Print " entering a single character will draw that character in the loaded font"
Print "-# : a negative number will display the positvre value as the asccii character code"
Print "quit : quits the program"
Print "load : will load a dash font as the active working font"
Print "load2 : will load another dash font as the backup font or font to copy from"
Print "encode : will load and encode a ttf font and convert it into a dash font, this font"
Print " becomes the working font but is NOT SAVED until you use the save comand"
Print "zoom : zoom on in and edit characters in the pixel eidtor in the working dash font."
Print "show : displays the working font"
Print "show2 : displays the backup font"
Print "cls : Clean up the screen (eventually this is whole program is getting cleaned up)"
Print "whole words that are not supported will simply display the first character"
Print " "
End If
sampletext$ = "The brown cown jumped over the moon. Written in " + fnam$ + "."
drawstring 2, 300, sampletext$
drawstring 2, 350, "<cls><zoom><quit><load><load2><save><encode><show><show2><help>"
Loop Until ltt$ = "quit"
Cls
'crazystring exit message just for fun
'shows how scaling and color works with the drawchar command
byetext$ = "Goodbye. So long. BYE BYE."
Randomize Timer
lcrz = Len(byetext$)
For r = 1 To 6
Cls
_Limit 2
x = 2: y = 200
For n = 1 To lcrz
lt$ = Mid$(byetext$, n, 1)
ch = Asc(lt$)
drawchar x, y, backgroundcolor, Int(Rnd * 239 + 16), Int(Rnd * 3) + 1, Int(Rnd * 3) + 1, ch
x = x + lastcharwid + Int(Rnd * 4)
_Display
Next n
Next r
drawstring 2, 240, "BYE."
_Delay 1
System
Sub drawstring (xpos, ypos, A$)
nl = Len(A$)
x = xpos: y = ypos
For n = 1 To nl
lt$ = Mid$(A$, n, 1)
ch = Asc(lt$)
drawchar x, y, backgroundkolor, foregroundkolor, 1, 1, ch
x = x + lastcharwid + font_kerning(currentfont)
Next n
End Sub
Sub drawchar (xpos, ypos, bg, fg, drawH, drawW, ch)
'draw a single character
'drawH and DrawW are scaling factors to enlarge the character when drawn, default size is 1
ndashes = 0
cf = currentfont
maxcc = Len(char(cf, ch))
Dim DashPos(maxcc) As Integer
'there will never be this many dashes but we are playing it safe
Dim DNum(maxcc) As Integer
Hpos = InStr(1, char(cf, ch), "H")
Wpos = InStr(Hpos, char(cf, ch), "W")
ndashes = 0
firstdash = InStr(1, char(cf, ch), "B")
If firstdash = 0 Then firstdash = InStr(1, char(cf, ch), "F")
HH$ = Mid$(char(cf, ch), Hpos + 1, Wpos - Hpos - 1)
Horz = Val(HH$)
lastcharwid = Horz
' Print Horz
VV$ = Mid$(char(cf, ch), Wpos + 1, firstdash - Wpos - 1)
Vert = Val(HH$)
' Print Vert
For cc = firstdash To maxcc
p$ = Mid$(char(cf, ch), cc, 1)
If p$ = "B" Then
ndashes = ndashes + 1
DashPos(ndashes) = cc
End If
If p$ = "F" Then
ndashes = ndashes + 1
DashPos(ndashes) = cc
End If
Next cc
lastdash = ndashes
dt = lastdash - 1
DNum(lastdash) = Val(Mid$(char(cf, ch), DashPos(lastdash) + 1, maxcc))
For d = 1 To dt
tnum$ = Mid$(char(cf, ch), DashPos(d) + 1, DashPos(d + 1) - DashPos(d) - 1)
DNum(d) = Val(tnum$)
Next d
x = xpos
y = ypos
If drawH = 1 And drawW = 1 Then
For dd = 1 To lastdash
p$ = Mid$(char(cf, ch), DashPos(dd), 1)
If p$ = "F" Then
For r = 0 To (DNum(dd) - 1)
PSet (x, y), fg
x = x + 1
If x = xpos + Vert Then
y = y + 1
x = xpos
End If
Next r
End If
If p$ = "B" Then
For r = 0 To (DNum(dd) - 1)
PSet (x, y), bg
x = x + 1
If x = xpos + Vert Then
y = y + 1
x = xpos
End If
Next r
End If
Next dd
If ch = 32 Then lastcharwid = 8
End If
If drawH > 1 Or drawW > 1 Then
lastcharwid = lastcharwid * drawW
For dd = 1 To lastdash
p$ = Mid$(char(cf, ch), DashPos(dd), 1)
If p$ = "F" Then
For r = 0 To (DNum(dd) - 1)
Line (x, y)-(x + drawW, y + drawH), fg, BF
x = x + drawW
If x = xpos + Vert * drawW Then
y = y + drawH
x = xpos
End If
Next r
End If
If p$ = "B" Then
For r = 0 To (DNum(dd) - 1)
If noBKG < 1 Then Line (x, y)-(x + drawW, y + drawH), bg, BF
x = x + drawW
If x = xpos + Vert * drawW Then
y = y + drawH
x = xpos
End If
Next r
End If
Next dd
If ch = 32 Then lastcharwid = 8
End If
End Sub
Sub encodefont (fnt$, siz, fontno)
'convert a windows true type font into a dash font
fontfile$ = rootpath$ + "\Fonts\" + fnt$ + ".ttf"
style$ = "" 'font style is not case sensitive
f& = _LoadFont(fontfile$, siz, style$)
_Font f&
zerocc 'cleans up the horrible character grid
Dim frow$(40)
fchar$ = ""
'character zero isn't encoded
' each character is printed and loaded into a simple grid
' program is written with a hard limit of 40 pixels x 40 pixels per character
For ch = 1 To 255
fchar$ = ""
_ControlChr Off
Line (0, 0)-(200, 41), 0, BF
_PrintString (1, 1), Chr$(ch)
For x = 1 To 40
For y = 1 To 40
klr% = Point(x, y)
If klr% > 0 Then klr% = 1
cc(x, y) = klr%
Next y
Next x
rmax = 0
cmax = 0
For xx = 1 To 40: rcount(xx) = 0: ccount(xx) = 0: Next xx
For x = 1 To 40
For y = 1 To 40
If cc(x, y) > 0 Then
ccount(x) = x
PSet (x + 50, y), 12
End If
Next y
Next x
For y = 1 To 40
For x = 1 To 40
If cc(x, y) > 0 Then rcount(y) = y
Next x
Next y
For xx = 1 To 40
If rcount(xx) > rmax Then rmax = rcount(xx)
If ccount(xx) > cmax Then cmax = ccount(xx)
Next xx
For x = 1 To rmax
For y = 1 To cmax
If cc(x, y) <> 0 Then PSet (x + 100, y), 13
Next y
Next x
' if you want to be bored watching each letter as it scans uncomment the following lines
' Locate 10, 1
' Print " rmax "; rmax, " cmax ", cmax
' Input a$
fchar$ = fchar$ + "H" + Str$(cmax) + "W" + Str$(rmax)
penflag$ = "B"
count = 0
For r = 1 To rmax
frow$(r) = "B"
For c = 1 To cmax
If cc(c, r) = 0 Then
If penflag$ = "" Or penflag$ = "F" Then
penflag$ = "B"
If count > 0 Then frow$(r) = frow$(r) + Str$(count)
frow$(r) = frow$(r) + "B"
count = 0
End If
If penflag$ = "B" Then
count = count + 1
End If
End If
If cc(c, r) = 1 Then
If penflag$ = "" Or penflag$ = "B" Then
penflag$ = "F"
If count > 0 Then frow$(r) = frow$(r) + Str$(count)
frow$(r) = frow$(r) + "F"
count = 0
End If
If penflag$ = "F" Then
count = count + 1
End If
End If
Next c
frow$(r) = frow$(r) + Str$(count)
count = 0
penflag$ = ""
fchar$ = fchar$ + frow$(r)
Next r
If ch = 32 Then
spw = Int(fsize * .667)
fchar$ = "H1" + "W" + Str$(spw) + "B" + Str$(spw)
End If
char(fontno, ch) = fchar$
Next ch
_ControlChr On
End Sub
Sub savefont (fntNo, filename$)
fileout$ = filename$ + ".qdf"
Open fileout$ For Output As #1
Write #1, "' ***************************************************"
oline$ = "' " + filename$
Write #1, oline$
Write #1, "' ***************************************************"
Write #1, "' This Dash Font was wrtitten in QB64"
Write #1, "' yup.... can't do much with it otherwise"
For c = 1 To 255
Write #1, char(fntNo, c)
Next c
Close #1
End Sub
Sub loadqdf (fntNo, filename$)
filein$ = filename$ + ".qdf"
Open filein$ For Input As #1
For cc = 1 To 255
Do
Input #1, char(fntNo, cc)
first$ = Mid$(char(fntNo, cc), 1, 1)
Loop Until first$ <> "'"
Next cc
Close #1
End Sub
Sub zoom ()
' Dim cch(40, 40) As Integer
zerocc
Dim frow$(40)
cf = currentfont
redraw:
Cls
tchar$ = char(currentfont, chno)
drawchar 1, 1, 0, 15, 1, 1, chno
For x = 1 To 40
For y = 1 To 40
klr% = Point(x, y)
If klr% > 0 Then klr% = 1
cc(x, y) = klr%
Next y
Next x
ch = chno
Hpos = InStr(1, char(cf, ch), "H")
Wpos = InStr(Hpos, char(cf, ch), "W")
ndashes = 0
firstdash = InStr(1, char(cf, ch), "B")
If firstdash = 0 Then firstdash = InStr(1, char(cf, ch), "F")
HH$ = Mid$(char(cf, ch), Hpos + 1, Wpos - Hpos - 1)
rmax = Val(HH$)
VV$ = Mid$(char(cf, ch), Wpos + 1, firstdash - Wpos - 1)
cmax = Val(VV$)
tchar$ = char(currentfont, chno)
tchar$ = Right$(tchar$, Len(tchar$) - (firstdash - 1))
For rr = 1 To rmax
For cc = 1 To cmax
If cc(rr, cc) > 0 Then
Line (rr * 8 + 50, cc * 8)-(rr * 8 + 6 + 50, cc * 8 + 6), 15, BF
Else
Line (rr * 8 + 50, cc * 8)-(rr * 8 + 6 + 50, cc * 8 + 6), 2, B
End If
Next cc
Next rr
Locate 17, 1
Print tchar$
Locate 3, 1: Print "CHR"
Locate 4, 1: Print chno
Locate 21, 1
Print "choose a letter, -# for ascii code, <done>,<+col>,<+row>,<left>,<right>,<up>"
Print "<down>,<restore>,<trimc>,<trimr>,<setgrid>"
Locate 23, 1
Input a$
cll = Len(a$)
If cll = 1 Then
chno = Asc(a$)
If chno < 1 Then chno = 1
If chno > 255 Then chno = 255
GoTo redraw
End If
If InStr(1, a$, "-") = 1 Then
chno = Val(a$): chno = chno * -1
If chno < 1 Then chno = 1
If chno > 255 Then chno = 255
GoTo redraw
End If
If a$ = "+row" Then
cmax = cmax + 1
tchar$ = "H" + Str$(rmax) + "W" + Str$(cmax) + tchar$ + "B" + Str$(rmax)
char(currentfont, chno) = tchar$
End If
If a$ = "+col" Then
rmax = rmax + 1
dashcc chno, rmax, cmax
End If
If a$ = "trimc" Then
rmax = rmax - 1
dashcc chno, rmax, cmax
End If
If a$ = "trimr" Then
cmax = cmax - 1
dashcc chno, rmax, cmax
End If
If a$ = "setgrid" Then
Cls
Print "current rows "; rmax, "current columns "; cmax
Input "New rows", nr
Input "New columns", nc
If nr < 1 Then nr = 1
If nr > 40 Then nr = 40
If nc < 1 Then nc = 1
If nc > 40 Then nc = 40
cmax = nc
rmax = nr
dashcc chno, rmax, cmax
End If
If a$ = "left" Then
For x = 2 To rmax
For y = 1 To cmax
cc(x - 1, y) = cc(x, y)
Next y
Next x
dashcc chno, rmax, cmax
End If
If a$ = "right" Then
For x = (rmax - 1) To 2 Step -1
For y = 1 To cmax
cc(x, y) = cc(x - 1, y)
Next y
Next x
dashcc chno, rmax, cmax
End If
If a$ = "up" Then
For x = 1 To rmax
For y = 1 To (cmax - 1)
cc(x, y) = cc(x, y + 1)
Next y
Next x
dashcc chno, rmax, cmax
End If
If a$ = "down" Then
For x = 1 To rmax
For y = cmax To 2 Step -1
cc(x, y) = cc(x, y - 1)
Next y
Next x
dashcc chno, rmax, cmax
End If
If a$ = "neg" Then
For x = 1 To rmax
For y = 1 To cmax
If cc(x, y) = 0 Then
cc(x, y) = 1
Else
cc(x, y) = 0
End If
Next y
Next x
dashcc chno, rmax, cmax
End If
If a$ = "help" Then
Cls
Print " entering a single charcter will drawthat character in the loaded font"
Print "-# : a negative number will display the positve value as the asccii character code"
Print "done : returns to the main program where the font can be saved"
Print "mm : activates the mouse editing of the charcater shown, press any key in that mode to stop"
Print " yes, the mouse handling is bad here."
Print "restore : will replace the charcter in the workign font with the one from the backup font"
Print "+col : adds a blank column to a character"
Print "+row : adds a blank row to the charcter"
Print "left : drags the character left one pixel"
Print "right : drags the character right one pixel"
Print "up : drags the character up one pixel"
Print "setgrid : lets the grid for the charcter to be reset anywhere from 1 to 40 pixels"
Print "trimr : trims away the bottom row"
Print "trimc : trims away the right hand column"
Print " "
Print "moving a charcter outside the grid will cause loss of that data as will setting the grid too small"
Print " "
Print "changes must be saved in the main program or they will be lost"
Print " "
Input anyk$
End If
If a$ = "restore" Then
char(currentfont, chno) = char(currentfont + 1, chno)
zerocc
Cls
drawchar 1, 1, 0, 15, 1, 1, chno
For x = 1 To 40
For y = 1 To 40
klr% = Point(x, y)
If klr% > 0 Then klr% = 1
cc(x, y) = klr%
Next y
Next x
dashcc chno, rmax, cmax
End If
If a$ = "mm" Then
'horrible mouse handling here, sorry
md$ = ""
Do While md$ = ""
_Limit 500
mflag = 0
Mouser mx, my, mb
If mb Then
Do While mb 'wait for button release
_Limit 1000
Mouser mx, my, mb
If mx >= 58 And my >= 7 And mx <= (rmax * 8 + 57) And my <= (cmax * 8 + 6) Then
' Beep
cpick = Int((mx - 50) / 8)
rpick = Int((my - 6) / 8) + 1
If cc(cpick, rpick) = 0 Then
cc(cpick, rpick) = 1
mflag = 0
dashcc chno, rmax, cmax
Line (cpick * 8 + 50, rpick * 8)-(cpick * 8 + 6 + 50, rpick * 8 + 6), 15, BF
Else
cc(cpick, rpick) = 0
dashcc chno, rmax, cmax
Line (cpick * 8 + 50, rpick * 8)-(cpick * 8 + 6 + 50, rpick * 8 + 6), 0, BF
Line (cpick * 8 + 50, rpick * 8)-(cpick * 8 + 6 + 50, rpick * 8 + 6), 2, B
End If
Locate 19, 1
Print cpick, rpick
Else
mflag = 1
End If
Loop
End If
md$ = InKey$
Loop
End If
If a$ <> "done" Then GoTo redraw
Cls
End Sub
Sub Mouser (x, y, b)
mi = _MouseInput
b = _MouseButton(1)
x = _MouseX
y = _MouseY
End Sub
Sub zerocc ()
For x = 1 To 40
For y = 1 To 40
cc(x, y) = 0
Next y
Next x
End Sub
Sub dashcc (ch, rmax, cmax)
'this converts the cc array into the dashcode for a character in the font set
fchar$ = ""
fchar$ = fchar$ + "H" + Str$(rmax) + "W" + Str$(cmax)
penflag$ = ""
count = 0
For r = 1 To cmax
frow$ = "B"
For c = 1 To rmax
If cc(c, r) = 0 Then
If penflag$ = "" Or penflag$ = "F" Then
penflag$ = "B"
If count > 0 Then frow$ = frow$ + Str$(count)
frow$ = frow$ + "B"
count = 0
End If
If penflag$ = "B" Then
count = count + 1
End If
Else
If penflag$ = "" Or penflag$ = "B" Then
penflag$ = "F"
If count > 0 Then frow$ = frow$ + Str$(count)
frow$ = frow$ + "F"
count = 0
End If
If penflag$ = "F" Then
count = count + 1
End If
End If
Next c
frow$ = frow$ + Str$(count)
count = 0
penflag$ = ""
fchar$ = fchar$ + frow$
Next r
char(currentfont, ch) = fchar$
End Sub
If you want another program to use the dashfont this creates you will need to carry over the shared variables and thre subs drawstring, drawchar, and loadqdf.
It's crude, it's fairly simple, and while not done yet it is entirely useable so I'm sharing it here.
|
|
|
qb64 and ramdisk compilation |
Posted by: Coolman - 04-30-2022, 09:53 AM - Forum: General Discussion
- Replies (4)
|
|
hello, my computer under linux has a lot of memory. to speed it up as much as possible i have configured half of the memory in ramdisk. i have examined the source code of qb64, it would be nice to have an option at compile time to create temp directories in the ramdisk. i think it could speed up the compilation of the programs by a factor 10 or more...
|
|
|
Steve's Quick Lesson on DIM |
Posted by: SMcNeill - 04-30-2022, 05:25 AM - Forum: Learning Resources and Archives
- Replies (2)
|
|
Let's talk about DIM for a moment! To help us have this conversation, let's refer to the following code, which you can compile and stare at in your IDE if you want, just to test and make certain that the syntax is, indeed, correct.
Code: (Select All) Dim a, b, c
Dim d As Integer, e As Double, f As Single
Dim g, h, i As _Float
Dim As String j, k, l
Now, let's break down what we're doing here, line by line.
Our first line of code is:
Code: (Select All) Dim a, b, c
This is the simplest type of DIM statement, and it simply says that we're going to officially DIM and name three variables to whatever the default type is. Without any DEF or _DEFINE statement, these three variables are all going to be the default type of SINGLE.
Code: (Select All) Dim d As Integer, e As Double, f As Single
Here, we're assigning a set type of each variable in that single DIM statement. d is an integer. e is a double. f is single. Easy enough to follow along with the logic behind this statement, right?
Code: (Select All) Dim g, h, i As _Float
Now this line gets a little tricky for some people, as they confuse it with the newest syntax for DIM. They think that the way it's written, all the variables on this line are _FLOAT. They're not! Just compare this line to the one above it, and then apply the same logic as the first DIM statement we looked at. What types are the three variables here?
g is implicitly defined to be our default variable type -- SINGLE, in this case. So is h. i, on the other hand, is explicitly defined by the user to be a _Float.
Code: (Select All) Dim As String j, k, l
And here, we have the new syntax for how one can DIM variables. If you notice, the type comes first on the left, with all the variables of this explicit type to be to the right of the type definition. j, k, and l are all String type variables.
See the difference in the 3rd and 4th lines' syntax, and understand why they're two completely different things?
If you want to define a large number of variables as a single type all at once, use the DIM AS <TYPE> syntax. Anything else would be incorrect.
|
|
|
rounded rectangles and buttons |
Posted by: James D Jarvis - 04-29-2022, 09:20 PM - Forum: Programs
- Replies (5)
|
|
This little program is a demo for simple rounded rectangle routines. It'll draw buttons too (but i didn't code them to be clickable here).
Code: (Select All) 'simple rounded rectangles
Screen _NewImage(800, 480, 32)
Dim Shared klr(0 To 255) As _Unsigned Long
buildrefcolors
rbrect 1, 1, 798, 462, 4, 2, klr(4), klr(16) 'the demo screen is in a rounded rectangle
roundrect 20, 20, 100, 50, 12, klr(12)
_PrintString (150, 20), "roundrect at 20,20 100 wide and 50 high, corner radius 12"
roundrect 20, 100, 100, 50, 200, klr(6)
_PrintString (150, 100), "roundrect at 20,100 100 wide and 50 high, corner radius 200"
_PrintString (150, 117), " the radius is trimmed down if is larger than height or width"
rbrect 20, 200, 100, 20, 5, 3, klr(12), klr(22)
_PrintString (150, 200), "round bordered rectangle at 20,200 40 wide adn 20 high, corner radius 5"
_PrintString (150, 217), "border thickness of 3"
rbrect_button 20, 250, 100, 30, 6, 4, klr(11), klr(22), "A Button"
_PrintString (150, 250), "Rounded bordered rectangle as a button image , "
_PrintString (150, 267), "similar to above but text is inserted and centered in sub"
rbrect_button 20, 320, 100, 30, 300, 3, klr(11), klr(22), "Second Btn"
_PrintString (150, 320), "same as above but with over-sized radius to get round sides"
Sub rbrect_button (xx, yy, ww, hh, r, brd, c1, c2, txt$)
_PrintMode _KeepBackground
rbrect xx, yy, ww, hh, r, brd, c1, c2
bpw = _PrintWidth(txt$)
bph = _FontHeight
cx = (xx * 2 + ww) / 2
tx = cx - bpw / 2
ty = yy + hh / 2 - bph / 2
_PrintString (tx, ty), txt$
End Sub
Sub rbrect (xx, yy, ww, HH, r, brdt, c1 As _Unsigned Long, c2 As _Unsigned Long)
roundrect xx, yy, ww, HH, r, c1
roundrect xx + brdt, yy + brdt, ww - (brdt * 2), HH - (brdt * 2), r - Int(brdt / 2), c2
End Sub
Sub roundrect (xx, yy, ww, HH, r, c As _Unsigned Long)
dr = r
If dr > ww / 2 Then dr = ww / 2 - 1
If dr > HH / 2 Then dr = HH / 2 - 1
x1 = xx: x2 = xx + ww - 1
y1 = yy: y2 = yy + HH - 1
'draw the circles at each corner inside the rectangle coordiates
CircleFill x1 + dr, y1 + dr, dr, c
CircleFill x2 - dr, y1 + dr, dr, c
CircleFill x1 + dr, y2 - dr, dr, c
CircleFill x2 - dr, y2 - dr, dr, c
'connect them with properly sized rectangles
Line (x1 + dr, y1)-(x2 - dr, y2), c, BF
Line (x1, y1 + dr)-(x2, y2 - dr), c, BF
End Sub
Sub buildrefcolors
'reference colors
'very slightly cooled EGA palette
_Source tiles&
klr(0) = Point(1, 1)
'very slightly cooled EGA palette
klr(1) = _RGB32(0, 0, 170) 'ega_blue
klr(2) = _RGB32(0, 170, 0) 'ega_green
klr(3) = _RGB32(0, 170, 170) 'ega_cyan
klr(4) = _RGB(170, 0, 0) 'ega_red
klr(5) = _RGB32(170, 0, 170) 'ega_magenta
klr(6) = _RGB32(170, 85, 0) 'ega_brown
klr(7) = _RGB32(170, 170, 170) 'ega_litgray
klr(8) = _RGB32(85, 85, 85) 'ega_gray
klr(9) = _RGB32(85, 85, 250) 'ega_ltblue
klr(10) = _RGB32(85, 250, 85) 'ega_ltgreen
klr(11) = _RGB32(85, 250, 250) 'ega_ltcyan
klr(12) = _RGB32(250, 85, 85) 'ega_ltred
klr(13) = _RGB32(250, 85, 250) 'ega_ltmagenta
klr(14) = _RGB32(250, 250, 85) 'ega_yellow
klr(15) = _RGB(250, 250, 250) 'ega_white
'filling the rest with greyscale
For c = 16 To 255
klr(c) = _RGB32(c, c, c)
Next c
End Sub
Sub CircleFill (CX As Long, CY As Long, R As Long, C As _Unsigned Long)
'sub by SMcNeill makes a filled circle without worrying about using the paint comamnd to fill an empty circle
Dim Radius As Long, RadiusError As Long
Dim X As Long, Y As Long
Radius = Abs(R)
RadiusError = -Radius
X = Radius
Y = 0
If Radius = 0 Then PSet (CX, CY), C: Exit Sub
' Draw the middle span here so we don't draw it twice in the main loop,
' which would be a problem with blending turned on.
Line (CX - X, CY)-(CX + X, CY), C, BF
While X > Y
RadiusError = RadiusError + Y * 2 + 1
If RadiusError >= 0 Then
If X <> Y + 1 Then
Line (CX - Y, CY - X)-(CX + Y, CY - X), C, BF
Line (CX - Y, CY + X)-(CX + Y, CY + X), C, BF
End If
X = X - 1
RadiusError = RadiusError - X * 2
End If
Y = Y + 1
Line (CX - X, CY - Y)-(CX + X, CY - Y), C, BF
Line (CX - X, CY + Y)-(CX + X, CY + Y), C, BF
Wend
End Sub
|
|
|
|