summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/psfig
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/psfig')
-rw-r--r--Master/texmf-dist/doc/generic/psfig/README88
-rw-r--r--Master/texmf-dist/doc/generic/psfig/figs/box.ps11
-rw-r--r--Master/texmf-dist/doc/generic/psfig/figs/cm.ps26
-rw-r--r--Master/texmf-dist/doc/generic/psfig/figs/piechart.ps154
-rw-r--r--Master/texmf-dist/doc/generic/psfig/figs/pretzel.ps14
-rw-r--r--Master/texmf-dist/doc/generic/psfig/figs/rosette.ps76
-rw-r--r--Master/texmf-dist/doc/generic/psfig/figs/starlines.ps40
-rw-r--r--Master/texmf-dist/doc/generic/psfig/figs/trevor.ps583
-rw-r--r--Master/texmf-dist/doc/generic/psfig/figs/zip.ps21
-rw-r--r--Master/texmf-dist/doc/generic/psfig/psfig-doc.tex292
-rw-r--r--Master/texmf-dist/doc/generic/psfig/psfig.man261
11 files changed, 1566 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/psfig/README b/Master/texmf-dist/doc/generic/psfig/README
new file mode 100644
index 00000000000..a847dad6e84
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/README
@@ -0,0 +1,88 @@
+psfig/tex -- TeX macros for the inclusion of postscript figures
+
+==================================================================
+
+COPYRIGHT NOTICE
+
+All software, documentation, and related files in this distribution of
+psfig/tex are Copyright 1993 Trevor J. Darrell
+
+Permission is granted for use and non-profit distribution of psfig/tex
+providing that this notice be clearly maintained, but the right to
+distribute any portion of psfig/tex for profit or as part of any commercial
+product is specifically reserved for the author.
+
+Thanks to Ned Batchelder, Greg Hager, J. Daniel Smith, Tom Rokicki,
+Robert Russell, George V. Reilly, Ken McGlothlen, Dr. Baron Grey,
+Gerhard Tobermann and all others who have contributed code and
+comments to this project!
+
+==================================================================
+
+NEW IN VERSION 1.10
+
+- Support for OzTeX (derived from Baron Grey's OzTeX version of psfig)
+
+- New searching path algorithm (from Gerhard Tobermann); looks in
+ multiple directories; looks for file.ps before file.ps.bb...
+
+- Many small bug fixes (underscore in draft mode, angle/clip interaction)
+
+- Improved documentation and man page
+
+==================================================================
+
+SYSTEM REQUIREMENTS
+
+Psfig/tex uses \special calls to manipulate the PostScript environment
+within a document, and include figure files. To use psfig, you must
+therefore be using a postscript device for your output. This version
+of psfig/tex works with the unix "dvips" PostScript driver, which is
+available from labrea.stanford.edu, and with OzTeX.
+
+It may also work with the ArborText "dvips" driver, and with the
+"dvi2ps" written by Tony Li <tli@sargar.usc.edy>; see the
+"unsupported" directory.
+
+==================================================================
+
+INSTALLATION
+
+To install psfig, simply copy psfig.sty into a directory on your TeX
+include path (e.g. /usr/lib/tex/macros).
+
+If you are using OzTeX, change the driver line at the top of
+the psfig.sty file to read
+ \def\setDriver{\OzTeXDriver}
+instead of
+ \def\setDriver{\DvipsDriver}
+
+
+A users guide and manual page can be found in the "doc" directory.
+
+For tips on dealing with Macintosh postscript, see the directory
+"unsupported/macdemo/README".
+
+==================================================================
+
+BUGS
+
+If you use the letter style, make sure you include the psfig style
+first.
+
+If you have an old version of dvips, you may need to make a patch to
+use the compressed figure option, and to handle magnification
+correctly. The files "unsupported/dospecial.[patch,frag]" contain a
+patch and a corresponding code fragment for dvips' dospecial.c file.
+To apply the patch copy dospecial.patch into your dvips directory and
+run "patch < dospecial.patch", and then recompile. "dospcial.frag"
+contains the modified portion of the code as it should appear in the
+patched file. To use magnification with psfig and dvips, you need to
+change the line
+ /magscale false def
+in special.pro to
+ /magscale true def
+in order to have the figures scaled correctly.
+
+
+
diff --git a/Master/texmf-dist/doc/generic/psfig/figs/box.ps b/Master/texmf-dist/doc/generic/psfig/figs/box.ps
new file mode 100644
index 00000000000..ca6807a1384
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/figs/box.ps
@@ -0,0 +1,11 @@
+%!
+%%BoundingBox: 0 0 1 1
+newpath
+0 0 moveto
+1 0 lineto
+1 1 lineto
+0 1 lineto
+closepath
+.8 setgray
+fill
+
diff --git a/Master/texmf-dist/doc/generic/psfig/figs/cm.ps b/Master/texmf-dist/doc/generic/psfig/figs/cm.ps
new file mode 100644
index 00000000000..93b94b0a3bb
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/figs/cm.ps
@@ -0,0 +1,26 @@
+%!
+%%BoundingBox: 27.47 27.47 172.52 172.52
+
+100 100 translate
+newpath
+ 0 0 moveto
+ 0 0 72 0 90 arc
+ closepath
+ fill
+
+ 0 0 moveto
+ 0 0 72 90 180 arc
+ closepath
+ stroke
+
+ 0 0 moveto
+ 0 0 72 180 270 arc
+ closepath
+ fill
+
+ 0 0 moveto
+ 0 0 72 270 360 arc
+ closepath
+ stroke
+
+showpage
diff --git a/Master/texmf-dist/doc/generic/psfig/figs/piechart.ps b/Master/texmf-dist/doc/generic/psfig/figs/piechart.ps
new file mode 100644
index 00000000000..164583e8d87
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/figs/piechart.ps
@@ -0,0 +1,154 @@
+%!
+%%BoundingBox: 126 246 486 546
+% Cookbook Example Program from First Printing, Revised 7 Jan 1985
+% Program: Drawing a Pie Chart Number: 18
+%-----------------------------------------------------------------------------
+%
+/PieDict 24 dict def % Local storage for
+ % ``DrawPieChart'' and its related
+ % procedures.
+PieDict begin
+ /DrawSlice % DrawSlice draws an outlined and
+ { /grayshade exch def % filled-in pie slice. It takes
+ /endangle exch def % four operands: the label for
+ /startangle exch def % this particular pie slice, the
+ /thelabel exch def % starting angle for the slice,
+ % the ending angle for the slice
+ % and the shade of gray the slice
+ % should be.
+
+ newpath % Create a path which will draw a
+ % pie slice.
+ 0 0 moveto
+ 0 0 radius startangle endangle arc
+ closepath
+
+ 1.415 setmiterlimit % This guarantees that when we
+ % outline the pie slices with a
+ % stroke that we will not get a
+ % spike on the interior angles.
+ gsave grayshade setgray fill grestore % Fill the pie slice path with the
+ stroke % appropriate gray color. By using
+ % gsave and grestore we don't lose
+ % the current path. Since
+ % PostScript paints color onto the
+ % page, it is very important that
+ % we fill the pie slice first and
+ % then outline it with a stroke.
+ gsave % Draw the tick mark and place the
+ % label:
+ startangle endangle add 2 div % Find the center of the pie slice
+ rotate % and rotate so that the x-axis
+ % coincides with this center.
+ radius 0 translate % Translate the origin out to the
+ % circumference.
+ newpath
+ 0 0 moveto labelps .8 mul 0 lineto% Draw the tick-mark.
+ stroke
+ labelps 0 translate % Move the origin out a little
+ % beyond the circumference.
+ 0 0 transform % Next we wish to place the label
+ grestore % at the current origin. If we
+ itransform % simply draw the text on the page
+ /y exch def /x exch def % now, it would come out rotated.
+ x y moveto % Since this is not desired we
+ % avoid it by returning to the
+ % previous unrotated coordinate
+ % system. Before returning,
+ % though, we would like to
+ x 0 lt % remember the position of the
+ { thelabel stringwidth pop neg % current origin on the printed
+ 0 rmoveto % page. We will accomplish this by
+ } if % using the transform and
+ % itransform operators. Performing
+ % a transform on the origin pushes
+ % the coordinates of the origin in
+ % device space onto the operand
+ % stack. Performing a grestore
+ % returns us to the previous
+ % unrotated coordinate system.
+ % Next we perform an itransform on
+ % the two device coordinates left
+ % on the stack to determine where
+ % we are in the current coordinate
+ % system.
+ y 0 lt { 0 labelps neg rmoveto } if % Make some adjustments so that
+ thelabel show % the label text won't collide
+ } def % with the pie slice.
+ /findgray % Procedure findgray calculates
+ { /i exch def /n exch def % the gray value for a slice. It
+ i 2 mod 0 eq % takes two arguments: the total
+ { i 2 div n 2 div round add n div } % number of slices and the current
+ { i 1 add 2 div n div } % slice number (Given that there
+ ifelse % are n pie slices, the slices are
+ } def % ``numbered'' from 1 to n). The
+end % gray values for the pie slices
+ % range evenly from white to black
+ % (i.e. - the values provided to
+ % setgray range from (n/n, n-1/n,
+ % ..., 1/n)). Since we don't want
+ % similar values of gray next to
+ % each other, findgray
+ % ``shuffles'' the possible
+ % combinations of gray.
+
+/DrawPieChart % DrawPieChart takes seven
+ { PieDict begin % arguments: the title of the pie
+ /radius exch def % chart, the point size to print
+ /ycenter exch def /xcenter exch def % the title in, the point size to
+ /PieArray exch def % print the labels for each slice
+ /labelps exch def /titleps exch def % in, a special array (described
+ /title exch def % below where DrawPieChart is
+ % called), the (x,y) center of the
+ % pie chart and the radius of the
+ % pie chart.
+
+ gsave
+ xcenter ycenter translate % Translate the coordinate system
+ % origin to center of pie chart.
+ /Helvetica findfont titleps % Print the title of the pie chart
+ scalefont setfont % in Helvetica.
+ title stringwidth pop 2 div neg % Center the title below the pie
+ % chart.
+ radius neg titleps 3 mul sub
+ moveto title show
+ /Helvetica findfont labelps % Print the individual pie slice
+ scalefont setfont % labels in Helvetica
+ /numslices PieArray length def
+ /slicecnt 0 def
+ /curangle 0 def % A ``loop'' variable that keeps
+ % track of the angle of arc to
+ % begin each pie slice at.
+ PieArray % Repeat the following for each
+ % element in the PieArray.
+ { /slicearray exch def
+ slicearray aload pop % Push the label and percentage
+ % onto the stack.
+ /percent exch def
+ /label exch def
+ /perangle percent 360 mul def % Convert the percentage into
+ % degrees of angle.
+ /slicecnt slicecnt 1 add def
+ label curangle
+ curangle perangle add
+ numslices slicecnt findgray
+ DrawSlice
+ /curangle curangle perangle add % Update the current starting
+ % angle.
+ def
+ } forall
+ grestore
+ end
+ } def
+
+() 18 9
+ [ [(Blueberry) .12 ] % The pie array is an array of
+ [(Cherry) .30 ] % arrays. Each array in the pie
+ [(Apple) .26 ] % array contains a string denoting
+ [(Boston Cream) .16 ] % the label to be printed next to
+ [(Other) .04 ] % the pie slice followed by a real
+ [(Vanilla Cream) .12 ] % number indicating the percentage
+ ] 306 396 100 DrawPieChart % of the pie represented by this
+ % particular slice.
+showpage
+
diff --git a/Master/texmf-dist/doc/generic/psfig/figs/pretzel.ps b/Master/texmf-dist/doc/generic/psfig/figs/pretzel.ps
new file mode 100644
index 00000000000..e6bbf413b34
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/figs/pretzel.ps
@@ -0,0 +1,14 @@
+%! pretzel.ps -- an example for the psfig paper.
+%%BoundingBox: 95 100 185 200
+
+5 setlinewidth
+1 setlinecap
+110 100 moveto
+120 120 140 160 160 160 curveto
+170 160 180 150 180 140 curveto
+180 120 160 100 140 100 curveto
+120 100 100 120 100 140 curveto
+100 150 110 160 120 160 curveto
+140 160 160 120 170 100 curveto
+stroke
+showpage
diff --git a/Master/texmf-dist/doc/generic/psfig/figs/rosette.ps b/Master/texmf-dist/doc/generic/psfig/figs/rosette.ps
new file mode 100644
index 00000000000..2ab4424b556
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/figs/rosette.ps
@@ -0,0 +1,76 @@
+%!
+%%BoundingBox: 124.38 124.38 487.61 487.61
+% Cookbook Example Program from First Printing, Revised 7 Jan 1985
+% Program: Repeated Shapes Number: 6
+%-----------------------------------------------------------------------------
+%
+ % This program prints a rosette
+ % design by defining a section of
+ % that design and printing that
+ % section repeatedly. This program
+ % illustrates the ``for'' and
+ % "arc" operators, and it shows
+ % how coordinate transformations
+ % can be nested so as to use the
+ % most convenient coordinate
+ % system for each part of a
+ % design.
+/inch {72 mul} def
+
+/wedge % Define an ``ice cream cone''
+ { newpath % shape by means of the ``arc''
+ 0 0 moveto % operator. This shape will have a
+ 1 0 translate % 30 degree angle topped off with
+ 15 rotate % a semicircle. Set the path's
+ 0 15 sin translate % first point at the current
+ 0 0 15 sin -90 90 arc % origin. Next, move the origin to
+ closepath % the center of the semicircle by
+ } def % translating to the right 1 unit,
+ % rotating counter-clockwise by 15
+ % degrees, and translating ``up''
+ % in the rotated system by the
+ % radius of the semicircle. The
+ % ``arc'' operator includes a
+ % straight line to the initial
+ % point of the arc and a curved
+ % section to the end of the arc.
+ % Note that the semicircle goes
+ % from -90 degrees to 90 degrees
+ % in the rotated coordinate
+ % system.
+
+gsave
+ 4.25 inch 4.25 inch translate % Move into position for the
+ % rosette.
+ 1.75 inch 1.75 inch scale % Make the edges of the rosette 1
+ % 3/4 inches long.
+ 0.02 setlinewidth % Use a 7/200 inch thick line.
+ 2 1 13 % Set up the ``for'' operator to
+ % iterate 12 times, pushing 2 onto
+ % the stack the first time, 3 the
+ % next time, ... , and 13 the last
+ % time.
+ { % The last argument for ``for'' is
+ % the sequence of operations to be
+ % repeated. This sequence must be
+ % enclosed by braces.
+ 13 div setgray % Divide the loop index by 13 to
+ % set a gray value.
+ gsave % Enclose the ``wedge'' operation
+ wedge % in a ``gsave''-``grestore''
+ % pair, as it will mess up the
+ % coordinate system.
+ gsave % Save the wedge path for use
+ % after the ``fill''.
+ fill
+ grestore
+ 0 setgray stroke % Draw a black border around the
+ % wedge.
+ grestore % Get out of the coordinate system
+ % left by wedge.
+ 30 rotate % Set up for the next section.
+ } for % Close the last argument and
+ % execute the ``for'' operator.
+grestore
+showpage
+
diff --git a/Master/texmf-dist/doc/generic/psfig/figs/starlines.ps b/Master/texmf-dist/doc/generic/psfig/figs/starlines.ps
new file mode 100644
index 00000000000..a7cf877ea60
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/figs/starlines.ps
@@ -0,0 +1,40 @@
+%!
+%%BoundingBox: 300 400 410 420
+/Times-Roman findfont
+30 scalefont setfont
+newpath
+300 400 translate
+.25 setlinewidth
+0 0 moveto
+(StarLines) true charpath clip
+
+/rays {
+ 0 1.5 179
+ { gsave
+ rotate
+ 0 0 moveto
+ 108 0 lineto
+ stroke
+ grestore
+ } for
+} def
+
+
+newpath
+54 -15 translate
+rays
+showpage
+
+
+
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
diff --git a/Master/texmf-dist/doc/generic/psfig/figs/trevor.ps b/Master/texmf-dist/doc/generic/psfig/figs/trevor.ps
new file mode 100644
index 00000000000..b46453479aa
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/figs/trevor.ps
@@ -0,0 +1,583 @@
+%!PS-Adobe-1.0
+%%Title: trevor
+%%Creator: Ned Batchelder
+%%CreationDate: Wed Mar 26 11:05:04 1986
+%%BoundingBox: 72 72 432 525
+
+%%Pages: 1
+%%EndComments
+/doimage {
+ /b exch def /m exch def /n exch def
+ /pix n string def
+ n m b [n 0 0 m neg 0 m]
+ { currentfile pix readhexstring pop }
+ image
+} def
+/spotsize {
+ /perinch exch def
+ currentscreen 3 -1 roll
+ pop perinch
+ 3 1 roll setscreen
+} def
+/invert {
+ /curtran currenttransfer cvlit def
+ /newtran curtran length 3 add array def
+ newtran 0 {1 exch sub} putinterval
+ newtran 3 curtran putinterval
+ newtran cvx settransfer
+} def
+72 72 translate
+%%EndProlog
+%%Page: ? 1
+360.000 453.600 scale
+60 spotsize
+112 176 8 doimage
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefbffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffdeaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffdf2ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffac8ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffacb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefdfcfcfdfefffffefbf8fafdfeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffff8b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefcf7eddbc9c1c1cbd9e5eff1d9b5b3c8
+e0f3f7fafeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffbd5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffef9f0ddc3a88e725d56565e6e82949e
+8c65545d759bb6d0f5fefefefdfeffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffad3ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefef9e4bf99785f4f443d38363539
+3f484b4e4c423d3b3b485a77bbf0fdfaf2f4fdffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffff6a2ffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffefdf6dfb98b644b3f39383735
+32302f31343738393a383c3f3735394576c6eefbf7f0f5fdffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff6a4ffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffef5d8ae805b453a3734
+32333333302e2d2e30313336393a393a3a3536384e8ad0f7fefaeff8feffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffff6a4ffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefce8b98159463b
+363535363536353434322f3031303234383c3e3835343536405da3e8fcfef2f2feffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffff9c7ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef5d59b64
+49403b3735343433333333333231303335322f30333a4040373233383f486ec3f0fcf8ec
+fbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff59bffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefbe9
+ba7d503d383634323233312f2f2e2b2b2b2c2c2f3235312d2c3038403c3533383d404d8b
+d0f1faebf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff599
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fef5d199654437343433302e2f312e2b2a2726272a2c2c2c2d3135332d2b2f3a3e383432
+3a3d405c9cd4eeeefaffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffff8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdecbe7d4f3a353333312e2b2829282624252627282929292b2b2b3038352e2b30
+393b3730323a38416eaedbedfcffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff7b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffce5a96944353132302e2b2928272928272727292926232325272c2f2e31
+332e2b29303837302d3436375583bed8f2feffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffff8bcffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffde5a6643f343333312e2b2a2a2c2d2f2f2e2d2e2f2d2a27262729
+2d30303030312f2a293137332b2e32333f5e83a0c3e9f8fdfeffffffffffffffffffffff
+fffffffffffffffffffffffffffff9c7ffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffef0af6a4436333333302f2d2d2e2f2e2d2d2f2e2f302e2d
+2c2d2f31322f2c2e3234332c272c33342c2a2d30323f53667ca7cadff2fdffffffffffff
+fffffffffffffffffffffffffffffffffffffad3ffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffff8c8774b3b35322f2e2d2c2b2c2d2f2d2b2c2e2d
+2d302f2e2d2d2f3132322d292d333933282b2e32312c2c2c2e333e4b597498b9d2ecfdff
+fffffffffffffffffffffffffffffffffffffffffffff8bfffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffee18e523d35312b272525252424272a2b
+2a2a2a28292a2b2c2b2b2c2e3032332f2b2c34382e292c2d2f2d2c2a2d2f333b4655688b
+bfdef3fdfffffffffffffffffffffffffffffffffffffffffffffacfffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffef8b7633f332e2a252424252524
+222323252526242121222426282727282a2d35372f282a35382c29282a2d2e2c2b2e2f31
+383c455784bfe1f5fefffffffffffffffffffffffffffffffffffffffffffdf1ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffcda7f45322a27252628
+28282928262423262726252422222020232527292b2e31333129252831312a2525292c2e
+2c2b2e2b3032353c4d77b3d9fafffffffffffffffffffffffffffffffffffffffffffbdd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeefa253352b26
+2527282625262828272827262626282a26242122262a2b29292c2f3235302623262d2d26
+2426292e2d292b2a2b2e2f333b4a70a8ebfeffffffffffffffffffffffffffffffffffff
+fffffad5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbca70
+3f2f2926242425222021222324272b2a2927282a292928282a2c2d2c2c333633312f2a26
+222327282625262b2f2b282a2a2b2c30363b486bc8fbffffffffffffffffffffffffffff
+fffffffffffff9d2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fee7934c352e29272727272522222223222124272726282b2a2a2a2a2b2b29292c343936
+2e29262623202124282624272b2b27292a292a2f33363d4c90eafeffffffffffffffffff
+fffffffffffffffffffff9d3ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffff7ba6038312d28292b2c2c2a26242426231e1d1f212225282828282928242223
+293136342f2a26232122212124242426282b2b2a2928282c31353a4260bbf9ffffffffff
+fffffffffffffffffffffffffffff8bbffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffedf844434312d2b2c2c2c2c292725242625221f1e1d1e212426262425
+24212022262b2f2d2a292724202021202223232525282a2d292526292e353c414b81e1fe
+fffffffffffffffffffffffffffffffffffff7b2ffffffffffffffffffffffffffffffff
+fffffffffffffffffffffff9b75c3934312e2e2e2b28272524222426262525211e1f2225
+292926252323262c2e2f2e2b2825242423211e1f212223222325282c2a2625272a313940
+475baff6fffffffffffffffffffffffffffffffffffff7bdffffffffffffffffffffffff
+fffffffffffffffffffffffffffffee88b453735302e2b2a282625222223242626272724
+22232425282b28252324282f32312e2a2827242221201e1d1f2023222224282b2b272628
+2a2d333c434e81dffefffffffffffffffffffffffffffffffffff6abffffffffffffffff
+fffffffffffffffffffffffffffffffffffff9be623b36312b2824222223242323252728
+262625242424222022262624232123282c2a272423232220201f1d1c1d2022232322262a
+2c2a2626282b2f373b4660b6f8fffffffffffffffffffffffffffffffffff7b6ffffffff
+fffffffffffffffffffffffffffffffffffffffffffee9924a37322b2523212021232624
+24252b2b2726252425262322222122232322232426292c2e2a26221f1f1e1d1c1e202324
+24232426292a2725272b2e32373f4e86e4fefffffffffffffffffffffffffffffffff9c8
+fffffffffffffffffffffffffffffffffffffffffffffffffffdd46f3d312a2422222220
+20212322222124262626262526252322211e212221201f2022252c32332e2925221f1d1e
+2024282a292927252627282526292f3233394463bef9ffffffffffffffffffffffffffff
+fffffbddfffffffffffffffffffffffffffffffffffffffffffffffffef7b155332a2422
+21211f1e1f202223221f1d202324252526231f1d1d1e2528272220202226272a2e2d2a27
+23212020242a3136363430282422242626262a3134363e4f8fe8feffffffffffffffffff
+fffffffffffffad0fffffffffffffffffffffffffffffffffffffffffffffffffee3853f
+2d27232222222221212326262320212121202121232422202123282c302f2b2b2c2c2b2c
+2d2c2927252524262e3a444e504b4435292321232827292d32363a4264c3f9ffffffffff
+fffffffffffffffffffff8bdffffffffffffffffffffffffffffffffffffffffffffffff
+f6b65930282523242425242123262622212123222020212123262827272426292f343131
+32302d2b29272524252529314057646e74695b48322621222728292c30363b3f4b8be8fe
+fffffffffffffffffffffffffffffce9ffffffffffffffffffffffffffffffffffffffff
+fffffffee1843c2824252525252524232526242020212322222122212225282927242323
+272a2a2c2f2c28262625242324293547627f8b91958a755e412b23212529292b2e33373e
+4461c4fcfffffffffffffffffffffffffffffce8ffffffffffffffffffffffffffffffff
+fffffffffffffffac05e2f2524242525242221232525242322212221201f202123252422
+201f1f1f2121242626272728272625272a374c6683a5acaba9a090745436252123292b2b
+2d3033383d4c99f1fffffffffffffffffffffffffffffad7ffffffffffffffffffffffff
+fffffffffffffffffffffef19843292524222223221f1e202122232623202021211f1e1f
+242625211d1d1e1f2121232627272a2e2e2c2b2d364e6d89a0bec4bfb6aca18c6c472c22
+21262a2e2f303336384171d4fcfffffffffffffffffffffffffff9c9ffffffffffffffff
+fffffffffffffffffffffffffffffee075332826232120201f1e1c1c1d1e222524201e21
+22201c1a1e222423201f21242425282b2f302f302f2f30384b6b8eacbfcbcec9c0b4aa9b
+82613d262124272d30313637373e5fa9ecfefffffffffffffffffffffffffce5ffffffff
+fffffffffffffffffffffffffffffffffffffbc3592e28241f1e1e1d1e1d1c1c1d1e2123
+23201f1f1f1d1b191a1c1e20212021232425282a3035363333343b4e698eb4c9d1cfcecb
+c6baac9f917f5931242425282d32373a383e609fe0fcfffffffffffffffffffffffffad6
+ffffffffffffffffffffffffffffffffffffffffffffef9d452b27221e1d1b1c1c1c1d1e
+1e1e21222221201e1c1b1b1b1b1d1c1c1e1d1c1e1f212224272e3539414f647f9dc0d7db
+d8d3d0cecabfb0a49c9378472924252429303538353c5b96dcf8feffffffffffffffffff
+fffff8b9fffffffffffffffffffffffffffffffffffffffffffdd977382924201e1c1b1b
+1b1c1e1e1d1f2221201f1d1c1b1b1c1c1e1f1e1f211f1d1e1f202023252b3549657f96ae
+c9d8dfded9d6d1cfcdc2b4aaa39e8e6333252623242b313231374d83d2f1fdffffffffff
+fffffffffffffad1fffffffffffffffffffffffffffffffffffffffffff9b85c3126231e
+1d1c1d1d1c1c1c1c1b1c1e1f1e1d1c1c1d1e1e1f20202024272222222224262a2f364568
+8aa3b9cfe0e0dcdbd8d8d3d0cdc2bab1a7a29c7f492a282524282d2f2f354c78beeffdff
+fffffffffffffffffffff8c1fffffffffffffffffffffffffffffffffffffffffef09c4a
+2c25211e1d1d1d1d1e1c1a191a1d201f1e1e202122222222222223252421232526292c34
+3c455d85a9c0d4e4eae6dedadadad5d0ccc6c0b8ada5a3926334292928292d302f365d95
+d0f6fefffffffffffffffffffffff9c4ffffffffffffffffffffffffffffffffffffffff
+fdda7b3e2a24201e1e1c1c1d1e1c1a191a1c1e1d1d1f2225262624222121202121212327
+2a2b303a455778a2c3d6e2e8eaeae4dcdadad6d1cdcbc5bcb0a9a59b77402a2a2b2c3034
+313b7bcaf5fefffffffffffffffffffffffff9c4ffffffffffffffffffffffffffffffff
+fffffffffac061362924201e1d1b1b1d1e1d1b1a1a1b1c1c1e202224252424212020201f
+1e2124272a2e36455a779dbfd5dfe2e5e7e9e7dfdcdad7d3cfcdc8bfb2aba9a0844f2e2a
+2a2e323734429bf1fefffffffffffffffffffffffffffad2ffffffffffffffffffffffff
+fffffffffffffffff4a9513227231f1e1c1b1b1d1e1d1b1a1a1b1c1d1e1f201f1e1e2121
+201f1f1f20232529303c4f647e9dbbd0d9dcdde2e6e8e6e3dfd8d5d4d1cfc8bdb2adaca2
+8c5e332b2c2e32383745a8f8fffffffffffffffffffffffffffff9c5ffffffffffffffff
+ffffffffffffffffffffffffeb94492f25211e1d1c1b1c1c1d1c1b1a1a1c1d1d1c1d1f1f
+1e1e1f1e1f20212224262a34465d758ba0b4c7d1d4d8dce0e4e5e6e5e1d9d6d6d4cfc7bb
+b3afada59167382d2c292e3437439af3fffffffffffffffffffffffffffffad3ffffffff
+fffffffffffffffffffffffffffffffee17f412e24201e1c1b1c1e1e1f1e1d1b1c1c1c1b
+1b1c1e202021211e20232325282b364e6a8095a3b0becad1d6e0e5e9eaeaecece5dddad8
+d7d2c7bbb4afaba7956f3d2e2c25292f333d81e8fffffffffffffffffffffffffffffbdc
+fffffffffffffffffffffffffffffffffffffffccf693a2b23201e1b1b20262827262220
+1e1c1c1b1a1b1d202324211f2125282a2f3953728b9aa7aeb5c1cbd3dde8eef4f5f7f8f4
+ece5e0dbd7d3cabdb6b0aaa4967443312e24252a2f3770e0feffffffffffffffffffffff
+fffff8bafffffffffffffffffffffffffffffffffffffff8b256352a25221e1b1d2a3b3f
+37312f2c261f1d1b1b1d1e202525212024292f373f547691a0a9aeb3b9c1cbd6e3eef3f9
+fcfdfdf9f1e9e2ddd7d2ccc4bab2aaa495774833302524262c3363d8feffffffffffffff
+fffffffffffff9c9fffffffffffffffffffffffffffffffffffffff399442f2925231f1b
+20354b534d4647463a2b25201e211f1f2222202329303c49537495a8aeb0b3b8bfc8d5e2
+eef7fafcfefefdfbf4e9e2ded5d0ccc7bfb6ada393794a332f2421242b315dd3feffffff
+fffffffffffffffffffffad3fffffffffffffffffffffffffffffffffffffee681382b26
+2525201c233a535e5e5a5c5c54463d342a23232222222429303d4f596f95acb8bab9bdc2
+cbdae5edf3fbfefefefffefbf5eae1dcd4d0cdc8c1b9afa2937c4d332d2320242a305ad1
+fdfffffffffffffffffffffffffff9cbfffffffffffffffffffffffffffffffffffffdd3
+6a2f26242426201c253d556063646666635f584f4034302d2c2e30343d4c5c7499afbac2
+c7ccd3d6dce8edf0f6fdfefffffffefbf5ece5dfd7d3d0cbc3bbb1a4967e4d332c241f24
+292f5ed6fefffffffffffffffffffffffffff7b1ffffffffffffffffffffffffffffffff
+fffffccc602c23212226211d243b535f636669696a6c69665b514e4d4a4a4c4d54627a9d
+b6c1cad4dde3e7e6e7eceff4fbfefffffefefefcf7efeae3d9d8d7d2cabeb4a79a824f34
+2e241f24282d5cd3fefffffffffffffffffffffffffff7b7ffffffffffffffffffffffff
+fffffffffffffbc65929211f2024221e243a515f63676a6b6d6f70726f6b6c6e6e707375
+7f92aac0ccd5e0e9eeeff0eeedeff1f6fcfefffffefcfcfcf8f1ebe2dbdadad5cfc5b7a9
+9a824d302e242023272b59cffdfffffffffffffffffffffffffffad0ffffffffffffffff
+fffffffffffffffffffffab94d26201e1f23221f2338505f64696b6c6e70737577787a7f
+858c9299acc1cdd7dee6eef1f3f3f2f2f1f4f5f8fcfefffffdf4f5faf8f2ece2d9d8d9d5
+d0c8bbab9b834c2d2a242223262955ccfdfffffffffffffffffffffffffff8bbffffffff
+fffffffffffffffffffffffffffff9b34825211e1e22232022324a5d666a6c6c6f727578
+7a7c8189929aa2aec1d3dce4e9eef2f4f5f4f2f5f6f8f8fbfcfcfefefdf7f5f8f3ece9df
+d3cecdcbcac6beaf9f88522e2a252223252748bafbfffffffffffffffffffffffffff8ba
+fffffffffffffffffffffffffffffffffffff6ab4325211e1d212521202c465a656a6c6d
+6f72767a7f8289919aa2acb7c7d5e1e9edf0f3f3f3f2f4f5f7f8f8f8f8f8fdfcf9f4f3f0
+e5dad4c6b8afa9a9b3bdbbb0a28c582e2925222223263ea9f9ffffffffffffffffffffff
+fffff7adfefefefffffffffffffefefefffffffefefef09b3d231e1d1d21251f1c284257
+63696c6f6f73787e848990969ea5aeb8c5d1dce0e7e9edefefeef0f1f1f4f4f3f3f3f6f2
+eae4dfd2bfafa190837c75768297a8aaa18d5a2d2724201f21243ba3f8ffffffffffffff
+fffffffffffff7b9fdfefefefefefefefefefdfdfefefdfdfdfdec973d231e1e1f232620
+1c243c54636a6d6f71777c838a8f949aa1a6adb5bdc6cfd4dadee1e6e9e9ebeae7e9ecef
+eeebe5ddd7cdb79c7f6c635a53514c4e5362788e978e612f2723201f2124399ff8ffffff
+fffffffffffffffffffff8bafbfcfbfcfbfcfcfcfbfcfbfbfbfaf9f9f9faeb993f231e1e
+202528201b21375160696e70727981898e92969da2a6aaafb6bcc3c5cbd1d5dbe1e1e4e1
+dddce1e5e2dbd3c6bba37f62493f3d3b3b3b3a3b3f4751607583673226221e1e20233698
+f6fffffffffffffffffffffffffff8b6f7f7f8f7f7f8f8f6f6f8f6f6f6f4f3f3f4f5e595
+40241f1f222526201c1f324d5d666c707379848c9093979c9fa1a5aaaeb0b3b4b9c2c9cd
+d5d8dcd9d2d0d4d8d2c7bdae9775544135302f30353a3c3d4144484e5a706a3625221e1e
+2022328cf3fffffffffffffffffffffffffff5a5f3f3f5f4f3f2f2f2f2f2f1f1f0f0eff0
+f0eedb9041261f1f212323201c1d2a465a646b6f747a838b90919294969a9d9d9d9fa0a4
+a9afb7bfc8cdd0cfc9c6c9cbc4b9ab92735642362e2b2e3a4a545a5c5b58585755636b3e
+2521201f20212c7aebfffffffffffffffffffffffffff7b4f0f1f1f1f0efefeeefeeedee
+ededececebe9d08a4328211f2021211f1c1d253f57636a6e757c8288898482807c7d7f7b
+797a818d9498a3b0b9bdc2c6c0bebfc1bbaf9a77584337322f34445b6b757b7a77746f66
+6168704a2822232422232a68defefffffffffffffffffffffffff9c5eceeeeeeedececec
+ececebebeaeae9e8e8e5cc8b4528211f1f1f1e1d1c1b20365261696d737c817f7669605c
+5756554f4d5159687178889ba8adb6bcbcbcbdbcb3a38b694d3f38353a475869737a8282
+7f7c79737078805d2c24262825252b58cefdfffffffffffffffffffffffff8beeaebeaea
+eaeae9e9e8e8e9e8e6e7e6e4e5e2cd8d4527211f1d1d1d1c1a191c2f4d5f686d72787467
+5b4d413d3b39363233383b434b556880939daab5bec4c3beb19c81654f47423d41495562
+65646f7476787a797a858c6c3123272a29292e52c3fcfffffffffffffffffffffffff7af
+eaeae8e8eae8e6e7e6e6e6e7e5e4e3e2e2dfcc8e442722201e1c1c1b1b1a1b2a4a5f696e
+706b5b4b4037312d2b2a2726282c2c2e343d4f677e8fa2b3c1cecec4b29b806a584b4342
+464a4d5251525b5e5e6975797d89927a3a23262b2d2c2e50bffbffffffffffffffffffff
+fffff8bbe9eae8e7e8e6e5e6e4e5e4e4e3e2e1e0e0dbc487422924211f1d1c1b1a191925
+475f686c69574136312c2927272623222528292b2d3443566c8099b3c9d5d6ccb59c856e
+584a4848433d3b473c464b514f5468757f8b9584462627292b2b2c52c2fbffffffffffff
+fffffffffffffacee8e8e6e6e5e5e6e5e3e4e4e4e2e1e0e0e0dac2833f272323201e1c1a
+1a1a1a22435f68675b44332d2c2c2e3033322f2d2d2d2e2e2f36424d5e7390b1cfe0e4d7
+b99d866e58504f4942413c6746555043464e5b6f7f8c968e542a29292a292b5ccdfcffff
+fffffffffffffffffffff8bee7e7e5e5e4e5e5e4e4e3e3e3e2e1e1e1e0d9bf7d3e272223
+221f1c1a1a1a1820415f665c49393332373e444a4c48413b34302f2e30374149566a89b1
+d6e9f3dfbb9d8770605a585d5047374d4e6c69544c555f6d808e989364302929292b2f71
+ddfdfffffffffffffffffffffffffacae7e6e5e4e3e4e3e4e3e3e3e3e2e1e1e0e0dbc07f
+4027212022201b181919191f3d5e61503f38373d4952585b574f463e3a383b3834363d48
+546580a9d2e9f4dfbca18b7b71696d7f664f444b5d82826f66676d7583939c9873382b2b
+2a2d3889ecfefffffffffffffffffffffffffbdae6e6e5e5e3e4e3e3e2e3e2e3e2e1e1e0
+dfdac1834328211f1f1f1c191919191f3d5d5b483e40454c555a5a54483f3b34393d4647
+443e3f485464789cc9e3ecdabaa5938f888083907d635d66798d8e83838788888f9ea39d
+7d403636313049abf8fefffffffffffffffffffffffff8bbe5e4e5e5e3e3e4e2e2e3e1e2
+e2e1e1dfded9c28b4b2a201e1e1c1a181918191f3e5d5a4d494b505558544b43382d2b28
+444d59574c4e4b4e56647495c2dfe7d6b9a79a9e98908e8d857a788191999b9a9ca1a3a2
+a3abaca38449454c423d6ed6fdfffffffffffffffffffffffffff8bae6e5e5e4e3e2e2e2
+e2e1e0e1e0e0e0dededccca35f2f201e1e1b1a1818191a1f3e5e5e585654545450443936
+312d2d273d55828b6153595b5b627190b9d8e1d4bca99da1a39f968e86838891a0a9acaa
+a9aeb1b2b3b7b3aa8f5a515e5759a1f0fffffffffffffffffffffffffffff7ade6e6e6e5
+e4e2e2e3e3e2e0e0dfe0e1dededed6bd7a39211d1c1b1b1817191a1f3f6165605c57534f
+453630333b3b3b36405d95a68068676962626e8aaeccd8cebaa99c9ba09d928d8a8b929f
+acb2b1acaab2bbc0bfbeb6ad9a7566666680d5fbfffffffffffffffffffffffffffff7b9
+e6e7e6e5e6e3e3e3e3e1e0dfe0e1e1dedfe0ddce9546241e1c1b1b1918191a2042636864
+5f56524a3c33323f50514e505870909f93857d7367636d84a4c3d1cbb6a99d969a9b9189
+86888e97a0a5a5a5acbbc6cac6c1b8ada091857576a5effeffffffffffffffffffffffff
+fffff8bae7e7e6e5e4e4e3e3e4e3e2e0e1e2e1dfe0e0dfd8ac5a2a1f1d1c1d1b1a1a1a21
+44646a68625751473e3e44526267666a6e7c8b95918b807064636d7f9cbfd0ccbbaea49d
+9da0a098908b8b8e949ba3aebcc8d0cecac4baaea29c9b9294c1f7ffffffffffffffffff
+fffffffffffff8b6e7e8e7e6e6e4e5e4e4e3e2e2e2e3e2e1e1e1e0dcbf7434221f1f201e
+1c1b1b2244656b69625a50494c545c646d747a7f80848a8a8581766862646c7b97bfd8d3
+c0b2aaa5a5a6a9abaaa7a5aaadb3bac4ccd2d5d1ccc7bfb3a49ca1a8b0d2f9ffffffffff
+fffffffffffffffffffff5a5e8e9e8e8e6e6e6e5e4e4e3e4e3e2e1e2e2e1e0ddcc8a3d25
+2121201e1d1d1c2445646b6b655e57565e646a727b848a8c898582807e7e736865676d78
+94bbd8d9c3b4adaaabafb1b2b6bdc1c6c7c7cacdd0d5d7d2cdc9c1b3a59ea2abbcd8f7fe
+fffffffffffffffffffffffffffff7b4e8e9e8e8e7e6e6e6e5e5e4e3e3e3e2e2e2e1e0dd
+d095462823221f1e1f1e1e2442626c6e6c6866696d6b6a6f777f83827c797a7e8384766d
+6b6b707a93b3d1decdbbb1acadb3b8bdbec2c9cecccbcccdced4d7d4cecac1b3a7a6aaa7
+b9d3effefffffffffffffffffffffffffffff9c5e8e8e8e8e6e6e5e5e5e4e4e3e2e2e3e3
+e1e0dfddcf9c522c2321201e1e1f1e2442636d6f7173777877736d6b6d71747575798189
+8c877a72706e727c92b6d9e4d4c0b6b0adaeb6c3c9cacdd0cfd0d1d4d5d9dad6d0ccc2b4
+a7abb4a4b0caeafdfffffffffffffffffffffffffffff8bee9e9e9e8e6e5e5e6e6e5e5e3
+e2e2e3e3e2e1e0dbd2b46f3924201e1e1e1f1f2341636e71767b8183817f7c77787c8083
+868b9193918a7e77726f737c90b5dce8d7beb6b1b1b1b5c1ced5d6d8d9dadee2e2e0dcd5
+d0cbc1b3a6adc0a8a3bee7fdfffffffffffffffffffffffffffff7afe9e9eae9e7e6e6e6
+e7e6e6e4e3e3e3e2e2e2e1ddd8cc95502b201d1e1f21222541646d71777f86898a8c8d8c
+8e929696989a9b999591877b7371747a8cb2dcebdcc4b6b3b7bbbdc5d1dbdde1e3e5ecef
+ece8e3d9d0c6beb2a6afc8ab9ebae2fdfffffffffffffffffffffffffffff8bbe9eaebea
+eae8e7e7e7e7e7e5e4e4e3e3e3e2e1dfddd7b57036221d1e2024272d48666e717881888b
+8d909496999ea19fa0a2a19d9d9d8f7c737374788db5dce8ddcab8b2b8bec2cad5e0e5e8
+edeff4f8f5f1e9dfd3c5bbb0a6afc3a4a1badefcffffffffffffffffffffffffffffface
+ebebecebeae9e8e8e8eae7e6e6e4e4e4e5e4e3e1dfdccb974d271e1e232d343a4e686e71
+777e888e9093999da0a5a5a2a4a7a6a6abaa947d767575778db2d7e1dbcebdb2b1b5bacd
+e0eaeff3f6f7f9fbfbf7ece2d6c9bcafa6acb59aa8badafbffffffffffffffffffffffff
+fffff8beececececeae9e9e9e9eae8e7e7e6e5e5e6e5e4e3e1ded6b87033201f293c494a
+54696e70747d8a9092979ea3a7aaa8a7a9adadafb6b0977f787675788eb1d3dcdcd7c6b4
+aeabadc4e0eef7fcfdfdfefefefaf0e4d6cbbcaea4a7aba3b8bddafbffffffffffffffff
+fffffffffffffacaebebebeae9e9e9e9e8e8e8e7e7e7e6e5e5e4e3e3e2e0dbcc984a2623
+344f5953586a6d6f747d898f9298a0a4abaeaeb1b3b5b4b6b9b198807773737b92b5d5dd
+dfdfd2beafa7a6b0c8e1f3fcfefefefefefbf2e5d7ccbcada2a2aab6c9c7dffcffffffff
+fffffffffffffffffffffbdaeae9eae9e7e8e7e7e8e8e8e8e7e6e5e5e4e3e2e2e0dfdcd4
+b86d3229445d5f575b6a6c6e747d878e91979da5adb2b7bcbfbfbbb9beb5967c726f707c
+98bdd7e0e4e6dac7b4a8a5a2b0c7dcf3fcfefefefefcf4e6d7cabbaca1a0afc2d1cee6fd
+fffffffffffffffffffffffffffff8bbe9e8eae9e7e8e6e7e7e7e8e7e6e5e4e5e4e3e2e1
+dfdedcd7cb92463150625f59606c6c6e757f858b91989ea6b0b8c1c7c8c5c3bebfae8c74
+6e6e717e9bc4dde7eff3e4cbb7adaaa1a1adc0dceffafdfdfcfbf5e7d7c9b8aaa1a1b9d1
+d2ccecfefffffffffffffffffffffffffffff8bae7e8e9e8e8e8e6e6e6e7e6e5e5e4e3e4
+e3e2e1e0dedddad7d3b1633d5660595a666e6e6e747d82888f969ea8b5bfc8cdcdcdccc5
+b99d7d6c6a6e737e98c2dce3eef8e2c1b0acaea89d9da8c0d5e7f2f4f6f7f0e2d4c4b7ab
+a1a1b7c8c2c8f0fefffffffffffffffffffffffffffff7ade8e8eae9e8e6e6e6e6e7e5e5
+e6e5e3e3e3e2e0dedddddbdad7c588535c5e575c6b6e6f70757b80858b939fabb9c5ced2
+d2d3d1c7b18a6e666971767c8eabc2ccd9e3ccaea1a5acaa9e979aa6bacedbe4eaede6d9
+cebfb3aba19fadb8b8d0f6fffffffffffffffffffffffffffffff7b9e8e8e8e7e6e6e6e6
+e6e6e5e6e5e4e3e2e1e1e0dedddcdbdad9d0ab73635d565d6f707071767a7d8288909ead
+bcc8d0d5d7d5cebda07966656a7275737a899cadbcc1af968d95a0a19b9a9899a4b5c1cf
+dce2ddd2c8baaea9a19eaebdbedafbfffffffffffffffffffffffffffffff8bae7e7e6e6
+e5e5e4e5e5e5e4e4e3e2e1e0e0e0dfdddcdbdad9d8d5c1906e61565b6e72717175797a7e
+858e9badbccbd2d5d5d0c5af8d6d64656b706f68666e7f909da196827679848a94a1a097
+949dadbecfd7d4cbc2b5a9a6a29fb3c3c3e4fdfffffffffffffffffffffffffffffff8b6
+e6e6e5e4e3e4e3e3e3e2e2e2e2e2dfdededededbdbd9d8d8d7d4c9a47a695c5666707172
+7376777a828c9aacbacbd5d6d1c7b89d79635e616668635a575e6e7a7f827c674e4b5c75
+96a8a89a9193a0b2c2cbcbc4bbb0a5a2a09eaebbccf2feffffffffffffffffffffffffff
+fffff5a5e4e5e4e4e2e2e1e1e2e1e0dfe0dfdfdddcdddddadad8d7d7d5d4cfb48772685d
+626c7072737474777e8997a8b7c7d1d5cfc1ad8b695d5c5c5c5a50413c485c696c6b6857
+4d4f587a9fa9aba39a969dadbbc2c4beb6ada3a09e9ca4b6defbffffffffffffffffffff
+fffffffffffff7b4e4e3e3e3e2e1e0e0e0e0dfdddddddcdbdadadadad8d6d6d5d4d3d0bb
+9076716b65686f71727372737a8593a2b0bdc7cbc6b79f785e5a5f5d544c3c2d2a374b59
+5c5f69717d7c7b91a3a7a9a8a29ea1afbbc1bfbab3a9a0a19f9aa2c5f2feffffffffffff
+fffffffffffffffffffff9c5e3e1e2e2e0dfdfdfdfdedddbdbdad9dadad9d8d8d7d7d5d4
+d3d2cfc39e7d76756a676e71707071717581909ca6b0babeb8ab8f6a585963645746393b
+40434a504e546d828c8c8e979aa0a3a7a9a5a7b2bdc1bdb5afa69fa19f9aabe2fdffffff
+fffffffffffffffffffffffffffff8bee2e1e2e1dfdedfdededddbd9dad9dad9d8d8d8d8
+d6d5d4d2d2d1cfc8ae897c7d766f6f716f6f706f727d8a959da7b1b4ad9f7f5f565c686a
+6251444b53504b49444b657880868d9192999da5a7a5aab6bfc1bbb2aba4a0a19f9bb2ed
+fefffffffffffffffffffffffffffffffffff7afe3e1e2e0dedddedddcdcdad9d8d7d8d7
+d6d7d8d6d5d4d3d3d1d0cecab9938082807b73716e6e6e6d70788490979fa7aaa695735a
+58616967635b5251534e4742434d5e6e7a83888c9197999e9fa0a7b1bac0bbb3a9a4a2a3
+a099b0ecfefffffffffffffffffffffffffffffffffff8bbe1e1e1dfdddcdcdddddbd9d8
+d7d6d6d6d5d6d8d6d5d3d2d2d1cfcecabc957e7d7b7b72716e6c6b6b6e737d8991989ea1
+9e8d6e5c5d656764605d56514f4d4c4f545b6575858b8a8c929395989a9b9ca6b1bbbab1
+a9a5a4a5a097adeafdfffffffffffffffffffffffffffffffffffacee0e1e1dfdcdbdada
+dadad8d7d6d6d7d5d5d5d6d5d4d2d0d0d0cfcec9bb8d71777878716f6e6c6a696b707983
+8c90969a9a896e60646867635d59565351565d61676b74838f8f8d90929293959590919c
+aab5b7b0aaa6a6a69d95adebfefffffffffffffffffffffffffffffffffff8bedededede
+dcdad8dadadad8d6d5d5d6d5d4d4d4d4d3d1d0d0cfcececbbe8f636b777973706e6d6b69
+6a6d747d878b9094948873696a6a68635e5b5f5e5c626e71788087909795919697969290
+90888893a2abb1b1aba8a7a59b92acecfefefffffffffffffffffffffffffffffffffaca
+dddedddcdbdad8d8d8d8d6d6d4d5d6d4d4d3d3d3d2d1d0d0cecdcdcbc3a0675d7176726f
+6e6c6a6a6a6a6e7680878c8f90887a726e6b696664646969686f7f87939da0a2a6a29da1
+9f988d88877e7d8a97a3adb0aba9a8a39790aaeafefeffffffffffffffffffffffffffff
+fffffbdadcdddcdbdad9d7d8d6d6d6d5d5d5d5d4d3d3d3d2d1d0cfcfcecdcdccc8b68965
+656e6d6c6d6b696a69686b717c83888a8b867c76726f6d6c6b6c7071737e94a5b2b8b6b5
+b9b5b0aea59a8e857e767482909fadb1aca6a7a1948fadecfefeffffffffffffffffffff
+fffffffffffff8bbdbdcdbd9d9d8d7d7d5d5d5d5d5d5d4d3d3d3d3d2d1d0cfcecdcdcbcb
+c9c3ae86605e61646b6a696967676a707982878b8b857f7b7671706e6c6e7379818fa4b5
+c0c2beb9b4b0b0ada49c90817362657c8f9fadb1aca4a59d918eafeefeffffffffffffff
+fffffffffffffffffffff8badbdad9d9d7d7d6d6d4d5d4d4d5d5d4d4d2d2d3d3d1cfcfce
+cdcccbcacac8bfa0654645506669686867696a6f7882888f8c807b78726d6a696b6f7983
+8d959ea8aaa8a49b9390908d8b8880725f4d60879aa3afb1aca7a59c918eb5f1feffffff
+fffffffffffffffffffffffffffff7add9d9d9d9d6d5d4d3d4d4d3d3d3d3d3d3d3d2d2d2
+cfcececdcdcccbcac9c7c4ae78422c385d6967686667696d767f86908b7c757069635e61
+69707b86878582837f7f7f7d7d7e7a716c66615b575e7899a7adb2b1aaa6a39a908ebff7
+fffffffffffffffffffffffffffffffffffff7b9d9d8d8d6d5d4d3d3d4d3d2d3d3d2d2d2
+d2d2d2d1cfcececdcdcdcacac8c7c5b894592f31566968666667696f767d828e8b7c7269
+5d5a5b606a6d6e6e6b696a6b686e6f7072726c64615d5f62708798a8adb3b6b0a8a6a196
+8d91cdfbfefffffffffffffffffffffffffffffffffff8bad8d7d5d4d3d2d3d2d3d2d0d1
+d0d1d2d1d0d1d2cfcdcccccccbcbcac9c7c5c5bdad7d42324e6668666565686f777d7e87
+8a827761494a53595c59555354585b5e5f636464696e6e727879797b8ea5b0b2aeb1b3ac
+a7a59e918995d6fbfefffffffffffffffffffffffffffffffffff8b6d6d6d5d3d2d2d2d1
+d2d1d0d0d0d0d1d0cfd0d0cecdcccbcbcccccac8c6c5c4c0bca265404b6467656464696f
+797f7c828a89826944394146474546494f545b636a6c717d88909191908c878da2b5bbb3
+aaabada7a4a29c8f889ce0fbfefffffffffffffffffffffffffffffffffff5a5d6d5d3d2
+d1d1d2d1d0cfd0d0d1d0d0d0cfd0cfcdcccbcbcbcbc9c8c7c5c5c3c2c2b9946753616665
+6362686d7883817f888f918663464042464a4e5965707c8a94989ca4aeb4a99a938d8f9d
+b0babdafa1a1a4a2a3a1978b85a8edfcfefffffffffffffffffffffffffffffffffff7b4
+d4d3d2d1d1d0d1d0d0cfcfcfd0d0d0cfced0cecccdcacacacac7c6c5c4c3c2c3c4c3b899
+6a5f65646362666c7683867f87939a9b8a705e565a6166707d8b98a2a8aeafb0c0c5ad99
+8f8f9dadb7bdbba998979ea1a19c908685b7f7fdfefeffffffffffffffffffffffffffff
+fffff9c5d3d3d2d1d1d0d0cfcfcfcfcfd0d0cfcfcfcfcdcccbcacacac9c6c6c4c3c3c3c4
+c5c6c7b77f6063636363676a737f87828592999e9f9384726a6a6b717b8c99a0a2abb0b1
+b8b5a298959daeb5b6bbb7a89590989c9c978c8187c6fafefefeffffffffffffffffffff
+fffffffffffff8bed2d1d0d0cfcfcfcfcfcecfcfcfcfcecdcececdcbcac8c8c9c8c7c6c4
+c2c3c3c3c5c7cac08760616261646669717b8484828b939ba29f9784736d6b6d717d8a92
+959da7abacaaa4a5a8aeb4b3b3b4b0a38e8a94979a95887a8edafbfefefefeffffffffff
+fffffffffffffffffffff7afd0cfcfcfcfcfcfcfcfcfcececfcfcecdcdcdcdccc9c7c7c8
+c7c6c5c3c2c3c4c4c5c8cac28b6162626262666a6e767e8483858a929a9e9a8c7f797775
+747a848d9298a3aaacadafafaeaeafb1b3b1a89c898690959994847aa0e9fcfefefefeff
+fffffffffffffffffffffffffffff8bbcfcfcfcecdcecfcfcfcececececececccccbcbcb
+c9c7c6c6c6c6c4c4c3c2c3c4c4bfb9b0845e6262626264676a70777e818383868d93938b
+8481828283888e94999ca1a4a5a7a6a4a2a5aaacafada29587868f9396918380b7f4fdfe
+fffffffffffffffffffffffffffffffffffffacececfcfcecececed0cfcfcecdcecdcdcb
+cbcbcbcac7c6c5c5c7c6c4c3c3c3c4c4bfa48370594f5f6261626263686b71777c7f7d80
+868a8984828382848585898e908a827e848c8c8e94a0aaa9aaa69b8f84879194948d818d
+d2f8fdfefffffffffffffffffffffffffffffffffffff8becececfcecececfcfcecdcdcd
+cdcdcccbcccccccac7c5c5c5c6c5c3c3c2c3c4c5b588533831435e625f60616366696e72
+787a757982847e7c7d817e7e7a757575746d605e6a767a8392a3aca8a6a0988f88889297
+938981a8ecfcfdfefffffffffffffffffffffffffffffffffffffacacececfcecececfce
+cdcccccdcdcdcbcacbcbcac9c6c5c4c4c5c5c3c3c2c3c5c4b3916335283e5d6560606163
+6467696d73757071777b78767678797a746c6866686864636a757c8797a6aba6a0999994
+8d8c9599908588caf9fefefefefffffffffffffffffffffffffffffffffffbdacecfcfce
+cdcdcecececccccdcdcccbcacacac9c8c6c4c4c4c6c5c4c2c2c3c5c4b7a2884e2c3c5c68
+635f6061626566686c6f6b696d73727273757678766f6b6b6c6d6e6d737d85929fa8aaa4
+9f979b98919297998f8499e2fbfdfefefefefefffffffffffffffffffffffffffffff8bb
+ced0cececdcccdcdcdcccccccccbcac9c9c9c8c8c6c4c4c4c5c5c3c2c2c3c5c4baa79c6d
+393b5968665f5f6062646466676b6864666b6c6e707577797b767372706e72747c87909c
+a9adaaa6a4a09e9a989a9a988d83a6ecfcfdfefffefefeffffffffffffffffffffffffff
+fffff8bacdcecdcdcccbcccccccbcbcacacac9c8c8c7c8c8c5c4c3c3c3c3c3c2c3c3c5c4
+baaaa4895340556668615d5e60626365666865616062646a6e72777c7e78757675777c85
+9197a0abb3b2b0b0aea8a09e9d9d9a938780aceefdfefefefefefefffffffffffffffffe
+fefffffffffff7adcccdcdcdcccbcccccccbcac9c8c9c8c7c7c7c8c8c4c3c3c3c2c3c3c3
+c4c4c5c3baaba59d7751526369625c5c5d5f6265676865605b5a61696d70757e827e7c80
+7e87929ba5a8b3b9bab8b8bab6aba4a39f98928c8382aeeefdfefefefefefeffffffffff
+fffffffefefffffffffff7b9cdcecececccccccccccccbc9c7c8c8c8c8c7c8c7c5c3c3c3
+c3c5c3c4c5c4c4c2b8aea6a79370575d66645d5b5d5d6165686967625c5b626a6f71757e
+8588888c888e9ba1a7afbbc0b8b7bcbeb8b0ada99e938c867f84adeefdfefefeffffffff
+fffffffffffffffffffffffffffff8bacdcdcecdcccccbcacbcbcbc9c7c8c8c8c8c7c8c8
+c5c3c3c4c4c4c4c5c5c5c5c2b6afa8a9a3916f5b61645c5a5e5f6064676869655f5d6369
+6c6f767d83898c9191959ca0a9b1b9bcb8b6bcbeb8b1aca4998e86807e83a8ecfdfeffff
+fefefefefffffffffffffffffffffffffffff8b6cccdcdcccbcbcacacac9c9cac8c8c7c6
+c5c5c7c7c5c3c2c3c4c3c2c3c4c5c5bfb3aea9a7a9a19066595f5b585a5d606365656867
+62616668696d777e8588898f969ea3a6a9afb4b7b5b4b7bbb5aca79e92877e7e8386a5e3
+fafefffffefefefefffffffffffffffffffffffffefef5a5cccdcccbcacac9c9cac9c8c9
+c8c7c7c7c5c5c6c6c5c3c1c3c4c3c2c3c5c5c3bbb2adaba9aaa5a3845b575957565b5f61
+646568676565696a6b7079818986868d97a3a8aaa7abb2b5b1afb0b2a9a2a49c8d7f7b80
+848496c5eafbfefefefefefefefffffffffffffffffffefefefef7b4cbcbcbcbc9c9c8c9
+c9c8c8c8c6c6c6c6c5c6c6c6c4c4c1c3c3c3c2c4c4c3c1b6afadabadabaaa6a275535456
+54555b60656869676464686d6d7177808683838a939fa2a4a1a3a8aca6a3a3a59b9a9c93
+8378798082818391b7e3fafefefefefefefffffffffffffffffffefefefdf9c5cacbcaca
+c9c8c8c8c8c8c8c7c6c5c5c5c5c5c4c5c4c2c1c3c3c3c2c1bdb7b5afabacabafb0aaa7a9
+98644e515350555c636666656362676d6f72777d7f8182828592999b9c9fa0a09b9b9b98
+9093908579757c81817f797586b0e1fafdfdfdfdfefffffffffffffffffefefefefef8be
+c9c9c8c9c7c5c5c5c6c6c6c5c4c4c3c3c3c4c4c4c3c1c1c2c2c2bbb1aaa39da0a7aaaaab
+b2aca9a6aa8b5a4c4f4f4d525c6263626162656a6d7074797a7a7a7c7f898c8d8c929395
+9391918c8687827971767f81807c71626d85abd8f4fcfdfdfefefefffefefefefefefefd
+fdfdf7afc8c8c7c6c6c5c5c6c5c5c5c5c4c4c2c2c3c5c5c4c1c1c1c2c2c0b29f9a9a9491
+a3aaaaadb0b1a9a8a8a67c534a4e4a4a525c6062626264686c6e6f71726f6f767e848686
+7e82868b8a857e7a7a79766e70797e8180796b555b6c83a3cdebf7fcfdfefefffefdfefe
+fefffefdfdfdf8bbc8c7c6c5c5c4c5c5c5c5c4c4c4c3c2c2c5c6c5c4c0bfc0c1c1bcac9a
+9b9f978e9ca7a9adafb3b0aba7a79e76544c4b4949525b62636264686a6b6b6c6e6c6a6e
+767c7f807977797c7a7772706e6b6869737b7f807e786a524f57667c97b4def9fdfefefe
+fefdfefefefffefdfdfdf9cec7c6c5c5c4c3c4c4c4c4c4c4c3c2c2c3c4c4c4c3c0c0c0c1
+c1baa99c9d9d9a919099a2a8b0b0b6adaba5a79a74584c4a47474f595f60626364636568
+67666766676a7175726f6f6e6d6d6a676360616d787c807d7b796c534d4f5461738fc9f5
+fdfdfefefdfdfefefefefefcfcfdf8bec7c6c5c4c4c4c5c5c4c3c4c5c4c2c2c3c3c3c3c3
+bfc1c2c1bfb5a69b9c9e9a90898b96a6adb0b4b6adaea5a7977a63514844444b545c5e5b
+5b5c60625f5d6063605d666b6a6764636463605e595a68757d7f7f7b7a797465564f4f56
+6294d3f2fcfdfefefdfcfdfdfefefefcfcfdf9cac6c6c5c4c4c4c4c3c4c3c4c5c4c4c2c3
+c2c1c2c3c1c1c0c0bcaea19a9f9f9b90888687a2aab0afb8b4afaca3a997806d53454242
+4651585858595a5b59585b5f5c585d5e5d5c5b5859585754546171797e807f7c7a7a7874
+705d515364a2dfeefafcfdfdfcfcfdfdfefefdfcfcfdfad9c4c4c4c3c2c2c3c3c4c3c3c4
+c3c4c2c1c3c2c2c1c1c1bfbbb5a8a09c99979d8a81868392a7a9afb1baaeafa9a5a89386
+7351403e40434a5155565454535253555455585755545453504d4c505d6d74787c7d7d7b
+7b79726b7d715a5165a2e5eef8fbfdfdfcfcfcfcfdfcfcfcfdfdf7bbc4c4c3c3c3c3c3c3
+c3c3c4c4c2c2c2c2c3c3c3c1c0bfbab4afa39e9a8c909583868c898299a5aaafb3b6aab0
+a8a8a89189754f3d3f4041454d51514e4e4e4f4f4c5053524d4b494744454d5e6e757676
+797b7f7d7b7a7165716c5c546599e2f2f8fbfcfcfcfcfcfcfcfcfcfcfdfcf7bac3c2c1c1
+c1c1c2c1c2c2c2c3c1c0c0c0c0c0bfb8b4b8b7b1a59ea2968a928d8b938b7e76809da0aa
+abb2aeaab1a4aba28e8d744a393c3e3d4045484948494a4745454644413f3c3b4150606b
+72757675797b7e7c7d7b7166685b54596590d9f5f7fbfafafbfbfbfbfbfcfbfbfcfbf4ad
+c2c2c1c1c1c1c2c1c2c2c3c3c1c0bebfbab7b2968da5b2b0a6a7a89496988d9899847c7c
+778a9ca1a9a7afa7acaca3ab9e918f6f4534373b3c3b3e404141423f3d3b3b3938373740
+52646c7172747576797a7b7c7d7b6f5e5c55535d678ecff3f6fbfafafaf9fafbfbfafafa
+fcfbf4b8c2c1c1c2c1c0c3c2c1c2c4c3c1c1c0bdb0ac9e737096b5c1b4ababa19f9b989e
+988d93907c7691a0a2a5a5a9a2aba7a3ac9c938c643e32373d3c3c3b3b3a393634353434
+33353d4e626e7173737475797a7b7e7e7d7a6d514b4f57626b93c9eff8fafafaf9f8f8fa
+fafafafafbfaf5b9c1c1c0c2c1c0c1c2c2c2c3c2c1c0c2bfbabba27f91b2c4c7b3a8b1ac
+a09ca39c9a9f9f937f7a809b9ea0a09fa29ea7a3a5a89694865c3d2f323a3f3f3f3c3934
+31303030343d4b5c697172727174767c7e81817b7a7b6b45404d5a646b94cfebf8fafaf9
+f8f7f8fafafaf8f9fafaf4b4c0c0c1c1c1c0c0c2c2c2c2c2c2c4bbafbdccbda9a8a9b8bf
+bcbab9b1a5a1a0959da69c9490938585949698979b9d9ba39fa3a293947f593c2e323b3f
+40403f3d383433353e4c5b656b706e6e6f71777e8286837c7a7c693d3b4f5f666d9ddeeb
+f5f9faf9f8f8f8f9f9f9f8f8f9faf1a3c1bebfbfc0c1c1c1c0c0c1bfc5c49e8bacc2bbae
+8f698cc2cbc8bab3b1ac99919c98929fa49d85757c8f8d93949798999f9aa09b94987b5a
+402d313b404141413f3d3c434d5b676a6b6c696b6d6f798286827c7b7c7d693b38506266
+75a4e7eff3f8f8f9f7f7f8f7f9f8f8f8f7f8f1b2c0bfc1c0c0c1c1c0bebab8b5c5c09095
+b6bcbbad824b70c1d7ccbcbcbeab9399a19898a6a59588847a7f87898f8f9497969a999e
+989d99755634282f393e4242434549535d666d6d6d6b6a6d6e707e878a817b7c7f7f6b3c
+3752666b84ace6f3edf5f7f8f7f6f6f7f8f7f7f8f7f6f2c3bfbec0bfc0c1bfbfb9a79eae
+cdcfb6a8a0b3c2bd85547fbed7d4c9b9b09f929b9c96a0a59d9796908775748284878992
+94979c9b9f9ba388553325252d374144464b515b646b6f6c6b68676e7174808a8c87817f
+81816d3e3653677392bae1f0dde8f5f6f6f5f5f5f7f7f6f5f6f5f1bcbebebec0c2c1c0c3
+b5958aadd2ded19971a1d6daa46f98bbc2c7c1a8a2a5a1a0968d9698949a9a8f80706972
+7f7d808691969b9d9fa19d89482e2a29292e3b464e52555c656b6d6868666770757d868a
+8a89878184836d3d33536f829abed1e9d2c9e5f3f4f3f3f4f6f6f5f5f5f6f0adbdbebebf
+bfc4cccdc0a69fb6cedac9895e95d6e5d5acb9ccc0a8a2a6adb7bbaf9a95908a8a979685
+7a7575696d797f808794989d9fa397713a2e3645413a3e47525757596066686565656a73
+7b858989888b888487846a3a365d8294919195c5ba98c0e2edf0f1f2f4f3f3f4f4f4f0b9
+bfc0bfb1a8bed6cec3aa848bc0d2b0776a9cc4d7e4c9cdddbd786296b8c0c5b5a6a79482
+8b9794878a877a69666b7e80848e96999d9f98633936466a76746b5856595654555a5e5f
+62666e7a848b8c8b8b8d8a8889856a3b3f6c8d9a764c4d778a77a6cbddeaf0f2f4f3f4f2
+f2f4f2ccc3c8c6ab9fb3c8d0ceaa717bc3d7bc978eabb3bbbebed5dcac655491c1c6c2b9
+aca38e838d8f919da3917872766e6e747e8b9097989a93633b3f5e94b1baac8e715d5552
+4f52585c636d79848b8f9192918f8b8a8b83633f5175949b643538578490b3c0c4d4e5eb
+f3f4f5f2f2f4f0bcc9d2cfb79780a2d5e1c3909fcad6c8c2bdbcad967897d1e2a35d73ae
+c4cec7bba993888785828fa0a28b7e7b736b635e7181898d91938b65424c72a5c1d9ddc9
+a96f565251545b646d7780889095979795928d8b8c805a4a637ca49c5c373e5d8aa2beb6
+9eaecad2e9f3f5f4f3f4f2c8ced7ceb58271a4d3dadacac9d0c5aaabc6c8b181567cbddc
+c7899ecdd1d6d2c09e8e9994877f8e9a97898b85726463636e787b838a918f73475282ac
+b5b7cdd0c394685a5a606770767c858d959b9d9a96918e8d8c765665819ac1a35f475c82
+949fb4a48c9fc1c5d5ecf3f3f4f4f3d8c0d8d2c099a0ccc8b3b6c9d1cbad7870adc8b677
+649abfd0d9cbccc6c6dcdbd1afa0afa592888e948e8b8f8f7d767b7a7a716e77848d937f
+515085adafa9c3dee7c98e6964676d72777f8891989ea09d97908e8e8b787ca5becdd99e
+656886a7ada4997f82adc5b9b2d4e7e7eaf0efb89cd6e0d0d0dce3c3866898cace975e5d
+9ecacb9182c0cec6d3e7d19c97cbdedec19f9e979286878b878c908f838c918e8d8c8581
+808a928b5f4a79a59f93acc7d7d2a77468676c6f75828e969da1a4a2988e8d9093a2c3e0
+efe8c8887591aab5beae896378afbea58baccfced4e3eab6accbcbafbee3e4be73558dc7
+cda07384b3d6dac8c4cdc1c2dee8b4696dbfe4d7a7777387978a83858d8f8e8788988e86
+91a8a8a5918692946c4459889389909aadc8bf836c6a6d6e7482929da5a8aaa4978c8f9d
+a9ceeaf2e9cc967e91a3b0b7bdb4a2889cbeb79c919fbabdb5bad0a5c7c39d7092cdd9c6
+887fafccd0c6b5b8c9d3d3d7d9aa98bedfdc9c5158a9ded19961658da6a49689908b877f
+8894868796a5abb8b6a19a9e764452829b9c9b9ba6c2bb846f6e6e707783919fa9adada5
+9c9aabc0c8e6e7d6a57e7b869eabadb4b4acaca8bbc7a47b90a7b2b19a8dada8ccb48073
+a8cacfceb8b6c7cfcdcec7b6afbfd1e0d27e64a7dacf804b6bb1e0d2ac8c98b5b5a99892
+948881848a8c7e8ea0a1a3bdcdc4b7a37d4e4e789eaba59791979d7d7170717478818e9d
+aab0b2afb6c5d3d5c8caa276576785899aa9acadaa9d998d9eb8a07d9bafa99b9ca6b9a9
+dabe908db8c5c6d5c5b3a8b4cbc6b0816a98cfd9b76f5a9ed9c4845485cbe3d6bac1d9e0
+c7a8a1a4a090888487887c889da4a2b0c7cbc0b8a881625d666665686e76847a76747374
+78818a99a7ab9f88878d89877d7b5f3e55778192a1a7a2a7a5917b6676abb2a2b3b89574
+8eb6c6a5e9d5c2b3adb4c3d6cba57087c7cbb46f5992cfc89c6880b8dbcd9e829ecbd3cc
+bacae9e1cab4a6bab49e96888c8a81868f9da6b0c2c4b0b0c3b5968678665557595b6066
+737674767b81858ea191684c4543424650635140698992a3a9a49ca6a59785788fb4b8a0
+aabea1899cbab98edfd9c7a06f77aeccbc855f8acfd2c99081b4d8cbb99aa5c9d8d4b0a3
+acb2b0a07991d2dcc3af8a8fa5aeac989a8988898c9295a1adac9a9dbdbfb7b9ab9e8d83
+766a696674807a77797a75849f9b7a54423c3f4e697159657f94a1a3a49d9eaba6a7afa8
+b0bbaf8084b2b0a5aabcb69bccccb37b4e68acc6c1907db4d7d3c8c0b4c2c9b7b9bfcdcf
+c8bea4a8b9b4a3834e62bcdac9995d5488b3b9a79991918e898c8d8d8f96979ba8b6b8b2
+b8bcc4bbaca19f9ca5a4897e79706b8ea1b4a77c544b5875878187a3afaaada49d9ba2ab
+9790afbdbdb6a87e86b2b29289aeb9afb1bdad786a95bdbfb7bcc3dad0c2bac2cdcec39b
+8da8d3e4cc986b87bbb8a375485eaed5daaf756ea3bbb7a7a2a2948c8b8c8b89878a9a98
+96adb3a5abb3bec7bfb4b1b9b9b4a49f96898ea8afbeb298807c83989ea0abb2b7ac9e9c
+9797a39f6e5f9ec9c2a19ba3acc4bb7c70a7bca9bbb9b8acafc8c9b8a4abcee8c6a99095
+c0cbb2835678c6dec8854c6bb0b8b679507eb0c7ddc5b6b4cbd4cdbcb7b8a29494878a95
+89829594909ea5919299a9b5b5aeacbcb9b7b6c1bec0c3c2bdc3beb0b2b6abb1aba5a7a1
+a29a90989a98a48f5a68a8d0b97b75acb4c3c19296b8c39cc3bbb8bbc9d6cda97772ace3
+ce9c6861a4cdb8794868bad2c88a5b80afb4c5b38a9db6c4d8cdd1d8bebccfcbc8bca399
+9f8f93a0918688898989978a818c9fa9a4a5a3b0b6b7acb8bcc2c8c3bec2c9c2c7cbb6b1
+ac9c96928e8d90999e9fa3836587b4d1b37979afb1adb9c1c5c4c6aacab99291bad2d2a1
+5c4f98dbde995b6aadd9d8986084c1d5cdb7909fbfc4c1c3bdbac1d7e2dadbd29c88afc9
+ceb6a3a9b0a7a9af9d88818488868985839096a19c979aa1adada0a2a8b1bbb6a8bbc3b5
+c1c8b0a49f94958e858c9495a0a5a3897f91aacebba1a3baaf868ac1c7b0a6b3d2af665b
+a4ccd195596ba7d3e4b57b96d1eae2c09ba9cdd5cccbb7afbfd9cdb8b8aba5c3dfdbd5bf
+734979c4dcc2a0a1b1b9baafa08d909aa0968a88858a8c8f8b8d909a9e919ea9aeb4bdb2
+a1b5b7a1b4bba49895949889868e9598a3a9a28f776c90c2b6a8b0c0b07982bbbc95708d
+c5965d60a2d0dab485a5d2dbded4bfc8e0e9e4d1bcb1c5d0cac6bba49ec9c5bcb3885e71
+b5d6cc97583d69c5e4c98f738babbbb3a99d9ea5aba09c918c8d8e8c7f89939a9596aaab
+a5adb0a6a4a8a59aa3a89e979791928991959ba2acb19f7f5c578cb8a57f88bac1a0b0d5
+cb966a97dbac7b8cbdd9e2cec3cce1e3dad2c7b5b8cde1d1b68886b4d1c0ad85659ac3ce
+b77b484f9acfcb91585f84c4d9ccb39091afc6bfb0a8a5a6a8a4aea396909b9c929a9b9e
+959fada8929ea29ca0a39e999d9aa0a0968b8687969aa4a9adafa0755f89afbd996372b7
+c8b2bee0dbbba4bbeeddb3a2b7cfe9dfd0baaaafc6cfc188668dc9bea5734d81c0b89567
+5081c4ddbc6c5477a2c9cfb892919db6c6c6d6c9bbd0dbc8b3afb0b3b0b2b7ac97939fa7
+a5a7a397919db3a99fa19a93a2a6999aa19aa1a08f8882929e9da2a4a8acb0a4a1c8c8bf
+a98592bdbe9097c9d0cdc3a8d8dbc7987b99d6dec6915f76aabab27a4d6fb6ba96614d74
+b1be996371aad2e2d99d7ea0b3c3d3cbb8afb0bbc5bcc6d1d4e5e0c6aba7adb3aebabcac
+9ba1a2a29fa2a69a959db5afb4aaa3a1aaa597999e999b9b908f8ea1a9a9a6a8aaa6b2be
+ccd0b7afbeaea1ada3686eafbfb59393a1a8a48c7983a1b1b1a18b94a9ada88d808da5a9
+9b847b80919b93858fb0cadde3d7c4bfcad4d5d0c8c2c6c9c4bcbeb6b8c1b8aa9d9f9fa8
+aaaeb2aba9ababa89fa19b88888d97928e888a8987878a88868185837b7b86989ba19fa1
+9d9ca4a4afac999695836e6463575e777e7e7982
+showpage
diff --git a/Master/texmf-dist/doc/generic/psfig/figs/zip.ps b/Master/texmf-dist/doc/generic/psfig/figs/zip.ps
new file mode 100644
index 00000000000..783ec71b24c
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/figs/zip.ps
@@ -0,0 +1,21 @@
+%!
+%%BoundingBox: 301.0 392.44 360.02 437.4
+/Times-Italic findfont 30 scalefont setfont
+
+/printZip {
+ 0 0 moveto
+ (Zip) show
+} def
+320 400 translate
+
+.95 -.05 0 {
+ setgray
+ printZip
+ -1 .5 translate
+} for
+
+1 setgray printZip
+
+
+showpage
+
diff --git a/Master/texmf-dist/doc/generic/psfig/psfig-doc.tex b/Master/texmf-dist/doc/generic/psfig/psfig-doc.tex
new file mode 100644
index 00000000000..0aec9e81218
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/psfig-doc.tex
@@ -0,0 +1,292 @@
+%\documentstyle[psfig]{article}
+\documentstyle{article}
+\input ../psfig.sty
+\begin{document}
+\pssilent
+\psfigurepath{figs}
+\def\Ps{Post\-Script}
+%
+\title{Psfig/\TeX\ 1.10 Users Guide}
+\author{Trevor Darrell \\ {\it trevor@media.mit.edu}}
+\date{\ }
+\maketitle
+
+\section{Introduction}
+Psfig/\TeX\ is a macro package for \TeX\ that facilitates the
+inclusion of \Ps\ figures into \TeX\ documents. With the
+help of a compatible postprocessor,
+\footnote{The {\tt dvips} program developed by T. Rokicki
+has full psfig support; it is available via anonymous FTP from {\tt labrea.stanford.edu}. OzTeX also supports psfig and is available from various ftp sites. Psfig is available from {\tt whitechapel.media.mit.edu}.}
+\Ps\ figures are automatically
+scaled and positioned on the page, and the proper amount of space is
+reserved.
+Custom characters such as
+`\psfig{figure=pretzel.ps,height=8pt,silent=}' and
+`\psfig{figure=cm.ps,height=8pt,silent=}'
+may be created and used freely throughout a document, or figures can
+be presented as traditional broken-out displays:
+\par
+\hbox{
+\hspace{.3in}
+\vbox{\psfig{figure=zip.ps}\vspace{.5in}}
+\psfig{figure=piechart.ps,height=1.5in}
+\vbox{\psfig{figure=starlines.ps}\vspace{.6in}}
+}
+
+\section{Simple figures}
+To include a \Ps\ figure with psfig, include the psfig style at the top
+of your document:
+\begin{quote}
+{\tt\verb+\documentstyle[psfig,...]{article}+}
+\end{quote}
+and then, when you wish to include a figure, invoke the macro
+\begin{quote}
+{\tt\verb+\+psfig\{figure={\it input}\}}
+\end{quote}
+where {\it input} is the name of a \Ps\ file. Psfig will
+automatically position the figure at the current point on the page,
+and reserve the proper amount of space in \TeX\ so that it doesn't
+block any other objects on the page. For example, if we have a file
+called `piechart.ps' which contains the \Ps\ code to draw the chart in
+the introduction, we could use the commands
+\begin{quote}
+\tt
+\verb+\+par \\
+\verb+\+centerline\{\verb+\+psfig\{figure=piechart.ps\}\} \\
+\verb+\+par
+\end{quote}
+to include it as a centered paragraph.
+Since no mention of size was made in the above example, psfig draws the figure
+at its natural size (as if it was printed directly on
+a \Ps\ printer.) The pie's natural size is several inches across, which
+is a little large; the pie in the introduction was produced with:
+\begin{quote}
+\tt\verb+\+centerline\{\verb+\+psfig\{figure=piechart.ps,height=1.5in\}\}
+\end{quote}
+The {\tt height} option specifies how tall the figure should be on the
+page. Since no {\tt width} was specified, the figure was scaled
+equally in both dimensions. (This will also happen with a {\tt width}
+but no {\tt height} option.) By listing both a {\tt height} and {\tt
+width}, figures can be scaled disproportionately, with interesting
+results:
+\par
+\centerline{\hbox{
+\psfig{figure=rosette.ps,height=.8in,width=.15in}
+\psfig{figure=rosette.ps,height=.8in,width=.35in}
+\psfig{figure=rosette.ps,height=.8in}
+\psfig{figure=rosette.ps,height=.8in,width=1.2in}
+\psfig{figure=rosette.ps,height=.8in,width=1.5in}
+}}
+\par
+\noindent This figure was produced with:
+\begin{quote}
+\tt\verb+\+centerline\{\verb+\+hbox\{ \\
+\verb+\+psfig\{figure=rosette.ps,height=.8in,width=.15in\}\\
+\verb+\+psfig\{figure=rosette.ps,height=.8in,width=.35in\}\\
+\verb+\+psfig\{figure=rosette.ps,height=.8in\} \\
+\verb+\+psfig\{figure=rosette.ps,height=.8in,width=1.2in\}\\
+\verb+\+psfig\{figure=rosette.ps,height=.8in,width=1.5in\}\\
+\}\}
+\end{quote}
+The \verb+\psfig+ macro is (unfortunately) sensitive to whitespace, and will be
+confused by any extra spaces or newlines in its argument.
+\section{Sources of figures}
+\hbox{
+\vbox{\psfig{figure=trevor.ps,height=1in}}
+\hspace{.15in}
+\vbox{\parbox{3.5in} {Any program that produces \Ps\ as output
+can be used for psfig figures
+as long as it adheres to the bounding box comment convention (see below).
+For instance, the bitmap image
+of the author was included as a figure at left.}\vspace{.2in}}}
+
+Since the Macintosh drawing applications produce \Ps, they can be used
+to create figures. However, the \Ps produced by most Macintosh
+applications is often not well suited to be included directly as
+aBpsfig figure, unless it is saved as an ``EPSF compliant'' file. If
+the file is not EPSF compliant then the postscript may have to be
+edited before being used as an included figure.
+
+\section{Draft figures and Silent mode}
+\begin{figure}
+\centerline{
+\psfig{figure=rosette.ps,height=2in}
+\psdraft
+\psfig{figure=rosette.ps,height=2in}
+\psfull
+}
+\vspace{.25in}
+\centerline{Figure 2: The rosette.ps figure, in non-draft and draft mode}
+\end{figure}
+Normally, psfig will print advisory messages to remind you that it is
+including figures as TeX processes a document. This behavior can
+be disabled with {\tt \verb+\+pssilent}, and re-enabled with
+{\tt \verb+\+psnoisy}.
+\par
+Some \Ps\ figures can take quite a long time to transmit and print;
+for these figures a draft mode is available to speed printing of draft
+versions of the document. A figure printed in draft mode will appear
+as an outlined box (Figure 2). The macro {\tt
+\verb+\+psdraft} will switch into draft mode, and all subsequent psfig
+macros will produce draft figures until reaching the macro {\tt
+\verb+\+psfull}, which switches out of draft mode.
+
+No {\tt
+\verb+\+special} commands are used in draft mode, so a draft document
+can be previewed using any Dvi viewer. Psfig uses the \LaTeX\ {\tt
+\verb+\+fbox} command to produce the draft box; thus draft boxes will
+not work in plain \TeX. The printing of boxes in draft mode can be
+disabled/enabled with {\tt
+\verb+\+psnodraftbox} and {\tt
+\verb+\+psdraftbox}.
+
+\section{Bounding boxes}
+To properly translate and scale a figure psfig must know its `natural'
+position on the page; this information is present
+in what is called the {\it bounding box} of a \Ps\ program. The
+bounding box is an outer limit to the marks created by a program,
+and is specified as four coordinates of a rectangle: the lower-left $x$ coordinate
+(bbllx), the lower-left $y$ coordinate (bblly), the upper-right
+$x$ coordinate (bburx), and the upper-right $y$ coordinate (bbury).
+Adobe has defined a convention whereby the bounding box of a program
+is contained in a `bounding box comment'.
+\footnote{See `Appendix J: \Ps\ File Structuring Conventions' in
+{\it The \Ps\ Language Reference Manual}}
+This comment, which must be present in any file to be used as a psfig figure,
+is a line of the form
+\begin{quote}
+\tt \verb+%%+BoundingBox: \it bbllx bblly bburx bbury
+\end{quote}
+All values are in \Ps\ points, relative to the {\it default}
+transformation matrix. The only mandatory \Ps\ convention is
+that the first line of the file should begin with the characters
+`\verb+%+!' (a `\verb+%+' begins a comment in \Ps.) A good place for the
+bounding box comment is as the second line of the file.
+\par
+If a bounding box comment is present in the figure file, psfig will
+extract its values. The bounding box values may instead be specified
+directly in the {\tt \verb+\+psfig} argument, using clauses of the
+form {\tt bbllx=\it bbllx},{\tt bblly=\it bblly},..., in which case
+the figure file is not searched for the bounding box.
+
+\section{Reserved size}
+\par
+\psfig{figure=box.ps,rheight=0bp,rwidth=0bp,height=1.25in,width=\textwidth,silent=}
+\par
+There are two sizes associated with each psfig figure: the size
+at which it is to be printed on the page
+and the size it reserves in \TeX. This latter size is appropriately
+termed the {\it reserved size}, and is expressed as clauses of the form
+``{\tt rheight={\it dimen}}''
+and ``{\tt rwidth={\it dimen}}''. If omitted, the reserved size defaults
+to the real size. Some special effects need to be transparent
+to \TeX\ and thus have a zero reserved size, such as the grey
+box enclosing
+this paragraph.
+
+\section{Clipping}
+Normally a \Ps\ program can be expected to not mark the page
+outside its bounding box. If this is not the case, or if you
+want to specify a bounding box so as to isolate part of a larger figure,
+there is an option that sets the \Ps\ clip path so that
+no marks will show up outside the declared bounding box. Currently
+this is invoked by adding a clause of the form ``{\tt clip=}''.
+Here a slice has been taken out of the pie chart in the example by
+specifying a smaller bounding box and adding the clip option.
+\par
+\centerline{\protect\fbox{\psfig{figure=piechart.ps,height=2in,bbllx=306bp,bblly=396bp,bburx=486bp,bbury=546bp,clip=}}}
+\centerline{A piece of the pie.}
+\vspace{.2in}
+\par
+Some \Ps\ programs use the clipping path to position their output on
+the page; if a figure is being drawn at its natural size and position
+despite psfig commands to the contrary, it may need the clip option.
+
+\newpage
+\section{Rotating figures}
+Figures can be rotated by psfig using the {\tt angle={\it degrees}}
+clause. For example, here is the rosette and its 90 degree rotation:
+
+\centerline{\hbox{
+\psfig{figure=rosette.ps,height=1.0in}
+\psfig{figure=rosette.ps,height=1.0in,angle=90}
+}}
+
+By default psfig scales the figure so that its rotated bounding box
+fits within the desired size. This can lead to counterintuitive results
+when rotating to angles which are not multiples of 90 degrees. Here
+is the rosette rotated to 0,20,40, and 60 degrees.
+
+\centerline{\hbox{
+\psfig{figure=rosette.ps,height=1.0in}
+\psfig{figure=rosette.ps,height=1.0in,angle=20}
+\psfig{figure=rosette.ps,height=1.0in,angle=40}
+\psfig{figure=rosette.ps,height=1.0in,angle=60}
+}}
+
+With autoscaling, some rotated figures come out smaller because the
+diagonal of their bounding box is of course longer than their height
+or width alone. This behavior can be disabled with {\tt
+\verb+\+psscalefirst}, and re-enabled with {\tt
+\verb+\+psrotatefirst}. With {\tt \verb+\+psscalefirst} a new
+height and width is computed after the bounding box;
+the previous figure would now look like:
+
+\psscalefirst
+\centerline{\hbox{
+\psfig{figure=rosette.ps,height=1.0in}
+\psfig{figure=rosette.ps,height=1.0in,angle=20}
+\psfig{figure=rosette.ps,height=1.0in,angle=40}
+\psfig{figure=rosette.ps,height=1.0in,angle=60}
+}}
+
+While the rotated figures will all come out at the same
+size their reserved sizes will be different, thus
+they may not be aligned correctly.
+
+\section{Compressed Figures}
+Psfig allows the inclusion of compressed \Ps files when using
+the {\tt dvips} dvi processor.
+The shell script {\tt pscompress} is used to compress figures, and
+produces two files: {\it filename}{\tt .bb} and {\it filename}{\tt .Z}.
+The first file contains the bounding box comment only, while the second
+file contains the actual compressed PostScript file. Usage:
+\begin{quote}
+\tt \verb+%+ pscompress \it filename
+\end{quote}
+When psfig searches for a figure, if it fails to find
+{\it filename}, it then searches for {\it filename}{\tt .bb}.
+If that file exists, it is used for bounding box processing,
+and a command to decompress and include the file {\it filename}{\tt .Z}
+is issued to dvips.
+
+\section{Figure search path}
+
+Psfig first searches in the current directory for a figure (or
+in the specified directory if given an absolute path). If it fails
+to find the figure in the current directory, it optionally searches
+a search path of figure directories to see if the figure is
+present. To specify the figure search path, use
+\begin{quote}
+\tt \verb+\+psfigurepath\verb+{+\it dir1 \tt :\it dir2\tt :\it ...\tt :\it dirn\tt\verb+}+
+\end{quote}
+where {\it dir1...dirn} are the directories figures are to be found in.
+\newpage
+\section{Acknowledgements}
+\par
+This work was done while the author was with the Department of
+Computer and Information Science, University of Pennsylvania. Ned
+Batchelder co-developed the original {\it troff} version of this
+program with the author, and was responsible for much of the overall
+design. For more detailed information on the original version of \Ps\
+see {\it Psfig -- A Ditroff Preprocessor for PostScript Figures} in
+the USENIX 87 proceedings, or {\it Bringing troff up to speed} in the
+July 1987 issue of Unix Review.
+
+Greg Hager provided the initial pure-\TeX\ implementation of psfig.
+J. Daniel Smith of Schlumberger CAD/CAM implemented the rotation
+feature and improved the file scanning routines, using certain code
+fragments from Tom Rokicki's dvips program.
+\par
+\end{document}
+
diff --git a/Master/texmf-dist/doc/generic/psfig/psfig.man b/Master/texmf-dist/doc/generic/psfig/psfig.man
new file mode 100644
index 00000000000..b6388528674
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/psfig/psfig.man
@@ -0,0 +1,261 @@
+.TH Psfig/TeX 1
+.SH NAME
+Psfig/TeX (1.10) \- PostScript figures in TeX
+.SH SYNTAX
+\\\fBinput psfig\fP
+.SH DESCRIPTION
+.B Psfig/TeX
+is a macro package for TeX, as well as LaTeX, that facilitates the
+inclusion of PostScript figures into (La)TeX documents.
+With the help of a compatible postprocessor, PostScript figures are
+automatically scaled and positioned on the page, and the proper amount
+of space is reserved.
+Figures can be presented as traditional broken-out displays,
+and Custom characters may be created and used freely throughout a document.
+.PP
+The \fBdvips\fP program developed by Tomas Rokicki has full
+\fBpsfig\fP support. The \fBOzTeX\fP package has support for
+all \fBpsfig\fp functions except compressed figures.
+.PP
+.SH USAGE
+To include a figure with \fBpsfig\fP, include the \fBpsfig\fP style at
+the top of your document.
+In LaTeX: ``\\\fBdocumentstyle\fP[psfig,...]{article}''; in TeX:
+``\\\fBinput\fP psfig''.
+Then invoke the macro ``\\\fBpsfig\fP{figure=\fIfilename\fP}'', where
+\fIfilename\fP is the name of a PostScript file.
+.B Psfig
+will automatically position the figure at the current
+point on the page, and reserve the proper amount of space.
+.PP
+.SH OPTIONS
+Options may be specified in the form
+``\\\fBpsfig\fP{figure=\fIfilename\fP,\fIoption\fP=\fIvalue\fP,\fIoption\fP=\fIvalue\fP,...}'';
+recognized options include \fBheight\fP, \fBwidth\fP, \fBrheight\fP,
+\fBrwidth\fP, \fBclip\fP, and \fBangle\fP.
+.IP height 9
+The ``\fBheight\fP=\fIdimen\fP'' option specifies how tall the
+figure should be on the page.
+When no \fBwidth\fP is specified, the figure is scaled equally
+in both dimensions.
+.IP width
+The ``\fBwidth\fP=\fIdimen\fP'' option specifies how wide the
+figure should be on the page.
+When no \fBheigth\fP is specified, the figure is scaled equally
+in both dimensions.
+.IP
+If no \fBheight\fP or \fBwidth\fP option is given, the figure's
+`natural' size will be used.
+By listing both a \fBheight\fP and \fBwidth\fP, figures can be scaled
+disproportionately.
+.IP rheight
+There are two sizes associated with each \fBpsfig\fP figure: the size
+at which it is to be printed on the page and the size it reserves
+in TeX.
+This latter size is appropriately termed the reserved size, and is
+expressed as an option of the form ``\fBrheight\fP=\fIdimen\fP'',
+to reserve a vertical size of \fIdimen\fP.
+If omitted, the reserved size defaults to the real size.
+Some special effects need to be transparent to TeX and thus have a
+zero reserved size, such as a grey box enclosing a paragraph.
+.IP rwidth
+To reserve a width in TeX, the ``\fBrwidth\fP=\fIdimen\fP''
+option is used.
+.IP clip
+The ``\fBclip\fP=t'' option sets the PostScript clipping path
+so that no marks will show up outside the declared bounding box.
+This option allows the user to isolate part of a larger figure,
+by specifying a new bounding box:
+``\\\fBpsfig\fP{figure=figs/piechart.ps,height=2in,bbllx=306bp,%
+bblly=396bp,bburx=486bp,bbury=546bp,clip=}''
+.IP angle
+Figures can be rotated by \fBpsfig\fP using the ``\fBangle\fP=\fIdegrees\fP''
+option.
+Example:
+``\\\fBpsfig\fP{figure=figs/rosette.ps,height=1.0in,angle=90}''.
+.PP
+.SH AUTOSCALING
+With autoscaling, some rotated figures come out smaller because the
+diagonal of their bounding box is longer than their \fBheight\fP
+or \fBwidth\fP alone.
+This behavior can be disabled with \\\fBpsscalefirst\fP, and re-enabled
+with \\\fBpsrotatefirst\fP.
+With \\\fBpsscalefirst\fP a new \fBheight\fP and \fBwidth\fP are
+computed after the bounding box.
+While the rotated figures will all come out at the same size, their
+reserved sizes will be different, thus they may not be aligned
+correctly.
+.PP
+.SH SOURCES OF FIGURES
+Any PostScript program can be used as a
+\fBpsfig\fP figure, as long as it adheres to the
+Encapsulated PostScript Format (EPSF), which
+dictates a set of forbidden operators and a comment
+structuring convention. \fBPsfig\fP
+is actually less restrictive than the EPSF requirements; it can handle
+some of the "non-compliant" postscript operators, and the only
+required comment is the Bounding Box comment (see below).
+.PP
+.SH BOUNDING BOXES
+To properly translate and scale a figure \fBpsfig\fP must know
+its `natural' position on the page; this information is present
+in the `bounding box comment' of a PostScript program.
+This is a line of the form
+``%%BoundingBox: \fIbbllx bblly bburx bbury\fP'' in the header of
+the file.
+.PP
+The bounding box specifies four coordinates of a rectangle that
+defines the outermost edges of the PostScript figure: the lower-left
+\fIx\fP coordinate (\fIbbllx\fP), the lower-left \fIy\fP coordinate
+(\fIbblly\fP), the upper-right \fIx\fP coordinate (\fIbburx\fP), and
+the upper-right \fIy\fP coordinate (\fIbbury\fP).
+This rectangle must be present in any file to be used as a
+\fBpsfig\fP figure.
+Most modern graphics packages produce (encapsulated) PostScript
+files which contain a ``%%BoundingBox:'' comment line in the header.
+All \fIbb...\fP values are in points, relative to the default
+transformation matrix.
+.PP
+.SH MISSING BOUNDING BOX
+When no bounding box comment line is present in your PostScript file,
+you can edit one in.
+The only mandatory PostScript convention is that the first line of
+the file should begin with the characters `%!'.
+A good place for the bounding box comment is the second line of
+the file.
+.PP
+The bounding box values may also be specified directly in the
+\\\fBpsfig\fP argument, using clauses of the form
+``bbllx=\fIbbllx\fP,bblly=\fIbblly\fP,...'', in which case
+the figure file is not searched for the bounding box.
+.PP
+To control the amount of white space around a figure in a (La)TeX
+document, it may be necessary to experiment with the bounding box
+parameters \fIbb...\fP, also in cases where the bounding box is
+provided by the plot or graphics package.
+.PP
+.SH DRAFT FIGURES
+Some PostScript figures take quite a long time to transmit and print;
+for these figures a draft mode is available to speed printing of draft
+versions of the document.
+A figure printed in draft mode will appear as an empty box.
+The macro \\\fBpsdraft\fP will switch into draft mode, and all
+subsequent \fBpsfig\fP macros will produce draft figures until reaching
+the macro \\\fBpsfull\fP, which switches out of draft mode.
+.PP
+No \\\fBspecial\fP commands are used in draft mode, so a draft document
+can be previewed using \fIany\fP DVI viewer.
+The printing of boxes in draft mode can be disabled/enabled with
+\\\fBpsnodraftbox\fP and \\\fBpsdraftbox\fP.
+.PP
+.SH SILENT MODE
+Normally, \fBpsfig\fP will print advisory messages to remind you that it is
+including figures as (La)TeX processes a document. This behavior can
+be disabled with \\\fBpssilent\fP, and re-enabled with \\\fBpsnoisy\fP.
+.PP
+.SH COMPRESSED POSTSCRIPT FILES
+As off version 1.9, \fBpsfig\fP allows the inclusion of compressed
+PostScript files (when using \fBdvips\fP).
+.PP
+To compress PostScript files, the shell script \fBpscompress\fP is used.
+\fBPscompress\fP produces two files: \fIfilename\fP.bb and \fIfilename\fP.Z.
+The first file contains the bounding box comment only, while the second
+file contains the actual compressed PostScript file.
+Usage: ``% \fBpscompress\fP \fIfilename\fP''.
+.PP
+When (La)TeX is run on \fIyour_document\fP.tex, the file \fIfilename\fP.bb
+is scanned for the bounding box comment, to allow (La)TeX to properly
+reserve the right size for the figure.
+Only when the file \fIyour_document\fP.dvi is printed by means of \fBdvips\fP,
+the actual PostScript file \fIfilename\fP.Z is decompressed (\fBzcat\fP-ed)
+and included in \fIyour_document\fP.ps.
+.PP
+.SH MACINTOSH FIGURES
+Since the Macintosh drawing applications produce PostScript, they can
+be used to create figures.
+However, the PostScript produced by most Macintosh applications is often
+not well
+suited to be included directly as a \fBpsfig\fP figure, unless it is
+saved as an "EPSF compliant" file. If the file is not "EPSF compliant"
+then the postscript may have to be edited before being used
+as an included figure. See the \fBpsfig\fP tool \fBcleanfig\fP
+and the sample document \fBmacdemo.tex\fP for guidance.
+.PP
+Non-EPSF Macintosh PostScript files often
+require a ``Laserprep'' prolog in order to
+be properly printed.
+A laserprep prolog can be included with the \fBdvips\fP special
+header command at the top of your (La)TeX file:
+``\\\fBspecial\fP{header=lprep70.procs}''.
+\fBPsfig\fP provides `lprep68.procs', as well as `lprep70.procs',
+to suit various versions of the Macintosh applications.
+.PP
+.SH FIGURE SEARCH PATH
+Psfig first searches in the current directory for a figure (or
+in the specified directory if given an absolute path). If it fails
+to find the figure in the current directory, it optionally searches
+a search path of figure directories to see if the figure is
+present. To specify the figure search path, use
+"\\psfigurepath{dir1:dir2:...:dirn}",
+where dir1...dirn are the directories figures are to be found in.
+.PP
+.SH PROBLEMS
+.IP Problem: 10
+The page with graphics is not printed.
+.IP Solution: 10
+Remove lines containing `\fBshowpage\fP' and/or `\fBstop\fP'
+from the PostScript graphics file.
+Lines of this kind are usually found near the end of the file.
+.IP Problem: 10
+The figure is positioned in weird places.
+.IP
+Generally, this is an indication that the PostScript ``%%BoundingBox:''
+comment is missing.
+It may also be that a translation takes places \fIafter\fP the
+bounding box was determined.
+.RE
+.IP Solution: 10
+Edit a bounding box comment into the PostScript file
+and/or experiment with the \fIbb...\fP values (see: MISSING BOUNDING
+BOX above).
+.PP
+.SH BUGS
+The \\\fBpsfig\fP macro is (unfortunately) sensitive to whitespace,
+and will be confused by any extra spaces or newlines in its argument.
+.PP
+The LaTeX \fBletter\fP style must be loaded after the
+\\\fBpsfig\fP macros due to naming conflicts. This can be
+forced by including psfig with an explicit \\\fBinput\fP
+command before the \\\fBdocumentstyle\fP command.
+.PP
+.SH ACKNOWLEDGEMENTS
+This work was done while the author was with the Department of
+Computer and Information Science, University of Pennsylvania. Ned
+Batchelder co-developed the original troff version of this
+program with the author, and was responsible for much of the overall
+design. For more detailed information on the original version of
+see \fIPsfig \- A Ditroff Preprocessor for PostScript Figures\fP in
+the USENIX 87 proceedings, or \fIBringing troff up to speed\fP in the
+July 1987 issue of Unix Review.
+.PP
+Greg Hager provided the initial pure-TeX implementation of \fBpsfig\fP.
+J. Daniel Smith of Schlumberger CAD/CAM implemented the rotation
+feature and improved the file scanning routines, using certain code
+fragments from Tom Rokicki's \fBdvips\fP program.
+.PP
+Thanks to Sake Hogeveen (hogeveen.fys.ruu.nl) for editing this man page.
+.SH AUTHOR
+Trevor Darrell
+.PP
+.SH SEE ALSO
+tex(1), latex(1), dvips(1), psfig-troff(1)
+.PP
+A printed version of the psfig-tex manual may be obtained by typing
+.br
+``% \fBlatex\fP psfig-doc'', then ``% \fBdvips\fP psfig-doc'',
+.br
+and finally printing the resulting psfig-doc.ps file on your nearest
+PostScript printer.
+The manual provides many examples with real-life PostScript graphics,
+see the text of psfig-doc.tex for more usage examples.
+