1 rem STELLAR 7 Rotate 3d Objects (3d objects extracted from Stellar 7) 2 rem Double Buffering demo 3 rem by Golden Child 4 rem press any key to advance to next object 5 rem you may need to click on the window to set the keyboard focus 10 GOSUB 9000 20 gosub 8000 25 gosub 6000 26 goto 25 30 end 5000 rem init display list : rem SC = screen to draw 5001 IF NOT (dk) then dim dl(2,100,5) : dk=1 5002 hgr2:hgr 5003 SC=0 : DL(0,0,0)=0 : DL(1,0,0)=0 :gosub 5500: rem DL(X,0,0) = NUM OF POINTS 5004 return 5100 rem draw line on other screen 5110 poke 230,(SC+1) * 32 5111 if not(x1>=0 and x1 <=279 and x2 >=0 and x2<=279 and y1>=0 and y1 <=159 and y2>=0 and y2<=159) then return 5120 SP = DL(SC,0,0) + 1 : DL(SC,0,0)=SP : rem ? sp 5130 DL(SC,SP,0)=CO 5131 DL(SC,SP,1)=X1 5132 DL(SC,SP,2)=Y1 5133 DL(SC,SP,3)=X2 5134 DL(SC,SP,4)=Y2 5140 HCOLOR=CO : HPLOT X1,Y1 TO X2,Y2 5190 RETURN 5400 rem erase lines 5410 for SP = 1 TO DL(SC,0,0) : HCOLOR=0 5411 HPLOT DL(SC,SP,1),DL(SC,SP,2) TO DL(SC,SP,3),DL(SC,SP,4) : NEXT 5412 DL(SC,0,0)=0 : rem clear the list after erasing 5420 RETURN 5500 rem swap screens 5510 SC = NOT SC 5511 POKE 49236+(NOT SC),0 : rem select visible page that we're not drawing to 5515 poke 230,32*(sc+1):gosub 5400 : rem switch drawing page and erase lines 5520 RETURN 6000 GOSUB 5000: hgr:o=7:pi=3.14 : rem didn't initialize the value of pi DIDN"T work!!! 6001 FOR O=1 to p(0,0,0,0) : if p(o,1,0,0)=0 then next 6004 ss=15 6005 FOR A=0 TO 360 -ss STEP ss : ? "object="o" rot="A 6010 for nl=1 to p(o,2,0,0) 6020 p1=p(o,2,nl,1)+1 6022 p2=p(o,2,nl,2)+1 : rem add 1 since starts at 1 6025 REM ? p1,p2 6031 r1=p(o,1,p1,1) 6032 t1=p(o,1,p1,2) 6033 z1=p(o,1,p1,3) 6035 REM ? "r1= "r1" t1=" t1" z1= "z1 6041 r2=p(o,1,p2,1) 6042 t2=p(o,1,p2,2) 6043 z2=p(o,1,p2,3) 6045 REM ? "r2= "r2" t2=" t2" z2= "z2 6046 r0=180/180*pi : R0=A/180*PI 6050 x1=cos(t1/128*pi+r0)*r1:REM ?"t1="t1" t1rad="t1/128*pi" 6051 y1=sin(t1/128*pi+r0)*r1 6052 if z1>127 then z1=z1-256 : rem handle negative Z number 6053 z1=z1*1 6055 REM ?"x1="x1" y1="y1" z1="z1 6060 x2=cos(t2/128*pi+r0)*r2 6061 y2=sin(t2/128*pi+r0)*r2 6062 if z2>127 then z2=z2-256 : rem handle negative Z number 6063 z2=z2*1 6065 REM ?"x2="x2" y2="y2" z2="z2 6099 t5=(90)/180*pi 6100 z5=z1*cos(t5)+y1*sin(t5) 6110 y5=y1*cos(t5)-z1*sin(t5) 6120 z1=z5:y1=y5 6130 z5=z2*cos(t5)+y2*sin(t5) 6140 y5=y2*cos(t5)-z2*sin(t5) 6150 z2=z5:y2=y5 6299 t6=(90+90+90)/180*pi 6300 z5=z1*cos(t6)+x1*sin(t6) 6310 x5=x1*cos(t6)-z1*sin(t6) 6320 z1=z5:x1=x5 6330 z5=z2*cos(t6)+x2*sin(t6) 6340 x5=x2*cos(t6)-z2*sin(t6) 6350 z2=z5:x2=x5 7000 d=250 : rem d=50 :zo=150 too much distortion d=100,zo=200 better 7010 zo=400:x9=139:y9=79:xo=139:yo=79: 7020 xs=x1 * (d/(zo+z1)) + x9 7030 ys=y1 * (d/(zo+z1)) + y9 7040 xt=x2 * (d/(zo+z2)) + x9 7050 yt=y2 * (d/(zo+z2)) + y9 7060 if xs>0 and xs<279 and ys>0 and ys<191 and xt>0 and xt<279 and yt>0 and yt<191 then hcolor=3:hplot xs,ys to xt,yt : 7060 x1=xs:y1=ys:x2=xt:y2=yt:co=3:GOSUB 5100 7061 REM ? "xs="xs" ys="ys" xt=" xt" yt=" yt 7070 next : GOSUB 5500: if peek(49152)>128 and o<64 then o=o+1 : poke 49168,0 7071 NEXT : next 7072 if peek(49152)>128 then return 7075 goto 6001 7080 return 8000 rem print list of points 8010 no=p(0,0,0,0) : rem numobjects 8015 for o = 1 to no : ? "OBJECT "o 8020 for np = 1 to p(o,1,0,0) 8025 print "POINT "np" R="p(o,1,np,1)" THETA="p(o,1,np,2)" Z="p(o,1,np,3) 8030 next 8035 for nl = 1 to p(o,2,0,0) 8040 print "LINE "nl" "P(o,2,nl,1)" to "P(o,2,nl,2) 8045 next nl 8046 next o 8050 ? "END OBJECT" : ? 8060 return 8990 rem P(objects,points/lines,index,data) 64=num of objects ,item 0=num in list 8991 rem 1,2 1=points 2=lines, 8992 rem index of data item 0=num in list 8993 rem 1,2,3=point,line data 8994 rem p(0,0,0,0)=num of objects 8999 rem -999 = end of points -998 = end of object -997 = end of all objects 9000 if not pd then dim P(64,2,70,3) : pd=1 : rem pd=P defined already 9002 rem trace 9005 read n : ? n 9010 if n=-997 then return 9015 o=n : ? n,o:if o>p(0,0,0,0) then p(0,0,0,0)=o 9016 read n : ? n : rem read point list 9020 if n=-998 then goto 9005 9040 if n=-999 then goto 9060 9045 rem add point 9046 ? o:P(o,1,0,0)=P(o,1,0,0)+1: cp=P(o,1,0,0) 9047 P(o,1,cp,1)=n : read n 9048 P(o,1,cp,2)=n : read n 9049 P(o,1,cp,3)=n 9050 goto 9016 : rem loop and get next point 9060 read n : rem read line list 9062 if n = -998 then goto 9005 9066 P(o,2,0,0)=P(o,2,0,0)+1: cp=P(o,2,0,0) 9067 P(o,2,cp,1)=n : read n : ? cp 9068 P(o,2,cp,2)=n 9070 goto 9060 : rem get next line 10000 rem stellar 7 data is Radius, Theta and Z, followed by a list of vertices to 10001 rem to draw lines between 10050 DATA 7, 85, 44, 216, 85, 84, 216, 111, 167, 216, 111, 217, 216, 125, 47, 231, 125, 81, 231, 125, 166, 231, 125, 218, 231, 103, 171, 251, 103, 213, 251, 76, 42, 237, 76, 86, 237, 94, 174, 251, 94, 210, 251, 67, 173, 30, 67, 211, 30, 13, 192, 11, 29, 64, 252, 21, 22, 4, 21, 106, 4, 124, 64, 11, 124, 64, 252, 125, 58, 4, 125, 70, 4, 90, 192, 251, 90, 192, 40, 90, 192, 60, 125, 192, 60, 125, 192, 40, -999 10051 DATA 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 5, 8, 8, 9, 9, 4, 0, 4, 1, 5, 2, 6, 3, 7, 6, 8, 7, 9, 10, 11, 11, 12, 13, 10, 11, 14, 14, 15, 15, 10, 12, 14, 13, 15, 16, 19, 19, 17, 17, 18, 18, 16, 20, 23, 23, 21, 21, 22, 22, 20, 16, 20, 17, 21, 18, 22, 19, 23, 24, 26, 26, 27, 27, 28, 28, 25, 25, 27, 26, 28, -998 10052 DATA 6, 85, 44, 216, 85, 84, 216, 111, 167, 216, 111, 217, 216, 125, 47, 231, 125, 81, 231, 125, 166, 231, 125, 218, 231, 103, 171, 251, 103, 213, 251, 76, 42, 237, 76, 86, 237, 94, 174, 251, 94, 210, 251, 66, 174, 30, 66, 210, 30, 25, 192, 18, 26, 33, 0, 26, 95, 0, 125, 64, 6, -999 10053 DATA 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 5, 8, 8, 9, 9, 4, 0, 4, 1, 5, 2, 6, 3, 7, 6, 8, 7, 9, 10, 11, 11, 12, 13, 10, 11, 14, 14, 15, 15, 10, 12, 14, 13, 15, 16, 18, 17, 16, 16, 19, 17, 19, 18, 19, 17, 18, -998 10070 DATA 1, 126, 49, 196, 121, 55, 196, 126, 79, 196, 121, 73, 196, 123, 207, 196, 118, 201, 196, 123, 177, 196, 118, 183, 196, 106, 206, 206, 106, 178, 206, 43, 103, 206, 43, 25, 206, 75, 192, 5, 35, 192, 238, 65, 64, 234, 19, 215, 228, 19, 169, 228, -999 10071 DATA 0, 1, 2, 3, 4, 5, 6, 7, 0, 4, 1, 5, 2, 6, 3, 7, 8, 9, 9, 10, 10, 11, 11, 8, 8, 12, 9, 12, 10, 12, 11, 12, 13, 14, 13, 15, 13, 16, 15, 16, 14, 15, 14, 16, -998 10093 DATA 11, 80, 60, 244, 80, 60, 239, 80, 68, 244, 80, 68, 239, 47, 215, 239, 47, 169, 239, 25, 192, 254, 66, 6, 11, 76, 234, 11, 127, 243, 251, 66, 122, 11, 76, 150, 11, 127, 141, 251, -999 10094 DATA 0, 1, 2, 3, 0, 2, 1, 3, 1, 4, 3, 5, 0, 6, 4, 5, 4, 6, 1, 7, 4, 8, 7, 8, 7, 9, 8, 9, 3, 10, 5, 11, 10, 11, 10, 12, 11, 12, 2, 6, 6, 5, -998 10997 DATA 8, 120, 64, 251, 90, 192, 2, 90, 192, 234, 91, 197, 252, 91, 197, 240, 91, 187, 252, 91, 187, 240, 120, 192, 246, 60, 192, 50, 60, 192, 186, 85, 224, 20, 85, 224, 216, 85, 160, 20, 85, 160, 216, -999 10998 DATA 1, 3, 3, 4, 4, 2, 2, 6, 6, 5, 5, 1, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 8, 10, 10, 11, 11, 9, 9, 13, 13, 12, 12, 8, 1, 8, 2, 9, 3, 10, 4, 11, 5, 12, 6, 13, -998 11010 DATA 2, 100, 38, 196, 100, 90, 196, 100, 166, 196, 100, 218, 196, 125, 38, 226, 125, 90, 226, 125, 166, 226, 125, 218, 226, 64, 27, 241, 64, 101, 241, 78, 164, 241, 78, 220, 241, 29, 22, 20, 29, 106, 20, 51, 171, 20, 51, 213, 20, 125, 64, 3, 22, 64, 10, 34, 44, 252, 34, 84, 252, -999 11011 DATA 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 8, 9, 9, 10, 10, 11, 11, 8, 12, 13, 13, 14, 14, 15, 15, 12, 0, 4, 1, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 8, 12, 9, 13, 10, 14, 11, 15, 16, 17, 16, 18, 16, 19, 17, 18, 18, 19, 19, 17, -998 11012 DATA 3, 70, 64, 226, 60, 128, 226, 80, 192, 226, 60, 0, 226, 50, 64, 211, 40, 128, 241, 40, 128, 211, 60, 192, 241, 60, 192, 211, 40, 0, 241, 40, 0, 211, 27, 80, 15, 27, 48, 15, 45, 60, 251, 49, 61, 246, 45, 68, 251, 49, 67, 246, 100, 62, 251, 100, 62, 246, 100, 66, 251, 100, 66, 246, -999 11013 DATA 0, 1, 1, 2, 2, 3, 3, 0, 4, 6, 6, 8, 8, 10, 10, 4, 5, 7, 7, 9, 9, 5, 11, 12, 0, 4, 1, 6, 2, 8, 3, 10, 1, 5, 2, 7, 3, 9, 5, 11, 9, 12, 0, 11, 0, 12, 13, 17, 15, 19, 14, 18, 16, 20, 17, 19, 18, 20, 17, 18, 19, 20, 13, 15, 14, 16, 13, 14, 15, 16, -998 11014 DATA 4, 55, 97, 196, 55, 31, 196, 99, 209, 196, 99, 175, 196, 90, 91, 231, 90, 37, 231, 125, 211, 231, 125, 173, 231, 88, 175, 20, 88, 209, 20, 121, 68, 3, 121, 68, 247, 121, 60, 3, 121, 60, 247, 28, 177, 3, 19, 87, 247, 28, 207, 3, 19, 41, 247, 91, 199, 6, 91, 199, 80, -999 11015 DATA 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 8, 9, 0, 4, 1, 5, 2, 6, 3, 7, 4, 8, 7, 8, 5, 9, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 10, 12, 11, 13, 14, 16, 15, 17, 10, 14, 12, 16, 11, 15, 13, 17, 18, 19, -998 11016 DATA 5, 92, 43, 196, 92, 85, 196, 101, 173, 196, 101, 211, 196, 125, 44, 226, 125, 84, 226, 125, 172, 226, 125, 212, 226, 47, 116, 244, 47, 12, 244, 47, 233, 25, 47, 151, 25, 89, 173, 25, 89, 211, 25, 17, 224, 12, 12, 7, 252, 17, 160, 12, 12, 121, 252, 125, 68, 12, 125, 68, 252, 125, 60, 12, 125, 60, 252, -999 11017 DATA 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7, 5, 8, 8, 6, 8, 9, 9, 7, 9, 4, 9, 10, 8, 11, 6, 12, 7, 13, 10, 11, 11, 12, 12, 13, 13, 10, 14, 15, 16, 17, 18, 19, 20, 21, 14, 16, 16, 18, 18, 20, 20, 14, 15, 17, 17, 19, 19, 21, 21, 15, -998 11022 DATA 9, 125, 64, 13, 125, 64, 253, 126, 58, 5, 126, 70, 5, 24, 192, 13, 24, 192, 253, 30, 218, 5, 30, 166, 5, 92, 221, 5, 125, 192, 5, 92, 163, 5, 70, 192, 67, 70, 192, 45, 70, 192, 221, 70, 192, 199, 122, 231, 5, 122, 153, 5, -999 11023 DATA 0, 2, 2, 1, 1, 3, 3, 0, 4, 6, 6, 5, 5, 7, 7, 4, 0, 4, 2, 6, 3, 7, 1, 5, 6, 8, 8, 9, 9, 10, 10, 7, 12, 4, 12, 8, 12, 9, 12, 10, 13, 5, 13, 8, 13, 9, 13, 10, 11, 12, 13, 14, 15, 8, 16, 10, -998 11030 DATA 10, 90, 0, 236, 90, 64, 236, 90, 128, 236, 90, 192, 236, 125, 0, 236, 125, 64, 236, 125, 128, 236, 125, 192, 236, 0, 0, 50, 0, 0, 30, 0, 0, 196, 0, 0, 176, -999 11031 DATA 0, 1, 1, 2, 2, 3, 3, 0, 0, 4, 1, 5, 2, 6, 3, 7, 9, 0, 9, 1, 9, 2, 9, 3, 10, 0, 10, 1, 10, 2, 10, 3, 8, 9, 10, 11, -998 11032 DATA 12, 125, 64, 241, 90, 192, 231, 106, 178, 10, 106, 206, 10, 127, 165, 10, 127, 219, 10, 20, 128, 0, 20, 0, 0, 80, 192, 35, -999 11033 DATA 0, 1, 0, 2, 0, 3, 1, 3, 4, 5, 6, 7, 2, 8, 3, 8, 6, 8, 7, 8, 1, 2, 4, 6, 5, 7, -998 11040 DATA 13, 106, 32, 60, 106, 32, 196, 106, 96, 60, 106, 96, 196, 106, 224, 60, 106, 224, 196, 106, 160, 60, 106, 160, 196, -999 11041 DATA 0, 1, 2, 3, 4, 5, 6, 7, 0, 2, 4, 6, 1, 3, 5, 7, 0, 4, 2, 6, 1, 5, 3, 7, -998 11038 DATA 14, 36, 32, 14, 36, 32, 242, 36, 96, 14, 36, 96, 242, 36, 160, 14, 36, 160, 242, 36, 224, 14, 36, 224, 242, 72, 32, 40, 72, 32, 216, 72, 96, 40, 72, 96, 216, 72, 160, 40, 72, 160, 216, 72, 224, 40, 72, 224, 216, 0, 0, 38, 0, 0, 218, -999 11039 DATA 0, 1, 2, 3, 4, 5, 6, 7, 0, 2, 2, 4, 4, 6, 6, 0, 1, 3, 3, 5, 5, 7, 7, 1, 0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 0, 16, 2, 16, 4, 16, 6, 16, 1, 17, 3, 17, 5, 17, 7, 17, -998 11040 DATA 15, 125, 64, 4, 125, 64, 252, 65, 64, 4, 65, 64, 252, 30, 64, 4, 30, 64, 252, 30, 192, 4, 30, 192, 252, 65, 192, 4, 65, 192, 252, 125, 192, 4, 125, 192, 252, -999 11041 DATA 0, 2, 1, 3, 4, 6, 5, 7, 8, 10, 9, 11, -998 11042 DATA 16, 125, 64, 4, 125, 64, 252, 65, 64, 4, 65, 64, 252, 30, 64, 4, 30, 64, 252, 30, 192, 4, 30, 192, 252, 65, 192, 4, 65, 192, 252, 125, 192, 4, 125, 192, 252, -999 11043 DATA 0, 2, 1, 3, 4, 6, 5, 7, 8, 10, 9, 11, -998 11044 DATA 17, 125, 64, 4, 125, 64, 252, 65, 64, 4, 65, 64, 252, 30, 64, 4, 30, 64, 252, 30, 192, 4, 30, 192, 252, 65, 192, 4, 65, 192, 252, 125, 192, 4, 125, 192, 252, -999 11045 DATA 0, 2, 1, 3, 4, 6, 5, 7, 8, 10, 9, 11, -998 11046 DATA 18, 36, 216, 15, 36, 216, 241, 36, 168, 15, 36, 168, 241, 60, 64, 0, -999 11047 DATA 0, 1, 2, 3, 0, 2, 1, 3, 0, 4, 1, 4, 2, 4, 3, 4, -998 11048 DATA 19, 36, 216, 15, 36, 216, 241, 36, 168, 15, 36, 168, 241, 60, 64, 0, -999 11049 DATA 0, 1, 2, 3, 0, 2, 1, 3, 0, 4, 1, 4, 2, 4, 3, 4, -998 15020 DATA 23, 125, 32, 40, 125, 32, 196, 125, 96, 40, 125, 96, 196, 125, 160, 40, 125, 160, 196, 125, 224, 40, 125, 224, 196, 60, 32, 226, 60, 96, 226, 60, 160, 226, 60, 224, 226, 0, 0, 125, -999 15021 DATA 0, 2, 2, 4, 4, 6, 6, 0, 1, 3, 3, 5, 5, 7, 7, 1, 0, 8, 1, 8, 2, 9, 3, 9, 4, 10, 5, 10, 6, 11, 7, 11, 8, 9, 9, 10, 10, 11, 11, 8, 0, 12, 2, 12, 4, 12, 6, 12, -998 20014 DATA 20, 45, 192, 30, 45, 192, 226, 64, 224, 0, 64, 160, 0, 60, 64, 0, -999 20015 DATA 0, 2, 2, 1, 1, 3, 3, 0, 4, 0, 4, 1, 4, 2, 4, 3, -998 20016 DATA 21, 36, 216, 15, 36, 216, 241, 36, 168, 15, 36, 168, 241, 60, 64, 0, -999 20017 DATA 0, 1, 2, 3, 0, 2, 1, 3, 0, 4, 1, 4, 2, 4, 3, 4, -998 20018 DATA 22, 106, 32, 90, 106, 32, 196, 106, 96, 90, 106, 96, 196, 106, 224, 90, 106, 224, 196, 106, 160, 90, 106, 160, 196, -999 20019 DATA 0, 1, 2, 3, 4, 5, 6, 7, 0, 2, 4, 6, 1, 3, 5, 7, 0, 4, 2, 6, 1, 5, 3, 7, -998 20020 DATA 24, 0, 0, 120, 0, 0, 156, 25, 32, 30, 25, 32, 246, 25, 96, 30, 25, 96, 246, 25, 160, 30, 25, 160, 246, 25, 224, 30, 25, 224, 246, 113, 32, 10, 113, 96, 10, 113, 160, 10, 113, 224, 10, -999 20021 DATA 0, 2, 0, 4, 0, 6, 0, 8, 1, 3, 1, 5, 1, 7, 1, 9, 2, 4, 4, 6, 6, 8, 2, 8, 3, 5, 5, 7, 7, 9, 9, 3, 10, 11, 11, 12, 12, 13, 13, 10, 2, 10, 4, 11, 6, 12, 8, 13, 3, 10, 5, 11, 7, 12, 9, 13, -998 20022 DATA 31, 8, 21, 247, 8, 21, 235, 8, 85, 247, 8, 85, 235, 8, 149, 247, 8, 149, 235, 8, 213, 247, 8, 213, 235, 12, 53, 241, 12, 117, 241, 12, 181, 241, 12, 245, 241, 0, 21, 251, 0, 21, 231, -999 20023 DATA 0, 5, 1, 4, 2, 7, 3, 6, 8, 10, 9, 11, 12, 13, -998 20024 DATA 32, 20, 21, 1, 20, 21, 225, 20, 85, 1, 20, 85, 225, 20, 149, 1, 20, 149, 225, 20, 213, 1, 20, 213, 225, 28, 53, 241, 28, 117, 241, 28, 181, 241, 28, 245, 241, 0, 21, 7, 0, 21, 219, 8, 21, 247, 8, 21, 235, 8, 85, 247, 8, 85, 235, 8, 149, 247, 8, 149, 235, 8, 213, 247, 8, 213, 235, 12, 53, 241, 12, 117, 241, 12, 181, 241, 12, 245, 241, 0, 21, 251, 0, 21, 231, -999 20025 DATA 0, 14, 1, 15, 2, 16, 3, 17, 4, 18, 5, 19, 6, 20, 7, 21, 8, 22, 9, 23, 10, 24, 11, 25, 12, 26, 13, 27, -998 20026 DATA 33, 31, 21, 10, 31, 21, 216, 31, 85, 10, 31, 85, 216, 31, 149, 10, 31, 149, 216, 31, 213, 10, 31, 213, 216, 44, 53, 241, 44, 117, 241, 44, 181, 241, 44, 245, 241, 0, 21, 20, 0, 21, 206, 20, 21, 1, 20, 21, 225, 20, 85, 1, 20, 85, 225, 20, 149, 1, 20, 149, 225, 20, 213, 1, 20, 213, 225, 28, 53, 241, 28, 117, 241, 28, 181, 241, 28, 245, 241, 0, 21, 7, 0, 21, 219, -999 20027 DATA 0, 14, 1, 15, 2, 16, 3, 17, 4, 18, 5, 19, 6, 20, 7, 21, 8, 22, 9, 23, 10, 24, 11, 25, 12, 26, 13, 27, -998 20028 DATA 34, 42, 21, 19, 42, 21, 207, 42, 85, 19, 42, 85, 207, 42, 149, 19, 42, 149, 207, 42, 213, 19, 42, 213, 207, 60, 53, 241, 60, 117, 241, 60, 181, 241, 60, 245, 241, 0, 21, 33, 0, 21, 193, 31, 21, 10, 31, 21, 216, 31, 85, 10, 31, 85, 216, 31, 149, 10, 31, 149, 216, 31, 213, 10, 31, 213, 216, 44, 53, 241, 44, 117, 241, 44, 181, 241, 44, 245, 241, 0, 21, 20, 0, 21, 206, -999 20029 DATA 0, 14, 1, 15, 2, 16, 3, 17, 4, 18, 5, 19, 6, 20, 7, 21, 8, 22, 9, 23, 10, 24, 11, 25, 12, 26, 13, 27, -998 20030 DATA 35, 54, 21, 28, 54, 21, 198, 54, 85, 28, 54, 85, 198, 54, 149, 28, 54, 149, 198, 54, 213, 28, 54, 213, 198, 76, 53, 241, 76, 117, 241, 76, 181, 241, 76, 245, 241, 0, 21, 46, 0, 21, 180, 42, 21, 19, 42, 21, 207, 42, 85, 19, 42, 85, 207, 42, 149, 19, 42, 149, 207, 42, 213, 19, 42, 213, 207, 60, 53, 241, 60, 117, 241, 60, 181, 241, 60, 245, 241, 0, 21, 33, 0, 21, 193, -999 20031 DATA 0, 14, 1, 15, 2, 16, 3, 17, 4, 18, 5, 19, 6, 20, 7, 21, 8, 22, 9, 23, 10, 24, 11, 25, 12, 26, 13, 27, -998 20032 DATA 36, 65, 21, 37, 65, 21, 189, 65, 85, 37, 65, 85, 189, 65, 149, 37, 65, 149, 189, 65, 213, 37, 65, 213, 189, 92, 53, 241, 92, 117, 241, 92, 181, 241, 92, 245, 241, 0, 21, 59, 0, 21, 167, 54, 21, 28, 54, 21, 198, 54, 85, 28, 54, 85, 198, 54, 149, 28, 54, 149, 198, 54, 213, 28, 54, 213, 198, 76, 53, 241, 76, 117, 241, 76, 181, 241, 76, 245, 241, 0, 21, 46, 0, 21, 180, -999 20033 DATA 0, 14, 1, 15, 2, 16, 3, 17, 4, 18, 5, 19, 6, 20, 7, 21, 8, 22, 9, 23, 10, 24, 11, 25, 12, 26, 13, 27, -998 20034 DATA 37, 76, 21, 46, 76, 21, 180, 76, 85, 46, 76, 85, 180, 76, 149, 46, 76, 149, 180, 76, 213, 46, 76, 213, 180, 108, 53, 241, 108, 117, 241, 108, 181, 241, 108, 245, 241, 0, 21, 71, 0, 21, 155, 65, 21, 37, 65, 21, 189, 65, 85, 37, 65, 85, 189, 65, 149, 37, 65, 149, 189, 65, 213, 37, 65, 213, 189, 92, 53, 241, 92, 117, 241, 92, 181, 241, 92, 245, 241, 0, 21, 59, 0, 21, 167, -999 20035 DATA 0, 14, 1, 15, 2, 16, 3, 17, 4, 18, 5, 19, 6, 20, 7, 21, 8, 22, 9, 23, 10, 24, 11, 25, 12, 26, 13, 27, -998 20036 DATA 38, 88, 21, 55, 88, 21, 171, 88, 85, 55, 88, 85, 171, 88, 149, 55, 88, 149, 171, 88, 213, 55, 88, 213, 171, 124, 53, 241, 124, 117, 241, 124, 181, 241, 124, 245, 241, 0, 21, 84, 0, 21, 142, 76, 21, 46, 76, 21, 180, 76, 85, 46, 76, 85, 180, 76, 149, 46, 76, 149, 180, 76, 213, 46, 76, 213, 180, 108, 53, 241, 108, 117, 241, 108, 181, 241, 108, 245, 241, 0, 21, 71, 0, 21, 155, -999 20037 DATA 0, 14, 1, 15, 2, 16, 3, 17, 4, 18, 5, 19, 6, 20, 7, 21, 8, 22, 9, 23, 10, 24, 11, 25, 12, 26, 13, 27, -998 20038 DATA 41, 48, 170, 12, 48, 170, 244, 48, 214, 12, 48, 214, 244, 48, 192, 24, 48, 192, 232, 0, 128, 0, -999 20039 DATA 0, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, -998 20040 DATA 42, 59, 170, 15, 59, 170, 241, 59, 214, 15, 59, 214, 241, 59, 192, 30, 59, 192, 226, 11, 170, 2, 11, 170, 254, 11, 214, 2, 11, 214, 254, 11, 192, 5, 11, 192, 251, -999 20041 DATA 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, -998 20042 DATA 43, 70, 170, 17, 70, 170, 239, 70, 214, 17, 70, 214, 239, 70, 192, 35, 70, 192, 221, 22, 170, 5, 22, 170, 251, 22, 214, 5, 22, 214, 251, 22, 192, 11, 22, 192, 245, -999 20043 DATA 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, -998 20044 DATA 44, 81, 170, 20, 81, 170, 236, 81, 214, 20, 81, 214, 236, 81, 192, 40, 81, 192, 216, 33, 170, 8, 33, 170, 248, 33, 214, 8, 33, 214, 248, 33, 192, 16, 33, 192, 240, -999 20045 DATA 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, -998 20046 DATA 45, 92, 170, 23, 92, 170, 233, 92, 214, 23, 92, 214, 233, 92, 192, 46, 92, 192, 210, 44, 170, 11, 44, 170, 245, 44, 214, 11, 44, 214, 245, 44, 192, 22, 44, 192, 234, -999 20047 DATA 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, -998 20048 DATA 46, 103, 170, 25, 103, 170, 231, 103, 214, 25, 103, 214, 231, 103, 192, 51, 103, 192, 205, 55, 170, 13, 55, 170, 243, 55, 214, 13, 55, 214, 243, 55, 192, 27, 55, 192, 229, -999 20049 DATA 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, -998 20050 DATA 47, 114, 170, 28, 114, 170, 228, 114, 214, 28, 114, 214, 228, 114, 192, 57, 114, 192, 199, 66, 170, 16, 66, 170, 240, 66, 214, 16, 66, 214, 240, 66, 192, 33, 66, 192, 223, -999 20051 DATA 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, -998 20052 DATA 48, 125, 170, 31, 125, 170, 225, 125, 214, 31, 125, 214, 225, 125, 192, 62, 125, 192, 194, 77, 170, 19, 77, 170, 237, 77, 214, 19, 77, 214, 237, 77, 192, 38, 77, 192, 218, -999 20053 DATA 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, -998 30090 data -997