summaryrefslogtreecommitdiff
path: root/graphics/figfrag
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/figfrag
Initial commit
Diffstat (limited to 'graphics/figfrag')
-rw-r--r--graphics/figfrag/README53
-rw-r--r--graphics/figfrag/epscrop92
-rw-r--r--graphics/figfrag/figfrag326
-rw-r--r--graphics/figfrag/test.eps1695
-rw-r--r--graphics/figfrag/test.fig23
5 files changed, 2189 insertions, 0 deletions
diff --git a/graphics/figfrag/README b/graphics/figfrag/README
new file mode 100644
index 0000000000..d002c5e03d
--- /dev/null
+++ b/graphics/figfrag/README
@@ -0,0 +1,53 @@
+
+FIGFRAG - convert FIG to EPS replacing all text by its LaTeX equivalent.
+
+
+Latest features:
+ - color support
+ - fontstyle support
+
+
+1. Why figfrag?
+
+The idea of figfrag started when I wanted to use LaTeX commands in
+xfig figures. So far, nothing new: use the special text options in
+xfig and use the pstex backend. However, I also wanted to create
+standalone EPS figures which consequently should be converted to PDF
+in order to use the figures with pdflatex. So I wrote a first script
+based on the pstex backend, but soon switched to use the psfrag package
+instead and, voila, the first version of figfrag was born.
+
+
+2. Requirements
+
+To use figfrag you need the following:
+- the fig2dev program (http://www.xfig.org)
+- a working (La)TeX environment
+- the psfrag, epsfig, graphics, color, calc and ifthen packages
+- perl (I use version 5.6.1, and I haven't tried other versions)
+- the epscrop script (uses bash and awk)
+
+
+3. Usage
+
+See the help text (figfrag -h). For best results enable the use of
+Type1 for Computer Modern fonts. This results in scalable (non bitmapped
+version) text and math.
+
+
+4. Bugs
+
+Plenty of course ;-) I just haven't found them yet. Be warned: I have
+only been able to test figfrag on my own machine (Linux - Debian 3.0).
+
+
+5. Acknowledgements
+
+Thanks to Hylke van Dijk and Jacco Taal for their valuable comments,
+support and patches.
+
+
+
+Have fun with it!
+Maarten Ditzel (ditzel@cobalt.et.tudelft.nl)
+
diff --git a/graphics/figfrag/epscrop b/graphics/figfrag/epscrop
new file mode 100644
index 0000000000..2bf3826ee1
--- /dev/null
+++ b/graphics/figfrag/epscrop
@@ -0,0 +1,92 @@
+#!/bin/bash
+
+# epscrop -- crop EPS files using ghostscript
+# Copyright (C) 2002, Maarten Ditzel
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# process arguments
+infile=$1
+if [ "$1" == "-h" ]; then
+ echo "synopsis: epscrop <file>"
+ echo "author: Maarten Ditzel (February 2002)"
+ echo "description: adjusts the bounding box of <file> to fit"
+ exit 1
+fi
+
+if (( $# < 1 )); then
+ echo "no input file specified"
+ exit 2
+fi
+
+# create a temporary directory
+tmpdir=/tmp/epscrop-$$
+mkdir $tmpdir
+
+# check ghostscript version (both GNU and Aladdin should work)
+gstype=`gs -v | awk '/^GNU|AFPL/ { print $1; }'`
+version=`gs -v | awk '/^GNU|AFPL/ { print $3; }'`
+major=`echo $version | awk -F "." '{ print $1; }'`
+minor=`echo $version | awk -F "." '{ print $2; }'`
+
+if [[ (( $major > 5 )) && (( $minor > 50 )) ]]; then
+ # retrieve the bounding box
+ gs -dNOPAUSE -sDEVICE=bbox -q $infile quit.ps 2> $tmpdir/bbox
+else
+ # bbox device doesn't seem to work for previous versions
+ # thus we use epswrite to find the bounding box
+ # Q: why don't we use epswrite all the time ?
+ # A: it returns a poor quality eps
+ # Q: why don't we use the psbb program ?
+ # A: only returns the boundingbox already specified in the file
+ # and the whole point is to replace it with a cropped version
+
+ gs -dNOPAUSE -sDEVICE=epswrite -sOutputFile=$tmpdir/bbox.eps -q $infile quit.ps
+ grep BoundingBox $tmpdir/bbox.eps > $tmpdir/bbox
+
+fi
+
+# get the cropped bounding box
+bbox=`awk '/^%%BoundingBox:/ { print $2,$3,$4,$5; }' $tmpdir/bbox`
+
+# create awk script
+cat <<EOF > $tmpdir/epscrop.awk
+
+# created by epscrop
+
+BEGIN {
+ bbdone = 0;
+}
+
+/^%%BoundingBox/ {
+ if (!bbdone) {
+ print \$1, bbox;
+ bbdone = 1;
+ }
+ else
+ print;
+}
+
+!/^%%BoundingBox/ {
+ print;
+}
+
+EOF
+
+# adjust bounding box
+awk -v bbox="$bbox" -f $tmpdir/epscrop.awk $infile
+
+# remove the temporary directory
+rm -r $tmpdir
diff --git a/graphics/figfrag/figfrag b/graphics/figfrag/figfrag
new file mode 100644
index 0000000000..f8d4ca6dc0
--- /dev/null
+++ b/graphics/figfrag/figfrag
@@ -0,0 +1,326 @@
+#!/usr/bin/perl
+
+# figfrag -- generate EPS from FIG files (generated with xfig)
+# Copyright (C) 1999, Maarten Ditzel
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+use strict;
+
+use Getopt::Std;
+use File::Path;
+use Cwd;
+
+my $program = "figfrag";
+my $version = "2.5";
+
+my $tmpdir = "/tmp/.$program-$$";
+my $calldir = cwd();
+
+my $fig = "$program.fig";
+my $tex = "$program.tex";
+my $dvi = "$program.dvi";
+my $eps1 = "$program.eps1";
+my $eps2 = "$program.eps2";
+
+my $quiet = 0;
+my $keep = 0;
+my $defaultcolor = "black";
+my $font;
+
+my ($include, $infile, $outfile);
+
+my $texheader = <<EOF;
+%% AUTOMATICALLY GENERATED WITH $program $version
+
+\\documentclass[a4paper,10pt]{article}
+
+\\usepackage{epsfig}
+\\usepackage{psfrag}
+\\usepackage{color}
+\\usepackage{calc}
+\\usepackage{ifthen}
+
+\\pagestyle{empty}
+
+\\begin{document}
+
+\\newbox{\\fig}
+\\newlength{\\figwidth}
+\\newlength{\\figheight}
+\\newlength{\\widthratio}
+\\newlength{\\heightratio}
+EOF
+
+my $texfooter = <<EOF;
+\\settowidth{\\figwidth}{\\usebox{\\fig}}
+\\settoheight{\\figheight}{\\usebox{\\fig}}
+\\setlength{\\widthratio}{1pt*\\ratio{\\textwidth}{\\figwidth}}
+\\setlength{\\heightratio}{1pt*\\ratio{\\textheight}{\\figheight}}
+
+\\ifthenelse{\\lengthtest{\\widthratio < \\heightratio}}{%%
+\\resizebox{.95\\textwidth}{!}{\\usebox{\\fig}}}{%%
+\\resizebox{!}{.95\\textheight}{\\usebox{\\fig}}}
+
+\\end{document}
+EOF
+
+sub debug {
+ my ($msg) = @_;
+ print STDERR "$msg\n" if (not $quiet);
+}
+
+sub print_info {
+ print STDERR "$program $version\n";
+ print STDERR "Maarten Ditzel, July 1999, revised February 2002\n";
+ print STDERR "usage: $program [options] <file>\n";
+ print STDERR
+ "options:\n",
+ " -h : this help\n",
+ " -V : print version\n",
+ " -k : keep intermediate files (debug purposes)\n",
+ " -q : quite (non-verbose)\n",
+ " -i <include_file> : include file with LaTeX commands\n",
+ " -o <output_file> : output to file\n",
+ " -f <fontfamily> : set default font\n",
+ " -c <color> : set default color (default black)\n";
+}
+
+sub print_version {
+ print STDERR "$program $version\n";
+}
+
+sub create_tmpdir {
+ mkdir($tmpdir, 0775) ||
+ die "ERROR: could not make temporary directory.\n";
+ chdir($tmpdir) ||
+ die "ERROR: could not change to working directory.\n";
+}
+
+sub destroy_tmpdir {
+ chdir $calldir;
+ rmtree($tmpdir) ||
+ die "ERROR: could not remove temporary directory.\n";
+}
+
+sub process_options {
+
+ my %options;
+
+ getopts('hVkqc:f:i:o:', \%options) ||
+ die "ERROR: invalid arguments.\n";
+
+ if (defined $options{h}) {
+ &print_info;
+ exit;
+ }
+
+ if (defined $options{V}) {
+ &print_version;
+ exit;
+ }
+
+ if (defined $options{q}) {
+ $quiet = 1;
+ }
+
+ if (defined $options{f}) {
+ $font = "$options{f}";
+ }
+
+ if (defined $options{c}) {
+ $defaultcolor = "$options{c}";
+ }
+
+ if (defined $options{i}) {
+ $include = "$options{i}";
+ }
+
+ if (defined $options{k}) {
+ $keep = 1;
+ }
+
+ $infile = shift @ARGV ||
+ die "ERROR: no input file specified\n";
+ $infile = "$calldir/$infile";
+
+ if (defined $options{o}) {
+ $outfile = $options{o};
+ }
+ else {
+ $outfile = $infile;
+ $outfile =~ s/\.fig$/\.eps/;
+ }
+}
+
+sub read_fig {
+ # create fig and tex files
+ open(FIG, ">$fig") ||
+ die "ERROR: could not create $fig\n";
+ open(TEX, ">$tex") ||
+ die "ERROR: could not create $tex\n";
+
+ debug("Generating LaTeX file...");
+
+ print TEX $texheader;
+
+ # set custom font
+ if ($font) {
+ print TEX "\\renewcommand{\\familydefault}{$font}\n";
+ print TEX "\\normalfont\n";
+ }
+
+ # include file
+ open(INC, "<$calldir/$include") ||
+ die "ERROR: could not open $include\n";
+ while(<INC>) {
+ print TEX;
+ }
+ close(INC);
+
+ # start figure box
+ print TEX "\\savebox{\\fig}{\n";
+
+ # variables
+ my ($mark, $ltx, $marker, $line, $opt,
+ $fontscale, $fontcolor, $fontstyle);
+
+ # alignment strings
+ my @align = ( "[Bl][Bl]", "[Bc][Bc]", "[Br][Br]" );
+ my @color = ( $defaultcolor,
+ "black",
+ "blue",
+ "green",
+ "cyan",
+ "red",
+ "magenta",
+ "yellow",
+ "white" );
+ my @style = ( "", # default font (no change)
+ "\\rmfamily",
+ "\\bfseries",
+ "\\itshape",
+ "\\sffamily",
+ "\\ttfamily" );
+
+ $mark = 0;
+
+ open(INFILE, "<$infile") ||
+ die "ERROR: could not open $infile\n";
+
+ while ($line = <INFILE>) {
+
+ my @fields = split / /, $line, 14;
+
+ # process only text fields with non Postscript fonts
+ if ( $fields[0] == 4 && ! ( $fields[8] & 0x04 ) ) {
+
+ # reset special flag
+ $fields[8] = 0;
+
+ # create unique marker
+ $marker = sprintf "mark-%04d", $mark++;
+
+ # get fonts scale factor
+ $fontscale = $fields[6]/10.0;
+
+ # get the font color
+ if ( $fields[2] > 7 ) {
+ print STDERR "color $fields[2] not supported (>7)";
+ $fields[2] = -1; # default color
+ }
+
+ $fontcolor = "\\color\{$color[$fields[2]+1]\}";
+
+ # get the font style
+ $fontstyle = $style[$fields[5]];
+
+ # get the latex command
+ $ltx = $fields[13];
+ $ltx =~ s/\\001\n$//;
+
+ # replace double backslashes by single
+ $ltx =~ s/\\\\/\\/g;
+
+ # replace special characters
+ $ltx =~ s/&/\\&/g;
+
+ # change math mode from textstyle to displaystyle
+ $ltx =~ s/\$(.*)\$/\$\\displaystyle $1\$/g;
+
+ # replace \int and \sum by \int\limits and \sum\limits
+ $ltx =~ s/\\int/\\int\\limits/g;
+ $ltx =~ s/\\sum/\\sum\\limits/g;
+
+ $ltx = "\\resizebox{!}{$fontscale\\height}{$fontstyle$fontcolor $ltx}";
+
+ # adjust alignment
+ $opt = $align[$fields[1]];
+
+ # generate psfrag command
+ print TEX " \\psfrag{$marker}$opt\{$ltx}\n";
+
+ $fields[13] = $marker;
+ print FIG "@fields\\001\n";
+ }
+ else {
+ print FIG $line; # @fields;
+ }
+ }
+
+ close INFILE;
+
+ # close figure box
+ print TEX " \\epsfig{file=$eps1}\n";
+ print TEX "}\n";
+
+ print TEX $texfooter;
+
+ close FIG;
+ close TEX;
+
+}
+
+sub convert_fig {
+
+ debug("Converting figure to EPS...");
+ system "fig2dev -L eps $fig $eps1 > /dev/null" ||
+ die "ERROR: could not execute fig2dev\n";
+
+ debug("Replacing tags with LaTeX commands...");
+ system "latex --interaction nonstopmode $tex > /dev/null" ||
+ die "ERROR: could not execute latex\n";
+
+ debug("Converting DVI to EPS...");
+ system "\\dvips -E -o $eps2 $dvi 2> /dev/null" ||
+ die "ERROR: could not execute dvips\n";
+
+ debug("Adjusting bounding box...");
+ system "epscrop $eps2 > $outfile" ||
+ die "ERROR: could not execute epscrop\n";
+
+}
+
+
+&process_options;
+&create_tmpdir;
+&read_fig;
+&convert_fig;
+if ( $keep ) {
+ debug("keeping intermediate files in $tmpdir\n");
+}
+else {
+ &destroy_tmpdir;
+}
diff --git a/graphics/figfrag/test.eps b/graphics/figfrag/test.eps
new file mode 100644
index 0000000000..6fdcc72d79
--- /dev/null
+++ b/graphics/figfrag/test.eps
@@ -0,0 +1,1695 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: dvips(k) 5.86e Copyright 2001 Radical Eye Software
+%%Title: figfrag.dvi
+%%BoundingBox: 143 412 463 666
+%%DocumentFonts: CMR10 CMR7 CMMI10 CMMI7 CMEX10 CMTT10 CMSS10 CMTI10
+%%+ CMBX10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -E -o figfrag.eps2 figfrag.dvi
+%DVIPSParameters: dpi=1200, compressed
+%DVIPSSource: TeX output 2003.08.29:1150
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{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/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}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 a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: psfrag.pro
+%%
+%% This is file `psfrag.pro',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% psfrag.dtx (with options: `filepro')
+%%
+%% Copyright (c) 1996 Craig Barratt, Michael C. Grant, and David Carlisle.
+%% All rights reserved.
+%%
+%% This file is part of the PSfrag package.
+%%
+userdict begin
+/PSfragLib 90 dict def
+/PSfragDict 6 dict def
+/PSfrag { PSfragLib begin load exec end } bind def
+end
+PSfragLib begin
+/RO /readonly load def
+/CP /currentpoint load def
+/CM /currentmatrix load def
+/B { bind RO def } bind def
+/X { exch def } B
+/MD { { X } forall } B
+/OE { end exec PSfragLib begin } B
+/S false def
+/tstr 8 string def
+/islev2 { languagelevel } stopped { false } { 2 ge } ifelse def
+[ /sM /tM /srcM /dstM /dM /idM /srcFM /dstFM ] { matrix def } forall
+sM currentmatrix RO pop
+dM defaultmatrix RO idM invertmatrix RO pop
+srcFM identmatrix pop
+/Hide { gsave { CP } stopped not newpath clip { moveto } if } B
+/Unhide { { CP } stopped not grestore { moveto } if } B
+/setrepl islev2 {{ /glob currentglobal def true setglobal array astore
+ globaldict exch /PSfrags exch put glob setglobal }}
+ {{ array astore /PSfrags X }} ifelse B
+/getrepl islev2 {{ globaldict /PSfrags get aload length }}
+ {{ PSfrags aload length }} ifelse B
+/convert {
+ /src X src length string
+ /c 0 def src length {
+ dup c src c get dup 32 lt { pop 32 } if put /c c 1 add def
+ } repeat
+} B
+/Begin {
+ /saver save def
+ srcFM exch 3 exch put
+ 0 ne /debugMode X 0 setrepl
+ dup /S exch dict def { S 3 1 roll exch convert exch put } repeat
+ srcM CM dup invertmatrix pop
+ mark { currentdict { end } stopped { pop exit } if } loop
+ PSfragDict counttomark { begin } repeat pop
+} B
+/End {
+ mark { currentdict end dup PSfragDict eq { pop exit } if } loop
+ counttomark { begin } repeat pop
+ getrepl saver restore
+ 7 idiv dup /S exch dict def {
+ 6 array astore /mtrx X tstr cvs /K X
+ S K [ S K known { S K get aload pop } if mtrx ] put
+ } repeat
+} B
+/Place {
+ tstr cvs /K X
+ S K known {
+ bind /proc X tM CM pop
+ CP /cY X /cX X
+ 0 0 transform idtransform neg /aY X neg /aX X
+ S K get dup length /maxiter X
+ /iter 1 def {
+ iter maxiter ne { /saver save def } if
+ tM setmatrix aX aY translate
+ [ exch aload pop idtransform ] concat
+ cX neg cY neg translate cX cY moveto
+ /proc load OE
+ iter maxiter ne { saver restore /iter iter 1 add def } if
+ } forall
+ /noXY { CP /cY X /cX X } stopped def
+ tM setmatrix noXY { newpath } { cX cY moveto } ifelse
+ } {
+ Hide OE Unhide
+ } ifelse
+} B
+/normalize {
+ 2 index dup mul 2 index dup mul add sqrt div
+ dup 4 -1 roll exch mul 3 1 roll mul
+} B
+/replace {
+ aload pop MD
+ CP /bY X /lX X gsave sM setmatrix
+ str stringwidth abs exch abs add dup 0 eq
+ { pop } { 360 exch div dup scale } ifelse
+ lX neg bY neg translate newpath lX bY moveto
+ str { /ch X ( ) dup 0 ch put false charpath ch Kproc } forall
+ flattenpath pathbbox [ /uY /uX /lY /lX ] MD
+ CP grestore moveto
+ currentfont /FontMatrix get dstFM copy dup
+ 0 get 0 lt { uX lX /uX X /lX X } if
+ 3 get 0 lt { uY lY /uY X /lY X } if
+ /cX uX lX add 0.5 mul def
+ /cY uY lY add 0.5 mul def
+ debugMode { gsave 0 setgray 1 setlinewidth
+ lX lY moveto lX uY lineto uX uY lineto uX lY lineto closepath
+ lX bY moveto uX bY lineto lX cY moveto uX cY lineto
+ cX lY moveto cX uY lineto stroke
+ grestore } if
+ dstFM dup invertmatrix dstM CM srcM
+ 2 { dstM concatmatrix } repeat pop
+ getrepl /temp X
+ S str convert get {
+ aload pop [ /rot /scl /loc /K ] MD
+ /aX cX def /aY cY def
+ loc {
+ dup 66 eq { /aY bY def } { % B
+ dup 98 eq { /aY lY def } { % b
+ dup 108 eq { /aX lX def } { % l
+ dup 114 eq { /aX uX def } { % r
+ dup 116 eq { /aY uY def } % t
+ if } ifelse } ifelse } ifelse } ifelse pop
+ } forall
+ K srcFM rot tM rotate dstM
+ 2 { tM concatmatrix } repeat aload pop pop pop
+ 2 { scl normalize 4 2 roll } repeat
+ aX aY transform
+ /temp temp 7 add def
+ } forall
+ temp setrepl
+} B
+/Rif {
+ S 3 index convert known { pop replace } { exch pop OE } ifelse
+} B
+/XA { bind [ /Kproc /str } B /XC { ] 2 array astore def } B
+/xs { pop } XA XC
+/xks { /kern load OE } XA /kern XC
+/xas { pop ax ay rmoveto } XA /ay /ax XC
+/xws { c eq { cx cy rmoveto } if } XA /c /cy /cx XC
+/xaws { ax ay rmoveto c eq { cx cy rmoveto } if }
+ XA /ay /ax /c /cy /cx XC
+/raws { xaws { awidthshow } Rif } B
+/rws { xws { widthshow } Rif } B
+/rks { xks { kshow } Rif } B
+/ras { xas { ashow } Rif } B
+/rs { xs { show } Rif } B
+/rrs { getrepl dup 2 add -1 roll //restore exec setrepl } B
+PSfragDict begin
+islev2 not { /restore { /rrs PSfrag } B } if
+/show { /rs PSfrag } B
+/kshow { /rks PSfrag } B
+/ashow { /ras PSfrag } B
+/widthshow { /rws PSfrag } B
+/awidthshow { /raws PSfrag } B
+end PSfragDict RO pop
+end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
+exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
+dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
+ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
+end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
+dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
+roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
+dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
+if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
+def end
+
+%%EndProcSet
+%%BeginProcSet: special.pro
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
+psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
+roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
+moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
+begin/SpecialSave save N gsave normalscale currentpoint TR
+@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{
+CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
+closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
+sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
+}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
+CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
+lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
+/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
+repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
+/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
+currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
+moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
+/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
+1 startangle endangle arc savematrix setmatrix}N end
+
+%%EndProcSet
+%%BeginProcSet: color.pro
+%!
+TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
+setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
+}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
+/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
+setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
+/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
+known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
+/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
+/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
+setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
+setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
+0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
+/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
+setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
+0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
+0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
+0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
+/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
+setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
+setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
+0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
+/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
+setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
+0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
+0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
+0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
+/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
+setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
+/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
+0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
+0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
+0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
+setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
+0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
+/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
+setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
+0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
+1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
+/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
+setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
+0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
+DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
+setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
+setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
+setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
+
+%%EndProcSet
+%%BeginFont: CMBX10
+%!PS-AdobeFont-1.1: CMBX10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:06
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMBX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 98 /b put
+dup 100 /d put
+dup 108 /l put
+dup 111 /o put
+readonly def
+/FontBBox{-301 -250 1164 946}readonly def
+/UniqueID 5000768 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
+FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
+DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
+7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
+9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
+CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
+6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
+E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
+8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
+3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
+EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
+0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
+4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6208BF8D08FB53A5
+CBF97B4F65DA9BB68DB482A3C0658C2A225509DF6016654F8CA3D57DF9FBEA8B
+0960A982D2FD6B018961F05D7BD2C250DCC8A9DA8EC75EEF3919EB6C563F2EEF
+8623E0DC81C8F1ABADDD399C63DEE9A6B13A3E53D1F2A17997FBBE68D91CBD0D
+5E6CB9B777366802EF24D2B557843D46ECC2F45B63622AFAD93D6DE1716329EB
+E4A424C61E71F5C59075B9BDCEFC4B659E93BACF45D1A498457708D281F5762A
+DE506C2DA47286A8A2312B11DE49FE74C8B42C6EA815E150DE0739F413482171
+52723CC9ABEADA0440A13599261073FC8F97CCFBF00AD20DC178EAB069AF7233
+7FA9495DCAC8CE84E14C701FD053FF0F727EE7A62C4A4C0C8D10A93430C7FAD6
+48A1E83BEB468EAA8FAF6CA4C24899968C61F14312257AB2DF361B2AF95849F3
+AF9E42B66361134916C8EEFD359AEE06232DA7EBC45D51B25D1A18AFED94F499
+9DFFED7C736E945F8453ABBCA099EAE8CEA0025C4859D2A47248BAAA2A6D4330
+094BC0F348A0C8597F716170C5EA7DB77612DF679C0906D77AB2144E81008DC5
+DF4E23A07F6C0E1387DD54F5C8BD071C4E9A7B45812C8E9EE7A622F66300B69C
+5B27CC34FCE072424DDECC8F7BD3EF0C79354354299C85E1799134872BE96C56
+9BACF9290478CFDD203BA47E66E3B893246723109832853C664B53C4ECDF81B0
+004DBE82B869A76148C0798ECEBC9EC234234A21E0DB20718EAA7C8475E97474
+2B76CE9724465C49DC221DF6D624C689F6DB7F67AE9DB3C7D5700C2E03190574
+DD1EDB1537FF04DA5F493A7818D223AA99905CADECFF5045C4FE88F3D6D44A4F
+160C814001228745DAB9A9286F1CDC816838A6D92CF30DFB76635186758B39CA
+84BE9DB965A297B6BA82725E655C19F4D75F96952D8C8301CAA43DA4AE84F8DA
+B063019DCDF2544CC6F1F589B466BFDB244428706A858A039B840FEE93563680
+E435659DB7CC2AA810E4F056CD8DA9E61C39ED2BC42A159E11E02F4A51BC6132
+73432DA786C4A0CDC428E9C6BFB09A0795C369C955D89AB09DA0BA6000453A79
+E95D1238B414CEAD3C97FB91E7295C6262015FCC8C215D1043B0FF599ABB21BE
+7402C77485F3B5AFED89AA25A6192337B4C42BE74EB91CFF488B3259E13FDD70
+A57912100D31D83C7C0CADC3AEED5120643AD75B7644C52589C18B1D0F2B8564
+AB9D62FCC770E17F573DB8922EC916DE61C08D9AA263FE28094EBC096FD94456
+82E3B24D8FF9479EE1847C4E0F55198789A7BC97C24B6ED78B720C1D1A63BFF1
+5A7EB2A8DB17F1E3373FB35997F70D738801E1BF51966012856DF2B8C5D18E17
+BBCE1C30DFD00D8C8F430764740F5FD4BDB42C6EC7CB223649056D7EC8C47FEF
+5A8048A7518DE0627CD4FD1F194FB9C051C6EF47B2482307843C3C704A38CB54
+DC61E205F936CDFAF0B40C58AA71F24CA0EB508E53C8C5A75C3D4B8F8D676104
+B8929899CFA4BAD605EF8425552FF904EC7C96D60711F033C3C27945ED371999
+90F7368E3DB8C9161205FC57CCD6BB371753C8C3BD462161FCE6E4E86A72774F
+167A4F016BE33B9D792B63D6890654CFA3A2230910DD6A568230364AE6F14A5F
+8A5B07DF7C573AA628FACFDE3A4A6BD18B2A3D56BE532F71F7620ACA5BC20DC1
+DBBE79C3F01B9E801D789D3BFB8E5B7FCAD20855CFC2D8E9B7A25757EDCA79FA
+1D1AD79651C1B1A4203892CDA454CF343060259ED8C2DF8603AAE9F79C9B8EEE
+2744B77EFC9971ECC69A69FAD36792A8B79C1F67A6D81E5BBE350BF113450AA1
+A017545C6062C8181DC299FF2F0F6F5DF2DC2D531F1FEF82C280BFEA232585BB
+00185B296C1D85AB60A1CF9EA345
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 97 /a put
+dup 99 /c put
+dup 105 /i put
+dup 108 /l put
+dup 116 /t put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
+C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
+EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
+998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
+B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
+CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
+C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
+6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
+8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
+6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
+E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
+BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
+72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
+5EE89221BFD28AE8117B6ED99D1DABF7CE20C919C6704E490A41F6019452DCD1
+FC704003D63E9A0EC0B739FD6E4F2042D5477E5F98D67216183250218B301B2D
+A51C2560CA3F5173F4B573F17565C3241A0D2758CFFB2918AADF114BD033B52A
+90D87830C77BB10AF141A1E2636E43CC3EFAA9A458F10043FF9BA197E583FD8E
+D4577E270508621E0FC3F51682D6A5264FB10FC5B2F01D6733FD6FC01193B257
+3215D536C186D6D6C2C29BFC4D7B75AA78C12591291704763EF85C8AB93A361E
+A4800A9E149D0DBC25AA96FA3E3EB00A96FD929B13CFE89FF5187F3D993C3C56
+9CBAF9419E5495D0810007295BA145E718CFF092635344BC74436840C8843606
+41ECC5AD425B1D9D3F6AB37C5B970B27DD0551DFF14DED1F0BA095AB91CA6DEB
+B104FF1EB6562D45E38E9F8FE5533F16C727CA83CE5F8E3BF6456F98B28785DC
+B5D023366E189D3E1E5B4F5940F0E9DAF7904760C0232E37260B7B3A0836C772
+EBEF075A0819C85E20B38F8108C775B117C572D77A751CA265BA6056D125BACB
+150DFCB65B9057C1BE24A6B2E0ECB4EE180FABBBF28EFD3D561F2AC7ED018275
+326C024252234061D6DB05E135FBF05526E761AD51F042189B7EC40886F985E8
+E7CC70EC2B32D65B14A210C1014F1FA6B876D18DA41D1B71C2AD9A43B326D8C2
+3DFAFFF7E53D0A899EB40B131B2E0F15C431821543028054CDEFE6C8FA4063DE
+FDE4389784DD11E5702837C6E960588E75A98D785FAF1F929699C6838C595962
+97E3B0564C5717123BAB44362F30E6A77B2207C4A0E40A2F836687DB1F3F2260
+3943692AF84C55ED54CB4410416C16A7B432C109D95A0829F8A0ECC93C11A76C
+8DAC117F7F6A46F82CE11EAB0D03FF464DC5C795760604DA6F110474624058A6
+01DA932C344A2151790915F0F94CC6218C4AB3BF4EB94BEA617F32FA1A144CB8
+22473B92E52470E7A0763739F2246ED1B258D437929B64B50026BCDF5D6AFCC7
+8AB7AC3E5C01CCBC45FBE34C9CAE195C19E47DE86A0E8CE440EFECDC1751AC3D
+1348B2565D5FC83C6FF54390C45F64B4747B1201D6D08CC05F22046D92B09269
+5C6C446020027E4C0A82D2A9ED165EFFDB9A16E6872EE321A60367201FC60B9C
+B93E67674157B6C75ADE6BBFF6F9521063ED6F9C55FA543267394FEE9C1C495A
+493558111812560D6AC993DE389F50A238E591EEF12C0E0C24DAD9A862526F84
+AD8A56941AC9F4EDF3C8D452053B44E8DAB1E77DB61878C2D8D1BCD33DF89D42
+A3A2214C358480E8B7C2EACBDFD3763DFB42E969209F34168752CBEF088D6FB1
+75F1BBD64C16238AF9843B1D4F15824C2344AFD14BBC4C873EA51B00B23DEBDA
+3C6D03F100D5E89647E4BE015CBDC733242FAFAC048411D04EBF3A26E6871F2F
+
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMSS10
+%!PS-AdobeFont-1.1: CMSS10 1.0
+%%CreationDate: 1991 Aug 20 17:33:34
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMSS10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSS10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 97 /a put
+dup 101 /e put
+dup 102 /f put
+dup 105 /i put
+dup 110 /n put
+dup 114 /r put
+dup 115 /s put
+readonly def
+/FontBBox{-61 -250 999 759}readonly def
+/UniqueID 5000803 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9
+D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858
+D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723
+3386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6
+0AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348
+44D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8
+46D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13
+6B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5
+6DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3
+16CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4
+1E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED
+286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872
+A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477
+713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C
+3A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE
+3AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5
+034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185
+9F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A
+12C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA
+901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FAD1834E7C49A3
+915F0967CAD843D98F5EDA7FB9018AA95FD09288C389C787B8AA867AB93A9037
+4C27C9F9BA697832CB16563A9ABD8B10E12BFCCBB77DD4621AEC033B6AB2FDA4
+50261315214412CDB2C5D1B57DE7F9F2FCC409A188D9446FEF85A8DE763F33D9
+36275F09EDF3CB171A635A101EAD6F060DC9BE6905145EC0CCF54EF8D262E241
+435819E659B41B61CB9E114F17F91D218D1D3672CDA2A6661B8A659F540E890C
+75BCE6F40DF276462826298055443EAF6A97A3B639564F1D036A48A28EC2173B
+5F0E8AF745EBBF25DC1C79527F787471C935A0039F88CF67D8C85F55C0437E85
+A0AD0966B3B8B49865083413CCF6C6C03413E2009F6B7EA4E75F9315FD62E6F7
+3632FC370F02C8F3F33F749C528BA09A16A52DEEA889B8C9C706FE1B702337B4
+ABED409BF1AA464B381AC623CB24C3AD7D8DF4BE30C6B8025DEFF8500676F093
+C723543D4516CCE87362F8203A5ED6DE144DD4B3F5842B93AF9F823C824D032F
+B8B36EDD87873C13A24388F4E3D4BFAA98EC418931B48A7905A1E2785A1D40CC
+D8F87F568AECF118E028EBD35DFB429307211C728B8F5E721DCB403C46798EFE
+2298803734899AE24E7D29FCA020E3AFBF1BB017D277B0A2726E510616270DB9
+0F57C711DED3129CD76B1FA2A0831CC0DB53FC9708B09E3DC2328EFCA5AD3CB7
+ECFB8649FA3FCBD528A7025CA5E6B1E8E7FC9B813499A955B23FD62EBDC47CCA
+1B19FF1B882934AFF296494AFF46818B45A1B4DC97855AEB2ADC17B62050F067
+C35CAAA2DB9AFF314DA23D71C0161A21D826E6DD9191E5238F3D5D6A75BBFA1E
+228DB0DEC600A1CE3F919737B1FBD6874A3230D8447B926E38FD5EBB4C2C4810
+241E9C23B7D6C8952567AE5A9FA47E201B2959F5BD71A2FDFEB0BB8A56F63E62
+50BB51F3C595E4C95B4A66C798D87E7BC53EC2B92746EB9ED7C3BADDA9B90511
+0C2CEE0A010F64931220EECD1A05C8646E96CF41F547037D91942D89AF32C3B3
+01253A49BFCB8B81E638400A969D501B08CF52BA1B8F3F15B9E44D4BF781B585
+F5E801093146154A1846362BFFCE7EF715BE0F0FABE3C73725C08A3AEF3B5513
+1BEA859353CFC621B780A225D12738EE07898851A251BAF0969FCC9AA2F43EE6
+190674254C69327E8645FB58DF80CB39E4D12D89E940850A3295C329201ECBC0
+EDADCE90C22E6CA38A9AF6BE9C595919242440E0EF04816782FBF0F178A4BB85
+D9890D8F0705A4
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTT10
+%!PS-AdobeFont-1.1: CMTT10 1.00B
+%%CreationDate: 1992 Apr 26 10:42:42
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTT10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+end readonly def
+/FontName /CMTT10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 101 /e put
+dup 105 /i put
+dup 112 /p put
+dup 114 /r put
+dup 116 /t put
+dup 119 /w put
+dup 121 /y put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
+38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
+D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
+EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
+A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
+F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
+4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
+6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
+A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
+E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
+1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
+452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
+8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
+5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
+DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
+BA304FA879392EE0BCC1A77C8392948FE1B07931A19298FB60E443E198089A0A
+16D46095558E6DBAB7E03022F2A762470D545CE6B8D931FA66E63DDB04125D5E
+A2F86EC0944B0D160100C2DB33B92C400A8CCB715F68477177459BCD57C86D97
+449A25D63E9584EEF820A7AB919BC62D28434BFBA0EC53913CEB3BF4857057BB
+3FB43E95092D6DC0B7CE4E1D8C1FDD292F80E973E277C7FCC9878D2F97D0E3E9
+8DD466CCB4EEC3E16429C36FC9583A048A83F68049C707E5FC1473E7DF90125D
+BCC3489C04F227D170EA0C1E8E021294FBF894B19E966F94B1F3FF879474E9EA
+34D55A9EEB4459E5DBF801CDAB652D681BC673C26D3C73FE1AE6232638CB2582
+F75CA7F1BA6327B0A39B251E10606247224799C0B710586D3E3DDF28A5864D56
+6F5C532735511ECB7C52B7B6D47042B26B5C7B7D12DE631FE3BB27C41F4FB436
+5874CC0D1A182B42E4E0146BBECF156134C82BC2BE6F136D0439FF5B2585A53C
+7CB0DA52270915680C1610576D93988FC7CBCE8F8EEAD343E3ECE86CFC8D7D71
+D73F8FAB6D0BDCA8250D0E561E2A9F3A9ADCFCF2099128D1C3565C6F5FC2D898
+DF5FAA3E7842920D073CEFD986A0584E020CB5105DD5ED27FB4BE67A1833D36D
+09829FA03EE7D559D5AA98758BEE3BB7AB14D465CB0E4F622144E415EA54E08A
+F6B92ECA12783242342904893D044DA384E4836D27E70A5013119C3EE06D6ECB
+7A1A81C660EBD526C1AB4DC80B1F6F08FD5A956ECE9F5C5620713064FA149FED
+C651186F696F54D06555A5B0BB867298676E550BA31C9E73B10D6CAC28B34092
+D88C7315495CA2904FD702766B36916DBA8F9C96141BBF4788F99A22B2128EE6
+D33810625A52619D8F9D4EEFBC3BB1791F16A55843D2D962DD7B47A86BDA04DD
+10ED27986410EBD812D5358C88273B11D50A42EC6C24CD5B9532CDE7B69245BB
+11D82287427FD4D49FBE285075E792D2136B2B26517BA631CE1B18D6DE8E25EB
+F428F7E6F92D7326042BCA821A39AA48FB5161A4A164671576324451AD1B2CEA
+8ED4307F34009E509F8514C8F216279E64F9DD4264FBB9B80369E9D421A4C8B1
+C6541CC186D5DD79F08C05F8FFDF82D681441E33CC88BFC5EC2AAA42DDC6FA2D
+2FFC7A8A8FAECAE58E4FE3322A9A919B60856A5ED9A2E48AB7AA6F8A9AE3750E
+9197F982FA63E83F5904DA2243BDC25710CDBE486D7503632324555329D9E82F
+D0D481C39D69B2B07E8B8D5E45707AD1F1EACB72FC9CC439485BFBA0A3A483B0
+C11D777B299AF2C41314A498BED2B0C45344B4B0EC70FF1471621EB0510C5E7A
+A428E73E7B26DFCFAF26E05CFF7B352059CE4F7D5602800A7C3A9FF76CDD563C
+79506DE0D2C6234749887D3C6AEACD324E713576C80F68F09EEB7E28F3017954
+4589D1E376F8D39D331883EA23968649745CA791A4D57F849C14270A7D10C746
+654C489FA20720D9F66F5BEA4998E62F824C8C9FF7E5E7E766E78BFFA7F854E7
+682F9C2DDEE0A47ADBAAF1C5B36DAB36E0100B410F3FF7FFA7B4FE27C929AEC6
+2C26F89874C3779C8267D6722D84E3A4B5AABCEFCD9387A2271B455741D9F4F4
+15C872952AA25F65FD68DFE1C70DC2191F6A5455265FD782B7D6A9925E1E24EE
+B45EA0E81FE79C48C7BBE6E4AE4168831F603062F30EFA94CA23325BCF3C276F
+7837BAB66F8CD747680383D534BEFEBB27D1A058E0BFF85C79EB441997CFBC93
+C03B94693BC7BA69303C8309FB1406B7E46B4174FBD34D5622F9755C312FEAB6
+0A493BB41BB5F84360C968C39B814FC008F19E11AC30561495FD833084192D91
+8D6819866058903A3115609235ABD7347B619B9AE094F72C895AD1E24FE730A5
+0BDDA20CA4F35445C51BB7BF8CCB0300396BB0802AAC0C69DE8C7AFD2CE42F8E
+A50B506384AE7F01D18DAC728AB25633F4E79A0A60E94D633C654E06B119AB31
+06143FC14BF6A0B77C87F126AD4B587F3C9A3C4CBB88BE581346A5E39AB305A1
+674BA7C573B7AF96C45CA4F345CBA98DDE62B529FEE651DADF2728D700B9CA6F
+6B6F24124CF2CFE7606A2F74394137D058F983D16EB2D6DDC2B242DC504D25FF
+8453038701A73CC9CA29C88F8336D3BF5F6F29C72457AFFD93F8872954BB8088
+A81D88E999C7073247BAEA138B5D54D9C9D7915231D82D34C64AEE162672CA85
+EF59F2C6C4D9A18C9066763B8019CB0C02AA37BF555A4FBE726188EE72AF1A6D
+3BB381B0E8EEC80C3A3D279473898F49A6B7D2DEFCC84A440D0310117F97E888
+F0BE8962118535BB66021339A2E860971266B0445996D375635A6B5F405E74AC
+B7337556C8B8F1DDE03B659B0813848A902C3A8C86E07A1B4B0BC5FB5ABC407A
+DD45BA9FC4329A53E770A0E3C66BDC7AE241FA99B78B8EA965D4120DA0C5901A
+946707B9C401118D66D046388B368F3B2A203F68BA559191FD092DF853059873
+7042E93EBC70894EB266E2C537157F8CCA745DB70336810D43594CC7B44A6646
+B9B53C09D65A8BC47AA1AB348A470DBFE4F34EC68228E39BEDB25E7BE474815A
+05001B662CF3BD281C5D9F322E89BDE1645069F4C765AFFC0C7E7CDBD5ABA6AF
+8AB0F162AAF951DDFB7EB1694FC05C148ED39232C205C1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMEX10
+%!PS-AdobeFont-1.1: CMEX10 1.00
+%%CreationDate: 1992 Jul 23 21:22:48
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMEX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMEX10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 88 /summationdisplay put
+readonly def
+/FontBBox{-24 -2960 1454 772}readonly def
+/UniqueID 5000774 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910
+DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8
+8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987
+FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422
+BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52
+EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8
+DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1
+EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C
+6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281
+E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350
+E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38
+4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5
+8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023
+8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2
+FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A
+EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387
+680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35
+5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664
+3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666
+DD4DD1C1C8384F906A7BAACDF441BB0AAEA2A697E453D89E61340D3A13F615FF
+3E64BC24A22786C838BF3BAF6B2829B5E16372EE3B9347142EE6853C37C61423
+540C793D56EF624F68D2BD0C0A43524C3DD7DE1A30702B79032D9EAF715668AC
+6701F3B3E54B877104A17D328FA3B6F17B484771428F11365153D779E59132B8
+8AA4D47495417DC5F6CC5315B779C2B12A4EA32D16BE254D2EF2E0FEE0021791
+B46226F1A45386FA41C56864FD6EEBE29E98E00C279EBA6F17ABFC1F8E0519F0
+A9E5A7FFDBFF06D6475D65A977BEA0F5DACFAB70461E8E08B1BFD3D31ABB37C0
+5C42D17ACBC194B89A50063B9C2F02ED26A99FF436DFEACD70511658C9554FA6
+6EB73CA3F0A8F17C8C34B79C6A5BB7C395190BA6822EBBB81A40EEE29A69E316
+9AC9134E9DF5007B32E8CFA45579F310413D25E82691774DF4B83610A41BCFFE
+E2119028B24BFAED5197C3ECAC5F0D0D66D17E69
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMMI7
+%!PS-AdobeFont-1.1: CMMI7 1.100
+%%CreationDate: 1996 Jul 23 07:53:53
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 78 /N put
+dup 105 /i put
+readonly def
+/FontBBox{0 -250 1171 750}readonly def
+/UniqueID 5087382 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
+C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B
+B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868
+DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811
+4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3
+FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB
+76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5
+123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770
+012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6
+A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413
+44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC
+4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050
+01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608
+D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3
+914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05
+261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615
+24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2
+A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663
+9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C
+889787CDC0C51802EA1E0C63E6DE20980D3DD206F053478FF5AE66A7217C1CE7
+68644C66840D20118D0A093B41EDD90B9A2C84D1C95BE367D2D730A7532D1BCD
+155B8BAD768579F7607585502BDBA41524013169F52BB5331BA3C6959212E385
+34CEDDD5B83FD29163DD01344B92D28E90DC4A99777B509806C172CCDC104C63
+AFE893E8F00751F74D252287C59E386E82EDD61488DCAAC861EADDA2B2A283FF
+673AD4AAEC9ECD2E02D674E7061C7787087B46E9ABCF92E937EC49DB4E30059F
+7CE634BAFAE93267F36F4E6BB4CC8CA0BB747FC835BFEDFB293D9909E0370650
+306301584F4D7D20A25EC84F81E8EFDD6962563204FD5FBE497C0B3D540A4B30
+ABFDECD785CDF6E16F66F2E0923DACD55420675519148DBFBF59AA29C09CC74E
+5AA941919F8E64C1A5F519EC055BD9BD6F2E9F615A5C5AF2CB23F041D7604742
+629F7BB50B4C6655E64234BA0E50E6731901CFA91A64787AF27139E8DEAFB2CC
+4BE10D11DE595818B0CAB56D23F06413295908CDA80C0CBB8353CB1746926B95
+6F04C1DC7F616C54F1FB17736269A172E1E185D03C7DBE8CC7D59955E345C5CF
+459932BB39DD9EA8A13FAB8208BBBBF6D5C2F782203A16688FDCE85DC2374066
+3B18B0486420C54CB408E08A04585C202D44E587CC71EC88D6E9EF191B925977
+4738B02B21AE9FF20CAFD3E0E2BE295E5E09A8B2A5037C8CF85F47CF5A72798F
+A1D5E1B48B93D61A916B381C58F80C548CBE8A01212648BF4C94BDAC4945798F
+1A0999EFB22A1A63BBFC7CAC99CCC5
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 78 /N put
+dup 120 /x put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
+990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
+6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
+DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
+59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
+D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
+8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
+6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
+1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
+03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
+95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
+74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
+3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
+47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
+AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
+42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
+40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
+B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
+95601766777978D01677B8D19E1B10A078432D2884BB6D6F58047310ED447C2D
+173BAF532B6DB146CCC30BC6A7D051EC0926D9E9EC4563A28AF3595B6EAD2A62
+50D7E40CBDFF6315034F4912283FA1ECDA2EB2116AAFC22D6AA21A6184C73C53
+DD5EF32DF7EF78643130566425C30C0FF7FA3E6EC52BF3EC667039069C9E5068
+6F3DFC7B7627B440D3A11CFA663E7800EABE7E482CA0D2C36D44A41F1E7C75AA
+BBB50509CA3D5CF1D48DBF16216D6F4A333C1589BA505632E971160B5A7A6878
+DA2C761EC94DA56899D9B36225F5A2593992F109B24C1EC5BA6FE987980CE9CA
+515E746EC2AD5AED6400F7A37162802AB20CCB2EFDBE7EF9A22B4115CB017E22
+92A16915E7AE3C62570FB2A32F09A3039BC8D4A5E9231AB53979F7D5BB38414C
+1C85F6E7C2633C405CDCF00B3AF9257751C58019ABA3A5A20F70BD1BEF0C98E3
+A5DF3305E2C45A2FF4F4E6C93E17FEAD939F5209D073147C0156D6E30C3FF76A
+1DD2E2EA5016DF8E5871999576CC60DA9265C5851009556F2E5D7B6B57D699CC
+A7ACA5DE3BB82A0AFDAEC183B39000EA266110DEF458C010A68DB6849BDD6F5F
+75822436FF959A12653132A700F442D94BA22E4A773AB957951742502458ABE7
+B1DEF93736318D55729497E94147AE54657F420140B87E7F64F20D22CEC43E23
+5DB4C019F50FCD5F11903DA60B1203C73B72A2D422A40F2CBB98ABCAD50A5EAA
+1034E544379E6D7EF855D9E9AC2D0EEFF3935820E2D83A451345A4CFAC6D5549
+70F87DAAF9833E9843A098E5B931CD240492ECB15E4405498E7871AA41A98D68
+2ECBBFAAE793C47D3C84B94153DC72D470207AC1B606B6FC7A1DFED6
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMR7
+%!PS-AdobeFont-1.1: CMR7 1.0
+%%CreationDate: 1991 Aug 20 16:39:21
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 49 /one put
+dup 61 /equal put
+dup 65 /A put
+readonly def
+/FontBBox{-27 -250 1122 750}readonly def
+/UniqueID 5000790 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D
+E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8
+47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C
+8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4
+78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486
+1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E
+01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B
+C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0
+F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30
+8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF
+A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7
+455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2
+9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105
+EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B
+52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97
+563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F
+0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB
+7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1
+0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4
+1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4B067A46F8EE
+2AFACDE591ADF7304939394F221B5B9B316BC47DC7772711A35B466E1790D4F5
+C02C57DE57A0498128C6041CB7E702F4D8500433633B8358C438237BBA39C647
+F659FACF75574B1AAD3FE61FB97D6C5D0B19E4AC762321891092E73D192C4816
+2F14A6FFAA1B22AABB65E8F611F1E9AF66DF68DA1B2B64B4CA886149E8266C52
+730D764C6CF54810444A57216DADABF4EC50906924AD855671E99640B766EB71
+3EEF8FA5F32EF14D500F19062EF03239BEFAA5947159E6F259C2FB97094E8C09
+7633D28C3624C8B26E5A3CFDF00EC45E517FB1D1E0545F9C3CAE39BBFF7591A4
+E52CB048ABDF0AA00C424283D6C3C021372DB35A687534F63EEF63F485787E5D
+CF486CE7876346D49420D8470DCF4691B30FD6E008234D8A78CCA36E5F2549F3
+49E9539C5ECB8EE8293E78087BA7268A2A2171DD78B89324434882FF1B178896
+46EF7DC2E2A21A3BDC179CE18281C559A36A3B7C2657C9D3C7AFFAE41C595718
+5793126983556ED60F78E705BF92891E7179770031911BE72F015C03E41E3AA9
+039EAB3368550468F3BC8C3D9C3721948A4CAA3DDAD53C03A52C6A49DA124943
+064864E19F7A27DDDF0D849E618D9A0B2171E07891F01B366286F392864BCB03
+1DE042697669C9CEBF7859779C55CC044971663A9CEA6A1AD5B2C5CFF6DC5E02
+DC8889217F7ECEA1497E35AB9E43A92EAE79E1560CED24B5B1FF08997BE3EAF2
+68BCD6CD5D5BA8121A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 49 /one put
+dup 58 /colon put
+dup 69 /E put
+dup 76 /L put
+dup 80 /P put
+dup 83 /S put
+dup 84 /T put
+dup 88 /X put
+dup 97 /a put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
+295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
+409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
+4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
+2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
+0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
+B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
+24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
+43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
+D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
+5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
+96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
+0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
+B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
+AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
+97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
+153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
+39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
+C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
+E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
+0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
+D559010FF2C0CE42AE6B9BD22EC4FC4732685264CDB9505BF091F72A7C8D0811
+F4C992268C3BF83A5D3D5D9829376AB2AFE27452B4836A97676CB1481C74C2E8
+B07192913D1A14D8D8F824A51C94A7355F79D06964067D8574F19CAB46BEE616
+8EAED2B0EC9606F6300D6B118150CB8BF0C629CCCB888E134FC6B7BFBE717D5E
+3F29953608F9A0CB2F78F3E8686D2398C6351B1520ED246A051F08F7407C6FEB
+2E343B68B5B2747911C268CB5D5F5E5E079B7A9B78EB25A0AAF0202885FF6B4F
+D4EE4053C1BF14B636D49EBCD66F539D6A105C9480DE278A8368D9D43A2BAFA4
+423177A9CC4C6F9D14DD64DD2D471F47B2178FADBABA51B0704DEF5FD5082183
+D579379394AC02A4443E54220756F2283B62A4AEC4D2AD2C9042139D5E7DD439
+1957E2FFE82B94D83A68432A9209DC512B758FFCE76ACEAA28384FDEBC3C1FFC
+908FCFBAB8252F56989F4B39E08CB46581C7B319BC943B68E3806A2E47D46949
+B4376F8D3A429D9AC37D580569E0B5F37A43352667CAD340C0D42D850BD31A8B
+48230E486B090F5A01B52642675A9683CB1CEFF8B8F566DEF92426F5619284BE
+DF7FAE6328A4EFF4D22180BDB1DC95F824CACE70CAA7B7375B6C19C1A4ABB625
+65328322752746417D1A8B515A54A33560D35C21A968A12EB67A32A2225417F5
+6C0E1508981EC8BEB0686DB4D93048C073D568CEF766E828D1441E3A2454BA5C
+BA431C301CD88C978752A46D7F2BFEE446BAEAB8EE45A06D6A66C4A23F5AABC7
+93DF4217BD2ED366BCA999E0BB60203B63CB2A8EAE81BB8585FA46E0610A1D84
+244D3C4020675A590BC0487C37C5E5198AF97536BD7ABA7598367D01FDC0394C
+CAB2CAF57A7FD03042D4B2253FC36D8D13014BF2B2A2371E9B25E19B549B3C11
+C7969FFA8BE3EBC2E7B48DF2D05EC5BB2BF7E09D8F7CA0A00554818293B6C57F
+23CA8859067F9F9AEEC55D52D39540E65FF1945537CCBAC8A23BC4DA4EEF0D23
+CB7538B1D3B17660EAD2E96238B2EC2A9E96463C42E4C0A524AD926D2C18F06A
+643A71EEEFDCE0A625DC1B798A54FFE46EF1540C276D35603AF5E4FF60BACA91
+63B83BA11CC111ECC9B9493614D8058D6E63494D76C46FC72BC1660F5BB458C5
+6C76A1DBA41FF320A1CC7E773F19C1098BDD546CE02BF4BCCEA9367818C4A73C
+065B50A6DDAD9C9133C1BCEC94D434F2162F10339EF3CF9970A8A014981A0091
+9D7B84687F9FA260645329BB9475D0F614EEC0CF4008CF9AFDF5AB764EB5600E
+B1C5C3582FA62969DBE75AD10DC185C84876D3048BBE52EF2B5154E3B6CABE32
+A355297945A46C90F9B15700393BFE819AD5BDD45DB6B18C28ECDF4060519AC1
+FA6008912A6E3B3C9B9D2B1569C4ED464177D9A9E7373DEAD063019202FCEF66
+E46DE52C94E244220F876313A29DEF603EE15E50DAD2B80FB8509A408AFFEBA1
+C09696A8DB139615A79F876CE587D64B3B0DD16A12BF214711BC9A95749C0A50
+4957C46F161C2B9F03570ABB8D13A7A47459956A9054F784E84E625626F5E07D
+048ABFA3DB872A10B983010DD07A9A6A3560237BAD86CCF36A7D962DBCEA056C
+E5A9906425EFA567AFE3AE78F8BAD8DF8F0C9175DCC6476E88830439E17CD3AC
+817A26271FCEFC43947398AA4FB05632F42D3B7F50B31BD87821ABB0E26DB5AA
+82A3AEC96274BF46B1EF8F8B31C23B663EE7928E9B494D7E92A64E1E24FA2E04
+C490C818229A1FBA3047EF199620A34D30579AF913EE5CE8F61A9BCD82650869
+50F5B778A908B12FA26B0BAF84BD49335A41D1A1DB9A0D29561F627E5595CD9D
+B7D118FD9B0F93FFBA84B7A01FB5751F7DE66791B4C15D237F13FA6D241A106F
+54DCED67BA8B9098772E8A2A4F3E386F1A07E6ACA51625A0B88574817B2DB2D1
+5E6A886A3A2B1EB430E65AC8CA85E84B4399DE743A7AACC9C8EECB65AA664852
+1E570B4B811F1D54D835405A1098D5A6E7FBD9CAAA06CD4AE31F61EED7B110F9
+B2D0D62344F2747733CAC06FA3BF0D382FA57C0DB06D221A68C1FD482794D040
+B9DFADC8BE91BFB567037D7AF38437DC5CB3F199B4145A39525D84B718789D7B
+DFD204ECC8D57BCD782B33273DBC8C19DD039818E5FCC2B42A8A02DCB25C02D0
+C62F05672019AB9EA47FCFECE51A2AC57FD91C2750445BE71F3BA4BCC6A39564
+94F1722DFFC88405B24B8F84ACB186E45D7BFB875221191389EDD93265ECAA31
+4DE6E01F832A4082D00F93DA2986C305005CADAA21122888850F111116609262
+D11A6CAD8EA360E4D689C6F0682329EDBE8874E7677833CF69E84F58066E350B
+59B3093AE0FADB7B5E7FCEECAE7E5186F7454B90B2DAC300984E265241CC9C03
+A250DA9D52EB0EA98359E9D214B4845DE842A1A1FD239C902B7C57AC85DEBD86
+0D688070B8BF3C46A31EED3595EBA57A90B10815EA2DFA30C77D6AE691AC3558
+D942BA1C98736481B8D49181D105223610999B164778B7DF4CB4B363984B329D
+5002DB59F911881757E585F6DFFD473AC59271AE10BBDD03F298B1D8F657D003
+CE328C5C8AB82D6DF61B75482EE3512F2B1CC2563A3B223B6946299A0EA8A5C9
+0D8DE92B45B1DCC2236F0E9C1E1D6ADE07FF9E54AF3D1921AF8816098121D422
+E17F0AC768FB76C18B37067A30FAFD8B9BB0AA3618060743677A37A423E3AA76
+ADB42240A4F4C6D3FC8C6E2D53A761AF56835A119DB2C0F8CF3A9C3C52259B81
+4707D362316611B2465066029E6A4E027CF531F61E480C0F317EF974106DD579
+7B6C6A786425B4ED181D376DA0C6FF4CFC9475D6FDAF36713E98A41B5468C475
+A93FA81456B88A545CC104918CE7943BC6145C09E9BCB41996846584296E6467
+DD61BD1C8C11526815F307056D976223573679D9E53B05BB28C70CE79989FBBD
+C94F373C656E220F22181F376842F107D49C911A22E8C00BB3C6F8A39A0DA4E0
+897E100D8C24CBCE7E56376742E0D6B6D015259A6DBA011841389DA57B38F765
+6BAA64642755B3F02D0ABDB1EE2B3D3D1CC4EACB600B421899B525BDBA8A3EEC
+F8606ABF159E725829D8C2D94EDEB8A08EBD232869F484EBE52AD3964F0DABBE
+FDBB96B87A0F26E580A4568FC1448FE244BE6D3C933E099370E51961E94321CA
+D06EECE177A83955CF34E50765639D9B10EAB1195402E09DD62ABD10343AA8B8
+236C4ECFE2948D3AE120B5952811C67624D6310BF7FEF0EF84D087F8352964EB
+854ACD8297A4216E968EF9EAD6175A328DCFF160C2AD57BC334CAA97E5ECAEB8
+AB748AD314399B05A73B708F6DE4D169FA0937087B2696132E35A545D75C364F
+6191F8D24FFF9E2123F0B6B93FEF74083D09C8FA03C6314E5D12E17314A3A34F
+1B9ED5F142DB58133BD2ABF442E2EC53C73DF92E0461E41619B681DF7E197CA8
+7573C5620C87415DCCC307999629CC1CAD4DB45C6C11C081FA8D7EF2EC273DBE
+694B47C8070D459DA52337A98B7494C3DA122E3825724CEEF16E8D827298603E
+4E3400D203B6C6C63AECDD81FF32647970110E2FA5D3957DBF4DBBAC123A185C
+29F7FF523496C3EDF3FF654226D59FA1604F236C8B64BD1FF65C267A3BE85304
+E85BF46861E894617921DB04CF579346C1E6FF1D3C918A5755F6A14CC74FDC31
+525A22C6EE7DF43C42E48AB9B25A955199782A2C0F25801BA4A786E3D1C0097E
+12E4F40FA8ADEB27E8E75180DB8F4DBC030DE7FB6CCEE40DB1999BD513830E55
+AF0B63AC4A68C7F42E8E9777DAC525049D4161CA75CF17F70B41C46EC13DA705
+38559CE5E40DB01230EE97F5DFD0C8AAE5F44920815FF7022AEF920F8E41EC0A
+5FE2644083E61C7C55A5AB0B72D44E597FEC19F9EC854AF6331D392A4DCC5FC4
+0D441D8142FF54BDBD3B61E9F92327D1FD99520DBA5A2FFAE25145A156A6E849
+CEE3AFFAA6208D4B749C3587A08F332715423D7B38F0DFC2918F13E6F8437BB6
+7206BC3056AC89055BA4482AA8DF03175910D74870223D08DDBC912F28CD1CB8
+1DFA68CF20EAAC54F4D03FB63087914D45D025C58842BF852403DFB47E5FD7D2
+AD6F8287771B48F766B7B861C8C3F3C0FD9A3EA1B9CAA59640880AC062797956
+5149AEDAD4FF89E7C44B987D87BF5D77FC2738E105D9F519E73398F770436AE0
+04C6A2F099AA64E028CA9D4D311085B1BBE52488B48D65158491CFEF6BE711CD
+0961E16DE00FBEF950E6D9718B6537A72AA4DEA5BF1BACB3D42A63DA6B0D2576
+670D61C3D01A97596269ACD7DBDA1D111E546F9517636D7AF4F2F6BD0A66704A
+7CECE9CA2A3B2C6CDED98591D003A40D62534A121EBF6DFA4CE4CE8C1ECF1E60
+54DECE28C37A1A40A4A104D81ED322BE269BBFC8D027565616DF8B16DD39299D
+31B080B08C602F248B8347292BC83605180DD66D2572613A981489197EFB3086
+1C9CE854C77AFDA1DEF0E077BCDB8628627C336852B41824BF1105CD5E14C767
+AD0DC9E17E5A143809510B05B491CD11DE8F753358607387A412ED12015D9F50
+CA9DDB4D0A93B557CF513083845E6B01304FDB02C66521E7ACAD1BB31F65DBA6
+DFD540C913EA6660049823F4A8F6404B5A90AC275F4FBB7CE4BAFEB5F7648155
+43B91EE2901C0E1E0D125505648DB769DFE315D82AC12B181E6A1DCC80D0F2E7
+8E663E5ACF4E0276024221B97CAD3DBB10DFA7B38242D66A9FFE63D59BB14352
+F1272FD5CDFEE96577AEFF8C5B1905943A2429E361D0FD8A6C4505D1273C4924
+55D2BD27BA14BC988AC93BFE6BC4760B840EBD3D0ED8A99F616EE661E2CF4224
+B9E3DE348AE73850B497DDD1EECF1D724EDB605ACA755726E95E9638667E83F7
+D3CF3E51FBE5F594E992B9EB366F2F37AAFBAAA7635D2EB52BA2A9A3E11E77CA
+4890C16B27B2D5C7F94993D19CABD4FB08A039D38FA8F68E77036A9B81C07EDD
+13F1A5AF38FAC067123EE9A6960AE0295DC1B540D5975B3EAC9FC3173D7ACEC6
+35B19FE0DDD60DC8AD9B7B2EB2F3C54A8CCCFCE1F028E818044B8A4685399523
+2C0BC7163253ED4A60D2A534B8CCB9C4D89977CA0D90E99B09BE9F6A11C34119
+AF96944503B93165579A74FB582950616D6C87AE28510CB208DD6DD5C3600A3D
+4EB1E50376D134EA0FC4736AB6B17151DE4C090E99D6DA61F625F9485FEA4439
+356FC0FF79DE83EF68369B2D7693DFCC50D0E08D19EA7CDC2F994CC33A0161FD
+5A77D6033C55F8DF709FDEB926003BACB4135112F6A9B7332398E0B0BFD2A4A4
+32F4C849EA782C09C95F40C81FCC85C85D959D1439C8CC0741BBE9F1B7918591
+17A984284D1685E4F87FB25C94930A145DC81194265E5F512FD3F92776B9E609
+CC5F9F130ED68DD5EAD682BE784099F7ADFD8ECE98A84F143F786D42D6B09B9F
+7322FF73D41F13F3F514BEE62E6A55A9CF858C5BCC1848697DF341538CE900AB
+AAFD3C5065C6F3956C6BD43CCCEB3B2CCFA512581D949F8423EF310760E9D47E
+999D350AE071209203F6F290CCC883C2EA507D4515C3FD31703B3CCC76490690
+CEC6F19FC9262AB7880420850959A2A03B14624D5F64B19D0EA0DC847FFF2859
+7F04C7109ADB23FCD15BE995F1C6297DAC4911DAE23D6FB3A482B7E209BC4F42
+58D10660BF79C7578C805A9F2F612C1367ACDA47289B38A67C4194BCA54F0F4F
+E0C90C7E1AE9B5469E9116FE57CEC1071161B7C6D97B646ED834A3294BC7EE71
+92399D29A1FBCBC93181FC63F1D9291F87CE554F565B969DEA613AA2E5B78D9D
+E97BE0C0B30FB988205AB75454ABDC070E27ABCAC944FCD61B77F84B3486042B
+71D2925577F2EC12C8FCEF863CC2F912936D7EE2C7C615A9794514DA2C3B70F2
+F074660B9A64EB7D75B571260BF788D36416E93A933F426233EFB74DD4B4D924
+7118386EE4D5762562EF359C52E71B75C617701661963AA4A855D24C75FF4E13
+AB8D481111CCB117100A6A1DE1A296A013A9F3CD7CDA47CF5E86D3E144A6962B
+9AF37508E6AF217F781AED3E486D3E89A457A7C0896B66329627C6FF3A08B020
+C48E9DA451159ABD5042997C7709A0435EBADD260A43C6CCA3427BA7633C35DA
+FFB43A2F567378FB53BA716231D50807999DDA64464FE0F7D792A9E3B191D8FA
+603710AC6F99F297C61556ED00C63741FEFD482BE8B6A150BF7739AFE2D6251D
+7C56EF43276D8F56B01B6D7DD20F0331B2DED0E0984FDF4668D43B031CF040D2
+9D177CB536673CD2FAD101205E33E98AB861D3CFB15D6BC4AC71DBD1AC44D6EC
+38B73842D64903C29BEFA0211B4CE15CC98AF01DC158B3001B8F5CE806FCD3AC
+C1305916E89204DB800B15EC3DD6484D10A3A8E85E3492147044AE525FC315B5
+E6FF950A6FE1BBBB3A455E0363B37B84C998665113336C8E584F6B2791005BEB
+D64B52A7829A84FF82055696E8D4A7E0A527F41F9043D10F349796C58DD259C9
+16CE4982A6EF337B49D71AB7F76CA8A58D5FA17994A4D43F7DAA9E2F72EF917C
+EEA86CDFDB1A5F654CBF3CF8FF63B9AF32BBF13ACB04C62B05CB8B765520AB38
+D820
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 40258437 52099154 1000 1200 1200 (figfrag.dvi)
+@start /Fa 144[95 2[53 7[106 1[106 98[{}4 166.044 /CMBX10
+rf /Fb 139[55 7[42 2[51 5[76 1[85 97[{}5 166.044 /CMTI10
+rf /Fc 140[64 57 3[86 4[40 2[51 74 3[80 97[{}7 166.044
+/CMSS10 rf /Fd 134[87 1[87 2[87 1[87 1[87 6[87 3[87 101[{}7
+166.044 /CMTT10 rf /Fe 167[240 88[{}1 166.044 /CMEX10
+rf /Ff 150[47 26[105 78[{}2 116.231 /CMMI7 rf /Fg 135[95
+41[133 78[{}2 166.044 /CMMI10 rf /Fh 190[98 3[102 11[66
+49[{}3 116.231 /CMR7 rf /Fi 138[92 65 65 65 1[92 83 92
+138 46 2[46 92 83 51 74 92 74 1[83 8[125 3[120 92 2[113
+3[104 6[113 10[46 8[83 49[{}25 166.044 /CMR10 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 1200dpi
+TeXDict begin
+
+%%EndSetup
+1 0 bop Black Black 1129 5115 a
+ currentpoint currentpoint translate 0.93391 0.93391 scale neg exch
+neg exch translate
+ 1129 5115 a Black 1184
+5115 a
+ /PSfrag where{pop(mark-0000)[[0(Bl)1 0]](mark-0001)[[1(Bc)1 0]](mark-0002)[[2(Br)1
+0]](mark-0003)[[3(Bc)1 0]](mark-0004)[[4(Bl)1 0]](mark-0005)[[5(Bl)1
+0]](mark-0006)[[6(Bl)1 0]](mark-0007)[[7(Bl)1 0]](mark-0008)[[8(Bl)1
+0]](mark-0009)[[9(Bl)1 0]](mark-0010)[[10(Bl)1 0]]11 0 -1/Begin PSfrag}{userdict
+/PSfrag{pop}put}ifelse
+ 1184 5115 a @beginspecial 0 @llx 0 @lly 343 @urx
+271 @ury 3430 @rwi @setspecial
+%%BeginDocument: figfrag.eps1
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: figfrag.fig
+%%Creator: fig2dev Version 3.2 Patchlevel 3d
+%%CreationDate: Fri Aug 29 11:50:03 2003
+%%For: ditzel@aragorn (Maarten Ditzel,,,)
+%%BoundingBox: 0 0 343 271
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 271 moveto 0 0 lineto 343 0 lineto 343 271 lineto closepath clip newpath
+-27.0 411.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+/reencdict 12 dict def /ReEncode { reencdict begin
+/newcodesandnames exch def /newfontname exch def /basefontname exch def
+/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
+basefontdict { exch dup /FID ne { dup /Encoding eq
+{ exch dup length array copy newfont 3 1 roll put }
+{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
+newfont /FontName newfontname put newcodesandnames aload pop
+128 1 255 { newfont /Encoding get exch /.notdef put } for
+newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
+newfontname newfont definefont pop end } def
+/isovec [
+8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
+8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
+8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
+8#220 /dotlessi 8#230 /oe 8#231 /OE
+8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
+8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
+8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
+8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
+8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
+8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
+8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
+8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
+8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
+8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
+8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
+8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
+8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
+8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
+8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
+8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
+8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
+8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
+8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
+8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
+8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
+8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
+/Times-Roman /Times-Roman-iso isovec ReEncode
+/Courier /Courier-iso isovec ReEncode
+/Helvetica /Helvetica-iso isovec ReEncode
+/Times-Italic /Times-Italic-iso isovec ReEncode
+/Times-Roman /Times-Roman-iso isovec ReEncode
+/Times-Bold /Times-Bold-iso isovec ReEncode
+/Helvetica-Oblique /Helvetica-Oblique-iso isovec ReEncode
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+10 setmiterlimit
+0 slj 0 slc
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+% Polyline
+15.000 slw
+n 450 2250 m 5850 2250 l 5850 4050 l 450 4050 l
+ cp gs col0 s gr
+/Times-Roman-iso ff 300.00 scf sf
+675 2700 m
+gs 1 -1 sc (mark-0000) col4 sh gr
+/Times-Roman-iso ff 450.00 scf sf
+3150 3150 m
+gs 1 -1 sc (mark-0001) dup sw pop 2 div neg 0 rm col2 sh gr
+/Times-Roman-iso ff 600.00 scf sf
+5625 3825 m
+gs 1 -1 sc (mark-0002) dup sw pop neg 0 rm col1 sh gr
+/Times-Roman-iso ff 300.00 scf sf
+3150 4725 m
+gs 1 -1 sc (mark-0003) dup sw pop 2 div neg 0 rm col-1 sh gr
+/Times-Roman-iso ff 240.00 scf sf
+450 5400 m
+gs 1 -1 sc (mark-0004) col0 sh gr
+/Courier-iso ff 240.00 scf sf
+4275 5625 m
+gs 1 -1 sc (mark-0005) col0 sh gr
+/Helvetica-iso ff 240.00 scf sf
+3150 5400 m
+gs 1 -1 sc (mark-0006) col0 sh gr
+/Times-Italic-iso ff 240.00 scf sf
+2475 5625 m
+gs 1 -1 sc (mark-0007) col0 sh gr
+/Times-Roman-iso ff 240.00 scf sf
+1350 5625 m
+gs 1 -1 sc (mark-0008) col0 sh gr
+/Times-Bold-iso ff 240.00 scf sf
+2025 5400 m
+gs 1 -1 sc (mark-0009) col0 sh gr
+/Helvetica-Oblique-iso ff 240.00 scf sf
+450 6075 m
+gs 1 -1 sc (Postscript: Helvetica-Oblique) col0 sh gr
+/Times-Roman-iso ff 240.00 scf sf
+450 6525 m
+gs 1 -1 sc (mark-0010) col-1 sh gr
+$F2psEnd
+rs
+
+%%EndDocument
+ @endspecial 1184 5115 a
+ /End PSfrag
+ 1184 5115 a 1184 1048 a
+ /Hide PSfrag
+ 1184
+1048 a -296 1163 a Fi(PSfrag)56 b(replacemen)-5 b(ts)p
+-296 1222 1481 7 v 1184 1228 a
+ /Unhide PSfrag
+ 1184 1228 a -249 1476
+a
+ {
+ -249 1476 a Black -249 1476 a
+ currentpoint currentpoint translate 2.00003 2.00003 scale neg exch
+neg exch translate
+ -249 1476 a 1 0 0 TeXcolorrgb
+Fi(left)55 b(L)86 1442 y Fh(A)159 1476 y Fi(T)251 1511
+y(E)343 1476 y(X)p Black -249 1476 a
+ currentpoint currentpoint translate 1 2.00003 div 1 2.00003 div scale
+neg exch neg exch translate
+ -249 1476 a Black
+-249 1476 a
+ } 0/Place PSfrag
+ -249 1476 a -196 1904 a
+ {
+ -196 1904 a Black
+-1576 1904 a
+ currentpoint currentpoint translate 3.00055 3.00055 scale neg exch
+neg exch translate
+ -1576 1904 a 0 1 0 TeXcolorrgb Fi(cen)-5
+b(ter)55 b(L)-1038 1870 y Fh(A)-965 1904 y Fi(T)-873
+1940 y(E)-781 1904 y(X)p Black -1576 1904 a
+ currentpoint currentpoint translate 1 3.00055 div 1 3.00055 div scale
+neg exch neg exch translate
+ -1576 1904
+a Black -196 1904 a
+ } 1/Place PSfrag
+ -196 1904 a 1184 2489 a
+ {
+ 1184 2489
+a Black -2128 2489 a
+ currentpoint currentpoint translate 4.00061 4.00061 scale neg exch
+neg exch translate
+ -2128 2489 a 0 0 1 TeXcolorrgb Fi(righ)-5
+b(t)56 b(L)-1682 2455 y Fh(A)-1609 2489 y Fi(T)-1517
+2525 y(E)-1424 2489 y(X)p Black -2128 2489 a
+ currentpoint currentpoint translate 1 4.00061 div 1 4.00061 div scale
+neg exch neg exch translate
+ -2128 2489
+a Black 1184 2489 a
+ } 2/Place PSfrag
+ 1184 2489 a -367 3256 a
+ {
+ -367 3256
+a Black -1918 3256 a
+ currentpoint currentpoint translate 2.00023 2.00023 scale neg exch
+neg exch translate
+ -1918 3256 a 0 TeXcolorgray Fi(some)g(math:)-949
+3144 y(1)p -984 3218 152 7 v -984 3370 a Fg(N)-723 3049
+y Ff(N)-785 3098 y Fe(X)-772 3452 y Ff(i)p Fh(=1)-517
+3256 y Fg(x)-422 3281 y Ff(i)p Black -1918 3256 a
+ currentpoint currentpoint translate 1 2.00023 div 1 2.00023 div scale
+neg exch neg exch translate
+ -1918
+3256 a Black -367 3256 a
+ } 3/Place PSfrag
+ -367 3256 a 380 3881 a
+ {
+ 380 3881
+a Black 380 3881 a
+ currentpoint currentpoint translate 1.60002 1.60002 scale neg exch
+neg exch translate
+ 380 3881 a 0 TeXcolorgray Fi(default)p
+Black 380 3881 a
+ currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale
+neg exch neg exch translate
+ 380 3881 a Black 380 3881 a
+ } 4/Place PSfrag
+ 380 3881
+a -210 4060 a
+ {
+ -210 4060 a Black -210 4060 a
+ currentpoint currentpoint translate 1.6002 1.6002 scale neg exch neg
+exch translate
+ -210 4060
+a 0 TeXcolorgray Fd(typewriter)p Black -210 4060 a
+ currentpoint currentpoint translate 1 1.6002 div 1 1.6002 div scale
+neg exch neg exch translate
+ -210
+4060 a Black -210 4060 a
+ } 5/Place PSfrag
+ -210 4060 a 172 4318 a
+ {
+ 172 4318
+a Black 172 4318 a
+ currentpoint currentpoint translate 1.60002 1.60002 scale neg exch
+neg exch translate
+ 172 4318 a 0 TeXcolorgray Fc(sans)e(serif)p
+Black 172 4318 a
+ currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale
+neg exch neg exch translate
+ 172 4318 a Black 172 4318 a
+ } 6/Place PSfrag
+ 172 4318
+a 607 4517 a
+ {
+ 607 4517 a Black 607 4517 a
+ currentpoint currentpoint translate 1.60002 1.60002 scale neg exch
+neg exch translate
+ 607 4517 a 0
+TeXcolorgray Fb(italic)p Black 607 4517 a
+ currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale
+neg exch neg exch translate
+ 607 4517 a
+Black 607 4517 a
+ } 7/Place PSfrag
+ 607 4517 a 446 4716 a
+ {
+ 446 4716 a Black
+446 4716 a
+ currentpoint currentpoint translate 1.60013 1.60013 scale neg exch
+neg exch translate
+ 446 4716 a 0 TeXcolorgray Fi(roman)p Black
+446 4716 a
+ currentpoint currentpoint translate 1 1.60013 div 1 1.60013 div scale
+neg exch neg exch translate
+ 446 4716 a Black 446 4716 a
+ } 8/Place PSfrag
+ 446 4716 a 599
+4916 a
+ {
+ 599 4916 a Black 599 4916 a
+ currentpoint currentpoint translate 1.60002 1.60002 scale neg exch
+neg exch translate
+ 599 4916 a 0 TeXcolorgray
+Fa(b)5 b(old)p Black 599 4916 a
+ currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale
+neg exch neg exch translate
+ 599 4916 a Black 599
+4916 a
+ } 9/Place PSfrag
+ 599 4916 a -1333 5115 a
+ {
+ -1333 5115 a Black -1333
+5115 a
+ currentpoint currentpoint translate 1.60002 1.60002 scale neg exch
+neg exch translate
+ -1333 5115 a 0 TeXcolorgray Fi(default)55 b(fon)-5
+b(t)56 b(and)f(color)p Black -1333 5115 a
+ currentpoint currentpoint translate 1 1.60002 div 1 1.60002 div scale
+neg exch neg exch translate
+ -1333 5115
+a Black -1333 5115 a
+ } 10/Place PSfrag
+ -1333 5115 a Black 1129 5115 a
+ currentpoint currentpoint translate 1 0.93391 div 1 0.93391 div scale
+neg exch neg exch translate
+ 1129
+5115 a Black Black eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/graphics/figfrag/test.fig b/graphics/figfrag/test.fig
new file mode 100644
index 0000000000..8c0218d7c1
--- /dev/null
+++ b/graphics/figfrag/test.fig
@@ -0,0 +1,23 @@
+#FIG 3.2
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5
+ 450 2250 5850 2250 5850 4050 450 4050 450 2250
+4 0 4 50 0 0 20 0.0000 0 195 1350 675 2700 left \\LaTeX\001
+4 1 2 50 0 0 30 0.0000 0 345 2880 3150 3150 center \\LaTeX\001
+4 2 1 50 0 0 40 0.0000 0 450 2580 5625 3825 right \\LaTeX\001
+4 1 -1 50 0 0 20 0.0000 0 270 5190 3150 4725 some math: $\\frac{1}{N}\\sum_{i=1}^N x_i$\001
+4 0 0 50 0 0 16 0.0000 0 165 690 450 5400 default\001
+4 0 0 50 0 5 16 0.0000 0 195 1500 4275 5625 typewriter\001
+4 0 0 50 0 4 16 0.0000 0 180 1035 3150 5400 sans serif\001
+4 0 0 50 0 3 16 0.0000 0 165 525 2475 5625 italic\001
+4 0 0 50 0 1 16 0.0000 0 120 630 1350 5625 roman\001
+4 0 0 50 0 2 16 0.0000 0 165 465 2025 5400 bold\001
+4 0 0 50 0 17 16 0.0000 4 240 3120 450 6075 Postscript: Helvetica-Oblique\001
+4 0 -1 50 0 0 16 0.0000 0 165 2130 450 6525 default font and color\001