%!PS-Adobe-2.0 %%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software %%Title: paper.dvi %%Pages: 14 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Helvetica-Bold Helvetica Times-Bold Times-Roman CMMI10 %%+ CMR10 CMR7 Arial CMSY10 CMMI7 CMMI8 Times-Italic CMEX10 CMSY7 CMR8 %%+ Helvectia Courier %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -G0 -t letter -o paper.ps paper.dvi %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2005.04.25:0817 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: 8r.enc % 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: aae443f0.enc % 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: f7b6d320.enc % 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: bbad153f.enc % 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: texps.pro %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]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 %! 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 userdict begin /draftcopy-CurrentPage 0 def /draftcopy-old-BOPhook { } def currentdict /bop-hook known{ /draftcopy-old-BOPhook /bop-hook load def } if /bop-hook{ draftcopy-old-BOPhook /draftcopy-CurrentPage draftcopy-CurrentPage 1 add def draftcopy-CurrentPage 0 ge draftcopy-CurrentPage 99999 le and { gsave 200 70 translate 65 rotate /Times-Roman findfont 215 1 mul scalefont setfont 0 0 moveto 0.85 setgray (DRAFT) show grestore } if } def end @fedspecial end %%BeginFont: CMR8 %!PS-AdobeFont-1.1: CMR8 1.0 %%CreationDate: 1991 Aug 20 16:39:40 % 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 (CMR8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR8 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{-36 -250 1070 750}readonly def /UniqueID 5000791 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65 48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3 9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB 0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB 8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466 FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3 9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62 D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8 9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5 ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6 10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582 83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493 2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30 4384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632 BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B 041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721 3888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762BFD4563ABA4F D926227FAD2B2D4975835541F5A0BBA874AA656B669D3E22F1A25B405D9BC6FC DB308C382A34735A77C8C901D8677A92A0F2F2753F80963D2DEF4BCD6FB8D177 029FE0352B7DB16ACFD082D0F8427039F94A74EDF62F1B3D0C1A9599A88EE1F1 5F10832E2F0A1F6CA9FA00143C3494D618C9AA53D0AA2DD1B2BD7C06D0A946D7 32CBADA2DC3F081E95BFC01DCAA529DEBBA13839D42FA2DBD86F8780E516E9F7 B4F2FBF38824822ECBF4C42DE2A59AABFDD0901DDDE8AC5FC937EF2729FD5BE6 ECB2162940AAB06BA12189A36C24F3CBB25A3046F6EF8B46FB8A89E7DF41FAC4 B51256A01DC5AE00F8F45F69C420E56E42745FCF6020374F4CB5A00958B25930 F7D6DF2075ACD479230A041D0A7A761980CE1673D349AC06E5E9EB7069C98D82 33F57E348081C4EFC405929F8899AF80B534E697B591C5C680D3E60F240BB769 F0BCFE594E2C2740EB7BAD748A66E76F41E835A7BCA8A16731652E5D08AB0D74 1A812588F72188A641398AE81C31E7A826409E98DAE39E84FF3C1E471DDB6796 1A8A6FEA6DC4DB9FC39DC0533DBE7AFCC5FBD07D5ED112EFAA3779523EFF030D F276B00634E6A68898D2565818F4338CF0A0D83394CD09D007EB1831C25F6EDD BEA94BFFFF5DA41797CA51039915CA2208054A391F66119184AE023E9489FBE4 5AFE834FE25AAA3C9C3BDB6C5DD301833596F7F76A083C6F11D90582B2F8AFE9 4284E028B10E26740071E1884FE5B25C31BC9E8F411A1E58B2933AE790CA9ECC 1E5F2DDC09863A390E367AD4CC0A869C313950EDFD6C8500651EC8686D041884 74158E9B16E032B91FA92B578EC9A38F51730A346F1CD7FDF0854EEBDB4AC5B2 DE427E7B23CC47644A44447F138F3AD653DA6BA8A9DDE84BA780BD3E3F474DC0 B30E97030113ED84607C488DEF6D2044BFBD701CAEE0D14F52F408EE2CA9A13C 526E2888DD92F3DFEF08FF 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 868AEA25DA3D5413467B76D2F02F8097D2841EDA6677731A6ACFEC0BABF1016A 089B2D24F47B9D66B677886B90AA787AD865B5F78EE434AA47B7B0F1244A4215 251FDCC670FD01A92226E2C667C2344298D001575BDF782D969D836ECA11E229 C7A17E28F70F9B17273FF243452DA885068A8BCB5165534F3996CBD8D97307DB 593D606C197AFC259E691C242F6E1E651575B6852AAD54567905E6F542DCA109 7F6DA24DC9112FBF7CE48B387953787B2BCB841873AED2DFA83339D39E14F4DD 3A51584527AC3A93630D121E2AE0C89D9C3F2FFA767743B1276BE1E648041010 0FD510F1A8 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMEX10 %!PS-AdobeFont-1.1: CMEX10 1.00 %%CreationDate: 1992 Jul 23 21:22:48 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMEX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMEX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 88 /summationdisplay put readonly def /FontBBox{-24 -2960 1454 772}readonly def /UniqueID 5000774 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910 DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8 8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987 FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422 BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52 EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8 DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1 EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C 6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281 E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350 E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38 4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5 8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023 8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2 FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387 680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35 5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664 3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666 DD4DD1C1C8384F906A7BAACDF441BB0AAEA2A697E453D89E61340D3A13F615FF 3E64BC24A22786C838BF3BAF6B2829B5E16372EE3B9347142EE6853C37C61423 540C793D56EF624F68D2BD0C0A43524C3DD7DE1A30702B79032D9EAF715668AC 6701F3B3E54B877104A17D328FA3B6F17B484771428F11365153D779E59132B8 8AA4D47495417DC5F6CC5315B779C2B12A4EA32D16BE254D2EF2E0FEE0021791 B46226F1A45386FA41C56864FD6EEBE29E98E00C279EBA6F17ABFC1F8E0519F0 A9E5A7FFDBFF06D6475D65A977BEA0F5DACFAB70461E8E08B1BFD3D31ABB37C0 5C42D17ACBC194B89A50063B9C2F02ED26A99FF436DFEACD70511658C9554FA6 6EB73CA3F0A8F17C8C34B79C6A5BB7C395190BA6822EBBB81A40EEE29A69E316 9AC9134E9DF5007B32E8CFA45579F310413D25E82691774DF4B83610A41BCFFE E2119028B24BFAED5197C3ECAC5F0D0D66D17E69 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: 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 85B385124C2B6534F3CD1866AF92009D93B97F763AA3EF13138392F069D50047 8870276F0114020385BAE28CC213D0E27EC4CE1E07DF6E80403D5BE5E08E72F7 565A94B950379E70F419980AADBEC6F56112938FFD64BAF7863CBF39910A2667 716AC8DB3C6B015B5474C9D74D93C5AAF7B9E13D9E17CB9B4305370387155EDE B6CA764AA529E059DBF93A7FD65EF0DBB9B56AF600DF7A7F9DB24BC65095941E 73C4C96D1D9F23286A5F233CC2144540BB79C47D7A74163407FDC1A58C6AF3A9 C95ED2CA1ACB8FDD42811BF5D811C91D3C968C16A72B3B6CA1F30182B24D9D55 6E0A57B1471A20FECB230C021B99D48F83507B9A30E75B69B94D3A8C354E369E 1F4A44DD0CBEA89A6B5A44D575D78C3CAE09A6BE0428F0CC489E28CD0CC647C3 83BBC4C4512DD7534F62CDDD4F12E9903FCF5B68699FE51E847E6F1E8BEFC97C BE2403097EA6AE3BD87A39838CC1AE906B7F64E7D584C8CF15E31DB1407239D6 E2A34C9DA3121309A790707A39CD3E1E44A9 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 889787CDC2B27F188AB67448F8867C398C58491975019BEE06486E51008591A0 44FB355A5637A3E541FEF1CCC1F5284CDC29D085309C0731D659D734AEED9A87 E6607A643ADE3B2BCE79FAB2D3F50D42B93A6619847883F8289CB7BFAC5CA9A7 B0E141DA358246FD2264197E94DFE8A4A2335CDFD04F3D653A276D2AE4082B8A F01FEAD6C9634979311B19DBFBD26E51522DC6BECF44E4574DD3628B201B617E 52FB14B84FC0AFC8638A68D1098D583D32EAAB2BE661C0DC58BF04D0B0E8369D D91028475F3C8AE91E0A2D6CC40B9C3644894D942E28631DB118093B3693E0EA 4D52D8E9FE6C033BD9F9E71DB0285C7AC97C332811396B4DE0CE3D94AC9AE7F9 81C41BDEE08EDB69CA0B253D1EC78C32AE7A45364E1556583340C5762A021D89 F2CA017AEA686A4E4E5C744B67A9AC8BD0E706BCE6DEF734CC54DD8FA4DEB92D A132F4DBA51F822E39990765C2B577C055333F328E4A60C527BC2DC21E49C80A D8C29E135EA9993B7A93AF2D1F88F2D6C88627CCCDDF11A16A79E702617BCB62 8E55E167767CD78FC42D7F9DA1709FC1C2D06CF5ECE235FECF81CB5E46687B07 8A49E3AD4F939DE2D0161B9A0AE89EC6C2EE90C50D075AC2B743ABFD1A88FEFF 5E80EE00C44C66D2C181807E0F9FD9C579CD4B428D650908577942F2332DD9E8 83F377BFB35058C1FA183B3F7CAE104F43AB25F03F5DFFBB229E667AF4ECDCD1 AE6F9002862F26DF8A1A395BFC5DBB0B684A1419BE92DA8F63D0F36461B8EC12 77A47AD68A1A99B4FF1C9683C5B438F5CD6588100220986ED4758659EAEE2583 D4BEA85941BF41E097291FDBF3A16A1A416997EDC0138FAB9D1118257E7CCAE8 E63AEA046F12026B56AD5E1848B5F7E392FFF4DFF16C6E5F269CFF40D87E6272 06728C74D6D0423D3F3483B2BB1BCDD38E344A248E042DBF4E9080264A455AF6 9AA4A70A5D65739CEE919DC9EE6240CBE192FA048B30713B3BCC9A6AA0ADB103 F61E00E96AA4AFA52CAB03FDB17B84D17C6285467D562A88A997E4FDA4AD41D2 A627FE312419C6D3FF11DD7E7BE22E8E90909B710C18F9D554F1E35EE1277D2B 03E7D2D31F3973EA64955C6702670AD3B25AD50141D72894DEAF278A1E366A1A FA588BF2903020BECA4D16C48439B6D668EA7E3D2EE6B4E0E16AECBFCE60C0AE 10D3E17692950EF2E9108F5C7364AE42BBAD58B9433A3A22034D84156F0D2533 C9558BFA856AA57DC9289DAD4CAD9B0733F6796D75A2EA2D70A710FC4D84C268 9EB3ED270E49167B68C635B28EFBFA6FBAE516981F905B49400462B65B508533 EEFE2DED719929CFAF27F9BBFC8A8C2C0B5D76448016A05D79F061F7D3BE6E42 4F53166E4A4162A96B60AC68100891958B720542F66376AA8D62594F8DE262D3 8C6F08CA6B98325979E93E011A3488AB3F0656B81DAE46C25FBE8781DA1F7FF1 CB388F036934B7B151758A7C436658EF6EB0B8EF2977D34B0DAD0EC10C420569 82512AB74F955801EC6C9539ED7CB22430DE3614A2A26E27231162D6077B2C7D 0248DB2ED7C50CE0DCCA32B161283EA31420E0ED51FCE99939BEACE93FB9F585 E7F85A95F5218F5845932969F31E83FD25660CF0548138D7C4C3A208972404FB A72D9ADB5172D561A4095E4F4070AE0E7C093C791C493AAD2608EC43D4BF4943 42E4E97B5EF5C59076958F726A70CCFF39722D4CA7B6B3CD259428781AAE1A93 D8D6664EADD2AE1B3236EC5D19DE2AE8B73678836B78F97FCFDEE67D7A4E1B5E 41238F605B12643056AD32168EE23A47E28EEA2D45367F084AE6EB9225183BB2 1C8AF81F1070A9613CD6A30D11C30E9AD2BBDFF442459FE3F77CC2BD4806DA89 BB167C9EBCE73BB1EC7FE147E45EB68A96D2FEC1DA760CFEB05D1DDBF1098EB5 D1342AC30B94E74A5823FDC7367820496F6173075E29F328902E4E21C7C2CFA9 6415B6B5B006DF62507A1D811E78B2F946CE8D145541BC324CB858219F697857 FCAAAB98CDAD60AA259416EFFEF279946A273A42B10C268E1C0E31C9143F7EF7 6E215D53FC6943BC9E7DCED1EB7449EFD33CED9461767EB264AF12A97CA5DCB7 4879960FDA072DA27DC48230724455E224BE444F063E6E0C1FF7982DF4D004A4 E3EC8E67BFAAE9AF9EE8118BD231053A89C0BE12E13F36CDDBB816694A53938F 5D761F6726D65CED756C84F841E89E3B6A01742C8A17C74B95C165F87128BBE7 D779261278EC8B3FF506A96038D9DE8DCB0F186DFEB715F108E91103EA86570E D648D097750D53AB67A14953E0D9925808E2400C8489BD5D7FAE24FB03BB12A4 F9C8380399627F5025D24DB7C87600C859D54E07EF1F1FD6DF1601CF47B3A690 4A434680A7DBFCC8A0211AD4273797D63B2A28CBAA8071B50900A72FA2BC8906 4D13913A1B28DDF267D58E0C51EC3FF7C1B4025939A13C449A6B407CEA946E1A 9BDBE21E584FB7AB2D8D47DD097CB69E6C4275C63F6BF28B8CA7EB23B9723355 5C598477CA8B86B3608E59B3FF89A31C76F55B33EA511C202ACFEC9320FFF76A A8E125D45088B0A3344FF46A786261D6BE5D011AC6CE7C7938F4D8BD208867E4 90C1A4D47CD89A2572E4CDC3105C0BCD09EBF8B0736F866C1FC064A0E3645959 AF02143540F555F5CB9A9C158AE1753D86918DC326B700901717B8C19353F6B6 E19FCDD4D9624CBD8D65592E59811C08D8D6F61ABF62D2E2A3018D0A442271FD FBFF4C923B80D068F6FE396564AD24DD2C588A3D0E63FC56D587DE4F42EA2D51 FDFDDB09A6C1CE9A12514608B059CC6643D9288C167A1DF5B72981EC58F39A37 90F9FB9C06F4182E2E576B69A4522EE91B8270DF0BBA3E0B5F35192C1A6C6EC5 723E5C2D7B10ABFF65E472E3F2D61881FA2CBBBB3D324010269F73DC0B7F7BE4 56B793A4F8DDC7A30940AB97E7FB9C1734D75769129E4D5B942AC8EA638489BE 664EE291BFA64BB87625570FF748EF29D88CCFFF67BA3405757A1E0A47C4A352 35FF5E 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 515DB70A8D4F6146FE068DC1E5DE8BC570317AAEA74A842CFD26F9591866F5A0 9B4EAD7395F5196B36997F1D59E88165C94739E74C2B40820F8C972B175ED79D 87C9E323C3CDD5C2BEE6409017767534E19F45AFCE2C6687733451AD2E75D112 42040BADFF90F5FCE19923CC1D0C66453991CA813BBC16B5DFFE423A00EEEE9E 22A0EA62FF516AAEC38300AB23C68B9D93EEE7BC29CCC9239E337780666AD40C 145318FED577D49BFF4E830A04E80486B5D937FC8B4836F65C17A8156E13C59C 7ACC1C66D44381A5E35D15A62513BB8C2973DD373ED8E6AE4BE2C863C3A80E74 EA8550662A757841F87789D30EF521F1677432CE0C8E4188AF3634041CD8DDC0 F37566D21B1E71EAE7A9C1EB9B559013200D2896FDE00469335D09698BF7B16D 8E686BDA247174A6A9E28FCE8D6B96C3021F80A10FF2DE858D97408668CB8F70 D0BDDC7BB4378BF1E056FD8C478D9135578F09200E9ACF2A459C85A97CCB762C E8E6DBD31CB3E8526185DE2EAAD73FFFF26043D2B0F3A25523302A5764A49007 E0D2652B5EBC3C0974BE27063D0C1A8DAE673A9717553B905D8106E4296C6D22 A01D848D42D7440C5264E8E05F041BC80C1FF3A94E32D3658EB9AF2BAB472EAC 4A01AD01CDAB21AA6DB9EE0D81032FA771DB4E5D9E0465D3AE25A54D10D39A33 22AAC024DBC4D62A5B6D0FF21B4F0FD5FB33E4A379645FAE736F 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 1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4A78141CA32C B3C74E1A0AE0520B950B826B0ABD81766035058ED1654D00FE541CAD1D246C0E DE85FCD3C0BF7A70B913487B1A527EA823C00C39DB61FD6641B140FCED8580D8 046741D2494B4E7CA1F120CBB0A532BE049CABEB70A39018E8212F8178E93C98 B377AE2880FE39BA0EE29451857DB34964DA26ACA4CD23CE284ACE37D89571FF CB67DE7AE379B74B32ECACC5F3DE0566CE9EE820E96F27653C75935851CD9360 A83C7EE8270383CB8A80715BC2B62B1F709235A5A73D99710D7665182D461095 B98C8A0FEA44F0F1959055D50BABC7880E7BA1CA4CD72531A240A622663A0A1F DBE4FB907F97515CB1100282C9A0241F65F84EBAB1701FC105BD25F82807F4CB 6A5EDB5CB156A7D55F64146818245C113781C1076F148B510763D6FD43BF322D 01718C2A81B481008937D9D939C42B491AD9AE63570C07C4188C8B9A441CF77D 080047A70AD3A1E23AAF07B9251DEEB1973D9713986B9DB0EE0DAD50E46957DC AC85E6FCC653FEAE5E27DD42D96C78C0E0A30A6E11247C5D14AE50E54628274B 89E6756E1490CC1C4828BA48B0C58C9EA690F723F90BD6774AFC886D4C8566AA 109BB0061C0B7DA5D7E99697F7FE64ECC51B11A799466C9A7BA5093B0651C742 DFDCE9F6AC2764D109CD3EA9D1E43D457E1BFC0EF9F468B18ACDB7722E461E2D 83A52B72A37A96AF40851E3CAC0C35BFA537C76CF1821A7A96CC3B75B8C9B05B 300902358EC92E883CC78B6BA1EFB262074411E2E349F3F1D4C2A5BA4EF07284 F834694209E549CD3E4034334CA03E1165D0E3FFD1E905DCF5D0CC186FEC11A5 C1AD10889CD8F8845ECFBE566D4B7D06386AB794D0E5A62443E9F3D87B56B7A7 0B9928CD7ADBBA0C8B57A5EDF77648B3A95CFEBFF9D2DE51B6778849B9873A08 B3057D5CBCAFE9F56E66A1710C79CF265BEF38F4345FDF2A37E250346D591D15 EF9E38F376E52737D1B6A2E4C2B1958A84F8A73F3F34A51574F7 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 7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3A38ED682C65299D6C 67201AC4BEC92930ED59A43AFA43F24F6ACBEA592A03841835D631F03C2C1A78 D554F14F748CFE52EE1255995118829A77F388B119B21C90975F74DE5E4A6DA9 C531C14FDA14B4AA1EC720F6CE0342AD2CFE20771E4F80ECEB0ACA2CF89E2280 6BA7F408F14F24DEEFB988141457533E4822D51A43231D49BE8B184483530CDF 6B37AE44174A99A2367CDFA06D801B1588A55CD8FBC5B1A6903110F1BC42EC5F FCCE6840E8ADC084E63A7C5C45FE6953D18AD1C2573314AF568A69608A9B3825 8DDD825D7E8041DCDA231DFB8E6ABD97BCDCA95500E72B2A64F2F989A6D7AD7C 875D0E0E051ACBD893E30EA56145D44F2DC60EA9D0F7D62021E05D2624B00B93 92171DBF9964BBEC03013F324BD4B1E3053CEED520CD0E02D3BD8695B3C1D422 9FD5F78A6F1810C4440733ACD23081486B1EE2221ABD2BFB1E06C263CAE8AE94 4698EBF555690B5BF175FB78B3E80571E61BB3FE38E49F75EC083CEE7A5DDFC7 AC37A6D9E49F46CA0B3AAE98A934A36A6D0B76A496FE37B34D462E79BDFB28B4 401DD4CF5332C97454C391CC416121B01D96EFFDA1C1A2EA1ED458125708627E 72CCE10E01B80EDF84C1658B6FF324C0F901CA8D4C7AAA3C6A2F2658F1ED7A0E 4228AA7DBA4A7AFEF4D272BD4AC3B6D90EDA8D4462328555D68A53069A1166B3 568EED4311DA1028846B3EF82C41D778B61CA2AF63443672BFFE3D58AE05D48E F48C6F8A770233D0676F819F10A2206E7DE284FDDA71B916A652240455904C5C C23A9125DC4A46E6ACFD9CC88DC11214B5E384598A7886C7D0ED2C924F114D5C 4EA02B2EDDB0BBED695D217287D5E26DE7641BACC92D152C2C955FF55514F5AA 306B89FDBD8FE7F3BE8652589BACC5F2D3CD70F4F9F72B5E6EF1385238AF1F99 F9C6FC4FF7290EA677603C36D9D496EE76E0D33ACB0CD9323DD30EAA35959B9D 0B3D683D5F29D6801B476291ACD1533C499CD686C2EBC79FD4E17DE6B862FF83 2B6E02FDE9277259183B1CEBA00E5055B51FFBBFB5043293F925453D6D0C7D50 46650524F2F2F7679EF60E398A440ED4868E7D69F6F09A040FACB689E97EDEE4 6A3F409030EE739169453982DB3775E2054E1F031B3B8F639295B3BDAB2B3F93 4CF50A549D7C06D4F4DE73AB61AE7575B49E408D531F242FBADD3568AF9E11B7 21C909FCF4A03E6F8F65D40B4B8B102A7371F5190C37310EBB52511046451DC4 D18A4FF33E0796A5F88A34390BEDE27B244439C2DCE72709E540FA939BB86CEC BEFCB50DC4031BC739029879111C0BF1FCA718F347C432CF3E969862DBF4FD46 8C35FDDA088A2DFCCA7C0686B2A4A92930F7EA8C1DAC8D5EFA1E3002936FEC21 4320629036455658CA73552DE3AF406F181F748007B820B7095056E0367606C7 009C2C7C88901798D6446A392BC9C26680763E75E5788C57423403E7C83DAB74 88A13EA139B4444E658629106BAC05E247D653BEA889CF235A8033E4457ED685 B45872CA04348319AFB8B28B0FC4E6C9AB84AB52A9F2A0950D23472911ECB370 87A378B68A9015F51BC45A0017B1E4AA3CD80B80323DABDF52FDF7702C2719C7 B84751D30E0300CA67F5DFB9118BA05E0FE50D28385639B1F68C19958390875D 5FEBAF5094F2A935F447BE610370AC01A049E013A2FEF8F08E84D34556B56521 2C628A23FA1D895DA95339310589ED37DE9B995D4C9EFAED225BFBF4210A67F9 BB05E659741C875E1797D1C5CBB043F5D6207B1567EED39C2C86B9C5FF5C0177 E13066C94101568D08686137568ED409C049DFE7739BDDC9669EC69BB407203E E06E794DE3A0E0EDBEEF5456ED4950224107F0127AFD7AD13C0BF61C1B5F9CCD EEF9432BB7F8B4C7187E41F159A7F5BA848F409C9794DE716DF1315AE4367026 2BEB9F37D8B5EE36E1E988629FE424036995275C2CE51AE16BB14C590B046711 0F20F14D6F27E127DBD70F67A0342C48DAA1F0C77A8F5147CD64072C698D4ADB D19F4C7EF9E13E8E35436DE778499298FBDB33B504820974CA16A82B52F8A28D 67F29825F87C517883A2935C9980ACFCEA6650F9027803D523630DFE17C8E7AC EF9B415A415E678F41C5FFAD9753B6D8E45A17916F5CD308615B71AF43F73D80 DFA5D140069FBA6E0B5B2738DB790D39BD5B578ED4A025EA2CEFE788A05641A8 9F9CC5CBD735EE31F8F30F802098F9C17AE97BAF965907CE743446AE57CDF35E 252034E45B5497E58E115278BE3477D9A8A9CBFDAFD7A86091B3AC7F99E339DD 5AF4BF01B8EEE55C5275759E21096A000796633A7B19CC5E91275735C84A0BC9 2D5E2053F76BE94A4085C6E7AD060F99386B90A48FDB8D34B509E205445901A5 CB65FE49F72EE231B45E5F421563484DB6613809456471CEB5A8D4BA3DF45D53 E68E8201546621A3F288B05FE705CE32E972A4E849E3856B03D8D3456EE0DD82 02FBD6534771BD10C56B68F0468D26A2843DCA34A3BDEB1979453B5F88062D49 91510280D6D18C3C9EC46612FBE91C52096313697AB0736DCAAC5A0ADDC0BDE5 5471048A44EFE095A10F9126626122604FD1CDE5D662D87B215BE06E4DE296AD 6802DF465B7C4A61DA3622FC331867A970F9342F87522B3BEEB730429A075912 408E620425E5C70C00D059F2BD5F5A0C55A1EB63B2709DEF3D043716778E3B03 21BDBCE89DC7FD679A9B28FA55BF1D0F7B5E34F31E2977BBDD4D2D83F9C58B51 0BEFA7551CF63C8934D89FD792CEA4FDA7702722858F04C6B5D638370D572A57 E08BC1E2B2745118262CDF81AA40F316DE6F04DE2D668BC1F4C1AAC825660C95 75488C1F41DC85804F6D294E06770671A777FE880A16AD6B33C6E1E02AC2C0FA A3E0FECAF6C29DC4C1216FE9B1D47D461D7873D7A9C4973E48E3C7CECEC48EBB 14617E26DDA9D2E3EDB5C22F12C2B1242E5DA67A1A7ACB95E561027088229736 5A3E2A58F62B27AEFB53BE80AE7E77DEDBEEF7D372D1875C63D9C26F590C98DA E91F9DFE100BA7CC43A2F4704C5EE61F67920C1B1072694E22E22BFAE2FA453D A49BE0EE097DD0D7E5FE6BBB01776344F0984E72D16B8148BE99A981DBE5F1BE 21F952E0018533D6CAB4EAFBBA8386ED26A23A815F67FA263E7455578DEA7D1B 50E2AC0D51B8AE692383FE5160D044B6953134F69FCCBDC13D01D1D8303C398C 3483072321C699793014E66EDE9EFE2FBAB51A0DB6D9223E12BB395711493D96 9755C59C607253685B6D8B3B2DCEA9D3CAAD1B6FDE0F36744A05EA1492C75079 B9A90BEE96EC908EBE3D328ED1BA32F98A36E95621C8BFF715B551C5E4D311C9 87195CAB672AB639803058C6203E1900982621A445E3778031DD052B53F25AE0 C1D39A1FFC50805DC46EBBA139D8DF5E911E2143AC93076DA475AF4E700E573C FE9E742E7B953829F45214B2721D3EF2FFA52BF1B59F0E1D38D155DB9507DF1A D9D1338411CBFAA9AED8C4E372BE6D7B29C1FB8ADF4428FB4F 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 AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 956017667584E6F16103D733BAE8A38B284A51E2BEE8E389961403DCB416B35D 4011901380E645B0F9CE140CE1C7A3ED3CD40CDC8DF1710CC75F24CD957BF399 82C448EF27EF17254F50DFF04A6326022D22BFCC7E1A6D51E29D3EF8550D8187 3D329D7557907D9636BF9F32A7B23432ACEA5EA9F61433AC3D46F0A993F3BCAC 1E2D96B55C996BA9BEF6DD438A4B0BE2CF6F1F627FB0640854CEA6DEE3E775CD 7E765462FC4193A478F7203C4FB30B8D39A3D9E16F41FC5FC0D41B5B423BAC3B F299EC69886170A8E34CDFB8B2F9DD432C58C07E575193924BEDC3029A1DD258 09FB22133E980A58CEEA88ADD4EC4A1D1B7C53D14AB8924C9FD437F6A9EA3D64 8ABBBDE954D771CFD946F071DEC795CEE5CC4B0DC37DA95ED6C2001CC2BAD3B1 7F8AE93530A6E8B7F3D93D1A83C020D013DC50C65B113421D587329A1C28909C AE93E741E3E4B75CD0DB9B16256643698C45D41364091DF58F19EEEFE47BAC75 29FA6BF6508CE6198BB39495DF8F294E87DD549F8144FC7B843AF1697A578B8A 5CB5F48ECE2C8C66A3EBC7834A0653D7A5DA72C6937B23F5C750CC885E940AD4 EF697AA4A7261A852B87D488F65467C20B55F77CD41D45795F9C6E8F184BAE54 D9FA3385214110E1748091AA3EEBE93837628556E4409BA317D156338D4B9225 409C6F24EBB40411C39A9A96AA03FA37D3E290DA703A93B200AB9E03DE74970E 97591999F97E1658110435F37732325FAC856940F38B29BFA4E22E2EA098713D 7DB4566FB1D930B9BFBB97B0F553F3E9E4FBBB48E938D0FDA09ADFFCC6C94D5E 6FF3FA183E798C795648684EA847AFF52977FB9D80F59314D4A3150164E544F6 8E7AD9E949DE39DA2CCB772B84676F40305793B432745EC49D519ABFAD392D33 939F9640CC3168E5F6F822ACE46C08081374BE6A190292A218E31F9967F8F605 B591E32F0604A2DE2AC98F997BFBA73D0861D5A1F901EB23A6CF4AAD7D2363F1 142BEED438FAE0A8BF5131EAFC27FA97252A0CB41C6090B9E8C162A01CF96FD5 19DADD49CFEFF87DA051B946D88A73A44DE9F07446A7EA63A2CE2EF9420D5FA6 BF6D159E67C6089B6BA08FE51EB82B4ED54EE44B0CF8B2E17F683665768D6838 2D799D53537C821B73F4587572ADA4747FABFEC0797687DCF56784DD12888D7C 7655BC797CB11255D6A7522C6547E1BB0E9304EDD16E1B21AEF49E6D9D9D4A54 3CDB7B6449EA6988EC70D4DD614F15CC18778AFEC638B2D08CAD1F2A7DF9F329 3A0E97CAEC94A53CB1D36710F90B1548A8F262447765B477E8FFAC8F8F8BFE67 9439579043F17C7A4F1221B30A916776BD0599AB5A96F05A7CCCD8B3BBE922BA D265713EA492CCE4BE75659CDBDAB6A41711B1A92919B3D635C504E4920B8764 6E818F90B4713B95C6DD79EDC017133350D2D62B41B20CA50BF486C73BC1891E EC507419F31F965DAE2C30A7D4BE24D72F2E8573A6D93EC58C26A009B92DEC27 640906822C2870DFC89466C299D4953538F87CCCFD2898369396106D57DCCA2C 05D55BBBC0C2D018CBBBC5DAB0FE2F07C23338BD3804419E05FB3DB25CDA0CD8 D5E0FED2C97E1ECE4D5BA252E901B7156D6442D3AC59F19A2C64C9CEA4E0444D 2082EE02565F896989F45343134F8BC8D961BCA5608FE1C94B9B204348CFF9AE AC3773D964471723FD27AE7C623CC02A16F35FBCBE2F6D423DF00336B87ED66C 26DDECD9D0BAC3A3D9209461DE5781DFB48872223151400DFF651ADCD39C292F AC9E37F7AF880C2D177DEF3DD516EA853B9CED9264A9F9A70C080777A007EFAD 374582CDAF9943B06B20D9BCC987FEC80F9D222E15C7EB8183DCAE81B7319220 541ECCF82156FFA2A603EC4FE0345D11F380C6FCDEA87667586D702E66EB8BC5 4051F7228A09EB11E8BD23B86B58691752B7C0669ADDD07865BD022592BDEBA6 593B320724FCC770B8D71FCAF12C119E34BFDF8CB711AA78B9488844CA12A1B6 95D3D137D3EC43BB49FFA3200372A2F0FD9AAD5999D83602ACE45C59E4353C96 D3A3367B5BA4F9741A5562808E8D03A906CAA93B08B05147B002BDF5EFC09C28 465BAEEBC767529635BA550B7D1B5572CCAF981464BF36D2E0881F06B9725A1C 26E1CB46A9BDDE123F7AC61A189D27F28A01172741F73019D6853C92C5AC26B7 1F07630CF64958CCC680AB604615E4D8A38A2D3F371AE5E8F24B95289A598B8C 37742E857A935ECB4EDC6311E868803A9FC669D8D5FE46FD78C35F29A2132C5C 9EBB0AA4D2C8561385B712295B08D971323544FBB6D8C00E76C4CABC54D16F65 365C618562153DB0E3E0D23ED69687EDB401EE0799D43A6B82615D096E80F3E1 5FE656A5D2E74506FB26101DE5C250850A2ED10A91CC08D1DE6D3D6ED8C18D78 9AF071CD69B1FF2FAC5B3817CA045AB6B315B2F8DC61CC4FBEE3B2DF27478232 9189706A0332B2B7664FECD2C32C5BAFDA5D604FF4126FE930A7359F9E28B974 8626CF4870740689CC8BD279FFE0F8A531CB4D288221B59931EF70217DA1EB94 0A66B6E92264626B2F91D5D3FBF5FB048B7466971F2F1DEE36320B0B32561C4A 5A5DFE1DC496B03AC28C2D9FDF9F5F44A7B3E364E2139B8AEE817E8F2F7D88FC CE840F75D298B4347E9F9212179BB062EDD440A38D1102EA0F7AD086E8C7A3DC D045DA2E660BC11D017FF1568EC0C6D6C5F74019062DD127B2C4172DAEBD372D FE817CA300851353EE0504EBE54B4C06C1016529C1F9AFA3D038B1940D417A24 2A5CA45B0CA5046BB67165820674F5407C8B2ABFBDCD9A46199DA191188BD773 2FA51BCAE8A10DC96C5BEAC4545B0FEA5DFD6E320680B9762026BE0985EE435B 754A9DF4A77E97AEE2B902E631011B7454CE1537A3F21E0CF97FCB7DF03A4346 68390F646AF0A0657DCA0C9C7C316C7F91F6511B80223855F3A83665B1C6E069 7C92BBF5E351DAA4CD8C0E3FB883F0C607FB4433772B16AD1034A28C6E2A48B6 21326923EF7978342E8C51F1F084318837575E034195A4D18EC26BD7D17BB152 402A20B89F1593245E3D7BDF796DD41B431827CB96251194F316ADFE4A98E02E E9C3A4F7A9424B3BC81E2C4C214315D3F9516AF11DCDB135902F6C3F9E650DA3 48B54A11624E45320DBADE4BBD594526CA9E7D09AF9F361CD3BBFF049624D37F E2F34AC7063BD120E8B2BA8FFED181D16018D5E6CB6E04C4B81C29068CA3CCE5 3836992ED8DD0E5596B799199E59D6C21E33F6EC19B6DF41D942911A36746600 42A27DA3AEC1B52E8D656032A9427A380D91615F4A503DB506C6E773A79CA167 00B1BD5E548650C5385853B29E0695C1B60F85F37B6A3E4D1689D7DA160CE58B DCEA02086372E26D5B820A6873D981C2BCA7F9AE2A55F63A04FF75A1380728A8 6FBA3A13E882C8E26DE3B24394FA7D34C0F160B4976EE0967450C74DA7E60CFE CC1181152406394E33366CC6D467C58E3AAE96B35F0D0DCBDA58509475547E18 C0F0E1CEBB3CB62FA2AEC46D0F158FA2861A3C3863900BA8DAFFCA923289C0D0 53669D1621ED913D2862289583D306B6823511A4D807A7CA5B9A870A38EB6A7B EB4B9745A5223EF025FDBE0F31946067F8BAEC01F75CFF3AEE1D499AA4F2D124 5F31ACEB573DBAAA53663AB6D6E10FFB8097282E14E30BA888F4F0BE0A6F4314 9EC0E243F713F60614BA8714A14D25D722DAF0A67C6C5265AA2A59F34254515B 98E1A90B38A1854A895B85860D44327167F262C90893FC57AD52846F62544611 74EB6F8E677177232540386D564380BE113E3176C0C21B78499DA244A2A814B3 E0ED74F9118B882016B6B5FEA78F3807EC76FC154842C5FBA8E5C890F9AC0063 8F4517D5C64131E95FA7E63851325ED5DBC3EA4AE46284CABA05440C3F04E6C0 0E598D4744F8ABAA75C8769894C126F037A45BF275D4A2C448B81DD41BAB18AD 327405D0161F6C061B73DE2564F322699C29C5304FC6EA7A5165F9C40EB81443 0972CCD60BF9D4FA677041FB7386FC1EF0E1DE37B63D911C0952C0A5B53C2450 69A6C9FE69D639463A6614993E1FA2A7AA2AF24B1A20F2A43BD7E79B5AEFDB07 C8C94A40E6DA37E43F8576B50C3B8AB0FA0E427D6FB2E9E4A424B59BD2B7F52C 300E1022F826CE48094D5EF6EA747CB3B2703C3437AAEB184389B9D04EC440EF 2B1C6918C9AB58D2F4E53B216EDF0912A3873A449DBB1AC8864B595E392DC303 10163007174EF5F6157C4A4E93023CC771E45EB8A74CDEA93087457931D7D249 FC10688D22723E35C29896434D2804F14C3D73AA8C5B5BEC1C4389885BAD0056 BEEF2BC8A32E3E201001A02AD9320AC34171B87059682AC10CFC8E3CE4C5979D F406A2972542432FC9BAFF79402056916C1B000215D9F0FBACC4B59065301E3E AF3EAB06E38F2D6749F478BC96209FF009292E487129DB405046516EB5B90800 4EA976093DD6D78DF3D06D3F0A77EE8BBF20038368654EB0E22088FD88C17191 6B7FBA5A4870E24C 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 40258431 52099146 1000 600 600 (paper.dvi) @start /Fa 133[50 2[50 2[50 50 50 1[50 50 50 50 50 2[50 50 50 50 50 1[50 50 39[50 4[50 50 50 1[50 1[50 50 46[{ TeXBase1Encoding ReEncodeFont }24 83.022 /Courier rf /Fb 206[35 35 10[59 37[{ TeXf7b6d320Encoding ReEncodeFont }3 66.4176 /CMR8 rf /Fc 255[52{ TeXbbad153fEncoding ReEncodeFont }1 58.1154 /CMSY7 rf /Fd 167[120 88[{}1 83.022 /CMEX10 rf /Fe 138[46 25 36 36 46 4[25 41 3[46 1[41 1[41 1[46 14[56 1[56 27[46 46 46 46 2[23 46[{ TeXBase1Encoding ReEncodeFont }18 91.3242 /Times-Italic rf /Ff 134[37 37 55 37 42 23 32 32 1[42 42 42 60 23 37 1[23 42 42 23 37 42 37 42 42 8[51 69 1[60 46 42 51 1[51 60 55 69 3[28 60 60 51 51 60 55 1[51 12[42 42 42 42 42 1[21 28 21 2[28 28 40[{ TeXBase1Encoding ReEncodeFont }51 83.022 /Times-Italic rf /Fg 177[56 78[{ TeXaae443f0Encoding ReEncodeFont }1 66.4176 /CMMI8 rf /Fh 137[33 2[31 4[41 59 21 35 1[23 1[32 5[36 97[{ TeXaae443f0Encoding ReEncodeFont }9 58.1154 /CMMI7 rf /Fi 252[42 1[23 65{ TeXbbad153fEncoding ReEncodeFont }3 83.022 /CMSY10 rf /Fj 134[37 1[54 37 37 21 29 25 1[37 37 37 58 21 2[21 37 2[33 37 33 37 33 9[71 21[54 18[19 46[{ TeXBase1Encoding ReEncodeFont }22 74.7198 /Times-Roman rf /Fk 206[25 49[{ TeXBase1Encoding ReEncodeFont }1 49.8132 /Times-Roman rf /Fl 206[29 49[{ TeXBase1Encoding ReEncodeFont }1 58.1154 /Times-Roman rf /Fm 133[29 33 33 48 33 37 22 26 29 37 37 33 37 55 18 37 1[18 37 33 22 29 37 29 37 33 9[66 2[44 37 48 52 41 52 2[44 52 1[26 2[41 2[48 44 48 5[22 22 6[33 33 33 2[17 22 17 2[22 22 36[37 37 2[{ TeXBase1Encoding ReEncodeFont }51 66.4176 /Times-Bold rf /Fn 138[46 2[37 5[23 2[23 1[42 1[37 2[46 42 12[55 13[51 11[28 42 42 42 42 42 42 42 42 42 42 48[{ TeXBase1Encoding ReEncodeFont }21 83.022 /Times-Bold rf /Fo 194[51 3[33 6[33 33 49[{ TeXf7b6d320Encoding ReEncodeFont }4 58.1154 /CMR7 rf /Fp 194[65 3[42 2[42 42 2[42 42 42 4[65 1[32 32 2[69 37[{ TeXf7b6d320Encoding ReEncodeFont }11 83.022 /CMR10 rf /Fq 136[59 2[30 3[42 40 50 1[25 43 1[29 20[49 5[67 1[57 8[59 63 3[65 42 65 1[23 58[{ TeXaae443f0Encoding ReEncodeFont }17 83.022 /CMMI10 rf /Fr 105[42 1[37 37 24[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 51 60 60 78 60 60 51 46 55 60 46 60 60 74 51 60 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 47 1[28 28 28 1[69 3[28 29[46 46 2[{ TeXBase1Encoding ReEncodeFont }81 83.022 /Times-Roman rf /Fs 82[33 50[44 50 1[72 1[55 33 39 44 55 55 50 55 83 28 55 1[28 55 50 33 44 55 44 55 50 7[72 1[100 72 72 66 55 72 1[61 78 72 94 66 78 1[39 1[78 61 66 72 72 66 72 7[50 50 50 50 50 50 50 50 50 50 1[25 43[55 2[{ TeXBase1Encoding ReEncodeFont }57 99.6264 /Times-Bold rf /Ft 134[42 2[42 1[23 42 28 2[46 46 1[18 2[18 46 46 23 46 3[46 9[78 1[60 11[23 5[60 67[{ TeXBase1Encoding ReEncodeFont }18 83.022 /Helvetica rf /Fu 134[50 50 72 50 55 28 50 33 2[55 55 83 22 1[22 22 55 55 1[55 55 50 1[55 7[66 66 94 2[61 15[72 2[66 101 17[28 46[{ TeXBase1Encoding ReEncodeFont }28 99.6264 /Helvetica rf /Fv 82[50 53[116 1[91 50 1[58 2[91 91 133 42 83 1[42 91 91 1[83 1[83 15[100 4[108 9[108 2[108 65[{ TeXBase1Encoding ReEncodeFont }19 149.44 /Helvetica-Bold rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: Letter letter %%EndPaperSize end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 663 272 a Fv(A)41 b(DoS\255limiting)f(Netw)m(ork) i(Ar)m(c)o(hitecture)435 633 y Fu(Xiao)o(w)o(ei)29 b(Y)-14 b(ang)271 724 y Ft(Univ)n(ersity)23 b(of)g(Calif)n(or)r(nia)h(at)628 816 y(Ir)r(vine)360 940 y Fu(xwy@ics)o(.uci.edu)1601 633 y(Da)n(vid)29 b(W)m(ether)o(all)1494 724 y Ft(Univ)n(ersity)22 b(of)h(W)m(ashington)1414 849 y Fu(djw@cs)o(.w)o(ashington.edu)2848 633 y(T)-12 b(om)28 b(Anderson)2712 724 y Ft(Univ)n(ersity)23 b(of)g(W)m(ashington)2624 849 y Fu(tom@cs)o(.w)o(ashington.edu)0 1353 y Fs(ABSTRA)-5 b(CT)0 1478 y Fr(W)e(e)23 b(present)e(the)h(design) f(and)g(e)n(v)n(aluation)f(of)i(a)g(netw)o(ork)f(archi-)0 1569 y(tecture)j(that)g(limits)g(the)h(impact)e(of)h(Denial)g(of)g (Service)f(\(DoS\))0 1660 y(\003oods)k(from)f(the)h(outset.)g(Our)g(w)o (ork)g(b)n(uilds)g(on)g(earlier)f(w)o(ork)0 1752 y(on)21 b(capabilities)h(in)g(which)f(senders)h(obtain)f(short-term)f(autho-)0 1843 y(rizations)f(from)f(recei)n(v)o(ers)h(that)g(the)o(y)g(use)h(to)f (stamp)h(their)f(pack-)0 1934 y(ets.)25 b(Unlik)o(e)19 b(pre)n(vious)f(w)o(ork,)g(ho)n(we)n(v)o(er)m(,)f(our)i(design)f (addresses)0 2026 y(the)25 b(full)f(range)g(of)g(possible)g(attacks)h (against)f(communication)0 2117 y(between)h(pairs)h(of)f(hosts,)i (including)d(spoofed)g(pack)o(et)h(\003oods,)0 2208 y(netw)o(ork)16 b(and)g(host)h(bottlenecks,)f(and)g(router)f(state)j(e)o(xhaustion.)0 2300 y(W)-7 b(e)21 b(use)f(simulation)f(to)h(sho)n(w)g(that)g(attack)g (traf)n(\002c)f(can)h(only)f(de-)0 2391 y(grade)29 b(le)o(gitimate)h (traf)n(\002c)g(to)h(a)g(limited)f(e)o(xtent,)i(signi\002cantly)0 2482 y(outperforming)12 b(pre)n(viously)h(proposed)h(DoS)h(solutions.W) -7 b(e)16 b(use)0 2574 y(a)k(modi\002ed)e(Linux)g(k)o(ernel)h (implementation)e(to)i(ar)o(gue)f(that)i(our)0 2665 y(design)32 b(can)g(run)f(on)h(gigabit)f(links)i(using)f(only)f(ine)o(xpensi)n(v)o (e)0 2756 y(of)n(f-the-shelf)20 b(hardw)o(are.)32 b(Our)23 b(design)f(is)i(also)g(easy)f(to)g(transi-)0 2848 y(tion)17 b(into)h(practice,)f(pro)o(viding)e(incremental)h(bene\002t)i(for)f (incre-)0 2939 y(mental)j(deplo)o(yment.)0 3183 y Fs(1.)99 b(INTR)m(ODUCTION)75 3300 y Fr(Denial)33 b(of)g(Service)f(\(DoS\))h (attacks)g(ha)n(v)o(e)g(become)f(an)h(in-)0 3391 y(creasing)23 b(threat)g(to)h(the)f(reliability)g(of)g(the)h(Internet.)34 b(An)23 b(early)0 3482 y(study)17 b(sho)n(wed)f(that)h(DoS)h(attacks)f (occurred)e(at)j(a)g(rate)f(of)g(nearly)0 3574 y(4000)e(attacks)i(per)g (week)g([15].)22 b(In)17 b(2001,)f(a)h(DoS)g(attack)g([3])f(w)o(as)0 3665 y(able)21 b(to)g(tak)o(e)f(do)n(wn)g(se)n(v)o(en)g(of)g(the)h (thirteen)f(DNS)i(root)e(serv)o(ers.)0 3756 y(Recently)-5 b(,)32 b(DoS)e(attacks)h(ha)n(v)o(e)e(been)h(used)g(for)f(online)h(e)o (xtor)n(-)0 3847 y(tion;)c(in)e(March)f(2004,)h(se)n(v)o(eral)f (British)i(gambling)d(sites)j(were)0 3939 y(subject)e(to)h(repeated)e (DoS)h(attacks,)h(and)f(some)g(paid)g(of)n(f)g(to)g(go)0 4030 y(back)d(to)g(normal)f(b)n(usiness)h(operations.)75 4121 y(The)h(importance)e(of)i(the)g(problem)e(has)j(led)f(to)g(a)h (raft)f(of)g(pro-)0 4213 y(posed)28 b(solutions.)48 b(Researchers)28 b(ha)n(v)o(e)g(proposed)e(ingress)i(\002l-)0 4304 y(tering)21 b(to)h(pre)n(v)o(ent)e(the)h(use)h(of)f(spoofed)f(source)h(addresses)h ([6],)0 4395 y(traceback)14 b(to)h(locate)g(the)g(source)g(of)g(the)g (disrupting)f(pack)o(ets)g([19,)0 4487 y(21,)25 b(20,)h(23],)f(o)o(v)o (erlay-based)d(\002ltering)i([10,)h(1,)h(12])f(to)g(protect)0 4578 y(approaches)e(to)j(serv)o(ers,)g(pushback)d(of)i(traf)n(\002c)h (\002lters)g(into)f(the)0 4669 y(netw)o(ork)15 b([13,)i(8],)g(address)f (isolation)g(to)h(distinguish)f(client)g(and)0 4761 y(serv)o(er)j(traf) n(\002c)g([7],)g(and)g(most)h(recently)-5 b(,)18 b(recei)n(v)o(er)n (-dri)n(v)o(en)e(capa-)0 4852 y(bilities)21 b([2,)e(24].)75 4943 y(Each)29 b(of)h(these)g(proposals)f(has)i(merit)e(and)h(pro)o (vides)e(tech-)0 5035 y(niques)22 b(and)g(mechanisms)f(that)i(can)f (help)g(to)h(address)f(the)h(DoS)0 5126 y(problem.)63 b(Y)-8 b(et)34 b(we)g(ar)o(gue)d(that,)37 b(by)c(their)g(nature,)j (each)d(ad-)0 5217 y(dresses)16 b(only)f(an)h(aspect)g(of)g(DoS)g (rather)f(than)g(the)h(o)o(v)o(erall)e(prob-)0 5309 y(lem.)25 b(In)18 b(contrast,)h(our)f(goal)h(in)g(this)g(paper)f(is)i(to)g(pro)o (vide)d(a)i(\002rst)0 5400 y(cut)j(at)h(a)g(comprehensi)n(v)o(e)c (solution)j(to)g(the)g(DoS)h(problem.)30 b(W)-7 b(e)2000 1353 y(be)o(gin)20 b(by)g(de\002ning)g(what)h(we)h(require)e(of)g(a)i (DoS-limiting)e(net-)2000 1445 y(w)o(ork)26 b(architecture:)37 b(that)27 b(it)g(ensure)f(that)h(an)o(y)f(tw)o(o)h(le)o(gitimate)2000 1536 y(nodes)d(be)g(able)h(to)f(ef)n(fecti)n(v)o(ely)f(communicate)g (despite)h(the)h(ar)n(-)2000 1627 y(bitrary)e(beha)n(vior)g(of)i Fq(k)j Fr(attacking)23 b(hosts.)i(W)-7 b(e)26 b(limit)f(ourselv)o(es) 2000 1719 y(to)k(open)g(netw)o(orks,)h(such)f(as)h(the)f(Internet,)h (where)f(the)g(com-)2000 1810 y(municating)17 b(hosts)j(are)f(not)g (kno)n(wn)f(in)i(adv)n(ance;)e(this)i(rules)f(out)2000 1901 y(statically)d(con\002gured)e(netw)o(orks)i(that,)h(for)e(e)o (xample,)h(only)f(per)n(-)2000 1993 y(mit)20 b(le)o(gitimate)g(hosts)g (to)h(send)f(pack)o(ets)g(to)g(each)g(other)-5 b(.)2075 2084 y(W)e(e)24 b(tak)o(e)g(as)g(a)g(starting)g(point)f(for)g(our)g (architecture)f(the)h(no-)2000 2175 y(tion)18 b(of)g(capabilities)f(as) i(proposed)d(by)i(Anderson)f(et)h(al.)h([2])e(and)2000 2267 y(re\002ned)h(by)h(Perrig)g(and)g(Song)f([24].Our)g(attraction)g (to)i(capabil-)2000 2358 y(ities)28 b(is)f(that)g(the)o(y)f(cut)h(to)g (the)g(heart)f(of)h(the)g(DoS)g(problem)e(by)2000 2449 y(allo)n(wing)d(destinations)h(to)g(control)f(the)h(pack)o(ets)g(the)o (y)g(recei)n(v)o(e.)2000 2540 y(That)i(is,)i(the)o(y)d(of)n(fer)g(an)i (architectural)d(vision)i(that)g(may)g(serv)o(e)2000 2632 y(as)c(the)g(basis)g(of)f(a)h(long-term)d(solution.)26 b(This)20 b(is)i(also)f(the)f(chal-)2000 2723 y(lenge)26 b(that)h(we)h(f)o(ace.)45 b(As)28 b(an)f(architectural)e(vision,)k (capabili-)2000 2814 y(ties)22 b(are)e(either)h(little)g(understood)e (at)i(a)g(detailed)g(le)n(v)o(el)f(or)h(lea)n(v)o(e)2000 2906 y(man)o(y)j(important)f(questions)i(unanswered.)38 b(In)24 b(our)h(w)o(ork,)g(we)2000 2997 y(consider)19 b(a)i(more)f(complete)f(set)i(of)g(possible)f(attacks)g(on)g(these)2000 3088 y(systems,)f(including)d(those)j(that)f(\003ood)g(the)g(setup)g (channel,)f(that)2000 3180 y(e)o(xhaust)33 b(router)h(state,)k(that)d (consume)e(netw)o(ork)h(bandwidth,)2000 3271 y(and)22 b(so)i(forth.)32 b(A)24 b(k)o(e)o(y)e(contrib)n(ution)f(of)i(our)f(w)o (ork)g(is)i(the)f(care-)2000 3362 y(ful)g(design)g(and)g(e)n(v)n (aluation)f(of)i(a)g(more)e(complete)h(capability-)2000 3454 y(based)d(netw)o(ork)f(architecture.)2075 3545 y(W)-7 b(e)33 b(ha)n(v)o(e)g(also)g(designed)e(our)h(system)h(to)g(be)f (practical)g(in)2000 3636 y(three)f(k)o(e)o(y)g(respects.)59 b(First,)35 b(we)d(bound)e(both)h(the)g(computa-)2000 3728 y(tion)c(and)g(state)h(needed)f(to)g(process)g(capabilities.)47 b(W)-7 b(e)29 b(report)2000 3819 y(on)k(an)h(implementation)e(that)i (suggests)g(our)g(design)f(will)i(be)2000 3910 y(able)29 b(to)h(operate)e(at)i(gigabit)e(speeds)i(with)g(commodity)d(hard-)2000 4002 y(w)o(are.)62 b(Second,)34 b(we)f(ha)n(v)o(e)f(designed)g(our)g (system)g(to)h(be)g(in-)2000 4093 y(crementally)24 b(deplo)o(yable)g (in)i(the)g(current)f(Internet.)41 b(This)26 b(can)2000 4184 y(be)g(done)f(by)h(placing)f(inline)h(pack)o(et)g(processing)f (box)o(es)g(adja-)2000 4276 y(cent)h(to)h(routers)f(at)h(trust)g (boundaries)d(and)i(points)g(of)h(conges-)2000 4367 y(tion,)d(and)f (upgrading)d(hosts)k(to)g(tak)o(e)f(adv)n(antage)f(of)h(them.)35 b(No)2000 4458 y(changes)23 b(to)i(Internet)e(routing)g(or)h(le)o(gac)o (y)e(routers)i(are)g(needed,)2000 4550 y(and)j(no)h(cross-pro)o(vider)c (relationships)j(are)h(required.)46 b(Third,)2000 4641 y(our)27 b(design)h(pro)o(vides)e(a)j(spectrum)e(of)h(solutions)g(that) h(can)f(be)2000 4732 y(mix)o(ed)d(and)h(matched)f(to)h(some)h(e)o (xtent.)42 b(Our)26 b(intent)g(is)h(to)g(see)2000 4824 y(ho)n(w)e(f)o(ar)h(it)h(is)g(possible)e(to)h(go)g(to)n(w)o(ards)f (limiting)h(DoS)g(with)g(a)2000 4915 y(practical)k(implementation,)i(b) n(ut)f(we)h(are)f(pragmatic)f(enough)2000 5006 y(to)h(realize)g(that)f (others)h(may)f(apply)g(a)h(dif)n(ferent)f(cost-bene\002t)2000 5098 y(tradeof)n(f.)2075 5189 y(The)17 b(remainder)e(of)i(this)h(paper) f(discusses)g(our)g(w)o(ork)g(in)g(more)2000 5280 y(detail.)39 b(W)-7 b(e)26 b(discuss)f(related)g(w)o(ork)f(in)h(Section)f(2,)i(moti) n(v)n(ating)2000 5372 y(our)19 b(approach)f(in)j(Section)e(3.)25 b(Section)20 b(4)h(describes)e(a)i(concrete)1929 5649 y(1)p eop end %%Page: 2 2 TeXDict begin 2 1 bop 0 83 a Fr(implementation)23 b(of)i(our)f (architecture)g(and)g(illustrates)i(its)g(be-)0 174 y(ha)n(vior)-5 b(.)27 b(Sections)21 b(5,)g(6)g(and)g(7)g(e)n(v)n(aluate)f(our)g (approach)f(using)h(a)0 266 y(combination)i(of)i(simulation,)g (analysis,)h(and)f(a)h(k)o(ernel)e(imple-)0 357 y(mentation.)56 b(Section)30 b(8)h(discusses)g(deplo)o(yment)e(issues,)34 b(and)0 448 y(Section)20 b(9)g(summarizes)f(our)h(w)o(ork.)0 718 y Fs(2.)99 b(RELA)-9 b(TED)26 b(W)o(ORK)75 834 y Fr(Our)i(design)h(le)n(v)o(erages)e(aspects)j(of)e(se)n(v)o(eral)h(pre) n(vious)e(pro-)0 925 y(posals)21 b(to)g(address)f(DoS)h(attacks.)27 b(In)20 b(this)i(section,)e(we)h(discuss)0 1016 y(this)d(pre)n(vious)f (w)o(ork,)g(using)h(sample)f(attack)h(scenarios)f(to)h(illus-)0 1108 y(trate)24 b(the)g(strengths)g(and)g(weaknesses)g(of)f(the)i (prior)e(w)o(ork)g(and)0 1199 y(to)d(moti)n(v)n(ate)g(our)f(approach.) 75 1290 y(Early)i(w)o(ork)h(in)g(the)h(area)f(of)f(denial)h(of)g (service)g(tar)o(geted)f(the)0 1382 y(goal)33 b(of)g(making)g(all)h (sources)f(identi\002able;)39 b(while)34 b(this)g(is)g(a)0 1473 y(k)o(e)o(y)h(step)h(to)n(w)o(ards)g(addressing)e(DoS)i(attacks,)k (it)d(is)f(insuf)n(\002-)0 1564 y(cient)27 b(in)h(itself)f(as)h(a)g (complete)e(solution.)45 b(F)o(or)27 b(e)o(xample,)g(tw)o(o)0 1656 y(w)o(ays)k(to)f(pro)o(vide)e(source)i(identity)f(are)i(ingress)f (\002ltering)f([6])0 1747 y(and)f(traceback)e([19,)k(20,)f(21].)48 b(W)m(ith)29 b(ingress)f(\002ltering,)h(edge)0 1838 y(routers)d (discard)g(pack)o(ets)g(with)h(source)f(addresses)g(outside)g(of)0 1930 y(the)d(local)f(pre\002x;)i(with)f(traceback,)e(routers)h(stamp)h (pack)o(ets)f(or)0 2021 y(record)k(state)h(to)h(enable)e(the)h(recei)n (v)o(er)e(to)j(determine)d(the)i(path)0 2112 y(of)f(an)o(y)g(arri)n (ving)f(unw)o(anted)g(pack)o(ets.)43 b(A)27 b(simple)f(attack)h(foils)0 2204 y(both)g(approaches,)g(ho)n(we)n(v)o(er)-5 b(.)45 b(An)28 b(attack)o(er)f(can)g(\003ood)g(a)h(link)0 2295 y(in)19 b(the)g(middle)f(of)g(the)h(netw)o(ork,)e(causing)h(useful)g (pack)o(ets)h(to)g(be)0 2386 y(dropped)f(due)i(to)h(congestion;)e(the)i (attack)o(er)f(can)g(then)g(hide)g(her)0 2478 y(tracks)27 b(by)g(using)f(the)h(IP)h(TTL)f(\002eld)g(to)g(cause)g(the)g (disrupting)0 2569 y(pack)o(ets)f(to)g(be)g(dropped)e(by)i(the)g(netw)o (ork)f(immediately)g(after)0 2660 y(the)d(congested)f(link,)h(such)g (that)g(the)o(y)f(ne)n(v)o(er)g(arri)n(v)o(e)g(at)i(the)f(des-)0 2752 y(tination.)34 b(From)23 b(the)g(destination')-5 b(s)23 b(perspecti)n(v)o(e,)f(the)i(netw)o(ork)0 2843 y(simply)h(appears)g(to)h(be)g(brok)o(en:)34 b(pack)o(ets)26 b(sent)g(by)f(a)h(w)o(orking)0 2934 y(host)j(are)h(discarded)e(by)h (the)h(netw)o(ork,)g(with)g(no)f(e)n(vidence)f(of)0 3026 y(the)h(cause)g(of)g(their)f(demise)h(visible)g(to)g(either)g(the)g (source)f(or)0 3117 y(the)20 b(destination.)75 3208 y(One)k(might)f (think)h(that)g(per)n(-\003o)n(w)g(f)o(air)g(queueing)e([4])h(w)o(ould) 0 3300 y(help,)h(by)g(ensuring)f(that)h(each)g(\003o)n(w)g(gets)h(its)g (f)o(air)f(share)g(of)g(the)0 3391 y(bottleneck)f(bandwidth.)37 b(If)25 b(we)h(assume)e(ingress)h(\002ltering,)g(so)0 3482 y(that)g(an)f(attack)o(er)g(cannot)g(spoof)f(source)h(addresses,)h Fq(k)j Fr(attack-)0 3574 y(ing)20 b(hosts)h(sending)f(to)h(the)f (destination)g(can)g(limit)h(a)g(good)f(con-)0 3665 y(nection)k(to)g Fp(1)p Fq(=k)s Fr(,)h(e)n(v)o(en)f(if)h(the)f(destination)g(kno)n(ws)f (it)j(does)e(not)0 3756 y(w)o(ant)d(an)o(y)g(of)g(the)g(attack)g(traf)n (\002c.)28 b(There)21 b(is)h(a)g(further)e(problem,)0 3847 y(ho)n(we)n(v)o(er)-5 b(.)52 b(If)30 b(f)o(air)f(queueing)f(is)j (de\002ned)d(for)i(\003o)n(ws)g(\(pairs)f(of)0 3939 y(hosts)i(as)h (sources)e(and)h(sinks\),)i(an)e(attack)o(er)f(in)h(control)f(of)g Fq(k)0 4030 y Fr(well-positioned)22 b(hosts)j(can)f(create)f(a)i(lar)o (ge)e(number)f(of)i(\003o)n(ws)0 4121 y(between)j(those)i(hosts,)h (each)e(of)g(which)g(w)o(ould)f(appear)g(to)i(be)0 4213 y(le)o(gitimate)23 b(from)f(the)i(perspecti)n(v)o(e)e(of)h(the)g(f)o (air)h(queued)e(router)-5 b(.)0 4304 y(The)17 b(ef)n(fect)g(w)o(ould)g (be)g(to)h(limit)g(the)g(useful)e(traf)n(\002c)i(to)f(only)g Fp(1)p Fq(=k)1864 4274 y Fo(2)0 4395 y Fr(of)24 b(the)h(congested)e (link.)37 b(F)o(or)24 b(e)o(xample,)g(a)h(thousand)e(compro-)0 4487 y(mised)33 b(hosts,)i(if)e(well-placed,)h(could)e(cut)h(a)g (gigabit)e(link)i(to)0 4578 y(only)19 b(a)i(kilobit)f(of)g(useful)f (traf)n(\002c.)75 4669 y(Another)30 b(alternati)n(v)o(e)g(that)i(has)f (been)g(proposed)e(is)k(for)e(the)0 4761 y(netw)o(ork)g(to)h(limit)g (communication)d(to)j(pre-established)e(pat-)0 4852 y(terns;)42 b(for)34 b(e)o(xample,)j(le)o(gitimate)e(hosts)g(could)e(be)i(gi)n(v)o (en)f(an)0 4943 y(authenticator)c(of)n(f-line)g(that)j(permits)e(them)h (to)g(send)g(to)g(spe-)0 5035 y(ci\002c)22 b(destinations.)e(SOS)i ([10])f(and)f(Mayday)g([1])h(tak)o(e)g(this)h(ap-)0 5126 y(proach.)17 b(Our)h(goal)g(is)h(to)g(design)e(an)i(open)e(netw)o(ork,) g(one)h(where)0 5217 y(an)o(y)32 b(tw)o(o)h(hosts)g(can)f(communicate)f (without)h(prior)g(arrange-)0 5309 y(ment;)20 b(our)f(w)o(ork)g(can)h (thus)g(be)g(seen)g(as)g(automating)f(the)h(pro)o(vi-)0 5400 y(sion)g(of)g(the)g(of)n(f-line)f(authenticator)f(in)i(SOS)i(or)d (Mayday)-5 b(.)2075 83 y(Researchers)28 b(ha)n(v)o(e)h(also)g(proposed) e(gi)n(ving)h(priority)f(to)j(the)2000 174 y(pack)o(ets)e(the)h (destination)e(has)i(declared)f(it)h(w)o(ants)g(to)g(recei)n(v)o(e.) 2000 266 y(Again,)19 b(this)h(is)h(a)g(k)o(e)o(y)f(step,)g(b)n(ut)g(it) h(is)g(insuf)n(\002cient)e(in)h(itself)h(as)g(it)2000 357 y(does)k(not)g(address)f(attacks)h(that)h(e)o(xhaust)e(netw)o(ork)g (resources.)2000 448 y(An)19 b(insidious)g(aspect)g(of)g(the)h (Internet)e(model)g(is)i(that)g(recei)n(v)o(ers)2000 540 y(ha)n(v)o(e)g(no)g(control)f(o)o(v)o(er)g(the)i(resources)f (consumed)e(on)j(their)f(be-)2000 631 y(half;)35 b(a)30 b(host)g(can)g(recei)n(v)o(e)f(\(and)g(ha)n(v)o(e)g(to)i(pay)e(for!\)) 54 b(an)30 b(in\002-)2000 722 y(nite)c(stream)g(of)f(pack)o(ets)h(from) f(the)h(same)g(host,)h(re)o(gardless)e(of)2000 814 y(whether)j(those)g (pack)o(ets)h(are)f(desired.)50 b(One)29 b(solution)f(to)h(this)2000 905 y(problem)14 b(is)j(pushback:)k(the)16 b(installation)g(of)g(recei) n(v)o(er)n(-speci\002ed)2000 996 y(\002lters)i(at)g(routers)f(in)h(the) g(middle)f(of)g(the)h(netw)o(ork,)f(to)h(cause)f(un-)2000 1088 y(w)o(anted)24 b(pack)o(ets)g(to)g(be)g(dropped)e(before)h(the)o (y)h(e)n(v)o(er)f(reach)h(the)2000 1179 y(destination.)48 b(Unfortunately)-5 b(,)27 b(since)h(sources)g(can)g(arbitrarily)2000 1270 y(specify)23 b(the)g(contents)g(of)g(pack)o(ets,)g(there)g(is)i (no)e(practical)g(w)o(ay)2000 1362 y(for)30 b(a)g(\002lter)h(to)g (discriminate)e(against)h(the)g(pack)o(ets)g(from)f(un-)2000 1453 y(w)o(anted)20 b(sources)g(vs.)27 b(desired)20 b(sources,)g (without)g(ha)n(ving)g(some)2000 1544 y(kind)29 b(of)i(authenticator)d (in)j(each)f(pack)o(et.)55 b(Our)30 b(w)o(ork)f(can)i(be)2000 1636 y(seen)20 b(as)h(a)g(rob)n(ust)e(implementation)f(of)i(such)g(an)g (authenticator)-5 b(.)2075 1727 y(Anderson)22 b(et)j(al.)37 b(propose)22 b(putting)h(a)h(capability)-5 b(,)24 b(or)g(tok)o(en,)2000 1818 y(into)g(each)g(data)g(pack)o(et)g(to)g(demonstrate)f(that)i(the)f (pack)o(et)g(w)o(as)2000 1910 y(requested)f(by)h(the)g(recei)n(v)o(er)f ([2].)37 b(Communication)22 b(tak)o(es)i(tw)o(o)2000 2001 y(steps:)47 b(\002rst,)34 b(the)d(sender)f(requests)g(permission)g (to)h(send;)36 b(af-)2000 2092 y(ter)21 b(v)o(erifying)e(the)j(sender)e (is)j(good,)d(the)h(recei)n(v)o(er)f(pro)o(vides)g(the)2000 2183 y(sender)33 b(with)g(an)h(authenticator)e(tok)o(en.)64 b(When)33 b(included)f(in)2000 2275 y(a)27 b(data)g(pack)o(et,)h(this)g (tok)o(en)e(v)o(eri\002es)h(to)g(the)g(netw)o(ork)f(that)i(the)2000 2366 y(pack)o(ets)21 b(were)h(authorized)d(by)i(the)h(recei)n(v)o(er)-5 b(.)28 b(Needless)22 b(to)g(say)-5 b(,)2000 2457 y(by)20 b(itself)h(this)g(only)f(pro)o(vides)f(proof)g(that)h(the)h(recei)n(v)o (er)e(w)o(anted)2000 2549 y(the)27 b(pack)o(et;)i(it)f(does)e(not)h (pre)n(v)o(ent)d(attacks)j(against)f(the)h(initial)2000 2640 y(request)32 b(pack)o(et,)i(attacks)f(against)e(the)i(router)e (state)i(or)f(com-)2000 2731 y(putation)d(needed)f(to)j(v)o(erify)d (the)i(pack)o(et,)i(and)e(so)g(forth.)54 b(F)o(or)2000 2823 y(e)o(xample,)18 b(Anderson)f(et)j(al.)25 b(use)20 b(a)f(separate)g(o)o(v)o(erlay)e(for)i(trans-)2000 2914 y(mitting)f(the)i(request)e(pack)o(ets;)h(an)h(attack)f(against)f(this) i(channel)2000 3005 y(w)o(ould)d(disrupt)g(hosts)i(that)f(had)f(not)h (yet)g(established)f(a)i(capabil-)2000 3097 y(ity)h(to)h(send.)2075 3188 y(In)28 b(SIFF)-7 b(,)30 b(Perrig)f(et)h(al.)52 b(impro)o(v)o(e)27 b(on)i(the)g(approach)e(tak)o(en)2000 3279 y(by)j(Anderson)f(et)i(al.,)i(by)d(eliminating)g(the)g(separate)h (o)o(v)o(erlay)2000 3371 y(channel)20 b(for)h(request)g(pack)o(ets.)29 b(Instead,)21 b(routers)f(stamp)i(pack-)2000 3462 y(ets)30 b(with)f(a)h(k)o(e)o(y)f(that,)i(when)e(used)g(in)g(a)h(data)f(pack)o (et,)i(pro)o(v)o(es)2000 3553 y(that)19 b(the)g(recei)n(v)o(er)e(had)h (returned)f(the)i(stamp)g(to)g(the)f(sender)m(,)g(and)2000 3645 y(thus,)27 b(authorized)c(the)j(communication)d([24].)40 b(W)-7 b(e)26 b(adopt)f(this)2000 3736 y(approach,)h(with)i(some)f (enhancements)e(moti)n(v)n(ated)g(by)i(weak-)2000 3827 y(nesses)21 b(of)g(the)f(SIFF)i(proposal.)j(First,)c(in)g(SIFF)-7 b(,)22 b(router)d(stamps)2000 3919 y(are)e(embedded)e(in)j(normal)e(IP) i(pack)o(ets;)g(because)e(header)h(space)2000 4010 y(is)29 b(constrained,)e(this)i(requires)e(each)g(router)g(stamp)g(to)h(be)g(e) o(x-)2000 4101 y(tremely)15 b(short)g(\(2)g(bits\),)h(and)f(thus)h (potentially)e(disco)o(v)o(erable)f(by)2000 4193 y(brute-force)18 b(attack.)26 b(W)-7 b(e)21 b(sho)n(w)g(ho)n(w)f(to)g(combine)g(the)g (security)2000 4284 y(of)25 b(long)f(stamps)h(with)g(the)h(ef)n (\002cienc)o(y)d(of)i(short)g(stamps.)39 b(Sec-)2000 4375 y(ond,)30 b(initial)g(request)f(pack)o(ets)g(are)g(forw)o(arded)e (with)j(lo)n(w)f(pri-)2000 4467 y(ority;)d(this)f(is)h(vulnerable)c(to) j(the)g(follo)n(wing)d(attack.)38 b(A)25 b(set)h(of)2000 4558 y(attacking)20 b(hosts)i(can)g(establish)g(a)g(set)g(of)g (\223appro)o(v)o(ed\224)c(connec-)2000 4649 y(tions)27 b(purely)e(amongst)h(themselv)o(es,)h(through)e(a)i(shared)f(link;)2000 4741 y(by)d(\003ooding)g(pack)o(ets)h(on)f(these)h(appro)o(v)o(ed)d (connections,)i(the)o(y)2000 4832 y(can)35 b(pre)n(v)o(ent)f(an)o(y)h (further)f(connections)g(from)h(being)g(estab-)2000 4923 y(lished)23 b(through)e(that)j(link.)33 b(W)-7 b(e)25 b(address)e(this)h(through)d(a)i(more)2000 5015 y(careful)14 b(treatment)g(of)h(request)g(pack)o(ets.)23 b(Finally)-5 b(,)15 b(because)g(routers)2000 5106 y(ha)n(v)o(e)21 b(no)h(state,)h(the)o(y)f(allo)n(w)g(all)h(pack)o(ets)f(through)e(with) i(a)h(v)n(alid)2000 5197 y(stamp.)55 b(Thus,)33 b(if)d(a)h(recei)n(v)o (er)e(incorrectly)g(grants)h(a)h(capabil-)2000 5289 y(ity)24 b(to)g(an)g(attack)o(er)m(,)f(that)h(attack)o(er)g(is)g(then)g(free)f (to)h(send)g(to)g(the)2000 5380 y(recei)n(v)o(er)j(at)i(an)f(arbitrary) f(rate)i(\(\002lling)f(its)i(access)f(link\))f(until)1929 5649 y(2)p eop end %%Page: 3 3 TeXDict begin 3 2 bop 0 83 a Fr(the)21 b(permission)e(e)o(xpires.)26 b(Gi)n(v)o(en)20 b(the)g(constants)g(suggested)g(by)0 174 y(Perrig)29 b(et)h(al.,)i(an)e(attack)o(er)f(at)h(a)g (well-connected)d(node)h(need)0 266 y(only)23 b(spoof)g(a)h(single)g (le)o(gitimate)g(request)f(e)n(v)o(ery)f(fe)n(w)i(seconds)0 357 y(\(e.g.,)d(from)f(each)h(of)g(its)i(attacking)d(nodes)h(in)g (turn\))g(in)g(order)g(to)0 448 y(\003ood)28 b(the)i(netw)o(ork;)i(a)e (typical)e(web)h(serv)o(er)g(will)g(only)g(kno)n(w)0 540 y(after)24 b(a)h(connection)d(starts)j(whether)f(the)g(traf)n (\002c)g(is)i(le)o(gitimate.)0 631 y(Our)k(approach,)g(by)f(contrast,)j (allo)n(ws)e(for)g(\002ne-grained)e(con-)0 722 y(trol)20 b(o)o(v)o(er)g(ho)n(w)g(man)o(y)f(pack)o(ets)i(can)f(be)g(sent)h(based) g(on)f(a)h(single)0 814 y(authorization.)75 905 y(In)31 b(summary)-5 b(,)32 b(e)o(xisting)f(proposed)f(DoS)h(solutions)g(ha)n (v)o(e)g(a)0 996 y(number)f(of)h(good)f(ideas,)k(b)n(ut)d(are)g(either) g(impractical)g(or)g(in-)0 1088 y(ef)n(fecti)n(v)o(e)f(against)h (certain)g(types)h(of)f(attacks.)59 b(Since)32 b(the)g(at-)0 1179 y(tack)o(er)25 b(is)h(free)f(to)h(choose)e(the)i(type)e(of)i (attack,)g(our)e(goal)h(is)i(to)0 1270 y(be)j(comprehensi)n(v)o(e:)43 b(an)o(y)30 b(tw)o(o)h(le)o(gitimate)f(nodes)f(should)h(be)0 1362 y(able)21 b(to)g(ef)n(fecti)n(v)o(ely)e(communicate,)g(despite)i (the)g(arbitrary)e(be-)0 1453 y(ha)n(vior)i(of)g Fq(k)k Fr(attacking)c(hosts.)30 b(In)21 b(her)h(landmark)e(dissertation,)0 1544 y(Perlman)26 b(sho)n(wed)g(that)h(this)g(w)o(as)h(possible)e(to)h (achie)n(v)o(e)f(in)h(the)0 1636 y(more)d(general)f(conte)o(xt)g(of)i (Byzantine)e(routers,)i(b)n(ut)f(at)h(an)g(im-)0 1727 y(practical)e(cost)h([17].)33 b(Thus,)24 b(we)g(further)e(restrict)h (ourselv)o(es)g(to)0 1818 y(solutions)15 b(that)h(might)g(be)f (practically)g(implemented)f(in)i(today')-5 b(s)0 1910 y(technology)g(,)15 b(e.g.,)i(with)g(limited)h(state)g(at)g(each)f (router)f(and)h(with)0 2001 y(reasonable)i(amounts)g(of)h(computation)e (at)i(each)g(hop.)0 2186 y Fs(3.)99 b(DESIGN)25 b(O)-5 b(VER)g(VIEW)75 2302 y Fr(In)21 b(this)h(section,)f(we)g(moti)n(v)n (ate)f(the)i(k)o(e)o(y)e(components)g(of)h(our)0 2393 y(design.)j(W)-7 b(e)19 b(pro)o(vide)e(further)f(details)j(in)g (Section)f(4.)24 b(The)18 b(o)o(v)o(er)n(-)0 2485 y(all)34 b(goal)f(of)g(our)g(design)f(is)j(to)e(strictly)h(limit)g(the)f(impact) g(of)0 2576 y(pack)o(et)23 b(\003oods)g(so)g(that)h(tw)o(o)f(hosts)h (can)f(communicate)e(despite)0 2667 y(attacks)e(by)f(other)g(hosts.)25 b(T)-7 b(o)19 b(achie)n(v)o(e)e(this,)j(we)f(start)g(with)g(stan-)0 2759 y(dard)d(IP)i(forw)o(arding)d(and)i(routing.)22 b(W)-7 b(e)19 b(then)e(e)o(xtend)f(hosts)h(and)0 2850 y(routers)27 b(with)h(the)f(handling)f(described)h(belo)n(w)-5 b(,)28 b(conceptually)0 2941 y(at)e(the)f(IP)h(le)n(v)o(el.)40 b(F)o(or)25 b(simplicity)g(of)g(e)o(xposition)e(we)j(consider)0 3033 y(a)20 b(netw)o(ork)e(in)i(which)f(all)h(routers)f(and)g(hosts)h (run)f(our)g(protocol.)0 3124 y(Ho)n(we)n(v)o(er)m(,)29 b(our)g(design)f(only)h(requires)f(upgrades)f(at)j(netw)o(ork)0 3215 y(locations)19 b(that)h(are)g(trust)g(boundaries)e(or)h(that)h(e)o (xperience)e(con-)0 3307 y(gestion.)0 3457 y Fs(3.1)99 b(P)o(ack)o(ets)26 b(with)f(Capabilities)75 3574 y Fr(T)-7 b(o)30 b(pre)n(v)o(ent)e(a)j(destination)e(from)g(losing)g(connecti)n (vity)f(be-)0 3665 y(cause)21 b(of)g(a)g(\003ood)f(of)h(unw)o(anted)f (pack)o(ets,)g(those)h(pack)o(ets)g(must)0 3756 y(be)16 b(discarded)e(by)h(the)h(netw)o(ork)e(before)g(the)o(y)h(reach)g(a)h (congested)0 3847 y(link.)33 b(Otherwise)22 b(the)h(damage)f(has)h (already)f(been)g(done.)32 b(This)0 3939 y(in)27 b(turn)e(requires)h (that)g(routers)g(ha)n(v)o(e)g(a)h(means)f(of)g(identifying)0 4030 y(w)o(anted)21 b(pack)o(ets)g(and)f(pro)o(viding)f(them)i(with)g (preferential)e(ser)n(-)0 4121 y(vice.)59 b(T)-7 b(o)32 b(cleanly)f(accomplish)f(this,)35 b(we)d(require)e(that)i(each)0 4213 y(pack)o(et)17 b(carry)h(information)d(that)j(each)g(router)f(can) h(check)f(to)h(de-)0 4304 y(termine)d(that)h(it)h(is)g(w)o(anted)e(by)h (the)g(destination.)22 b(F)o(ollo)n(wing)15 b([2],)0 4395 y(we)21 b(refer)e(to)h(this)h(e)o(xplicit)f(information)d(as)k(a)g (capability)-5 b(.)75 4487 y(Compared)25 b(to)h(schemes)h(that)f (describe)g(unw)o(anted)f(pack)o(ets)0 4578 y(using)31 b(implicit)g(features)g([13,)i(8],)h(capabilities)d(ha)n(v)o(e)f (signif-)0 4669 y(icant)h(potential)f(bene\002ts.)57 b(The)o(y)29 b(do)i(not)f(require)g(a)h(dif)n(\002cult)0 4761 y(inference)23 b(problem)g(to)i(be)f(solv)o(ed,)h(are)f(precise)h (since)f(attack-)0 4852 y(ers)j(cannot)f(spoof)f(them,)j(and)e(are)h (not)f(foiled)g(by)h(end-to-end)0 4943 y(encryption.)k(Ho)n(we)n(v)o (er)m(,)22 b(to)h(be)g(viable)f(as)i(a)f(solution,)g(capabil-)0 5035 y(ities)i(must)f(meet)g(se)n(v)o(eral)f(implied)g(requirements.)34 b(First,)25 b(the)o(y)0 5126 y(must)h(be)f(granted)g(by)g(the)h (destination)e(to)i(the)g(sender)m(,)g(so)g(that)0 5217 y(the)o(y)g(can)g(be)g(stamped)g(on)g(pack)o(ets.)43 b(This)26 b(raises)h(an)g(ob)o(vious)0 5309 y(bootstrap)20 b(issue,)j(which)e(we)h(address)f(shortly)-5 b(.)29 b(Second,)20 b(capa-)0 5400 y(bilities)27 b(must)g(be)g(unfor)o(geable)c(and)j(not)h (readily)e(transferable)2041 405 y @beginspecial 80 @llx 460 @lly 750 @urx 600 @ury 2280 @rwi @setspecial %%BeginDocument: ./figures/bootstrap.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Microsoft PowerPoint - powerpoint-bits %%Creator: PScript5.dll Version 5.2.2 %%CreationDate: 2/6/2005 22:0:38 %%BoundingBox: 13 12 780 599 %%Pages: 1 %%Orientation: Landscape %%PageOrder: Ascend %%DocumentNeededResources: (atend) %%DocumentSuppliedResources: (atend) %%DocumentData: Clean7Bit %%TargetDevice: (HP LaserJet 4200) (3010.107) 0 %%LanguageLevel: 3 %%EndComments %%BeginDefaults %%PageBoundingBox: 13 12 780 599 %%ViewingOrientation: 0 1 -1 0 %%EndDefaults %%BeginProlog %%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0 /currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def /nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72 def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp exch def prnt}readonly def/cvsprint{=string cvs tprint( )tprint}readonly def /integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype {cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(-- )tprint} readonly def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop (-dictionary- )tprint}readonly def/nulltype{pop(-null- )tprint}readonly def /filetype{pop(-filestream- )tprint}readonly def/savetype{pop(-savelevel- ) tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse}readonly def/arraytype{dup rcheck {dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(]) tprint}ifelse}{pop(-array- )tprint}ifelse}readonly def/packedarraytype{dup rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint} forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def/courier /Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin $error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0 ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict /ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{ (ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt $error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==} repeat}if}ifelse systemdict/showpage get exec(%%[ Error: )print errorname =print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking where{pop/setpacking where{pop oldpack setpacking}if}if %%EndResource userdict /Pscript_WinNT_Incr 230 dict dup begin put %%BeginResource: file Pscript_FatalError 5.0 0 userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding {ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end /ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end %%EndResource userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[ (This job requires more memory than is available in this printer.)100 500 (Try one or more of the following, and then print again:)100 485 (For the output format, choose Optimize For Portability.)115 470 (In the Device Settings page, make sure the Available PostScript Memory is accurate.) 115 455(Reduce the number of fonts in the document.)115 440 (Print the document in parts.)115 425 12/Times-Roman showpage (%%[ PrinterError: Low Printer VM ]%%)= true FatalErrorIf}if}bind def end version cvi 2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg get def}ifelse %%BeginResource: file Pscript_Win_Basic 5.0 0 /d/def load def/,/load load d/~/exch , d/?/ifelse , d/!/pop , d/`/begin , d/^ /index , d/@/dup , d/+/translate , d/$/roll , d/U/userdict , d/M/moveto , d/- /rlineto , d/&/currentdict , d/:/gsave , d/;/grestore , d/F/false , d/T/true , d/N/newpath , d/E/end , d/Ac/arc , d/An/arcn , d/A/ashow , d/D/awidthshow , d/C /closepath , d/V/div , d/O/eofill , d/L/fill , d/I/lineto , d/-c/curveto , d/-M /rmoveto , d/+S/scale , d/Ji/setfont , d/Lc/setlinecap , d/Lj/setlinejoin , d /Lw/setlinewidth , d/Lm/setmiterlimit , d/sd/setdash , d/S/show , d/LH/showpage , d/K/stroke , d/W/widthshow , d/R/rotate , d/L2? false/languagelevel where{pop languagelevel 2 ge{pop true}if}if d L2?{/xS/xshow , d/yS/yshow , d/zS/xyshow , d}if/b{bind d}bind d/bd{bind d}bind d/xd{~ d}bd/ld{, d}bd/bn/bind ld/lw/Lw ld /lc/Lc ld/lj/Lj ld/sg/setgray ld/ADO_mxRot null d/self & d/OrgMx matrix currentmatrix d/reinitialize{: OrgMx setmatrix[/TextInit/GraphInit/UtilsInit counttomark{@ where{self eq}{F}?{cvx exec}{!}?}repeat cleartomark ;}b /initialize{`{/Pscript_Win_Data where{!}{U/Pscript_Win_Data & put}?/ADO_mxRot ~ d/TextInitialised? F d reinitialize E}{U/Pscript_Win_Data 230 dict @ ` put /ADO_mxRot ~ d/TextInitialised? F d reinitialize}?}b/terminate{!{& self eq {exit}{E}?}loop E}b/suspend/terminate , d/resume{` Pscript_Win_Data `}b U ` /lucas 21690 d/featurebegin{countdictstack lucas[}b/featurecleanup{stopped {cleartomark @ lucas eq{! exit}if}loop countdictstack ~ sub @ 0 gt{{E}repeat} {!}?}b E/snap{transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b/dsnap{dtransform round ~ round ~ idtransform}b/nonzero_round{@ 0.5 ge{round}{@ -0.5 lt{round}{0 ge{1}{-1}?}?}?}b/nonzero_dsnap{dtransform nonzero_round ~ nonzero_round ~ idtransform}b U<04>cvn{}put/rr{1 ^ 0 - 0 ~ - neg 0 - C}b/irp{4 -2 $ + +S fx 4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/solid{[]0 sd}b/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e {DefIf_El !}b/UDF{L2?{undefinefont}{!}?}b/UDR{L2?{undefineresource}{! !}?}b /freeVM{/Courier findfont[40 0 0 -40 0 0]makefont Ji 2 vmreclaim}b/hfRedefFont {findfont @ length dict `{1 ^/FID ne{d}{! !}?}forall & E @ ` ~{/CharStrings 1 dict `/.notdef 0 d & E d}if/Encoding 256 array 0 1 255{1 ^ ~/.notdef put}for d E definefont !}bind d/hfMkCIDFont{/CIDFont findresource @ length 2 add dict `{1 ^ @/FID eq ~ @/XUID eq ~/UIDBase eq or or{! !}{d}?}forall/CDevProc ~ d/Metrics2 16 dict d/CIDFontName 1 ^ d & E 1 ^ ~/CIDFont defineresource ![~]composefont !} bind d %%EndResource %%BeginResource: file Pscript_Win_Utils_L2 5.0 0 /rf/rectfill , d/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 -1 $ @ 0 ge {1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , d/rc/rectclip , d/UtilsInit{currentglobal{F setglobal}if}b/scol{! setcolor}b/colspA/DeviceGray d/colspABC/DeviceRGB d /colspRefresh{colspABC setcolorspace}b/SetColSpace{colspABC setcolorspace}b /resourcestatus where{!/ColorRendering/ProcSet resourcestatus{! ! T}{F}?}{F}? not{/ColorRendering<>/defineresource where{!/ProcSet defineresource !}{! !}?}if/buildcrdname{/ColorRendering/ProcSet findresource ` mark GetHalftoneName @ type @/nametype ne ~/stringtype ne and{!/none}if(.) GetPageDeviceName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)5 ^ 0 5 -1 1{^ length add}for string 6 1 $ 5 ^ 5{~ 1 ^ cvs length 1 ^ length 1 ^ sub getinterval}repeat ! cvn 3 1 $ ! ! E}b/definecolorrendering{~ buildcrdname ~ /ColorRendering defineresource !}b/findcolorrendering where{!}{ /findcolorrendering{buildcrdname @/ColorRendering resourcestatus{! ! T}{ /ColorRendering/ProcSet findresource ` GetSubstituteCRD E F}?}b}? /selectcolorrendering{findcolorrendering !/ColorRendering findresource setcolorrendering}b/G2UBegin{findresource/FontInfo get/GlyphNames2Unicode get `}bind d/G2CCBegin{findresource/FontInfo get/GlyphNames2HostCode get `}bind d /G2UEnd{E}bind d/AddFontInfoBegin{/FontInfo 8 dict @ `}bind d/AddFontInfo{ /GlyphNames2Unicode 16 dict d/GlyphNames2HostCode 16 dict d}bind d /AddFontInfoEnd{E d}bind d/T0AddCFFMtx2{/CIDFont findresource/Metrics2 get ` d E}bind d %%EndResource end %%EndProlog %%BeginSetup [ 0 1 -1 0 0 0 ] false Pscript_WinNT_Incr dup /initialize get exec 1 setlinecap 1 setlinejoin /mysetup [ 72 600 V 0 0 -72 600 V 11.99905 779.0003 ] def %%EndSetup %%Page: 1 1 %%PageBoundingBox: 13 12 780 599 %%EndPageComments %%BeginPageSetup /DeviceRGB dup setcolorspace /colspABC exch def mysetup concat colspRefresh %%EndPageSetup Pscript_WinNT_Incr begin %%BeginResource: file Pscript_WinNT_Compat 5.0 0 userdict/Pscript_WinNT_Compat 19 dict dup begin/bd{bind def}bind def/ld{load def}bd/$x matrix def/ANSIVec[16#0/grave 16#1/acute 16#2/circumflex 16#3/tilde 16#4/macron 16#5/breve 16#6/dotaccent 16#7/dieresis 16#8/ring 16#9/cedilla 16#A /hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle 16#60 /grave 16#7C/bar 16#82/quotesinglbase 16#83/florin 16#84/quotedblbase 16#85 /ellipsis 16#86/dagger 16#87/daggerdbl 16#88/circumflex 16#89/perthousand 16#8A /Scaron 16#8B/guilsinglleft 16#8C/OE 16#91/quoteleft 16#92/quoteright 16#93 /quotedblleft 16#94/quotedblright 16#95/bullet 16#96/endash 16#97/emdash 16#98 /tilde 16#99/trademark 16#9A/scaron 16#9B/guilsinglright 16#9C/oe 16#9F /Ydieresis 16#A0/space 16#A1/exclamdown 16#A4/currency 16#A5/yen 16#A6 /brokenbar 16#A7/section 16#A8/dieresis 16#A9/copyright 16#AA/ordfeminine 16#AB /guillemotleft 16#AC/logicalnot 16#AD/hyphen 16#AE/registered 16#AF/macron 16#B0/degree 16#B1/plusminus 16#B2/twosuperior 16#B3/threesuperior 16#B4/acute 16#B5/mu 16#B6/paragraph 16#B7/periodcentered 16#B8/cedilla 16#B9/onesuperior 16#BA/ordmasculine 16#BB/guillemotright 16#BC/onequarter 16#BD/onehalf 16#BE /threequarters 16#BF/questiondown 16#C0/Agrave 16#C1/Aacute 16#C2/Acircumflex 16#C3/Atilde 16#C4/Adieresis 16#C5/Aring 16#C6/AE 16#C7/Ccedilla 16#C8/Egrave 16#C9/Eacute 16#CA/Ecircumflex 16#CB/Edieresis 16#CC/Igrave 16#CD/Iacute 16#CE /Icircumflex 16#CF/Idieresis 16#D0/Eth 16#D1/Ntilde 16#D2/Ograve 16#D3/Oacute 16#D4/Ocircumflex 16#D5/Otilde 16#D6/Odieresis 16#D7/multiply 16#D8/Oslash 16#D9/Ugrave 16#DA/Uacute 16#DB/Ucircumflex 16#DC/Udieresis 16#DD/Yacute 16#DE /Thorn 16#DF/germandbls 16#E0/agrave 16#E1/aacute 16#E2/acircumflex 16#E3 /atilde 16#E4/adieresis 16#E5/aring 16#E6/ae 16#E7/ccedilla 16#E8/egrave 16#E9 /eacute 16#EA/ecircumflex 16#EB/edieresis 16#EC/igrave 16#ED/iacute 16#EE /icircumflex 16#EF/idieresis 16#F0/eth 16#F1/ntilde 16#F2/ograve 16#F3/oacute 16#F4/ocircumflex 16#F5/otilde 16#F6/odieresis 16#F7/divide 16#F8/oslash 16#F9 /ugrave 16#FA/uacute 16#FB/ucircumflex 16#FC/udieresis 16#FD/yacute 16#FE/thorn 16#FF/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def/terminate{ /@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate load def /resume/initialize load def/RS{/pagesave where{pop pagesave restore}{$x matrix invertmatrix concat}ifelse}def/SS{/pagesave save def}def/CB{pop pop pop pop}def /B{pop pop pop pop}def/:/gsave load def/;/grestore load def/N/newpath load def end put %%EndResource end reinitialize Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg NP 196 196 m 6196 196 l 6196 4696 l 196 4696 l CP eoclip 1 1 1 SC NP 195 195 m 6196 195 l 6196 4696 l 195 4696 l CP AF GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2358 2196 m 2358 2546 l 2858 2546 l 2858 2196 l CP S GSE 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1346 2196 m 1346 2546 l 1896 2546 l 1896 2196 l CP S GSE 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 4346 2196 m 4346 2546 l 4846 2546 l 4846 2196 l CP S GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol Pscript_WinNT_Incr begin %%BeginResource: file Pscript_Text 5.0 0 /TextInit{TextInitialised? not{/Pscript_Windows_Font & d/TextInitialised? T d /fM[1 0 0 1 0 0]d/mFM matrix d/iMat[1 0 0.212557 1 0 0]d}if}b/copyfont{1 ^ length add dict `{1 ^/FID ne{d}{! !}?}forall & E}b/EncodeDict 11 dict d/bullets {{/bullet}repeat}b/rF{3 copyfont @ ` ~ EncodeDict ~ get/Encoding ~ 3 ^/0 eq{& /CharStrings known{CharStrings/Eth known not{! EncodeDict/ANSIEncodingOld get} if}if}if d E}b/mF{@ 7 1 $ findfont ~{@/Encoding get @ StandardEncoding eq{! T}{ {ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{1 ^ ~ rF}{0 copyfont}? 6 -2 $ ! ! ~ !/pd_charset @ where{~ get 128 eq{@ FDV 2 copy get @ length array copy put pd_CoverFCRange}if}{!}? 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 put fM makefont Pscript_Windows_Font 3 1 $ put}b/sLT{: Lw -M currentpoint snap M 0 - 0 Lc K ;}b/xUP null d/yUP null d/uW null d/xSP null d/ySP null d/sW null d/sSU{N /uW ~ d/yUP ~ d/xUP ~ d}b/sU{xUP yUP uW sLT}b/sST{N/sW ~ d/ySP ~ d/xSP ~ d}b/sT {xSP ySP sW sLT}b/sR{: + R 0 0 M}b/sRxy{: matrix astore concat 0 0 M}b/eR/; , d /AddOrigFP{{&/FontInfo known{&/FontInfo get length 6 add}{6}? dict ` /WinPitchAndFamily ~ d/WinCharSet ~ d/OrigFontType ~ d/OrigFontStyle ~ d /OrigFontName ~ d & E/FontInfo ~ d}{! ! ! ! !}?}b/mFS{makefont Pscript_Windows_Font 3 1 $ put}b/mF42D{0 copyfont `/FontName ~ d 2 copy ~ sub 1 add dict `/.notdef 0 d 2 copy 1 ~{@ 3 ^ sub Encoding ~ get ~ d}for & E /CharStrings ~ d ! ! & @ E/FontName get ~ definefont}b/mF42{15 dict ` @ 4 1 $ FontName ~ d/FontType 0 d/FMapType 2 d/FontMatrix[1 0 0 1 0 0]d 1 ^ 254 add 255 idiv @ array/Encoding ~ d 0 1 3 -1 $ 1 sub{@ Encoding 3 1 $ put}for/FDepVector Encoding length array d/CharStrings 2 dict `/.notdef 0 d & E d 0 1 Encoding length 1 sub{@ @ 10 lt{! FontName length 1 add string}{100 lt{FontName length 2 add string}{FontName length 3 add string}?}? @ 0 FontName @ length string cvs putinterval @ 3 -1 $ @ 4 1 $ 3 string cvs FontName length ~ putinterval cvn 1 ^ 256 mul @ 255 add 3 -1 $ 4 ^ findfont mF42D FDepVector 3 1 $ put}for & @ E /FontName get ~ definefont ! ! ! mF}b/mF_OTF_V{~ ! ~ ! 4 -1 $ ! findfont 2 ^ ~ definefont fM @ @ 4 6 -1 $ neg put 5 0 put 90 matrix R matrix concatmatrix makefont Pscript_Windows_Font 3 1 $ put}b/mF_TTF_V{3{~ !}repeat 3 -1 $ ! findfont 1 ^ ~ definefont Pscript_Windows_Font 3 1 $ put}b/UmF{L2? {Pscript_Windows_Font ~ undef}{!}?}b/UmF42{@ findfont/FDepVector get{/FontName get undefinefont}forall undefinefont}b %%EndResource end reinitialize Pscript_WinNT_Incr begin %%BeginResource: file Pscript_Encoding256 5.0 0 /CharCol256Encoding[/.notdef/breve/caron/dotaccent/dotlessi/fi/fl/fraction /hungarumlaut/Lslash/lslash/minus/ogonek/ring/Zcaron/zcaron/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle/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/grave /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/.notdef/Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis /dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef /.notdef/.notdef/.notdef/quoteleft/quoteright/quotedblleft/quotedblright/bullet /endash/emdash/tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef /Ydieresis/.notdef/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/.notdef/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis /Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve /oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis]def EncodeDict/256 CharCol256Encoding put %%EndResource end reinitialize %%IncludeResource: font Arial Pscript_WinNT_Incr begin %%BeginResource: file Pscript_Win_Euro_L2 5.0 0 /UseT3EuroFont{/currentdistillerparams where{pop currentdistillerparams /CoreDistVersion get 4000 le}{false}ifelse}bind def/NewEuroT3Font?{dup/FontType get 3 eq{dup/EuroFont known exch/BaseFont known and}{pop false}ifelse}bind def /T1FontHasEuro{dup/CharStrings known not{dup NewEuroT3Font?{dup/EuroGlyphName get exch/EuroFont get/CharStrings get exch known{true}{false}ifelse}{pop false} ifelse}{dup/FontType get 1 eq{/CharStrings get/Euro known}{dup/InfoDict known{ /InfoDict get/Euro known}{/CharStrings get/Euro known}ifelse}ifelse}ifelse}bind def/FontHasEuro{findfont dup/Blend known{pop true}{T1FontHasEuro}ifelse}bind def/EuroEncodingIdx 1 def/EuroFontHdr{12 dict begin/FontInfo 10 dict dup begin /version(001.000)readonly def/Notice(Copyright (c)1999 Adobe Systems Incorporated. All Rights Reserved.)readonly def/FullName(Euro)readonly def /FamilyName(Euro)readonly def/Weight(Regular)readonly def/isFixedPitch false def/ItalicAngle 0 def/UnderlinePosition -100 def/UnderlineThickness 50 def end readonly def/FontName/Euro def/Encoding 256 array 0 1 255{1 index exch/.notdef put}for def/PaintType 0 def/FontType 1 def/FontMatrix[0.001 0 0 0.001 0 0]def /FontBBox{-25 -23 1500 804}readonly def currentdict end dup/Private 20 dict dup begin/ND{def}def/NP{put}def/lenIV -1 def/RD{string currentfile exch readhexstring pop}def/-|{string currentfile exch readstring pop}executeonly def /|-{def}executeonly def/|{put}executeonly def/BlueValues[-20 0 706 736 547 572] |-/OtherBlues[-211 -203]|-/BlueScale 0.0312917 def/MinFeature{16 16}|-/StdHW [60]|-/StdVW[71]|-/ForceBold false def/password 5839 def/Erode{8.5 dup 3 -1 roll 0.1 mul exch 0.5 sub mul cvi sub dup mul 71 0 dtransform dup mul exch dup mul add le{pop pop 1.0 1.0}{pop pop 0.0 1.5}ifelse}def/OtherSubrs[{}{}{} {systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]|-/Subrs 5 array dup 0 <8E8B0C100C110C110C210B>put dup 1<8B8C0C100B>put dup 2<8B8D0C100B>put dup 3<0B> put dup 4<8E8C8E0C100C110A0B>put |- 2 index/CharStrings 256 dict dup begin /.notdef<8b8b0d0e>def end end put put dup/FontName get exch definefont pop}bind def/AddEuroGlyph{2 index exch EuroEncodingIdx 1 eq{EuroFontHdr}if systemdict begin/Euro findfont dup dup/Encoding get 5 1 roll/Private get begin/CharStrings get dup 3 index known{pop pop pop pop end end}{begin 1 index exch def end end end EuroEncodingIdx dup 1 add/EuroEncodingIdx exch def exch put}ifelse}bind def /GetNewXUID{currentdict/XUID known{[7 XUID aload pop]true}{currentdict/UniqueID known{[7 UniqueID]true}{false}ifelse}ifelse}bind def/BuildT3EuroFont{exch 16 dict begin dup/FontName exch def findfont dup/Encoding get/Encoding exch def dup length 1 add dict copy dup/FID undef begin dup dup/FontName exch def /Encoding 256 array 0 1 255{1 index exch/.notdef put}for def GetNewXUID{/XUID exch def}if currentdict end definefont pop/BaseFont exch findfont 1000 scalefont def/EuroFont exch findfont 1000 scalefont def pop/EuroGlyphName exch def/FontType 3 def/FontMatrix[.001 0 0 .001 0 0]def/FontBBox BaseFont/FontBBox get def/Char 1 string def/BuildChar{exch dup begin/Encoding get 1 index get /Euro eq{BaseFont T1FontHasEuro{false}{true}ifelse}{false}ifelse{EuroFont setfont pop userdict/Idx 0 put EuroFont/Encoding get{EuroGlyphName eq{exit} {userdict/Idx Idx 1 add put}ifelse}forall userdict/Idx get}{dup dup Encoding exch get BaseFont/Encoding get 3 1 roll put BaseFont setfont}ifelse Char 0 3 -1 roll put Char stringwidth newpath 0 0 moveto Char true charpath flattenpath pathbbox setcachedevice 0 0 moveto Char show end}bind def currentdict end dup /FontName get exch definefont pop}bind def/AddEuroToT1Font{dup findfont dup length 10 add dict copy dup/FID undef begin/EuroFont 3 -1 roll findfont 1000 scalefont def CharStrings dup length 1 add dict copy begin/Euro{EuroFont setfont pop EuroGBBox aload pop setcachedevice 0 0 moveto EuroGName glyphshow} bind def currentdict end/CharStrings exch def GetNewXUID{/XUID exch def}if 3 1 roll/EuroGBBox exch def/EuroGName exch def currentdict end definefont pop}bind def/BuildNewFont{UseT3EuroFont{BuildT3EuroFont}{pop AddEuroToT1Font}ifelse}bind def/UseObliqueEuro{findfont/FontMatrix get dup 2 get 0 eq exch dup 0 get exch 3 get eq and UseT3EuroFont or}bind def %%EndResource end reinitialize /Arial FontHasEuro not { /Euro.Arial [556 0 24 -19 541 703 ] AddEuroGlyph /Euro /Arial /Arial-Copy BuildNewFont } if F /F0 0 /256 T /Arial mF /F0S96 F0 [150 0 0 -150 0 0 ] mFS F0S96 Ji 4456 2422 M (dest)[83 83 75 0]xS 1406 2422 M (sender)[75 83 83 83 83 0]xS 2406 2422 M (router)[50 83 83 42 83 0]xS Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 3308 2196 m 3308 2546 l 3808 2546 l 3808 2196 l CP S GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol 3356 2422 M (router)[50 83 83 42 83 0]xS Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1896 2346 m 2346 2346 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2846 2346 m 3296 2346 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 3796 2346 m 4346 2346 l S GSE 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2396 1846 m 2396 1946 l 3746 1946 l 3746 1846 l CP S GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 2693 2143 m 2698 2137 l 2704 2142 l 2699 2148 l CP 2703 2130 m 2708 2123 l 2714 2128 l 2709 2135 l CP 2713 2117 m 2718 2110 l 2724 2115 l 2719 2122 l CP 2723 2103 m 2728 2097 l 2734 2102 l 2729 2108 l CP 2733 2090 m 2738 2083 l 2744 2088 l 2739 2095 l CP 2743 2077 m 2748 2070 l 2754 2075 l 2749 2082 l CP 2753 2063 m 2758 2057 l 2764 2062 l 2759 2068 l CP 2763 2050 m 2768 2043 l 2774 2048 l 2769 2055 l CP 2773 2037 m 2778 2030 l 2784 2035 l 2779 2042 l CP 2783 2023 m 2788 2017 l 2794 2022 l 2789 2028 l CP 2793 2010 m 2798 2003 l 2804 2008 l 2799 2015 l CP 2776 1998 m 2846 1946 l 2816 2028 l CP F GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 3443 2148 m 3438 2142 l 3444 2137 l 3449 2143 l CP 3433 2135 m 3428 2128 l 3434 2123 l 3439 2130 l CP 3423 2122 m 3418 2115 l 3424 2110 l 3429 2117 l CP 3413 2108 m 3408 2102 l 3414 2097 l 3419 2103 l CP 3403 2095 m 3398 2088 l 3404 2083 l 3409 2090 l CP 3393 2082 m 3388 2075 l 3394 2070 l 3399 2077 l CP 3383 2068 m 3378 2062 l 3384 2057 l 3389 2063 l CP 3373 2055 m 3368 2048 l 3374 2043 l 3379 2050 l CP 3363 2042 m 3358 2035 l 3364 2030 l 3369 2037 l CP 3353 2028 m 3348 2022 l 3354 2017 l 3359 2023 l CP 3343 2015 m 3338 2008 l 3344 2003 l 3349 2010 l CP 3326 2028 m 3296 1946 l 3366 1998 l CP F GSE 0 GpPBeg /datasrc def /paintproc {64 64 8 [1 0 0 1 0 0] datasrc false 3 colorimage } def /languagelevel where {pop languagelevel} {1} ifelse 1 eq {0.0039 0.0039 0.0039 SC} {/pd 20 dict def pd /PaintType 1 put pd /PatternType 1 put pd /TilingType 1 put pd /BBox [0 0 64 64] put pd /XStep 64 put pd /YStep 64 put pd /PaintProc { begin paintproc end } put pd [5.9999 0 0 5.9999 0 0] makepattern setpattern } ifelse NP 2696 1846 m 2996 1846 l 2996 1946 l 2696 1946 l CP AF GSE 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2696 1846 m 2696 1946 l 2996 1946 l 2996 1846 l CP S GSE 0 GpPBeg /datasrc def /paintproc {64 64 8 [1 0 0 1 0 0] datasrc false 3 colorimage } def /languagelevel where {pop languagelevel} {1} ifelse 1 eq {0.0039 0.0039 0.0039 SC} {/pd 20 dict def pd /PaintType 1 put pd /PatternType 1 put pd /TilingType 1 put pd /BBox [0 0 64 64] put pd /XStep 64 put pd /YStep 64 put pd /PaintProc { begin paintproc end } put pd [5.9999 0 0 5.9999 0 0] makepattern setpattern } ifelse NP 3096 1846 m 3396 1846 l 3396 1946 l 3096 1946 l CP AF GSE 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 3096 1846 m 3096 1946 l 3396 1946 l 3396 1846 l CP S GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 3796 1893 m 3971 1893 l 3973 1893 3974 1894 3974 1896 c 3974 1898 3973 1899 3971 1899 c 3796 1899 l 3794 1899 3793 1898 3793 1896 c 3793 1894 3794 1893 3796 1893 c CP 3963 1871 m 4046 1896 l 3963 1921 l CP F GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol 2806 1782 M (request)[50 83 83 83 83 75 0]xS Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2946 2787 m 2946 2887 l 4296 2887 l 4296 2787 l CP S GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 4057 2753 m 4064 2748 l 4069 2755 l 4062 2760 l CP 4071 2744 m 4079 2739 l 4083 2747 l 4076 2751 l CP 4086 2735 m 4093 2731 l 4097 2738 l 4090 2742 l CP 4100 2726 m 4107 2722 l 4111 2729 l 4104 2733 l CP 4114 2717 m 4121 2713 l 4125 2720 l 4118 2724 l CP 4128 2709 m 4135 2704 l 4140 2711 l 4132 2716 l CP 4142 2700 m 4149 2695 l 4154 2702 l 4147 2707 l CP 4156 2691 m 4163 2686 l 4168 2694 l 4161 2698 l CP 4170 2682 m 4177 2678 l 4182 2685 l 4175 2689 l CP 4185 2673 m 4192 2669 l 4196 2676 l 4189 2680 l CP 4199 2664 m 4206 2660 l 4210 2667 l 4203 2671 l CP 4213 2656 m 4220 2651 l 4224 2658 l 4217 2663 l CP 4227 2647 m 4234 2642 l 4238 2649 l 4231 2654 l CP 4241 2638 m 4248 2633 l 4253 2640 l 4246 2645 l CP 4255 2629 m 4262 2625 l 4267 2632 l 4260 2636 l CP 4269 2620 m 4276 2616 l 4281 2623 l 4274 2627 l CP 4283 2611 m 4291 2607 l 4295 2614 l 4288 2618 l CP 4298 2603 m 4305 2598 l 4309 2605 l 4302 2610 l CP 4312 2594 m 4319 2589 l 4323 2596 l 4316 2601 l CP 4326 2585 m 4333 2580 l 4337 2588 l 4330 2592 l CP 4340 2576 m 4347 2572 l 4352 2579 l 4344 2583 l CP 4354 2567 m 4361 2563 l 4366 2570 l 4359 2574 l CP 4368 2558 m 4375 2554 l 4380 2561 l 4373 2565 l CP 4382 2550 m 4389 2545 l 4394 2552 l 4387 2557 l CP 4080 2773 m 3996 2796 l 4053 2731 l CP F GSE 0 GpPBeg /datasrc def /paintproc {64 64 8 [1 0 0 1 0 0] datasrc false 3 colorimage } def /languagelevel where {pop languagelevel} {1} ifelse 1 eq {0.0039 0.0039 0.0039 SC} {/pd 20 dict def pd /PaintType 1 put pd /PatternType 1 put pd /TilingType 1 put pd /BBox [0 0 64 64] put pd /XStep 64 put pd /YStep 64 put pd /PaintProc { begin paintproc end } put pd [5.9999 0 0 5.9999 0 0] makepattern setpattern } ifelse NP 3346 2786 m 3646 2786 l 3646 2886 l 3346 2886 l CP AF GSE 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 3346 2787 m 3346 2887 l 3646 2887 l 3646 2787 l CP S GSE 0 GpPBeg /datasrc def /paintproc {64 64 8 [1 0 0 1 0 0] datasrc false 3 colorimage } def /languagelevel where {pop languagelevel} {1} ifelse 1 eq {0.0039 0.0039 0.0039 SC} {/pd 20 dict def pd /PaintType 1 put pd /PatternType 1 put pd /TilingType 1 put pd /BBox [0 0 64 64] put pd /XStep 64 put pd /YStep 64 put pd /PaintProc { begin paintproc end } put pd [5.9999 0 0 5.9999 0 0] makepattern setpattern } ifelse NP 3746 2786 m 4046 2786 l 4046 2886 l 3746 2886 l CP AF GSE 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 3746 2787 m 3746 2887 l 4046 2887 l 4046 2787 l CP S GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 2721 2843 m 2896 2843 l 2898 2843 2899 2844 2899 2846 c 2899 2848 2898 2849 2896 2849 c 2721 2849 l 2719 2849 2718 2848 2718 2846 c 2718 2844 2719 2843 2721 2843 c CP 2729 2871 m 2646 2846 l 2729 2821 l CP F GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol 3306 3022 M (response)[50 83 75 83 83 83 76 0]xS Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 3667 2723 m 3675 2720 l 3678 2729 l 3670 2731 l CP 3683 2718 m 3692 2716 l 3694 2724 l 3686 2726 l CP 3700 2714 m 3708 2712 l 3710 2720 l 3702 2722 l CP 3716 2710 m 3724 2708 l 3726 2716 l 3718 2718 l CP 3732 2705 m 3740 2703 l 3742 2711 l 3734 2713 l CP 3748 2701 m 3756 2699 l 3758 2707 l 3750 2709 l CP 3764 2697 m 3772 2695 l 3774 2703 l 3766 2705 l CP 3780 2693 m 3788 2690 l 3790 2698 l 3782 2701 l CP 3796 2688 m 3804 2686 l 3806 2694 l 3798 2696 l CP 3812 2684 m 3820 2682 l 3822 2690 l 3814 2692 l CP 3828 2680 m 3836 2678 l 3839 2686 l 3831 2688 l CP 3845 2675 m 3853 2673 l 3855 2681 l 3847 2683 l CP 3861 2671 m 3869 2669 l 3871 2677 l 3863 2679 l CP 3877 2667 m 3885 2665 l 3887 2673 l 3879 2675 l CP 3893 2662 m 3901 2660 l 3903 2668 l 3895 2671 l CP 3909 2658 m 3917 2656 l 3919 2664 l 3911 2666 l CP 3925 2654 m 3933 2652 l 3935 2660 l 3927 2662 l CP 3941 2650 m 3949 2647 l 3951 2656 l 3943 2658 l CP 3957 2645 m 3965 2643 l 3967 2651 l 3959 2653 l CP 3973 2641 m 3981 2639 l 3984 2647 l 3975 2649 l CP 3989 2637 m 3997 2635 l 4000 2643 l 3992 2645 l CP 4006 2632 m 4014 2630 l 4016 2638 l 4008 2640 l CP 4022 2628 m 4030 2626 l 4032 2634 l 4024 2636 l CP 4038 2624 m 4046 2622 l 4048 2630 l 4040 2632 l CP 4054 2620 m 4062 2617 l 4064 2625 l 4056 2628 l CP 4070 2615 m 4078 2613 l 4080 2621 l 4072 2623 l CP 4086 2611 m 4094 2609 l 4096 2617 l 4088 2619 l CP 4102 2607 m 4110 2605 l 4112 2613 l 4104 2615 l CP 4118 2602 m 4126 2600 l 4128 2608 l 4120 2610 l CP 4134 2598 m 4142 2596 l 4145 2604 l 4137 2606 l CP 4150 2594 m 4159 2592 l 4161 2600 l 4153 2602 l CP 4167 2589 m 4175 2587 l 4177 2595 l 4169 2598 l CP 4183 2585 m 4191 2583 l 4193 2591 l 4185 2593 l CP 4199 2581 m 4207 2579 l 4209 2587 l 4201 2589 l CP 4215 2577 m 4223 2574 l 4225 2583 l 4217 2585 l CP 4231 2572 m 4239 2570 l 4241 2578 l 4233 2580 l CP 4247 2568 m 4255 2566 l 4257 2574 l 4249 2576 l CP 4263 2564 m 4271 2562 l 4273 2570 l 4265 2572 l CP 4279 2559 m 4287 2557 l 4290 2565 l 4281 2567 l CP 4295 2555 m 4303 2553 l 4306 2561 l 4298 2563 l CP 4312 2551 m 4320 2549 l 4322 2557 l 4314 2559 l CP 4328 2547 m 4336 2544 l 4338 2552 l 4330 2555 l CP 4344 2542 m 4345 2542 l 4347 2550 l 4346 2550 l CP 3683 2749 m 3596 2746 l 3670 2700 l CP F GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol /F0SA7 F0 [167 0 0 -167 0 0 ] mFS F0SA7 Ji 2106 1922 M (\(1\))[56 92 0]xS 4332 2888 M (\(2\))[56 92 0]xS Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 4649 1896 m 4649 2121 l 4649 2123 4648 2124 4646 2124 c 4644 2124 4643 2123 4643 2121 c 4643 1896 l 4643 1894 4644 1893 4646 1893 c 4648 1893 4649 1894 4649 1896 c CP 4671 2113 m 4646 2196 l 4621 2113 l CP F GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 4296 1893 m 4471 1893 l 4473 1893 4474 1894 4474 1896 c 4474 1898 4473 1899 4471 1899 c 4296 1899 l 4294 1899 4293 1898 4293 1896 c 4293 1894 4294 1893 4296 1893 c CP 4463 1871 m 4546 1896 l 4463 1921 l CP F GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 4649 2546 m 4649 2771 l 4649 2773 4648 2774 4646 2774 c 4644 2774 4643 2773 4643 2771 c 4643 2546 l 4643 2544 4644 2543 4646 2543 c 4648 2543 4649 2544 4649 2546 c CP 4671 2763 m 4646 2846 l 4621 2763 l CP F GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec LH %%PageTrailer %%Trailer %%DocumentNeededResources: %%+ font Arial %%DocumentSuppliedResources: %%+ procset Pscript_WinNT_ErrorHandler 5.0 0 %%+ procset Pscript_FatalError 5.0 0 %%+ procset Pscript_Win_Basic 5.0 0 %%+ procset Pscript_Win_Utils_L2 5.0 0 %%+ procset Pscript_WinNT_Compat 5.0 0 %%+ procset Pscript_Text 5.0 0 %%+ procset Pscript_Encoding256 5.0 0 %%+ procset Pscript_Win_Euro_L2 5.0 0 Pscript_WinNT_Incr dup /terminate get exec %%EOF %%EndDocument @endspecial 2000 656 a Fn(Figur)o(e)j(1:)43 b Fm(A)24 b(sender)g(obtaining)i(initial)f(capabilities)i(by)d(\(1\))g(sending) 2000 747 y(a)d(r)o(equest)g(to)g(the)g(destination,)i(to)e(which)g(r)o (outers)h(add)f(pr)o(e-capabilities;)2000 839 y(and)g(\(2\))g(r)o(ecei) o(ving)j(a)d(r)o(esponse,)h(to)f(which)g(the)h(destination)g(added)f (capa-)2000 930 y(bilities.)2000 1181 y Fr(across)c(senders)g(or)g (destinations.)23 b(This)18 b(is)g(to)f(pre)n(v)o(ent)f(attack)o(ers) 2000 1273 y(stealing)22 b(or)g(sharing)f(v)n(alid)g(capabilities.)31 b(Third,)21 b(routers)h(must)2000 1364 y(be)h(able)f(to)h(v)o(erify)f (capabilities)g(without)g(trusting)g(hosts.)33 b(This)2000 1455 y(ensures)22 b(malicious)g(hosts)h(cannot)e(spoof)h(capabilities)g (instead)2000 1547 y(of)27 b(spoo\002ng)f(pack)o(ets.)45 b(F)o(ourth,)28 b(capabilities)f(must)g(e)o(xpire)f(so)2000 1638 y(that)i(a)g(destination)e(can)i(cut)g(of)n(f)f(a)h(sender)f(from) g(whom)g(it)h(no)2000 1729 y(longer)c(w)o(ants)i(to)f(recei)n(v)o(e)g (pack)o(ets.)40 b(Finally)-5 b(,)26 b(to)g(be)f(practical,)2000 1821 y(capabilities)20 b(must)g(add)g(little)h(o)o(v)o(erhead)c(in)k (the)f(common)e(case.)2000 1912 y(The)30 b(rest)h(or)f(our)g(design)g (is)h(geared)f(to)n(w)o(ards)g(meeting)f(these)2000 2003 y(requirements.)2000 2179 y Fs(3.2)99 b(Bootstrapping)26 b(Capabilities)2075 2295 y Fr(In)i(our)f(design,)j(capabilities)e(are)g (initially)g(obtained)f(using)2000 2386 y(request)22 b(pack)o(ets)h(\(that)g(do)g(not)f(ha)n(v)o(e)h(capabilities\).)33 b(These)23 b(re-)2000 2478 y(quests)g(are)f(sent)h(from)f(a)h(sender)f (to)h(a)g(destination.)31 b(The)23 b(desti-)2000 2569 y(nation)d(then)h(returns)g(capabilities)g(to)h(the)f(sender)g(if)h(it) g(chooses)2000 2660 y(to)f(authorize)e(the)i(sender)f(for)g(further)g (pack)o(ets.)26 b(This)21 b(is)h(sho)n(wn)2000 2752 y(in)j(Figure)f(1)i (for)e(a)h(single)g(direction)f(of)h(transfer;)i(each)d(direc-)2000 2843 y(tion)d(is)h(handled)e(independently)-5 b(.)25 b(Once)d(the)f(sender)g(has)g(capa-)2000 2934 y(bilities,)i(the)f(netw) o(ork)e(is)j(bootstrapped)d(in)i(the)g(sense)g(that)g(fur)n(-)2000 3026 y(ther)h(pack)o(ets)h(can)f(carry)g(capabilities)h(that)g(routers) f(can)g(check)2000 3117 y(to)d(discard)g(unauthorized)d(traf)n(\002c.) 2075 3208 y(Ignoring)24 b(le)o(gac)o(y)h(issues)j(for)f(the)g(moment,)g (we)g(e)o(xpect)g(the)2000 3300 y(number)19 b(of)h(pack)o(ets)g (without)g(associated)h(capabilities)f(will)i(be)2000 3391 y(small.)42 b(This)26 b(is)g(because)f(one)h(capability)e(co)o(v)o (ers)h(all)h(connec-)2000 3482 y(tions)f(between)f(tw)o(o)h(hosts,)i (and)d(ne)n(w)h(capabilities)g(for)f(a)h(long)2000 3574 y(transfer)h(can)g(be)g(obtained)f(using)i(the)f(current)f(capability)h (be-)2000 3665 y(fore)i(it)h(e)o(xpires.)50 b(Nonetheless,)30 b(it)f(is)h(crucial)e(that)h(the)f(initial)2000 3756 y(request)d(channel)g(not)h(open)f(an)h(a)n(v)o(enue)e(for)i(DoS)g (attacks,)h(ei-)2000 3847 y(ther)22 b(by)g(\003ooding)f(a)i (destination)e(or)i(blocking)d(the)j(requests)f(of)2000 3939 y(le)o(gitimate)k(senders.)43 b(W)-7 b(e)27 b(tackle)f(each)g(of)g (these)h(aspects)g(in)f(a)2000 4030 y(dif)n(ferent)i(manner)-5 b(.)54 b(The)30 b(\002rst)h(is)g(straightforw)o(ard:)42 b(we)31 b(rate-)2000 4121 y(limit)d(requests)g(at)h(all)f(netw)o(ork)f (locations.)48 b(Request)28 b(pack)o(ets)2000 4213 y(should)15 b(comprise)g(only)h(a)g(small)h(fraction)e(of)h(bandwidth.)22 b(Ev)o(en)2000 4304 y(with)i(one)g(100)f(byte)h(request)g(for)g(a)g (10KB)h(\003o)n(w)-5 b(,)24 b(request)g(traf-)2000 4395 y(\002c)k(is)g(1\045)g(of)f(the)h(bandwidth.)44 b(This)28 b(allo)n(ws)g(us)f(to)h(rate-limit)2000 4487 y(request)e(traf)n(\002c)g (to)h(be)f(no)g(more)g(than)g(5\045)g(of)h(the)f(capacity)g(of)2000 4578 y(each)g(link.)45 b(The)27 b(added)f(mar)o(gin)f(is)j(to)f (accommodate)e(b)n(ursts.)2000 4669 y(This)i(pre)n(v)o(ents)e (signi\002cant)i(\003oods)f(on)h(the)g(destination)f(while)2000 4761 y(ensuring)18 b(that)j(we)f(ha)n(v)o(e)g(suf)n(\002cient)g (request)f(bandwidth.)2075 4852 y(It)k(is)i(more)d(challenging)g(to)h (pre)n(v)o(ent)f(requests)h(from)f(attack-)2000 4943 y(ers)27 b(from)e(o)o(v)o(erwhelming)f(requests)i(from)f(le)o(gitimate) h(clients.)2000 5035 y(Ideally)-5 b(,)24 b(gi)n(v)o(en)g(that)h(we)h (ha)n(v)o(e)e(suf)n(\002cient)g(request)h(bandwidth,)2000 5126 y(we)h(w)o(ould)f(lik)o(e)h(to)g(use)g(per)n(-source)e(f)o(air)h (queuing.)40 b(This)26 b(is)g(to)2000 5217 y(ensure)17 b(that)g(no)g(source)g(can)g(o)o(v)o(erwhelm)f(others,)h(re)o(gardless) f(of)2000 5309 y(ho)n(w)f(man)o(y)f(dif)n(ferent)f(destinations)i(it)h (contacts.)23 b(Ho)n(we)n(v)o(er)m(,)14 b(this)2000 5400 y(is)21 b(problematic)d(because)i(source)f(addresses)h(may)g(be)g (spoofed,)1929 5649 y(3)p eop end %%Page: 4 4 TeXDict begin 4 3 bop 103 1219 a @beginspecial 0 @llx 0 @lly 813 @urx 585 @ury 2032 @rwi @setspecial %%BeginDocument: figures/resource-2.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Mon Feb 7 21:13:43 2005 %%For: yxw@marlon (Xiaowei Yang,,,) %%BoundingBox: 0 0 813 585 %%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 585 moveto 0 0 lineto 813 0 lineto 813 585 lineto closepath clip newpath 117.6 582.5 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /reencdict 12 dict def /ReEncode { reencdict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName newfontname put newcodesandnames aload pop 128 1 255 { newfont /Encoding get exch /.notdef put } for newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat newfontname newfont definefont pop end } def /isovec [ 8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde 8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis 8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron 8#220 /dotlessi 8#230 /oe 8#231 /OE 8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling 8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis 8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot 8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus 8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph 8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine 8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf 8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute 8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring 8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute 8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute 8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve 8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply 8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex 8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave 8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring 8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute 8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute 8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve 8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide 8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex 8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def /Times-Roman /Times-Roman-iso isovec ReEncode /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06299 0.06299 sc % % Fig objects follow % % Polyline 15.000 slw n 5985 4230 m 8685 4230 l 8685 5085 l 5985 5085 l gs col0 s gr % Polyline n 8100 4230 m 8100 5085 l gs col0 s gr % Polyline n 7470 4230 m 7470 5085 l gs col0 s gr % Polyline n 6840 4230 m 6840 5085 l gs col0 s gr % Polyline n 5985 5130 m 8685 5130 l 8685 5985 l 5985 5985 l gs col0 s gr % Polyline n 8100 5130 m 8100 5985 l gs col0 s gr % Polyline n 7470 5130 m 7470 5985 l gs col0 s gr % Polyline n 6840 5130 m 6840 5985 l gs col0 s gr % Polyline n 5985 6030 m 8685 6030 l 8685 6885 l 5985 6885 l gs col0 s gr % Polyline n 8100 6030 m 8100 6885 l gs col0 s gr % Polyline n 7470 6030 m 7470 6885 l gs col0 s gr % Polyline n 6840 6030 m 6840 6885 l gs col0 s gr % Polyline n 5985 6930 m 8685 6930 l 8685 7785 l 5985 7785 l gs col0 s gr % Polyline n 8100 6930 m 8100 7785 l gs col0 s gr % Polyline n 7470 6930 m 7470 7785 l gs col0 s gr % Polyline n 6840 6930 m 6840 7785 l gs col0 s gr % Polyline n 6030 8370 m 8730 8370 l 8730 9225 l 6030 9225 l gs col0 s gr % Polyline n 8145 8370 m 8145 9225 l gs col0 s gr % Polyline n 7515 8370 m 7515 9225 l gs col0 s gr % Polyline n 6885 8370 m 6885 9225 l gs col0 s gr % Polyline n 5895 1530 m 8595 1530 l 8595 2385 l 5895 2385 l gs col0 s gr % Polyline n 5895 630 m 8595 630 l 8595 1485 l 5895 1485 l gs col0 s gr % Polyline n 8010 630 m 8010 1485 l gs col0 s gr % Polyline n 7380 630 m 7380 1485 l gs col0 s gr % Polyline n 6750 630 m 6750 1485 l gs col0 s gr % Polyline n 8010 1530 m 8010 2385 l gs col0 s gr % Polyline n 7380 1530 m 7380 2385 l gs col0 s gr % Polyline n 6750 1530 m 6750 2385 l gs col0 s gr % Polyline gs clippath 6270 8700 m 6270 8580 l 5915 8580 l 6215 8640 l 5915 8700 l cp eoclip n 3060 5940 m 3060 8640 l 6255 8640 l gs col0 s gr gr % arrowhead n 5915 8700 m 6215 8640 l 5915 8580 l 5975 8640 l 5915 8700 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6180 1185 m 6180 1065 l 5825 1065 l 6125 1125 l 5825 1185 l cp eoclip n 3420 1125 m 6165 1125 l gs col0 s gr gr % arrowhead n 5825 1185 m 6125 1125 l 5825 1065 l 5885 1125 l 5825 1185 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6315 8970 m 6315 8850 l 5960 8850 l 6260 8910 l 5960 8970 l cp eoclip n 2385 8910 m 6300 8910 l gs col0 s gr gr % arrowhead n 5960 8970 m 6260 8910 l 5960 8850 l 6020 8910 l 5960 8970 l cp gs 0.00 setgray ef gr col0 s % Polyline n -45 4947 m -180 4947 -180 5760 135 arcto 4 {pop} repeat -180 5895 4545 5895 135 arcto 4 {pop} repeat 4680 5895 4680 5082 135 arcto 4 {pop} repeat 4680 4947 -45 4947 135 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath -165 5460 m -165 5340 l -519 5340 l -219 5400 l -519 5460 l cp eoclip n -1845 5400 m -180 5400 l gs col0 s gr gr % arrowhead n -519 5460 m -219 5400 l -519 5340 l -459 5400 l -519 5460 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6090 5550 m 6090 5430 l 5735 5430 l 6035 5490 l 5735 5550 l cp eoclip n 4680 5490 m 6075 5490 l gs col0 s gr gr % arrowhead n 5735 5550 m 6035 5490 l 5735 5430 l 5795 5490 l 5735 5550 l cp gs 0.00 setgray ef gr col0 s /Times-Roman-iso ff 540.00 scf sf 5940 405 m gs 1 -1 sc (path-identifier queue) col0 sh gr /Times-Roman-iso ff 540.00 scf sf 2160 900 m gs 1 -1 sc (requests ) col0 sh gr /Times-Roman-iso ff 540.00 scf sf -90 5580 m gs 1 -1 sc (capability checking) col0 sh gr /Times-Roman-iso ff 540.00 scf sf 135 4590 m gs 1 -1 sc (regular packets ) col0 sh gr /Times-Roman-iso ff 540.00 scf sf 4905 5220 m gs 1 -1 sc (yes) col0 sh gr /Times-Roman-iso ff 540.00 scf sf -810 8505 m gs 1 -1 sc (legacy packets) col0 sh gr /Times-Roman-iso ff 540.00 scf sf 3150 6840 m gs 1 -1 sc (no) col0 sh gr /Times-Roman-iso ff 540.00 scf sf 6075 8235 m gs 1 -1 sc (low priority queue) col0 sh gr /Times-Roman-iso ff 540.00 scf sf 6030 3915 m gs 1 -1 sc (per sender queue) col0 sh gr $F2psEnd rs %%EndDocument @endspecial 0 1393 a Fn(Figur)o(e)26 b(2:)37 b Fm(Queue)22 b(management)i(at)e(a)f(capability)j(r)o(outer)-7 b(.)37 b(Ther)o(e)23 b(ar)o(e)0 1484 y(thr)o(ee)e(types)g(of)f(traf\002c:)29 b(r)o(equests)21 b(that)g(ar)o(e)g(rate-limited;)k(r)o(egular)e(pack-)0 1576 y(ets)15 b(with)g(associated)i(capabilities)g(that)f(r)o(ecei)o(v) o(e)i(pr)o(efer)o(ential)g(f)n(orwarding;)0 1667 y(and)f(legacy)h (traf\002c)g(that)f(competes)i(f)n(or)f(any)e(r)o(emaining)j(band)o (width.)0 1921 y Fr(allo)n(wing)24 b(attack)o(ers)g(to)h(interfere)f (with)h(le)o(gitimate)f(traf)n(\002c)g(and)0 2013 y(e)o(xhaust)29 b(router)g(resources.)54 b(T)-7 b(o)30 b(solv)o(e)g(this)g(problem)f (we)h(re-)0 2104 y(quire)d(an)h(authenticated)e(source)h(identi\002er) -5 b(.)48 b(One)28 b(possibility)0 2195 y(is)j(ingress)e(\002ltering,)i (b)n(ut)f(we)g(discarded)e(this)i(as)g(too)g(fragile.)0 2287 y(Another)24 b(possibility)h(is)h(to)g(sign)f(pack)o(ets)g(using)g (a)h(public)e(k)o(e)o(y)0 2378 y(infrastructure,)18 b(b)n(ut)i(we)g (discarded)f(this)i(as)g(too)f(hea)n(vyweight.)75 2469 y(Instead,)i(we)h(b)n(uild)g(a)g(path)f(identi\002er)g(analogous)f(to)i (Pi)h([23])0 2561 y(and)f(use)i(it)f(as)h(an)f(approximate)d(source)j (locator)-5 b(.)35 b(Each)24 b(router)0 2652 y(tags)16 b(the)f(request)f(with)i(a)f(small)h(\(16)e(bit\))i(pseudo-random)11 b(v)n(alue)0 2743 y(deri)n(v)o(ed)27 b(from)g(its)j(incoming)d(interf)o (ace.)49 b(The)28 b(tags)h(act)g(as)g(an)0 2835 y(identi\002er)17 b(for)f(a)i(netw)o(ork)e(path.)23 b(W)-7 b(e)18 b(then)f(f)o(air)n (-queue)e(requests,)0 2926 y(using)h(the)h(combination)d(of)j(the)g (current)e(router')-5 b(s)16 b(incoming)f(in-)0 3017 y(terf)o(ace)25 b(and)g(the)h(pre)n(vious)e(router')-5 b(s)25 b(tag)h(to)g(identify)e(a)i(queue.)0 3109 y(This)17 b(is)h(sho)n(wn)e(in)h(Figure)f(2.)24 b(As)18 b(a)f(better)f (approximation,)e(tags)0 3200 y(from)24 b(earlier)h(routers)f(can)h(be) g(used)g(within)g(a)h(gi)n(v)o(en)e(queue)g(to)0 3291 y(break)j(ties.)49 b(Equi)n(v)n(alently)-5 b(,)27 b(instead)h(of)f (stamping)g(path)h(iden-)0 3383 y(ti\002ers)k(at)f(each)f(router)m(,)i (autonomous)c(domains)i(\(ASes\))h(may)0 3474 y(stamp)24 b(pack)o(ets)f(only)g(at)i(their)e(trust)h(boundary)-5 b(,)22 b(at)i(the)g(ingress)0 3565 y(to)31 b(the)g(domain)e(and)i(at)g (the)g(customer)e(attach,)k(pro)o(vided)c(the)0 3657 y(stamp)34 b(is)h(unique)d(across)j(all)f(inputs)g(to)g(the)g(AS.)g (Queueing)0 3748 y(could)19 b(then)h(be)g(in)g(terms)h(meaningful)d(to) i(the)g(AS.)75 3839 y(Queueing)27 b(based)i(on)g(a)g(path)g (identi\002er)f(has)i(tw)o(o)f(bene\002ts.)0 3930 y(First)j(the)f (number)f(of)h(queues)f(is)i(bounded)d(because)h(the)i(tag)0 4022 y(space)g(is)i(bounded.)59 b(This)33 b(in)g(turn)e(bounds)g(the)i (comple)o(xity)0 4113 y(of)25 b(f)o(air)h(queuing,)e(ensuring)g(that)i (we)f(will)h(not)g(e)o(xhaust)e(router)0 4204 y(resources.)62 b(Second,)35 b(the)e(scheme)f(of)n(fers)g(defense-in-depth)0 4296 y(because)26 b(each)g(router)g(\(or)g(AS\))h(places)g(the)f(most)h (trust)g(in)g(the)0 4387 y(router)21 b(\(AS\))g(that)h(precedes)f(it.) 30 b(Therefore,)20 b(an)h(attack)o(er)h(at)g(the)0 4478 y(edge)f(of)g(the)h(netw)o(ork)e(or)i(a)g(compromised)d(router)h(who)h (writes)0 4570 y(arbitrary)26 b(tags)h(can)g(at)h(most)f(cause)g(queue) f(contention)f(at)j(the)0 4661 y(ne)o(xt)20 b(do)n(wnstream)e(router)h (\(AS\).)i(One)f(consequence)e(of)i(this)h(is)0 4752 y(that)e(senders)f(in)h(the)g(same)g(identity)f(group)f(share)h(f)o (ate,)h(localiz-)0 4844 y(ing)g(the)h(impact)f(of)h(an)g(attack)f(and)g (pro)o(viding)e(an)j(incenti)n(v)o(e)e(for)0 4935 y(impro)o(v)o(ed)f (local)k(security)-5 b(.)0 5101 y Fs(3.3)99 b(Destination)25 b(P)n(olicies)75 5217 y Fr(The)19 b(ne)o(xt)g(question)g(we)h(consider) e(is)j(ho)n(w)e(a)h(destination)f(can)0 5309 y(determine)e(whether)h (to)g(authorize)f(a)i(request.)24 b(This)19 b(is)g(a)g(matter)0 5400 y(of)i(polic)o(y)-5 b(,)19 b(and)i(it)h(depends)d(on)i(the)g(role) g(the)g(destination)f(plays)2041 687 y @beginspecial 80 @llx 420 @lly 780 @urx 670 @ury 2280 @rwi @setspecial %%BeginDocument: ./figures/capabilities.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Microsoft PowerPoint - powerpoint-bits %%Creator: PScript5.dll Version 5.2.2 %%CreationDate: 2/6/2005 20:54:33 %%BoundingBox: 13 12 780 599 %%Pages: 1 %%Orientation: Landscape %%PageOrder: Ascend %%DocumentNeededResources: (atend) %%DocumentSuppliedResources: (atend) %%DocumentData: Clean7Bit %%TargetDevice: (HP LaserJet 4200) (3010.107) 0 %%LanguageLevel: 3 %%EndComments %%BeginDefaults %%PageBoundingBox: 13 12 780 599 %%ViewingOrientation: 0 1 -1 0 %%EndDefaults %%BeginProlog %%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0 /currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def /nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72 def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp exch def prnt}readonly def/cvsprint{=string cvs tprint( )tprint}readonly def /integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype {cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(-- )tprint} readonly def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop (-dictionary- )tprint}readonly def/nulltype{pop(-null- )tprint}readonly def /filetype{pop(-filestream- )tprint}readonly def/savetype{pop(-savelevel- ) tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse}readonly def/arraytype{dup rcheck {dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(]) tprint}ifelse}{pop(-array- )tprint}ifelse}readonly def/packedarraytype{dup rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint} forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def/courier /Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin $error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0 ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict /ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{ (ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt $error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==} repeat}if}ifelse systemdict/showpage get exec(%%[ Error: )print errorname =print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking where{pop/setpacking where{pop oldpack setpacking}if}if %%EndResource userdict /Pscript_WinNT_Incr 230 dict dup begin put %%BeginResource: file Pscript_FatalError 5.0 0 userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding {ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end /ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end %%EndResource userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[ (This job requires more memory than is available in this printer.)100 500 (Try one or more of the following, and then print again:)100 485 (For the output format, choose Optimize For Portability.)115 470 (In the Device Settings page, make sure the Available PostScript Memory is accurate.) 115 455(Reduce the number of fonts in the document.)115 440 (Print the document in parts.)115 425 12/Times-Roman showpage (%%[ PrinterError: Low Printer VM ]%%)= true FatalErrorIf}if}bind def end version cvi 2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg get def}ifelse %%BeginResource: file Pscript_Win_Basic 5.0 0 /d/def load def/,/load load d/~/exch , d/?/ifelse , d/!/pop , d/`/begin , d/^ /index , d/@/dup , d/+/translate , d/$/roll , d/U/userdict , d/M/moveto , d/- /rlineto , d/&/currentdict , d/:/gsave , d/;/grestore , d/F/false , d/T/true , d/N/newpath , d/E/end , d/Ac/arc , d/An/arcn , d/A/ashow , d/D/awidthshow , d/C /closepath , d/V/div , d/O/eofill , d/L/fill , d/I/lineto , d/-c/curveto , d/-M /rmoveto , d/+S/scale , d/Ji/setfont , d/Lc/setlinecap , d/Lj/setlinejoin , d /Lw/setlinewidth , d/Lm/setmiterlimit , d/sd/setdash , d/S/show , d/LH/showpage , d/K/stroke , d/W/widthshow , d/R/rotate , d/L2? false/languagelevel where{pop languagelevel 2 ge{pop true}if}if d L2?{/xS/xshow , d/yS/yshow , d/zS/xyshow , d}if/b{bind d}bind d/bd{bind d}bind d/xd{~ d}bd/ld{, d}bd/bn/bind ld/lw/Lw ld /lc/Lc ld/lj/Lj ld/sg/setgray ld/ADO_mxRot null d/self & d/OrgMx matrix currentmatrix d/reinitialize{: OrgMx setmatrix[/TextInit/GraphInit/UtilsInit counttomark{@ where{self eq}{F}?{cvx exec}{!}?}repeat cleartomark ;}b /initialize{`{/Pscript_Win_Data where{!}{U/Pscript_Win_Data & put}?/ADO_mxRot ~ d/TextInitialised? F d reinitialize E}{U/Pscript_Win_Data 230 dict @ ` put /ADO_mxRot ~ d/TextInitialised? F d reinitialize}?}b/terminate{!{& self eq {exit}{E}?}loop E}b/suspend/terminate , d/resume{` Pscript_Win_Data `}b U ` /lucas 21690 d/featurebegin{countdictstack lucas[}b/featurecleanup{stopped {cleartomark @ lucas eq{! exit}if}loop countdictstack ~ sub @ 0 gt{{E}repeat} {!}?}b E/snap{transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b/dsnap{dtransform round ~ round ~ idtransform}b/nonzero_round{@ 0.5 ge{round}{@ -0.5 lt{round}{0 ge{1}{-1}?}?}?}b/nonzero_dsnap{dtransform nonzero_round ~ nonzero_round ~ idtransform}b U<04>cvn{}put/rr{1 ^ 0 - 0 ~ - neg 0 - C}b/irp{4 -2 $ + +S fx 4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/solid{[]0 sd}b/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e {DefIf_El !}b/UDF{L2?{undefinefont}{!}?}b/UDR{L2?{undefineresource}{! !}?}b /freeVM{/Courier findfont[40 0 0 -40 0 0]makefont Ji 2 vmreclaim}b/hfRedefFont {findfont @ length dict `{1 ^/FID ne{d}{! !}?}forall & E @ ` ~{/CharStrings 1 dict `/.notdef 0 d & E d}if/Encoding 256 array 0 1 255{1 ^ ~/.notdef put}for d E definefont !}bind d/hfMkCIDFont{/CIDFont findresource @ length 2 add dict `{1 ^ @/FID eq ~ @/XUID eq ~/UIDBase eq or or{! !}{d}?}forall/CDevProc ~ d/Metrics2 16 dict d/CIDFontName 1 ^ d & E 1 ^ ~/CIDFont defineresource ![~]composefont !} bind d %%EndResource %%BeginResource: file Pscript_Win_Utils_L2 5.0 0 /rf/rectfill , d/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 -1 $ @ 0 ge {1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , d/rc/rectclip , d/UtilsInit{currentglobal{F setglobal}if}b/scol{! setcolor}b/colspA/DeviceGray d/colspABC/DeviceRGB d /colspRefresh{colspABC setcolorspace}b/SetColSpace{colspABC setcolorspace}b /resourcestatus where{!/ColorRendering/ProcSet resourcestatus{! ! T}{F}?}{F}? not{/ColorRendering<>/defineresource where{!/ProcSet defineresource !}{! !}?}if/buildcrdname{/ColorRendering/ProcSet findresource ` mark GetHalftoneName @ type @/nametype ne ~/stringtype ne and{!/none}if(.) GetPageDeviceName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)5 ^ 0 5 -1 1{^ length add}for string 6 1 $ 5 ^ 5{~ 1 ^ cvs length 1 ^ length 1 ^ sub getinterval}repeat ! cvn 3 1 $ ! ! E}b/definecolorrendering{~ buildcrdname ~ /ColorRendering defineresource !}b/findcolorrendering where{!}{ /findcolorrendering{buildcrdname @/ColorRendering resourcestatus{! ! T}{ /ColorRendering/ProcSet findresource ` GetSubstituteCRD E F}?}b}? /selectcolorrendering{findcolorrendering !/ColorRendering findresource setcolorrendering}b/G2UBegin{findresource/FontInfo get/GlyphNames2Unicode get `}bind d/G2CCBegin{findresource/FontInfo get/GlyphNames2HostCode get `}bind d /G2UEnd{E}bind d/AddFontInfoBegin{/FontInfo 8 dict @ `}bind d/AddFontInfo{ /GlyphNames2Unicode 16 dict d/GlyphNames2HostCode 16 dict d}bind d /AddFontInfoEnd{E d}bind d/T0AddCFFMtx2{/CIDFont findresource/Metrics2 get ` d E}bind d %%EndResource end %%EndProlog %%BeginSetup [ 0 1 -1 0 0 0 ] false Pscript_WinNT_Incr dup /initialize get exec 1 setlinecap 1 setlinejoin /mysetup [ 72 600 V 0 0 -72 600 V 11.99905 779.0003 ] def %%EndSetup %%Page: 1 1 %%PageBoundingBox: 13 12 780 599 %%EndPageComments %%BeginPageSetup /DeviceRGB dup setcolorspace /colspABC exch def mysetup concat colspRefresh %%EndPageSetup Pscript_WinNT_Incr begin %%BeginResource: file Pscript_WinNT_Compat 5.0 0 userdict/Pscript_WinNT_Compat 19 dict dup begin/bd{bind def}bind def/ld{load def}bd/$x matrix def/ANSIVec[16#0/grave 16#1/acute 16#2/circumflex 16#3/tilde 16#4/macron 16#5/breve 16#6/dotaccent 16#7/dieresis 16#8/ring 16#9/cedilla 16#A /hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle 16#60 /grave 16#7C/bar 16#82/quotesinglbase 16#83/florin 16#84/quotedblbase 16#85 /ellipsis 16#86/dagger 16#87/daggerdbl 16#88/circumflex 16#89/perthousand 16#8A /Scaron 16#8B/guilsinglleft 16#8C/OE 16#91/quoteleft 16#92/quoteright 16#93 /quotedblleft 16#94/quotedblright 16#95/bullet 16#96/endash 16#97/emdash 16#98 /tilde 16#99/trademark 16#9A/scaron 16#9B/guilsinglright 16#9C/oe 16#9F /Ydieresis 16#A0/space 16#A1/exclamdown 16#A4/currency 16#A5/yen 16#A6 /brokenbar 16#A7/section 16#A8/dieresis 16#A9/copyright 16#AA/ordfeminine 16#AB /guillemotleft 16#AC/logicalnot 16#AD/hyphen 16#AE/registered 16#AF/macron 16#B0/degree 16#B1/plusminus 16#B2/twosuperior 16#B3/threesuperior 16#B4/acute 16#B5/mu 16#B6/paragraph 16#B7/periodcentered 16#B8/cedilla 16#B9/onesuperior 16#BA/ordmasculine 16#BB/guillemotright 16#BC/onequarter 16#BD/onehalf 16#BE /threequarters 16#BF/questiondown 16#C0/Agrave 16#C1/Aacute 16#C2/Acircumflex 16#C3/Atilde 16#C4/Adieresis 16#C5/Aring 16#C6/AE 16#C7/Ccedilla 16#C8/Egrave 16#C9/Eacute 16#CA/Ecircumflex 16#CB/Edieresis 16#CC/Igrave 16#CD/Iacute 16#CE /Icircumflex 16#CF/Idieresis 16#D0/Eth 16#D1/Ntilde 16#D2/Ograve 16#D3/Oacute 16#D4/Ocircumflex 16#D5/Otilde 16#D6/Odieresis 16#D7/multiply 16#D8/Oslash 16#D9/Ugrave 16#DA/Uacute 16#DB/Ucircumflex 16#DC/Udieresis 16#DD/Yacute 16#DE /Thorn 16#DF/germandbls 16#E0/agrave 16#E1/aacute 16#E2/acircumflex 16#E3 /atilde 16#E4/adieresis 16#E5/aring 16#E6/ae 16#E7/ccedilla 16#E8/egrave 16#E9 /eacute 16#EA/ecircumflex 16#EB/edieresis 16#EC/igrave 16#ED/iacute 16#EE /icircumflex 16#EF/idieresis 16#F0/eth 16#F1/ntilde 16#F2/ograve 16#F3/oacute 16#F4/ocircumflex 16#F5/otilde 16#F6/odieresis 16#F7/divide 16#F8/oslash 16#F9 /ugrave 16#FA/uacute 16#FB/ucircumflex 16#FC/udieresis 16#FD/yacute 16#FE/thorn 16#FF/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def/terminate{ /@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate load def /resume/initialize load def/RS{/pagesave where{pop pagesave restore}{$x matrix invertmatrix concat}ifelse}def/SS{/pagesave save def}def/CB{pop pop pop pop}def /B{pop pop pop pop}def/:/gsave load def/;/grestore load def/N/newpath load def end put %%EndResource end reinitialize Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg NP 196 196 m 6196 196 l 6196 4696 l 196 4696 l CP eoclip 1 1 1 SC NP 195 195 m 6196 195 l 6196 4696 l 195 4696 l CP AF GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1046 1746 m 1046 1996 l 5546 1996 l 5546 1746 l CP S GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol Pscript_WinNT_Incr begin %%BeginResource: file Pscript_Text 5.0 0 /TextInit{TextInitialised? not{/Pscript_Windows_Font & d/TextInitialised? T d /fM[1 0 0 1 0 0]d/mFM matrix d/iMat[1 0 0.212557 1 0 0]d}if}b/copyfont{1 ^ length add dict `{1 ^/FID ne{d}{! !}?}forall & E}b/EncodeDict 11 dict d/bullets {{/bullet}repeat}b/rF{3 copyfont @ ` ~ EncodeDict ~ get/Encoding ~ 3 ^/0 eq{& /CharStrings known{CharStrings/Eth known not{! EncodeDict/ANSIEncodingOld get} if}if}if d E}b/mF{@ 7 1 $ findfont ~{@/Encoding get @ StandardEncoding eq{! T}{ {ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{1 ^ ~ rF}{0 copyfont}? 6 -2 $ ! ! ~ !/pd_charset @ where{~ get 128 eq{@ FDV 2 copy get @ length array copy put pd_CoverFCRange}if}{!}? 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 put fM makefont Pscript_Windows_Font 3 1 $ put}b/sLT{: Lw -M currentpoint snap M 0 - 0 Lc K ;}b/xUP null d/yUP null d/uW null d/xSP null d/ySP null d/sW null d/sSU{N /uW ~ d/yUP ~ d/xUP ~ d}b/sU{xUP yUP uW sLT}b/sST{N/sW ~ d/ySP ~ d/xSP ~ d}b/sT {xSP ySP sW sLT}b/sR{: + R 0 0 M}b/sRxy{: matrix astore concat 0 0 M}b/eR/; , d /AddOrigFP{{&/FontInfo known{&/FontInfo get length 6 add}{6}? dict ` /WinPitchAndFamily ~ d/WinCharSet ~ d/OrigFontType ~ d/OrigFontStyle ~ d /OrigFontName ~ d & E/FontInfo ~ d}{! ! ! ! !}?}b/mFS{makefont Pscript_Windows_Font 3 1 $ put}b/mF42D{0 copyfont `/FontName ~ d 2 copy ~ sub 1 add dict `/.notdef 0 d 2 copy 1 ~{@ 3 ^ sub Encoding ~ get ~ d}for & E /CharStrings ~ d ! ! & @ E/FontName get ~ definefont}b/mF42{15 dict ` @ 4 1 $ FontName ~ d/FontType 0 d/FMapType 2 d/FontMatrix[1 0 0 1 0 0]d 1 ^ 254 add 255 idiv @ array/Encoding ~ d 0 1 3 -1 $ 1 sub{@ Encoding 3 1 $ put}for/FDepVector Encoding length array d/CharStrings 2 dict `/.notdef 0 d & E d 0 1 Encoding length 1 sub{@ @ 10 lt{! FontName length 1 add string}{100 lt{FontName length 2 add string}{FontName length 3 add string}?}? @ 0 FontName @ length string cvs putinterval @ 3 -1 $ @ 4 1 $ 3 string cvs FontName length ~ putinterval cvn 1 ^ 256 mul @ 255 add 3 -1 $ 4 ^ findfont mF42D FDepVector 3 1 $ put}for & @ E /FontName get ~ definefont ! ! ! mF}b/mF_OTF_V{~ ! ~ ! 4 -1 $ ! findfont 2 ^ ~ definefont fM @ @ 4 6 -1 $ neg put 5 0 put 90 matrix R matrix concatmatrix makefont Pscript_Windows_Font 3 1 $ put}b/mF_TTF_V{3{~ !}repeat 3 -1 $ ! findfont 1 ^ ~ definefont Pscript_Windows_Font 3 1 $ put}b/UmF{L2? {Pscript_Windows_Font ~ undef}{!}?}b/UmF42{@ findfont/FDepVector get{/FontName get undefinefont}forall undefinefont}b %%EndResource end reinitialize Pscript_WinNT_Incr begin %%BeginResource: file Pscript_Encoding256 5.0 0 /CharCol256Encoding[/.notdef/breve/caron/dotaccent/dotlessi/fi/fl/fraction /hungarumlaut/Lslash/lslash/minus/ogonek/ring/Zcaron/zcaron/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle/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/grave /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/.notdef/Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis /dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef /.notdef/.notdef/.notdef/quoteleft/quoteright/quotedblleft/quotedblright/bullet /endash/emdash/tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef /Ydieresis/.notdef/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/.notdef/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis /Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve /oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis]def EncodeDict/256 CharCol256Encoding put %%EndResource end reinitialize %%IncludeResource: font Arial Pscript_WinNT_Incr begin %%BeginResource: file Pscript_Win_Euro_L2 5.0 0 /UseT3EuroFont{/currentdistillerparams where{pop currentdistillerparams /CoreDistVersion get 4000 le}{false}ifelse}bind def/NewEuroT3Font?{dup/FontType get 3 eq{dup/EuroFont known exch/BaseFont known and}{pop false}ifelse}bind def /T1FontHasEuro{dup/CharStrings known not{dup NewEuroT3Font?{dup/EuroGlyphName get exch/EuroFont get/CharStrings get exch known{true}{false}ifelse}{pop false} ifelse}{dup/FontType get 1 eq{/CharStrings get/Euro known}{dup/InfoDict known{ /InfoDict get/Euro known}{/CharStrings get/Euro known}ifelse}ifelse}ifelse}bind def/FontHasEuro{findfont dup/Blend known{pop true}{T1FontHasEuro}ifelse}bind def/EuroEncodingIdx 1 def/EuroFontHdr{12 dict begin/FontInfo 10 dict dup begin /version(001.000)readonly def/Notice(Copyright (c)1999 Adobe Systems Incorporated. All Rights Reserved.)readonly def/FullName(Euro)readonly def /FamilyName(Euro)readonly def/Weight(Regular)readonly def/isFixedPitch false def/ItalicAngle 0 def/UnderlinePosition -100 def/UnderlineThickness 50 def end readonly def/FontName/Euro def/Encoding 256 array 0 1 255{1 index exch/.notdef put}for def/PaintType 0 def/FontType 1 def/FontMatrix[0.001 0 0 0.001 0 0]def /FontBBox{-25 -23 1500 804}readonly def currentdict end dup/Private 20 dict dup begin/ND{def}def/NP{put}def/lenIV -1 def/RD{string currentfile exch readhexstring pop}def/-|{string currentfile exch readstring pop}executeonly def /|-{def}executeonly def/|{put}executeonly def/BlueValues[-20 0 706 736 547 572] |-/OtherBlues[-211 -203]|-/BlueScale 0.0312917 def/MinFeature{16 16}|-/StdHW [60]|-/StdVW[71]|-/ForceBold false def/password 5839 def/Erode{8.5 dup 3 -1 roll 0.1 mul exch 0.5 sub mul cvi sub dup mul 71 0 dtransform dup mul exch dup mul add le{pop pop 1.0 1.0}{pop pop 0.0 1.5}ifelse}def/OtherSubrs[{}{}{} {systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]|-/Subrs 5 array dup 0 <8E8B0C100C110C110C210B>put dup 1<8B8C0C100B>put dup 2<8B8D0C100B>put dup 3<0B> put dup 4<8E8C8E0C100C110A0B>put |- 2 index/CharStrings 256 dict dup begin /.notdef<8b8b0d0e>def end end put put dup/FontName get exch definefont pop}bind def/AddEuroGlyph{2 index exch EuroEncodingIdx 1 eq{EuroFontHdr}if systemdict begin/Euro findfont dup dup/Encoding get 5 1 roll/Private get begin/CharStrings get dup 3 index known{pop pop pop pop end end}{begin 1 index exch def end end end EuroEncodingIdx dup 1 add/EuroEncodingIdx exch def exch put}ifelse}bind def /GetNewXUID{currentdict/XUID known{[7 XUID aload pop]true}{currentdict/UniqueID known{[7 UniqueID]true}{false}ifelse}ifelse}bind def/BuildT3EuroFont{exch 16 dict begin dup/FontName exch def findfont dup/Encoding get/Encoding exch def dup length 1 add dict copy dup/FID undef begin dup dup/FontName exch def /Encoding 256 array 0 1 255{1 index exch/.notdef put}for def GetNewXUID{/XUID exch def}if currentdict end definefont pop/BaseFont exch findfont 1000 scalefont def/EuroFont exch findfont 1000 scalefont def pop/EuroGlyphName exch def/FontType 3 def/FontMatrix[.001 0 0 .001 0 0]def/FontBBox BaseFont/FontBBox get def/Char 1 string def/BuildChar{exch dup begin/Encoding get 1 index get /Euro eq{BaseFont T1FontHasEuro{false}{true}ifelse}{false}ifelse{EuroFont setfont pop userdict/Idx 0 put EuroFont/Encoding get{EuroGlyphName eq{exit} {userdict/Idx Idx 1 add put}ifelse}forall userdict/Idx get}{dup dup Encoding exch get BaseFont/Encoding get 3 1 roll put BaseFont setfont}ifelse Char 0 3 -1 roll put Char stringwidth newpath 0 0 moveto Char true charpath flattenpath pathbbox setcachedevice 0 0 moveto Char show end}bind def currentdict end dup /FontName get exch definefont pop}bind def/AddEuroToT1Font{dup findfont dup length 10 add dict copy dup/FID undef begin/EuroFont 3 -1 roll findfont 1000 scalefont def CharStrings dup length 1 add dict copy begin/Euro{EuroFont setfont pop EuroGBBox aload pop setcachedevice 0 0 moveto EuroGName glyphshow} bind def currentdict end/CharStrings exch def GetNewXUID{/XUID exch def}if 3 1 roll/EuroGBBox exch def/EuroGName exch def currentdict end definefont pop}bind def/BuildNewFont{UseT3EuroFont{BuildT3EuroFont}{pop AddEuroToT1Font}ifelse}bind def/UseObliqueEuro{findfont/FontMatrix get dup 2 get 0 eq exch dup 0 get exch 3 get eq and UseT3EuroFont or}bind def %%EndResource end reinitialize /Arial FontHasEuro not { /Euro.Arial [556 0 24 -19 541 703 ] AddEuroGlyph /Euro /Arial /Arial-Copy BuildNewFont } if F /F0 0 /256 T /Arial mF /F0SC8 F0 [200 0 0 -200 0 0 ] mFS F0SC8 Ji 2406 1470 M (Pre)[133 67 0]xS 2717 1470 M (-)S 2784 1470 M (capability \(routers\))[100 111 111 112 112 45 45 44 56 100 56 67 67 111 111 56 111 67 99 0]xS /F0S96 F0 [150 0 0 -150 0 0 ] mFS F0S96 Ji 1094 1922 M (cache)[75 83 75 83 0]xS 1493 1922 M (-)S 1543 1922 M (bit\(1\))[84 33 42 50 83 0]xS 2011 1932 M (timestamp\(7\))[42 33 125 83 75 42 83 125 83 50 83 0]xS 3002 1922 M (hash\(src)[83 83 75 83 50 75 50 0]xS 3618 1922 M (IP, )[42 100 42 0]xS 3844 1922 M (dest)[83 83 75 0]xS 4169 1922 M (IP, time, secret\)\(56\))[42 100 41 42 42 33 125 83 42 42 75 83 74 50 83 42 50 50 83 83 0]xS Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1946 1746 m 1946 1996 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2946 1746 m 2946 1996 l S GSE 1 0 8 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1058 2846 m 1058 3096 l 5558 3096 l 5558 2846 l CP S GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol F0SC8 Ji 2589 2570 M (Capability \(hosts\))[144 112 111 112 111 45 45 44 56 100 56 66 111 111 100 56 100 0]xS F0S96 Ji 1106 3022 M (cache)[75 83 75 83 0]xS 1505 3022 M (-)S 1555 3022 M (bit\(1\))[84 33 42 50 83 0]xS 2023 3032 M (timestamp\(7\))[42 33 125 83 75 42 83 125 83 50 83 0]xS 3286 3022 M (hash\(pre)[83 83 75 83 50 83 51 0]xS 3877 3022 M (-)S 3927 3022 M (capability, N, T\)\(56\))[75 83 84 84 83 33 33 33 43 74 42 42 108 42 42 93 50 50 83 83 0]xS Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1958 2846 m 1958 3096 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2958 2846 m 2958 3096 l S GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec LH %%PageTrailer %%Trailer %%DocumentNeededResources: %%+ font Arial %%DocumentSuppliedResources: %%+ procset Pscript_WinNT_ErrorHandler 5.0 0 %%+ procset Pscript_FatalError 5.0 0 %%+ procset Pscript_Win_Basic 5.0 0 %%+ procset Pscript_Win_Utils_L2 5.0 0 %%+ procset Pscript_WinNT_Compat 5.0 0 %%+ procset Pscript_Text 5.0 0 %%+ procset Pscript_Encoding256 5.0 0 %%+ procset Pscript_Win_Euro_L2 5.0 0 Pscript_WinNT_Incr dup /terminate get exec %%EOF %%EndDocument @endspecial 2456 938 a Fn(Figur)o(e)f(3:)25 b Fm(F)n(ormat)18 b(of)f(capabilities.)2000 1193 y Fr(in)26 b(the)g(netw)o(ork.)40 b(W)-7 b(e)27 b(consider)e(the)h(tw)o(o)g(e)o(xtreme)e(cases)j(of)e(a) 2000 1284 y(client)f(and)f(public)g(serv)o(er)g(to)h(ar)o(gue)e(that)i (simple)g(policies)g(can)2000 1376 y(be)c(ef)n(fecti)n(v)o(e.)2075 1467 y(A)28 b(client)g(may)f(act)h(in)g(a)g(w)o(ay)g(that)g(by)f(def)o (ault)g(allo)n(ws)h(it)g(to)2000 1558 y(contact)g(an)o(y)g(serv)o(er)f (b)n(ut)i(not)f(otherwise)g(be)h(contacted,)g(as)h(is)2000 1650 y(done)20 b(by)h(\002re)n(w)o(alls)g(and)g(N)m(A)-9 b(T)21 b(box)o(es)f(today)-5 b(.)26 b(T)-7 b(o)22 b(do)e(this,)i(it)g (ac-)2000 1741 y(cepts)28 b(incoming)f(requests)h(that)h(match)f (outgoing)e(requests)i(it)2000 1832 y(has)d(already)e(made)h(and)g (refuses)g(them)h(otherwise.)37 b(Note)24 b(that)2000 1924 y(the)17 b(destination)f(can)i(readily)e(do)h(this)h(because)f (capabilities)g(are)2000 2015 y(added)22 b(to)i(e)o(xisting)f(pack)o (ets)g(\(since)g(the)o(y)g(are)h(a)g(logical)f(e)o(xten-)2000 2106 y(sion)f(of)h(the)f(IP)h(layer\))f(rather)g(than)g(carried)f(as)j (separate)e(pack-)2000 2198 y(ets.)44 b(The)27 b(request)e(pack)o(et)h (that)h(reaches)f(the)g(destination)g(will)2000 2289 y(thus)20 b(contain)f(higher)g(layer)h(data)g(such)g(as)h(a)f(TCP)h (SYN.)2075 2380 y(A)27 b(public)e(serv)o(er)h(may)g(initially)h(grant)f (all)h(requests)f(with)h(a)2000 2472 y(def)o(ault)19 b(number)f(of)h(bytes)h(and)f(timeout,)g(using)g(the)h(path)f(iden-) 2000 2563 y(ti\002er)34 b(to)h(f)o(airly)f(serv)o(e)f(dif)n(ferent)g (sources)h(when)g(the)g(load)g(is)2000 2654 y(high.)56 b(If)31 b(an)o(y)f(of)h(the)g(senders)g(misbeha)n(v)o(e,)h(by)e (sending)g(un-)2000 2746 y(e)o(xpected)23 b(pack)o(ets)i(or)f (\003oods,)i(that)f(sender)f(can)g(be)h(temporar)n(-)2000 2837 y(ily)30 b(blacklisted)f(and)g(its)i(capability)d(will)j(soon)e(e) o(xpire.)52 b(This)2000 2928 y(blacklisting)29 b(is)j(possible)e (because)g(the)h(handshak)o(e)e(in)m(v)n(olv)o(ed)2000 3020 y(in)e(the)h(capability)e(e)o(xchange)f(weakly)i(authenticates)f (that)i(the)2000 3111 y(source)f(address)h(corresponds)e(to)i(a)h(real) f(host.)49 b(The)27 b(result)i(is)2000 3202 y(that)k(misbeha)n(ving)e (senders)h(are)h(quickly)e(contained.)61 b(More)2000 3294 y(sophisticated)35 b(policies)g(may)g(be)h(based)f(on)h(HTTP)f (cookies)2000 3385 y(that)30 b(identify)f(returning)f(customers,)k (CAPTCHAs)f(that)f(dis-)2000 3476 y(tinguish)19 b(zombies)h(from)f (real)h(users)g([9],)g(and)f(so)i(forth.)2000 3640 y Fs(3.4)99 b(Unf)n(or)o(geable)25 b(Capabilities)2075 3756 y Fr(Ha)n(ving)16 b(pro)o(vided)f(a)j(bootstrap)e(mechanism)g(and) h(polic)o(y)-5 b(,)16 b(we)2000 3847 y(turn)24 b(our)g(attention)g(to)g (the)h(form)f(of)g(capabilities)h(themselv)o(es.)2000 3939 y(Our)e(k)o(e)o(y)f(requirement)f(is)j(that)f(an)g(attack)o(er)f (can)h(neither)f(for)o(ge)2000 4030 y(a)k(capability)-5 b(,)26 b(nor)g(mak)o(e)f(use)i(of)f(a)g(capability)f(that)h(the)o(y)g (steal)2000 4121 y(or)d(transfer)g(from)f(another)g(party)-5 b(.)34 b(W)-7 b(e)24 b(also)g(need)f(capabilities)2000 4213 y(to)d(e)o(xpire.)2075 4304 y(W)-7 b(e)16 b(use)f(cryptography)c (to)16 b(accomplish)e(this)h(by)g(binding)f(each)2000 4395 y(capability)23 b(to)h(a)h(speci\002c)g(router)e(and)g(source)h (and)g(destination)2000 4487 y(IP)19 b(address)f(at)i(a)f(speci\002c)g (time.)24 b(This)19 b(pre-capability)e(is)i(sho)n(wn)2000 4578 y(in)28 b(Figure)g(3.)49 b(Each)28 b(router)f(that)i(forw)o(ards)e (a)i(request)e(pack)o(et)2000 4669 y(generates)14 b(its)i(o)n(wn)f (pre-capability)e(and)h(attaches)i(it)g(to)f(the)g(pack)o(et.)2000 4761 y(It)i(consists)g(of)g(a)g(local)g(router)f(timestamp)g(and)h(a)g (cryptographic)2000 4852 y(hash)k(of)f(that)h(timestamp)g(plus)g(the)g (source)f(and)g(destination)g(IP)2000 4943 y(addresses)d(and)g(a)g(slo) n(wly-changing)d(secret)k(kno)n(wn)e(only)g(to)i(the)2000 5035 y(router)-5 b(.)36 b(Observ)o(e)23 b(that)h(each)g(router)f(can)h (v)o(erify)f(for)h(itself)g(that)2000 5126 y(a)c(purported)d (pre-capability)h(attached)h(to)h(a)g(pack)o(et)f(is)i(v)n(alid)e(by) 2000 5217 y(re-computing)28 b(the)j(hash,)j(since)e(it)g(kno)n(ws)f (all)g(of)h(the)f(inputs)2000 5309 y(\(and)17 b(is)i(the)f(only)g (party)f(that)i(does\).)k(The)18 b(slo)n(wly-changing)d(se-)2000 5400 y(cret)k(changes)g(at)h(twice)g(the)f(rate)h(of)f(the)h(timestamp) f(rollo)o(v)o(er)e(to)1929 5649 y(4)p eop end %%Page: 5 5 TeXDict begin 5 4 bop 0 83 a Fr(ensure)16 b(that)h(the)g (pre-capability)e(is)j(e)o(xpired)d(within)i(at)h(most)f(the)0 174 y(timestamp)j(rollo)o(v)o(er)f(period.)24 b(This)d(trick)f(allo)n (ws)h(us)g(to)g(use)g(the)0 266 y(high-order)27 b(bit)j(of)f(router)g (time)g(v)n(alues)h(to)g(indicate)f(whether)0 357 y(the)g(current)g(or) g(pre)n(vious)f(router)g(secret)h(should)g(be)g(used)g(for)0 448 y(v)n(alidation.)46 b(That)28 b(is,)i(only)d(one)g(hash)h(must)g (be)f(tried)h(e)n(v)o(en)e(if)0 540 y(the)e(router)f(secret)i(w)o(as)g (changed)d(right)h(after)h(issuing)g(the)h(pre-)0 631 y(capability)-5 b(.)75 722 y(The)35 b(destination)f(thus)i(recei)n(v)o (es)f(an)g(ordered)f(list)i(of)g(pre-)0 814 y(capabilities)c(that)g (corresponds)d(to)j(a)g(speci\002c)h(netw)o(ork)d(path)0 905 y(with)25 b(\002x)o(ed)e(source)h(and)g(destination)f(IP)i (endpoints.)37 b(It)24 b(is)i(that)0 996 y(correspondence)j(that)j(pre) n(v)o(ents)e(an)i(attack)o(er)g(from)f(transfer)n(-)0 1088 y(ring)26 b(a)h(capability)f(for)g(its)i(o)n(wn)e(use:)39 b(it)28 b(cannot)d(generally)h(ar)n(-)0 1179 y(range)31 b(to)h(send)f(pack)o(ets)h(with)g(a)g(speci\002c)g(source)f(and)h (desti-)0 1270 y(nation)26 b(IP)h(address)f(through)e(a)j(speci\002c)g (sequence)e(of)i(routers)0 1362 y(unless)d(it)g(is)h(co-located)d(with) i(the)f(source.)35 b(In)23 b(the)h(latter)g(case,)0 1453 y(the)e(attack)o(er)g(is)h(indistinguishable)d(from)h(the)i(source)e (as)i(f)o(ar)f(as)0 1544 y(the)i(netw)o(ork)e(is)j(concerned,)d(and)h (shares)h(its)h(f)o(ate)f(in)g(the)g(same)0 1636 y(manner)19 b(as)i(for)e(requests.)75 1727 y(Similarly)-5 b(,)15 b(we)h(assume)f(that)g(local)g(netw)o(orks)f(use)i(some)f(mech-)0 1818 y(anism)21 b(to)h(pre)n(v)o(ent)d(impersonation.)26 b(If)21 b(a)h(host)f(can)g(both)g(snoop)0 1910 y(the)27 b(pack)o(ets)g(and)g(spoof)f(the)h(source)g(addresses)g(of)g(its)h (neigh-)0 2001 y(bors,)22 b(then)f(it)i(can)f(ef)n(fecti)n(v)o(ely)e (disrupt)h(an)o(y)g(host)h(on)g(that)g(local)0 2092 y(netw)o(ork.)47 b(\(Other)m(,)28 b(more)f(de)n(v)n(astating)f(attacks)i(are)g(also)g (pos-)0 2183 y(sible,)h(such)d(as)i(transparently)d(replacing)g (content.\))44 b(Physical)0 2275 y(restrictions)31 b(and/or)g(link)g (layer)g(encryption)f(can)h(be)h(used)g(to)0 2366 y(pre)n(v)o(ent)23 b(this)j(scenario,)f(b)n(ut)g(e)n(v)o(en)f(in)h(the)g(w)o(orse)g(case,) i(imper)n(-)0 2457 y(sonation)20 b(has)h(no)f(ef)n(fect)h(in)g(our)f (system)h(on)f(nodes)g(outside)h(the)0 2549 y(local)f(netw)o(ork.)75 2640 y(If)30 b(the)g(destination)f(wishes)h(to)h(authorize)d(that)i (path,)i(it)f(re-)0 2731 y(turns)18 b(an)f(ordered)f(list)j(of)f (capabilities)g(to)g(the)g(sender)f(via)h(pack-)0 2823 y(ets)30 b(sent)f(in)h(the)f(re)n(v)o(erse)f(direction.)50 b(Conceptually)-5 b(,)29 b(the)h(pre-)0 2914 y(capabilities)15 b(we)h(ha)n(v)o(e)e(described)g(could)g(directly)h(serv)o(e)f(as)i (these)0 3005 y(capabilities.)58 b(Ho)n(we)n(v)o(er)m(,)32 b(we)g(will)g(process)f(them)g(further)f(to)0 3097 y(pro)o(vide)18 b(greater)h(control)g(as)i(is)g(described)e(ne)o(xt.)0 3283 y Fs(3.5)99 b(Fine\255Grained)26 b(Capabilities)75 3400 y Fr(W)-7 b(e)16 b(observ)o(e)e(that)h(the)g(decision)g(by)g(a)g (destination)f(as)i(to)g(whether)0 3491 y(to)24 b(recei)n(v)o(e)f(traf) n(\002c)h(from)f(a)i(gi)n(v)o(en)e(sender)g(should)g(not)h(be)g(a)h (bi-)0 3582 y(nary)34 b(one.)69 b(This)36 b(is)g(because)e(e)n(v)o(en)g (ef)n(fecti)n(v)o(e)g(policies)h(will)0 3673 y(sometimes)28 b(mak)o(e)g(the)h(wrong)e(decision)h(and)g(authorize)f(traf-)0 3765 y(\002c)g(that)f(ultimately)g(is)i(not)e(w)o(anted.)43 b(F)o(or)26 b(e)o(xample,)g(with)h(our)0 3856 y(blacklist)k(serv)o(er)f (polic)o(y)g(an)h(attack)o(er)f(will)i(be)f(authorized)e(at)0 3947 y(least)f(once,)f(and)g(with)g(our)f(client)h(polic)o(y)f(the)h (serv)o(er)f(a)i(client)0 4039 y(accesses)19 b(may)g(pro)o(v)o(e)e(to)h (be)h(untrustw)o(orthy)-5 b(.)21 b(If)e(authorizations)0 4130 y(were)d(binary)-5 b(,)15 b(attack)o(ers)g(whose)h(requests)f (were)h(granted)e(w)o(ould)0 4221 y(be)k(able)g(to)g(arbitrarily)e (\003ood)h(the)h(destination)f(until)h(their)f(capa-)0 4313 y(bilities)32 b(e)o(xpire,)h(allo)n(wing)e(e)n(v)o(en)g(a)h(v)o (ery)e(small)i(rate)g(of)f(f)o(alse)0 4404 y(authorizations)h(to)i(den) o(y)e(service.)65 b(This)34 b(ar)o(gues)f(for)g(a)h(v)o(ery)0 4495 y(short)g(e)o(xpiration)e(period,)37 b(yet)d(protocol)f(dynamics)g (such)h(as)0 4587 y(TCP)20 b(timeouts)f(place)g(a)h(lo)n(wer)f(bound)f (on)h(what)g(is)h(reasonable.)75 4678 y(T)-7 b(o)16 b(tackle)g(this)h (problem,)e(we)i(design)f(\002ne-grained)e(capabili-)0 4769 y(ties)20 b(that)f(grant)f(the)g(right)h(to)g(send)f(up)g(to)h Fq(N)29 b Fr(bytes)18 b(along)g(a)h(path)0 4861 y(within)27 b(the)h(ne)o(xt)f Fq(T)39 b Fr(seconds,)28 b(e.g.,)h(100KB)e(in)g(10)g (seconds)1847 4831 y Fl(1)1879 4861 y Fr(.)0 4952 y(That)21 b(is,)i(we)f(limit)g(the)f(amount)f(of)i(data)f(as)h(well)g(as)h(the)e (period)0 5043 y(of)32 b(v)n(alidity)-5 b(.)59 b(The)31 b(form)g(of)h(these)g(capabilities)g(is)g(sho)n(wn)g(in)0 5135 y(Figure)24 b(3.)39 b(The)24 b(destination)g(con)m(v)o(erts)f(the) i(pre-capabilities)e(it)p 0 5238 761 4 v 8 5294 a Fk(1)37 5325 y Fj(An)k(alternati)n(v)o(e)g(w)o(ould)h(be)f(to)g(b)o(uild)g (rapid)g(capability)g(re)n(v)o(ocation.)0 5400 y(W)-6 b(e)18 b(belie)n(v)o(e)i(this)f(to)f(be)i(a)e(less)h(tractable)g (problem.)2041 498 y @beginspecial 70 @llx 450 @lly 730 @urx 620 @ury 2280 @rwi @setspecial %%BeginDocument: ./figures/bounds.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: Microsoft PowerPoint - powerpoint-bits %%Creator: PScript5.dll Version 5.2.2 %%CreationDate: 2/6/2005 21:32:12 %%BoundingBox: 13 12 780 599 %%Pages: 1 %%Orientation: Landscape %%PageOrder: Ascend %%DocumentNeededResources: (atend) %%DocumentSuppliedResources: (atend) %%DocumentData: Clean7Bit %%TargetDevice: (HP LaserJet 4200) (3010.107) 0 %%LanguageLevel: 3 %%EndComments %%BeginDefaults %%PageBoundingBox: 13 12 780 599 %%ViewingOrientation: 0 1 -1 0 %%EndDefaults %%BeginProlog %%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0 /currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def /nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72 def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp exch def prnt}readonly def/cvsprint{=string cvs tprint( )tprint}readonly def /integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype {cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(-- )tprint} readonly def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop (-dictionary- )tprint}readonly def/nulltype{pop(-null- )tprint}readonly def /filetype{pop(-filestream- )tprint}readonly def/savetype{pop(-savelevel- ) tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse}readonly def/arraytype{dup rcheck {dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(]) tprint}ifelse}{pop(-array- )tprint}ifelse}readonly def/packedarraytype{dup rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint} forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def/courier /Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin $error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0 ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict /ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{ (ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt $error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==} repeat}if}ifelse systemdict/showpage get exec(%%[ Error: )print errorname =print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking where{pop/setpacking where{pop oldpack setpacking}if}if %%EndResource userdict /Pscript_WinNT_Incr 230 dict dup begin put %%BeginResource: file Pscript_FatalError 5.0 0 userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding {ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end /ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end %%EndResource userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[ (This job requires more memory than is available in this printer.)100 500 (Try one or more of the following, and then print again:)100 485 (For the output format, choose Optimize For Portability.)115 470 (In the Device Settings page, make sure the Available PostScript Memory is accurate.) 115 455(Reduce the number of fonts in the document.)115 440 (Print the document in parts.)115 425 12/Times-Roman showpage (%%[ PrinterError: Low Printer VM ]%%)= true FatalErrorIf}if}bind def end version cvi 2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg get def}ifelse %%BeginResource: file Pscript_Win_Basic 5.0 0 /d/def load def/,/load load d/~/exch , d/?/ifelse , d/!/pop , d/`/begin , d/^ /index , d/@/dup , d/+/translate , d/$/roll , d/U/userdict , d/M/moveto , d/- /rlineto , d/&/currentdict , d/:/gsave , d/;/grestore , d/F/false , d/T/true , d/N/newpath , d/E/end , d/Ac/arc , d/An/arcn , d/A/ashow , d/D/awidthshow , d/C /closepath , d/V/div , d/O/eofill , d/L/fill , d/I/lineto , d/-c/curveto , d/-M /rmoveto , d/+S/scale , d/Ji/setfont , d/Lc/setlinecap , d/Lj/setlinejoin , d /Lw/setlinewidth , d/Lm/setmiterlimit , d/sd/setdash , d/S/show , d/LH/showpage , d/K/stroke , d/W/widthshow , d/R/rotate , d/L2? false/languagelevel where{pop languagelevel 2 ge{pop true}if}if d L2?{/xS/xshow , d/yS/yshow , d/zS/xyshow , d}if/b{bind d}bind d/bd{bind d}bind d/xd{~ d}bd/ld{, d}bd/bn/bind ld/lw/Lw ld /lc/Lc ld/lj/Lj ld/sg/setgray ld/ADO_mxRot null d/self & d/OrgMx matrix currentmatrix d/reinitialize{: OrgMx setmatrix[/TextInit/GraphInit/UtilsInit counttomark{@ where{self eq}{F}?{cvx exec}{!}?}repeat cleartomark ;}b /initialize{`{/Pscript_Win_Data where{!}{U/Pscript_Win_Data & put}?/ADO_mxRot ~ d/TextInitialised? F d reinitialize E}{U/Pscript_Win_Data 230 dict @ ` put /ADO_mxRot ~ d/TextInitialised? F d reinitialize}?}b/terminate{!{& self eq {exit}{E}?}loop E}b/suspend/terminate , d/resume{` Pscript_Win_Data `}b U ` /lucas 21690 d/featurebegin{countdictstack lucas[}b/featurecleanup{stopped {cleartomark @ lucas eq{! exit}if}loop countdictstack ~ sub @ 0 gt{{E}repeat} {!}?}b E/snap{transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b/dsnap{dtransform round ~ round ~ idtransform}b/nonzero_round{@ 0.5 ge{round}{@ -0.5 lt{round}{0 ge{1}{-1}?}?}?}b/nonzero_dsnap{dtransform nonzero_round ~ nonzero_round ~ idtransform}b U<04>cvn{}put/rr{1 ^ 0 - 0 ~ - neg 0 - C}b/irp{4 -2 $ + +S fx 4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/solid{[]0 sd}b/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e {DefIf_El !}b/UDF{L2?{undefinefont}{!}?}b/UDR{L2?{undefineresource}{! !}?}b /freeVM{/Courier findfont[40 0 0 -40 0 0]makefont Ji 2 vmreclaim}b/hfRedefFont {findfont @ length dict `{1 ^/FID ne{d}{! !}?}forall & E @ ` ~{/CharStrings 1 dict `/.notdef 0 d & E d}if/Encoding 256 array 0 1 255{1 ^ ~/.notdef put}for d E definefont !}bind d/hfMkCIDFont{/CIDFont findresource @ length 2 add dict `{1 ^ @/FID eq ~ @/XUID eq ~/UIDBase eq or or{! !}{d}?}forall/CDevProc ~ d/Metrics2 16 dict d/CIDFontName 1 ^ d & E 1 ^ ~/CIDFont defineresource ![~]composefont !} bind d %%EndResource %%BeginResource: file Pscript_Win_Utils_L2 5.0 0 /rf/rectfill , d/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 -1 $ @ 0 ge {1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , d/rc/rectclip , d/UtilsInit{currentglobal{F setglobal}if}b/scol{! setcolor}b/colspA/DeviceGray d/colspABC/DeviceRGB d /colspRefresh{colspABC setcolorspace}b/SetColSpace{colspABC setcolorspace}b /resourcestatus where{!/ColorRendering/ProcSet resourcestatus{! ! T}{F}?}{F}? not{/ColorRendering<>/defineresource where{!/ProcSet defineresource !}{! !}?}if/buildcrdname{/ColorRendering/ProcSet findresource ` mark GetHalftoneName @ type @/nametype ne ~/stringtype ne and{!/none}if(.) GetPageDeviceName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)5 ^ 0 5 -1 1{^ length add}for string 6 1 $ 5 ^ 5{~ 1 ^ cvs length 1 ^ length 1 ^ sub getinterval}repeat ! cvn 3 1 $ ! ! E}b/definecolorrendering{~ buildcrdname ~ /ColorRendering defineresource !}b/findcolorrendering where{!}{ /findcolorrendering{buildcrdname @/ColorRendering resourcestatus{! ! T}{ /ColorRendering/ProcSet findresource ` GetSubstituteCRD E F}?}b}? /selectcolorrendering{findcolorrendering !/ColorRendering findresource setcolorrendering}b/G2UBegin{findresource/FontInfo get/GlyphNames2Unicode get `}bind d/G2CCBegin{findresource/FontInfo get/GlyphNames2HostCode get `}bind d /G2UEnd{E}bind d/AddFontInfoBegin{/FontInfo 8 dict @ `}bind d/AddFontInfo{ /GlyphNames2Unicode 16 dict d/GlyphNames2HostCode 16 dict d}bind d /AddFontInfoEnd{E d}bind d/T0AddCFFMtx2{/CIDFont findresource/Metrics2 get ` d E}bind d %%EndResource end %%EndProlog %%BeginSetup [ 0 1 -1 0 0 0 ] false Pscript_WinNT_Incr dup /initialize get exec 1 setlinecap 1 setlinejoin /mysetup [ 72 600 V 0 0 -72 600 V 11.99905 779.0003 ] def %%EndSetup %%Page: 1 1 %%PageBoundingBox: 13 12 780 599 %%EndPageComments %%BeginPageSetup /DeviceRGB dup setcolorspace /colspABC exch def mysetup concat colspRefresh %%EndPageSetup Pscript_WinNT_Incr begin %%BeginResource: file Pscript_WinNT_Compat 5.0 0 userdict/Pscript_WinNT_Compat 19 dict dup begin/bd{bind def}bind def/ld{load def}bd/$x matrix def/ANSIVec[16#0/grave 16#1/acute 16#2/circumflex 16#3/tilde 16#4/macron 16#5/breve 16#6/dotaccent 16#7/dieresis 16#8/ring 16#9/cedilla 16#A /hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle 16#60 /grave 16#7C/bar 16#82/quotesinglbase 16#83/florin 16#84/quotedblbase 16#85 /ellipsis 16#86/dagger 16#87/daggerdbl 16#88/circumflex 16#89/perthousand 16#8A /Scaron 16#8B/guilsinglleft 16#8C/OE 16#91/quoteleft 16#92/quoteright 16#93 /quotedblleft 16#94/quotedblright 16#95/bullet 16#96/endash 16#97/emdash 16#98 /tilde 16#99/trademark 16#9A/scaron 16#9B/guilsinglright 16#9C/oe 16#9F /Ydieresis 16#A0/space 16#A1/exclamdown 16#A4/currency 16#A5/yen 16#A6 /brokenbar 16#A7/section 16#A8/dieresis 16#A9/copyright 16#AA/ordfeminine 16#AB /guillemotleft 16#AC/logicalnot 16#AD/hyphen 16#AE/registered 16#AF/macron 16#B0/degree 16#B1/plusminus 16#B2/twosuperior 16#B3/threesuperior 16#B4/acute 16#B5/mu 16#B6/paragraph 16#B7/periodcentered 16#B8/cedilla 16#B9/onesuperior 16#BA/ordmasculine 16#BB/guillemotright 16#BC/onequarter 16#BD/onehalf 16#BE /threequarters 16#BF/questiondown 16#C0/Agrave 16#C1/Aacute 16#C2/Acircumflex 16#C3/Atilde 16#C4/Adieresis 16#C5/Aring 16#C6/AE 16#C7/Ccedilla 16#C8/Egrave 16#C9/Eacute 16#CA/Ecircumflex 16#CB/Edieresis 16#CC/Igrave 16#CD/Iacute 16#CE /Icircumflex 16#CF/Idieresis 16#D0/Eth 16#D1/Ntilde 16#D2/Ograve 16#D3/Oacute 16#D4/Ocircumflex 16#D5/Otilde 16#D6/Odieresis 16#D7/multiply 16#D8/Oslash 16#D9/Ugrave 16#DA/Uacute 16#DB/Ucircumflex 16#DC/Udieresis 16#DD/Yacute 16#DE /Thorn 16#DF/germandbls 16#E0/agrave 16#E1/aacute 16#E2/acircumflex 16#E3 /atilde 16#E4/adieresis 16#E5/aring 16#E6/ae 16#E7/ccedilla 16#E8/egrave 16#E9 /eacute 16#EA/ecircumflex 16#EB/edieresis 16#EC/igrave 16#ED/iacute 16#EE /icircumflex 16#EF/idieresis 16#F0/eth 16#F1/ntilde 16#F2/ograve 16#F3/oacute 16#F4/ocircumflex 16#F5/otilde 16#F6/odieresis 16#F7/divide 16#F8/oslash 16#F9 /ugrave 16#FA/uacute 16#FB/ucircumflex 16#FC/udieresis 16#FD/yacute 16#FE/thorn 16#FF/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def/terminate{ /@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate load def /resume/initialize load def/RS{/pagesave where{pop pagesave restore}{$x matrix invertmatrix concat}ifelse}def/SS{/pagesave save def}def/CB{pop pop pop pop}def /B{pop pop pop pop}def/:/gsave load def/;/grestore load def/N/newpath load def end put %%EndResource end reinitialize Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg NP 196 196 m 6196 196 l 6196 4696 l 196 4696 l CP eoclip 1 1 1 SC NP 195 195 m 6196 195 l 6196 4696 l 195 4696 l CP AF GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 1099 1871 m 1099 2346 l 1099 2348 1098 2349 1096 2349 c 1094 2349 1093 2348 1093 2346 c 1093 1871 l 1093 1869 1094 1868 1096 1868 c 1098 1868 1099 1869 1099 1871 c CP 1071 1879 m 1096 1796 l 1121 1879 l CP F GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1396 2546 m 4796 2546 l S GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol Pscript_WinNT_Incr begin %%BeginResource: file Pscript_Text 5.0 0 /TextInit{TextInitialised? not{/Pscript_Windows_Font & d/TextInitialised? T d /fM[1 0 0 1 0 0]d/mFM matrix d/iMat[1 0 0.212557 1 0 0]d}if}b/copyfont{1 ^ length add dict `{1 ^/FID ne{d}{! !}?}forall & E}b/EncodeDict 11 dict d/bullets {{/bullet}repeat}b/rF{3 copyfont @ ` ~ EncodeDict ~ get/Encoding ~ 3 ^/0 eq{& /CharStrings known{CharStrings/Eth known not{! EncodeDict/ANSIEncodingOld get} if}if}if d E}b/mF{@ 7 1 $ findfont ~{@/Encoding get @ StandardEncoding eq{! T}{ {ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{1 ^ ~ rF}{0 copyfont}? 6 -2 $ ! ! ~ !/pd_charset @ where{~ get 128 eq{@ FDV 2 copy get @ length array copy put pd_CoverFCRange}if}{!}? 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 put fM makefont Pscript_Windows_Font 3 1 $ put}b/sLT{: Lw -M currentpoint snap M 0 - 0 Lc K ;}b/xUP null d/yUP null d/uW null d/xSP null d/ySP null d/sW null d/sSU{N /uW ~ d/yUP ~ d/xUP ~ d}b/sU{xUP yUP uW sLT}b/sST{N/sW ~ d/ySP ~ d/xSP ~ d}b/sT {xSP ySP sW sLT}b/sR{: + R 0 0 M}b/sRxy{: matrix astore concat 0 0 M}b/eR/; , d /AddOrigFP{{&/FontInfo known{&/FontInfo get length 6 add}{6}? dict ` /WinPitchAndFamily ~ d/WinCharSet ~ d/OrigFontType ~ d/OrigFontStyle ~ d /OrigFontName ~ d & E/FontInfo ~ d}{! ! ! ! !}?}b/mFS{makefont Pscript_Windows_Font 3 1 $ put}b/mF42D{0 copyfont `/FontName ~ d 2 copy ~ sub 1 add dict `/.notdef 0 d 2 copy 1 ~{@ 3 ^ sub Encoding ~ get ~ d}for & E /CharStrings ~ d ! ! & @ E/FontName get ~ definefont}b/mF42{15 dict ` @ 4 1 $ FontName ~ d/FontType 0 d/FMapType 2 d/FontMatrix[1 0 0 1 0 0]d 1 ^ 254 add 255 idiv @ array/Encoding ~ d 0 1 3 -1 $ 1 sub{@ Encoding 3 1 $ put}for/FDepVector Encoding length array d/CharStrings 2 dict `/.notdef 0 d & E d 0 1 Encoding length 1 sub{@ @ 10 lt{! FontName length 1 add string}{100 lt{FontName length 2 add string}{FontName length 3 add string}?}? @ 0 FontName @ length string cvs putinterval @ 3 -1 $ @ 4 1 $ 3 string cvs FontName length ~ putinterval cvn 1 ^ 256 mul @ 255 add 3 -1 $ 4 ^ findfont mF42D FDepVector 3 1 $ put}for & @ E /FontName get ~ definefont ! ! ! mF}b/mF_OTF_V{~ ! ~ ! 4 -1 $ ! findfont 2 ^ ~ definefont fM @ @ 4 6 -1 $ neg put 5 0 put 90 matrix R matrix concatmatrix makefont Pscript_Windows_Font 3 1 $ put}b/mF_TTF_V{3{~ !}repeat 3 -1 $ ! findfont 1 ^ ~ definefont Pscript_Windows_Font 3 1 $ put}b/UmF{L2? {Pscript_Windows_Font ~ undef}{!}?}b/UmF42{@ findfont/FDepVector get{/FontName get undefinefont}forall undefinefont}b %%EndResource end reinitialize Pscript_WinNT_Incr begin %%BeginResource: file Pscript_Encoding256 5.0 0 /CharCol256Encoding[/.notdef/breve/caron/dotaccent/dotlessi/fi/fl/fraction /hungarumlaut/Lslash/lslash/minus/ogonek/ring/Zcaron/zcaron/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle/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/grave /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/.notdef/Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis /dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef /.notdef/.notdef/.notdef/quoteleft/quoteright/quotedblleft/quotedblright/bullet /endash/emdash/tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef /Ydieresis/.notdef/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/.notdef/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis /Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve /oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis]def EncodeDict/256 CharCol256Encoding put %%EndResource end reinitialize %%IncludeResource: font Arial Pscript_WinNT_Incr begin %%BeginResource: file Pscript_Win_Euro_L2 5.0 0 /UseT3EuroFont{/currentdistillerparams where{pop currentdistillerparams /CoreDistVersion get 4000 le}{false}ifelse}bind def/NewEuroT3Font?{dup/FontType get 3 eq{dup/EuroFont known exch/BaseFont known and}{pop false}ifelse}bind def /T1FontHasEuro{dup/CharStrings known not{dup NewEuroT3Font?{dup/EuroGlyphName get exch/EuroFont get/CharStrings get exch known{true}{false}ifelse}{pop false} ifelse}{dup/FontType get 1 eq{/CharStrings get/Euro known}{dup/InfoDict known{ /InfoDict get/Euro known}{/CharStrings get/Euro known}ifelse}ifelse}ifelse}bind def/FontHasEuro{findfont dup/Blend known{pop true}{T1FontHasEuro}ifelse}bind def/EuroEncodingIdx 1 def/EuroFontHdr{12 dict begin/FontInfo 10 dict dup begin /version(001.000)readonly def/Notice(Copyright (c)1999 Adobe Systems Incorporated. All Rights Reserved.)readonly def/FullName(Euro)readonly def /FamilyName(Euro)readonly def/Weight(Regular)readonly def/isFixedPitch false def/ItalicAngle 0 def/UnderlinePosition -100 def/UnderlineThickness 50 def end readonly def/FontName/Euro def/Encoding 256 array 0 1 255{1 index exch/.notdef put}for def/PaintType 0 def/FontType 1 def/FontMatrix[0.001 0 0 0.001 0 0]def /FontBBox{-25 -23 1500 804}readonly def currentdict end dup/Private 20 dict dup begin/ND{def}def/NP{put}def/lenIV -1 def/RD{string currentfile exch readhexstring pop}def/-|{string currentfile exch readstring pop}executeonly def /|-{def}executeonly def/|{put}executeonly def/BlueValues[-20 0 706 736 547 572] |-/OtherBlues[-211 -203]|-/BlueScale 0.0312917 def/MinFeature{16 16}|-/StdHW [60]|-/StdVW[71]|-/ForceBold false def/password 5839 def/Erode{8.5 dup 3 -1 roll 0.1 mul exch 0.5 sub mul cvi sub dup mul 71 0 dtransform dup mul exch dup mul add le{pop pop 1.0 1.0}{pop pop 0.0 1.5}ifelse}def/OtherSubrs[{}{}{} {systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]|-/Subrs 5 array dup 0 <8E8B0C100C110C110C210B>put dup 1<8B8C0C100B>put dup 2<8B8D0C100B>put dup 3<0B> put dup 4<8E8C8E0C100C110A0B>put |- 2 index/CharStrings 256 dict dup begin /.notdef<8b8b0d0e>def end end put put dup/FontName get exch definefont pop}bind def/AddEuroGlyph{2 index exch EuroEncodingIdx 1 eq{EuroFontHdr}if systemdict begin/Euro findfont dup dup/Encoding get 5 1 roll/Private get begin/CharStrings get dup 3 index known{pop pop pop pop end end}{begin 1 index exch def end end end EuroEncodingIdx dup 1 add/EuroEncodingIdx exch def exch put}ifelse}bind def /GetNewXUID{currentdict/XUID known{[7 XUID aload pop]true}{currentdict/UniqueID known{[7 UniqueID]true}{false}ifelse}ifelse}bind def/BuildT3EuroFont{exch 16 dict begin dup/FontName exch def findfont dup/Encoding get/Encoding exch def dup length 1 add dict copy dup/FID undef begin dup dup/FontName exch def /Encoding 256 array 0 1 255{1 index exch/.notdef put}for def GetNewXUID{/XUID exch def}if currentdict end definefont pop/BaseFont exch findfont 1000 scalefont def/EuroFont exch findfont 1000 scalefont def pop/EuroGlyphName exch def/FontType 3 def/FontMatrix[.001 0 0 .001 0 0]def/FontBBox BaseFont/FontBBox get def/Char 1 string def/BuildChar{exch dup begin/Encoding get 1 index get /Euro eq{BaseFont T1FontHasEuro{false}{true}ifelse}{false}ifelse{EuroFont setfont pop userdict/Idx 0 put EuroFont/Encoding get{EuroGlyphName eq{exit} {userdict/Idx Idx 1 add put}ifelse}forall userdict/Idx get}{dup dup Encoding exch get BaseFont/Encoding get 3 1 roll put BaseFont setfont}ifelse Char 0 3 -1 roll put Char stringwidth newpath 0 0 moveto Char true charpath flattenpath pathbbox setcachedevice 0 0 moveto Char show end}bind def currentdict end dup /FontName get exch definefont pop}bind def/AddEuroToT1Font{dup findfont dup length 10 add dict copy dup/FID undef begin/EuroFont 3 -1 roll findfont 1000 scalefont def CharStrings dup length 1 add dict copy begin/Euro{EuroFont setfont pop EuroGBBox aload pop setcachedevice 0 0 moveto EuroGName glyphshow} bind def currentdict end/CharStrings exch def GetNewXUID{/XUID exch def}if 3 1 roll/EuroGBBox exch def/EuroGName exch def currentdict end definefont pop}bind def/BuildNewFont{UseT3EuroFont{BuildT3EuroFont}{pop AddEuroToT1Font}ifelse}bind def/UseObliqueEuro{findfont/FontMatrix get dup 2 get 0 eq exch dup 0 get exch 3 get eq and UseT3EuroFont or}bind def %%EndResource end reinitialize /Arial FontHasEuro not { /Euro.Arial [556 0 24 -19 541 703 ] AddEuroGlyph /Euro /Arial /Arial-Copy BuildNewFont } if F /F0 0 /256 T /Arial mF /F0S96 F0 [150 0 0 -150 0 0 ] mFS F0S96 Ji 1356 2722 M (t)S /F0S85 F0 [133 0 0 -133 0 0 ] mFS F0S85 Ji 1398 2764 M (s)S F0S96 Ji 1706 1732 M (< \(t)[88 42 50 0]xS F0S85 Ji 1928 1774 M (2)S F0S96 Ji 2002 1732 M (-)S 2051 1732 M (t)S F0S85 Ji 2093 1774 M (1)S F0S96 Ji 2167 1732 M (\) x N)[50 42 74 42 0]xS 1556 2722 M (t)S F0S85 Ji 1598 2764 M (1)S F0S96 Ji 3706 2722 M (t)S F0S85 Ji 3748 2764 M (4)S F0S96 Ji 4656 2772 M (t)S F0S85 Ji 4698 2814 M (s)S F0S96 Ji 4765 2772 M (+T)[87 0]xS 2506 2722 M (t)S F0S85 Ji 2548 2764 M (2)S F0S96 Ji 1046 1696 M (ttl)[42 42 0]xS Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 3296 2993 m 3621 2993 l 3623 2993 3624 2994 3624 2996 c 3624 2998 3623 2999 3621 2999 c 3296 2999 l 3294 2999 3293 2998 3293 2996 c 3293 2994 3294 2993 3296 2993 c CP 3613 2971 m 3696 2996 l 3613 3021 l CP F GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol 2956 3046 M (time)[42 33 125 0]xS 2906 2722 M (t)S F0S85 Ji 2948 2764 M (3)S Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.8515 0.8515 0.8515 SC NP 1646 2546 m 1646 2096 l 1896 2346 l 1896 1896 l 2546 2546 l 1646 2546 l CP AF GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1646 2546 m 1646 2096 l 1896 2346 l 1896 1896 l 2546 2546 l 1646 2546 l CP S GSE 0 GpPBeg 0.8515 0.8515 0.8515 SC NP 2946 2546 m 2946 2196 l 3146 2396 l 3146 2096 l 3396 2396 l 3396 2146 l 3796 2546 l 2946 2546 l CP AF GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2946 2546 m 2946 2196 l 3146 2396 l 3146 2096 l 3396 2396 l 3396 2146 l 3796 2546 l 2946 2546 l CP S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1646 1746 m 1646 1846 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2546 1746 m 2546 1846 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2946 1746 m 2946 1846 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 3796 1746 m 3796 1846 l S GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 1721 1793 m 2471 1793 l 2473 1793 2474 1794 2474 1796 c 2474 1798 2473 1799 2471 1799 c 1721 1799 l 1719 1799 1718 1798 1718 1796 c 1718 1794 1719 1793 1721 1793 c CP 1729 1821 m 1646 1796 l 1729 1771 l CP 2463 1771 m 2546 1796 l 2463 1821 l CP F GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 3021 1793 m 3721 1793 l 3723 1793 3724 1794 3724 1796 c 3724 1798 3723 1799 3721 1799 c 3021 1799 l 3019 1799 3018 1798 3018 1796 c 3018 1794 3019 1793 3021 1793 c CP 3029 1821 m 2946 1796 l 3029 1771 l CP 3713 1771 m 3796 1796 l 3713 1821 l CP F GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec /DeviceRGB dup setcolorspace /colspABC exch def 0 0 0 1 scol F0S96 Ji 3006 1722 M (< \(t)[88 42 50 0]xS F0S85 Ji 3228 1764 M (4)S F0S96 Ji 3302 1722 M (-)S 3351 1722 M (t)S F0S85 Ji 3393 1764 M (3)S F0S96 Ji 3467 1722 M (\) x N)[50 42 74 42 0]xS 4406 1722 M (< N)[88 42 0]xS Pscript_WinNT_Compat begin /$x mysetup def end Pscript_WinNT_Incr dup /suspend get exec Pscript_WinNT_Compat dup /initialize get exec %%BeginDocument: Pscript_Win_PassThrough userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 4346 1746 m 4346 1846 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 4796 1746 m 4796 1846 l S GSE userdict /GpPBeg {gsave initclip 13 dict begin /c {curveto} bind def /l {lineto} bind def /m {moveto} bind def /NP {newpath} bind def /CP {closepath} bind def /SC {setrgbcolor} bind def /S {stroke} bind def /F {fill} bind def /AF {eofill} bind def 1 eq {setdash setlinewidth setmiterlimit setlinejoin setlinecap} if} put /GSE {end grestore} def 0 GpPBeg 0.0039 0.0039 0.0039 SC NP 4421 1793 m 4721 1793 l 4723 1793 4724 1794 4724 1796 c 4724 1798 4723 1799 4721 1799 c 4421 1799 l 4419 1799 4418 1798 4418 1796 c 4418 1794 4419 1793 4421 1793 c CP 4429 1821 m 4346 1796 l 4429 1771 l CP 4713 1771 m 4796 1796 l 4713 1821 l CP F GSE 0 GpPBeg 0.8515 0.8515 0.8515 SC NP 4346 2546 m 4346 2296 l 4446 2396 l 4446 2146 l 4596 2296 l 4596 2046 l 4696 2196 l 4696 1996 l 4796 2096 l 4796 2546 l 4346 2546 l CP AF GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 4346 2546 m 4346 2296 l 4446 2396 l 4446 2146 l 4596 2296 l 4596 2046 l 4696 2196 l 4696 1996 l 4796 2096 l 4796 2546 l 4346 2546 l CP S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1396 2496 m 1396 2596 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 4796 2496 m 4796 2596 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2946 2496 m 2946 2596 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 3796 2496 m 3796 2596 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 2546 2496 m 2546 2596 l S GSE 1 1 10 6.2500 [] 0 1 GpPBeg 0.0039 0.0039 0.0039 SC NP 1646 2496 m 1646 2596 l S GSE %%EndDocument Pscript_WinNT_Compat dup /suspend get exec Pscript_WinNT_Incr dup /resume get exec LH %%PageTrailer %%Trailer %%DocumentNeededResources: %%+ font Arial %%DocumentSuppliedResources: %%+ procset Pscript_WinNT_ErrorHandler 5.0 0 %%+ procset Pscript_FatalError 5.0 0 %%+ procset Pscript_Win_Basic 5.0 0 %%+ procset Pscript_Win_Utils_L2 5.0 0 %%+ procset Pscript_WinNT_Compat 5.0 0 %%+ procset Pscript_Text 5.0 0 %%+ procset Pscript_Encoding256 5.0 0 %%+ procset Pscript_Win_Euro_L2 5.0 0 Pscript_WinNT_Incr dup /terminate get exec %%EOF %%EndDocument @endspecial 2098 748 a Fn(Figur)o(e)g(4:)25 b Fm(Bound)17 b(on)g(the)g(bytes)g(of)g(a)g(capability)i(with)e(caching)o(.)2000 1007 y Fr(recei)n(v)o(es)j(from)g(routers)h(to)g(full)g(capabilities)g (by)g(hashing)f(them)2000 1098 y(with)31 b Fq(N)41 b Fr(and)30 b Fq(T)12 b Fr(.)58 b(Each)30 b(destination)h(can)g(choose)f Fq(N)40 b Fr(and)31 b Fq(T)2000 1190 y Fr(\(within)c(limits\))g(for)g (each)g(request,)h(using)f(an)o(y)g(method)f(from)2000 1281 y(simple)e(def)o(aults)f(to)h(models)f(of)g(prior)g(beha)n(vior)-5 b(.)35 b(The)23 b(full)h(ca-)2000 1372 y(pabilities,)d(consisting)f(of) h Fq(N)9 b Fr(,)21 b Fq(T)12 b Fr(,)21 b(the)g(router)e(timestamps,)i (and)2000 1464 y(hash)16 b(v)n(alues,)h(are)g(then)f(returned)f(using)h (the)g(re)n(v)o(erse)g(channel)f(to)2000 1555 y(authorize)21 b(the)h(sender)-5 b(.)31 b(F)o(or)22 b(longer)f(\003o)n(ws,)i(the)f (sender)g(should)2000 1646 y(rene)n(w)d(these)i(capabilities)f(before)e (the)o(y)i(reach)f(their)h(limits.)2075 1738 y(W)m(ith)f(this)i (scheme,)e(routers)f(v)o(erify)g(their)i(portion)e(of)h(the)h(ca-)2000 1829 y(pabilities)e(by)g(re-computing)d(the)k(hashes)f(much)f(as)i (before,)e(e)o(x-)2000 1920 y(cept)h(that)h(no)n(w)g(tw)o(o)g(hashes)f (are)h(required)e(instead)i(of)f(one.)24 b(The)2000 2012 y(routers)i(no)n(w)h(perform)e(tw)o(o)j(further)e(checks,)i(one)f(for)f Fq(N)37 b Fr(and)2000 2103 y(one)23 b(for)g Fq(T)12 b Fr(.)36 b(First,)25 b(routers)e(check)g(that)h(their)f(local)h(time)g (is)h(no)2000 2194 y(greater)k(than)h(the)g(router)f(timestamp)h(plus)g Fq(T)42 b Fr(to)30 b(ensure)f(that)2000 2286 y(the)24 b(capability)e(has)i(not)g(e)o(xpired;)f Fq(T)36 b Fr(is)24 b(limited)g(to)g(half)f(of)h(the)2000 2377 y(maximum)19 b(router)g(timestamp)h(to)h(enable)e(this,)i(and)f(the)h(replay)2000 2468 y(of)k(v)o(ery)f(old)h(capabilities)g(\(for)f(which)h(the)g(local) g(router)f(clock)2000 2560 y(has)18 b(wrapped\))e(are)i(handled)e(as)j (before)d(by)i(changing)e(the)i(long-)2000 2651 y(li)n(v)o(ed)25 b(router)g(secret.)42 b(Second,)26 b(routers)f(check)g(that)h(the)g (capa-)2000 2742 y(bility)21 b(will)i(not)e(be)g(used)h(for)f(more)f (than)i(N)g(bytes.)29 b(This)21 b(check)2000 2834 y(is)h(conceptually)d (simple,)j(b)n(ut)f(it)h(requires)f(state)h(and)f(raises)h(the)2000 2925 y(concern)g(that)h(attack)o(ers)h(may)f(e)o(xhaust)g(router)f (state.)36 b(W)-7 b(e)25 b(deal)2000 3016 y(with)20 b(this)h(concern)d (ne)o(xt.)2000 3183 y Fs(3.6)99 b(Bounded)27 b(Router)f(State)2075 3300 y Fr(W)-7 b(e)24 b(wish)f(to)g(ensure)f(that)h(attack)o(ers)g (cannot)f(e)o(xhaust)g(router)2000 3391 y(memory)i(to)h(bypass)g (capability)g(limits.)41 b(This)26 b(is)g(especially)f(a)2000 3482 y(concern)d(gi)n(v)o(en)h(that)i(we)f(are)g(counting)f(the)h (bytes)g(sent)h(with)f(a)2000 3574 y(capability)29 b(and)g(colluding)g (attack)o(ers)h(may)f(create)h(man)o(y)f(au-)2000 3665 y(thorized)19 b(connections)f(across)i(a)h(tar)o(get)e(link.)2075 3756 y(T)-7 b(o)31 b(handle)g(this)i(problem,)f(we)g(design)g(an)f (algorithm)f(that)2000 3847 y(bounds)19 b(the)i(bytes)g(sent)g(using)g (a)g(capability)f(while)h(using)f(only)2000 3939 y(a)h(\002x)o(ed)e (amount)h(of)g(router)f(state)i(no)f(matter)g(what)h(the)f(attack)o(er) 2000 4030 y(beha)n(vior)-5 b(.)39 b(In)25 b(the)g(w)o(orst)h(case,)g(a) g(capability)e(may)h(be)g(used)g(to)2000 4121 y(send)k Fp(2)p Fq(N)38 b Fr(bytes)29 b(in)g Fq(T)41 b Fr(seconds.)51 b(The)29 b(same)h(capability)e(will)2000 4213 y(still)20 b(be)f(precisely)f(limited)h(to)g Fq(N)28 b Fr(bytes)19 b(if)g(there)g(is)h(no)e(memory)2000 4304 y(pressure.)2075 4395 y(The)34 b(high)h(le)n(v)o(el)g(idea)g(of)g(the)g(algorithm)f(is)i (to)g(mak)o(e)f(the)2000 4487 y(router)29 b(k)o(eep)h(state)h(only)e (for)h(capabilities)g(that)g(observ)o(e)f(traf-)2000 4578 y(\002c)22 b(at)g(a)g(rate)f(f)o(aster)h(than)f Fq(N)r(=T)12 b Fr(.)27 b(The)21 b(router)f(does)i(not)f(need)f(to)2000 4669 y(k)o(eep)c(state)h(for)f(other)g(capabilities)g(because)g(the)o (y)g(will)i(not)e(send)2000 4761 y(more)25 b(than)h Fq(N)35 b Fr(bytes)26 b(before)f(the)h(capability)f(is)i(e)o(xpired)e(in)h Fq(T)2000 4852 y Fr(seconds.)39 b(T)-7 b(o)25 b(accomplish)f(this,)i (we)g(con)m(v)o(ert)d(bytes)i(to)g(equi)n(v-)2000 4943 y(alent)h(units)h(of)f(time,)i(i.e.,)g Fq(L)f Fr(bytes)f(are)h(treated) f(as)h Fq(L)c Fi(\003)g Fq(T)9 b(=)-5 b(N)2000 5035 y Fr(seconds)19 b(w)o(orth)h(of)g(usage.)2075 5126 y(In)25 b(more)f(detail,)i(when)f(a)h(router)e(recei)n(v)o(es)g(a)i(pack)o(et)f (with)g(a)2000 5217 y(v)n(alid)20 b(capability)g(for)h(which)f(it)i (does)f(not)g(ha)n(v)o(e)f(state,)i(it)f(be)o(gins)2000 5309 y(to)g(track)g(byte)h(counts)e(for)h(the)h(capability)e(and)h (also)h(associates)2000 5400 y(a)c(minimal)f(time-to-li)n(v)o(e)f(\()p Fq(ttl)r Fr(\))g(with)i(the)g(state.)25 b(The)17 b Fq(ttl)i Fr(is)g(set)f(to)1929 5649 y(5)p eop end %%Page: 6 6 TeXDict begin 6 5 bop 0 83 a Fr(the)18 b(time)h(equi)n(v)n(alent)d(v)n (alue)i(of)f(the)i(pack)o(et,)e Fq(L)11 b Fi(\003)g Fq(T)e(=)-5 b(N)27 b Fr(seconds.)0 174 y(This)32 b Fq(ttl)i Fr(is)f(decremented)c (as)k(time)f(passes)h(\(our)d(implemen-)0 266 y(tation)e(simply)g(sets) h(an)f(e)o(xpiration)f(time)h(of)g Fq(now)f Fp(+)d Fq(ttl)r Fr(\))k(and)0 357 y(incremented)19 b(as)j(subsequent)e(pack)o(ets)g (are)h(char)o(ged)e(to)j(the)f(ca-)0 448 y(pability)-5 b(.)22 b(When)16 b(the)g Fq(ttl)h Fr(reaches)e(zero)h(it)g(is)h (permissible)e(for)g(the)0 540 y(router)k(to)h(reclaim)g(the)g(state)h (for)f(use)g(with)h(a)f(ne)n(w)g(capability)-5 b(.)75 631 y(W)e(e)28 b(no)n(w)e(sho)n(w)g(that)h(this)g(scheme)f(bounds)f (the)i(number)e(of)0 722 y(bytes)e(sent)h(using)f(a)g(capability)-5 b(.)33 b(Referring)22 b(to)i(Figure)e(4,)i(sup-)0 814 y(pose)19 b(that)g(the)g(router)f(created)g(the)h(capability)g(at)g (time)g Fq(t)1659 826 y Fh(s)1714 814 y Fr(and)g(it)0 905 y(e)o(xpires)d(at)i(time)f Fq(t)529 917 y Fh(s)571 905 y Fp(+)7 b Fq(T)12 b Fr(.)22 b(Further)16 b(suppose)g(that)h(the)g (router)f(cre-)0 996 y(ates)23 b(state)h(for)e(the)h(capability)f(at)h (time)g Fq(t)1208 1008 y Fo(1)1273 996 y Fq(>)k(t)1395 1008 y Fh(s)1431 996 y Fr(,)d(and)e(reclaims)0 1088 y(the)27 b(state)g(when)f(its)h Fq(ttl)i Fr(reaches)d(zero)g(at)h(time)g Fq(t)1472 1100 y Fo(2)1544 1088 y Fq(<)34 b(t)1673 1100 y Fh(s)1732 1088 y Fp(+)22 b Fq(T)12 b Fr(.)0 1179 y(Then)19 b(by)h(the)g(de\002nition)e(of)i(the)g Fq(ttl)r Fr(,)g(the)f (capability)g(must)h(ha)n(v)o(e)0 1270 y(been)h(used)g(for)g(less)h (than)f Fp(\()p Fq(t)845 1282 y Fo(2)902 1270 y Fi(\000)e Fq(t)1016 1282 y Fo(1)1054 1270 y Fp(\))p Fq(=T)30 b Fi(\003)19 b Fq(N)31 b Fr(bytes)21 b(from)f Fq(t)1776 1282 y Fo(1)1836 1270 y Fr(to)0 1362 y Fq(t)30 1374 y Fo(2)67 1362 y Fr(.)25 b(This)19 b(may)f(occur)f(more)h(than)g(once,)g (b)n(ut)g(re)o(gardless)f(of)h(ho)n(w)0 1453 y(man)o(y)j(times)h(it)h (occurs)e(the)h(time)g(interv)n(als)f(can)h(total)g(no)g(more)0 1544 y(than)28 b Fq(T)39 b Fr(seconds.)48 b(This)28 b(in)g(turn)g (means)g(that)g(the)g(total)g(bytes)0 1636 y(used)d(for)g(the)g (capability)f(must)i(be)f(less)h(that)g Fq(T)9 b(=T)32 b Fi(\003)22 b Fq(N)41 b Fp(=)32 b Fq(N)0 1727 y Fr(bytes.)45 b(If)27 b(a)g(capability)f(has)h(state)h(at)f(time)g(immediately)f (pre-)0 1818 y(ceding)16 b Fq(t)269 1830 y Fh(s)313 1818 y Fp(+)8 b Fq(T)29 b Fr(because)16 b(its)j Fq(ttl)g Fr(has)f(not)f (reached)f(zero,)h(then)g(up)0 1910 y(to)23 b Fq(N)33 b Fr(bytes)23 b(can)g(be)g(sent)h(at)g(a)f(rate)h(f)o(aster)f(than)g Fq(N)r(=T)12 b Fr(.)33 b(There-)0 2001 y(fore,)23 b(at)g(most)g Fq(N)30 b Fp(+)20 b Fq(N)37 b Fp(=)27 b(2)p Fq(N)32 b Fr(bytes)23 b(can)g(be)g(sent)g(before)f(the)0 2092 y(capability)d(is)i (e)o(xpired.)75 2183 y(W)-7 b(e)16 b(no)n(w)f(sho)n(w)g(that)g(this)h (scheme)f(requires)f(only)g(\002x)o(ed)h(mem-)0 2275 y(ory)22 b(to)g(a)n(v)n(oid)g(reclaiming)f(state)j(with)e(non-zero)e Fq(ttl)25 b Fr(v)n(alues,)d(as)0 2366 y(required)29 b(abo)o(v)o(e.)55 b(Suppose)30 b(the)h(capacity)f(of)g(the)h(input)f(link)0 2457 y(is)e Fq(C)6 b Fr(.)47 b(T)-7 b(o)27 b(ha)n(v)o(e)f(state)i(at)g (time)f Fq(t)p Fr(,)i(a)f(capability)e(must)h(be)g(used)0 2549 y(to)f(send)f(f)o(aster)g(than)g Fq(N)r(=T)37 b Fr(before)24 b Fq(t)p Fr(.)41 b(Otherwise,)27 b(the)e Fq(ttl)i Fr(as-)0 2640 y(sociated)e(with)g(the)h(state)g(will)g(reach)e (zero)h(and)g(the)g(state)h(may)0 2731 y(be)h(reclaimed.)46 b(There)27 b(can)g(be)h(at)g(most)f Fq(C)t(=)p Fp(\()p Fq(N)r(=T)12 b Fp(\))27 b Fr(such)g(ca-)0 2823 y(pabilities.)45 b(If)27 b(we)g(require)f(that)h(the)g(minimum)e Fq(N)r(=T)38 b Fr(rate)27 b(be)0 2914 y(greater)h(than)h(an)g(architectural)e (constraint)h Fp(\()p Fq(N)r(=T)12 b Fp(\))1578 2926 y Fh(min)1705 2914 y Fr(,)31 b(then)0 3005 y(we)16 b(bound)d(the)i (state)h(a)g(router)e(needs)h(to)g Fq(C)t(=)p Fp(\()p Fq(N)r(=T)d Fp(\))1514 3017 y Fh(min)1656 3005 y Fr(records.)0 3097 y(As)24 b(an)f(e)o(xample,)g(if)g(the)g(minimum)f(sending)g(rate)h (is)i(4K)e(bytes)0 3188 y(in)f(10)f(seconds,)h(a)g(router)f(with)h(a)g (gigabit)f(input)g(line)h(will)h(only)0 3279 y(need)g(312,500)d (records.)33 b(If)23 b(each)g(record)f(requires)g(100)g(bytes,)0 3371 y(then)d(a)h(line)f(card)g(with)h(32MB)f(of)g(memory)f(will)i(ne)n (v)o(er)e(run)h(out)0 3462 y(of)h(state.)0 3640 y Fs(3.7)99 b(Secur)n(e)27 b(and)e(Ef\002cient)i(Capabilities)75 3756 y Fr(W)-7 b(e)23 b(w)o(ant)e(capabilities)h(to)g(be)f(both)g (secure,)g(in)h(that)g(the)o(y)f(are)0 3847 y(dif)n(\002cult)k(to)h (disco)o(v)o(er)e(or)h(bypass,)i(and)e(ef)n(\002cient,)h(in)g(that)f (the)o(y)0 3939 y(consume)k(little)h(bandwidth.)53 b(These)29 b(properties)g(are)h(in)g(con-)0 4030 y(\003ict,)23 b(since)g(security) f(bene\002ts)g(from)f(long)h(capabilities)g(\(i.e.,)g(a)0 4121 y(long)15 b(k)o(e)o(y)h(length\))e(while)i(ef)n(\002cienc)o(y)f (bene\002ts)h(from)f(short)g(ones.)0 4213 y(T)-7 b(o)20 b(reconcile)f(these)i(f)o(actors,)e(we)i(observ)o(e)e(that)h(most)g (bytes)g(re-)0 4304 y(side)27 b(in)f(long)g(\003o)n(ws)h(for)e(which)h (the)h(same)f(capability)g(is)h(used)0 4395 y(repeatedly)c(on)i(pack)o (ets)f(of)h(the)g(\003o)n(w)-5 b(.)39 b(Thus)24 b(we)i(use)f(long)f (ca-)0 4487 y(pabilities)j(\(64)f(bits)h(per)f(router\))g(to)h(ensure)f (security)-5 b(,)27 b(and)f(de-)0 4578 y(sign)f(a)g(mechanism)e(to)i (cache)f(capabilities)g(at)h(routers)f(so)h(that)0 4669 y(the)o(y)20 b(can)h(be)g(omitted)f(for)h(bandwidth)e(ef)n(\002cienc)o (y)-5 b(.)26 b(W)-7 b(e)22 b(belie)n(v)o(e)0 4761 y(that)e(this)g(is)g (a)g(better)f(tradeof)n(f)f(than)h(short)g(capabilities)g(that)h(are)0 4852 y(al)o(w)o(ays)30 b(present,)h(e.g.,)g(SIFF)f(uses)g(2)g(bits)g (per)f(router)-5 b(.)52 b(Short)0 4943 y(capabilities)30 b(are)g(vulnerable)e(to)j(a)f(brute)g(force)f(attack)h(if)h(the)0 5035 y(beha)n(vior)22 b(of)i(indi)n(vidual)e(routers)h(can)h(be)g (inferred,)f(e.g.,)h(from)0 5126 y(bandwidth)16 b(ef)n(fects,)h(and)g (do)g(not)g(pro)o(vide)f(ef)n(fecti)n(v)o(e)g(protection)0 5217 y(with)k(a)h(limited)f(initial)h(deplo)o(yment.)75 5309 y(In)26 b(our)g(design,)i(when)e(a)h(sender)f(obtains)g(ne)n(w)h (capabilities)0 5400 y(from)e(a)h(recei)n(v)o(er)m(,)f(it)i(chooses)e (a)h(random)e(\003o)n(w)i(nonce)f(and)g(in-)2000 83 y(cludes)e(it)i (together)e(with)h(the)f(list)i(of)f(capabilities)g(in)g(its)h(pack-) 2000 174 y(ets.)i(When)20 b(a)h(router)e(recei)n(v)o(es)h(a)h(pack)o (et)f(with)h(a)g(v)n(alid)f(capabil-)2000 266 y(ity)k(and)g(if)h(it)g (has)f(suf)n(\002cient)g(memory)-5 b(,)23 b(it)i(caches)f(the)h (capabil-)2000 357 y(ity)-5 b(,)25 b(and)f(initializes)i(a)f(byte)f (counter)f(and)h(a)i Fq(ttl)g Fr(\002eld)f(using)f Fq(N)2000 448 y Fr(and)j Fq(T)39 b Fr(in)27 b(the)g(capability)-5 b(.)45 b(The)28 b(router)e(then)h(sets)h(the)f(cache-)2000 540 y(bit)c(\002eld)g(of)g(the)f(capability)g(in)h(the)g(pack)o(et)f (to)h(signal)g(this;)i(this)2000 631 y(bit)31 b(reaches)g(the)h (destination)e(and)h(is)h(con)m(v)o(e)o(yed)c(back)j(to)h(the)2000 722 y(sender)d(via)h(re)n(v)o(erse)f(traf)n(\002c.)55 b(Subsequent)28 b(pack)o(ets)i(can)g(then)2000 814 y(omit)21 b(the)g(capability)-5 b(.)27 b(If)21 b(all)h(capability-enabled)c (routers)j(from)2000 905 y(a)e(sender)g(to)g(a)g(recei)n(v)o(er)f (cached)g(the)h(sender')-5 b(s)19 b(capabilities,)g(the)2000 996 y(sender)25 b(only)g(needs)h(to)g(include)f(the)h(\003o)n(w)g (nonce)f(in)h(its)h(pack-)2000 1088 y(ets.)39 b(Routers)24 b(look)g(up)g(pack)o(ets)h(that)f(omit)h(capabilities)f(using)2000 1179 y(their)15 b(source)f(and)h(destination)f(IP)i(addresses,)f(and)g (compare)f(the)2000 1270 y(cached)j(\003o)n(w)i(nonces)e(with)h(those)h (in)f(pack)o(ets.)24 b(A)19 b(matching)e(in-)2000 1362 y(dicates)26 b(that)h(a)g(router)e(has)i(v)n(alidated)e(the)i(\003o)n (w')-5 b(s)27 b(capabilities)2000 1453 y(in)c(pre)n(vious)e(pack)o (ets.)32 b(The)22 b(pack)o(ets)g(are)h(then)f(subject)g(to)h(byte)2000 1544 y(limit)d(and)g(e)o(xpiration)e(time)j(checking)d(as)j(before.) 2075 1636 y(F)o(or)26 b(this)i(scheme)e(to)h(w)o(ork)g(well,)i(hosts)e (must)g(kno)n(w)f(when)2000 1727 y(routers)18 b(e)n(vict)i(their)f (capabilities)g(from)f(the)i(cache.)k(Otherwise,)2000 1818 y(pack)o(ets)g(will)h(arri)n(v)o(e)e(at)h(a)h(router)e(e)o (xpecting)f(that)i(the)h(capabil-)2000 1910 y(ity)f(is)h(cached)e(when) h(in)g(f)o(act)g(it)h(is)g(not.)36 b(Such)24 b(pack)o(ets)g(will)h(be) 2000 2001 y(demoted)f(to)h(le)o(gac)o(y)f(pack)o(ets)h(as)h(we)g (describe)f(ne)o(xt.)40 b(T)-7 b(o)25 b(han-)2000 2092 y(dle)18 b(this)h(concern,)e(we)i(observ)o(e)e(that)h(hosts)h(can)f (conserv)n(ati)n(v)o(ely)2000 2183 y(model)25 b(router)g(cache)g(e)n (viction.)42 b(This)26 b(is)h(because)e(the)o(y)h(kno)n(w)2000 2275 y Fq(N)9 b Fr(,)29 b Fq(T)12 b Fr(,)29 b(the)e(length)g(of)g (their)h(pack)o(ets)f(and)g(the)g(time)h(at)g(which)2000 2366 y(the)o(y)23 b(were)h(sent.)37 b(Further)m(,)23 b(by)h(the)g(construction)e(of)i(our)f(algo-)2000 2457 y(rithm,)18 b(e)n(viction)f(should)g(be)h(rare)g(for)g(high-rate)e (\003o)n(ws,)j(and)f(it)h(is)2000 2549 y(only)24 b(these)i(\003o)n(ws)g (that)f(need)g(to)g(remain)g(in)g(cache)g(to)h(achie)n(v)o(e)2000 2640 y(o)o(v)o(erall)19 b(bandwidth)f(ef)n(\002cienc)o(y)-5 b(.)2000 2808 y Fs(3.8)99 b(Route)25 b(Changes)h(and)f(F)n(ailur)n(es) 2075 2924 y Fr(T)-7 b(o)22 b(be)g(rob)n(ust,)f(our)g(design)h(must)g (also)g(accommodate)d(route)2000 3015 y(changes)32 b(and)h(f)o(ailures) f(such)h(as)h(router)e(restarts)i(and)e(pack)o(et)2000 3107 y(loss.)42 b(The)25 b(main)g(consequence)f(of)h(a)h(route)f (change)f(or)i(router)2000 3198 y(f)o(ailure)e(is)i(that)f(a)g(pack)o (et)f(may)h(arri)n(v)o(e)f(at)h(a)g(router)f(that)h(has)g(no)2000 3289 y(associated)c(capability)f(state,)i(i.e.,)g(there)f(are)g(no)g (cached)f(capa-)2000 3381 y(bilities)27 b(and)f(e)n(v)o(en)g(carried)f (capabilities)i(cannot)e(be)i(v)n(alidated)2000 3472 y(because)21 b(the)o(y)g(are)h(for)f(the)h(wrong)e(router)h(or)g(the)h (router)e(secret)2000 3563 y(has)g(been)g(lost.)2075 3655 y(This)f(situation)h(should)e(be)i(infrequent,)d(b)n(ut)j(we)g (nonetheless)2000 3746 y(de\002ne)25 b(a)i(scheme)f(to)g(handle)f(it)i (with)g(a)f(minimum)f(of)h(disrup-)2000 3837 y(tion.)46 b(First,)30 b(we)e(demote)e(such)h(pack)o(ets)g(to)h(be)f(the)h(same)f (pri-)2000 3929 y(ority)19 b(as)i(le)o(gac)o(y)e(traf)n(\002c)g (\(which)h(ha)n(v)o(e)f(no)h(associated)g(capabili-)2000 4020 y(ties\))d(by)g(changing)e(a)j(\002eld)f(in)g(the)g(capability)f (header)-5 b(.)24 b(The)o(y)16 b(are)2000 4111 y(lik)o(ely)25 b(to)h(reach)f(the)g(destination)g(in)g(normal)g(operation)e(when)2000 4203 y(there)d(is)i(little)g(congestion.)j(The)20 b(destination)g(then) h(signals)g(the)2000 4294 y(sender)i(to)h(tell)g(it)g(that)g(the)g (path)f(has)h(changed)e(and)h(it)h(must)g(re-)2000 4385 y(acquire)15 b(capabilities.)23 b(W)-7 b(e)18 b(use)e(an)g(ECN-lik)o(e) h([18])e(mechanism)2000 4477 y(to)23 b(reliably)g(deli)n(v)o(er)f(up)h (to)g(one)g(signal)g(per)g(R)-5 b(TT)f(.)23 b(In)g(the)g(w)o(orst)2000 4568 y(case,)j(if)g(the)f(entire)g(\003ight)g(of)g(pack)o(ets)f(is)i (repeatedly)e(lost,)j(the)2000 4659 y(host)f(can)f(retransmit)g(the)h (capability)f(request)g(before)g(resend-)2000 4751 y(ing)20 b(the)g(data)g(pack)o(ets.)2000 4918 y Fs(3.9)99 b(Balancing)25 b(A)-5 b(uthorized)27 b(T)-7 b(raf\002c)2075 5035 y Fr(Capabilities)15 b(ensure)f(that)i(only)e(authorized)f(traf)n(\002c)i(will)h(com-)2000 5126 y(pete)24 b(for)g(the)g(bandwidth)f(to)h(reach)g(a)h(destination.) 36 b(This)25 b(rules)2000 5217 y(out)15 b(man)o(y)f(kinds)h(of)g(DoS)h (b)n(ut)f(remains)g(vulnerable)e(to)j(\003oods)f(of)2000 5309 y(authorized)g(traf)n(\002c.)24 b(T)-7 b(o)18 b(see)g(this,)g (consider)f(a)h(pair)f(of)g(colluding)2000 5400 y(attack)o(ers)e(who)h (authorize)e(high-rate)g(transfers)h(between)g(them-)1929 5649 y(6)p eop end %%Page: 7 7 TeXDict begin 7 6 bop 0 83 a Fr(selv)o(es.)25 b(The)o(y)19 b(can)g(then)g(\003ood)g(the)h(path)f(and)g(disrupt)g(other)g(au-)0 174 y(thorized)24 b(traf)n(\002c)i(sent)f(to)h(a)g(destination)f(that)g (shares)h(the)f(path.)0 266 y(This)c(w)o(ould)f(allo)n(w)-5 b(,)20 b(for)g(e)o(xample,)g(a)h(compromised)d(insider)j(to)0 357 y(authorize)29 b(\003oods)h(on)g(an)g(access)h(link)f(by)g(outside) g(attack)o(ers.)0 448 y(This)19 b(kind)f(of)h(attack)g(is)h(little)f (addressed)f(by)h(other)f(approaches)0 540 y(to)24 b(DoS,)h(b)n(ut)f(f) o(alls)h(within)f(our)g(goal)g(of)g(being)f(rob)n(ust)h(to)g(arbi-)0 631 y(trary)19 b(attacks.)75 722 y(T)-7 b(o)31 b(mitigate)g(this)h (attack,)h(we)f(require)e(a)i(bandwidth)d(allo-)0 814 y(cation)21 b(mechanism)g(to)h(arbitrate)f(between)g(authorized)e(traf) n(\002c.)0 905 y(Since)h(we)h(do)f(not)g(kno)n(w)f(which)h(authorized)f (\003o)n(ws,)h(if)h(an)o(y)-5 b(,)19 b(are)0 996 y(malicious,)26 b(we)g(simply)f(seek)h(to)g(gi)n(v)o(e)e(each)i(capability)e(a)i(rea-)0 1088 y(sonable)h(share)g(of)g(the)h(netw)o(ork)e(bandwidth.)45 b(T)-7 b(o)28 b(do)f(this)h(we)0 1179 y(use)g(per)n(-sender)f(f)o(air)n (-queuing)e(based)j(on)g(source)f(IP)h(address.)0 1270 y(This)d(is)i(sho)n(wn)d(in)i(Figure)e(2.)41 b(The)25 b(source)f(address)h(is)h(tied)g(to)0 1362 y(a)g(real)g(host)g(because) g(it)g(is)h(\(weakly\))e(v)n(alidated)g(by)g(the)h(hand-)0 1453 y(shak)o(e)20 b(implicit)f(in)h(the)g(capability)f(e)o(xchange.)j (Users)f(will)f(no)n(w)0 1544 y(get)k(a)g(decreasing)e(share)i(of)f (the)h(netw)o(ork)e(as)j(it)f(becomes)f(b)n(us-)0 1636 y(ier)i(in)g(terms)g(of)g(users)g(\(whether)f(due)g(to)h(le)o(gitimate) f(usage)h(or)0 1727 y(colluding)c(attack)o(ers\))h(b)n(ut)h(the)o(y)f (will)h(be)g(little)g(af)n(fected)f(unless)0 1818 y(the)c(number)e(of)h (attack)o(ers)g(is)i(much)e(lar)o(ger)f(than)h(the)h(number)e(of)0 1910 y(le)o(gitimate)k(users.)27 b(W)-7 b(e)23 b(note)d(that)h(queuing) e(could)h(be)h(based)f(on)0 2001 y(destination)25 b(address)g(instead)h (of)f(source)g(address)h(with)g(much)0 2092 y(the)i(same)g (bene\002cial)g(ef)n(fect;)j(lik)o(e)n(wise,)f(an)e(autonomous)e(do-)0 2183 y(main)f(might)g(allocate)g(resources)g(to)h(pre\002x)e(blocks,)i (and)f(then)0 2275 y(to)15 b(hosts)h(within)f(each)g(block.)23 b(The)15 b(best)g(choice)g(is)h(lik)o(ely)f(a)h(mat-)0 2366 y(ter)j(of)f(AS)h(polic)o(y)-5 b(,)17 b(e.g.,)h(depending)e(on)i (whether)g(the)g(source)g(or)0 2457 y(destination)h(is)i(a)g(direct)f (customer)f(of)h(the)g(AS.)75 2549 y(One)25 b(important)f (consideration)f(is)j(that)f(we)h(limit)g(the)f(num-)0 2640 y(ber)31 b(of)h(queues)f(to)h(bound)e(the)i(implementation)e (comple)o(xity)0 2731 y(of)h(f)o(air)h(queuing.)56 b(T)-7 b(o)32 b(do)f(this,)k(we)c(again)g(f)o(all)h(back)e(on)i(our)0 2823 y(router)16 b(state)i(bound,)e(and)g(f)o(air)n(-queue)g(o)o(v)o (er)f(the)j(\003o)n(ws)f(that)g(ha)n(v)o(e)0 2914 y(their)33 b(capabilities)f(in)h(cache.)62 b(In)33 b(this)g(manner)m(,)h(the)f (higher)n(-)0 3005 y(rate)f(\003o)n(ws)h(that)f(send)g(more)f(rapidly)g (than)g Fq(N)r(=T)43 b Fr(will)33 b(f)o(airly)0 3097 y(share)e(the)g(bandwidth.)57 b(These)31 b(are)g(the)g(\003o)n(ws)h (that)f(we)h(care)0 3188 y(most)26 b(about)f(limiting.)43 b(W)-7 b(e)27 b(obtain)f(no)g(bounded)d(f)o(airness)j(for)0 3279 y(\003o)n(ws)i(that)f(sometimes)g(f)o(all)h(belo)n(w)f(this)h (rate,)h(b)n(ut)e(recall)h(that)0 3371 y(these)35 b(\003o)n(ws)g(are)g (limited)g(to)g Fp(2)p Fq(N)r(=T)46 b Fr(in)35 b(an)o(y)f(case.)69 b(Starv)n(a-)0 3462 y(tion)23 b(of)h(these)g(\003o)n(ws)g(is)h(pre)n(v) o(ented)c(because)i(all)h(pack)o(ets)g(from)0 3553 y(slo)n(w-rate)19 b(\003o)n(ws)i(are)f(queued)e(together)h(and,)g(when)g(necessary)-5 b(,)0 3645 y(dropped)24 b(randomly)-5 b(.)42 b(An)27 b(alternati)n(v)o(e)e(approach)f(w)o(ould)i(ha)n(v)o(e)0 3736 y(been)32 b(to)g(hash)h(the)f(\003o)n(ws)h(to)g(a)f(\002x)o(ed)g (number)f(of)h(queues)g(in)0 3827 y(the)23 b(manner)e(of)i(stochastic)g (f)o(air)g(queuing)e([22].)32 b(Ho)n(we)n(v)o(er)m(,)21 b(we)0 3919 y(belie)n(v)o(e)i(our)g(scheme)h(has)g(the)g(potential)f (to)i(pre)n(v)o(ent)d(attack)o(ers)0 4010 y(from)g(using)g(deliberate)g (hash)h(collisions)g(to)g(cro)n(wd)f(out)g(le)o(giti-)0 4101 y(mate)e(users.)0 4279 y Fs(3.10)99 b(Short)26 b(or)f(Slo)o(w)g (Connections)75 4395 y Fr(W)-7 b(e)20 b(also)f(brie\003y)g(consider)f (ho)n(w)h(short)f(or)h(slo)n(w)h(connections)0 4487 y(f)o(are)25 b(with)g(our)f(design.)39 b(These)25 b(connections)e(will)j(e)o (xperience)0 4578 y(a)g(higher)e(relati)n(v)o(e)h(o)o(v)o(erhead)d (than)j(long)g(or)g(f)o(ast)h(connections.)0 4669 y(In)k(the)g(e)o (xtreme,)g(the)o(y)g(may)f(require)g(a)h(capability)f(e)o(xchange)0 4761 y(for)18 b(each)g(pack)o(et.)23 b(Ho)n(we)n(v)o(er)m(,)17 b(se)n(v)o(eral)g(f)o(actors)h(suggest)g(that)h(our)0 4852 y(design)27 b(is)h(w)o(orkable)e(e)n(v)o(en)g(in)h(this)h(re)o (gime.)45 b(First,)29 b(the)e(ef)n(fect)0 4943 y(on)j(aggre)o(gate)e (ef)n(\002cienc)o(y)h(is)i(lik)o(ely)f(to)h(be)f(v)o(ery)f(small)i(gi)n (v)o(en)0 5035 y(that)g(most)g(bytes)f(belong)f(to)i(long)f(\003o)n (ws.)57 b(Second,)32 b(perhaps)0 5126 y(more)17 b(importantly)f(than)h (byte)h(o)o(v)o(erhead,)d(our)i(design)g(does)h(not)0 5217 y(introduce)29 b(an)o(y)h(added)g(latenc)o(y)-5 b(,)32 b(e.g.,)h(in)e(the)g(form)f(of)h(hand-)0 5309 y(shak)o(es.)39 b(This)25 b(is)g(because)g(capabilities)f(are)h (carried)f(on)g(e)o(xist-)0 5400 y(ing)j(pack)o(ets,)i(e.g.,)f(a)g (request)f(may)g(be)h(b)n(undled)d(with)j(a)g(TCP)2208 1728 y @beginspecial 0 @llx 0 @lly 890 @urx 1037 @ury 1780 @rwi @setspecial %%BeginDocument: figures/packets.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 5-alpha5 %%CreationDate: Mon Feb 7 22:52:57 2005 %%For: yxw@blood (Xiaowei Yang,,,) %%BoundingBox: 0 0 890 1037 %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 1037 moveto 0 0 lineto 890 0 lineto 890 1037 lineto closepath clip newpath -17.1 1184.2 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /reencdict 12 dict def /ReEncode { reencdict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName newfontname put newcodesandnames aload pop 128 1 255 { newfont /Encoding get exch /.notdef put } for newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat newfontname newfont definefont pop end } def /isovec [ 8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde 8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis 8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron 8#220 /dotlessi 8#230 /oe 8#231 /OE 8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling 8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis 8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot 8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus 8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph 8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine 8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf 8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute 8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring 8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute 8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute 8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve 8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply 8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex 8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave 8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring 8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute 8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute 8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve 8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide 8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex 8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def /Times-Roman /Times-Roman-iso isovec ReEncode /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 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 50 % Ellipse 7.500 slw n 7350 8475 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 8400 8475 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 6375 8475 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 7425 17625 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 8400 17625 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 6525 17625 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Polyline 0 slj 0 slc n 5100 2475 m 7350 2475 l 7350 3300 l 5100 3300 l cp gs col0 s gr % Polyline n 2850 4125 m 11850 4125 l 11850 4950 l 2850 4950 l cp gs col0 s gr % Polyline n 7350 4950 m 11850 4950 l 11850 5775 l 7350 5775 l cp gs col0 s gr % Polyline n 2850 4950 m 7350 4950 l 7350 5775 l 2850 5775 l cp gs col0 s gr % Polyline n 2850 5775 m 11850 5775 l 11850 6600 l 2850 6600 l cp gs col0 s gr % Polyline n 2850 6600 m 11850 6600 l 11850 7950 l 2850 7950 l cp gs col0 s gr % Polyline n 2850 7950 m 11850 7950 l 11850 9075 l 2850 9075 l cp gs col0 s gr % Polyline n 2850 9075 m 11850 9075 l 11850 9900 l 2850 9900 l cp gs col0 s gr % Polyline n 2850 9900 m 11850 9900 l 11850 11250 l 2850 11250 l cp gs col0 s gr % Polyline n 2850 12000 m 11850 12000 l 11850 12825 l 2850 12825 l cp gs col0 s gr % Polyline n 2850 14100 m 7350 14100 l 7350 14925 l 2850 14925 l cp gs col0 s gr % Polyline n 7350 14100 m 11850 14100 l 11850 14925 l 7350 14925 l cp gs col0 s gr % Polyline n 2850 12825 m 11850 12825 l 11850 14100 l 2850 14100 l cp gs col0 s gr % Polyline n 2850 17100 m 11850 17100 l 11850 18225 l 2850 18225 l cp gs col0 s gr % Polyline n 2850 18225 m 11850 18225 l 11850 19575 l 2850 19575 l cp gs col0 s gr % Polyline n 14096 19725 m 14104 19725 l gs col0 s gr % Polyline n 2850 2475 m 5100 2475 l 5100 3300 l 2850 3300 l cp gs col0 s gr % Polyline n 7350 2475 m 11850 2475 l 11850 3300 l 7350 3300 l cp gs col0 s gr % Polyline n 12075 14100 m 12375 14400 l 12375 16650 l 12525 16800 l 12375 17025 l 12375 19275 l 12075 19575 l gs col0 s gr % Polyline n 2850 15750 m 11850 15750 l 11850 17100 l 2850 17100 l cp gs col0 s gr % Polyline n 7852 14925 m 11856 14925 l 11856 15750 l 7852 15750 l cp gs col0 s gr % Polyline n 2850 14925 m 7848 14925 l 7848 15750 l 2850 15750 l cp gs col0 s gr /Times-Roman-iso ff 480.00 scf sf 5850 4650 m gs 1 -1 sc (header\(16\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 3375 5475 m gs 1 -1 sc (capability num\(8\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 7950 5475 m gs 1 -1 sc (capability ptr\(8\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 5850 6300 m gs 1 -1 sc (path-id 1 \(16\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 6000 12600 m gs 1 -1 sc (header\(16\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 7950 14625 m gs 1 -1 sc (capability ptr\(8\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 3375 14625 m gs 1 -1 sc (capability num\(8\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 5625 16575 m gs 1 -1 sc (capability 1 \(64\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 5625 19050 m gs 1 -1 sc (capability n \(64\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 6000 13650 m gs 1 -1 sc (flow nonce\(48\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 5100 7425 m gs 1 -1 sc (blank capability 1 \(64\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 5100 10725 m gs 1 -1 sc (blank capability n \(64\)) col0 sh gr /Times-Roman-iso ff 660.00 scf sf 300 7875 m gs 1 -1 sc (Request) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 7950 3000 m gs 1 -1 sc (upper protocol\(8\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 5475 3000 m gs 1 -1 sc (type\(4\)) col0 sh gr /Times-Roman-iso ff 660.00 scf sf 450 3075 m gs 1 -1 sc (Header) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 2850 3000 m gs 1 -1 sc (version\(4\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 5850 9675 m gs 1 -1 sc (path-id n \(16\)) col0 sh gr /Times-Roman-iso ff 660.00 scf sf 300 15900 m gs 1 -1 sc (Regular) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 12750 16950 m gs 1 -1 sc (ommitable) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 4650 15525 m gs 1 -1 sc (N\(10\)) col0 sh gr /Times-Roman-iso ff 480.00 scf sf 9075 15525 m gs 1 -1 sc (T\(6\)) col0 sh gr % here ends figure; $F2psEnd rs showpage %%Trailer %EOF %%EndDocument @endspecial 2000 1903 a Fn(Figur)o(e)20 b(5:)25 b Fm(T)-5 b(ypes)18 b(of)f(capability)j(pack)o(ets.)i(Sizes)c(ar)o(e)g(in)g (bits.)j(The)d(units)2000 1994 y(f)n(or)g Fg(N)23 b Fm(ar)o(e)18 b(KB;)f(the)g(units)g(f)n(or)g(T)g(ar)o(e)h(seconds.)2000 2265 y Fr(SYN)27 b(and)f(the)g(capability)g(returned)e(on)i(the)h(TCP)g (SYN)m(A)m(CK.)2000 2356 y(Third,)g(\003o)n(ws)h(in)f(our)f(design)g (are)h(de\002ned)f(on)g(sender)h(to)g(des-)2000 2448 y(tination)i(basis)h(because)e(the)o(y)h(are)g(logically)g(at)h(the)f (IP)h(le)n(v)o(el.)2000 2539 y(Thus)25 b(all)h(TCP)h(connections)c(or)j (DNS)g(e)o(xchanges)d(between)i(a)2000 2630 y(pair)20 b(of)g(hosts)g(can)g(tak)o(e)g(place)g(using)g(a)g(single)h(capability) -5 b(.)2000 2815 y Fs(3.11)99 b(Summary)2075 2931 y Fr(Our)17 b(design)h(is)h(based)e(on)h(capabilities,)g(information)e(carried)2000 3022 y(with)31 b(pack)o(ets)h(that)f(presents)g(e)n(vidence)f(that)i (the)g(destination)2000 3113 y(has)25 b(authorized)e(pack)o(ets)h(from) g(the)h(sender)-5 b(.)39 b(Senders)24 b(request)2000 3205 y(capabilities)c(using)h(a)g(protected)e(bootstrap)h(channel,)f (and)i(des-)2000 3296 y(tinations)27 b(grant)f(requests)h(to)g(allo)n (w)g(the)g(transfer)f(of)h Fq(N)37 b Fr(bytes)2000 3387 y(in)e Fq(T)46 b Fr(seconds)34 b(using)g(an)h(appropriate)d(polic)o(y) -5 b(.)67 b(Capability-)2000 3479 y(enabled)23 b(routers)h(at)i(trust)f (boundaries)d(and)j(locations)f(of)g(con-)2000 3570 y(gestion)j(v)n (alidate)g(capabilities)g(to)g(preferentially)f(drop)g(unau-)2000 3661 y(thorized)e(transfers)h(and)g(arbitrate)g(bandwidth)f(among)g (autho-)2000 3753 y(rized)k(ones.)50 b(Capabilities)29 b(are)g(cached)f(at)h(routers)f(for)g(band-)2000 3844 y(width)k(ef)n(\002cienc)o(y)f(for)h(long)f(transfers)h(and)g (piggyback)o(ed)d(on)2000 3935 y(pack)o(ets)d(to)i(a)n(v)n(oid)e(e)o (xtra)g(round)g(trips)h(for)f(short)h(connections.)2000 4027 y(The)33 b(state)h(and)f(computation)e(needed)h(at)i(routers)f(is) h(strictly)2000 4118 y(bounded)17 b(re)o(gardless)i(of)h(attack)o(er)g (beha)n(vior)-5 b(.)2000 4371 y Fs(4.)99 b(PR)m(O)l(T)n(OCOL)2075 4487 y Fr(In)16 b(this)h(section)g(we)g(describe)f(the)h(operation)e (of)h(our)g(protocol)2000 4578 y(in)26 b(terms)g(of)f(ho)n(w)h(hosts)g (and)f(routers)g(process)h(pack)o(ets.)41 b(This)2000 4669 y(pro)o(vides)25 b(a)i(more)g(detailed)f(vie)n(w)h(of)g(the)g (components)d(in)k(the)2000 4761 y(pre)n(vious)20 b(section)h(as)h(the) o(y)f(are)g(used)h(in)f(the)h(common)d(case)j(for)2000 4852 y(data)h(transfer;)g(we)h(consider)e(attacks)h(more)f (systematically)g(in)2000 4943 y(the)e(follo)n(wing)f(sections.)2075 5035 y(There)25 b(are)g(three)h(elements)f(in)h(our)f(protocol:)35 b(pack)o(ets)25 b(that)2000 5126 y(carry)18 b(capability)g (information;)f(hosts)i(that)g(act)h(as)g(senders)e(and)2000 5217 y(destinations;)23 b(and)e(routers)h(that)g(process)g(capability)g (informa-)2000 5309 y(tion.)h(W)-7 b(e)17 b(describe)e(each)h(in)g (turn.)23 b(W)-7 b(e)17 b(ignore)e(le)o(gac)o(y)f(concerns)2000 5400 y(for)19 b(the)i(moment,)d(returning)g(to)j(them)e(in)i(Section)f (8.)1929 5649 y(7)p eop end %%Page: 8 8 TeXDict begin 8 7 bop 0 83 a Fs(4.1)99 b(P)o(ack)o(ets)26 b(with)f(Capabilities)75 199 y Fr(Other)e(than)h(le)o(gac)o(y)e(traf)n (\002c,)i(all)h(pack)o(ets)e(carry)g(a)i(capability)0 291 y(header)18 b(that)g(e)o(xtends)g(the)h(beha)n(vior)e(of)h(IP)-9 b(.)19 b(W)-7 b(e)20 b(implement)d(this)0 382 y(as)28 b(a)f(shim)g(layer)f(abo)o(v)o(e)f(IP)-9 b(,)27 b(piggybacking)c (capability)j(infor)n(-)0 473 y(mation)k(on)g(normal)g(pack)o(ets)h(so) g(that)g(there)f(are)h(no)f(separate)0 565 y(capability)19 b(pack)o(ets.)75 656 y(There)25 b(are)g(tw)o(o)h(types)g(of)f(pack)o (ets)g(from)g(the)h(standpoint)e(of)0 747 y(capabilities:)44 b(request)29 b(pack)o(ets)g(and)g(re)o(gular)f(pack)o(ets.)53 b(The)o(y)0 839 y(share)28 b(an)h(identifying)d(capability)i(header)f (and)h(are)h(sho)n(wn)f(in)0 930 y(Figure)d(5.)42 b(Request)25 b(pack)o(ets)h(carry)f(a)h(list)h(of)e(blank)g(capabili-)0 1021 y(ties)e(and)e(path)g(identi\002ers)g(that)h(are)g(\002lled)f(in)h (by)g(routers)e(as)j(the)0 1112 y(request)k(tra)n(v)o(els)g(to)n(w)o (ards)f(the)i(destination.)45 b(Re)o(gular)26 b(pack)o(ets)0 1204 y(ha)n(v)o(e)i(tw)o(o)h(formats:)41 b(pack)o(ets)28 b(that)g(carry)g(both)f(a)i(\003o)n(w)g(nonce)0 1295 y(and)23 b(a)h(list)h(of)f(v)n(alid)f(capabilities)h(obtained)e(from)h (the)g(destina-)0 1386 y(tion,)32 b(and)d(pack)o(ets)g(that)h(carry)f (only)f(a)i(\003o)n(w)g(nonce.)52 b(\(Recall)0 1478 y(that)21 b(a)g(\003o)n(w)g(is)h(de\002ned)d(by)i(a)g(source)f(and)g(a)h (destination)f(IP)h(ad-)0 1569 y(dress.\))26 b(A)21 b(re)o(gular)e (pack)o(et)h(with)h(a)g(list)g(of)f(capabilities)h(may)f(be)0 1660 y(used)f(to)h(request)f(a)h(ne)n(w)g(set)g(of)g(capabilities.)k(W) -7 b(e)21 b(refer)e(to)h(such)0 1752 y(pack)o(ets)26 b(as)g(rene)n(w)o(al)f(pack)o(ets.)42 b(If)26 b(a)g(re)o(gular)e(pack)o (et)h(does)h(not)0 1843 y(pass)f(the)g(capability)f(check,)g(it)i(may)e (be)h(demoted)e(to)i(lo)n(w)f(pri-)0 1934 y(ority)f(traf)n(\002c)g (that)g(is)i(treated)e(as)h(le)o(gac)o(y)e(traf)n(\002c.)34 b(Such)23 b(pack)o(ets)0 2026 y(are)d(called)g(demoted)f(pack)o(ets.)75 2117 y(W)-7 b(e)21 b(use)f(the)f(lo)n(west)h(tw)o(o)h(bits)f(of)f(the)h Ff(type)g Fr(\002eld)g(in)g(the)f(capa-)0 2208 y(bility)k(header)f(to)h (indicate)f(the)h(type)g(and)f(the)h(format)f(of)h(pack-)0 2300 y(ets:)i(request)16 b(pack)o(et,)h(re)o(gular)f(pack)o(et)h(with)g (a)h(\003o)n(w)f(nonce)f(only)-5 b(,)0 2391 y(re)o(gular)22 b(pack)o(et)h(with)h(both)f(a)h(\003o)n(w)g(nonce)f(and)g(a)h(list)h (of)e(capa-)0 2482 y(bilities,)30 b(and)d(rene)n(w)o(al)g(pack)o(et.)47 b(One)27 b(bit)h(in)g(the)f Ff(type)h Fr(\002eld)g(is)0 2574 y(used)g(by)h(routers)e(to)i(indicate)f(that)h(the)f(pack)o(et)g (has)h(been)f(de-)0 2665 y(moted.)33 b(The)23 b(remaining)e(bit)j (indicates)e(whether)h(there)f(is)i(also)0 2756 y(return)i(information) g(being)g(carried)h(in)h(the)f(re)n(v)o(erse)g(direction)0 2848 y(to)18 b(a)g(sender)-5 b(.)24 b(This)18 b(information)d(may)j (be:)23 b(a)c(list)g(of)e(capabilities)0 2939 y(granted)h(by)i(the)g (destination;)f(which)g(capabilities)h(are)g(cached;)0 3030 y(or)j(a)i(demote)d(noti\002cation)h(that)h(solicits)g(a)h(ne)n(w) e(capability)g(re-)0 3122 y(quest)i(\(e.g.,)h(due)f(to)g(a)h(route)f (change\).)39 b(An)o(y)24 b(return)h(informa-)0 3213 y(tion)20 b(follo)n(ws)g(the)g(capability)f(payload.)75 3304 y(Each)28 b(capability)f(is)j(as)f(described)e(in)i(Section)f(3:) 42 b(a)28 b(64)h(bit)0 3396 y(v)n(alue,)22 b(brok)o(en)e(do)n(wn)h (into)h(1)g(bit)g(used)g(for)f(cache)g(signaling,)h(7)0 3487 y(bits)d(of)f(router)f(timestamp)g(in)h(seconds)g(\(a)g(modulo)f (128)g(clock\),)0 3578 y(and)f(56)g(bits)h(of)f(a)h(k)o(e)o(yed)e (hash.)23 b(Although)15 b(routers)h(count)f(bytes,)0 3670 y(the)20 b(units)g(for)g Fq(N)30 b Fr(in)20 b(Figure)f(5)i(are)f (in)g(KB,)h(for)f(compactness.)0 3823 y Fs(4.2)99 b(Senders)27 b(and)e(Destinations)75 3939 y Fr(T)-7 b(o)21 b(send)g(to)g(a)h (destination)e(for)g(which)h(it)h(has)f(no)g(v)n(alid)f(capa-)0 4030 y(bilities,)i(a)g(sender)e(must)i(\002rst)g(send)f(a)g(request.)28 b(This)21 b(will)h(typi-)0 4121 y(cally)e(be)h(combined)d(with)j(the)g (\002rst)g(pack)o(et)f(that)g(it)i(sends,)e(such)0 4213 y(as)27 b(a)g(TCP)g(SYN.)g(When)f(the)g(request)g(arri)n(v)o(es)f(at)i (the)f(destina-)0 4304 y(tion,)17 b(it)i(must)e(decide)g(whether)f(to)i (grant)e(or)h(refuse)g(the)g(transfer)-5 b(.)0 4395 y(This)17 b(is)i(a)e(polic)o(y)f(issue,)j(and)d(we)i(described)e(some)h(simple)g (poli-)0 4487 y(cies)i(in)f(Section)g(3.3.)24 b(If)18 b(the)g(destination)f(chooses)h(to)g(authorize)0 4578 y(the)23 b(transfer)m(,)e(it)j(sends)f(a)g(response)e(back)h(to)h(the)g (sender)m(,)f(again)0 4669 y(combined)d(with)i(another)f(pack)o(et,)g (such)h(as)h(a)f(TCP)h(SYN)m(A)m(CK.)0 4761 y(\(This)k(SYN)m(A)m(CK)i (will)f(also)g(carry)f(a)h(request)f(for)g(the)h(re)n(v)o(erse)0 4852 y(direction.)37 b(W)-7 b(e)25 b(omit)g(this)g(re)n(v)o(erse)e (setup)i(for)f(ease)h(of)f(e)o(xposi-)0 4943 y(tion,)k(as)f(it)g (occurs)f(in)h(e)o(xactly)f(the)g(same)h(manner)e(as)j(the)e(for)n(-)0 5035 y(w)o(ard)32 b(setup.\))60 b(If)32 b(the)g(destination)f(had)g (instead)h(refused)f(the)0 5126 y(transfer)m(,)j(it)f(may)f(send)h(an)f (ICMP)h(error)f(noti\002cation)f(to)i(the)0 5217 y(sender)-5 b(.)75 5309 y(Once)21 b(the)h(sender)f(recei)n(v)o(es)g(capabilities,)h (the)g(remainder)e(of)0 5400 y(the)36 b(transfer)e(is)j(straightforw)o (ard.)69 b(The)35 b(sender)g(sends)h(data)2000 83 y(pack)o(ets)17 b(with)g(the)g(capabilities)f(that)h(are)g(needed)f(to)h(ensure)f(that) 2000 174 y(the)k(pack)o(ets)f(will)i(pass)f(through)e(the)h(netw)o (ork.)24 b(Initially)19 b(this)i(is)2000 266 y(the)32 b(entire)g(list)h(of)f(capabilities.)60 b(The)32 b(destination)f (observ)o(es)2000 357 y(whether)25 b(an)o(y)h(routers)f(set)i(the)f (cache)g(bits)h(for)e(their)i(capabili-)2000 448 y(ties,)19 b(and)f(if)g(so)h(con)m(v)o(e)o(ys)d(the)i(non-cached)e(capabilities)i (back)f(to)2000 540 y(the)23 b(sender)-5 b(.)34 b(In)23 b(the)h(normal)e(case,)i(the)g(\003o)n(w)f(nonce)f(and)h(capa-)2000 631 y(bilities)c(will)h(be)f(cached)f(at)h(e)n(v)o(ery)f(router)m(,)f (enabling)g(the)i(source)2000 722 y(to)32 b(transmit)g(most)h(pack)o (ets)f(carrying)f(only)g(the)i(\003o)n(w)f(nonce.)2000 814 y(The)18 b(sender)f(also)h(runs)g(the)g(same)g(model)f(of)h (capability)f(e)o(xpira-)2000 905 y(tion)k(and)g(cache)g(e)o(xpiration) f(as)i(routers)f(to)h(conserv)n(ati)n(v)o(ely)d(de-)2000 996 y(termine)e(when)g(routers)h(will)g(ha)n(v)o(e)g(their)f (capabilities)h(in)g(cache,)2000 1088 y(and)j(when)h(to)g(rene)n(w)f (the)h(capabilities.)30 b(The)22 b(destination)f(does)2000 1179 y(not)15 b(need)h(to)g(model)f(router)g(beha)n(vior)-5 b(.)22 b(Additionally)-5 b(,)15 b(the)h(desti-)2000 1270 y(nation)h(may)g(echo)h(back)f(a)h(router')-5 b(s)17 b(demote)g(signal)h(to)g(a)g(sender)2000 1362 y(if)31 b(there)g(w)o(as)g(a)h(route)e(change)g(or)g(f)o(ailure.)57 b(In)31 b(this)g(case)h(the)2000 1453 y(sender)19 b(must)h(request)g(a) h(ne)n(w)f(set)h(of)f(capabilities.)2000 1617 y Fs(4.3)99 b(Routers)2075 1734 y Fr(Routers)31 b(route)g(and)h(forw)o(ard)e(pack)o (ets)h(in)h(the)g(same)g(man-)2000 1825 y(ner)22 b(as)h(is)g(done)e(in) i(the)f(Internet)f(today)-5 b(,)21 b(and)h(additionally)f(pro-)2000 1916 y(cess)k(pack)o(ets)g(according)d(to)j(the)g(capability)e (information)f(that)2000 2008 y(the)o(y)i(carry)-5 b(.)39 b(At)25 b(a)h(high)e(le)n(v)o(el,)i(routers)e(share)h(the)h(capacity)e (of)2000 2099 y(each)g(outgoing)f(link)h(between)g(three)h(classes)g (of)g(traf)n(\002c.)38 b(This)2000 2190 y(is)20 b(sho)n(wn)f(in)g (Figure)g(2.)24 b(Request)c(pack)o(ets,)f(which)f(do)h(not)g(ha)n(v)o (e)2000 2282 y(v)n(alid)k(capabilities,)g(are)h(guaranteed)d(access)j (to)f(a)h(small,)g(\002x)o(ed)2000 2373 y(fraction)15 b(of)i(the)f(link)h(\(5\045)f(is)i(our)d(def)o(ault\))h(and)g(are)h (rate-limited)2000 2464 y(not)25 b(to)g(e)o(xceed)f(this)i(amount.)39 b(Re)o(gular)25 b(pack)o(ets)g(with)g(associ-)2000 2556 y(ated)j(capabilities)g(may)f(use)i(the)f(remainder)e(of)i(the)g (capacity)-5 b(.)2000 2647 y(W)e(e)31 b(describe)f(the)h(processing)e (of)h(these)h(tw)o(o)f(classes)i(belo)n(w)-5 b(.)2000 2738 y(The)18 b(third)g(class)i(is)f(le)o(gac)o(y)e(traf)n(\002c.)24 b(This)19 b(is)h(treated)e(as)h(the)g(lo)n(w-)2000 2829 y(est)32 b(priority)-5 b(,)33 b(obtaining)d(bandwidth)g(that)i(is)g (not)g(needed)e(for)2000 2921 y(either)24 b(requests)g(or)g(re)o(gular) f(pack)o(ets)i(in)f(the)h(traditional)e(FIFO)2000 3012 y(manner)-5 b(.)2023 3177 y Fe(4.3.1)90 b(Requests)2075 3293 y Fr(If)25 b(a)h(router)f(does)g(not)h(ha)n(v)o(e)f(space)g(for)h (an)f(arri)n(ving)f(request)2000 3384 y(pack)o(et,)34 b(the)e(last)h(pack)o(et)e(that)h(w)o(ould)f(be)h(sent)h(according)c (to)2000 3475 y(f)o(air)e(queueing)e(is)k(dropped,)d(and)h(a)h (rate-limited)e(ICMP)i(error)2000 3567 y(message)h(is)i(returned)d(to)i (the)g(sender)-5 b(.)54 b(Assuming)29 b(the)h(arri)n(v-)2000 3658 y(ing)h(pack)o(et)g(is)i(not)f(dropped,)g(the)f(router)g(then)g (modi\002es)h(the)2000 3749 y(pack)o(et)e(to)g(add)g(a)h (pre-capability)c(and)j(path)g(identi\002er)g(at)h(the)2000 3841 y(end)i(of)h(the)g(list.)68 b(The)33 b(pre-capability)f(is)j (computed)d(as)j(the)2000 3932 y(hash)29 b(of)f(a)i(router)e(secret,)j (the)e(current,)g(local)g(router)f(time)h(in)2000 4023 y(seconds)c(using)h(its)h(modulo)e(128)g(clock,)i(and)e(the)i(source)e (and)2000 4115 y(destination)g(IP)h(addresses)f(of)h(the)g(pack)o(et.) 41 b(This)26 b(is)h(sho)n(wn)e(in)2000 4206 y(Figure)16 b(3.)24 b(The)17 b(pre-capability)e(is)j(written)f(to)g(the)g(pack)o (et,)g(com-)2000 4297 y(plete)j(with)h(timestamp,)e(and)h(the)h(cache)f (bit)g(cleared.)25 b(The)20 b(path)2000 4389 y(identi\002er)25 b(is)h(a)g(constant)f(that)h(identi\002es)f(the)h(incoming)e(inter)n(-) 2000 4480 y(f)o(ace,)17 b(run)e(through)g(a)h(pseudo-random)d(function) h(so)j(that)g(dif)n(fer)n(-)2000 4571 y(ent)23 b(routers)f(are)g(lik)o (ely)h(to)g(produce)e(v)n(alues)i(spread)f(across)h(the)2000 4663 y(identi\002er)j(space.)45 b(The)27 b(router)f(then)g(f)o(air)h (queues)f(the)h(request)2000 4754 y(for)18 b(onw)o(ard)g(transmission,) g(in)h(our)f(implementation)f(using)i(the)2000 4845 y(incoming)j (interf)o(ace)g(and)h(the)h(pre)n(vious)e(hop')-5 b(s)23 b(path)g(identi\002er)2000 4937 y(to)d(select)h(the)f(queue.)2023 5101 y Fe(4.3.2)90 b(Re)l(gular)21 b(P)-7 b(ac)n(k)o(ets)2075 5217 y Fr(Re)o(gular)14 b(pack)o(ets)h(may)g(carry)f(only)g(a)i(\003o)n (w)f(nonce,)g(or)g(a)h(nonce)2000 5309 y(as)j(well)g(as)g(a)g(list)h (of)e(capabilities.)24 b(The)18 b(purpose)f(of)h(processing)2000 5400 y(at)g(a)f(router)g(is)h(simply)f(to)g(check)g(that)g(the)h(pack)o (et)f(is)h(authorized,)1929 5649 y(8)p eop end %%Page: 9 9 TeXDict begin 9 8 bop 197 1025 a @beginspecial 0 @llx 0 @lly 904 @urx 615 @ury 1808 @rwi @setspecial %%BeginDocument: figures/dumbbell.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: stdin %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Mon Feb 7 18:07:10 2005 %%For: yxw@marlon (Xiaowei Yang,,,) %%BoundingBox: 0 0 904 615 %%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 615 moveto 0 0 lineto 904 0 lineto 904 615 lineto closepath clip newpath -53.9 657.6 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 slj 0 slc 0.06299 0.06299 sc % % Fig objects follow % 7.500 slw % Ellipse n 1935 2970 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 1935 3285 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 1935 2655 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 1935 8010 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 1935 8325 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr % Ellipse n 1935 7695 45 45 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 30.000 slw % Ellipse n 10576 5488 542 542 0 360 DrawEllipse gs col0 s gr % Ellipse n 1969 1848 542 542 0 360 DrawEllipse gs col0 s gr % Ellipse n 1980 4095 542 542 0 360 DrawEllipse gs col0 s gr % Ellipse n 1968 6746 542 542 0 360 DrawEllipse gs col0 s gr % Ellipse n 1993 9282 542 542 0 360 DrawEllipse gs col0 s gr % Ellipse n 12818 3394 542 542 0 360 DrawEllipse gs col0 s gr % Ellipse n 12825 7554 542 542 0 360 DrawEllipse gs col0 s gr % Ellipse n 4756 5487 542 542 0 360 DrawEllipse gs col0 s gr % Polyline n 5310 5490 m 10035 5490 l gs col0 s gr % Polyline n 12420 3780 m 10980 5085 l gs col0 s gr % Polyline n 10980 5850 m 12420 7200 l gs col0 s gr % Polyline n 2295 2295 m 4410 5085 l gs col0 s gr % Polyline n 2430 4410 m 4230 5265 l gs col0 s gr % Polyline n 2520 6570 m 4230 5670 l gs col0 s gr % Polyline n 2340 8865 m 4365 5850 l gs col0 s gr /Times-Roman ff 540.00 scf sf 13410 2880 m gs 1 -1 sc (server) col0 sh gr /Times-Roman ff 540.00 scf sf 11655 4680 m gs 1 -1 sc (10ms) col0 sh gr /Times-Roman ff 540.00 scf sf 11700 6435 m gs 1 -1 sc (10ms) col0 sh gr /Times-Roman ff 540.00 scf sf 3240 3150 m gs 1 -1 sc (10ms) col0 sh gr /Times-Roman ff 540.00 scf sf 855 1080 m gs 1 -1 sc (10 legitimate clients) col0 sh gr /Times-Roman ff 540.00 scf sf 900 10440 m gs 1 -1 sc (1~100 attackers) col0 sh gr /Times-Roman ff 540.00 scf sf 6300 5130 m gs 1 -1 sc (10Mb, 10ms) col0 sh gr /Times-Roman ff 540.00 scf sf 6525 6210 m gs 1 -1 sc (bottleneck) col0 sh gr /Times-Roman ff 540.00 scf sf 13410 7065 m gs 1 -1 sc (colluder) col0 sh gr $F2psEnd rs %%EndDocument @endspecial 490 1199 a Fn(Figur)o(e)20 b(6:)25 b Fm(Simulation)18 b(topology)0 1473 y Fr(update)29 b(the)i(cached)e(information)f(as)j (needed,)h(and)e(schedule)0 1565 y(the)23 b(pack)o(et)g(for)g(forw)o (arding.)32 b(This)23 b(logic)g(is)i(detailed)d(because)0 1656 y(of)i(the)g(combination)e(of)j(man)o(y)e(simple)h(cases.)38 b(W)-7 b(e)26 b(pro)o(vide)c(it)0 1747 y(for)e(completeness.)75 1839 y(T)-7 b(o)19 b(forw)o(ard)f(a)i(re)o(gular)e(pack)o(et,)h(a)h (router)e(\002rst)i(tries)g(to)g(locate)0 1930 y(an)32 b(entry)f(for)g(the)h(\003o)n(w)g(using)g(the)g(source)f(and)g(the)h (destina-)0 2021 y(tion)20 b(IP)h(address)g(from)e(the)i(pack)o(et.)26 b(An)21 b(entry)e(will)j(e)o(xist)f(if)g(the)0 2113 y(router)j(has)h (recei)n(v)o(ed)f(a)h(v)n(alid)g(re)o(gular)f(pack)o(et)g(from)g(that)i (\003o)n(w)0 2204 y(in)d(the)h(recent)e(past.)35 b(The)23 b(cache)f(entry)h(stores)g(the)h(v)n(alid)e(capa-)0 2295 y(bility)-5 b(,)27 b(the)g(\003o)n(w)g(nonce,)g(the)f(authorized)f (bytes)h(to)h(send)f(\()p Fq(N)9 b Fr(\),)0 2387 y(the)20 b(v)n(alid)f(time)i(\()p Fq(T)12 b Fr(\),)18 b(and)i(the)g Ff(ttl)g Fr(and)g(byte)f(count)g(as)i(described)0 2478 y(in)f(Section)g(3.6.)75 2569 y(If)k(there)h(is)h(a)f(cached)f(entry)g (for)g(the)h(\003o)n(w)-5 b(,)26 b(the)f(router)f(com-)0 2661 y(pares)f(the)g(\003o)n(w)g(nonce)f(to)h(the)g(pack)o(et.)32 b(If)23 b(there)g(is)h(a)f(match,)g(it)0 2752 y(further)i(checks)g(the) i(byte)e(count)h(and)f(the)h Ff(ttl)p Fr(,)j(increments)c(the)0 2843 y(byte)g(count,)i(and)e(then)g(f)o(air)h(queues)f(the)h(pack)o(et) f(as)i(described)0 2935 y(belo)n(w)-5 b(.)23 b(If)c(the)f(\003o)n(w)h (nonce)f(does)g(not)g(match,)g(this)i(could)d(be)i(the)0 3026 y(\002rst)30 b(pack)o(et)f(with)h(a)g(rene)n(wed)e(capability)-5 b(,)31 b(and)e(so)h(the)f(capa-)0 3117 y(bility)21 b(is)i(check)o(ed)d (and)h(if)h(v)n(alid,)f(replaced)f(in)i(the)f(cache)g(entry)-5 b(.)0 3209 y(Equi)n(v)n(alently)g(,)14 b(if)j(there)f(is)h(not)f(a)h (cached)e(entry)h(for)g(the)g(\003o)n(w)-5 b(,)17 b(the)0 3300 y(capability)24 b(is)i(check)o(ed,)e(and)h(if)g(v)n(alid,)g(it)h (is)f(updated)f(with)h(the)0 3391 y(ne)n(w)f(information,)f(and)g(the)h (capability)g(is)h(mark)o(ed)e(as)i(cached)0 3483 y(in)31 b(the)g(pack)o(et.)57 b(The)31 b(capability)f(v)n(alidation)f(uses)j (the)f(infor)n(-)0 3574 y(mation)20 b(in)g(the)g(pack)o(et)g(\226)g (the)h(source)e(address,)h(destination)f(ad-)0 3665 y(dress,)25 b(timestamp,)g Fq(N)9 b Fr(,)25 b(and)f Fq(T)35 b Fr(\226)25 b(plus)f(the)g(router')-5 b(s)23 b(secret,)j(to)0 3757 y(recompute)18 b(the)i(tw)o(o)g(hash)f(functions)f(to)i(produce)e(the)i (capabil-)0 3848 y(ity)h(v)n(alue.)27 b(The)20 b(router)g(also)h (checks)g(that)g(the)g(byte)f(count)g(does)0 3939 y(not)c(e)o(xceed)g Fq(N)9 b Fr(,)18 b(and)e(the)g(current)g(time)h(doesnot)e(e)o(xceed)h (the)h(ca-)0 4030 y(pability)22 b(e)o(xpiration)e(time:)30 b(timestamp)22 b(+)h Fq(T)12 b Fr(,)22 b(and)g(updates)g(the)0 4122 y(entry')-5 b(s)26 b Fq(ttl)r Fr(.)42 b(An)o(y)25 b(pack)o(et)g(with)i(a)f(v)n(alid)g(capability)f(or)g(a)i(\003o)n(w)0 4213 y(nonce)c(is)i(scheduled)d(using)i(f)o(air)f(queuing,)g(in)h(our)f (implemen-)0 4304 y(tation,)f(across)h(the)f(source)g(addresses)g(of)g (the)h(\003o)n(ws)g(cached)e(at)0 4396 y(the)f(router)-5 b(.)75 4487 y(If)27 b(the)g(pack)o(et')-5 b(s)27 b(\003o)n(w)g(nonce)f (is)i(not)e(v)n(alid)h(and)g(there)f(is)i(no)0 4578 y(capability)19 b(pro)o(vided)f(with)j(the)f(pack)o(et,)g(or)g(if)h(the)f(capability)g (is)0 4670 y(not)29 b(v)n(alid,)i(the)f(pack)o(et)f(is)i(mark)o(ed)d (as)i(demoted)e(and)h(queued)0 4761 y(along)19 b(with)i(le)o(gac)o(y)d (pack)o(ets.)75 4852 y(Finally)-5 b(,)29 b(the)f(capability)e(in)i(the) g(pack)o(et)f(is)i(updated)d(in)i(tw)o(o)0 4944 y(cases.)c(First,)17 b(if)e(the)h(pack)o(et)e(is)i(a)g(rene)n(w)o(al,)f(a)h(fresh)f (pre-capability)0 5035 y(is)23 b(minted)e(and)g(placed)g(in)h(the)g (pack)o(et.)29 b(Second,)20 b(the)i(cache)g(bit)0 5126 y(is)f(set)g(if)g(the)f(capability)f(is)i(cached.)0 5375 y Fs(5.)99 b(SIMULA)-9 b(TION)25 b(RESUL)-9 b(TS)2075 83 y Fr(In)22 b(this)h(section,)g(we)g(use)f Ff(ns)h Fr(to)g(simulate)g(our)e(design)h(to)h(see)2000 174 y(ho)n(w)k(well)h (it)g(limits)h(the)e(impact)g(of)h(DoS)f(\003oods.)47 b(W)-7 b(e)29 b(set)f(up)2000 266 y(\002x)o(ed)20 b(length)f(transfers) h(between)g(le)o(gitimate)g(users)h(and)f(a)h(des-)2000 357 y(tination)27 b(under)f(v)n(arious)h(attacks.)48 b(W)-7 b(e)29 b(then)f(measure:)39 b(i\))29 b(the)2000 448 y(a)n(v)o(erage)23 b(fraction)h(of)g(completed)g(transfers,)h(and)f (ii\))h(the)g(a)n(v)o(er)n(-)2000 540 y(age)k(time)h(of)f(the)g (transfers)g(that)g(complete.)52 b(W)-7 b(e)30 b(do)f(this)h(for)2000 631 y(both)23 b(our)g(design)h(and)f(SIFF)i(to)f(pro)o(vide)e(a)i (point)g(of)f(compari-)2000 722 y(son)h(with)g(a)h(simpler)e (capability)g(scheme.)37 b(These)24 b(metrics)g(are)2000 814 y(useful)g(because)g(a)g(successful)h(DoS)f(attack)h(will)g(cause)f (hea)n(vy)2000 905 y(loss)17 b(that)f(will)i(both)d(slo)n(w)i(le)o (gitimate)f(transfers)g(and)f(e)n(v)o(entually)2000 996 y(pre)n(v)o(ent)j(them)i(from)f(completing.)2075 1088 y(W)-7 b(e)21 b(simulate)f(the)h(dumbbell)d(topology)g(sho)n(wn)i(in)g (Figure)g(6.)2000 1179 y(The)31 b(bottleneck)g(link)g(in)h(our)f (simulation)g(is)i(pro)o(visioned)c(to)2000 1270 y(gi)n(v)o(e)16 b(a)h(le)o(gitimate)f(user)g(a)h(nominal)f(throughput)d(of)k(1Mb/s)f(o) o(v)o(er)2000 1362 y(a)j(bottleneck)f(link)h(with)g(a)g(nominal)f (capacity)g(of)h(10Mb/s.)24 b(The)2000 1453 y(R)-5 b(TT)25 b(is)h(60ms.)39 b(Each)24 b(attack)o(er)h(\003oods)f(at)i(the)f(rate)g (of)g(a)g(le)o(git-)2000 1544 y(imate)30 b(user)m(,)h(1Mb/s,)h(and)d (we)h(v)n(ary)f(intensity)g(of)h(the)f(attacks)2000 1636 y(from)i(1/10)g(of)h(the)h(bottleneck)d(bandwidth)h(to)h(10)g(times)h (the)2000 1727 y(bottleneck)19 b(bandwidth)g(by)i(v)n(arying)e(the)i (number)e(of)i(attack)o(ers)2000 1818 y(from)g(1)g(to)h(100.)29 b(W)-7 b(e)23 b(use)f(these)g(relati)n(v)o(ely)f(lo)n(w)h(rates)g(to)g (speed)2000 1910 y(the)k(simulation,)i(since)e(the)h(k)o(e)o(y)f(v)n (ariables)g(are)h(the)f(ratios)h(be-)2000 2001 y(tween)c(attack,)h(le)o (gitimate)f(user)g(and)g(bottleneck)e(bandwidths,)2000 2092 y(gi)n(v)o(en)c(that)i(there)f(is)h(a)g(bandwidth-delay)d(product) g(suf)n(\002cient)i(to)2000 2183 y(a)n(v)n(oid)i(small)g(windo)n(w)g (ef)n(fects.)2075 2275 y(Each)14 b(le)o(gitimate)h(user)g(sends)g(a)h (20KB)f(\002le)h(a)f(thousand)f(times,)2000 2366 y(the)19 b(ne)o(xt)g(transfer)g(starting)g(after)g(the)g(pre)n(vious)f(one)h (completes)2000 2457 y(or)e(aborts)g(due)f(to)i(e)o(xcessi)n(v)o(e)e (loss.)25 b(T)-7 b(o)17 b(create)g(a)h(scenario)e(that)i(is)2000 2549 y(not)g(highly)f(dependent)f(on)i(speci\002c)g(implementation)e (choices,)2000 2640 y(we)i(also)h(use)f(a)h(TCP)g(that)f(is)h (modi\002ed)e(to)h(ha)n(v)o(e)g(a)g(more)g(aggres-)2000 2731 y(si)n(v)o(e)f(connection)e(establishment)h(algorithm.)23 b(Speci\002cally)-5 b(,)17 b(ca-)2000 2823 y(pability)d(requests)h(are) g(piggyback)o(ed)d(on)j(TCP)h(SYNs,)h(the)e(time-)2000 2914 y(out)32 b(for)g(TCP)h(SYNs)g(is)h(\002x)o(ed)d(at)i(one)f(second) g(\(without)f(e)o(x-)2000 3005 y(ponential)h(back)o(of)n(f\),)i(and)f (up)g(to)g(eight)g(retransmissions)g(are)2000 3097 y(performed.)42 b(TCP)28 b(data)f(e)o(xchange)e(aborts)h(the)h(connection)e(if)2000 3188 y(its)32 b(retransmission)f(timeout)g(for)g(a)h(re)o(gular)e(data) h(pack)o(et)g(e)o(x-)2000 3279 y(ceeds)25 b(16)g(seconds.)41 b(W)-7 b(e)26 b(also)g(rate-limit)f(capability)g(requests)2000 3371 y(to)d Fp(1\045)g Fr(of)g(the)g(link)g(capacity)-5 b(,)21 b(do)n(wn)f(from)h(our)h(def)o(ault)f(of)h Fp(5\045)p Fr(,)2000 3462 y(to)e(stress)h(our)f(design.)2075 3553 y(W)-7 b(e)16 b(note)f(that)g(TCP)h(inef)n(\002ciencies)e(limit)i(the)f (ef)n(fecti)n(v)o(e)f(through-)2000 3645 y(put)29 b(of)h(a)g(le)o (gitimate)f(user)h(to)g(be)f(no)h(more)e(than)i(533Kb/s)e(in)2000 3736 y(our)34 b(scenario,)k(gi)n(v)o(en)c(the)h(transfer)f(of)g(20KB)h (with)h(a)f(60ms)2000 3827 y(R)-5 b(TT)f(.)34 b(This)h(implies)g(that)f (there)g(is)i(virtually)d(no)h(bandwidth)2000 3919 y(contention)25 b(with)i(a)g(pool)f(of)g(10)h(le)o(gitimate)f(users)h(\226)g(the)f (con-)2000 4010 y(tention)21 b(ef)n(fects)h(we)h(see)g(come)e(directly) h(from)f(massed)h(attack-)2000 4101 y(ers.)2000 4279 y Fs(5.1)99 b(Legacy)25 b(P)o(ack)o(et)h(Flood)2075 4395 y Fr(The)g(\002rst)i(scenario)f(we)g(consider)f(is)i(that)f(of)g(each)g (attack)o(er)2000 4487 y(\003ooding)18 b(the)i(destination)f(with)h(le) o(gac)o(y)e(traf)n(\002c)i(at)g(1Mb/s.)25 b(Fig-)2000 4578 y(ure)g(7)h(sho)n(ws)f(the)h(fraction)f(of)g(completions)f(and)h (the)h(a)n(v)o(erage)2000 4669 y(completion)19 b(time)j(for)e(our)h (design)g(in)g(comparison)e(with)j(SIFF)-7 b(,)2000 4761 y(and)26 b(with)g(current)f(Internet.)42 b(W)-7 b(e)27 b(see)g(that)f(our)g(design)f(main-)2000 4852 y(tains)i(the)g(fraction) e(of)i(completions)e(near)h Fp(100\045)h Fr(and)f(the)h(a)n(v-)2000 4943 y(erage)g(completion)g(time)h(remains)g(small)h(as)g(the)f (intensity)g(of)2000 5035 y(attacks)i(increases.)54 b(That)30 b(is,)j(our)d(design)f(limits)i(the)f(impact)2000 5126 y(of)d(le)o(gac)o(y)f(traf)n(\002c)h(\003oods.)47 b(This)28 b(is)h(because)e(we)h(treat)f(le)o(gac)o(y)2000 5217 y(traf)n(\002c)h(as)h(lo)n(wer)f(priority)f(than)h(request)g(traf)n (\002c.)49 b(SIFF)29 b(treats)2000 5309 y(both)g(le)o(gac)o(y)g(and)g (request)h(pack)o(ets)g(as)h(equally)e(lo)n(w)h(priority)2000 5400 y(traf)n(\002c.)69 b(Therefore,)37 b(when)d(the)i(intensity)e(of)h (le)o(gac)o(y)f(traf)n(\002c)1929 5649 y(9)p eop end %%Page: 10 10 TeXDict begin 10 9 bop 200 1050 a @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 1800 @rwi @setspecial %%BeginDocument: figures/legacy-rate.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: legacy-rate.eps %%Creator: gnuplot 4.0 patchlevel 0 %%CreationDate: Wed Feb 9 10:28:54 2005 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -120 def /dl {10.0 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /Rounded false def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /N {newpath moveto} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /AL { stroke userlinewidth 2 div setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /UL { dup gnulinewidth mul /userlinewidth exch def dup 1 lt {pop 1} if 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /LTw { PL [] 1 setgray } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def /BoxColFill { gsave Rec /Fillden exch def currentrgbcolor /ColB exch def /ColG exch def /ColR exch def /ColR ColR Fillden mul Fillden sub 1 add def /ColG ColG Fillden mul Fillden sub 1 add def /ColB ColB Fillden mul Fillden sub 1 add def ColR ColG ColB setrgbcolor fill grestore } def % % PostScript Level 1 Pattern Fill routine % Usage: x y w h s a XX PatternFill % x,y = lower left corner of box to be filled % w,h = width and height of box % a = angle in degrees between lines and x-axis % XX = 0/1 for no/yes cross-hatch % /PatternFill { gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 M 0 PFs V } for 0 PFa 6 get ne { 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 2 1 roll M PFs 0 V } for } if stroke grestore } def % /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 360 scalefont setfont 1.000 UL LTb 1836 1080 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0) Rshow grestore 1.000 UL LTb 1836 1721 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.2) Rshow grestore 1.000 UL LTb 1836 2363 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.4) Rshow grestore 1.000 UL LTb 1836 3004 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.6) Rshow grestore 1.000 UL LTb 1836 3646 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.8) Rshow grestore 1.000 UL LTb 1836 4287 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 1) Rshow grestore 1.000 UL LTb 1836 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 1) Cshow grestore 1.000 UL LTb 2551 1080 M 0 31 V 0 3497 R 0 -31 V 2970 1080 M 0 31 V 0 3497 R 0 -31 V 3266 1080 M 0 31 V 0 3497 R 0 -31 V 3497 1080 M 0 31 V 0 3497 R 0 -31 V 3685 1080 M 0 31 V 0 3497 R 0 -31 V 3844 1080 M 0 31 V 0 3497 R 0 -31 V 3982 1080 M 0 31 V 0 3497 R 0 -31 V 4103 1080 M 0 31 V 0 3497 R 0 -31 V 4212 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 10) Cshow grestore 1.000 UL LTb 4927 1080 M 0 31 V 0 3497 R 0 -31 V 5346 1080 M 0 31 V 0 3497 R 0 -31 V 5642 1080 M 0 31 V 0 3497 R 0 -31 V 5873 1080 M 0 31 V 0 3497 R 0 -31 V 6061 1080 M 0 31 V 0 3497 R 0 -31 V 6220 1080 M 0 31 V 0 3497 R 0 -31 V 6358 1080 M 0 31 V 0 3497 R 0 -31 V 6479 1080 M 0 31 V 0 3497 R 0 -31 V 6588 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 100) Cshow grestore 1.000 UL LTb 1.000 UL LTb 1836 1080 M 4752 0 V 0 3528 V -4752 0 V 0 -3528 V LTb 360 2844 M gsave 0 setgray currentpoint gsave translate 90 rotate 0 0 M (Fraction of completion) Cshow grestore grestore LTb 4212 180 M gsave 0 setgray (Number of attackers) Cshow grestore 1.000 UP 2.000 UP 1.000 UL LT0 LTb 4212 2043 M gsave 0 setgray (Internet) Rshow grestore LT0 4428 2043 M 279 0 V 1836 4287 M 715 0 V 715 0 V 419 0 V 297 0 V 230 0 V 715 -605 V 5642 1284 L 419 -195 V 297 -7 V 230 -2 V 1836 4287 Box 2551 4287 Box 3266 4287 Box 3685 4287 Box 3982 4287 Box 4212 4287 Box 4927 3682 Box 5642 1284 Box 6061 1089 Box 6358 1082 Box 6588 1080 Box 4567 2043 Box 2.000 UP 1.000 UL LT1 LTb 4212 1683 M gsave 0 setgray (siff) Rshow grestore LT1 4428 1683 M 279 0 V 1836 4287 M 715 0 V 715 0 V 419 0 V 297 0 V 230 0 V 715 -12 V 715 -356 V 419 -528 V 297 -339 V 230 -153 V 1836 4287 Star 2551 4287 Star 3266 4287 Star 3685 4287 Star 3982 4287 Star 4212 4287 Star 4927 4275 Star 5642 3919 Star 6061 3391 Star 6358 3052 Star 6588 2899 Star 4567 1683 Star 2.000 UP 1.000 UL LT2 LTb 4212 1323 M gsave 0 setgray (our design) Rshow grestore LT2 4428 1323 M 279 0 V 1836 4287 M 715 0 V 715 0 V 419 0 V 297 0 V 230 0 V 715 0 V 715 0 V 419 0 V 297 0 V 230 0 V 1836 4287 Pls 2551 4287 Pls 3266 4287 Pls 3685 4287 Pls 3982 4287 Pls 4212 4287 Pls 4927 4287 Pls 5642 4287 Pls 6061 4287 Pls 6358 4287 Pls 6588 4287 Pls 4567 1323 Pls 1.000 UL LTb 1836 1080 M 4752 0 V 0 3528 V -4752 0 V 0 -3528 V 1.000 UP stroke grestore end showpage %%Trailer %%DocumentFonts: Helvetica %%EndDocument @endspecial 1058 x @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 1800 @rwi @setspecial %%BeginDocument: figures/legacy-time.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: legacy-time.eps %%Creator: gnuplot 4.0 patchlevel 0 %%CreationDate: Wed Feb 9 10:28:54 2005 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -120 def /dl {10.0 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /Rounded false def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /N {newpath moveto} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /AL { stroke userlinewidth 2 div setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /UL { dup gnulinewidth mul /userlinewidth exch def dup 1 lt {pop 1} if 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /LTw { PL [] 1 setgray } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def /BoxColFill { gsave Rec /Fillden exch def currentrgbcolor /ColB exch def /ColG exch def /ColR exch def /ColR ColR Fillden mul Fillden sub 1 add def /ColG ColG Fillden mul Fillden sub 1 add def /ColB ColB Fillden mul Fillden sub 1 add def ColR ColG ColB setrgbcolor fill grestore } def % % PostScript Level 1 Pattern Fill routine % Usage: x y w h s a XX PatternFill % x,y = lower left corner of box to be filled % w,h = width and height of box % a = angle in degrees between lines and x-axis % XX = 0/1 for no/yes cross-hatch % /PatternFill { gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 M 0 PFs V } for 0 PFa 6 get ne { 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 2 1 roll M PFs 0 V } for } if stroke grestore } def % /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 360 scalefont setfont 1.000 UL LTb 1404 1080 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 0) Rshow grestore 1.000 UL LTb 1404 1668 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 1) Rshow grestore 1.000 UL LTb 1404 2256 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 2) Rshow grestore 1.000 UL LTb 1404 2844 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 3) Rshow grestore 1.000 UL LTb 1404 3432 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 4) Rshow grestore 1.000 UL LTb 1404 4020 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 5) Rshow grestore 1.000 UL LTb 1404 4608 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 6) Rshow grestore 1.000 UL LTb 1404 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 1) Cshow grestore 1.000 UL LTb 2184 1080 M 0 31 V 0 3497 R 0 -31 V 2641 1080 M 0 31 V 0 3497 R 0 -31 V 2965 1080 M 0 31 V 0 3497 R 0 -31 V 3216 1080 M 0 31 V 0 3497 R 0 -31 V 3421 1080 M 0 31 V 0 3497 R 0 -31 V 3594 1080 M 0 31 V 0 3497 R 0 -31 V 3745 1080 M 0 31 V 0 3497 R 0 -31 V 3877 1080 M 0 31 V 0 3497 R 0 -31 V 3996 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 10) Cshow grestore 1.000 UL LTb 4776 1080 M 0 31 V 0 3497 R 0 -31 V 5233 1080 M 0 31 V 0 3497 R 0 -31 V 5557 1080 M 0 31 V 0 3497 R 0 -31 V 5808 1080 M 0 31 V 0 3497 R 0 -31 V 6013 1080 M 0 31 V 0 3497 R 0 -31 V 6186 1080 M 0 31 V 0 3497 R 0 -31 V 6337 1080 M 0 31 V 0 3497 R 0 -31 V 6469 1080 M 0 31 V 0 3497 R 0 -31 V 6588 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 100) Cshow grestore 1.000 UL LTb 1.000 UL LTb 1404 1080 M 5184 0 V 0 3528 V -5184 0 V 0 -3528 V LTb 360 2844 M gsave 0 setgray currentpoint gsave translate 90 rotate 0 0 M (File transfer time \(s\)) Cshow grestore grestore LTb 3996 180 M gsave 0 setgray (Number of attackers) Cshow grestore 1.000 UP 2.000 UP 1.000 UL LT0 LTb 3780 4365 M gsave 0 setgray (Internet) Rshow grestore LT0 3996 4365 M 279 0 V 1404 1265 M 780 0 V 781 1 V 456 3 V 324 8 V 140 3331 V 1404 1265 Box 2184 1265 Box 2965 1266 Box 3421 1269 Box 3745 1277 Box 4135 4365 Box 2.000 UP 1.000 UL LT1 LTb 3780 4005 M gsave 0 setgray (siff) Rshow grestore LT1 3996 4005 M 279 0 V 1404 1265 M 780 0 V 781 0 V 456 1 V 324 2 V 251 414 V 780 647 V 781 737 V 456 274 V 324 185 V 251 100 V 1404 1265 Star 2184 1265 Star 2965 1265 Star 3421 1266 Star 3745 1268 Star 3996 1682 Star 4776 2329 Star 5557 3066 Star 6013 3340 Star 6337 3525 Star 6588 3625 Star 4135 4005 Star 2.000 UP 1.000 UL LT2 LTb 3780 3645 M gsave 0 setgray (our design) Rshow grestore LT2 3996 3645 M 279 0 V 1404 1265 M 780 0 V 781 0 V 456 0 V 324 1 V 251 0 V 780 0 V 781 0 V 456 0 V 324 0 V 251 0 V 1404 1265 Pls 2184 1265 Pls 2965 1265 Pls 3421 1265 Pls 3745 1266 Pls 3996 1266 Pls 4776 1266 Pls 5557 1266 Pls 6013 1266 Pls 6337 1266 Pls 6588 1266 Pls 4135 3645 Pls 1.000 UL LTb 1404 1080 M 5184 0 V 0 3528 V -5184 0 V 0 -3528 V 1.000 UP stroke grestore end showpage %%Trailer %%DocumentFonts: Helvetica %%EndDocument @endspecial 0 2283 a Fn(Figur)o(e)19 b(7:)50 b Fm(Legacy)18 b(traf\002c)f(\003ooding)g(does)g(not)f(incr)o(ease)j(the)d(\002le)h (trans-)0 2374 y(fer)26 b(time)g(or)g(decr)o(ease)h(the)e(fraction)i (of)e(completed)j(transfers)e(with)g(our)0 2465 y(design.)37 b(W)o(ith)23 b(SIFF)-6 b(,)20 b(\002le)j(transfer)g(time)h(incr)o (eases)g(and)d(the)i(fraction)h(of)0 2557 y(completed)30 b(transfer)g(dr)o(ops)e(when)h(the)f(intensity)i(of)e(attack)h(incr)o (eases;)0 2648 y(with)24 b(Inter)o(net,)i(transfer)f(time)g(incr)o (eases)g(shar)o(ply)l(,)h(and)e(the)g(fraction)h(of)0 2739 y(completion)19 b(quickly)f(appr)o(oaches)g(zer)o(o.)0 3002 y Fr(e)o(xceeds)k(the)h(bottleneck)f(bandwidth,)g(a)h(le)o (gitimate)g(user')-5 b(s)23 b(re-)0 3093 y(quest)j(pack)o(ets)f(be)o (gin)g(to)h(suf)n(fer)f(losses.)43 b(W)-7 b(e)27 b(see)f(this)h(in)f (Fig-)0 3185 y(ure)19 b(7)h(when)f(the)h(number)e(of)h(attack)o(ers)h (is)g(greater)f(than)g(10)g(and)0 3276 y(the)e(fraction)e(of)i (completions)e(drops)h(and)g(the)h(completion)e(time)0 3367 y(increases.)57 b(When)31 b(the)g(aggre)o(gate)d(attack)j (bandwidth)e Fq(B)1773 3379 y Fh(a)1845 3367 y Fr(is)0 3459 y(greater)20 b(than)h(the)g(bottleneck)e(bandwidth)g Fq(B)1342 3471 y Fh(l)1368 3459 y Fr(,)i(the)h(pack)o(et)e(loss)0 3550 y(rate)27 b Fq(p)h Fr(is)g(approximately)c Fp(\()p Fq(B)907 3562 y Fh(a)972 3550 y Fi(\000)f Fq(B)1123 3562 y Fh(l)1148 3550 y Fp(\))p Fq(=B)1285 3562 y Fh(a)1325 3550 y Fr(.)47 b(Once)27 b(a)g(request)0 3641 y(pack)o(et)20 b(gets)h(through,)e(a)i(client')-5 b(s)21 b(subsequent)e(pack)o(ets)i (are)f(au-)0 3733 y(thorized)k(pack)o(ets)h(and)f(are)h(treated)g(with) g(higher)f(priority)-5 b(.)39 b(So)0 3824 y(the)23 b(probability)d (that)j(a)f(\002le)i(transfer)d(completes)h(with)h(SIFF)g(is)0 3915 y(equal)17 b(to)h(the)g(probability)e(a)i(request)g(gets)g (through)e(within)h(nine)0 4007 y(tries,)j(i.e.,)g Fp(\(1)e Fi(\000)f Fq(p)543 3976 y Fo(9)580 4007 y Fp(\))p Fr(.)26 b(When)20 b(the)g(number)e(of)i(attack)o(ers)g(is)h(100,)0 4098 y Fq(p)h Fr(is)h Fp(90\045)p Fr(,)e(gi)n(ving)g(a)h(completion)d (rate)j(of)g Fp(\(1)d Fi(\000)g Fp(0)p Fq(:)p Fp(9)1547 4068 y Fo(9)1583 4098 y Fp(\))26 b(=)g(0)p Fq(:)p Fp(61)p Fr(.)0 4189 y(This)c(is)h(consistent)e(with)h(our)g(results.)30 b(Similarly)-5 b(,)21 b(the)h(a)n(v)o(erage)0 4281 y(time)e(for)g(a)h (transfer)e(to)h(complete)f(with)i(up)e(to)i(9)f(tries)h(is:)265 4523 y Fq(T)314 4535 y Fh(av)r(g)446 4523 y Fp(=)i(\()610 4419 y Fo(9)566 4444 y Fd(X)572 4621 y Fh(i)p Fo(=1)700 4523 y Fi(\001)p Fq(i)18 b Fi(\001)g Fq(p)853 4489 y Fh(i)p Fc(\000)p Fo(1)984 4523 y Fi(\001)h Fp(\(1)f Fi(\000)g Fq(p)p Fp(\)\))p Fq(=)p Fp(\(1)g Fi(\000)g Fq(p)1566 4489 y Fo(9)1603 4523 y Fp(\))0 4761 y Fr(When)26 b(there)g(are)g(100)g (attack)o(ers,)h(this)g(time)f(is)h(4.05)f(seconds,)0 4852 y(which)20 b(is)h(again)e(consistent)h(with)g(our)g(results.)75 4943 y(W)m(ith)g(Internet,)f(le)o(gitimate)g(users')h(traf)n(\002c)g (and)f(attack)h(traf)n(\002c)0 5035 y(are)30 b(treated)g(alik)o(e.)55 b(Therefore,)31 b(e)n(v)o(ery)e(pack)o(et)g(from)g(a)i(le)o(git-)0 5126 y(imate)f(user)g(encounters)f(a)h(loss)h(rate)g(of)f Fq(p)p Fr(.)55 b(The)30 b(probability)0 5217 y(for)g Fq(n)i Fr(pack)o(ets)f(to)g(get)g(through,)g(each)g(within)g(a)g(\002x) o(ed)g(num-)0 5309 y(ber)d(of)h(retransmissions)e Fq(k)33 b Fr(is)c Fp(\(1)c Fi(\000)f Fq(p)1169 5279 y Fh(k)1210 5309 y Fp(\))1242 5279 y Fh(n)1287 5309 y Fr(.)51 b(This)29 b(probability)0 5400 y(decreases)22 b(e)o(xponentially)e(with)j Fq(n)p Fr(.)32 b(This)23 b(e)o(xplains)f(the)g(results)2200 1050 y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 1800 @rwi @setspecial %%BeginDocument: figures/rts-rate.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: rts-rate.eps %%Creator: gnuplot 4.0 patchlevel 0 %%CreationDate: Mon Feb 7 21:20:23 2005 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -120 def /dl {10.0 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /Rounded false def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /N {newpath moveto} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /AL { stroke userlinewidth 2 div setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /UL { dup gnulinewidth mul /userlinewidth exch def dup 1 lt {pop 1} if 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /LTw { PL [] 1 setgray } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def /BoxColFill { gsave Rec /Fillden exch def currentrgbcolor /ColB exch def /ColG exch def /ColR exch def /ColR ColR Fillden mul Fillden sub 1 add def /ColG ColG Fillden mul Fillden sub 1 add def /ColB ColB Fillden mul Fillden sub 1 add def ColR ColG ColB setrgbcolor fill grestore } def % % PostScript Level 1 Pattern Fill routine % Usage: x y w h s a XX PatternFill % x,y = lower left corner of box to be filled % w,h = width and height of box % a = angle in degrees between lines and x-axis % XX = 0/1 for no/yes cross-hatch % /PatternFill { gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 M 0 PFs V } for 0 PFa 6 get ne { 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 2 1 roll M PFs 0 V } for } if stroke grestore } def % /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 360 scalefont setfont 1.000 UL LTb 1836 1080 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0) Rshow grestore 1.000 UL LTb 1836 1721 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.2) Rshow grestore 1.000 UL LTb 1836 2363 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.4) Rshow grestore 1.000 UL LTb 1836 3004 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.6) Rshow grestore 1.000 UL LTb 1836 3646 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.8) Rshow grestore 1.000 UL LTb 1836 4287 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 1) Rshow grestore 1.000 UL LTb 1836 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 1) Cshow grestore 1.000 UL LTb 2551 1080 M 0 31 V 0 3497 R 0 -31 V 2970 1080 M 0 31 V 0 3497 R 0 -31 V 3266 1080 M 0 31 V 0 3497 R 0 -31 V 3497 1080 M 0 31 V 0 3497 R 0 -31 V 3685 1080 M 0 31 V 0 3497 R 0 -31 V 3844 1080 M 0 31 V 0 3497 R 0 -31 V 3982 1080 M 0 31 V 0 3497 R 0 -31 V 4103 1080 M 0 31 V 0 3497 R 0 -31 V 4212 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 10) Cshow grestore 1.000 UL LTb 4927 1080 M 0 31 V 0 3497 R 0 -31 V 5346 1080 M 0 31 V 0 3497 R 0 -31 V 5642 1080 M 0 31 V 0 3497 R 0 -31 V 5873 1080 M 0 31 V 0 3497 R 0 -31 V 6061 1080 M 0 31 V 0 3497 R 0 -31 V 6220 1080 M 0 31 V 0 3497 R 0 -31 V 6358 1080 M 0 31 V 0 3497 R 0 -31 V 6479 1080 M 0 31 V 0 3497 R 0 -31 V 6588 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 100) Cshow grestore 1.000 UL LTb 1.000 UL LTb 1836 1080 M 4752 0 V 0 3528 V -4752 0 V 0 -3528 V LTb 360 2844 M gsave 0 setgray currentpoint gsave translate 90 rotate 0 0 M (Fraction of completion) Cshow grestore grestore LTb 4212 180 M gsave 0 setgray (Number of attackers) Cshow grestore 1.000 UP 2.000 UP 1.000 UL LT0 LTb 4212 1683 M gsave 0 setgray (siff) Rshow grestore LT0 4428 1683 M 279 0 V 1836 4287 M 715 0 V 715 0 V 419 0 V 297 0 V 230 0 V 715 -1 V 715 -157 V 419 -929 V 297 -39 V 230 -161 V 1836 4287 Star 2551 4287 Star 3266 4287 Star 3685 4287 Star 3982 4287 Star 4212 4287 Star 4927 4286 Star 5642 4129 Star 6061 3200 Star 6358 3161 Star 6588 3000 Star 4567 1683 Star 2.000 UP 1.000 UL LT1 LTb 4212 1323 M gsave 0 setgray (our design) Rshow grestore LT1 4428 1323 M 279 0 V 1836 4287 M 715 0 V 715 0 V 419 0 V 297 0 V 230 0 V 715 0 V 715 0 V 419 0 V 297 0 V 230 0 V 1836 4287 Pls 2551 4287 Pls 3266 4287 Pls 3685 4287 Pls 3982 4287 Pls 4212 4287 Pls 4927 4287 Pls 5642 4287 Pls 6061 4287 Pls 6358 4287 Pls 6588 4287 Pls 4567 1323 Pls 1.000 UL LTb 1836 1080 M 4752 0 V 0 3528 V -4752 0 V 0 -3528 V 1.000 UP stroke grestore end showpage %%Trailer %%DocumentFonts: Helvetica %%EndDocument @endspecial 1058 x @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 1800 @rwi @setspecial %%BeginDocument: figures/rts-time.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: rts-time.eps %%Creator: gnuplot 4.0 patchlevel 0 %%CreationDate: Mon Feb 7 21:20:23 2005 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -120 def /dl {10.0 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /Rounded false def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /N {newpath moveto} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /AL { stroke userlinewidth 2 div setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /UL { dup gnulinewidth mul /userlinewidth exch def dup 1 lt {pop 1} if 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /LTw { PL [] 1 setgray } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def /BoxColFill { gsave Rec /Fillden exch def currentrgbcolor /ColB exch def /ColG exch def /ColR exch def /ColR ColR Fillden mul Fillden sub 1 add def /ColG ColG Fillden mul Fillden sub 1 add def /ColB ColB Fillden mul Fillden sub 1 add def ColR ColG ColB setrgbcolor fill grestore } def % % PostScript Level 1 Pattern Fill routine % Usage: x y w h s a XX PatternFill % x,y = lower left corner of box to be filled % w,h = width and height of box % a = angle in degrees between lines and x-axis % XX = 0/1 for no/yes cross-hatch % /PatternFill { gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 M 0 PFs V } for 0 PFa 6 get ne { 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 2 1 roll M PFs 0 V } for } if stroke grestore } def % /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 360 scalefont setfont 1.000 UL LTb 1404 1080 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 0) Rshow grestore 1.000 UL LTb 1404 1668 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 1) Rshow grestore 1.000 UL LTb 1404 2256 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 2) Rshow grestore 1.000 UL LTb 1404 2844 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 3) Rshow grestore 1.000 UL LTb 1404 3432 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 4) Rshow grestore 1.000 UL LTb 1404 4020 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 5) Rshow grestore 1.000 UL LTb 1404 4608 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 6) Rshow grestore 1.000 UL LTb 1404 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 1) Cshow grestore 1.000 UL LTb 2184 1080 M 0 31 V 0 3497 R 0 -31 V 2641 1080 M 0 31 V 0 3497 R 0 -31 V 2965 1080 M 0 31 V 0 3497 R 0 -31 V 3216 1080 M 0 31 V 0 3497 R 0 -31 V 3421 1080 M 0 31 V 0 3497 R 0 -31 V 3594 1080 M 0 31 V 0 3497 R 0 -31 V 3745 1080 M 0 31 V 0 3497 R 0 -31 V 3877 1080 M 0 31 V 0 3497 R 0 -31 V 3996 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 10) Cshow grestore 1.000 UL LTb 4776 1080 M 0 31 V 0 3497 R 0 -31 V 5233 1080 M 0 31 V 0 3497 R 0 -31 V 5557 1080 M 0 31 V 0 3497 R 0 -31 V 5808 1080 M 0 31 V 0 3497 R 0 -31 V 6013 1080 M 0 31 V 0 3497 R 0 -31 V 6186 1080 M 0 31 V 0 3497 R 0 -31 V 6337 1080 M 0 31 V 0 3497 R 0 -31 V 6469 1080 M 0 31 V 0 3497 R 0 -31 V 6588 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 100) Cshow grestore 1.000 UL LTb 1.000 UL LTb 1404 1080 M 5184 0 V 0 3528 V -5184 0 V 0 -3528 V LTb 360 2844 M gsave 0 setgray currentpoint gsave translate 90 rotate 0 0 M (File transfer time \(s\)) Cshow grestore grestore LTb 3996 180 M gsave 0 setgray (Number of attackers) Cshow grestore 1.000 UP 2.000 UP 1.000 UL LT0 LTb 3780 4365 M gsave 0 setgray (siff) Rshow grestore LT0 3996 4365 M 279 0 V 1404 1265 M 780 0 V 781 0 V 456 1 V 324 1 V 251 435 V 780 501 V 781 721 V 456 482 V 324 98 V 251 66 V 1404 1265 Star 2184 1265 Star 2965 1265 Star 3421 1266 Star 3745 1267 Star 3996 1702 Star 4776 2203 Star 5557 2924 Star 6013 3406 Star 6337 3504 Star 6588 3570 Star 4135 4365 Star 2.000 UP 1.000 UL LT1 LTb 3780 4005 M gsave 0 setgray (our design) Rshow grestore LT1 3996 4005 M 279 0 V 1404 1264 M 780 0 V 781 0 V 456 0 V 324 0 V 251 0 V 780 0 V 781 0 V 456 1 V 324 0 V 251 0 V 1404 1264 Pls 2184 1264 Pls 2965 1264 Pls 3421 1264 Pls 3745 1264 Pls 3996 1264 Pls 4776 1264 Pls 5557 1264 Pls 6013 1265 Pls 6337 1265 Pls 6588 1265 Pls 4135 4005 Pls 1.000 UL LTb 1404 1080 M 5184 0 V 0 3528 V -5184 0 V 0 -3528 V 1.000 UP stroke grestore end showpage %%Trailer %%DocumentFonts: Helvetica %%EndDocument @endspecial 2000 2283 a Fn(Figur)o(e)33 b(8:)104 b Fm(Request)28 b(pack)o(et)g(\003ooding)h(does)e(not)h(incr)o(ease)h(the)f(\002le)2000 2374 y(transfer)18 b(time)g(or)f(decr)o(ease)i(the)e(completion)j(rate) d(with)h(our)f(design.)2000 2633 y Fr(we)30 b(see)h(in)f(Figure)g(7:)45 b(the)30 b(fraction)f(of)h(completed)e(transfers)2000 2725 y(quickly)22 b(approaches)f(to)j(zero.)34 b(The)24 b(fe)n(w)f(completed)f(requests)2000 2816 y(ha)n(v)o(e)f(a)i (completion)d(time)i(hundreds)e(of)i(seconds,)f(and)h(are)g(out)2000 2907 y(of)e(the)g(y-axis)g(scope)f(in)i(Figure)e(7.)2000 3079 y Fs(5.2)99 b(Request)26 b(P)o(ack)o(et)g(Flood)2075 3195 y Fr(The)f(ne)o(xt)g(scenario)g(we)h(consider)f(is)h(that)g(of)g (each)f(attack)o(er)2000 3286 y(\003ooding)30 b(the)j(destination)e (with)h(request)f(pack)o(ets)h(at)h(1Mb/s.)2000 3377 y(W)m(ith)21 b(our)f(design,)g(request)g(pack)o(ets)g(are)h(rate)f (limited)h(and)f(will)2000 3469 y(not)25 b(reduce)f(the)i(a)n(v)n (ailable)f(capacity)g(for)g(authorized)e(pack)o(ets.)2000 3560 y(Requests)c(from)f(attack)o(ers)h(and)f(le)o(gitimate)g(clients)h (are)g(queued)2000 3651 y(separately)-5 b(,)24 b(so)i(that)f(e)o (xcessi)n(v)o(e)f(requests)g(from)g(attack)o(ers)h(will)2000 3743 y(be)15 b(dropped)e(without)h(causing)h(requests)g(from)f(le)o (gitimate)g(clients)2000 3834 y(to)29 b(be)f(dropped.)48 b(W)-7 b(e)29 b(see)g(this)g(in)g(Figure)f(8:)42 b(the)29 b(fraction)e(of)2000 3925 y(completions)20 b(does)i(not)g(drop)e(and)i (the)g(transfer)f(time)h(does)g(not)2000 4017 y(increase.)47 b(In)27 b(contrast,)i(the)f(results)g(for)f(SIFF)i(are)e(similar)h(to) 2000 4108 y(those)j(for)f(le)o(gac)o(y)g(pack)o(ets)g(\003oods,)k(as)d (SIFF)h(treats)g(both)e(re-)2000 4199 y(quests)20 b(and)g(le)o(gac)o(y) e(traf)n(\002c)i(as)h(lo)n(w)f(priority)f(traf)n(\002c.)2000 4371 y Fs(5.3)99 b(A)-5 b(uthorized)26 b(T)-7 b(raf\002c)26 b(Floods)2075 4487 y Fr(Strate)o(gic)e(attack)o(ers)h(will)h(realize)f (that)g(it)h(is)g(more)e(ef)n(fecti)n(v)o(e)2000 4578 y(to)e(collude)g(when)g(paths)g(can)h(be)f(found)f(that)h(share)h(the)f (bottle-)2000 4669 y(neck)30 b(link)g(with)h(the)f(destination.)55 b(The)30 b(colluders)g(grant)g(ca-)2000 4761 y(pabilities)23 b(to)g(requests)g(from)f(attack)o(ers,)i(allo)n(wing)e(the)h(attack-) 2000 4852 y(ers)f(to)g(send)f(authorized)f(traf)n(\002c)h(at)h(their)f (maximum)f(rate.)30 b(Fig-)2000 4943 y(ure)h(9)g(sho)n(ws)g(the)h (results)f(under)f(this)i(attack.)58 b(Because)31 b(our)2000 5035 y(design)f(allocates)h(bandwidth)e(approximately)f(f)o(airly)j (among)2000 5126 y(all)e(senders,)g(this)g(attack)g(resembles)e(a)i (\003ash)g(cro)n(wd.)48 b(As)30 b(the)2000 5217 y(number)20 b(of)i(attack)o(ers)g(increases,)g(each)f(user)h(gets)h(a)f(lesser)h(b) n(ut)2000 5309 y(f)o(air)h(share)h(of)f(the)g(bandwidth,)g(and)g(no)g (user)g(is)i(starv)o(ed)d(so)i(all)2000 5400 y(user)d(requests)g (complete.)30 b(When)23 b(the)f(f)o(air)g(share)g(decreases)g(to)1908 5649 y(10)p eop end %%Page: 11 11 TeXDict begin 11 10 bop 200 1050 a @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 1800 @rwi @setspecial %%BeginDocument: figures/auth-rate.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: auth-rate.eps %%Creator: gnuplot 4.0 patchlevel 0 %%CreationDate: Mon Feb 7 21:20:23 2005 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -120 def /dl {10.0 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /Rounded false def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /N {newpath moveto} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /AL { stroke userlinewidth 2 div setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /UL { dup gnulinewidth mul /userlinewidth exch def dup 1 lt {pop 1} if 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /LTw { PL [] 1 setgray } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def /BoxColFill { gsave Rec /Fillden exch def currentrgbcolor /ColB exch def /ColG exch def /ColR exch def /ColR ColR Fillden mul Fillden sub 1 add def /ColG ColG Fillden mul Fillden sub 1 add def /ColB ColB Fillden mul Fillden sub 1 add def ColR ColG ColB setrgbcolor fill grestore } def % % PostScript Level 1 Pattern Fill routine % Usage: x y w h s a XX PatternFill % x,y = lower left corner of box to be filled % w,h = width and height of box % a = angle in degrees between lines and x-axis % XX = 0/1 for no/yes cross-hatch % /PatternFill { gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 M 0 PFs V } for 0 PFa 6 get ne { 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 2 1 roll M PFs 0 V } for } if stroke grestore } def % /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 360 scalefont setfont 1.000 UL LTb 1836 1080 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0) Rshow grestore 1.000 UL LTb 1836 1721 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.2) Rshow grestore 1.000 UL LTb 1836 2363 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.4) Rshow grestore 1.000 UL LTb 1836 3004 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.6) Rshow grestore 1.000 UL LTb 1836 3646 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 0.8) Rshow grestore 1.000 UL LTb 1836 4287 M 63 0 V 4689 0 R -63 0 V -4905 0 R gsave 0 setgray ( 1) Rshow grestore 1.000 UL LTb 1836 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 1) Cshow grestore 1.000 UL LTb 2551 1080 M 0 31 V 0 3497 R 0 -31 V 2970 1080 M 0 31 V 0 3497 R 0 -31 V 3266 1080 M 0 31 V 0 3497 R 0 -31 V 3497 1080 M 0 31 V 0 3497 R 0 -31 V 3685 1080 M 0 31 V 0 3497 R 0 -31 V 3844 1080 M 0 31 V 0 3497 R 0 -31 V 3982 1080 M 0 31 V 0 3497 R 0 -31 V 4103 1080 M 0 31 V 0 3497 R 0 -31 V 4212 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 10) Cshow grestore 1.000 UL LTb 4927 1080 M 0 31 V 0 3497 R 0 -31 V 5346 1080 M 0 31 V 0 3497 R 0 -31 V 5642 1080 M 0 31 V 0 3497 R 0 -31 V 5873 1080 M 0 31 V 0 3497 R 0 -31 V 6061 1080 M 0 31 V 0 3497 R 0 -31 V 6220 1080 M 0 31 V 0 3497 R 0 -31 V 6358 1080 M 0 31 V 0 3497 R 0 -31 V 6479 1080 M 0 31 V 0 3497 R 0 -31 V 6588 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 100) Cshow grestore 1.000 UL LTb 1.000 UL LTb 1836 1080 M 4752 0 V 0 3528 V -4752 0 V 0 -3528 V LTb 360 2844 M gsave 0 setgray currentpoint gsave translate 90 rotate 0 0 M (Fraction of completion) Cshow grestore grestore LTb 4212 180 M gsave 0 setgray (Number of attackers) Cshow grestore 1.000 UP 2.000 UP 1.000 UL LT0 LTb 6004 3646 M gsave 0 setgray (siff) Rshow grestore LT0 6220 3646 M 279 0 V 1836 4287 M 715 0 V 715 0 V 419 0 V 297 0 V 4212 1096 L 715 -16 V 715 0 V 419 0 V 297 0 V 230 0 V 1836 4287 Star 2551 4287 Star 3266 4287 Star 3685 4287 Star 3982 4287 Star 4212 1096 Star 4927 1080 Star 5642 1080 Star 6061 1080 Star 6358 1080 Star 6588 1080 Star 6359 3646 Star 2.000 UP 1.000 UL LT1 LTb 6004 3286 M gsave 0 setgray (our design) Rshow grestore LT1 6220 3286 M 279 0 V 1836 4287 M 715 0 V 715 0 V 419 0 V 297 0 V 230 0 V 715 0 V 715 0 V 419 0 V 297 0 V 230 0 V 1836 4287 Pls 2551 4287 Pls 3266 4287 Pls 3685 4287 Pls 3982 4287 Pls 4212 4287 Pls 4927 4287 Pls 5642 4287 Pls 6061 4287 Pls 6358 4287 Pls 6588 4287 Pls 6359 3286 Pls 1.000 UL LTb 1836 1080 M 4752 0 V 0 3528 V -4752 0 V 0 -3528 V 1.000 UP stroke grestore end showpage %%Trailer %%DocumentFonts: Helvetica %%EndDocument @endspecial 1058 x @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 1800 @rwi @setspecial %%BeginDocument: figures/auth-time.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: auth-time.eps %%Creator: gnuplot 4.0 patchlevel 0 %%CreationDate: Mon Feb 7 21:20:23 2005 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -120 def /dl {10.0 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /Rounded false def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /N {newpath moveto} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /AL { stroke userlinewidth 2 div setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /UL { dup gnulinewidth mul /userlinewidth exch def dup 1 lt {pop 1} if 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /LTw { PL [] 1 setgray } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def /BoxColFill { gsave Rec /Fillden exch def currentrgbcolor /ColB exch def /ColG exch def /ColR exch def /ColR ColR Fillden mul Fillden sub 1 add def /ColG ColG Fillden mul Fillden sub 1 add def /ColB ColB Fillden mul Fillden sub 1 add def ColR ColG ColB setrgbcolor fill grestore } def % % PostScript Level 1 Pattern Fill routine % Usage: x y w h s a XX PatternFill % x,y = lower left corner of box to be filled % w,h = width and height of box % a = angle in degrees between lines and x-axis % XX = 0/1 for no/yes cross-hatch % /PatternFill { gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 M 0 PFs V } for 0 PFa 6 get ne { 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 2 1 roll M PFs 0 V } for } if stroke grestore } def % /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 360 scalefont setfont 1.000 UL LTb 1404 1080 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 0) Rshow grestore 1.000 UL LTb 1404 1668 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 1) Rshow grestore 1.000 UL LTb 1404 2256 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 2) Rshow grestore 1.000 UL LTb 1404 2844 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 3) Rshow grestore 1.000 UL LTb 1404 3432 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 4) Rshow grestore 1.000 UL LTb 1404 4020 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 5) Rshow grestore 1.000 UL LTb 1404 4608 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 6) Rshow grestore 1.000 UL LTb 1404 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 1) Cshow grestore 1.000 UL LTb 2184 1080 M 0 31 V 0 3497 R 0 -31 V 2641 1080 M 0 31 V 0 3497 R 0 -31 V 2965 1080 M 0 31 V 0 3497 R 0 -31 V 3216 1080 M 0 31 V 0 3497 R 0 -31 V 3421 1080 M 0 31 V 0 3497 R 0 -31 V 3594 1080 M 0 31 V 0 3497 R 0 -31 V 3745 1080 M 0 31 V 0 3497 R 0 -31 V 3877 1080 M 0 31 V 0 3497 R 0 -31 V 3996 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 10) Cshow grestore 1.000 UL LTb 4776 1080 M 0 31 V 0 3497 R 0 -31 V 5233 1080 M 0 31 V 0 3497 R 0 -31 V 5557 1080 M 0 31 V 0 3497 R 0 -31 V 5808 1080 M 0 31 V 0 3497 R 0 -31 V 6013 1080 M 0 31 V 0 3497 R 0 -31 V 6186 1080 M 0 31 V 0 3497 R 0 -31 V 6337 1080 M 0 31 V 0 3497 R 0 -31 V 6469 1080 M 0 31 V 0 3497 R 0 -31 V 6588 1080 M 0 63 V 0 3465 R 0 -63 V 0 -3825 R gsave 0 setgray ( 100) Cshow grestore 1.000 UL LTb 1.000 UL LTb 1404 1080 M 5184 0 V 0 3528 V -5184 0 V 0 -3528 V LTb 360 2844 M gsave 0 setgray currentpoint gsave translate 90 rotate 0 0 M (File transfer time \(s\)) Cshow grestore grestore LTb 3996 180 M gsave 0 setgray (Number of attackers) Cshow grestore 1.000 UP 2.000 UP 1.000 UL LT0 LTb 5970 4020 M gsave 0 setgray (siff) Rshow grestore LT0 6186 4020 M 279 0 V 1404 1265 M 780 0 V 781 2 V 456 3 V 324 17 V 251 2964 V 1404 1265 Star 2184 1265 Star 2965 1267 Star 3421 1270 Star 3745 1287 Star 3996 4251 Star 6325 4020 Star 2.000 UP 1.000 UL LT1 LTb 5970 3660 M gsave 0 setgray (our design) Rshow grestore LT1 6186 3660 M 279 0 V 1404 1265 M 780 1 V 781 2 V 456 4 V 324 13 V 251 53 V 780 84 V 781 189 V 456 197 V 324 199 V 251 199 V 1404 1265 Pls 2184 1266 Pls 2965 1268 Pls 3421 1272 Pls 3745 1285 Pls 3996 1338 Pls 4776 1422 Pls 5557 1611 Pls 6013 1808 Pls 6337 2007 Pls 6588 2206 Pls 6325 3660 Pls 1.000 UL LTb 1404 1080 M 5184 0 V 0 3528 V -5184 0 V 0 -3528 V 1.000 UP stroke grestore end showpage %%Trailer %%DocumentFonts: Helvetica %%EndDocument @endspecial 0 2283 a Fn(Figur)o(e)27 b(9:)83 b Fm(A)m(uthorized)25 b(pack)o(ets)f(\003ooding)g(r)o(educes)g(the)g(band)o(width)0 2374 y(shar)o(e)c(of)g(legitimate)j(clients.)31 b(The)21 b(\002le)f(transfer)h(time)g(incr)o(eases,)h(b)o(ut)e(the)0 2465 y(fraction)f(of)e(completion)i(r)o(emains)f Fb(100\045)p Fm(.)0 2731 y Fr(the)28 b(point)g(that)g(pack)o(et)g(transmission)g (time)g(rather)g(than)g(TCP)0 2823 y(o)o(v)o(erhead)i(dominates)i (request)g(completion)f(time,)36 b(the)d(com-)0 2914 y(pletion)d(time)i(starts)g(to)f(increase)g(linearly)f(with)h(the)h (number)0 3005 y(of)26 b(attack)o(ers.)42 b(In)26 b(our)g(settings,)h (this)g(occurs)e(when)h(the)g(a)n(v)n(ail-)0 3097 y(able)17 b(bandwidth)e(drops)h(belo)n(w)h(533Kb/s,)f(which)h(occurs)f(when)0 3188 y(the)j(number)e(of)i(attack)o(ers)g(is)h(between)f(8)g(and)f(10.) 25 b(T)-7 b(o)19 b(see)h(these)0 3279 y(ef)n(fects)30 b(more)f(closely)-5 b(,)32 b(we)e(studied)g(ho)n(w)f(the)h(transfer)f (times)0 3371 y(with)19 b(our)f(design)g(increases)h(with)g(both)f (\002le)h(size)h(and)e(the)h(num-)0 3462 y(ber)j(of)h(attack)o(ers.)33 b(The)22 b(results)h(are)g(sho)n(wn)f(in)h(Figure)f(10.)33 b(W)-7 b(e)0 3553 y(see)25 b(that)f(when)g(the)g(number)e(of)i(attack)o (ers)g(increases)g(from)f(10)0 3645 y(to)e(100)f(the)g(bandwidth)f (share)h(of)h(a)g(le)o(gitimate)f(user)g(decreases)0 3736 y(from)g(1/\(10+10\))f(to)i(1/\(10+100\),)d(and)j(the)g(a)n(v)o (erage)f(\002le)i(trans-)0 3827 y(fer)e(time)g(increases)g(5.5)g (times.)75 3919 y(Under)25 b(the)i(same)g(attack)f(with)h(SIFF)-7 b(,)27 b(le)o(gitimate)f(users)h(are)0 4010 y(completely)i(starv)o(ed)h (when)h(the)g(intensity)f(of)h(the)g(attack)f(e)o(x-)0 4101 y(ceeds)f(the)h(bottleneck)e(bandwidth.)51 b(Again,)30 b(this)g(is)g(because)0 4193 y(the)25 b(request)f(pack)o(ets)g(are)h (treated)f(as)h(lo)n(w)g(priority)e(traf)n(\002c)h(and)0 4284 y(are)h(dropped)e(in)i(f)o(a)n(v)n(or)g(of)g(the)g(authorized)e (attack)i(traf)n(\002c.)40 b(W)-7 b(e)0 4375 y(see)36 b(in)f(Figure)g(9)g(that)h(the)f(request)g(completion)e(rate)j(drops)0 4467 y(sharply)19 b(to)g(zero)h(when)f(the)g(attacking)g(bandwidth)f (reaches)h(the)0 4558 y(bottleneck)f(bandwidth)g(of)h(10Mb/s.)24 b(The)c(v)o(ery)e(fe)n(w)i(\002le)g(trans-)0 4649 y(fers)28 b(that)h(complete)e(do)h(so)h(only)f(because)f(of)h(traf)n(\002c)h (\003uctua-)0 4741 y(tions,)f(and)d(suf)n(fer)h(a)g(sharp)g(increase)g (in)g(the)h(a)n(v)o(erage)e(transfer)0 4832 y(time.)0 5010 y Fs(5.4)99 b(Impr)n(ecise)26 b(A)-5 b(uthorization)25 b(P)n(olicies)75 5126 y Fr(Finally)-5 b(,)28 b(we)g(consider)e(the)i (impact)f(of)g(imprecise)g(policies,)0 5217 y(when)15 b(a)g(destination)f(sometimes)h(authorizes)f(attack)o(ers)h(because)0 5309 y(it)i(cannot)e(reliably)g(distinguish)g(between)h(le)o(gitimate)f (users)h(and)0 5400 y(attack)o(ers)26 b(at)h(the)g(time)f(that)h(it)g (recei)n(v)o(es)e(a)i(request;)i(in)e(the)f(re-)2200 1050 y @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 1800 @rwi @setspecial %%BeginDocument: figures/size.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: size.eps %%Creator: gnuplot 4.0 patchlevel 0 %%CreationDate: Mon Feb 7 20:52:10 2005 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -106 def /dl {10.0 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /Rounded false def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /N {newpath moveto} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /AL { stroke userlinewidth 2 div setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /UL { dup gnulinewidth mul /userlinewidth exch def dup 1 lt {pop 1} if 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /LTw { PL [] 1 setgray } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def /BoxColFill { gsave Rec /Fillden exch def currentrgbcolor /ColB exch def /ColG exch def /ColR exch def /ColR ColR Fillden mul Fillden sub 1 add def /ColG ColG Fillden mul Fillden sub 1 add def /ColB ColB Fillden mul Fillden sub 1 add def ColR ColG ColB setrgbcolor fill grestore } def % % PostScript Level 1 Pattern Fill routine % Usage: x y w h s a XX PatternFill % x,y = lower left corner of box to be filled % w,h = width and height of box % a = angle in degrees between lines and x-axis % XX = 0/1 for no/yes cross-hatch % /PatternFill { gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 M 0 PFs V } for 0 PFa 6 get ne { 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 2 1 roll M PFs 0 V } for } if stroke grestore } def % /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 320 scalefont setfont 1.000 UL LTb 1824 960 M 63 0 V 4769 0 R -63 0 V -4961 0 R gsave 0 setgray ( 0.1) Rshow grestore 1.000 UL LTb 1824 1238 M 31 0 V 4801 0 R -31 0 V 1824 1401 M 31 0 V 4801 0 R -31 0 V 1824 1516 M 31 0 V 4801 0 R -31 0 V -4801 90 R 31 0 V 4801 0 R -31 0 V -4801 73 R 31 0 V 4801 0 R -31 0 V -4801 62 R 31 0 V 4801 0 R -31 0 V -4801 53 R 31 0 V 4801 0 R -31 0 V -4801 48 R 31 0 V 4801 0 R -31 0 V -4801 42 R 63 0 V 4769 0 R -63 0 V -4961 0 R gsave 0 setgray ( 1) Rshow grestore 1.000 UL LTb 1824 2162 M 31 0 V 4801 0 R -31 0 V 1824 2325 M 31 0 V 4801 0 R -31 0 V 1824 2440 M 31 0 V 4801 0 R -31 0 V -4801 90 R 31 0 V 4801 0 R -31 0 V -4801 73 R 31 0 V 4801 0 R -31 0 V -4801 62 R 31 0 V 4801 0 R -31 0 V -4801 53 R 31 0 V 4801 0 R -31 0 V -4801 48 R 31 0 V 4801 0 R -31 0 V -4801 42 R 63 0 V 4769 0 R -63 0 V -4961 0 R gsave 0 setgray ( 10) Rshow grestore 1.000 UL LTb 1824 3086 M 31 0 V 4801 0 R -31 0 V 1824 3249 M 31 0 V 4801 0 R -31 0 V 1824 3364 M 31 0 V 4801 0 R -31 0 V -4801 90 R 31 0 V 4801 0 R -31 0 V -4801 73 R 31 0 V 4801 0 R -31 0 V -4801 62 R 31 0 V 4801 0 R -31 0 V -4801 53 R 31 0 V 4801 0 R -31 0 V -4801 48 R 31 0 V 4801 0 R -31 0 V -4801 42 R 63 0 V 4769 0 R -63 0 V -4961 0 R gsave 0 setgray ( 100) Rshow grestore 1.000 UL LTb 1824 4010 M 31 0 V 4801 0 R -31 0 V 1824 4173 M 31 0 V 4801 0 R -31 0 V 1824 4288 M 31 0 V 4801 0 R -31 0 V -4801 90 R 31 0 V 4801 0 R -31 0 V -4801 73 R 31 0 V 4801 0 R -31 0 V -4801 62 R 31 0 V 4801 0 R -31 0 V -4801 53 R 31 0 V 4801 0 R -31 0 V -4801 48 R 31 0 V 4801 0 R -31 0 V -4801 42 R 63 0 V 4769 0 R -63 0 V -4961 0 R gsave 0 setgray ( 1000) Rshow grestore 1.000 UL LTb 1824 960 M 0 63 V 0 3633 R 0 -63 V 0 -3953 R gsave 0 setgray ( 1) Cshow grestore 1.000 UL LTb 2188 960 M 0 31 V 0 3665 R 0 -31 V 2400 960 M 0 31 V 0 3665 R 0 -31 V 2551 960 M 0 31 V 0 3665 R 0 -31 V 2668 960 M 0 31 V 0 3665 R 0 -31 V 2764 960 M 0 31 V 0 3665 R 0 -31 V 2845 960 M 0 31 V 0 3665 R 0 -31 V 2915 960 M 0 31 V 0 3665 R 0 -31 V 2977 960 M 0 31 V 0 3665 R 0 -31 V 3032 960 M 0 63 V 0 3633 R 0 -63 V 0 -3953 R gsave 0 setgray ( 10) Cshow grestore 1.000 UL LTb 3396 960 M 0 31 V 0 3665 R 0 -31 V 3608 960 M 0 31 V 0 3665 R 0 -31 V 3759 960 M 0 31 V 0 3665 R 0 -31 V 3876 960 M 0 31 V 0 3665 R 0 -31 V 3972 960 M 0 31 V 0 3665 R 0 -31 V 4053 960 M 0 31 V 0 3665 R 0 -31 V 4123 960 M 0 31 V 0 3665 R 0 -31 V 4185 960 M 0 31 V 0 3665 R 0 -31 V 4240 960 M 0 63 V 0 3633 R 0 -63 V 0 -3953 R gsave 0 setgray ( 100) Cshow grestore 1.000 UL LTb 4604 960 M 0 31 V 0 3665 R 0 -31 V 4816 960 M 0 31 V 0 3665 R 0 -31 V 4967 960 M 0 31 V 0 3665 R 0 -31 V 5084 960 M 0 31 V 0 3665 R 0 -31 V 5180 960 M 0 31 V 0 3665 R 0 -31 V 5261 960 M 0 31 V 0 3665 R 0 -31 V 5331 960 M 0 31 V 0 3665 R 0 -31 V 5393 960 M 0 31 V 0 3665 R 0 -31 V 5448 960 M 0 63 V 0 3633 R 0 -63 V 0 -3953 R gsave 0 setgray ( 1000) Cshow grestore 1.000 UL LTb 5812 960 M 0 31 V 0 3665 R 0 -31 V 6024 960 M 0 31 V 0 3665 R 0 -31 V 6175 960 M 0 31 V 0 3665 R 0 -31 V 6292 960 M 0 31 V 0 3665 R 0 -31 V 6388 960 M 0 31 V 0 3665 R 0 -31 V 6469 960 M 0 31 V 0 3665 R 0 -31 V 6539 960 M 0 31 V 0 3665 R 0 -31 V 6601 960 M 0 31 V 0 3665 R 0 -31 V 6656 960 M 0 63 V 0 3633 R 0 -63 V 0 -3953 R gsave 0 setgray ( 10000) Cshow grestore 1.000 UL LTb 1.000 UL LTb 1824 960 M 4832 0 V 0 3696 V -4832 0 V 0 -3696 V LTb 320 2808 M gsave 0 setgray currentpoint gsave translate 90 rotate 0 0 M (File transfer time \(s\)) Cshow grestore grestore LTb 4240 160 M gsave 0 setgray (File size \(KByte\)) Cshow grestore 1.000 UP 2.000 UP 1.000 UL LT0 LTb 4512 4433 M gsave 0 setgray (1 attacker) Rshow grestore LT0 4704 4433 M 831 0 V 1824 1037 M 364 164 V 363 4 V 364 117 V 364 92 V 363 78 V 364 74 V 364 134 V 363 276 V 364 381 V 363 354 V 364 314 V 364 294 V 1824 1037 Star 2188 1201 Star 2551 1205 Star 2915 1322 Star 3279 1414 Star 3642 1492 Star 4006 1566 Star 4370 1700 Star 4733 1976 Star 5097 2357 Star 5460 2711 Star 5824 3025 Star 6188 3319 Star 5119 4433 Star 2.000 UP 1.000 UL LT1 LTb 4512 4113 M gsave 0 setgray (10 attackers) Rshow grestore LT1 4704 4113 M 831 0 V 1824 1066 M 364 170 V 363 36 V 364 131 V 364 112 V 363 140 V 364 208 V 364 265 V 363 292 V 364 294 V 363 290 V 364 284 V 364 282 V 1824 1066 Pls 2188 1236 Pls 2551 1272 Pls 2915 1403 Pls 3279 1515 Pls 3642 1655 Pls 4006 1863 Pls 4370 2128 Pls 4733 2420 Pls 5097 2714 Pls 5460 3004 Pls 5824 3288 Pls 6188 3570 Pls 5119 4113 Pls 2.000 UP 1.000 UL LT2 LTb 4512 3793 M gsave 0 setgray (100 attackers) Rshow grestore LT2 4704 3793 M 831 0 V 1824 1253 M 364 210 V 363 157 V 364 204 V 364 239 V 363 260 V 364 270 V 364 276 V 363 277 V 364 277 V 363 278 V 364 278 V 364 278 V 1824 1253 Crs 2188 1463 Crs 2551 1620 Crs 2915 1824 Crs 3279 2063 Crs 3642 2323 Crs 4006 2593 Crs 4370 2869 Crs 4733 3146 Crs 5097 3423 Crs 5460 3701 Crs 5824 3979 Crs 6188 4257 Crs 5119 3793 Crs 1.000 UL LTb 1824 960 M 4832 0 V 0 3696 V -4832 0 V 0 -3696 V 1.000 UP stroke grestore end showpage %%Trailer %%DocumentFonts: Helvetica %%EndDocument @endspecial 2000 1224 a Fn(Figur)o(e)j(10:)43 b Fm(Completion)27 b(time)e(when)g(the)g(size)g(of)g(r)o(equests)g(and)f(the)2000 1316 y(number)18 b(of)e(attack)o(ers)j(v)o(ary)-5 b(.)2000 1564 y Fr(quest)23 b(\003ood)g(described)g(abo)o(v)o(e,)g(we)h(assumed) f(the)h(destination)2000 1656 y(w)o(as)32 b(able)f(to)h(distinguish)e (requests)h(from)f(le)o(gitimate)h(clients)2000 1747 y(and)d(those)g(from)f(attack)o(ers.)49 b(In)28 b(the)h(e)o(xtreme)e (that)h(the)h(desti-)2000 1838 y(nation)e(cannot)g(dif)n(ferentiate)f (attack)o(ers)i(from)f(users)i(at)f(all,)j(it)2000 1930 y(must)21 b(grant)f(them)g(equally)-5 b(.)25 b(The)c(destination)e (then)h(essentially)2000 2021 y(plays)c(the)g(same)h(role)f(as)h(the)f (colluder)f(in)i(the)f(abo)o(v)o(e)f(authorized)2000 2112 y(traf)n(\002c)27 b(\003ood,)i(with)f(the)g(result)g(\(Figure)f (10\))g(that)h(the)g(request)2000 2204 y(completion)20 b(time)i(increases)g(in)g(proportion)c(with)23 b(the)e(number)2000 2295 y(of)f(attack)o(ers.)2075 2386 y(Ho)n(we)n(v)o(er)m(,)i(if)i(the)f (serv)o(er)g(is)h(able)g(to)f(dif)n(ferentiate)f(lik)o(ely)h(at-)2000 2478 y(tack)f(requests,)f(e)n(v)o(en)g(imprecisely)-5 b(,)21 b(our)g(design)g(is)i(still)g(able)e(to)2000 2569 y(limit)h(the)g(damage)f(of)g(DoS)h(\003oods.)30 b(T)-7 b(o)22 b(see)g(this,)g(we)h(simulate)2000 2660 y(the)16 b(simple)f(authorization)f(polic)o(y)g(described)h(in)g(Section)h(3.3:) 22 b(a)2000 2752 y(serv)o(er)f(initially)g(grants)g(all)i(requests,)e (b)n(ut)h(stops)g(rene)n(wing)e(ca-)2000 2843 y(pabilities)27 b(for)g(senders)g(that)h(misbeha)n(v)o(e)e(by)h(\003ooding)f(traf)n (\002c.)2000 2934 y(W)-7 b(e)30 b(set)f(the)g(serv)o(er)f(to)h(grant)f (an)h(initial)g(capability)f(of)h(32KB)2000 3026 y(in)d(10)g(seconds.) 42 b(This)26 b(allo)n(ws)g(an)g(attack)o(er)g(to)g(\003ood)f(at)i(a)g (rate)2000 3117 y(of)22 b(1Mb/s,)h(b)n(ut)g(for)f(only)g(32KB)h(until)f (the)h(capability)f(e)o(xpires.)2000 3208 y(The)g(serv)o(er)g(does)h (not)g(rene)n(w)f(capabilities)h(because)f(of)g(the)h(at-)2000 3300 y(tack.)32 b(Figure)22 b(11)g(sho)n(ws)h(ho)n(w)f(the)h(\002le)g (transfer)f(time)h(changes)2000 3391 y(for)j(our)f(design)h(with)h (this)g(polic)o(y)e(as)j(an)e(attack)g(commences.)2000 3482 y(There)g(are)h(tw)o(o)g(attacks:)39 b(a)27 b(high)f(intensity)h (one)f(in)i(which)e(all)2000 3574 y(100)f(attack)o(ers)i(attack)f (simultaneously;)i(and)e(a)h(lo)n(w)f(intensity)2000 3665 y(one)21 b(in)h(which)g(the)f(100)g(attack)o(ers)h(di)n(vide)f (into)h(10)f(groups)f(that)2000 3756 y(\003ood)14 b(one)h(after)g(the)h (other)m(,)f(as)h(one)f(group)e(\002nishes)j(their)f(attack.)2000 3847 y(W)-7 b(e)29 b(see)f(that)g(the)g(high)f(intensity)h(attack)f (causes)i(the)e(transfer)2000 3939 y(time)g(to)f(jump)g(to)h(almost)g (2)g(seconds)f(for)g(around)e(2)j(seconds;)2000 4030 y(the)d(lo)n(w)h(intensity)f(attack)h(v)o(ery)e(slightly)i(increases)f (the)h(trans-)2000 4121 y(fer)20 b(time,)g(b)n(ut)g(for)g(a)g(longer)f (a)i(duration)d(of)i(about)f(5)i(seconds.)2075 4213 y(Figure)33 b(11)h(also)h(sho)n(ws)f(the)h(results)g(for)e(SIFF)j(under)d(the)2000 4304 y(same)26 b(attacks.)41 b(In)26 b(SIFF)-7 b(,)26 b(the)g(e)o(xpiration)e(of)h(a)h(capability)f(de-)2000 4395 y(pends)16 b(on)h(changing)f(a)h(router)f(secret)i(\226)f(e)n(v)o (en)g(if)g(the)h(destination)2000 4487 y(determines)j(that)i(the)f (sender)g(is)h(misbeha)n(ving)e(it)i(is)g(po)n(werless)2000 4578 y(to)16 b(re)n(v)n(ok)o(e)g(the)g(authorization)f(beforehand.)20 b(This)d(suggests)f(that)2000 4669 y(rapid)21 b(k)o(e)o(y)g(turno)o(v)o (er)e(is)k(needed,)e(b)n(ut)h(there)f(are)h(practical)g(limi-)2000 4761 y(tations)i(that)g(limit)g(ho)n(w)g(quickly)f(the)h(secret)g(can)g (be)g(changed,)2000 4852 y(e.g.,)d(the)h(life)g(time)g(of)g(a)g(router) f(secret)h(should)f(be)g(longer)g(than)2000 4943 y(a)h(small)g (multiple)f(of)h(TCP)g(timeouts.)29 b(In)22 b(our)f(e)o(xperiment,)e (we)2000 5035 y(assume)28 b(SIFF)h(can)f(e)o(xpire)f(its)j (capabilities)e(e)n(v)o(ery)f(three)g(sec-)2000 5126 y(onds.)d(By)d(contrast,)f(our)f(design)h(e)o(xpires)f(its)i (capabilities)f(with)2000 5217 y(the)26 b(router)f(secret)h(e)n(v)o (ery)f(64)h(seconds.)43 b(W)-7 b(e)27 b(see)g(that)f(both)f(at-)2000 5309 y(tacks)e(ha)n(v)o(e)g(a)g(much)f(more)g(pronounced)e(ef)n(fect)i (on)h(SIFF)-7 b(.)24 b(The)2000 5400 y(high)17 b(intensity)g(attack)h (lasts)h(for)e(three)g(seconds,)h(while)g(the)g(lo)n(w)1908 5649 y(11)p eop end %%Page: 12 12 TeXDict begin 12 11 bop 200 1050 a @beginspecial 50 @llx 50 @lly 410 @urx 302 @ury 1800 @rwi @setspecial %%BeginDocument: figures/bot-us.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: bot-us.eps %%Creator: gnuplot 4.0 patchlevel 0 %%CreationDate: Mon Feb 7 20:52:20 2005 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%Orientation: Portrait %%EndComments /gnudict 256 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /vshift -120 def /dl {10.0 mul} def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def /Rounded false def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /N {newpath moveto} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse } def /BL { stroke userlinewidth 2 mul setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /AL { stroke userlinewidth 2 div setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /UL { dup gnulinewidth mul /userlinewidth exch def dup 1 lt {pop 1} if 10 mul /udl exch def } def /PL { stroke userlinewidth setlinewidth Rounded { 1 setlinejoin 1 setlinecap } if } def /LTw { PL [] 1 setgray } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 1 0 0 DL } def /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /Pnt { stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore } def /Dia { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt } def /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt } def /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt } def /Star { 2 copy Pls Crs } def /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill } def /TriUF { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill } def /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt } def /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill } def /Pent { stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt } def /PentF { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore } def /Circle { stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt } def /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def /C1 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath } bind def /C2 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C3 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath } bind def /C4 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath } bind def /C5 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc } bind def /C6 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath } bind def /C7 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath } bind def /C8 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C9 { BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath } bind def /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath } bind def /C11 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath } bind def /C12 { BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C13 { BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath } bind def /C14 { BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc } bind def /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath } bind def /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath } bind def /Square { dup Rec } bind def /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare } bind def /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare } bind def /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def /DiaE { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke } def /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke } def /TriUE { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke } def /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke } def /PentE { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore } def /CircE { stroke [] 0 setdash hpt 0 360 arc stroke } def /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def /DiaW { stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke } def /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke } def /TriUW { stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke } def /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke } def /PentW { stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore } def /CircW { stroke [] 0 setdash hpt 0 360 arc Opaque stroke } def /BoxFill { gsave Rec 1 setgray fill grestore } def /BoxColFill { gsave Rec /Fillden exch def currentrgbcolor /ColB exch def /ColG exch def /ColR exch def /ColR ColR Fillden mul Fillden sub 1 add def /ColG ColG Fillden mul Fillden sub 1 add def /ColB ColB Fillden mul Fillden sub 1 add def ColR ColG ColB setrgbcolor fill grestore } def % % PostScript Level 1 Pattern Fill routine % Usage: x y w h s a XX PatternFill % x,y = lower left corner of box to be filled % w,h = width and height of box % a = angle in degrees between lines and x-axis % XX = 0/1 for no/yes cross-hatch % /PatternFill { gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 M 0 PFs V } for 0 PFa 6 get ne { 0 1 PFs PFa 4 get div 1 add floor cvi { PFa 4 get mul 0 2 1 roll M PFs 0 V } for } if stroke grestore } def % /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop end %%EndProlog gnudict begin gsave 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 360 scalefont setfont 1.000 UL LTb 1404 1080 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 0) Rshow grestore 1.000 UL LTb 1404 1560 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 1) Rshow grestore 1.000 UL LTb 1404 2040 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 2) Rshow grestore 1.000 UL LTb 1404 2520 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 3) Rshow grestore 1.000 UL LTb 1404 3000 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 4) Rshow grestore 1.000 UL LTb 1404 3480 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 5) Rshow grestore 1.000 UL LTb 1404 3960 M 63 0 V 5121 0 R -63 0 V -5337 0 R gsave 0 setgray ( 6) Rshow grestore 1.000 UL LTb 1404 1080 M 0 63 V 0 2817 R 0 -63 V 0 -3177 R gsave 0 setgray ( 0) Cshow grestore 1.000 UL LTb 2268 1080 M 0 63 V 0 2817 R 0 -63 V 0 -3177 R gsave 0 setgray ( 10) Cshow grestore 1.000 UL LTb 3132 1080 M 0 63 V 0 2817 R 0 -63 V 0 -3177 R gsave 0 setgray ( 20) Cshow grestore 1.000 UL LTb 3996 1080 M 0 63 V 0 2817 R 0 -63 V 0 -3177 R gsave 0 setgray ( 30) Cshow grestore 1.000 UL LTb 4860 1080 M 0 63 V 0 2817 R 0 -63 V 0 -3177 R gsave 0 setgray ( 40) Cshow grestore 1.000 UL LTb 5724 1080 M 0 63 V 0 2817 R 0 -63 V 0 -3177 R gsave 0 setgray ( 50) Cshow grestore 1.000 UL LTb 6588 1080 M 0 63 V 0 2817 R 0 -63 V 0 -3177 R gsave 0 setgray ( 60) Cshow grestore 1.000 UL LTb 1.000 UL LTb 1404 1080 M 5184 0 V 0 2880 V -5184 0 V 0 -2880 V LTb 360 2520 M gsave 0 setgray currentpoint gsave translate 90 rotate 0 0 M (File transfer time \(s\)) Cshow grestore grestore LTb 3996 180 M gsave 0 setgray (Time \(s\)) Cshow grestore LTb 3996 4500 M gsave 0 setgray (Our design) Cshow grestore 1.000 UP 1.000 UP 1.000 UL LT0 LTb 5661 3717 M gsave 0 setgray (all at once) Rshow grestore LT0 5877 3717 M 279 0 V 1474 1230 M 27 0 V 27 0 V 9 0 V 18 0 V 9 0 V 5 0 V 13 0 V 9 0 V 4 1 V 1 1 V 13 -2 V 9 0 V 4 1 V 1 0 V 13 -1 V 9 0 V 4 1 V 1 0 V 13 -1 V 9 1 V 5 0 V 13 -1 V 9 1 V 5 0 V 13 -1 V 10 1 V 4 0 V 1 0 V 12 -1 V 10 2 V 4 1 V 1 1 V 5 -2 V 7 -2 V 10 3 V 5 -1 V 0 1 V 5 -3 V 7 1 V 11 2 V 4 -3 V 1 3 V 4 -3 V 7 2 V 5 -2 V 6 4 V 4 -4 V 2 3 V 3 -3 V 8 2 V 4 -2 V 7 3 V 3 -3 V 2 3 V 3 -2 V 5 -1 V 3 3 V 4 -3 V 7 3 V 3 -2 V 3 2 V 2 -3 V 5 0 V 4 3 V 3 -2 V 8 2 V 2 -2 V 3 2 V 2 -3 V 5 0 V 4 3 V 3 -2 V 8 2 V 2 -3 V 4 3 V 1 -1 V 5 0 V 5 1 V 2 -3 V 9 4 V 1 -2 V 4 1 V 2 1 V 4 -1 V 5 -2 V 2 1 V 10 6 V 1 -3 V 4 -3 V 0 4 V 1 0 V 5 -4 V 4 -1 V 3 3 V 10 -3 V 1 4 V 3 -5 V 1 1 V 1 2 V 4 -3 V 5 0 V 2 1 V stroke 2047 1231 M 10 0 V 2 1 V 2 -2 V 1 0 V 2 1 V 3 -1 V 5 0 V 2 0 V 11 0 V 1 0 V 2 0 V 1 0 V 2 0 V 3 0 V 5 0 V 2 0 V 11 0 V 1 0 V 2 4 V 0 2 V 1 -3 V 2 -3 V 3 2 V 5 -1 V 2 -1 V 11 3 V 1 -2 V 3 -1 V 0 2 V 1 1 V 1 -1 V 4 0 V 4 -2 V 2 2 V 11 3 V 1 -1 V 3 -4 V 1 2 V 1 0 V 4 0 V 4 -2 V 3 1 V 11 3 V 1 -1 V 2 -3 V 1 2 V 1 0 V 1 -1 V 3 1 V 4 -2 V 3 1 V 12 2 V 0 1 V 2 -2 V 1 0 V 1 0 V 1 -1 V 4 1 V 3 -1 V 3 0 V 12 1 V 1 3 V 1 -2 V 1 5 V 2 37 V 0 -1 V 4 410 V 3 -15 V 3 224 V 13 114 V 1 -5 V 0 -1 V 3 -13 V 8 16 V 0 -1 V 78 -79 V 44 -227 V 33 -176 V 0 1 V 11 -57 V 0 -1 V 64 -218 V 3 -12 V 1 -1 V 0 7 V 0 4 V 1 0 V 0 3 V 25 -14 V 0 10 V 0 -1 V 2 -4 V 1 -3 V 1 0 V 1 3 V 0 2 V 1 0 V 21 -7 V 2 4 V 1 2 V 1 0 V 1 0 V 0 -1 V 2 -2 V stroke 2583 1236 M 0 -1 V 0 2 V 21 -2 V 2 0 V 1 -1 V 1 0 V 1 -1 V 0 2 V 1 1 V 1 -1 V 0 1 V 1 0 V 19 -5 V 3 4 V 1 2 V 1 0 V 0 -1 V 1 -1 V 1 0 V 1 0 V 1 0 V 19 -2 V 3 2 V 1 -1 V 1 1 V 0 2 V 1 -2 V 1 0 V 1 0 V 1 0 V 18 -2 V 4 2 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 18 -1 V 4 2 V 1 0 V 1 0 V 1 -1 V 1 1 V 1 -1 V 0 1 V 1 -1 V 17 -1 V 5 1 V 1 0 V 1 1 V 0 -1 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 5 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 4 V 5 -5 V 1 0 V 1 0 V 0 1 V 1 0 V 1 0 V 1 0 V 0 1 V 1 -1 V 18 -3 V 4 3 V 1 2 V 0 -2 V 1 0 V 1 0 V 1 0 V 1 -1 V 0 1 V 1 0 V 17 -2 V 5 0 V 1 1 V 0 1 V 1 0 V 1 0 V 1 0 V 0 -1 V 1 1 V 1 0 V 17 0 V 4 -4 V 2 1 V 1 -1 V 1 0 V 1 3 V 0 -1 V 1 -1 V 0 2 V 18 0 V stroke 2909 1234 M 3 -2 V 2 0 V 1 -1 V 0 2 V 1 -2 V 1 0 V 1 1 V 1 1 V 0 -1 V 17 1 V 4 -1 V 1 0 V 1 1 V 1 0 V 1 -1 V 1 0 V 1 0 V 18 0 V 3 1 V 2 0 V 1 4 V 0 1 V 1 1 V 1 -1 V 1 -1 V 1 -1 V 17 -3 V 4 -2 V 1 2 V 2 -2 V 1 0 V 1 1 V 1 0 V 1 1 V 0 2 V 17 0 V 3 -4 V 2 1 V 1 1 V 1 -1 V 1 0 V 1 -1 V 1 1 V 1 1 V 17 0 V 2 -1 V 2 0 V 1 0 V 1 1 V 1 -1 V 1 1 V 2 0 V 17 1 V 2 -4 V 2 1 V 2 1 V 1 0 V 1 -1 V 1 0 V 1 0 V 1 0 V 17 0 V 1 1 V 3 -1 V 1 0 V 1 1 V 1 0 V 1 0 V 1 0 V 1 -1 V 17 0 V 2 1 V 2 -1 V 1 0 V 2 1 V 1 0 V 1 0 V 1 -1 V 17 0 V 2 1 V 2 -1 V 1 0 V 2 1 V 1 0 V 1 0 V 1 -1 V 1 0 V 17 0 V 2 1 V 1 -1 V 2 0 V 1 1 V 1 0 V 1 0 V 1 -1 V 1 0 V 17 0 V 2 1 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V stroke 3220 1232 M 1 0 V 17 0 V 2 0 V 2 0 V 1 0 V 2 0 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 2 0 V 1 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 1 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 2 0 V 1 0 V 2 0 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 2 0 V 1 0 V 2 0 V 1 0 V 1 0 V 1 0 V 17 0 V 3 0 V 1 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 2 V 2 -1 V 2 -1 V 1 0 V 2 -1 V 0 1 V 1 -1 V 1 1 V 1 0 V 17 -2 V 3 2 V 1 0 V 1 0 V 2 -1 V 1 0 V 1 0 V 1 1 V 17 0 V 3 1 V 1 -1 V 2 0 V 1 -1 V 1 0 V 1 0 V 1 1 V 1 0 V 17 1 V 2 1 V 2 2 V 1 1 V 1 -1 V 1 0 V 1 -2 V 1 0 V 1 0 V 17 -2 V 3 2 V 2 -1 V 1 -2 V 1 0 V 1 0 V 1 1 V 0 1 V 1 1 V 1 -1 V 17 0 V 3 0 V 1 -2 V 1 2 V 1 -1 V 1 0 V 1 -1 V stroke 3547 1231 M 0 1 V 2 0 V 0 1 V 17 0 V 3 0 V 1 -1 V 2 0 V 1 1 V 0 3 V 1 1 V 1 -1 V 1 -3 V 1 0 V 17 1 V 3 0 V 1 3 V 1 -1 V 1 -3 V 1 -1 V 1 0 V 1 1 V 1 -2 V 0 2 V 18 -1 V 3 1 V 1 2 V 1 -2 V 1 2 V 1 -2 V 1 -3 V 0 2 V 1 0 V 1 -1 V 17 2 V 3 1 V 2 -2 V 1 -1 V 1 1 V 0 2 V 1 -2 V 1 0 V 0 2 V 1 -1 V 17 1 V 4 -2 V 1 0 V 1 1 V 1 -2 V 1 2 V 0 1 V 1 -2 V 1 -1 V 1 0 V 17 2 V 3 0 V 2 -1 V 1 0 V 0 -1 V 1 -1 V 1 1 V 0 1 V 1 1 V 1 -1 V 18 1 V 3 -2 V 1 3 V 1 -2 V 1 1 V 0 -1 V 1 0 V 1 0 V 1 1 V 0 -1 V 18 -1 V 3 1 V 2 -1 V 0 1 V 1 1 V 1 0 V 1 -1 V 1 0 V 1 0 V 17 0 V 3 0 V 2 0 V 1 0 V 1 -1 V 0 1 V 1 0 V 1 0 V 1 0 V 18 1 V 3 -1 V 1 0 V 1 0 V 1 -1 V 1 0 V 0 1 V 1 0 V 1 0 V 18 0 V 3 0 V 2 0 V 1 1 V stroke 3847 1233 M 1 -1 V 1 0 V 1 0 V 1 0 V 18 -1 V 2 1 V 2 0 V 1 0 V 1 1 V 1 -1 V 1 0 V 1 0 V 18 0 V 3 0 V 1 0 V 1 0 V 1 -1 V 1 1 V 1 0 V 1 0 V 18 1 V 3 -1 V 2 1 V 0 -1 V 1 -1 V 1 0 V 1 1 V 1 0 V 1 0 V 18 0 V 2 0 V 2 -1 V 1 1 V 1 1 V 0 -1 V 1 0 V 1 0 V 1 0 V 18 -1 V 3 1 V 2 0 V 1 1 V 1 0 V 1 -1 V 1 0 V 1 0 V 17 1 V 3 0 V 2 0 V 2 -1 V 0 1 V 1 0 V 2 -1 V 0 1 V 18 0 V 3 -1 V 1 -1 V 1 1 V 1 0 V 1 -1 V 1 1 V 1 1 V 0 -1 V 18 -1 V 3 1 V 2 0 V 1 1 V 1 -1 V 1 0 V 1 0 V 1 0 V 18 0 V 2 1 V 2 2 V 1 3 V 1 0 V 0 1 V 1 -1 V 1 0 V 1 -1 V 0 -1 V 18 -4 V 3 -1 V 2 3 V 1 -3 V 1 0 V 1 0 V 1 1 V 0 1 V 1 2 V 17 1 V 3 -4 V 3 4 V 1 0 V 1 -1 V 1 -1 V 1 -2 V 1 -1 V 0 2 V 17 1 V 2 0 V 4 -1 V 0 1 V 1 -1 V stroke 4177 1233 M 1 2 V 1 5 V 0 2 V 1 -2 V 1 -2 V 17 1 V 2 -4 V 3 -3 V 1 6 V 1 -1 V 1 -2 V 1 -5 V 1 0 V 1 6 V 18 -5 V 1 5 V 3 -6 V 2 3 V 0 1 V 1 0 V 0 1 V 1 -2 V 2 0 V 17 -1 V 2 0 V 2 -1 V 2 1 V 1 2 V 1 0 V 1 -1 V 1 -1 V 1 2 V 16 -1 V 2 0 V 2 0 V 2 -1 V 1 -2 V 1 1 V 1 -1 V 0 2 V 2 -2 V 0 1 V 17 1 V 2 2 V 1 -2 V 3 0 V 0 1 V 1 -1 V 1 1 V 1 -1 V 1 -2 V 17 1 V 3 0 V 1 2 V 2 -2 V 1 0 V 1 0 V 1 1 V 1 0 V 1 -1 V 17 0 V 2 0 V 1 0 V 2 0 V 1 0 V 1 0 V 1 1 V 0 -1 V 1 0 V 1 0 V 17 0 V 2 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 2 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 2 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 2 0 V 2 0 V 1 0 V 2 0 V 1 0 V 1 0 V 17 0 V stroke 4500 1231 M 2 0 V 1 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 2 -1 V 1 1 V 1 0 V 1 0 V 1 0 V 1 0 V 0 2 V 1 -1 V 17 -1 V 2 0 V 2 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 1 V 17 0 V 2 -1 V 2 0 V 2 1 V 1 0 V 1 -1 V 1 0 V 1 0 V 1 1 V 16 0 V 2 0 V 2 4 V 2 -4 V 1 0 V 1 0 V 1 1 V 1 0 V 1 0 V 17 0 V 2 -2 V 2 0 V 2 1 V 1 0 V 1 -1 V 1 0 V 1 0 V 0 1 V 17 0 V 2 0 V 2 -1 V 2 1 V 1 0 V 1 0 V 1 0 V 1 0 V 1 -1 V 17 1 V 2 1 V 2 -1 V 1 0 V 1 1 V 1 4 V 1 0 V 0 -1 V 1 -1 V 1 -1 V 17 0 V 2 -4 V 2 2 V 2 0 V 1 -2 V 1 0 V 1 1 V 0 1 V 1 0 V 1 1 V 17 2 V 1 -3 V 2 0 V 2 0 V 1 0 V 1 -1 V 1 0 V 1 0 V 1 1 V 18 0 V 0 1 V 3 -2 V 1 1 V 1 0 V 1 -1 V 1 -1 V 1 1 V 1 1 V 0 2 V 18 -1 V 1 1 V 2 -3 V stroke 4804 1231 M 2 1 V 0 1 V 1 -2 V 1 0 V 1 0 V 1 -1 V 1 1 V 17 2 V 2 2 V 1 -2 V 2 -1 V 1 0 V 1 0 V 0 -1 V 1 1 V 1 -1 V 1 -1 V 18 5 V 2 0 V 1 0 V 1 -3 V 1 -2 V 1 1 V 1 0 V 2 0 V 19 2 V 1 -1 V 2 2 V 1 0 V 1 -1 V 1 0 V 1 -1 V 1 -1 V 20 1 V 1 2 V 1 -1 V 1 -1 V 1 1 V 1 -1 V 1 1 V 1 0 V 1 -1 V 19 -1 V 2 1 V 1 1 V 1 -1 V 1 1 V 1 0 V 1 -1 V 0 2 V 1 -1 V 19 -1 V 2 -1 V 1 2 V 1 -1 V 1 -2 V 1 2 V 1 0 V 1 1 V 1 -1 V 18 0 V 2 0 V 2 0 V 0 1 V 1 -1 V 1 0 V 1 0 V 2 0 V 19 0 V 2 0 V 1 -1 V 1 2 V 1 -1 V 1 0 V 1 0 V 1 0 V 19 0 V 2 0 V 2 0 V 0 -1 V 1 1 V 1 0 V 1 0 V 1 0 V 1 0 V 19 0 V 1 0 V 2 0 V 1 1 V 0 -1 V 1 0 V 1 0 V 2 0 V 19 0 V 2 0 V 1 0 V 1 -1 V 1 1 V 1 0 V 1 0 V 1 0 V 19 2 V 2 0 V 2 2 V stroke 5134 1236 M 0 -1 V 1 -1 V 1 -1 V 1 1 V 0 -1 V 1 0 V 1 0 V 19 0 V 2 -1 V 2 -2 V 0 1 V 1 1 V 1 0 V 1 0 V 1 0 V 20 1 V 1 -1 V 2 1 V 1 0 V 1 -1 V 1 0 V 1 0 V 1 0 V 19 0 V 1 2 V 2 3 V 1 1 V 1 1 V 1 0 V 1 -1 V 1 -1 V 0 -1 V 19 -4 V 2 1 V 2 -1 V 1 -2 V 1 1 V 1 1 V 1 1 V 0 2 V 1 0 V 19 -3 V 2 0 V 2 4 V 1 -1 V 1 -2 V 1 -2 V 1 0 V 1 0 V 0 2 V 18 0 V 2 2 V 3 -3 V 1 2 V 1 3 V 0 3 V 1 0 V 1 -1 V 1 -3 V 17 -2 V 3 -3 V 2 3 V 1 3 V 1 -4 V 1 -1 V 1 -2 V 1 0 V 1 4 V 0 1 V 17 -2 V 2 0 V 3 0 V 1 2 V 1 1 V 1 -1 V 1 -3 V 1 2 V 1 0 V 17 -2 V 2 0 V 2 -1 V 2 1 V 1 -1 V 0 1 V 1 1 V 2 0 V 0 3 V 17 -5 V 2 2 V 3 -3 V 1 4 V 1 1 V 1 0 V 1 -1 V 0 -1 V 2 -3 V 1 1 V 15 -1 V 3 3 V 2 -1 V 2 -2 V 1 0 V 0 1 V 1 0 V stroke 5441 1231 M 1 1 V 1 -1 V 1 -1 V 15 1 V 3 1 V 2 0 V 2 -2 V 1 0 V 1 1 V 1 0 V 1 1 V 1 -2 V 15 2 V 4 0 V 1 -2 V 2 1 V 1 0 V 1 -1 V 1 2 V 1 0 V 1 0 V 16 0 V 3 -2 V 1 2 V 2 1 V 1 -1 V 1 -1 V 1 0 V 1 0 V 1 1 V 16 1 V 3 -2 V 2 0 V 2 0 V 0 1 V 1 0 V 1 -2 V 1 1 V 1 0 V 17 0 V 2 1 V 2 -1 V 2 0 V 1 0 V 1 1 V 1 -1 V 1 -1 V 1 1 V 16 0 V 2 0 V 2 1 V 2 -1 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 16 1 V 3 -2 V 1 2 V 2 -1 V 1 0 V 1 0 V 1 1 V 0 -1 V 1 0 V 1 0 V 17 2 V 2 -2 V 2 0 V 1 0 V 1 -1 V 1 1 V 1 0 V 1 0 V 1 0 V 17 1 V 2 -1 V 2 0 V 2 1 V 0 1 V 1 -1 V 1 -1 V 1 0 V 1 0 V 17 0 V 2 1 V 2 -1 V 2 1 V 1 1 V 0 -1 V 1 1 V 1 -1 V 1 1 V 0 -1 V 18 0 V 2 5 V 1 1 V 2 -6 V 1 -1 V 1 1 V 1 1 V 1 0 V 1 0 V stroke 5743 1233 M 17 -1 V 3 2 V 2 -1 V 1 0 V 1 0 V 1 -1 V 1 1 V 1 -2 V 0 1 V 17 2 V 4 -1 V 1 -1 V 1 0 V 1 0 V 1 0 V 1 -2 V 0 2 V 1 0 V 1 0 V 17 1 V 3 0 V 2 0 V 1 3 V 1 2 V 1 0 V 1 -1 V 0 -1 V 1 -1 V 18 -5 V 3 2 V 1 3 V 2 -5 V 1 1 V 0 1 V 1 -1 V 1 2 V 0 1 V 1 0 V 17 3 V 3 -4 V 2 3 V 1 -1 V 1 -2 V 1 0 V 0 -1 V 1 -1 V 1 0 V 1 1 V 17 2 V 3 0 V 2 -1 V 1 1 V 1 1 V 1 4 V 1 1 V 1 -2 V 18 0 V 2 -6 V 3 2 V 0 2 V 1 1 V 1 -1 V 1 -5 V 1 -1 V 1 2 V 0 2 V 18 -3 V 1 5 V 4 -3 V 1 -1 V 1 -1 V 0 3 V 1 0 V 0 -1 V 2 -3 V 0 2 V 17 0 V 3 3 V 2 -3 V 1 0 V 1 -1 V 1 -1 V 0 2 V 1 2 V 1 -2 V 1 0 V 17 1 V 2 0 V 2 -1 V 1 1 V 1 1 V 1 -2 V 1 -1 V 1 1 V 1 0 V 17 -1 V 3 1 V 2 0 V 1 0 V 1 0 V 0 1 V 1 -1 V 1 0 V 1 0 V stroke 6046 1232 M 17 -1 V 3 1 V 2 0 V 1 -1 V 1 0 V 1 1 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 2 0 V 1 0 V 1 -1 V 1 1 V 1 0 V 1 0 V 1 0 V 17 0 V 3 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 3 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 2 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 3 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 0 V 3 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 1 V 3 -1 V 2 0 V 1 0 V 1 0 V 1 -1 V 0 1 V 1 0 V 1 0 V 1 0 V 17 0 V 3 0 V 2 0 V 1 0 V 1 0 V 1 0 V 1 0 V 1 0 V 17 -1 V 3 1 V 2 0 V 1 0 V 1 1 V 1 -1 V 1 1 V 1 -1 V 18 1 V 2 2 V 2 0 V 1 0 V 1 -2 V 1 1 V 0 -1 V 2 0 V 1 0 V 17 -2 V 3 0 V 2 1 V 1 0 V 1 0 V 1 1 V 1 0 V 1 1 V 0 -1 V stroke 6374 1233 M 17 0 V 3 -1 V 2 1 V 2 -1 V 1 0 V 2 -1 V 1 1 V 17 2 V 3 1 V 2 -2 V 1 0 V 0 4 V 2 -1 V 0 2 V 1 2 V 0 -2 V 1 -2 V 17 0 V 4 -3 V 2 1 V 0 2 V 2 -4 V 1 -2 V 0 2 V 2 -2 V 0 3 V 0 2 V 18 -3 V 2 1 V 2 1 V 1 -1 V 1 2 V 1 -2 V 1 -1 V 1 -1 V 0 -1 V 1 1 V 17 0 V 3 2 V 2 0 V 1 -2 V 1 2 V 1 1 V 1 4 V 1 -2 V 17 2 V 3 -6 V 3 4 V 0 1 V 1 -1 V 1 1 V 1 -3 V 1 -3 V 1 1 V 0 1 V 18 -1 V 2 2 V 1474 1230 Pls 1501 1230 Pls 1528 1230 Pls 1537 1230 Pls 1555 1230 Pls 1564 1230 Pls 1569 1230 Pls 1582 1230 Pls 1591 1230 Pls 1595 1231 Pls 1596 1232 Pls 1609 1230 Pls 1618 1230 Pls 1622 1231 Pls 1623 1231 Pls 1636 1230 Pls 1645 1230 Pls 1649 1231 Pls 1650 1231 Pls 1663 1230 Pls 1672 1231 Pls 1677 1231 Pls 1677 1231 Pls 1690 1230 Pls 1699 1231 Pls 1704 1231 Pls 1704 1231 Pls 1717 1230 Pls 1727 1231 Pls 1731 1231 Pls 1732 1231 Pls 1744 1230 Pls 1754 1232 Pls 1758 1233 Pls 1759 1234 Pls 1764 1232 Pls 1771 1230 Pls 1781 1233 Pls 1786 1232 Pls 1786 1233 Pls 1791 1230 Pls 1798 1231 Pls 1809 1233 Pls 1813 1230 Pls 1814 1233 Pls 1818 1230 Pls 1825 1232 Pls 1830 1230 Pls 1836 1234 Pls 1840 1230 Pls 1842 1233 Pls 1845 1230 Pls 1853 1232 Pls 1857 1230 Pls 1864 1233 Pls 1867 1230 Pls 1869 1233 Pls 1872 1231 Pls 1877 1230 Pls 1880 1233 Pls 1884 1230 Pls 1891 1233 Pls 1894 1231 Pls 1897 1233 Pls 1899 1230 Pls 1904 1230 Pls 1908 1233 Pls 1911 1231 Pls 1919 1233 Pls 1921 1231 Pls 1924 1233 Pls 1926 1230 Pls 1931 1230 Pls 1935 1233 Pls 1938 1231 Pls 1946 1233 Pls 1948 1230 Pls 1952 1233 Pls 1953 1232 Pls 1958 1232 Pls 1963 1233 Pls 1965 1230 Pls 1974 1234 Pls 1975 1232 Pls 1979 1233 Pls 1981 1234 Pls 1985 1233 Pls 1990 1231 Pls 1992 1232 Pls 2002 1238 Pls 2003 1235 Pls 2007 1232 Pls 2007 1236 Pls 2008 1236 Pls 2013 1232 Pls 2017 1231 Pls 2020 1234 Pls 2030 1231 Pls 2031 1235 Pls 2034 1230 Pls 2035 1231 Pls 2036 1233 Pls 2040 1230 Pls 2045 1230 Pls 2047 1231 Pls 2057 1231 Pls 2059 1232 Pls 2061 1230 Pls 2062 1230 Pls 2064 1231 Pls 2067 1230 Pls 2072 1230 Pls 2074 1230 Pls 2085 1230 Pls 2086 1230 Pls 2088 1230 Pls 2089 1230 Pls 2091 1230 Pls 2094 1230 Pls 2099 1230 Pls 2101 1230 Pls 2112 1230 Pls 2113 1230 Pls 2115 1234 Pls 2115 1236 Pls 2116 1233 Pls 2118 1230 Pls 2121 1232 Pls 2126 1231 Pls 2128 1230 Pls 2139 1233 Pls 2140 1231 Pls 2143 1230 Pls 2143 1232 Pls 2144 1233 Pls 2145 1232 Pls 2149 1232 Pls 2153 1230 Pls 2155 1232 Pls 2166 1235 Pls 2167 1234 Pls 2170 1230 Pls 2171 1232 Pls 2172 1232 Pls 2172 1232 Pls 2176 1232 Pls 2180 1230 Pls 2183 1231 Pls 2194 1234 Pls 2195 1233 Pls 2197 1230 Pls 2198 1232 Pls 2199 1232 Pls 2200 1231 Pls 2203 1232 Pls 2207 1230 Pls 2210 1231 Pls 2222 1233 Pls 2222 1234 Pls 2224 1232 Pls 2225 1232 Pls 2226 1232 Pls 2227 1231 Pls 2231 1232 Pls 2234 1231 Pls 2237 1231 Pls 2249 1232 Pls 2250 1235 Pls 2251 1233 Pls 2252 1238 Pls 2254 1275 Pls 2254 1274 Pls 2254 1274 Pls 2258 1684 Pls 2261 1669 Pls 2264 1893 Pls 2277 2007 Pls 2278 2002 Pls 2278 2001 Pl