Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Trekn-mixer 0.2
#1
Trekn-mixer generates a sprite sheet of trekish spacecraft.  It's a version 0.1 for now. Still need to tweak the color schemes and likely to add some more ship parts.


[Image: image.png]

Code: (Select All)
'Trekn-Mixer v0.1
'By James D. Jarvis December 2022
'This program uses BASIMAGE coded by Dav for QB64GL 1.4, MAY/2020
'
'generate a sprite sheet of spacecraft for trek games
'each is 64 by 96 pixels but code here can be modified to change that
'
'press c or s to save a sprite sheet to the clipboard so you can paste it into a paint program
'and save is whatever format you desire
'pres <esc> to quit
'
'License: Share sprite sheets as long as they include generated credit bar in image
'any programs using original code or graphics from source or generated by program
' please include the following (or equivalent) line somwhere in comments and documentation:
'Includes Art and/or Code from Trekn-Mixer v0.1 created by James D. Jarvis
'
Randomize Timer
Dim Shared ms&
ms& = _NewImage(512, 416, 32)
Screen ms&
_Title "Mini-Trekn-Mixer V0.1"
Dim Shared part&
Dim Shared kk1 As _Unsigned Long
Dim Shared kk2 As _Unsigned Long
Dim Shared kk3 As _Unsigned Long
Dim Shared kk4 As _Unsigned Long
Dim Shared kk5 As _Unsigned Long
Dim Shared kk6 As _Unsigned Long

Dim Shared clr~&
part& = BASIMAGE1&

Type craft_type
    hull As Integer
    saucer As Integer
    drive As Integer
    cannon As Integer
    turret As Integer
    extension As Integer
    kscheme As _Unsigned Long
End Type
Type colorscheme_type
    k1 As _Unsigned Long
    k2 As _Unsigned Long
    k3 As _Unsigned Long
    k4 As _Unsigned Long
    k5 As _Unsigned Long
    k6 As _Unsigned Long
End Type
Dim Shared klrs(10) As colorscheme_type
buildklrs
Dim Shared craft_limit
craft_limit = 32
Dim Shared clook(craft_limit) As craft_type
_Source part&
'read the colors from the color reference bar whichever color is in the top left corner will be transparent
clr~& = Point(0, 0) 'find background color of image
kk1 = Point(0, 1): kk2 = Point(0, 2): kk3 = Point(0, 3): kk4 = Point(0, 4): kk5 = Point(0, 4): kk5 = Point(0, 4)
_Dest part&
Line (0, 0)-(0, 8), clr~& 'erase the color reference bar from the bit map
_ClearColor clr~&, ms& 'set background color as transparent
_ClearColor clr~&, part&
_Source ms&
_Dest ms&
Do
    Cls
    mmx = 0: mmy = 0
    For m = 1 To craft_limit
        'create a new set of weapon sprites
        clook(m).hull = Int(1 + Rnd * 15)
        '1- small saucer and drive
        '2- small saucer, drive and cannon
        '3- large saucer and drive
        '4- large saucer,drive and cannon
        '5- large saucer,drive,cannon  and turret
        '6- large saucer,drive and turret
        '7- large saucer and turret
        '8- small saucer,extension, and drive
        '9- small saucer,extnsion, drive and cannon
        '10- large saucer,extension,and drive
        '11- large saucer,extension,drive and cannon
        '12- large saucer,extension,drive,cannon  and turret
        '13- large saucer,extension,drive and turret
        '14 - mid suacer,extenstion and drive
        '15 - mid saucer, extension, cannon and drive
        Select Case clook(m).hull
            Case 1
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(1 + Rnd * 8)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 2
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(1 + Rnd * 8)
                clook(m).cannon = Int(1 + Rnd * 8)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 3
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 4
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 5
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 6
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = 0
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 7
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = 0
                clook(m).cannon = 0
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 8
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 12)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 6)
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 9
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 12)
                clook(m).cannon = Int(1 + Rnd * 8)
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 6)
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 10
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 11
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 12
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 13
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = 0
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 14
                clook(m).saucer = Int(1 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 15)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
            Case 15
                clook(m).saucer = Int(1 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 15)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
        End Select


        draw_craft mmx, mmy, m, 1
        mmx = mmx + 64
        If mmx >= _Width Then
            mmx = 0
            mmy = mmy + 96
        End If
    Next m
    md$ = "Spacecraft Sprite Sheet generated " + Date$ + " at " + Time$
    md2$ = "Mini-Trekn-Mixer V0.1 by James D. Jarvis"
    _PrintString (0, 385), md$
    _PrintString (0, 401), md2$
    Do
        _Limit 60
        kk$ = InKey$
    Loop Until kk$ <> ""
    If kk$ = "C" Or kk$ = "c" Or kk$ = "S" Or kk$ = "s" Then
        _ClipboardImage = ms&
        _Delay 0.3
        Locate 1, 1: Print "Sprite Sheet Saved to Clipboard"
        Sleep 3
    End If
Loop Until kk$ = Chr$(27)
_FreeImage part&
System
Sub buildklrs
    'lt grey
    tk = Int(200 + Rnd * 50)
    klrs(1).k1 = _RGB32(tk, tk, tk)
    tk = Int(tk * .8)
    klrs(1).k2 = _RGB32(tk, tk, tk)
    tk = Int(tk * .8)
    klrs(1).k3 = _RGB32(tk, tk, tk)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(1).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .7): tg = Int(tg * .7): tb = Int(tb * .7)
    klrs(1).k5 = _RGB32(tr, tg, tb)
    klrs(1).k6 = _RGB32(Int(20 + Rnd * 200), Int(20 + Rnd * 200), Int(20 + Rnd * 200))

    'dk grey
    tk = Int(100 + Rnd * 50)
    klrs(2).k1 = _RGB32(tk, tk, tk)
    tk = Int(tk * .6)
    klrs(2).k2 = _RGB32(tk, tk, tk)
    tk = Int(tk * .6)
    klrs(2).k3 = _RGB32(tk, tk, tk)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(2).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(2).k5 = _RGB32(tr, tg, tb)
    klrs(2).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))

    'red
    tr = Int(100 + Rnd * 155): tg = Int(tr / Int(5 + Rnd * 10)): tb = tg
    klrs(3).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(3).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(3).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(3).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(3).k5 = _RGB32(tr, tg, tb)
    klrs(3).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))

    'green
    tg = Int(100 + Rnd * 155): tr = Int(tg / Int(5 + Rnd * 10)): tb = tg
    klrs(4).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(4).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(4).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(4).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(4).k5 = _RGB32(tr, tg, tb)
    klrs(4).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))

    'blue
    tb = Int(100 + Rnd * 155): tr = Int(tb / Int(5 + Rnd * 10)): tg = tr
    klrs(5).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(5).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(5).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(5).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(5).k5 = _RGB32(tr, tg, tb)
    klrs(5).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))

    'purple
    tb = Int(100 + Rnd * 155): tr = tb: tg = Int(tb / Int(5 + Rnd * 10))
    klrs(6).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(6).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(6).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(6).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(6).k5 = _RGB32(tr, tg, tb)
    klrs(6).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))
    'yellow
    tg = Int(100 + Rnd * 155): tr = tg: tb = Int(tg / Int(5 + Rnd * 10))
    klrs(7).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(7).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(7).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(7).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(7).k5 = _RGB32(tr, tg, tb)
    klrs(7).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))
    'orange
    tr = Int(100 + Rnd * 155): tg = Int(tr * .5): tb = Int(tg / Int(5 + Rnd * 10))
    klrs(8).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(8).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(8).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(8).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(8).k5 = _RGB32(tr, tg, tb)
    klrs(8).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))
    'brown
    tr = Int(155 + Rnd * 100): tg = Int(tr * .6): tb = Int(tg * .6)
    klrs(9).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(9).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(9).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(9).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(9).k5 = _RGB32(tr, tg, tb)
    klrs(9).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))
    'random
    tr = Int(10 + Rnd * 240): tg = Int(10 + Rnd * 240): tb = Int(10 + Rnd * 240)
    klrs(10).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(10).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(10).k3 = _RGB32(tr, tg, tb)
    tr = Int(10 + Rnd * 240): tg = Int(10 + Rnd * 240): tb = Int(10 + Rnd * 240)
    klrs(10).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(10).k5 = _RGB32(tr, tg, tb)
    klrs(10).k6 = _RGB32(Int(10 + Rnd * 240), Int(10 + Rnd * 240), Int(10 + Rnd * 240))
End Sub

Sub draw_craft (Mx, my, mid, scale)
    'generate a monster image from source sprite sheet part& and render to the programs main screen ms&
    tempi& = _NewImage(64, 96, 32)
    'tempi& creates a temporary one sprite image for rendering
    _ClearColor clr~&, tempi&
    _Dest tempi&
    Cls
    'Locate 1, 1: Print clook(mid).style
    Select Case clook(mid).hull
        Case 1, 2
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 0)-((clook(mid).saucer - 1) * 64 + 63, 63)
        Case 3 To 7
            If clook(mid).drive > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 64)-((clook(mid).saucer - 1) * 64 + 63, 64 + 63)
            If clook(mid).turret > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).turret - 1) * 64, 256)-((clook(mid).turret - 1) * 64 + 63, 256 + 63)
        Case 8, 9
            lm = Int(Rnd * 5)
            _PutImage (0, 0 + 18 - lm)-(63, 63 + 18 - lm), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            _PutImage (0, 0 + 12 - lm)-(63, 63 + 12 - lm), part&, tempi&, ((clook(mid).extension + 10) * 64, 192)-((clook(mid).extension + 10) * 64 + 63, 192 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 0)-((clook(mid).saucer - 1) * 64 + 63, 63)

        Case 10 To 15
            lm = Int(Rnd * 10)
            If clook(mid).drive > 0 Then _PutImage (0, 0 + 32 - lm)-(63, 63 + 32 - lm), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0 + 28 - lm)-(63, 63 + 28 - lm), part&, tempi&, ((clook(mid).extension + 14) * 64, 192)-((clook(mid).extension + 14) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 64)-((clook(mid).saucer - 1) * 64 + 63, 64 + 63)
            If clook(mid).turret > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).turret - 1) * 64, 256)-((clook(mid).turret - 1) * 64 + 63, 256 + 63)

    End Select


    _Source tempi&
    'repaint source image with generate color values for new monster sprite

    For y = 0 To 95
        For x = 0 To 63
            Select Case Point(x, y)
                Case kk1
                    PSet (x, y), klrs(clook(mid).kscheme).k1
                Case kk2
                    PSet (x, y), klrs(clook(mid).kscheme).k2
                Case kk3
                    PSet (x, y), klrs(clook(mid).kscheme).k3
                Case kk4
                    PSet (x, y), klrs(clook(mid).kscheme).k4
                Case kk5
                    PSet (x, y), klrs(clook(mid).kscheme).k5
                Case kk6
                    PSet (x, y), klrs(clook(mid).kscheme).k6

            End Select
        Next x
    Next y

    'generated image in tempi& is rendered to ms& as a 32 by 64 sprite

    _PutImage (Mx, my)-(Mx + 63, my + 95), tempi&, ms&
    _Source ms&
    _Dest ms&
    _FreeImage tempi&
End Sub



