home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / sys / next / software / 1301 next >
Encoding:
Internet Message Format  |  1992-08-23  |  61.2 KB

  1. Path: sparky!uunet!stanford.edu!rutgers!princeton!zandtwerk.Princeton.EDU!tvz
  2. From: tvz@Princeton.EDU (Timothy Van Zandt)
  3. Newsgroups: comp.sys.next.software
  4. Subject: Announcing PSTricks v0.91: PostScript Macros for Generic TeX
  5. Keywords: PostScript
  6. Message-ID: <1992Aug23.174022.26467@Princeton.EDU>
  7. Date: 23 Aug 92 17:40:22 GMT
  8. Sender: news@Princeton.EDU (USENET News System)
  9. Organization: Princeton University
  10. Lines: 1337
  11. Originator: tvz@zandtwerk.Princeton.EDU
  12. Nntp-Posting-Host: zandtwerk.princeton.edu
  13.  
  14.  
  15. The most important change in v0.91 is that the \dbox macro has been
  16. replaced by a collection of very powerful and flexible node
  17. connection macros, which are good for trees, mathematical
  18. diagrams, and connecting information.
  19.  
  20. There are also some new graphics objects, including an arc
  21. object that allows arrowsheads, various curve interpolation
  22. objects, and some plotting macros.
  23.  
  24. For those who are are not familiar with it, PSTricks is a kitchen
  25. sink of PostScript-based TeX macros. Among other things, it is probably
  26. the most powerful TeX drawing package around. It can be used with
  27. most TeX macro packages, including Plain TeX, LaTeX, AmS-TeX
  28. and AmS-LaTeX.
  29.  
  30. There is nothing NeXT-specific about PSTricks, but because of DPS
  31. and TeXview, the NeXT is the perfect platform for using PSTricks.
  32. PSTricks was developed on a NeXT as well. PSTricks puts InstantTeX
  33. to good use, since when drawing diagrams it is very nice to have
  34. instant feedback.
  35.  
  36. Attached are a read-me file, and the TeX input and PostScript output
  37. for a test file, to give you a taste of the package.
  38.  
  39. PSTricks is available via anonymous ftp from the /pub directory
  40. at Princeton.EDU. You should also pick up pstricks.bug from the
  41. same place. Despite the warning at the beginning of the readme
  42. file, this release has proved to be stable.
  43.  
  44. Tim
  45. ---
  46. Timothy Van Zandt   (609)258-4050  tvz@Princeton.EDU (NeXTMail)
  47. Dept. of Economics,  Princeton University,  Princeton, NJ 08544
  48.  
  49.  
  50.  
  51. ***********************************************************************
  52. ****      "readme" file for PSTricks package, v0.91, 92/06/17      ****
  53. ***********************************************************************
  54.  
  55. Warning: This is a particularly unstable and preliminary release.
  56.  
  57. COPYRIGHT 1992, by Timothy Van Zandt, tvz@Princeton.EDU
  58.  
  59. DESCRIPTION:
  60.  
  61.   pstricks.tex is an extensive collection of PostScript macros that is
  62.   compatible with most TeX macro packages, including Plain TeX , LaTeX
  63.   and AmS-LaTeX. Included are macros for color, graphics, rotation,
  64.   trees and overlays. It has several special features:
  65.   * There is a wide variety of graphics (picture drawing) macros, with
  66.     a flexible interface and with color support. All lines and outlines
  67.     can be solid, dotted or dashed. Lines and curves can have arrowheads,
  68.     t-bars, brackets or circles on the ends. Regions can be filled
  69.     with solid colors, lines or crosshatch.
  70.   * There is support for polar and cartesian coordinate systems.
  71.   * There are macros for plots.
  72.   * Nested rotations can be made with respect to the physical page.
  73.   * There is flexible node macros, useful for trees, mathematical
  74.     diagrams, and linking information of any kind.
  75.   * There is a powerful loop macro that is useful for making pictures.
  76.   * There are macros for coloring or shading the cells of tables.
  77.   PSTricks lets you have your cake (TeX) and eat it too (PostScript)!
  78.   
  79. FILES:
  80.  
  81.   Inputs:
  82.     pstricks.tex : The main macro file, for use with a header file.
  83.     pstricks.sty : The same as pstricks.tex, but the .sty extension.
  84.     pstricks.con : The configuration file for pstricks.tex.
  85.  
  86.   Documentation:
  87.     pst-usr1.ps  : User's Guide, part I.
  88.     pst-usr2.ps  : User's Guide, part II.
  89.     pst-test.tex : A test file.
  90.     pst-read.me  : This file.
  91.     
  92.   Sources:
  93.     pstricks.doc : Documentation and code for pstricks.tex.
  94.     pst-code.tex : For typesetting pstricks.doc.
  95.     pst-user.tex : User's Guide.
  96.     tvz-hax.sty  : Macros for printing documentation.
  97.     2up.tex      : More macros for printing documentation.
  98.     npsfont.sty  : Used for printing the User's Guide.
  99.     pst-make.tex : For making a stripped input file and header file.
  100.     
  101.   Header:
  102.     pstricks.pro : A PostScript prologue (for use with dvips).
  103.  
  104. INSTALLATION FOR USERS OF ROKICKI'S DVIPS:
  105.  
  106.   1. Put the three input files where your TeX looks for inputs.
  107.      
  108.   2. Put the file pstricks.pro where dvips looks for inputs.
  109.      Probably /usr/lib/tex/ps on unix systems.
  110.     
  111.   3. Print pst-usr1.ps and pst-usr2.ps, which is the User's Guide
  112.      for pstricks.tex. The last few pages of pst-usr2.ps
  113.      are a Quick Reference.
  114.    
  115.   4. Have fun!
  116.   
  117. INSTALLATION FOR USERS OF OTHER DVI-TO-PS DRIVERS:
  118.  
  119.   PSTricks has only been tested extensively with Rokicki's dvips.
  120.   However, it should be able to adapted to other drivers with
  121.   similar capabilities.
  122.  
  123.   1. Print the User's Guide.
  124.   
  125.   2. Use pstricks.doc as your input file for now (rather than pstricks.tex).
  126.   
  127.   3. Examine the configuration file pstricks.con. Uncomment
  128.      the \iffalse...\fi surrounding the commands for dvips.
  129.      Try to define the required commands appropriately for you driver,
  130.      but don't use a header file yet (i.e., leave \pstheader
  131.      undefined).
  132.     
  133.   3. Run pst-test.tex through Plain TeX until you get things to work
  134.      as well as possible. You may not be able to use all of PSTricks features,
  135.      but if you can define \pstverb and \pstunit, you at least can use
  136.      all the graphics objects.
  137.      
  138.   4. When satisfied, run pst-make with Plain TeX or LaTeX. Put the
  139.      file pstricks.tex that is generated where you TeX looks for inputs,
  140.      along with pstricks.con and pstricks.sty. If you opt to generate
  141.      and use a header file, put this where your dvi driver looks for
  142.      such a beast. Then define \pstheader properly in the configuration
  143.      file. PSTRicks works much more quickly and generates smaller
  144.      PostScript files when used with the header file.
  145.   
  146. UPGRADING FROM PREVIOUS VERSIONS:
  147.  
  148.   Much has changed. You should reinstall the package in its entirety.
  149.   As previously announced, \dbox and \rotate have been removed. \psput
  150.   has been replaced by \rput, with new syntax. However, the command
  151.   \OldPsput defines \psput to work with the old syntax; the command
  152.   \NewPsput defines \psput to work with the new syntax. See the
  153.   "Changes" section below for more information.
  154.   
  155. TIPS FOR HACKERS:
  156.  
  157.   The file pstricks.doc contains the documentation and code, using
  158.   Frank Mittelbach's doc system. You can typeset this, if desired,
  159.   by running LaTeX on pst-code.tex. See pst-code.tex for details.
  160.   (However, the commentary is currently out of date.)
  161.   
  162.   If you want to modify the internals of PSTricks, don't use a
  163.   PostScript header file (i.e., don't use \pstheader in pstricks.con)
  164.   and use pstricks.doc as your input file. This allows you to modify
  165.   both the TeX and the PostScript macros.
  166.   
  167.   When you don't expect to make more changes for a while, run
  168.   pst-make to generate a new compact macro file and a new
  169.   PostScript header file (if desired). If using a header file,
  170.   don't forget to defined \pstheader in pstricks.con.
  171.  
  172. USING PSTRICKS WITH SUN' PAGEVIEW/NEWSPRINT/OPENWINDOWS
  173.  
  174.   Sun's PageView/NeWSPrint/OpenWindows have many bugs,
  175.   especially with the wrong combination of versions.
  176.   Workarounds for several of these have been coded into
  177.   PSTricks. However, arrows may sometimes do odd things
  178.   when used in landscape mode with dvips. Report other problems
  179.   to tvz@Princeton.
  180.  
  181. GETTING PSTRICKS
  182.  
  183.   The PSTricks package is available from the /pub directory at
  184.   Princeton.EDU, and at other archives.
  185.   
  186.   A bug list pstricks.bug is kept up-to-date on Princeton.EDU.
  187.   
  188.   Send requests to get on or off a mailing list for PSTricks to
  189.   tvz@Princeton.
  190.   
  191. PSTRICKS.TEX AND SEMINAR.STY
  192.  
  193.   The PSTricks package grew out of macros originally written for the
  194.   Seminar package.  seminar.sty is a LaTeX style for slides and notes.
  195.   seminar.sty, combined with pstricks.tex and your favorite macros for
  196.   inclusion of EPS files, make a complete TeX presentation software package.
  197.   
  198.   PSTricks v0.91 works with seminar.sty version 0.92, and maybe later
  199.   versions as well. The Seminar package is also available from
  200.   Princeton.EDU, and perhaps from wherever else you got PSTricks.
  201.   
  202. ACKNOWLEDGEMENTS: 
  203.  
  204.   The author is thankful to Frank Mittelbach for his  documentation system.
  205.   
  206.   The algorithm in the \psdoodle macro was adapted from a C program by
  207.   Shamim Zvonko Mohamed.
  208.   
  209.   The basic idea for the node macros is from Emma Pease's tree-dvips.sty.
  210.  
  211. COPYING:
  212.  
  213.   Copying of part or all of any file in the pstricks package
  214.   is allowed under the following conditions only:
  215.   (1) You may freely distribute unchanged copies of the files. Please
  216.       include the documentation when you do so.
  217.   (2) You may modify a renamed copy of any file, but only for personal
  218.       use or use within an organization.
  219.   (3) You may copy fragments from the files, for personal use or for use
  220.       in a macro package for distribution, as long as credit is given
  221.       where credit is due.
  222.  
  223.   You are NOT ALLOWED to take money for the distribution or use of
  224.   these files or modified versions or fragments thereof, except for
  225.   a nominal charge for copying etc.
  226.  
  227. BUGS:
  228.  
  229.   Too many to list, and who knows what they are anyway. These files are all
  230.   preliminary and unstable. Not for use as children's sleepware.
  231.   
  232.   Please report bugs, enhancements and other comments, especially positive
  233.   or negative experiences with DVI-to-PS converters and previewers, to
  234.  
  235.              Timothy Van Zandt, tvz@Princeton.edu.
  236.  
  237.   Thanks.
  238.  
  239. CHANGES:
  240.  
  241. Policy: These macros are preliminary, but future incompatible changes
  242. to the user interface will be minimized. (A promise broken once already.)
  243.  
  244. Key: In listings below,
  245.     + means addition,
  246.     * means change,
  247.     ! means change that may cause problems with old files.
  248.  
  249. v.9: Much internal code was changed, and additional features were added.
  250.   See the User's Guide for details.
  251.  
  252.  ! The syntax of \dline has changed several times.
  253.  
  254.  ! With \multido, the backslash should now be included with variable
  255.    names in the variable declarations.
  256.  
  257.  * Memory stats with LaTeX's article style:
  258.     40179 words of memory
  259.      2740 multiletter control
  260.  
  261.  
  262. v.91:
  263.  
  264.  * In spite of the many new features, the input file is smaller in bytes,
  265.    and runs significantly faster (at least if used with a header file).
  266.    The macros use up slightly more words of memory, and significantly
  267.    more command sequences. Here are the stats with LaTeX's article
  268.    style:
  269.      41586 words of memory
  270.       2966 multiletter control sequences
  271.        
  272.  ! \dbox and \rotate eliminated.
  273.  
  274.  ! \psput replaced by \rput, with new syntax:
  275.       OLD:  \psput[angle]<ref point>(x,y){stuff}
  276.       NEW:  \rput[ref point]{angle}(x,y){stuff}
  277.    \OldPsput sets up \psput with the old syntax (this may disappear some
  278.    day; keep it in a safe place if you expect to need it for a long time).
  279.    
  280.  ! System for specifying angles for nested rotations with \psput has changed.
  281.       OLD:  p0{angle}, p1{angle}, p2{angle}, etc.
  282.       NEW:  *angle  works like p0{angle}; p1{angle} capability eliminated.
  283.    N, S, E and W have same meaning as before.
  284.  
  285.  ! enddotsize parameter changed to dotsize.
  286.  
  287.  ! For specifying the origin as the baseline for the \pspicture
  288.    environment, leave the optional argument [] empty (rather than
  289.    [o]).
  290.    
  291.  ! B is not allowed as the y-coordinate when setting the reference point
  292.    in \rput using coordinates. E.g., [Bl] and [B] are OK, but [.3,B] is
  293.    not.
  294.    
  295.  * \sunpatch not needed anymore.
  296.  
  297.  * PostScript header file (if being used) is included at the beginning,
  298.    rather than on demand. 
  299.  
  300.  + cornersize parameter added, for specifying whether radius of corners
  301.    in \psframe and related box macros is given in relative terms (using
  302.    framearc) or absolute terms (using linearc).
  303.    
  304.  + \psclip and \clipbox macros added.
  305.  
  306.  + \Cartesian and \Polar commands added, for switching coordinate
  307.    systems.
  308.    
  309.  + border=dim parameter added, for giving appearance of one line
  310.    crossing over another.
  311.  
  312.  + showpoints=bool parameter added. If true, a dot is placed at appropriate 
  313.    coordinates.
  314.    
  315.  + \psdots graphics object added.
  316.  
  317.  + \psarc graphics object added.
  318.  
  319.  + \parabola graphics object added.
  320.  
  321.  + \pscurve, \psccurve, \psecurve, \psdoodle, \psedoodle, and \pscdoodle
  322.    graphics objects added.
  323.  
  324.  + \qline and \qdisk graphics objects added.
  325.  
  326.  + \psplot, \parametericplot and \listplot graphics objects added.
  327.  
  328.  + node connection (e.g., tree) macros added!!
  329.  
  330. %%%%%%%%%%%%%%%%%%%%%% END pst-read.me %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  331.  
  332.  
  333. %%%%%%%%%%%%%%%%%%% pst-test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  334. %% Test file for pstricks.tex, v0.91 and maybe later versions.
  335. %%
  336. %% Run with Plain TeX.
  337. %%
  338. %% PAGE 1: Pure graphics objects. These us \psunit and \pstverb.
  339. %%
  340. \input pstricks
  341.  
  342. \newpsobject{mygrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=7pt}
  343. \hbox{}\vfill
  344.  
  345. \pspicture(-1,-1)(9,2)\mygrid
  346. \psline[linewidth=1.5pt,linestyle=dotted]{**-)}(2.5,1.5)
  347. \psline[linewidth=2pt,linestyle=dashed,
  348.   linearc=.5,linecolor=gray]{|->}(3,-.5)(5.5,1.8)(7,-1)
  349. \qline(9,-1)(8,2)
  350. \endpspicture
  351.  
  352. \vfill
  353.  
  354. \pspicture(-1,-1)(9,2)\mygrid
  355. \qdisk(0,0){1}
  356. \pswedge[linecolor=gray,fillstyle=solid]{.8}{0}{70}
  357. \pscircle[linewidth=2pt,linestyle=dashed](4,.5){1.5}
  358. \psellipse[fillstyle=crosshatch*,fillcolor=lightgray]
  359.   (7.5,.5)(1,1.5)
  360. \endpspicture
  361.  
  362. \vfill
  363.  
  364. \pspicture(-1,-1)(9,3)\mygrid
  365. \parabola*(0,0)(1,3)
  366. \Cartesian(.01,1)
  367. \parabola{<->}(900,3)(600,-1)
  368. \endpspicture
  369.  
  370. \vfill
  371.  
  372. \eject
  373.  
  374. %% PAGE 2: Color (using \pstVerb) and rotation (using \pstVerb and \pstrotate).
  375.  
  376. \hbox{}\vfill
  377.  
  378. Here is {\gray some gray text }
  379.  
  380. \vskip 1cm
  381. Here is a lightgray line:{\lightgray \hrulefill}
  382.  
  383. \vskip 1cm
  384. And a dark gray blob:
  385.  
  386. {\darkgray \hrule height 1cm width 5 cm }
  387. \vfill
  388.  
  389. \centerline{
  390. \rotateleft{Left} \rotatedown{Down} \rotateright{Right}
  391. \scalebox{2}{Big} \scalebox{1,-1}{Flip}}
  392.  
  393. \vfill
  394.  
  395. \rput[l]{-45}{This runs diagonally down and to the right}
  396. \rput{45}(2in,0){This runs up to the right}
  397.  
  398. \vfill
  399.  
  400. \eject
  401.  
  402. %% PAGE 3: Nodes and node connections. These use \pstVerb, \pstverbscale,
  403. %% and maybe \pstrotate.
  404.  
  405. \hbox{}\vfill
  406.  
  407. $$\matrix{&\rnode{a}{$A$}\cr\noalign{\vskip 2cm}%
  408.   \rnode{b}{$B$}\qquad&\rnode{c}{$C$}\cr}$$
  409.  
  410. \psset{nodesep=3pt}
  411. \ncline{->}{a}{b}\Mput[r]{$f$}
  412. \ncline{->}{a}{c}\Mput[l]{$g$}
  413. \ncline[linestyle=dotted]{->}{b}{c}\Mput[t]{$h$}
  414.  
  415. \vfill
  416.  
  417. \pspicture(0,-1)(7.5,1)
  418. \pnode{a}
  419. \cnodeput(1.5,0){b}{0}
  420. \cnodeput(3,0){c}{1}
  421. \cnodeput(4.5,0){d}{2}
  422. \cnodeput(6,0){e}{3}
  423. \psset{arrows=->,nodesep=0}
  424. \pslabelsep=3pt
  425. \ncline{a}{b}\Mput[b]{start}
  426. \ncline{b}{c}\Mput[t]{a}
  427. \ncline{c}{d}\Mput[b]{b}
  428. \ncline{d}{e}\Mput[b]{b}
  429. \psset{arm=.6,linearc=.4,angleA=0,angleB=90}
  430. \ncangles{b}{b}\Lput[r](1.5){b}
  431. \ncangles{e}{b}\Lput[r](1.5){b}
  432. \psset{angleB=-90}
  433. \ncangles{c}{c}\Lput[r](1.5){a}
  434. \ncangles{d}{c}\Lput[r](1.5){a}
  435. \ncangles{e}{c}\Lput[r](1.5){a}
  436. \endpspicture
  437.  
  438. \vfill
  439.  
  440. \pspicture(0.4,.2)(9.8,6.2)
  441. \rput(2,6){\rnode{G}{\psframebox{GOAT}}}
  442. \rput(2,.5){\rnode{I}{\psframebox{GOAT}}}
  443. \ncangles[angleA=90, angleB=180, nodesepB=3pt, linearc=3pt,
  444.   armA=2cm]{<-**}{I}{G}
  445. \lput*(2.5){Doom}
  446. \Lput[l](.5){Zoom}
  447. {\Polar
  448. \rput{10}(7,30){\rnode{A}{\psframebox{Polar Coor}}}
  449. \rput(5,10){\rnode{B}{\psframebox{Polar Coor}}}}%
  450. \ncline{->}{A}{B}
  451. \mput{\pnode{Y}}
  452. \cnodeput[linewidth=1.5pt](9.5,6){H}{H}
  453. \cnodeput[linewidth=1.5pt](8,1){M}{M}
  454. \newpsobject{myarc}{ncarc}{nodesep=3pt,offset=2pt,arrows=->}
  455. \myarc{H}{M}\mput*{r}
  456. \myarc{M}{H}\mput*{l}\lput(.75){\pnode{Z}}
  457. \nccurve[angleA=135, angleB=135, ncurv=1.8]{Z}{Y}\Lput[b]{:D}{Doom}
  458. \endpspicture
  459.  
  460. \vfill
  461.  
  462. \bye
  463. %%%%%%%%%%%%%%%%%%%%%%%%%%%% END pst-test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%
  464.  
  465.  
  466. %!PS-Adobe-2.0
  467. %%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software
  468. %%Title: pst-test.dvi
  469. %%Pages: 3 1
  470. %%BoundingBox: 0 0 612 792
  471. %%EndComments
  472. %%BeginProcSet: tex.pro
  473. /TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
  474. load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
  475. isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
  476. Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get
  477. round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10
  478. N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{
  479. /vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{
  480. statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N
  481. /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin
  482. /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array
  483. /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2
  484. array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}
  485. B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont
  486. setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup
  487. length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{
  488. ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B
  489. /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0
  490. N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S
  491. dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0
  492. ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
  493. ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}
  494. imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr
  495. put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf
  496. div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook
  497. known{bop-hook}if /SI save N @rigin 0 0 moveto}N /eop{clear SI restore
  498. showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
  499. known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256
  500. array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for}N /p /show load N
  501. /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X
  502. /rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0
  503. 7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1
  504. TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1
  505. -.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{
  506. moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{
  507. S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B
  508. /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w
  509. }B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
  510. a}B /bos{/SS save N}B /eos{clear SS restore}B end
  511. %%EndProcSet
  512. %%BeginProcSet: pstricks.pro
  513. /tx@Dict 200 dict def tx@Dict begin
  514. /ADict 25 dict def /cm { matrix currentmatrix } def
  515. /slw { setlinewidth } def /clw { currentlinewidth} def
  516. /cp { currentpoint } def /ed { exch def } def
  517. /stp { .996264 dup scale } def
  518. /stv { SDict begin normalscale end .996264 dup scale } def
  519. /Setvmtrx { gsave matrix identmatrix setmatrix stv /vmtrx cm def grestore }
  520. def
  521. /PtoC { 2 copy cos mul 3 1 roll sin mul } def
  522. /Div { dup 0 eq { pop } { div } ifelse } def
  523. /Atan { /atan load stopped { pop pop 0 } if } def
  524. /DotSize { clw mul add mul 2 div /DS ed } def
  525. /SD { 0 360 arc closepath fill } def
  526. /SQ { /r ed r r moveto r r neg lineto r neg r neg lineto r neg r lineto
  527. closepath fill } def
  528. /ST { /y ed /x ed x y moveto x neg y lineto 0 x lineto closepath fill } def
  529. /SP { /r ed gsave 0 r moveto 4 { 72 rotate 0 r lineto } repeat closepath fill
  530. grestore } def
  531. /Plus { /r ed r 0 moveto r neg 0 lineto stroke 0 r moveto 0 r neg lineto
  532. stroke } def
  533. /NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch cvi
  534. def } def
  535. /Dots { NArray n 1 gt { DotB /n n 2 sub def } { /n n 1 sub def } ifelse n {
  536. Dot } repeat n 0 ge { DotA } if } def
  537. /Line { NArray n 0 eq not { n 1 eq { 0 0 4 2 roll /n 2 def } if ArrowB moveto
  538. /n n 2 sub def n { Lineto } repeat cp 4 2 roll ArrowA lineto pop pop } if }
  539. def
  540. /Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 } ifelse {
  541. pop } repeat a } def
  542. /CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq and {
  543. pop pop /n n 1 sub def } if } def
  544. /Polygon { NArray n 2 eq { 0 0 6 2 roll /n 3 def } if n 3 lt { n { pop pop }
  545. repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ed /x0 ed /y1 ed /x1
  546. ed x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1 moveto /n n 2
  547. sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto Lineto pop pop
  548. closepath } ifelse } def
  549. /Pyth { dup mul exch dup mul add sqrt } def
  550. /DoodCCa { /y ed /x ed 2 copy y sub /dy1 ed x sub /dx1 ed /l1 dx1 dy1 Pyth def
  551. } def
  552. /DoodCC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1
  553. def DoodCCa /dx dx0 l1 mul dx1 l0 mul add def /dy dy0 l1 mul dy1 l0 mul add
  554. def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos abs b exp a mul dx dy Pyth Div
  555. 2 div def /x2 x l0 dx mul m mul sub def /y2 y l0 dy mul m mul sub def /dx l1
  556. dx mul m mul neg def /dy l1 dy mul m mul neg def } def
  557. /DoodIC { /a a 2 mul 3 div 45 cos b exp div def DoodCCa /dx 0 def /dy 0 def }
  558. def
  559. /CurveIC { /y ed /x ed /dx 0 def /dy 0 def } def
  560. /CurveCC { /x1 x dx sub def /y1 y dy sub def /dx x 5 index sub 2 div r mul def
  561. /dy y 4 index sub 2 div r mul def /y ed /x ed /x2 x dx add def /y2 y dy add
  562. def } def
  563. /BOC { IC CC x2 y2 x1 y1 ArrowB 2 copy moveto 4 2 roll x y curveto } def
  564. /NC { CC x1 y1 x2 y2 x y curveto } def
  565. /EOC { x dx sub y dy sub 4 2 roll ArrowA 2 copy curveto } def
  566. /BAC { IC CC x y moveto CC x1 y1 cp ArrowB moveto } def
  567. /NAC { x2 y2 x y curveto CC x1 y1 } def
  568. /EAC { x2 y2 x y ArrowA curveto pop pop } def
  569. /OpenCurve { NArray n 3 lt { n { pop pop } repeat } { BOC /n n 3 sub def n {
  570. NC } repeat EOC } ifelse } def
  571. /AltCurve { NArray n 4 lt { n { pop pop } repeat } { BAC /n n 4 sub def n {
  572. NAC } repeat EAC } ifelse } def
  573. /ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt { CheckClosed }
  574. if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC } repeat closepath pop
  575. pop } ifelse } def
  576. /PathLength { flattenpath /z 0 def { /y1 ed /x1 ed /y2 y1 def /x2 x1 def } {
  577. /y ed /x ed /z z y y1 sub dup mul x x1 sub dup mul add sqrt add def /y1 y def
  578. /x1 x def } {} { /y y2 def /x x2 def /z z y y1 sub dup mul x x1 sub dup mul
  579. add sqrt add def /y1 y def /x1 x def } pathforall z } def
  580. /DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def
  581. PathLength } ifelse /b ed /x ed /y ed /z y x add def b a .5 sub 2 mul y mul
  582. sub z div round z mul a .5 sub 2 mul y mul add b exch div dup /y exch y mul
  583. def /x exch x mul def y x 2 array astore 1 a sub y mul setdash stroke } def
  584. /DotLine { /b PathLength def /a ed /x ed /y clw def /z y x add def a 0 gt { /b
  585. b a div def } { a 0 eq { /b b y sub def } { a -3 eq { /b b y add def } if }
  586. ifelse } ifelse /c b z div round def b c z mul sub c div x add y add 0 exch 2
  587. array astore a 0 gt { 0 } { y 2 div a -2 gt { neg } if } ifelse setdash 1
  588. setlinecap stroke } def
  589. /LineFill { gsave clip /a ed pathbbox exch /x2 ed a div ceiling exch a div
  590. floor dup a mul 0 exch translate sub 1 add cvi /y ed /x1 ed newpath 2
  591. setlinecap y {x1 0 moveto x2 0 lineto stroke 0 a translate} repeat grestore }
  592. def
  593. /BeginArrow { ADict begin gsave /y1 ed /x1 ed /y2 ed /x2 ed /dy y2 y1 sub def
  594. /dx x2 x1 sub def x1 y1 translate /angle dx neg dy Atan def angle rotate
  595. newpath } def
  596. /EndArrow { angle neg rotate x1 neg y1 neg translate x2 y2 cp grestore end }
  597. def
  598. /Arrow { clw mul add 4 -1 roll mul dup 2 div /w ed mul dup /h ed mul /a ed w
  599. neg h moveto 0 0 lineto w h lineto w neg a neg rlineto gsave fill grestore }
  600. def
  601. /Tbar { clw mul add exch pop mul 2 div /z ed z neg clw 2 div moveto z 2 mul 0
  602. rlineto stroke 0 clw moveto } def
  603. /Bracket { clw mul add 3 -1 roll mul dup clw sub 2 div /z ed mul /a ed z neg a
  604. moveto z neg clw 2 div lineto z clw 2 div lineto z a lineto stroke 0 clw
  605. moveto } def
  606. /RoundBracket { clw mul add 3 -1 roll mul dup 2 div clw 8 div sub /z ed mul
  607. clw 2 div sub /a ed a z lt { z dup mul a dup mul add a 2 mul Div dup a sub z
  608. exch Atan /a ed /z ed } { /a 90 def } ifelse 0 z clw 2 div add z 270 a sub 270
  609. a add arc stroke 0 clw moveto } def
  610. /EndDot { DotSize { /z DS def } { /z 0 def } ifelse /b ed 0 z DS SD b { 0 z DS
  611. clw sub SD } if 0 DS z add clw 4 div sub moveto } def
  612. /Frame { /a .5 clw mul def 3 -1 roll 2 copy gt { exch } if a sub /y2 ed a add
  613. /y1 ed 2 copy gt { exch } if a sub /x2 ed a add /x1 ed x1 x2 eq y1 y2 eq or {
  614. pop pop x1 y1 moveto x2 y2 lineto } { /b y1 y2 sub abs x1 x2 sub abs 2 copy gt
  615. {exch pop} {pop} ifelse 2 div a sub def { b mul /b ed } { dup b lt { /b ed } {
  616. pop } ifelse } ifelse x1 y1 y2 add 2 div moveto x1 y2 x1 x2 add 2 div y2 b
  617. arcto 4 {pop} repeat x2 y2 x2 y1 y2 add 2 div b arcto 4 {pop} repeat x2 y1 x1
  618. x2 add 2 div y1 b arcto 4 {pop} repeat x1 y1 x1 y1 y2 add 2 div b arcto 4
  619. {pop} repeat closepath } ifelse } def
  620. /Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1 sub 3
  621. div def /dy y0 y1 sub 3 div def x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB
  622. moveto x0 dx sub y0 dy add x1 y1 ArrowA curveto /Points [ x1 y1 x0 y0 x0 2 mul
  623. x1 sub y1 ] def } def
  624. /Grid { /a { (    ) } def /b ed /d ed /n ed /c ed c div /cy ed c div /cx ed cy
  625. div cvi /y ed cx div cvi /x ed cy div cvi /y2 ed cx div cvi /x2 ed cy div cvi
  626. /y1 ed cx div cvi /x1 ed /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1
  627. sub 0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div clw 2 div add def
  628. /Helvetica findfont b scalefont setfont /b b .95 mul clw 2 div add def } if
  629. gsave n 0 gt { 1 setlinecap [ 0 cy n div ] 0 setdash } { 2 setlinecap } ifelse
  630. /c x1 def /i 500 w mul x1 add def /e y cy mul def /f y1 cy mul def /g y2 cy
  631. mul def x1 cx mul 0 translate { newpath 0 e moveto b 0 gt { gsave d c a cvs
  632. dup stringwidth pop /z2 ed w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg}
  633. {z1} ifelse rmoveto show grestore } if 0 f moveto 0 g lineto stroke cx w mul 0
  634. translate c x2 eq c i eq or {exit} if /c c w add def } loop grestore gsave n 0
  635. gt { 0 setlinecap [ 0 cx n div ] 0 setdash } { 2 setlinecap } ifelse /c y1 def
  636. /i 500 h mul y1 add def /e x cx mul def /f x1 cx mul def /g x2 cx mul def 0 y1
  637. cy mul translate { newpath e 0 moveto b 0 gt { gsave d c a cvs dup stringwidth
  638. pop /z2 ed w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt {z1} {b neg} ifelse
  639. rmoveto show grestore } if f 0 moveto g 0 lineto stroke 0 cy h mul translate c
  640. y2 eq c i eq or {exit} if /c c h add def } loop grestore } def
  641. /ArcArrow { /d ed /@b ed /a ed /TDict 2 dict def TDict begin /stroke { } def
  642. /fill { } def gsave 0 1 0 0 @b grestore end c mul /e ed pop pop pop /f clw 8
  643. div c mul neg def r a e d PtoC r a PtoC @b 4 { pop } repeat a e d f d } def
  644. /ArcPoints { /Points [ r 3 index PtoC 0 0 r 8 index PtoC ] def } def
  645. /Ellipse { /b ed /a ed /y ed /x ed /y0 ed /x0 ed x0 y0 translate /mtrx cm def
  646. x y scale 0 0 1 a b arc mtrx setmatrix /Points [ 0 0 ] def } def
  647. /ScalePoints { /y ed /x ed counttomark dup dup cvi eq not { exch pop } if /m
  648. exch def /n m 2 div cvi def n { y mul m 1 roll x mul m 1 roll } repeat } def
  649. /Scale { cp cp translate 4 2 roll scale neg exch neg exch translate } def
  650. /Rot { cp cp translate 3 -1 roll neg rotate neg exch neg exch translate } def
  651. /Tr { Setvmtrx vmtrx transform translate } def
  652. /ClipBox { /mtrx cm def stv /a ed /b ed /c ed 0 c neg rmoveto a 0 rlineto 0 b
  653. c add rlineto a neg 0 rlineto closepath clip newpath mtrx setmatrix } def
  654. /GetCoor { nodeA begin x y mtrxf transform cm itransform end nodeB begin x y
  655. mtrxf transform cm itransform end } def
  656. /GetAngle { GetCoor 3 -1 roll sub 3 1 roll sub neg Atan  } def
  657. /GetDPos { angle 1 0 mtrxf dtransform cm idtransform exch atan sub dup sin
  658. /@sin ed cos /@cos ed getpos y add exch x add exch mtrxf transform cm
  659. itransform offset angle cos mul add exch offset angle sin mul sub exch } def
  660. /GetPos { nodeA begin /angle angleA def /offset offsetA def /nodesep nodesepA
  661. def GetDPos end /y1 ed /x1 ed nodeB begin /angle angleB def /offset offsetB
  662. def /nodesep nodesepB def GetDPos end /y2 ed /x2 ed } def
  663. /GetDist { x1 x2 sub y1 y2 sub Pyth  } def
  664. /InitPnode { /y ed /x ed /getpos { nodesep @cos mul nodesep @sin mul } def }
  665. def
  666. /InitCnode { /y ed /x ed /getpos { nodesep r add dup @cos mul exch @sin mul }
  667. def } def
  668. /GetRnodePos { @cos 0 gt { /dx r nodesep add def } { /dx l nodesep sub def }
  669. ifelse @sin 0 gt { /dy u nodesep add def } { /dy d nodesep sub def } ifelse dx
  670. @sin mul abs dy @cos mul abs gt { dy @cos mul @sin div dy } { dx dup @sin mul
  671. @cos div } ifelse } def
  672. /InitRnode { /r ed r mul neg /l ed /r r l add def /x l neg def { neg /d ed /u
  673. ed /y 0 def } { neg /y ed y sub /u ed u mul neg /d ed /u u d add def /y y d
  674. sub def } ifelse /getpos { GetRnodePos } def } def
  675. /InitNC { tx@Dict nodeA known tx@Dict nodeB known and dup { /nodeA nodeA load
  676. def /nodeB nodeB load def } if } def
  677. /LineMP { 4 copy 1 t sub mul exch t mul add 3 1 roll 1 t sub mul exch t mul
  678. add exch 6 2 roll sub 3 1 roll sub Atan  } def
  679. /NCLine { GetAngle /angleA ed /angleB angleA 180 add def GetPos x2 y2 x1 y1
  680. ArrowA 4 2 roll ArrowB moveto lineto /lvar [ x2 x1 y2 y1 ] cvx def /lpos {
  681. lvar LineMP } def } def
  682. /NCCoor { /lvar [ GetCoor 3 1 roll 4 1 roll ] cvx def /lpos { lvar LineMP }
  683. def } def
  684. /BezierMidpoint { /y3 ed /x3 ed /y2 ed /x2 ed /y1 ed /x1 ed /y0 ed /x0 ed /t
  685. ed /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3 mul cx sub
  686. def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx sub def /ay y3 y0
  687. sub cy sub by sub def ax t 3 exp mul bx t t mul mul add cx t mul add x0 add ay
  688. t 3 exp mul by t t mul mul add cy t mul add y0 add 3 ay t t mul mul mul 2 by t
  689. mul mul add cy add 3 ax t t mul mul mul 2 bx t mul mul add cx add atan } def
  690. /GetArms { /x1a armA angleA cos mul x1 add def /y1a armA angleA sin mul y1 add
  691. def /x2a armB angleB cos mul x2 add def /y2a armB angleB sin mul y2 add def }
  692. def
  693. /NCCurve { GetPos GetDist 2 div dup 3 -1 roll mul /armA ed mul /armB ed
  694. GetArms /lvar [ x1a y1a x1 y1 ArrowA 4 2 roll x2a y2a x2 y2 ArrowB ] cvx def
  695. lvar moveto 6 2 roll 4 2 roll curveto /lpos { t lvar BezierMidpoint } def }
  696. def
  697. /AnglesMP { lvar t 3 gt { /t t 3 sub def } { t 2 gt { /t t 2 sub def 10 -2
  698. roll } { t 1 gt { /t t 1 sub def 10 -4 roll } { 10 4 roll } ifelse } ifelse }
  699. ifelse 6 { pop } repeat 3 -1 roll exch LineMP  } def
  700. /NCAngles { GetPos GetArms /mtrx angleA matrix rotate def x1a y1a mtrx
  701. transform pop x2a y2a mtrx transform exch pop mtrx itransform /y0 ed /x0 ed [
  702. armA 0 ne { x1 y1 } if x1a y1a x0 y0 x2a y2a armB 0 ne { x2 y2 } if ] Line
  703. /lvar [ x2 y2 x2a y2a x0 y0 x1a y1a x1 y1 ] cvx def /lpos { AnglesMP } def }
  704. def
  705. /NCAngle { GetPos /x2a armB angleB cos mul x2 add def /y2a armB angleB sin mul
  706. y2 add def /mtrx angleA matrix rotate def x2a y2a mtrx transform pop x1 y1
  707. mtrx transform exch pop mtrx itransform /y0 ed /x0 ed [ x1 y1 x0 y0 x2a y2a
  708. armB 0 ne { x2 y2 } if ] Line /lvar [ x2 y2 x2 y2 x2a y2a x0 y0 x1 y1 ] cvx
  709. def /lpos { AnglesMP } def } def
  710. /NCBar { GetPos GetArms /mtrx angleA matrix rotate def x1a y1a mtrx transform
  711. pop x2a y2a mtrx transform pop sub dup 0 mtrx itransform 3 -1 roll 0 gt { /y2a
  712. exch y2a add def /x2a exch x2a add def } { /y1a exch neg y1a add def /x2a exch
  713. neg x2a add def } ifelse [ x1 y1 x1a y1a x2a y2a x2 y2 ] Line /lvar [ x2 y2 x2
  714. y2 x2a y2a x1a y1a x1 y1 ] cvx def /lpos { lvar AnglesMP } def } def
  715. /NCDiag { GetPos GetArms [ x1 y1 x1a y1a x2a y2a x2 y2 ] Line /lvar [ x2 y2 x2
  716. y2 x2a y2a x1a y1a x1 y1] cvx def /lpos { AnglesMP } def } def
  717. /LLPut { /lmtrx cm def /langle 0 def tx@Dict /lpos known { Setvmtrx lpos
  718. /langle ed vmtrx transform cp 3 -1 roll sub neg 3 1 roll sub exch translate }
  719. { pop } ifelse } def
  720. /LPut { /lmtrx cm def tx@Dict /lpos known { Setvmtrx lpos pop vmtrx transform
  721. cp 3 -1 roll sub neg 3 1 roll sub exch translate } if } def
  722. /BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { cp OLUnit translate
  723. moveto /IfVisible true def } if } { IfVisible { cp OLUnit neg exch neg exch
  724. translate moveto /IfVisible false def } if } ifelse } def
  725. /InitOL { Setvmtrx /OLUnit [ 2890.79999 dup vmtrx dtransform ] cvx def /BOL {
  726. BeginOL } def /IfVisible true def } def
  727. end
  728. %%EndProcSet
  729. %%BeginProcSet: special.pro
  730. TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs
  731. 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP false N /BBcalc false N
  732. /p 3 def}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{
  733. @scaleunit div /vsc X}B /@hsize{/hs X /CLIP true N}B /@vsize{/vs X /CLIP true
  734. N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{10 div /rwi X}
  735. B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X /BBcalc true N}B
  736. /magscale true def end /@MacSetUp{userdict /md known{userdict /md get type
  737. /dicttype eq{md begin /letter{}N /note{}N /legal{}N /od{txpose 1 0 mtx
  738. defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{
  739. itransform moveto}}{transform{itransform lineto}}{6 -2 roll transform 6 -2
  740. roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll
  741. itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array
  742. astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{
  743. PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR
  744. pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
  745. get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
  746. not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if
  747. yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270
  748. rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get
  749. ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not
  750. and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip
  751. not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}
  752. ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy
  753. TR .96 dup scale neg S neg S TR}if}N /cp{pop pop showpage pm restore}N end}if}
  754. if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{
  755. DVImag dup scale}if}N /psfts{S 65536 div N}N /startTexFig{/psf$SavedState save
  756. N userdict maxlength dict begin /magscale false def normalscale currentpoint
  757. TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
  758. /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx
  759. sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx
  760. psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N
  761. /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{psf$llx psf$lly
  762. psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll
  763. S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end
  764. psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave
  765. normalscale currentpoint TR @SpecialDefaults}N /@setspecial{CLIP{newpath 0 0
  766. moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR
  767. hsc vsc scale ang rotate BBcalc{rwi urx llx sub div dup scale llx neg lly neg
  768. TR}if /showpage{}N /erasepage{}N /copypage{}N newpath}N /@endspecial{grestore
  769. clear SpecialSave restore end}N /@defspecial{SDict begin}N /@fedspecial{end}B
  770. /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{/SaveX currentpoint /SaveY X N 1
  771. setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY
  772. moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix
  773. currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix
  774. setmatrix}N end
  775. %%EndProcSet
  776. TeXDict begin 1000 300 300 @start /Fa 6 105 df<00000C0000000C0000001C0000001C
  777. 0000003C0000007C0000005C0000009C0000008E0000010E0000010E0000020E0000040E000004
  778. 0E0000080E0000080E0000100E0000200E00003FFE000040070000400700008007000100070001
  779. 0007000200070002000700060007001E000700FF807FF01C1D7F9C1F>65
  780. D<01FFFF00003C01C0003800E0003800F0003800700038007000700070007000F0007000F00070
  781. 01E000E003C000E0078000E01F0000FFFC0001C00F0001C0078001C003C001C003C0038003C003
  782. 8003C0038003C0038003C0070007800700070007000E0007001C000E007800FFFFC0001C1C7E9B
  783. 1F>I<0001F808000E061800380138006000F001C0007003800070070000300F0000200E000020
  784. 1C0000203C0000203C000000780000007800000078000000F0000000F0000000F0000000F00000
  785. 00F0000100F0000100F0000100700002007000020030000400380008001C0010000E0060000701
  786. 800000FE00001D1E7E9C1E>I<0001E0000630000E78000CF0001C60001C00001C00001C00003C
  787. 0000380000380003FFC000380000380000700000700000700000700000700000E00000E00000E0
  788. 0000E00000E00001C00001C00001C00001C00001C000018000038000038000630000F30000F600
  789. 00E4000078000015257E9C14>102 D<007180018B800307800607800E07000C07001C07001C07
  790. 00380E00380E00380E00380E00381C00381C00381C00183C0008F8000738000038000038000070
  791. 00607000F06000F0E000E180007E0000111A7F9114>I<0FC00001C00001C00003800003800003
  792. 80000380000700000700000700000700000E3E000EC3000F03800E03801E03801C03801C03801C
  793. 0380380700380700380700380E00700E20700E20701C20701C40E00C80600700131D7E9C18>I
  794. E /Fb 40 122 df<03C00C301818300C300C700E60066006E007E007E007E007E007E007E007E0
  795. 07E007E007E007E007E00760066006700E300C300C18180C3007E0101D7E9B15>48
  796. D<030007003F00C700070007000700070007000700070007000700070007000700070007000700
  797. 07000700070007000700070007000F80FFF80D1C7C9B15>I<07C01830201C400C400EF00FF80F
  798. F807F8077007000F000E000E001C001C00380070006000C00180030006010C01180110023FFE7F
  799. FEFFFE101C7E9B15>I<07E01830201C201C781E780E781E381E001C001C00180030006007E000
  800. 30001C001C000E000F000F700FF80FF80FF80FF00E401C201C183007E0101D7E9B15>I<60F0F0
  801. 600000000000000000000060F0F06004127C910C>58 D<000600000006000000060000000F0000
  802. 000F0000000F00000017800000178000001780000023C0000023C0000023C0000041E0000041E0
  803. 000041E0000080F0000080F0000180F8000100780001FFF80003007C0002003C0002003C000600
  804. 3E0004001E0004001E000C001F001E001F00FF80FFF01C1D7F9C1F>65 D<FFFFC00F00F00F0038
  805. 0F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C
  806. 0F001E0F000E0F000F0F000F0F000F0F000F0F000F0F001E0F001E0F003C0F0078FFFFE0181C7E
  807. 9B1D>I<001F808000E0618001801980070007800E0003801C0003801C00018038000180780000
  808. 807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000
  809. 0000700000807800008078000080380000801C0001001C0001000E000200070004000180080000
  810. E03000001FC000191E7E9C1E>I<FFFFC0000F00F0000F003C000F000E000F0007000F0007000F
  811. 0003800F0003C00F0001C00F0001C00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E0
  812. 0F0001E00F0001E00F0001C00F0001C00F0003C00F0003800F0007800F0007000F000E000F001C
  813. 000F007000FFFFC0001B1C7E9B20>I<FFFFF80F00780F00180F00080F00080F000C0F00040F00
  814. 040F02040F02000F02000F02000F06000FFE000F06000F02000F02000F02000F02000F00000F00
  815. 000F00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>70 D<001F808000E0618001
  816. 801980070007800E0003801C0003801C00018038000180780000807800008070000080F0000000
  817. F0000000F0000000F0000000F0000000F0000000F000FFF0F0000F807000078078000780780007
  818. 80380007801C0007801C0007800E00078007000B800180118000E06080001F80001C1E7E9C21>
  819. I<FFF3FFC00F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F00
  820. 3C000F003C000F003C000F003C000FFFFC000F003C000F003C000F003C000F003C000F003C000F
  821. 003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B
  822. 1F>I<FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000
  823. 0F00000F00000F00000F00000F00000F00000F00080F00080F00080F00180F00180F00100F0030
  824. 0F00700F01F0FFFFF0151C7E9B1A>76 D<FF8000FF800F8000F8000F8000F8000BC00178000BC0
  825. 0178000BC001780009E002780009E002780008F004780008F004780008F0047800087808780008
  826. 780878000878087800083C107800083C107800083C107800081E207800081E207800081E207800
  827. 080F407800080F40780008078078000807807800080780780008030078001C03007800FF8307FF
  828. 80211C7E9B26>I<003F800000E0E0000380380007001C000E000E001C0007003C000780380003
  829. 80780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F000
  830. 01E0F00001E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C0003
  831. 80380000E0E000003F80001B1E7E9C20>79 D<FFFF800F00E00F00780F003C0F001C0F001E0F00
  832. 1E0F001E0F001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F00000F00000F00000F00
  833. 000F00000F00000F00000F00000F00000F00000F0000FFF000171C7E9B1C>I<FFFF00000F01E0
  834. 000F0078000F003C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F00
  835. 78000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078000F
  836. 0078000F0078000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E9B1F>82
  837. D<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F
  838. 0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
  839. 0F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B
  840. 1E>84 D<7FFFF07C01F07001E06003C06003C0400780400F80400F00401E00001E00003C00007C
  841. 0000780000F00000F00001E00003E00003C0100780100780100F00101F00301E00203C00203C00
  842. 607800E0F803E0FFFFE0141C7E9B19>90 D<1FC000307000783800781C00301C00001C00001C00
  843. 01FC000F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>
  844. 97 D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C00
  845. 1D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C0
  846. 1C01801E030019060010F800131D7F9C17>I<003F000007000007000007000007000007000007
  847. 0000070000070000070000070003E7000C1700180F00300700700700600700E00700E00700E007
  848. 00E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>100
  849. D<03E00C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F12
  850. 7F9112>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E00
  851. 0E000E000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38
  852. C01C3880181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800
  853. 001FF8001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C
  854. 7F9215>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
  855. 7C001C87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
  856. 03801C03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00180000000000000000000000
  857. 00000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF
  858. 80091D7F9C0C>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
  859. 00001C3FC01C0F001C0C001C08001C10001C20001C40001CE0001DE0001E70001C78001C38001C
  860. 3C001C1C001C0E001C0F001C0F80FF9FE0131D7F9C16>107 D<FC001C001C001C001C001C001C
  861. 001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
  862. 1C001C00FF80091D7F9C0C>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C001C
  863. 01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00
  864. 1C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D
  865. 03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
  866. 03801C0380FF9FF014127F9117>I<03F0000E1C00180600300300700380600180E001C0E001C0
  867. E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>I<FC7C
  868. 001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01
  869. C01C01801E03001D06001CF8001C00001C00001C00001C00001C00001C00001C0000FF8000131A
  870. 7F9117>I<FCE01D301E781E781C301C001C001C001C001C001C001C001C001C001C001C001C00
  871. FFC00D127F9110>114 D<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018
  872. C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C00
  873. 1C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C
  874. 03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
  875. 07800C07800E1B8003E3F014127F9117>I<FF3FCFE03C0F03801C0701801C0701001C0B01000E
  876. 0B82000E0B82000E1182000711C4000711C4000720C40003A0E80003A0E80003C0680001C07000
  877. 01C0700001803000008020001B127F911E>119 D<7F8FF00F03800F030007020003840001C800
  878. 01D80000F00000700000780000F800009C00010E00020E000607000403801E07C0FF0FF8151280
  879. 9116>I<FF07E03C03801C01001C01000E02000E020007040007040007040003880003880003D8
  880. 0001D00001D00000E00000E00000E000004000004000008000008000F08000F10000F300006600
  881. 003C0000131A7F9116>I E end
  882. %%EndProlog
  883. %%BeginSetup
  884. %%Feature: *Resolution 300
  885. TeXDict begin 
  886. %%EndSetup
  887. %%Page: 1 1
  888. bop 201 641 a @beginspecial @setspecial
  889.  tx@Dict begin stp 1.0 slw 0 setgray  gsave 0.8 slw 0 setgray -28.45274
  890. -28.45274 256.07469 56.90549 -28.45274 -28.45274 28.45274 28.45274
  891. 1 10 { 0. setgray } 7.0 Grid grestore end 
  892. @endspecial @beginspecial
  893. @setspecial
  894.  tx@Dict begin stp 1.5 slw 0 setgray  /ArrowA { BeginArrow {false}
  895. true 1. 1.0 3. EndDot  EndArrow } def /ArrowB { BeginArrow 1. 0.4 1.0
  896. 4. RoundBracket  EndArrow } def [ 71.13185 42.67911  ] /Lineto { lineto
  897. } def Line  gsave 0 setgray 3.0  -1 -2 add DotLine  grestore end 
  898. @endspecial @beginspecial @setspecial
  899.  tx@Dict begin stp 2.0 slw 0.5 setgray  /ArrowA { BeginArrow 1. 0.4
  900. 1.0 4. Tbar  EndArrow } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2
  901. Arrow  EndArrow } def [ 85.35823 -14.22636  156.49008 51.21501  199.1692
  902. -28.45274  ] /r 14.22636 def /Lineto { Arcto } def Line  gsave 0.5
  903. setgray 5.0 3.0  -1 -2 add DashLine  grestore end 
  904. @endspecial
  905. @beginspecial @setspecial
  906.  tx@Dict begin stp 1.0 slw 0 setgray 256.07469 -28.45274 moveto 227.62195
  907. 56.90549 lineto 0 setlinecap stroke end 
  908. @endspecial 717 x @beginspecial
  909. @setspecial
  910.  tx@Dict begin stp 1.0 slw 0 setgray  gsave 0.8 slw 0 setgray -28.45274
  911. -28.45274 256.07469 56.90549 -28.45274 -28.45274 28.45274 28.45274
  912. 1 10 { 0. setgray } 7.0 Grid grestore end 
  913. @endspecial @beginspecial @setspecial
  914.  tx@Dict begin stp 0 setgray 0.0 0.0 28.45274 SD end 
  915. @endspecial
  916. @beginspecial @setspecial
  917.  tx@Dict begin stp 1.0 slw 0.5 setgray  0.0 0.0 translate newpath 0
  918. 0 newpath moveto /r 22.76227 clw 2 div sub def 0 0 r 0. 70. arc closepath
  919. gsave 1. setgray  fill grestore gsave 0.5 setgray 0 setlinecap stroke
  920. grestore end 
  921. @endspecial @beginspecial @setspecial
  922.  tx@Dict begin stp 2.0 slw 0 setgray  113.81097 14.22636 42.67911 clw
  923. 2 div sub 0 360 arc closepath  gsave 0 setgray 5.0 3.0  4 DashLine
  924.  grestore end
  925.  
  926. @endspecial @beginspecial @setspecial
  927.  tx@Dict begin stp 1.0 slw 0 setgray  213.39557 14.22636 28.45274 42.67911
  928. 0 360 Ellipse  gsave 0.75 setgray  fill grestore gsave 45. rotate 0.8
  929.  slw 0 setgray 5.0  LineFill grestore gsave 90 rotate gsave 45. rotate
  930. 0.8  slw 0 setgray 5.0  LineFill grestore grestore gsave 0 setgray
  931. 0 setlinecap stroke grestore end 
  932. @endspecial 835 x
  933. @beginspecial @setspecial
  934.  tx@Dict begin stp 1.0 slw 0 setgray  gsave 0.8 slw 0 setgray -28.45274
  935. -28.45274 256.07469 85.35823 -28.45274 -28.45274 28.45274 28.45274
  936. 1 10 { 0. setgray } 7.0 Grid grestore end 
  937. @endspecial @beginspecial @setspecial
  938.  tx@Dict begin stp 0.0 slw 0 setgray  /ArrowA { } def  /ArrowB { }
  939. def  0.0 0.0 28.45274 85.35823 Parab  gsave 0 setgray  fill grestore
  940. gsave 0 setgray  grestore end
  941.  
  942. @endspecial @beginspecial @setspecial
  943.  tx@Dict begin stp 1.0 slw 0 setgray  /ArrowA { BeginArrow 1. 0.3 1.4
  944. 1.0 3.2 Arrow  EndArrow } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2
  945. Arrow  EndArrow } def 255.92651 85.35823 170.61768 -28.45274 Parab
  946.  gsave 0 setgray 0 setlinecap stroke grestore end 
  947. @endspecial 965 2770
  948. a Fb(1)p eop
  949. %%Page: 2 2
  950. bop 83 583 a Fb(Here)15 b(is)f
  951.  0.5 setgray
  952. 223 583 a Fb(some)f(gra)o(y)g(text)i
  953.  0 setgray
  954. 83 751 a Fb(Here)g(is)f(a)f(ligh)o(tgra)o(y)g
  955. (line:)p  0.75 setgray
  956. 509 751 1443 2 v 1952 751 a
  957.  0 setgray
  958. 83 919 a Fb(And)h(a)g(dark)g(gra)o(y)f(blob:)0 927 y
  959.  0.25 setgray
  960. 0 1045 591 119 v 0 1045 a
  961.  0 setgray
  962. 786 1637 a
  963.  tx@Dict begin  90 Rot  end
  964. 786 1637 a Fb(Left)-73 b
  965.  tx@Dict begin  -90 Rot  end
  966. 904 1637 a
  967.  tx@Dict begin  180 Rot  end
  968. 904 1666 a Fb(Do)o(wn)904 1637 y
  969.  tx@Dict begin  -180 Rot  end
  970. 955 1637 a
  971.  tx@Dict begin  -90 Rot  end
  972. 854 1666 a Fb(Righ)o(t)955 1637 y
  973.  tx@Dict begin  90 Rot  end
  974. 982 1637 a
  975.  tx@Dict begin  2. 2. Scale  end
  976. 982 1637 a Fb(Big)-62 b
  977.  tx@Dict begin  1 2. div 1 2. div Scale  end
  978. 1134 1637 a
  979.  tx@Dict begin  1. -1. Scale  end
  980. 1134 1637 a Fb(Flip)-74 b
  981.  tx@Dict begin  1 1. div 1 -1. div Scale  end
  982. 83 2179 a
  983.  tx@Dict begin  -45. Rot  end
  984. 83 2189 a Fb(This)14 b(runs)g(diagonally)e(do)o(wn)h(and)h(to)g(the)g(righ)o
  985. (t)83 2179 y
  986.  tx@Dict begin  -45. neg Rot  end
  987. 683 2179 a
  988.  tx@Dict begin  45. Rot  end
  989. 455 2189 a Fb(This)g(runs)g(up)g(to)g(the)h(righ)o(t)683 2179
  990. y
  991.  tx@Dict begin  45. neg Rot  end
  992. 965 2770 a Fb(2)p eop
  993. %%Page: 3 3
  994. bop 1038 379 a
  995.  
  996.  tx@Dict begin gsave stv cp translate /node@a 18 dict def node@a begin /mtrxf
  997. cm def .5 6.83331 0.0 false .5 7.50002 InitRnode end grestore end
  998. 1038 379 a Fa(A)880 665 y
  999.  
  1000.  tx@Dict begin gsave stv cp translate /node@b 18 dict def node@b begin /mtrxf
  1001. cm def .5 6.83331 0.0 false .5 8.0868 InitRnode end grestore end
  1002. 880 665 a Fa(B)127 b
  1003.  
  1004.  tx@Dict begin gsave stv cp translate /node@c 18 dict def node@c begin /mtrxf
  1005. cm def .5 6.83331 0.0 false .5 7.86249 InitRnode end grestore end
  1006. 1038 665 a Fa(C)0 708 y
  1007.  
  1008.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1009. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@a def /nodeB /node@b def
  1010. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1011. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1012. grestore end
  1013. 0 708 a
  1014.  tx@Dict begin  /t 0.5 def LLPut  end
  1015. -46 719 a Fa(f)0 708 y
  1016.  tx@Dict begin  lmtrx setmatrix end
  1017. 0 708 a
  1018.  
  1019.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1020. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@a def /nodeB /node@c def
  1021. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1022. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1023. grestore end
  1024. 0 708 a
  1025.  tx@Dict begin  /t 0.5 def LLPut  end
  1026. 21 713 a Fa(g)0 708 y
  1027.  tx@Dict begin  lmtrx setmatrix end
  1028. 0 708 a
  1029.  
  1030.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1031. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@b def /nodeB /node@c def
  1032. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1033. EndArrow } def NCLine gsave 0 setgray 3.0 0 -2 add DotLine grestore } if
  1034. grestore end
  1035. 0 708 a
  1036.  tx@Dict begin  /t 0.5 def LLPut  end
  1037. -12 758 a Fa(h)0 708 y
  1038.  tx@Dict begin  lmtrx setmatrix end
  1039. 83 1083 a
  1040.  
  1041.  tx@Dict begin gsave stv cp translate /node@a 10 dict def node@a begin /mtrxf
  1042. cm def 0.0 0.0 InitPnode end grestore end
  1043. 260 1083 a
  1044.  
  1045.  tx@Dict begin gsave stv cp translate /node@b 12 dict def node@b begin /mtrxf
  1046. cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
  1047. InitCnode end grestore end
  1048. 260 1083 a @beginspecial @setspecial
  1049.  tx@Dict begin stp 1.0 slw 0 setgray  0 0 5.00002 2 div 6.44444 0.0
  1050. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1051. 0 setlinecap stroke grestore end 
  1052. @endspecial 250 1096
  1053. a Fb(0)437 1083 y
  1054.  
  1055.  tx@Dict begin gsave stv cp translate /node@c 12 dict def node@c begin /mtrxf
  1056. cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
  1057. InitCnode end grestore end
  1058. 437 1083 a @beginspecial @setspecial
  1059.  tx@Dict begin stp 1.0 slw 0 setgray  0 0 5.00002 2 div 6.44444 0.0
  1060. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1061. 0 setlinecap stroke grestore end 
  1062. @endspecial 427 1096
  1063. a Fb(1)615 1083 y
  1064.  
  1065.  tx@Dict begin gsave stv cp translate /node@d 12 dict def node@d begin /mtrxf
  1066. cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
  1067. InitCnode end grestore end
  1068. 615 1083 a @beginspecial @setspecial
  1069.  tx@Dict begin stp 1.0 slw 0 setgray  0 0 5.00002 2 div 6.44444 0.0
  1070. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1071. 0 setlinecap stroke grestore end 
  1072. @endspecial 605 1096
  1073. a Fb(2)792 1083 y
  1074.  
  1075.  tx@Dict begin gsave stv cp translate /node@e 12 dict def node@e begin /mtrxf
  1076. cm def /r 5.00002 2 div 6.44444 0.0 add 2 div Pyth 3.0 add 1.0 add def 0 0
  1077. InitCnode end grestore end
  1078. 792 1083 a @beginspecial @setspecial
  1079.  tx@Dict begin stp 1.0 slw 0 setgray  0 0 5.00002 2 div 6.44444 0.0
  1080. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1081. 0 setlinecap stroke grestore end 
  1082. @endspecial 782 1096
  1083. a Fb(3)83 1083 y
  1084.  
  1085.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1086. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@a def /nodeB /node@b def
  1087. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1088. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1089. grestore end
  1090. 83 1083 a
  1091.  tx@Dict begin  /t 0.5 def LLPut  end
  1092. 40 1070 a Fb(start)83 1083 y
  1093.  tx@Dict begin  lmtrx setmatrix end
  1094. 83 1083 a
  1095.  
  1096.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1097. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@b def /nodeB /node@c def
  1098. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1099. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1100. grestore end
  1101. 83 1083 a
  1102.  tx@Dict begin  /t 0.5 def LLPut  end
  1103. 73 1113 a Fb(a)83 1083 y
  1104.  tx@Dict begin  lmtrx setmatrix end
  1105. 83 1083 a
  1106.  
  1107.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1108. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@c def /nodeB /node@d def
  1109. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1110. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1111. grestore end
  1112. 83 1083 a
  1113.  tx@Dict begin  /t 0.5 def LLPut  end
  1114. 71 1070 a Fb(b)83 1083 y
  1115.  tx@Dict begin  lmtrx setmatrix end
  1116. 83 1083 a
  1117.  
  1118.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1119. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@d def /nodeB /node@e def
  1120. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1121. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1122. grestore end
  1123. 83 1083 a
  1124.  tx@Dict begin  /t 0.5 def LLPut  end
  1125. 71 1070 a Fb(b)83 1083 y
  1126.  tx@Dict begin  lmtrx setmatrix end
  1127. 83 1083 a
  1128.  
  1129.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1130. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@b def /nodeB /node@b def
  1131. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1132. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1133. 90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1134. setlinecap stroke grestore } if grestore end
  1135. 83 1083 a
  1136.  tx@Dict begin  /t 1.5 def LLPut  end
  1137. 47 1097 a Fb(b)83 1083 y
  1138.  tx@Dict begin  lmtrx setmatrix end
  1139. 83 1083 a
  1140.  
  1141.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1142. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@e def /nodeB /node@b def
  1143. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1144. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1145. 90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1146. setlinecap stroke grestore } if grestore end
  1147. 83 1083 a
  1148.  tx@Dict begin  /t 1.5 def LLPut  end
  1149. 47 1097 a Fb(b)83 1083 y
  1150.  tx@Dict begin  lmtrx setmatrix end
  1151. 83 1083 a
  1152.  
  1153.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1154. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@c def /nodeB /node@c def
  1155. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1156. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1157. -90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1158. setlinecap stroke grestore } if grestore end
  1159. 83 1083 a
  1160.  tx@Dict begin  /t 1.5 def LLPut  end
  1161. 50 1092 a Fb(a)83 1083 y
  1162.  tx@Dict begin  lmtrx setmatrix end
  1163. 83 1083 a
  1164.  
  1165.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1166. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@d def /nodeB /node@c def
  1167. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1168. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1169. -90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1170. setlinecap stroke grestore } if grestore end
  1171. 83 1083 a
  1172.  tx@Dict begin  /t 1.5 def LLPut  end
  1173. 50 1092 a Fb(a)83 1083 y
  1174.  tx@Dict begin  lmtrx setmatrix end
  1175. 83 1083 a
  1176.  
  1177.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1178. def /nodesepA 0.0 def /nodesepB 0.0 def /nodeA /node@e def /nodeB /node@c def
  1179. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1180. EndArrow } def /r 11.38092 def /Lineto { Arcto } def /angleA 0. def /angleB
  1181. -90. def /armA 17.07181 def /armB 17.07181 def NCAngles gsave 0 setgray 0
  1182. setlinecap stroke grestore } if grestore end
  1183. 83 1083 a
  1184.  tx@Dict begin  /t 1.5 def LLPut  end
  1185. 50 1092 a Fb(a)83 1083 y
  1186.  tx@Dict begin  lmtrx setmatrix end
  1187. 195 1495 a
  1188.  
  1189.  tx@Dict begin gsave stv cp translate /node@G 18 dict def node@G begin /mtrxf
  1190. cm def .5 10.83331 4.0 false .5 37.23615 InitRnode end grestore end
  1191. 195 1512 a @beginspecial @setspecial
  1192.  tx@Dict begin stp 1.0 slw 0 setgray  0. true 0.0 0.0 37.23615 14.83331
  1193. Frame  gsave 0 setgray 0 setlinecap stroke grestore end 
  1194. @endspecial 211 1495
  1195. a Fb(GO)o(A)m(T)195 2145 y
  1196.  
  1197.  tx@Dict begin gsave stv cp translate /node@I 18 dict def node@I begin /mtrxf
  1198. cm def .5 10.83331 4.0 false .5 37.23615 InitRnode end grestore end
  1199. 195 2161 a @beginspecial @setspecial
  1200.  tx@Dict begin stp 1.0 slw 0 setgray  0. true 0.0 0.0 37.23615 14.83331
  1201. Frame  gsave 0 setgray 0 setlinecap stroke grestore end 
  1202. @endspecial 211 2145
  1203. a Fb(GO)o(A)m(T)36 2189 y
  1204.  
  1205.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1206. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@I def /nodeB /node@G def
  1207. InitNC { /ArrowA { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow EndArrow } def /ArrowB
  1208. { BeginArrow {false} true 1. 1.0 3. EndDot EndArrow } def /r 3.0 def /Lineto {
  1209. Arcto } def /angleA 90. def /angleB 180. def /armA 56.9055 def /armB 10.0 def
  1210. NCAngles gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
  1211. 36 2189 a
  1212.  tx@Dict begin  /t 2.5 def LLPut  end
  1213. -35 2220 a @beginspecial @setspecial
  1214.  tx@Dict begin stp 0.0 slw 1. setgray  0. true 0.0 0.0 34.25008 14.83331
  1215. Frame  gsave 1. setgray  fill grestore gsave 1. setgray  grestore end 
  1216. @endspecial -19 2204
  1217. a Fb(Do)q(om)36 2189 y
  1218.  tx@Dict begin  lmtrx setmatrix end
  1219. 36 2189 a
  1220.  tx@Dict begin  /t 0.5 def LLPut  end
  1221. 57 2204 a Fb(Zo)q(om)36 2189 y
  1222.  tx@Dict begin  lmtrx setmatrix end
  1223. 36 2189 a
  1224.  tx@Dict begin  199.1692 30. PtoC Tr  end
  1225. 36 2189 a
  1226.  tx@Dict begin  10. Rot  end
  1227. -80 2204 a
  1228.  
  1229.  tx@Dict begin gsave stv cp translate /node@A 18 dict def node@A begin /mtrxf
  1230. cm def .5 10.94444 4.0 false .5 55.97232 InitRnode end grestore end
  1231. -80 2220 a @beginspecial @setspecial
  1232.  tx@Dict begin stp 1.0 slw 0 setgray  0. true 0.0 0.0 55.97232 14.94444
  1233. Frame  gsave 0 setgray 0 setlinecap stroke grestore end 
  1234. @endspecial -64 2204
  1235. a Fb(P)o(olar)13 b(Co)q(or)36 2189 y
  1236.  tx@Dict begin  10. neg Rot  end
  1237. 36 2189 a
  1238.  tx@Dict begin  199.1692 30. PtoC neg exch neg exch Tr  end
  1239. 36 2189 a
  1240.  tx@Dict begin  142.26372 10. PtoC Tr  end
  1241. -80 2204 a
  1242.  
  1243.  tx@Dict begin gsave stv cp translate /node@B 18 dict def node@B begin /mtrxf
  1244. cm def .5 10.94444 4.0 false .5 55.97232 InitRnode end grestore end
  1245. -80 2220 a @beginspecial @setspecial
  1246.  tx@Dict begin stp 1.0 slw 0 setgray  0. true 0.0 0.0 55.97232 14.94444
  1247. Frame  gsave 0 setgray 0 setlinecap stroke grestore end 
  1248. @endspecial -64 2204
  1249. a Fb(P)o(olar)g(Co)q(or)36 2189 y
  1250.  tx@Dict begin  142.26372 10. PtoC neg exch neg exch Tr  end
  1251. 36 2189 a
  1252.  
  1253.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1254. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@A def /nodeB /node@B def
  1255. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1256. EndArrow } def NCLine gsave 0 setgray 0 setlinecap stroke grestore } if
  1257. grestore end
  1258. 36 2189 a
  1259.  tx@Dict begin  /t 0.5 def LLPut  end
  1260. 36 2189 a
  1261.  
  1262.  tx@Dict begin gsave stv cp translate /node@Y 10 dict def node@Y begin /mtrxf
  1263. cm def 0.0 0.0 InitPnode end grestore end
  1264. 36 2189 a
  1265.  tx@Dict begin  lmtrx setmatrix end
  1266. 1158 1481 a
  1267.  
  1268.  tx@Dict begin gsave stv cp translate /node@H 12 dict def node@H begin /mtrxf
  1269. cm def /r 7.50002 2 div 6.83331 0.0 add 2 div Pyth 3.0 add 1.5 add def 0 0
  1270. InitCnode end grestore end
  1271. 1158 1481 a @beginspecial @setspecial
  1272.  tx@Dict begin stp 1.5 slw 0 setgray  0 0 7.50002 2 div 6.83331 0.0
  1273. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1274. 0 setlinecap stroke grestore end 
  1275. @endspecial 1142 1495
  1276. a Fb(H)981 2071 y
  1277.  
  1278.  tx@Dict begin gsave stv cp translate /node@M 12 dict def node@M begin /mtrxf
  1279. cm def /r 9.16669 2 div 6.83331 0.0 add 2 div Pyth 3.0 add 1.5 add def 0 0
  1280. InitCnode end grestore end
  1281. 981 2071 a @beginspecial @setspecial
  1282.  tx@Dict begin stp 1.5 slw 0 setgray  0 0 9.16669 2 div 6.83331 0.0
  1283. add 2 div Pyth 3.0 add clw 2 div add 0 360 arc closepath gsave 0 setgray
  1284. 0 setlinecap stroke grestore end 
  1285. @endspecial 962 2085
  1286. a Fb(M)36 2189 y
  1287.  
  1288.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 2.0 def /offsetB 2.0 neg
  1289. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@H def /nodeB /node@M def
  1290. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1291. EndArrow } def GetAngle dup 8. add /angleA ed 8. sub 180 add /angleB ed 0.67
  1292. 0.67 NCCurve gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
  1293. 36 2189 a
  1294.  tx@Dict begin  /t 0.5 def LLPut  end
  1295. 11 2215 a @beginspecial @setspecial
  1296.  tx@Dict begin stp 0.0 slw 1. setgray  0. true 0.0 0.0 11.91667 12.30554
  1297. Frame  gsave 1. setgray  fill grestore gsave 1. setgray  grestore end 
  1298. @endspecial 28 2198 a
  1299. Fb(r)36 2189 y
  1300.  tx@Dict begin  lmtrx setmatrix end
  1301. 36 2189 a
  1302.  
  1303.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 2.0 def /offsetB 2.0 neg
  1304. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@M def /nodeB /node@H def
  1305. InitNC { /ArrowA { } def /ArrowB { BeginArrow 1. 0.3 1.4 1.0 3.2 Arrow
  1306. EndArrow } def GetAngle dup 8. add /angleA ed 8. sub 180 add /angleB ed 0.67
  1307. 0.67 NCCurve gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
  1308. 36 2189 a
  1309.  tx@Dict begin  /t 0.5 def LLPut  end
  1310. 14 2220 a @beginspecial @setspecial
  1311.  tx@Dict begin stp 0.0 slw 1. setgray  0. true 0.0 0.0 10.77779 14.94444
  1312. Frame  gsave 1. setgray  fill grestore gsave 1. setgray  grestore end 
  1313. @endspecial 30 2204 a
  1314. Fb(l)36 2189 y
  1315.  tx@Dict begin  lmtrx setmatrix end
  1316. 36 2189 a
  1317.  tx@Dict begin  /t 0.75 def LLPut  end
  1318. 36 2189 a
  1319.  
  1320.  tx@Dict begin gsave stv cp translate /node@Z 10 dict def node@Z begin /mtrxf
  1321. cm def 0.0 0.0 InitPnode end grestore end
  1322. 36 2189 a
  1323.  tx@Dict begin  lmtrx setmatrix end
  1324. 36 2189 a
  1325.  
  1326.  tx@Dict begin gsave stv 1.0 slw 0 setgray /offsetA 0.0 def /offsetB 0.0 neg
  1327. def /nodesepA 3.0 def /nodesepB 3.0 def /nodeA /node@Z def /nodeB /node@Y def
  1328. InitNC { /ArrowA { } def /ArrowB { } def /angleA 135. def /angleB 135. def 1.8
  1329. 1.8 NCCurve gsave 0 setgray 0 setlinecap stroke grestore } if grestore end
  1330. 36 2189 a
  1331.  tx@Dict begin  /t 0.5 def LLPut  end
  1332. 36 2189 a
  1333.  tx@Dict begin  langle 180 add Rot  end
  1334. -19 2169 a Fb(Do)q(om)36 2189 y
  1335.  tx@Dict begin  langle 180 add neg Rot  end
  1336. 36 2189 a
  1337.  tx@Dict begin  lmtrx setmatrix end
  1338. 965 2770 a Fb(3)p eop
  1339. %%Trailer
  1340. end
  1341. userdict /end-hook known{end-hook}if
  1342. %%EOF
  1343. -- 
  1344. Timothy Van Zandt   (609)258-4050  tvz@Princeton.EDU (NeXTMail)
  1345. Dept. of Economics,  Princeton University,  Princeton, NJ 08544
  1346.  
  1347.  
  1348. -- 
  1349. Timothy Van Zandt   (609)258-4050  tvz@Princeton.EDU (NeXTMail)
  1350. Dept. of Economics,  Princeton University,  Princeton, NJ 08544
  1351.