diff --git a/Ebnf2ps.cabal b/Ebnf2ps.cabal
--- a/Ebnf2ps.cabal
+++ b/Ebnf2ps.cabal
@@ -1,5 +1,5 @@
 Name:                Ebnf2ps
-Version:             1.0.8
+Version:             1.0.9
 Synopsis:               Peter's Syntax Diagram Drawing Tool
 Homepage:            http://www.informatik.uni-freiburg.de/~thiemann/haskell/ebnf2ps/
 License:             BSD3
@@ -16,6 +16,14 @@
                         immediatedly included in TeX/LaTeX documents and in
                         texts created with other popular document preparation
                         systems.
+
+Extra-source-files:   examples/ebnf.BNF examples/gofer.BNF examples/regular.BNF,
+          doc/Atom.eps, doc/ExtAtom.eps, doc/Factor.eps, doc/File.eps,
+	  doc/Production_unfold.eps, doc/Nonterminal.eps,
+	  doc/Production.eps, doc/String.eps, doc/Term.eps, doc/Character.eps, doc/Atom_unfold.eps,
+	  doc/RAtom.eps, doc/RAtom_unfold.eps, doc/Export.eps,
+	  doc/RExtAtom.eps, doc/RFactor.eps, doc/Regexp.eps,
+	  doc/doc.tex, doc/doc.ps
 
 Executable ebnf2ps
   Main-is:   Ebnf2ps.hs
diff --git a/doc/Atom.eps b/doc/Atom.eps
new file mode 100644
--- /dev/null
+++ b/doc/Atom.eps
@@ -0,0 +1,152 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: Atom
+%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter
+%%Pages: 0
+%%BoundingBox: 0 0 113 126
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 88.50 62.55 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 26 94.17 m(Nonterminal) show
+ 20 66.50 36.45 17 1 255 255 255 Box
+ 26 72.17 m(String) show
+ 20 44.50 15.33 17 1 255 255 255 RBox
+ 26 50.17 m(\() show
+ 0.30 slw
+n 35.33 53 m 5 0 rl s
+n 38.33 55 m 2 -2 rl -2 -2 rl s
+ 40.33 44.50 33.66 17 1 255 255 255 Box
+ 46.33 50.17 m(Term) show
+ 0.30 slw
+n 73.99 53 m 5 0 rl s
+n 76.99 55 m 2 -2 rl -2 -2 rl s
+ 78.99 44.50 15.33 17 1 255 255 255 RBox
+ 84.99 50.17 m(\)) show
+ 20 22.50 15.33 17 1 255 255 255 RBox
+ 26 28.17 m([) show
+ 0.30 slw
+n 35.33 31 m 5 0 rl s
+n 38.33 33 m 2 -2 rl -2 -2 rl s
+ 40.33 22.50 33.66 17 1 255 255 255 Box
+ 46.33 28.17 m(Term) show
+ 0.30 slw
+n 73.99 31 m 5 0 rl s
+n 76.99 33 m 2 -2 rl -2 -2 rl s
+ 78.99 22.50 15.33 17 1 255 255 255 RBox
+ 84.99 28.17 m(]) show
+ 20 0.50 16.80 17 1 255 255 255 RBox
+ 26 6.17 m({) show
+ 0.30 slw
+n 36.80 9 m 5 0 rl s
+n 39.80 11 m 2 -2 rl -2 -2 rl s
+ 41.80 0.50 33.66 17 1 255 255 255 Box
+ 47.80 6.17 m(Term) show
+ 0.30 slw
+n 75.46 9 m 5 0 rl s
+n 78.46 11 m 2 -2 rl -2 -2 rl s
+ 80.46 0.50 16.80 17 1 255 255 255 RBox
+ 86.46 6.17 m(}) show
+ 0.30 slw
+n 10 53 m 5 0 rl s
+n 102.26 53 m 5 0 rl s
+n 15 92 m 15 97 20 97 5 apr
+ 20 97 l s
+n 20 9 m 15 9 15 14 5 apr
+ 15 14 l s
+n 15 14 m 0 78 rl s
+n 102.26 92 m 102.26 97 97.26 97 5 apr
+ 97.26 97 l s
+n 97.26 9 m 102.26 9 102.26 14 5 apr
+ 102.26 14 l s
+n 102.26 14 m 0 78 rl s
+n 15 75 m 5 0 rl s
+n 15 53 m 5 0 rl s
+n 15 31 m 5 0 rl s
+n 97.26 75 m 5 0 rl s
+n 97.26 53 m 5 0 rl s
+n 97.26 31 m 5 0 rl s
+n 82.55 97 m 14.71 0 rl s
+n 56.45 75 m 40.81 0 rl s
+n 94.32 53 m 2.94 0 rl s
+n 94.32 31 m 2.94 0 rl s
+n 97.26 9 m 0 0 rl s
+n 107.26 53 m 5 0 rl s
+n 110.26 55 m 2 -2 rl -2 -2 rl s
+ 0 117.67 m(Atom) show
+n 0 53 m 10 0 rl s
+n 8 55 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/Atom_unfold.eps b/doc/Atom_unfold.eps
new file mode 100644
--- /dev/null
+++ b/doc/Atom_unfold.eps
@@ -0,0 +1,270 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: Atom
+%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter)
+%%Pages: 0
+%%BoundingBox: 0 0 139 261
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 153 28.44 15 1 255 255 255 Box
+/Times-Roman findfont 8 scalefont setfont
+ 26 158.67 m(letter) show
+ 0.30 slw
+n 48.44 160.50 m 5 0 rl s
+n 51.44 162.50 m 2 -2 rl -2 -2 rl s
+ 73.44 225.50 28.44 15 1 255 255 255 Box
+ 79.44 231.17 m(letter) show
+ 75.21 205.50 26.67 15 1 255 255 255 Box
+ 81.21 211.17 m(digit) show
+ 85.88 185.50 16 15 1 255 255 255 RBox
+ 91.88 191.17 m(_) show
+ 87.88 165.50 14 15 1 255 255 255 RBox
+ 93.88 171.17 m(.) show
+ 0.30 slw
+n 63.44 203 m 5 0 rl s
+n 106.88 203 m 5 0 rl s
+n 68.44 228 m 68.44 233 73.44 233 5 apr
+ 73.44 233 l s
+n 73.44 173 m 68.44 173 68.44 178 5 apr
+ 68.44 178 l s
+n 68.44 178 m 0 50 rl s
+n 106.88 228 m 106.88 233 101.88 233 5 apr
+ 101.88 233 l s
+n 101.88 173 m 106.88 173 106.88 178 5 apr
+ 106.88 178 l s
+n 106.88 178 m 0 50 rl s
+n 68.44 213 m 5 0 rl s
+n 68.44 193 m 5 0 rl s
+n 101.88 213 m 5 0 rl s
+n 101.88 193 m 5 0 rl s
+n 73.44 233 m 0 0 rl s
+n 73.44 213 m 1.77 0 rl s
+n 73.44 193 m 12.44 0 rl s
+n 73.44 173 m 14.44 0 rl s
+n 113.88 205 m -2 -2 rl 2 -2 rl s
+n 53.44 160.50 m 68.44 0 rl s
+n 63.44 160.50 m 58.44 160.50 58.44 165.50 5 apr
+ 58.44 165.50 l s
+n 58.44 198 m 58.44 203 63.44 203 5 apr
+ 63.44 203 l s
+n 111.88 160.50 m 116.88 160.50 116.88 165.50 5 apr
+ 116.88 165.50 l s
+n 116.88 198 m 116.88 203 111.88 203 5 apr
+ 111.88 203 l s
+n 58.44 165.50 m 0 32.50 rl s
+n 116.88 165.50 m 0 32.50 rl s
+ 20 120.50 15.26 15 1 255 255 255 RBox
+ 26 126.17 m(") show
+ 0.30 slw
+n 35.26 128 m 5 0 rl s
+n 38.26 130 m 2 -2 rl -2 -2 rl s
+ 50.26 133 43.09 15 1 255 255 255 Box
+ 56.26 138.67 m(Character) show
+ 0.30 slw
+n 95.35 142.50 m -2 -2 rl 2 -2 rl s
+n 40.26 128 m 63.09 0 rl s
+n 50.26 128 m 45.26 128 45.26 133 5 apr
+ 45.26 133 l s
+n 45.26 135.50 m 45.26 140.50 50.26 140.50 5 apr
+ 50.26 140.50 l s
+n 93.35 128 m 98.35 128 98.35 133 5 apr
+ 98.35 133 l s
+n 98.35 135.50 m 98.35 140.50 93.35 140.50 5 apr
+ 93.35 140.50 l s
+n 45.26 133 m 0 2.50 rl s
+n 98.35 133 m 0 2.50 rl s
+n 103.35 128 m 5 0 rl s
+n 106.35 130 m 2 -2 rl -2 -2 rl s
+ 108.35 120.50 15.26 15 1 255 255 255 RBox
+ 114.35 126.17 m(") show
+ 20 80.50 14.66 15 1 255 255 255 RBox
+ 26 86.17 m(\() show
+ 0.30 slw
+n 34.66 88 m 5 0 rl s
+n 37.66 90 m 2 -2 rl -2 -2 rl s
+ 49.66 80.50 32.44 15 1 255 255 255 Box
+ 55.66 86.17 m(Factor) show
+ 59.08 100.50 13.60 15 1 255 255 255 RBox
+ 65.08 106.17 m(|) show
+ 0.30 slw
+n 74.68 110 m -2 -2 rl 2 -2 rl s
+n 39.66 88 m 10 0 rl s
+n 82.10 88 m 10 0 rl s
+n 49.66 108 m 9.42 0 rl s
+n 72.68 108 m 9.42 0 rl s
+n 49.66 88 m 44.66 88 44.66 93 5 apr
+ 44.66 93 l s
+n 44.66 103 m 44.66 108 49.66 108 5 apr
+ 49.66 108 l s
+n 82.10 88 m 87.10 88 87.10 93 5 apr
+ 87.10 93 l s
+n 87.10 103 m 87.10 108 82.10 108 5 apr
+ 82.10 108 l s
+n 44.66 93 m 0 10 rl s
+n 87.10 93 m 0 10 rl s
+n 92.10 88 m 5 0 rl s
+n 95.10 90 m 2 -2 rl -2 -2 rl s
+ 97.10 80.50 14.66 15 1 255 255 255 RBox
+ 103.10 86.17 m(\)) show
+ 20 40.50 14.66 15 1 255 255 255 RBox
+ 26 46.17 m([) show
+ 0.30 slw
+n 34.66 48 m 5 0 rl s
+n 37.66 50 m 2 -2 rl -2 -2 rl s
+ 49.66 40.50 32.44 15 1 255 255 255 Box
+ 55.66 46.17 m(Factor) show
+ 59.08 60.50 13.60 15 1 255 255 255 RBox
+ 65.08 66.17 m(|) show
+ 0.30 slw
+n 74.68 70 m -2 -2 rl 2 -2 rl s
+n 39.66 48 m 10 0 rl s
+n 82.10 48 m 10 0 rl s
+n 49.66 68 m 9.42 0 rl s
+n 72.68 68 m 9.42 0 rl s
+n 49.66 48 m 44.66 48 44.66 53 5 apr
+ 44.66 53 l s
+n 44.66 63 m 44.66 68 49.66 68 5 apr
+ 49.66 68 l s
+n 82.10 48 m 87.10 48 87.10 53 5 apr
+ 87.10 53 l s
+n 87.10 63 m 87.10 68 82.10 68 5 apr
+ 82.10 68 l s
+n 44.66 53 m 0 10 rl s
+n 87.10 53 m 0 10 rl s
+n 92.10 48 m 5 0 rl s
+n 95.10 50 m 2 -2 rl -2 -2 rl s
+ 97.10 40.50 14.66 15 1 255 255 255 RBox
+ 103.10 46.17 m(]) show
+ 20 0.50 15.84 15 1 255 255 255 RBox
+ 26 6.17 m({) show
+ 0.30 slw
+n 35.84 8 m 5 0 rl s
+n 38.84 10 m 2 -2 rl -2 -2 rl s
+ 50.84 0.50 32.44 15 1 255 255 255 Box
+ 56.84 6.17 m(Factor) show
+ 60.26 20.50 13.60 15 1 255 255 255 RBox
+ 66.26 26.17 m(|) show
+ 0.30 slw
+n 75.86 30 m -2 -2 rl 2 -2 rl s
+n 40.84 8 m 10 0 rl s
+n 83.28 8 m 10 0 rl s
+n 50.84 28 m 9.42 0 rl s
+n 73.86 28 m 9.42 0 rl s
+n 50.84 8 m 45.84 8 45.84 13 5 apr
+ 45.84 13 l s
+n 45.84 23 m 45.84 28 50.84 28 5 apr
+ 50.84 28 l s
+n 83.28 8 m 88.28 8 88.28 13 5 apr
+ 88.28 13 l s
+n 88.28 23 m 88.28 28 83.28 28 5 apr
+ 83.28 28 l s
+n 45.84 13 m 0 10 rl s
+n 88.28 13 m 0 10 rl s
+n 93.28 8 m 5 0 rl s
+n 96.28 10 m 2 -2 rl -2 -2 rl s
+ 98.28 0.50 15.84 15 1 255 255 255 RBox
+ 104.28 6.17 m(}) show
+ 0.30 slw
+n 10 84.25 m 5 0 rl s
+n 128.61 84.25 m 5 0 rl s
+n 15 155.50 m 15 160.50 20 160.50 5 apr
+ 20 160.50 l s
+n 20 8 m 15 8 15 13 5 apr
+ 15 13 l s
+n 15 13 m 0 142.50 rl s
+n 128.61 155.50 m 128.61 160.50 123.61 160.50 5 apr
+ 123.61 160.50 l s
+n 123.61 8 m 128.61 8 128.61 13 5 apr
+ 128.61 13 l s
+n 128.61 13 m 0 142.50 rl s
+n 15 128 m 5 0 rl s
+n 15 88 m 5 0 rl s
+n 15 48 m 5 0 rl s
+n 123.61 128 m 5 0 rl s
+n 123.61 88 m 5 0 rl s
+n 123.61 48 m 5 0 rl s
+n 121.88 160.50 m 1.73 0 rl s
+n 123.61 128 m 0 0 rl s
+n 111.76 88 m 11.85 0 rl s
+n 111.76 48 m 11.85 0 rl s
+n 114.12 8 m 9.49 0 rl s
+n 133.61 84.25 m 5 0 rl s
+n 136.61 86.25 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 252.67 m(Atom) show
+n 0 84.25 m 10 0 rl s
+n 8 86.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/Character.eps b/doc/Character.eps
new file mode 100644
--- /dev/null
+++ b/doc/Character.eps
@@ -0,0 +1,126 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: Character
+%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter
+%%Pages: 0
+%%BoundingBox: 0 0 148 74
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 36 48.64 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 26 41.67 m(character) show
+ 35 14 14.78 17 1 255 255 255 RBox
+ 41 19.67 m(\\) show
+ 0.30 slw
+n 33 24.50 m 2 -2 rl -2 -2 rl s
+n 20 9 m 44.78 0 rl s
+n 20 9 m 25 9 25 14 5 apr
+ 25 14 l s
+n 25 17.50 m 25 22.50 30 22.50 5 apr
+ 30 22.50 l s
+n 30 22.50 m 5 0 rl s
+n 64.78 9 m 59.78 9 59.78 14 5 apr
+ 59.78 14 l s
+n 59.78 17.50 m 59.78 22.50 54.78 22.50 5 apr
+ 54.78 22.50 l s
+n 49.78 22.50 m 5 0 rl s
+n 25 14 m 0 3.50 rl s
+n 59.78 14 m 0 3.50 rl s
+n 64.78 9 m 5 0 rl s
+n 67.78 11 m 2 -2 rl -2 -2 rl s
+ 69.78 0.50 63.08 17 1 255 255 255 Box
+ 75.78 6.17 m(anycharacter) show
+ 0.30 slw
+n 10 26.75 m 5 0 rl s
+n 137.86 26.75 m 5 0 rl s
+n 15 39.50 m 15 44.50 20 44.50 5 apr
+ 20 44.50 l s
+n 20 9 m 15 9 15 14 5 apr
+ 15 14 l s
+n 15 14 m 0 25.50 rl s
+n 137.86 39.50 m 137.86 44.50 132.86 44.50 5 apr
+ 132.86 44.50 l s
+n 132.86 9 m 137.86 9 137.86 14 5 apr
+ 137.86 14 l s
+n 137.86 14 m 0 25.50 rl s
+n 68.64 44.50 m 64.22 0 rl s
+n 132.86 9 m 0 0 rl s
+n 142.86 26.75 m 5 0 rl s
+n 145.86 28.75 m 2 -2 rl -2 -2 rl s
+ 0 65.17 m(Character) show
+n 0 26.75 m 10 0 rl s
+n 8 28.75 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/Export.eps b/doc/Export.eps
new file mode 100644
--- /dev/null
+++ b/doc/Export.eps
@@ -0,0 +1,187 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: export
+%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter)
+%%Pages: 0
+%%BoundingBox: 0 0 341 153
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 115.50 24.77 17 1 0 0 0 Box
+/Times-Roman findfont 10 scalefont setfont
+ 255 255 255 scol  26 121.17 m(var) show
+ 0 0 0 scol  20 0.50 34.22 17 1 0 0 0 Box
+ 255 255 255 scol  26 6.17 m(tycon) show
+ 0 0 0 scol  0.30 slw
+n 54.22 9 m 5 0 rl s
+n 57.22 11 m 2 -2 rl -2 -2 rl s
+ 84.22 36 52 17 1 255 255 255 RBox
+ 90.22 41.67 m(OPAREN) show
+ 0.30 slw
+n 136.22 44.50 m 5 0 rl s
+n 139.22 46.50 m 2 -2 rl -2 -2 rl s
+ 166.22 93.50 53.10 17 1 255 255 255 RBox
+ 172.22 99.17 m(DOTDOT) show
+ 166.22 71.50 30.33 17 1 0 0 0 Box
+ 255 255 255 scol  172.22 77.17 m(cons) show
+ 0 0 0 scol  166.22 49.50 28.66 17 1 0 0 0 Box
+ 255 255 255 scol  172.22 55.17 m(vars) show
+ 0 0 0 scol  0.30 slw
+n 156.22 80 m 5 0 rl s
+n 224.32 80 m 5 0 rl s
+n 161.22 97 m 161.22 102 166.22 102 5 apr
+ 166.22 102 l s
+n 166.22 58 m 161.22 58 161.22 63 5 apr
+ 161.22 63 l s
+n 161.22 63 m 0 34 rl s
+n 224.32 97 m 224.32 102 219.32 102 5 apr
+ 219.32 102 l s
+n 219.32 58 m 224.32 58 224.32 63 5 apr
+ 224.32 63 l s
+n 224.32 63 m 0 34 rl s
+n 161.22 80 m 5 0 rl s
+n 219.32 80 m 5 0 rl s
+n 219.32 102 m 0 0 rl s
+n 196.55 80 m 22.77 0 rl s
+n 194.88 58 m 24.44 0 rl s
+n 154.22 82 m 2 -2 rl -2 -2 rl s
+n 141.22 44.50 m 103.10 0 rl s
+n 141.22 44.50 m 146.22 44.50 146.22 49.50 5 apr
+ 146.22 49.50 l s
+n 146.22 75 m 146.22 80 151.22 80 5 apr
+ 151.22 80 l s
+n 151.22 80 m 5 0 rl s
+n 244.32 44.50 m 239.32 44.50 239.32 49.50 5 apr
+ 239.32 49.50 l s
+n 239.32 75 m 239.32 80 234.32 80 5 apr
+ 234.32 80 l s
+n 229.32 80 m 5 0 rl s
+n 146.22 49.50 m 0 25.50 rl s
+n 239.32 49.50 m 0 25.50 rl s
+n 244.32 44.50 m 5 0 rl s
+n 247.32 46.50 m 2 -2 rl -2 -2 rl s
+ 249.32 36 51.45 17 1 255 255 255 RBox
+ 255.32 41.67 m(CPAREN) show
+ 84.22 14 53.10 17 1 255 255 255 RBox
+ 90.22 19.67 m(DOTDOT) show
+ 0.30 slw
+n 74.22 33.50 m 5 0 rl s
+n 305.77 33.50 m 5 0 rl s
+n 79.22 39.50 m 79.22 44.50 84.22 44.50 5 apr
+ 84.22 44.50 l s
+n 84.22 22.50 m 79.22 22.50 79.22 27.50 5 apr
+ 79.22 27.50 l s
+n 79.22 27.50 m 0 12 rl s
+n 305.77 39.50 m 305.77 44.50 300.77 44.50 5 apr
+ 300.77 44.50 l s
+n 300.77 22.50 m 305.77 22.50 305.77 27.50 5 apr
+ 305.77 27.50 l s
+n 305.77 27.50 m 0 12 rl s
+n 300.77 44.50 m 0 0 rl s
+n 137.32 22.50 m 163.45 0 rl s
+n 72.22 35.50 m 2 -2 rl -2 -2 rl s
+n 59.22 9 m 266.55 0 rl s
+n 59.22 9 m 64.22 9 64.22 14 5 apr
+ 64.22 14 l s
+n 64.22 28.50 m 64.22 33.50 69.22 33.50 5 apr
+ 69.22 33.50 l s
+n 69.22 33.50 m 5 0 rl s
+n 325.77 9 m 320.77 9 320.77 14 5 apr
+ 320.77 14 l s
+n 320.77 28.50 m 320.77 33.50 315.77 33.50 5 apr
+ 315.77 33.50 l s
+n 310.77 33.50 m 5 0 rl s
+n 64.22 14 m 0 14.50 rl s
+n 320.77 14 m 0 14.50 rl s
+n 10 66.50 m 5 0 rl s
+n 330.77 66.50 m 5 0 rl s
+n 15 119 m 15 124 20 124 5 apr
+ 20 124 l s
+n 20 9 m 15 9 15 14 5 apr
+ 15 14 l s
+n 15 14 m 0 105 rl s
+n 330.77 119 m 330.77 124 325.77 124 5 apr
+ 325.77 124 l s
+n 325.77 9 m 330.77 9 330.77 14 5 apr
+ 330.77 14 l s
+n 330.77 14 m 0 105 rl s
+n 44.77 124 m 281 0 rl s
+n 325.77 9 m 0 0 rl s
+n 335.77 66.50 m 5 0 rl s
+n 338.77 68.50 m 2 -2 rl -2 -2 rl s
+ 0 144.67 m(export) show
+n 0 66.50 m 10 0 rl s
+n 8 68.50 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/ExtAtom.eps b/doc/ExtAtom.eps
new file mode 100644
--- /dev/null
+++ b/doc/ExtAtom.eps
@@ -0,0 +1,127 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: ExtAtom
+%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter
+%%Pages: 0
+%%BoundingBox: 0 0 130 82
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 44.50 34.78 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 26 50.17 m(Atom) show
+ 20 22.50 34.78 17 1 255 255 255 Box
+ 26 28.17 m(Atom) show
+ 0.30 slw
+n 54.78 31 m 5 0 rl s
+n 57.78 33 m 2 -2 rl -2 -2 rl s
+ 59.78 22.50 14.78 17 1 255 255 255 RBox
+ 65.78 28.17 m(/) show
+ 0.30 slw
+n 74.56 31 m 5 0 rl s
+n 77.56 33 m 2 -2 rl -2 -2 rl s
+ 79.56 22.50 34.78 17 1 255 255 255 Box
+ 85.56 28.17 m(Atom) show
+ 20 0.50 34.78 17 1 255 255 255 Box
+ 26 6.17 m(Atom) show
+ 0.30 slw
+n 54.78 9 m 5 0 rl s
+n 57.78 11 m 2 -2 rl -2 -2 rl s
+ 59.78 0.50 17.64 17 1 255 255 255 RBox
+ 65.78 6.17 m(+) show
+ 0.30 slw
+n 10 31 m 5 0 rl s
+n 119.34 31 m 5 0 rl s
+n 15 48 m 15 53 20 53 5 apr
+ 20 53 l s
+n 20 9 m 15 9 15 14 5 apr
+ 15 14 l s
+n 15 14 m 0 34 rl s
+n 119.34 48 m 119.34 53 114.34 53 5 apr
+ 114.34 53 l s
+n 114.34 9 m 119.34 9 119.34 14 5 apr
+ 119.34 14 l s
+n 119.34 14 m 0 34 rl s
+n 15 31 m 5 0 rl s
+n 114.34 31 m 5 0 rl s
+n 54.78 53 m 59.56 0 rl s
+n 114.34 31 m 0 0 rl s
+n 77.42 9 m 36.92 0 rl s
+n 124.34 31 m 5 0 rl s
+n 127.34 33 m 2 -2 rl -2 -2 rl s
+ 0 73.67 m(ExtAtom) show
+n 0 31 m 10 0 rl s
+n 8 33 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/Factor.eps b/doc/Factor.eps
new file mode 100644
--- /dev/null
+++ b/doc/Factor.eps
@@ -0,0 +1,105 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: Factor
+%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter
+%%Pages: 0
+%%BoundingBox: 0 0 84 43
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 0.50 48.67 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 26 6.17 m(ExtAtom) show
+ 0.30 slw
+n 10 9 m 10 0 rl s
+n 68.67 9 m 10 0 rl s
+n 20 9 m 15 9 15 14 5 apr
+ 15 14 l s
+n 15 17.50 m 15 22.50 20 22.50 5 apr
+ 20 22.50 l s
+n 68.67 9 m 73.67 9 73.67 14 5 apr
+ 73.67 14 l s
+n 73.67 17.50 m 73.67 22.50 68.67 22.50 5 apr
+ 68.67 22.50 l s
+n 15 14 m 0 3.50 rl s
+n 73.67 14 m 0 3.50 rl s
+n 20 22.50 m 48.67 0 rl s
+n 46.33 24.50 m -2 -2 rl 2 -2 rl s
+n 78.67 9 m 5 0 rl s
+n 81.67 11 m 2 -2 rl -2 -2 rl s
+ 0 34.67 m(Factor) show
+n 0 9 m 10 0 rl s
+n 8 11 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/File.eps b/doc/File.eps
new file mode 100644
--- /dev/null
+++ b/doc/File.eps
@@ -0,0 +1,103 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: File
+%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter
+%%Pages: 0
+%%BoundingBox: 0 0 91 43
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 5.50 55.89 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 26 11.17 m(Production) show
+ 0.30 slw
+n 77.89 16 m -2 -2 rl 2 -2 rl s
+n 10 0.50 m 75.89 0 rl s
+n 20 0.50 m 15 0.50 15 5.50 5 apr
+ 15 5.50 l s
+n 15 9 m 15 14 20 14 5 apr
+ 20 14 l s
+n 75.89 0.50 m 80.89 0.50 80.89 5.50 5 apr
+ 80.89 5.50 l s
+n 80.89 9 m 80.89 14 75.89 14 5 apr
+ 75.89 14 l s
+n 15 5.50 m 0 3.50 rl s
+n 80.89 5.50 m 0 3.50 rl s
+n 85.89 0.50 m 5 0 rl s
+n 88.89 2.50 m 2 -2 rl -2 -2 rl s
+ 0 34.67 m(File) show
+n 0 0.50 m 10 0 rl s
+n 8 2.50 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/Nonterminal.eps b/doc/Nonterminal.eps
new file mode 100644
--- /dev/null
+++ b/doc/Nonterminal.eps
@@ -0,0 +1,134 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: Nonterminal
+%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter
+%%Pages: 0
+%%BoundingBox: 0 0 126 118
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  10 0.50 32.55 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 16 6.17 m(letter) show
+ 0.30 slw
+n 42.55 9 m 5 0 rl s
+n 45.55 11 m 2 -2 rl -2 -2 rl s
+ 67.55 80 32.55 17 1 255 255 255 Box
+ 73.55 85.67 m(letter) show
+ 69.76 58 30.34 17 1 255 255 255 Box
+ 75.76 63.67 m(digit) show
+ 83.10 36 17 17 1 255 255 255 RBox
+ 89.10 41.67 m(_) show
+ 85.60 14 14.50 17 1 255 255 255 RBox
+ 91.60 19.67 m(.) show
+ 0.30 slw
+n 57.55 55.50 m 5 0 rl s
+n 105.10 55.50 m 5 0 rl s
+n 62.55 83.50 m 62.55 88.50 67.55 88.50 5 apr
+ 67.55 88.50 l s
+n 67.55 22.50 m 62.55 22.50 62.55 27.50 5 apr
+ 62.55 27.50 l s
+n 62.55 27.50 m 0 56 rl s
+n 105.10 83.50 m 105.10 88.50 100.10 88.50 5 apr
+ 100.10 88.50 l s
+n 100.10 22.50 m 105.10 22.50 105.10 27.50 5 apr
+ 105.10 27.50 l s
+n 105.10 27.50 m 0 56 rl s
+n 62.55 66.50 m 5 0 rl s
+n 62.55 44.50 m 5 0 rl s
+n 100.10 66.50 m 5 0 rl s
+n 100.10 44.50 m 5 0 rl s
+n 67.55 88.50 m 0 0 rl s
+n 67.55 66.50 m 2.21 0 rl s
+n 67.55 44.50 m 15.55 0 rl s
+n 67.55 22.50 m 18.05 0 rl s
+n 112.10 57.50 m -2 -2 rl 2 -2 rl s
+n 47.55 9 m 72.55 0 rl s
+n 57.55 9 m 52.55 9 52.55 14 5 apr
+ 52.55 14 l s
+n 52.55 50.50 m 52.55 55.50 57.55 55.50 5 apr
+ 57.55 55.50 l s
+n 110.10 9 m 115.10 9 115.10 14 5 apr
+ 115.10 14 l s
+n 115.10 50.50 m 115.10 55.50 110.10 55.50 5 apr
+ 110.10 55.50 l s
+n 52.55 14 m 0 36.50 rl s
+n 115.10 14 m 0 36.50 rl s
+n 120.10 9 m 5 0 rl s
+n 123.10 11 m 2 -2 rl -2 -2 rl s
+ 0 109.17 m(Nonterminal) show
+n 0 9 m 10 0 rl s
+n 8 11 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/Production.eps b/doc/Production.eps
new file mode 100644
--- /dev/null
+++ b/doc/Production.eps
@@ -0,0 +1,125 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: Production
+%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter
+%%Pages: 0
+%%BoundingBox: 0 0 231 52
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  10 0.50 62.55 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 16 6.17 m(Nonterminal) show
+ 0.30 slw
+n 72.55 9 m 5 0 rl s
+n 75.55 11 m 2 -2 rl -2 -2 rl s
+ 92.55 14 36.45 17 1 255 255 255 Box
+ 98.55 19.67 m(String) show
+ 0.30 slw
+n 90.55 24.50 m 2 -2 rl -2 -2 rl s
+n 77.55 9 m 66.45 0 rl s
+n 77.55 9 m 82.55 9 82.55 14 5 apr
+ 82.55 14 l s
+n 82.55 17.50 m 82.55 22.50 87.55 22.50 5 apr
+ 87.55 22.50 l s
+n 87.55 22.50 m 5 0 rl s
+n 144 9 m 139 9 139 14 5 apr
+ 139 14 l s
+n 139 17.50 m 139 22.50 134 22.50 5 apr
+ 134 22.50 l s
+n 129 22.50 m 5 0 rl s
+n 82.55 14 m 0 3.50 rl s
+n 139 14 m 0 3.50 rl s
+n 144 9 m 5 0 rl s
+n 147 11 m 2 -2 rl -2 -2 rl s
+ 149 0.50 17.64 17 1 255 255 255 RBox
+ 155 6.17 m(=) show
+ 0.30 slw
+n 166.64 9 m 5 0 rl s
+n 169.64 11 m 2 -2 rl -2 -2 rl s
+ 171.64 0.50 33.66 17 1 255 255 255 Box
+ 177.64 6.17 m(Term) show
+ 0.30 slw
+n 205.30 9 m 5 0 rl s
+n 208.30 11 m 2 -2 rl -2 -2 rl s
+ 210.30 0.50 14.78 17 1 255 255 255 RBox
+ 216.30 6.17 m(;) show
+ 0.30 slw
+n 225.08 9 m 5 0 rl s
+n 228.08 11 m 2 -2 rl -2 -2 rl s
+ 0 43.17 m(Production) show
+n 0 9 m 10 0 rl s
+n 8 11 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/Production_unfold.eps b/doc/Production_unfold.eps
new file mode 100644
--- /dev/null
+++ b/doc/Production_unfold.eps
@@ -0,0 +1,208 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: Production
+%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter)
+%%Pages: 0
+%%BoundingBox: 0 0 354 109
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  10 0.50 28.44 15 1 255 255 255 Box
+/Times-Roman findfont 8 scalefont setfont
+ 16 6.17 m(letter) show
+ 0.30 slw
+n 38.44 8 m 5 0 rl s
+n 41.44 10 m 2 -2 rl -2 -2 rl s
+ 63.44 73 28.44 15 1 255 255 255 Box
+ 69.44 78.67 m(letter) show
+ 65.21 53 26.67 15 1 255 255 255 Box
+ 71.21 58.67 m(digit) show
+ 75.88 33 16 15 1 255 255 255 RBox
+ 81.88 38.67 m(_) show
+ 77.88 13 14 15 1 255 255 255 RBox
+ 83.88 18.67 m(.) show
+ 0.30 slw
+n 53.44 50.50 m 5 0 rl s
+n 96.88 50.50 m 5 0 rl s
+n 58.44 75.50 m 58.44 80.50 63.44 80.50 5 apr
+ 63.44 80.50 l s
+n 63.44 20.50 m 58.44 20.50 58.44 25.50 5 apr
+ 58.44 25.50 l s
+n 58.44 25.50 m 0 50 rl s
+n 96.88 75.50 m 96.88 80.50 91.88 80.50 5 apr
+ 91.88 80.50 l s
+n 91.88 20.50 m 96.88 20.50 96.88 25.50 5 apr
+ 96.88 25.50 l s
+n 96.88 25.50 m 0 50 rl s
+n 58.44 60.50 m 5 0 rl s
+n 58.44 40.50 m 5 0 rl s
+n 91.88 60.50 m 5 0 rl s
+n 91.88 40.50 m 5 0 rl s
+n 63.44 80.50 m 0 0 rl s
+n 63.44 60.50 m 1.77 0 rl s
+n 63.44 40.50 m 12.44 0 rl s
+n 63.44 20.50 m 14.44 0 rl s
+n 103.88 52.50 m -2 -2 rl 2 -2 rl s
+n 43.44 8 m 68.44 0 rl s
+n 53.44 8 m 48.44 8 48.44 13 5 apr
+ 48.44 13 l s
+n 48.44 45.50 m 48.44 50.50 53.44 50.50 5 apr
+ 53.44 50.50 l s
+n 101.88 8 m 106.88 8 106.88 13 5 apr
+ 106.88 13 l s
+n 106.88 45.50 m 106.88 50.50 101.88 50.50 5 apr
+ 101.88 50.50 l s
+n 48.44 13 m 0 32.50 rl s
+n 106.88 13 m 0 32.50 rl s
+n 111.88 8 m 5 0 rl s
+n 114.88 10 m 2 -2 rl -2 -2 rl s
+ 131.88 13 15.26 15 1 255 255 255 RBox
+ 137.88 18.67 m(") show
+ 0.30 slw
+n 147.14 20.50 m 5 0 rl s
+n 150.14 22.50 m 2 -2 rl -2 -2 rl s
+ 162.14 25.50 43.09 15 1 255 255 255 Box
+ 168.14 31.17 m(Character) show
+ 0.30 slw
+n 207.23 35 m -2 -2 rl 2 -2 rl s
+n 152.14 20.50 m 63.09 0 rl s
+n 162.14 20.50 m 157.14 20.50 157.14 25.50 5 apr
+ 157.14 25.50 l s
+n 157.14 28 m 157.14 33 162.14 33 5 apr
+ 162.14 33 l s
+n 205.23 20.50 m 210.23 20.50 210.23 25.50 5 apr
+ 210.23 25.50 l s
+n 210.23 28 m 210.23 33 205.23 33 5 apr
+ 205.23 33 l s
+n 157.14 25.50 m 0 2.50 rl s
+n 210.23 25.50 m 0 2.50 rl s
+n 215.23 20.50 m 5 0 rl s
+n 218.23 22.50 m 2 -2 rl -2 -2 rl s
+ 220.23 13 15.26 15 1 255 255 255 RBox
+ 226.23 18.67 m(") show
+ 0.30 slw
+n 129.88 22.50 m 2 -2 rl -2 -2 rl s
+n 116.88 8 m 133.61 0 rl s
+n 116.88 8 m 121.88 8 121.88 13 5 apr
+ 121.88 13 l s
+n 121.88 15.50 m 121.88 20.50 126.88 20.50 5 apr
+ 126.88 20.50 l s
+n 126.88 20.50 m 5 0 rl s
+n 250.49 8 m 245.49 8 245.49 13 5 apr
+ 245.49 13 l s
+n 245.49 15.50 m 245.49 20.50 240.49 20.50 5 apr
+ 240.49 20.50 l s
+n 235.49 20.50 m 5 0 rl s
+n 121.88 13 m 0 2.50 rl s
+n 245.49 13 m 0 2.50 rl s
+n 250.49 8 m 5 0 rl s
+n 253.49 10 m 2 -2 rl -2 -2 rl s
+ 255.49 0.50 16.51 15 1 255 255 255 RBox
+ 261.49 6.17 m(=) show
+ 0.30 slw
+n 272 8 m 5 0 rl s
+n 275 10 m 2 -2 rl -2 -2 rl s
+ 287 0.50 32.44 15 1 255 255 255 Box
+ 293 6.17 m(Factor) show
+ 296.42 20.50 13.60 15 1 255 255 255 RBox
+ 302.42 26.17 m(|) show
+ 0.30 slw
+n 312.02 30 m -2 -2 rl 2 -2 rl s
+n 277 8 m 10 0 rl s
+n 319.44 8 m 10 0 rl s
+n 287 28 m 9.42 0 rl s
+n 310.02 28 m 9.42 0 rl s
+n 287 8 m 282 8 282 13 5 apr
+ 282 13 l s
+n 282 23 m 282 28 287 28 5 apr
+ 287 28 l s
+n 319.44 8 m 324.44 8 324.44 13 5 apr
+ 324.44 13 l s
+n 324.44 23 m 324.44 28 319.44 28 5 apr
+ 319.44 28 l s
+n 282 13 m 0 10 rl s
+n 324.44 13 m 0 10 rl s
+n 329.44 8 m 5 0 rl s
+n 332.44 10 m 2 -2 rl -2 -2 rl s
+ 334.44 0.50 14.22 15 1 255 255 255 RBox
+ 340.44 6.17 m(;) show
+ 0.30 slw
+n 348.66 8 m 5 0 rl s
+n 351.66 10 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 100.17 m(Production) show
+n 0 8 m 10 0 rl s
+n 8 10 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/RAtom.eps b/doc/RAtom.eps
new file mode 100644
--- /dev/null
+++ b/doc/RAtom.eps
@@ -0,0 +1,133 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: AvantGarde-Book Times-Roman
+%%Title: RAtom
+%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter)
+%%Pages: 0
+%%BoundingBox: 0 0 121 100
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 255 255 255 scol  20 63.25 47.64 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 0 0 0 scol  25.50 68.42 m(character) show
+ 20 42.25 13.78 16 0.50 255 255 255 RBox
+ 25.50 47.42 m(\\) show
+ 0.30 slw
+n 33.78 50.25 m 5 0 rl s
+n 36.78 52.25 m 2 -2 rl -2 -2 rl s
+ 255 255 255 scol  38.78 42.25 47.64 16 0.50 255 255 255 Box
+ 0 0 0 scol  44.28 47.42 m(character) show
+ 20 21.25 13.50 16 0.50 255 255 255 RBox
+ 25.50 26.42 m(.) show
+ 20 0.25 17.11 16 0.50 255 255 255 RBox
+ 25.50 5.42 m(\\\() show
+ 0.30 slw
+n 37.11 8.25 m 5 0 rl s
+n 40.11 10.25 m 2 -2 rl -2 -2 rl s
+ 255 255 255 scol  42.11 0.25 41.55 16 0.50 255 255 255 Box
+ 0 0 0 scol  47.61 5.42 m(Regexp) show
+ 0.30 slw
+n 83.66 8.25 m 5 0 rl s
+n 86.66 10.25 m 2 -2 rl -2 -2 rl s
+ 88.66 0.25 17.11 16 0.50 255 255 255 RBox
+ 94.16 5.42 m(\\\)) show
+ 0.30 slw
+n 10 39.75 m 5 0 rl s
+n 110.77 39.75 m 5 0 rl s
+n 15 66.25 m 15 71.25 20 71.25 5 apr
+ 20 71.25 l s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 13.25 m 0 53 rl s
+n 110.77 66.25 m 110.77 71.25 105.77 71.25 5 apr
+ 105.77 71.25 l s
+n 105.77 8.25 m 110.77 8.25 110.77 13.25 5 apr
+ 110.77 13.25 l s
+n 110.77 13.25 m 0 53 rl s
+n 15 50.25 m 5 0 rl s
+n 15 29.25 m 5 0 rl s
+n 105.77 50.25 m 5 0 rl s
+n 105.77 29.25 m 5 0 rl s
+n 67.64 71.25 m 38.13 0 rl s
+n 86.42 50.25 m 19.35 0 rl s
+n 33.50 29.25 m 72.27 0 rl s
+n 105.77 8.25 m 0 0 rl s
+n 115.77 39.75 m 5 0 rl s
+n 118.77 41.75 m 2 -2 rl -2 -2 rl s
+/AvantGarde-Book findfont 10 scalefont setfont
+ 0 91.42 m(RAtom) show
+n 0 39.75 m 10 0 rl s
+n 8 41.75 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/RAtom_unfold.eps b/doc/RAtom_unfold.eps
new file mode 100644
--- /dev/null
+++ b/doc/RAtom_unfold.eps
@@ -0,0 +1,168 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: RAtom
+%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter)
+%%Pages: 0
+%%BoundingBox: 0 0 198 126
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 88.50 48.64 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 26 94.17 m(character) show
+ 20 66.50 14.78 17 1 255 255 255 RBox
+ 26 72.17 m(\\) show
+ 0.30 slw
+n 34.78 75 m 5 0 rl s
+n 37.78 77 m 2 -2 rl -2 -2 rl s
+ 39.78 66.50 48.64 17 1 255 255 255 Box
+ 45.78 72.17 m(character) show
+ 20 44.50 14.50 17 1 255 255 255 RBox
+ 26 50.17 m(.) show
+ 20 0.50 18.11 17 1 255 255 255 RBox
+ 26 6.17 m(\\\() show
+ 0.30 slw
+n 38.11 9 m 5 0 rl s
+n 41.11 11 m 2 -2 rl -2 -2 rl s
+ 53.11 0.50 44.22 17 1 255 255 255 Box
+ 59.11 6.17 m(RFactor) show
+ 66.83 22.50 16.78 17 1 255 255 255 RBox
+ 72.83 28.17 m(\\|) show
+ 0.30 slw
+n 85.61 33 m -2 -2 rl 2 -2 rl s
+n 43.11 9 m 10 0 rl s
+n 97.33 9 m 10 0 rl s
+n 53.11 31 m 13.72 0 rl s
+n 83.61 31 m 13.72 0 rl s
+n 53.11 9 m 48.11 9 48.11 14 5 apr
+ 48.11 14 l s
+n 48.11 26 m 48.11 31 53.11 31 5 apr
+ 53.11 31 l s
+n 97.33 9 m 102.33 9 102.33 14 5 apr
+ 102.33 14 l s
+n 102.33 26 m 102.33 31 97.33 31 5 apr
+ 97.33 31 l s
+n 48.11 14 m 0 12 rl s
+n 102.33 14 m 0 12 rl s
+n 107.33 9 m 5 0 rl s
+n 110.33 11 m 2 -2 rl -2 -2 rl s
+ 127.33 14 17 17 1 255 255 255 RBox
+ 133.33 19.67 m($) show
+ 0.30 slw
+n 125.33 24.50 m 2 -2 rl -2 -2 rl s
+n 112.33 9 m 47 0 rl s
+n 112.33 9 m 117.33 9 117.33 14 5 apr
+ 117.33 14 l s
+n 117.33 17.50 m 117.33 22.50 122.33 22.50 5 apr
+ 122.33 22.50 l s
+n 122.33 22.50 m 5 0 rl s
+n 159.33 9 m 154.33 9 154.33 14 5 apr
+ 154.33 14 l s
+n 154.33 17.50 m 154.33 22.50 149.33 22.50 5 apr
+ 149.33 22.50 l s
+n 144.33 22.50 m 5 0 rl s
+n 117.33 14 m 0 3.50 rl s
+n 154.33 14 m 0 3.50 rl s
+n 159.33 9 m 5 0 rl s
+n 162.33 11 m 2 -2 rl -2 -2 rl s
+ 164.33 0.50 18.11 17 1 255 255 255 RBox
+ 170.33 6.17 m(\\\)) show
+ 0.30 slw
+n 10 53 m 5 0 rl s
+n 187.44 53 m 5 0 rl s
+n 15 92 m 15 97 20 97 5 apr
+ 20 97 l s
+n 20 9 m 15 9 15 14 5 apr
+ 15 14 l s
+n 15 14 m 0 78 rl s
+n 187.44 92 m 187.44 97 182.44 97 5 apr
+ 182.44 97 l s
+n 182.44 9 m 187.44 9 187.44 14 5 apr
+ 187.44 14 l s
+n 187.44 14 m 0 78 rl s
+n 15 75 m 5 0 rl s
+n 15 53 m 5 0 rl s
+n 182.44 75 m 5 0 rl s
+n 182.44 53 m 5 0 rl s
+n 68.64 97 m 113.80 0 rl s
+n 88.42 75 m 94.02 0 rl s
+n 34.50 53 m 147.94 0 rl s
+n 182.44 9 m 0 0 rl s
+n 192.44 53 m 5 0 rl s
+n 195.44 55 m 2 -2 rl -2 -2 rl s
+ 0 117.67 m(RAtom) show
+n 0 53 m 10 0 rl s
+n 8 55 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/RExtAtom.eps b/doc/RExtAtom.eps
new file mode 100644
--- /dev/null
+++ b/doc/RExtAtom.eps
@@ -0,0 +1,132 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: AvantGarde-Book Times-Roman
+%%Title: RExtAtom
+%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter)
+%%Pages: 0
+%%BoundingBox: 0 0 128 92
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 255 255 255 scol  10 0.25 40.45 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 0 0 0 scol  15.50 5.42 m(RAtom) show
+ 0.30 slw
+n 50.45 8.25 m 5 0 rl s
+n 53.45 10.25 m 2 -2 rl -2 -2 rl s
+ 80.45 55.25 16 16 0.50 255 255 255 RBox
+ 85.95 60.42 m(*) show
+ 80.45 34.25 16.64 16 0.50 255 255 255 RBox
+ 85.95 39.42 m(+) show
+ 80.45 13.25 15.44 16 0.50 255 255 255 RBox
+ 85.95 18.42 m(?) show
+ 0.30 slw
+n 70.45 42.25 m 5 0 rl s
+n 102.09 42.25 m 5 0 rl s
+n 75.45 58.25 m 75.45 63.25 80.45 63.25 5 apr
+ 80.45 63.25 l s
+n 80.45 21.25 m 75.45 21.25 75.45 26.25 5 apr
+ 75.45 26.25 l s
+n 75.45 26.25 m 0 32 rl s
+n 102.09 58.25 m 102.09 63.25 97.09 63.25 5 apr
+ 97.09 63.25 l s
+n 97.09 21.25 m 102.09 21.25 102.09 26.25 5 apr
+ 102.09 26.25 l s
+n 102.09 26.25 m 0 32 rl s
+n 75.45 42.25 m 5 0 rl s
+n 97.09 42.25 m 5 0 rl s
+n 96.45 63.25 m 0.64 0 rl s
+n 97.09 42.25 m 0 0 rl s
+n 95.89 21.25 m 1.20 0 rl s
+n 68.45 44.25 m 2 -2 rl -2 -2 rl s
+n 55.45 8.25 m 66.64 0 rl s
+n 55.45 8.25 m 60.45 8.25 60.45 13.25 5 apr
+ 60.45 13.25 l s
+n 60.45 37.25 m 60.45 42.25 65.45 42.25 5 apr
+ 65.45 42.25 l s
+n 65.45 42.25 m 5 0 rl s
+n 122.09 8.25 m 117.09 8.25 117.09 13.25 5 apr
+ 117.09 13.25 l s
+n 117.09 37.25 m 117.09 42.25 112.09 42.25 5 apr
+ 112.09 42.25 l s
+n 107.09 42.25 m 5 0 rl s
+n 60.45 13.25 m 0 24 rl s
+n 117.09 13.25 m 0 24 rl s
+n 122.09 8.25 m 5 0 rl s
+n 125.09 10.25 m 2 -2 rl -2 -2 rl s
+/AvantGarde-Book findfont 10 scalefont setfont
+ 0 83.42 m(RExtAtom) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/RFactor.eps b/doc/RFactor.eps
new file mode 100644
--- /dev/null
+++ b/doc/RFactor.eps
@@ -0,0 +1,106 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: AvantGarde-Book Times-Roman
+%%Title: RFactor
+%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter)
+%%Pages: 0
+%%BoundingBox: 0 0 90 42
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 255 255 255 scol  20 0.25 54.34 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 0 0 0 scol  25.50 5.42 m(RExtAtom) show
+ 0.30 slw
+n 10 8.25 m 10 0 rl s
+n 74.34 8.25 m 10 0 rl s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 16.25 m 15 21.25 20 21.25 5 apr
+ 20 21.25 l s
+n 74.34 8.25 m 79.34 8.25 79.34 13.25 5 apr
+ 79.34 13.25 l s
+n 79.34 16.25 m 79.34 21.25 74.34 21.25 5 apr
+ 74.34 21.25 l s
+n 15 13.25 m 0 3 rl s
+n 79.34 13.25 m 0 3 rl s
+n 20 21.25 m 54.34 0 rl s
+n 49.17 23.25 m -2 -2 rl 2 -2 rl s
+n 84.34 8.25 m 5 0 rl s
+n 87.34 10.25 m 2 -2 rl -2 -2 rl s
+/AvantGarde-Book findfont 10 scalefont setfont
+ 0 33.42 m(RFactor) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/Regexp.eps b/doc/Regexp.eps
new file mode 100644
--- /dev/null
+++ b/doc/Regexp.eps
@@ -0,0 +1,128 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: AvantGarde-Book Times-Roman
+%%Title: Regexp
+%%Creator: Ebnf2ps (Copyright 1996 by Peter Thiemann / Michael Walter)
+%%Pages: 0
+%%BoundingBox: 0 0 130 58
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 255 255 255 scol  20 0.25 43.22 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 0 0 0 scol  25.50 5.42 m(RFactor) show
+ 33.72 21.25 15.78 16 0.50 255 255 255 RBox
+ 39.22 26.42 m(\\|) show
+ 0.30 slw
+n 51.50 31.25 m -2 -2 rl 2 -2 rl s
+n 10 8.25 m 10 0 rl s
+n 63.22 8.25 m 10 0 rl s
+n 20 29.25 m 13.72 0 rl s
+n 49.50 29.25 m 13.72 0 rl s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 24.25 m 15 29.25 20 29.25 5 apr
+ 20 29.25 l s
+n 63.22 8.25 m 68.22 8.25 68.22 13.25 5 apr
+ 68.22 13.25 l s
+n 68.22 24.25 m 68.22 29.25 63.22 29.25 5 apr
+ 63.22 29.25 l s
+n 15 13.25 m 0 11 rl s
+n 68.22 13.25 m 0 11 rl s
+n 73.22 8.25 m 5 0 rl s
+n 76.22 10.25 m 2 -2 rl -2 -2 rl s
+ 93.22 13.25 16 16 0.50 255 255 255 RBox
+ 98.72 18.42 m($) show
+ 0.30 slw
+n 91.22 23.25 m 2 -2 rl -2 -2 rl s
+n 78.22 8.25 m 46 0 rl s
+n 78.22 8.25 m 83.22 8.25 83.22 13.25 5 apr
+ 83.22 13.25 l s
+n 83.22 16.25 m 83.22 21.25 88.22 21.25 5 apr
+ 88.22 21.25 l s
+n 88.22 21.25 m 5 0 rl s
+n 124.22 8.25 m 119.22 8.25 119.22 13.25 5 apr
+ 119.22 13.25 l s
+n 119.22 16.25 m 119.22 21.25 114.22 21.25 5 apr
+ 114.22 21.25 l s
+n 109.22 21.25 m 5 0 rl s
+n 83.22 13.25 m 0 3 rl s
+n 119.22 13.25 m 0 3 rl s
+n 124.22 8.25 m 5 0 rl s
+n 127.22 10.25 m 2 -2 rl -2 -2 rl s
+/AvantGarde-Book findfont 10 scalefont setfont
+ 0 49.42 m(Regexp) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/String.eps b/doc/String.eps
new file mode 100644
--- /dev/null
+++ b/doc/String.eps
@@ -0,0 +1,113 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: String
+%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter
+%%Pages: 0
+%%BoundingBox: 0 0 129 52
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  10 0.50 16.08 17 1 255 255 255 RBox
+/Times-Roman findfont 10 scalefont setfont
+ 16 6.17 m(") show
+ 0.30 slw
+n 26.08 9 m 5 0 rl s
+n 29.08 11 m 2 -2 rl -2 -2 rl s
+ 41.08 14 50.87 17 1 255 255 255 Box
+ 47.08 19.67 m(Character) show
+ 0.30 slw
+n 93.95 24.50 m -2 -2 rl 2 -2 rl s
+n 31.08 9 m 70.87 0 rl s
+n 41.08 9 m 36.08 9 36.08 14 5 apr
+ 36.08 14 l s
+n 36.08 17.50 m 36.08 22.50 41.08 22.50 5 apr
+ 41.08 22.50 l s
+n 91.95 9 m 96.95 9 96.95 14 5 apr
+ 96.95 14 l s
+n 96.95 17.50 m 96.95 22.50 91.95 22.50 5 apr
+ 91.95 22.50 l s
+n 36.08 14 m 0 3.50 rl s
+n 96.95 14 m 0 3.50 rl s
+n 101.95 9 m 5 0 rl s
+n 104.95 11 m 2 -2 rl -2 -2 rl s
+ 106.95 0.50 16.08 17 1 255 255 255 RBox
+ 112.95 6.17 m(") show
+ 0.30 slw
+n 123.03 9 m 5 0 rl s
+n 126.03 11 m 2 -2 rl -2 -2 rl s
+ 0 43.17 m(String) show
+n 0 9 m 10 0 rl s
+n 8 11 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/Term.eps b/doc/Term.eps
new file mode 100644
--- /dev/null
+++ b/doc/Term.eps
@@ -0,0 +1,108 @@
+%!PS-Adobe-1.0
+%%DocumentFonts: Times-Roman
+%%Title: Term
+%%Creator: Ebnf2ps Version 1.01 (May 1996)(C) 1996 by Peter Thiemann/Michael Walter
+%%Pages: 0
+%%BoundingBox: 0 0 73 60
+%%EndComments
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+%%EndProlog
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 0.50 37.55 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 26 6.17 m(Factor) show
+ 31.77 22.50 14 17 1 255 255 255 RBox
+ 37.77 28.17 m(|) show
+ 0.30 slw
+n 47.77 33 m -2 -2 rl 2 -2 rl s
+n 10 9 m 10 0 rl s
+n 57.55 9 m 10 0 rl s
+n 20 31 m 11.77 0 rl s
+n 45.77 31 m 11.77 0 rl s
+n 20 9 m 15 9 15 14 5 apr
+ 15 14 l s
+n 15 26 m 15 31 20 31 5 apr
+ 20 31 l s
+n 57.55 9 m 62.55 9 62.55 14 5 apr
+ 62.55 14 l s
+n 62.55 26 m 62.55 31 57.55 31 5 apr
+ 57.55 31 l s
+n 15 14 m 0 12 rl s
+n 62.55 14 m 0 12 rl s
+n 67.55 9 m 5 0 rl s
+n 70.55 11 m 2 -2 rl -2 -2 rl s
+ 0 51.67 m(Term) show
+n 0 9 m 10 0 rl s
+n 8 11 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
diff --git a/doc/doc.ps b/doc/doc.ps
new file mode 100644
--- /dev/null
+++ b/doc/doc.ps
@@ -0,0 +1,3977 @@
+%!PS-Adobe-2.0
+%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
+%%Title: doc.dvi
+%%CreationDate: Wed May 29 23:00:09 1996
+%%Pages: 8
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%EndComments
+%DVIPSCommandLine: dvips -Phpl4 -o doc.ps doc.dvi
+%DVIPSParameters: dpi=600, compressed, comments removed
+%DVIPSSource:  TeX output 1996.05.29:2258
+%%BeginProcSet: texc.pro
+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}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{dup dup 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 /IE 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 IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /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 dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup 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 /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]/id ch-image N /rw ch-width 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 dup 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 dup gp add
+/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
+dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
+adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 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}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
+}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 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 dup 1 get dup mul exch 0 get dup 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
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+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 /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
+{dup /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: 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
+TeXDict begin 39158280 55380996 1000 600 600
+(/afs/informatik.uni-tuebingen.de/home/pluemick/tmp/walterm/hiwi/1.01/Ebnf2ps/doc.dvi)
+@start /Fa 12 117 df<93381FFFC093B512FC030314FF923A0FF8007F80DB1FE0EB0F
+C04B48EB3FE04B48137F4BC7FC4A15FFA24B15C01403F07F80F01E004A4891C7FCA4140F
+5DA3013FB712FE5BA26D5E903A001FF00007A2170F023F5D5DA2171F60A2147F4B133F60
+A302FF147F4B5CA317FF495EF083E092C7FC5EF007C0A25B4AED0F80A2F01F00010780EF
+7F3E4AEC3FFC715AEF07E0010F92C8FC5CA2120F383F8FF0EA7FDF00FF5BA25C139FEBBF
+80013FCBFCEAFC7EEA7FFC6C5AEA07C03B4C81BA38>28 D<EC3F80903801FFE00107EBF9
+E090391FE0FFF890383FC07F9038FF803F48EB001F485A495C1207485A153F001F5D5B12
+3F157F007F5D5BA215FF00FF5D5BA25C93C7FC0180EC07C0A25C9238FE0F80A3007F0107
+EB1F00140F003F011F133EEBC03F261FE0FC5B3A0FFFF87FF800039038E03FF03A007F00
+0FC02A2777A531>97 D<EC0FF0ECFFFC010313FF90390FF81F8090393FE00FC090387FC0
+1F9038FF803F48EB007F484813FF485A120F5B001F158049EB7F00003F141892C7FC127F
+5BA312FF5BA45BA3ED0180ED03C0007FEC07E0150F6C6CEB1FC0ED7F803A1FE001FE0039
+0FF80FFC0003B512F0C614C0D91FFCC7FC232777A52C>99 D<EC0FF0ECFFFE0103EBFF80
+90390FF81FC090383FE00F90397F8007E0EBFF005A485A485A120F49130F001F15C04848
+131FED7F80913801FF00007FEB3FFC90B512F015C002F0C7FCD8FFE0C8FC5BA45BA3ED01
+80007FEC03C0ED07E06D130F003FEC1FC06C6CEB7F80913801FE003907F80FFC6CB512F0
+C614C0D91FFCC7FC232777A52C>101 D<167E923803FFC04B13E092381FE3F092383FC7
+F816CFED7F9F15FFA217F04A131F17E0EE078093C7FC5C5DA514075D011FB612804915C0
+A26D15809026000FF8C7FCA5141F5DA4143F5DA5147F5DA414FF5DA45B92C8FCA45B5CA3
+5C1307120F383F87F8EA7FC712FFEBCFF0A2EB8FE0EB9FC0EB1F80D8FC3FC9FCEA7FFEEA
+1FF8EA07E02D4C81BA21>I<143C147F495A15805B1500A25C6D5AEB007091C7FCAB133F
+EBFFC000037F3807C7F0380F87F8EA1F07A2EA3E0FA2127C131F5C12FCEAF83F00005B13
+7F5CA213FF5CA25A91C7FC5A5BEC0F801207EBFC1F000F140013F85C143E143CEBF07C00
+075BEBF1F06CB45AC65B013FC7FC193C79BA1E>105 D<EB07F8EA03FFA25A7E38001FF0
+A2133FA214E0A2137FA214C0A213FFA21480A25AA21400A25AA25BA21207A25BA2120FA2
+5BA2121FA25BA2123FA25BA2127FA2EBC3E0A212FF13C7EB87C0A3EB8F80A2387F9F0012
+3FEA1FFE6C5AEA03F0153B78B919>108 D<01FCD90FF8EB0FF0D803FFD93FFEEB7FFC48
+01C0B50081B5FC3E0F9FE3F03FC3F07F80271F0FE7C0D9EFC07F913BFF801FFF003F003E
+02005B49484A80007E5B007C495C4A5C043F147FD8F83F4B5C5C1200047F14FF017F604A
+5CA204FF5B01FF95C7FC4A1480604B5D48170702000200EC0F8019FC4B020F131F4806F8
+1300495C1A3E030715F0000761495C62953807F1F0494A6DB45A494A6D1380D801E0D901
+E0D9007EC7FC492779A54E>I<01FCEB0FF0D803FFEB7FFC4801C1B5FC3B0F9FE3F07F80
+271F0FEFC07F9138FF003F003E5B494880127E007C5B5C167FD8F83F5D5C120016FF017F
+5D5CA25D01FF92C7FC14805D5E4814070200EC0F8016FC030F131F4803F813005B173E16
+F000075E5B5F923807F1F0496DB45A496D1380D801E0D9007EC7FC312779A536>I<EC0F
+F891B5FC010314C090390FF81FF090393FE007F890397FC003FCD9FF8013FE48EB000148
+4814FF485A120F5B121F5B123F5D127F5BA25D00FF15FE5BA2ED0FFCA25BED1FF816F015
+3F16E0007FEC7FC016806C6CEBFF004A5A391FE007FC390FF81FF00003B512C0C691C7FC
+EB1FF0282777A531>I<01FCEB7F803A03FF01FFF04801C713FC3A0F9FEFC0FE3A1F0FFF
+003F4A13FF003E495A131F007E495A007C13F0A216FED8F83FEB01FC9138E000F0000015
+00A2137F5CA313FF5CA35A91C8FCA35A5BA312075BA35B5BEA01E0282779A52A>114
+D<14F0EB03F8130780495AA3131FA25CA2133FA25CA2137FA2B6128015C0A21580C6EB80
+00A25AA291C7FCA25AA25BA21207A25BA2120FA25BA2121FA29038F007C0A2003F130F15
+80EBE01F1500143E147E147C001F5B380FE3F06CB45A6C1380C648C7FC1A3778B520>
+116 D E /Fb 1 14 df<923803FFC0033F13FC4AB67E020715E0913A1FFE007FF8DA7FE0
+EB07FE4AC87ED903FCED3FC0D907F0ED0FE0D90FC0ED03F049486F7E49CA7E017E177E49
+8349834848EF0F80000319C04917074848EF03E0000F19F049170148CC12F8A2001E1978
+003E197CA2003C193C007C193EA20078191EA300F8191FA248190FAA6C191FA20078191E
+A3007C193EA2003C193C003E197CA2001E1978001F19F8A26C6CEF01F06D1703000719E0
+6C6CEF07C06D170F000119806C6CEF1F006D5F017E177E6D5F6D6C4B5A6D6C4B5AD907F0
+ED0FE0D903FCED3FC0D900FF03FFC7FCDA7FE0EB07FEDA1FFEEB7FF80207B612E0020115
+80DA003F01FCC8FC030313C0484E7BBB53>13 D E /Fc 46 123
+df<913803FFC0027F13F00103B512FC010FEB00FED93FF8133FD97FE0EBFF8049485A5A
+1480484A13C04A6C1380A36F1300167E93C7FCA592383FFFC0B8FCA4000390C7FCB3ABB5
+D8FC3F13FFA4303A7EB935>28 D<ED0380B3ADBA12FEA3C8D80380C8FCB3AD3F417BB44A
+>43 D<B61280A819087F9620>45 D<ED03E04B7EA24B7EA34B7EA24B7EA34B7EA292B57E
+A34A8015F302038015E1A202078015C0A24A487F167F021F80ED003FA24A80023E131F02
+7E80027C7FA202FC814A7F0101824A7F91B7FC4982A2498202C0C7FCA2010F824A147F01
+1F8291C8123FA24982013E151F017E82017C8113FEB500FC010FB61280A4413A7DB948>
+65 D<B87E17F817FE717E28007FF000077F04017F707F717E173F84A2717EA74D5AA260
+177F4D5A4C5B4C1380041F90C7FC91B612F883EFFF809126F0000113E0706C7EEF3FFC71
+7E170F84711380A319C0A71980A25F19004D5A173FEFFFFC04035BB912E0604DC7FC17E0
+3A397CB844>I<DB3FFCEB01C00203B5EAC003021FECF00791B6EAFC0F01039039FC00FF
+3F4901C0EB1FFFD91FFEC77E49481403D97FF080494880485B48177F4849153F4890C9FC
+181F485A180F123F5B1807127FA24993C7FC12FFAD127F7FF003C0123FA27F001F1707A2
+6C6C1780180F6C6D16006C6D5D6C173E6C6D157ED97FF85D6D6C4A5A6DB44A5A010701C0
+EB0FE06D01FCEBFF80010090B548C7FC021F14F8020314E09126003FFEC8FC3A3B7BB945
+>I<B8FC17F017FE717E28007FF8000F13E004007FEF3FFC717EEF07FF711380A27113C0
+7113E0A2F07FF0A219F8183FA219FCA419FEAC19FCA419F8187FA219F018FF19E04D13C0
+A24D13804D13004D5AEF3FFCEFFFF8040F13E0B912804DC7FC17F894C8FC3F397CB849>
+I<B912C0A318E03A007FF80003EE007F171F170F1707170318F01701A21700A21678A218
+78A3180016F8A21501150791B5FCA4ECF80715011500A21678181EA3183CA293C7FCA218
+7CA2187818F8A21701A2EF03F01707171F177FEE03FFB9FC18E0A337397CB83F>I<B9FC
+A318803A007FF8000F1601EE007F173F171F170FEF07C0A31703A316F0EF01E0A394C7FC
+A21501A21503150F91B5FCA4ECF80F15031501A21500A693C8FCADB7FCA433397CB83C>
+I<DB3FFCEB03800207B5EA8007023FECF00F91B6EAFC1F01039039F801FE7F010F9039C0
+003FFF4948C77E49481407D9FFF0804849804A80485B48177F4890C9123FA2485A181F48
+5AA2007F170FA34993C7FC12FFAB047FB6FCA2127F7FDC00071380A2123FA26C7EA26C7E
+A26C7F6C7F7E806C6D5CEB3FFC6D6C5C90260FFFC05B01039039FC01FE7F010090B5EAFC
+1F023FECF0070207ECC0019126003FFCC8FC403B7BB94B>I<B6D8FC0FB612C0A426007F
+F8C70007EB8000B3A391B8FCA402F8C71207B3A6B6D8FC0FB612C0A442397CB84B>I<B6
+12FCA439007FF800B3B3ADB612FCA41E397DB824>I<B7FCA426007FF8C8FCB3AC170FA4
+171EA4173EA3177E17FCA2160116031607161F16FFB812F8A430397CB839>76
+D<B500F8040FB512C06E5EA26E5ED8007FF18000A2D97BFF167BA201796D15F3A201786D
+EC01E3A36E6CEC03C3A26E6CEC0783A26E6CEC0F03A36E6C141EA26E6C143CA26E6C1478
+A36E6D13F0A26E9038C001E0A292397FE003C0A392393FF00780A292391FF80F00A29238
+0FFC1EA36F6C5AA26F6C5AA26F5BA36F5BA2705AA201FC6E5AB500FC0307B612C0A2EE1F
+00160E52397CB85B>I<B500F8020FB512C0808080C66C6D9039000FC000725A8181017B
+7F01797F01787F147F6E7E816E7F6E7F806E7F826E7F6E7F6F7E153F6F7E17806F13C06F
+13E0816F13F017F86F13FCEE7FFE163FEE1FFF18877013C77013E77013F7827013FFA283
+838383A283838383187FA201FC163FB500FC151F180F1807A242397CB84B>I<B712FEEE
+FFE017FC17FF28007FF8001F1380040313C07013E07013F0EF7FF8A2EF3FFCA218FEA818
+FCA2EF7FF8A2EFFFF04C13E04C13C0041F138091B6EAFE0017F817C002F8C9FCB3A4B612
+FCA437397CB841>80 D<B712F8EEFFC017F817FE3C007FF8001FFF8004037F707F707F71
+7EA2717EA284A760A24D5A604D5A4C5B04075BDC3FFEC8FC91B612F817C083DAF8007FEE
+3FFC707E707E82848284A584A51AC0F101E018F08219037001F813C0B600FC90387FFC07
+94393FFE0F8071B5120005075BCBEA7FF8433A7CB848>82 D<D907FF130E013FEBE01E90
+B5EAF83E0003ECFE7E3A07FC01FFFE390FF0001F4848130F48481303491301007F140090
+C8FC167E5A163EA27F161E7F7F6D91C7FC13FC387FFFE014FEECFFF06C14FE6F7E6C15E0
+6C816C816C81C681133F010F801301D9000F1480EC007F030F13C01503818100F0157FA3
+163FA27E17807E167F6C16007E6D14FE01E0495A01F813039039FF801FF800FC90B512E0
+D8F83F5CD8F00791C7FC39E0007FF02A3B7BB935>I<003FB91280A4D9F800EBF003D87F
+C09238007FC049161F007EC7150FA2007C1707A200781703A400F818E0481701A4C892C7
+FCB3AE011FB77EA43B387DB742>I<B600FC017FB5FCA426007FF8C8EA7F00183EB3B318
+7E013F167C80A2011F5EA26D6C4A5A010715036D6C4A5A6D6DEB1FC06D01E0EB7F809127
+7FFC03FFC7FC021FB55A6E14F8020114E09126001FFEC8FC403A7CB849>I<B6D8E03FB5
+00FC90383FFFFCA4000101F0C7D83FFCC8EA7E006C71153C171F6E197C017F7015786E6E
+16F8013F62856E6E1501011F4B6D5CA26E18036D4B6D5C6F17076D624D7F6F013C150F6D
+037C6D91C7FC6FEB787F6D191E05F87F6FD9F03F143E6D71133C933801E01F03F8177C02
+7F01036E137803FC497E023F600407158003FE496C1381021FEFC1E04C487E03FF16C36E
+49EDE3C0049E6D13E76E6004BE15F704FC6D13FF6E95C8FC4C80A26E5F4C143F6E5FA24C
+141F037F5E4C140F033F5EA24C1407031F5E93C812036F5E5E3A7EB863>87
+D<007FB5D8FC07B512F8A426003FFEC7D80FF0C7FC6E15C06D151F6D6D5C6F49C8FC6D6D
+137E7F6F5B6D6D485A6D1403DA7FFC5B6F485A6E6C485A6E131FEE9F806E01FFC9FC6E5B
+A26E5B6E5B80826F7E153F826F7F5D4B7F92B57EA2DA01F97FDA03F17F03F07F913807E0
+7FDA0FC07F021F6D7E4B7E4A486C7F027E8102FE7F4A6D7F49488149486D7F8249488149
+486E7E011F153F4A6E7E017F83B60107B61280A441397DB848>I<B600F80103B512E0A4
+C601FCC8380FF0006D6C16C0A26D6C4B5A6D6D4AC7FCA26D6D147E6D6D5CA26D6D495A6D
+6D495AA26D6D495A6E6C130F606E6C495A6E13804DC8FC6EEBC07E6E13E05F6EEBF1F86E
+13F9EEFBF06EEBFFE0816F5B5F816F90C9FCB3A2021FB67EA443397EB848>I<EB1FFE48
+B512E0000714F8390FF80FFE001FEB03FF6D6C7F6E7FA282157F6C5A6C5AEA01C0C8FCA2
+EC3FFF010FB5FC137F3901FFF87F00071380380FFE00EA3FF85B485A12FF5BA415FF6D5A
+127F263FF00713F83B1FF81FBFFFC0390FFFFE1F0003EBF80F39003FE0032A257DA42E>
+97 D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC9138FE03FFDAF00013804AEB7F
+C00280EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FCA3EE1FF8A217F06E133F6EEB
+7FE06E14C0903AFDF001FF80903AF8FC07FE009039F03FFFF8D9E00F13E0D9C00390C7FC
+2F3A7EB935>I<903801FFC0010F13FC017F13FFD9FF8013803803FE0048484813C0EA0F
+F8121F13F0123F6E13804848EB7F00151C92C7FC12FFA9127FA27F123FED01E06C7E1503
+6C6CEB07C06C6C14806C6C131FC69038C07E006DB45A010F13F00101138023257DA42A>
+I<EE7F80ED7FFFA4150381AF903801FF81010F13F1013F13FD9038FFC07F0003EB001FD8
+07FC1307000F8048487F5B123FA2485AA312FFAA127FA27F123FA26C6C5B000F5C6C6C5B
+6C6C4913C02701FF80FD13FE39007FFFF9011F13E1010313012F3A7DB935>I<903803FF
+80011F13F0017F13FC3901FF83FF3A03FE007F804848133F484814C0001FEC1FE05B003F
+EC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678121F6C6C14F86D
+14F000071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113E025257DA42C>
+I<EC1FF0903801FFFC010713FF90391FF87F8090383FE0FFD9FFC113C0A2481381A24813
+016E1380A2ED3E0092C7FCA8B6FCA4000390C8FCB3ABB512FEA4223A7DB91D>I<163FD9
+0FFEEBFF8090267FFFC313C048B6EACFE02607FC07130F3A0FF803FE1F3A1FF001FF0F00
+3F158F496CEB87C0007FEDC000A8003F5D6D5A001F92C7FC6C6C485A6C6C485A48B512F0
+6D13C0261E0FFEC8FC90CAFCA2123E123FA213C06CB512F8EDFF8016E06C15F86C816C81
+5A001F81393F80000F48C8138048157F5A163FA36C157F6C16006D5C6C6C495AD81FF0EB
+07FCD807FEEB3FF00001B612C06C6C91C7FC010713F02B377DA530>I<13FFB5FCA41207
+7EAFED7FC0913803FFF8020F13FE91381F03FFDA3C01138014784A7E4A14C05CA25CA291
+C7FCB3A3B5D8FC3F13FFA4303A7DB935>I<EA01F8487E487E487EA25AA37EA26C5A6C5A
+6C5AC8FCA913FF127FA412077EB3A9B512F8A4153B7DBA1B>I<13FFB5FCA412077EB3B3
+ACB512FCA4163A7DB91B>108 D<01FED97FE0EB0FFC00FF902601FFFC90383FFF800207
+01FF90B512E0DA1F81903983F03FF0DA3C00903887801F000749DACF007F00034914DE6D
+48D97FFC6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0A44C257DA453>I<01
+FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C011380000713780003497E6D4814
+C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801FFC0010F13F8017F13
+FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F81491303007F81A300FF
+1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6CB45A6C
+6CB5C7FC011F13FC010113C029257DA430>I<9039FF01FF80B5000F13F0023F13FC9138
+FE07FFDAF00113800003496C13C00280EB7FE091C713F0EE3FF8A2EE1FFCA3EE0FFEAA17
+FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07FE0091383FFFF8
+020F13E0020390C7FC91C9FCACB512FCA42F357EA435>I<9038FE03F000FFEB0FFEEC3F
+FF91387C7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00150C92C7FC91C8FCB3
+A2B512FEA422257EA427>114 D<90383FF0700003B512F0120F381FC01F383F0007007E
+1303007C130112FC14007E7E6D130013F8EBFFE06C13FEECFF806C14C06C14F06C14F812
+03C614FC131F9038007FFE140700F0130114007E157E7E157C6C14FC6C14F8EB80019038
+F007F090B512C000F8140038E01FF81F257DA426>I<130FA55BA45BA25B5BA25A120700
+1FEBFFE0B6FCA3000390C7FCB21578A815F86CEB80F014816CEBC3E090383FFFC06D1380
+903803FE001D357EB425>I<01FFEC3FC0B5EB3FFFA4000714016C80B3A35DA25DA26C5C
+6E4813E06CD9C03E13FF90387FFFFC011F13F00103138030257DA435>I<B539F001FFF8
+A4000390C7EA3F006E133E6C153CA26E137C6C15786E13F8017F5CECF001013F5CECF803
+011F5C14FC010F495AA2ECFE0F010791C7FC6E5A6D131E15BE6D13BC15FC6D5BA36E5AA2
+6E5AA26E5AA26E5AA22D257EA432>I<B500F1B538807FFFA43D07FE000FF80003E06C6C
+010715C082028015076C6E6C148002C0150F6C02071500826E485C017FED801E6E48143E
+013FD91E7F133C17C0DAF83E147C011F90393C3FE078DAFC7C14F8010FD9781F5B17F0DA
+FEF813F101079039F00FF9E002FF14FB6DD9E0075B17FF6D5E4B7EA26D496C90C7FCA202
+7F5C92C7FCA2023E147C021E147840257EA445>I<B539F01FFFF0A4000390398003F800
+6C01C013E06C14076D6C485AD93FF05B6E48C7FC90381FFC3E010F5B6D6C5AEB03FF5D6D
+5B6D5B6E7E6E7E814A7EA24A7E903801F3FFD903E37FD907C17FEB0FC049486C7E4A6C7E
+013E80496D7E49130F00016E7EB590383FFFF8A42D257EA432>I<B539F001FFF8A40003
+90C7EA3F006E133E6C153CA26E137C6C15786E13F8017F5CECF001013F5CECF803011F5C
+14FC010F495AA2ECFE0F010791C7FC6E5A6D131E15BE6D13BC15FC6D5BA36E5AA26E5AA2
+6E5AA26E5AA292C8FCA25C141E003F133E387F803C38FFC07C147814F85CEBC1E0387F87
+C0387D1F80D83FFFC9FC6C5AEA07F02D357EA432>I<003FB612C0A3D9F0031380EB8007
+49481300003E5C003C495A007C133F5D0078495A14FF5D495B5BC6485B92C7FC495A131F
+5C495A017FEB03C0EBFFF014E048EBC007481580148048130048140F5B4848131F003F14
+3F4848137F9039F003FF00B7FCA322257DA42A>I E /Fd 32 122
+df<160C161EB3B0007FBB1280BC12C0A26C1A80C9001ECAFCB3B0160C4A4A7ABD57>43
+D<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07C00F0F788E1F>46
+D<EC01E01403140F143FEB01FF131FB6FCA413E1EA0001B3B3AD007FB612FEA5274178C0
+38>49 D<903801FFC0010F13F8017F13FF48B612C048812607F80713F8260FE0017F3A1F
+80007FFE48C76C7E488001C06D138001F015C000FF807F17E081A46C5A6C5A6C5AC8FC17
+C05DA217805D17004B5AA24B5A4B5A5EEDFFC04A5B4A90C7FC4A5A15F84A5A4A5A4A5A4A
+C8FC02FEEB01E0495A495A49481303D90FC014C0495A49C7FC137E49140749140F48B7FC
+4816805A5A5A5A5AB8FC1700A42B417AC038>I<ECFFF0010713FF011F14C0017F14F049
+C66C7ED803F8EB3FFED807E06D7E81D80FF86D138013FE001F16C07FA66C5A6C4815806C
+485BC81400A24B5A4B5A5E4B5A4B5A020713800103B5C7FC15F815FF16C090C713F0ED3F
+FCED0FFEEEFF80816F13C017E0A26F13F0A217F8A3EA0FC0EA3FF0487EA2487EA217F0A2
+5D17E06C5A494913C05BD83F80491380D81FF0491300D80FFEEB7FFE6CB612F800015D6C
+6C14C0011F49C7FC010113E02D427BC038>I<163E167E16FE15011503A21507150F151F
+153FA2157F15FF5C5C15EFEC07CFEC0F8FEC1F0FA2143E147C14F8EB01F0A2EB03E0EB07
+C0EB0F80131F1400133E5B5B12015B485A485A485AA248C7FC123E5A5AB91280A5C8D81F
+FEC7FCAC91B71280A531417DC038>I<00061506D807C0147E01FEEB0FFE90B6FC5E5E5E
+5E5E93C7FC5D15F815C04AC8FC01C0C9FCAAEC7FE09038C3FFFC01CFEBFF8090B67E9138
+C07FF09039FC003FF8496D7E01E06D7E496D7E5B1780C8FC6F13C0A317E0A4EA0F80EA3F
+E0487E12FF7FA317C05B5D4915806C5A007EC7481300123E003F4A5A6C6C495AD80FE049
+5A3A07FC03FFF06CB65A6C15806C6C49C7FC011F13F0010390C8FC2B427AC038>I<B9FC
+18F818FE727E19E026001FFEC700077F05017F716C7E727E727EA2721380A37213C0A74E
+1380A21A00604E5A4E5A4E5A4D5B05075B057F138091B748C7FC18F818FF19E04AC813F8
+F03FFC72B4FC721380841AC07213E0A27213F0A21AF8A81AF0A2601AE0604E13C0604E13
+8095B5120005035BBA12F86119C04EC7FC18E045447CC350>66 D<BA12F8A485D8001F90
+C71201EF003F180F180318011800A2197E193EA3191EA21778A285A405F890C7FCA31601
+1603161F92B5FCA5ED001F160316011600A2F101E01778A2F103C0A494C7FC1907A21A80
+A2190FA2191FA2193FF17F0061601807181F4DB5FCBBFC61A443447DC34A>69
+D<BA12C0A419E0D8001F90C7120F1700183F181F180F1807180319F01801A31800A3EE01
+E01978A419001603A31607160F167F92B5FCA5ED007F160F16071603A31601A693C9FCAF
+B712F8A53D447DC346>I<B66C4AB612808181A281D8001F6D91C7003CC7FC81011E7F81
+806E7F6E7F6E7F6E7F6E7F82806E7F6F7E6F7F6F7F83816F7F6F7F6F7F6F7F707E848270
+7F707F707F707F8482707F717E7113807113C07113E019F0837113F87113FC7113FEF07F
+FF1ABC847213FC84848484A284197F193F191F190FA219071903B600C0150119001A7C1A
+3CA251447DC358>78 D<923807FFC092B512FE0207ECFFC0021F15F091267FFE0013FC90
+2601FFF0EB1FFF01070180010313C04990C76C7FD91FFC6E6C7E49486F7E49486F7E01FF
+8348496F7E48496F1380A248496F13C0A24890C96C13E0A24819F04982003F19F8A3007F
+19FC49177FA400FF19FEAD007F19FC6D17FFA3003F19F8A26D5E6C19F0A26E5D6C19E0A2
+6C6D4B13C06C19806E5D6C6D4B13006C6D4B5A6D6C4B5A6D6C4B5A6D6C4A5B6D01C00107
+5B6D01F0011F5B010101FE90B5C7FC6D90B65A023F15F8020715C002004AC8FC030713C0
+47467AC454>I<DAFFE0131C010701FE133C013F9038FF807C90B6EAE0FC4815F9489038
+801FFF3907FC00014848EB007F4848143F4848140F491407007F15035B1601160012FF17
+7CA27FA26D153C7FA201FC92C7FC6C7EEBFFE014FE6CEBFFF015FF6C15E016FC6C816C6F
+7E6C826C826C6C81011F810107811301D9000F80140003077FED007F161F701380828212
+F082A282A27EA218007EA26C5D6C5E6D14036D5D6D140701F84A5A01FFEC3FF002F8EBFF
+E0486CB65AD8FC1F92C7FCD8F80714FC48C614F0480107138031467AC43E>83
+D<903801FFE0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7E
+A26F7FA36F7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC0100
+0313E0481380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEB
+FFC03A1FFF81FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97
+D<EB7FC0B5FCA512037EB1ED0FFC92B57E02C314E002CF14F89139DFC03FFC9139FF000F
+FE02FCEB03FF4A6D13804A15C04A6D13E05CEF7FF0A218F8173FA318FCAC18F8A2177F18
+F0A3EFFFE06E15C06E5B6E491380027C491300496C495A903AFC1FC07FFC496CB512F0D9
+F00314C049C691C7FCC8EA1FF036467DC43E>I<EE03FEED07FFA5ED001F160FB1EC3FE0
+903803FFFC010FEBFF8F013F14CF9039FFF80FFF48EBC00148903880007F4890C7123F48
+48141F49140F121F485AA3127F5BA212FFAC127FA37F123FA26C6C141FA26C6C143F0007
+157F6C6C91B5FC6CD9C00314FC6C9038F01FEF6DB5128F011FEBFE0F010713F89026007F
+C0EBF80036467CC43E>100 D<EC3FF80103B57E010F14E0013F8090397FF83FF89039FF
+C007FC48496C7E48496C7E48486D1380485A001FED7FC05B003FED3FE0A2127F5B17F016
+1F12FFA290B7FCA401F0C9FCA5127FA27FA2123F17F06C7E000F15016D15E06C6C14036C
+6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE011FB55A010714F0010114C0902600
+1FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13F049B512F849EB8FFC90390FFE0FFE
+90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03F0ED00C01600ABB612F8A5C601E0C7
+FCB3B0007FEBFFF0A527467DC522>I<DAFFC013FE010F9038FC07FF013FD9FF1F138090
+B812C048D9807F133F489038003FF04848EB1FF8484890390FFC1F80001F9238FE0F0049
+010790C7FCA2003F81A8001F5DA26D130F000F5D6C6C495A6C6C495A6C6D485A4890B55A
+4892C8FC018F13FC018013C0000F90CAFCA47F7F7F90B612C016FC6CEDFF8017E06C826C
+16FC7E000382000F82D81FF0C77ED83FC014074848020113808248C9FC177FA46D15FF00
+7F17006D5C6C6C4A5A6C6C4A5AD80FFEEC3FF83B07FFC001FFF0000190B612C06C6C92C7
+FC010F14F8D9007F90C8FC32427DAC38>I<13FC48B4FC4813805A4813C0A214E0A314C0
+A26C13807E6C1300EA00FC90C7FCAAEB7FC0B5FCA512037EB3AFB6FCA518467CC520>
+105 D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC420>108
+D<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E4880913D
+87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E6D013C13
+0F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7CAC60>
+I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F00039039
+9F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E>I<EC1F
+FC49B512C0010714F0011F14FC90397FF80FFF9026FFC0017F48496C7F4848C7EA3FE000
+078248486E7E49140F001F82A2003F82491407007F82A400FF1780AA007F1700A46C6C4A
+5AA2001F5E6D141F000F5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90C7FC6DB5
+5A010F14F8010114C09026001FFCC8FC312F7DAD38>I<90397FC00FFCB590B57E02C314
+E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C04A6D13E0
+5C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E4913806E49
+13006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCADB67EA536
+407DAC3E>I<90387F807FB53881FFE0028713F0028F13F8ED8FFC91389F1FFE000313BE
+6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>
+114 D<90381FFC0790B55A000314FF120F381FF007383FC000497F48C77E127E00FE80A2
+817EA27F01E090C7FC13FC387FFFF014FF6C14C015F06C14FC6C800003806C15806C7E01
+0F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA26DEB3F80
+01E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C>I<EB01
+E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B51280B7FCA4C601E0C7FC
+B3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F006DB5FC6D13FC0101
+5B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003EC000F6C81B3A85EA2
+5EA25E6C5D6E1580017FD901F713FE9138F807E76DB512C7010F1407010313FE9026007F
+F0EBFC00372E7CAC3E>I<B6903807FFFCA5000101E09038003E006C163C6E147C017F15
+7880013F5D801601011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C06D141E15E0
+163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA2
+6E5AA26E5AA21578362C7EAB3B>I<B500FE90387FFFF0A5C601F0903803E0006D6C495A
+6D6C495A011F4AC7FC6E133E6D6C137E6D6D5A6D6D5A6DEBC1F0EDE3E06DEBF7C06EB45A
+806E90C8FC5D6E7E6E7F6E7FA24A7F4A7F8291381F3FFCEC3E1F027C7F4A6C7E01016D7F
+49486C7F4A7ED907C08049486C7F49C76C7E013E6E7E017E141FB5D8E001B512FCA5362C
+7EAB3B>120 D<B6903807FFFCA5000101E09038003E006C163C6E147C017F157880013F
+5D801601011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C06D141E15E0163E6D14
+3CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA26E5AA26E
+5AA21578A215F85D14015D001F1303D83F805B387FC007D8FFE05B140F92C9FC5C143E49
+5A007F5BEB07F06CB45A6C5B000790CAFCEA01FC36407EAB3B>I
+E /Fe 60 125 df<387801E038FC03F0EAFE07A4EAFC03AB007C13E0A2383000C0141479
+A923>34 D<000EEB01C0393F8003E0387FC007A238FFE00F00FB14C0141F00F11480A214
+3F150000FB5B147E12FF387FC0FE5CEA3F80EA0E0100005B13035CA213075C130F5CA213
+1F5C133F91C7FCA25B137E9038FE01C09038FC07F0EC0FF812019038F81FFC157C120390
+38F01E3C120713E0A2000FEB1F7C13C0001F14FC9038800FF8A2000FEB07F039070001C0
+1E347EAD23>37 D<120FEA3F8013C0A213E0A2120F1203A31207A213C0120F121FEA3F80
+EA7F005A5A12F812700B1574A823>39 D<EB0380EB0FC0131FEB3F80EBFF005BEA01F812
+03485A485A5B485AA248C7FCA2123E127EA2127CA212FCA25AA87EA2127CA2127EA2123E
+123FA26C7EA26C7E7F6C7E6C7E1201EA00FE7FEB3F80EB1FC0130FEB0380123476AD23>
+I<127012FC7E127FEA3FC0121FEA07E07F6C7E6C7E1200137EA27FA27F1480A2130FA214
+C0A21307A8130FA21480A2131FA214005BA2137EA25B1201485A485A5BEA1FC0123F48C7
+FC12FE5A127012347AAD23>I<131EA2131F131EA30070EB038000FCEB0FC000FE131F38
+FF9E7F397FDEFF80391FFFFE00000713F8000113E038007F803801FFE0000713F8001F13
+FE397FDEFF8039FF9E7FC038FE1E1F00FC130F0070EB0380000090C7FCA3131F131EA21A
+1D7CA223>I<1307497EAB003FB512C0B612F0A439000F8000AC6DC7FC1C1E7DA223>I<12
+1FEA3F80EA7FC013E0A4123F121F1207A2EA0FC0121FEA7F80EAFF005A5A12700B127488
+23>I<387FFFF8B512FCA36C13F816057A9023>I<123E127FEAFF80A5EA7F00123E090973
+8823>I<EC0380EC07C0A2140F1580141F1500A25C143E147E147C14FC5C13015CA21303
+5C13075C130F5C131F91C7FC5B133EA2137E137C13FC5B12015B12035BA212075B120F5B
+121F90C8FC5A123EA2127E127C12FC5AA212701A347CAD23>I<EB1F80EB7FE03801FFF8
+487F487F13F0380FC03F391F801F80EB000F4814C0003E1307A248EB03E0A30078130100
+F814F0AB007CEB03E0A3007E1307003E14C0A2003F130F391F801F80A2390FC03F003807
+F0FE13FF6C5B6C5B38007FE0EB1F801C2B7DA923>I<1318133C137CA213FC1201120312
+07127F12FFA2EAFE7C12FC1200B3A6387FFFFCB512FEA36C13FC172A7AA923>I<13FF00
+0313E0000F7F4813FC487F387F83FF387E007F48EB3F80141F6CEB0FC0A21407A2127C12
+38C7FC140FA21580141F143F1500147E14FE495A495A495A495A495A495A01FFC7FC485A
+EA03F8485A390FE00380391FC007C0EA3F8048B5FCB6FCA36C14801A2A7CA923>I<383F
+FFFE80A35C003EC8FCAAEB3F80383FFFE014F88080EBC0FF9038003F80003E131F123CC7
+EA0FC0A21407A2123812FEA2140FA2EC1F8048133F007EEB7F00387F81FEEA3FFF6C13F8
+6C5B000313C0C690C7FC1A2A7CA823>53 D<EB3FC03801FFF8487F487F487F391FE07F80
+393F801FC0EB000F007EEB07E0007C1303A4007E1307003E14C06CEB0F80EBC03F3907FF
+FE006C5BC613F0A2000313FC380FF0FF391F801F80393F000FC0007EEB07E0007C130300
+FC14F0481301A56C1303007EEB07E0A2393F801FC0391FE07F8090B5FC6C1400000313FC
+6C5B38003FC01C2B7DA923>56 D<123E127FEAFF80A5EA7F00123EC7FCAB123E127FEAFF
+80A5EA7F00123E091D739C23>58 D<EB0FC0A2497EA4EB3CF0A5EB7CF8A3EB7878EBF87C
+A548487EA548487EA290B5FCA2481480A3EBC00FA2000F14C0EB8007A2397FF03FF839FF
+F87FFCA3397FF03FF81E2A7EA923>65 D<B512F014FE80158015C0390F800FE014071403
+EC01F0A5140315E01407EC1FC090B5128015005C8015C09038800FE01407EC03F0140115
+F81400A5140115F01403EC0FE0B6FC15C01580150014FC1D297EA823>I<90380FE0E090
+383FF9F0EBFFFD4813FF5A3807FC3F380FF00F381FC007A2383F80031300481301127EA2
+007CEB00E000FC1400A25AA97EA2127C007E14E0EC01F0127F7EEB8003EA1FC0EC07E038
+0FF00F3907FC1FC06CB512806C14006C5BEB3FF8EB0FE01C2B7DA923>I<387FFFF0B512
+FC80806C1480390F803FC0141FEC07E0A2EC03F0140115F81400A315FC157CAA15F8A314
+0115F01403A2EC07E0EC0FC0143F007FB51280B612005C5C6C13F01E297FA823>I<007F
+B512F8B612FCA37E3907C0007CA515381500A2141C143EA3EBFFFEA5EBC03EA3141C91C7
+FCA3150E151FA6007FB6FCB7FCA36C14FE20297FA823>I<007FB512F8B612FCA37E3907
+C0007CA515381500A31438147CA3EBFFFCA5EBC07CA3143891C7FCA9EA7FFEB5FCA36C5A
+1E297EA823>I<90381F838090387FE7C048B5FC5A5A380FF87FEBE03F381FC01F138038
+3F000FA2007E1307A2127CEC038000FC90C7FCA25AA6ECFFF04913F8A212FC6D13F0007C
+EB07C0A2007E130FA27E141FEA1F80EBC03FEA0FE0EBF07F6CB5FC7E7E39007FE3809038
+1F80001D2B7DA923>I<007FB5FCB61280A36C1400D8003EC7FCB3AD007FB5FCB61280A3
+6C140019297BA823>73 D<EA7FFFB5FCA37EEA07C0B3A6157CA7007FB512FCB6FCA36C14
+F81E297EA823>76 D<39FFC03FFCA213E0A213F0390F7003C0A213781338A2133CA2131C
+131EA2130E130FA3EB0783A3EB03C3A3130114E3A2130014F3A21473A2147B143BA238FF
+F03F141FA2140F15801E297EA823>78 D<387FFFFCB6FC158015C06C14E03907C00FF0EC
+03F81401140015FC157CA515FC15F814011403EC0FF090B512E015C01580150014FC01C0
+C7FCABEA7FFC487EA36C5A1E297FA823>80 D<B57E14F08014FEA2380F80FFEC3F80141F
+EC0FC01407A5140FEC1F80143FECFF00EBFFFEA214F880801380147F8080A6150E151FA2
+159FD8FFF813BFEC0FFF15FE1407EC03FCC7EA01F0202A7EA823>82
+D<EBFF070003EBC780000F13FF5A5AEA7F81387E007F00FE133F48131F5AA2140FA26CEB
+070091C7FC127E127FEA3FE013FE381FFFE000077F6C13FC38003FFEEB03FF9038007F80
+141FA2EC0FC0A20070130712F8A36C130FA26CEB1F806C133F9038E07F0090B5FC5C5C00
+F113F038703FC01A2B7CA923>I<007FB512F8B612FCA439F807C07CA500701438000014
+00B3A7EBFFFE487FA36C5B1E297EA823>I<39FFC003FF6D5AA3497E003CC7123CA26C14
+78A86C14F0EB07E0EB0FF0A5EB1E78A2000714E0EB9E79A2EB9C39A2EBBC3DA3000314C0
+EBB81DA3EBF81FA2EBF00FA200011480EBE007202A7FA823>87 D<397FF0FFE06D13F0A3
+4913E03907E03E001203EBF07E0001137CEBF8FC00005B13FDEB7DF0137F6D5AA26D5AA2
+6D5AA2497EA280133F80137DEB7CF813F8147CEA01F0801203EBE03F00077F01C0138000
+0F130F397FF03FF800FFEB7FFCA3007FEB3FF81E297EA823>I<387FFF80B512C0A31480
+00F8C7FCB3B3A6B5128014C0A36C1380123472AD23>91 D<127012F8A27E127C127E123E
+A2123F7E7F120F7F12077F1203A27F12017F12007F137C137E133EA2133F7F80130F8013
+07801303801301A280130080147C147E143E143F80A21580140F15C01407A2EC03801A34
+7CAD23>I<387FFF80B512C0A37EEA0007B3B3A6EA7FFFB5FCA36C138012347EAD23>I<EA
+07FE381FFFC0487F4813F8A2EB03FCEB00FE003E137EC7123EA2EB03FE13FF1203120F12
+3F387FE03EEAFF0012FCA25A147E7E6C13FEEA7F0390B512F86C14FC7E6C131F3903FC07
+F81E1D7C9C23>97 D<EA7FC0487EA3127F1203A714FE9038E3FF8001EF13E090B512F015
+F8EC07FCEBFC019038F800FE49137E153E49133FA2151FA5153F7F157E7F15FE9038FC01
+FC9038FF07F814FF15F001EF13C001E713803901C1FC00202980A823>I<EB3FF0EBFFFC
+000313FF5A5A381FE07FEA3F80387F003E007E90C7FCA25AA25AA57EA2007E1307007FEB
+0F80141FEA3FC0391FF03F006CB5FC6C5B6C5BC613F0EB3FC0191D7B9C23>I<ECFF8049
+13C0A37F1407A7EB7F873801FFE74813F7000F13FF5A13E0383F803F387F001F007E130F
+A2481307A25AA56C130FA2127C007E131F007F133F383F807FEBE0FF6CB512FE6C14FF6C
+13F7000113C739007F03FE20297EA823>I<EB3FC0EBFFF000037F4813FE487FEA1FE039
+3F803F80387F001F007E130F15C05AB6FCA4158000F8C8FC7EA2007EEB0380007FEB07C0
+383F800F13C0391FF83F806CB5FC6C14006C13FCC65BEB1FC01A1D7C9C23>I<147F9038
+01FFC0010713E05B5BEB3FCF140F90383E07C091C7FCA4007FB51280B612C0A36C1480D8
+003EC7FCB3007FB5FCA51B297EA823>I<EC01F090383F07FC9038FFDFFE000313FF5A48
+147E381FE1FE9038807E18393F003F00A2003E7FA4003F5BA2381F807EEBE1FE6CB45A48
+5B5C001E13C0013FC7FC90C8FC121F1340380FFFFCECFF804814C04814F0397F0007F800
+7C130048147CA248143CA36C147C6C14FC007FEB03F8EBE01F6CB512F0000F14C06C1480
+0001EBFE0038003FF01F2E7E9D23>I<EA7FC0487EA3127F1203A714FE9038E3FF8001EF
+7F90B57EA2EC07F0EBFC03EBF80113F0A313E0AD3A7FFF0FFF80B5009F13C0A36C010F13
+80222980A823>I<131C137FA5131C90C8FCA6EA3FFE487EA37EEA001FB3007FB51280B6
+12C0A36C14801A2A7BA923>I<EA7F80487EA3127F1203A79038C1FFFC15FEA315FC9038
+C03F00147E5CEBC1F8EBC3F0EBC7E0EBCFC013DFEBFFE08013FDEBF8F8497EEBE07EEBC0
+3E801580140FEC07C0397FFE1FFEB5EA3FFFA3397FFE1FFE20297FA823>107
+D<EA7FFEB5FCA37EEA001FB3AD007FB512C0B612E0A36C14C01B297CA823>I<397E1F01
+F039FF7FC7FC9038FFEFFE14FF6C80390FE1FE1FEBC1FC01C07FEB80F8A2EB00F0AE3A7F
+E1FE1FE03AFFF3FF3FF0A33A7FE1FE1FE0241D819C23>I<387FC0FE39FFE3FF8001EF7F
+90B57E7E0003EB07F0EBFC03EBF80113F0A313E0AD3A7FFF0FFF80B5009F13C0A36C010F
+1380221D809C23>I<133F3801FFE0487F487F487F381FC0FE383F807F383E001F007E14
+80007C130F00FC14C0481307A66C130FA2007C1480007E131F6CEB3F006D5A381FE1FE6C
+B45A6C5B6C5B6C5BD8003FC7FC1A1D7C9C23>I<387FC0FE39FFE3FF8001EF13E090B512
+F06C14F80003EB07FCEBFC019038F800FE49137E153E49133FA2151FA5153F7F157E7F15
+FE9038FC01FC9038FF07F814FF15F001EF13C001E713809038E1FC0001E0C7FCAAEA7FFF
+B57EA36C90C7FC202C809C23>I<397FF01FE039FFF87FF8ECFFFC13FB6CB5FCC613F0EC
+C078EC800091C7FC5BA25BA35BAA387FFFFCB57EA36C5B1E1D7E9C23>114
+D<3801FF38000F13FC5A127FA2EAFF01EAFC0048137CA26C13386C1300EA7FF0383FFF80
+000F13E06C13F838007FFCEB01FEEB007F0070133F00F8131F7E143F7E38FF80FFEBFFFE
+14FC14F814F000701380181D7B9C23>I<137013F8A7007FB5FCB61280A36C1400D800F8
+C7FCACEC01C0EC03E0A3EBFC07140F9038FE1FC0EB7FFF158090383FFE00EB0FFCEB07F0
+1B257EA423>I<397FC03FE0486C487EA3007F133F00031301B014031407EBF01F90B612
+806C15C0A238007FF9D91FE01380221D809C23>I<39FFF03FFCEBF87FA3EBF03F390780
+0780A33903C00F00A33801E01EA3EBF03E0000133CA2EBF87CEB7878A2EB7CF8EB3CF0A2
+133F6D5AA36D5A6D5A1E1D7E9C23>I<397FF81FFE39FFFC3FFFA3397FF81FFE000FC712
+F0A639078001E0EB83E1EB87F1A3138F3903CF79C0A2147B13DFA213DE0001EB3B80EBFE
+3FA3EBFC1F3900F80F00201D7F9C23>I<397FF87FF000FFEBFFF8A3007FEB7FF03903E0
+3E003801F03C3800F87CEB78F8EB7CF0EB3FE0131F6D5A5C1307497E497E133DEB3CF0EB
+7878EBF07C0001133C497E3803C01F397FF03FF839FFF87FFCA3397FF03FF81E1D7E9C23
+>I<39FFF03FFCEBF87FA3EBF03F390780078013C01203EC0F0013E01201141EEA00F0A2
+143EEB783CA36D5AA2131CEB1E7014F0130EEB0FE0A213075C1303A2495AA349C7FCA2EA
+3E1FEA7F1E133EEA7C7CEA7FFC5B6C5A6C5AEA0F801E2C7E9C23>I<127812FCB3B3AE12
+78063472AD23>124 D E /Ff 32 122 df<123C127E12FFA4127E123C08087A8714>46
+D<123C127E12FFA4127E123C1200AD123C127E12FFA4127E123C081D7A9C14>58
+D<DA1FF013C09138FFFE01903903F00F8390390F8001E3013FC71277017C143F4848141F
+4848140F48481407A248481403121F491401123F90C8FC481500A300FE1600AB127F17C0
+A27E7F001F15016D1580120F6C6C1403EE07006C6C14066C6C140ED8007C5C013F147890
+390F8001E0903903F00FC0902600FFFEC7FCEC1FF02A2F7CAD33>67
+D<B712F8A23903F8000700011400167C163C161CA2160CA3160E16061560A21600A315E0
+A2140390B5FCA2EBF8031400A21560A592C7FCAB487EB512F8A2272D7DAC2E>70
+D<DA1FF013C09138FFFE01903903F00F8390390F8001E3013FC71277017C143F4848141F
+4848140F48481407A248481403121F491401123F90C8FC481500A300FE1600A992381FFF
+FEA2007F9138001FE0EE0FC0A27E7F121F7F120F6C7EA26C7E6C6C141FEA007C013F143F
+D90F8013F3903903F007C10100B51200DA1FF813002F2F7CAD37>I<B539F03FFFFCA2D8
+03FCC713006C48147EB290B612FEA201F8C7127EB3486C14FFB5D8F03F13FCA22E2D7DAC
+35>I<B512F8A2D803FCC8FC6C5AB3A71618A41630A41670A216F015011503ED07E00003
+143FB7FCA2252D7DAC2C>76 D<B612F815FF3A03F8001FC00001EC07E0ED01F016F8ED00
+FC16FE167E167FA6167E16FE16FCED01F816F0ED07E0ED1FC090B6120015F801F8C8FCB2
+487EB512F0A2282D7DAC30>80 D<B612C015FC3903F8007F0001EC0FC06F7E6F7E6F7E82
+150082A55E15015E4B5A4B5A4B5A037FC7FC90B512FC15F09038F800FC153E6F7E150F82
+6F7EA582A5170316F815031707486C903801FC0EB539F000FE1CEE3FF8C9EA07E0302E7D
+AC34>82 D<007FB712E0A29039001F800F007C150300701500A200601660A200E01670A2
+481630A5C71500B3A94A7E013FB512C0A22C2D7DAC33>84 D<B539F003FFFCA2D803FCC7
+EA3FC06C48EC0F001606B3AB160E0000150C7F161C017C1418017E14386D5C6D14609039
+0F8001E0903907E00380902601F80FC7FC9038007FFCEC0FF02E2E7DAC35>I<13FF0007
+13C0380F01F0381C00F8003F137C80A2143F001E7FC7FCA4EB07FF137F3801FE1FEA07F0
+EA1FC0EA3F80EA7F00127E00FE14065AA3143F7E007E137F007FEBEF8C391F83C7FC390F
+FF03F83901FC01E01F207D9E23>97 D<EA07C012FFA2120F1207AC14FE9038C7FF809038
+CF03E09038DC01F89038F8007C49137E49133E497F1680A2150F16C0A9ED1F80A216005D
+6D133E6D5B01B05B9038BC01F090380E07E0390607FF80260001FCC7FC222F7EAD27>I<
+EB1FE0EB7FFC3801F01E3803E0073907C01F80EA0F80EA1F005A003EEB0F00007E90C7FC
+A2127C12FCA9127EA215C07E6C130101801380380FC0033907E007003801F01E38007FF8
+EB1FE01A207E9E1F>I<15F8141FA214011400ACEB0FE0EB7FF83801F81E3803E0073807
+C003380F8001EA1F00481300123E127EA25AA9127C127EA2003E13017EEB8003000F1307
+3907E00EFC3A01F03CFFC038007FF090391FC0F800222F7EAD27>I<EB1F80EBFFF03801
+E0783807C03E380F801E381F001FEC0F80123E007E130715C0127C12FCA3B6FCA200FCC8
+FCA4127C127EA2003E14C0123F6C1301390F80038001C013003803E00F3801F03C38007F
+F8EB1FC01A207E9E1F>I<EB03F0EB0FFCEB3E1EEB7C3F13F8EA01F0A23803E00C1400AA
+B512E0A23803E000B3A6487E387FFF80A2182F7FAE16>I<013F13F89038FFC3FE3903E1
+FF1E3807807C000F140C391F003E00A2003E7FA76C133EA26C6C5A00071378380FE1F038
+0CFFC0D81C3FC7FC90C8FCA3121E121F380FFFF814FF6C14C04814F0391E0007F8481300
+48147C12F848143CA46C147C007C14F86CEB01F06CEB03E03907E01F803901FFFE003800
+3FF01F2D7E9D23>I<EA07C012FFA2120F1207AC14FE9038C3FF809038C703E09038DE01
+F013F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2222E7EAD27>I<1207EA1FC0A212
+3FA2121FA2EA0700C7FCA8EA07C012FFA2120F1207B3A5EA0FE0EAFFFEA20F2E7EAD14>
+I<EA07C012FFA2120F1207B3B3A3EA0FE0EAFFFEA20F2E7EAD14>108
+D<2607C07FEB07F03BFFC3FFC03FFC903AC783F0783F3C0FCE01F8E01F803B07DC00F9C0
+0F01F8D9FF8013C04990387F000749137EA249137CB2486C01FEEB0FE03CFFFE0FFFE0FF
+FEA2371E7E9D3C>I<3807C0FE39FFC3FF809038C703E0390FDE01F0EA07F8496C7EA25B
+A25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>I<EB1FE0EB7FF83801F03E3803C00F39
+07800780390F0003C04814E0003EEB01F0A248EB00F8A300FC14FCA9007C14F8A26CEB01
+F0A26CEB03E0A2390F8007C03907C00F803901F03E0038007FF8EB1FE01E207E9E23>I<
+3807C0FE39FFC7FF809038CF03E0390FDC01F83907F800FC49137E49133E49133FED1F80
+A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC01F09038CE07E09038C7FF80
+D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>I<380F81F038FF87FCEB9E7EEA0F
+98EA07B813B0EBF03CEBE000A35BB1487EB5FCA2171E7E9D1B>114
+D<3801FE183807FFB8381F01F8EA3C00481378481338A21418A27E7EB41300EA7FF06CB4
+FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA27EA26C133CA26C13
+7838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A312011203A21207121FB5
+12F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F80152A7FA81B>I<
+D807C013F800FF131FA2000F130100071300B21401A314033803E007EC0EFC3A01F81CFF
+C038007FF890391FE0F800221F7E9D27>I<3AFFFC01FFC0A23A0FE000FE000007147C15
+38000314306D137000011460A26C6C5BA2EBFC01017C5BA26D48C7FCA2EB3F07EB1F06A2
+EB0F8CA214DCEB07D8A2EB03F0A26D5AA36D5A221E7F9C25>I<3BFFFC3FFE0FFFA23B0F
+E003F001F8D807C09038E000F0020114E001E07F0003010314C0A2D801F09038F80180EC
+0678A2D800F890387C0300EC0C3CA290397C1C3E06EC181EA290393E381F0CEC300F168C
+90391F600798A216F86D486C5AA36D486C5AA201035C91C7FC301E7F9C33>I<3AFFFC01
+FFC0A23A0FF000FE006C48137C000314385D6C7E15606D13E000005CA290387C0180A2EB
+7E03013E90C7FCA2EB1F06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5AA2495AA213
+0391C8FC1278EAFC06A25B131CEA7838EA7070EA3FE0EA0F80222B7F9C25>121
+D E /Fg 3 52 df<137013F0120312FF12FC1200B3A7487E387FFFE0A213217BA01E>49
+D<EA01FC3807FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2147C1278003013
+FCC7FC14F8A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C00CEA0380380600
+185A5A383FFFF85AB512F0A216217CA01E>I<13FF000313C0380F03E0381C00F014F800
+3E13FC147CA2121E000C13FCC712F8A2EB01F0EB03E0EB07C0EBFF00A2EB03E0EB00F014
+78147C143E143F1230127812FCA2143E48137E0060137C003813F8381E03F0380FFFC000
+01130018227DA01E>I E /Fh 11 117 df<EB01F8EB07FC90381F0E3890383E07FCEB7C
+0313F8EA01F000036D5AEA07E0120FEBC003001F5C1380123F1407007F5C1300A2140F48
+5C5AA2141F5D48EC81C0A2EC3F83ED0380A2147F1507007C01FF13005BD83C03130E393E
+079F1E391F0E0F1C390FFC07F83901F001E0222677A42A>97 D<ED03F0EC01FFA3EC0007
+16E0A2150FA216C0A2151FA21680A2153FA21600A25DA2903801F87EEB07FC90381F0EFE
+EB3E07496C5A13F8EA01F000031301D807E05B120FEBC003121F01805B123F1407127F01
+005BA2140F5A485CA2141FA248EC81C0A2EC3F8316801503147F1507007C01FF13005BD8
+3C03130E393E079F1E391F0E0F1C390FFC07F83901F001E0243B77B92A>100
+D<147F903803FFC090380FC1E090383F00F0017E13785B485A485A485A120F4913F8001F
+14F0383F8001EC07E0EC1F80397F81FF00EBFFF8148090C8FC5A5AA55AA21530007C1438
+1578007E14F0003EEB01E0EC03C06CEB0F806CEB3E003807C0F83803FFE0C66CC7FC1D26
+77A426>I<EC07C0EC3FF09138FC38E0903901F01FF0EB03E0903807C00FEB0F80011F13
+07D93F0013E05B017E130F13FE4914C01201151F1203491480A2153F1207491400A25DA2
+49137EA215FEA25D00031301140314076C6C485A0000131FEB787BEB3FF390380FC3F0EB
+00031407A25DA2140F5D121C007E131F5D00FE49C7FC147E5C387801F8387C07E0381FFF
+80D803FEC8FC24367CA426>103 D<EB01C0EB07E014F0130F14E01307EB038090C7FCAB
+EA01F0EA03FCEA0F1EEA0E1F121C123C12385B1270A25BEAF07E12E013FEC65AA212015B
+1203A25B12075BA2000F13E013C013C1001F13C01381A2EB8380130313071400130EEA0F
+1EEA07F8EA01F0143879B619>105 D<EB0FC0EA07FFA3EA001F1480A2133FA21400A25B
+A2137EA213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121FA25BA2123F
+A290C7FCA25AA2EA7E0EA212FE131EEAFC1CA35BA21378EA7C70EA3CF0EA1FE0EA078012
+3B79B915>108 D<D801E001FEEB07E03C07F803FF803FF83C0E3C0F07C0F87E3C1E3E3C
+03E1E03E261C3F789038F3C01F00389039F001F78002E0EBFF00007801C049148000705D
+14804A4848EB3F00EAF07FD8E07E5CA2000002075C01FE167E495CA2030F14FE00015F49
+5C1701031F5C120349DA8003131C18F0033F153C00070407133849020013E019784B1570
+000F17C049017E15E018C103FE15C0001F933803C7804949903801FF000007C70038EB00
+7C3E2679A444>I<903907800F8090391FE03FF0903938F070F8903978F9E07C903970FF
+C03C49EB803E1500000149133F13C05C13C11203EB81F8A2D80003147FA25CA2010714FF
+A24A13FEA2010F130116FC14C016F8011F130316F0EC800716E0013FEB0FC002C01380ED
+1F00153E496C5AEC70F890387E3FE0EC1F8001FEC8FCA25BA21201A25BA21203A25B1207
+B512C0A328357FA42A>112 D<3901E003F03907F80FFC390E3C3C0F381E3E783A1C3FF0
+3F80003813E014C00078018013001270EC001C92C7FCEAF07FEAE07EA2120013FE5BA312
+015BA312035BA312075BA3120F5BA3121F5B0007C9FC212679A423>114
+D<14FE903807FF8090380F83C090383E00E04913F00178137001F813F00001130313F0A2
+15E00003EB01C06DC7FC7FEBFFC06C13F814FE6C7F6D13807F010F13C01300143F141F14
+0F123E127E00FE1480A348EB1F0012E06C133E00705B6C5B381E03E06CB45AD801FEC7FC
+1C267AA422>I<EB0380EB07C0130FA4131F1480A3133F1400A35B137E007FB5FCA2B6FC
+3800FC00A312015BA312035BA312075BA3120F5BA3121FEB801CA2143C003F1338EB0078
+147014F014E0EB01C01303381F0780380F0F00EA07FCEA01F0183579B31C>I
+E /Fi 3 52 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>
+49 D<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7
+FC15005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA01803903
+00030012065A001FB5FC5A485BB5FCA219267DA521>I<13FF000313E0380F01F8381C00
+7C0030137E003C133E007E133FA4123CC7123E147E147C5C495AEB07E0EBFF8091C7FCEB
+01E0EB00F8147C80143F801580A21238127C12FEA21500485B0078133E00705B6C5B380F
+01F06CB45AC690C7FC19277DA521>I E /Fj 69 126 df<007FB712C0B812E0A36C16C0
+2B0580982C>21 D<003C131E007F137F481480A66C1400A6007E7FA6003E133EA3003C13
+1E001C131C191977B32C>34 D<0107131C90380F803EA8011F137EEC007CA4003FB612E0
+B712F8A43A003E00F800A2EB7E01017C5BA8EBFC0301F85BA2B712F8A4003F15E03A01F0
+07C000A30003130F01E05BA86C486CC7FC25337DB22C>I<EB01C0497EA6EB0FFC90387F
+FF8048B512E00007804880391FFBEFFC393FC3E1FE903803E07F007E80127C00FC158012
+F8157FA300FCEC3F00A2007E91C7FC127FEA3FC313F3EA1FFF6C13FC6C13FF000114C06C
+6C7F011F13F801037F14E7ECE1FEECE07F81001880007E1580150F12FFA312FE151F1600
+007E5C007F143ED83F8313FE9038C3E1FC391FFBEFF86CB55A6C5C6C5CC691C7FCEB1FF8
+EB03E0A66D5A21417BB92C>I<EA0F80EA1FC0EA3FE013F0A213F8A2121F120F1200A412
+0113F0A2120313E01207EA0FC0121FEA3F80EA7F0012FE5A5A12700D1B71B22C>39
+D<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB7F0013FE485A485A5B12075B120F
+5B485AA2123F90C7FCA25A127EA312FE5AAC7E127EA3127F7EA27F121FA26C7E7F12077F
+12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB03FC130113001438164272B92C>
+I<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E137F7F1480131F14C0130FEB07E0
+A214F01303A214F81301A314FC1300AC130114F8A3130314F0A2130714E0A2EB0FC0131F
+1480133F14005B13FE485A485A485A485AEA3FC0485A48C7FC5A5A1270164279B92C>I<
+EB01C0497EA600101404007C141F007E5CD8FF83EBFF80267FE3E31300EBF3E7001FB512
+FC000714F06C5CC61480D93FFEC7FCA290B57E000314E04880001F14FC397FF3E7FFEBE3
+E326FF83E01380D87E03EB3F00007C8000101404000091C7FCA66D5A21247BAA2C>I<14
+7014F8AF003FB612E0B712F8A4C700F8C7FCB0147025267DAB2C>I<007FB512F0B612F8
+A36C14F01D0579942C>45 D<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B70
+8A2C>I<1507ED0F80A2151F16005D153E157E157CA215FC5D14015D14035D14075D140F
+5D141F92C7FC5C143EA2147E147C14FC5C13015C13035C13075C130F5C131F91C8FC5B13
+3EA2137E137C13FC5B12015B12035B12075B120F5B121F90C9FCA25A123E127E127C12FC
+5AA2127021417BB92C>I<EB03F8EB0FFE90383FFF80497F90B57E3901FE0FF03903F803
+F848486C7EEBE0004848137EA248487FA248C7EA1F80A2003E140F007E15C0A3007C1407
+00FC15E0AC6C140F007E15C0A46CEC1F80A36C6CEB3F00A26C6C137E6D13FE00075CEBF0
+016C6C485A3901FE0FF06CB55A6D5B6D5BD90FFEC7FCEB03F823357CB32C>I<1307497E
+A2131F133FA2137F13FF5A1207127FB5FC13DF131F12FC1200B3AE007FB512E0B612F0A3
+6C14E01C3477B32C>I<EB0FF890387FFF8048B512E00007804814FC391FF80FFE393FE0
+01FF903880007F48C7EA3F80007E141F00FE15C0150F6C15E01507A3127E123CC8FCA215
+0F16C0151F1680153F16005D15FE4A5A14034A5A4A5A4A5A4A5AECFF804948C7FC495A49
+5A495AEB3FE0EB7F8049C8FC485A4848EB03C04848EB07E0EA1FE0485A48B6FCB7FCA36C
+15C023347CB32C>I<000FB512FE4880A35D0180C8FCADEB83FE90389FFFC090B57E15F8
+819038FE03FE9038F000FF497F0180EB3F80151F6CC713C0C8120FA2ED07E0A4123C127E
+B4FC150F16C0A248141F007EEC3F80007FEC7F006C6C5B6D485A391FF80FFC6CB55A6C5C
+000114C06C6C90C7FCEB0FF823347CB22C>53 D<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA
+3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>58
+D<EA0F80EA1FC0EA3FE0EA7FF0A5EA3FE0EA1FC0EA0F80C7FCAEEA0F80EA1FE0EA3FF0EA
+7FF8A213FCA3123F121F120F120013F8A21201EA03F01207EA1FE0EA7FC0EAFF80130012
+FC12700E3071A32C>I<007FB612F0B712F8A36C15F0CAFCA8007FB612F0B712F8A36C15
+F025127DA12C>61 D<EB3FFE0003B512C0000F14F04814FC4880397FE007FF90C7FC00FE
+EC3F806C141FA3153F007EEC7F00003C5CC7EA03FEEC0FFC4A5AEC3FE04A5A4AC7FC495A
+495A5C13075C130F5CA76D5A90C9FCA8EB0380EB0FE0A2497EA36D5AA2EB038021337BB2
+2C>63 D<EC7F80903803FFE0010F7F013F7F497F9038FFC0FE3901FE007FD803F87F4848
+EB1F809038E007CF390FC01FFF261F807F13C091B5FC485A393E01FC7F903903F01FE012
+7E397C07E00FECC007A2EAFC0F00F8EB8003A900FCEBC007D87C0714C0A2ECE00F3A7E03
+F01F80123E903901FC7F00393F00FFFE6C7E6E5A390FC01FF03907E007C09039F00007C0
+6C6CEB0FE0D801FE131F3900FFC0FF6DB512C06D1480010FEBFE00010313F89038007FC0
+23337CB22C>I<14FE497EA4497FA214EFA301077FA214C7A2010F7FA490381F83F0A590
+383F01F8A4017F7FEB7E00A449137E90B512FEA34880A29038F8003FA30003158049131F
+A3000715C049130FD87FFEEBFFFC6D5AB514FE6C15FC497E27347EB32C>I<007FB512E0
+15F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2ED01F8A6ED03F0A21507ED0FE0
+ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED07F0ED03F81501ED00FCA216FE
+167EA616FE16FC1501ED03F8150FED3FF0007FB612E016C0B712806CECFE0015F027337F
+B22C>I<02FF13700107EBE0F84913F9013F13FD4913FFEBFF813901FE007F4848131FD8
+07F0130F1507485A491303485A150148C7FCA25A007EEC00F01600A212FE5AAB7E127EA3
+007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C130716E0D803FC131F6C6CEB3FC03A
+00FF81FF806DB512006D5B010F5B6D13F00100138025357DB32C>I<007FB612F0B712F8
+A37E3903F00001A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA5163C
+167EA8007FB612FEB7FCA36C15FC27337EB22C>69 D<007FB612F8B712FCA37ED803F0C7
+FCA716781600A515F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26
+337EB22C>I<903901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC0149
+7E4848137F4848133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8
+913803FFF84A13FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F
+6C7E6C6C13FF6D5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB3
+2C>I<D87FFEEBFFFCB54813FEA36C486C13FCD807E0EB0FC0B190B6FCA59038E0000FB3
+D87FFEEBFFFCB54813FEA36C486C13FC27337EB22C>I<387FFFE0B57EA36C5BD803F0C8
+FCB3AE16F0ED01F8A8007FB6FCB7FCA36C15F025337DB22C>76 D<D87FE0EB0FFC486CEB
+1FFEA26D133F007F15FC000F15E001BC137BA4019E13F3A3EB9F01A2018F13E3A21483A2
+018713C314C7A201831383A214EFA201811303A214FFEB80FEA3147C14381400ACD87FF0
+EB1FFC486CEB3FFEA36C48EB1FFC27337EB22C>I<3A7FF001FFF0486C4813F8A213FC00
+7F6D13F000079038001F0013DEA313CFA3148013C7A214C0A213C314E0A213C114F0A213
+C014F8A31478147CA2143C143EA2141E141FA2140FA2159F1407A3EC03DFA36EB4FCEA7F
+FCEAFFFE80A26C48137E25337DB22C>I<007FB512C0B612F88115FF6C15802603F00013
+C0153FED0FE0ED07F0A2150316F81501A6150316F01507A2ED0FE0ED3FC015FF90B61280
+160015FC5D15C001F0C8FCB0387FFF80B57EA36C5B25337EB22C>80
+D<387FFFFCB67E8115F06C803907E00FFCEC01FE1400157F8182151FA6153F93C7FC5D15
+FE1401EC0FFC90B55A5D15C081819038E00FF8EC03FC14016E7E157EA8160FEE1F80A415
+3FD87FFEEC3F00B514FF6F5A150F6C486D5AC8EA01F029347EB22C>82
+D<90381FF00E9038FFFE1F48EBFF9F000714FF5A381FF01F383FC007EB800148C7FC127E
+00FE805A81A46C141E007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC0003EBFFC06C14
+F06C6C7F01077F9038007FFEEC07FF02001380153FED1FC0A2ED0FE0A20078140712FCA5
+6CEC0FC0A26CEC1F806D133F01E0EB7F009038FE01FF90B55A5D00F914F0D8F83F13C0D8
+700790C7FC23357CB32C>I<007FB612FCB712FEA43AFC007E007EA70078153CC71400B3
+AF90383FFFFCA2497F6D5BA227337EB22C>I<D87FF8EB0FFF00FF16806D5B497F007F16
+00001FC8127CA36D14FC000F5DA76C6C495AA4143E147FA33A03E0FF83E0A214F7A301E1
+13C3A200015D14E301F113C701F313E7A314C1A200005DA201F713F7A21480A201FF13FF
+017F91C7FC4A7EA4013E133E29347FB22C>87 D<3A3FFF03FFE048018713F0A36C010313
+E03A01F800FE006D5B0000130101FE5BEB7E03017F5B133F1487011F5B14CF010F5B14FF
+6D5BA26D90C7FCA26D5AA26D5AA2497EA2497EA2497F81EB0FCF81EB1FC7EC87F0EB3F83
+EC03F8EB7F01017E7FEBFE00497F157E4848137F810003158049131FD87FFEEBFFFC6D5A
+B514FE6C15FC497E27337EB22C>I<387FFFFCB512FEA314FC00FCC7FCB3B3B3B512FC14
+FEA36C13FC17416FB92C>91 D<127012F8A27E127C127E123E123F7EA27F120F7F12077F
+12037F12017F12007F137C137E133EA2133F7F80130F8013078013038013018013008014
+7C147E143EA2143F8081140F81140781140381140181140081157CA2157E153E153F8116
+80150FA2ED070021417BB92C>I<387FFFFCB512FEA37EC7127EB3B3B3387FFFFEB5FCA3
+6C13FC17417DB92C>I<007FB6FCB71280A46C150021067B7D2C>95
+D<3801FFF0000713FE001F6D7E15E048809038C01FF81407EC01FC381F80000006C77EC8
+127EA3ECFFFE131F90B5FC1203120F48EB807E383FF800EA7FC090C7FC12FE5AA47E007F
+14FEEB8003383FE01F6CB612FC6C15FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>
+97 D<EA7FF0487EA3127F1201AAEC1FE0ECFFF801F913FE90B6FC16809138F07FC09138
+C01FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13
+036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813F83900F03FC027
+337FB22C>I<903803FFE0011F13F8017F13FE48B5FC48804848C6FCEA0FF0485A49137E
+4848131890C9FC5A127EA25AA8127EA2127F6C140F6DEB1F806C7E6D133F6C6CEB7F0039
+07FE03FF6CB55A6C5C6C6C5B011F13E0010390C7FC21247AA32C>I<EC0FFE4A7EA380EC
+003FAAEB07F8EB3FFE90B512BF4814FF5A3807FC0F380FF00348487E497E48487F90C7FC
+007E80A212FE5AA87E007E5CA2007F5C6C7E5C6C6C5A380FF0073807FC1F6CB612FC6CEC
+BFFE6C143FEB3FFC90390FF01FFC27337DB22C>I<EB03FE90381FFFC0017F13F048B57E
+48803907FE03FE390FF800FFD81FE0EB3F805B4848EB1FC090C7120F5A007E15E015075A
+B7FCA416C000FCC9FC7E127EA2127F6CEC03C06DEB07E06C7ED80FF0130F6C6CEB3FC001
+FF13FF000190B512806C1500013F13FC010F13F00101138023247CA32C>I<EC0FF8EC3F
+FE91B5FC4914805B903807FC7F14F090390FE03F0014C092C7FCA6007FB512FEB7FCA36C
+5C26000FC0C7FCB3A8007FB512F8B67EA36C5C21337DB22C>I<ED03F8903907F80FFC90
+391FFE3FFE017FB6FC48B7FC48ECFE7F9038FC0FF82607F003133E3A0FE001FC1CD9C000
+1300001F8049137EA66D13FE000F5CEBE0016C6C485A3903FC0FF048B5FC5D481480D99F
+FEC7FCEB87F80180C8FCA37F6C7E90B512F06C14FE48ECFF804815E04815F03A3FC0001F
+F848C7EA03FC007E1400007C157C00FC157E48153EA46C157E007E15FCD87F801303D83F
+E0EB0FF8D81FFCEB7FF06CB612E0000315806C1500D8003F13F8010713C028387EA42C>
+I<EA7FF0487EA3127F1201AAEC1FE0EC7FFC9038F9FFFE01FB7F90B6FC9138F03F80ECC0
+1F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E0140029337FB22C>I<
+1307EB1FC0A2497EA36D5AA20107C7FC90C8FCA7387FFFC0B57EA37EEA0007B3A8007FB5
+12FCB612FEA36C14FC1F3479B32C>I<EA7FE0487EA3127F1201AA91381FFFF04A13F8A3
+6E13F0913800FE004A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5FC
+A2EC9F80EC0FC001FE7FEBFC07496C7E496C7E811400157E811680151F3A7FFFC0FFFCB5
+00E113FEA36C01C013FC27337EB22C>107 D<387FFFE0B57EA37EEA0003B3B3A5007FB6
+1280B712C0A36C158022337BB22C>I<3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD87F
+FF13FF91B57E3A07FE1FFC3E01FCEBF83F496C487E01F013E001E013C0A301C01380B33B
+7FFC3FF87FF0027F13FFD8FFFE6D13F8D87FFC4913F0023F137F2D2481A32C>I<397FF0
+1FE039FFF87FFC9038F9FFFE01FB7F6CB6FC00019038F03F80ECC01F02807FEC000F5B5B
+A25BB3267FFFE0B5FCB500F11480A36C01E0140029247FA32C>I<EB07FCEB1FFF017F13
+C048B512F048803907FC07FC390FF001FE48486C7E0180133F003F158090C7121F007EEC
+0FC0A348EC07E0A76C140F007E15C0A2007F141F6C15806D133F6C6CEB7F006D5B6C6C48
+5A3907FC07FC6CB55A6C5C6C6C13C0011F90C7FCEB07FC23247CA32C>I<397FF01FE039
+FFF8FFF801F913FE90B6FC6C158000019038F07FC09138C01FE091380007F049EB03F85B
+ED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE091
+38E07FC091B51280160001FB5B01F813F8EC3FC091C8FCAD387FFFE0B57EA36C5B27367F
+A32C>I<903903FC078090391FFF0FC0017F13CF48B512EF4814FF3807FE07380FF00148
+487E49137F4848133F90C7FC48141F127E150F5AA87E007E141FA26C143F7F6C6C137F6D
+13FF380FF0033807FC0F6CB6FC6C14EF6C148F013F130FEB07F890C7FCAD0203B5FC4A14
+80A36E140029367DA32C>I<D87FFEEB7F80B53803FFE0020F13F04A13F86C5B39003F7F
+C3ECFE039138FC01F09138F800E04A13005C5CA25CA391C8FCAF007FB512F0B6FC815D7E
+25247DA32C>I<90387FF8700003B512F8120F5A5A387FC00F387E00034813015AA36CEB
+00F0007F140013F0383FFFC06C13FE6CEBFF80000314E0C66C13F8010113FCEB0007EC00
+FE0078147F00FC143F151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15F815E000F8
+148039701FFC0020247AA32C>I<130F497EA9007FB6FCB71280A36C150026001F80C7FC
+B1ED03C0ED07E0A5ECC00F010FEB1FC0ECF03F6DB5128016006D5B010013F8EC3FE0232E
+7EAD2C>I<3A7FF003FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D137F3900
+FE03FF90B7FC6D15807F6D13CF902603FE07130029247FA32C>I<3A7FFF01FFFCB514FE
+148314016C15FC3A03E0000F80A26C6CEB1F00A36C6C133EA3017C5BA3017E13FC013E5B
+A2EB3F01011F5BA21483010F5BA214C701075BA214EF01035BA214FF6D90C7FCA26D5A14
+7C27247EA32C>I<D87FFFEB7FFF6EB5FCB515806C16004A7ED807C0EB01F0A56D130300
+035DA3143E147FA2D801F0495AECFF87A214F7A2D800F1EBC78001F913CF14E3A201FB13
+EFA2017B91C7FC14C1017F13FFA21480A2013F5B90381F007C29247FA32C>I<3A3FFF83
+FFF048018713F814C714876C018313F03A00FC007E005D90387E01F8013F5BEB1F839038
+0F87E0ECCFC0903807EF80EB03FF6D90C7FC5C6D5A147C14FE130180903803EF80903807
+CFC0EB0FC7EC83E090381F03F0496C7EEB7E00017C137C01FC137E48487F3A7FFF01FFFC
+1483B514FE6C15FC140127247EA32C>I<3A7FFF01FFFCB5008113FE148314816C010113
+FC3A03F0000F801201ED1F007F1200153E7F137C017E5B133EA2013F13FC6D5BA2EB0F81
+5DA2EB07C1ECC3E0A2EB03E3ECE7C0130114F75DEB00FFA26EC7FCA3143EA2147E147CA2
+14FC5CA2EA0C01003F5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA03E0
+27367EA32C>I<003FB612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C49
+5AC7485A4A5A4A5A4A5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848EB01
+E04848EB03F0485A485A485A485A485AB7FCA46C15E024247DA32C>I<15FF0207138014
+1F147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F5BB55A49C8FC6D7E6C
+7FC67F131FEB07F01303B380EB01FEECFFC06D13FF6E1380141F14070200130021417BB9
+2C>I<127812FCB3B3B3A9127806416DB92C>I<EA7FC0EAFFF813FE6D7E6C7FC67F131FEB
+07F01303B380EB01FEECFFC06D13FF6E1380141F147F91B512004913C04AC7FCEB03F85C
+B31307EB1FE013FF007F5BB55A49C8FC13F8EA7FC021417BB92C>I
+E /Fk 19 120 df<151E153E15FE1403140F147FEB07FF0003B5FCB6FCA3EBF87FEAFC00
+C7FCB3B3B3A6007FB712FCA52E4E76CD42>49 D<EC3FFC49B512C0010F14F8013F14FE90
+B77E48D9007F7FD803F8010F13F048486D7FD80FC06D7F48486D7F48C87F82D87FE06E13
+8013F86D6E13C012FF7F7013E0A56C5AA26C5A6C5AEA0380C914C05EA218805E18005E5F
+4C5A5F4B5BA24B5B4B138094C7FC4B5A4B5A4B5AED7FE05E4B5A4A90C8FCEC03FC4A5A4A
+5A4A48EB03E04A5A4A5A4AC7FC02FCEC07C0495A495A495A495A4948140F49C8FC017E15
+1F90B8FC4817805A5AA25A5A5A5AB9FC1800A4334E79CD42>I<913807FFC0027F13FC01
+03B67E010F15E090261FF80313F890267FC0007F01FEC7EA3FFE48488148486E138013FE
+486C6C6D13C0804817E080A66C5B18C06C5B6C90C75AD80038168090C8FC4C1300A24C5A
+5F4C5A4B5B4B13C0030F5BDB7FFEC7FC91387FFFF816C016FCEEFF80DA000313E0923800
+7FF8EE3FFE707E7013807013C018E07013F018F8A218FC82A218FEA3EA03C0EA0FF0EA3F
+FC487EA2B5FCA218FCA25E18F8A26C4816F0495C4916E0D83FE05C6C484A13C0D80FF04A
+1380D807FE91387FFE003B03FFE003FFFCC690B65A6D15E0010F1580010102FCC7FCD900
+1F1380374F7BCD42>I<B8D88007B712FCA5D8000701F0C9003FEB8000B3AE92BAFCA503
+F0C9123FB3B1B8D88007B712FCA55E527CD167>72 D<EC3FFE0107B512E0011F14FC017F
+14FF2701FFC00F13C02703FE00037F486C01007F6E6D7E486D80707EA2707EA3707F6C5B
+6C90C7FC6C5AC9FCA60307B5FC0203B6FC147F0103B7FC011FEBF00F017F1300EBFFFC00
+0313F04813C0485B4890C7FC5A5B485AF081F012FF5BA35EA26D5C127F6D5C003F03F713
+C36DD901E314E06CD9800714FF00079026F01F8114C06C90B5C61480C602FC6D1300011F
+01F0EB3FFC01010180EB07F03C387CB642>97 D<EB3FF8B5FCA51203C6FCB3A4EEFFE003
+0713FE033F6D7E92B612E09126F9FE0013F8DAFFF0EB3FFE03C0EB0FFF4B6D138092C76C
+13C04A6E13E05C4A6E13F019F8187F19FCA319FE183FA319FFAD19FEA3187F19FCA219F8
+18FF19F05F6E16E06E4A13C06E4A13806F491300DACFC0495ADA87F0EB7FFC913A03FC03
+FFF049C6B65A49013F148049010F01FCC7FC90C7000113C040547CD249>I<913803FFE0
+023F13FE91B67E010315E0010F9038803FF8903A3FFC0007FC4948497E4948131F484949
+7E485B485BA24890C7FC5AA248486E5A705A705A007F92C8FC5BA312FFAD127F7FA3123F
+7F6CEE0F80A26C6D141F18006C6D5C6C6D143E6C6D147E6C6D5C6D6C495A6DB4EB07F001
+0F9038E01FE06D90B5128001014AC7FCD9003F13F80203138031387CB63A>I<EF07FF04
+1FB5FCA5EE007F171FB3A4913803FF80023F13F049B512FE0107ECFF9F499038803FDF90
+273FFE0007B5FCD97FF87F49481300484980484980485B488291C8FC5A5B123FA2127F5B
+A312FFAD127FA37F123FA3121F7F6C5E6C7F5F6C6D91B5FC6C6D5B6C6D010714C0D97FFC
+D91FDF13FFD91FFFEB7F9F01079038FFFE1F010114F86D6C13E002070100EBFC0040547C
+D249>I<913807FF80027F13F849B512FE01076E7E011F010313E0903A3FFC007FF0D97F
+F06D7E49486D7E4849130F48496D7E48824890C77E1880485A82003F17C0A3485A18E082
+A212FFA290B8FCA401FCCAFCA6127FA37F123FA2EF03E06C7E17076C17C06C6D140F1880
+6C6D141F6C6DEC3F006C6D147ED97FFC495AD91FFFEB07F86D9038E03FF0010390B512C0
+01005D023F01FCC7FC020113E033387CB63C>I<DA3FFE14FE49B539C007FF80010FDAF8
+3F13C0013FDAFE7F13E0903B7FF80FFFFE072701FFE003EBF07F48496C13E048496CEBF0
+3F91C7007F14C048EEF81F489338FC070049023F90C7FCA2003F82A9001F5EA26D147F6C
+5E6C5E6E13FF6C6D485B6C6D485B6CD9F80F90C8FC4890B55AD803CF14F801C114C02707
+C03FFEC9FC49CBFC120FA27FA27FA27F13FC90B612FEEEFFF06C16FCEFFF806C8318F06C
+836C837F48B87E1207D80FFCC700037FD83FF8EC003F49150F48486F138083485A83A56D
+5D007F18006D5D003F5F6C6C4B5A01FE153FD807FFED7FF06C01C049485AC601FC011F13
+80013FB648C7FC010F15F8010115C0D9000F01F8C8FC3B4F7CB542>103
+D<EB3FF8B5FCA51203C6FCB3A4EE3FF84BB5FC030714C04B80DB3F817FDB7C007F4B6D7E
+DAF9F0133FDAFBE0805DDAFF80131F92C77FA25CA25CA35CB3ADB6D8F81FB6FCA540537B
+D249>I<133FEBFFC0487F487FA2487FA66C5BA26C5B6C5B013FC7FC90C8FCAEEB1FF8B5
+FCA512017EB3B3A6B612F8A51D547CD324>I<EB3FF8B5FCA51203C6FCB3B3B3B1B612F8
+A51D537CD224>108 D<D93FF0EB3FF8B549B5FC030714C04B80DB3F817FDB7C007F0003
+4A6D7EC6D9F1F0133FDAF3E0805DDAF780131F92C77F14FF5CA25CA35CB3ADB6D8F81FB6
+FCA540367BB549>110 D<913801FFC0023F13FE91B67E010315E0010F018013F8903A3F
+FC001FFED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F4883488349153F001F83
+A2003F8349151FA2007F83A400FF1880AC007F1800A3003F5F6D153FA2001F5FA26C6C4B
+5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB46CB45A010790
+B512F0010115C0D9003F49C8FC020313E039387CB642>I<903903FFC00E011FEBFC1E90
+B6127E000315FE3907FE003FD80FF0130F4848130348481301491300127F90C8127EA248
+153EA27FA27F01F091C7FC13FCEBFF806C13FEECFFF06C14FE6F7E6C15E06C816C15FC6C
+81C681133F010F15801301D9000F14C0EC003F030713E0150100F880167F6C153FA2161F
+7EA217C07E6D143F17807F6DEC7F0001F85C6DEB03FE9039FF801FFC486CB512F0D8F81F
+14C0D8F00791C7FC39E0007FF02B387CB634>115 D<143EA6147EA414FEA21301A31303
+1307A2130F131F133F13FF5A000F90B512FEB7FCA426003FFEC8FCB3A9EE0F80ABEE1F00
+6D7EA26D143E15806D6D5A6DEBE0FC6DEBFFF86D6C13E0021F5BDA03FEC7FC294D7ECB33
+>I<D93FF8EC07FFB5021FB5FCA50003ED007FC6161FB3AE5FA35FA294B5FC137F5E6EEB
+03DF013F020714C06D6CD90F9F13FF903A0FFF803F1F6DEBFFFE010114F86D6C13E00207
+0100EBFC0040377BB549>I<B600C1B6D8800FB5FCA500019026F0000301C0C7EA3FC06E
+F01F806C6F6D1500A26E6D6D5C017F193E6E187E013F6F6C147CA26E6F14FC6D616F13FF
+7213016D4A5E03C016036D705C5E03E001E7EB80076D61DBF007150F6D03C301C05B160F
+03F80181EBE01F6D96C7FCDBFC1F5D027F0200EBF03E5EDBFE3E90387FF87E023F177CED
+FF7E047C90383FFCFC6E01FC5D4CEB1FFD6EEEFFF0A24C7F6E5FA26E496D5BA24C7F6E5F
+A26E496D90C8FCA293C8FC6F5DA2033E157C58367DB45F>119 D
+E /Fl 71 123 df<B81280A2290280962A>21 D<BD12C0A25202809653>I<EC0FF0EC7F
+FC903801F80F903907E0038049486C7E90381F800F4948487E5B137EA25B6F5A0303C7FC
+92C8FCA9ED07E0B7FCA33900FC001F1507B3AA486C497E263FFFE0B51280A3293B7FBA2E
+>28 D<EC0FF891387FFEE0903801F807903807E00F90380FC01FEB1F80EB3F005B137E15
+0F491307ADB7FCA33900FC0007B3AB486C497E263FFFF1B51280A3293B7FBA2E>I<007C
+137C00FE13FEEAFF01A3EAFE00A7007E13FC007C137CA8003C137800381338A700181330
+171E77BA2A>34 D<121C127FEAFF80A213C0A3127F121C1200A412011380A2120313005A
+1206120E5A5A5A12600A1979B917>39 D<146014E0EB01C0EB0380EB0700130E131E5B5B
+A25B485AA2485AA212075B120F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2
+121F7EA27F12077F1203A26C7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E0146013
+5279BD20>I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C133C133E13
+1EA2131F7FA21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2133E133C
+137C1378A25BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527BBD20>I<121C127FEA
+FF80A213C0A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A197988
+17>44 D<B512F8A515057F941C>I<121C127FEAFF80A5EA7F00121C0909798817>I<1506
+A2150E150CA2151C151815381530A215701560A215E015C0A214011580A2140315005C14
+06A2140E140CA2141C1418A214381430A21470146014E05CA213015CA2130391C7FCA25B
+1306A2130E130C131C1318A213381330A213701360A213E05BA212015B120390C8FCA25A
+1206A2120E120CA2121C1218A21238123012701260A212E05AA21F537BBD2A>I<EB03F8
+EB1FFF90387E0FC09038F803E03901E000F0484813780007147C48487FA248C77EA24815
+80A3007EEC0FC0A500FE15E0B3007E15C0A4007F141F6C1580A36C1500A26C6C133EA26C
+6C5B6C6C5BEBF0013900F803E090387E0FC0D91FFFC7FCEB03F823397DB62A>I<EB01C0
+13031307131F13FFB5FCA2131F1200B3B3A7EB7FE0007FB512F0A31C3779B62A>I<EB0F
+F0EB7FFE48B57E3903E03FE0390F000FF0001E6D7E001C6D7E486D7E5A6E7E126012FE6C
+EC7F807FA56CC7FC121CC8FCEDFF00A25D14015D14035D4A5A4A5A5D4A5A4AC7FC147E5C
+495A14E0495A495A49C8FC011EEB01805B5B49130348481400485A485A90C75A48B6FC5A
+5A485CB6FCA321377CB62A>I<EB07F8EB3FFF90B512C03901F80FF03903C007F848486C
+7E390E0001FEEA0F80391FE000FF7FA56C5A6C5AC7485AA25D14035D4A5A5DEC0F80027F
+C7FCEB1FFCECFF809038000FE0EC03F0EC01FC816E7EED7F80A216C0A2153F16E0A2121E
+EA7F80A2487EA316C0157F491480007EC7FC0070ECFF006C495A121E390F8003F83907F0
+0FF00001B512C06C6C90C7FCEB0FF823397DB62A>I<1538A2157815F8A2140114031407
+A2140F141F141B14331473146314C313011483EB030313071306130C131C131813301370
+136013C01201EA038013005A120E120C5A123812305A12E0B712F8A3C73803F800AA4A7E
+0103B512F8A325387EB72A>I<0006140CD80780133C9038F003F890B5FC5D5D158092C7
+FC14FC38067FE090C9FCAAEB03F8EB1FFE90387C0F809038E007E03907C003F0496C7E13
+0000066D7E81C8FC8181A21680A4121C127F5A7FA390C713005D12FC00605C12704A5A6C
+5C6C1303001E495A6C6C485A3907E03F800001B5C7FC38007FFCEB1FE021397CB62A>I<
+EC3FC0903801FFF001077F90380FE03C90383F800E90387E003F495B48485B485A12075B
+000F147E49133C001F91C7FC5B123FA3127F90C9FCEB01FC903807FF8039FF1E07E09038
+3801F0496C7E01607F01E0137E497F16805BED1FC0A390C713E0A57EA47F123F16C0A200
+1FEC3F807F000F15006D5B000714FE6C6C5B6C6C485A3900FE07F090387FFFC0011F90C7
+FCEB03FC23397DB62A>I<12301238123E003FB612E0A316C05A168016000070C7120600
+60140E5D5D00E014304814705D5DC712014A5A4AC7FC1406140E5CA25C1478147014F05C
+1301A213035C1307A2130FA3131F5CA2133FA5137FA96DC8FC131E233A7BB72A>I<EB03
+F8EB1FFF017F13C09038FC07F03901E001F83903C0007C485A90C77E48141E000E141F00
+1E80A3121FA27F6D131E7FD80FF85B6D137C01FF13786C6D5A6CEBE3E0ECF7806C01FFC7
+FC6C6C5A6D6C7E010F13E0013F7F01F913FC3901E07FFE48486C7E380F800F48486C1380
+001E010113C0487F007C143F0078EC1FE0150F4814071503A21501A36C15C0A200781403
+007C15806C14076CEC0F006C6C131ED807E0137C3903F803F0C6B55A013F1380D907FCC7
+FC23397DB62A>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F0012
+1C092479A317>58 D<1538A3157CA315FEA34A7EA34A6C7EA39138063FC0A34A6C7EA34A
+6C7EA202387FEC3007A202707FEC6003A202E07FECC001A20101804A7EA201038191C712
+7FA2498191B6FCA24981010CC7121FA24981160FA249811607A249811603A201E0810001
+1501486C4A7ED80FFC4A1380B56C90B512FEA3373C7DBB3E>65 D<B712F016FE707EC690
+39C0003FE06D48EB0FF0707E707E707EA2707EA21880A718005E5F4C5A4C5A4C5A4C5AEE
+7FC091B500FEC7FCA2913980003FC0EE0FF0EE03F8707E707E83EF7F80A218C0173F18E0
+A718C0177FA2EFFF8018005E4C5AEE0FFC496CEB3FF8B812E0178004FCC7FC33397EB83B
+>I<913A01FF800180020FEBE003027F13F8903A01FF807E07903A03FC000F0FD90FF0EB
+039F4948EB01DFD93F80EB00FF49C8127F01FE153F12014848151F4848150FA248481507
+A2485A1703123F5B007F1601A35B00FF93C7FCAD127F6DED0180A3123F7F001F16031800
+6C7E5F6C7E17066C6C150E6C6C5D00001618017F15386D6C5CD91FE05C6D6CEB03C0D903
+FCEB0F80902701FF803FC7FC9039007FFFFC020F13F002011380313D7BBA3C>I<B712E0
+16FCEEFF80C6D9C0007F6D48EB1FF0EE07F8EE01FC707E177FEF3F80A2EF1FC018E0170F
+18F0170718F8A3EF03FCA418FEAC18FCA4EF07F8A218F0A2170F18E0EF1FC0A2EF3F80EF
+7F0017FE4C5AEE07F8EE1FF0496CEB7FC0B85A04FCC7FC16E037397EB83F>I<B812FCA3
+C69038C0000F6D481300177E173E171E170EA21706A417078316C0A394C7FCA31501A215
+03150F91B5FCA3EC800F15031501A21500A21860A318E093C712C0A41701A3EF0380A217
+07A2170F171F177F496C903807FF00B9FCA333397EB838>I<B812FCA3C69038C0000F6D
+481300177E173E171E170EA21706A417071703A216C0A21700A41501A21503150F91B5FC
+A3EC800F15031501A21500A693C7FCADEBFFE0B612F0A330397EB836>I<913A01FF8001
+80020FEBE003027F13F8903A01FF807E07903A03FC000F0FD90FF0EB039F4948EB01DFD9
+3F80EB00FF49C8127F01FE153F12014848151F4848150FA248481507A2485A1703123F5B
+007F1601A35B00FF93C7FCAB4BB512FEA2127F6DD9000113C09338007F80A2123F7F121F
+A26C7EA26C7EA26C7E6C7E000016FF137F6D6C5BD91FE014DF6D6CEB038FD903FCEB0F07
+903A01FF803E03903A007FFFF801020F01E0C7FC02011380373D7BBA41>I<B600C1B612
+80A3C69026C00001EB80006D486D90C7FCB3A491B7FCA30280C7FCB3A6496C497FB600C1
+B61280A339397EB83E>I<B612C0A3C6EBC0006D5AB3B3AD497EB612C0A31A397EB81E>I<
+B612F0A3C601E0C8FCEB7F80B3AD170CA5171C1718A31738A31778A217F816011607EE0F
+F0496C137FB8FCA32E397EB834>76 D<B56C923803FFFE6E5DA2C6F0FE00D96FE0ED0DFC
+A2D967F01519A3D963F81531A3D961FC1561A2D960FE15C1A3027FEC0181A26E6CEB0301
+A36E6C1306A36E6C130CA26E6C1318A36E6C1330A26E6C1360A36E6C13C0A392387F0180
+A292383F8300A3ED1FC6A2ED0FECA3ED07F8A301F06D5A487ED807FE6D48497EB500F002
+03B512FEA2ED00C047397EB84C>I<B56C0107B512808080D8007F9139003FF0006EEC0F
+C0D96FF86E5A71C7FCEB67FCEB63FEA2EB61FF01607FA26E7E6E7EA26E7E6E7E8114076E
+7E81806E138016C0157FED3FE016F0151FED0FF8ED07FCA2ED03FEED01FFA26F1383EE7F
+C3A2EE3FE3EE1FF3A2EE0FFB70B4FCA28282A28283A28301F081487ED807FE81B500F080
+A28339397EB83E>I<EC03FF021F13E09138FE01FC903901F8007ED907E0EB1F8049486D
+7ED93F80EB07F049C76C7E01FE6E7E48486E7E49157E0003167F4848ED3F80A24848ED1F
+C0A2001F17E049150F003F17F0A3007F17F8491507A300FF17FCAC007F17F86D150FA300
+3F17F0A26C6CED1FE0A36C6CED3FC0000717806D157F000317006C6C15FEA26C6C4A5A01
+7F4A5A6D6C495A6D6C495AD907E0EB1F80D903F8017FC7FC903900FE01FC91381FFFE002
+0390C8FC363D7BBA41>I<B712C016F816FFC6D9C00013806D48EB3FE0EE0FF0EE07F816
+0317FC17FE1601A217FFA717FEA2EE03FCA217F8EE07F0EE0FE0EE3FC0EEFF8091B5EAFE
+0016F00280C8FCB3A5497EB612C0A330397EB838>I<B7FC16F016FCC69038C003FF903A
+7F80007FC0EE1FE0707E707E707EA2707EA283A65FA24C5AA24C5A4C5AEE1FC0EE7F80DB
+03FEC8FC91B512F05E91388007F8ED01FCED007F83707E707EA2160F83A583A619C0A283
+16071801496C01031480B639C001FE0304001400EF7F07CAEA1FFEEF03F83A3B7EB83D>
+82 D<90390FF0018090387FFC0348B5FC3903F00FC73907C001EF390F8000FF48C7127F
+48143F003E141F007E140F127C150712FC1503A315017EA27E92C7FC6C7E7F13F06CB4FC
+14F06C13FF6C14C06C14F06C806C806C6C7F010F7F01001480140F020113C0EC007F153F
+ED1FE0A2150F12C0A21507A37EA216C07E150F6C15806C141F6C15006C5C6D137ED8FBE0
+5B39F1FE01F839E07FFFF0011F13C026C001FEC7FC233D7BBA2E>I<003FB812E0A3D9C0
+03EB001F273E0001FE130348EE01F00078160000701770A300601730A400E01738481718
+A4C71600B3B0913807FF80011FB612E0A335397DB83C>I<B6D8C007B51280A3C601C0C7
+383FF0006D48EC0FC0715A71C7FCB3B25F013F150680170E131F170C6D6C141C5F6D6C14
+786D6C14706D6C5C6D6CEB03C0027F495A91263FC03FC8FC91380FFFFC020313F0913800
+3FC0393B7EB83E>I<B500FE91B51280A3000301C091380FF8006C90C8EA07E0715A6C5F
+80017F93C7FCA26E5C013F1506A26D6C5CA280010F5DA26E143801071530A26D6C5CA280
+01015DA26E13016D5DA2ED8003027F91C8FC15C0023F1306A215E0021F5BA2EDF01C020F
+1318A26E6C5AA215FC02035BA2EDFEE002015BA26E6C5AA36FC9FCA3153EA2151CA3393B
+7EB83E>I<B5D8FC03B5D8F801B5FCA30007902680000F90C7EA1FF86C48C7D807FCEC07
+E00001F103C0040316807F6C70150016016E5F017F6F14065E80013F609338067F80A26D
+6C5F4C6C7EA26D6C5F4C6C7EA26E1770010702386D1360EE300F6E17E00103705BEE6007
+8001014D5A9338C003FCA26D6C4CC7FC9239018001FEA2DA7F8115060383C712FFA2DA3F
+C35D03C7158C03C6147F03E6159CDA1FEE15D803EC143F15FC020F16F04B141FA202075E
+4B140FA202035E4B1407A202015EA24B1403020093C8FC503B7EB855>I<007FB539803F
+FFFCA3C69026F8000790C7FC6D48EB03FC6D48EB01F06D6C5C5F6D6C5C6D6C49C8FC5E6D
+6C130601015C6E131C6DEB80185E91387FC07091383FE06016E091381FF1C0020F5B15FB
+6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8150F91380607FC
+91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E01016E7E495A91C76C7E4914
+07010E81010C6E7E131C013E6E7E01FE822607FF8001077FB500F0013FEBFF80A339397E
+B83E>I<B691383FFFE0A3000101E0913807FE006C49EC03F0017F6F5A6D6C5D606D6C4A
+C7FCA26D6C14066E140E0107150C6D6C141C17186D6C5C816D5D6E6C13E05F91383FE001
+5F6E6C48C8FCEC0FF81606913807FC0E160C913803FE1C913801FF185E6E13B016E0157F
+6F5AB3A24B7E027FB512C0A33B397FB83E>I<003FB7FCA39039FC0001FE01C013034949
+5A003EC7FC003C4A5A5E0038141F00784A5A12704B5A5E006014FF4A90C7FCA24A5A5DC7
+12074A5AA24A5A5D143F4A5AA24A5A92C8FC5B495AA2495A5C130F4948EB0180A2495A5C
+137F495A16034890C7FC5B1203485AEE0700485A495C001F5D48485C5E4848495A49130F
+B8FCA329397BB833>I<EB1FE0EBFFF83803E03E48C66C7E486C6C7E486C6C7E13E06E7E
+A26E7EEA0FC0EA0780C7FCA4147FEB0FFFEB7FE13801FE01EA07F8EA0FE0EA1FC0EA3F80
+127F130048150C5AA31403A26C13076C13069039800E7C183A3FC01C7E383A0FE0783FF0
+3A03FFE01FE03A007F800F8026277DA52A>97 D<EA03F012FFA3120F1203B0EC1FC0ECFF
+F09038F3E07C9038F7003F01FEEB0F804914C049EB07E0ED03F05BED01F8A216FCA21500
+16FEAA16FC1501A216F8150316F06DEB07E0A26DEB0FC001CEEB1F8001C7EB3E00903883
+C0FC903800FFF0C7EA3F80273B7DB92E>I<EB03FC90381FFF8090387E03E09038F80070
+D803F013F83907E001FC380FC003A2EA1F80123F90380001F8EC00F0481400A2127E12FE
+AA127E127FA26C14067F001F140E6D130C000F141C6C6C13386C6C13706C6C13E039007E
+07C090381FFF00EB03F81F277DA525>I<ED1F80EC07FFA3EC007F151FB0EB03F8EB1FFE
+90387E079F9038F801DF3903F000FF4848137F4848133FA24848131F123F90C7FC5AA212
+7E12FEAA127E127FA27EA26C6C133FA26C6C137F6C7E0003ECFFE03A01F803DFFE39007C
+0F1FEB1FFED907F01380273B7DB92E>I<EB07F8EB1FFF90387C0FC03901F803E03903F0
+01F0D807E013F8380FC0004848137CA248C7127E153E5A153F127E12FEA3B7FCA248C8FC
+A5127EA2127FA26C14037F001F14076C6C13060007140E6D131CD801F013386C6C137090
+387E03E090381FFF80903803FC0020277EA525>I<147E903801FF80903807E1E0EB0F87
+90381F8FF0EB3F0F133E137EA29038FC03C091C7FCADB512F8A3D800FCC7FCB3AB487E38
+3FFFFCA31C3B7FBA19>I<ED03F090390FF00FF890393FFC3C3C9039F81F707C3901F00F
+E03903E007C03A07C003E010000FECF000A248486C7EA86C6C485AA200075C6C6C485A6D
+485A6D48C7FC38073FFC38060FF0000EC9FCA4120FA213C06CB512C015F86C14FE6CECFF
+804815C03A0F80007FE048C7EA0FF0003E140348140116F8481400A56C1401007C15F06C
+EC03E0003F1407D80F80EB0F80D807E0EB3F003901FC01FC39007FFFF0010790C7FC2638
+7EA52A>I<EA03F012FFA3120F1203B0EC1FC0EC7FF89038F1E0FC9038F3807E9038F700
+3F13F601FE7F491480A25BA25BB3A4486CEB3FC0B538C3FFFEA3273A7DB92E>I<EA03C0
+EA0FE07F121FA3120F5BEA03C0C8FCAAEA03F012FFA312071203B3AA487EB512C0A31238
+7EB717>I<EB01C0EB07F0EB0FF8A5EB07F0EB01C090C7FCAAEB03F813FFA313071301B3
+B3A2123C127E00FF13F01303A214E038FE07C0127C383C0F00EA0FFEEA03F8154984B719
+>I<EA03F012FFA3120F1203B1913803FFF8A302001380EDFE0015F85DEC01C04A5A4AC7
+FC140E5C5C147814F8EBF1FCEBF7FEEBFE7E497E01F87FEBF01F6E7E6E7EA26E7E6E7E81
+1400157E157F811680486CEB7FE0B538C1FFFEA3273A7DB92C>I<EA03F012FFA3120F12
+03B3B3AD487EB512C0A3123A7EB917>I<2703F00FE0EB3F8000FF903A7FF801FFE0913A
+F07E03C1F8903BF1C03F0700FC280FF3801F8E137E2603F700139C01FED90FB8133E4902
+F0133FA2495CA2495CB3A4486C496CEB7F80B500C3B5380FFFFCA33E257DA445>I<3903
+F01FC000FFEB7FF89038F1E0FC9038F3807E390FF7003FEA03F601FE7F491480A25BA25B
+B3A4486CEB3FC0B538C3FFFEA327257DA42E>I<EB03FE90380FFF8090383E03E09038F8
+00F84848137C48487F48487F4848EB0F80001F15C090C712074815E0A2007EEC03F0A400
+FE15F8A9007E15F0A2007F14076C15E0A26C6CEB0FC0000F15806D131F6C6CEB3F006C6C
+137EC66C13F890387E03F090381FFFC0D903FEC7FC25277EA52A>I<3903F01FC000FFEB
+FFF09038F3E0FC9038F7003FD807FEEB1F806C48EB0FC049EB07E016F049130316F81501
+16FCA3ED00FEAAED01FCA3ED03F8A2ED07F06D14E0150F6DEB1FC06D148001F7EB7E0090
+38F3C0FC9038F0FFF0EC3F8091C8FCAB487EB512C0A327357DA42E>I<903903F8018090
+381FFE0390387E07839038FC01C73803F000000714EF4848137F49133F121F485A151F48
+C7FCA312FEAA127FA37E7F001F143F7F000F147F6C6C13FF3903F001DF3901F8039F3900
+7E0F1FEB1FFEEB07F090C7FCABED3FC0913807FFFEA327357DA42C>I<3807E03E00FFEB
+FF809038E1C7C09038E38FE0380FE70FEA03EE13ECEC07C09038FC010049C7FCA35BB3A3
+487EB512F0A31B257DA421>I<EBFF03000313E7380F80FF381E003F487F487F00707F12
+F0A2807EA27EB490C7FCEA7FC013FF6C13E06C13F86C7F00037FC67F01071380EB007F14
+1F00C0EB0FC01407A26C1303A37E15806C13077EEC0F00B4131E38F3C07C38E1FFF038C0
+3F801A277DA521>I<1318A51338A31378A313F8120112031207381FFFFEB5FCA23801F8
+00B21403A93800FC071406A2EB7E0EEB3F1CEB0FF8EB03F018347EB220>I<D803F0EB1F
+8000FFEB07FFA3000FEB007F0003141FB3A5153FA2157F12016D13FFEDDFE02600FC0113
+FE90387E079F90381FFE1FD903F8138027267DA42E>I<B538803FFEA33A0FF8000FF0D8
+03F0EB07C0ED03806C7E16007F00001406A26D130E017E130CA26D5BA2EC8038011F1330
+A26D6C5AA2ECE0E001075BA2903803F180A214F9D901FBC7FCA2EB00FEA3147CA31438A2
+27257EA32C>I<B53A1FFFE03FFEA3260FF8009038000FF86C48017EEB03E018C00003EE
+0180033E13036C6C013F1400A36C6CEC8006156F6D150E017EECC00C15C7017F151C6DEC
+E018EC0183D91F815C028313F01501D90FC35C02C713F8ECC600D907E66D5A02EC137CA2
+D903FCEB7F804A133FA2010192C7FC4A7FA20100141E4A130E0260130C37257EA33C>I<
+B538C07FFFA300039038003FF06C48EB1F800000021EC7FC017E131C6D13186D6C5AECC0
+70010F5B6D6C5A903803F18014FB6DB4C8FC6D5AA2147F804A7E8114CF903801C7E09038
+0383F0EC03F8EB0601496C7E011C137E49137F01787F496D7E486C80000FEC3FF0D8FFFE
+90B51280A329247FA32C>I<B538803FFEA33A0FF8000FF00003EC07C0ED038012011600
+6D5B00001406A2017E5BA2017F131C6D1318A26D6C5AA2ECC070010F1360A26D6C5AA214
+F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A214701460A25CA2EA7C0100
+FE5B130391C8FC5BEAFC0EEA701C6C5AEA1FF0EA07C027357EA32C>I<003FB512FCA2EB
+8003D83E0013F8003CEB07F00038EB0FE012300070EB1FC0EC3F800060137F150014FE49
+5AA2C6485A495AA2495A495A495AA290387F000613FEA2485A485A0007140E5B4848130C
+4848131CA24848133C48C7127C48EB03FC90B5FCA21F247EA325>I
+E /Fm 1 14 df<933803FFE0047F13FF0303B612E0030F15F8923A7FFE003FFFDBFFC001
+017FDA03FEC8EA3FE0DA0FF8ED0FF8DA1FC0ED01FC4A486F7E02FECAEA3F804948717ED9
+03F0EF07E04948717E4948717E4948717E49CC127E017E85017C8549737E000187491907
+4848737EA24848737E000F8749190090CE1278481B7CA2003E87A2003C1B1EA2007C1B1F
+A2007887A200F81C80A2481B07AC6C1B0FA200781C00A2007C63A2003C1B1EA2003E1B3E
+A26C63A26C1B786D1AF86D19010007636C6C4F5AA26C6C4F5A6D190F000063017C4FC7FC
+017E616D197E6D6C606D6C4D5A6D6C4D5A6D6C4D5AD901FCEF1FC06D6C4D5ADA3F8004FE
+C8FC6E6C4B5ADA0FF8ED0FF8DA03FEED3FE0912600FFC0903801FF80DB7FFE013F90C9FC
+030FB612F8030315E0DB007F91CAFC040313E0595C7BC664>13 D
+E /Fn 23 126 df<EA07C0EA0FF0EA1FF8123F13FCA213FEA2121F120F1207EA007E13FE
+A213FC1201EA03F81207EA0FF0EA7FE012FF13C013005A12780F196E8A33>44
+D<007FB512FEB7FCA46C14FE2006779833>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F
+80EA1F000B0B6C8A33>I<EC07F8EC3FFF91B57E010314E0010F80498090383FFC0F9039
+7FE003FC9038FF80014890C77ED803FC147E49EB7E7F0007903801FFBFD9F00713FF4848
+481480495A001F5B018013C3003FEB7F810100010013C002FE137F4849133FEA7E014A13
+1FA212FEEAFC034A130FA96E131FD8FE011580127EA26E133FD87F0015006C6D5B027F13
+FE01801381001F90383FC3FC01C013FF000F6D5B6D6C5B6C6C6C5BD9F80113800003D900
+7EC7FC6D9038000F806CB4EC1FC06C6D133FD97FE013FF90263FFC0713806DB612006D5C
+010314F801005C023F1380DA07FCC7FC2A3F7CBD33>64 D<EB1FFC90B57E000314E04880
+4814FC48809038F007FFEBE0016E7F157F6C486D7E6C48131FC87F150FA5EC0FFF49B5FC
+131F137F48B6FC0007140F4813C0381FFC00EA3FF0EA7FC05B48C7FC5AA56C141F7E6D13
+7F01E0497E263FF80FEBFFF06CB712F87E6C14F36C14C1C69138003FF0D93FF090C7FC2D
+2E7BAC33>97 D<EA7FFC487EA4127F1200AB4AB4FC020713C0021F13F0027F7F91B512FE
+90B7FCDAFE071380ECF80002E0EB7FC04AEB3FE04A131FEE0FF091C7FCEE07F85B1603A2
+17FC1601A9160317F8A26D140717F06E130F17E06E131FEE3FC06E137F9139F801FF80DA
+FE07130091B55A495C6E5BD97E3F13E0D93C0F138090260003FEC7FC2E3E7FBC33>I<ED
+FFF84A7FA4801501ABEB01FF010713C1011F13F1017F13F990B6FC5A4813813907FE003F
+D80FF8131F49130F48481307491303123F491301127F90C7FCA25A5AA97E7E15037F123F
+6D1307A26C6C130F6D131F6C6C133F6C6C137F2603FF83B512F891B612FC6C14FD6C6C13
+F16D13E1010F018013F8D901FEC8FC2E3E7DBC33>100 D<ECFF80010713F0011F13FC49
+7F90B6FC48158048018013C03A07FE003FE001F8EB0FF048481307484814F8491303003F
+15FC491301127F90C7FC16FE15005A5AB7FCA516FC48C9FC7E7EA36C7E167C6C6C14FE7F
+6C7E6D13016C6CEB03FC6CB4130F6C9038C03FF86C90B512F06D14E06D14C0010F140001
+0313FC9038007FE0272E7BAC33>I<ED3FE0EDFFFC020313FE140F4A13FF5CEC7FE01580
+9138FF007E4A133C010114005CA8003FB612F84815FCB7FCA36C15F8260001FCC7FCB3AD
+001FB612C04815E0A46C15C0283E7DBD33>I<D901FEEB1FE0903A0FFFC0FFF0013F01F3
+13F84990B512FC90B7FC5A48010313E12607FC00EB80F849017F1360484890383FC00049
+131FA2001F8149130FA66D131F000F5DA26D133F6C6C495A6D13FF2603FF0390C7FCECFF
+FE485C5D5DD80FCF13C0D981FEC8FC0180C9FCA27FA26C7E7F90B512FC6CECFFC06C15F0
+4815FC000F15FF4816809038F00007D83FC09038007FC049EC1FE048C8120F007E150700
+FE16F0481503A56C1507007E16E0007F150F6C6CEC1FC001E0147FD81FF8903801FF8027
+0FFF801F13006C90B55A6C5DC615F0013F14C0010F91C7FC010013F02E447DAB33>I<EA
+7FFC487EA4127F1200AB4AB4FC020713C0021F13F0027F7F91B5FC90B67EED07FEECF801
+ECF0004A7F4A7F5CA291C7FCA35BB3A43B7FFFFC0FFFFEB56C4813FFA46C496C13FE303D
+7FBC33>I<14E0EB03F8A2497EA36D5AA2EB00E091C8FCAA383FFFF8487FB5FCA27E7EEA
+0001B3AD007FB612C0B712E016F0A216E06C15C0243E78BD33>I<EA3FFC487E12FFA212
+7F123FEA007EAC92B512F04A14F85CA2806E14F0923807F8004B5A4B5A4B5A4B5A4BC7FC
+4A5A4A5A4A5A4A5A4A5A4A5A4A7E4A7E137F81ECF9FCECF1FE14E0ECC07F4A6C7E140001
+7E6D7E6F7E8215076F7E6F7E821500167F3B3FFFFC07FFFC486D4813FEB65AA26C497E6C
+496C13FC2F3D7FBC33>107 D<387FFFFCB57EA47EC7FCB3B3AD007FB612FCB712FEA46C
+15FC273D7ABC33>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E
+6C010F13872607FE07130301FC01FE7F9039F803FC01A201F013F8A401E013F0B3A53C7F
+FE07FF03FF80B548018713C04A138FA26E13876C486C01031380322C80AB33>I<4AB4FC
+267FFC0713C026FFFE1F13F0027F7F91B5FC90B67E6CEC07FEC6EBF801ECF0004A7F4A7F
+5CA291C7FCA35BB3A43B7FFFFC0FFFFEB56C4813FFA46C496C13FE302C7FAB33>I<EB01
+FE90380FFFC0013F13F0497F90B57E488048EB03FF2607FC0013804848EB7FC049133F48
+48EB1FE049130F4848EB07F0A2007F15F890C71203A300FEEC01FCAA6C14036C15F8A26D
+1307003F15F06D130FA26C6CEB1FE06D133F6C6CEB7FC06C6CEBFF802603FF0313006CEB
+FFFE6C5C6D5B6D5B010F13C0D901FEC7FC262E7AAC33>I<ED03FE3B3FFFC01FFF8048D9
+E07F13E0B590B5FC02E314F06C13E76C9038EFFE0FD8000F13F09139FFC007E092388003
+C092C8FC5CA25C5CA35CA35CB2003FB6FC4881B7FCA27E6C92C7FC2C2C7DAB33>114
+D<EB01E0497E1307AA003FB612F84881B7FCA36C5D260007F0C8FCB3A3161FEE3F80A66E
+137F0103ECFF006E5A9138FF03FE6DEBFFFC6D5C6E5B6E5B6E1380DA03FCC7FC29387EB6
+33>116 D<D87FFCEB3FFE486C497EA4007F800000EC007FB3A75EA25DA26D5B90387F80
+0FDAE03F13FE6DB7FCA26D806D13FE01039038F83FFE010001C0C7FC302C7FAA33>I<3B
+7FFFC00FFFF8B56C4813FCA46C496C13F8D80FE0C7EA1FC000071680A66C6CEC3F00A4EC
+0FC0EC1FE0D801F8147EEC3FF0A4EC7CF80000157C01FC14FCA2ECFCFCA390397CF87CF8
+A3017D137EECF03E017F133F013F5CA2ECE01FA26D486C5A6D486C5A2E2B7EAA33>119
+D<ED0FF8EDFFFC1403140F5C4A13F891387FFC0015C04AC7FC5CB3A41301495A1307EB3F
+F8EA3FFFB55A14C05C8014F0003F7FEA003FEB07FC13036D7E1300B3A480EC7FC015FC91
+383FFFF86E13FC8014031400ED0FF8264D7AC433>123 D<EA7FE0EAFFFE6D7E14E0806C
+7FC66C7E1307EB01FE1300B3A4806E7E81EC3FF0EDFFF06E13FC1407805C141F4A13F0ED
+F000EC7FC05D4AC7FC5CB3A41301EB07FC137F387FFFF8B55A5C148049C8FCEA7FE0264D
+7AC433>125 D E /Fo 38 253 df<121EEA7F8012FF13C0A213E0A3127FEA1E601200A4
+13E013C0A312011380120313005A1206120E5A5A5A12600B1D78891B>44
+D<B612C0A61A067F9721>I<14FF010713E090381F81F890383E007C01FC133F4848EB1F
+8049130F4848EB07C04848EB03E0A2000F15F0491301001F15F8A2003F15FCA390C8FC48
+15FEA54815FFB3A46C15FEA56D1301003F15FCA3001F15F8A26C6CEB03F0A36C6CEB07E0
+000315C06D130F6C6CEB1F806C6CEB3F00013E137C90381F81F8903807FFE0010090C7FC
+28447CC131>48 D<143014F013011307131F13FFB5FC13E713071200B3B3B0497E497E00
+7FB6FCA3204278C131>I<EB03FE90381FFFC0017F13F03901F80FFC3903C001FE48486C
+7E000EC7EA7F8048EC3FC0ED1FE04815F00030140F007015F800601407126CB415FC7F7F
+1503A46C4813076CC7FCC8FC16F8A2150F16F0151F16E0A2ED3FC0ED7F8016005D5D4A5A
+4A5A4A5A5D4A5A4A5A4AC7FC147C5C5C495A495A495A49C7120C131E5B013814185B5B48
+5A4848143848C81230000E1570001FB612F0A25A5AB712E0A326427BC131>I<49B4FC01
+0F13F0013F13FC9038FE01FE3A01F0007F80D803C0EB3FC048C7EA1FE0120EED0FF0EA0F
+E0486C14F8A215077F5BA26C48130FEA03C0C813F0A3ED1FE0A2ED3FC01680ED7F0015FE
+4A5AEC03F0EC1FC0D90FFFC7FC15F090380001FCEC007FED3F80ED1FC0ED0FE016F0ED07
+F816FC150316FEA2150116FFA3121EEA7F80487EA416FE491303A2007EC713FC00701407
+003015F80038140F6C15F06CEC1FE06C6CEB3FC0D803E0EB7F803A01FE01FE0039007FFF
+F8010F13E0010190C7FC28447CC131>I<EC07F8EC3FFF91B51280903903FC07C0903907
+E000E049481370D93F8013B090397E0003F801FE130749130F485A485AA24848EB07F000
+0FEC03E092C7FC485AA3485AA3127FA29038007F80903801FFF090380780FC39FF0E003E
+49EB1F8049EB0FC049EB07E0136001E0EB03F04914F8150116FC5BED00FEA390C812FFA4
+7EA57F123FA216FE121F15016D14FC120FED03F86C7EED07F06C6C14E06C6CEB0FC06C6C
+EB1F80017EEB3F0090383F80FE90380FFFF8010313E00100138028447CC131>54
+D<121CA2EA1F8090B712C0A3481680A217005E0038C8120C0030151C00705D0060153016
+705E5E4814014B5A4BC7FCC81206150E5D151815385D156015E04A5AA24A5A140792C8FC
+5CA25C141E143EA2147E147CA214FCA21301A313035CA31307A6130FAA6D5AEB01C02A45
+7BC231>I<14FF010713E0011F13F890387F80FC9038FC007E48487F4848EB1F804848EB
+0FC0000FEC07E0485AED03F0485A16F8007F140190C713FCA25AA216FE1500A516FFA46C
+5CA36C7E5D121F7F000F5C6C6C1306150E6C6C5B6C6C5BD8007C5B90383F01E090390FFF
+80FE903801FE0090C8FC150116FCA4ED03F8A216F0D807C01307486C14E0486C130F16C0
+ED1F80A249EB3F0049137E6CC75A000E495A6C6C485A3903E01FE06CB512806C6C48C7FC
+EB0FF028447CC131>57 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121EEA7F
+80A2EAFFC0A4EA7F80A2EA1E000A2B78AA1B>I<B912F8A3000101C0C7127F6C49EC07FC
+017F15011700187C183C181CA284A31806A41807040C7FA395C7FCA4161CA2163C167CED
+01FC91B5FCA3EC8001ED007C163C161CA2160CA319C0A3F0018093C7FCA41803A21900A2
+60A260A2181EA2183E187EEF01FE01FF1507486D147FB95AA33A447CC342>69
+D<B612F0A3C6EBF0006D5A6D5AB3B3B3A4497E497EB612F0A31C447DC323>73
+D<B56C933807FFFC6E5EA20001F1FE002600EFE0EE1BFC016F60A2D967F01633A2D963F8
+1663A3D961FC16C3A3D960FEED0183A2027FED0303A36E6C1406A36E6C140CA26E6C1418
+A36E6C1430A36E6C1460A26E6C14C0A36E6CEB0180A3037FEB0300A292383F8006A36F6C
+5AA36F6C5AA26F6C5AA36F6C5AA36F6C5AA26FB45AA370C7FC13F0A2486C023E4A7ED80F
+FF4D7EB500F0011C0107B512FCA34E447BC359>77 D<B712FCEEFFC017F800019039C000
+0FFE6C49EB01FF017F9138007F80EF1FE0170FEF07F018F8EF03FCA218FE1701A218FFA7
+18FEA2170318FCA2EF07F818F0EF0FE0EF1FC0EF7F80933801FE00EE0FFC91B612F01780
+0280C9FCB3A9497E487FB612C0A338447CC342>80 D<49B41303010FEBE007013F13F890
+39FE00FE0FD801F8131FD807E0EB079F49EB03DF48486DB4FC48C8FC4881003E81127E82
+127C00FC81A282A37E82A27EA26C6C91C7FC7F7FEA3FF813FE381FFFE06C13FE6CEBFFE0
+6C14FC6C14FF6C15C0013F14F0010F80010180D9001F7F14019138001FFF03031380816F
+13C0167F163F161F17E000C0150FA31607A37EA36C16C0160F7E17806C151F6C16006C5D
+6D147ED8FBC05CD8F9F0495AD8F07C495A90393FC00FE0D8E00FB51280010149C7FC39C0
+003FF02B487BC536>83 D<003FB912E0A3903BF0003FF0007F01806D48130F003EC71503
+48EF01F00078170019701270A219301260A5481818A5C81600B3B3A54B7EEDFFFC0103B7
+FCA33D447CC346>I<B600C0010FB5FCA3000101E0C813F06C49ED1F806D48ED0F00A218
+06B3B3A7180E6D6C150CA2181C131F6E1518010F163818306D6C1570606D6C14016D6C5D
+6D6CEC0780027F4AC7FC6E6C131EDA1FE0137C913907FC03F00201B55A6E6C1380DB07FC
+C8FC40467CC349>I<B60107B500F890380FFFFEA3000301E0D9001F90C813F06C0180DA
+0FFCED3FC06C90C849ED1F000507821C0E6D6C6E6C150CA36D6C6F5DA36D6C4A6C5D1706
+A26E020E6D1470010FDB0C7F1560A26E7014E00107DB183F5DA28001034B6C6C495AA36D
+6C4A6C6C49C7FCA36D6C4A6C6C1306A391267F80016E5BEF8003A203C06F131C023F9026
+0300011418A215E0021F01066D6C5BA36E6C486E6C5AA36E6C486E6C5AA3912603FC38ED
+E1800430141FA2DBFE7015F302010160020F90C8FCA203FF16FF6E496E5AA36F486E5AA3
+6FC86C5AA3031E6F5AA3030E5E030C16605F467EC364>87 D<EB07FCEB3FFF9038F80FE0
+3903C003F048C66C7E000E6D7ED80FC0137E486C137F6D6D7EA36F7EA26C5AEA0380C8FC
+A4EC0FFF49B5FC90380FFE1FEB3FC0EBFF00EA03FC485A485A485A485A127F5B176048C7
+FCA3153FA36D137F007F14EF6D9038C7E0C0003F13013A1FE00783F13B07F81E03FF8027
+01FFFC0113003A001FE0007C2B2E7CAC31>97 D<13FE12FFA3120312011200B315FE9138
+07FFC091381F03F8913838007C02F0133F02C0EB1F8001FFEC0FC04A14E091C7EA07F049
+140317F8A2EE01FCA217FEA2160017FFAB17FE1601A217FCA2EE03F8A26DEC07F017E06E
+130F01FDEC1FC0D9F9C0EB3F80D9F0E0EB7E0002785B9039E01E03F09039C00FFFC09026
+0001FEC7FC30467EC436>I<EC7F80903803FFF090380FC07C90383F000F017CEB038048
+48EB01C00003140F4848EB1FE049133F120F485AA2123F49EB1FC0007FEC070092C7FCA2
+90C9FC5AAB7E7FA2123F16306C7E16706C6C146016E06C6C14C06C6C13010001EC03806C
+6CEB0700013F131E90381FC078903807FFF001001380242E7DAC2B>I<167FED7FFFA315
+018182B3EC7F80903803FFF090380FC07C90383F000E017E130748486D5A48487F48487F
+5B000F81485AA2485AA2127FA290C8FC5AAB7E7FA2123FA26C7EA2000F5D7F6C6C5B0003
+5C6C6C9038077F806C6C010E13C0013E011C13FF90381FC0F8903803FFE09026007F0013
+0030467DC436>I<EB01FE903807FFC090381F03F090387E00FC49137E48487F485A4848
+EB1F80000F15C049130F121F484814E01507A2007F15F090C7FCA25AA390B6FCA290C9FC
+A67EA27FA2123F16306C7E1670000F15606C6C14E06D14C0000314016C6CEB03806C6CEB
+0700013E131E90380FC078903803FFE09038007F80242E7DAC2B>I<EE0F80D901FCEB7F
+E0903A0FFF81F0F090393F07E3819039FC01FF033A01F800FE014848017E13E00007027F
+C7FC497F000F8149131F001F81A9000F5D6D133F000792C7FC6D5B0003147E6C6C5B6D48
+5A3903BF07E090380FFF80260701FCC8FC90CAFCA25AA37F6C7E7F90B512F86C14FF16E0
+6C15F86C6C8048B67E3A07C0000FFF48481300003FC8EA3F80003E151F48ED0FC0A24815
+07A56C150F007C1680007E151F003E16006C153E6C6C5CD807E0495AD801F8EB07E0D800
+7FEB3F8090261FFFFEC7FC010113E02C427DAC31>103 D<13FE12FFA3120312011200B3
+15FF020313E091380F03F891381C00FC4A7F4A137E4A137F5C01FF6E7E5CA291C7FCA35B
+B3A8486C4A7EB5D8FE3FB51280A331457EC436>I<13F0EA03FCA2487EA46C5AA2EA00F0
+90C7FCAD13FE127FA3120312011200B3B0487EB512FCA316437EC21C>I<13FE12FFA312
+0312011200B3A292381FFFF8A303071380923803FC0016F05E5E4BC7FC150E5D5D5D5D4A
+5A4A5A1407EC1FC04A7E147FECE7F09038FFC7F81483EC01FC01FE7F1400157F82153F6F
+7E82150F6F7E821503826F7E821780486C4913C0B5D8FE0F13FEA32F457EC433>107
+D<13FE12FFA3120312011200B3B3B3A5487EB512FEA317457EC41C>I<01FED97F80EB0F
+F000FF902603FFF0EB7FFE91260781FC9038F03F80913C1E00FE03C01FC000030138903A
+7F07000FE0000149D93F0E1307000049029C804A149801FFDA1FF86D7E4A5CA291C75BA3
+495DB3A8486C4A6C497EB5D8FE1FB500C3B512F8A34D2C7EAB52>I<01FE13FF00FF0103
+13E091380F03F891381C00FC0003497F000149137E000049137F5C01FF6E7E5CA291C7FC
+A35BB3A8486C4A7EB5D8FE3FB51280A3312C7EAB36>I<3901FC03F000FFEB0FFEEC1C1F
+9138383F800003EB707F000113E0000013C013FD9138803F00151E01FF90C7FC91C8FCA4
+5BB3A67F487FB67EA3212C7EAB26>114 D<90383FE0303901FFFC703907E01EF0380F00
+07001E1303481301007C130000781470A212F81530A27EA27E6C1400EA7FC013FC383FFF
+E06C13FC14FF000714C06C14E0C614F0011F13F81300EC0FFC140300C0EB01FE1400157E
+7E153EA27EA36C143C6C147C15786C14F86CEB01F039F38003E039F1F00F8039E07FFE00
+38C00FF01F2E7DAC26>I<1306A5130EA4131EA3133E137EA213FE12011207001FB512F0
+B6FCA2C648C7FCB3A4150CAA017E131C017F1318A26D133890381F8030ECC070903807E0
+E0903801FFC09038007F001E3E7EBC26>I<01FEEC3F8000FFEC3FFFA300031400000115
+7F0000153FB3A8167FA316FFA2137E017F5B6D903803BFC0913980073FE0011F010EEBFF
+80903807E03C903801FFF09026003FC0EB8000312D7EAB36>I<B539F001FFFCA3000790
+C7EA7FE06C48EC1F8000011600161E0000151C7F6D1418A26E1338013F1430A26D6C5BA2
+6E13E0010F5CA26D6C485AA214F8010349C7FCA26E5A01011306A26D6C5AA2ECFF1CEC7F
+18A2EC3FB0A215F06E5AA36E5AA26E5AA36EC8FC2E2C7EAA33>I<B539F001FFFCA30007
+90C7EA7FE06C48EC3F800001ED1F00161E0000151C7F6D1418A26D6C5BA26E1370011F14
+60A26D6C5BA2800107495AA2ECF803010391C7FC14FC01011306A2ECFE0E0100130C14FF
+6E5AA215B8EC3FB0A2EC1FE0A36E5AA26E5AA36EC8FCA21406A35CA2141C1418123C007E
+5BB4FC5CA25CEAFE01387C0380D87007C9FCEA3C1EEA0FFCEA03F02E3F7EAA33>121
+D<0170130ED801FCEB3F80486C497EA26D13FFA249137FA26C486D5AD80070010EC7FC90
+CAFCAAEB07FCEB3FFF9038F80FE03903C003F048C66C7E000E6D7ED80FC0137E486C137F
+6D6D7EA36F7EA26C5AEA0380C8FCA4EC0FFF49B5FC90380FFE1FEB3FC0EBFF00EA03FC48
+5A485A485A485A127F5B176048C7FCA3153FA36D137F007F14EF6D9038C7E0C0003F1301
+3A1FE00783F13B07F81E03FF802701FFFC0113003A001FE0007C2B427CC031>228
+D<D9078013F090391FE003FCA2496C487EA46D486C5AA29039078000F090CBFCAB01FEEC
+3F8000FFEC3FFFA3000314000001157F0000153FB3A8167FA316FFA2137E017F5B6D9038
+03BFC0913980073FE0011F010EEBFF80903807E03C903801FFF09026003FC0EB80003142
+7EC036>252 D E /Fp 28 120 df<C312FCA3860380A787>22 D<120FEA3FC0EA7FE0EA
+FFF0A6EA7FE0EA3FC0EA0F000C0C748B25>46 D<EC03FF021F13E0027F13F8903901FE01
+FE903903F8007FD90FE0EB1FC049486D7E49C7EA03F04981017E1401496E7E4848157EA2
+484881A20007178049151F000F17C0A34848ED0FE0A3003F17F0A4007F17F8491507A700
+FF17FCB3A9007F17F8A46D150FA3003F17F0A4001F17E06D151FA3000F17C0A26C6CED3F
+80A2000317006D5D0001167E6D15FE00005E6D1401017F4A5A6D6C495A6D6C495A6D6C49
+5AD907F8EB7F80902701FE01FEC7FC9039007FFFF8021F13E0020390C8FC36607ADD43>
+48 D<15E0140114031407141F143FEB01FF1307137FB6FCEBFE3F13F81380C7FCB3B3B3
+B3A24A7EA2903803FFFE007FB712F0A42C5E74DD43>I<EC1FFC91B512C0010314F0010F
+14FC90391FC01FFF90267E000313C001F801007F4848EC3FF048486E7E496E7E48486E7E
+48C86C7E120E001E6F1380121C003C6F13C012380078EE7FE01270A3B46CED3FF013E0A2
+7FA66C5A6C5A0006C913E0CA127FA318C017FFA24C1380A218005E5F4C5AA24C5A4C5A5F
+163F4C5A5F4CC7FC4B5A4B5A5E4B5A4B5A4B5A4B5A93C8FC157E5D4A5A4A5A4A5A5D4A5A
+4AC9FC143E5C4A157013015C495A494815E0495A49C9FC133E5B017815015B484816C048
+4815034848150748B8FC5AA25A5AB91280A4345E79DD43>I<170FA34D7EA24D7EA34D7E
+A34D7EA34C7F17DFA29338039FFC178FA29338070FFE1707A2040E7F83041E80EE1C01A2
+043C80EE3800A20478800470137FA24C80183FA24B4880181FA24B4880180F03078193C7
+1207A24B81030E80A2031E82031C80A2033C82033880A24B82197FA24B82193FA24A4882
+191F02038392B8FCA24A83A292C912074A83020E82A2021E84021C82A24A8485A24A841A
+7FA24A841A3F0101854A171FA20103854A170FA201078591CB12075B87496C83013F8649
+6C5F48486C85000701F8053F13F0B60407B612F0A45C657CE465>65
+D<B912F8F0FF8019F019FCC66C48C8EA3FFFD91FFC030713C0010F04007FF13FF8F10FFC
+737EF101FF737F747E747E747E747E1A0787747E1A0187741380A2F37FC0A2F33FE0A21C
+F01B1FA21CF8A21B0F1CFCA31CFEA21B07A41CFFAF1CFEA51B0F1CFCA4F31FF8A21CF0A2
+1B3F1CE01B7F1CC0A2F3FF80A2501300505AA2505A505A505A505A1A7F505A4F5B4F48C7
+FCF10FFCF13FF8F1FFE0011F04035BD97FFE033F90C8FCBA12FC19F0198006F8C9FC5862
+79E167>68 D<BC12C0A4C66C48C9FCD91FFC040F13E0010F1701F1007F1A3F1A1F1A0F1A
+071A03A21A01A21BF01A00A41B70A61B381838A41B00A41878A418F8170117031707173F
+91B7FCA402FCC7123F17071703170117001878A41838A31B07A41B0E95C8FCA51B1E1B1C
+A31B3CA41B78A31BF8A21A011A03A2F207F01A0F1A3F1A7FF101FF011F170FD97FFE4BB5
+FCBC12E0A4506279E15C>I<B812FCEFFFE018FCF0FF80C66C48C7000713E0D91FFC9138
+007FF8010FEE0FFCF003FF727F726C7E737E737E86737E737EA2737EA287A28587A96361
+A298C8FC616262190F4F5A624F5AF1FFC04E90C9FCF007FEF01FF8F07FE094380FFF8091
+B748CAFC18E018F802FCC7EA0FFE943801FF809438007FE0727EF00FF8727E727E85727F
+727FA2737EA3737EAA86AA1DE086191FA3070F14017414C007071403496C8390267FFF80
+6FEC0780B700C06E9038800F00736D5A97383FF03E97380FFFFCCD000313F09738003FC0
+5B6479E163>82 D<B600FE94B6FCA4C60280050F13E0D93FFECB6C13806D48953803FE00
+755A010F735A6E61A20107626E18016D62A26F17036D62816D4FC7FCA281027F180EA26F
+171E023F181C81021F60A26F1778020F1870811BF0020760816E4D5AA27015036E60821A
+076E95C8FC82037F160EA270151E033F161C82031F5EA282030F5EA27015F003075E826F
+4B5AA27113036F5E8319076F93C9FC83047F140EA271131E043F141C83193C041F143883
+040F5CA27113F004075C831801705C188170EB8380A218C77091CAFC18E7EF7FEEA218FE
+715AA3715AA2715AA3715AA3715AA260647EE165>86 D<EC3FE0903803FFFC010F13FF90
+393FC03FC090397C000FF001F06D7E48486D7E48486D7E48486D7E48C86C7E7F01F06E7E
+487E6D6E7EA3707EA36C5AEA03E0C9FCA616FF92B5FC140F91387FF80F903803FF00EB0F
+FCEB3FE0495A4848C7FC485A485A485AA2485A485AA24848EE01C0A3485AA3161FA3163F
+6D1437007F157716676D9139E3F80380003FEC01C36C6CEB03836C6C903A0701FC0700D8
+07FE011EEBFE0E3C01FF80FC00FFFE27007FFFF06D5A011F01C0EB3FF0010390C7EA0FC0
+3A4179BF43>97 D<EB03C0EA07FFB5FCA41201EA007FA2133FB3AAEEFF80030713F0031F
+13FE92387E00FFDAC1F0EB3FC0DAC3C0EB0FE0DAC780EB07F802CFC76C7E02DE6E7E02FC
+6E7E4A814A1680F03FC04A151F19E05CF00FF0A219F81807A219FCA3180319FEAD19FCA2
+1807A319F8A2180F19F0A2F01FE080F03FC06E1680187F6EEDFF00023C5D021C4A5A021E
+4A5A90263E0F80EB0FF06E6C495A90263C01E0EB7F80912700FC03FFC7FC92383FFFFC01
+38010F13E090C7000190C8FC3F657BE34B>I<4AB4FC021F13F0027F13FC4948C6B4FCD9
+03F8EB0FC0D90FF0EB03E0D91FC0EB00F04948147849C87E01FE810001163E4848EC01FE
+494A7E00075D5B120F121F5BA2003F6F5A49EC00F894C7FC127FA35B12FFAE6C7EA4123F
+7FA2001FEE03807F000F16076D160012076D5D0003160E6C6C151E6C6C5D6D6C5C6D6C5C
+6D6C495A6D6C495AD907FCEB0F80902701FF807FC7FC9039007FFFFC021F13F0020190C8
+FC31417ABF3C>I<1878EFFFF8161FA4EE003F170FA21707B3AA4AB4FC020F13E0027F13
+F8903901FF807E903A03FC000F87D90FF0EB07C74948EB01E7D93F80EB00F749C8127F01
+FE153F12014848151F49150F120748481507A2485AA2123F5BA2127FA35B12FFAE127F7F
+A3123FA27F121FA26C7E170F12076D151F6C6C153F12016C6C157F6D15F76D6C903801E7
+FC6D6CEB03C7D90FE090380F87FFD907F8D91F0713FED901FE13FC6DB512F0021F13C091
+2603FE00EBFC003F657AE34B>I<EC03FE91381FFFE091B512F8903901FE03FE903A07F0
+007F8049486D7ED93FC06D7E49C76C7E496E7E4914034848814848140100078249140000
+0F8283485A1880123F49153FA2007F17C0A35BA212FF90B8FCA30180CAFCA9127F7FA312
+3FA27F121FEF01C06C7E17036C6C1680A26C6C15070001EE0F006D150E6C6C151E6D6C5C
+6D6C5C6D6C5CD907F0EB03E0D903FC495A902700FF803FC7FC91383FFFFC020F13F00201
+138032417BBF3C>I<ED0FE0ED7FF8913801FFFE913807F03F91390FE01F8091383FC07F
+91397F80FFC05D14FE13015C0103EC7F805C0107EC1E0093C7FCA2495AB3A5B712E0A426
+000FF0C8FCB3B3B0497EEB3FFE003FB6FCA42A657DE429>I<187FDA07F8903803FFC0DA
+3FFF010F13E091B539C03F83F0903B03FC0FF07807903A07F003F9E0903A1FC000FFC049
+48EB7F0091C76CEB03E0496FC7FC01FE6E7EA248486E7EA2000382A2491407000782AA00
+035E6D140FA200015EA26C6C4A5AA2017F4A5A6D92C8FC6E5B6E13FE903937F003F89039
+73FC0FF001E0B512C0023F90C9FCEC07F84848CBFCA57FA37F7F7F6CB4FC91B512FC6DEC
+FFE017FC6D15FF6D16C06D16F0013F8201FEC700037FD803F89138001FFED807E0150748
+48ED01FF484881003FEF7F8090CA123F127EF01FC012FE48170FA66C171F007E1880A200
+7F173F6C6CEE7F00001F177E6C6C5E6D1501D803F8ED07F06C6C4B5A6CB4ED3FC0D93FE0
+49B4C7FCD90FFEEB1FFC0103B612F0D9007F1480020301F0C8FC3C5E7CBF43>I<133C13
+FF487F487FA66C5B6C90C7FC133C90C8FCB3A2EB03C0EA07FF127FA41201EA007FA2133F
+B3B3AC497E497EB612E0A41B5F7CDE25>105 D<EB03C0EA07FFB5FCA41201EA007FA213
+3FB3B3B3B3AD497E497EB612F0A41C647CE325>108 D<D903C0D9FFC0EC07FED807FF01
+0301F891381FFFC0B5010F01FE027F13F0923D3F00FF8001F807FC0378903B3FC003C001
+FEDAC1E090261FE00FC77E0001D9C3C090260FF01E6E7ED8007F49902607F81C6E7E02C7
+C75CD93FCE6E6C486E7E02CC166002DC16E002D85E02F8DA01FF6F7E4A5EA24A93C8FCA4
+4A5DB3B3496C4A6C4B7E496C4A6D4A7EB6D8F007B6D8803FB512FCA4663F7BBE71>I<D9
+03C0EBFF80D807FF010713F8B5011F13FE92383E01FF9239F8007F80DAC1E06D7E0001D9
+C3C06D7E27007FC7806D7E92C7FCD93FCE6E7E14DCA214F8717E5CA25CA45CB3B3496C4A
+7E496C4A7EB6D8F00FB6FCA4403F7BBE4B>I<4AB47E020F13F0027F13FE4AC67ED903F8
+EB1FC0D907E0EB07E0D91FC0EB03F849486D7E49C87E01FE157F49814848ED1F80000317
+C04848ED0FE0A24848ED07F0A2001F17F8491503003F17FCA3007F17FE491501A400FF17
+FFAC007F17FEA26D1503A3003F17FCA2001F17F86D1507A2000F17F06D150F000717E06C
+6CED1FC0A26C6CED3F806C6CED7F00017F15FE6D6C495A6D6C495A6D6C495AD903F8EB1F
+C06DB4EBFF806D6CB448C7FC020F13F00201138038417BBF43>I<D903C0EBFF80D807FF
+010713F0B5011F13FE92387E01FF913AC1F0003FC0DAC3C06D7E0001D9C780EB0FF82600
+7FCFC76C7E02DE6E7ED93FFC6E7E4A804A1680F07FC04A153F19E04A151F19F0A2F00FF8
+A3F007FCA419FE1803ACF007FCA5F00FF8A3F01FF0A2F03FE080F07FC06E168018FF6E4A
+13006E5D02DC4A5A02DE4A5ADACF80495ADAC7C0EB3FE0DAC1E0EB7F809127C0FC03FFC7
+FC92383FFFFC030F13E0030190C8FC92CAFCB3A3497E497EB612F0A43F5B7BBE4B>I<90
+39078007F0D80FFFEB1FFEB5EB7FFF9238F81FC0913881E03F913983C07FE00001EB8780
+D8007F1300148EEB3F9CEE3FC00298EB1F8002B8EB060093C7FC14B014F0A25CA55CB3B1
+497EEBFFF8B612FCA42B3F7BBE34>114 D<9138FFC003010FEBF807017FEBFE0F3A01FF
+003F9FD803F0EB07DF48486DB4FCD80F801300001F8148C8FC003E81007E81127C8212FC
+A3827EA27E7F6C7E6D91C7FC13F8EA3FFE381FFFE014FF6C14F8000314FE6C6E7E6C6C14
+E06D14F801078001008002077FDA003F13801507030113C0ED007F00E0ED3FE0161F17F0
+6C150F1607A36C1503A37EA26C16E016077E17C06D140F6D15806D141FD8FDF0EC3F00D8
+F8F8147E017C495A3AF01F801FF06DB512C0D8E00391C7FC39C0007FF02C417CBF35>I<
+1438A71478A414F8A31301A31303A21307130F131FA2137F13FF1203000F90B512FEB7FC
+A3260007F8C8FCB3AEEE01C0AE16036D6C1480A216076D6C1400A26D6C130E91387F801E
+6E6C5A6E6C5A6EB45A02035BDA007FC7FC2A597ED734>I<D903C0153CD807FFED7FFCB5
+EC0FFFA40001ED001FD8007F1507A2013F1503B3B21707A4170FA2171F011F151B6E143B
+1733010F15736EECE3FE0107EC01C36D6C0103EBFF806D6CD90F8313FF903A00FF803E03
+91383FFFFC020F13F002010180EBFE0040407BBE4B>I<B6D8803FB5D8C001B512F0A400
+0301F0C701F8C7003F1300C601C0DA7FE0EC0FFC017F033F6F5A051F6F5A64133F050F5E
+80011F705DA26E1807010F4B6C92C7FCA26E6001074B6C140E17396E181E0103DB79FE14
+1C17706E183C0101DBF0FF14384D7E6E18786D02016E1370EFC03F038017F0027F01036E
+5BEF801F03C01601023F010702E05BEF000F03E01603021F4902F05B040E130703F01607
+020F011E02F890C8FC041C130303F85E0207013CECFC0E0438130103FC161E02030178EC
+FE1C0470130003FE163C020101F0ECFF384C147F03FF16786E5F4C143FA2037F5E4C141F
+A2033F5E93C8120FA26F5E031E1507030E93C9FC5C3F7EBD61>119
+D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 345 739 a Fp(Ebnf2ps)45 b(\026)g(Automatic)h(Railroad)h
+(Diagram)g(Dra)l(wing)1470 922 y(V)-11 b(ersion)46 b(1.01)1129
+1162 y Fo(P)m(eter)34 b(Thiemann,)e(Mic)m(hael)g(W)-8
+b(alter)768 1278 y(Wilhelm-Sc)m(hic)m(k)j(ard-Institut,)29
+b(Univ)m(ersit\344t)j(T\374bingen)1288 1395 y(Sand)h(13,)f(72076)f
+(T\374bingen)474 1511 y(E-mail:)41 b Fn({thiemann,walterm}@informa)q
+(tik.)q(uni-)q(tueb)q(inge)q(n.de)1335 1624 y Fo(c)1307
+1627 y Fm(\015)o Fo(1996,)32 b(P)m(eter)i(Thiemann)1544
+1822 y(Ma)m(y)g(29,)e(1996)455 2129 y Fl(Ebnf2ps)k(w)n(as)g(written)h
+(to)f(\034ll)h(an)f(urgen)n(t)f(need)i(of)f(the)h(author:)54
+b(to)36 b(pro)r(duce)g(lots)g(of)330 2229 y(syn)n(tax)c(diagrams)f
+(\(railroad)g(diagrams\))g(from)i(a)f(grammar)f(in)i(EBNF)h(notation)e
+(in)h(short)330 2328 y(time.)j(Ov)n(er)23 b(the)h(time)h(the)f(program)
+e(has)i(acquired)f(a)g(couple)h(of)g(features)f(in)i(order)d(to)i
+(ful\034ll)330 2428 y(a)34 b(v)-5 b(ariet)n(y)33 b(of)h(requiremen)n
+(ts.)56 b(The)34 b(curren)n(t)f(v)n(ersion)g(pro)r(duces)g(highly)h
+(readable)f(railroad)330 2528 y(diagrams)26 b(from)h(grammars)e(in)j(v)
+-5 b(arious)26 b(formats:)36 b(Y)-7 b(acc,)28 b(Happ)n(y)f(and)g(EBNF.)
+330 2627 y(The)i(program)e(ma)n(y)h(b)r(e)h(freely)g(used)g(and)g
+(distributed,)g(y)n(ou)g(are)f(ho)n(w)n(ev)n(er)e(required)i(not)h(to)
+330 2727 y(remo)n(v)n(e)20 b(the)i(cop)n(yrigh)n(t)d(notices)j(from)f
+(the)h(source)e(\034les.)35 b(Please)21 b(send)g(an)n(y)g(commen)n(ts,)
+h(bugs,)330 2826 y(etc.)28 b(to)f(the)h(author\(s\).)330
+3101 y Fk(1)131 b(Ho)l(w)44 b(to)g(build)h(it)330 3283
+y Fl(Ebnf2ps)32 b(w)n(as)e(written)h(in)h(Hask)n(ell,)f(a)g
+(non\025strict,)g(purely)g(functional)g(programming)e(lan-)330
+3382 y(guage.)54 b(T)-7 b(o)33 b(build)h(Ebnf2ps)g(y)n(ou)f(need)h(a)f
+(Hask)n(ell)g(Compiler,)i(for)e(example)g(the)h(Glasgo)n(w)330
+3482 y(Hask)n(ell)22 b(Compilation)g(System)h Fj(ghc)1500
+3452 y Fi(1)1559 3482 y Fl(or)f(the)i(Hask)n(ell)e(Compiler)g
+Fj(hbc)g Fl(b)n(y)g(Lennart)h(Augusts-)330 3582 y(son.)431
+3764 y(1.)42 b(Edit)28 b(the)g(Mak)n(e\034le)f(to)g(re\035ect)g(y)n
+(our)g(Hask)n(ell)f(compiler,)h(for)g(example)1191 3964
+y Fj(HC=)42 b(ghc)431 4163 y Fl(2.)g(Find)c(out)f(where)h(y)n(our)e(T)
+1398 4181 y(E)1444 4163 y(X)i(installation)f(stores)g
+Fj(.afm)p Fl(-\034les)e(\(Adob)r(e)j(fon)n(t)g(metric)538
+4262 y(\034les\).)j(Then)29 b(y)n(ou)f(can)h(c)n(hange)f(the)h(v)-5
+b(ariable)28 b Fj(AFMPATH)e Fl(in)k(the)f(Mak)n(e\034le)f(or)g(y)n(ou)g
+(can)538 4362 y(set)e(the)h(en)n(vironmen)n(t)f(v)-5
+b(ariable)26 b Fj(AFMPATH)e Fl(when)i(running)h(the)g(program.)34
+b(The)27 b Fj(.afm)p Fl(-)538 4462 y(\034les)e(are)f(absolutely)g
+(necessary)-7 b(.)34 b(If)26 b(y)n(ou)e(don't)h(\034nd)h(them)f
+(complain)g(to)g(y)n(our)e(system)538 4561 y(administrator)j(or)g(get)i
+(them)g(y)n(ourself)e(from)538 4661 y Fj(ftp://ftp.adobe)o(.c)o(om)o
+(/pu)o(b/)o(ado)o(be)o(/A)o(FMF)o(il)o(es)o(/)p Fl(.)431
+4827 y(3.)42 b(Change)33 b(the)h(v)-5 b(ariable)33 b
+Fj(RGBPATH)e Fl(to)i(con)n(tain)h(the)g(directory)e(where)i(y)n(our)e
+(X)j(instal-)538 4927 y(lation)30 b(stores)f(its)i(color)e(data)h(base)
+g(\(usually)h Fj(/usr/lib/X11/rgb)o(.tx)o(t)p Fl(\).)40
+b(This)30 b(can)538 5026 y(also)23 b(b)r(e)h(corrected)f(later)h(with)g
+(the)h(en)n(vironmen)n(t)e(v)-5 b(ariable)23 b Fj(RGBPATH)p
+Fl(.)f(There)h(are)g(fall-)538 5126 y(bac)n(k)j(color)h(de\034nitions)h
+(for)f(the)h(8)f Fh(digital)38 b Fl(colors)26 b(\(blac)n(k,)i(white,)g
+(blue,)g(green,)f(cy)n(an,)538 5226 y(red,)g(magen)n(ta,)f(y)n(ello)n
+(w\),)h(so)g(nothing)g(needs)g(b)r(e)h(done)g(if)g(that's)f(enough)g
+(for)g(y)n(ou.)431 5392 y(4.)42 b(T)n(yping)28 b Fj(make)e
+Fl(should)h(pro)r(duce)g(an)g(executable)g(\034le)h(named)g(Ebnf2ps.)p
+330 5461 1200 4 v 422 5514 a Fg(1)457 5538 y Ff(GHC)c(home)f(page)h
+(URL)g Fe(http://www.dcs.glasgow.ac)q(.uk/)q(fp/)q(soft)q(ware)q(/gh)q
+(c.ht)q(ml)p Ff(.)1809 5919 y Fl(1)p eop
+%%Page: 2 2
+2 1 bop 330 390 a Fk(2)131 b(Ho)l(w)44 b(to)g(use)f(it)330
+572 y Fl(The)28 b(syn)n(tax)e(is)330 738 y Fj(Ebnf2ps)41
+b([options])e(Grammarfile)g(Nonterminal)g(...)j([--)h(Nonterminal)c
+(...])330 904 y Fl(where)18 b(the)h Fj(options)c Fl(are)j(describ)r(ed)
+g(in)g(Sec.)h(2.1,)g(the)g(syn)n(tax)f(of)g(the)h(input)g(\034le)g
+Fj(Grammarfile)330 1004 y Fl(in)33 b(Sec.)g(2.2,)g(and)g
+Fj(Nonterminal)28 b Fl(describ)r(es)k(the)h(non)n(terminals,)g(for)f
+(whic)n(h)h(diagrams)e(are)330 1103 y(to)g(b)r(e)h(generated,)f(as)g
+(regular)e(expressions)h(\(see)h(Sec.)h(2.3\).)47 b(The)32
+b(non)n(terminals)e(after)h(the)330 1203 y(sym)n(b)r(ol)c
+Fj(--)g Fl(are)f(used)i(only)f(with)h(the)g(option)f
+Fj(+unfold)e Fl(\(see)i(Sec.)h(2.1)f(and)g(2.4\).)330
+1435 y Fd(2.1)112 b(Options)330 1589 y Fl(The)31 b(follo)n(wing)e(list)
+i(sho)n(ws)f(all)g Fc(options)f Fl(with)j(their)e Fh(p)l(ar)l(ameters)
+38 b Fl(and)31 b(their)f(\(default)i(v)-5 b(al-)330 1688
+y(ues\).)37 b(All)27 b(distances)g(and)f(sizes)h(measured)f(in)h(1/100)
+e(p)r(oin)n(t)i(\(1)g(p)r(oin)n(t)g(is)g(ab)r(out)g(1/72)e(inc)n(h\).)
+330 1788 y(Changes)f(with)i(resp)r(ect)e(to)h(the)h(last)e(v)n(ersion)g
+(of)h(Ebnf2ps:)36 b(some)2471 1785 y(n)2453 1788 y Fb(\015)p
+Fl(ew)25 b(features,)g(extension)330 1887 y(of)j(grammar)d
+(transformations)h(and)h(bug)g(\034xes.)330 2070 y Fc(-titleF)-8
+b(on)m(t)31 b Fa(font)50 b Fl(\(Times-Roman\))34 b(P)n(ostScript)g(fon)
+n(t)g(used)h(for)e(titles)i(of)g(diagrams,)f(an)n(y)562
+2170 y(fon)n(t)f(go)r(es)f(here)g(that)h(y)n(our)e(prin)n(ter)h(kno)n
+(ws)f(and)i(for)f(whic)n(h)h(y)n(ou)e(ha)n(v)n(e)h(fetc)n(hed)h(the)562
+2269 y(AFM)c(\034les.)36 b(Figure)27 b(1)g(sho)n(ws)g(a)g(sample)g
+(list)h(of)f(fon)n(t)h(names.)2606 2266 y(n)2587 2269
+y Fb(\015)330 2398 y Fc(-titleScale)j Fa(int)49 b Fl(\(10\))27
+b(P)n(oin)n(tsize)g(of)h(t)n(yp)r(eface)f(for)g(titles)h(of)f
+(diagrams.)2690 2395 y(n)2673 2398 y Fb(\015)330 2526
+y Fc(-titleColor)j Fa(c)-5 b(olor)50 b Fl(\(blac)n(k\))28
+b(Color)e(of)h(t)n(yp)r(eface)h(for)f(titles)h(of)f(diagrams.)2815
+2523 y(n)2796 2526 y Fb(\015)330 2654 y Fc(-n)m(tF)-8
+b(on)m(t)32 b Fa(font)50 b Fl(\(Times-Roman\))27 b(P)n(ostScript)h(fon)
+n(t)f(used)h(for)f(non)n(terminals.)330 2782 y Fc(-n)m(tScale)32
+b Fa(int)49 b Fl(\(10\))27 b(P)n(oin)n(tsize)g(of)h(t)n(yp)r(eface)f
+(for)g(non)n(terminals.)330 2910 y Fc(-n)m(tColor)k Fa(c)-5
+b(olor)51 b Fl(\(blac)n(k\))27 b(Color)f(of)i(t)n(yp)r(eface)f(for)g
+(non)n(terminals.)330 3039 y Fc(-n)m(tBg)32 b Fa(c)-5
+b(olor)50 b Fl(\(white\))29 b(Bac)n(kground)c(color)h(of)i(t)n(yp)r
+(eface)f(for)g(non)n(terminals.)2864 3036 y(n)2847 3039
+y Fb(\015)330 3167 y Fc(-n)m(tBo)m(xColor)32 b Fa(c)-5
+b(olor)50 b Fl(\(blac)n(k\))27 b(Color)g(used)g(for)g(outlines)h(of)f
+(b)r(o)n(xes)g(\(non)n(terminals\).)3161 3164 y(n)3143
+3167 y Fb(\015)330 3295 y Fc(-tF)-8 b(on)m(t)32 b Fa(font)50
+b Fl(\(Times-Roman\))27 b(P)n(ostScript)g(fon)n(t)h(used)f(for)g
+(terminal)h(strings.)330 3423 y Fc(-tScale)k Fa(int)49
+b Fl(\(10\))27 b(P)n(oin)n(tsize)g(of)h(t)n(yp)r(eface)f(for)g
+(terminals.)330 3552 y Fc(-tColor)k Fa(c)-5 b(olor)50
+b Fl(\(blac)n(k\))28 b(Color)e(of)h(t)n(yp)r(eface)h(for)f(terminals.)
+330 3680 y Fc(-tBg)k Fa(c)-5 b(olor)51 b Fl(\(white\))28
+b(Bac)n(kground)d(color)i(of)g(t)n(yp)r(eface)h(for)f(terminals.)2682
+3677 y(n)2665 3680 y Fb(\015)330 3808 y Fc(-tBo)m(xColor)k
+Fa(c)-5 b(olor)51 b Fl(\(blac)n(k\))27 b(Color)f(used)i(for)f(outlines)
+g(of)h(b)r(o)n(xes)e(\(terminals\).)2979 3805 y(n)2960
+3808 y Fb(\015)330 3936 y Fc(-b)s(orderDistX)31 b Fa(int)49
+b Fl(\(500\))27 b(Horizon)n(tal)f(distance)h(of)h(ob)5
+b(jects)27 b(from)g(their)g(con)n(tainer.)330 4064 y
+Fc(-b)s(orderDistY)k Fa(int)49 b Fl(\(500\))27 b(V)-7
+b(ertical)27 b(distance)g(of)h(ob)5 b(jects)27 b(from)g(their)g(con)n
+(tainer.)330 4193 y Fc(-lineWidth)j Fa(int)49 b Fl(\(30\))27
+b(Width)i(of)e(lines)h(used)f(for)g(connecting)g(lines.)330
+4321 y Fc(-fatLineWidth)k Fa(int)49 b Fl(\(100\))27 b(Width)i(of)e
+(lines)h(used)f(for)g(dra)n(wing)f(b)r(o)n(xes.)330 4449
+y Fc(-lineColor)k Fa(c)-5 b(olor)50 b Fl(\(blac)n(k\))27
+b(Color)g(used)g(for)g(connecting)g(lines.)330 4577 y
+Fc(-arro)m(wSize)32 b Fa(int)49 b Fl(\(200\))27 b(Size)h(of)f(\(in)n
+(visible\))h(b)r(o)n(x)f(con)n(taining)g(an)g(arro)n(w.)330
+4705 y Fc(-rgbFileName)g Fa(\034lename)49 b Fl(\(rgb.txt\))28
+b(File)f(name)h(for)f(color)f(de\034nitions.)330 4834
+y Fc(-happ)m(y)43 b Fl(Accept)27 b(happ)n(y)f(format)g(input)i
+(\034les.)37 b(Happ)n(y)-7 b(,)26 b(written)h(b)n(y)g(Andy)g(Gill)g
+(and)g(Simon)562 4933 y(Marlo)n(w,)k(is)g(a)g(parser)f(generator)f
+(system)i(\(LALR\(1\)\))i(for)d(Hask)n(ell,)i(similar)e(to)i(the)562
+5033 y(to)r(ol)c(y)n(acc)e(for)h(C)1102 5003 y Fi(2)1139
+5033 y Fl(.)330 5161 y Fc(-y)m(acc)43 b Fl(Accept)28
+b(y)n(acc/bison)e(format)h(input)h(\034les.)1948 5158
+y(n)1930 5161 y Fb(\015)330 5289 y Fc(+ps)67 b Fl(Pro)r(duce)28
+b(encapsulated)f(P)n(ostScript)g(output)h(\(default\).)330
+5418 y Fc(+\034g)57 b Fl(Pro)r(duce)28 b(\034g)f(output)h(\(F)n(ORMA)-7
+b(T)28 b(3.1\).)p 330 5491 1200 4 v 422 5545 a Fg(2)457
+5568 y Ff(The)22 b(program)g(Happ)n(y)h(is)e(a)n(v)l(ailable)h(b)n(y)g
+(FTP)f(from)g Fe(ftp.dcs.glasgow.ac.uk)27 b Ff(in)21
+b Fe(pub/haskell/happy)1809 5919 y Fl(2)p eop
+%%Page: 3 3
+3 2 bop 651 311 2358 4 v 649 410 4 100 v 701 380 a Fl(A)n
+(Garamond-Bold)p 1888 410 V 595 w(A)n(Garamond-BoldItalic)p
+3007 410 V 649 510 V 701 480 a(A)n(Garamond-Italic)p
+1888 510 V 578 w(A)n(Garamond-Regular)p 3007 510 V 649
+609 V 701 579 a(A)n(Garamond-Semib)r(old)p 1888 609 V
+431 w(A)n(Garamond-Semib)r(oldItalic)p 3007 609 V 649
+709 V 701 679 a(A)n(GaramondAlt-Italic)p 1888 709 V 461
+w(A)n(GaramondAlt-Regular)p 3007 709 V 649 809 V 701
+779 a(A)n(GaramondExp-Bold)p 1888 809 V 449 w(A)n
+(GaramondExp-BoldItalic)p 3007 809 V 649 908 V 701 878
+a(A)n(GaramondExp-Italic)p 1888 908 V 432 w(A)n(GaramondExp-Semib)r
+(old)p 3007 908 V 649 1008 V 701 978 a(A)n(GaramondExp-Semib)r
+(oldItalic)p 1888 1008 V 98 w(A)-9 b(v)k(an)n(tGarde-Bo)r(ok)p
+3007 1008 V 649 1108 V 701 1078 a(A)c(v)k(an)n(tGarde-Bo)r(okOblique)p
+1888 1108 V 304 w(A)c(v)k(an)n(tGarde-Demi)p 3007 1108
+V 649 1207 V 701 1177 a(A)c(v)k(an)n(tGarde-DemiOblique)p
+1888 1207 V 301 w(Bo)r(okman-Demi)p 3007 1207 V 649 1307
+V 701 1277 a(Bo)r(okman-DemiItalic)p 1888 1307 V 485
+w(Bo)r(okman-Ligh)n(t)p 3007 1307 V 649 1406 V 701 1377
+a(Bo)r(okman-Ligh)n(tItalic)p 1888 1406 V 484 w(Courier-Bold)p
+3007 1406 V 649 1506 V 701 1476 a(Courier-BoldOblique)p
+1888 1506 V 482 w(Courier-Oblique)p 3007 1506 V 649 1606
+V 701 1576 a(Courier)p 1888 1606 V 964 w(Helv)n(etica-Bold)p
+3007 1606 V 649 1705 V 701 1675 a(Helv)n(etica-BoldOblique)p
+1888 1705 V 421 w(Helv)n(etica-Narro)n(w-Bold)p 3007
+1705 V 649 1805 V 701 1775 a(Helv)n(etica-Narro)n(w-BoldOblique)p
+1888 1805 V 123 w(Helv)n(etica-Narro)n(w-Oblique)p 3007
+1805 V 649 1905 V 701 1875 a(Helv)n(etica-Narro)n(w)p
+1888 1905 V 605 w(Helv)n(etica-Oblique)p 3007 1905 V
+649 2004 V 701 1974 a(Helv)n(etica)p 1888 2004 V 903
+w(NewCen)n(turySc)n(hlbk-Bold)p 3007 2004 V 649 2104
+V 701 2074 a(NewCen)n(turySc)n(hlbk-BoldItalic)p 1888
+2104 V 158 w(NewCen)n(turySc)n(hlbk-Italic)p 3007 2104
+V 649 2203 V 701 2174 a(NewCen)n(turySc)n(hlbk-Roman)p
+1888 2203 V 255 w(Optima-Bold)p 3007 2203 V 649 2303
+V 701 2273 a(Optima)p 1888 2303 V 961 w(P)n(alatino-Bold)p
+3007 2303 V 649 2403 V 701 2373 a(P)n(alatino-BoldItalic)p
+1888 2403 V 549 w(P)n(alatino-Italic)p 3007 2403 V 649
+2502 V 701 2472 a(P)n(alatino-Oblique)p 1888 2502 V 622
+w(P)n(alatino-Roman)p 3007 2502 V 649 2602 V 701 2572
+a(StoneInformal-Bold)p 1888 2602 V 527 w(StoneInformal-BoldItalic)p
+3007 2602 V 649 2702 V 701 2672 a(StoneInformal-Italic)p
+1888 2702 V 510 w(StoneInformal-Semib)r(old)p 3007 2702
+V 649 2801 V 701 2771 a(StoneInformal-Semib)r(oldItalic)p
+1888 2801 V 176 w(StoneInformal)p 3007 2801 V 649 2901
+V 701 2871 a(StoneSans)p 1888 2901 V 868 w(StoneSerif-Bold)p
+3007 2901 V 649 3000 V 701 2971 a(StoneSerif-BoldItalic)p
+1888 3000 V 486 w(StoneSerif-Italic)p 3007 3000 V 649
+3100 V 701 3070 a(StoneSerif-Semib)r(old)p 1888 3100
+V 509 w(StoneSerif-Semib)r(oldItalic)p 3007 3100 V 649
+3200 V 701 3170 a(StoneSerif)p 1888 3200 V 871 w(Sym)n(b)r(ol)p
+3007 3200 V 649 3299 V 701 3269 a(Times-Bold)p 1888 3299
+V 818 w(Times-BoldItalic)p 3007 3299 V 649 3399 V 701
+3369 a(Times-Italic)p 1888 3399 V 801 w(Times-Oblique)p
+3007 3399 V 649 3499 V 701 3469 a(Times-Roman)p 1888
+3499 V 728 w(ZapfChancery-MediumItalic)p 3007 3499 V
+649 3598 V 701 3568 a(ZapfDingbats)p 1888 3598 V 3007
+3598 V 651 3601 2358 4 v 1188 3833 a(Figure)27 b(1:)36
+b(Sample)28 b(list)g(of)f(fon)n(t)h(names)330 4098 y
+Fc(+ebnf)42 b Fl(Pro)r(duce)35 b(grammar)e(in)i(EBNF)h(notation)f
+(\(\034le)g(extension)g(".BNF"\))f(for)h(y)n(acc)f(or)562
+4198 y(happ)n(y)27 b(input)i(format)e(\034les.)1483 4195
+y(n)1465 4198 y Fb(\015)330 4326 y Fc(+simplify)37 b
+Fl(Simplify)28 b(pro)r(ductions)f(\(exp)r(erimen)n(tal,)h(default:)37
+b(don't\).)330 4454 y Fc(+unfold)k Fl(Replace)27 b(non)n(terminals)g
+(in)g(pro)r(ductions)g(\(exp)r(erimen)n(tal,)h(default:)37
+b(don't\).)g(See)562 4554 y(Sec.)28 b(2.4.)881 4551 y(n)863
+4554 y Fb(\015)330 4682 y Fc(-v)m(erb)s(ose)41 b Fl(Prin)n(ts)27
+b(some)g(progress)f(messages.)330 4810 y Fc(-help)41
+b Fl(Prin)n(ts)18 b(a)g(brief)h(description)e(of)i(the)f(command)g
+(line,)j(the)e(options)f(with)h(their)f(defaults,)562
+4910 y(and)28 b(the)g(en)n(vironmen)n(t)e(v)-5 b(ariables.)330
+5225 y Fd(2.2)112 b(Syn)m(tax)38 b(of)g(EBNF)f(Files)330
+5379 y Fl(The)20 b(follo)n(wing)f(grammar)f(and)i(diagrams)e(describ)r
+(e)h(the)i(standard)e(input)h(format)g(\(e.g.)34 b(with-)330
+5478 y(out)28 b Fc(-y)m(acc)h Fl(or)e Fc(-happ)m(y)q
+Fl(\))i(as)e(w)n(ell)g(as)g(the)h(output)g(format)f(with)h(the)g
+Fc(+ebnf)37 b Fl(option.)330 5661 y Fj(File)521 b(=)43
+b({Production};)1809 5919 y Fl(3)p eop
+%%Page: 4 4
+4 3 bop 330 390 a Fj(Production)257 b(=)43 b(Nonterminal)c([)k(String)e
+(])j("=")e(Term)g(";")g(;)330 490 y(Term)521 b(=)43 b(Factor)e(/)j("|")
+e(;)392 b(#)43 b(alternative)330 589 y(Factor)433 b(=)43
+b(ExtAtom)e(+)i(;)523 b(#)43 b(sequence)330 689 y(ExtAtom)389
+b(=)43 b(Atom)1027 789 y(|)g(Atom)f("/")h(Atom)434 b(#)43
+b(repetition)c(through)i(Atom)1027 888 y(|)i(Atom)f("+";)609
+b(#)43 b(at)f(least)g(one)g(repetition)330 988 y(Atom)521
+b(=)43 b(Nonterminal)1027 1088 y(|)g(String)739 b(#)43
+b(terminal)d(string)1027 1187 y(|)j("\(")g(Term)f("\)")1027
+1287 y(|)h("[")g(Term)f("]")478 b(#)43 b(an)f(optional)f(Term)1027
+1386 y(|)i("{")g(Term)f("}")478 b(#)43 b(zero)f(or)g(more)g
+(repetitions)1027 1486 y(;)330 1586 y(String)433 b(=)43
+b("\\"")f({)h(Character)d(})j("\\"")f(;)330 1685 y(Nonterminal)213
+b(=)43 b(letter)e({)j(letter)d(|)i(digit)e(|)i("_")g(|)g(".")f(})h(;)
+330 1785 y(Character)301 b(=)43 b(character)1027 1885
+y(|)g(["\\\\"])e(anycharacter)e(;)455 2067 y Fl(Or)26
+b(in)i(terms)f(of)h(diagrams)e(\(what)h(w)n(ould)h(y)n(ou)e(exp)r
+(ect\):)330 2513 y @beginspecial 0 @llx 0 @lly 90 @urx
+42 @ury 900 @rwi @setspecial
+%%BeginDocument: File.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 5.25 54.89 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 25.50 10.42 m(Production) show
+ 0.30 slw
+n 76.89 15.25 m -2 -2 rl 2 -2 rl s
+n 10 0.25 m 74.89 0 rl s
+n 20 0.25 m 15 0.25 15 5.25 5 apr
+ 15 5.25 l s
+n 15 8.25 m 15 13.25 20 13.25 5 apr
+ 20 13.25 l s
+n 74.89 0.25 m 79.89 0.25 79.89 5.25 5 apr
+ 79.89 5.25 l s
+n 79.89 8.25 m 79.89 13.25 74.89 13.25 5 apr
+ 74.89 13.25 l s
+n 15 5.25 m 0 3 rl s
+n 79.89 5.25 m 0 3 rl s
+n 84.89 0.25 m 5 0 rl s
+n 87.89 2.25 m 2 -2 rl -2 -2 rl s
+ 0 33.42 m(File) show
+n 0 0.25 m 10 0 rl s
+n 8 2.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 425 x @beginspecial 0 @llx 0 @lly 229 @urx
+50 @ury 2290 @rwi @setspecial
+%%BeginDocument: Production.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  10 0.25 61.55 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 15.50 5.42 m(Nonterminal) show
+ 0.30 slw
+n 71.55 8.25 m 5 0 rl s
+n 74.55 10.25 m 2 -2 rl -2 -2 rl s
+ 91.55 13.25 35.45 16 0.50 255 255 255 Box
+ 97.05 18.42 m(String) show
+ 0.30 slw
+n 89.55 23.25 m 2 -2 rl -2 -2 rl s
+n 76.55 8.25 m 65.45 0 rl s
+n 76.55 8.25 m 81.55 8.25 81.55 13.25 5 apr
+ 81.55 13.25 l s
+n 81.55 16.25 m 81.55 21.25 86.55 21.25 5 apr
+ 86.55 21.25 l s
+n 86.55 21.25 m 5 0 rl s
+n 142 8.25 m 137 8.25 137 13.25 5 apr
+ 137 13.25 l s
+n 137 16.25 m 137 21.25 132 21.25 5 apr
+ 132 21.25 l s
+n 127 21.25 m 5 0 rl s
+n 81.55 13.25 m 0 3 rl s
+n 137 13.25 m 0 3 rl s
+n 142 8.25 m 5 0 rl s
+n 145 10.25 m 2 -2 rl -2 -2 rl s
+ 147 0.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  152.50 5.82 m(=) show
+ 0 0 0 scol  0.30 slw
+n 164 8.25 m 5 0 rl s
+n 167 10.25 m 2 -2 rl -2 -2 rl s
+ 169 0.25 32.66 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 174.50 5.42 m(Term) show
+ 0.30 slw
+n 201.66 8.25 m 5 0 rl s
+n 204.66 10.25 m 2 -2 rl -2 -2 rl s
+ 206.66 0.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  212.16 5.82 m(;) show
+ 0 0 0 scol  0.30 slw
+n 223.66 8.25 m 5 0 rl s
+n 226.66 10.25 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 41.42 m(Production) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 491 x @beginspecial 0 @llx 0 @lly 72 @urx
+58 @ury 720 @rwi @setspecial
+%%BeginDocument: Term.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 0.25 36.55 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 25.50 5.42 m(Factor) show
+ 29.77 21.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  35.27 26.82 m(|) show
+ 0 0 0 scol  0.30 slw
+n 48.77 31.25 m -2 -2 rl 2 -2 rl s
+n 10 8.25 m 10 0 rl s
+n 56.55 8.25 m 10 0 rl s
+n 20 29.25 m 9.77 0 rl s
+n 46.77 29.25 m 9.77 0 rl s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 24.25 m 15 29.25 20 29.25 5 apr
+ 20 29.25 l s
+n 56.55 8.25 m 61.55 8.25 61.55 13.25 5 apr
+ 61.55 13.25 l s
+n 61.55 24.25 m 61.55 29.25 56.55 29.25 5 apr
+ 56.55 29.25 l s
+n 15 13.25 m 0 11 rl s
+n 61.55 13.25 m 0 11 rl s
+n 66.55 8.25 m 5 0 rl s
+n 69.55 10.25 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 49.42 m(Term) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 359 x @beginspecial 0 @llx 0 @lly 83 @urx
+42 @ury 830 @rwi @setspecial
+%%BeginDocument: Factor.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 0.25 47.67 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 25.50 5.42 m(ExtAtom) show
+ 0.30 slw
+n 10 8.25 m 10 0 rl s
+n 67.67 8.25 m 10 0 rl s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 16.25 m 15 21.25 20 21.25 5 apr
+ 20 21.25 l s
+n 67.67 8.25 m 72.67 8.25 72.67 13.25 5 apr
+ 72.67 13.25 l s
+n 72.67 16.25 m 72.67 21.25 67.67 21.25 5 apr
+ 67.67 21.25 l s
+n 15 13.25 m 0 3 rl s
+n 72.67 13.25 m 0 3 rl s
+n 20 21.25 m 47.67 0 rl s
+n 45.83 23.25 m -2 -2 rl 2 -2 rl s
+n 77.67 8.25 m 5 0 rl s
+n 80.67 10.25 m 2 -2 rl -2 -2 rl s
+ 0 33.42 m(Factor) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 666 x @beginspecial 0 @llx 0 @lly 130 @urx
+79 @ury 1300 @rwi @setspecial
+%%BeginDocument: ExtAtom.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 42.25 33.78 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 25.50 47.42 m(Atom) show
+ 20 21.25 33.78 16 0.50 255 255 255 Box
+ 25.50 26.42 m(Atom) show
+ 0.30 slw
+n 53.78 29.25 m 5 0 rl s
+n 56.78 31.25 m 2 -2 rl -2 -2 rl s
+ 58.78 21.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  64.28 26.82 m(/) show
+ 0 0 0 scol  0.30 slw
+n 75.78 29.25 m 5 0 rl s
+n 78.78 31.25 m 2 -2 rl -2 -2 rl s
+ 80.78 21.25 33.78 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 86.28 26.42 m(Atom) show
+ 20 0.25 33.78 16 0.50 255 255 255 Box
+ 25.50 5.42 m(Atom) show
+ 0.30 slw
+n 53.78 8.25 m 5 0 rl s
+n 56.78 10.25 m 2 -2 rl -2 -2 rl s
+ 58.78 0.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  64.28 5.82 m(+) show
+ 0 0 0 scol  0.30 slw
+n 10 29.25 m 5 0 rl s
+n 119.56 29.25 m 5 0 rl s
+n 15 45.25 m 15 50.25 20 50.25 5 apr
+ 20 50.25 l s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 13.25 m 0 32 rl s
+n 119.56 45.25 m 119.56 50.25 114.56 50.25 5 apr
+ 114.56 50.25 l s
+n 114.56 8.25 m 119.56 8.25 119.56 13.25 5 apr
+ 119.56 13.25 l s
+n 119.56 13.25 m 0 32 rl s
+n 15 29.25 m 5 0 rl s
+n 114.56 29.25 m 5 0 rl s
+n 53.78 50.25 m 60.78 0 rl s
+n 114.56 29.25 m 0 0 rl s
+n 75.78 8.25 m 38.78 0 rl s
+n 124.56 29.25 m 5 0 rl s
+n 127.56 31.25 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 70.42 m(ExtAtom) show
+n 0 29.25 m 10 0 rl s
+n 8 31.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 1017 x @beginspecial 0 @llx 0 @lly 112 @urx
+121 @ury 1120 @rwi @setspecial
+%%BeginDocument: Atom.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 84.25 61.55 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 25.50 89.42 m(Nonterminal) show
+ 20 63.25 35.45 16 0.50 255 255 255 Box
+ 25.50 68.42 m(String) show
+ 20 42.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  25.50 47.82 m(\() show
+ 0 0 0 scol  0.30 slw
+n 37 50.25 m 5 0 rl s
+n 40 52.25 m 2 -2 rl -2 -2 rl s
+ 42 42.25 32.66 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 47.50 47.42 m(Term) show
+ 0.30 slw
+n 74.66 50.25 m 5 0 rl s
+n 77.66 52.25 m 2 -2 rl -2 -2 rl s
+ 79.66 42.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  85.16 47.82 m(\)) show
+ 0 0 0 scol  20 21.25 17 16 0.50 0 0 0 RBox
+ 255 255 255 scol  25.50 26.82 m([) show
+ 0 0 0 scol  0.30 slw
+n 37 29.25 m 5 0 rl s
+n 40 31.25 m 2 -2 rl -2 -2 rl s
+ 42 21.25 32.66 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 47.50 26.42 m(Term) show
+ 0.30 slw
+n 74.66 29.25 m 5 0 rl s
+n 77.66 31.25 m 2 -2 rl -2 -2 rl s
+ 79.66 21.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  85.16 26.82 m(]) show
+ 0 0 0 scol  20 0.25 17 16 0.50 0 0 0 RBox
+ 255 255 255 scol  25.50 5.82 m({) show
+ 0 0 0 scol  0.30 slw
+n 37 8.25 m 5 0 rl s
+n 40 10.25 m 2 -2 rl -2 -2 rl s
+ 42 0.25 32.66 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 47.50 5.42 m(Term) show
+ 0.30 slw
+n 74.66 8.25 m 5 0 rl s
+n 77.66 10.25 m 2 -2 rl -2 -2 rl s
+ 79.66 0.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  85.16 5.82 m(}) show
+ 0 0 0 scol  0.30 slw
+n 10 50.25 m 5 0 rl s
+n 101.66 50.25 m 5 0 rl s
+n 15 87.25 m 15 92.25 20 92.25 5 apr
+ 20 92.25 l s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 13.25 m 0 74 rl s
+n 101.66 87.25 m 101.66 92.25 96.66 92.25 5 apr
+ 96.66 92.25 l s
+n 96.66 8.25 m 101.66 8.25 101.66 13.25 5 apr
+ 101.66 13.25 l s
+n 101.66 13.25 m 0 74 rl s
+n 15 71.25 m 5 0 rl s
+n 15 50.25 m 5 0 rl s
+n 15 29.25 m 5 0 rl s
+n 96.66 71.25 m 5 0 rl s
+n 96.66 50.25 m 5 0 rl s
+n 96.66 29.25 m 5 0 rl s
+n 81.55 92.25 m 15.11 0 rl s
+n 55.45 71.25 m 41.21 0 rl s
+n 96.66 50.25 m 0 0 rl s
+n 96.66 29.25 m 0 0 rl s
+n 96.66 8.25 m 0 0 rl s
+n 106.66 50.25 m 5 0 rl s
+n 109.66 52.25 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 112.42 m(Atom) show
+n 0 50.25 m 10 0 rl s
+n 8 52.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 1809 5919 a(4)p eop
+%%Page: 5 5
+5 4 bop 330 724 a @beginspecial 0 @llx 0 @lly 129 @urx
+50 @ury 1290 @rwi @setspecial
+%%BeginDocument: String.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  10 0.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  15.50 5.82 m(") show
+ 0 0 0 scol  0.30 slw
+n 27 8.25 m 5 0 rl s
+n 30 10.25 m 2 -2 rl -2 -2 rl s
+ 42 13.25 49.87 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 47.50 18.42 m(Character) show
+ 0.30 slw
+n 93.87 23.25 m -2 -2 rl 2 -2 rl s
+n 32 8.25 m 69.87 0 rl s
+n 42 8.25 m 37 8.25 37 13.25 5 apr
+ 37 13.25 l s
+n 37 16.25 m 37 21.25 42 21.25 5 apr
+ 42 21.25 l s
+n 91.87 8.25 m 96.87 8.25 96.87 13.25 5 apr
+ 96.87 13.25 l s
+n 96.87 16.25 m 96.87 21.25 91.87 21.25 5 apr
+ 91.87 21.25 l s
+n 37 13.25 m 0 3 rl s
+n 96.87 13.25 m 0 3 rl s
+n 101.87 8.25 m 5 0 rl s
+n 104.87 10.25 m 2 -2 rl -2 -2 rl s
+ 106.87 0.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  112.37 5.82 m(") show
+ 0 0 0 scol  0.30 slw
+n 123.87 8.25 m 5 0 rl s
+n 126.87 10.25 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 41.42 m(String) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 950 x @beginspecial 0 @llx 0 @lly 124 @urx
+113 @ury 1240 @rwi @setspecial
+%%BeginDocument: Nonterminal.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  10 0.25 31.55 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 15.50 5.42 m(letter) show
+ 0.30 slw
+n 41.55 8.25 m 5 0 rl s
+n 44.55 10.25 m 2 -2 rl -2 -2 rl s
+ 66.55 76.25 31.55 16 0.50 255 255 255 Box
+ 72.05 81.42 m(letter) show
+ 68.76 55.25 29.34 16 0.50 255 255 255 Box
+ 74.26 60.42 m(digit) show
+ 81.10 34.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  86.60 39.82 m(_) show
+ 0 0 0 scol  81.10 13.25 17 16 0.50 0 0 0 RBox
+ 255 255 255 scol  86.60 18.82 m(.) show
+ 0 0 0 scol  0.30 slw
+n 56.55 52.75 m 5 0 rl s
+n 103.10 52.75 m 5 0 rl s
+n 61.55 79.25 m 61.55 84.25 66.55 84.25 5 apr
+ 66.55 84.25 l s
+n 66.55 21.25 m 61.55 21.25 61.55 26.25 5 apr
+ 61.55 26.25 l s
+n 61.55 26.25 m 0 53 rl s
+n 103.10 79.25 m 103.10 84.25 98.10 84.25 5 apr
+ 98.10 84.25 l s
+n 98.10 21.25 m 103.10 21.25 103.10 26.25 5 apr
+ 103.10 26.25 l s
+n 103.10 26.25 m 0 53 rl s
+n 61.55 63.25 m 5 0 rl s
+n 61.55 42.25 m 5 0 rl s
+n 98.10 63.25 m 5 0 rl s
+n 98.10 42.25 m 5 0 rl s
+n 66.55 84.25 m 0 0 rl s
+n 66.55 63.25 m 2.21 0 rl s
+n 66.55 42.25 m 14.55 0 rl s
+n 66.55 21.25 m 14.55 0 rl s
+n 110.10 54.75 m -2 -2 rl 2 -2 rl s
+n 46.55 8.25 m 71.55 0 rl s
+n 56.55 8.25 m 51.55 8.25 51.55 13.25 5 apr
+ 51.55 13.25 l s
+n 51.55 47.75 m 51.55 52.75 56.55 52.75 5 apr
+ 56.55 52.75 l s
+n 108.10 8.25 m 113.10 8.25 113.10 13.25 5 apr
+ 113.10 13.25 l s
+n 113.10 47.75 m 113.10 52.75 108.10 52.75 5 apr
+ 108.10 52.75 l s
+n 51.55 13.25 m 0 34.50 rl s
+n 113.10 13.25 m 0 34.50 rl s
+n 118.10 8.25 m 5 0 rl s
+n 121.10 10.25 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 104.42 m(Nonterminal) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 600 x @beginspecial 0 @llx 0 @lly 150 @urx
+71 @ury 1500 @rwi @setspecial
+%%BeginDocument: Character.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 34.25 47.64 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 25.50 39.42 m(character) show
+ 35 13.25 17 16 0.50 0 0 0 RBox
+/Courier-Bold findfont 10 scalefont setfont
+ 255 255 255 scol  40.50 18.82 m(\\) show
+ 0 0 0 scol  0.30 slw
+n 33 23.25 m 2 -2 rl -2 -2 rl s
+n 20 8.25 m 47 0 rl s
+n 20 8.25 m 25 8.25 25 13.25 5 apr
+ 25 13.25 l s
+n 25 16.25 m 25 21.25 30 21.25 5 apr
+ 30 21.25 l s
+n 30 21.25 m 5 0 rl s
+n 67 8.25 m 62 8.25 62 13.25 5 apr
+ 62 13.25 l s
+n 62 16.25 m 62 21.25 57 21.25 5 apr
+ 57 21.25 l s
+n 52 21.25 m 5 0 rl s
+n 25 13.25 m 0 3 rl s
+n 62 13.25 m 0 3 rl s
+n 67 8.25 m 5 0 rl s
+n 70 10.25 m 2 -2 rl -2 -2 rl s
+ 72 0.25 62.08 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 77.50 5.42 m(anycharacter) show
+ 0.30 slw
+n 10 25.25 m 5 0 rl s
+n 139.08 25.25 m 5 0 rl s
+n 15 37.25 m 15 42.25 20 42.25 5 apr
+ 20 42.25 l s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 13.25 m 0 24 rl s
+n 139.08 37.25 m 139.08 42.25 134.08 42.25 5 apr
+ 134.08 42.25 l s
+n 134.08 8.25 m 139.08 8.25 139.08 13.25 5 apr
+ 139.08 13.25 l s
+n 139.08 13.25 m 0 24 rl s
+n 67.64 42.25 m 66.44 0 rl s
+n 134.08 8.25 m 0 0 rl s
+n 144.08 25.25 m 5 0 rl s
+n 147.08 27.25 m 2 -2 rl -2 -2 rl s
+ 0 62.42 m(Character) show
+n 0 25.25 m 10 0 rl s
+n 8 27.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 144 x Fl(These)39 b(diagrams)f(ha)n(v)n(e)g(b)r(een)i(pro)
+r(duced)f(with)h Fj(Ebnf2ps)g(-tFont)h(Courier-Bold)e(-tBg)330
+2518 y(Black)i(-tColor)g(White)h(-fatLineWidth)c(50)k(ebnf.BNF)e('.*')p
+Fl(.)330 2746 y Fd(2.3)112 b(Syn)m(tax)38 b(of)g(regular)f(expressions)
+330 2899 y Fl(The)26 b(regular)e(expressions)g(used)i(to)g(select)g
+(non)n(terminal)f(sym)n(b)r(ols)g(ha)n(v)n(e)g(the)h(follo)n(wing)f
+(syn-)330 2999 y(tax,)i(whic)n(h)h(is)f(similar)g(to)g(the)h(regular)e
+(expression)g(syn)n(tax)h(of)34 b Fj(grep)p Fl(.)330
+3154 y Fj(Regexp)128 b(=)43 b(RFactor)e(/)i("\\\\|")f(["$"];)330
+3254 y(RFactor)84 b(=)43 b(RExtAtom)e(+)i(;)330 3354
+y(RExtAtom)d(=)j(RAtom)f(["*")g(|)h("+")f(|)h("?"])f(;)330
+3453 y(RAtom)172 b(=)43 b(character)d(|)j("\\\\")f(character)e(|)j(".")
+f(|)h("\\\\\(")f(Regexp)f("\\\\\)")g(;)455 3609 y Fl(Regular)20
+b(expressions)g Fj(Regexp)g Fl(ma)n(y)h(b)r(e)h(joined)g(b)n(y)g(the)g
+(in\034x)g(op)r(erator)e Fj(|)p Fl(.)35 b(The)22 b(resulting)330
+3709 y(regular)h(expression)g(matc)n(hes)g(an)n(y)h(string)g(matc)n
+(hing)g(either)g(sub)r(expression.)34 b(A)25 b(sub)r(expres-)330
+3808 y(sion)g(ma)n(y)g(b)r(e)g(enclosed)g(in)h(paren)n(thesis)e
+Fj(\\\()p Fl(,)h Fj(\\\))g Fl(to)g(o)n(v)n(erride)e(precedence)i
+(rules.)35 b(Rep)r(etition)330 3908 y(tak)n(es)29 b(precedence)g(o)n(v)
+n(er)g(concatenation,)g(whic)n(h)h(in)h(turn)f(tak)n(es)f(precedence)g
+(o)n(v)n(er)f(alterna-)330 4008 y(tion.)48 b(A)31 b(regular)e
+(expression)h(matc)n(hing)g(a)h(single)g(c)n(haracter)e(ma)n(y)h(b)r(e)
+i(follo)n(w)n(ed)e(b)n(y)g(one)h(of)330 4107 y(sev)n(eral)26
+b(rep)r(etition)h(op)r(erators:)330 4263 y Fj(?)41 b
+Fl(The)28 b(preceding)e(item)j(is)e(optional)g(and)g(matc)n(hed)g(at)h
+(most)f(once.)330 4418 y Fj(*)41 b Fl(The)28 b(preceding)e(item)j(will)
+e(b)r(e)h(matc)n(hed)g(zero)e(or)h(more)f(times.)330
+4574 y Fj(+)41 b Fl(The)28 b(preceding)e(item)j(will)e(b)r(e)h(matc)n
+(hed)g(one)f(or)f(more)h(times.)330 4730 y(The)g(p)r(erio)r(d)g
+Fj(.)36 b Fl(matc)n(hes)27 b(an)n(y)f(single)h(c)n(haracter,)e(and)i
+(the)g(dollar)f(sign)h Fj($)g Fl(matc)n(h)g(the)g(empt)n(y)330
+4829 y(string)g(at)g(the)h(end)g(of)g(a)f(line.)37 b(W)-7
+b(ell,)28 b(graphically)-7 b(,)26 b(the)i(syn)n(tax)e(is)2439
+4799 y Fi(3)2476 4829 y Fl(:)330 5393 y @beginspecial
+0 @llx 0 @lly 130 @urx 58 @ury 1300 @rwi @setspecial
+%%BeginDocument: Regexp.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 255 255 255 scol  20 0.25 43.22 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 0 0 0 scol  25.50 5.42 m(RFactor) show
+ 33.72 21.25 15.78 16 0.50 255 255 255 RBox
+ 39.22 26.42 m(\\|) show
+ 0.30 slw
+n 51.50 31.25 m -2 -2 rl 2 -2 rl s
+n 10 8.25 m 10 0 rl s
+n 63.22 8.25 m 10 0 rl s
+n 20 29.25 m 13.72 0 rl s
+n 49.50 29.25 m 13.72 0 rl s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 24.25 m 15 29.25 20 29.25 5 apr
+ 20 29.25 l s
+n 63.22 8.25 m 68.22 8.25 68.22 13.25 5 apr
+ 68.22 13.25 l s
+n 68.22 24.25 m 68.22 29.25 63.22 29.25 5 apr
+ 63.22 29.25 l s
+n 15 13.25 m 0 11 rl s
+n 68.22 13.25 m 0 11 rl s
+n 73.22 8.25 m 5 0 rl s
+n 76.22 10.25 m 2 -2 rl -2 -2 rl s
+ 93.22 13.25 16 16 0.50 255 255 255 RBox
+ 98.72 18.42 m($) show
+ 0.30 slw
+n 91.22 23.25 m 2 -2 rl -2 -2 rl s
+n 78.22 8.25 m 46 0 rl s
+n 78.22 8.25 m 83.22 8.25 83.22 13.25 5 apr
+ 83.22 13.25 l s
+n 83.22 16.25 m 83.22 21.25 88.22 21.25 5 apr
+ 88.22 21.25 l s
+n 88.22 21.25 m 5 0 rl s
+n 124.22 8.25 m 119.22 8.25 119.22 13.25 5 apr
+ 119.22 13.25 l s
+n 119.22 16.25 m 119.22 21.25 114.22 21.25 5 apr
+ 114.22 21.25 l s
+n 109.22 21.25 m 5 0 rl s
+n 83.22 13.25 m 0 3 rl s
+n 119.22 13.25 m 0 3 rl s
+n 124.22 8.25 m 5 0 rl s
+n 127.22 10.25 m 2 -2 rl -2 -2 rl s
+/AvantGarde-Book findfont 10 scalefont setfont
+ 0 49.42 m(Regexp) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 330 5436 1200 4 v 422 5489 a Fg(3)457 5513
+y Ff(The)e(diagrams)f(ha)n(v)n(e)i(b)r(een)g(pro)r(duced)g(with:)330
+5592 y Fe(Ebnf2ps)37 b(-titleFont)h(AvantGarde-Book)i(-ntBoxColor)e
+(White)f(-fatLineWidth)h(50)e(regular.BNF)330 5670 y('.*')1809
+5919 y Fl(5)p eop
+%%Page: 6 6
+6 5 bop 330 657 a @beginspecial 0 @llx 0 @lly 90 @urx
+42 @ury 900 @rwi @setspecial
+%%BeginDocument: RFactor.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 255 255 255 scol  20 0.25 54.34 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 0 0 0 scol  25.50 5.42 m(RExtAtom) show
+ 0.30 slw
+n 10 8.25 m 10 0 rl s
+n 74.34 8.25 m 10 0 rl s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 16.25 m 15 21.25 20 21.25 5 apr
+ 20 21.25 l s
+n 74.34 8.25 m 79.34 8.25 79.34 13.25 5 apr
+ 79.34 13.25 l s
+n 79.34 16.25 m 79.34 21.25 74.34 21.25 5 apr
+ 74.34 21.25 l s
+n 15 13.25 m 0 3 rl s
+n 79.34 13.25 m 0 3 rl s
+n 20 21.25 m 54.34 0 rl s
+n 49.17 23.25 m -2 -2 rl 2 -2 rl s
+n 84.34 8.25 m 5 0 rl s
+n 87.34 10.25 m 2 -2 rl -2 -2 rl s
+/AvantGarde-Book findfont 10 scalefont setfont
+ 0 33.42 m(RFactor) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 775 x @beginspecial 0 @llx 0 @lly 128 @urx
+92 @ury 1280 @rwi @setspecial
+%%BeginDocument: RExtAtom.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 255 255 255 scol  10 0.25 40.45 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 0 0 0 scol  15.50 5.42 m(RAtom) show
+ 0.30 slw
+n 50.45 8.25 m 5 0 rl s
+n 53.45 10.25 m 2 -2 rl -2 -2 rl s
+ 80.45 55.25 16 16 0.50 255 255 255 RBox
+ 85.95 60.42 m(*) show
+ 80.45 34.25 16.64 16 0.50 255 255 255 RBox
+ 85.95 39.42 m(+) show
+ 80.45 13.25 15.44 16 0.50 255 255 255 RBox
+ 85.95 18.42 m(?) show
+ 0.30 slw
+n 70.45 42.25 m 5 0 rl s
+n 102.09 42.25 m 5 0 rl s
+n 75.45 58.25 m 75.45 63.25 80.45 63.25 5 apr
+ 80.45 63.25 l s
+n 80.45 21.25 m 75.45 21.25 75.45 26.25 5 apr
+ 75.45 26.25 l s
+n 75.45 26.25 m 0 32 rl s
+n 102.09 58.25 m 102.09 63.25 97.09 63.25 5 apr
+ 97.09 63.25 l s
+n 97.09 21.25 m 102.09 21.25 102.09 26.25 5 apr
+ 102.09 26.25 l s
+n 102.09 26.25 m 0 32 rl s
+n 75.45 42.25 m 5 0 rl s
+n 97.09 42.25 m 5 0 rl s
+n 96.45 63.25 m 0.64 0 rl s
+n 97.09 42.25 m 0 0 rl s
+n 95.89 21.25 m 1.20 0 rl s
+n 68.45 44.25 m 2 -2 rl -2 -2 rl s
+n 55.45 8.25 m 66.64 0 rl s
+n 55.45 8.25 m 60.45 8.25 60.45 13.25 5 apr
+ 60.45 13.25 l s
+n 60.45 37.25 m 60.45 42.25 65.45 42.25 5 apr
+ 65.45 42.25 l s
+n 65.45 42.25 m 5 0 rl s
+n 122.09 8.25 m 117.09 8.25 117.09 13.25 5 apr
+ 117.09 13.25 l s
+n 117.09 37.25 m 117.09 42.25 112.09 42.25 5 apr
+ 112.09 42.25 l s
+n 107.09 42.25 m 5 0 rl s
+n 60.45 13.25 m 0 24 rl s
+n 117.09 13.25 m 0 24 rl s
+n 122.09 8.25 m 5 0 rl s
+n 125.09 10.25 m 2 -2 rl -2 -2 rl s
+/AvantGarde-Book findfont 10 scalefont setfont
+ 0 83.42 m(RExtAtom) show
+n 0 8.25 m 10 0 rl s
+n 8 10.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 842 x @beginspecial 0 @llx 0 @lly 121 @urx
+100 @ury 1210 @rwi @setspecial
+%%BeginDocument: RAtom.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 255 255 255 scol  20 63.25 47.64 16 0.50 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 0 0 0 scol  25.50 68.42 m(character) show
+ 20 42.25 13.78 16 0.50 255 255 255 RBox
+ 25.50 47.42 m(\\) show
+ 0.30 slw
+n 33.78 50.25 m 5 0 rl s
+n 36.78 52.25 m 2 -2 rl -2 -2 rl s
+ 255 255 255 scol  38.78 42.25 47.64 16 0.50 255 255 255 Box
+ 0 0 0 scol  44.28 47.42 m(character) show
+ 20 21.25 13.50 16 0.50 255 255 255 RBox
+ 25.50 26.42 m(.) show
+ 20 0.25 17.11 16 0.50 255 255 255 RBox
+ 25.50 5.42 m(\\\() show
+ 0.30 slw
+n 37.11 8.25 m 5 0 rl s
+n 40.11 10.25 m 2 -2 rl -2 -2 rl s
+ 255 255 255 scol  42.11 0.25 41.55 16 0.50 255 255 255 Box
+ 0 0 0 scol  47.61 5.42 m(Regexp) show
+ 0.30 slw
+n 83.66 8.25 m 5 0 rl s
+n 86.66 10.25 m 2 -2 rl -2 -2 rl s
+ 88.66 0.25 17.11 16 0.50 255 255 255 RBox
+ 94.16 5.42 m(\\\)) show
+ 0.30 slw
+n 10 39.75 m 5 0 rl s
+n 110.77 39.75 m 5 0 rl s
+n 15 66.25 m 15 71.25 20 71.25 5 apr
+ 20 71.25 l s
+n 20 8.25 m 15 8.25 15 13.25 5 apr
+ 15 13.25 l s
+n 15 13.25 m 0 53 rl s
+n 110.77 66.25 m 110.77 71.25 105.77 71.25 5 apr
+ 105.77 71.25 l s
+n 105.77 8.25 m 110.77 8.25 110.77 13.25 5 apr
+ 110.77 13.25 l s
+n 110.77 13.25 m 0 53 rl s
+n 15 50.25 m 5 0 rl s
+n 15 29.25 m 5 0 rl s
+n 105.77 50.25 m 5 0 rl s
+n 105.77 29.25 m 5 0 rl s
+n 67.64 71.25 m 38.13 0 rl s
+n 86.42 50.25 m 19.35 0 rl s
+n 33.50 29.25 m 72.27 0 rl s
+n 105.77 8.25 m 0 0 rl s
+n 115.77 39.75 m 5 0 rl s
+n 118.77 41.75 m 2 -2 rl -2 -2 rl s
+/AvantGarde-Book findfont 10 scalefont setfont
+ 0 91.42 m(RAtom) show
+n 0 39.75 m 10 0 rl s
+n 8 41.75 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 232 x Fd(2.4)112 b(Option)37 b(+unfold)330
+2659 y Fl(The)21 b(option)f Fc(+unfold)h Fl(allo)n(ws)e(the)i
+(replacemen)n(t)f(of)g(non)n(terminal)g(sym)n(b)r(ols)g(in)h(pro)r
+(ductions,)330 2759 y(through)38 b(the)h("righ)n(t)e(side")i(of)f(the)h
+(pro)r(duction)g(of)f(corresp)r(onding)f(non)n(terminals.)69
+b(The)330 2859 y(non)n(terminals,)35 b(whic)n(h)g(follo)n(ws)e(the)i
+(sym)n(b)r(ol)f Fj(--)g Fl(in)h(a)f(command)h(line)f(could)h(b)r(e)g
+(sp)r(eci\034ed)330 2958 y(b)n(y)27 b(their)h(full)g(names,)f(or)g(b)n
+(y)g(regular)e(expressions)h(\(see)i(Sec.)f(2.3\).)36
+b(An)28 b(example:)37 b(with)28 b(the)330 3058 y(grammar)j
+Fj(regular.BNF)e Fl(for)k(the)h(regular)d(expression)h(syn)n(tax)g(in)i
+(section)f(2.3)g(should)g(b)r(e)330 3158 y(generated)g(a)h(diagram)f
+(for)h Fj(RAtom)p Fl(,)g(with)g(a)g(replacemen)n(t)g(of)g(non)n
+(terminal)f Fj(Regexp)p Fl(.)55 b(The)330 3257 y(follo)n(wing)22
+b(diagram)f(is)h(b)r(een)h(pro)r(duced)g(with)g Fj(Ebnf2ps)40
+b(+unfold)h(regular.BNF)e(RAtom)i(\025)330 3357 y(Regexp)p
+Fl(.)330 4517 y @beginspecial 0 @llx 0 @lly 198 @urx
+126 @ury 1980 @rwi @setspecial
+%%BeginDocument: RAtom_unfold.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 88.50 48.64 17 1 255 255 255 Box
+/Times-Roman findfont 10 scalefont setfont
+ 26 94.17 m(character) show
+ 20 66.50 14.78 17 1 255 255 255 RBox
+ 26 72.17 m(\\) show
+ 0.30 slw
+n 34.78 75 m 5 0 rl s
+n 37.78 77 m 2 -2 rl -2 -2 rl s
+ 39.78 66.50 48.64 17 1 255 255 255 Box
+ 45.78 72.17 m(character) show
+ 20 44.50 14.50 17 1 255 255 255 RBox
+ 26 50.17 m(.) show
+ 20 0.50 18.11 17 1 255 255 255 RBox
+ 26 6.17 m(\\\() show
+ 0.30 slw
+n 38.11 9 m 5 0 rl s
+n 41.11 11 m 2 -2 rl -2 -2 rl s
+ 53.11 0.50 44.22 17 1 255 255 255 Box
+ 59.11 6.17 m(RFactor) show
+ 66.83 22.50 16.78 17 1 255 255 255 RBox
+ 72.83 28.17 m(\\|) show
+ 0.30 slw
+n 85.61 33 m -2 -2 rl 2 -2 rl s
+n 43.11 9 m 10 0 rl s
+n 97.33 9 m 10 0 rl s
+n 53.11 31 m 13.72 0 rl s
+n 83.61 31 m 13.72 0 rl s
+n 53.11 9 m 48.11 9 48.11 14 5 apr
+ 48.11 14 l s
+n 48.11 26 m 48.11 31 53.11 31 5 apr
+ 53.11 31 l s
+n 97.33 9 m 102.33 9 102.33 14 5 apr
+ 102.33 14 l s
+n 102.33 26 m 102.33 31 97.33 31 5 apr
+ 97.33 31 l s
+n 48.11 14 m 0 12 rl s
+n 102.33 14 m 0 12 rl s
+n 107.33 9 m 5 0 rl s
+n 110.33 11 m 2 -2 rl -2 -2 rl s
+ 127.33 14 17 17 1 255 255 255 RBox
+ 133.33 19.67 m($) show
+ 0.30 slw
+n 125.33 24.50 m 2 -2 rl -2 -2 rl s
+n 112.33 9 m 47 0 rl s
+n 112.33 9 m 117.33 9 117.33 14 5 apr
+ 117.33 14 l s
+n 117.33 17.50 m 117.33 22.50 122.33 22.50 5 apr
+ 122.33 22.50 l s
+n 122.33 22.50 m 5 0 rl s
+n 159.33 9 m 154.33 9 154.33 14 5 apr
+ 154.33 14 l s
+n 154.33 17.50 m 154.33 22.50 149.33 22.50 5 apr
+ 149.33 22.50 l s
+n 144.33 22.50 m 5 0 rl s
+n 117.33 14 m 0 3.50 rl s
+n 154.33 14 m 0 3.50 rl s
+n 159.33 9 m 5 0 rl s
+n 162.33 11 m 2 -2 rl -2 -2 rl s
+ 164.33 0.50 18.11 17 1 255 255 255 RBox
+ 170.33 6.17 m(\\\)) show
+ 0.30 slw
+n 10 53 m 5 0 rl s
+n 187.44 53 m 5 0 rl s
+n 15 92 m 15 97 20 97 5 apr
+ 20 97 l s
+n 20 9 m 15 9 15 14 5 apr
+ 15 14 l s
+n 15 14 m 0 78 rl s
+n 187.44 92 m 187.44 97 182.44 97 5 apr
+ 182.44 97 l s
+n 182.44 9 m 187.44 9 187.44 14 5 apr
+ 187.44 14 l s
+n 187.44 14 m 0 78 rl s
+n 15 75 m 5 0 rl s
+n 15 53 m 5 0 rl s
+n 182.44 75 m 5 0 rl s
+n 182.44 53 m 5 0 rl s
+n 68.64 97 m 113.80 0 rl s
+n 88.42 75 m 94.02 0 rl s
+n 34.50 53 m 147.94 0 rl s
+n 182.44 9 m 0 0 rl s
+n 192.44 53 m 5 0 rl s
+n 195.44 55 m 2 -2 rl -2 -2 rl s
+ 0 117.67 m(RAtom) show
+n 0 53 m 10 0 rl s
+n 8 55 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 455 4699 a(The)26 b(follo)n(wing)f(example)h(illustrates)g
+(the)h(use)f(of)g(regular)f(expressions)g(with)i(the)f(option)330
+4799 y Fj(+unfold)p Fl(.)43 b(In)30 b(all)h(pro)r(ductions)e(of)i(the)g
+(grammar)d(\034le)j Fj(ebnf.BNF)c Fl(\026)k(whic)n(h)f(describ)r(es)g
+(the)330 4898 y(syn)n(tax)23 b(of)i(EBNF)g(\034les)f(\(see)h(Sec.)f
+(2.2\))g(\026)h(the)f(non)n(terminal)g Fj(String)e Fl(and)i(all)g(non)n
+(terminals)330 4998 y(that)k(matc)n(h)f(the)h(pattern)461
+5164 y Fj(.*\\\(t\\|T\\\)erm.*)330 5330 y Fl(should)36
+b(b)r(e)g(replaced.)60 b(The)36 b(next)g(lines)g(sho)n(ws)f(the)h
+(command)f(to)h(pro)r(duce)f(the)h(railroad)330 5430
+y(diagrams)26 b(and)h(the)h(progress)d(messages)h(of)i(Ebnf2ps.)330
+5588 y Fe(\045)36 b(Ebnf2ps)h(-verbose)g(-tScale)g(8)f(-ntScale)h(8)f
+(+unfold)h(ebnf.BNF)h('.*')e(--)g(String)h('.*\\\(t\\|T\\\)erm.*')330
+5662 y(using)g(colors:)1809 5919 y Fl(6)p eop
+%%Page: 7 7
+7 6 bop 612 390 a Fe(ntColor)355 b(\(0,0,0\))612 465
+y(tColor)390 b(\(0,0,0\))612 540 y(lineColor)285 b(\(0,0,0\))612
+614 y(ntBoxColor)250 b(\(0,0,0\))612 689 y(tBoxColor)285
+b(\(0,0,0\))612 764 y(ntBg)460 b(\(255,255,255\))612
+839 y(tBg)495 b(\(255,255,255\))612 913 y(titleColor)250
+b(\(0,0,0\))330 988 y(from)36 b(rgbPathDefault:)k(["/usr/lib/X11",)f
+("/usr/local/X11R5/lib/)q(X11")q(])330 1063 y(generating)f
+(nonterminals:)h([".*"])330 1137 y(from)d(ebnf.BNF)330
+1212 y(using)h(input)f(path)h(["."])330 1287 y(using)g(ebnfInput)330
+1362 y(unfold)g(nonterminals:)612 1436 y(Nonterminal)612
+1511 y(String)612 1586 y(Term)330 1660 y(in)f(the)g(following)i
+(productions)612 1735 y(Production)612 1810 y(Atom)330
+1885 y(produce)f(layout)g(and)f(output)330 2035 y Fl(W)-7
+b(ell,)28 b(graphically)e(that)i(is:)330 4274 y @beginspecial
+0 @llx 0 @lly 139 @urx 261 @ury 1390 @rwi @setspecial
+%%BeginDocument: Atom_unfold.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  20 153 28.44 15 1 255 255 255 Box
+/Times-Roman findfont 8 scalefont setfont
+ 26 158.67 m(letter) show
+ 0.30 slw
+n 48.44 160.50 m 5 0 rl s
+n 51.44 162.50 m 2 -2 rl -2 -2 rl s
+ 73.44 225.50 28.44 15 1 255 255 255 Box
+ 79.44 231.17 m(letter) show
+ 75.21 205.50 26.67 15 1 255 255 255 Box
+ 81.21 211.17 m(digit) show
+ 85.88 185.50 16 15 1 255 255 255 RBox
+ 91.88 191.17 m(_) show
+ 87.88 165.50 14 15 1 255 255 255 RBox
+ 93.88 171.17 m(.) show
+ 0.30 slw
+n 63.44 203 m 5 0 rl s
+n 106.88 203 m 5 0 rl s
+n 68.44 228 m 68.44 233 73.44 233 5 apr
+ 73.44 233 l s
+n 73.44 173 m 68.44 173 68.44 178 5 apr
+ 68.44 178 l s
+n 68.44 178 m 0 50 rl s
+n 106.88 228 m 106.88 233 101.88 233 5 apr
+ 101.88 233 l s
+n 101.88 173 m 106.88 173 106.88 178 5 apr
+ 106.88 178 l s
+n 106.88 178 m 0 50 rl s
+n 68.44 213 m 5 0 rl s
+n 68.44 193 m 5 0 rl s
+n 101.88 213 m 5 0 rl s
+n 101.88 193 m 5 0 rl s
+n 73.44 233 m 0 0 rl s
+n 73.44 213 m 1.77 0 rl s
+n 73.44 193 m 12.44 0 rl s
+n 73.44 173 m 14.44 0 rl s
+n 113.88 205 m -2 -2 rl 2 -2 rl s
+n 53.44 160.50 m 68.44 0 rl s
+n 63.44 160.50 m 58.44 160.50 58.44 165.50 5 apr
+ 58.44 165.50 l s
+n 58.44 198 m 58.44 203 63.44 203 5 apr
+ 63.44 203 l s
+n 111.88 160.50 m 116.88 160.50 116.88 165.50 5 apr
+ 116.88 165.50 l s
+n 116.88 198 m 116.88 203 111.88 203 5 apr
+ 111.88 203 l s
+n 58.44 165.50 m 0 32.50 rl s
+n 116.88 165.50 m 0 32.50 rl s
+ 20 120.50 15.26 15 1 255 255 255 RBox
+ 26 126.17 m(") show
+ 0.30 slw
+n 35.26 128 m 5 0 rl s
+n 38.26 130 m 2 -2 rl -2 -2 rl s
+ 50.26 133 43.09 15 1 255 255 255 Box
+ 56.26 138.67 m(Character) show
+ 0.30 slw
+n 95.35 142.50 m -2 -2 rl 2 -2 rl s
+n 40.26 128 m 63.09 0 rl s
+n 50.26 128 m 45.26 128 45.26 133 5 apr
+ 45.26 133 l s
+n 45.26 135.50 m 45.26 140.50 50.26 140.50 5 apr
+ 50.26 140.50 l s
+n 93.35 128 m 98.35 128 98.35 133 5 apr
+ 98.35 133 l s
+n 98.35 135.50 m 98.35 140.50 93.35 140.50 5 apr
+ 93.35 140.50 l s
+n 45.26 133 m 0 2.50 rl s
+n 98.35 133 m 0 2.50 rl s
+n 103.35 128 m 5 0 rl s
+n 106.35 130 m 2 -2 rl -2 -2 rl s
+ 108.35 120.50 15.26 15 1 255 255 255 RBox
+ 114.35 126.17 m(") show
+ 20 80.50 14.66 15 1 255 255 255 RBox
+ 26 86.17 m(\() show
+ 0.30 slw
+n 34.66 88 m 5 0 rl s
+n 37.66 90 m 2 -2 rl -2 -2 rl s
+ 49.66 80.50 32.44 15 1 255 255 255 Box
+ 55.66 86.17 m(Factor) show
+ 59.08 100.50 13.60 15 1 255 255 255 RBox
+ 65.08 106.17 m(|) show
+ 0.30 slw
+n 74.68 110 m -2 -2 rl 2 -2 rl s
+n 39.66 88 m 10 0 rl s
+n 82.10 88 m 10 0 rl s
+n 49.66 108 m 9.42 0 rl s
+n 72.68 108 m 9.42 0 rl s
+n 49.66 88 m 44.66 88 44.66 93 5 apr
+ 44.66 93 l s
+n 44.66 103 m 44.66 108 49.66 108 5 apr
+ 49.66 108 l s
+n 82.10 88 m 87.10 88 87.10 93 5 apr
+ 87.10 93 l s
+n 87.10 103 m 87.10 108 82.10 108 5 apr
+ 82.10 108 l s
+n 44.66 93 m 0 10 rl s
+n 87.10 93 m 0 10 rl s
+n 92.10 88 m 5 0 rl s
+n 95.10 90 m 2 -2 rl -2 -2 rl s
+ 97.10 80.50 14.66 15 1 255 255 255 RBox
+ 103.10 86.17 m(\)) show
+ 20 40.50 14.66 15 1 255 255 255 RBox
+ 26 46.17 m([) show
+ 0.30 slw
+n 34.66 48 m 5 0 rl s
+n 37.66 50 m 2 -2 rl -2 -2 rl s
+ 49.66 40.50 32.44 15 1 255 255 255 Box
+ 55.66 46.17 m(Factor) show
+ 59.08 60.50 13.60 15 1 255 255 255 RBox
+ 65.08 66.17 m(|) show
+ 0.30 slw
+n 74.68 70 m -2 -2 rl 2 -2 rl s
+n 39.66 48 m 10 0 rl s
+n 82.10 48 m 10 0 rl s
+n 49.66 68 m 9.42 0 rl s
+n 72.68 68 m 9.42 0 rl s
+n 49.66 48 m 44.66 48 44.66 53 5 apr
+ 44.66 53 l s
+n 44.66 63 m 44.66 68 49.66 68 5 apr
+ 49.66 68 l s
+n 82.10 48 m 87.10 48 87.10 53 5 apr
+ 87.10 53 l s
+n 87.10 63 m 87.10 68 82.10 68 5 apr
+ 82.10 68 l s
+n 44.66 53 m 0 10 rl s
+n 87.10 53 m 0 10 rl s
+n 92.10 48 m 5 0 rl s
+n 95.10 50 m 2 -2 rl -2 -2 rl s
+ 97.10 40.50 14.66 15 1 255 255 255 RBox
+ 103.10 46.17 m(]) show
+ 20 0.50 15.84 15 1 255 255 255 RBox
+ 26 6.17 m({) show
+ 0.30 slw
+n 35.84 8 m 5 0 rl s
+n 38.84 10 m 2 -2 rl -2 -2 rl s
+ 50.84 0.50 32.44 15 1 255 255 255 Box
+ 56.84 6.17 m(Factor) show
+ 60.26 20.50 13.60 15 1 255 255 255 RBox
+ 66.26 26.17 m(|) show
+ 0.30 slw
+n 75.86 30 m -2 -2 rl 2 -2 rl s
+n 40.84 8 m 10 0 rl s
+n 83.28 8 m 10 0 rl s
+n 50.84 28 m 9.42 0 rl s
+n 73.86 28 m 9.42 0 rl s
+n 50.84 8 m 45.84 8 45.84 13 5 apr
+ 45.84 13 l s
+n 45.84 23 m 45.84 28 50.84 28 5 apr
+ 50.84 28 l s
+n 83.28 8 m 88.28 8 88.28 13 5 apr
+ 88.28 13 l s
+n 88.28 23 m 88.28 28 83.28 28 5 apr
+ 83.28 28 l s
+n 45.84 13 m 0 10 rl s
+n 88.28 13 m 0 10 rl s
+n 93.28 8 m 5 0 rl s
+n 96.28 10 m 2 -2 rl -2 -2 rl s
+ 98.28 0.50 15.84 15 1 255 255 255 RBox
+ 104.28 6.17 m(}) show
+ 0.30 slw
+n 10 84.25 m 5 0 rl s
+n 128.61 84.25 m 5 0 rl s
+n 15 155.50 m 15 160.50 20 160.50 5 apr
+ 20 160.50 l s
+n 20 8 m 15 8 15 13 5 apr
+ 15 13 l s
+n 15 13 m 0 142.50 rl s
+n 128.61 155.50 m 128.61 160.50 123.61 160.50 5 apr
+ 123.61 160.50 l s
+n 123.61 8 m 128.61 8 128.61 13 5 apr
+ 128.61 13 l s
+n 128.61 13 m 0 142.50 rl s
+n 15 128 m 5 0 rl s
+n 15 88 m 5 0 rl s
+n 15 48 m 5 0 rl s
+n 123.61 128 m 5 0 rl s
+n 123.61 88 m 5 0 rl s
+n 123.61 48 m 5 0 rl s
+n 121.88 160.50 m 1.73 0 rl s
+n 123.61 128 m 0 0 rl s
+n 111.76 88 m 11.85 0 rl s
+n 111.76 48 m 11.85 0 rl s
+n 114.12 8 m 9.49 0 rl s
+n 133.61 84.25 m 5 0 rl s
+n 136.61 86.25 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 252.67 m(Atom) show
+n 0 84.25 m 10 0 rl s
+n 8 86.25 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 917 x @beginspecial 0 @llx 0 @lly 354 @urx
+109 @ury 3540 @rwi @setspecial
+%%BeginDocument: Production_unfold.eps
+/$Ebnf2psDict 100 dict def
+$Ebnf2psDict begin
+/l {lineto} bind def
+/m {moveto} bind def
+/rl {rlineto} bind def
+/rm {rmoveto} bind def
+/s {stroke} bind def
+/n {newpath} bind def
+/gs {gsave} bind def
+/gr {grestore} bind def
+/clp {closepath} bind def
+/slw {setlinewidth} bind def
+/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+4 -2 roll mul setrgbcolor} bind def
+/scol {3 {255 div 3 1 roll} repeat setrgbcolor} bind def
+ /apr {arcto 4 {pop} repeat} def
+/Box {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width  exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width width linewidth sub def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+   n llx lly m
+  width 0 rl
+  0 height rl
+  width neg 0 rl
+  0 height neg rl
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+/RBox {
+  /bgB exch def
+  /bgG exch def
+  /bgR exch def
+  /linewidth exch def
+  /height exch def
+  /width exch def
+  /lly exch def
+  /llx exch def
+  linewidth 2 div dup llx add /llx exch def lly add /lly exch def
+  /height height linewidth sub def
+  /width  width  linewidth sub def
+  /height2 height 2 div def
+  /width2  width  2 div def
+  /urx llx width add def
+  /ury lly height add def
+  /mmx llx width2 add def
+  /mmy lly height2 add def
+  /linewidth0 {clp gsave bgR bgG bgB scol fill grestore} def
+  /linewidth1 {clp linewidth gsave bgR bgG bgB scol fill grestore slw s} def
+  /radius width2 height2 ge {height2} {width2} ifelse def
+   n mmx lly m
+  urx lly urx mmy radius apr
+  urx ury mmx ury radius apr
+  llx ury llx mmy radius apr
+  llx lly mmx lly radius apr
+  mmx lly l
+  linewidth 0 eq {linewidth0} {linewidth1} ifelse
+} def
+end
+/$Ebnf2psBegin {$Ebnf2psDict begin /$Ebnf2psEnteredState save def} def
+/$Ebnf2psEnd {$Ebnf2psEnteredState restore end} def
+
+
+$Ebnf2psBegin
+ 0 0 0 scol  10 0.50 28.44 15 1 255 255 255 Box
+/Times-Roman findfont 8 scalefont setfont
+ 16 6.17 m(letter) show
+ 0.30 slw
+n 38.44 8 m 5 0 rl s
+n 41.44 10 m 2 -2 rl -2 -2 rl s
+ 63.44 73 28.44 15 1 255 255 255 Box
+ 69.44 78.67 m(letter) show
+ 65.21 53 26.67 15 1 255 255 255 Box
+ 71.21 58.67 m(digit) show
+ 75.88 33 16 15 1 255 255 255 RBox
+ 81.88 38.67 m(_) show
+ 77.88 13 14 15 1 255 255 255 RBox
+ 83.88 18.67 m(.) show
+ 0.30 slw
+n 53.44 50.50 m 5 0 rl s
+n 96.88 50.50 m 5 0 rl s
+n 58.44 75.50 m 58.44 80.50 63.44 80.50 5 apr
+ 63.44 80.50 l s
+n 63.44 20.50 m 58.44 20.50 58.44 25.50 5 apr
+ 58.44 25.50 l s
+n 58.44 25.50 m 0 50 rl s
+n 96.88 75.50 m 96.88 80.50 91.88 80.50 5 apr
+ 91.88 80.50 l s
+n 91.88 20.50 m 96.88 20.50 96.88 25.50 5 apr
+ 96.88 25.50 l s
+n 96.88 25.50 m 0 50 rl s
+n 58.44 60.50 m 5 0 rl s
+n 58.44 40.50 m 5 0 rl s
+n 91.88 60.50 m 5 0 rl s
+n 91.88 40.50 m 5 0 rl s
+n 63.44 80.50 m 0 0 rl s
+n 63.44 60.50 m 1.77 0 rl s
+n 63.44 40.50 m 12.44 0 rl s
+n 63.44 20.50 m 14.44 0 rl s
+n 103.88 52.50 m -2 -2 rl 2 -2 rl s
+n 43.44 8 m 68.44 0 rl s
+n 53.44 8 m 48.44 8 48.44 13 5 apr
+ 48.44 13 l s
+n 48.44 45.50 m 48.44 50.50 53.44 50.50 5 apr
+ 53.44 50.50 l s
+n 101.88 8 m 106.88 8 106.88 13 5 apr
+ 106.88 13 l s
+n 106.88 45.50 m 106.88 50.50 101.88 50.50 5 apr
+ 101.88 50.50 l s
+n 48.44 13 m 0 32.50 rl s
+n 106.88 13 m 0 32.50 rl s
+n 111.88 8 m 5 0 rl s
+n 114.88 10 m 2 -2 rl -2 -2 rl s
+ 131.88 13 15.26 15 1 255 255 255 RBox
+ 137.88 18.67 m(") show
+ 0.30 slw
+n 147.14 20.50 m 5 0 rl s
+n 150.14 22.50 m 2 -2 rl -2 -2 rl s
+ 162.14 25.50 43.09 15 1 255 255 255 Box
+ 168.14 31.17 m(Character) show
+ 0.30 slw
+n 207.23 35 m -2 -2 rl 2 -2 rl s
+n 152.14 20.50 m 63.09 0 rl s
+n 162.14 20.50 m 157.14 20.50 157.14 25.50 5 apr
+ 157.14 25.50 l s
+n 157.14 28 m 157.14 33 162.14 33 5 apr
+ 162.14 33 l s
+n 205.23 20.50 m 210.23 20.50 210.23 25.50 5 apr
+ 210.23 25.50 l s
+n 210.23 28 m 210.23 33 205.23 33 5 apr
+ 205.23 33 l s
+n 157.14 25.50 m 0 2.50 rl s
+n 210.23 25.50 m 0 2.50 rl s
+n 215.23 20.50 m 5 0 rl s
+n 218.23 22.50 m 2 -2 rl -2 -2 rl s
+ 220.23 13 15.26 15 1 255 255 255 RBox
+ 226.23 18.67 m(") show
+ 0.30 slw
+n 129.88 22.50 m 2 -2 rl -2 -2 rl s
+n 116.88 8 m 133.61 0 rl s
+n 116.88 8 m 121.88 8 121.88 13 5 apr
+ 121.88 13 l s
+n 121.88 15.50 m 121.88 20.50 126.88 20.50 5 apr
+ 126.88 20.50 l s
+n 126.88 20.50 m 5 0 rl s
+n 250.49 8 m 245.49 8 245.49 13 5 apr
+ 245.49 13 l s
+n 245.49 15.50 m 245.49 20.50 240.49 20.50 5 apr
+ 240.49 20.50 l s
+n 235.49 20.50 m 5 0 rl s
+n 121.88 13 m 0 2.50 rl s
+n 245.49 13 m 0 2.50 rl s
+n 250.49 8 m 5 0 rl s
+n 253.49 10 m 2 -2 rl -2 -2 rl s
+ 255.49 0.50 16.51 15 1 255 255 255 RBox
+ 261.49 6.17 m(=) show
+ 0.30 slw
+n 272 8 m 5 0 rl s
+n 275 10 m 2 -2 rl -2 -2 rl s
+ 287 0.50 32.44 15 1 255 255 255 Box
+ 293 6.17 m(Factor) show
+ 296.42 20.50 13.60 15 1 255 255 255 RBox
+ 302.42 26.17 m(|) show
+ 0.30 slw
+n 312.02 30 m -2 -2 rl 2 -2 rl s
+n 277 8 m 10 0 rl s
+n 319.44 8 m 10 0 rl s
+n 287 28 m 9.42 0 rl s
+n 310.02 28 m 9.42 0 rl s
+n 287 8 m 282 8 282 13 5 apr
+ 282 13 l s
+n 282 23 m 282 28 287 28 5 apr
+ 287 28 l s
+n 319.44 8 m 324.44 8 324.44 13 5 apr
+ 324.44 13 l s
+n 324.44 23 m 324.44 28 319.44 28 5 apr
+ 319.44 28 l s
+n 282 13 m 0 10 rl s
+n 324.44 13 m 0 10 rl s
+n 329.44 8 m 5 0 rl s
+n 332.44 10 m 2 -2 rl -2 -2 rl s
+ 334.44 0.50 14.22 15 1 255 255 255 RBox
+ 340.44 6.17 m(;) show
+ 0.30 slw
+n 348.66 8 m 5 0 rl s
+n 351.66 10 m 2 -2 rl -2 -2 rl s
+/Times-Roman findfont 10 scalefont setfont
+ 0 100.17 m(Production) show
+n 0 8 m 10 0 rl s
+n 8 10 m 2 -2 rl -2 -2 rl s
+
+$Ebnf2psEnd
+%%EndDocument
+ @endspecial 227 x Fd(2.5)112 b(En)m(vironmen)m(t)34
+b(v)-6 b(ariables)330 5571 y Fl(The)22 b(format)f(of)h(searc)n(h)e
+(pathes)h(is)h(a)f(colon)g(separated)g(list)h(of)g(directories.)33
+b(The)22 b(default)g(path)330 5670 y(is)27 b(inserted)g(in)g(place)f
+(of)h(an)g(empt)n(y)g(directory)f(in)h(the)g(list.)37
+b(An)n(y)27 b(\034le)g(name)g(starting)f(with)h Fj(/)1809
+5919 y Fl(7)p eop
+%%Page: 8 8
+8 7 bop 330 390 a Fl(is)27 b(tak)n(en)g(as)f(an)h(absolute)f(name)h
+(and)g(an)n(y)f(\034le)i(name)f(starting)f(with)h Fj(.)37
+b Fl(is)27 b(tak)n(en)f(relativ)n(e)g(to)330 490 y(the)i(curren)n(t)f
+(w)n(orking)e(directory)-7 b(.)330 672 y Fc(AFMP)f(A)g(TH)42
+b Fl(searc)n(h)26 b(path)i(for)f(Adob)r(e)h(fon)n(t)f(metric)h
+(\034les.)330 839 y Fc(EBNFINPUTS)42 b Fl(searc)n(h)26
+b(path)i(for)f(grammar)e(input)j(\034les.)330 1005 y
+Fc(R)m(GBP)-8 b(A)g(TH)42 b Fl(searc)n(h)26 b(path)i(for)f(the)h(color)
+e(de\034nitions.)330 1279 y Fk(3)131 b(Ho)l(w)44 b(to)g(c)l(hange)g(it)
+330 1461 y Fl(In)21 b(order)e(to)i(add)f(new)h(options)f(to)h(the)g
+(program)e(y)n(ou)g(will)i(need)g(a)g(mo)r(di\034ed)g(cop)n(y)e(of)i
+(the)g(pro-)330 1561 y(gram)d Fj(Mkhprog)f Fl(with)j(kind)g(p)r
+(ermission)f(of)h(the)g(author)f(Nic)n(k)g(North)h(\()p
+Fj(ndn@seg.npl.co.u)o(k)p Fl(\))330 1660 y(whic)n(h)27
+b(is)h(a)n(v)-5 b(ailable)26 b(from)h(URL)330 1826 y
+Fj(http://www-pu.in)o(fo)o(rma)o(ti)o(k.)o(uni)o(-t)o(ue)o(bin)o(ge)o
+(n.)o(de/)o(us)o(er)o(s/t)o(hi)o(ema)o(nn)o(/h)o(ask)o(el)o(l/)o(ebn)o
+(f2)o(ps)o(/)1809 5919 y Fl(8)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/doc/doc.tex b/doc/doc.tex
new file mode 100644
--- /dev/null
+++ b/doc/doc.tex
@@ -0,0 +1,365 @@
+\documentclass[a4paper]{article}
+\usepackage{a4}
+\usepackage{iso8859-1}
+\usepackage{epsfig}
+
+\newenvironment{bfscript}[1]{%
+  \begin{list}{}{\settowidth{\labelwidth}{\bf #1}
+      \setlength{\leftmargin}{\labelwidth} 
+      \addtolength{\leftmargin}{\labelsep}
+      \parsep0.5ex plus0.2ex minus0.2ex \itemsep 0.3ex 
+      \renewcommand{\makelabel}[1]{\bf ##1\hfill}}}
+  {\end{list}}
+\newcommand{\new}{%
+        {\ooalign {\hfil \raise .09ex
+         \hbox {n}\hfil \crcr\mathhexbox 20D}}}
+
+\begin{document}
+\title{Ebnf2ps --- Automatic Railroad Diagram Drawing\\
+       Version 1.01}
+\author{
+  Peter Thiemann, Michael Walter\\
+  Wilhelm-Schickard-Institut, Universität Tübingen\\
+  Sand 13, 72076 Tübingen\\
+  E-mail: \texttt{\{thiemann,walterm\}@informatik.uni-tuebingen.de} \\
+  \copyright 1996, Peter Thiemann}
+\maketitle
+
+Ebnf2ps  was written to fill an urgent need of the author: to produce lots of
+syntax diagrams (railroad diagrams) from a grammar in EBNF notation in short
+time. Over the time the program has acquired a couple of features in order to
+fulfill a variety of requirements. The current version produces highly readable
+railroad diagrams from grammars in various formats: Yacc, Happy and
+EBNF. \\
+The program may be freely used and distributed, you are however required not to
+remove the copyright notices from the source files. Please send any comments,
+bugs, etc.\ to the author(s).
+
+
+
+\section{How to build it}
+
+Ebnf2ps was written in Haskell, a non--strict, purely functional 
+programming language. To build Ebnf2ps you need a Haskell Compiler, 
+for example the Glasgow Haskell Compilation System
+\texttt{ghc}\footnote{GHC home page URL
+  \texttt{http://www.dcs.glasgow.ac.uk/fp/software/ghc.html}.} or the
+Haskell Compiler \texttt{hbc} by Lennart Augustsson.
+
+\begin{enumerate}
+\item  Edit the Makefile to reflect your Haskell compiler, for example
+\begin{verbatim}
+               HC= ghc
+\end{verbatim}
+\item Find out where your \TeX\ installation stores \texttt{.afm}-files (Adobe 
+  font metric files). Then you can change the variable \texttt{AFMPATH} in the 
+  Makefile or you can set the environment variable \texttt{AFMPATH} when running 
+  the program. The \texttt{.afm}-files are absolutely necessary. If you don't 
+  find them complain to your system administrator or get them yourself
+  from \\ 
+  \texttt{ftp://ftp.adobe.com/pub/adobe/AFMFiles/}.
+\item 
+  Change the variable \texttt{RGBPATH} to contain the directory where
+  your X installation stores its color data base (usually
+  \texttt{/usr/lib/X11/rgb.txt}). This can also be corrected later with the
+  environment variable \texttt{RGBPATH}. There are fallback color definitions 
+  for the 8 \emph{digital} colors (black, white, blue, green, cyan, red, magenta, 
+  yellow), so nothing needs be done if that's enough for you.
+\item 
+  Typing \texttt{make} should produce an executable file named Ebnf2ps.
+\end{enumerate}
+
+
+
+\section{How to use it}
+
+The syntax is
+\begin{verbatim}
+Ebnf2ps [options] Grammarfile Nonterminal ... [-- Nonterminal ...]
+\end{verbatim}
+where the \texttt{options} are described in Sec.~\ref{sec:options}, the syntax
+of the input file \texttt{Grammarfile} in Sec.~\ref{sec:syntax}, and
+\texttt{Nonterminal} describes the nonterminals, for which diagrams are to be
+generated, as regular expressions (see Sec.~\ref{sec:regular}). The nonterminals
+after the symbol \verb|--| are used only with the option \texttt{+unfold} (see 
+Sec.~\ref{sec:options} and \ref{sec:unfold}).  
+
+
+\subsection{Options}
+\label{sec:options}
+
+The following list shows all \textbf{options} with their \emph{parameters} and 
+their (default values). All distances and sizes measured in 1/100 point (1 point 
+is about 1/72 inch). Changes with respect to the last version of Ebnf2ps:
+some \new{}ew features, extension of grammar transformations and bug fixes.
+
+\begin{bfscript}{\qquad}
+\item[-titleFont     \emph{font}] (Times-Roman) PostScript font used for titles 
+  of diagrams, any font goes here that your printer knows and for which you have 
+  fetched the AFM files. Figure \ref{fig:AFMfonts} shows a sample list of font
+  names. \new
+\item[-titleScale     \emph{int}] (10) Pointsize of typeface for titles of diagrams.\new
+\item[-titleColor   \emph{color}] (black) Color of typeface for titles of diagrams. \new
+\item[-ntFont        \emph{font}] (Times-Roman) PostScript font used for nonterminals.
+\item[-ntScale        \emph{int}] (10) Pointsize of typeface for nonterminals. 
+\item[-ntColor      \emph{color}] (black) Color of typeface for nonterminals.
+\item[-ntBg         \emph{color}] (white) Background color of typeface for nonterminals.\new
+\item[-ntBoxColor   \emph{color}] (black) Color used for outlines of boxes (nonterminals).\new
+\item[-tFont         \emph{font}] (Times-Roman) PostScript font used for terminal strings. 
+\item[-tScale         \emph{int}] (10) Pointsize of typeface for terminals.
+\item[-tColor       \emph{color}] (black) Color of typeface for terminals.
+\item[-tBg          \emph{color}] (white) Background color of typeface for terminals.\new
+\item[-tBoxColor    \emph{color}] (black) Color used for outlines of boxes (terminals).\new
+\item[-borderDistX    \emph{int}] (500) Horizontal distance of objects from their container.
+\item[-borderDistY    \emph{int}] (500) Vertical distance of objects from their container. 
+\item[-lineWidth      \emph{int}] (30) Width of lines used for connecting lines.
+\item[-fatLineWidth   \emph{int}] (100) Width of lines used for drawing boxes.
+\item[-lineColor    \emph{color}] (black) Color used for connecting lines.
+\item[-arrowSize      \emph{int}] (200) Size of (invisible) box containing an arrow.
+\item[-rgbFileName    \emph{filename}] (rgb.txt) File name for color definitions.
+\item[-happy] Accept happy format input files. Happy, written by Andy Gill and Simon Marlow,
+  is a parser generator system (LALR(1)) for Haskell, similar to the tool yacc for C\footnote{The
+  program Happy is available by FTP from \texttt{ftp.dcs.glasgow.ac.uk} in \texttt{pub/haskell/happy}}.
+\item[-yacc] Accept yacc/bison format input files.\new
+\item[+ps] Produce encapsulated PostScript output (default).
+\item[+fig] Produce fig output (FORMAT 3.1).
+\item[+ebnf] Produce grammar in EBNF notation (file extension ".BNF") for yacc or happy 
+  input format files.\new
+\item[+simplify] Simplify productions (experimental, default: don't). 
+\item[+unfold] Replace nonterminals in productions (experimental, default: don't). 
+  See Sec.~\ref{sec:unfold}.\new
+\item[-verbose] Prints some progress messages.
+\item[-help] Prints a brief description of the command line, the options with their defaults,
+   and the environment variables.
+\end{bfscript}
+
+\begin{figure}
+  \begin{center}        
+    \begin{tabular}{|l|l|l|} \hline
+        AGaramond-Bold & AGaramond-BoldItalic \\
+        AGaramond-Italic & AGaramond-Regular  \\
+        AGaramond-Semibold & AGaramond-SemiboldItalic \\
+        AGaramondAlt-Italic & AGaramondAlt-Regular \\
+        AGaramondExp-Bold & AGaramondExp-BoldItalic \\
+        AGaramondExp-Italic & AGaramondExp-Semibold \\
+        AGaramondExp-SemiboldItalic & AvantGarde-Book \\
+        AvantGarde-BookOblique & AvantGarde-Demi \\
+        AvantGarde-DemiOblique & Bookman-Demi \\
+        Bookman-DemiItalic & Bookman-Light \\
+        Bookman-LightItalic & Courier-Bold \\
+        Courier-BoldOblique & Courier-Oblique \\
+        Courier & Helvetica-Bold \\
+        Helvetica-BoldOblique & Helvetica-Narrow-Bold \\
+        Helvetica-Narrow-BoldOblique & Helvetica-Narrow-Oblique \\
+        Helvetica-Narrow & Helvetica-Oblique \\
+        Helvetica & NewCenturySchlbk-Bold \\
+        NewCenturySchlbk-BoldItalic & NewCenturySchlbk-Italic \\
+        NewCenturySchlbk-Roman & Optima-Bold \\
+        Optima &  Palatino-Bold \\
+        Palatino-BoldItalic & Palatino-Italic \\
+        Palatino-Oblique & Palatino-Roman \\
+        StoneInformal-Bold & StoneInformal-BoldItalic \\
+        StoneInformal-Italic & StoneInformal-Semibold \\
+        StoneInformal-SemiboldItalic & StoneInformal \\
+        StoneSans & StoneSerif-Bold \\
+        StoneSerif-BoldItalic & StoneSerif-Italic \\
+        StoneSerif-Semibold & StoneSerif-SemiboldItalic \\
+        StoneSerif & Symbol \\
+        Times-Bold & Times-BoldItalic \\
+        Times-Italic & Times-Oblique \\
+        Times-Roman & ZapfChancery-MediumItalic \\
+        ZapfDingbats & \\ \hline                               
+    \end{tabular}
+  \end{center}  
+  \caption{Sample list of font names}
+  \label{fig:AFMfonts}
+\end{figure}
+
+
+\subsection{Syntax of EBNF Files}
+\label{sec:syntax}
+
+The following grammar and diagrams describe the standard input format (e.g. without 
+\textbf{-yacc} or \textbf{-happy}) as well as the output format with the \textbf{+ebnf} 
+option. 
+
+\begin{verbatim}
+File            = {Production};
+Production      = Nonterminal [ String ] "=" Term ";" ;
+Term            = Factor / "|" ;         # alternative
+Factor          = ExtAtom + ;            # sequence
+ExtAtom         = Atom
+                | Atom "/" Atom          # repetition through Atom
+                | Atom "+";              # at least one repetition
+Atom            = Nonterminal
+                | String                 # terminal string
+                | "(" Term ")"
+                | "[" Term "]"           # an optional Term
+                | "{" Term "}"           # zero or more repetitions
+                ;
+String          = "\"" { Character } "\"" ;
+Nonterminal     = letter { letter | digit | "_" | "." } ;
+Character       = character 
+                | ["\\"] anycharacter ;
+\end{verbatim}
+
+Or in terms of diagrams (what would you expect):
+\begin{flushleft}
+  \leavevmode\epsfbox{File.eps}
+  \\
+  \leavevmode\epsfbox{Production.eps}
+  \\
+  \leavevmode\epsfbox{Term.eps}
+  \\
+  \leavevmode\epsfbox{Factor.eps}
+  \\
+  \leavevmode\epsfbox{ExtAtom.eps}
+  \\
+  \leavevmode\epsfbox{Atom.eps}
+  \\
+  \leavevmode\epsfbox{String.eps}
+  \\
+  \leavevmode\epsfbox{Nonterminal.eps}
+  \\
+  \leavevmode\epsfbox{Character.eps}
+\end{flushleft}
+
+\noindent These diagrams have been produced with \texttt{Ebnf2ps
+  -tFont Courier-Bold -tBg Black -tColor White -fatLineWidth 50
+  ebnf.BNF '.*'}. 
+
+
+\subsection{Syntax of regular expressions}
+\label{sec:regular}
+
+The regular expressions used to select nonterminal symbols have the following
+syntax, which is similar to the regular expression syntax of \texttt{grep}. 
+
+\begin{verbatim}
+Regexp   = RFactor / "\\|" ["$"];
+RFactor  = RExtAtom + ;
+RExtAtom = RAtom ["*" | "+" | "?"] ;
+RAtom    = character | "\\" character | "." | "\\(" Regexp "\\)" ;
+\end{verbatim}
+
+Regular expressions \texttt{Regexp} may be joined by the infix
+operator \texttt{|}. The resulting regular expression matches any
+string matching either subexpression. A subexpression may be enclosed
+in parenthesis \verb|\(|, \verb|\)| to override precedence rules.
+Repetition takes precedence over concatenation, which in turn takes
+precedence over alternation. A regular expression matching a single
+character may be followed by one of several repetition operators:
+
+\begin{description}
+\item[\texttt{?}] The preceding item is optional and matched at most once.
+\item[\texttt{*}] The preceding item will be matched zero or more times.
+\item[\texttt{+}] The preceding item will be matched one or more times.
+\end{description}
+The period \texttt{.} matches any single character, and the dollar sign 
+\verb|$| match the empty string at the end of a line. Well, graphically, 
+the syntax is\footnote{The diagrams have been produced with:\\
+\texttt{Ebnf2ps -titleFont AvantGarde-Book -ntBoxColor White -fatLineWidth 
+50 regular.BNF '.*'}}:
+
+\begin{flushleft}
+  \leavevmode\epsfbox{Regexp.eps}
+  \\
+  \leavevmode\epsfbox{RFactor.eps}
+  \\
+  \leavevmode\epsfbox{RExtAtom.eps}
+  \\
+  \leavevmode\epsfbox{RAtom.eps}
+\end{flushleft}
+
+
+
+\subsection{Option +unfold}
+\label{sec:unfold}
+
+The option \textbf{+unfold} allows the replacement of nonterminal
+symbols in productions, through the "right side" of the production of
+corresponding nonterminals. The nonterminals, which follows the symbol
+\verb|--| in a command line could be specified by their full names,
+or by regular expressions (see Sec.~\ref{sec:regular}). An example:
+with the grammar \texttt{regular.BNF} for the regular expression
+syntax in section~\ref{sec:regular} should be generated a diagram for
+\texttt{RAtom}, with a replacement of nonterminal \texttt{Regexp}.
+The following diagram is been produced with \texttt{Ebnf2ps +unfold
+regular.BNF RAtom -- Regexp}.
+
+\begin{flushleft}
+  \leavevmode\epsfbox{RAtom_unfold.eps}    
+\end{flushleft}
+
+The following example illustrates the use of regular expressions with
+the option \texttt{+unfold}. In all productions of the grammar file
+\texttt{ebnf.BNF} --- which describes the syntax of EBNF files (see
+Sec.~\ref{sec:syntax}) --- the nonterminal \texttt{String} and all
+nonterminals that match the pattern 
+\begin{verbatim}
+   .*\(t\|T\)erm.*
+\end{verbatim}
+\noindent should be replaced. The next lines shows the command to produce 
+the railroad diagrams and the progress messages of Ebnf2ps.
+
+{\fontsize{8}{9pt}
+\begin{verbatim}
+% Ebnf2ps -verbose -tScale 8 -ntScale 8 +unfold ebnf.BNF '.*' -- String '.*\(t\|T\)erm.*'
+using colors:
+        ntColor          (0,0,0)
+        tColor           (0,0,0)
+        lineColor        (0,0,0)
+        ntBoxColor       (0,0,0)
+        tBoxColor        (0,0,0)
+        ntBg             (255,255,255)
+        tBg              (255,255,255)
+        titleColor       (0,0,0)
+from rgbPathDefault: ["/usr/lib/X11", "/usr/local/X11R5/lib/X11"]
+generating nonterminals: [".*"]
+from ebnf.BNF
+using input path ["."]
+using ebnfInput
+unfold nonterminals:
+        Nonterminal
+        String
+        Term
+in the following productions
+        Production
+        Atom
+produce layout and output
+\end{verbatim}
+}
+
+\noindent Well, graphically that is:
+\begin{flushleft}
+  \leavevmode\epsfbox{Atom_unfold.eps}\\
+  \leavevmode\epsfbox{Production_unfold.eps}
+\end{flushleft}
+
+%
+\subsection{Environment variables}
+
+The format of search pathes is a colon separated list of directories. The
+default path is inserted in place of an empty directory in the list. Any file
+name starting with \texttt{/} is taken as an absolute name and any file name
+starting with \texttt{.} is taken relative to the current working directory.
+
+\begin{description}
+\item[AFMPATH] search path for Adobe font metric files. 
+\item[EBNFINPUTS] search path for grammar input files.
+\item[RGBPATH] search path for the color definitions.
+\end{description}
+
+
+\section{How to change it}
+
+In order to add new options to the program you will need a modified copy of the
+program \texttt{Mkhprog} with kind permission of the author Nick North 
+(\texttt{ndn@seg.npl.co.uk}) which is available from URL 
+\begin{verbatim}
+http://www-pu.informatik.uni-tuebingen.de/users/thiemann/haskell/ebnf2ps/
+\end{verbatim}
+
+\end{document}
+%%
+
diff --git a/examples/ebnf.BNF b/examples/ebnf.BNF
new file mode 100644
--- /dev/null
+++ b/examples/ebnf.BNF
@@ -0,0 +1,17 @@
+File		= {Production};
+Production	= Nonterminal [ String ] "=" Term ";" ;
+Term		= Factor / "|" ;		# alternative
+Factor		= ExtAtom + ;			# sequence
+ExtAtom		= Atom
+		| Atom "/" Atom			# repetion through Atom
+		| Atom "+";			# at least one repetion
+Atom		= Nonterminal
+		| String			# terminal string
+		| "(" Term ")"
+		| "[" Term "]"			# an optional Term
+		| "{" Term "}"			# zero or more repetions
+		;
+String		= "\"" { Character } "\"" ;
+Nonterminal	= letter { letter | digit | "_" | "." } ;
+Character       = character
+                | ["\\"] anycharacter ;
diff --git a/examples/gofer.BNF b/examples/gofer.BNF
new file mode 100644
--- /dev/null
+++ b/examples/gofer.BNF
@@ -0,0 +1,292 @@
+#APPENDIX A: SUMMARY OF GRAMMAR
+#
+#This section gives a summary of the grammar for the  language  used  by
+#Gofer.  The non-terminals <interp> and <module> describe the syntax  of
+#expressions that can be entered into the Gofer interpreter and that  of
+#files of definitions that can be loaded into Gofer respectively.
+#
+#The following notational conventions are used in the Grammar  which  is
+#specified using a variant of BNF:
+#
+#  o <angle brackets> are used to distinguish names of nonterminals from
+#    keywords.
+#
+#  o vertical | bars  are used to separate alternatives.
+#
+#  o {braces} enclose items which may be repeated zero or more times.
+#
+#  o [brackets] are used for optional items.
+#
+#  o (parentheses) are used for grouping.
+#
+#  o "quotes" surround characters which might otherwise be confused with
+#    the notations introduced above.
+#
+#The following terminal symbols are used but not defined by the grammar:
+#
+#  varid    identifier beginning with lower case letter as described in
+#           section 6.
+#  conid    like varid, but beginning with upper case letter.
+#  varsym    operator symbol not beginning with a colon, as described in
+#           section 6.
+#  consym    constructor function operator, like varsym, but beginning
+#           with a colon character.
+#  integer  integer constant, as described in section 7.3.
+#  float    floating point constant, as described in section 7.4.
+#  char     character constant, as described in section 7.5.
+#  string   string constant, as described in section 7.7.
+#
+#
+#Top-level grammar
+#-----------------
+#
+    module   = ( "{" topdecls "}"             #  module
+#
+		);
+    interp   = ( exp [whereClause]                #  top-level expression
+#
+		);
+    topdecls = ( topdecls ";" topdecls         #  multiple declarations
+                |  dataDecl
+                |  typeDecl
+                |  infixDecl
+                |  primDecl
+                |  class                        #  class declaration
+                |  inst                         #  instance declaration
+                |  decls                        #  value declarations
+#
+		);
+dataDecl	= ("data" conid {varid} "=" (constr)/"|"     #  datatype declaration
+		);
+typeDecl	= ("type" conid {varid} "=" type        #  synonym declaration
+		);
+infixDecl	= (( "infixl" | "infixr" | "infix")
+			 [digit] (op)/","  #  fixity declarations
+		);
+#    simple  = ( conid {varid}                  #  type declaration lhs
+#		);
+#
+    constrs  = ( constrs "|" constrs        #  multiple constructors
+                |  type consym type            #  infix constructor
+                |  conid {type}                 #  constructor, n>=0
+		);
+     constr  =   type consym type            #  infix constructor
+                |  conid {type}                 #  constructor, n>=0
+		;
+#
+primDecl	= ("primitive" prims "::" type    #  primitive bindings
+		);
+    prims    = 
+                 (var string)/","                 #  primitive binding
+		;
+#
+#Type expressions
+#----------------
+#
+    sigType  = ( [context "=>" ] type         #  [qualified] type
+#
+		);
+    context  = ( "(" [(pred)/ "," ] ")"    #  general form
+                |  pred                         #  singleton context
+		);
+    pred     = ( conid (type)+           #  predicate
+#
+		);
+    type     = ( ctype [ "->" type ]          #  function type
+		);
+    ctype    = ( conid {atype}                #  datatype or synonym
+                |  atype
+		);
+    atype    = ( varid                          #  type variable
+                |  "(" ")"                        #  unit type
+                |  "(" type ")"                 #  parenthesised type
+                |  "(" type "," (type)/"," ")"#  tuple type
+                |  "[" type "]"                 #  list type
+#
+#Class and instance declarations
+#-------------------------------
+#
+		);
+    class    = ( "class" [context "=>"] pred [cbody]
+		);
+    cbody    = ( "where" "{" cdecls "}"         #  class body
+		);
+    cdecls   = ( cdecls ";" cdecls             #  multiple declarations
+                |  (var)/ ","  "::" type      #  member functions
+                |  fun rhs [whereClause]          #  default bindings
+#
+		);
+    inst     = ( "instance" [context "=>"] pred [ibody]
+		);
+    ibody    = ( "where" "{" idecls "}"         #  instance body
+		);
+    idecls   = ( idecls ";" idecls             #  multiple declarations
+                |  fun rhs [whereClause]          #  member definition
+#
+#Value declarations
+#------------------
+#
+		);
+    decls  = ( decls ";" decls                 #multiple declarations
+              |  (var)/"," "::" sigType     #type declaration
+              |  fun rhs [whereClause]            #function binding
+              |  lhsPat rhs [whereClause]            #pattern binding, PJT: was pat
+#
+		);
+    rhs    = ( "=" exp                          #simple right hand side
+              |  (gdRhs)+                #guarded right hand sides
+#
+		);
+    gdRhs  = ( "|" exp "=" exp                #guarded right hand side
+#
+		);
+    whereClause  = ( "where" "{" decls "}"            #local definitions
+#
+		);
+    fun    = ( var                            #function of arity 0
+              |  pat varop pat              #infix operator
+              |  "(" pat varop ")"            #section-like notation
+              |  "(" varop pat ")"
+              |  fun apat                     #function with argument
+              |  "(" fun ")"                    #parenthesised lhs
+		);
+#
+#Expressions
+#-----------
+#
+    exp    = ( "\\" (apat)+  "->" exp       #lambda expression
+              |  "let" "{" decls "}" "in" exp     #local definition
+              |  "if" exp "then" exp "else" exp   #conditional expression
+              |  "case" exp "of" "{" alts "}"     #case expression
+              |  opExp "::" sigType             #typed expression
+              |  opExp
+		);
+    opExp  = ( opExp op opExp             #operator application
+              |  pfxExp
+		);
+    pfxExp = ( "-" appExp                       #negation
+              |  appExp
+		);
+    appExp = ( appExp atomic                #function application
+              |  atomic
+		);
+    atomic = ( var                            #variable
+              |  con                          #constructor
+              |  integer                          #integer literal
+              |  float                            #floating point literal
+              |  char                             #character literal
+              |  string                           #string literal
+              |  "(" ")"                          #unit element
+              |  "(" exp ")"                    #parenthesised expr.
+              |  "(" exp op ")"                     #sections
+              |  "(" op exp ")"
+              |  "[" list "]"                   #list expression
+              |  "(" exp "," (exp)/","  ")"   #tuple
+		);
+#
+    list   = ( [ (exp)/","  ]              #enumerated list
+              |  exp "|" quals                #list comprehension
+              |  exp ".."                         #arithmetic sequence
+              |  exp "," exp ".."
+              |  exp ".." exp
+              |  exp "," exp ".." exp
+		);
+    quals  = ( quals "," quals                 #multiple qualifiers
+              |  pat "<-" exp                   #generator
+              |  "let" "{" decls "}"            #local definition
+              |  exp                            #boolean guard
+		);
+#
+    alts   = ( alts ";" alts                   #multiple alternatives
+              |  pat	( "->" exp                         #single alternative
+              		|  (gdAlt)+                #guarded alternatives
+			)  [whereClause]         #alternative
+		);
+#    altRhs = ( "->" exp                         #single alternative
+#              |  (gdAlt)+                #guarded alternatives
+#		);
+    gdAlt  = ( "|" exp "->" exp               #guarded alternative
+		);
+#
+#Patterns
+#--------
+#
+    pat    = ( pat conop pat              #operator application
+              |  (var | "_") "+" integer                #(n+k) pattern
+              |  (apat)+
+		);
+    lhsPat = 	( lhsPat conop lhsPat		#PJT: left hand sides of pattern bindings
+		| apat
+		);
+    apat   = ( var                            #variable
+              |  var "@" pat                    #as pattern
+              |  "~" pat                          #irrefutable pattern
+              |  "_"                                #wildcard
+              |  con                          #constructor
+              |  integer                          #integer literal
+              |  char                             #character literal
+              |  string                           #string literal
+              |  "(" ")"                          #unit element
+              |  "(" pat ")"                    #parenthesised expr.
+              |  "(" pat conop ")"                  #sections
+              |  "(" conop pat ")"
+              |  "[" [ (pat)/"," ] "]"      #list
+              |  "(" pat "," (pat)/","  ")"   #tuple
+		);
+#
+#Variables and operators
+#-----------------------
+#
+    var    = ( varid  |  "(" "-" ")"          #variable
+		|  "(" varsym ")"        #variable identifier
+		);
+    op     = ( varop  |  conop   | "-"      #operator
+		);
+#
+    varop  = ( varsym    |  "`" varid "`"            #variable operator
+		);
+#
+    con  = ( conid    |  "(" consym ")"        #constructor identifier
+		);
+    conop  = ( consym    |  "`" conid "`"            #constructor operator
+		);
+#
+#Finally, PJT's definitions for literals
+#---------------------------------------
+#
+integer= (digit)+ ;
+float  = integer  "." integer [ ("e" | "E") [ "+"|"-" ] integer ];
+
+varsym		= ((symbol | preSymbol) { symbol | ":" });
+consym		= (":" {symbol | ":"});
+
+varid		= (small { letter | digit | "_" | "'" });
+conid		= (large { letter | digit | "_" | "'" });
+string		= "\"" { character } "\"" ;
+char		= "'" character "'" ;
+
+character	= (	letter |
+			digit | 
+			symbol | 
+			preSymbol | 
+			":" | 
+			"\\" ( integer | "n" | "t" | "b" | "\\" | "'" | "\"" ) );
+
+# now this is really trivial...
+
+letter		= ( small | large);
+small	 	= ( "a"| "b"| "c"| "d"| "e"| "f"| "g"| "h"| "i"| "j"| "k"| "l"| "m"| "n"| "o"
+		  | "p"| "q"| "r"| "s"| "t"| "u"| "v"| "w"| "x"| "y"| "z");
+large		= ( "A"| "B"| "C"| "D"| "E"| "F"| "G"| "H"| "I"| "J"| "K"| "L"| "M"
+		  | "N"| "O"| "P"| "Q"| "R"| "S"| "T"| "U"| "V"| "W"| "X"| "Y"| "Z" );
+digit		= ( "0"| "1"| "2"| "3"| "4"| "5"| "6"| "7"| "8"| "9" );
+octit		= ( "0"| "1"| "2"| "3"| "4"| "5"| "6"| "7" );
+hexit		= ( digit | "A"| "B"| "C"| "D"| "E"| "F"| "a"| "b"| "c"| "d"| "e"| "f" );
+cntrl		= ( large | "@"| "["| "|"| "]"| "^"| "_" );
+charesc		= ( "a"| "b"| "f"| "n"| "r"| "t"| "v"| "\\"| "\""| "'"| "&" );
+
+symbol		=("!" | "@" | "#" | "$" | "%" | "^" | "&" | "*" | "+" | "." | "/"
+		| "<" | "=" | ">" | "?" | "\\" | "|");
+
+preSymbol	= ("-" | "~");
+
diff --git a/examples/regular.BNF b/examples/regular.BNF
new file mode 100644
--- /dev/null
+++ b/examples/regular.BNF
@@ -0,0 +1,4 @@
+Regexp	 = RFactor / "\\|" ["$"];
+RFactor	 = RExtAtom + ;
+RExtAtom = RAtom ["*" | "+" | "?"] ;
+RAtom	 = character | "\\" character | "." | "\\(" Regexp "\\)" ;