'================================
'PNG file saved using BASIMAGE1&
'================================
Function BASIMAGE1& 'trekkin_ship_parts.png
    v& = _NewImage(1280, 320, 32)
    Dim m As _MEM: m = _MemImage(v&)
    A$ = ""
    A$ = A$ + "haIkM_PNMR[U60m>9mT<CBg][Z86SU09#_#JMnjEGghL<\o5L0YM`9o_ogok"
    A$ = A$ + "co7000000CY_NekJ000000Pjh?oi?M_6000000X>nhS?jN=000000#MlQOnO"
    A$ = A$ + "100000VFOlQno100000<[nDoo00000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000PUg7Ola?dkjAn100000N^]nMmWolWOHEj3fZWO00000HN]__GWm"
    A$ = A$ + "o^geYl3#m\j?ocb_l_bi70FC[nmoTOiOebOXWk]#?7Lm^>UOJai2[fWoUOf>"
    A$ = A$ + "NOle\ON`acgSUoIML#nGkl30[YEonOboJWoSS3[h?oW[No_Fmlcjfo3iW#7g"
    A$ = A$ + "3MN#_[cJ8gGm^NUOi70h^R=Oo[N=3[7h\nMUJnOcS1[Nn3=N\bmoAnGkl_jF"
    A$ = A$ + "inO8o[]LV3`\M>`n\oeehSmJo_g<=6\Uo]kaMFngnmUoi9o0odZll^8o[Kn?"
    A$ = A$ + ">W_L^ogKON#gYWGaNm673Fml7JlhZNo<cm0BnGkl7K<IEbjFN?NM]#O]NGWe"
    A$ = A$ + ":kQ^gNXi8<[S1Q6CFQ\^_o7YLlOfnL#\i2MfOfXcBn?KNPGmW=l<<6\jioZa"
    A$ = A$ + "VI?Sb_l7:gkoInJUVcSl_6i?eo\nWaW9PDkmE>?KL_YaPE?oQ6?ReWWcnmjM"
    A$ = A$ + "M;obO;6CVm\^?ck_Nfnl?3GWkZLOliK:DnWano4K<IE>oOe?n7J>>abo\MMP"
    A$ = A$ + "cjmK\l?CW3\jio\aUEijOb_l7:g[fLnUoe9o7WCG^gokhL5kMN^KfSmjZio5"
    A$ = A$ + "jmgkL9ogOl8dWe3=F<[G;#nGglWjhA_[[FTkc>Nof_>gEiNojJSUoEK]_[`i"
    A$ = A$ + "o[naoSc_iZk7<;i?fljB9oc`h`ZWomS3Kfnea^ngagk<#nUocncjohhPl;o_"
    A$ = A$ + "il7j??gkLo_gH?0c]gGcF?`Fml7Jl8U\>[[9DnGklOfhaWO=<laWCMNUoh?g"
    A$ = A$ + "SQboKnJmIOlooNihoLOlOEcoEgWk\l?3S3[Nng63R]FgSGoK6WoSl;ob_l_B"
    A$ = A$ + "io\noUcmofomnF6;^Z?FiNooSO_m>ObOnS7AkmcoUo#S=_i?o;obO:S7[Bo_"
    A$ = A$ + "Fml_ZmohZSo7oc4NVcl:OlOEcoZgo;iolWgUDNVHTOi_gi#nUOi?_L_mjO^?"
    A$ = A$ + "g=_ogn_ggbh`Zgo[E?oQ6?>nii_3dWCOoOToe>oY<V<cIEnoi?gcGUoS_gIb"
    A$ = A$ + "EceKF??He?nOLN=aboKO^>GUkLbo<<>8oYo_iIche3UOiGnUoE;oWeo_L^og"
    A$ = A$ + "n_ggbh`EI?gkoof63^Z7NiVoSOOm>OgIl8U\>[m4#nGklWbhb<WCi?lo>oMF"
    A$ = A$ + "n3mnOk2eKo#o_Wac7FmSoKiiXmi?TNGge<kYToIH<8UN0>SmnK;kWM=^Domj"
    A$ = A$ + "M>TOiGnUOi?_\OE_LB]g?_]aP]l\_gMkoOOEn3mmmV63b]7PcJ_of?NLlcfk"
    A$ = A$ + "cln_fKocmb_lWchb:TCiGn3=7_#m2IEn\oZMlGnGclOlnlYHfVcK\ehNfeoN"
    A$ = A$ + "kG?DnUOiGnGil7[?>YL__gL_O>[oOYToEXoOk7;BmmfkLmTaSHmfo\O_NGgb"
    A$ = A$ + "_l3lL1WogWogO50<1cg38\]ihVbW[cim>bBJm_WLm_gne3UOiGn_ZoGOnOTo"
    A$ = A$ + "I;oKS1id7WLOoS\SI9Unh5ZoO_eaPDk[G:_NSi?dhAX?K7jcmc#NUoOj\[_7"
    A$ = A$ + "j[ekj5XLbMnOm^N1:WDW7kflVkMmnD[njOUOiGnGcnONlijX4io]=6LL\8UN"
    A$ = A$ + "iLlmmFcla\oTloV732UoLjigK?oQ6?Rek[gjejTodLFon2=^dkj5X\f?_`#c"
    A$ = A$ + "oKf^O7`o:e?K?CG3hhjPCmjOc`jN3UoDGo_loncoE[e9UloVGCdZVoDFSK^i"
    A$ = A$ + "o=>>4JLiZ???SmlAnoMf2e?`Sonm^N[mh`<M_>ioJjo7`GnnnLOoWoo<O]?P"
    A$ = A$ + "eea[_MeeoV][76K^^7co\>7`E<oWm<MMEn3mmfkl8og;gU8o_aa1h<[BonTO"
    A$ = A$ + "io;a^G#\_F_[G00Pk;hcehfcnCPW1XIK>a[Jn?^6WLcoKOL8DfC9o773jM>N"
    A$ = A$ + "balBTogjH10XoO00`:jW[Uoc3Voeh;o[Knc]oWm^NUO0X4f^nN\W]kmoN^n?"
    A$ = A$ + "000lV]O]=WeocIMm?oniklgiGoo0H>MF_oL]O000HFlSnoMlIO;`o>0ekjEn"
    A$ = A$ + "1PB:dOO#<CoMN2000`Zgo[E?o0`obO_^2000cZOncokaOfGoi?3\chjQFml3"
    A$ = A$ + "00000c_[NF7VmW5RE?o00000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "00000000000000000000000000o_?ohS?bB_[Gi7000008^Lkge\e?\E?o00"
    A$ = A$ + "000`L:Fo[ncOnCFN[m1Kec?00000[ZInimZ4mkj>m3[giFn10000HM]:olOF"
    A$ = A$ + "[nMUJO`TonO>000000OIFjgeMci\mcoiMbFZ7k_cfCnkoi400000[UBnc3iX"
    A$ = A$ + "gOSEkWocLbhnj=eGi<>fSaSE?o00000Q=k?oK]^oGm>_7cMYckX>>TKOYNj["
    A$ = A$ + "LgObOoo<10000\:F]Wo]kdkZWlcoH_oInLdnio\5m4<Uj[Dmmj>m1Cne3#00"
    A$ = A$ + "00j;?oK_kWk[cbLZeM^mjHTjgaCjCI]boIm1\G7[[m[NM>aZWO000084?oKe"
    A$ = A$ + "mioZWS9]liPJ4j3hM>7^Ui_fS7SB__f?V8oj180000]WWo][[kLFOo8dg[WT"
    A$ = A$ + "gJdcSN<NTkicm<oeH\XdmnjZNOWcfAn7W[=0000`lccoFmj3d8d7`Se#\jY5"
    A$ = A$ + "?3DW]_kA_O6UlGSc;6]Wk]L7;TOm0400XOfV;J\em_om<KfW[cbo\>6lFcO9"
    A$ = A$ + "kU#;cO[FkGZ[1m^?S<SD?0KIOoR=VdjekOLO^U]HOmFl:WJZV7[7UlGSc96m"
    A$ = A$ + "NOUjHQl[7P00#?MecnB_[_JWm_n_Kc;MoLDojo^om<KfW[cbo\>6l6conn:l"
    A$ = A$ + "fbO9[m[f?e\?HW]>lFMNBZm2Z5m38ejXDS=Yd[]kfKg#^ch#_koG_cO?joe8"
    A$ = A$ + "dk[]GGEWboHLoD00H5]=G]#[oOVWWfaL7;ochh`nLMEnWaaPgJn;E?djAn;M"
    A$ = A$ + "_;?C=jkGXeh6KO5C9?gM4jmgnaRD[YBVmmILoiYmjEXJX4m0<UNo<Ji_Tm0Z"
    A$ = A$ + "fmnjYmnl\a2iG?010PAAXel7joM_[cJVk[bo\=>4KNiGUoII<h]VoSmDh]Uo"
    A$ = A$ + "JGomZ7HiF?ejlgkVk[jII977:iamSeF]jcK^_2E7?Y7PYfkWA<oUX7#e^gGe"
    A$ = A$ + "lUl[7P00`X8dJBR]noALNJgMnSi\NmB\neJ=?gk\MOBf_kH#YcoCfNm8oUJL"
    A$ = A$ + "HKMN?]6jInojkOKMQe^nKijRKE?0;M_ojah#Y>f7Z7KSb[Feo_SmDODNM\^N"
    A$ = A$ + "bi2YVoAmUlo\l300ebaWkQNG?e>[]JMoeZngVKI9cN:oI]gbJ]dKc[>^OEn_"
    A$ = A$ + "cH#9coCgFm8oUjLf]GU\7:]>oOmm_OMQ?Yf?NmjSoiGdjG7goaZ]WLMT[bo8"
    A$ = A$ + "d?PHeE=boamkXlZ5moKTbkE_>[oEb_lgKa^VE_[;0Z=GoSEnHOXe?>cS1W=O"
    A$ = A$ + "\AO^JKeofl:;If[alEO;mo;Ul?cmo[Fi_DWcne[Be3^NUo]]A^S3GekWmelM"
    A$ = A$ + "FGLYjUfIe`Ck1D:io^_:M_4UobToFekWBWoHkSHcg#nUoFKO>?kNMcnJ10VO"
    A$ = A$ + "a^FF>cege3WC[Fo_>Vm]<_?oSF?_ZAVcImoSbHaajl>Ooa^VG:oN]^N;if;e"
    A$ = A$ + "ikNe_O?bO9f>m8o?]ngomERN`ecl__oOY>>TjjOcM=[i^n_Lg^QnjgiJZiTo"
    A$ = A$ + "LNE[l7[FTolcoIg;jY_ZInS]obmj9boJWoJ8dJM>;om\F1h92Mm^SonWMm_H"
    A$ = A$ + "_ggde3;M]nVbnEekfad#gCl\_WA?oYDSaV7`IONIT7;B]FR=__[njUJood<n"
    A$ = A$ + "e[DGohE7gCeCgGKc1^gio>Io9S1U:okG3bCg>]<o?]ngOl^DeA_bon]EZS37"
    A$ = A$ + "onR]FdDGSjE[imZe2Wjn8fG?gaCiO=coIg;n9_JAn?KO7Kk:obO]5KoOFV3m"
    A$ = A$ + "eJA]2`CTbe_^KooN;G?lZNI]om]G9fVSPcZekfo[A?oYDOi<7XDf>mN\8gjX"
    A$ = A$ + "Di_US5kWoiCf?kW3L:cok9cAMOo_fV3L?coa\OEnOjH#9boaeMlda`FVoWTQ"
    A$ = A$ + "S7_;amLkIng_]CMLXTmoi>[k=dHB:kWDfoYN>Pl_Ni_6moYEi?WmO;koUloN"
    A$ = A$ + "bOYUjlmBMnPe^N1h^RMm^mGk:d_G^_oAojQYf;XmIkZk9m6bmEejCjocXWo["
    A$ = A$ + "Z_k<?X[fFmN\8gjhZijLWiWEkaR]iNNeaTLbonog7MlmmTS;OIK>`m>o7cdI"
    A$ = A$ + "ioYS1U8o7GcaC?oZUio9IHogcIgC>gj[fi?ffHO6BMLhhmU?K]Ui^fc#GW;U"
    A$ = A$ + "[;Vbn:Uj8ec1Toe;oQZS[f_SBncY>RM]5iO]cOY]]OS]o3EWQN_YNM;NGR=g"
    A$ = A$ + "WEQl?Gio\[g5:_a^ngnaSgfe3CI^FQ6W^:Gi>7fA;oGMomHgco=ToL>V7K>="
    A$ = A$ + "anm7ec5^K=LlchaDkj8e]mf[B_?bihmCffk?oBnc?g?Il[Gio^iHomUCiJa?"
    A$ = A$ + "YN;Mn3ECQf7kWWA:efI[klZeT6kNNi\n_DGokEeI>SaboJVo#ko[f_SBncY>"
    A$ = A$ + "RmiOiO]cO]_oNZih\_gJFcd>]HnOS\SOF_5OVLT<KioZ[eOW[O_okm]Lm`[V"
    A$ = A$ + "[eaOoHo_cMk>:REWa^NgIgc;fgoXUoDZ]HW7OeGo^k_A8cYnmGZ]CY7;f>o\"
    A$ = A$ + "6GcYVgoohfNkcGbONinhmR:miFennIiVSm_oD^FlCZgBWo#eDXmaES3Y^ngD"
    A$ = A$ + "j7C=FogEOOY\m^jL0iOmboIc3i>_jAncIkMLnEboJWoBkYSU]Hn1mfneg?KI"
    A$ = A$ + ";Uc=2]noEHLHVcO:W?Ogl?bOFYTgkh]Nm`[VWE\k[5kNMi\]71WESW=oRDWO"
    A$ = A$ + "b8VoW\fRL>n?BW;DRmOYnlL]6;Re;TB^m[eec>^]gO=Di?mLOln?UXfJAn_K"
    A$ = A$ + "FRM<OoeS?>WUA9o7[[HgG9UaP[VobMG3K9FoG:OOG]mBmN;bojTo#ONi9cO_"
    A$ = A$ + "Gi?e]GXiG:o[Kn;]D7;gZSD[iJE_]fFffONg<U_D>_h\ogm^>UobT_BUoAOl"
    A$ = A$ + "i^gkh\[omf^NhIeGXkWMUcnn7]\WB=VcH`EO_SBncY^R]Vd#I?eeXdSaRB\o"
    A$ = A$ + ";ejo[eHafeT:A=FclWjfNkjWbOJi>dmNfoNNjj7:Mn3ECYTUHI?D]Ejj]5K_"
    A$ = A$ + "#W7LeH`EcQ9en`TblQbMmOY\O_JKUjmFToe9oQVKb\Vo#caBnGklGBa^GdIe"
    A$ = A$ + "dEonUN>BmdI[1J6bgMbm:<>\2io\kcnTlWjlGjMVcmJegmm?JS5GEKG=6Mg_"
    A$ = A$ + "oNWkLZ_#ca8finYlIWNWokDCKIkhHaa_NYg_m<c_Q]CXSAOmZFScelHHX]mf"
    A$ = A$ + "eHBIO\ZioZeRLLkoTj]di?D=]me2UUHm0HkEXJ[TcC[Tio\J;di17?N6KKMg"
    A$ = A$ + "eoFkeoMennZJjZ?38o[Gn3=g\DcOXOM[boEojHK[SG3DnGklGBWMOWL7S:iL"
    A$ = A$ + "4jY]akHg[>daVgJFCmLRD67jMM;og?WQV;nMcOZcOYgI>fek^keoN3G?<fee"
    A$ = A$ + "^jn[k_FG\_nISaS#fc]nfO]mSWCOfem7alodJj^OV^WS5UJO?JKW[fVgmhD\"
    A$ = A$ + "gO>eM^c5jYeoZVoHgo9fmR_ZVJIn3ECkg7Q^oK\l7KLk>SW]8oWEKQnjaboa"
    A$ = A$ + "]EZ[omZifLfJKol[O[?nlbgGZcA:UeoVjHYl_>i?dl#C=oQne]:oGm[?KkLl"
    A$ = A$ + "JUbojVoB:UJn_g;JGn_jmVbL>6AWMoiHil=WGioWIoYio==6Lln\U:oY>oUN"
    A$ = A$ + "WiDWSBZGo;U[S?Ji?UiI5jkIo_gCf7SLn?kc:eHO<JIn^iO46;:in=fiom\V"
    A$ = A$ + "^JKNgSCYniicNOUhlSDg>[Jn3M_WWLOhFVoDVgaakS6;oa6gbM<]5ioZj:dG"
    A$ = A$ + "?Fn3=>6K>8i>7U#onKcmi\e0OWiFME=MeW1Toe;oQ^NAZi?gJ^TioZOmIKWm"
    A$ = A$ + "S3boJWoB:el_O<8UgK:c3HdLfmWgOLhZgC_cQlol\7K>Oanj_aaPSgW]TiOD"
    A$ = A$ + "7;^cLDBmjOYLMlA;o7?f6kN=Y>W\c^6Ql?^mo[di?WmM_bL:eO\]EXgcISOe"
    A$ = A$ + "J\h\k7WcfMKkLean[>7h^kgkFoYnmOefZUi?U?OLefihmNBiNgSDn_J>4ocm"
    A$ = A$ + "KgMOdHi?fhF^SY]8oGEGQnjaboa]G\iRLWiX4jgOTjoSl_fi?dL\B=oiFcU<"
    A$ = A$ + "oGm[?Kk4J^JboJVoBj\kk6[NR=NWjmJ7EWMoiDmfb\lOncmgM73N3S37_?K9"
    A$ = A$ + "coXNn#:G_k^Gok=Lm`H7W?N<kXHWS7jmLfnXgI_gi_eS1GUiHG;hYi?UcgZi"
    A$ = A$ + "LJbmL`JUoDo\gM7;>kjf7?>TjfYFi?D]TJmOgl__f>^mf?^GSl7jhjnJiZiM"
    A$ = A$ + "LFngOoWc^FfIK_NVoD[i]ko6;oa6kBmc4]<oWM\>VHi?D=7K^;i<gV#_o]gc"
    A$ = A$ + "XlcoYl_fi?dW9C=oQne]:oGm[?Kk4jjFboJVoB?GiSgomZ\Ub_oEGkJ45:3Y"
    A$ = A$ + ">WRD^NmXK5cOXcoOBnOCWoOfakBToAL<8e[gUkeoN;G?<faeJMlohGO4cN[b"
    A$ = A$ + "O?63B]F:MncMogS<OfgCYboC[[WTe]]K\[o\ONUe8oQVgjnJ9UJoYi?dHaNa"
    A$ = A$ + "ZUWVoSKkSkcDg^WUk_NUBml6bO\_nfmBc9oiL>#[cO^eK\lOlLoHc9iZiZ4Z"
    A$ = A$ + "V2mmLen:e]C:eFZcODnGcl7kc[Y\?2m[KEn_jG7KKMlnXboJWoJ?OicZ[LZi"
    A$ = A$ + "JE_]J<8f_>UgK_cSlWGV;MnO3S5[JnCmjMiLm_gbe3S]6TJMlOT63REG]:om"
    A$ = A$ + "H<8eJYFGo_7S5gIOfRkoESaRcfVQf775kleWTomO]HkcD[gBVoLldlGZJh\L"
    A$ = A$ + "oe[DZmg#nS]=f^GJ>i_67o;ek=GaboacmCMm_Y>GULWocMVCE:K[[n<Pl_Ni"
    A$ = A$ + "?dmAVel_]]>>W:iOMcO;V_L:eO\jmZ[K=RBI>maV3KZcoOT]Ri?WidVKnO3S"
    A$ = A$ + "5[JnOjekNkG?<FmESSoSDn3EG]:omJLhZJ9W<ERgK;6;B9c7Ooe8oG]?:aHa"
    A$ = A$ + "IKcWh9i_TePl7?gOm:UJo=ToHKS]kWVCn[aaoBmNcE\lOlLoW<oUJ]n_BD?G"
    A$ = A$ + "mI0iOmbO\[1ERmgXUomGkEnUoF<Oi]OM:IHokmhfXV[[YES1ohH`Wog?2h9l"
    A$ = A$ + "NkMNTolcLYboKI\HEcoIG_KcM^Vmnk;=bOV8Ue[DZSoSDnObJjNJnkeh`MGK"
    A$ = A$ + "J]bO;6;Bmla#cS\TioZmA96;bmL_SZmaoLfWgI<IEcofmXbmcK_YloU]k]FR"
    A$ = A$ + "lWkHE=N_i:Fn3M^oMGciIGoZVO_Y\m^jc0bojUoHG7I6coffJohPl_fi_fcI"
    A$ = A$ + "nhok#IihaPSo_KiJLJaJ6>Kn?QN_m>?bocclMcoKI\HUcoEGkjhJFRMm_mGK"
    A$ = A$ + "n=Mm`LGcbM?n?Bio9[Ck9i_WS5UJ]YU:o]H\X6[7_6i_4S5?iJamhjoUnN7["
    A$ = A$ + "Jn_Co_NKio;Kg[]5O6O45;oQ67^kJ>S]^coNL?QeoMlkY4eA^OnGnGWl7Jo?"
    A$ = A$ + "KiOonGnUoJj\e^N\FBimEkj]Vi?F^oj`jo:nhPloNboIcQl9io]<F\bi?e[M"
    A$ = A$ + "Meeo^cfLD\J7ocI=SU:omNl8WJ[5i_5S5g]NJMn;aHaC>g[7On_dOFIEcofJ"
    A$ = A$ + "<NbiHSNnobfJRZaWa_J\Z6_gkF;YLnO9GgIXJH_[N_UX>bmcobojTo#ea\Uo"
    A$ = A$ + "mkGiGn[]]mMXk]WcG[5eJ]bO\c[nkOfWKRLLBnO?io\<lTlOl[gkL:oWWocV"
    A$ = A$ + "cA>G[k]Mm`ElhoEgknhajLbO:KgA=c]8o]L\8gjYei_TS5Y^_?kjEe:oY^?O"
    A$ = A$ + "bHbZVoWnI^A>oY<>lT?cMen\5O?UhlPF^6hD[gB]o_cW1Toe8oQV[i\Uo]]G"
    A$ = A$ + "Xa1iO]cO=WgL\eaNeGKdF[gC63neaP?_Nn?m^^UolcI<g9oadkL:oG?64klh"
    A$ = A$ + "[^nG\?gl6bnIW3DZSom>OQbK:g3o>i?U]kXViFToF>FlTibeRlGbaRDggWMm"
    A$ = A$ + "ZJUoDgW?I<IEcoCo<g8WoD67:ajeB9ooM<8bm7?;oUXFbiLP_ne?iE\lUBMF"
    A$ = A$ + "RmmCo<Pl_6io\?7>;iOofEnUoFjhmjfGKkoJSjjlNJfomaP??hmgo;iGnUo_"
    A$ = A$ + "cLX[UMeeoBIKlf<k7o_jnkg=oG]=7i<GklgSaRk^VlJWoB?FTjnnH?<>[W=U"
    A$ = A$ + ":oY^?ObhbZVoL?Wk=UoD67^kWibE:i_VkkL?78fj#cI=ZYLlJok9W]I>[mm>"
    A$ = A$ + "O6hY[3_FioZmWlolcmW]lOW[o9o[AnKU#g3O4Z[JVgOLLhc?3:g[EoF\?ooc"
    A$ = A$ + "aj8iohk[ge]l;oeJlHE_ng<NloZe^MgloTeaec<OfJi_Kn_Jo=2I>fLl:EnC"
    A$ = A$ + "M>TenliLESco_C=8o]=gSDnCILHKOniWQok1aHOmLgoYTokjZJ_Dm0jhaZLN"
    A$ = A$ + "5Kn?i^=BYfbiloLboCNERlOefGn_geoZI?PfGOe<oKkSPGkiR[o9o[KnY>ne"
    A$ = A$ + "LioDooVYeo;ob?[mao[j9cMboIK_NWgHIN[fRUUkTo#KcN=FTJ=DSlOWjX6W"
    A$ = A$ + "?OLnTkEkcoCMOnTaUDfViXdOno^e#[cm8UoD67ffWK_>nm6j[MWmO[kognll"
    A$ = A$ + "Tc3f_6eO]VV<Goj?67^agKZeE>WoWCnOj[WTo[f^bomcoEckZTeI=boff>he"
    A$ = A$ + "MNhm0Toi?oDNonnEO6dM_NmXkGco;BnOc[oGnUOFkSoQj=aaNDTCnSYgil\<"
    A$ = A$ + "7kgk9i?emg8TiJWoF=FLWnZ5:_K__kTo#cO=dn<gj\Ti?fWc;MncMONglWbf"
    A$ = A$ + "k]UoL67>^F\mOo7oegAZio^2EckGGhC?7h\am[F7k_>fmig[oM_k^ff[ZkBl"
    A$ = A$ + "IPD[cJUo[f^bocboEO6LdcoC73B9ogmE]boamaI7gToj<WHBoLZPoIomi2eo"
    A$ = A$ + "_8iohk[ge]l;ohh_l;o[Hn_J]fiTikToD7;>K]?gMLlZe14JK7[>NJn?KLo>"
    A$ = A$ + "eiCcmK;oi<>LLmGOmm5koN7YVoLMF]^O]QehlPS7S2mjdL7HL8jfhVeE]nlO"
    A$ = A$ + "Z[M_4iOoH#:mkAn_geoBmL\gBngG[U8oWEOe>oG]?ToWUO:_O=GV87gOje\7"
    A$ = A$ + "E_eeo8ob?>n;oboZVoS[eh^O_g9o?MOnda`#cW>e]ma\LWlWji2W]F`B]fo#"
    A$ = A$ + "[kL4coC77bI]Gg]G4YToBdcQ#ekC>?8ej;nHeW9:nf8UmOYF7UlO_N]fclGZ"
    A$ = A$ + "[oMWme8VomGcXTi?gNDERlOefGn;CnY\nmeT3OL_DGgNdlkie7olNiGnW]l_"
    A$ = A$ + "jFmSob_l;o_clWC?_>kkm>ioYkcW^foW^MjAnOJmoTnYUBO0C=oaF3GXmiM["
    A$ = A$ + "gkmIg[kcJXmkGOe\4IkLfhBXce:aWog_m>^_7Ql7kGGjlWJ_VJIn_ZFJE^7a"
    A$ = A$ + "loTaQDfGQn\GXGU:ooMKU`eQ>FSe:oYlZTi?ff_diWb:UiRDRi]=ZTOiOUco"
    A$ = A$ + "ZKe?n;ob_l;obohWoX[QoP[f6AG?f9[ik>[O?UeQGRNQLLK<:mo:UJmYW?lf"
    A$ = A$ + "joG=boKZoG?=oGeGYA?oUXoGbOIj1HYbO\]M=b?000`Z8WNm5kk?[No]KMOU"
    A$ = A$ + "XG6?]nS]m>KOLF_7oj;WWdj1K\JZfW?LVWWm`S1iD3e8ogYo?U>o]XgOa>Vo"
    A$ = A$ + "VbO9>Gh>m0L4bOYjmE9j1H9cOX]]No1000dGQN^\BK]PoN=W_Ye`EkWoWNW_"
    A$ = A$ + "Lbo]bm9S3m>oif;TJToFek_#Io]ToB>6TK?0kMn;mh`Cj1HYcoa]]No1000d"
    A$ = A$ + "O1koG6[iKFjogOkki=FgKX]E_cG>iOfjoGXc[7YnoDkaWDj5D_cO]Nf?_cco"
    A$ = A$ + "H_joG_j1J`[mE`lgkc30000hgFmnomcO64olfol_]_?P_QaQOVokVkO?><Bi"
    A$ = A$ + "oh?OY7EclOVFVm[j1D]bO_jiC^m0[eiODj1J=c_No1000<N2fo_<F_gK^oOe"
    A$ = A$ + "ji_i=<>Dkn?dkl9oWo_cggniM=Qo<1>MoePaVLj1F[boXf3dI<o0000lK7G["
    A$ = A$ + "F^Oo_eno1[PHm0\Umo[7m5?in#EQl?2mnJec?0000odCoIC\7o\=2TWSm3ji"
    A$ = A$ + "o<_7ChmC?cli??Re=oS#?#Gel30000`ZYEmZOTnc4h\WoaJ^?7UNO]Z?oW00"
    A$ = A$ + "000`JiH?9KIo?7QnN5ZVZIoo6]l300000c_FfCZA\gGQk=GMnioM4c?00000"
    A$ = A$ + "`ZXH??PNNo0000006FAk3h=ekl000000#Ljg700000000000000000000000"
    A$ = A$ + "000000000000000`Kf<o_m^cLf000000^bGm7k?oi?CIObVi\100000LU]nS"
    A$ = A$ + "]IVjCf<W=00000P[\_oHOnaWCEObVi\100000iKVk;D\\MliSKVjAf<W=000"
    A$ = A$ + "008?clO7aMFffgS\So_kMMGZL?SI300000Bg<ogALGU]I^7IcLf00000Pd<c"
    A$ = A$ + "oM4G:IKVoITMVc600000TVI^7AYT]E?o00000\BVinRTbonG<Ko<RVBfFmWo"
    A$ = A$ + "A00000F5ngo2moKfN6iVi\10000#>l_o5cI?RlcoklV=00000Be<oc8Yom_#"
    A$ = A$ + "ooVe\10000#ZViNTTKo_docekh?0000[WINMQYT=iOmb_on_KNkATWo_i=K0"
    A$ = A$ + "000L?[jon78o[Mneo_i]7AjoglV=0000bg:o_o1boJWoI^79joUl?[I3000P"
    A$ = A$ + "lh_o_TOiO>kARnOUFf2mnVeloeGK6b6000`C<c[;:Uon?K5Fo[nO8ob_lOek"
    A$ = A$ + "KFco<T;000PW`OoWi_ocToe>ocFOBdo_aXoOK?cMYZViO6>^2000LGnko<mo"
    A$ = A$ + "AnUoIkJ0joGKkoG\ni5Z6>CYj;Xno1000l]m[AbOoW=G[CDo?ToAhioJTbOX"
    A$ = A$ + "N99oiUoBeW_JgG`Imh:000`M\jmo#nUoE>oaNOcJn3U;i?NO2kAOn:EO1WeS"
    A$ = A$ + "[000`c=c[=8FflcohJgo7iO]cO\gg\VoNdo_cj?E9niL]TiOTkcgCj;H?>_n"
    A$ = A$ + "9k[glWo:mi`m>?000cW]e8<Scgl\\YoO[MoOToe>oaNOcJn[Ioo:ec;GYj;h"
    A$ = A$ + "Cbo\ZEWG_=VNg_ogjW1;ilXViiT100d?7Goc<=Oc[bfZgo3iGnGil7km=[i_"
    A$ = A$ + "4mo[Dmik>m^:Wn2ZoOmicek7?_kfh=ni`BoWOh\mW7900#o]O>VngoRiOmoj"
    A$ = A$ + "oQom?#nGklWchD?jcgMjYEZeZnoe^noMfaUDlfnLHYbmKNLhZj<gNhWbfl=i"
    A$ = A$ + ">iOV8ob_l;ob_l;om?oaFkC=ZY[VWK?bfagCYWknXh\S]komkMMFkl7jl<iG"
    A$ = A$ + "nUoOWoNg[ZBd[[Lco\;DnKemM7ejM4cmKLLH;oaZec6O^jki=ToWLnaK>OYF"
    A$ = A$ + "kU8o_maYIlh_l;oboeIoZl?cS1[Nng636]co?^fXJD?Y\Vbm_WFV]F^f_[bO"
    A$ = A$ + ";[SD?_LfbO?Go_l;o[Ln71b_Wo_A?g_aaQDkaN^I\Fc9]dI?gaW#c9>e]C_c"
    A$ = A$ + "K\S[e>o_U?;DcSo_Eb_l_Ziohl;SUoIM<h]ToJ]_3MNN\co[I=LeaVBoIa#7"
    A$ = A$ + "O_jhO977B9KQfo]H=HWUoF_6`FG3m<oG]63iGnUOiOUbO=V[afnk^KSFF_e8"
    A$ = A$ + "geHn;m>Og]FCY_=aN?SnH#>I;U[oLWaXNWm[ZmBToAJMR?ILj97oO[Toe=oY"
    A$ = A$ + "dS_Fe3TNWmDWoi\<6lVbO]^gJ\nKUj_O]cF\eOlTJh\eeLlHK>_gB<fOehoa"
    A$ = A$ + "eVE;7cO]MFn3MmgFTmF>6TjiO[Nn[IO7B9o]Z>TOiGn[kLYnbMg6k[gJF[e:"
    A$ = A$ + "gUX^;mf[eIOoidYDokO_kg6SjH`a?_6kcfYDoGmnBIO=Ji?dL?B=oQfFSFnc"
    A$ = A$ + "M<j97oO[Toe=oilIfgjW_C=?iVognH`K:oehL_#cWoZioGSiYWbmXS]>QBTi"
    A$ = A$ + "DccCnNciLZSI[TiOd8oboMcO9LF??>[V[M_#TOiGnKceM^kfXEeJ]bmZgo_k"
    A$ = A$ + "FkUJkdj<7Znb]f?km?R[?n\Jj>eKYgNe<g?mhIYNoS`i1m:oS^E>oUnco_9g"
    A$ = A$ + "]G>aj3D[[mI;oGegY]mEYngof#cMo>WoGbjXVokOK9kMGYgFGU=moAnUobfK"
    A$ = A$ + "QB=_dJe;4iGnUojNMWooo_oamg6OnON?G7Foon^FgoIQkMnc7oHK=RS1Yf_Z"
    A$ = A$ + "k>WeA]oGGEC?YF[af\FI>eeEFRSoUJk?JSC_]L9oiWQW\noNdo[k^?;Eo[^K"
    A$ = A$ + "ocNJNfO?gI:oWE7UNmo?]f;eHHZIk^ioZeVlde0Ubf>UJ\Fio=#nUokVoLDb"
    A$ = A$ + "NNLFF:E_#TOiGnkoeWV=okaWbegbB_mZMfg>gZDWSES]I=bla?Gmde_6jkOD"
    A$ = A$ + "joeEio9[mOof=dfYgi?deN3E7ehhoMZSAhlRJToAg:WoBEkmH<h9kcBoIbB\"
    A$ = A$ + "mb9??mj[SNnCmJe?IOEbkA5kN[?ihO>[o9fnj\ePDSe1MejN>KoYo?b_lG_n"
    A$ = A$ + "ODkNNLF^NJM;ob_l3UA]F_f8_FhDjoEYbm8do[DbO9[_H[OYGi?UeTfRnOdS"
    A$ = A$ + "noUjmjjEoOTob?GTLfVUlJOa63b]F^knj>SkeHNQ?IKWCNfoNcmW1fg#n?;C"
    A$ = A$ + "YdS\L7[[Mn_kWObIm?Q6W>kmfRk7WK=Xo?b_lGfnO\mi\AHlIO]TK6TOiGnQ"
    A$ = A$ + "bHkL`BoISmWO?JWg6J^iUlcHaVonX<FDRe>=2kSkNln\kUDSSoYF7enhlCOO"
    A$ = A$ + "SnnMDZSNVoLfVelJCi^];E?L^C^KaiOeXf^kJPOKi?dggCFoOXiNgRlWjL\:"
    A$ = A$ + "Ao?b]WK]#ZedMboX>GcWLNcIWS:oek?oRN;U\UB_36YNNLEFC=?b_l;o#IdZ"
    A$ = A$ + "nodkLNF]eRl?BS5QVOE;joB_boI[3]UWogZeMWcnZGOn_fS5[HnOB_SJEo?N"
    A$ = A$ + "JMod<gb?3NFmERaRDjCb<To#eH^Io\c9[MncmcJYT]cN?W=V?:cohZjl9i_g"
    A$ = A$ + "i[6OVAn_nJ0c#fC=KWe_PAicig9cGU;iGnUOX<Fino]:moj\jZfed8<7]DFW"
    A$ = A$ + "A;>n?Jmo[ei?gjCn;OVSMNI=>7LKOMehL;joG^mQZVS1UJ\8WN0lVcOZOniZ"
    A$ = A$ + "aZNN_X#kkWLL=ff;Wmc8h\Jn\SGOmo>d[A>[i<VLEfFml_mnjmL;[iH#>GoK"
    A$ = A$ + "oWIjM]GR\WbWoUOiOEc?D2eJ=`eN]eUZfZMm=RO6NdFoO[?N_E7]nhO]kiE:"
    A$ = A$ + "I>FMeZlWJm9oU?c]<gY>>ldaRLcl8NMXkF[?YGI_YloTggK;oYV]H_WFMOmJ"
    A$ = A$ + "<fTBV^caogVWLlOUbo8>gjJ=6Llcc>n;obojVOX4Fmno]2mo:FngoOWQmE:7"
    A$ = A$ + "_gG;]ZN>[7PmXoOm>oGEObOicL?bM:S3?M\hZScG]>ZN<6LF=Ebno=;i?dH`"
    A$ = A$ + "MOOSJnc=KWmN6QiHDbaWHiOUOngToakJKU<ojoWno8obo\U=6;[LooFUnOMf"
    A$ = A$ + "aVFUoAZ_3mXFJM=4[?2SBnkEooVilOFV7U[77JLX6mo[fWOeRc?_Z^_Z7#cB"
    A$ = A$ + "n3Ekg]gWm>gaZoLk1J\_oA:S?I\iZSOclJT\ngkMno\Uo[>oOekoYl;o[JnQ"
    A$ = A$ + "BHUkoG;Z_AL=8[Fn7Ue2gbj8fnJDbO_jog<Wo[bl8OmWk>F4KNBS`Wg_ka[D"
    A$ = A$ + "?VmFkmI9ZoLjmiX>gicZeHI;UlgkLESc;2UoEoiOKeco:OnOXgg<TmLbVl;o"
    A$ = A$ + "[LnQWBooVonO]jiODF?H>[]_6IN4>7l\NPEcno]2ioZnZ=2GkYdeJ:mDMTbM"
    A$ = A$ + "Xjo^mZ>enXnfcO:[mMOF7eciCiLhHi#o_^^o?SnijiToD>n_jiOU?o?di0c#"
    A$ = A$ + "fc9Kb_l_bi7NZomN]OnO:kj_[af]Def:eo[E?oQjA#?[SFd;ZHm5Id>o[Eoi"
    A$ = A$ + "?\2io\]k8Tk#ekC7;2]>aAjHmM>fUJ>>kkIVbO:mo;F?djM^b9oidClHSG_Y"
    A$ = A$ + "<Wki2ajocfHgGOYNGkUK<hkLMecogZVoEoloAH^e]J<hhecUOiOUc?D27o<e"
    A$ = A$ + "X_M;E]]BmoJecOXiC=keaXTiNEO[Hn7m<GSj>fgkK8gQbB>S5W]>aI:oYdo_"
    A$ = A$ + "gfilW=6TB^fgGTEliOJKLJ[_GKjM]G^aP?gigoIF:o>oOFkA#:ICnUoE>o0g"
    A$ = A$ + "cZeo[#eD[VcD;gGYN<H5kogXMoSJoWOg:VoA?ceH\h]ViB<F<Cmnl\lWJooN"
    A$ = A$ + "kI?WaPDkCjKD:IKK<J6kmegIlWm0CnMnO\gCXNTnF]?;b_l;occefPNKejoE"
    A$ = A$ + "XJJUjoiZgo_AlNSQ^7G]jogZToA?ceH\h]ViB<F<Sc1>ein>SI?WaPSc[HTV"
    A$ = A$ + "OA9bOJ?oCcK__n>Wo\7HbOjWSlFUjiojoYl;o[In1^WE[oGQZYHc[j=__BmH"
    A$ = A$ + "`Zeo_AjL_FEO[Hn7m<GSjn]ViBTWILNRYVYI<kiT]HWW<;iOfnL=UeZOn_nO"
    A$ = A$ + ":obojVOPkihW_ZMo_6]?37J]Dc`nj\JH4F;Qnoe^j;dm#7]lGjjKdcL=ZkgJ"
    A$ = A$ + "V;ANVai9VJVVa\WCffoNfjG`7Cdc1ffOFQ7cI_[;63[nionco#nUoe=o0gcZ"
    A$ = A$ + "olo]J6UN4dbj#ooF_l?jI^6emK=cU8?chl4mloUgjOfjkaVNGkUK<hlomOPe"
    A$ = A$ + "fZOn_ol?TOiOMc?`mLL>3e^oO]JOAlS1S`j4mloe^jKDjiK;[_A?ceX^O[I^"
    A$ = A$ + "4iI6WWXWo_Lnko^i\g7OWahoko0[]EolOoiO8obojVOPk9dJ9VQm5a?6<2[C"
    A$ = A$ + "dcoGkZ_E<oSNV[AMoFcL9bc<>?A?oOY_nWI^g7OWCoIWb_]jWok?o3iGnGgl"
    A$ = A$ + "30GKDjA#[Ono6ikODkjK5coXWiJDg_e<GRl<ScCdcogLW=PW;fL9WQ[A\USL"
    A$ = A$ + "On_TOiOEb?0L]SoI5g[WUPFF7Snm?JmcogX=gP#gS_d?oOSFV[aHaK=cUH\H"
    A$ = A$ + "6W3LZcmM6cN^S10[YmoI4\MmRIjiPLK^a7cYl;ob?0TR#Gg\Gmo[EeaXoLAe"
    A$ = A$ + "bWo_AM^1KgS_Dio=TiB?FlVclC7;Vei0WbLOWe\WcH0`JJk?OPSoI:gkjZLi"
    A$ = A$ + "kjom?AnUoE=o00Q<j?o8]jioKol3jMVoM=Ffk_o6bLY7;NcInYS5cjLPCI^_"
    A$ = A$ + "cJfcI<0H=]o?cSIkJOOWacogo4iGnGel304bak=^M?TNGG]Zn>>oPNWgheIi"
    A$ = A$ + "^onK9cUL\h]WiW<F<cc1nZin>cI?ea0Ped\O]__cIhi7:obo:WO0P#6UOVWk"
    A$ = A$ + "EmmVj9DY^onK:cUJ\H6blM7;Vmi0OfLOWm\WbH0000000000000000000000"
    A$ = A$ + "0000000000000000000000000000000000000000000`hkc?n\ke`K\f0000"
    A$ = A$ + "00N36iN\=be600000`Xk[n[]YgebKZf000000N3nZmJOmok[oK_[UgD]1000"
    A$ = A$ + "0c\]79WNmm3m#=N6d6QW[]M?RM3GnC]f00000:[WncSWONnNg:aa^AkhO:eC"
    A$ = A$ + "_joG]7[do?0000hWnhS?n[N^=jUO\PlKd?PWnmgKKmQhY?oS?MK<27okifX6"
    A$ = A$ + "iZeeLZKcF<>]ji70000fKo[N^=jFneo_OlOkefXWioYomafXmgYKYLnH=ZiD"
    A$ = A$ + "fV]jc:YlLheSlWB]1000#i]oIGk>?oJ?mk_gFmnom?eo2ocoK9niAl=ocdh<"
    A$ = A$ + "VoDj3E=ZiDfV]ZGYmhW3gNncM<0DF_migGb\_:S1abmZ=>4J\Xgec8LN#_[;"
    A$ = A$ + "Pbhh[FomgK[n?o_[NoOWanO]ji?en`e[noeRa:mo30NR_VCgf[ghlk:A^?nJ"
    A$ = A$ + "V77>;g[bh`nec4:c_eejTKn?khn<WOHELlE[on71UH=`SB_?^ei0;lcoWSoc"
    A$ = A$ + "gonOdcn#eSn^Mg\eSl?JW[00QYoO[CO_fWkolWoLZIKLh\Nn]?cQj3f\<>Lg"
    A$ = A$ + "lgkj6NRkn<<mfOfW:A6VRa0moAoo6P]A??n?2KSFWYI^oG[Nn1PWAoodo_I_"
    A$ = A$ + "oOajiEXaQmoNcdi4a>O?DnW]\_j:EoOjM>^[S_ZmggXYDoloekLlTjO4f6mR"
    A$ = A$ + "noiho8\=JMVVinO]ji70N6moK]jga:go_#mhk\no=CS5jogjj9m`J6joeaGe"
    A$ = A$ + "nkKdXoOjoSnoeo]A??n?2KSFWYI^oG[Nn1PWAooF[nMXoO[Gooll?^fNB?\V"
    A$ = A$ + "RnO]`olon?i#oo6R]A_XoO>n?2KSFWYI^oG[Nn1PWAoodo?moK=jogZVoEgZ"
    A$ = A$ + "ocokoTSKf3[gN__:A6NkS1joSno=2KSNNlO4f6]>CcLo_Fml30?SnoYoOjog"
    A$ = A$ + "Lgo[E?oKS1?iioZgeoSco2go[E?ojoWnoXoOmOKdcSoS`fXeIJVkoeZWoBIF"
    A$ = A$ + "N6oUOiGnUokToEX_GWUKmoCooVinO]jio;kOEc_WAe:go[E?ojoWnoXoOmOK"
    A$ = A$ + "dcSo?mkOd>n_jmoJecO9leLJ?>oggnlLUOiGnUoL63FQnNMF^eo?moKVkoeZ"
    A$ = A$ + "Wo_XoO[Ko_Fml[oOjoSnoeo]QSoU=CUhmlFf_SBM<:i_4Fmeo_bi?DfGYa0i"
    A$ = A$ + "O]conaQEX_GWUKmoCooVinO]jiOK<`?o_[Io_Fml[oOjoc\eo77oGkSo[Lo_"
    A$ = A$ + "BMN9m8o_Yi<]bmoJecoZgoWE>oKI?fio[`H`naREX_GWUKmoCooVinO]jio_"
    A$ = A$ + "S3If7SgNO?:AFVUaPE>ojoWno<Kmoaaoenho:go_m_6]lWJ]=2FinO]jiOUk"
    A$ = A$ + "oeZWOmokWS5[#O_>;gjoWno=cmoJecoO77do_Vmm=JFil[oOjoc\eo77oGkS"
    A$ = A$ + "o[Loofo<fMFOfJMngVWXWo_g1iOMc_noYoOKS5[#O_>;gjoWno=cmoJecoO7"
    A$ = A$ + "7do_Vmm=JFil[oOjoc\eo77oGkSo[Loo2mZgi?eJJT\bmoI;ok73N;m]En;C"
    A$ = A$ + "fGmnoMVIO<HoHa:dg[cbmaGclhPno]NmoJecoO77b\?6_mnNDR\<;S1[LnGi"
    A$ = A$ + "noERW7UgdcdbIenMZoWnmgK>n?Wi_7om#GZKcFogoOQjgF;conmo8N^bIiIE"
    A$ = A$ + "Gg_l;o[Jneo_O>F\2mmj\L[oOjog<go[E?ooML#ooJfggXIUco:go_m_jifH"
    A$ = A$ + "4boMZoWnmgK>nokJ?eGSJnCY7C?9g?ILX5moj\J[eio>SASRE]o7b_l_UoEn"
    A$ = A$ + "iO<FnGUaP]aQ]G[J^?nJV77do_e[oG[Nng63bijk_mWkUBTUII<HUcoZolOM"
    A$ = A$ + "L^mgan]A_ccCbofebciea_oNWWL]ohhMOmV?oO6conG7oeQZiBmjZ]IXJ[f7"
    A$ = A$ + "CS=^dblWB]=Rdo7iOUcoaaPE>k[lH`n[_gkjY7i>dmijMmeRLOF_oVYaQSIn"
    A$ = A$ + "hom\nO=3S5jog_GS#:mo>fLLOKb=kcfH`:WokVmII<X4en\TokDocdaoBlZg"
    A$ = A$ + "iY4i_5O_edMk]E;>7Z5moJO^cYF[AnSmNO3cGLeGo_l_fiohH`:WmEN<h=M="
    A$ = A$ + "kJTk#g3_geG;b]noYoO[Joo:mkOTMg\<;S1gmIHj^OOSTWVQgnH#9ZmI9o[h"
    A$ = A$ + "aoBd?Vgdcdd:ToD^_D=Zi[fV]jnUYT]NToAlLU[bc:_nOiGnGel7jW]S]l_:"
    A$ = A$ + "S1KS3c#?>NB^?nJV77do?mo;Wl[oOeM^lSHfW]aPE>o?=3_maPBDkcBnMlO]"
    A$ = A$ + "?n?;i?UN<ESJ>U]I;joE:eA_boXM^B:W7]b[mGnGkl_bmoK;_kcn:=6\=>\m"
    A$ = A$ + "JEcmaGclhPnomcoNP:FoognmVQaR#mo;UGjoGj_oAfMcb\<6hioKMOn_llo]"
    A$ = A$ + "f7oWaWo]E?oYL?YNml_eRkGjio[\SU[F_?TOioHfG]aP#IOe63f67fN]Zinh"
    A$ = A$ + "[INLhhak#V]aQSIjhaj#Iohkm=?F4ZoOa>f_OL#ooZoLi7a\?KS17kkM^io]"
    A$ = A$ + "fkSWTmII<h9I?dH#_ccM[mWNlo]N=Pmg3oYSQ_ak1>Si?en#EjcICILHDjoE"
    A$ = A$ + "_boKd8LlZWIO5kkQl[oOjoWno5je<?>hioccoGZ_VYnoM\oVUnm?b>nZfOOS"
    A$ = A$ + "VE>o[ncoUWo_enho<nl_]ji?UNKekWo_N?Fe[lckcZO<MUco<]>WWVmEM<HD"
    A$ = A$ + "^WE_bmaGclhPWo??oOWM\OFOnoFIgmnKcbm5GilodNHnd_oN[4en\TO7oGkS"
    A$ = A$ + "ocBncY?LU\VCIK>:g_XGi70N7VUNLlTLOle<?>hioccoGZ_do?hMkYm`l]g3"
    A$ = A$ + "dIliObaO7oGilWBOXjecofXdS<?oO0`Ido_e]oONnolloiio30PgPA^?DSL]"
    A$ = A$ + "10\IFjaaCbm:go_#IOf67^:cWMN`<<Fhio30000FKcB?>NJfGYaPDj1f\=>T"
    A$ = A$ + "COoV]aRHWWWkG_gi00000hNdo_e[?7joGN_NkS5QniJ>d_G\_n<<600000[\"
    A$ = A$ + "E^oO[LnGaOnW3mgmQQbn\M>Qno10000[]I[G7bOniNUkog:l_1:WUWSi>e_?"
    A$ = A$ + "0000PgUEoO_ZFel7[gGm^^6QSecfHaMcc\=>000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "00000000000000000000000000egWOlIFOmEYF000000V1SD?g6YJ100000H"
    A$ = A$ + "6lATN[5k[_:e200000cXAji\ZEeb8m<WejJi[nZ]9U_N==Be200000c:mo[_"
    A$ = A$ + "S5mXF6YWi^AZFPEaoo7_>mG_Ze2000`\JTjcB[ZUAZWC]^F6YWi^ND;KKc[n"
    A$ = A$ + "_]lHo8D;[P?no7#g\o[Mf_o<E;oMKniWO;d_^UiO0Z5000PIg8mcII[ZUE_o"
    A$ = A$ + "GKKoLnjeN<XUeb8ec]ND;K=Gi_e`^WeZSoNeF[[U_jUdOncOn7KmFjhok]OM"
    A$ = A$ + "m?fgnJi_kSMmH;h_^QiO4Z500PigKHmO#]=BW[iio[^ebofKQ?giSMniG_ni"
    A$ = A$ + "^mebgKk[o_];o][FnhOfPOn3OmOneG[Ai_eebnnZMVFgo_FE;SD?g6YJ100H"
    A$ = A$ + "n=2mNK4ZQoIo=0om]C;[QHk[N<>dcJacoGO7;JI]lcWYX?Sd[Q?KB?#jA]lm"
    A$ = A$ + "cGeW9nO[OnKI]\O<oH?ff[e7oKE]\oi[kZn]e^So][FnacGhWogeGfgc]]fa"
    A$ = A$ + "fhlgkJ100F=kGSI?j3#?goQFgM?cOG63f]T[FWmND3afGmHLH4ZUAXgO]^FR"
    A$ = A$ + "]O6Q?oGSJiHoffL\OK7ojeHMgmXF2e_a[n_]:o]XF>fWYDjiF;bO[ZUSold^"
    A$ = A$ + "OKOloM]oi0^7eb_oI=nhcMk?oe]<om\F0PeffL]kilokij`Fml_Zni?[A]kW"
    A$ = A$ + "mYAHookmm8ToFocOFOokKkFG3afGQnj=9k=^FniiIWmcOIKokonFE;W_OniG"
    A$ = A$ + "_=i_=ebaN^laQN[4k[gRnodRJAoonmcIfEmK[E7oKA]lkN>M^ffo[jG;[Nn1"
    A$ = A$ + "02iS5_oG[NnGAKc]jW[aX3omoB7foQfgS#nKE=lSiEOh__MJMnKE=lgak0k["
    A$ = A$ + "#OmF<ngbJ9dj^?_o;]il_FE;QjkbIkoVmi_6D;OO]V`?O=Wme[fin=\F>^]_"
    A$ = A$ + "ZWK]<o]XFRmi]cjgF;koG][UHkc[dblGcJIec?iLlYmomOcXHkN>cjn;US5m"
    A$ = A$ + "hho8<68o]k?koN^?3G3OOLXmi_?kkSe`nok:\_oNooKcnn?fj?kmjOKano\e"
    A$ = A$ + "NgklgRJhhl_Sf3Z6UoFD3Ge[aHOmZol?dXJi\n]]Yg[o[Veba?_5Jo4j[GoW"
    A$ = A$ + "oUfD;o^gJOoO_j[G[lgbJiWKkddVlgVJi\N^Le_G=?o_Eeb8ec9moKLZU#eF"
    A$ = A$ + ";W3N_GkKhJZe?okSAno^NjacoOO73jaj`kmJokM]<JiOomOKI?8Jin<N=lma"
    A$ = A$ + "QfWof__?F3mjN]mJOOfn_gi_5kOmokgk_A8o]X6do?mo;fiKmNmOeZFneiKA"
    A$ = A$ + "kahLocoj?Gcajmlo]O\lZog]khOm[5moKLnI>]7ebZWoD[[SGgI6fGiNLIkn"
    A$ = A$ + ">]HnO]HOUKmdjlgkaPOO\XWokOEOk1d:WoFL_oN^??[6>NLXUi_ekkH73JaL"
    A$ = A$ + "O7QmmIWoekco]o[on?Umm8ToF<okoIOXoOAojEOm?M\oOajcB[?o[5eB?jid"
    A$ = A$ + "8E;aFcm_?6d_eoGcJiZiKdbiQdSJi\mAXaoFoioJG;7??:UoK[>o_5ebZWoD"
    A$ = A$ + "[[SGgM6fGiNLiS5^oOenJOmJoUK]dSlg[aPOO^Xno]27o_J=hmLmo]HLh\k3"
    A$ = A$ + "gblg[keOL>W7WoIKnl_mO[goQfgane]<o]Z6nmnjojedOO>TkAn[K=lcmggk"
    A$ = A$ + "[ON=gOF3]Il_=eB\[anmhmWojg[5i_Eeb_6c?\O>k[GmSo=ZF^J>7SdlOZA]"
    A$ = A$ + "8oQFci?oI?YWi_feba[kTbo]fi_UebZWoDZY?do_^lioNWo`G?BooVYmiEeb"
    A$ = A$ + "fmMnnoZoOcdn<eJH4VoG[^OgZVo#c_Xgcoan_=koAH>Wm\6nMO6fogele]g7"
    A$ = A$ + "mZ6fOof?nA_enlR_N=7oKG]4KnV7G3B;^>L?ZU#W_Mll\HOmFL^O[ZU#S[]j"
    A$ = A$ + "OgG7QJAn3gg]A9oe^F^JNWm>oe^FFmlWB=]IVfGSH==JiOOmdjlgkaPSeB?b"
    A$ = A$ + "O?73nN>GOoOWamiIeB[FkK?gWWE37k1a<__?F3Sdmo7UiNdRnOHognmo8<_c"
    A$ = A$ + "NF3kgg7G_enOM[bO;ZQmmL;dn:nG_^mo[EebIG[MomNJmiO]ZFniiK[g?o[Y"
    A$ = A$ + "<ngbkofcJAnUOiOMc?07mel\goOWemIlJYmmQMLjmk7ojom\__3M<XW7okan"
    A$ = A$ + "^Wck`n_OkoAHNWm\6FalWJ?G7QaoJD;boJWoSkoHmL\FINTZ5iGnUoe=o00\"
    A$ = A$ + "^2eoaNgoCkof\oS]_7QlgZn_]Jio\mg8=nG[JAnGklOF=Dkl>ReRl;obojVO"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000H>lo1lf0]"
    A$ = A$ + "%%%0"
    btemp$ = ""
    For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
        If InStr(1, B$, "%") Then
            For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
                If F$ <> "%" Then C$ = C$ + F$
            Next: B$ = C$: End If: For j = 1 To Len(B$)
            If Mid$(B$, j, 1) = "#" Then
        Mid$(B$, j) = "@": End If: Next
        For t% = Len(B$) To 1 Step -1
            B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
            Next: X$ = "": For t% = 1 To Len(B$) - 1
            X$ = X$ + Chr$(B& And 255): B& = B& \ 256
    Next: btemp$ = btemp$ + X$: Next
    btemp$ = _Inflate$(btemp$)
    _MemPut m, m.OFFSET, btemp$: _MemFree m
    BASIMAGE1& = _CopyImage(v&): _FreeImage v&
