1%!
2%%BoundingBox: 35 711 289 757
3%%Title: cons-cell-diagram1
4%%CreationDate: Wed Mar  8 14:26:58 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7%	Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
11%   Free Software Foundation, Inc.
12%
13% This file is part of GNU Emacs.
14%
15% GNU Emacs is free software; you can redistribute it and/or modify
16% it under the terms of the GNU General Public License as published by
17% the Free Software Foundation; either version 2, or (at your option)
18% any later version.
19%
20% GNU Emacs is distributed in the hope that it will be useful,
21% but WITHOUT ANY WARRANTY; without even the implied warranty of
22% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23% GNU General Public License for more details.
24%
25% You should have received a copy of the GNU General Public License
26% along with GNU Emacs; see the file COPYING.  If not, write to
27% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
28% Boston, MA 02110-1301, USA.
29
30/tgifdict 132 dict def
31tgifdict begin
32
33%
34%	Using a zero value radius for an ellipse or an arc would result
35%		in a non-invertible CTM matrix which causes problem when this
36%		when this PostScript is wrapped inside other routines, such as
37%		the multi.ps package from
38%		ftp.ucc.su.oz.au:/pub/ps_printing/multi.  You can overcome such
39%		error by uncommenting the sole line of the procedure below:
40%
41/tgif_min_radius
42 {
43%    dup 0.01 lt { pop 0.01 } if
44 } bind def
45
46/tgifellipsedict 6 dict def
47tgifellipsedict /mtrx matrix put
48
49/tgifellipse
50 { tgifellipsedict begin
51      /yrad exch def
52      /xrad exch def
53      /y exch def
54      /x exch def
55      /savematrix mtrx currentmatrix def
56      x y translate
57      xrad yrad scale
58      0 0 1 0 360 arc
59      savematrix setmatrix
60   end
61 } def
62
63/tgifarrowtipdict 8 dict def
64tgifarrowtipdict /mtrx matrix put
65
66/tgifarrowtip
67 { tgifarrowtipdict begin
68      /dy exch def
69      /dx exch def
70      /h exch def
71      /w exch def
72      /y exch def
73      /x exch def
74      /savematrix mtrx currentmatrix def
75      x y translate
76      dy dx atan rotate
77      0 0 moveto
78      w neg h lineto
79      w neg h neg lineto
80      savematrix setmatrix
81   end
82 } def
83
84/tgifarcdict 8 dict def
85tgifarcdict /mtrx matrix put
86
87/tgifarcn
88 { tgifarcdict begin
89      /endangle exch def
90      /startangle exch def
91      /yrad exch def
92      /xrad exch def
93      /y exch def
94      /x exch def
95      /savematrix mtrx currentmatrix def
96      x y translate
97      xrad yrad scale
98      0 0 1 startangle endangle arc
99      savematrix setmatrix
100   end
101 } def
102
103/tgifarc
104 { tgifarcdict begin
105      /endangle exch def
106      /startangle exch def
107      /yrad exch def
108      /xrad exch def
109      /y exch def
110      /x exch def
111      /savematrix mtrx currentmatrix def
112      x y translate
113      xrad yrad scale
114      0 0 1 startangle endangle arcn
115      savematrix setmatrix
116   end
117 } def
118
119/tgifsetuserscreendict 22 dict def
120tgifsetuserscreendict begin
121   /tempctm matrix def
122   /temprot matrix def
123   /tempscale matrix def
124
125   /concatprocs
126    { /proc2 exch cvlit def
127      /proc1 exch cvlit def
128      /newproc proc1 length proc2 length add array def
129      newproc 0 proc1 putinterval
130      newproc proc1 length proc2 putinterval
131      newproc cvx
132    } def
133   /resmatrix matrix def
134   /findresolution
135    { 72 0 resmatrix defaultmatrix dtransform
136      /yres exch def /xres exch def
137      xres dup mul yres dup mul add sqrt
138    } def
139end
140
141/tgifsetuserscreen
142 { tgifsetuserscreendict begin
143      /spotfunction exch def
144      /screenangle exch def
145      /cellsize exch def
146
147      /m tempctm currentmatrix def
148      /rm screenangle temprot rotate def
149      /sm cellsize dup tempscale scale def
150
151      sm rm m m concatmatrix m concatmatrix pop
152
153      1 0 m dtransform /y1 exch def /x1 exch def
154
155      /veclength x1 dup mul y1 dup mul add sqrt def
156      /frequency findresolution veclength div def
157
158      /newscreenangle y1 x1 atan def
159
160      m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
161
162      {{neg} /spotfunction load concatprocs
163         /spotfunction exch def
164      } if
165
166      frequency newscreenangle /spotfunction load setscreen
167   end
168 } def
169
170/tgifsetpatterndict 18 dict def
171tgifsetpatterndict begin
172   /bitison
173    { /ybit exch def /xbit exch def
174      /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
175
176      /mask 1 7 xbit 8 mod sub bitshift def
177      bytevalue mask and 0 ne
178    } def
179end
180
181/tgifbitpatternspotfunction
182 { tgifsetpatterndict begin
183      /y exch def /x exch def
184
185      /xindex x 1 add 2 div bpside mul cvi def
186      /yindex y 1 add 2 div bpside mul cvi def
187
188      xindex yindex bitison
189       { /onbits onbits 1 add def 1 }
190       { /offbits offbits 1 add def 0 }
191       ifelse
192   end
193 } def
194
195/tgifsetpattern
196 { tgifsetpatterndict begin
197      /cellsz exch def
198      /angle exch def
199      /bwidth exch def
200      /bpside exch def
201      /bstring exch def
202
203      /onbits 0 def /offbits 0 def
204      cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
205      {} settransfer
206      offbits offbits onbits add div setgray
207   end
208 } def
209
210/tgifxpmdict 4 dict def
211/tgifbwpicstr 1 string def
212/tgifcolorpicstr 3 string def
213
214/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
215
216/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
217
218/tgifbwspot
219 { tgifxpmdict begin
220      /index exch def
221      tgifbwpicstr 0
222      pixels index 3 mul 3 getinterval aload pop
223      255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
224      cvi put
225      tgifbwpicstr
226   end
227 } def
228
229/tgifcolorspot
230 { tgifxpmdict begin
231      /index exch def
232      pixels index 3 mul 3 getinterval aload pop
233      255 mul cvi tgifcolorpicstr 2 3 -1 roll put
234      255 mul cvi tgifcolorpicstr 1 3 -1 roll put
235      255 mul cvi tgifcolorpicstr 0 3 -1 roll put
236      tgifcolorpicstr
237   end
238 } def
239
240/tgifnewcolorspot
241 { tgifxpmdict begin
242      /index exch def
243      pixels index 3 mul 3 getinterval aload pop setrgbcolor
244   end
245 } def
246
247/tgifcolordict 4 dict def
248
249/colorimage where
250 { pop }
251 { /colorimage
252   { tgifcolordict begin
253        pop pop pop pop pop
254        /ih exch def
255        /iw exch def
256        /x 0 def
257        /y 0 def
258        1 1 ih
259         { pop 1 1 iw
260            { pop currentfile
261              tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
262              x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
263              closepath fill
264              /x x 1 add def
265            } for
266           /y y 1 add def
267           /x 0 def
268         } for
269     end
270   } def
271 } ifelse
272
273/tgifpatdict 10 dict def
274
275/tgifpatbyte
276 { currentdict /retstr get exch
277   pat i cellsz mod get put
278 } def
279
280/tgifpatproc
281 { 0 1 widthlim {tgifpatbyte} for retstr
282   /i i 1 add def
283 } def
284
285/tgifpatfill
286 { tgifpatdict begin
287      /h exch def
288      /w exch def
289      /lty exch def
290      /ltx exch def
291      /cellsz exch def
292      /pat exch def
293
294      /widthlim w cellsz div cvi 1 sub def
295      /retstr widthlim 1 add string def
296      /i 0 def
297
298      ltx lty translate
299      w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
300      ltx neg lty neg translate
301   end
302 } def
303
304/pat1 <ffffffffffffffff> def
305/pat2 <0000000000000000> def
306/pat3 <8000000008000000> def
307/pat4 <8800000022000000> def
308/pat5 <8800220088002200> def
309/pat6 <8822882288228822> def
310/pat7 <aa55aa55aa55aa55> def
311/pat8 <77dd77dd77dd77dd> def
312/pat9 <77ffddff77ffddff> def
313/pat10 <77ffffff77ffffff> def
314/pat11 <7fffffff7fffffff> def
315/pat12 <8040200002040800> def
316/pat13 <40a00000040a0000> def
317/pat14 <ff888888ff888888> def
318/pat15 <ff808080ff080808> def
319/pat16 <f87422478f172271> def
320/pat17 <038448300c020101> def
321/pat18 <081c22c180010204> def
322/pat19 <8080413e080814e3> def
323/pat20 <8040201008040201> def
324/pat21 <8844221188442211> def
325/pat22 <77bbddee77bbddee> def
326/pat23 <c1e070381c0e0783> def
327/pat24 <7fbfdfeff7fbfdfe> def
328/pat25 <3e1f8fc7e3f1f87c> def
329/pat26 <0102040810204080> def
330/pat27 <1122448811224488> def
331/pat28 <eeddbb77eeddbb77> def
332/pat29 <83070e1c3870e0c1> def
333/pat30 <fefdfbf7efdfbf7f> def
334/pat31 <7cf8f1e3c78f1f3e> def
335
336/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
337
338/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
339
340/tgifreencsmalldict 12 dict def
341/tgifReEncodeSmall
342 { tgifreencsmalldict begin
343      /newcodesandnames exch def
344      /newfontname exch def
345      /basefontname exch def
346
347      /basefontdict basefontname findfont def
348      /newfont basefontdict maxlength dict def
349
350      basefontdict
351      { exch dup /FID ne
352         { dup /Encoding eq
353            { exch dup length array copy newfont 3 1 roll put }
354            { exch newfont 3 1 roll put }
355            ifelse
356         }
357         { pop pop }
358         ifelse
359      }
360      forall
361
362      newfont /FontName newfontname put
363      newcodesandnames aload pop
364
365      newcodesandnames length 2 idiv
366      { newfont /Encoding get 3 1 roll put}
367      repeat
368
369      newfontname newfont definefont pop
370   end
371 } def
372
373/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
374
375/tgifboxdict 6 dict def
376/tgifboxstroke
377 { tgifboxdict begin
378      /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
379      1.415 setmiterlimit
380      w 1 eq { w setlinewidth } if
381      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
382      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
383      pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
384      pat pat1 ne pat pat2 ne and { grestore } if
385      w 1 eq { 1 setlinewidth } if
386      1 setmiterlimit
387   end
388 } def
389/tgifboxfill
390 { tgifboxdict begin
391      /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
392      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
393      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
394      pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
395      pat pat1 ne pat pat2 ne and { grestore } if
396   end
397 } def
398
399end
400
401%%PageBoundingBox: 35 711 289 757
402tgifdict begin
403/tgifsavedpage save def
404
4051 setmiterlimit
4061 setlinewidth
407
4080 setgray
409
41072 0 mul 72 11.00 mul translate
41172 128 div 100 mul 100 div dup neg scale
412
413gsave
414
415% BOX
416gsave
417   1.415 setmiterlimit
418   newpath
419      66 66 moveto 130 66 lineto 130 98 lineto 66 98 lineto
420   closepath stroke
421   1 setmiterlimit
422grestore
423
424% POLY/OPEN-SPLINE
425gsave
426   newpath
427      98 66 moveto
428      98 98 lineto
429   stroke
430grestore
431
432% POLY/OPEN-SPLINE
433gsave
434   newpath
435      114 82 moveto
436      0 80 atan dup cos 8 mul 194 exch sub
437      exch sin 8 mul 82 exch sub lineto
438   stroke
439grestore
440gsave
441   newpath
442      194 82 8 3 80 0 tgifarrowtip
443   closepath fill
444grestore
445
446% TEXT
4470 setgray
448/Courier findfont [17 0 0 -17 0 0] makefont setfont
449   gsave
450      146 136 moveto (rose) show
451   grestore
452
453% POLY/OPEN-SPLINE
454gsave
455   newpath
456      82 82 moveto
457      82 131 lineto
458      0 48 atan dup cos 8 mul 130 exch sub
459      exch sin 8 mul 131 exch sub lineto
460   stroke
461grestore
462gsave
463   newpath
464      130 131 8 3 48 0 tgifarrowtip
465   closepath fill
466grestore
467
468% BOX
469gsave
470   1.415 setmiterlimit
471   newpath
472      199 66 moveto 263 66 lineto 263 98 lineto 199 98 lineto
473   closepath stroke
474   1 setmiterlimit
475grestore
476
477% POLY/OPEN-SPLINE
478gsave
479   newpath
480      231 66 moveto
481      231 98 lineto
482   stroke
483grestore
484
485% POLY/OPEN-SPLINE
486gsave
487   newpath
488      247 82 moveto
489      0 93 atan dup cos 8 mul 340 exch sub
490      exch sin 8 mul 82 exch sub lineto
491   stroke
492grestore
493gsave
494   newpath
495      340 82 8 3 93 0 tgifarrowtip
496   closepath fill
497grestore
498
499% TEXT
5000 setgray
501/Courier findfont [17 0 0 -17 0 0] makefont setfont
502   gsave
503      279 136 moveto (violet) show
504   grestore
505
506% POLY/OPEN-SPLINE
507gsave
508   newpath
509      215 82 moveto
510      215 131 lineto
511      0 48 atan dup cos 8 mul 263 exch sub
512      exch sin 8 mul 131 exch sub lineto
513   stroke
514grestore
515gsave
516   newpath
517      263 131 8 3 48 0 tgifarrowtip
518   closepath fill
519grestore
520
521% BOX
522gsave
523   1.415 setmiterlimit
524   newpath
525      342 64 moveto 406 64 lineto 406 96 lineto 342 96 lineto
526   closepath stroke
527   1 setmiterlimit
528grestore
529
530% POLY/OPEN-SPLINE
531gsave
532   newpath
533      373 64 moveto
534      373 96 lineto
535   stroke
536grestore
537
538% POLY/OPEN-SPLINE
539gsave
540   newpath
541      389 81 moveto
542      0 48 atan dup cos 8 mul 437 exch sub
543      exch sin 8 mul 81 exch sub lineto
544   stroke
545grestore
546gsave
547   newpath
548      437 81 8 3 48 0 tgifarrowtip
549   closepath fill
550grestore
551
552% TEXT
5530 setgray
554/Courier findfont [17 0 0 -17 0 0] makefont setfont
555   gsave
556      421 135 moveto (buttercup) show
557   grestore
558
559% POLY/OPEN-SPLINE
560gsave
561   newpath
562      357 81 moveto
563      357 130 lineto
564      0 48 atan dup cos 8 mul 405 exch sub
565      exch sin 8 mul 130 exch sub lineto
566   stroke
567grestore
568gsave
569   newpath
570      405 130 8 3 48 0 tgifarrowtip
571   closepath fill
572grestore
573
574% TEXT
5750 setgray
576/Courier findfont [17 0 0 -17 0 0] makefont setfont
577   gsave
578      449 87 moveto (nil) show
579   grestore
580
581grestore
582tgifsavedpage restore
583end
584%MatchingCreationDate: Wed Mar  8 14:26:58 1995
585