%!PS-Adobe-2.0
%%Creator: dvips(k) 5.94a Copyright 2003 Radical Eye Software
%%Title: trans.dvi
%%Pages: 16
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: Times-Roman Times-BoldItalic Times-Bold Times-Italic
%%+ CMSY10 CMR10 CMMI10 CMTT8 CMTI7 CMR7 CMMI7 CMSY7 CMTI10 CMTT10 CMSY5
%%+ Helvetica Courier Courier-Oblique CMEX10 MSAM10 CMR5 CMMI5 MSBM10
%%+ CMTI8 CMSY8 CMMI8 CMSS10
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -o trans.ps trans.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2004.04.21:0928
%%BeginProcSet: texc.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/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
%%BeginProcSet: 8r.enc 0 0
% File 8r.enc as of 2002-03-12 for PSNFSS 9
%
% 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
%
% Authors: S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, W. Schmidt
%
% 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 + extra characters from Lucida + Euro.
%
% 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.
%
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
%
% (5) hyphen appears twice for compatibility with both ASCII and Windows.
%
% (6) /Euro is assigned to 128, as in Windows ANSI
%
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
/.notdef /dotaccent /fi /fl
/fraction /hungarumlaut /Lslash /lslash
/ogonek /ring /.notdef
/breve /minus /.notdef
% These are the only two remaining unencoded characters, so may as
% well include them.
/Zcaron /zcaron
% 0x10
/caron /dotlessi
% (unusual TeX characters available in, e.g., Lucida Bright)
/dotlessj /ff /ffi /ffl
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
% very contentious; it's so painful not having quoteleft and quoteright
% at 96 and 145 that we move the things normally found there down to here.
/grave /quotesingle
% 0x20 (ASCII begins)
/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 % rubout; ASCII ends
% 0x80
/Euro /.notdef /quotesinglbase /florin
/quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft
/OE /.notdef /.notdef /.notdef
% 0x90
/.notdef /.notdef /.notdef /quotedblleft
/quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright
/oe /.notdef /.notdef /Ydieresis
% 0xA0
/.notdef % nobreakspace
/exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot
/hyphen % Y&Y (also at 45); Windows' softhyphen
/registered
/macron
% 0xD0
/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: bbad153f.enc 0 0
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
%
/TeXbbad153fEncoding [
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /circlemultiply
/circledivide /circledot /circlecopyrt /openbullet /bullet
/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
/greaterequal /precedesequal /followsequal /similar /approxequal
/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
/prime /infinity /element /owner /triangle /triangleinv /negationslash
/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
/backslash /wreathproduct /radical /coproduct /nabla /integral
/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
/lessequal /greaterequal /precedesequal /followsequal /similar
/approxequal /propersubset /propersuperset /lessmuch /greatermuch
/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: f7b6d320.enc 0 0
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
% cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
% cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
% cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
%
/TeXf7b6d320Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
/period /slash /zero /one /two /three /four /five /six /seven /eight
/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: aae443f0.enc 0 0
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
%
/TeXaae443f0Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: 09fbbfac.enc 0 0
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
/TeX09fbbfacEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: 74afc74c.enc 0 0
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
%
/TeX74afc74cEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /sterling /percent
/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma
/hyphen /period /slash /zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def
%%EndProcSet
%%BeginProcSet: 0ef0afca.enc 0 0
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
% cmr5
%
/TeX0ef0afcaEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi
/dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls
/ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright
/numbersign /dollar /percent /ampersand /quoteright /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon
/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft
/bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h
/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash
/hungarumlaut /tilde /dieresis /suppress /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda
/Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup
/arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj
/grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe
/oslash /AE /OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] 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
TeXDict begin @defspecial
/DvipsToPDF { 72.27 mul Resolution div } def /PDFToDvips { 72.27 div
Resolution mul } 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
/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 systemdict
/pdfmark known not {userdict /pdfmark systemdict /cleartomark get put}
if
@fedspecial end
%%BeginFont: CMSS10
%!PS-AdobeFont-1.1: CMSS10 1.0
%%CreationDate: 1991 Aug 20 17:33:34
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSS10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMSS10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-61 -250 999 759}readonly def
/UniqueID 5000803 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9
D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858
D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723
3386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6
0AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348
44D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8
46D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13
6B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5
6DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3
16CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4
1E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED
286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872
A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477
713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C
3A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE
3AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5
034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185
9F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A
12C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA
901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FAD0F51879D468
649560A88FD4C83B4BE5E89FF3BBB99B2076482954CF405771E3CE25AB0F6BC6
EB8F1A2AB994B13C9255F8235D07B57B653255117B94C09F419CD136A6356135
80B692EA0E8C4EA833A89267C51903D4F5D2299EC0879A8297B22548AF564988
9243A3371D0DE6B842DB3C46C5E77B659B6CA44E3489FC742D797F0847A5DA39
4163A82440EAF1803BF815A6150680CFB215580962A71DD88778D373CA928DD9
A298F9C1F48A9451AFA90CCD1D2CC6023B7F31906F95145AB32997C87A70D30D
A697D29FBA68B84BD944F9C4FA368828C46763B7417384B547FD18A44DE4272B
68DDF2752815E104F597235A85B51EEB410C51A4A821D196AEA54B20EAD7E3C7
11AA42C68AC6C75AFB666ABF47FC0790A890F7273513867DB957C1ECA9D632EB
0652746C3AE15692B008AA57BCB15D1160FF892C4FA74321376AF41DE31C60C1
5C952A5BE05CF74ACA65D791D759A17EF58C72A8E979A4AE2F27908CFE308F86
889F2CE99C69C6B1796F0A88ED5E0EF010D2C068F836505EB33FA587ED600136
2311F81FF3DF8102A058E9663FD795F84030B1691DDADAE3E5903A6DB9447D34
74D236FE8408B8267A134EB4B09822718F9E2320833FC301E0483D86F08D7746
93A213F71744316C000FDF2263B67B193C953DE61D0F2D27C9180D10D39E2C21
8B9395E6357523AB30C3D0F25D07E94FDC3CA2712B8989DF5DFF85138AF0617A
F03CACDBEB218DE273A34C82CA0D5B88CD4E9FF470B7958F763822F38BDEFB8B
E05AF43541B44B13C03BA754C109066C64619C25B1CF3561992B2B47E997F357
23703C08295F1DF4AED68AF8EB0AE38E57C230A7A5F58FF83F7A77D89FBCB231
AA1A1E488DC50CE079BB04BEDBBD4A8D1DAA686DAA39B38C541DCFE7D3E3F6B8
D15AB7694483E0DE599E2B9FF6BF62564978012CF9420A8E8E8FBB213AA6BB7B
6949D07A0DC229DCD7A7E6A6291A09F8E21EA90DD856C9E8680E6E4CFE6E46DC
7DE9BBD2E3E50E29557B1F8879E61BB39DB5E88FB561E3E352CBA9ADF5985882
01A2EE6AE1F7B4741DFC49049EB7346F8EDE7B333C436EED719134F3C303DAA5
2E5876CFE818A473A84F1C8D3DCAC159B0FAFFCABCB707CF9697DC6F87145679
F7469E30A25FF5D93CC9596D4F1A096204419A930FC97EEF9B52D4613C9C4F71
E6B2B27C7497E31009C13849481ACB51B107B433A5AC525D2538C457490C84AD
06AA93CD30C9DA862FC5C52624F32F6C9B00EDEC4AB34E6BCE1008B6B9707183
F78BE8586C9C30E5EF477FEFF502
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI8
%!PS-AdobeFont-1.1: CMMI8 1.100
%%CreationDate: 1996 Jul 23 07:53:54
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-24 -250 1110 750}readonly def
/UniqueID 5087383 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC
4391C9DF440285B8FC159D0E98D4258FC57892DDF753642CD526A96ACEDA4120
788F22B1D09F149794E66DD1AC2C2B3BC6FEC59D626F427CD5AE9C54C7F78F62
C36F49B3C2E5E62AFB56DCEE87445A12A942C14AE618D1FE1B11A9CF9FAA1F32
617B598CE5058715EF3051E228F72F651040AD99A741F247C68007E68C84E9D1
D0BF99AA5D777D88A7D3CED2EA67F4AE61E8BC0495E7DA382E82DDB2B009DD63
532C74E3BE5EC555A014BCBB6AB31B8286D7712E0E926F8696830672B8214E9B
5D0740C16ADF0AFD47C4938F373575C6CA91E46D88DE24E682DEC44B57EA8AF8
4E57D45646073250D82C4B50CBBB0B369932618301F3D4186277103B53B3C9E6
DB42D6B30115F67B9D078220D5752644930643BDF9FACF684EBE13E39B65055E
B1BD054C324962025EC79E1D155936FE32D9F2224353F2A46C3558EF216F6BB2
A304BAF752BEEC36C4440B556AEFECF454BA7CBBA7537BCB10EBC21047333A89
8936419D857CD9F59EBA20B0A3D9BA4A0D3395336B4CDA4BA6451B6E4D1370FA
D9BDABB7F271BC1C6C48D9DF1E5A6FAE788F5609DE3C48D47A67097C547D9817
AD3A7CCE2B771843D69F860DA4059A71494281C0AD8D4BAB3F67BB6739723C04
AE05F9E35B2B2CB9C7874C114F57A185C8563C0DCCA93F8096384D71A2994748
A3C7C8B8AF54961A8838AD279441D9A5EB6C1FE26C98BD025F353124DA68A827
AE2AF8D25CA48031C242AA433EEEBB8ABA4B96821786C38BACB5F58C3D5DA011
85B385124980D8CEA6D6361A74828648588D542A9F3D9B9982A646C011AC0A86
EC7812F2DFEEDCDE8C9DEAAE52613ACB69C48194BE56D8AA8DD77AA160740332
D9615A7BB79619E6196A51DCD9916FDBECE7A3FE92EC9235453ACEA49E8131A6
6AC141A5A84912B4AB4C8BF17B6967982CE4EA558964012E9D70E5210E22E1B1
4CC95ADEC34177F13F193CB9B97A20A90E3F7A3DF4F76F83C6BE6C6ACD072741
EAB31030F8F625F9D04F07D88DD65CB3DCA680B4F8ABDF17E4CE9F7F7F186235
6E370661BCE79697869390F12B47332A37A31533F70EE3F8877F2DE228498922
9B5313A6DB1A58E055B5615095C916E41ADBFF849A4FB69720840C0DCE44AB59
CDA3F19E3D95D1B72E835893D8744B06516E97A735CFE767EA158A82DCEF4315
438B89E1E0D720115D9D605182F50CABFE8BDEC1FAA26BD9AF6D84B781F3A062
4DA57D4EB3B08C99C823A116DAE2E5239B59067874E1F7A1418A661097473F31
25E42CFE06552741DE59A776787FC4372073099205BCE1F10C0580F01E5A448E
85258C59F58CBF5448441C2E796B158E652E0115AFB23D8FC513EE3A35ECE752
A202715D536D953AFEB0BAAB990AFA384080873527173E7341A12CA00869198C
9BE8F134DFE6BED297467B666F4D549CDF66F694C24E6545A405A44BD956ADF2
D337826DF8610491FDC16F3CDA019ADDFA26132A5C688487A22856EDDA2E115A
326CC31E3DBA10CE75E70A826BF175A731D16011674F0F804BF0B69459DC0866
50FD2F27244704B6EC6C944971D13CFC3407E35AE30F7C9B8E171B87AD6F7170
644114CDD813B938D609413896D71DC535401709F81D9F013AC2430530913517
8C2419C4AF96C423A2993869F1DE7D3818808D251EA5028FFBE6E6E33A7E8273
232E01B722A30BC4E6CCB1CFD3E5B9AE456A11B5FE4F74DBDFA9F667D0C716A4
4D66085C8FD4379AFB29CD0513B46603D942D7C9CA30E0C1CF0E40BC661CCCD3
E3D104A59E94BCAEBFB9DFE6CC7F2F46855EE4676771881F322C3960E8F62FC4
4AB379C83088B89B3F024232517A735A43619ACD9CA874D9C878C5F580A0BB69
FF1EC9AD1C6585BA1A319A193CF5395B41AD83AF113030A2BDFD09B5F578D42F
5E7CEEBFD0ED36AD40704D4529BF08B8B9521C8F0C7ED26B5D41AA2C6574FA42
89E90609BC516DBE55E50ECB6770FDC9579C3992D14412E9AF7322BDB06CC409
7ECDAFEBE7C73844F9688CDEB772879305DBB3754E6028BFEA43BED5C4DA427D
AD251780AA43BBD013D7C0078CA95C4D407C882868D4B509288C4CC7A92B6831
517F9CCCB25D6A1FECD180C125BAAF23D99A6B475DBE4E80AF15D8B47928E303
8B5DDFB7B1CC4B7537B9C6F9C76C2948C31FB6EB61D582408564CEA95E6C9CAC
9DC1CE0BA102E851D59AD16739A2C66C64A02774908F24A854D42A7B406682F6
D3284607530110BAE0242D3AB665CB0C022D3BE2DE8B869D45D88D7004850AFA
4A229E8F5F0EC876A00906D8E2C9E381304C45CA123B5107848DD2FB4351DD8E
E2126219623DD3F89BE7C44B7A0215529CBF1F2FBEBB10AEEE49A85C42C2DECE
3ABCBEDA3F053BD4C36FEF19AFA97364B9C629E6BE41CB58E124B5562FAF4478
8BBA1C52388293BAE98BE083039B31ACE89E5FB0C9C0D98F6E9171DB0FCB2EC0
276116A7F3E5F6D512C559C9B953A5EAC7E7FDBC9315DF7A165F0D097288CA8B
82E7432C6123F8F65CEE27BBD261D07BF688BDA19D339D69FB92A58DE8749EB3
A111B10D1DFDF60E53CB11630A73E53F42C135C77AE69D48772EEABA72955478
689206EB363BDD1090FE7C0C5B9119E4AFF8B915C254C06526719790C614894F
F55FB8632D684CDA58F613F875FDAB3CF6FCC7AAE4CC59ED40A69E75E015D86C
60BF540D08D43DB9EBC2F09B186CE26F06710BFAE631CD1DDB8FD451818038A2
FF27C90B3D412562F97627FB512F9DA4164767B4CBC0
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY8
%!PS-AdobeFont-1.1: CMSY8 1.0
%%CreationDate: 1991 Aug 15 07:22:10
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-30 -955 1185 779}readonly def
/UniqueID 5000818 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFBB2A7C1B5D8E7E8AA0
5B10EA43D6A8ED61AF5B23D49920D8F79DAB6A59062134D84AC0100187A6CD1F
80F5DDD9D222ACB1C23326A7656A635C4A241CCD32CBFDF8363206B8AA36E107
1477F5496111E055C7491002AFF272E46ECC46422F0380D093284870022523FB
DA1716CC4F2E2CCAD5F173FCBE6EDDB874AD255CD5E5C0F86214393FCB5F5C20
9C3C2BB5886E36FC3CCC21483C3AC193485A46E9D22BD7201894E4D45ADD9BF1
CC5CF6A5010B5654AC0BE0DA903DB563B13840BA3015F72E51E3BC80156388BA
F83C7D393392BCBC227771CDCB976E93302531886DDA73EBC9178917EFD0C20B
133F1E59AE5308E75E68BE975BF1C54A80887D438C0A63EEEBF17B3E0B3CE253
C13E178B35342C917DCDE137A0CBE286353C11B09FA7B6E3340F7EA251AB7E28
75EBCD659223180D631B23E3AA88B09F0CEF2F89091B6971B7C5C00BF32DC9E7
4354927D3735EF1429638B7034CB6B2E3BEA5D3B123923986A5ED9115E20483E
AE481042A5DFC119DCC5A65103C71AE52153B436E23B3ED662E7C2418EDA6238
03A2DE9EC4252AA3200D02AF4E45AADF6FCC41E54E31BB5F55F76FF25F546363
999A69EB9605DD1D7AFBC355A362A910C87361F47D898191826F2D367DADAE44
6F735379600B8031DA1A8758918C3475ACF24DA928A98A5E2431253AA31CE9A0
365013C0B70E3640D4DA8B
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTI8
%!PS-AdobeFont-1.1: CMTI8 1.0
%%CreationDate: 1991 Aug 18 21:07:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-35 -250 1190 750}readonly def
/UniqueID 5000826 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
E8929A49D237DA4A9D5E114B520BE6C23EC02C6FBC32C57450A1C1CD1D33DFA2
763F1A206CDFA517FEB7EF85BE0D71768FB88ECFC7C1D4E49898617C560A57EE
224540181AD2A58574EF22B6FBB194937902B268DE00E730C22ABE24F0E9FB1D
DAE63CCC44CDE859667113DED03819953B29DCF991B14DCD6AC9B432C05DD20A
32A878C6E4BB9C126E2CFFC4A1A7C8A5A4094FC869F3600F347100ED0930B148
8D0DBAF952DB7917E1B2FA815FCCCECE7AABA6F363298707CE3FD9CB072A3407
525BA8E81C68348C933BE0BC656A69AEFBA9FF6880F7AAC3F0BABCBCC9E24385
BEB6EE5E8F2AFDFEA824B86752C40ECCE8C6B9244CE085BC09AC12CA1B16B25D
898794C28C2016309BAC80C5C8F9162AE844DB577724CEE5CE2E5DAAD5A5F1C4
692CD530441451E827F6B00B284E4957C4D76C99BC20B7680376F8581D7DF5AA
B9567B668ED074B0C044953585BB2D8E04A955D961486132283A0443F818F3AC
8834CFCB6AFBDA29C65ADAAD33F245CC0D33E5737843C17A983BC150B4673157
4F93B71564B0A9A378C0F378BEE9DB4CC1C80C74DF1F64D0E99426438AD1DE22
5252EFC530F94D67E4527855E72A1892636D4BC441423F72FA8342C2773C91A2
7571CDE0A9CA47FA0B70445BCE80118B1EFB5DABC7C39A42F1AC2F82354F10F1
DC51CC9D1748FF95510337A80D6D093F10227C0BEBB0C6FBFBBFDF46C48B8AFE
D82FABFFA94E9C593E4FCD76C576058EB7DA8B8420457E1B0695DDCAE5108586
6D957BEA1B60BA5FC2942EA3F11F3381926F6B
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: MSBM10
%!PS-AdobeFont-1.1: MSBM10 2.1
%%CreationDate: 1993 Sep 17 11:10:37
% Math Symbol fonts were designed by the American Mathematical Society.
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (2.1) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (MSBM10) readonly def
/FamilyName (Euler) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /MSBM10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 67 /C put
readonly def
/FontBBox{-55 -420 2343 920}readonly def
/UniqueID 5031982 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6A66A4000A13D5F68BFF326D
1D432B0D064B56C598F4338C319309181D78E1629A31ECA5DD8536379B03C383
D10F04E2C2822D3E73F25B81C424627D3D9A158EAB554233A25D3C6849ABA86F
1F25C1667CB57D2E79B7803083CB7CC0616467F68450D9A3FEAB534EB9721003
DBFEEFD050F3AC3492F5C74162A9A531ECEC0F47610B4940E946D21CAA771D30
A6C27ECBA11708CC46C62396BF9D1990D579D0C394899D24FE7A4382EA18E7E1
160E7283AF5BE17254790628E79FCC206F28B5566075B3A5697D5209062544FF
D85FD89D6F43D6588B242AB2666B5D2861CD38A8CE676503EDFAE84D12A71E77
8405E468FE391F4F3F50D2C57ED55512036B0DB8E76A7EF413ED08673E56DE2C
16A3B65CD478433C0D2F9FEC4E662D54DAA43CFA6957D2A9AF8979BE06F70B68
ED4C8C493D6DAC4971A3F1D010A7726D084EC1074FECD7D12D72AE16C26194AF
21AF5774D9B860EEE8608D34F150092F09C19959BAA670022B9A9F263CD391E3
74DD1D1B4CD4D75273CAA4E37F68C631723E08FA35AD34C0AFB4621AE6689861
854D16CE1C375FD159A337E221A6FF1CFFB5693A0623E7EBB58C2969F590D081
AD92DD9E5322E26D6A15023664AC73A355998BCC48ADD0E7A4BC79790519606F
A1FEF6075033BCD422EE8233B83D1E7C20043280D531223D5AD4D5B41669F884
95CE4D6DDE819B588742B930C579EDF743F2C74C95F717FAA6154FADC3FE2975
F59CFB1C1A29059487E75C48505BAEAD7145667D4E18E46E610C868A257173ED
0D30EAA4C090854DD8378E92D0A376226EA7DA63798F247BAC770FE26D70E72F
90CCFAADF118304646955B0310C65F6CA51BEEEF87AFFE294D08C44345EF7092
B39563510C2678C576EDAA0CBB0B77A12C6610B36D33746F8AC06E3096A50731
B85CC5117D1480B945ECD67FEE06F47A5D1B321C981AD50C7FE02D6B5113A634
2742217F5E675374241B32B9B79CED439917129E45EF2EC88FC427CB5702EA99
C90A3C8EDE42CD686B702307B1DD2327053B2451FA4447252FEA49CC47DAE2E2
DE66090B7629C53C093DBA98B2BB7E7C0443D452AC4CC257B97BACB8DA25AC88
39E351413FCCFBF2233C55F209C3EA3047799886822CA63BF65A86FF54C2FFE1
50FBF9DD9D96570D0029DC4BE87EEF6B724AF0944BED5C16B3E071203C77BBE8
2143371A184DCCD760DB6F83FC4CBFA8CC8D224187E425E15CEE0939DE4C61B6
7683D56D397285C8E4B96DCEAD7E4B3B864FCCD78DFF7ACD584B978A072A49EC
8B9679354CD5139B4144BD847F211FF1E485BD56538F0F6DF962E9FE30B6F6F1
25C7090FA60378D444FF19F9DCA163C96857961B1A8A38E2D5B880B30C7DB930
CFAC
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI5
%!PS-AdobeFont-1.1: CMMI5 1.100
%%CreationDate: 1996 Aug 02 08:21:10
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI5 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{37 -250 1349 750}readonly def
/UniqueID 5087380 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA06DA87FC7163A5A2A756A598FAB07633
89DE8BB201D5DB4627484A80A431B6AFDBBBF23D4157D4AFE17E6B1C853DD417
25F84CD55402AB88AB7EEFDEDBF2C2C731BD25567C53B474CCF739188A930039
098A197F9C4BE7594D79442B2C8A67447DE44698321145D7689B91EF235EA80E
B600AA8E238064F154284096C4C2554EFE8DDF13AFF8D3CE30E0999375C0FEE6
F992DEA5FC3897E2CC8B7A90238E61E41622DE80F438DD994C73275CC52249D9
F6686F87F394FB7BB668138B210BEC9E46415A1B58C990B81E7D7DD301143517
4C2A259D2A0A1E200F8101469C10D7D537B0D4D39296A9AB3F132DA9A3B459B0
F850E2B3A03BDCB35AEF82285D19C38F474FB414F8EC971B994D1C7DD753B271
2B71549DF497C665DF0F266988209D9EB616E4D9BA229FF984E7A886DB01FD21
48ED2E4859FD6416C2CE52537464EA884C8C9C2D1083E2B83BE4B766474C23B6
6E8EC5003200AB10514BB44D14CA700416AB6B2683E80862E7D5B49A05526A32
554BB23AB8B0824BBA198E3825CE82380CC0FECF46651E3E5D77F09465E73164
20342822F29572BC7F73F2C3BF95ED3BB6FDEADC20C6AC866C4F2C679594D7E8
8D944704A3C5D771DC39503BECAB89F34D8CDB8FDB91AFE21F3F0260D05E90C5
73E2C13DFA022C4522E5918EE25038A0498FBB530DA33B0AE238B1C6ED03FC04
2BFED8236E07820C5BAB411EAE1B31D93A2FA7C374B1725FEC359ABCB88E2C89
214529A263D795AACB0B95A3AB2F4E08EF350C282CE521716DBB06E5B8291B3F
5D4ACA230FA192F64BC902A4C8842C0F916F92FBD002ADD408BF0401D0284FBB
F05D4C6DB631420747CC902C5E1617E6573612FB26C8378DF41FFB5048D3CF06
4893DBA48EF4B043D760F60C75712169D16C83EE020C45369E443E853E1809DD
F395B812067D6FDBD26111B34F42C21036AF952D0D767FD17F6959D9FDD46005
D64FFF54772B50BB9B173AE79702981F58F9F235C591F476A31852174DF0619C
A470359153DC32610E782B204E7945515464DACE9099B81EEECC7EBD4B5126AF
C3FD9DDFB329AF1C95C41FA4A5F6958869509A23BD7210386329771FA46FF926
0E54AC35106253EE140449425A8670E1F92B178A02A58EB57540F4BD8110E548
BB584EA6D625C5F5FE0124A98E49915F1A1B95D2125874360EED1C4379FEF3C6
90E5780C20309F11F2F23FAD635C44BA030B39EFF083A3ECCDD2641DCC67E900
CFE9B1E3FA03479C9040349B7C63F00CFBB20903E769496F06888783C7646072
26539DBD05983438EFF9D85B2030C47054F7DF0FA2074CDACB77EDEE187EF946
3094B2CD20E4F9E659C7F57010082E6D359E4354E2515193BEDDC270204A4071
C9BA5879EF2C6296317F7B038B6686F3E1A9395EF9190A42231086C682905E53
3837D1911971A5DE1C08684CF6D86B179F98D8F02F26983C7AB03CE25037350A
C6C6DFA538ED30816C8EEF0CA2A48518B9A0DFA732DA8D6D3C566965A4A900E3
DAD82027299610BBE7E5B4B79CB1DF52ACF3C8FB5D14A68748ECFE43D3D68CDC
86FAD62E8E81E78CBAA0B6F909EAA2D3258AF2C88F371EAD9812C0FDC471B4B0
D8DCDB3F9165F890979A62C52893B0256299945E15BA9154C86930ACFFD50339
DFB6A3A7C703AFC8DDDD90F3240BE2C61DC252B0324B7DE3AC6576F28B6C3937
92E8E86C4721E8803B4BD14BE68360D56FC5ABF30FB108C7F403558E3106BA27
DF9994BFAFE63C8D4C02B1F542392414C9652F10281B8FA04EFF956DC6F90CAE
44120D40FA1D52846929DFF63FA3A6E51DDA3099535982B84BC8C7D1245CEDFC
AE441DC64A1F1FD9CCF79D3F15FF79D7322A
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR5
%!PS-AdobeFont-1.1: CMR5 1.00B
%%CreationDate: 1992 Feb 19 19:55:02
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR5 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-341 -250 1304 965}readonly def
/UniqueID 5000788 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA1F9B0FF4CFF25B8E64D0747A3
7CAD14E0DBA3E3CA95F10F24B7D5D75451845F1FB7221D7794A860756CFBB3E7
704A52A22448C34812C3DBEDD41892577AABA7D555E9298C1A0F7DA638078167
F56E29672683C51CF1C003764A8E7AD9D8ADE77B4983F56FE2D12723AAD8BF36
682CFBB71B1D12210144D39DD841A971F71DB82AC6CD815987CDCF29ABC3CC96
5EEBD5D661F452C6E0C74F9ED8D0C5B3755551A172E0FE31EA02344176E32666
14B6853A1C303A5E818C2E455A6CF8FC9A66DC6E279101D61C523BD9DB8EB82F
EAF4D7FDF6372383C0794C4568D079648689A199D4B65BA646CF95B7647E4BEC
83856C27A8EF177B3A686EDA6354FE9573E123C12EC4BA56A7E8BFB8F9B75147
9DD79A743968F36F7D0D479FA610F0816E6267E5CE327686A5485AB72201525C
FB3B7CA10E1BF26E44C24E1696CB089CB0055BD692C89B237CF269F77A31DC81
0F4B75C8400ABCFDCEC6443CD0E81871CD71AA3064ABDE882C4C52322C27FA8B
41C689F827FB0F8AAF8022CF3C1F41C0B45601190C1328831857CBF9B1E7D1AA
246117E56D6B7938488055F4E63E2A1C8D57C17D213729C68349FEC2C3466F41
171E00413D39DF1F67BC15912F30775AFDF7FB3312587E20A68CF77AD3906040
842D63C45E19278622DD228C18ABDD024DD9613CDC0B109095DB0ADC3A3C0CB5
AB597D490189EA81239E39202CBC7A829EB9B313A8F962F7879D374ADF529BD0
5533EF977142F647AD2F5975BA7E340419116099B19ACCCC37C55124CA6C6A2C
D961E1362D29A5F4C3393CEA88D53E01D0FDAE7050612947AD1B04F42B0F3B0C
4ECD493606D6321E7773557228E0C71A0C5EEB809E9853FCD689BFE16A61E8BF
D7E8683252EAE940B67546EF86DAD7CB9D786603060FDA494D3297F3F70864DD
1C37DA22110220A988706B11409E2F475F486C749DDCF8199C25965925D091D1
819EB866D2CE64D29464F7A6045778F1740A06610F1DD94F2A4EE817CAFAF919
8D241C7C3A7A4BE1016C9A8BA70ED76B436646786E4CE058A6B056B9BF766110
41EE4F93833911E1EAE9B21DF6925E77E2746E2FA82F76494E50D61E33B160DA
780549CEF58DE177E36F5858137038EEBBE70A3A26B51508291B3049E2D392CF
3E
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: MSAM10
%!PS-AdobeFont-1.1: MSAM10 2.1
%%CreationDate: 1993 Sep 17 09:05:00
% Math Symbol fonts were designed by the American Mathematical Society.
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (2.1) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (MSAM10) readonly def
/FamilyName (Euler) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /MSAM10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 32 /squiggleright put
readonly def
/FontBBox{8 -463 1331 1003}readonly def
/UniqueID 5031981 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1C87678CE98C24B934A76220
4DD9B2FF3A49786028E35DDE10AD2C926BD30AD47015FFE9469DE1F793D1C53A
C8812CBCD402444EAEA7A50EC5FD93D6A04C2783B50EA48059E3E7407537CB8D
4C206846EF0764C05289733920E2399E58AD8F137C229F3CE3E34D2D1EAB2D53
20D44EFAC8EFA4D14A2EFE389D952527F98D0E49BD5BD2C8D58FF9CB9C78D974
75C2AB5467D73D2B5E277A3FDC35909938A9DF0EB91BD9159D3437BE22EE4544
3429AC8E2BFBE34AE54D3BA3AD04BDF3F4F43A2B43992DF88678681B3AB32CFD
A23E2C98D1AF00AB206AC95B78BBE6316F7A0AB6BD3236C28C76288B3C25D1EB
E9ABB3576C5EC15A71D26177F5883E9B48293D59015615E2EEAF2E9BA04151ED
5497B9A1C41CBA44BAFF13EA218F5EAC11952EE336AD1DBE6CE92F002EAA3B3D
3BE4C3792F3405763C4BD93EFC3B4FC34193439561841BA989DD8D9F9AEE7A7B
24AEB4654B35023C9720B8F31AA9452E29753FB7915CB29977E725611E37C0B7
784BCC26FACF8A7A0EB1E54290D27FFE52B2D87FAD080AD15EE1984C37E0EB30
122C3012D3A16B09C28903D138352AB5462674B6CFB63F1371768D094DDF288C
36FB9B58443F872D61F2CD8CED42FE0EFF3D7E9952A172BB1AFECB60BF79F2B6
04265FDE4F78BC9FD619AA733CD0412F1D9A7C13B271BF827DCBDC8ABAE24FF0
74D3C220621D7FF0EFE62D835A221D0A7C139E2E6681FC2BBA58FA3B80D416EC
3854C63BA040A4262B458340DAA18AA6AEA3BBAC61615CB85982B18664D3D3AF
340C65B969071CF2D0CABEB80E04623D0526F862ECA8280EEE236C535F70561A
854181132E677674AD5E14C6636F57541D3C821F0776D2CB9B8526D4B826791A
0B179B387D47B0811BB2C543C33C8D2E85C0963D01F865C6CAF0142A9A2579CD
305FDB83EE4360D6F14FB45F36149F144EDD40F5AD478F2A40A1B0350D02F91A
37C7B0C40EF70EFBAD0C322298C4CF581F1F753F7BEE26B56AB00363E62BA6C3
351EEA00CDE1365BC14698AF4B86193692A9AAB635D6B69B56907F1811021C80
EF24551295EBF4200B50DFAD78089297DA0A3884560E5C026D32A689B70EE227
E06A3F1BB2531E85D1F23E5F91DFFD7E30A94906147DFE3FA8C788274F33B058
E6FF0A3164B000CAAD8EAC5C25EF89B15F5CB1951741A0708953E8C806E7FB7B
6A53147B57BC529C9100D4E207FF508116F90429577F5F7C8E966BE6148C0389
56FDC687BD74BE3DB8B61BDC732603AA0C9CC93CBF48D29D1026BF287A44967D
6B8AC95404C3F61C77C1B892730F2CF825708D99A19086F6B8B6BD2BA84AB231
3A82B074EC6D65ED022C8D3621C9986E8015A00BDEF51970F89FB2B6
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMEX10
%!PS-AdobeFont-1.1: CMEX10 1.00
%%CreationDate: 1992 Jul 23 21:22:48
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMEX10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMEX10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /parenleftbig put
dup 1 /parenrightbig put
dup 2 /bracketleftbig put
dup 3 /bracketrightbig put
dup 40 /braceleftBigg put
dup 56 /bracelefttp put
dup 58 /braceleftbt put
dup 60 /braceleftmid put
dup 62 /braceex put
dup 83 /uniontext put
dup 98 /hatwide put
dup 104 /bracketleftBig put
dup 105 /bracketrightBig put
readonly def
/FontBBox{-24 -2960 1454 772}readonly def
/UniqueID 5000774 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910
DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8
8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987
FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422
BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52
EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8
DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1
EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C
6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281
E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350
E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38
4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5
8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023
8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2
FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A
EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387
680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35
5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664
3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666
DD4DD1C1CBB743F97BC0CAD53999F81F9D9F6AF828AF9D5526FA357CC4A3E5CC
DD85EE5CFCAFB1EC4AD830A00BCBCF462A60B4EE6CBBA7A7795F83CBA0048CF4
6AD51B2007824FBA6518EFB9E4DA8D69B9BC3A63693FCF86904B5A72FA41260F
2F3A305E35313FB6FB15CA58724ACB51ADB2F421849CF5E10DAD83A05475A912
27C2D22DE72E75214CE9FD73160A3A1D4942C0F2710C28DEEDB53DC3D176A9AC
7D2EA2A4C2ADD38ACF0B8B84D9CA54C30DDCA5934B940EB9B4A5275BDE88FBF2
E43CDB2ADB8B2B373133CF9C67BE5388DD9FF92314DD84017E7D96AE41848F89
55546100E86C198B1C72295552196735AFB5318C32108E8E9AAAB5C9B6EDF333
E0C04BC23DFC94619181D05A0F79028B6E474054B278546636887FA6FB738BFB
A0A180110A7B23E73689EFE095D4A51B99022A154CF28AB49B81A9A85198E5E5
0DDDCEFAD9B54586FA9C516CB7B711DC643B9BA501983570A85E5EB040A20F13
5FDDC3E1306B1B21D990B29ADA9DEAA7CB69EC1198E495208CD54AA13CFCBBEA
1D8659D8ED7ECC45C3254C804E0A71BF9F85DBFB547E41A15115FF48D9CBD9B6
5C51DB2923380A3498F187D01517B82FCEB0E95B31E7198E6608D989D28D1827
A85BA4333D3244EB774E9272A50C8FF0986AF0F2A76FDC7F9CCBCEA437FCD2F5
DD92004356D6264F4463437301FF6D362739BFB0D33E27A0DFC3ED535A8E76D6
5D68DEE8D5A4CCE46FC5E794E0FE7E1ABE615DF603267ADC78E905DB2184DFF8
3B6A2F18843931704F508DC59C69714F4D140E9DAF80139E16EED9C9ADB0BBC8
365E942D52218E5C83EF7EF359747C1CB67CCFF6728955BF8F269A64D9531655
9782DFC3707AF76E80CD0BE68DF3B97C7AF3446E1DDDEA759DCCF3231D4917F8
8BB7A3C16E85E80EA7CC8A5892E9A3B16DA00A02FF2980C53BD7B99BCB3C4FAE
18751682F043D0D6256254873F22C4228237C083219C535C29FBA78FE194462B
EB32EFB4DDE55631A83001E8B52E8E45A1633ED58EE755C7B76F7D1A968B32BB
A3CBFD3C62DA5988B8F48FD8A2902683E36AFDDB61EE4AC0ABE0CC858A036CA7
F2CB9AF8069E47B0CE6DFF43E508211247A9D6A094582280911F9D1A39810716
42DE42D47B5931A2EBA83B17D31FDD5871FF6D3CD3172BEBB4887FB6DBD72650
61728777E8C8AC808E59950A13DBBD8050E23DA18585D279F98FF063CD676800
A9F5AECF1114EFF91CBF2723B2F78F777F42B9B69320DB06C578C8F8BAD37A27
F351CEABC5FA30E8B68D80400D244EE578764895E717C52A32E5FD248D990D7F
C497C79E3922FBDC473E01FA1201C6D307DBECABE73EEBA9C160FAFF1856C135
D7DFE8FFDB78883C5EAB6B92BBA4FBB34993A149A507D9ECECFF7759BE9CB791
62035A4D0CA5306988B65E4A48D99C9AFA841E26034B3991147D394F2DC26929
9344EB3236E4268A6C4A7D6FF5647C983C01F9ACF05DDA6F77B4F5C8A3B6D2CF
568BC4B29A10D78E0BBA01CF29D1D03595A4730A7E792FCF22F0DB27E9F71845
CB6E6E85E0B5B30F196821B06D9EE10B69A65C74D3DC943A2D44D7D99735F717
9F9B7545F6DBC3F663306DADE124C7E48FB4A0791CFE3FC8A30D616AB46BFABA
EC82509176FBAE5E4A0D94E6CE3049C6D67F25EBA40171C80AB78F9A9FB97192
AB3464540BF2682CD9AC53231DAC73CEB42C8F2349DC8B7F8C8115AA4421D50A
AE5DB336A57AF58946A2EFE671079A2C02E6C831D4B3F38DAF38B5D8273B4EFB
9DCD30428CE47E755BB86C71A6FC375F771A2F44AF431843D70BEC8A56005840
747B033A331C81A4ADFDB5EEAF467F190C62A15D852F2C9362292C93A729CF36
212EC7ED6A8CC7EA988B8725C723A840BEBBA0A3C50440E8C67B0AE0C2B1160F
56F8E27D2BA9F19955717D6205FA476648C337EFF6B59D2F5D94EAA5CC0BB186
9B74303C77F6E525B37C770364E839CB33647214F3193D053D07506611C7C6F6
48202577AC346916953502DBB14B52434F63DA1C4C85D054C9A4C7FED374CAC5
2493C5B47859AA58AC1E503F58397A9500477C454ADDAED58D943ABEE28B9394
9EB87AEB665A9D55EEBE3CD4EA50C791E6AB8105150EFFDA85C514B1610C62FE
DC39A48F21746C47858E8944FF79732FB70D96426DF30C923D6324ABD7EB0112
B57E08822F22ED48D0DC4D9416B7C4204F862AF49D9AC479495A3723F88E2EE2
A7CBDB61EB8BFF50DFEF8677AA593692C94EAD5021B35AF59C99F33584144449
084A1E0E4976FF349122218E0E3AA62F5143A325231C4D2CF86C4046B3D5DFDD
0BC4BC73B07043D1BB5FCA00B216A4B237DE8A1F08C569965E905E59E3412F
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY5
%!PS-AdobeFont-1.1: CMSY5 1.0
%%CreationDate: 1991 Aug 15 07:21:16
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY5 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{21 -944 1448 791}readonly def
/UniqueID 5000815 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFBAF552B11EFFB6A16C
F03FB920C15AE724EFDF0CCBF00A838D34440FF9FED532F44036AD22561184C5
283722DDFA7285E62754372D716D704AC0E00B2F6AB67154241C7449AA047833
94CEDB08E8C92907FE72A0B05AE36A7B9226ACD6E7890A0B528FDDE84A950FC6
801DE75CF2E739E9121149CCB8B1C87A106822648D84A3D3FBF295EE6C4BF403
BBE9A1C1F6DAEDD1E642ACC486E609703D7612BFFD10C324F5DC710811F7F614
3691B400E3773987424C0D2B0D8A736873C6371DDB2442F05E018A2B5CA9A4AA
17AABB95D09E5890CFFFED5AC01495D89A53D3CCD9EC861CF221D6FB2632C961
8F5D58EA8E04587A9E853206083729A0C14CBFB78577FFBCB751F59996CC6788
776A09260764C57C91B9C7FD5F6BF684BBCA47809FFDF45230E51BACA45F9D45
7AF9E7C9BBFC7974D8167DFDDBAC792614C14482BD0B30F9BDBCF9D15F9A446D
0972B3DD622797B8508816E9973F1D6DECC4065EDFA795EF2A01C5054F0B8CAB
F753E238167B1D1E241F7F3FEDEBE5B5105F7AF56DC0987AADBDA8AFF6DFD8AF
007E5ECE43B50CDAF809EE1A3324CCC2C23C16D8A68F61AB8EAC2CB8522644F1
03495C59C4762ED423B89F3BEBBCAFB205F5005ABA48671B9D45C988726B0269
417E3AFB3C097A163C62A1A1C7CDE0439D790B6209D343C099145486BCBA61FC
5F3317F58A7A42DC32DDD8F3186F1FBE80413805EBD87E632BBADDEA39CECF3A
5CF6B701EF5A30B7A4315E8C302CE4D6022C3EAD2DE72A6F9B6262008BFB12D8
9D826CDA3F2196F2EF04BA2DF99C0240406B03BB7555C8831519C468D991B805
BD2C48757B1B27D72915FD94F239F5622B42FC4D9052EDEA56296EA71A29ED04
CAFBBC901CF8CFA5AF8508DDA7F79EC40762E0236FE6B7891DF3362FC01A4CE8
DA36719276E860CE0B064F26D25D391510A82A540AC20910F8246E8524EA51E7
A03B27E62A8386C7B87BF0B4BD663E5E4B4C219E7F7B4FF1827688402474A6BB
DE47CD7D6B0623B8C291698019DA470D44F92B18C8D1F086A131348C35AD59BA
F74B1858370641CD9A42AEA04940A479FD097E21DE10082E366DB8BF848D9F79
DEC23E3DBF9D6F816B8303D4E354C572454DA52057D63DE50EF75E48B9705DB7
65C5D0B3702EF538E22274091CACD967FD56BA5E05BC3FD203491D685C64591E
CEB9AB518D57A16FA7CC4D07991A2E10355F86DB8E4F9D234238992EE38B9458
4F33512A2B4F1AE1345DF1F65FAEDE9AE0492CDF51FED2494B2329387D9E0591
87F22ED28173BA98CFB0CC31E962205C1741473C8284BAA2745A75354FE19C8B
E855AFC4E1953B2372E060266506AD401F9444E24EC04E555CFF71CCBB05B2D1
D73854D08322347F616A8881A5ACABBF3108591CC0B2BD2B0D04EE2F13E245FE
1F2EEAFFF0E4DEBC8A4C3E4D9E162934A26CCC836E24321AAD148D7DB04154D3
06E47FECA6BB8400246CA0F89473CDC3939F78B1C5B63C42BBFD0FB3E7B8CAB5
39D86D7499F5CB3C25B4E329AC69376181C62A9981CFB8BE83B18F9AF5EC69D3
5FF82F9C4E2ADC1204B8D7C0F904F92B473512974278DBC79C0C43FF08D40291
831339A5970BE552CBB4AA96A4FA6872697D167BA5A4C7CE35797BC72C2B51FF
CF75AD1598A1C48D2675CD922BBCE095643617171587753256ABE3D7D5699C77
649CEB1F393701FBA2
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTT8
%!PS-AdobeFont-1.1: CMTT8 1.0
%%CreationDate: 1991 Aug 20 16:46:05
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-5 -232 545 699}readonly def
/UniqueID 5000830 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0187316F83DDE3E2D27FCDF6C5CE4F95B6EE
3317BD91B7921F3039DD35FEA387D5CFB6C6E9DC84C178F3432994FC7FAC6E5A
ED41A1E2EBA350178FBFEB45944511731BA827167DDAC238FC69A5486B995477
C469E2E27493B0B711DF8E267D3D5613B450011921685147114106C9472580BD
F531022F6DF5432B2A4EBC51A8032C7F9689B6FA942D849B29709631613DA68D
4DF7B6F059A19304F40A3C3580CE3B51D79D42984194D4F178801720892FB6E7
61FF43C63F9256B5E9F4227B1378222BAAD4D52C77462DF01892220E11129C16
6C9E45BB9F01ED7C1AD5D8B4D72BE0E12969AFEA90FEF170603CDB91CB243173
B19A56084D10293B80A35275F41BF78A054DDC98F4A1FFF592463D944960FB31
6BE5F03960F9B1F213CBCC7FD448657FE388F10104D42B0715FC9571CC60CF23
C72560CBB8835A0CA208FE06676B3B48B093CB7FB2C0C53AF17EC5B372A9771B
BFD52FFB7062B4FE0106A01A2A1A1DD4EF5C8C7623EC9324A2CB3B402FCC1FCE
52BFC8662F8A39D5F1B41C97E7CE34E16AC28A1E94007AEA7D4C519399F1B7A9
48FA7DDB671067244F09C29F95DD60668223F45BBDA8B1C452E930A9F3F341C5
351D59EA87462FFB30277D3B24E2104D4AAB873BB2B16DA5B23BEE25BE2C8128
C4CF2F4F438A4E520CD864F3EAFB5363753B82978F6FD664A14E5D6F3A929348
5839EA752FD635619C4FABF1E1454510BD9D6B538A343BE748AE05B47F917367
1BA5EDB15F1BDBE806E51B294257D7087334165419A6520462D794D670A1D6E1
3BB03BF689391D056D55AD660D15A386E6D222C9572BDC4DC8A46EEC75124BB5
F0E8978FD6031A90E4768CCBF62A5ED8C8087FD66D2033011947634878BDC0AB
6501DA7E6D96E227068E993DBB0072F037CA411E446F56A164FADF9E4A59A772
D8A737B2A261CC3C8419E3D7A64C4A064C5377F01CA1B64F43A319660BA4AA00
0497DC24E530A2DB98EDDD0E900A2B17C8238A247241154E282B78245F23A7FB
4BB5B121C21AF0742E45B839EC27E444D76491C4EB7D540D17A3B20BB7FD50C1
11A933586985F690CF86C6824017CDA888D408C8E9EDC019295A94F025787BBB
58C248BCFE5A97B55EFF4B5AB57970D4F0A62C1E1D79EFFF5B00B440181F0629
DD10447027695FE9B8531A31EB91CC4158C4B95975014D6F1DBCF01F3D6A6F93
22F77009C3DA216D2504D599698355ED3AAE6FE9F8154B6183AECA51D7366F9F
71A2BAEB9FB3C67107072B015509D816A05328CF235329BCE9125626D3FEDA2C
7D867013B749F73F9B51E457F9F158D9A7DFEBB5E00BF3D8CC7A373765364BDF
C4BBAA40270736EFB4E7284007DDA815847926FEF03DC1F72E03F54722D8146B
18FDBD6EBABA412BFDB3BCBE0FC16B425A5FBAF91CC6050366DFC0E2EF1C14F0
0A57005542367DC3B453D5E14701434BFC790ECCE777F87E6B846A4D3D9728A5
0A500968B3852C8C086B26167A50777C0C9BBA93716954135C6BE4AA4EE051EF
2272F2B790F962983651B0CDAB04B0EC788E71A151B4E0A4ABAF1C4BCB9FBBD1
1ED54C1D5DA24651035D79663A699FCC368C8B124B4CAE387821E8F1909238AB
D2542B80119EEAD2F99E5AB6EAFCD9E9F23D8CFCEAD4C8A26D05E215ED32115A
CC40E7A90905932B99740DC4596A1D4A7E5F738350884A332417E63430CC3023
B84EA9B0AF7027F865FC58556CD508CD4F509EC5E0549155B6E6A2DF25D695CE
9BDAEA07B83D878D9AD37B4841669AFD01418578D309DB3B6887652091B2F5A1
22B4D83BB5FCED56190B9EA3B8EBEE2A60B55C613569BB4F4396C30EBF1F41BC
42D441DB4ABC6F3431BEB6C222DF9EC27226B57974958B8FC70DBCE3FA536B8C
F8664E806AFC0CBE06DB17680C73A2615A7EA27E9D05080B6E880D38E87BD8D8
EDA93028876B78CB5607F9E52D942564D46FBDC1F776C1C4BCFFC8140312312F
50518090168859D64C5E7DDECCE4C5651607F297AFAD76CF67FAE0BB0E010312
E6E5D241A3DB12B2EAA6F188FC7FC08A72771BC9692455493175452C0190FAA0
F5076E996FBE0A17C8DDA601AFA1A1BDAE276A4B27183566C7EC103AAA8627D4
D7533CC813A3985C21B5F5B8D62A8941318D9E87AEDA6414AD214641F334E5AB
3B1F83221D298C70D1536DCA2BB23C0C13C82385A728DDBE9E8C8539E2A46045
88544888C89F554245FB5597EF88DC1ED9907B2A19354FD40A17642752FA9173
EF21D59F50320E8C5A99AF5E4A1B78DFAD8BC016D2E8E82FD5E92BD46707F180
0C282C73B0D008ED068EA1D2B923E01922695335177902EB32DAF9537543320B
36F6105F615A376CF79558B950297F5BB0B4E8E3CCDE6B4F1E9783078497E377
AF4BFEF1599A02F28B39B6F553799B02D58EDCCBBA5C41D2F511DD8FFDC95E85
F6D2DFB4E6FED0773FA7C47BDA5B0D7558010A4CFD1A9B751EE3263ECA06D6B2
948CE71157423167A40BAE2F6C561B1D114FFAC9A77AED1D123F30446F8B2CA2
8D2CDA207639390AA42CBB9F8570AE5E3F56D2D7901033761F27D69030B41902
BEC803B20EABA0B0793BB01AF4994C2D38F468403E9BB617A44F7589A740C041
DCEF78028E885812D3F791DC4E675C5784DB8DA20EA8C8C0E83C73ED3A936CC1
B414642D19D8E873CC06DFD5DEE632CE90C437BE9670F1FF957493B8A0F1A9B4
1D0EC9AEB4B82B8ECDE9E8D8D840C0DBF7943DE2E00C02CFA15271D911525B0A
BAD6DE95C970E4E635328755AFAEB43246F6BC770576520B02B01E1F366CAA17
97B43CE4190ACAAD50FD77C90109C835DA8DC286770BF88540786FB8F08A181A
555F30388798FDECDC275A50CE587BD64BA16D9620AF36B69C5CE09EDC0E2B46
B8BAA52B9287914671F67E061C47E97F7D4CBA2F05733CAD7AB04E0318934D15
783BDB31DC40045BCD33C9B90CE87241ABC720D4331F79B3A56CA581DA86D38A
41E9B5F076B17BAA33EB06678CB21DCEB9FEDBAAC309578D867F4292789B0DF6
FA0FAB1459EEE97153C2E4CE4517865419C4209752DB9BAAAB3F46C6543CFADC
4C05C2E43C26473CC605C8E53C93B8C3A9DD1517EE1F17ABDE1D78923B1F99CE
906A2800830E55C770C27C85A7500C71AE7C552F052F0475824D1C1103B169AF
363B112ABF427C6F59801513CCEBB20DAF8A5A2C48F91473A8521A6D48E9F1EA
AB857D1138DE6CC0A8758D447DAE3B5D246D5CD40FF5AD7357B22C8DAA7B6054
1D95E0603035386FCC7766CA19391B04383FA1F77C8C2E7DD67777C99626DE9D
7B4660D832865021506B3C749C4A2E663F4F85ED0558C2F0ED4574B7C09D4B6C
E343BCB3F8D4C677068FA79FEE70F9CD9260E7868D017C1D9971344FFC36A1A8
68BB3EC96D10852ACCCE80AD7CEF6B97942C3EED0EFECAFF0E5C7A39C43BAE66
C629B3B0CA583A83FAE00F2CFEB732CAB31073FF0BC7D109C231819F555B44DA
7E0473F3691A2BCD004F4406E4AD9057E8F8DF5DDB3F5E78A2BE18611E32D095
17ED9DDF213BB1DA271126FA57E82A4882CA4FD9A6961C886040F37503A69219
85769404D3352745CDF49B63362FDB235CE28EE8E4D74C9C9813479598F65E69
A9EFEC39A9C2F45AC9AF46284263AE618F75C0F96A9D5C4120825CFD1F234B82
16E52AD2047EB0033E7B7FE363F295D401165FA911F5F0B981442CB542236654
B738CF2833392D85A5320598E22CCB9C18A6F93B9716585DD591B30325814B97
6337E0FAEB319B37FCC3DA55EE7B3DCE44CA5088E164151DD7C37DFD03BB918D
72D965280711216854EF3235F7DAE0F26A3BCEEE97C4E0164F91EF00672FB095
1AEE80390834FEFE897CAFEB68F8013BD604C62E4C038278B09B9CBE41CBA1DA
632342D06C1B18BB8845DEBB1177A831BF48D6CE770D14D9ED2D462350ACC162
E05C2B66E8A5837478E9A0F6EDF42E3AC7619292ACE34E3F69098EEEDC2AF009
28B465A64D420CB88CA77BAAA199F127C0136C42D3BAD6BF7A3E4B44199E14C4
236963F2D213F0ABBFDDF8D84BF8217CB78E182BB1981F85AB237981BCF022B0
BF3E1AA73266CB1680766AE57EC602643EB4916749E663A4F1D87740C5D1C6DB
B882CDA89E9DD7F13F81E2C1A647C928A351BF63A857E95131C028E9773F3906
9D363F13E1A347C7B8644A86204D0892A96FB698FDE81F1FF8D8EE6FE430867B
48C7FFB06EF731EEE09882DDADC28F43070064CCB753FF86A43D6FDD1ACC3992
2AA9215CE547AB8EEC9018DE1621579FF7B577AE937B1F9BAB3C15CB54AFE7C2
0C1827919287313A1427978E9CA23C93AF2410C3B9613B934B34501818A64004
D2ABEAC9CA110D79D2FB772707DC9FBF2B0DABC6CFC75ADE0332192C0CC98175
47FC1E54D48AE67194B9F72DFE0BC45AB3843473C24C49164929CB8E61B6975B
EEA33470ADBF1D5DACBACD7C404FD63B51B31EA2A29DB8350E7DF48A2ECBC191
81A8AD567C71E8C6F15C4F262A4E767DFE7E200D74843C1BD0591445FF12E8CB
5E34E3024E4E881BA637D11195C43B2D49BF6AE0EB17412EAE36644224DB7D8B
0D6F2E1662D8F108E168882E0E03010FCFA7873422400EBFB918C6F78596033D
F564CB8500491198F6437A81B87969AB8D768DBF965EF1B7D42758B66DD47C7F
47E00DF6FA70DACCC8C24161ABD07767BCA3636F67C1CD6B38310034B4115DD4
A9387AECDC6032F2D31B63CBAD7E3BA41ED5FE9B51E09C505DC7340C978481EA
01C431022990A5B44FAB4BAFC06C5318F9B31D50604ED68CADD191AC7C3DED9B
3D2875A0443F3543DEB17E6DC25D348DD706A649A8D9C06822C48A44CB54D645
D1EB26681CE153D498E59989ABB2708F72317208FDD66E851D1184D8319101B6
7847448CB7ADBB193FC4C5D270AC90601A0AFE36F84E67043246984CBB3C32D5
CC9292033684748E8EB815356D1C2EA046B1CAFACA34DB33ABAAE83C4B2206E6
0C6F83006001B12B93F169527100F763E050106E1332B89EF6EBB0D87504CCC9
5B82848410379EEA2D8459DE3DFB6F3501EBB883DC0BD8E506CA945E2BA29511
4F197374A41C9A8B55211AF48898B46D61707E8249E914A1030544FC2DAA9940
7D3D4D2B6A78AB7A44D49BB97CEB39CDCF2E99FF84BD3F2B2930248793A7C26C
D357990088DEBECB1A814FDC2199D37B7FDED4DE20CE57D45D89947CC1F76E30
5B5459A6F306E6B0EA39101C6EF00AF9AF183BCF475C29D879A306FBDBD1FFE7
BD6AB35A0BC8D49232C6F37E7B377D73A1C03F2D387C16AE12919F11FA00C757
634B4043D3F96CAB2283D4F4A3508C3A0511B91828BD43D342B449A17E5BD708
A10C3D9758CB37E28EB8E5DF61FF66C85B1079807D126E6C24B9D0E3CD336C37
8FEAE34900C3278D156012CEC9D150B89787E04AF48B181BCA5206964B892222
F8D412F8846F9BA93B553FF68FAE4F3355FF733E4F71A0005FF5E0E68E16A08D
88CDA1F62E5FD50B65C69F3A0D275096F6EFF539D683532FB30FA706F84D5D36
24EEBCE2C2510E7E211928EA32B37AFB4ABFE857C5B5B65ED8BB467780D76455
183A843CA9D9EE507BFB18A57080C03775E97E6DF1C74063983A1712CC2DB906
B0C7B9D9453FB9675D83F5AA67D6885442A34571B180F77CF747E6F10873BFB8
E33FC78CE75B5660E07F8D980698E050316CD4A01D9FEC22B0EB5242C0AC8D64
9413BB23DD54FA66A3A642FCB883F5345DBCCB4CFC966E95055EA65ABEEA6664
0483067EE3AB50F3A8B3B2E3A40580F9BAEFB46921B78871924074BF7C188820
2E948DEF0C79AA4A406817DDB3B97C2439D60162457A42A8DEEA65FB7DF70DB0
220EBEDBF486CB49167FE57823D408B27C9256648995AAB971A744863FBB1542
E27435EE3C555FF4CF31D9A005C3E4F1A819A9AFB7102F007D3C9E825D114156
64FD86E647493C370DA197A46269FA86E5BB67332435F3630F9902C7016D29F6
E320F4DA9C40BECEC5C64A1C47AF64FE5AFA99F8346ED36A0CEC35769556D239
3A4D6B14B6ED23C466E3F85E6C89799FFBB6CBF9FA29985F884AB32C02C61004
E34A9A54BCA3A7FE8F10A74909B9DC0BB63CBA0D88EFEE0C61813E66E2EDA15E
599B3704CF4F5B1AFF65A421F0A7EDCA3BAD602C8236963BF4AEA55273AF36A9
6C3D62A2C246BF65679B834BE10110BE9DA6907406985291B55222F16031280F
7B092371110B203A08FE03B34E5F75164F28FEB4DB5C6C9FEF854B296FAC9C8F
ED221F173B3F89ECC6A2F3BB968EBB2E7557168942CA3DD938C6F0897A8B4432
DF735A168DC7662E523F1ED9A408DD308220AA8FD8AEFFA5565420C2E4834D8D
CBED0F3F4FDD3283312C99FAA3292D8674F7F4521CDAA329D678ED7BED06B2E2
FB14161BE2E123F2EFD8DE2B7A97D6091BE2CB486F994B4806764007AC675EA1
F283FFA7EAFF7C67C0DBBFED96C0E6DD37785520006B7041700306A20A1D3EAC
E24958C8DEA1C63CCA197F22AF5EEA204AC5545D661222EB8813CF9AF3C4FED0
08CA495212AA6DE2CB963849D89FA78CAC0E541089823CFACB64F457A16E91E2
CECD2541C1FA51F84C19B2F80E80F67280CFB969A740839C4D837BA6AE4CE45B
6A786635B4841006C0B3C2CE34F802FEB4B64F4A9BF89C71F2ED1265077AFA82
0401D26D9673C674C73E71A9EAD06CDE91D6E09F10DED999C824CED1EE0ECED5
2F5B4A26453A1397EE371976A3AC955091E852F9BF603904C7A0B653D296AB66
E632D5AB660B4AC9169DB4BE38D3E85E716AFD5173EC054FF02B4CC07E4BF512
433CEDC2D2596DA4F5CD93FEE83D76C77F704D00650BD81A3B1E8F3A1449C942
F0542C654AEB497ECABBBBF65396C88C26F187D6149AF9E5F7AAC4AD9C4A12B3
7F678FCBD8155592DE4E9E24E8BADB3AC18D2B22EC59441B855261C79EFE5B76
D5C5B53215F5D6782EE65C7A94B3BCDF7FAA37CA61CF727F2B1E7F77084D1B09
0E3DCF2670CC4C15546F7269601070B7B6B54FF6BBB1DE3CEDA1E2A8C67B2511
4CA16AC161470EC2555F12E91B2D2DB4ADD42D3B452587F13B5E4920A11E2F9A
67FF1774762FCAA50D5BFE888CE4ED09962684A3426CDFD75AD06750A4358EFE
A52B509E541D25DAA9817771B5F9DBA4429760D79A6F05367C66031B959799DB
B9C4D9AC525A1D3ABFF757CA81B3F9B01A966BCD3DE9EC93AEEF02AACFB19494
C26E84C6EB130A027547C628E23ABFA4B50DDCC64F2D9629F855CEA00C4C0157
957FBAFAA58A80449ED9B9771FC45727342413E58CEDA689CE823875FBE5A275
BCF03BF1D679E2A11E51C85065F53482D4B6EC7F0D77029E6E2ABE299866D6CB
AAFD817222713F336BC4766AC1B90F4E557CEDE8D1B2A4E4E85F4E82B7B514F5
69CC008F5DFD0EE506C5B6B3408E0D74C0BEAB6FA1AE328643B032615203FD8D
EE12E48765D8418A71EA6ED7D058B4860B880EEC9BFDE413F085719C543174A9
85BD8358520030D1A02D30467479CDDC480154169E1F5A7B5D29D843A611BAC5
C6572F3FE222F3F1EACC66D27DFCC228A836F79BAF24F244F4327A865879CA24
A36B2053850816B4CC71CFD27B332F63CE2DF8C9C025DC89132FFC4E9DCB6A87
E8DBC267C080D9DDE2E47F2D1A91DDFE22DC7BE58AF8EFA61ECEEAF80ADA9FD4
A04D1B12A28AC168525DFA813F701D8BECD0FDE96F0C04E6C66171B226480322
B7FAAEE560D5E42DE4626941DF018DD861E7D3771CA45C42B8D17CB709B7129B
39E65D018285861CAB5B5E72E95F6DC84C7779098D502B22B38CF2BFB491FCD2
875AB889236F47530593A4C8CCB4C926263D1D179D9A980BA88025B54E5381C7
0615DD325CBE1E100898CEC803404D7302CC61194416D7CF2405AC2163AF2B2A
E8FDDC50AA172E13618CB02AEE7D6858998FA123354842CBC394E440A4737C80
A069251867DAD7B7FDFBC66E92C1DF782D175E12E2F7324178E09C0347DE1088
12A8D96B1343280F34BA624AAD5AB6E56D4AA803AE360428D28A899B77F1E3FD
86FA3CA118EA380E0A7B6DCA640B36AEC476F5E593499DC7196490C4D3CC0416
D8B5178973A80812103E4A0B2E8DC13AE7CE797649B660C17687CF206F478273
FD30C0D24E4E4300575370876476E41DF3AEADFB8D5A6886CA515041B63237DC
DF6820184E78F8EBE53627A041D33913CD0AFC1D747EE56837C6C63337023A97
6A746110EACEB9BBA6525FF783D8B3A314FEE3D3613426043E65BCB212E5BA15
28A58A934058691A51C06BE0AF2521CAF4EC3E8A45C0AA91CF3CEB8D865AE42F
9F31397269D5B682D1AD3B01EBBA9B92B58C0E07E0FCBC68274E4E3E7716FE0E
C9C4DA0FD6C0DE5C7C775F8CFC4A60CA85823DFD17506058968CE0957DA7B25C
83C85EB2DF1824E2D0B0CCB86DB6C30DCCB61A3CB7DBA8932B4E3080C3F839A6
7BF990FA59FAA085FAEDA0820B7F7DA753E091A275A74C37A4C2B10AB608123B
AD0FD566AFC603346E8FCA5BCC6320F678E4E04B44ABE34895A6AAE67DD8CAEE
40BE077C0FE8DAD3B6CFB21D359ADD5FACEF2E055ED356416891331C9260D9E0
C5E8ADB4F59D2EBACAAFCDBB48A00CD59E8E3984750248284A75BFE6DB0B8154
C133A44A7CF6C1E2AE75A8C5AE0ADD3ED62A4942E1B9FF55A10477DA462FAB75
CC692AA7025FD9956DE22867A5BB9B1449FC0A957626771B3B0293C906E18C12
ED0102095716DE55B6FA10736FF405957A241CE7F13494E0F77757DA5335C744
734F4497C49E8A97095FB6BE17CF0D01218D4598548690F2A4DB0627FFE50F9A
CF2C25373D69A34817F8DE361C0701E9E5A0F93C651BCA0E8F9ED85A40D95ABC
3F5A27FDF17818481DA2713496E453BDB701E6B85ABE384E231C7EB811054409
A3E825D104556089A39331DD1FD5EA6CC93039C1AEC0920D8B02D2704EE0B7B7
7EF99A583F724EB21E448671FDAEEF5C2EB91463B95CBB53EC2AF37BE7451721
B1A2420625E41DE61C587AE5E05EEB0900AA01DAFF9123B56DBF6913F6DD8169
056ACFA8AAB9C084039B37C19C2B70CCBF753BEED4AF7BEDD7DC1702754DCF72
A02069366D94BD145531ECD678C62C2A7106D9FAF2E497DD6A8079803B2509EA
FE6F5942278332E7A60263C26A3FE390BCD1315A82F633E6531AD673DFE10E37
80320A0FCE692FC4B7A07F84F14FACA482D626D3F2904214E46173CBE92E4BA5
2437D607126AEADBB763CB5B9C2CC82E7A52FE686362C120BE166B889DE29A0B
DECD414946EBA52DA4A78E66A4100CC0509FBFB0EB5F17B83F96704CB4CCEE4C
47A20DDB0F12FE549E15BF1E4AF610327A300479DCE8A64C2B99B961D342F314
54EEA4DFD277CF95B2ACEE37DA9A42E17A8632C9D0EC406D890C991F31F2CAB1
5DFADED97360C37B14E3E641E5FBA55F86D6100C97DC2C28B9E55E92CEDBC406
488798F28E097DE4B66F445E16AB9F920F7A6D6026A3E6485C036F5C8AC775DD
1981FED430A14B57A0FC70E4BEAE13F47E9C9E6415DABA67E3631D0B43780FD9
2F2835631F90EA783A1C0C6C124C569F1F4607041F646ABEFB012116FFB7F0CC
1A7A109314CF96E0E97508ED0865760DE89BA483C8F0DC96CC2F99DA497B77C0
FD47E7202C53C2213E60F513D1E56C48A016FF2B7D78AA77E55BDD3CBDC2BD6D
8C6F9E8D9E5952F299FCF3421A746A69FD7C7C3776BA7092F919A50DDE18CC79
9E2948705B25683E909DF2FA522C77330CAAF6E70C11FC1E30409EA8536954C0
DB7DB45EEC92A793D1356B91986ADB13734ED217CE4D31E0C159BFA532F2AC56
62C5F549B2F3DFB8DCE9C274A5F8A1065E261FD21984DC0F5480DB345A9116DF
1D7A8BCCAABF419678E9819CE2063E40C7C17D10E0726197E0D85009A244A4C7
C54B4ACE9A2D1A0AF5E17EB440F21CFBB2D73DF742A78700BDC413E95EC72C17
8CD19C3FCD77248FE0A03E802E061B81DB1738BC1D0C55D4319BF75F0E8B5D31
0676211CBCA177EE9E33D92BDBE4B67D2CB1F43248A446938F0202D9EA7EF5EA
5F13ADD45DFB735F92F7A96274688744D27C4957715ECA4D15C5E002B4986B47
B58C112B7CC01C0C2169FE012D23531EC16C6BB7D48ED97BD2C05BA0CDDC83EF
29384A2954BB21B876888D38CC41ECCA30EFD1D97236EB56242D3C5E87E2DFAB
D8B605A9B53E4C31438741207D669A2B7CB86171A19BF733FEB307791D8A029E
1D18D41D46477171C06A624DDAB9FA39271C8D4066AA2D86C117EE5E6D1E4615
D974B7D46F494A8F5E7B1C9E2654087E4ECA383B23D1EBB95BCC0704229FC664
F77B186E983146CD3430DFF8C6CA7916ED21E008A8B78770596FB4CE8B2A3AF9
B86F97A448B55A3371194CD1C72CF99E440F488E6F7264B932014C46C2127745
CFD2AC461216AD0937E4A59B97A6B11CF7B7B2AC0FF4EE33C62EB6642370CE21
8AFE7B75179F2F65279389993304B3C0E0AFFA03B088B08F93A5AE87376B6AC3
53FB7A774BAA65A7FA67042E7961A4328D9A168A632A2484A584AEEC732674A4
F2C6A2C300F84A148E959B66873B8734E710648F273D54533247D95B182C4B6A
73E145D6A4C63E81503A83E4B6C6FCD561C27D06F615025DACCBE34A7BE083F9
44381FDDB89FB11E2369ABA623BF061704C4BC506ED1B11E17EE1010E3AAB1C8
AAC9D92E8D6A315F4B7E8742FC99F52E958A257D9443DC3B47E94226A381B831
6801BC3D8C1886A7E2E935BC087D443D9EB8888F8D74A7B35461910204B013BA
195A351B015E9BD3FB74F62C04E406934F929A1C625D8F4F9E8397CB3F55D868
B02BAA2573ED0D3F3DCB19726FD00D12D81FA47F3E790FAC338BF1C5CF6475F2
73E4D9DAD50344FDA50C3E298E48B2F17AC10872D1BF4656C5D99E67EC97C17D
63EBAB71B1F945E0A8DF5B91C2FEA63F3CA118826791E324E724712A5FFEB00B
0B2178806BB5975A81380A8077D9A8FACBC498C353A35A4C7FDA251753974475
84D9FBF46F5B7C289356AAACFD1B475687602B74D1ADF8379C657EE0E9266146
2D53B11A65A1376825E4B07E1C5BF94B983EB7B1C5320BB34DD5A43FED93F003
A10010298B08A0C13DCC930FBB0A9032D1FC8BF3B1D44E30F1FDBFBA1F9494AA
4DBAEB9331920264A1515B91A183AC21B2009FC5185712263A9075CC91329D30
2FA50EAFFD1C981EB060DF0B67CC7D57990A1CA475EA7B83246F39086F1089BA
EBDA3A0D9BE00F5A9C6CA93E11CB5AA9914B38C9116F8557246CC614CFBFAA62
9377149C5598EEDDEC225776728027AD4B165342B5593D377F09904A4853A083
86C1D30EDD99C8380B468F9BD8F381F4D91C18B8EED5297872C83C8745CAD4A7
80306F0EA0B5D9DF09BBB9B139621099550342B15B9E7388CAFA3BD611AC960D
5F874626E94F9D31DBA78A220C0C7B9526E492EA6F651CAE9AD93908780D5783
9CF7C479528780BFDDADCF1B20AF3D3AF3E581112ABFB3724C66BA7EF25E7E22
CADB16BFDABB325C7100F3333A7DCDA699EC63F3AACE13189E3A219CFE559E69
B90F15BB76E9C72C0157A584625B5BE29C3A8CE0077F4FDD5A0C47DE743B50CF
664C94AFB17F129A12983B78B4154FD8F3FA9A6596156D96E40A62C9CA53B61F
22E98114325F2A7B6044BF5FC5D1DFBB0E8917D5C45C683C997AF1D93AFF789F
4DBA18C1D1AEDEBE8B5CFEB0E34944C83FC091BF023A1E05C18E5F4DFE539C3A
0AC2EFB3FEADA18EDE854D8C995C5AFA085C1AFF55C1D623CE9144FF841C6947
801636873F2CB6C1F730CEEA2E4266AABDDFDBD15733F1BCC04656D02CC072A2
38698420C0A7FE3F5315B99E7A24DEA2167BF3D7CBF97AB7B8D9F0D51BF8BA44
9FC8548055F3864AFF2D3D94803D123376D4BD6617E2792BA4D41931844F5835
68B1BCE3018E5A4A7070BCF1FFDE7AE0FA71B6460B2B66B3047B016E2A28C2A5
225C197563412F0335857695A91D05B09927D5292AC7C2E62532270CDFE1B3B0
5BEB0C3C6E343D0B40F5085F652D8A9517DFA30BA8D053BCF83AC0F7977C4E38
5FDA78E50D56524035AF30EBAC1BB5091CA29C096043820A8A4851E77CF2D0DA
A45E6DD80D5F6F725068FA4E7C5F1F59D38C059160724342151518BEE1B0F59E
CFE4CF56DD79E53B396F01FF205F7613FE57B3C85DB5F444962B01B5E483A6A0
4DC692F444665E1D33CDBCCDAC4055373F4A7B234699B6D61FC30B0360563FF3
721B9F8F2755673C5BFAC0F27327FE497E29AD8837EC7ABD045166E8ED8FC0A7
08589B67373092C18E0DBCC2C52ED5E330104B2DCC2149A0E8301A1794B3F99F
DD2D700B7BAD3A5A5D30B38A891473E9B958AFA4AA5944EE564F7F5B0113EB4E
91EBA78C867BAE09D16D72A12F69E116A52F73B2929BA2E670722769289D1DE5
E8E6E68EA0331DC43F85BF4B04D63B4D6AE0C273D7E85597CF2E1B0C62DE9C65
43592C6716646C272E10150DB2F2D89F4387D768124B20220FCC0FB0FBC5E8CF
0802894B264C8272C608307FDDA2E3DE03D11B90C0A17B45DB20E60F47D1E3BC
A2B0DFD22D2C2AA4F935DC7DE6878292E16DADDA101303B676BD9999445DD847
AF8996756A3B00C0DC041AFB7062AF061D1388D59A60C4A267D1D9EAD4D94E75
8CE75421E6DBD6EEF063CE5D9D5DDA69337219B96AA1A0C1F8E1A1E8050E5332
F0F7B9C7F7A9F8646761EBB0A19DB0D76FE8E85216248B2D006B460983C40345
1B8D346F2F5FC8CAA9F804C5CF87B1C1EFA0A1C88B24DCBC3EFD912C0818E7E5
C4BB5192F86C4E6E453E5B3D64B2314B2199BB1708FDD45571A36B3414A54839
7AC5690B20DC4B8387F2712894AFE62FC565A03AF594441141892535C137EB68
E61DA275C5AEE30DE77862AE5DFE6E6532F48179E7D5CF83973FED1049A0446C
D21E01B8FE250886F63C71B4ADEB142A4198B72BA356CA4EC14E10E0B8ACB727
7C27A76807B5389AD624D36AE77F4A68120DB521A87296D90AE251968562009F
BB01BC4D86B4195E3D0D7249AD5C98FF45B9C84952A24C861751665C1731E727
1E01731F77CA0BD4C781A3B5A84AAA82C6D8FB597A35B89E2370C1C4226AFB32
B959BB91F02E65EAD9FFA184A27897C30A328E472D69E883FFC678712C3CF604
3D126D1D0ED5BD6C79939ADC4D05B8D51C8B27720763CCB27F4A1DB47F3E08D6
E94C8ECFCEF8EC40D404EE1EE6B090DC15FE68ACD43552FBD6EF23B443C898B6
7FE601BAAAF36C9205D24EED4D545A2D36F699E12889EE7F5A4C9D201768AA43
E7E2479ECA07AA379565E2284F8F3DB88A0E8E06CFF5632C51236617A06FEE39
3DDF03F74814CFA5E113476C4195BF97912F95C52980BEFF14E4D319A7C762CE
63460A9052C590B4BC8CCADB3CDFBC2B5F77AFD6E27778FCB151D6347E58E775
660C0F90707E68BE18D95B376D0975F2FB6186A23E8D5425DC907A2EC4496386
9698958392B39F5D08DD0EDEF1CA665B8A6621AD0054907D61FDC9FEB9FFA146
F16CC6C53A7512DDC51B1355D2E901B2D1165C15E1CDF4A5B21D920B93BBDFA0
5C1BA71FAE96F4789DCA8EBFDCB5EF5EE92D0D32AFCF923C05E84633FA08FD04
90777F96D0490711374BE7D453A078A62948073BE34665821DD0698AE7461415
98373509C9C9601E26E62CBC4BAB3DB62C99354902787B0FEF77709D223F3672
F827415273C02753B4B963960A13F7985321262152A27F24E5181E4AC1D48970
F7493F7333501106D24FB31C3285B746DB0405DDBEE997A0C342BE3B3B5DAA4C
AE0247906E5DC6D82977583794F4D2E65523CED1B2071A834154B454369E33B3
BA61D92ACA290AF4EE63E3440854E86545B7287624EA35CE22EB29C5447B8AF3
FBBA7CBB1C33EFE967DFD51EDD02FD68C43266732765C2017C5F491C7C2AFFF5
91D2556AE8002A6D0A9501C7F975952E82FD2ED2634F6D8DA1841B17D21E8E16
4F129174687BC34D6FA044241D4C89D838EA42FCAE595D5D2AC9FDCFB05E3CBA
70E403515D293A5811D58B7F02A530FD925D7640B50BBAB0841F8E9BC9BFF631
80AC460C6ACBC04064A23A21FD62AE3EEF097DB6446B1BF6DED0010F4CA8EF3E
E5D935F9B6BA837C697DA81A49E0434D25DA5E58325CA1CF9F82CB98D7FB1FD9
202ECCF6D036279A9C064C3F1AA7F8349BD15DFE1BAEC02F565BB61E266ACD67
A58FEA48C0D34AAC40C3B1AB34C20ECF44EBB53DB084C8794B169B83CB3F6606
D6CC729BA9FE6D72EE60E55899BBA5BC7F01E58A288FF3594F3E1D31BA5715DD
63CF1233CAA69583C6ADC60F908D74E42394E48DC8B4BB805EA62A66E464B276
EE54442AAFBBAC05088E05B8DA9EA13C30F91F0BAFEFF4C8346E22B38E440520
6563135682A4AFF0AB62A99DB30BF2B0CA4C450DF8A285C2AEE372FEB802B868
2CCCDD8A79CAF4272CD82FFD8D5544B1E7EF450CD8E40A6967E3E6AE3D8631A1
330255E823140E93FB805D8EA24BCA0C8D445716B16C4A65DCC4814E9F823927
9A1432964B39E297FB71C3D768E1BEB72B600E3C34B9B3BD7D84187A5E8F46C9
8A67989070D548693BFA86720FFC6BE5D514B791918063B61365DDD8241A4A50
844CE9FAE03354ACC9544B707FBCDD9BF9B66A14DBC2079EB16991E27B2AB582
2E31AF87D373B5C79B4A926016D6B836A5B66B5F83EE535D5980793647B4CFD4
B3AAB29ACE2EB6CF67097FB968EE2F64545D05B6C0597EBF2EF5F284BF033874
85970EEE7193DBD0B34F41355896DE534846B7509B3B76EEDDC435E26E5BFCB3
CFF2A6CFA34C803277D9AFABB0448085AF99F51DD7AF6F1DD140B0715F743312
368201CE94C19F3B960B18C6ED662260B5EE72A1FD7BD7D7B13BFCA277A594C7
F96B3E4F32CAE8D27531BBD747490B2CFB1C5D285F5CB78CC3123CAB82FF8D91
4D8172CF99317AE097B73A0E7EE38FFB7EB41D24150B0EDB525C747DE65EA519
4416182815DFDD89BCFEA8A34C0F3F1704D69F1DFDC992E238300CAD70E55C41
7A5A2D2622477AE9560609BC539742E9D9398FB1BBF3EB49474FB6D9F3629144
DA4B6E9632A6957EE4DE387BA3C1E44295133A800BD7089AA11C35E3AA933C18
879EB3EDBEF31429721714A5008C9635E10E48CF6A5559B6D3F35E3CA5D94F50
64CA0B2EFE12EC9C6BC1843B1154B563434DF1084473E7C2139078F0449E44F3
F49ACD54BBF70D8E84A65F85BD9409B5F5044064C128D61AEF01C98A5A424530
8439CE75F85D0E58DE96CA7DE710F587E9739314F0D835289614ED7A1FF33E3B
C13EBFF1399193B8D474ED6DEE394F0549475EB2668AC0D3D1F29E72D89CF2FD
0924216EA92C56881C5B29456E3AF5F81B95B7AA95BE95751277837549D7F553
8D5D9D0B4B0C9A19C9E3DE0F0E7061A9E70D4174FCCF660E254956A4A752136D
17241148D160C447B63A7BDDEB289EC434495E71DFF2E2BA737CFDD1E436676C
204334D8E4CC1CD5614D58EFAB5DF7DB6CC7C1640E61D8B3624F0305015F35E3
B0027594001278FE248CBD966A57DA0C1264D64D0CACA4FECAA492B13348CCC0
7B9ACC9F95AF8CBA39D91D399EA453433D4F2FF539D44C21DE1D457D87EE721F
396A4AD0BACED1C9CF241823FC61517346C58054A889E751085D70FD42D79785
C4139FF5533120AC4F8D24122E8D4D275964803F0C581D1D4BBDAAEC08978876
0F581B4DE3253697B1EEACEC9880F60BC2627124AD8F49E7DDED5E3B3A0CE93C
6FAE3D394911B8E9E72163799EEACA090CAC782E1E6416DCE17BCFD42A490AFC
4C6904E103D5835E9E8CAA197B4DBDADCFE87835ECD3952AD3DFCCD505A02677
32B8A218AAB76162DCE1379BB2B598564B9F6DEEF2BEB774531B37C30D0A2C5D
410928E4F25C20AE861A548A5D8CBD9DA20B4A3444642673CCD3A050E6A989C1
6B0C1FFCF30C21CAB03C94BDAAB7381F69D1ADBBA6818E6EF6D263B1A193F749
2BD717E3967F127A7C288990937751BC6A4884CD51C90AFF2ED1B604CB170B07
E54D82E68EC4DA5CF3498D3618D1B3A655AC240B1E4BF51BE7C7C43C45E47BFD
ADEA0763F1B83D6CEC61A90B33EE9CBC91A1F050E7BCF01E380FD287851540D4
D2126D9EFCA57AB95A590BE5F7AE552E59BC0FCE74F033F565CB849FBC815CA8
8E00C688E12D52E22F7512165681349B7DF5767D0C7ED464C0FC019072AA06CF
D12D0E43D4EE406FF6641D47097A25EB57153FDA5EF5514684D467D2EBA39C12
DB1A51A140682531B8238288DA87BC2F29C343BCE5F9D60F72943F3568984EA3
CD5EB265197F8ACC8D25C3F129F24BDBB69AF8A6FBF4D54BFFDB22804AF8B16F
8F89F67731B9F9F6777C7827FDA25A26082508AD90EF84660A5CCDBCA63F7AC4
5E32C5655B4BF505956C58693AA8E09590B49A7882A205953CC81B21201F18D8
EA9389654A2A938F1B5F77D561BAD8CAF7B5A0791A0C96A66974C5791C2E5E48
5BEF202E3300467DFD01DB59F76FB5F9BEBC088005E1C13ABC137143579D7097
825F387D745B58D38526580A15A9F46FB4CE360AF6BDD0330966FC489FC8FE5A
BFB59FFCE37CAE59664245FDDFABB18AF13860D003469C183D795DAD312BBF22
FC6780D8C9FC6CD04387717113E394585BCC85EA52EE3DB05E40E3852A39113D
ED1939754A9BFF5B50465D293EC5F6FB17C18DDAC2D139272829C4AB3CA9AD69
D6802EB72E6DF4E3A01763083618899053BAE9E1264AFE32C7CD82CAC09DE520
254FC8B35B5892206DC5B8439C0EE736891F3C59F7183980594DCD60FC7593C8
B59B28B4697C8B333D10838068F57E4274FF11EDF7A834126DA86571D8579B5C
19BBDDCB58FEFEA9596C2ABBB8DC27D94A7E416E8851C5240757D6C5597E5F08
183595E88B3807C7A5C5FEFE00D91A9DB0EF16AFF2957E49AD0DAB5311FCDD67
A1CB5FDA573E25AE611289C1DC81FDFB35357F8FC12F96CD9FFEFD28BC9C8C64
EA36A2955E61F02F7C23B5E5D08ABE38B857E4D5C665A7C61E16F3EA30F5F518
6A0A53110E009C386D0DF3A87FE5E9442210197D5EF1BD94F5F7CB8BD7EE9E63
85516AE6D8DFEB321782F0D40552F7E38B745AA4FEA13229A60105AB507BB169
DD8621E0427D3D409239683AA33515B6F3001A3D0EFE3B508B9DF0FD34D34F0A
E12AAE4F88FB894539BA94C6FF7114EEFC4B5D5E2B239655953DAA074E50ED29
6D1C8865C8E489613D8B325B9DC072C22E51CF96866FB7A5DFBDC7878C84239E
2A183A6139C3D79BC70CF810AB90A2BA256AF24D52B24FBF9A77AC47CC6B4AC8
A74369E3EF968E26F3DBAA7387B409F05109D9E610F4262BF3F85F0BCAA15A2B
1C0A85D59B5BCDADE8E6F2AE1DD63837E5E8660A65510E5F07F1CB07E1A9ECC1
A3B06DA4CED7B92FBD2A11191656FC3D0FEB7936F0F3E51ADDD64A4573A334A3
EAD1C8A985672B67524CED9BCB09AAE80B0F55E8005206AE724F7BAD64253A02
3C6466F867B3C738D7BB198578FB3A8A1DDDB0143264C155BB7C5B39B9602546
65A9AD1050DD728868E3165AC63007024D0C28D91C324B56AE72A472C4A02B15
ADBF07CDF9CFD9F19F662814055182B0D4AF707F3DD2ADCBC9C485FC0A9370E5
22B77561627D07B4FB8CAFDD89DAC72D6A3230B08041E9DE4841E52AF471B7F6
AEF486B2FB01960071B386C161F2B6489D065EAED622A780BCFE48226611D838
290481144926CEE7DC9543255DBF53A075F6D1A01E126E859D156704E3E9D2F7
2B01FF64FB7E90EABF89C1FDF4B7354262
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-4 -235 731 800}readonly def
/UniqueID 5000832 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC
FF798F2ABFC4F3539392985C4CB324B0007229586D1E0321559F67C057FD7902
194490A4C133DA790FF3BF23A13C2B1B69EEB75950F9106F2BA1E3CA65C90FF5
931DADF03DA48AFB8561FC2E710087251BFC42B80B297A3DB0DA138A7622A931
DA293B0C740987ACE9F2A8EC2DB98F85783C01623FD3612C7E4A84FA702EC190
DA0F7C6D4C7BCFBC2C88F4FBEAA7248E35804AA88578AC3790A6E20860E4DF1E
559AAD015A3FE8D1D36FAD782891A8F9582497992F4CCD3F54EF33210E26F383
267C5248933723216C053851A68472BF00D9161CA4A549CF70CD78790578EC3D
3A0AC2F9900E8706E771E124F6AF0B8FAAF73775122C66EC7BE70096BD0CEF41
E280320576FEE525E39327BCF285347871CB2679CA306A2F61051A0E2D1504F4
BAE7BC515F3883BE21F0579C860761D043A54E60F3C8805A06DC8A3C40F44E73
0DC80DACF9BC45510FFA7A20EB2566394A7A7A81FD11571F0D8E1ABD306E410F
9D464FE03B5C5E03EC5F71C3D5C65C821D42370458E69CDE1372E65389986247
6B471F0F98FA0A13CC0E238682274A428477C26075C8A819E7CB5385E4BEC619
DD1960D24B6365FDDD3D7891F6625C05452D3E3A4D88B6B648B7BB3DFF998629
C71AA819AEE1EB3E34A879CB4EC2F7807CBE0D5784D60C8933DB0A72EF86D018
D12BD1822B52C12EA3F5E6D1AB7F466602F67EFED87163B09672BB42851B96A2
33E30E7680E5B1BB75BC6DCEDD7BC988A1D30E8B432473F9C9E7846EC08A1739
C422EE6A46B44416B8DA0CB7F71E14E1C974B6C46BCC758AFDC9C644CC5BF3E2
33DF1C7EBBF98ABC1A24A4C3B98090FB289EB841148FF9CD01A96CD1D9A6B5BD
673BE8DC07A828D1F4985D6DC2C0F523107F63C118C1F2E9448DBAD2EE7D0F79
D55C037EDF4C9BC1D95C4E68E1D65B769292BEE7541EBAA6C3B07F9DA7E8A3B1
0B9516AC47C3CEF7E5BB872A4450AC4A843F5938C5AB8D9339CEE0E3FFE8C0C7
96FB444FAB60756066F53EF7B704F7641BC267CC91C2FFEB4BFC852E21FDDC87
117BEA34379E28D3E2EAE10B4B8852A082831E4152EC9AB92492738E45CB2FAB
54903CA996F28A961442BB0E009A28C1237AD75797A8FFA4520E24532649AA7B
660EF42DA73DA758A68FE94DFE802020F3CE6DF5899538625B876625FDC6CFC7
69BAC800AE84ED60A6C528B7AC413FDEE3EAB106DB7FF9FF2F04EBAA4721895C
BDA8E05D8738866DC76FA59C3F942545AC537C3BEF6560C91C4FA00024086DFC
F8A9817C65FFE7E2511A26B89515F562A2269154D3D309FC95DAA1785B349CA5
21537E2FE9D4B5C95D77F5BF7B1EF8F5CEFABCA14BF24B6E0F11FCABC1AC1F6D
B55DE780402B2C316C41216FA425888E2B4C0ADF3D6BAE62C50368D64464DF42
3D3AE43A21265BD59FFEA8706E1F6F627725145CC023CCBF9E6C3556BCF63265
B7870683CFB6A2C072EE0A6B642BE05FD874338F7C02E0328298C185803C859A
00A1873D2270568E57783969B0AA1C2DF1C6B50326812F5D594135B337D02623
C54226DC42D20C912090B455E5BB7833A156D3E1D1DA3C9825F2456A62A01613
1F2A11D48180E26530F88AABD68B602F48CFFDC1A6EE2F43C70706937BFE46B3
FF2BC9342C11D2A57F5FE2ABBC7D3B10CB69E0DF29F2FB038735566C395E9A17
5387729ABF0962E471100D53E3D4B4F9278854ACA1FE17CF8E12F9930BD7C41A
2C839BFC38BF3A83DD78D7601090F738AECA75EC378F287CB2EBC2722AEC065F
C424177B9DE435E2A310D9DED84E428C9DD6321D4F5DD128490A3E8C2BC5734E
4D16C4602622141BDEE264EB9D91C134CBF97F364247114E896F7C2500E3B99B
1418805AA8B29CB8E7359FF7A1CA29B8F90723C65BBF87EBBCB85A97C67EA132
B66BF466900931F3AB5611E06A3E258A4A7606B1433D32F7EDEC426465A1D71B
4A9AA28438C845D12321219BEB31BA9CF1983EDD641C5BDCDDAC2BBB3AC10D6A
28D3CE4FE94B7E51B6A7E3BC32FE65EB4DC4A69469290936A42D3FD02C6322EC
2D3B11244587E52B9707F8B0BED544E9ED88A7BC0139CC6491072AE89DA6BADD
ACE26D51B2C236225B14C1689C60DDA861A8A768F6AE5CB171534255D3E08A6F
27964936D1D7EBCBD06C12285548DF93E8DEA5E082C30896C0EEA1FC9C540321
7225DDEA97DE1A48EBCE32DBF2FD133BFF6F09B4ACD24C572884FB1A8485C4A0
DA1FC6B28AF635DCF207FD314B9B49D2CB59FA424268803F196D98A8C1C19214
8A6AE71DED5E988114D8BB1D31BC7818F54C5F0A5603CFB7904B71F2D009683B
DFBCA7B63ED2013358EB213A98E6C81618A0831E0424002AA5080E954C5D4469
98378EDE979593EEC7593B0254386D63CB660C390AB9FBB7547524EA0B5232FA
3AFCFC781A7B838DD8C0D93A89C0E30B55A8B525D2346A91328108879B6FF4E2
B18FF40D68B90673EE43D839C6B1AA08CD6AAF8CBA03DE717C96AF3FD44ACB7B
4E7F64083ECC4C0B20CDFD23B71428D83589251717A6A2FB9B3EDBC2500466EA
D5BFCB0E51A67AD7EB88B0A47D574A378C4A79C9B28B280EF3DC59D45F7BA3C9
2C635BE98A4FDD648DABE57C0EB360FC8A530C8BCA0C4F4BA8221AC7A4D3837C
BA0F7733CB4263D495A6CC78C51FCA4703797EC0DF297BDFC425251EF286AF5C
B9DFC3809C8D15D0E77F7F1E0BDB5426D59AEC88B06EB6EB39F29F649D7F4A0C
76891431555740CEB771D24241ED2D6552011D074A85E3DA3205A41E959CD9E4
005E45433C657A342D42B8353030BB0D8A14EFBDAA15200E6230104593D0150A
02C80F1F02ABA7C72E0CA8B53B384DBDEA2A6D507C47AF5E76F6975CD25D039C
868423D262197991E307F2B7FA555A25A388DED203041B28A8266E56308F8E87
8CA652BF0BBAE19E1198D237442A31D3D640B5807B05B020A3948DFEB1A4806E
3E67AC78B678ACD3FF6FFD1C416EA8A1C09634A075735476E0514CD5EF5EE0CD
4CABFEFE06C8FF6B21A979D0DE477B119732302186582A9029A0968450754634
92053436748E40FB54AD4F74EEB63A499165DF1E0A69577CCA6AA0F5AB24FBB8
CD5D22835A1C718ECDC3349D1FB14E97BB1CC7CE7D7792320F52CE83DE094D98
3E4575FEE2D9FC230C21918438337C6BB2ABA9700837BD1DC34EDE3910B6A5DB
370474A34D50F47299DCA8F8DC3D90F351BBA8D0B59C3F2FE28637279F61DA26
BB723F5C10FC725B0AB31A22CBA863AFD1C6AF42C86F5A883E332B2C91288990
67EA69A6DF9C22F43B7603E275225D3638E22D02BE079DFB5670142B80466F6F
1AB5B018ACA068DFFA2BE45CD8FE3AF208362319F2C42E51CFB5C9E2E419EF43
8CC6E0D9584BFB4E0859B5777F89D01A24C866ECD35C085CA7E933C31E7CE412
3A081C0B6406A1A94B86C4860D020730E55290199C3EFDD99652EBE0EA0AC145
08242212309BEE72F0FE43E7778CCF86EC54118B3118439ED23358FC2878EF61
470770DF42398DA9177BE4E2E08E01A71C351991FB2F5CEDA2440763AE092AA6
E0C5857079517012A61FF4A41876FD56716C8CEE0C36CAD63F612F5E4D5524EE
B54CBE71C1D4F4F126E8B7C84A88B16D677CD7DA19796E68C5381B95536C9E85
170EB7987CDFF5E4C58737220F069D994AFB6A719D84105D3B755430F803A3CC
45C88E488192F21D8C451EA0C7889619D3A48BE05B1AA6177F67B6921C4FEF25
D2B016E78FE04ED595BB39290DF9395082240A82D7B7997A45050F09106DDA7A
4D73D7874DCD3A3B56A71CB0901BDCF1577721D4C64101C91398130FDC264B25
92754389929AFA7E594E273DD093BA9321BB60BCF8F0CDC41E6804AE5857B4EC
6D026DE20C6696E4A334FD3F86D9EEEFEBAA14EFFBCDB040529623807072D3A4
3A7F630A3E088FF8E52F7E7831D01FC9AB64497AA97538527DE9DFF09E87251E
160A39688AA006700EC521F82FEBC8BEE0E0DE27D686DBD546AF50AEDF16A667
08E64256603374547771F858A7E07F7999665574AC6B104B9D3B63A7D41E4356
014E230810041114687D44FF499309676940C6F258757028FAE9DBE2D55B2E03
75859C3814AFD3ED19567C25981D4EBD96347CFD0648004BD02D7925540BE8F3
CEF20C08595D1933F1C696484448E81DEFFE5AB44E7AFB55A1C8868C26FE0CB2
4F75051E0E2FBA6A79C05FD413F741D692D46A4274B9F1BE1A76B3F72485BC3A
0E2F1C5791ECE5D5F12B0E6A575E33F581A8379904CD71E61E627584044AF097
BEA473801D7865041C0A34DE4D1005AE645B47EA130FB03558BEF90A23AD61BD
D953D2623F1C18A2891E74AFCF481ED234816AC6F5A38E7962687E8E4399C105
3AB1B697E4121D1652EC27A947D2BFA2091FBFE6A77260DBC0FBEF8B2EFF9762
FE71039CDC8175A9DB8B945F5171C42E142296DD3068304D4D786E5E3B879DFB
74633EA039575CAF4C92FCD28BFBF975403D9DF608132CDC7DC8579671047CE6
A8E784AE6FD1D5A610048535B160AA9CAC3B08608D8363DAB2C973CD868377EF
A09BCAB74D2E2437BE9567CAEE4E12B835FBF10935FAE78DB2BA0B04E738C27D
E675E7E10C5B937ACEEAEBF5DBEEEF01AFC42F9A703A258F2B6AB35CEE4B1736
4F44B9CC7FD1BACE6CAFC4B451AAB40759769E3F474C0F51507A6808ADEA785F
C91EC1DDA5B7C69427C65F5E47089018196EF24109746D510B43750BA65CE873
792001483681CE71968E166E4A4C8C2727E89BD2F229F916D4DBACD23AED658F
7C24D214D5FFFF87EE6E99EB9657852E3947BE75E423C7FF80AA2AC429B7C6DC
E4E5AC96B16AA1A4F0C469CA1C21AFC28B30A3FE3AE0275F7B9BB09C3462DDAF
C2DC2D42D56E86FDC20A8A3AA20203A14C8DC63FE46F035F9319778906B9E9C1
EB396066F95E6D8F6DB1FAE3871882CEDC626FA2E46FEAFBA36B00C1BDD8A14A
7504AE322F06C468779FC42EC8A6A5553C61630AD8C8DEFC84B8AA2FACA07B2C
488F90F8BF5B749A6AC95B75406D9E159C6B2427067544D606928CEBA764AC06
EABBDF504FD8005E8E9B692ADAC234C2DCC6AB5F77B28C6361F9FBC64E8536EE
ECD46F311457965FA873308D7241E419590D6F68D8307A6F52B09C42207895CC
F9D3D8F966B73C5839519AFD3664DA361178BD5B8EA4672B938CA0DA61CC77EE
DFF7DCB1D9B1374C26669E469E31171BAE46420EE91F8B3518BE17473F1F7BF3
B44EB06CE1AB7A5BD5F31EF7E492161AD7B8A518243C18F5CB0E200DBBC7EE4D
527FC11F501DAD4F9D0D48F9BC82D53DCD31676E57E745A58B0E1335E20498EC
6C916C4A784F8EB767E255BFF306FFDB6402DAC4814084639FB938649E392DE9
5C7BA78794D75063B06FF6FE8D86B4E5CC0842FBEB81738B376A38F25817FE5F
D84524DFA9F68392B7806FE6EDF0AA4C57FF43530F149A8D29CE67D7557BEB4B
ADB3CD14CAAB634BF4DACB13E1D08CE748D59469B3CF18E4CC48528B5518E7BB
F3549FAC11083D113C2E7AD41C3ABA5EEEF15E3BBDB8740C6050D2B3D914E2DC
6B39BBD53CF5F605DCD5AFB5699CC43455DB12DDDC4D1833D9C27F561FF01261
D47DC4E3BC9F906D96D4614DE507CEA77EEE20D42FECAC095C2C7A48296ABA59
7E4528AE7F477091CE77D33A56E933D312C1D430B13C72DFF1ECA40E3ED14F40
FD2362D8FA88B9AE9D143D4888E5BF7E633CC59B3AC33A40A6124B7139ABD9C4
22BD9463A149F4A52A049728B281CBF3F2280D3B75740617C78C582888AAC194
BA6E8CBE0B8D81EDEF032D56F17B9C2A42622B344899288B78CA966429F780D9
53DAF706504CA535A6F8123E0815DA9836E5ADA62756E31950139BCFC175643C
FBA06531691F09C5BD0A5AEC9BED61BD56232D680E2EAF9E8D8BABABD7A52F40
E58684B5A2CEB8865F7A02E07D9D1C7CB22E4FDF854ACEDEFAB78BDDADDA6728
C89C9A9959DB8E79733F13E8EB2945BEE5E6483308EA8C99E7BC5FC5DC2614EE
D3E57641623495A09574175BF8C822D97C4036E567D87A9BEF086F0B3F66D1F7
BA36A0F6208FF79BAF920B8912D182F7A968A926557AD1F9F33FD12106134A22
80028777C491E549BDFF1614352E35B2AC8C59D0DC106C73420164BF80908F18
58EF8118D800B14EA83F5865880A6882FB3E4065239F39A106F754951213EE11
FACF9A31A487DD1DBCB0428CCEFDBBF36CE628E76982343A353723D57A529C3D
192D4424BE02A725B1786693D7A8019B8D5630738B1FDC24E0A39BAFB860B56B
75FD5C029D21DEB55C758266492B5C77E4B4466536DB2E63E580E1EF388458B0
D170AC05D7B5DDBBB137485C4B035527389570417A4D8ABD8E59ED08F48E7A79
EE8CB9820875E236A1C8BA25D6DF0E2672F0D67773D68D52778236FB769E8F4D
C6609504E137539470D05E71607F09C7270D1ADCC8BFCB3A420228B6D1088B51
C2C75F8F9BAC418D479BBD3860B908A0B58D7181D36E9EFFF36D28EC96B1904E
E14EE8B316F84D54F94D44CBF425AF82243CAD9312C879223E79FC238AB68D98
E51432E0C4FAB3B439F41A8BD0EC9E8A7CB463ABF80E29209A1648531456BD6A
5324F63B7F24243BF6D4FAD685FB584E210D327B348A50AE885E7DFE5ED38808
34BEFCF8053B2560DF7CCC4952B399EBBB0039C5BD0EC9F8799F196647C525A1
98D007A96790B414BC20FF4F6AF8C2C9613496FCE2173D0D05504D678D461C90
705BE14100C060D29F6A1E7A267755ABA7FFB0144DFC7C411B43EBFD5486EFC9
348BF7A556E98FBCB58B7B41393D39082256DFD7D6FB62966645EF420DFE56F3
2EE53A422BB096AFF5485A32D43C47515F781199BC0E15D88ED8CBF4281434DB
211D75A437B9576ACBFDF384433ED56CD180541B6DBA3581C0F28C99F454653D
58D2124338869CF1ED630988544E4D431A16401F94BA6733F60DD2BD1F1878E6
0C70B094016E2C94EF0E81DE5D48764511C7474753CBC25956806EBC0391817F
DDDD86110467A3296CD2D3B1C04F41A4E867288152F37C064C915BBD5CF06773
889A07D77955032658957F592BA4CEB07B3CCBC6502F10D456873F6B90B40E4F
3E4B16F9A194FBE972916BACF69CFEC7A579772074F107018B77BD396A734F78
ACB71F899856B588AD8B94BD561024604994E21388DCCFC5C8A1458FECCBFB44
0F2ABEDE0B47EC23B3D84D57E9C5BFF644A5E59C42806A1E0C749CDEC972E942
043DE475C398A7CC375522AD1541C48F13B3748F5709CAFC23CDCF4117D139EA
4C01F3DA949A4A411099D905AEE345A2B4CB74081BB81FDE23548B401A30C3EC
B1AC68F9240C1B46090850E2A6291A27B5F5E8D90C55279318E858B8DF2570AF
E7485ED351933DEA2B6215E373940776DF1824F77E72FA69BBD7048B3E0935D0
A1BBF55B7421CA8A7FB26402625AA2EF8C2AFCA452C1E7F1CE97E2A92C452C80
0EBCE756B159ACDE6BECD8FFA29832244AB372DBF69A78BD4A845F5B5ED1F55C
12D84DC6514D431F6F89040460683BBBF4054A1E656F04CF0068D03EA66CFA43
E6607E67730B877F7E358C711EA7D7713976DD182244CB763CD344D38CA6AE97
F4F2846F50C7B3562C65B20109245C74F3C778E40CF015CE9BF67D19B8335AD3
DE4548B23B74FD16DBE52AB2D6BED8DF25FF061C97E23465254AE14D941FB726
69C08707AB3B10CDD7D2CEA894903EA3B71F291B3D3E763BD4BD8CC011AFEF9D
F0CDAA4ACC23030C155D5F7504920FE6147CA84921C87D9AB7CB55CF8F3B0B35
96884CDD54BD6C8D9160932794BA0425769D1CD45A7CCD1419421C84DEAB5181
513ED7BEDBD48C1FFF61145971580E67458F1365D159D94EFBB799CCA74F6F3D
577F6E2F83E0C7948D29FAFD7A907F186B52696EB8BFB005FA75936F7F57E2F7
60DCCE028C46FAB97E2876830B1D12C5A0633CC4E565B48F06B7E6CDF1A31E28
27B425B300642E3AB224D9A86180963FC59F3C87B4A02B017608CD83FDA9C745
1342832506276C2D4F070E07468BD20B2D5596C883E9E3BB2DB27A10B77F9CF7
6881FEB48B7B3300BA84AF4858FEFB1EEC5F36E4487C60851DB77C61C17D7E75
07BF708F7D264C97ACE93017828770D0420DBE454F4B1AB7B589AD137ECB3F5C
BADB847943F5CCAE6C386E9B2E165160F92183269CDDE1AE75C25390FA65337A
F8274ED62B6DB17A766D3533A82920A110A8FCD56AB6F538CA8429703BC5B9D9
0FD91F64E8CA675C39D8607645184D37B7ABF4F887CDA9AB7C81F29399A0AADE
8E5023E3776304FC875585BE0DCF3F4AC0947358621A3C0D3F3B0CF2D26F2899
A8C18FB2A1530AC148A382212898A79C3B0B3B36FC65D44DB9A91330A5BDB4CA
F1221028CA20BB19C3C87E469BE4814AFC52F5A8B6522DD7E6C158B6B8B9997B
A58880EC554E52CB89A8E93C6CEE8AD06618C5A4F501C49F42804D1F66355B50
F3EFBBA3684CB5D66786293A0F2940600B9ABC13E3E5542D4BAE73BD24D69196
C8F30ABE49FB55CEF74B6228BEBBB69E3205A2313607EDB74A52A4A255497259
261E83B4C382EEBCF73BA9DABB2BB0AFB80FCC5303418A245CB682D362FD96A4
C903106B6016CE6A51FF7E4FAF16A66536B89F00465DDE4F23090A9C8D6C9323
B32899D32543EC286120FA5C8B6C4C7CA7CEC3BAE86F1486C031E9F2844D1D24
F5C811D61E7C9878A4D74CF33FAFCBF681EDEBBB30DD1983ED9703AED9A1E3A0
8EF8EF84CC2403B28662768C66C8BC2E9ECE2FB1F131A222EC8C7EA12B983BFD
EECEB72FEB71D0073B783B56F8D0C1F6A6A155C548306CDF9D3E3AD9E56675FA
319BC5B1E79CD94145CC5ED1D0636DFE0C58125180D3104A63067F8CA64973E6
0C16D5A05C4FFE295997028FD2F859A5354E02541531BD7A6B7D20986E3387A3
E7BBC642130952B787BB37FF1A9E5AC2155A14CBC01374B8D6DD49926FBEDEEA
44A0411A4610F8A07A93A83812F16A60553FAD511DB3CA1B7BE9F8B67859E4AA
3E550E77667AED86223BA26FFB3AAC1C6640A5570EBDB375CA8B3D4154191383
D37459B6718BD6222DE1CD0D717B34629A7CFC111E88CCA0E0ECE9F559B3B578
22CF9A0919010990B1E003B43ABF9A94F773EB447A941702B87DD5409AB28743
924D218896AA456B37909A99D71D67885750396F8A2E8C18917F3B0845C051C5
7A5E6195B788220101ABE03278951B7FB3C581D6FF329EDAC994B06A9AB80E5A
55B389246C44D60D4F71D625ABF40577D56EA6A57903B82CD149842F45E71C93
5DFC85682FE83DD93DFDCEF7537842D59EEA7E518CFE813194982E958BD8E37F
7B53E27C87B803F4EAF43A0E9F431E6D42EEC76CF7C1977276D03EDEF31DA905
54E06E4D5F5E9713F6CE89B70B2ADA710D6732BAF46883A3092D9EF6950861CE
956E0342B97D2E4F4E2D8CAEABB5F2242A74C3AC9ADA37FFC4292C1E4D53CCCC
2E64852362E03ED3A4F99F65AD873053E628CB86F3AFAA516AED5C205F75E540
05EDEBCF016F87272EF9B3D4FA4C523F7DD603114C97D77D22405C697D61F2CB
30D121D1B058BEB68B4614EB677431E423E091828C1D59FD1FBB9CDB424E37EB
023A253A927044A7A0D2A465D8DC3776FBA6B01F06CD8BBE3205BC62D750204C
CA40A9D1472C0B92AD265B47FFE3396E1E9BFB3888E8D173DED01EAFCBB36854
D0FB2DEACD49550D4985243FF5ADA077D49949FD8E628E094C5515CE4E890A5D
DA3F1E130E7E9E696057D213C563F1A647C267BAEB1A5CEB9ADD3275CF695636
0719C8F13255FA066508A0C998590A27FE63B1A5978F99B531EC298276C99FA3
48717A1AD312CB794AD76F7F6697B79EAE99B84CFF0E8F44FEA14CE7E5C9ED2D
52A9656A9058DBE56068206F75F83B7657777749C3EE4163AAB1FB190519788F
70C1481C76672EDDD0493CDC2A66EC13686401423412B2BBD99A7064E462C8BC
F181053B5548CA2505E16B5FE71AC61DAFD70D4961EC4924AD377214BEDAA206
6B84468A16D2629E2C78306F8557437416E47A01E15B09EF343357CF464B77D4
79BF87798EE30159BF4D00C054E8D2B6ED624E2D5A7FFB2E1E4A0A8488CA8087
908A79B99FAE9D2ECBC584D3F1D3C76C4B5A2F3A3A8C52B0C2E99364C6752060
3203B972370E4EE59AA9B16DA25857A339BA3A9A1D2C19B4E9F20240CFCE2D9D
00E1395E92F4E35E0B33C5E80E8C7F8E69E2CD5EFB9EFF84A326F3E196BEACFC
F4ABD3A7AF031738F73FA7AA9A0EBEE3508FD9A4F6C0B30F43C68644CE0CBD29
FFF20C4E26272486DBE5B6D22906DCFCAA47D20CB819FFA4D22585BE23F935FD
DAE231D607FB6DA10F20EF7D733CB52E64C39DB06E07A25E873D44B437A5958A
DE60720431A5A56384C20F355B7493764AC15EDB0F50DB4933DE69FA8EEF943F
E8567DAE0071F71DD9AF38A884943A052AA8BD17714BF5895EC950A15BA03D9E
85CDA1E3A99A32555314D8F141C049EE8FDDD9DA35240A7495A59AD9F92E5F95
BB1384DDEF278E1F9BAF7B72044B42235F88ADB956BA269DC5DB3FA8C3901552
0524F28F7C507D042A47755493F1B1BBB3938930F467114FECD60A68E8F2939C
4828010E3E4CE20E173E9F35BF4239F131250C5C67E50FAAC40FBCA26C148C10
19751A5C0900C683F86E404E59DC9EC6FAC1E932664E6061A1DB307195E0D5FD
653F6CC581859AA253B6A19C12DED8B17F1332D30FF29D47A713DBD6FE45373C
378E09800B157FBE3832CA53F24A30B1C3C6AD82D66E51F82BA50C77CB83610C
542403B6033BEA6F4E6DEC51E017837C732908258E51B9931507005E2C54D4E6
9DC55D579E2416E246FF2060251311C6DD25968A572331546E22457FE42F5F83
934CFE91BB62BAFC52846F198DDE348470BDCA3CE3CEA0F4BFA5035D8EDDB85E
83C9D4CDADDB4AFBEB39B81CF527B034A3074143636AF8296BFC0F0BAA16D951
19E56E65B9D8131429B5DA9AE0776FCF96E1DC6DDC4B55946902599F29B11A41
350EEB5E2D6A4399D83CED1BDF796614C10D9CF585EBE9444496F4C96A63D228
92D4D00BF14EC52BB70D477CE149C19BF1D4CEC0EC09492EA1443C2F23A194CB
B9C4703CEEA3B0754A1CBDF8E5C345EDB4CFD62684E64EFEED197EED9E8FDC2A
C105ACA274289834519EE81265EA7DDA410743273A5D756213B5257542536726
3E04753D81435BABCEF26223B25105DE184E6821A28BBC59356C675CCA0EDF7B
81D70053ECFA04E5C7BB90482C710CE76B1D1D9784CF409508F078F7B157A021
1DF2067EB7EDC199C968CE4DE61014DBC5054887012262B849C28346C85F5D12
B47A587D0748FFA9A3D5507B685716E08EE7B3C863284CA638162E683FB3289D
EEA5A4FF0F9BA36EF2A68D54B75120F2489B0738309743316CF055247E5CD708
E30283E2883C8801474F481B6F69AC83E117B7C3DCD8FB33765819D7E7753A53
24BFADF47CA6B0ADC1B87CE1EA4B58B6069F1F2CCEB9EA3F3A9CA0844559E78F
9CBF09C1369DC2F05BAB75F7ECD42977AA78FDFF677F4A85854B059BD388AE2C
04D9D6574700329055887B5FE2C3FFBA2B4FF5DDA449FBC8EEB6E844F4DDD712
1E8C71699B4E5749E32094FCDBAC49D2A2CEB5DBE743C4675398836E312E4F90
85B92D48E0935F335CF1D7D83B16B777A83DD17D7936D3D2464AE124516EAEF8
E07AC5476013CEA2C31AB87C3D4E9A39F52F51A95781A9F4CF116EFE5171F99E
1BAC49D2C13F0CCA6275B90D868FDCF745F72DEBD25A199E654166011207FA57
D7CBF6E65E470F9FB6C4757CC9CFCBAB2A50B3EE91940CD115E2C30A66EE9CEA
BF4EF3248BE7F0758B6F8D6118A93D0C7C809936E9209C20F9DE1EBE014BD6D5
1D9AC2780CCEC9192D49EB507A28DFDC9EB6EE0C13A5D216E24DC4F26782E185
2F22514076F9B1D5746836703F6B5C22B65E10C817EF182E2FFFBF559A1724DD
6A97A837C86EBB50D643EBFC2FA52EB9738FEF838B5B5DCF5C4990D2D8932D27
37EA686E2F4CC02149534ED477CA754F3A41C3E320F4998DE5E7EA97A9FFFEA7
4BA71B19DE76C44BB19B478CDA0E11BEF0303DD0FDBFC7ECC6E9206A8C63ECBC
75FAA99EC0C3CB7351F8DFB78E72133DF0A828695D3A005C5F998432AD0C0230
39F4DFDB7BD6676DA612596138DC349A2493623C5316E1A10DAB70429765257E
93B3C59801A2384A72FCD09ADD07FD17DF72B9AAD421E85770BB4B6B03725553
6610BBAF3F4B21BA9D243BC3F62020685A2091CF91F8FC52D1D5924568FCE3B0
4624F59DE1F574B478B27E090EEB7CBC0E10A595C0CB3AAA75421DA5FFD83F23
EA677ADFFAB4573DBBEEC64419A0A08F6A0BDBE8300DCC0C4E3EF7BF5A190851
8FEC0ACA1B6C2D824D1F9E230EFD11F7F9836ECD141C78ADB2EAEF5F95E9F4F1
C90A5CB4E4958A1803B8B79D6A388A90DB6B5633B45C0F9B38DF4AA36D1BEC9E
5C12D95D48361E9334DB91B9AF1F8F18AF09F4CE4DA66D24DC09CC682EF87D6C
59EE11358691AAABF570D42FD0D84DF40A3B83754C95A65B8D2EB5AA00A5B6FB
3045067FE68FA9E09EA1A15D80EAF9E72024C9383E65F32FBCEB2ADD35018F80
A40656F79946FCEB8DC667039CEEA1BCD9AEA7FABDDF8A6427E837A6E3BBFD5E
3ED3BF5860A75C61C28F61C78B7914A7A893CADB4EF4528CAC213345AE75FB1B
1FBC89D56F9E8D767EC06A3C5E4298754AAF5991CF768891BFB0A174AF344CE4
237C674C05E7DA47CCDA622405875C20C022092518B2B97FBEA7EEBA95842CBB
82CF0E5DE20C2C0C2ABA66D5D869B481E1154D3A2499F700B82EEBE40FF58139
159D653820D749B9079099C7AADB220A996E616BBD62D05A942074D0AA82FD6B
889411B5856138B070CED46A306653E28F75567940BD40D5FA9897215A0BF8C5
F3994FF2CA94EF1FB8872A6E6F2E041C420E9F7B9ABEE551580B4574D9458FCD
7296E744CB7B81D99B07E80A6F0E2361E488AF5915C3DB36351F679199210283
F0C7CD4AC426FB44035C14F1A1AC65F13A628DCF765620F9CB80321F464BDC49
6FB58DC282A3C4B7F86B8AAD7A3F649139FE67AAA41EC9ACC7EC61AFB8A485D8
9FE045CAF02A1CDB4A267C2BCCF13B67F3C78C3E2A9BA77F5544F951A372E258
80084D888551B096FEC14E56BAB63638622D42DF774AE7F2A10539AEEAB34966
B6CF462F97E739F508FE46F530734371DF11A05AB13E2852B90D74F033BFE85D
4D87ECC35421827EF1012D281FC53A95D41FC35BB243438DD698AA2B184487EA
0DAC710EB9A07F603FCF83F8B0379FDC6A888BAC9F31CD8AFA51D68808A1C7F9
5AF94C004B65A425DB20363EBCD529EDC0E107B0AC3BD36972630A42761C2C3F
0CF348A6C611307372128D4CC624A5E9EC2A9F9DFB8FFDA01981CBC0335AA8CD
C3A32977E3F75157D94B1C4BB286D5C7FCF1664D691DA285625F0138A52D2BD9
DEFC69D81A8C45E719B463E27C1EF7B297743F16414ED52B867313B1CC08B154
9B755F9A5B6FA8BF42E9EFB6222B91CEE235D0156C75566AAC0A1E6C6D472274
DAA92B78CA76309EAD2DA3E91A218BCD3BFFC761DC2364C7D7ED4878DDE7C3AA
FB1859AD396241FA748923DD0C1A8B7569284DB7E12D57B521BD6051112FA950
22E101070806FAA218976E5B7D0E2659F1A5AF63ECEEAA1751329B7BAFBD8843
2FA5EB1E4F7434ACEE08A4335418448A7B72BA0D74F455277877E9582CB5B1EA
5FAF904B4362AE4945B91F6310C94E400CDFBDCEEA30044E2368E47E08DCA169
88988F080162956EC449A1D7271493AE5A6E0FC51C87A9AD5668B03F5A9893A5
59E3535013CFEDC150D814AE2CD67EF735915129824EDF61B8A25E4BCBDCDCFB
3583A0DEF1E1052ED21E117D98932D6CEA3D101DA88DC0A40B04C62E4DF032B4
2D23CC8FFC7D16A4AA47F4A5B13B63C304343E7A8488813FE639E65D16EFB5F6
E37AC8421277B5D489B4CCB129AFBBCDE5693BF57464F7C8D3BE6AB156FA31C6
E9CFDBB4DF4C43BE9D7416E55F1D995B7810FEDC702F9E7447ADE7D12EF39404
3C5FB539F747E1ECD8284E3BCC210C366D1589E3E689EF468ECD05676FFE2FF9
E5971BDA8B1D4DA50B89E5A1F761CD4E4EAF9D6A01C6710BA51755F365525124
EE45A871BDC46F8B666CAC228C68E856C341524DBE66151FD1437A44A991382C
DB9A3EFE0953380D107C2C131C9F8E923D0D9A118AAFD9DEC038BAA9C4140C42
AB8B20A8592AFDB0EFC6E86BE763740188DA7AD8DD5B71A648BDF8DEE8C80CC9
D71123B41D7133363EA202D34531722E48C84F36BDCB53073D42A8AACD60E704
9C9CC801DC802C2C2D07A7A2F55EF29B012FC6689654D8F1679B02D9853C7F4E
8B0EC66ACA3AF5AC7066C1941A8FCB3685763FCEA0F10D42E757A1E8BEE1CA1D
7E23B04A517E7DE7BCA12DEE3FE35ACBC1D15E39E73AC38C3BEB7C039DD80638
2036F7ACE2FD2AE0C660483492EE753F406E8183A080A887B69FBF3B92595CFA
1C94B32B02374BC45B9978D87DDAECD28BDBEA95D7DB7DCD610B790E75A13B1E
4385D1F0664C702F774A8C4A9BCCD246624329B4C5C9A33F03C09156004DF732
0680AB1660615754B1E5C6946C74D245E53EA83D4A8EB296E5E70B694CB2C3E3
ECFEDD0F49AD98F6D65170FC717FC224FB6D463798F65A87A7ACA46E1310908D
710DD72D8D0FBEA5B1BA2055F10A56A630E2A676699C226D666A22C2B18BFC72
EBD4F45D6AB78C853359E2AF2B8BA17D4CAAB317555586AD3EA0A773D3F2C821
F78A902F5554241874608468A3D8C225E418838EC859EBE7CC263309DE41CE02
2944A3AACE5D9981ECB1EAD0E4A237794531C3F3236CD2949445E3C735F3A74D
437D234C04D4EF1BD6B521A03B58C7DC8A87ECFB5C2B6E73E24777D6C55E8433
A6807DB4D61E9DABAD9781E85FB3DD4B2ABE57C1803889E8941C51CB5A5F3B18
A43E49B6071D73C874DB2409806EA65A9F0F15C23C55A7B2D74EDB5BF26BEE8B
2088125CA55CA1A79165109BA75A353FE7FE3E83D3024E824E27E9C31D85B9F1
0EE1
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTI10
%!PS-AdobeFont-1.1: CMTI10 1.00B
%%CreationDate: 1992 Feb 19 19:56:16
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
/UniqueID 5000828 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
E768F27D74A613F4681E80F1091A53B9828FB522CCCE1F84A46CE303FD9057FE
62931C3DE32B82A38A9BAF43B369AB9037AF792F8A1A34BC2736DA9BEAED0924
50C8BBD0DD2DFA379B099E2E6681FC2BBA58FA2D4FCDF33229A3A1C5B632A5A3
145ADACB1C3B4B87833E0CA3A859D6D3AF5A74EC59EE07F20605FCCB2FB10F53
D9C9F125382D1BC0A604ED0DBB2BFFC63FBE695AD6B30A4E2CAD02CF319EA309
75A2DE42A22E79C816B98348BE6BBEE8159CADAC285C74EA0D1F20571055FAB4
9E3BAC21D641FB40D9BA04BA3933519A8EBE2B1084C9071BEEF48BBADA8B059D
FF0B57ED2B8280CDF08F19B9B890AF69312833EB297105F7B500EBB3DD56A36F
FB7C5693E840D2A7768FD65B00748CE1CA30810A4C8FA039C4F553D7133CF282
EFCB0DC24B82B1A3F0600B7345D3ACA17F12A6DC22C128DB01C200577FF47A30
FDA5DEC87FE125CB99AC876BB4C14D6C358E3D02CEDE6FF8759EFCA95A5996A4
6EB4C7AA6F669EA337675BC31DB43C71201B5F6BEA816112C82E2E2195073A80
B3858095988A406EFD79D4A65DC8628C91D38EC9B3842C08D0861772486BF40D
26382F50E893C8CB65F8DEEF17A915BCD066ADFDC73A951D99AA38E1A7928B64
4276BE545FADE98554F859588A306A6AE01620F37119C27C9931F6AA96769ED1
8947B6BB7C2B56ED7D53B63AAB919DDA5014EC3318BDA5AF6EF17D7C07D292EA
83F4E80248FAA4FCFA94E253FD70B54AEC9ACB84F9F90809EDD63BD60631F839
589872FB9275098114783766A7804BA263B5D15F3CA4B359BEDF22D4B5F96361
4BDF0FC0B151219AC43785647E986273932D4356611AE5E13065D6C34230F1E7
0591921CA6852BDFB9DFE24067668C3371ADDD5CC64873F5CFF73D2B71B29249
44C76F5B53B5DA0FBF7DA963868501AB63F253B9B4909630C2894A8E8045E57C
350CB9311682D132E2A3DF8B82FA193F9394A86E103C46A1BD0149E292D50431
AB4279CA917A7BC5D6A9886A310786D345635FF11E8FC04D947DEDFA6F1B8C9B
5AA2F7FB70E10810F4E1B25933B7D27FE1AB84290D51A0E09BAEBA3F0B224BCD
5C622EBE0244358265F8E2C5999F6DE4A860A989D4ACFFDCD7F7BC33D63DC152
BCB4FC68A1A6778485057D9B78DF446414614A2A3E648D664B4D2FF95545CB11
D52E4D73490BB2D9262009FEED8BBEBCB63B3270FE2B560F7E9BA154E45ED87C
DE44072F1DBD25708508804FF551219661A2D699797960DCAFD612862BC0E6FC
3CC4963F21C50FD79A4BC4D80DFC862F8E9F355E6EB0B84A8A0AE9AAB808D44F
65E2E0A0CAD33732A6A4AD7EE259DE017D301AEDAA709484F72E88E20C925EC9
80C9EB888CC382C2E298DF0AADC00B190203DE8BB7879E41AA2F549A7E60A043
E801D3AEE7C3F2657B0E7085C18325CE0F4099F41F51F7052348981D7B508C1E
5C6936DFAE8BD6BD74D64A223EDE5F5CF6CF61D5A6E67B9517461EF0843509DC
F136870037E0C45A7625CC1F51DD43C694C695059682990293AB911E0BBE1F34
D6795CC22AA59BBB83B1CE8FC8A03CB22377988CC45BEE689E6CDC9C28B44B1F
77AEE85A04873D514ADE89D273E833AA1868365CB0B6CAC8FCDADC9C0002E375
1118EA34E1B39A580BE06D747384B67C97DC8A21B3F8B9D4DB45EBE8178D779D
66F186ABC38DBF37CADE18B6511D436D206DCB357905D2BD67AF327BF5FBB025
D1AFCECA4FC59364B53713C01416EBD811C74FD9DD49C3B79F25094865807C15
F7216016591BFAB3172CDA38B8C7BB3D584F37AC75EBD593BEA3A5AFF573EF19
54039C3350915E102C1178EF3753C0A8415F0587D57AA2EFC317CD569DBB7D31
319B517B3EA284DBE3DD73E948BB41CFEE44EA0BB71A1A552C92F153D0FC6634
946E69A7848F6A79BC00DB8503D9924609BFD26BC5B902547D09A411C84308FE
67DD436CE94D38A2F19E72DB91DF6B75A5FA0336BE95F868AAC70C7DF29FAF35
83118238BD250A14D3E98E2DEA4638DFFEF0DD40A5A2205CAE4F81F76C0FB5B2
FD8C4B52E04E3B1A2DE8B06E9966D3BCF9F8229C5A93560365F6F88998EDB48B
30E35BB674232BFFF59B5D023B211C53DF26A91177DF4B4CA4DCA05FD8BA9107
A0DC3A059F585F281B4E6720301C0F8C83874A325B0A24B18594D39C94802F0C
7A49C94C94CE2817A8BF6D1D5A39E9718A2FD600A949947411EA27959A2D7A40
FD16FC8BE73E29B15FB43437FA55B5F178A09C1F7AFCB7A7FC4C2313B3CA3397
60DA34A1D256A0592EFEE1426A6D460DDAFF21F4C3F81C4328DF3AD732B50C6F
DC1C991924F55D8B61FA42370C462C5F23AA8A1A7A89B95664977043FB9BE8F8
97A772CE309C7A401C0FE4B2C34D0DD8D414795E475219F514640A7831E4A676
F792FA064E0C7719B8F6BEDCA817D235D1B535ABE78AE6191697ED3BB85A3089
1F5DDB71F4F9E131FD6A25EB2E0C620C4DACF259C73452A501677DFE2B5FE806
5F67FA98B50A127E3B51A9C3E54890222CAEB56C914D68A74F957E2168D03CF1
47131F166A146A3271E36E6BEB863E4ABE531821D4F40477CDAA1004D769935D
2F6BAF9C0A94C068BBA6CC7906D481A1297615C19DA8D84B0ABCE02489746B9E
D856DBD9F7EBD4B4C99BCDDDA3AA9454981348AAA9F0CE4782FF24E7B2003C5C
37283406561037BD961255D25E87B9864E86A5A897F4A032EFEC611915A4A0A5
4016C79C2416BE05AC6B0B50CCAED3108507A8F0510763B6AA8740BF94D68F2F
AE642B4DFE8655E0A28AD060D95CB36AB1AFA541F225EA1123843942C5088589
4A6921F69D8DDC85511A5DCDC77EDE9C8A46E3CDC86DF028B9898EA701875710
28F13AE8ECB5AB93B85B34FA25512E228898FF39CDD51D07160754ABC43E4AA4
830DEDA9B1A3C13C6A06AE72D235D4BF548E2AFD5D6B26DA99298E88546A5AB3
7247D83740FAFF415B62099915A8AF7B4551088C4A5D4D34C3BDB1FBB3E42283
E095925AB5728EDFB33E8655240E7EC2C831C87463CBA63F701CE0A0F8CB7AFB
935D001D5059E1692CF3ECB6B55A9BD3D0F01F8D8A0CCACA797D8C52070D6D1A
C6C5C931F75B73D656958662C96C16CAA764978E44634E59488AE8162BE37770
4029C4EF544D6E37D173E3A0A5FDC665BBD0C09BF2B8CF4CAB3115520A557ABA
65400294C23DB243DBCE8124FE7E35F65576E2C582B12BBD2DE9348187C21615
18233B403CB4CBCB0BA78E0D294EB09A83833B576E62A898B28EACE6B23F9EA8
3DDB16C48919C8465B663FE8436471B8A396C3A774E7891892AEC47E60AD172E
72DB64A0DD12C5F7FE74F5D312B49D8F0115CF838C32A6A9DBFF94F13116F0B3
50B6FB65EF2E71E6059CD16298FADCAE9701A5CD89B99D199B5B00C45050A6B6
E5FC5279B23ED323BED02BF387779CFEF3424317892433FB7368F2D5287E95DC
FB2258E5FF907F853F44EE099940EC54C70B562FD8CD2B32DDE4FE28238D504F
93C300EFB3A65E7BE505449E9DC853D2EAD017867D79814DB51DD26592CC976A
7558BEA39993B88D8B7B5F4A520BAB7B5F0CC0FD6BEB6D61A7DAF6858573783D
7009F0217D0F97E2CAD7F51CCEEFD937DEEE51A94CF20200D93373D1C172067E
654C8AAC993C26F31039A9090494C3D09FBE896B57899E0869E37BE8AC0A9DF0
55AE0591B1DEB023A40654EEB8368D9F7D559D83D25051A9287596F2EF0C5575
CDBB38138D3FDD88F0E906C7A7FABA1668DA505C71319318798D401FFDC076F8
1B98D72A36086ACEA7C30EC09DA35289381E9D27EB4F9DF6584C4F9CE07C40E1
B4E1742FB341ED93C30D830115218CABBAB7F638536EC84A341815D77791ABC4
3362FC1B3055C45B22026B49E06A9889DEF04737C71BA4825E5FE966E83B5703
D98701846414B87B47B4691833AB87EE7DB8A4FC4CA9B31DAB0B98E3854264A8
201256C1DAA2FE43C182AAE59B4249FA5A484E74E844D984F28176A4566357DF
3498FE2F23A7A3679869DF7C01A727201D16EC9209AE922D49B2B19AD1A220A4
144A6C0CD5BC3B2A516D9AA29751F2AFB278F935E44C49A16C5D79F777CE7E1E
DF0CFB098A0ED0ABF6DDC57991C0E3F0DBEDB788CC082BF2D99645B05E2A4BF7
88FA521294FA33A1E2785000838BE0153AA951A9B9EE5DD5CBB7DC82BA389B51
4338F6E43B56E8380F61631770A4F72170F68315987F491A3542C627849D009E
499127975F3DB0329AB67ABD5BA2897C32C19F34D6DA2A0DDEE095537E987299
0CBBA17E89E8CF5EB59ECEA510AB341AEA705D00670CB6D6957877604D5DD3E4
DAAC5574F4407679EEF786B1956C96A183B232E7E8C462C4B5683695EBF4D380
FACC902C06CE0A5ECA12981A60AC703F1630020672C4A94EEFD879426397882B
59269CD1D743BB497B3FF46173FA2F1D76D8A4969084FB38503FB71C0257B9B1
9D991483AE67F340E5609ECB0B8D82BD9AF6FCD99F0802F8E2F4E49EFDDD74B8
3479D3BF1D1D791010A404D0DB19704F44EAE19971541EE77D1DF54485168543
111E5588793DCF93F1A74465112F4AB057349A48B385BA038D102494D9252A7C
A58EBCFA6A295689CC5F5D7412965BE9AD56AEC28366C2BD676467FF051FD765
A05C4F82834DD5585D130E5476D9B99CDD96194413F28593211756EDB51FB848
A06FFE84F2529E0D6EBD4AB530FD77946C04139B8562383F161C6B7D5A6B7B44
3CC3A8F440F196015FFB157D983BA7E39AE8D91D5AB49E91F1441D2F244FDF71
45FA571605869F4A2D8D117A6E208886B174E03ADD5CE437200162517AF3C293
4B1ED918EC9ACF684E2A8DDA6F9E3437E5161AD4039A7069B109360B24CC2544
C0815699575204B44DF996A14051EF7886E6E5D8C0F8A2A308F21576E6425B67
2F612700F2E310FE27E54F7179CC4D4223B92FEBD948A9E0EE41C5D48DE6D104
D62F4611CA725CF281DA305478ABFA95BA9BEE882E0B39CD4FACEF819FC072D2
4612F4D39B4DF07278BDAA56E681CA336389AB30E35134E57D9E724C84533F00
C4E6AE33BDE834664DD0EE2A699FCCEE638424C32CF3C0D15136CE708BAE09D5
5D4DE6DA76672638BF530CBAF170B8EBBC90B332F49055E270D5B879B33C11AA
6E8C66AACFDF5A7BEE2ACDB1721F747F494C8B63F6292DA658219534E496B4C2
260A919FAB1146DA3D860DCEC9BC2818592D1C3341BFFC9AD29C03730AA0F97E
B0ADD97E6A1A63B8422B3CCE2BC085201AFF63ABA25A26E3FF63E7C410F8D2DF
6EC9AC1EC788C9C07F082041AE2661896854E80868A24A48892430F325930CFC
FCB8B6636797370F1476E23156B84B75207B9C1B0D838ED4DEC2D3FEE4918793
B37DE60AB4FB8D18D5288BA8B9BD58C526FD51B5B5BD9D18F87480C97E18631F
455A04B37ED2A206E45A2CB5D6E395B3D05490AF4D08926A2464956B538C5806
7A5C15754ED261E4C2E6339040C3E486AF59139F2025A5728327B57B0D8453EE
866F54018D4D8C0D97B764F5C60D18C9B7488223BD620DBCB02C5C7071A17169
65E47B40FBADBC63F1A69F617F37C027130F4FC570B6AD07CAB20AAC421E3E8E
33935D182AC6415F17979E9825DB5444A8C617E1D04003F1675FD96DEF5BAA8F
A3FBEE425669B27810F507EF87A50694326B6C372256DA3BE79A66E1913C061A
4524BA363E2DFAD182C86AA926D6FA1A85B8907B0245B9643AEB7B942598C05D
9A159341D41EF2FD89BC9D5AA9A91A2929DC8268CE4E892F72C0B13B8534D319
B9C718C77785ADE40CDFB99108CCCC9FA9CDEE270BD50B70CD9BF2F8F450EFD8
0D3BCA9CC20AF58B3CCF37FA3E8DD03FB67861FC3EA2566C5E3880DDA541C612
E55D968BAFC38CD5F0A4AC692F587530B86B09B8C9B2C7F086DD16B42BD3B7DC
22876390DF24C88BB23EF756423068915AEDF034735347F11CEAD8E30F4516FF
D3114515A9374F37C3E614F58FC0A781A7FF31AD26F6437956CFDC89D03EC0D3
4DC1998D4F238AEF2839CE382D2DABF49B4FE252E03BBA1A44B59D5A45CB6B06
463B9A553CD99F1397A0E3253E4E7D1A987B259EF48A4026F031A2CD522641C8
CE0B980B8CF2A25F6670CBC4D47FDBDD54D05E457509E29C95A36CF57B99572C
C3E2CC6925321122A5A02469387A20899258A6893464B5D7736D6982C6DAFCAC
C8C99C7F66F6F2062475D65F3946B4F68E31B7A01A5B79E37863DB5B919EEFF6
BF84823DB880869313F13326D8D2D7EDC6A93D31EA592B275535436C44A89929
6F95C654FA83B550A145ED3754064D7FCBEC569CC4B8755C06747FEC740E8631
BF18669E0BB5132F7B981B82256D8FE1092609DF16B6E8579CFD18FEE26CFC42
919A91A8B47C46CCE38FA93AAB0C8F794359BDBB18118B02D0DE80324E859257
26A76B10D6ED8B00B7531261933235DC908EBA6EDA2FA6E35417E882776C3A31
E8DB88C0C125DAF4159B67D673AB8A764A101608157D545E9893603E931BF74C
AAB1F29FDC4DD276C7EAEBE6C7736DF04CC7F957373E9917BAD84C21B5EC1D76
FF5AEE5D073C9A02BB44A58F9697F24DB49FF4B2FA77FAC53F7DA015F1AE2890
03B0B1776140F7D525A2A0F4BC704BC36B6C0848B0DFF04FC6178CAB44A71CC1
1D9356DBBF17C7F935317DEC98708262A234B6EE8B156650A551BBEEC386144A
DF1F9915DC414D490A04DC14E0E87E5D7366E2FB702DE4ADE6E43ABFF17F226C
148A22A73C5C6A1F459D2659D17569DF05CCF2B6CA996569D7280EF6542BCBBF
8D08594F2500570D52038DB34A85B3A1BF171633761443747B6FCB799BA97928
68323A1323C1D59C84D79F5F67C688E02D9B41A1FB813C8D928E205BF5F95A08
1B0EA666DF51C65B8AFA047992D8BA53C5938639C1C67A902F64A59BA7480C2A
A15CE90FF227E4AA576D47886A32DB979370F21D7D49D4258C0C8A0AFF75D73F
5F7890AC73AEEBEF309185C1366D1F6379D08806EA79D159EAFAA02719E253B6
27D2BBED5CAE7E475F3FC3C10AF0B8AC875CD66A62A08A7E60C30E28AE909021
13B108279B4EBAC72843C8F8F1FC4A6352E74C9CF706E8D3D98485B435A7A479
065A3251C60A0FDF0575631140939BEEBB6F06B5D80EBB190F5F36571735EF89
F104C40375A6C332C6815D6BA28936DBC927BBDCDF96A08735D8CF2984C57E20
316013A9DECC82948CA6912088A76A14CE956E5548317DA92C340FDD35BE1AAB
7832991EB717E1F43FCED9C7C53F1DAA0D9A71FB3DCACE49B722D1B2D0029B63
EA56F31F7A61AA2D2EA5ABBD4D973344EEAD78F70BA1455BCEAECCA100B62AF1
3271D6576A4411889F83C7E0076BAAE04301D8D613C2525BCB5C3560F2350B08
D13A4FA35966CA68B01981C09379BE55384A2AC7A5E93D486D777819C8F5E581
B787E3D895CA34AE533C3CB4ABB132D49D9F0338AA5CA171F98299C2BC860F20
7475002B5C554E6830A025D7A434193813BA73C2F4FCF13601F17A4C84DF08AF
C0B8245CA5F4D924ADBA485649BA1AE571A51DDE0FD859BD1FDFE3BF6CDF67F0
825C4B33B931C45E7C4542BCF763CA506043E568B22A7302E2FD435F9FDA5BC6
F4225D0F4402D38471B093D10F7268AE95C8E507E3F2ADE7C94AB1CA52BF38D9
B9490CC59302EA45000063332858AD026D47F2D191520E883E2680C13068B507
DCE3CD46270A3D47CFE2531F3AB44704BB8C16BD3B0E92E83D46A42E240B6C9E
113A88297E3F403AA784582699E0E3268418C8AE2C7F5B2206FCCC5B4A1FDFD9
C566699E274B12B712869219C16F371972DBC508AE37B9EF2E82B33665BF6D36
F4D0015D53E800AC2ACD1F2569CFC193D0BA8A86063960C62E80287690A75E7D
00A76EA9BA2D75436AC8720269E4D964619CEDEB4FD7D35754CC818394FC976C
735E218047FF24AE998C5A8C8C349794E7B21B3CD8441D3A5D8376CF982126EC
63D5446EFCD9B552CA7EA1564B6B928E787149550BE40B904FB376C4CAEDB706
25144A0102E42160424BEDDAD7452C17B9C86D343A310197A46979610413246E
E06137EA2F1507D3452B4DEE121677F16CC3F8171BE79AC31C993BBD589FA514
F116A3BFE5CBAB2E0996477AB98F6B4E563326B38BC8A102268461EE453B4863
85FBDFF2B7F3CCF79F9F35C00758616034651AE994C2D75AFE10A0320D580269
BCFDFE683867DB854E382BED44B4A91FE0D30C66C63AEAFEE1CBAAB5F7BA77B5
AF2F3142957425E72C432D048C4AF13D2E4795417071E5D113D253B4CB514ABD
3619BD1496BCA46B0764175E0351B08FE8ABF3B64D59E847C14210F1C91359D8
64457208C1C07024F4CC1EA942D43A172AF002C77BC6231B204E958DFF0F0C15
6E7D6D713284B58C369E63C27C48336912C6002DE673C9180F612413ECEEF86E
17F209DA36B93BC3AB5B6E22987773C78A8C9269CA1C0D1C8841B374AB5B726C
5A0531FD8A3AA83006C5C7ACD516A1BF1D1C5C70B8D329AE755293D81EDCC13B
93E454451B0D55742A19EF231A21859F7D2D88F92B308FC1E2CB01D86116DF38
ED10BB249CAE1EF2A4862DA0F163B1D591461DEECC8851CF63335098D13710BA
47B60E02AB0C2CF559288807080DED2361A2BBBA568A5E42C724FA581925C03A
20DCEF6AB54DDCF454DCA17AAACF5231280244AF145C6BDF63FC872D330AD063
137F3101BED59FF3CFA2C56A9F63E7B20FD60E4CA89607DA31F207C2577E74D6
5579B5E84E5AEF824AF98CFAA11945DD8FA247FB23C00F0D91AE00699CD2DC47
7635F69567F81970F77355505F94A50BD4FF5645ABAA40E0DA3EAB5A1DFC1A93
D98D0178AEE63DA0773BCBA2620323EF346EF0EBABDDE23ABC5F8BC28EE686F4
10D72050BB53094BF3D52616BCE097350E0C8E1D9091BEAEB75AC804CAC4D1D5
4ADC30F05B1B0D81EE204F6C6D2C59FDFA9981FD9ECC952B50B7D559CDE035DE
BD5259127ED1E2DFE382EA7A7CE5F8746C2887BEECC736218004FC00D1F95F16
A9445AA214B31C72ACC7267167EA7A87A6248EDE103CEDA939C12B44D0A2C474
5A04F7787640C936FE2B8B63146BD8FD2C9BD9DA861E3A1F68F7E97F53B68FCE
888A1B6D1B86E9062537C8783EB3E7873A3B765150589648B7C3E9CA0D0EFC72
E2A69AC2E1DB89ED73DFBB4A73D4DCFBF12987A12383601E39042DE677B99382
83342A62820707D7803561C2A3B7E2F2FE7696B5F0EB31C8903CD73EC996A2F9
45A236562730AF063176CA96A63EA7FC579A75B4A6F9AF10BE0EB64628FC52C7
E50578870CC82C3C6D08402AE65014AC343BD7C00F80B310EB9940C858A6759D
CFA3A3A20B239603395453BFB68C2707EE262711C0CE06FF9AB1B819AC9EFE92
442BDC02C7C1DF793744830854AAAC68EB28736D245392B222D6C5D9651BB05E
97DC88584C9D41355AAA0E776AEB4BD234B9D2E2426281E849FFFF0DEAAF6EA7
D80F7ACDF9924D94873E8E7517351A91BE9DF3BB272D35EC5F5B081684F4C076
07D0A85C6FB011D80CF90390B09E29F55A4205664C429FF00F2F9B9E709E4E62
92EFD9ED2531FA7A6CCC2D6B1368275D7C87C3C26C7C4A2EA5A0AA289EA72CF7
E2625BCA22B64BDF338AA9802F7482469FB9029D22F5C8C7189B6427EB25F331
7A03AFE69EED04EC4F6AD26816DE849340C06F2A3942051CD1331D36E46FCC7C
FEA35F64F9CBCA5108367937E2FB50ED93BDF95C9F662EB7971978ABA6D72F87
534D5E2226152CC93F21F5FDDFB4A0E3EAAB8BC3140A1ABF81E822A2842F4F02
06B3137080B0A6E5E5052BBE639AE7098A08A58D60A3E38A3939AE3B5C7B6124
171903C27FD976EC201079F86A0926631C0310C3618759F33CD3657D2FCBA27B
561ADAF97769920694E69A7D4F82C4BB892E1DAAFDCB304F09DB93D55EF68287
8ADD2D77C2E429205D92568C954483F29FA1CB999841E6231C3D0AEE7D639805
EE29C090ECD9F6F1080D9BC1575A331DE21A7B5E11E9EA9AF7041FA4BF7E9539
522D1458EC07E7FBF811EE6F1A4FB124456CFE850737A0A9D7DBBD3037647EF0
4E681AC6DB9846FCD1E0F08FF47565D5DDCCD1465467DCA9B75435C788A9B48F
50F68B65A69B2C345D7A136B809695B85A8E0A7C19FFE875F8A61ACD511F7747
EA46B6807F19FAF162A639925D2A161682F67EDFA4DD988D0754A3C4D0438F05
2903FE744751C14116844E9398C8048E49928E74A7B02F9951FD64FC3CFD1763
0591915ABC4FCA526C756C350096C1F4B0BA401B7C0F34655CC49FEB5CBE714D
BA6667216FE3BFEEB458DBEC0E8DD182D229985CA25F18DFB804D1EB958625A2
C4413374D624B758B2019AD6DD9648EA3F4CB99B2747CCD8E7B307AABDE4D325
9D8AD7A06E80347027266DC1EE943EC0B368477992B4D4A8AD7DE686CBB9D11D
96CD139D8863ECD3B5A6E25374117BEE55DAA0CCFCABB5DAA2526D22FF2F4FC5
B11D4B98BE904A1D3970E4058852EAC6C2F83AC4061604FB9B32E577F4CB2832
9B28EF183B7CF76F0D729DCD06C27181BEC47196E3504384A8B96BE5A85D7A76
D4997A948B77A2C11FA4E8FA719997A24A8F2677AFC61C7C38DCDC4D1F2E5F24
158CD3FE445DABE3E7BB20A9551C8F393C2EA87D23850579C2C96DC8F3759C54
629DB94C575E8A29A20DB2C4A4A8DAA000C77E03469159A37F9A550281C3B595
977F8F4FD01667443C1DC7491AA6E98FCFABC6EC2DC5FD1239C03762CA2C455E
F43192AF0287560123017691EC3202C2EEA64755D3556DEBD2CA5F9219199F7E
F910942B4380AF607E097C98AAE5476B463C8443C8E2B77A0D9698F888EE5212
AA0E6ED9F4B2C6FE5C6BC5A0148A597B1BF4EE08D7C541B896A03AD9F65CCD48
49CFEF96635A16DF6D77DE3167A86D85B4269F6FA1A2B033BE9D52B157C418EB
565A912A6AC2C85E626161E71865572A05DDDB676FDA54DD0213BB3BB4394E34
666A4969B71C839C0F14B6C425908C5DAC0CB3AEAFD64DC9B04D3DA965E32D55
BF
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY7
%!PS-AdobeFont-1.1: CMSY7 1.0
%%CreationDate: 1991 Aug 15 07:21:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-15 -951 1252 782}readonly def
/UniqueID 5000817 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D251491EBF65A98C9FE2B1CF8D725A70281949
8F4AFFE638BBA6B12386C7F32BA350D62EA218D5B24EE612C2C20F43CD3BFD0D
F02B185B692D7B27BEC7290EEFDCF92F95DDEB507068DE0B0B0351E3ECB8E443
E611BE0A41A1F8C89C3BC16B352C3443AB6F665EAC5E0CC4229DECFC58E15765
424C919C273E7FA240BE7B2E951AB789D127625BBCB7033E005050EB2E12B1C8
E5F3AD1F44A71957AD2CC53D917BFD09235601155886EE36D0C3DD6E7AA2EF9C
C402C77FF1549E609A711FC3C211E64E8F263D60A57E9F2B47E3480B978AAF63
868AEA25DA3D5413467B76D2F02F8097D2841D1FBE685D8AA365C707DCE65887
03A9E9727815B58C071A9D576981DBFB3967621CD578C1E449B42B6E4FA9862C
4C9D2597FC97EA028B117C3EB5F145A5454FA6761107AFD94860B4BB59A8BD70
81ECBD19A94EA7FAEDAB6A44C6C849D2EFE869770A4797C545500EC34D8F1DA8
57CB0636D2169DF41CA07EC8DFC5DF85B215BD30479F406B7EEC77ADF39F7838
E18D2B126CEB941A8BC974EEDE3068EA6AAF1B1AB1498862EC5823ACCA80BBC4
5EFE038D707CB396D4799FE85D4195752E72659827EA8ABD83444CD3F7F7E7F3
690A1BCAE3E781ADDCE456919ECCA0FF2B889B0D4A21C76C54058AD4E9611C92
426A1A868CEE28100ABD57DCE12E5B36E43C7949F9D996BD14B0BF99B3885909
8D53574668B3FDE2DDA8FAAF5C7DCDD4BCDFC94789D760FECC684D6242F70F64
5AD9759E606D0E729055B8FE44D47992417F3C7858C17CDA29FDE2924F5D73E5
C9AB75361577735C3838A2FE91E7E9435FB9019E68B300314955FEFC823D9074
F2114BECEAFB65DE7781AEDEA293BD5C94CFD4A5DB405EA5363D814F2633C5E0
6866EF5DF5C20BB7251B25DB2A371B02D8C037F4B4E3B93232650282FEA5B5F5
1B877E0DC462DE0E9761C544A26484B6FA87298B111AF85599D7AF2EBACBD7A8
42CE46A4336D2B6D5C0973EA14281B64A9DAD7762B8E3CF81F6D37817BD57D2D
0191707A276BDE8DF2050A16A97D92EE4F4C62DFFA507E5CC54599234A271528
56253AED2755FBD603E805A2405CEBBE45C887C64ED6E28FB86C8C36672F25C4
616B9213805F67385E4A9068AE1A9803E9EC9BFC9240966E3E828DB77D58A95F
8AFAC2F70E687649CF7E323CF270AD265B1115C3F261B35DF6A70C1DA19102BD
1648835A286EA4FA58FF6AA5BD041ECC885314B71726F16ACAB9474F89D2DCD5
2F6E4671A4959BC56400B6C8585E68F76DD4C3844161989FDC05DE49ADB6B92B
76EAE44BD7CF71C82C8B1FB815CCD598D94D07DA011B8D353E31D41CA8CEF522
6C2EFA79036D82376CDB484952F06EDD2250869129160EE62CA487BF8A9A5095
6EE62E346FDB54961B6507964D9B7E1423754B35F64E14ED831D4249A3971374
C060E0F04CD79E2A76A53A5F9A0D2438DA37E3BCEF649B5DF3802E6C296309C1
D3C7EEF746455D040C902ECAD147A765E91BBC8D6F302ACD42505A2B2243D351
2C729CF66BEB1B6F9B333ED25A3D2337708A32D1B5B5C39FE30F714F8CC14997
6A1AA89059A9642043863A7074550BAEFEACBDD1522A432AD9A00D3C2236F9DE
356CFBE7F303C8A491DBA842FF6BA112E9A278D74185FFABE6063DD0B9266C39
0288FCC418F4C9AA6F5A860DB30E5AEF33553DA1B814D2E8EB52DBA874B8D93D
C1ADE6388F3860065ABEFA86348246B692F05328DAC846C757D8931A8E201221
614D94BE6734AA87F4EED8AB88E258AFB6776929F5DE056353DA70D19FE34B6E
9B0F327A4C671D1045AE775D3A03618755277C94ABC6BDD8540DB63A0B1FD499
1756A365BB792A05FA2F307A9EC8DCA0657831BFC32C5E15182C43FE916908D0
D50B8D87A61D6E85D7078317F462E029C973D024B5937CA835E937B5F31F262D
DA221946564C01E9B93B55C9A0A55D425F4A93658EB2A7FA22374F569F03AE10
97B7C5D1FDE1BBAD1B4DF9702B54C89A928A8AE1957D0346386B76DBA9E4D7DF
2A9E97E96D129CCB88A8FA6642A452C8596313A721BD9A35B7A37A252BD32826
CFEA8016BE6634C6A7AA3A057836777F8FA85B0815E2C456DC8E4379A15F0937
C9F7DDAB11CE56C2081BFD9AE808AF6061858234B92577A760B02FE1C320EF51
8BDD0BEAA8218F94908E9DACE982D90316D049A3B4BF685331AA90E25AB55D2E
27674EDF405F9EB53859C9ED9BBB7FDEC7062BC0A72AA39AB44A6673ACBBED72
14798C3AC1327AAC26BF69C4DF314E1970D0BCF71D0A0C3E2AC30CD180F7D20F
2B99F8A22F88E9749135366317A60C55F4CFDFC350C96B8007DE5785C416FA18
30FFB8BD3C1EFBD8FF50934DADB7DEC6B1F49E6E1332278C43D014EA4AE0CC94
2683D190A146A382ADD7E494EED291642A04B1F2AFFF4BB79E805AD78F7D9597
46EED3787AF1F3F8F85C74C899CACD8ABA46A5170D606A1CC7615AE87AF0FB3D
FB97CD7B0327173CB5110B22DAE8006CED49AA2AC51FC1C570C2D27CA02F8CF3
65C2C5B589AFD4535A32F5570A2CB66BD6E3B8ABBC9CFF1A778175F8F59D61AA
ED29730DD0098A0CFC8451A91D685996A3920824673D624D891875B5667810D9
CA692F320CC7C56C8E8DF3A9D813CC71CB97843EF694F51205A375238A4094C7
93D6BB9E40A32B8BADEAF0CB24D57D8823218249E15F15629292B2750FEBEE43
B960DC1752090054D5F7397D01E886211F08CDCDBE64CAB43DAFDECB882F69D6
E62F6BA1F967A1C7D896346D31DE143244DFD581DDEB63F29C1DC0E3517AB84C
D7CC059AB3C2A833C1E241FB83A7D29CE602FC6A0768E3DC451B24FDD6ECD491
440C7A72DC88D3BA90C3BBCD10D77DE547BCD1EEF93A1353AF894417134C2356
76CFF91DFC233E2D58C53C6291C1420746EDDC538249A781CA770C5878236127
CE751A44EE7A2E99B41FC0CDF59260987B77C32527DE5176DB556348BBFE36C3
B723A11D70A030D88DBE5BB8FD067E4674E645365BDCE3D6FC8C46700594922D
28F379FCB8F6E662B5EC24B0F3811FF233435154D835386A12F3D720F1861B0A
89B5C7D11FDA4678DCCB29AD557DA4197665BBC0E9DDFFCB3EE1A01A477E24D6
FF1BDC0CF9B7E0836EB73910D80EB885AF7C1A9944C2D783E549A4EBB6528374
B227D27726D98E4957D2B9861ADA5335D92FE8283B1CB9520D757C
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI7
%!PS-AdobeFont-1.1: CMMI7 1.100
%%CreationDate: 1996 Jul 23 07:53:53
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{0 -250 1171 750}readonly def
/UniqueID 5087382 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B
B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868
DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811
4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3
FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB
76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5
123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770
012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6
A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413
44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC
4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050
01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608
D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3
914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05
261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615
24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2
A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663
9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C
889787CDC2B7473D4BEE78E00E265ADB7C0CEA8499FFD60ADECE2C0828382E99
6A4BA457384952F8A610BA280504C13C3603105344C6D8DEF090EA5E55A05DAB
8B9B3480798C434668DF8F9612092E6676D917AFA4D49AA7BFD5EECE1E8324BB
AA3B2935C03F9D6AF74166C074E1A5D235482072AEE5665643CE190FC30D95FB
1CC910A5B5BB6D2896D95EBEB623113B75E49796383C252083CA3EF8F0983C55
8C2048795166F82CA5655A8B50CE18C6C065A36A5C7C524C8709C82285C1CBF7
8AC263AA3D84EC14E80A08D78F36D82B57DF281C35FE9F17F9CE66F82563645C
6538959E1741BE96AB70A73B1F2964E38819EAA80378D359969F3386DFCD18C8
D96FDB9F884D2BB30CD9EB71BD504C00E45B608A39E4F35E440D48861C7371F3
8FB9E13F6C524BB38E2071AA294D738FEE5BC89F891B4776C5394F8A1469B39E
65221292C37461BD043A9BE99CA6A559707C931F1C5CFC9E95C3268315A3D799
6706908373BAE4D5190ED1E487B4F205C0D0B0BED44523A0B652746D01E661E1
B1F412E963DFB24B45142737AFBB5E81F57A9EF0EB6F7D0489CAC96AD232CA38
8B07A38DF6FFE240DADAF4DA26AF91C98E81D86EF55ED7E0E4FCE0CE2AD10941
2D2E670D384D2D4C0CF7E27491AA8AE332D467C6497E106F292AD623E90F4566
84AA5F4A563E9F12EC110BC2853393018D66ECAC4D16FD6DEB5FF042BE083F54
187BED419B814B81857FBDD9D1907182AA81C1D80A24B283E4C9D6FD65B1E86A
EFBD95C2D8E6E5CBA6AA3C21B291AC10FE056ADB1CBB0765C72BD9E41EDE4F32
CEF302A646A0DE170492F82A39C81687220588F18EB548B03F4237A8CBB4B368
EEA6A22EDCF888DB093EE2F0D41E6ADDB4157933CD08AF954E36C330E691E56E
F6FE7D23396990EB97D36A3946043DB1CC423D93CEAAD8E67FD29DEC3FD38729
92B45B4E2B7CCBF256CECDBDA33E9310A095D084DE602AA2C0F149CB18C969B1
3720CF5910123BD52E2DEEF59CD202E4B9AC32B7FE2C99822A0B0EAECE96EA4B
4AE926AFE05384E96674E30595FEF55A73BE781CE541B7092E75C425B7569FEA
127865142E147D10AB4624324CF16B72409B166EA18DBBF1207FEDAEFA314E57
85285FAB744F20DA3F15A333D0A052B402FD392F7D8E0F076F315136C93A487C
52E06F0181F85A181595B13AD113AE9F07E89F16258BD989037D0D1D56C0B6A5
D9923F2331F282CE1C22CDFF3280BC975999D3300B29DA6BC668892B160B3417
5DE527C3DFEFBAD7A6AC290DF5490BB022A8D0B89170192CD6C1CB5F74414FFF
1D703D23A4E6DCAB8E91D21C99827A0E3DA775502FD56EF54BB248205C8CAF4D
4FF21FC88DA1C3F28C456369F32F0E0BA1DC0859DD7D139621BA6EA0C0FA0ED0
5953C179D8318547011DFBFF2FDED307AF5C44DC6035550A8A75661166DCB6CF
5BF9E3EF101958835C9656637EAC9DF603D920E6A0BE0AD8EBD6A50531B454AC
6317B544212FA09C295839E456959C851AE6D3CFF12AE02125693CA3BABF8FB2
581AC0E797C02333E6DC6760419CB887D140E45540D6565532964190D91BBBFF
88B828FD0BCB9847C259845A92F5E7BD554A147D9CC123471CBFBA5903D13B5D
1C71A3BC5FB8BAD1621298218223FF46713FA1CA63E62C16EF9FBEB1B9130474
E763B7C3976BC5668A8E9A02130A606FAB80E2927DB83F12FB96E3E3FBC7E8DE
C023113F62A3FA65907F9A18093483D85DB97044201347D88AA281B2E34E4239
ED68CEEA8BAFBD93AAEC9ED6D90814D78F06EE2E04BF5CAADD6BFD46EA9C04C8
C9973585A0DDB9F985CEDCA83FDA30268289F133A178CB142852B402C912AD6D
70C8CB8252DA54A8090999453876DD0067B73223CEBFE1D669BEFF3F31CCAE47
766CC1F0BF7BF336F54C9224DD521195DF7CA7884612E5BCA6C1F8CC95953442
CAD11A9FB4155410954A6E31C1DAFD1769329690CBF71E9253D695A00F76D9F3
86B380FE0C96F25115019448E191DD6796BC7ECBFDF08C99993074B4EC7C07A0
46FEC0702089D0DEBCA7246ACCD65CD4BB30EACEAE010B8AFA1B2EA6A9BF27DF
DB66938C9FB2B9E85A9D334079B721FAE364DF491A0FA8D399BA5D6FDA4CFC85
6136F973D7C501A8F2B27EEF943389C52D1CAE60C464440F26C2C2F1CCAC22C2
8A00E1BF82D6237E2F206BFA5B6BFAF5BBE2ADA2B58DEF35A6BD142E793F654A
07713CD9288C26C871FA1D58CE657A27F5DBBDFF5E2C79B2743758D01CF80034
A34E675EC8BFD5A745162D36BA61A8C3C89B88FCEED48955F999524EF6437F40
3687F039C468175D287FE5DA814729F1F7806042C13BF334795BD21E8E4C5F7E
603AECF08DF12EAFC1FAC2C502A58901EC6E5839C3F7A5BD14A466D21EC2F7C4
F2D3362A7CC415862366B2D96B2F570600817B26FD452F995EB758575AFB7485
EFBC7098C829E7A439323992BCB1B60A2FF99C91311960DE2E75813E7C083898
25942914DD26FEA3E57F4E19DA850B4B93FCF7D7952D86363D0D01ECBC9597E0
669086ABA584C93D73EFB7E9915AC408ECC62B2186F3E10BAE97A1ABC7DD9867
CCCA2B1BB56386E7051E222C95B1DFF7FC372CF6A3C3E5CC26832D3488132213
053FD0C8EFEE7489D73CD5C176BA895674C0624A06EF985C0C8E1A36785D1AE7
EA4548101499AC780A11EDA8132B7028B64D65E30C23ED9DF2D09E7961C9514C
50EC6FD02C736A5A79A6E84110C829AF3A423F26AD6075481024B325AA06A78D
1A4896420064D15B24B6F59EE9F10AFE9BBF29F8E0F010725F7DED2A7743F2B0
93C2F7F9DFC22446E74DDCEABB041C07DC8CABD171BA81C30AB82DA4FB9AA706
0A47BCB46086AB4F5A75179347771FD6F7C051F790739847B8697C308DB3C1AF
A6AD7031996EA55D11F46E386E91508A52C80EAFC56B536E25E4A087770AAAD2
CA5745082B75E578C0D83A13E84333622D68BEAF9C84EB56A6A180361481E3E4
CBA566FF1E25B28D8116902C68E4A0AA796F1E7849893562BACA7989EA55000B
43F91EDD40438140029A28E68DEF5EC0FCE6FC46862DD99B61BE9ED98A0E40A4
125347027919889F5F44F324FEF3E5450D9F1F88BF16C4C1B9AA5DCA2CEB7A53
1A3B55EDFDD0C763ED687030CBFB03A3D0ACF639D054ED464027756524F1E85B
208C048E2173BE73E21F7F8379CE5ADA707B795E25911CD3B8E57D5D8B8F0F48
68B20069979C9E4BAC72E3DDA0EF8567481C877035AF86BDBED6C0BE09863CBD
FAAEBC5D1EFB10D8133957BE4701D5A850A005F9FDBF474D3A1E5DDAC812B9F1
C95EACB6354F34BC652B76876926496F5633A0026497E05900C286E2D7A4CE61
A6647BE338BF6CED72FA038A647B034F04E6B9A50EFA4BA7CC0233E70B9EA3DF
1CF672ACA6D7927EE59C3087B10BEF5583A8773E574DBEE3807CD2183540D66D
FBEAE972044F504A56B742CB945C8ABFA13D09A1A5ED6AC3595C92350D527B12
B7AB2DE63F958AD63DB28EF440F9D7B696211ACC7DE6FA3E5A05701B68376F8A
EFC61EE52B82CC443B86B10BE37B1E673D4EBC1047BFDC34AF329410344E5472
C4C22D8373649800F5955AA32C552CF374156C204BA9279ED8FAED2FB0FAA701
487FD19DA5B2C0149FD33E014F4A91482645A1C59D47FB7F954EF5F2CC2770E2
322717E70C83F5E6F4C102DBA75F0BABA1189365FFFA0143BA0356FA859270AB
557A71CA6B7201667D35766A5F44274DA7A714B0179AB953F50CE554B19ECB89
FA4713E811901F560FD51F0840A4FD7C16B8D2E17ADAFFDDB6F946A61073ED67
7EA34B8DA46F684717C256FDF0EAE32F8DF8ABDE5C2AC7854A8AAB5FD899AB53
DC86FD6C0E843C21BF203F080200D8E63B4699022E4CE39E9ABF51C04D0D6A57
22C70306F4499BAA1F5CEC10B864A92323D0AC5683D102E04ABF84EE8FEE6EC5
F6F5CEF3838888C8701A8D01D2A974A604EE5319D696A55975C02B0FE2B99FA1
9DCCDA02D9A5815DC0BE4E664E910216B7918948982F9A657F48CBBF42534E7D
6385A0ECE7DF519529861FCBE7F1DFCC0EFC8E91B7DC42F68CCD774860B9D8E2
430182E006A9BD4EEAEE8D64FDACDAE879506443D9D0F75C57F2A4ACC1F1CDEA
F97C2BDD9FC68F19874F276091C81784CFB8E173D7D24FD2C3FF717530249735
523BCCE6278E6563445C164CD0D67DE76A69F399B91A304E59C9B2CB73
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR7
%!PS-AdobeFont-1.1: CMR7 1.0
%%CreationDate: 1991 Aug 20 16:39:21
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-27 -250 1122 750}readonly def
/UniqueID 5000790 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D
E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8
47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C
8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4
78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486
1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E
01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B
C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0
F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30
8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF
A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7
455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2
9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105
EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B
52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97
563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F
0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB
7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1
0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4
1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4EA03B9F08F8
DE0B33CFC11789C704BD5C7E91883A79FB19834CC7AE32971DE52DA81BCF07BE
3FD4BD23CC63C097562EFABF9E9D8489B38883F9E8C663C1B49D70FF9895590F
66F177D511BB0F4E660119A3B0C07DF91AC5895C9774FD65118965D30B8A2098
8CC31C13631CAF5E3657E52741FE77B0177402F44E275E8E78A32277155E3BB8
785F62F0893D65DB472F76E38D7BC5CD50BDFFFD10B8737A312F108F1847BD20
258209462D428F2DECB9DC28E4D09493C6EF33F7BC22C1013A84572CC9442208
FBBBBD9C77B763F776E763D3850F4A4523935C6A5C9040B410002AAD3FBB4E34
90F696E47B6DB98E1BDC36316D50F1843D3909458C1DA0F8EE6040A97188B3A9
5933E7A55148A5BDEA651962C9E5EC8ED05820ECE4ADD4A1A509318FAA931B88
FFE7F438E73622DE56A803AA601E7A6DD268E4A45E71F5A7F6A3624D1BDF998A
7FE25F3570BA3116C5AB8DD7F1EE5A97C68AEC075CB0799C9C8B748BC6F53ABA
24B1989FFE65249A0A71E7434B8CD95FA42C92CA315F9956C27AE1ED1392255A
49735690C0F54ED67976484B8AD712BC5F077BA14F0AAC4FFF26EF8B508F86CC
531D52E8026E01B2FAD8B20E0670C6DF736925316E07F393F6DDC094B48B5019
EAF8B99C2CA2622D463752A1565EE666EE8A1AA70625421FAE0740C440F4DA07
2C0EA861EF3AE99DB4D957F12799F04DCE8B8FE970AF7B62468A53FEEC3E092E
584ADEF939DED1F4633A6D480D9250C4C973B1CCAC323E0027C9C80D210CDBE3
B36AE5A01AD2798A6B786C39B7858EDB2DC8EC09A6B3263B6ABDDD5A03C6DDFB
2168965E3828DEDB282D65FBBF4C49DD0273C0A28BA3E032B946F6A2C11547F1
17F856019EEABC9F98809BBC4A6ED505187120D20F554001CE0DFA3B4C7D7956
1EEDFFC49B044954529DDDA847C446AF7FB71FFCEF1234836CEFD8BFDDC91C80
62A4AC4BE47BEFB135167946239A0A78D8CDF9E1EE140B4A7D8844A1548F973B
A24D93F267C1C41A2507D45F5C059EE512A87F3A61DF089B92CBE6E8952D5A6E
6283720D078082367DE8BCF81A854105441A8145D9E97D84B2DA805A3A3F7ED1
334414245C49F5E5525D13F282F103E705B4DD9BF9D33C9E10ED1AC2842AEBDA
024CE4B5E097993876963A65A731D3FA4B858101662A408024027746952DE1ED
3C4CB8D7CC3688C4007D6693B9597F79E7E08B83B2E268B1DCA07505AA14DAEE
1EB7703B3F1417A31DDF70503FB92B57089F4C5812ED84DC60C0E004FF85B4DF
9A2169947E0DC114CA9C1A519214E9A88F1F63779E3038A0F3DB508C36D4BAF7
92E906A67DEF524AD88FC4CC86F76DF8FEC2009416BD04255603B9BB0A728950
04337B294E7ECAA5B959B0BA3B6652885566E1801B5027C85357222E350C4467
7FB877CE765020637F80D394AE558172D71AE75CD216598D8444254C35689EDC
B3FDEF3CC4F7EA7DC197141D5D70A190B1037442BB2B41838B46E414A4E7C511
CF752446D3859A166D48185810C4DD04268F610C1E3E2B643A98539A89F3F55D
3B9DA680D857D62DF2FAB746E2DE3DBC0E3DA1A69E88585C6D211594F18B5E11
A7A33C80915B8450E6DAC39813E738B507F6A061F524BF13AEB2DA887621DED3
A9216218C7B4616EE359E749AF85023C5DA0028FCC45AFA40CCAA0AC2C0B107C
A3C7F391EC3C3C7793D358A0F9D2EFD893AC5A6211996A93F121349254843E2B
887A5F213CCF0AFC599968F6FB8948DEFA4DABA171E662F8A8A594B9EAEA8541
3DF77130A5CC0AD50CD24A0C74C44ED9EC66BA630E6EAC6D209EA2B78770B927
07528747AB262C821572B6741735540621BAFB6492786AF9A40C2338669FD69C
962D8A3F68AC9B66C151DDE536324C464E02F4EDE39235E3893A59B30AFDC543
2FE9752F1BDB50A332CCA2102910E9888842FB7BD349A5B116A3C4A87D9BBEC5
4C08A135C212697472F1FDB483EDC4982955F87804943F10CB1538631BE5BFCE
112F3755ACCEB1BBDB7D53EECDEC4B720E99D04453AFB56AAE75D5B56E0CA248
16271885BEA11CB8CA0697EE177FA0A5071DB3C2E784AE8C33A24182A74350B1
DE7789B902E507820AA3CC4B2AFE99D9D86212FBFEE9E4C93D21309981E8DDBB
A8D89D2A62CF6A4E8F690D715C22AAA20B685429BFC59AE5547E495D5009074D
2EFACF38B5F68800000FC81D9DBDBA5F556F05B3CE9CDB925717A881B4761430
72EE480DB29E416D5B3B7CB9B9A3CBBB6F2636BDFCDD9012EF6E041DDED506F1
725D72
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTI7
%!PS-AdobeFont-1.1: CMTI7 1.0
%%CreationDate: 1991 Aug 18 21:07:18
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-27 -250 1268 750}readonly def
/UniqueID 5000825 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
C0962CCA6FACCEA6B71BEEF7C056FBD376F2F0D0BD6BE0A0A8259139B28B99C6
25119B8C60FF7BA002476930DFDC2F6B1B5A80F1C0E544A22E3F0FB2FEAB64B6
A509B61E1AB96121FBF7F2BC27CDE5B4961048FC2169C8DB745FCC7AF0EED507
284038B15CE53E69AA22CA76C2A208F6AD8614CD500D479A5E0FD25E7BB14C7F
C47C503E4CC38975CB0A8F7E109665FB69EBAE6EB68B2D6FA3C967D5BDE7830E
9CE6F13DFAEBC852DF1D7D0CDD33DD4D5CD6D94DD8AE0D48AB638013CF75A25C
04FDEA8775EC52A13AF40FA41F7354624D917EE620318C702237AF8C0E1FFA02
127F862D4DFD0A56774235A881AFBB8F7F4BCB33811C581CFF38462F669B7F97
1F97AC09373B8F9B7E653013AF8170613E8D7E17235A893BE296A0CD2096B71F
16778388993EDF1B003EBCE23DD02949CBFAAAB5D9F6A08178BFB8ED1043FC1B
0B90D9AFC27B19783740E8DDE0E5E01D116A8CB083C721FBB8EBF71018A9570E
78590CD831116BC0FDA4229F79A581874FC3A1F108A4FCA80CE27FA54A2A7505
5BDB3D52E2595512837732322FB5BBE459C0205EB38439E34A39544F0A1567C6
F29FBB7CF931708C8F92786CCBCBB443D54462B3B4B7BD38E90D325EBC31BA05
FAAB393C7EBDB9EC48E4ACC15A247D2348A62293A726FCA4250B4A407F64270F
923EB516CB8A3B5D19876C8755EB291357E4E4CC5903D1A536A635E267F7A971
B1C33AA7F58E1ADA931C450EA8367B18E20E683CCEEC1BC079E837DDAFFF0D16
23C4AED0DC04DD9458A630FD498794823FFA55705315F0687E7592A5DFC8B8D6
FE2F3C64A5874516A3C3BF9EBBD9B82319CA5567054BA5D85681C55BD25D515A
6CF7A05FCCDC4A8D455E7E6C1F2E272239F64A38C6A7691877395884CE277864
A832172BAE2D6873659C98476AF0C96525F98C3C3B4EDC9C62E017E0045DA4BE
11C9654AECFF969A246C4D2674AB60529EA0DD5A426B52B3B99AC92C77E1826F
5712281BCD53B9164A39499FBDCDDCB25C8606008718B400C471DAA731E4F2B7
8EB824C76F2BDC7FF767E37B878930024C54FE274CCE8EF101F705B2769FD105
7161657CD57CD8AF0B355D04114D742488FE128125DCB44DF394EC70BA809DA1
BE8AF57E941CDE6BEFD841026468544E11F6711CECC0ADC2CF716483693E4BC0
5BE80B838FFE471976B25BAEBCBBDB4463E4718437731E758EC7BE181D430118
76936102A67366931E232DED6BA8FE15F30945847E51FDA2F247FCE84320B4DF
CEE30E82CB75736B73A73F32795EA02CE61F41BD59649E407775943AFFF1E2BC
E1DA777DFA581E553258B4DCB9B572F4FBB1B37BDF48E9EF569338128E475BE5
627A2250921D7276E4CB86EA1AD2EB6184F5D78116B543D00F1D454B88AA1CF5
341D1775331EDCBC18EEC172D399CE9F52B7B1DCD42CD8ECE02F2D2BE7952581
3D1D883CD39D233BEA6F22B1683F5C642A6983FA3266AA5B08C11E2936F42032
A38E2BCF12366F3BB11A83FA68C5073A6563B7DD12014A9592C9FEFC47760275
FAE17A9C0176DF23BD64E90D78AA465BCF3A2763BA5A367F56986BF02F3591CC
86DAA169A28CF56A8853F049773E6BA1AA351455E2691323AAADDAC64D45BF62
BF09792F635169F6941489C107C8FDF7ED6796580F63F061999826B81D254A58
343AD827816870B075F15ED2BD9F52C1B31683BEBCB67D14F69E98D87767427C
CDA25640A24C3A8414FBB27AEF097A873F561E3C78DC8F6BD0A6D3CBE525AC46
B23F028A476A9210A6053D6F8926FE369D3E12CF9FAF20E6BB1EF1B6CDC4817F
376D320CB96134BE969D4699A9F14CED2BF3558FC61F85A50C4C84814377277B
CF69BABCDBAC1D919A13B4DFFB42BC4FA64866FE31503D5A71BC6286005DBB58
2570145324C86100FBAB93343E6E06C47918ED8A932CDCFC75986F30DD5D7DD3
268AC9F63FD3BDF5787AAAA6EEDFB2918FEA57315A9B7D604CED964F47B98FCC
9613387945D9B548B323BF35F519E9378BDFD99A1AC26ADED11CBEC2560005CD
38800A6687707B8DE3A75BDA8337F25257B756025DF95A8708AAF3BE83F6086E
ED08FEF8524451F07D566E1B55C715FFD9FE7666A8975299AECD4160DB78EFEF
55CB5F6D117CCB5A21D68D54AD57C5D3D707C8F6BDEC916BCAFC71A9155F20EE
7198734FA24006FAEF6571DC7A5205C6198BA66783C4097A6EEC45E29E408384
CD815907862BD91FC86B8E24F2CB7E1C062307BDC38AFFAB2C681747501413BD
D2B526D8731EE3B88A9A682FE68FD1702A84B3BECE435FFED691B38D9A45F05A
C1321D740071BB53183831E6648F7C71FC9604061B020A14C7FF889FD6E47F0E
A0BF5F0F443F52E7370E77B9745C23F34ADA09E6A0E6AF22154843DA471C188E
9E62C95809601ECD77AD09D3FA117F53CE3B3F3FA9B0634BD2BD3FFB50B3A1D5
A3CF30A7B13D14B7E4DB100BE3358E8E88A18FC59DDBAEF9509403E76C377626
6F8E52332E06590C5B4EED68ADB56F01A7D4BCAB3EDFBF8002941342A6BFD60F
390CF5935C9757CB0DDCFC69FEB5B9DAA9752924D87D55E97B1B9BF4AB9E92A0
4A43386A9FAB9C8FFE8DE23C4BC8EE50DC4773B23DFDB2E79BA106C143EE8B14
AB766B505FFAF0258AE7162B0232CB37E102CF7D447BD189EFC9B9264407C458
BAD6035F4EAE255065594FB43F66A53228A376894D24CDACB8FD3399AA5F9EE1
8081FDA605A2358F92F10749D2F891DC54F8FB3908E85700BDAE93E05DCF26EC
C7B706AA47682308780EE91D816033329706A21CD4E9055482D7590C901E1087
C7B8EC912AAF55C532AE18B8B3C5F950692E77985F1DAFEC65DAE7096CE08871
FBB0D260E8DB170EC7392D3AC59F1795C56E159CBCEF7EFD6EC5DBC09EE2D5AA
67C2E57AC81B3F52B30B0553DFB13858C1C8695200ECA7AD394CEBC213B90794
2F90D398B82C1CD1DD42ACE8A550B970F1151BA2AEA7E3A5F256F9B8245ED6E3
BE6BE916DB6795F4FF87D272350BF7180F97FE5B89230769D656AD5CA61D4153
772C5D6B64BD9E5FA13CC307DC00F683CF1A39669CE37E7471E4FE7314C7FEE1
9073414E15E3F8D42914F2E4732A6CE6F8AF76A205AB8DA963021201149B4532
8CC6355F590187F2A5E78D2B54C68D8E3E6E30B1B99BFC324E8E9C5095A10F31
AACFE12195B83149F7CEEFDCBA147EA463E3616F3300F860FF2C6F8C1587EFBA
6235C08F8B6E1DC30CBE21A00188810DC5D2AC11A7D81C9537AAEBD620C37A1B
D462D397BD0EF1D02930F456B1F7410494E7ABBA3D3CA2FAD366F74404D55A0D
DA9ED556EB007694CB0FC4D3BB9CEAD3264F7B6035FABB7A653481F83C360A01
FAF7C85315E20FC412481B150B7AF59A1D7CD4880FC36261305D2448C7493E89
8A096F5C58BD64C77D92CAA6D215A5001B477BEE155C89EB4A197447BBF43921
B2D0DE955EA20748FDCD7D8C18567255084B47FE0F2AF4AED1E98480379AACC5
584E2E6C3EC5F011ED91C8E86CE6BB5D90738A82AED45E5B0CB4EA50558E6565
82DB64D6EA2C1D0C44858635FB9AD7F5D518E0E6D65A74611B10BD9203C383A7
8B1C75CA11662870258ADD6B752AEA46B072DD82FBB14E7DC656B30A259A00BC
2B6EEE560C8B38DA4CBFBB26FF6BE57E6036D0114BAE859E38A53775EC2651E3
88B0638A1B63DD97BA427E7C57FCB1969F0E77F4D0B1E0B86A244FE962550036
7351E6AB4A4424E7631FF60F0D5A0674B1B92A8ECC372C57F20F227A9AD5B0B6
14C593A3A87744038127EC6560DB9A9F333EAA72CC5FD70A8C1C226D246D281F
D38C24EAEF28CF0CC74F04123FEA83199A14D6326748B80322D154AC08052529
038C08A01020F66D6742B2544C848B80D0F53B14DD1D2BCE871C2698521843DC
796028D24A80DC14D9CC2CC29BF156F8B58EC8A90F7095C9FEF538E2EF595C0C
BCCF056734575497CED973C4C73ADB46178908F8297C42DCBDFA2525E56C4000
DB4264EDA10C256E2E0A8E6DBB1E4A8D7C3D6439C14979F402B9D63C9874132C
50670A27D611D923A58D81A42C04CF4EF9201E6BBDDB4DF98686B272FDD5F1DC
0D82CDBCB31AF3DBFA0F7884236FEB4A0F70D0F042D8E9207EE41BE39C3B2CC7
F9FA1CD6161DCDB3976D131207D306CCA6A006F2AA59212E7075FBAEB63219B6
F1F2C7123D955AC1FFBCF802EF55034CC31174204AA1C262E5FAC20CA3AE32B6
00831959F802A7A830C796CF8D59BF9DA13A1D6B20D735190371B7476DDC0A94
8F11ADED593CA6F73ECED5B41169B7829C8337F0FC161D5B51C373FDC94C63A4
2800269FCA159A481A48039420D013DEA0834C8B4D6E143D51C23D04C9D34A35
16730A9D2E1EEF8AF8C9966C7D16DE65F7AF4D87454305E843A3316E9B416D70
7A153590ECB7FC86FE1D91024A5E505BDACBEB5A7C41B3C0403ECE3EE2B3372F
E19932B2E2522D610B79C64E907CF81E915698EE044157720FE1DE06758F74AC
217A48CC7008904289CB002099A31BB10C68A120BF6786E400CA07D7BABB063B
38D7E556C61CAA77EBDC9383B4E40B2D8E80F0C684B3F4A8E9926954018024D6
34386B3E7EABC6B7C2FEA0C2AEBFCACFBDDD2B7313020F1271CF285A1F98973B
2BE6ED79D2D833781D50B781054458830582771FC3A397E8875026A00DDD6B45
E67B36D64D3A2FB28BFA81AFDC4CEA1B163E46BDB6FB224DAB3B8C7A00272358
270116C2E156CEF517F982B1C0945581743D4B28CCC2FC0E67F8DA1B12B3FAC6
75CD031230E76774DB1628589B4E5BC8D71970F8BBB9176A6E368738EF6CD9A8
79D64A28269FC6177342F2242A94F010418982018DBD6C388D1E66AF1E25E00F
97E1B623F792664B0A0863AE14BF2E8FC314EDCBA75063216A676ED1721476B7
90E3B6CAC744B624F72C8246CFDCEE696C84BCA97C1622E68125635420819251
216DFD9034328D85575B95987B573653E190808E1820347D44AADC5C260F7602
B50B8A9AF3ECBBFF9B89B42F1BE25F57A78E0D320634D0ADC212D4717C451134
54D8C06280A0714AADACDA6E228AC667E8F9AB64AD16C643CFFC0AA226E42E99
754D5E9A79ECF271A34EC795503BA427CD58A4A9F3B2F8CE1E96BEF2447255A9
F2DCFECF927E7394E530E8EB4E19FEE41F0A738398AE114FCBE88F127F6F242C
75E453812071A9588F3BB15F45C30781103F65F22758A8556460524748821301
D48B05AB10286AB8B68112D1775E0E0E36BCDE24BFABAE1827BF07C03D05A3AF
1AFF57306775465B68424816A29D9FEB06C317A7A3822599F2F3C48441687524
82B1A4B618FEF45E89B27E6F596FE7D58D2AD2A4E4E91CAF1962A272D9457722
C590F5F6E66E9AC56CF2F6022115D7D8322466C26B573871AAFA96FFBE03EB3A
D6753DF1927047288C6162D85EBA309128CB1C05A3BE8603FEE110260010C3DC
F86EB37C3CFF921992C38E80D9CBDD74DE6430E913D233BE544337AED757A4C8
BC3E2ADAD0277B2D3FFBBC16390CD69EDE956F547397476FE6FCF5016DB6B3EA
081C7EBE7CE8936C4A76819CE92117D2BCC7033421DE9BDDD392E831D907E6B6
E29643280739BA38070EBE5BCCA33FDBC783607F9D45BCC551BB7A0AB755CAB7
F240CD33241CA4EFEF5C39D6624257C76184BAE032233EFF3F592670563F306A
36EDB97F0D2A80868D48C940485F0EB5C48ECE6EC9880C901DCE543F7DD8CC41
5821B7FC14095F6C7D106ABEE82570E3A89409AC592CF4A549FA1A6AB9C70789
0510C8664363B6D3C4C67FC05B492D5EC43A916CFF172474053F11188B824DF2
5B75019DE2B7580D7DA8F1D6B467D6A997765DADF3B677CA4FEDB2EEEB765468
DAA93E69E115F4FBA23FCF5531D55055A2D4789CDA91B9D5D61D82302F730CA1
EC458E0E79E134613BCBDED84489CBF18F1C0F60B84D8D0C78F4D4340E498183
16FD5868F7A2E5C43C1C8B5859E6CEB68C214D1A70D9F3A906DD34EE92793D6A
6EDD94D1C193BEE1A13F87B9E9614B0D50D7FD004B5E8D527BE95D7C61977223
7801A361861EEA4E4D7434EB60E5444AB9666B0EF04E3C5310F761DFF20004D7
78EE59765BD03F90A2D96940B490995427991BF2233F96D06CD7CBA741BC4322
89D9672A887F61F804FC9409F66661BE504C2955E6F335607185525E52BB3D82
67D8AFDEC4610E34D7E9E68EC0FF7326812067ED87873C52FB85C086AD09A560
E9F5A093C13A88ED9C4A803B882A837357B8417B9938DA833D241B56D568A196
BF399CAF1981335F93AB7821A874005713DCB70704F592D00090D44CC81DE41D
6EBE32665896423D510E2580D70B674D8173C2EA47073FF7253FC69B059AA5B5
0A2F9747C9CE98ECAC5A49EAEF3AE9155B07FB791B90865F69ACB983EEE839E3
0C425F24A3A21B77322F5CB784E31E49BE452F810203A1DEA0AF01C01323D25A
DF1389E6B143FB0F640B4FF19A42154118E167A2B7BBF443B519AC7F51E751C6
6A77353A0D8422E99D1C2AF9A6653DCACF6A636A2D2103C9611E10E2CDA75261
BCAF8D8C4555B67701AB49943557F07110E6173CB9BD82CFD6805651EE03FF9E
4753A603EE8F04CE284DFABEF26B41980500E0DA10A4546BFFA94769A45DF57A
A9BFC65AC3746FEDDA3624092DFB4D7AD44BF7DA163E0A8DE96755341F6990F9
C391BFFE5A2011C347C8B21D5BA2E158C2B10F1E54232EA58D68959B7EA1ABE3
2A5A85AAD0F7747B65EAFCF4376CE0008AAD46F4E557F8E197AAA1CA55513EEC
CB67FA8A6579D3CBBE940D766ADE1EEC0449E56F052BE894D27EA2D082CB038B
BA92D300F5595D8A95FBC5A3D9F72BB299CA31A6E15E63AC1A02C8F724A0EC2A
23A3918FDE45FF9F66301AE8DC40550C54E0E58402333D15F683031D94BA8308
E2B5D7859C81E881C7C54411BEA1185C8DDE3214C2943C6F32111DA5D8C8073B
17AF9103846AB763B68FE46F805F3CA928A12C67D4FF47E1C13B60ED0029F070
E968755A11AAAA35BFD28B24355C047A
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI10
%!PS-AdobeFont-1.1: CMMI10 1.100
%%CreationDate: 1996 Jul 23 07:53:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-32 -250 1048 750}readonly def
/UniqueID 5087385 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
AFC27E4A7E07D09FB08355F6EA74E530B0743143F2A871732D62D80F35B19FD2
C7FDF08105847F13D50934419AC647CBA71DF74F4531DC02BBDA22AEEA3FBBBB
407E0ACC52BDC60D01A29407CC4F93EB8BF6D4813E9BA858D54F38918AC82720
4956D50291F0546E50FCAFA6DBD0099123F5ECD4AB338DB310DB4CAE11337A89
8ED99B6F483940C97544F888EAF0CBEB11094A13C073D0061808662A04A82BA0
AD35E8782F854AF66C20C0FEF18D0ECDD1646321B93D327E53D88CA0E825FA95
05AA57BD7687C162C50F17390145F296F8446123F4104E76BE48413889D8DEF1
4FBE2F70BAEF25E866EC5DCDC7726ECBC429FBA6639FC877A3C517521AD68F60
77FEB058CA93621ED1B3FAEEB444122FABB64DA16C41C66D8A360A87044B0DF0
5F924E5B4B25958512431D702756A7E9C61407B1282BF18C7CE316237687CA6A
A6B4F9E857488E94D63D9015AF83A2DDF50EF2A3D6257134184348885F729C49
C357F96570B20312E92968B58383AD786BE3B667B0C65F73327FB904591A2EA9
ABC23F637A0A41CF572509CF872FE7EC83620F42ACDA4118EC90A8885A2C535B
1261E4D2A523CF18786C2CF555B2850F193A66B6951F96C2909B7B3CDE08D85D
2818D0539387312FD6A9F2AEF6ECFDE83C60E845DD2E5F956C7FBB427E45FBBB
2400298924E0CDE7C6C6438B8EA4961764261C4D32D5332C500CFB4B1F5C70EF
9533736F2E35C1444133D6F8E9BC61253C314E7A1B843682E0CB0411C3E4B210
D2243B044F37CC4260DF147C0E571E93ABC8A07E5D0E8473D36F537590494FD4
7345BEA0E1AD80C19A6AC5C15BD3FB00D265B2D12BC7576F9FE8C12015A38FEE
9B8AFE44594649692B67767E4A23A0D1E4E447C8D5C74E85497B89FBDF171AC4
4B9A7BB67E056EC4825FD79EE224ED00FB20D434F79901BE93F721FE4BC3348D
169B88867DD5B3EDE495A5D24781177CBE4CBC5D43B3ACE2C4425EFDC966462C
1E6BCDB3674DACBB17C18E79B5BA3F3B375DC43AF1A5955E49B3A61D26F7E99C
CB30FE96795A460A8A69003B9D9B61288C64E3B466BBAFE4EEF5565F8C607082
CA4F6F64AFF622DF219662A93468222316B857527AD307A76316F71ED4D4D340
0E3A66871100CE3120642C7E188FB708F49AD4101ED47F58D4B0D63B977576D7
7C08A1038340F22ED42A05CFA8FF9E12CA9CC00CF6777FAA459A2F1CBC690A7B
0A6B2990CC07A0B5186711A0A115DCC37B87D1B2FFE818641ABAE215307FCDFF
E190E787EBECDB2676A1D19EE6AAF4A2A58E64E03B176FEF6AE238CCF2AEB26D
5E038529A66AE269AB7C0E14C9E54EBCF07A942905385722B3A777077382DCAF
6B9BBB82B9BEF78E6A98DA0716F29F57990B2D3B085FFBBC89892AD61AB71DEB
C0C104B39C2ECDA8F14BD44BA4FA79AA5E16318408AA692B384EA865E2E94615
8B05D20F29ADBD8A924AC8DC049E521762FFC47B850E4FBFE30010119F96FCBC
96DE9883AABD07CF46EACB73216A06C30B49AEC1C0CB50CC61AF70245178609B
23BD472E1A421123D3DBD091E7C40AFD86C74156960494B72C35F49C27077BD6
9351D03872DD4A59F77CE43EF986553E1960C53D0AF151B4DC9C4EDCDE13CB03
195C614C2860ED8A21CC51CB24114EE6E67A818C5792696FF626F1D9A1A224F9
37D24998A05FC7CD7C0F498A22E7B10211999B84C86A4CF395D8EB67BEDE5337
3C782A13637B1758083938DF0A43421FFEF9186CF2F7B5F03A3B5E370A6E09E2
E76E34F09ECB01A710E065DCABFB65D31DB106B2721920052D5E4A51E37C8AAA
0DE08724AF6D6306FC88C227D2EEE383F064EF72965E72100B15E3790B13910D
B288BA49CF467878AC6EFFFA300CC1A9E43948CF45ADCCC7D225F3CC52FBC920
0107A3A2BB9AE97690D00D5AB3088E1073F96A9795A6E4F355EBFC209C435011
FDFF3B19C54DA5727491C134658D4BDE62E7B5D65FDCF5C8B27DB6AEFEA308CF
994202D1180F042FBBB861362CFC6C29FAFB2245256E3B99964D90424BC9F39B
EBD547202FF67B30F44B9AFE509D5C14728580C96F7EB065793487E80D08EC3F
3DDEF73EB83480D8DE85AD2CCAB8B9606280F28C040BEB6D7F31E1B547981549
C3F1396D16B6B8776E352051357AFD7B54823F5842308ECD3718362DBA9F2D04
4B7DF2A00E764B2A8EE8B8EE68B15DFF07CCD3154AD3632702C7ECE18B72C8D4
8563C9C6B8197A38D4C36B2508D429A5195F0765C13322B0B778D4BA99DACE04
5E99269E13BF695B87D618C73936E25E647E8C73916E5D9F6B4C9C34B24C0BF3
327BBB33902618467FAAF5CC6479091405DD97508A0EA43FD4FAABEA96E35E8B
56874D4CD7FC93484404F2D37393B68D328EB47DA8D530A7D1AAC8687C6C7B19
2E16CF00A90E746A0A990EAE3015BCD08C6000DAA58D8256E7B4941F597A6E07
96CD1279C1CE9DA3B67F15E6D19CF2C208551132AC96C4ECABB21E5C37584499
33493F1183526AAE6F97545C6CB3224C2716724727654A29343D18950B9F1999
3D1355766F38EB001234689ED532654C850933BD579AA5A029AE394B4094A1DE
B2520C719D78E60E832C1DFEF3536D41DE75B9EBC5AAF92E633654257AEE259B
079898568D76D9681BEC9D4CD49DB06DC958B8EB5A2E18FB1DC5DF20517AE32E
6BC292048E5A6783ED3B3A9AB407993C44E8AF5D491A3EE9A9DD26F52B6C9C22
F90F4D55DB2D0E0E57DD09FA88A04FD17E1191B6B27DF2B47C3C8B089AB60A80
B7C6081DC4B5F8C6407588A666C6B449F41B74D4BCBFA56FB18C65EC791D1D6B
C075118068A2F9FC764CC91E1FA0F73D2144B6C21F3170F837F27985BC310280
6A2A9A59769BB0DD0EB73D5A182B6D1DB4290239C2931573E3ABFE80EC69E95D
88AA3915C9A7A11434BB891932B990FFEA4834DC88A6C12BB9FE53C2CCDD4866
0EB366CD62EFB5C34AB22858954AB4277445973B6C4F1CF0AB89AF87EDC124A1
A169155AD0E27502334DA53F46F917AFB882624F69F58A6C4B58F57C0B5FAF94
0F5182539E77F98654BA096EE9CA79FB833C3E3EA97C215502C346758B771799
6D754D08607E3E68E419A6EC6068C8D3A6FFCCF37BF28D0B8AB4B2B41F980170
A0AC0F520D6AA1242C8C08726220AB950EF5737575F76BF79C8810E6B4686BF2
3785B47F509FEE56865043CE9E17C067A932A444F5F0B9B3C25B066C96629652
3C35325C4B8161446E6AF581F462DE83FDC7E026508D7C784205EC4849466FCC
1E96B733984D8DC16693EF9D2E75136795E6020C02A20C8779C1656BE608C7A3
EAAF415E24DB595FF77900D9B18D4BFFAB3067CDC55F2BF623315B27F036B75B
EB061F9F174229DE6FF305102F3989F930E4803310AE47060AFB58D4945AAA25
8F4A85D6906210D6C435C88B80FA5B9A2DE51048979E35FAC9C2DC599CDE4F2A
183D26316B7A05982B916870BF27099F7D3FEDAC309AF75ABD8F2F5937D4F03D
B55D0BA717B34DA3581A94F933F63C66CB3935918750AD0E3158D4A03FD3B80A
898E6A8E6A9057C9590077C8245EC075C21122AFC56D1A9D2F9624D01A687274
28BC49964A7DBE934049F243AA0C723D2F56590058D77DF528BFE45C99886A1B
0FB834565A85B0164B183D81B21C37B1DE42C461D6F2E077E43B7357261243DA
C46FA05A5FDE47F814EF2E90D9FC01708A1AC2FA91A17DD608FAE7A5A3EF4CCC
F93D9D1B6766A6C287A0C2EEA28961EF826DCA1F7CC6457A274D6863246BFA6D
D87C647BCBCEF5C429E435E43A3C8A5B16B9F4D44E61995A3F411CE2B095B4EA
6BB9F89B37B89A0F2C0344BB3806D33F89B43304215DE38FFACDC3F651C4D15F
22EDCB4228407EF4CF23E64822DA8B0AA944586E729B6DEB9DCAF9C13F435EB7
ABDFD892D6D299CB2ADD44CB57AC9172632F78292A5AF0E2B93F39690E1968BF
3D9C34EEB57A67EBAF33E239F82AB9C9775B876C31F7753D59B01D392A42474F
1AC4911137F0AE25D8A147D891458134CD7DF9D191969A2324A453254E3E1943
BE726DDD3508BFD3ADFA06EE8C939A5FE50B4EA3C55553915A5262D29A50BB03
268FCA70E66446F3AE1D219D864F81F39F637BC86788F31403361101CFC429CC
5C2EFB2307CF3A8C2E2AE17457967C6FF19840FFEE347AE9335AC355160C7767
BE667E63497A88F10741FB1BEE15329CD30B9DFBA81295FD90482DEB90C06B93
6853E436350351B21FD2D56ED461A7E421A622E489D8DB2C8141AA87C0585B54
78A3FA637F4C7726516FACD1B8F0974C81EADA462AD848B6F57D2D31F97B4A02
AD3127AD0455AF129EC521887DA5BC6171FC1C5FDBDBF12364AAAD562A62CC1B
5F04DDFC5BC664949127CAC67ABF5200A104B0DB60EF8A700092D2EA77328498
4F454C3DA94636E98C27CF0D7CFDF68CECC8E5DA28197E82A185B8439174587F
853C423DE20ADB7D742ECBFCE29318B48301F10A5C226AE20B5E1B6DC2A25FF0
3A308FA86741EC19EAC4B9F5D403ACF1D8719A86D74045BE5C3F6DED4687492C
CB4EA8109D4E59004F117DE41801474880DF839AE474669F14621F4466BCF183
59CE3E2BEF14E47F9F38E9EBCDFE18FE52DE0A14E9D39E90844F89E2AD4AE8FD
CF3AC947A1721D45A20F8BC9B14AD82F0DA020320800CBFF16C451C0A8143CBF
E28ED230D1F9A6A9CF555350D6C3DC68A99496FD453C9CDB0EC7E069B2186110
C4477CAC20CF19172E38212C036769C505F7B28D03DF45F70FFE4B3051B8200C
B69E3FD7E898F1154428675F5E3FB7CE7CE29D17CC6D8D2C1980BA4A74AFB332
A9C7B7EE648EB3AC9C03C891EC45470446E5D00A17FF85F2557396B1FF2B02EC
F8AF3672EEF432A217DA72C4CBFDE9243B4C10B9C841414DC20575C982D2CC99
8B595476CD44684C8C79069FA5C4DAF05B7BCDDBF3D0EC2E35BB0048F68EE017
1868EA4EAA4DFC2B33B44B76731847239D9204E2DC3A9D0BC06F304F05CE7897
8000636DB39E274CCCC6BF3FFF7FED0BEC22B159FA1D48CE97892E31A66F46DD
0E63B75DCBD513AE56E48C2E0FDC9D6A7C6D6D3C93064A6E77D8D3BE29EA4284
4BB8D8AAC2C328C8439A5FE8BDB1C963C994C76E87A6DF7C620640183BBDA0A7
582D3A48B757016A8FA18130396D23D6A294A509D18C71F8232B3502B094A48A
C7062C3AA4650D7E763B6F8F58F6B6700C406B93DD3C29E20B6B2682682F56B6
A70C9388C4B882333B2FF1B08707FFD8CF448FC2F6C416ED71B5F821B9D5DBBF
B7D72FFA3DCA38DEECCCAA18583A8B3C8DA212951E89956872A1DA7B27CFB8D7
F950B82A72FD3092EDE6E1C7B0548610D9D84D4CBA81CBEC51451E257548971F
EAF68F910F460636F96D72F68D603D9E13AA3F2B53F961CB3870504FB676A1D3
FA5095DAF30633C5095806BC451D91ADE0FC6EDC793FD7CD515C0C9C41F8AE8D
DB45A2C0C90585698278AB60EE0E8BD7604BC457D79D6336338F5E077DE5910F
90B6C442B0E0D0104E56E2146C5CAB8FE346B1B946D6F4F17641027BDB15D1DA
6F6DBE9B88EB550EF58157011008A2591AEED0A4B3D8A61038846894C14967EA
EDB40690A97AA43093E3EE5B442CC0A93B856AF8F8A17D79AD1D4CD2C1886D28
9E3336A2B5646FF35779A42CC175C2CC5AD210B31CD49D716EF2D642169708E9
055E894D13522EB3B5F9D6C208E6FDB8E2129E8F02A46F0BE8AC865560495416
25AABA053BB5E9495BD8B099BF340BB6AB6DD6826E2119AF17CD5E2ECB77582C
AD73E8C339626F9C6DAD961FF92D91D9F764D3C4DC387DF00B5D6542550D1D9B
F26B1C11269B302EA54F2C963A9EF74F4C03C47E2E8CBA82A11B73B2DF2AA99A
0C0C75BCE080DA4163E069778C3AA9C39EB8A71E9E2F5802D521A9D63471EB85
5974A05911DCE3EDE3BB172D7C5BC5A968EBE85DD7EB2539F33B568BB25E15E6
5E474C9FDFD6AF55F028142C872A5B41AB57994621C35AD8179361C5C71652B1
DD9AAC602AC1BC5C48F5FDD73C3F281C631223F250920AE8AA04C1F7A1EAB8C0
704DACAEB0E2CFCD3769C59659F0E622BC10051E8F97F79B170A2E3A6B0F180C
69D1CBDF5A4B3F7A0C9E8358078368C8B1B01AE1096B9C42DC46E9ACFB9991C8
195007E31DB0148461E39B84539172FA301C048F0677DF6C12331C98D9408D8B
7FD8E47FB2E6D6499E03235D410DACFDA7B81DAC224440A1E64CFE15B0136E9B
638DC2D802B3CDA26BC1FC6C8921529007AF784CD1BD5B3EF2CDCD7DE1A0A945
013107D4C48BFB6162DB244930C356AD8BF865C97F17A1D7665859E4CE29EE9B
A1C33F0AC9D26825E79BAACB0395FD4587F01F508EF400B32B7943A35EEC1A59
12A2D82DCED8000B198490BC2A670BF487575554F55E313C200DB45F0C389354
44CA22B7ACEA4AE1B7E3EC946E33A947D626CA29D2907FDA1520E978E2B67C34
1039E28F4CE3D9E85A502D64E9656A39D55F5D25738F052DAB255D01D5B0CEDD
10435A998A24900ABFD1BDFFFCEF0B4733ED278D808070328EEB005BA06557E6
579AFFD5E73D8B2FD0A90DF7B27F32F7CC527E4D8AA6CE6B63357931F3C26360
53660F311D282FEBA958C5EB62BB64A8FCB942148AEA9D9BA56E5CDF90310B61
73D56FAFD679D9D307E1970B10FA5B2F58CC0BA300E206EDE00E6C843581D8FA
BA1829158B37AFABB34159EDD33AF48307D28EDCEEEE6B7B3EC5A7C540E4A628
D07AD4AC889E6E300A3B3CED6ACDC1E72A078D91E1D5EFE03EAE579C67EEDB37
6E5F771BB5051F34BCCDA0D33D41E797022A504896162961BB697CC807B7897F
B55F8C08F1E003FC1D274155333E37F535C6F5895242DAD81C8948C0143919CD
44BF44E16C261D037A5DF7357D87CDD7096DF68C805EE9EC30F7BBB16449DEBB
5EE5AFBF5A839B7C888DD63929694481B1C1FBCD3379ADCB44DED86A472D074E
D714D8A87DFF5E4C7CDF090FD3784DA5A973007FB0167DB86A4A62FEFA4CF5DA
7BEFE9ACED86D25C3630EF7303D8AD476B62F3F8E743B2478F10F423B671B749
B61B2798AE547B250AED2BE062A8D21AFBC0CA85B7C3EB5FC483FFF1540D0770
0DE092A3406433DF881E455D7D525C361C34FDA02309DFFCD8455373EB39D248
BC78597F683381158E24C27B26B476A4540F7ACA99EA4CA15E59BD4F447740D3
4791556932B1E841E1546EA5C6A3C7EE6E45EDF70C5462D610A62A6D2F1237AE
66B7127A99B6C79836BFE17AB3DDCF30084B253361CB2C0603134670BF97C0A2
EDDC6208CFCA9BD225BBAC72FCFB4B40ECAB698D3AA6C7BF0DB8E1A72CD9EBFE
B5F2D27343C0EE4F5F3E9ABDCE3A59930F56E408BB609FFC2E8CB683A82F1A7E
943F426A302808BCA8DFE1A2EEAA6D5B490606683678FE68669EB2CA95976A83
D0F72233087E98CD5FE6586365F21C922805EE86763469398A866FBD87C70E28
72E08347E7CC1FC173CDD198F45662F98C5264C1D60F07374DE413F7C920AF78
A2AA48B1A6ACB9C2A23B196FEE84FF2D7E5986A0CD156278B5A89AB4D3DC8D22
AF71747FAAB05FC9CA88F76648F1EC6D9F2A6A289FAFCC5529428D79B5A03EAF
AAD178D6ADDE2F80B4B7E382A6B234DBD8E3FA6A8EB5C3C6CAC58364541714DF
28381287966B4BCF26E6F497B06ED942926796DA51614440382F4CAA6EC9D140
2F9CB3F76CE5E00172EDA35ED9F726432C7BBC48AD84ECBD9BE240CCA18F497D
42A7792C05FB7FF4AF8C810093054C452726132D6819C2639F1785F6765388A7
E670FC8E7E8EE588B6D80001842AC471A13453BF55E6F0C9D54D67C160C60D82
EC0868CBC81759FDACEBB0DD678B4E8475383C2B7C5B9176F5A1249E8077667F
5041C9473D1246CEBF8794FA40075639EF0E94F1DB6E138AD60AC779FC50AC2A
5D979AFF985B5521C9A6088E36D3BF5D79A06E6981574995291CA43406523420
9271E4688A55BD478B2D27AB003E32A8B89AB0CA292B4D03FA3531DD404C6538
4EF33BE16437B44ABEC5DA36433A1902EB064EC297EAABDE0BF5A1E29948456B
0C9D0C4EFC8A9947B0E23A6F806D014FEAB4155711243C0C7823A6783D70C0E7
1EBC48A6D0D77D834F110386B715560DB76889874A4E4B4088A7E40A7F421A69
BCB617A9841D68C25C56BA5DAE879CE92E51E2A707F6A24233C49A95FC11660A
9700E630B69194117EDB47C2E421C1327AB78AD714BCF6DC05CAEA25D24C8BCD
984862F04C61C139B22059ACF6BF4C57C3378EBD90E274807C1834AB4B1075E4
4078792C6080F31E9FE4EA3657CE9FDB45DBF565E56C770D9F146B6B7440FC52
B06A6EAF79C8DF8D4BF63E6A34FE57964D16A4DC58D5E282F93A4DB91140E51C
CF7770419A79DDBD95D3871AAE2BAB9478206F79BC5BA112D0412A4CC6470A12
295E07C6BE7A4704660A31457CAEF37069D752C3ED6A171C22EE7DF4B8F044DC
1D03A489DE613E21325E8D162EE864F231414AF38CD579D6A71AEF82F05807E2
5894B639A74D4F478AF1BCB189C328F604F29BC686899FE996D30C9333CA6FAD
A24A583EF436E947D551B91E274FC13ACEA3A57173F8F4B1D1F2E523D04BB7DE
AB520B87AC096B862647089B3B5FAD61D38FF4F3263D9229A49047E42CE5C70B
B00F4D9083E25920672EB5D112E6178FDA34D1B7CCB0B9D4EE80B687496C759F
2130C7FEE05A650F86539912A73D343F5D01067133AA113C1644F6CE782A1D78
AA828FD0986395772E891828321C6A08132C8B5A2D75BC89B7858F98F2D5B585
4D762FD8B0853E35E52DC53F2F10B0F6631F16554AF175C3983823C1596D5007
2FDA21F06DB99324C5F470D4567296A90BC5DDB782CFD35DD10A00D064418BDA
992611A8C3A2083F439A0A2139F1713DF14C51FA4B59C3FBC4267AC5439939EA
01C0D8DA169640A402B1DE53A2F3FF01AFC33B1AA81995728AB8E9ACA0E4DAC0
BF3F3CAC0B27496C1038DAED9142778CFEF3E1F0E3EF2C7FA577E445997FA26F
43E1CB946B2E8DA38B4FBF786C9410CE8F0FDF094E30B60C59FA054D78FD7248
A135F973734EAB7E6810F3D08787D2CCEDFC2F56E2E150811D9B5BC2E7422767
DCCC0CC86EA1D82EFAB3EEEE3D9197DEA5ED7016A272893EC0A2A620CC957D9D
FBFEBAC566691C7D8FF1A822F7D529ED0CFD67E884D11A00144ACC02923F3333
67A43826A72CCC98AFC6BEFF8B637731388E853BBA38F337F62BE10E32E31063
21F32D04C00ADA706243917899F6487186C2EFA4CEE8D2ED834ED58CA9078EB6
761B714C686782700D1784D29E3EDAB5162F0555F466BE7A91D46E70012AD1FC
606DEDABAD2F8B39441B8F544DE9D8027F9AA8F1AD6F14F0AC2B25D017988DE3
01E37A3924256B4C7E104344135A7BAB396114FAFF30407B38E5D25E2F9E833A
B57E964FE795B11CCA7EF785EF7550F3ABCDD1B45D530D16D95BE89412B1DE1D
5A2BD9E89D71C8A75565CC2EE89E8FF526E2E7F85F5C6EC1DB99C3621D13E1D9
A538956AB2E2B6F64EF97C42F3997C3E7A4675411F4A747F2EFAB61E95C083FB
42C7822186823A8325E0DB0E93A51E06C521607C9C44C8A43F12425C91874537
2798D90A48E032281B272A2F87AAFA21435B31A72F3356D59B19CB231C61AD7B
CAB0AA93DBB027AD362CDC8C614758C0ED94BEBA852E52CEA4A748B11C366898
5815D212D989FDE677D59926A9E1473B25BA22B9B6F3B571C4BB6D0478ECD0EF
F5DFA2559C44CD251A21006044DB559CFC4B546D661A59F595F8D50E7E50C5A4
13F15A0736CE8925EC50FB23100AA1E525800A52998C56A5ACEFDD8E6F864C85
07F173052599A48CFD65969E450EFAE5A033E9F3FF5BB6639B0800A87641767C
08F871264078631E4F0CD7FD6CF94F862E5E66F1F33A5D82C4190827DBED6B50
D391AB1C0F538BD6CD068CE25030C5D1C39E271A42A0EC85A7DACD2C3F001A3F
280291C7762F1F0BBCC2B09236629EF9F936ABAAD6157CB34BD37EA9A84E5A08
949E6EFE76B95C15305787DDD870E58545800BCFD143BB952C88101C27FBC4C7
BDCDF4B25DE39C103C714F2C85EF6666A425791A92C4104C580ADD9D419D7609
F49344AE8474F43B090C81DFA126B2DB3CF57D233437775A1D5BADE011F2C304
11C11842C78FC442FDE36CBC37113F777046C31F9D6B88612D6D7E1837F3524F
CAC51CB618636F444356ED7486D328A380973E474FF0339715443CE59B99DE06
499BB5766AB83CC4331597D0E8BB50281B9C9F40C98E0A4F19C2B91C62D3B18D
2ABD395A7E73D6E24009B1CB38A956E5E9168892E8AAEB4ACCEF64022EFC5F6B
90C03004D66E64635E1CB83B7D71D10E2BC5A031EE324D19B6F4F9DF8780F647
20E2DFEAC0C3F087290A3BA0B1BFA4BB1937142382196F039E58BD8B646A6FAE
DF47002F4C6A85825BF11A671AC27845044011CB6E593364A1D823A856FF23E8
E4FDA6BB9FC642ED11C74214177ACB21ABBCC544F0812DD35B82A4F1386AACDC
0430AC7D31DE702D5AB524D39086D79DEE02CB05F8D0316AB0F905468745E5A7
FBECAAE806E614AC796C1E297E4D78729776AFD59FFFE81E34F403C0C7EFD90B
ACBA020627AB34780E96D0D75F1805BAF71D094B52248A33BA8CAFACF6694C6E
08D4D4BC7E22B621FDB849AC0F8BCD299057A9CB81A4CC9F38CFD5F3B5CCED64
146A474FC1057D3A0738768C8A6C6745B7F4D42B3998F058F106436BFD35150B
5F81703F85684C1FB3613EF8F926DD3F2A8D7009DC6C85B89DB6B16CC3550D1A
B64625EF728F3EB5051988F40B8500A5D0123FBD8F5518C8965CADE138BFC510
C33F19DEB0B9EFC004160821F7E12C75E4C1D0813D6C23A6AD35BE5882DA25D0
4AADEC4859F8F6FB1AD6B9DAF7132D798DDC3C52ABB755AC10275795B3397F06
2FBA157A31ECF4AA01C050AF7B00FB28584B16240280A899C89679801D4C8F91
8CF21D2542EC89BE6369DBFFE67BA8986571F2421C6D86EBC58D0A31BE93A7C4
DF69E2EB3DD8D02A52745BDCB6B189315135209067EFF65558E84E7094528086
087CC4B2EBB5340578E3A3B9FBCB988C0F789A1977B9C51FC794C9DDCC4F1213
5C176FB628B46E269BFE8D62164EE8C82674B4B98FA8BFDD170E58E20EC534E6
315AB526C293B9B6CE1CFB1BA241E086EF8D05B216F4EEB3B8C58B7677797D6F
C17E17DDCCF830344E652B3C1C028A55824FDD5A7DE05F5B072A83582668CF05
1644DEC26CB12B4EC34D763475006DB32B18B537A0BB50648AE6808C4DD45F3E
601013DD4CE41FCD206CB8DBE37D3642DCD5D028F986C51005EA525CD322601D
970DF1D24D254668212204A664D65DFB7C2CC87426849D1FF545F3CFEEA07F4B
BA6C802395C9003C06C1EF054922D10E35F9DFC1F04181EC31CBB8DF9823792B
37106FAE46FB43B7555747E7730CC6309A9B646C42DC45790AA3A9C059C05038
A8B9DA2B6964A53A656BB9C61A359B4B50E4A8F228787E8D97E8CA723E59E0D1
3B3245955A0E9CF0B8580094982542E2FDE4B93174156885140297451CDDB8DF
602B8A6674905211CD493D33A63E7174D7F540D452070BC88C1E32E970C70126
7DCCBEF28031FF16B5ABEF76EEB6DECBA5AF1E2A16CB72F36624C23BF44BB2A6
20699EDEFD07883B4CC71E05F11457E638E9FC5FFC1B7085BA7882DA521621FC
F4C19154C352CB1F61AF86C1E9591E9D5E3722F082EA2E107F47A1474B112026
FC3827C1E4D8472B296101119BB880E617C97679DD28AF7D7804908D15F2AD78
4F5268CDCD65359BA3B8164CB13660C65C41FBE8260CB003515A4CAA61D19E9B
D7569B6887588F5BB62C9CDE1B5C329BE0F7D5706E1CCDF5411AB9F0372739A2
CE22129224F21A86A3883A55DE552BFF2CD975111878ABCDF5D7EB0A3D4DBD57
A80D2AC7310A35FAD6E7EA9545CE5FC28CF43EBDA5129EF3BD2D86D8F5AB6587
E6F621E422FDD0A08801E1AFF81244A196238ABF99CA12BC83017092E4064A00
87A33A25A243B3615070B51B7F12D16B0D88F86D7948070E3D6FD09B4EF8EF62
E07D7D40E8F9DFC8C929FF5109D9E2E9022AA21618C4E43D21DA16EB381526ED
417DA2EF09233F1352030C3D16B089B9F8CE12C2F4D4096D5BAD31EA280DC777
B76659EAFCF00BE92F942899CF25AE248EAD370BDF553341AB15C52EF9DF943A
D1C3106F3BA7A1C48075F818D0099C0F70ABF6E91DA089A1471161513AB4B8C2
0F19CA051CA8043A41EEEDDE73B08BD44FC509BC5655EE4922EC41540CF8A854
4C3620225A200609FA7339660E08BAF005A25EE44A1F3A3D43290B3F94F2B6BA
0D31EE6A6548535513F932D8E4579903D9E43B0139B71BA1163220437F3AFC1D
5123C889F026DF60D70A269DE18D6D35618247BE3CA9B65E73BB912A3965360E
D7D17A848058D63EAF9E8EC67AAFC97EB5A822C36348EC97F9FEF010A44361D7
C4F503A67B6AA6A177885EBF73731E39D1A963FAF68B370033CD14FD1CCF29CD
A65BBE8DDD5D396C72EEEF7055501805D933C1CC9EAB36787EF6862C7FC58FDD
4DF913B6666C8C1FA832425D9E2C3C
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR10
%!PS-AdobeFont-1.1: CMR10 1.00B
%%CreationDate: 1992 Feb 19 19:54:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
/UniqueID 5000793 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3901F92CC2EC9BC842
5EE578CF06846C7078E026DFCB18AD4D78023652F0165DE17C183E43752132BB
19F361414774D5C13AD718B01F47E61745009D823C3996FB208C3A9D4B4F116E
4D38E56725461BBA1FE17CDC27CD99AC7D748CF7750CA2C6E1EC5E4746AC85F5
E8274DA59750A144AD5AEBE6C9A7CE843BD6837FE2A88078124AA1A94EFC1C50
B811EAEB2679AD57294AB13E45AEEB8C6EA105696E341E4C14ECF573EEBB83E6
F9DE39BD6CC376158231CA2A83D91F721ABD116A40698F26610853E7FD075472
ED40CCE32031FCFAE2737B412807F7C9E6494D0B73B7AB13AFD20D5219A71562
12A7B57DD9965B15AFB38BEDA28D35D73282D4F1F9A15C4403B7C69C7E80DF54
C112D7813F7271A5474438A7CC380735F029CFDF4C0C30C3901A7E30F8B3B017
B1A663CC9481C79B903806F30AF37522828FD5DE3EC220C719B63A90FB3CE105
3D5E0F56440F1657C4D99760B010A26A6B8411D2FC60C28C4E885AD14A379244
841B408BEDC905276B7C9BE5BDFC5675334396F3715517D7A61C24BE35125DBD
E1F7E59DABE44B1155B5AD46DB008CFEFC55199AA3C109B9E8CB20C27483AD63
EEA01A4E84E7D17631144F1F24B4B1864047E1FFD3AAC17EF92DC3567F66DEDA
A47A0A9B59F3703ABCD08C592C654013063F9274AEAEFB3AF08C60159D834495
5CCB7AC6233F19424729A60D4DE89BC5FB4B356DA22701D9654B9FAB411BBD22
AF1DD64BFB57C1E7182F5A4412D8D246AEC199C43DE1A2F6D7C0250D0195883D
DBD35683EDB6EA195A1B47FFB24935103C2719CFD03D17943CA80B305001611B
7D9259A3194CDA71DD30EAA350F1656865E5B190BA28E539C75C23C5BB5DDFEE
2E6E84C5B93BB06BDBB9B3DD4BCA65F8E13E35D3D029829DBB03CE3C8B08CF72
E77967D8754D1D195BA3A1BC869BEF850326EE0CC530BDDCC70A4CD334222320
05AC32B127F56220433306EA2E2C801FA1D3439D433605D50FED560117931E34
F9F52CE0473DC8FD507028E738042E60751901C243AD8C477BA0187802F4F0CB
7C443A53FAFA16F4DCC8E53A5F410CE2CD717C2ED444EA67C2AF67682E675D20
67315C4D10175112A20A60AB30ACB9A437D2CFB04CBA2E83F0A5294482C19E3E
85762895D08E8FA33170A03832D0B6C218B0F57E4B045F46D119B6B0BE82E2F0
7375A95ACAFACD56A08FD1A2AF2906D1BDDF6EF2921778561BFAA1A4D3235EF4
A2DDD4454E65981958054D59D1D25EF30F675A80F377B53D66341212519585AA
818C4D86D5CFE1B88FA3C78C81001C1BE7DB92170BCC14FA44481DE23A9657E7
415C4E3D14BE6D122B59273E7BFF24346F05012EF227C567DDA6594E20FC1A48
46222D22E8D6C04E8C23FC8CB31B2F78BE0248AE901EC8AC2627B13DB1268335
2EBAF81107511607E293613565341B150AAB9BD81581EB04CF89BE17D229542A
9F6A951D925207F54470E071214408D8907513468FBB32A22CB55B1B71166050
E0CC5185518223F085DE99D6E1C3B9EA7CC792FFF8B7948B2E117308148B2A8F
6E90D9C83D2E53CCFA8B7848978D2B97DB0DA8D01AF832BD3A412AF740482A11
33BFE48235526B59929E2496B6FD25B6D0A62FE9F724EDA854F4CF21EBF0A9CA
8CF2DBE44AF2450685CFE38D38C35EBF20BDCE373119B56D6F3FAEB5D931616F
3D84F4222D47AF50D8643CCE6A4C3FCCA80DE73C15650DE1367E0CB370D8A875
3B949FF767E8FCE3D69030CEA4844484BC6164A1DC5401D1249A85E63F1F78A5
10C3BD4D3D8E26C60684C9B547516A5AE3D2CBB1F292CA0F5196B42844BB2867
3E948A2D7A9DD5A0E8F55EB0E6B507EFDB887B32BEA07ECC32E8AD27E5056D23
66B0A04F72D9E1AFDDF17174EB01595D0C8793FE6E8C3560BD05C55CA271218D
90F15639CD65E2F5F5021A50C78B0777940F07613F2DD5549CCCFBE022C53538
5CACD282499DFEA21A78A673B03285F044E66D9C59BBAAADE43D88E545EACEBC
463577AA0E312A45FC20B3D8CAB3F92FCE105DF3F99C2F2B05927882FB1E02DC
59512907E79AE2068610745123797227D209FE8D586D5C7E08C18A81E55AEDC3
45F4B0908BFC49BBEF5A5CF28E6DC7B2E35B5327019BEDBF5B286515592ECA10
04753DE56F56789410C5F85EDC7074AC457CAE57001C156D1C132423B05C0EBF
E385F3A5C960B7E4BFBC8D4FB86C0B65A3437AF61729B5F32358906EA9956791
0AD6A5E1542462D3863AD66E5BAA18D14AA6F337885EE8FD5757C2A86C2C6F45
69B1CDF36A38821A8D79A2C527CBD47D44F481492D525E6028CC2F4C6F3B3739
5886F1AECB4969CE228D358529A2B7006D096C097533C8C9C79BE39A53486A9B
D14ADB6C81DDA8078B349A3938E9788B81AD76C91642ABF6A33205B0C55F3871
D895E704B1A59878DDAF84BF68F21129EAFAEF7089BF3B325183EAC43344F52B
F60C2F70B0D452FB2075D5F1D4D4B35C1341A879292806BA645CBF1C09FA280D
FD79F685C55C14D74633252E48F82AB8E09F3A02FF40F59558C00BD39DA07D59
CF7CF16C9D8DB09354383A7E37A8B0210436A79E65F4127CFE4891504A813807
F4F990D5ADA2A875D4E8ABFEFF4353F76EAE43F1F74B23DB355864B2CB5F62AD
ACEAFA333A0267A11B1C8FA84D411C451E63B51AD3155B923CEAE65768A3C757
1A8B0078181E420379D6D59A4F7063B59B17D97E1686EDE32FF3BC5C7D5D2134
1CBF5105E2C2827EC989A2B4D4BCF56F41F82D1F018858DC7D4C4B6678D28EAE
2F34BB66BF39E3D9A4EB89CAD491DA200D0529F6C9D01AB9437917350115B930
B11B09C2F6299AE025CDAD7EF4D46C154515A6B631BC504522D1F1BD94CA2312
0EE17715F81334C65A3B90C9563436186CE3C636FFA6E7895E512AFB958A79E9
37A4AD36F8FBD314C7ACE7357662A59050916CF41F54D9D52A61F632EFE31F58
A826EC0FF554EBF8636E0031871E83919618AB8503C7DCA8BD7505D46DC2CA08
95206EBEB4B5DD66C79724B8D242C80E1076631D6103C2294FCD3C64541B1169
857C1B8E8059E5B2F287CC6690BB67541B9440B8B18E3F5A8646568C6CFCE028
01255A5EB6FA0AFB00D7666AAB4AAA271DDEB3082AA18C875744CA3DA099D76B
FB5359F6E9DF42BA1E10F8AB1CA5BFE0677454000A56F6AFCEB1712ADC3BDEA1
F228AA559E31A11B2261BD6B0AAC8FD5B22FD49E5D0AE187AADFA019F3371CE7
E81A5C284DA0082EBCB464F40CE63C158602AB1A9C9509B49D60DF82747DB26D
0FE4496ED0FE13E0C83938BD425BB101E1FB776699CF7FA409AEA2B97EC036FF
AD0AF3C095C8454AF1DF76C249DE7A0AE180381859063166387B28B609F7CD49
B79C331FCCC59E7EAB56BC3CE0B7449FD415F184E9E6DC43553011F7F1B0175C
5D4FD758ACD66549C3943884FB4D1A43D54DE08D91E1E0F59679AD2866A306ED
7E72F8E388631A13B2BCA48F30DC19C66853AC28FD807B608019BC0E2707F888
A9B1E42DB8FF81763E2D715EA188CBCBDC26E767B65010004AB303D80249B110
27D8944B252A50AE93EC0CECEF484B288D2A581298CAEB781CD9CE84F395E177
70FEA8E58BC6ACF0C323F338FF6F1336F46269FBAD1CC397B033FDEBCF01A490
23CF53D7DC3C0A978866B06B724D32E8423D8947E5ECAD4070B503D9BD1D0AB9
D9E497CF9CD8AD8D8D92A31D4C75B19D6FEF902FDA1D08508875353AB7C6A04A
2351176EC06FE517D860425B85408FCBE4404000884B26C39D267E303993AC18
B5FB51900E75ADDFC08BCF5919F696D3B61BBB3438CEB7CC8D826D14E6FA6FF7
5FDAC1619FB5F7006DF5A72766F101D8FA61BEF95541167B93B9FDBF4001E1CD
CD8964D8FDA3D6F29F367605D130F14D43E7FD00344EFD791733CA586995C583
AAF40A72BD79A6B45927F9774F78F06C2B39AF962C79DBF69F195B9C4347E648
AA764A35E2D20C093E6DB57FCC77BB8DA1A0BD4362AF74BD87EEE0351E39A3A2
451012CAF5DCBA4EA07258428FAC61
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY10
%!PS-AdobeFont-1.1: CMSY10 1.0
%%CreationDate: 1991 Aug 15 07:20:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
/UniqueID 5000820 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
515DB70A8D4F6146FE068DC1E5DE8BC570370462A1137158AC82D0AE038D60B6
5D428E9E81109EF04E7340B86061C973E15831BCA6713C65622D5CC6ABCE2168
761B74C2D76FF44EF819AA29E234150D45C69B1D6928C4AF210C37733C320E6D
47EA666ED1407EE322246B838F5F6B1852D229AA6ACC706C616BED420976A24F
A3A5CA9D09010BC7D915F1D0239ED001D5538EE3F597002915C30F14AD67322A
7AA419BF3B92A1052E219D227AFCEA907292A4907F4454FF56B4B020F8C95E82
53FA112706999593AFACC64B9F6D0ED56CF1DD6E36C9AFEE71774246CC74AFF9
45C974C93AE7EE806F03170A27F0D7079F04D77B1438D10385B14876AF382B3D
D697474A672616A2B8D31A0E85FF53424444C14A27FCBE63EA1C9E23E28D7FEA
84B0634085FFC1C38C6D8F0DC9035EC1BC82DCAA3A9BE09C3AC7B47D37DF111D
F190A162836AABBF5AECAB297F388ABF5116C2287165C51A1F3255609E6A177C
D82C48798BF666570C0759AE65F2ABE3413093487542DDC9A8372B05BF5E23A1
FE6CD97546FAD750F6CAB887B144186617CA73CC2609A8F975A4E712902D2C1B
0D9A49179C8A74706093DF19D44C73944F17A655270D663A481411049760AF77
E2CFF8CF2A477D4B39A43BA7ACB025EDAB9BDE34B50416DD3AA59D2B4D398DE3
2255589EAFDD085BFA9B19348D6A921C905436F60ABB21513935CCA763BE356A
CBF2C51C227F20E9DD1A49ED39E39A39C317732A4B95C4C84451701FEED7CBED
D89565A9E310F5A595189C78F38114115D9AB566F3E6394771E800B80FAEE796
5BCB0D2AD9F37A6DF44817CE73244693F1334194E50CEC520065737E4F3B77A2
DA491F8D53ACAAC64392471EA9ED78EDEB5FC48973AB8BB69E1F9659F9CF93C6
7D30F70E8B1E06DDA1261C32A565CB16C14927BE2299FB2ED8DF72A08C5A24C9
1627FEB87103ABAE64D9ED7C8372757BDF57D91E82A16E3281324AA402BE049A
D092A3B12411E987465843D2073051B500A746AAEC4BE2DB97D3F4C52D15AB5E
D7609C38CD69BBBC3253968E41683520879A73D43BD1D2C194B5564AD470939D
E5D04A7F65EB59B95FA468995D6C4CD1589E2A9D49A4EEBDA7613B0DC9BB120A
0430F94A3786E1B5AB1592730B0235AFA9217479600A55A735FF5A8EFFBFFF24
E7162B6173F29173136A88DDFAEDF584A88BDC376119D1E4D96A6084124D5FF9
D708DA53E1C44681E06D2207CD52A1F176361C19711C72496608BDDF6EEDF638
737AD6D81A5D969C85F1706E5E64F477135584705FD92EE78BAF1DEF5D02298B
C49E1BFAC7C12248F94472707BF31161EC314B523832E761366A698B3949E474
021DDA954E9F34F97CDDD386637F12B955E63709736681D227BAB30E2F4F670B
4076A308FC31CA90F357CDF2D787D68D7454373DFB02DF8460AA3001DDABD3C2
ABA1D96137F088876C6D532B20D53E1F95AA3496EFB1CE8495D280B9D0386F7D
3EC9088956A111FD3648BA87D4FECE869CF17880597F98FE8F631BD7C0E4275C
E822212E54085E0C96D9CC682CAA605D44354BE4F177E11A71F2B03164AC44A4
CEAC366E873BD0D3F930B83A66207BE822DB7E1C1725DC4043DF4F4DED4B5CD0
E08FD75C0DEE06B6A1476C9C87C24E1632AD04D495A55B5464FAB4ED98F9732A
E39861B31F095D4210C29E7295C0CF49601FC0D84D75B34C87C63831A2A000E1
17BDD31940504AE3117606A954E63B7D6ECA0E2656D0551960B63DB73F75C444
83BEED5B14C453DFBA2D539813B2536F2AAE66112B5F79E08BB7BB8B80EECA71
A20CD4AC242729B51E8D0CD16EDFB887A40C9E3B45712AE80596AABC1465B2BC
0E1DC07B0C8E4EA5AF11F787362E0AB85539336C95F2F598DE9B5AED366D0AD3
36D5BB600C29FF30E3E410D9BCE7282DC0822CD537719EB0635654267765850E
BB4D282FCA8BFFB1B8C7C5B13672A0C19FE42F159C67C4B3484F3506F5A37D52
B5F409FA8056D59E017F6F31A9AB984C7ABEF809E6EE523A11662F320702339A
99E65DCAE0320953E4E5F0490825D2140AA0BA56BD912349949718B5238A1317
179A80249DC42A7983C334FAAEE2231DD8D0D56B08784D5B8AC62B2E728775FC
FDBB1C73A79EE2D67881A51576ED895EAEC3DD89A0298E49D996A66AF1959C2A
CF375216B22B64EC5E2EEAD9A1CEC427C66F1F1591F5916EA0528557B9D9327C
1D78869AEDF26EFEE9742D1C3B88D68ECC2CD3BA77EE4F5431E46FC124738253
2D6E6DFCBC5A6C4E96BC524BA26F669B1D07E42951CF0F246E303AE28A6BC9CC
AE9AC4535934D944E26978FCFA97B41E3698B212B75056019D08E7996262DAE6
2A48A0401FE171F50DF3E469B5048C5B63C08332D4699595234B297FDA6837B9
9F4DB944712244343DFC8405DD046885B6E683D4E64B616E22ECC0D649D2F97D
790707CF8467C0A7BB82716C070E5043BDB90F83F5756C53221CEED20ACD277D
25B04D1365D8A2154A4740F6EA3F101BE4DBA7FFBCD48C1DE51049F95E3F55DC
C4FF29FC1FFF2352341307729E97FB3B24303199B07A2E0CDB79E1196B2E9E30
29EE28F72D283E62D83FB676A25D90A362C598CB100533FD39CD96EB3AC6971D
2D7A412C128376BCB7AFAE531333FEE0D83AAD93E123AA5B63792AAD0D3DA951
ACC0ECBD64CBA937E8ABD330D9DE4402E4175F2575C219A396A4F6BB67C9D088
8BC4F82065D502AF86D046E9F1D8F70D5E7EFD34865DCBA3E9E4A88374F6E8CC
55B9BCB1418645A6326B1277ACE6539BE4215B41269C33FF628EB7FA6D9379F4
C54086A7D75636CBCEB92E6A80B070C72D25BA9581E7147F535CB248D83E245F
767F18547D95BE5BF76AB64D0215903B6DB25D51032C9011FF38630B0F95C6EB
1DC0B528292C0ACA1A6BDA5ECE2DDB2A8C54834EADC659FEB616098C1CE21BC1
4A620B37216786DE3DA97FA13313B08AE36E9B939EE109A7E5CA4DF5124582C7
A853752D996CCD5A1731EE3D378A7A73A53E9E3F5E9578E7D9675C68BF3F48FE
766E3ECD72C290D22C6FA07F9E6C17FC8E6EC450A4CD6401DD9DA565D51AAE6D
A163471DB490F57D30060F66F21E400636945AAA9E3558ABBC9720C262E5116C
A98BC79A01477476BE315B1856840CFA48ADF1C9F90839C6F59439BB3E79A844
79E492C6A0FEB7263397C4FDDA0C3024E9E2C32A5E39C1C6C3AD5EA4B05E95D9
3AA54B678B5E4C3DC7907C4CE92A1BAC6BD9FAA876ABDA840E4F6FDAB7BAEEBB
C93F5D1F741F4FB7A2DFFC8054ADC097E349EC752499E20ECF84B2A2944CDEDB
E9599F8E2F90A1F156B4D76DB47C0FF1ED290624E696531BDA082DB3B8FD57D7
7D20E862383FCB8D6F8F2FE5D4F906D699149B6A14E3B7C7CFAACD5F231AD396
2B8B91DB843D0040F19430505597333E06DB921861C0E37D19925990DB575DD0
2B310FD38DED5056DC998B76E776C331D995AC3310003F7FA67946818831C5B7
B3A23CD5FDA1A2F4FDB08E88B750FC26921880088907A5059F354405B0DBF63F
A450757FA678D60FF0251C7ACE61D12DFD803A74DE19E1A15B1C0981263909DA
6D8EFB477298F4E896AA73D848DF3B2C2FBFB5AAE65E7B998BC56BC18287280B
B9A09ED29BB2609C065641CBE0DD4697BD3EA938ACE2272D124DB812E14DF187
9CA5B6F3E0E5EF7FF22E2B5D94FE603D97F379E6691F6DE6AA3706B40251A405
ACB01756E6A12D0CF8151E5FABC719FEF6DA01D099228B3FAAC2832A601834BE
AAB430A21C8B2E835E89D108D1E9A5245A33C7EC1313D7DE7A1A3ACA6496600A
8EACA134F6D88F26435095A482EE7A72394815D9E95A331AF0C240838CC4B5C1
AC0DE728C2D45A4B3CFB76ACD107798D77618222E4090EAE04A4A2C70586E517
E82C63E7944C9AC311719DC52CFFFDBE6B02B65161E947F976B86781A2621E44
4AE3A985E0BFF86C3E39FE66AD75CB6D81AAEC950E48F60E6712F9F1D66C9C6B
A49404EB5EA44A3B50C3370191B43B5CFF034E334F30E1B2E8D9CD5C75AA0D81
20100F8FCB4E07362DAB1EAFD3C2A7A58E2401741B951C89A85E00330ADA1C48
D24E60EA80EA003457F0E50D5C1A57F992AE83C02D7D74DCCD70A29F775FA2E6
6A2C20BA5A70EA375B3E3C07CF157F861D90213DC6AB06B7740CA798D48DBBFF
26AF8FD28D4F64D24081574B9347A53E8B9E9D8AA266DE9FBE6AE293D7D98651
BD00B35D06F8419697867E83368D0D0E018719CA0362DC26A0754E548DCD202B
214053CD5E3EE90F4DC6974EF25338A82AF094CE9F33C043A665195E7118B582
EF355E04CA3836895BCE6B0E9B34E34C45BE0CDB84AB0440C900F7290191CECB
B2D7D561E63BF8859FA95636134B459EE70DF52221074BBFC2D153743BEF6C1E
171A2622E4EC90A9592F9B89F3337A8409D148B6F7FABE7C9485884EDE0814A8
59FE2CD8A0F06DD0CDA23D57407740B2C5EAC4F9D41F2556430D2832DADB942D
E53A023DBFFC5AB8681C04BC890F2EDCC99CD70A4BC538662C84AD6DC7AAB42C
11D99E32217EEFF0BC9CE9686F6DB3F84386D706CEEC1724DBA6DEE06A5342AF
8F9CE471D07404EE71195D7BC10A2A8CA6556505762D1D0A4D042ED5ED24C191
979B6C1EC4DDB1E1BF634AA10115FC367DFA6F9B860D43D15FF9453809F7548B
700C29F7521C352678096421AEEF66487C48FB100EB3B64C7D5DC95039C2BFED
5AC6A97EAAD79A9A2B9A60316CC7A3E8E61AC7021F6510D8C442D07300CFC829
2133C01DFB5FB5CC93714C0DF88412F0B582B4802F969F892722A4CE461E2CC8
8E02FAF182F5EC9E278F295ECAA636A086D9AEF96B4DF1ECA067777B898ABF4B
DDE64B47355C8A83242CE28EBD2ED320C5D45A5B7F0BF96E477EF51D15353851
D7743F7E91B9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 40258431 52099146 1000 600 600 (trans.dvi)
@start /Fa 87[22 46[29 29 44 29 33 18 26 26 1[33 33 33
48 18 29 18 18 33 33 18 29 33 29 33 33 8[41 55 1[48 37
33 41 1[41 48 44 55 37 1[29 22 1[48 41 41 48 44 41 41
7[33 1[33 1[33 33 33 33 33 33 1[17 22 17 4[22 52 35[33
2[{ TeXBase1Encoding ReEncodeFont }59 66.4176 /Times-Italic
rf /Fb 139[30 32 4[43 1[20 2[20 43 1[25 37 101[{
TeXf7b6d320Encoding ReEncodeFont }8 83.022 /CMSS10 rf
/Fc 135[40 7[36 8[34 34 4[37 75[41 21[{
TeXaae443f0Encoding ReEncodeFont }6 66.4176 /CMMI8 rf
/Fd 238[55 17[{ TeXbbad153fEncoding ReEncodeFont }1 66.4176
/CMSY8 rf /Fe 135[33 4[29 115[{ TeX74afc74cEncoding ReEncodeFont }2
66.4176 /CMTI8 rf /Ff 188[60 67[{}1 83.022 /MSBM10 rf
/Fg 135[33 2[37 22 26 2[37 33 37 55 18 2[18 1[33 1[29
37 29 1[33 12[44 37 3[52 48 63 44 2[26 1[52 1[44 69[{
TeXBase1Encoding ReEncodeFont }24 66.4176 /Times-Bold
rf /Fh 148[31 107[{ TeXaae443f0Encoding ReEncodeFont }1
41.511 /CMMI5 rf /Fi 206[28 49[{ TeX0ef0afcaEncoding ReEncodeFont }1
41.511 /CMR5 rf /Fj 223[83 32[{}1 83.022 /MSAM10 rf /Fk
150[39 39 5[46 14[69 20[74 1[74 1[74 1[74 15[67 36[35
35 38 38{}13 83.022 /CMEX10 rf /Fl 135[50 3[50 50 5[50
3[50 1[50 1[50 101[{ TeXBase1Encoding ReEncodeFont }7
83.022 /Courier-Oblique rf /Fm 138[50 8[50 2[50 4[50
46[50 1[50 50 50 49[{ TeXBase1Encoding ReEncodeFont }8
83.022 /Courier rf /Fn 168[63 44 1[41 44 48 1[44 52 48
55 37 44 1[18 2[41 44 48 48 1[44 65[{ TeXBase1Encoding ReEncodeFont }17
66.4176 /Helvetica rf /Fo 172[39 2[39 45 42 1[32 6[39
42 42 67[{ TeXBase1Encoding ReEncodeFont }8 58.1154 /Helvetica
rf /Fp 171[34 14[32 1[32 1[46 16[18 48[{
TeXbbad153fEncoding ReEncodeFont }5 41.511 /CMSY5 rf
/Fq 135[31 2[31 31 31 31 1[31 31 31 31 31 2[31 31 31
31 31 31 31 31 31 3[31 1[31 26[31 2[31 2[31 10[31 1[31
3[31 31 5[31 34[{ TeX09fbbfacEncoding ReEncodeFont }29
58.1154 /CMTT8 rf /Fr 130[44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 3[44 1[44 1[44 44 2[44 44 44 44 1[44 44 44 44 44
2[44 44 44 44 44 44 44 44 44 44 44 44 44 44 1[44 7[44
44 1[44 44 44 44 44 44 44 44 4[44 44 34[{
TeX09fbbfacEncoding ReEncodeFont }69 83.022 /CMTT10
rf /Fs 135[39 1[38 45 28 34 35 1[42 42 47 68 21 2[25
42 38 25 38 42 38 1[42 7[62 2[62 1[59 47 61 1[56 64 62
74 52 2[32 62 64 1[56 63 2[62 52[47 12[{
TeX74afc74cEncoding ReEncodeFont }36 83.022 /CMTI10
rf /Ft 152[34 34 9[45 45 6[38 14[36 1[36 1[53 14[45 1[19
32[34 11[34 3[{ TeXbbad153fEncoding ReEncodeFont }12
58.1154 /CMSY7 rf /Fu 140[31 2[34 1[41 59 1[35 1[23 8[28
17[53 63 8[54 8[20 20 30[38 13[35 13[{
TeXaae443f0Encoding ReEncodeFont }14 58.1154 /CMMI7
rf /Fv 192[31 6[33 3[33 33 33 33 33 6[26 26 6[19 33[{
TeXf7b6d320Encoding ReEncodeFont }10 58.1154 /CMR7 rf
/Fw 135[32 2[37 23 28 29 1[35 35 38 56 18 2[21 1[32 1[32
35 2[35 12[49 38 9[26 50 53 71[{ TeX74afc74cEncoding ReEncodeFont }20
58.1154 /CMTI7 rf /Fx 129[35 35 1[35 35 35 35 35 35 35
35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
35 35 3[35 1[35 1[35 35 35 1[35 35 35 35 35 35 35 35
35 35 1[35 35 35 35 1[35 35 35 35 35 35 35 35 35 35 35
35 35 35 1[35 1[35 35 35 35 35 35 35 35 35 35 35 35 35
4[35 35 35 33[{ TeX09fbbfacEncoding ReEncodeFont }79
66.4176 /CMTT8 rf /Fy 134[41 47 3[30 39 37 1[42 40 50
73 1[43 1[29 48 40 41 39 43 36 36 44 35 11[49 51 63 1[53
63 67 81 57 4[65 1[61 69 59 63 62 5[23 23 11[42 11[39
1[54 4[47 5[48 5[34 1[43 13[{ TeXaae443f0Encoding ReEncodeFont }43
83.022 /CMMI10 rf /Fz 162[23 1[23 29[65 2[23 3[42 42
42 42 42 42 7[32 32 30[65 2[60 4[69 52{
TeXf7b6d320Encoding ReEncodeFont }16 83.022 /CMR10 rf
/FA 137[65 7[42 3[23 2[42 42 5[51 55 55 1[55 55 7[50
6[57 16[42 1[46 46 0 0 3[55 8[83 7[83 14[65 3[42 11[65
23 1[{ TeXbbad153fEncoding ReEncodeFont }24 83.022 /CMSY10
rf /FB 107[46 46 24[32 37 37 55 37 42 23 32 32 42 42
42 42 60 23 37 1[23 42 42 23 37 42 37 42 42 8[51 3[46
42 51 1[51 60 1[69 46 2[28 1[60 1[51 60 55 51 51 18[21
28 41[42 42 2[{ TeXBase1Encoding ReEncodeFont }46 83.022
/Times-Italic rf /FC 104[83 42 1[37 37 10[28 13[37 42
42 60 42 42 23 32 28 42 42 42 42 65 23 42 23 23 42 42
28 37 42 37 42 37 3[28 1[28 2[60 78 60 60 51 46 55 60
46 60 60 74 51 1[32 28 60 60 46 51 60 55 55 60 5[23 23
42 42 42 42 42 42 42 42 42 42 23 21 28 21 2[28 28 28
3[42 31[46 46 2[{ TeXBase1Encoding ReEncodeFont }78 83.022
/Times-Roman rf /FD 7[33 97[33 1[29 29 24[29 33 33 48
33 33 18 26 22 33 33 33 33 52 18 33 18 18 33 33 22 29
33 29 33 29 3[22 1[22 1[48 48 63 48 48 41 37 44 48 37
48 48 59 41 48 26 22 48 48 37 41 48 44 44 48 1[29 4[18
33 33 33 33 33 33 33 33 33 33 18 17 22 17 1[33 22 22
22 52 34[37 37 2[{ TeXBase1Encoding ReEncodeFont }80
66.4176 /Times-Roman rf /FE 171[40 16[43 1[43 65[{
TeXBase1Encoding ReEncodeFont }3 59.7758 /Times-Bold
rf /FF 104[75 29[37 37 54 37 42 25 29 33 42 42 37 42
62 21 42 1[21 42 37 25 33 42 33 42 37 8[54 75 2[50 42
54 1[46 58 1[71 50 1[37 29 2[46 1[54 54 50 6[25 25 2[37
3[37 37 37 1[21 19 25 19 2[25 38[42 2[{ TeXBase1Encoding ReEncodeFont }
52 74.7198 /Times-Bold rf /FG 135[37 3[21 29 29 3[42
58 7[33 37 33 37 37 12[46 10[29 7[50 65[{
TeXBase1Encoding ReEncodeFont }14 74.7198 /Times-BoldItalic
rf /FH 7[46 125[41 2[66 2[25 36 30 3[46 1[25 46 1[25
46 46 1[41 46 41 46 41 13[51 5[81 1[66 1[30 5[61 1[66
18[23 1[23 1[46 42[{ TeXBase1Encoding ReEncodeFont }26
91.3242 /Times-Roman rf /FI 134[100 2[100 1[55 78 66
2[100 100 155 55 2[55 2[66 2[88 1[88 8[144 3[122 111
5[177 122 1[78 8[144 65[{ TeXBase1Encoding ReEncodeFont }20
199.253 /Times-Roman rf /FJ 168[55 2[36 32 39 2[42 42
4[19 1[42 32 36 1[39 1[42 7[29 29 29 29 29 29 29 29 29
29 48[{ TeXBase1Encoding ReEncodeFont }22 58.1154 /Times-Roman
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 0 0 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
0 0 a 0 0 a
SDict begin [ /Title (Static Analysis of XML Transformations in Java)
/Subject () /Creator (LaTeX with hyperref package) /Author (Christian Kirkegaard, Anders Moeller, and Michael I. Schwartzbach)
/Producer (dvips + Distiller) /Keywords () /DOCINFO pdfmark end
0 0 a -192 -307
a
SDict begin H.S end
-192 -307 a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmark
end
-192
-307 a FJ(IEEE)19 b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19
b(ENGINEERING)2823 b(1)-44 45 y FI(Static)71 b(Analysis)e(of)h(XML)g(T)
-7 b(ransformations)69 b(in)h(Ja)l(v)-5 b(a)635 239 y
FH(Christian)32 b(Kirk)o(e)o(gaard,)e(Anders)g(M\370ller*,)i(and)f
(Michael)g(I.)i(Schw)o(artzbach)-192 540 y
SDict begin [ /Count -0 /Dest (section.1) cvn /Title (Introduction)
/OUT pdfmark end
-192 540 a
-192 540 a
SDict begin [ /Count -0 /Dest (section.2) cvn /Title (XML Operations using DTD and XPath)
/OUT pdfmark end
-192 540 a -192 540 a
SDict begin [ /Count -0 /Dest (section.3) cvn /Title (Summary Graphs)
/OUT pdfmark end
-192 540 a -192 540
a
SDict begin [ /Count -3 /Dest (section.4) cvn /Title (Modeling XML Operations on Summary Graphs)
/OUT pdfmark end
-192 540 a -192 540 a
SDict begin [ /Count -0 /Dest (subsection.4.1) cvn /Title (Summary Graphs for XML Template Constants)
/OUT pdfmark end
-192 540 a -192 540 a
SDict begin [ /Count -0 /Dest (subsection.4.2) cvn /Title (Converting DTD Schemas to Summary Graphs)
/OUT pdfmark end
-192 540
a -192 540 a
SDict begin [ /Count -0 /Dest (subsection.4.3) cvn /Title (Symbolic XPath Evaluation)
/OUT pdfmark end
-192 540 a -192 540 a
SDict begin [ /Count -0 /Dest (section.5) cvn /Title (Implementation and Experiments)
/OUT pdfmark end
-192 540 a -192 540
a
SDict begin [ /Count -0 /Dest (section.6) cvn /Title (Conclusion) /OUT
pdfmark end
-192 540 a -192 540 a
SDict begin [ /Count -0 /Dest (section*.7) cvn /Title (Appendix I: Survey of Related Work)
/OUT pdfmark end
-192 540 a -192 540 a
SDict begin [ /Count -0 /Dest (section*.10) cvn /Title (Appendix II: Syntactic Sugar for Xact)
/OUT pdfmark end
-192 540
a -192 540 a
SDict begin [ /Count -0 /Dest (section*.11) cvn /Title (Appendix III: Modeling and Checking Plug Operations)
/OUT pdfmark end
-192 540 a -192 540 a
SDict begin [ /Count -0 /Dest (section*.12) cvn /Title (References)
/OUT pdfmark end
-192 540 a -192 540
a
SDict begin [ /Page 1 /View [ /Fit ] /PageMode /UseOutlines /DOCVIEW
pdfmark end
-192 540 a -192 540 a
SDict begin [ {Catalog} << >> /PUT pdfmark end
-192 540 a -192 540 a
SDict begin H.S end
-192 540
a -192 540 a
SDict begin 12 H.A end
-192 540 a -192 540 a
SDict begin [ /View [/XYZ H.V] /Dest (Doc-Start) cvn H.B /DEST pdfmark
end
-192 540 a -109 640
a FG(Abstract)p FF(\227)13 b(XML)44 b(documents)h(generated)g
(dynamically)h(by)f(pr)o(o-)-192 723 y(grams)36 b(ar)o(e)g(typically)f
(r)o(epr)o(esented)f(as)h(text)g(strings)g(or)h(DOM)e(tr)o(ees.)-192
806 y(This)g(is)h(a)g(lo)o(w-le)o(v)o(el)h(appr)o(oach)f(f)n(or)g(se)o
(v)o(eral)h(r)o(easons:)g(1\))f(tra)n(v)o(ersing)-192
889 y(and)29 b(modifying)g(such)g(structur)o(es)g(can)h(be)f(tedious)g
(and)g(err)o(or)h(pr)o(one;)-192 972 y(2\))h(although)f(schema)h
(languages,)g(e.g)o(.)f(DTD,)g(allo)o(w)i(classes)f(of)g(XML)-192
1055 y(documents)49 b(to)i(be)e(de\002ned,)f(ther)o(e)i(ar)o(e)g
(generally)h(no)f(automatic)-192 1138 y(mechanisms)35
b(f)n(or)g(statically)g(checking)f(that)g(a)h(pr)o(ogram)g(transf)n
(orms)-192 1221 y(fr)o(om)28 b(one)g(class)h(to)f(another)g(as)h
(intended.)-109 1306 y(W)-5 b(e)42 b(intr)o(oduce)g(X)t
FE(A)q(C)t(T)r FF(,)e(a)h(high-le)o(v)o(el)g(appr)o(oach)h(f)n(or)g(J)o
(a)n(v)o(a)h(using)-192 1389 y(XML)c(templates)g(as)h(a)g
(\002rst-class)f(data)h(type)f(with)g(operations)h(f)n(or)-192
1472 y(manipulating)35 b(XML)i(v)o(alues)g(based)f(on)h(XP)o(ath.)f(In)
h(addition)e(to)i(an)-192 1555 y(ef\002cient)21 b(runtime)f(r)o(epr)o
(esentation,)g(the)h(data)h(type)f(permits)h(static)f(type)-192
1638 y(checking)g(using)h(DTD)g(schemas)g(as)h(types.)f(By)g
(specifying)g(schemas)h(f)n(or)-192 1721 y(the)29 b(input)f(and)g
(output)h(of)g(a)h(pr)o(ogram,)g(our)f(analysis)h(algorithm)g(will)-192
1804 y(statically)d(v)o(erify)g(that)f(v)o(alid)g(input)e(data)j(is)f
(always)h(transf)n(ormed)g(into)-192 1887 y(v)o(alid)f(output)f(data)i
(and)e(that)h(the)g(operations)h(ar)o(e)f(used)g(consistently)-5
b(.)-109 2018 y FG(Index)22 b(T)-7 b(erms)p FF(\227)12
b(D)o(.3.3)21 b(Language)h(Constructs)f(and)g(F)n(eatur)o(es,)f
(I.7.2.f)-192 2101 y(Markup)27 b(Languages,)h(D)o(.2.1)g(Requir)o
(ements/Speci\002cations)-192 2266 y
SDict begin H.S end
-192 2266 a -192
2266 a
SDict begin 12 H.A end
-192 2266 a -192 2266 a
SDict begin [ /View [/XYZ H.V] /Dest (section.1) cvn H.B /DEST pdfmark
end
-192 2266 a 530 2352 a
FC(I)t(.)45 b(I)t FD(N)t(T)t(R)q(O)t(D)t(U)t(C)t(T)t(I)t(O)t(N)-109
2490 y FC(Extensible)24 b(Markup)f(Language,)f(XML)j([1)o(],)f(has)h
(since)g(its)h(intro-)-192 2589 y(duction)20 b(in)h(1998)f(gained)g
(considerable)f(interest)i(from)f(industry)g(and)-192
2689 y(no)n(w)k(plays)g(an)g(important)e(role)i(in)g(the)g(e)o(xchange)
e(of)i(a)h(wide)f(v)n(ariety)-192 2788 y(of)30 b(data)h(on)f(the)g(W)-7
b(eb)m(.)31 b(Although)e(XML,)h(technically)-5 b(,)29
b(is)j(merely)d(a)-192 2888 y(linear)d(syntax)g(for)g(ordered)e
(labeled)i(tree)h(structures,)e(it)i(has)g(pro)o(v)o(en)-192
2988 y(useful)h(as)h(a)g(notation)e(for)h(structuring)f(information)f
(in)j(general.)-109 3089 y(The)35 b(syntax)f(of)h(an)g(XML-based)e
(language)h(is)i(speci\002ed)e(using)-192 3189 y(a)40
b(v)n(ocab)n(ulary)d(of)h(elements)h(and)g(attrib)n(utes)g(together)f
(with)h(rules)-192 3288 y(for)d(constraining)f(their)i(use.)f(There)g
(e)o(xists)i(a)f(v)n(ariety)f(of)g(schema)-192 3388 y(languages,)25
b(such)h(as)h(DTD)g([1)o(],)g(XML)f(Schema)g([2)o(],)h(or)f(DSD2)h([3)o
(],)-192 3488 y(allo)n(wing)k(the)h(syntax)f(to)i(be)f(formalized.)e
(An)i(XML)g(document)e(is)-192 3587 y FB(valid)37 b FC(relati)n(v)o(e)d
(to)h(a)g(gi)n(v)o(en)e(schema)i(if)g(all)g(the)g(syntactic)f(require-)
-192 3687 y(ments)c(speci\002ed)g(by)g(the)g(schema)g(are)g
(satis\002ed)h(in)g(the)f(document.)-192 3787 y(The)50
b FB(langua)o(g)o(e)f FA(L)p Fz(\()p Fy(S)5 b Fz(\))52
b FC(of)f(a)g(schema)f Fy(S)56 b FC(is)c(the)f(set)g(of)g(XML)-192
3886 y(documents)27 b(that)h(are)h(v)n(alid)f(relati)n(v)o(e)g(to)g
Fy(S)5 b FC(.)-109 3988 y(A)22 b(popular)e(XML-based)g(language)g(is)i
(XHTML)f([4)o(],)h(the)f(\223XML-)-192 4087 y(ized\224)h(v)n(ariant)f
(of)h(HTML.)g(The)g(XHTML)g(language)f(is)i(widely)f(used)-192
4187 y(in)f FB(inter)o(active)f FC(W)-7 b(eb)21 b(services)g(where)f
(the)h(clients)g(are)f(human)f(beings)-192 4287 y(that)30
b(use)h(bro)n(wsers)e(to)i(interact)f(with)g(the)h(serv)o(ers.)e(A)i
(recent)f(trend)-192 4386 y(is)25 b(to)g(mo)o(v)o(e)d(from)i(interacti)
n(v)o(e)e(W)-7 b(eb)25 b(services)g(to)n(w)o(ards)e FB(application-)
-192 4486 y(to-application)e FC(W)-7 b(eb)25 b(services,)e(where)h(the)
g(clients)g(are)g(not)g(humans)-192 4586 y(with)g(bro)n(wsers)g(b)n(ut)
g(general)f(programs.)f(This)j(calls)g(for)e(specialized)-192
4685 y(XML-based)46 b(languages)g(to)h(mediate)f(communication)f
(between)-192 4785 y(clients)20 b(and)e(serv)o(ers.)h(As)h(an)f(e)o
(xample,)f(Amazon.com)f(no)n(w)h(pro)o(vides)-192 4884
y(an)37 b(XML)h(interf)o(ace)f([5)o(])h(that)f(allo)n(ws)h(other)f
(programs)e(to)j(search)-192 4984 y(for)30 b(product)f(information.)e
(These)k(other)f(programs)e(may)i(combine)-192 5084 y(that)25
b(information)d(with)i(data)g(from)g(other)f(sources,)h(e)o(xtract)g
(rele)n(v)n(ant)-121 5248 y FD(This)53 b(w)o(ork)h(is)g(supported)h(by)
f(Basic)h(Research)h(in)e(Computer)h(Science)-192 5322
y(\()p Fx(www.brics.dk)p FD(\),)46 b(funded)e(by)f(the)g(Danish)h
(National)h(Research)g(F)o(oundation.)-192 5397 y(Anders)33
b(M\370ller)h(is)f(supported)h(by)f(the)g(Carlsber)o(g)h(F)o(oundation)
h(contract)g(number)-192 5472 y(ANS-1069/20.)-121 5546
y(*Corresponding)23 b(author)l(.)f(BRICS,)f(Department)i(of)d(Computer)
i(Science,)h(Uni)n(v)o(er)o(-)-192 5621 y(sity)h(of)g(Aarhus,)f
(Denmark.)h(Email:)h Fx(amoeller@brics.dk)2000 640 y
FC(parts)k(and,)f(for)h(e)o(xample,)e(transform)h(the)h(results)g(into)
g(other)f(XML)2000 739 y(documents)f(to)h(interact)g(with)h(yet)f
(another)f(group)g(of)h(programs.)2083 836 y(From)h(this)h(de)n(v)o
(elopment,)c(it)31 b(is)f(clear)g(that)g(XML)f(already)g(plays)2000
936 y(a)c(central)e(role)i(in)f(representation)e(of)j(information)d(on)
i(the)g(W)-7 b(eb)25 b(and)2000 1035 y(that)h FB(tr)o(ansformation)e
FC(of)i(XML)g(data)g(is)g(becoming)e(a)j(k)o(e)o(y)e(aspect)h(of)2000
1135 y(W)-7 b(eb)29 b(service)f(programming.)2083 1232
y(Existing)43 b(general-purpose)e(programming)g(languages)i(do)h(not)
2000 1331 y(pro)o(vide)34 b(an)o(y)h(special)h(support)e(for)i(XML)g
(transformations.)d(W)m(ith)2000 1431 y(these)28 b(languages,)e(the)i
(programmer)c(may)k(choose)f(to)h(model)e(XML)2000 1531
y(data)f(either)h(1\))f(as)i(te)o(xt)e(strings,)h(or)f(2\))h(as)g(DOM)g
([6)o(])g(tree)g(structures)2000 1630 y(\(or)35 b(v)n(ariants)g(of)h
(that,)g(such)g(as)g(JDOM)h([7)o(]\).)e(The)h(\002rst)h(approach)2000
1730 y(is)29 b(often)e(used)h(for)f(languages)g(as)h(XHTML)g(where)f
(documents)g(are)2000 1830 y(being)18 b(constructed)g(b)n(ut)i(rarely)f
(deconstructed,)e(whereas)i(the)g(second)2000 1929 y(is)39
b(more)e(used)h(for)f(languages)g(and)g(transformation)f(that)i(in)m(v)
n(olv)o(e)2000 2029 y(both)28 b(construction)g(and)h(deconstruction)e
(of)i(documents.)e(W)-7 b(e)31 b(shall)2000 2128 y(ar)o(gue)22
b(that)i(both)e(approaches)g(are)i(lo)n(w-le)n(v)o(el)e(in)i(the)f
(sense)h(that)g(the)o(y)2000 2228 y(are)k(often)g(error)n(-prone)d(and)
j(tedious)g(to)h(use.)2083 2325 y(Our)c(ultimate)g(goal)g(is)h(to)f
(inte)o(grate)g(XML)g(into)g(general-purpose)2000 2424
y(programming)32 b(languages,)j(in)h(particular)e(Ja)n(v)n(a,)j(to)f
(support)e(more)2000 2524 y(high-le)n(v)o(el)41 b(de\002nitions)i(of)g
(XML)h(transformations)d(and)i(thereby)2000 2624 y(mak)o(e)28
b(de)n(v)o(elopment)d(of)k(W)-7 b(eb)29 b(services)f(easier)h(and)f
(safer)-5 b(.)2083 2720 y(W)e(e)48 b(wish)f(to)h(incorporate)c(XML)j
(data)g(as)h(\002rst-class)g(v)n(alues)2000 2820 y(in)f(Ja)n(v)n(a.)h
(Since)f(an)h(XML)f(schema)g(de\002nes)g(a)h(class)g(of)f(XML)2000
2920 y(documents,)32 b(it)k(is)f(natural)f(to)h(vie)n(w)f(schemas)h(as)
g FB(types)g FC(alongside)2000 3019 y(the)44 b(standard)f(types)h(such)
g(as)h(inte)o(gers)f(and)f(strings.)h(An)g(XML)2000 3119
y(transformation)21 b(is)26 b(de\002ned)d(by)h(a)g(program)f(that)h(as)
h(input)e(tak)o(es)i(one)2000 3219 y(or)e(more)f(XML)h(documents)f
Fy(x)2926 3188 y Fw(in)2926 3239 y Fv(1)2995 3219 y Fy(;)14
b(:)g(:)g(:)g(;)g(x)3227 3188 y Fw(in)3227 3239 y Fu(n)3320
3219 y FC(and)22 b(as)i(output)e(produces)2000 3318 y(a)34
b(ne)n(w)f(XML)g(document)e Fy(x)2867 3288 y Fw(out)2972
3318 y FC(.)j(In)f(the)g(same)h(w)o(ay)f(the)h(notion)e(of)2000
3418 y(types)41 b(is)h(normally)e(used)h(in)g(programming)d(for)j
(structuring)e(the)2000 3517 y(code)28 b(and)h(detecting)f(programming)
e(errors)j(at)g(an)g(early)g(stage,)g(the)2000 3617 y(program)j(may)i
(assume)g(that)g(each)g(input)f(document)g Fy(x)3734
3587 y Fw(in)3734 3639 y Fu(i)3838 3617 y FC(is)i(v)n(alid)2000
3717 y(relati)n(v)o(e)26 b(to)i(some)f(input)g(schema)g
Fy(S)3101 3687 y Fw(in)3096 3738 y Fu(i)3170 3717 y FC(,)h(and)e(it)j
(is)f(intended)e(that)h(the)2000 3816 y(output)f(document)g
Fy(x)2643 3786 y Fw(out)2776 3816 y FC(is)j(al)o(w)o(ays)f(v)n(alid)f
(relati)n(v)o(e)g(to)h(some)g(output)2000 3916 y(schema)g
Fy(S)2334 3886 y Fw(out)2438 3916 y FC(.)h(In)f(this)h(article)g(we)f
(wish)h(to)2000 3924 y
SDict begin H.S end
2000 3924 a 2000 3924 a
SDict begin 12 H.A end
2000 3924
a 2000 3924 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.1) cvn H.B /DEST pdfmark
end
2000 3924 a 2083 4023 a FC(1\))49 b(incorporate)31
b(XML)j(into)g(Ja)n(v)n(a)g(with)g(a)g(f)o(amily)g(of)f(basic)h(b)n(ut)
2202 4122 y(high-le)n(v)o(el)26 b(operations)h(for)h(de\002ning)f
(transformations,)f(and)2000 4140 y
SDict begin H.S end
2000 4140 a 2000
4140 a
SDict begin 12 H.A end
2000 4140 a 2000 4140 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.2) cvn H.B /DEST pdfmark
end
2000 4140 a 2083 4222
a FC(2\))49 b(pro)o(vide)35 b FB(static)j(type)g(c)o(hec)n(king)p
FC(,)e(that)i(is,)g(for)f(the)h(program,)2202 4322 y(v)o(erify)32
b(at)i(compile-time)e(that)i Fy(x)3210 4292 y Fw(out)3348
4322 y FA(2)f(L)p Fz(\()p Fy(S)3581 4292 y Fw(out)3685
4322 y Fz(\))i FC(gi)n(v)o(en)d(that)2202 4421 y Fy(x)2249
4391 y Fw(in)2249 4443 y Fu(i)2341 4421 y FA(2)24 b(L)p
Fz(\()p Fy(S)2565 4391 y Fw(in)2560 4443 y Fu(i)2634
4421 y Fz(\))29 b FC(for)f(each)g Fy(i)p FC(.)2000 4528
y(In)23 b(comparison,)e(the)i(e)o(xisting)g(approaches)e(of)i(using)g
(te)o(xt)g(strings)h(or)2000 4628 y(DOM)29 b(trees)f(do)g(not)h
(support)e(static)i(type)f(checking.)2083 4725 y(W)-7
b(e)33 b(w)o(ork)e(in)g(the)h(conte)o(xt)f(of)g(JWIG)h([8],)f([9)o(],)h
(an)g(e)o(xtension)e(of)2000 4824 y(Ja)n(v)n(a)40 b(that,)g(among)f
(other)h(features,)f(pro)o(vides)f(a)j(mechanism)e(for)2000
4924 y(construction)f(of)i(XML)g(documents)e(using)i
FB(XML)g(templates)g FC(and)2000 5023 y FB(plug)33 b(oper)o(ations)p
FC(,)f(which)i(we)g(brie\003y)f(recapitulate)g(in)h(Section)4016
5023 y
SDict begin H.S end
4016 5023 a FC(II)4071 4968 y
SDict begin H.R end
4071 4968 a 4071
5023 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.2) cvn H.B /ANN pdfmark end
4071 5023 a FC(.)2000 5123 y(Our)i(pre)n(vious)g(results)h
(included)f(a)h(static)h(analysis)f(for)f(checking)2000
5223 y(that)31 b(the)g(constructed)e(documents)g(are)h(al)o(w)o(ays)i
(v)n(alid)e(relati)n(v)o(e)g(to)h(a)2000 5322 y(gi)n(v)o(en)21
b(DSD2)i(schema.)f(Ho)n(we)n(v)o(er)m(,)f(the)h(mechanism)g(only)f
(supported)2000 5422 y FB(construction)44 b FC(of)h(XML)g(documents,)e
(not)i FB(deconstruction)p FC(.)e(This)2000 5522 y(has)36
b(sho)n(wn)g(to)g(be)g(suf)n(\002cient)g(for)f(interacti)n(v)o(e)g(W)-7
b(eb)37 b(services)f(that)2000 5621 y(dynamically)46
b(create)i(XHTML)g(documents,)e(b)n(ut,)i(as)g(e)o(xplained)p
eop end
%%Page: 2 2
TeXDict begin 2 1 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192 -307
a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.2) cvn H.B /DEST pdfmark
end
-192 -307 a FJ(IEEE)19
b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19 b(ENGINEERING)2823
b(2)-192 -58 y FC(earlier)m(,)20 b(application-to-application)c(W)-7
b(eb)22 b(services)f(require)f(general)-192 42 y(XML)48
b(transformations,)d(which)j(also)g(includes)g(deconstruction.)-192
142 y(Furthermore,)42 b(the)j(pre)n(vious)e(results)i(were)f(obtained)f
(under)h(the)-192 241 y(assumption)i(that)i(XML)g(documents)e(are)h(b)n
(uilt)h(from)f(a)h(set)g(of)-192 341 y(constant)30 b(XML)g(templates.)g
(This)h(is)g(also)g(a)g(v)n(alid)f(assumption)f(for)-192
441 y(interacti)n(v)o(e)22 b(W)-7 b(eb)23 b(services,)g(b)n(ut)g(not)g
(for)f(application-to-application)-192 540 y(W)-7 b(eb)27
b(services,)e(where)h(the)g(constituents)f(of)h(the)g(result)g(of)g(an)
g(XML)-192 640 y(transformation)21 b(are)j(often)f(input)g(from)g
(other)g(W)-7 b(eb)25 b(services.)e(In)h(the)-192 739
y(present)36 b(article)g(we)h(generalize)e(the)i(pre)n(vious)d(results)
j(to)g(general)-192 839 y(XML)46 b(transformations)d(that)i(also)h(in)m
(v)n(olv)o(e)e(deconstruction)f(and)-192 939 y(importing)27
b(of)h(XML)g(templates.)-192 1242 y FB(Contrib)n(utions)-192
1291 y
SDict begin H.S end
-192 1291 a -192 1291 a
SDict begin 12 H.A end
-192 1291 a -192 1291
a
SDict begin [ /View [/XYZ H.V] /Dest (section*.1) cvn H.B /DEST pdfmark
end
-192 1291 a 107 x FC(Our)g(contrib)n(utions)f(in)h(this)h(article)g
(are)f(the)h(follo)n(wing:)-109 1532 y Ft(\017)50 b FC(A)26
b(no)o(v)o(el)d(data)i(type)g(with)h(high-le)n(v)o(el)d(operations)g
(for)i(de\002ning)-25 1632 y(XML)j(transformations)f(in)h(Ja)n(v)n(a;)
-109 1731 y Ft(\017)50 b FC(a)25 b(static)g(analysis)f(technique)f
(based)h(on)f(a)i(notion)e(of)h(summary)-25 1831 y(graphs;)-109
1931 y Ft(\017)50 b FC(an)37 b(algorithm)e(for)h(symbolic)g(e)n(v)n
(aluation)g(of)g(XP)o(ath)h(e)o(xpres-)-25 2030 y(sions)46
b([10)o(])g(on)g(summary)f(graphs,)f(which)i(is)h(essential)g(in)-25
2130 y(the)30 b(static)g(analysis)g(to)g(model)f(XP)o(ath)h(operations)
e(that)i(select)-25 2230 y(fragments)d(of)h(XML)h(v)n(alues;)-109
2329 y Ft(\017)50 b FC(an)26 b(algorithm)e(for)i(con)m(v)o(erting)d
(DTD)j(schemas)g(into)g(summary)-25 2429 y(graphs,)g(which)h(is)i(used)
e(in)h(the)f(static)i(analysis)f(for)e(modeling)-25 2528
y(type)i(cast)h(operations;)-109 2628 y Ft(\017)50 b
FC(e)o(xperimental)41 b(e)n(vidence)h(that)i(the)f(approach)e(is)k
(practically)-25 2728 y(feasible;)28 b(and)-109 2827
y Ft(\017)50 b FC(a)30 b(surv)o(e)o(y)e(of)h(e)o(xisting)g(techniques)f
(for)h(de\002ning)f(XML)i(trans-)-25 2927 y(formations.)-192
3061 y(Preliminary)36 b(results)i(were)g(described)e(in)i([11)n(].)g
(In)f(a)h(companion)-192 3161 y(paper)48 b([12)o(],)i(we)g(sho)n(w)f
(that)g(our)g(data)h(type)f(also)h(permits)f(an)-192
3261 y(ef)n(\002cient)33 b(runtime)e(representation.)g(Although)g(we)j
(focus)e(on)h(Ja)n(v)n(a,)-192 3360 y(our)f(ideas)i(can)f(be)g(applied)
f(to)h(other)f(general-purpose)e(high-le)n(v)o(el)-192
3460 y(programming)22 b(languages)j(since)h(we)h(do)e(not)h(depend)e
(on)i(an)o(y)f(Ja)n(v)n(a-)-192 3559 y(speci\002c)k(language)d
(constructs.)-192 3863 y FB(Overvie)o(w)-192 3912 y
SDict begin H.S end
-192
3912 a -192 3912 a
SDict begin 12 H.A end
-192 3912 a -192 3912 a
SDict begin [ /View [/XYZ H.V] /Dest (section*.2) cvn H.B /DEST pdfmark
end
-192 3912
a -109 4019 a FC(Section)167 4019 y
SDict begin H.S end
167 4019 a FC(II)223
3963 y
SDict begin H.R end
223 3963 a 223 4019 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.2) cvn H.B /ANN pdfmark end
223 4019 a 27 w FC(e)o(xplains)g(our)g
(approach,)e(named)k(X)t FD(A)q(C)t(T)r FC(.)g(It)f(in)m(v)n(olv)o(es)
-192 4118 y(DTD)36 b(and)g(XP)o(ath)g(for)g(e)o(xpressing)e(classes)j
(of)f(XML)g(v)n(alues)g(and)-192 4218 y(selecting)41
b(fragments)e(of)i(indi)n(vidual)e(v)n(alues.)h(The)h(operations)f(in)
-190 4317 y(X)t FD(A)q(C)t(T)h FC(can)d(be)h(performed)c(ef)n
(\002ciently)j(with)g(a)h(suitable)f(runtime)-192 4417
y(representation,)18 b(which)i(we)g(mention)f(brie\003y)h(and)g
(describe)f(in)i(detail)-192 4517 y(in)46 b(a)g(separate)g(paper)-5
b(.)45 b(In)h(Section)979 4517 y
SDict begin H.S end
979 4517 a FC(III)1062
4461 y
SDict begin H.R end
1062 4461 a 1062 4517 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.3) cvn H.B /ANN pdfmark end
1062 4517 a FC(,)g(we)h(describe)e
FB(summary)-192 4616 y(gr)o(aphs)p FC(,)23 b(a)h(formalism)f(that)h
(pro)o(vides)e(the)i(foundation)d(for)i(the)h(static)-192
4716 y(program)44 b(analysis,)j(which)f(we)h(describe)e(in)i(Section)
1597 4717 y
SDict begin H.S end
1597 4717 a -1 x FC(IV)1685 4660 y
SDict begin H.R end
1685 4660
a 1685 4716 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.4) cvn H.B /ANN pdfmark end
1685 4716 a FC(.)g(This)-192 4816 y(analysis)33
b(encompasses)f(techniques)g(for)h(symbolically)e(e)n(v)n(aluating)-192
4915 y(XP)o(ath)j(e)o(xpressions)g(on)g(summary)f(graphs)g(and)h(con)m
(v)o(erting)e(DTD)-192 5015 y(schemas)26 b(into)g(summary)f(graphs.)h
(Our)g(prototype)e(implementation)-192 5114 y(and)d(a)i(number)d(of)h
(benchmark)f(tests)j(of)f(the)f(analyzer)g(are)h(described)-192
5214 y(in)29 b(Section)180 5215 y
SDict begin H.S end
180 5215 a -1 x FC(V)240
5159 y
SDict begin H.R end
240 5159 a 240 5214 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.5) cvn H.B /ANN pdfmark end
240 5214 a FC(.)-109 5322
y(Appendix)238 5322 y
SDict begin H.S end
238 5322 a FC(I)266 5267 y
SDict begin H.R end
266
5267 a 266 5322 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section*.7) cvn H.B /ANN pdfmark end
266 5322 a 19 w FC(contains)19 b(a)g(comprehensi)n(v)
o(e)d(surv)o(e)o(y)i(of)h(related)f(w)o(ork)-192 5422
y(on)i(language)e(support)h(for)g(XML)h(transformations.)d(In)j
(Appendix)1824 5422 y
SDict begin H.S end
1824 5422 a FC(II)1879 5366 y
SDict begin H.R end
1879
5366 a 1879 5422 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section*.10) cvn H.B /ANN pdfmark end
1879 5422 a FC(,)-192 5522 y(we)i(sho)n(w)e(ho)n(w)h
(the)g(basic)i(X)t FD(A)q(C)t(T)i FC(operations)19 b(can)i(be)g(e)o
(xtended)f(with)-192 5621 y(con)m(v)o(enient)26 b(syntactic)i(sugar)-5
b(.)2000 -157 y
SDict begin H.S end
2000 -157 a 2000 -157 a
SDict begin 12 H.A end
2000 -157 a 2000
-157 a
SDict begin [ /View [/XYZ H.V] /Dest (section.2) cvn H.B /DEST pdfmark
end
2000 -157 a 2197 -58 a FC(I)t(I)t(.)45 b(X)t(M)t(L)25
b(O)t FD(P)t(E)t(R)t(A)m(T)t(I)t(O)t(N)t(S)g(U)t(S)t(I)t(N)t(G)g
FC(D)t(T)t(D)g FD(A)t(N)t(D)f FC(X)t(P)m FD(A)m(T)t(H)2083
100 y FC(W)-7 b(e)44 b(present)e(a)h(technique,)f(X)t
FD(A)q(C)t(T)r FC(,)i(that)f(combines)e(1\))i(a)g(full)2000
199 y(inte)o(gration)28 b(of)i(XML)h(v)n(alues)f(and)f(highly)h(\003e)o
(xible)f(operations)g(for)2000 299 y(XML)24 b(transformation)e(into)j
(an)f(e)o(xisting)g(high-le)n(v)o(el)e(language,)h(and)2000
399 y(2\))28 b(static)h(guarantees)e(of)i(type)f(safety)g(of)g(the)h
(transformations.)2083 503 y(W)-7 b(e)32 b(choose)f(to)g(b)n(uild)g(on)
g(Ja)n(v)n(a)h(since)g(this)g(language)d(is)k(already)2000
603 y(widely)22 b(used)g(in)h(de)n(v)o(elopment)d(of)i(W)-7
b(eb)24 b(services.)e(Using)h(a)g(general-)2000 703 y(purpose)44
b(language)g(allo)n(ws)i(mixing)e(XML)i(manipulations)d(with)2000
802 y(other)24 b(functionality)-5 b(,)23 b(for)i(e)o(xample,)f
(accessing)h(data)g(bases)h(or)f(com-)2000 902 y(municating)38
b(on)i(the)g(Internet.)e(Our)i(starting)f(point)h(is)g(the)g(XML)2000
1002 y(template)g(mechanism)f(in)h(JWIG.)h(W)-7 b(e)41
b(use)g(XP)o(ath)f(for)g(selecting)2000 1101 y(fragments)33
b(of)i(XML)g(v)n(alues.)f(XP)o(ath)h(has)g(already)f(pro)o(v)o(en)e
(useful)2000 1201 y(for)c(this)h(purpose)e(in,)h(e.g.,)g(XSL)-8
b(T)29 b(and)f(XQuery)-5 b(.)2083 1306 y(Our)40 b(approach)f(to)i(pro)o
(viding)d(static)k(guarantees)e(is)h(based)g(on)2000
1405 y(data\003o)n(w)18 b(analysis)g(rather)g(than)g(traditional)g
(type)g(systems.)h(Data\003o)n(w)2000 1505 y(analysis)41
b(w)o(orks)g(on)g(control-\003o)n(w)f(graphs,)g(which)h(directly)g
(pro-)2000 1605 y(vides)e(\003o)n(w)g(sensiti)n(vity)-5
b(,)39 b(whereas)f(type)h(systems)h(typically)e(w)o(ork)2000
1704 y(on)33 b(abstract)g(syntax)f(trees.)i(Our)f(analysis)g(is)i
(reminiscent)d(of)h(type)2000 1804 y(inference)18 b(since)h(v)n
(ariable)f(declarations)g(do)h(not)g(ha)n(v)o(e)g(e)o(xplicit)g(types.)
2083 1909 y(By)45 b(b)n(uilding)e(on)h(an)g(imperati)n(v)o(e)f
(language,)f(our)i(mechanism)2000 2008 y(is)49 b(operational)d(and)i
(in)g(that)g(respect)g(closer)g(to,)g(for)f(e)o(xample,)2000
2108 y(JDOM,)34 b(than)f(to)g(a)h(declarati)n(v)o(e)e(language)g(as)i
(XQuery)-5 b(.)32 b(Ho)n(we)n(v)o(er)m(,)2000 2208 y(an)40
b(important)e(design)h(choice)g(is)i(that)f(our)f(data)h(type)f(for)g
(XML)2000 2307 y(templates)23 b(is)h FB(immutable)f FC([13)o(].)g
(There)g(are)g(se)n(v)o(eral)g(reasons)g(for)g(this)2000
2407 y(choice:)d(As)h(in)g(pure)f(functional)f(languages,)g(ha)n(ving)h
(no)g(side-ef)n(fects)2000 2506 y(often)i(permits)g(a)h(cleaner)f
(programming)d(style.)k(F)o(or)f(e)o(xample,)f(there)2000
2606 y(is)27 b(no)f(need)f(for)h(e)o(xplicit)g(cop)o(ying)e(of)i(v)n
(alues,)g(thread)f(safety)h(comes)2000 2706 y(for)18
b(free,)h(and)g(the)g(use)g(of)g(v)n(alue)g(f)o(actories)f(is)i
(possible.)f(Furthermore,)2000 2805 y(since)k(side-ef)n(fects)f(can)g
(be)h(dif)n(\002cult)f(to)h(control,)e(ha)n(ving)h(immutable)2000
2905 y(data)j(a)n(v)n(oids)h(a)g(signi\002cant)f(class)i(of)e
(programming)e(errors.)h(Finally)-5 b(,)2000 3005 y(the)42
b(crucial)g(point)g(in)h(our)f(situation)g(is)i(that)e(immutability)g
(is)h(a)2000 3104 y(necessity)k(for)f(de)n(v)o(elopment)e(of)i(a)h
(feasible)g(program)e(analysis.)2000 3204 y(It)f(w)o(ould)f(not)h(be)g
(possible)f(to)h(transfer)f(our)h(program)d(analysis)2000
3304 y(techniques)27 b(to)i(a)f(mutable)g(data)g(type)g(as,)h(e.g.,)f
(JDOM.)2083 3408 y(W)-7 b(e)26 b(represent)e(XML)h(v)n(alues)g(as)g
FB(XML)h(templates)f FC(in)g(the)g(style)h(of)2000 3508
y(JWIG)h([8)o(].)g(An)g(XML)g(template)f(is)h(a)h(wellformed)c(XML)j
(fragment)2000 3608 y(that)d(may)f(contain)g(named)g
FB(gaps)g FC(where)g(other)g(templates)h(or)g(strings)2000
3707 y(may)33 b(be)g(inserted.)f(The)h(gaps)g(may)f(appear)g(in)i
(place)f(of)g(elements)2000 3807 y(or)c(attrib)n(ute)h(v)n(alues.)f(In)
h(JWIG,)g(this)h(has)f(pro)o(v)o(en)d(to)j(constitute)g(an)2000
3907 y(intuiti)n(v)o(e)20 b(and)h(\003e)o(xible)g(mechanism)g(for)g
(XML)g(document)f(construc-)2000 4006 y(tion.)2083 4111
y(F)o(ormally)-5 b(,)21 b(XML)i(templates)g(are)g(deri)n(v)o(ed)f(by)g
Fs(xml)32 b FC(in)23 b(the)h(follo)n(w-)2000 4211 y(ing)k(grammar:)2116
4371 y Fs(xml)66 b FC(:)59 b Fs(str)1025 b FC(\(character)27
b(data\))2310 4470 y FA(j)59 b Fr(<)p Fs(name)35 b(atts)6
b Fr(>)29 b Fs(xml)37 b Fr()p Fs(name)5 b Fr(>)140
b FC(\(element\))2310 4570 y FA(j)59 b Fr(<[)p Fy(g)s
Fr(]>)903 b FC(\(template)28 b(gap\))2310 4669 y FA(j)59
b Fs(xml)37 b(xml)2116 4769 y(atts)62 b FC(:)d Fs(name)6
b Fr(=")p Fs(str)i Fr(")551 b FC(\(attrib)n(ute)28 b(constant\))2310
4869 y FA(j)59 b Fs(name)6 b Fr(=[)p Fy(g)s Fr(])613
b FC(\(attrib)n(ute)28 b(gap\))2310 4968 y FA(j)59 b
Fs(atts)35 b(atts)2310 5068 y FA(j)59 b Fy(")2000 5223
y FC(Here,)39 b Fs(str)48 b FC(denotes)39 b(an)h(arbitrary)d(Unicode)i
(string,)g Fs(name)46 b FC(is)41 b(an)2000 5322 y(identi\002er)m(,)30
b(and)h Fy(g)k FC(is)d(a)g(gap)f(name.)g(Actual)g(XML)h(v)n(alues)f
(must)h(of)2000 5422 y(course)g(be)i(further)d(constrained)h(to)h(be)h
(wellformed)d(according)g(to)2000 5522 y(the)21 b(XML)f(1.0)h
(speci\002cation)f([1)o(].)g(Empty)g(elements)h(may)f(be)h(written)2000
5621 y(in)29 b(the)f(usual)h(alternati)n(v)o(e)e(notation)g
Fr(<)p Fs(name)35 b(atts)7 b Fr(/>)p FC(.)28 b(Moreo)o(v)o(er)m(,)d(in)
p eop end
%%Page: 3 3
TeXDict begin 3 2 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192 -307
a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.3) cvn H.B /DEST pdfmark
end
-192 -307 a FJ(IEEE)19
b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19 b(ENGINEERING)2823
b(3)-192 -58 y FC(this)22 b(description)e(we)i(abstract)g(a)o(w)o(ay)f
(all)i(inlined)e(DTD)g(information,)-192 42 y(comments,)27
b(and)h(processing)f(instructions.)-109 141 y(In)37 b(this)g(article,)g
(we)h(e)o(xtend)d(the)j(JWIG)f(mechanism)f(with)h(op-)-192
240 y(erations)e(for)g(deconstructing)f(and)h(importing)f(XML)h(data.)h
(These)-192 340 y(operations)g(are)h(based)f(on)h(DTD)g(and)g(XP)o
(ath,)f(which)h(we)g(brie\003y)-192 440 y(describe)31
b(in)h(the)g(follo)n(wing)e(to)i(e)o(xplain)f(the)h(terminology)d(that)
j(we)-192 539 y(use.)-192 754 y FB(DTD)-192 780 y
SDict begin H.S end
-192
780 a -192 780 a
SDict begin 12 H.A end
-192 780 a -192 780 a
SDict begin [ /View [/XYZ H.V] /Dest (section*.3) cvn H.B /DEST pdfmark
end
-192 780 a -109
879 a FC(The)24 b(DTD)h(formalism)e(is)i(a)g(simple)f(schema)g
(language)f(for)h(XML)-192 978 y(and)e(is)i(described)d(in)i(the)f(XML)
h(speci\002cation)f([1)o(].)g(A)h(DTD)g(schema)-192 1078
y(is)43 b(a)f(grammar)e(for)h(a)h(class)h(of)e(XML)h(documents)e
(de\002ning)g(for)-192 1178 y(each)34 b(element)g(the)g(required)f(and)
h(permitted)f(child)h(elements)g(and)-192 1277 y(attrib)n(utes.)28
b(The)h FB(contents)f FC(of)g(an)h(element)f(are)h(the)g(sequence)e(of)
i(its)-192 1377 y(immediate)i(children.)f(It)i(is)h(speci\002ed)e
(using)h(a)g(restricted)f(form)g(of)-192 1477 y(re)o(gular)c(e)o
(xpressions)g(o)o(v)o(er)g(element)h(names)g(and)g Fr(#PCDATA)p
FC(,)e(which)-192 1576 y(refers)34 b(to)i(arbitrary)d(character)h
(data.)g(Attrib)n(utes)h(can)g(be)g(declared)-192 1676
y(as)e(required)d(or)h(optional)g(for)g(a)h(gi)n(v)o(en)f(element,)g
(and)g(their)h(v)n(alues)-192 1776 y(can)37 b(be)f(constrained)f(to)i
(\002nite)g(collections)f(of)h(\002x)o(ed)f(strings.)h(W)-7
b(e)-192 1875 y(ignore)25 b(the)h(special)h(attrib)n(ute)f(types)g
Fr(ID)p FC(,)g Fr(IDREF)p FC(,)f Fr(ENTITY)p FC(,)f(etc.)j(W)-7
b(e)-192 1975 y(consider)27 b(a)h(DTD)g(schema)f(as)i(a)f
(speci\002cation)f(of)h(an)f FB(XML)i(type)f FC(in)-190
2074 y(X)t FD(A)q(C)t(T)r FC(.)-109 2173 y(The)f(follo)n(wing)e(e)o
(xample,)g(which)i(we)g(use)g(in)g(later)g(e)o(xamples,)f(is)-192
2273 y(a)j(DTD)g(schema)f(for)f(collections)h(of)g(recipes:)-157
2395 y Fx()-86 2545 y()-86 2619 y()-86 2694
y()-86
2769 y()
-86 2993 y()-86 3068
y()-157 3142 y(]>)-192
3291 y FC(This)23 b(data)g(model)g(support)e(both)i FB(simple)g
FC(ingredients,)f(consisting)g(of)-192 3391 y(a)33 b
Fr(name)f FC(and)h(possibly)f(an)h Fr(amount)e FC(and)i(a)g
Fr(unit)p FC(,)f(and)h FB(composite)-192 3490 y FC(ingredients,)27
b(which)h(are)g(described)f(recursi)n(v)o(ely)g(by)h(sub-recipes.)-109
3589 y(The)36 b(JWIG)h(v)n(alidity)f(analysis)g(described)f(in)i([8)o
(])g(uses)g(a)g(more)-192 3688 y(po)n(werful)h(schema)g(language,)g
(DSD2)h([3)o(],)h(which)e(is)j(capable)d(of)-192 3788
y(capturing)j(more)h(comple)o(x)f(syntactic)i(requirements)d(than)j
(DTD.)-192 3888 y(The)22 b(main)g(reason)g(for)f(using)h(DTD)h(here)e
(is)j(that)e(our)g(generalization)-192 3987 y(of)43 b(the)h(XML)f(cast)
h(operation,)e(as)i(e)o(xplained)d(in)j(the)f(follo)n(wing)-192
4087 y(sections,)27 b(requires)f(translation)h(from)f(schemas)h(into)g
(our)f(summary)-192 4187 y(graphs,)d(which)h(can)g(be)h(done)e
(straightforw)o(ardly)f(and)i(precisely)f(for)-192 4286
y(DTD.)-192 4501 y FB(XP)-7 b(ath)-192 4528 y
SDict begin H.S end
-192 4528
a -192 4528 a
SDict begin 12 H.A end
-192 4528 a -192 4528 a
SDict begin [ /View [/XYZ H.V] /Dest (section*.4) cvn H.B /DEST pdfmark
end
-192 4528 a -109
4626 a FC(XP)o(ath)39 b([10)o(])g(is)h(a)g(simple)f(b)n(ut)g(v)o
(ersatile)g(DSL)h(for)e(addressing)-192 4725 y(elements,)19
b(attrib)n(ute)f(v)n(alues,)h(and)f(character)g(data\227generally)f
(called)-192 4825 y FB(nodes)p FC(\227in)47 b(XML)i(documents.)e(It)h
(has)h(pro)o(v)o(en)d(po)n(werful)h(as)i(a)-192 4925
y(sub-language,)37 b(for)i(e)o(xample)f(in)h(XSL)-8 b(T)i(,)40
b(for)f(locating)g(document)-192 5024 y(fragments)27
b(and)h(as)h(a)g(pattern)f(matching)f(mechanism.)-109
5123 y(An)g(XP)o(ath)g FB(e)n(xpr)m(ession)g FC(can,)g(relati)n(v)o(e)f
(to)h(an)g(e)n(v)n(aluation)e(conte)o(xt,)-192 5223 y(e)n(v)n(aluate)32
b(to)g(a)h(boolean,)e(a)i(number)m(,)e(a)i(string,)f(or)g(a)h(set)g(of)
g(nodes.)-192 5322 y(A)g(node)f(set)h(e)o(xpression)e(is)j(called)e(a)h
FB(location)e(path)h FC(and)g(consists)-192 5422 y(of)j(a)h(sequence)e
(of)h FB(location)e(steps)p FC(,)j(each)f(ha)n(ving)f(three)h(parts:)g
(1\))-192 5522 y(an)d FB(axis)p FC(,)h(for)f(e)o(xample)f
Fr(child)f FC(or)j Fr(following-sibli)o(ng)p FC(,)26
b(which)-192 5621 y(selects)49 b(a)g(set)g(of)e(nodes)h(relati)n(v)o(e)
f(to)i(the)f(conte)o(xt)f(node,)f(2\))i(a)2000 -58 y
FB(node)c(test)p FC(,)j(which)e(\002lters)h(the)g(selected)f(nodes)g
(by)h(considering)2000 42 y(their)40 b(type)g(or)h(name,)f(and)g(3\))g
(a)h(number)e(of)h FB(pr)m(edicates)p FC(,)g(which)2000
142 y(are)k(boolean)f(e)o(xpressions)g(that)h(perform)f(a)i(further)m
(,)d(potentially)2000 241 y(more)47 b(comple)o(x,)f(\002ltration.)h
(Thus,)h(the)g(result)g(of)g(e)n(v)n(aluating)e(a)2000
341 y(location)34 b(step)h(on)f(a)i(speci\002c)f(node)e(is)j(a)g(set)f
(of)g(nodes.)f(A)h(whole)2000 441 y(location)27 b(path)g(is)i(e)n(v)n
(aluated)d(compositionally)f(left-to-right.)h(As)j(an)2000
540 y(e)o(xample,)18 b(the)i(follo)n(wing)e(e)o(xpression)g(selects)i
(all)h Fr(amount)d FC(attrib)n(utes)2000 640 y(in)32
b Fr(ingredient)c FC(elements)k(that)g(ha)n(v)o(e)f(a)h
Fr(name="salt")c FC(attrib)n(ute)2000 739 y(and)34 b(occur)g(within)h
Fr(recipe)e FC(elements)i(that)g(ha)n(v)o(e)f(a)h Fr(title)f
FC(child)2000 839 y(with)28 b(contents)g Fr(soup)p FC(:)2031
954 y Fq(child::recipe[string\(child::title/child::text\(\)\)=)o
("soup"]/)2031 1020 y
(descendant-or-self::ingredient[string\(attribute::)o(name\)="s)o
(alt"]/)2031 1086 y(attribute::amount)2000 1235 y FC(where)18
b(we)i(assume)f(that)g(the)g(initial)g(conte)o(xt)f(node)g(is)i(a)f
Fr(collection)2000 1335 y FC(element.)31 b(The)g Fr(string\(\))f
FC(function)g(e)o(xtracts)h(the)h(string)g(v)n(alue)f(of)2000
1434 y(a)e(node.)2083 1533 y(In)39 b(our)f(application)g(of)h(XP)o
(ath,)g(we)h(restrict)f(ourselv)o(es)f(to)h(the)2000
1633 y Fr(child)p FC(,)j Fr(descendant-or-se)o(lf)o FC(,)c(and)43
b Fr(attribute)e FC(ax)o(es.)i(This)2000 1732 y(means)30
b(that)g(all)h(e)n(v)n(aluation)d(is)j(top-do)n(wn,)d(which)h(is)i(suf)
n(\002cient)f(for)2000 1832 y(all)22 b(the)g(transformations)d(we)k
(mention)d(in)i(Section)3544 1833 y
SDict begin H.S end
3544 1833 a -1 x
FC(V)3604 1776 y
SDict begin H.R end
3604 1776 a 3604 1832 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.5) cvn H.B /ANN pdfmark end
3604 1832 a
23 w FC(and)f(simpli\002es)2000 1931 y(both)e(the)h(runtime)f(system)h
(and)g(the)g(analyzer)-5 b(.)19 b(\(If)g(the)i(need)e(for)g(other)2000
2031 y(ax)o(es)k(should)e(arise,)i(it)h(is)g(tri)n(vial)f(to)g(support)
e(all)j(ax)o(es)f(in)g(the)g(runtime)2000 2131 y(system,)35
b(and)g(the)g(analysis)g(could)g(be)g(e)o(xtended)e(correspondingly)
2000 2230 y(with)19 b(a)g(manageable)e(loss)j(of)f(precision)f(as)i
(consequence.\))c(A)j(similar)2000 2330 y(approach)e(is)j(tak)o(en)f
(in)h(the)f FB(fxt)j FC(language)17 b([14)o(].)i(Con)m(v)o(eniently)-5
b(,)17 b(XP)o(ath)2000 2430 y(of)n(fers)i(some)h(syntactic)h(sugar)e
(for)h(these)g(ax)o(es:)h Fr(child)d FC(is)k(the)e(def)o(ault)2000
2529 y(axis,)38 b Fr(/descendant-or-)o(sel)o(f:)o(:n)o(ode)o(\(\))o(/)
32 b FC(may)38 b(be)f(written)h(as)2000 2629 y Fr(//)p
FC(,)26 b(and)h Fr(attribute)d FC(may)j(be)g(written)g(as)h
Fr(@)p FC(.)f(The)f(e)o(xample)g(abo)o(v)o(e)2000 2728
y(may)i(then)g(be)g(abbre)n(viated)f(as)i(follo)n(ws:)2031
2843 y Fq(recipe[title/text\(\)="soup"]//ingredient[@name="sa)o
(lt"]/@am)o(ount)2000 2991 y FC(where)e(we)g(also)h(use)g(an)f
(implicit)h(coercion)e(rule)h(con)m(v)o(erting)d(nodes)2000
3091 y(to)k(their)h(te)o(xtual)e(contents.)2083 3190
y(An)50 b(XP)o(ath)g(e)o(xpression)e(is)j(e)n(v)n(aluated)e(relati)n(v)
o(e)g(to)h(an)g(XML)2000 3289 y(template)22 b(using)h(an)g(implicit)g
(template)g(root)g(node)f(as)i(conte)o(xt)e(node,)2000
3389 y(similarly)28 b(to)h(the)f(root)g(node)f(in)i(the)g(XP)o(ath)f
(data)g(model.)2000 3605 y FB(Basic)g(XML)h(Oper)o(ations)2000
3648 y
SDict begin H.S end
2000 3648 a 2000 3648 a
SDict begin 12 H.A end
2000 3648 a 2000 3648
a
SDict begin [ /View [/XYZ H.V] /Dest (section*.5) cvn H.B /DEST pdfmark
end
2000 3648 a 2083 3730 a FC(The)40 b(class)i Fr(XML)p
FC(,)e(which)g(represents)g(XML)h(templates,)f(allo)n(ws)2000
3830 y(se)n(v)o(eral)d(operations)f(that)i(are)g(sho)n(wn)f(in)h
(Figure)3568 3830 y
SDict begin H.S end
3568 3830 a FC(1)3610 3773 y
SDict begin H.R end
3610
3773 a 3610 3830 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (figure.1) cvn H.B /ANN pdfmark end
3610 3830 a FC(.)g(The)g(class)h(is)2000
3929 y(immutable:)24 b(all)i(operations)e(return)g(ne)n(w)i(v)n(alues)f
(without)g(changing)2000 4029 y(the)j(incoming)f(v)n(alues.)2083
4128 y(The)c Fr(constant)e FC(operation)h(constructs)i(an)f(XML)h
(template)g(from)2000 4227 y(the)h(syntax)f(generated)g(by)g(the)i
FB(xml)f FC(nonterminal)e(in)i(the)g(pre)n(viously)2000
4327 y(described)j(grammar;)f(the)i Fr(toString)e FC(operation)g
(translates)i(in)g(the)2000 4427 y(opposite)44 b(direction.)f(The)i(ar)
o(gument)d(to)j Fr(constant)d FC(must)j(be)g(a)2000 4526
y(constant.)36 b(The)h Fr(equals)f FC(operation)f(determines)i
(equality)f(of)h(tw)o(o)2000 4626 y(templates,)28 b(and)g
Fr(hashCode)d FC(returns)j(a)h(consistent)f(hash)g(code.)2083
4725 y(The)19 b Fr(plug)f FC(operation)g(is)i(used)f(to)h(insert)f(v)n
(alues)g(into)g(the)h(speci\002ed)2000 4824 y(gaps)31
b(in)h(a)h(template.)e(The)h(operation)e(is)j(de\002ned)e(in)h(four)f
(v)n(ariants)2000 4924 y(accepting)i(strings,)i(templates,)f(or)h
(arrays)f(of)h(these.)g(In)f(the)h(array)2000 5023 y(v)o(ersions,)k
(all)j(occurrences)c(of)j(the)g(named)e(gap)h(are)h(plugged)d(in)2000
5123 y(document)28 b(order)g(with)i(the)g(v)n(alues)f(occurring)f(in)i
(the)g(array)-5 b(.)28 b(If)h(the)2000 5223 y(lengths)18
b(do)h(not)g(match,)g(then)f(super\003uous)g(array)g(v)n(alues)h(are)g
(ignored)2000 5322 y(and)j(remaining)f(gaps)h(are)h(plugged)d(with)j
(the)g(empty)f(string.)g(F)o(or)g(the)2000 5422 y(case)29
b(where)f(an)g(element)g(contains)g(multiple)g(attrib)n(ute)h(gaps,)e
(these)2000 5522 y(are)34 b(ordered)f(le)o(xicographically)e(by)j
(attrib)n(ute)g(name.)g(In)g(the)h(non-)2000 5621 y(array)c(v)o
(ersion,)g(all)j(occurrences)c(of)i(the)h(named)e(gap)h(are)g(plugged)p
eop end
%%Page: 4 4
TeXDict begin 4 3 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192 -307
a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark
end
-192 -307 a FJ(IEEE)19
b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19 b(ENGINEERING)2823
b(4)p -192 -154 4284 4 v -194 -54 4 100 v -142 -84 a
Fr(static)41 b(XML)h(constant\(String)c Fy(s)p Fr(\))446
b FC(\226)28 b(creates)h(an)f(XML)h(template)f(from)f(a)i(constant)f
(string)p 4088 -54 V -194 45 V -142 16 a Fr(String)41
b(toString\(\))961 b FC(\226)28 b(con)m(v)o(erts)f(this)i(XML)g
(template)f(into)g(its)h(te)o(xtual)f(representation)p
4088 45 V -194 145 V -142 115 a Fr(boolean)40 b(equals\(Object)f
Fy(o)p Fr(\))663 b FC(\226)28 b(determines)g(equality)f(of)h(this)h
(template)f(and)g Fy(o)p 4088 145 V -194 245 V -142 215
a Fr(int)42 b(hashCode\(\))1092 b FC(\226)28 b(returns)g(the)g(hash)h
(code)e(of)i(this)g(template)p 4088 245 V -194 344 V
-142 314 a Fr(XML)42 b(plug\(Gap)e Fy(g)s Fr(,)j(XML)g
Fy(x)p Fr(\))744 b FC(\226)28 b(inserts)h(a)g(cop)o(y)f(of)g
Fy(x)h FC(into)g(all)g Fy(g)i FC(gaps)d(in)h(a)g(cop)o(y)e(of)i(this)g
(template)p 4088 344 V -194 444 V -142 414 a Fr(XML)42
b(plug\(Gap)e Fy(g)s Fr(,)j(String)e Fy(s)p Fr(\))622
b FC(\226)28 b(as)i(the)e(pre)n(vious,)f(b)n(ut)h(for)g(a)h(string)p
4088 444 V -194 544 V -142 514 a Fr(XML)42 b(plug\(Gap)e
Fy(g)s Fr(,)j(XML[])f Fs(xs)6 b Fr(\))625 b FC(\226)28
b(inserts)h(the)g(templates)f(in)h Fs(xs)35 b FC(into)28
b(the)h Fy(g)i FC(gaps)d(in)h(a)g(cop)o(y)e(of)i(this)g(template)p
4088 544 V -194 643 V -142 613 a Fr(XML)42 b(plug\(Gap)e
Fy(g)s Fr(,)j(String[])d Fs(ss)7 b Fr(\))499 b FC(\226)28
b(as)i(the)e(pre)n(vious,)f(b)n(ut)h(for)g(a)h(string)f(array)p
4088 643 V -194 743 V -142 713 a Fr(XML[])41 b(select\(XPath)e
Fy(p)p Fr(\))792 b FC(\226)28 b(returns)g(all)h(sub-templates)e
(selected)i(by)f Fy(p)p 4088 743 V -194 842 V -142 813
a Fr(XML)42 b(gapify\(XPath)d Fy(p)p Fr(,)k(Gap)f Fy(g)s
Fr(\))575 b FC(\226)28 b(con)m(v)o(erts)f(all)i(sub-templates)e
(selected)i(by)f Fy(p)h FC(into)f Fy(g)k FC(gaps)p 4088
842 V -194 942 V -142 912 a Fr(XML)42 b(close\(\))1224
b FC(\226)28 b(remo)o(v)o(es)f(all)i(open)f(template)g(gaps)f(and)h
(all)i(attrib)n(utes)e(with)h(open)e(gaps)p 4088 942
V -194 1042 V -142 1012 a Fr(static)41 b(XML[])g(group\(XML[])e
Fs(xs)7 b Fr(,)43 b(XPath)e Fy(p)p Fr(\))103 b FC(\226)28
b(groups)f(the)i(templates)f(in)h Fs(xs)35 b FC(according)27
b(to)h Fy(p)p 4088 1042 V -194 1141 V -142 1111 a Fr(XML)42
b(cast\(DTD)e Fy(d)p Fr(\))1053 b FC(\226)28 b(thro)n(ws)g(a)h(runtime)
f(e)o(xception)e(if)j(this)g(template)f(is)h(in)m(v)n(alid)f(relati)n
(v)o(e)f(to)i Fy(d)p 4088 1141 V -194 1241 V -142 1211
a Fr(static)41 b(XML)h(get\(String)13 b Fy(s)p Fr(,)j(DTD)f
Fy(d)p Fr(\))441 b FC(\226)28 b(con)m(v)o(erts)f Fy(s)i
FC(into)f(a)h(template)f(and)g(checks)g(v)n(alidity)g(relati)n(v)o(e)f
(to)i Fy(d)p 4088 1241 V -194 1341 V -142 1311 a Fr(XML)42
b(analyze\(DTD)d Fy(d)p Fr(\))922 b FC(\226)28 b(instructs)h(the)f
(analyzer)f(to)i(v)o(erify)e(that)i(this)g(template)f(is)h(v)n(alid)f
(relati)n(v)o(e)g(to)h Fy(d)p 4088 1341 V -192 1344 4284
4 v -192 1439 a FD(Fig.)23 b(1.)56 1439 y
SDict begin H.S end
56 1439 a 56
1439 a
SDict begin H.R end
56 1439 a 56 1439 a
SDict begin [ /View [/XYZ H.V] /Dest (figure.1) cvn H.B /DEST pdfmark
end
56 1439 a FD(Methods)i(in)f(the)g
Fx(XML)g FD(interf)o(ace)j(for)d(performing)h(basic)g(XML)d(template)k
(operations.)-192 1722 y FC(with)f(the)f(gi)n(v)o(en)f(v)n(alue.)g
(Attempts)i(to)f(plug)g(templates)g(into)g(attrib)n(ute)-192
1822 y(gaps)36 b(will)i(result)f(in)g(runtime)f(errors.)f(A)j(gap)e
(that)h(has)g(not)f(been)-192 1922 y(plugged)27 b(is)i(said)g(to)f(be)h
FB(open)p FC(.)-109 2026 y(As)g(an)g(e)o(xample,)e(plugging)f(the)i
(single)h(template)-157 2159 y Fx()-157 2234 y(<[ingredients]>)-192
2388 y FC(into)28 b(the)h Fr(ingredients)24 b FC(gap)k(of)g(the)h
(template)-157 2522 y Fx(<[title]>)-157 2596
y(<[ingredients]><[prepa)q(rati)q(on])q(>)-192
2750 y FC(yields)f(the)h(follo)n(wing)e(template:)-157
2884 y Fx(<[title]>)-157 2958 y()-157 3033
y(<[ingredients]><[prepa)q(rati)q(on])q(>)-109
3187 y FC(The)30 b Fr(select)e FC(and)i Fr(gapify)f FC(operations)f
(\002rst)j(\002nd)f(the)h(node)e(set)-192 3287 y(indicated)24
b(by)h(the)g(XP)o(ath)g(e)o(xpression)f(using)g(an)h(implicit)g(root)g
(node)-192 3386 y(as)e(initial)f(e)n(v)n(aluation)e(conte)o(xt.)h(In)h
Fr(select)p FC(,)e(the)i(subtrees)f(rooted)g(by)-192
3486 y(nodes)32 b(in)g(this)h(set)g(are)g(then)f(copied)f(in)i
(document)d(order)h(to)i(form)-192 3586 y(the)25 b(resulting)f
(template)h(array)-5 b(.)24 b(Attrib)n(ute)h(gaps)f(in)h(the)h(node)e
(set)i(are)-192 3685 y(ignored,)j(and)h(for)g(normal)g(attrib)n(utes,)g
(their)h(v)n(alues)g(are)f(con)m(v)o(erted)-192 3785
y(into)k(character)f(data.)h(In)g Fr(gapify)p FC(,)e(the)i(selected)h
(nodes)e(and)h(their)-192 3885 y(sub-trees)j(are)h(each)g(replaced)e
(by)i(a)g(gap)f(with)i(the)f(gi)n(v)o(en)e(name;)-192
3984 y(ho)n(we)n(v)o(er)m(,)27 b(if)k(one)e(selected)h(node)f(is)i(an)f
(ancestor)f(of)h(another)m(,)e(then)-192 4084 y(only)k(the)h(ancestor)f
(is)i(considered.)c(The)j Fr(close)e FC(operation)g(closes)-192
4183 y(all)24 b(gaps)f(in)g(a)h(template)f(by)g(remo)o(ving)e(template)
i(gaps)f(and)h(for)g(each)-192 4283 y(attrib)n(ute)28
b(gap,)f(the)i(entire)f(attrib)n(ute)g(is)i(remo)o(v)o(ed.)-109
4387 y(T)-7 b(o)39 b(e)o(x)o(emplify)e(the)i Fr(gapify)e
FC(operation,)f(if)k(the)e(template)h(pro-)-192 4487
y(duced)c(by)h(the)h(plug)e(operation)g(abo)o(v)o(e)g(is)i(subjected)f
(to)h(a)f(gapify)-192 4586 y(operation)60 b(with)h(gap)g(name)f
Fr(first)g FC(and)h(XP)o(ath)g(e)o(xpression)-192 4686
y Fr(recipe/ingredien)o(t)p FC(,)23 b(the)28 b(result)h(is)g(the)g
(follo)n(wing:)-157 4820 y Fx(<[title]>)-157
4894 y(<[first]>)-157 4969 y(<[ingredients]><[prepa)q(rati)q(on])q
(>)-109 5123 y FC(The)19 b Fr(group)f
FC(operation)f(groups)h(an)h(array)g(of)g(templates)g(according)-192
5223 y(to)46 b(a)h(criterion)e(speci\002ed)h(by)g(an)g(XP)o(ath)g(e)o
(xpression:)e(for)i(each)-192 5322 y(template,)25 b(the)h(XP)o(ath)g(e)
o(xpression)f(is)i(e)n(v)n(aluated,)d(and)h(all)i(templates)-192
5422 y(where)44 b(the)g(e)n(v)n(aluation)f(gi)n(v)o(es)h(the)g(same)g
(result)h(are)f(mer)o(ged)f(in)-192 5522 y(the)35 b(order)e(of)i
(occurrence.)d(As)k(an)e(e)o(xample,)g(grouping)e(the)j(array)-192
5621 y(consisting)28 b(of)g(the)h(follo)n(wing)d(three)i(templates)2035
1722 y Fx()2035 1848 y()2035 1973 y()2000 2124 y FC(according)c(to)j
(the)f(e)o(xpression)f Fr(city/@country)c FC(yields)37
b(the)f(fol-)2000 2223 y(lo)n(wing)27 b(tw)o(o)i(templates:)2035
2350 y Fx()2035 2425 y()2035 2574 y()2083 2724 y FC(The)d
Fr(cast)f FC(operation)g(checks)h(that)h(the)f(template)g(is)i(v)n
(alid)e(ac-)2000 2824 y(cording)e(to)i(the)g(gi)n(v)o(en)e(DTD)i
(schema)g(and)f(thro)n(ws)h(an)f(e)o(xception)2000 2924
y(otherwise.)e(The)h Fr(get)g FC(operation)e(con)m(v)o(erts)g(a)j
(non-constant)d(string)2000 3023 y(into)h(a)h(template)f(that)g(is)i
(then)e(v)n(alidated)f(according)g(to)h(the)h(gi)n(v)o(en)2000
3123 y(DTD.)k(The)g Fr(analyze)e FC(operation)g(has)j(no)f(ef)n(fect)g
(at)g(runtime)f(b)n(ut)2000 3222 y(instructs)48 b(the)f(analyzer)g(to)h
(v)o(erify)e(that)i(the)g(template)f(is)i(v)n(alid)2000
3322 y(relati)n(v)o(e)27 b(to)i(the)g(gi)n(v)o(en)e(DTD.)2083
3423 y(All)33 b(ar)o(guments)d(of)i(types)g Fr(Gap)p
FC(,)f Fr(XPath)p FC(,)g(and)h Fr(DTD)f FC(are)h(required)2000
3522 y(to)27 b(be)f(constant.)g(Ho)n(we)n(v)o(er)m(,)f(v)n(ariables)h
(are)g(permitted)g(in)h(the)g(XP)o(ath)2000 3622 y(e)o(xpressions:)k
(all)h(program)e(v)n(ariables)i(that)g(ha)n(v)o(e)g(a)g(primiti)n(v)o
(e)f(type)2000 3722 y(and)25 b(whose)h(declaration)e(scope)h(co)o(v)o
(ers)g(the)h(XP)o(ath)f(e)o(xpression)g(can)2000 3821
y(be)j(used.)2083 3922 y(Note)h(that,)f(e.g.,)h(most)f(JDOM)i
(operations)d(tri)n(vially)i(are)f(special)2000 4021
y(cases)50 b(of)g(these)f(operations)g(\226)g(e)o(xcept)g(that)h(our)f
(data)g(type)h(is)2000 4121 y(immutable,)45 b(as)i(e)o(xplained)d
(earlier)-5 b(.)46 b(The)g Fr(parent)f FC(operation)f(in)2000
4221 y(JDOM)27 b(does)f(not)h(ha)n(v)o(e)f(a)h(counterpart)d(in)29
b(X)t FD(A)q(C)t(T)g FC(since)e(we)g(al)o(w)o(ays)2000
4320 y(refer)g(to)i(the)g(roots)f(of)g(the)g(XML)h(templates.)2083
4421 y(An)f(XML)h(transformation)d(typically)h(has)i(the)g(follo)n
(wing)d(form:)2035 4547 y Fx(String)37 b(transform\(String)j(s\))c({)
2106 4622 y(XML)g(x)f(=)h(XML.get\(s,)i(DTD.make\("http://.../in)q
(put.)q(dtd)q("\)\);)2106 4697 y(...)2106 4771 y(return)f
(x.analyze\(DTD.make\("http:)q(//.)q(../o)q(utp)q(ut.d)q(td")q(\)\))
2388 4846 y(.close\(\).toString\(\);)2035 4921 y(})2000
5071 y FC(where)e(input)h(and)f(output)g(XML)h(is)h(represented)e(te)o
(xtually)-5 b(.)34 b(As)j(a)2000 5171 y(simple)29 b(e)o(xample,)e
(consider)g(the)i(follo)n(wing)e(method)g(that)i(sorts)g(the)2000
5271 y(recipes)f(in)h(a)g(gi)n(v)o(en)e(collection:)2035
5397 y Fx(String)37 b(sort\(String)h(s\))e({)2106 5472
y(XML)g(c)f(=)h(XML.get\(s,)i(DTD.make\("file:recipes.)q(dtd")q(\)\);)
2106 5546 y(XML[])e(r)g(=)f(c.select\("/collection/)q(rec)q(ipe")q(\);)
2106 5621 y(Arrays.sort\(r,)k(new)d(RecipeComparator\(\)\);)p
eop end
%%Page: 5 5
TeXDict begin 5 4 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192 -307
a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark
end
-192 -307 a FJ(IEEE)19
b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19 b(ENGINEERING)2823
b(5)-86 -58 y Fx(c)35 b(=)h(c.gapify\("/collection/r)q(ecip)q(e",)q
("g"\))q(.pl)q(ug\(")q(g",)q(r\);)-86 17 y(c.analyze\(DTD.make\("file)q
(:re)q(cipe)q(s.d)q(td"\))q(\);)-86 92 y(return)h
(c.close\(\).toString\(\);)-157 167 y(})-192 317 y FC(where)32
b(the)g(criterion)f(for)h(sorting)f(recipes)h(is)h(le)o(xicographic)d
(order)-192 417 y(of)e(the)h(titles:)-157 543 y Fx(public)37
b(class)g(RecipeComparator)j(implements)e(Comparator)g({)-86
618 y(public)f(int)f(compare\(Object)j(o1,)d(Object)h(o2\))g({)-16
692 y(XML)g(x1)e(=)h(\(\(XML\)o1\),)i(x2)e(=)g(\(\(XML\)o2;)-16
767 y(String)h(s1)f(=)g(x1.select\("//title/text\()q(\)"\))q([0].)q
(toS)q(trin)q(g\(\))q(;)-16 842 y(String)h(s2)f(=)g
(x2.select\("//title/text\()q(\)"\))q([0].)q(toS)q(trin)q(g\(\))q(;)-16
917 y(return)h(s1.compare\(s2\);)-86 991 y(})-157 1066
y(})-192 1216 y FC(In)g(Appendix)280 1216 y
SDict begin H.S end
280 1216
a FC(II)335 1161 y
SDict begin H.R end
335 1161 a 335 1216 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section*.10) cvn H.B /ANN pdfmark end
335 1216 a 38
w FC(we)g(sho)n(w)g(a)g(number)e(of)i(e)o(xtra)f(operations)g(that)-192
1316 y(can)h(be)h(added)e(as)j(syntactic)e(sugar)f(on)i(top)f(of)g(the)
h(basic)i(X)t FD(A)q(C)t(T)-192 1416 y FC(operations.)24
b(F)o(or)i(e)o(xample,)e(we)i(allo)n(w)g(XML)g(constants)f(and)h(XP)o
(ath)-192 1515 y(e)o(xpressions)20 b(to)i(be)g(written)f(directly)g(in)
h(the)g(usual)f(XML)h(and)f(XP)o(ath)-192 1615 y(syntax)28
b(instead)g(of)g(as)i(Ja)n(v)n(a)e(strings.)-109 1715
y(The)k(program)e(analysis)i(described)f(later)h(will)h(at)f(compile)g
(time)-192 1815 y(check)j(that)i(1\))f(each)g Fr(analyze)e
FC(operation)g(is)k(v)n(alid)e(in)g(the)g(sense)-192
1915 y(that)f(the)g(gi)n(v)o(en)e(template)i(at)g(runtime)f(is)i
(guaranteed)c(to)j(be)g(v)n(alid)-192 2014 y(relati)n(v)o(e)44
b(to)i(the)f(DTD)g(schema,)f(and)h(2\))g(each)g Fr(plug)f
FC(operation)-192 2114 y(al)o(w)o(ays)g(succeeds,)e(that)h(is,)h
(templates)f(are)g(ne)n(v)o(er)f(plugged)f(into)-192
2213 y(attrib)n(ute)j(gaps.)e(Furthermore,)g(if)i(the)g(analysis)g
(detects)g(that)g(an)-192 2313 y(XP)o(ath)32 b(e)o(xpression)f(in)i(a)g
Fr(select)p FC(,)e Fr(gapify)p FC(,)f(or)i Fr(group)g
FC(operation)-192 2413 y(will)k(ne)n(v)o(er)e(select)i(an)o(y)f(nodes,)
f(or)i(that)f(a)h Fr(plug)e FC(operation)g(ne)n(v)o(er)-192
2512 y(has)25 b(an)o(y)g(ef)n(fect)f(because)h(the)g(speci\002ed)g(gap)
f(is)i(ne)n(v)o(er)e(present,)g(then)-192 2612 y(a)29
b(w)o(arning)e(is)j(issued.)-192 2850 y FB(Runtime)e(Repr)m(esentation)
-192 2896 y
SDict begin H.S end
-192 2896 a -192 2896 a
SDict begin 12 H.A end
-192 2896 a -192
2896 a
SDict begin [ /View [/XYZ H.V] /Dest (section*.6) cvn H.B /DEST pdfmark
end
-192 2896 a -109 2979 a FC(W)-7 b(e)20 b(sho)n(w)f(in)g(a)g
(separate)g(paper)e([12)o(])i(that)g(our)f(data)h(type)f(for)h(XML)-192
3079 y(templates)31 b(permits)g(an)h(ef)n(\002cient)f(runtime)f
(representation,)f(despite)-192 3178 y(being)23 b(immutable.)g(W)-7
b(e)26 b(use)f(a)g(lazy)f(non-cop)o(ying)d(data)j(structure)g(in)-192
3278 y(which)c(operations)e(are)i(merely)f(noted)g(to)i(ha)n(v)o(e)e
(happened)f(until)i(their)-192 3378 y(ef)n(fects)28 b(are)f(required)f
(to)i(be)g(observ)o(ed.)e(W)-7 b(e)29 b(obtain)e(nearly)f(optimal)-192
3477 y(asymptotic)34 b(comple)o(xities)g(of)i(the)f(basic)h
(operations,)d(since)j Fr(plug)-192 3577 y FC(and)26
b(indi)n(vidual)f(mo)o(v)o(es)g(from)h(a)h(parent)e(node)h(to)g(its)i
(\002rst)f(child)f(and)-192 3676 y(from)35 b(a)h(node)f(to)h(its)h(ne)o
(xt)e(sibling)g(happen)f(in)i(amortized)f(almost)-192
3776 y(constant)24 b(time.)g(The)h Fr(toString)c FC(operation)i(is)j
(performed)21 b(in)k(linear)-192 3876 y(time)40 b(in)h(the)f(size)h(of)
f(the)g(resulting)f(string.)h(The)g(comple)o(xity)e(of)-192
3975 y Fr(select)21 b FC(and)i Fr(gapify)e FC(is)j(bounded)c(by)j(the)g
(e)n(v)n(aluation)e(time)i(for)g(the)-192 4075 y(associated)d(XP)o(ath)
h(e)o(xpression.)d(The)i(time)h(for)f(performing)d(a)k
Fr(group)-192 4175 y FC(operation)37 b(is)k(bounded)c(by)h(the)i(time)f
(for)g(e)n(v)n(aluating)f(the)h(XP)o(ath)-192 4274 y(e)o(xpression)22
b(on)i(each)f(array)g(entry)g(and)g(comparing)e(the)j(results.)g(The)
-192 4374 y Fr(analyze)34 b FC(operation)g(has)j(no)e(ef)n(fect)h(at)h
(runtime.)d(The)i Fr(cast)f FC(and)-192 4473 y Fr(get)22
b FC(operations)f(perform)g(a)j(linear)e(time)h(DTD)g(v)n(alidation.)e
(W)-7 b(e)24 b(also)-192 4573 y(maintain)i(a)i(Ja)n(v)n(a)f
Fr(hashCode)d FC(for)j(XML)g(objects)g(and)f(thus)h(support)-192
4673 y(a)21 b(full)g Fr(equals)e FC(method)g(in)i(constant)f(time)h(in)
g(the)g(ne)o(gati)n(v)o(e)e(case)i(and)-192 4772 y(in)26
b(amortized)f(linear)h(time)g(in)g(the)g(positi)n(v)o(e)g(case.)g(All)h
(this)f(assumes)-192 4872 y(that)i(we)g(a)n(v)n(oid)g(a)g(pathological)
e(case)j(where)e(templates)h(containing)-192 4972 y(only)i(gaps)g(are)h
(nested)f(to)h(an)g(unbounded)c(depth.)j(W)-7 b(e)32
b(e)o(xpect)e(that)-192 5071 y(a)41 b(tuned)f(implementation)e(will)k
(be)f(comparable)d(to)j(the)g(runtime)-192 5171 y(performances)26
b(of)i(dedicated)f(tools)i(such)f(as)h(JDOM)g(and)f(XSL)-8
b(T)i(.)-192 5308 y
SDict begin H.S end
-192 5308 a -192 5308 a
SDict begin 12 H.A end
-192 5308
a -192 5308 a
SDict begin [ /View [/XYZ H.V] /Dest (section.3) cvn H.B /DEST pdfmark
end
-192 5308 a 427 5390 a FC(I)t(I)t(I)t(.)45
b(S)t FD(U)t(M)t(M)t(A)t(RY)26 b FC(G)t FD(R)t(A)t(P)t(H)t(S)-109
5522 y FC(T)-7 b(o)27 b(obtain)e(static)j(guarantees,)d(we)i(apply)e
(the)i(standard)e(data\003o)n(w)-192 5621 y(analysis)37
b(frame)n(w)o(ork)d([15)o(],)j([16)n(].)g(This)g(in)m(v)n(olv)o(es)e
(three)i(steps:)g(1\))2000 -58 y(obtaining)17 b(an)j(abstract)f
FB(contr)l(ol-\003ow)f(gr)o(aph)g FC(for)g(the)i(gi)n(v)o(en)e
(program;)2000 42 y(2\))h(de\002ning)f(a)i FB(lattice)g
FC(modeling)e(the)h(abstract)h(data)f(that)h(the)f(analysis)2000
142 y(manipulates;)32 b(and)i(3\))f(describing)g(all)h(operations)e(in)
i(the)g(control-)2000 241 y(\003o)n(w)d(graph)f(in)i(terms)f(of)h
FB(tr)o(ansfer)f(functions)g FC(that)g(operate)f(on)h(the)2000
341 y(lattice)e(v)n(alues.)2083 441 y(The)21 b(construction)e(of)i
(control-\003o)n(w)e(graphs)h(from)g(Ja)n(v)n(a)h(programs)2000
541 y(is)j(described)d(in)j(detail)f(in)g([8)o(].)g(W)-7
b(e)24 b(use)f(a)h(dif)n(ferent)d(f)o(amily)h(of)h(state-)2000
641 y(ments)e(here,)f(b)n(ut)h(the)g(o)o(v)o(erall)e(approach)g(is)j
(the)f(same)g(and)g(we)g(do)g(not)2000 740 y(describe)k(it)h(further)n
(\227ho)n(we)n(v)o(er)m(,)21 b(we)26 b(note)g(that)f(arrays)g(are)h
(modeled)2000 840 y(by)33 b(mer)o(ging)e(their)i(entries)h(using)f
(weak)g(updating.)e(Our)j(lattice)g(is)2000 940 y(a)j(v)n(ariant)e(of)h
(the)h FB(summary)f(gr)o(aph)g FC(lattice)h(de\002ned)e(in)i([8)o(])g
(\226)f(we)2000 1039 y(here)30 b(use)h(a)f(notion)g(of)g
FB(normalized)i FC(summary)d(graphs,)g(as)j(de\002ned)2000
1139 y(belo)n(w)-5 b(.)27 b(W)-7 b(e)29 b(need)f(to)g(modify)f(the)h
(de\002nition)f(to)i(accommodate)c(the)2000 1238 y(modeling)35
b(of)j(XP)o(ath)f(e)o(xpressions)f(that)h(may)g(address)g(indi)n
(vidual)2000 1338 y(nodes)22 b(in)g(XML)h(fragments.)e(The)h(transfer)g
(functions)f(are)i(described)2000 1438 y(in)28 b(Section)2372
1439 y
SDict begin H.S end
2372 1439 a -1 x FC(IV)2459 1382 y
SDict begin H.R end
2459 1382 a
2459 1438 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.4) cvn H.B /ANN pdfmark end
2459 1438 a FC(.)2083 1538 y(Gi)n(v)o(en)d(a)i(program)e
(and)h(all)h(DTD)g(schemas)f(it)h(refers)f(to)h(in)g
Fr(cast)2000 1638 y FC(and)36 b Fr(get)h FC(operations,)e(we)j(\002x)f
(a)h(number)d(of)i(sets)h(and)f(functions)2000 1737 y(to)47
b(be)f(used)h(by)f(all)i(summary)d(graphs)h(that)h(occur)e(during)g
(the)2000 1837 y(analysis:)34 b(The)h(sets)g Fy(E)5 b
FC(,)35 b Fy(A)p FC(,)h(and)e Fy(G)h FC(contain)e(the)i(element)f
(names,)2000 1937 y(attrib)n(ute)24 b(names,)f(and)h(gap)g(names,)f
(respecti)n(v)o(ely)-5 b(,)22 b(that)j(occur)e(in)h(the)2000
2036 y(program)32 b(and)h(in)i(the)f(schemas.)g(Let)g
Fy(N)3255 2048 y Ft(E)3300 2036 y FC(,)g Fy(N)3422 2048
y Ft(A)3480 2036 y FC(,)g Fy(N)3602 2048 y Ft(C)3645
2036 y FC(,)g(and)g Fy(N)3922 2048 y Ft(T)4014 2036 y
FC(be)2000 2136 y(\002nite)23 b(disjoint)g(sets)i(of)e(element,)g
(attrib)n(ute,)f(chardata,)g(and)h(template)2000 2235
y(nodes,)i(respecti)n(v)o(ely)-5 b(.)23 b(Intuiti)n(v)o(ely)-5
b(,)23 b(the)j(former)e(three)i(sets)h(represent)2000
2335 y(the)52 b(possible)g(elements,)f(attrib)n(utes,)h(and)g(chardata)
f(sequences,)2000 2435 y(respecti)n(v)o(ely)-5 b(,)32
b(that)k(may)e(arise)h(when)g(running)d(the)j(program.)e(The)2000
2534 y(template)g(nodes)g(represent)g(sequences)g(of)h(template)f
(gaps,)g(which)2000 2634 y(either)28 b(occur)g(e)o(xplicitly)g(in)h
(template)f(constants)g(or)h(implicitly)f(due)2000 2734
y(to)i(X)t FD(A)q(C)t(T)i FC(operations)27 b(or)h(DTD)h(schemas.)f
(More)g(precisely)-5 b(,)2083 2852 y Ft(\017)50 b Fy(N)2234
2864 y Ft(E)2313 2852 y FC(contains)34 b(a)h(node)e(for)h(each)g
(occurrence)e(of)j(an)f(element)2167 2951 y(in)e(a)g(template)g
(constant)f(in)h(the)g(program)e(and)h(one)h(for)f(each)2167
3051 y(element)23 b(description)g(in)h(the)g(schemas.)f(The)h(function)
e Fs(name)30 b Fz(:)2167 3150 y Fy(N)2234 3162 y Ft(E)2301
3150 y FA(!)23 b Fy(E)34 b FC(returns)28 b(the)h(corresponding)c
(element)j(name.)2083 3250 y Ft(\017)50 b Fy(N)2234 3262
y Ft(A)2313 3250 y FC(contains)22 b(a)g(node)f(for)h(each)f(occurrence)
f(of)i(an)g(attrib)n(ute)f(in)2167 3350 y(a)j(template)f(constant)g
(and)g(one)g(for)g(each)g(attrib)n(ute)g(description)2167
3449 y(in)33 b(the)g(schemas.)f(The)h(function)e Fs(name)38
b Fz(:)32 b Fy(N)3563 3461 y Ft(A)3651 3449 y FA(!)g
Fy(A)h FC(returns)2167 3549 y(the)f(corresponding)c(attrib)n(ute)k
(name.)f(Each)g(element)h(node)f(is)2167 3649 y(associated)37
b(a)h(set)g(of)g(attrib)n(ute)f(nodes,)g Fs(attr)48 b
Fz(:)40 b Fy(N)3736 3661 y Ft(E)3820 3649 y FA(!)g Fz(2)3985
3618 y Fu(N)4038 3626 y Fp(A)2167 3748 y FC(corresponding)25
b(to)j(the)h(element)f(attrib)n(utes.)2083 3848 y Ft(\017)50
b Fy(N)2234 3860 y Ft(C)2303 3848 y FC(contains)26 b(a)h(node)e(for)h
(each)g(maximal)g(chardata)f(sequence)2167 3947 y(in)37
b(a)g(template)g(constant)f(and)h(one)g(for)f(each)h(occurrence)e(of)
2167 4047 y Fr(plug)p FC(,)27 b Fr(select)p FC(,)f(and)i
Fr(#PCDATA)p FC(.)2083 4147 y Ft(\017)50 b Fy(N)2234
4159 y Ft(T)2322 4147 y FC(contains)31 b(a)h(node)e(for)h(each)g(node)f
(in)h Fy(N)3562 4159 y Ft(E)3607 4147 y FC(,)g(one)g(for)g(each)2167
4246 y(template)k(constant,)h(one)f(for)h(each)g(occurrence)e(of)i
Fr(select)p FC(,)2167 4346 y Fr(group)p FC(,)47 b(or)i
Fr(gapify)p FC(,)f(and)g(one)h(for)g(each)g(sub-e)o(xpression)2167
4446 y(of)37 b(the)g(content)g(model)f(descriptors)h(in)g(the)h
(schemas.)f(Each)2167 4545 y(element)c(node)f(is)j(associated)f(a)g
(template)f(node,)f Fs(c)l(ontents)39 b Fz(:)2167 4645
y Fy(N)2234 4657 y Ft(E)2301 4645 y FA(!)23 b Fy(N)2474
4657 y Ft(T)2531 4645 y FC(,)29 b(corresponding)24 b(to)29
b(the)f(element)g(contents.)f(Each)2167 4744 y(template)c(node)h(has)g
(a)h(sequence)e(of)h(gaps,)g Fs(gaps)31 b Fz(:)23 b Fy(N)3782
4756 y Ft(T)3862 4744 y FA(!)g Fy(G)4033 4714 y Ft(\003)4071
4744 y FC(,)2167 4844 y(which)28 b(we)g(de\002ne)g(in)h(Section)3128
4845 y
SDict begin H.S end
3128 4845 a -1 x FC(IV)3216 4789 y
SDict begin H.R end
3216 4789 a
3216 4844 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.4) cvn H.B /ANN pdfmark end
3216 4844 a FC(.)2000 4962 y(The)f(set)h(of)f(all)h(nodes)f
(is)h Fy(N)j Fz(=)22 b Fy(N)3049 4974 y Ft(E)3112 4962
y FA([)d Fy(N)3253 4974 y Ft(A)3328 4962 y FA([)g Fy(N)3469
4974 y Ft(T)3544 4962 y FA([)g Fy(N)3685 4974 y Ft(C)3727
4962 y FC(.)29 b(Note)f(that)2000 5062 y(tw)o(o)33 b(elements)f(that)h
(ha)n(v)o(e)f(identical)g(names)g(b)n(ut)h(occur)f(in)g(distinct)2000
5161 y(template)18 b(constants)h(are)g(modeled)f(by)g(distinct)i
(element)e(nodes.)g(This)2000 5261 y(ensures)28 b(an)g(important)f
(form)h(of)g(polyv)n(ariance)e(in)i(the)h(analysis.)2083
5361 y(A)g FB(summary)f(gr)o(aph)f Fs(SG)37 b FC(is)29
b(a)g(structure:)2726 5512 y Fs(SG)h Fz(=)23 b(\()p Fy(R)q(;)14
b(T)7 b(;)14 b(S;)g(P)e Fz(\))2000 5621 y FC(where)p
eop end
%%Page: 6 6
TeXDict begin 6 5 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192 -307
a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark
end
-192 -307 a FJ(IEEE)19
b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19 b(ENGINEERING)2823
b(6)652 -87 y Fy(n)23 b FA(2)h Fy(N)871 -75 y Ft(E)973
-87 y Fs(SG)31 b FA(`)22 b Fs(c)l(ontents)6 b Fz(\()p
Fy(n)p Fz(\))24 b FA(\))f Fy(d)58 b Fs(name)7 b Fz(\()p
Fy(n)p Fz(\))23 b(=)g Fy(e)455 12 y Fs(attr)9 b Fz(\()p
Fy(n)p Fz(\))23 b(=)g FA(f)p Fy(a)908 24 y Fv(1)945 12
y Fy(;)14 b(:)g(:)g(:)f(;)h(a)1173 24 y Fu(k)1214 12
y FA(g)57 b Fs(SG)31 b FA(`)22 b Fy(a)1572 24 y Fu(i)1623
12 y FA(\))h Fy(b)1765 24 y Fu(i)1850 12 y FC(for)28
b(all)h Fy(i)23 b Fz(=)g(1)p Fy(;)14 b(:)g(:)g(:)f(;)h(k)p
414 54 2128 4 v 937 131 a Fs(SG)30 b FA(`)23 b Fy(n)g
FA(\))g Fr(<)o Fy(e)29 b(b)1478 143 y Fv(1)1529 131 y
Fy(:)14 b(:)g(:)f(b)1675 143 y Fu(k)1716 131 y Fr(>)22
b Fy(d)i Fr()o Fy(e)p Fr(>)2815 -38 y Fy(n)f FA(2)g
Fy(N)3033 -26 y Ft(C)3134 -38 y Fy(s)g FA(2)h Fy(S)5
b Fz(\()p Fy(n)p Fz(\))p 2773 4 713 4 v 2913 82 a Fs(SG)31
b FA(`)22 b Fy(n)h FA(\))g Fy(s)-117 256 y(n)g FA(2)h
Fy(N)102 268 y Ft(A)217 256 y Fs(name)6 b Fz(\()p Fy(n)p
Fz(\))24 b(=)f Fy(a)58 b(s)23 b FA(2)g Fy(S)5 b Fz(\()p
Fy(n)p Fz(\))p -158 298 1256 4 v 166 376 a Fs(SG)30 b
FA(`)23 b Fy(n)g FA(\))g Fy(a)p Fr(=")o Fy(s)p Fr(")1313
256 y Fy(n)g FA(2)h Fy(N)1532 268 y Ft(A)1647 256 y Fs(name)6
b Fz(\()p Fy(n)p Fz(\))24 b(=)f Fy(a)58 b(n)22 b FA(2)i
Fs(op)l(en)7 b Fz(\()p Fy(P)12 b Fz(\()p Fy(g)s Fz(\)\))p
1272 298 1505 4 v 1719 376 a Fs(SG)30 b FA(`)23 b Fy(n)g
FA(\))g Fy(a)p Fr(=[)o Fy(g)s Fr(])2993 256 y Fy(n)g
FA(2)g Fy(N)3211 268 y Ft(A)3326 256 y Fy(n)g FA(2)h
Fs(r)l(emove)l(d)9 b Fz(\()p Fy(P)j Fz(\()p Fy(g)s Fz(\)\))p
2951 298 1107 4 v 3291 376 a Fs(SG)30 b FA(`)23 b Fy(n)g
FA(\))g Fy(\017)781 500 y(n)g FA(2)g Fy(N)999 512 y Ft(T)1114
500 y Fs(gaps)8 b Fz(\()p Fy(n)p Fz(\))23 b(=)g Fy(g)1543
512 y Fv(1)1594 500 y Fy(:)14 b(:)g(:)f(g)1744 512 y
Fu(k)1843 500 y Fs(SG)7 b Fy(;)14 b(g)2038 512 y Fu(i)2088
500 y FA(`)23 b Fy(n)g FA(\))g Fy(d)2384 512 y Fu(i)2470
500 y FC(for)28 b(all)h Fy(i)23 b Fz(=)f(1)p Fy(;)14
b(:)g(:)g(:)f(;)h(k)p 739 542 2422 4 v 1608 620 a Fs(SG)31
b FA(`)22 b Fy(n)h FA(\))g Fy(d)2045 632 y Fv(1)2097
620 y Fy(:)14 b(:)g(:)f(d)2250 632 y Fu(k)510 744 y Fz(\()p
Fy(n;)h(g)s(;)g(m)p Fz(\))23 b FA(2)h Fy(T)69 b Fs(SG)30
b FA(`)23 b Fy(m)g FA(\))g Fy(d)p 469 786 1067 4 v 744
864 a Fs(SG)7 b Fy(;)14 b(g)26 b FA(`)c Fy(n)h FA(\))g
Fy(d)1817 744 y(n)g FA(2)g Fs(op)l(en)7 b Fz(\()p Fy(P)12
b Fz(\()p Fy(g)s Fz(\)\))p 1710 786 774 4 v 1751 864
a Fs(SG)c Fy(;)14 b(g)25 b FA(`)e Fy(n)g FA(\))g Fr(<[)o
Fy(g)s Fr(]>)2699 744 y Fy(n)g FA(2)g Fs(r)l(emove)l(d)10
b Fz(\()p Fy(P)i Fz(\()p Fy(g)s Fz(\)\))p 2658 786 V
2791 864 a Fs(SG)7 b Fy(;)14 b(g)25 b FA(`)e Fy(n)g FA(\))g
Fy(\017)-192 1039 y FD(Fig.)g(2.)56 1039 y
SDict begin H.S end
56 1039 a
56 1039 a
SDict begin H.R end
56 1039 a 56 1039 a
SDict begin [ /View [/XYZ H.V] /Dest (figure.2) cvn H.B /DEST pdfmark
end
56 1039 a FD(Inference)j(rules)e(for)g
(unfolding)i(of)d(summary)h(graphs.)-192 1322 y Fy(R)g
FA(\022)e Fy(N)49 1334 y Ft(E)112 1322 y FA([)d Fy(N)253
1334 y Ft(T)339 1322 y FC(is)29 b(a)g(set)h(of)e FB(r)l(oot)h(nodes)p
FC(,)-192 1422 y Fy(T)34 b FA(\022)23 b Fy(N)46 1434
y Ft(T)121 1422 y FA(\002)18 b Fy(G)h FA(\002)f Fz(\()p
Fy(N)470 1434 y Ft(T)545 1422 y FA([)h Fy(N)686 1434
y Ft(E)749 1422 y FA([)g Fy(N)890 1434 y Ft(C)933 1422
y Fz(\))29 b FC(is)g(a)g(set)h(of)e FB(template)g(edg)o(es)p
FC(,)-192 1521 y Fy(S)g Fz(:)23 b Fy(N)0 1533 y Ft(C)61
1521 y FA([)c Fy(N)202 1533 y Ft(A)282 1521 y FA(!)k
Fs(REG)37 b FC(is)29 b(a)g FB(string)g(edg)o(e)f FC(map,)g(and)-192
1621 y Fy(P)35 b Fz(:)23 b Fy(G)g FA(!)g Fz(2)178 1591
y Fu(N)231 1599 y Fp(A)281 1591 y Ft([)p Fu(N)379 1599
y Fp(T)451 1621 y FA(\002)18 b Fz(2)576 1591 y Fu(N)629
1599 y Fp(A)678 1591 y Ft([)p Fu(N)776 1599 y Fp(T)848
1621 y FA(\002)g Fz(\000)g FA(\002)g Fz(\000)29 b FC(is)g(a)g
FB(gap)f(pr)m(esence)g FC(map.)-192 1776 y(Here)k Fz(\000)d(=)f(2)218
1746 y Ft(f)p Fo(OPEN)o Fu(;)p Fo(CLOSED)p Ft(g)746 1776
y FC(is)k(the)g FB(gap)f(pr)m(esence)g(lattice)h FC(whose)-192
1876 y(ordering)g(is)j(set)g(inclusion.)d(The)i(set)h
Fs(REG)42 b FC(is)35 b(a)f(\002nite)g(f)o(amily)g(of)-192
1976 y(re)o(gular)j(languages)g(o)o(v)o(er)g(the)h(Unicode)f(alphabet)g
(obtained)g(by)h(a)-192 2075 y(separate)28 b(analysis)h(of)f(string)g
(operations)f([17)o(].)-109 2177 y(Intuiti)n(v)o(ely)-5
b(,)23 b(the)i(language)f FA(L)p Fz(\()p Fs(SG)7 b Fz(\))26
b FC(of)f(a)h(summary)e(graph)g Fs(SG)33 b FC(is)-192
2276 y(the)24 b(set)g(of)g(XML)f(templates)h(that)g(can)f(be)h
(obtained)e(by)i(\223unfolding\224)-192 2376 y(it,)g(starting)e(from)g
(a)i(root)e(node)g(and)h(plugging)e(elements,)h(templates,)-192
2476 y(and)j(strings)h(into)g(gaps)f(according)f(to)i(the)g(edges.)f(A)
h(template)f(edge)-192 2575 y Fz(\()p Fy(n)-110 2587
y Fv(1)-73 2575 y Fy(;)14 b(g)s(;)g(n)94 2587 y Fv(2)131
2575 y Fz(\))23 b FA(2)h Fy(T)34 b FC(informally)20 b(means)i(that)g
Fy(n)1153 2587 y Fv(2)1213 2575 y FC(may)g(be)h(plugged)d(into)-192
2675 y(the)i Fy(g)i FC(gaps)d(in)h Fy(n)307 2687 y Fv(1)344
2675 y FC(,)g(and)f(a)h(string)g(edge)f Fy(S)5 b Fz(\()p
Fy(n)p Fz(\))23 b(=)f Fy(L)g FC(means)f(that)h(e)n(v)o(ery)-192
2774 y(string)28 b(in)h Fy(L)f FC(may)g(be)h(plugged)d(into)j(the)f
(gap)g(in)g Fy(n)p FC(.)-109 2876 y(W)-7 b(e)34 b(need)e(the)h(gap)f
(presence)g(map)g(to)h(determine)f(where)g(edges)-192
2976 y(should)i(be)i(added)e(when)h(modeling)e Fr(plug)i
FC(operations,)e(to)j(model)-192 3075 y(the)48 b(remo)o(v)n(al)e(of)i
(gaps)f(with)h(the)g Fr(close)f FC(operation,)f(to)i(detect)-192
3175 y(when)40 b Fr(plug)f FC(operations)g(may)h(f)o(ail)h(because)f
(the)g(speci\002ed)g(gaps)-192 3274 y(are)j(not)g(open,)g(and)f(to)i
(model)f(and)f(check)h(XP)o(ath)g(e)n(v)n(aluations.)-192
3374 y(Gi)n(v)o(en)e(that)h Fy(P)12 b Fz(\()p Fy(g)s
Fz(\))49 b(=)e(\()p Fy(p)624 3386 y Fv(1)662 3374 y Fy(;)14
b(p)741 3386 y Fv(2)778 3374 y Fy(;)g(p)857 3386 y Fv(3)894
3374 y Fy(;)g(p)973 3386 y Fv(4)1010 3374 y Fz(\))p FC(,)42
b(let)h Fs(op)l(en)7 b Fz(\()p Fy(P)12 b Fz(\()p Fy(g)s
Fz(\)\))49 b(=)e Fy(p)1842 3386 y Fv(1)1879 3374 y FC(,)-192
3474 y Fs(r)l(emove)l(d)9 b Fz(\()p Fy(P)j Fz(\()p Fy(g)s
Fz(\)\))24 b(=)f Fy(p)500 3486 y Fv(2)537 3474 y FC(,)i
Fs(tgaps)7 b Fz(\()p Fy(P)12 b Fz(\()p Fy(g)s Fz(\)\))24
b(=)f Fy(p)1164 3486 y Fv(3)1201 3474 y FC(,)i Fs(agaps)8
b Fz(\()p Fy(P)k Fz(\()p Fy(g)s Fz(\)\))24 b(=)e Fy(p)1842
3486 y Fv(4)1879 3474 y FC(.)-192 3573 y(Informally)-5
b(,)22 b(the)k Fs(op)l(en)33 b FC(and)25 b Fs(r)l(emove)l(d)35
b FC(components)23 b(specify)i(which)-192 3673 y(nodes)33
b(may)h(contain)f(open)g(or)h(remo)o(v)o(ed)d Fy(g)38
b FC(gaps,)33 b(and)g Fs(tgaps)42 b FC(and)-192 3773
y Fs(agaps)48 b FC(describe)38 b(the)h(presence)f(of)g(template)h(gaps)
f(and)g(attrib)n(ute)-192 3872 y(gaps,)24 b(respecti)n(v)o(ely)-5
b(.)23 b(The)i(v)n(alue)g FA(f)p Fn(OPEN)o FA(g)h FC(means)f(that)g
(one)g(or)g(more)-192 3972 y(gaps)38 b(of)h(the)f(gi)n(v)o(en)g(name)g
(are)h(present,)f FA(f)p Fn(CLOSED)o FA(g)h FC(means)g(that)-192
4071 y(none)33 b(are)h(present,)f(and)h FA(f)p Fn(OPEN)p
Fy(;)14 b Fn(CLOSED)p FA(g)34 b FC(means)g(that)g(the)g(gaps)-192
4171 y(are)23 b(present)f(for)h(some)g(unfoldings)e(b)n(ut)i(absent)f
(for)h(others.)f(\()p FA(;)h FC(ne)n(v)o(er)-192 4271
y(occurs)28 b(here.\))-109 4372 y(As)42 b(an)f(e)o(xample,)f(we)h(can)g
(de\002ne)g(a)g(summary)f(graph)g(whose)-192 4472 y(language)34
b(is)i(the)f(set)h(of)f Fm(ul)h FC(lists)h(with)e(zero)g(or)g(more)g
Fm(li)g FC(items)-192 4571 y(that)40 b(each)f(contain)g(a)h(string)f
(from)g(some)g(language)f Fy(L)p FC(:)i(Assume)-192 4671
y(that)c(the)g(\002x)o(ed)f(structure)h(is)g(gi)n(v)o(en)f(by)h
Fy(N)1132 4683 y Ft(E)1213 4671 y Fz(=)h FA(f)p Fz(1)p
Fy(;)14 b Fz(4)p FA(g)p FC(,)34 b Fy(N)1642 4683 y Ft(A)1736
4671 y Fz(=)j FA(;)p FC(,)-192 4771 y Fy(N)-125 4783
y Ft(T)-43 4771 y Fz(=)26 b FA(f)p Fz(2)p Fy(;)14 b Fz(3)p
Fy(;)g Fz(5)p FA(g)p FC(,)27 b Fy(N)447 4783 y Ft(C)516
4771 y Fz(=)e FA(f)p Fz(6)p FA(g)p FC(,)k Fs(c)l(ontents)5
b Fz(\(1\))26 b(=)f(2)p FC(,)30 b Fs(c)l(ontents)6 b
Fz(\(4\))26 b(=)-192 4870 y(5)p FC(,)33 b Fs(attr)9 b
Fz(\(1\))32 b(=)g Fs(attr)8 b Fz(\(4\))32 b(=)g FA(;)p
FC(,)h Fs(name)6 b Fz(\(1\))33 b(=)e Fm(ul)p FC(,)j Fs(name)6
b Fz(\(4\))32 b(=)g Fm(li)o FC(,)-192 4970 y Fs(gaps)8
b Fz(\(2\))38 b(=)g Fl(items)o FC(,)f Fs(gaps)8 b Fz(\(3\))38
b(=)g Fl(g)29 b FA(\001)24 b Fl(items)o FC(,)37 b(and)f
Fs(gaps)8 b Fz(\(5\))39 b(=)-192 5070 y Fl(text)o FC(.)29
b(No)n(w)f(de\002ne)g(the)h(summary)e(graph)g Fz(\()p
Fy(R)q(;)14 b(T)7 b(;)14 b(S;)g(P)e Fz(\))p FC(:)-163
5223 y Fy(R)24 b Fz(=)e FA(f)p Fz(1)p FA(g)-163 5322
y Fy(T)34 b Fz(=)23 b FA(f)p Fz(\(2)p Fy(;)14 b Fl(items)n
Fy(;)g Fz(3\))p Fy(;)g Fz(\(3)p Fy(;)g Fl(items)n Fy(;)g
Fz(3\))p Fy(;)g Fz(\(3)p Fy(;)g Fl(g)t Fy(;)g Fz(4\))p
Fy(;)g Fz(\(5)p Fy(;)g Fl(text)o Fy(;)g Fz(6\))p FA(g)-163
5422 y Fy(S)5 b Fz(\(6\))23 b(=)g Fy(L)-163 5522 y(P)12
b Fz(\()p Fl(text)o Fz(\))24 b(=)e Fy(P)12 b Fz(\()p
Fl(g)5 b Fz(\))23 b(=)g(\()p FA(;)p Fy(;)14 b FA(;)p
Fy(;)g FA(f)p Fn(CLOSED)o FA(g)p Fy(;)g FA(f)p Fn(CLOSED)o
FA(g)p Fz(\))-163 5621 y Fy(P)e Fz(\()p Fl(items)o Fz(\))24
b(=)e(\()p FA(f)p Fz(2)p Fy(;)14 b Fz(3)p FA(g)p Fy(;)g
FA(;)p Fy(;)g FA(f)p Fn(OPEN)m FA(g)p Fy(;)g FA(f)p Fn(CLOSED)p
FA(g)p Fz(\))2000 1322 y FC(This)28 b(can)h(be)f(illustrated)g(as)i
(follo)n(ws:)2006 1771 y @beginspecial 0 @llx 0 @lly
404 @urx 76 @ury 2494 @rwi @setspecial
%%BeginDocument: sg.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: sg.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3d
%%CreationDate: Mon May 5 23:21:40 2003
%%For: amoeller@moeller (Anders Moeller)
%%BoundingBox: 0 0 404 76
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 76 moveto 0 0 lineto 404 0 lineto 404 76 lineto closepath clip newpath
-8.3 207.1 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
7.500 slw
% Ellipse
n 6300 2925 150 150 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 1500 3395 50 50 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
% Ellipse
n 3150 3395 50 50 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
% Polyline
gs clippath
2640 2955 m 2640 2895 l 2488 2895 l 2608 2925 l 2488 2955 l cp
eoclip
n 1875 2925 m
2625 2925 l gs col0 s gr gr
% arrowhead
n 2488 2955 m 2608 2925 l 2488 2895 l col0 s
% Polyline
gs clippath
4215 2955 m 4215 2895 l 4063 2895 l 4183 2925 l 4063 2955 l cp
eoclip
n 3750 2925 m
4200 2925 l gs col0 s gr gr
% arrowhead
n 4063 2955 m 4183 2925 l 4063 2895 l col0 s
% Polyline
gs clippath
6165 2955 m 6165 2895 l 6013 2895 l 6133 2925 l 6013 2955 l cp
eoclip
n 5550 2925 m
6150 2925 l gs col0 s gr gr
% arrowhead
n 6013 2955 m 6133 2925 l 6013 2895 l col0 s
% Polyline
n 1230 2775 m 1125 2775 1125 2970 105 arcto 4 {pop} repeat
1125 3075 1770 3075 105 arcto 4 {pop} repeat
1875 3075 1875 2880 105 arcto 4 {pop} repeat
1875 2775 1230 2775 105 arcto 4 {pop} repeat
cp gs col0 s gr
% Polyline
n 2730 2775 m 2625 2775 2625 2970 105 arcto 4 {pop} repeat
2625 3075 3645 3075 105 arcto 4 {pop} repeat
3750 3075 3750 2880 105 arcto 4 {pop} repeat
3750 2775 2730 2775 105 arcto 4 {pop} repeat
cp gs col0 s gr
% Polyline
n 5055 2775 m 4950 2775 4950 2970 105 arcto 4 {pop} repeat
4950 3075 5445 3075 105 arcto 4 {pop} repeat
5550 3075 5550 2880 105 arcto 4 {pop} repeat
5550 2775 5055 2775 105 arcto 4 {pop} repeat
cp gs col0 s gr
% Polyline
gs clippath
6690 2955 m 6690 2895 l 6538 2895 l 6658 2925 l 6538 2955 l cp
eoclip
n 6450 2925 m
6675 2925 l gs col0 s gr gr
% arrowhead
n 6538 2955 m 6658 2925 l 6538 2895 l col0 s
% Polyline
30.000 slw
n 450 2775 m 825 2775 l 825 3075 l 450 3075 l
cp gs col0 s gr
% Polyline
n 4200 2775 m 4575 2775 l 4575 3075 l 4200 3075 l
cp gs col0 s gr
% Polyline
gs clippath
1140 2955 m 1140 2895 l 989 2895 l 1109 2925 l 989 2955 l cp
eoclip
n 825 2925 m
1125 2925 l gs col0 s gr gr
% arrowhead
7.500 slw
n 989 2955 m 1109 2925 l 989 2895 l 989 2955 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
465 2955 m 465 2895 l 313 2895 l 433 2925 l 313 2955 l cp
eoclip
n 150 2925 m
450 2925 l gs col0 s gr gr
% arrowhead
n 313 2955 m 433 2925 l 313 2895 l col0 s
% Polyline
30.000 slw
gs clippath
4965 2955 m 4965 2895 l 4814 2895 l 4934 2925 l 4814 2955 l cp
eoclip
n 4575 2925 m
4950 2925 l gs col0 s gr gr
% arrowhead
7.500 slw
n 4814 2955 m 4934 2925 l 4814 2895 l 4814 2955 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
1470 3390 m 1530 3390 l 1530 3238 l 1500 3358 l 1470 3238 l cp
eoclip
n 1500 3075 m
1500 3375 l gs col0 s gr gr
% arrowhead
n 1470 3238 m 1500 3358 l 1530 3238 l col0 s
% Polyline
gs clippath
3120 3390 m 3180 3390 l 3180 3238 l 3150 3358 l 3120 3238 l cp
eoclip
n 3150 3075 m
3150 3375 l gs col0 s gr gr
% arrowhead
n 3120 3238 m 3150 3358 l 3180 3238 l col0 s
% Polyline
2 slj
gs clippath
2990 2807 m 3031 2762 l 2919 2660 l 2988 2764 l 2879 2705 l cp
eoclip
n 3375 2775 m 3377 2773 l 3381 2769 l 3388 2763 l 3398 2754 l 3411 2742 l
3425 2727 l 3441 2712 l 3456 2695 l 3471 2677 l 3485 2659 l
3497 2639 l 3508 2619 l 3517 2597 l 3523 2574 l 3525 2550 l
3524 2532 l 3521 2515 l 3517 2501 l 3512 2489 l 3508 2480 l
3505 2472 l 3502 2467 l 3499 2462 l 3496 2459 l 3494 2456 l
3491 2454 l 3487 2451 l 3482 2447 l 3475 2443 l 3466 2438 l
3455 2432 l 3440 2425 l 3422 2417 l 3400 2408 l 3375 2400 l
3345 2393 l 3315 2387 l 3288 2383 l 3264 2380 l 3244 2378 l
3226 2376 l 3212 2376 l 3199 2375 l 3187 2375 l 3176 2375 l
3163 2376 l 3149 2376 l 3131 2378 l 3111 2380 l 3087 2383 l
3060 2387 l 3030 2393 l 3000 2400 l 2975 2408 l 2953 2417 l
2935 2425 l 2920 2432 l 2909 2438 l 2900 2443 l 2893 2447 l
2888 2451 l 2884 2454 l 2881 2456 l 2879 2459 l 2876 2462 l
2873 2467 l 2870 2472 l 2867 2480 l 2863 2489 l 2858 2501 l
2854 2515 l 2851 2532 l 2850 2550 l 2852 2574 l 2858 2597 l
2867 2619 l 2878 2639 l 2890 2659 l 2904 2677 l 2919 2695 l
2934 2712 l 2950 2727 l 2964 2742 l 2977 2754 l
3000 2775 l gs col0 s gr gr
% arrowhead
0 slj
n 2879 2705 m 2988 2764 l 2919 2660 l col0 s
/Courier-Oblique ff 180.00 scf sf
1200 3000 m
gs 1 -1 sc (items) col0 sh gr
/Courier-Oblique ff 180.00 scf sf
2925 2325 m
gs 1 -1 sc (items) col0 sh gr
/Courier-Oblique ff 180.00 scf sf
3075 3000 m
gs 1 -1 sc (items) col0 sh gr
/Courier-Oblique ff 180.00 scf sf
2775 3000 m
gs 1 -1 sc (g) col0 sh gr
/Courier-Oblique ff 180.00 scf sf
3900 2850 m
gs 1 -1 sc (g) col0 sh gr
/Courier-Oblique ff 180.00 scf sf
5025 3000 m
gs 1 -1 sc (text) col0 sh gr
/Courier-Oblique ff 180.00 scf sf
5625 2850 m
gs 1 -1 sc (text) col0 sh gr
/Times-Italic ff 180.00 scf sf
6750 3000 m
gs 1 -1 sc (L) col0 sh gr
/Courier ff 180.00 scf sf
525 3000 m
gs 1 -1 sc (ul) col0 sh gr
/Courier ff 180.00 scf sf
4275 3000 m
gs 1 -1 sc (li) col0 sh gr
/Times-Roman ff 135.00 scf sf
459 2713 m
gs 1 -1 sc (1) col0 sh gr
/Times-Roman ff 135.00 scf sf
1161 2720 m
gs 1 -1 sc (2) col0 sh gr
/Times-Roman ff 135.00 scf sf
2654 2733 m
gs 1 -1 sc (3) col0 sh gr
/Times-Roman ff 135.00 scf sf
4190 2727 m
gs 1 -1 sc (4) col0 sh gr
/Times-Roman ff 135.00 scf sf
4966 2726 m
gs 1 -1 sc (5) col0 sh gr
/Times-Roman ff 135.00 scf sf
6193 2739 m
gs 1 -1 sc (6) col0 sh gr
/Courier-Oblique ff 180.00 scf sf
1950 2850 m
gs 1 -1 sc (items) col0 sh gr
/Courier-Oblique ff 180.00 scf sf
1575 3300 m
gs 1 -1 sc (items) col0 sh gr
/Courier-Oblique ff 180.00 scf sf
3225 3300 m
gs 1 -1 sc (items) col0 sh gr
$F2psEnd
rs
%%EndDocument
@endspecial 2000 1924 a(The)59 b(box)o(es)g(represent)g(element)g
(nodes,)g(rounded)f(box)o(es)h(are)2000 2024 y(template)38
b(nodes,)f(the)i(circle)f(is)i(a)f(chardata)e(node,)g(and)h(the)h(dots)
2000 2123 y(represent)27 b(potentially)g(open)h(template)g(gaps.)2083
2302 y(The)41 b(f)o(amily)h(of)g(summary)e(graph)h(structures)g(forms)h
(a)g(lattice)2000 2402 y(using)35 b(a)g(pointwise)g(subset)h(ordering.)
d(F)o(or)i(a)h(\002x)o(ed)e(program,)f(the)2000 2502
y(lattice)c(has)f(\002nite)h(height.)2083 2605 y(The)f(unfolding)e(of)i
(summary)f(graphs)h(can)g(be)g(formalized)f(as)2312 2761
y Fs(unfold)9 b Fz(\()p Fs(SG)f Fz(\))23 b(=)g FA(f)p
Fy(d)g FA(j)g(9)p Fy(r)j FA(2)d Fy(R)h Fz(:)f Fs(SG)30
b FA(`)23 b Fy(r)j FA(\))d Fy(d)p FA(g)2000 2914 y FC(where)35
b(the)g FB(unfolding)e(r)m(elation)p FC(,)i FA(\))p FC(,)h(is)g
(de\002ned)f(by)g(induction)e(in)2000 3014 y(the)39 b(structure)g(of)g
(the)h(summary)e(graph)g(according)f(to)j(Figure)4030
3014 y
SDict begin H.S end
4030 3014 a FC(2)4071 2957 y
SDict begin H.R end
4071 2957 a 4071
3014 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (figure.2) cvn H.B /ANN pdfmark end
4071 3014 a FC(,)2000 3113 y(considering)33 b(only)h(\002nite)h
(terms.)g(The)g(\002rst)h(six)f(rules)g(de\002ne)g(ho)n(w)2000
3213 y(a)g(node)e(may)h(be)h(unfolded)d(according)h(to)h(the)h(dif)n
(ferent)e(kinds)h(of)2000 3312 y(nodes:)42 b(F)o(or)h(element)f(nodes,)
g(we)h(look)f(up)h(the)g(element)f(name,)2000 3412 y(attrib)n(utes,)h
(and)f(contents,)g(and)h(unfold)f(attrib)n(utes)h(and)f(contents)2000
3512 y(recursi)n(v)o(ely)-5 b(.)23 b(F)o(or)j(character)f(data)h
(nodes,)f(we)h(look)f(up)h(the)g(possible)2000 3611 y(v)n(alues)h(in)g
(the)h(string)f(edges.)g(F)o(or)g(attrib)n(ute)g(nodes,)g(there)g(are)g
(three)2000 3711 y(rules:)33 b(one)f(unfolds)f(according)g(to)i(the)g
(string)g(edges,)f(one)g(checks)2000 3811 y(whether)g(the)g(attrib)n
(ute)h(gap)e(may)i(be)f(open)g(according)f(to)i(the)f(gap)2000
3910 y(presence)24 b(map,)g(and)h(one)g(checks)f(whether)g(the)i
(attrib)n(ute)e(may)h(ha)n(v)o(e)2000 4010 y(been)g(remo)o(v)o(ed.)f(F)
o(or)i(template)g(nodes,)f(we)i(look)e(up)h(the)h(associated)2000
4109 y(gap)h(sequence)g(and)h(unfold)f(each)h(gap)f(recursi)n(v)o(ely)
-5 b(.)27 b(The)i(last)h(three)2000 4209 y(rules)g(in)g(the)g(\002gure)
f(de\002ne)h(ho)n(w)f(a)i(gap)e(can)h(be)g(unfolded)d(relati)n(v)o(e)
2000 4309 y(to)34 b(a)g(template)f(node:)g(either)h(by)f(follo)n(wing)f
(a)j(template)e(edge,)g(by)2000 4408 y(making)27 b(an)h(e)o(xplicit)g
(template)g(gap,)f(or)i(by)f(remo)o(ving)e(the)i(gap.)2083
4511 y(W)-7 b(e)29 b(de\002ne)f(the)h(language)e(of)h(a)h(summary)e
(graph)g(as)2371 4668 y FA(L)p Fz(\()p Fs(SG)8 b Fz(\))23
b(=)g FA(f)p Fs(close)6 b Fz(\()p Fy(d)p Fz(\))24 b FA(j)f
Fy(d)h FA(2)f Fs(unfold)9 b Fz(\()p Fs(SG)f Fz(\))p FA(g)2000
4821 y FC(where)26 b Fs(close)7 b Fz(\()p Fy(d)p Fz(\))28
b FC(remo)o(v)o(es)d(all)i(occurrences)d(of)i(template)g(gaps)g(and)
2000 4920 y(attrib)n(ute)i(gaps.)2083 5023 y(Compared)37
b(with)i(the)g(de\002nition)e(of)i(summary)e(graphs)h(in)g([8],)2000
5123 y(a)f(node)g(no)n(w)f(corresponds)f(to)i(at)h(most)f(one)g
(chardata)f(sequence,)2000 5223 y(element,)24 b(or)h(attrib)n
(ute\227corresponding)20 b(to)26 b(the)f(possible)f(tar)o(gets)h(of)
2000 5322 y(XP)o(ath)33 b(e)n(v)n(aluation.)e(Furthermore,)f(we)j(ha)n
(v)o(e)g(added)f(the)h Fs(r)l(emove)l(d)2000 5422 y FC(component)42
b(of)j(the)f(gap)g(presence)g(map)g(to)h(model)f(the)h
Fr(close)2000 5522 y FC(operation.)37 b(Since)j(e)n(v)o(ery)e(summary)g
(graph)g(e)o(xpressed)h(according)2000 5621 y(to)27 b(the)g(old)f
(de\002nition)g(can)h(be)g(transformed)e(into)h(one)h(that)g(\002ts)h
(into)p eop end
%%Page: 7 7
TeXDict begin 7 6 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192 -307
a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark
end
-192 -307 a FJ(IEEE)19
b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19 b(ENGINEERING)2823
b(7)-192 -58 y FC(the)22 b(ne)n(w)h(de\002nition)e(by)h(splitting)g
(templates)h(into)f(indi)n(vidual)f(nodes,)-192 42 y(we)i(say)f(that)h
(the)f(latter)h(one)e(de\002nes)h FB(normalized)i FC(summary)d(graphs.)
-192 178 y
SDict begin H.S end
-192 178 a -192 178 a
SDict begin 12 H.A end
-192 178 a -192 178
a
SDict begin [ /View [/XYZ H.V] /Dest (section.4) cvn H.B /DEST pdfmark
end
-192 178 a 231 260 a FC(I)t(V)-7 b(.)45 b(M)t FD(O)t(D)t(E)t(L)t(I)t
(N)t(G)25 b FC(X)t(M)t(L)g(O)t FD(P)t(E)t(R)t(A)m(T)t(I)t(O)t(N)t(S)445
360 y(O)t(N)g FC(S)t FD(U)t(M)t(M)t(A)t(RY)h FC(G)t FD(R)t(A)t(P)t(H)t
(S)-109 490 y FC(Our)e(data\003o)n(w)f(analysis)h(associates)g(a)h
(summary)d(graph)h Fs(SG)32 b FC(with)-192 589 y(e)n(v)o(ery)20
b Fr(XML)h FC(v)n(ariable)f(and)h(e)o(xpression)f(at)i(e)n(v)o(ery)e
(program)g(point.)g(The)-192 689 y(analysis)k(is)h(conserv)n(ati)n(v)o
(e)c(meaning)i(that)h Fs(unfold)9 b Fz(\()p Fs(SG)e Fz(\))25
b FC(contains)e(all)-192 789 y(XML)29 b(templates)f(that)g(may)g(occur)
g(at)h(that)f(point)g(at)h(runtime.)-109 889 y(The)39
b(essence)h(of)f(the)g(data\003o)n(w)g(analysis)h(is)g(the)g
(de\002nition)e(of)-192 989 y(transfer)32 b(functions)f(for)i(the)f
(XML)h(operations.)e(Let)i Fz(\001)h FC(denote)e(an)-192
1088 y(en)m(vironment)19 b(that)k(maps)f(each)g Fr(XML)g
FC(v)n(ariable)g(to)g(a)h(summary)e(graph.)-192 1188
y(The)28 b(transfer)g(function)f(for)g(an)i(assignment)e
Fy(x)p Fr(=)p Fs(exp)35 b FC(is)480 1339 y Fz(\001)23
b FA(7!)g Fz(\001[)p Fy(x)h FA(7!)959 1318 y Fk(b)947
1339 y Fz(\001\()p Fs(exp)6 b Fz(\)])-192 1489 y FC(and)36
b(for)f(all)i(other)e(statements,)h(it)h(is)g(the)f(identity)g
(function.)e(The)-192 1589 y(function)135 1568 y Fk(b)124
1589 y Fz(\001)39 b FC(e)o(xtends)e Fz(\001)i FC(to)f
Fr(XML)g FC(e)o(xpressions)f(according)f(to)j(the)-192
1688 y(e)o(xpression)27 b(kind:)-192 1806 y Fr(constant)p
FC(:)38 b(W)-7 b(e)27 b(sho)n(w)e(belo)n(w)f(in)h(Section)1146
1807 y
SDict begin H.S end
1146 1807 a -1 x FC(IV)-8 b(-A)1313 1751 y
SDict begin H.R end
1313
1751 a 1313 1806 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (subsection.4.1) cvn H.B /ANN pdfmark end
1313 1806 a 26 w FC(ho)n(w)24 b(to)i(construct)-26
1906 y(a)35 b(summary)e(graph)g Fs(SG)732 1918 y Fw(xml)882
1906 y FC(for)h(a)h(gi)n(v)o(en)e(template)h(constant)-26
2005 y Fr([[)p Fs(xml)7 b Fr(]])p FC(.)-192 2105 y Fr(plug)p
FC(:)40 b(All)53 b(four)e(v)n(ariants)h(of)g Fr(plug)g
FC(operations)f(are)h(modeled)-26 2205 y(essentially)d(as)g(in)g([8)o
(],)g(and)f(the)h(details)g(are)g(deferred)e(to)-26 2304
y(Appendix)355 2304 y
SDict begin H.S end
355 2304 a FC(III)438 2249 y
SDict begin H.R end
438
2249 a 438 2304 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section*.11) cvn H.B /ANN pdfmark end
438 2304 a FC(.)53 b(Intuiti)n(v)o(ely)-5
b(,)51 b(a)i(template)f(plug)h(in)m(v)n(ocation)-26 2404
y Fs(exp)98 2424 y Fv(1)136 2404 y Fr(.plug)n Fz(\()p
Fy(g)s(;)14 b Fs(exp)590 2424 y Fv(2)627 2404 y Fz(\))20
b FC(is)f(modeled)e(by)i(adding)e(template)h(edges)-26
2506 y(from)40 b(nodes)g(with)g(open)g Fy(g)k FC(gaps)c(in)1197
2485 y Fk(b)1186 2506 y Fz(\001\()p Fs(exp)1412 2526
y Fv(1)1449 2506 y Fz(\))h FC(to)g(roots)g(in)-14 2586
y Fk(b)-26 2607 y Fz(\001\()p Fs(exp)200 2628 y Fv(2)237
2607 y Fz(\))p FC(.)k(A)g(string)f(plug)g(is)h(modeled)e(by)h
(collecting)g(the)-26 2707 y(possible)28 b(strings)h(into)f(the)g
(associated)h(chardata)e(node.)-192 2806 y Fr(close)p
FC(:)40 b(T)-7 b(o)86 b(model)e(the)i(remo)o(v)n(al)f(of)g(gaps,)g(we)h
(de\002ne)-14 2885 y Fk(b)-26 2906 y Fz(\001\()p Fs(exp)6
b Fr(.close\()m(\))p Fz(\))43 b(=)f(\()p Fy(R)q(;)14
b(T)7 b(;)14 b(S;)g(\025h:)p Fz(\()p FA(;)p Fy(;)g Fs(r)l(emove)l(d)9
b Fz(\()p Fy(P)j Fz(\()p Fy(h)p Fz(\)\))27 b FA([)-26
3008 y Fs(op)l(en)7 b Fz(\()p Fy(P)12 b Fz(\()p Fy(h)p
Fz(\)\))p Fy(;)i FA(f)p Fn(CLOSED)p FA(g)p Fy(;)g FA(f)p
Fn(CLOSED)o FA(g)p Fz(\)\))44 b FC(where)1539 2987 y
Fk(b)1528 3008 y Fz(\001\()p Fs(exp)6 b Fz(\))50 b(=)-26
3107 y(\()p Fy(R)q(;)14 b(T)7 b(;)14 b(S;)g(P)e Fz(\))p
FC(.)-192 3207 y Fr(select)27 b FC(and)h Fr(gapify)p
FC(:)39 b(The)47 b(modeling)f(of)i(these)g(operations)f(is)-26
3307 y(based)32 b(on)g(a)g(technique)f(for)g(symbolic)h(XP)o(ath)g(e)n
(v)n(aluation)e(on)-26 3406 y(summary)d(graphs)g(described)h(in)g
(Section)1281 3407 y
SDict begin H.S end
1281 3407 a -1 x FC(IV)-8 b(-C)1444
3350 y
SDict begin H.R end
1444 3350 a 1444 3406 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (subsection.4.3) cvn H.B /ANN pdfmark end
1444 3406 a FC(.)-192
3506 y Fr(group)p FC(:)40 b(An)33 b(array)g(of)g(XML)g(templates)h(is)g
(modeled)e(by)h(a)h(single)-26 3606 y(summary)h(graph)f(that)j
(approximates)d(the)i(array)f(entries.)h(T)-7 b(o)-26
3705 y(model)20 b(an)g(instance)h(of)f(the)h Fr(group)e
FC(operation,)g(let)i Fy(n)g FC(denote)f(its)-26 3805
y(template)29 b(node)f(and)h(de\002ne)g Fs(gaps)8 b Fz(\()p
Fy(n)p Fz(\))25 b(=)g Fy(g)1297 3817 y Fv(1)1334 3805
y Fy(g)1374 3817 y Fv(2)1441 3805 y FC(where)j Fy(g)1713
3817 y Fv(1)1780 3805 y FC(and)-26 3907 y Fy(g)14 3919
y Fv(2)75 3907 y FC(are)c(fresh)f(unique)f(gap)h(names.)g(If)1133
3886 y Fk(b)1121 3907 y Fz(\001\()p Fs(exp)6 b Fz(\))23
b(=)g(\()p Fy(R)q(;)14 b(T)7 b(;)14 b(S;)g(P)e Fz(\))-26
4008 y FC(then)41 b(we)g(de\002ne)554 3987 y Fk(b)542
4008 y Fz(\001\()p Fr(group\()n Fs(exp)6 b Fr(,)o Fy(p)p
Fr(\))o Fz(\))47 b(=)g(\()p FA(f)p Fy(n)p FA(g)p Fy(;)14
b(T)1613 3978 y Ft(0)1634 4008 y Fy(;)g(S;)g(P)1824 3978
y Ft(0)1847 4008 y Fz(\))p FC(,)-26 4108 y(where)19 b
Fy(T)258 4078 y Ft(0)301 4108 y FC(and)g Fy(P)506 4078
y Ft(0)549 4108 y FC(are)h(copies)f(of)h Fy(T)31 b FC(and)19
b Fy(P)12 b FC(,)20 b(respecti)n(v)o(ely)-5 b(,)18 b(with)-26
4207 y(the)30 b(follo)n(wing)f(modi\002cations:)g(we)i(add)f
Fz(\()p Fy(n;)14 b(g)1402 4219 y Fv(1)1439 4207 y Fy(;)g(m)p
Fz(\))26 b FA(2)h Fy(T)1750 4177 y Ft(0)1803 4207 y FC(for)-26
4307 y(each)k Fy(m)d FA(2)h Fy(R)q FC(,)j Fz(\()p Fy(n;)14
b(g)619 4319 y Fv(2)655 4307 y Fy(;)g(n)p Fz(\))29 b
FA(2)g Fy(T)948 4277 y Ft(0)970 4307 y FC(,)j(and)e Fy(n)f
FA(2)g Fs(r)l(emove)l(d)9 b Fz(\()p Fy(P)j Fz(\()p Fy(g)1808
4319 y Fu(i)1836 4307 y Fz(\)\))-26 4407 y FC(for)43
b Fy(i)51 b Fz(=)g(1)p Fy(;)14 b Fz(2)p FC(.)43 b(Intuiti)n(v)o(ely)-5
b(,)42 b(this)i(models)f(the)h(output)f(of)g(a)-26 4506
y Fr(group)f FC(operation)f(as)j(all)g(possible)f(concatenations)e(of)i
(the)-26 4606 y(input)28 b(templates.)-192 4706 y Fr(cast)f
FC(and)h Fr(get)p FC(:)41 b(The)20 b(dif)n(\002cult)g(part)g(of)g
(modeling)f(these)h(operations)-26 4805 y(is)31 b(to)f(construct)e(a)i
(summary)f(graph)f Fs(SG)1233 4817 y Fu(D)1324 4805 y
FC(for)h(a)h(gi)n(v)o(en)f(DTD)-26 4905 y Fy(D)50 b FC(such)d(that)h
FA(L)p Fz(\()p Fs(SG)674 4917 y Fu(D)734 4905 y Fz(\))58
b(=)g FA(L)p Fz(\()p Fy(D)r Fz(\))p FC(.)49 b(W)-7 b(e)48
b(sho)n(w)g(belo)n(w)f(in)-26 5005 y(Section)252 5006
y
SDict begin H.S end
252 5006 a -1 x FC(IV)-8 b(-B)414 4949 y
SDict begin H.R end
414 4949 a
414 5005 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (subsection.4.2) cvn H.B /ANN pdfmark end
414 5005 a 30 w FC(ho)n(w)27 b(this)i(can)g(be)f(achie)n(v)o
(ed.)-192 5122 y(All)h(transfer)f(functions)f(can)h(be)h(sho)n(wn)e(to)
i(be)f(monotone.)-109 5223 y(Once)41 b(the)g(summary)e(graphs)h(are)h
(constructed,)e(the)i Fr(analyze)-192 5322 y FC(in)m(v)n(ocations)e
(are)i(check)o(ed)f(using)g(a)h(v)n(ariation)f(of)g(the)h(v)n
(alidation)-192 5422 y(algorithm)35 b(from)h([8)o(],)h(which)f(v)n
(alidates)g(the)h(summary)e(graph)g(for)-192 5522 y(the)d(XML)g(e)o
(xpression)e(relati)n(v)o(e)h(to)h(the)g(DTD.)f(The)h(original)f(algo-)
-192 5621 y(rithm)j(w)o(orks)g(on)f(non-normalized)e(summary)i(graphs)g
(and)h(DSD2)2000 -58 y(schemas,)20 b(b)n(ut)i(it)f(is)h(easily)g
(adjusted)e(to)h(the)h(present)e(simpler)h(setting.)2000
42 y(This)38 b(is)g(a)g(conserv)n(ati)n(v)o(e)e(analysis)h(of)h(the)f
(summary)g(graph:)f(if)i(it)2000 142 y(returns)30 b(\223v)n(alid\224,)g
(then)g(it)i(is)g(guaranteed)d(that)i(all)h(XML)f(templates)2000
241 y(at)38 b(that)g(point)g(are)g(v)n(alid)f(at)i(runtime;)e
(otherwise,)g(a)h(useful)g(error)2000 341 y(message)28
b(is)i(pro)o(vided.)2083 444 y(T)-7 b(o)25 b(check)g(that)h
Fr(plug)e FC(in)m(v)n(ocations)g(al)o(w)o(ays)i(succeed,)f(we)h
(inspect)2000 544 y(the)i(associated)h(summary)e(graphs)g(as)i(e)o
(xplained)e(in)i(Appendix)3988 544 y
SDict begin H.S end
3988 544 a FC(III)4071
488 y
SDict begin H.R end
4071 488 a 4071 544 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section*.11) cvn H.B /ANN pdfmark end
4071 544 a FC(.)2000 643
y(T)-7 b(o)43 b(check)f(that)h(XP)o(ath)f(e)o(xpressions)g(in)h
Fr(select)p FC(,)d Fr(gapify)p FC(,)h(and)2000 743 y
Fr(group)21 b FC(in)m(v)n(ocations)h(may)g(potentially)g(hit)h(some)g
(nodes,)f(we)i(inspect)2000 843 y(the)j(status)g(maps)g(that)g(are)g
(generated)e(by)h(the)h(symbolic)f(e)n(v)n(aluation)2000
942 y(presented)h(later)-5 b(.)2083 1046 y(Using)21 b(similar)h(ar)o
(guments)e(as)j(in)e([8],)g(the)h(theoretical)f(w)o(orst-case)2000
1145 y(comple)o(xity)30 b(of)h(the)h(entire)f(analysis)h(can)g(be)g
(sho)n(wn)f(to)h(be)g Fy(O)r Fz(\()p Fy(n)4022 1115 y
Fv(8)4060 1145 y Fz(\))2000 1245 y FC(where)24 b Fy(n)g
FC(is)i(the)e(total)g(size)h(of)f(the)h(program)d(and)i(the)g(rele)n(v)
n(ant)f(DTD)2000 1344 y(schemas.)45 b(Despite)g(this)h(high)f
(theoretical)f(bound,)f(the)i(analysis)2000 1444 y(appears)27
b(ef)n(\002cient)h(in)h(practice,)f(as)h(sho)n(wn)f(in)g(Section)3701
1445 y
SDict begin H.S end
3701 1445 a -1 x FC(V)3761 1389 y
SDict begin H.R end
3761 1389 a
3761 1444 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.5) cvn H.B /ANN pdfmark end
3761 1444 a FC(.)2000 1620 y
SDict begin H.S end
2000 1620 a
2000 1620 a
SDict begin 12 H.A end
2000 1620 a 2000 1620 a
SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.1) cvn H.B /DEST
pdfmark end
2000 1620 a 85 x
FB(A.)41 b(Summary)27 b(Gr)o(aphs)h(for)h(XML)g(T)-8
b(emplate)29 b(Constants)2083 1844 y FC(F)o(or)46 b(the)g
Fr(constant)e FC(operations,)h(we)i(are)f(gi)n(v)o(en)f(a)i(template)
2000 1943 y(constant)41 b Fs(xml)8 b FC(,)42 b(and)f(we)i(need)e(to)h
(construct)e(a)j(summary)d(graph)2000 2043 y Fs(SG)2118
2055 y Fw(xml)2275 2043 y FC(such)i(that)g Fs(unfold)9
b Fz(\()p Fs(SG)3018 2055 y Fw(xml)3133 2043 y Fz(\))48
b(=)f FA(f)p Fs(xml)8 b FA(g)p FC(.)42 b(This)g(is)h(tri)n(vial)2000
2143 y(for)c(the)g(non-normalized)d(summary)j(graphs)f(in)i([8)o(])g
(where)f(each)2000 2242 y(template)21 b(constant)f(corresponds)f(to)i
(an)h(indi)n(vidual)d(summary)h(graph)2000 2342 y(node.)30
b(F)o(or)g(normalized)f(summary)h(graphs,)g(the)h(desired)f(summary)
2000 2442 y(graph)d Fs(SG)2336 2454 y Fw(xml)2474 2442
y Fz(=)22 b(\()p Fy(R)q(;)14 b(T)7 b(;)14 b(S;)g(P)e
Fz(\))29 b FC(is)g(the)f(least)h(one)f(that)h(satis\002es)g(the)2000
2541 y(constraints)f(generated)e(from)i(the)g(follo)n(wing)f(rules:)
2083 2665 y Ft(\017)50 b FC(F)o(or)34 b(each)h(element)g
Fr(<)p Fy(e)14 b(:)g(:)g(:)f Fr(>)o Fy(d)3096 2677 y
Fv(1)3148 2665 y Fy(:)h(:)g(:)f(d)3301 2677 y Fu(k)3342
2665 y Fr()p Fy(e)p Fr(>)35 b FC(in)g(the)g(template,)2167
2765 y(let)c Fy(n)h FC(denote)e(the)h(template)g(node)f(of)h(the)g
(contents)g Fy(d)3846 2777 y Fv(1)3897 2765 y Fy(:)14
b(:)g(:)g(d)4051 2777 y Fu(k)2167 2864 y FC(and)34 b(de\002ne)g
Fs(gaps)7 b Fz(\()p Fy(n)p Fz(\))35 b(=)f Fy(g)3011 2876
y Fv(1)3062 2864 y Fy(:)14 b(:)g(:)f(g)3212 2876 y Fu(k)3288
2864 y FC(where)34 b Fy(g)3566 2876 y Fu(i)3627 2864
y Fz(=)g Fy(h)3774 2876 y Fu(i)3836 2864 y FC(if)h Fy(d)3965
2876 y Fu(i)4027 2864 y Fz(=)2167 2964 y Fr(<[)o Fy(h)2302
2976 y Fu(i)2329 2964 y Fr(]>)24 b FC(and)g(otherwise)f
Fy(g)2973 2976 y Fu(i)3025 2964 y FC(is)i(a)g(fresh)f(unique)e(gap)i
(name.)f(F)o(or)2167 3064 y(each)e Fy(i)p FC(,)h(add)f
Fz(\()p Fy(n;)14 b(g)2714 3076 y Fu(i)2742 3064 y Fy(;)g(m)2852
3076 y Fu(i)2879 3064 y Fz(\))23 b FA(2)h Fy(T)33 b FC(where)22
b Fy(m)3394 3076 y Fu(i)3444 3064 y FC(is)g(the)g(element)g(node)2167
3163 y(or)28 b(chardata)f(node)h(of)g Fy(d)2907 3175
y Fu(i)2935 3163 y FC(.)2083 3263 y Ft(\017)50 b FC(F)o(or)33
b(the)h(tople)n(v)o(el)f(template)h(contents)f(corresponding)d(to)k
(the)2167 3362 y(template)39 b(node)f Fy(r)r FC(,)j(we)f(de\002ne)f
Fy(g)s(aps)p Fz(\()p Fy(r)r Fz(\))h FC(and)f(add)g(template)2167
3462 y(edges)31 b(in)g(the)g(same)h(w)o(ay)f(as)h(for)f(element)g
(contents,)f(and)h(we)2167 3562 y(de\002ne)d Fy(R)23
b Fz(=)g FA(f)p Fy(r)r FA(g)p FC(.)2083 3661 y Ft(\017)50
b FC(F)o(or)34 b(e)n(v)o(ery)g(attrib)n(ute)g Fy(a)p
Fr(=")o Fy(s)p Fr(")h FC(corresponding)d(to)j(an)g(attrib)n(ute)2167
3761 y(node)27 b Fy(n)p FC(,)i(add)f Fy(S)5 b Fz(\()p
Fy(n)p Fz(\))23 b(=)f FA(f)p Fy(s)p FA(g)p FC(,)28 b(and)g(similarly)g
(for)g(chardata.)2083 3861 y Ft(\017)50 b FC(F)o(or)38
b(e)n(v)o(ery)f(attrib)n(ute)h(gap)g Fy(a)p Fr(=[)o Fy(g)s
Fr(])g FC(corresponding)d(to)k(an)f(at-)2167 3960 y(trib)n(ute)23
b(node)h Fy(n)p FC(,)g(add)f Fy(n)g FA(2)h Fs(op)l(en)7
b Fz(\()p Fy(P)12 b Fz(\()p Fy(g)s Fz(\)\))25 b FC(and)e
Fs(agaps)9 b Fz(\()p Fy(P)j Fz(\()p Fy(g)s Fz(\)\))23
b(=)2167 4060 y FA(f)p Fn(OPEN)o FA(g)p FC(.)2083 4159
y Ft(\017)50 b FC(F)o(or)35 b(e)n(v)o(ery)f(template)h(gap)f
Fr(<[)p Fy(g)s Fr(]>)g FC(belonging)f(to)j(a)g(template)2167
4259 y(node)27 b Fy(n)p FC(,)i(add)f Fy(n)23 b FA(2)g
Fs(op)l(en)7 b Fz(\()p Fy(P)12 b Fz(\()p Fy(g)s Fz(\)\))p
FC(,)29 b Fs(tgaps)8 b Fz(\()p Fy(P)k Fz(\()p Fy(g)s
Fz(\)\))23 b(=)g FA(f)p Fn(OPEN)p FA(g)p FC(.)2083 4359
y Ft(\017)50 b FC(Unless)70 b(de\002ned)f(otherwise)h(abo)o(v)o(e,)e
Fs(agaps)8 b Fz(\()p Fy(P)k Fz(\()p Fy(g)s Fz(\)\))71
b FC(and)2167 4458 y Fs(tgaps)7 b Fz(\()p Fy(P)12 b Fz(\()p
Fy(g)s Fz(\)\))30 b FC(are)e(set)h(to)g FA(f)p Fn(CLOSED)p
FA(g)p FC(.)2000 4584 y(As)g(an)g(e)o(xample,)d(the)j(template)f
(constant)2035 4715 y Fx(Hell)q(o!<)q(/hea)q(d><)q([mor)q(e]>)2000
4868 y FC(contains)23 b(all)i(possible)f(template)f(constructs.)g(It)i
(is)g(con)m(v)o(erted)c(to)j(the)2000 4968 y(follo)n(wing)j(summary)g
(graph:)2148 5621 y @beginspecial 0 @llx 0 @lly 323 @urx
104 @ury 2154 @rwi @setspecial
%%BeginDocument: const.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: const.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3d
%%CreationDate: Tue Oct 7 14:24:55 2003
%%For: amoeller@harald (Anders Moller)
%%BoundingBox: 0 0 323 104
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 104 moveto 0 0 lineto 323 0 lineto 323 104 lineto closepath clip newpath
-39.8 340.4 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/reencdict 12 dict def /ReEncode { reencdict begin
/newcodesandnames exch def /newfontname exch def /basefontname exch def
/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
basefontdict { exch dup /FID ne { dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
newfont /FontName newfontname put newcodesandnames aload pop
128 1 255 { newfont /Encoding get exch /.notdef put } for
newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
newfontname newfont definefont pop end } def
/isovec [
8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
8#220 /dotlessi 8#230 /oe 8#231 /OE
8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
/Courier /Courier-iso isovec ReEncode
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
7.500 slw
% Ellipse
n 1350 4975 50 50 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
% Ellipse
n 4650 4800 150 150 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 2850 5550 50 50 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
% Polyline
gs clippath
990 4530 m 990 4470 l 838 4470 l 958 4500 l 838 4530 l cp
eoclip
n 675 4500 m
975 4500 l gs col0 s gr gr
% arrowhead
n 838 4530 m 958 4500 l 838 4470 l col0 s
% Polyline
gs clippath
1320 4965 m 1380 4965 l 1380 4813 l 1350 4933 l 1320 4813 l cp
eoclip
n 1350 4650 m
1350 4950 l gs col0 s gr gr
% arrowhead
n 1320 4813 m 1350 4933 l 1380 4813 l col0 s
% Polyline
30.000 slw
gs clippath
2292 4944 m 2340 4980 l 2431 4859 l 2335 4937 l 2383 4823 l cp
eoclip
n 2550 4650 m
2325 4950 l gs col0 s gr gr
% arrowhead
7.500 slw
n 2383 4823 m 2335 4937 l 2431 4859 l 2383 4823 l cp gs 0.00 setgray ef gr col0 s
% Polyline
30.000 slw
gs clippath
2910 4980 m 2958 4944 l 2867 4823 l 2915 4937 l 2819 4859 l cp
eoclip
n 2700 4650 m
2925 4950 l gs col0 s gr gr
% arrowhead
7.500 slw
n 2819 4859 m 2915 4937 l 2867 4823 l 2819 4859 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
4525 4221 m 4501 4166 l 4362 4226 l 4485 4207 l 4386 4281 l cp
eoclip
n 3975 4425 m
4500 4200 l gs col0 s gr gr
% arrowhead
n 4386 4281 m 4485 4207 l 4362 4226 l col0 s
% Polyline
gs clippath
4501 4833 m 4525 4778 l 4386 4718 l 4485 4793 l 4362 4773 l cp
eoclip
n 3975 4575 m
4500 4800 l gs col0 s gr gr
% arrowhead
n 4362 4773 m 4485 4793 l 4386 4718 l col0 s
% Polyline
gs clippath
3433 5504 m 3483 5470 l 3399 5344 l 3441 5461 l 3349 5377 l cp
eoclip
n 3300 5250 m
3450 5475 l gs col0 s gr gr
% arrowhead
n 3349 5377 m 3441 5461 l 3399 5344 l col0 s
% Polyline
gs clippath
1766 5470 m 1816 5504 l 1900 5377 l 1809 5461 l 1850 5344 l cp
eoclip
n 1950 5250 m
1800 5475 l gs col0 s gr gr
% arrowhead
n 1850 5344 m 1809 5461 l 1900 5377 l col0 s
% Polyline
n 1080 4350 m 975 4350 975 4545 105 arcto 4 {pop} repeat
975 4650 1770 4650 105 arcto 4 {pop} repeat
1875 4650 1875 4455 105 arcto 4 {pop} repeat
1875 4350 1080 4350 105 arcto 4 {pop} repeat
cp gs col0 s gr
% Polyline
gs clippath
2340 4530 m 2340 4470 l 2188 4470 l 2308 4500 l 2188 4530 l cp
eoclip
n 1875 4500 m
2325 4500 l gs col0 s gr gr
% arrowhead
n 2188 4530 m 2308 4500 l 2188 4470 l col0 s
% Polyline
30.000 slw
n 2325 4350 m 2925 4350 l 2925 4650 l 2325 4650 l
cp gs col0 s gr
% Polyline
gs clippath
3315 4530 m 3315 4470 l 3164 4470 l 3284 4500 l 3164 4530 l cp
eoclip
n 2925 4500 m
3300 4500 l gs col0 s gr gr
% arrowhead
7.500 slw
n 3164 4530 m 3284 4500 l 3164 4470 l 3164 4530 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 3405 4350 m 3300 4350 3300 4545 105 arcto 4 {pop} repeat
3300 4650 3870 4650 105 arcto 4 {pop} repeat
3975 4650 3975 4455 105 arcto 4 {pop} repeat
3975 4350 3405 4350 105 arcto 4 {pop} repeat
cp gs col0 s gr
% Polyline
30.000 slw
n 4500 3975 m 5175 3975 l 5175 4275 l 4500 4275 l
cp gs col0 s gr
% Polyline
7.500 slw
gs clippath
5190 4830 m 5190 4770 l 5038 4770 l 5158 4800 l 5038 4830 l cp
eoclip
n 4800 4800 m
5175 4800 l gs col0 s gr gr
% arrowhead
n 5038 4830 m 5158 4800 l 5038 4770 l col0 s
% Polyline
30.000 slw
gs clippath
5565 4155 m 5565 4095 l 5414 4095 l 5534 4125 l 5414 4155 l cp
eoclip
n 5175 4125 m
5550 4125 l gs col0 s gr gr
% arrowhead
7.500 slw
n 5414 4155 m 5534 4125 l 5414 4095 l 5414 4155 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 5655 3975 m 5550 3975 5550 4170 105 arcto 4 {pop} repeat
5550 4275 5895 4275 105 arcto 4 {pop} repeat
6000 4275 6000 4080 105 arcto 4 {pop} repeat
6000 3975 5655 3975 105 arcto 4 {pop} repeat
cp gs col0 s gr
% Polyline
n 2700 5100 m 3150 4875 l 3600 5100 l 3150 5325 l
cp gs col0 s gr
% Polyline
n 1650 5100 m 2100 4875 l 2550 5100 l 2100 5325 l
cp gs col0 s gr
% Polyline
gs clippath
2833 5482 m 2883 5516 l 2967 5389 l 2876 5473 l 2917 5356 l cp
eoclip
n 3017 5262 m
2867 5487 l gs col0 s gr gr
% arrowhead
n 2917 5356 m 2876 5473 l 2967 5389 l col0 s
/Courier-iso ff 180.00 scf sf
1050 4575 m
gs 1 -1 sc (d1 more) col0 sh gr
/Courier-iso ff 180.00 scf sf
1425 4875 m
gs 1 -1 sc (more) col0 sh gr
/Courier-iso ff 180.00 scf sf
1950 4425 m
gs 1 -1 sc (d1) col0 sh gr
/Courier-iso ff 180.00 scf sf
2400 4575 m
gs 1 -1 sc (head) col0 sh gr
/Courier-iso ff 180.00 scf sf
3375 4575 m
gs 1 -1 sc (d2 d3) col0 sh gr
/Courier-iso ff 180.00 scf sf
4575 4200 m
gs 1 -1 sc (index) col0 sh gr
/Courier-iso ff 180.00 scf sf
4050 4875 m
gs 1 -1 sc (d3) col0 sh gr
/Courier-iso ff 180.00 scf sf
1500 5625 m
gs 1 -1 sc ({main}) col0 sh gr
/Courier-iso ff 180.00 scf sf
4050 4275 m
gs 1 -1 sc (d2) col0 sh gr
/Courier-iso ff 180.00 scf sf
3450 5625 m
gs 1 -1 sc (\330) col0 sh gr
/Courier-iso ff 180.00 scf sf
5175 4875 m
gs 1 -1 sc ({Hello!}) col0 sh gr
/Courier-iso ff 180.00 scf sf
2753 5400 m
gs 1 -1 sc (x) col0 sh gr
/Courier-iso ff 180.00 scf sf
1837 5175 m
gs 1 -1 sc (class) col0 sh gr
/Courier-iso ff 180.00 scf sf
2888 5175 m
gs 1 -1 sc (level) col0 sh gr
$F2psEnd
rs
%%EndDocument
@endspecial eop end
%%Page: 8 8
TeXDict begin 8 7 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192 -307
a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.8) cvn H.B /DEST pdfmark
end
-192 -307 a FJ(IEEE)19
b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19 b(ENGINEERING)2823
b(8)-192 -58 y FC(Again,)45 b(box)o(es)h(represent)f(element)h(nodes,)f
(rounded)f(box)o(es)i(are)-192 42 y(template)38 b(nodes,)f(the)i
(circle)f(is)i(a)f(chardata)e(node,)g(and)h(the)h(dots)-192
142 y(represent)e(potentially)g(open)g(gaps.)g(The)h(diamonds)e(are)i
(attrib)n(ute)-192 241 y(nodes,)27 b(and)h Fm(d1)p FC(,)h
Fm(d2)p FC(,)f(and)g Fm(d3)h FC(are)f(fresh)g(gap)g(names.)-192
400 y
SDict begin H.S end
-192 400 a -192 400 a
SDict begin 12 H.A end
-192 400 a -192 400 a
SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.2) cvn H.B /DEST
pdfmark end
-192
400 a 83 x FB(B.)41 b(Con)m(verting)27 b(DTD)i(Sc)o(hemas)f(to)g
(Summary)g(Gr)o(aphs)-109 613 y FC(A)52 b(gi)n(v)o(en)f(DTD)h
Fy(D)i FC(referred)c(to)i(from)e(the)i(program)e(being)-192
713 y(analyzed)26 b(is)i(in)g(Section)584 713 y
SDict begin H.S end
584 713
a FC(III)667 657 y
SDict begin H.R end
667 657 a 667 713 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.3) cvn H.B /ANN pdfmark end
667 713 a 28 w
FC(associated)f(a)h(subset)g(of)f(the)g(summary)-192
813 y(graph)36 b(nodes.)g(In)h(the)g(follo)n(wing,)f(we)i(deri)n(v)o(e)
e(a)h(summary)f(graph)-192 912 y Fs(SG)-74 924 y Fu(D)10
912 y Fz(=)24 b(\()p Fy(R)q(;)14 b(T)7 b(;)14 b(S;)g(P)e
Fz(\))28 b FC(using)h(those)g(nodes)f(such)g(that)i FA(L)p
Fz(\()p Fs(SG)1719 924 y Fu(D)1779 912 y Fz(\))25 b(=)-192
1012 y FA(L)p Fz(\()p Fy(D)r Fz(\))p FC(,)30 b(that)e(is,)h(it)h(is)f
(an)g(e)o(xact)f(model)f(of)h Fy(D)r FC(.)-109 1113 y(As)e(for)e
(template)g(constants,)h(we)g(construct)f(the)h(summary)e(graph)-192
1212 y(as)h(the)g(least)g(solution)e(to)i(a)g(set)g(of)f(constraints.)f
(The)h(algorithm)f(runs)-192 1312 y(in)31 b(linear)g(time)g(in)h(the)f
(size)h(of)f Fy(D)r FC(.)g(First,)h(de\002ne)f Fy(R)d
Fz(=)g FA(f)p Fy(r)r FA(g)j FC(where)-192 1412 y Fy(r)37
b FC(is)e(the)g(element)e(node)g(of)h(the)g Fr(DOCTYPE)e
FC(root)h(element.)g(F)o(or)h(all)-192 1511 y Fy(g)26
b FA(2)d Fy(G)p FC(,)29 b(de\002ne)f Fs(agaps)8 b Fz(\()p
Fy(P)k Fz(\()p Fy(g)s Fz(\)\))24 b(=)f Fs(tgaps)7 b Fz(\()p
Fy(P)12 b Fz(\()p Fy(g)s Fz(\)\))24 b(=)e FA(f)p Fn(CLOSED)p
FA(g)p FC(.)-109 1612 y(F)o(or)j(each)h Fr(ELEMENT)d
FC(corresponding)f(to)k(an)g(element)f(node)g Fy(p)p
FC(,)g(we)-192 1712 y(let)f Fy(n)e Fz(=)h Fs(c)l(ontents)6
b Fz(\()p Fy(p)p Fz(\))24 b FC(and)e(encode)g(the)h(content)f(model)g
(recursi)n(v)o(ely)-192 1811 y(in)32 b(its)g(structure)f(using)g(the)h
(template)f(node)g Fy(n)h FC(associated)f(to)h(each)-192
1911 y(sub-e)o(xpression.)16 b(F)o(or)i(each)g(rule,)g
Fy(g)k FC(is)d(a)g(fresh)f(gap)g(name,)g(and)g(unless)-192
2011 y(otherwise)28 b(mentioned,)e Fs(gaps)8 b Fz(\()p
Fy(n)p Fz(\))23 b(=)g Fy(g)s FC(:)-192 2130 y Fr(#PCDATA)p
FC(:)39 b(Add)31 b Fz(\()p Fy(n;)14 b(g)s(;)g(m)p Fz(\))29
b FA(2)h Fy(T)43 b FC(where)31 b Fy(m)i FC(is)f(the)g(chardata)f(node)
-26 2229 y(for)d Fr(#PCDATA)p FC(.)e(Let)j Fy(S)5 b Fz(\()p
Fy(m)p Fz(\))23 b(=)f(\006)958 2199 y Ft(\003)997 2229
y FC(.)-192 2329 y Fr(ANY)p FC(:)40 b(As)26 b(the)f(rule)g(for)g
Fr(#PCDATA)p FC(,)d(b)n(ut)j(we)h(also)f(add)g Fz(\()p
Fy(n;)14 b(g)s(;)g(m)p Fz(\))23 b FA(2)g Fy(T)-26 2429
y FC(for)28 b(each)g(element)g(node)f Fy(m)p FC(.)-192
2528 y Fr(EMPTY)p FC(:)40 b(F)o(or)28 b(the)g(empty)g(content)f(model,)
h(we)g(let)i Fs(gaps)7 b Fz(\()p Fy(n)p Fz(\))24 b(=)e
Fy(\017)p FC(.)-192 2628 y Fy(E)5 b FC(:)42 b(A)68 b(single)f(element)g
(name)g Fy(E)73 b FC(is)68 b(modeled)e(by)h(adding)-26
2727 y Fz(\()p Fy(n;)14 b(g)s(;)g(m)p Fz(\))23 b FA(2)g
Fy(T)40 b FC(with)29 b Fy(m)g FC(being)e(the)i(element)f(node)f(of)i
Fy(E)5 b FC(.)-192 2827 y Fr(\()p Fy(C)-89 2839 y Fv(1)-52
2827 y Fr(,...,)p Fy(C)227 2839 y Fu(k)266 2827 y Fr(\))p
FC(:)41 b(A)106 b(sequence)e(corresponds)g(to)h(de\002ning)-26
2927 y Fs(gaps)8 b Fz(\()p Fy(n)p Fz(\))56 b(=)e Fy(g)467
2939 y Fv(1)518 2927 y FA(\001)14 b(\001)g(\001)g Fy(g)669
2939 y Fu(k)756 2927 y FC(and)45 b Fz(\()p Fy(n;)14 b(g)1081
2939 y Fu(i)1108 2927 y Fy(;)g(m)1218 2939 y Fu(i)1246
2927 y Fz(\))55 b FA(2)h Fy(T)h FC(where)46 b Fy(m)1873
2939 y Fu(i)-26 3026 y FC(is)29 b(the)g(template)f(node)f(of)i
Fy(C)852 3038 y Fu(i)880 3026 y FC(.)-192 3126 y Fr(\()p
Fy(C)-89 3138 y Fv(1)-52 3126 y Fr(|...|)p Fy(C)227 3138
y Fu(k)266 3126 y Fr(\))p FC(:)41 b(A)34 b(choice)e(corresponds)f(to)i
(adding)e Fz(\()p Fy(n;)14 b(g)s(;)g(m)p Fz(\))31 b FA(2)-26
3226 y Fy(T)40 b FC(for)28 b(each)g(template)g(node)g
Fy(m)h FC(of)f Fy(C)1135 3238 y Fv(1)1172 3226 y Fy(;)14
b(:)g(:)g(:)g(;)g(C)1416 3238 y Fu(k)1457 3226 y FC(.)-192
3325 y Fr(\()p Fy(C)6 b Fr(\)?)p FC(:)41 b(F)o(or)51
b(optional)g(contents,)g(let)h Fz(\()p Fy(n;)14 b(g)s(;)g(m)p
Fz(\))66 b FA(2)h Fy(T)c FC(for)52 b(the)-26 3425 y(template)28
b(node)f Fy(m)i FC(of)g Fy(C)35 b FC(and)28 b(add)g Fy(n)23
b FA(2)g Fs(r)l(emove)l(d)10 b Fz(\()p Fy(P)i Fz(\()p
Fy(g)s Fz(\)\))p FC(.)-192 3524 y Fr(\()p Fy(C)6 b Fr(\)+)p
FC(:)41 b(A)47 b(repetition)f(of)h(one)g(or)g(more)f(items)i(is)g
(encoded)d(by)-26 3624 y(de\002ning)40 b Fs(gaps)8 b
Fz(\()p Fy(n)p Fz(\))48 b(=)f Fy(g)766 3636 y Fv(1)803
3624 y Fy(g)843 3636 y Fv(2)922 3624 y FC(and)41 b(adding)f
Fz(\()p Fy(n;)14 b(g)1511 3636 y Fv(1)1548 3624 y Fy(;)g(m)p
Fz(\))47 b FA(2)h Fy(T)-26 3724 y FC(with)36 b Fy(m)h
FC(being)e(the)h(template)f(node)g(of)h Fy(C)6 b FC(,)36
b Fz(\()p Fy(n;)14 b(g)1534 3736 y Fv(2)1571 3724 y Fy(;)g(n)p
Fz(\))37 b FA(2)g Fy(T)12 b FC(,)-26 3823 y(and)28 b
Fy(n)23 b FA(2)g Fs(r)l(emove)l(d)10 b Fz(\()p Fy(P)i
Fz(\()p Fy(g)746 3835 y Fv(2)783 3823 y Fz(\)\))p FC(.)-192
3923 y Fr(\()p Fy(C)6 b Fr(\)*)p FC(:)41 b(As)25 b(the)f(pre)n(vious)f
(rule)h(b)n(ut)g(adding)f Fy(n)g FA(2)g Fs(r)l(emove)l(d)10
b Fz(\()p Fy(P)i Fz(\()p Fy(g)1778 3935 y Fv(1)1815 3923
y Fz(\)\))p FC(.)-192 4042 y(F)o(or)40 b(each)f Fr(ATTLIST)f
FC(describing)h(an)h(attrib)n(ute)f Fy(A)i FC(corresponding)-192
4142 y(to)35 b(an)f(attrib)n(ute)g(node)g Fy(n)p FC(,)h(let)g
Fy(S)5 b Fz(\()p Fy(n)p Fz(\))34 b(=)g FA(f)p Fy(s)1136
4154 y Fv(1)1173 4142 y Fy(;)14 b(:)g(:)g(:)f(;)h(s)1396
4154 y Fu(k)1437 4142 y FA(g)35 b FC(if)g(the)f(v)n(alid)-192
4241 y(v)n(alues)29 b(of)h Fy(A)h FC(are)e(described)g(by)g(an)h
(enumeration)e Fy(s)1428 4253 y Fv(1)1465 4241 y Fy(;)14
b(:)g(:)g(:)f(;)h(s)1688 4253 y Fu(k)1729 4241 y FC(,)30
b(and)-192 4341 y(let)e Fy(S)5 b Fz(\()p Fy(n)p Fz(\))23
b(=)g(\006)260 4311 y Ft(\003)326 4341 y FC(otherwise.)j(If)h
Fy(A)h FC(is)h(declared)d(as)i Fr(#IMPLIED)p FC(,)c(then)-192
4441 y(add)k Fy(n)23 b FA(2)g Fs(r)l(emove)l(d)10 b Fz(\()p
Fy(P)i Fz(\()p Fy(g)s Fz(\)\))29 b FC(for)f(some)g Fy(g)s
FC(.)-109 4541 y(As)45 b(an)f(e)o(xample,)e(the)j(DTD)f(schema)f(for)h
(recipe)f(collections)-192 4641 y(from)28 b(Section)277
4641 y
SDict begin H.S end
277 4641 a FC(II)332 4586 y
SDict begin H.R end
332 4586 a 332 4641
a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.2) cvn H.B /ANN pdfmark end
332 4641 a 30 w FC(is)h(con)m(v)o(erted)d(to)j(the)g(follo)n(wing)e
(summary)g(graph)-192 4741 y(\(abbre)n(viated)f(with)j(\223.)12
b(.)g(.)g(\224\):)-67 5270 y @beginspecial 0 @llx 0 @lly
351 @urx 88 @ury 2211 @rwi @setspecial
%%BeginDocument: dtd.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: dtd.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3d
%%CreationDate: Tue Oct 7 14:48:42 2003
%%For: amoeller@harald (Anders Moller)
%%BoundingBox: 0 0 351 88
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 88 moveto 0 0 lineto 351 0 lineto 351 88 lineto closepath clip newpath
9.7 183.4 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
/Symbol ff 180.00 scf sf
5475 2925 m
gs 1 -1 sc (S) col0 sh gr
/Courier ff 180.00 scf sf
5580 2880 m
gs 1 -1 sc (*) col0 sh gr
7.500 slw
% Ellipse
n 4950 2850 150 150 0 360 DrawEllipse gs col0 s gr
% Ellipse
n 3525 1650 50 50 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
% Ellipse
n 2025 3000 50 50 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr
% Polyline
30.000 slw
gs clippath
1740 2580 m 1740 2520 l 1589 2520 l 1709 2550 l 1589 2580 l cp
eoclip
n 1350 2550 m
1725 2550 l gs col0 s gr gr
% arrowhead
7.500 slw
n 1589 2580 m 1709 2550 l 1589 2520 l 1589 2580 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 1830 2400 m 1725 2400 1725 2595 105 arcto 4 {pop} repeat
1725 2700 2295 2700 105 arcto 4 {pop} repeat
2400 2700 2400 2505 105 arcto 4 {pop} repeat
2400 2400 1830 2400 105 arcto 4 {pop} repeat
cp gs col0 s gr
% Polyline
gs clippath
2926 2883 m 2950 2828 l 2811 2768 l 2910 2843 l 2787 2823 l cp
eoclip
n 2400 2625 m
2925 2850 l gs col0 s gr gr
% arrowhead
n 2787 2823 m 2910 2843 l 2811 2768 l col0 s
% Polyline
gs clippath
2950 2271 m 2926 2216 l 2787 2276 l 2910 2257 l 2811 2331 l cp
eoclip
n 2400 2475 m
2925 2250 l gs col0 s gr gr
% arrowhead
n 2811 2331 m 2910 2257 l 2787 2276 l col0 s
% Polyline
n 3030 2100 m 2925 2100 2925 2295 105 arcto 4 {pop} repeat
2925 2400 3495 2400 105 arcto 4 {pop} repeat
3600 2400 3600 2205 105 arcto 4 {pop} repeat
3600 2100 3030 2100 105 arcto 4 {pop} repeat
cp gs col0 s gr
% Polyline
gs clippath
3990 2280 m 3990 2220 l 3838 2220 l 3958 2250 l 3838 2280 l cp
eoclip
n 3600 2250 m
3975 2250 l gs col0 s gr gr
% arrowhead
n 3838 2280 m 3958 2250 l 3838 2220 l col0 s
% Polyline
gs clippath
3558 1645 m 3501 1626 l 3453 1770 l 3520 1666 l 3510 1789 l cp
eoclip
n 3375 2100 m
3525 1650 l gs col0 s gr gr
% arrowhead
n 3510 1789 m 3520 1666 l 3453 1770 l col0 s
% Polyline
gs clippath
1995 3015 m 2055 3015 l 2055 2863 l 2025 2983 l 1995 2863 l cp
eoclip
n 2025 2700 m
2025 3000 l gs col0 s gr gr
% arrowhead
n 1995 2863 m 2025 2983 l 2055 2863 l col0 s
% Polyline
30.000 slw
gs clippath
5115 2280 m 5115 2220 l 4964 2220 l 5084 2250 l 4964 2280 l cp
eoclip
n 4725 2250 m
5100 2250 l gs col0 s gr gr
% arrowhead
7.500 slw
n 4964 2280 m 5084 2250 l 4964 2220 l 4964 2280 l cp gs 0.00 setgray ef gr col0 s
% Polyline
30.000 slw
n 3975 2100 m 4725 2100 l 4725 2400 l 3975 2400 l
cp gs col0 s gr
% Polyline
n 150 2400 m 1350 2400 l 1350 2700 l 150 2700 l
cp gs col0 s gr
% Polyline
7.500 slw
gs clippath
165 2580 m 165 2520 l 13 2520 l 133 2550 l 13 2580 l cp
eoclip
n -150 2550 m
150 2550 l gs col0 s gr gr
% arrowhead
n 13 2580 m 133 2550 l 13 2520 l col0 s
% Polyline
30.000 slw
n 2925 2700 m 3600 2700 l 3600 3000 l 2925 3000 l
cp gs col0 s gr
% Polyline
7.500 slw
gs clippath
5490 2880 m 5490 2820 l 5338 2820 l 5458 2850 l 5338 2880 l cp
eoclip
n 5100 2850 m
5475 2850 l gs col0 s gr gr
% arrowhead
n 5338 2880 m 5458 2850 l 5338 2820 l col0 s
% Polyline
gs clippath
4815 2880 m 4815 2820 l 4663 2820 l 4783 2850 l 4663 2880 l cp
eoclip
n 4425 2850 m
4800 2850 l gs col0 s gr gr
% arrowhead
n 4663 2880 m 4783 2850 l 4663 2820 l col0 s
% Polyline
n 4080 2700 m 3975 2700 3975 2895 105 arcto 4 {pop} repeat
3975 3000 4320 3000 105 arcto 4 {pop} repeat
4425 3000 4425 2805 105 arcto 4 {pop} repeat
4425 2700 4080 2700 105 arcto 4 {pop} repeat
cp gs col0 s gr
% Polyline
30.000 slw
gs clippath
3990 2880 m 3990 2820 l 3839 2820 l 3959 2850 l 3839 2880 l cp
eoclip
n 3600 2850 m
3975 2850 l gs col0 s gr gr
% arrowhead
7.500 slw
n 3839 2880 m 3959 2850 l 3839 2820 l 3839 2880 l cp gs 0.00 setgray ef gr col0 s
% Polyline
2 slj
gs clippath
3049 2122 m 3107 2106 l 3069 1960 l 3071 2084 l 3011 1975 l cp
eoclip
n 2925 2175 m 2923 2174 l 2918 2173 l 2910 2170 l 2898 2165 l 2883 2160 l
2866 2153 l 2848 2145 l 2828 2135 l 2809 2125 l 2789 2114 l
2770 2100 l 2751 2085 l 2733 2068 l 2716 2048 l 2700 2025 l
2688 2001 l 2679 1979 l 2672 1959 l 2668 1943 l 2665 1929 l
2664 1918 l 2663 1909 l 2663 1900 l 2663 1892 l 2664 1883 l
2665 1873 l 2668 1861 l 2672 1847 l 2679 1832 l 2688 1815 l
2700 1800 l 2714 1789 l 2728 1780 l 2742 1774 l 2755 1769 l
2766 1765 l 2776 1762 l 2785 1759 l 2793 1758 l 2800 1756 l
2808 1755 l 2816 1755 l 2825 1756 l 2836 1757 l 2850 1761 l
2866 1766 l 2884 1774 l 2904 1785 l 2925 1800 l 2945 1818 l
2964 1839 l 2980 1860 l 2994 1882 l 3007 1905 l 3018 1928 l
3028 1951 l 3036 1974 l 3045 1997 l 3052 2019 l 3058 2040 l
3064 2058 l 3068 2073 l
3075 2100 l gs col0 s gr gr
% arrowhead
0 slj
n 3011 1975 m 3071 2084 l 3069 1960 l col0 s
/Courier ff 180.00 scf sf
1800 2625 m
gs 1 -1 sc (d1 d2) col0 sh gr
/Courier ff 180.00 scf sf
3000 2325 m
gs 1 -1 sc (d3 d4) col0 sh gr
/Courier ff 180.00 scf sf
4050 2325 m
gs 1 -1 sc (recipe) col0 sh gr
/Courier ff 180.00 scf sf
3000 2925 m
gs 1 -1 sc (title) col0 sh gr
/Courier ff 180.00 scf sf
1725 2925 m
gs 1 -1 sc (d2) col0 sh gr
/Courier ff 180.00 scf sf
2475 2925 m
gs 1 -1 sc (d1) col0 sh gr
/Courier ff 180.00 scf sf
2475 2325 m
gs 1 -1 sc (d2) col0 sh gr
/Courier ff 180.00 scf sf
3675 2175 m
gs 1 -1 sc (d3) col0 sh gr
/Courier ff 180.00 scf sf
225 2625 m
gs 1 -1 sc (collection) col0 sh gr
/Courier ff 180.00 scf sf
4500 2775 m
gs 1 -1 sc (d5) col0 sh gr
/Courier ff 180.00 scf sf
4050 2925 m
gs 1 -1 sc (d5) col0 sh gr
/Courier ff 270.00 scf sf
5160 2272 m
gs 1 -1 sc (...) col0 sh gr
/Courier ff 180.00 scf sf
3525 1950 m
gs 1 -1 sc (d4) col0 sh gr
/Courier ff 180.00 scf sf
2400 1875 m
gs 1 -1 sc (d4) col0 sh gr
$F2psEnd
rs
%%EndDocument
@endspecial -192 5421 a(The)28 b(gap)g(names)g Fm(d1)p
FC(,)g(.)12 b(.)g(.)g(,)30 b Fm(d5)e FC(are)h(fresh)f(names.)-109
5522 y(This)34 b(construction)d(of)i(summary)f(graphs)h(from)f(DTD)i
(schemas)-192 5621 y(indicates)24 b(that)g(our)f(analysis)h(can)g(be)g
(e)o(xtended)e(to)i(more)f(e)o(xpressi)n(v)o(e)2000 -58
y(schema)34 b(languages)g(than)h(DTD.)g(F)o(or)g(e)o(xample,)e(we)j
(immediately)2000 42 y(support)20 b(unrestricted)h(re)o(gular)f(e)o
(xpressions)h(as)i(content)e(models)g(and)2000 142 y(arbitrary)k(re)o
(gular)g(languages)g(for)i(describing)e(v)n(alid)h(character)g(data)
2000 241 y(and)33 b(attrib)n(ute)h(v)n(alues;)f(ho)n(we)n(v)o(er)m(,)f
(we)i(defer)f(a)i(full)f(generalization)2000 341 y(to,)26
b(for)g(e)o(xample,)e(the)j(DSD2)f(schema)g(language,)e(which,)i(as)h
(pre)n(vi-)2000 441 y(ously)20 b(mentioned,)f(our)h(algorithm)f(for)i
(v)n(alidating)e(summary)h(graphs)2000 540 y(relati)n(v)o(e)27
b(to)i(schemas)f(already)g(supports.)2000 710 y
SDict begin H.S end
2000
710 a 2000 710 a
SDict begin 12 H.A end
2000 710 a 2000 710 a
SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.3) cvn H.B /DEST
pdfmark end
2000 710 a 84
x FB(C.)41 b(Symbolic)28 b(XP)-7 b(ath)28 b(Evaluation)2083
930 y FC(T)-7 b(o)49 b(model)e(the)i(XML)f(operations)f(that)i(in)m(v)n
(olv)o(e)e(XP)o(ath,)h(we)2000 1030 y(symbolically)42
b(e)n(v)n(aluate)g(a)i(gi)n(v)o(en)d(XP)o(ath)j(location)e(path)h
Fy(p)g FC(on)g(a)2000 1129 y(summary)38 b(graph)h Fs(SG)51
b Fz(=)44 b(\()p Fy(R)q(;)14 b(T)7 b(;)14 b(S;)g(P)e
Fz(\))p FC(.)39 b(This)h(e)n(v)n(aluation)e(is)j(e)o(x-)2000
1229 y(pressed)c(by)g(a)h(function)e Fs(eval)48 b FC(that)37
b(maps)h Fz(\()p Fs(SG)7 b Fy(;)14 b(p)p Fz(\))38 b FC(into)g(a)g
(status)2000 1328 y(map)g(of)h(the)g(form)g Fy(N)2701
1340 y Ft(E)2771 1328 y FA([)27 b Fy(N)2920 1340 y Ft(A)3004
1328 y FA([)f Fy(N)3152 1340 y Ft(C)3238 1328 y FA(!)43
b(S)j FC(where)39 b FA(S)49 b Fz(=)42 b FA(f)p Fn(ALL)p
Fy(;)2000 1428 y Fn(SOME)p Fy(;)14 b Fn(DEFINITE)q Fy(;)g
Fn(NONE)p Fy(;)g Fn(NEVER)p Fy(;)g Fn(DONTKNO)n(W)o FA(g)p
FC(.)45 b(F)o(or)h(a)g(concrete)2000 1528 y(unfolding)26
b Fy(x)f FA(2)g(L)p Fz(\()p Fs(SG)8 b Fz(\))p FC(,)30
b(a)g(gi)n(v)o(en)e(element,)g(attrib)n(ute,)h(or)g(chardata)2000
1627 y(node)i Fy(n)h FC(from)f Fs(SG)39 b FC(may)32 b(correspond)d(to)j
(a)g(number)e(of)i(XML)f(tree)2000 1727 y(nodes)45 b(in)h
Fy(x)p FC(.)g(A)g(concrete)f(e)n(v)n(aluation)f(of)h
Fy(p)i FC(on)e Fy(x)i FC(may)e(select)2000 1827 y(only)30
b(some)h(of)h(those)f(nodes.)f(Informally)-5 b(,)28 b(the)k(possible)f
(v)n(alues)g(of)2000 1926 y Fs(eval)9 b Fz(\()p Fs(SG)f
Fy(;)14 b(p)p Fz(\)\()p Fy(n)p Fz(\))29 b FC(ha)n(v)o(e)f(the)h(follo)n
(wing)d(meaning:)2000 2048 y Fn(ALL)p FC(:)42 b(in)32
b(e)n(v)o(ery)f(unfolding,)f(e)n(v)o(ery)h(tree)h(node)g(corresponding)
d(to)j Fy(n)2166 2148 y FC(is)d(selected)g(by)f Fy(p)p
FC(;)2000 2248 y Fn(SOME)p FC(:)42 b(in)28 b(e)n(v)o(ery)f(unfolding,)e
(at)j(least)h(one)e(tree)h(node)f(correspond-)2166 2347
y(ing)h(to)h Fy(n)g FC(is)g(selected)f(by)g Fy(p)p FC(;)2000
2447 y Fn(DEFINITE)p FC(:)42 b(the)25 b(conditions)e(for)h
Fn(ALL)i FC(and)e Fn(SOME)i FC(are)f(both)f(satis\002ed;)2000
2546 y Fn(NONE)p FC(:)41 b(in)26 b(e)n(v)o(ery)e(unfolding,)e(no)j
(tree)g(node)g(corresponding)c(to)26 b Fy(n)g FC(is)2166
2646 y(selected)i(by)g Fy(p)p FC(;)2000 2746 y Fn(NEVER)p
FC(:)42 b(the)35 b(conditions)e(for)h Fn(ALL)i FC(and)e
Fn(NONE)h FC(are)g(both)f(satis\002ed,)2166 2845 y(that)f(is,)g(in)h(e)
n(v)o(ery)d(unfolding,)f(no)j(tree)g(node)f(corresponds)e(to)2166
2945 y Fy(n)p FC(;)f(and)2000 3045 y Fn(DONTKNO)n(W)p
FC(:)40 b(none)28 b(of)g(the)g(abo)o(v)o(e)f(can)h(be)h(determined.)
2000 3167 y(These)39 b(six)h(v)n(alues)e(form)h(a)g(partial)g(order)m
(,)f FA(v)p FC(,)h(with)g Fn(DONTKNO)n(W)2000 3266 y
FC(as)32 b(top)g(element,)e Fn(ALL)j FC(and)e Fn(SOME)i
FC(abo)o(v)o(e)d Fn(DEFINITE)p FC(,)i(and)g Fn(ALL)g
FC(and)2000 3366 y Fn(NONE)d FC(abo)o(v)o(e)e Fn(NEVER)p
FC(:)2698 3899 y @beginspecial 0 @llx 0 @lly 116 @urx
63 @ury 453 @rhi @setspecial
%%BeginDocument: po.eps
%!PS-Adobe-2.0 EPSF-2.0
%%Title: po.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3d
%%CreationDate: Fri Jan 30 11:03:29 2004
%%For: amoeller@uzi (Anders Moller)
%%BoundingBox: 0 0 116 63
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
newpath 0 63 moveto 0 0 lineto 116 0 lineto 116 63 lineto closepath clip newpath
-229.5 279.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
% Polyline
7.500 slw
n 4725 3825 m
4725 3975 l gs col0 s gr
% Polyline
n 4875 3825 m
5250 3975 l gs col0 s gr
% Polyline
n 5400 4275 m
5250 4425 l gs col0 s gr
% Polyline
n 4575 3825 m
4200 3975 l gs col0 s gr
% Polyline
n 4875 4275 m
5025 4425 l gs col0 s gr
% Polyline
n 4125 4275 m
4275 4425 l gs col0 s gr
% Polyline
n 4650 4275 m
4500 4425 l gs col0 s gr
/Helvetica ff 180.00 scf sf
4275 3750 m
gs 1 -1 sc (DONTKNOW) col0 sh gr
/Helvetica ff 180.00 scf sf
4575 4200 m
gs 1 -1 sc (ALL) col0 sh gr
/Helvetica ff 180.00 scf sf
5175 4200 m
gs 1 -1 sc (SOME) col0 sh gr
/Helvetica ff 180.00 scf sf
3825 4200 m
gs 1 -1 sc (NONE) col0 sh gr
/Helvetica ff 180.00 scf sf
3975 4650 m
gs 1 -1 sc (NEVER) col0 sh gr
/Helvetica ff 180.00 scf sf
4875 4650 m
gs 1 -1 sc (DEFINITE) col0 sh gr
$F2psEnd
rs
%%EndDocument
@endspecial 2083 4051 a(T)-7 b(o)36 b(initialize)h(the)f(XP)o(ath)h(e)
n(v)n(aluation,)d(we)j(modify)e Fs(SG)44 b FC(by)36 b(in-)2000
4151 y(troducing)24 b(a)j(dummy)e(root)h(element)f Fs(r)l(o)l(ot)35
b FC(and)26 b(a)h(dummy)e(template)2000 4250 y(node)34
b Fy(t)i FC(where)e Fs(c)l(ontents)6 b Fz(\()p Fs(r)l(o)l(ot)i
Fz(\))36 b(=)f Fy(t)h FC(and)e Fs(gaps)8 b Fz(\()p Fy(t)p
Fz(\))36 b(=)f Fy(g)s FC(,)g(adding)2000 4350 y FA(f)p
Fz(\()p Fs(r)l(o)l(ot)7 b Fy(;)14 b(g)s(;)g(n)p Fz(\))23
b FA(j)g Fy(n)g FA(2)g Fy(R)q FA(g)i FC(to)g Fy(T)12
b FC(,)24 b(and)g(changing)f Fy(R)j FC(to)f FA(f)p Fs(r)l(o)l(ot)7
b FA(g)p FC(.)25 b(In)f(the)2000 4450 y(follo)n(wing,)i
Fs(SG)37 b FC(refers)28 b(to)g(this)h(modi\002ed)f(summary)f(graph.)
2083 4552 y(W)-7 b(e)30 b(de\002ne)f Fs(eval)39 b FC(as)30
b(an)f(e)n(v)n(aluation)f(of)h(the)g(gi)n(v)o(en)f(location)g(path)2000
4652 y(relati)n(v)o(e)f(to)i(an)g(initial)f(status)i(map)e
Fy(\033)3139 4622 y Fw(SG)3136 4672 y Fv(0)3239 4652
y FC(:)2255 4820 y Fs(eval)10 b Fz(\()p Fs(SG)d Fy(;)14
b(p)p Fz(\))23 b(=)2776 4753 y Fk(\000)2814 4820 y Fs(p)l(ath)2971
4783 y Fw(SG)2971 4840 y Fu(p)3070 4820 y Fz(\()p Fy(\033)3152
4786 y Fw(SG)3149 4840 y Fv(0)3252 4820 y Fz(\))3284
4753 y Fk(\001)3323 4820 y Fz([)p Fs(r)l(o)l(ot)31 b
FA(7!)23 b Fn(NONE)p Fz(])2421 5133 y Fy(\033)2471 5098
y Fw(SG)2468 5153 y Fv(0)2571 5133 y Fz(\()p Fy(n)p Fz(\))g(=)2796
4937 y Fk(8)2796 5012 y(>)2796 5037 y(<)2796 5187 y(>)2796
5211 y(:)2870 5016 y Fn(DEFINITE)83 b FC(if)29 b Fy(n)23
b Fz(=)g Fs(r)l(o)l(ot)2870 5136 y Fn(NONE)193 b FC(if)29
b Fs(r)l(o)l(ot)i Fj( )23 b Fy(n)2870 5255 y Fn(NEVER)157
b FC(otherwise)2000 5422 y(The)41 b(notation)f Fy(f)9
b Fz([)p Fy(x)47 b FA(7!)g Fy(y)s Fz(])42 b FC(denotes)e(the)i
(function)d(that)j(is)g(equal)2000 5522 y(to)d Fy(f)48
b FC(e)o(xcept)38 b(that)h(it)g(maps)g Fy(x)h FC(to)f
Fy(y)s FC(.)f(The)h FB(r)m(eac)o(hability)e(r)m(elation)p
FC(,)2000 5621 y Fj( )p FC(,)29 b(is)h(de\002ned)e(as)i(the)f(transiti)
n(v)o(e)g(closure)f(of)h(the)g(follo)n(wing)e(rules:)p
eop end
%%Page: 9 9
TeXDict begin 9 8 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192 -307
a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.9) cvn H.B /DEST pdfmark
end
-192 -307 a FJ(IEEE)19
b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19 b(ENGINEERING)2823
b(9)-192 -58 y Fy(n)23 b Fj( )g Fs(c)l(ontents)6 b Fz(\()p
Fy(n)p Fz(\))p FC(,)26 b Fy(n)d Fj( )g Fy(a)j FC(for)e(all)i
Fy(a)d FA(2)g Fs(attr)9 b Fz(\()p Fy(n)p Fz(\))p FC(,)26
b(and)f Fy(n)e Fj( )g Fy(m)i FC(for)-192 42 y(all)k Fz(\()p
Fy(n;)14 b(g)s(;)g(m)p Fz(\))23 b FA(2)g Fy(T)12 b FC(.)-109
143 y(A)21 b(location)f(path)g Fy(p)j Fz(=)g Fy(s)617
155 y Fv(1)654 143 y Fr(/)p Fy(:)14 b(:)g(:)f Fr(/)p
Fy(s)891 155 y Fu(k)953 143 y FC(is)22 b(e)n(v)n(aluated)d
(compositionally)-192 243 y(on)28 b(each)g(step:)218
405 y Fs(p)l(ath)375 368 y Fw(SG)375 426 y Fu(s)406 434
y Fi(1)439 426 y Fq(/)p Fu(:::)o Fq(/)p Fu(s)591 435
y Fh(k)655 405 y Fz(=)22 b Fs(step)890 371 y Fw(SG)890
426 y Fu(s)921 435 y Fh(k)1008 405 y FA(\016)c(\001)c(\001)g(\001)k
(\016)g Fs(step)1390 371 y Fw(SG)1390 426 y Fu(s)1421
434 y Fi(1)-192 567 y FC(where)37 b(a)i(single)e(step)h
Fy(s)j Fz(=)f Fs(axis)7 b Fr(::)o Fs(test)g Fr([)p Fs(pr)l(e)l(d)i
Fr(])38 b FC(is)h(e)n(v)n(aluated)d(by)-192 667 y(considering)26
b(each)j(of)f(the)g(three)g(constituents:)-59 829 y Fs(step)88
795 y Fw(SG)88 850 y(axis)5 b Fq(::)p Fw(test)g Fq([)p
Fw(pr)m(e)m(d)g Fq(])601 829 y Fz(=)22 b Fs(\014lter)866
792 y Fw(SG)866 850 y(pr)m(e)m(d)1018 829 y FA(\016)c
Fs(\014lter)1255 792 y Fw(SG)1255 850 y(test)1389 829
y FA(\016)g Fs(move)1642 795 y Fw(SG)1642 850 y(axis)-192
991 y FC(Recall)36 b(that)f Fs(axis)43 b FC(is)36 b(either)f
Fr(child)p FC(,)f Fr(descendant-or-se)o(lf)o FC(,)c(or)-192
1091 y Fr(attribute)p FC(,)25 b Fs(test)36 b FC(is)29
b(either)f Fr(text\(\))p FC(,)e Fr(node\(\))p FC(,)h
Fr(*)p FC(,)h(or)g(an)g(element)-192 1191 y(or)e(attrib)n(ute)g(name,)g
(and)f Fs(pr)l(e)l(d)37 b FC(is)27 b(either)f(a)h(nested)f(location)f
(path)h(or)-192 1290 y(an)i(e)o(xpression)f(of)i(another)e(type.)-109
1391 y(The)h(function)f Fs(move)548 1361 y Fw(SG)548
1413 y(axis)702 1391 y FC(models)h(the)g(e)n(v)n(alution)f(of)i(an)f
(axis:)-192 2114 y Fs(move)1 2080 y Fw(SG)1 2135 y(axis)126
2114 y Fz(\()p Fy(\033)s Fz(\)\()p Fy(n)p Fz(\))c(=)466
1496 y Fk(8)466 1570 y(>)466 1595 y(>)466 1620 y(>)466
1645 y(>)466 1670 y(>)466 1695 y(>)466 1720 y(>)466 1745
y(>)466 1769 y(>)466 1794 y(>)466 1819 y(>)466 1844 y(>)466
1869 y(>)466 1894 y(>)466 1919 y(>)466 1944 y(>)466 1969
y(>)466 1994 y(>)466 2019 y(<)466 2168 y(>)466 2193 y(>)466
2218 y(>)466 2243 y(>)466 2268 y(>)466 2293 y(>)466 2317
y(>)466 2342 y(>)466 2367 y(>)466 2392 y(>)466 2417 y(>)466
2442 y(>)466 2467 y(>)466 2492 y(>)466 2517 y(>)466 2542
y(>)466 2567 y(>)466 2591 y(>)466 2616 y(:)540 1559 y
Fn(ALL)149 b FC(if)29 b Fz(\011)952 1529 y Fw(SG)952
1580 y(axis)1077 1559 y Fz(\()p Fy(\033)n(;)14 b(n)p
Fz(\))42 b FA(_)g Fy(\033)s Fz(\()p Fy(n)p Fz(\))24 b(=)f
Fn(NEVER)540 1699 y(SOME)87 b FC(if)29 b FA(9)p Fy(m)23
b Fz(:)g Fy(m)1192 1644 y Fv(!)1181 1699 y Fy(.)1223
1711 y Fw(axis)1366 1699 y Fy(n)g FA(^)1088 1818 y Fy(\033)s
Fz(\()p Fy(m)p Fz(\))h FA(v)e Fn(SOME)540 1938 y(DEFINITE)83
b FC(if)29 b(the)g(conditions)e(for)h Fn(ALL)h FC(and)922
2057 y Fn(SOME)g FC(are)g(both)f(satis\002ed)540 2197
y Fn(NONE)85 b FC(if)29 b FA(8)p Fy(m)23 b Fz(:)g Fy(m)1182
2142 y Fv(?)1177 2197 y Fy(.)1218 2209 y Fw(axis)1362
2197 y Fy(n)f FA(\))1088 2317 y Fy(\033)s Fz(\()p Fy(m)p
Fz(\))i FA(v)e Fn(NONE)540 2436 y(NEVER)84 b FC(if)28
b(the)h(conditions)e(for)h Fn(ALL)h FC(and)855 2556 y
Fn(NONE)g FC(are)g(both)e(satis\002ed)540 2675 y Fn(DONTKNO)n(W)82
b FC(otherwise)-192 2878 y(The)27 b(relation)g Fy(m)342
2823 y Fv(?)337 2878 y Fy(.)378 2890 y Fw(axis)520 2878
y Fy(n)h FC(is)g(satis\002ed)h(if)f(there)f(e)o(xists)h(an)f(unfolding)
-192 2977 y(starting)22 b(from)f Fy(m)i FC(and)f(considering)e(only)i
(the)h(nodes)e(corresponding)-192 3099 y(to)29 b Fs(axis)37
b FC(such)28 b(that)h Fy(n)h FC(is)g(in)m(v)n(olv)o(ed.)c(Con)m(v)o
(ersely)-5 b(,)27 b Fy(m)1435 3044 y Fv(!)1423 3099 y
Fy(.)1465 3111 y Fw(axis)1609 3099 y Fy(n)i FC(means)-192
3199 y(that)34 b FB(e)o(very)f FC(unfolding)e(in)m(v)n(olv)o(es)h
Fy(n)i FC(if)f(starting)h(from)e Fy(m)i FC(and)f(con-)-192
3298 y(sidering)28 b(only)g(the)h(nodes)f(that)h(correspond)d(to)j
Fs(axis)7 b FC(.)29 b(W)-7 b(e)30 b(omit)f(the)-192 3398
y(formal)37 b(de\002nition,)f(which)h(is)i(straightforw)o(ard)c(b)n(ut)
j(tedious.)f(The)-192 3498 y(predicate)27 b Fz(\011)206
3468 y Fw(SG)206 3519 y(axis)360 3498 y FC(models)h(the)g(condition)f
(for)h(the)g Fn(ALL)i FC(status:)-192 3792 y Fz(\011)-127
3758 y Fw(SG)-127 3812 y(axis)-2 3792 y Fz(\()p Fy(\033)n(;)14
b(n)p Fz(\))24 b(=)305 3597 y Fk(8)305 3671 y(>)305 3696
y(<)305 3846 y(>)305 3871 y(:)379 3686 y FA(8)p Fy(m)f
Fz(:)g Fy(m)664 3630 y Fv(?)659 3686 y Fy(.)700 3698
y Fw(axis)844 3686 y Fy(n)g FA(\))g Fy(\033)s Fz(\()p
Fy(m)p Fz(\))h FA(v)e Fn(ALL)402 3805 y FA(^)i Fy(n)f
FA(6)p Fz(=)f Fs(r)l(o)l(ot)79 b FC(if)29 b Fs(axis)h
FA(2)23 b(f)p Fr(child)n Fy(;)14 b Fr(attribute)l FA(g)379
3925 y Fy( )436 3895 y Fw(SG)433 3945 y Fu(\033)536 3925
y Fz(\()p Fy(n)p Fz(\))118 b FC(if)29 b Fs(axis)h Fz(=)23
b Fr(descendant-or-se)o(lf)-192 4093 y FC(where)28 b
Fy( )97 4063 y Fw(SG)94 4113 y Fu(\033)226 4093 y FC(is)h(the)f(least)i
(solution)d(to)i(the)g(equation)-192 4245 y Fy( )-135
4215 y Fw(SG)-138 4266 y Fu(\033)-35 4245 y Fz(\()p Fy(n)p
Fz(\))23 b(=)-47 4379 y Fy(\033)s Fz(\()p Fy(n)p Fz(\))h
FA(v)f Fn(ALL)41 b FA(_)485 4312 y Fk(\000)523 4379 y
Fy(n)23 b FA(6)p Fz(=)g FB(r)l(oot)18 b FA(^)h(8)p Fy(m)k
Fz(:)g Fy(m)1195 4324 y Fv(?)1190 4379 y Fy(.)1232 4391
y Fq(child)1409 4379 y Fy(n)g FA(\))g Fy( )1645 4349
y Fw(SG)1642 4399 y Fu(\033)1744 4379 y Fz(\()p Fy(m)p
Fz(\))1881 4312 y Fk(\001)-109 4537 y FC(The)36 b(function)f
Fs(\014lter)548 4499 y Fw(SG)548 4557 y(test)701 4537
y FC(changes)h(the)g(status)h(of)f(a)h(node)f Fy(n)h
FC(to)-192 4636 y Fn(NONE)30 b FC(if)f(the)g(kind)g(and)f(name)h(of)g
Fy(n)g FC(does)g(not)g(match)g Fs(test)7 b FC(,)30 b(unless)-192
4736 y(the)f(status)g(is)g(already)f Fn(NEVER)h FC(in)g(which)f(case)h
(it)g(is)h(unchanged.)-109 4837 y(If)j Fs(pr)l(e)l(d)43
b FC(is)35 b(a)f(location)e(path)h Fy(p)853 4807 y Ft(0)876
4837 y FC(,)h(then)f(we)h(de\002ne)f(tw)o(o)g(f)o(amilies)-192
4937 y(of)i(status)h(maps,)g Fy(\033)421 4906 y Ft(0)418
4957 y Fu(n)499 4937 y FC(and)f Fy(\033)705 4906 y Ft(00)702
4957 y Fu(n)784 4937 y FC(for)g(each)g Fy(n)h FA(2)h
Fy(N)9 b FC(,)35 b(by)h(recursi)n(v)o(ely)-192 5036 y(applying)27
b Fs(p)l(ath)7 b FC(:)182 5317 y Fy(\033)232 5283 y Ft(0)229
5337 y Fu(n)275 5317 y Fz(\()p Fy(m)p Fz(\))23 b(=)523
5122 y Fk(8)523 5196 y(>)523 5221 y(<)523 5371 y(>)523
5396 y(:)597 5200 y Fy(\033)s Fz(\()p Fy(n)p Fz(\))148
b FC(if)28 b Fy(m)23 b Fz(=)g Fy(n)597 5320 y Fn(NEVER)84
b FC(if)28 b Fy(\033)s Fz(\()p Fy(m)p Fz(\))c(=)f Fn(NEVER)597
5440 y(NONE)120 b FC(otherwise)545 5621 y Fy(\033)595
5587 y Ft(00)592 5642 y Fu(n)661 5621 y Fz(=)23 b Fs(p)l(ath)906
5584 y Fw(SG)906 5642 y Fu(p)940 5625 y Fp(0)1006 5621
y Fz(\()p Fy(\033)1088 5587 y Ft(0)1085 5642 y Fu(n)1130
5621 y Fz(\))2000 -58 y FC(From)f(these)g(status)h(maps,)f(we)h(no)n(w)
e(de\002ne)h(the)g(function)f Fs(\014lter)3938 -95 y
Fw(SG)3938 -37 y(pr)m(e)m(d)4071 -58 y FC(,)2000 42 y(which)28
b(models)g(the)g(predicate)f(\002ltering:)2055 438 y
Fs(\014lter)2233 401 y Fw(SG)2233 458 y Fu(p)2267 442
y Fp(0)2332 438 y Fz(\()p Fy(\033)s Fz(\)\()p Fy(n)p
Fz(\))e(=)2672 118 y Fk(8)2672 193 y(>)2672 218 y(>)2672
243 y(>)2672 268 y(>)2672 292 y(>)2672 317 y(>)2672 342
y(<)2672 492 y(>)2672 517 y(>)2672 542 y(>)2672 566 y(>)2672
591 y(>)2672 616 y(>)2672 641 y(:)2746 202 y Fn(NEVER)248
b FC(if)29 b Fy(\033)s Fz(\()p Fy(n)p Fz(\))24 b(=)e
Fn(NEVER)2746 321 y(NONE)284 b FC(if)29 b Fy(\033)s Fz(\()p
Fy(n)p Fz(\))24 b FA(6)p Fz(=)e Fn(NEVER)i FA(^)3280
441 y(8)p Fy(m)f Fz(:)g Fy(\033)3518 411 y Ft(00)3515
461 y Fu(n)3561 441 y Fz(\()p Fy(m)p Fz(\))h FA(v)e Fn(NONE)2746
560 y Fy(\033)s Fz(\()p Fy(n)p Fz(\))312 b FC(if)29 b
FA(9)p Fy(m)23 b Fz(:)g Fy(\033)3540 530 y Ft(00)3537
581 y Fu(n)3583 560 y Fz(\()p Fy(m)p Fz(\))g FA(v)g Fn(SOME)2746
680 y(DONTKNO)n(W)82 b FC(otherwise)2000 831 y(This)19
b(de\002nition)e(can)h(be)h(e)o(xtended)d(to)j(also)g(precisely)f
(model)f(ne)o(gated)2000 930 y(predicates)40 b(and)h(unions)f(of)h
(node)g(sets.)h(If)f Fs(pr)l(e)l(d)51 b FC(is)42 b(not)f(a)h(loca-)2000
1030 y(tion)36 b(path,)f(then)h Fs(\014lter)2724 993
y Fw(SG)2724 1050 y(pr)m(e)m(d)2894 1030 y FC(changes)f(the)i(status)g
(of)f(a)g(node)g Fy(n)g FC(to)2000 1130 y Fn(DONTKNO)n(W)28
b FC(unless)g(its)i(status)f(is)g(already)f Fn(NONE)h
FC(or)f Fn(NEVER)q FC(.)2083 1230 y(From)g(this)h(de\002nition)e(of)h
Fs(eval)10 b FC(,)29 b(we)g(can)f(model)g Fr(select)p
FC(:)2040 1359 y Fk(b)2029 1380 y Fz(\001\()p Fs(exp)6
b Fr(.select\()l Fy(p)p Fr(\))p Fz(\))23 b(=)2145 1413
y Fk(\000)2183 1480 y FA(f)p Fy(t)p FA(g)p Fy(;)2183
1580 y(T)30 b FA([)18 b(f)p Fz(\()p Fy(t;)c(g)s(;)g(c)p
Fz(\))p FA(g)k([)h(f)p Fz(\()p Fy(t;)14 b(g)s(;)g(n)p
Fz(\))22 b FA(j)h Fy(n)g FA(2)g Fs(HITS)28 b FA(\\)19
b Fy(N)3649 1592 y Ft(E)3694 1580 y FA(g)p Fy(;)2183
1705 y(S)2239 1613 y Fk(h)2278 1705 y Fy(c)k FA(7!)2595
1643 y Fk(S)2707 1705 y Fy(S)5 b Fz(\()p Fy(m)p Fz(\))2443
1784 y Fu(m)p Ft(2)p Fw(HITS)i Ft(\\)p Fv(\()p Fu(N)2841
1792 y Fp(C)2879 1784 y Ft([)p Fu(N)2977 1792 y Fp(A)3026
1784 y Fv(\))3052 1613 y Fk(i)3092 1705 y Fy(;)2183 1877
y(P)2248 1847 y Ft(0)2271 1877 y Fz([)p Fy(g)26 b FA(7!)d
Fz(\()p FA(;)p Fy(;)14 b Fs(REMO)n(VE)c Fy(;)k FA(f)p
Fn(CLOSED)o FA(g)p Fy(;)g FA(f)p Fn(CLOSED)o FA(g)p Fz(\)])3799
1810 y Fk(\001)2000 2027 y FC(The)46 b(nodes)g Fy(t)h
FC(and)f Fy(c)i FC(are)e(the)h(associated)f(template)g(node)g(and)2000
2127 y(chardata)21 b(node,)g(respecti)n(v)o(ely)-5 b(,)20
b(where)h Fs(gaps)8 b Fz(\()p Fy(t)p Fz(\))24 b(=)e Fy(g)k
FC(for)21 b(a)i(fresh)e(gap)2000 2226 y(name)31 b Fy(g)s
FC(.)h(The)g(summary)e(graph)h Fs(SG)37 b Fz(=)29 b(\()p
Fy(R)q(;)14 b(T)7 b(;)14 b(S;)g(P)e Fz(\))32 b FC(is)h(obtained)2000
2328 y(from)2200 2307 y Fk(b)2189 2328 y Fz(\001\()p
Fs(exp)5 b Fz(\))28 b FC(by)f(adding)e(the)i(dummy)e(root,)h(as)h(e)o
(xplained)e(abo)o(v)o(e.)2000 2427 y(The)j(sets)i Fs(HITS)38
b FC(and)28 b Fs(REMO)n(VE)39 b FC(are)29 b(de\002ned)e(by)2371
2585 y Fs(HITS)33 b Fz(=)23 b FA(f)p Fy(n)f FA(j)h Fs(eval)10
b Fz(\()p Fs(SG)d Fy(;)14 b(p)p Fz(\)\()p Fy(n)p Fz(\))24
b FA(6v)e Fn(NONE)p FA(g)2000 2811 y Fs(REMO)n(VE)33
b Fz(=)2491 2669 y Fk(\()2558 2755 y FA(;)116 b FC(if)29
b FA(8)p Fy(n)23 b FA(2)g Fs(HITS)33 b Fz(:)23 b Fs(eval)10
b Fz(\()p Fs(SG)d Fy(;)14 b(p)p Fz(\)\()p Fy(n)p Fz(\))24
b FA(v)e Fn(SOME)2558 2874 y FA(f)p Fy(t)p FA(g)51 b
FC(otherwise)2000 3030 y(Intuiti)n(v)o(ely)-5 b(,)24
b(the)k Fy(t)f FC(node)f(collects)i(all)f(nodes)g(that)g(may)g(be)g
(selected,)2000 3130 y(and)33 b(the)h Fy(c)g FC(node)f(collects)h(the)g
(v)n(alues)g(of)f(selected)h(attrib)n(utes)g(and)2000
3229 y(character)22 b(data.)h(The)g(gap)f Fy(g)k FC(may)d(be)g(remo)o
(v)o(ed)e(in)i Fy(t)h FC(if)g(it)g(is)g(possible)2000
3329 y(that)e(no)g(element)f(nodes)h(are)g(selected.)g(The)f
(modi\002ed)g(gap)h(presence)2000 3428 y(map)33 b Fy(P)2242
3398 y Ft(0)2299 3428 y FC(models)g(the)h(disappearance)d(of)j(gaps)e
(in)i(fragments)e(that)2000 3528 y(are)c(not)g(selected:)2029
3678 y Fy(P)2094 3648 y Ft(0)2117 3678 y Fz(\()p Fy(h)p
Fz(\))23 b(=)g(\()p Fs(op)l(en)7 b Fz(\()p Fy(P)12 b
Fz(\()p Fy(h)p Fz(\)\))p FA(n)p Fs(DEAD)c Fy(;)14 b Fs(r)l(emove)l(d)9
b Fz(\()p Fy(P)j Fz(\()p Fy(h)p Fz(\)\))p FA(n)p Fs(DEAD)c
Fy(;)2372 3778 y Fs(GAPS)2611 3790 y Fw(tgaps)2773 3778
y Fz(\()p Fy(h)p Fz(\))p Fy(;)14 b Fs(GAPS)3161 3790
y Fw(agaps)3335 3778 y Fz(\()p Fy(h)p Fz(\)\))2046 4180
y Fs(GAPS)2285 4192 y Fu(\015)2327 4180 y Fz(\()p Fy(h)p
Fz(\))24 b(=)2550 3860 y Fk(8)2550 3935 y(>)2550 3960
y(>)2550 3985 y(>)2550 4010 y(>)2550 4035 y(>)2550 4060
y(>)2550 4084 y(<)2550 4234 y(>)2550 4259 y(>)2550 4284
y(>)2550 4309 y(>)2550 4333 y(>)2550 4358 y(>)2550 4383
y(:)2624 3944 y FA(f)p Fn(OPEN)p FA(g)58 b FC(if)28 b
Fy(\015)5 b Fz(\()p Fy(P)12 b Fz(\()p Fy(h)p Fz(\)\))24
b(=)e FA(f)p Fn(OPEN)p FA(g)h(^)3031 4063 y Fs(op)l(en)7
b Fz(\()p Fy(P)12 b Fz(\()p Fy(h)p Fz(\)\))24 b FA(\022)e
Fs(LIVE)2624 4183 y FA(f)p Fn(CLOSED)p FA(g)57 b FC(if)29
b Fy(\015)5 b Fz(\()p Fy(P)12 b Fz(\()p Fy(h)p Fz(\)\))24
b(=)e FA(f)p Fn(CLOSED)p FA(g)h(_)3118 4303 y Fs(op)l(en)7
b Fz(\()p Fy(P)12 b Fz(\()p Fy(h)p Fz(\)\))24 b FA(\022)f
Fs(DEAD)2624 4422 y FA(f)p Fn(OPEN)p Fy(;)14 b Fn(CLOSED)p
FA(g)58 b FC(otherwise)2000 4573 y(where,)26 b(informally)-5
b(,)25 b Fs(LIVE)33 b FA(\022)23 b Fy(N)36 b FC(contains)27
b(a)h(node)e Fy(n)i FC(if)f(for)g(e)n(v)o(ery)2000 4672
y(unfolding)18 b(of)i Fs(SG)29 b FC(all)21 b(instances)g(of)f
Fy(n)h FC(are)g(certain)f(to)h(be)f(retained)g(by)2000
4772 y(the)f(operation;)e(and)h(similarly)-5 b(,)18 b
Fs(DEAD)27 b FC(contains)18 b(the)h(nodes)f(that)h(are)2000
4872 y(certain)25 b(to)i(be)f(remo)o(v)o(ed.)d(These)j(sets)h(can)f(be)
g(computed)e(by)i(simple)2000 4971 y(reachability)h(analyses)h(based)g
(on)g(the)h(status)g(map)f Fs(eval)10 b Fz(\()p Fs(SG)d
Fy(;)14 b(p)p Fz(\))p FC(.)2083 5071 y(The)28 b(modeling)f(of)h
Fr(gapify)e FC(is)k(de\002ned)d(similarly:)2040 5201
y Fk(b)2029 5222 y Fz(\001\()p Fs(exp)6 b Fr(.gapify\()l
Fy(p;)14 b(g)s Fr(\))o Fz(\))24 b(=)2145 5255 y Fk(\000)2183
5322 y Fy(R)q(;)2183 5422 y(T)34 b FA(n)23 b(f)p Fz(\()p
Fy(n;)14 b(h;)g(m)p Fz(\))22 b FA(2)i Fy(T)34 b FA(j)23
b Fy(m)g FA(2)g Fs(ALL)p FA(g)2266 5522 y([)h(f)p Fz(\()p
Fy(n;)14 b(h;)g(t)p Fz(\))22 b FA(j)h Fz(\()p Fy(n;)14
b(h;)g(m)p Fz(\))23 b FA(2)h Fy(T)29 b FA(^)19 b Fy(m)k
FA(2)g Fs(HITS)10 b FA(g)p Fy(;)2183 5621 y(S)5 b Fz([)p
Fy(n)23 b FA(7!)g(;)28 b FC(for)g(each)g Fy(n)23 b FA(2)h
Fs(ALL)18 b FA(\\)h Fz(\()p Fy(N)3327 5633 y Ft(C)3388
5621 y FA([)g Fy(N)3529 5633 y Ft(A)3586 5621 y Fz(\))q(])p
FC(,)p eop end
%%Page: 10 10
TeXDict begin 10 9 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192 -307
a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.10) cvn H.B /DEST pdfmark
end
-192 -307 a FJ(IEEE)19
b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19 b(ENGINEERING)2794
b(10)p -8 -154 3917 4 v -10 -79 4 75 v 41 -102 a Fg(Example)p
478 -79 V 494 -79 V 256 w(Lines)p 749 -79 V 100 w(Input)p
1007 -79 V 100 w(Output)p 1314 -79 V 134 w(SGs)p 1563
-79 V 99 w(SG)25 b(Nodes)p 1949 -79 V 100 w(SG)f(Edges)p
2332 -79 V 101 w(Max)h(Space)p 2752 -79 V 100 w(T)-6
b(otal)26 b(T)o(ime)p 3168 -79 V 101 w(SG)f(Space)p 3547
-79 V 101 w(SG)f(T)o(ime)p 3907 -79 V -8 -76 3917 4 v
-8 -59 V -10 16 4 75 v 41 -7 a Fx(ToUpper)p 478 16 V
494 16 V 348 w FD(26)p 749 16 V 193 w(25)p 1007 16 V
240 w(25)p 1314 16 V 183 w(13)p 1563 16 V 287 w(612)p
1949 16 V 235 w(2,045)p 2332 16 V 227 w(63)f(MB)p 2752
16 V 251 w(10.8)h(s)p 3168 16 V 219 w(5)g(MB)p 3547 16
V 227 w(1.1)g(s)p 3907 16 V -8 19 3917 4 v -10 94 4 75
v 41 71 a Fx(Sorting)p 478 94 V 494 94 V 348 w FD(43)p
749 94 V 193 w(25)p 1007 94 V 240 w(25)p 1314 94 V 183
w(13)p 1563 94 V 287 w(606)p 1949 94 V 235 w(2,686)p
2332 94 V 227 w(61)f(MB)p 2752 94 V 285 w(8.6)g(s)p 3168
94 V 219 w(6)h(MB)p 3547 94 V 227 w(1.2)g(s)p 3907 94
V -8 97 3917 4 v -10 172 4 75 v 41 149 a Fx(AddrBook1)p
478 172 V 494 172 V 278 w FD(32)p 749 172 V 226 w(4)p
1007 172 V 273 w(3)p 1314 172 V 183 w(31)p 1563 172 V
321 w(50)p 1949 172 V 283 w(378)p 2332 172 V 228 w(56)f(MB)p
2752 172 V 285 w(9.0)g(s)p 3168 172 V 219 w(2)h(MB)p
3547 172 V 227 w(0.2)g(s)p 3907 172 V -8 175 3917 4 v
-10 250 4 75 v 41 227 a Fx(AddrBook2)p 478 250 V 494
250 V 278 w FD(17)p 749 250 V 226 w(5)p 1007 250 V 273
w(4)p 1314 250 V 183 w(14)p 1563 250 V 321 w(49)p 1949
250 V 283 w(215)p 2332 250 V 228 w(55)f(MB)p 2752 250
V 285 w(7.6)g(s)p 3168 250 V 219 w(2)h(MB)p 3547 250
V 227 w(0.2)g(s)p 3907 250 V -8 253 3917 4 v -10 328
4 75 v 41 305 a Fx(BankServlet)p 478 328 V 494 328 V
208 w FD(88)p 749 328 V 226 w(5)p 1007 328 V 157 w(1,201)p
1314 328 V 183 w(23)p 1563 328 V 321 w(48)p 1949 328
V 234 w(1,008)p 2332 328 V 227 w(74)f(MB)p 2752 328 V
285 w(8.9)g(s)p 3168 328 V 219 w(2)h(MB)p 3547 328 V
227 w(0.4)g(s)p 3907 328 V -8 331 3917 4 v -10 406 4
75 v 41 383 a Fx(Country)p 478 406 V 494 406 V 348 w
FD(72)p 749 406 V 226 w(6)p 1007 406 V 157 w(1,201)p
1314 406 V 183 w(26)p 1563 406 V 321 w(73)p 1949 406
V 234 w(1,203)p 2332 406 V 227 w(74)f(MB)p 2752 406 V
285 w(9.2)g(s)p 3168 406 V 219 w(2)h(MB)p 3547 406 V
227 w(0.5)g(s)p 3907 406 V -8 409 3917 4 v -10 484 4
75 v 41 461 a Fx(Recipes)p 478 484 V 494 484 V 315 w
FD(137)p 749 484 V 193 w(25)p 1007 484 V 157 w(1,201)p
1314 484 V 150 w(100)p 1563 484 V 287 w(748)p 1949 484
V 201 w(10,987)p 2332 484 V 228 w(81)f(MB)p 2752 484
V 251 w(13.9)h(s)p 3168 484 V 219 w(7)g(MB)p 3547 484
V 227 w(2.6)g(s)p 3907 484 V -8 487 3917 4 v -10 562
4 75 v 41 539 a Fx(Article)p 478 562 V 494 562 V 315
w FD(132)p 749 562 V 226 w(8)p 1007 562 V 157 w(1,235)p
1314 562 V 183 w(61)p 1563 562 V 287 w(114)p 1949 562
V 235 w(3,491)p 2332 562 V 227 w(77)f(MB)p 2752 562 V
285 w(9.7)g(s)p 3168 562 V 219 w(3)h(MB)p 3547 562 V
227 w(0.7)g(s)p 3907 562 V -8 565 3917 4 v -10 640 4
75 v 41 617 a Fx(BCedit)p 478 640 V 494 640 V 350 w FD(190)p
749 640 V 226 w(9)p 1007 640 V 273 w(9)p 1314 640 V 183
w(46)p 1563 640 V 287 w(169)p 1949 640 V 235 w(1,945)p
2332 640 V 227 w(97)f(MB)p 2752 640 V 251 w(14.2)h(s)p
3168 640 V 219 w(5)g(MB)p 3547 640 V 227 w(0.6)g(s)p
3907 640 V -8 643 3917 4 v -10 718 4 75 v 41 695 a Fx(Tree)p
478 718 V 494 718 V 453 w FD(73)p 749 718 V 193 w(15)p
1007 718 V 240 w(24)p 1314 718 V 183 w(82)p 1563 718
V 287 w(183)p 1949 718 V 235 w(4,921)p 2332 718 V 227
w(61)f(MB)p 2752 718 V 285 w(8.5)g(s)p 3168 718 V 219
w(4)h(MB)p 3547 718 V 227 w(1.0)g(s)p 3907 718 V -8 721
3917 4 v -10 796 4 75 v 41 773 a Fx(HTML2latex)p 478
796 V 494 796 V 210 w FD(159)p 749 796 V 110 w(1,201)p
1007 796 V 273 w(0)p 1314 796 V 183 w(59)p 1563 796 V
238 w(2,164)p 1949 796 V 200 w(26,910)p 2332 796 V 228
w(52)f(MB)p 2752 796 V 251 w(11.9)h(s)p 3168 796 V 186
w(14)g(MB)p 3547 796 V 227 w(3.3)g(s)p 3907 796 V -8
799 3917 4 v -10 874 4 75 v 41 852 a Fx(CourseAdmin)p
478 874 V 494 874 V 125 w FD(3,156)p 749 874 V 160 w(195)p
1007 874 V 157 w(1,666)p 1314 874 V 100 w(1,044)p 1563
874 V 238 w(2,615)p 1949 874 V 167 w(161,881)p 2332 874
V 194 w(228)g(MB)p 2752 874 V 251 w(74.3)g(s)p 3168 874
V 186 w(45)g(MB)p 3547 874 V 194 w(31.2)g(s)p 3907 874
V -8 877 3917 4 v -192 1022 a(Fig.)f(3.)56 1022 y
SDict begin H.S end
56
1022 a 56 1022 a
SDict begin H.R end
56 1022 a 56 1022 a
SDict begin [ /View [/XYZ H.V] /Dest (figure.3) cvn H.B /DEST pdfmark
end
56 1022 a FD(Experimental)j
(results.)-9 1306 y Fy(P)56 1275 y Ft(0)79 1238 y Fk(\002)114
1306 y Fy(g)g FA(7!)d Fz(\()p Fs(op)l(en)7 b Fz(\()p
Fy(P)12 b Fz(\()p Fy(g)s Fz(\)\))19 b FA([)g(f)p Fy(t)p
FA(g)e([)i Fz(\()p Fs(HITS)28 b FA(\\)19 b Fy(N)1425
1318 y Ft(A)1482 1306 y Fz(\))p Fy(;)318 1405 y Fs(r)l(emove)l(d)9
b Fz(\()p Fy(P)j Fz(\()p Fy(g)s Fz(\)\))p Fy(;)318 1505
y Fs(mer)l(ge)7 b Fz(\()p Fs(ANY)771 1517 y Fu(N)824
1525 y Fp(E)863 1517 y Ft([)p Fu(N)961 1525 y Fp(C)1003
1505 y Fy(;)14 b Fs(tgaps)7 b Fz(\()p Fy(P)12 b Fz(\()p
Fy(g)s Fz(\)\)\))p Fy(;)318 1605 y Fs(mer)l(ge)7 b Fz(\()p
Fs(ANY)771 1617 y Fu(N)824 1625 y Fp(A)878 1605 y Fy(;)14
b Fs(agaps)8 b Fz(\()p Fy(P)k Fz(\()p Fy(g)s Fz(\)\)\)\))1421
1538 y Fk(\003)q(\001)-192 1762 y FC(where)37 b Fy(t)h
FC(is)h(the)f(associated)f(template)h(node,)e Fs(gaps)8
b Fz(\()p Fy(t)p Fz(\))41 b(=)f Fy(g)s FC(,)d(and)-192
1861 y Fs(ALL)29 b FC(and)f Fs(ANY)44 b FC(are)29 b(de\002ned)e(by)238
2048 y Fs(ALL)c Fz(=)g FA(f)p Fy(n)f FA(j)h Fs(eval)10
b Fz(\()p Fs(SG)d Fy(;)14 b(p)p Fz(\)\()p Fy(n)p Fz(\))24
b FA(v)e Fn(ALL)p FA(g)-172 2506 y Fs(ANY)30 2518 y Fu(M)126
2506 y Fz(=)214 2186 y Fk(8)214 2261 y(>)214 2286 y(>)214
2310 y(>)214 2335 y(>)214 2360 y(>)214 2385 y(>)214 2410
y(<)214 2560 y(>)214 2584 y(>)214 2609 y(>)214 2634 y(>)214
2659 y(>)214 2684 y(>)214 2709 y(:)288 2270 y FA(f)p
Fn(OPEN)o FA(g)393 b FC(if)29 b FA(9)p Fy(n)23 b FA(2)g
Fy(M)32 b Fz(:)1039 2389 y Fs(eval)10 b Fz(\()p Fs(SG)d
Fy(;)14 b(p)p Fz(\)\()p Fy(n)p Fz(\))24 b FA(v)e Fn(SOME)288
2509 y FA(f)p Fn(CLOSED)o FA(g)308 b FC(if)29 b FA(8)p
Fy(n)23 b FA(2)g Fy(M)32 b Fz(:)1039 2628 y Fs(eval)10
b Fz(\()p Fs(SG)d Fy(;)14 b(p)p Fz(\)\()p Fy(n)p Fz(\))24
b FA(v)e Fn(NONE)288 2748 y FA(f)p Fn(OPEN)o Fy(;)14
b Fn(CLOSED)p FA(g)83 b FC(otherwise)-192 2927 y(and)28
b(the)g(function)f Fs(mer)l(ge)36 b FC(is)29 b(the)g(same)f(as)i(in)e
([8)o(]:)-178 3175 y Fs(mer)l(ge)6 b Fz(\()p Fy(\015)116
3187 y Fv(1)154 3175 y Fy(;)14 b(\015)234 3187 y Fv(2)271
3175 y Fz(\))23 b(=)414 3033 y Fk(\()481 3119 y FA(f)p
Fn(OPEN)p FA(g)82 b FC(if)29 b Fy(\015)958 3131 y Fv(1)1004
3119 y Fz(=)9 b FA(f)p Fn(OPEN)p FA(g)18 b(_)h Fy(\015)1485
3131 y Fv(2)1531 3119 y Fz(=)9 b FA(f)p Fn(OPEN)p FA(g)481
3238 y Fy(\015)524 3250 y Fv(1)580 3238 y FA([)18 b Fy(\015)696
3250 y Fv(2)835 3238 y FC(otherwise)-192 3422 y(Intuiti)n(v)o(ely)-5
b(,)30 b(the)j Fy(t)h FC(node)e(represents)g(the)h(ne)n(wly)f
(constructed)f(tem-)-192 3522 y(plate)46 b(gaps.)g(T)-6
b(emplate)45 b(edges)h(into)g(nodes)g(that)g(are)h(certain)f(to)-192
3622 y(be)40 b(selected)h(are)f(remo)o(v)o(ed,)e(and)h(ne)n(w)i
(template)e(edges)h(to)h(the)f Fy(t)-192 3721 y FC(node)j(are)h(added)f
(in)h(place)g(of)g(all)h(potentially)e(selected)h(nodes.)-192
3821 y(The)29 b(string)f(edge)g(map)h(is)h(modi\002ed)d(by)i(remo)o
(ving)d(all)k(strings)f(that)-192 3921 y(belong)j(to)h(chardata)f(and)g
(attrib)n(ute)h(nodes)g(that)g(are)g(certain)f(to)i(be)-192
4020 y(selected.)21 b(F)o(or)g(the)g(gap)g(presence)f(of)h
Fy(g)j FC(we)e(add)f Fy(t)g FC(and)g(all)h(potentially)-192
4120 y(selected)k(attrib)n(ute)f(nodes)g(to)h(the)g Fs(op)l(en)33
b FC(component;)23 b(for)i(the)h Fs(tgaps)-192 4219 y
FC(component,)35 b(we)k(consider)e(the)h(possibility)g(that)g(a)h
(template)f(gap)-192 4319 y(has)d(been)f(added;)g(and)g(similarly)h
(for)f(the)g Fs(agaps)44 b FC(component)32 b(for)-192
4419 y(attrib)n(ute)j(gaps.)f(F)o(or)h(other)f(gaps,)g(we)h(use)h
Fy(P)1235 4389 y Ft(0)1294 4419 y FC(as)f(in)h Fr(select)d
FC(b)n(ut)-192 4518 y(with)26 b Fs(LIVE)37 b FC(and)26
b Fs(DEAD)33 b FC(computed)24 b(according)g(to)j(the)f(semantics)-192
4618 y(of)i Fr(gapify)f FC(instead)h(of)g Fr(select)p
FC(.)-109 4725 y(It)45 b(is)h(possible)f(to)g(increase)f(precision)g
(for)g(the)h(modeling)e(of)-192 4824 y Fr(gapify)e FC(by)h(also)h
(considering)e(the)h(property)f(of)h(the)h(semantics)-192
4924 y(of)31 b(this)h(operation)e(that)h(an)h(XML)f(tree)h(node)e(is)i
(ne)n(v)o(er)f(considered)-192 5023 y(selected)25 b(if)g(an)f(ancestor)
g(is.)h(W)-7 b(e)26 b(model)e(this)h(property)d(by)j(inserting)-192
5123 y(an)40 b(application)f(of)h(a)g(function)f Fs(sharp)l(en)48
b FC(to)40 b(the)g(result)g(of)g(each)-192 5223 y(application)27
b(of)g Fs(eval)10 b Fz(\()p Fs(SG)d Fy(;)14 b(p)p Fz(\))p
FC(.)29 b(Intuiti)n(v)o(ely)-5 b(,)25 b Fs(sharp)l(en)36
b FC(tra)n(v)o(erses)28 b Fs(SG)-192 5322 y FC(from)i(the)h(roots)g
(and,)f(for)h(instance,)f(con)m(v)o(erts)f Fn(ALL)j FC(to)f
Fn(NONE)h FC(for)e(a)-192 5422 y(node)36 b Fy(n)h FC(if)g(it)g(is)h
(able)e(to)h(determine)f(that)g Fy(n)i FC(has)e(an)h(ancestor)f(of)-192
5522 y(status)i Fn(ALL)g FC(in)f(e)n(v)o(ery)f(possible)h(unfolding.)d
(W)-7 b(e)39 b(omit)e(the)g(formal)-192 5621 y(de\002nition.)2000
1206 y
SDict begin H.S end
2000 1206 a 2000 1206 a
SDict begin 12 H.A end
2000 1206 a 2000 1206
a
SDict begin [ /View [/XYZ H.V] /Dest (section.5) cvn H.B /DEST pdfmark
end
2000 1206 a 2311 1306 a FC(V)-7 b(.)46 b(I)t FD(M)t(P)t(L)t(E)t(M)t
(E)t(N)t(T)n(A)m(T)t(I)t(O)t(N)23 b(A)t(N)t(D)i FC(E)t
FD(X)t(P)t(E)t(R)t(I)t(M)t(E)t(N)t(T)t(S)2083 1435 y
FC(W)-7 b(e)52 b(ha)n(v)o(e)f(de)n(v)o(eloped)d(a)k(prototype)d
(implementation)g(of)h(the)2000 1535 y(runtime)27 b(system)i(and)f(the)
h(analysis)g(algorithms.)e(Our)h(e)o(xperiments)2000
1634 y(mainly)36 b(focus)g(on)h(e)o(xposing)e(the)i(e)o(xpressi)n(v)o
(e)f(po)n(wer)g(of)h(our)f(lan-)2000 1734 y(guage)24
b(design)g(and)h(the)g(feasibility)g(and)f(precision)g(of)h(our)g
(analysis.)2083 1834 y(W)-7 b(e)34 b(ha)n(v)o(e)f(collected)g(a)g
(number)f(of)h(small)h(benchmark)d(applica-)2000 1934
y(tions,)g(inspired)f(by)h(typical)g(tasks)h(performed)c(in)k(other)e
(languages)2000 2033 y(such)e(as)h(XSL)-8 b(T)i(,)29
b(XQuery)-5 b(,)27 b(JDOM,)h(and)g(XDuce.)2083 2134 y(The)h
Fr(ToUpper)f FC(benchmark)f(changes)h(all)j(XML)e(recipe)h(titles)g(to)
2000 2233 y(upper)41 b(case)i(using)f(the)g(DTD)h(from)e(Section)3496
2233 y
SDict begin H.S end
3496 2233 a FC(II)3551 2178 y
SDict begin H.R end
3551 2178 a 3551
2233 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.2) cvn H.B /ANN pdfmark end
3551 2233 a FC(.)i(The)f Fr(Sorting)2000 2333
y FC(benchmark)e(is)k(the)f(application)f(that)h(sorts)h(a)f(recipe)f
(collection)2000 2432 y(in)37 b(le)o(xicographic)d(order)i(of)h(the)g
(titles.)h(The)f Fr(AddrBook1)d FC(bench-)2000 2532 y(mark)40
b(is)i(the)f(standard)f(XDuce)h(e)o(xample,)f(and)g(the)i
Fr(AddrBook2)2000 2632 y FC(benchmark)30 b(is)j(a)g(v)n(ariation)e
(with)i(a)g(more)f(realistic)h(XML)f(design.)2000 2731
y(The)44 b Fr(BankServlet)c FC(is)45 b(a)g(Servlet)f(that)g(produces)f
(an)h(XHTML)2000 2831 y(account)49 b(summary)h(from)g(an)g(XML)h
(database.)f(The)h Fr(Country)2000 2931 y FC(benchmark)41
b(implements)h(an)h(XSL)-8 b(T)44 b(2.0)f(use)h(case)g(in)f(which)g(a)
2000 3030 y(collection)26 b(of)h(cities)h(is)g(grouped)d(according)h
(to)h(their)g(country)-5 b(.)25 b(The)2000 3130 y Fr(Recipes)i
FC(benchmark)g(emulates)i(an)h(XSL)-8 b(T)30 b(stylesheet)f(producing)
2000 3230 y(XHTML)k(from)g(XML)h(recipes;)g(ho)n(we)n(v)o(er)m(,)d(our)
i(v)o(ersion)g(statically)2000 3329 y(guarantees)39 b(that)i(the)f
(output)g(is)h(v)n(alid)f(XHTML.)h(The)f Fr(Article)2000
3429 y FC(benchmark)47 b(manipulates)h(articles)i(represented)e(in)h
(XML.)h(The)2000 3528 y Fr(BCedit)33 b FC(benchmark)g(from)h([18)n(])i
(is)g(originally)d(based)i(on)g(JDOM)2000 3628 y(and)18
b(implements)g(a)h(graphical)e(editor)h(on)g(XML)h(b)n(usiness)g
(cards.)f(The)2000 3728 y Fr(Tree)26 b FC(benchmark)f(implements)i(all)
h(queries)f(in)h(the)g(corresponding)2000 3827 y(XQuery)36
b(use)i(case)g([19)o(].)f(Both)h Fr(ToUpper)p FC(,)d
Fr(Country)p FC(,)g(and)i Fr(Tree)2000 3927 y FC(are)19
b(sho)n(wn)g(in)h(Appendix)2789 3927 y
SDict begin H.S end
2789 3927 a FC(II)2844
3871 y
SDict begin H.R end
2844 3871 a 2844 3927 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section*.10) cvn H.B /ANN pdfmark end
2844 3927 a FC(.)g(The)f
Fr(HTML2latex)e FC(benchmark)g(is)j(bor)n(-)2000 4027
y(ro)n(wed)f(from)g(the)i Ff(C)p FC(Duce)f(project)f([20)o(].)h
(Finally)-5 b(,)20 b(the)g Fr(CourseAdmin)2000 4126 y
FC(benchmark)f(is)k(a)f(real)g(application)e(implementing)f(a)k
(generic)d(course)2000 4226 y(administration)h(W)-7 b(eb)24
b(service,)e(using)h(specialized)f(XML)h(languages)2000
4325 y(for)29 b(representing)f(data)i(about)f(schedules,)g(students,)g
(teachers,)g(and)2000 4425 y(home)n(w)o(orks.)2083 4525
y(Figure)2344 4526 y
SDict begin H.S end
2344 4526 a -1 x FC(3)2386 4469
y
SDict begin H.R end
2386 4469 a 2386 4525 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (figure.3) cvn H.B /ANN pdfmark end
2386 4525 a 45 w FC(sho)n(ws)44
b(e)o(xperimental)e(results.)j(\223Lines\224)f(is)h(the)f(the)2000
4625 y(number)e(of)j(lines)f(in)h(a)g(desugared)d(self-contained)g
(application,)2000 4725 y(\223Input\224)f(is)j(the)g(total)f(number)e
(of)i(lines)g(of)g(the)g(DTD)h(schemas)2000 4824 y(in)m(v)n(olv)o(ed)21
b(in)j Fr(cast)e FC(and)h Fr(get)g FC(operations,)f(\223Output\224)h
(is)h(the)g(the)f(total)2000 4924 y(number)35 b(of)h(lines)h(of)g(the)g
(DTD)g(schemas)f(in)m(v)n(olv)o(ed)f(in)i Fr(analyze)2000
5023 y FC(operations,)42 b(\223SGs\224)i(is)h(the)f(total)g(number)e
(of)i(summary)f(graphs)2000 5123 y(computed)24 b(during)g(analysis,)i
(\223SG)h(Nodes\224)f(is)h(the)f(total)g(number)f(of)2000
5223 y(summary)30 b(graphs)g(nodes)g(allocated,)h(\223SG)g(Edges\224)g
(is)h(the)f(number)2000 5322 y(of)24 b(summary)f(graph)g(edges)h
(allocated.)f(The)h(maximal)f(memory)g(and)2000 5422
y(o)o(v)o(erall)k(time)i(consumption)d(are)i(sho)n(wn)g(in)g(the)h
(\223Max)f(Space\224)g(and)2000 5522 y(\223T)-7 b(otal)22
b(T)m(ime\224)g(columns,)e(and)i(the)g(memory)e(and)i(time)g
(consumption)2000 5621 y(during)35 b(summary)h(graph)f(construction)h
(and)g(analysis)h(are)g(sho)n(wn)p eop end
%%Page: 11 11
TeXDict begin 11 10 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192
-307 a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.11) cvn H.B /DEST pdfmark
end
-192 -307
a FJ(IEEE)19 b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19
b(ENGINEERING)2794 b(11)-192 -58 y FC(in)42 b(the)f(\223SG)h(Space\224)
f(and)g(\223SG)g(T)m(ime\224)h(columns.)e(The)h(analysis)-192
42 y(time)25 b(is)h(measured)e(in)h(seconds,)g(and)f(the)h(memory)f
(consumption)f(in)-192 142 y(me)o(gabytes.)i(Most)j(of)f(the)g(lar)o
(ge)f(dif)n(ference)g(between)g(\223SG)i(Space\224)-192
241 y(and)k(\223Max)g(Space\224)h(is)g(consumed)e(by)h(the)h(Soot)g
(frame)n(w)o(ork)d([21)o(],)-192 341 y([22)o(],)22 b(which)g(we)g(use)h
(to)f(construct)g(control)f(\003o)n(w)h(graphs)f(from)h(class)-192
441 y(\002les.)31 b(Similarly)-5 b(,)30 b(Soot)g(has)h(a)g(startup)f
(time)g(of)g(around)f(7)i(seconds,)-192 540 y(which)20
b(is)i(the)f(main)g(cause)g(of)g(the)g(dif)n(ferences)e(between)h
(\223SG)i(T)m(ime\224)-192 640 y(and)45 b(\223T)-7 b(otal)45
b(T)m(ime\224.)g(A)h(possible)f(remedy)f(is)i(to)g(b)n(uild)f(a)h(more)
-192 739 y(specialized)36 b(class)h(analysis)g(tool)f(on)g(top)h(of)f
(another)f(frame)n(w)o(ork)-192 839 y(such)28 b(as)h(Recoder)f([23)o
(].)-109 942 y(All)49 b(e)o(xperiments)e(are)i(performed)d(on)i(a)h
(2.4)f(GHz)h(Pentium)-192 1041 y(IV)57 b(with)h(1)f(GB)h(RAM)g(running)
e(Linux)g(and)g(J2SE)i(v)o(ersion)-192 1141 y(1.4.2.)e(The)h(source)g
(for)g(all)i(benchmarks)c(is)k(a)n(v)n(ailable)e(from)-192
1241 y Fr(http://www.brics)o(.dk)o(/X)o(ac)o(t/)p FC(.)-109
1343 y(Most)29 b(of)g(these)g(benchmarks)d(are)j(small)g(b)n(ut)g
(demonstrate)f(com-)-192 1443 y(ple)o(x)47 b(XML)h(transformations)d
(that)j(are)f(typically)g(e)o(xpressed)g(in)-192 1542
y(specialized)k(languages.)e(As)j(indicated)e(by)h(the)g
Fr(CourseAdmin)-192 1642 y FC(application,)46 b(the)h(number)f(of)h
(lines)h(of)f(code)g(is)h(only)f(a)h(weak)-192 1742 y(measure)42
b(of)g(the)h(comple)o(xity)e(of)h(the)h(analysis)g(task.)f(The)h(sizes)
-192 1841 y(of)h(the)f(in)m(v)n(olv)o(ed)f(DTDs)i(and)g(the)g(computed)
d(summary)i(graphs)-192 1941 y(more)31 b(truly)f(re\003ects)i(the)g
(\223XML)f(comple)o(xity\224)e(of)i(an)g(application.)-192
2041 y(Lar)o(ge)d(applications)h(will)h(typically)f(in)m(v)n(olv)o(e)f
(a)i(limited)f(number)f(of)-192 2140 y(XML)38 b(transformation,)e(each)
h(of)h(which)g(will)h(be)f(reminiscent)f(of)-192 2240
y(the)32 b(benchmarks)e(gi)n(v)o(en)g(abo)o(v)o(e.)g(A)j(real)f
(strength)f(of)g(our)h(analysis)-192 2339 y(technique)39
b(is)j(the)f(ability)g(to)g(e)o(xtract)f(the)h(essential)g(information)
-192 2439 y(from)i(lar)o(ge)h(Ja)n(v)n(a)h(programs)d(and)i(focus)g
(the)g(analysis)h(on)f(such)-192 2539 y(subtasks.)-109
2641 y(The)29 b(precision)f(of)h(our)g(analysis)g(is)h(re\003ected)f
(in)g(the)h(number)d(of)-192 2741 y(f)o(alse)33 b(errors)g(\003agged)e
(during)h(analysis,)g(which)h(in)g(all)g(cases)h(turns)-192
2841 y(out)f(to)g(be)g(zero.)f(Furthermore,)f(during)g(the)i
(programming)d(of)j(the)-192 2940 y(e)o(xamples,)h(the)h(analysis)h
(found)d(se)n(v)o(eral)i(actual)g(errors)f(that)i(were)-192
3040 y(subsequently)27 b(corrected.)-109 3142 y(The)32
b(analysis)h(is)h(seen)e(to)h(be)g(quite)f(ef)n(\002cient)g(on)g(a)h
(wide)g(range)-192 3242 y(of)g(benchmarks.)d(On)j(a)h(subjecti)n(v)o(e)
e(note,)g(the)j(X)t FD(A)q(C)t(T)h FC(language)c(is)-192
3342 y(easy)j(to)g(use.)f(It)h(often)f(results)h(in)g(programs)e(that)i
(are)g(as)g(concise)-192 3441 y(and)29 b(readable)f(as)j(more)d
(specialized)h(notations.)g(F)o(or)g(e)o(xample,)f(the)-192
3541 y(six)j(queries)e(themselv)o(es)h(in)g(the)g Fr(Tree)g
FC(benchmark)d(are)k(written)f(in)-192 3641 y(33)22 b(lines)g(of)g
(code,)f(compared)f(to)i(45)g(lines)g(in)g(XQuery)-5
b(.)21 b(At)h(the)h(same)-192 3740 y(time)28 b(our)f(solutions)h(are)f
(statically)i(v)n(alidated,)d(in)i(stark)g(contrast)g(to)-192
3840 y(e.g.)g(XSL)-8 b(T)29 b(and)f(JDOM)h(solutions.)-192
3992 y
SDict begin H.S end
-192 3992 a -192 3992 a
SDict begin 12 H.A end
-192 3992 a -192 3992
a
SDict begin [ /View [/XYZ H.V] /Dest (section.6) cvn H.B /DEST pdfmark
end
-192 3992 a 535 4077 a FC(V)t(I)t(.)45 b(C)t FD(O)t(N)t(C)t(L)t(U)t
(S)t(I)t(O)t(N)-109 4220 y FC(W)-7 b(e)44 b(ha)n(v)o(e)e(presented)f
(the)j(X)t FD(A)q(C)t(T)i FC(system,)d(which)f(pro)o(vides)e(a)-192
4320 y(high-le)n(v)o(el)31 b(approach)g(for)h(manipulating)f(XML)i
(data)g(in)g(Ja)n(v)n(a)g(and)-192 4420 y(a)51 b(program)d(analysis)i
(for)g(statically)g(v)n(alidating)f(the)h(generated)-192
4519 y(documents.)45 b(Experiments)h(indicate)g(that)i(the)f(language)e
(design)-192 4619 y(allo)n(ws)35 b(a)f(concise)g(programming)d(style)k
(and)f(that)g(the)g(analysis)h(is)-192 4719 y(ef)n(\002cient)28
b(enough)f(to)h(be)h(practically)e(feasible.)-109 4821
y(In)21 b(our)g(future)f(w)o(ork,)g(we)i(will)g(attempt)f(to)g
(generalize)f(the)h(present)-192 4921 y(results)i(in)h(v)n(arious)d
(directions:)i(W)-7 b(e)24 b(belie)n(v)o(e)e(that)h(XSL)-8
b(T)23 b(stylesheets)-192 5020 y(can)28 b(be)f(statically)h(v)n
(alidated)f(with)h(the)g(summary)e(graph)g(technique)-192
5120 y(presented)i(here)i(and)f(that)g(it)i(is)f(possible)g(to)g(use)g
(a)g(more)f(po)n(werful)-192 5220 y(schema)37 b(language,)f(such)i(as)h
(DSD2,)f(as)g(XML)g(types.)g(This)g(will)-192 5319 y(include)32
b(support)h(for)f(XML)i(namespaces,)e(which)h(is)i(not)e(rele)n(v)n
(ant)-192 5419 y(when)28 b(using)g(DTD.)-109 5522 y(W)-7
b(e)42 b(plan)e(to)g(inte)o(grate)i(X)t FD(A)q(C)t(T)h
FC(into)e(frame)n(w)o(orks)d(for)i(making)-192 5621 y(W)-7
b(eb)34 b(services,)e(in)h(particular)f(JWIG)i(and)e(Servlets,)h(and)f
(to)h(mak)o(e)2000 -58 y(the)25 b(system)h(a)n(v)n(ailable)f(as)h(a)f
(stand-alone)f(package)g(for)h(XML)g(trans-)2000 42 y(formation)j(in)i
(Ja)n(v)n(a.)h(Our)f(prototype)e(implementation)g(is)j(a)n(v)n(ailable)
2000 142 y(online)c(at)i Fr(http://www.brics.)o(dk/)o(Xa)o(ct)o(/)p
FC(.)2000 160 y
SDict begin H.S end
2000 160 a 2000 160 a
SDict begin 12 H.A end
2000 160 a 2000
160 a
SDict begin [ /View [/XYZ H.V] /Dest (section.Appendix.) cvn H.B /DEST
pdfmark end
2000 160 a 2000 160 a
SDict begin H.S end
2000 160 a 2000 160 a
SDict begin 12 H.A end
2000
160 a 2000 160 a
SDict begin [ /View [/XYZ H.V] /Dest (section.Appendix.A) cvn H.B /DEST
pdfmark end
2000 160 a 2835 355 a FC(A)t FD(P)t(P)t(E)t(N)t(D)t(I)
t(X)c FC(I)2538 454 y(S)t FD(U)t(R)o(V)t(E)t(Y)g(O)t(F)g
FC(R)t FD(E)t(L)t(A)m(T)t(E)t(D)f FC(W)s FD(O)t(R)t(K)2000
482 y
SDict begin H.S end
2000 482 a 2000 482 a
SDict begin 12 H.A end
2000 482 a 2000 482 a
SDict begin [ /View [/XYZ H.V] /Dest (section*.7) cvn H.B /DEST pdfmark
end
2000
482 a 2083 581 a FC(There)i(e)o(xists)i(a)f(wide)g(range)f(of)h
(approaches)e(for)i(de\002ning)e(XML)2000 680 y(transformations,)50
b(originating)g(from)i(database,)f(hyperte)o(xt,)f(and)2000
780 y(programming)39 b(language)j(communities.)f(These)i(approaches)e
(are)2000 880 y(in)32 b(the)h(follo)n(wing)d(di)n(vided)h(into)h
(techniques)f(for)h FB(g)o(ener)o(al-purpose)2000 979
y FC(programming)h(languages)i(and)g(for)h(tailor)n(-made)f
FB(domain-speci\002c)2000 1079 y FC(languages.)27 b(A)i(general)f
(introduction)f(to)i(the)g(XML)g(type)f(checking)2000
1178 y(problem)f(is)i(gi)n(v)o(en)e(in)i([24)o(].)2083
1278 y(XML)c(data)g(may)f(be)h(manipulated)f(in)h(se)n(v)o(eral)f(w)o
(ays)i(that)f(are)g(not)2000 1378 y(all)j(supported)e(equally)h(well)h
(by)f(e)n(v)o(ery)f(approach.)g(In)h(man)o(y)g(actual)2000
1477 y(XML)46 b(transformations,)e(the)i(input)g(and)g(output)f
(languages)g(are)2000 1577 y(dif)n(ferent,)25 b(i.e.,)h(described)g(by)
g(dif)n(ferent)f(schemas.)i(Ho)n(we)n(v)o(er)m(,)d(often)2000
1677 y(these)19 b(languages)f(are)h(the)g(same,)g(for)g(e)o(xample)e
(if)j(the)f(transformation)2000 1776 y(consists)32 b(of)g(sorting)f(a)h
(list)h(of)f(entries)f(in)h(a)h(table)e(b)n(ut)h(lea)n(ving)f(the)2000
1876 y(rest)41 b(of)f(the)g(document)f(unmodi\002ed.)e(Such)j
(transformations)f(are)2000 1976 y(often)j(described)f(more)h(con)m(v)o
(eniently)d(as)44 b(in)f(situ)g(modi\002cations)2000
2075 y(than)28 b(as)i(functions)e(from)g(input)g(to)i(output.)d(Also,)i
(man)o(y)f(programs)2000 2175 y(in)m(v)n(olving)d(XML)i(b)n(uild)f
(documents)g(from)g(non-XML)f(sources,)h(e)o(x-)2000
2274 y(tract)i(information)d(from)i(XML)h(without)f(producing)e(XML)j
(output,)2000 2374 y(or)44 b(the)o(y)f(interact)h(with)g(other)f
(systems)i(during)d(the)i(processing.)2000 2474 y(De)n(v)o(eloping)k
(good)i(support)g(for)g(XML)h(in)h(programming)47 b(also)2000
2573 y(requires)27 b(consideration)g(of)h(these)h(pragmatic)e(issues.)
2000 2805 y FB(T)-8 b(ec)o(hniques)27 b(for)i(g)o(ener)o(al-purpose)d
(langua)o(g)o(es)2000 2848 y
SDict begin H.S end
2000 2848 a 2000 2848 a
SDict begin 12 H.A end
2000 2848 a 2000 2848 a
SDict begin [ /View [/XYZ H.V] /Dest (section*.8) cvn H.B /DEST pdfmark
end
2000 2848 a 2083 2931 a FC(The)42
b(approaches)e(of)j(representing)d(XML)j(data)f(as)h(strings)g(or)2000
3031 y(DOM)28 b(trees,)g(as)g(mentioned)e(in)i(the)g(introduction,)d
(\002t)k(into)f(the)f(cat-)2000 3130 y(e)o(gory)32 b(of)h(techniques)f
(for)h(general-purpose)d(languages.)i(Building)2000 3230
y(XML)k(documents)e(by)i(concatenating)e(string)i(fragments)e(is)j
(com-)2000 3330 y(monly)31 b(used)i(in)g(the)g(presentation)e(layer)i
(of)f(interacti)n(v)o(e)g(W)-7 b(eb)33 b(ser)n(-)2000
3429 y(vices,)24 b(for)f(e)o(xample)g(with)h(Servlets)g([25)o(].)g
(This)g(primiti)n(v)o(e)f(approach)2000 3529 y(does)k(not)h(assist)h
(the)f(programmer)d(in)j(a)n(v)n(oiding)f(mismatching)f(tags)2000
3628 y(or)37 b(improper)f(escaping)h(of)h(special)g(characters,)f(and)g
(it)i(does)f(not)2000 3728 y(support)27 b(deconstruction)f(of)i
(documents.)2083 3828 y(Presently)-5 b(,)28 b(there)g(are)h(XML)g
(libraries)g(with)g(parsers)g(and)g(DOM-)2000 3928 y(lik)o(e)39
b(functionality)e(for)h(all)i(major)e(\(and)g(also)h(man)o(y)f(less)i
(widely)2000 4027 y(used\))48 b(programming)d(languages.)i(Examples)h
(for)g(Ja)n(v)n(a)h(include)2000 4127 y(JDOM)36 b([7)o(],)f(T)m(rAX)h
([26)n(],)g(and)f(J)-5 b(AXP)36 b([27)o(].)f(Such)h(libraries)f(vie)n
(w)2000 4226 y(XML)j(data)f(as)i(tree)f(structures)f(and)g(pro)o(vide)f
(operations)g(for)i(lo-)2000 4326 y(cal)e(tra)n(v)o(ersal)f(and)h
(manipulation.)d(This)j(is)h(a)g(po)n(werful)d(approach)2000
4426 y(that)46 b(permits)f(the)h(full)g(underlying)e(programming)e
(language)i(to)2000 4525 y(be)36 b(in)m(v)n(olv)o(ed)e(in)j(the)f(XML)g
(processing.)f(W)-7 b(ellformedness)35 b(of)h(the)2000
4625 y(in)m(v)n(olv)o(ed)25 b(XML)j(data)g(comes)f(for)g(free)g(when)g
(w)o(orking)g(on)g(the)g(tree)2000 4725 y(le)n(v)o(el.)c(Ho)n(we)n(v)o
(er)m(,)e(it)j(is)h(still)g(a)f(lo)n(w-le)n(v)o(el)e(approach)f(for)i
(a)h(number)e(of)2000 4824 y(reasons:)29 b(1\))g(tra)n(v)o(ersing)f(or)
h(modifying)e(a)j(DOM)g(tree)f(is)i(e)o(xpressed)2000
4924 y(via)45 b(primiti)n(v)o(e)g(operations,)f(for)h(e)o(xample)f
(taking)h(a)h(single)f(step)2000 5023 y(in)35 b(the)h(tree)g(from)e(an)
i(element)f(to)g(its)i(\002rst)f(child)f(element.)g(More)2000
5123 y(comple)o(x)30 b(operations)f(therefore)h(tend)h(to)h(require)e
(relati)n(v)o(ely)g(much)2000 5223 y(code,)k(compared)e(to)j(e.g.)g
(XSL)-8 b(T)i(,)35 b(which)f(is)i(described)d(belo)n(w;)i(2\))2000
5322 y(there)21 b(is)h(no)f(tool)g(support)f(for)h(analyzing)f(the)h
(programs)f(at)i(compile-)2000 5422 y(time)32 b(to)g(v)o(erify)f(that)i
(transformation)c(output)i(is)i(guaranteed)d(to)j(be)2000
5522 y(v)n(alid)g(at)i(runtime)e(or)h(that)g(the)g(transformations)e
(succeed)h(without)2000 5621 y(runtime)i(errors.)h(XML)h(is)g(re)o
(garded)d(as)j(one)g(homogeneous)c(type)p eop end
%%Page: 12 12
TeXDict begin 12 11 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192
-307 a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.12) cvn H.B /DEST pdfmark
end
-192 -307
a FJ(IEEE)19 b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19
b(ENGINEERING)2794 b(12)-192 -58 y FC(without)39 b(considering)e
(schemas.)i(The)h(processing)e(is)i(completely)-192 42
y(independent)26 b(from)h(the)i(schema)f(information,)e(so,)j(for)e(e)o
(xample,)g(a)-192 142 y(schema)k(may)h(contain)e(the)i(information)e
(that)i Fy(A)g FC(elements)g(cannot)-192 241 y(occur)27
b(as)i(children)e(of)g Fy(B)33 b FC(elements,)28 b(b)n(ut)g(f)o(ailed)g
(attempts)g(to)g(select)-192 341 y(an)h Fy(A)i FC(child)e(element)g(of)
g(a)h Fy(B)k FC(element)29 b(in)g(a)h(program)d(will)k(not)e(be)-192
441 y(detected)f(until)g(runtime.)-109 543 y(SAX)38 b([28)o(])f(is)i(e)
n(v)o(ent-based)c(rather)i(than)g(tree-based.)f(This)h(ap-)-192
642 y(proach)18 b(is)i(suitable)f(for)g(streaming)f(processing)g(of)h
(lar)o(ge)g(documents,)-192 742 y(b)n(ut)28 b(static)i(v)n(alidity)e
(is)h(not)f(considered.)-109 844 y(T)-7 b(o)28 b(attack)g(the)g
(problem)e(of)i(statically)g(guaranteeing)e(v)n(alidity)h(of)-192
943 y(the)41 b(transformation)d(output,)i(a)h(number)f(of)g(systems)i
(attempt)f(to)-192 1043 y(model)22 b(XML)h(transformation)e(using)h
(pre-e)o(xisting)f(type)i(systems)h(in)-192 1143 y(general-purpose)i
(programming)h(languages.)h(Examples)h(based)h(on)-192
1242 y(functional)35 b(languages)g(are)h(HaXml)h([29)o(])f(and)g(W)-10
b(ASH/CGI)38 b([30)o(],)-192 1342 y(both)j(embedding)f(DTD)i(into)g
(Hask)o(ell.)g(In)f(contrast)h(to)g(HaXml,)-192 1442
y(W)-10 b(ASH/CGI)31 b(does)e(not)g(support)f(deconstruction)f(of)j
(XML)f(v)n(alues.)-192 1541 y(In)f(return,)f(W)-10 b(ASH/CGI)30
b(allo)n(ws)e(the)h(use)f(of)h(generic)e(combinators,)-192
1641 y(which)h(the)g(type-safe)g(approach)e(in)j(HaXml)f(does)g(not.)
-109 1743 y(W)m(ith)e(this)g(approach,)e(type)h(checking)f(of)h(XML)h
(transformations)-192 1842 y(comes)44 b(for)g(free)h(via)g(the)f(type)g
(system)h(in)g(the)g(host)g(language.)-192 1942 y(Ho)n(we)n(v)o(er)m(,)
35 b(these)i(type)f(systems)i(are)f(usually)f(not)h(strong)f(enough)
-192 2042 y(to)46 b(capture)e(all)i(requirements)d(speci\002ed)i(in)h
(a)g(schema)e(without)-192 2141 y(sacri\002cing)39 b(soundness,)f
(performance,)e(or)k(\003e)o(xibility)f([31)n(],)h(e)n(v)o(en)-192
2241 y(with)30 b(a)g(simple)g(schema)f(language)f(as)j(DTD.)e(Another)g
(problem)f(is)-192 2341 y(that)c(type)f(errors)f(are)i(reported)d(at)j
(the)g(le)n(v)o(el)f(of)g(the)h(underlying)d(host)-192
2440 y(language,)h(which)h(can)h(mak)o(e)g(them)f(dif)n(\002cult)g(to)i
(understand)c(for)j(the)-192 2540 y(programmer)-5 b(.)-109
2642 y(Other)45 b(systems)h(are)f(tar)o(geted)e(at)j(object-oriented)c
(languages,)-192 2741 y(typically)37 b(Ja)n(v)n(a.)h(Castor)g([32)o(])g
(and)f(the)h(more)f(recent)h(J)-5 b(AXB)39 b([33)o(])-192
2841 y(are)32 b(XML)g(data)g(binding)e(frame)n(w)o(orks)h(for)g(Ja)n(v)
n(a.)h(From)g(a)g(schema)-192 2941 y(written)d(in)h(certain)f(subsets)h
(of)g(XML)f(Schema)h(the)o(y)f(can)g(generate)-192 3040
y(a)48 b(collection)f(of)g(Ja)n(v)n(a)h(classes)h(representing)c(an)j
(object)f(model)-192 3140 y(of)33 b(the)h(corresponding)c(XML)j
(documents.)f(XML)i(data)f(may)g(then)-192 3240 y(be)45
b(processed)e(as)j(Ja)n(v)n(a)f(objects)f(at)h(a)g(higher)f
(abstraction)f(le)n(v)o(el)-192 3339 y(than)29 b(e.g.)f(JDOM.)i
(Methods)e(for)h(marshalling)e(and)i(unmarshalling)-192
3439 y(are)i(automatically)f(generated,)f(and)i(the)g(mapping)e
(between)i(XML)-192 3538 y(and)38 b(Ja)n(v)n(a)h(can)g(be)g(controlled)
e(by)h(specifying)f(e)o(xplicit)h(bindings.)-192 3638
y(Relax)o(er)j([34)n(])h(is)g(a)f(similar)g(tool)g(b)n(ut)g(for)g(the)g
(RELAX)g(schema)-192 3738 y(language.)33 b(F)o(or)i(all)h(three)f
(systems,)g(there)g(is)h(no)f(static)h(guarantee)-192
3837 y(that)c(a)g(constructed)d(document)h(will)i(satisfy)g(all)g(the)g
(requirements)-192 3937 y(of)c(the)h(gi)n(v)o(en)e(schema.)-109
4039 y(The)33 b(SN)m(A)-5 b(Que)34 b(tool)f([35)n(])h(pro)o(vides)d(a)j
(v)n(ariant)e(of)h(data)g(binding)-192 4139 y(that)48
b(does)g(not)g(tak)o(e)h(schemas)f(into)g(account.)f(From)g(an)i(XML)
-192 4238 y(document)21 b(and)i(a)h(programming)19 b(language)j(type,)g
(it)i(e)o(xtracts)f(a)h(pro-)-192 4338 y(gram)h(v)n(alue.)f(Projector)g
([36)o(])i(is)g(a)g(related)f(e)o(xtension)f(of)h(Ja)n(v)n(aScript)-192
4437 y(mixing)i(typed)h(and)g(untyped)e(programming.)-109
4539 y(The)43 b(approach)e(described)g(in)j([37)n(])g(contains)e(a)h
(data)g(binding)-192 4639 y(system)37 b(for)f(languages)f(with)i(po)n
(werful)e(types)h(with)h(streams,)g(tu-)-192 4739 y(ples,)g(and)g
(unions,)f(which)h(allo)n(w)h(schemas)f(to)h(be)f(encoded)f(with)-192
4838 y(high)30 b(precision.)g(A)i(type)f(checking)e(algorithm)h(is)i
(currently)e(being)-192 4938 y(implemented)24 b(b)n(ut)j(is)g(yet)g
(unpublished.)c(Man)o(y)j(other)f(data)h(binding)-192
5038 y(tools)j(are)f(described)f(in)i([38)n(].)-192 5288
y FB(Domain-speci\002c)d(langua)o(g)o(es)-192 5337 y
SDict begin H.S end
-192 5337 a -192 5337 a
SDict begin 12 H.A end
-192 5337 a -192 5337 a
SDict begin [ /View [/XYZ H.V] /Dest (section*.9) cvn H.B /DEST pdfmark
end
-192
5337 a -109 5422 a FC(Domain-speci\002c)g(languages)f(\(DSLs\))i(are)h
(tailor)n(-made)d(for)i(spe-)-192 5522 y(cialized)39
b(classes)i(of)e(tasks,)h(such)g(as)g(XML)g(transformation.)c(Al-)-192
5621 y(though)45 b(the)i(formal)e(e)o(xpressi)n(v)o(e)h(po)n(wer)f(of)i
(these)g(language)e(of)2000 -58 y(course)24 b(does)h(not)g(e)o(xceed)f
(that)h(of)g(general-purpose)c(languages,)i(the)2000
42 y(adv)n(antages)35 b(of)i(DSLs)g(are)g(generally)f(considered)f(to)i
(be)g(1\))f(high)2000 142 y(le)n(v)o(els)26 b(of)g(abstraction)e(with)j
(language)d(constructs)h(and)h(customized)2000 241 y(syntax)c(that)g
(closely)h(match)f(the)g(concepts)g(in)h(the)f(problem)f(domain,)2000
341 y(and)31 b(2\))g(specialized)h(analyses)f(for)g(reasoning)g(about)f
(the)i(beha)n(vior)2000 441 y(of)c(programs.)2083 540
y(The)79 b(predominant)d(DSL)j(for)g(XML)g(transformation)e(is)2000
640 y(XSL)-8 b(T)28 b([39)n(],)g(a)g(declarati)n(v)o(e)e(language)f
(based)i(on)g(pattern)g(matching)2000 739 y(and)39 b(template)g
(instantiation.)f(Although)g(designed)g(primarily)g(for)2000
839 y(hyperte)o(xt)21 b(stylesheet)j(applications,)e(it)j(is)g(more)e
(widely)g(applicable,)2000 939 y(for)d(e)o(xample,)g(for)h(simple)g
(database)g(operations.)e(XSL)-8 b(T)22 b(uses)g(XP)o(ath)2000
1038 y(for)27 b(pointing)f(and)h(pattern)g(matching.)f(Schemas)h(for)g
(the)h(input)f(and)2000 1138 y(output)i(languages)g(are)h(ignored)f(by)
h(XSL)-8 b(T)30 b(1.0)g(processors,)f(so)i(no)2000 1238
y(type)26 b(checking)f(is)j(performed.)c(XSL)-8 b(T)27
b(2.0)f([40)o(])h(is)g(currently)e(being)2000 1337 y(designed.)i(It)i
(uses)h(types)e(from)g(XML)h(Schema)g(b)n(ut)f(only)h(supports)2000
1437 y(dynamic)43 b(v)n(alidation.)f(\()p FB(\223It)i(is)i
(implementation-de\002ned)39 b(whether)2000 1536 y(type)20
b(err)l(or)o(s)i(ar)m(e)e(signaled)f(statically)-5 b(.)-12
b(\224)21 b FC([40)o(]\))f(XSL)-8 b(T)20 b(stylesheets)h(can)2000
1636 y(to)29 b(a)h(lar)o(ge)e(e)o(xtent)g(easily)i(be)f(con)m(v)o
(erted)d(into)31 b(X)t FD(A)q(C)t(T)i FC(programs)27
b(by)2000 1736 y(turning)h(XSL)-8 b(T)30 b(templates)g(into)f(methods)g
(that)g(return)i(X)t FD(A)q(C)t(T)i FC(tem-)2000 1835
y(plates.)26 b(The)h(XSL)-8 b(T)27 b(pattern)f(matching)f(feature,)g
(which)i(determines)2000 1935 y(the)e(templates)g(to)g(instantiate,)f
(does)h(not)g(ha)n(v)o(e)f(a)h(direct)g(counterpart)2000
2035 y(in)30 b(X)t FD(A)q(C)t(T)i FC(where)c(the)g(control-\003o)n(w)f
(is)i(more)f(e)o(xplicit.)2083 2134 y(Although)f(DSLs)j(for)f(XML)g
(transformation)e(certainly)h(do)h(ha)n(v)o(e)2000 2234
y(a)50 b(raison)e(d')5 b(\210)-33 b(etre,)49 b(man)o(y)f(ha)n(v)o(e)h
(dif)n(\002culties)g(with)g(the)h(kinds)f(of)2000 2333
y(transformation)18 b(mentioned)g(earlier)j(that)f(in)m(v)n(olv)o(e)f
(non-XML)g(v)n(alues)2000 2433 y(or)j(need)h(to)g(interact)f(with)h
(other)f(systems.)i(XSL)-8 b(T)23 b(is)h(e)o(xtensible,)d(b)n(ut)2000
2533 y(only)28 b(in)i(the)f(sense)g(that)h(indi)n(vidual)d
(implementors)g(may)i(add)g(their)2000 2632 y(o)n(wn)f(e)o(xtra)f
(functionality)-5 b(.)2083 2732 y(XQuery)29 b([41)n(])i(can)e(be)h(vie)
n(wed)f(as)i(a)f(generalization)e(of)i(SQL)g(to)2000
2832 y(the)22 b(richer)f(data)h(model)g(of)f(XML.)h(It)h(is)g(a)g
(functional)d(language)g(with)2000 2931 y(optional)33
b(types)i(using)g(a)g(considerable)e(subset)i(of)g(XML)g(Schema)2000
3031 y(as)g(basis)f(for)g(its)h(type)e(system)i([42)n(],)f(which)g
(supports)f(static)i(type)2000 3130 y(inference)29 b(and)i(checking.)e
(Although)h(still)i(at)g(w)o(orking)d(draft)i(le)n(v)o(el)2000
3230 y(with)i(man)o(y)f(open)g(issues,)h(XQuery)f(is)i(an)f(ambitious)f
(project)g(and)2000 3330 y(recei)n(v)o(es)27 b(much)h(attention.)2083
3429 y(XDuce)38 b([31)o(])g(is)i(a)f(simplistic)f(functional)f
(language)g(based)h(on)2000 3529 y(re)o(gular)e(e)o(xpression)g(types,)
h(which)g(are)g(a)h(natural)f(generalization)2000 3629
y(of)h(DTD)h(schemas,)g(and)f(a)h(corresponding)c(mechanism)j(for)g
(pat-)2000 3728 y(tern)46 b(matching.)e(It)j(supports)e(a)h(local)g
(form)g(of)f(type)h(inference)2000 3828 y(where)40 b(types)g(are)g
(speci\002ed)h(e)o(xplicitly)e(for)h(function)f(ar)o(guments)2000
3928 y(b)n(ut)52 b(inferred)e(for)i(pattern)f(matching.)f(In)i(its)h
(current)e(v)o(ersion,)2000 4027 y(XDuce)42 b(does)f(not)h(ha)n(v)o(e)g
(higher)n(-order)c(functions)j(or)h(parametric)2000 4127
y(polymorphism,)29 b(and)j(the)g(type)g(system)g(does)h(not)f(model)f
(element)2000 4226 y(attrib)n(utes)d(or)g(unordered)d(data.)j
Ff(C)p FC(Duce)g([20)n(])h(e)o(xtends)e(XDuce)h(into)2000
4326 y(a)f(full)g(programming)d(language)h(and)i(adds)g(higher)n
(-order)d(functions)2000 4426 y(and)36 b(other)g(language)f(features.)h
(The)g(ideas)h(from)f(XDuce,)g(which)2000 4525 y(ha)n(v)o(e)d(also)h
(in\003uenced)e(the)i(design)f(of)g(the)h(XQuery)e(type)i(system,)2000
4625 y(are)19 b(currently)f(being)h(inte)o(grated)f(into)i(C#)g(in)g
(the)f(Xtatic)i(project)d(with)2000 4725 y(similar)24
b(goals)f(as)h(ours)g([43)n(].)g(Another)e(related)h(language)f(is)j
(Circus-)2000 4824 y(DTE)39 b([44)o(],)g(which)g(is)h(a)g(simple)f
(transformation)e(language)g(with)2000 4924 y(pattern)31
b(matching)g(and)h(type-checking)d(mechanisms)j(reminiscent)2000
5023 y(of)c(those)g(in)h(XDuce.)2083 5123 y(XM)p Fy(\025)34
b FC([45)o(])f(is)h(a)g(functional)e(language)f(related)i(to)h(HaXml)f
(and)2000 5223 y(W)-10 b(ASH/CGI.)40 b(Its)h(type)e(system)h(uses)g(a)g
(notion)f(of)g(type-inde)o(x)o(ed)2000 5322 y(ro)n(ws)d(to)h(model)f
(DTD.)g(Whereas)h(subtyping)e(is)i(an)g(essential)g(as-)2000
5422 y(pect)32 b(in)h(XDuce,)e(XM)p Fy(\025)j FC(is)f(based)f(on)g
(parametric)f(polymorphism.)2000 5522 y(Apparently)-5
b(,)26 b(no)i(implementation)e(of)i(XM)p Fy(\025)i FC(is)f(a)n(v)n
(ailable.)2083 5621 y(The)j(language)e FB(fxt)35 b FC([14)o(])d(is)h
(closely)f(related)g(to)h(XSL)-8 b(T)33 b(b)n(ut)f(uses)p
eop end
%%Page: 13 13
TeXDict begin 13 12 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192
-307 a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.13) cvn H.B /DEST pdfmark
end
-192 -307
a FJ(IEEE)19 b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19
b(ENGINEERING)2794 b(13)-192 -58 y FC(a)48 b(strictly)f(top-do)n(wn)e
(processing)h(model)h(and)g(a)g(clean)h(pattern)-192
42 y(matching)36 b(mechanism)g(that)i(corresponds)d(to)j(re)o(gular)d
(languages.)-192 142 y(Another)c(attempt)g(to)h(redesign)f(XSL)-8
b(T)32 b(is)h(SXSL)-8 b(T)33 b([46)o(],)f(based)f(on)-192
241 y(Scheme.)e(Both)i FB(fxt)h FC(and)d(SXSL)-8 b(T)31
b(focus)f(on)g(language)e(design)i(and,)-192 341 y(as)f(XSL)-8
b(T)i(,)29 b(do)f(not)g(pro)o(vide)e(type)j(checking.)-109
444 y(The)c(type)f(checking)g(problem)f(has)j(been)e(studied)h(at)g(a)h
(more)e(the-)-192 543 y(oretical)k(le)n(v)o(el)f(for)h
FB(k-pebble)e(tr)m(ee)j(tr)o(ansducer)o(s)f FC([47)n(],)g(a)h(frame)n
(w)o(ork)-192 643 y(for)j(modeling)g(decidable)f(tree)i
(transformations)e(in,)i(for)f(e)o(xample,)-192 743 y(fragments)25
b(of)i(XQuery)e(and)h(XSL)-8 b(T)i(.)27 b(A)g(less)h(e)o(xpressi)n(v)o
(e)d(formalism)-192 842 y(for)51 b(top-do)n(wn)e(transformations)g(is)j
(in)m(v)o(estigated)d(in)i([48)o(],)g(and)-192 942 y(another)21
b(related)i(approach)d(is)k(proposed)d(in)i([49)o(])g(for)f(type)g
(checking)-192 1041 y(a)j(subset)g(of)f(XSL)-8 b(T)26
b(using)e(tree)h(automata.)e(In)h([50)o(],)h(a)g(simple)g(XML)-192
1141 y(transformation)20 b(system)j(based)g(on)f(macro)g(e)o(xpansion)f
(is)i(described,)-192 1241 y(and)c(it)i(is)f(sho)n(wn)f(that)h(e)o
(xact)f(type)h(checking)e(with)h(DTD)h(is)h(decidable)-192
1340 y(for)27 b(this)h(system.)g(The)g(query)e(language)g
FB(loto-ql)h FC(permits)g(inference)-192 1440 y(of)h(output)f(schemas)h
(from)f(input)g(schemas)h(using)f(a)i(generalization)-192
1540 y(of)f(DTD)h(to)g(conte)o(xt-free)c(languages)i([51)o(].)-109
1642 y(Finally)-5 b(,)23 b(we)i(mention)e(the)h(recent)f(XOBE)i
(language)d([52)o(],)i(which)-192 1742 y(is)j(closely)f(related)f(to)h
(our)f(approach.)f(XOBE)i(is)h(also)f(an)g(e)o(xtension)-192
1842 y(of)38 b(Ja)n(v)n(a,)g(it)h(has)f(a)h(notion)e(of)h(XML)g
(templates)g(resembling)f(that)-192 1941 y(of)i(JWIG)i(and)g(X)t
FD(A)q(C)t(T)r FC(,)f(and)f(it)h(too)f(uses)i(XP)o(ath)e(to)h(select)g
(parts)-192 2041 y(of)d(XML)g(trees.)g(XOBE)g(uses)h(a)f(type)g(system)
g(based)g(on)f(re)o(gular)-192 2140 y(hedge)27 b(grammars,)f(whereas)i
(we)g(rely)g(on)g(data\003o)n(w)f(analysis)h(using)-192
2240 y(summary)35 b(graphs)g(to)h(obtain)f(static)i(guarantees.)d(Ho)n
(we)n(v)o(er)m(,)g(there)-192 2340 y(are)i(a)g(number)e(of)i(more)f
(essential)h(dif)n(ferences:)e(XOBE)j(requires)-192 2439
y(all)27 b(XML)g(v)n(ariables)e(to)i(be)g(e)o(xplicitly)e(typed)h(with)
g(element)g(names,)-192 2539 y(unlik)o(e)c(our)f(approach.)f(Lists)j
(of)f(mix)o(ed)g(elements)g(can)g(be)g(described)-192
2639 y(by)31 b(unordered)e(content)h(models,)h(not)g(by)h(general)e(re)
o(gular)g(e)o(xpres-)-192 2738 y(sions.)h(XML)g(trees)g(in)g(XOBE)g
(can)f(only)g(be)h(constructed)e(bottom-)-192 2838 y(up.)h(In)g
(contrast,)g(the)h(template)f(mechanism)f(in)i(JWIG)h(and)g(X)t
FD(A)q(C)t(T)-192 2937 y FC(is)d(higher)n(-order)24 b(in)k(the)g(sense)
g(that)f(templates)h(can)f(contain)g(named)-192 3037
y(gaps)32 b(that)h(can)f(be)h(\002lled)g(in)g(an)o(y)f(order)m(,)f
(possibly)h(with)h(templates)-192 3137 y(containing)39
b(other)h(gaps.)g(Finally)-5 b(,)40 b(our)g FB(gapify)g
FC(construct)g(has)h(no)-192 3236 y(counterpart)22 b(in)j(XOBE.)g
(These)g(issues)g(mak)o(e)i(X)t FD(A)q(C)t(T)g FC(more)d(\003e)o(xible)
-192 3336 y(in)29 b(practice.)-192 3354 y
SDict begin H.S end
-192 3354 a
-192 3354 a
SDict begin 12 H.A end
-192 3354 a -192 3354 a
SDict begin [ /View [/XYZ H.V] /Dest (section.Appendix.B) cvn H.B /DEST
pdfmark end
-192 3354 a 627 3574
a FC(A)t FD(P)t(P)t(E)t(N)t(D)t(I)t(X)c FC(I)t(I)318
3674 y(S)t FD(Y)t(N)t(T)n(A)q(C)t(T)t(I)t(C)h FC(S)t
FD(U)t(G)t(A)t(R)g(F)t(O)t(R)f FC(X)t FD(A)q(C)t(T)-192
3717 y
SDict begin H.S end
-192 3717 a -192 3717 a
SDict begin 12 H.A end
-192 3717 a -192 3717
a
SDict begin [ /View [/XYZ H.V] /Dest (section*.10) cvn H.B /DEST pdfmark
end
-192 3717 a -109 3818 a FC(The)37 b(X)t FD(A)q(C)t(T)h
FC(language)c(permits)g(some)h(syntactic)g(sugar)f(on)h(top)-192
3918 y(of)42 b(the)h(basic)g(operations.)d(First,)j(we)g(allo)n(w)g
(special)f(syntax)g(for)-192 4018 y(template)23 b(constants,)g(which)g
(may)g(be)h(written)f(in)h Fr([[...]])d FC(without)-192
4117 y(the)39 b(otherwise)f(mandatory)e(escape)j(characters.)f
(Similarly)-5 b(,)37 b(ar)o(gu-)-192 4217 y(ments)21
b(of)g(types)g Fr(Gap)f FC(and)h Fr(XPath)e FC(may)i(be)g(written)g
(directly)f(without)-192 4317 y(e)o(xplicit)f(calls)h(to)g
(constructors,)d(and)i Fr(DTD)g FC(references)f(can)i(be)f(written)-192
4416 y(as)32 b(strings.)f(Additionally)-5 b(,)30 b(we)i(allo)n(w)f
(some)g(simple)h(abbre)n(viations)-192 4516 y(for)c(common)e
(operations:)-146 4647 y Fx(smash\()p Fe(xs)8 b Fx(\))35
b Fd(\021)g Fe(xs)6 b Fx(.length>0)37 b(?)f(group\()p
Fe(xs)7 b Fx(,.[false\(\)]\)[0])40 b(:)35 b([[]])-146
4721 y Fc(x)p Fx(.roots\(\))j Fd(\021)d Fc(x)p Fx(.select\(*\))-146
4796 y Fc(x)p Fx(.text\(\))i Fd(\021)f Fx(smash\()p Fc(x)p
Fx(.select\(text\(\)\)\).to)q(Stri)q(ng\()q(\))-146 4871
y Fc(x)p Fx(.attribute\()p Fc(a)p Fx(\))j Fd(\021)d Fx(smash\()p
Fc(x)p Fx(.select\(@)p Fc(a)p Fx(\)\).toStri)q(ng\(\))-146
4946 y Fc(x)p Fx(.has\()p Fc(p)p Fx(\))h Fd(\021)e Fc(x)p
Fx(.select\()p Fc(p)p Fx(\).length>0)-146 5020 y Fc(x)p
Fx(.size\(\))i Fd(\021)f Fc(x)p Fx(.roots\(\).length)-146
5095 y Fc(x)p Fx(.delete\()p Fc(p)p Fx(\))i Fd(\021)d
Fc(x)p Fx(.gapify\()p Fc(p)p Fx(,)p Fc(g)r Fx(\))-146
5170 y Fc(x)p Fx(.apply\()p Fc(p)p Fx(,)p Fc(f)7 b Fx(\))38
b Fd(\021)d Fc(x)p Fx(.gapify\()p Fc(p)p Fx(,)p Fc(g)r
Fx(\).plug\()p Fc(g)r Fx(,[])p Fc(f)7 b Fx(\()p Fc(x)p
Fx(.selec)q(t\()p Fc(p)p Fx(\)\)\))-192 5322 y FC(The)29
b Fr(smash)g FC(operation)e(concatenates)i(an)g(array)g(of)h(templates)
f(into)-192 5422 y(a)34 b(single)g(template;)g Fr(roots)e
FC(b)n(uilds)i(an)g(array)f(with)h(one)f(entry)g(for)-192
5522 y(each)38 b(root)h(element)f(in)h(the)g(gi)n(v)o(en)e(template;)i
Fr(text)e FC(e)o(xtracts)i(the)-192 5621 y(top-le)n(v)o(el)h(character)
g(data)h(of)g(a)h(template;)f Fr(attribute)d FC(e)o(xtracts)2000
-58 y(the)32 b(v)n(alue)g(of)g(an)g(attrib)n(ute;)g Fr(has)g
FC(checks)f(whether)h(speci\002c)g(nodes)2000 42 y(are)37
b(present;)g Fr(size)g FC(counts)g(the)h(number)e(of)h(root)g(elements)
g(in)h(a)2000 142 y(template;)25 b(and)g Fr(delete)f
FC(ef)n(fecti)n(v)o(ely)f(remo)o(v)o(es)h(the)i(speci\002ed)f(nodes)
2000 241 y(from)19 b(a)h(template.)g(The)g Fr(apply)e
FC(operation)h(applies)h(a)g(transformation)2000 341
y(to)28 b(the)g(speci\002ed)g(nodes,)f(under)g(the)i(assumption)e(that)
h(these)g(nodes)2000 441 y(ha)n(v)o(e)22 b(disjoint)g(subtrees.)g(If)h
Fy(f)32 b FC(is)23 b(a)g(local)g(method)e(accepting)g(e)o(xactly)2000
540 y(one)35 b(ar)o(gument)e(of)j(type)f Fr(XML)g FC(and)g(whose)h
(result)g(is)g(also)g(of)g(type)2000 640 y Fr(XML)p FC(,)f(then)h
Fr([])p Fy(f)45 b FC(abbre)n(viates)35 b(a)i(ne)n(w)f(local)g(method)f
(that)i(accepts)2000 739 y(and)c(returns)g(ar)o(guments)f(of)i(type)g
Fr(XML[])e FC(and)i(applies)f Fy(f)44 b FC(to)34 b(each)2000
839 y(array)e(entry)-5 b(.)31 b(A)j(recursi)n(v)o(e)d(v)n(ariant)h(of)h
Fr(apply)f FC(w)o(orks)g(without)g(the)2000 939 y(disjointness)c
(restriction.)2083 1041 y(Finally)-5 b(,)28 b(a)h FB(code)f(gap)g
FC(is)i(syntactic)f(sugar)e(for)i(a)g(gap)f(and)g(a)h(plug)2000
1140 y(operation:)23 b Fr(<{)p Fy(c)p Fr(}>)p FC(,)h(where)g
Fy(c)h FC(is)h(an)f(e)o(xpression)f(of)g(type)h Fr(String)e
FC(or)2000 1240 y Fr(XML)p FC(,)i(abbre)n(viates)g(a)i(gap)e
Fr(<[g]>)g FC(and)g(a)i(plug)e(operation)g(where)g(the)2000
1339 y(v)n(alue)20 b(of)h Fy(c)g FC(is)h(plugged)d(into)i
Fr(g)p FC(.)g(Alternati)n(v)o(ely)-5 b(,)18 b Fy(c)k
FC(can)e(be)h(a)h(statement)2000 1439 y(returning)j(a)i(v)n(alue)f(of)h
(type)g Fr(String)e FC(or)h Fr(XML)p FC(.)g(Code)h(gaps)f(can)h(also)
2000 1539 y(occur)g(as)i(attrib)n(utes)g(using)f(the)g(notation)g
Fs(name)6 b Fr(={)p Fy(c)p Fr(})p FC(.)2083 1641 y(Consider)35
b(a)i(method)d Fr(upperTitle)f FC(that)j(creates)g(a)g(cop)o(y)f(of)h
(a)2000 1740 y(recipe)c(collection)g(in)h(which)f(all)h(titles)h(are)f
(raised)f(to)h(upper)e(case.)2000 1840 y(W)-7 b(e)36
b(use)g(the)f(DTD)g(schema)g(from)f(Section)3401 1840
y
SDict begin H.S end
3401 1840 a FC(II)3456 1784 y
SDict begin H.R end
3456 1784 a 3456 1840
a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.2) cvn H.B /ANN pdfmark end
3456 1840 a 36 w FC(to)i(model)e(recipes.)2000 1940
y(The)28 b(follo)n(wing)f(sugared)g(syntax)2035 2069
y Fx(XML)36 b(toUpper\(XML)j(x\))c({)2106 2143 y(return)i
([[<{x.text\(\).toUpp)q(erC)q(ase\()q(\)}>)q(]];)
2035 2218 y(})2035 2293 y(XML)f(upperTitle\(XML)j(x\))d({)2106
2367 y(return)h(x.apply\(//title,)i(toUpper\);)2035 2442
y(})2000 2594 y FC(then)28 b(abbre)n(viates)f(the)h(more)g(cumbersome)e
(basic)j(syntax:)2035 2723 y Fx(XML)36 b(toUpper\(XML)j(x\))c({)2106
2798 y(return)i(XML.constant\("<[t])q(>)q(titl)q(e>")q(\))2458
2872 y(.plug\(new)h(Gap\("t"\),)2670 2947 y(XML.smash\(x.select\("tex)q
(t\(\))q("\)\))2776 3022 y(.toString\(\).toUpperCase)q(\(\)\);)2035
3097 y(})2035 3171 y(XML)e(toUpperArray\(XML[])41 b(x\))35
b({)2106 3246 y(XML[])h(y)g(=)f(new)i(XML[x.length];)2106
3321 y(for)f(\(int)g(i=0;)h(i)2388 4874 y(<{x[i].select\(sec)q(tio)q
(n/ti)q(tle)q(\)}><)q(/ti)q(tle>)2388 4949 y()2458
5023 y(<{x[i].select\(section/)q(fig)q(ure\))q(.le)q(ngth)q(}>)2388
5098 y()2388 5173 y(<{summary\(x[i].select\(se)q(cti)q(on/s)
q(ect)q(ion\))q(\)}>)2317 5248 y(]];)2106 5322
y(return)f(XML.smash\(y\);)2035 5397 y(})2035 5472 y(String)g
(Q6\(String)h(s\))e({)2106 5546 y(XML)g(x)f(=)h(XML.get\(s,)i
("book.dtd"\);)2106 5621 y(return)f([[)p eop end
%%Page: 14 14
TeXDict begin 14 13 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192
-307 a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.14) cvn H.B /DEST pdfmark
end
-192 -307
a FJ(IEEE)19 b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19
b(ENGINEERING)2794 b(14)302 -58 y Fx(<{summary\(x.select\(book)q(/sec)q
(tio)q(n\)\)})q(>)231 17 y(]])161 92 y
(.analyze\("Q6.dtd"\).toStr)q(ing)q(\(\);)-157 167 y(})-192
318 y FC(The)28 b(structure)g(of)g(this)h(code)f(is)h(similar)g(to)g
(the)f(XQuery)f(v)o(ersion.)-109 419 y(The)34 b(ne)o(xt)f(e)o(xample)f
(sho)n(ws)i(ho)n(w)g(a)g(group-lik)o(e)d(transformation)-192
518 y(task)50 b(inspired)e(by)i(use)f(cases)i(in)e(the)h(XSL)-8
b(T)50 b(2.0)f(requirement)-192 618 y(speci\002cation)35
b([54)o(])h(can)g(be)h(solv)o(ed)e(with)j(X)t FD(A)q(C)t(T)r
FC(.)f(The)f(task)g(is)i(to)-192 718 y(produce)28 b(an)h(XHTML)g
(document)f(where)h(cities)h(are)f(grouped)f(in)h(a)-192
817 y(table)e(according)d(to)j(their)g(country)-5 b(,)24
b(and)i(with)h(the)g(total)g(population)-192 917 y(computed)38
b(for)h(each)g(group.)f(The)h(format)g(for)g(cities)h(is)h(the)e(one)
-192 1017 y(e)o(x)o(empli\002ed)25 b(in)i(Section)593
1017 y
SDict begin H.S end
593 1017 a FC(II)648 961 y
SDict begin H.R end
648 961 a 648 1017
a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.2) cvn H.B /ANN pdfmark end
648 1017 a FC(.)g(Since)g(XHTML)g(documents)e(ha)n(v)o(e)h(the)-192
1116 y(same)33 b(basic)f(structure)g(it)h(is)g(bene\002cial)f(to)h(pro)
o(vide)d(the)i(follo)n(wing)-192 1216 y(template:)-157
1343 y Fx(XML)k(xhtml)h(=)f([[)-86 1418 y()-51
1493 y(<[title]><)q(/ti)q(tle>)q()-51
1568 y(<[body]>)-86 1642 y()-157
1717 y(]];)-192 1868 y FC(The)28 b(transformation)e(task)j(is)g
(accomplished)e(by)-157 1996 y Fx(XML)36 b(getRows\(XML[])j(xs\))e({)
-86 2070 y(XML[])g(rs)e(=)h(new)g(XML[xs.length];)-86
2145 y(for)g(\(int)g(i=0;)h(i)373 2892 y(<{country}> | )373 2967
y(<{names}> | )373 3042 y(<{pop}> | )337
3116 y(]];)-86 3191 y(})-86 3266 y(return)h(XML.smash\(rs\);)-157
3340 y(})-157 3415 y(XML)f(getXHTML\(String)k(s\))c({)-86
3490 y(XML)g(table)h(=)e(xhtml.plug\(head,"Group)q(s)41
b(of)36 b(Cities"\);)514 3565 y(.plug\(body,[[<[ro)q(ws]>)q(]])q(\);)-86 3639 y(XML)g(x)g(=)f(XML.get\(s,"cities.dtd"\))q
(;)-86 3714 y(XML[])i(cs)e(=)h(x.select\("/cities/city")q(\);)-86
3789 y(XML[])h(gs)e(=)h(XML.group\(cs,"city/@cou)q(ntry)q("\);)-86
3864 y(return)h(table.plug\(rows,getRows\()q(gs\))q(\);)337
3938 y(.analyze\("xhtml1-trans)q(itio)q(nal)q(.dtd)q("\);)-157
4013 y(})-192 4164 y FC(Note)22 b(ho)n(w)f(the)h(result)g(is)h
(constructed)d(in)i(a)h(top-do)n(wn)c(f)o(ashion)i(using)-192
4264 y(the)41 b Fr(plug)f FC(operation.)f(This)j(programming)37
b(style)42 b(is)g(appropriate)-192 4363 y(when)25 b(sub-templates)g(of)
h(the)g(transformation,)d(such)i(as)i Fr(xhtml)d FC(and)-192
4463 y Fr(table)29 b FC(in)h(the)g(abo)o(v)o(e)e(e)o(xample,)h(are)h
(candidates)f(for)g(reuse)h(within)-192 4562 y(the)f(transformation.)
-192 4563 y
SDict begin H.S end
-192 4563 a -192 4563 a
SDict begin 12 H.A end
-192 4563 a -192
4563 a
SDict begin [ /View [/XYZ H.V] /Dest (section.Appendix.C) cvn H.B /DEST
pdfmark end
-192 4563 a 611 4787 a FC(A)t FD(P)t(P)t(E)t(N)t(D)t(I)t(X)c
FC(I)t(I)t(I)13 4887 y(M)t FD(O)t(D)t(E)t(L)t(I)t(N)t(G)g(A)t(N)t(D)g
FC(C)t FD(H)t(E)t(C)t(K)t(I)t(N)t(G)g FC(P)t FD(L)t(U)t(G)g
FC(O)t FD(P)t(E)t(R)t(A)m(T)t(I)t(O)t(N)t(S)-192 4922
y
SDict begin H.S end
-192 4922 a -192 4922 a
SDict begin 12 H.A end
-192 4922 a -192 4922 a
SDict begin [ /View [/XYZ H.V] /Dest (section*.11) cvn H.B /DEST pdfmark
end
-192
4922 a -109 5022 a FC(This)k(appendix)e(sho)n(ws)i(the)g(transfer)f
(function)g(for)g Fr(plug)g FC(opera-)-192 5121 y(tions)i(and)f(the)g
(compile-time)f(test)i(for)f(absence)g(of)g(runtime)g(errors)-192
5221 y(at)g(these)g(operations.)-109 5322 y(A)24 b(template)g(plug)f
(in)m(v)n(ocation,)f Fy(x)p Fr(.plug)n Fz(\()p Fy(g)s(;)14
b(y)s Fz(\))24 b FC(where)g Fy(y)j FC(has)d(type)-192
5422 y Fr(XML)p FC(,)33 b(is)i(modeled)e(by)h(adding)f(template)g
(edges)h(from)f(nodes)h(with)-192 5522 y(open)i Fy(g)41
b FC(gaps)c(in)392 5501 y Fk(b)380 5522 y Fz(\001\()p
Fy(x)p Fz(\))i FC(to)f(roots)f(in)1020 5501 y Fk(b)1008
5522 y Fz(\001\()p Fy(y)s Fz(\))p FC(.)h(A)g(string)f(plug,)g(that)-192
5621 y(is,)h(where)f Fy(y)k FC(has)c(type)g Fr(String)p
FC(,)f(is)i(modeled)e(by)h(collecting)g(the)2000 -58
y(possible)23 b(strings)h(of)f Fy(y)k FC(at)d(the)g(program)d(point)i
Fy(`)h FC(into)f(the)h(associated)2000 42 y(chardata)j(node:)2069
180 y Fk(b)2058 201 y Fz(\001\()p Fy(x)p Fr(.plug)o Fz(\()p
Fy(g)s(;)14 b(y)s Fz(\)\))2174 376 y(=)2262 234 y Fk(\()2329
320 y Fs(tplug)7 b Fz(\()2554 299 y Fk(b)2542 320 y Fz(\001\()p
Fy(x)p Fz(\))p Fy(;)14 b(g)s(;)2851 299 y Fk(b)2839 320
y Fz(\001)q(\()p Fy(y)s Fz(\)\))267 b FC(if)29 b Fy(y)i
FC(has)e(type)f Fr(XML)2329 439 y Fs(splug)7 b Fz(\()2560
418 y Fk(b)2548 439 y Fz(\001)q(\()p Fy(x)p Fz(\))p Fy(;)14
b(g)s(;)g Fs(string)3060 459 y Fu(`)3092 439 y Fz(\()p
Fy(y)s Fz(\)\))84 b FC(if)29 b Fy(y)i FC(has)e(type)f
Fr(String)2000 592 y FC(W)-7 b(e)29 b(use)g(the)g(auxiliary)e
(functions)g Fs(tplug)7 b FC(,)29 b Fs(splug)8 b FC(,)29
b(and)e Fs(string)3902 613 y Fu(`)3934 592 y FC(:)2058
751 y Fs(tplug)7 b Fz(\(\()p Fy(R)2366 763 y Fv(1)2404
751 y Fy(;)14 b(T)2490 763 y Fv(1)2527 751 y Fy(;)g(S)2615
763 y Fv(1)2652 751 y Fy(;)g(P)2742 763 y Fv(1)2779 751
y Fz(\))p Fy(;)g(g)s(;)g Fz(\()p Fy(R)3023 763 y Fv(2)3060
751 y Fy(;)g(T)3146 763 y Fv(2)3183 751 y Fy(;)g(S)3271
763 y Fv(2)3308 751 y Fy(;)g(P)3398 763 y Fv(2)3436 751
y Fz(\)\))23 b(=)2174 851 y(\()p Fy(R)2269 863 y Fv(1)2307
851 y Fy(;)2206 950 y(T)2255 962 y Fv(1)2311 950 y FA([)18
b Fy(T)2433 962 y Fv(2)2489 950 y FA([)g(f)p Fz(\()p
Fy(n;)c(g)s(;)g(m)p Fz(\))23 b FA(j)g Fy(n)g FA(2)g Fs(op)l(en)7
b Fz(\()p Fy(P)3385 962 y Fv(1)3423 950 y Fz(\()p Fy(g)s
Fz(\)\))48 b FA(^)g Fy(m)23 b FA(2)g Fy(R)3950 962 y
Fv(2)3987 950 y Fz(\))p FA(g)p Fy(;)2206 1050 y(\025m:S)2401
1062 y Fv(1)2439 1050 y Fz(\()p Fy(m)p Fz(\))c FA([)g
Fy(S)2720 1062 y Fv(2)2757 1050 y Fz(\()p Fy(m)p Fz(\))p
Fy(;)2206 1150 y(\025h:)p Fb(if)36 b Fy(h)9 b Fz(=)g
Fy(g)2326 1249 y Fb(then)28 b Fz(\()p Fy(o)2579 1261
y Fv(2)2617 1249 y Fy(;)14 b(r)2691 1261 y Fv(1)2747
1249 y FA([)19 b Fy(r)2858 1261 y Fv(2)2896 1249 y Fy(;)14
b(t)2963 1261 y Fv(2)3000 1249 y Fy(;)g(a)3081 1261 y
Fv(2)3118 1249 y Fz(\))2326 1349 y Fb(else)28 b Fz(\()p
Fy(o)2552 1361 y Fv(1)2608 1349 y FA([)19 b Fy(o)2722
1361 y Fv(2)2760 1349 y Fy(;)14 b(r)2834 1361 y Fv(1)2890
1349 y FA([)19 b Fy(r)3001 1361 y Fv(2)3038 1349 y Fy(;)14
b Fs(mer)l(ge)7 b Fz(\()p Fy(t)3357 1361 y Fv(1)3394
1349 y Fy(;)14 b(t)3461 1361 y Fv(2)3498 1349 y Fz(\))p
Fy(;)g Fs(mer)l(ge)7 b Fz(\()p Fy(a)3863 1361 y Fv(1)3900
1349 y Fy(;)14 b(a)3981 1361 y Fv(2)4018 1349 y Fz(\)\)\))2000
1503 y FC(where)50 b Fy(P)2307 1515 y Fv(1)2345 1503
y Fz(\()p Fy(h)p Fz(\))65 b(=)f(\()p Fy(o)2723 1515 y
Fv(1)2760 1503 y Fy(;)14 b(r)2834 1515 y Fv(1)2872 1503
y Fy(;)g(t)2939 1515 y Fv(1)2976 1503 y Fy(;)g(a)3057
1515 y Fv(1)3094 1503 y Fz(\))p FC(,)52 b Fy(P)3252 1515
y Fv(2)3289 1503 y Fz(\()p Fy(h)p Fz(\))65 b(=)f(\()p
Fy(o)3667 1515 y Fv(2)3705 1503 y Fy(;)14 b(r)3779 1515
y Fv(2)3817 1503 y Fy(;)g(t)3884 1515 y Fv(2)3921 1503
y Fy(;)g(a)4002 1515 y Fv(2)4039 1503 y Fz(\))p FC(,)2000
1603 y Fs(mer)l(ge)35 b FC(is)30 b(as)f(de\002ned)e(in)i(Section)3076
1604 y
SDict begin H.S end
3076 1604 a -1 x FC(IV)-8 b(-C)3238 1546 y
SDict begin H.R end
3238
1546 a 3238 1603 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (subsection.4.3) cvn H.B /ANN pdfmark end
3238 1603 a FC(,)29 b(and:)2058 1762
y Fs(splug)8 b Fz(\(\()p Fy(R)q(;)14 b(T)7 b(;)14 b(S;)g(P)e
Fz(\))p Fy(;)i(g)s(;)g(L)p Fz(\))21 b(=)2174 1861 y(\()p
Fy(R)q(;)2206 1961 y(T)30 b FA([)19 b(f)p Fz(\()p Fy(n;)14
b(g)s(;)g(c)p Fz(\))22 b FA(j)h Fy(n)g FA(2)g Fs(op)l(en)7
b Fz(\()p Fy(P)12 b Fz(\()p Fy(g)s Fz(\)\))19 b FA(\\)g
Fy(N)3455 1973 y Ft(T)3512 1961 y FA(g)p Fy(;)2206 2061
y(S)5 b Fz([)p Fy(n)23 b FA(7!)g Fy(S)5 b Fz(\()p Fy(n)p
Fz(\))19 b FA([)f Fy(L)29 b FC(for)f Fy(n)23 b FA(2)g
Fz(\()p Fs(op)l(en)7 b Fz(\()p Fy(P)12 b Fz(\()p Fy(g)s
Fz(\)\))19 b FA(\\)g Fy(N)3689 2073 y Ft(A)3746 2061
y Fz(\))g FA([)g(f)p Fy(c)p FA(g)p Fz(])2206 2160 y Fy(P)12
b Fz([)p Fy(g)26 b FA(7!)d Fz(\()p FA(;)p Fy(;)14 b Fs(r)l(emove)l(d)9
b Fz(\()p Fy(P)j Fz(\()p Fy(g)s Fz(\)\))p Fy(;)i FA(f)p
Fn(CLOSED)p FA(g)p Fy(;)g FA(f)p Fn(CLOSED)o FA(g)p Fz(\)]\))2000
2314 y FC(where)26 b Fy(c)i FC(is)g(the)f(chardata)f(node)g
(corresponding)d(to)28 b(the)f(occurrence)2000 2414 y(of)h(the)h
Fr(plug)e FC(operation.)2083 2518 y(A)36 b(separate)f(program)e
(analysis,)i(see)h([17)n(],)g(pro)o(vides)d(a)j(re)o(gular)2000
2618 y(string)22 b(language)e(o)o(v)o(er)h(the)h(Unicode)f(alphabet)g
(for)g(each)h(occurrence)2000 2718 y(of)j(a)h(string)f(e)o(xpression)f
(in)i(the)f(program.)f(The)h(set)h Fs(string)3787 2738
y Fu(`)3819 2718 y Fz(\()p Fy(y)s Fz(\))h FC(thus)2000
2817 y(contains)g(an)h(upper)e(approximation)f(of)j(the)f(set)i(of)f
(strings)g(that)f(the)2000 2917 y(e)o(xpression)18 b
Fy(y)24 b FC(may)19 b(e)n(v)n(aluate)h(to)g(at)g(the)h(program)d(point)
h Fy(`)h FC(at)h(runtime.)2083 3021 y(The)50 b Fs(tplug)58
b FC(function)49 b(models)h Fr(plug)g FC(operations)f(where)g(the)2000
3121 y(second)32 b(operand)f(is)j(an)f(XML)g(template)f(e)o(xpression.)
f(It)i(\002nds)g(the)2000 3221 y(summary)k(graphs)g(for)h(the)g(tw)o(o)
h(sub-e)o(xpressions)d(and)i(combines)2000 3320 y(them)25
b(as)h(follo)n(ws:)e(The)h(roots)g(are)g(those)g(of)g(the)h(\002rst)g
(graph)d(since)j(it)2000 3420 y(represents)20 b(the)i(outermost)d
(template.)i(The)g(template)g(edges)g(become)2000 3519
y(the)34 b(union)f(of)h(those)g(in)g(the)g(tw)o(o)g(graphs)f(plus)i(a)f
(ne)n(w)g(edge)g(from)2000 3619 y(each)40 b(node)f(that)h(may)g(ha)n(v)
o(e)f(open)g(gaps)h(of)g(the)g(gi)n(v)o(en)f(name)g(to)2000
3719 y(each)24 b(root)f(in)i(the)f(second)f(graph.)g(The)h(string)g
(edge)f(sets)j(are)e(simply)2000 3818 y(joined)k(without)f(adding)h(ne)
n(w)g(information.)e(F)o(or)i(the)h(gaps)f(that)h(are)2000
3918 y(plugged)f(into,)h(we)h(tak)o(e)g(the)g(gap)f(presence)g
(information)f(from)g(the)2000 4018 y(second)34 b(graph,)g(e)o(xcept)g
(for)h(the)h Fs(r)l(emove)l(d)45 b FC(component,)33 b(which)i(is)2000
4117 y(joined)30 b(from)f(the)i(tw)o(o)g(summary)e(graphs.)g(F)o(or)i
(the)f(other)g(gaps)g(we)2000 4217 y(use)i(the)h Fs(mer)l(ge)39
b FC(function)30 b(to)j(mark)e(gaps)h(as)h(\223de\002nitely)e(open\224)
g(if)2000 4316 y(the)o(y)e(are)h(so)g(in)g(one)f(of)h(the)g(graphs)e
(and)i(otherwise)f(tak)o(e)h(the)g(least)2000 4416 y(upper)d(bound.)
2083 4520 y(The)49 b Fs(splug)58 b FC(function)48 b(models)h
Fr(plug)f FC(operations)g(where)h(the)2000 4620 y(second)32
b(operand)g(is)i(a)g(string)f(e)o(xpression.)e(It)j(adds)f(an)g(edge)g
(from)2000 4720 y(each)h(template)h(node)e(with)j(an)e(open)g(gap)g(of)
h(the)g(gi)n(v)o(en)e(name)h(to)2000 4819 y(the)22 b(chardata)f(node)g
(that)h(corresponds)e(to)i(the)g(operation.)e(The)i(string)2000
4919 y(edge)27 b(map)g(is)i(updated)d(by)i(adding)e(the)i(set)g(of)g
(strings)g(obtained)e(by)2000 5019 y(the)38 b(string)f(analysis)h(for)f
(the)h(string)g(e)o(xpression)e(to)i(the)g(chardata)2000
5118 y(node)i(and)h(to)g(each)g(attrib)n(ute)g(with)h(an)f(open)f(gap)g
(of)h(the)h(gi)n(v)o(en)2000 5218 y(name.)d(The)g(gap)g(presence)g(map)
g(is)h(updated)f(to)h(mark)e(the)i(gaps)2000 5318 y(as)29
b(\223de\002nitely)f(closed\224.)2083 5422 y(The)34 b(array)g(v)n
(ariants)g(of)g Fr(plug)g FC(are)g(modeled)f(as)j(abo)o(v)o(e,)c(e)o
(xcept)2000 5522 y(that)21 b(we)g(need)f(to)h(model)f(the)g(case)i
(where)e(the)g(gi)n(v)o(en)g(array)g(is)h(shorter)2000
5621 y(than)k(the)g(number)e(of)i(gaps)g(of)g(the)g(gi)n(v)o(en)f(name)
g(and)h(the)g(remaining)p eop end
%%Page: 15 15
TeXDict begin 15 14 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192
-307 a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.15) cvn H.B /DEST pdfmark
end
-192 -307
a FJ(IEEE)19 b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19
b(ENGINEERING)2794 b(15)-192 -58 y FC(gaps)25 b(are)g(\002lled)h(with)f
(the)h(empty)e(string.)h(This)g(is)i(accomplished)c(by)-192
42 y(adding)c(the)i(empty)f(string)g(to)h(the)g(string)f(edge)g(map)g
(for)g(the)h(chardata)-192 142 y(node)42 b(corresponding)e(to)k(the)f
(operation)f(and,)g(for)h(the)g(template)-192 241 y(array)24
b(v)n(ariant,)h(also)g(adding)f(a)i(template)f(edge)g(from)f(each)h
(template)-192 341 y(node)20 b(with)i(an)f(open)f(gap)h(of)g(the)g(gi)n
(v)o(en)f(name)h(to)h(the)f(chardata)f(node.)-109 539
y(As)h(mentioned)e(in)i(Section)732 539 y
SDict begin H.S end
732 539 a FC(II)787
484 y
SDict begin H.R end
787 484 a 787 539 a
SDict begin [ /Color [1 0 0] /H /I /Border [0 0 12] /Subtype /Link
/Dest (section.2) cvn H.B /ANN pdfmark end
787 539 a FC(,)g(one)f(of)g(the)h
(compile-time)e(guaran-)-192 639 y(tees)24 b(that)f(our)f(analysis)h
(can)g(pro)o(vide)e(is)j(that)f Fr(plug)f FC(XML)h(templates)-192
738 y(are)h(ne)n(v)o(er)e(plugged)g(into)h(attrib)n(ute)h(gaps.)e(A)j
(safe)e(approximation)e(of)-192 838 y(this)33 b(information)e(can)h(be)
h(e)o(xtracted)f(from)f(the)i(summary)f(graphs:)-192
938 y(F)o(or)d(a)i(speci\002c)f(plug)f(operation)e Fy(x)p
Fr(.plug)o Fz(\()p Fy(g)s(;)14 b(y)s Fz(\))30 b FC(where)f
Fy(y)k FC(has)d(type)-192 1037 y Fr(XML)21 b FC(or)h
Fr(XML[])p FC(,)f(consider)g(the)h(summary)e(graph)h
Fz(\()p Fy(R)q(;)14 b(T)7 b(;)14 b(S;)g(P)e Fz(\))22
b FC(gi)n(v)o(en)-192 1137 y(by)k(the)g(data-\003o)n(w)f(analysis)h
(for)f(the)h(e)o(xpression)e Fy(x)p FC(.)j(W)-7 b(e)27
b(no)n(w)f(check)-192 1237 y(the)41 b(plug)f(operation)f(simply)i(by)f
(inspecting)g(that)h(the)g(follo)n(wing)-192 1336 y(condition)27
b(is)i(satis\002ed:)399 1488 y Fs(agaps)9 b Fz(\()p Fy(P)j
Fz(\()p Fy(g)s Fz(\)\))23 b(=)g FA(f)p Fn(CLOSED)o FA(g)-192
1639 y FC(If)44 b(a)g(violation)f(is)h(detected,)f(a)h(helpful)f(error)
g(message)g(can)h(be)-192 1738 y(generated.)27 b(Additionally)-5
b(,)26 b(if)139 1890 y Fs(agaps)8 b Fz(\()p Fy(P)k Fz(\()p
Fy(g)s Fz(\)\))19 b FA([)g Fs(tgaps)8 b Fz(\()p Fy(P)k
Fz(\()p Fy(g)s Fz(\)\))23 b(=)g FA(f)p Fn(CLOSED)o FA(g)-192
2041 y FC(then)h(the)h(plug)f(operation)f(will)i(ne)n(v)o(er)e(ha)n(v)o
(e)i(an)o(y)f(ef)n(fect)g(because)g(the)-192 2141 y Fy(g)g
FC(gap)19 b(is)i(ne)n(v)o(er)e(present)h(in)h(the)f Fy(x)i
FC(template.)d(In)h(this)h(case,)g(a)g(w)o(arning)-192
2240 y(is)29 b(generated.)622 2436 y(R)t FD(E)t(F)t(E)t(R)t(E)t(N)t(C)t
(E)t(S)-192 2464 y
SDict begin H.S end
-192 2464 a -192 2464 a
SDict begin 12 H.A end
-192 2464
a -192 2464 a
SDict begin [ /View [/XYZ H.V] /Dest (section*.12) cvn H.B /DEST pdfmark
end
-192 2464 a -192 2484 a
SDict begin H.S end
-192 2484 a -192
2484 a
SDict begin 9 H.A end
-192 2484 a -192 2484 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.3) cvn H.B /DEST pdfmark
end
-192 2484 a -159 2558
a FD([1])42 b(T)-5 b(.)23 b(Bray)l(,)i(J.)e(P)o(aoli,)j(C.)e(M.)f
(Sperber)o(g-McQueen,)k(and)e(E.)f(Maler)m(,)h(\223Extensible)-40
2632 y(Markup)31 b(Language)g(\(XML\))e(1.0)h(\(second)g(edition\),)-5
b(\224)33 b(October)e(2000,)f(W3C)-40 2707 y(Recommendation.)d
Fx(http://www.w3.org/TR/REC-)q(xml)q FD(.)-192 2722 y
SDict begin H.S end
-192 2722 a -192 2722 a
SDict begin 9 H.A end
-192 2722 a -192 2722 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.4) cvn H.B /DEST pdfmark
end
-192
2722 a -159 2782 a FD([2])42 b(H.)49 b(S.)g(Thompson,)g(D.)h(Beech,)h
(M.)e(Malone)o(y)l(,)i(and)f(N.)f(Mendelsohn,)-40 2857
y(\223XML)24 b(Schema)h(part)g(1:)g(Structures,)-5 b(\224)26
b(May)f(2001,)f(W3C)g(Recommendation.)-40 2931 y Fx
(http://www.w3.org/TR/xm)q(lsc)q(hema)q(-1/)q FD(.)-192
2946 y
SDict begin H.S end
-192 2946 a -192 2946 a
SDict begin 9 H.A end
-192 2946 a -192 2946
a
SDict begin [ /View [/XYZ H.V] /Dest (Item.5) cvn H.B /DEST pdfmark
end
-192 2946 a -159 3006 a FD([3])42 b(A.)d(M\370ller)m(,)i
(\223Document)g(Structure)h(Description)g(2.0,)-5 b(\224)40
b(December)h(2002,)-40 3081 y(BRICS,)23 b(Department)i(of)d(Computer)i
(Science,)g(Uni)n(v)o(ersity)h(of)e(Aarhus,)f(Notes)-40
3155 y(Series)j(NS-02-7.)e(A)-5 b(v)n(ailable)27 b(from)d
Fx(http://www.brics.dk/DSD/)p FD(.)-192 3170 y
SDict begin H.S end
-192 3170
a -192 3170 a
SDict begin 9 H.A end
-192 3170 a -192 3170 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.6) cvn H.B /DEST pdfmark
end
-192 3170 a -159
3230 a FD([4])42 b(S.)59 b(Pemberton)j Fa(et)f(al.)p
FD(,)e(\223XHTML)g(1.0:)i(The)f(e)o(xtensible)j(hyperte)o(xt)-40
3305 y(markup)96 b(language,)-5 b(\224)98 b(January)f(2000,)e(W3C)g
(Recommendation.)-40 3380 y Fx(http://www.w3.org/TR/xh)q(tml)q(1)p
FD(.)-192 3395 y
SDict begin H.S end
-192 3395 a -192 3395 a
SDict begin 9 H.A end
-192 3395 a
-192 3395 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.7) cvn H.B /DEST pdfmark
end
-192 3395 a -159 3454 a FD([5])42 b(Amazon.com,)80
b(\223)-5 b(Amazon)80 b(web)g(services,)-5 b(\224)82
b Fx(http://associates.)-40 3529 y(amazon.com/exec/panama/)q(ass)q
(ocia)q(tes)q(/joi)q(n/d)q(evel)q(ope)q(r/)-40 3604 y(resources.html)p
FD(,)27 b(2002.)-192 3613 y
SDict begin H.S end
-192 3613 a -192 3613 a
SDict begin 9 H.A end
-192
3613 a -192 3613 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.8) cvn H.B /DEST pdfmark
end
-192 3613 a -159 3678 a FD([6])42
b(V)-9 b(.)68 b(Apparao)h Fa(et)f(al.)p FD(,)g(\223Document)h(Object)h
(Model)f(\(DOM\))f(le)n(v)o(el)-40 3753 y(1)109 b(speci\002cation,)-5
b(\224)112 b(October)e(1998,)f(W3C)f(Recommendation.)-40
3828 y Fx(http://www.w3.org/TR/RE)q(C-D)q(OM-L)q(eve)q(l-1/)q
FD(.)-192 3843 y
SDict begin H.S end
-192 3843 a -192 3843 a
SDict begin 9 H.A end
-192 3843 a
-192 3843 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.9) cvn H.B /DEST pdfmark
end
-192 3843 a -159 3903 a FD([7])42 b(J.)23
b(Hunter)i(and)f(B.)f(McLaughlin,)i(\223JDOM,)-5 b(\224)24
b(2001,)g Fx(http://jdom.org/)p FD(.)-192 3918 y
SDict begin H.S end
-192
3918 a -192 3918 a
SDict begin 9 H.A end
-192 3918 a -192 3918 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.10) cvn H.B /DEST pdfmark
end
-192 3918
a -159 3977 a FD([8])42 b(A.)37 b(S.)f(Christensen,)j(A.)d(M\370ller)m
(,)j(and)e(M.)g(I.)f(Schw)o(artzbach,)41 b(\223Extending)-40
4052 y(Ja)o(v)n(a)33 b(for)g(high-le)n(v)o(el)i(W)-5
b(eb)32 b(service)i(construction,)-5 b(\224)36 b Fa(A)n(CM)c(T)l(r)o
(ansactions)j(on)-40 4127 y(Pr)m(o)o(gr)o(amming)g(Langua)o(g)o(es)i
(and)d(Systems)p FD(,)h(v)o(ol.)g(25,)f(no.)g(6,)g(pp.)g(814\226875,)
-40 4201 y(No)o(v)o(ember)25 b(2003.)-192 4202 y
SDict begin H.S end
-192
4202 a -192 4202 a
SDict begin 9 H.A end
-192 4202 a -192 4202 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.11) cvn H.B /DEST pdfmark
end
-192 4202
a -159 4276 a FD([9])42 b(A.)23 b(S.)g(Christensen)j(and)f(A.)e
(M\370ller)m(,)i Fa(JWIG)f(User)g(Manual)p FD(,)g(BRICS,)g(Depart-)-40
4351 y(ment)e(of)f(Computer)h(Science,)h(Uni)n(v)o(ersity)g(of)e
(Aarhus,)g(June)h(2002,)f(Notes)h(Se-)-40 4426 y(ries)d(NS-02-6.)g(A)-5
b(v)n(ailable)21 b(from)d Fx(http://www.brics.dk/JW)q(IG/)q(manu)q(al/)
q FD(.)-192 4441 y
SDict begin H.S end
-192 4441 a -192 4441 a
SDict begin 9 H.A end
-192 4441
a -192 4441 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.12) cvn H.B /DEST pdfmark
end
-192 4441 a 59 x FD([10])42 b(J.)23 b(Clark)i(and)f(S.)f
(DeRose,)h(\223XML)f(path)i(language,)-5 b(\224)27 b(No)o(v)o(ember)d
(1999,)g(W3C)-40 4575 y(Recommendation.)j Fx(http://www.w3.org/TR/xpat)
q(h)p FD(.)-192 4590 y
SDict begin H.S end
-192 4590 a -192 4590 a
SDict begin 9 H.A end
-192 4590
a -192 4590 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.13) cvn H.B /DEST pdfmark
end
-192 4590 a 60 x FD([11])42 b(A.)24 b(S.)f(Christensen,)j
(A.)e(M\370ller)m(,)h(and)g(M.)f(I.)f(Schw)o(artzbach,)k(\223Static)g
(analysis)-40 4725 y(for)19 b(dynamic)h(XML,)-5 b(\224)18
b(BRICS,)h(T)-5 b(ech.)19 b(Rep.)f(RS-02-24,)h(May)g(2002,)g(Presented)
-40 4799 y(at)29 b(Programming)g(Language)h(T)-5 b(echnologies)32
b(for)c(XML,)f(PLAN-X,)g(October)-40 4874 y(2002.)-192
4875 y
SDict begin H.S end
-192 4875 a -192 4875 a
SDict begin 9 H.A end
-192 4875 a -192 4875
a
SDict begin [ /View [/XYZ H.V] /Dest (Item.14) cvn H.B /DEST pdfmark
end
-192 4875 a 74 x FD([12])42 b(C.)20 b(Kirk)o(e)o(gaard,)j(A.)c(S.)h
(Christensen,)i(and)f(A.)f(M\370ller)m(,)i(\223)-5 b(A)20
b(runtime)i(system)f(for)-40 5023 y(XML)k(transformations)j(in)e(Ja)o
(v)n(a,)-5 b(\224)27 b(BRICS,)e(T)-5 b(ech.)26 b(Rep.)g(RS-03-29,)g
(October)-40 5098 y(2003.)-192 5099 y
SDict begin H.S end
-192 5099 a -192
5099 a
SDict begin 9 H.A end
-192 5099 a -192 5099 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.15) cvn H.B /DEST pdfmark
end
-192 5099 a 74 x FD([13])42
b(J.)34 b(Bloch,)h Fa(Ef)o(fective)i(Java)f(Pr)m(o)o(gr)o(amming)f
(Langua)o(g)o(e)h(Guide)p FD(.)104 b(Addison-)-40 5248
y(W)-5 b(esle)o(y)l(,)24 b(June)g(2001.)-192 5262 y
SDict begin H.S end
-192
5262 a -192 5262 a
SDict begin 9 H.A end
-192 5262 a -192 5262 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.16) cvn H.B /DEST pdfmark
end
-192 5262
a 60 x FD([14])42 b(A.)33 b(Berlea)j(and)e(H.)g(Seidl,)g(\223T)n
(ransforming)h(XML)e(documents)i(using)g(fxt,)-5 b(\224)-40
5397 y Fa(Computing)42 b(and)e(Information)j(T)-6 b(ec)o(hnolo)o(gy)l
(,)42 b(Special)h(Issue)d(on)g(Domain-)-40 5472 y(Speci\002c)26
b(Langua)o(g)o(es)p FD(,)f(v)o(ol.)e(10,)h(no.)f(1,)g(pp.)g(19\22635,)h
(2002.)-192 5486 y
SDict begin H.S end
-192 5486 a -192 5486 a
SDict begin 9 H.A end
-192 5486
a -192 5486 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.17) cvn H.B /DEST pdfmark
end
-192 5486 a 60 x FD([15])42 b(F)-5 b(.)38
b(Nielson,)j(H.)d(R.)h(Nielson,)i(and)f(C.)f(Hankin,)h
Fa(Principles)h(of)f(Pr)m(o)o(gr)o(am)-40 5621 y(Analysis)p
FD(.)67 b(Springer)o(-V)-7 b(erlag,)26 b(October)f(1999.)2000
-157 y
SDict begin H.S end
2000 -157 a 2000 -157 a
SDict begin 9 H.A end
2000 -157 a 2000 -157
a
SDict begin [ /View [/XYZ H.V] /Dest (Item.18) cvn H.B /DEST pdfmark
end
2000 -157 a 99 x FD([16])42 b(J.)17 b(B.)g(Kam)g(and)h(J.)f(D.)f
(Ullman,)i(\223Monotone)i(data)f(\003o)n(w)e(analysis)j(frame)n(w)o
(orks,)-5 b(\224)2152 17 y Fa(Acta)24 b(Informatica)p
FD(,)h(v)o(ol.)f(7,)f(pp.)g(305\226317,)h(1977,)g(Springer)o(-V)-7
b(erlag.)2000 37 y
SDict begin H.S end
2000 37 a 2000 37 a
SDict begin 9 H.A end
2000 37 a 2000
37 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.19) cvn H.B /DEST pdfmark
end
2000 37 a 60 x FD([17])42 b(A.)19 b(S.)h(Christensen,)i(A.)d
(M\370ller)m(,)j(and)e(M.)g(I.)f(Schw)o(artzbach,)24
b(\223Precise)e(analysis)2152 172 y(of)i(string)g(e)o(xpressions,)-5
b(\224)26 b(in)e Fa(Pr)m(oc.)f(10th)i(International)i(Static)f
(Analysis)e(Sym-)2152 247 y(posium,)i(SAS)g('03)p FD(,)g(ser)l(.)h
(LNCS,)e(v)o(ol.)h(2694.)75 b(Springer)o(-V)-7 b(erlag,)29
b(June)d(2003,)2152 321 y(pp.)d(1\22618.)2000 341 y
SDict begin H.S end
2000
341 a 2000 341 a
SDict begin 9 H.A end
2000 341 a 2000 341 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.20) cvn H.B /DEST pdfmark
end
2000 341 a 60
x FD([18])42 b(A.)18 b(M\370ller)j(and)e(M.)g(I.)f(Schw)o(artzbach,)23
b(\223The)c(XML)f(re)n(v)o(olution)k(-)d(technologies)2152
476 y(for)j(the)g(future)h(Web,)-5 b(\224)22 b(December)h(2001,)e
(BRICS,)h(Department)i(of)d(Computer)2152 551 y(Science,)31
b(Uni)n(v)o(ersity)h(of)d(Aarhus,)h(Notes)g(Series)g(NS-01-8.)f(A)-5
b(v)n(ailable)33 b(from)2152 626 y Fx(http://www.brics.dk/~amo)q(ell)q
(er/X)q(ML/)q FD(.)39 b(Re)n(vision)d(of)e(BRICS)h(NS-)2152
700 y(00-8.)2000 706 y
SDict begin H.S end
2000 706 a 2000 706 a
SDict begin 9 H.A end
2000 706
a 2000 706 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.21) cvn H.B /DEST pdfmark
end
2000 706 a 74 x FD([19])42 b(D.)24 b(Chamberlin)k
Fa(et)d(al.)p FD(,)g(\223XML)g(Query)h(use)f(cases,)-5
b(\224)26 b(No)o(v)o(ember)h(2002,)e(W3C)2152 855 y(W)-5
b(orking)24 b(Draft.)g Fx(http://www.w3.org/TR/xm)q(lque)q(ry-)q(use-)q
(cas)q(es/)p FD(.)2000 875 y
SDict begin H.S end
2000 875 a 2000 875 a
SDict begin 9 H.A end
2000
875 a 2000 875 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.22) cvn H.B /DEST pdfmark
end
2000 875 a 60 x FD([20])42 b(V)-9 b(.)34
b(Benzak)o(en,)j(G.)d(Castagna,)i(and)g(A.)d(Frisch,)i(\223CDuce:)i(a)e
(white)h(paper)m(,)-5 b(\224)2152 1010 y(October)32 b(2002,)f
(Presented)i(at)e(Programming)h(Language)g(T)-5 b(echnologies)33
b(for)2152 1085 y(XML,)22 b(PLAN-X.)2000 1100 y
SDict begin H.S end
2000
1100 a 2000 1100 a
SDict begin 9 H.A end
2000 1100 a 2000 1100 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.23) cvn H.B /DEST pdfmark
end
2000 1100
a 65 x FD([21])42 b(R.)33 b(V)-7 b(allee-Rai,)37 b(L.)c(Hendren,)i(V)-9
b(.)33 b(Sundaresan,)j(P)-7 b(.)33 b(Lam,)g(E.)g(Gagnon,)h(and)2152
1239 y(P)-7 b(.)19 b(Co,)h(\223Soot)h(\226)e(a)i(Ja)o(v)n(a)f
(optimization)k(frame)n(w)o(ork,)-5 b(\224)22 b(in)e
Fa(Pr)m(oc.)g(IBM)f(Centr)n(e)i(for)2152 1314 y(Advanced)k(Studies)g
(Confer)n(ence)o(,)h(CASCON)e('99)p FD(.)67 b(IBM,)23
b(No)o(v)o(ember)h(1999.)2000 1333 y
SDict begin H.S end
2000 1333 a 2000
1333 a
SDict begin 9 H.A end
2000 1333 a 2000 1333 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.24) cvn H.B /DEST pdfmark
end
2000 1333 a 61 x FD([22])42
b(V)-9 b(.)23 b(Sundaresan,)i(L.)d(J.)h(Hendren,)i(C.)e(Raza\002mahef)o
(a,)j(R.)d(V)-7 b(allee-Rai,)26 b(P)-7 b(.)23 b(Lam,)2152
1469 y(E.)35 b(Gagnon,)h(and)h(C.)e(Godin,)h(\223Practical)k(virtual)e
(method)f(call)g(resolution)2152 1544 y(for)h(Ja)o(v)n(a,)-5
b(\224)39 b(in)g Fa(Pr)m(oc.)e(A)n(CM)h(SIGPLAN)g(Confer)n(ence)i(on)f
(Object-Oriented)2152 1618 y(Pr)m(o)o(gr)o(amming)o(,)e(Systems,)g
(Langua)o(g)o(es,)i(and)e(Applications,)h(OOPSLA)e('00)p
FD(,)2152 1693 y(October)25 b(2000.)2000 1699 y
SDict begin H.S end
2000
1699 a 2000 1699 a
SDict begin 9 H.A end
2000 1699 a 2000 1699 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.25) cvn H.B /DEST pdfmark
end
2000 1699
a 74 x FD([23])42 b(A.)56 b(Ludwig)h Fa(et)g(al.)p FD(,)f(\223Recoder)m
(,)-5 b(\224)60 b(2002)d(March,)h Fx(http://recoder.)2152
1848 y(sourceforge.net/)p FD(.)2000 1868 y
SDict begin H.S end
2000 1868
a 2000 1868 a
SDict begin 9 H.A end
2000 1868 a 2000 1868 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.26) cvn H.B /DEST pdfmark
end
2000 1868 a 60
x FD([24])42 b(D.)26 b(Suciu,)h(\223The)h(XML)e(typechecking)k
(problem,)-5 b(\224)28 b Fa(A)n(CM)f(SIGMOD)g(Recor)n(d)p
FD(,)2152 2003 y(v)o(ol.)c(31,)h(March)g(2002.)2000 2018
y
SDict begin H.S end
2000 2018 a 2000 2018 a
SDict begin 9 H.A end
2000 2018 a 2000 2018 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.27) cvn H.B /DEST pdfmark
end
2000
2018 a 65 x FD([25])42 b(Sun)d(Microsystems,)i(\223Ja)o(v)n(a)g
(Servlet)g(Speci\002cation,)i(V)-7 b(ersion)40 b(2.3,)-5
b(\224)39 b(2001,)2152 2157 y(A)-5 b(v)n(ailable)27 b(from)c
Fx(http://java.sun.com/pro)q(duc)q(ts/s)q(erv)q(let/)q
FD(.)2000 2177 y
SDict begin H.S end
2000 2177 a 2000 2177 a
SDict begin 9 H.A end
2000 2177 a
2000 2177 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.28) cvn H.B /DEST pdfmark
end
2000 2177 a 60 x FD([26])42 b(S.)114 b(Boag)h
Fa(et)g(al.)p FD(,)f(\223T)n(ransformation)j(API)d(for)h(XML,)-5
b(\224)2152 2312 y Fx(http://xml.apache.org/xa)q(lan)q(-j/t)q(rax)q
(.htm)q(l)p FD(,)29 b(2003.)2000 2332 y
SDict begin H.S end
2000 2332 a 2000
2332 a
SDict begin 9 H.A end
2000 2332 a 2000 2332 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.29) cvn H.B /DEST pdfmark
end
2000 2332 a 60 x FD([27])42
b(Sun)108 b(Microsystems,)h(\223Ja)o(v)n(a)g(API)e(for)h(XML)f
(processing,)-5 b(\224)2152 2467 y Fx(http://java.sun.com/xml/)q(jax)q
(p/)p FD(,)29 b(2001.)2000 2487 y
SDict begin H.S end
2000 2487 a 2000 2487
a
SDict begin 9 H.A end
2000 2487 a 2000 2487 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.30) cvn H.B /DEST pdfmark
end
2000 2487 a 60 x FD([28])42
b(D.)23 b(Bro)n(wnell,)i Fa(SAX2)p FD(.)66 b(O'Reilly)25
b(&)e(Associates,)i(January)g(2002.)2000 2567 y
SDict begin H.S end
2000
2567 a 2000 2567 a
SDict begin 9 H.A end
2000 2567 a 2000 2567 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.31) cvn H.B /DEST pdfmark
end
2000 2567
a 60 x FD([29])42 b(M.)19 b(W)-5 b(allace)21 b(and)g(C.)e(Runciman,)i
(\223Hask)o(ell)h(and)e(XML:)f(Generic)j(combinators)2152
2702 y(or)28 b(type-based)j(translation?\224)h(in)d Fa(Pr)m(oc.)f(5th)h
(A)n(CM)f(SIGPLAN)f(International)2152 2776 y(Confer)n(ence)f(on)e
(Functional)h(Pr)m(o)o(gr)o(amming)o(,)g(ICFP)d('99)p
FD(,)i(September)h(1999.)2000 2796 y
SDict begin H.S end
2000 2796 a 2000
2796 a
SDict begin 9 H.A end
2000 2796 a 2000 2796 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.32) cvn H.B /DEST pdfmark
end
2000 2796 a 61 x FD([30])42
b(P)-7 b(.)18 b(Thiemann,)h(\223W)-8 b(ASH/CGI:)21 b(Serv)o(er)o(-side)
f(Web)g(scripting)h(with)f(sessions)f(and)2152 2931 y(typed,)27
b(compositional)i(forms,)-5 b(\224)25 b(in)i Fa(Pr)m(oc.)e(4th)h
(International)j(Symposium)f(on)2152 3006 y(Pr)o(actical)d(Aspects)g
(of)e(Declar)o(ative)k(Langua)o(g)o(es,)e(P)-6 b(ADL)23
b('02)p FD(,)g(January)i(2002.)2000 3026 y
SDict begin H.S end
2000 3026
a 2000 3026 a
SDict begin 9 H.A end
2000 3026 a 2000 3026 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.33) cvn H.B /DEST pdfmark
end
2000 3026 a 60
x FD([31])42 b(H.)15 b(Hoso)o(ya)i(and)f(B.)f(C.)h(Pierce,)h
(\223XDuce:)g(A)f(statically)j(typed)e(XML)e(processing)2152
3161 y(language,)-5 b(\224)36 b Fa(A)n(CM)e(T)l(r)o(ansactions)i(on)d
(Internet)j(T)-6 b(ec)o(hnolo)o(gy)p FD(,)36 b(v)o(ol.)e(3,)f(no.)g(2,)
2152 3235 y(2003.)2000 3241 y
SDict begin H.S end
2000 3241 a 2000 3241 a
SDict begin 9 H.A end
2000 3241 a 2000 3241 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.34) cvn H.B /DEST pdfmark
end
2000 3241 a 75 x FD([32])42 b(Exolab)24
b(Group,)g(\223Castor)m(,)-5 b(\224)26 b(2002,)e Fx
(http://castor.exolab.org/)q FD(.)2000 3336 y
SDict begin H.S end
2000 3336
a 2000 3336 a
SDict begin 9 H.A end
2000 3336 a 2000 3336 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.35) cvn H.B /DEST pdfmark
end
2000 3336 a 60
x FD([33])42 b(Sun)90 b(Microsystems,)h(\223J)l(AXB,)-5
b(\224)91 b(2002,)f Fx(http://java.sun.com/)2152 3470
y(xml/jaxb/)p FD(.)2000 3490 y
SDict begin H.S end
2000 3490 a 2000 3490
a
SDict begin 9 H.A end
2000 3490 a 2000 3490 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.36) cvn H.B /DEST pdfmark
end
2000 3490 a 60 x FD([34])42
b(M.)74 b(Fitzgerald,)k(\223Relax)o(er)f(tutorial,)-5
b(\224)78 b Fx(http://www.relaxer.org)q(/)2152 3625 y
(doc/tutorial/tutorial.ht)q(ml)p FD(,)29 b(2003.)2000
3640 y
SDict begin H.S end
2000 3640 a 2000 3640 a
SDict begin 9 H.A end
2000 3640 a 2000 3640
a
SDict begin [ /View [/XYZ H.V] /Dest (Item.37) cvn H.B /DEST pdfmark
end
2000 3640 a 65 x FD([35])42 b(F)-5 b(.)27 b(Simeoni,)h(P)-7
b(.)27 b(Manghi,)i(D.)e(Lie)n(v)o(ens,)i(R.)e(H.)h(Connor)m(,)g(and)h
(S.)e(Neely)l(,)i(\223)-5 b(An)2152 3780 y(approach)40
b(to)e(high-le)n(v)o(el)j(language)f(bindings)g(to)e(XML,)-5
b(\224)37 b Fa(Information)j(&)2152 3855 y(Softwar)n(e)25
b(T)-6 b(ec)o(hnolo)o(gy)p FD(,)26 b(v)o(ol.)d(44,)h(no.)f(4,)g(pp.)g
(217\226228,)h(2002,)g(Else)n(vier)l(.)2000 3874 y
SDict begin H.S end
2000
3874 a 2000 3874 a
SDict begin 9 H.A end
2000 3874 a 2000 3874 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.38) cvn H.B /DEST pdfmark
end
2000 3874
a 61 x FD([36])42 b(R.)15 b(Connor)m(,)i(D.)e(Lie)n(v)o(ens,)i(F)-5
b(.)15 b(Simeoni,)i(S.)e(Neely)l(,)i(and)f(G.)f(Russell,)i
(\223Projector)i(\226)2152 4009 y(a)h(partially)j(typed)f(language)g
(for)e(querying)i(XML,)-5 b(\224)20 b(October)i(2002,)e(Presented)2152
4084 y(at)k(Programming)h(Language)g(T)-5 b(echnologies)26
b(for)e(XML,)e(PLAN-X.)2000 4104 y
SDict begin H.S end
2000 4104 a 2000 4104
a
SDict begin 9 H.A end
2000 4104 a 2000 4104 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.39) cvn H.B /DEST pdfmark
end
2000 4104 a 60 x FD([37])42
b(E.)29 b(Meijer)i(and)g(W)-6 b(.)29 b(Schulte,)i(\223Unifying)h
(tables,)f(objects)h(and)f(documents,)-5 b(\224)2152
4239 y(in)31 b Fa(Pr)m(oc.)f(Declar)o(ative)k(Pr)m(o)o(gr)o(amming)d
(in)g(the)g(Conte)o(xt)i(of)e(OO)f(Langua)o(g)o(es,)2152
4314 y(DP-COOL)23 b('03)p FD(,)g(2003.)2000 4329 y
SDict begin H.S end
2000
4329 a 2000 4329 a
SDict begin 9 H.A end
2000 4329 a 2000 4329 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.40) cvn H.B /DEST pdfmark
end
2000 4329
a 65 x FD([38])42 b(R.)69 b(Bourret,)j(\223XML)d(data)j(binding)f
(resources,)-5 b(\224)72 b(February)f(2003,)2152 4468
y Fx(http://www.rpbourret.com)q(/xm)q(l/XM)q(LDa)q(taBi)q(ndi)q(ng.h)q
(tm)p FD(.)2000 4488 y
SDict begin H.S end
2000 4488 a 2000 4488 a
SDict begin 9 H.A end
2000 4488
a 2000 4488 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.41) cvn H.B /DEST pdfmark
end
2000 4488 a 60 x FD([39])42 b(J.)21 b(Clark,)i(\223XSL)f
(transformations)i(\(XSL)-6 b(T\))21 b(speci\002cation,)-5
b(\224)26 b(No)o(v)o(ember)d(1999,)2152 4623 y(W3C)g(Recommendation.)k
Fx(http://www.w3.org/TR/xsl)q(t)p FD(.)2000 4643 y
SDict begin H.S end
2000
4643 a 2000 4643 a
SDict begin 9 H.A end
2000 4643 a 2000 4643 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.42) cvn H.B /DEST pdfmark
end
2000 4643
a 60 x FD([40])42 b(M.)26 b(Kay)l(,)g(\223XSL)g(transformations)j
(\(XSL)-6 b(T\))25 b(v)o(ersion)j(2.0,)-5 b(\224)26 b(May)h(2003,)g
(W3C)2152 4778 y(W)-5 b(orking)24 b(Draft.)g Fx
(http://www.w3.org/TR/xs)q(lt20)q(/)p FD(.)2000 4798
y
SDict begin H.S end
2000 4798 a 2000 4798 a
SDict begin 9 H.A end
2000 4798 a 2000 4798 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.43) cvn H.B /DEST pdfmark
end
2000
4798 a 60 x FD([41])42 b(S.)16 b(Boag)h Fa(et)h(al.)p
FD(,)e(\223XQuery)i(1.0:)e(An)h(XML)f(query)h(language,)-5
b(\224)20 b(No)o(v)o(ember)d(2002,)2152 4933 y(W3C)23
b(W)-5 b(orking)24 b(Draft.)g Fx(http://www.w3.org/TR/x)q(que)q(ry/)p
FD(.)2000 4953 y
SDict begin H.S end
2000 4953 a 2000 4953 a
SDict begin 9 H.A end
2000 4953 a
2000 4953 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.44) cvn H.B /DEST pdfmark
end
2000 4953 a 60 x FD([42])42 b(D.)87 b(Draper)i
Fa(et)g(al.)p FD(,)f(\223XQuery)h(1.0)f(and)g(XP)o(ath)h(2.0)f(for)o(-)
2152 5087 y(mal)97 b(semantics,)-5 b(\224)100 b(No)o(v)o(ember)e(2002,)
f(W3C)g(W)-5 b(orking)98 b(Draft.)2152 5162 y Fx
(http://www.w3.org/TR/que)q(ry-)q(sema)q(nti)q(cs/)p
FD(.)2000 5182 y
SDict begin H.S end
2000 5182 a 2000 5182 a
SDict begin 9 H.A end
2000 5182 a
2000 5182 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.45) cvn H.B /DEST pdfmark
end
2000 5182 a 60 x FD([43])42 b(V)-9 b(.)32
b(Gapaye)n(v)j(and)e(B.)f(C.)g(Pierce,)i(\223Re)o(gular)h(object)f
(types,)-5 b(\224)34 b(in)f Fa(Pr)m(oc.)f(17th)2152 5317
y(Eur)m(opean)i(Confer)n(ence)i(on)d(Object-Oriented)k(Pr)m(o)o(gr)o
(amming)o(,)d(ECOOP'03)p FD(,)2152 5392 y(ser)l(.)24
b(LNCS,)e(v)o(ol.)i(2743.)66 b(Springer)o(-V)-7 b(erlag,)26
b(July)e(2003.)2000 5411 y
SDict begin H.S end
2000 5411 a 2000 5411 a
SDict begin 9 H.A end
2000
5411 a 2000 5411 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.46) cvn H.B /DEST pdfmark
end
2000 5411 a 61 x FD([44])42 b(J.-Y)-9
b(.)37 b(V)l(ion-Dury)l(,)i(V)-9 b(.)38 b(Lux,)f(and)i(E.)e(Pietriga,)j
(\223Experimenting)h(with)e(the)2152 5546 y(Circus)22
b(language)i(for)e(XML)f(modeling)i(and)f(transformation,)-5
b(\224)24 b(in)e Fa(Pr)m(oc.)f(A)n(CM)2152 5621 y(Symposium)k(on)e
(Document)j(Engineering)o(,)f(DocEng)f('02)p FD(,)f(No)o(v)o(ember)i
(2002.)p eop end
%%Page: 16 16
TeXDict begin 16 15 bop 0 0 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
0 0 a -192 -307 a
SDict begin H.S end
-192
-307 a -192 -307 a
SDict begin H.R end
-192 -307 a -192 -307 a
SDict begin [ /View [/XYZ H.V] /Dest (page.16) cvn H.B /DEST pdfmark
end
-192 -307
a FJ(IEEE)19 b(TRANSA)n(CTIONS)h(ON)g(SOFTW)-7 b(ARE)19
b(ENGINEERING)2794 b(16)-192 -157 y
SDict begin H.S end
-192 -157 a -192
-157 a
SDict begin 9 H.A end
-192 -157 a -192 -157 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.47) cvn H.B /DEST pdfmark
end
-192 -157 a 99 x FD([45])42
b(E.)22 b(Meijer)j(and)e(M.)f(Shields,)i(\223XM)p Fc(\025)p
FD(:)g(A)e(functional)k(language)g(for)d(construct-)-40
17 y(ing)32 b(and)f(manipulating)j(XML)d(documents,)-5
b(\224)32 b(1999,)f(Draft.)h(A)-5 b(v)n(ailable)34 b(from)-40
92 y Fx(http://www.cse.ogi.edu/)q(~mb)q(s/pu)q(b/x)q(mlam)q(bda)q(/)p
FD(.)-192 107 y
SDict begin H.S end
-192 107 a -192 107 a
SDict begin 9 H.A end
-192 107 a -192
107 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.48) cvn H.B /DEST pdfmark
end
-192 107 a 60 x FD([46])42 b(O.)20 b(Kiselyo)o(v)i(and)g(S.)e
(Krishnamurthi,)i(\223SXSL)-6 b(T:)20 b(Manipulation)25
b(language)e(for)-40 241 y(XML,)-5 b(\224)28 b(in)h Fa(Pr)m(oc.)e(5th)i
(International)j(Symposium)d(on)f(Pr)o(actical)j(Aspects)d(of)-40
316 y(Declar)o(ative)f(Langua)o(g)o(es,)e(P)-6 b(ADL)22
b('03)p FD(,)i(January)g(2003.)-192 330 y
SDict begin H.S end
-192 330 a
-192 330 a
SDict begin 9 H.A end
-192 330 a -192 330 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.49) cvn H.B /DEST pdfmark
end
-192 330 a 61 x FD([47])42
b(T)-5 b(.)17 b(Milo,)i(D.)f(Suciu,)h(and)g(V)-9 b(.)18
b(V)l(ianu,)h(\223T)-5 b(ypechecking)21 b(for)d(XML)g(transformers,)-5
b(\224)-40 465 y Fa(J)n(ournal)37 b(of)f(Computer)h(and)f(System)g
(Sciences)p FD(,)h(v)o(ol.)f(66,)f(February)i(2002,)-40
540 y(Special)26 b(Issue)e(on)f(PODS)g('00,)h(Else)n(vier)l(.)-192
554 y
SDict begin H.S end
-192 554 a -192 554 a
SDict begin 9 H.A end
-192 554 a -192 554 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.50) cvn H.B /DEST pdfmark
end
-192
554 a 61 x FD([48])42 b(W)-6 b(.)25 b(Martens)i(and)f(F)-5
b(.)25 b(Ne)n(v)o(en,)i(\223T)-5 b(ypechecking)29 b(top-do)n(wn)e
(uniform)g(unrank)o(ed)-40 690 y(tree)d(transducers,)-5
b(\224)26 b(in)d Fa(9th)g(International)j(Confer)n(ence)f(on)e
(Database)h(Theory)p FD(,)-40 764 y(ser)l(.)g(LNCS,)e(v)o(ol.)i(2572.)
67 b(Springer)o(-V)-7 b(erlag,)25 b(January)g(2003.)-192
778 y
SDict begin H.S end
-192 778 a -192 778 a
SDict begin 9 H.A end
-192 778 a -192 778 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.51) cvn H.B /DEST pdfmark
end
-192
778 a 61 x FD([49])42 b(A.)29 b(T)-5 b(oza)o(w)o(a,)31
b(\223T)-5 b(o)n(w)o(ards)30 b(static)i(type)f(checking)h(for)e(XSL)-6
b(T,)h(\224)29 b(in)i Fa(Pr)m(oc.)e(A)n(CM)-40 914 y(Symposium)c(on)f
(Document)h(Engineering)o(,)g(DocEng)f('01)p FD(,)g(No)o(v)o(ember)g
(2001.)-192 928 y
SDict begin H.S end
-192 928 a -192 928 a
SDict begin 9 H.A end
-192 928 a -192
928 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.52) cvn H.B /DEST pdfmark
end
-192 928 a 61 x FD([50])42 b(T)-5 b(.)26 b(Perst)h(and)g(H.)f
(Seidl,)h(\223)-5 b(A)26 b(type-safe)j(macro)e(system)g(for)f(XML,)-5
b(\224)27 b(in)f Fa(Pr)m(oc.)-40 1063 y(Extr)n(eme)e(Markup)h(Langua)o
(g)o(es)p FD(,)g(August)f(2002.)-192 1077 y
SDict begin H.S end
-192 1077
a -192 1077 a
SDict begin 9 H.A end
-192 1077 a -192 1077 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.53) cvn H.B /DEST pdfmark
end
-192 1077 a 61
x FD([51])42 b(Y)-9 b(.)24 b(P)o(apak)o(onstantinou)29
b(and)c(V)-9 b(.)24 b(V)l(ianu,)h(\223DTD)f(inference)j(for)d(vie)n(ws)
h(of)g(XML)-40 1213 y(data,)-5 b(\224)25 b(in)f Fa(Pr)m(oc.)f(19th)h(A)
n(CM)f(SIGA)n(CT)-5 b(-SIGMOD-SIGART)23 b(Symp.)h(on)f(Princi-)-40
1287 y(ples)h(of)g(Database)h(Systems,)f(PODS)f('00)p
FD(,)h(May)g(2000.)-192 1301 y
SDict begin H.S end
-192 1301 a -192 1301
a
SDict begin 9 H.A end
-192 1301 a -192 1301 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.54) cvn H.B /DEST pdfmark
end
-192 1301 a 61 x FD([52])42
b(M.)33 b(K)n(empa)i(and)f(V)-9 b(.)34 b(Linnemann,)g(\223T)-5
b(ype)34 b(checking)j(in)d(XOBE,)-5 b(\224)33 b(in)h
Fa(Pr)m(oc.)-40 1437 y(Datenbanksysteme)g(f)5 b(\250)-27
b(ur)30 b(Business,)g(T)-6 b(ec)o(hnolo)o(gie)33 b(und)e(W)-6
b(eb,)30 b(BTW)g('03)p FD(,)g(ser)l(.)-40 1512 y(LNI,)23
b(v)o(ol.)g(26,)g(February)i(2003.)-192 1526 y
SDict begin H.S end
-192 1526
a -192 1526 a
SDict begin 9 H.A end
-192 1526 a -192 1526 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.55) cvn H.B /DEST pdfmark
end
-192 1526 a 60
x FD([53])42 b(C.)28 b(Brabrand,)h(M.)f(I.)f(Schw)o(artzbach,)k(and)e
(M.)e(V)-7 b(anggaard,)29 b(\223The)g(metafront)-40 1661
y(system:)40 b(Extensible)h(parsing)f(and)g(transformation,)-5
b(\224)42 b(in)e Fa(Pr)m(oc.)e(3r)n(d)h(A)n(CM)-40 1736
y(SIGPLAN)18 b(W)-6 b(orkshop)20 b(on)f(Langua)o(g)o(e)i(Descriptions,)
g(T)-6 b(ools)19 b(and)h(Applications,)-40 1810 y(LDT)m(A)i('03)p
FD(,)i(April)g(2003.)-192 1824 y
SDict begin H.S end
-192 1824 a -192 1824
a
SDict begin 9 H.A end
-192 1824 a -192 1824 a
SDict begin [ /View [/XYZ H.V] /Dest (Item.56) cvn H.B /DEST pdfmark
end
-192 1824 a 61 x FD([54])42
b(S.)17 b(Muench)h(and)g(M.)f(Scardina,)i(\223XSL)-6
b(T)17 b(requirements)i(v)o(ersion)g(2.0,)-5 b(\224)17
b(February)-40 1960 y(2001,)24 b(W3C)f(W)-5 b(orking)24
b(Draft.)g Fx(http://www.w3.org/TR/x)q(slt2)q(0re)q(q)p
FD(.)p eop end
%%Trailer
userdict /end-hook known{end-hook}if
%%EOF