End Function
Reply
#2
updated to version 0.2. A whole bunch of parts added and some adjustment to the color scheme.

Code: (Select All)
'Trekn-Mixer v0.2
'By James D. Jarvis December 2022
'This program uses BASIMAGE coded by Dav for QB64GL 1.4, MAY/2020
'
'generate a sprite sheet of spacecraft for trek games
'each is 64 by 96 pixels but code here can be modified to change that
'
'press c or s to save a sprite sheet to the clipboard so you can paste it into a paint program
'and save is whatever format you desire
'pres <esc> to quit
'
'License: Share sprite sheets as long as they include generated credit bar in image
'any programs using original code or graphics from source or generated by program
' please include the following (or equivalent) line somwhere in comments and documentation:
'Includes Art and/or Code from Trekn-Mixer v0.2 created by James D. Jarvis
'
Randomize Timer
Dim Shared ms&
ms& = _NewImage(512, 416, 32)
Screen ms&
_Title "Mini-Trekn-Mixer V0.2"
Dim Shared part&
Dim Shared kk1 As _Unsigned Long
Dim Shared kk2 As _Unsigned Long
Dim Shared kk3 As _Unsigned Long
Dim Shared kk4 As _Unsigned Long
Dim Shared kk5 As _Unsigned Long
Dim Shared kk6 As _Unsigned Long
Dim Shared clr~&
part& = BASIMAGE1&
Type craft_type
    hull As Integer
    saucer As Integer
    drive As Integer
    cannon As Integer
    turret As Integer
    extension As Integer
    kscheme As _Unsigned Long
    wings As Integer
End Type
Type colorscheme_type
    k1 As _Unsigned Long
    k2 As _Unsigned Long
    k3 As _Unsigned Long
    k4 As _Unsigned Long
    k5 As _Unsigned Long
    k6 As _Unsigned Long
End Type
Dim Shared klrs(10) As colorscheme_type
Dim Shared noise
noise = 7
buildklrs
Dim Shared craft_limit
craft_limit = 32
Dim Shared clook(craft_limit) As craft_type
_Source part&
'read the colors from the color reference bar whichever color is in the top left corner will be transparent
clr~& = Point(0, 0) 'find background color of image
kk1 = Point(0, 1): kk2 = Point(0, 2): kk3 = Point(0, 3): kk4 = Point(0, 4): kk5 = Point(0, 5): kk6 = Point(0, 6)
_Dest part&
Line (0, 0)-(0, 8), clr~& 'erase the color reference bar from the bit map
_ClearColor clr~&, ms& 'set background color as transparent
_ClearColor clr~&, part&
_Source ms&
_Dest ms&
Do
    Cls
    mmx = 0: mmy = 0
    For m = 1 To craft_limit
        'create a new set of weapon sprites
        clook(m).hull = Int(1 + Rnd * 31)
        '1- small saucer and drive
        '2- small saucer, drive and cannon
        '3- large saucer and drive
        '4- large saucer,drive and cannon
        '5- large saucer,drive,cannon  and turret
        '6- large saucer,drive and turret
        '7- large saucer and turret
        '8- small saucer,extension, and drive
        '9- small saucer,extnsion, drive and cannon
        '10- large saucer,extension,and drive
        '11- large saucer,extension,drive and cannon
        '12- large saucer,extension,drive,cannon  and turret
        '13- large saucer,extension,drive and turret
        '14 - mid suacer,extenstion and drive
        '15 - mid saucer, extension, cannon and drive
        '16- l2 with drive
        '17 l2 with drvie and cannons
        '18 l2 with cannons
        '19   ls with turrets and drives
        Select Case clook(m).hull
            Case 1
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(1 + Rnd * 8)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 2
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(1 + Rnd * 8)
                clook(m).cannon = Int(1 + Rnd * 8)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 3
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 4
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 5
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 6
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = 0
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 7
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = 0
                clook(m).cannon = 0
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 8
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 12)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 6)
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 9
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 12)
                clook(m).cannon = Int(1 + Rnd * 8)
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 6)
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 10
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 11
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 12
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 13
                clook(m).saucer = Int(11 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 18)
                clook(m).cannon = 0
                clook(m).turret = Int(1 + Rnd * 20)
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 14
                clook(m).saucer = Int(1 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 15)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 15
                clook(m).saucer = Int(1 + Rnd * 10)
                clook(m).drive = Int(3 + Rnd * 15)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = Int(1 + Rnd * 5)
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 16
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 17
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 18
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = 0
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 19
                Do
                    clook(m).saucer = Int(1 + Rnd * 20)
                Loop Until clook(m).saucer < 11 Or clook(m).saucer > 16
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 20
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 21
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 22
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = 0
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0
            Case 23
                Do
                    clook(m).saucer = Int(1 + Rnd * 20)
                Loop Until clook(m).saucer < 11 Or clook(m).saucer > 16
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = 0

            Case 24
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = Int(1 + Rnd * 20)
            Case 25
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = Int(1 + Rnd * 20)
            Case 26
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = 0
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = Int(1 + Rnd * 20)
            Case 27
                Do
                    clook(m).saucer = Int(1 + Rnd * 20)
                Loop Until clook(m).saucer < 11 Or clook(m).saucer > 16
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = Int(1 + Rnd * 20)
            Case 28
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = 0
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = Int(1 + Rnd * 20)
            Case 29
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = Int(1 + Rnd * 20)
            Case 30
                clook(m).saucer = Int(1 + Rnd * 20)
                clook(m).drive = 0
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).turret = 0
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = Int(1 + Rnd * 20)
            Case 31
                Do
                    clook(m).saucer = Int(1 + Rnd * 20)
                Loop Until clook(m).saucer < 11 Or clook(m).saucer > 16
                clook(m).drive = Int(3 + Rnd * 20)
                clook(m).cannon = Int(1 + Rnd * 10)
                clook(m).extension = 0
                clook(m).kscheme = Int(1 + Rnd * 10)
                clook(m).wings = Int(1 + Rnd * 20)
        End Select
        draw_craft mmx, mmy, m, 1
        mmx = mmx + 64
        If mmx >= _Width Then
            mmx = 0
            mmy = mmy + 96
        End If
    Next m
    md$ = "Spacecraft Sprite Sheet generated " + Date$ + " at " + Time$
    md2$ = "Mini-Trekn-Mixer V0.2 by James D. Jarvis"
    _PrintString (0, 385), md$
    _PrintString (0, 401), md2$
    Do
        _Limit 60
        kk$ = InKey$
    Loop Until kk$ <> ""
    If kk$ = "C" Or kk$ = "c" Or kk$ = "S" Or kk$ = "s" Then
        _ClipboardImage = ms&
        _Delay 0.3
        Locate 1, 1: Print "Sprite Sheet Saved to Clipboard"
        Sleep 3
    End If
