Init
This commit is contained in:
25
ucbcmd/plot/libplot/t450/Makefile
Executable file
25
ucbcmd/plot/libplot/t450/Makefile
Executable file
@@ -0,0 +1,25 @@
|
||||
#
|
||||
#ident "@(#)Makefile 1.2 92/12/16 SMI"
|
||||
#
|
||||
# Copyright (c) 1989 by Sun Microsystems, Inc.
|
||||
#
|
||||
|
||||
LIBRARY= ../libt450.a
|
||||
|
||||
OBJECTS = arc.o box.o circle.o close.o dot.o erase.o label.o \
|
||||
line.o linmod.o move.o open.o point.o space.o subr.o
|
||||
|
||||
# include library definitions
|
||||
include ../../../../lib/Makefile.lib
|
||||
|
||||
BUILD.AR = $(AR) $(ARFLAGS) $@ `$(LORDER) $(AROBJS) | $(TSORT)`
|
||||
|
||||
|
||||
CLOBBERFILES= $(LIBRARY)
|
||||
|
||||
.KEEP_STATE:
|
||||
|
||||
all: $(LIBS)
|
||||
|
||||
include ../../../../lib/Makefile.targ
|
||||
|
||||
42
ucbcmd/plot/libplot/t450/_con.h
Executable file
42
ucbcmd/plot/libplot/t450/_con.h
Executable file
@@ -0,0 +1,42 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)con.h 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include <sgtty.h>
|
||||
/* gsi plotting output routines */
|
||||
# define DOWN 012
|
||||
# define UP 013
|
||||
# define LEFT 010
|
||||
# define RIGHT 040
|
||||
# define BEL 007
|
||||
# define ESC 033
|
||||
# define ACK 006
|
||||
#define PLOTIN 063
|
||||
#define PLOTOUT 064
|
||||
# define CR 015
|
||||
# define FF 014
|
||||
# define VERTRESP 48
|
||||
# define HORZRESP 60.
|
||||
# define VERTRES 8.
|
||||
# define HORZRES 6.
|
||||
/* down is line feed, up is reverse line feed,
|
||||
left is backspace, right is space. 48 points per inch
|
||||
vertically, 60 horizontally */
|
||||
|
||||
extern int xnow, ynow;
|
||||
extern int OUTF;
|
||||
extern struct sgttyb ITTY, PTTY;
|
||||
extern float HEIGHT, WIDTH, OFFSET;
|
||||
extern int xscale, xoffset, yscale;
|
||||
extern float botx, boty, obotx, oboty, scalex,scaley;
|
||||
|
||||
16
ucbcmd/plot/libplot/t450/arc.c
Executable file
16
ucbcmd/plot/libplot/t450/arc.c
Executable file
@@ -0,0 +1,16 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)arc.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
arc(){
|
||||
}
|
||||
23
ucbcmd/plot/libplot/t450/box.c
Executable file
23
ucbcmd/plot/libplot/t450/box.c
Executable file
@@ -0,0 +1,23 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)box.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
box(x0, y0, x1, y1)
|
||||
{
|
||||
move(x0, y0);
|
||||
cont(x0, y1);
|
||||
cont(x1, y1);
|
||||
cont(x1, y0);
|
||||
cont(x0, y0);
|
||||
move(x1, y1);
|
||||
}
|
||||
16
ucbcmd/plot/libplot/t450/circle.c
Executable file
16
ucbcmd/plot/libplot/t450/circle.c
Executable file
@@ -0,0 +1,16 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)circle.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
circle(){
|
||||
}
|
||||
22
ucbcmd/plot/libplot/t450/close.c
Executable file
22
ucbcmd/plot/libplot/t450/close.c
Executable file
@@ -0,0 +1,22 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)close.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
closevt(){
|
||||
closepl();
|
||||
}
|
||||
closepl(){
|
||||
fflush(stdout);
|
||||
reset();
|
||||
}
|
||||
16
ucbcmd/plot/libplot/t450/dot.c
Executable file
16
ucbcmd/plot/libplot/t450/dot.c
Executable file
@@ -0,0 +1,16 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)dot.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
dot(){
|
||||
}
|
||||
21
ucbcmd/plot/libplot/t450/erase.c
Executable file
21
ucbcmd/plot/libplot/t450/erase.c
Executable file
@@ -0,0 +1,21 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)erase.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "con.h"
|
||||
erase(){
|
||||
int i;
|
||||
for(i=0; i<11*(VERTRESP/VERTRES); i++)
|
||||
spew(DOWN);
|
||||
return;
|
||||
}
|
||||
25
ucbcmd/plot/libplot/t450/label.c
Executable file
25
ucbcmd/plot/libplot/t450/label.c
Executable file
@@ -0,0 +1,25 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)label.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "con.h"
|
||||
label(s)
|
||||
char *s;
|
||||
{
|
||||
int i,c;
|
||||
while((c = *s++) != '\0'){
|
||||
xnow += 6;
|
||||
spew(c);
|
||||
}
|
||||
return;
|
||||
}
|
||||
59
ucbcmd/plot/libplot/t450/line.c
Executable file
59
ucbcmd/plot/libplot/t450/line.c
Executable file
@@ -0,0 +1,59 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)line.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "con.h"
|
||||
line(x0,y0,x1,y1){
|
||||
iline(xconv(xsc(x0)),yconv(ysc(y0)),xconv(xsc(x1)),yconv(ysc(y1)));
|
||||
return;
|
||||
}
|
||||
cont(x0,y0){
|
||||
iline(xnow,ynow,xconv(xsc(x0)),yconv(ysc(y0)));
|
||||
return;
|
||||
}
|
||||
iline(cx0,cy0,cx1,cy1){
|
||||
int maxp,tt,j,np;
|
||||
char chx,chy;
|
||||
float xd,yd;
|
||||
float dist2(),sqrt();
|
||||
movep(cx0,cy0);
|
||||
maxp = sqrt(dist2(cx0,cy0,cx1,cy1))/2.;
|
||||
xd = cx1-cx0;
|
||||
yd = cy1-cy0;
|
||||
if(xd >= 0)chx = RIGHT;
|
||||
else chx = LEFT;
|
||||
if(yd >= 0)chy = UP;
|
||||
else chy = DOWN;
|
||||
if(maxp == 0){
|
||||
xd=0;
|
||||
yd=0;
|
||||
}
|
||||
else{
|
||||
xd /= maxp;
|
||||
yd /= maxp;
|
||||
}
|
||||
inplot();
|
||||
for (tt=0; tt<=maxp; tt++){
|
||||
j= cx0+xd*tt-xnow;
|
||||
xnow += j;
|
||||
j = abval(j);
|
||||
while(j-- > 0)spew(chx);
|
||||
j = cy0+yd*tt-ynow;
|
||||
ynow += j;
|
||||
j = abval(j);
|
||||
while(j-- > 0)spew(chy);
|
||||
spew ('.');
|
||||
}
|
||||
outplot();
|
||||
return;
|
||||
}
|
||||
16
ucbcmd/plot/libplot/t450/linmod.c
Executable file
16
ucbcmd/plot/libplot/t450/linmod.c
Executable file
@@ -0,0 +1,16 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)linmod.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
linemod(){
|
||||
}
|
||||
18
ucbcmd/plot/libplot/t450/move.c
Executable file
18
ucbcmd/plot/libplot/t450/move.c
Executable file
@@ -0,0 +1,18 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)move.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
move(xi,yi){
|
||||
movep(xconv(xsc(xi)),yconv(ysc(yi)));
|
||||
return;
|
||||
}
|
||||
64
ucbcmd/plot/libplot/t450/open.c
Executable file
64
ucbcmd/plot/libplot/t450/open.c
Executable file
@@ -0,0 +1,64 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)open.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#
|
||||
#include <sgtty.h>
|
||||
/* gsi plotting output routines */
|
||||
# define DOWN 012
|
||||
# define UP 013
|
||||
# define LEFT 010
|
||||
# define RIGHT 040
|
||||
# define BEL 007
|
||||
# define ACK 006
|
||||
#define PLOTIN 063
|
||||
#define PLOTOUT 064
|
||||
# define CR 015
|
||||
# define FF 014
|
||||
# define VERTRESP 48
|
||||
# define HORZRESP 60.
|
||||
# define HORZRES 6.
|
||||
# define VERTRES 8.
|
||||
/* down is line feed, up is reverse oyne feed,
|
||||
left is bwckspace, right is space. 48 points per inch
|
||||
vertically, 60 horizontally */
|
||||
|
||||
int xnow, ynow;
|
||||
int OUTF;
|
||||
struct sgttyb ITTY, PTTY;
|
||||
float HEIGHT = 6.0, WIDTH = 6.0, OFFSET = 0.0;
|
||||
int xscale, xoffset, yscale;
|
||||
float botx = 0., boty = 0., obotx = 0., oboty = 0.;
|
||||
float scalex = 1., scaley = 1.;
|
||||
|
||||
openpl ()
|
||||
{
|
||||
int reset();
|
||||
xnow = ynow = 0;
|
||||
OUTF = 1;
|
||||
printf("\r");
|
||||
gtty(OUTF, &ITTY);
|
||||
signal (2, reset);
|
||||
PTTY = ITTY;
|
||||
PTTY.sg_flags &= ~CRMOD; /* don't map lf */
|
||||
stty(OUTF,&PTTY);
|
||||
/* initialize constants */
|
||||
xscale = 4096./(HORZRESP * WIDTH);
|
||||
yscale = 4096 /(VERTRESP * HEIGHT);
|
||||
xoffset = OFFSET * HORZRESP;
|
||||
return;
|
||||
}
|
||||
|
||||
openvt(){
|
||||
openpl();
|
||||
}
|
||||
19
ucbcmd/plot/libplot/t450/point.c
Executable file
19
ucbcmd/plot/libplot/t450/point.c
Executable file
@@ -0,0 +1,19 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)point.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
point(xi,yi){
|
||||
move(xi,yi);
|
||||
label(".");
|
||||
return;
|
||||
}
|
||||
23
ucbcmd/plot/libplot/t450/space.c
Executable file
23
ucbcmd/plot/libplot/t450/space.c
Executable file
@@ -0,0 +1,23 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)space.c 1.1 90/08/19 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
# include "con.h"
|
||||
space(x0,y0,x1,y1){
|
||||
botx = -2047.;
|
||||
boty = -2047.;
|
||||
obotx = x0;
|
||||
oboty = y0;
|
||||
scalex = 4096./(x1-x0);
|
||||
scaley = 4096./(y1-y0);
|
||||
}
|
||||
130
ucbcmd/plot/libplot/t450/subr.c
Executable file
130
ucbcmd/plot/libplot/t450/subr.c
Executable file
@@ -0,0 +1,130 @@
|
||||
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ident "@(#)subr.c 1.2 90/11/01 SMI" /* SVr4.0 1.1 */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "con.h"
|
||||
abval(q)
|
||||
{
|
||||
return (q>=0 ? q : -q);
|
||||
}
|
||||
|
||||
xconv (xp)
|
||||
{
|
||||
/* x position input is -2047 to +2047, output must be 0 to PAGSIZ*HORZRES */
|
||||
xp += 2048;
|
||||
/* the computation is newx = xp*(PAGSIZ*HORZRES)/4096 */
|
||||
return (xoffset + xp /xscale);
|
||||
}
|
||||
|
||||
yconv (yp)
|
||||
{
|
||||
/* see description of xconv */
|
||||
yp += 2048;
|
||||
return (yp / yscale);
|
||||
}
|
||||
|
||||
inplot()
|
||||
{
|
||||
spew (ESC);
|
||||
spew(PLOTIN);
|
||||
}
|
||||
|
||||
outplot()
|
||||
{
|
||||
spew(ESC);
|
||||
spew(PLOTOUT);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
spew(ch)
|
||||
{
|
||||
if(ch == UP){
|
||||
putc(ESC,stdout);
|
||||
ch = DOWN;
|
||||
}
|
||||
putc(ch, stdout);
|
||||
}
|
||||
|
||||
tobotleft ()
|
||||
{
|
||||
move(-2048,-2048);
|
||||
}
|
||||
reset()
|
||||
{
|
||||
signal(2,1);
|
||||
outplot();
|
||||
stty(OUTF,&ITTY);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
float
|
||||
dist2 (x1, y1, x2, y2)
|
||||
{
|
||||
float t,v;
|
||||
t = x2-x1;
|
||||
v = y1-y2;
|
||||
return (t*t+v*v);
|
||||
}
|
||||
|
||||
swap (pa, pb)
|
||||
int *pa, *pb;
|
||||
{
|
||||
int t;
|
||||
t = *pa;
|
||||
*pa = *pb;
|
||||
*pb = t;
|
||||
}
|
||||
movep (xg,yg)
|
||||
{
|
||||
int i,ch;
|
||||
if((xg == xnow) && (yg == ynow))return;
|
||||
/* if we need to go to left margin, just CR */
|
||||
if (xg < xnow/2)
|
||||
{
|
||||
spew(CR);
|
||||
xnow = 0;
|
||||
}
|
||||
i = (xg-xnow)/HORZRES;
|
||||
if(xnow < xg)ch = RIGHT;
|
||||
else ch = LEFT;
|
||||
xnow += i*HORZRES;
|
||||
i = abval(i);
|
||||
while(i--)spew(ch);
|
||||
i = abval(xg-xnow);
|
||||
inplot();
|
||||
while(i--) spew(ch);
|
||||
outplot();
|
||||
i=(yg-ynow)/VERTRES;
|
||||
if(ynow < yg)ch = UP;
|
||||
else ch = DOWN;
|
||||
ynow += i*VERTRES;
|
||||
i = abval(i);
|
||||
while(i--)spew(ch);
|
||||
i=abval(yg-ynow);
|
||||
inplot();
|
||||
while(i--)spew(ch);
|
||||
outplot();
|
||||
xnow = xg; ynow = yg;
|
||||
}
|
||||
|
||||
xsc(xi){
|
||||
int xa;
|
||||
xa = (xi - obotx) * scalex + botx;
|
||||
return(xa);
|
||||
}
|
||||
ysc(yi){
|
||||
int ya;
|
||||
ya = (yi - oboty) *scaley +boty;
|
||||
return(ya);
|
||||
}
|
||||
Reference in New Issue
Block a user