shithub: fork

Download patch

ref: c639a4ea5793878eb8589ec4d422e4c9952a42fc
parent: 9339cf07c8fb51a828d2feb3414170f3cea01a75
author: qwx <[email protected]>
date: Mon Aug 14 01:44:09 EDT 2023

remove extra files

--- a/sys/src/cmd/jam/plan9.acid
+++ /dev/null
@@ -1,817 +1,0 @@
-sizeof_1_ = 8;
-aggr _1_
-{
-	'U' 0 lo;
-	'U' 4 hi;
-};
-
-defn
-_1_(addr) {
-	complex _1_ addr;
-	print("	lo	", addr.lo, "\n");
-	print("	hi	", addr.hi, "\n");
-};
-
-sizeofFPdbleword = 8;
-aggr FPdbleword
-{
-	'F' 0 x;
-	{
-	'U' 0 lo;
-	'U' 4 hi;
-	};
-};
-
-defn
-FPdbleword(addr) {
-	complex FPdbleword addr;
-	print("	x	", addr.x, "\n");
-	print("_1_ {\n");
-		_1_(addr+0);
-	print("}\n");
-};
-
-UTFmax = 4;
-Runesync = 128;
-Runeself = 128;
-Runeerror = 65533;
-Runemax = 1114111;
-Runemask = 2097151;
-sizeofFmt = 80;
-aggr Fmt
-{
-	'b' 0 runes;
-	'Y' 8 start;
-	'Y' 16 to;
-	'Y' 24 stop;
-	'Y' 32 flush;
-	'Y' 40 farg;
-	'D' 48 nfmt;
-	'Y' 56 args;
-	'D' 64 r;
-	'D' 68 width;
-	'D' 72 prec;
-	'U' 76 flags;
-};
-
-defn
-Fmt(addr) {
-	complex Fmt addr;
-	print("	runes	", addr.runes, "\n");
-	print("	start	", addr.start\Y, "\n");
-	print("	to	", addr.to\Y, "\n");
-	print("	stop	", addr.stop\Y, "\n");
-	print("	flush	", addr.flush\Y, "\n");
-	print("	farg	", addr.farg\Y, "\n");
-	print("	nfmt	", addr.nfmt, "\n");
-	print("	args	", addr.args\Y, "\n");
-	print("	r	", addr.r, "\n");
-	print("	width	", addr.width, "\n");
-	print("	prec	", addr.prec, "\n");
-	print("	flags	", addr.flags, "\n");
-};
-
-FmtWidth = 1;
-FmtLeft = 2;
-FmtPrec = 4;
-FmtSharp = 8;
-FmtSpace = 16;
-FmtSign = 32;
-FmtZero = 64;
-FmtUnsigned = 128;
-FmtShort = 256;
-FmtLong = 512;
-FmtVLong = 1024;
-FmtComma = 2048;
-FmtByte = 4096;
-FmtFlag = 8192;
-sizeofTm = 64;
-aggr Tm
-{
-	'D' 0 nsec;
-	'D' 4 sec;
-	'D' 8 min;
-	'D' 12 hour;
-	'D' 16 mday;
-	'D' 20 mon;
-	'D' 24 year;
-	'D' 28 wday;
-	'D' 32 yday;
-	'a' 36 zone;
-	'D' 52 tzoff;
-	'Y' 56 tz;
-};
-
-defn
-Tm(addr) {
-	complex Tm addr;
-	print("	nsec	", addr.nsec, "\n");
-	print("	sec	", addr.sec, "\n");
-	print("	min	", addr.min, "\n");
-	print("	hour	", addr.hour, "\n");
-	print("	mday	", addr.mday, "\n");
-	print("	mon	", addr.mon, "\n");
-	print("	year	", addr.year, "\n");
-	print("	wday	", addr.wday, "\n");
-	print("	yday	", addr.yday, "\n");
-	print("	zone	", addr.zone, "\n");
-	print("	tzoff	", addr.tzoff, "\n");
-	print("	tz	", addr.tz\Y, "\n");
-};
-
-sizeofTmfmt = 16;
-aggr Tmfmt
-{
-	'Y' 0 fmt;
-	'A' Tm 8 tm;
-};
-
-defn
-Tmfmt(addr) {
-	complex Tmfmt addr;
-	print("	fmt	", addr.fmt\Y, "\n");
-	print("	tm	", addr.tm\Y, "\n");
-};
-
-PNPROC = 1;
-PNGROUP = 2;
-Profoff = 0;
-Profuser = 1;
-Profkernel = 2;
-Proftime = 3;
-Profsample = 4;
-sizeofLock = 8;
-aggr Lock
-{
-	'D' 0 val;
-};
-
-defn
-Lock(addr) {
-	complex Lock addr;
-	print("	val	", addr.val, "\n");
-};
-
-sizeofQLp = 16;
-aggr QLp
-{
-	'D' 0 inuse;
-	'D' 4 state;
-	'A' QLp 8 next;
-};
-
-defn
-QLp(addr) {
-	complex QLp addr;
-	print("	inuse	", addr.inuse, "\n");
-	print("	state	", addr.state, "\n");
-	print("	next	", addr.next\Y, "\n");
-};
-
-sizeofQLock = 32;
-aggr QLock
-{
-	Lock 0 lock;
-	'D' 8 locked;
-	'A' QLp 16 $head;
-	'A' QLp 24 $tail;
-};
-
-defn
-QLock(addr) {
-	complex QLock addr;
-	print("Lock lock {\n");
-	Lock(addr.lock);
-	print("}\n");
-	print("	locked	", addr.locked, "\n");
-	print("	$head	", addr.$head\Y, "\n");
-	print("	$tail	", addr.$tail\Y, "\n");
-};
-
-sizeofRWLock = 32;
-aggr RWLock
-{
-	Lock 0 lock;
-	'D' 8 readers;
-	'D' 12 writer;
-	'A' QLp 16 $head;
-	'A' QLp 24 $tail;
-};
-
-defn
-RWLock(addr) {
-	complex RWLock addr;
-	print("Lock lock {\n");
-	Lock(addr.lock);
-	print("}\n");
-	print("	readers	", addr.readers, "\n");
-	print("	writer	", addr.writer, "\n");
-	print("	$head	", addr.$head\Y, "\n");
-	print("	$tail	", addr.$tail\Y, "\n");
-};
-
-sizeofRendez = 24;
-aggr Rendez
-{
-	'A' QLock 0 l;
-	'A' QLp 8 $head;
-	'A' QLp 16 $tail;
-};
-
-defn
-Rendez(addr) {
-	complex Rendez addr;
-	print("	l	", addr.l\Y, "\n");
-	print("	$head	", addr.$head\Y, "\n");
-	print("	$tail	", addr.$tail\Y, "\n");
-};
-
-sizeofNetConnInfo = 72;
-aggr NetConnInfo
-{
-	'Y' 0 dir;
-	'Y' 8 root;
-	'Y' 16 spec;
-	'Y' 24 lsys;
-	'Y' 32 lserv;
-	'Y' 40 rsys;
-	'Y' 48 rserv;
-	'Y' 56 laddr;
-	'Y' 64 raddr;
-};
-
-defn
-NetConnInfo(addr) {
-	complex NetConnInfo addr;
-	print("	dir	", addr.dir\Y, "\n");
-	print("	root	", addr.root\Y, "\n");
-	print("	spec	", addr.spec\Y, "\n");
-	print("	lsys	", addr.lsys\Y, "\n");
-	print("	lserv	", addr.lserv\Y, "\n");
-	print("	rsys	", addr.rsys\Y, "\n");
-	print("	rserv	", addr.rserv\Y, "\n");
-	print("	laddr	", addr.laddr\Y, "\n");
-	print("	raddr	", addr.raddr\Y, "\n");
-};
-
-RFNAMEG = 1;
-RFENVG = 2;
-RFFDG = 4;
-RFNOTEG = 8;
-RFPROC = 16;
-RFMEM = 32;
-RFNOWAIT = 64;
-RFCNAMEG = 1024;
-RFCENVG = 2048;
-RFCFDG = 4096;
-RFREND = 8192;
-RFNOMNT = 16384;
-sizeofQid = 16;
-aggr Qid
-{
-	'W' 0 path;
-	'U' 8 vers;
-	'b' 12 type;
-};
-
-defn
-Qid(addr) {
-	complex Qid addr;
-	print("	path	", addr.path, "\n");
-	print("	vers	", addr.vers, "\n");
-	print("	type	", addr.type, "\n");
-};
-
-sizeofDir = 80;
-aggr Dir
-{
-	'u' 0 type;
-	'U' 4 dev;
-	Qid 8 qid;
-	'U' 24 mode;
-	'U' 28 atime;
-	'U' 32 mtime;
-	'V' 40 length;
-	'Y' 48 name;
-	'Y' 56 uid;
-	'Y' 64 gid;
-	'Y' 72 muid;
-};
-
-defn
-Dir(addr) {
-	complex Dir addr;
-	print("	type	", addr.type, "\n");
-	print("	dev	", addr.dev, "\n");
-	print("Qid qid {\n");
-	Qid(addr.qid);
-	print("}\n");
-	print("	mode	", addr.mode, "\n");
-	print("	atime	", addr.atime, "\n");
-	print("	mtime	", addr.mtime, "\n");
-	print("	length	", addr.length, "\n");
-	print("	name	", addr.name\Y, "\n");
-	print("	uid	", addr.uid\Y, "\n");
-	print("	gid	", addr.gid\Y, "\n");
-	print("	muid	", addr.muid\Y, "\n");
-};
-
-sizeofWaitmsg = 24;
-aggr Waitmsg
-{
-	'D' 0 pid;
-	'a' 4 time;
-	'Y' 16 msg;
-};
-
-defn
-Waitmsg(addr) {
-	complex Waitmsg addr;
-	print("	pid	", addr.pid, "\n");
-	print("	time	", addr.time, "\n");
-	print("	msg	", addr.msg\Y, "\n");
-};
-
-sizeofIOchunk = 16;
-aggr IOchunk
-{
-	'Y' 0 addr;
-	'U' 8 len;
-};
-
-defn
-IOchunk(addr) {
-	complex IOchunk addr;
-	print("	addr	", addr.addr\Y, "\n");
-	print("	len	", addr.len, "\n");
-};
-
-sizeofPlumbmsg = 56;
-aggr Plumbmsg
-{
-	'Y' 0 src;
-	'Y' 8 dst;
-	'Y' 16 wdir;
-	'Y' 24 type;
-	'Y' 32 attr;
-	'D' 40 ndata;
-	'Y' 48 data;
-};
-
-defn
-Plumbmsg(addr) {
-	complex Plumbmsg addr;
-	print("	src	", addr.src\Y, "\n");
-	print("	dst	", addr.dst\Y, "\n");
-	print("	wdir	", addr.wdir\Y, "\n");
-	print("	type	", addr.type\Y, "\n");
-	print("	attr	", addr.attr\Y, "\n");
-	print("	ndata	", addr.ndata, "\n");
-	print("	data	", addr.data\Y, "\n");
-};
-
-sizeofPlumbattr = 24;
-aggr Plumbattr
-{
-	'Y' 0 name;
-	'Y' 8 value;
-	'A' Plumbattr 16 next;
-};
-
-defn
-Plumbattr(addr) {
-	complex Plumbattr addr;
-	print("	name	", addr.name\Y, "\n");
-	print("	value	", addr.value\Y, "\n");
-	print("	next	", addr.next\Y, "\n");
-};
-
-Eopen = 0;
-Ecreate = 1;
-Emenu = 2;
-Emodified = 3;
-Eio = 4;
-Ewseq = 5;
-Eunk = 6;
-Emissop = 7;
-Edelim = 8;
-Efork = 9;
-Eintr = 10;
-Eaddress = 11;
-Esearch = 12;
-Epattern = 13;
-Enewline = 14;
-Eblank = 15;
-Enopattern = 16;
-EnestXY = 17;
-Enolbrace = 18;
-Enoaddr = 19;
-Eoverlap = 20;
-Enosub = 21;
-Elongrhs = 22;
-Ebadrhs = 23;
-Erange = 24;
-Esequence = 25;
-Eorder = 26;
-Enoname = 27;
-Eleftpar = 28;
-Erightpar = 29;
-Ebadclass = 30;
-Ebadregexp = 31;
-Eoverflow = 32;
-Enocmd = 33;
-Epipe = 34;
-Enofile = 35;
-Etoolong = 36;
-Echanges = 37;
-Eempty = 38;
-Efsearch = 39;
-Emanyfiles = 40;
-Elongtag = 41;
-Esubexp = 42;
-Etmpovfl = 43;
-Eappend = 44;
-Ecantplumb = 45;
-Ebufload = 46;
-Wdupname = 0;
-Wfile = 1;
-Wdate = 2;
-Wdupfile = 3;
-Wnulls = 4;
-Wpwd = 5;
-Wnotnewline = 6;
-Wbadstatus = 7;
-Clean = 32;
-Dirty = 39;
-Unread = 45;
-sizeofRange = 8;
-aggr Range
-{
-	'D' 0 p1;
-	'D' 4 p2;
-};
-
-defn
-Range(addr) {
-	complex Range addr;
-	print("	p1	", addr.p1, "\n");
-	print("	p2	", addr.p2, "\n");
-};
-
-sizeofRangeset = 80;
-aggr Rangeset
-{
-	'a' 0 p;
-};
-
-defn
-Rangeset(addr) {
-	complex Rangeset addr;
-	print("	p	", addr.p, "\n");
-};
-
-sizeofAddress = 16;
-aggr Address
-{
-	Range 0 r;
-	'Y' 8 f;
-};
-
-defn
-Address(addr) {
-	complex Address addr;
-	print("Range r {\n");
-	Range(addr.r);
-	print("}\n");
-	print("	f	", addr.f\Y, "\n");
-};
-
-sizeofString = 16;
-aggr String
-{
-	'd' 0 n;
-	'd' 2 size;
-	'Y' 8 s;
-};
-
-defn
-String(addr) {
-	complex String addr;
-	print("	n	", addr.n, "\n");
-	print("	size	", addr.size, "\n");
-	print("	s	", addr.s\Y, "\n");
-};
-
-sizeof_2_ = 8;
-aggr _2_
-{
-	'Y' 0 listp;
-	'Y' 0 voidp;
-	'Y' 0 posnp;
-	'A' String 0 stringp;
-	'Y' 0 filep;
-};
-
-defn
-_2_(addr) {
-	complex _2_ addr;
-	print("	listp	", addr.listp\Y, "\n");
-	print("	voidp	", addr.voidp\Y, "\n");
-	print("	posnp	", addr.posnp\Y, "\n");
-	print("	stringp	", addr.stringp\Y, "\n");
-	print("	filep	", addr.filep\Y, "\n");
-};
-
-sizeofList = 24;
-aggr List
-{
-	'D' 0 type;
-	'D' 4 nalloc;
-	'D' 8 nused;
-	_2_ 16 g;
-};
-
-defn
-List(addr) {
-	complex List addr;
-	print("	type	", addr.type, "\n");
-	print("	nalloc	", addr.nalloc, "\n");
-	print("	nused	", addr.nused, "\n");
-	print("_2_ g {\n");
-	_2_(addr.g);
-	print("}\n");
-};
-
-Blockincr = 256;
-Maxblock = 8192;
-BUFSIZE = 8192;
-RBUFSIZE = 2048;
-Null = 45;
-Delete = 100;
-Insert = 105;
-Filename = 102;
-Dot = 68;
-Mark = 109;
-sizeof_3_ = 8;
-aggr _3_
-{
-	'U' 0 n;
-	'Y' 0 next;
-};
-
-defn
-_3_(addr) {
-	complex _3_ addr;
-	print("	n	", addr.n, "\n");
-	print("	next	", addr.next\Y, "\n");
-};
-
-sizeofBlock = 16;
-aggr Block
-{
-	'U' 0 addr;
-	{
-	'U' 8 n;
-	'A' Block 8 next;
-	};
-};
-
-defn
-Block(addr) {
-	complex Block addr;
-	print("	addr	", addr.addr, "\n");
-	print("_3_ {\n");
-		_3_(addr+8);
-	print("}\n");
-};
-
-sizeofDisk = 280;
-aggr Disk
-{
-	'D' 0 fd;
-	'V' 8 addr;
-	'a' 16 free;
-};
-
-defn
-Disk(addr) {
-	complex Disk addr;
-	print("	fd	", addr.fd, "\n");
-	print("	addr	", addr.addr, "\n");
-	print("	free	", addr.free, "\n");
-};
-
-sizeofBuffer = 56;
-aggr Buffer
-{
-	'U' 0 nc;
-	'Y' 8 c;
-	'U' 16 cnc;
-	'U' 20 cmax;
-	'U' 24 cq;
-	'D' 28 cdirty;
-	'U' 32 cbi;
-	'A' Block 40 bl;
-	'U' 48 nbl;
-};
-
-defn
-Buffer(addr) {
-	complex Buffer addr;
-	print("	nc	", addr.nc, "\n");
-	print("	c	", addr.c\Y, "\n");
-	print("	cnc	", addr.cnc, "\n");
-	print("	cmax	", addr.cmax, "\n");
-	print("	cq	", addr.cq, "\n");
-	print("	cdirty	", addr.cdirty, "\n");
-	print("	cbi	", addr.cbi, "\n");
-	print("	bl	", addr.bl\Y, "\n");
-	print("	nbl	", addr.nbl, "\n");
-};
-
-sizeofFile = 312;
-aggr File
-{
-	{
-	'U' 0 nc;
-	'Y' 8 c;
-	'U' 16 cnc;
-	'U' 20 cmax;
-	'U' 24 cq;
-	'D' 28 cdirty;
-	'U' 32 cbi;
-	'A' Block 40 bl;
-	'U' 48 nbl;
-	};
-	Buffer 56 delta;
-	Buffer 112 epsilon;
-	String 168 name;
-	'W' 184 qidpath;
-	'U' 192 mtime;
-	'D' 196 dev;
-	'D' 200 unread;
-	'D' 204 seq;
-	'D' 208 cleanseq;
-	'D' 212 mod;
-	'C' 216 rescuing;
-	'D' 220 hiposn;
-	Address 224 dot;
-	Address 240 ndot;
-	Range 256 tdot;
-	Range 264 mark;
-	'A' List 272 rasp;
-	'd' 280 tag;
-	'C' 282 closeok;
-	'C' 283 deleted;
-	Range 288 prevdot;
-	Range 296 prevmark;
-	'D' 304 prevseq;
-	'D' 308 prevmod;
-};
-
-defn
-File(addr) {
-	complex File addr;
-	print("Buffer {\n");
-		Buffer(addr+0);
-	print("}\n");
-	print("Buffer delta {\n");
-	Buffer(addr.delta);
-	print("}\n");
-	print("Buffer epsilon {\n");
-	Buffer(addr.epsilon);
-	print("}\n");
-	print("String name {\n");
-	String(addr.name);
-	print("}\n");
-	print("	qidpath	", addr.qidpath, "\n");
-	print("	mtime	", addr.mtime, "\n");
-	print("	dev	", addr.dev, "\n");
-	print("	unread	", addr.unread, "\n");
-	print("	seq	", addr.seq, "\n");
-	print("	cleanseq	", addr.cleanseq, "\n");
-	print("	mod	", addr.mod, "\n");
-	print("	rescuing	", addr.rescuing, "\n");
-	print("	hiposn	", addr.hiposn, "\n");
-	print("Address dot {\n");
-	Address(addr.dot);
-	print("}\n");
-	print("Address ndot {\n");
-	Address(addr.ndot);
-	print("}\n");
-	print("Range tdot {\n");
-	Range(addr.tdot);
-	print("}\n");
-	print("Range mark {\n");
-	Range(addr.mark);
-	print("}\n");
-	print("	rasp	", addr.rasp\Y, "\n");
-	print("	tag	", addr.tag, "\n");
-	print("	closeok	", addr.closeok, "\n");
-	print("	deleted	", addr.deleted, "\n");
-	print("Range prevdot {\n");
-	Range(addr.prevdot);
-	print("}\n");
-	print("Range prevmark {\n");
-	Range(addr.prevmark);
-	print("}\n");
-	print("	prevseq	", addr.prevseq, "\n");
-	print("	prevmod	", addr.prevmod, "\n");
-};
-
-complex Disk disk;
-complex Address addr;
-complex Buffer snarfbuf;
-complex Buffer plan9buf;
-complex Buffer cmdbuf;
-complex List file;
-complex List tempfile;
-complex File cmd;
-complex File curfile;
-complex File lastfile;
-complex Rangeset sel;
-complex String curwd;
-complex String cmdstr;
-complex String genstr;
-complex String lastpat;
-complex String lastregexp;
-complex String plan9cmd;
-Tversion = 0;
-Tstartcmdfile = 1;
-Tcheck = 2;
-Trequest = 3;
-Torigin = 4;
-Tstartfile = 5;
-Tworkfile = 6;
-Ttype = 7;
-Tcut = 8;
-Tpaste = 9;
-Tsnarf = 10;
-Tstartnewfile = 11;
-Twrite = 12;
-Tclose = 13;
-Tlook = 14;
-Tsearch = 15;
-Tsend = 16;
-Tdclick = 17;
-Tstartsnarf = 18;
-Tsetsnarf = 19;
-Tack = 20;
-Texit = 21;
-Tplumb = 22;
-Ttclick = 23;
-Tmenucmd = 24;
-Tmenucmdsend = 25;
-TMAX = 26;
-Hversion = 0;
-Hbindname = 1;
-Hcurrent = 2;
-Hnewname = 3;
-Hmovname = 4;
-Hgrow = 5;
-Hcheck0 = 6;
-Hcheck = 7;
-Hunlock = 8;
-Hdata = 9;
-Horigin = 10;
-Hunlockfile = 11;
-Hsetdot = 12;
-Hgrowdata = 13;
-Hmoveto = 14;
-Hclean = 15;
-Hdirty = 16;
-Hcut = 17;
-Hsetpat = 18;
-Hdelname = 19;
-Hclose = 20;
-Hsetsnarf = 21;
-Hsnarflen = 22;
-Hack = 23;
-Hexit = 24;
-Hplumb = 25;
-Hmenucmd = 26;
-HMAX = 27;
-sizeofHeader = 8;
-aggr Header
-{
-	'b' 0 type;
-	'b' 1 count0;
-	'b' 2 count1;
-	'a' 3 data;
-};
-
-defn
-Header(addr) {
-	complex Header addr;
-	print("	type	", addr.type, "\n");
-	print("	count0	", addr.count0, "\n");
-	print("	count1	", addr.count1, "\n");
-	print("	data	", addr.data, "\n");
-};
-
-complex String print_ss:a;
-complex String print_ss:b;
-complex String print_s:a;
-complex Dir statfile:dirb;
-complex Dir statfd:dirb;
-complex Waitmsg waitfor:w;
--- a/sys/src/cmd/jamterm/main.acid
+++ /dev/null
@@ -1,1334 +1,0 @@
-sizeof_1_ = 8;
-aggr _1_
-{
-	'U' 0 lo;
-	'U' 4 hi;
-};
-
-defn
-_1_(addr) {
-	complex _1_ addr;
-	print("	lo	", addr.lo, "\n");
-	print("	hi	", addr.hi, "\n");
-};
-
-sizeofFPdbleword = 8;
-aggr FPdbleword
-{
-	'F' 0 x;
-	{
-	'U' 0 lo;
-	'U' 4 hi;
-	};
-};
-
-defn
-FPdbleword(addr) {
-	complex FPdbleword addr;
-	print("	x	", addr.x, "\n");
-	print("_1_ {\n");
-		_1_(addr+0);
-	print("}\n");
-};
-
-UTFmax = 4;
-Runesync = 128;
-Runeself = 128;
-Runeerror = 65533;
-Runemax = 1114111;
-Runemask = 2097151;
-sizeofFmt = 80;
-aggr Fmt
-{
-	'b' 0 runes;
-	'Y' 8 start;
-	'Y' 16 to;
-	'Y' 24 stop;
-	'Y' 32 flush;
-	'Y' 40 farg;
-	'D' 48 nfmt;
-	'Y' 56 args;
-	'D' 64 r;
-	'D' 68 width;
-	'D' 72 prec;
-	'U' 76 flags;
-};
-
-defn
-Fmt(addr) {
-	complex Fmt addr;
-	print("	runes	", addr.runes, "\n");
-	print("	start	", addr.start\Y, "\n");
-	print("	to	", addr.to\Y, "\n");
-	print("	stop	", addr.stop\Y, "\n");
-	print("	flush	", addr.flush\Y, "\n");
-	print("	farg	", addr.farg\Y, "\n");
-	print("	nfmt	", addr.nfmt, "\n");
-	print("	args	", addr.args\Y, "\n");
-	print("	r	", addr.r, "\n");
-	print("	width	", addr.width, "\n");
-	print("	prec	", addr.prec, "\n");
-	print("	flags	", addr.flags, "\n");
-};
-
-FmtWidth = 1;
-FmtLeft = 2;
-FmtPrec = 4;
-FmtSharp = 8;
-FmtSpace = 16;
-FmtSign = 32;
-FmtZero = 64;
-FmtUnsigned = 128;
-FmtShort = 256;
-FmtLong = 512;
-FmtVLong = 1024;
-FmtComma = 2048;
-FmtByte = 4096;
-FmtFlag = 8192;
-sizeofTm = 64;
-aggr Tm
-{
-	'D' 0 nsec;
-	'D' 4 sec;
-	'D' 8 min;
-	'D' 12 hour;
-	'D' 16 mday;
-	'D' 20 mon;
-	'D' 24 year;
-	'D' 28 wday;
-	'D' 32 yday;
-	'a' 36 zone;
-	'D' 52 tzoff;
-	'Y' 56 tz;
-};
-
-defn
-Tm(addr) {
-	complex Tm addr;
-	print("	nsec	", addr.nsec, "\n");
-	print("	sec	", addr.sec, "\n");
-	print("	min	", addr.min, "\n");
-	print("	hour	", addr.hour, "\n");
-	print("	mday	", addr.mday, "\n");
-	print("	mon	", addr.mon, "\n");
-	print("	year	", addr.year, "\n");
-	print("	wday	", addr.wday, "\n");
-	print("	yday	", addr.yday, "\n");
-	print("	zone	", addr.zone, "\n");
-	print("	tzoff	", addr.tzoff, "\n");
-	print("	tz	", addr.tz\Y, "\n");
-};
-
-sizeofTmfmt = 16;
-aggr Tmfmt
-{
-	'Y' 0 fmt;
-	'A' Tm 8 tm;
-};
-
-defn
-Tmfmt(addr) {
-	complex Tmfmt addr;
-	print("	fmt	", addr.fmt\Y, "\n");
-	print("	tm	", addr.tm\Y, "\n");
-};
-
-PNPROC = 1;
-PNGROUP = 2;
-Profoff = 0;
-Profuser = 1;
-Profkernel = 2;
-Proftime = 3;
-Profsample = 4;
-sizeofLock = 8;
-aggr Lock
-{
-	'D' 0 val;
-};
-
-defn
-Lock(addr) {
-	complex Lock addr;
-	print("	val	", addr.val, "\n");
-};
-
-sizeofQLp = 16;
-aggr QLp
-{
-	'D' 0 inuse;
-	'D' 4 state;
-	'A' QLp 8 next;
-};
-
-defn
-QLp(addr) {
-	complex QLp addr;
-	print("	inuse	", addr.inuse, "\n");
-	print("	state	", addr.state, "\n");
-	print("	next	", addr.next\Y, "\n");
-};
-
-sizeofQLock = 32;
-aggr QLock
-{
-	Lock 0 lock;
-	'D' 8 locked;
-	'A' QLp 16 $head;
-	'A' QLp 24 $tail;
-};
-
-defn
-QLock(addr) {
-	complex QLock addr;
-	print("Lock lock {\n");
-	Lock(addr.lock);
-	print("}\n");
-	print("	locked	", addr.locked, "\n");
-	print("	$head	", addr.$head\Y, "\n");
-	print("	$tail	", addr.$tail\Y, "\n");
-};
-
-sizeofRWLock = 32;
-aggr RWLock
-{
-	Lock 0 lock;
-	'D' 8 readers;
-	'D' 12 writer;
-	'A' QLp 16 $head;
-	'A' QLp 24 $tail;
-};
-
-defn
-RWLock(addr) {
-	complex RWLock addr;
-	print("Lock lock {\n");
-	Lock(addr.lock);
-	print("}\n");
-	print("	readers	", addr.readers, "\n");
-	print("	writer	", addr.writer, "\n");
-	print("	$head	", addr.$head\Y, "\n");
-	print("	$tail	", addr.$tail\Y, "\n");
-};
-
-sizeofRendez = 24;
-aggr Rendez
-{
-	'A' QLock 0 l;
-	'A' QLp 8 $head;
-	'A' QLp 16 $tail;
-};
-
-defn
-Rendez(addr) {
-	complex Rendez addr;
-	print("	l	", addr.l\Y, "\n");
-	print("	$head	", addr.$head\Y, "\n");
-	print("	$tail	", addr.$tail\Y, "\n");
-};
-
-sizeofNetConnInfo = 72;
-aggr NetConnInfo
-{
-	'Y' 0 dir;
-	'Y' 8 root;
-	'Y' 16 spec;
-	'Y' 24 lsys;
-	'Y' 32 lserv;
-	'Y' 40 rsys;
-	'Y' 48 rserv;
-	'Y' 56 laddr;
-	'Y' 64 raddr;
-};
-
-defn
-NetConnInfo(addr) {
-	complex NetConnInfo addr;
-	print("	dir	", addr.dir\Y, "\n");
-	print("	root	", addr.root\Y, "\n");
-	print("	spec	", addr.spec\Y, "\n");
-	print("	lsys	", addr.lsys\Y, "\n");
-	print("	lserv	", addr.lserv\Y, "\n");
-	print("	rsys	", addr.rsys\Y, "\n");
-	print("	rserv	", addr.rserv\Y, "\n");
-	print("	laddr	", addr.laddr\Y, "\n");
-	print("	raddr	", addr.raddr\Y, "\n");
-};
-
-RFNAMEG = 1;
-RFENVG = 2;
-RFFDG = 4;
-RFNOTEG = 8;
-RFPROC = 16;
-RFMEM = 32;
-RFNOWAIT = 64;
-RFCNAMEG = 1024;
-RFCENVG = 2048;
-RFCFDG = 4096;
-RFREND = 8192;
-RFNOMNT = 16384;
-sizeofQid = 16;
-aggr Qid
-{
-	'W' 0 path;
-	'U' 8 vers;
-	'b' 12 type;
-};
-
-defn
-Qid(addr) {
-	complex Qid addr;
-	print("	path	", addr.path, "\n");
-	print("	vers	", addr.vers, "\n");
-	print("	type	", addr.type, "\n");
-};
-
-sizeofDir = 80;
-aggr Dir
-{
-	'u' 0 type;
-	'U' 4 dev;
-	Qid 8 qid;
-	'U' 24 mode;
-	'U' 28 atime;
-	'U' 32 mtime;
-	'V' 40 length;
-	'Y' 48 name;
-	'Y' 56 uid;
-	'Y' 64 gid;
-	'Y' 72 muid;
-};
-
-defn
-Dir(addr) {
-	complex Dir addr;
-	print("	type	", addr.type, "\n");
-	print("	dev	", addr.dev, "\n");
-	print("Qid qid {\n");
-	Qid(addr.qid);
-	print("}\n");
-	print("	mode	", addr.mode, "\n");
-	print("	atime	", addr.atime, "\n");
-	print("	mtime	", addr.mtime, "\n");
-	print("	length	", addr.length, "\n");
-	print("	name	", addr.name\Y, "\n");
-	print("	uid	", addr.uid\Y, "\n");
-	print("	gid	", addr.gid\Y, "\n");
-	print("	muid	", addr.muid\Y, "\n");
-};
-
-sizeofWaitmsg = 24;
-aggr Waitmsg
-{
-	'D' 0 pid;
-	'a' 4 time;
-	'Y' 16 msg;
-};
-
-defn
-Waitmsg(addr) {
-	complex Waitmsg addr;
-	print("	pid	", addr.pid, "\n");
-	print("	time	", addr.time, "\n");
-	print("	msg	", addr.msg\Y, "\n");
-};
-
-sizeofIOchunk = 16;
-aggr IOchunk
-{
-	'Y' 0 addr;
-	'U' 8 len;
-};
-
-defn
-IOchunk(addr) {
-	complex IOchunk addr;
-	print("	addr	", addr.addr\Y, "\n");
-	print("	len	", addr.len, "\n");
-};
-
-DOpaque = 4294967295;
-DTransparent = 0;
-DBlack = 255;
-DWhite = 4294967295;
-DRed = 4278190335;
-DGreen = 16711935;
-DBlue = 65535;
-DCyan = 16777215;
-DMagenta = 4278255615;
-DYellow = 4294902015;
-DPaleyellow = 4294945535;
-DDarkyellow = 4008615679;
-DDarkgreen = 1149781247;
-DPalegreen = 2868882175;
-DMedgreen = 2295105791;
-DDarkblue = 22015;
-DPalebluegreen = 2868903935;
-DPaleblue = 48127;
-DBluegreen = 8947967;
-DGreygreen = 1437248255;
-DPalegreygreen = 2666458879;
-DYellowgreen = 2576960767;
-DMedblue = 39423;
-DGreyblue = 6142975;
-DPalegreyblue = 1234427391;
-DPurpleblue = 2290666751;
-DNotacolor = 4294967040;
-DNofill = 4294967040;
-Displaybufsize = 8000;
-ICOSSCALE = 1024;
-Borderwidth = 4;
-Refbackup = 0;
-Refnone = 1;
-Refmesg = 2;
-Endsquare = 0;
-Enddisc = 1;
-Endarrow = 2;
-Endmask = 31;
-Clear = 0;
-SinD = 8;
-DinS = 4;
-SoutD = 2;
-DoutS = 1;
-S = 10;
-SoverD = 11;
-SatopD = 9;
-SxorD = 3;
-D = 5;
-DoverS = 7;
-DatopS = 6;
-DxorS = 3;
-Ncomp = 12;
-CRed = 0;
-CGreen = 1;
-CBlue = 2;
-CGrey = 3;
-CAlpha = 4;
-CMap = 5;
-CIgnore = 6;
-NChan = 7;
-GREY1 = 49;
-GREY2 = 50;
-GREY4 = 52;
-GREY8 = 56;
-CMAP8 = 88;
-RGB15 = 1627723045;
-RGB16 = 333349;
-RGB24 = 530472;
-RGBA32 = 135800904;
-ARGB32 = 1208490024;
-XRGB32 = 1745360936;
-BGR24 = 2627592;
-ABGR32 = 1210587144;
-XBGR32 = 1747458056;
-sizeofPoint = 8;
-aggr Point
-{
-	'D' 0 x;
-	'D' 4 y;
-};
-
-defn
-Point(addr) {
-	complex Point addr;
-	print("	x	", addr.x, "\n");
-	print("	y	", addr.y, "\n");
-};
-
-sizeofRectangle = 16;
-aggr Rectangle
-{
-	Point 0 min;
-	Point 8 max;
-};
-
-defn
-Rectangle(addr) {
-	complex Rectangle addr;
-	print("Point min {\n");
-	Point(addr.min);
-	print("}\n");
-	print("Point max {\n");
-	Point(addr.max);
-	print("}\n");
-};
-
-sizeofScreen = 32;
-aggr Screen
-{
-	'Y' 0 display;
-	'D' 8 id;
-	'Y' 16 image;
-	'Y' 24 fill;
-};
-
-defn
-Screen(addr) {
-	complex Screen addr;
-	print("	display	", addr.display\Y, "\n");
-	print("	id	", addr.id, "\n");
-	print("	image	", addr.image\Y, "\n");
-	print("	fill	", addr.fill\Y, "\n");
-};
-
-sizeofDisplay = 264;
-aggr Display
-{
-	QLock 0 qlock;
-	'D' 32 locking;
-	'D' 36 dirno;
-	'D' 40 fd;
-	'D' 44 reffd;
-	'D' 48 ctlfd;
-	'D' 52 imageid;
-	'D' 56 $local;
-	'Y' 64 error;
-	'Y' 72 devdir;
-	'Y' 80 windir;
-	'a' 88 oldlabel;
-	'U' 152 dataqid;
-	'Y' 160 white;
-	'Y' 168 black;
-	'Y' 176 opaque;
-	'Y' 184 transparent;
-	'Y' 192 image;
-	'Y' 200 buf;
-	'D' 208 bufsize;
-	'Y' 216 bufp;
-	'Y' 224 defaultfont;
-	'Y' 232 defaultsubfont;
-	'Y' 240 windows;
-	'Y' 248 screenimage;
-	'D' 256 _isnewdisplay;
-};
-
-defn
-Display(addr) {
-	complex Display addr;
-	print("QLock qlock {\n");
-	QLock(addr.qlock);
-	print("}\n");
-	print("	locking	", addr.locking, "\n");
-	print("	dirno	", addr.dirno, "\n");
-	print("	fd	", addr.fd, "\n");
-	print("	reffd	", addr.reffd, "\n");
-	print("	ctlfd	", addr.ctlfd, "\n");
-	print("	imageid	", addr.imageid, "\n");
-	print("	$local	", addr.$local, "\n");
-	print("	error	", addr.error\Y, "\n");
-	print("	devdir	", addr.devdir\Y, "\n");
-	print("	windir	", addr.windir\Y, "\n");
-	print("	oldlabel	", addr.oldlabel, "\n");
-	print("	dataqid	", addr.dataqid, "\n");
-	print("	white	", addr.white\Y, "\n");
-	print("	black	", addr.black\Y, "\n");
-	print("	opaque	", addr.opaque\Y, "\n");
-	print("	transparent	", addr.transparent\Y, "\n");
-	print("	image	", addr.image\Y, "\n");
-	print("	buf	", addr.buf\Y, "\n");
-	print("	bufsize	", addr.bufsize, "\n");
-	print("	bufp	", addr.bufp\Y, "\n");
-	print("	defaultfont	", addr.defaultfont\Y, "\n");
-	print("	defaultsubfont	", addr.defaultsubfont\Y, "\n");
-	print("	windows	", addr.windows\Y, "\n");
-	print("	screenimage	", addr.screenimage\Y, "\n");
-	print("	_isnewdisplay	", addr._isnewdisplay, "\n");
-};
-
-sizeofImage = 80;
-aggr Image
-{
-	'A' Display 0 display;
-	'D' 8 id;
-	Rectangle 16 r;
-	Rectangle 32 clipr;
-	'D' 48 depth;
-	'U' 52 chan;
-	'D' 56 repl;
-	'A' Screen 64 screen;
-	'A' Image 72 next;
-};
-
-defn
-Image(addr) {
-	complex Image addr;
-	print("	display	", addr.display\Y, "\n");
-	print("	id	", addr.id, "\n");
-	print("Rectangle r {\n");
-	Rectangle(addr.r);
-	print("}\n");
-	print("Rectangle clipr {\n");
-	Rectangle(addr.clipr);
-	print("}\n");
-	print("	depth	", addr.depth, "\n");
-	print("	chan	", addr.chan, "\n");
-	print("	repl	", addr.repl, "\n");
-	print("	screen	", addr.screen\Y, "\n");
-	print("	next	", addr.next\Y, "\n");
-};
-
-sizeofRGB = 16;
-aggr RGB
-{
-	'U' 0 red;
-	'U' 4 green;
-	'U' 8 blue;
-};
-
-defn
-RGB(addr) {
-	complex RGB addr;
-	print("	red	", addr.red, "\n");
-	print("	green	", addr.green, "\n");
-	print("	blue	", addr.blue, "\n");
-};
-
-sizeofFontchar = 8;
-aggr Fontchar
-{
-	'D' 0 x;
-	'b' 4 top;
-	'b' 5 bottom;
-	'C' 6 left;
-	'b' 7 width;
-};
-
-defn
-Fontchar(addr) {
-	complex Fontchar addr;
-	print("	x	", addr.x, "\n");
-	print("	top	", addr.top, "\n");
-	print("	bottom	", addr.bottom, "\n");
-	print("	left	", addr.left, "\n");
-	print("	width	", addr.width, "\n");
-};
-
-sizeofSubfont = 40;
-aggr Subfont
-{
-	'Y' 0 name;
-	'd' 8 n;
-	'b' 10 height;
-	'C' 11 ascent;
-	'A' Fontchar 16 info;
-	'A' Image 24 bits;
-	'D' 32 ref;
-};
-
-defn
-Subfont(addr) {
-	complex Subfont addr;
-	print("	name	", addr.name\Y, "\n");
-	print("	n	", addr.n, "\n");
-	print("	height	", addr.height, "\n");
-	print("	ascent	", addr.ascent, "\n");
-	print("	info	", addr.info\Y, "\n");
-	print("	bits	", addr.bits\Y, "\n");
-	print("	ref	", addr.ref, "\n");
-};
-
-LOG2NFCACHE = 6;
-NFCACHE = 64;
-NFLOOK = 5;
-NFSUBF = 2;
-MAXFCACHE = 1029;
-MAXSUBF = 50;
-DSUBF = 4;
-SUBFAGE = 10000;
-CACHEAGE = 10000;
-sizeofCachefont = 32;
-aggr Cachefont
-{
-	'U' 0 min;
-	'U' 4 max;
-	'D' 8 offset;
-	'Y' 16 name;
-	'Y' 24 subfontname;
-};
-
-defn
-Cachefont(addr) {
-	complex Cachefont addr;
-	print("	min	", addr.min, "\n");
-	print("	max	", addr.max, "\n");
-	print("	offset	", addr.offset, "\n");
-	print("	name	", addr.name\Y, "\n");
-	print("	subfontname	", addr.subfontname\Y, "\n");
-};
-
-sizeofCacheinfo = 16;
-aggr Cacheinfo
-{
-	'u' 0 x;
-	'b' 2 width;
-	'C' 3 left;
-	'U' 4 value;
-	'u' 8 age;
-};
-
-defn
-Cacheinfo(addr) {
-	complex Cacheinfo addr;
-	print("	x	", addr.x, "\n");
-	print("	width	", addr.width, "\n");
-	print("	left	", addr.left, "\n");
-	print("	value	", addr.value, "\n");
-	print("	age	", addr.age, "\n");
-};
-
-sizeofCachesubf = 24;
-aggr Cachesubf
-{
-	'U' 0 age;
-	'A' Cachefont 8 cf;
-	'A' Subfont 16 f;
-};
-
-defn
-Cachesubf(addr) {
-	complex Cachesubf addr;
-	print("	age	", addr.age, "\n");
-	print("	cf	", addr.cf\Y, "\n");
-	print("	f	", addr.f\Y, "\n");
-};
-
-sizeofFont = 72;
-aggr Font
-{
-	'Y' 0 name;
-	'A' Display 8 display;
-	'd' 16 height;
-	'd' 18 ascent;
-	'd' 20 width;
-	'd' 22 nsub;
-	'U' 24 age;
-	'D' 28 maxdepth;
-	'D' 32 ncache;
-	'D' 36 nsubf;
-	'A' Cacheinfo 40 cache;
-	'A' Cachesubf 48 subf;
-	'A' Cachefont 56 sub;
-	'A' Image 64 cacheimage;
-};
-
-defn
-Font(addr) {
-	complex Font addr;
-	print("	name	", addr.name\Y, "\n");
-	print("	display	", addr.display\Y, "\n");
-	print("	height	", addr.height, "\n");
-	print("	ascent	", addr.ascent, "\n");
-	print("	width	", addr.width, "\n");
-	print("	nsub	", addr.nsub, "\n");
-	print("	age	", addr.age, "\n");
-	print("	maxdepth	", addr.maxdepth, "\n");
-	print("	ncache	", addr.ncache, "\n");
-	print("	nsubf	", addr.nsubf, "\n");
-	print("	cache	", addr.cache\Y, "\n");
-	print("	subf	", addr.subf\Y, "\n");
-	print("	sub	", addr.sub\Y, "\n");
-	print("	cacheimage	", addr.cacheimage\Y, "\n");
-};
-
-complex Point ZP;
-complex Rectangle ZR;
-complex Display display;
-complex Font font;
-complex Image screen;
-complex Screen _screen;
-Nqwds = 2;
-Nqshift = 5;
-Nqmask = -1;
-Nqbits = 64;
-sizeofChannel = 48;
-aggr Channel
-{
-	'D' 0 s;
-	'U' 4 f;
-	'U' 8 n;
-	'D' 12 e;
-	'D' 16 freed;
-	'Y' 24 qentry;
-	'D' 32 nentry;
-	'D' 36 closed;
-	'a' 40 v;
-};
-
-defn
-Channel(addr) {
-	complex Channel addr;
-	print("	s	", addr.s, "\n");
-	print("	f	", addr.f, "\n");
-	print("	n	", addr.n, "\n");
-	print("	e	", addr.e, "\n");
-	print("	freed	", addr.freed, "\n");
-	print("	qentry	", addr.qentry\Y, "\n");
-	print("	nentry	", addr.nentry, "\n");
-	print("	closed	", addr.closed, "\n");
-	print("	v	", addr.v, "\n");
-};
-
-CHANEND = 0;
-CHANSND = 1;
-CHANRCV = 2;
-CHANNOP = 3;
-CHANNOBLK = 4;
-sizeofAlt = 48;
-aggr Alt
-{
-	'A' Channel 0 c;
-	'Y' 8 v;
-	'D' 16 op;
-	'Y' 24 err;
-	'A' Channel 32 tag;
-	'D' 40 entryno;
-};
-
-defn
-Alt(addr) {
-	complex Alt addr;
-	print("	c	", addr.c\Y, "\n");
-	print("	v	", addr.v\Y, "\n");
-	print("	op	", addr.op, "\n");
-	print("	err	", addr.err\Y, "\n");
-	print("	tag	", addr.tag\Y, "\n");
-	print("	entryno	", addr.entryno, "\n");
-};
-
-sizeofRef = 8;
-aggr Ref
-{
-	'D' 0 ref;
-};
-
-defn
-Ref(addr) {
-	complex Ref addr;
-	print("	ref	", addr.ref, "\n");
-};
-
-sizeofCursor = 72;
-aggr Cursor
-{
-	Point 0 offset;
-	'a' 8 clr;
-	'a' 40 set;
-};
-
-defn
-Cursor(addr) {
-	complex Cursor addr;
-	print("Point offset {\n");
-	Point(addr.offset);
-	print("}\n");
-	print("	clr	", addr.clr, "\n");
-	print("	set	", addr.set, "\n");
-};
-
-sizeofMouse = 24;
-aggr Mouse
-{
-	'D' 0 buttons;
-	Point 8 xy;
-	'U' 16 msec;
-};
-
-defn
-Mouse(addr) {
-	complex Mouse addr;
-	print("	buttons	", addr.buttons, "\n");
-	print("Point xy {\n");
-	Point(addr.xy);
-	print("}\n");
-	print("	msec	", addr.msec, "\n");
-};
-
-sizeofMousectl = 72;
-aggr Mousectl
-{
-	{
-	'D' 0 buttons;
-	Point 8 xy;
-	'U' 16 msec;
-	};
-	'A' Channel 24 c;
-	'A' Channel 32 resizec;
-	'Y' 40 file;
-	'D' 48 mfd;
-	'D' 52 cfd;
-	'D' 56 pid;
-	'A' Image 64 image;
-};
-
-defn
-Mousectl(addr) {
-	complex Mousectl addr;
-	print("Mouse {\n");
-		Mouse(addr+0);
-	print("}\n");
-	print("	c	", addr.c\Y, "\n");
-	print("	resizec	", addr.resizec\Y, "\n");
-	print("	file	", addr.file\Y, "\n");
-	print("	mfd	", addr.mfd, "\n");
-	print("	cfd	", addr.cfd, "\n");
-	print("	pid	", addr.pid, "\n");
-	print("	image	", addr.image\Y, "\n");
-};
-
-sizeofMenu = 24;
-aggr Menu
-{
-	'Y' 0 item;
-	'Y' 8 gen;
-	'D' 16 lasthit;
-};
-
-defn
-Menu(addr) {
-	complex Menu addr;
-	print("	item	", addr.item\Y, "\n");
-	print("	gen	", addr.gen\Y, "\n");
-	print("	lasthit	", addr.lasthit, "\n");
-};
-
-sizeofKeyboardctl = 32;
-aggr Keyboardctl
-{
-	'A' Channel 0 c;
-	'Y' 8 file;
-	'D' 16 consfd;
-	'D' 20 ctlfd;
-	'D' 24 pid;
-};
-
-defn
-Keyboardctl(addr) {
-	complex Keyboardctl addr;
-	print("	c	", addr.c\Y, "\n");
-	print("	file	", addr.file\Y, "\n");
-	print("	consfd	", addr.consfd, "\n");
-	print("	ctlfd	", addr.ctlfd, "\n");
-	print("	pid	", addr.pid, "\n");
-};
-
-KF = 61440;
-Spec = 63488;
-PF = 63520;
-Kview = 63488;
-Khome = 61453;
-Kup = 61454;
-Kdown = 63488;
-Kpgup = 61455;
-Kprint = 61456;
-Kleft = 61457;
-Kright = 61458;
-Kpgdown = 61459;
-Kins = 61460;
-Kalt = 61461;
-Kshift = 61462;
-Kctl = 61463;
-Kend = 61464;
-Kscroll = 61465;
-Kscrolloneup = 61472;
-Kscrollonedown = 61473;
-Ksoh = 1;
-Kstx = 2;
-Ketx = 3;
-Keof = 4;
-Kenq = 5;
-Kack = 6;
-Kbs = 8;
-Knack = 21;
-Ketb = 23;
-Kdel = 127;
-Kesc = 27;
-Kbreak = 63585;
-Kcaps = 63588;
-Knum = 63589;
-Kmiddle = 63590;
-Kaltgr = 63591;
-Kmod4 = 63592;
-Kmouse = 63744;
-BACK = 0;
-HIGH = 1;
-BORD = 2;
-TEXT = 3;
-HTEXT = 4;
-NCOL = 5;
-sizeof_2_ = 8;
-aggr _2_
-{
-	'd' 0 bc;
-	'd' 2 minwid;
-};
-
-defn
-_2_(addr) {
-	complex _2_ addr;
-	print("	bc	", addr.bc, "\n");
-	print("	minwid	", addr.minwid, "\n");
-};
-
-sizeof_3_ = 8;
-aggr _3_
-{
-	'Y' 0 ptr;
-	{
-	'd' 0 bc;
-	'd' 2 minwid;
-	};
-};
-
-defn
-_3_(addr) {
-	complex _3_ addr;
-	print("	ptr	", addr.ptr\Y, "\n");
-	print("_2_ {\n");
-		_2_(addr+0);
-	print("}\n");
-};
-
-sizeofFrbox = 16;
-aggr Frbox
-{
-	'D' 0 wid;
-	'D' 4 nrune;
-	{
-	'Y' 8 ptr;
-	{
-	'd' 8 bc;
-	'd' 10 minwid;
-	};
-	};
-};
-
-defn
-Frbox(addr) {
-	complex Frbox addr;
-	print("	wid	", addr.wid, "\n");
-	print("	nrune	", addr.nrune, "\n");
-	print("_3_ {\n");
-		_3_(addr+8);
-	print("}\n");
-};
-
-complex Font font;
-complex Display display;
-sizeofFrame = 160;
-aggr Frame
-{
-	'A' Font 0 font;
-	'A' Display 8 display;
-	'A' Image 16 b;
-	'a' 24 cols;
-	Rectangle 64 r;
-	Rectangle 80 entire;
-	'Y' 96 scroll;
-	'A' Frbox 104 box;
-	'U' 112 p0;
-	'U' 116 p1;
-	'u' 120 nbox;
-	'u' 122 nalloc;
-	'u' 124 maxtab;
-	'u' 126 nchars;
-	'u' 128 nlines;
-	'u' 130 maxlines;
-	'u' 132 lastlinefull;
-	'u' 134 modified;
-	'A' Image 136 tick;
-	'A' Image 144 tickback;
-	'D' 152 ticked;
-};
-
-defn
-Frame(addr) {
-	complex Frame addr;
-	print("	font	", addr.font\Y, "\n");
-	print("	display	", addr.display\Y, "\n");
-	print("	b	", addr.b\Y, "\n");
-	print("	cols	", addr.cols, "\n");
-	print("Rectangle r {\n");
-	Rectangle(addr.r);
-	print("}\n");
-	print("Rectangle entire {\n");
-	Rectangle(addr.entire);
-	print("}\n");
-	print("	scroll	", addr.scroll\Y, "\n");
-	print("	box	", addr.box\Y, "\n");
-	print("	p0	", addr.p0, "\n");
-	print("	p1	", addr.p1, "\n");
-	print("	nbox	", addr.nbox, "\n");
-	print("	nalloc	", addr.nalloc, "\n");
-	print("	maxtab	", addr.maxtab, "\n");
-	print("	nchars	", addr.nchars, "\n");
-	print("	nlines	", addr.nlines, "\n");
-	print("	maxlines	", addr.maxlines, "\n");
-	print("	lastlinefull	", addr.lastlinefull, "\n");
-	print("	modified	", addr.modified, "\n");
-	print("	tick	", addr.tick\Y, "\n");
-	print("	tickback	", addr.tickback\Y, "\n");
-	print("	ticked	", addr.ticked, "\n");
-};
-
-None = 0;
-Some = 1;
-All = 2;
-Clicktime = 500;
-sizeofFlayer = 280;
-aggr Flayer
-{
-	Frame 0 f;
-	'D' 160 origin;
-	'D' 164 p0;
-	'D' 168 p1;
-	'D' 172 click;
-	Point 176 warpto;
-	'Y' 184 textfn;
-	'D' 192 user0;
-	'Y' 200 user1;
-	Rectangle 208 entire;
-	Rectangle 224 scroll;
-	Rectangle 240 lastsr;
-	'D' 256 visible;
-	'A' Flayer 264 lprev;
-	'A' Flayer 272 lnext;
-};
-
-defn
-Flayer(addr) {
-	complex Flayer addr;
-	print("Frame f {\n");
-	Frame(addr.f);
-	print("}\n");
-	print("	origin	", addr.origin, "\n");
-	print("	p0	", addr.p0, "\n");
-	print("	p1	", addr.p1, "\n");
-	print("	click	", addr.click, "\n");
-	print("Point warpto {\n");
-	Point(addr.warpto);
-	print("}\n");
-	print("	textfn	", addr.textfn\Y, "\n");
-	print("	user0	", addr.user0, "\n");
-	print("	user1	", addr.user1\Y, "\n");
-	print("Rectangle entire {\n");
-	Rectangle(addr.entire);
-	print("}\n");
-	print("Rectangle scroll {\n");
-	Rectangle(addr.scroll);
-	print("}\n");
-	print("Rectangle lastsr {\n");
-	Rectangle(addr.lastsr);
-	print("}\n");
-	print("	visible	", addr.visible, "\n");
-	print("	lprev	", addr.lprev\Y, "\n");
-	print("	lnext	", addr.lnext\Y, "\n");
-};
-
-Up = 0;
-Down = 1;
-Kbel = 7;
-Ksyn = 22;
-sizeofSection = 24;
-aggr Section
-{
-	'D' 0 nrunes;
-	'Y' 8 text;
-	'A' Section 16 next;
-};
-
-defn
-Section(addr) {
-	complex Section addr;
-	print("	nrunes	", addr.nrunes, "\n");
-	print("	text	", addr.text\Y, "\n");
-	print("	next	", addr.next\Y, "\n");
-};
-
-sizeofRasp = 16;
-aggr Rasp
-{
-	'D' 0 nrunes;
-	'A' Section 8 sect;
-};
-
-defn
-Rasp(addr) {
-	complex Rasp addr;
-	print("	nrunes	", addr.nrunes, "\n");
-	print("	sect	", addr.sect\Y, "\n");
-};
-
-sizeofText = 2824;
-aggr Text
-{
-	Rasp 0 rasp;
-	'd' 16 nwin;
-	'd' 18 front;
-	'u' 20 tag;
-	'C' 22 lock;
-	'a' 24 l;
-};
-
-defn
-Text(addr) {
-	complex Text addr;
-	print("Rasp rasp {\n");
-	Rasp(addr.rasp);
-	print("}\n");
-	print("	nwin	", addr.nwin, "\n");
-	print("	front	", addr.front, "\n");
-	print("	tag	", addr.tag, "\n");
-	print("	lock	", addr.lock, "\n");
-	print("	l	", addr.l, "\n");
-};
-
-sizeofReadbuf = 8200;
-aggr Readbuf
-{
-	'd' 0 n;
-	'a' 2 data;
-};
-
-defn
-Readbuf(addr) {
-	complex Readbuf addr;
-	print("	n	", addr.n, "\n");
-	print("	data	", addr.data, "\n");
-};
-
-RHost = 0;
-RKeyboard = 1;
-RMouse = 2;
-RPlumb = 3;
-RResize = 4;
-NRes = 5;
-complex Text text;
-complex Cursor deadmouse;
-complex Cursor lockarrow;
-complex Cursor cursor;
-complex Flayer which;
-complex Flayer work;
-complex Text cmd;
-complex Mousectl mousectl;
-complex Keyboardctl keyboardctl;
-complex Mouse mousep;
-complex Channel plumbc;
-complex Channel hostc;
-Tversion = 0;
-Tstartcmdfile = 1;
-Tcheck = 2;
-Trequest = 3;
-Torigin = 4;
-Tstartfile = 5;
-Tworkfile = 6;
-Ttype = 7;
-Tcut = 8;
-Tpaste = 9;
-Tsnarf = 10;
-Tstartnewfile = 11;
-Twrite = 12;
-Tclose = 13;
-Tlook = 14;
-Tsearch = 15;
-Tsend = 16;
-Tdclick = 17;
-Tstartsnarf = 18;
-Tsetsnarf = 19;
-Tack = 20;
-Texit = 21;
-Tplumb = 22;
-Ttclick = 23;
-Tmenucmd = 24;
-Tmenucmdsend = 25;
-TMAX = 26;
-Hversion = 0;
-Hbindname = 1;
-Hcurrent = 2;
-Hnewname = 3;
-Hmovname = 4;
-Hgrow = 5;
-Hcheck0 = 6;
-Hcheck = 7;
-Hunlock = 8;
-Hdata = 9;
-Horigin = 10;
-Hunlockfile = 11;
-Hsetdot = 12;
-Hgrowdata = 13;
-Hmoveto = 14;
-Hclean = 15;
-Hdirty = 16;
-Hcut = 17;
-Hsetpat = 18;
-Hdelname = 19;
-Hclose = 20;
-Hsetsnarf = 21;
-Hsnarflen = 22;
-Hack = 23;
-Hexit = 24;
-Hplumb = 25;
-Hmenucmd = 26;
-HMAX = 27;
-sizeofHeader = 8;
-aggr Header
-{
-	'b' 0 type;
-	'b' 1 count0;
-	'b' 2 count1;
-	'a' 3 data;
-};
-
-defn
-Header(addr) {
-	complex Header addr;
-	print("	type	", addr.type, "\n");
-	print("	count0	", addr.count0, "\n");
-	print("	count1	", addr.count1, "\n");
-	print("	data	", addr.data, "\n");
-};
-
-complex Text cmd;
-complex Cursor cursor;
-complex Flayer which;
-complex Flayer work;
-complex Flayer flru;
-complex Text threadmain:t;
-complex Rectangle threadmain:r;
-complex Flayer threadmain:nwhich;
-complex Flayer flunlink:fl;
-complex Flayer fllinkhead:fl;
-complex Flayer warpmouse:l;
-complex Point warpmouse:p;
-complex Flayer current:nw;
-complex Text current:t;
-complex Flayer cycle:l;
-complex Flayer closeup:l;
-complex Text closeup:t;
-complex Text findl:t;
-complex Flayer duplicate:l;
-complex Rectangle duplicate:r;
-complex Font duplicate:f;
-complex Text duplicate:t;
-complex Flayer duplicate:nl;
-complex Text snarf:t;
-complex Flayer snarf:l;
-complex Text cut:t;
-complex Flayer cut:l;
-complex Text paste:t;
-complex Flayer scrorigin:l;
-complex Text scrorigin:t;
-complex Rasp raspc:r;
-complex Rasp getcol:r;
-complex Rasp del:r;
-complex Rasp ctlw:r;
-complex Rasp ctlu:r;
-complex Flayer center:l;
-complex Text center:t;
-complex Flayer onethird:l;
-complex Text onethird:t;
-complex Rectangle onethird:s;
-complex Text flushtyping:t;
-complex Flayer type:l;
-complex Text type:t;
-complex Flayer gettext:l;
-complex Text gettext:t;
-complex Flayer scrtotal:l;