Loop Until kk$ = Chr$(27)
_FreeImage part&
System
Sub buildklrs
    'lt grey
    tk = Int(200 + Rnd * 50)
    klrs(1).k1 = _RGB32(tk, tk, tk)
    tk = Int(tk * .8)
    klrs(1).k2 = _RGB32(tk, tk, tk)
    tk = Int(tk * .8)
    klrs(1).k3 = _RGB32(tk, tk, tk)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(1).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .7): tg = Int(tg * .7): tb = Int(tb * .7)
    klrs(1).k5 = _RGB32(tr, tg, tb)
    klrs(1).k6 = _RGB32(Int(20 + Rnd * 200), Int(20 + Rnd * 200), Int(20 + Rnd * 200))

    'dk grey
    tk = Int(100 + Rnd * 50)
    klrs(2).k1 = _RGB32(tk, tk, tk)
    tk = Int(tk * .6)
    klrs(2).k2 = _RGB32(tk, tk, tk)
    tk = Int(tk * .6)
    klrs(2).k3 = _RGB32(tk, tk, tk)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(2).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(2).k5 = _RGB32(tr, tg, tb)
    klrs(2).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))

    'red
    tr = Int(100 + Rnd * 155): tg = Int(tr / Int(5 + Rnd * 10)): tb = tg
    klrs(3).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(3).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(3).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(3).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(3).k5 = _RGB32(tr, tg, tb)
    klrs(3).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))

    'green
    tg = Int(100 + Rnd * 155): tr = Int(tg / Int(5 + Rnd * 10)): tb = tg
    klrs(4).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .7): tg = Int(tg * .8): tb = Int(tb * .7)
    klrs(4).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .7): tg = Int(tg * .8): tb = Int(tb * .7)
    klrs(4).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(4).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(4).k5 = _RGB32(tr, tg, tb)
    klrs(4).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))

    'blue
    tb = Int(100 + Rnd * 155): tr = Int(tb / Int(5 + Rnd * 10)): tg = Int(tb / Int(5 + Rnd * 10))
    klrs(5).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .7): tb = Int(tb * .8)
    klrs(5).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .7): tb = Int(tb * .8)
    klrs(5).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(5).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(5).k5 = _RGB32(tr, tg, tb)
    klrs(5).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))

    'purple
    tb = Int(100 + Rnd * 155): tr = tb: tg = Int(tb / Int(5 + Rnd * 10))
    klrs(6).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(6).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(6).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(6).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(6).k5 = _RGB32(tr, tg, tb)
    klrs(6).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))
    'yellow
    tg = Int(100 + Rnd * 155): tr = tg: tb = Int(tg / Int(5 + Rnd * 10))
    klrs(7).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(7).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(7).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(7).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(7).k5 = _RGB32(tr, tg, tb)
    klrs(7).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))
    'orange
    tr = Int(100 + Rnd * 155): tg = Int(tr * .5): tb = Int(tg / Int(5 + Rnd * 10))
    klrs(8).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(8).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(8).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(8).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(8).k5 = _RGB32(tr, tg, tb)
    klrs(8).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))
    'brown
    tr = Int(155 + Rnd * 100): tg = Int(tr * .6): tb = Int(tg * .6)
    klrs(9).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(9).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(9).k3 = _RGB32(tr, tg, tb)
    tr = Int(150 + Rnd * 80): tg = tg + Int(Rnd * 20) - Int(Rnd * 24): tb = tb + Int(Rnd * 20) - Int(Rnd * 24)
    klrs(9).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(9).k5 = _RGB32(tr, tg, tb)
    klrs(9).k6 = _RGB32(Int(150 + Rnd * 100), Int(150 + Rnd * 100), Int(150 + Rnd * 100))
    'random
    tr = Int(10 + Rnd * 240): tg = Int(10 + Rnd * 240): tb = Int(10 + Rnd * 240)
    klrs(10).k1 = _RGB32(tr, tb, tg)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(10).k2 = _RGB32(tr, tg, tb)
    tr = Int(tr * .8): tg = Int(tg * .8): tb = Int(tb * .8)
    klrs(10).k3 = _RGB32(tr, tg, tb)
    tr = Int(10 + Rnd * 240): tg = Int(10 + Rnd * 240): tb = Int(10 + Rnd * 240)
    klrs(10).k4 = _RGB32(tr, tg, tb)
    tr = Int(tr * .5): tg = Int(tg * .5): tb = Int(tb * .5)
    klrs(10).k5 = _RGB32(tr, tg, tb)
    klrs(10).k6 = _RGB32(Int(10 + Rnd * 240), Int(10 + Rnd * 240), Int(10 + Rnd * 240))
End Sub

Sub draw_craft (Mx, my, mid, scale)
    'generate a monster image from source sprite sheet part& and render to the programs main screen ms&
    tempi& = _NewImage(64, 96, 32)
    'tempi& creates a temporary one sprite image for rendering
    _ClearColor clr~&, tempi&
    _Dest tempi&
    Cls
    'Locate 1, 1: Print clook(mid).style
    Select Case clook(mid).hull
        Case 1, 2
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 0)-((clook(mid).saucer - 1) * 64 + 63, 63)
        Case 3 To 7
            If clook(mid).drive > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 64)-((clook(mid).saucer - 1) * 64 + 63, 64 + 63)
            If clook(mid).turret > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).turret - 1) * 64, 256)-((clook(mid).turret - 1) * 64 + 63, 256 + 63)
        Case 8, 9
            lm = Int(Rnd * 5)
            _PutImage (0, 0 + 18 - lm)-(63, 63 + 18 - lm), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            _PutImage (0, 0 + 12 - lm)-(63, 63 + 12 - lm), part&, tempi&, ((clook(mid).extension + 10) * 64, 192)-((clook(mid).extension + 10) * 64 + 63, 192 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 0)-((clook(mid).saucer - 1) * 64 + 63, 63)

        Case 10 To 15
            lm = Int(Rnd * 10)
            If clook(mid).drive > 0 Then _PutImage (0, 0 + 32 - lm)-(63, 63 + 32 - lm), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0 + 28 - lm)-(63, 63 + 28 - lm), part&, tempi&, ((clook(mid).extension + 14) * 64, 192)-((clook(mid).extension + 14) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 64)-((clook(mid).saucer - 1) * 64 + 63, 64 + 63)
            If clook(mid).turret > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).turret - 1) * 64, 256)-((clook(mid).turret - 1) * 64 + 63, 256 + 63)
        Case 16 To 19, 24 To 27
            If clook(mid).drive > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            If clook(mid).wings > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).wings - 1) * 64, 448)-((clook(mid).wings - 1) * 64 + 63, 448 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 320)-((clook(mid).saucer - 1) * 64 + 63, 320 + 63)
            If clook(mid).turret > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).turret - 1) * 64, 256)-((clook(mid).turret - 1) * 64 + 63, 256 + 63)
        Case 20 To 23, 28 To 31
            If clook(mid).drive > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).drive - 1) * 64, 128)-((clook(mid).drive - 1) * 64 + 63, 128 + 63)
            If clook(mid).wings > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).wings - 1) * 64, 448)-((clook(mid).wings - 1) * 64 + 63, 448 + 63)
            If clook(mid).cannon > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).cannon - 1) * 64, 192)-((clook(mid).cannon - 1) * 64 + 63, 192 + 63)
            _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).saucer - 1) * 64, 384)-((clook(mid).saucer - 1) * 64 + 63, 384 + 63)
            If clook(mid).turret > 0 Then _PutImage (0, 0)-(63, 63), part&, tempi&, ((clook(mid).turret - 1) * 64, 256)-((clook(mid).turret - 1) * 64 + 63, 256 + 63)
    End Select
    _Source tempi&
    'repaint source image with generate color values for new monster sprite
    For y = 0 To 95
        For x = 0 To 63
            Select Case Point(x, y)
                Case kk1
                    If Rnd * 100 > noise Then
                        PSet (x, y), klrs(clook(mid).kscheme).k1
                    Else
                        PSet (x, y), temp_color~&(klrs(clook(mid).kscheme).k1)
                    End If
                Case kk2
                    If Rnd * 100 > noise Then
                        PSet (x, y), klrs(clook(mid).kscheme).k2
                    Else
                        PSet (x, y), temp_color~&(klrs(clook(mid).kscheme).k2)
                    End If
                Case kk3
                    PSet (x, y), klrs(clook(mid).kscheme).k3
                Case kk4
                    If Rnd * 100 > noise Then
                        PSet (x, y), klrs(clook(mid).kscheme).k4
                    Else
                        PSet (x, y), temp_color~&(klrs(clook(mid).kscheme).k4)
                    End If
                Case kk5
                    If Rnd * 100 > noise Then
                        PSet (x, y), klrs(clook(mid).kscheme).k5
                    Else
                        PSet (x, y), temp_color~&(klrs(clook(mid).kscheme).k5)
                    End If
                Case kk6
                    If Rnd * 100 > noise Then
                        PSet (x, y), klrs(clook(mid).kscheme).k6
                    Else
                        PSet (x, y), temp_color~&(klrs(clook(mid).kscheme).k6)
                    End If
            End Select
        Next x
    Next y
    'generated image in tempi& is rendered to ms& as a 32 by 64 sprite
    _PutImage (Mx, my)-(Mx + 63, my + 95), tempi&, ms&
    _Source ms&
    _Dest ms&
    _FreeImage tempi&
End Sub

Function temp_color~& (klr As _Unsigned Long)
    rr = _Red32(klr) - Int(5 + Rnd * 20)
    gg = _Green32(klr) - Int(5 + Rnd * 20)
    bb = _Blue32(klr) - Int(5 + Rnd * 20)
    If rr < 1 Then rr = 1
    If gg < 1 Then gg = 1
    If bb < 1 Then bb = 1
    temp_color~& = _RGB32(rr, gg, bb)

End Function

