-- title: Affine Sprites
-- author: congusbongus, MypkaMax
-- desc: draw sprites with affine transformations
-- license: Unlicense
-- version: 0.1
-- script: moon
-- tags: draw transform affine sprite skew shear rotate scale
aspr=(
id,x,y,colorkey=-1,sx=1,sy=1,flip=0,rotate=0,w=1,h=1,
ox=w*8//2,oy=h*8//2,shx1=0,shy1=0,shx2=0,shy2=0
)->
-- Draw a sprite using two textured triangles.
-- Apply affine transformations: scale, shear, rotate, flip
-- scale / flip
if (flip%2)==1
sx=-sx
if flip>=2
sy=-sy
ox*=-sx
oy*=-sy
-- shear / rotate
shx1*=-sx
shy1*=-sy
shx2*=-sx
shy2*=-sy
rr=math.rad(rotate)
sa=math.sin(rr)
ca=math.cos(rr)
rot=(x,y)->
return x * ca - y * sa, x * sa + y * ca
rx1, ry1 = rot(ox + shx1, oy + shy1)
rx2, ry2 = rot(((w * 8) * sx) + ox + shx1, oy + shy2)
rx3, ry3 = rot(ox + shx2, ((h * 8) * sy) + oy + shy1)
rx4, ry4 = rot(((w * 8) * sx) + ox + shx2, ((h * 8) * sy) + oy + shy2)
x1 = x + rx1
y1 = y + ry1
x2 = x + rx2
y2 = y + ry2
x3 = x + rx3
y3 = y + ry3
x4 = x + rx4
y4 = y + ry4
-- UV coords
u1=(id%16)*8
v1=id//16*8
u2=u1+w*8
v2=v1+h*8
ttri(x1,y1,x2,y2,x3,y3,u1,v1,u2,v1,u1,v2,0,colorkey)
ttri(x3,y3,x4,y4,x2,y2,u1,v2,u2,v2,u2,v1,0,colorkey)
t=0
export TIC=->
cls 13
-- Common params
id=1+(t%60)//30*2
textcolor=12
colorkey=14
sx,sy=2,2
flip=(t%160)//40
ox,oy=8,8
xstart=32
dx=56
w,h=2,2
x,y=xstart,24
-- Basic sprite (drop-in spr replacement)
print "base",x-4,y+24,textcolor,false,1,true
aspr id,x,y,colorkey,sx,sy,flip,0,w,h
x+=dx
-- scale x
sx1=math.abs(t%60-30)/10+0.25
print "scale x=#{sx1}",x-24,y+24,textcolor,false,1,true
aspr id,x,y,colorkey,sx1,sy,flip,0,w,h,ox,oy
x+=dx
-- scale y
sy1=math.abs(t%60-30)/10+0.25
print "scale y=#{sy1}",x-24,y+24,textcolor,false,1,true
aspr id,x,y,colorkey,sx,sy1,flip,0,w,h,ox,oy
x+=dx
-- rotate
rotate=t%360
print "rotate r=#{rotate}",x-20,y+24,textcolor,false,1,true
aspr id,x,y,colorkey,sx,sy,flip,rotate,w,h,ox,oy
y+=64
x=xstart
-- shear x1
shx1=(math.abs(t%60-30)-15)/5
print "shear x1=#{shx1}",x-24,y+24,textcolor,false,1,true
aspr id,x,y,colorkey,sx,sy,flip,0,w,h,ox,oy,shx1
x+=dx
-- shear y1
shy1=(math.abs(t%60-30)-15)/5
print "shear y1=#{shy1}",x-24,y+24,textcolor,false,1,true
aspr id,x,y,colorkey,sx,sy,flip,0,w,h,ox,oy,0,shy1
x+=dx
-- shear x2
shx2=(math.abs(t%60-30)-15)/5
print "shear x2=#{shx2}",x-24,y+24,textcolor,false,1,true
aspr id,x,y,colorkey,sx,sy,flip,0,w,h,ox,oy,0,0,shx2
x+=dx
-- shear y2
shy2=(math.abs(t%60-30)-15)/5
print "shear y1=#{shy2}",x-24,y+24,textcolor,false,1,true
aspr id,x,y,colorkey,sx,sy,flip,0,w,h,ox,oy,0,0,0,shy2
x+=dx
print "flip=#{flip}",100,124,textcolor,false,1,true
t+=1
-- <TILES>
-- 001:eccccccccc888888caaaaaaaca888888cacccccccacc0ccccacc0ccccacc0ccc
-- 002:ccccceee8888cceeaaaa0cee888a0ceeccca0ccc0cca0c0c0cca0c0c0cca0c0c
-- 003:eccccccccc888888caaaaaaaca888888cacccccccacccccccacc0ccccacc0ccc
-- 004:ccccceee8888cceeaaaa0cee888a0ceeccca0cccccca0c0c0cca0c0c0cca0c0c
-- 017:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
-- 018:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
-- 019:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
-- 020:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
-- </TILES>
-- <SCREEN>
-- 000:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccddccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 001:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 002:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 003:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 004:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 005:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 006:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 007:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 008:ddddddddddddddddddddddddccccccccccddccccccccccdddddddddddddddddddddddddddddccccccccccccccccddddccccccccccccccccdddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccddddddddddddddddddddddddddddddddccccccccccddccccccccccdddddddddddddddddddddddddd
-- 009:ddddddddddddddddddddddddccccccccccddccccccccccdddddddddddddddddddddddddddddccccccccccccccccddddccccccccccccccccdddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccddddddddddddddddddddddddddddddddccccccccccddccccccccccdddddddddddddddddddddddddd
-- 010:ddddddddddddddddddddddcccc000000cccccc000000ccccddddddddddddddddddddddddcccccc0000000000cccccccccc0000000000ccccccddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccddddddddddddddddddddddddddddddcccc000000cccccc000000ccccdddddddddddddddddddddddd
-- 011:ddddddddddddddddddddddcccc000000cccccc000000ccccddddddddddddddddddddddddcccccc0000000000cccccccccc0000000000ccccccddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccddddddddddddddddddddddddddddddcccc000000cccccc000000ccccdddddddddddddddddddddddd
-- 012:ddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddcccccc888888888888888888888888888888888888cccddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccddddddddddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddddd
-- 013:ddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddcccccc888888888888888888888888888888888888cccddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccddddddddddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddddd
-- 014:ddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddccc000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddd
-- 015:ddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddccc000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddd
-- 016:ddddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccdddddddddddddddddddddccc000aaaaaaaaaaaaaccccccccccaaaaaaaaaaaaacccddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccddddddddddddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccdddddddddddddddddddddddd
-- 017:ddddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccdddddddddddddddddddddccc000aaaaaaaaaaaaaccccccccccaaaaaaaaaaaaacccddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccddddddddddddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccdddddddddddddddddddddddd
-- 018:ddddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccdddddddddddddddddddddccc000aaaaaaaaaacccaaaaaaaaaacccaaaaaaaaaacccddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccddddddddddddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccdddddddddddddddddddddddd
-- 019:ddddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccdddddddddddddddddddddccc000aaaaaaaaaacccaaaaaaaaaacccaaaaaaaaaacccddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccddddddddddddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccdddddddddddddddddddddddd
-- 020:ddddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddccccccc000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccddddddddddddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddd
-- 021:ddddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddccccccc000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccddddddddddddddcccc0000aaccccccccccccccccccaaccddddddddddddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddd
-- 022:ddddddddddddddddcccc0000aaccccccccccccccccccaaccddddddddddddddccccccc000000aaaccccccccccccccccccccccccccccccaaacccddddddddddddddcccc0000aaccccccccccccccccccaaccddddddddddddddddddddddddcccc0000aaccccccccccccccccccaaccdddddddddddddddddddddddd
-- 023:ddddddddddddddddcccc0000aaccccccccccccccccccaaccddddddddddddddccccccc000000aaaccccccccccccccccccccccccccccccaaacccddddddddddddddcccc0000aaccccccccccccccccccaaccddddddddddddddddddddddddcccc0000aaccccccccccccccccccaaccdddddddddddddddddddddddd
-- 024:ddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddccc0000ccc000aaaccccccc000cccccccccc000cccccccaaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 025:ddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddccc0000ccc000aaaccccccc000cccccccccc000cccccccaaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 026:ddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddccc0000ccc000aaaccccccc000cccccccccc000cccccccaaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 027:ddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddccc0000ccc000aaaccccccc000cccccccccc000cccccccaaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 028:ddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddccc0000ccc000aaaccccccc000cccccccccc000cccccccaaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 029:ddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddccc0000ccc000aaaccccccc000cccccccccc000cccccccaaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 030:ddddddddddddddddcccccc00aaccccccccccccccccccaaccddddddddddddddcccccccccc000aaaccccccccccccccccccccccccccccccaaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddcccccc00aaccccccccccccccccccaaccdddddddddddddddddddddddd
-- 031:ddddddddddddddddcccccc00aaccccccccccccccccccaaccddddddddddddddcccccccccc000aaaccccccccccccccccccccccccccccccaaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddcccccc00aaccccccccccccccccccaaccdddddddddddddddddddddddd
-- 032:ddddddddddddddddddddcc00aa888888888888888888aaccdddddddddddddddddddddccc000aaa888888888888888888888888888888aaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddddddcc00aa888888888888888888aaccdddddddddddddddddddddddd
-- 033:ddddddddddddddddddddcc00aa888888888888888888aaccdddddddddddddddddddddccc000aaa888888888888888888888888888888aaacccddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddddddcc00aa888888888888888888aaccdddddddddddddddddddddddd
-- 034:ddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddccc000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccddddddddddddddcccccc00aaccccccccccccccccccaaccddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddd
-- 035:ddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddccc000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccddddddddddddddcccccc00aaccccccccccccccccccaaccddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddd
-- 036:ddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddcccccc888888888888888888888888888888888ccccccddddddddddddddcccccc00aaccccccccccccccccccaaccddddddddddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddddd
-- 037:ddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddcccccc888888888888888888888888888888888ccccccddddddddddddddddddcc00aa888888888888888888aaccddddddddddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddddd
-- 038:ddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddddcccccccccccccccccccccccccccccccccccccccdddddddddddddddddddddcc00aa888888888888888888aaccddddddddddddddddddddddddddddddccccccccccccccccccccccccdddddddddddddddddddddddddd
-- 039:ddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddddcccccccccccccccccccccccccccccccccccccccdddddddddddddddddddddcc00aa888888888888888888aaccddddddddddddddddddddddddddddddccccccccccccccccccccccccdddddddddddddddddddddddddd
-- 040:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 041:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 042:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 043:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 044:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 045:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 046:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 047:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 048:ddddddddddddddddddddddddddddcdddddddddddddddddddddddddddddddddddddddddddddddccddddddddddddddddccddddccddcccdddddddddddddddddddddddddccccccccccccccccccccccccccddcccddddddddddddddddddddddddddcdddddddcdddddddddddddddddccddddddddddddddddddddddd
-- 049:ddddddddddddddddddddddddddddccddccdddccddccddddddddddddddddddddddccddccdccdddcdddccdddcdcdcccdddcdddddcdcddddddddddddddddccddccdccdddccccccccccccccccccccccccccdcdddddddddddddddddddcdcddcddcccdccddcccddccdddcdcdcccdcdcddddddddddddddddddddddd
-- 050:ddddddddddddddddddddddddddddcdcddccdccddcdcdddddddddddddddddddddccddcddddccddcddcdcddddcdddddddcdddddcddccddddddddddddddccddcddddccddcddcdcdddcdcddddddcdddddcddccddddddddddddddddddccddcdcddcdddccddcddcdcdddccddddddcdcddddddddddddddddddddddd
-- 051:ddddddddddddddddddddddddddddcdcdcdcdddcdccddddddddddddddddddddddddcdcdddcdcddcddccddddcdcdcccdddcdddcdddddcdddddddddddddddcdcdddcdcddcddccdddddccdcccdddcdddcdddddcdddddddddddddddddcdddcdcddcddcdcddcddccddddcdddcccdcdcddddddddddddddddddddddd
-- 052:ddddddddddddddddddddddddddddccddcccdccdddccdddddddddddddddddddddccdddccdcccdcccddccdddcdcdddddccddcdcccdccddddddddddddddccdddccdcccdcccddccdddddcdddddccddcdcccdccddddddddddddddddddcddddcddddcdcccdddcddccdddcdddddddccdddddddddddddddddddddddd
-- 053:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 054:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 055:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 056:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 057:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 058:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 059:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 060:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 061:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 062:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 063:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 064:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 065:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 066:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 067:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 068:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 069:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 070:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 071:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 072:ddddddddddddddddddddddddccccccccccddccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccddccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddcdddddddddddddddddddddddddd
-- 073:ddddddddddddddddddddddddccccccccccddccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccddccccccccccddddddddddddddddddddddddddddddddddddddddddddccccccdddddddddddddddddddddddddd
-- 074:ddddddddddddddddddddddcccc000000cccccc000000ccccddddddddddddddddddddddddddddddddcccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccddddddddddddddddddddddddddddddddddddddccccccccccccdddddddddddddddddddddddd
-- 075:dddddddddddddddddddddddcccc000000cccccc000000ccccdddddddddddddddddddddddddddddccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccddddddddddddddddddddddddddddddddcccccddcccc0000ccccdddddddddddddddddddddddd
-- 076:dddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddddddddddcccc000cccccddccccdddddddddddddddddddddddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddddddddccccccccccdccc000000c8ccdddddddddddddddddddddddd
-- 077:dddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddddddddcccccc000000cccdcccccccccddddddddddddddddddddddddddddddddddddcccc8888888888888888888888ccdddddddddddddddddddddddddddccccc000cccccc00888888ccdddddddddddddddddddddddd
-- 078:dddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddddcccc88888000cccccc00ccccccdddddddddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddddcc000000ccc8888888888accdddddddddddddddddddddddd
-- 079:dddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddddcc0088888888888ccc000000ccdddddddddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddcccc00088888888888aaaaaaccdddddddddddddddddddddddd
-- 080:ddddddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccddddddddddddddddddddddddddcc00aaaaa888888888880000ccccddddddddddddddddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccddddddddddddddddddddddddddcc88888888888aaaaaaaaaaaccdddddddddddddddddddddddd
-- 081:ddddddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccddddddddddddddddddddddddddcc00aaaaaaaaaaa8888888888cccddddddddddddddddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccddddddddddddddddddddddddcccc88888aaaaaaaaaaaaaaaaaccdddddddddddddddddddddddd
-- 082:ddddddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaa888888ccddddddddddddddddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccddddddddddddddddddddddddccccaaaaaaaaaaacccaaaaaaaaccdddddddddddddddddddddddd
-- 083:ddddddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccddddddddddddddddddddddddddcc00aaaaaaaacccaaaaaaaaaa8ccddddddddddddddddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccddddddddddddddddddddddddcc00aaaaaaaaccccccaaaaaaaaccdddddddddddddddddddddddd
-- 084:ddddddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccddddddddddddddddddddddddcdcc00aaaaaaaaccccccaaaaaaaaccddddddddddddddddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccddddddddddddddddddddddddcc00aaaaaaaacccaaaccaaaaaaccdddddddddddddddddddddddd
-- 085:dddddddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddcccc00aaaaaaccaaacccaaaaaaaaccdddddddddddddddddddddddddddddcccc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddcc00aaaaaaccaaaaaaccaaaaaaccdddddddddddddddddddddddd
-- 086:dddddddddddddddddddcccc0000aaccccccccccccccccccaaccdddddddddddddddddddddcccccc00aaaaaaccaaaaaaccaaaaaaccdddddddddddddddddddddddddddcccc0000aaccccccccccccccccccaaccdddddddddddddddddddddddddcc00aaaaaaccaaaaaaaaaaaaaaccdddddddddddddddddddddddd
-- 087:dddddddddddddddddddcccc0000aaccccccccccccccccccaaccdddddddddddddddddddddcccc0000aaaaaaaaaaaaaaccaaaaaaccdddddddddddddddddddddddddddcccc0000aaccccccccccccccccccaaccdddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaccccaaccdddddddddddddddddddddddd
-- 088:dddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddcc0c0000aacccaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddddcc00aaaaaaaaaaacccccccccaaccdddddddddddddddddddddddd
-- 089:dddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddcc00cc00aacccccccccaaaaaaaaaaaccdddddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddccc00aaaaacccccccccccccccaaccdddddddddddddddddddddddd
-- 090:dddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddcc00cc00aaccccccccccccccaaaaaaccdddddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddcccc00aacccccccccccc00ccccaaccdddddddddddddddddddddddd
-- 091:ddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddcc00cc00aacccc00ccccccccccccaaccddddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddcc0000aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 092:ddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddcccc0000aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 093:ddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddccc0cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 094:ddddddddddddddddddddcccccc00aaccccccccccccccccccaaccddddddddddddddddddddccc0cc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddddcccccc00aaccccccccccccccccccaaccddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 095:ddddddddddddddddddddcccccc00aaccccccccccccccccccaaccddddddddddddddddddddcccccc00aacccc00cccccc00ccccaaccddddddddddddddddddddddddddcccccc00aaccccccccccccccccccaaccddddddddddddddddddddddcc00cc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddd
-- 096:dddddddddddddddddddddddddcc00aa888888888888888888aaccddddddddddddddddddddddccc00aacccc00cccccc00ccccaaccdddddddddddddddddddddddddddddcc00aa888888888888888888aaccdddddddddddddddddddddddcc00cc00aacccc00ccccccccccccaaccdddddddddddddddddddddddd
-- 097:dddddddddddddddddddddddddcc00aa888888888888888888aaccdddddddddddddddddddddddcc00aacccccccccccc00ccccaaccdddddddddddddddddddddddddddddcc00aa888888888888888888aaccdddddddddddddddddddddddcc00cc00aacccccccccccccc8888aaccdddddddddddddddddddddddd
-- 098:dddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddcc00aa888cccccccccccccccaaccdddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddcc00cc00aaccccccccc888888888aaccdddddddddddddddddddddddd
-- 099:dddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddcc00aa888888888cccccccccaaccdddddddddddddddddddddddddddddcc00aaaaaaaaaaaaaaaaaaaaaaccdddddddddddddddddddddddcc0ccc00aaccc88888888888aaaaaaccdddddddddddddddddddddddd
-- 100:dddddddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddddcc00aaaaa88888888888ccccaaccdddddddddddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddddcccccc00aa888888888aaaaaaaaaacccdddddddddddddddddddddddd
-- 101:ddddddddddddddddddddddddddcccc88888888888888888888ccccddddddddddddddddddddddccccaaaaaaaaaaa888888888aaccddddddddddddddddddddddddddddcccc88888888888888888888ccccddddddddddddddddddddddddcccdcc00aa888aaaaaaaaaaa8888ccccdddddddddddddddddddddddd
-- 102:ddddddddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddcccc88888aaaaaaaaaaa8888aaccddddddddddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddddddddcc00aaaaaaaaaaa888888888ccdddddddddddddddddddddddddd
-- 103:ddddddddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddddcc88888888888aaaaaaaaaaaccddddddddddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddddddddcc00aaaaa88888888888ccccccdddddddddddddddddddddddddd
-- 104:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccc88888888888aaaaaaccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc0088888888888ccccccccccddddddddddddddddddddddddddd
-- 105:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccc888888888caccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc88888cccccccccccdddddddddddddddddddddddddddddddd
-- 106:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccc8888ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccccccccccccccddddddddddddddddddddddddddddddddddddd
-- 107:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccccccddddddddddddddddddddddddddddddddddddddddddd
-- 108:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccdddddddddddddddddddddddddddddddddddddddddddddddd
-- 109:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 110:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 111:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 112:ddddddddddddcddddddddddddddddddddddcddddddccdddddccdddddddddddddddddcddddddddddddddddddddddcddddddccdddddccdddddddddddddddddcdddddddddddddddddddddccddddddccdddddccdddddddddddddddddcddddddddddddddddddddddcddddddccdddddccddddddddddddddddddddd
-- 113:dddddddddccdccdddccdccddcdcdddcdcdccddcccdddcdddcdcddddddddddddddccdccdddccdccddcdcdddcdcdccddcccdddcdddcdcddddddddddddddccdccdddccdccddcdcdddcdcdddcdcccdddcdddcdcddddddddddddddccdccdddccdccddcdcdddcdcdccddcccdddcdddcdcddddddddddddddddddddd
-- 114:ddddddddccddcdcdcdcddccdccdddddcdddcdddddddcddddcdcdddddddddddddccddcdcdcdcddccdccddddcdcddcdddddddcddddcdcdddddddddddddccddcdcdcdcddccdccdddddcdddcdddddddcddddcdcdddddddddddddccddcdcdcdcddccdccddddcdcddcdddddddcddddcdcddddddddddddddddddddd
-- 115:ddddddddddcdcdcdccddcdcdcdddddcdcddcddcccdddcdddcdcdddddddddddddddcdcdcdccddcdcdcddddddccddcddcccdddcdddcdcdddddddddddddddcdcdcdccddcdcdcdddddcdcdcdddcccdddcdddcdcdddddddddddddddcdcdcdccddcdcdcddddddccddcddcccdddcdddcdcddddddddddddddddddddd
-- 116:ddddddddccddcdcddccdcccdcdddddcdcdcccdddddccddcdccddddddddddddddccddcdcddccdcccdcdddddddcdcccdddddccddcdccddddddddddddddccddcdcddccdcccdcdddddcdcdcccdddddccddcdccddddddddddddddccddcdcddccdcccdcdddddddcdcccdddddccddcdccdddddddddddddddddddddd
-- 117:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcdddddddddddddddddddddddddddddddddddddddd
-- 118:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 119:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 120:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 121:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 122:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 123:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 124:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcdccddcdddddddddccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 125:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcdddcddddccddcccdddcddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 126:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccddcddcdcdcddddddcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 127:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcdddcddcdcdcdcccdddcddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 128:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcddcccdcdccddddddccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 129:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 130:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 131:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 132:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 133:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 134:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 135:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- </SCREEN>
-- <PALETTE>
-- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
-- </PALETTE>