%!PS-Adobe-2.0
%%Creator: dvips(k) 5.98 Copyright 2009 Radical Eye Software
%%Title: science-PQC.dvi
%%CreationDate: Tue Nov 6 09:22:36 2012
%%Pages: 17
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentFonts: Times-Bold Helvetica CMR10 Courier CMMI12 CMR12 CMSY10
%%+ CMSY9
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips science-PQC.dvi
%DVIPSParameters: dpi=600
%DVIPSSource: TeX output 2012.11.06:0922
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
%%BeginProcSet: pstricks.pro 0 0
% $Id: pstricks.pro 90 2009-01-30 10:58:51Z herbert $
%
%% PostScript prologue for pstricks.tex.
%% Version 1.06, 2009/01/30
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%
%
% Define the follwing gs-functions if not known, eg when using distiller
%
systemdict /.setopacityalpha known not {/.setopacityalpha { pop } def } if
systemdict /.setblendmode known not {/.setblendmode { pop } def } if
systemdict /.setshapealpha known not {/.setshapealpha { pop } def } if
%
/tx@Dict 200 dict def % the main PSTricks dictionary
tx@Dict begin
/ADict 25 dict def % The arrow dictionaray
/CM { matrix currentmatrix } bind def
/SLW /setlinewidth load def
/CLW /currentlinewidth load def
/CP /currentpoint load def
/ED { exch def } bind def
/L /lineto load def
/T /translate load def
/TMatrix { } def
/RAngle { 0 } def
/Sqrt { dup 0 lt { pop 0 } { sqrt } ifelse } def % return 0 for negative arguments
/Atan { /atan load stopped { pop pop 0 } if } def % return 0 if atan not known
/ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter)
/Div { dup 0 eq { pop } { div } ifelse } def % control the division
/tan { dup cos abs 1.e-10 lt
{ pop 1.e10 } % return 1.e10 as infinit
{ dup sin exch cos div } ifelse % default sin/cos
} def
/Tan { dup sin exch cos Div } def % sin(x)/cos(x) x in degrees
/Acos {dup dup mul neg 1 add dup 0 lt { % arc cos, returns 0 when negative root
pop pop 0 }{ sqrt exch atan} ifelse } def
/NET { neg exch neg exch T } def % change coordinate system to the negative one
/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, expects 2 parameter
/Pyth2 { % Pythagoras, xA yA xB yB
3 -1 roll % xA xB yB yA
sub % xA xB yB-yA
3 1 roll % yB-yA xA xB
sub % yB-yA xA-xB
Pyth } def
/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian
/Rand { rand 4294967295 div } def % a real random number
%----------------- hv added 20050516 ---------------
/PiDiv2 1.57079632680 def
/Pi 3.14159265359 def
/TwoPi 6.28318530718 def
/Euler 2.71828182846 def
%/e Euler bind def
%
/RadtoDeg { 180 mul Pi div } bind def % convert from radian to degrees
/DegtoRad { Pi mul 180 div } bind def % viceversa
%----------------- hv end---------------------------
/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def
%
/PathLength {
flattenpath /z 0 def
{ /y1 ED /x1 ED /y2 y1 def /x2 x1 def }
{ /y ED /x ED PathLength@ }
{}
{ /y y2 def /x x2 def PathLength@ }
/pathforall load stopped { pop pop pop pop } if
z
} def
%
/STP { .996264 dup scale } def % BP/PT scaling
/STV { SDict begin normalscale end STP } def %
%
%%-------------- DG begin patch 15 ---------------%%
%/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def
%PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y
%mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul
%/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ]
%0 } ifelse setdash stroke } def
/DashLine {
dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def PathLength } ifelse
/b ED /x1 ED /y1 ED /x ED /y ED
/z y x add y1 add x1 add def
/Coef b a .5 sub 2 mul y mul sub z Div round
z mul a .5 sub 2 mul y mul add b exch Div def
/y y Coef mul def
/x x Coef mul def
/y1 y1 Coef mul def
/x1 x1 Coef mul def
x1 0 gt y1 0 gt or x 0 gt or y 0 gt and
{ [ y x y1 x1 ] 1 a sub y mul }
{ [ 1 0 ] 0 } ifelse
setdash stroke
} def
%%-------------- DG end patch 15 ---------------%%
/DotLine {
/b PathLength def
/a ED /z ED /y CLW def
/z y z add def
a 0 gt {
/b b a div def
}{
a 0 eq {
/b b y sub def
}{ a -3 eq {
/b b y add def } if
} ifelse
} ifelse
[ 0 b b z Div round Div dup 0 le { pop 1 } if ]
a 0 gt { 0 }{ y 2 div a -2 gt { neg }if } ifelse
setdash 1 setlinecap stroke
} def
%
/LineFill { % hv ------------ patch 7 -------------
gsave
abs /hatchWidthInc ED
abs /hatchSepInc ED
abs CLW add /a ED
a 0 dtransform round exch round exch
2 copy idtransform
exch Atan rotate
idtransform pop /a ED
.25 .25 itransform pathbbox
/y2 ED
a Div ceiling cvi /x2 ED /y1 ED
a Div cvi /x1 ED /y2 y2 y1 sub def
clip
newpath
2 setlinecap
systemdict
/setstrokeadjust known { true setstrokeadjust } if
x2 x1 sub 1 add {
x1 a mul y1 moveto 0 y2 rlineto stroke
/x1 x1 1 add
hatchWidthInc 0 gt { CLW add } if
def
hatchSepInc 0 gt hatchWidthInc 0 gt or {
/a a hatchSepInc add def
CLW hatchWidthInc add SLW
} if
} repeat
grestore
pop pop } def
%
/PenroseFill {% on stack: scaling factor
dup dup scale
1 exch div round /penroseFactor ED
a 0 dtransform round exch round exch
2 copy idtransform
exch Atan rotate
idtransform pop /a ED
.25 .25 itransform pathbbox
/y2 ED
a Div ceiling cvi /x2 ED /y1 ED
a Div cvi /x1 ED /y2 y2 y1 sub def
clip
newpath
systemdict
/setstrokeadjust known { true setstrokeadjust } if
/I/S/L/W/G/+/Z/F/E/D[/def/exch/for{E D}/add{s E get mul}
{ Z -36.2001 1 33 }{25 E S rlineto}{/q Z dup q G E q 1 + G}{Z 2 2}]{cvx def}forall
[0 72 1008 {dup sin E cos }F ]1 setlinejoin/s W{/a W{/b I 10{/i I 4{/m I moveto
i m +/j I 10{/l Z b m l + G a l G sub s m get div .2 + floor .3 + 25
mul j l + S rmoveto}F i L j L stroke }F}F}F}F
grestore
pop pop
} def
%
%gsave abs CLW add /a ED a 0 dtransform round exch round exch
%2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25
%% DG/SR modification begin - Dec. 12, 1997 - Patch 2
%%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
%itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
%% DG/SR modification end
%Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict
%/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1
%% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
%% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore }
%% def
%a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore
%pop pop } def
%% DG/SR modification end
%
/BeginArrow {
ADict begin % hold it local, for end see EndArrow
/@mtrx CM def
gsave
2 copy T
2 index sub neg exch
3 index sub exch Atan
rotate newpath
} def
%
/EndArrow { @mtrx setmatrix CP grestore end } def % end the ADict
%
/Arrow {
CLW mul add dup
2 div /w ED
mul dup /h ED
mul /a ED
{ 0 h T 1 -1 scale } if
w neg h moveto
0 0 L w h L w neg a neg rlineto
gsave fill grestore
} def
%
/ArrowD { % the sides are drawn as curves (hv 20071211)
CLW mul add dup
2 div /w ED
mul dup /h ED
mul /Inset ED
{ 0 h T 1 -1 scale } if % changes the direction
% we use y=w/h^2 * x^2 as equation for the control points
% for the coordinates the arrow is seen from top to bottom
% the bottom (tip) is (0;0)
w neg h moveto % lower left of >
w 9 div 4 mul neg h 3 div 2 mul
w 9 div neg h 3 div
0 0 curveto % tip of >
w 9 div h 3 div
w 9 div 4 mul h 3 div 2 mul
w h curveto % upper left of >
w neg Inset neg rlineto % move to x=0 and inset
gsave fill grestore
} def
%
/Tbar {
CLW mul add /z ED
z -2 div CLW 2 div moveto
z 0 rlineto stroke
0 CLW moveto
} def
%
/Bracket {
CLW mul add dup CLW sub 2 div
/x ED mul CLW add /y ED /z CLW 2 div def
x neg y moveto
x neg CLW 2 div L x CLW 2 div L x y L stroke
0 CLW moveto
} def
%
/RoundBracket {
CLW mul add dup 2 div
/x ED mul /y ED /mtrx CM def
0 CLW 2 div T x y mul 0 ne { x y scale } if
1 1 moveto
.85 .5 .35 0 0 0 curveto
-.35 0 -.85 .5 -1 1 curveto
mtrx setmatrix stroke 0 CLW moveto
} def
%
/SD { 0 360 arc fill } def
%
/EndDot { % DS is the dot size
{ /z DS def } { /z 0 def } ifelse
/b ED 0 z DS SD b { 0 z DS CLW sub SD } if
0 DS z add CLW 4 div sub moveto } def
%
/Shadow { [ { /moveto load } { /lineto load } { /curveto load } {
/closepath load } /pathforall load stopped { pop pop pop pop CP /moveto
load } if ] cvx newpath 3 1 roll T exec } def
%
%/NArray {
% aload length 2 div dup dup cvi eq not { exch pop } if /n exch
% cvi def
%} def
%
/NArray { % holds the coordinates and on top of stack the showpoints boolean
/showpoints ED
counttomark 2 div dup cvi /n ED
n eq not { exch pop } if
showpoints { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse
} def
%
/Line {
NArray n 0 eq not
{ n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub def
n { Lineto } repeat
CP 4 2 roll ArrowB L pop pop
} if
} def
%
/Arcto {
/a [ 6 -2 roll ] cvx def
a r
/arcto load stopped { 5 } { 4 } ifelse { pop } repeat
a
} def
%
/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq
and { pop pop /n n 1 sub def } if } def
/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop }
repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1
ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1
moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto
Lineto pop pop closepath } ifelse } def
/Diamond {
/mtrx CM def
T rotate
/h ED
/w ED
dup 0 eq { pop } { CLW mul neg
/d ED
/a w h Atan def
/h d a sin Div h add def
/w d a cos Div w add def } ifelse
mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 div
/ArrowA { moveto } def
/ArrowB { } def
false Line
closepath mtrx setmatrix } def
% DG modification begin - Jan. 15, 1997
%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq {
%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0
%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
%setmatrix } def
%
/Triangle {
/mtrx CM def
translate
rotate /h ED 2 div /w ED
dup CLW mul /d ED
/h h d w h Atan sin Div sub def
/w w d h w Atan 2 div dup cos exch sin Div mul sub def
mark
0 d w neg d 0 h w d 0 d
/ArrowA { moveto } def
/ArrowB { } def
false
Line
closepath
mtrx
% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
% setmatrix } def
setmatrix pop
} def
% DG/SR modification end
%
/CCA {
/y ED /x ED
2 copy y sub /dy1 ED
x sub /dx1 ED
/l1 dx1 dy1 Pyth def
} def
%
/CC {
/l0 l1 def
/x1 x dx sub def
/y1 y dy sub def
/dx0 dx1 def
/dy0 dy1 def
CCA
/dx dx0 l1 c exp mul dx1 l0 c exp mul add def
/dy dy0 l1 c exp mul dy1 l0 c exp mul add def
/m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos abs b exp a mul dx dy Pyth Div 2 div def
/x2 x l0 dx mul m mul sub def
/y2 y l0 dy mul m mul sub def
/dx l1 dx mul m mul neg def
/dy l1 dy mul m mul neg def
} def
%
/IC {
/c c 1 add def
c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } ifelse
/a a 2 mul 3 div 45 cos b exp div def
CCA
/dx 0 def
/dy 0 def
} def
%
/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def
/NC { CC x1 y1 x2 y2 x y curveto } def
/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def
/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def
/NAC { x2 y2 x y curveto CC x1 y1 } def
/EAC { x2 y2 x y ArrowB curveto pop pop } def
%
/OpenCurve {
NArray n 3 lt
{ n { pop pop } repeat }
{ BOC /n n 3 sub def n { NC } repeat EOC } ifelse
} def
%
/AltCurve {
{ false NArray n 2 mul 2 roll
[ n 2 mul 3 sub 1 roll ] aload
/Points ED
n 2 mul -2 roll }
{ false NArray } ifelse
n 4 lt { n { pop pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse
} def
%
/ClosedCurve {
NArray n 3 lt
{ n { pop pop } repeat }
{ n 3 gt { CheckClosed } if
6 copy n 2 mul 6 add 6 roll
IC CC x y moveto n { NC } repeat
closepath pop pop
} ifelse
} def
%
/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def
/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def
/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } def
%
/FontDot {
DS 2 mul dup
matrix scale matrix concatmatrix exch matrix
rotate matrix concatmatrix exch
findfont exch makefont setfont
} def
%
/Rect {
x1 y1 y2 add 2 div moveto
x1 y2 lineto
x2 y2 lineto
x2 y1 lineto
x1 y1 lineto
closepath
} def
%
/OvalFrame {
x1 x2 eq y1 y2 eq or
{ pop pop x1 y1 moveto x2 y2 L }
{ y1 y2 sub abs x1 x2 sub abs 2 copy gt
{ exch pop } { pop } ifelse
2 div exch { dup 3 1 roll mul exch } if
2 copy lt { pop } { exch pop } ifelse
/b ED
x1 y1 y2 add 2 div moveto
x1 y2 x2 y2 b arcto
x2 y2 x2 y1 b arcto
x2 y1 x1 y1 b arcto
x1 y1 x1 y2 b arcto
16 { pop } repeat
closepath
} ifelse
} def
%
/Frame {
CLW mul /a ED
3 -1 roll
2 copy gt { exch } if
a sub /y2 ED
a add /y1 ED
2 copy gt { exch } if
a sub /x2 ED
a add /x1 ED
1 index 0 eq { pop pop Rect } { OvalFrame } ifelse
} def
%
/BezierNArray {
/f ED
counttomark 2 div dup cvi /n ED
n eq not { exch pop } if
n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat
f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse
} def
%
/OpenBezier {
BezierNArray
n 1 eq
{ pop pop }
{ ArrowA n 4 sub 3 idiv
{ 6 2 roll 4 2 roll curveto } repeat
6 2 roll 4 2 roll ArrowB curveto } ifelse
} def
%
/ClosedBezier {
BezierNArray
n 1 eq
{ pop pop }
{ moveto n 1 sub 3 idiv
{ 6 2 roll 4 2 roll curveto } repeat
closepath } ifelse
} def
%
/BezierShowPoints {
gsave
Points aload length 2 div cvi /n ED
moveto
n 1 sub { lineto } repeat
CLW 2 div SLW [ 4 4 ] 0 setdash stroke
grestore
} def
%
/Parab {
/y0 ED /x0 ED /y1 ED /x1 ED
/dx x0 x1 sub 3 div def
/dy y0 y1 sub 3 div def
x0 dx sub y0 dy add x1 y1 ArrowA
x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB
curveto
/Points [ x1 y1 x0 y0 x0 2 mul x1 sub y1 ] def
} def
%
/Grid {
newpath
/a 4 string def
/b ED /c ED /n ED
cvi dup 1 lt { pop 1 } if
/s ED
s div dup 0 eq { pop 1 } if
/dy ED s div dup 0 eq { pop 1 } if
/dx ED dy div round dy mul
/y0 ED dx div round dx mul
/x0 ED dy div round cvi
/y2 ED dx div round cvi
/x2 ED dy div round cvi
/y1 ED dx div round cvi
/x1 ED
/h y2 y1 sub 0 gt { 1 } { -1 } ifelse def
/w x2 x1 sub 0 gt { 1 } { -1 } ifelse def
b 0 gt {
/z1 b 4 div CLW 2 div add def
% /Helvetica findfont b scalefont setfont
/b b .95 mul CLW 2 div add def } if
systemdict /setstrokeadjust known
{ true setstrokeadjust /t { } def }
{ /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add
exch itransform } bind def } ifelse
gsave n 0 gt { 1 setlinecap [ 0 dy n div ] dy n div 2 div setdash } { 2 setlinecap } ifelse
/i x1 def
/f y1 dy mul n 0 gt { dy n div 2 div h mul sub } if def
/g y2 dy mul n 0 gt { dy n div 2 div h mul add } if def
x2 x1 sub w mul 1 add dup 1000 gt { pop 1000 } if
{ i dx mul dup y0 moveto
b 0 gt
{ gsave c i a cvs dup stringwidth pop
/z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse
h 0 gt {b neg}{z1} ifelse
rmoveto show grestore } if
dup t f moveto
g t L stroke
/i i w add def
} repeat
grestore
gsave
n 0 gt
% DG/SR modification begin - Nov. 7, 1997 - Patch 1
%{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash }
{ 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash }
% DG/SR modification end
{ 2 setlinecap } ifelse
/i y1 def
/f x1 dx mul n 0 gt { dx n div 2 div w mul sub } if def
/g x2 dx mul n 0 gt { dx n div 2 div w mul add } if def
y2 y1 sub h mul 1 add dup 1000 gt { pop 1000 } if
{ newpath i dy mul dup x0 exch moveto
b 0 gt { gsave c i a cvs dup stringwidth pop
/z2 ED
w 0 gt {z1 z2 add neg} {z1} ifelse
h 0 gt {z1} {b neg} ifelse
rmoveto show grestore } if
dup f exch t moveto
g exch t L stroke
/i i h add def
} repeat
grestore
} def
%
/ArcArrow {
/d ED /b ED /a ED
gsave
newpath 0 -1000 moveto clip
newpath
0 1 0 0 b
grestore
c mul
/e ED
pop pop pop r a e d PtoC y add exch x add
exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c
mul neg d
} def
%
/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def
%
/ArcAdjust { %%%% Vincent Guirardel
% given a target length (targetLength) and an initial angle (angle0) [in the stack],
% let M(angle0)=(rx*cos(angle0),ry*sin(angle0))=(x0,y0).
% This computes an angle t such that (x0,y0) is at distance
% targetLength from the point M(t)=(rx*cos(t),ry*sin(t)).
% NOTE: this an absolute angle, it does not have to be added or substracted to angle0
% contrary to TvZ's code.
% To achieve, this, one iterates the following process: start with some angle t,
% compute the point M' at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)].
% Now take t' (= new angle) so that (0,0) M(t') and M' are aligned.
%
% Another difference with TvZ's code is that we need d (=add/sub) to be defined.
% the value of d = add/sub is used to know on which side we have to move.
% It is only used in the initialisation of the angle before the iteration.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Input stack: 1: target length 2: initial angle
% variables used : rx, ry, d (=add/sub)
%
/targetLength ED /angle0 ED
/x0 rx angle0 cos mul def
/y0 ry angle0 sin mul def
% we are looking for an angle t such that (x0,y0) is at distance targetLength
% from the point M(t)=(rx*cos(t),ry*sin(t)))
%initialisation of angle (using 1st order approx = TvZ's code)
targetLength 57.2958 mul
angle0 sin rx mul dup mul
angle0 cos ry mul dup mul
add sqrt div
% if initialisation angle is two large (more than 90 degrees) set it to 90 degrees
% (if the ellipse is very curved at the point where we draw the arrow, %
% the value can be much more than 360 degrees !)
% this should avoid going on the wrong side (more than 180 degrees) or go near
% a bad attractive point (at 180 degrees)
dup 90 ge { pop 90 } if
angle0 exch d % add or sub
% maximum number of times to iterate the iterative procedure:
% iterative procedure: takes an angle t on top of stack, computes a
% better angle (and put it on top of stack)
30 { dup
% compute distance D between (x0,y0) and M(t)
dup cos rx mul x0 sub dup mul exch sin ry mul y0 sub dup mul add sqrt
% if D almost equals targetLength, we stop
dup targetLength sub abs 1e-5 le { pop exit } if
% stack now contains D t
% compute the point M(t') at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]:
% M(t')= ( (x(t)-x0)*targetLength/d+x0 , (y(t)-y0)*targetLength/d+y0 )
exch dup cos rx mul x0 sub exch sin ry mul y0 sub
% stack contains: y(t)-y0, x(t)-x0, d
2 index Div targetLength mul y0 add ry Div exch
2 index Div targetLength mul x0 add rx Div
% stack contains x(t')/rx , y(t')/ry , d
% now compute t', and remove D from stack
atan exch pop
} repeat
% we don't look at what happened... in particular, if targetLength is greater
% than the diameter of the ellipse...
% the final angle will be around /angle0 + 180. maybe we should treat this pathological case...
% after iteration, stack contains an angle t such that M(t) is the tail of the arrow
% to give back the result as a an angle relative to angle0 we could add the following line:
% angle0 sub 0 exch d
%
% begin bug fix 2006-01-11
% we want to adjust the new angle t' by a multiple of 360 so that | t'-angle0 | <= 180
%(we don't want to make the ellipse turn more or less than it should)...
dup angle0 sub dup abs 180 gt { 180 add 360 div floor 360 mul sub } { pop } ifelse
% end bug fix
} def
%
/EllipticArcArrow {
/d ED % is add or sub
/b ED % arrow procedure
/a1 ED % angle
gsave
newpath
0 -1000 moveto
clip % Set clippath far from arrow.
newpath
0 1 0 0 b % Draw arrow to determine length.
grestore
% Length of arrow is on top of stack. Next 3 numbers are junk.
%
a1 exch ArcAdjust % Angular position of base of arrow.
/a2 ED
pop pop pop
a2 cos rx mul xOrig add % hv 2007-08-29 x->xOrig
a2 sin ry mul yOrig add % hv 2007-08-29 y->yOrig
a1 cos rx mul xOrig add %
a1 sin ry mul yOrig add %
% Now arrow tip coor and base coor are on stack.
b pop pop pop pop % Draw arrow, and discard coordinates.
a2 CLW 8 div
% change value of d (test it by looking if `` 1 1 d '' gives 2 or not )
1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse
ArcAdjust
% resets original value of d
1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse % Adjust angle to give overlap.
} def
%%------------------ tvz/DG/hv (2004-05-10) end -------------------%%
%
/Rot { CP CP translate 3 -1 roll neg rotate NET } def
%
/RotBegin {
tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } def } if
/TMatrix [ TMatrix CM ] cvx def
/a ED
a Rot /RAngle [ RAngle dup a add ] cvx def
} def
%
/RotEnd {
/TMatrix [ TMatrix setmatrix ] cvx def
/RAngle [ RAngle pop ] cvx def
} def
%
/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def
/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def
/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def
%
/Uput {
/a ED
add 2 div /h ED 2
div /w ED
/s a sin def
/c a cos def
/b s abs c abs 2 copy gt dup
/q ED
{ pop } { exch pop } ifelse def
/w1 c b div w mul def
/h1 s b div h mul def
q { w1 abs w sub dup c mul abs }{ h1 abs h sub dup s mul abs } ifelse
} def
%
/UUput {
/z ED
abs /y ED
/x ED
q { x s div c mul abs y gt }{ x c div s mul abs y gt } ifelse
{ x x mul y y mul sub z z mul add sqrt z add }
{ q { x s div } { x c div } ifelse abs
} ifelse
a PtoC
h1 add exch
w1 add exch
} def
%
/BeginOL {
dup (all) eq exch TheOL eq or
{ IfVisible not { Visible /IfVisible true def } if }
{ IfVisible { Invisible /IfVisible false def } if } ifelse
} def
%
/InitOL {
/OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def
/Visible { CP OLUnit idtransform T moveto } def
/Invisible { CP OLUnit neg exch neg exch idtransform T moveto } def
/BOL { BeginOL } def
/IfVisible true def
} def
%
end
%-----------------------------------------------------------------------------%
%
% END pstricks.pro
%%EndProcSet
%%BeginProcSet: pst-algparser.pro 0 0
% $Id: pst-algparser.pro 26 2008-06-14 11:50:02Z herbert $
%%
%% PostScript prologue for PSTricks algorithm parser
%% Version 0.01, 2008/01/01
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
%%-----------------------------------------------------------------------------%
%
/AlgParser { tx@AlgToPs begin AlgToPs end } def % Dominique Rodriguez
%
/tx@CoreAnalyzerDict 100 dict def tx@CoreAnalyzerDict begin
%
% PS ANALYZER FOR ALGEBRAIC EXPRESSION V1.12
% E->T|E+T
% T->FS|T*FS
% FS -> F | +FS | -FS
% F->P|F^SF
% P->(E)|literal
% literal->number|var|var[E]|func(params)
% params->E|E,param
% number->TOBEFINISHED
%
%% E expression, T term, SF signed factor, F factor, P power
%
%% parser
%
%% str
%
%% C->EE
%% STR index -> STR index+lenExpr
/AnalyzeCond { AnalyzeExpr ReadCondOp AnalyzeExpr EvalCondOp } def
%
%% analyze Expression List (separator , or | )
%% STR index -> STR index+lenExpr
%% /AnalyzeListOfE {
%% { NextNonBlankChar pop AnalyzeExpr%%dup Strlen eq { exit } if NextNonBlankChar
%% NextNonBlankChar dup 0 eq { pop exit } if
%% dup 44 ne 1 index 124 ne and { dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse } if
%% pop NextNonBlankChar dup 0 eq { exit } if 124 ne { PROBLEMCONTACTBILLOU } if 1 add NextNonBlankChar 0 eq {toto} if } loop
%% AnalyzeListOfEPostHook
%% } def
/AnalyzeListOfE {
/NotFirst false def
{ NextNonBlankChar pop AnalyzeExpr
NotFirst { EvalListOfExpr } { /NotFirst true def } ifelse
dup Strlen eq { exit } if NextNonBlankChar
dup 44 ne 1 index 124 ne and
{ dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse }
if pop 1 add } loop
AnalyzeListOfEPostHook
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% E->T|E+T
%% STR index -> STR index+lenExpr
/AnalyzeExpr {
AnalyzePreHook AnalyzeTerm IsEndingExpr
{ dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
{ { RollOp 1 add NextNonBlankChar pop AnalyzeTerm PreEvalHook EvalAddSub IsEndingExpr { pop exit } if } loop }
ifelse
AnalyzePostHook
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% T->FS|T*FS
%% STR index
/AnalyzeTerm {
AnalyzePreHook AnalyzeSignedFactor IsEndingTerm
{ dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
{ { RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor PreEvalHook EvalMulDiv IsEndingTerm { pop exit } if} loop }
ifelse
AnalyzePostHook
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% FS -> F | +FS | -FS
%% STR index
/AnalyzeSignedFactor {
AnalyzePreHook 2 copy get dup IsUnaryOp
{ RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor EvalUnaryOp }
{ pop AnalyzeFactor }
ifelse AnalyzePostHook
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% F->P|F^P
%% STR index
/AnalyzeFactor {
AnalyzePreHook AnalyzePower IsEndingFactor
{ dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
{ { RollOp 1 add NextNonBlankChar pop AnalyzePower PreEvalHook EvalPower IsEndingFactor { pop exit } if} loop }
ifelse AnalyzePostHook
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% P->(E)|literal
%% STR index
/AnalyzePower {
%% depending of first char either a number, or a literal
2 copy get dup 40 eq%%an open par
{ pop 1 add NextNonBlankChar pop AnalyzeExpr 1 add NextNonBlankChar pop }
{ AnalyzeLiteral }
ifelse
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% STR index STR[index] -> STR index
%/AnalyzeLiteral { IsNumber { EvalNumber } { EvalLiteral } ifelse } def
/AnalyzeLiteral { dup IsUnaryOp exch IsNumber or { EvalNumber } { EvalLiteral } ifelse } def%%dr 09102006
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% recognize + or -
%% chr -> T/F
/IsUnaryOp { dup 43 eq exch 45 eq or } bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% a number can contain only : 0123456789.
%% chr -> T/F
/IsNumber { dup 48 ge exch dup 57 le 3 -1 roll and exch 46 eq or } bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% STR index -> STR index number
%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)?
%% STR index -> STR index' number
/ReadNumber {
exch dup 3 -1 roll dup 3 1 roll
%%read mantissa
{ 1 add 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsNumber not { exit } if pop } loop
dup 101 eq exch 69 eq or
%%% there is a "e" or "E" -> read exponant
{ 1 add 2 copy get dup IsUnaryOp
{ pop 1 add 2 copy get } if
{ IsNumber not { exit } if 1 add 2 copy get } loop }
if
dup 4 1 roll
3 -1 roll exch 1 index sub getinterval
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% a number can contain only : 0123456789.
%% chr -> T/F
/IsCondOp { dup 30 eq exch dup 60 ge exch 62 le and or } bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% STR index -> STR index number
%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)?
%% STR index -> STR index' number
/ReadCondOp {
NextNonBlankChar 1 index 4 1 roll
{ IsCondOp not { exit } if 1 add 2 copy get } loop
2 copy 5 -1 roll
exch 1 index sub getinterval 3 1 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% a literal can contain only : 0123456789.
%% chr -> T/F
/IsLiteral {%
dup 48 ge exch dup 57 le 3 -1 roll and exch
dup 65 ge exch dup 90 le 3 -1 roll and 3 -1 roll or exch
dup 97 ge exch 122 le and or } bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% a literal can be of the form [a-zA-Z][a-zA-Z0-9]*\(\((Expression)\)|\(\[Expression\]\)\)?
%% STR index -> literal STR index' nextchr
/ReadLiteral {
exch dup 3 -1 roll dup 3 1 roll
%%read literal core
{ 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsLiteral not { exit } if pop 1 add } loop
4 1 roll dup 5 1 roll 3 -1 roll exch 1 index sub getinterval 4 1 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% expr is ended by end of str or a clpar
%% STR index -> STR index STR[index] T/F
/IsEndingExpr {%
2 copy dup Strlen eq
%% if end of str is reached -> end !
{ pop pop 0 true }
%% ending chr -> clpar, comma, |, <, >, =, !,
{get dup dup 41 eq
exch dup 124 eq
exch dup 93 eq
exch dup 44 eq
exch dup 30 eq
exch dup 60 ge exch 62 le and or or or or or}
ifelse } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% expr is ended by end of str or a +-
%% STR index -> STR index STR[index] T/F
/IsEndingTerm { IsEndingExpr { true } { dup dup 43 eq exch 45 eq or } ifelse } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% expr is ended by end of str or */
%% STR index -> STR index STR[index] T/F
/IsEndingFactor { IsEndingTerm { true } { dup dup 42 eq exch 47 eq or } ifelse } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% expr is ended by end of str or ^
%% STR index -> STR index STR[index] T/F
/IsEndingPower { IsEndingFactor { true } { dup 94 eq } ifelse } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% STR index -> STR index STR[index]
/NextNonBlankChar { { dup Strlen eq { 0 exit } if 2 copy get dup neBlkChar { exit } if pop 1 add } loop } bind def
/neBlkChar { dup 32 ne exch dup 10 ne exch 9 ne and and } bind def
%%%%%%%%%%%%%%%%%%%%%%%%
%% DEBUG
/BRK {false} def
/BRKtrue {/BRK true def} def
/BRKStop {BRK {BRKtoto} if } def
/BRKEvalStop {BRK exch if } def
/BRKBRK2true {BRK {BRK2true} if } def
/BRK2 {false} def
/BRK2true {/BRK2 true def} def
/BRK2Stop {BRK2 {BRK2toto} if } def/BRK {false} def
end
%
%-------------------------------------------------------------------------------%
%
/tx@AlgToPs 12 dict def tx@AlgToPs begin
%
%% algExpr -> PSVector
/AlgToPs { tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE pop pop EndingSequence end } def
/EndingSequence { ExpressionVector aload length /end cvx exch 1 add array astore } def
/InitParser { /ExpressionVector [ /tx@AddMathFunc cvx /begin cvx ] def dup length /Strlen exch def 0 } def
/Strlen 0 def
/EvalListOfExpr {} def%
/EvalNumber {%
ReadNumber cvr /ExpressionVector ExpressionVector aload length dup 3 add -1 roll cvx
exch 1 add array astore def NextNonBlankChar pop } def
/EvalAddSub {%
/ExpressionVector ExpressionVector aload length dup 5 add -1 roll
43 eq { /add } { /sub } ifelse cvx exch 1 add array astore def
} def
/EvalMulDiv {%
/ExpressionVector ExpressionVector aload length dup 5 add -1 roll
42 eq { /mul } { /div } ifelse cvx exch 1 add array astore def
} def
/EvalPower {%
/ExpressionVector ExpressionVector aload length dup 5 add -1 roll
pop /exp cvx exch 1 add array astore def
} def
/EvalLiteral {%
ReadLiteral
dup 40 eq%%% there is an open par -> function call
{ pop 2 index
dup (Sum) eq { EvalSum }
{ dup (IfTE) eq { EvalCond }
{ dup (Derive) eq { pop EvalDerive }
{ pop 1 add NextNonBlankChar pop AnalyzeListOfE 2 index TrigoFunc
/ExpressionVector ExpressionVector aload length dup 5 add -1 roll cvn cvx
exch 1 add array astore def 1 add NextNonBlankChar pop } ifelse } ifelse} ifelse }
{ /ExpressionVector ExpressionVector aload length dup 6 add -1 roll cvn cvx exch 1 add array astore def
dup 91 eq%%% there is an open bracket -> vector element
{ pop 1 add NextNonBlankChar pop AnalyzeExpr
/ExpressionVector ExpressionVector aload length /cvi cvx exch /get cvx exch 2 add array astore def 1 add }
{ pop NextNonBlankChar pop }
ifelse}
ifelse
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% the derive function : Derive(n,f(x))
%% firstparindex lastparindex ->
/EvalDerive {
%% manage the function descripiton
1 add ReadNumber 3 1 roll NextNonBlankChar
44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
1 add NextNonBlankChar pop
3 -1 roll cvi
dup 0 eq
{ pop AnalyzeExpr 3 -1 roll pop 1 add }
{ 1 sub 3 1 roll (x) exch tx@Derive begin DeriveIndexed end 4 -1 roll
{ (x) tx@Derive begin Derive end } repeat
ExpressionVector exch /ExpressionVector [] def
AlgToPs aload length
/ExpressionVector 1 index 3 add -1 roll aload length dup 3 add -1 roll /l2 exch def /l1 exch def
l1 l2 add 1 add l2 neg roll l1 l2 add array astore def 3 -1 roll pop 1 add
1 index length /Strlen exch def } ifelse
} def
/EvalSum {%
pop 1 add NextNonBlankChar pop
%% read the variable name
ReadLiteral pop NextNonBlankChar
44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if
%% read the initial value
1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
%% read the increment value
1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
%% read the limit value
1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
/ExpressionVector ExpressionVector aload length dup 7 add -3 roll 0 4 1 roll
5 -1 roll 4 add array astore def
%% keep ExpressionVector for later and create a new one for internal Sum computation
ExpressionVector 3 1 roll /ExpressionVector [ 6 -1 roll cvn /exch cvx /def cvx ] def
1 add NextNonBlankChar pop AnalyzeExpr
%% add each term
/ExpressionVector ExpressionVector aload length 1 add /add cvx exch array astore def
/ExpressionVector 4 -1 roll aload length ExpressionVector cvx /for cvx 3 -1 roll 2 add
array astore def 3 -1 roll pop 1 add
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Convert to radians if trigo function call
%% (name) ->
/TrigoFunc {
dup (cos) eq 1 index (sin) eq or exch (tan) eq or
{ /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add
array astore def
} if
} def
/EvalCond {%
pop 1 add AnalyzeCond NextNonBlankChar
44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if
ExpressionVector 3 1 roll /ExpressionVector [] def
1 add AnalyzeExpr ExpressionVector 3 1 roll /ExpressionVector [] def
NextNonBlankChar 44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if
1 add AnalyzeExpr
NextNonBlankChar 41 ne { ANALYZER_ERROR_missing_ending parenthesis_in_IfTE } if
ExpressionVector
/ExpressionVector 6 -1 roll aload length dup
6 add -1 roll cvx exch dup 4 add -1 roll cvx /ifelse cvx 3 -1 roll 3 add array astore def
1 add 3 -1 roll pop
} def
%% CondOp STR index
/EvalCondOp {%
3 -1 roll
dup (=) eq { /eq } {%
dup (<) eq { /lt } {%
dup (>) eq { /gt } {%
dup (>=) eq { /ge } {%
dup (<=) eq { /ge } {%
dup (!=) eq { /ne } { ERROR_non_valid_conditional_operator }
ifelse } ifelse } ifelse } ifelse } ifelse } ifelse
cvx exch pop
/ExpressionVector ExpressionVector aload length dup 3 add -1 roll exch 1 add array astore def } def
/EvalUnaryOp {
3 -1 roll 45 eq { /ExpressionVector ExpressionVector aload length /neg cvx exch 1 add array astore def } if
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% H O O K S
/AnalyzePreHook {} bind def
/PreEvalHook {} bind def
/AnalyzeListOfEPostHook {} bind def
/AnalyzePostHook {} def
/RollOp { 3 1 roll } bind def
end %tx@CoreAnalyzerDict
%
%--------------------------------------------------------------------%
%
/tx@Derive 41 dict def tx@Derive begin
%%increase ^^ for each function added
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% algExpr variable -> PSVector
/Derive {%
10240 string 3 1 roll 0 3 1 roll
/Variable exch def
tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE end
} def
/Strlen 0 def
/InitParser { dup length /Strlen exch def 0 } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% algExpr variable index -> PSVector
/DeriveIndexed {%
3 1 roll 10240 string 3 1 roll 0 3 1 roll
/Variable exch def
tx@CoreAnalyzerDict begin InitParser pop 4 -1 roll AnalyzeExpr 4 -2 roll pop pop 4 -2 roll exch pop end
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% (u,v)'=-(u',v')
/EvalListOfExpr {%
4 2 roll 2 copy 9 -1 roll dup length 4 1 roll putinterval add AddPipe
2 copy 7 -1 roll dup length 4 1 roll putinterval add
6 -2 roll pop pop
2 copy pop 0 6 2 roll GetIntervalNewStr 5 1 roll 2 copy 0 exch getinterval 6 1 roll } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% (-u)'=-(u')
/EvalUnaryOp {
4 -2 roll 4 index (0) eq
{ (0) StrConcat 7 -1 roll pop }
{ 7 -1 roll 45 eq
{ AddSub AddOpPar true } { false } ifelse
3 1 roll 5 index StrConcat 3 -1 roll { AddClPar } if } ifelse
2 copy pop 0 6 2 roll GetIntervalNewStr
7 -2 roll pop pop 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% (number)'=0
/EvalNumber { ReadNumber (0) 6 2 roll } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% (u+v)'=u'+v'
/EvalAddSub {%
7 index dup (0) eq
{ pop true }%% du=0 nothing added
{ dup length exch 5 index 5 index 3 -1 roll putinterval 4 -1 roll add 3 1 roll false }
ifelse
5 index dup (0) eq
{ pop { (0) } { 4 -2 roll 2 copy pop 0 6 2 roll GetIntervalNewStr } ifelse }%%dv=0
{ exch
{ 5 -2 roll 7 index 45 eq { AddSub } if false } %%nothing yet added
{ 5 -2 roll 7 index 43 eq%%something yet added
{ AddAdd false } { AddSub AddOpPar true } ifelse }
ifelse 11 1 roll
3 -1 roll StrConcat 10 -1 roll { AddClPar } if
2 copy pop 0 6 2 roll GetIntervalNewStr }
ifelse
mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% (u*v)' or (u/v)'
/EvalMulDiv { 6 index 42 eq {EvalMul} {EvalDiv} ifelse } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% (u*v)'=u'*v+u*v'
/EvalMul {%
4 -2 roll 7 index dup (0) eq
{ pop false }%%du=0
{ (1) eq%%du=1
{ false }
{ AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse
3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if
true }%%du!=0
ifelse
5 1 roll 5 index (0) eq
{ 5 -1 roll not { (0) StrConcat } if }%%dv=0
{ 5 -1 roll { AddAdd } if
4 index (1) eq
{ 8 index StrConcat }
{ AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar }
ifelse
}%%dv!=0
ifelse
2 copy pop 0 6 2 roll GetIntervalNewStr
mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% (u/v)'=(u'*v-u*v')/v^2
/EvalDiv {%
4 -2 roll
4 index (0) eq%%dv=0 -> u'/v
{ 7 index (0) eq { (0) StrConcat } { AddOpPar 7 index StrConcat AddClPar AddDiv 5 index StrConcat } ifelse }
{ 7 index dup (0) eq
{ pop }%%du=0
{ (1) eq%%du=1
{ false }
{ AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse
3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if}%%du!=0
ifelse
AddSub
4 index (1) eq
{ 8 index StrConcat }
{ AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar }
ifelse
%}%%dv!=0
2 copy GetIntervalNewStr 3 1 roll pop 0 AddOpPar 3 -1 roll StrConcat AddClPar
AddDiv AddOpPar 5 index StrConcat AddClPar 2 copy (^2) putinterval 2 add }
ifelse
2 copy pop 0 6 2 roll GetIntervalNewStr
mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% str1 index str2 -> str1 index
/StrConcat { dup length 4 2 roll 2 copy 6 -1 roll putinterval 3 -1 roll add } bind def
/GetIntervalNewStr { 0 exch getinterval dup length string copy } bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% (u^v)'=(u^v)'=u'vu^(v-1)+v'u^(v)ln(u)
/EvalPower {%
4 -2 roll 7 index (0) eq
{%%if du=0 then (u^v)'=v'ln(u)u^v
4 index (0) eq
{ (0) StrConcat }%%if dv=0 then (u^v)'=0
{ 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if
8 index (e) ne { (ln\() StrConcat 8 index StrConcat (\)*) StrConcat } if
AddOpPar 8 index StrConcat (\)^\() StrConcat 5 index StrConcat AddClPar } ifelse
}
{%%du!=0
4 index (0) eq
{%%if dv=0 then (u^v)'=vu'u^(v-1)
5 index dup IsStrNumber
{ dup (0) eq
{ StrConcat }
{ dup dup (1) eq exch (1.0) eq or
{ StrConcat }
{ StrConcat
7 index dup (1) ne exch (1.0) ne and%%%dr 09102006 insert du if <> 1
{ (*\() StrConcat 7 index StrConcat (\)) StrConcat } if%%%dr 09102006
(*\() StrConcat 8 index StrConcat (\)) StrConcat
5 index dup dup (2) eq exch (2.0) eq or
{ pop } { cvr 1 sub 20 string cvs 3 1 roll (^) StrConcat 3 -1 roll StrConcat } ifelse } ifelse } ifelse }
{ pop AddOpPar 5 index StrConcat (\)*\() StrConcat 8 index StrConcat (\)^\() StrConcat
5 index StrConcat (-1\)) StrConcat } ifelse
}
{%%if dv!=0 and du!=0 then (u^v)'=u'vu^(v-1)+v'u^(v)ln(u)
7 index (1) ne { AddOpPar 7 index StrConcat (\)*) StrConcat } if
AddOpPar 5 index StrConcat (\)*\() StrConcat
8 index StrConcat (\)^\() StrConcat
5 index StrConcat (-1\)+\() StrConcat
4 index (1) ne { 4 index StrConcat (\)*\() StrConcat } if
8 index StrConcat (\)^\() StrConcat
5 index StrConcat (\)*ln\() StrConcat
8 index StrConcat AddClPar
} ifelse
} ifelse
2 copy pop 0 6 2 roll GetIntervalNewStr
mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% str -> true/false
/IsStrNumber {%
true exch
{ dup 48 lt exch dup 57 gt 3 -1 roll or
exch dup 46 ne%%.
exch dup 43 ne%%+
exch 45 ne%%-
and and and { pop false } if } forall
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% literal switch -> func call, vector, variables
/EvalLiteral {%
ReadLiteral dup 40 eq%%% there is an open par -> function call
{ pop (EvalFunc_ ) 9 4 index StrConcat 0 exch getinterval cvn cvx exec }
{ dup 91 eq%%% there is an open bracket -> vector element
{ ERROR_vector_not_yet_implemented }
{ pop EvalVariable }
ifelse }
ifelse
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% first last parpos Expr[first:parpos-1] ->
/EvalVariable { 2 index Variable eq { (1) } { (0) } ifelse 4 -1 roll exch 6 2 roll } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% (f(u))'=u'f'(u)
/EvalFunc {
4 2 roll 4 index (1) ne
{ AddOpPar 4 index StrConcat (\)*) StrConcat } if
(Eval ) 4 8 index StrConcat 0 exch getinterval cvn cvx exec
2 copy pop 0 6 2 roll GetIntervalNewStr
mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Func derivative -> Eval
/EvalFunc_sin {%
PreCommonFunc
{ (cos\() StrConcat 5 index StrConcat AddClPar } if
PostCommonFunc } def
/EvalFunc_cos {%
PreCommonFunc
{ (\(-sin\() StrConcat 5 index StrConcat (\)\)) StrConcat } if
PostCommonFunc } def
/EvalFunc_tan {%
PreCommonFunc
{ dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/cos\() StrConcat 5 index StrConcat (\)^2) StrConcat } if
PostCommonFunc } def
/EvalFunc_asin {%
PreCommonFunc
{ (1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
PostCommonFunc } def
/EvalFunc_acos {%
PreCommonFunc
{ (-1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
PostCommonFunc } def
/EvalFunc_atg {%
PreCommonFunc
{ (1/\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
PostCommonFunc } def
/EvalFunc_ln {%
PreCommonFunc
{ dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\() StrConcat 5 index StrConcat AddClPar } if
PostCommonFunc } def
/EvalFunc_exp {%
PreCommonFunc
{ (exp\() StrConcat 5 index StrConcat AddClPar } if
PostCommonFunc } def
/EvalFunc_sqrt {%
PreCommonFunc
{ dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\(2*sqrt\() StrConcat 5 index StrConcat (\)\)) StrConcat } if
PostCommonFunc } def
/EvalFunc_Fact {%
PreCommonFunc { ERROR_no_variable_expression_in_Fact } if
PostCommonFunc } def
/EvalFunc_sh {%
PreCommonFunc
{ (ch\() StrConcat 5 index StrConcat AddClPar } if
PostCommonFunc } def
/EvalFunc_ch {%
PreCommonFunc
{ (sh\() StrConcat 5 index StrConcat AddClPar } if
PostCommonFunc } def
/EvalFunc_th {%
PreCommonFunc
{ dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/ch\() StrConcat 5 index StrConcat (\)^2) StrConcat } if
PostCommonFunc } def
/EvalFunc_Argsh {%
PreCommonFunc
{ (1/sqrt\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
PostCommonFunc } def
/EvalFunc_Argch {%
PreCommonFunc
{ (1/sqrt\(\() StrConcat 5 index StrConcat (\)^2-1\)\)) StrConcat } if
PostCommonFunc } def
/EvalFunc_Argth {%
PreCommonFunc
{ (1/\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
PostCommonFunc } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
/PreCommonFunc {
1 add NextNonBlankChar pop 3 -1 roll 5 1 roll AnalyzeExpr 1 add NextNonBlankChar pop
4 2 roll 4 index (0) eq
{ (0) StrConcat false }
{ 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if true } ifelse
} def
/PostCommonFunc {
2 copy pop 0 6 2 roll GetIntervalNewStr
mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
} def
/EvalFunc_Derive {%
1 add ReadNumber cvi 1 add dup cvr log 1 add cvi string cvs
4 -1 roll pop 5 1 roll 1 add NextNonBlankChar pop AnalyzeExpr 1 add
4 -2 roll (Derive\() StrConcat 7 -1 roll StrConcat (,) StrConcat 6 -1 roll StrConcat AddClPar
2 copy pop 0 6 2 roll GetIntervalNewStr 6 -1 roll pop 2 index 6 index dup 4 index exch sub getinterval
exch 6 2 roll } def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% literal switch -> func call, vector, variables
/EvalFunc_Sum {%
1 add NextNonBlankChar pop
%% read the variable name
ReadLiteral pop 3 -1 roll pop NextNonBlankChar
44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if
%% read the initial value
1 add NextNonBlankChar pop ReadNumber pop
2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
%% read the increment value
1 add NextNonBlankChar pop ReadNumber pop
2 copy get 44 ne { ANALYZER_ERROR_missing_third_comma_in_Sum } if
%% read the limit value
1 add NextNonBlankChar pop ReadNumber pop
2 copy get 44 ne { ANALYZER_ERROR_missing_fourth_comma_in_Sum } if
1 add NextNonBlankChar pop dup 6 1 roll 3 -1 roll pop AnalyzeExpr 1 add NextNonBlankChar pop
4 -2 roll 3 index 8 index dup 9 index exch sub getinterval StrConcat
4 index StrConcat AddClPar
2 copy pop 0 6 2 roll GetIntervalNewStr
mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% literal switch -> func call, vector, variables
/EvalFunc_IfTE {%
3 -1 roll pop 1 add NextNonBlankChar pop SkipCond
NextNonBlankChar
44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if
1 add NextNonBlankChar pop dup 5 1 roll
AnalyzeExpr NextNonBlankChar
44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if
1 add NextNonBlankChar pop
AnalyzeExpr 1 add NextNonBlankChar pop
4 -2 roll 3 index 10 index dup 11 index exch sub getinterval StrConcat
6 index StrConcat (,) StrConcat 4 index StrConcat AddClPar
2 copy pop 0 6 2 roll GetIntervalNewStr
mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% advance in str until a comma is found (no error detection!)
%% str index -> str index'
/SkipCond { { 1 add 2 copy get 44 eq {exit } if } loop } bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Convert to radians if trigo function call
%% (name) ->
/TrigoFunc {
dup (cos) eq 1 index (sin) eq or exch (tan) eq or
{ /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add
array astore def
} if
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% No derivative for condition....
/EvalCondOp { 3 -1 roll pop } bind def
/PutIntervalOneAdd {putinterval 1 add} bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Add open parenthesis in string at the given index
%% str index -> str index+1
/AddOpPar {2 copy (\() PutIntervalOneAdd} bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Add close parenthesis in string at the given index
%% str index -> str index+1
/AddClPar {2 copy (\)) PutIntervalOneAdd} bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Add 0 in string at the given index
%% str index -> str index+1
/AddZero {2 copy (0) PutIntervalOneAdd} bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Add open parenthesis in string at the given index
%% str index -> str index+1
/AddMul {2 copy (*) PutIntervalOneAdd} bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Add open parenthesis in string at the given index
%% str index -> str index+1
/AddDiv {2 copy (/) PutIntervalOneAdd} bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Add a plus sign in string at the given index
%% str index -> str index+1
/AddAdd {2 copy (+) PutIntervalOneAdd} bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Add a minus sign in string at the given index
%% str index -> str index+1
/AddSub {2 copy (-) PutIntervalOneAdd} bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Add a pipe sign in string at the given index
%% str index -> str index+1
/AddPipe {2 copy (|) PutIntervalOneAdd} bind def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% H O O K S
/AnalyzePreHook { dup 5 1 roll } bind def
/PreEvalHook {} def
/AnalyzePostHook { 7 -1 roll pop } bind def
/AnalyzeListOfEPostHook { 6 -1 roll mark 6 1 roll cleartomark } bind def
/RollOp { 5 1 roll } bind def
end%%%tx@CoreAnalyzerDict
/tx@AddMathFunc 12 dict def tx@AddMathFunc begin
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% NEW FUNC
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% function arcsine in radians asin(x)=atan(x/sqrt(1-x^2))
%% x -> theta
/asin {%
dup abs 1 gt { EQDFasinrangeerror } if
dup dup dup mul 1 exch sub sqrt atan exch 0 lt { 360 sub } if DegtoRad
} def
%% function arccosine in radians acos(x)=atan(sqrt(1-x^2)/x)
%% x -> theta
/acos {%
dup abs 1 gt { EQDFacosrangeerror } if
dup dup mul 1 exch sub sqrt exch atan DegtoRad
} def
%% function arctangent in radians
%% x -> theta
/atg { 1 atan dup 90 gt { 360 sub } if DegtoRad } bind def
%% HYPERBOLIC FUNCTIONS
/sh { dup Ex exch neg Ex sub 2 div } def
/ch { dup Ex exch neg Ex add 2 div } def
/th { dup sh exch ch div } def
/Argsh { dup dup mul 1 add sqrt add ln } def
/Argch { dup dup mul 1 sub sqrt add ln } def
/Argth { dup 1 add exch 1 exch sub div ln 2 div } def
%% modified exponential funtion for 0
%% x n -> x^n
/Exp { dup 0 eq { pop pop 1 } { exp } ifelse } bind def
%% modified exponential funtion for 0
%% x -> e^x
/Ex { Euler exch exp } bind def
%%
%% factorial function
%% n -> n!
/Fact { 1 exch 2 exch 1 exch { mul } for } bind def
/fact { Fact } bind def
end
% END pstricks.pro
%%EndProcSet
%%BeginProcSet: pst-dots.pro 0 0
% $Id: pst-dots.pro 26 2008-06-14 11:50:02Z herbert $
%
%% PostScript prologue for pstricks.tex.
%% Version 2.02, 2008/04/18
%%
%% For distribution, see pstricks.tex.
%%
%% Timothy Van Zandt
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
%% Modified by Etienne Riga - Dec. 16, 1999
%% Modified by Etienne Riga - 2005/01/01 (er)
%% to add /Diamond, /SolidDiamond and /BoldDiamond
%% Modified by Herbert Voss (hv) - 2008/04/17
%
10 dict dup begin % hold local
/FontType 3 def
/FontMatrix [.001 0 0 .001 0 0] def
/FontBBox [-571.5 -742.5 571.5 742.5] def
% /FontBBox [-1000 -1000 1000 1000] def % See end of file in /BuildGlyph
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for % fill the array with /.notdef
Encoding % replace with given dot names
dup (b) 0 get /Bullet put % get the numerical position of b in ASCII
% % and save /Bullet at this place in Encoding
dup (c) 0 get /Circle put
dup (C) 0 get /BoldCircle put % 67
dup (u) 0 get /SolidTriangle put
dup (t) 0 get /Triangle put
dup (T) 0 get /BoldTriangle put
dup (r) 0 get /SolidSquare put
dup (s) 0 get /Square put
dup (S) 0 get /BoldSquare put
dup (q) 0 get /SolidPentagon put
dup (p) 0 get /Pentagon put
dup (P) 0 get /BoldPentagon put
%%%
dup (k) 0 get /Asterisk put
dup (K) 0 get /BoldAsterisk put
dup (J) 0 get /SolidAsterisk put
dup (h) 0 get /Hexagon put
dup (H) 0 get /BoldHexagon put
dup (G) 0 get /SolidHexagon put
dup (f) 0 get /Octogon put % 2008-04-18 hv
dup (F) 0 get /BoldOctogon put % 2008-04-18 hv
dup (g) 0 get /SolidOctogon put % 2008-04-18 hv
dup (a) 0 get /Add put
dup (A) 0 get /BoldAdd put % 65
dup (x) 0 get /Mul put
dup (X) 0 get /BoldMul put
dup (m) 0 get /Oplus put
dup (M) 0 get /BOplus put
dup (e) 0 get /SolidOplus put
dup (n) 0 get /Otimes put
dup (N) 0 get /BOtimes put
dup (E) 0 get /SolidOtimes put
dup (i) 0 get /Bar put
dup (I) 0 get /BoldBar put
dup (l) 0 get /SolidDiamond put
dup (d) 0 get /Diamond put
(D) 0 get /BoldDiamond put
%%%
/CharProcs 47 dict def
CharProcs begin
/CirclePath {0 0 500 0 360 arc closepath} def
/Bullet {CirclePath fill} def
/Circle {CirclePath .9 .9 scale CirclePath eofill} def
/BoldCircle {CirclePath .8 .8 scale CirclePath eofill} def
/TrianglePath {0 660 moveto -571.5 -330 lineto 571.5 -330 lineto closepath} def
/SolidTriangle {TrianglePath fill} def
/Triangle {TrianglePath .85 .85 scale TrianglePath eofill} def
/BoldTriangle {TrianglePath .7 .7 scale TrianglePath eofill} def
/SquarePath {-450 450 moveto 450 450 lineto 450 -450 lineto -450 -450 lineto closepath} def
/SolidSquare {SquarePath fill} def
/Square {SquarePath .89 .89 scale SquarePath eofill} def
/BoldSquare {SquarePath .78 .78 scale SquarePath eofill} def
/PentagonPath {
-337.8 -465 moveto 337.8 -465 lineto 546.6 177.6 lineto
0 574.7 lineto -546.6 177.6 lineto closepath
} def
/SolidPentagon {PentagonPath fill} def
/Pentagon {PentagonPath .89 .89 scale PentagonPath eofill} def
/BoldPentagon {PentagonPath .78 .78 scale PentagonPath eofill} def
%-------------- hv begin 2004/07/25 from: er 2003/03/24
/HexagonPath {
0 550 moveto -476 275 lineto -476 -275 lineto
0 -550 lineto 476 -275 lineto 476 275 lineto closepath
} def
/SolidHexagon {HexagonPath fill} def
/Hexagon {HexagonPath .89 .89 scale HexagonPath eofill} def
/BoldHexagon {HexagonPath .79 .79 scale HexagonPath eofill} def
% 2008-04-18 hv
/OctogonPath {
550 dup 22.5 tan mul dup neg dup add /xMove exch def
exch moveto 7 { xMove 0 rlineto 45 rotate } repeat closepath } def
/SolidOctogon { OctogonPath fill } def
/Octogon { OctogonPath .89 .89 scale OctogonPath eofill } def
/BoldOctogon { OctogonPath .79 .79 scale OctogonPath eofill } def
%
/AsteriskPath {
20 0 moveto 10 250 180 500 0 500 curveto
-180 500 -10 250 -20 0 curveto closepath
} def
/Asterisk {
AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath
60 rotate AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath fill
} def
%
/Basterp {50 250 220 500 0 500 curveto -220 500 -50 250 -50 30 cos 100 mul curveto} def
/BoldAsteriskPath {
50 30 cos 100 mul moveto Basterp
60 rotate Basterp 60 rotate Basterp
60 rotate Basterp 60 rotate Basterp
60 rotate Basterp closepath
} def
/BoldAsterisk {BoldAsteriskPath fill} def
/SolidAsterisk {CirclePath .9 .9 scale BoldAsteriskPath eofill} def
/CrossPath {
40 550 moveto -40 550 lineto -40 40 lineto -550 40 lineto
-550 -40 lineto -40 -40 lineto -40 -550 lineto 40 -550 lineto
40 -40 lineto 550 -40 lineto 550 40 lineto 40 40 lineto closepath
} def
/BoldCrossPath {80 550 moveto -80 550 lineto -80 80 lineto -550 80 lineto
-550 -80 lineto -80 -80 lineto -80 -550 lineto 80 -550 lineto
80 -80 lineto 550 -80 lineto 550 80 lineto 80 80 lineto closepath
} def
/Add {CrossPath fill} def
/Mul {45 rotate CrossPath fill} def
/BoldAdd {BoldCrossPath fill} def
/BoldMul {45 rotate BoldCrossPath fill} def
/Oplus {CirclePath .9 .9 scale CirclePath eofill .775 .775 scale CrossPath fill } def
/SolidOplus {CirclePath .775 .775 scale BoldCrossPath eofill} def
/BOplus {CirclePath .8 .8 scale CirclePath eofill .775 .775 scale BoldCrossPath fill} def
/Otimes {CirclePath .9 .9 scale CirclePath eofill 45 rotate .775 .775 scale CrossPath fill} def
/BOtimes {CirclePath .8 .8 scale CirclePath eofill 45 rotate .775 .775 scale BoldCrossPath fill } def
/SolidOtimes {CirclePath 45 rotate .775 .775 scale BoldCrossPath eofill} def
/BarPath {40 660 moveto -40 660 lineto -40 -660 lineto 40 -660 lineto closepath} def
/Bar {BarPath fill} def
/BoldBarPath {80 660 moveto -80 660 lineto -80 -660 lineto 80 -660 lineto closepath} def
/BoldBar {BoldBarPath fill} def
/DiamondPath {0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto 428.5 0 lineto closepath} def
/SolidDiamond {DiamondPath fill} def
/Diamond {DiamondPath .865 .865 scale DiamondPath eofill} def
/BoldDiamond {DiamondPath .73 .73 scale DiamondPath eofill} def
%%%
/.notdef { } def
end
%
/BuildGlyph {
exch
begin
% Metrics 1 index get exec 0
0 0
% BBoxes 3 index get exec
-1000 -1000 1000 1000
% -571.5 -742.5 571.5 742.5
setcachedevice
CharProcs begin load exec end
end
} def
%
/BuildChar {
1 index /Encoding get exch get
1 index /BuildGlyph get exec
} bind def
end
/PSTricksDotFont exch definefont pop
%% end
%%EndProcSet
%%BeginProcSet: 8r.enc 0 0
% File 8r.enc TeX Base 1 Encoding Revision 2.0 2002-10-30
%
% @@psencodingfile@{
% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry,
% W. Schmidt, P. Lehman",
% version = "2.0",
% date = "27nov06",
% filename = "8r.enc",
% email = "tex-fonts@@tug.org",
% docstring = "This is the encoding vector for Type1 and TrueType
% fonts to be used with TeX. This file is part of the
% PSNFSS bundle, version 9"
% @}
%
% The idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol,
% MacRoman, and some extra characters from Lucida.
%
% Character code assignments were made as follows:
%
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
%
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
%
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
% These are /dotlessj /ff /ffi /ffl.
%
% (4) hyphen appears twice for compatibility with both ASCII and Windows.
%
% (5) /Euro was assigned to 128, as in Windows ANSI
%
% (6) Missing characters from MacRoman encoding incorporated as follows:
%
% PostScript MacRoman TeXBase1
% -------------- -------------- --------------
% /notequal 173 0x16
% /infinity 176 0x17
% /lessequal 178 0x18
% /greaterequal 179 0x19
% /partialdiff 182 0x1A
% /summation 183 0x1B
% /product 184 0x1C
% /pi 185 0x1D
% /integral 186 0x81
% /Omega 189 0x8D
% /radical 195 0x8E
% /approxequal 197 0x8F
% /Delta 198 0x9D
% /lozenge 215 0x9E
%
/TeXBase1Encoding [
% 0x00
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef /breve
/minus /.notdef /Zcaron /zcaron
% 0x10
/caron /dotlessi /dotlessj /ff
/ffi /ffl /notequal /infinity
/lessequal /greaterequal /partialdiff /summation
/product /pi /grave /quotesingle
% 0x20
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /hyphen /period /slash
% 0x30
/zero /one /two /three
/four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
% 0x40
/at /A /B /C
/D /E /F /G
/H /I /J /K
/L /M /N /O
% 0x50
/P /Q /R /S
/T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
% 0x60
/quoteleft /a /b /c
/d /e /f /g
/h /i /j /k
/l /m /n /o
% 0x70
/p /q /r /s
/t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /.notdef
% 0x80
/Euro /integral /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /Omega /radical /approxequal
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /Delta /lozenge /Ydieresis
% 0xA0
/.notdef /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
% 0xB0
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
% 0xC0
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
% 0xE0
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
% 0xF0
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def
%%EndProcSet
%%BeginProcSet: texps.pro 0 0
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
end
%%EndProcSet
%%BeginProcSet: special.pro 0 0
%!
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/setpagedevice{pop}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
/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
savematrix setmatrix}N end
%%EndProcSet
%%BeginProcSet: color.pro 0 0
%!
TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
%%EndProcSet
TeXDict begin @defspecial
systemdict /pdfmark known{userdict /?pdfmark systemdict /exec get
put}{userdict /?pdfmark systemdict /pop get put userdict /pdfmark systemdict
/cleartomark get put}ifelse
/DvipsToPDF{72.27 mul Resolution div} def/PDFToDvips{72.27 div Resolution
mul} def/BPToDvips{72 div Resolution mul}def/BorderArrayPatch{[exch{dup
dup type/integertype eq exch type/realtype eq or{BPToDvips}if}forall]}def/HyperBorder
{1 PDFToDvips} def/H.V {pdf@hoff pdf@voff null} def/H.B {/Rect[pdf@llx
pdf@lly pdf@urx pdf@ury]} def/H.S {currentpoint HyperBorder add /pdf@lly
exch def dup DvipsToPDF 72 add /pdf@hoff exch def HyperBorder sub /pdf@llx
exch def} def/H.L {2 sub dup/HyperBasePt exch def PDFToDvips /HyperBaseDvips
exch def currentpoint HyperBaseDvips sub /pdf@ury exch def/pdf@urx
exch def} def/H.A {H.L currentpoint exch pop vsize 72 sub exch DvipsToPDF
HyperBasePt sub sub /pdf@voff exch def} def/H.R {currentpoint HyperBorder
sub /pdf@ury exch def HyperBorder add /pdf@urx exch def currentpoint
exch pop vsize 72 sub exch DvipsToPDF sub /pdf@voff exch def} def
/XYdict where not{250 dict /XYdict exch def /xy{mark exch XYdict begin
countdictstack /xylevel exch def xyopen xycolor mark xypatt xypattern
stopped xyclose end cleartomark}def /xyg{gsave xy}def /xyf{currentfont
exch xy grestore setfont}def /xycc{{xychgcol}xy}def /xyc{XYdict begin
xycolstore end}def /xyx{/xyYpos exch def /xyXpos exch def}def /xyp{currentpoint
xyx}def /xyd{setupDirection XYdirection 2 mul}def /xyct{currentpoint
xyt 2 copy 6 2 roll}def /xyt{xyXpos xyYpos 2 copy translate}def /xyr{neg
rotate xynt}def /xyrs{neg rotate 3 -1 roll sub neg 3 1 roll sub exch
moveto xynt}def /xynt{neg exch neg exch translate}def /xys{scale xynt}def
/xyss{scale 3 -1 roll sub neg 3 1 roll sub exch moveto xynt}def /xyi{0
0 transform grestore gsave itransform}def }if
/XYdict where pop begin XYdict begin
/xyopen{currentdict /XYddict known{XYddict null eq{} {XYddict begin
xyopen}ifelse}if}def /xyclose{countdictstack -1 xylevel 1 add{pop end}for}def
/xychgcol{/xycolor exch def}def /xysetcol{xypush xychgcol}def
/xypush{16 dict /XYddict exch def XYddict begin}def /undef where {pop
/xypop{countdictstack xylevel eq{}{end}ifelse currentdict /XYddict
undef}def} {/xypop{countdictstack xylevel eq{}{end}ifelse /XYddict
null def}def}ifelse /pu /xypush load def /pp /xypop load def
/xypspt{72 72.27 div dup scale}bind def /pscorrect{.85 mul}bind def
/gstartxy{gsave xypspt xywidth xycap xyjoin xymiter newpath 0 0 moveto}def
/xypath{gstartxy rmoveto counttomark 2 idiv -1 1{pop lineto}for}def
/xystroke{stroke grestore}bind def /xyfill{closepath fill grestore}bind
def /xystfil{closepath gsave fill grestore 0 setgray 0 setlinewidth
xystroke}bind def /xyeofill{closepath eofill grestore}bind def
/xypolyline{xypath xystroke}def /xypolyfill{xypath xyfill}def /xydotsep{/@
currentlinewidth 2 mul def}def /xypolydot{xypath xydotsep [xydt @]
0 setdash xystroke}def /xypolydash{xypath xydotsep [@ @] 0 setdash
xystroke}def /xypolyeofill{xypath xyeofill}def /pe /xypolyeofill load
def /pl /xypolyline load def /pf /xypolyfill load def /pt /xypolydot
load def /pd /xypolydash load def
/arc4pop{arcto 4{pop}repeat}bind def /xyoval{gstartxy oval closepath
xystroke}def /xycircle{gstartxy circle xystroke}def /circle{dup 0 moveto
0 0 3 -1 roll 0 360 arc}def /oval{newpath 2 copy exch 5 index add 2
div exch 3 copy 10 3 roll moveto 1 index dup 5 1 roll 3 index 7 index
arc4pop dup dup 4 1 roll 4 index exch 6 index arc4pop 1 index dup 8
1 roll 4 index 4 index arc4pop arc4pop closepath}def /xyellipse{gstartxy
counttomark 1 gt{squarify pop pop 1}if circle xystroke}def /ov /xyoval
load def /ox /xyellipse load def
/dotit{dup currentlinewidth 6 mul div round div /@ exch def [xydt
@] 0 setdash}def /elldash{dup 4 -1 roll 10 exch div dashit}def /ovdash{dup
10 dashit}def /dashit{div round 2 mul div /@ exch def [@ @] 0 setdash}def
/dotcirc{gstartxy cirlen dotit circle xystroke}def /dashcirc{gstartxy
cirlen dashit circle xystroke}def /dotoval{gstartxy 5 copy ovlen dotit
oval xystroke}def /dashoval{gstartxy 5 copy ovlen ovdash oval xystroke}def
/cirlen{dup 6.283185 mul}bind def /ovlen{3 -1 roll sub 3 1 roll sub
add exch 1.716815 mul sub}def /dotellipse{gstartxy counttomark 1 gt{squarify
pop pop 1}if cirlen dotit circle closepath xystroke}def /dashellipse{gstartxy
counttomark 1 gt{squarify add 2 div 1} {1 exch 1 exch}ifelse cirlen
elldash circle xystroke}def /ot /dotellipse load def /od /dashellipse
load def /vt /dotoval load def /vd /dashoval load def
/filloval{gstartxy oval xyfill}def /stfiloval{gstartxy oval xystfil}def
/fillcircle{gstartxy circle xyfill}def /stfilcircle{gstartxy circle
xystfil}def /fillellipse{gstartxy squarify pop pop 1 circle xyfill}def
/stfilellipse{gstartxy squarify pop pop 1 circle xystfil}def /squarify{4
copy sub 2 div 3 1 roll sub 2 div translate add 2 div 3 1 roll add
2 div 2 copy scale 2 copy add 2 div currentlinewidth exch div setlinewidth
newpath}def /fe /fillellipse load def /sfe /stfilellipse load def /fo
/filloval load def /sfo /stfiloval load def /fc /fillcircle load def
/sfc /stfilcircle load def
/xywidth{.4 pscorrect setlinewidth}bind def /xydash{[] 0 setdash}bind
def /xycap{1 setlinecap}bind def /xyjoin{1 setlinejoin}bind def /xymiter{10
setmiterlimit}bind def
/cc{dup exec xychgcol}def /lw{dup setlinewidth /@l exch def /xywidth{@l
setlinewidth}bind def}def /lc{dup setlinecap /@c exch def /xycap{@c
setlinecap}bind def}def /lj{dup setlinejoin /@j exch def /xyjoin{@j
setlinejoin}bind def}def /ml{dup setmitrelimit /@m exch def /xymiter{@m
setmitrelimit}bind def}def
/setupDirection{dup -2048 lt{3072 add neg 1024 exch} {dup 0 lt{1024
add neg -1024}{dup 2048 lt{1024 sub -1024 exch} {3072 sub 1024}ifelse}ifelse}ifelse
atan dup 180 gt{360 sub}if dup /XYdirection exch def rotate}def
userdict begin /gray{setgray}bind def /gray@{setgray}bind def /rgb{setrgbcolor}bind
def /rgb@{setrgbcolor}bind def /hsb{sethsbcolor}bind def /hsb@{sethsbcolor}bind
def /setcmykcolor where{pop}{/setcmykcolor{dup 3 1 roll dup 5 1 roll
exch sub 1 add 5 1 roll exch sub 1 add 4 1 roll exch sub 1 add 3 1
roll setrgbcolor}bind def}ifelse /cmyk{setcmykcolor}bind def /cmyk@{setcmykcolor}bind
def /sethalftone where{/sethalftone load /tone exch def}if /xycolarray
3 array def /xycolstore{currentrgbcolor 2 -1 0 {exch xycolarray 3 1
roll put}for}def xycolstore /xycolor{0 1 2{xycolarray exch get}for
setrgbcolor}def /xypatt{}def /xypattern{cleartomark}bind def end
end end
/XYdict where pop begin XYdict begin
/:patt {XYddict begin 14 dict begin /BGnd exch def /FGnd exch def
/PaintData exch def /PatternType 1 def /PaintType 1 def /BBox[0 0 1
1]def /TilingType 1 def /XStep 1 def /YStep 1 def /PatternMtx[24 0
0 24 0 0]def /PaintProc BGnd null ne {{begin BGnd aload pop setrgbcolor
0 0 1 1 rF FGnd aload pop setrgbcolor 24 24 true PatternMtx PaintData
imagemask end}} {{begin FGnd aload pop setrgbcolor 24 24 true PatternMtx
PaintData imagemask end}} ifelse def currentdict PatternMtx end gsave
patangle xyland{180 add}if rotate macfreq patfreq div dup neg exch
scale matrix currentmatrix grestore gsave setmatrix /DeviceRGB setcolorspace
makepattern grestore end}def
/rF{gsave newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto fill grestore}bind def
/setpatscreen{/pattstring exch store patfreq patangle xyport not{90
add}if {1 add 4 mul cvi pattstring exch get exch 1 add 4 mul cvi 7
sub bitshift 1 and}setscreen}bind def /setcolpattern{setpatscreen 64
div 1 exch sub currentrgbcolor 1 1 3{pop 1 exch sub 3 index mul 1 exch
sub 3 1 roll}for setrgbcolor pop}def /setgraypattern{setpatscreen 64
div setgray}def /macfreq 9.375 def /patangle 0 def /patfreq 12.5 def
/checkland{/normland where{pop normland not}{false}ifelse /xyland
exch def /por where{pop por}{/isls where{pop isls not /xyland true
def} {/land where{pop land not}{true} ifelse}ifelse}ifelse /xyport
exch def}def
/setpatfreq{/patfreq exch def}def /setpatangle{/patangle exch def}def
/setbackcolor{/backcolor exch def}def /setforecolor{/forecolor exch
def}def [1 1 1] setbackcolor xycolarray setforecolor /bg /setbackcolor
load def /fg /setforecolor load def /pa /setpatangle load def /pq /setpatfreq
load def
/xypattern{checkland counttomark dup 0 eq{pop} {dup 1 eq{pop setpatscreen}
{dup 2 eq{pop setcolpattern} {dup 3 eq{pop /setcolorspace where { /.setcolorspace
where{pop pop pop setcolpattern} {/.buildpattern where {pop forecolor
backcolor :patt setpattern }{pop pop setcolpattern}ifelse}ifelse} {pop
setcolpattern}ifelse} {5 eq{/setcolorspace where{ /.setcolorspace where{pop
pop pop pop pop setcolpattern} {/.buildpattern where {pop :patt setpattern
}{pop pop pop pop setcolpattern}ifelse}ifelse} {pop pop pop setcolpattern}ifelse
}{}ifelse}ifelse}ifelse}ifelse}ifelse cleartomark }def /xysetpattern{/xypatt
exch def}def /sp /xysetpattern load def
end end
/XYdict where pop begin XYdict begin
/xysize 10 def /T true def /F false def /dimendiv{65536 div}bind def
/xysegl 327680 dimendiv def /xyopp{1 -1 scale}bind def /xynormwidth{26213
dimendiv pscorrect}bind def /xywidth{xynormwidth setlinewidth}bind
def
/xyfont{4096 add 64 div round 64 mul 4096 sub}def /xydt 0.01 def /xysdfont{4096
add 32 div round 32 mul 4096 sub}def /xydots{xywidth 1 setlinecap [xydt
2] 0 setdash}bind def /f /xyfont load def /fs /xysdfont load def
/xyCheckDir{dup 8 div 3 mul 3 -1 roll sub neg exch div 360 mul dup
dup XYdirection sub 180 div round 180 mul XYdirection add dup 3 -1
roll sub abs 10 gt not{exch}if pop}def
/xyrulth{26213 dimendiv pscorrect setlinewidth 0 setlinecap}bind def
/gsavexy{gsave xypspt XYdirection rotate xywidth newpath 0 0 moveto}def
/gchksavexy{gsave xypspt setupDirection xywidth newpath 0 0 moveto}def
/xyswap{XYdirection 180 add /XYdirection exch def}def /xyline{gstartxy
setupDirection rlineto xystroke}def
/dash{exch gchksavexy xysegl XYdirection dup -90 lt{pop neg}{90 gt{neg}if}ifelse
exch{neg}if 0 rlineto xystroke}def /stopper{gstartxy setupDirection
0 xysegl 2 div rmoveto 0 xysegl neg rlineto xystroke }def /d /dash
load def /st /stopper load def
/solid{gstartxy xydash neg exch neg exch rlineto xystroke}def /dashed{gstartxy
2 copy dup mul exch dup mul add sqrt dup xysegl add xysegl 2 mul div
round 2 mul 1 sub div [ exch dup ] 0 setdash neg exch neg exch rlineto
xystroke}def /l /solid load def /dd /dashed load def
/dot{gstartxy 2 setlinecap [xydt 2] 0 setdash 1 0 rlineto xystroke}def
/dotted{gstartxy 2 copy dup mul exch dup mul add sqrt dup 2 div round
1 add div 2 setlinecap [xydt 3 -1 roll] 0 setdash neg exch neg exch
rlineto 0 0 rlineto xystroke}def /p /dot load def /dt /dotted load
def
/cubic{gstartxy docubic} def /docubic{chkvalid {chkcubedge 8 -2 roll
moveto curveto xystroke pop} {cleartomark grestore}ifelse}def /chkcubedge{2
copy 1.0 eq{0.0 eq{pop pop}{cubicedge}ifelse} {pop cubicedge}ifelse}def
/bz /cubic load def
/dotcubic{gstartxy 1 setlinecap [xydt 2] 0 setdash docubic}def /dashcubic{gstartxy
[5 5] 0 setdash docubic}def /bt /dotcubic load def /bd /dashcubic load
def
/squine{gstartxy dosquine}def /dosquine{chkvalid {chksquedge 2 copy
moveto xysq2cub curveto xystroke pop} {cleartomark grestore}ifelse}def
/q /squine load def
/chkvalid{2 copy lt{dup 1 gt{false}{true}ifelse}{false}ifelse}def
/chksquedge{2 copy 1.0 eq{0.0 eq{pop pop}{squineedge}ifelse} {pop
squineedge}ifelse}def /xysq2cub{xysq2cubit 6 1 roll xysq2cubit 6 1
roll 3 index 3 index xysq2cubit 6 1 roll xysq2cubit 6 1 roll pop pop}def
/xysq2cubit{2 index 2 mul add 3 div}def
/dotsquine{gstartxy 1 setlinecap [xydt 2] 0 setdash dosquine}def /dashsquine{gstartxy
[5 5] 0 setdash dosquine}def /qt /dotsquine load def /qd /dashsquine
load def
/xy4mul{8 copy 5 -1 roll mul 5 1 roll 6 -1 roll mul 6 1 roll 3 -1
roll mul exch 4 -1 roll mul 3 1 roll add 3 1 roll add exch 10 2 roll
7 -1 roll mul 7 1 roll 4 -1 roll mul 5 1 roll 4 -1 roll mul 4 1 roll
mul add 3 1 roll add exch 3 -1 roll }def
/xy44mul{4 copy 16 4 roll exch 3 1 roll 4 copy 12 4 roll xy4mul 12
4 roll xy4mul 12 -4 roll 4 copy 16 4 roll 8 4 roll xy4mul 12 4 roll
xy4mul}def
/cubicedge{10 2 roll exch 8 1 roll 3 -1 roll dup dup 9 2 roll 5 -1
roll dup dup 9 1 roll 8 3 roll 4 1 roll dup dup 5 3 roll dup dup 5
1 roll 3 -1 roll 18 -2 roll 2 copy 1 sub neg 4 1 roll 1 sub neg exch
4 1 roll xy444mul pop pop pop 13 1 roll pop pop pop 9 1 roll 10 1 roll
pop 8 1 roll 7 1 roll 8 1 roll pop 5 1 roll 3 1 roll}def
/xy444mul{4 copy 24 4 roll 12 -4 roll 16 4 roll 4 copy 16 4 roll xy44mul
20 8 roll xy44mul 12 -4 roll 4 -1 roll 7 1 roll exch 4 1 roll exch
6 -1 roll exch 4 2 roll 16 8 roll 8 4 roll 4 -1 roll 7 1 roll exch
4 1 roll exch 6 -1 roll exch 4 2 roll 8 4 roll 16 4 roll 8 4 roll 20
-4 roll exch 3 1 roll 4 copy 20 4 roll 4 copy 16 4 roll 4 copy 12 4
roll xy4mul 28 4 roll xy4mul 20 4 roll xy4mul 12 4 roll xy4mul}def
/squineedge{8 2 roll exch 5 1 roll 3 -1 roll dup 6 2 roll 1 index
exch 10 -2 roll 2 copy 1 sub neg 4 1 roll 1 sub neg exch 4 1 roll xy44mul
4 1 roll pop 5 1 roll 6 1 roll 3 -1 roll pop}def
/xyshort{2 copy abs exch abs add xysegl .5 mul lt {pop pop grestore}{rlineto
xystroke}ifelse}def
/tipwidth{xywidth xynormwidth dup currentlinewidth exch div sqrt dup
dup scale mul setlinewidth 1 setlinecap}def
/halftip{tipwidth xysize 10 div 0 0 moveto -.25 0 3 -1 roll -2.5 mul
0 xysize 2 div neg dup .62 mul 2 div neg curveto}bind def
/atip{gchksavexy halftip xystroke}def /btip{gchksavexy xyopp halftip
xystroke}def /tip{gchksavexy gsave halftip stroke grestore xyopp halftip
xystroke}def /t /tip load def /a /atip load def /b /btip load def
/cmatip{gchksavexy halfcmtip xystroke}def /cmbtip{gchksavexy xyopp
halfcmtip xystroke}def /cmtip{gchksavexy gsave halfcmtip stroke grestore
xyopp halfcmtip xystroke}def /halfcmtip{tipwidth 0 0 moveto -.1333
0 .25 neg dup .125 3 -1 roll .25 curveto}bind def /ct /cmtip load def
/ca /cmatip load def /cb /cmbtip load def
/xyfscale{/xyfsize exch def}def /xyfsize{10}def /eu{-0.0551 0.0643
-0.0976 0.1386 -0.125 0.2188}def /cm{-0.105 0.0437 -0.1804 0.1380 -0.2
0.25}def /XY{-0.1753 0.0181 -0.3452 0.0708 -0.5 0.155}def /tipstart{3
-1 roll gchksavexy exch xyfscale tipwidth dup XYdict exch known{dup
/xy eq{pop /XY}if}{pop /XY}ifelse XYdict exch get}def /tipend{halfxytip
xystroke}def /halfxytip{1 1 6{pop xyfsize mul 6 1 roll}for 0 0 moveto
curveto}def /A{tipstart D}def /B{tipstart C}def /C{xyopp D}def /D{exec
tipend}def /AB{tipstart dup gsave exec halfxytip stroke grestore C}def
/Tip{exch gchksavexy /xyfsize{10}def tipwidth gsave dup XYdict exch
known{dup /xy eq{pop /XT}if}{pop /XT}ifelse XYdict exch get dup halfTip
stroke grestore xyopp halfTip xystroke}def /XT{360 32 div neg}def /Xt{-1
.31 mul 1 atan}def /ET{360 64 div 5 mul neg}def /Et{-1 .31 mul 1 atan}def
/halfTip{exec rotate XY halfxytip}def /halfTtip{halfTip}def /Ttip{exch
gchksavexy /xyfsize{10}def tipwidth gsave dup XYdict exch known{dup
/xy eq{pop /Xt}if}{pop /Xt}ifelse XYdict exch get dup halfTtip stroke
grestore xyopp halfTtip xystroke}def /tt /Tip load def /tT /Ttip load
def
/halfturn{xysegl 2 div dup dup neg exch rmoveto 0 exch dup exch -180
-90 arc}bind def /aturn{gchksavexy halfturn xystroke}def /bturn{gchksavexy
xyopp halfturn xystroke}def /ta /aturn load def /tb /bturn load def
/xysqll 231705 dimendiv def /squigl{gchksavexy xysqll dup neg 0 rmoveto
2 div dup dup neg dup 3 -1 roll 2 sqrt mul dup 5 1 roll 135 45 arcn
dup 3 -1 roll -135 -45 arc xystroke}def /g /squigl load def
/fullhook{0 xysegl 2 div dup -90 90 arcn}bind def /halfhook{xysegl
2 div dup 0 exch 180 90 arcn}bind def
/ahook{gchksavexy fullhook xystroke}def /bhook{gchksavexy xyopp fullhook
xystroke}def /hook{gchksavexy gsave halfhook stroke grestore xyopp
halfhook xystroke}def /h /hook load def /ha /ahook load def /hb /bhook
load def
/xyqcirc{dup dup neg exch translate newpath dup neg 0 exch moveto
0 0 3 -1 roll -90 0 arc}bind def
/circ{gstartxy 3 copy pop 2 copy cos mul 3 1 roll sin mul rmoveto
0 0 5 2 roll arc xystroke}bind def /o /circ load def
/circhar{gsave dup 3 gt{7 sub neg}if dup 3 eq{pop dup 2 sqrt -2 div
mul}{dup 1 eq{pop dup 2 sqrt 2 div mul} {0 eq{dup}{0}ifelse}ifelse}ifelse
0 translate 3 1 roll circ grestore}bind def /c /circhar load def
end end
@fedspecial end
%%BeginFont: CMSY9
%!PS-AdobeFont-1.0: CMSY9 003.002
%%Title: CMSY9
%Version: 003.002
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (), with Reserved Font Name CMSY9.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMSY9 known{/CMSY9 findfont dup/UniqueID known{dup
/UniqueID get 5096650 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
11 dict begin
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSY9 def
/FontBBox {-29 -958 1146 777 }readonly def
/UniqueID 5096650 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSY9.) readonly def
/FullName (CMSY9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /minus put
readonly def
currentdict end
currentfile eexec
D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A580F0834F28818EBF
F29D3B2C7C9AFD969BA6D3B7429E222AF78F6DE00CE2C8008A5966422936DC5A
DE549B458EB41026E123FE75E703E046F665B7DC78298A145548DEF8D579E008
39279A5208EAF898A357DF3FD9CE4450811F20B454D86B2947BEBB11EABFC62B
187B12458E022CDBAA6EDF4A89D79300F635D8CD973E35FA8D9B1240B3D30D72
4F30444BDF0B51ABA15A181A3196A6CDF9CD1D38D64C83E745A767446641991E
23EAE067609DC2E84B44D923CC98407812813D5AEF0EA21E560B31BD77D735BD
E35EAA564A570DD3294C703E16BB9F251D54407269C8B23DEAD063018D6EB748
4204A415AAC8384025FA922E7074FA7B8A6C31FD3761E7B2737D4D9C9992B7B6
DBD0CFDBD87D42E1A451FC5C7EFAAEC65D10D278470DDF42DFABC836CF15D042
6900E0DCDD36E7153BA186B8358E74F91A1D43D62EB0B821C0E97FE63F1586D0
98F01E8F6B6F2A435343A25CDD80D3AEB42DC8E5AE02F8837B84EE5EB508B02B
6980D2349984FE1A0D3ED12355D556BA483CA078B7921FB336EDAFC22AE05C1C
5614F5025B890009272DA8C838B81913C872A54F7E932237FB1BC2CE5D64CD04
2D320C8E2E610E9EE36EAC7C28C833F8A14048E751B61D0CEB342CBAAB34D104
311B421B8CE4D903D2E2518BA8B734E2637E2CA55426C4A87EEBCE637F8D71F1
54626C52083262A5A9A3B49142948BC1AC0B7698811AE81FC3D3B1C14E6C274E
CFD6C480514F3649D7725A0A14C82C9D537B1C5A9ADC816340B8B4E484AF55AA
905EA936A83FE2BE788D084469008F407447E0077417096333F163CE94CD3098
4B9712EE23120829AE2695EA63975492DB2615214B11C87ED0ADB776ED4BA0B1
40D09D1A617D4F57EE1A9B05C8D5F42AECB9C6AE67757DE6307B1A9C467123DA
773239976AB0EA052B23F263031ACABEC9EEC7A43ACD0DC2D7AD66664FB0D937
6A0F463A173E8B90B2596DD323D2350435D9D31B638112D70492F44769FC0C6B
40A291FE78AA598CAFC19E5AD195BE7264F0EC29305D36C7AB8F2A733797D75D
94C8F7AAFC49C13C108F514745A394F460294C6F3F44162BBFA878F773A5115F
062E934253B786DA2B9A6E8E843E06B97075BE99F21B330D6684998C5C340B72
09D69B655097354CB682D42120ABF5109E5522ABEC94D05E7211DACE8737A1A9
0BD3EC16F48798E67C7C85560D79366504BBFE5F7F5EC1B05B9F68F98149A02E
E53F321C213456D802C01871E9024F965258F71215F40EA71057C15E349F06A3
A016BF1B7E44DC4766FC92EE500EBF7C47D36B1EA34981EE6FE38FF4903466A8
C9020B91CFC731642003AAEB145EC0F13D6281B0838BB4236C220F6F467F7DCB
C79BB9CD5B6A180DD2ED7F94DA6B5CB833E62E898BE832DF601BFBC8148F9430
C8AC459F23EA2536E301C9DFD3FFBAF4D01E7853B60A69B5D012DCC0054C0BA2
1293D3B4EEDF7C5C78118138544A60FB1A500F72BA39E63EF5D97D68369850E6
9B6336DA577128DE68FEB71877360D97204B5F3C06E808BF95AA6D6013524BCC
85CBA9FD2CFEF383645E7E960E7AD471A6A3B8B8C3A0A0B8464836499309D82F
52004FCDB68997BAD9E4B5B881634FE1213283B6B19308BB67F2364F7ECD5534
467EF07CBE71989FFCBC6224417C0710EB3EF2676B9DE846E7FFB1AA6608EC9A
76C31724A19ABB2AD08CC102F5DE8E4E513F90A53F06D440A66B000CCAF6AD12
6F4B161B56FA5FAED65A24FA183B84F4B45407AA69624068EE0E3E47BBE973CA
C72137823F1D676131C8CD5070092CD73FC2A93E0480310E21CFB14C031206AB
411694AFE7B639ACF35C28705A115E98BC69C66F6C58E9E79902453798D76267
29B780AFB6B895B34CBEA51530E8300569EE4D500527BA294282FED81F730A46
6ED19AA5AD45852739882216EE937FC45D75116BBDBA6FF4B4423B398E383CCD
A7D705B8BA85076133E823300C3EFC9EB9399575F5F6BBF868265304B299AD77
B6B4EEA04C83E163E8CE2BFACA65F9DAAE3AD2B0F8DA1F986E6A12DDB2AFACD2
217E37B093F46FF3E20E587A9490401C2833F5844763FE2C528E151214E8CA95
018E1D8D47C9EB5FB4F0EA2A6D064680DEFD2C5489298F83B58EA7FA8CB019E0
671028C59C3E007DD86CD247889ECFA6AD6DA2433B02180DCE6ECF9E495D0976
D063A61B007233DED5E3F351D790F26D4011582735A69F37E7CCBB0AF254B925
B378522B748BD9BF152E2187DEA12BB168C42AD8D67D18567393B35DB2AD8403
5A7093EB59FC276525B8796FE81944F7F03349BB077110E182A61754ADECECD8
A5255DBADB523F3DC251A7D97F17DC76281CC632FAEB382A972D60A15FDDA57E
2F42AA338D889B47F6A3C1FADAFA8D11D63EF8D0C8C0FCE61FBD8AD34EB8DB3B
722BD86CE5B1268F704ACE82A39466DC2D96C9849B9422567FA5E728B17FAF61
59A77E9B3289DB807DF54D076139E3DFE176C3131FA4540C1542AE5AD6200FCD
B92D5DAA77DD4D3022049B6EA2A037FE96E0CEBB1608C663F1373246FA74D70A
BAE7BD37F3AC23E003204FA8270B4514DE1FDC5401B69CBC98A67A5CAB5505F2
87C242B6ECC86E88EEF44B9C79DA5F88CFADAE8B4CF437A7CBD5E0C01A9BC479
E92EA48C808820C567E74D62ED7597FCEC53DE9A0B3EBB9A3FB50AEACAB82BF9
2AA56D029357AAE016582592972ED01C0ADE565E87607F17BCF4983E3321F606
ED664B9516D404B277C2C1B0F873D469D64A9744D9C1897125FD471E71BE060B
A3A617DC8D812E184664BD83EC74EEB5197611380F2D859E1A61A14404493D04
B5537C04541E557CB5039905F37E72B762EBD2321633E12C38C409338AD5AAD3
1A507BB2B8F5235F0614D0CEC2BE44CAD504C9B2CD3E45437A493A33B9BF8A1C
3FE66B1E673449A54E8E3C3470688E94EE4404C888583F7C96B43A592D586D25
8AC1F206EE5FBF3AFF7EDF9BA91EEC6BABD573D455E0AD6802E7E23A662D4F12
FDDA00EA054CD331DF86C099C4BE8AB4EAF5D8EC1BFEFCF50302BE61E6FF26D8
1E88C544570E8D6F7D875466C70AA91D6CCD4DF4BBA34FC67191D1692D3FB76A
66F114152956A5E38345E7495BEB1A389B7D0A59624ABA784F77C1BF7728E556
F9D97D71858D61624C22C6914A3A995BD75922A2C37EF2CA91F923A4561CD3D5
2DCEACD9C3A65A9FAFFFA4822E79D6D89D6366DA6362DB16FF061840582DA35D
E4EE8308040C2DA5F298944EED470D6E4E1FF58DFDDA96C20C85E2DF2652E12B
2EFB8F890D301E8CE777678FA786E552A62A60DFC369AF4BDC069F5457FC86F5
1FB1A38A2222EEE86FE1AC9A8227663AE33217C1F381115CCD04D2F381A27E97
36D356DC64615AD63E1952B37AD4F967317D76A6DEF039CE8446AA634086BFB7
7B0B34F595B61ACEB346F51ED10ADDB7B852B5B2BCFE416D0435A7CAA4C9D9A6
152D9AD938F39E9756AC752F1604D884992BAD768C720C45479F5AD8E53A4832
1B44D6109DE4460A662DA6081465E2BE02ACBEB52259E046767DA24E1416FF44
D5AA1D303CC4249510D703CC6CD0FD7DDB078A91089FD86ACE1721F875F019B9
82D7C5B2530567F2306F47DE90EADDCD12AA1C693B1982827DC36A74C86474B7
0A8A2E084CA403AF654E2F8488806B943E38ABF544ECD45FECDC441DD970B180
FF3FFF1A50D5E22216B240A527F95DA1E43770A3867F225DD2A8AF01A965E06E
A063997C4CDC0B16B52F9B9C8B0DBA94F88F26A7A01E596DCF8F33DA3DA5B02D
2ACF771F25A1372F521A80B93DB0337886FCAC0A2E8FAE0D7E1E0C31EB43AE3D
B4C2020F322A9857A9EADFA7782CA70DE7421B9A83DE1873EED8D096701370B7
7EC33B9C104E9CC16DF8C80ED24D1F91677E355DF037621ABBB75E09ACDBEB82
30F1AFB82FAEC4D9E2DA93303F72C1078679EDDA35ABF2AB38DFF091AEB273CC
5A7B29C0164977160CA75F62BC20474C7C1F127AE7E4DE865FBCEF852698AB80
B61340CAB6F86017FEF570104E46B6FB3320E78D387CC58DF1C4FAD8570C0126
B6F54AB5BCD47904A9255366AC9C88576456D3CF605822269CC65979EC3CC740
AE3D09257BA3AC7A364A7F5EECA3E658AA20B53423553C416D98FD8100D80A30
A1B19F029B7473070D7C60CDE51BBEEFD2B45B1C82F4FE32A5BB6BB5BC32BBB8
F600ABE893B83B806A5435AE2B40E5CEA9068C6ABBCE73C9B3533520439F28F5
E171DB1DD90B2EC04A1F36767B2B97D4EC0FBF217D4E80ADA5383BADCD7E066F
5F4B23738A14F19AC7D765119AAC9AB6CD0A8AD4EAF8955CB9F5BDB0156CACFF
236D24E8A12AEBA549FAA9D7053D10AB7094B5D9B86FC7375E245EA8D7FC64B9
859A1A37C006E0449AA8DB8B89730348C71C7E014A2EF8D871AAA856407C33C9
392720173DA60850938D0537564455C3957631AC8F8C0B3B29BF6163828796E6
0944C3000B990715188203B32BC4E3FCDF173A4A9C78753AB7D76BB9A4C2DA4E
3EC638753D6FF6356EBB07D0A9E8D3F50EA5451FB6C836B9E5EBB8F1331C8CA0
B0CD271AF316502CBE87F652B5ACCD43176AAA32C6530C69E77E3C85DA496F3C
06980ACA739DECB5D986622AD81F204579218660EA791774C2D11878DE23F858
BBC4ABC7EBA01B7FEBB32BC914FEA8E5720731FD43F8A5CC53954D13455827EE
9C7BADAE8322E77EE7413D6C86E6D378FF8044F50F529E765A1CAC29E8B1D91E
CD40F70F2D4890E0FD04502933212D5AB176DB143831958605C1667B8841E770
CB4D513DF0C3182C23CA653A7A714B2A8DE29D6B203F5A9481E0CF3FF073FC6F
476B0B205136DA43650A940035A970584DD7D06B7CDA8E960186158B75FE3917
9B1D0FFE45EE1606C875DF635B80F5A9E5B67A6ED748F52A53A710A45AC20BCF
FC96755E685A3B0712D5E09D860986C61C631A8D2A505C57D57C1D4AE78C552C
DC5C9EE15B82A4C3020331B78FDEFDE53974C391F375E8118EB7B2D23DFA3F15
389043EB6F33842C82B896073760197B13D3DAC172D77779DF517AE31BAC43BF
5BD6F75B59AAA59C7EB81B776FADB720282DC06BBC9C33AF5AC0BC59F6A0044E
3898A4B5868EF32BC4F980DD863E8EDF6DE3E753A7B3E39F8E8BCB3D3BF14EDE
3395E73BD07440FCE88FB28A96878E823C1E5519650F2054EC2CF733EB8AEB0D
510E5659A3179C3FA8E31EED621BE0EA648D76C370C3CBD8043BE206F28699D7
5871DA483AA5D3580CD55902C85DB9EF5CF5D3191738FE64DB42410F5AB8ACFC
CE07E524BECA5633B082F4793002A4A7215AD1BA31159A30D72AC60EDD0B2BAF
73C9934C85C5372B47BCD3ECEE463CADC05CE8352EC1399ABE2465AA53E5965E
79400336B1F5D1401EE2DA5807F9701D1086DE505F6AD4E64DD4F3E5E90CD64D
FDD25E6FA03B679597CFB8C5C1F03641CEB7B9B40787E70BC6B063621382E3D5
1287365426E44A2EA208C26155CDF782F404CA7B3C6D379103EF4A51CA3F1343
22B04A0B55CE5A7633175838B9E50480E9B80446CD3B541362E7A10BB3C58A42
88C0FF580B4A0296073F5B6505E4FCCA5D4BA2F7E8D59BB04EC9ED4E664BC2BB
8754777594DB26DA0985663D321CCD13FB261BE8A771470DDDA783493E452A87
D0AD01AFF8EDCB7BB159F1408FBCC52F126C46234CE6BEF241B49472102598D6
91FF2DCBA2CD0E6658A61DB3591EA02E4DF202954B655C5A3C34B14CB60CF9C9
2A6683AB282DFD79B33FF3A6AA524582F174F11A5568159083496B242ACD2770
0ACE8473D363AC11250E5DCDCD3CB2281B71FCEB8AAC1367D0714796AF3BF01E
80BD4B05A0A45E6CFA6C672850B9DF113F5EB15923ED885A0E4488D4914B62A2
FAFB6A63F8AF0CF0DA498E1BA68C4150B6E59CBA80BD17026FA09920006D2075
BC6F1010D0A10648A20D8ABF8137BFCD6A5DB3606F6B3CA51E8A4645D32E5966
6DFF7537F65DA4268A86BCA5791C21F5FA9F4C2F1F6C1AFC4D4BADFA63609C4F
5F5158608E6FFD9C5BF00646C3AAB983DDA5E37A9C2EA81796B161A06201FB6F
8EACE87008EE7A008BFBA69AAC04D73A8C0447FADA0249D8861ED405537E23E7
BE68C4349FD64A14E3A53D6C6484E704BE4AD5FA0269F56D3B752A070D9872FD
A5CEE543B413F13CC4CFABCE885BA4533EA0969FDADC14DE6846B330552CFD60
A75BC8C9DDA76102E48DB6B81975A1F3FBE182CEF410841CC6164AFA0CE51FD6
8E8E6F0971277052E21126909B5EE51508306B886E945C11DFFE1C91BD0D79E4
554CC7D6A774C9B98610A1E49C3326D62F157CA9D89B56699F32DBB9D49C716D
CBDEC052133F8E18E8F3D7A59008398AF3E4E1192CFFE4D0B7D2ECC8DE2ABC1D
4DF7F2EA5EC0DD756CB2FF9F95FF10E506463D3037BABD221C08506FA603DE1C
DC45A5998921C4023E501DBA494C1F41C0955A761AC3D5B13A88EC4F0BF40756
BAE8645EA76027B8AF74726521DC129B9AED4BAE67A511EA56EE9D0D8D30C7F6
FA8BB890375A263A0BC4E9CBBBB8F8F8613A43B10E964F8CBD6BAA2B0BAA70C4
4CFAF6EBF4882B610AE13689823D37B046FD26DA85BD96B896CBDAB6662573D0
2CB87D45A86A016146513441BF7A748F1E9C2AC7172460EA628BFB22F9797905
F6DF6749F13C7F234A2CE4829D41E0F53EF3C5F52165297AAC4B5AF4747A9F53
60370B4C0110DBB42C25308F489A856B6664371FC2126BAF4710790021255653
CACDE1B9ED6AF5C696C3D8BEA4698DD9045B3004A5C4C03EA994A5445C9D4EB9
865266850047E28F2D82A08617E9283FE637CFAE4F7F261CC2D616A8C746EF23
7360553A6B434201944C04B1522533C61F615A20BA3678AF8D4BAD1FB548D82C
72D41699FB96EF40ABBABDEE633F05B4445BFC4E6E661DCBC8EC473BD2BBAF7F
75F7FC86CC7B1F3A2343EDEDF6B5F7E98A0BC4443E21611F4D807FE7F597A37A
A4DAF8A8E6D04FEFB320E0E25C61E156A72A3E4A69EDA04B0E3B72B69FC19E63
AA33A682663A8F37F4FFC1533CCA2A80DAA675DD723A7E13D9DAE3BB0F5F3E07
99BAB9B9BCFB29B73FC76EFA02F4F632690651DAAEC2B3688B636F0FCB156047
F8EF7239716BE5D3DB2FD1DAEEC11DC2D65CFBEDC1C950CA737A04FCCCA509C4
7E47664E160322366F70CCC641B9B49192AB839E0AC609AB2FDD3783095293C3
11C56740FB50D23AE9FEAF66DB13F35367B562F15161AA270EE44713881B2387
7889FD10198AD4D750390811714DAE7A8DC6F5770224E93408F8CCD4F8712A9B
3C583C983D98CCA7FF9DDDEF8AFA292781B1D7089336CA631413EA0728353E8B
3650EDED7ABB6E5DB5B85014A3A9C4C76EBB664A5B3E0F3CB2ECFBB6294F5C4F
69EA3AC8C071B122B129A28E04FE989DA9670EB6246806A516517DDBC52DC001
4C027D51EF1F98506F21E63D57FEF267B913F1ED4770D892239222F3A9035C35
FFA38D1AF3ED9A8C02235D7422695D30A2F801389DADF34CDC489EEB38089B6B
026D884EE1C24FE5785C383B988FFFEB5459A1644CA44D353503AE117E87F956
393DEF6C47D4E1C5B1A33835C9B8E1B98809DFEE43C4D6DBEF1C2B1ADE4B8F13
3B5D224C25927433D5738B0FE019CB88B1F373E4AC2BDB5BD86887FCFC50FA1F
3E01CC550BE5FA0703E1B89486C67E8A16C560DBC051028078BEF85B349D3058
55D633040BF5853FE9E50A671CA0A088959B2AACA1B614DBDBD906FBCB6A6B13
7ED6C5BF448F92E9EB110ECAEADA36CADF4B6D79703CA2EA9BBCC810A6E3532F
63C155FB86CBF6A6049D730B4729C613BD759AF3742399C6B118C1D2B38FBC4A
22154122B3E325ACA78A9D418FB443FB334F67F8BD2D33A8491FB2E85BA2BB40
F538F5DCA031BB3A7E6FB3A47391B9CBBE69A420143793087399AE2CD4C47FB1
9A93E945FA671D902C95EABDB29F20FAD4D984B5EA0D9F7B1896F77899649E55
098A11CB40F7BF083B1CE8C511F5858E189ABE6C7F66953621FE5A90479B79F5
E20C65EF767759387B788A7759465B889B262B3987DCD0D2FA2A948AEC42C3B5
33C38B3B2E312EE8D2DCD5E0AF1FDF5FA0059464ADC08ECAC4614497F7A7E702
A4F394B0
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
{restore}if
%%EndFont
%%BeginFont: CMSY10
%!PS-AdobeFont-1.0: CMSY10 003.002
%%Title: CMSY10
%Version: 003.002
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (), with Reserved Font Name CMSY10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
11 dict begin
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSY10 def
/FontBBox {-29 -960 1116 775 }readonly def
/UniqueID 5096651 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSY10.) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 1 /periodcentered put
dup 15 /bullet put
dup 25 /approxequal put
readonly def
currentdict end
currentfile eexec
D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4
3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021
91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2
E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A
11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97
C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857
D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20
B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3
93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F
10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D
7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF
B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B
491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB
F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6
019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6
915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36
356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0
5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D
9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64
3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1
FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252
720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5
D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726
BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5
7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377
DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56
AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7
A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E
0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743
AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18
CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023
0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD
5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B
5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F
E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB
54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809
E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F
A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906
4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378
4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4
038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4
B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308
5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC
B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837
A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD
2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D
CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246
455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE
FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03
16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C
16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F
483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352
67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2
3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472
1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770
93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA
051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B
8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4
8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436
6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0
06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7
84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0
D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6
DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB
0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD
8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC
C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34
754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406
1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05
CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523
1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F
153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02
905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718
617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2
8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A
98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278
53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B
888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D
052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A
CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501
A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F
07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56
B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672
10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2
CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D
3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12
D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F
849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16
648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE
84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA
2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD
2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204
9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0
B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B
D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7
135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE
EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939
C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782
7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0
4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2
9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171
050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486
3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271
C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8
843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342
CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B
B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50
3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175
19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946
FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0
17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6
8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B
CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003
F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194
1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E
4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194
2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929
9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593
E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB
8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB
BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027
04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5
C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404
ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C
4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909
84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6
C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6
09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777
D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503
56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF
035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB
FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333
CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663
B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A
F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD
CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B
0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C
B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9
33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6
4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D
F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E
2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A
CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5
88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37
17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0
55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A
A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50
2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3
406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8
AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B
60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388
C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6
5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50
822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E
94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02
D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA
343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE
894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5
DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327
DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F
8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324
A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA
DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270
E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947
DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC
4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653
5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1
02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8
88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70B15A0
657F5ED27D204449A841ED19E01432CFFE928E921321113780D036D34F2797DE
D4459CFD15BB117B5C9745EF3CD2B296D91FAD48C80B136D94476967E255F808
AD2B5D522ADEC64176833756510391815A1D4A8DA1D0AEE7CAD36A1D161889F2
3347D5B6BC503300FDDD48F594F391D5FB42C42113C538E707C16EE24A3F375E
7C506E8F49CE50FF9DEF3B4A4C1BEB3848EAA3477349833BA22D2A9012287D8B
A8C4CB4307A1188ACC0E6E9338E1559BE5FAFF381BD82A6C71C267409468B3C0
2C1A29F4281D565836EAE57F680490FEA4A952FF64C8CD11C377C294DCD1EC25
CEFB2B6DCE959D0208F85B6E32E9B44FD455F9B134A5306D95EA29F37BB8B86D
9E592159338E1293F449380E13C21AE42E6FC60CE8A8DD021324204494A9EA67
CB8D6D35618247BE3CA9B656EEA4C65E463AC3969D8C09CABB92396D6C42C4A5
10F77F2603CBF0F60A5F9494143241D8B59BF7447DA941B6F9E1760002F7D08B
9C23FC5B7318D53DA75ABCBCD25BFAEF9BBDD91EDD545F0815496591C004ACF5
03CAD00350F6D702FBBBFDD07CC588F6956E6C88BD546F0A0A18862D0BD4F96D
C027446CF48B9FCAD29E4B95922EE94215D4E31107970BB617D38A02E83AF8B9
55FD3EBD10C5AF7221BF877A5DF08E78B1AC0AE524900E9720BEAD91BC4802E4
02007D0FBF469DA2FA9B1ECD25A03DD6FD9C16E3ECA12E05BF359B9CB926287B
AC947F0DD0A129F383F8112DCBFDF9570CDF161DBEFB280A0DD24451A2B692DA
23AA4FA288E839696599F8DA3CBD5989F590BF851F9CC921518F0E50B1CAD66E
DD31348E29EC05216DE5DA3EB4B9B4B9F653731EB15A9F238615A17153162330
5FC0376F63AE1165A28DD847E59A86D273C611B7FCEDDEEECDFFC6754468CFED
957991332DD83F4C53E5E0FD7B4049DD22A064365B7898AE46E8806185C509CA
C9CDD5001E1A72BCE540C83D622A78948593C91DE5CD072F9E103D79E0766247
A77E19BECB2B01F34E08401CEF4F1D8D375BBBA2E72F7200
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
{restore}if
%%EndFont
%%BeginFont: CMR12
%!PS-AdobeFont-1.0: CMR12 003.002
%%Title: CMR12
%Version: 003.002
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (), with Reserved Font Name CMR12.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMR12 known{/CMR12 findfont dup/UniqueID known{dup
/UniqueID get 5000794 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
11 dict begin
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMR12 def
/FontBBox {-34 -251 988 750 }readonly def
/UniqueID 5000794 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR12.) readonly def
/FullName (CMR12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 61 /equal put
readonly def
currentdict end
currentfile eexec
D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9C535A5E57376651
F6823308463DC4E0339C78699AC82C769542FD3B410E236AF8AF68CF124D9224
FD6EE92A38075CAAF82447C7AF41EF96F3ADF62F76FB425BEDE4C4124E7B1E0B
8BF254D91912D3A99557F5427907A56514C5A3EB961B94112077FE9417B70DA0
B2E1C1FA3E1D6F01D11F640CF848E45BE3E205258E64FE36AFBD4DF4E93F6B1A
966C8E7FBE2CC8FF43C1F67BF6C361678B5E90F4BA524FE8A4CAD6AB28183E6E
CA6C9636E884845105595A2E40CDBE8D4807A81AF4DB77B31873FEB221BCADD4
2C4669459704CB58A7BC230FC59F867EEADE660E49AEEDEEB042BA9A7DD8193E
56C3A36A1F639F7EA512EE4BC6992F52C2FC82A890EFDA730105B0AF7B819295
EE00B48F64C2B5BCB275B1DD62F289CDAD4AD9B7EF057684642FA6FA6322C277
E779CAC36D78F7779CB6DE12638B3C65B70C6B5F8A8C6421A379719B8DD44973
5F52856A4A29B2ED37F2B1FBE6EF4B79B7C0CD6395C756A00FACD763C235914F
847D1D99831023CE1FD89EFEC83AA7E313131C0C197248605EF5BA773D0A4000
72F607551A8EA6F0FF19441ACA179177D1FF7B423FEBDF58B0C19CAE3C10EEF6
3538D8FC4762B77C5AA023A8186C40D0365A4487DC3564265B3DF908572DEAA2
57E29EC669DD72974F806EFF5ECAFA9ADF1F9D2A63087FB7BBD100F0F81C6FFB
B1EA1C9DD46548AEDD147EE64B1B4894972DAE1DC3E8569D6A3CEF9F9E46DEB7
547E10BB2959D374A33E47C58F1B20419920AB485F166062FCCC08EB5CC9AC88
F388F0C0155027B727729488E44CCABB7064A1432E179189C4627453C5231535
47D1F2B8BA43069696830CBB6E5F9A135CF22D3D1FE490A3A63C088EA32FF444
24A2427BBA63033DFE2E06DF8CE67949B6AB02F26335A376B57376814D2A7DE7
64A4347577EBE9A6E33DD2FC214A09C6D889C8FFBF1D567032548851B8F97204
49E215CC7D222F593E1EF1439ED60AD922D41E0E9EFB5CA48F2FEFF75AC5FEE7
FB6676D8B8D4DB6885FBE8B61B586313E4DAFB09D94CEDC0507E93000104F3DD
F83865A2C6F6A7DA8562BF86F5DB233CC9B53391273A1462E40876A8AC2B098A
DBADD5A160DEAC061F86A5FCCAB495EF8A9D121AF07928EAFD56F618E4EAEA97
CF89A3AFD406FC9DE1E9769C1E1EB83BB883786BC075EB5DA2692CD59C4DD7C1
7FD2FF9B18AC740A390C1DB38670DEB18C67721A1DCD502FE7368F47DB4281D5
459B3F020595FA3B10544AAE9EF786A0645FB7C9BB29D091E1432CD878A05918
1665643005BFD9A4B0FFD347ADC84CE22D6F9AD4EDC05E8C7179DCB360AB57D1
6ABCD200A4B4AD56825DC345984D9A3DE11CDA5E9EC1E5006EE4181E4EFE0846
67D8C27BEE8F84A1E01947E945BBE988702DEB2240C4BED952E433E5305484E5
71965D3DE95C4115FF78CE9EC18E323C599727C8B93CDFBCD1CCA780DB8C81ED
C4B5E596E1603624308972FFAE9A57B0EDB51FDDB6E23EDE2946F61BEB241345
2A192D8CAD53E823D687F9C64A70A4B4B703291FA6317C051DC6A44BCCE0288E
3839D726A8F2E39BFF429865E95C726E808E02CD06F36C1CC9AC77999F8E28BF
CE9D74B699CA982479E9D0DD98EAB24D29C981EF0349721D6819549A39413801
F80182D567EE316E2F0AB208068E15693E4C399A381BF9BBA625E597E6E109B8
16F3A84C8EC92F2ADE288821092A421A8D3B907048FE947230810F0777EE2542
29A3485223FEA079B359034F70464DAD2F0E420271A4E0CCF57A0ABBC20AB327
0CA71B292126D395E0D083B19BEC6B48A9DE2BF470C3D01A8C3F52075BD4BE02
A0C518355814478202FD4762EC542F8E7B9B1F7824F0554660CEB83E35635E1E
DF0D03C94C903ECB36B4948ED98B6324E0094EB1DF70863142D4ED3A932D7346
39D69F8F044B6084482D7748C27328AFD24A3A70B99D1F7D32CB984488672254
28B6A9E9DCA2C9FF6A1B311D72413404B3CE5428BDB7FF3C36357D7975184F56
FA6B32AD54C37D0AF7576663AB1397B80D4E998F0B4C4F6D90B483029EF2EDA9
D4C4204C1546EFF3100629453EAE01918D09FE104E626ABA38646F17B6A94CE8
116BC7A8D9C319434CA5B830859B4164DFADF1D7C3ECA5C78D8DEA930EA4AC3F
59DBBF3148C91A2E807FB934E3439D4F67C6DBBA9972854E6E3688E1E0A34B74
482217CFE031CD7B5DFEF727C3EF8DAEEEDA08F4C90289E62FB2AF2357EB2E45
4BC547980FD479101FFEEE477AAC6268DD659E8DD9E244676FD3C6909713B71A
323B211E571BE711D103FA23B5B9AF077D84E2D20FEE805E81D20C03501F0F17
C3B081946CD0FD577F00E50B76CC37CFA97A61B89C25DD43911B28857284BEBB
5BEC61FFE3A14C64BC5425A7A82326617F6F1FA4FEAE56071C9F559F91568179
46369B394A5CE96FB7420FF8AB7C61CB83492FA5AE4A4B0799578594C9EA67E1
E54498AA5CD6ABA34AD3417F04F5D8D664A7EB39D41E2D17643CAEBBCCD9C38C
C5C9541641A09335EFBCE0D276A54253EFD68141807A66F1DFEB4BEA5889FFA3
4D20BD52012206A9F8D3E0F6AFC03FDBBDF3E51506EC6336E249CEFB571AB84C
BDF8E471E3795C04E38A5306BA6D450D72E50910D1AC385BB06CCD4B8E433A32
5A4B7FACC976BB31FCAA1E62DB2C4FE06DDDE7367930E336B49F47DAD91C8735
9A35D80CA2E117E86B52E41E9278046ED923454989E48610ACB3B1663F197117
52659A9D7BFA561C7ACE0771794FC778675F83C5EDCB132AF124C7E6540A140B
E0A268836C73A3C746DC964E482E63C56C0D396515283970FBFF182F9F684FE2
655FD8F5D057D22246DDC3FD11B77552DB4D90ADBAB77BBB1FB1592129DE0AEC
F822D7D36E52BCDABBD560B403A5C56C5E1BE789C3AC049318C7FAC5E5861E42
FD66C3C0F46361078D7E036281682BCE9BBF77983C93ECBBEBA9B359769CA442
87FCA1B98F4EEC4935CC93B08AAADDF355C99816453587310F08C50B9BA3D107
5388A1F3AED2AE32BEFADF0285DA90436D1D7EA85D7B9B6DF2AC4B778CFADFF6
6EEE54D1A1C5DEE3CCA7EFF57A7C2931933CEED90CA26DAAB45E4388EC4DC366
B9E88518D6CF094861D2A59282044CC06E63EFB390A6DF4BA5EAC7CE39E1EE03
3D84099F5BE96612789AF3EDED07266EF10A0FC23EA1EA97040B6BAA63138B1A
A9CB8F5DED781260962D7618EDB200C3ED976033E8967A8CC676E9C11F74BE34
343A7ECE7EE97E8F76F7E95517A6D6163527406EF5A669535CB2BF4031F29046
BB2D0FFFB47A576F5EAB1D00A582965C56F28C00B3BB7BE2CC8D8391F789070D
775EB775437F0CD53DA840BB3575104B63E4B0BF14E3F14B320EDEF65FD4CAF5
8596DA491BBCF3153DED3B718F833D106432DF8DB8B8E6B34D5308C9010A5DD0
7E0E53260BB84BAB3EA748E8D72F75901604F80F4416920D69B4B983DCDB72C5
E9928F01A4A85954FD74578AE336C782CDF81D1EB7EBCEBFBAE7ED8AB4862584
397928F502D65139CCD582CF0723C5262EE54B9D2B8C39614652A8A90E1C3B65
7D26B99DA298FE4B9A7E98848F619C9BB4FF9FD215B72F99506F06355B332689
37D80AFD9F9ACD8172CDC51FCD3A759ACA0F7D4EBB07840840EE42C2D5B8B257
2C6DB3A7657B75F2F0B9730A20112745703E2D0FE709436CA6A5F36F59E64D9E
37C0A23D6D289E1AC1DA273872F5FC5C3DA2B127F078A4D7AB3FD7E124455817
DDC796D54EF26A1FBFD539D3A21B86DD4477DA49213259ABB3FF241424F2BE5F
89151E02FF87E0BEE26E85C0E518D8BE7CC9214B8E9A9EA1DBB49C6C212CCF08
90C0F23E9858947EE344062EBD9C574979087439975EAD4E85CD7BFAD3C91CF1
EFF577843AF1427D06CB2F3BB519ED1591974218C43F0D2038665F9E2E3960B7
FE68CD3CB2DB6B36C7997C6B21EC11CF1DE049541001FFF26D14C255E3AE862C
5A5701292FD2FB3D04523D6E2F3547923BB117718DFB6E6520F0D0B5450C695B
8C9242CC8671B7284CB2E1E9EB097A3DB1B4D5E8EEB93B4DC7E38C0A10474665
54DDCBAF079B92EA494F6FA75A84C5AAFE280284D0823D7C22249A21044BB0E6
4062074ECD17B62E03EDF4945A294BFEFB51F5FD870D9D7230FC91B83C1D85A8
86CDDF326FC90E04362145D6E8630C50594484FB829DA18F5C078F2EE67D2F2B
08DFF39AE2E8C9741FA989AE494C7166F122D2C5F71B97C973B7CE8500E9F87E
D59C30F2E99CC4D34713DAB680598F41955FBDC26A14CF1E73D6BD6B9AAC8D3B
B998F2D0D647356CD236DEAD6561389ED3A6746221B0CF15D6648412B35A6B54
6A0EF5BBB34AA376D9BAF025BFC650C1B74333CE85413D0EBB2F4D082A26A5BC
3C0A25D2B12CB159F140E00E262F1CFECCB2C802FF94CD34DA0CE9B4B3830FB1
DA85B9B670D5169928990A2E9CC869891CA2FFAD9774E6B92549644DAA5FE00C
A5BE4F5FF91A0B6D2FD8F96121D766391EC4ED3E73DADD476B7DAE1A50AFCD98
DB7E27E44D30416088D9BC07D4661D9ECEC0806830ABF14CE55AA3CA2DF66E8E
748B8ED46466F1EEB072AC0674FE6FED231E0DDA59ED7C42BC05EF00E176050A
C4834D893DE42474EA20DB1E25059E84BD137EF65A02CC295B0FFDE4CDE95879
0FE88BDF2519ABAE7F8CC3E6386ED35E04A14F1E3861922645E3A3F43B48A5AA
1999A5EFE192515FCC625C829FF5A7B337AA422F5E920545F9BB269C869A821D
6C4C26DD2AE746EF0F0B4C1E7E9871ADB5270E1CA9BE28225F7A0370D4C52422
E25263EE101C4EC1C7811B05AD42F364844A56BB91EE72FC8ED53CC6954D2BD6
F945D739BE4C61E36143CE890FC0CBF2F610018D678ECF7CEAB18FF5A0E48F76
FDE2463D40A99380D679B3B76D39C664F4992D23E5988B0D1AF33DFB04894016
E852EFD1EFFE586153C0F31ADBDBDE3F73FB49C5EE64D0D02E1504248FAFAC3D
903FD44679BB09C30288139B41B1E90A10139CA3172677250B16535A1F3E5E4B
6F4264DE58896E66051FC677030A121C5A285C47B6129CB5A3998830CE070D21
2F093FC1B44089F603A21F45F60960F134A47226874C737EF6C085634B0A4A66
139420501351F737A73F39D960EC38420BE46E5B09D298E7C16B8E32F01507D4
0141FC52DA1DE718D634AD9C8B00E46EEEF84356759324D2B9A3473C5DA38DE9
E30182B87F91B6A7F7BACF29A93B44C879CCDEDB063F9D2E51E0F1FC9F018FE1
2433D85AF24B55DE3A61C4D0A2DA4FDE933F5F6FDF17E9FA9932BFC46E2D71F6
585EEF5B2E4E89E797A24B799D7F064DD1A817A53677FC9EB8CC3E7F93FE50E8
D50E3191052943FD6C98B573BDD1F6D70349E1F8011599E3F8FDF1D6E80A710E
51E434E85801617C6FD8ACCF1B77B4BFCCDD35CB4C0367F4EB4D8D9DE8284D5E
B4F43E2F8320C2C5A9AE90ECBA7E65D377E91DB69FEF27069235366AD3E126C3
A73CE97F4C90BA00D206FA012C327FD69EE59AF4470A315B1799CDC0539BF90E
512C8FC3BEFE4D1B01D969EA9E3FEF976CD6E0FA4C9ECEC955B265CFD58AB8E5
F7371E479279EE14B689269205C5B506940606CF3E24A1E7EFF3CA96ED30AD6D
E243DE57690C3D69A401AB3315FA49E4BF4ACD4DD1CA39272533E82EFDD508E5
1C2CD286CCC5DE1202C7C7F654521750632EB637F918667E2233A43DF75239EB
F28F3129EB5DEE2FC5BFC331FF709B0FE9B327CBBCE98BCA2C861C6547E50407
1218CEBE6EB5F9BABA4F2E11BCC6FB553A544A567B459E06375102C69F8018DF
BA6A227CFB13E2D74E6A521E01B74F2963E9A0A1C9FD87A88EE6356E3BFABF55
BABC751D2BF85E6712E8EF57914920775906662E4BA68FFA21AD422D34E15578
43CA0568B431101A1194F8AB1EF25E886BFCDFC10F4A5EBD9530816548BC298E
AE4A0B6B52B8B59C644C409B4191B6F4203F52314F2675F02AEB65A72C66E92A
2AC703E15D8D381522C0AC30C165B822A9B8D18CAECC094EDE020756018DCF51
D0701B507519C4270B70D8CE94B436F640C15872F9B5B77892AA3D110E4D6A65
8F0815C61A5127BA25815378683F46E69E54A391A8675977E7DF9C2D4E6FA991
9F029E50CC2F266B31EE9F9F24452D5838905F330CB7E416B8AF836C5AC26AB8
BE2ECC6EA4BDAA08C30995709E225C21D35DB6369167602CBFA8DB2697635925
969002CD1BEE745DA2E56C17EF3F0C05E3847147F86963C37A221C8827195A8A
3D38993E4939AC915BFD9A212F5FF3F826F742B952018986F9FBDDB69C3AC65A
845F7F33C55D4BE60A1817EBBCA7E1538E8087E1BD5C083A320D52953BE65F31
E8339C612A510B59CE48D2EF7061560C4AD258E7DC59694493E3AC878246F37D
6DE89253EBC8830C6B209E818213C4AC4CF1F391AD91D57BE76FB0E2924A1407
E4A949C905E44F54EAED6419F13D59942C8079336A172D4758BEB5D3E786FB93
3CBE4FD2EB53E4E1DAC34E821EB30FD44BC6CB4298242C38F848FC23AEDC9733
52BE6F32E31E25F18301370F8936810B0566B664B042C7AE0D78ACF0A87E5BF6
F9B66E358168B2CEA30DCD940074F3ADB793CDB136161FE2522905E87B8E463F
95D4DAB7E14A3DF7BCCE8141C5A08FCFA2BCE9F2D1B05A7642E75877EB840149
AAB007CD239AE47AD115929427717F219B0A8907F0EC79ADE1B901DAEE87A2F8
39361DAB43DFFF69650F601B24061A9353CFD619FF9626F63275FD09A5B13BB4
8B3379EC4D147C41197E8387FC04DA7BE409524CEF74EA91DC066808A7FD0EF3
957A44E2503EDA67B1C61827479486134E922E560A673BF314D601C66003CD07
55569085AFC8428389A140EB976CCFB8F29E27587E46C413ABE2EFB51AF5913F
53EEB74063162E0BA1E24CEDCA320377D3E11BD374F0B44E132A5C35835B6E2C
D32948EF9DC7931D104C1385709DA882DED6458319F21C2329938396BC074106
CB9CFB9E0A915F8DBC8435F386917AC87A2BA45D857EC30ECA66FB4044F5439E
CDD556B82A0E43418D179AD883C85AC276E1190CEC242E3E1D86E725ADC39E46
BB6C47FE9E17E29F8EA81E870302A00D91434F3B7A05F243176E6EF1082541A1
B9052191EE5C2B8E94A2E02DB65FC769653CA8D1C07A13CB853544AEC7FC35C5
218DE3128AA31952DCE19C55C23FD69BCEA2C661F57B11B8F9E86BFA718D1521
3346E78C701A5E51923D6D937E62FDE3669B214D240538F069A100A542720A86
31DE88116DE775F7ACC2A49EA6C02A24408271A846990669F2AF60AFAB4C16F9
7F4E88E917F0FFDCE68F22998AC0AF2A60A73258C3A4BBC42A2F918123128195
196D0E150D79AC3CF4628503D1F3FC528265ED8324E56849A47B3B07C29940B9
1BC270071E221D355EA51E9942D3BD7F99816304FFFC8F5B036C953B38759341
ED5D7B9C8E6B70C409DD8362FD291201CC385E4A98D73E8518A4C0E544152563
82032FBD2FCB6E403D34B85ED4053A8CB619BDD4DE001F4C3007B1F317579651
E6D6662189CC2D95AB85D7473F65C5D7B4AC63B0FE928F3400035D5A9D443D0D
F3532B99F3AC26CB25EA3CD64C341159061E02EFBC7C033C05CD919BBD827A6A
BAD47EE10B9AECC871B76227228CA161EA7B61DABB252EF91E607AC8D3F85774
DF0B1507B60BF52E4E9BC0FD04400A548D553D4A6EDB247875E0A2E013685C51
D23EE8A56AF57025AD67D929CE8BE791BE91A4C4D9F00DB8B4F16252C04F7BC2
02236296A9052306639F4672E90E3B9DDE466EAC17E200523B2AECD6C05A0A83
66D4EBC86C0DF27B789D5597FE88BCDAD2925CFF60F5A8EA618FE867857D585A
CE25A158AED63B8FE391030C518693AEC75AC0AADD0C11B0065E2ABCF51132F3
82E3718B9A9FAAF727F2D8286177EE27BAD040C66D0D2D7C092B45D9330265B5
6B5C8E29F71C9EF548BFA4BAFAB242B26455E4B7FC1882D68E408D25E6F58EC3
03AE9B7A5F45D61E02D0AB82AFBE793D708ABEF45FEE865969895654C00A5FA2
093A297AE74BF625A96FD85F58FF994921C9F1276635C8CB65FECFEE37C77BD7
FBD692DBDF1079AD35F8A8198D63A3526ACB37FD5A4B3F3F4FC03AF01130BC82
86DB1475BF11E71F717181644F28A5B51673BB078799F027F37407D93A6EFAD8
FFD17E456ADB32FE5E5EC8E91FA2E4FB94C8F6F6B1C8F6B20B844ACE1B2F74F0
A88A47F4E4587BC0B6E3849B2A86310F8F396EC572E007C757AB54B7A8441264
0FCC8BF2814487C9E55820A4211EB6FFC56DA695FD7341B17BC41249E1D4F47C
90531A3BEB3B02BC120AF5F3335C1270ABF17EAC8C466A5CB7773BCDA6FD48D0
EE661F14BBB97DAFE30F8E0E02
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
{restore}if
%%EndFont
%%BeginFont: CMMI12
%!PS-AdobeFont-1.0: CMMI12 003.002
%%Title: CMMI12
%Version: 003.002
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (), with Reserved Font Name CMMI12.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI12 known{/CMMI12 findfont dup/UniqueID known{dup
/UniqueID get 5087386 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
11 dict begin
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMMI12 def
/FontBBox {-31 -250 1026 750 }readonly def
/UniqueID 5087386 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI12.) readonly def
/FullName (CMMI12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
/ascent 750 def
end readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 110 /n put
dup 112 /p put
dup 113 /q put
readonly def
currentdict end
currentfile eexec
D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBFE3573BF464E2BE
882A715BE109B49A15C32F62CF5C10257E5EA12C24F72137EB63297C28625AC3
2274038691582D6D75FE8F895A0813982793297E49CC9B54053BA2ABD429156A
7FFCD7B19DAA44E2107720921B74185AE507AC33141819511A6AC20BC20FB541
0B5AAEC5743673E9E39C1976D5E6EB4E4D8E2B31BEA302E5AF1B2FBCEC6D9E69
987970648B9276232093695D55A806D87648B1749CB537E78BB08AA83A5001F7
609CD1D17FFA1043EB3807AF0B596AF38C91A9675E2A53196FEF45849C95F7DC
182A5EC0EC4435A8A4B6E1CDBF9A5AF457564EA72BF85228EB6FD244F2511F5A
CA9B71A65D53CC06EF5F7EC3A85106139A4D312378BC22183C09A229577B793A
1B7422611C03E84BF809F46C62CE52D3AE29CE01C32B202ACDAA5B72733EB0AE
C31D7EF7BA88D2D14F85313F7A8B9B7A5B124B03AB923744D336C969E5CE304D
3AD977A46664479EDEFB69F113024E761C05FA48A54072DF9E12C2F352ACB3E6
D04F6EEFFDE209E7FA3DA22E5B1D1409461F4286B7F4F8251B44E5CB7805762E
E129FF4A06A7458F3191926B1CAF70E32C6571AD2DC07C34FF62840896F4D200
761B1A7FA356526D1E3AB4C542AF13623BAEB9F61B1BEEF79A9205B1FEFDAE24
8799D516A9ACC30BC0139C63C9A0523E9D5439213B67D490C96F902958779B8F
68BD8E9FDDCE8A3A2E35877DB6C94B7612382ED8F218EB1157D2ADD090A2448D
10B99FBC9211C5629ED1C61C74FE93041E5AA03EA4AC3FFDA00C2B6E719CFAA4
262FE17F66804A6B54D3669836EE4367D2A2991580C5564463C973CA0DA38AC6
922716E13B4A807B50304B8826CEFEAA47C305FC07EB2AF25FA7945797237B16
56CDE17AB0834F5C97E0CC5741B061C6FF3A8DD1A79B9A173B66A6A750538E26
32FBC92E75BA15CFFE22A7302F47908547007402569158F62C29BA2956534FEA
7DACF1E507AC309DAE8C325F2A6023D2FBD81EF42146BFCE6A16A6310A650460
7B07BB7647C8760FADDF0DBBCD3DA6CC4645D1732DB3A22D8B76E1D2D48E4D4A
46F4BEB80CE65F3517283A1AE08391FD1C10ED452133706BC6725AABC80107FD
754A8BA47B0281D479F052CE26A723EFFACB79B213041A536542AB334769A2BF
88505D82C498ABDD5A73EB539530F47CAC52825D16A969C8BB56D4A7F2830B8F
CB63B92B576E7BD922A4B25E634751F8A3B7C4EBAFCB373EDC8B8281B1D1371A
7844E9AD990CFF09F0D7ED73A5CF873D2D5C9E8A9923CFA31E1A4B4CCCC40760
8B3AC8FC3C88BC08BD7407725281BB879A1A822D94997826418F1B89D303F2C0
BE7A0102E6F529630CBF1BC5BF3E4578C164A3DDE45E62A957EF3FB7F0FBBA6B
CA1E79A1ED195B6A11CFB345B663C5E72FA55D80476F604F6C4257B51686AE25
8F7D159FE605DDA0AC74BAA5034F29FFFD403070013C6E2D8EF6A0990D91173B
D5A3AEB98B64E412991505C3CB7C2CDE13C091FEB3DFBCAF30C4C19511102300
135BD5D444BB55692013F52056908DFAB2ABFACE81A58423ACEC59344CEF7D4A
C5A3EFFFFF70759BC3E593D878281225060B97D1BEE6B26EED90571FEAFA1812
1115C0EEC892F5DE6FDD68321A0B3F10A2D771B79BD85476AF6018472A499A86
07D64CFF4550866AFE590C471C80EB12CB3A989A60BC7BED39097C12D9286E39
14C7952C4C64820B4DE44A1827B7B0B535244E93FDB80036D6332F90F95B472D
7031E7E3819E881BD0313CFA112EB3AAE943C99C47635CCA7E34DC0306C04E5D
2E9F60FF037EB11602BE74E8E6B711392E866E3E55D988F7C856417A2B9C186D
639819B4786D039B77F8578EF63C088FF28BD08D8353031445C8498A8F445BC3
D08923D32AC04BF3CAFEFCCC1E77EA894F4E846F47EF62D6841B8D8576FEAE8F
90044626869D04D61D64D56E8C51AF8C18D6CC3FEF3B6C4F7D56FE3260354948
10104F69B117FB8269292579A7D52FED688C663B643D8D99F13956612271073E
1A337AED059B7A93819A28CDF01569CBEB51069D22ADAE25C47355560F402B2E
8C9900DA82B79C64497C8494F42FABE5AC41791C2010D98FB7E593C744F250DC
D837DB0EAA4F75D0016970F3AE8359878A08CF9A697A06C5EA945819151265B9
1A12122B98F79185DF852257BB4798E7DC03712EA6ED34F6E6AE1476788DBC33
9229FADB8D581BE1A63F596698DBD6DB98A092F67197A4FD4A50B648F2691875
EE2495D6BB310078F516785A0CEC7EB6E8305FDBAEB1D15690409FE32DD9CFAE
DBD3866FB63EBCAAB73E3E4BE5D7F3AA44793938AAF3F8341683F0790F1D46A3
60CE083F9BEDDA22E0639A92393960F86602216FA51E2754BC2F4CD0BDECE3D8
FFAB7E0E49613DD4956C9A10AEA798BDA1F756C755BEC12147ADECAB0FB73B7D
203A11D84DD2AB5AA98FD38C1C2573570FD49A4924A94A106D2A7D850E793608
FB135853E8C4204441CDBE697FD0CB330B1C3596F32D2BCBF263237EAB362D09
DA6F531B40384DC91F30674760CA7B64BA1968F6A7FC9EBEF431A1AFC5E76D7F
2D44DCB7F61C7F6B16196B3E8B47343F572DBA8B8B21B43E35BB6B2DD5C7982D
244FD4304D254D6CCB5E8CF70E77F50812F41A988EEB3B26BF0F6F69BBA18077
31134B5A5823D10FEF6201D045AEE7A24E0F25376E9FC66340C56C05F6CD810B
724D85CC4BB8D789834A447CBBA159565D08BA5793D8599035BB5063271518E8
F6C50E7DCE71B1D186270DDC860C6DC0CD506010EB5B1FDF6BE47A9A18CC15D7
D657E58BED9EECAD5CE5D49F63139A39BC52C6584BB2C3264D51BD584B40F8EA
AFCD8B83F548594386EB2B05CE803105E84931DC6E7A1398073D48E130E0D907
CD0F1ECC3254EDF5D4DDBF44415DC9BA66C673820CDB0FDF033D59BE2B5EFCEF
01FF9D33EDC88F8D522E07F1689D024DBCD09A16A63519E1764C8630FF36058D
CFC07027E0ECDA01E0E85B166C613B22F587B4D355EB018BA93E92A36007B4DA
287FF5A91F7D8A0EDF5554ACCF45AC8066E88865C5692E63EB99CAC81367B605
8E6C19EB98EBFE0D2D161B447B9A70CDD1122C7B78A413369016E6D8481E2AE9
9AA97B5DD0ACC9B0820F7742CEB2F46F89F3E2092621969A88DC0156B4F941A1
6BF1546D4B136657C47B082A8A35FE96016BAF3D9679B8C32EDDD6AE6DF3BFB5
7854074FA019707FC22BFA82299E72ADF9A980AE29A8E2434277E58B01F6B03C
192E1E25DADD49F6E3F69799AE62B56E00B60A031BF8721DB8B2CB6D4A4C15CA
AB1FDE010AB7DC0DDED977389B101B8E53A949222FAA126656E02817DD32B0D4
A49516CEC2B97EA7C78FD66229B044EB92F502384BCC6CCDFFF995EABE3BB7A9
50D5D1AED861E7D3BA8D333026C673C5762712E763E59261426044583D789C67
A606B96F97663F92BF104CE02FBFDFC521EC0D6670B7D4F85A229F51426DE912
3B729C4A535FB7C88D0A5E78074751B58885DD6BDD2DD9E9C83F105E8CF63DDF
CA7DB39D0319CA7CC2E73F42747F007574DE25AE1538B4D493D22D0D5F0F80C6
5F6FA3937C8391DE2F0116F81DB2DB0EF751EC838A7F85F163A6F48804E84B96
8D715EF25B7E2A5CAECC558D80F421052A1D698F3B8452AC27E30A4E6226E3CE
084C8A83ADA0818A110923CF7AC7AD4CB92AE4ABBE0A9EC1FF935FD02774C1F7
92A278E513012AD17722A23C55EF82E18F8847B5CCE47F4FE3EC508BA563F7B2
AE56C94285A18DED4D432FB0CEFC05A20BC17DDF9FF919C724810A8ED7358A27
97EC93C1A13C443A91947FE1F6F528EA7B628917FA7E554A1D7B31ED46C5ABCF
92BA57961C8876DB4041305EBB029B03D8351D5E2819FF87E97ED214D8F1CEF5
7F7668DDE223721C0B810F4A4AC81CA4EAC86EAE546E1B15D91E626FB9A31824
5BFF17C4E79FD56ADBF6DBF01BAF6453A81EBDCB38A5FC0FD0FF0646B3B0D199
13E2E59A1B5CAB6DE5329BE389BA0E2A2AB55CA40B711ED746C24F1E48892E76
6DACF7DA163CDC90CF076763008E7A899870CDED5A80758E6177BE6B93B07EB1
5800A3BF7B9AAC3FA825CE594EF5B7546B181375FA8F37608DF17856D2F8EBD5
6030A9E6F6BEAF224AD2AEF76D03B023E2FCB922CB8E3C6816AABB61FE6E4F83
F21B4935102C860ECA03DBEFCA461F0E5B93E5A8D18440BCF7D1D6252A24CB6E
A64FDAC8B67C4888519AA368D9C4A8C08C7155DF5BACD75C5196C571C3C456C4
7CE8D90215FA6EE8CDD72C48740F7F5930EC3632DB63A9C8D2DA125088C0F05A
9FC83D16B7F53163F4EB6FF372C6C3115F1E68EB35967D11126EDEDF0BF80817
E68A698183B3EB0A207DB43786E1B9D289359D75AD5E465328CAA90E712C2962
AE2A466173F2FF30EB535A6054BB0B875DC8552C16B49DF17CF84D98D35497BD
F55E273FCBB0C735899529A69990E09149FBD2DDE64B7FA8D50AE83925DF03C8
0B63EA158FBABB12A028803DA4B9DD6C48C0FEC469C4E730729F4BB420D5B003
1918B4AE9CF35CFD31E8E62A44C0484E3D00143BF1D330235E821E5CFEAB4D31
7CB4604DB1F310457FCF9075A3527279644D908DE847CCD00B6F50DBDEF91D3E
38238CAF550FDCABA2C3A46237218DCC5A09AFAF69997E1EBDA7EFE6FC99ECC8
5D4AFD5EE35FE2346BE79B499EC8EC436868154A947D13BC02C780EBA4B9E64F
3026F1BF5DC1F8D64FEA1281EA40B4BC355638A3A59BD9055BCBB232FA45EA0B
B405131B64F105814019BC55466EE78E9E9ABB62DB30EA452F7EFD7196C76A85
15B2CFCD89922CADC0F392B0C54A231F3999AEFB53C24EB0C63B0C8A1A1ABB6B
AAB2F93E5ECC7AB90EADA320E918106BAAFC1F8C425C617639984629018BA674
6FF4F338AC43E23BC3740542911C058D43A49A11CB3A0CC8E3088BB5BA6048D6
CC2AD250DE956BFBE83BB24C945C20D9C22E7105983F284EF478F9B68BFB0322
EEB7D62802CBAAEFF1C2332159DCC7243EA40CE15C734EA905E04C476B178B82
A08ABCB0B86A7330C75E62EE7844C9E22DDB013ADDF20AFE08122EE1B930A81D
806A0F8CC584CB7FF5F56F9B35E5FF78FD93E7E4A40C64537464EAA275FE88F4
461FC6A467C8A69B9A9FBC10D44AC1B753D313A8E7D97F5FAEB60F82855658D1
4DCEE043C8FCDFD8A29DD091F3BA55874A458B2B8989F35055C72FC411382361
9AADC717E602B48D7C9521D3971A6F7EB19D539445DDE9EFBC5B58FA9E5E426C
172C45CDA24985FC4632287FC3B15849DEB56F5A061993AB10A6BC59868534E6
69888175053108B77E4978D971B4EC57224C0F93EEA4C15AE92254140A94704E
ED5666FC06C5341F643F779CC88A9E81891565C63B6F7F6286E664F4E0A48690
356DC96F1B98026C563700772485B83BFA06435D4E0793EF822F423C93FBACA0
E5D889D2B76771C6F0EE997A5DB43C2F6921132890406E3C33F6F159B14C5D78
7C151BDFFDD02B697315F191B5490073EB418A4FF2A398C68D44F0CD1B87CF9C
B52F12728B72F94D752D23151196A256908135C87991E508B8906CE2539DCA8A
31F86809C8C6C18A09F6129BD7CDC6B37E76B648788056851F22BD3E3B5772FF
EC01D822B57FFDB3BAE624F05531292641FD6A7E3666152D18F6C653048DD7D7
98A942C840C4A0FA662F260B21C64214152BB86F03662A330109C5AC0A5EBA30
C6201F558858130703DF76AF4FBBEE069BDE45C0D9467077D85FFED4F9BA9C61
AED87D67CDCA453A6528AC5BA153E1039D9CCC556CEA5CBB542265FF54A1B208
E0E13740E7E7C26AA00AEE909F8F3ADC2726081A744D8EF6BB711BF5F611A900
76F91C26A338DA13A7160A9F42410CCEB3190000D963D036FDA05A29F598EF40
8FAE6F8E7E6F50C99C3304A573501C13A00023085F057DF331E3354CBE65D573
CAE73BF15B3B96B502E0AAF2B4A86237E98A997AAEFFF4227D5A26E8972C48E7
761F430733E6EF8AB2D903C17FAFBFA21C25F8A0AC157D397BF3CC1AE7598F0A
2BE4FB46B29443CE57F41FD5F91122E9D86F903E94D5B55E2BB95949C156D138
89883BEFD634311F9280C7F028DCA6408D3A682DF5B55B9F7ABF08F019190F60
D39E4F0E80F0594235B09A5320109638B938633A2C196E4ED2B43DCD8643C3CF
C6123B076B7F73352F906D96FDE0FBF50CCCA432712C574D5857838BAC30B485
D25024EB254A7EFE57D1DF0892C275CDB3DF77602F0FED0FAEBC644BCACA04B8
B424DB125E487794CAB36E01B5E1A26F5E1E97A739AA36D77A12F5B45338EB39
AF36CEBDED55DCBFCF497FD475FC6BAB5530AD6153C6BD982564EE8712185F1F
D5EA7ADF4104661168A01994C1FD773A50C8AD6A3E4D332E4D59521BB8BBC6C3
866EB4AC3EA4532477E6CBF6BBF0860031C3B916AA25E3492670EA67F55CF4FD
207C684A0DDB6F4AD21B2909CBA71BCE2E762012B0927BA72367A6AE0AF87F73
756C9BC85E4EDE35317E2CCCD138C02C7A8013AFDC1A48C3A4BB8EF257BDEEA7
60E012F54D12D31D18DC59D5E526F12567B8688B4B67E16B56713870300016BD
A3B9DA87FDC865246AF8E94316799110D86B1DDADB8A673402D4226C519C058A
1D1E5A5778584FC28AF12819B1924060BC4F54B1054EA6AB0149E04B8C4302D4
A56D8A347EB5D3D2A0E12CF7E35059BDB53D9FF6BD25F6D9619BC4669CFC1048
C6C9978B8751B840F27D82A69075832BE59F55C1737CBB1220FB8FF691FDBDF3
03BD7D225A9372AC221C38245E48320E1CCF898D9EEDD678E5B8C65B7F588321
1A3953EEB9B39EA9A8CB72DB08C3E9234DFFF5FDF9DF804C021D57E97DA7622B
97F4CB6E0EB640E0DC9EA15C5193F92A3A7565F4C7A4C9CC327F7CD2C44900AE
D9E76FFE62FC37FA376E77131B566AE67C3E09DA80F198BBB995EE8FA47EEDB8
4B467C6C7DB8AEA745CF8C56B8BE56534E9C56FCB2B7006426DFE93D728FA4CF
94F131C549814E54ECE7C914C5FE8E4961D3437CE7475D03534B62650F551D97
201C794AA877445DBEB11C85ADF6119B05360700F8CEDE4766E3A1D7A35CDDC7
9ABF7C619E3868A39D1852DBE1EEAF5D7898C78323873AC005542B68C43C5000
CC58F675EB595F87C879694751494676465891E8A897158B481F11A171CCBBD7
29603F00210CFD7FF31FE3D273933ECC34AFBCC4108D9B76D9ECE63EA06CF939
4799092A54A749DACB82C1424E9879672C8BC084C360014C9C1B6D5D65C68AED
66CE329C3AD712C0A36BE7EF03FDF339CAA2E0336D387A693B1DFAB5D5164E31
14755A158168962C9B399F8F1DF3FF5060D7464D5071058C30C572A2BC7DEE53
84BD7614A4BEC4C84E18CF7EC81C811724463BD46CECA5FB57B0F55EAE20CC74
6AD815D1897B037C197D2456797B992C20C70B663BF99FE28C513B4E221C8E12
49779F8C0AE8517048ADDF7CDF0D698E3EFE60071C4997B7F5EF12B6CB65390C
224F13FBB99FFC034C0710F05019899689B6D3350BBA65C7CE7C2AB03D81B9A5
5F3D65E4D462DAB189006669F7390A78A1B8908A4C913B15DB8827DFF15BB9A4
A6037DDB643103B937257A7DAB025F09D53FBBC2BCB6B0BCD8D56B2B2784E498
1F6CF8470DCC892AD0CFE11578718948BABF9C142709013933E3B325C8685C61
048660562D70CC0055BA8777786CCD161049903DF61A5AF6DBFB02668AC5DE57
3D52C3FA13DBD74DE4AB848DDC5DF11DA16E7AE728A1B19B8832EFAAAD7263D8
DD78BB34C58DC2439747CC82B1937B920E8500DEF5293C01896B10A6DA71A168
4F6DE6DDB7E2910E59364B690E72D49232D229A3A43A98760A5463C794B0DAA7
9BE8E129E7F5C5AD1B7495C1BC9CD284E6B82BC7CDFE0189EDCA472BDD5A7B8E
16D0405F13475FFA748F1F456B65C6329DA22E64B46CB9AD271E681133A39732
C72F4CD00E826B2CA80249403A883CB22DE47EFE59835F21DC12BA218786576E
8C43F8279A423942A579EADBAB32006D75036518557A302BAF9183DC66E9B249
9EFD2A7F261180870825639D1A13D2FCFF3CE58F5C3A527CCEE7CD999A683FC2
E8D8E14D1017DC8428791C900E377B78459B2C96F975B5163FED61FE86A8C76B
428B3217B1B6F41854D650098C5B7DED63743F272E00F8860E60AFB1BFE83E3E
95F08F5FB761C442515ADDF084844FF1B41903827746224AE3F77A0AA06F36B9
227F74A168794F370DB576D4DB2D94332D641EA17C262612405988B58B1AD14D
60862AAB2F2AA9A9B7F03F530456D6A55B73B8B17E13CCBC9CC1FDEA4350EF9A
72F38FEA8E6F2774B9DE40B505BBA69415BF46169186702A68296C2C531F19D2
0D265FE8A6420695BC910A9D3DE172CB7A2A2959DACA9F8C687C126BBE696AA6
732DBA9C4200046ABD2F6E793C31EBF5C89965E329D5452E084FCF3575A4130B
81E97C2A9BC215A2E2A34BEB5AC2E460285C1F860C6CFDEBC07D3F1415F38123
6D5876AC8961E50EA63860BCBD47C387E396BDA1DDA80E382291931AB2334567
96F2AB712966A45666F8153875E7D52609F10EAA7620CC6B87B5719981AF8EE6
A59545B1E26FF20C75007F00EF200564FB5482E70985D09B1F80F97B5B0D1A55
372FE6709B59AC41BD4E25673D768EB5A9DF8F572F92BEA924DC028D18328821
4FF85C0CC653373F102E39529212B65E7565AC5AF0229666CA8402BD985CAB49
BB651D6FDE79EA92A7A0087105CDD011119EA28A3A8F58803E3D52DB586338B2
4E74336231E9136F61962383C65150264A443188449F300F3E8A3CB3498FB39A
2DCA1EF87A1885D1F64D5EC87EB126A88A279B73A0615F840608A17BA22DCEBC
230231DE743A60BC0E04F067A5C13D434667F08CDE1919048628CFB416C87C31
72D99DB6F9A66664C123505BF7D84597813143C60D3D1A515D52CB8732BC7181
2F7D7AC9C54D0DDCD12178ABF50BCFF51317165A026D4C49D6F39100C86650A8
1C81847C0A16ABBC8F54537D6D941A52336F854107B6333A96AD20CBD67AFCC2
8AC760007A333E41E6D0E62CDA7F4B100C6EB4ED01DFD581E9F3F68DC6F44D50
3C233895B9C8592F931E76266B15CC8303BE2A0AD1AA715ED5ACCF1639CC00A2
B6089A597FDE4442B8D52EA04CF93C1276A1B7FE79F11FB59B0CFDAE2C9D3E76
CFE803EEFA0EEC9873A424C98F8E905C9CF80FC724E5A519BBD1CB9F944DB5C2
06999107D67FF7C8989C512DA066D6DA894FBAEF47BE3700BA5638E8E3F4588E
2F1A25D33C7A05C07228F717EE2E59FD9EDDDB492B170FF5DD726A007EFC9F55
0EB8B7873A0B4CCB46C62F188B129C3E1BF0F697B1B417781E25D9E1C05323C3
16E4DEB8CD5544C587DF36A61496983727825316B1DB0D41E1729208B33E3038
B13B7657451B0392558C14F9899E19AD61D29EAF092580C78DB11D5DC82583BF
6C07F741B625E8CDCEBE0923B2E24BC02DD6D3D48852EDE6F6F9B2DBEEB09781
FA4447D55F0DF574862FCC5CE6D78C77F5043DA9CFA5851865E6AB83A0D8DEC8
7D5665CDDD7A4B34D34DABF1D16E1F39688ACDEFC3A2C03114592C60AE59CDA8
1FEB20326D890BCB681FBC8919A4CE38BE621A14D2D5CB6637BFB41FF3665904
9A3BDCF87AC964567474B874CAD7F82760CB86B9A4D84D7BC5ED696C436D16DD
C4FEBE735749FA2F74CEF6D44A976D3C984578E75880571572030D7821D23DFF
64F08FC86F8C7EFCABFF4E5AF5693CB0F428E95CCA2D86F71D3A0F3D76C74269
DDB8EDF7CBF681740A9950CD2359F4AB6FE23F1F73BB57844EB07E3B4B780E88
14BB4C46F59F2AE29EA36B7CEB5F79F102779578917CA2C083CDF146D798B483
DB5C59A8053C0947792B8A5B8FC025EAB76E8AFAB769296A7F2021405EA1BE2A
4439A9BCE456C37FD9E31F830622AFFFBA94132C9209D465E311AAEC597CADD0
2458FC1799BF544611EB72AEBD12F3DC7FD3EF37FA310A9D851F3FA65F778B9E
6784067199A4AD4FED67456F11456A9D5C7BE73CAE4DA95A610B568C6A79E212
68AD1D75459D8BD6B0E2BE33A58DFF62D4EA2D5BA0C213227C085E899F09CF76
B76174AAEE06236BDC9B5F534A375F0EF52F9195C3598343EC520096CE55BD46
51A88881FD5D5E7C030618E85CF62DF114215274E3131ACD520D3BEA6FEB2FD4
29D4ABFA5C4A7087C16A5831C60871ABE1DA74C05DEAD683EB12E94C039BFA3D
893F0923E4B950B9DC7D88DDD73DB58C65A5EECA83E9471690E23759CA9C67A3
E8B02085FFACC4837ABCB4047D15EAEFA27AF108C9898750BCF562665BA7AEDC
E19A43C5813EDD9E23821B7B1DA7DA687C8A6E59E3B0CC1474E40876858825E8
E59EDA0E39DF24C5C0E8C041269F4068153BF2E86F31570AAFD185EC1EF4F3D1
D417BB676C1359B584BD7836DCF4FBD206C60260E453526CE535AE182E8EC159
514D849337003A1CF78EAD77B0E38DD03C
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
{restore}if
%%EndFont
%%BeginFont: CMR10
%!PS-AdobeFont-1.0: CMR10 003.002
%%Title: CMR10
%Version: 003.002
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (), with Reserved Font Name CMR10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
11 dict begin
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMR10 def
/FontBBox {-40 -250 1009 750 }readonly def
/UniqueID 5000793 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR10.) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 9 /Psi put
readonly def
currentdict end
currentfile eexec
D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
E0B5622DF6FC4BF52147208D9A91EB49B03BB40DE7F8FBFB566F251942C8FFB1
1DFA50465919400C21CE4724D12E4EB47AA5F392BA927329DBCA28A78FC1DF2E
6FF27F4E4E3F8971D7BCB5F3FBF8F30C214A26E5E32E0E8CBC71BF20AE573BBB
163DD66E89F2C4E2B1A1532AE81C060146F755A1ABA3F1365FEA30B403DE7B22
76F43EDDF7CB0C5D3E3F2B9043D33654BDE23221D16CABE4D559575AC8D01281
379FC2AD33242EDDECAABC38D94B5261C48A6B54FC05B9F46FBA30A15F333400
95E6038DEA7C0D19AED2BCC2DD01C1F1B079ED3C149578EB7C3D5AA35C4E81FB
D2068DE78CBCBE639FB8CB1BDD743F207D331CD99B617B3B3C2246C5DF41B057
2EB8B66D69D464607B7D93F0EC17EF90F745A1088AD2867834F7ACE6B831378B
3FD9DCC73DBBFCF462AC3DD6BE47175FC3ED26A63AA35D0A75F2DE518274F21F
527731EB9070CB8775AC74B9B4475063EDDD8E2AAB13AF32BEABE89D8748B4BC
D4F3B21ADC2A0818963A3E903D4CF4B686FCF10121E448C23E573324494D9E62
1C603013C34EE606BC3EF5E4D3FD8C307A067C7F004F1DB41AF30E125427C8B0
A3A92AC7E84F291B30B8C76EEB1A303E41C0E2FF1EAB1F5EC0854D281438C943
0C0B85624B938BB471579F36E919217DA850EB107E2E9560672BFBEBBC4E7E62
187A14D67FF9ED03F8383C4E38288ACF4CE61470EB702EE1027A32F03B9ECEC2
59EB1C40CF93049F5601D54A66FD50957EA2BA90E644B0636151BF5AEF4D0AAC
F1368B9A1BEC7884C4EB3A56E171A4BA
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
{restore}if
%%EndFont
TeXDict begin 39158280 55380996 1900 600 600 (science-PQC.dvi)
@start /Fa 140[164 4[182 2[164 2[182 6[182 12[200 50[91
33[{TeXBase1Encoding ReEncodeFont}7 327.157 /Helvetica
rf /Fb 255[113{}1 141.968 /CMSY9 rf /Fc 240[136 15[{}1
272.578 /CMSY10 rf /Fd 230[147 23[53 1[{}2 189.29 /CMSY10
rf /Fe 194[144 61[{}1 189.29 /CMR12 rf /Ff 142[82 93
1[111 110[{}3 189.29 /CMMI12 rf /Fg 105[109 27[98 98
98 141 98 109 54 98 65 109 109 109 109 163 43 98 1[43
109 109 54 109 109 98 109 109 8[130 1[130 141 120 130
141 1[130 1[141 163 109 3[141 152 120 130 141 141 130
130 1[109 3[54 54 4[109 109 1[109 109 109 1[54 65 54
2[65 65 43 36[98 2[{TeXBase1Encoding ReEncodeFont}59
195.6 /Helvetica rf /Fh 136[116 2[116 116 2[116 1[116
1[116 2[116 116 116 116 116 116 116 116 116 38[116 116
116 116 116 116 116 116 116 116 116 116 116 46[{
TeXBase1Encoding ReEncodeFont}28 192.666 /Courier rf
/Fi 105[65 28[58 3[65 32 58 39 65 65 65 65 97 4[65 65
3[58 1[65 16[78 22[65 65 65 65 65 65 65 65 65 65 1[32
39 45[{TeXBase1Encoding ReEncodeFont}28 116.414 /Helvetica
rf /Fj 246[123 9[{}1 157.742 /CMR10 rf /Fk 134[65 2[65
72 36 65 43 1[72 72 72 108 29 1[29 29 72 72 36 72 72
65 1[72 11[93 79 86 5[108 72 6[86 93 93 2[131 9[72 3[72
72 72 36 36 46[{TeXBase1Encoding ReEncodeFont}35 129.349
/Helvetica rf /Fl 105[164 1[164 164 25[164 1[236 164
182 109 127 145 182 182 164 182 273 91 1[109 91 182 164
109 145 182 145 182 164 9[327 236 1[218 182 236 1[200
1[236 2[255 1[127 3[218 236 4[164 9[164 3[164 2[82 109
5[109 36[182 2[{TeXBase1Encoding ReEncodeFont}44 327.157
/Times-Bold rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: a4
/setpagedevice where
{ pop << /PageSize [595 842] >> setpagedevice }
{ /a4 where { pop a4 } if }
ifelse
%%EndPaperSize
end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop -550 -550 a
SDict begin [/Producer (dvips + Distiller)/Title ()/Subject ()/Creator
(LaTeX with hyperref and prosper packages)/Author ()/Keywords () /DOCINFO
pdfmark end
-550 -550 a -550 -550
a
SDict begin /product where{pop product(Distiller)search{pop pop pop
version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
grestore}if}{pop}ifelse}{pop}ifelse}if end
-550 -550 a -1110 -1665 a
SDict begin H.S end
-1110 -1665 a 0 TeXcolorgray
Black -1110 -1665 a
SDict begin H.R end
-1110 -1665 a -1110 -1665 a
SDict begin [/View [/XYZ H.V]/Dest (page.1) cvn /DEST pdfmark end
-1110
-1665 a -550 -550 a
SDict begin [ {ThisPage}<> >> /PUT pdfmark end
-550 -550 a 0 TeXcolorgray -550 5496
a
SDict begin [/PageMode /UseOutlines/Page 1/View [/Fit] /DOCVIEW pdfmark
end
-550 5496 a -550 5496 a
SDict begin [/CropBox [10 40 594 800] /PAGES pdfmark end
-550 5496 a -550 5496 a
SDict begin [ {Catalog}<>>> /PUT pdfmark end
-550
5496 a -550 5496 a
SDict begin H.S end
-550 5496 a -550 5496 a
SDict begin 12 H.A end
-550 5496
a -550 5496 a
SDict begin [/View [/XYZ H.V]/Dest (Doc-Start) cvn /DEST pdfmark end
-550 5496 a -550 5496 a
SDict begin [ {Catalog} << /PageLabels<>1<
>2<>3<>4<>5<>6<>7<>8<>9<>10<>11<>12<>13<>14<>15<>16<>]>>
>> /PUT pdfmark end
-550 5496 a 4122
5496 a
tx@Dict begin 90 Rot end
4122 5496 a 4581 4783 a @beginspecial @setspecial
tx@Dict begin STP newpath 0.5 SLW 0.5 setgray /ArrowA { moveto
} def /ArrowB { } def [ -11.38092 -17.07181 -28.45274 -17.07181 -28.45274
0.0 /Lineto /lineto load def false 0 setlinejoin Line gsave 0.5
SLW 0.5 setgray 1. .setopacityalpha 0 setlinecap stroke grestore
end
@endspecial @beginspecial @setspecial
tx@Dict begin STP newpath 0.5 SLW 0.5 setgray /ArrowA { moveto
} def /ArrowB { } def [ 330.05199 0.0 330.05199 -17.07181 312.98018
-17.07181 /Lineto /lineto load def false 0 setlinejoin Line gsave
0.5 SLW 0.5 setgray 1. .setopacityalpha 0 setlinecap stroke grestore
end
@endspecial @beginspecial
@setspecial
tx@Dict begin STP newpath 0.5 SLW 0.5 setgray /ArrowA { moveto
} def /ArrowB { } def [ -11.38092 207.70511 -28.45274 207.70511 -28.45274
190.63329 /Lineto /lineto load def false 0 setlinejoin Line gsave
0.5 SLW 0.5 setgray 1. .setopacityalpha 0 setlinecap stroke grestore
end
@endspecial @beginspecial @setspecial
tx@Dict begin STP newpath 0.5 SLW 0.5 setgray /ArrowA { moveto
} def /ArrowB { } def [ 312.98018 207.70511 330.05199 207.70511 330.05199
190.63329 /Lineto /lineto load def false 0 setlinejoin Line gsave
0.5 SLW 0.5 setgray 1. .setopacityalpha 0 setlinecap stroke grestore
end
@endspecial
4581 3160 a
SDict begin [ /Rotate 90 /PAGES pdfmark end
4581 3160 a 0 TeXcolorgray 0 0 1 TeXcolorrgb
0 TeXcolorgray 0 0 1 TeXcolorrgb 4954 2190 a Fl(P)-7
b(ost-quantum)81 b(cryptograph)-5 b(y)6852 2525 y(\226)4898
2860 y(long-term)81 b(con\002dentiality)f(and)4966 3195
y(integrity)i(f)-8 b(or)81 b(communication)p 0 TeXcolorgray
6582 3634 a Fk(T)-16 b(anja)36 b(Lange)6053 3959 y(Coding)g(Theor)t(y)f
(and)h(Cr)t(yptology)6797 4182 y(Ei/)p Fj(\011)5461 4405
y Fk(Depar)5 b(tment)36 b(of)g(Mathematics)e(and)i(Computer)g(Science)
5954 4629 y(T)-16 b(echnische)35 b(Univ)m(ersiteit)f(Eindho)n(v)m(en)
6277 4852 y(tanja@h)l(yperelliptic.org)6610 5076 y(06.11.2012)p
0 TeXcolorgray 0 TeXcolorgray 8065 5255 a Fi(P)-6 b(ost-quantum)31
b(cr)s(yptog)o(r)o(aph)m(y)64 b(\226)32 b(p)l(.)g(1)p
0 TeXcolorgray 4122 5496 a
tx@Dict begin -90 Rot end
4122 5496 a eop end
%%Page: 2 2
TeXDict begin 2 1 bop 0 TeXcolorgray -550 -550 a
SDict begin /product where{pop product(Distiller)search{pop pop pop
version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
grestore}if}{pop}ifelse}{pop}ifelse}if end
-550
-550 a -1110 -1665 a
SDict begin H.S end
-1110 -1665 a 0 TeXcolorgray 0 TeXcolorgray
-1110 -1665 a
SDict begin H.R end
-1110 -1665 a -1110 -1665 a
SDict begin [/View [/XYZ H.V]/Dest (page.2) cvn /DEST pdfmark end
-1110 -1665
a -550 -550 a
SDict begin [ {ThisPage}<> >> /PUT pdfmark end
-550 -550 a 4122 5496 a
tx@Dict begin 90 Rot end
4122 5496 a 4581
4783 a @beginspecial @setspecial
tx@Dict begin STP newpath 0.5 SLW 0.5 setgray /ArrowA { moveto
} def /ArrowB { } def [ -11.38092 -17.07181 -28.45274 -17.07181 -28.45274
0.0 /Lineto /lineto load def false 0 setlinejoin Line gsave 0.5
SLW 0.5 setgray 1. .setopacityalpha 0 setlinecap stroke grestore
end
@endspecial @beginspecial
@setspecial
tx@Dict begin STP newpath 0.5 SLW 0.5 setgray /ArrowA { moveto
} def /ArrowB { } def [ 330.05199 0.0 330.05199 -17.07181 312.98018
-17.07181 /Lineto /lineto load def false 0 setlinejoin Line gsave
0.5 SLW 0.5 setgray 1. .setopacityalpha 0 setlinecap stroke grestore
end
@endspecial @beginspecial @setspecial
tx@Dict begin STP newpath 0.5 SLW 0.5 setgray /ArrowA { moveto
} def /ArrowB { } def [ -11.38092 207.70511 -28.45274 207.70511 -28.45274
190.63329 /Lineto /lineto load def false 0 setlinejoin Line gsave
0.5 SLW 0.5 setgray 1. .setopacityalpha 0 setlinecap stroke grestore
end
@endspecial
@beginspecial @setspecial
tx@Dict begin STP newpath 0.5 SLW 0.5 setgray /ArrowA { moveto
} def /ArrowB { } def [ 312.98018 207.70511 330.05199 207.70511 330.05199
190.63329 /Lineto /lineto load def false 0 setlinejoin Line gsave
0.5 SLW 0.5 setgray 1. .setopacityalpha 0 setlinecap stroke grestore
end
@endspecial 4581 3160 a
SDict begin [ /Page 2/View [ /XYZ null null null ] /Title (Real-world use I)
/OUT pdfmark end
4581
3160 a 0 0 1 TeXcolorrgb 5785 1296 a Fl(Real-w)m(orld)81
b(use)i(I)p 0 TeXcolorgray 0 TeXcolorgray 3407 5405 a
@beginspecial 14 @llx 14 @lly 931 @urx 563 @ury 2551
@rhi @setspecial
%%BeginDocument: ../../pictures/ing-login.ps
%!PS-Adobe-3.0
%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
%%Title: ing-login.ps
%%CreationDate: Thu Oct 22 13:45:11 2009
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%Pages: 1
%%BoundingBox: 14 14 931 563
%%EndComments
%%BeginProlog
% Use own dictionary to avoid conflicts
10 dict begin
%%EndProlog
%%Page: 1 1
% Translate for offset
14.173228346456694 14.173228346456694 translate
% Translate to begin of first scanline
0 548.63999999999999 translate
915.83999999999992 -548.63999999999999 scale
% Image geometry
1272 762 8
% Transformation matrix
[ 1272 0 0 762 0 0 ]
% Strings to hold RGB-samples per scanline
/rstr 1272 string def
/gstr 1272 string def
/bstr 1272 string def
{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
true 3
%%BeginData: 311996 ASCII Bytes
colorimage
rr@TRJH^T.JH^T.JH^T.JH^T.N
rr@U'JM2R-JM2R-JM2R-JM2R-NA(;3J,~>
rr@U
!<<:S3e9>C3e9>C3e9>C3e9>C3fQ0$"TX&~>
!<=d(IXus!IXus!IXus!IXus!IZ8dW0*$M~>
!<>N=TRibeTRibeTRibeTRibeTT,TF6i_`~>
!
!AAnQ@=_j<@=_j<@=_j<@=_j<@?"[r9J:n~>
!CWT3MLgY9MLgY9MLgY9MLgY9MN*JoDFB!~>
!
!AAnQ>(Kk.>(Kk.>(Kk.>(Kk.>)c\d9J:n~>
!CWT3JUrB'JUrB'JUrB'JUrB'JW53]DFB!~>
!
!AAnQ;h7ku;h7ku;h7ku;h7ku;qk4N8+&VB8,cEe8+&VB8,?-a8+&VB8,Q9d9J:n~>
!CWT3G_(*jG_(*jG_(*jG_(*jGh[HCBC9(+BE!,UBC9(+BDQiQBC9(+BDcuTDFB!~>
!
!AAnQ9n?#i9n?#i9n?#i9n?#i:#&GD7mQKY"@,IO7mQKY!C00Q9`[aLmVDnh8,Z-_9J:n~>
!CWT3E.MtZE.MtZE.MtZE.MtZE85C5B3t"_"C>_[B3t"_!FBF:DujTXmYLsNBDlcMDFB!~>
!
!AAnQ9n?#i9n?#i9n?#i9n?#i:#&GC5jW:g5YXN1C]H`u9`RHFC]Ha!9`[p@J,~>
!CWT3EIi+\EIi+\EIi+\EIi+\ESPO6?gNXO?ZBH>M?%#]E<'A4M?%#^E<0rFJ,~>
!
!AAoo:'4R8EE@]dJPLbkJPLbkJPLbkJPLbkm7mXIltlei:-n5`!($NX!(#sg!($QY!DG.s~>
!CWUQEW^`UR!aI*JT?<^JT?<^JT?<^JT?<^m;`27m#(pQEa\6l!+>_F!+>/O!+>bG!H(;U~>
!
!AAoq:Bt6bXNeqfJldM!JPUhmJPUhmJPUhmJPUhmmnWpMltukk:I=Dc!(-TZ!(-$i!(-W[!DG.s~>
!CWUSEsI]:f'_qV[t'$NJTHB`JTHB`JTHB`JTHB`mrJJ;m#2!SF(+Eo!+GeH!+G5Q!+GhI!H(;U~>
!
!AAos:^U'#Ga#,RbFX;u:Ou>n:k;Go:k;Go:k;Go:k;I4:]NlLDZW:&6gS^k6i9a\6gS^k6iBg^
9J:n~>
!CWUUF:*/LY/8TTlclu:Lk0Z!FFeObFFeObFFeObFFeQ'F9#e:N<3R2@dK'S@f1
!
!AAos;%$uOHF^le!K$Eibpufff;>L7l;?-[`;$2dErr7OHJPgtqO\l*Hlu)qn;+0bh!(?`^!(?0l
!(?c_!DG.s~>
!CWUUFUOY7Yi"R0ket!$TppUUJTZNdU36M9oQC36aE@O_!W%*?FUOZ;s8R4as8R4as8VP1s8W(@
s8N,GG5ZR`s8@'EX5E[MpZTrkFnu(;FoVL/FT];Mrr7OlJTZNdO`^Y6m#D-WF^scu!+YqL!+YAU
!+YtM!H(;U~>
!>RCC+VYE;#_<84#bhV)s7?Tss2YKFrrCjQ#QRg&s8NB)s8NB)s6g6ns8E<'
rrBn6#ljr(#R=B0aZ'_I:93dgs8Vm#s8VHl!mUaAJI$f4JI%>C!!_dG!X8o7q_S$Iq_J3Vr!39,
q_S9Pr%nBQq_J3Vr!39+J,~>
!AAot;%6`gN2jA&_P)FBA6Y'oJPgtqJPi1>s8V^gs8U/;rr2u8rD
!CWUVFq'/C_q*`+jik*LTUN`GJTcTfJTdf3s8V_7s8U/`rr2tjrH82-rr<"As8W+Bs8VP2s8W(A
rr2t\rHA5@rcSOus0mT*MQlI8G5qUNrij8AG_G_s8.iWAGgTN
AG_Gfs87rXs8.iWAGpZPDFB!~>
!
!AAot;@R,bPEhQE\Q!U_s6!;[s8GprrrVol
?iEt's8PsuGQ6:Y;ZHdW;??dsJPq%sJPqP,!(H6o!_$!Uqf2E2qf)U)r)*M`qf2W8rc.r;qf)U)
rDEYi07X~>
!CWUVG7C%Pa2Z0UhScG:e%NM]JTlZhJTml5s8V_8s8U/as8NE!pj...QN"]"s6"V+s8I6BrrW,k
HiA6hs8R9E^]1b+GQ7^'G6.^CJTlZhJTm0!!+kMY!bHReqiLUQqiCehr-&-PqiLgWrfI-ZqiCeh
rHA9[7">~>
!
!AAot;[li586BSqYd:XSs8O$\s1;3.]`3-Ss&2krs&2krs&2kr
s,>Y,q9imN;ucms;uck!JcFL(;ucmt;ZbqXDWk%!s7oUns8Q$trsMl;o_qcfIFS&ihiRh9r;Zap
"bbS*qUpW&;[C5>ku:S\l2SPM;h7ku;l3In7dP-s7T2eREWH.9EWH.:EWAT,;ZK;`ErQ(=ErQ+8
EWAT-;ZTQFJ,~>
!CWUVGn$F;MO(!Zg"P-1cCq,*JU)flJU+#9s8W(Ds8ND5l2:;&IsH>>s8I9IZ0D5_fSocS#/0X+
ig9]Frcn^]oDIU7s8W(D"fpe`qV@G9H2mmJ[H[V`d!tn;s8O%Ts.+F\lMlP;s*8nis*8nis*8ni
s0_+hpX"EcH2mpDH2mmG`;dOMH2mpEGlm[=K'7L[s7ps?s8RBErsOG0qYb\bX60?Vh3Itbr;ZbA
"gR=jq:LZ*GmNa9bB\A[q#@CGH%C6lH)>ieB'bW]ApJ"cOT>FXOT>FYOT9"kGlVIQOoG@\OoGCW
OT9"lGl_eNJ,~>
!s7ls#s8NB)rsW1!$O@"Xp?4=BD?$F2#ljr'
#SJ3Tl7Wd3re:[a$EO32#V?#G)1`'E#_<8Y#QP(q1BIad#5^1Vs8"MOs8+SP#5e`,#5L(Qs7nGN
#5e`,"b6~>
!AAot<"1]90fhjLT;&$ILIE:1JQ.2"JQ/CDs8W'ts8P1=D-*;.l;Ua_s&;sFrn:jjfD^.s<.Ou(
@Un6os&;sJrnV$nh>dLS<-S>nAQu_FP#PE\s57`qScA!O<<)t;<:0Tf>Q!hes8Q%ts8Q%ts8Q%t
s8V"o=.TBVq,ICor`&pt$rkRQMc<[Us&;tns'"Vcs8Vmos8W*us8N,!D>mK>GQ-3*>Ijcsr`&pt
rDXDWrn:jjfD^.s<*/AbP>meHkZ<=7JQ.2"VGmOcluN4u<(Hh,!<;n:!<;q;!(Zrd!(Zj+r;ZS6
!(Zue!DG.s~>
!CWUVH4>@CFa]+LcHskY]RjI&JU2lnJU4);s8W(Es8P1*Kn.\QaEi14s*B")rl'DIoDOGjHG][%
Iuj:&s*B".rl9MLp&G&_PPr^Os8RCks8RCks8RCk
s8U>tJCOV?q0N)@rd+VE%!qFCMgB^Ls*B"hs*X$Vs8Vn@s8W+Fs8N,2LAlK(\GjEtL?JSrrd+VE
rH]*irl'DIoDOGjHA)(nNI'.Td!L=iJU2lnVKr5Tm#hE_H>!,
!.#SmC>#RH=f=pPBBs7Q^(s8Q^;#R^V2q?[-$)[IVedmF),#ljo1#ljo1#ljo1#ljp;
#RCe;rqQj"s8E<(rsT/BhYJi1s8N?1qYq**#lXf"#lO`"#l4N##ljr)#ljo)@JpH:MZ6ic#Rpb,
rWrQ(r
!AAot<=L&f+!iFMJ:rN%80&$>JQ78$JQ8IFs8W'us8P/l>3B)h-r^Ips8W+!s8N(0rDa*ds'eu.
>6"0m
!CWUVHOX[m@VKbX]"GY`LKd81JU;rpJU=/=s8W(Fs8P03H[CPJr-Nejs*K+fs+,NDZN%dgHhdVm
H[E4$s*K+fs+5TE[f?ASHh[PjH[CeQfR%uFs+,NDL]@;KHiO*bHd)MYkl6Hcs8RFms8RFms8RFm
s8RXsH\_Y!q0W/Ard4\F$[\0;k^@gXs*K+ls8@
!
!AAot<=L?!,8D.\=B/a-(^L-`JQ78$JQ8IFs8W'us8N("r`0!us&K+!s&C-l7V%s8#ans8,grs7o[ps8Q+!rr?*u<<2sorrE&t
!CWUVHjtFCC0"VjSXu[F=$no@JUE#rJUF5?s8W(Gs8W(G-[l$pI!ktoI!kqnI=-Eqs7^ngrr7Co
I"_P"I!kqnI=-Eqs8RIorql]urHs"ms8IBIIK0?DI/j3]I"2"_rRZFEs8RIos8RIos8RIos8W(G
!e(+Kq0`5Brd=bGs*P1%s/LJHs*T4ls*jlns8VqCr;ZYAs8VnBs8W+Hs8W"E!<2lq!<)nEs8W%F
#QFaOI!gVIp\fIB`rGl7Mh-8,I"?[@HiRpJPQGTICAX4qs8%r[s8/#\CA`GZCAF+ls7qlZCAiM\
DFB!~>
!a!<;mP!<;pQ!!iE.!!i?Wrr2sTrr;gO!!iH/!=/jZ~>
!AAot&JQAOHs8W(!s8W$us8W+"s8W+"+T27A<`W?&r)Qkrs&`<&
=o\M&#s8W$us8Vprs8W+"'93%lN)j!Zs&N2#s&N2#s&N2#s8?!us7o^q
s8H(!s8H%*hYq]us&N1Xs*X`Fs8VOgs8Vmqs8W+"s8W!t!rW(&q,[OqrDj1$s&`<&=TA&3&4
!CWUVIK+R#>t%=YAo3E[>;S'HJUN)tJUO;As8W(Hs8W%Gs8W+Is8W+I+TDCiI=6hLpO.Jhs*fBE
L&_1$IK'7qI=6hLs*]=ps*slns8W%Gs8VqDs8W+I'@m-_NI?6Ts*]=qs*]=qs*]=qs8@BGs7q*C
s8IHHs8RKSIe.^qrI"h%
s7H>XJUN)tJUO>B!,Lqd!c*4"qiq0]qNV'\qiq.sr-\Q\qN_'[!1!Q`qNV%rrI"]a7">~>
!
!AAosD7CB+<8=6T[0qH*^srE'%!qH*^ss&Tk9p%;Eg=9&;%=9&;%=9&;%=9&=!=9&5_P&s6j%hs7oars8Q1#s85q"kl5r(=9&=!qK;l=qfVs3r)Wkjqf_u=rc\;@qfVs3rDs"n07X~>
!CWUUILC"*4#oAd5>Q]A/jOu:JUW0!U43.BrdOnIrI4eHs*k"Js*c*cs+GiM[K"0oIe`qrIX\d+
s*fFls+GiM\,ZJWIeWl!qL8JErI4eHqL8JEs*bW7qr*$RIfKFsIfKFsIfKFsIfKHHIfKHDIfKHI
IfKHIIL;kKf`1u#I_>[-J,Oirs6kF:s7q-Ds8RQJs87~>
!
!AAos=922!r;[!,%137H:k;`"=FjSK=TAF#=TAF"=TAF$=TAF$==Jb!gh(*Nrd\*QKDsG4B&3Le
=BL4TemrCKs8Q2'Gl@)R>&';S=BPV'rE0+"qH3dtq,m[ss&f=$s&f=$s&f=$rE0+"q,m[sr`K4#
rE'&qrr;t"#cI[YL1"2/s8VOis8Vmss8W+$s8W"!#C-49F]rOEf`#"Qs8?%4J,\58AD7$5=BJht
s,C-
!CWUUIg^Qt.53A,;f-;Y;0RS@JU`6#U4<4CrdXtJrI=kIs*t(Ks*lK5rlBbUoDOSsJ&M?(KTl'.
s*oO:rkjDQo`+r@J%5L4N.R5$m=0Wcs8@HIs8%6Fs7q0Es8RTKs8RTKs8RTKs8@HIs7q0Es8INJ
s8@EIh>[HRIgFL%e=)#BU&Y/]J,fQEJ,fQKJ,fQHIg~>
!9U0Wp^8os7m!$s8NE*s8**,*i%rtn%)j)$31&'#mDlioDI6]rWrjEs6^4#$'>2CJI-l6
JI/1[!!hjI!XB#:lne\Ir!.lne\Ir
!AAor=TM>6qZ$X=;1Vl$=b0_L=o\O$=o\O#=o\O%=o\O$=TsZ:qto0+rE0>jlMg"9s8N"##+"QR
kaMPNr`KSUcLq2*`dq8qs8W%#s8Vpus8Vmts8W+%s8W+%s8W+%s8W%#s8Vmts8W($s8W%#"'Y!i
s8?(*J&q*Wr:&LUmof\jq-!ats&oC%qcO,NcLq2*`e"+ls8W"""c;"2qqR).=TZVCjSi9`j8[,M
=b0_,=f,=%9^Hs)9Nb'UG5t>7=TD.^G5t>8=TM2LJ,~>
!CWUTJI-QT0J4=k5;PoWJUrB'JUsMGs8W(Ls8W%Ks8W+Ms8W(L"h*arq:h,3JHis`rT0aQrVh?P
_=dcgU&Y)jJI8I;qYfj)PC\;bs8@NKs8%
!
!AAop=p7GH+!3"(JQdV.JQdV.rE987s7?(j!bVK(eQN#Ys8@LPJQdV.JQf3[!);g)!_limm!&M)
r)s(pm!&M)rE94q07X~>
!CWURJd#dQ1,;.0JV&H)JV&H)rIP*Ls4R7#!iZ.PeUdjVs8.A!JV&H)JV(%V!,q4l!cN[/m$Ril
r.4oem$RilrIP&f7">~>
!^c*cqFugMuTX(#m)aZnpq*u$%WD6$*FR7#OF8K#71Y%1]RdY
#lk4s1]RdZ#lt;8J,~>
!AAnQ>(Kk.>(KlG=pE)p>]%phQi:.maa.3/df5Za=osEXm=AGl>(Kk.>-;$/:@*6-:0LEZGlUV;
=o_=aGlUV<=oh;MJ,~>
!CWT3K7SZ+K7S[DK*KD]K:2<1Q2ZC?aHV=Fo)G!+K*-eDs3#tGJV/N+JV1+X!-%:n!cWd2m$[on
r.=ugm$[onrIY,g7">~>
!
!AAnQ>Cg"0>Cg#I>6U/Hr:ns.rEBGfhu*9&P1>OU3!)NMs
!)Ms-!)NPt!DG.s~>
!CWT3KRnf-KRngFKE]!Urq>'9rIb?dmf)q6SCN8ps8Ci6JV8T-JV8T-Y(Qdpm$e&rKQ6@J!-.pi
!-.@p!-.sj!H(;U~>
!ge#OF8K#71Y%1]RdY#lk4s1]RdZ#lt;8J,~>
!AAnQ>_-.2>_-.2>_-.2>_-.2>hiQa:[EB/:L$]^H2pb=>Q@RdH2pb>>QIMOJ,~>
!CWT3Kn4r/Kn4r/Kn4r/Kn4r/L"q@^EpT:tEeSQ#S,dU-K`H/[S,dU.K`Q'ZJ,~>
!je#jsSM#Qb;<#jsSM#lG#/#jsSM#lP&1#R,_~>
!AAnQ?%H:4?%H:4?%H:4?%H:4?//]d=&A=3"Ai0*=&A=3!Dlkq>le#'mX"t2=8cD*9J:n~>
!CWT3L4P)1L4P)1L4P)1L4P)1L>7LaIrk%K"ET'IIrk%K!HWbgL&ldFm[XB"J,P*&DFB!~>
!
!AAnQ?@cF6?@cF6?@cF6?@cF6?JAcd=7/lb=8lM+=7/lb=8H5'=7/lb=8ZA*9J:n~>
!CWT3LOk53LOk53LOk53LOk53LYIRaJ*q@XJ,Y3'J*q@XJ,4p#J*q@XJ,G'&DFB!~>
!
!AAnQ?@cF6?@cF6?@cF6?@cF6?B&7l9J:n~>
!CWT3Lk1A5Lk1A5Lk1A5Lk1A5LlI2kDFB!~>
!
!AAnQ?\)R8?\)R8?\)R8?\)R8?]ACn9J:n~>
!CWT3M1LM7M1LM7M1LM7M1LM7M2d>mDFB!~>
!sOY=gk#KVs+13$s+13$s+13$s+134s8UjTEs7'~>
"#$e3gk#KVs+13$s+13$s+13$s+134s8UjTPqRX~>
"%9lYgk#KVs+13$s+13$s+13$s+134s8UjTV*oh~>
"9jb>h#DrdJ`MCCJ`MCCJ`MCCJ`MCCP2uYu!HSEp~>
">?n4h#DrdJ`MCCJ`MCCJ`MCCJ`MCCP2uYu!L5
"@TuZh#DrdJ`MCCJ`MCCJ`MCCJ`MCCP2uYu!Mr27~>
"9jb>h#DrdJ`MCCJ`MCCJ`MCCJ`MCCP2uYu!HSEp~>
">?n4h#DrdJ`MCCJ`MCCJ`MCCJ`MCCP2uYu!L5
"@TuZh#DrdJ`MCCJ`MCCJ`MCCJ`MCCP2uYu!Mr27~>
"9jb>h#DrdJ`MCCJ`MCCJ`MCCJ`MCCP2uYu!HSEp~>
">?n4h#DrdJ`MCCJ`MCCJ`MCCJ`MCCP2uYu!L5
"@TuZh#DrdJ`MCCJ`MCCJ`MCCJ`MCCP2uYu!Mr27~>
"9jb>h#DrdJ`MCCJ`MCCJ`MCCJ`MCCTB-$Xp>l8/!HSEp~>
">?n4h#DrdJ`MCCJ`MCCJ`MCCJ`MCCTB-$Xp>l8/!L5
"@TuZh#DrdJ`MCCJ`MCCJ`MCCJ`MCCTB-$Xp>l8/!Mr27~>
"9jb>h#DrdJ`MCCJ`MCCJ`MCCJ`MCCT]H'WpZ2A0!HSEp~>
">?n4h#DrdJ`MCCJ`MCCJ`MCCJ`MCCT]H'WpZ2A0!L5
"@TuZh#DrdJ`MCCJ`MCCJ`MCCJ`MCCT]H'WpZ2A0!Mr27~>
"9jb>h#DrdJ`MCCJ`MCCJ`MCCJ`MCCUZDH\!9F*a!p$YmqW.\3!HSEp~>
">?n4h#DrdJ`MCCJ`MCCJ`MCCJ`MCCUZDH\!9F*a!p$YmqW.\3!L5
"@TuZh#DrdJ`MCCJ`MCCJ`MCCJ`MCCUZDH\!9F*a!p$YmqW.\3!Mr27~>
"9jb>h#H^$!!(U2!!%T2p>c2Rj5^1?alEF%e)UK/J`MCCJ`MCCJ`MCCJ`Q[grNZOdZEiQiZMW__
g];I"J,~>
">?n4h#H^$!!(U2!!%T2p>c2Rj5^1?alEF%e)UK/J`MCCJ`MCCJ`MCCJ`Q[grNZOdZEiQiZMW__
g]
"@TuZh#H^$!!(U2!!%T2p>c2Rj5^1?alEF%e)UK/J`MCCJ`MCCJ`MCCJ`Q[grNZOdZEiQiZMW__
g]=6>J,~>
"9jb>h#I'.quHcX!s%EC!9;!;ba\!9E2@jQ$=,j8m7;qr@g=7KD-&"k6?["=Sl^jSf,\"=9N*
j8]2?j8]2=jSAlGj8]2@j8]2Xj8]2Sj8]12jFQBCjFQBCjFQBCjSIs9ZMik_ZMW__g];I"J,~>
">?n4h#I'.quHcX!s%EC!9;!;ba\!9E2@jQ$=,j8kT/qr@f?QN5_""h?f(#WA45jSf,\"uF'`
j8]2?j8]2=jSAlGj8]2@j8]2Xj8]2Sj8]12jFQBCjFQBCjFQBCjSIs9ZMik_ZMW__g]
"@TuZh#I'.quHcX!s%EC!9;!;ba\!9E2@jQ$=,j8h`1qr@eq`W4]Q"dptI$q@hgjSf,\$:`V8
j8]2?j8]2=jSAlGj8]2@j8]2Xj8]2Sj8]12jFQBCjFQBCjFQBCjSIs9ZMik_ZMW__g]=6>J,~>
"9jb>h#I'.!!)fT!!)'?!!)]Q!!)rX!!)?G!okf0rT"%:%+X%l#2'c:dG_fMj5^@DjQ,6q$1HpT
!9<,?!8cc:!:AhI!9E2@!;tmX!;GOS!.j3^jFQBCjFQBCjFQCfjSuO_jSuO^jT"!9Es7'~>
">?n4h#I'.!!)fT!!)'?!!)]Q!!)rX!!)?G!oOL