'================================
'PNG file saved using BASIMAGE1&
'================================
Function BASIMAGE1& 'Trekkin_ship_parts.png
    v& = _NewImage(1280, 512, 32)
    Dim m As _MEM: m = _MemImage(v&)
    A$ = ""
    A$ = A$ + "ha9kMVXNK\S[6LN9m;IN9emZLBKCCa5`E0BDjKZ97k8e=:`NQl?]CnOo_og[o7000000000000LUlnUfe0000000000000\6ncOnSje0000000000000\6nj"
    A$ = A$ + "[_D_6000000000000Pe`Glco;00000000000`ebGOAnO000000000000g:_8o?0000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "0000000000000000000000000000000L?OmeGo2][7l700000000000HLNbkj?oi?o2_T3Vgm70000000000PkU`L_:mO[MMRo00`j`k?och?nkIo100`Whm"
    A$ = A$ + "koQoh_gl?ecmFZW3>][Cl7faa2NklOl7N6_SOMk774OlN>o_en0nkKo100`WhmkoQonfohnP7oiodkiOiMo1oVo1n3Y6gCMLPfei:XeGJG_h?n3000d;iV_O"
    A$ = A$ + "]Gg`j1:UgUDo?iNPgm?Eo`cioPonfO_SWco0om=]<7PKkHP#gOO=nL_2om^YN`So?gS[To?onhomh?0`_a;?_;h_Om?N>O]Lo_CON#mTiE^GWH?`knWZOD;k"
    A$ = A$ + "WK>38lggnW[Wh5GOl=njJYnNJGW[bmDgK?eL4^eN#ZNR7L=<o39Sogfi1iV;DYo\A_5o;=?`JoI3O3m0_kO]Nc]k8nSoYl>lWi;?=W7lg7n;m?[oKlI2#JfG"
    A$ = A$ + "]l\aMBm0_kOZnA^LN:mkYMMSoho>j9g^[Q>7Nm\#o_Q[cEckhW_YDnOSioT[WhUSomnhOZihTcoKkj0Ubn=Wogda0NgoBm5_Lm?l7oCi]gVc?nk7oSWCG[go"
    A$ = A$ + ";N^RJkC_^WkE]ioUjm[]GhOomSDW[WZGL[G;0om[oBk7JGGk`kBSgWneiZiMhjJci_gFk[7>ngkSoac_Yfm3^5oc=_>9nO3m1_kOHOhQW_>geoRO_g0h?nGj"
    A$ = A$ + "?[ohn0nSoW\oYncc]WkoMRI0fJfGgF6HNgoDm39^N[[94om]oUj7_Ng6njeEk;nWoiN<UoWlejKNloO_Hlo^7omZoe^?G9o_QnPgmoY7TK]^aGok6Wo3nSoh"
    A$ = A$ + "?nk9o;UoG;go;lcN:mRJiHejmoSo\Jk7ngNo8Kf?ocoDmVCnlOl7oUd?lBnGNgO_VoA]aoho<Q_IWmlh_GmgkiOQoUONGTl<aPoh_fNPoh?ngVg?_nkmijln"
    A$ = A$ + "OQOfCY?hml_l^oYj7aW?oS#_^nlO`OOk_TNb=k:nokO^W[iOlkmVXfLm^eS3lnhOllJbioY?GWJNgRog#O0oUo_iIghe3aOl7oaO_iOYloJinOQOfCY?DcmF"
    A$ = A$ + "_ooYe3ZUQG[n7oidf_Nj7BLmFc40om]oBj;g\WhOjoMn[ToYNoW>Ybf?eom=NlPg7oOl9V#oCQfem:MGRog#?#B6PgHfO?^GjJLBomdf3l7oaOl7oKcmJIi8"
    A$ = A$ + "=kWC[7lhCHfMQogel?eWkTj1]V1h]VmGHo8nLk#W3oNWnimh?ngBOa3NRohOZihU:;4_L^_g6oaOOjOlmiU`]=WgL[a]deo>m[7Roh?nSoNfoLih8iNOWLf?"
    A$ = A$ + "UboCRoN8o_`NQdg[fN=Bo8GfnUnmd^^aOl70HLB>o_Gok_20^Pik10TVWih:iljFN_F6A[o]`eo>m[7Roh?nG;o[Go3lofloY7dB>>]nn]<a^897_DioMZm0"
    A$ = A$ + "Yij9ie9jOZnAZc]CMNo=h;noK:MmmDO?][G0PiA[coCkj50HN8MN\?cKFkjMDlnjOaOl7omInWa?G7c`oC[74g;TTUClkkDM>fmAloTk1Yl_U<o>MoCe?bUm"
    A$ = A$ + "eYN]>lG6Ubk;EOAkj50H^4>_`Dcokf^O70`oQdc]_Y[14_>HYGok6FgK:oU^nOlolm_fJMTho9_V8_j_TehfZoWHO8EOYficgHV?hoW^U:?`hOO][gEg7^Yk"
    A$ = A$ + "eQoeQlo00Nc?gWkWolo_i[m10hGR_nF][oMKG?<gLMSmoFW3X7m_dcdE=oCmIef7l_?_WQoWHO0PBhUln`Olo=i^G#^_Wfe;00000#oTliJliIo9ac0d]=WH"
    A$ = A$ + "_jOlJLJeoC_?TbM9n7g3dfSA6cWQoWJ_0000bo300000?b_G;o[8^oehSoneoFcoDkj5o100H6lLmmL?KgQoNLmO0000000>I2GKCYl?_eeolicgiWnCnO00"
    A$ = A$ + "`MBY\ohJo0000000L;l[loROfgBl_3#JG_h?000cTDom1a=mgi900000000N?o;_k?000o7lg[[0000000L[lkOnOSoIOmgo<`NS[7bkn30000000000`mC]"
    A$ = A$ + "WeQKoIQ`kn30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000loNmeGOe4JG_h?00000000000#NJ=_[K;?<_k?00000000000g9ib_j?oi?=aYV3Vgm70000000000l:glcke<bkZWl`dfKl"
    A$ = A$ + "70000000000l;NiWocEUgUdL``Om?600000000000Nc]TgE_NNKolOfSKB7kkIkQojO<1000000000P_HVol#Jml=lf?oW]hHHm:mE;mA=j7NgO000000000"
    A$ = A$ + "PdLk?oKk>o;]m=fkIk[Ek3]V;eX_JMoQojO>1000000000N1_ml_eCfESlcoXfo<OJ]On?gAVPBZ_IUkE?iPQoT1800000000X;ll_Mf?gGULFJMgJF7F:_S"
    A$ = A$ + "AbYLEnG:7#]6[Gm;]>V`kn300000000#:hiOK]?oGJfCfic1U5b1\WSQgYo[^OHU\_2k9h?I0200000000k7NngZGg]\nN;Tke8n^R<?dXOdjacJjo:j5c>k"
    A$ = A$ + "[JIOgbf1o]ce600000000Pk7NngFG>#F87`hJ8Gm\SW1ZBkK=bna:n_RS;\fcmF[m2lW<0100000dSWiRVKMoQ_WKS#_:io]f3>EoWIF2kdoM]f?Y[1]gWA6"
    A$ = A$ + ";U1h>cm;G?Ig[g?NOnhF^_o>NeB=]baJ[ho:>V`jIO9]GPoT1800000JB]Wm5][_EknkOmINYQcAmm_6nN^=2mZTogJ?h4m?<GQCcoIFkef?[<7\B[3OG7W8"
    A$ = A$ + "=;XMT7PdjHFm69I]eKf^YXWnPfioY]oJToU5bnjiE]j4o]amC10000`Sl<G]D[ooVWWF\gilo6k3QNEcoK\7LZn?[<dd`oIWMI9FA^OYFSK^mE>Via^F8k_`"
    A$ = A$ + "NQdJJV^7jHhaYJm:E=<S<0UTmSelOVI0]j\_6=kcBm2lW<010000`:TJ=oYn_e^>GYgelofj3iVGN=o_UN`YjOLV2WVo[^ne:3\F[WEMlK_NG;cbIf7VihNL"
    A$ = A$ + "]]ZLNKmEZjHT<0UVmS5mO6I0]j\_Fi;lW<010000`:TJ=9iFo_5WWF_cO\Ue[?Se_^ZiifcfM4gk]7<Ko7IkYQocZ?l\>_A[1=momWoIMQ[^ngijRgE6Pc>k"
    A$ = A$ + "?=j3cJ\?E6KFie^bo;>CM[l:^^6iH1YnKeGhoHn30000`Z8niN#kjIe^^[em_ZjoI^UcdM9oI]_cJMfKcJSkel_WN`<mOd]U6n?[SION=c<Df]o_olQ[;LTJ"
    A$ = A$ + "?njeaoiG\kGakoLef8G7YVoF8?PLee:l?NoJUGk8o?;iK]GUb_2oaO]9ge\d^^00PE3Go3llHOZe?NcmPBc7cjcEkYnOVGi<MO5cGmDboCRogLnO[boIM<kk"
    A$ = A$ + "Gc:3>]loIKdJOXFf?QeL?[;NFIYEZ66=389ngk[IWU8n?7ogEf?cfoLkSLcg0oaoMCXWU^Gg]_F00PkWLG;[Uijce3_ClFnGa^ohLXoF;c[EhL;[og:mRhj\"
    A$ = A$ + "W?O^[i9igKgek<gNBW_K]OO=lO6K7=lOdj?lc=S<hddo`loTf7T^ngFGcJ[[o[e]KZ_O?GC]5oKieZl?G]Po]kOYk5=j[EjO^mG[G?1om]o[PD[eYToJF[00"
    A$ = A$ + "`8TjjMaonU^nG^gk9Mm`IG[WTkeZgWadDgC\dWajn;Y6c=?PBW_HiNQdJ9glnZmmWenOD7OoBjj7[=^;UAgG?c1FKokamAj1cbo`eP<jfIWn?Jm7>N?[j#;o"
    A$ = A$ + "3gFBk3aO^L[5EjJD[]VgJ[5Fjn8gg_en9nkCo;M_hAN]3o;]_c]MaOlOeTKoGbiDO_MD[00`88ijGmVogYLm`JII5nn2I6KC;#YJ]gl_\^oBZ_FV3TT]SfmR"
    A$ = A$ + "F[SIio>k5QcoLTmChLPU<o_AVSJHnG?c1FCoSM_VoSf3VQoa[kHdNh>mO47R7_WamLedo`]]dn`<coYWemVZW8Io8Io;mH0lgOn_RlOfUo]\ogInGhoiho\A"
    A$ = A$ + "jlmT>O`EG_00#_TkjMQGk:e_G[_O[Om#YI15jF]k9M2NG[F79o7[kO]j[Wi1EKKYM_XejXfLMjInI[^Gl<gcJS9]hOhoM<a__A6GNccLPefoHW:ioXmPIhOl"
    A$ = A$ + "J>6mh[Mjo8>4nI:M?iF[_EkO^]AX3Bk3agG^dJ;KM]WY^>WT[;:IO9Y>TN<0nk?oCE7ef_FaoFZSLGK1om]ocVWmK^mOZj<ekEje]PcRLcma;PogUoU^NG:O"
    A$ = A$ + "cMm_`naYMm#9ce:EOZVG]>7F[iO]k_WkNnWPo]<VWK>=inm]ja2mF3aWSWSEG7Bgf?_VmnXUakAffQ7OQo]km8m?]l_G?2__\T[5?Bm>KoCECYf7Qcc#B]EJ"
    A$ = A$ + "MWeFCJ^kiebjoT^ngJeI;mHlgWnWJoGKoJ5oKY>bMn?nkKoGmmgUjAY?k:[IHO\SioIIR?GO7WCJ9^=o[M]nN^nMhWmD^NH]iJ5okWko^e][E8GMVkjMU^WG"
    A$ = A$ + "^?_elGB]UkhhJOoNgOF`IYOnI]MVM_hihcEL=WENooh]mciGhOKN7O_XIO\eZ_OF[N4nnUL]hAZgIkOZJ:enXFO#jjOUT7c:FoG]?WT]G]S1`OoiOYiQdc;="
    A$ = A$ + "l_U]Gll[`OOko\IdNi>VOPf4^nnKc=97KTJmoNX?Lcn;ihiNmgbW[<ckMLZG?\fl\bMO]Lg[[U]]5XD=FJn5BWOR5mOTeFdbh_U>FH6koIMnlZj5ib2IVKoE"
    A$ = A$ + "Mm\h]Mhe#aOiN7OoWIDKk`oNM9gHNheSSWcREl?^^bMO59mPJcOYge`>Seo9icEKk9mN;h_Ol?ei;S<oM]lGjf;el;aOojo\AJ_lY>TFc[ZNg=?^5NLg=iWT"
    A$ = A$ + "S;:mO[MMRoca_Ii_ek?mN_SBGokd^NHYj;emcZAY?_eLGB=fB?XfWe:ngBMUK=YYLGjJDdXG<Smo\FooZj5?GCJ6eh:mGjfnijWh_<_CM_W`gcX[OHfnWZVT"
    A$ = A$ + "hB>gCEKc^Ngaf;ea1ej1eV3SdLHT<OXFGoWTmK]]Udk]PonaoDc=iFm?eL\`OOko<9gmR:ECenmWmLTdTB[1j6l[7_m#O`3nGjn\Sh_di_X]c]N]jNOoF[GD"
    A$ = A$ + "[fZeSjmc[]g]DOYVSA^SmUL^SfngC=mhFL_8nk?km[V>O2KWDSA_O]Znl:73C]]O^6STmQGm_fJARgnSD_cfoDedcg;U;ib0hiEZJKVcCKVnGZfBML#lhI^]"
    A$ = A$ + "E_[oMe[o[fn^F=EkL0lgOnWJ^IBm?eG_;o[meifFaG34om]ocTBggYeNd<WSPVld_cM_jDS=WZ[B?V#BO#kj6okgcDc5_GoU>o5]M>gekjmjOW`e3cMM]JgO"
    A$ = A$ + "=lJMinnUjaF`mF[_`[]7O<MY[kKAo7]VjmLJ=k5cJOK]]C]]I_SCiNo]Dg]>GXA[O_jO^koTkNaeZYMjOZJ:LOTjn_il?GO[Wni>l_D]UjkWcoh]UdeoFK^="
    A$ = A$ + "UFKk[goFOmZjkCjLTT\nGYmBlg?nWJNXBm?eG_;o[meUf>aG[4om[oc49elgg;:`oJ_G9ci`RDjncillTm5oo]kSjo9e3R_?k\lGjlGdfIYcAAjeoTLML[i_"
    A$ = A$ + "TiIUjc4nk=bn`bnGjLUE\?\Vcmj_5j5cLoVkhO=[YJKcN7WTNnLYgg<>n#jfa[nWjN?SLOhMj_TiM4OOdLnW[_eJ?M7nG[^BmmciOZnH^iPdjLDBmko<gWB["
    A$ = A$ + "1^WiFE[VZM>0nk?oCMm2YngJ=?Co[meUf>Qm1lggn?CTjOH?#bkEbl0\6U^oLhh#]gSfNPoSkN^ilUkkORmPhkc>Co]J_XWiX8mjOB^>^el?N\=gmJT>W\BG"
    A$ = A$ + "S0o]KnOcfoFfgJi\Tj?gf:ekYDoKEmRBg?^U]kcfYfHO]S1jMofKm;mcGKK]CoULnA]]ClmNTL_K;iO]i#lgkg6LOdLnW[_eJ?M7nG[^BmmciOlf;gLAjI>:"
    A$ = A$ + "Ynm]Dn?h__m?eL\TjO[el<m_fGGJkTJ^Jh_?mOVDjn^iZWLmKYg[eZDjncBidL6o;oLoeK?h4j3agWMVnKeS7TLm^N_ng9Lm`LScaSIaTkHlD_WBk3]MGKog"
    A$ = A$ + "M?XVci^F`Xn;ih]E>WVF?6LEn;mL_Nk5U^^MlhPd]cZl?E]8]nkeo`J;Nk5fgGQoY6G3[UJckXToQgoYdeb:]mddOYelcmOciO^NWdc9fYoU6[cA>oCEciVk"
    A$ = A$ + "B;c]9ekoimHUOn?aOOkOZc9UjOZ_NGnGk[;]MBMM;lgWn?ki:7OogJ^9ig_fe^\8YL#jL:TLmJ[S7m?eaoSho9MlOYakIh_5k1B_NG[GokD^NH^aeE=n7om]"
    A$ = A$ + "XkkbO=j1B[UIkO[kO=L^dWIFn?JM=R[?KgLGo9LNU[`oDcK=\FTDkSjOZNA8iZUAm?NK7_?U^M;imkGBZWC`oLOoWkUfRo]L<`^m_ej=Woa7kWK>9eV[BZJ:"
    A$ = A$ + "eWYfnBjfAB]9MnSh_?m?gi[Bf7YnjMiO]_>gf:nnXh__mOecG^DMeB=_ZjMGmPLO]Tg[fnPo]il\mo4j5NeOYG_[U[oM:G?<gJ#Feh_Uj1iZ[Mi_6m0YebZ^"
    A$ = A$ + "n_6mRNfWkhnO[XGDJKVJO4C^SG7ao`_G^mYdjMVng2Sjo\ZQBNonUTJo4l?gfhiNY]ho:6oWek]EbiOlanBGo[diZdjlOjI>EBfFe>70omWoY^?b]jocf:N>"
    A$ = A$ + "Eh_OmO7cGFBmW[N[MM;;RTidWK>\BWo_UaSngbLJKeoCXGhEo7mjMWne3cEO[HlgBnWZ^fUoJe7ZE;]hd<N_kXG8aihgo:l_fnH6mRBKcAH4oWI=Poimnm;9"
    A$ = A$ + "en9hO^]acmCKaoE<n?[gK[TcohSm7In;[JmOcXNZM>0nk?ocM=XI\o\VoQGk5oaoM<OiW_FR3Q_gh]a:GGc^j1oJ<heonA0G`kEKO`ofMNFnO:m2_jOY[gm#"
    A$ = A$ + "?Gc>lnBFnL29[GIFSoFboAFCgXn[EOXgeV^:ogA_#jaSYV7i<m_fnH6mRF?f;VE?ngbn\WNRGmoiND]Nnf9ioKN^gj<l_eNe:N_]B>oCM\O_[i\de_FiWEbf"
    A$ = A$ + "[fi0h_ol?geA^AoOfFQm1lggn_ji<7oOWbUhaPhokM^6WM\VQBco9ekEKO`oaM^Go?UNQWm_fe^RGcB^[o5N]iCjjQ]^VUN7o]ToS\>]AlGcNa\FKj\lO7mR"
    A$ = A$ + "E\NlEho<j5SL]H=^no\_gQGm_Wl_>=oOccmJgaihFTLnWZ?dkJ>c]^c_7g5\n_h?c<ZSF?o7omSoYfogVoQkOl7oG9UFkJL]8im]jjMUnWckg3[o7ik3hoih"
    A$ = A$ + "OYi#>RoWB_`cn;mJGe^nG?KC[Pg6oKI=ScbO]k7]DKk`oMd;j]Nf]ocXG<baNJLno\?Ga[no\6SA>6cjnoVWe4]Rca[e[Fak]gJAbaocLMWYZQ#ZmNWAMdji"
    A$ = A$ + "oh_Ol?EMLKn7^OaOlOel\_CM_mFnNkXFGUoi>^jko\?O8ch4nO>nGbQAl?nk[]WhOIo;=WSF^FgYMm#?>nGkNgaSe]h_T][EMN7n_cNA[ec^mOVm2YkkBG_J"
    A$ = A$ + "En;MO>B?a[n?jiLFfO9mQA>W[fnL7OVILL`>G3\djMFkoN>70omQoYV[i]iocf;EO0om]o[LNciF7K]_WeF[g8mP?63NEOn?JGghOkNVSNl?7Jk9nG_7Tkhh"
    A$ = A$ + "JGo;gi=WPkU>6HFSoJkG:OUL?lNlGbfeZ>_3ogI_HTib]3oWI_#jn^de[FUoBgWSdClZoSN>WUmGBOH6[GCRoOg3bLoaBn?SJYUS1NoeSl:WOBZcI\_7mL0l"
    A$ = A$ + "g7nGjl`Kao`];nSokThke5FKQO?[^>_AMocaPGALniOQoh?noScY^FF][o9IKLJLkSoe^oN_nGKKJIWG]oJd;jM=i[foIg;T^_Sc`XDV=cbOYkcAj;NeoF?V"
    A$ = A$ + "kTlGBOXgciJ59n_bmM[73TKMX]\6E9SGQ_WFfV]\fgN>7HdeQ_:o[]o`oa?fofl_W[oQon`oMAZkQKQjJUnn[aQG_BB[G[nD8doo>FWaohgWfe=nSo[ZOhe["
    A$ = A$ + "oMSSoeFkF_n?bjhddiB[U_Go[]o\PciVSg\lGjL8Gmac]b:>n_WJ0og[gFbO9mQWmi[GYok1aLOoFgoBl_GZEkc:3XhaZFNUKn?]^=TDK]LlO;n?b[IhO]]?"
    A$ = A$ + "nggeoFI6#Qeg:moIOTlJ?E^n7nkGoQe`7cUo5ioMC[o7oaO`gSoebTY7o;]mdfgL>oDKiLY7oC]=eZG8]6FQomD7[hhihiC6bZ?nGjnLTnRT]I;<kcok]6f]"
    A$ = A$ + "gFbO9mQWmic[h?KZ_G?koMWoGX?SLL#hJDoH===^neOe7jhc:]^JihoFlOdGShO]];ng_oeVge<[cEhocf>ieM6lN0homk?<OnlnE_BB_G_fjlalobho9_nO"
    A$ = A$ + "l7o1O?nW:KRh<:JaoLX]WUL>g_g8n;MoI1WG]okZGdC^JYlmimeSoYVoJZmI[ei<m?giicfoFgWmj_T]gYiO;mQheR5niSojN#ZomBZJ>LMQSN<#YnN]eana"
    A$ = A$ + "Hg[OFoK8m^ffJem<>7#JM^:o[]Maoal_fiPFgoAk1Bl_gG[bohmAYa=lO=c96TO<Ebo\oNiXlobhOlkCkj6oaOPaOl7omXoeF[M;>gSoBk5UFkC_maJ[38ef"
    A$ = A$ + ">GM<ZoUjkmDWSjmYiO;mQheOmncUkGk1Yng:UZe`e6^RS3R7SBmZXg9j3Ig6MFG[jlOY[MO6n7f3TTg3nggeoTN<fYhOH]>3o;EO[foJk3lO<oQic7cU9chn"
    A$ = A$ + "XGcfZLZ[o1oaOPaOl7omZoa[eXg?K?n?jnLdNHZiC;MK7kB?n;mHQB[5LF[m?ej>]XoSf7JI]GmV5Q4oWAV3YZgA>>#JmU_GmB8ig6BfocJMDhOOI]ZYocjj"
    A$ = A$ + "Om\_\XoQGcHVngJ6Ec`oJKOlO>n3cU?_VLjamIMMK[aWc[?oamh?nOKnkMlnh?nSohoIjO;INEjcfSoS^?7M]oS^Md`oA[oAbCCB>PBm?gJhB]?k]NkkLgji"
    A$ = A$ + "\VJonnkf4If>Uj;Y>FK6Wo7^mRggF`oLOm\mGJFCkdoJeb^lfRn?BO#bn:eiNYN=;ooNK9hj#aehZlGb[IjO^]o\m7V;BV;b<VgVE1oaO?k_gakSoh?nSoh?"
    A$ = A$ + "nKOoc^6n8Z]=b^N\2[i[We_;IMhc8;Th]QEboBB]>ja3WFnO[`oC:o[Am_F^BFgoITo5n?W<0WUoiff[`O00000000_#;ImUkcgDfO1[kK6II<JmWKkEJOD:"
    A$ = A$ + "kagOkf#F6\iZYEOl#96gmdmPFZQEhO?io<KogAfOi6c?9oWaa2mT1X5lOFIO=S<0WYoYffTm70000000P^TjibBfJ1oL=WWdJhFmcoSfneRoMiMQnPfngJF8"
    A$ = A$ + "[`oMUmG:g?5oWI?Xe<0efoIg7693`IkOlfV\o00000000dWTioe`Jn^Ulon>gc>FgKZ]UfneRogFnOY>^fBio\jnST\PdfoEm\OfccoXFioYE6X9_fg4mGkS"
    A$ = A$ + "300000000P?akiomkO64Oem?oKQi0N2mQOkO_NoIO`Bn7ocGJ<[doB\Cg[U1dZlG[<OJ=3\Mk_Eb0MUnCfO00000000fSTioe`jm>iloFecOc9d7FMn3Jk7n"
    A$ = A$ + "GnOW_kniME`OV05gOKXgdB6HkbO[V1j=j?00000000l9a[E[e?oYVo70NPLI0^clod8GLai#]0o]#fGNgO00000000hg<j?KRJlcf80#K4W7dho<_WSdk7=M"
    A$ = A$ + "^lcShJmg2IPjEo10000000000_a^bZgBoI2DjiOLUkC[TmUGOn?10000000000`G4W9i>cod2iNUZVFInOFcO00000000000^OfIVDF<k[dIc]VOnO]Xo000"
    A$ = A$ + "000000000NQYml0bck700000000000PI9K>PMRfn0000000000000iQln000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000>I^io]gmVM300000000000X6_c7k?oi?GI>Ig\K000000000000eh9O\7^YLb^Ig000000000000ZAHnH_njeEUCf=k600000000000]c"
    A$ = A$ + "=W;D>gROnh^Y<b^Ig00000000000X=^io>R[TKQIT5oO[MM?;__Ag00000000000#>glO7aEc]K>S\Kf=00000000000Ta=ogALBLkVoITmVM30000000000"
    A$ = A$ + "0ILcI49a=_k?0000000000h9^iLATl_o5gf?SXBLck?oS0000000000PGPom_Plo^]WA^Kf=0000000000X5hOo;^c<RhWogke=0000000000#:gl?STl_o5"
    A$ = A$ + "Tog]j600000000008UK>STFcoRl?mgh?00000000h?^ie5:a=lgOncOogM_I4acogmj600000000d7NmOo3`OOk?ioM_I4AnOg[K00000000#khiom?0om]o"
    A$ = A$ + "gL69To5nO[^100000000]1omo5nSogI69ToU<gBmn^EoOom^1g000000006QKNMABnko<?\nGbo0oaOl_fkkFmo6l20000000H4h_och_oc`OOko]UC2ioIS"
    A$ = A$ + "loNNVkTb:mo66G10000000j5nko<bo1oaoKkJ0TogNco;GNNYZQB<[L19o?0000000PO8L=BlgoIgej49o3lg2?oGFboDI9Qo]io\biKei2N[S[00000000m"
    A$ = A$ + "Pgco0oaO?kO^gg]jO:_`oli4ZA>Oc:G`KML5000000PaiVGK#>ghWoAOWo3nkKocmn^Eoe8o_BiC=SO>GWYoF>W_Ab5DSS[7IOMbWo=kSQef700000PkSWe8"
    A$ = A$ + "LScg\TKToW_co1om]oiNOgZo[<o_Imlb=[L17aoKUMMLmC?]g?oYN>h<W7e=?W<000000m8Nm?gdl=[iVgco0oaO?kO^gg]jo<boKFileCfE]T;8ioYcieQm"
    A$ = A$ + "cNg6WhiQcn?o`Kk??B000000m9L>Vl_o5gojo9o3ngo0lggngBOBSLnj9C;Ye:io]_lo:=^8QCkl`Iim9g7ZEW]VQ_T]i9A?nOCPoh?nSoh?nSojkO^en\RJ"
    A$ = A$ + "ZflLe`]hgc\Wk^EXdHKh__feiZm?eaIh?nSoOj_fIE=S\^JeoKWDn_[kkJejeRNORmQ7ocE[Uj?en<WPoSLla9kWdJO6nOjmYKLl7oaOl_^keloVk1NgoWNP"
    A$ = A$ + "e>n?N]A[XNT\Vb`gc>MKW[m[Vok\>TNLi]i_V[o7oaO?k_50oiiocjNORm1YI\gZS[J>YcfmFk?YVC\d]SfnVKLMenO:W;\baoC5l7omZoac_<WogJ?hDlOE"
    A$ = A$ + "kkD7WWkhoEF3e6KVmiRY6O[=n?cnP4gB]ogaJ`:io^G3h^[1=m_fJ<`Ol7oaO?io:V[acn[g]a>[gEhm:VoRfneK]:9gVL_7[g3Ja=9GoYWNTf^G[fWQoFJM"
    A$ = A$ + "RSdW6IloD1om[oBbhKGIPX]kBWoi]d3>9oGemFcU_UdOoEkF^eO<B=DJM=aS]]lNWA__Fo?N]I[RHoG=Ul?eeOgQkk\78mh?_ko:cM#RokZ>`Ol7oGkLYNC_"
    A$ = A$ + "KS`jMUejZlN6em\gNkfm`SYUDoQ_g`]QEk1aW_VkLK9eO]gWTmUel?eL?TjOZ]Uel_eNd8SoW:h_Om_UcI?ec_UjC[nOjmPCboEL\GZicGKno[HNjB^7M^e9"
    A$ = A$ + "<3WUjc8OfF>V:f]Ij_e0oaoNmO6D:cSBelZc21oaOlO?GgYg]a^ZeEi]gco[gJOFKWMkLZj[eJ_dkgR[?^D=eCm>k]g:mNdacImn]`a1Ji_eacn?kco?9j=;"
    A$ = A$ + "WLi0]kJofl_F^C?k[Im_o]YVkN?7o?cjHUokOk<c^KfK[J^An?h?n?g\5VelBGEF8h?nSo[mj>ooo_oBoKSGoScij`Tog?eJhi2mMlcGoJKIaNPdlZjM>[F="
    A$ = A$ + "o[Jed8ej:fV[bIY[[L6SocJkK]ndYi5ng^3S\nO=boZgmi\b_Zglc6eW`kiNCnGZ>Vmjo7]fWE?DZKmjO]eV<jJPT\]UDS[boC0l7okeoFHVINDbUIU52nSo"
    A$ = A$ + "h_nGOjfho6OVG^UcNk]JgO>fJF7S]R]i:L>nlZAGoJZ?_EboZVoS\fo`]KZ]SfnWjJ_YZSE<ngCMHQS;FQoF7?ko\ZM=j1S\?WmiTcHkeR?SNmE[k_d[E?bn"
    A$ = A$ + "JVgS:gmF7Il_UeoTKOEJ=8[HM#eFgCYm7ioPohojboHeINDb[A[Kl7oaO0V3[JmJFN]`BboJFNKQl_Tho<[_L[OA;oU\VdMToQ6io9mNMJUo3n?oiRdbfLVG"
    A$ = A$ + "k;G?XeJYgmE?mmE<_`Aff]hChk]eO6H?1o;iTT<bJ]G_JokmlWFFoCZnDYgk>^OL[e0ioPohoLcohil<;dO2[UFM0oaOl7Pi`caPcnLS`S_]fa]YVKn<?7;g"
    A$ = A$ + "lg]B_H6[Mb2kSN7_;M_TE<n;]>FmhlX_?[_O]BMXYo]\=GieVJMK?[<LjakMLlg:Z]NG3lYiOZ?g8[o?eL_gQoBWSe<boXe<gf1B[YNlgZceLTSK:M<:n_^o"
    A$ = A$ + "l;d69^99k0;UiA=GUj3nSoh?0cQMUoSfNFZffQoFZGTJnEk8o5]l_dj#giaokJMg]\_djloEg;lXoSTMd^boHdjNDWgiiPUZ_Id;TTCb=hOZJ\Eg;M<iZm_e"
    A$ = A$ + "ceThFYgCYN^EVoA]jL4oef_EL>3nGoJ0gPkBM[DN1FillNL^VGh?nSo0<7lLnON9o[BeeZ[9;<7=9[cH7SoF;o_MkO[e7n?OWcMLi:>6lIOE[?_SloJ=7ZEf"
    A$ = A$ + "3VE_XU<0>IoUNnC]NUVg;:enNTaeLK_Ff?FPBeLYa[gogYNIIGKYWDc=_kockCkiF^bN#;Go;lL6][mIh^TcoaOlg[n3`<HE[1Ne[]NFefZ[?;N>\eFoo^7_"
    A$ = A$ + "OZSM?n_j<_ThL^jJGn;]n`oikl>mFJOHdNA[>Ka[3eK]>BFIWToSln>=oUjF^gc^^_n:j=BLZWaoCSA6omToFL^e[Z74On<Soh?nkGo1H6hmlol#nGil?lG_"
    A$ = A$ + "QmUTak`JIGeCY<0e8o?]m_FmQocgI=lFBOHdNA]aiJ[SBSN#YJJVioM;nWZ7dkkcZngZKUN?FH>6c\oTcO?ol_QofkJKcdOboSlO`OlofL3\5N>o?_ToEYaV"
    A$ = A$ + "Mi_UbM#SJIge#^L4\RoJUog=kO9W]beSCe7FAnO[nh[MLlI]j^F6#gRoYZmNcnDK_cEo]V1J^?_ULLTNC]a_KN=B\ngn>nofl_faoN?oCl7omZo0<3lLnOkX"
    A$ = A$ + "n\hJ#lVoFI]`k\>b]_\RoJUog=kO=W]leOj]GTKNBFhlmN7_T>VMZIO>Sj_U\?]jLW;E[iLCRoJke:>^8UoNoiOcknkiSoCmn^1gKa=l7om\o0<:TogmWoUg"
    A$ = A$ + "mg:[7\Uef_2W]`aPUb0KUioi1o[U[V5^fc\[E9IZJ9_CEomVE]dLD?MoU\fg#G]jalB>6>W7ToEmlO\naj]h_TaO_k_W?n?ea0gPk]h6nSoNfO06UokN]_n7"
    A$ = A$ + "cMmg[Hk>[JcCiOiMoCUAPVea>bR:G^8Fkh_MmWoP7l_dfe2NWZN7]GTJMRFJ\^Wa>YNDjcLCn;9o_LIXY]G]hO;IRW[OMB>gja2iboiYgmnKYM]?_N`?NEki"
    A$ = A$ + "oc[nkmSo]`L[gE?8njih?nkIo1H64O>Ueg^cZflDnGNgoDcWjf[3[h\FeW7mgj>_Rj>gWm4l>U;]d;:]>aKbO9ioMJ7cGZ78a[`LAlhcodCOj9g[7d^fWG?h"
    A$ = A$ + "E0OnWI9ncaogJ61BL3oaO?k?0#Oh]l_BECkJ>CkLO9M<`SioI]kO\jolklXoFgiEd;>EWWA_hVbn\ToBcokdM_UNPdLB?AThfC?j6cnj77oM6Hh?7oWkmT:S"
    A$ = A$ + "dCU#G`Ol7o_W[]1Pfh]l_BECN:oC_WoW5_gHZka]ZlolRoFgiEd;>EWWA_h6W3\dinNS^gB?8NN5FJn5c`OI?oCgKfGohi_c03oUO<bYRdSo9oCl7omYo00m"
    A$ = A$ + "Qgbo:E=UKNEWlnBjHPgbocB7k][jcSnKMWGAMOZ>?3O^ai9:eYKdmFL;ga9gRogfie`Lak7oCnWh?nkGo10jShc_FMnGFkLhD[Uj6fGUZ1;\F2boKOeGZkQJ"
    A$ = A$ + "=oWMmIMWGAMOZ>?3O^ai9:eYKdmFL;lmlTG`GGdc1fcOFQaNZMM1f0_Ol?oiOPoh_Om70X?lncoWg`:I4\cjPlolWoFgiEDgWZcc`WKLNRlloefjONbmh1]["
    A$ = A$ + "mie3:o_o3P_ak7ocOn7h?nkGo10jShi<\jlofen2b?6HQe9bcognZ?[Tik>[?[kl:ZkCeiIhc=>?ANnoJi_ok^c\?naaloko0hKlnaolWo1nSoneO0Pn8eJ9"
    A$ = A$ + "^Qm5TO<`2[CTWo_mEONdO[kl:ZkCeiIhc=>?ANnoT_nWK>kSOlTo\CQ?ak7ocOn7h?nkGo100X>F9SPMoloIikO\jjcSnKMWGAMOZ>?3O^ai9bcogMk60`hT"
    A$ = A$ + "K^Tg`e8NlXeWo;l7omRo000DWho\RejI9HWeQe_oa^Ono\fL3BM?nIoloI=WGA_hDMN6mRKL>`BWkk=jN[m000OBhO61?G_hVN>8OVKL\Wh?nSo0008QDGgD"
    A$ = A$ + "[lofEMHmW;ZMnloIei6lL?nIio9hl\k5W\cSf;^ei0;I^_gZk]d300l9?oi34oWY\feell[nonWPoh_Gm700085Foi7IG?oOQc?#KWo\6Wkmg?1WWM_hTMNd"
    A$ = A$ + "Na]>7H9cmmFM_UN00P?9l?cSKkJOohHiom?1oaO_j?000#:R_ghcm#d^^fEm5?o0]m=OM>_k_O:>?cNaYkl8mRKN>`eVkk=k^dN00P?if_fg?NVNnQh?nkIo"
    A$ = A$ + "1000BQEnINF[jkTb4JFgOoTLNFmRK`iNk5gnLP;=ggKgM9m0000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "0000000000000000000000000000000000000000000000000000000000kc[_NYN=LRe600000000000`9PUcHcbe600000000000PeiMnJ?XM]LBe60000"
    A$ = A$ + "0000000`9`kheNoomnGe^F>YJ300000000PKVW797]nl0X1[hI#c2?GK1?RMVcOYe6000000000`LIdONlhWW_cVI<fI]aO9eSFio]jN5io100000000`_i["
    A$ = A$ + "_njKdLKX5oJ1iMT7`XON]i97RAOn77MKHQaO=g6[`[MGcBgVkX?iMo1000000008T`GJ^=DcObokGoZFK3=mOdonHcJoMjVTS7GA=;IK^[cETlLhYQoBZ=00"
    A$ = A$ + "000000Hn4n\[ecc_fXON]akiomgjgaolo>SON4?iOV6_AoUT3e:ZI9KcMUEZ6oLhZi?ga000<G>mig?CgmB?8WgN[?TZGXMmHQS3d^^00V3a_fmWGKln?o_N"
    A$ = A$ + "?ogK<o;_k_dLhd:o_Md[8o?0006QgcYkie9>o^IhMl[K^?DbK_d72G?C:W?eejdZoU6g_Io1`;4oJgON;`<F3\EbnX[S1Llco7SoggonOXI>DJTkF_^YQoFk"
    A$ = A$ + "H5000B3ioiWL_2mn?oi?5ifj3Ubl;diDiPM;mQNmGkj6PAXgWQYCoIOJ6>L5m0boQlo<`f#caO;\=f]CgLnGNgO00063boSlo^mlobUiEZn#h_g=M<A^SgCi"
    A$ = A$ + "o]i^gIFioX]7mBl[Eoi\6cjWo?]mHTjg2K3]PloHlg2KSMkd=WoUgm700PaPlolEN7N>o_DIlE:o_KZG#nOnUAb`j6bo:neZoLF3boSlO8o?mg6J>nKQ]a^M"
    A$ = A$ + "jVcobkn300`H#nOn:_3bocOioacoX_IT<\^Rl_Ll?o_oe3boc4K3]PloHlg2KSMkd=WoUgm700PaPlo8o?boc7ioiEom>NoWogojAWIHMjIO=37>mN0io#nO"
    A$ = A$ + "FHKXih_5f6kfYK>o;_k?000S1ioAnOTogMWoUgmoY7<bcoUfeo`nkhl_l^oTo7io#nOj_=dLlg2KSMkd=WoUgmOFL;?Soh?nSohO?nkQL_:i=ioAnOgLnGNg"
    A$ = A$ + "og4nJUO6[RWcobknCnOTo3ioYof#caoAolFKlgkiOiMoW1_WCKllO?miiRoh?nSo]d3l#^GUlVlo8o_K>o;_koK8o?oVoUgmWlo8o7boCo]1SoceYIlN>Um["
    A$ = A$ + "EZ3[ho<`k[ogcnWbM?e3`OOkOHO`3iNEbKboSlo^il_l^o?m0nioeWiOiMo9o?boifboQaOO?nkil_T>_4=loTVcTWcobknkmlOl\o?^WkhO?d32k5N8g[BN"
    A$ = A$ + "CnOTog=WoUgmokn#SiHLjiN<3G^UNPWmWlo8oWK;o76ommh_Wco;lUelGJ]I1lLnGNgO?WoUgmWlonM_`3iNEbKboSlo^il_l^oOg78o_]mi\6NfOboSlO^]"
    A$ = A$ + "lOHlggSoN>o_`Wa^Bi\]KoOVW8?oOW1h_OmWlo8o_WNQ7bmZTgTo7ioMciOiMoo^?#nOKkcI=l\oTo7ioLKio`h__7omLnOYNY]oB[9;QWcoiao`N`YTK;n?"
    A$ = A$ + "7gmNnOUhfk1Qm2?TkE9_SOMcm1bocOiOiMoo^?dH>6WN^7c`UKY7hIomLnOchiAiTNVF:EkmDoSnie66o_Coeh_7jT^=gmOooU:_]MjOhngR7[Db7_^^Ol7o"
    A$ = A$ + "mZoTog_k5N8g[BNCnOTog=WoUgmokn0io]]?We`cnkilo2OYif`2ngCm?jWGKHlocJGj;[j_T<V6akAj3k8o[Bef^m_WNTE`[iOPohoSoNniO<WoNY7ld7NN"
    A$ = A$ + "iE_SOMcm1bocOiOiMoOj1]LmmCoiNI6^L;m0?k_gOn_RWKO?4^=dfWAloiJi]l:nc[]?]BhhH__>iSo_Ao3O5oeYZiImZff<E]]jadLmUMj_TJcR#n?h_Wm?"
    A$ = A$ + "^7hIgmL?8ljkJG?JhMZkcYMm]3_;Umg=e7RM>nG;Uoe=d;8o_?GSPTl_c=7gCSFMofj1NfoNMoFj1cXf_5okYn_YaoIlBKOVQokhc^Bj=K[ML<d>bo:dkFZe"
    A$ = A$ + "EhO^gk9<OA__nOlggn7g3l\kN^7LBGcN5NWjNhJGOk`KboSlolJnOcnmKIjeUKY7dkc`D_O>;aX>LjmPIDkgRoNLlO6iaLB?CCN`O9gGJ5eL]]i^^OY4gd`O"
    A$ = A$ + ";N\B=OlljoaOlg[nWjW]S7omB?hY?L3IL<Rga_^in0ioAnO]h?io]fibKAg_]NPWmOD7>mN`<ZmKaO6ommho]h_T<VFA=;IK^Sl_TD7Ji_e>FAbaANN]oh__"
    A$ = A$ + "mgciomhKXkNZ7ld7NNiE_SOMcm1bokgom0E^loOnm^QNAZloTlRloTon]<mjb]d3hioc_?oGlloikaoKliOckn;iNBJml_]SkGbcogLkUN;k3l7oSMgKmPD^"
    A$ = A$ + "k]N`COhiUGm>ne=g7R7_Ca]e7RM:N\>Uka_gC^GT:o_LSmQm1boKmcUgR^OKmPhL_KeoC=kSALoFj1ShNZNPfndK]?jhoYN=P`kQ?J?l4_7h=j_dLXVma\Bj"
    A$ = A$ + "3F9o;]lo4a2SGJj^7cm0o9o?boSloBmjVk3lloacoWdGgDnOaiK>kg_U9neZoLF3?k_gOn_hiocgSoghcoVgmGBfFJoloYM_B;oQc3_?VjIo_Yei<ZkN]7HU"
    A$ = A$ + "kIYUga_^in0?oOlloEJ\oFOnol<mNo]KinRNfoAc`Ld?_f<SJoFlWaOO?nO;ngB>Lc\VU\=]bm;dbO000>3^U<>6akhGgLOPWo?NnoTnRlo0h\Id<<?m<#_a"
    A$ = A$ + "Wo96oIlgcn;97:]Nng\B6Illo100#98o?oVo7?oOlloaco70000L2HiLX\L]1000l`]Taa8NkiloBin]e7ZiLYS3^QN1?oO000000000hK^U<>6eM?e3TT1f"
    A$ = A$ + "]e7J9g_K[GTkhlFonJk1000000000#O#nOn;W3bo[]GWN_8e?GcYnmbmm_QN0000000000N6?WoWWmgSol?Wj_k3Cin]M<1io100000000P_ifbj0oKgK?Wo"
    A$ = A$ + "W7ng0UBn4k]d?7000000000`IQgog[:_jO^\_d^^\`Hm]e;jeWK[?0000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "00000000000000000000000000000000`jieG_JjkkUJ100000000000h6`BI^IYJ100000000000h6h[<I[UkkkUJ10000000000^A\dcIe^Z5;m<W]kJiM"
    A$ = A$ + "^J?8ik_B\D]00000000000g:ToW^m2=Z5;m<gIYJ10_`ooYG5oJ_F;00000000g:F:WUME;F:cYMG;FjI^CSJiIKFkGgiH_5Z5?`Goo=d72oNUnm_YJik]i["
    A$ = A$ + "Go#Z_NWnKPJ10000000hfaBoLF^[JakiOm\mKik_jN`>[5;UiV6ebCh:OG31?[EaoN[VMG;_cBj?oi?oUW\URo_Onje?f_oJikmA#6K9oj=j_5Z500000PkW"
    A$ = A$ + "CHmO0\J\daJllo]fJiobFhE0O5`_on[gkmG;o\][o[kcomE;Omg=h[OakOiS_gVlOgeBH^JUHgio][JaBI^IYJ100000hna2I_IQJh_k?3lgg>k\6b]_dX?X"
    A$ = A$ + "I]`coW^mRMF;onI:jEV\6N]U<#dXFnii[jU`OMmn_cJ9\W7WaF8kNlOGeBhcGG]lffghonZUOml5njOGO9<c]WhHg\oJG;00000h=2GSY6i0Xin?ej^edOEj"
    A$ = A$ + "11;iJg^[A=TKOYAO`2eR5bnKgeB^mS5>oO5eBLNK?4WgFlgO5[kFSJ9ENSeneMio>ZUhLVTTif>lOGeBl??]QKkhokEoc1\6ebWo\67oLgnk_NWn[I]000P_"
    A$ = A$ + "iI^fJ>oO=G7Vgmg[lkOFSfg?kCFHooinf2n_kOncdm__]gM=TKOUjk_5ggL]lkSc:mcOiNokonME;Ug?onk_7ogC]4WibGAI[Tkk_SlOfA]#nOOnLVE;_]M="
    A$ = A$ + "n_SJic<W:cNcoJmeRgm700085Oill_l^oNTWiFmkeHX`Oo_X`n?enf2n_[JhGc[>j__Mf]okZ6n^OWHOUjk_Sno>[UD[k^Ln;kih_ME;YbMYdnOKWo]QJiW["
    A$ = A$ + "eTni[YdgOI7k_aJ9NKG;c]Mjo>ZULW_E:_]MVogZ[ULkcJ\CoGI]hMoQF6OfoOogH5N^Wc]^oT<FXah_5j1honncnGcmIjJhWaQmk_>kkhJ8lGm`nnWmoWLk"
    A$ = A$ + "koL[oDkeo^SmOYeN[]okX6RWoMf<XfTokX6ZUeH^_obOn7fD]D:_]7dNmO[\FR?O;en9egOm?o;kYFn<K]OneJOoEio>[UO_]UaNlO?eBY<GZmk]bSogE]HY"
    A$ = A$ + "<W8o?kD;YZ]M>7L]GkKjJJg?okf`oOZ7=Nnoe]7Xaj`eN]oJG;Fco`ko^c<8fin<O=lch`nmOokkhJ#[keZen^dnGKoganWlonLoI1ogA=#nOToG^SgdNmO["
    A$ = A$ + "ZFnhh]\I<Ngol_nkeLh_Wo_`NI]okm=n_nJQlo\c?cYJD;NgOYeEleM^QmE[S;?ggI7coK7k[F[WMk_fmP?7;dlOo[d=38?ko>^g_VkcBe#lh`>mOgkkLS1k"
    A$ = A$ + "H^_FHOGjh?]?nWmojgoBfgF`oM<oko^?8o_\OoU_n75co;G>;knh_MD;JTiTUZUL[inca0mFoo:[UJcgHWc3ASJYdn8EoOgWo_jJ9nh89oj^>nO7eRgmGJM5"
    A$ = A$ + "OMgKHOejhbG>>o_EO]?]fO]F;Jh_FmP??FTlol`hO]eP[ijogAOXdmQgYoJM_nhiL6?ocmLn?koM_oC]_cmekdoME3O^_nGFCOoL8[Qo[]6nmnkWme__Vk_["
    A$ = A$ + "QmdogC]TkJ\od_Oma_g>lOGeb7mlXmCY_ob7ogD]DK>7FJn?[XF`oD[ilgo\WXYo[^FR_^STOMen_cJakn;YVnRloDilO]m?meS8o_KJOF[FN^_c?o:ioMCk"
    A$ = A$ + "CYeP5Vog^^OWGm?el;dNn?\ogcng2ciDcJhcL62okJneVmQFe#hmKojGI[mZbgOUmomE;iV_IlJ#faeQeXFBMlFlaIinnkhHoME;Yj[kjOgG]#]PoYcMc:n_"
    A$ = A$ + "jJYfl>efoEG;NgO9ed3gdnbReTel?\Nf]oJg3R[5=lGcN`?cijWOm6gWUZUM]fG=gWUZQh<8^imML=HYkoKUiN\Sl?Ho_om_5VgYVe#hn>NmFQOm^lO7e#HV"
    A$ = A$ + "KYfGion[=o_ME;U^FKhmNfmaOkZFnmaKnkWoE9moMNoG=[5l7oaOoj?004ckiI7n[gjn<O]\oLH]Cf_Omaom]__C=6Xih_6kK=Wg1kOmfoFHNWJF3NdOYI^J"
    A$ = A$ + "Qno:Z5lggn7_ocUihZLfBe2nSoh_Om70000l;YbODkl?Io_WmO^m]5lOGi_i=o;]o\DoOEe2nkKo;E3[fG;F;h?nSoneO000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    A$ = A$ + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008T_nj[oB^_nfaknORHea<[FGg4ija"
    A$ = A$ + "FX?WZFVM]QoimgB\:o10000000jQg[;i?oi?oK=:_n7olmd^n`OhD6c\JMMCD[7ocgC;Fka0hOn]_UP[100000P=AjO6^`mR7oc[GjjeNnNJG_h?Hea<[FGg"
    A$ = A$ + "4]fS]JnGmN<0nGOk?FFMOb:boS[100000PN8I>NgN>#N7?n<kdcje^Ye\hMo?A\jHVE[[KRNkaF>o[F>60oU]m7?W^d^\RlohJ00000Pfh]Wk]hifEj?kgK_"
    A$ = A$ + "O`coVOnc[OTe[M3mQKbO[MNkZZ7[>VIUj:GOOg\RS37]7_OVka0h_l]Oo?[OiMYdl27=o?9n30000`\9glJdN]T[fiH?cio]W1H]i[[Mm]6WkKm:JGgceknG"
    A$ = A$ + "?YfNPofklfEE?FM<c:eeXiQ<;FaaQcZ7_GVga0hOKKof?>]?gVInOUl70000PISTicLKI05WYW4o_aNA[cGGkjMnNggjEd^nW[kcMmJFWK`O[MNkZ[7[>VYM"
    A$ = A$ + "M9IOJQlo6acIeSg;To7ioM>g?1000`clOgKncOFF^IlFnOanfJnOgBoXgi[[MM?G_WojE\<cLmJWH?h6lgJWg^jjaZSIJGGBgWF:o_Fm\oN\n<SS1`ofmGna"
    A$ = A$ + "YSif\co;Uo0000`jimmVONmnoFkjIG>kUloBiZDo_YNBk[WhNVWJO[Wj>V[N:_SGCC^_n6>>hdmgJWg^SjaZSIJFG]dg]FnO]hJ?mH[a873PonfO0000H]4V"
    A$ = A$ + "mWGb0\eo\<e^NgY_gJohciDkil_jgoC\7dkca#je^LN7oObnK]cKgEmHea<]Z[Fkkk?[SiMLhXmH[C]S1`OOk?0000\FNbokiNaN;o_O?Om_negkioFkjMF^"
    A$ = A$ + "VK^HUl?gWAK_J_?H[L4deMKl\4]7gWojW>YSo?Mo]fi]kXN\jHVVeE[mmMb\cm]oJ#O6mH0lggn300`N8geae^^`OlOU>GKNCgbLCZ=W\NV7gYeCnRWo]QVS"
    A$ = A$ + "n9O]QAG_D^?_fNi1o]fi]kZN\jHVFeE?mmMb<?>LXNlko\KeT9L<0nkKo100H?lnJbNkWoClo7gCM?iCLMn]jMXWiloioFkjMD?[=WBYOohgSfn9_?lij6SM"
    A$ = A$ + "<gGWJMLJkc<?6XgekZ]GB9kjWjL==WfjE>Io]fi]kZN\jHVFeE?mmMc\>>Lfmh]aT>60om]o000\7NO=hG1GGfCiOiMoC=OeCL=nShL9o?mNAX3ilBZoWL6#"
    A$ = A$ + "iVcI[[]k1]mY5TjD>bmief[V7kkI]B5n<JkU7lgJWg^[jaZSIJEGSfgeVF>>LjmhMb4>6H8oojoVoN^G_7;jmE]?[XkW^IoCM\H]OoFN_[`O000f3?cW:ljl"
    A$ = A$ + "NjjaNfo`iB7OOnK]74jL=o?iNA^e9e[oifFJkI_mQAG?WfN9UL[1eKoiegjJ5c]V6]m`;nK]cKeXN\jHf>[[Edge69^KeanMEOm\m[m:LN>klcnlJDoUL\EL"
    A$ = A$ + "=gj_oZfF?7gO;g?mV`kS9h_Om?eeTlN?#kjIg^7N_YAGW`9AL6?aO]feg>L^ToWL_8gl5keoNG7SfdbLAKI>gJkE;77lGNI[WU8=j3cHmKJkQGlgJWgZAmHe"
    A$ = A$ + "a\MFGSfgeVN?>dZSmkZnVaf?E6EFHKmlZ5oUT_Veco;ncLbg?mV8lH=_=VTjj<NZ7PonfohNP7M?lnBWB^6cbkhk;OJikd[gBmoDk3Bbo[VogDnORbf:5IF?"
    A$ = A$ + "WfNeca3aDkEZ?SfN<RoeL[F?jVl_WGJToWE>_ESjaZSIJToGgmM]YcS3]jHo^Z_IWoG[iFUkmTJKgk[EWoG]GkLKAnOfVCOnMShmcaRQogJGGh?n_cN`=\6_"
    A$ = A$ + "NM?LnUWB^6cdkDnOSmQ`iO;eoC:[[DNF;7_BnO3I0FLmReboY`WAK_jY?<j[CdkHok=gVKaoCIlgJWgZAmHea\MFG3eg3o\BO_cLKEXV]D?fR73<S]OZ<\BU"
    A$ = A$ + "]g<N?mlZ5ok9O>Y_oIonTFcWlmC_=NNYMMPoho>iIM]QGcbKGG:lN=NdM?>n7WeC\ogHOXDnOiloDbi:WWBco;Uog#nOQmTHZm:eWAK?6aoAOMjnoaJbKImk"
    A$ = A$ + "Glh_dc;d`O[MNk>[7[>VYAMeCOokjiOojX_JMK=baQFM\OGeg<fnJUog:lWlofcmId^>`Ol7og[gNlio2om[oaiJEjiojVj5il[VoWFO8\nUVoG>o_Ylo6me"
    A$ = A$ + "YhZDoCViEQe]LjnWjIj[fhMlWCK?Veho_6[Ol;ZoTjcXMMgc[IFgk\N\jHV6eE_mM=co;eWgbmH;M<`<fnk<o_Eko:co;lm>[]WTJfBg?miUfe1nSohoN8L="
    A$ = A$ + "]aGcbBGK2oaoEhM=o_Yn#^<mTho9M<A?IoEboK93#[USPfnWLM:aHPlOVYom^fm`?[fN<jhOeeXVik[eh_e>_ESlo\fHV6eUGcocJSmkZnVafO7io]Jo7iEZ"
    A$ = A$ + "iZE<gb2iXfCnSeNIYkWnh]fe1nSohonL>L=\WfJmaOlO4_[io=e7ZUoG9o?YS9j=o_LnOCio=3dfSAloGcioeW?K2oRPOO;>Om^6oSlig;6iOTIM:GEnO96k"
    A$ = A$ + "oU[I>6#3o]fi]k\N\jHV6ee#mkPJYgGYfF[lh#[>f_[jK6Ko]Uog2mOTGBco;eliJMkdc[ENlI[llBkj0oaOlO?4N]_h[eIY[=Qoho:L^VogD_haWNmoDj3Y"
    A$ = A$ + "V?WTll:ioeTog[GSa1hI9oOVcMZ\mB=gL;Tocd?68Wcebok`M?dOYIQdKf5C_V=di]k^N\jHf^[[IegkmU677JeanMEOS\mUnBBnOcJOfRoE_g\Pm[Fio9]n"
    A$ = A$ + "\dmD_UkaSoh?n;giB?o;JGOh?n_JWUllOMjmRBN9eoCXGdBfO]ho=T1hg[O;J^YRaHcG]7ooN^i_T]Fhhgk9kOLOXUGgPgWZoFklF=Z7[>V]cjJFmmNOYeaQ"
    A$ = A$ + "FM\OGeG_KOY_VAnO]nBRoaKg?>F:TPO_H?fEnOmDOFjnZ?_d^>`Ol7og3QGk;nJMFjJCh?n_2W[io]d;biLZinhelo6mcHinbC_Yge0N3iomM?Xclo>Mg3k1"
    A$ = A$ + "m<n[MMkEo]fi]JD?M__Fdi]iF?_djBcnN__djh#[=f_kS1lNnOEcD;cgoaSEWog8eWU^_j==77l7oaojn6O=_DO?][Cl7oGQgBmo6j3Ybb[DfGUN_F^GdBVM"
    A$ = A$ + "]ho=TogCoITeCYMm?]N`[fcoCkjNVnWFfoAVnPfembm_ba1JGcFjlfMG?ST1bZl?LOdJMYEOOdGJLLXe6kgma0[>o_AO]UloNUoiX;lk5nnNoJKioeImYmmE"
    A$ = A$ + "2keWdlHaOl7oW[cin_e^>gQoUFo_fe9n_6WK=oWC^G<kl_dfWFlTlon\7]Ri[O:#nOTog9Nl_eZkMF?SV1d<k3Q[_GSa4]c3BS<?k]6U>fo[<JJhm_SnQfSg"
    A$ = A$ + "[HO9eoha59Kg`gkfbo[Sjc2gC9\?OJcS5oaOlON>OKINdRoN9o;_k_7co[U<a>i\^JecAmoDj;YjC]nj4lZ5o9o?O?nORnK]jnDbokioNVTJO\jN`\j5SnjT"
    A$ = A$ + "bokioF2Qg3gB73\[akDIS]ZmUUlGBnOcJO5nIdnn9amhCJ>\h?nSocagBioM[mSD>VJ^0hoMioSK]jo9g7b=oVFmgj7CdBFMc`Obok<Qlohiok4?n_gjNU\["
    A$ = A$ + "nXfIN=cmQFioMRSkkL\g[iOmlbcn?bagWjmCRkaWdLHaOl7oWS_N;o_hehGKmm?_O][kE<fW:_SDOoK`oDIoeRoWJOXfij]h_U?N#JnOcbObok<Qlo8o_Cdo"
    A$ = A$ + "AF7l<c2KT]idco[bHfZOYaaBJMLP6SkkL\OjiO=YS1`omho8IKWnghUY_OBL?nTV3;nSohoLl]6gFoPlojkOo7d^^W]g]joYf7bUME?nKi[9dJnOSjoYN]bW"
    A$ = A$ + "[We:JGgCeoBcK?N=16LnjSjO?[aAkjNinKle[eki]?eo\N5^=geeA6=3PJGW?nUdg_FioYaa1J<^_canLO]f73PoSi_Tc;2OOmliFYokhn:oMllOekY<?fIk"
    A$ = A$ + "och:nSog^o?N6_6g`okCJ=]]jN:oc]nnKLm_mToQfem\m^Eo?an#YS]kaO;WeU4OVYoiNoJg7TdWn:HjYRh0lZIo5\Fh`g[fem<moTG_b<m_UehIQj^WcKOm"
    A$ = A$ + "BfajBOm[LPjXNfiHfkGaiE<j[`]W67;Yea1J<^_canNO_[nH0l_OoSG[GZi[5_]3ojBO^DWCMBg?9\oj]l?Bi_gco4omSoQGK;WoWdJJKekh[]WZOLcIP5OO"
    A$ = A$ + "\LgOkdbf#Zgmho9f7bMlnXnK]n#YiZ]:o?e<0oNmKEV[jgH\i[>Co3O5?7m_oNGXo9Oi\loN6Koki\_nI=]QO_`g[5ZkN>_ME_fieAjM<keonncnELf7klH9"
    A$ = A$ + "]?>HggoHGSm]ToEhfNe73Pomk_TiZml:nnoBo\WjmC2k_WfLHGQoQci7oaO][[EkKZec7nOOKG?#becUlNdfSEhOh_G]gWfN\ZanK9OWDN?Ko]FOX5oVUoWj"
    A$ = A$ + "a7]\V`I\n=[A:oS7o_MoOmBnh_eF_b<moTF_F_WgnagO0T\?ZE?kL<ke[k>o_J_Vea1BfVefoknle`a99_NfN]ln3gG[jH0lWloFmmE>]i`Roh?n?7Ocio]e"
    A$ = A$ + "?ZMmL9Lbm19g?kdcfHTaN9nOJmP7OV]oF[?8ihfIkoYNlA^eeUjEhkEkjNEnomac_NmcLe3WCoUko?3f_nhiokfmGbje\RomNNKlgOTm_Tma:^>B_SI_N]nl"
    A$ = A$ + "ofmaBknh0=7ggeHo_f72l:LK_jS1`onmGjli2mXg?gYMoT`nkY=7Fl7oaoihK>o_]nQT[Y;iJnJk1n[SkWF?8diIk_ej5elKEnOj7OTJ=0aO?][cEjocHi_V"
    A$ = A$ + "Kncle=fldGmhO^lod^>GjhOhJc28lH2][cJSKi>_=ekIFi`8IO]RSST>V5njmg_f[Fco8NKZaaBkjh0;<^_SanHO[mJg73Po]k_dLlBi_T?g>mOEh]l?`Olg"
    A$ = A$ + "[n;9[_BO?][oIjm8[oGKO`OMmo4j1[<o__c=a8mQMWoGY]WEj9BjIacM=N>dWR;SL<cScoJlme[SJ\LdaoL_^Mo?ee[9ilfOmNVM><UfG;lj8[83TDeF]c=R"
    A$ = A$ + "gVJWog>>>#camM>fKeS1`oiWoG=o[mIgYo[RKK]nh?nSo]iZd_WfeoX>?B>0aK7]m2oaO9N_:o]BOXU\oV]oUN_JgGTdgRWk:ioAnOBGOhYc9_N=9Wgnm_o2"
    A$ = A$ + "L8<;8[WoG_7Ogjfabio=[S3dJLOgSmFlH0lGff?VAVSF]?o7\#oG5gdJmaOl_V[B^6A^gWfeo<m_dJIoHm#7\oiLYUemWZWY]Gc`oJgO3o?GoCih<mg:mQJW"
    A$ = A$ + ";_Bo7I^UJc^GoVehkagGTogo=Ho?JL=RW:WljeTLNkZWcFhnHGG7IVIP<cl?dhH9]>>#SaM=6k]fa0h_\]_dedebnElj4GXo[RL[oGkj2oaoMhZD^QNR7m_U"
    A$ = A$ + "e]gB>2Jk5nSoBlNEnKUn#[io=Co?i[EBnOTog_G0g;GVoGA<XoFklF=bo[fHF]Gc>o3=>FBkS3d:o_M>fKYS1`OIKoE\>FYKgCmn9O<o73FW[doCLnkcJL?W"
    A$ = A$ + "ogha1N<o;?kO\_cJmoWBo0omYoilLVnKUn#;>]2o]H?AJOC2JGW[nh6boK^[ElDhdG_VE>_MWeSda\IG;RLLc7;Yma1kNo[eH_E>60om]o[ThioXMmXUkNZ7"
    A$ = A$ + "TbkK_?8aiK^Gh=oSmM4o?an1nkCoWYWF_?\CG?UNB;m]`O=egCkjLinCnOTog1]N=[MNk>[7[>VYAMYma1kNoKeanMEOh__mOien4b8m4Qlo>kea\2__en#h"
    A$ = A$ + "mXKeoC\7\b\1>Qn1nkCo9o?MAkNB;m=[TSP6n7BhHW7V;L\WQIniAocQfeIZjfBWg^mlo<hHV6eUf77XBnO6L\OGe7nkKoQe=^MRcOO5NkUnP4g_iNPGl?WW"
    A$ = A$ + "]joYfG`OOjO=oVQoFY?dR;[boCL>NJ_nA]9UgYj3JGWkX?hYWk_CgO[MN[6eSE7cfIMYma1J]o]jHo^Z?lggn3cOlbJ[YIGNGJ]=WdJI`Ol?WSelKTOO]m3o"
    A$ = A$ + "aoFmNFnKYn#Z<hfYo_Wbg?XOoXUSA\B>2h_Nm1?_NUCcO[ML;ioYCMYma1ToW>e7nkKoQi?N5>?oK8gSNMgKm0_koC?`R[YOVS_eFW_T_Gla6W#?2omYo]T7"
    A$ = A$ + "f8nKUn#Z<hfYoTogi1nokSQ3G[RU>gN7mQCJmJFkhFboCWjBkS38o?MZ?lggn3[I<cCci9UogFf?h_LgSmo6k1Bb2hTcl9_cOV9b8nOBiLhEoo<CZEh_Mj3Y"
    A$ = A$ + "coKOnORGO8O6VWY?mh_UbA1oe[?LB[GcJWgZAmHea\MWoWV77XengZSmkZn`OOk?0c6_<WOl7oSmmfbl;][aIRdVoOmA^:WC?aSnW?WZIi_]bok7W[UCgmjO"
    A$ = A$ + "Om\HGn=JGO[nh5?WoUgm?\?LJ[GcJWg^kjaZSIk^^dnh0=foFM\OGe7nkKo100H>lI^1WOVOYM\NF8bblhlj=Ndoj>gSoWC_`kn;_?IS<4dih3klLDYQoTog"
    A$ = A$ + "i^N=[MNk>[7[>VYAMYma1kNoKeanMEOh__m7000X5bWaAYWEZk9GD?joWN89C;9IUM6cYakn;_?IS<4dfK?e78o_Oj3Wjje\fa[N?38]Z;]?>HWkO[>f_[j3"
    A$ = A$ + "om]o0000SBnWmYc;[;l_TSBcgBn__fNQo`L>n`OIomONCnO?m1F_fIQE7c\JMMCHmN<iOQoF^n00000O#]L>K5]m1oQiNlQ_bnkoLfgol?7f7HmJW5FM<cZe"
    A$ = A$ + "e=QekaTo5nKij30000000OB^WmA?T3JL>WQ[EcCiONBHea<[FGg4F_7_jj3om]o00000000SR7cnkolVOnW?=\jHVE[[K2[gSGMmQonfO0000000PIPgbnko"
    A$ = A$ + "LVe[MJHea<[FGg4F_7CnGh_U[?00000000_2[Gkl`ZSIF]^^9\N?Vl_`O;GO00000000N5F_fiQE7c\JMMCHmN<iOQoF^n00000000l:\N]c3[>VIejjV`jm"
    A$ = A$ + "Hbo2o]Lm10000000hENFOf?llgoQl_GSF5[>VIejjV`jmhEGOh__m700000000jW_bl_maOiXoM#id`ZSIF]^^9\N?Nee7nkKo10000000PnQeZMNHea<[FG"
    A$ = A$ + "g4F_7_jj3om]o00000000#o`Je>?\jHVE[[K2[gSGMmQonfO000000000000000000000000000000000000000000000000000000hdh[_nj_XMMPoh?n30"
    A$ = A$ + "000000000cUo;kSWomjaOIPPo_5oeOa[nkeaoWL?SAkj2oaO00000000H^hiomjngIohc<PNbnk1][WmO<Po>noW\NR?foWc1^ic3`OOk?0000000Pg`ciOE"
    A$ = A$ + "Km_JGOkZ74WoWGL?oa0g[oEcmiE4GF>#h__m70000hio7oo]_NcO0l<iF7Xfeejm^DfOgO>#?li2nmec0XW>n_jalY?DhkLPd^naOl700006SggCo?oi?9a3"
    A$ = A$ + "g_7oojKG3Gc[Gl70_SWbohgNCnO_Qlolaao3Umc5T14nkKo1000Po3_VoELFGiloNG;`WImEjkYMm2`ZaS?g[NmWoEIIoiSn#^5kOcN;khPkaOA7_;9oW3=3"
    A$ = A$ + "8lggn30000oP7co;N>nBbokVb0;UoebokVl7PHljonOjUl?JcKOe78o_kOLgkioPonfO0000`_?oKYVS_dlo^Qn#>oUTog=h?0Y`[7WWk_kC_mW5bJNCOh^m"
    A$ = A$ + "fCngDFgGH6#h__m70000lkcoFjildFnOWLOXToBcokTm7PDTnhLO\nVonlOUie=g3:i]gj3NkiogKngfcjZ`LP>XN3nkKo1000l>SVoUfeoLMWlo8o?`kTK="
    A$ = A$ + "#JGGkaMOWoG^[moP7j3gNnGNgo^boYF>#7D_1om]o0000N6?WoEnihd^oWH?XVo]Tog9j?0i`c7SkmloTljfk3gNnGNgO_Wo3nkKo10P#Jm_oG^][gQoncoh"
    A$ = A$ + "LONXLnG?Lf[;ncifd_oWH?#RoinjK`O0BAie6MnGcGRoN=g;boc7iOiMoWNn?7fe6aOOk?0P_9>;WJoLOD??PcjjOh?n?RoWNNXcfO]m1oQEM<RfeanMVlol"
    A$ = A$ + "H^GToW?bo2o783X?bmi<?O0om]o00nRAckidGC\Gm?EFEh?n_BgaOkh?dka<nKnmY>>fC7CCnO1nn?lFOXdehe^n`oiiiLbni<?O0om]o#^S9^oO^g`OohO;"
    A$ = A$ + "[iEZoWDN8NfoA[gIi_f7kSoh_7m76mH7o=ong^jal_l^o9_Fgg[em\W3L[m1?To5ngA6#OTkcIO=1lggnkMR_WVdGgbm2aokcoFF[j\l_WeGSo[goFckHEn_"
    A$ = A$ + "ccE`Olgcn_RNYfeQN^k_ihGjl0?d7lZoYlVWo_k>o;lO`o^Pk2j7h__mgCdklm[mbbi1Qon`oEVgE[n;Im`hoj>>`Zn_[lO`Olg[n?cnXGWWKje4hSNPGcob"
    A$ = A$ + "kngjOn7JG_[\?TjJhFO]=cdoKhnGm<VgB^?gD_0om]oik7jW[a<mXgic?jW7oaoMhJ]elZQok<o??kO^nPUlGSlO`OlgCn?cnhG>;k[d^k[N#YScm#?hao`O"
    A$ = A$ + "=loFkjCSaM?ML#^[m[mJIfYoYnc:kd^oeHSmN?g7lgKnGK=[aGC#kj]V3]Lo\BcIOdeB4_]GmJoaOOjO^jFJ]^2o;EChoj>7`Zn_SkKPoh_WmOVma`imZMm\"
    A$ = A$ + "OgojGSSNY7DjHK?d3lZo]<WfK_?DjjoJGOhoNj1Y#kj2oaOYeJ[TkLN9c5N4VIOXgGShO_k_E<nOBnchol_>#_iO]:o;EChoj^OPEmgZioPoho]ho\jQOidW"
    A$ = A$ + "o]7oC=FZMM]_anOo\_Ime0]jaN?L<#;cUmfk3U^V_fe7n_WNPW>V7oSLo]n9`RmPMWkA?[_^dnGcnPFn[]gJk_Ej3g`hOXo]FO[fO[Wog=iO^nPUlgJioPoh"
    A$ = A$ + "o]io\jQTogWSUJGGJi^Wj1NeObokWn#Y[e[MmQokY7hYSiao?mo4ncnJUIo4kN_c1FBMXA_#CoebI[h_5j5g`hO\o]DKk`O;Wog]iO^nPUlgBioPoho=jo\j"
    A$ = A$ + "QYLAkj2oeaM?e3lZo]lW5RGk3g\gho_k1NjLoLn7f7lPoeV[Web1L5iolhHZgO[[aFJMXA_#Co]LnO<nO>Soan?bJCGQoWHnOWZoij3FboC8o7l7o?IoWE?<"
    A$ = A$ + "U;JGGh_>^kYNPGm_Ui`NkmQDGSoT^n=n?N?`C7ckMo[UkGZNQ5j7mVkb8iH<k<Pd8o7]mGklodfoh]7SocaOYee^lgZioMSnW[?H9o]Bn?h?nO[n?[NhS??o"
    A$ = A$ + "gWB]?;oC=FZMMYUkNZ7hEoeNn[F1_WoUgmoY7hYSim\oU>No=FmjPmVgbCM?Jn5SliC]mfIo#Kog]_[XnIlo^boK5nOBioMjnW[?H9o]Ln?h?nO3n?[NH:Gd"
    A$ = A$ + "^^`OMLgCm0_j_fcOe:hml_l^o?m0?M<_GmOT\od^_TkjemlWQMY]EYO_FWoLY]e\j7WPo[<_[C`oDOO6oWcebjIm_[boD_WE=?2_kO^nP5lO7NSoh?n?_NH:"
    A$ = A$ + "Gd^^fYoQSm?ogJGGJ=fkYS1lZoBVoZGj3N:o[`[em#9oSAkjOem4?NmoBXMm=C?;UmWdlodjjQUVGJ]_>eieYf>]\ffD__JOm<kOQW[JMoWY_YZ;[kOZ]5So"
    A$ = A$ + "cijIeFGj^mOGiOiMoce7\Pok<o3l7om\ocZ7VbG][;lO?^7bSk?XMmYaH_7>6XTgN[?4OMm`[_[Mm=KGO?\o9Y_gf_N?_n7GF?iY_hYSiSMg37oGbc7\le3W"
    A$ = A$ + "En?UVKkc9iBW3l9VoS6n?COCECFgoDK76oWcecTDCkdoMUoUgm?GO`2nKilO`OloVlOFm`D^ZMMQojh^Gj1_mC2JGWkNLg;77hYaoocU4iim#`mfnhm6on_T"
    A$ = A$ + "NBH_a;7cWbmK?o_B>6SE_VHY\DZmeBVcJl54jI^denjIfk2cFajn?COCe;]^oYZI6oWcedTjg^lOGiOiMoce7\Pok<o3l7om\ocZ76ojDZMlOn^kUNPTe5N["
    A$ = A$ + "mPgNe2JG_<n?jHMQ\oNhkak2Io5lNef[IfOlfenNlf;7oGccHZmJgm5bo9Moh4lOVnVZGJMoCEc<n?W[Y9e_M^ng`OoEM?4_kO^nP5lWlO`OloLVk\GGo3nC"
    A$ = A$ + "nO?[e;L=OQO_K]74kN\oNZ7DRK`mg>lE_ioEhmZ]Gc\ohe[m9QC_GdR[aHUk=^ZlO2O?lcoiJlOVnVZV\^oYf><n?W[YeCVD[dohOoEMo3_kO^nP5loTbo1o"
    A$ = A$ + "aoCfoIe3CiZfe5n[SkNY7lmimINMBW3?Rka[e=l[m#?X4gPk_Mh[`<mbU[gGToWg^fW4>mNA;^6SE^gh\boAbLKU<ggLco]dG?cNG_ioXQocdgDeUem?efRa"
    A$ = A$ + "oiL=]FcTJen7ok_ZkOhMoce7\PoF>o7l7o_9oWE?lQ7?>UJOfn7Rfee^L?g[K_7lLNJ^GWdi`Shncec2m>lgkfk1Uh6Loo^Nf[?iEHNNIbo;E6POMGGK`KGo"
    A$ = A$ + "?W_e#kjN4O[MNN>\bm5bMOjBgo>lmDKn_?__BoNBf6BZ]Idk2W[J;nGcaJoNmho<m=gn#Zognh_Te^]:ocE;[hJ5a[e\Ue^^BogEnGNgoLm1;ho>co0oaO?k"
    A$ = A$ + "o\jQYLAkj2oeaM_d3T>7F][cEi>ioillonP<ioUimZ]Gc\ohUckcik]OM#9W[G;o?=_V#?SIQSMY^^f^nlYfNk\O4WKgG_TUKFhWoicdKoc:SoJhOZ]gZj7B"
    A$ = A$ + "GoGcn;LmO[bGYG?CKogeLX6eoFOI=oce7\Tok<o7l7omXocZ7Vb5][;lOmN;1][cM>^kUS38o?oTogS[ebcki1lCbkEKOVM_a;Wg7jKliiaiNMCW7dCnOQ_\"
    A$ = A$ + "#_Xg<GJI]bclcVKk]kNaS3OWSe32m?ncdZoJhL:ooX7dZoC8o_Eg;4WoE[nOKio]8ogeLX8o_dm1;i?ioPohoJmOFm`D^XMMQokgK?e7l\oToW_bokagLiim"
    A$ = A$ + "gako]#__GSP3bnkY_hUck3m=nllh\_^]c3J=3`Dm5=k3mVibcaci^nF^SoWMfO?KG=j5OTSg3El?gWi4LFT?]jOVgO;ea:k5Unn9MZ5o3f6]^_geebdfO;Vo"
    A$ = A$ + "G\omnbBnW[?H9o]Bn?h?nO[n?[NH:Gd^^`omk]Wj3NfohloROAnOWee`KaiHNbl;<o_ON>0_oW5H_Mmo7OScm?ee0^]c3TL>_E_F`XcM]VKQDkm>BMXA_8KF"
    A$ = A$ + "N?4O]^:_gC`I[ho>k55GogRmglio]1o]JnOkhUUcoC3o]Dn?h?nOSn?[NH:Gd^^fYo?mPKO]^e6gmda1NfObocWioQoYk3NjjoY^^G]\0_YnQT<^BU=VfeM^"
    A$ = A$ + "a>Y_:]ndD[agZIoeKOXJ^6BXcm[E6oe`oMg7j>3\1l_Fm\R[3dJnl[foM>7RNlOU_f]oUj3FaO=bo1oaO?io\jQQm<;=OgMiOZaC][;=lfCm1?k_GcokSoL^"
    A$ = A$ + "[<_]Hd^naoedClbimil=>o_`S3^enQdSoe^>CEcSB[io=[m[Ij3anFSKaKUlOEmQLcI;loNUnWJO6G;[hJ8U^fUFn_c[Q:eoMmJgnGZ?H1oG]gh?nSoc]?6j"
    A$ = A$ + "RfeSF^kYNPTcC^inPWmoijE_OiUlo:=7]JO_KhhQokNB_B#Jooekie?[3#K?FAOa;WgWcG_NM`Wna:cZ`R8:;P;^GPoW_oBcoKEn;=o_Ej_TlofUoiZ5=mOG"
    A$ = A$ + "_d`oLm1;ho>_V1nSoNfoIe3]nmkGYkY6?e^^d`K?e7l\oN;o_LiiUjjgYV;gYO<AfllNmcLmcVmGlko0m_F_a;Wgoca2jm\kH9n:i93o7gZcB?N#kj2oaoJe"
    A$ = A$ + "M^i\ebeakeoC>o_Eh_5co[gke95=m?GO`2n_c[OPoh_Wm76ohWDXMM]3_[mjVk3NfoW[Gmne]WoGleV;=FWJNLWna5oWG5bnkQ__fGQ\o2N_JkeLk?nijoOO"
    A$ = A$ + "^oG_nhGCmm>][1dbhI]igaa;0HCb=o]heU]SmOYJIUkoITog\lgZioM[nW[?T[^VA]4_mbi_Ubo9ehb<0oaO;h?0m`ca_QoJH^fgnjJ8o?bo;N\^Ug[fNeRo"
    A$ = A$ + "MWoGQg[fN1mOl#Z<n>mlobUOOhLbbBac7n=efnJg70`3Xmlg\`n_fJCgQoeZ3lOmW7DboIF;Ybo;gnOeNgZo[:o7l7oedO0j1]WoRf^oLNKh_VkkYMm^2oOk"
    A$ = A$ + "gkG?oJh[`O_CgoDGO>gaj^8o_2?COTogmc]UoG]LibMNNfS]cLNA[KO]k;0LcXmlG]`nGbJCG]oTo7ioAn?h?nCnO`iPfcOa2^o\n]`ea5om^aN#^W]ULXMm"
    A$ = A$ + ">Z[Y^nMh[W[I;9[`Ckjk9co;>K__bToGZ<0oj>?W`;LCioEKnMe^gVT\o6Ik[Mo1PK5]Wk2kOfoFH^cQk[h<8FMnOifWk>o79n_RlO`OlGKo1X7NO<J]Ggja"
    A$ = A$ + "a?^7WeGZ_g=f3T<fO;738mN0]LoRCZWT=o_?8CnOIN_Jk5doa3omJK7NnOST=GhefFAfOgbe>100`nDknEc>o?[=_hEVeC;I2Qoh?0F7boSlolbJHU<_U#O_"
    A$ = A$ + "][aG?G_ON#oTlNef7H\S5nkef>hloT<G_F^nF[IoejfGkn5000g;ToW_co1om]o0d2To7ioiYe_Vkn3OW7B`hOYg[fN<Roibck_n7ToCYg[fN0chhPfAkj>f"
    A$ = A$ + "QJc5[U[_5ngcOTo7000W4ToGmJK6LJn?;_Ud7\Xoc\G#nO`]0ioAnONKm[Y^VN^aO[W1bdl?ccoe=j?LndbO>_]L=^FNfo83#000\2To7nW=c[4ca9igCbkY"
    A$ = A$ + "`LT\Xo5k5]h?io1G4BclFkjLE^7Ve3ioi[e^bho_cm;EnOQi0ZMm2`3]T?WdLjj=o_FfnJgg000h>Ql_`OboSlo00:3io#nO^OlWloP3TNbW[F>MSVoWT]_f"
    A$ = A$ + "m=000^C8o;lWlo8o?0Pb#n?ToWk7o9o?h0Qlo0000nQWl;d:o;]oi53oCko^bocBnGjG7=o_RKKVW70V7boQloLoh?io178c>O^O=_`<c]M6KO]kK000L_XM"
    A$ = A$ + "nGh_mlOWioI5oe:o?]m70X>To3ioinaObo3>Dj=S^hLin8k_Pin=c]_fm;000^K8o;lWlo8o?0Pl#n?ToWk7o9o?h#YWliBU=g<co[dfGkn5000g=To5nCnO"
    A$ = A$ + "To70#N8o7lgmnCnO`1C[Id5W;Gf\oj<3`LKO]kC000Lo#nGho>Z[C>o?;^]10f7OWe_#d^NaOl7o1hgdccYWX\o6hi0dBc76000O`ZW7WeWW8n_WjjdlO6e8"
    A$ = A$ + "[C200000K`cL_J:g_o=G]RI06nNjLk300000\Nnj_o<;U6;_]100000JSJidU;G>YoIifkf700000Hm\bli8k?00000\5[nW=3nIo000000Kb:cWS\o00000"
    A$ = A$ + "000000000000000000000000000000000000000000000000000000000000000000`ZLbok]k9Gk000000000H5ncOnc7db__Ef7`l6o[Q5g7`WlCVI_BP]"
    A$ = A$ + "cBkT[M000000000\4_G3mkGQi^lnecJ[[mkKUm1<aao_ZlecHlObk38MOoSLcN5##FJJG[gD]300000000Peh9KVWlINN5W=G^OO[\?Pi<nGSI<n_Rm1lI??"
    A$ = A$ + "mc=GRld<F>JWL]300000000P59<KV`GYbV;e__Ef7`L6oUT;gXSo[HO0Ofc[VQFHFJ6ZGObe>000000000F4Nnol=YbNmmg;<C^L_7;]?POg_5WOfgIXE_Og"
    A$ = A$ + "co>LdjWIEe>00000#K<bo6\aon]100f3Nnol=ibM;VI?n?km1lknMCIX5lgUNU8ec[i:n<To700000jBZiaejlo7ic300`lQWo?OC^Lg:mec:o_I^?POg_k="
    A$ = A$ + "o_NngYiIb8e^fmM00000^58o?00hnPWo?OCZ\GcU=g<coMfk3hgmKglloAnO00000<M8o?00hnPWo?OC^\G[mJ6io>cm1lknm:b#;EFMbZU5ngoOTo70000\"
    A$ = A$ + "1jI^6WllC8o?00hn8li^:lO3FScV;g__Ef7`HSoTogMa:b?kmiUUnjImIj93#]kg0000`mbCFFmToe9>OfBo<L\c]1000cWDGK^UOO[\?PfQOnO_CJ?3]fbo"
    A$ = A$ + "CjiXa__eTo77W00000[QhL\Tnco`YViE]onP^7o93#00`N8iW=_DO_B<Sm1\falD?gMUnj`\iT<n?jn0jO\MViWmTMGl_>k?c:ZM0000HLZogQ_]mgC8FWNN"
    A$ = A$ + "6f>iWk]Jif=RoWHo000^IJmNj[2]k3NRLi^Y1TogJ6OcWUFKW_eccbG??cP[Xf100HLJmJ_L]jk2YijL;IlDcgL?W3WJoXeagNloTj700`]C][1Wkjl]TUG?"
    A$ = A$ + "k3H]SilloMo<SLfCmc\o:n<[Xf100XON^fK[[G?lc`e^?Kj9k_C>S7Yn6?oTC]OdkhKX;cHK0`<imZ;OH6OmYF3m#ZcEeHKX5g^oeZ]Mho9gO>iao`LgNGCU"
    A$ = A$ + "bVkig_e\ifan0F?a7gfJnOFjhN000ZCZ<=j9o_h\Bdf[Ak7]Rfem<l^g\o>a<NVQ_WDoHDOK9kcCXO0g3F8k=;D3=Gc1[;oQNGoo8K3e>^ibm_F]]3o?inc]"
    A$ = A$ + "<n7o:^FSOeKnO[JO0[WW\kRoeIoI000#Ob]NnAbokTG[_gNngVQgWHOH7IoIYna>mm4j7`MQ5bNc2e#ceLRWMWAFoO_K3e>^ibm_F]]3o?inc==n7nRloPH2"
    A$ = A$ + "c^kILCbW9ncY]7000D7bo[^7gNf6[8K8;g7d8;<=k7F:k?;d?PkS_nn_g`O=U_nD[Qf[id[MO6[oo4>7ofm_F]]3o?inc]>nCnO#<aIg9=o_Fo<000X?ToGI"
    A$ = A$ + "7^m\=FIf#F\?XIFHJd?\HfOFnhSKQCliOCCO]PolloY`i9G^olloahOZGQg7>e;bocOlNL:lo>l[;mIRoLJk1000eQlolgcof:mfbm1;T5f>k7F`G;e?l4WH"
    A$ = A$ + "nGJj[5lGkloVmjo?Qc]_MoiioSaoD_2_7lZlOVk39e#<JgkgI]?S]akaYDoj\o<gdH70`iBZ[m<Cdf?9nWJ=im`9^fN_ml_]3_]HO`BIQ]SnQ4OgEn_FXOh="
    A$ = A$ + ">al_ddG;h_fiomnLaAGoO_K3]hfmO7?KNkHO`hohn5n:ln_YNM:iomcj?NU0K_6\IDkcdoWaZ`_FbW9gWoV7k00>KfejOefcFlOTNbYU1XG7oe8;<=k3F:k_"
    A$ = A$ + "Md?Tj[EboK5mSC<oWiN<`?cU^W_nDfWcJOK1oWIo#N=WN]kcHmoFlNONcoJef>loTk?gjhOhmNGUocLOTKonA^A_288;9]77FA]?KoO?>Ej[WeWid7k00>Kl"
    A$ = A$ + "fco4nSokfK;d7\HfO[\OdR_F:o_Ig?LOnO>coAggF`oENl#fJ>H]k_?7\WeVKiWo9_k_GNnon8kP2O]FSomFScJl?lEhmMCmbjioUoi6;ANB6;7YIDk[`oDc"
    A$ = A$ + "9K5OVCN\3PCUONNKe5;d7^QejSoh_emFcnP5lMWmSFmeJio=cna9VocD?fgIn?jnf2n_bS7bFcoK]kQW3fjJcWaf#;^Mo[EKk`oMdO2?gYFfJQ[3IGnoGJX6"
    A$ = A$ + "WmhOl[hJ=neEToGHFB6hLaIFk[`ogSCUnjImIJZfobFSM0LRHYe2[iicNkiO2oaO]mFSnP4O]BnGC;c;bokGlNk=bGO:kcT7;4]FbC8o;=me2n_Reo;mHfHd"
    A$ = A$ + "HKX5g^oeZ]MhoZk?]V]FhmIF]oOW3HSehDj;1Icm^VNbM;>7^`OoFcVK7kShmGCi7mdO[\oBm\Z8In:]ll]<SJOWn;K\HQnoU\J708=FJ]o[HMNWDO`kI0Qo"
    A$ = A$ + "nlhnMf7Tj[UboJ6m3bokglNk=bGolm:a:fWh_>nJ1oGia3e8ocIRlOF>>ieYMkn;I]i[fO[dOTFkc`O]WcKl[LIc5omTjoXkSNLZg<T:a<WcCIfLnO3ho:n<"
    A$ = A$ + "mFkJO=30>=\hJoGaJm>YnPgc02omiamkX?dR_F;o[Ak7Tog_AkS_UbZ>gGK_f]oa7[=k_Fbagch[gem6BeoV1JEohoNlcRmWFOfjd`iF[aI=VW:g==`2ioYm"
    A$ = A$ + "mj6YfaochjSJOMN[LO1]mB3W]D_`2W_;ij1N\?\cS9`OOj_5mNUmQFmM7mWNZ9lO>7?lNk=bGolm:a:fWh_>nJ1oGia3e8eiN]>_F[?_O?kO]JK7n_ZnC;I["
    A$ = A$ + "eB]?3oonmKXloTn\i9aoAg7mhdGMVQD9ViLN:SNioeZo[hc<Zo[jJScLlOUeZEmnDj3J\^hMg;>Qen_SNSUk3N?38lGgSk]Bn?cZ?hml_l^oalNk=bGO:kcT"
    A$ = A$ + "7;4]FbFojCIO>[m]5lO5[oGja\aXaf#;^Mo[EKk`oEgOJ=K]`kc\Joo>W\6[aYdGN_Qog[geDY\iNnmK=K^M\?RgO[83YNb4DBV`c^fgYob6;f[ocVE<?H[V"
    A$ = A$ + "meZmfjm1=c3HGm2;Wia>k=W#Ohd^^6nKOoUj]UboI6m1_WoUgmoGmR3<oWYN=0WioXkK;ho:?N8K=7\^l7jMmoS\=dRKgoJef>lgRmWMk_fSoa_R[ehGmVog"
    A$ = A$ + "Zf7O^?]CnAm<VdJm_3oO?>Ej[WeWI6n?caRE>gG]?FC3_]JO`2i1LB?7[WL_iTj3N=kClGgSk]Fn?Sf7lNnGNgoOe;NMNio<e[oi<o]#fKFX6J^V3Fknkcoj"
    A$ = A$ + "I]icHKX5g^oeZ]Mho>j?QWklg<3:le?ed>m_WJLfSoQ_2_WKZGf?o_Fc#Boc5WI]_2oC=O\ElI\dH7io]N\#O`Bi1\ZnQULDcNSTn`^?nOW7CPondO_WoSg_"
    A$ = A$ + "nWgmoGmRhekehGO:kcl7;lclWki[?Umi\fgF`oIf?TGcYGkn<Fo_5Vg_gm_F]]3ogAo9lJYomLXROMio^[K5noGJX6ooJ_c5TSLDPPXWbnnODf=TSE[YUAl]"
    A$ = A$ + "Xn0_>RGhAfSP<;4B#>JVIeSoY?cMEnGbnh]nejlS\DkBko[aYB7;eihYa^kiV[HM\Nlj^DO7]ed71_JE=aSNdRJC[e1_UoSDGCPo?GoCnOaoNPhOo^VY8acm"
    A$ = A$ + "BfkaAY?UZ_mPoGano[ZiTm^O=oKfmo?JKH5k^oimo;OfJlnomkcLcm92ioMgg_WUTocPIF];Yo_7[B?^Uci]c?BSMBU3Xg_Vkf[WbjjmlNR4kMM`aNDcJC?e"
    A$ = A$ + "1?Voc\GCPoao[BGJhM]m_71okke>55RHnGFjG?hO[coCjmo7Qibk^oKiMCKengSe7]m_g6oCOVkZl_TmA;Jh9FEc]#kBd6GSCinZdWSW7k6=7#[eM_Nl=m;a"
    A$ = A$ + "jgO[mmfhXDNNVfOf[KfQmlEZf\ZjPGcoYGOSoaoN^6#nOmG_`oj]>QMU8VoUUne3ngjlo^Vo=kno7]=\RMgoedV6nGSjCjLW[^[dagJBCo?R6UNl?mCjcLcm"
    A$ = A$ + "9Jio1ccehDj_>mhBWccccJO81ibT\4F[gNmfK[k^GOW[>HMnO]^?8YlL_e29ggcMkgcNoFUO[A?j[gJB_e1?jmAl=n7o?C=XeiTSRFN7oSoQcU?Onm_k#BLL"
    A$ = A$ + "De#oJN_Oog>MoGCKJhO=Z?mT]fmJbddoo#7JLeSoY?kMEnGbn0F?GSCU>FZc1\UL[9Gdk5_hf_gn^dN>R^N6I?ONjj>Yf;XW[3N=o;lonhoA[1]N_YAQl_`o"
    A$ = A$ + "JiOhLa3_kMN#3M[iTm^O=oKfmo?JKHfe=K^o[Y==l_6e7NooZ[]d?Y?k=g7boklhJL:mGWNLYciiiI]?PblL=i[HNX6mA;mkKk3abmoGBSSff]\?;?LofFeI"
    A$ = A$ + "_jekeQEiKl?nOTJPg`Rl_l4hObo367?TmV7d#gJnofkNjLaAgoo<]QIGg\in_Vfd`oN\nX]o]NlOUIcAnOk1GSCinZdW3H;Yk?HUc1eZON[?c]o2[fSacno="
    A$ = A$ + "=>JkFK?ONjN]]XeNeL4Z3[`ghofJk8hoIeH4cmAba7loIkOhLa3I_i1=<2iV7JAKH5k^o[Y==loZ[?SnnoYQombkogUV^cMkI>LYolIboKEm1\NNNMK;c3Nn"
    A$ = A$ + "kgCgg3bSVoI][mO^neboc3koGklolhmI[YgNeMDZ3BkKlOmfe;e0boK]S?hocfo00`XTkN?GO_BdBKh5ZY==loZZ?mT]F?JG2oooon=>o_WIamfaYIceRoW]"
    A$ = A$ + "?0I6W[M]I=^FoEYSUjLFQfQn[gkNoia[[TFK[8CA=[5_YiNeNTZ3[8SJl?ioMjioldoAXNTCchOk_750`IA]\>J5[maZmW7[?SlnoY]WmDnOF0io]bidoC6j"
    A$ = A$ + "KnfmJ`B?^Uci]cGC]3`9BYmh5Qi?BYoXE7TF_hObo[efgc<chcCo7QjA>=So]onC00W5i^gC_IIiikOECKJhO_DOJEkBhO[Gci<_KN=U[iTm1<nHkOb=kIVb"
    A$ = A$ + "OJ_>O]n[LOEjcI5J7PCTgfSGTVg8Q7RHM#B=So9o_8Tgc:7Ob]VC[mC;nEZe4Ojn700jULgGbRf`:oYQoGMmQomokUjBbcG_dDY\i^oimnLH=j3h_eloTOfK"
    A$ = A$ + "iYeH>JYGcfjlPWonJiLFQf1h49gNlRhlUImAD[3BYKl?io5QlNFihcYWoeYkO00X7BcUhVAcoHVf`:oYQoeXndCfJiNgeF]ooQ>dXdSomnIdloFEO0o]VG=3"
    A$ = A$ + "]d\dj<o_L7;ei\2]3`9bcmh5ii:chU8G7T#khojIMhQJb:eiKIYfbgCSLNJmk=Km=5[Z7mdgY8aeGW\o10PF9gk^d<iO<JKHUod`oJDO6=K==7o9o_ak3hkj"
    A$ = A$ + "MciWm9ij[:ekW[5[UaWN?WEYM0>ABgCe><7IDo4mj`\j7oG>33?ECFUF9o?oD?\`_hO00XMN;k29bo`3gK[Vfd`oA^n\CSoG?_mFG?eIj?O6o_Zn0n^NgE6J"
    A$ = A$ + "On=3]BlfjhTnL8o?0TQkiPkdlSAld>D7Va3hocnooC^KcL[1=ggCjlNJ9?XFeVTeH[Z7FhGl?00d>ib^Xgk;9AKHUod`oA^n\CSoYjZdachoEe7`gekAcoCk"
    A$ = A$ + "emW?K`ad^eeM0l6gIZK]>\fGkBMHDOPoOo__SFkYBJ>oc79o?YZ_FE?l#nGW^o10PBTkNBmNO99J3[lW6n?beWMLl?gkTUdnGjn0n^N?J6JUhmlj<lmoSlo0"
    A$ = A$ + "00X1Nn\6[eSfj]ncNm=[^nj=dnj;_Qeco00>G^^7dmWMomoRgo_cNl?EG]lWEWWj3hkjmW5TQf8[?[gcIEJ700000000PBT;G29bo`;iKDCKJho8GOf]aoB_"
    A$ = A$ + "cnBioEd7`cJNLc?KT<0]Fc00000000#\iTNo_hmoSaoJ8QooYMnlMoUN\WZ?AUnc#c?ej8[M000000008VLWMac<#69oSIJ3[lW6n?beW]Ll_#fLBioFbId3"
    A$ = A$ + "eW8CkiXi_jLTe>000000004CbU?Q5]QEnC3o7ijc>>nG3?f7`OigoMg;OfIN>o\8[M000000000000=9boO[FTe>00000000000000000000000000000000"
    A$ = A$ + "0000000000000000000000000000000000000000000000h1nGP;%%L2"
    btemp$ = ""
    For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
        If InStr(1, B$, "%") Then
            For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
                If F$ <> "%" Then C$ = C$ + F$
            Next: B$ = C$: End If: For j = 1 To Len(B$)
            If Mid$(B$, j, 1) = "#" Then
        Mid$(B$, j) = "@": End If: Next
        For t% = Len(B$) To 1 Step -1
            B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
            Next: X$ = "": For t% = 1 To Len(B$) - 1
            X$ = X$ + Chr$(B& And 255): B& = B& \ 256
    Next: btemp$ = btemp$ + X$: Next
    btemp$ = _Inflate$(btemp$)
    _MemPut m, m.OFFSET, btemp$: _MemFree m
    BASIMAGE1& = _CopyImage(v&): _FreeImage v&
End Function
Reply
#3
I think I just found Star Fleet!
b = b + ...
Reply
#4
They sub-lease an operations base in the local Bed Bath and Beyond.... In the Beyond section.

Pete
Reply
#5
I'm having some problems with the weapon rotation... JDJ you made them 32 pixels across instead of 64 which is one thing. I thought it was easy to program but might have to settle for plain flipping horizontally and vertically with "_PUTIMAGE". The "objects" shown on this thread might have to be fit into the concept of my "dream".

Another thing is that I discovered "_CLIPBOARDIMAGE" doesn't work on Linux (which is intentional) so cannot paste into GIMP and have to work strictly with BMP screenshots manipulated by BASIC programs.
Reply
#6
(12-06-2022, 12:26 AM)mnrvovrfc Wrote: I'm having some problems with the weapon rotation... JDJ you made them 32 pixels across instead of 64 which is one thing. I thought it was easy to program but might have to settle for plain flipping horizontally and vertically with "_PUTIMAGE". The "objects" shown on this thread might have to be fit into the concept of my "dream".

Another thing is that I discovered "_CLIPBOARDIMAGE" doesn't work on Linux (which is intentional) so cannot paste into GIMP and have to work strictly with BMP screenshots manipulated by BASIC programs.


You could do triangle mapping for rotating the sprites. Did you track down RotoZoom ?  That works well.   
Not my subprogram and not sure if it's the best version:
Code: (Select All)
Sub RotoZoom2 (centerX As Long, centerY As Long, Image As Long, xScale As Single, yScale As Single, Rotation As Single)
    Dim px(3) As Single: Dim py(3) As Single
    W& = _Width(Image&): H& = _Height(Image&)
    px(0) = -W& / 2: py(0) = -H& / 2: px(1) = -W& / 2: py(1) = H& / 2
    px(2) = W& / 2: py(2) = H& / 2: px(3) = W& / 2: py(3) = -H& / 2
    sinr! = Sin(-Rotation): cosr! = Cos(-Rotation)
    For i& = 0 To 3
        x2& = (px(i&) * cosr! + sinr! * py(i&)) * xScale + centerX: y2& = (py(i&) * cosr! - px(i&) * sinr!) * yScale + centerY
        px(i&) = x2&: py(i&) = y2&
    Next
    _MapTriangle (0, 0)-(0, H& - 1)-(W& - 1, H& - 1), Image& To(px(0), py(0))-(px(1), py(1))-(px(2), py(2))
    _MapTriangle (0, 0)-(W& - 1, 0)-(W& - 1, H& - 1), Image& To(px(0), py(0))-(px(3), py(3))-(px(2), py(2))
End Sub





As for saving the screen image have you tried using the saveimage example from the wiki?  SAVEIMAGE - QB64 Phoenix Edition Wiki I use the clipboard myself because I usually have a paint app open and just paste a generated image into that.
Reply
#7
This is a rather silly program that simulates space vessels racing each other and sometimes crashing.

Code: (Select All)
const numtrekn = 3
type trktype
    as integer x, y, c, l, sx, sy
end type
dim shared e(1 to numtrekn) as trktype
dim as integer i, j
dim as long hv, fl, cred
dim afile$, ke$

randomize timer

afile$ = "trekn.bmp"
hv = _loadimage(afile$, 32)

for i = 1 to numtrekn
    inittrekn i
next

screen _newimage(640, 576, 32)
cred = _rgb(192, 0, 0)

_display
do
    _limit 15
    ke$ = inkey$
    if ke$ = chr$(27) then exit do

    cls
    fl = tert(fl, &hff00, &hff)
    for i = 0 to 576 step 64
        line(i, 0)-step(0, 575), cred, , fl
        line(i + 63, 0)-step(0, 575), cred, , fl
    next
    for i = 1 to numtrekn
        if Random1(3) = 1 then
            e(i).x = e(i).x - 64
            if e(i).x < 0 then e(i).x = 0
        elseif Random1(3) = 1 then
            e(i).x = e(i).x + 64
            if e(i).x > 576 then e(i).x = 576
        end if
        e(i).c = e(i).c + 1
        if e(i).c >= e(i).l then
            e(i).c = 1
            e(i).y = e(i).y + 32
            if e(i).y > 480 then
                inittrekn i
            end if
        end if
        if e(i).y >= 0 then
            _putimage(e(i).x, e(i).y), hv, 0, (e(i).sx, e(i).sy)-step(63, 95)
        end if
    next
    for i = 1 to numtrekn
        for j = i to numtrekn
            if i <> j then
                if e(i).y >= 0 then
                    if e(i).x = e(j).x and e(i).y = e(j).y then
                        polygonstar e(i).x + 32, e(i).y + 48, 48, 48, 4
                        inittrekn i
                        inittrekn j
                    end if
                end if
            end if
        next
    next
    _display
loop
_autodisplay
system

sub inittrekn (which as integer)
    e(which).x = (Random1(10) - 1) * 64
    e(which).y = -96
    e(which).c = 0
    e(which).l = Random1(5)
    e(which).sx = (Random1(8) - 1) * 64
    e(which).sy = (Random1(4) - 1) * 96
end sub

sub polygonstar (x as integer, y as integer, wd as integer, ht as integer, rr as integer)
    static s as integer, fl as _byte, time1 as _byte
    static as single x1, y1, x2, y2, dr, d, r
    static as long hh, cbred
    hh = _copyimage(0)
    fl = Random1(2) - 2
    time1 = 1
    for s = 3 to 24
        dr = 360 / s
        d = 0
        cbred = _rgb(224, (Random1(25) - 1) * 2, (Random1(32) - 1) * 4)
        do until fix(d) >= 360
            fl = not fl
            r = _d2r(d)
            x1 = x2
            y1 = y2
            if fl then
                x2 = x + cos(r) * rr
                y2 = y + sin(r) * rr
            else
                x2 = x + cos(r) * wd
                y2 = y + sin(r) * ht
            end if
            if time1 then
                time1 = 0
                pset(x2, y2), cbred
            else
                line(x1, y1)-(x2, y2), cbred
            end if
            d = d + dr
        loop
        _display
        _delay 0.05
        _putimage(0, 0), hh
    next
    _freeimage hh
end sub

function Random1& (maxval as long)
    Random1& = int(rnd * maxval + 1)
end function

function Rand& (minval as long, maxval as long)
    dim as long n, x
    n = minval
    x = maxval
    if n > x then swap n, x
    Rand& = int(rnd * (x - n)) + n
end function

function tert&& (valu as _integer64, one as _integer64, two as _integer64)
    if valu = one then tert&& = two : exit function
    tert&& = one
end function

It uses the program featured in this topic that creates sprite sheets.

On Windows follow the instructions provided in the code to create an image file.
Call it "trekn.bmp", must be 32-bit BMP, and place it in the same directory as this provided program's EXE file.

On Linux cannot paste into GIMP or like program, must run JDJ's program provided on the first post of this topic then use the "screenshot" feature.
Press [PRT SC] or similar key. If you're on an OS with KDE Plasma desktop environment, usually only the program window's area could be selected and could save the file as BMP.
Otherwise (like me on Spiral Cinnamon) must accept an entire screen "screenshot" saved either to the user's home folder or in "Pictures" folder.
The file created by the "screenshot" program should be opened in GIMP or other image editor and saved as BMP if it wasn't already.
If the "screenshot" is an entire screen then the image editor should be used to crop to contain only the program window's area of the "trekn" program.

Save to JPEG or PNG if you like, but I recommend BMP because the other formats do "dithering" which ruins the "pixel harmony" which is bad for arcade games. This is only a point of view.
The code then would have to be adjusted for an image file extension other than BMP.

This program creates no sound.
When two space crafts collide, the visual effect is rather very lame.
I couldn't do anything about the flickering while one craft is "on top of" the other, using "_CLEARCOLOR" turned out unpleasant.
At this moment a maximum of three space crafts at a time are active. This could be changed with "NUMTREKN" constant.
With more space craft this program might benefit from a much-larger screen but doesn't make a good screensaver LOL.
Reply
#8
That's a start.   

I got an "image handle" error until I added a preview shot of the bmp as a screen (and somehow this made the image handle error go away).

Just added the lines under loadimage for the file
Code: (Select All)
afile$ = "trekn.bmp"
hv = _LoadImage(afile$, 32)
Screen hv
Do
    _Limit 60
Loop Until InKey$ <> ""

I'm a little baffled myself how that fixed the error, I was just trying to see if the bmp was loading right.
Reply
#9
Thumbs Up 
(12-06-2022, 01:56 AM)James D Jarvis Wrote: You could do triangle mapping for rotating the sprites. Did you track down RotoZoom ?  That works well.   
Not my subprogram and not sure if it's the best version:
Code: (Select All)
Sub RotoZoom2 (centerX As Long, centerY As Long, Image As Long, xScale As Single, yScale As Single, Rotation As Single)
    Dim px(3) As Single: Dim py(3) As Single
    W& = _Width(Image&): H& = _Height(Image&)
    px(0) = -W& / 2: py(0) = -H& / 2: px(1) = -W& / 2: py(1) = H& / 2
    px(2) = W& / 2: py(2) = H& / 2: px(3) = W& / 2: py(3) = -H& / 2
    sinr! = Sin(-Rotation): cosr! = Cos(-Rotation)
    For i& = 0 To 3
        x2& = (px(i&) * cosr! + sinr! * py(i&)) * xScale + centerX: y2& = (py(i&) * cosr! - px(i&) * sinr!) * yScale + centerY
        px(i&) = x2&: py(i&) = y2&
    Next
    _MapTriangle (0, 0)-(0, H& - 1)-(W& - 1, H& - 1), Image& To(px(0), py(0))-(px(1), py(1))-(px(2), py(2))
    _MapTriangle (0, 0)-(W& - 1, 0)-(W& - 1, H& - 1), Image& To(px(0), py(0))-(px(3), py(3))-(px(2), py(2))
End Sub


As for saving the screen image have you tried using the saveimage example from the wiki?  SAVEIMAGE - QB64 Phoenix Edition Wiki I use the clipboard myself because I usually have a paint app open and just paste a generated image into that.
Thank you for providing this example.

I have rewritten "SaveImage" to use "MID$" command to make it a bit faster, but I have to go look for it in my backups. I use it once in a while, and it does work on Linux. However, for your programs that create sprites, a better way is to use the "screen shot" function of the desktop. KDE Plasma has the best one, able to save to BMP as well as PNG, able to select only the area of the user program's window, and in a filename of the user's choice, rather than the entire viewport only as PNG into user home folder.

B$ = B$ + ... was very slow for 1024x768 when I first ran it on an old Toshiba laptop with WindowsXP and QB64 SDL.
Reply
#10
(12-08-2022, 01:10 AM)mnrvovrfc Wrote: I have rewritten "SaveImage" to use "MID$" command to make it a bit faster, but I have to go look for it in my backups. I use it once in a while, and it does work on Linux.
It will have to be tested further, because it doesn't work properly with big image files such as 1920x1080.
Reply




Users browsing this thread: 23 Guest(s)