KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/21573/root/usr/share/doc/iproute-2.6.18/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/21573/root/usr/share/doc/iproute-2.6.18/ip-cref.ps
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
%%Title: ip-cref.dvi
%%Pages: 60
%%PageOrder: Ascend
%%BoundingBox: 0 0 595 842
%%DocumentFonts: CMCSC10 CMR12 CMBX12 CMTI12 CMTT12 CMR10 CMSY10 CMSL12
%%+ CMTT10 CMTI10
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips ip-cref.dvi -o ip-cref.ps
%DVIPSParameters: dpi=600
%DVIPSSource:  TeX output 2012.08.09:0533
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end

%%EndProcSet
%%BeginProcSet: texps.pro 0 0
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
end

%%EndProcSet
%%BeginFont: CMTI10
%!PS-AdobeFont-1.1: CMTI10 1.00B
%%CreationDate: 1992 Feb 19 19:56:16
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 46 /period put
dup 97 /a put
dup 98 /b put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
5EE89221BFD28AE8117B6A8FC4368790457203061FE1C5E5ABC6DFB6B86605E7
0E2F45A8C1BAA69E72630B14E21A76BC8399B57E0F25EC687149D19AD6D41A45
5BE2E4C26137E9A19E342CEE2ED9C7552825C76AC5B3D03257639BE70BA719B5
5C20126B2BA51CC42E193FA5CEEA4D55549C1496A8037DD91553B14C60135DB7
3A5DB40986B7E40BC65C3C8AA9B30A75CD0E45A3973949BFF6997C95155DF7A3
12FE54CC467BCF644EB81872CC41227512ECD8E1FF3CE64D94D1D6C8CF7C9A56
A90777624F78FD0E784C06C0D36FD884054437D93E3FB28C6AA8E131841553C5
93A5174F12BB33AADF0131BB0A6EBD394DC2EC23187DB1E51AA82E784FB2DD72
0DC92D435B88D387D14810EA7E41ABC8AD1FD57610AB47C09C7156A40E43F157
35F5C3874AF8F9CF10FF61DDE52D78A33AA896BB00133FCA6C1B40678EE2A10A
F8EC1DA991E13094A0293776D3A2FCBA027B23C26E26C5A4226CC427AE0494B2
D7AEA7AA35DBD94F5A36161498766322716F61AE104C0B06EA832CFF38CCB36E
1E69B256C143CC50366C0BAB51FCFE0B24192594317CB04443F7C4523A425E92
B884D6D2CD8FCE518B7090FAF2863BF41D148793A806EB2FBEF75E7DB1A7BF60
D84FE2D86AF09B76E5ADE8092F029EA7D206A99733958D609AFC48F9A0691298
E1E5835724C19F3FC588175A4F12FED7BAA7C77E288A0BA7F0FE28548BCA2FE4
6F488E154AC3B01F8044A9095EB501CEF06011C1776482E1FF4CEC734F0676F8
25AA558E7AB9B974CAE1F8DBA7AF919AFDD76A2F949824F58DD1EBD01A897FD0
9829DB7BCD1E76CA3F7305EB0D2FEDC7A40EB45353591E97642712C44C0A9611
D594FAB5F04BBC276958EFFCA93E0561ED8311D45B9C4A0A34D6A0A27D687797
E44746D190418845F232F62A561D521F9B49E93DBE635211C854E91188C45C7E
FAF893E39E25056FDD284DD90FC191E99019BAAF3363B34C77221C55B678EE79
5514F34ED922E53CF19C6C7ECDF39F4ED797CF38ABA59781C9284D05C71E009D
6703B0370D91C69E01F6FCB5A6C5D87BBB09128C4C1F9ADFCA38D943F681EF14
7498CD0AF48E6FC67FA2B24DE6A74DA6F5178692F89264A1D001D4952021FE71
EE72EC7DC6B918C5C24ED9A7A8C0040709FE7B67FE9F67C02502897BBCAC221B
7E988EDCE6051A039534450758BDEEE025B9205EE7E74C1A1A6DCFD584ADDA1E
E1EA3A94EE7C1722D64DD41B4D26CE73996DE47A9AB56E52B5E1208840C512C4
B2CED94E0B8B629317C4DE17791D6AB0968CCE25BECA7E35D1F4F5511E6E6858
51508A9BDD9433E85B1C52040E240ADBAFFC89D3A72B784AC8FA17F7AF7528D4
A36CA2AD885F038D70B302A30E685AD9D0FA8F9EB62F40FFB13E40F163B6A224
B9BD096A557F3CAAD1121B956FD18894C96B63A0FCEDA0F3B92997236E1770ED
2B7D697618F24612162CCC0B69A1E7A7C849F28A04F97F812CF8D8123547A720
3EADA519D84D4634862BD1A1473E8449CBC5F44080616124789F2B49318EFCCA
30C2D5B4143B542F94452CB453266B97E5A5F7F8DA9EA872826791F2B5E494AC
CAF0C74134C4B864ED50AFE4A4B2FA0BCBEE23E306053BF3E72285A0ADF77855
CDF7CE19B5D6B9AC22815A4CF2F732E0F1E04EF457D80B53F99714BCBC5B68FF
709F781288608DB45D46528F8808F94D5DBB9359DCD101069BEB7EFCD34DB32F
C25B55D2695BE1A248540EF3912FB3D2375F87BD6A3FE0FA65BCF2DF0B2F9403
C19DB8B35DD44C2FCE89A8E17486DAA4AC0C37607BCB08178549D6BB7F2A22C2
4E6E94318A26A1EFC9FD109A5A946BA404CBE7A30564885DCC2A9CAC213D20AF
CCB717277C8C7469462AC16F020F4B8CAAA66C21DF2652F58795DC0BDEBA7378
1D7B2D775252BCFFA8812C2FCE18E79DBE365D1AF2404D261EFF4893EB1C37EA
39EF3D20CED97890A3F3444F67F4D0575D4DF6CE60A781830DB08DD924D6ACE5
40D9ED156C69685CA094AC2F7C5629DBE007E39B0BF6F745FAF3B1B5F61A80D5
BCF53B52A1CB96565380012DBB5878AC046D5D86DF1DA4DD2B6523FDF8FCF27B
31A6E34A91C4DE525F6C8B952F4F552E8DA5A2D3FB37E0144C74AD6DB3D9F6A9
5C70F3777FB13BE82B07CE7F0377DA5DA6D21AB14DF3FEBE3E38651F21E0F769
C3D1263871D65C615702C734F2163686B13224845F18FAB7014E96C4A46AA636
C00EF621F8C43F8BAC34B5A26D09231E004A0F4E9CE7DAB88B54064B6E97F303
7AB190C250AB32487431091B05A388A8FA617EFC64E3A72B85C282E6E13CF43C
022C81C4E73687F467D85B2FAE34A87DD20D0A2D51E14E416927D79009291682
8D2FAFA9D2C209DE1BE994C7ABB88790FD7DC6DF7148BE41891C231DBA949CA9
071C9278F2D22BB84852C7CB892CAF437479FB718D4D0E26003C8455DA6FDEA5
CD365F1DE7B6D536A1DA1671D37BB2D62523248EFEBC3127B45119A2A7B8B2A2
4C29EA7BF7EB03182F5C3C36B6F06544E3504487ADD3E79250AA89B45CCCFB52
940A446D67E8E972584230AAF17C3FDB34A0F6C9A5337A7590E9B966ABF6BB73
EA6EA2F2643E018598B6E959935F5190A9E64931F01598CF5882DBBA656B6B09
A91E46F996CF77F5C95378A3EE02A8077275B80AAD07E029CBF3F370AB516B0A
E0775F7931DECCF4DCD63DAD22F36C48EE17C2860A867D3BA80B37C769CD9FCC
54804E7B485EDC61053FDEB9541887DF58941804D97E491E7F5A1CF5A0DD4408
EA634BB17ABC804C7E8CDAE9C8821DA25A1FB3D99051F36AEEE627D19BF71994
95F9A70C429B323B6007C090400BAE0E341A1598A569D416EB07C8909C065302
5E0AD3F9D7CE3EA88CDE5AE658D8CDDAD5774EEB1AC87618ED4A6424D3F4BB14
AD47C8524FF80387387436B90ABD67A2498946C529BF184ED25297262AD67827
21D0AFCC820D52F61BC9BDDEA61936714FFCBC9AF9B7DB86DD3E259989A7E93A
963101B7A53585FFA230F44FC4B25A66BF732328B5E84BB006DC50B59268C0C0
20D8998223CE3D7BF13366EC899F66519A61B7D7097CAA120B2ED5B810A1E90F
56E7924B98793D0FD7B21575989DC98038ED0810B6CFFBBE0AF87A4089274019
59157211E9809488E66BBCD3BF9B5F5B9B4B3B8733DFE4AC15C49420BFB19542
E29358324FA7E5EA9435CCF00FC4061DEE47F23EF759E785F796EB582F7E5BB8
CD0BACBE3326AD88B073C8E661A0FAFE89F8A77EFB1A2BDF23E84FACE038A4CF
6891D0EDC0AFE9DD981946F683C77221BC8113BD169EA55723112CEEDD298788
821CAE72D530F2AE4AE4B5388F8DD64E4985FFA61E2D88281BCA8487DB61F60A
FA5FAA759BABA083457A3AE9E5B2D959E1EA199D10761771B28D69CF8A19D9B7
DA6A1B7A33B4DB22443C9690F537B7BA9812968AB781A70B9DD04BA9A2C61C83
8EA1C56C3FB358C1D640FE4A40846825606D42B472639593EA708DF62389F58D
4C7633EB96B9F093FBE82A17957CDEEB268AD8D750B53B6C4CBE9D6A183F6B18
000AC301DD31CD0060D7DF58775D9CF032A90D87F455CCAB98B7278824C0A38D
352E2D5BEB3F2A7CE6C64CA462786682C76E15594A7C5598C64D8556149C069B
D867993FD899A6312CA0061CB2C33061830C5B7C8FE6CD612B25F62FCAC4047D
A775C38A46961B6B282D3B0790621B83E42C5750B9E4CA1353486132E426599F
592034F9490826FB7804922CFAAD1B6339A3D377ED716AC0B249EE22C6AF99E5
22C74EF1C7A37B6933DB3E8FBF969F3BEA014CFD0CF9CE38516CED8A0E88CF08
74E3E57DA73DA18C5897E04F580772F97658D7E681CFC9799990854B7D65A19F
AD97E552CB185CAF07589A30F834F61E52DA467DC173357EB8099B39DFC1FA30
4C4316C24CA455D8A383D01A9DE75255043E6890C0D2D2FB0EEE955EFADF7A27
5FCCE764AEC1F0424656477CB608B3A845A12CB833C132EA20A6EA895C0A556C
4CAEA659C4AE89C2781C8007525E77DFE2E3A1E778C18B5EE5BA6E8CD5E4C066
41915103C935027531C73281B834A59F2B26F4FFE9061AFC60266EE44B4B60E5
1B09FF6C6A64452722871803B9FFE60CF6DD749372C5BE4F2853BBB5224EF63E
CBCAE9BA2D73BAC2938B3C2AEC05A985DE5F76326E2DB65C673DB16FF42DB073
6E866C37FAE0CC86E8B4E4595AB178C695EAC0B047689F8316E2BB9B7A02FF91
B000C0714FFAF76060DA031D41CA632C8254F083C4C57382613917C961D2C2F6
9C6BB834CDB65AEFA58FCE4EF5CADC8C7C9BDC32DD20D341BC1EC0345B3B17BF
F3FBDEEC98486D2D8E6733A13EBB4058FA94A580EDFDB1BCFFF0B107FA13ED06
782D9B4EE6BF85ADCFD2EDC2575CFEBCD50B3C77F82EC02E768296EBEFDF7754
FC0DC9AF7468EB089D529FBEBE9261CA5EABCA183680BC9EF666A947E006D4B6
A4AF97A0A7ED925EB41E15D41D86AF880366C3394182FBE7E2F2F465B17BE228
B307BC91624D87D5454679E42BFD154A42B038781B2A1C38C74BD54E39A70750
96602D45639FE8DA53C921712432BF1D60E4A8D2CE3A0707363A32AD7166BA3E
F66FB394849DB6AB371D1AF7EC541FD99B26FDC3EDF084D12F4566D6A7BC66E4
069FB933B530F25686BA3B2639E9C75C6DC636B8FDEE943D5F45BEB44D5F183D
F3A86BB2C219734CDA304306D5DD9C65AE21D37B86E1D15B7880C15D49401F4E
AECC38943F4C74E901DDFE5CAAF30DB940AC2761639B91B5585EC17AB14DE2D2
11473D9FA5D1A45C9A8ABBDBC9FE2FEE0DE290E2B4B0FA29C7CEDBD64C7B863D
8D4EA9710B479C95BA2B9587FB9382610787B82F12214D66519B62C54D95EED8
FD684200492B64E34754BE82A1FDFD3E5DDFFD825F9F83DE44D0A5BD362A8DBC
CFE638FFF72405D95CCE1E1BC3584FB9A270ED31784462BF59506CACA5771BB9
9C8FD0C5C686A3DE4F696FDB7724E9007301869398076DBA144FE684078052CB
631A2AC1D1F8FC33E9F2FA0DE52727FAC3E591E4ED64C118BCC01D905587A666
69E4D9D65FCAE85CD7669627578D397BF33391C0940A0E1E49B46AD202DA9DFA
ED2520C576245AF9710CE1DC6BAD4D7127FFAF0C38514B0A86F4523184354DD3
F4AA958E201F47799D7EE5F7842AE0252D433272419C275DCF0E452A2EB0C4CF
5062252BF5E171140DFF3D5545E276D07A69EFEE02FAA6033EA35C66A2B728FE
5704E6604FE63EF250881F39946FC2B02B70F41867063E53718F21EB623886EC
D79843312B5876CA81E451A425BE91AE39315409FAC8C494A72D3ECC9A5EEAD8
E02469F37E2DDBD31DF63F04CB2D3CBDAB004A936FA1FA9AB2971574A5F2CDB4
C2BCEF525DD1B1BFD6CCF979B84C365EFBB36A0161467B7A8FAEC7B058D03F2F
B4E149BE6BFA25EF3F5179E7746BDE9AEB6CAC47BEC32FFA6E06C64D16C2592A
742488A346C5287567F2DCCEBC9FEAD9220883067868F1
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTT12
%!PS-AdobeFont-1.1: CMTT12 1.0
%%CreationDate: 1991 Aug 20 16:45:46
% 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 (CMTT12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT12 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 33 /exclam put
dup 34 /quotedbl put
dup 35 /numbersign put
dup 36 /dollar put
dup 37 /percent put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 91 /bracketleft put
dup 92 /backslash put
dup 93 /bracketright put
dup 94 /asciicircum put
dup 95 /underscore put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /braceleft put
dup 124 /bar put
dup 125 /braceright put
dup 126 /asciitilde put
readonly def
/FontBBox{-1 -234 524 695}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E
C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E
3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B
426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D
D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161
E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32
6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5
A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE
0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC
85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF
F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4
C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC
12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D
048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8
0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725
741D08B9DB688731A6C8F9F0B1FDFA20C46ABF1BE836FCA0757242BE4780A41B
C19304DEC802CBAFBD0D116B1F98C01BF41ACD72DA8C56F8A03756E1850CF32D
F657FFF4377B43F208A3F33191F9F6F36FBB0CDA3514D68ACD8DCB2FE67AB377
C6BD16D11FFFD61E05B8B311EBE8D05013ECF1D03F574982E3581A188E337498
3B68080D69F7D88F2863362577B6566B9526D1E05DCAEE47F7E336489F4CF445
E5F4E1DD5EF2B795F184EC5B427C77D49CF637AD9D6885BFBDED79F75F1F870C
5571211F4CD9DD89F59D2E9DBAD027145BB0A4493BE1FDC4E67AB2C92886F747
63242F49C34651CF834A0960A602103F81B33386C63CC91A5F06E4635785783E
A4204D66802D6F45878B2BFC1D6C9A65D27416C536540B2EBB3E092C1262B9AF
82B5FFCA2F730DA3415A8655C31798B15BBC29B3E5ACCB2461A0E8F94A6DD4B9
13C188AF5ACF2C12FBE9594CE9B2D2AD8D51401FF5295BCD7DA75E32749A2ECC
B547DAF0D6486AFB0310928EB6EE739DAF772C850C928E66FDDB6AC3C2D54AB0
5535CDC899F9261201257BA6DFDECE92E205724DBA41594A8A37FAACE720CA4D
67B661C1A97F9C325E37B7964DF9D2DEEB632983CC1CBEA7746C5CE15CB9BC22
58CD79F473575A2E77E40E8BFD2806BE5821CFB2072AD2EFA021A8F16A266650
6A9391233150AB22F8C980746A4203CB6E154A8C9C8F444501C113108B7BEE7F
EF075B73D9B3F59E9D1040DDCB63C2B588D630C94892B2CEF32BC40BCAEE06C3
B094229FEFBF17A16580E115AB65EA37B9AEA1CF1466D5993A652B8CE5C58171
C59C3C44F34FCB066DAA13EA050E60A7809A624FA3E970B359D7B61B5640E4E3
169B10E2899347EADFCBF5B05E7690594AD9E7341206692B9D9D450BFF5F9828
13FED4DA273516764EFA58D8AFC7239008510C45D54FB1BBFC2300EBFA394275
C61804EF6D4F38CFD61CDC6FC5EDC6A16A4209177D820C138BA216CA10905DCD
957EDB4609835E1AFA5749725DAA084C2F56EC8985A3D7B81E744A529FD93BA0
6E3041C7AFAD2BF0DC372DAC5E7B303179B301255B5DBE026EF5FAA65666D81A
A6B18A828D796F6889EF6B6ADDFF1DBED32C6B28BA3B71DBA746EE0DBEB2F181
A3C7E3684FE8A9D915B145A4ECBD4503C7468E229B428F3B3596D93F8307EF8C
13ACA63D3551415EA07BAD6C4FDFCE0AEA532C4EF40A6FA1A9522C168E730974
0E8DF227D2F610CD13248ADB6328E75585E0B22D6388FD5D6D3326526082C814
50F37849E5E8800748BBE6807CC4BF71850E1326CF212E6E3E4F38EE71BD78FF
B4B65361E164691050B32CE4564E6EE1EB82001D1D043796D00AC974CBAE3F1C
313A0BCD11B8C9F0F34C96FF96103F105DAD8EFE1EDE8D27BB8011103A1C4183
E4DE7AE8301D7046BABA4CC1BE432C730F989F22884B097240D1984861681769
AB138814A01961AE2DDA23A1A17DC3BD1F626A668312077EBAB1F8B10AB5923A
6429D6CC496E5BF1A362189F6D0656674B3BF023857580BF61F400EB7BFE91E8
F9CBC8226D9631962C70C0FF2FDFF1880352BC2F0FF8CB3F4AE38A05E7981D01
88EDAEF227DDA0AA7CE5CFD994A25CBBEAF99955886C21F4A20FED4F9FE9516C
ECA3FC45FF1AB36610F37E59F026B86DBA6261214D95DC5D08555416451D33FA
F1E92E8735F30A8B7EA660FA1573B91B28850CE503DF544565FB552A4DD693DA
F823355F897D716A4ACB0CFCE973CA99A0E7B788A0405C4F1EE7080033D20926
91094B293EA039D6C7E4B7C6A8339FB96491EC25481D6A92D26B5E0A806A0A3D
E01BCE077FC072EA87ED2FC7A2DC2072E1CDC1360F4DB59D934A208338994E62
3A7286860B620766167A599C0005C65243A69FEDD9EFCD98D89B900E6413DE07
49B69A365C6FE614B61E951D9D7189797551BD5C06EC449F1114BC86AE4797C6
6D102E4731A539BD594FF061BE9ED98A11BE90C1B065A85CD18E1C11F1AF3453
52D7412DB96E24932D95FE633EF7BE6ED6F697EE5F6B88F9BEF77ED13FF786C9
540E69F5E48BF9C70BD4088D4C1414744CA6B489943E2DE9964104BA0D6780EB
9216A66B52D288510E3F0EE7EDC0472FD8799B9099EBFC10F26436A9C9FEB739
E0A12CE5E472E62B4F008D082AA460340794CC12440FDD425243C443C6F9751D
4A51CBAF5B430A5CBBCFAE4B56F7BEA48A87E2EB245F246F2651E68C7F764410
056A19EC22E75AF9704EE84E821664418416E9F444E096A217800A6C5B5CBBA4
2D56C1D4BB5A9C26A9E56C7FF2FF244A1D5AA842764F95CE0788D407CC97F449
88998DB8B4F44E83A084A6C88A3B882FDB9032BB236184D5847F4BF782AACCC1
5D5760B1F3046914294FB3ECB9B9CC2D5DB952000B7B9119630377339EE7474E
2A408745B73350407A314036CB8E0B25FAFD71F1D4CBC88EE2067AF84E21D7E3
671CEBD82E8C22523CBE8CFEE5C7B12A504E097BC90C486BDE317D565DE461FF
7B2E6C499866E8E17C6710E4FF544B50652579F526168E15F8219EE83CE2B325
0B6F3254B001DE0AC6DA3C4DA257CB46E4D9C3DA14AB7300A35D43926898F886
BF01E2ECBB16585A2340DA7316A891BDB368926E331A13FE317A9C6F3BB777AE
CB2ECB416E1CAC0FFA3B5371C8F17826EC54644531AE5BFD64D535F18CB1F25F
A1FA0F73B8F92D39F36134CA0355E0E1AEA806DDE37ABB0C29CF4A9594874F00
44D4CDFCAB50BF17F7E87468EB80F5A0694D8BF4044490C619845742A1F1B8EE
279DF9CEFE267E9EFE3B51AFD8C1CBEDE642BE4F0D78898C21E129A3E67F0347
30366896033B9A01D256313087AB43D07029472B73A496A6B50B14EF413EBD69
A23CEA9706EED79003966B902BB5C9CCC1156CFD9595B11F1A7B69E89F014A70
804BC5C713C77FC876F0A6A2EFFFEF53BE1C5EBD99BBE03FD864E5C9485F8A68
70D394D2916183F035CCCC728263FF6E44AE620A16BB36DFC60768A4A7D56AC0
74C1DF00E1D7BE4813A8DF2F438BEED0DF6FFC98F2CC2EBD68FA5CA67F2D8E11
B2B60AEA1165A5D76E33CEBCA291D843ECD0B67DAA01B9C050AE28317DFE7E7C
8C12EB1E160CF9844F6E653BCDACF562E1B2587B47EC09A1B5C47CDDFC4DB367
9C22BD3123841D41822AE6C7157A12CB209023A862250C5FE4EF02B0B6E6D7C2
4902B68920A96973D0FAB5D3D4D53E23E2467C7E0DD586234D0BD14F5D961726
35A102B50AF29EFFED865254C764317B8A5DD74D3F57434E6EAD3FB2BE54BFC5
25940B152E88F80B1C24523A21318DFD0C1CCE57CA814FA0985A5E4F9B24A0AA
007D793D06C42D85EE4E38E375DC75AE49CCFBFD5AB5728FFEDA6A96F9141759
F79797BF9D23927595D269C2315171C413241AE53AF22FEBD984F73D12849BA1
972944DAAB7083B37F6F62C159D8ECADD940B64A970882ED0E1D249679E20D36
072F59689D7A3DD157340D9831AB29B599B74E81129D7CBAC68CA34A0E30F605
2CFBB5B0AC7655EA81F085D86A37EC67AB72E9B73DD8CD251B2EA407B445BD81
B0112B564E7D5FCA7FD1AB5D79FF394D9193D533A09C704EAA6FE1A13ED80CFD
394D8749148949E82077B22B171C8CD067BFE71C334583A5C7C98E9EF9B33DBA
3E1D136F74B656B073B1F80FF196E9A805FB811E75E7DE3C6742C5F3C7536A27
9A9E4BA919358C2FD806235511B413E398AE7A651D408F9133FF75785D8DA5DF
78B394A67EC2DA95F64DDCDAB60490AABB63D245898DEB2E8C8F137BD76A3CD7
9AF0CEC5DDA84211E951D4D443CB5550C7C433BFB0D8F41058B6FA94A562C4CB
0FFE08A474C6F04C0AD9ECA7EED57FBE9025593837781FAC7D04ACCABB061A68
1113EFA33E801ECC2AF920B6C16FB318761BACF5772D2E52056D064290C2E025
A62007D097D40C70B74B4BAC4880661FDCD1868F48C856C590A4BC9869495E40
552B3BA325B118A5B8D7BAEB74641E21310D4FE7016C656CC04DF49A0A6F0B62
F9791652A79FBF0A479971CBB7B3EB5F73CA858CAC53959180B904703D1225C1
6866EBA21CB3482632AC23D28362A90C76AD0F88ADD211EFDA4FA586BBA64E00
3234DD8A516313B6CD7AB6CA779237D4C31EB1907977AB8BD6B7647BBD33E169
938AFB91390867FF3BE3BC65419BD2E4A101A6834A8EDDD2396829F9080A6078
3AC19181E2B618AB63BC699B9B65DF01966DEE560525ABAA725DFA3673F98163
0045E11D64202F353132A2BE501031625B0930EA3B56EFED2ABA892C042E54ED
CBD56E6EC0F24D380A48045803920A120459867E50D38620B546FC8BC806E4CC
38FBD04576A9A4EB7AEC29877294038FAA27EA82D539301D8C3DD653CA7C4B6E
6D15AFE882EBD885A344FE7E16C62BC84D4035491F31AC45ACC6F5DF42E0365E
358D24A2597FF2B2E60DB2E62DDA1D8D34C4F782527F0FF17E595A3EE4E16252
32E12A31B95DADFCD3BD856D3255A89437211D2EE6A988C1CEAEC12B036A3879
A8685BE6BCAF7E343781521969C982D3A920B091F3F446165A3E1A2C6E4906AD
537194C1A1462157D3CAA0AE3698012EADC457E94BD7A99B45456E3727B1D8BF
0A3B104ADFCD32170B95D51CD143E8FD0B89CDC86BDE088AF4E953215F8BD375
1C7E5745977AA9526E06BD84BF9DC8C06F7F12B955E62A98F417B73363191E78
00008C7546E6E6A0E6887A8EA09DC2F177E5C624F7EB7960A74A2918FC1E65AF
3059CB3C061CB812EB275F223B755D00BBA63BC3F1F400E34FF2BCA89BA9F6A4
6709C58FEDF0970361D99F5A986E47AD72C1B49FA8EC2BBAC6AE3AC3BD2B71C1
DEB9C44F88680A8E1E67CE8D273174AB0DE72B89E2764A24C252E3C813D71F45
33A23DED1B37141DB828EAA0D20D8D1005A5BF5152B280ED1BA9AF3A563E749F
77EFD96C8C72C35CCEDE9008BF394A2B5A1B7EC9B7FFB7F13F487F725C06438D
336302CD684A46BB41B0F9492D71D8779533ADE7D19C6867C95BEE66C1A1AC2A
933F38B8E466EBCF9786E49A55B07EF212F83AE3E9B4451D2B3D83E9FFB5BF25
48CBB211B452F815C5774C211E276EBC1C3A37019AC2C2401CAA32E6582169A6
F56EC01AB6B1F806B2BFCDDD0A1548AA82E04ED4E134BBB00BAF0CAD61DC962D
0BB3711981886160E267E6AAD3BEB6DF33A883AF7268A1E61A06BCB25A38EA2B
311D1BFB56E5A190E9CCE07082C76E2E47436D62401FEB8EA444B1B05DEB8E15
82B088BF43883C7F8DE98CC18658239761042C5D9209EDD575B678CF6401A2B4
1BBF1B34ABDA5CF5037DA21A5B31527E6700BB236C9E2A24A39CCA880FBCDA81
C8C6513720349C1FA5FE08890B0499D4D2945A1352A4F4416268F0F766ABD547
AA54BADF2EAD7BE80C7C7804A6F0682FC1FEFF4BE5A51417032F772CF7ABB0F2
D6BB53ADD50A9D77409C73A67FD8AEC4F0894B88F145BE163D56311431A7FA79
F69D699AA67C12B8A1E1076EAF0617678DAB5DB842EB2F8DBE170E27260C9146
32E06D463C22ED32A80C5701FCC446AA100A0527CAF3DCD245C339D5E2192658
F2341A214BDE8BD4C3B32FFDBA1B771BDDFAD577EE5F39417303CCE68FCE8353
B9ADE7C936409A57E43E2B55D51FA9EA99936DE6470ACBECEA87709CD8A5E189
463B87DACF981369B329A2F8E9CE9620A1D6DAF6D9930A3CB6639858D712C8F5
069E9DD73D5E725929181AE7733895AB63568F33E952DD8DFC830F474F4DACBA
5ED8760C77376CCD3919F1A2037E18A5286C268E7A2EA03F68897BECBA163C29
2D6B61A44BF42DE3A9E8EAC90457F08C75D17FD797C2B658F2F213E99CE17441
EB6CFA1D159BB877EBF9A33F83D4D5DAAC9AB62281D944108B20164F28C89380
8006EC89430E37B40992A4F52ED061581FD7568D9AF6B25AD37964D608A793B5
3407BE59E30559C7CD9D4F1404D5870D4EA9FCB3C6D8FE0B90AA670D8A1A9E49
3146C3E2BA332516C46A119F314AEAF833B370045504E356D3C80297757C3627
12453084A8FC6163772A850282A5DDD8A85541E0A7B19832B20E907887D29295
190FE5233FAE1728F8C4967F937529D9736A4DB076321755A8E0E81B1AAAD039
92E8B91BF85A5890E193FD2AE7CEE2DD474D5A296A4BDA695CC7614843C84907
E91312BE1BD4CDF39029115065CE2F88EC60668FF16E134B7DC66B14695408A6
7273D2EB1F4619F6029DBE3BAF1AF6701235A334AD2A489E008A83484AF55E14
5C29FB9E88E9ED979312BFBC29A57AC866CB5ACEC9CE1CC900CE6DFA17684A6A
79E0B4CEF17F801229DEAE2DA97A6E82597E74F0961FC8075D1808C8C0BE0B61
BF9B79ECD38AC1A30641AEA948994D8B5B5089C2E11FDD5DE5B1E9104B3DD476
EBE8AE3CC6A56C9B5A4B0A3240446DE29E4F4BF8CBCD7C7CD3728C9B10845316
F6EC23F14EA741EBD971B3AA7BFEF944F6D83D256B8971D037470408D859E569
3276F9D1157358DA6691868EFE727AC2F14027BD73EBB85FED8746E16FE51CBC
DEA7540585EB5659421A457A74CC7596E031391F5586795A6DBE273FFCBEC040
7F509C14CBA0E221DD2093A936B2C78BF277C88444BD2C11CDA44C5A3C454F38
0FE08383B6A21B30F0A65073AFDC7EDF3D76C01331F0A13151ABD7CA8F73F4A3
3060F771362195219D61A69FFE7F7A98A21E21B09267C97CC16D4D816AB51474
0828DFFDF37B07734BDAE863DF254697AA1AB8739E3CD2693D9F405DC80E118B
279F984364A7F54472F84E5713B53A8F912A7A5B5E40EC175F190218295AC1E0
807B62C2AB755002C5F075EFE45BA7957CEC547A72D74D7CEF15CA499F08B6D1
D01F02969899A83AD603F6D8CC41582185AB9D322DC30FF1DCCDC4CBBEA9E91C
4176126C1C62FF847045C48B1533EC29F1F37D27A1C82C9FAC663200FF203B65
26215166C1C404338CB6B364CFC2806ADC702E175D2C781A380A56F85BF27F38
798E2F08801AFCCC8A8997DE70C6F912878E8C8C4047F3402B0DE032D348FEE0
865143435811E381771C28FAA248D5907386721B08CA41A370976AF046F006F5
2F52D8B9651FAF80385CA622158043BED36BCD152225FF5131FB3386AD6557FC
482CF7E9E4AE40F17769A7ADC3B350166F59C382E81F498B0DBE42BC14A7495A
65A7CAD4EB8B9B4967A583C84DEE8D6697D92A4D57E14FB8DC41CD825CB3ED93
D9C5761659BC9AD0E5194CB44D94862C8B1E52670E23EB01A6C87EDE1C922F5D
BFD69D38A0611ED6C94A7D6C56CE208E93F1710BEAC467B6B911166C86C00D1A
EC84A603FD5FE8819524EFFB608164E563FC622C90ABE66FF61A07D3396A6286
4A30F5E756022FA2C60DDB526420FB6606411527DFB1EDA4C50B3B791619144A
9FFFF9C130DE374EF4789DCFF01BCD3678E09F5E91BFE2F6F937643D9C01A4B3
0139DB87E26EC951963CC65C247F0C14E4066E4A82184086447F7AC509D52E53
CEC4DF883F25B92CC7FAA58A4B32A2EAB4393CA781FDD3EFF2579B918B82D8D4
A352FA276500822290E608D2643CC84411F069770797F8C2ECAF0E9D7F116685
88DF96232A6279487D3E5A813A99E69CBA3E5F3CB31B9CEA56F7778A79B67D15
ED09DF52C1F1C8CF63A28003F4E6F074AA4243BB2AEA95F4BADC78C055A3C857
858565C6EE2B66A8F5DEA09400E99E51991028F74D51025EF2BEA033A0329595
121433328A386110353FA997A10D79AE4C98D07CFF25EA3CD6E6E07F33ED89F7
C2ACA3E0F6284DF921553162049DB79D9A251B45DEAD821BD2A60DCE7BE3C3B9
3D8F0C6ADF14E7B77F2D5C929834614AEDFD62EBB87D72D1527EBB284D1E541A
9A321A6B59AACCEBC45CF068030E4EDE1748CA3DCA5CEE11A0EC87BCB2E8AE6F
A1F40037D8805879916B4B02FD97FD77FF510F1CC2BA23C91DCE9CBA648E1E0B
88C3280A4E7CE06A4CDAB42EB2D9AFB45049002922090A5EA292602E486DFB9B
D5F18CB175F523B89CDD114613F2B7B175268EF1632FC1805F8BADB29C13361A
DA39DC18D4CB10D24CE9EC41ACDA1599ED01FC37E27C5AF9B105E3D0BD212BB8
7BF7FE542450C28787AC17217DCD28C340A99D2DCA55294F63ED57EB48002619
1F7B06FBA18BF9971BAA49C77659A4CD2B6F2BAE44ECB764FBCB6C01A8CE3A2F
4469A47015A62A1474697CBA683C4F537E736C660A3781AB64773385AE4A96ED
3C00C9230C61649ED74062CC713FD002357B131FCA196F8068A398A9BF833598
245E7BB166074DC27966CC9329D7EFCD15BD2011A3CFAE4DECBBD7E1A05E87D8
D5AE209252FE0745E944595D6F0E3B473043250B6843AF7BE196148375636518
7D12AEFCA2279A81E797497A46F8A6D9693E0A140A8904D906BD7FE44D0BC866
787277B3A481B5D2DCDFA8776E58CF7184387B28A2381AD2F8D94419586AB73A
8E9E7CE2E90D4498B5547C6A34D1C07A67ADA25CC4D32F5E5AF14D120EE41421
85D0AAECDA447FE21CD21480A772333232107168CCB9F8629A9A827D332E39BE
875917A29A29FE0019AA3FFD3467DD58A457CFB1C97314CB3AEE5AAD94C2FA34
A4CC9B48081E7B57F6C8E8D25575A10D3BE0FDABD123E8A56600EB4473FA02A4
003058D91F9BADA10E418A4929227A775FE2577A6A09732787F56AFBE9113667
227BCA68F5A29041483944179951A53EBC3781801E85F905E1B0007A3907EC0B
E340707403EF511BF3EE627601E3B6BDB1E7C9025EF9935513504C99FA84B6FA
01A0F5AD74C0629B15B2947B86138ED34A30CC6EB77CFEECEF6E4753237BBC6E
3C668B7772583D63FD9D84EC922CF0F50F1433EDD72A5375EFC04D470DECA9A7
F91BB600AB9B459DDCBDE429ACA28FEF1719AF51980D2EF727DC035BE974CE79
859CD5266E7693A38DD5A7E9DAF8DE4842A17729082A061DCBF8D88FC650DDB7
DF255C4E5EEEA960FF651701465BCFF1AB7EE28B0F7855EEC169FA954DEA3B30
A191C254CFF939081E9C845D199EE6D34C6D83EBAF249DAB6270E0F086C730DD
3A512E70494A7112BC0778E87631A1B4515483FB18737C74686B8BC46828C66D
30E09490E291AE289CBAF8F9B12175A9720888260B124AE29C8280BB98711993
E3B6475D60549B67CCB50D4D82EC1B1EA97434DD4F3BBB6E92B4A20EE63F6CE2
FF771937999732ACC76AF74EB2B4CB43DB3715D249059C057D92E9DA1558F1B5
3E54A851313ACB2262043ACD60433C3708226739E7E4941CE700ACED4EC39ABB
8EACBE8A036D6300D932A44C3323ADABFAF4A0967BA6E4EFAC766FB30F22745D
5444BFBE0BB2AB7DA54CEFC7C3A1FCBB740EA46D3D512CD5F75D8FF7F51193D5
1B74F67420B223B792AE2C58520692E2BB09FCF371A8A3D62ED65C522FA18157
6B0DE5E7590486C3E29D925B950B5CBBD78C8BE040850B8D6AD81C0D3A093492
BDCE940FC441838B5FC04689E9E7A03E4C76DE58C1923B7B9B12886263983D74
D48EC492D80F5329E2A5CB46D984EA5ABDDA3045CD684E5AC58A9FA3CC746B29
577F42DA2EFE92F2C3EFD9CE2FB480386A950D8C0A9B877B5607F9EF39297842
48FB706843B610805D5E37D8D3073743414E908D5F2DE6DE67A35950FB7A7A60
E7D06BF52C1091B5D840A75338E4BA1203E1711F3B7785D00C16C8F1EAFE5F0F
64E7269E579CE4F7D575D99DCF9D47E5EA327C2E90E0C0C6D4E527D9E30B6D46
A76A45349B93E9FC520AA282BA0D843B030DCA0D78F7528C35B928916438C8AF
D5699600ACCA5766C0E5D602536DC779115A5173494B27C66283276E93D1EFE1
9B53526FAE465520F9594A7A84BB6DA87CBA31095E68516F7F7913C5CA546B13
F784DD379BF9862403FBA8F55F6EA830C68303D28382114EDCBFB17C2A92F7C7
C03F724DD1FF4B3EDA15DF1B9185193070A2334CC0F6C42FFBD18C224945E9C4
338DB3EA59149BA29C73837016C4B223FA1885CF6760C1D419B0E3B31295D656
511C787AF9FFF754572BBCA7BD6ABD1AE9CE3B4856EE7F8AE3CC792080CA9B8D
D99DB83E1378888FA0616E5AFB4A77B04087B4E9B2DEEE904B16141A2234B4A2
A9417B25627897CFF8F6C2EA8F655ADF86D3939036E5C56F778350C9E26A7A96
36CD5D67F62E8B235940A818AD8B2FD88038BF7D1403042E2A5B982C3546CF75
C59E7B51BBE4ABFAAFE1F2CD3A59A78291F9586062331C22623D64590FB5543E
3C573DD7266BD4F58A211C29866BA44FAF922F4B70C8198BFF14742576CC92A8
5F4F7707C4B5C3D599AF1A4B53B271D6D09662744A552E91A0CEA5E716751CD8
287821EE4A3C958E2FBDE9B559259F5508974EA0D9C3541C81D209D9AAA418E4
45CDF0E64CCA6EA2D9A8F3D45DB96DFC45FCFE4445C86E19F43E69D172EE259C
A24DF6819AF0191970F7BA4710EC73D66C3F5AB722B7FFC9B457A80AD7704972
355DB27A6B5C78CB7B244ABB6A3DCA0BF2CB180D87414A4F0E00489576C63D4A
D4EA8442FF685F46DCEF89B1A399763112D73A2C495B7BF958B15F4BF63B6804
1618C11F60226E5E0711D625968E19BFAADEE70CAFD27DC782689ADCE22B2177
8ED245620D144C30A07A04136E0FD02FC48C28CC7A7CD1BE8F6AB2D5A70B67D1
571F35EA2FBD71BE44BF20AEF1A00DED8B4776AE8EBF29E498BEDB650FB3FE87
32F80A4E1D4981A5CBF878174A877FDE325479D5A7E7FFAC2FE1A989DE7DDAD0
481F6A50CF0645C5EE51BE449DD1F3A5416BDF2D7ECB12B1ECC562471486E62A
1D069D5897FACBABB2048FE5C5969AD44455E58A3D9A1AD3E4F8B60AFCAB5625
BF05B2BF40DDDBE214FB3D288DA8373406A43BE7B56A157E6F4B1FF996DBD308
E59ADEDD95946F93A5153B5ED8C0DC388D7F90C99D1F241BC32F2AC0F61D2C0A
E50CF102475ABD7B220F3B130E41871A3B6F398DE5A88DE2ACB8D237F6E27418
9ACAE005039C34F0F8CA76BAD5B6141631D6B31D36E3796A3001BB26A188A9AF
FE36F0900A60F0A9E3FDBB127D4638C43F380EA4EDBEBD4EA7A8415472E3715A
F501462CCF10A05AB2E190BC2AC931F4BA2DB7900BAEB2C57AA6AAB7981800DE
C239D00E7B06BF085E29E4E5663453A7F2A34604A793BFFE05F258EF4A2C1989
3642693577028AE19EF70EC4FCDC692DC7290EE22EBC79910201E16254565819
649876D70A437D29AFE1C4092C8A55F73350BE0DFB2F7B8011B1FDF231ABCB00
C54FF4DD90B323497A4FBEBE1096576E909D0AAADAB80F3B0C7418EB69D06DC7
1E8440F5D49682243400D66C7EF55C7D97061E093A1B8BB95632ADDA135394B3
6DC0B8B4B4AD386A139240265F82DDE00C9CA79FFA2C420A3899C24B758E3F0F
3104CFC076A488DD562847DD2DBBAF9F3B15017D2CBE17E76FC724E40DF0944A
C85B70B1F5B85918CA6D01603BAC73DE4D8F7C2FA2A889CA737C2D3E7207C63B
5279550A55B6B86661E36EEDD79D842480B5E2F6475604489BECE76CD08DA7F0
DE6608D1F4BF8D8F6BF3C3B12504E3822AE816BEBA8C3071D8ED0738FC1A117B
D2D810F0EEC593BDBE188ADE841A8ACD38D78B11656A3852E656D0B5B4338B49
E38CD52A817C9B2F2CC8C247CAC47AB3F59714485DA26358B7A0D7DB8048557C
99D2468964963852F1FF711A49F0D03C9BF534185C4CB6735D6681B2998AFAD0
9E6D9200FA730747A969AE72C9D63D8BA438BD266115C1BC5E41F57ACD6FC930
CAB6714D4368D35CD46C38541D361743F9E8778BB8AF3289A800CBDAE49E14ED
7D855058418536715932734C44721C4D3B50F33E64B0CFA2B35052541177E61E
87D0189AA8900E8425A5D96611F0A2B7601262C577440BD99F647A097436376E
9CDBC24CB52EDD6AF8435AAB62EB3D72BB6C16E2921B76E7117FF5626850AC0D
D1F5897C1D1AD27A04F1E6FA884BE56C730661E93C41F9853CD2F084994D2E19
BA73A4A53D55E838230F51EC8E9B2F2C0F228DA805E200BFCED472F95360290E
F8EBA9F48B02C7AF4C18C7BA8D58823B7CB2B415955C34430CB80B53919159A8
E234D72A0D4C0161D0E3A280027F8E8704D63912DD5DE8ED3974CFDCF20C2A7C
2EDBB24661A6B5AD9999E5F8F4BA82182B3A79B023B964BCB81780949DC35DF0
88E2300AEF1BF7726AAC98EEB276662D1981CE6F724CDB50D0A4534EF53D73C4
CDB2D5579B9FC8D417A0701ABE8A78F80FAEE5E00840ABD6CC2C65CA1A518C53
1621F34A9F9F0630DCA38B40BD0F9A3EB588C5DEA2CD74E2FB7241D6BFA19E92
9B5ACB89950A2C4AB7EB7C8C333A3BCDADDD9EC47AB4AF476056D746C5205DF9
54E79FADD6D31BDB54F9400E5308345EDEC2C1469C4A6283D7289F5D047C81CD
40CD77F8A0541AD239CD5DB6C170163A1B474BBF3F38C92CAE7DBA65867D8DF7
18A06C613D91833E9BFA05FDDDECB1EB26873002D1B879D6C6573B5246C9CE5A
596CE14545A4903BF86A099AB50ABE986831F96314741F259D12E4704C92B174
76B2D94CC8207379ED43F40946338BF3FC4FF57DC91AA51DF653821FAEAA78B3
680F4DD01199D9E5CAA69C3D783464AB3232FD41F5F2290A5619314BAF67CE96
6AF10A3DD973DAD241AACA19054F9542E8F5FC8511EB143EA3D291EE779C480E
1E4F7A64971072366EFD51CD7D6F73C9EE267D41D8DD398968DD68B6127D179B
B05FC21BAC58D76829E8333DFBC752E74693647E35D26E526358A68F344F4584
FBA488AC24A875D0FF66A095B63E7BE644F019D181C8196ED7E61FDF241BB159
99C0D72699E3B197DA16F4C7644F7ED91FAF708EB30F7C7468DD17EAE57E3954
62935E802F3E12FAF9D03C285531A4B34049DE5627B968CC38AC92E5A025DB6E
421F6405B22CA044B67001F19F8C1D27FB263D954C72915A85872F7228D70677
C80D446276699CD963C735E46F2F2F32D76D38CD79BAAAB3B60DC24269FBF992
F92AA33216053C6C79B98FF0424DB382E32E894D0FAA948F2C5D92833CB01301
D256051A9E60F4FFB19B9FFBEC50BEF067DE8418AB6D1519C47A9277F5D4F548
B015AD6AB131E53FB1B0C516DECD2E1AED25DA6B0A8E5CE49845D7508C71A287
BE3814B90E464274B854EB2E8870EE9619F9234498A534C8BA8F99390CF6B485
F371206AA8D04FD1BA31403659E1F22E24B84712A63FECE4820E27C8AA4A3FEE
CD9119F5630B63E750820DCD9C627ECE4A7107F2A2F5967DB6B22CA20805012F
783EBB0985B567D285C0049F15D1039E291C8D9F76AE82D2E64C928E46FC6A53
C0D75F5E04C149070B63A1E2DA02115CEC358129790294D5863A03C62AA93B44
90E8C89D5435DB19DBE166311D1D886F6F19C220646AF09631B393A508BE5DAB
42F016455EB6FBCC2CAD8429586D8E399A2DCF451E20969831E87A48C9852CBF
57F43EDBD92A28B357E0B2202830B071EBE9A6B44E4961FDBA34A0B985A628D1
F88C1D0703DD77CC580C3B009FB4CCEF1241CF509F29926212F3BEBABD5772EB
A0A67DBDBCDDEA121A1DACC1191819A851916C947225942A739AA40A27CD1EF1
7D6E28A7C958C90F8F1C6FD2FC5809E4B0F519F4EB39A8D2C7A4B543650886BA
3AB36E0AB4538AB7EF9EC458A568E6EF3E5F335CAA414B475E6358DC185D91D8
A8927C4800C88896E518384684A9C055774E2203BDB171E74273CF90D6D2CBAF
4B7D9B57B9F9C9AD2E0E3213736CBD60A62F0CA67D019A6961BBF869F0973D00
FFC7347076983AF9CA7EBE3E9955E6EC502C3047271387871A11674E6E3D60EF
E7372DCC0F5EBABF4595ECB664ED7613FBD2F0FDFCF7996D04DCCD7607C63AE5
FE1D23A744A45C3EFD2E1660A33A2C24E53A513ABFF513DD6BE937012C220503
7D98B2258815B84476F6C97199D2C34765F1D793C7C0027DFE120C63BD7EC7C3
4C024A3A5BF2DD93D4A14922E64EE8A7A2479C81CCF21E8E70FB7D477654036A
A2A3299FDF3BAB525EE0E2BA329C89282082B58E4C381A53A5A09B8F55E75C91
12AD5F09227F7460E12FC902A71CE4D0C85CCD77C40813A8079D31674E874B95
D6A728DF9ED43C91192AA6A1B566F5FA87B4A1B2D1EF3A70D258791B03E28594
8C10700DD4B5C082AD94EAC9367110A4F180D70AA493ABF31220B28089E8E65F
D4D2BAB091F8BED0A8FADF81C27405693C4B87C1408934A3E9FB4E3BEB2E6947
49E9CF34DED7C369D23F76E920426A852A4C27E1D53DB5B62B1DCE770E1D435A
D1A620B9E5CB6F7BF1CDCA813070FC29F9847F5BD8558904A4494C45D798ABE0
C75869B68285BF9395A70DA7302EF22C3276A60C65AF76E719345CC87E40C4CB
F555DDBF0F92DA781ED30EC1AB1486328C4D24F420982271CBA000A844681295
15365AAE1085F39643400870E0EF2C3FD8447D3DFAD0A0DBEF5195BCB7663D42
51F5101855CEF5EA2A82E49422CD056B5D3A0157776FF2AE436A933AD87D0385
F0AE92B3C0D4121D59B010D99A6D6B74964FBB31763F1F2B79863D2618879196
C3F8DA8AD901D6EA917F614D82B3220116805C323E6FBEA2327E30D4277C1597
541E2C002867B233BEF034DE2CC07A46F5B6A75F25E571F5ED7756FCF1FF8822
BFB14D242AA37D24C5969E527DBDF5C56C43AD84C3F3EE3A6B47D63603A57C81
F680E87381478969855F0B9FD8490ACD1EB89B0C5B11D154E3D37E550B61E81D
FAE4FD3A2C5BF0D82C1A5CD2A0763EC8323EA4675C0971E27427A65E10C2F166
F3CCF2A2A6ABB805CBC2532812BD25E95204DCFB4123E9C6FCB96DECA0D55946
1E8FCBBB59E30947E9BFF7384CDC9A10A25E9C4441438B36F5E354A36A47F350
38709DC042BFD975DB2BF39426DB46B6CD8B443249A2EFE974FB19B825D021B7
1352EB227A1DF262C3A85EDA8A922879AEDCB45BFD5362F372467FFDE538D398
6641B9EE2136E85E40BDF36DE77729A604F2184FBD99E674E9502F81CBAA6D63
0B53632B2ACF01CB3895585FB4552E7E60F47C3ECCB456895D5E3AB68E596BE6
C168D8598C54C372B434D743E8E615D327FBA258717DCB1A23EC3FA64F7E7BED
367C7A7C787E1A0A9B3C2D67902FA9FA52104614E6CC9B0DEDE528EA75B5B1BD
3618A041D38FBDEAC52F341525CFEDB61ECDBCAAD839164F1A22E530915D4C58
EA7AFE6860183038FFBF5DED117447EBF1D8934BA2B2D8742092D9424F0B9B21
229BCF4D06BE192A2B678723F25B6E66E9C98E1DC6DD6EEB5D719037FE0314B0
982F35C32E9B68674757554916A4FA59E5DAD48507515C4AF3147A684EF8645E
E594E511648B4762AC421E032F6E2B989BCA9B6E293E967D40C4C8E65542E865
85F6D3BD2FF2B14542671D4B4A2A00B11F2697FC7FFB1FAADB4B85CC7DE14153
4F5273EF8E01916112A0420A2C6A30426A264C8DEDB619FC1FC67D4EBF381C87
02DF6728C909899277A1638BE9F5B3937E73351E00CAC319EA11B2D4EE5B0790
49662837E958498E66BA8DAC2048DE01314BFAD725F0A4B2080E720BE8A844E7
1C99CFD843F4D8B037E0127FAF10456035B2AC1867D8283992B1C3F5F77ADE66
4C3E22256FB6328869843B5A0B53B9D5A735355D39F1384EDEF58171016E747B
52333C96518D0FBF14E919CD91324054CDF4767A1C746CFEAF7E8263202BE9AF
A8BB428A981883917EC260A7F2F7DF386B4F8F5B52504346A2B7FA187E9063F3
73BA3DC8B922B30E946C5007173BC8DF48004CE7C85F8FE84C33D5952075AA06
0A2392053409C08FBD9B8014130734F8C24C2EE41FF626F0C13B2F6667265E19
13527EAF9CFD360365E513C305C961C1C6ED0CFA9C4B72B9B1EB0168B517856A
21029D208EA786282CD648D20EE2C0724B8690370DF910AE4475D42B8D8C9F1E
4E9E3BA7DA7BA86D5536FFF61B24CA978E6DAF494D5DCC3483997D04C2A4CAD0
4AB8F90951E446895983970B25E535895CA559EA2D2F121815D552C76F718C76
FC38AF9E456D880A9110DFD8B519B41AF0D71B3BC0517E14924F2C2E1A8B6269
AB48778BC8384E924B1B6EF85EC4AD4F3E0B7AFDD0D0328FA5C130560E4EE54D
CDA56930F4508F91E04AA9258129F3230AF9D6BDD5B7AC829F3E197466799CED
026FAD92F8961F9D01DC86125C92538414070406BF771CEDAFDAC7EBE7DC62A3
1C7ADAA0B6C651989A4C54658CDA95669A59AFD18168AB83E04A0C31DB55504F
C0192719065F8225F9465142DFCAE1BC399C98A6F6CA4562FDAEA5EFC8354444
6FF0CE74A4B5FE22F494E0D215C7533BB358738B1D6C001008142161A71998E2
629D1894E28941E0AA01ECEA03EB1F5455E7CCC63E9595C1CCE0C1C2C777F1FD
A9AA83C16146D322B6BB48113EC2D131483FD134883571CB3DD1C5B887ADD661
251C6D3D8F3E84E5A6129F5B321DED8D03BB922B92B34CAC490C40E497A55EF1
4978C60E8F6855756FB23E22F5A663FF16BAD7C2AE9D0F736E16A84E30CC398F
2D847DD4D29D91470ED402A40BEFC1CD3BB96879DFE14C1A3C3F8318A5906F7E
0C68537619F5BFFC09B3D8538DEA1E7D1FDB24762758F43E91C79994694548B6
942F3A7202F2CD370886235E47D40393133F4A64A224BE0D85A65F6F2F59DF1F
B1D2EEC9DFBFF79FEA9651D75BCF8FDE1C48483EEA51252FB4C6ABCEBD31FD61
33392252ED98DC955475FEAEAEC3A16D566D6594157A78FC5748E5855DD18464
CF9A7EB1F7758EEA4132FE181D724A120F4D8DB4697C418EFC7F7C0F9BAA307E
A2BA656B4E4C956D02BAE10F2E806D8202C027B90CA931E6EC320E0599EF425F
8D8DAF5AFBAEFE83952BB24114C7E275170405BD7A5401660784B27866FBC05C
07E3E78C755A5F2007CA1840E70D090EE571A8844BECE791B63D91C6C27A40AD
14E7AF98D108394040B0C3F9D57F94301598EF602BE757F94704BB163952AE82
6524651224653C7C3B0E4218E9E91E10481F47C0340D6B6A95B2B46F20C58141
6B0B0250EC40239AA5A39FF981C793C96B941EB0B9E5CA42FDCC212AEA5379DE
1FCD097AD36347EC22CD9F40161E01C10AED55F85313F976D38D0D936DEE24EC
8DB19F6DB598228F3239732FDEFD1E9F6E272497B2E298F934E02337505EF3A0
2CC96C5659B08C95257A658372EFE6A845BD3B39830DDD2EB96C60CC88C5ADF2
D66BB069770237FE76010D7A927E7FDBF3BF37419FED5BB72184D13A4B1C4DA3
1DAA2BEDB8A15FACB45A3740D6624E6E4CB5FD7AEB48B07BCB9178538F9DFD68
3BC6B1E241F2FCB4CB1192ACD2BF79D99CFB2781CD6A5688EB6F3E2F516B9171
1B8CA41601EB41AA2EB583EA2140976E9FF1784383668D1CE2D06E5F07598A30
50C000A5327BDBE8A2E1F4736C9E0C75F5B9A2409690DA6E076B0F7DFD0E4678
A6DBBFF820228126FAB23CA929086F8F04ECAD8CA3D23A53FA63D4D10CD72169
F66913B0EB3B4F5BACA2DD6620560213D11D2680F72AAE20883569E68D42100D
A227026F436DB31FA798C9F02FD6210DE7FB2822A97FB1F72F35B8EC7E16A10A
9BA3FE1094003651FD8D7C8E7F7C8383E077048E36FC80817B67D08BF8FE74E2
3C5BF2F9EA4F9AE986BAEBDD1287E5E84A73271000D7FCB425BEDC36C472A210
87E7DC941DB0A0D62934743126CDD592B73681AFBC717FEF532AB80007A709F7
E26A583FFB1DA5962915163A346B75C079DE83F0D90A27E6CC24F2A704A9C29B
F1CA6EF9B4876B1C33F1CB90537DAEE72A40E1D956DC904F87DB65810FC80A5D
087E5212952780E5CAB6B9599133D5CE76AF2641C1C484A133017CFB5292F399
0705D1D9A84F9AFF844D87CF459AB79472E1FF6CD6454D7C7AFA14B75BE33342
DB24E61F9265276C159F5A6620E9F8528A918629B798DFAD2DFEB216B7A8E288
F1AAD497809519F6F68946746EC63446908D11F10C9F4D9652DB4C0A581DD7CB
022644CD5024CC54F352101342F53E116B249D3A29E7B1E5817FBC4E56AEDB3B
DD4D1CAD7DF9D5AEF7CF644EA7D25946B7EBAF7D246D0B2D357612C38D306AC9
CF6508A1E99BDA95E320619128F4A4F732889F35C41E49A8A0FFA61DF5238F94
A6B434B27ED52E22438A99361C5E91C0CFF4BD79E480468F002FAC4C8EDEECAF
0119506C97143E2F5A38690B04362FAD8F2B3546274C1889FD8330F725BF6C58
FB990578835D0ECF8279B15B700272A66F8B1EA555CBE1F690E78858DCDFEB2B
F3B47408D3A462FD775B50FBFDB6ED807FCC60CC93CF212020748825ED63260B
ADBF1B9E49E6F5544C6DFA173034B8FE2BB390BF292D18F33A2080EE34038352
E440F465AAE9DA3A0647CE06FD62A07D24ED2D97EC2275CBB44EC2B95FBF6304
EDA1BD8B96B665A3D07F1C4B1B29377B03010836AB0F5FE24AF493422B40D98D
E040A3DA9DCD040BD0B901C82D67890D7F7AAA22BFEAFD8341DC9A076C05EF22
969A4D21F069A58C103139810BCAC931482B442ECF3AD10E48D556EBC5BD3E0C
E16EA3E4E8382683F9A2F7D36D2489C6179EEAB78DE7774BBE2C8F8AB039CFE3
7F92031D1AC5E44953F193CA9C10313F065BFEE1E9A31138BB1B12437F6B6ECD
7A04F4373FE3A4C7F8A6AA31417E8CBEE259A3169B1E680EA3F2FB822D2881B5
B43B4E3ECED5D89C5DDE9D4A15BC308F91116C7C9875A122217E6BD5E475588D
24F8D8DCB0D20BD1FA7CC337CCC6AC3F9F10F860659966EF78D120A225E94E49
9FBBC5FE294504875823377F77532FE7B148DA68EEB36E92232724D6CDFA7FFA
95A0DD77DA5014BB46637BC0BFE3BCAEF5B224AAEF9B6A44AD59F6AA4990E2AB
B46B7478610DECB32D5D26F44FD55DBF692241594B9F915EBDE25CF98972030E
483B160620B40EB8112F89CA8A714F6BA93A2EA796F359A75D3CBF823268F9E4
CD32D97CA0F7E1BFB414C341569242A707A9E75DF9F92DA0B1DC06BA87983AF9
593228AA40141412E05AC22F0C4B9A0EE97B16D6E5B290AA04AE8FF4E103F5B2
74A1DCB7B2CE6A766C183EFD4C814E73F7EC4FFB1B3507D772F580580EDF19F0
CBDF733A5D3BB44BC63520DCD39B78243CD673CAC51ADD0797A949E8161416E8
24088C57E41079505A89B3975D5297FDFDC25738E22BD12D19B0D1CD83EC105F
070D3945A49935F31237C8F2FFAA96E25B695229FCD3E7C9B3900D84BFB12781
70A2C40547C900CB126ABA175E7964151F137430CA19C8A5947012BA9287DE8B
2D1A8C65F6AE39A431BDD2F7330FB2B2D23E9CDFB4FA7EBEAADA363C28CDACAC
BFEDA0EC382BC3EDAB26369F558C23FF2E355548ED78B92DA708DD859389F014
CA9C58AD03BAE1716A914656B688B227EB7678CA7C46E9DB872A4B100AB03FC0
B04C73DEB50834B273E59AD18D2CE5ADD3C0AA6657E768398189D756773BD05D
2CBE1FA2E3627D4F45B711F15B5A9931DD981C4EDCF9C56C29746DABF8D06441
4FE4A71F4DCDDF5603671CD1FA66CFF3CC8D7DDD58A157E4BDFF0F2E068EC863
1850328E39A616102BAC8CC02AE2105FFE21E92BBF2B15E7376215BD85672112
35128449032EA49156B35D7CC4438BCDB400AC9063FF9F5B08D74785C90B38BC
81547AA5B70E86EF22A95D98C0EF4C1096C5B6247FA8DA596EC008EB63CA8E5C
D6E4238D60A2C5A222594C6575046B58C0A33E
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMBX12
%!PS-AdobeFont-1.1: CMBX12 1.0
%%CreationDate: 1991 Aug 20 16:34:54
% 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 (CMBX12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX12 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 12 /fi put
dup 13 /fl put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 72 /H put
dup 73 /I put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 123 /endash put
dup 124 /emdash put
readonly def
/FontBBox{-53 -251 1139 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D
E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23
337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598
0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6
472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E
A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26
30F37B1F54A6F23CDDD676311856109B27246A09993752032B75ACC6FE0E2F13
17E0E4032886F6BEFC58D15FD6133A24BEBF4F909AAC4734902E4118B92C95F3
0A700FF84E87BBA094797B3D4B83A8F3011193BE6AF0D3251E1E96C4672A7569
1766A5939938DD277FC632AF8D9A35FD9E80EB2951C88088C002FCC7517FCA69
DB6F94D1EA86A4C49C5F3F0B81795680A56DB893D89CF0D181440CE7CACA9984
228F30591606BA159027E682535D06184AFA38DC58DCFD1EB8A54C7E3FDF18BF
0C16762BD7E6A79CCEDAA100BE36212B6D8378C1E1ADCA62AAAD1EE42817A7AE
9F1C56B62890ECD0B88423E922942B64A70E531CE61D9C432A5593F5A46E3D8E
C4E29CDDAB824CECE17D19A63AADB17422906B4D0D2D34CA3A123D1664D46B55
86FBEC7B81703D779BFFB5CC8D10964BA7867149BD52655012CCC96799EFE6D0
D5A5ED2E2FCFCB51D5CBE9D8F58A52C859F55DF47C680F22A37680430F34E630
80CA222172B64E4D6689D70691731AB6BA785210D25DD18464CF98A0C4452FDD
361FDC605DF988CE03696952F36346119840E01F374937CC1594E88F6364AF2D
41D928A49646A7A4F5C5175FF7432DC12EA8576E8058E1D9324CF8ECAA9EA01D
C6D51AE6B5B41112C1E795C11BCCD5D7D58BE82A3F760E62EA0E9FB2F4EBC6DB
8FFAD83347C6721175BB70D732B5DF9FBB2F2702C6283A0E14CC7A9698F888EE
0C6B2283D886088A052D1747CD0B1E4E91CA7F7C53F366217B2897CEBD727377
71EB37A74F1705FE91950F5C263DA76B97EBE82C89A2F92A8F727B360F36262B
EC6C1E4BEBA46E527E474084826602B976453032FD7B01BB7D20FAF0BF2AE53B
1CDDC63A1D0A9899EBE57200DC94C361CB4A18CC815F4D69CA8A96A29F8A3893
D15AC2DB4048422D91635A05017747F95EA439F8260D41459A6FA47E805EC3F9
A576157DB14EAEEB34919BB46300A282B686220867DC310D27C564F55F09C782
25ED2746F4BC41FFE5E488CA14CE047FF6895C14FEAD1EB21FE725B9DC327F66
25450A2CCB38B9301F9DC427DAD1E7595AB70203F5D9C18DFBE962AF83F6059E
0AA93627F7D75BEB86C1C4782080783B442A3F071EE8720DE8E17E6BC3969BE6
8DDAD2A167F02E82EE8CE6BB4E21878E2E68E8148D00C4A8645DCA4DD5C6CADC
CA0F014F48DA3EC4826805E8DEBF166FD797458BB83A18F84B4613F473EEC8D0
C81146ACAE3276779948F251D2F846AD0DF6FFF960D0BB3332CD5A2BF8BF5AC2
12ADCB4C42A5FBF4C8161364F0FD6E50A00917E1D94A648D70098C037414E6E0
3603974E33B9A8F7F56102EAD3A597922E5594CC52599531052D976EB457FC8F
8F6FE933AAD4E8A2EDD5FE5D3D4463677CEC65833F1FEF63D0DA95007CD5263B
EAB8AF9A9CE1F54E9B9480C38DB5EC7BF932D319290F625C1F06A37055F6A02F
CA4D923267212066397A6598E19802037A60F1ABBAFBC8E3250238CCAF403427
C49DCFCA67F8523963E732287DC77C11F6680567EBC9B3630A804933633A166A
639F2B44DD127E94D190620E97E7439E1CA4AACDC2B5FB26B72EF133414280AA
8FC652327D32E4B2FBB7F44B629FE484E4FC6814818DB22A882EFAF2D71A6725
91E62BD21B8E034031EF8A9638DF99DF07C66CE51ED0D642930152E0A05103C7
1AE57BB8FAD7011921662FF0B60A72FBE7763CEA33F25829421BA7DFC158B99E
7EE509A46CA168EBF4510FB86E6950C98D07DA99CB1768C237BBD2E71934C8E5
AA9DDA255B0F26BD784E532580C354851AF8616353CFAC71785ACD5A9459AD48
93E02ECEDEC91DE0D50C068432EF39FD1FE4CB2EC4AA0B155F05BE6115D94CF7
9A23100FB4270A11BD50BEABA373F47C56D95BD6ED7C97E733BD6FF5FC90E5B5
021F9E2380DF9610D3594B58C868123D1EA4916D97B6B942AB25BC7FABAF3D9B
C2DA2DA961BD712D60F6360879A0BCA0DCB35BA8FA8DB1C1272393010F87905F
6131AB80B70358DF5CACCC93D55F37DF70FA331B6DD027EF7B417CDC1C265A6F
49871517FC052033EDCF0CB59520919F915B6C6F611B39A655214124C619C8B4
B4C3114C2FBABCF22E999BD655689654AD0044600B32925D659050FC1701F72A
E43878ABFFA1FA26E3F92D5443F35291842FE6F9A6A83321C5451F04F34D1F41
BEF8014DFB236B12E35F5A671844C56E89CBA54BF86A18CF6EECFC070EBB6E62
AC0D52A5E9E0B40D391B334F86409D610CE4DB4738784522A183B01E566462C2
CA684981AB8E8FFB034CB458363BA0438B2E9BF20C8CAA1E30B6A5122F54506E
433F8D11BF9868577726818E131B6870341CDB5AAE9083BAD012924DAE080085
81411FEEAC6745FBA1F85F2BEA6681910FED2B089C5927AD38ACCD8BD2E10555
E41B3BBD97795726BAD85C289855BD5805D4640153EE48473513FBC41CDF891F
3F70758C97E56162DD303947C20FDC2A46CD7BFBDAFA011BF97A4AD02FD0C036
BC354EE1BE7CCDA95C5C7590A71997CCC3CE7F4276857AB5369B24EABA6A9F0A
28CB11F771B7A69DDDFBDB5BB3BDE118B7735380DC20FB2B2732099A56DE0E7D
19029ABCF68328030E17238E3CD981B09C372CD997E4070B71D9954FC2665CD3
74F72F82F7BAA304326CABA2841A2F87335CCA80AB4EF1A46736784C3AFC3D5E
8C31BB6A41C170FC70EEFA115963DCE522F463B7F93E92A64F62D9CF330C3954
7058EC6074D7600CDE19DC23D959825DC8969F95841AF683E1288E8CBBAF3FF9
1F5583A2AD6F15FC002D9283EFBFA7C418F537172F0FBE0151FDDC2486A2C2B2
9087CF9B72D7B6B6ADFE5EEDB78CD81CA516899DE86FE0125FFD2A6730FD96AB
4174E81319DEBB5F6AF789139B067E95977A52ADC156104B7C1E3122E4E88291
161071A3F8A9B68BE76CDBAE544CAAC3A01FB6C591C18228E122311D059440C3
68F74ABC788C81C7C711209048FBE03CA0ACE9CA4CFBA7D766396D56A1A90B0F
0737CD3AFB2B93929CAD944765326E76933999DDD5CD69A5B59BDAF1D4445C18
803461C0746F50D2C74036A95E47C832C15B897258E11253A4B1C44A79FD5BE2
C41E40B5EF9F08BBDF51FED2497A8008C77A8D0ECB443FE21D4D49FC355F893D
81CF58D6955603D27DB2644508A38998AD9182706D9BBF6A509C1EB2CCE2C950
F572C5029CEEF7D6357234803B2225A50BE4813DACE8A9BE9D6B38E256B31FF5
B3EE4957B2EB593D701E9756300D7F61AA4CDF2E75E3DB3BEE74075DCE1A4700
7FE0A514D2C0F52C1BE6FD608982795FE17C729A08D5CF5202CB2F175B1526BE
E94C95080F5718D426495842A242881836B9A8B6ED993FDCFA79D1D0A190D9E3
E56334B1544B11B9067D59A915C86462994081FE5CCCBEEFAE0611D552F5D286
7164D123BC2625C97FD008AEADEF38FC0680FA9E7C01EC21DCED1A6EB6D9757C
D21D522FCBBC166EF17AFF9CF1D9EE1B03DC7AB81185E59355CF2CF11C7E7D76
913C9C2477C6278592D4FA6CD426C116AFC670AA59F11AA8726387457A7906A3
00C01BB464F91EA660855DB9F2AF65BB04D217DB2A60C4FA6748AE0BA03A7AD8
3C79D0B5CEBCF50BD8E91B1A5DB794AE471AA7C4A005220035D884D01ECB7E01
ECF09AE9B64AF2B7A1FD32F9451A2C5FEB822442CA88333D15EDD5859884B0B0
50340286266D341072C895E02979ABB2D0781C4956DF6F96B3D56E557AB9852F
2CCD416749F390298894B338A19858993F7B9EFD9FB53547A36F3DC2FE1C0123
827629CF362211A74971302CD3CC8E0137D8813E90A330816F0EEF317106A2AF
595F44AEC3A251694B4D37305971FFADCD694588BF79E465DF5B35F099385EF1
4D64925BDEDD668B6595E8770FA5D223D3839074C925AC5C780FC7494DC0DA3E
B856997B38A145A1FD412456BB42E29B09A494205E48B7AF804B1ACA45521CAA
52A1F259FD34FAB235D5FE943253C3E5695E16FC1727A45889CFDB08A200421B
1DE1D1AE1B6D1E727FFC2228CF2422E0722D63F03EB65E6E36DD63565C0683E4
9D12EB5CB2A812AA1ADE0C07053B2F90B187B1E3CA1DFF265F6FDF90EC94D64A
9582FC373C1AF95EC849090253CD1A7C4044CC13C9C2F99222F99BFCEBF20322
F492AD389EF2120FB0BBB6E37E0E52054F76C13DCE8697D180162AEEEDAD013F
88938BCF4670040883DB41CAF6F5BFBCFAB4C47C996ECC1B94432FB4A26DF882
A38FAA0D89326AA9656972A6B92CCCD2757CF6B92156C3D20F17F07226F39753
06715C7FB7024A5AF7E146022D3414E6A5A494F9DC542182C703FE5BFEC6A6EE
A836FCA1EED58CAB92FE9F31E0B724F0EAD39D8C4BDFFF08830CA4CA34449E76
671BEB7507B32A8B8B394DE701D7429330D941D46B29822A9767975E8951D10A
8003DFABE7CBABFC70359B46358E910C4CAA7156B8967321B9EAB196F68FE8DF
2E35726D4D6C6710DD578A1197F2D5110F7B44F9C7EBF50F12E9C767B70445FF
346616E71EDA79A07224EB852F12FBC74CF9F307BA3C28E3C8909A8E6B35EB18
4524456BBC8B281A1399F1C747E56B7320FE9A84D800FF2409AF133C8052D8DD
753834789FD3B293E6E9352FCD6976D678DC714758E8AE96589398017B74C865
5DE93E65D3F4097DD5EA9AD80780B19CDC3C78552BAB6DCC98AF753E4EBCE8A5
A0BEC47D388292A53F2A5702AF41C68B9A1877091B348496383FFAAA42A2679B
1083741369E3822F5796258F7C4E0F12B37256237C5FD9518EAAF92881B526EA
06CEEFC7D187AFD470950B196E2EA5B941ABB45ECA899A7F07EC33CF9C447F31
0175C9275A748425B324B29279C331EA3D48E3146B20E86C42D32D0488B8D842
409B9682361CA6F54E389005D36A18F3C9122016D65E45A7B844C25639CF7482
780A2F9B46D7A253B3E3E0A8B2C18D8A884DAEA55A2995F5E500B8F7A7E498C8
4CFDFB0F2F48E0C9D5891984E839473F8748B3ADC823869B2E1FD33DCC51F8A3
80540BE0ED9ABAA4780553514E1A125906F937FCD569D3C5D3E71EBE32E7E756
DC801FC5300ABB3ADA0B2C0CFA630AF63F024DBAEF2C464A1CAE4E2F3107C897
3C28FB44F1BB4BB7EF5BD7A537EA939F7B39A0197BAF79D97712735F01E89C84
3E90F198EB29C2DF028764E102CE581222DDD8E36FFA9486C3A61BE598DE6F4B
68B105C765421100553C871B73EDDC8A68FEDF72EE40217FF17599054CF752DD
422334D5CED75B5E92958ECAA933C1564CF9FD791D5DC2AE32B926C45497E5B8
02938F8C594C57270608E71507411A351F653114878C717F1C58470F493C4C4C
53B3181AB7A00C871D7859E29E0C28E5C6091EB5288A02B79AF4E52998FAED2C
3DFCD8707666A282384863F3DECAD18224D4D8716723BA28CF9EF9011F216DD5
9F4CDAF696BCB0C013E203D9A3E2C4BC37507D9AC0658D6A4B4236FF0875819E
6CEFA88B5F7170038F5829B3857D1529CB1AD6E963C8B14C8F0D7CF7A12766C7
F9BEE20592E77144EF14478DBF178D6FDDF932973F43782BC9B4766D51C0B75D
0BF3EF927C49C0A3793459D70244C09D1FFF47E1CD7D418731E206025FFB0508
55F5C0BB5B1D02ED7279106E24A83C8C174C51C977F9CD564891E333C7673739
6D9DA15E07860D34EAB4D232FC1AA11B0F7E706FDB6A46BEE1ABA55ED46D8F8E
2C75B8DC98A04775A0DB05DDEC555C29381E9C588A43CC29C3DFAC7C8D6257EB
6621BD7E992991DAD996D00E6EA104F5B170DFCB3B662D1FCBF6676C386C9728
B4FCEDEBCEB7D45AEAB68A0226BDD8BA6902F6E13FAF7CDB7AB0455CB79F8F5D
889F27C25093CB908BCFC3F2E33A35A4720FF3E70D82E5C595A6D9A599E629EB
24E1E7E7F420A5C9B573AE009817D269D97960A721AEC73033914423BBE2A8AA
4353B39298F9829897EE404F2F70D0BECFAB679ED952248F0A38B29FFC148A26
974BAFBBD4F04C3BAFBA5BA26612F55FC57FC5DC8E0930FBF45EC081D87E4676
3064CFBAFAED9A2AC1733E5EFBBC77B807D5D8294FBCCB26B77D4E981A7239DF
294E32B15FD6FF78BB3003CE0876314EB458A9ADBDD036CE84944CABCADAD23C
4A78247F3B4B5E910147F69C140CFBA822224A28785A08A563E204CB221A9D6F
D068E0BF386F2338DBCA8AB8F62E841D365085B14F7496E05DF9E57440265EFD
08672B493234DDCCBB444FBA8541636745EA11BFB74F19E863100B5A006AA467
33700BB8434A05B837C6F48319F63D09D876D7FE9191CBF7E8922CBDD273A6ED
C241FB87A857C5F57BDB71B740674D875401E09265C89009D642FAE33BD48E1E
72151D20D9C5E058902980EAE8BA1A51E41FF1B674883A71793F2A596873F974
833E641593A3EE5FBE63F2EBACBCC10AFE2A076CAB0130B8CF3C65566002560D
30A19F253A90D10127C83877E164977927E579F5D42EAC81954F815E7F04C231
49FB4A908F18CB1DFF1CCDDFE9772F01ECD02E75671B0A5DA8DAECFF686ACA13
0BF0E9D7A3D6ED23E62838F1D3390381BDC345C4FDFDB8184460A4D2493AE905
3D8A322A7DDAAA54099D1BE0CF118F0A7CD1CEB031D21C634C8F7B88BACA0B6C
4A47559C20E7E279C5A38993C135803B09E6AC1CFC7E81BE6C3601C0BB83D585
BD6E4CC18ADA9EA457EA0B7E94CF8E1D598820BA6846D28E5AE9706C8158CE64
007C591E3EFA62CF5B0316785A107F9AF89D1CF187DD0B04E0C8B04CE77E5C53
1A37FD2549844E89CEEBEF11D4D36F398B62940A1A44A5A9E02AFDD243EDBE86
6A53F80CFDF56A014D9C3765CF8B9DC54C4CD581708A8C1A27D76DCA43955AD0
D6C6BD5EECD3D6F9D27A10A4A7B0F420F16FD6F92E1049833E6EB9753F302502
586E3E5A2D91920E1435E60DCDAAAFEB7CA8B721A6B5CFD9D6E8019314FBC0AC
BFADBDA5F0EC7B18FF9B33FABDDAA78F83A47B00E8109721E4A06FC5D7C56BE8
4C9BBE9EEE2AF4B017E2B35C7A58923C9157F2FEEBACF2E21F5B182EBA0688BF
BFE8B760F7A7EE7DC3EB74E35D5852A91DDDC44F6CC45039D56D6727041B9F70
A0CEB73C168294872BFC424B9231FD98501084BA1A9ACA3DCD36E9465CD68422
84558A66C1B2262952DBE9A15087CD707853072F54CC56418DDEA6B4E0917139
DCA5216B9654CF6BDB152BF2DEB9014AC9BA6D766F129A12DE620AE9BD64DC92
D48B2BCA61DBD0879E4A62812A3A27AC01A8C9C1CE77BF8C8B758080DB7F0AAA
EE57C463CFB5A2141F059673264331E4B0391354F8ECBE2B892784A72390028A
44B0444EBFF62EB2250AED2C836BF79CED00C52054E342341076EA67889D8D1C
275833B2C71D27A31D33FFD256F43BE47628485E67C9A6B61CAA3BA5946076CB
3A54A394FEAF24810AF33CFC65ED0CB2FE44F1765B308138832998ACA0811558
9685D193628D03BD4DFC41F203BF9ED180DF2FC370FDCDA1DCF7EF94FE3C7F95
4874129874A8EA410557F451A77111B3E506A2367AA1D1FB912AE2659433A128
F151EBCB85EF972EB8DD939B72BC7A6A2F6DD32B9B7FD045FC17734B9C64DD67
67A9A5C610000F8B3EEF920C7691921FECA28DDB6D8E93C2AEBA7DD3631AC2AC
569781D4A82C4E9490BA834C93B8B872DBF9F63C983641D7C4A10AC55339CB4A
A311051B3C52B5D5646323F983A2E17F68ED3DD48C44CC634E1ECCD21E075C9B
95CC202912C52199D97976DEC80352CA5790489FCFFB5D083B3254BDC46037A3
9279155B34FDE364230B78BA04422CC167610C58B0AB1C28476C7063F6B1328E
A68D6656F66187C7C034673A49A25FE637DADEFB145E6D6184DF52F6B810E3A4
BFD081F3E21F77576DF85B8868AEEBC1D674AA0B2756E41FAF97157182972BED
D2E9889A425A08220FCFA2A71479EE002D679AE5543DE4603C602E897986442B
012B080F836B9BF721CEF1A524080F69A3B7350EEE78802772783F835D661668
52F4E503DC679383867A75A5DF0DB0989E29704C8EB11170ECB61D8CD2E23782
4349C33DC7F2D345A79CE321C0570A896418E14C9CAF6B4707EF2BE06803F549
4DA3CF9DC70385B5CD0930FD8A3803E143B0631A3A95F69D3CC9B58892006D1F
8F4154474F6053E3E1163FE35AE35C611D0A8058D3DD371B0837E5C1A75C333E
8A6990A5A37C7AE7075211E9A6AD45F0AF5EA3CDACA406C9A8A825AF1C6EAD60
A8019F998326CADC2E18507CE4C57110DBCD90F74CB019A3C592AF454F341C87
9FEDB2AE61EFDEC0F92D8121637D4BAD4CB85567F49222ABE1B0BC74D717749F
C2D7E6A0676AEEDBFDF3022C7A682EF48ADE837F63F9EB4A8CA69821AC8A9754
957C3893D44973EE748AEAB4CC1FFC6A4DE3313AE910EF732EA2626C3E956EF5
3C3A7B1D67EE2AD201AC78ABAB68A75C9E499E9CDCC69930A0F13CB589AB9008
74BCFA47111355CC6D8977B657131D0E2BC2A94BDEC398B03DF1D95EC79B5DE6
1552389E7757A47B30EAC118D536CA5CC497335A2D22EE7AD45DB1C14EE29349
AA3E6774320BF720B66FB4F3A4687DAB6C1F48EB8DBA7B0D96A014373FB22B1B
498E38F7A5339A6E7E43B6F1D4E67B2CF6B58DE0DB896DC6278B8BD9E4B63CDA
3F07767E471A2FC2195008E0ED63B867E1B75580A3E7A3A728512C6CD042EBD1
F175815C7656891971B097BF4D5AF256C5FE28D0FBD4265463DAD34A111415E6
5185C65F777A851BF6D826A952404BAE2C17B3ED76E146AE6F6EA2A224E7C582
E2796BFBCC5912C85E4C9CD8A1E68BD0F84BDA34DC15D4195A9866EB92710A8A
BCD1CE794E2178EC40F2AA5872C0956BE405592256E2A9C4A955D8D5E5128435
C05E908313C40222C9358EB9B465655CFABE86D13E9FD85600E084C8D07CC885
71D7202C763294FD96EC307259944A405B0B613FFF26D510F43BEA641E6CB9C2
45AF74C3D285A3A295453FAE823866163ECB01150C011BD9F6AE8E6A2515756C
61243C8AECBA40E62A9FD01E5490AFE9819AF1934AC13463BF97F072EDA8F127
BD7CC3A4626F64873377425ADD935EF34CC2988958A5B6B217625CD1686AA629
42AE75A07426F2EBAD9C7A57828D5F4AF0CB83767A73B7449A7696B7C7977027
9578B008F09DA7652AB67FBE428C8D0BD475910ECC46E4AD204CEA3CB5CBE5BE
9D13900B2C3ABC825B4788C4919C30095FFFD78D1BDCCD340A3C5CE4A8F5FC13
045F004E53BA0EF92BFC26A31E85EF5F8562CC49EB4F6D517C876D5CAEB74614
A0EBCD33E76822E64532CD68FB5B78964F9D816E90A48633DB5DAFA0B84D3987
51564701907F5141FCBBF21C6BC6BD1811CE1CCA9F126A3D23F5604D949397E1
0367BBD8231436BD9F87A4F4490383CCC7AA0E8BB647C0CF64098F3AA3B72232
BA15ABA40CF94A23A8A20F19CDAB642C257A97BB3FBD7B8B1FB2AFD71087D091
49C88163B8D1E524F4D01CB6AA9056C208D179BB9EBDF714459B3437A3BDE142
B1A518D1326C318084569B5274F4EF18AAF306B361B38C11ECE7E61BB8DDFCC8
EF759C7B2566C7670663E4632A6DA3CE45D4597A5BC9FA29D27BA2E508011E14
0B546DF47E063042670D4DECFCF2A6D3871365500C0740F3352E1E9031140896
FC33183256EC1FB42947FA754BA71DD564C16CEE74AD5E01777ED2419B5AF25D
0EC618C5CFBDA1397926AA5F65B7D0408C7948DDF5C379D95CAB29B0E2DCDFAC
9BF61F93C135809ADE5E155940C63D5F8240644FA4426877D05D97215773BDA5
41DDE9C577260E49BDC5ECCEE74290A0265E0D35809FA1C0F7377E03F48E49B4
8819D7433ACE54FF74600B7E5371533F788E62F4D050B3C5194367BA801E7EB8
DC6EFCD5DCEF6AA9F7F200D5A78408A3FECF8A634ACAEFCE1FB191320746EA36
C7AA1097D0F821462BF2E9D31967722EEFC642E015A30AE49899386FAFE5F95A
4D4604F0500B12092638355CA798CBC6231E9E3F2EBB75840FA5AE67BF19E4EE
534BBE29D57E08DD608618E2A80C9A8D51C1DD9CCBAD9BD88A154D1327F36672
45EEC23D76473CF15B5F7CA909CD6471720A33544DEF708198DAF76143D9EC99
E8FC78E6C79CCE9830D7B57F56CE834A57A915BE6DA16F2D9D7795D140AB8AB9
049B2C7D91BF3419583F76821A2612D1E3F6762720EA232F55A016EABCD01510
BB09167BDEDD06EB8735352545DB47F35D3E429F33862DCE5CB676BF40DFAD50
BF8E06A71F80A0A4F9125D99CB38398956E4B99E7EB026ECA4D4504B2403B13C
917D1FE1132EBC0C293510512AB15A60F77E4605158941F1DB4A63157DF2F1B1
396D1F90CDA2C2E726095563EDF94EA591D8D56154A487872F535D095CC8F61D
B89B38310E3E4D1AE32593D5B500E9F28E63D218FAC8F194E81C6C9292174E1B
F83A611540C555A9DCB8E319347120980501FBFF0A312052B5FDD2E1D324B94C
66CDA3341A426BE10D9C5557BE0D179139FCBF52AAC97625FA7C06265854DE3B
CE57E1D8B122810418ECF51578618EB343EC2BC63D2CE1B616C0D5312489A508
F3151ADB4FEE0C137D80CE0353A5538E0A4798F65AF9C2E514C055748E3409F0
6FC0D8A2E4D13991393923FAF9474BF42B37AB7DC4C25D1BB71FD734CA8E30E0
B0EF7C6BF46924A7C0DC62662E148938E87CBA1314F6810526BAA10036642A27
C4B8B796DB5C49370177A42C700BFA79ADA133167207BD56EEF0AAA1C1A06914
DC7A0559354CC3E3C4CCA97068C80571C7BE1E185A2C0B7F6D3D7B0E16A88F2D
5C9D60D8FA787CF3FF78C9BB493023A33FF684DE9F48F7195D51612C309B1517
8BB3553436DAAA91608ED71E67FB6FBFF99F194204422D74F8FF18C73ECAFF91
7ECC956A355D7FD6046E2AB99362374A57C276DC23C4A0B665A732AEA0F0AAA4
D2352361753674676C8B4F1036F5B1A97B9B6AFD1D6BA9D106E7BFEBDD7C5523
E7B07244633996993FA111AD4B90951F45E0C8D003B3F8820CA9A5B639963E34
41A5D2CEC339D10091D8DE6303360FBB4DFF544AB2B3BB1FA626F85AD68A0815
AB1EEA8F4ECC27F2A5CDE4CF93900F65E03A4915163949F5166805B6582B9083
F519D98D3755DF1C17848BF8B228FA3B33320C7BD3703D17CA3571E27FEDBF71
18C699E668CC59C9E4D5F40CF1443E23AEA2BD94BDA4111D44BA99528C025CEF
8C64046ED3B5875EE58CCF6428FE7EC200F5357E94CCD8D5ACBE3823EC23FF89
D34125A9E8B3B9053A2E98DC122356E7B67DB34291A5EFC059DB68444E4F8A81
9E0889D7AE32B6545E4ACE2C8D65652069BAC3DBE64BA783C5AD5554CFFBE7EC
231CE1F25DC1827AC8498C1145ABF15B6E4C7F9C3246EB33A71980FE0109F8CB
CC0F5688AE13AD4EDBC488F457381331E5F432DBCD939A78FD3D72C46A086812
D9ACFFD2380DB2A6070688F0A55F6FFFB53304B3AB93708240BE3AF904ABDEDC
39B49B2FAB9B72CB2151E96B353D395AA7E02E19779351E93003033E8C022D51
581833C76767628B8598208B1663ECC90A7688FFD5E9907E012D230240327B24
0E830ACCF5ADD93176943015A285673B9F59402C0ACB8E3B1F7E1270FE3F3FE1
EE65BBB43C611D4CD904440C6CAFFADF52EC9E6C5A394FDFC063D49D67DDE740
71B01B18EF34052E5335807409C8142856EE690D6D38AFD413125C832A2E0934
9FABCB9BC0DDE6237DF3D1B0F10800B8E7E84393D68237F09083B7006F341E3D
666152953F4B18E11057F6DD0E73FAE52CB6508434A778C0B4BD7E792BD89B36
39B56C28A030895C195AD995179567035B6CC304966B21EF2FCABF86DBEFCD02
6BCBB66879ECC30677E8066DF84FF614879F0D734F5FC27688D61B06EF5B2C62
E383657B891247BA3497C7A89F79E1BE1D7C636CCC460498C4EC623A3F27A061
CE24E62E7EE663C61AACB9982B5D3FBC0DA3DCA4CBF8AA18D71236EDCC99392B
5CE1C270B3ACA5166EC8714A0CE88C791541AFF4C197E8C5239806C6AD4D6E8A
945E0B639608936BF199501020BA2DAC01FFBAB49E2F24D54B70EEAFD2DC7193
8DBDF2805A5AB461706B134A610091074DEDBDA60AB39D8ED613684F92EC04D3
9441C21A5FE6A0949FC23E06AF3A64E2FA08BC1B729020A101E0EE6DB3F2C14B
733E8F285D17831E6C76CFA5C3BD31C260DBDFA8614D27F8D0EEBDAC2EAB79A4
EB1DC2480A08F46514ACD47282B30170E81434AF548002ECE2B632ED5AF5578D
197EEA7F690049E499EFFFCEAB0C68E616851F255E07003AD4C9C54379414536
B7C995E80F5AF3D2A080CA8FFDE0047F8CE436DFE8DBD34BCBF186BEE099873E
0EDFE6E0C5771023AC85460794DD9B1C4BCD8587F40EE0B93D67D425E8284143
12E9B44DD2ECEFAF18FA0B83FB088961A99E17F6D16F344D7033634F62F996DC
35B27A15A79F4A299501CCFCC85E56F7DEF41C4581F4B0523CED9AAE3440D11A
7C1A348B1EE7A193091A3AAE0BE167368BDC2D068BD815771F448E7DE3C9E0B7
CCBE480E54EA747B3071AC98E696516E5BF865ADBE8CC8E067A7A8794AE33F0A
37B569B7DED81C33F84734E6FC713AAC26BA975D2023A7D617FE73D399463A1D
8887AEBDC313653661EFA183236B010FDAA00EE011388A5DB8D9BC355B8C4318
4AA34B4BD48CCAEB50E462D1CC4BB49C6281FA11BA9F28238E121FDB0F7E362F
F02C976C54A2E3AB0916022D56DCCA9B9E98892629AA19DAD127B0AB968AF41A
87B0E3299FA91E94F7D8E5D0B06C996916144C228980F3387C48E9321963A90D
A8BFD531D09B5717F687BCF0119F310DF584EC061D3E4B03987E033E39688DDF
B07D8A892D
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 40 /parenleft put
dup 41 /parenright put
dup 45 /hyphen put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 54 /six put
dup 56 /eight put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 71 /G put
dup 73 /I put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 95 /underscore put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 121 /y put
readonly def
/FontBBox{-4 -235 731 800}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC
FF798F2ABFC4F3539392985C4CB324B0007229586D1E0321559F67C057FD7902
194490A4C133DA790FF3BF23A13C2B1B69EEB75950F9106F2BA1E3CA624E401F
4EAED54CEF1697634E212C84ABE55DC2BD7AB0B2DF75975866694BF444F28DA1
C82B0FDF01F14CB8BF3D2D7D5A12F28A1EB046E1A5FD96D55AFA643C18223005
A42A56555CAE6BD34D7EA9CAA4F671E3A60CBB746D364C09DED261E309760C30
B9E45D02D0858DD87D990013D6A89CBFE02D3C647390AC6C116064972394DD5B
C831C7315F96AEBD10E9D09C169E58C3EFF6C344179C39BE2C981AA8E951FB96
FEA7BFE9D65653A7F560CA6F49B8D9397727F485BCC8F845BDDA7C54DCE39B4A
A8C4D17EBB62ACEFE4130081B7D17D92B2FFCF2FAA8EF769678ACCAB562CBD1C
7F6ECE90634CBFEFC5943C3DE9FED3B3F6B887D2CE80D4F611E2F7901C2C8A8C
55263C051427A3C4DF5C7790AA6FDAE5EDBF76871F1F34DA068B282455A7689A
A22CA95C08DF004F7CC2011B73B5E925394AD1CDF4823201ADCB322583134461
E00E3B0B6EF52F14648AC186813C82E3C45025F52696DD338FF6E18062DA335A
1BDE88057173C032BED0153264B9F74DD6E9DCC4207768703D9861A7A2A59C84
ACEF0BCA96FE1AE1F979C7A902A6B98C7A873B271827D743C64FBCD7A7AB9341
A7E645A3D19F28BC7EBBC4727AB04ACDE1551E06AA7F1321BA3852A701573102
3632D787D085869155BDD9CB8DC8DF5EFAC20737320F851055B3E35D5210039E
61598ECE5CFEB048D5A30D1827179CF6B4B45C14C9B744BD98D8D43843DCA229
F6F437E78CEB1FDA3939291A3D76D9361B1C0405216910B05386FE85E4DDCC87
B7B18BB3FF214DC47D38F92BA3447F5DC521BFE42B64177C8B72526B35583683
3BD1FA7CE5CF30333A29536DCB67C5470E39402AF2D37821AC806431A5261E15
B1625F6A7194624D33B42527A6992E837D94056D90935925245DF87EC8C756BF
DDA040CDA6C22EB9152ABFA8C30CEBB70B808B11A8B9B960865EBF994B034A13
29F4225522E0668DE8F4D29FFADA86B2C55EEC32E34D37D55F767A89212D578E
6713E54E2F901A2E48BC284816FFA927B9BDF95C829007E6F0543E60644C6779
9F117E963B2D6CDEFE94C96ABBAF9377E1429FC71BC18AA7075E5DBA93B31373
2D23BDCF40461E8F1949C720FA8C93016EB9B1545483B66C77ADFBF6723270C8
2429DDFBCC8534E712E635DD1F528612F349EC95D7589B696272CB8E9362177D
F220C9580D1993A878F5920CD2D2376BBF2DB7B84714DE9F000AE525ACB3B500
83310B95B332C5F9BB5B66294B41590FCDDDB332E24DD97A5234DDD10DF7BC69
26F4C1A0AB35E3CB594F1609662CB7CCED3B21EA62C21CF69B80611FB850ADB5
CE54DFDE69CDCD82D30692D3A687A4ECA99151B3C87811424D9ED7D993C216C9
7928031EB11DB3339DA6BD80E629A2D1D098558D0D6B649C009383884B505375
FE5E4F797AE368485C25769B2BEBA7715BD4A4204998FA3A68C36B26D434E6FE
3FD69C159400CFB08903FD6E89485ED3CACF1CFE6C46FE822D12DF9516F000B9
28923C0D3DFB750A9CFF0CAFCEFCDEE8479EB5575A92D823685AF32730A6E918
259536F291F0C06411F880E408FA90D0B4C5CF988533D351186C535E1E10ED9F
D98C20070745C1E1848103CA76F5BB8923221032BA9521387AA5EEA02E00E181
D1C011FDB0CF0EF40BAAAB0855F81D9D39EA4315EA5D0E63EDCBFEE3CF6D9170
3F36F74A373DEE49961548E551759910C7FA03485DDE3863B79BE9B33618BDB9
79C1F590AEF3005705C7277DE0B357A799DC40CBD3ECCDE4EEBCDCE703FB2E76
942C21DE927B70D92C6A6A5C4140305E86A0B962C580E3F4299DCD7A96A45938
9507822BF178CE54C86D5ED55C50A06C4117DD25811B92E93F433D596CED3D48
98FB19CB52557B44F81D5B7C6D01ED6AC04109C8B0FE2E727DDA7A0F6D93A5C1
1DC4C275AF29EEE785291696FF2C1097840C1E162ECF96FE288201598C8D2FE6
732AF50E401CA68EFE80FC6DFCD38A22B379F055909E33888A30AB228196A5F8
FB94CF4A0A2F68EC13D74FF04DCEECCE255D058F05AB4BC91C779A9EF575960E
9EF3E9DF3666BD0AA3690BB213095859356E279AFE2C2D4D3742386322AA25FD
2F7180C80236F5240F0B798A03606D8F35B872E83115999F4D5B3F35A0B92265
A697B60EAC8198C178188BFAF99DBA6B0C6768E5E275AF1B0282B995A1193BEE
0A7DD5EC84C1D096C03132539BBDA351D7B0A8A7907EC18869CF6420164AE56E
AD476DBB16D63DB0DDA2B2F98BA1E17048942138BBA89EB73A90013302317509
7B727296213404BB58353B5269FB8460E45735D8ADBA40E3D075BB60342AA023
63000A5D0CD995F667B706F42076BADDDBD072B927C1592FDFDAD6B34B412D5D
B6BEDA7645AD54BE876BE1DFDDF1AF7991C97B8EE12500CA9C19D31E651162BC
4896C8891925DD85EE46C0E17DA5A4CB3F05DEE77ED608978F8F0DED11BE9461
B7C8FB0A3F2D102BBA4FA4E1677588EDAC383F84B22306A554BDC7288E24C918
4607C07212EC2E0F93995B200CB2366F24F24D50E2B3FBF7F3AADCC620BC9AE1
96C97935FAFBC774CC90F4BF067C1E1386DF125CAF16082B1CDC01059BCBE8ED
2FCC464193528D99BB9185A3BFB6FE38B0D016BB57C260B1AB58B8113FC230A6
3AC681EAD3C30D0CA3C9B41C3BC3B6E3667C4A139382EA59EDA3CFE0F66EF143
22608F6919DFD42DC83D3A8A65C0359270B9D996C50882FC30510ACF4EBAAF42
414D6BCEDF9994E242D1357EEFF0A32EFE6E0040E161D439364191EDE9921F59
149CF124F35389A459C699D67AD07970C943084D9FC0168A3D59D9CBA1B7D13C
DA6B25BFBD6011739E16B0B9E2B3EA218EED58B0ED436851A1CAB6BB7D858D28
754B0B246DC0DF4224B0A4BA9D56471CC93D2C872E752B368B7FC3FF35062E99
2BE184EC16C2C95CA66129F3E2CF98741C0205C9DBEC9F12FC8B6AD4760E4B43
F0F590F79401B86E9043D9BEF3EEF8A9093927AA7FB3104DC74B808C3A1E205C
1D499AF273690AD8675DE3A7953927CB6FA47E0F31C6A943F707BE12E7D34E53
3FB2941C7CF1FFC985778D8586EBC2BB838ED478CAA2BC236D32A0E00002D0BC
5569FB075E8F4F0531D0ACF9EDF126435042C5653571E6DCCF10A1A9A3630219
4F043E1294B55846E756CB6C4E9D5CF5E251181B56C682EC00B25882E634D7B0
80A388E4A3C77DA4E8671A67875F580A4BBE6ADD6085E16A43E2C52A952EE276
75011AEC7C33789EEAB3D718CD87436E9972946831331641CE6AFEC8D9EEBA83
531AD48742800119A8E972A791AA0F8803794DBB6517132A08E71D61C2481408
1E56DF17651E23EB9A5A4F9E323381ABA72338152EF9CD19C122EAD0ED5CE0BF
403C427EBF8969BD73661ECF83DF655631330ADDDC6133D87D9E1824659238A1
E84187D07A1414FF6ABFBF90309BC5FDCA584090A85FC02119204DE9AD4D8F92
BF42BD0B0254F9EB18F6465E2A7F2319A85B79090D13CA481EE2954B08489AB4
CD3BDC8E1FEB5F4F9C91B12616F421D18DEDE45DB14D2625953FE308C36703EF
4EF1661B07D5876D356BFD473496CD921EF2CE89F469AE8655B94A5BA5738BEA
1E3D309AC60992F48B564D4B611F3EAB663846DB44CCFF72CA21EEF48260941D
7983E8855BC1B0B21E2DCE4CBE8B784ADFA8F8882762F9AE0A60747FD09D8EDC
B89B973359EFB45119FDAD936A8FDB034D953307783CE8882213C063E997B423
8FC61A4AFF979736FF49075291A71C7CD08200C2D63DFF248E3EF515E6CEA0AA
65574DD111A7AEFB9D345A55128CDE79CB7EC52B00CBD5E88664BA1372C4A444
DC8769D47E7F89AC5666BE3BA901EAA6C61786FBCECFEC797C4FADDBF6D58572
37D4F31F75EEF36940B5C1EE95C8A4FE2AD0EC1B48AE3C82318741D884EBD500
34D7A40470D750BB4CDAA3A0B5A2D3E680FBB12B494440E549FB12AC11F7AF26
F5F833539B341427230BA324EB635BFB2F7E4E424147DFC82D2FEF2E9306BBDC
97E017D088FFC1927B3D8F81122E52B412622F30A223AC78BA1AACB17CCCAA61
0849F429A76B505A22058AB16960CD8383B57620292B4F36678ABAE7C91E77A1
1F579A1C06E3D873DD7E991EED500BCB44D215E0AC6570B398F32B4934A748A6
10BD3CEB55C9D63F84F3A518855158A4711C8977C78A45AEFAA0BA0D68AF0A88
C6CA6291E6B71903131ED60101EE1E35055B17D2FCCCB462187DDEB3E938E6B1
6BB90389FDC0477F3437C701711AF9904FD85AF2F284F182C3A7EA33E6B1CB50
24D58818AC2B11821BB63CD00BC174FAF434093B214B1E00BC7B68F60A51348F
C8C44A79736FF998FE2C8FF3199250D7D373E85F90AF291801FF89DD047C8025
384B46B33D5D88D28EF075F296E61674054541A1DE7EBA7F0883E83028CC39A6
CFD22B773350BB88DCD264AF1B18EC226F72DDDBD0810A14BC6AD93240BB28B1
562F2E47A421914ECF7EA7735DFD0EFB2D4B8D71E2698ABFF4B1F116A4494357
42BA1E1C4C9C4AF61696A8A3F574C196B594DA43AA29651F0889787254A66DF7
5A5E812111DA5013F45D61283C0C3567FDE971E3727691828BD532C5866743E6
7EBD001798C54D90D33534A3D0956F01206751D0851B6C4A8719BF9FAE412DCC
3771F6A7C87EE73A622075034E98466B89584AB0F3EA4F24D131CDD54CB57919
2F8B1D3F935B1D1F18D3343E57D475C9BC200349D84EFCA3306DE03F57334C2D
5CF1471C19EAEE382D1E6712F9792A0AD56976FBAB5103878C2D7BD0F330BD63
3BEDA98D0BA2D547F6F03EA1EA3CF5FE6C813007C3364836C8E8EFBCECF6D18E
C1F5E47496AE5D6E25B83C0AEEB0B4FBCF83F8F3C3AFD87599B972F2360795B7
1BAFAD890D2A004B4B662CB3A4D5E6195A37490C23562B7192B329F163C03600
0F810787C14E8717924C7BCEF0190AE4ACDB43E6D7CDEEB4C435094D393D2F2D
6B8B1A57824DE9E3F51FE7226A858B3A507665520CDBF15E241B9F91956AFF92
C5FDB07768847CD6A776CDBF5D4C804BDF5A34B4C87EAF903148ECEB8261D91A
17B59B40B6F71FDDEC1A80796A89C7196244D21A8113CD71A2BB2375BB1EE9F2
2BD4A1E284EE82DE8E9FFFC0BDE6A15C9360D3F38737CD964D1C609D477A1683
B8E1C5AA56BD231B5DD67BC89081705DAD748B6676110F130070F547D804163B
054E4967BEA7C44A98AD25568D55E6A8F042B682ED21B469C999A51D74F8C34B
E394DF7ABD6C05F28E73F9690259155AF4074ACEEFC58D6CFB6477DA4158D971
FFD4AB4117FCA7B9AD9B5FC1F8314DF784BAE120EBCA1EC2AF2E5E6AA6D35B01
47053E3E3EEB911D07A04D4F583397BE8A8B189DC13A55DFC59953C0805EEE29
D42688E4E777FF215963B29F6570BFBFFDB3FC13E8260601B2965DD114227728
8B4D134B8E106EEEF4C8CDAFC600CA82018183A190AC523CCEB9D83FA954810C
77FD27B0C287EC9E1DF994641CE6EE70A5F72675730ECEE0262C70473094D520
05227BB48C066A5C23294C1229A940EF53BD1FCCB214B7EE67303AC7C1D9B290
11891AD36F512C072C7AEDBAFE8EAE9CF54058F1A532BB6A0E8DDEAD72BE6B6E
7A685208837D165B5498266762EFB5ABD244BE6420A6727C43A0EB5D55FC355A
6CAD15E5370ACD06DF4626F31A6E11BA1E1BE979BC7CF7704FFACED26D35849B
29264ED0FE295D0808A389D4314094598337452E6CB72B1362A7E8733C1D810D
4DCC1039C7CF5FE33DDC212D3AB929D591BFA1B17430BC2E03C6C716C5959A30
BC5DEE900A2BE18900C4FE6D6CB7F528F5C86DA6A4D78F68F63635F74CFFDE09
97DB54C4CDB2128C6C2F6C525F28FFB0C8DF50ECB4D6EDF1AAE70BB8E46444CA
DBA2BA4E6AAC6D705EAB956D4095C8277776A8C29B0FCAB150BC29290D876D41
97926B40CE944DD37F57F5D0B1383F4F4DE2A8CFE75AB6443DB2AE010A2A4DE6
1AC2543014C340572EDFC94D2A287805494AED12B4275AA88BF6CBB7AEA78074
89D770AB8AFF8A58799EC7558C1BF7518837BC514D5FF7A627727604A3ADAD19
7A3431D9A8150B0B878178D6192AD0BB8EF2577F7A9AA4D0BB225D91207F7345
18FAE47B652EFE531354FFCF9DCC027ED047C269B7F83CB894B726180ED760BB
19CEBD48D71206217C2F752B8D3B7DC662A5DAA095109CD9E7AE242561420F13
61C38431995016A3F6256B8E57D0088AA44F8189554BB2FC1E389614A4E2AA1A
9202C99C53197AC9E10FBB4729115C26D5B52FF3654A5F7DC08927E0DF68A30E
EDBDC0C0A508DB513442F12A76967A59A1EE34DBF8B626F9B0717FB8DBF2DD9C
9DE5416674985A09897D008D748F0A3D92E30D3456F2F69B0C8E6036E2ACD6BE
1A5CBA050EB6F5362A75EB7EAD0BC57B399779D86EE890AE75DE339506B65195
B515F63ACEF68A433389C33AEA09BA594DEC2C00120CA8A00BA00E02B90EEEC1
0A70F75C483BC8157E09AB535404C3017B96B6FE695E824576E09739A4438C01
3CED9C3F11D032DD6CF58A5A833AF8AD9C4E71D03B561554F4D271BD1CB8D140
5AAD5F77117542E91DF80CDFDE46298DAE2347F8A0CAD72BB18ED2BC2615CEF9
0A24B7348E3A8F0818EBF53BDD88986DF1349AB5703CC3E150E1C27BC3E50014
9B59CC2FC036711630DBD67650EE45F1CF4BB7FD925D44D24E3C7643C694D898
AD32AE7FE535E99C16E7F2B78706E35D48DC8CE6F20608F5B36C7B5D902C31D8
9DC0218D3ECC502A6B58DBA3EA22634845085175CE97578236C35F27AEBD6E57
D3C55B1195E9D3D18D9F14D0E1F888A59C107884CD7AD3668D802B85C341064A
95B4A0B0198D87D68476B00781992C71F58740A0DFBDCF2D433FED818AB8B36C
D13F2CFE8C9F1F1F054A5BCB39BD0B0EAE21D56E18FFA29AB664AB6A00EA85D8
2DD1D44F4F2E4A5A190C2AAB4D5DD7B74F438F71C438C0E0BB56107C50737C85
85331ACB460E001F70D922223E85E9655BDC734B208EA7CA33EA60A431E3F396
9AA46D22EAA4A7C3C2715EEAD983D7E2F10229335A01C4E1128E5F72C9C049DF
D8880A2CEE2528A789E8112EFE55167ADCFF95B4FDE21A533185D6774ECB6161
94F5CDFDC949E7D869DB3B8C849B09E30062D6CF387515EABBB468FC9986B3A6
99E5C1BE126A9A7057975BCE5A0EF092EBEA22DB3D06F03D8CB2E164EFD49348
58AC53877A1E309A633227D0077647BB2E16CBA11A1851E1F0534AF2C44FE807
614CD08DFAD2C5A9E39512330D0785B3229AA89F4AA6600AD16B4319BDF4773A
678657F95A6576B562A8A909071AE16362E5F054499682FE71A03DD54CA8BC36
BBEECFF9975E395DA6E47D411167F2005FFA4A3B6FDAD07DFC1D865F8BABAC06
155BB7B72AADA98E8F4A88E138A88DBAE7A3C9EB7C61BAFEBBD9407BC2F817D7
3BBB4C41E630E8A265D4042960FDE47707673DC34184F38C9C25DD7941B4CC30
57ACDF99B7758EFCE3D68BD3EA31456BF23B05B93794B2A67368A78B4AA168F2
43E9EEAE601CA0CB4D09E1EF9E7510940F41ED3AF49D580191FB3F30C7CBDE44
86C39F2190C990F26DD1F323016FCCD9F1E29FEA90A606753C7C0023198AA768
184031687DF9DA4621379A48D57A80C0A02A9E4E8307A0F7A307A2469F8DBAE0
CC73D3C8243FA2FB27050338C9F8FCD69BB24091A812EF1217FB6737CB729A25
F864CB524A4A0189DCD56A83318C042FDD44413868AE85B34C9A8A9E43FCA513
CEB62CCB5AC6FB1BE24A6E9E8D8B2264959312352AD5D07FB23A745C8957DBDF
0B8FCAF5DBC5319F173A65817358A7BC11B6C1235075548EA9D7DEF352027D37
A0023B6915C2BF4A7A175DD0F4E8D12976CE8A1E22F371CF229C3E0431D757C6
52B279AEB34BDD9F6DD0BCE00127CAE4145A3984F8128C03EBD52EB4CF3D9B62
056813A9A943B7B03F23CB4CB3DBD0A5AB3391472A17AFBA3FD7905D7923FED5
64E1DCA38048BE6BD43F96EDC9D68C83BA45C3C49DCA4D3A18266D3DFC089187
744E57D2C1E0ECE405046D590FC67EE3EDDA288AC31CBB2C5D7B878E4E4D54B6
1CFA7A501F27C98FCA9515E6E523AFE69055BBBE0100F5A3478CD42F72A4A56A
19CE469B46274BEA9BF03ECA7B5F0561C23042488AB03048DA0DC47DBB56BD27
6327B6D1629867796EF962114B7A4D16C75BA9E002A77BE012F2813273BA3E7F
B26C590034707A3C0927BB4A5C0F73D76D11868CD4D4B333ED305602529D074D
BE9878C5ECAA203CF714C267505EEE23075B9816A34CAA8D07FD5D0862384017
DB2818CEA02EC8E1D6F7AFFEB35E0A92C6D04D866009925B11AC3278A57464EE
29CC22972EEB10CEACA99FAB524039EC9E30CD7DAEA448D6595953A12A2621AB
8599362EBED50D592CEA74AA282243F4044F6A2A5C288419F94E20967FD25E0E
8D3E203E383886FB2B559418BFC1CBCB3203957BB80A72A21A85F3BBC1D20A80
F18B3AA8229ED4BF1C6CA3042952DF276DD2EF9FF995972A0FA72B12E53C9542
66858F7EBEF5FC0D46C7646953392F06D2E38EC077023A6AEE413B9EEEF1DA84
7CC2BD3DAA0118BB3659FF1ED481D14611F34AEA2B29832CE51F172371422419
148C20149A9B2720D8A7CF310324A25C5D4EAE181E2021278E6E3986FC170700
FC758B687D7974E4C109AD3FE09A2C638EED3D6FB097975514C1AE2D1EC9AEB9
91ED26755E42CDCE4033CF3397068E2530835E052E6E470C31BC0E107CB8A30F
3E779FFFE7AF96504CB85A2871126949F79929E310F992686DB08CAF15FA2C4F
69D717D475A8150F09D52B5AA17023F09AC1981EAAB8F98122FDDB2AB12F8E28
3B4E603050EF6A266E47949A69D48140DDA50B81EA176516B77533DDEA3E909F
3B0D1058740D886A7451F2B5E59475AB8669FD7E63B20FD74B2A1C35B02A31DB
70C0FF1F10E76A96054845D430B115729924B0B627E49B8739DE3C7C31FCF80E
F56ECBAA5412432E63F8424FBB75FA47E1D2CA6AE65C50349962FB492F51926C
B72D444508ADA15824B2B9DFCD63975A9718D0FE7677597F536FD27F1880FFEF
BBFAC59330A2FA7AA03676D4301E429CA69C4F74A0D0BB0145D9FA32904B6303
6B50707B710B93F009C14F6E0C2E940DD9D78F7A25C22DEE13ED565E8B42534C
AB3D50B9399AE6AC5E589F9E774E16239B8BC30C33BB661E2FD67768844930FB
288E30E0110CEABF0FE9C32FE01E45A552924D44E6612DD5E441EB6DAFB11047
8D563035E7C9DFE6180D98C759DDF65117B1FDB86CEA3285DFE4D14DA3114194
35E905728AEAFF8CCE386753BFCCC8EF211BA4D8CC8EE63E9DCF3E94773B626B
FAB186EE9C51130B3A5F77E3E68DFD694770F6ABDDA10CE09DB9EDBD8E1BD9ED
CEE207A2EAED8FE09CC0E88E151AA7789A4EDE2051CBB54C4D3AAB8C69C91C88
4E456A30CE4C951A7B1488636BC0F76B80146E7389D32DC9B99BDDF61E464620
FBA37937E4C6A9B04998ECABF1F72779EF8325FA053AC734D0C47FDBCD73F521
4F63E3F482033EF465F4A39FAEF76DCB594C3C8536819C98E105FC22571B3AEA
562BD146894F0DD5A20A499606893535B0D89B3A3CFC5F78B6665C76F54B4D54
FFB0BF0C4E2CA04DE83EDBDFD0AE95F78ECF2FF0560A978021F77735C74F3FFF
C27F4620936D77F9A4C7114844576847F13351E56C9375BC72EE49EA4D6BC15C
0F85DAE3A7CEBE7C136AF523597F28C71F53C0E4B423D59D7F1499D92BBAF80D
FEE36295095A90D4C30F7C8B637AC1578B319A90886BD859030D4FFE8AA367E8
68EFAFC0DDBFD689692F99B4702238209B63790C413E80C8C74EF7B055A65347
48F891A9C4843F19CE5125440EED212599B7772913EBF9ACB4EBD7A46662BD55
BFC8ED468541B9A44696E10FA6FB17AB6911BD94DC40118CAE2F250D9E1770C9
4E2189D346A67E99196E520B47556BA5C935A155F926EC3769D4528244411434
6F4C00EB6D6F016DE90D128909B73FC1C47FCBA9B9A5D7A23BE5ACD1233C3505
4CCA33EBC1FCD4B7C4E962BFFA3E00CDA85FFBBFFC1C412E103F7332BB5893E3
0A2191B188747E8C3BB923E3BB42320983A13CAE79AC7B733667F4A83313D747
86063F202C880BE2380658B5474E8ED54BF08BA337A4F0E063D9CE3A34DB9300
53A89384B3EA9805F0665629A1A3660945611858F6AB6E563F3235FD5BE19038
0152475E76DA8514CA698F40620DFE79230CE6D82F80DA760649A7E6E1BB7B94
841310652111BE43A5A69DB52A5FA8EC53F88E5A9B678FEFB0E538A41E26AE44
EEB42AF207A694CD410902B26C50F88D92032367D18FCCD7CE81F07138B5CF02
8091AA1B2B7E04C05F23422F1D8CE9F6430B89F41CB784EA8EE77DD081599D36
4A2E4A491C4F919DEF9954CEFD92BF0436213993A27B4A01343FB55CB0FB7783
2029DD0BDB2395400912C257
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 13 /circlecopyrt put
dup 15 /bullet put
dup 54 /negationslash put
dup 102 /braceleft put
dup 103 /braceright put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
515DB70A8D4F6146FE068DC1E5DE8BC57033D79919697C81395D5B94C3AAAB11
52D73939076389CE6C55308F60C5C553AF6CC4D0A6A9BF8AC24973A41FBFFCF6
103C2BD72C86A8806E179952F62D1EF43B91E4FB41EC57E51DA4EB6A448D1C31
1DAF01675DA184282D532AD7B1F3D00423439E97E375FFCFC0BFCDD6DCE499FC
0683DD1B05EE11A016633F9310CC95B30F55A0DE1211436FF974FA026BB99EC0
B6DFAC2326746C3497F1A9357AFF08347E5D9E7226B705FC5DDE1C24A3AA7603
BBC4278AD33ECB0798A9ACB9B3620F3D6F90D96D1C80DC0C29CF6830F2213E4E
1C709AD6521B6E63F2EA9F9B9E93D9A71E912ED6643AB1BABDB02BE00F2138A9
F6AFA65ED030EB2A62352B5BE8CE28E1366DCD2F6A14339469F2C0139085144D
53E9D29DA5E08A2B78AC12D1CFEA66FEE2A14B41EAD7659BEC126CA18243E7A6
6E3643CCCF8ED7702F66C7C8B899070F3B71735F6E3D95056CB4B77FFCD6A452
650635C4788E40E38C8505CF4C165732BBE41A193DEDEE8B931D3C188A2C913D
45E1304592655847359D9D03A79AF35C14B1C335ABD0986B52F26256A786147C
8F749BB94CDD8548ADAEBE5A5DDBDCA11901FF71ED8C9D4CEEA5957711768974
6C8DADF2E6E1E15B035FEB87191141208C7FE4E6D692ADCA53EF05DC5E1F865E
9588BD411F9A3EF1E9D51F089A90012DE7C646AF1A7DEF2655FE3381B6BA11AB
50EAA26ECB65C49624F4CB26AFEAAD0AB5EF14D448C941D59C88A8A2416366F6
EB0606E5519EA531E77861C73954D69D425370C2D4A383390E3D87DA5531AA39
26F46DD8DAEC0E87CE33B32FDD476E37042F93436DE40EF300B9D81154521CBC
40A9D9D822C9EE13B721F1ACDEA79939A2F3B658F7FE601CBF321E5C31C38426
41C5E0A9245221839CE14D32DB4AE2987B0BC756E8DBF7D9F83B6CC2CFD7B0D7
94FA420D26CCAE9F7C0E32F6EA3342EC95D793C83E67573476E447F3F418FDE8
BC9C73740EFE6A0CE6F7E42F17F1ADB188B533D1D41CA112E73C7CCF2ACBD345
9BDEA2FC0A2FB357BA250DAEB7F085FC417BD4F364BCC00B2AA2E19F3F5B728D
E0A42143EFAEA62DF1678A79D25D2E3D69CFEBA6C5844595AE2D53DE40C091BE
DF754155362627581E94EC9009DD04454CE9D9C53DE3F615E4CB174176BC5479
D9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMSL12
%!PS-AdobeFont-1.1: CMSL12 1.0
%%CreationDate: 1991 Aug 20 16:40:41
% 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 (CMSL12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -9.46 def
/isFixedPitch false def
end readonly def
/FontName /CMSL12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 67 /C put
dup 73 /I put
dup 80 /P put
dup 82 /R put
dup 97 /a put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 114 /r put
readonly def
/FontBBox{-56 -251 1102 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
55FBD18DCEF738EFB8E96B4B61D9C1A24F5FE2B29EF89EA4320BCB1D16E30E22
AB926EBADAACFDC5784740982ADC9619BFDF3586F8C12E6F6E588B44226DCB87
DEFC33CDC78D0E39CE42F3CD39130758A1DA6723A3BFE0FC6ACE02389569609D
E0A2F8219BCA30B5669A6EF48E4FC32BBCC3CA7CC2C7615DACC771E59FDCBA30
17F349B2BEF4EC6B45905D23BDEEC669B3BF525881857B942BF724608CBA8DA8
37CB92A472B89421D4BA156248D4F4F7AA90DA4EEEB4B3D57A4C2F0F41B7E669
9AA74D9F4743AC680A1EA18B567BBD8A2BCCEAC1795CCB5188C77C5B199027DF
F158135941CD020826973194789ED9B5279136A8B9D0D9979E5E80F95A223851
BC17E0EBB94FDAE8F32FE889774D72FA17E179F5AF39385406FBA973734BCAE5
4DD33DEA30B1BCAA9207D96BDBC6AE9519E3603AC39A09B2A52ADDF935FE10EA
A759515DF32688D0E95B1D37CE23E9F45A114572761B088BAB7464D8A1BF7BEF
EDFEC4E472006F678C5E2F6E61AF9E5A5D6DB85600E53818535889F6C31061A4
9A6C369C2680CB769A5540D5A62429DAEE4E2AF5971BC12DAF37B3DAEB66BA94
2998AD18DD63DF3A15EB2FC41AC343063AEAFCD5D2E1BB23C444D4671A954A93
D486AEC7E85A138FEC0119ED1CE10CE7E31F9952B64D538600DEDF8A47A1D883
C36782EFC22E44808A443683D957037650468EFDAB2FAAEB76F20A96028198DF
D7488D939A34B92F3E7795DA08E367E2D76DC55390B2E1B60C0D79E94A5B08A9
8A05EB709E20AF278FE8CB356B5B756C40DA10C2A291A884136D4FE5B0C23022
DC1CF3D402B4443529A205D7681FECE13AA57E3F277FAC55F24D6899E6AA82AE
8BCF4A17444A50E22C3A0C2AC9B396D3AFBA758A25F46DE207DF24CD13D1D9B2
3894BC1DC69D4745208B4153D6968C92C559742FD2DBF4CAAD19A4388913BF2D
B76B56399836FF125EEBF22929D0EFB09968F153832EE86F4CF5BCEE2153236B
8FFB7BF5FB2BE80EB002CA124D2BF8E564869B7CB14421E803F5193412CB24FE
D2D5D9BAE6FD78EB19C27E7C20C3D8AB3F29748FF222AB71EF45E71AEAFC7AB1
5A93136ED4BAAD86F98D5276288F7727504CC1532258D00A264CA159C5D6DD18
9D19B2ABCFBE00661C4E308B73EBD47298857C9BB0B9B42B22C0CC22248971FB
C20C2E9AC925CD11B546BAE8EDFBF2B8D6C092651A1C52FC08ADD8A10A41E645
B83D7386A17C0CA5BB4A75AC7A8A18009D2FA36DFE4977C312295D55C57470C4
4C893DEE140A1E6DF4472E2D82850321459E17AEB4AB008FEDF77B99C5CDE7E8
0B1A6F51231BD5BC164EA303DA2E3E7295D9FB3EEC5CB2F7B212A2A4C17B5925
09F09E232C4F65DCC237C1FCD5B2E880056B603636F17A9A8BF3FFA7FFB12C3C
6258B135DE0C814E896FB56C6983F768BEFE2760020BF8D768F505C49B0714D6
A41189ED4CCBF1EB32670F8404A0E82DC3F60335A175C672B8CF9E9D4CFE5EA8
D79131C48A57A393C494F8D9D5A19A43E10F595B14F735C0F0E0F87BD9F1E0C3
D5A67480FC7CBF183383C8CA6C3D66A2D44A87245F12E93FE095F8E31D4C6E78
0C26D51CAADFD50B14F1544513A6F0017F4081834AD297888D606C34F569621B
4AFD63B4A33AB33F31E28E042205E2C254146562ED2C793A6FDFE297356D905A
BD66BBD011578E5B690745EF4B2AE455E02ED62599827E5F7302D1DB2A9105D0
EB142B07BCEC916DDB47F8D2193DDA641C437C80C8E2D6E622C4F2FC536EA94B
BBE447A95EBC84469BB9415D685317E58A13E0BEEF1CFE626FB9F1F0AAE17D8B
2C38BE67D9813C96AFE5E2F69D716123FBAE1CD1C0DA76B31C039B1F1A535BCC
423E88790AA4D72526F283BB5F0F112D5998CE0015CA7D46E7D52E46D49FD02B
19A3FE39F45368638712C5D809B7DF65EEE48068BE27F71770F903159010F355
B3DB60DD917C1AFAD9CE8C7C01C3A346ABA96E69D28F33C8678FDA67E5914D7F
F24BF8B2FAC063F269A4850D5048751C561AE1460C93B2204B913486F287C09C
A33050673D406741D53D2CB8FAF0209A0BDD873A04826833ADACAE8AF9568A4D
0B8F61E075FF9057E97A3197A6D1C59B5C6AE7B29EB464386E79C53BE6A7C70D
4F84B2A8710C9BC50423BEE818AAA5BDCFF4297ACCFAFC6CE25E77E49D09F3DD
530718CFF6D129DC67DF2AD9DC829AE9D0FED905CACD8C3804D2A8225A346B47
8C993DBAA3190BC8D5FC491AD6C646FB3F4211B89F0BF4077696090656098BC7
30BCD7ABB3BEC3CE48E257B135DE989FDB0421342F4CD2556464B29D3D5E5837
791241A7E26DD89539CD19D23024F2DE5EE4BECC84ACFF78586DE4CD98E6AD18
5A6D82DBEDF4FB5F056D7A448E6249C56B1AD7B7177222920B96A650DB9C5668
3584F228C0A710EF78575E82E75DC4B92746E86425E5C0C8603D28549D619A8E
6C9718A2A828F7EF53896EEB6AEFA667C5B7516F975A3551AA05BB15C19B8454
3E8AB72E56DA3E86E4006105D205F389930BA618BB189AE0B9C95DE3444CCF66
28A9E72729166C28DF050196BCD7825D17C92540B3B4929B10FFCCCA189E4B2B
980B4A95DAE5AA3D764422AC56C3C21CEB363CF3DF06CBCE18B549276539B5B1
7D015095503D7166EA34DB8A9ADDBDF42C551E55BD3D1308F5BE660F883980C2
C80ADFC9183EC9E08883B163DD48B39BBA9A5BCE219F92AA71B01FEF5189517E
0C82EB90CD3F24ADD778916BD6A95B5F3D3B541315C2C9CA36311D9C18BFB28F
58EC8A42392EF0923240FE750EEC204FAF730D1832B2469ADAA4555E24695FA9
D959CD61FD1F7B1B1E68AF4853D2A1392E6CA1E588E6406AEEBD4E3F28C4CE76
CCE138644120A9AF000EA65119C5F158C65323044EFC743B94DB85D94E038F8D
945FE4B293E1D33956666ABA1245EC3EBA4021114FEB4BC1D655C0CDC4D81F6A
B1CC39EBB5AF19722EA0284AB615630FC94AE24318EDEB6B7CEC92C4A410D170
9E33DCF58DED0479938E5B89DB77E94D6CD808D6431114D1847660393B0DAC3F
884A4498FA9F4006B2233E874F3C3EEED4856B3ED3BF82BEFD95A017F6F3783E
B5C90ECB49492C12E7512C1656F1666A18991C20D3642D343A963DCD05E5CD1B
D320A731394587CB50410BBDB3343004E90D0F92D14CF11B9856270F9F0D64C3
349A258BFBB3749C510DEFC2EB13F52576B5D589C25F03892CC16909A1C19891
C2CC31727F184BD26F10195948E4F945933789CF5110AE8C4E48AD769E2C9FF1
CC7E50B9438F3172D3695614ADE76BDA561943DD012D2099ED13F8C38EE5CF4C
278178D0D6A3592645533309984B0C0B4E38E350D3C419868D8A8053BC420BD2
8F65ABC0A6DE95C06221AA29F10E6642D90DCACB4CA8378F8004E0F29D46A2CF
C6997403DEBD0FB5A81FD0D688C2DA83C500E1EBD542DE086F3214D54EB8C283
10CB3571625EAA05B908B5900F8BB060C1789FABA961766C4939F51E8B79967E
7321D0119886280C84C2ACBE5DBAC572339D2284524C881C3FED5C5F1CD0D938
0C2EACB5029D26631EF586D25E2545FEF1599A02B816800583FD7B89078D1080
DCF18F96E88C42844E00B9E6894138E29A31A839434717A80428B9AEF0EE952D
EF2E98BCE78A4705153AFF70D357DF211627FF47D503455F44177B9EEDC970D6
B91346F2982B21115A825B68EB91D0C854D3E5DDAC668086F2DF05411FA1C9CB
BD79C252FF5E3EE8169069E624CF56A714D99ED12281081DA350BFEC67D4F340
411E0B9EBE9F5C19B8B7FA084B75BFE1EE846F76AAE69E61C7726D5573F059BA
CEC3667266ED2F64527675E6C8EEF208E4F44F6C7244436B1FA3BB2109362A70
2CBA96D98A616274877F218ABAB15445AD7DBD0E2D403BA16CDB9CC02B5866DB
F2085A169D76427F25AA896882BBFDC9E6C9A74A510ADE2DCE1E1A352A860516
B3A2799E76D4F03C20DCDFF7F81E1A61B8EF59D367480AA48E6A220AC3F40F82
177E38CA2E3ACC0E334B3C71B39EB083FECBA985B3C0A11BB35B1379F7790BC8
69211DA05FFBCF971C447D9872F4D0A91EAFEDDBD5A12B514D6802E8452CA083
167811F6C91D282BA0996FC0257B5E255070CC50E631B1A14A122DC72241B573
D7756011A658FD626FEACE9B433A31D45FE9424531A8055509493A596D1B36F0
FCECAD3E258B5E260F3BD9C5B2368CD73A4340AF6914F6A8C71916F2FA2405DC
7E67D118D8B012F8FAFC5F36C845B44EBE14488047EFB77F5035D852041A864E
76FFBDB0749780C6BC7E30D802BAE5B0CE384956DE058A8010845142666015D0
7E9CABCDF3C0A8375856046914FBEDBBDC698921575EFF3488593860CF2A6F6D
332CA91C6405F732549463F7854A054CA0673353F46D5AEF65035D3AB4770636
681F3F37BFC232BBA89B20966D68C7A41D6E37B63AD5B88780D81BC1FFB6847B
7126B3F33E04EEAD1109097B23ACB0C8DA7C
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 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 14 /ffi put
dup 34 /quotedblright put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 61 /equal put
dup 63 /question put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 72 /H put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 87 /W put
dup 89 /Y put
dup 92 /quotedblleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 126 /tilde put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD
F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20
3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122
A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379
5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A
45A24ADAEC63F61C9FD18376D3984449A1F998C318A8FE36D0D5020E18A49625
0F3BB603BA1F3E66FF412F6A32433FF8BD2968D79CE4273AD0E0CDDA5153C2BF
F8A46A2244F9394A49D339F763F5A7411A3C29336B21CCB01723705AF589B078
3763035411FE36AB5D744E81379106890688CB5BC41184548C36DA35508230C1
7E595D0E697FEC6C9A25BF8C9747BFEF35A8DF1B75B0213D3B7B7AEA69E0744E
C94B56720070B7CFE4670208AEBFCC3ED5A2BC3AE5C25A685AE9010D40D6061A
11A31236A31A5EA47CDC497A886809AE63B19C2645865C0356D3C757522A6D88
2D97677E5F2576327E922DDB91438E323B2E3E1A00192B2913B1FD6028939FB1
2FD026E09A8106C80F9ABDAD878915286731DE01010A7C89305D2FEC6ED694E9
7E52B831E535E9C559A585070258D7D2384BFC8D882CE30726982B69CE7D1FDF
C068BB8E9E310E08D896321E4EC3A3484CC6C274262DE1888F2E848C308A2C2C
FDCD60F89817FAEF1534FF90E05A28234C71C570BE57562474E361175B115073
B2EFD14A1FF76CD8276C5D621FBF31AB8075B907B5FE0C0A623CB39379CDED45
8AFB5F9BBBB748EFE5ABBBCC433CACE72E04427C505322542A0E95199F04AAF2
972E848044D415F644F34C9F4D34F5A12533D2B8E7897EDDAE4E7A75CD0730CF
B2532BAB6CEF9DDCB1B3EEBC68307ACCED4404E31127C25899F18559FAE95D2A
75D8E0E238527088399A29E9DCBDD3AED5CA5D23F4F90F81104F610F2E11596D
807E6B08C234832A5BDE9F4F5D02D46BE6008E38730E89A9B73D5C2DA532C736
409D2922F81DB0780BEE7C565D354FA523DF21F6FD82D4047EA3E77BB0759825
CC3A958DC05BDA46514BB62CFEC8E150D7890B3997A59CDF9F3CE04A9901B856
3C2F66397E0C2920FDDFE9775FD4471AA293E4F4B8811C3F4BE6BA3C98D24296
51A8C015BE759661779B42D459C112D78152D9244A367AA7FB3208E32E877421
2FB6A3ACBDEA65D3F9E2989C1949B7BA168CA488A7CCC83C062FE4D30A3D66E2
2451FF8525B846908D73D5AE55A1F7FAD0737D7E3D6F88861882EF3B6BE79269
5EEFE3E8C00D969DBD969FB6B100CC868A9B7A782EC55DC1E5BAA80366BDF9D4
007CF8727CCBB0EF69814C89B698DEEC15F3C1A539A358B83BA4B0616B753CDC
5AC0E79C0B211C49E78BA773972DB8937D7F7CFA2D45AEEDBB16042B4BDE833F
FC9ADAD03EBA2F4B8D78760DEF4C5AD394F704345CA5C7FA6D71B6863829632B
22E81515E63B4E241AE3DF164CF3A843159D3BAA56B3B2AAEC51483708DBC7A2
68F687739F355B5535A5B71D8536780940EF8384AEA8C22735F087D2C0763141
BB794EFE0C3C56D7A1B8F7C7A90F0877F466FD57ABEA44EAA210D55BF3779328
F5836885E186588A111DDB0A36186F0A8F282E571EEA61A8450EBB6D124803B1
68DFEB6D3221905161081151A69DF469BDB2F15A3F8112F1087A3A0DF8A576A0
2E9DB90DCB093CCE511765D0E9DD7252D697A2427A63881552AEDB977955A5C7
93B8AAAFA7073775347E9A0590464F8C86DA1B3065795E2256ECD3E7A656D85C
E3597760D9400B1E4F4B83A776B36D9E1831D9235A85CCA5AC0566BA90279BD2
0AABFC0CEF42C1B6DDE69519C0992319D64E4B5A842805989A82DBAF84B7A395
AD8E062E67D27C0C405A5E0AFCE07618C4BDE3386590AB10667A5DC23AB2D32D
08EE0E73DE04D584147102CF828D740399CD58C31DBD321A512E5156D50E039B
2A3E54C9C5D6DF0A12B59A41D740121C14B9AF0D2F32816112822B7477A4FCCD
12B5C6E64C82115B78FBA51B5171DDCF780CB20102D272E3E66A646CF86FF8B9
0EDCD51EF1B93598C616C674B7E4BD8CCD155C19CC9B39950835F1A62503375D
79BF46CD300A09185FB353CA803D1AA35742D1638FE6A31CC6CF943A1FA675AC
A2BF9A46BBA9FA01B808F47B738D53D3F12CE2A239E40EA8C9A02E43BC464D63
FC1E73AA8EC43F12B7690C1EFB3FBF5A71E0B87A52D68EB4EAEC3F23540B9254
ACEF428F01A9C1F228AAD0C093C38EBAB6C5DBD56F766280D6B7CB93EF6913B8
551C5D10461E96C613EE9B52DA9869929D199AC012F5C74488B4EF4A364229C6
07988EBDC87920BD3AA565A7EC5D740BE76A8C4154668C7C1EF031B182486DBA
E2DD2BB36D60B7FA013D4295073B3FB28325421224E25C23299D66C8B6416B80
A3E1F9A126045DF7C1CA87637E93DC0B8FA88535E45781E5F5FE8D47D7547C4F
1F99E1E0207F3CAD595A0B6A3F5FEF388F1D8B45E3D40ED33B63140257431087
FD0208F6785F38244549AFE7AE3C4C5515ACB0772766235ABBEDBA1B0CE708AC
339D0214200480B6CAE5E73D4D13C5367FA4376F58132E0BAA063DF03A4A7A0D
07F238E854931AEA694A90F343596CE3479341EA1CA94699DE788F648171F7A1
E1C11F45F4110DBD8DE63C384E1AD2600DB616D107904569DD56F48C2EFC6061
6FB451B7C81ED85D39E8E4F664406BAA340D93B2F180794C2FFAF273392D12D9
3C2954FDFDE2763332916E8934702069BF576C852443CA2256F56EB6A9DA673B
4CB395960E17059F0E817AF0716C2BBA3FFF60D5FC128A57819C6ED115DC7DE5
3662A0567C6BEA8B34B7C05F0550E03C0A78F31E0BB7FBB58E26D366ECF7ACF4
DDBEB5550A92C312E6FBE23B48B11FFBB46EA2F4FA1C3359601CAC0CB336A3F2
DED281C8BE0D05D4EA9D927B07370822E5E9C72EFEA068284344309958569470
FB33FD265EE3825FC47E76EAD022D383BB043BF01850E6D9DB2CA85A2ABC2B9A
CDBD44106D5F9AADF921C3AF7CEC4A17D3A948FC99B58F998E14250CE6C3EEDE
E587D00A70C1E4BCF4492F1A363074C3F73FF34C5F2473DFE81999C006012592
33A652D5DEA13A26BC9D3B7D449F572202E8FF76F383723ECE2742647E07126F
8ABD9EFF4A7831CAE180E2DF2C5ECAD56082233F5FAF5CDFFF4380FE9C454068
6C242BE5A82D60BABE390C8E0A8B221ACC084A7B277DDF06C6B75E263B924126
78B1A5570EBDB366A465843085CC2C6E5CC660B320CBE08D1A30C12E18121689
92827B3FFDB72F4C8C89E8500320BBB3F51FAD2A3BBC0867059233EC57CB8074
5B62F448970402C187534CCB5DA23ABC21FB5E69E3AB1A93F18C3BE836630F45
4B9F84B3FBFD5F7E2C948378C3E45D07303B1424CB537F0F3A80BC47A02B7CD4
8E61AD2500DFD556E38A6A2533DA3BE3B21AD319197CC745C0C59AE4BE5C38E4
313A768F64B03CB1CDEA63320FB67B70D59A9B1C30961C3ECBF10338B6C73912
E2D4E39F4E3C116492641B2B34A030116D2FD792E2C4156F55AFF07534D51778
A618A838264A2FD1849B29254DAC04BB50985AB899D912E2235EB05AF7C13040
2BE7552BE3DFA8091AFB1EA56353A2CD2D466CEA71A8E7EB433F14E65A2BE33A
E0F6BCB581E0878A24289C35AA6864A0D0B8E4768AA026360879AE5CBFB7A239
48D73E1254A2E833855BD60C1BFDA06E34C27012D3701ECA33A352C23561CCDD
955A45D10E6284FF9DC3ACEE17B46DF652D57329BBBACC6942A14EEC77403EAF
4314478C23E1F88342374B7B7DD45F77409F0A7CFE3A7E6506FA470D9B4C0A8D
C65846F4C31164BE90D5E51839AABBFFF3B94572661D3B3B8EE68FF31140C35B
72B7C798E571603803BD644F8AC02C7ED966DFAD819CD5282F26A84218873B2E
5310F9B2C993D0C1D25B865B17F1595E1CE7CDA13D3429E8BFED4FE045434236
3B7E2B5A3E6EE4C4F02E8FEC519CF1744BE24FE919E29AF44BF7356159B372BE
36C2305190E6E15504B54F6B05B40AFB0E64DC448AC1014784BBB300EBDEB8AE
601CE3927ED7D76D62D626CD03B402FBE91187BE1194FA92E4167FDC5EC0F46F
22380B108D580D9D4C6C7BB9F9857E95461DD5076184400EBB8AD0B87DFC5B15
514CAAA0A302706E2BE59E2A236957636469CA782121861CD534C09269FE5F9D
5C3DC46AD5FC4B6B82219BD8C5F88A6DB380C88FC37C53EAD8E0245BBCB9514A
D5C93AB2E414423BAF240DB760216177E4817ED3E68260E2BA34FEF07E7F5F8E
4269504252DC5C777CFB508EA19A264C26608D8B7DEF57C6819F6CC87DCABEB3
64F56A255C40308B1EDBA299941A6A0112813C90959E468BB890DCEAEE336409
E38567937E2B4429360654FEC58ED13984E0F35C4BF8437EF02D2795E030A557
3E8965DBF06927B4B2394C1C9EA68211035360C714FB6434533FC0FD2749524C
56D0CC8A2BE8ECFBCF1C2253987D45AF0B16DEF98B7411CB368774BF255E6157
F262FD43FFB64641459A0D5FE7997B1AEBE60713B626CDEAC9F5DDD19BB56420
39A071CC8A458E369E2CD4E1C30F480FB0B8A79AA060F08AE67AC3EE99DF340D
769FA91A28EE4690D09D873F060619098F28CC7DC01641F17D2011753D0FFA68
2AB70CFD793AA62223482F7A763F74B0A21D9A2A06DF9DD8F2AABF48EEE2FF16
A77BBC381F55E7DF985C6D5D1138483E9A6F1C56E364828EC5EC453D628741DD
FD62C10EDA85550B0851420178B6056D4789BB4E03ADF155E299199E97767157
12576C81B516838C2A92163EF8D8063E15911D6DC92D02A00D9B239CB60B291F
78D41159729FF52DF3760081583EDD7293A1F3743B166F95616C5747B0C10B0B
921C19DF7A42981E6F90BA0628575FBEB3EAAADEE0A1F095643D0EEBB26D4F70
A5622095D9CFF0E7DF752C1FF61DEFA31AE03F9B6BBD2EC0E527C022D66B65C9
ADEFD90BA0CF9FF53984FFE628AC0C4592F04FCEF97E53A61D066C316453AB4F
AA9524559A2FB6B221721C372DCB383556589C88D94E8611084E0231E09BFE9E
5D23AE0970FDC1AFD50307B0A44D523F9DC1F12038725EE7C8EDE1BC9D5CD92D
C6FCDBB4EA4F4C38DF050A4A6B31DFE0263D344C1A4A8EADED6F9465C795AD85
819B6639433F43FC280532C48E2E9655637B62EC41C9D4401439337E85A8720B
C0D0ABAF76EB1EF8DF92F6EEAB4CBBE66077FB2F15396579C45E3C7F49AE89C9
4ACA2C81C85DA0D0DFD096819A3CB5BFAFB941EB73C9AC4437DDD4B0EC464A07
85185BD21871C248CBF9AC2F6D6AEA5C17FA324C08581F0BF4D1E6F887E33FA5
10A7EE7C520A3C85525751AC9C4DB569935998B9E3839AA4B8496BCF70834892
2166D2E7D06BD1B249855466A8E70E07334BFF28B0A981DEB8BEA027002FE354
AA8F5CF6F6F3CEF85383F7A9109205E8235516E7BB93B9B27947567A2DD572EA
10A5E0033FAE350043F2E667D42EDC15F81317831DAB5C9F0DAB5313AAF9A2C1
89E4353906D87D6AD7CCECA1099524F307EA46D4653A0412015101269142EC86
2D5D566E5DFB6173F332A5EF55068F15F8BA85D666C5D237423D7A4E5754DB97
C300D03C5AD4A8AEC80F1D80EFC2DCD873A7B18731F28CAE66C2C7C8B23626B4
05DF77E3299B5B08C00908D3453B01FD17AE08E81BD2EEF5F268DF96FEA2047A
C150755038F68BDCB63798BAF3BF1C294BBB53D90E1412B2F506B5272B81E0D3
CD0F3896AA2182FE626E7E6393EFC104677F00ED308655FC86000A74AD88FD67
1D803DCE6DFF0972DCDF9CC88D63EED032D7B11C039387669ECF7D910D786F0D
62E4DBAD322DFD2257012EB15937FE4553DCD4B7BFDB21D3C89ABD72121C2DF6
A5041FB8F22F53518A7C06968CC744276BC47EFEFC361CFAC41B2F5827F6C8F5
5E8C22D4E6E42C47AC2750497417C43F2F5347D0FA2BE45CD8FCAAF2F5E2F7CE
D845A62C8B1E2E8D291BD523C2FCA758808C50844726DCCF9C4C26B7A8B85E85
9C049D17B9F557A627CE5DC23126FA78A62401ADF6AEC682C4D5A3DBB56A6E6E
89EA2FFE8266B6B9DFF5C93D2CF150A68A1BB179B9C98AAA90C6C4A8447229A0
D7A5AE86705827331975414339A60F981359DBFE68ECCC90FC9C12354B72C320
79069DA7F0E97ECCAC84B7FFD5A3031E904738702F2496516397AB2ECABC859C
19F8ED23AA0609CB1BB16C995C5552D7A18074E2340BC26268B77CEB5A5FC8E3
9836FA69AEFE7E5D82150B9846F057CB0579F9C5B8C21B3E235295E9DC748CAB
12BD878866A3E4F95E2EFB7213779F07219F4163332D76EDD11533AF5095F303
D7766BDF0F8DC35925CA6BE512A0EBCCCFD9136A7356FC52D90EA1E3A3C36FAB
E8417F7DCBA957E670C4C59A3FD53DBA3559C95697636A2000E39C28A0369D90
93FEA0271F74F82E47532468B50129E11A360282E91FEEEE0FF99FD71D8925CE
910EA13040C489752E6FD13B8A72E5A882F2D8E062E7B8E7C5F42993DA92DEE2
F646AA676CD051B7E650898DFB8697C19EE7B37108A9C598A990701969051432
FB785213FC0F12438C3F3A1D8E00E3F4501725D0BD2F5EFDB579DA74D3081690
F43E5074DB8EBFE44092854551825C93FCEA21ECA199E8B754DCA53422E45A27
839DACA0819449D64A8261A75EE30C7599B24D2AC985E1E190777AC70F252CB1
1B7B49FD1DDBD7C8BFF5A2B19A8475A0A5F354D3F8C019769BA3FDD7B6CDAD84
85696DADBC3FEE7D6817AFC24515353214C4F9028534307A4A0A2D17B6958AAB
1E9A1454FFB365FE3B53DB1C28137057DD055D2A58011D06434F489A069CBC2B
2B1A1A1A76D24F9A7648F1AD7EF29ABDE4F48CDA18A1BBD9EEA6522A3F745985
1299CBEB4B9BB8C64F39D108FED8C98B3D77127C7AA3B3912B72A08FF329A0C4
1A681A353A2DC9E1AEA76573E2B12B59A7A7A52DABD15C11A98A74AEA59BD354
C4BF7FA6BD6429FEF89F7C34EBABC24D4592769F262C4862C6A2CC3FC16F7088
ADEAD3EC59870DF0AB62FF6DB1F1D00E07C025B011BD666BF08B2AB09BE42DA2
73E66B6EC6C5ED5CE058D36131D8FD1C870BF10998DFF50253898B8D458B2D0A
8C3C2962AF1AD035C19FC2CA0ACB9F6561C0DD0941ECE99DB639DDB037CD5370
01F20588E1468B359B949A69E90C5650B283C15EF3C6DBEAA6C7762B72521A98
A53323890163BD13D54272AF25FC8419F1BD142BD58731A203C4D1E8EC8968FA
5B1F3456FFFB75C5C7CBCCCB6544D745B8AFD8B21A9B2038B1BC03E266698082
C6867636147D8B4D8DB8033AB06CDF7B03C42CD2B6A597A7DD0FBCD90C720E5E
6983442ACEDD3FA4C662148CC80C65EF7DBB97BEC0182F416DEEB3388C8BE76D
803EEAACE093398184035637CB65F126A1A39DB7CB3E8651A1D43988DA627A02
A45024CF3BDDA9967C851BC6F3F0A28C8C38857D971172C74CF374F3C1CF6168
492E86B20049D2233C072A41E9DCFACE7522F7435D6A7685DCFFA739A59D0722
BBA842E64F84CF8CD8BA85A4F201A841BB8C1229DC1417F93324DA8434992B22
EB23EB4A4B7CF476D18E6C73EC211054B4F47448136E5C257C103233233EE6E8
4032AF90574B340E39136C5B159B737DC0F722C5F1C0CB7199D2C34765F03928
4FC9D3A1B88D20051022EC90771BF4972C0CB6946DB1E4904B53F3C30662F2FB
68ED3ED0EFB8ED00905BEC9F9B1B21AE5A82AB3290F68BA21ABE33294507C55E
1A80643839A9FE687CA2698464A8E81EFEA91DB9CF1832754A5B1450C7C7E7AF
766F598C4B266E8D77EE3BEB253510AA61C8165B965457660B610D99A500EB0A
D7E19962D3F3E63DFCB1712AAE9037AF792F995D55AD66D4A8245606EFEAD098
C4A1B166B152B3C5ED9732C83A420542FB944DC83F5C24E4543D429DD05D2E6F
6A985AE43615F971E8F1BE04BA51797919416A692B3E315D848E654B083227A3
5810A391EE6764C81EF82C7D192F58DD167BCB79514BFA8C31D16120D59134FC
65562C1E02D7CCF9DEFE95DE2BBEA70C0D2A2AE6B77C1234E29B38FE448F8A0B
5104DDAF9896D6AE5645FB83233E019FAA5C61EC99F2ED0C3664792E69708E0F
A3E10E6BDE837578988788436333B8C973F0CD83C2019666971FD0755518E1E6
E7A84FBC4A02A548ED11D559C6789579EDE1D7E5814C612EE9DC134907C1845D
2AD6EA6EDA60D46D0C940C4EA66AADBB281B0AA18FBD8098DFDBA9E099578A67
A5710168AE02FCEB4DE365413E3884A590C63139E3BDE574AB3B9C3FB1BD05C6
0E0E6639623D31408D70A2C3C3D6CC975D7770FA310C50C9CA682D90F1760E90
8852154DDE537BEAC939B91F179A0BB79C1359E98F69FC795D5E83245BB4CFA2
C43396AECA20B0BB5B5EAA1303CF6BBDFC11B68CF8E16C3919C3B810D647FC25
C7F66ACB69876DFC0E1549866B21641F3871A0D9BA548495A705DB4AD0EA75A5
08C17A7A9129BE70C9ECA7E2D494C199D78AF400781C0640610A274149DAFC59
BF39B782876E98652B77D57517BC0192BB26EC9606F181387700C513494A99AE
61E1BD14C5B0CEDFE5B400C54F67B2063A519019A9FD853A08464B0263CE8E7D
6275827053924A9ABC9BC97C41606305B4C991B5E94B5CB209CC6A7949754CC3
D12CDB2AD3CA2E1219D86C2092DDDCFFE4273DCFD2F9AE75C5218EEDF277AF1B
52527C4352D6B4160F7DDEE3229F2CEC61C9314D3A231B7D89B21DA3577D3BF7
9F25EFB6354FC6C606552FA395D2B3B26B1ABF4CECF761F21B5890C977C0EEE7
DC38EF802C3868582C5EDEF821F8D3E3D7FD4BC1DE9DB7988666890210093DCF
F99FB6A6AD6B6E57FDC42073997F4BE21FEDA431E2B677D30DC1883B1E7FEA2B
D6DC69735A9BA6342FAC3406D6D64175C6DB93C45B244FEC40282D53EE73DEF9
CB281C116F54D9BBC4B2544D1D590D489A8E7DDD255ECD69FAC4022E1713CA9B
AFADEC8EB64502A78121C81246E14C05F96F69E1F5997B4994E50AA4C3151976
139DD180BE11AA869098BEEC9266D0BDBFEA74E8B039DC8CD71331BEB96798BB
0B2B49904FE3A88664D0C05BE17866E0D03CF06F9B4896478CA75D2CDDB9CF63
AB74AC9458A26045FE66CC94D7FAE8B919E4C13B9CF00F066DEE9110DDC49664
9CE98B228F97062706ABF307E01CDA94B58E2734269C2FAD52FA855DDA7FA5A4
90C952F4BC0811ECF1014E3FB307302067BCFBFA389C595B13E992A3281DAE9A
803D40FD85BBCE104A59C68373E53C6F5AFE9088AF32C44C8C981F60C56B88BA
DA2849835444A5CDC0BAD0FED4E589461F3B0D4421728ADE97BE99B5B8D59C75
740980A2A4FC9B25C70D0E44C98ED2045F4846478521BAE28CE5A6234E35957A
1FA0E9FC156C0A7A80C6E99170B021A4EDCBD3395E71DE202AEDB4211D505D5C
04851E739F93CCEFB4CAB108A4654922544265CD98F9D8B9154B2847820DA1F9
D94D464158B385C796939516DF4B41B0D1EA4371EB3B4429F5CED3FD46B1D50E
7862675A1BEBE0565CC4311FE78D53F07E116BFDCE878BCB787C055A45B3E0BB
42E51147E40E46C757A70E7823F1856AC8F642C53B213B935D52429116179C19
8CAB370BBC4CFF8ADFA1FA62945510833A1809AAA606685D1B7E135CE4C0D532
D5131BA0AFEE02EB442413CD532A6FA0C219153E2DFCBDBD5CB2504F2E9E9F60
C4311960453E87C9F23641AA5DB3D9E8196A3FF949DFF4FF391DF66F293EE100
5E3439632FB4CD847E99D0D04ED8D478E8F4AE04BC34FEEBD4A63E68EE5C4984
F9579C0DA33545C03760428BE95331088CE2D937B3EEA79D640020D0E29E0F3B
7918FE92D8AF5B1F31E5A71BF6E3CEF3DDB46A64BBC126521E0229411256BE38
D8F5186E55A7D92E7BFE0987906A0019409D1821E503484941DC0853BAB640C5
BA0C8280B9882A2C9A87D49D1D0A3B9A0A0A64D4B10759D87F486001638407D2
1F354F0EB0F0E190B3EB2E7AAE51D421F3DE4B0F86869DCE05B1D059222D2DF7
EF32590F2E74590932EE04AAC40E01F020E5361DFB45603BE1DF7AF139D75F69
57F015AE8EEFD290736D721CFC7289CCC8032EE1D0A4B994544BF3F14551253A
0C0FC092D7BA30B0492889BB4F253813AC6A34CC71A1BF5E34A47BA96D192AC6
3D70383701D7ECBE5D38D3D1230AD073EB11FA88C8CA170162B78D422FE67E2C
E5B829BDDEDF08EFC8DBDB83896671A5B9F8F93690B038809BB6E3A9E5922B77
961447EBAB9A7494059A044E33F078B18E917BCE1C5AFCE65517C21142584DBE
0D64B3534C605BB0869FC54C533D06461649A2921EE643D429A53307EC50B89F
173148D85A282E4827A46022AC4249E19A010B9D0F7B3713A804A3D24463D873
5D6849EE0FBE7179DB8D98C170000E62B2DABF2025D39E191416B35E747268D7
31F15DD4D7BA2EDCBD5CC922C707A83997B4502CB33D44986A91EE6F16CA3136
2D368F2BC072925D77339673B746A1BDC670455C54E21F5347CA3704FB6D3E42
7F0D5622D92FC6059EB6BF5A885D6582A6E33D62456624AC2C8397F077550F4A
09570AAE20B56D824036D268B2D3183F734F8DDBAE0A17582AB1A1DE073AF328
D53B25EB110C33684158573521ED27E68B61E5769D89BBB5C7943EA1813E68EA
D6845003A115C256077C65C56715633C0BDC65AD5CC31C5DAFA92607F42BD96E
7247F9EDCDECE4318CD339B00CEBC934CBA6328CD9D1E6A52919DD7AD139B1EA
D8E368D759221750CA4B46737B778C51D81EF0E5D7911D0733516A9324475F42
4E30CA71844AC9687495F9B43F3063A38244625F7A09F8F8C44685B8405D00B7
B21335D641AD7876ADEBFE2BA655168D9393A3AEBE83C1DCC67587A411069AB6
9924723B5E8BBD6C31163A98A700B79D9CE9CD08D8BE96BDE41F98769BB5A766
9C59AE0B9177BEB92B47B9F585D4FBDB4470171D021836D069789896072CDD05
817FCF90E82F1ECB2DC49A7711243F234302F5D12B83BC895A223378172FE23B
1F01DE18E1F6E0DD52A6B60E28FCB978F185B5079F4EF1A2F0B8B23FD904E9B1
744B131CA5F6020DBCFB60FFE2AF309DB16E326F72D990F12D727DF64784140F
9209A57CCA1993D69AE66EE5F5DB127BDB0832D0921CB39CD58CBD43A946121E
A712AA2AA6EF1D3E7A80E469F6896CE92D148213F5F8A137EB95EE16AA3FE8DC
A1B67B53C12A9DAE27DBFEB5A99495AF3343D3B65ABC4092793CA934F05D5C52
E63C5812C0CCBB42B70595D5B3AEA0E6086ECDF3CA2B220A69100E6336A35187
B49A4E5F239C3F06CE00F79551DB22EDCE618D0F537437E50CB5B4CBFAA7E2F0
4FF005DC67AA64FC3F1824993F8911BA2C704EE8D807F746581B536D0D82B511
F0E2D08022311854D832B941EBD4BDB4ABE86370452FBF0EEA40A4326D1F42D1
C19D9377F1789A4B7DC486BBA484BD9652CF6E85CB29A0952D6F74F4045B109F
3510662AC4EB699F69EBEC0C653B6D5CBDED11E9107FB7F99A5025DC9699C487
19AB741D94B3903AA83F97A23B0CBE27A1516D774A11FE8EF30CF2FB2D49FB69
A8C29D27A5E83BDC73E060EF6CECE4066E092F350575B2815E5E2510EE6101A3
4EE3A0DF8A3B49D3FFE71508AA644B2D17C90937F0AF5C9D016207462DCE2F54
DE839462760D2B8449A71818CD100B997EA291A8ED5AFF1C1FC7E362C47AD791
85A8080A1074B884B983F4312ABACF327131BC2B6DD6319BF8EA9519DD8A7031
DF3CF63D471832477440339C2CFF70B9CA24CEB87386DA38DAC7F924CBB1A38B
3EC9A1E96C9F67BCC655B4CD8748BB511F2D679F09D0FBC100F47C768808FF3F
D4C368D691DFA0410DBCDF0856132D4A178A44D87F841B514C0B9722D1A601FC
91088E6F356882341FF1446FBEBC3973034A3CE16E1EDC8259C46061EF5A8242
16775905EB319F806531790D84E0EA4ECABE94A17263505203B7AC32774DB7DF
94DF48CCB07F0250AF5C72A45F916BDAC3718F554CCAF345DAAEE92408ED4111
166DACD2C4E2540C9E085A44BB6CCB97862FF0D698F4AA90E3CD7655DB17B0BC
5C91EA285D3401B56E7AB21AC34F5DFDF34B8648A8F84D570C853853ADF569C1
49A83476231F87CB5CB80B013F6B84DB67F4F25E854216F126D7C371CECC9900
FC3A8CF112278D98BD50363C0758B35A1D92AAA1CE6F12CACBEE8D2891CF7731
58BDAE780811A23EC6D55C196C7A0595A3C6174D672FAF07E3D8A7CB6C522A16
CD2FA614C1D549E88698FC36F1437B4E11AC88C8EE494FCBACB86C83257FFAFB
5B0D883EC58A4240F437EA669E46B81EBA830D797DC65420665B9DF42824FE2C
B25169AE4E05B73734EA36DCBF0F8A3A47440C389FCE5D220AAD32EFF1EB4E54
E5ADA52483F26E1201563525AD79504A1440AE26DDEDAB2957A58044BAD88FD2
EE96796483A99B28115E731723C4D2678E0441663DA9B0625ECB2A9547EF4012
82F023ED414051A03B18B078DEB6D2082CC4F1BA32877BCFCC78B4271BCA914C
4C7D71BDE2C8ACF47C0423CB14869DA1669615C46F5127E1CB7278E91B394930
F1283EDAD0A6C93D5B7868A44293C211BB7EC2AF07B50746DA43B7A98422FE3C
3CEFEA880F298F45D7C2A5E05D3F5FCF82558CE4E2EB5F3F6B3A4E2F79E8BCE3
E8572312327D8DBA7802CDC8202B4262BF13A261EC9804A95ADF5EA4C43606DC
B63D6254307955106A3192977C4B28B1A9E615FF04CC87975835B96EF61E476A
759AA8429B0946A09BDEB3AFA00FF69FF3667134806C0FDE0489576C70EDAD06
B8ECAEB155A15A1263D97DFF5E3DF7F14F086C307AE13E3AEB215600C005A382
95BFBEB599414EE4C51BAD10F395B5390F5B1CD5D668145F2E7BDDC961C6AF95
3BF4C71EF8E367A435E227DF5CF227B8DA94C151E5F39361A1ABA6AE6699E855
8D12C7A4A20CA5B46C55EA32BA90A37D7C2F512F98FD69916F987F4DF5B66496
FE153DFE2FE51282B624D832D509C32493F42B510EB3B93568C82D517A61280B
75597C4307B66AF402C23CE243D7853D6C841396903C73589E2830D83CDCD28E
DFE37B669D86DD4AA351875C28C706848D6949EC4F30A1481710985DA28E04DA
A7695A0084012A58993481772332E63F0ACF423094002658B20B1C6C82F86D5E
56AED8A712774C51042274E8D90D60E81165D40CA27CA2A48E3C7CF6080B9529
E1B0A9D1F21CDB6187E2A9D59B29948AD0F5C21632BD29130227F4C7B056DD0B
9CB2C5B9B5DFE0193E1C0CA956FA7E8AD112ECF3964A905CEA7AA0628CD86843
ABF457FA8E8FC26BB5DE404CAF34D95F6F0F124D8FC7717FC01329128E1C7EC1
384AA86FF017C0E15D7E3B16D04F7D6B6AAAF1FC30D32AE80214B1FC3A9B038E
C03F4E91C8292493A94F792FD9D2EFB55FFD68BFFBE67B64AC850D1FF73D035C
1E729453CFD1FAA450FA79EC22E2E2312F2ED39974D1F826A413812586794E0A
F20616F3466C835C607DCBE8D93502BD13E38801B7F3D2E33696FFE5C3F20520
05D2293DA643F478A1B1B55B2FA92CBB55A4E382A375B08B6E32AE6A411D3A0C
06F053B99D96B9990D26D7E83ECD27A630543BB45DF8151934B3B531C98E6ED6
07A11D0536F6B5C2F49D5EED66E3765520A0B066F29205305F056C5F17553260
3E3BFEA58C2421B5AB13C5B5F516C9083420A6E41A55CC78F307254718ED2020
C4669E0B74577D3AA074FB4F30E5F0CF45E31CC8BEF8E16CFDE23A2D031F5FD7
3D7C3CDA5CCE8D03FD1E27D8442577233E3CB5547EF7128F919BFC6A7C2EB40D
54BF4A09CBB23B655A6B96701FCF9A46CF59903894E772947C5786F766CB94BC
F1AFBC246C8A974D2AFDE5982D0ED5FE77D92FFD666C4BFBD5DD0D3F0C56ADC2
9755DCD7300306982460EF13E4FFFB3F1C0F0FDFB79489C95A1DC54DBB23D4FD
AA0DEC3A8031FF1A21D7D86C124FC266C9F9F66E4AA2E3AA79ED14805DE5EE43
B6F3045BA16432DBAB1BA7BF70563DB9F16B11DDCF79D32F08163A9FF2F2E8DD
D9FAD3DA91FAD088A6C01A89C6DD28CDC3B36E1E63F70F08FC676057942A78C4
3B329BF7D0C36F5E11DEE4A59B239934A4DAFF5C30BA6A1E7E6058863A626B84
96911A99BC3BEF3B36C1086A304F9CBF392487508932BCF29F1CF5167AA0014B
0C3696615B2A859A4479534783E8EA8946CD61DB6B0CC0C20DEA23F5175D4D9A
F3C9AB862EB834E64BF9E04153CBE1C05B203CC10DABA0DF380AB12CDA043EF2
CF8973538EEB028AF19E2642C17A3C81480792B08457E03510BFE5FB6AE3AD6D
32E9BBF472F9814BE95FE0262DEBCC06A435A7CA8CAFA37C4F1B5DBC9FBA56A3
3CB2E0F9B04BAB930B193FE2521C700E64F54833CDEDECC9C511B70A2CC09655
B0702B3D12AED612B40F063DA7930DAD57E378008048C87428CCC7367979A246
515890E12FC3403CA650FC6175FBBFF3AD64718ECF5894FBA52F2B2F0319D981
2ECFA3666DBB14E6E1B8267DF71C8DD0D574827E373BCB6E57E9C4CF0E5E47A3
2FDFF46B0F8CBC668E256601A4D2378DA088B358A50D8EC2CD1BD04291B76C11
7165E676C0231CDF344D9ABB59831140312D4B8EAA76FC7A0B892744859E52B6
ADA162D70E1275A33B7F6A0382A0870BE553CD50222D3CE220AD616192BE7CE7
46A0862BD3B8E2A328DBE8AA365505B12A8E96ABC1C1F1478FC7C9D6F7A451E4
E28269798C3419BE91206E045F6CE8E8C09C1392CF03433120A2A8E86B382358
7C927053AE1FD1C26D0F688E915F03DA76DFB6942139AE34849F89013BAC8041
1BC2E06B57818A4125EFBEC9088E0FCB75B444A18523229929E529887DFDE120
079D0532350EB45A4624175CE3DB65C42299CE2408AEC2449176AB500788AFFE
02997175C36A8AFBAA9B8555AD13B8E3FBA62D8FD86D2DC9875A9C878D6DBE32
AE097B3C2B2E15D4B9E1F3348BBBF1EEAC37107ED48A36EE4D23313F12B47A73
EFF3BB69890E068B7915F2F1FBE80DD08F2637D4CE9B3F2FF310DCC02B65EC78
38FF2BE8183ED9E426E0751A9967EF5BD178B8D6D9B663811ACE52C032529556
F27C4782998B377CF5057055F922B33E5A8828902F939D40FE8AF01ECF6D033F
07FBE0E35564235BE9D92B9F440F09C4D47354AD5C742E23387F744F9CD81278
97453B42D285D8004F10B8827A6A999E3907FFBE6E255BAF5263F24F69C83CB8
8D6C511430188B3A4F009D2E735EF29475C165D67774293F55F293BDBB27DCDF
4E09F6CB8D8B8B89DB017F1D1BDC5A64FD2BFCF2BC46BAB892F2B50842D0274C
59C41F5DBD508C04B4B2475BBC4CA56408052C490CBC2960AE32224D72422F58
EE2D4DC938C8DEDBE0F1C9D4DBDD777F1A3C67E5FAB285C2BAC373B4FD213E54
4CB1F4ACB6A5272EA50D563FC27E0BB48E65357FEC036F58D9B17E1E3EC3C3BE
C846C2FC0EE9F59093F38AA8FAF008D4BCD9386C41E2E41AE3EC51B2B6E338CB
0C014FA27ED966AFDFC36A66483DA14829FC1B16FE09AFEA62AE603E97570D0C
2099913A5E4DBB56107895DD82F25F47C5D8A9CC0888422A54205FB01C64EE68
4AEC91C3FCD18DCB0CBDE7BC14BAFF00D55CECC4D1422382EAAA300CBD2746F8
87166F017D6F0679AE5C7B849952AFB5EB5125E65F1F8A5DA0B8D979E40BB2C0
EACC7FDAB144E314F483E8807C7B3F4B74E14FD82E7BF2988B65CF83617DEDFC
27C6F7474A83F9ACCAA850DD49621454DE79E22C77AC250C7F48C22F2238A84A
EF5A5DA94D3CE807059977FB93436AC4967AE4172967E79D548425A0D6BB836B
0DF9B864FC13E8BE62998BCA9E6206C5375051C6E9E7F03D2312D3ABCD23CDAC
94FC554E1E1B0EDC02942E13B019BA3A0B0DBDE676F2B7126B8C44C02E713FBD
3F0F740B5171012F811E1735F93F66EB42F753F92D44E46676033F257E8E71C2
9B9C729C9CE0AA7AFA7A231CC17101F33EFC113CBDC22814D564AFB64DD97F75
C02DC715AACD2636450B0F41848E06C3D401B99FC790D2FD29BA8A56D10FE759
2EC02AB8E32607B91AAFA6328C8B5F9FD42A143F183FD05D0ED53C61E50526E2
75E2BDB500FA85C6D5CFD0218A431E8E9FADB89365AD08EBF034B7AAEA965CC5
0F23D80B751C56846445D2BE18ACA9981F9DA304B169AC25742B2B3CE8833C48
5DE00DCA47034A9A1FD53587AC15897D3E74C3D165DCFA975015CEB68A9486E4
F503ECC40BD8FB04E9B04EDEC49E756964BA63CA3428BA556412130E2D2561BA
A556E9D2E1AC8606A5A7B6F12D3746A94A8DFAF660847BB2AD95C624C744BA09
266DA6062A748B081A8BF2F4D6525C7B3948AED4493227DADFF79A64392E5555
091306413AD9AF23DEE2AB276E113EBA184ECC73C1BBCDF7902537C475E8FD0E
12EF54E7A37695DDB82CA6C5494216DDF628A8D121D95BB9F3FCDBDC2FEA5DF8
2B2D1ED26D345568DE34C660ECE77BB54EC2C50C27281C1498B1D85248CB2804
734DA26FF09E2298890271D6A0F96EE50D8BDB4D7F56DE6130EF4FF3E39EBFFD
8F58ECF21FB9D6C81C3F60A2F282EBA9101FE3541D258D193592613DEE0C5A29
5FC43A955AF842AA7B54B2EB34F55EC9C649C4A0E520D698772CCC29764BCA73
3D0E533682C781E438162446C8BB0DF08C32A2DD14B4B8250AD85D7E69881F69
3B29D757205B56624D58AC7D057D03F1892F65481684F7AF883D205B4D14C01B
53847C8C2F87C116A0C799FCA1A50C19086298CA30BBDB8C33D85965788B731F
B2CAA0845D567782FF33BD365D9A255852B207D2C8E2F1092CE60D876AB5A9AA
13DC557DA6EF8F149AC18447EBCCFDF367221B14E5022B750AB43FC3E15EA2EF
041E00E2180EBD9A3D7E2943428D50E226400DD9A9F1BBB31F0BAAF2CD4CC734
3B4A53DAE233AA3D9C90FFD3153ED2E080A677935EF9118F3656EED1F615CF7E
1D07B074BAD1B173A6D33D19C8492B9E8CD81F50943FE3F517F6F9D5202B887C
24E17EC9047575E16E4402DB4102101AD9CAA23FB5DD87E8C65028B8227DF065
4FA92C735C39A096A12642A77A808E87089BE1328FC1C6E82E22764A2BDA6007
D9ABE03C96E0D2A30D6A09A85BFA40BF50CABCD8259B1F4756E7682613041FF0
4D1EACC0AE74629798B6225CC26E0D6A1933BB82F539E9899F5333D11294296E
FEC81E39B08936D94A5C8737F93E50188B07841DABD615E04244C5ABFAAB98DF
0A7A7B97F27CCEFC64012F5EF1671D2DC5BAE5F5EB21C83BB679BA3F92891557
B44F176E037B664B993F739DB7692A2DC5185868D4D84F3AE43162A209C4B4CC
1A5CD32A500E16F6B121942FD46A82D5999DB67E0774196D5E1E3C82FC7C0622
5F4313A0DA3E734F7845E7ACF2DE9DB350978FB087D646D12280AA12BCF1FD49
BE3A38C6CD1111F89386753F7278E1044DC44D7D1B7AD2D1CC418222A44601CC
54F76495881414742E8FC4ACBA214109540913E1CF7377987C20DF8717EC8988
683767B11C7FA874FA6D8F63615A8F927527544AA6D89E356FB5BDDF5E8A30CF
70CF9F4573F93BCC51009EA3DDED126A7EFA11598991B19FB6CB8CF74A9F8446
39C7BA46707F4A9DC7E9900F338A6095614032AB8A7CCFE81B2E40978AD47703
E69E1BAC64FF8683C7221DC06BAC53516BA9D4CCC34B0CEE6DFBE6EFB6DB9DFC
53223A150960606CA2381EDD4CE9C76CDD3E86EC4CED22DEE40A02258CAEE565
23D1EEF9A334A7F18C5C4FE7D6F36B481923EC4BDEF55ED88230E8EEC9FA5605
308DECE65B98027FE837D6FC90D6D0CDD3F6C6C7AC9C0F7F4DC487C5899CE0E9
D4D90C3C20672ECEF5DB60318EBFB174AEBF8E5227C29217AA0DCFC1D428C135
D841DA04784F2C8A2A3597CC3043F6BC65A249738E6744298BD3133C47354800
24D19EFFF201B6A99DF32F4D4B29B6D2FE5D38E0EED96360EFBDBF8AE12B0E4B
BDDEDD384F3F5734AB3D97D1393377A89F2C6FB7912351A8DBDAC45F92B5D6A5
D3937C179234E2F3A168308AF7BC0FEE98372D6F125D1D6AB65F28EFDB93C14E
60A95E0AA9E9380D0EBEBE982368DFAB2976D83B245ED74FAE45FF63D74BFD20
F10180AF1B9A2180874B96A123A9411937F9D2775B05502A873F159E334DE5E5
7A7CA25C5C6615EE3A67641569816D
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTI12
%!PS-AdobeFont-1.1: CMTI12 1.0
%%CreationDate: 1991 Aug 18 21:06:53
% 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 (CMTI12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI12 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 12 /fi put
dup 13 /fl put
dup 44 /comma put
dup 73 /I put
dup 77 /M put
dup 78 /N put
dup 82 /R put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-36 -251 1103 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
525003F3DBE5BF07B2E83E66B7F97DDD7CE0EEB75A78BD9227BF359D002B6ADB
8AC57A33FED4EF021A7085B1E2B933DE602F0FF71467ECD501744AE338AF29A0
26F7D368AC6F25CCB882DB7B7343566192BD687E1349225982823027D3B66703
3B0DB7A7E680A682B98023D39C7FAE81A5D5B867A0A66C8AA0DBC83B1596A84F
0436AC6A7900B767BDCCE0060A4811003C79FDCC71D73F7F2D0A6675E93AD21A
56B4CD8EF75EED3DE8C0A18BEBF7B9D1BE72504872D56EDB272F1E97FC726CB6
68C85C713059DA19F6C2E0F3E12710A59B6FC4699AE883DE8C8615B7292AC25C
D5714B6CFB14EF0EF11EB13009BEBA4F345A5D3D6D9926ABC2BAD7DB1328651E
437BFB3C46DA7B62219660FC368CF3D3704DAD3AB461C28F711665BF484BF61C
052093D231CA65618EA463D63E406ECE858D180A6C0589B2FEDC321371C28E77
DE974D655DF5FF7D41ED01FE717D928A885F6FA6CFE4D2C0807F8E7F937916E0
96EDD1A3BA67802B1F4A49100E75613BA0356D9DCBBAD4DAB3C59E70A47058F5
2163D1730F0EE4D1F87C3A4AE723A23CFD7986FC4FBD399347E9F5946354E013
D860FC446AFF0B0744F5DA27CC777C96ADB388D1E835DDCBE123FB517679B9B7
EE5A3DDDCD392415AF58CE22EA55B7F47031138C6F27798B40F7E18FDD315912
BE99F33ADE0FDD538A8A3E5DE58AF68A54732AE69F188F3F7E0458D848205648
CBE820C287ADC2394520F03BBB97DB893F6A12154B1B7F8626D35CE6B70F8524
CB128DE87821A0E32F1E825F6C50AE8B4BE37FAA3183BA4D678E896CC7E61CC9
D0226FC38B9CAE0939D19149D987979B96A86EB69A105807AB426639292FF5FB
EFF0817FCFD5E51027D2E47FC5DF8590627DC99082760E8B3E1738BE19E77D06
114C31C967A3659D82AD95E8C7DAC9A7D2E0AA5ADC31CD2B0B4EB30E4D60CC7C
C199971C5496A51F8903F963B5E3016D6671699856E47AD0ECEE1EDF0A027558
B4609F0437111E0F234CA0261E77B61DCAFC662EE236E617669871246BFD7579
C8A0F322ACE7DA93A2A013CA343EF9DFAD9F5081617C78BDC705A2D83D5BBEE4
E0F46014971AB69C82767B2227A07BABD07661B5554C76E39D87F409DB834269
8A09FA1ED06DC53CB4537FDDD57AB7E0EC3F3FA61F04167BBE9B5A8A14F444DB
9C5236B2AF50DCA279D94FF231CDB409FC498E293AB604E43509634381F6425C
B82B65D49576DB133C66839B878F8A3B254F7498228BED99901583814541AF0E
5CF3172E4CDDCA1F368C04563769753AF218873E5A8BA5A61AED61FCD6464800
8B592198F903959936C78E5C7055B9DC69A555D3B842D98D5B59B8400DC835E0
F19869D8D5A8DA8959D95AE7187CBD4DE26D1510D5E4DCCCACCF00D68BEDC2F8
A2731E0105AD31B2FC3863381C2B44A55FB0E84F469F31882D76BCABCD55C6D9
F7038AEBBF0D7B01286408D71CB603E404136E8CB35661A940AD039E70ECFE0B
888229651E1EB88D54A22D9FD6A18B64E30A7E622F6A072303B046B45A613E38
13916502E0CDB6C884EB1316A725D932F5F652F7B47676CB36694E647E087193
2E048D5A9FF5000B115F6CFD23F8859F234CDD57A7A4C576ED74621D0F5D97F8
62A84C219FE648CD7D961B80FF94637463C4C224FBD151CD46209E3344706014
CB8B0E1A74B6582D88AA944906EBC1D58E11AEA88E1E3B0D71C7403AC3FB7BB5
2186C4AF179A55FA8A6B92F765928D2AE251247AE4EC3376E6081B78964BF738
441F6C0E232EB511690FF216E5378269FD91B942D1DE338094A0E2A7D66FE542
DAC229AD212F45798D4E2F8691CE1EA808884778A4DD5974F8F5ADF22E031F8D
2225CF57B2470F4E2C29E832A971F0B0A8E44ED204F2A2C7E335240B75C9B7CB
B462AFA014FB6B596BB80404154084FCF1D7F9AAC8EDC7EBAAC9234B0744F929
E698FFBFD230AD5C0979BC51DDCBD3F514077406D740C16CA62FEB6C2270B107
01A32F0F645A2B46E53BFFC84D5F5C9BB5A8E73928A613B9ACEC347EF558B9FF
EF4ED83AC5D78446ABA5167853533944B4F7B9095251332F3176F7BE47F5625E
E6D965A2751CA4EB8EEFF6A85484279B0368EB28A918B6426A94DE23E28DDF90
E8FEAF366C80B2FBC15BE2013F73882B122855476AF88F25465252F68660A66F
0A446AFCFE6442BD9F1297653FFDE5D404CF263FF170D5D6DCEC36DC0712A81F
E8F3D899DC1EF0409432F3C9A4F90D61944F575AB932D3F6922640F32ED40238
450691DC1B34140EC00BEC29D39BF404968B67D6E9C73C380F5F947BEC2C3849
81AAF31F02333EC0EFD02F04113391B2C5A49E374B7F3C219CCD9174AD9E6772
09A2099DA645B904031D21624D27E6F773231FBB8E67CDA703691914DFF9776F
0C2469A09EA1C16D7BF9950330B2AD7EBE4DCC57214ECF954C3E66C3E95ADA57
C5079CE9EDD8E2E816D76F20618E7CD8F9AD1208396612EE7D2982FD95B3B820
D2A6AE153E4BEF1C1122BD6698172D8CB3D072F72B3AF02E1182608D8919E542
1FEA1157E7B0BB0830FE5E3505E6DC3CA0D53E99DFC4124816B104F98A871DF8
70AFD660C76CA23FD9DA8A1F73AE86D53898D04AC8312F2CB50A5E33EB2D20BD
FFC3476081FB5695EFEC477C0887B5E74DE81DB1F8FFDB3B8058096465C5618E
13DBA43023D435FDFF58176130E87D3D254058BE893EB0E896B8DE9DAAFCA7D4
212AED3AD4452FF4954047A0A23492EE07ECC2D26855786BF5387F1D8A7F4C06
9B1F9029F0438BE074ACAA131199DE1CBD5BC0757D6E0074CA173D486128F52A
355A110E86F5E134A9BFCB8D2317A39A52743A6240942688F287C8479324B621
39775D9A8546E16A150D9892F51B9ECE7AF3E9CB76841B4B0D139F5FF06972BD
94767D7F24CC997D920B0198061DB6E54A0175600A12D4E19A77D3C856D94DF6
18B491AF144E4D56A3CF5ABC61767FC3C324EC4B68479EA5904CF47D6476197F
16846A2937CB50D8B4C8B03213ABF210A250B40B12A0F4A6A9F3C18D0721C423
C08A77F25FE3501B42371BDFA6EFBCEB5CD1A4C2141C7B9A2ECA03176A554388
667970684E7FD87DDA4C30CD8F8CE45E62EFE2B32279CB65CF2B48D2E0C015BC
28ECD90BDC86D68CE901BEBDFCA2A8ECB3DFCD113BC404F328EBC996BE07B63F
630D86300DF100BD56294F29A2B57C7D8C12E2AF8FDED32E9115365C71CAB979
73E0BC5B876D08E394835C547BD0DB94DFAA19977D933FF05765965DADA841E6
D0890204B9394B2602B7A59C180C44AA319FCAF5CB47457186132F8269610681
60F0128B5F4A4DB0797ABC1361AD39CB96C2F26EF2119F79A6D8C2AD3E2B004B
7123EDFB659AD17923DDCEBC94F20AAFC73A1FC54B420931C54EA5A7ABD0B750
1330FBC94554F062FC36A62A7243F7D8525AD19016E494753FBAC80A36B16F1D
B998BFB90988193ACD6EB8AECECB14CFBDDB31AA25137D0F3FBF1F2E5F16317A
A39C4895F85A0FA38B803F646E657F859B80868BBABA016F897CA29748BC5912
C7C3DF89D30DE52E224EAAEE166230035B9E099871E1F955F305D93C2BF91BE4
668479A0A992C69DB9DB7EEAE97CE8F0B26C716B02F58E1F6F04F42A56488B42
914F3E4AC16B5A0D7EFDD10177A93DCE84E2C609954A05F376C2D4DD84C25103
AB9BCAAC378F0C77408351345D0FAA663CFA5CDDD17A1393D45A78D7FAD210F5
D6E3396A6B6D848B1B2E063D24E21C84F16D4A76188490BB519F62E33AC516DD
A7F962CD7B2C174467DF54032FD4E5546F19630F36246D7A799D2F42FD48184F
4A7988703C8C70B2F19F2C0759D9FE2C7BFAA0396462E0D86DB05BC7414DDFE2
B6F14DC1F3C32095482534F8C73E750A004DB84982967E14577ECC48F68891DF
C0474EEB4E30A4C6C498A082A540D8E33FFD3DCB13E1C80347C4B7F3FF75D076
4443AD5B69752F9306EFCEA184B424D36209A346738E0CA5A09BCF4FB2C0C997
03AFD6AB3EFFBD8BF345DA9E5DBC500B61A5264E4B5DE4641932807C27B7E15E
C90070EA3663CCBCC5939FCEC1EE0D66202FCABC8D4C4E01DFD78E3EDEB6F5B3
36BAB1DD353B8B91299057A9CB94F6A2F9273DE425B302051FCC4A2735AED01C
2C241E9917CB7EC4B4E352F9DD39535C5609397C65F2BC25BD99DB0DB743386E
77DEE1719D8915659652465BAE6EE34DEC47F423637A807412F0F29DF5697FE0
EE427BD0996C8EBBB4E9782471768ECEBA41670C29E046FC53BC2A08D3B96389
3AE874285238152A36CD907824FBD31DD8430CAC0373FA9B4CA07CFC11A8DD31
5821765E3810A324B80BD94A1A56CB3D4F82D624F2866B947C51DA02642197EC
0BCC0A7B3CF3920231F6C844EA858BA7E29F114FEE884BEE609CDD3076584AAF
D3C9751562B289C06A1182CEFF71E9E388CBE335904587938A36805DD9F063BF
65A0B86961FAC70A0C29DF67D1FC3815B73296476357EECC186F68B499A3C528
6B8838EA757318201226388598E3511DAB1EDC40857642D9805D1A32D5BC771D
F05488FE4AB4F95FF9EE1A850BA4963C803A6D62D9B7018AA3D4B36D151EC8A5
13941A2BB41B7D8E803237383DE189547B3084CDEB26A7CB2231B47BE156EB1C
26674BA89891A31110DAB6D7E83CA30DC664883C6696F951AF3C3B44F2C891FB
26CDF89D876E47FB0703CB69CFF868F2B6D9BCC06F37178EB0AF141125292B64
84E0F58481FD082B610F3D5F03E11500C8439B6152C6230F54BBB1E6D94FF754
9669AFF321A49A05423E379F16E2932974799A96ADA222BA58C512C3A2633C3B
EB45FBF3703689B961DA65F5A9EDD9D1757D4C457688241B3F5CC44103B360BA
DBF7E1D807A9DE0B673631B9C35713B8C283DC395CDB4EF1D8A45D7476C569EC
D59D71BF527483F411425207F49849A7892466BDBCA1A8FDA0AB432D521AA376
A533BB8B55AF398D7A85B6BFE0696CFB915C2929EF47F6488E2B7DF720AE82DA
AF701E9EB444868F3E00D7E0E8B17BB81630B0B3D6455B57B99838D8EE34D6D3
56C7F99B1DD03DCDC7A235F6DD9B1D9A021E371E111FB12A525A04353A50E46C
C9CD8DFCC86899AB7EDFB2A9C9845C94A288E80ED7546B8CD390AC387086ED63
8AB16FD06B01718495675AD103CA0CC20075DA86227ACE369E258382753882E7
D483233FFFBE8CC0D16CF58BB94ED5DB9493F904E88FA7E796DFC87B0B2AE0A0
398F5471B7D5FF55DD3BC32DF1154EBC8B97EE26BA35591A0ACD8BCF51814224
F5169FF2458E4FFC13A51DA32AE545020490E9AB83A0F8F9E4DEB357FC80E37C
61AC3AB296C7E0F1B22FA63EE885D87BA14450597121AEB62BC35D1BBAAF866B
5B238466F403A0A5389AA523A5C2834291DA9A2B62BF06590FD72D4BFA951EB5
53852689B3EB1FDFB98CC56451E4FB738EF2310D3241314552A3B858FF7D7164
941F67EF2A8F0218E6DD4BADF884092B89C29F13C1BF252D018516B82AAC2318
10B1D35978EA978559D8E75279BD1E57D13D176FC99352D311E3D10C64C2655D
8065E6C6A5EFA8CB5A1948CCAE66362B044D55EEFB0E3FB4F83990E9BB3B1C7D
10C8178608CFF80FB50C4248312C4BC411477A880FE72DD5FCE8DD605D847293
2B97FB729E27631CBA6D99A1143ADBB2820B281FD9C54BD7CD722D5AA023AEEF
FD24D243F2B47C67A15E6178863B8E767C69A71A2947206615F5D88C53F9F9EE
EAC22C2DD0F71C6A034EA8881358E4ED30E0AC2A40F5D627DD54953C19C62653
CFE1C5F2C04434130E406E473221632AC4FF2AEB57CA98C85F0118FC5D7B8EF5
1CE8A9029C775FCB9D668AA01B89F6AAD15370B09CF70ED590484F64BED1C90B
5EA2A7295310B1BB8A4B04039681328107857DC7557AF71CD6DCAA54957BE764
816F1ED1488E658495AEB39EDE9391CA4BCF7FFB5E6E298B457A6C6DBB2ED88C
43A881D21BE5BF68B1F365D7F1126BFC8D8AF7F944BEF14B3AAA0EC2F85568B1
8780B1A7130ECE7CF2B11D1750ABAB1E4E29880020682504C5AA3F784C58F2C4
9188D47068FB8BBEE3A4A68BCDA73286FA68331F6B9B4B1BA7643E3AE818A680
0E807926ED2574A1BD3B5663D9CA815FC6DA30ADB5EBF2C047F91EAF09A8DBE6
E136AAF673F47A030161BBE6D85AD1BE5B7BA13B8C36F01BF8EC1FF0212CB5D5
8130EE06F7D91330765ABB1DD1D3943EF917E4B4A511A0C614633B7432F8E157
B23D272E1F7BA42F9BEFAD6E6E98BAE065ADBF53F41FF69A27C02AD8F432779F
4F6DD9E3B7E5E0CCB2AC890727F96BCF6A39A2F0CB433B04512831C45B422ADB
0C1A511B561A4F719CC522F25E09E16718657B89ABEB261714E1366564A5D6CB
B1AF95DDEB0169833A4552548DF27A4FD6701A546A441D1DFD6288C9D5EFF12F
FDF4D7001585ADCCD799E8B47F52AF0BE8BC05ACE98BD05C2200D30D895152DF
EBA25D8F1B04DB539EEB9186373B3F9FD2AC8136DCA40A75FD34269B9152B800
DF2DF5F523DDE0F55A44AE114788207EB870190950DF063ACC57BC4FAA6D2AC9
E9DFA27A594C5627CAEF6770534D5A9B1E836B4DA7091271CF8122E5C47FEE7E
43D3D9DEDDA757AC9737DF1D9F4A53BBADFA8B1AAADBA63AEFD00D74AC25FC42
3671616D79A2FA7D32719C42CB4C8FADAA667A4B5C5C0694D0F177268A807A97
E476868D3750FF9D8A17394E6A491871E35F5489F879FE12ED7579FDBD276AD4
DFB05A6ABAC543A4DCE6B8019285881AE156B776222C650DB92C648908120920
3AD644BB546638C72EC3F2A1F8D97D245D8F156BE4BF2A866A34D0D15F5E5F73
EEBBBFBCF7859B1ECE935864F58939B28C64D0F99D5698D4E2EC6DCAD8ADF7E4
143DFFF67ABCFEC0E1E40F1ACDB1D329A26469D88264A092302499707E031EA3
FF78BA55127614FD3BD957F4420F84B8F1D231281831DF5098C4AFE2CD2CACC6
6781C59D9FFBE23BE40D5AC71747E7E287A1F7057791378D834CC3E646D4A371
95345617CAD1956DD2067A549D02C4BD5CA0A68D0C15287B8C5D1DAAEEF2C3B9
8D75A25600B89941B5C4BAA32228C327C406EE9FA82282286A7F50A69ACB8B62
F35773C9E511F047DEBDFA43645E06560E334137DB0F322B7913FADEED2FD04D
E34D9F7BC1EAC2F670263C4C2DC7454290653183851E123C9538380DC0068A62
CE76DE8D8109728B1B88D78F2B7F1CEB0809964148DC636896439E02D5F883C9
6821934B7C5602C103685C97B2F486A0D1C1B6278158B260E008ADCBFA794051
4F397D03B8E0F0992D62EAF1E54E623DF86B2345BF94CC64ED7BB110363505B1
3B707510F1E0237DD9C241FA85DD9EB174306A354414613C3D6218CA741E99E6
52CB91EF8B668BDBE1C290C6DE5B8BA28347E6E0BF75C225962BACA7E4827CEE
89DBADACEAF8509C5ADEDFEA305C7107A0746F43B7772D5D01603CDCA098BDF0
046859AD117D826C08446759ED78CF39D69535FC2376DD992A4442645FD336A5
B76F28F1E35704BAE69C28CC857A909446EB9DBB737AA017779FC5C0E77AD72D
9A6BD5623B8BFF6B15DEBB5F1CBFCFA57F89B29064EC609994F75366B034CFB0
DFD3E9513D301B950FBD69111C5198F4E94E9D294940BBDCD4C525682A17D081
752D8FE2FFF55D79EB29F3D394617261C09766224D891518ECC11B6106368052
E8B2CCBFC0B0A369C6C778D6FFF4B544336EF6B2D6831AC68BBC4743952C42D0
B20890116597614BBB801E156FBF922EAD0A6ECCDF40D91337424808B1CF6C56
77CB8BDA83DBB68CA9672B60F67F954B445B6C450BB426236080052B867F03CC
165BAC9A5A510E7F921CCFA854BAB82075E9D580CC7A53CCE92B23FE66E86A63
317FE48D7DB03A4F46727F9EC6960962B71B9E006BF2A36205CD54B4E4D176B6
E2E89F7F899E3594E04941DCA43543E2C6CFCC91D4DC2868A975C6E59E8EB688
ED6FDFB76D98A900EB286C1FCCA60C470D0F1042D785F7D4572B59AFF2530222
4C418F60577127A9266F6D29D91BD17F0CE4AA028DBD86868F8588591E23F420
1DAE77E7D19665C132566A6412745AFA4AC15D74566017F410E8E965E37C89E2
BFB7CDF96E7081EC975AA7147F672C3C6EBAE3DBCE18C1E64E1FEDF2D4E7E538
ED5E1E582666187738223833E065FDCED0F6FDB4EAEDC442E41FE321D355B07B
B37D2F570EA0D63C8EA3002E9897ADDA6DDE77E82DC1106F09DC5F809D99E33F
E44909F5E91E4BBEDA54E6437D306670212B4A2F7EA8E0C719D6AE754D0EB40B
C2E19BC5DE97B53648D76DE206EB77FF99D6B1D863283415AAB232B8367209BB
6BFA4107994A02A595E7426E05EE5AD25D420A5BA8ACD0C9F3E61A6F79DD6255
C6D0DEA1F77CB4A8534A547632DB8B199E3AB6D0770571EC63DFAC3882B44FD1
FAA744148D1C44F9177DBE709085F08C62CD996B1D209791D387FFD9AC73F126
33FD7646C66EAEAD22A847C3B83FB98F87604FC6F53B0DA7761741AFBF403AE0
4D3640CC3B294A8283458883A936BC9ED9D43CE2B455430B1D9BE6C5A30764B8
A3D5C34874093CA07B1CC4719A62C23F8F55E22FCCFBFDE599F1C1968A0F9F37
03893944E815867D3E65BC6978B304E092019682DE17CA00613097428D664409
6830F3AF83E851F1CA70064EAF57EEBE0A183D30DE05D0530704D25B34CBBA0C
1E6E4EF11A08495363B34014BB3E93295212F957EF97CB3AD6EFA36FA4DD9B5A
C6C4F70285082FA8E5C4DDF1C815FE435815FFF67F816049CD525E5B7EC06019
19374F3737DE579503BA4963D8BBDCB5C4345FD8BB4C57FCEB3825AE084CC493
B3122951030E94D82F229C6E2A1AC295EC8B469834F81B481014391B6BC74ECA
7D491E35016ABB65587F0D98DCF551E8A08E44C59185B7AAE9F20B15DD24B151
CBFC9219A547C6FD2F516CA4721F864CBC9BC7D0878857B4943AF55260B215D7
E70D1BF6E4573EB1F49490D85811D0F522366990A7AD75880BF21A8447D46953
B1F0EC39562B4CF5F1304B68A9118A81053FB171584016A3147A67F4482D0883
064F4E1D910E95FB98228A22F429DE69F7CF41784222A213616BA3843EE2218B
05DFB68EE2B42078F52EB240F7E34B1980C9B10FA2D8D4786F16F04B8A248276
0FE06064C0B10F1929AF2ECBB08D6411AFB484CC5044E7EB54C8B06F9F2E5EC7
04434A14C92564D60B37AA7AA1DFEC28679828A416782ADEEEA604ADE1A5ACE5
94E8C3F507723CE6C96404088C8F2866389AE168A9D84CE382FBD0E7C0C76D42
93DA08602B5618B8B102EBD451FE10ACA2EEB247F6757E075A6190D0444BCFA8
FA2D5485DDE4817DFC211361704F9DCB1419A2569B7265E460BE9165864F3DB0
A9B66A2B00C94FFACED9EC091D7E147C999C50FF16ACC71636953D987D9458EC
5A7AFCA56162AD26194235AABF7015FBCA0A59E431B3843B0D95288711AC4CAD
32D317944A982764FD5F87DB71313EB2B8FE26CDD9C88F538B60D5F1CC83E088
E648E9C7250BCA4FB902405C0DD55549EBEE0418AC91D202725A7BFFBCAC5D78
2A1875F660FF9E9362BD50EE29A68F4FCDFCC7FC1A890B6E5170A1F7BA067EE0
D1250A3442A08BCFE4BBB747DC30F66508C26A022CA5F2AD26B13218F2C4C288
9DA0C7955B418F1369ADC2606C60E9BF99062087DB87B7D909B71E8FC4CA95A4
B59B433FEE91FA5D997F845FB99890DBDA97B1D54DAF311E02029C538D225AFA
9AC2B9142DAE50C6CF49E9E3CB8C25FB0E2937DDA825495A1530501229BD5388
7F69A907C85BC30E0A814FF7
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR12
%!PS-AdobeFont-1.1: CMR12 1.0
%%CreationDate: 1991 Aug 20 16:38:05
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR12 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 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 14 /ffi put
dup 33 /exclam put
dup 34 /quotedblright put
dup 35 /numbersign put
dup 36 /dollar put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 61 /equal put
dup 63 /question put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 91 /bracketleft put
dup 92 /quotedblleft put
dup 93 /bracketright put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /endash put
dup 124 /emdash put
readonly def
/FontBBox{-34 -251 988 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
377D3061A20B1EB98796B8607EECBC699445EAA866C38E03ED7D4F3EDBCA1926
2AF6A41F67AFCFBF3630C943FA111E4CCD988A7363F7C2B75EAF5830B049460E
0D2B337988F150B9182E989E7750C51BA83DF37685483F86D1F47478883F3F6A
4B7F768DA5AA89E8F163029ADD4A9209DE8A4F285766C06EA859639B92CCCDCA
F59B1C2BB8D588CA754D1257BFF76B53984DF4937093AAEF79009D32A29A4C16
FB610C7D6713482C48D7F9E8410C0F00AD6E67021056B6035534E79F05D14EF2
4E8D85E091EF6CED4A669F73F95D772233997CD13D8DAF2B48D08D79FF729BDA
7B693746B8352376920A0906D34A76AB60B91E50C5B75575E0219371B4DC7B33
2A8BA5B8CF31C119D43F5C298558A2800CF9B3CA37BFEB6E86457A37F67E81C1
14939A099DCD040C322A9DC964061EE11700A6094C01CD2EAE302EA8EF558D35
CB35ED6A6359E90C168C1D0F81410876A4269FF0559C93838E221DC8F1A71FBF
A5740F32A6228DF6FCF494311B6CC34F4B60CC286FB90133E1F9819841235C96
A317D8A79380B33CDE450D3069A2EBDC16B0E85FFAF6C3FA920D8A9D902A8337
CBD214ACFB26D4390C7C7D8758478F05326BA569020D64A79A9FB0EB65558F42
20076F0FD4148A2591B866E88EBDE508291DA8F972DB9461960159FC0FE64B8E
3B9D721D69425E567666C203386C4E66B1EC6E0358A3719C093C6442DFFAC5D8
76523218A16EF68AD4B44F8377B3C3B6B56253A9E349127486B8A69D70D1D59C
488D5BDB56B2CA070DB132223BA1FE08BD78B333AF2D39A069459561DA2473E7
F7177755748BF19AC9235301AEC60F4516EE68EA8FC673C21AB90075197054FA
F77CF1B1C1D4791820BFD8B26723D284607C15EC9342F192B108869CC6A3990B
DA0D781EBF6320E12F94BE7F6820F6C8BF2E3B09BD32BA25B23E04FCA067BD17
9D0E6C7D03C3D8C54CEFBFC23E819913840B6B3E79AE65EC0756B33354E7F144
5D926411518A659C42CE0A804B8694CD0795CC35C274EBB9B767DFCEF3F9054D
FD23F5B37B1EA9A75A34443B3F570FADFAF1EAC00D8BC9C8E4F626DE8831DF5F
AEAA688B1CDAB362183D41EDD61C2212360ACE86A76A33A2AF41AA2184E6DEC0
D17435BE95B6D8C4B1AE0AD2E93097F2ECE693E2CCDECA5E2BB61CDE9FC6DF93
6A5D13D7896C818A9E7BE04A49D59FCF02F18D3AFCCC56872BFC519A12043D16
CF0D31DE2CADC80573D410289914BD07F81E0C8D08678767BC65E87FFB397125
3983EA5373EAF74E1E6AEC157F89A88390778A61A8BBF369D50EB076EF938714
A227F4319C594BFEAAD0FF7EF9DBC0F64FE3599552A9853C6D46E70EFB553E70
FCEBD2B480EC282317A029C843B401A816BBF576E142026BBDCB4FEC6CD1FA03
FC4ACA720B4C763F002F3F10A079353CDB29511C4CEF528E7E8A80B00B7F1670
BAD5B7F6658559EE0E557245EB83EE6034B13951D4B3E3CFFB7628FD7362F25E
0BEAC93926FC7567753F584187FB4251D31549DE5FDC06F8BBC7B96F49851879
B8036C3326C750F8DD3AB719CD37329ED4E0EB431FD347580347B929266EF09F
9C21E2DF1BC22494A8E31BC93D0E77C51302C6D4248DDF7817C48D9AD8744723
D85FBF8855604CAA309E3BF1906E098A5B90CDDC83DC6D30353F31888B95B19C
3BDDE8F5EAD95BE9BC28FB4B8AE4866E663D332209415479497740476A0B0FF1
C9C79483A261DC85C02086893F87E68ADB969D7C68C270A892BEB4A43E505949
83E0E8F015E9837727BD5348ED9945148B2536106C278D37FB21723EB1BC4608
74CD601F301F7897A2F2B71C3036C7D0D2721F8D83E411CB25D4429E2064DF0E
0F411C0450E509510AED7B21C88B122D55845B1681A52DDA80860B571ADBDF6A
214B15630AF17BDCB1ECEACC9E646977AD7D6E9A980050E85C6D1B9574E94B19
F549BA2B11722488DDA3173CDD144AD57A5F8A967FB535A11FC7AEAB611FDCAE
45C4DE5874BFEC4CFBB17BD19EB6E59E4F1CF35F50E444413A5C89CCD635BD21
BE9E578E9B793F809A5FD7331A8ACFDF3A9473F9B69C5160E0C5C2BCF0CBFA78
81C8CD589FFA5906CCFD85EA3CFA2D598CF16FE257454A7AB5E6CD928F5157D5
9B96AC8E0CD4BEE6EB868CCD67FA5F8AAB6CDB6AB322F361F42CF624FB947BA6
8F8BD448DA996CB833C6492DDAA33419CDFEAEB44EF3DCA87F86E08E2F32142A
40638F13B674223DE58C22A34A6BC5A57DD62D7A8A215D730937A9FBA04C8851
05EAC8111FADA0ED66CD6C4C0731028C0D71FDD99FF02A5A00E01939EB99D243
02B43A470071FD1928DB3A1BF6EED239DB0777EE52EFD285EB8BBF011CA65E1B
432106A3170988E731E6F54AB27DB02F9DA052020C67A9575DF7105B5616721E
6120337F92B8FDE24BEDADF8BB94D1CA9BE117C240419E53E3DCFE1E514E65EC
BE3D6E2290D84BE63D561B9D04D152BA22B80D0BC164C0372EDA2FE2F20C2165
30B6144DBC697EE78E84070767A2D0BF7BD5465522B05E1644E4B7D9ACD66446
FF9F31DD1830707EF025091076713C5D44585CAA2D42DA485132A8CA5B0F38C2
D0B19B948808AB1CC74F0CF3DA5A16DF417039F833DD80BFD70A01FFE8FFA306
A03F1E2A37381760D8CCB2B3931DD2409A879E385C1FD8B97EF39DEF62913486
5FB45DDAAE33FD2DBEE27589AB54F34AECD8F8DD2721F78E8E475B98AF9A78D3
A55DDE1905FC2196B4ADDF4965A80A6357876F198A7CBB3B69D9D2E594E17382
10258A1EA1EAF09D2D38C6DDC46444BA609922403342E1C3E7D2E33BEB461F26
1B83849BB10A2C2D0A0E22EB35C4F6452B5C2499ABDCEA920C2F44F284EF2938
5592AAF1DF5B008D4B33BBAFC6B12371ED1E37D97C94CD733CE136D7AD724F3E
C36978910EE68C37D57D146A87778157405355192ACEEC1B531E2FCEBCB496DE
D75F2E04CA64F16DEFF7FFE30E9F59F803B276ED88D1A4C38FC4BDD1B887C00F
CFBA8AD70DB3E2F5A724946F574E51A4F0856DBD4F16ED818DA86AE0714E284D
97811DD14E17147E733E770EFCF619C134C2CE3E5957043C6A68BC62E47D036B
593E14C73D64B02134B9ABC84E0757A87D5288F604BD5ACA8134A83576E5AF82
BE366FCB4E5CA58AC6B8ABD9F69065B87CAE2B9215D97651EA0B67B1649C242C
3981F79218B2D64D73D2A01FD4142AE756DB827572E8264668ED8164B187B7DB
7A46A3D44FA027C6AFDD6CC3A5AE25BCB7079D4598646F13E55384BE8F0A63D2
57A3FFF2500BCA92C75F6585BBDCD77CA18AC3A49303EE68FC21233DEC20D58A
0EE0CC0E32012A3FC4E7E05246D7A2E405E2A4F2AF1CFBB1661D4AEF3429B635
0ADE31F82B0368F3B860AE708CEC8F10764C6A28A1021C613B33188536C87481
CD8D8BD9DD43AA59DA9A6352D71218D22F1C1AF8BC8204F279FA4EFE5595B1E4
A73217B6DB97461C2EC053CA20DD52DFAA00CA9C10322233293C0C4A0A6D5DB5
DA93962CB702A39D0AA7082BC93AD6C2207B3A24DC94B55B3B73B20B92E9B925
74A803E797BB92DBF703F136658785606D99CA5BCADA69BF73EDB089788772BB
8409760EEAA8C4B60D9CF9DF68CC7E27F3B72D25A2701E487AD38D655C75CF4C
E9014D1A9AEFA583539F4B5040FAB0CC973B13AE36417A6F274233B893C27DED
519E1E868E8C5D2CDF09E80E67186CCA2553E6B6B96EB11D1F67222EA687F67D
C1B9468108021354BF9263F3F4C888327919329E1F37D1038AEB736403A5BB4B
76C8F07727E976CA34405F3FFEAB12D2B3B280C971680AF4A49BA6456F19DD2B
9E63AD5314C6B96E63AC2368EB6517270EA54AB3FCF417550EAA6C3EFDCFA27B
18E52305C70A235F2BE759ACBADE9C5C4F4B313CA7ADE54CC4242AB7C3B55276
F2EFED4B1B3F276699B44302B542453AEE770827F34C511F176CBDAE254C48EE
52FE486DC35CACDDF9897AF023116CA5E394A0FD7BFBC11224D14EC4FF0F0848
26D346BEE2446B99458602B32E0105399DF1940677147B6A96F7305B126D4B02
6388FB94EF35CF0D3553EE2B9416DA467A97AE213414F6B41DFC4B80702D6B1F
B8ACAE64437AFC40240342E6CD215153196D3F2B9A2A918B4E6946616DDA38A6
1B619D0A96865DFA03727846A1EC3D301D1D91A3260199853600D72948E67A18
33A6A5F23A8F54C22B62C39906CDCB8847836A942E31E33EF8B4C1E896916CC3
CA038C2630120855C9C0BD891298474B8E9375349EC9F08FB8774E3905669CF7
3818867557DD46B88CE72AFA5AE9A20EAE69121F3C1C51C879068DA68BB2C86D
B04AC89D0E090355ECB21C08644F39022DCAD6B96C2A13F293E1FD6DAA7612BD
7FA038430ECEBD0B0B56B5D375B84D95FBEDB6CEF937A2D44A96BA3F5CFCC43B
0B123B51366CA2694288F1F5C974DDCA89A9B530F67ACA443E80671E22A0D335
06F160C743083025E2EAFDA6FD3E4FE7D456F5AB178B8DF418005CD6B4FD012E
F74A5084ABC9E491AEFE45A852D8D3E2E8A83CE35122498C09CF973FD76F758A
D459CCCB1880A434F36F44C2F9DE6F33545E295F1F2AB7AAEB2006F1DEB18B0D
E5038AC247133B0CBAFF8F7825C3DDD136E2086AF622B0775AA6DE5671493367
E8B2D95F008D1A558F36797B4D10CA927063EEFC58A64ED2E53188F4A70F988E
A826FB4511B5F4B15269257A53AFD08BFF7B789D55E59B936FAF0F2E1BF06377
0113B6AA552CB3D7E21027FF8C1082337B76D8D3E804EBF8CA4236F32F6A796C
9D4EFD42B0EA666BCB0D1ECA4C29376EB82E45604A8FA9DA5CF83EE019B52A4F
270EBC1667FA7DD33B9DE304DACF792FE4BFB50584628A0D6AF62CFD92070429
6FFFAC798078B19021CE7FAE69BC3112C6D2BFDF4A3C4C0494D4771F5DA0011D
4661B278950EF4F35DD1FD7B5592DA15B296FD46EB323C019F21AB7D67DC1877
3A1E84E41034A2625E88645258905195441BEB86D0A6F0406798FCFB5855497E
6C5FCCCF80E672533C392B727EE7E1436957FAC4F05CD7088548F5BA60D5116F
9A0D26213767BEDB9F9647F79F55AC1B60602773B2197287EBCD7DDF890C9EC3
83144437E467FD6E1F141F2EDF826243E65AA0F2C28AA01614B821BC260DB72A
1A818CA347C18FA174E51FEA50BC1F65FA1F37B296B400FA11343E91B02CC766
4658AB25570894E270E5F5D3B9313BFCE2AABE35B075ADC3E1714B534A236CF5
FFC0704A7F7B368BEB86371E8F2F40918D0B770BDDB778E058803407A0BE97DB
C2FBDFB6B2C627DF829998C3A57636E679C934B90C59DBA1546302D663253859
031E2AE6EEA9C10C7C364BD89A93164D1529C96CB38F2D26047A91B895FFA0EF
DB017570D25FC391612A9D68FE36B1A3E2C4FEE96CE5197619FF46CAB44EF6B0
1A7D9F6FA94A429E9415B19C34B9031668F62F6090A39BB96671476C9552ED1F
DD896B03B4A393C48DB79EA5A46F8E3A64DFF16CE655CDC46F204B45C7D16175
A17C6C190595312B8D3110B614A8802895548CD90BAB45712145DB756ABCE05A
8E705D34A834A48B3FF7A68B4938567DA7F99E5720525EBB51E9F551C03A1E4A
CB9D28BA5B0C2306BD1C9106FA26C423CED800CCF5F95D89CE54D354837B4A2A
D44832D9B7B2CCF6A9486EFAA6B98E60366652EA73E2BD8889DEEF38FDAF94BB
A74F8316D2D7B833A7F723C3FEBF42DEA7E7D5CABBBD989A4DE6A8CE52B208AD
31D93F8E48E5D6AD19BFE94B0190817AE783720D3DEEE72C10A3E20C5FAA1E8A
92458865E276A82DECA4EF133833C2B4461F27A03E9DDC828BF695BA1F142871
FC9684F68839479857613EDFCE75DA2BA38649FD7EA4681D719AF7F6AB7295CE
C1B0DD772A1C65F2FFA81E18648E6F81E59C73CA772CEEE87E37A55152A0283D
A0BF54ECF4007005A2A7D5F835060A0A0FFE71D4BEB29CF3372EA6D41EE41C6F
1E418D0972A9836F6E1E28D3F07870E2ECFCA1F42CD835512FBB6D098EF0BB3D
411159CB0C9B016FA379F6D17338026B1E889A466BABBB27E264E085711B025F
4803369459BA0CFAB08E55AC55618B7F8A63F25CCADF01042816809A4436FE54
9A145775C831F5D2DCC3CDF9FDEB54E0244D0D055FE205C7B8D70BA119E7A026
98068476DA9653DC35FD471E7E2202EE48F112C605D24140AADDC67E46752128
C62428FA29D4FF8B755F60E165ED749F5C05AEE732EFA5068DF277A19954E6F7
714977650A20EFDFDE568F05BC111854476D5269FBF6E5CB7F7A08A77405F46A
E9A262BCB60AD8AC1FE728CD5D418BBE878A19930B101D6AAE16BC467263B158
C662EF3B5A49F90C78F1F1B2F1278DB7595538DB73B17F13A9CB32924B4374B8
8E9419D59F65E0608ECA093B5A3CC04DEB4584E8756766D9741460E1C14036EA
FD459386F6547CFFD2C8978CC5E940E52086F0FBA7D87EAE0380D8E811C459BA
717C01FBF20C824E7DAA48456091AD6CBD812D7FF40A963786A9B7B8B26EE977
F39FAEC76C3D973A6A907D39213F48E6BE5BCAF750D289F210583C21AE0EE266
1D6D8F2F763013D02816CCEE6FBF62E33D7F614DA9064FEEC2979AA5C65A5F6A
E5602172F91789BA5FE35F46E97FE29FA2A16F6428F145B177C2EE0B3DBC0BD1
42298100086F8190A20920CFCC71E7413BE2045ED0479EB2F86413877F30D162
81B8F0BA8D0CE3CCD225D7BF8BC105CD4C596EE6E0D5A79E28D441E11DD358BE
0752F4578B692603151918D3FD0B6E0AD05775FA0667F95BDD6F9CE7DAB89F63
60BC4203E33CD9D0F1C6DBDBB9E64BC018E9ADE0CF6881E0F44EA3A5115E3B68
555DD282EE8D3A6B47B0AE84A7BB8BC30F57B31BBCFBD6636656EA762B6534C5
DBDB887D30A0163CE29E31C8E587983CC3BACA220F092206DC8E15197CD5484C
9936D32EC2EE131683CBF38CC767126AF4722821CA631DBC535220F81D1E3881
0834D538C8363941C3225CFD5EDB915412D94F12A156F925F52DE68F1E8A2493
A53237855F1AF500CA7635AF487810D141BE6F60732F7129345467E4FAFE87DE
A3ADFBDBC54DFA3C9CD42FDDA20B4196561788215F92D4E6876BE2631499247F
647B8F2A0237BC3ACE3AE0E328BB3CD941E139CA1949E74A1C596CFB6C4060C3
FA01E0ECAC17962505D1D4A4053D68A592362D53AFAE97352B265449F66AD247
A46F04501226900E892EA1A36B9305050043A3C5CB5DE91464347D65671E6014
B26072FE0B467A08304DB47216337607198CEE4CCF67BA7022DDA04D1F0AB8C8
AF15B57C011313216EADAD5A3913BC96BE3322044750A005F959943FF5584876
20091DE15D337AAAEAD2855C63C78935095C43FA24702C32C2B67BB09170B0E5
82EA11E61ABB60A4C1B3BF95F741DF6126BCC5059CD7C8CD5BCEDE02709BDAD0
DAE3CE1431415CDA66C3192A4B7398FE2C6850F9C66496DF3A410BE466B32B13
C4B08D727A612EDC171E06F497304A20B30EE8CBF6056EB62EAD94BAA31D528A
94593820DAA9342A89659FA1F9F8EA934A54F9328321E5121A09C4AEA91406F6
78B10174C5B0D918941D0C6F3C876A2533ED53DA58A30BE349A5351DF42FAE66
6C6FDAF33D004A890D9685248387F58B1A945ADF10CF738F185CFEBF5FEBBC57
AD37343B8E476FC79898B364325DD2974BB7786551E5915F4189CA12F8A502BB
BF03B06BBEE2F57B8445DE095D2473FF1F3F96F9983460E3EBA33DADE6DCA8A5
FBE434D79125A912F5FF0AC732987502B8248A8B90E803B03D4BC467BC563A58
99BD7932AE0BE9D6D1A06312ADA4B15BE91656018846CB2C47DB109ECF6BF4E9
E58BAD2157CC1E14775F87664031EC2C71EAB2EA493E372D2EA7D81E67A939C2
54F63835110593039EE5F1A7DEAD2B061CA067C496A699CD0B4AA1EB88B1C3A9
BC2017E82E60580698201F01B917B639C84978B3A444145E6D4F8F356701E12C
EBDD4748434C4D7B5C7714A5AFA450BBA491FD53618118C22EE60C7163D751FF
D1475B68E75B29CF88454FC9FD1B065B1C349E1045988D071CD9408938FAA6C7
0AA08049D54643C0451D3AB6260CDFB107AF6C5BFE6B69A5ED8EE125B012767A
E8B9FBD6DAAD39FB187AF6C2E7A4C4BB3A1DC630316BBC8A62420E5695E04471
A88AF0810A1727DC00E495890C8264FD9332253DE12692B189158D7FD829B736
61DEA498E4E0BCA05E70FD26800791D664820771E35E6668D605D073EA22FE3D
A094A7BCE1D76A8D1DFE984B867D859F23B2375F807DA9AFB5077D277195E7A1
8AF27A525C4AC31C9BD7BA74ACEF5FE6B3F31BF85261AF7E52EAB7775E935741
B16E34CAF18709E2B5350558417C32F87264D1A24272383747FDD4328FA9E0C4
34A80BC99BCF0D2C90BBAE2ADAD7371A9858D2427B49E801C5857AEFD3B79F8F
794B6B0F83B1BB3211D336EABC4C790B5560CDBDD9785D086D1505DC128D7419
47418D2A480D16470B7D20CEB61E772E13694ED3A91C1F1F58108E41C8EC7BB1
DA59DB31F0FBF5F8F41DBA8F0E80D428267BA5F8B0B6D6955141F1886A872357
44B19061BEC2E7B7677F584F9B93DB9E1AD8FCFC5DB3615A9F96658D75811062
61DC3F29B71F1AB1812A0DB0FB1FF39ED7DCE758A3BC5C5B0A2B158F31C89B79
08D6937802000587EB4AE9BE6EEDC1ABD021593A9CFAFF9E972647CF27080667
3C253CA53558693FE704A02DFEEBFE08EB209D5CDBA6A05A5A375D30B551EB9A
CC21968C922B6A40B607F598ADC2870D00E6DE1CE120BB96414C52596A56F84B
8441115A900BE5165832AC5B383F96421EEFEC31D61D207232ED0083A6C6A57F
90FD6BE004C86DB7025EFC9DFEBF2FE3D02DDECE9AB07C7A42D29004599C2A40
75829BB8AE6778CB3348EA713DFA93EC986AFC784203D384967C6E865D729FF6
E610AB6EBB570FAE8BCEBA1BEC7A09BB0C85BE7C993BC77CEADDD9BF7688616B
1BEC1448FA1A67C0CF66093E88E076D060ABB02E486920985ECEDBC1328E6C68
117131F0938D804F93AAB5E6407B98ED47CDCC36B8F5F556191543D7CD3B7345
91C003B36902B3BF190CEB5D57B475D60599A41131AED6549B89CDE90ADC0E77
6B1F1A3F26FC00DF44BB22CB7FB283211C3F80271928F93598820E6D21204240
61F62B1ED2F9B89B990B2043D295F00AE6DA28FCE19C7AC0A5D4067BC6FABF0A
301EE9F2EB7135DCA46C8BC14E2FC75BE3497073CB088438DE30B1D7690BC70D
ABC5A096923302B583A60053AC6A93158064233955C99A5782ED2D0CBF438EAA
8B0B0E816FF53549BF0982D8CADC8AF1B28AE4077117B0A2653D5C4E9D38A086
6F594B9C68C739E828ACDAA9C0D976EBE8AE27E268D071F2BDCBAEF128C7FEC8
0A8A8FFAF81123B8CF164303CA496EC2ACCB5C4316F3F471D052E56C21512134
C09A7610A634A3EED8A84D4FE814DB29F605F6187902B9127E142A54B97F9CB7
5624905739774427776DFCA23BCF566330BC926702D591AC4A0F305177943493
A9D49AD4D1B949B797048F295CE066EDE41B75DDD476E6C36ECD070E1D065E21
884D6D1C63C77CE5011720CB8B50FAADC227E5672B6D93DAA269CE7FDA2EE7BD
F2FC9A92DEA9DF4C77342779FB584BA7D0A6B14340B94950476C19F757263ACC
78688B9431163D10FE66EFAD71F07CB64EED598624D24FD45D0BE3664DAD08A2
7F2C9DE6C99FDAF2B2928EBC564628BF8D654983AAF0685E227603864FD16BBC
87D2770730165BAC4C71545EB2A45DE34A8EC8C9919E0F21F107D5A99C80588A
A063CEC92D983B79D9380DF8537278BDCDCF4BEAF7EEA7943BA3463269F8697A
DCC1B7D0AFEA78F2309C342589F274916ECA29191CE9612C6AC4B3A8355E72C3
7FC67A89CC5D3B8F8C47A37609D1E8100B65A6D721C4A727A480DE29AC80D3C7
6C8AB5A5C5770AA13EF4B2AB34BEDD391A4375B0E243F814006F330197B21BC1
F5DDD87ED51E100AE678B15B3DE7A7A5C7B9DE2D03965707E331250304681119
3C7C4795D35DE489CFD4FE803A978CAE938BDC6746E923FB5ED31C4E6E5A5D58
21C960A161BC93F5378A6823B191BC9006FF6418A81A9A4D63480E585226DAB9
ABBA48DC61593091807E60FED10C3FF737129F9120A4B94E913F4B3478FCDC6B
758E221302606F3C48D3CC6A03CBA9C0E4411D77B9F6D49A360FD1753541E4B0
DC968C44C7A0C6BC4B88E756E2B48B2857404ACF9090E0472DB6B8C9237A2026
184D0731E75544C59A1F231855F3712F5713E08D7FDB2A5AC96BF2B79D8A13FF
6EE7800E9C96984943A48825F762BDD6B3A7BFF27B78C80F145E9A1671E83B22
E6DF992BD4DDA0D0AC54B1515EEE0BB073E8D7E697A8C03E189802B3E446E3E8
46F0C02772C6D7665BD6FD85B537680CF6F0F1FBFEC5C24F2B2DD3CB6E96054C
ECEF1F1EE6F272890D9EBC8C14F098C2A77533B030A173F067462B76CFABCFE8
7DBDCF2E8F1A92772EEBAB4F0E64C1362EB3F3CAB743531C2A72D9F95E4D767E
CD310C7E36FCCDC3058222FA49BBE81D11D7095BD9D4C8BCEC76FC2F21736AB0
C356BE9AC49DC22508AE30E5DDA81A047E9D75DF8EBE5667910873E9B9CB6650
43677436CEB1C4BFDD4EFDBA646850044A37895D5333139E67B9268C6A8B577C
A27BB24BE2BDC1C3C912F78EB8B070CE8BC65855F8D2B17A04AE3C6247F37E3A
EBE235A4868DAA5EB22C7F6D5C20BD86C8D00D3BE6D98E882E4500293DC41A79
A5745091FDAEC99162C5CD5F900339CFFEFCC1225FAAF6C1B6794D805D05A300
FACA93094D6D1A9E82A817715EB3483854208CAC9CEE6F02C3E4A1123DB62BC9
AABD514F5D0706E7E847F25E3912C1E7C06B4B484C729CE535EA0BAFAB3DB8AF
A4514F5258E05680D83037C5A35B382463A5372BDC8137251FD5C95320644C8E
925F53CFEC93DF7A9F79467F03DAD5909D7FE03DD2F0F24C0E321F10D5AEDE2C
FE6F1DDB6660A54155EB4D212E776A6433C43D47B49E2BD7BC62544ECB9C8B03
C1C92A2DEDEF19ED9E204583499A4C4DE8D59A5E313E701948D3A880D80EDEDB
DAEE9325A154340E2AA352B11535DE291492D250EA7C2CC4EC62B8311252D39B
1B66ACBA03949DA174603C5079FF8052BD7D828A4923D3C4A08F21A14A1E8DC2
768E3D9416743467F5D624614D7B99868E9D592075972A073140133E2D610994
B2CE382A39A884DA2C278E5E140C6DA77EF72929CA5532B99F3952A6E0C48F23
907450983D61CD8CE4E77E5A44CC1934CBB9A0B4E0DF374E3F06B1B1E25A861C
A18D0FDDA1094EACB0F89BF36B033B50CB881F2BE7D463856D0DB729FFB10AB7
7CE088F3785792575F519E22C0B8DE684830549C5AF6157BDDF42EA0AD3A4392
DC3457FB157B7691433A9DBE5FAF7B8367CC96D9710713311E42401834CD1138
805F82BC8A02C5827F9FFFDF094D3336B2A894CDBF8971643C5ED9685B0BFA8A
3652F038E9351A6271AAD22EE935D68B9C7EEAD155758D3268342D290D7E63E5
DD3D5EE23DBE8EA288AE9F5AE83EA8153676F71D106C4A43FF318B8F02138037
4B63DE9ABD94BBCC790823CF19301CF85B53C83630D4242254A0363E9E23C9A5
26E73738084DE89709A824DFC046D2B0605494EE75FDAB0014C45DF45BE845DC
096EE718D91982A72F7866C8D858E6EF852546544AB6249607BC5DF075BFE0E9
42411465B2B6D56FF7388F9213E3BADDCEB61DDCAA837FB651DE8F48C9403B93
0E7CE0A62691EFBF1E821E527F826776E644CE7EC013B9C4D11400793E114FB2
A715471CC36243100F92C51DF0C577CD374107B5B540AC779C3D22D55C6319A7
B730A45B3A980F13F7259A35EBFCE27A8980103D99DAA14AF4AE1E45DCE7CF95
D7F705798627A7DF99CE9F78269E89A59B0ED4BAFE1D04DE5C235D8E443F9D68
79BDDB4057C599E4BD70151D3E2492C15C4EF13E71AFB8F557AC70D2BCF9F4B3
1F126199BE1D461F12C03222EDEC74066D2E1264F23C6F183C8B09E67AD1711A
FFEED6F16781B90267020CFA006034E5FCB193DF10DA8CF67FFDB0D279D619A7
630E3C664DBCC0D4B64A08A884D7C2A2AC977DD03B570B9C957985AE82BF2597
30C9C88ABC2752AE37531010D71B3DA9D7DC315C3B498EA3CB454E8A2848A527
0F05D7C76F67CB5040E2A90D88B1588E56E35A3E2D97088E52002190F5DFE7EE
C9334DED5C982E64A53A12AD6215A747063745AA5073E0F5A3142A61A985A2B3
E75898BF2402C85F971B1ADDD23A442A8884885B47559C13D35F878108CA4213
D137D1FCDA52E293CDB6C752ED03EBF744B431F60FA2C43D846A33B498FD3013
081D819BB01A1DE2C870B61AF118F8C540395B653A2EA89153E3CB680A18F5A8
9EA34C470479DC4D3E6F683414D4AABDFB1FBF156E17ABE421274B8DC0FC2BF0
5DDF8F54061F0C5F883B45168C181E9B1B5B16F3BB5B13249B8D95E3BB9895FA
655A6A64961B0F9AB4636244DE2ED1417AB8104A024803BDDBA86417A82960E4
47FC9F2528354E6AE437E5D37E8DBD953481D4EED7D8404F36056350DA7E2F1E
0EFE17844DEDC3DF8B04FBDF8311363DECBB332F678C3BEDEEF068EA8139597B
146FF8DF4C2908C861C4CCF61BF5DC73C2E80F1715D6E7EA55D87DB671D8284F
D3A5D38ABF5E0F0FA79EF18A24888619069BEAA94DCA34883FBC2AA602E097FD
1FF78AE239D277FEC6E72B87A5670289B989727BD46DF116C0161FFF0323388D
FE20149A8811635D6C3F5E0AF28123269BF892B25E84E2BB1291179F42BAB53D
B975B18D9CD425009B521DA7DEDB9235BE50AB76E90FD3A1E5ABDF154BF1F212
6D8FA5BF6853E51ADC8465F81BD8809E5D56A2EDD9D1ADCC61F7A27E583008B5
C9427A184FDC9DC636769A664AFE011A03F7D5BF99F5AFC6EBB5EC25A8E8E658
D9CE675C62076A58AF101A24E6DCC6B1EE8412DB6A49619DCE941D10E61205D2
7778F7F282C105A85A0C2DE935CD9B017894B72644AD8523C33C61C2FFFD075D
C3D601614A65E4FC5D145E939C60F1B97CE378A686E1DEB4FCCFC61FFCF64FFC
142FB601B6F73BA1C8046BA007DE44537D7D2971AF5A6F2376950527352B2EEE
B2B49F9F8B3ED58108B39841E8F8DB01537855A5DDCC8499142970566D0E6EF7
1A5B83B3AC12B5A984A654E7ABAF09C1624923E6582E1869E954A3B34749CAA8
A43C6925F963F03C3CF841F84B652583E7284D727A4A39F2D2ABE12B2884EBEC
690BC8A586B7E20D9D262C3E6ED7BEA1951E9C3596D593B7E9D064FFE88E98BD
F070AC5E31A871898E0DDA42FDD6BAD1041BD0C4784063A9BF35252C62877FA0
D7C8EE94DD3AA66A8DEC3000D31C4C9073A38468E85D9A376A3973791B54B8CC
020971AB2A8402D65733945DA1804F1FB054516A57C817F4200CF39DF46C7E32
3EE698DE046A1C487E847FF329639298D8808E3571AA4D561AD77FEE6C26AC4C
89C057ED8563E5295E4AF659968B52AD102C0B566DD259152C1AE2715A7F928E
BE33131776C9DBCD38FF2DFFB25034325D4071FA7CBC1C5320BFF4A136FB718E
1E6214E3FE1A0A303767F19B94DE5C1DF55594A5CFABF131C96D8D65C4ED10AD
62200750D34C2599BDD17626300032421EAC1A2A241FDD6743DFB458AF3F5D1F
C23F26E0F906B55A6A37519777F62B4417482CFED2AD1D92F81F083AD960DE64
97C3EDBC2C4BD9E34A18FED638CADACE73FDDEFB6F45DC61F30C1EEDB4E2F98E
8EF8567912CDFB919F4481B550CFAD7D70A6873379B2BA9790748966C6C425EA
88553D2BA74FF4E79BEC595633289DAE186B9BEB6C2C67CE36359DE284D3C5F4
996A0FF4C19C6299905021961C27BAA6082EBFBEF918EBF6FE242276FFB7D726
ACE3EF0828B9C72D48D7DA5988574EFCA6D1D8EB252C252222246B838F56FCC3
68BFE7A2897E2B9A6B454A82702678DC0B5166143583B9D4ADFB596550413C96
19D91C1F7F0579982EC079D99E42ACF78940898AC1CF2C0036CDE58063BC2DEA
B8B24218F21D06CF0CB896B40F3D62CFF00F2D1B9111F6799C4724A587239068
0F6413B2D8BC4BEDD93FCFE22B83688FB99365F14608055D30A7739219EF724A
B839003E4A3916C87CF9EF77E6C2478E991ECD3FEF865943006A114F0E44F0E6
007F59928E228A52134F0977281D54C666F587B3446C392FD1F7C46EC6CF7B9E
DADD5016E7DBBECF47992A551B0957BB9FB4F68820B266798E82024CDE02002C
B6D74741835942599F23CFAB0E172814606CB9B6A179F04D04A600106EEBFB4C
14C4898D09D9BAAB293535AFD00F2BEA37B5F8B08C21E7273DE099CE90389903
8C9A5E5625B3782111F4B04807831954261196E2C9BF921F1187E997E3CEB0BD
6143BA7217252467F6E2DD08AA2263C2AB30E50EEC29F8033040FF0B0459CA38
104A381CF2437B2E8770187E5F033D5FBE979E9FCFE2F7645628BED611589E2A
29F5DB02267069D901F7AF09328E751F58C45D9CF75AB7BB5D01BF0D87203905
7741DCC1AECE9CC5551934090DD256ED63168C1B4B54499DACEF3159576F0D83
B1B9BB8CE1A252A7402DF16D6F9EBF8B1FA141CA06AC86E3933F2E723F4F5E28
0888F9AA718ECA5706FA43FE6306E926D6D3AF5BC93C4A560090F5F095D749FB
5E7BB7C083C3E85A8DD476A885CC9A1D76201CC848AEDA532796EC85919AD872
618962E62BB02101C344E2CAECCC12769EF1F4D64EA17057FF0BE9CA7B7EC16F
E4F0B6A611647AFD96C8445541C22E9CA0291A5A3DB146782E4B5798B9117AA9
7436E4A83DABA97096B954665402D7D93D4DDE10B1AED2A4885AF2CE2CD704B9
2DED9CE4804C7E9CAFA6D9604F8A23F23158D0B2F4662B085E9D1CA7C207AD26
62B22211F8296F408427FB2305016A475A0894F19D204EEA0EF85C5C057CAD2C
BD0E275296F06B9714BE5BA1181841FBB5B0D8864EA5D5FE4C5AC6E3A38568DB
6C050808AA48C3ECB59F3134C6825D2E59057BB64E9E193DB2A4441CC5ED9D5F
AE2DF16D8B92C1449FB8D9C589A60BF5CFB7F8443703AD68B8B7B291E6E60C8D
6F551DB00C0E5154F1B7156E523D59DDC83672FBEF77D9FF22CD06F6F3C47847
2896C95632D672D90137774F56B12A0641A3CE57C55B6315A7D562485A033DC7
A603CFB0493D759F0A547C98283E2C225531609203AB93FB57D2A73BC2260BEA
D0A2737FB4E75F3876B04347093A43DC9CA0E8273CED0F5D644519C52F165100
4D726DB0FBD53E5C5464BF1EC7C1598B695D19A230B99C0BA73871BF73D6AD50
8C018FEFCCDC886EB58CA04F8FB09B38518B9F0ED87C7B71E23D11498758F391
17A0746EAB0E557CD819F1C412E241BCE3231DD1E124A9131D9B845C64003231
D867320B58871DFF4FE31502913EC5128084FEAB2E67902375B9B04CBADD5B05
22A718571BF42A44AD6103651591E9AF8EF71F8B74F2FE3531C5E65ED4CF596A
7A15D63DBCF8BDE1FFD4E78D67D89BFA59AB1DADAA857277CACB0ABAEED34E2D
062D0D01A1FA18DD8EE8C5F318ADAFC9EF1D1BFECBDBA9D71EE514D77025FBAD
76975965F8B514C4AAD795E970535FD58DBDE7949F7C946AA0B0D4120E168F30
9EBE843BBAF293EC8A521E76902E11A5D83B0EA5A5E2D97BD56A043200DA9289
5FABE2CDC96D9B40CC29317EFCB81124EF4BD587616BEB1CA83153F1063C5CF1
5A995B4D13919070A4D17EE1B8451CC19A1DF812F45E5BE7B67E26D00F2D2361
9733E8B629E152ABB1FF43C5DC78D86D97386A124DC75E6F129B556877702B63
8C97D284EA759D6B3F46DC26B2EF0A1C3AD9151199F41E175E2367500E1D5634
DE6A023B20C6EE2B6E6A4310096780195D37394EB773EC9C9EA08A3254E4BE54
5A3CD17F59FE94208DBFE84617E91FAF56D10DF647A11420EC6CD63A0D7ECF18
3CBBB63696C19A0F892AA6AE5EB02858025644ACA537CCC0F2F87B009FC47A74
20123D1E13CC769BACB869AC034456420672AAF01076167D5D889871D2AF7FE5
0C6F379C40F0EEE8D29C67AAC1885C4F89B477981281837831FA18BA009F57A9
5BFE943F9A77973A6FED91ADED1814DD27619D15F52A01D940708BD154EB2BDA
FFE9EA508B8B332764B3BBD0FD53E48A627A9792E5B9A794A19640A9A43F9C7F
874D4C43A6B2B21504F4DB42DD9B9EF33D6AA6E0CBEC3DD7A47B397E58673451
6FEEDDC8ED791A2996CCEA5AEC6F4EB4F57C1863D81AAE5319C124476FE9503D
F45F89D9D9571177573C4BEC461E461CF1549C42565D62A97BE3A597B79FC2FC
F53C0CBBE94B38BA050E0927C01E452060A04CCDDC0C8F7D91132A067E13958D
AE7249E602B685111CAA9B9EA86216B61028189CC2F87CC7F4336208709067D6
7280227D51F9981084F5CFD79C64E8443FE80F09E288014895507F96A12F04AD
E983D014463EAE0CCE6F31D9FD4F625288C0F1DAE1CBF745BCE6693BBF5D4C71
65518FC4962FEC2917A5572F0CF8EA6FF7B6D98B7469FAC59ADCDFD8E6775699
4BBC7F22A75545157651EB87A6E583E8CDEF616C4EDFF01D6EC69593F000BDDD
A03D4C74B16F4D5C53E7CF10A5C9DFD8A3EDCE8937BDFE4385B578FD939AA7DC
EAD3AB10397D76A0E04C59A0D579617078D45D1828B1D3902149458E714F7CC4
A647752B2811623FE147E7D50C8C16A5B1306A0122C0EDAC96352AF52ED628F5
199FD993D11E38E74746C5839CD57413DD447ED4AECE0C6B58F9071948E23862
B06457C8791F8FCA072A92FBE7A18399FA7F8AB08414C6DEB62E3E6BBF1BFFBE
B6C4C0218C5A17E06ED1FFFD729E0221DCA39EAAAD1D90C4109B5EC71ED8CEF0
DEB23A5EEC31617A6E3E4176B3FEFB5A707C867908BF63B87D810A85359D896C
B833DBF3AAE5EBE42FA210262E047D6A75E3B0752495B2DECFC107A741B2BF48
B53DAED1051B1121C60134874BFC0D40A2973FD5126FDD779904BB25BEA70CE0
C62DB565CB78E6BF49B2DEC400703595DFDE4003914885A12E3086C094E8A348
0D2BACE3E2F28D9C43F033AD7CD123576E27E0DBA2A4138390CF76102BC3CE55
15DC700073663BAC395CD0DBD05BEE4E0E8E3E5BA2777A4BCCE4966166A74844
7540253BCC8B50230C71DD87B97FC585C9B567CDCB13676D9B4959614D8B964D
1B1D49B46CE994D92CFB8DCE796FEFDA5F2F03E20657025C6F1526654B46700E
97A670DC12E7FE8A2C063BF4958ADD663D640A9CA1D696806900575D5CC706FA
5875CF2298F25A6271F69D52F9231570573AB8EAA99E76D42B440FD66BC6215A
53746881D00968F75D02874383C72BBECE7EE74D2640F9034DAF83B60A2E4377
5D660E3F558B825D1F001A729980B81E1D6D6062160BA4F34023DF18B1F88822
DD9FA1AE09EF9CE075CA33C20356C3B9FCB039881E406E74F07B3642B573A71A
FEEAC8BE94D290EAAD5C9A60A4BFBCB86692DC8CEE820742B10E13807749D4A8
74B8C958845249B6A7607CC59FF525EC23C1DFD26214726D69D1B0BCF683E8DD
3F838B3E8D75D53856B34EF56051748ECFB339424CF63428933DAD5348862639
A2F0C6BC44D09CD0247F2A57FEE1710C4CDA7FB5DB0299E667A5FC2819517535
9A9BF0FC617BB348E02E5F93A1EE14DDB76C596D1178027FB7A3EC83ED0A0DF4
1CFCC1C82082767FE6C8A8FB37EF2CCD90F948DD00CAD8125334C8776824434C
43EA0FC41F29A53131E83D319D80C4010D39B0393EBDA36187DD31490B481DD8
9CD86FECF9A66BF3F84CAE3F343474B7A0C577A235235A690FA6E99129F79BF9
A01C6597CB4C116C81FDC847FE47B7F74E70FF846EEC1059930251B7BE55E08E
72EBA76876593BBD502CEABA3C073481AC6D23D94F951A6E7955DBADA3B3ADCA
5016620A737E34B199F30717FED6698A1E6D5F0F88DD55ACA250ED0F30221FFB
6F5CF50DE198F86FA93FF7E282BA4E3CE2C45DD510404CD6D6AAA7671578A708
8984A38DAB4AD4CBC3B1E315CCEDD0E08ADD15204C2A43FE569EB241A8AEE20C
86897D712F507E8BB8F4BD70C7A7ED46ECB26EDAE125B86ED5E06C14657E850B
449697E41447FB1E6B60F8E401086892619A60DD799026FA794275B57B87BEBB
F83B33DF9FC2B19F1073D6E30470E4B7DFCD8DBCA54B54610D632CD64832D80D
09337259A06C186FB414B01F3486E908B93CA01CE54EC0077AFBB58D64655E08
3BF6D925B3955CF3EB446FE8FC341CDA4A9EB0F9C23F1679DF5B4C94A55E93F0
75CA0B7114662B7E799F8449E6DCD7042C501C1E423E2291F2A807051AA3FA44
4A5FB34650C6FC1196D56A24C6699E500090CC419E5E3887C4EB2CD3DF58ECA4
FF621D74F9E4242CB3BEBF2BA7B0D8A06BD9BD2AABFBD22ED22943BF9D0874C8
64DFA6641E97AFFF9C1D39E97B8514CD9FB4C4723FB697BE96CDE0344E9E0CF9
0A3DFCF097E75FC6DF57AEB51D3872EDB88BDE5786647B0E5DBF7F2F10AB34EE
E2ED4537A516F92DEAF97C91B72BE23E6D0072DDFAEA7D16A32EBE0FCB675A6F
C3717808493F4432E15124F505A65E3FA425E3304F6BAF9D9AE97952B6534810
BBF84FD271216874AF8E662121C2420AD0C1894EE8244BA1F290135264442F6E
B0AB86B73247A8D43DF89B2606EE01608F4C0962EA68AF25E6293A645D9BFB58
EFD671235252227472533A79F84FD13FF4013CEB0C403F1B6E6690F239AC533E
204BC03616AF59D2D2D202D185D35A43D0594C675082D377B223C3E06451236D
A9D6DCC78B9259BAC0165BDEF4CD8545BCE8E0991478DB08CBD6997808E6D29E
62D3FEA575FDE9B55C84CED2DD93DE6623469E81DD4FC1CB52993C304F7CDF9F
2DD3B3AA3B3CA0B04F4514C0F1AB70CF7BCF3A61F9A65D47CB46A6AE6208812D
AB8EFE728F801AA285472828C732487C08EA43925C8AA110AD45A23D6CA4948E
6BBD232DC90609FC71CBF2F78CF90AC43D59D115443901831D13C157DD4F6A1F
080BBCD632A10D4C998C0162EA88DA453AD12D54FD01AD642C248068564B233D
33AB02481D78E47102DBC37398A2E44E35F03A7CC8C8E1429EDE79C2B476965E
F6D67CC9668460740BB942F58418D085FBBBD1848CE4AC7A23435C51E6D10BE2
9D92CB4C21CF011ABCE33DE36735201B917BF8A864B3DCADF247BCFFF427AF37
C3E1E989083C7AE3C4E7F5343DACDF8E94041D20C1B58C6FFC1C0B7551BF2719
25B06FF07BE60BB8ED9B0A6020AB862A6CE9E20242BF9AC59BB65E9017878599
AE5D7298267C4CE36E5AC7DFA24E45EB2B523F0A374E9DC8EE23F6D3FBAB637A
AB5B4FD0BE08CDF13509C70F69EB554798E22C1C547D05D835B933F830073BE6
31E3A23326B6F2E2BE71987828731AEDF1344167A9108B4C5BF11771ACBF9E6C
BF5A82AFFE0746331D04570A23A9B8483EE015B071236C307FA886C28C857EC0
04A62FF93EA4A1A539519F9DE4A1CF436873184438B85979E878AF29E52552E1
B9A91EC60FBA87F77CA41A5B852E22B46FAC2D5C57FAC268C8BA145088CCA9C1
A10ACF8D38205DF016E69A13DDC39C0B211C462EADCB1A356679D89D0132DD86
75A784CAF1C2B3411C34B2BD0BEA983EB227F2B586DC34DFF431AD00645DA551
735086FFF5D09C83C32FE5F998E59D
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMCSC10
%!PS-AdobeFont-1.1: CMCSC10 1.0
%%CreationDate: 1991 Aug 18 17:46:49
% 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 (CMCSC10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMCSC10 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 45 /hyphen put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 54 /six put
dup 101 /e put
dup 105 /i put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
readonly def
/FontBBox{14 -250 1077 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337
900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA
87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98
076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518
9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A
FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD
B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9
CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30
40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D
C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B
7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5
FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC
81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D
5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90
CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6AD4B2482A
0E7D070D7497892E9E942DF58E88CAF0C8221BF36BF7C435BF2C683A4A2EF4CB
E85820A8AD3486155A40143011BA9D76297F46DEF69ECA4596D6E4CAABF84091
22A96A4BC78A8DD072FEB759A68A44BE1164638B6D952147EE3C628F9A022060
1D1941E73310943FA782532ABB1116532AD67AEFE0758C051241E301C7E13A98
6447EB0180BF6799814BEA4DC0F727D0A40B7BC3B1269CDE174453D6A3C4479C
146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EF8CBB7F86CDBC4
762D501F8A6DAA2C002FC0657EB29B3F9FBE8EDFF7AD60D7D700B1E8BB4AE9A0
D73B1E91F9549591629ADB330A35802D5D044A38E2AC6DF59B745920DACBF793
F5FEE93D47FEA1DFCED3E17315E18BEC7BCC82421F0954327131409D0FD7949E
FF1EF9DEC9DF26C69928899939E868347B53C1D1A5B45495CB7509B8D6DB0FC2
A191553124202EFD040DE8E5C2612D301A91F7408D749E9E0AFCA069109E559D
FE5BC73A4290C4430AA04C74B00D0DC54518728CF149427A0159269325708E92
8D764F43071C9CDEC8DFF1EACA97036809131F0280A51E8400F708322B484B3D
1CBFD38E34AB6846528879D68124D71DA455475DF0298C5FAEC9DC070725641E
69A60C14D93BE345DC49ADF9B35B54F0AE7EDCFB7C3F9933172D1272CC76086C
365636280E2674E78D3CFA47EB4DF7DBBFB79EEA02019EE0A81C27033471C470
F436A621AC0664D48F8592E96EB2B76BAE52B8C00BE51170083FBC60335EC0B4
2D1B9A4B4903E28BA6E7D6C08A0A3892072AF6F62EA3D46B79D947970E3E1762
7F714E145BD4AB0A94DA09FC06210B362F3170B936734DBC1637465655D4A7D0
C99413A385CE8829F6C499A366F602E8CF17DEC99A3BC9511B0EAD6D641DE491
3BF76B8B8C815018021CAD7A64672FBC32C10860EBBF5556F77591F05D131BDB
5922782B5297B89DD89705BAFE5B31382CE37C4AD108DDC2ED344F09D1D08B3B
37758E2F4936495811BB0D05ED082A290DBAD2F7690AD0CDE8286FE4BC13176B
ACDCD745B562202665A59212BED7557CBDC7ADC7AA2A513C97F80BD9DE1E380E
F5F0240FCD0C759F851C19DC98873BA7A09DD167504B3FEE7111629A89DA4AF2
32BDCCAC8F67D39D8534256C88933F5B2E54B0BC51C0EB500C52334E564B3D9C
84231A69C62FEFA868A2ED7F5EAB35D752A7CC5C7AF78872EDE55E5E61EA06B3
9F457366E3DC8864C281411F28ADA155D7A1433B8A68A3C3C66A07B55FE78394
4E3859429FB04F3750B9E05B2AD415D4C1F80B767CC9F54497BC35210721BB88
46840A6759899E102527660B14862932995A33D95B864435A22FD6C9566BFB77
5CFD0901C4F2D810AF5BE82D2A2B7C70A046414C5069CDC9D771576D2FA27C2A
AFEFE0D920E44735451B97757CA5EDDEA0EEBC612A19D963628B9B7410EF89CD
2825406759959C7056A07568FF0D36D7AE561EC8FDD4E0923C66C7409860424F
CF1895F17E907A96A319299877F8283FF339B3DF242C76EE7C93869E2BA53B8F
838D2782F34B7E27AE419ED9793DA17E9696A38BA20101F7CE561671C436BAAE
3DE130B2449B6A11728D83BE811BFD487B9647C05754D230FA17EDABDEACC441
66603A1D124C39486CC412F5FE9D51BAB5F8D55DFEEAC3509ADA1F7DA71907E6
FDAB1CFBC9A295B675D650111591461AE603E64E28E2AEA8E10DE9520EE65FC9
A39B394BBE7C07D8ED12321CCA1A93F0E2FDE9AE9F5DC8863401965B3D378D23
5B9F4A0B8979000334F35AD6931B641CA1C9F7C3890A9BF42BC51DE94283D8C8
6CFC4F1BBB4DE9707A7C561C27554F7CD561977894E4B5B2C2F58214F8915277
B211BD8BED42430DD8801FB3047881DF2883CFE6624FB2B673919C6FF734D13A
6362745D038E2DD3AFFC46C690C3047A7D38A71CF30F4D8143BF41D57DE0EF24
0A256FEA8DF0CDE5AD9A2C6A9878AF2A088039CE5CFA78440BD426FEECCF6A48
4C1CEA1727E0FDF733649A93D4051E5508592C45D3747705ADB065359F2358FC
BA69CE0F30CA1824A8522EDD6C1F725482027FF5516258DCB1F7FE1FDFE9518E
A4F3334FA9C4C11A8A91F918FCBD57C32A9A91DCDF4D11A88D831B261CE6BCC2
0D36FE9155CF33D66664EC72EC12E1066715B70BE99E87A862A5139E0F67A9BE
B0CD36EC20B221D4F74E8EEDF77AB018220B5561DD58401A0B0EADB877931DC6
E98DC1D88C1B02625D07D04D5AD56555F5A08F41DD7AE3EAAD51FC4D686CADFF
E333C4CCF661A31D316A4AF1A689603A18926562C0138DCB9A85F650B9BAEC14
716980C153C6CB8770F26E1E0600D818A7719A62FE89A481676156668C66FD23
7D82414BAE8A2701C3513E0B2C31770B4942106BF3A9E4CFD001BEE6C8ADEF46
6F6EC2FB67A605CC7A90A7D1CA087C4E4A2DBD1417D4FEF9FCB18D7CBE97B0D1
C4E4022AE844E81454631B98D5D9972BE1120807A18507D2C9CB5F1C12A76A54
E7CB28C483BCCD24C8587B1FE74BA23A40CBDE9FF62C4FC97430DDD7C100163E
C4375A506316BFFDD8475D4494C3AECE045048D5DA1C77F12649303B0B423347
C5F409976A16581755BC76E2CBE42607A0FE704B8984AF5C2484079464AF25DD
9FB7702F84C067A2BB7A62673DAF8392141B439F1500B1A3CB3B8A2A0498374B
E8EC5D6E282507BB38270CD35764C4864B000738FFF043F79A37C88402C31B10
2F6E917A40D22C9073D28AFC8C2BFBC06124B1B3463C791A0FE9CED112F44F9E
42BC3015EBA1643C7A848738257FC3574D184E99254D3933716BD062990EBFFC
2BF1D1D01983240F04B27FC0661A7534F049A8B77A1D686030133A1A7868E370
3C50D621E1C8563F8961F5BAD40ECBBCE63BFCB118458F0D4DC48CEC918115DD
19881111B9D7A94C6C9C8211AAA004CCF7E4FB844EC8CC5B5A9DE3F1FE90473E
FCEF3AA0628AF5F7A2FA7AFF3D679F98EBF5E1A7BF413A2E7A8FA28624EDA8CF
F608772C1FB490ED10C910F539954F7B1E74218770A7BDB775236BD5E9666D8D
96E28CAF28F3D5EF548F7CC5DF04F1EE709BBAFA3D7BDE0031EE970D03AB3379
91A3EE2090385EA242C4A56141FA6EB884B6C23F74B94986F126EFD86C3C2F69
ABA89CAC68534AE3AAC11922A511E59E90833F4E018433B020D400EA3D465263
29C984FB1DD762CBD2
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
TeXDict begin 39139632 55387786 1000 600 600 (ip-cref.dvi)
@start /Fa 136[55 38 45 28 34 35 2[42 47 68 21 2[25 42
1[25 38 42 1[38 42 50[25 34[51 11[{}19 83.022 /CMTI10
rf /Fb 136[62 1[62 62 62 62 1[62 62 62 62 62 62 1[62
62 62 62 62 62 62 62 62 97[{}20 119.552 /CMTT12 rf /Fc
131[134 2[71 71 97 71 75 52 53 55 1[75 67 75 112 37 2[37
75 67 1[61 75 60 75 65 39[67 67 67 67 67 67 67 67 67
67 1[37 32[75 13[{}34 119.552 /CMBX12 rf /Fd 134[44 3[44
44 44 44 1[44 44 44 44 44 44 1[44 44 44 44 44 44 44 44
44 1[44 9[44 44 44 44 1[44 44 44 44 44 2[44 1[44 1[44
44 44 44 44 8[44 1[44 3[44 44 44 1[44 44 3[44 44 40[{}46
83.022 /CMTT10 rf /Fe 152[50 50 86[50 15[{}3 99.6264
/CMSY10 rf /Ff 138[74 74 74 74 1[74 74 74 74 74 74 1[74
74 74 74 74 74 74 74 74 97[{}19 143.462 /CMTT12 rf /Fg
141[38 2[49 54 81 6[30 43 54 43 1[49 14[72 1[66 6[35
5[70 67[{}13 99.6264 /CMSL12 rf /Fh 201[0 40[83 13[{}2
83.022 /CMSY10 rf /Fi 129[42 3[37 44 44 60 44 46 32 33
33 44 46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42
4[42 2[62 1[85 1[62 60 46 61 1[57 65 62 76 52 65 1[30
62 1[54 57 63 60 59 62 1[39 1[65 2[23 42 42 42 42 1[42
42 42 42 42 42 23 28 23 2[32 32 23 4[42 19[69 46 46 48
11[{}72 83.022 /CMR10 rf /Fj 131[112 56 1[59 59 81 59
62 44 44 46 1[62 56 62 93 31 59 34 31 62 56 34 51 62
50 62 54 9[116 1[86 78 62 84 1[77 84 88 106 3[42 88 2[74
86 81 80 85 6[31 56 56 56 56 56 56 56 56 56 56 56 31
1[31 2[44 44 27[62 12[{}59 99.6264 /CMBX12 rf /Fk 129[51
51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 1[51
51 51 51 51 51 51 51 1[51 51 51 51 51 51 51 51 51 51
51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
51 51 33[{}92 99.6264 /CMTT12 rf /Fl 134[47 45 65 45
52 32 40 41 45 50 50 55 80 25 45 1[30 50 45 30 45 50
45 45 50 14[71 3[72 87 3[38 28[30 30[57 55 12[{}31 99.6264
/CMTI12 rf /Fm 133[52 62 62 1[62 65 46 46 3[59 65 1[33
6[52 22[88 2[91 9[88 18[33 46[{}15 119.552 /CMR12 rf
/Fn 131[161 2[85 85 117 85 90 63 64 66 1[90 81 90 134
45 85 1[45 90 81 49 74 90 72 90 78 12[112 90 120 1[110
1[126 4[60 3[106 124 117 115 122 6[45 81 81 81 81 81
81 81 81 81 81 81 45 54 45 31[90 12[{}51 143.462 /CMBX12
rf /Fo 131[98 49 43 51 51 70 51 54 38 38 38 51 54 49
54 81 27 51 30 27 54 49 30 43 54 43 54 49 3[27 49 27
3[100 73 73 70 54 72 76 66 76 73 89 61 76 50 35 73 77
64 66 75 70 69 73 1[46 1[76 1[27 27 49 49 49 49 49 49
49 49 49 49 49 27 33 27 76 1[38 38 27 76 1[49 81 49 27
18[81 54 54 57 11[{}85 99.6264 /CMR12 rf /Fp 138[61 59
46 60 1[56 63 5[30 3[56 46[55 3[55 55 55 2[38 45[{}13
99.6264 /CMCSC10 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: A4
 end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654
b Fo(1)1105 631 y Fn(IP)54 b(Command)g(Reference.)1434
799 y Fm(Alexey)38 b(N.)h(Kuznetso)m(v)1137 919 y Fl(Institute)c(for)g
(Nucle)-5 b(ar)35 b(R)-5 b(ese)g(ar)g(ch,)34 b(Mosc)-5
b(ow)1462 1040 y Fk(kuznet@ms2.inr.ac.ru)1672 1160 y
Fo(April)33 b(14,)f(1999)174 1651 y Fn(Con)l(ten)l(ts)174
1870 y Fj(1)91 b(Ab)s(out)37 b(this)g(do)s(cumen)m(t)2350
b(3)174 2088 y(2)91 b Fk(ip)38 b Fj(|)f(command)i(syn)m(tax)2280
b(3)174 2306 y(3)91 b Fk(ip)38 b Fj(|)f(error)g(messages)2389
b(5)174 2524 y(4)91 b Fk(ip)51 b(link)39 b Fj(|)e(net)m(w)m(ork)g
(device)h(con\014guration)1439 b(6)321 2644 y Fo(4.1)99
b Fk(ip)52 b(link)g(set)33 b Fo(|)g(c)m(hange)g(device)h(attributes)47
b(.)j(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)193
b(6)321 2765 y(4.2)99 b Fk(ip)52 b(link)g(show)34 b Fo(|)e(displa)m(y)i
(device)g(attributes)64 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)f(.)h(.)193 b(7)174 2983 y Fj(5)91 b Fk(ip)51
b(address)40 b Fj(|)d(proto)s(col)g(address)i(managemen)m(t)1182
b(11)321 3103 y Fo(5.1)99 b Fk(ip)52 b(address)h(add)33
b Fo(|)f(add)h(a)f(new)i(proto)s(col)e(address)67 b(.)50
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(12)321
3223 y(5.2)99 b Fk(ip)52 b(address)h(delete)34 b Fo(|)e(delete)i(a)e
(proto)s(col)g(address)99 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
(.)144 b(13)321 3344 y(5.3)99 b Fk(ip)52 b(address)h(show)34
b Fo(|)e(displa)m(y)i(proto)s(col)e(addresses)75 b(.)50
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(13)321
3464 y(5.4)99 b Fk(ip)52 b(address)h(flush)34 b Fo(|)e(\015ush)h(proto)
s(col)g(addresses)44 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f
(.)h(.)144 b(15)174 3682 y Fj(6)91 b Fk(ip)51 b(neighbour)40
b Fj(|)e(neigh)m(b)s(our/arp)h(tables)f(managemen)m(t)853
b(16)321 3802 y Fo(6.1)99 b Fk(ip)52 b(neighbour)h(add)34
b Fo(|)e(add)h(a)f(new)h(neigh)m(b)s(our)h(en)m(try)545
3923 y Fk(ip)52 b(neighbour)h(change)35 b Fo(|)d(c)m(hange)h(an)g
(existing)h(en)m(try)545 4043 y Fk(ip)52 b(neighbour)h(replace)35
b Fo(|)d(add)h(a)f(new)h(en)m(try)h(or)e(c)m(hange)i(an)e(existing)i
(one)134 b(16)321 4163 y(6.2)99 b Fk(ip)52 b(neighbour)h(delete)35
b Fo(|)d(delete)h(a)g(neigh)m(b)s(our)g(en)m(try)93 b(.)50
b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(17)321 4284
y(6.3)99 b Fk(ip)52 b(neighbour)h(show)34 b Fo(|)e(list)h(neigh)m(b)s
(our)h(en)m(tries)d(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f
(.)h(.)144 b(18)321 4404 y(6.4)99 b Fk(ip)52 b(neighbour)h(flush)34
b Fo(|)e(\015ush)i(neigh)m(b)s(our)f(en)m(tries)63 b(.)50
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(20)174
4622 y Fj(7)91 b Fk(ip)51 b(route)39 b Fj(|)f(routing)f(table)h
(managemen)m(t)1453 b(21)321 4743 y Fo(7.1)99 b Fk(ip)52
b(route)g(add)34 b Fo(|)e(add)g(a)h(new)g(route)545 4863
y Fk(ip)52 b(route)g(change)35 b Fo(|)d(c)m(hange)h(a)f(route)545
4983 y Fk(ip)52 b(route)g(replace)35 b Fo(|)d(c)m(hange)h(a)g(route)f
(or)h(add)f(a)h(new)g(one)45 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)144
b(23)321 5104 y(7.2)99 b Fk(ip)52 b(route)g(delete)35
b Fo(|)d(delete)h(a)g(route)60 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(27)321 5224
y(7.3)99 b Fk(ip)52 b(route)g(show)34 b Fo(|)e(list)h(routes)94
b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)f(.)h(.)144 b(27)321 5344 y(7.4)99 b Fk(ip)52
b(route)g(flush)34 b Fo(|)e(\015ush)i(routing)e(tables)27
b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)
144 b(31)321 5465 y(7.5)99 b Fk(ip)52 b(route)g(get)34
b Fo(|)e(get)g(a)h(single)g(route)62 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(32)p
174 5540 1440 4 v 324 5631 a Fi(Cop)n(yrigh)n(t)737 5628
y(c)714 5631 y Fh(\015)27 b Fi(1999)f(A.N.Kuznetso)n(v)p
eop end
%%Page: 2 2
TeXDict begin 2 1 bop 174 324 a Fo(2)2535 b Fg(IP)33
b(Command)h(Reference)174 631 y Fj(8)91 b Fk(ip)51 b(rule)39
b Fj(|)e(routing)h(p)s(olicy)g(database)h(managemen)m(t)990
b(35)321 751 y Fo(8.1)99 b Fk(ip)52 b(rule)g(add)33 b
Fo(|)g(insert)g(a)f(new)i(rule)545 872 y Fk(ip)52 b(rule)g(delete)34
b Fo(|)e(delete)i(a)e(rule)95 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(37)321
992 y(8.2)99 b Fk(ip)52 b(rule)g(show)34 b Fo(|)e(list)h(rules)51
b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(39)174 1210 y Fj(9)91
b Fk(ip)51 b(maddress)40 b Fj(|)d(m)m(ulticast)h(addresses)h(managemen)
m(t)989 b(40)321 1330 y Fo(9.1)99 b Fk(ip)52 b(maddress)h(show)34
b Fo(|)e(list)h(m)m(ulticast)h(addresses)71 b(.)50 b(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(40)321 1451 y(9.2)99
b Fk(ip)52 b(maddress)h(add)34 b Fo(|)e(add)g(a)h(m)m(ulticast)h
(address)545 1571 y Fk(ip)52 b(maddress)h(delete)34 b
Fo(|)e(delete)i(a)f(m)m(ulticast)g(address)81 b(.)50
b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(40)174 1789
y Fj(10)35 b Fk(ip)51 b(mroute)39 b Fj(|)f(m)m(ulticast)g(routing)f
(cac)m(he)h(managemen)m(t)892 b(41)321 1910 y Fo(10.1)50
b Fk(ip)i(mroute)h(show)33 b Fo(|)f(list)h(mroute)g(cac)m(he)h(en)m
(tries)42 b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)
144 b(41)174 2127 y Fj(11)35 b Fk(ip)51 b(tunnel)39 b
Fj(|)f(tunnel)g(con\014guration)1702 b(42)321 2248 y
Fo(11.1)50 b Fk(ip)i(tunnel)h(add)33 b Fo(|)f(add)h(a)f(new)i(tunnel)
545 2368 y Fk(ip)52 b(tunnel)h(change)34 b Fo(|)e(c)m(hange)h(an)g
(existing)h(tunnel)545 2489 y Fk(ip)52 b(tunnel)h(delete)34
b Fo(|)e(destro)m(y)i(a)e(tunnel)55 b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)144 b(43)321 2609
y(11.2)50 b Fk(ip)i(tunnel)h(show)33 b Fo(|)f(list)h(tunnels)72
b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)f(.)h(.)144 b(44)174 2827 y Fj(12)35 b Fk(ip)51
b(monitor)40 b Fj(and)e Fk(rtmon)h Fj(|)e(state)h(monitoring)1320
b(45)174 3045 y(13)35 b(Route)i(realms)h(and)h(p)s(olicy)f
(propagation,)g Fk(rtacct)1145 b Fj(46)174 3263 y(References)2964
b(48)174 3481 y(App)s(endix)3011 b(48)174 3699 y(A)62
b(Source)37 b(address)i(selection)2155 b(48)174 3917
y(B)67 b(Pro)m(xy)37 b(ARP/NDISC)2349 b(49)174 4134 y(C)66
b(Route)37 b(NA)-9 b(T)36 b(status)2437 b(50)174 4352
y(D)61 b(Example:)51 b(minimal)39 b(host)f(setup)1894
b(52)174 4570 y(E)73 b(Example:)51 b Fk(ifcfg)38 b Fj(|)g(in)m(terface)
g(address)g(managemen)m(t)916 b(55)p eop end
%%Page: 3 3
TeXDict begin 3 2 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654
b Fo(3)174 631 y Fn(1)161 b(Ab)t(out)53 b(this)g(do)t(cumen)l(t)174
852 y Fo(This)23 b(do)s(cumen)m(t)g(presen)m(ts)h(a)e(comprehensiv)m(e)
j(description)e(of)e(the)h Fk(ip)h Fo(utilit)m(y)f(from)g(the)g
Fk(iproute2)174 972 y Fo(pac)m(k)-5 b(age.)46 b(It)33
b(is)g(not)g(a)g(tutorial)f(or)h(user's)h(guide.)46 b(It)33
b(is)g(a)g Fl(dictionary)9 b Fo(,)32 b(not)h(explaining)h(terms,)174
1093 y(but)42 b(translating)f(them)g(in)m(to)h(other)f(terms,)j(whic)m
(h)e(ma)m(y)g(also)f(b)s(e)g(unkno)m(wn)i(to)d(the)i(reader.)174
1213 y(Ho)m(w)m(ev)m(er,)c(the)e(do)s(cumen)m(t)g(is)f(self-con)m
(tained)i(and)e(the)g(reader,)h(pro)m(vided)h(they)e(ha)m(v)m(e)i(a)d
(basic)174 1333 y(net)m(w)m(orking)45 b(bac)m(kground,)i(will)c(\014nd)
h(enough)f(information)g(and)g(examples)h(to)f(understand)174
1454 y(and)33 b(con\014gure)g(Lin)m(ux-2.2)g(IP)g(and)g(IPv6)g(net)m(w)
m(orking.)321 1575 y(This)45 b(do)s(cumen)m(t)g(is)g(split)f(in)m(to)g
(sections)i(explaining)f Fk(ip)g Fo(commands)g(and)f(options,)j(de-)174
1695 y(crypting)36 b Fk(ip)g Fo(output)f(and)g(con)m(taining)h(a)f(few)
h(examples.)53 b(More)35 b(v)m(oluminous)i(examples)g(and)174
1816 y(some)d(topics,)f(whic)m(h)h(require)g(more)f(elab)s(orate)f
(discussion,)j(are)e(in)g(the)g(app)s(endix.)321 1937
y(The)h(paragraphs)f(b)s(eginning)h(with)g(NB)f(con)m(tain)h(side)h
(notes,)f(w)m(arnings)g(ab)s(out)f(bugs)h(and)174 2057
y(design)g(dra)m(wbac)m(ks.)46 b(They)34 b(ma)m(y)f(b)s(e)g(skipp)s(ed)
h(at)e(the)h(\014rst)g(reading.)174 2396 y Fn(2)161 b
Ff(ip)54 b Fn(|)g(command)g(syn)l(tax)174 2617 y Fo(The)34
b(generic)f(form)g(of)f(an)g Fk(ip)h Fo(command)h(is:)174
2825 y Fk(ip)52 b([)g(OPTIONS)h(])e(OBJECT)i([)f(COMMAND)h([)e
(ARGUMENTS)j(]])174 3033 y Fo(where)41 b Fk(OPTIONS)g
Fo(is)f(a)f(set)h(of)f(optional)g(mo)s(di\014ers)h(a\013ecting)g(the)g
(general)g(b)s(eha)m(viour)g(of)f(the)174 3154 y Fk(ip)34
b Fo(utilit)m(y)h(or)e(c)m(hanging)h(its)g(output.)47
b(All)33 b(options)h(b)s(egin)g(with)g(the)g(c)m(haracter)h
Fk('-')f Fo(and)g(ma)m(y)174 3274 y(b)s(e)45 b(used)g(in)g(either)g
(long)f(or)g(abbreviated)i(forms.)79 b(Curren)m(tly)-8
b(,)49 b(the)c(follo)m(wing)g(options)f(are)174 3394
y(a)m(v)-5 b(ailable:)320 3629 y Fe(\017)48 b Fk(-V)p
Fo(,)33 b Fk(-Version)418 3793 y Fo(|)f(prin)m(t)h(the)g(v)m(ersion)i
(of)d(the)h Fk(ip)g Fo(utilit)m(y)g(and)g(exit.)320 4001
y Fe(\017)48 b Fk(-s)p Fo(,)33 b Fk(-stats)p Fo(,)i Fk(-statistics)418
4165 y Fo(|)g(output)g(more)g(information.)50 b(If)35
b(the)h(option)e(app)s(ears)i(t)m(wice)g(or)f(more,)h(the)f(amoun)m(t)
418 4285 y(of)i(information)g(increases.)60 b(As)38 b(a)f(rule,)i(the)f
(information)f(is)h(statistics)h(or)e(some)h(time)418
4406 y(v)-5 b(alues.)320 4614 y Fe(\017)48 b Fk(-f)p
Fo(,)33 b Fk(-family)i Fo(follo)m(w)m(ed)e(b)m(y)h(a)e(proto)s(col)g
(family)h(iden)m(ti\014er:)45 b Fk(inet)p Fo(,)34 b Fk(inet6)g
Fo(or)e Fk(link)p Fo(.)418 4778 y(|)g(enforce)h(the)f(proto)s(col)g
(family)h(to)e(use.)45 b(If)32 b(the)g(option)h(is)f(not)g(presen)m(t,)
i(the)f(proto)s(col)418 4898 y(family)k(is)g(guessed)h(from)e(other)h
(argumen)m(ts.)56 b(If)37 b(the)g(rest)g(of)f(the)g(command)i(line)f
(do)s(es)418 5019 y(not)k(giv)m(e)h(enough)f(information)f(to)h(guess)h
(the)f(family)-8 b(,)43 b Fk(ip)f Fo(falls)f(bac)m(k)g(to)g(the)g
(default)418 5139 y(one,)f(usually)g Fk(inet)g Fo(or)e
Fk(any)p Fo(.)61 b Fk(link)40 b Fo(is)f(a)f(sp)s(ecial)h(family)g(iden)
m(ti\014er)h(meaning)f(that)f(no)418 5259 y(net)m(w)m(orking)d(proto)s
(col)d(is)h(in)m(v)m(olv)m(ed.)320 5467 y Fe(\017)48
b Fk(-4)418 5631 y Fo(|)32 b(shortcut)i(for)e Fk(-family)53
b(inet)p Fo(.)p eop end
%%Page: 4 4
TeXDict begin 4 3 bop 174 324 a Fo(4)2535 b Fg(IP)33
b(Command)h(Reference)320 631 y Fe(\017)48 b Fk(-6)418
792 y Fo(|)32 b(shortcut)i(for)e Fk(-family)53 b(inet6)p
Fo(.)320 994 y Fe(\017)48 b Fk(-0)418 1155 y Fo(|)32
b(shortcut)i(for)e Fk(-family)53 b(link)p Fo(.)320 1356
y Fe(\017)48 b Fk(-o)p Fo(,)33 b Fk(-oneline)418 1517
y Fo(|)d(output)g(eac)m(h)h(record)f(on)g(a)f(single)i(line,)g
(replacing)g(line)g(feeds)g(with)f(the)h Fk('\\')f Fo(c)m(harac-)418
1638 y(ter.)44 b(This)33 b(is)g(con)m(v)m(enien)m(t)h(when)g(y)m(ou)e
(w)m(an)m(t)h(to)f(coun)m(t)h(records)g(with)g Fk(wc)f
Fo(or)g(to)g Fk(grep)h Fo(the)418 1758 y(output.)44 b(The)33
b(trivial)g(script)h Fk(rtpr)f Fo(con)m(v)m(erts)i(the)e(output)g(bac)m
(k)g(in)m(to)g(readable)g(form.)320 1960 y Fe(\017)48
b Fk(-r)p Fo(,)33 b Fk(-resolve)418 2121 y Fo(|)25 b(use)h(the)g
(system's)i(name)d(resolv)m(er)i(to)e(prin)m(t)h(DNS)f(names)h(instead)
h(of)d(host)i(addresses.)654 2285 y Fi(NB.)56 b(Do)28
b(not)f(use)h(this)f(option)h(when)g(rep)r(orting)e(bugs)h(or)g(asking)
f(for)h(advice.)654 2472 y(NB.)56 b Fd(ip)27 b Fi(nev)n(er)f(uses)i
(DNS)g(to)g(resolv)n(e)d(names)j(to)f(addresses.)321
2694 y Fk(OBJECT)41 b Fo(is)f(the)g(ob)5 b(ject)41 b(to)e(manage)h(or)f
(to)h(get)g(information)f(ab)s(out.)65 b(The)40 b(ob)5
b(ject)41 b(t)m(yp)s(es)174 2814 y(curren)m(tly)35 b(understo)s(o)s(d)e
(b)m(y)g Fk(ip)g Fo(are:)320 3035 y Fe(\017)48 b Fk(link)34
b Fo(|)e(net)m(w)m(ork)i(device)320 3237 y Fe(\017)48
b Fk(address)35 b Fo(|)d(proto)s(col)g(\(IP)h(or)f(IPv6\))h(address)h
(on)f(a)f(device)320 3439 y Fe(\017)48 b Fk(neighbour)35
b Fo(|)d(ARP)h(or)f(NDISC)h(cac)m(he)h(en)m(try)320 3640
y Fe(\017)48 b Fk(route)34 b Fo(|)e(routing)h(table)f(en)m(try)320
3842 y Fe(\017)48 b Fk(rule)34 b Fo(|)e(rule)h(in)g(routing)f(p)s
(olicy)h(database)320 4044 y Fe(\017)48 b Fk(maddress)35
b Fo(|)d(m)m(ulticast)i(address)320 4245 y Fe(\017)48
b Fk(mroute)34 b Fo(|)e(m)m(ulticast)i(routing)f(cac)m(he)h(en)m(try)
320 4447 y Fe(\017)48 b Fk(tunnel)34 b Fo(|)e(tunnel)i(o)m(v)m(er)g(IP)
321 4668 y(Again,)40 b(the)f(names)g(of)g(all)f(ob)5
b(jects)40 b(ma)m(y)f(b)s(e)g(written)g(in)g(full)g(or)f(abbreviated)i
(form,)g(f.e.)174 4789 y Fk(address)35 b Fo(is)e(abbreviated)h(as)e
Fk(addr)i Fo(or)e(just)h Fk(a)p Fo(.)321 4909 y Fk(COMMAND)f
Fo(sp)s(eci\014es)g(the)e(action)h(to)e(p)s(erform)i(on)f(the)g(ob)5
b(ject.)44 b(The)31 b(set)g(of)e(p)s(ossible)j(actions)174
5029 y(dep)s(ends)42 b(on)d(the)h(ob)5 b(ject)41 b(t)m(yp)s(e.)66
b(As)40 b(a)f(rule,)j(it)e(is)g(p)s(ossible)h(to)f Fk(add)p
Fo(,)i Fk(delete)f Fo(and)f Fk(show)h Fo(\(or)174 5150
y Fk(list)p Fo(\))h(ob)5 b(jects,)44 b(but)e(some)f(ob)5
b(jects)42 b(do)f(not)g(allo)m(w)g(all)g(of)g(these)h(op)s(erations)f
(or)f(ha)m(v)m(e)i(some)174 5270 y(additional)31 b(commands.)44
b(The)31 b Fk(help)g Fo(command)g(is)g(a)m(v)-5 b(ailable)31
b(for)f(all)g(ob)5 b(jects.)44 b(It)30 b(prin)m(ts)h(out)g(a)174
5391 y(list)i(of)g(a)m(v)-5 b(ailable)33 b(commands)g(and)g(argumen)m
(t)g(syn)m(tax)i(con)m(v)m(en)m(tions.)321 5511 y(If)29
b(no)f(command)i(is)g(giv)m(en,)h(some)e(default)h(command)f(is)h
(assumed.)44 b(Usually)30 b(it)f(is)h Fk(list)g Fo(or,)174
5631 y(if)j(the)g(ob)5 b(jects)34 b(of)e(this)h(class)h(cannot)e(b)s(e)
h(listed,)h Fk(help)p Fo(.)p eop end
%%Page: 5 5
TeXDict begin 5 4 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654
b Fo(5)321 631 y Fk(ARGUMENTS)45 b Fo(is)e(a)g(list)g(of)g(argumen)m
(ts)h(to)f(the)g(command.)75 b(The)44 b(argumen)m(ts)g(dep)s(end)g(on)
174 751 y(the)39 b(command)f(and)g(ob)5 b(ject.)60 b(There)39
b(are)e(t)m(w)m(o)i(t)m(yp)s(es)g(of)e(argumen)m(ts:)55
b Fl(\015ags)8 b Fo(,)39 b(consisting)g(of)f(a)174 872
y(single)44 b(k)m(eyw)m(ord,)j(and)42 b Fl(p)-5 b(ar)g(ameters)8
b Fo(,)45 b(consisting)e(of)f(a)g(k)m(eyw)m(ord)j(follo)m(w)m(ed)e(b)m
(y)h(a)e(v)-5 b(alue.)73 b(F)-8 b(or)174 992 y(con)m(v)m(enience,)35
b(eac)m(h)d(command)g(has)g(some)g Fl(default)h(p)-5
b(ar)g(ameter)42 b Fo(whic)m(h)32 b(ma)m(y)g(b)s(e)g(omitted.)43
b(F.e.)174 1112 y(parameter)24 b Fk(dev)h Fo(is)f(the)g(default)g(for)f
(the)h Fk(ip)52 b(link)24 b Fo(command,)j(so)d Fk(ip)51
b(link)i(ls)e(eth0)25 b Fo(is)f(equiv-)174 1233 y(alen)m(t)k(to)f
Fk(ip)52 b(link)g(ls)g(dev)g(eth0)p Fo(.)43 b(In)27 b(the)h(command)g
(descriptions)h(b)s(elo)m(w)f(suc)m(h)g(parameters)174
1353 y(are)33 b(distinguished)i(with)e(the)g(mark)m(er:)44
b(\\\(default\)".)321 1474 y(Almost)29 b(all)f(k)m(eyw)m(ords)k(ma)m(y)
d(b)s(e)g(abbreviated)h(with)f(sev)m(eral)h(\014rst)f(\(or)f(ev)m(en)j
(single\))e(letters.)174 1594 y(The)35 b(shortcuts)h(are)e(con)m(v)m
(enien)m(t)j(when)e Fk(ip)g Fo(is)g(used)g(in)m(teractiv)m(ely)-8
b(,)37 b(but)e(they)g(are)f(not)g(recom-)174 1714 y(mended)k(in)f
(scripts)g(or)f(when)h(rep)s(orting)f(bugs)h(or)f(asking)h(for)f
(advice.)55 b(\\O\016cially")37 b(allo)m(w)m(ed)174 1835
y(abbreviations)d(are)f(listed)g(in)g(the)g(do)s(cumen)m(t)h(b)s(o)s
(dy)-8 b(.)174 2166 y Fn(3)161 b Ff(ip)54 b Fn(|)g(error)f(messages)174
2385 y Fk(ip)33 b Fo(ma)m(y)h(fail)e(for)g(one)h(of)f(the)h(follo)m
(wing)g(reasons:)320 2601 y Fe(\017)48 b Fo(A)29 b(syn)m(tax)i(error)e
(on)g(the)g(command)h(line:)42 b(an)29 b(unkno)m(wn)i(k)m(eyw)m(ord,)h
(incorrectly)e(format-)418 2721 y(ted)38 b(IP)h(address)g
Fl(et)h(al)10 b Fo(.)59 b(In)38 b(this)h(case)g Fk(ip)f
Fo(prin)m(ts)h(an)f(error)f(message)j(and)e(exits.)60
b(As)39 b(a)418 2841 y(rule,)29 b(the)e(error)g(message)h(will)g(con)m
(tain)f(information)g(ab)s(out)f(the)h(reason)g(for)g(the)g(failure.)
418 2962 y(Sometimes)35 b(it)d(also)h(prin)m(ts)g(a)g(help)g(page.)320
3162 y Fe(\017)48 b Fo(The)34 b(argumen)m(ts)f(did)g(not)g(pass)g(v)m
(eri\014cation)h(for)e(self-consistency)-8 b(.)320 3362
y Fe(\017)48 b Fk(ip)26 b Fo(failed)g(to)g(compile)g(a)g(k)m(ernel)h
(request)h(from)d(the)h(argumen)m(ts)h(b)s(ecause)g(the)f(user)h
(didn't)418 3483 y(giv)m(e)34 b(enough)f(information.)320
3683 y Fe(\017)48 b Fo(The)39 b(k)m(ernel)g(returned)g(an)f(error)f(to)
h(some)g(syscall.)61 b(In)38 b(this)h(case)f Fk(ip)g
Fo(prin)m(ts)h(the)f(error)418 3803 y(message,)30 b(as)e(it)f(is)h
(output)g(with)g Fk(perror\(3\))p Fo(,)j(pre\014xed)e(with)f(a)f
(commen)m(t)i(and)e(a)h(syscall)418 3924 y(iden)m(ti\014er.)320
4124 y Fe(\017)48 b Fo(The)42 b(k)m(ernel)g(returned)g(an)f(error)g(to)
f(some)i(R)-8 b(TNETLINK)42 b(request.)70 b(In)41 b(this)g(case)h
Fk(ip)418 4244 y Fo(prin)m(ts)h(the)e(error)h(message,)j(as)c(it)h(is)g
(output)f(with)h Fk(perror\(3\))i Fo(pre\014xed)f(with)f(\\R)-8
b(T-)418 4364 y(NETLINK)34 b(answ)m(ers:".)321 4580 y(All)24
b(the)h(op)s(erations)g(are)f(atomic,)j(i.e.)e(if)f(the)h
Fk(ip)g Fo(utilit)m(y)g(fails,)i(it)d(do)s(es)h(not)f(c)m(hange)h(an)m
(ything)174 4700 y(in)34 b(the)g(system.)49 b(One)34
b(harmful)g(exception)h(is)f Fk(ip)52 b(link)34 b Fo(command)h
(\(Sec.4,)f(p.6\),)g(whic)m(h)i(ma)m(y)174 4821 y(c)m(hange)e(only)f
(some)g(of)f(the)h(device)i(parameters)e(giv)m(en)h(on)e(command)i
(line.)321 4941 y(It)f(is)g(di\016cult)h(to)f(list)g(all)g(the)g(error)
g(messages)i(\(esp)s(ecially)f(syn)m(tax)h(errors\).)45
b(Ho)m(w)m(ev)m(er,)35 b(as)174 5062 y(a)e(rule,)g(their)g(meaning)g
(is)g(clear)g(from)g(the)g(con)m(text)g(of)f(the)h(command.)321
5182 y(The)g(most)g(common)g(mistak)m(es)i(are:)294 5398
y(1.)48 b(Netlink)34 b(is)f(not)g(con\014gured)g(in)g(the)g(k)m(ernel.)
45 b(The)34 b(message)g(is:)418 5631 y Fk(Cannot)53 b(open)f(netlink)i
(socket:)f(Invalid)g(value)p eop end
%%Page: 6 6
TeXDict begin 6 5 bop 174 324 a Fo(6)2535 b Fg(IP)33
b(Command)h(Reference)294 631 y Fo(2.)48 b(R)-8 b(TNETLINK)36
b(is)f(not)f(con\014gured)i(in)e(the)h(k)m(ernel.)51
b(In)35 b(this)g(case)g(one)g(of)f(the)h(follo)m(wing)418
751 y(messages)g(ma)m(y)e(b)s(e)g(prin)m(ted,)h(dep)s(ending)f(on)g
(the)g(command:)418 1010 y Fk(Cannot)53 b(talk)f(to)g(rtnetlink:)i
(Connection)g(refused)418 1131 y(Cannot)f(send)f(dump)h(request:)g
(Connection)h(refused)294 1389 y Fo(3.)48 b(The)e Fk
(CONFIG_IP_MULTIPLE_TABLE)q(S)51 b Fo(option)45 b(w)m(as)h(not)f
(selected)i(when)f(con\014guring)418 1510 y(the)33 b(k)m(ernel.)45
b(In)33 b(this)h(case)f(an)m(y)g(attempt)g(to)f(use)i(the)f
Fk(ip)g(rule)h Fo(command)f(will)g(fail,)g(f.e.)418 1769
y Fk(kuznet@kaiser)55 b($)c(ip)h(rule)h(list)418 1889
y(RTNETLINK)h(error:)f(Invalid)g(argument)418 2009 y(dump)g(terminated)
174 2355 y Fn(4)161 b Ff(ip)74 b(link)53 b Fn(|)h(net)l(w)l(ork)d
(device)i(con\014guration)174 2579 y Fj(Ob)6 b(ject:)98
b Fo(A)33 b Fk(link)g Fo(is)g(a)e(net)m(w)m(ork)j(device)g(and)e(the)h
(corresp)s(onding)g(commands)g(displa)m(y)h(and)174 2699
y(c)m(hange)g(the)f(state)g(of)f(devices.)174 2972 y
Fj(Commands:)105 b Fk(set)33 b Fo(and)g Fk(show)h Fo(\(or)e
Fk(list)p Fo(\).)174 3274 y Fc(4.1)136 b Fb(ip)60 b(link)g(set)43
b Fc(|)j(c)l(hange)f(device)g(attributes)174 3463 y Fj(Abbreviations:)
104 b Fk(set)p Fo(,)34 b Fk(s)p Fo(.)174 3736 y Fj(Argumen)m(ts:)320
3951 y Fe(\017)48 b Fk(dev)k(NAME)34 b Fo(\(default\))418
4118 y(|)e Fk(NAME)i Fo(sp)s(eci\014es)h(the)e(net)m(w)m(ork)h(device)g
(on)f(whic)m(h)h(to)e(op)s(erate.)320 4332 y Fe(\017)48
b Fk(up)33 b Fo(and)g Fk(down)418 4499 y Fo(|)f(c)m(hange)i(the)f
(state)g(of)f(the)h(device)h(to)e Fk(UP)h Fo(or)g Fk(DOWN)p
Fo(.)320 4713 y Fe(\017)48 b Fk(arp)k(on)33 b Fo(or)g
Fk(arp)52 b(off)418 4881 y Fo(|)32 b(c)m(hange)i(the)f
Fk(NOARP)h Fo(\015ag)e(on)g(the)h(device.)654 5051 y
Fi(NB.)73 b(This)35 b(op)r(eration)g(is)h Fa(not)h(al)t(lowe)l(d)47
b Fi(if)36 b(the)g(device)g(is)g(in)g(state)g Fd(UP)p
Fi(.)f(Though)g(neither)h(the)654 5150 y Fd(ip)d Fi(utilit)n(y)i(nor)e
(the)h(k)n(ernel)f(c)n(hec)n(k)f(for)i(this)g(condition.)55
b(Y)-7 b(ou)34 b(can)f(get)g(unpredictable)h(results)654
5250 y(c)n(hanging)27 b(this)h(\015ag)e(while)i(the)g(device)g(is)f
(running.)320 5464 y Fe(\017)48 b Fk(multicast)54 b(on)33
b Fo(or)f Fk(multicast)54 b(off)418 5631 y Fo(|)32 b(c)m(hange)i(the)f
Fk(MULTICAST)i Fo(\015ag)d(on)g(the)h(device.)p eop end
%%Page: 7 7
TeXDict begin 7 6 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654
b Fo(7)320 631 y Fe(\017)48 b Fk(dynamic)53 b(on)33 b
Fo(or)g Fk(dynamic)53 b(off)418 792 y Fo(|)32 b(c)m(hange)i(the)f
Fk(DYNAMIC)h Fo(\015ag)e(on)h(the)g(device.)320 994 y
Fe(\017)48 b Fk(name)53 b(NAME)418 1155 y Fo(|)38 b(c)m(hange)i(the)f
(name)g(of)f(the)h(device.)63 b(This)40 b(op)s(eration)e(is)h(not)g
(recommended)h(if)f(the)418 1275 y(device)c(is)e(running)g(or)f(has)h
(some)g(addresses)i(already)e(con\014gured.)320 1477
y Fe(\017)48 b Fk(txqueuelen)54 b(NUMBER)34 b Fo(or)e
Fk(txqlen)53 b(NUMBER)418 1638 y Fo(|)32 b(c)m(hange)i(the)f(transmit)g
(queue)h(length)f(of)f(the)h(device.)320 1840 y Fe(\017)48
b Fk(mtu)k(NUMBER)418 2001 y Fo(|)32 b(c)m(hange)i(the)f(MTU)g(of)f
(the)h(device.)320 2202 y Fe(\017)48 b Fk(address)53
b(LLADDRESS)418 2363 y Fo(|)32 b(c)m(hange)i(the)f(station)f(address)i
(of)e(the)h(in)m(terface.)320 2565 y Fe(\017)48 b Fk(broadcast)54
b(LLADDRESS)p Fo(,)35 b Fk(brd)52 b(LLADDRESS)35 b Fo(or)d
Fk(peer)52 b(LLADDRESS)418 2726 y Fo(|)23 b(c)m(hange)h(the)g(link)g
(la)m(y)m(er)h(broadcast)e(address)i(or)e(the)h(p)s(eer)f(address)i
(when)g(the)e(in)m(terface)418 2846 y(is)33 b Fk(POINTOPOINT)p
Fo(.)654 3034 y Fi(NB.)49 b(F)-7 b(or)23 b(most)h(devices)f(\(f.e.)i
(for)e(Ethernet\))h(c)n(hanging)f(the)h(link)g(la)n(y)n(er)e(broadcast)
h(address)f(will)654 3134 y(break)29 b(net)n(w)n(orking.)41
b(Do)29 b(not)h(use)f(it,)h(if)g(y)n(ou)f(do)g(not)h(understand)f(what)
g(this)h(op)r(eration)e(really)654 3233 y(do)r(es.)411
3458 y(NB.)42 b(The)21 b Fd(ip)f Fi(utilit)n(y)h(do)r(es)g(not)g(c)n
(hange)e(the)j Fd(PROMISC)c Fi(or)i Fd(ALLMULTI)d Fi(\015ags.)34
b(These)21 b(\015ags)f(are)f(considered)411 3558 y(obsolete)26
b(and)i(should)f(not)h(b)r(e)g(c)n(hanged)e(administrativ)n(ely)-7
b(.)174 3817 y Fj(W)e(arning:)98 b Fo(If)25 b(m)m(ultiple)h(parameter)f
(c)m(hanges)h(are)f(requested,)j Fk(ip)e Fo(ab)s(orts)e(immediately)j
(after)174 3937 y(an)m(y)37 b(of)e(the)i(c)m(hanges)g(ha)m(v)m(e)g
(failed.)54 b(This)38 b(is)e(the)g(only)h(case)g(when)g
Fk(ip)f Fo(can)h(mo)m(v)m(e)g(the)f(system)174 4057 y(to)c(an)f
(unpredictable)i(state.)44 b(The)32 b(solution)g(is)g(to)f(a)m(v)m(oid)
i(c)m(hanging)f(sev)m(eral)h(parameters)g(with)174 4178
y(one)g Fk(ip)52 b(link)g(set)34 b Fo(call.)174 4437
y Fj(Examples:)320 4635 y Fe(\017)48 b Fk(ip)k(link)g(set)g(dummy)h
(address)g(00:00:00:00:00:01)418 4796 y Fo(|)32 b(c)m(hange)i(the)f
(station)f(address)i(of)e(the)h(in)m(terface)h Fk(dummy)p
Fo(.)320 4998 y Fe(\017)48 b Fk(ip)k(link)g(set)g(dummy)h(up)418
5159 y Fo(|)32 b(start)h(the)g(in)m(terface)g Fk(dummy)p
Fo(.)174 5447 y Fc(4.2)136 b Fb(ip)60 b(link)g(show)43
b Fc(|)i(displa)l(y)h(device)f(attributes)174 5631 y
Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p
Fo(,)f Fk(lst)p Fo(,)h Fk(sh)p Fo(,)f Fk(ls)p Fo(,)g
Fk(l)p Fo(.)p eop end
%%Page: 8 8
TeXDict begin 8 7 bop 174 324 a Fo(8)2535 b Fg(IP)33
b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)320
835 y Fe(\017)48 b Fk(dev)k(NAME)34 b Fo(\(default\))418
997 y(|)k Fk(NAME)i Fo(sp)s(eci\014es)g(the)f(net)m(w)m(ork)i(device)f
(to)e(sho)m(w.)62 b(If)39 b(this)g(argumen)m(t)g(is)g(omitted)g(all)418
1117 y(devices)c(are)e(listed.)320 1321 y Fe(\017)48
b Fk(up)418 1483 y Fo(|)32 b(only)h(displa)m(y)h(running)g(in)m
(terfaces.)174 1744 y Fj(Output)k(format:)174 1948 y
Fk(kuznet@alisa:~)55 b($)d(ip)g(link)g(ls)g(eth0)174
2068 y(3:)g(eth0:)h(<BROADCAST,MULTICAST,UP>)k(mtu)52
b(1500)h(qdisc)f(cbq)g(qlen)h(100)379 2189 y(link/ether)h
(00:a0:cc:66:18:78)i(brd)c(ff:ff:ff:ff:ff:ff)174 2309
y(kuznet@alisa:~)j($)d(ip)g(link)g(ls)g(sit0)174 2429
y(5:)g(sit0@NONE:)i(<NOARP,UP>)g(mtu)e(1480)g(qdisc)h(noqueue)379
2550 y(link/sit)h(0.0.0.0)f(brd)f(0.0.0.0)174 2670 y(kuznet@alisa:~)j
($)d(ip)g(link)g(ls)g(dummy)174 2790 y(2:)g(dummy:)h(<BROADCAST,NOARP>)
j(mtu)c(1500)g(qdisc)h(noop)379 2911 y(link/ether)h(00:00:00:00:00:00)i
(brd)c(ff:ff:ff:ff:ff:ff)174 3031 y(kuznet@alisa:~)j($)321
3235 y Fo(The)48 b(n)m(um)m(b)s(er)g(b)s(efore)f(eac)m(h)h(colon)f(is)h
(an)f Fl(interfac)-5 b(e)47 b(index)58 b Fo(or)47 b Fl(i\014ndex)12
b Fo(.)86 b(This)48 b(n)m(um)m(b)s(er)174 3355 y(uniquely)36
b(iden)m(ti\014es)g(the)d(in)m(terface.)48 b(This)34
b(is)g(follo)m(w)m(ed)h(b)m(y)f(the)g Fl(interfac)-5
b(e)35 b(name)41 b Fo(\()p Fk(eth0)p Fo(,)34 b Fk(sit0)174
3476 y Fo(etc.\).)66 b(The)41 b(in)m(terface)g(name)f(is)h(also)e
(unique)j(at)d(ev)m(ery)j(giv)m(en)f(momen)m(t.)66 b(Ho)m(w)m(ev)m(er,)
44 b(the)d(in-)174 3596 y(terface)j(ma)m(y)g(disapp)s(ear)g(from)f(the)
h(list)g(\(f.e.)g(when)g(the)g(corresp)s(onding)g(driv)m(er)h(mo)s
(dule)f(is)174 3717 y(unloaded\))35 b(and)f(another)g(one)g(with)h(the)
f(same)h(name)f(ma)m(y)h(b)s(e)f(created)h(later.)48
b(Besides)35 b(that,)174 3837 y(the)27 b(administrator)g(ma)m(y)g(c)m
(hange)g(the)g(name)g(of)f(an)m(y)h(device)h(with)f Fk(ip)f(link)i(set)
f(name)g Fo(to)f(mak)m(e)174 3957 y(it)33 b(more)g(in)m(telligible.)321
4078 y(The)38 b(in)m(terface)h(name)f(ma)m(y)h(ha)m(v)m(e)g(another)f
(name)g(or)g Fk(NONE)g Fo(app)s(ended)h(after)f(the)g
Fk(@)g Fo(sign.)174 4198 y(This)33 b(means)f(that)f(this)h(device)h(is)
f(b)s(ound)f(to)g(some)h(other)f(device,)j(i.e.)e(pac)m(k)m(ets)h(send)
f(through)174 4319 y(it)d(are)f(encapsulated)j(and)e(sen)m(t)g(via)g
(the)g(\\master")g(device.)44 b(If)29 b(the)g(name)g(is)g
Fk(NONE)p Fo(,)h(the)f(master)174 4439 y(is)k(unkno)m(wn.)321
4559 y(Then)41 b(w)m(e)h(see)f(the)g(in)m(terface)g Fl(mtu)48
b Fo(\(\\maximal)41 b(transfer)g(unit"\).)67 b(This)41
b(determines)i(the)174 4680 y(maximal)34 b(size)f(of)g(data)f(whic)m(h)
i(can)f(b)s(e)f(sen)m(t)i(as)f(a)f(single)i(pac)m(k)m(et)g(o)m(v)m(er)g
(this)f(in)m(terface.)321 4800 y Fl(qdisc)43 b Fo(\(\\queuing)d
(discipline"\))h(sho)m(ws)g(the)e(queuing)h(algorithm)f(used)h(on)f
(the)g(in)m(terface.)174 4921 y(P)m(articularly)-8 b(,)43
b Fk(noqueue)f Fo(means)f(that)f(this)g(in)m(terface)h(do)s(es)f(not)g
(queue)i(an)m(ything)e(and)g Fk(noop)174 5041 y Fo(means)26
b(that)e(the)h(in)m(terface)h(is)f(in)g(blac)m(khole)h(mo)s(de)f(i.e.)g
(all)g(pac)m(k)m(ets)h(sen)m(t)g(to)e(it)h(are)f(immediately)174
5161 y(discarded.)42 b Fl(qlen)31 b Fo(is)24 b(the)g(default)g
(transmit)g(queue)h(length)f(of)g(the)g(device)h(measured)g(in)f(pac)m
(k)m(ets.)321 5282 y(The)33 b(in)m(terface)h(\015ags)f(are)f
(summarized)j(in)d(the)h(angle)g(brac)m(k)m(ets.)320
5511 y Fe(\017)48 b Fk(UP)28 b Fo(|)g(the)g(device)h(is)g(turned)f(on.)
42 b(It)28 b(is)g(ready)h(to)e(accept)i(pac)m(k)m(ets)h(for)d
(transmission)i(and)418 5631 y(it)i(ma)m(y)h(inject)f(in)m(to)h(the)f
(k)m(ernel)i(pac)m(k)m(ets)g(receiv)m(ed)g(from)e(other)g(no)s(des)g
(on)g(the)h(net)m(w)m(ork.)p eop end
%%Page: 9 9
TeXDict begin 9 8 bop 174 324 a Fp(ipr)n(oute2-ss020116)2654
b Fo(9)320 631 y Fe(\017)48 b Fk(LOOPBACK)41 b Fo(|)d(the)h(in)m
(terface)h(do)s(es)f(not)g(comm)m(unicate)i(with)e(other)g(hosts.)63
b(All)39 b(pac)m(k-)418 751 y(ets)h(sen)m(t)g(through)f(it)g(will)h(b)s
(e)f(returned)h(and)f(nothing)g(but)h(b)s(ounced)g(pac)m(k)m(ets)h(can)
e(b)s(e)418 872 y(receiv)m(ed.)320 1071 y Fe(\017)48
b Fk(BROADCAST)30 b Fo(|)e(the)g(device)i(has)e(the)h(facilit)m(y)g(to)
e(send)i(pac)m(k)m(ets)h(to)e(all)g(hosts)h(sharing)f(the)418
1191 y(same)34 b(link.)44 b(A)33 b(t)m(ypical)g(example)h(is)g(an)e
(Ethernet)i(link.)320 1390 y Fe(\017)48 b Fk(POINTOPOINT)30
b Fo(|)d(the)g(link)h(has)f(only)h(t)m(w)m(o)f(ends)h(with)g(one)f(no)s
(de)g(attac)m(hed)h(to)f(eac)m(h)h(end.)418 1510 y(All)36
b(pac)m(k)m(ets)i(sen)m(t)g(to)d(this)i(link)f(will)h(reac)m(h)g(the)f
(p)s(eer)h(and)f(all)g(pac)m(k)m(ets)i(receiv)m(ed)g(b)m(y)f(us)418
1630 y(came)d(from)e(this)h(single)h(p)s(eer.)418 1790
y(If)40 b(neither)g Fk(LOOPBACK)i Fo(nor)d Fk(BROADCAST)j
Fo(nor)d Fk(POINTOPOINT)j Fo(are)e(set,)h(the)f(in)m(terface)h(is)418
1910 y(assumed)33 b(to)e(b)s(e)g(NMBA)h(\(Non-Broadcast)f
(Multi-Access\).)45 b(This)33 b(is)e(the)h(most)f(generic)418
2031 y(t)m(yp)s(e)40 b(of)e(device)i(and)f(the)f(most)h(complicated)h
(one,)h(b)s(ecause)e(the)g(host)g(attac)m(hed)g(to)g(a)418
2151 y(NBMA)i(link)h(has)f(no)f(means)i(to)e(send)i(to)e(an)m(y)m(one)i
(without)f(additionally)g(con\014gured)418 2272 y(information.)320
2470 y Fe(\017)48 b Fk(MULTICAST)31 b Fo(|)e(is)g(an)f(advisory)i
(\015ag)f(indicating)g(that)g(the)g(in)m(terface)h(is)f(a)m(w)m(are)h
(of)e(m)m(ulti-)418 2591 y(casting)f(i.e.)g(sending)h(pac)m(k)m(ets)g
(to)e(some)h(subset)h(of)e(neigh)m(b)s(ouring)h(no)s(des.)42
b(Broadcasting)418 2711 y(is)g(a)e(particular)h(case)h(of)e(m)m
(ulticasting,)k(where)f(the)e(m)m(ulticast)h(group)f(consists)h(of)e
(all)418 2832 y(no)s(des)d(on)f(the)h(link.)56 b(It)36
b(is)h(imp)s(ortan)m(t)f(to)g(emphasize)i(that)e(soft)m(w)m(are)i
Fl(must)g(not)46 b Fo(in)m(ter-)418 2952 y(pret)26 b(the)h(absence)g
(of)f(this)g(\015ag)g(as)g(the)g(inabilit)m(y)h(to)f(use)h(m)m
(ulticasting)g(on)f(this)g(in)m(terface.)418 3072 y(An)m(y)j
Fk(POINTOPOINT)i Fo(and)d Fk(BROADCAST)i Fo(link)e(is)g(m)m
(ulticasting)i(b)m(y)e(de\014nition,)i(b)s(ecause)f(w)m(e)418
3193 y(ha)m(v)m(e)36 b(direct)g(access)h(to)d(all)h(the)g(neigh)m(b)s
(ours)h(and,)g(hence,)h(to)d(an)m(y)i(part)f(of)f(them.)51
b(Cer-)418 3313 y(tainly)-8 b(,)43 b(the)e(use)g(of)f(high)h(bandwidth)
g(m)m(ulticast)h(transfers)g(is)e(not)h(recommended)h(on)418
3433 y(broadcast-only)33 b(links)h(b)s(ecause)g(of)e(high)h(exp)s
(ense,)i(but)d(it)h(is)g(not)g(strictly)g(prohibited.)320
3632 y Fe(\017)48 b Fk(PROMISC)39 b Fo(|)e(the)g(device)i(listens)f(to)
f(and)g(feeds)h(to)f(the)g(k)m(ernel)i(all)e(tra\016c)g(on)g(the)g
(link)418 3753 y(ev)m(en)28 b(if)d(it)h(is)h(not)e(destined)j(for)d
(us,)j(not)e(broadcasted)h(and)f(not)f(destined)j(for)d(a)h(m)m
(ulticast)418 3873 y(group)f(of)f(whic)m(h)i(w)m(e)g(are)f(mem)m(b)s
(er.)42 b(Usually)26 b(this)f(mo)s(de)g(exists)i(only)e(on)g(broadcast)
g(links)418 3993 y(and)33 b(is)g(used)h(b)m(y)f(bridges)h(and)e(for)g
(net)m(w)m(ork)j(monitoring.)320 4192 y Fe(\017)48 b
Fk(ALLMULTI)c Fo(|)c(the)i(device)h(receiv)m(es)h(all)e(m)m(ulticast)g
(pac)m(k)m(ets)i(w)m(andering)e(on)g(the)f(link.)418
4313 y(This)34 b(mo)s(de)f(is)g(used)h(b)m(y)f(m)m(ulticast)h(routers.)
320 4511 y Fe(\017)48 b Fk(NOARP)42 b Fo(|)e(this)h(\015ag)g(is)g
(di\013eren)m(t)g(from)g(the)g(other)f(ones.)69 b(It)40
b(has)h(no)g(in)m(v)-5 b(arian)m(t)41 b(v)-5 b(alue)418
4632 y(and)41 b(its)g(in)m(terpretation)g(dep)s(ends)h(on)e(the)h(net)m
(w)m(ork)h(proto)s(cols)f(in)m(v)m(olv)m(ed.)70 b(As)41
b(a)f(rule,)418 4752 y(it)e(indicates)g(that)g(the)f(device)j(needs)f
(no)e(address)i(resolution)f(and)f(that)g(the)h(soft)m(w)m(are)418
4873 y(or)d(hardw)m(are)h(kno)m(ws)h(ho)m(w)e(to)g(deliv)m(er)i(pac)m
(k)m(ets)g(without)f(an)m(y)g(help)f(from)g(the)h(proto)s(col)418
4993 y(stac)m(ks.)320 5192 y Fe(\017)48 b Fk(DYNAMIC)34
b Fo(|)e(is)g(an)g(advisory)h(\015ag)f(indicating)h(that)e(the)i(in)m
(terface)g(is)f(dynamically)i(cre-)418 5312 y(ated)f(and)g(destro)m(y)m
(ed.)320 5511 y Fe(\017)48 b Fk(SLAVE)33 b Fo(|)f(this)g(in)m(terface)h
(is)g(b)s(onded)f(to)g(some)h(other)f(in)m(terfaces)h(to)f(share)h
(link)f(capaci-)418 5631 y(ties.)p eop end
%%Page: 10 10
TeXDict begin 10 9 bop 174 324 a Fo(10)2486 b Fg(IP)33
b(Command)h(Reference)411 631 y Fi(NB.)70 b(There)35
b(are)f(other)h(\015ags)f(but)i(they)f(are)f(either)h(obsolete)g(\()p
Fd(NOTRAILERS)p Fi(\))c(or)k(not)g(implemen)n(ted)411
731 y(\()p Fd(DEBUG)p Fi(\))e(or)i(sp)r(eci\014c)g(to)g(some)g(devices)
g(\()p Fd(MASTER)p Fi(,)e Fd(AUTOMEDIA)e Fi(and)k Fd(PORTSEL)p
Fi(\).)e(W)-7 b(e)36 b(do)f(not)g(discuss)411 830 y(them)28
b(here.)411 983 y(NB.)63 b(The)32 b(v)-5 b(alues)31 b(of)h
Fd(PROMISC)c Fi(and)k Fd(ALLMULTI)c Fi(\015ags)j(sho)n(wn)g(b)n(y)g
(the)h Fd(ifconfig)c Fi(utilit)n(y)k(and)g(b)n(y)f(the)411
1083 y Fd(ip)f Fi(utilit)n(y)h(are)f Fa(di\013er)l(ent)8
b Fi(.)46 b Fd(ip)d(link)f(ls)30 b Fi(sho)n(ws)f(the)i(true)g(device)g
(state,)g(while)g Fd(ifconfig)c Fi(sho)n(ws)j(the)411
1182 y(virtual)d(state)g(whic)n(h)h(w)n(as)e(set)i(with)g
Fd(ifconfig)c Fi(itself.)321 1332 y Fo(The)36 b(second)g(line)g(con)m
(tains)g(information)f(on)g(the)g(link)h(la)m(y)m(er)g(addresses)i
(asso)s(ciated)e(with)174 1452 y(the)41 b(device.)67
b(The)41 b(\014rst)g(w)m(ord)f(\()p Fk(ether)p Fo(,)k
Fk(sit)p Fo(\))c(de\014nes)i(the)e(in)m(terface)i(hardw)m(are)e(t)m(yp)
s(e.)67 b(This)174 1573 y(t)m(yp)s(e)29 b(determines)h(the)e(format)f
(and)h(seman)m(tics)i(of)d(the)i(addresses)h(and)d(is)i(logically)f
(part)g(of)f(the)174 1693 y(address.)44 b(The)32 b(default)e(format)g
(of)g(the)h(station)f(address)i(and)f(the)f(broadcast)h(address)h(\(or)
e(the)174 1813 y(p)s(eer)37 b(address)h(for)e(p)s(oin)m(top)s(oin)m(t)h
(links\))g(is)g(a)f(sequence)k(of)35 b(hexadecimal)k(b)m(ytes)f
(separated)f(b)m(y)174 1934 y(colons,)g(but)e(some)h(link)g(t)m(yp)s
(es)h(ma)m(y)f(ha)m(v)m(e)g(their)g(natural)f(address)i(format,)e(f.e.)
g(addresses)j(of)174 2054 y(tunnels)c(o)m(v)m(er)g(IP)f(are)g(prin)m
(ted)g(as)g(dotted-quad)g(IP)g(addresses.)411 2207 y
Fi(NB.)73 b(NBMA)36 b(links)h(ha)n(v)n(e)e(no)h(w)n(ell-de\014ned)g
(broadcast)f(or)g(p)r(eer)h(address,)i(ho)n(w)n(ev)n(er)c(this)j
(\014eld)f(ma)n(y)411 2307 y(con)n(tain)28 b(useful)i(information,)f
(f.e.)h(ab)r(out)f(the)h(address)e(of)h(broadcast)f(rela)n(y)g(or)g(ab)
r(out)i(the)f(address)f(of)411 2406 y(the)g(ARP)f(serv)n(er.)411
2559 y(NB.)52 b(Multicast)27 b(addresses)e(are)g(not)h(sho)n(wn)g(b)n
(y)g(this)g(command,)g(see)g Fd(ip)43 b(maddr)f(ls)25
b Fi(in)i(Sec.9)f(\(p.40)f(of)411 2658 y(this)i(do)r(cumen)n(t\).)174
2954 y Fj(Statistics:)98 b Fo(With)33 b(the)g Fk(-statistics)i
Fo(option,)e Fk(ip)g Fo(also)g(prin)m(ts)g(in)m(terface)h(statistics:)
174 3229 y Fk(kuznet@alisa:~)55 b($)d(ip)g(-s)f(link)i(ls)f(eth0)174
3349 y(3:)g(eth0:)h(<BROADCAST,MULTICAST,UP>)k(mtu)52
b(1500)h(qdisc)f(cbq)g(qlen)h(100)379 3470 y(link/ether)h
(00:a0:cc:66:18:78)i(brd)c(ff:ff:ff:ff:ff:ff)379 3590
y(RX:)g(bytes)104 b(packets)h(errors)f(dropped)53 b(overrun)g(mcast)379
3710 y(2449949362)h(2786187)105 b(0)359 b(0)g(0)g(0)379
3831 y(TX:)52 b(bytes)104 b(packets)h(errors)f(dropped)53
b(carrier)g(collsns)379 3951 y(178558497)105 b(1783945)g(332)257
b(0)359 b(332)257 b(35172)174 4072 y(kuznet@alisa:~)55
b($)174 4340 y(RX:)34 b Fo(and)e Fk(TX:)i Fo(lines)f(summarize)i
(receiv)m(er)f(and)f(transmitter)g(statistics.)45 b(They)34
b(con)m(tain:)320 4573 y Fe(\017)48 b Fk(bytes)42 b Fo(|)e(the)h(total)
f(n)m(um)m(b)s(er)i(of)e(b)m(ytes)j(receiv)m(ed)g(or)d(transmitted)i
(on)e(the)h(in)m(terface.)418 4693 y(This)36 b(n)m(um)m(b)s(er)h(wraps)
e(when)h(the)g(maximal)f(length)h(of)e(the)h(data)g(t)m(yp)s(e)h
(natural)f(for)f(the)418 4814 y(arc)m(hitecture)d(is)f(exceeded,)j(so)d
(con)m(tin)m(uous)h(monitoring)e(requires)i(a)e(user)i(lev)m(el)g
(daemon)418 4934 y(snapping)j(it)e(p)s(erio)s(dically)-8
b(.)320 5166 y Fe(\017)48 b Fk(packets)27 b Fo(|)d(the)h(total)f(n)m
(um)m(b)s(er)i(of)e(pac)m(k)m(ets)j(receiv)m(ed)g(or)d(transmitted)i
(on)e(the)h(in)m(terface.)320 5399 y Fe(\017)48 b Fk(errors)34
b Fo(|)e(the)h(total)f(n)m(um)m(b)s(er)i(of)f(receiv)m(er)h(or)e
(transmitter)i(errors.)320 5631 y Fe(\017)48 b Fk(dropped)35
b Fo(|)d(the)h(total)f(n)m(um)m(b)s(er)i(of)e(pac)m(k)m(ets)i(dropp)s
(ed)g(due)f(to)f(lac)m(k)i(of)e(resources.)p eop end
%%Page: 11 11
TeXDict begin 11 10 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(11)320 631 y Fe(\017)48 b Fk(overrun)33 b Fo(|)d(the)h(total)f(n)m
(um)m(b)s(er)i(of)f(receiv)m(er)i(o)m(v)m(erruns)f(resulting)g(in)f
(dropp)s(ed)g(pac)m(k)m(ets.)418 751 y(As)h(a)g(rule,)g(if)f(the)h(in)m
(terface)h(is)f(o)m(v)m(errun,)h(it)f(means)g(serious)h(problems)g(in)e
(the)h(k)m(ernel)i(or)418 872 y(that)f(y)m(our)g(mac)m(hine)h(is)f(to)s
(o)f(slo)m(w)h(for)f(this)i(in)m(terface.)320 1064 y
Fe(\017)48 b Fk(mcast)40 b Fo(|)e(the)h(total)f(n)m(um)m(b)s(er)h(of)f
(receiv)m(ed)j(m)m(ulticast)f(pac)m(k)m(ets.)63 b(This)40
b(option)e(is)h(only)418 1185 y(supp)s(orted)34 b(b)m(y)f(a)f(few)i
(devices.)320 1377 y Fe(\017)48 b Fk(carrier)35 b Fo(|)d(total)g(n)m
(um)m(b)s(er)i(of)e(link)h(media)g(failures)h(f.e.)f(b)s(ecause)g(of)g
(lost)f(carrier.)320 1570 y Fe(\017)48 b Fk(collsns)39
b Fo(|)e(the)g(total)g(n)m(um)m(b)s(er)i(of)d(collision)i(ev)m(en)m(ts)
i(on)d(Ethernet-lik)m(e)i(media.)58 b(This)418 1690 y(n)m(um)m(b)s(er)
34 b(ma)m(y)g(ha)m(v)m(e)f(a)g(di\013eren)m(t)h(sense)g(on)e(other)h
(link)g(t)m(yp)s(es.)320 1883 y Fe(\017)48 b Fk(compressed)36
b Fo(|)d(the)h(total)f(n)m(um)m(b)s(er)i(of)e(compressed)j(pac)m(k)m
(ets.)48 b(This)35 b(is)f(a)m(v)-5 b(ailable)34 b(only)418
2003 y(for)e(links)i(using)f(VJ)g(header)g(compression.)321
2174 y(If)41 b(the)h Fk(-s)g Fo(option)f(is)h(en)m(tered)h(t)m(wice)g
(or)f(more,)i Fk(ip)e Fo(prin)m(ts)g(more)g(detailed)g(statistics)h(on)
174 2294 y(receiv)m(er)35 b(and)e(transmitter)g(errors.)174
2479 y Fk(kuznet@alisa:~)55 b($)d(ip)g(-s)f(-s)h(link)h(ls)e(eth0)174
2600 y(3:)h(eth0:)h(<BROADCAST,MULTICAST,UP>)k(mtu)52
b(1500)h(qdisc)f(cbq)g(qlen)h(100)379 2720 y(link/ether)h
(00:a0:cc:66:18:78)i(brd)c(ff:ff:ff:ff:ff:ff)379 2840
y(RX:)g(bytes)104 b(packets)h(errors)f(dropped)53 b(overrun)g(mcast)379
2961 y(2449949362)h(2786187)105 b(0)359 b(0)g(0)g(0)379
3081 y(RX)52 b(errors:)h(length)156 b(crc)257 b(frame)155
b(fifo)206 b(missed)943 3201 y(0)411 b(0)359 b(0)g(0)g(0)379
3322 y(TX:)52 b(bytes)104 b(packets)h(errors)f(dropped)53
b(carrier)g(collsns)379 3442 y(178558497)105 b(1783945)g(332)257
b(0)359 b(332)257 b(35172)379 3563 y(TX)52 b(errors:)h(aborted)105
b(fifo)206 b(window)104 b(heartbeat)943 3683 y(0)411
b(0)359 b(0)g(332)174 3803 y(kuznet@alisa:~)55 b($)174
3988 y Fo(These)39 b(error)e(names)g(are)g(pure)h(Ethernetisms.)58
b(Other)38 b(devices)h(ma)m(y)e(ha)m(v)m(e)h(non)f(zero)g(v)-5
b(alues)174 4109 y(in)33 b(these)h(\014elds)g(but)f(they)g(ma)m(y)h(b)s
(e)e(in)m(terpreted)j(di\013eren)m(tly)-8 b(.)174 4436
y Fn(5)161 b Ff(ip)74 b(address)52 b Fn(|)j(proto)t(col)d(address)g
(managemen)l(t)174 4655 y Fj(Abbreviations:)104 b Fk(address)p
Fo(,)35 b Fk(addr)p Fo(,)e Fk(a)p Fo(.)174 4909 y Fj(Ob)6
b(ject:)98 b Fo(The)32 b Fk(address)h Fo(is)e(a)f(proto)s(col)g(\(IP)h
(or)g(IPv6\))g(address)h(attac)m(hed)f(to)g(a)f(net)m(w)m(ork)i(de-)174
5029 y(vice.)43 b(Eac)m(h)26 b(device)h(m)m(ust)g(ha)m(v)m(e)g(at)e
(least)h(one)g(address)h(to)e(use)h(the)g(corresp)s(onding)h(proto)s
(col.)40 b(It)174 5150 y(is)29 b(p)s(ossible)g(to)e(ha)m(v)m(e)j(sev)m
(eral)f(di\013eren)m(t)g(addresses)h(attac)m(hed)f(to)f(one)g(device.)
43 b(These)30 b(addresses)174 5270 y(are)37 b(not)g(discriminated,)j
(so)e(that)e(the)i(term)f Fl(alias)45 b Fo(is)37 b(not)g(quite)h
(appropriate)f(for)f(them)i(and)174 5391 y(w)m(e)c(do)e(not)h(use)g(it)
g(in)g(this)g(do)s(cumen)m(t.)321 5511 y(The)47 b Fk(ip)52
b(addr)c Fo(command)g(displa)m(ys)g(addresses)h(and)e(their)g(prop)s
(erties,)52 b(adds)47 b(new)h(ad-)174 5631 y(dresses)35
b(and)e(deletes)h(old)f(ones.)p eop end
%%Page: 12 12
TeXDict begin 12 11 bop 174 324 a Fo(12)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fj(Commands:)105 b Fk(add)p
Fo(,)33 b Fk(delete)p Fo(,)i Fk(flush)e Fo(and)g Fk(show)h
Fo(\(or)e Fk(list)p Fo(\).)174 918 y Fc(5.1)136 b Fb(ip)60
b(address)e(add)44 b Fc(|)h(add)g(a)g(new)g(proto)t(col)g(address)174
1103 y Fj(Abbreviations:)104 b Fk(add)p Fo(,)34 b Fk(a)p
Fo(.)174 1361 y Fj(Argumen)m(ts:)320 1555 y Fe(\017)48
b Fk(dev)k(NAME)418 1715 y Fo(|)32 b(the)h(name)g(of)g(the)g(device)h
(to)e(add)h(the)g(address)h(to.)320 1916 y Fe(\017)48
b Fk(local)53 b(ADDRESS)34 b Fo(\(default\))418 2076
y(|)46 b(the)h(address)g(of)f(the)h(in)m(terface.)85
b(The)47 b(format)f(of)g(the)g(address)i(dep)s(ends)g(on)e(the)418
2196 y(proto)s(col.)57 b(It)37 b(is)h(a)f(dotted)g(quad)h(for)f(IP)g
(and)h(a)f(sequence)j(of)c(hexadecimal)j(halfw)m(ords)418
2317 y(separated)e(b)m(y)h(colons)f(for)e(IPv6.)56 b(The)37
b Fk(ADDRESS)h Fo(ma)m(y)f(b)s(e)f(follo)m(w)m(ed)i(b)m(y)f(a)f(slash)h
(and)g(a)418 2437 y(decimal)d(n)m(um)m(b)s(er)g(whic)m(h)g(enco)s(des)g
(the)f(net)m(w)m(ork)h(pre\014x)g(length.)320 2637 y
Fe(\017)48 b Fk(peer)53 b(ADDRESS)418 2798 y Fo(|)40
b(the)h(address)h(of)e(the)h(remote)g(endp)s(oin)m(t)h(for)e(p)s(oin)m
(top)s(oin)m(t)g(in)m(terfaces.)69 b(Again,)43 b(the)418
2918 y Fk(ADDRESS)37 b Fo(ma)m(y)f(b)s(e)f(follo)m(w)m(ed)h(b)m(y)g(a)f
(slash)g(and)h(a)e(decimal)i(n)m(um)m(b)s(er,)h(enco)s(ding)f(the)f
(net-)418 3038 y(w)m(ork)e(pre\014x)f(length.)44 b(If)31
b(a)g(p)s(eer)h(address)h(is)f(sp)s(eci\014ed,)i(the)e(lo)s(cal)f
(address)i Fl(c)-5 b(annot)40 b Fo(ha)m(v)m(e)418 3159
y(a)28 b(pre\014x)h(length.)42 b(The)29 b(net)m(w)m(ork)h(pre\014x)f
(is)f(asso)s(ciated)h(with)g(the)f(p)s(eer)h(rather)f(than)g(with)418
3279 y(the)33 b(lo)s(cal)g(address.)320 3479 y Fe(\017)48
b Fk(broadcast)54 b(ADDRESS)418 3640 y Fo(|)32 b(the)h(broadcast)g
(address)h(on)f(the)g(in)m(terface.)418 3800 y(It)j(is)h(p)s(ossible)g
(to)f(use)h(the)g(sp)s(ecial)g(sym)m(b)s(ols)h Fk('+')f
Fo(and)f Fk('-')h Fo(instead)g(of)e(the)i(broadcast)418
3920 y(address.)48 b(In)35 b(this)f(case,)h(the)f(broadcast)g(address)h
(is)f(deriv)m(ed)i(b)m(y)f(setting/resetting)g(the)418
4041 y(host)e(bits)g(of)f(the)h(in)m(terface)h(pre\014x.)654
4227 y Fi(NB.)k(Unlik)n(e)19 b Fd(ifconfig)p Fi(,)f(the)h
Fd(ip)f Fi(utilit)n(y)h Fa(do)l(es)k(not)j Fi(set)19
b(an)n(y)f(broadcast)f(address)h(unless)g(explicitly)654
4327 y(requested.)320 4527 y Fe(\017)48 b Fk(label)53
b(NAME)418 4688 y Fo(|)35 b(Eac)m(h)h(address)g(ma)m(y)g(b)s(e)g
(tagged)f(with)g(a)g(lab)s(el)h(string.)51 b(In)36 b(order)f(to)g
(preserv)m(e)i(com-)418 4808 y(patibilit)m(y)31 b(with)f(Lin)m(ux-2.0)g
(net)g(aliases,)h(this)g(string)f(m)m(ust)g(coincide)h(with)g(the)f
(name)g(of)418 4928 y(the)j(device)i(or)d(m)m(ust)i(b)s(e)e(pre\014xed)
j(with)e(the)g(device)h(name)f(follo)m(w)m(ed)h(b)m(y)f(colon.)320
5129 y Fe(\017)48 b Fk(scope)53 b(SCOPE_VALUE)418 5289
y Fo(|)37 b(the)h(scop)s(e)g(of)g(the)f(area)h(where)h(this)f(address)h
(is)f(v)-5 b(alid.)58 b(The)39 b(a)m(v)-5 b(ailable)37
b(scop)s(es)i(are)418 5409 y(listed)34 b(in)f(\014le)g
Fk(/etc/iproute2/rt_scopes)p Fo(.)49 b(Prede\014ned)35
b(scop)s(e)e(v)-5 b(alues)34 b(are:)528 5631 y Fj({)49
b Fk(global)34 b Fo(|)e(the)h(address)h(is)f(globally)g(v)-5
b(alid.)p eop end
%%Page: 13 13
TeXDict begin 13 12 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(13)528 631 y Fj({)49 b Fk(site)31 b Fo(|)f(\(IPv6)h(only\))g(the)g
(address)h(is)f(site)g(lo)s(cal,)g(i.e.)g(it)g(is)g(v)-5
b(alid)30 b(inside)i(this)f(site.)528 795 y Fj({)49 b
Fk(link)33 b Fo(|)f(the)h(address)h(is)f(link)h(lo)s(cal,)e(i.e.)h(it)g
(is)g(v)-5 b(alid)33 b(only)g(on)f(this)i(device.)528
959 y Fj({)49 b Fk(host)33 b Fo(|)f(the)h(address)h(is)f(v)-5
b(alid)33 b(only)g(inside)h(this)f(host.)418 1195 y(App)s(endix)h(A)f
(\(p.48)f(of)g(this)i(do)s(cumen)m(t\))f(con)m(tains)h(more)f(details)g
(on)g(address)h(scop)s(es.)174 1461 y Fj(Examples:)320
1669 y Fe(\017)48 b Fk(ip)k(addr)g(add)g(127.0.0.1/8)j(dev)d(lo)f(brd)i
(+)e(scope)i(host)418 1834 y Fo(|)32 b(add)h(the)g(usual)g(lo)s(opbac)m
(k)g(address)h(to)f(the)g(lo)s(opbac)m(k)g(device.)320
2042 y Fe(\017)48 b Fk(ip)k(addr)g(add)g(10.0.0.1/24)j(brd)d(+)f(dev)h
(eth0)h(label)f(eth0:Alias)418 2207 y Fo(|)25 b(add)h(the)g(address)h
(10.0.0.1)e(with)h(pre\014x)h(length)f(24)g(\(i.e.)g(netmask)h
Fk(255.255.255.0)p Fo(\),)418 2327 y(standard)33 b(broadcast)g(and)g
(lab)s(el)g Fk(eth0:Alias)i Fo(to)d(the)h(in)m(terface)h
Fk(eth0)p Fo(.)174 2623 y Fc(5.2)136 b Fb(ip)60 b(address)e(delete)42
b Fc(|)k(delete)g(a)f(proto)t(col)h(address)174 2809
y Fj(Abbreviations:)104 b Fk(delete)p Fo(,)34 b Fk(del)p
Fo(,)g Fk(d)p Fo(.)174 3076 y Fj(Argumen)m(ts:)98 b Fo(coincide)38
b(with)f(the)f(argumen)m(ts)i(of)d Fk(ip)52 b(addr)h(add)p
Fo(.)i(The)37 b(device)h(name)f(is)g(a)174 3196 y(required)29
b(argumen)m(t.)42 b(The)28 b(rest)g(are)f(optional.)41
b(If)27 b(no)g(argumen)m(ts)i(are)e(giv)m(en,)i(the)e(\014rst)h
(address)174 3316 y(is)33 b(deleted.)174 3583 y Fj(Examples:)320
3791 y Fe(\017)48 b Fk(ip)k(addr)g(del)g(127.0.0.1/8)j(dev)d(lo)418
3956 y Fo(|)30 b(deletes)h(the)g(lo)s(opbac)m(k)f(address)h(from)f(the)
g(lo)s(opbac)m(k)h(device.)44 b(It)30 b(w)m(ould)h(b)s(e)f(b)s(est)g
(not)418 4076 y(to)i(rep)s(eat)h(this)g(exp)s(erimen)m(t.)320
4285 y Fe(\017)48 b Fo(Disable)33 b(IP)g(on)g(the)g(in)m(terface)g
Fk(eth0)p Fo(:)521 4536 y Fk(while)52 b(ip)g(-f)g(inet)g(addr)h(del)f
(dev)g(eth0;)g(do)623 4657 y(:)g(nothing)521 4777 y(done)418
5029 y Fo(Another)43 b(metho)s(d)g(to)f(disable)h(IP)g(on)f(an)h(in)m
(terface)g(using)g Fk(ip)52 b(addr)g(flush)44 b Fo(ma)m(y)f(b)s(e)418
5149 y(found)33 b(in)g(sec.5.4,)g(p.15.)174 5444 y Fc(5.3)136
b Fb(ip)60 b(address)e(show)43 b Fc(|)j(displa)l(y)f(proto)t(col)h
(addresses)174 5631 y Fj(Abbreviations:)104 b Fk(show)p
Fo(,)34 b Fk(list)p Fo(,)f Fk(lst)p Fo(,)h Fk(sh)p Fo(,)f
Fk(ls)p Fo(,)g Fk(l)p Fo(.)p eop end
%%Page: 14 14
TeXDict begin 14 13 bop 174 324 a Fo(14)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)320
794 y Fe(\017)48 b Fk(dev)k(NAME)34 b Fo(\(default\))418
950 y(|)e(the)h(name)g(of)g(the)g(device.)320 1140 y
Fe(\017)48 b Fk(scope)53 b(SCOPE_VAL)418 1295 y Fo(|)32
b(only)h(list)g(addresses)i(with)e(this)h(scop)s(e.)320
1485 y Fe(\017)48 b Fk(to)k(PREFIX)418 1640 y Fo(|)32
b(only)h(list)g(addresses)i(matc)m(hing)f(this)f(pre\014x.)320
1830 y Fe(\017)48 b Fk(label)53 b(PATTERN)418 1985 y
Fo(|)42 b(only)h(list)g(addresses)h(with)f(lab)s(els)g(matc)m(hing)h
(the)e Fk(PATTERN)p Fo(.)j Fk(PATTERN)f Fo(is)f(a)f(usual)418
2106 y(shell)34 b(st)m(yle)g(pattern.)320 2296 y Fe(\017)48
b Fk(dynamic)35 b Fo(and)d Fk(permanent)418 2451 y Fo(|)24
b(\(IPv6)h(only\))f(only)h(list)g(addresses)h(installed)g(due)f(to)f
(stateless)i(address)f(con\014guration)418 2571 y(or)32
b(only)i(list)f(p)s(ermanen)m(t)g(\(not)g(dynamic\))h(addresses.)320
2761 y Fe(\017)48 b Fk(tentative)418 2917 y Fo(|)22 b(\(IPv6)h(only\))f
(only)h(list)f(addresses)i(whic)m(h)g(did)f(not)e(pass)i(duplicate)h
(address)f(detection.)320 3107 y Fe(\017)48 b Fk(deprecated)418
3262 y Fo(|)32 b(\(IPv6)i(only\))f(only)g(list)g(deprecated)h
(addresses.)320 3452 y Fe(\017)48 b Fk(primary)35 b Fo(and)d
Fk(secondary)418 3607 y Fo(|)g(only)h(list)g(primary)h(\(or)e
(secondary\))i(addresses.)174 3860 y Fj(Output)k(format:)174
4023 y Fk(kuznet@alisa:~)55 b($)d(ip)g(addr)g(ls)g(eth0)174
4144 y(3:)g(eth0:)h(<BROADCAST,MULTICAST,UP>)k(mtu)52
b(1500)h(qdisc)f(cbq)g(qlen)h(100)379 4264 y(link/ether)h
(00:a0:cc:66:18:78)i(brd)c(ff:ff:ff:ff:ff:ff)379 4385
y(inet)h(193.233.7.90/24)i(brd)d(193.233.7.255)j(scope)d(global)h(eth0)
379 4505 y(inet6)g(3ffe:2400:0:1:2a0:ccff:fe)q(66:1)q(878)q(/64)58
b(scope)52 b(global)h(dynamic)533 4625 y(valid_lft)h(forever)f
(preferred_lft)i(604746sec)379 4746 y(inet6)e
(fe80::2a0:ccff:fe66:1878/)q(10)k(scope)c(link)174 4866
y(kuznet@alisa:~)i($)321 5029 y Fo(The)49 b(\014rst)g(t)m(w)m(o)g
(lines)g(coincide)h(with)e(the)h(output)g(of)e Fk(ip)52
b(link)g(ls)p Fo(.)91 b(It)49 b(is)g(natural)f(to)174
5150 y(in)m(terpret)34 b(link)f(la)m(y)m(er)h(addresses)h(as)e
(addresses)i(of)d(the)h(proto)s(col)f(family)h Fk(AF_PACKET)p
Fo(.)321 5270 y(Then)27 b(the)h(list)f(of)f(IP)h(and)g(IPv6)g
(addresses)i(follo)m(ws,)g(accompanied)f(b)m(y)f(additional)g(address)
174 5391 y(attributes:)45 b(scop)s(e)33 b(v)-5 b(alue)33
b(\(see)h(Sec.5.1,)f(p.12)f(ab)s(o)m(v)m(e\),)i(\015ags)e(and)h(the)g
(address)h(lab)s(el.)321 5511 y(Address)f(\015ags)e(are)g(set)h(b)m(y)h
(the)e(k)m(ernel)i(and)f(cannot)f(b)s(e)g(c)m(hanged)i(administrativ)m
(ely)-8 b(.)45 b(Cur-)174 5631 y(ren)m(tly)-8 b(,)34
b(the)f(follo)m(wing)g(\015ags)g(are)f(de\014ned:)p eop
end
%%Page: 15 15
TeXDict begin 15 14 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(15)294 631 y(1.)48 b Fk(secondary)418 806 y Fo(|)28
b(the)h(address)g(is)g(not)f(used)h(when)g(selecting)h(the)f(default)f
(source)i(address)f(of)f(outgoing)418 926 y(pac)m(k)m(ets)37
b(\(Cf.)d(App)s(endix)i(A,)f(p.48.\).)48 b(An)34 b(IP)h(address)h(b)s
(ecomes)f(secondary)h(if)e(another)418 1047 y(address)k(with)f(the)g
(same)g(pre\014x)g(bits)g(already)g(exists.)57 b(The)37
b(\014rst)g(address)h(is)f(primary)-8 b(.)418 1167 y(It)43
b(is)h(the)g(leader)f(of)g(the)h(group)f(of)f(all)h(secondary)i
(addresses.)77 b(When)44 b(the)g(leader)g(is)418 1288
y(deleted,)34 b(all)f(secondaries)h(are)f(purged)g(to)s(o.)294
1517 y(2.)48 b Fk(dynamic)418 1692 y Fo(|)36 b(the)g(address)i(w)m(as)f
(created)g(due)f(to)g(stateless)i(auto)s(con\014guration)d([2].)54
b(In)37 b(this)f(case)418 1813 y(the)h(output)g(also)g(con)m(tains)g
(information)g(on)f(times,)j(when)f(the)f(address)h(is)f(still)g(v)-5
b(alid.)418 1933 y(After)47 b Fk(preferred_lft)j Fo(expires)e(the)f
(address)h(is)f(mo)m(v)m(ed)h(to)f(the)g(deprecated)h(state.)418
2053 y(After)33 b Fk(valid_lft)i Fo(expires)f(the)f(address)h(is)f
(\014nally)h(in)m(v)-5 b(alidated.)294 2283 y(3.)48 b
Fk(deprecated)418 2458 y Fo(|)35 b(the)i(address)g(is)f(deprecated,)i
(i.e.)f(it)f(is)g(still)g(v)-5 b(alid,)37 b(but)f(cannot)g(b)s(e)g
(used)h(b)m(y)g(newly)418 2578 y(created)d(connections.)294
2808 y(4.)48 b Fk(tentative)418 2983 y Fo(|)40 b(the)g(address)i(is)e
(not)g(used)h(b)s(ecause)h(duplicate)f(address)g(detection)g([2])f(is)h
(still)f(not)418 3103 y(complete)34 b(or)e(failed.)174
3425 y Fc(5.4)136 b Fb(ip)60 b(address)e(flush)43 b Fc(|)i(\015ush)f
(proto)t(col)i(addresses)174 3620 y Fj(Abbreviations:)104
b Fk(flush)p Fo(,)34 b Fk(f)p Fo(.)174 3912 y Fj(Description:)98
b Fo(This)32 b(command)f(\015ushes)h(the)f(proto)s(col)f(addresses)i
(selected)h(b)m(y)e(some)g(crite-)174 4033 y(ria.)174
4325 y Fj(Argumen)m(ts:)98 b Fo(This)43 b(command)f(has)g(the)f(same)i
(argumen)m(ts)f(as)g Fk(show)p Fo(.)70 b(The)43 b(di\013erence)g(is)174
4445 y(that)33 b(it)f(do)s(es)h(not)g(run)g(when)g(no)g(argumen)m(ts)g
(are)g(giv)m(en.)174 4737 y Fj(W)-9 b(arning:)98 b Fo(This)37
b(command)g(\(and)e(other)h Fk(flush)h Fo(commands)g(describ)s(ed)h(b)s
(elo)m(w\))e(is)g(prett)m(y)174 4858 y(dangerous.)44
b(If)31 b(y)m(ou)h(mak)m(e)g(a)f(mistak)m(e,)i(it)e(will)h(not)f
(forgiv)m(e)h(it,)f(but)h(will)g(cruelly)g(purge)g(all)f(the)174
4978 y(addresses.)174 5270 y Fj(Statistics:)98 b Fo(With)25
b(the)g Fk(-statistics)j Fo(option,)e(the)f(command)g(b)s(ecomes)h(v)m
(erb)s(ose.)43 b(It)24 b(prin)m(ts)174 5391 y(out)42
b(the)h(n)m(um)m(b)s(er)h(of)d(deleted)j(addresses)g(and)e(the)h(n)m
(um)m(b)s(er)h(of)d(rounds)i(made)g(to)f(\015ush)h(the)174
5511 y(address)35 b(list.)46 b(If)34 b(this)g(option)f(is)h(giv)m(en)g
(t)m(wice,)h Fk(ip)52 b(addr)g(flush)35 b Fo(also)e(dumps)i(all)e(the)h
(deleted)174 5631 y(addresses)h(in)e(the)g(format)f(describ)s(ed)i(in)f
(the)g(previous)h(subsection.)p eop end
%%Page: 16 16
TeXDict begin 16 15 bop 174 324 a Fo(16)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fj(Example:)99 b Fo(Delete)33
b(all)g(the)g(addresses)i(from)d(the)h(priv)-5 b(ate)33
b(net)m(w)m(ork)h(10.0.0.0/8:)174 811 y Fk(netadm@amber:~)55
b(#)d(ip)g(-s)f(-s)h(a)g(f)f(to)h(10/8)174 931 y(2:)g(dummy)207
b(inet)52 b(10.7.7.7/16)i(brd)e(10.7.255.255)j(scope)d(global)h(dummy)
174 1052 y(3:)f(eth0)206 b(inet)53 b(10.10.7.7/16)h(brd)e
(10.10.255.255)j(scope)d(global)h(eth0)174 1172 y(4:)f(eth1)206
b(inet)53 b(10.8.7.7/16)h(brd)e(10.8.255.255)i(scope)f(global)g(eth1)
174 1413 y(***)f(Round)h(1,)f(deleting)h(3)f(addresses)h(***)174
1533 y(***)f(Flush)h(is)f(complete)h(after)g(1)e(round)i(***)174
1654 y(netadm@amber:~)i(#)174 1833 y Fo(Another)33 b(instructiv)m(e)i
(example)f(is)f(disabling)h(IP)f(on)f(all)h(the)g(Ethernets:)174
2013 y Fk(netadm@amber:~)55 b(#)d(ip)g(-4)f(addr)i(flush)f(label)h
("eth*")174 2193 y Fo(And)31 b(the)h(last)e(example)j(sho)m(ws)f(ho)m
(w)f(to)g(\015ush)g(all)g(the)g(IPv6)g(addresses)i(acquired)f(b)m(y)g
(the)f(host)174 2314 y(from)47 b(stateless)h(address)g(auto)s
(con\014guration)e(after)g(y)m(ou)h(enabled)h(forw)m(arding)f(or)f
(disabled)174 2434 y(auto)s(con\014guration.)174 2614
y Fk(netadm@amber:~)55 b(#)d(ip)g(-6)f(addr)i(flush)f(dynamic)174
2943 y Fn(6)161 b Ff(ip)74 b(neighbour)d Fn(|)h(neigh)l(b)t(our/arp)e
(tables)h(manage-)416 3125 y(men)l(t)174 3344 y Fj(Abbreviations:)104
b Fk(neighbour)p Fo(,)35 b Fk(neighbor)p Fo(,)g Fk(neigh)p
Fo(,)f Fk(n)p Fo(.)174 3600 y Fj(Ob)6 b(ject:)103 b Fk(neighbour)32
b Fo(ob)5 b(jects)31 b(establish)g(bindings)g(b)s(et)m(w)m(een)h(proto)
s(col)d(addresses)j(and)d(link)174 3720 y(la)m(y)m(er)34
b(addresses)g(for)e(hosts)h(sharing)g(the)g(same)g(link.)44
b(Neigh)m(b)s(our)33 b(en)m(tries)h(are)e(organized)h(in)m(to)174
3841 y(tables.)45 b(The)33 b(IPv4)g(neigh)m(b)s(our)h(table)f(is)g(kno)
m(wn)h(b)m(y)f(another)g(name)g(|)f(the)h(ARP)g(table.)321
3961 y(The)45 b(corresp)s(onding)f(commands)i(displa)m(y)f(neigh)m(b)s
(our)g(bindings)g(and)f(their)g(prop)s(erties,)174 4082
y(add)33 b(new)h(neigh)m(b)s(our)f(en)m(tries)h(and)f(delete)g(old)g
(ones.)174 4337 y Fj(Commands:)105 b Fk(add)p Fo(,)33
b Fk(change)p Fo(,)i Fk(replace)p Fo(,)f Fk(delete)p
Fo(,)g Fk(flush)g Fo(and)f Fk(show)g Fo(\(or)g Fk(list)p
Fo(\).)174 4593 y Fj(See)i(also:)99 b Fo(App)s(endix)31
b(B,)f(p.49)g(describ)s(es)i(ho)m(w)e(to)g(manage)f(pro)m(xy)i
(ARP/NDISC)f(with)h(the)174 4713 y Fk(ip)i Fo(utilit)m(y)-8
b(.)174 4998 y Fc(6.1)136 b Fb(ip)60 b(neighbour)d(add)44
b Fc(|)h(add)g(a)g(new)g(neigh)l(b)t(our)g(en)l(try)481
5148 y Fb(ip)60 b(neighbour)d(change)42 b Fc(|)k(c)l(hange)f(an)g
(existing)h(en)l(try)481 5297 y Fb(ip)60 b(neighbour)d(replace)52
b Fc(|)k(add)g(a)f(new)h(en)l(try)g(or)f(c)l(hange)h(an)481
5447 y(existing)46 b(one)174 5631 y Fj(Abbreviations:)104
b Fk(add)p Fo(,)34 b Fk(a)p Fo(;)e Fk(change)p Fo(,)j
Fk(chg)p Fo(;)e Fk(replace)p Fo(,)h Fk(repl)p Fo(.)p
eop end
%%Page: 17 17
TeXDict begin 17 16 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(17)174 631 y Fj(Description:)98 b Fo(These)46 b(commands)e(create)
h(new)f(neigh)m(b)s(our)g(records)h(or)e(up)s(date)h(existing)174
751 y(ones.)174 1011 y Fj(Argumen)m(ts:)320 1214 y Fe(\017)k
Fk(to)k(ADDRESS)34 b Fo(\(default\))418 1376 y(|)e(the)h(proto)s(col)f
(address)i(of)e(the)h(neigh)m(b)s(our.)45 b(It)32 b(is)h(either)h(an)e
(IPv4)i(or)e(IPv6)h(address.)320 1580 y Fe(\017)48 b
Fk(dev)k(NAME)418 1741 y Fo(|)32 b(the)h(in)m(terface)h(to)e(whic)m(h)i
(this)f(neigh)m(b)s(our)h(is)f(attac)m(hed.)320 1945
y Fe(\017)48 b Fk(lladdr)53 b(LLADDRESS)418 2107 y Fo(|)32
b(the)h(link)h(la)m(y)m(er)f(address)h(of)e(the)h(neigh)m(b)s(our.)45
b Fk(LLADDRESS)35 b Fo(can)d(also)h(b)s(e)g Fk(null)p
Fo(.)320 2310 y Fe(\017)48 b Fk(nud)k(NUD_STATE)418 2472
y Fo(|)45 b(the)g(state)h(of)e(the)i(neigh)m(b)s(our)f(en)m(try)-8
b(.)82 b Fk(nud)46 b Fo(is)g(an)f(abbreviation)g(for)g(\\Neigh)m(b)s
(our)418 2592 y(Unreac)m(habilit)m(y)35 b(Detection".)44
b(The)33 b(state)g(can)g(tak)m(e)g(one)g(of)f(the)h(follo)m(wing)g(v)-5
b(alues:)508 2820 y(1.)49 b Fk(permanent)g Fo(|)d(the)h(neigh)m(b)s
(our)g(en)m(try)h(is)f(v)-5 b(alid)46 b(forev)m(er)i(and)e(can)h(b)s(e)
g(only)g(b)s(e)633 2941 y(remo)m(v)m(ed)34 b(administrativ)m(ely)-8
b(.)508 3103 y(2.)49 b Fk(noarp)34 b Fo(|)f(the)h(neigh)m(b)s(our)f(en)
m(try)i(is)e(v)-5 b(alid.)46 b(No)33 b(attempts)h(to)f(v)-5
b(alidate)33 b(this)h(en)m(try)633 3223 y(will)f(b)s(e)g(made)g(but)g
(it)f(can)h(b)s(e)g(remo)m(v)m(ed)h(when)g(its)f(lifetime)h(expires.)
508 3385 y(3.)49 b Fk(reachable)40 b Fo(|)c(the)i(neigh)m(b)s(our)g(en)
m(try)h(is)f(v)-5 b(alid)38 b(un)m(til)g(the)g(reac)m(habilit)m(y)h
(timeout)633 3505 y(expires.)508 3667 y(4.)49 b Fk(stale)i
Fo(|)e(the)h(neigh)m(b)s(our)h(en)m(try)g(is)f(v)-5 b(alid)50
b(but)g(suspicious.)98 b(This)51 b(option)f(to)633 3788
y Fk(ip)i(neigh)d Fo(do)s(es)f(not)g(c)m(hange)h(the)g(neigh)m(b)s(our)
f(state)h(if)f(it)g(w)m(as)h(v)-5 b(alid)48 b(and)g(the)633
3908 y(address)34 b(is)f(not)f(c)m(hanged)i(b)m(y)f(this)h(command.)174
4168 y Fj(Examples:)320 4371 y Fe(\017)48 b Fk(ip)k(neigh)h(add)f
(10.0.0.3)h(lladdr)g(0:0:0:0:0:1)h(dev)e(eth0)h(nud)f(perm)418
4533 y Fo(|)32 b(add)h(a)f(p)s(ermanen)m(t)i(ARP)f(en)m(try)h(for)e
(the)h(neigh)m(b)s(our)g(10.0.0.3)e(on)i(the)g(device)h
Fk(eth0)p Fo(.)320 4736 y Fe(\017)48 b Fk(ip)k(neigh)h(chg)f(10.0.0.3)h
(dev)f(eth0)g(nud)h(reachable)418 4898 y Fo(|)32 b(c)m(hange)i(its)f
(state)g(to)f Fk(reachable)p Fo(.)174 5187 y Fc(6.2)136
b Fb(ip)60 b(neighbour)d(delete)42 b Fc(|)k(delete)g(a)f(neigh)l(b)t
(our)g(en)l(try)174 5372 y Fj(Abbreviations:)104 b Fk(delete)p
Fo(,)34 b Fk(del)p Fo(,)g Fk(d)p Fo(.)174 5631 y Fj(Description:)98
b Fo(This)34 b(command)f(in)m(v)-5 b(alidates)34 b(a)f(neigh)m(b)s(our)
g(en)m(try)-8 b(.)p eop end
%%Page: 18 18
TeXDict begin 18 17 bop 174 324 a Fo(18)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)98 b
Fo(The)53 b(argumen)m(ts)g(are)f(the)h(same)f(as)g(with)h
Fk(ip)f(neigh)g(add)p Fo(,)58 b(except)c(that)174 751
y Fk(lladdr)34 b Fo(and)f Fk(nud)g Fo(are)g(ignored.)174
1063 y Fj(Example:)320 1308 y Fe(\017)48 b Fk(ip)k(neigh)h(del)f
(10.0.0.3)h(dev)f(eth0)418 1491 y Fo(|)32 b(in)m(v)-5
b(alidate)34 b(an)e(ARP)h(en)m(try)h(for)e(the)h(neigh)m(b)s(our)g
(10.0.0.3)f(on)g(the)h(device)h Fk(eth0)p Fo(.)411 1739
y Fi(NB.)58 b(The)29 b(deleted)g(neigh)n(b)r(our)f(en)n(try)h(will)g
(not)g(disapp)r(ear)f(from)h(the)g(tables)g(immediately)-7
b(.)41 b(If)30 b(it)f(is)g(in)411 1839 y(use)d(it)g(cannot)g(b)r(e)g
(deleted)h(un)n(til)f(the)h(last)e(clien)n(t)i(releases)d(it.)37
b(Otherwise)25 b(it)i(will)f(b)r(e)g(destro)n(y)n(ed)f(during)411
1938 y(the)j(next)f(garbage)f(collection.)174 2250 y
Fj(W)-9 b(arning:)98 b Fo(A)m(ttempts)28 b(to)e(delete)h(or)e(man)m
(ually)j(c)m(hange)e(a)g Fk(noarp)h Fo(en)m(try)h(created)e(b)m(y)h
(the)g(k)m(er-)174 2370 y(nel)i(ma)m(y)g(result)h(in)e(unpredictable)i
(b)s(eha)m(viour.)44 b(P)m(articularly)-8 b(,)30 b(the)f(k)m(ernel)h
(ma)m(y)f(try)g(to)f(resolv)m(e)174 2491 y(this)34 b(address)f(ev)m(en)
i(on)d(a)g Fk(NOARP)i Fo(in)m(terface)g(or)e(if)h(the)g(address)h(is)f
(m)m(ulticast)h(or)e(broadcast.)174 2831 y Fc(6.3)136
b Fb(ip)60 b(neighbour)d(show)43 b Fc(|)j(list)g(neigh)l(b)t(our)e(en)l
(tries)174 3033 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34
b Fk(list)p Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(.)174 3344
y Fj(Description:)98 b Fo(This)34 b(commands)g(displa)m(ys)h(neigh)m(b)
s(our)e(tables.)174 3656 y Fj(Argumen)m(ts:)320 3901
y Fe(\017)48 b Fk(to)k(ADDRESS)34 b Fo(\(default\))418
4084 y(|)e(the)h(pre\014x)h(selecting)g(the)f(neigh)m(b)s(ours)h(to)e
(list.)320 4329 y Fe(\017)48 b Fk(dev)k(NAME)418 4512
y Fo(|)32 b(only)h(list)g(the)g(neigh)m(b)s(ours)h(attac)m(hed)g(to)e
(this)h(device.)320 4757 y Fe(\017)48 b Fk(unused)418
4940 y Fo(|)32 b(only)h(list)g(neigh)m(b)s(ours)h(whic)m(h)g(are)f(not)
f(curren)m(tly)j(in)d(use.)320 5186 y Fe(\017)48 b Fk(nud)k(NUD_STATE)
418 5368 y Fo(|)29 b(only)h(list)f(neigh)m(b)s(our)h(en)m(tries)h(in)e
(this)h(state.)43 b Fk(NUD_STATE)32 b Fo(tak)m(es)e(v)-5
b(alues)30 b(listed)g(b)s(elo)m(w)418 5489 y(or)37 b(the)h(sp)s(ecial)h
(v)-5 b(alue)37 b Fk(all)i Fo(whic)m(h)f(means)h(all)e(states.)59
b(This)39 b(option)e(ma)m(y)h(o)s(ccur)g(more)418 5609
y(than)25 b(once.)42 b(If)25 b(this)h(option)f(is)h(absen)m(t,)i
Fk(ip)d Fo(lists)h(all)f(en)m(tries)i(except)g(for)e
Fk(none)h Fo(and)f Fk(noarp)p Fo(.)p eop end
%%Page: 19 19
TeXDict begin 19 18 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(19)174 631 y Fj(Output)38 b(format:)174 854 y Fk(kuznet@alisa:~)55
b($)d(ip)g(neigh)g(ls)174 974 y(::)g(dev)g(lo)g(lladdr)h
(00:00:00:00:00:00)j(nud)c(noarp)174 1095 y(fe80::200:cff:fe76:3f85)58
b(dev)52 b(eth0)g(lladdr)h(00:00:0c:76:3f:85)j(router)d(\\)379
1215 y(nud)f(stale)174 1336 y(0.0.0.0)h(dev)g(lo)e(lladdr)i
(00:00:00:00:00:00)j(nud)c(noarp)174 1456 y(193.233.7.254)j(dev)d(eth0)
g(lladdr)h(00:00:0c:76:3f:85)j(nud)c(reachable)174 1576
y(193.233.7.85)j(dev)d(eth0)g(lladdr)h(00:e0:1e:63:39:00)j(nud)c(stale)
174 1697 y(kuznet@alisa:~)j($)321 1916 y Fo(The)42 b(\014rst)f(w)m(ord)
h(of)f(eac)m(h)h(line)g(is)g(the)f(proto)s(col)g(address)h(of)f(the)h
(neigh)m(b)s(our.)70 b(Then)42 b(the)174 2037 y(device)j(name)f(follo)m
(ws.)77 b(The)44 b(rest)g(of)f(the)h(line)g(describ)s(es)h(the)f(con)m
(ten)m(ts)h(of)e(the)h(neigh)m(b)s(our)174 2157 y(en)m(try)34
b(iden)m(ti\014ed)g(b)m(y)g(the)f(pair)f(\(device,)j(address\).)321
2281 y Fk(lladdr)f Fo(is)f(the)g(link)g(la)m(y)m(er)h(address)g(of)e
(the)h(neigh)m(b)s(our.)321 2405 y Fk(nud)25 b Fo(is)h(the)f(state)h
(of)e(the)h(\\neigh)m(b)s(our)h(unreac)m(habilit)m(y)h(detection")f
(mac)m(hine)g(for)f(this)g(en)m(try)-8 b(.)174 2525 y(The)34
b(detailed)g(description)h(of)e(the)g(neigh)m(b)s(our)h(state)f(mac)m
(hine)i(can)e(b)s(e)h(found)f(in)g([1].)45 b(Here)34
b(is)174 2645 y(the)f(full)g(list)g(of)f(the)h(states)h(with)f(short)g
(descriptions:)294 2896 y(1.)48 b Fk(none)34 b Fo(|)e(the)h(state)g(of)
f(the)h(neigh)m(b)s(our)g(is)g(v)m(oid.)294 3116 y(2.)48
b Fk(incomplete)35 b Fo(|)d(the)h(neigh)m(b)s(our)h(is)f(in)g(the)g
(pro)s(cess)g(of)f(resolution.)294 3336 y(3.)48 b Fk(reachable)35
b Fo(|)d(the)h(neigh)m(b)s(our)g(is)h(v)-5 b(alid)32
b(and)h(apparen)m(tly)h(reac)m(hable.)294 3556 y(4.)48
b Fk(stale)42 b Fo(|)e(the)h(neigh)m(b)s(our)h(is)f(v)-5
b(alid,)43 b(but)e(is)g(probably)g(already)h(unreac)m(hable,)i(so)d
(the)418 3676 y(k)m(ernel)34 b(will)g(try)f(to)f(c)m(hec)m(k)j(it)d(at)
g(the)h(\014rst)g(transmission.)294 3896 y(5.)48 b Fk(delay)28
b Fo(|)f(a)g(pac)m(k)m(et)h(has)g(b)s(een)f(sen)m(t)i(to)d(the)i(stale)
f(neigh)m(b)s(our)h(and)f(the)h(k)m(ernel)g(is)g(w)m(aiting)418
4016 y(for)k(con\014rmation.)294 4236 y(6.)48 b Fk(probe)32
b Fo(|)d(the)i(dela)m(y)g(timer)g(expired)g(but)g(no)f(con\014rmation)g
(w)m(as)i(receiv)m(ed.)45 b(The)31 b(k)m(ernel)418 4356
y(has)i(started)g(to)g(prob)s(e)f(the)h(neigh)m(b)s(our)g(with)h
(ARP/NDISC)f(messages.)294 4576 y(7.)48 b Fk(failed)34
b Fo(|)e(resolution)i(has)f(failed.)294 4796 y(8.)48
b Fk(noarp)34 b Fo(|)e(the)h(neigh)m(b)s(our)g(is)g(v)-5
b(alid.)44 b(No)32 b(attempts)h(to)f(c)m(hec)m(k)j(the)e(en)m(try)h
(will)f(b)s(e)g(made.)294 5016 y(9.)48 b Fk(permanent)38
b Fo(|)d(it)h(is)g(a)f Fk(noarp)i Fo(en)m(try)-8 b(,)37
b(but)f(only)g(the)g(administrator)f(ma)m(y)i(remo)m(v)m(e)g(the)418
5136 y(en)m(try)d(from)e(the)h(neigh)m(b)s(our)g(table.)321
5387 y(The)22 b(link)h(la)m(y)m(er)g(address)g(is)f(v)-5
b(alid)22 b(in)g(all)g(states)g(except)i(for)d Fk(none)p
Fo(,)k Fk(failed)e Fo(and)f Fk(incomplete)p Fo(.)321
5511 y(IPv6)28 b(neigh)m(b)s(ours)g(can)f(b)s(e)h(mark)m(ed)g(with)g
(the)g(additional)f(\015ag)g Fk(router)i Fo(whic)m(h)f(means)h(that)174
5631 y(the)k(neigh)m(b)s(our)h(in)m(tro)s(duced)f(itself)h(as)e(an)h
(IPv6)g(router)g([1].)p eop end
%%Page: 20 20
TeXDict begin 20 19 bop 174 324 a Fo(20)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fj(Statistics:)98 b Fo(The)34
b Fk(-statistics)h Fo(option)d(displa)m(ys)j(some)f(usage)f
(statistics,)h(f.e.)174 889 y Fk(kuznet@alisa:~)55 b($)d(ip)g(-s)f(n)h
(ls)g(193.233.7.254)174 1010 y(193.233.7.254)j(dev)d(eth0)g(lladdr)h
(00:00:0c:76:3f:85)j(ref)c(5)g(used)g(12/13/20)h(\\)379
1130 y(nud)f(reachable)174 1250 y(kuznet@alisa:~)j($)321
1505 y Fo(Here)28 b Fk(ref)f Fo(is)h(the)g(n)m(um)m(b)s(er)g(of)f
(users)h(of)f(this)h(en)m(try)g(and)f Fk(used)i Fo(is)e(a)g(triplet)h
(of)e(time)i(in)m(terv)-5 b(als)174 1626 y(in)33 b(seconds)i(separated)
e(b)m(y)h(slashes.)45 b(In)33 b(this)g(case)g(they)h(sho)m(w)g(that:)
294 1880 y(1.)48 b(the)33 b(en)m(try)h(w)m(as)f(used)h(12)e(seconds)j
(ago.)294 2102 y(2.)48 b(the)33 b(en)m(try)h(w)m(as)f(con\014rmed)h(13)
e(seconds)j(ago.)294 2325 y(3.)48 b(the)33 b(en)m(try)h(w)m(as)f(up)s
(dated)h(20)e(seconds)i(ago.)174 2637 y Fc(6.4)136 b
Fb(ip)60 b(neighbour)d(flush)43 b Fc(|)i(\015ush)f(neigh)l(b)t(our)h
(en)l(tries)174 2829 y Fj(Abbreviations:)104 b Fk(flush)p
Fo(,)34 b Fk(f)p Fo(.)174 3112 y Fj(Description:)98 b
Fo(This)34 b(command)f(\015ushes)h(neigh)m(b)s(our)f(tables,)g
(selecting)h(en)m(tries)f(to)f(\015ush)h(b)m(y)174 3232
y(some)h(criteria.)174 3515 y Fj(Argumen)m(ts:)98 b Fo(This)34
b(command)g(has)f(the)g(same)h(argumen)m(ts)g(as)f Fk(show)p
Fo(.)45 b(The)33 b(di\013erences)i(are)174 3636 y(that)k(it)g(do)s(es)g
(not)g(run)g(when)h(no)f(argumen)m(ts)h(are)f(giv)m(en,)i(and)e(that)g
(the)g(default)h(neigh)m(b)s(our)174 3756 y(states)34
b(to)e(b)s(e)h(\015ushed)h(do)e(not)h(include)h Fk(permanent)h
Fo(and)d Fk(noarp)p Fo(.)174 4039 y Fj(Statistics:)98
b Fo(With)25 b(the)g Fk(-statistics)j Fo(option,)e(the)f(command)g(b)s
(ecomes)h(v)m(erb)s(ose.)43 b(It)24 b(prin)m(ts)174 4159
y(out)38 b(the)g(n)m(um)m(b)s(er)h(of)e(deleted)i(neigh)m(b)s(ours)g
(and)e(the)h(n)m(um)m(b)s(er)h(of)f(rounds)g(made)g(to)f(\015ush)i(the)
174 4280 y(neigh)m(b)s(our)k(table.)71 b(If)42 b(the)g(option)f(is)i
(giv)m(en)g(t)m(wice,)i Fk(ip)52 b(neigh)g(flush)43 b
Fo(also)f(dumps)h(all)f(the)174 4400 y(deleted)34 b(neigh)m(b)s(ours)g
(in)f(the)g(format)f(describ)s(ed)i(in)f(the)g(previous)h(subsection.)
174 4683 y Fj(Example:)174 4909 y Fk(netadm@alisa:~)55
b(#)d(ip)g(-s)f(-s)h(n)g(f)f(193.233.7.254)174 5029 y(193.233.7.254)k
(dev)d(eth0)g(lladdr)h(00:00:0c:76:3f:85)j(ref)c(5)g(used)g(12/13/20)h
(\\)379 5150 y(nud)f(reachable)174 5391 y(***)g(Round)h(1,)f(deleting)h
(1)f(entries)h(***)174 5511 y(***)f(Flush)h(is)f(complete)h(after)g(1)e
(round)i(***)174 5631 y(netadm@alisa:~)i(#)p eop end
%%Page: 21 21
TeXDict begin 21 20 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(21)174 631 y Fn(7)161 b Ff(ip)74 b(route)53 b Fn(|)h(routing)e
(table)h(managemen)l(t)174 850 y Fj(Abbreviations:)104
b Fk(route)p Fo(,)34 b Fk(ro)p Fo(,)f Fk(r)p Fo(.)174
1105 y Fj(Ob)6 b(ject:)103 b Fk(route)31 b Fo(en)m(tries)f(in)f(the)g
(k)m(ernel)i(routing)d(tables)i(k)m(eep)g(information)f(ab)s(out)f
(paths)i(to)174 1226 y(other)j(net)m(w)m(ork)m(ed)i(no)s(des.)321
1346 y(Eac)m(h)d(route)f(en)m(try)h(has)g(a)f Fl(key)40
b Fo(consisting)32 b(of)f(a)g Fl(pr)-5 b(e\014x)42 b
Fo(\(i.e.)32 b(a)f(pair)g(con)m(taining)h(a)f(net)m(w)m(ork)174
1467 y(address)41 b(and)e(the)g(length)h(of)e(its)i(mask\))g(and,)h
(optionally)-8 b(,)41 b(the)e(TOS)h(v)-5 b(alue.)63 b(An)39
b(IP)h(pac)m(k)m(et)174 1587 y(matc)m(hes)34 b(the)e(route)g(if)f(the)h
(highest)h(bits)f(of)g(its)g(destination)g(address)h(are)f(equal)h(to)e
(the)h(route)174 1707 y(pre\014x)i(at)e(least)h(up)g(to)f(the)h
(pre\014x)g(length)g(and)g(if)f(the)h(TOS)g(of)f(the)h(route)f(is)h
(zero)g(or)f(equal)i(to)174 1828 y(the)f(TOS)g(of)f(the)h(pac)m(k)m
(et.)321 1948 y(If)i(sev)m(eral)h(routes)g(matc)m(h)f(the)h(pac)m(k)m
(et,)h(the)e(follo)m(wing)h(pruning)f(rules)h(are)f(used)h(to)f(select)
174 2069 y(the)e(b)s(est)h(one)e(\(see)i([3]\):)294 2247
y(1.)48 b(The)34 b(longest)f(matc)m(hing)g(pre\014x)h(is)f(selected.)46
b(All)32 b(shorter)i(ones)f(are)g(dropp)s(ed.)294 2442
y(2.)48 b(If)41 b(the)g(TOS)g(of)f(some)i(route)f(with)g(the)g(longest)
g(pre\014x)h(is)f(equal)h(to)e(the)h(TOS)h(of)e(the)418
2562 y(pac)m(k)m(et,)35 b(the)e(routes)g(with)g(di\013eren)m(t)h(TOS)f
(are)f(dropp)s(ed.)418 2720 y(If)41 b(no)g(exact)h(TOS)f(matc)m(h)h(w)m
(as)f(found)g(and)g(routes)h(with)g(TOS=0)f(exist,)j(the)d(rest)h(of)
418 2840 y(routes)33 b(are)g(pruned.)418 2998 y(Otherwise,)i(the)e
(route)f(lo)s(okup)h(fails.)294 3193 y(3.)48 b(If)34
b(sev)m(eral)h(routes)f(remain)g(after)f(the)h(previous)h(steps,)g
(then)f(the)g(routes)g(with)g(the)g(b)s(est)418 3314
y(preference)h(v)-5 b(alues)33 b(are)g(selected.)294
3509 y(4.)48 b(If)33 b(w)m(e)g(still)h(ha)m(v)m(e)f(sev)m(eral)i
(routes,)e(then)g(the)g Fl(\014rst)42 b Fo(of)32 b(them)i(is)f
(selected.)654 3669 y Fi(NB.)77 b(Note)38 b(the)g(am)n(biguit)n(y)f(of)
h(the)g(last)g(step.)68 b(Unfortunately)-7 b(,)40 b(Lin)n(ux)e
(historically)f(allo)n(ws)654 3769 y(suc)n(h)30 b(a)g(bizarre)f
(situation.)45 b(The)30 b(sense)g(of)g(the)h(w)n(ord)e(\\\014rst")g
(dep)r(ends)i(on)f(the)h(order)e(of)h(route)654 3868
y(additions)i(and)g(it)h(is)f(practically)f(imp)r(ossible)h(to)h(main)n
(tain)e(a)h(bundle)h(of)f(suc)n(h)g(routes)g(in)g(this)654
3968 y(order.)418 4149 y Fo(F)-8 b(or)25 b(simplicit)m(y)i(w)m(e)f
(will)g(limit)g(ourselv)m(es)h(to)e(the)g(case)h(where)h(suc)m(h)f(a)f
(situation)h(is)f(imp)s(os-)418 4270 y(sible)36 b(and)e(routes)i(are)e
(uniquely)j(iden)m(ti\014ed)f(b)m(y)f(the)g(triplet)g
Fe(f)p Fo(pre\014x,)h(tos,)g(preference)p Fe(g)p Fo(.)418
4390 y(Actually)-8 b(,)44 b(it)d(is)h(imp)s(ossible)g(to)f(create)g
(non-unique)i(routes)e(with)h Fk(ip)f Fo(commands)h(de-)418
4511 y(scrib)s(ed)34 b(in)f(this)g(section.)418 4668
y(One)i(useful)h(exception)g(to)e(this)h(rule)g(is)g(the)g(default)g
(route)g(on)f(non-forw)m(arding)g(hosts.)418 4789 y(It)c(is)g
(\\o\016cially")h(allo)m(w)m(ed)g(to)e(ha)m(v)m(e)i(sev)m(eral)h
(fallbac)m(k)e(routes)h(when)f(sev)m(eral)i(routers)e(are)418
4909 y(presen)m(t)43 b(on)d(directly)j(connected)f(net)m(w)m(orks.)70
b(In)41 b(this)h(case,)i(Lin)m(ux-2.2)d(mak)m(es)h(\\dead)418
5029 y(gatew)m(a)m(y)31 b(detection")g([4])f(con)m(trolled)h(b)m(y)g
(neigh)m(b)s(our)g(unreac)m(habilit)m(y)h(detection)f(and)f(b)m(y)418
5150 y(advice)36 b(from)f(transp)s(ort)f(proto)s(cols)h(to)f(select)j
(a)d(w)m(orking)i(router,)f(so)g(the)h(order)f(of)f(the)418
5270 y(routes)28 b(is)g(not)f(essen)m(tial.)44 b(Ho)m(w)m(ev)m(er,)31
b(in)d(this)g(case,)h(\014ddling)f(with)g(default)g(routes)g(man)m(u-)
418 5391 y(ally)k(is)g(not)g(recommended.)45 b(Use)33
b(the)f(Router)f(Disco)m(v)m(ery)j(proto)s(col)d(\(see)i(App)s(endix)g
(D,)418 5511 y(p.52\))42 b(instead.)73 b(Actually)-8
b(,)45 b(Lin)m(ux-2.2)e(IPv6)f(do)s(es)h(not)f(giv)m(e)h(user)g(lev)m
(el)g(applications)418 5631 y(an)m(y)33 b(access)i(to)d(default)h
(routes.)p eop end
%%Page: 22 22
TeXDict begin 22 21 bop 174 324 a Fo(22)2486 b Fg(IP)33
b(Command)h(Reference)321 631 y Fo(Certainly)-8 b(,)42
b(the)e(steps)h(ab)s(o)m(v)m(e)f(are)f(not)h(p)s(erformed)g(exactly)h
(in)e(this)h(sequence.)67 b(Instead,)174 751 y(the)44
b(routing)e(table)i(in)f(the)g(k)m(ernel)h(is)g(k)m(ept)g(in)f(some)h
(data)e(structure)i(to)f(ac)m(hiev)m(e)i(the)e(\014nal)174
872 y(result)34 b(with)g(minimal)g(cost.)45 b(Ho)m(w)m(ev)m(er,)36
b(not)c(dep)s(ending)j(on)e(a)f(particular)i(routing)e(algorithm)174
992 y(implemen)m(ted)44 b(in)d(the)h(k)m(ernel,)j(w)m(e)d(can)f
(summarize)i(the)e(statemen)m(ts)i(ab)s(o)m(v)m(e)f(as:)61
b(a)41 b(route)g(is)174 1112 y(iden)m(ti\014ed)34 b(b)m(y)f(the)g
(triplet)f Fe(f)p Fo(pre\014x,)h(tos,)f(preference)p
Fe(g)p Fo(.)45 b(This)34 b Fl(key)40 b Fo(lets)33 b(us)g(lo)s(cate)f
(the)g(route)g(in)174 1233 y(the)h(routing)g(table.)174
1499 y Fj(Route)27 b(attributes:)98 b Fo(Eac)m(h)24 b(route)g(k)m(ey)h
(refers)f(to)g(a)f(routing)g(information)h(record)g(con)m(taining)174
1619 y(the)34 b(data)g(required)h(to)e(deliv)m(er)j(IP)e(pac)m(k)m(ets)
i(\(f.e.)e(output)g(device)h(and)f(next)h(hop)e(router\))h(and)174
1740 y(some)40 b(optional)e(attributes)i(\(f.e.)62 b(the)39
b(path)g(MTU)g(or)g(the)g(preferred)g(source)h(address)g(when)174
1860 y(comm)m(unicating)28 b(with)f(this)f(destination\).)43
b(These)27 b(attributes)g(are)f(describ)s(ed)i(in)f(the)f(follo)m(wing)
174 1980 y(subsection.)174 2246 y Fj(Route)41 b(t)m(yp)s(es:)98
b Fo(It)36 b(is)g(imp)s(ortan)m(t)g(that)f(the)i(set)f(of)f(required)i
(and)f(optional)g(attributes)g(de-)174 2367 y(p)s(end)31
b(on)g(the)g(route)f Fl(typ)-5 b(e)7 b Fo(.)44 b(The)31
b(most)g(imp)s(ortan)m(t)g(route)f(t)m(yp)s(e)i(is)f
Fk(unicast)p Fo(.)44 b(It)31 b(describ)s(es)h(real)174
2487 y(paths)43 b(to)f(other)g(hosts.)72 b(As)43 b(a)f(rule,)j(common)d
(routing)g(tables)h(con)m(tain)g(only)f(suc)m(h)i(routes.)174
2607 y(Ho)m(w)m(ev)m(er,)k(there)43 b(are)f(other)h(t)m(yp)s(es)h(of)e
(routes)h(with)g(di\013eren)m(t)g(seman)m(tics.)76 b(The)43
b(full)g(list)g(of)174 2728 y(t)m(yp)s(es)34 b(understo)s(o)s(d)f(b)m
(y)h(Lin)m(ux-2.2)f(is:)320 2936 y Fe(\017)48 b Fk(unicast)35
b Fo(|)d(the)h(route)g(en)m(try)h(describ)s(es)h(real)e(paths)h(to)e
(the)h(destinations)i(co)m(v)m(ered)f(b)m(y)418 3057
y(the)f(route)g(pre\014x.)320 3265 y Fe(\017)48 b Fk(unreachable)34
b Fo(|)d(these)i(destinations)f(are)g(unreac)m(hable.)44
b(P)m(ac)m(k)m(ets)34 b(are)d(discarded)i(and)418 3385
y(the)46 b(ICMP)g(message)h Fl(host)f(unr)-5 b(e)g(achable)51
b Fo(is)46 b(generated.)82 b(The)46 b(lo)s(cal)e(senders)j(get)e(an)418
3506 y Fk(EHOSTUNREACH)36 b Fo(error.)320 3714 y Fe(\017)48
b Fk(blackhole)26 b Fo(|)d(these)i(destinations)g(are)f(unreac)m
(hable.)42 b(P)m(ac)m(k)m(ets)26 b(are)e(discarded)h(silen)m(tly)-8
b(.)418 3835 y(The)34 b(lo)s(cal)e(senders)j(get)d(an)h
Fk(EINVAL)h Fo(error.)320 4043 y Fe(\017)48 b Fk(prohibit)32
b Fo(|)e(these)h(destinations)g(are)f(unreac)m(hable.)44
b(P)m(ac)m(k)m(ets)33 b(are)c(discarded)j(and)e(the)418
4163 y(ICMP)45 b(message)g Fl(c)-5 b(ommunic)g(ation)43
b(administr)-5 b(atively)44 b(pr)-5 b(ohibite)g(d)53
b Fo(is)44 b(generated.)76 b(The)418 4284 y(lo)s(cal)33
b(senders)h(get)f(an)f Fk(EACCES)i Fo(error.)320 4492
y Fe(\017)48 b Fk(local)43 b Fo(|)f(the)g(destinations)h(are)f
(assigned)h(to)e(this)i(host.)71 b(The)43 b(pac)m(k)m(ets)h(are)e(lo)s
(op)s(ed)418 4613 y(bac)m(k)34 b(and)f(deliv)m(ered)h(lo)s(cally)-8
b(.)320 4821 y Fe(\017)48 b Fk(broadcast)41 b Fo(|)c(the)i
(destinations)h(are)e(broadcast)g(addresses.)63 b(The)39
b(pac)m(k)m(ets)h(are)e(sen)m(t)418 4941 y(as)33 b(link)g(broadcasts.)
320 5150 y Fe(\017)48 b Fk(throw)27 b Fo(|)d(a)h(sp)s(ecial)h(con)m
(trol)g(route)f(used)h(together)g(with)g(p)s(olicy)f(rules)i(\(see)f
(sec.8,)h(p.35\).)418 5270 y(If)i(suc)m(h)h(a)f(route)g(is)g(selected,)
i(lo)s(okup)e(in)g(this)h(table)f(is)g(terminated)h(pretending)g(that)e
(no)418 5391 y(route)35 b(w)m(as)g(found.)50 b(Without)35
b(p)s(olicy)g(routing)f(it)h(is)g(equiv)-5 b(alen)m(t)36
b(to)f(the)g(absence)h(of)e(the)418 5511 y(route)29 b(in)f(the)h
(routing)f(table.)43 b(The)29 b(pac)m(k)m(ets)h(are)f(dropp)s(ed)g(and)
f(the)h(ICMP)h(message)f Fl(net)418 5631 y(unr)-5 b(e)g(achable)39
b Fo(is)33 b(generated.)45 b(The)33 b(lo)s(cal)f(senders)j(get)d(an)h
Fk(ENETUNREACH)i Fo(error.)p eop end
%%Page: 23 23
TeXDict begin 23 22 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(23)320 631 y Fe(\017)48 b Fk(nat)25 b Fo(|)e(a)g(sp)s(ecial)i(NA)
-8 b(T)24 b(route.)41 b(Destinations)24 b(co)m(v)m(ered)i(b)m(y)e(the)h
(pre\014x)f(are)g(considered)i(to)418 751 y(b)s(e)h(dumm)m(y)i(\(or)d
(external\))i(addresses)h(whic)m(h)g(require)f(translation)f(to)f(real)
h(\(or)g(in)m(ternal\))418 872 y(ones)46 b(b)s(efore)f(forw)m(arding.)
81 b(The)46 b(addresses)h(to)d(translate)i(to)e(are)h(selected)i(with)f
(the)418 992 y(attribute)33 b Fk(via)p Fo(.)44 b(More)33
b(ab)s(out)f(NA)-8 b(T)34 b(is)f(in)f(App)s(endix)i(C,)g(p.50.)320
1200 y Fe(\017)48 b Fk(anycast)35 b Fo(|)d(\()p Fl(not)j(implemente)-5
b(d)10 b Fo(\))31 b(the)i(destinations)h(are)f Fl(anyc)-5
b(ast)42 b Fo(addresses)35 b(assigned)418 1320 y(to)41
b(this)g(host.)69 b(They)43 b(are)e(mainly)h(equiv)-5
b(alen)m(t)42 b(to)f Fk(local)h Fo(with)g(one)f(di\013erence:)62
b(suc)m(h)418 1441 y(addresses)35 b(are)e(in)m(v)-5 b(alid)33
b(when)h(used)f(as)g(the)g(source)h(address)g(of)e(an)m(y)h(pac)m(k)m
(et.)320 1649 y Fe(\017)48 b Fk(multicast)c Fo(|)e(a)f(sp)s(ecial)i(t)m
(yp)s(e)g(used)g(for)e(m)m(ulticast)i(routing.)72 b(It)41
b(is)i(not)f(presen)m(t)h(in)418 1769 y(normal)33 b(routing)f(tables.)
174 2034 y Fj(Route)i(tables:)98 b Fo(Lin)m(ux-2.2)30
b(can)g(pac)m(k)g(routes)g(in)m(to)g(sev)m(eral)h(routing)e(tables)h
(iden)m(ti\014ed)h(b)m(y)g(a)174 2155 y(n)m(um)m(b)s(er)23
b(in)f(the)h(range)e(from)h(1)f(to)h(255)f(or)g(b)m(y)i(name)f(from)f
(the)i(\014le)f Fk(/etc/iproute2/rt_tables)p Fo(.)174
2275 y(By)32 b(default)f(all)f(normal)h(routes)g(are)g(inserted)h(in)m
(to)f(the)g Fk(main)h Fo(table)f(\(ID)f(254\))g(and)h(the)g(k)m(ernel)
174 2396 y(only)i(uses)h(this)g(table)f(when)g(calculating)g(routes.)
321 2517 y(Actually)-8 b(,)26 b(one)e(other)g(table)g(alw)m(a)m(ys)h
(exists,)i(whic)m(h)e(is)f(in)m(visible)i(but)e(ev)m(en)h(more)f(imp)s
(ortan)m(t.)174 2637 y(It)h(is)h(the)f Fk(local)h Fo(table)f(\(ID)f
(255\).)41 b(This)25 b(table)h(consists)g(of)e(routes)i(for)e(lo)s(cal)
h(and)g(broadcast)g(ad-)174 2758 y(dresses.)45 b(The)32
b(k)m(ernel)g(main)m(tains)f(this)g(table)f(automatically)h(and)g(the)f
(administrator)h(usually)174 2878 y(need)j(not)e(mo)s(dify)h(it)g(or)f
(ev)m(en)i(lo)s(ok)f(at)f(it.)321 2999 y(The)d(m)m(ultiple)g(routing)f
(tables)h(en)m(ter)g(the)g(game)f(when)h Fl(p)-5 b(olicy)31
b(r)-5 b(outing)36 b Fo(is)29 b(used.)43 b(See)29 b(sec.8,)174
3120 y(p.35.)43 b(In)31 b(this)g(case,)h(the)f(table)g(iden)m(ti\014er)
h(e\013ectiv)m(ely)h(b)s(ecomes)f(one)f(more)g(parameter,)h(whic)m(h)
174 3240 y(should)e(b)s(e)f(added)g(to)f(the)h(triplet)g
Fe(f)p Fo(pre\014x,)h(tos,)g(preference)p Fe(g)g Fo(to)e(uniquely)j
(iden)m(tify)f(the)f(route.)174 3534 y Fc(7.1)136 b Fb(ip)60
b(route)f(add)44 b Fc(|)h(add)g(a)g(new)g(route)481 3684
y Fb(ip)60 b(route)f(change)42 b Fc(|)k(c)l(hange)f(a)g(route)481
3833 y Fb(ip)60 b(route)f(replace)42 b Fc(|)j(c)l(hange)g(a)h(route)f
(or)g(add)g(a)g(new)g(one)174 4020 y Fj(Abbreviations:)104
b Fk(add)p Fo(,)34 b Fk(a)p Fo(;)e Fk(change)p Fo(,)j
Fk(chg)p Fo(;)e Fk(replace)p Fo(,)h Fk(repl)p Fo(.)174
4285 y Fj(Argumen)m(ts:)320 4493 y Fe(\017)48 b Fk(to)k(PREFIX)34
b Fo(or)e Fk(to)52 b(TYPE)g(PREFIX)35 b Fo(\(default\))418
4657 y(|)45 b(the)g(destination)h(pre\014x)g(of)e(the)h(route.)81
b(If)44 b Fk(TYPE)i Fo(is)g(omitted,)i Fk(ip)e Fo(assumes)g(t)m(yp)s(e)
418 4778 y Fk(unicast)p Fo(.)88 b(Other)47 b(v)-5 b(alues)47
b(of)f Fk(TYPE)i Fo(are)f(listed)h(ab)s(o)m(v)m(e.)86
b Fk(PREFIX)48 b Fo(is)f(an)g(IP)g(or)g(IPv6)418 4898
y(address)30 b(optionally)e(follo)m(w)m(ed)h(b)m(y)g(a)f(slash)h(and)f
(the)h(pre\014x)g(length.)42 b(If)28 b(the)h(length)f(of)g(the)418
5019 y(pre\014x)41 b(is)e(missing,)k Fk(ip)d Fo(assumes)h(a)e
(full-length)g(host)h(route.)64 b(There)40 b(is)g(also)f(a)g(sp)s
(ecial)418 5139 y Fk(PREFIX)34 b Fo(|)e Fk(default)j
Fo(|)d(whic)m(h)i(is)f(equiv)-5 b(alen)m(t)34 b(to)f(IP)g
Fk(0/0)g Fo(or)f(to)g(IPv6)i Fk(::/0)p Fo(.)320 5347
y Fe(\017)48 b Fk(tos)k(TOS)34 b Fo(or)e Fk(dsfield)53
b(TOS)418 5511 y Fo(|)37 b(the)g(T)m(yp)s(e)h(Of)f(Service)h(\(TOS\))g
(k)m(ey)-8 b(.)58 b(This)38 b(k)m(ey)g(has)f(no)g(asso)s(ciated)h(mask)
g(and)f(the)418 5631 y(longest)k(matc)m(h)g(is)f(understo)s(o)s(d)g
(as:)59 b(First,)42 b(compare)f(the)f(TOS)h(of)e(the)i(route)f(and)g
(of)p eop end
%%Page: 24 24
TeXDict begin 24 23 bop 174 324 a Fo(24)2486 b Fg(IP)33
b(Command)h(Reference)418 631 y Fo(the)e(pac)m(k)m(et.)45
b(If)32 b(they)g(are)g(not)g(equal,)g(then)h(the)f(pac)m(k)m(et)h(ma)m
(y)g(still)f(matc)m(h)g(a)g(route)g(with)418 751 y(a)40
b(zero)h(TOS.)g Fk(TOS)g Fo(is)f(either)h(an)g(8)e(bit)i(hexadecimal)h
(n)m(um)m(b)s(er)g(or)e(an)g(iden)m(ti\014er)i(from)418
872 y Fk(/etc/iproute2/rt)p 1240 872 31 4 v 41 w(dsfield)p
Fo(.)320 1078 y Fe(\017)48 b Fk(metric)53 b(NUMBER)34
b Fo(or)e Fk(preference)54 b(NUMBER)418 1241 y Fo(|)32
b(the)h(preference)i(v)-5 b(alue)33 b(of)f(the)h(route.)43
b Fk(NUMBER)35 b Fo(is)e(an)f(arbitrary)h(32bit)f(n)m(um)m(b)s(er.)320
1447 y Fe(\017)48 b Fk(table)53 b(TABLEID)418 1610 y
Fo(|)35 b(the)i(table)f(to)f(add)h(this)g(route)g(to.)52
b Fk(TABLEID)38 b Fo(ma)m(y)e(b)s(e)g(a)g(n)m(um)m(b)s(er)h(or)e(a)g
(string)i(from)418 1731 y(the)i(\014le)f Fk(/etc/iproute2/rt_tables)p
Fo(.)66 b(If)38 b(this)h(parameter)f(is)h(omitted,)h
Fk(ip)e Fo(assumes)418 1851 y(the)32 b Fk(main)h Fo(table,)f(with)g
(the)g(exception)i(of)d Fk(local)p Fo(,)i Fk(broadcast)h
Fo(and)e Fk(nat)g Fo(routes,)h(whic)m(h)418 1971 y(are)g(put)g(in)m(to)
f(the)h Fk(local)h Fo(table)f(b)m(y)h(default.)320 2177
y Fe(\017)48 b Fk(dev)k(NAME)418 2341 y Fo(|)32 b(the)h(output)g
(device)h(name.)320 2547 y Fe(\017)48 b Fk(via)k(ADDRESS)418
2710 y Fo(|)34 b(the)i(address)g(of)e(the)h(nexthop)h(router.)50
b(Actually)-8 b(,)37 b(the)e(sense)h(of)f(this)g(\014eld)h(dep)s(ends)
418 2830 y(on)43 b(the)h(route)g(t)m(yp)s(e.)76 b(F)-8
b(or)42 b(normal)i Fk(unicast)h Fo(routes)f(it)f(is)h(either)g(the)g
(true)f(nexthop)418 2951 y(router)34 b(or,)g(if)g(it)g(is)h(a)e(direct)
i(route)f(installed)i(in)e(BSD)g(compatibilit)m(y)h(mo)s(de,)g(it)f
(can)g(b)s(e)418 3071 y(a)39 b(lo)s(cal)g(address)i(of)e(the)h(in)m
(terface.)65 b(F)-8 b(or)38 b(NA)-8 b(T)40 b(routes)g(it)g(is)g(the)f
(\014rst)h(address)h(of)e(the)418 3191 y(blo)s(c)m(k)34
b(of)e(translated)h(IP)g(destinations.)320 3397 y Fe(\017)48
b Fk(src)k(ADDRESS)418 3561 y Fo(|)29 b(the)g(source)h(address)h(to)e
(prefer)g(when)i(sending)f(to)f(the)g(destinations)i(co)m(v)m(ered)g(b)
m(y)f(the)418 3681 y(route)j(pre\014x.)320 3887 y Fe(\017)48
b Fk(realm)53 b(REALMID)418 4050 y Fo(|)37 b(the)h(realm)g(to)f(whic)m
(h)i(this)f(route)f(is)h(assigned.)60 b Fk(REALMID)39
b Fo(ma)m(y)f(b)s(e)g(a)f(n)m(um)m(b)s(er)i(or)e(a)418
4171 y(string)43 b(from)e(the)i(\014le)g Fk(/etc/iproute2/rt_realms)p
Fo(.)78 b(Sec.13)42 b(\(p.46\))g(con)m(tains)h(more)418
4291 y(information)33 b(on)f(realms.)320 4497 y Fe(\017)48
b Fk(mtu)k(MTU)34 b Fo(or)e Fk(mtu)52 b(lock)g(MTU)418
4660 y Fo(|)28 b(the)g(MTU)h(along)e(the)i(path)f(to)f(the)h
(destination.)43 b(If)28 b(the)h(mo)s(di\014er)f Fk(lock)h
Fo(is)f(not)g(used,)418 4781 y(the)39 b(MTU)g(ma)m(y)h(b)s(e)e(up)s
(dated)h(b)m(y)g(the)g(k)m(ernel)h(due)f(to)f(P)m(ath)h(MTU)h(Disco)m
(v)m(ery)-8 b(.)63 b(If)38 b(the)418 4901 y(mo)s(di\014er)33
b Fk(lock)g Fo(is)g(used,)g(no)f(path)h(MTU)g(disco)m(v)m(ery)i(will)e
(b)s(e)f(tried,)h(all)f(pac)m(k)m(ets)i(will)f(b)s(e)418
5021 y(sen)m(t)h(without)f(the)g(DF)f(bit)h(in)f(IPv4)i(case)f(or)f
(fragmen)m(ted)i(to)e(MTU)i(for)e(IPv6.)320 5227 y Fe(\017)48
b Fk(window)53 b(NUMBER)418 5391 y Fo(|)36 b(the)h(maximal)g(windo)m(w)
h(for)e(TCP)i(to)e(adv)m(ertise)i(to)e(these)i(destinations,)h
(measured)418 5511 y(in)30 b(b)m(ytes.)44 b(It)30 b(limits)h(maximal)f
(data)g(bursts)g(that)g(our)f(TCP)i(p)s(eers)g(are)f(allo)m(w)m(ed)h
(to)e(send)418 5631 y(to)j(us.)p eop end
%%Page: 25 25
TeXDict begin 25 24 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(25)320 631 y Fe(\017)48 b Fk(rtt)k(NUMBER)418 794
y Fo(|)32 b(the)h(initial)g(R)-8 b(TT)33 b(\(\\Round)g(T)-8
b(rip)33 b(Time"\))g(estimate.)320 998 y Fe(\017)48 b
Fk(rttvar)53 b(NUMBER)418 1161 y Fo(|)32 b([2.3.15+)g(only])h(the)g
(initial)g(R)-8 b(TT)33 b(v)-5 b(ariance)33 b(estimate.)320
1366 y Fe(\017)48 b Fk(ssthresh)54 b(NUMBER)418 1528
y Fo(|)32 b([2.3.15+)g(only])h(an)g(estimate)g(for)f(the)h(initial)g
(slo)m(w)h(start)e(threshold.)320 1733 y Fe(\017)48 b
Fk(cwnd)53 b(NUMBER)418 1896 y Fo(|)40 b([2.3.15+)f(only])i(the)f
(clamp)h(for)e(congestion)i(windo)m(w.)68 b(It)40 b(is)h(ignored)f(if)g
(the)g Fk(lock)418 2016 y Fo(\015ag)32 b(is)i(not)e(used.)320
2221 y Fe(\017)48 b Fk(advmss)53 b(NUMBER)418 2383 y
Fo(|)47 b([2.3.15+)f(only])i(the)g(MSS)f(\(\\Maximal)h(Segmen)m(t)h
(Size"\))e(to)g(adv)m(ertise)i(to)e(these)418 2504 y(destinations)36
b(when)f(establishing)h(TCP)f(connections.)51 b(If)34
b(it)g(is)h(not)f(giv)m(en,)h(Lin)m(ux)h(uses)418 2624
y(a)d(default)f(v)-5 b(alue)33 b(calculated)h(from)e(the)h(\014rst)g
(hop)g(device)h(MTU.)654 2790 y Fi(NB.)56 b(If)28 b(the)g(path)g(to)f
(these)h(destination)f(is)h(asymmetric,)e(this)i(guess)f(ma)n(y)g(b)r
(e)h(wrong.)320 2994 y Fe(\017)48 b Fk(reordering)54
b(NUMBER)418 3157 y Fo(|)26 b([2.3.15+)f(only])h(Maximal)h(reordering)f
(on)g(the)g(path)g(to)g(this)g(destination.)42 b(If)26
b(it)g(is)g(not)418 3277 y(giv)m(en,)f(Lin)m(ux)e(uses)g(the)g(v)-5
b(alue)22 b(selected)i(with)e Fk(sysctl)h Fo(v)-5 b(ariable)22
b Fk(net/ipv4/tcp_reordering)p Fo(.)320 3482 y Fe(\017)48
b Fk(nexthop)53 b(NEXTHOP)418 3645 y Fo(|)33 b(the)h(nexthop)g(of)f(a)f
(m)m(ultipath)j(route.)45 b Fk(NEXTHOP)35 b Fo(is)f(a)f(complex)i(v)-5
b(alue)33 b(with)h(its)g(o)m(wn)418 3765 y(syn)m(tax)g(similar)g(to)e
(the)h(top)f(lev)m(el)j(argumen)m(t)e(lists:)528 3970
y Fj({)49 b Fk(via)j(ADDRESS)34 b Fo(is)f(the)g(nexthop)h(router.)528
4132 y Fj({)49 b Fk(dev)j(NAME)33 b Fo(is)h(the)f(output)f(device.)528
4295 y Fj({)49 b Fk(weight)k(NUMBER)31 b Fo(is)e(a)h(w)m(eigh)m(t)g
(for)f(this)h(elemen)m(t)h(of)e(a)g(m)m(ultipath)i(route)e
(re\015ecting)633 4415 y(its)k(relativ)m(e)h(bandwidth)f(or)g(qualit)m
(y)-8 b(.)320 4620 y Fe(\017)48 b Fk(scope)53 b(SCOPE_VAL)418
4782 y Fo(|)28 b(the)h(scop)s(e)g(of)f(the)h(destinations)g(co)m(v)m
(ered)i(b)m(y)e(the)g(route)f(pre\014x.)43 b Fk(SCOPE_VAL)31
b Fo(ma)m(y)e(b)s(e)418 4903 y(a)24 b(n)m(um)m(b)s(er)i(or)e(a)h
(string)f(from)h(the)f(\014le)h Fk(/etc/iproute2/rt_scopes)q
Fo(.)46 b(If)25 b(this)g(parameter)418 5023 y(is)38 b(omitted,)h
Fk(ip)f Fo(assumes)i(scop)s(e)e Fk(global)h Fo(for)d(all)i(gatew)m(a)m
(y)m(ed)h Fk(unicast)g Fo(routes,)g(scop)s(e)418 5144
y Fk(link)26 b Fo(for)f(direct)g Fk(unicast)i Fo(and)e
Fk(broadcast)j Fo(routes)d(and)g(scop)s(e)h Fk(host)g
Fo(for)e Fk(local)j Fo(routes.)320 5348 y Fe(\017)48
b Fk(protocol)54 b(RTPROTO)418 5511 y Fo(|)37 b(the)h(routing)f(proto)s
(col)g(iden)m(ti\014er)i(of)e(this)h(route.)59 b Fk(RTPROTO)39
b Fo(ma)m(y)f(b)s(e)g(a)f(n)m(um)m(b)s(er)i(or)418 5631
y(a)32 b(string)h(from)f(the)g(\014le)h Fk(/etc/iproute2/rt_protos)p
Fo(.)49 b(If)33 b(the)f(routing)g(proto)s(col)g(ID)g(is)p
eop end
%%Page: 26 26
TeXDict begin 26 25 bop 174 324 a Fo(26)2486 b Fg(IP)33
b(Command)h(Reference)418 631 y Fo(not)40 b(giv)m(en,)k
Fk(ip)d Fo(assumes)h(proto)s(col)e Fk(boot)h Fo(\(i.e.)g(it)f(assumes)i
(the)f(route)f(w)m(as)h(added)g(b)m(y)418 751 y(someone)30
b(who)g(do)s(esn't)f(understand)i(what)e(they)h(are)f(doing\).)42
b(Sev)m(eral)31 b(proto)s(col)d(v)-5 b(alues)418 872
y(ha)m(v)m(e)34 b(a)e(\014xed)i(in)m(terpretation.)45
b(Namely:)528 1077 y Fj({)k Fk(redirect)34 b Fo(|)f(the)g(route)f(w)m
(as)i(installed)g(due)f(to)f(an)g(ICMP)i(redirect.)528
1239 y Fj({)49 b Fk(kernel)33 b Fo(|)f(the)g(route)g(w)m(as)h
(installed)g(b)m(y)g(the)f(k)m(ernel)h(during)g(auto)s
(con\014guration.)528 1401 y Fj({)49 b Fk(boot)36 b Fo(|)e(the)h(route)
g(w)m(as)g(installed)h(during)f(the)h(b)s(o)s(otup)e(sequence.)52
b(If)35 b(a)f(routing)633 1522 y(daemon)f(starts,)g(it)g(will)g(purge)g
(all)f(of)g(them.)528 1684 y Fj({)49 b Fk(static)25 b
Fo(|)e(the)i(route)e(w)m(as)i(installed)g(b)m(y)g(the)f(administrator)g
(to)g(o)m(v)m(erride)h(dynamic)633 1805 y(routing.)46
b(Routing)33 b(daemon)h(will)g(resp)s(ect)g(them)g(and,)g(probably)-8
b(,)34 b(ev)m(en)h(adv)m(ertise)633 1925 y(them)e(to)f(its)h(p)s(eers.)
528 2087 y Fj({)49 b Fk(ra)33 b Fo(|)f(the)h(route)g(w)m(as)g
(installed)h(b)m(y)f(Router)g(Disco)m(v)m(ery)h(proto)s(col.)418
2292 y(The)j(rest)g(of)f(the)g(v)-5 b(alues)37 b(are)f(not)g(reserv)m
(ed)j(and)d(the)g(administrator)h(is)f(free)h(to)f(assign)418
2413 y(\(or)d(not)g(to)g(assign\))h(proto)s(col)e(tags.)46
b(A)m(t)33 b(least,)h(routing)f(daemons)h(should)g(tak)m(e)g(care)g(of)
418 2533 y(setting)k(some)g(unique)g(proto)s(col)f(v)-5
b(alues,)39 b(f.e.)e(as)g(they)h(are)f(assigned)h(in)f
Fk(rtnetlink.h)418 2653 y Fo(or)32 b(in)h Fk(rt_protos)i
Fo(database.)320 2858 y Fe(\017)48 b Fk(onlink)418 3021
y Fo(|)30 b(pretend)h(that)f(the)g(nexthop)h(is)g(directly)g(attac)m
(hed)g(to)e(this)i(link,)h(ev)m(en)f(if)f(it)g(do)s(es)g(not)418
3141 y(matc)m(h)j(an)m(y)g(in)m(terface)g(pre\014x.)44
b(One)32 b(application)h(of)e(this)i(option)f(ma)m(y)h(b)s(e)f(found)g
(in)g([6].)320 3346 y Fe(\017)48 b Fk(equalize)418 3508
y Fo(|)42 b(allo)m(w)g(pac)m(k)m(et)h(b)m(y)g(pac)m(k)m(et)h
(randomization)e(on)g(m)m(ultipath)g(routes.)72 b(Without)43
b(this)418 3629 y(mo)s(di\014er,)31 b(the)e(route)g(will)h(b)s(e)g
(frozen)f(to)g(one)g(selected)i(nexthop,)g(so)f(that)f(load)g
(splitting)418 3749 y(will)k(only)f(o)s(ccur)h(on)f(p)s(er-\015o)m(w)g
(base.)44 b Fk(equalize)34 b Fo(only)f(w)m(orks)g(if)f(the)h(k)m(ernel)
g(is)g(patc)m(hed.)411 3957 y Fi(NB.)50 b(Actually)25
b(there)g(are)f(more)g(commands:)35 b Fd(prepend)23 b
Fi(do)r(es)h(the)i(same)e(thing)i(as)e(classic)g Fd(route)42
b(add)p Fi(,)411 4056 y(i.e.)33 b(adds)h(a)f(route,)i(ev)n(en)e(if)h
(another)f(route)g(to)h(the)g(same)f(destination)h(exists.)54
b(Its)34 b(opp)r(osite)g(case)f(is)411 4156 y Fd(append)p
Fi(,)25 b(whic)n(h)i(adds)h(the)g(route)f(to)g(the)h(end)g(of)f(the)h
(list.)37 b(Av)n(oid)28 b(these)f(features.)411 4303
y(NB.)61 b(More)29 b(sad)h(news,)h(IPv6)e(only)h(understands)g(the)h
Fd(append)d Fi(command)i(correctly)-7 b(.)44 b(All)30
b(the)h(others)411 4403 y(are)26 b(translated)h(in)n(to)g
Fd(append)e Fi(commands.)37 b(Certainly)-7 b(,)27 b(this)h(will)f(c)n
(hange)g(in)h(the)g(future.)174 4664 y Fj(Examples:)320
4869 y Fe(\017)48 b Fo(add)33 b(a)f(plain)h(route)g(to)f(net)m(w)m(ork)
i(10.0.0/24)d(via)i(gatew)m(a)m(y)h(193.233.7.65)521
5116 y Fk(ip)52 b(route)g(add)g(10.0.0/24)i(via)e(193.233.7.65)320
5363 y Fe(\017)c Fo(c)m(hange)34 b(it)e(to)g(a)h(direct)g(route)g(via)g
(the)g Fk(dummy)h Fo(device)521 5609 y Fk(ip)52 b(ro)f(chg)h(10.0.0/24)
i(dev)e(dummy)p eop end
%%Page: 27 27
TeXDict begin 27 26 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(27)320 631 y Fe(\017)48 b Fo(add)33 b(a)f(default)h(m)m(ultipath)h
(route)e(splitting)i(the)f(load)f(b)s(et)m(w)m(een)j
Fk(ppp0)e Fo(and)g Fk(ppp1)521 858 y(ip)52 b(route)g(add)g(default)h
(scope)g(global)g(nexthop)g(dev)f(ppp0)g(\\)2264 978
y(nexthop)h(dev)f(ppp1)418 1205 y Fo(Note)42 b(the)f(scop)s(e)h(v)-5
b(alue.)70 b(It)42 b(is)g(not)f(necessary)i(but)f(it)f(informs)h(the)g
(k)m(ernel)h(that)e(this)418 1325 y(route)d(is)h(gatew)m(a)m(y)m(ed)h
(rather)e(than)g(direct.)61 b(Actually)-8 b(,)40 b(if)e(y)m(ou)h(kno)m
(w)g(the)g(addresses)h(of)418 1446 y(remote)33 b(endp)s(oin)m(ts)h(it)f
(w)m(ould)g(b)s(e)g(b)s(etter)g(to)f(use)i(the)f Fk(via)g
Fo(parameter.)320 1644 y Fe(\017)48 b Fo(announce)28
b(that)f(the)g(address)h(192.203.80.144)c(is)k(not)e(a)h(real)g(one,)h
(but)f(should)h(b)s(e)f(trans-)418 1764 y(lated)33 b(to)f(193.233.7.83)
f(b)s(efore)i(forw)m(arding)521 1991 y Fk(ip)52 b(route)g(add)g(nat)g
(192.203.80.144)j(via)d(193.233.7.83)418 2218 y Fo(Bac)m(kw)m(ard)24
b(translation)f(is)h(setup)f(with)h(p)s(olicy)f(rules)h(describ)s(ed)g
(in)f(the)g(follo)m(wing)g(section)418 2338 y(\(sec.8,)34
b(p.35\).)174 2625 y Fc(7.2)136 b Fb(ip)60 b(route)f(delete)42
b Fc(|)k(delete)g(a)f(route)174 2809 y Fj(Abbreviations:)104
b Fk(delete)p Fo(,)34 b Fk(del)p Fo(,)g Fk(d)p Fo(.)174
3066 y Fj(Argumen)m(ts:)103 b Fk(ip)52 b(route)h(del)38
b Fo(has)g(the)h(same)f(argumen)m(ts)h(as)f Fk(ip)52
b(route)h(add)p Fo(,)40 b(but)e(their)174 3187 y(seman)m(tics)d(are)e
(a)f(bit)h(di\013eren)m(t.)321 3307 y(Key)26 b(v)-5 b(alues)26
b(\()p Fk(to)p Fo(,)h Fk(tos)p Fo(,)h Fk(preference)f
Fo(and)f Fk(table)p Fo(\))g(select)h(the)f(route)f(to)g(delete.)42
b(If)26 b(optional)174 3427 y(attributes)35 b(are)e(presen)m(t,)j
Fk(ip)e Fo(v)m(eri\014es)i(that)d(they)i(coincide)f(with)h(the)f
(attributes)g(of)f(the)h(route)174 3548 y(to)40 b(delete.)66
b(If)39 b(no)h(route)g(with)g(the)g(giv)m(en)h(k)m(ey)h(and)d
(attributes)i(w)m(as)f(found,)i Fk(ip)52 b(route)h(del)174
3668 y Fo(fails.)411 3792 y Fi(NB.)59 b(Lin)n(ux-2.0)28
b(had)i(the)g(option)f(to)h(delete)g(a)f(route)g(selected)g(only)h(b)n
(y)f(pre\014x)g(address,)g(ignoring)f(its)411 3891 y(length)f(\(i.e.)i
(netmask\).)37 b(This)27 b(option)h(no)f(longer)g(exists)g(b)r(ecause)g
(it)i(w)n(as)d(am)n(biguous.)36 b(Ho)n(w)n(ev)n(er,)26
b(lo)r(ok)411 3991 y(at)h Fd(ip)43 b(route)e(flush)26
b Fi(\(sec.7.4,)h(p.31\))g(whic)n(h)g(pro)n(vides)g(similar)f(and)i(ev)
n(en)f(ric)n(her)f(functionalit)n(y)-7 b(.)174 4248 y
Fj(Example:)320 4436 y Fe(\017)48 b Fo(delete)34 b(the)f(m)m(ultipath)h
(route)e(created)i(b)m(y)f(the)g(command)h(in)e(previous)i(subsection)
521 4663 y Fk(ip)52 b(route)g(del)g(default)h(scope)g(global)g(nexthop)
g(dev)f(ppp0)g(\\)2264 4783 y(nexthop)h(dev)f(ppp1)174
5069 y Fc(7.3)136 b Fb(ip)60 b(route)f(show)43 b Fc(|)j(list)g(routes)
174 5254 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34
b Fk(list)p Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f Fk(l)p
Fo(.)174 5511 y Fj(Description:)98 b Fo(the)22 b(command)h(displa)m(ys)
h(the)e(con)m(ten)m(ts)h(of)f(the)g(routing)f(tables)i(or)e(the)i
(route\(s\))174 5631 y(selected)35 b(b)m(y)e(some)h(criteria.)p
eop end
%%Page: 28 28
TeXDict begin 28 27 bop 174 324 a Fo(28)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)320
840 y Fe(\017)48 b Fk(to)k(SELECTOR)35 b Fo(\(default\))418
1005 y(|)j(only)h(select)g(routes)g(from)f(the)g(giv)m(en)i(range)e(of)
g(destinations.)61 b Fk(SELECTOR)41 b Fo(consists)418
1125 y(of)k(an)g(optional)f(mo)s(di\014er)i(\()p Fk(root)p
Fo(,)j Fk(match)d Fo(or)f Fk(exact)p Fo(\))h(and)f(a)g(pre\014x.)81
b Fk(root)53 b(PREFIX)418 1246 y Fo(selects)35 b(routes)f(with)g
(pre\014xes)g(not)f(shorter)h(than)f Fk(PREFIX)p Fo(.)i(F.e.)e
Fk(root)52 b(0/0)34 b Fo(selects)h(the)418 1366 y(en)m(tire)c(routing)f
(table.)43 b Fk(match)52 b(PREFIX)32 b Fo(selects)g(routes)e(with)h
(pre\014xes)h(not)d(longer)h(than)418 1486 y Fk(PREFIX)p
Fo(.)43 b(F.e.)e Fk(match)52 b(10.0/16)43 b Fo(selects)g
Fk(10.0/16)p Fo(,)i Fk(10/8)c Fo(and)g Fk(0/0)p Fo(,)j(but)d(it)g(do)s
(es)g(not)418 1607 y(select)k Fk(10.1/16)g Fo(and)e Fk(10.0.0/24)p
Fo(.)77 b(And)44 b Fk(exact)52 b(PREFIX)45 b Fo(\(or)d(just)i
Fk(PREFIX)p Fo(\))g(selects)418 1727 y(routes)29 b(with)f(this)h(exact)
g(pre\014x.)43 b(If)28 b(neither)g(of)g(these)h(options)f(are)g(presen)
m(t,)j Fk(ip)d Fo(assumes)418 1848 y Fk(root)53 b(0/0)33
b Fo(i.e.)g(it)g(lists)g(the)g(en)m(tire)h(table.)320
2057 y Fe(\017)48 b Fk(tos)k(TOS)34 b Fo(or)e Fk(dsfield)53
b(TOS)418 2221 y Fo(|)32 b(only)h(select)h(routes)g(with)f(the)g(giv)m
(en)h(TOS.)320 2431 y Fe(\017)48 b Fk(table)53 b(TABLEID)418
2595 y Fo(|)42 b(sho)m(w)h(the)f(routes)h(from)f(this)h(table\(s\).)72
b(The)43 b(default)g(setting)g(is)f(to)g(sho)m(w)h Fk(table)418
2716 y(main)p Fo(.)h Fk(TABLEID)31 b Fo(ma)m(y)f(either)h(b)s(e)e(the)h
(ID)f(of)g(a)h(real)f(table)h(or)f(one)h(of)f(the)h(sp)s(ecial)g(v)-5
b(alues:)528 2925 y Fj({)49 b Fk(all)33 b Fo(|)f(list)h(all)g(of)f(the)
h(tables.)528 3089 y Fj({)49 b Fk(cache)34 b Fo(|)e(dump)h(the)g
(routing)g(cac)m(he.)654 3301 y Fi(NB.)74 b(IPv6)36 b(has)h(a)f(single)
g(table.)65 b(Ho)n(w)n(ev)n(er,)37 b(splitting)g(it)h(in)n(to)e
Fd(main)p Fi(,)i Fd(local)d Fi(and)i Fd(cache)e Fi(is)654
3401 y(em)n(ulated)28 b(b)n(y)f(the)h Fd(ip)f Fi(utilit)n(y)-7
b(.)320 3610 y Fe(\017)48 b Fk(cloned)34 b Fo(or)f Fk(cached)418
3775 y Fo(|)26 b(list)h(cloned)g(routes)g(i.e.)f(routes)h(whic)m(h)h(w)
m(ere)f(dynamically)h(fork)m(ed)f(from)f(other)h(routes)418
3895 y(b)s(ecause)h(some)f(route)f(attribute)g(\(f.e.)h(MTU\))g(w)m(as)
g(up)s(dated.)41 b(Actually)-8 b(,)29 b(it)d(is)h(equiv)-5
b(alen)m(t)418 4015 y(to)32 b Fk(table)53 b(cache)p Fo(.)320
4224 y Fe(\017)48 b Fk(from)53 b(SELECTOR)418 4389 y
Fo(|)30 b(the)h(same)g(syn)m(tax)h(as)e(for)g Fk(to)p
Fo(,)h(but)g(it)f(binds)h(the)g(source)g(address)h(range)e(rather)g
(than)418 4510 y(destinations.)45 b(Note)33 b(that)f(the)h
Fk(from)h Fo(option)e(only)h(w)m(orks)h(with)g(cloned)f(routes.)320
4719 y Fe(\017)48 b Fk(protocol)54 b(RTPROTO)418 4884
y Fo(|)32 b(only)h(list)g(routes)h(of)e(this)h(proto)s(col.)320
5093 y Fe(\017)48 b Fk(scope)53 b(SCOPE_VAL)418 5257
y Fo(|)32 b(only)h(list)g(routes)h(with)f(this)g(scop)s(e.)320
5467 y Fe(\017)48 b Fk(type)53 b(TYPE)418 5631 y Fo(|)32
b(only)h(list)g(routes)h(of)e(this)h(t)m(yp)s(e.)p eop
end
%%Page: 29 29
TeXDict begin 29 28 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(29)320 631 y Fe(\017)48 b Fk(dev)k(NAME)418 803
y Fo(|)32 b(only)h(list)g(routes)h(going)e(via)h(this)g(device.)320
1028 y Fe(\017)48 b Fk(via)k(PREFIX)418 1200 y Fo(|)32
b(only)h(list)g(routes)h(going)e(via)h(the)g(nexthop)g(routers)g
(selected)i(b)m(y)f Fk(PREFIX)p Fo(.)320 1425 y Fe(\017)48
b Fk(src)k(PREFIX)418 1597 y Fo(|)32 b(only)h(list)g(routes)h(with)f
(preferred)g(source)h(addresses)h(selected)f(b)m(y)g
Fk(PREFIX)p Fo(.)320 1822 y Fe(\017)48 b Fk(realm)53
b(REALMID)34 b Fo(or)e Fk(realms)53 b(FROMREALM/TOREALM)418
1994 y Fo(|)32 b(only)h(list)g(routes)h(with)f(these)h(realms.)174
2280 y Fj(Examples:)99 b Fo(Let)33 b(us)g(coun)m(t)h(routes)f(of)f
(proto)s(col)g Fk(gated/bgp)j Fo(on)d(a)h(router:)174
2509 y Fk(kuznet@amber:~)55 b($)d(ip)g(ro)f(ls)h(proto)h(gated/bgp)h(|)
d(wc)328 2629 y(1413)206 b(9891)g(79010)174 2750 y(kuznet@amber:~)55
b($)174 2974 y Fo(T)-8 b(o)34 b(coun)m(t)g(the)g(size)h(of)e(the)h
(routing)g(cac)m(he,)h(w)m(e)g(ha)m(v)m(e)f(to)g(use)g(the)g
Fk(-o)g Fo(option)g(b)s(ecause)h(cac)m(hed)174 3094 y(attributes)f(can)
f(tak)m(e)g(more)g(than)f(one)h(line)g(of)g(output:)174
3323 y Fk(kuznet@amber:~)55 b($)d(ip)g(-o)f(ro)h(ls)g(cloned)h(|)e(wc)
328 3444 y(159)206 b(2543)g(18707)174 3564 y(kuznet@amber:~)55
b($)174 3850 y Fj(Output)46 b(format:)98 b Fo(The)41
b(output)f(of)g(this)g(command)h(consists)h(of)d(p)s(er)h(route)g
(records)h(sep-)174 3970 y(arated)48 b(b)m(y)g(line)g(feeds.)88
b(Ho)m(w)m(ev)m(er,)54 b(some)48 b(records)g(ma)m(y)g(consist)g(of)f
(more)h(than)f(one)h(line:)174 4090 y(particularly)-8
b(,)47 b(this)d(is)g(the)g(case)g(when)g(the)g(route)g(is)f(cloned)i
(or)e(y)m(ou)h(requested)h(additional)174 4211 y(statistics.)57
b(If)36 b(the)g Fk(-o)h Fo(option)f(w)m(as)i(giv)m(en,)g(then)f(line)g
(feeds)g(separating)g(lines)h(inside)f(records)174 4331
y(are)c(replaced)h(with)f(the)g(bac)m(kslash)i(sign.)321
4456 y(The)e(output)f(has)h(the)f(same)i(syn)m(tax)f(as)g(argumen)m(ts)
g(giv)m(en)h(to)d Fk(ip)52 b(route)h(add)p Fo(,)33 b(so)f(that)g(it)174
4576 y(can)h(b)s(e)g(understo)s(o)s(d)g(easily)-8 b(.)45
b(F.e.)174 4805 y Fk(kuznet@amber:~)55 b($)d(ip)g(ro)f(ls)h
(193.233.7/24)174 4925 y(193.233.7.0/24)j(dev)d(eth0)104
b(proto)53 b(gated/conn)105 b(scope)52 b(link)h(\\)379
5046 y(src)f(193.233.7.65)j(realms)e(inr.ac)174 5166
y(kuznet@amber:~)i($)321 5391 y Fo(If)28 b(y)m(ou)g(list)h(cloned)f(en)
m(tries,)j(the)d(output)g(con)m(tains)h(other)f(attributes)h(whic)m(h)h
(are)e(ev)-5 b(aluated)174 5511 y(during)25 b(route)g(calculation)h
(and)f(up)s(dated)g(during)g(route)g(lifetime.)42 b(An)25
b(example)i(of)d(the)h(output)174 5631 y(is:)p eop end
%%Page: 30 30
TeXDict begin 30 29 bop 174 324 a Fo(30)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fk(kuznet@amber:~)55
b($)d(ip)g(ro)f(ls)h(193.233.7.82)j(tab)d(cache)174 751
y(193.233.7.82)j(from)d(193.233.7.82)j(dev)d(eth0)103
b(src)52 b(193.233.7.65)j(\\)277 872 y(realms)e(inr.ac/inr.ac)379
992 y(cache)g(<src-direct,redirect>)108 b(mtu)52 b(1500)h(rtt)f(300)g
(iif)g(eth0)174 1112 y(193.233.7.82)j(dev)d(eth0)103
b(src)53 b(193.233.7.65)h(realms)f(inr.ac)379 1233 y(cache)104
b(mtu)52 b(1500)h(rtt)f(300)174 1353 y(kuznet@amber:~)j($)411
1570 y Fi(NB.)84 b(The)42 b(route)f(lo)r(oks)g(a)h(bit)h(strange,)h(do)
r(esn't)e(it?)81 b(Did)42 b(y)n(ou)g(notice)f(that)i(it)f(is)g(a)g
(path)g(from)411 1670 y(193.233.7.82)29 b(bac)n(k)j(to)h(193.233.82?)50
b(W)-7 b(ell,)35 b(y)n(ou)d(will)h(see)g(in)g(the)h(section)f(on)f
Fd(ip)43 b(route)f(get)32 b Fi(\(p.34\))411 1769 y(ho)n(w)27
b(it)h(app)r(eared.)174 1915 y Fo(The)45 b(second)f(line,)j(starting)d
(with)g(the)g(w)m(ord)g Fk(cache)p Fo(,)j(sho)m(ws)e(additional)f
(attributes)g(whic)m(h)174 2036 y(normal)33 b(routes)g(do)g(not)f(p)s
(ossess.)45 b(Cac)m(hed)35 b(\015ags)d(are)h(summarized)h(in)f(angle)g
(brac)m(k)m(ets:)320 2250 y Fe(\017)48 b Fk(local)41
b Fo(|)d(pac)m(k)m(ets)k(are)d(deliv)m(ered)j(lo)s(cally)-8
b(.)63 b(It)40 b(stands)g(for)f(lo)s(opbac)m(k)g(unicast)i(routes,)418
2370 y(for)e(broadcast)g(routes)h(and)f(for)g(m)m(ulticast)h(routes,)h
(if)e(this)h(host)f(is)h(a)f(mem)m(b)s(er)h(of)f(the)418
2490 y(corresp)s(onding)34 b(group.)320 2704 y Fe(\017)48
b Fk(reject)e Fo(|)e(the)g(path)g(is)h(bad.)78 b(An)m(y)46
b(attempt)e(to)g(use)h(it)f(results)i(in)e(an)g(error.)78
b(See)418 2825 y(attribute)33 b Fk(error)h Fo(b)s(elo)m(w)f(\(p.31\).)
320 3038 y Fe(\017)48 b Fk(mc)33 b Fo(|)f(the)h(destination)h(is)f(m)m
(ulticast.)320 3252 y Fe(\017)48 b Fk(brd)34 b Fo(|)e(the)h
(destination)g(is)g(broadcast.)320 3466 y Fe(\017)48
b Fk(src-direct)35 b Fo(|)d(the)h(source)h(is)f(on)g(a)f(directly)i
(connected)g(in)m(terface.)320 3680 y Fe(\017)48 b Fk(redirected)35
b Fo(|)d(the)h(route)g(w)m(as)h(created)f(b)m(y)h(an)e(ICMP)i
(Redirect.)320 3894 y Fe(\017)48 b Fk(redirect)35 b Fo(|)d(pac)m(k)m
(ets)j(going)d(via)h(this)g(route)g(will)g(trigger)f(an)h(ICMP)h
(redirect.)320 4108 y Fe(\017)48 b Fk(fastroute)35 b
Fo(|)d(the)h(route)g(is)g(eligible)h(to)e(b)s(e)h(used)g(for)f
(fastroute.)320 4321 y Fe(\017)48 b Fk(equalize)35 b
Fo(|)d(mak)m(e)i(pac)m(k)m(et)g(b)m(y)f(pac)m(k)m(et)i(randomization)d
(along)h(this)g(path.)320 4535 y Fe(\017)48 b Fk(dst-nat)35
b Fo(|)d(the)h(destination)g(address)h(requires)h(translation.)320
4749 y Fe(\017)48 b Fk(src-nat)35 b Fo(|)d(the)h(source)g(address)h
(requires)h(translation.)320 4963 y Fe(\017)48 b Fk(masq)31
b Fo(|)f(the)g(source)i(address)f(requires)h(masquerading.)44
b(This)31 b(feature)g(disapp)s(eared)g(in)418 5083 y(lin)m(ux-2.4.)320
5297 y Fe(\017)48 b Fk(notify)h Fo(|)e(\()p Fl(not)h(implemente)-5
b(d)p Fo(\))46 b(c)m(hange/deletion)j(of)e(this)h(route)g(will)g
(trigger)f(R)-8 b(T-)418 5418 y(NETLINK)34 b(noti\014cation.)321
5631 y(Then)f(some)h(optional)e(attributes)i(follo)m(w:)p
eop end
%%Page: 31 31
TeXDict begin 31 30 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(31)320 631 y Fe(\017)48 b Fk(error)33 b Fo(|)d(on)h
Fk(reject)i Fo(routes)f(it)f(is)h(error)f(co)s(de)g(returned)h(to)f(lo)
s(cal)g(senders)i(when)f(they)418 751 y(try)j(to)f(use)i(this)f(route.)
50 b(These)36 b(error)e(co)s(des)i(are)e(translated)h(in)m(to)g(ICMP)h
(error)e(co)s(des,)418 872 y(sen)m(t)c(to)e(remote)g(senders,)k
(according)c(to)g(the)h(rules)g(describ)s(ed)h(ab)s(o)m(v)m(e)f(in)g
(the)f(subsection)418 992 y(dev)m(oted)34 b(to)f(route)f(t)m(yp)s(es)i
(\(p.22\).)320 1203 y Fe(\017)48 b Fk(expires)35 b Fo(|)d(this)h(en)m
(try)h(will)f(expire)h(after)e(this)h(timeout.)320 1414
y Fe(\017)48 b Fk(iif)34 b Fo(|)e(the)h(pac)m(k)m(ets)h(for)e(this)i
(path)e(are)h(exp)s(ected)h(to)e(arriv)m(e)i(on)e(this)i(in)m(terface.)
174 1682 y Fj(Statistics:)98 b Fo(With)45 b(the)h Fk(-statistics)i
Fo(option,)g(more)d(information)g(ab)s(out)f(this)i(route)f(is)174
1803 y(sho)m(wn:)320 2014 y Fe(\017)j Fk(users)34 b Fo(|)e(the)h(n)m
(um)m(b)s(er)h(of)e(users)i(of)e(this)h(en)m(try)-8 b(.)320
2224 y Fe(\017)48 b Fk(age)34 b Fo(|)e(sho)m(ws)i(when)g(this)f(route)f
(w)m(as)i(last)f(used.)320 2435 y Fe(\017)48 b Fk(used)34
b Fo(|)e(the)h(n)m(um)m(b)s(er)h(of)e(lo)s(okups)h(of)f(this)h(route)g
(since)h(its)f(creation.)174 2733 y Fc(7.4)136 b Fb(ip)60
b(route)f(flush)43 b Fc(|)i(\015ush)f(routing)i(tables)174
2921 y Fj(Abbreviations:)104 b Fk(flush)p Fo(,)34 b Fk(f)p
Fo(.)174 3189 y Fj(Description:)98 b Fo(this)34 b(command)f(\015ushes)h
(routes)g(selected)g(b)m(y)g(some)f(criteria.)174 3458
y Fj(Argumen)m(ts:)98 b Fo(the)31 b(argumen)m(ts)g(ha)m(v)m(e)h(the)e
(same)i(syn)m(tax)f(and)g(seman)m(tics)h(as)e(the)h(argumen)m(ts)174
3579 y(of)i Fk(ip)51 b(route)i(show)p Fo(,)34 b(but)f(routing)g(tables)
g(are)g(not)g(listed)h(but)f(purged.)45 b(The)33 b(only)h(di\013erence)
174 3699 y(is)e(the)f(default)g(action:)42 b Fk(show)32
b Fo(dumps)g(all)f(the)g(IP)g(main)g(routing)g(table)g(but)g
Fk(flush)h Fo(prin)m(ts)g(the)174 3819 y(help)s(er)f(page.)43
b(The)30 b(reason)h(for)e(this)h(di\013erence)i(do)s(es)e(not)g
(require)h(an)m(y)g(explanation,)g(do)s(es)f(it?)174
4088 y Fj(Statistics:)98 b Fo(With)25 b(the)g Fk(-statistics)j
Fo(option,)e(the)f(command)g(b)s(ecomes)h(v)m(erb)s(ose.)43
b(It)24 b(prin)m(ts)174 4209 y(out)k(the)g(n)m(um)m(b)s(er)i(of)d
(deleted)i(routes)g(and)f(the)g(n)m(um)m(b)s(er)h(of)f(rounds)g(made)h
(to)e(\015ush)i(the)f(routing)174 4329 y(table.)43 b(If)29
b(the)g(option)g(is)h(giv)m(en)g(t)m(wice,)h Fk(ip)52
b(route)g(flush)31 b Fo(also)e(dumps)h(all)f(the)g(deleted)i(routes)174
4449 y(in)i(the)g(format)f(describ)s(ed)j(in)d(the)h(previous)h
(subsection.)174 4718 y Fj(Examples:)99 b Fo(The)32 b(\014rst)g
(example)g(\015ushes)h(all)d(the)i(gatew)m(a)m(y)m(ed)g(routes)g(from)f
(the)g(main)g(table)174 4839 y(\(f.e.)i(after)f(a)h(routing)f(daemon)h
(crash\).)174 5051 y Fk(netadm@amber:~)55 b(#)d(ip)g(-4)f(ro)h(flush)h
(scope)f(global)h(type)g(unicast)174 5262 y Fo(This)34
b(option)f(deserv)m(es)i(to)d(b)s(e)h(put)g(in)m(to)g(a)f(scriptlet)i
Fk(routef)p Fo(.)411 5386 y Fi(NB.)44 b(This)22 b(option)g(w)n(as)f
(describ)r(ed)h(in)g(the)g Fd(route\(8\))d Fi(man)j(page)f(b)r(orro)n
(w)n(ed)f(from)i(BSD,)h(but)f(w)n(as)f(nev)n(er)411 5486
y(implemen)n(ted)28 b(in)g(Lin)n(ux.)321 5631 y Fo(The)33
b(second)h(example)g(\015ushes)h(all)d(IPv6)h(cloned)h(routes:)p
eop end
%%Page: 32 32
TeXDict begin 32 31 bop 174 324 a Fo(32)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fk(netadm@amber:~)55
b(#)d(ip)g(-6)f(-s)h(-s)g(ro)g(flush)g(cache)174 751
y(3ffe:2400::220:afff:fef4)q(:c5)q(d1)57 b(via)52 b
(3ffe:2400::220:afff:fef)q(4:c5)q(d1)57 b(\\)277 872
y(dev)52 b(eth0)104 b(metric)52 b(0)379 992 y(cache)104
b(used)53 b(2)e(age)h(12sec)h(mtu)f(1500)g(rtt)g(300)174
1112 y(3ffe:2400::280:adff:feb7)q(:80)q(34)57 b(via)52
b(3ffe:2400::280:adff:feb)q(7:80)q(34)57 b(\\)277 1233
y(dev)52 b(eth0)104 b(metric)52 b(0)379 1353 y(cache)104
b(used)53 b(2)e(age)h(15sec)h(mtu)f(1500)g(rtt)g(300)174
1474 y(3ffe:2400::280:c8ff:fe59)q(:5b)q(cc)57 b(via)52
b(3ffe:2400::280:c8ff:fe5)q(9:5b)q(cc)57 b(\\)277 1594
y(dev)52 b(eth0)104 b(metric)52 b(0)379 1714 y(cache)104
b(users)53 b(1)e(used)i(1)e(age)h(23sec)h(mtu)f(1500)g(rtt)g(300)174
1835 y(3ffe:2400:0:1:2a0:ccff:f)q(e66)q(:187)q(8)57 b(via)52
b(3ffe:2400:0:1:2a0:ccff:f)q(e66:)q(1878)58 b(\\)277
1955 y(dev)52 b(eth1)104 b(metric)52 b(0)379 2076 y(cache)104
b(used)53 b(2)e(age)h(20sec)h(mtu)f(1500)g(rtt)g(300)174
2196 y(3ffe:2400:0:1:a00:20ff:f)q(e71)q(:fb3)q(0)57 b(via)52
b(3ffe:2400:0:1:a00:20ff:f)q(e71:)q(fb30)58 b(\\)277
2316 y(dev)52 b(eth1)104 b(metric)52 b(0)379 2437 y(cache)104
b(used)53 b(2)e(age)h(33sec)h(mtu)f(1500)g(rtt)g(300)174
2557 y(ff02::1)h(via)g(ff02::1)g(dev)f(eth1)103 b(metric)53
b(0)379 2677 y(cache)104 b(users)53 b(1)e(used)i(1)e(age)h(45sec)h(mtu)
f(1500)g(rtt)g(300)174 2918 y(***)g(Round)h(1,)f(deleting)h(6)f
(entries)h(***)174 3039 y(***)f(Flush)h(is)f(complete)h(after)g(1)e
(round)i(***)174 3159 y(netadm@amber:~)i(#)d(ip)g(-6)f(-s)h(-s)g(ro)g
(flush)g(cache)174 3279 y(Nothing)h(to)f(flush.)174 3400
y(netadm@amber:~)j(#)321 3555 y Fo(The)33 b(third)g(example)h
(\015ushes)h(BGP)d(routing)g(tables)i(after)e(a)g Fk(gated)i
Fo(death.)174 3711 y Fk(netadm@amber:~)55 b(#)d(ip)g(ro)f(ls)h(proto)h
(gated/bgp)h(|)d(wc)328 3831 y(1408)206 b(9856)g(78730)174
3951 y(netadm@amber:~)55 b(#)d(ip)g(-s)f(ro)h(f)g(proto)g(gated/bgp)174
4192 y(***)g(Round)h(1,)f(deleting)h(1408)g(entries)g(***)174
4313 y(***)f(Flush)h(is)f(complete)h(after)g(1)e(round)i(***)174
4433 y(netadm@amber:~)i(#)d(ip)g(ro)f(f)h(proto)h(gated/bgp)174
4553 y(Nothing)g(to)f(flush.)174 4674 y(netadm@amber:~)j(#)d(ip)g(ro)f
(ls)h(proto)h(gated/bgp)174 4794 y(netadm@amber:~)i(#)174
5075 y Fc(7.5)136 b Fb(ip)60 b(route)f(get)44 b Fc(|)h(get)h(a)f
(single)h(route)174 5259 y Fj(Abbreviations:)104 b Fk(get)p
Fo(,)34 b Fk(g)p Fo(.)174 5511 y Fj(Description:)98 b
Fo(this)31 b(command)h(gets)f(a)f(single)i(route)e(to)g(a)h
(destination)g(and)g(prin)m(ts)h(its)f(con-)174 5631
y(ten)m(ts)j(exactly)g(as)f(the)g(k)m(ernel)h(sees)g(it.)p
eop end
%%Page: 33 33
TeXDict begin 33 32 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(33)174 631 y Fj(Argumen)m(ts:)320 828 y Fe(\017)48
b Fk(to)k(ADDRESS)34 b Fo(\(default\))418 989 y(|)e(the)h(destination)h
(address.)320 1190 y Fe(\017)48 b Fk(from)53 b(ADDRESS)418
1351 y Fo(|)32 b(the)h(source)h(address.)320 1552 y Fe(\017)48
b Fk(tos)k(TOS)34 b Fo(or)e Fk(dsfield)53 b(TOS)418 1713
y Fo(|)32 b(the)h(T)m(yp)s(e)h(Of)e(Service.)320 1915
y Fe(\017)48 b Fk(iif)k(NAME)418 2075 y Fo(|)32 b(the)h(device)i(from)d
(whic)m(h)i(this)f(pac)m(k)m(et)h(is)g(exp)s(ected)g(to)e(arriv)m(e.)
320 2277 y Fe(\017)48 b Fk(oif)k(NAME)418 2438 y Fo(|)32
b(force)h(the)g(output)g(device)h(on)f(whic)m(h)h(this)f(pac)m(k)m(et)h
(will)f(b)s(e)g(routed.)320 2639 y Fe(\017)48 b Fk(connected)418
2800 y Fo(|)39 b(if)g(no)g(source)h(address)h(\(option)e
Fk(from)p Fo(\))h(w)m(as)g(giv)m(en,)i(relo)s(okup)d(the)h(route)f
(with)h(the)418 2920 y(source)46 b(set)g(to)e(the)i(preferred)f
(address)i(receiv)m(ed)g(from)e(the)g(\014rst)g(lo)s(okup.)81
b(If)45 b(p)s(olicy)418 3041 y(routing)33 b(is)g(used,)h(it)e(ma)m(y)h
(b)s(e)g(a)g(di\013eren)m(t)g(route.)321 3238 y(Note)i(that)h(this)g
(op)s(eration)g(is)g(not)f(equiv)-5 b(alen)m(t)38 b(to)d
Fk(ip)52 b(route)h(show)p Fo(.)g Fk(show)37 b Fo(sho)m(ws)g(exist-)174
3358 y(ing)i(routes.)61 b Fk(get)39 b Fo(resolv)m(es)i(them)e(and)f
(creates)i(new)f(clones)h(if)e(necessary)-8 b(.)63 b(Essen)m(tially)-8
b(,)43 b Fk(get)174 3478 y Fo(is)37 b(equiv)-5 b(alen)m(t)37
b(to)f(sending)h(a)e(pac)m(k)m(et)i(along)f(this)g(path.)53
b(If)36 b(the)g Fk(iif)h Fo(argumen)m(t)f(is)g(not)g(giv)m(en,)174
3599 y(the)d(k)m(ernel)h(creates)g(a)e(route)h(to)f(output)g(pac)m(k)m
(ets)j(to)m(w)m(ards)e(the)g(requested)i(destination.)44
b(This)174 3719 y(is)30 b(equiv)-5 b(alen)m(t)30 b(to)f(pinging)g(the)g
(destination)g(with)h(a)e(subsequen)m(t)k Fk(ip)52 b(route)g(ls)g
(cache)p Fo(,)31 b(ho)m(w-)174 3840 y(ev)m(er,)k(no)f(pac)m(k)m(ets)h
(are)e(actually)h(sen)m(t.)47 b(With)34 b(the)g Fk(iif)g
Fo(argumen)m(t,)g(the)g(k)m(ernel)h(pretends)g(that)174
3960 y(a)e(pac)m(k)m(et)h(arriv)m(ed)f(from)g(this)g(in)m(terface)h
(and)e(searc)m(hes)j(for)d(a)g(path)h(to)f(forw)m(ard)h(the)g(pac)m(k)m
(et.)174 4219 y Fj(Output)25 b(format:)99 b Fo(This)23
b(command)f(outputs)g(routes)h(in)f(the)g(same)h(format)e(as)h
Fk(ip)51 b(route)i(ls)p Fo(.)174 4477 y Fj(Examples:)320
4675 y Fe(\017)48 b Fo(Find)33 b(a)f(route)h(to)f(output)h(pac)m(k)m
(ets)i(to)d(193.233.7.82:)418 4912 y Fk(kuznet@amber:~)55
b($)d(ip)g(route)g(get)g(193.233.7.82)418 5033 y(193.233.7.82)j(dev)d
(eth0)103 b(src)52 b(193.233.7.65)j(realms)e(inr.ac)623
5153 y(cache)104 b(mtu)52 b(1500)h(rtt)f(300)418 5273
y(kuznet@amber:~)j($)320 5511 y Fe(\017)48 b Fo(Find)25
b(a)f(route)g(to)h(forw)m(ard)f(pac)m(k)m(ets)j(arriving)d(on)h
Fk(eth0)g Fo(from)f(193.233.7.82)f(and)i(destined)418
5631 y(for)32 b(193.233.7.82:)p eop end
%%Page: 34 34
TeXDict begin 34 33 bop 174 324 a Fo(34)2486 b Fg(IP)33
b(Command)h(Reference)418 631 y Fk(kuznet@amber:~)55
b($)d(ip)g(r)f(g)h(193.233.7.82)i(from)e(193.233.7.82)j(iif)d(eth0)418
751 y(193.233.7.82)j(from)d(193.233.7.82)i(dev)f(eth0)103
b(src)52 b(193.233.7.65)j(\\)521 872 y(realms)e(inr.ac/inr.ac)623
992 y(cache)g(<src-direct,redirect>)108 b(mtu)52 b(1500)g(rtt)g(300)h
(iif)f(eth0)418 1112 y(kuznet@amber:~)j($)654 1363 y
Fi(NB.)c(This)24 b(is)h(the)g(command)g(that)g(created)f(the)i(funn)n
(y)f(route)f(from)h(193.233.7.82)20 b(lo)r(op)r(ed)25
b(bac)n(k)654 1462 y(to)j(193.233.7.82)23 b(\(cf.)29
b(NB)e(on)h(p.30\).)36 b(Note)28 b(the)g Fd(redirect)c
Fi(\015ag)j(on)g(it.)320 1667 y Fe(\017)48 b Fo(Find)g(a)g(m)m
(ulticast)h(route)f(for)f(pac)m(k)m(ets)j(arriving)e(on)g
Fk(eth0)g Fo(from)g(host)g(193.233.7.82)418 1788 y(and)34
b(destined)i(for)e(m)m(ulticast)h(group)f(224.2.127.254)f(\(it)h(is)g
(assumed)i(that)e(a)g(m)m(ulticast)418 1908 y(routing)f(daemon)g(is)g
(running.)44 b(In)33 b(this)g(case,)h(it)e(is)h Fk(pimd)p
Fo(\))418 2155 y Fk(kuznet@amber:~)55 b($)d(ip)g(r)f(g)h(224.2.127.254)
i(from)f(193.233.7.82)h(iif)e(eth0)418 2276 y(multicast)i
(224.2.127.254)h(from)d(193.233.7.82)i(dev)e(lo)104 b(\\)521
2396 y(src)52 b(193.233.7.65)i(realms)f(inr.ac/cosmos)623
2516 y(cache)g(<mc>)f(iif)g(eth0)h(Oifs:)f(eth1)h(pimreg)418
2637 y(kuznet@amber:~)i($)418 2884 y Fo(This)38 b(route)f(di\013ers)h
(from)f(the)g(ones)g(seen)i(b)s(efore.)56 b(It)37 b(con)m(tains)h(a)e
(\\normal")h(part)f(and)418 3004 y(a)h(\\m)m(ulticast")g(part.)56
b(The)38 b(normal)f(part)g(is)g(used)h(to)e(deliv)m(er)j(\(or)d(not)h
(to)f(deliv)m(er\))j(the)418 3125 y(pac)m(k)m(et)45 b(to)d(lo)s(cal)h
(IP)g(listeners.)76 b(In)43 b(this)g(case)h(the)f(router)g(is)g(not)g
(a)f(mem)m(b)s(er)i(of)f(this)418 3245 y(group,)34 b(so)g(that)f(route)
g(has)h(no)g Fk(local)g Fo(\015ag)g(and)f(only)h(forw)m(ards)g(pac)m(k)
m(ets.)49 b(The)34 b(output)418 3365 y(device)43 b(for)c(suc)m(h)j(en)m
(tries)h(is)e(alw)m(a)m(ys)h(lo)s(opbac)m(k.)67 b(The)42
b(m)m(ulticast)g(part)e(consists)i(of)e(an)418 3486 y(additional)33
b Fk(Oifs:)h Fo(list)f(sho)m(wing)h(the)f(output)f(in)m(terfaces.)321
3691 y(It)d(is)h(time)g(for)f(a)g(more)h(complicated)h(example.)44
b(Let)30 b(us)g(add)f(an)h(in)m(v)-5 b(alid)30 b(gatew)m(a)m(y)m(ed)h
(route)174 3811 y(for)h(a)h(destination)g(whic)m(h)h(is)f(really)h
(directly)g(connected:)174 4017 y Fk(netadm@alisa:~)55
b(#)d(ip)g(route)g(add)g(193.233.7.98)j(via)d(193.233.7.254)174
4137 y(netadm@alisa:~)j(#)d(ip)g(route)g(get)g(193.233.7.98)174
4258 y(193.233.7.98)j(via)d(193.233.7.254)j(dev)d(eth0)103
b(src)52 b(193.233.7.90)379 4378 y(cache)104 b(mtu)52
b(1500)h(rtt)f(3072)174 4498 y(netadm@alisa:~)j(#)174
4704 y Fo(and)33 b(prob)s(e)g(it)f(with)h(ping:)174 4909
y Fk(netadm@alisa:~)55 b(#)d(ping)g(-n)g(193.233.7.98)174
5029 y(PING)h(193.233.7.98)h(\(193.233.7.98\))h(from)d(193.233.7.90)j
(:)c(56)h(data)h(bytes)174 5150 y(From)g(193.233.7.254:)i(Redirect)e
(Host\(New)g(nexthop:)h(193.233.7.98\))174 5270 y(64)e(bytes)h(from)f
(193.233.7.98:)j(icmp_seq=0)f(ttl=255)f(time=3.5)g(ms)174
5391 y(From)g(193.233.7.254:)i(Redirect)e(Host\(New)g(nexthop:)h
(193.233.7.98\))174 5511 y(64)e(bytes)h(from)f(193.233.7.98:)j
(icmp_seq=1)f(ttl=255)f(time=2.2)g(ms)174 5631 y(64)f(bytes)h(from)f
(193.233.7.98:)j(icmp_seq=2)f(ttl=255)f(time=0.4)g(ms)p
eop end
%%Page: 35 35
TeXDict begin 35 34 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(35)174 631 y Fk(64)52 b(bytes)h(from)f(193.233.7.98:)j(icmp_seq=3)
f(ttl=255)f(time=0.4)g(ms)174 751 y(64)f(bytes)h(from)f(193.233.7.98:)j
(icmp_seq=4)f(ttl=255)f(time=0.4)g(ms)174 872 y(^C)174
992 y(---)f(193.233.7.98)j(ping)d(statistics)i(---)174
1112 y(5)e(packets)h(transmitted,)h(5)e(packets)h(received,)h(0\045)e
(packet)g(loss)174 1233 y(round-trip)i(min/avg/max)g(=)e(0.4/1.3/3.5)i
(ms)174 1353 y(netadm@alisa:~)h(#)174 1570 y Fo(What)c(happ)s(ened?)97
b(Router)50 b(193.233.7.254)e(understo)s(o)s(d)j(that)f(w)m(e)h(ha)m(v)
m(e)g(a)f(m)m(uc)m(h)i(b)s(etter)174 1690 y(path)f(to)g(the)g
(destination)h(and)f(sen)m(t)h(us)f(an)g(ICMP)h(redirect)g(message.)100
b(W)-8 b(e)51 b(ma)m(y)h(retry)174 1811 y Fk(ip)g(route)h(get)33
b Fo(to)f(see)i(what)f(w)m(e)g(ha)m(v)m(e)h(in)f(the)g(routing)g
(tables)g(no)m(w:)174 2030 y Fk(netadm@alisa:~)55 b(#)d(ip)g(route)g
(get)g(193.233.7.98)174 2150 y(193.233.7.98)j(dev)d(eth0)103
b(src)53 b(193.233.7.90)379 2271 y(cache)g(<redirected>)106
b(mtu)52 b(1500)g(rtt)g(3072)174 2391 y(netadm@alisa:~)j(#)174
2740 y Fn(8)161 b Ff(ip)74 b(rule)47 b Fn(|)h(routing)e(p)t(olicy)h
(database)g(managemen)l(t)174 2965 y Fj(Abbreviations:)104
b Fk(rule)p Fo(,)34 b Fk(ru)p Fo(.)174 3241 y Fj(Ob)6
b(ject:)103 b Fk(rule)p Fo(s)30 b(in)e(the)h(routing)f(p)s(olicy)h
(database)f(con)m(trol)h(the)f(route)h(selection)g(algorithm.)321
3364 y(Classic)i(routing)f(algorithms)f(used)i(in)f(the)g(In)m(ternet)h
(mak)m(e)g(routing)f(decisions)h(based)g(only)174 3484
y(on)f(the)g(destination)g(address)h(of)e(pac)m(k)m(ets)j(\(and)e(in)f
(theory)-8 b(,)31 b(but)f(not)f(in)h(practice,)h(on)f(the)g(TOS)174
3605 y(\014eld\).)56 b(The)38 b(seminal)f(review)h(of)e(classic)i
(routing)f(algorithms)f(and)h(their)g(mo)s(di\014cations)g(can)174
3725 y(b)s(e)c(found)g(in)g([3)o(].)321 3848 y(In)39
b(some)i(circumstances)h(w)m(e)e(w)m(an)m(t)h(to)e(route)g(pac)m(k)m
(ets)j(di\013eren)m(tly)f(dep)s(ending)g(not)e(only)174
3968 y(on)29 b(destination)h(addresses,)i(but)d(also)g(on)g(other)g
(pac)m(k)m(et)i(\014elds:)43 b(source)30 b(address,)h(IP)f(proto)s
(col,)174 4089 y(transp)s(ort)f(proto)s(col)f(p)s(orts)h(or)g(ev)m(en)h
(pac)m(k)m(et)h(pa)m(yload.)43 b(This)30 b(task)f(is)h(called)f(\\p)s
(olicy)h(routing".)411 4215 y Fi(NB.)55 b(\\p)r(olicy)27
b(routing")f Fh(6)p Fi(=)i(\\routing)e(p)r(olicy".)411
4317 y(\\p)r(olicy)h(routing")f(=)h(\\cunning)g(routing".)411
4419 y(\\routing)f(p)r(olicy")h(=)g(\\routing)f(tactics")h(or)g
(\\routing)f(plan".)321 4566 y Fo(T)-8 b(o)36 b(solv)m(e)j(this)e
(task,)h(the)g(con)m(v)m(en)m(tional)g(destination)g(based)g(routing)e
(table,)i(ordered)g(ac-)174 4686 y(cording)h(to)e(the)i(longest)g(matc)
m(h)f(rule,)j(is)d(replaced)h(with)g(a)f(\\routing)g(p)s(olicy)g
(database")h(\(or)174 4807 y(RPDB\),)k(whic)m(h)h(selects)h(routes)f(b)
m(y)g(executing)g(some)g(set)g(of)e(rules.)76 b(The)43
b(rules)h(ma)m(y)g(ha)m(v)m(e)174 4927 y(lots)32 b(of)g(k)m(eys)h(of)f
(di\013eren)m(t)h(natures)f(and)g(therefore)h(they)f(ha)m(v)m(e)h(no)f
(natural)g(ordering,)g(but)g(one)174 5047 y(imp)s(osed)41
b(b)m(y)f(the)g(administrator.)64 b(Lin)m(ux-2.2)39 b(RPDB)g(is)h(a)f
(linear)h(list)f(of)g(rules)h(ordered)g(b)m(y)174 5168
y(n)m(umeric)35 b(priorit)m(y)e(v)-5 b(alue.)44 b(RPDB)32
b(explicitly)j(allo)m(ws)e(matc)m(hing)h(a)e(few)h(pac)m(k)m(et)h
(\014elds:)320 5415 y Fe(\017)48 b Fo(pac)m(k)m(et)34
b(source)g(address.)320 5631 y Fe(\017)48 b Fo(pac)m(k)m(et)34
b(destination)g(address.)p eop end
%%Page: 36 36
TeXDict begin 36 35 bop 174 324 a Fo(36)2486 b Fg(IP)33
b(Command)h(Reference)320 631 y Fe(\017)48 b Fo(TOS.)320
841 y Fe(\017)g Fo(incoming)34 b(in)m(terface)f(\(whic)m(h)h(is)f(pac)m
(k)m(et)h(metadata,)f(rather)g(than)f(a)h(pac)m(k)m(et)h(\014eld\).)321
1078 y(Matc)m(hing)22 b(IP)h(proto)s(cols)e(and)h(transp)s(ort)g(p)s
(orts)f(is)i(also)e(p)s(ossible,)26 b(indirectly)-8 b(,)25
b(via)d Fk(ipchains)p Fo(,)174 1198 y(b)m(y)38 b(exploiting)f(their)h
(abilit)m(y)f(to)f(mark)i(some)f(classes)i(of)d(pac)m(k)m(ets)j(with)e
Fk(fwmark)p Fo(.)57 b(Therefore,)174 1319 y Fk(fwmark)34
b Fo(is)g(also)e(included)i(in)f(the)g(set)g(of)g(k)m(eys)h(c)m(hec)m
(k)m(ed)i(b)m(y)d(rules.)321 1440 y(Eac)m(h)25 b(p)s(olicy)h(routing)f
(rule)g(consists)i(of)d(a)h Fl(sele)-5 b(ctor)35 b Fo(and)25
b(an)g Fl(action)32 b Fo(predicate.)42 b(The)26 b(RPDB)174
1561 y(is)36 b(scanned)g(in)g(the)f(order)g(of)g(increasing)h(priorit)m
(y)-8 b(.)52 b(The)36 b(selector)g(of)f(eac)m(h)h(rule)f(is)h(applied)g
(to)174 1681 y Fe(f)p Fo(source)45 b(address,)j(destination)d(address,)
k(incoming)44 b(in)m(terface,)k(tos,)f(fwmark)p Fe(g)e
Fo(and,)i(if)d(the)174 1801 y(selector)50 b(matc)m(hes)g(the)f(pac)m(k)
m(et,)54 b(the)49 b(action)g(is)g(p)s(erformed.)92 b(The)49
b(action)g(predicate)h(ma)m(y)174 1922 y(return)36 b(with)f(success.)52
b(In)35 b(this)h(case,)g(it)f(will)g(either)h(giv)m(e)f(a)g(route)g(or)
f(failure)h(indication)g(and)174 2042 y(the)41 b(RPDB)f(lo)s(okup)h(is)
g(terminated.)67 b(Otherwise,)44 b(the)d(RPDB)f(program)g(con)m(tin)m
(ues)j(on)d(the)174 2162 y(next)34 b(rule.)321 2284 y(What)29
b(is)h(the)f(action,)h(seman)m(tically?)45 b(The)30 b(natural)f(action)
g(is)h(to)f(select)h(the)g(nexthop)g(and)174 2405 y(the)40
b(output)g(device.)66 b(This)40 b(is)g(what)g(Cisco)h(IOS)e([5])h(do)s
(es.)64 b(Let)40 b(us)g(call)g(it)f(\\matc)m(h)h(&)g(set".)174
2525 y(The)33 b(Lin)m(ux-2.2)e(approac)m(h)h(is)g(more)g(\015exible.)44
b(The)33 b(action)e(includes)i(lo)s(okups)f(in)g(destination-)174
2645 y(based)k(routing)f(tables)g(and)g(selecting)h(a)e(route)h(from)g
(these)h(tables)f(according)g(to)g(the)g(classic)174
2766 y(longest)41 b(matc)m(h)g(algorithm.)67 b(The)42
b(\\matc)m(h)f(&)f(set")h(approac)m(h)g(is)g(the)f(simplest)j(case)e
(of)f(the)174 2886 y(Lin)m(ux)e(one.)54 b(It)36 b(is)g(realized)h(when)
g(a)f(second)h(lev)m(el)h(routing)e(table)g(con)m(tains)h(a)f(single)h
(default)174 3006 y(route.)67 b(Recall)40 b(that)g(Lin)m(ux-2.2)h(supp)
s(orts)g(m)m(ultiple)g(tables)g(managed)g(with)g(the)f
Fk(ip)52 b(route)174 3127 y Fo(command,)34 b(describ)s(ed)g(in)f(the)g
(previous)h(section.)321 3248 y(A)m(t)e(startup)g(time)g(the)g(k)m
(ernel)h(con\014gures)g(the)f(default)g(RPDB)f(consisting)i(of)e(three)
h(rules:)294 3486 y(1.)48 b(Priorit)m(y:)f(0,)33 b(Selector:)47
b(matc)m(h)34 b(an)m(ything,)h(Action:)46 b(lo)s(okup)34
b(routing)f(table)h Fk(local)h Fo(\(ID)418 3606 y(255\).)41
b(The)29 b Fk(local)g Fo(table)g(is)f(a)g(sp)s(ecial)h(routing)e(table)
i(con)m(taining)f(high)g(priorit)m(y)h(con)m(trol)418
3726 y(routes)k(for)f(lo)s(cal)h(and)f(broadcast)h(addresses.)418
3891 y(Rule)g(0)f(is)i(sp)s(ecial.)44 b(It)33 b(cannot)f(b)s(e)h
(deleted)h(or)e(o)m(v)m(erridden.)294 4101 y(2.)48 b(Priorit)m(y:)53
b(32766,)36 b(Selector:)52 b(matc)m(h)38 b(an)m(ything,)g(Action:)52
b(lo)s(okup)37 b(routing)f(table)h Fk(main)418 4221 y
Fo(\(ID)c(254\).)43 b(The)34 b Fk(main)g Fo(table)f(is)g(the)g(normal)g
(routing)g(table)g(con)m(taining)g(all)g(non-p)s(olicy)418
4342 y(routes.)78 b(This)45 b(rule)f(ma)m(y)h(b)s(e)f(deleted)h(and/or)
e(o)m(v)m(erridden)j(with)f(other)f(ones)g(b)m(y)h(the)418
4462 y(administrator.)294 4672 y(3.)j(Priorit)m(y:)39
b(32767,)23 b(Selector:)39 b(matc)m(h)23 b(an)m(ything,)h(Action:)39
b(lo)s(okup)22 b(routing)f(table)h Fk(default)418 4792
y Fo(\(ID)34 b(253\).)49 b(The)35 b Fk(default)h Fo(table)f(is)g(empt)m
(y)-8 b(.)51 b(It)34 b(is)h(reserv)m(ed)i(for)d(some)h(p)s(ost-pro)s
(cessing)418 4913 y(if)e(no)f(previous)i(default)f(rules)h(selected)g
(the)f(pac)m(k)m(et.)45 b(This)34 b(rule)f(ma)m(y)h(also)e(b)s(e)h
(deleted.)321 5150 y(Do)22 b(not)h(confuse)h(routing)f(tables)h(with)f
(rules:)40 b(rules)24 b(p)s(oin)m(t)f(to)g(routing)g(tables,)j(sev)m
(eral)e(rules)174 5270 y(ma)m(y)30 b(refer)f(to)g(one)g(routing)g
(table)g(and)g(some)h(routing)f(tables)h(ma)m(y)f(ha)m(v)m(e)i(no)e
(rules)g(p)s(oin)m(ting)h(to)174 5391 y(them.)55 b(If)36
b(the)h(administrator)f(deletes)i(all)e(the)h(rules)g(referring)g(to)e
(a)h(table,)i(the)e(table)h(is)f(not)174 5511 y(used,)d(but)e(it)g
(still)h(exists)g(and)f(will)h(disapp)s(ear)f(only)h(after)e(all)h(the)
h(routes)f(con)m(tained)h(in)f(it)g(are)174 5631 y(deleted.)p
eop end
%%Page: 37 37
TeXDict begin 37 36 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(37)174 631 y Fj(Rule)42 b(attributes:)97 b Fo(Eac)m(h)37
b(RPDB)f(en)m(try)h(has)f(additional)g(attributes.)54
b(F.e.)36 b(eac)m(h)h(rule)f(has)174 751 y(a)45 b(p)s(oin)m(ter)g(to)f
(some)i(routing)f(table.)80 b(NA)-8 b(T)45 b(and)g(masquerading)h
(rules)g(ha)m(v)m(e)g(an)f(attribute)174 872 y(to)g(select)h(new)g(IP)f
(address)h(to)f(translate/masquerade.)82 b(Besides)47
b(that,)h(rules)d(ha)m(v)m(e)h(some)174 992 y(optional)31
b(attributes,)h(whic)m(h)g(routes)f(ha)m(v)m(e,)i(namely)f
Fk(realms)p Fo(.)44 b(These)33 b(v)-5 b(alues)31 b(do)g(not)g(o)m(v)m
(erride)174 1112 y(those)k(con)m(tained)g(in)f(the)g(routing)g(tables.)
48 b(They)35 b(are)f(only)g(used)h(if)f(the)g(route)g(did)g(not)g
(select)174 1233 y(an)m(y)g(attributes.)174 1516 y Fj(Rule)k(t)m(yp)s
(es:)98 b Fo(The)33 b(RPDB)g(ma)m(y)g(con)m(tain)g(rules)h(of)e(the)h
(follo)m(wing)g(t)m(yp)s(es:)320 1738 y Fe(\017)48 b
Fk(unicast)40 b Fo(|)d(the)i(rule)f(prescrib)s(es)i(to)e(return)g(the)h
(route)f(found)g(in)g(the)g(routing)g(table)418 1859
y(referenced)d(b)m(y)e(the)g(rule.)320 2081 y Fe(\017)48
b Fk(blackhole)35 b Fo(|)d(the)h(rule)g(prescrib)s(es)i(to)d(silen)m
(tly)j(drop)d(the)h(pac)m(k)m(et.)320 2303 y Fe(\017)48
b Fk(unreachable)h Fo(|)c(the)h(rule)g(prescrib)s(es)h(to)e(generate)i
(a)e(\\Net)m(w)m(ork)i(is)f(unreac)m(hable")418 2424
y(error.)320 2646 y Fe(\017)i Fk(prohibit)25 b Fo(|)d(the)h(rule)h
(prescrib)s(es)h(to)d(generate)h(\\Comm)m(unication)i(is)e
(administrativ)m(ely)418 2767 y(prohibited")33 b(error.)320
2989 y Fe(\017)48 b Fk(nat)33 b Fo(|)f(the)h(rule)g(prescrib)s(es)h(to)
f(translate)f(the)h(source)h(address)f(of)f(the)h(IP)g(pac)m(k)m(et)h
(in)m(to)418 3109 y(some)g(other)e(v)-5 b(alue.)44 b(More)33
b(ab)s(out)f(NA)-8 b(T)33 b(is)h(in)e(App)s(endix)i(C,)f(p.50.)174
3393 y Fj(Commands:)105 b Fk(add)p Fo(,)33 b Fk(delete)i
Fo(and)d Fk(show)i Fo(\(or)e Fk(list)p Fo(\).)174 3705
y Fc(8.1)136 b Fb(ip)60 b(rule)g(add)43 b Fc(|)j(insert)f(a)g(new)g
(rule)481 3854 y Fb(ip)60 b(rule)g(delete)42 b Fc(|)j(delete)h(a)g
(rule)174 4047 y Fj(Abbreviations:)104 b Fk(add)p Fo(,)34
b Fk(a)p Fo(;)e Fk(delete)p Fo(,)j Fk(del)p Fo(,)e Fk(d)p
Fo(.)174 4330 y Fj(Argumen)m(ts:)320 4552 y Fe(\017)48
b Fk(type)53 b(TYPE)33 b Fo(\(default\))418 4724 y(|)47
b(the)h(t)m(yp)s(e)h(of)e(this)h(rule.)90 b(The)48 b(list)g(of)g(v)-5
b(alid)47 b(t)m(yp)s(es)j(w)m(as)e(giv)m(en)h(in)f(the)g(previous)418
4844 y(subsection.)320 5066 y Fe(\017)g Fk(from)53 b(PREFIX)418
5238 y Fo(|)32 b(select)i(the)f(source)h(pre\014x)g(to)e(matc)m(h.)320
5460 y Fe(\017)48 b Fk(to)k(PREFIX)418 5631 y Fo(|)32
b(select)i(the)f(destination)h(pre\014x)g(to)e(matc)m(h.)p
eop end
%%Page: 38 38
TeXDict begin 38 37 bop 174 324 a Fo(38)2486 b Fg(IP)33
b(Command)h(Reference)320 631 y Fe(\017)48 b Fk(iif)k(NAME)418
799 y Fo(|)24 b(select)h(the)f(incoming)h(device)h(to)d(matc)m(h.)42
b(If)24 b(the)g(in)m(terface)h(is)g(lo)s(opbac)m(k,)h(the)e(rule)h
(only)418 919 y(matc)m(hes)41 b(pac)m(k)m(ets)h(originating)c(from)i
(this)g(host.)64 b(This)40 b(means)g(that)g(y)m(ou)g(ma)m(y)g(create)
418 1040 y(separate)34 b(routing)f(tables)h(for)e(forw)m(arded)i(and)f
(lo)s(cal)g(pac)m(k)m(ets)i(and,)f(hence,)g(completely)418
1160 y(segregate)f(them.)320 1375 y Fe(\017)48 b Fk(tos)k(TOS)34
b Fo(or)e Fk(dsfield)53 b(TOS)418 1543 y Fo(|)32 b(select)i(the)f(TOS)g
(v)-5 b(alue)33 b(to)g(matc)m(h.)320 1758 y Fe(\017)48
b Fk(fwmark)53 b(MARK)418 1926 y Fo(|)32 b(select)i(the)f
Fk(fwmark)h Fo(v)-5 b(alue)34 b(to)e(matc)m(h.)320 2141
y Fe(\017)48 b Fk(priority)54 b(PREFERENCE)418 2309 y
Fo(|)46 b(the)h(priorit)m(y)h(of)e(this)h(rule.)86 b(Eac)m(h)47
b(rule)h(should)f(ha)m(v)m(e)h(an)e(explicitly)j(set)e
Fl(unique)418 2429 y Fo(priorit)m(y)33 b(v)-5 b(alue.)654
2600 y Fi(NB.)60 b(Really)-7 b(,)30 b(for)f(historical)g(reasons)f
Fd(ip)43 b(rule)f(add)28 b Fi(do)r(es)i(not)f(require)g(a)h(priorit)n
(y)e(v)-5 b(alue)30 b(and)654 2699 y(allo)n(ws)i(them)h(to)f(b)r(e)h
(non-unique.)51 b(If)33 b(the)g(user)e(do)r(es)i(not)f(supplied)h(a)f
(priorit)n(y)-7 b(,)32 b(it)h(is)g(selected)654 2799
y(b)n(y)e(the)g(k)n(ernel.)45 b(If)31 b(the)g(user)f(creates)g(a)g
(rule)g(with)i(a)e(priorit)n(y)f(v)-5 b(alue)31 b(that)g(already)e
(exists,)i(the)654 2899 y(k)n(ernel)25 b(do)r(es)g(not)g(reject)h(the)f
(request.)36 b(It)26 b(adds)f(the)g(new)h(rule)f(b)r(efore)g(all)g(old)
g(rules)g(of)g(the)h(same)654 2998 y(priorit)n(y)-7 b(.)654
3145 y(It)32 b(is)f(mistak)n(e)f(in)h(design,)h(no)e(more.)47
b(And)31 b(it)h(will)f(b)r(e)g(\014xed)g(one)g(da)n(y)-7
b(,)31 b(so)f(do)h(not)g(rely)f(on)h(this)654 3245 y(feature.)37
b(Use)28 b(explicit)f(priorities.)320 3460 y Fe(\017)48
b Fk(table)53 b(TABLEID)418 3628 y Fo(|)32 b(the)h(routing)g(table)g
(iden)m(ti\014er)h(to)e(lo)s(okup)h(if)f(the)h(rule)g(selector)h(matc)m
(hes.)320 3843 y Fe(\017)48 b Fk(realms)53 b(FROM/TO)418
4011 y Fo(|)28 b(Realms)h(to)f(select)i(if)e(the)h(rule)f(matc)m(hed)i
(and)e(the)h(routing)f(table)h(lo)s(okup)f(succeeded.)418
4131 y(Realm)33 b Fk(TO)g Fo(is)g(only)g(used)h(if)e(the)h(route)g(did)
g(not)g(select)h(an)m(y)f(realm.)320 4347 y Fe(\017)48
b Fk(nat)k(ADDRESS)418 4514 y Fo(|)39 b(The)i(base)f(of)f(the)h(IP)g
(address)h(blo)s(c)m(k)f(to)f(translate)h(\(for)f(source)i
(addresses\).)66 b(The)418 4635 y Fk(ADDRESS)44 b Fo(ma)m(y)e(b)s(e)g
(either)h(the)f(start)g(of)f(the)h(blo)s(c)m(k)h(of)e(NA)-8
b(T)43 b(addresses)h(\(selected)f(b)m(y)418 4755 y(NA)-8
b(T)44 b(routes\))g(or)f(in)h(lin)m(ux-2.2)g(a)f(lo)s(cal)h(host)g
(address)g(\(or)g(ev)m(en)h(zero\).)76 b(In)44 b(the)g(last)418
4875 y(case)39 b(the)g(router)g(do)s(es)g(not)f(translate)h(the)f(pac)m
(k)m(ets,)k(but)d(masquerades)i(them)e(to)f(this)418
4996 y(address;)48 b(this)43 b(feature)f(disapp)s(ered)h(in)f(2.4.)71
b(More)42 b(ab)s(out)g(NA)-8 b(T)42 b(is)g(in)g(App)s(endix)i(C,)418
5116 y(p.50.)174 5391 y Fj(W)-9 b(arning:)98 b Fo(Changes)29
b(to)d(the)h(RPDB)g(made)h(with)f(these)h(commands)h(do)d(not)h(b)s
(ecome)h(activ)m(e)174 5511 y(immediately)-8 b(.)55 b(It)35
b(is)h(assumed)h(that)f(after)f(a)g(script)i(\014nishes)g(a)f(batc)m(h)
g(of)f(up)s(dates,)i(it)e(\015ushes)174 5631 y(the)e(routing)g(cac)m
(he)h(with)f Fk(ip)52 b(route)g(flush)h(cache)p Fo(.)p
eop end
%%Page: 39 39
TeXDict begin 39 38 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(39)174 631 y Fj(Examples:)320 809 y Fe(\017)48 b
Fo(Route)39 b(pac)m(k)m(ets)h(with)f(source)g(addresses)i(from)d
(192.203.80/24)e(according)i(to)g(routing)418 930 y(table)33
b Fk(inr.ruhep)p Fo(:)418 1145 y Fk(ip)52 b(ru)g(add)g(from)g
(192.203.80.0/24)j(table)e(inr.ruhep)h(prio)e(220)320
1361 y Fe(\017)c Fo(T)-8 b(ranslate)40 b(pac)m(k)m(et)i(source)e
(address)h(193.233.7.83)c(in)m(to)j(192.203.80.144)d(and)j(route)f(it)
418 1481 y(according)33 b(to)f(table)h(#1)g(\(actually)-8
b(,)33 b(it)g(is)g Fk(inr.ruhep)p Fo(\):)418 1697 y Fk(ip)52
b(ru)g(add)g(from)g(193.233.7.83)j(nat)d(192.203.80.144)j(table)d(1)g
(prio)g(320)320 1912 y Fe(\017)c Fo(Delete)33 b(the)g(un)m(used)i
(default)e(rule:)418 2128 y Fk(ip)52 b(ru)g(del)g(prio)g(32767)174
2412 y Fc(8.2)136 b Fb(ip)60 b(rule)g(show)43 b Fc(|)i(list)h(rules)174
2597 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p
Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f Fk(l)p Fo(.)174
2853 y Fj(Argumen)m(ts:)98 b Fo(Go)s(o)s(d)31 b(news,)k(this)e(is)g
(one)g(command)g(that)f(has)h(no)g(argumen)m(ts.)174
3108 y Fj(Output)38 b(format:)174 3286 y Fk(kuznet@amber:~)55
b($)d(ip)g(ru)f(ls)174 3407 y(0:)h(from)g(all)h(lookup)f(local)174
3527 y(200:)h(from)f(192.203.80.0/24)j(to)d(193.233.7.0/24)j(lookup)e
(main)174 3647 y(210:)g(from)f(192.203.80.0/24)j(to)d(192.203.80.0/24)j
(lookup)e(main)174 3768 y(220:)g(from)f(192.203.80.0/24)j(lookup)e
(inr.ruhep)h(realms)f(inr.ruhep/radio-msu)174 3888 y(300:)g(from)f
(193.233.7.83)i(to)e(193.233.7.0/24)j(lookup)e(main)174
4009 y(310:)g(from)f(193.233.7.83)i(to)e(192.203.80.0/24)k(lookup)c
(main)174 4129 y(320:)h(from)f(193.233.7.83)i(lookup)f(inr.ruhep)h
(map-to)f(192.203.80.144)174 4249 y(32766:)g(from)g(all)f(lookup)g
(main)174 4370 y(kuznet@amber:~)j($)321 4548 y Fo(In)25
b(the)g(\014rst)g(column)h(is)f(the)g(rule)h(priorit)m(y)f(v)-5
b(alue)25 b(follo)m(w)m(ed)h(b)m(y)g(a)e(colon.)41 b(Then)26
b(the)g(selectors)174 4668 y(follo)m(w.)44 b(Eac)m(h)32
b(k)m(ey)i(is)e(pre\014xed)h(with)f(the)h(same)f(k)m(eyw)m(ord)i(that)d
(w)m(as)i(used)g(to)e(create)i(the)f(rule.)321 4789 y(The)j(k)m(eyw)m
(ord)h Fk(lookup)g Fo(is)f(follo)m(w)m(ed)g(b)m(y)g(a)f(routing)g
(table)g(iden)m(ti\014er,)j(as)d(it)g(is)h(recorded)g(in)174
4909 y(the)e(\014le)h Fk(/etc/iproute2/rt_tables)p Fo(.)321
5029 y(If)29 b(the)g(rule)h(do)s(es)g(NA)-8 b(T)29 b(\(f.e.)h(rule)g
(#320\),)f(it)g(is)h(sho)m(wn)g(b)m(y)g(the)g(k)m(eyw)m(ord)h
Fk(map-to)g Fo(follo)m(w)m(ed)174 5150 y(b)m(y)j(the)f(start)f(of)h
(the)g(blo)s(c)m(k)g(of)f(addresses)j(to)d(map.)321 5270
y(The)47 b(sense)g(of)f(this)h(example)g(is)g(prett)m(y)g(simple.)85
b(The)47 b(pre\014xes)h(192.203.80.0/24)43 b(and)174
5391 y(193.233.7.0/24)37 b(form)h(the)h(in)m(ternal)h(net)m(w)m(ork,)i
(but)d(they)h(are)e(routed)h(di\013eren)m(tly)i(when)f(the)174
5511 y(pac)m(k)m(ets)35 b(lea)m(v)m(e)g(it.)44 b(Besides)35
b(that,)e(the)h(host)f(193.233.7.83)e(is)i(translated)h(in)m(to)f
(another)g(pre\014x)174 5631 y(to)g(lo)s(ok)f(lik)m(e)i(192.203.80.144)
c(when)k(talking)f(to)f(the)h(outer)g(w)m(orld.)p eop
end
%%Page: 40 40
TeXDict begin 40 39 bop 174 324 a Fo(40)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fn(9)161 b Ff(ip)74 b(maddress)44
b Fn(|)i(m)l(ulticast)e(addresses)g(managemen)l(t)174
852 y Fj(Ob)6 b(ject:)103 b Fk(maddress)35 b Fo(ob)5
b(jects)34 b(are)f(m)m(ulticast)g(addresses.)174 1119
y Fj(Commands:)105 b Fk(add)p Fo(,)33 b Fk(delete)p Fo(,)i
Fk(show)e Fo(\(or)f Fk(list)p Fo(\).)174 1414 y Fc(9.1)136
b Fb(ip)60 b(maddress)e(show)43 b Fc(|)i(list)h(m)l(ulticast)g
(addresses)174 1601 y Fj(Abbreviations:)104 b Fk(show)p
Fo(,)34 b Fk(list)p Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f
Fk(l)p Fo(.)174 1867 y Fj(Argumen)m(ts:)320 2076 y Fe(\017)48
b Fk(dev)k(NAME)34 b Fo(\(default\))418 2240 y(|)e(the)h(device)i
(name.)174 2507 y Fj(Output)j(format:)174 2717 y Fk(kuznet@alisa:~)55
b($)d(ip)g(maddr)g(ls)g(dummy)174 2837 y(2:)103 b(dummy)379
2957 y(link)h(33:33:00:00:00:01)379 3078 y(link)g(01:00:5e:00:00:01)379
3198 y(inet)g(224.0.0.1)54 b(users)e(2)379 3319 y(inet6)h(ff02::1)174
3439 y(kuznet@alisa:~)i($)321 3648 y Fo(The)42 b(\014rst)h(line)f(of)g
(the)g(output)g(sho)m(ws)h(the)g(in)m(terface)g(index)g(and)f(its)g
(name.)72 b(Then)43 b(the)174 3768 y(m)m(ulticast)32
b(address)g(list)f(follo)m(ws.)44 b(Eac)m(h)31 b(line)g(starts)g(with)g
(the)g(proto)s(col)f(iden)m(ti\014er.)44 b(The)32 b(w)m(ord)174
3888 y Fk(link)i Fo(denotes)g(a)e(link)h(la)m(y)m(er)h(m)m(ulticast)g
(addresses.)321 4010 y(If)c(a)h(m)m(ulticast)h(address)g(has)f(more)g
(than)g(one)g(user,)h(the)f(n)m(um)m(b)s(er)h(of)e(users)i(is)g(sho)m
(wn)g(after)174 4130 y(the)h Fk(users)h Fo(k)m(eyw)m(ord.)321
4252 y(One)28 b(additional)g(feature)h(not)e(presen)m(t)j(in)e(the)h
(example)h(ab)s(o)m(v)m(e)e(is)h(the)f Fk(static)i Fo(\015ag,)f(whic)m
(h)174 4372 y(indicates)36 b(that)e(the)h(address)h(w)m(as)f(joined)f
(with)h Fk(ip)52 b(maddr)h(add)p Fo(.)c(See)35 b(the)g(follo)m(wing)g
(subsec-)174 4492 y(tion.)174 4788 y Fc(9.2)136 b Fb(ip)60
b(maddress)e(add)43 b Fc(|)j(add)e(a)i(m)l(ulticast)g(address)481
4937 y Fb(ip)60 b(maddress)e(delete)42 b Fc(|)j(delete)i(a)e(m)l
(ulticast)h(address)174 5124 y Fj(Abbreviations:)104
b Fk(add)p Fo(,)34 b Fk(a)p Fo(;)e Fk(delete)p Fo(,)j
Fk(del)p Fo(,)e Fk(d)p Fo(.)174 5391 y Fj(Description:)98
b Fo(these)38 b(commands)f(attac)m(h/detac)m(h)h(a)e(static)h(link)g
(la)m(y)m(er)g(m)m(ulticast)h(address)174 5511 y(to)30
b(listen)h(on)e(the)i(in)m(terface.)43 b(Note)30 b(that)g(it)g(is)g
(imp)s(ossible)h(to)f(join)f(proto)s(col)h(m)m(ulticast)h(groups)174
5631 y(statically)-8 b(.)45 b(This)33 b(command)h(only)f(manages)g
(link)g(la)m(y)m(er)h(addresses.)p eop end
%%Page: 41 41
TeXDict begin 41 40 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(41)174 631 y Fj(Argumen)m(ts:)320 838 y Fe(\017)48
b Fk(address)53 b(LLADDRESS)35 b Fo(\(default\))418 1001
y(|)d(the)h(link)h(la)m(y)m(er)f(m)m(ulticast)h(address.)320
1208 y Fe(\017)48 b Fk(dev)k(NAME)418 1371 y Fo(|)32
b(the)h(device)i(to)d(join/lea)m(v)m(e)i(this)f(m)m(ulticast)h
(address.)174 1635 y Fj(Example:)99 b Fo(Let)33 b(us)g(con)m(tin)m(ue)h
(with)g(the)f(example)h(from)e(the)h(previous)h(subsection.)174
1868 y Fk(netadm@alisa:~)55 b(#)d(ip)g(maddr)g(add)g(33:33:00:00:00:01)
k(dev)c(dummy)174 1989 y(netadm@alisa:~)j(#)d(ip)g(-0)f(maddr)i(ls)f
(dummy)174 2109 y(2:)103 b(dummy)379 2229 y(link)h(33:33:00:00:00:01)56
b(users)c(2)g(static)379 2350 y(link)104 b(01:00:5e:00:00:01)174
2470 y(netadm@alisa:~)55 b(#)d(ip)g(maddr)g(del)g(33:33:00:00:00:01)k
(dev)c(dummy)411 2706 y Fi(NB.)58 b(Neither)29 b Fd(ip)f
Fi(nor)g(the)h(k)n(ernel)f(c)n(hec)n(k)g(for)h(m)n(ulticast)f(address)g
(v)-5 b(alidit)n(y)e(.)41 b(P)n(articularly)-7 b(,)27
b(this)i(means)411 2805 y(that)h(y)n(ou)g(can)g(try)g(to)h(load)e(a)h
(unicast)h(address)e(instead)h(of)g(a)h(m)n(ulticast)f(address.)44
b(Most)30 b(driv)n(ers)f(will)411 2905 y(ignore)37 b(suc)n(h)i
(addresses,)h(but)g(sev)n(eral)d(\(f.e.)i(T)-7 b(ulip\))40
b(will)f(in)n(tern)g(it)g(to)g(their)g(on-b)r(oard)e(\014lter.)71
b(The)411 3005 y(e\013ects)29 b(ma)n(y)f(b)r(e)h(strange.)39
b(Namely)-7 b(,)29 b(the)g(addresses)e(b)r(ecome)i(additional)f(lo)r
(cal)g(link)h(addresses)e(and,)i(if)411 3104 y(y)n(ou)24
b(loaded)h(the)h(address)e(of)h(another)g(host)g(to)g(the)h(router,)f
(w)n(ait)g(for)g(duplicated)h(pac)n(k)n(ets)e(on)h(the)h(wire.)411
3204 y(It)f(is)h(not)f(a)g(bug,)h(but)g(rather)f(a)g(hole)g(in)h(the)g
(API)f(and)h(in)n(tra-k)n(ernel)d(in)n(terfaces.)35 b(This)26
b(feature)f(is)g(really)411 3304 y(more)30 b(useful)h(for)g(tra\016c)g
(monitoring,)g(but)g(using)g(it)g(with)h(Lin)n(ux-2.2)e(y)n(ou)g
Fa(have)k(to)j Fi(b)r(e)31 b(sure)g(that)g(the)411 3403
y(host)25 b(is)g(not)h(a)f(router)f(and,)i(esp)r(ecially)-7
b(,)25 b(that)h(it)g(is)f(not)h(a)f(transparen)n(t)f(pro)n(xy)g(or)h
(masquerading)e(agen)n(t.)174 3740 y Fn(10)161 b Ff(ip)74
b(mroute)62 b Fn(|)i(m)l(ulticast)f(routing)f(cac)l(he)g(manage-)497
3923 y(men)l(t)174 4143 y Fj(Abbreviations:)104 b Fk(mroute)p
Fo(,)34 b Fk(mr)p Fo(.)174 4407 y Fj(Ob)6 b(ject:)103
b Fk(mroute)35 b Fo(ob)5 b(jects)34 b(are)e(m)m(ulticast)j(routing)d
(cac)m(he)i(en)m(tries)g(created)g(b)m(y)g(a)e(user)i(lev)m(el)174
4527 y(mrouting)f(daemon)g(\(f.e.)g Fk(pimd)h Fo(or)e
Fk(mrouted)p Fo(\).)321 4648 y(Due)26 b(to)g(the)g(limitations)h(of)f
(the)h(curren)m(t)g(in)m(terface)g(to)f(the)h(m)m(ulticast)g(routing)f
(engine,)j(it)d(is)174 4768 y(imp)s(ossible)35 b(to)d(c)m(hange)i
Fk(mroute)g Fo(ob)5 b(jects)34 b(administrativ)m(ely)-8
b(,)36 b(so)c(w)m(e)i(ma)m(y)g(only)f(displa)m(y)h(them.)174
4889 y(This)g(limitation)f(will)g(b)s(e)g(remo)m(v)m(ed)h(in)f(the)g
(future.)174 5153 y Fj(Commands:)105 b Fk(show)34 b Fo(\(or)e
Fk(list)p Fo(\).)174 5445 y Fc(10.1)136 b Fb(ip)61 b(mroute)d(show)43
b Fc(|)i(list)h(mroute)g(cac)l(he)f(en)l(tries)174 5631
y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p
Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f Fk(l)p Fo(.)p eop
end
%%Page: 42 42
TeXDict begin 42 41 bop 174 324 a Fo(42)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fj(Argumen)m(ts:)320
835 y Fe(\017)48 b Fk(to)k(PREFIX)34 b Fo(\(default\))418
998 y(|)e(the)h(pre\014x)h(selecting)g(the)f(destination)h(m)m
(ulticast)g(addresses)g(to)f(list.)320 1202 y Fe(\017)48
b Fk(iif)k(NAME)418 1364 y Fo(|)32 b(the)h(in)m(terface)h(on)e(whic)m
(h)i(m)m(ulticast)g(pac)m(k)m(ets)h(are)e(receiv)m(ed.)320
1569 y Fe(\017)48 b Fk(from)53 b(PREFIX)418 1731 y Fo(|)32
b(the)h(pre\014x)h(selecting)g(the)f(IP)g(source)h(addresses)h(of)d
(the)h(m)m(ulticast)h(route.)174 1992 y Fj(Output)k(format:)174
2196 y Fk(kuznet@amber:~)55 b($)d(ip)g(mroute)h(ls)174
2317 y(\(193.232.127.6,)j(224.0.1.39\))310 b(Iif:)52
b(unresolved)174 2437 y(\(193.232.244.34,)k(224.0.1.40\))259
b(Iif:)52 b(unresolved)174 2557 y(\(193.233.7.65,)j(224.66.66.66\))260
b(Iif:)52 b(eth0)360 b(Oifs:)53 b(pimreg)174 2678 y(kuznet@amber:~)i($)
321 2882 y Fo(Eac)m(h)41 b(line)f(sho)m(ws)i(one)e(\(S,G\))g(en)m(try)h
(in)f(the)h(m)m(ulticast)g(routing)f(cac)m(he,)j(where)e(S)f(is)h(the)
174 3002 y(source)33 b(address)h(and)e(G)f(is)i(the)f(m)m(ulticast)i
(group.)43 b Fk(Iif)32 b Fo(is)h(the)f(in)m(terface)h(on)f(whic)m(h)i
(m)m(ulticast)174 3123 y(pac)m(k)m(ets)26 b(are)d(exp)s(ected)i(to)e
(arriv)m(e.)41 b(If)23 b(the)h(w)m(ord)f Fk(unresolved)j
Fo(is)e(there)g(instead)g(of)f(the)g(in)m(terface)174
3243 y(name,)30 b(it)e(means)i(that)e(the)g(routing)g(daemon)h(still)g
(hasn't)g(resolv)m(ed)h(this)f(en)m(try)-8 b(.)43 b(The)29
b(k)m(eyw)m(ord)174 3364 y Fk(oifs)42 b Fo(is)f(follo)m(w)m(ed)h(b)m(y)
f(a)g(list)g(of)f(output)h(in)m(terfaces,)j(separated)e(b)m(y)g
(spaces.)69 b(If)41 b(a)f(m)m(ulticast)174 3484 y(routing)47
b(en)m(try)h(is)f(created)g(with)g(non-trivial)g(TTL)g(scop)s(e,)k
(administrativ)m(e)e(distances)f(are)174 3604 y(app)s(ended)34
b(to)e(the)h(device)i(names)e(in)g(the)g Fk(oifs)h Fo(list.)174
3865 y Fj(Statistics:)98 b Fo(The)39 b Fk(-statistics)i
Fo(option)d(also)h(prin)m(ts)g(the)g(n)m(um)m(b)s(er)g(of)f(pac)m(k)m
(ets)i(and)f(b)m(ytes)174 3986 y(forw)m(arded)46 b(along)f(this)h
(route)g(and)f(the)h(n)m(um)m(b)s(er)h(of)d(pac)m(k)m(ets)k(that)d
(arriv)m(ed)h(on)f(the)h(wrong)174 4106 y(in)m(terface,)34
b(if)e(this)i(n)m(um)m(b)s(er)g(is)f(not)f(zero.)174
4336 y Fk(kuznet@amber:~)55 b($)d(ip)g(-s)f(mr)h(ls)g(224.66/16)174
4456 y(\(193.233.7.65,)j(224.66.66.66\))260 b(Iif:)52
b(eth0)360 b(Oifs:)53 b(pimreg)277 4576 y(9383)f(packets,)i(300256)e
(bytes)174 4697 y(kuznet@amber:~)j($)174 5031 y Fn(11)161
b Ff(ip)74 b(tunnel)52 b Fn(|)j(tunnel)d(con\014guration)174
5250 y Fj(Abbreviations:)104 b Fk(tunnel)p Fo(,)34 b
Fk(tunl)p Fo(.)174 5511 y Fj(Ob)6 b(ject:)103 b Fk(tunnel)48
b Fo(ob)5 b(jects)47 b(are)e(tunnels,)51 b(encapsulating)c(pac)m(k)m
(ets)h(in)e(IPv4)g(pac)m(k)m(ets)i(and)174 5631 y(then)34
b(sending)f(them)h(o)m(v)m(er)f(the)g(IP)g(infrastructure.)p
eop end
%%Page: 43 43
TeXDict begin 43 42 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(43)174 631 y Fj(Commands:)105 b Fk(add)p Fo(,)33
b Fk(delete)p Fo(,)i Fk(change)p Fo(,)f Fk(show)f Fo(\(or)g
Fk(list)p Fo(\).)174 917 y Fj(See)g(also:)99 b Fo(A)28
b(more)g(informal)g(discussion)i(of)e(tunneling)h(o)m(v)m(er)g(IP)f
(and)h(the)f Fk(ip)52 b(tunnel)29 b Fo(com-)174 1037
y(mand)k(can)g(b)s(e)g(found)g(in)f([6].)174 1352 y Fc(11.1)136
b Fb(ip)61 b(tunnel)d(add)44 b Fc(|)h(add)g(a)g(new)g(tunnel)548
1502 y Fb(ip)61 b(tunnel)d(change)42 b Fc(|)j(c)l(hange)h(an)f
(existing)h(tunnel)548 1651 y Fb(ip)61 b(tunnel)d(delete)42
b Fc(|)j(destro)l(y)h(a)f(tunnel)174 1844 y Fj(Abbreviations:)104
b Fk(add)p Fo(,)34 b Fk(a)p Fo(;)e Fk(change)p Fo(,)j
Fk(chg)p Fo(;)e Fk(delete)p Fo(,)h Fk(del)p Fo(,)g Fk(d)p
Fo(.)174 2130 y Fj(Argumen)m(ts:)320 2355 y Fe(\017)48
b Fk(name)53 b(NAME)33 b Fo(\(default\))418 2527 y(|)f(select)i(the)f
(tunnel)h(device)g(name.)320 2752 y Fe(\017)48 b Fk(mode)53
b(MODE)418 2924 y Fo(|)38 b(set)i(the)f(tunnel)g(mo)s(de.)62
b(Three)40 b(mo)s(des)f(are)f(curren)m(tly)j(a)m(v)-5
b(ailable:)56 b Fk(ipip)p Fo(,)41 b Fk(sit)e Fo(and)418
3044 y Fk(gre)p Fo(.)320 3269 y Fe(\017)48 b Fk(remote)53
b(ADDRESS)418 3441 y Fo(|)32 b(set)i(the)f(remote)g(endp)s(oin)m(t)g
(of)f(the)h(tunnel.)320 3666 y Fe(\017)48 b Fk(local)53
b(ADDRESS)418 3838 y Fo(|)38 b(set)h(the)g(\014xed)g(lo)s(cal)g
(address)g(for)f(tunneled)i(pac)m(k)m(ets.)63 b(It)38
b(m)m(ust)i(b)s(e)e(an)h(address)g(on)418 3959 y(another)33
b(in)m(terface)h(of)e(this)h(host.)320 4183 y Fe(\017)48
b Fk(ttl)k(N)418 4356 y Fo(|)37 b(set)h(a)f(\014xed)h(TTL)g
Fk(N)f Fo(on)h(tunneled)g(pac)m(k)m(ets.)60 b Fk(N)37
b Fo(is)h(a)f(n)m(um)m(b)s(er)h(in)g(the)f(range)g(1{255.)418
4476 y(0)h(is)g(a)f(sp)s(ecial)i(v)-5 b(alue)38 b(meaning)h(that)e(pac)
m(k)m(ets)j(inherit)e(the)g(TTL)h(v)-5 b(alue.)59 b(The)39
b(default)418 4597 y(v)-5 b(alue)33 b(is:)44 b Fk(inherit)p
Fo(.)320 4821 y Fe(\017)k Fk(tos)k(T)33 b Fo(or)f Fk(dsfield)53
b(T)418 4994 y Fo(|)32 b(set)i(a)e(\014xed)i(TOS)f Fk(T)f
Fo(on)h(tunneled)h(pac)m(k)m(ets.)46 b(The)33 b(default)g(v)-5
b(alue)33 b(is:)44 b Fk(inherit)p Fo(.)320 5218 y Fe(\017)k
Fk(dev)k(NAME)418 5391 y Fo(|)42 b(bind)h(the)g(tunnel)g(to)f(the)h
(device)h Fk(NAME)f Fo(so)g(that)f(tunneled)i(pac)m(k)m(ets)g(will)f
(only)g(b)s(e)418 5511 y(routed)d(via)g(this)g(device)h(and)e(will)h
(not)g(b)s(e)f(able)h(to)f(escap)s(e)h(to)g(another)f(device)i(when)418
5631 y(the)33 b(route)g(to)f(endp)s(oin)m(t)i(c)m(hanges.)p
eop end
%%Page: 44 44
TeXDict begin 44 43 bop 174 324 a Fo(44)2486 b Fg(IP)33
b(Command)h(Reference)320 631 y Fe(\017)48 b Fk(nopmtudisc)418
799 y Fo(|)34 b(disable)g(P)m(ath)h(MTU)g(Disco)m(v)m(ery)g(on)f(this)h
(tunnel.)48 b(It)34 b(is)g(enabled)h(b)m(y)g(default.)47
b(Note)418 919 y(that)d(a)f(\014xed)i(ttl)f(is)g(incompatible)i(with)e
(this)h(option:)65 b(tunnelling)45 b(with)g(a)e(\014xed)i(ttl)418
1039 y(alw)m(a)m(ys)34 b(mak)m(es)h(pm)m(tu)e(disco)m(v)m(ery)-8
b(.)320 1254 y Fe(\017)48 b Fk(key)k(K)p Fo(,)33 b Fk(ikey)52
b(K)p Fo(,)33 b Fk(okey)53 b(K)418 1422 y Fo(|)34 b(\(only)i(GRE)e
(tunnels\))i(use)g(k)m(ey)m(ed)h(GRE)d(with)h(k)m(ey)i
Fk(K)p Fo(.)e Fk(K)g Fo(is)g(either)g(a)g(n)m(um)m(b)s(er)h(or)e(an)418
1543 y(IP)41 b(address-lik)m(e)i(dotted)e(quad.)68 b(The)42
b Fk(key)f Fo(parameter)g(sets)h(the)f(k)m(ey)h(to)e(use)i(in)f(b)s
(oth)418 1663 y(directions.)88 b(The)48 b Fk(ikey)f Fo(and)g
Fk(okey)h Fo(parameters)g(set)g(di\013eren)m(t)g(k)m(eys)h(for)d(input)
h(and)418 1783 y(output.)320 1998 y Fe(\017)h Fk(csum)p
Fo(,)34 b Fk(icsum)p Fo(,)g Fk(ocsum)418 2166 y Fo(|)i(\(only)g(GRE)f
(tunnels\))j(generate/require)f(c)m(hec)m(ksums)j(for)35
b(tunneled)j(pac)m(k)m(ets.)55 b(The)418 2286 y Fk(ocsum)36
b Fo(\015ag)e(calculates)i(c)m(hec)m(ksums)i(for)c(outgoing)g(pac)m(k)m
(ets.)51 b(The)36 b Fk(icsum)f Fo(\015ag)g(requires)418
2407 y(that)i(all)g(input)g(pac)m(k)m(ets)i(ha)m(v)m(e)f(the)g(correct)
f(c)m(hec)m(ksum.)60 b(The)38 b Fk(csum)g Fo(\015ag)e(is)i(equiv)-5
b(alen)m(t)418 2527 y(to)32 b(the)h(com)m(bination)h(\\)p
Fk(icsum)g(ocsum)p Fo(".)320 2742 y Fe(\017)48 b Fk(seq)p
Fo(,)34 b Fk(iseq)p Fo(,)f Fk(oseq)418 2910 y Fo(|)k(\(only)h(GRE)f
(tunnels\))h(serialize)h(pac)m(k)m(ets.)60 b(The)38 b
Fk(oseq)g Fo(\015ag)f(enables)i(sequencing)h(of)418 3030
y(outgoing)c(pac)m(k)m(ets.)58 b(The)37 b Fk(iseq)h Fo(\015ag)e
(requires)i(that)f(all)f(input)h(pac)m(k)m(ets)i(are)e(serialized.)418
3151 y(The)d Fk(seq)f Fo(\015ag)f(is)h(equiv)-5 b(alen)m(t)35
b(to)d(the)h(com)m(bination)g(\\)p Fk(iseq)h(oseq)p Fo(".)654
3321 y Fi(NB.)50 b(I)25 b(think)h(this)f(option)f(do)r(es)h(not)g(w)n
(ork.)34 b(A)n(t)25 b(least,)g(I)g(did)h(not)e(test)i(it,)g(did)f(not)g
(debug)f(it)i(and)654 3421 y(do)g(not)g(ev)n(en)f(understand)h(ho)n(w)f
(it)i(is)e(supp)r(osed)h(to)g(w)n(ork)f(or)g(for)g(what)h(purp)r(ose)f
(Cisco)g(planned)654 3520 y(to)j(use)f(it.)38 b(Do)27
b(not)h(use)f(it.)174 3795 y Fj(Example:)99 b Fo(Create)33
b(a)g(p)s(oin)m(top)s(oin)m(t)f(IPv6)i(tunnel)f(with)g(maximal)h(TTL)f
(of)f(32.)174 4012 y Fk(netadm@amber:~)55 b(#)d(ip)g(tunl)g(add)g
(Cisco)h(mode)f(sit)g(remote)h(192.31.7.104)h(\\)379
4132 y(local)f(192.203.80.142)i(ttl)d(32)174 4436 y Fc(11.2)136
b Fb(ip)61 b(tunnel)d(show)43 b Fc(|)i(list)h(tunnels)174
4625 y Fj(Abbreviations:)104 b Fk(show)p Fo(,)34 b Fk(list)p
Fo(,)f Fk(sh)p Fo(,)h Fk(ls)p Fo(,)f Fk(l)p Fo(.)174
4899 y Fj(Argumen)m(ts:)98 b Fo(None.)174 5173 y Fj(Output)38
b(format:)174 5391 y Fk(kuznet@amber:~)55 b($)d(ip)g(tunl)g(ls)g(Cisco)
174 5511 y(Cisco:)h(ipv6/ip)105 b(remote)52 b(192.31.7.104)106
b(local)53 b(192.203.80.142)106 b(ttl)52 b(32)174 5631
y(kuznet@amber:~)j($)p eop end
%%Page: 45 45
TeXDict begin 45 44 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(45)174 631 y(The)41 b(line)f(starts)h(with)f(the)g(tunnel)h
(device)g(name)f(follo)m(w)m(ed)h(b)m(y)g(a)e(colon.)65
b(Then)41 b(the)f(tunnel)174 751 y(mo)s(de)35 b(follo)m(ws.)51
b(The)35 b(parameters)h(of)e(the)h(tunnel)h(are)f(listed)g(with)h(the)f
(same)g(k)m(eyw)m(ords)j(that)174 872 y(w)m(ere)c(used)g(when)g
(creating)f(the)g(tunnel.)174 1163 y Fj(Statistics:)174
1397 y Fk(kuznet@amber:~)55 b($)d(ip)g(-s)f(tunl)i(ls)f(Cisco)174
1517 y(Cisco:)h(ipv6/ip)105 b(remote)52 b(192.31.7.104)106
b(local)53 b(192.203.80.142)106 b(ttl)52 b(32)174 1637
y(RX:)g(Packets)207 b(Bytes)412 b(Errors)53 b(CsumErrs)g(OutOfSeq)g
(Mcasts)379 1758 y(12566)309 b(1707516)h(0)e(0)410 b(0)g(0)174
1878 y(TX:)52 b(Packets)207 b(Bytes)412 b(Errors)53 b(DeadLoop)g
(NoRoute)104 b(NoBufs)379 1999 y(13445)309 b(1879677)h(0)e(0)410
b(0)g(0)174 2119 y(kuznet@amber:~)55 b($)174 2348 y Fo(Essen)m(tially)
-8 b(,)49 b(these)44 b(n)m(um)m(b)s(ers)h(are)e(the)g(same)h(as)f(the)h
(n)m(um)m(b)s(ers)h(prin)m(ted)f(with)g Fk(ip)51 b(-s)h(link)174
2468 y(show)34 b Fo(\(sec.4.2,)f(p.7\))g(but)g(the)g(tags)f(are)h
(di\013eren)m(t)h(to)e(re\015ect)h(that)g(they)g(are)g(tunnel)g(sp)s
(eci\014c.)320 2697 y Fe(\017)48 b Fk(CsumErrs)33 b Fo(|)c(the)i(total)
f(n)m(um)m(b)s(er)h(of)f(pac)m(k)m(ets)i(dropp)s(ed)f(b)s(ecause)g(of)f
(c)m(hec)m(ksum)k(failures)418 2817 y(for)e(a)h(GRE)f(tunnel)h(with)g
(c)m(hec)m(ksumming)k(enabled.)320 3046 y Fe(\017)48
b Fk(OutOfSeq)37 b Fo(|)d(the)i(total)e(n)m(um)m(b)s(er)i(of)e(pac)m(k)
m(ets)j(dropp)s(ed)e(b)s(ecause)i(they)e(arriv)m(ed)h(out)f(of)418
3167 y(sequence)h(for)c(a)g(GRE)g(tunnel)i(with)f(serialization)g
(enabled.)320 3395 y Fe(\017)48 b Fk(Mcasts)34 b Fo(|)e(the)h(total)f
(n)m(um)m(b)s(er)i(of)d(m)m(ulticast)j(pac)m(k)m(ets)h(receiv)m(ed)f
(on)f(a)f(broadcast)h(GRE)418 3516 y(tunnel.)320 3745
y Fe(\017)48 b Fk(DeadLoop)38 b Fo(|)d(the)h(total)f(n)m(um)m(b)s(er)i
(of)f(pac)m(k)m(ets)h(whic)m(h)h(w)m(ere)f(not)e(transmitted)i(b)s
(ecause)418 3865 y(the)c(tunnel)h(is)f(lo)s(op)s(ed)f(bac)m(k)i(to)e
(itself.)320 4094 y Fe(\017)48 b Fk(NoRoute)42 b Fo(|)e(the)h(total)f
(n)m(um)m(b)s(er)h(of)f(pac)m(k)m(ets)j(whic)m(h)f(w)m(ere)f(not)g
(transmitted)g(b)s(ecause)418 4214 y(there)34 b(is)f(no)f(IP)h(route)g
(to)f(the)h(remote)g(endp)s(oin)m(t.)320 4443 y Fe(\017)48
b Fk(NoBufs)32 b Fo(|)d(the)i(total)e(n)m(um)m(b)s(er)i(of)f(pac)m(k)m
(ets)i(whic)m(h)f(w)m(ere)h(not)e(transmitted)h(b)s(ecause)g(the)418
4563 y(k)m(ernel)j(failed)f(to)g(allo)s(cate)f(a)g(bu\013er.)174
4927 y Fn(12)161 b Ff(ip)74 b(monitor)52 b Fn(and)i Ff(rtmon)f
Fn(|)h(state)f(monitoring)174 5157 y Fo(The)40 b Fk(ip)g
Fo(utilit)m(y)g(can)f(monitor)g(the)h(state)f(of)g(devices,)k
(addresses)e(and)e(routes)h(con)m(tin)m(uously)-8 b(.)174
5277 y(This)43 b(option)e(has)g(a)g(sligh)m(tly)i(di\013eren)m(t)f
(format.)69 b(Namely)-8 b(,)45 b(the)c Fk(monitor)i Fo(command)f(is)g
(the)174 5397 y(\014rst)33 b(in)g(the)g(command)h(line)f(and)g(then)g
(the)g(ob)5 b(ject)33 b(list)g(follo)m(ws:)277 5631 y
Fk(ip)52 b(monitor)h([)e(file)i(FILE)f(])g([)f(all)h(|)g(OBJECT-LIST)i
(])p eop end
%%Page: 46 46
TeXDict begin 46 45 bop 174 324 a Fo(46)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fk(OBJECT-LIST)29 b Fo(is)d(the)f(list)
h(of)f(ob)5 b(ject)27 b(t)m(yp)s(es)f(that)g(w)m(e)g(w)m(an)m(t)g(to)f
(monitor.)41 b(It)26 b(ma)m(y)g(con)m(tain)g Fk(link)p
Fo(,)174 751 y Fk(address)40 b Fo(and)f Fk(route)p Fo(.)62
b(If)38 b(no)g Fk(file)h Fo(argumen)m(t)g(is)g(giv)m(en,)i
Fk(ip)d Fo(op)s(ens)h(R)-8 b(TNETLINK,)40 b(listens)174
872 y(on)33 b(it)f(and)h(dumps)h(state)f(c)m(hanges)h(in)f(the)g
(format)f(describ)s(ed)i(in)f(previous)h(sections.)321
992 y(If)45 b(a)g(\014le)h(name)g(is)g(giv)m(en,)k(it)45
b(do)s(es)h(not)g(listen)g(on)f(R)-8 b(TNETLINK,)47 b(but)f(op)s(ens)g
(the)g(\014le)174 1112 y(con)m(taining)41 b(R)-8 b(TNETLINK)42
b(messages)h(sa)m(v)m(ed)f(in)f(binary)g(format)f(and)g(dumps)i(them.)
68 b(Suc)m(h)174 1233 y(a)38 b(history)i(\014le)f(can)f(b)s(e)h
(generated)g(with)g(the)g Fk(rtmon)h Fo(utilit)m(y)-8
b(.)62 b(This)39 b(utilit)m(y)h(has)e(a)g(command)174
1353 y(line)f(syn)m(tax)h(similar)f(to)f Fk(ip)51 b(monitor)p
Fo(.)56 b(Ideally)-8 b(,)39 b Fk(rtmon)e Fo(should)g(b)s(e)f(started)h
(b)s(efore)f(the)h(\014rst)174 1474 y(net)m(w)m(ork)e(con\014guration)d
(command)i(is)f(issued.)45 b(F.e.)33 b(if)f(y)m(ou)h(insert:)277
1662 y Fk(rtmon)52 b(file)h(/var/log/rtmon.log)174 1850
y Fo(in)33 b(a)f(startup)h(script,)h(y)m(ou)f(will)h(b)s(e)e(able)h(to)
f(view)i(the)f(full)g(history)h(later.)321 1970 y(Certainly)-8
b(,)36 b(it)e(is)h(p)s(ossible)h(to)e(start)g Fk(rtmon)i
Fo(at)e(an)m(y)h(time.)49 b(It)35 b(prep)s(ends)h(the)e(history)i(with)
174 2091 y(the)d(state)g(snapshot)h(dump)s(ed)g(at)e(the)h(momen)m(t)g
(of)g(starting.)174 2421 y Fn(13)161 b(Route)53 b(realms)h(and)f(p)t
(olicy)h(propagation,)e Ff(rtacct)174 2640 y Fo(On)31
b(routers)f(using)h(OSPF)f(ASE)h(or,)g(esp)s(ecially)-8
b(,)32 b(the)f(BGP)f(proto)s(col,)g(routing)g(tables)h(ma)m(y)g(b)s(e)
174 2760 y(h)m(uge.)51 b(If)35 b(w)m(e)h(w)m(an)m(t)g(to)e(classify)i
(or)f(to)f(accoun)m(t)i(for)e(the)i(pac)m(k)m(ets)h(p)s(er)d(route,)i
(w)m(e)g(will)f(ha)m(v)m(e)i(to)174 2880 y(k)m(eep)f(lots)e(of)f
(information.)48 b(Ev)m(en)35 b(w)m(orse,)h(if)e(w)m(e)h(w)m(an)m(t)f
(to)g(distinguish)i(the)e(pac)m(k)m(ets)i(not)e(only)174
3001 y(b)m(y)d(their)f(destination,)h(but)f(also)g(b)m(y)h(their)f
(source,)h(the)f(task)h(gets)f(quadratic)g(complexit)m(y)i(and)174
3121 y(its)h(solution)g(is)h(ph)m(ysically)h(imp)s(ossible.)321
3242 y(One)30 b(approac)m(h)h(to)f(propagating)g(the)h(p)s(olicy)g
(from)f(routing)h(proto)s(cols)f(to)g(the)h(forw)m(arding)174
3362 y(engine)49 b(has)f(b)s(een)g(prop)s(osed)h(in)f([8)o(].)89
b(Essen)m(tially)-8 b(,)54 b(Cisco)49 b(P)m(olicy)g(Propagation)e(via)h
(BGP)174 3482 y(is)41 b(based)g(on)f(the)h(fact)f(that)g(dedicated)h
(routers)g(all)f(ha)m(v)m(e)i(the)e(RIB)h(\(Routing)e(Information)174
3603 y(Base\))d(close)h(to)e(the)h(forw)m(arding)g(engine,)h(so)e(p)s
(olicy)i(routing)e(rules)h(can)g(c)m(hec)m(k)i(all)d(the)h(route)174
3723 y(attributes,)e(including)g(ASP)-8 b(A)g(TH)33 b(information)g
(and)f(comm)m(unit)m(y)j(strings.)321 3844 y(The)25 b(Lin)m(ux)g(arc)m
(hitecture,)i(splitting)e(the)f(RIB)g(\(main)m(tained)i(b)m(y)e(a)g
(user)h(lev)m(el)h(daemon\))e(and)174 3964 y(the)39 b(k)m(ernel)h
(based)f(FIB)f(\(F)-8 b(orw)m(arding)38 b(Information)g(Base\),)j(do)s
(es)d(not)h(allo)m(w)f(suc)m(h)i(a)e(simple)174 4084
y(approac)m(h.)321 4205 y(It)46 b(is)h(to)f(our)h(fortune)f(b)s(ecause)
i(there)f(is)g(another)g(solution)g(whic)m(h)h(allo)m(ws)f(ev)m(en)h
(more)174 4325 y(\015exible)35 b(p)s(olicy)e(and)g(ric)m(her)g(seman)m
(tics.)321 4445 y(Namely)-8 b(,)32 b(routes)g(can)f(b)s(e)g(clustered)i
(together)e(in)h(user)f(space,)i(based)f(on)f(their)g(attributes.)174
4566 y(F.e.)f(a)g(BGP)g(router)g(kno)m(ws)i(route)e(ASP)-8
b(A)g(TH,)31 b(its)f(comm)m(unit)m(y;)j(an)d(OSPF)g(router)g(kno)m(ws)i
(the)174 4686 y(route)38 b(tag)e(or)h(its)h(area.)57
b(The)38 b(administrator,)h(when)f(adding)f(routes)h(man)m(ually)-8
b(,)39 b(also)f(kno)m(ws)174 4807 y(their)j(nature.)66
b(Pro)m(viding)42 b(that)d(the)i(n)m(um)m(b)s(er)h(of)d(suc)m(h)j
(aggregates)e(\(w)m(e)h(call)f(them)h Fl(r)-5 b(e)g(alms)8
b Fo(\))174 4927 y(is)42 b(lo)m(w,)h(the)e(task)h(of)e(full)h
(classi\014cation)h(b)s(oth)f(b)m(y)h(source)f(and)g(destination)h(b)s
(ecomes)g(quite)174 5047 y(manageable.)321 5168 y(So)35
b(eac)m(h)i(route)f(ma)m(y)h(b)s(e)f(assigned)h(to)f(a)f(realm.)54
b(It)36 b(is)g(assumed)i(that)d(this)i(iden)m(ti\014cation)174
5288 y(is)h(made)g(b)m(y)g(a)f(routing)g(daemon,)i(but)f(static)g
(routes)g(can)f(also)h(b)s(e)f(handled)h(man)m(ually)h(with)174
5408 y Fk(ip)52 b(route)34 b Fo(\(see)g(sec.7,)f(p.21\).)411
5532 y Fi(NB.)56 b(There)28 b(is)g(a)f(patc)n(h)h(to)g
Fd(gated)p Fi(,)f(allo)n(wing)f(classi\014cation)h(of)h(routes)f(to)h
(realms)f(with)i(all)f(the)g(set)g(of)411 5631 y(p)r(olicy)f(rules)g
(implemen)n(ted)h(in)g Fd(gated)p Fi(:)35 b(b)n(y)27
b(pre\014x,)h(b)n(y)f(ASP)-7 b(A)g(TH,)28 b(b)n(y)f(origin,)g(b)n(y)g
(tag)g(etc.)p eop end
%%Page: 47 47
TeXDict begin 47 46 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(47)321 631 y(T)-8 b(o)45 b(facilitate)g(the)h(construction)g
(\(f.e.)f(in)g(case)h(the)g(routing)f(daemon)g(is)h(not)f(a)m(w)m(are)h
(of)174 751 y(realms\),)33 b(missing)g(realms)g(ma)m(y)f(b)s(e)g
(completed)i(with)e(routing)f(p)s(olicy)i(rules,)g(see)g(sec.)g(8,)e
(p.35.)321 881 y(F)-8 b(or)29 b(eac)m(h)i(pac)m(k)m(et)g(the)g(k)m
(ernel)h(calculates)f(a)f(tuple)h(of)e(realms:)43 b(source)31
b(realm)g(and)f(destina-)174 1001 y(tion)j(realm,)g(using)g(the)g
(follo)m(wing)g(algorithm:)294 1291 y(1.)48 b(If)33 b(the)g(route)f
(has)h(a)g(realm,)g(the)g(destination)g(realm)g(of)f(the)h(pac)m(k)m
(et)i(is)e(set)g(to)f(it.)294 1539 y(2.)48 b(If)32 b(the)g(rule)g(has)g
(a)f(source)i(realm,)f(the)g(source)g(realm)g(of)f(the)h(pac)m(k)m(et)i
(is)e(set)g(to)f(it.)43 b(If)32 b(the)418 1659 y(destination)24
b(realm)f(w)m(as)h(not)f(inherited)h(from)f(the)g(route)g(and)h(the)f
(rule)g(has)h(a)e(destination)418 1780 y(realm,)33 b(it)g(is)g(also)g
(set.)294 2027 y(3.)48 b(If)30 b(at)f(least)g(one)h(of)f(the)h(realms)g
(is)g(still)g(unkno)m(wn,)i(the)d(k)m(ernel)i(\014nds)g(the)e(rev)m
(ersed)j(route)418 2148 y(to)g(the)h(source)h(of)e(the)h(pac)m(k)m(et.)
294 2396 y(4.)48 b(If)33 b(the)g(source)g(realm)g(is)g(still)h(unkno)m
(wn,)g(get)f(it)f(from)g(the)h(rev)m(ersed)i(route.)294
2643 y(5.)48 b(If)40 b(one)f(of)g(the)h(realms)h(is)e(still)i(unkno)m
(wn,)i(sw)m(ap)d(the)g(realms)g(of)f(rev)m(ersed)j(routes)e(and)418
2764 y(apply)33 b(step)h(2)e(again.)321 3054 y(After)39
b(this)g(pro)s(cedure)h(is)g(completed)g(w)m(e)g(kno)m(w)g(what)f
(realm)h(the)f(pac)m(k)m(et)i(arriv)m(ed)f(from)174 3174
y(and)33 b(the)g(realm)f(where)i(it)e(is)h(going)f(to)g(propagate)g
(to.)44 b(If)32 b(some)h(of)f(the)h(realms)g(are)f(unkno)m(wn,)174
3295 y(they)i(are)e(initialized)i(to)e(zero)h(\(or)g(realm)g
Fk(unknown)p Fo(\).)321 3424 y(The)46 b(main)g(application)g(of)f
(realms)h(is)g(the)g(TC)g Fk(route)h Fo(classi\014er)g([7],)i(where)e
(they)f(are)174 3544 y(used)41 b(to)e(help)i(assign)f(pac)m(k)m(ets)i
(to)d(tra\016c)h(classes,)j(to)c(accoun)m(t,)k(p)s(olice)d(and)g(sc)m
(hedule)i(them)174 3665 y(according)33 b(to)g(this)g(classi\014cation.)
321 3794 y(A)c(m)m(uc)m(h)i(simpler)g(but)f(still)h(v)m(ery)g(useful)f
(application)g(is)g(incoming)h(pac)m(k)m(et)g(accoun)m(ting)f(b)m(y)174
3914 y(realms.)66 b(The)41 b(k)m(ernel)h(gathers)e(a)f(pac)m(k)m(et)j
(statistics)f(summary)g(whic)m(h)h(can)e(b)s(e)g(view)m(ed)i(with)174
4035 y(the)33 b Fk(rtacct)h Fo(utilit)m(y)-8 b(.)174
4291 y Fk(kuznet@amber:~)55 b($)d(rtacct)h(russia)174
4412 y(Realm)309 b(BytesTo)207 b(PktsTo)258 b(BytesFrom)105
b(PktsFrom)174 4532 y(russia)258 b(20576778)156 b(169176)258
b(47080168)156 b(153805)174 4652 y(kuznet@amber:~)55
b($)174 4900 y Fo(This)50 b(sho)m(ws)g(that)f(this)g(router)g(receiv)m
(ed)i(153805)c(pac)m(k)m(ets)k(from)d(the)h(realm)g Fk(russia)h
Fo(and)174 5021 y(forw)m(arded)35 b(169176)e(pac)m(k)m(ets)j(to)d
Fk(russia)p Fo(.)50 b(The)35 b(realm)f Fk(russia)i Fo(consists)g(of)d
(routes)i(with)g(AS-)174 5141 y(P)-8 b(A)g(THs)34 b(not)f(lea)m(ving)g
(Russia.)321 5270 y(Note)25 b(that)g(lo)s(cally)g(originating)g(pac)m
(k)m(ets)i(are)f(not)f(accoun)m(ted)h(here,)i Fk(rtacct)e
Fo(sho)m(ws)h(incom-)174 5391 y(ing)35 b(pac)m(k)m(ets)h(only)-8
b(.)50 b(Using)35 b(the)g Fk(route)g Fo(classi\014er)i(\(see)e([7]\))f
(y)m(ou)h(can)g(get)g(ev)m(en)h(more)e(detailed)174 5511
y(accoun)m(ting)43 b(information)e(ab)s(out)g(outgoing)g(pac)m(k)m
(ets,)46 b(optionally)c(summarizing)h(tra\016c)e(not)174
5631 y(only)33 b(b)m(y)h(source)g(or)e(destination,)h(but)g(b)m(y)h(an)
m(y)f(pair)f(of)h(source)g(and)g(destination)g(realms.)p
eop end
%%Page: 48 48
TeXDict begin 48 47 bop 174 324 a Fo(48)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fn(References)223 853
y Fo([1])49 b(T.)44 b(Narten,)j(E.)d(Nordmark,)i(W.)e(Simpson.)h
(\\Neigh)m(b)s(or)f(Disco)m(v)m(ery)h(for)e(IP)h(V)-8
b(ersion)45 b(6)375 974 y(\(IPv6\)",)33 b(RF)m(C-2461.)223
1185 y([2])49 b(S.)26 b(Thomson,)i(T.)e(Narten.)g(\\IPv6)g(Stateless)h
(Address)g(Auto)s(con\014guration",)f(RF)m(C-2462.)223
1396 y([3])49 b(F.)32 b(Bak)m(er.)i(\\Requiremen)m(ts)h(for)d(IP)h(V)-8
b(ersion)33 b(4)f(Routers",)h(RF)m(C-1812.)223 1607 y([4])49
b(R.)26 b(T.)h(Braden.)g(\\Requiremen)m(ts)h(for)e(In)m(ternet)i(hosts)
f(|)f(comm)m(unication)i(la)m(y)m(ers",)h(RF)m(C-)375
1727 y(1122.)223 1938 y([5])49 b(\\Cisco)40 b(IOS)f(Release)h(12.0)e
(Net)m(w)m(ork)j(Proto)s(cols)e(Command)h(Reference,)i(P)m(art)d(1")f
(and)375 2059 y(\\Cisco)30 b(IOS)f(Release)i(12.0)d(Qualit)m(y)i(of)f
(Service)i(Solutions)f(Con\014guration)f(Guide:)42 b(Con-)375
2179 y(\014guring)33 b(P)m(olicy-Based)h(Routing",)375
2300 y(h)m(ttp://www.cisco.com/univ)m(ercd/cc/td/do)s(c/pro)s
(duct/soft)m(w)m(are/ios120.)223 2511 y([6])49 b(A.)33
b(N.)f(Kuznetso)m(v.)j(\\T)-8 b(unnels)34 b(o)m(v)m(er)g(IP)f(in)g(Lin)
m(ux-2.2",)375 2631 y(In:)44 b Fk(ftp://ftp.inr.ac.ru/ip-rou)q(ting)q
(/ipr)q(out)q(e2-c)q(urre)q(nt.t)q(ar.)q(gz)p Fo(.)223
2842 y([7])49 b(A.)33 b(N.)f(Kuznetso)m(v.)j(\\TC)e(Command)h
(Reference",)375 2963 y(In:)44 b Fk(ftp://ftp.inr.ac.ru/ip-rou)q(ting)q
(/ipr)q(out)q(e2-c)q(urre)q(nt.t)q(ar.)q(gz)p Fo(.)223
3174 y([8])49 b(\\Cisco)30 b(IOS)f(Release)i(12.0)d(Qualit)m(y)i(of)f
(Service)i(Solutions)f(Con\014guration)f(Guide:)42 b(Con-)375
3294 y(\014guring)33 b(QoS)f(P)m(olicy)i(Propagation)e(via)h(Border)g
(Gatew)m(a)m(y)g(Proto)s(col",)375 3414 y(h)m(ttp://www.cisco.com/univ)
m(ercd/cc/td/do)s(c/pro)s(duct/soft)m(w)m(are/ios120.)223
3626 y([9])49 b(R.)32 b(Droms.)h(\\Dynamic)g(Host)g(Con\014guration)g
(Proto)s(col.",)f(RF)m(C-2131)174 4085 y Fn(A)162 b(Source)52
b(address)g(selection)174 4307 y Fo(When)29 b(a)f(host)h(creates)g(an)f
(IP)g(pac)m(k)m(et,)j(it)d(m)m(ust)h(select)h(some)f(source)g(address.)
43 b(Correct)29 b(source)174 4428 y(address)k(selection)g(is)f(a)f
(critical)g(pro)s(cedure,)i(b)s(ecause)g(it)e(giv)m(es)i(the)e(receiv)m
(er)j(the)d(information)174 4548 y(needed)51 b(to)d(deliv)m(er)i(a)f
(reply)-8 b(.)92 b(If)49 b(the)g(source)h(is)f(selected)i(incorrectly)
-8 b(,)54 b(in)49 b(the)g(b)s(est)g(case,)174 4668 y(the)d(bac)m(kw)m
(ard)h(path)f(ma)m(y)g(app)s(ear)f(di\013eren)m(t)i(to)e(the)g(forw)m
(ard)h(one)f(whic)m(h)i(is)f(harmful)g(for)174 4789 y(p)s(erformance.)e
(In)33 b(the)g(w)m(orst)g(case,)g(when)h(the)f(addresses)h(are)f
(administrativ)m(ely)h(scop)s(ed,)g(the)174 4909 y(reply)g(ma)m(y)f(b)s
(e)g(lost)g(en)m(tirely)-8 b(.)321 5031 y(Lin)m(ux-2.2)33
b(selects)h(source)g(addresses)h(using)e(the)g(follo)m(wing)g
(algorithm:)320 5270 y Fe(\017)48 b Fo(The)f(application)g(ma)m(y)g
(select)g(a)f(source)h(address)h(explicitly)g(with)f
Fk(bind\(2\))h Fo(syscall)418 5391 y(or)c(supplying)i(it)e(to)g
Fk(sendmsg\(2\))i Fo(via)f(the)g(ancillary)f(data)g(ob)5
b(ject)45 b Fk(IP_PKTINFO)p Fo(.)i(In)418 5511 y(this)40
b(case)g(the)f(k)m(ernel)i(only)f(c)m(hec)m(ks)h(the)f(v)-5
b(alidit)m(y)40 b(of)e(the)i(address)g(and)f(nev)m(er)i(tries)f(to)418
5631 y(\\impro)m(v)m(e")34 b(an)e(incorrect)i(user)f(c)m(hoice,)h
(generating)f(an)g(error)f(instead.)p eop end
%%Page: 49 49
TeXDict begin 49 48 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(49)654 631 y Fi(NB.)49 b(Nev)n(er)23 b(sa)n(y)g(\\Nev)n(er".)34
b(The)24 b(sysctl)g(option)g Fd(ip_dynaddr)c Fi(breaks)j(this)h(axiom.)
35 b(It)24 b(has)g(b)r(een)654 731 y(made)31 b(delib)r(erately)g(with)g
(the)h(purp)r(ose)e(of)h(automatically)f(reselecting)g(the)h(address)f
(on)h(hosts)654 830 y(with)26 b(dynamic)e(dial-out)g(in)n(terfaces.)35
b(Ho)n(w)n(ev)n(er,)23 b(this)i(hac)n(k)f Fa(must)i(not)32
b Fi(b)r(e)25 b(used)g(on)f(m)n(ultihomed)654 930 y(hosts)k(and)f(esp)r
(ecially)g(on)g(routers:)36 b(it)28 b(w)n(ould)f(break)g(them.)320
1152 y Fe(\017)48 b Fo(Otherwise,)31 b(IP)e(routing)f(tables)i(can)e
(con)m(tain)h(an)g(explicit)g(source)h(address)g(hin)m(t)f(for)f(this)
418 1272 y(destination.)43 b(The)29 b(hin)m(t)g(is)f(set)h(with)g(the)f
Fk(src)h Fo(parameter)f(to)g(the)g Fk(ip)52 b(route)29
b Fo(command,)418 1392 y(sec.7,)34 b(p.21.)320 1614 y
Fe(\017)48 b Fo(Otherwise,)i(the)c(k)m(ernel)h(searc)m(hes)g(through)e
(the)h(list)f(of)g(addresses)i(attac)m(hed)f(to)f(the)418
1735 y(in)m(terface)40 b(through)e(whic)m(h)i(the)f(pac)m(k)m(ets)h
(will)f(b)s(e)g(routed.)61 b(The)39 b(searc)m(h)h(strategies)f(are)418
1855 y(di\013eren)m(t)34 b(for)e(IP)h(and)g(IPv6.)44
b(Namely:)528 2109 y Fj({)49 b Fo(IPv6)c(searc)m(hes)h(for)e(the)h
(\014rst)g(v)-5 b(alid,)47 b(not)d(deprecated)i(address)g(with)f(the)f
(same)633 2230 y(scop)s(e)33 b(as)g(the)g(destination.)528
2399 y Fj({)49 b Fo(IP)38 b(searc)m(hes)i(for)e(the)g(\014rst)g(v)-5
b(alid)38 b(address)i(with)e(a)g(scop)s(e)g(wider)h(than)f(the)g(scop)s
(e)633 2519 y(of)g(the)i(destination)f(but)h(it)e(prefers)i(addresses)h
(whic)m(h)g(fall)d(to)h(the)g(same)h(subnet)633 2640
y(as)32 b(the)h(nexthop)h(of)e(the)g(route)h(to)f(the)h(destination.)44
b(Unlik)m(e)34 b(IPv6,)f(the)g(scop)s(es)h(of)633 2760
y(IPv4)39 b(destinations)h(are)f(not)g(enco)s(ded)g(in)g(their)g
(addresses)i(but)e(are)g(supplied)h(in)633 2880 y(routing)e(tables)h
(instead)g(\(the)g Fk(scope)h Fo(parameter)e(to)g(the)h
Fk(ip)52 b(route)39 b Fo(command,)633 3001 y(sec.7,)34
b(p.21\).)320 3255 y Fe(\017)48 b Fo(Otherwise,)40 b(if)d(the)g(scop)s
(e)h(of)f(the)g(destination)h(is)g Fk(link)g Fo(or)f
Fk(host)p Fo(,)i(the)e(algorithm)g(fails)418 3375 y(and)c(returns)g(a)g
(zero)g(source)g(address.)320 3597 y Fe(\017)48 b Fo(Otherwise,)32
b(all)e(in)m(terfaces)h(are)f(scanned)h(to)e(searc)m(h)i(for)e(an)h
(address)h(with)f(an)g(appropri-)418 3718 y(ate)j(scop)s(e.)46
b(The)33 b(lo)s(opbac)m(k)h(device)h Fk(lo)e Fo(is)h(alw)m(a)m(ys)g
(the)f(\014rst)h(in)f(the)g(searc)m(h)i(list,)e(so)h(that)418
3838 y(if)f(an)h(address)g(with)g(global)g(scop)s(e)g(\(not)f
(127.0.0.1!\))45 b(is)34 b(con\014gured)g(on)f(lo)s(opbac)m(k,)h(it)g
(is)418 3958 y(alw)m(a)m(ys)g(preferred.)174 4314 y Fn(B)161
b(Pro)l(xy)54 b(ARP/NDISC)174 4541 y Fo(Routers)29 b(ma)m(y)g(answ)m
(er)h(ARP/NDISC)f(solicitations)g(on)g(b)s(ehalf)f(of)g(other)g(hosts.)
43 b(In)29 b(Lin)m(ux-2.2)174 4661 y(pro)m(xy)44 b(ARP)f(on)f(an)h(in)m
(terface)g(ma)m(y)h(b)s(e)e(enabled)i(b)m(y)g(setting)f(the)g(k)m
(ernel)h Fk(sysctl)g Fo(v)-5 b(ariable)174 4781 y Fk
(/proc/sys/net/ipv4/conf/)q(<de)q(v>/p)q(roxy)q(_arp)43
b Fo(to)36 b(1.)54 b(After)37 b(this,)h(the)e(router)h(starts)g(to)174
4902 y(answ)m(er)45 b(ARP)e(requests)i(on)d(the)h(in)m(terface)h
Fk(<dev>)p Fo(,)j(pro)m(vided)d(the)f(route)g(to)g(the)g(requested)174
5022 y(destination)34 b(do)s(es)f Fl(not)42 b Fo(go)32
b(bac)m(k)i(via)e(the)h(same)h(device.)321 5146 y(The)e(v)-5
b(ariable)33 b Fk(/proc/sys/net/ipv4/conf/all)q(/pr)q(oxy_)q(arp)38
b Fo(enables)33 b(pro)m(xy)g(ARP)f(on)174 5267 y(all)h(the)g(IP)g
(devices.)321 5391 y(Ho)m(w)m(ev)m(er,)h(this)f(approac)m(h)g(fails)f
(in)h(the)f(case)h(of)f(IPv6)h(b)s(ecause)h(the)e(router)h(m)m(ust)g
(join)f(the)174 5511 y(solicited)43 b(no)s(de)e(m)m(ulticast)h(address)
g(to)e(listen)i(for)f(the)g(corresp)s(onding)h(NDISC)f(queries.)70
b(It)174 5631 y(means)34 b(that)e(pro)m(xy)i(NDISC)f(is)g(p)s(ossible)h
(only)f(on)g(a)f(p)s(er)h(destination)g(basis.)p eop
end
%%Page: 50 50
TeXDict begin 50 49 bop 174 324 a Fo(50)2486 b Fg(IP)33
b(Command)h(Reference)321 631 y Fo(Logically)-8 b(,)35
b(pro)m(xy)h(ARP/NDISC)e(is)h(not)g(a)f(k)m(ernel)i(task.)50
b(It)35 b(can)f(easily)i(b)s(e)f(implemen)m(ted)174 751
y(in)47 b(user)h(space.)87 b(Ho)m(w)m(ev)m(er,)53 b(similar)47
b(functionalit)m(y)h(w)m(as)g(presen)m(t)g(in)f(BSD)f(k)m(ernels)j(and)
e(in)174 872 y(Lin)m(ux-2.0,)f(so)d(w)m(e)h(ha)m(v)m(e)g(to)e(preserv)m
(e)j(it)e(at)f(least)h(to)g(the)g(exten)m(t)h(that)f(is)g(standardized)
h(in)174 992 y(BSD.)411 1115 y Fi(NB.)66 b(Lin)n(ux-2.0)31
b(ARP)i(had)g(a)f(feature)h(called)f Fa(subnet)40 b Fi(pro)n(xy)32
b(ARP)-7 b(.)33 b(It)g(is)g(replaced)f(with)h(the)h(sysctl)411
1215 y(\015ag)26 b(in)i(Lin)n(ux-2.2.)321 1359 y Fo(The)34
b Fk(ip)g Fo(utilit)m(y)g(pro)m(vides)i(a)d(w)m(a)m(y)h(to)f(manage)h
(pro)m(xy)g(ARP/NDISC)g(with)g(the)g Fk(ip)52 b(neigh)174
1479 y Fo(command,)34 b(namely:)277 1668 y Fk(ip)52 b(neigh)g(add)g
(proxy)h(ADDRESS)g([)f(dev)g(NAME)g(])174 1858 y Fo(adds)34
b(a)e(new)h(pro)m(xy)h(ARP/NDISC)f(record)g(and)277 2047
y Fk(ip)52 b(neigh)g(del)g(proxy)h(ADDRESS)g([)f(dev)g(NAME)g(])174
2236 y Fo(deletes)35 b(it.)321 2356 y(If)45 b(the)g(name)h(of)e(the)i
(device)h(is)e(not)g(giv)m(en,)50 b(the)45 b(router)g(will)h(answ)m(er)
h(solicitations)f(for)174 2476 y(address)36 b Fk(ADDRESS)g
Fo(on)e(all)g(devices,)j(otherwise)f(it)f(will)f(only)h(serv)m(e)h(the)
f(device)h Fk(NAME)p Fo(.)g(Ev)m(en)f(if)174 2597 y(the)i(pro)m(xy)f
(en)m(try)h(is)g(created)f(with)g Fk(ip)52 b(neigh)p
Fo(,)38 b(the)e(router)g Fl(wil)5 b(l)37 b(not)46 b Fo(answ)m(er)37
b(a)e(query)i(if)f(the)174 2717 y(route)h(to)g(the)g(destination)h(go)s
(es)f(bac)m(k)h(via)f(the)h(in)m(terface)f(from)g(whic)m(h)i(the)e
(solicitation)g(w)m(as)174 2838 y(receiv)m(ed.)321 2958
y(It)i(is)h(imp)s(ortan)m(t)g(to)f(emphasize)j(that)d(pro)m(xy)i(en)m
(tries)g(ha)m(v)m(e)g Fl(no)k Fo(parameters)c(other)e(than)174
3078 y(these)g(\(IP/IPv6)f(address)g(and)f(optional)g(device\).)59
b(P)m(articularly)-8 b(,)40 b(the)d(en)m(try)h(do)s(es)g(not)f(store)
174 3199 y(an)m(y)k(link)g(la)m(y)m(er)g(address.)68
b(It)40 b(alw)m(a)m(ys)i(adv)m(ertises)h(the)d(station)g(address)i(of)e
(the)g(in)m(terface)h(on)174 3319 y(whic)m(h)34 b(it)f(sends)h(adv)m
(ertisemen)m(ts)i(\(i.e.)44 b(it's)33 b(o)m(wn)g(station)g(address\).)
174 3649 y Fn(C)161 b(Route)53 b(NA)-13 b(T)54 b(status)174
3868 y Fo(NA)-8 b(T)31 b(\(or)e(\\Net)m(w)m(ork)i(Address)g(T)-8
b(ranslation"\))30 b(remaps)h(some)g(parts)f(of)f(the)h(IP)g(address)h
(space)174 3989 y(in)m(to)46 b(other)f(ones.)82 b(Lin)m(ux-2.2)46
b(route)f(NA)-8 b(T)46 b(is)g(supp)s(osed)h(to)d(b)s(e)i(used)g(to)f
(facilitate)h(p)s(olicy)174 4109 y(routing)28 b(b)m(y)g(rewriting)g
(addresses)h(to)e(other)h(routing)f(domains)h(or)f(to)g(help)h(while)h
(ren)m(um)m(b)s(ering)174 4230 y(sites)34 b(to)e(another)h(pre\014x.)
174 4487 y Fj(What)46 b(it)g(is)g(not:)98 b Fo(It)40
b(is)h(necessary)h(to)e(emphasize)i(that)e Fl(it)i(is)f(not)h(supp)-5
b(ose)g(d)49 b Fo(to)40 b(b)s(e)g(used)174 4607 y(to)f(compress)i
(address)g(space)f(or)f(to)g(split)h(load.)64 b(This)40
b(is)g(not)f(missing)i(functionalit)m(y)f(but)g(a)174
4728 y(design)31 b(principle.)43 b(Route)30 b(NA)-8 b(T)29
b(is)h Fl(stateless)8 b Fo(.)42 b(It)29 b(do)s(es)h(not)f(hold)g(an)m
(y)h(state)g(ab)s(out)f(translated)174 4848 y(sessions.)63
b(This)39 b(means)h(that)e(it)g(handles)h(an)m(y)g(n)m(um)m(b)s(er)h
(of)d(sessions)k(\015a)m(wlessly)-8 b(.)63 b(But)38 b(it)g(also)174
4968 y(means)c(that)e(it)h(is)f Fl(static)6 b Fo(.)44
b(It)32 b(cannot)h(detect)g(the)g(momen)m(t)h(when)g(the)e(last)h(TCP)h
(clien)m(t)f(stops)174 5089 y(using)i(an)f(address.)50
b(F)-8 b(or)33 b(the)h(same)h(reason,)g(it)f(will)h(not)f(help)h(to)f
(split)h(load)e(b)s(et)m(w)m(een)k(sev)m(eral)174 5209
y(serv)m(ers.)411 5332 y Fi(NB.)53 b(It)27 b(is)g(a)f(prett)n(y)g
(commonly)g(held)h(b)r(elief)g(that)g(it)g(is)g(useful)g(to)f(split)h
(load)f(b)r(et)n(w)n(een)h(sev)n(eral)e(serv)n(ers)411
5432 y(with)31 b(NA)-7 b(T.)31 b(This)f(is)h(a)f(mistak)n(e.)45
b(All)31 b(y)n(ou)f(get)g(from)g(this)h(is)f(the)h(requiremen)n(t)f
(that)h(the)f(router)g(k)n(eep)411 5532 y(the)22 b(state)h(of)f(all)h
(the)g(TCP)f(connections)f(going)h(via)g(it.)35 b(W)-7
b(ell,)24 b(if)g(the)e(router)g(is)g(so)g(p)r(o)n(w)n(erful,)h(run)g
(apac)n(he)411 5631 y(on)k(it.)37 b(8\))p eop end
%%Page: 51 51
TeXDict begin 51 50 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(51)321 631 y(The)34 b(second)g(feature:)45 b(it)33
b(do)s(es)h(not)f(touc)m(h)h(pac)m(k)m(et)g(pa)m(yload,)g(do)s(es)g
(not)f(try)g(to)g(\\impro)m(v)m(e")174 751 y(brok)m(en)45
b(proto)s(cols)e(b)m(y)h(lo)s(oking)f(through)g(its)g(data)g(and)h
(mangling)f(it.)75 b(It)43 b(mangles)h(IP)g(ad-)174 872
y(dresses,)g(only)c(IP)g(addresses)i(and)d(nothing)h(but)g(IP)g
(addresses.)66 b(This)41 b(also,)h(is)e(not)f(missing)174
992 y(an)m(y)34 b(functionalit)m(y)-8 b(.)321 1112 y(T)g(o)44
b(resume:)69 b(if)45 b(y)m(ou)g(need)h(to)e(compress)j(address)e(space)
h(or)e(k)m(eep)j(activ)m(e)f(FTP)f(clien)m(ts)174 1233
y(happ)m(y)-8 b(,)33 b(y)m(our)f(c)m(hoice)h(is)e(not)h(route)f(NA)-8
b(T)32 b(but)f(masquerading,)j(p)s(ort)c(forw)m(arding,)i(NAPT)h(etc.)
411 1356 y Fi(NB.)k(By)18 b(the)g(w)n(a)n(y)-7 b(,)20
b(y)n(ou)d(ma)n(y)h(also)f(w)n(an)n(t)h(to)g(lo)r(ok)g(at)g(h)n
(ttp://www.suse.com/)12 b(~)-55 b(mha/Hyp)r(erNews/get/lin)n(ux-)411
1456 y(ip-nat.h)n(tml)174 1714 y Fj(Ho)m(w)45 b(it)g(w)m(orks.)97
b Fo(Some)40 b(part)f(of)g(the)g(address)i(space)f(is)g(reserv)m(ed)i
(for)c(dumm)m(y)j(addresses)174 1835 y(whic)m(h)g(will)f(lo)s(ok)g(for)
e(all)i(the)g(w)m(orld)g(lik)m(e)g(some)h(host)e(addresses)j(inside)f
(y)m(our)f(net)m(w)m(ork.)65 b(No)174 1955 y(other)29
b(hosts)h(ma)m(y)f(use)h(these)g(addresses,)i(ho)m(w)m(ev)m(er)f(other)
e(routers)g(ma)m(y)g(also)g(b)s(e)g(con\014gured)h(to)174
2076 y(translate)j(them.)411 2199 y Fi(NB.)59 b(A)30
b(great)f(adv)-5 b(an)n(tage)28 b(of)h(route)g(NA)-7
b(T)31 b(is)e(that)h(it)g(ma)n(y)f(b)r(e)h(used)g(not)g(only)f(in)h
(stub)g(net)n(w)n(orks)e(but)411 2298 y(in)f(en)n(vironmen)n(ts)g(with)
h(arbitrarily)e(complicated)h(structure.)36 b(It)28 b(do)r(es)f(not)h
(\014rew)n(all,)f(it)h Fa(forwar)l(ds.)321 2442 y Fo(These)34
b(addresses)h(are)d(selected)j(b)m(y)e(the)h Fk(ip)51
b(route)34 b Fo(command)g(\(sec.7.1,)f(p.23\).)43 b(F.e.)277
2639 y Fk(ip)52 b(route)g(add)g(nat)g(192.203.80.144)j(via)d
(193.233.7.83)174 2836 y Fo(states)38 b(that)f(the)h(single)g(address)h
(192.203.80.144)c(is)i(a)g(dumm)m(y)i(NA)-8 b(T)38 b(address.)58
b(F)-8 b(or)37 b(all)g(the)174 2957 y(w)m(orld)43 b(it)e(lo)s(oks)h
(lik)m(e)h(a)f(host)g(address)h(inside)g(our)f(net)m(w)m(ork.)72
b(F)-8 b(or)41 b(neigh)m(b)s(ouring)i(hosts)f(and)174
3077 y(routers)c(it)f(lo)s(oks)h(lik)m(e)h(the)e(lo)s(cal)g(address)i
(of)e(the)h(translating)f(router.)58 b(The)38 b(router)f(answ)m(ers)174
3197 y(ARP)f(for)e(it,)i(adv)m(ertises)h(this)f(address)g(as)f(routed)g
(via)h(it,)f Fl(et)j(al)10 b Fo(.)50 b(When)36 b(the)g(router)f(receiv)
m(es)174 3318 y(a)30 b(pac)m(k)m(et)i(destined)g(for)e(192.203.80.144,)
e(it)i(replaces)i(this)f(address)h(with)e(193.233.7.83)f(whic)m(h)174
3438 y(is)h(the)f(address)h(of)e(some)i(real)e(host)h(and)g(forw)m
(ards)h(the)f(pac)m(k)m(et.)44 b(If)28 b(y)m(ou)i(need)f(to)g(remap)g
(blo)s(c)m(ks)174 3558 y(of)j(addresses,)j(y)m(ou)f(ma)m(y)f(use)g(a)g
(command)g(lik)m(e:)277 3755 y Fk(ip)52 b(route)g(add)g(nat)g
(192.203.80.192/26)k(via)c(193.233.7.64)174 3952 y Fo(This)36
b(command)f(will)g(map)g(a)f(blo)s(c)m(k)i(of)e(63)g(addresses)i
(192.203.80.192-255)31 b(to)k(193.233.7.64-)174 4072
y(127.)321 4193 y(When)40 b(an)g(in)m(ternal)g(host)g(\(193.233.7.83)e
(in)i(the)g(example)h(ab)s(o)m(v)m(e\))g(sends)g(something)g(to)174
4313 y(the)g(outer)f(w)m(orld)g(and)g(these)h(pac)m(k)m(ets)h(are)e
(forw)m(arded)h(b)m(y)g(our)e(router,)j(it)e(should)h(translate)174
4434 y(the)35 b(source)g(address)g(193.233.7.83)d(in)m(to)i
(192.203.80.144.)46 b(This)35 b(task)f(is)h(solv)m(ed)g(b)m(y)g
(setting)g(a)174 4554 y(sp)s(ecial)f(p)s(olicy)f(rule)g(\(sec.8.1,)h
(p.37\):)277 4751 y Fk(ip)52 b(rule)g(add)g(prio)g(320)g(from)h
(193.233.7.83)h(nat)e(192.203.80.144)174 4948 y Fo(This)23
b(rule)g(sa)m(ys)g(that)e(the)h(source)h(address)g(193.233.7.83)d
(should)j(b)s(e)f(translated)g(in)m(to)g(192.203.80.144)174
5068 y(b)s(efore)40 b(forw)m(arding.)66 b(It)40 b(is)h(imp)s(ortan)m(t)
f(that)f(the)i(address)g(after)f(the)g Fk(nat)h Fo(k)m(eyw)m(ord)h(is)e
(some)174 5188 y(NA)-8 b(T)45 b(address,)j(declared)e(b)m(y)f
Fk(ip)52 b(route)g(add)g(nat)p Fo(.)79 b(If)44 b(it)g(is)h(just)f(a)g
(random)g(address)i(the)174 5309 y(router)33 b(will)g(not)g(map)f(to)h
(it.)411 5432 y Fi(NB.)75 b(The)37 b(exception)h(is)f(when)h(the)g
(address)e(is)h(a)h(lo)r(cal)f(address)f(of)h(this)h(router)f(\(or)f
(0.0.0.0\))h(and)411 5532 y(masquerading)30 b(is)j(con\014gured)e(in)i
(the)g(lin)n(ux-2.2)e(k)n(ernel.)51 b(In)32 b(this)h(case)f(the)h
(router)e(will)i(masquerade)411 5631 y(the)25 b(pac)n(k)n(ets)f(as)h
(this)g(address.)35 b(If)26 b(0.0.0.0)d(is)j(selected,)f(the)h(result)f
(is)g(equiv)-5 b(alen)n(t)25 b(to)g(one)g(obtained)g(with)p
eop end
%%Page: 52 52
TeXDict begin 52 51 bop 174 324 a Fo(52)2486 b Fg(IP)33
b(Command)h(Reference)411 631 y Fi(\014rew)n(alling)f(rules.)56
b(Otherwise,)35 b(y)n(ou)f(ha)n(v)n(e)f(the)i(w)n(a)n(y)e(to)h(order)f
(Lin)n(ux)h(to)h(masquerade)d(to)j(this)f(\014xed)411
731 y(address.)43 b(NA)-7 b(T)31 b(mec)n(hanism)e(used)h(in)h(lin)n
(ux-2.4)d(is)i(more)g(\015exible)g(than)g(masquerading,)f(so)h(that)g
(this)411 830 y(feature)d(has)g(lost)g(meaning)g(and)h(disabled.)321
974 y Fo(If)38 b(the)h(net)m(w)m(ork)h(has)f(non-trivial)f(in)m(ternal)
h(structure,)j(it)c(is)h(useful)g(and)g(ev)m(en)h(necessary)174
1095 y(to)33 b(add)g(rules)h(disabling)g(translation)f(when)i(a)d(pac)m
(k)m(et)j(do)s(es)f(not)e(lea)m(v)m(e)j(this)f(net)m(w)m(ork.)46
b(Let)34 b(us)174 1215 y(return)f(to)g(the)g(example)h(from)e(sec.8.2)h
(\(p.39\).)174 1398 y Fk(300:)53 b(from)f(193.233.7.83)i(to)e
(193.233.7.0/24)j(lookup)e(main)174 1518 y(310:)g(from)f(193.233.7.83)i
(to)e(192.203.80.0/24)k(lookup)c(main)174 1638 y(320:)h(from)f
(193.233.7.83)i(lookup)f(inr.ruhep)h(map-to)f(192.203.80.144)174
1821 y Fo(This)34 b(blo)s(c)m(k)f(of)f(rules)i(causes)g(normal)e(forw)m
(arding)h(when)h(pac)m(k)m(ets)g(from)e(193.233.7.83)f(do)h(not)174
1941 y(lea)m(v)m(e)42 b(net)m(w)m(orks)h(193.233.7/24)38
b(and)i(192.203.80/24.)64 b(Also,)43 b(if)d(the)h Fk(inr.ruhep)h
Fo(table)f(do)s(es)174 2062 y(not)31 b(con)m(tain)f(a)g(route)h(to)f
(the)h(destination)g(\(whic)m(h)h(means)f(that)f(the)h(routing)f
(domain)h(o)m(wning)174 2182 y(addresses)50 b(from)d(192.203.80/24)d
(is)k(dead\),)j(no)d(translation)f(will)h(o)s(ccur.)87
b(Otherwise,)53 b(the)174 2302 y(pac)m(k)m(ets)35 b(are)e(translated.)
174 2559 y Fj(Ho)m(w)46 b(to)g(only)h(translate)h(selected)e(p)s(orts:)
98 b Fo(If)41 b(y)m(ou)g(only)g(w)m(an)m(t)g(to)f(translate)h(selected)
174 2679 y(p)s(orts)30 b(\(f.e.)f(h)m(ttp\))h(and)f(lea)m(v)m(e)i(the)f
(rest)g(in)m(tact,)g(y)m(ou)g(ma)m(y)g(use)g Fk(ipchains)i
Fo(to)d Fk(fwmark)h Fo(a)f(class)i(of)174 2799 y(pac)m(k)m(ets.)49
b(Supp)s(ose)35 b(y)m(ou)f(did)g(and)g(all)f(the)h(pac)m(k)m(ets)i
(from)d(193.233.7.83)f(destined)k(for)d(p)s(ort)g(80)174
2920 y(are)i(mark)m(ed)h(with)g(mark)m(er)f(0x1234)g(in)g(input)g(fw)m
(c)m(hain.)52 b(In)35 b(this)g(case)h(y)m(ou)f(ma)m(y)h(replace)g(rule)
174 3040 y(#320)c(with:)174 3223 y Fk(320:)53 b(from)f(193.233.7.83)i
(fwmark)f(1234)g(lookup)g(main)f(map-to)h(192.203.80.144)174
3405 y Fo(and)33 b(translation)g(will)g(only)g(b)s(e)g(enabled)h(for)e
(outgoing)g(h)m(ttp)h(requests.)174 3734 y Fn(D)161 b(Example:)72
b(minimal)55 b(host)d(setup)174 3953 y Fo(The)39 b(follo)m(wing)g
(script)g(giv)m(es)h(an)e(example)h(of)f(a)g(fault)g(safe)g(setup)i(of)
d(IP)i(\(and)f(IPv6,)j(if)d(it)g(is)174 4074 y(compiled)28
b(in)m(to)f(the)g(k)m(ernel\))h(in)e(the)h(common)g(case)g(of)f(a)h(no)
s(de)f(attac)m(hed)h(to)f(a)h(single)g(broadcast)174
4194 y(net)m(w)m(ork.)44 b(A)30 b(more)f(adv)-5 b(anced)30
b(script,)h(whic)m(h)g(ma)m(y)f(b)s(e)f(used)h(b)s(oth)f(on)g(m)m
(ultihomed)i(hosts)f(and)174 4315 y(on)j(routers,)g(is)g(describ)s(ed)i
(in)d(the)h(follo)m(wing)g(section.)321 4435 y(The)24
b(utilities)h(used)g(in)f(the)g(script)h(ma)m(y)g(b)s(e)f(found)g(in)g
(the)g(directory)g(ftp://ftp.inr.ac.ru/ip-)174 4555 y(routing/:)294
4738 y(1.)48 b Fk(ip)33 b Fo(|)f(pac)m(k)-5 b(age)33
b Fk(iproute2)p Fo(.)294 4934 y(2.)48 b Fk(arping)34
b Fo(|)e(pac)m(k)-5 b(age)34 b Fk(iputils)p Fo(.)294
5131 y(3.)48 b Fk(rdisc)34 b Fo(|)e(pac)m(k)-5 b(age)33
b Fk(iputils)p Fo(.)411 5316 y Fi(NB.)65 b(It)33 b(also)f(refers)g(to)g
(a)h(DHCP)g(clien)n(t,)h Fd(dhcpcd)p Fi(.)50 b(I)32 b(should)h(refrain)
f(from)g(recommending)g(a)g(go)r(o)r(d)411 5416 y(DHCP)f(clien)n(t)g
(to)f(use.)47 b(All)31 b(that)g(I)g(can)g(sa)n(y)e(is)i(that)g(ISC)g
Fd(dhcp-2.0b1pl6)26 b Fi(patc)n(hed)k(with)h(the)h(patc)n(h)411
5516 y(that)g(can)f(b)r(e)i(found)f(in)g(the)h Fd(dhcp.bootp.rarp)26
b Fi(sub)r(directory)31 b(of)h(the)g(same)f(ftp)i(site)f
Fa(do)l(es)40 b Fi(w)n(ork,)32 b(at)411 5615 y(least)27
b(on)g(Ethernet)g(and)h(T)-7 b(ok)n(en)27 b(Ring.)p eop
end
%%Page: 53 53
TeXDict begin 53 52 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(53)174 631 y Fk(#!)52 b(/bin/bash)174 855 y Fo(#)33
b Fj(Usage:)51 b Fk(ifone)i(ADDRESS[/PREFIX-LENGTH])k([DEVICE])174
975 y Fo(#)33 b Fj(P)m(arameters:)174 1096 y Fo(#)g($1)f(|)g(Static)h
(IP)g(address,)h(optionally)f(follo)m(w)m(ed)h(b)m(y)f(pre\014x)h
(length.)174 1216 y(#)f($2)f(|)g(Device)i(name.)44 b(If)33
b(it)f(is)h(missing,)h Fk(eth0)g Fo(is)f(asssumed.)174
1336 y(#)g(F.e.)44 b Fk(ifone)52 b(193.233.7.90)174 1560
y(dev=$2)174 1681 y(:)g(${dev:=eth0})174 1801 y(ipaddr=)174
2025 y Fo(#)33 b(P)m(arse)h(IP)f(address,)h(splitting)f(pre\014x)h
(length.)174 2225 y Fk(if)52 b([)g("$1")g(!=)g("")g(];)f(then)277
2345 y(ipaddr=${1\045/*})277 2466 y(if)h([)f("$1")i(!=)e("$ipaddr")j
(];)e(then)379 2586 y(pfxlen=${1#*/})277 2706 y(fi)277
2827 y(:)f(${pfxlen:=24})174 2947 y(fi)174 3068 y
(pfx="${ipaddr}/${pfxlen})q(")174 3291 y Fo(#)33 b Fj(Step)38
b(0)32 b Fo(|)g(enable)i(lo)s(opbac)m(k.)174 3412 y(#)174
3532 y(#)f(This)h(step)f(is)g(necessary)i(on)e(an)m(y)g(net)m(w)m(ork)m
(ed)i(b)s(o)m(x)e(b)s(efore)g(attempt)174 3653 y(#)g(to)f(con\014gure)i
(an)m(y)f(other)g(device.)174 3876 y Fk(ip)52 b(link)g(set)h(up)e(dev)h
(lo)174 3997 y(ip)g(addr)g(add)h(127.0.0.1/8)h(dev)e(lo)g(brd)g(+)f
(scope)i(host)174 4221 y Fo(#)33 b(IPv6)g(auto)s(con\014gure)g
(themself)h(on)f(lo)s(opbac)m(k.)174 4341 y(#)174 4461
y(#)g(If)g(user)g(ga)m(v)m(e)h(lo)s(opbac)m(k)f(as)g(device,)h(w)m(e)g
(add)e(the)h(address)h(as)f(alias)g(and)f(exit.)174 4685
y Fk(if)52 b([)g("$dev")h(=)e("lo")h(];)g(then)277 4806
y(if)g([)f("$ipaddr")j(!=)e("")f(-a)104 b("$ipaddr")53
b(!=)f("127.0.0.1")i(];)e(then)379 4926 y(ip)g(address)h(add)f($ipaddr)
i(dev)e($dev)379 5046 y(exit)h($?)277 5167 y(fi)277 5287
y(exit)f(0)174 5407 y(fi)174 5631 y Fo(#)33 b Fj(Step)38
b(1)32 b Fo(|)g(enable)i(device)g Fk($dev)p eop end
%%Page: 54 54
TeXDict begin 54 53 bop 174 324 a Fo(54)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fk(if)52 b(!)g(ip)f(link)i(set)f(up)g
(dev)g($dev)g(;)g(then)277 751 y(echo)g("Cannot)h(enable)g(interface)h
($dev.)e(Aborting.")i(1>&2)277 872 y(exit)e(1)174 992
y(fi)174 1242 y Fo(#)33 b(The)h(in)m(terface)f(is)g Fk(UP)p
Fo(.)h(IPv6)f(started)g(stateless)h(auto)s(con\014guration)f(itself,)
174 1362 y(#)g(and)g(its)g(con\014guration)g(\014nishes)h(here.)44
b(Ho)m(w)m(ev)m(er,)174 1483 y(#)33 b(IP)g(still)g(needs)i(some)e
(static)g(precon\014gured)h(address.)174 1733 y Fk(if)52
b([)g("$ipaddr")h(=)f("")g(];)f(then)277 1853 y(echo)h("No)g(address)h
(for)f($dev)h(is)f(configured,)i(trying)f(DHCP...")g(1>&2)277
1974 y(dhcpcd)277 2094 y(exit)f($?)174 2214 y(fi)174
2464 y Fo(#)33 b Fj(Step)38 b(2)32 b Fo(|)g(IP)h(Duplicate)g(Address)i
(Detection)e([9].)174 2585 y(#)g(Send)h(t)m(w)m(o)f(prob)s(es)g(and)g
(w)m(ait)g(for)f(result)h(for)f(3)h(seconds.)174 2705
y(#)g(If)g(the)g(in)m(terface)g(op)s(ens)h(slo)m(w)m(er)g(f.e.)f(due)g
(to)f(long)g(media)i(detection,)174 2825 y(#)f(y)m(ou)g(w)m(an)m(t)h
(to)e(increase)i(the)f(timeout.)174 3072 y Fk(if)52 b(!)g(arping)h(-q)e
(-c)h(2)g(-w)f(3)h(-D)g(-I)g($dev)g($ipaddr)h(;)f(then)277
3193 y(echo)g("Address)i($ipaddr)f(is)f(busy,)g(trying)h(DHCP...")g
(1>&2)277 3313 y(dhcpcd)277 3433 y(exit)f($?)174 3554
y(fi)174 3804 y Fo(#)33 b(OK,)f(the)h(address)h(is)f(unique,)i(w)m(e)e
(ma)m(y)h(add)e(it)h(on)f(the)h(in)m(terface.)174 3924
y(#)174 4045 y(#)g Fj(Step)38 b(3)32 b Fo(|)g(Con\014gure)i(the)f
(address)h(on)e(the)h(in)m(terface.)174 4295 y Fk(if)52
b(!)g(ip)f(address)j(add)e($pfx)g(brd)g(+)g(dev)g($dev;)g(then)277
4415 y(echo)g("Failed)h(to)f(add)g($pfx)h(on)e($dev,)i(trying)g
(DHCP...")g(1>&2)277 4535 y(dhcpcd)277 4656 y(exit)f($?)174
4776 y(fi)174 5026 y Fo(#)33 b Fj(Step)38 b(4)32 b Fo(|)g(Announce)i
(our)f(presence)h(on)f(the)g(link.)174 5248 y Fk(arping)53
b(-A)f(-c)g(1)f(-I)h($dev)g($ipaddr)174 5368 y(noarp=$?)174
5489 y(\()g(sleep)g(2;)277 5609 y(arping)h(-U)f(-c)f(1)h(-I)g($dev)g
($ipaddr)h(\))f(>&)f(/dev/null)j(</dev/null)g(&)p eop
end
%%Page: 55 55
TeXDict begin 55 54 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(55)174 631 y(#)33 b Fj(Step)38 b(5)32 b Fo(\(optional\))h(|)f(Add)
h(some)g(con)m(trol)g(routes.)174 751 y(#)174 872 y(#)g(1.)43
b(Prohibit)33 b(link)h(lo)s(cal)e(m)m(ulticast)i(addresses.)174
992 y(#)f(2.)43 b(Prohibit)33 b(link)h(lo)s(cal)e(\(alias,)h(limited\))
h(broadcast.)174 1112 y(#)f(3.)43 b(Add)33 b(default)g(m)m(ulticast)h
(route.)174 1373 y Fk(ip)52 b(route)h(add)f(unreachable)i(224.0.0.0/24)
174 1493 y(ip)e(route)h(add)f(unreachable)i(255.255.255.255)174
1614 y(if)e([)g(`ip)g(link)g(ls)g($dev)g(|)g(grep)g(-c)g(MULTICAST`)i
(-ge)e(1)f(];)h(then)277 1734 y(ip)g(route)g(add)g(224.0.0.0/4)j(dev)d
($dev)g(scope)h(global)174 1854 y(fi)174 2115 y Fo(#)33
b Fj(Step)38 b(6)32 b Fo(|)g(Add)h(fallbac)m(k)h(default)f(route)f
(with)i(h)m(uge)f(metric.)174 2235 y(#)g(If)g(a)f(pro)m(xy)i(ARP)e
(serv)m(er)j(is)e(presen)m(t)h(on)f(the)g(in)m(terface,)g(w)m(e)h(will)
f(b)s(e)174 2356 y(#)g(able)g(to)f(talk)h(to)f(all)h(the)g(In)m(ternet)
h(without)f(further)g(con\014guration.)174 2476 y(#)g(It)g(is)g(not)f
(so)h(c)m(heap)h(though)e(and)h(w)m(e)h(still)f(hop)s(e)g(that)f(this)h
(route)174 2596 y(#)g(will)g(b)s(e)g(o)m(v)m(erridden)i(b)m(y)e(more)g
(correct)g(one)g(b)m(y)h(rdisc.)174 2717 y(#)f(Do)f(not)g(mak)m(e)i
(this)f(step)h(if)e(the)h(device)i(is)e(not)f(ARP)m(able,)174
2837 y(#)h(b)s(ecause)h(dead)f(nexthop)h(detection)f(do)s(es)h(not)e(w)
m(ork)h(on)g(them.)174 3098 y Fk(if)52 b([)g("$noarp")h(=)f("0")g(];)f
(then)277 3218 y(ip)h(ro)f(add)i(default)g(dev)f($dev)g(metric)h(30000)
g(scope)f(global)174 3338 y(fi)174 3599 y Fo(#)33 b Fj(Step)38
b(7)32 b Fo(|)g(Restart)h(router)g(disco)m(v)m(ery)i(and)e(exit.)174
3859 y Fk(killall)53 b(-HUP)g(rdisc)f(||)g(rdisc)h(-fs)174
3979 y(exit)g(0)174 4341 y Fn(E)162 b(Example:)118 b
Ff(ifcfg)76 b Fn(|)h(in)l(terface)f(address)f(manage-)442
4523 y(men)l(t)174 4752 y Fo(This)30 b(is)g(a)f(simplistic)i(script)f
(replacing)f(one)h(option)f(of)f Fk(ifconfig)p Fo(,)k(namely)-8
b(,)31 b(IP)e(address)i(man-)174 4872 y(agemen)m(t.)81
b(It)45 b(not)g(only)g(adds)g(addresses,)50 b(but)45
b(also)g(carries)h(out)e(Duplicate)i(Address)g(De-)174
4992 y(tection)c([9],)h(sends)f(unsolicited)h(ARP)e(to)f(up)s(date)h
(the)g(cac)m(hes)i(of)d(other)h(hosts)h(sharing)f(the)174
5113 y(in)m(terface,)g(adds)d(some)h(con)m(trol)f(routes)h(and)f
(restarts)g(Router)g(Disco)m(v)m(ery)i(when)f(it)f(is)g(neces-)174
5233 y(sary)-8 b(.)321 5358 y(I)31 b(strongly)g(recommend)h(using)g(it)
e Fl(inste)-5 b(ad)41 b Fo(of)30 b Fk(ifconfig)j Fo(b)s(oth)d(on)h
(hosts)g(and)g(on)g(routers.)174 5623 y Fk(#!)52 b(/bin/bash)p
eop end
%%Page: 56 56
TeXDict begin 56 55 bop 174 324 a Fo(56)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fo(#)f Fj(Usage:)51 b
Fk(ifcfg)i(DEVICE[:ALIAS])i([add|del])e(ADDRESS[/LENGTH])j([PEER])174
751 y Fo(#)33 b Fj(P)m(arameters:)174 872 y Fo(#)g(|Device)g(name.)44
b(It)33 b(ma)m(y)g(ha)m(v)m(e)h(alias)f(su\016x,)h(separated)g(b)m(y)f
(colon.)174 992 y(#)g(|Command:)44 b(add,)33 b(delete)h(or)e(stop.)174
1112 y(#)h(|IP)g(address,)h(optionally)f(follo)m(w)m(ed)g(b)m(y)h
(pre\014x)g(length.)174 1233 y(#)f(|Optional)f(p)s(eer)h(address)h(for)
e(p)s(oin)m(top)s(oin)m(t)h(in)m(terfaces.)174 1353 y(#)g(F.e.)44
b Fk(ifcfg)52 b(eth0)h(193.233.7.90/24)174 1474 y Fo(#)33
b(This)h(function)f(determines,)i(whether)f(it)e(is)h(router)g(or)f
(host.)174 1594 y(#)h(It)g(returns)g(0,)g(if)f(the)h(host)g(is)g
(apparen)m(tly)h(not)e(router.)174 1785 y Fk(CheckForwarding)56
b(\(\))51 b({)277 1906 y(local)h(sbase)h(fwd)277 2026
y(sbase=/proc/sys/net/ipv4/)q(conf)277 2147 y(fwd=0)277
2267 y(if)f([)f(-d)h($sbase)h(];)f(then)379 2387 y(for)g(dir)h(in)e
($sbase/*/forwarding;)57 b(do)482 2508 y(fwd=$[$fwd)d(+)d(`cat)i
($dir`])379 2628 y(done)277 2748 y(else)379 2869 y(fwd=2)277
2989 y(fi)277 3110 y(return)g($fwd)174 3230 y(})174 3421
y Fo(#)33 b(This)h(function)f(restarts)g(Router)g(Disco)m(v)m(ery)-8
b(.)174 3613 y Fk(RestartRDISC)55 b(\(\))d({)277 3733
y(killall)h(-HUP)f(rdisc)h(||)f(rdisc)g(-fs)174 3853
y(})174 4045 y Fo(#)33 b(Calculate)h(ABC)f("natural")f(mask)h(length)
174 4165 y(#)g(Arg:)43 b($1)33 b(=)f(dotquad)h(address)174
4357 y Fk(ABCMaskLen)54 b(\(\))e({)277 4477 y(local)g(class;)277
4597 y(class=${1\045\045.*})277 4718 y(if)g([)f($class)i(-eq)f(0)g(-o)f
($class)i(-ge)f(224)g(];)g(then)h(return)f(0)277 4838
y(elif)g([)g($class)h(-ge)f(192)g(];)g(then)g(return)h(24)277
4958 y(elif)f([)g($class)h(-ge)f(128)g(];)g(then)g(return)h(16)277
5079 y(else)103 b(return)53 b(8)f(;)f(fi)174 5199 y(})174
5391 y Fo(#)33 b Fj(MAIN\(\))174 5511 y Fo(#)174 5631
y(#)g(Strip)g(alias)g(su\016x)h(separated)f(b)m(y)h(colon.)p
eop end
%%Page: 57 57
TeXDict begin 57 56 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(57)174 631 y Fk(label="label)55 b($1")174 751 y(ldev=$1)174
872 y(dev=${1\045:*})174 992 y(if)d([)g("$dev")h(=)e("")h(-o)g("$1")g
(=)g("help")g(];)g(then)277 1112 y(echo)g("Usage:)h(ifcfg)g(DEV)f
([[add|del)i([ADDR[/LEN]])g([PEER])f(|)f(stop]")g(1>&2)277
1233 y(echo)g(")359 b(add)52 b(-)g(add)g(new)g(address")h(1>&2)277
1353 y(echo)f(")359 b(del)52 b(-)g(delete)h(address")g(1>&2)277
1474 y(echo)f(")359 b(stop)53 b(-)e(completely)j(disable)f(IP")f(1>&2)
277 1594 y(exit)g(1)174 1714 y(fi)174 1835 y(shift)174
2076 y(CheckForwarding)174 2196 y(fwd=$?)174 2423 y Fo(#)33
b(P)m(arse)h(command.)44 b(If)33 b(it)f(is)h(\\stop",)g(\015ush)g(and)g
(exit.)174 2650 y Fk(deleting=0)174 2770 y(case)53 b("$1")f(in)174
2890 y(add\))h(shift)f(;;)174 3011 y(stop\))277 3131
y(if)g([)f("$ldev")i(!=)f("$dev")h(];)f(then)379 3252
y(echo)h("Cannot)g(stop)f(alias)h($ldev")g(1>&2)379 3372
y(exit)g(1;)277 3492 y(fi)277 3613 y(ip)f(-4)f(addr)i(flush)f(dev)g
($dev)h($label)g(||)e(exit)i(1)277 3733 y(if)f([)f($fwd)i(-eq)f(0)f(];)
h(then)g(RestartRDISC;)j(fi)277 3853 y(exit)d(0)g(;;)174
3974 y(del*\))277 4094 y(deleting=1;)i(shift)f(;;)174
4215 y(*\))174 4335 y(esac)174 4562 y Fo(#)33 b(P)m(arse)h(pre\014x,)g
(split)f(pre\014x)h(length,)f(separated)g(b)m(y)h(slash.)174
4789 y Fk(ipaddr=)174 4909 y(pfxlen=)174 5029 y(if)52
b([)g("$1")g(!=)g("")g(];)f(then)277 5150 y(ipaddr=${1\045/*})277
5270 y(if)h([)f("$1")i(!=)e("$ipaddr")j(];)e(then)379
5391 y(pfxlen=${1#*/})277 5511 y(fi)277 5631 y(if)g([)f("$ipaddr")j(=)d
("")h(];)g(then)p eop end
%%Page: 58 58
TeXDict begin 58 57 bop 174 324 a Fo(58)2486 b Fg(IP)33
b(Command)h(Reference)379 631 y Fk(echo)53 b("$1)f(is)g(bad)g(IP)f
(address.")j(1>&2)379 751 y(exit)f(1)277 872 y(fi)174
992 y(fi)174 1112 y(shift)174 1324 y Fo(#)33 b(If)g(p)s(eer)g(address)h
(is)f(presen)m(t,)h(pre\014x)g(length)f(is)g(32.)174
1444 y(#)g(Otherwise,)h(if)f(pre\014x)h(length)f(w)m(as)g(not)g(giv)m
(en,)g(guess)h(it.)174 1656 y Fk(peer=$1)174 1776 y(if)52
b([)g("$peer")h(!=)f("")f(];)h(then)277 1896 y(if)g([)f("$pfxlen")j(!=)
e("")f(-a)h("$pfxlen")i(!=)e("32")g(];)g(then)379 2017
y(echo)h("Peer)f(address)h(with)g(non-trivial)h(netmask.")g(1>&2)379
2137 y(exit)f(1)277 2258 y(fi)277 2378 y(pfx="$ipaddr)h(peer)f($peer")
174 2498 y(else)277 2619 y(if)f([)f("$pfxlen")j(=)d("")h(];)g(then)379
2739 y(ABCMaskLen)i($ipaddr)379 2860 y(pfxlen=$?)277
2980 y(fi)277 3100 y(pfx="$ipaddr/$pfxlen")174 3221 y(fi)174
3341 y(if)e([)g("$ldev")h(=)e("$dev")i(-a)f("$ipaddr")i(!=)d("")h(];)g
(then)277 3461 y(label=)174 3582 y(fi)174 3793 y Fo(#)33
b(If)g(deletion)g(w)m(as)h(requested,)h(delete)e(the)g(address)h(and)f
(restart)g(RDISC)174 4005 y Fk(if)52 b([)g($deleting)h(-ne)f(0)g(];)g
(then)277 4125 y(ip)g(addr)g(del)g($pfx)g(dev)g($dev)h($label)g(||)e
(exit)i(1)277 4245 y(if)f([)f($fwd)i(-eq)f(0)f(];)h(then)g
(RestartRDISC;)j(fi)277 4366 y(exit)d(0)174 4486 y(fi)174
4698 y Fo(#)33 b(Start)f(in)m(terface)i(initialization.)174
4818 y(#)174 4938 y(#)f Fj(Step)38 b(0)32 b Fo(|)g(enable)i(device)g
Fk($dev)174 5150 y(if)52 b(!)g(ip)f(link)i(set)f(up)g(dev)g($dev)g(;)g
(then)277 5270 y(echo)g("Error:)h(cannot)g(enable)g(interface)h($dev.")
f(1>&2)277 5391 y(exit)f(1)174 5511 y(fi)174 5631 y(if)g([)g("$ipaddr")
h(=)f("")g(];)f(then)i(exit)f(0;)g(fi)p eop end
%%Page: 59 59
TeXDict begin 59 58 bop 174 324 a Fp(ipr)n(oute2-ss020116)2605
b Fo(59)174 631 y(#)33 b Fj(Step)38 b(1)32 b Fo(|)g(IP)h(Duplicate)g
(Address)i(Detection)e([9].)174 751 y(#)g(Send)h(t)m(w)m(o)f(prob)s(es)
g(and)g(w)m(ait)g(for)f(result)h(for)f(3)h(seconds.)174
872 y(#)g(If)g(the)g(in)m(terface)g(op)s(ens)h(slo)m(w)m(er)g(f.e.)f
(due)g(to)f(long)g(media)i(detection,)174 992 y(#)f(y)m(ou)g(w)m(an)m
(t)h(to)e(increase)i(the)f(timeout.)174 1226 y Fk(if)52
b(!)g(arping)h(-q)e(-c)h(2)g(-w)f(3)h(-D)g(-I)g($dev)g($ipaddr)h(;)f
(then)277 1346 y(echo)g("Error:)h(some)g(host)f(already)h(uses)f
(address)i($ipaddr)f(on)f($dev.")g(1>&2)277 1467 y(exit)g(1)174
1587 y(fi)174 1822 y Fo(#)33 b(OK,)f(the)h(address)h(is)f(unique.)45
b(W)-8 b(e)33 b(ma)m(y)h(add)e(it)h(to)f(the)h(in)m(terface.)174
1942 y(#)174 2062 y(#)g Fj(Step)38 b(2)32 b Fo(|)g(Con\014gure)i(the)f
(address)h(on)e(the)h(in)m(terface.)174 2297 y Fk(if)52
b(!)g(ip)f(address)j(add)e($pfx)g(brd)g(+)g(dev)g($dev)g($label;)h
(then)277 2417 y(echo)f("Error:)h(failed)g(to)f(add)g($pfx)g(on)g
($dev.")h(1>&2)277 2538 y(exit)f(1)174 2658 y(fi)174
2893 y Fo(#)33 b Fj(Step)38 b(3)32 b Fo(|)g(Announce)i(our)f(presence)h
(on)f(the)g(link)174 3102 y Fk(arping)53 b(-q)f(-A)g(-c)g(1)f(-I)h
($dev)g($ipaddr)174 3222 y(noarp=$?)174 3342 y(\()g(sleep)g(2)g(;)277
3463 y(arping)h(-q)f(-U)f(-c)h(1)g(-I)f($dev)i($ipaddr)g(\))e(>&)h
(/dev/null)i(</dev/null)g(&)174 3698 y Fo(#)33 b Fj(Step)38
b(4)32 b Fo(\(optional\))h(|)f(Add)h(some)g(con)m(trol)g(routes.)174
3819 y(#)174 3939 y(#)g(1.)43 b(Prohibit)33 b(link)h(lo)s(cal)e(m)m
(ulticast)i(addresses.)174 4059 y(#)f(2.)43 b(Prohibit)33
b(link)h(lo)s(cal)e(\(alias,)h(limited\))h(broadcast.)174
4180 y(#)f(3.)43 b(Add)33 b(default)g(m)m(ulticast)h(route.)174
4414 y Fk(ip)52 b(route)h(add)f(unreachable)i(224.0.0.0/24)g(>&)e
(/dev/null)174 4535 y(ip)g(route)h(add)f(unreachable)i(255.255.255.255)
h(>&)d(/dev/null)174 4655 y(if)g([)g(`ip)g(link)g(ls)g($dev)g(|)g(grep)
g(-c)g(MULTICAST`)i(-ge)e(1)f(];)h(then)277 4775 y(ip)g(route)g(add)g
(224.0.0.0/4)j(dev)d($dev)g(scope)h(global)f(>&)g(/dev/null)174
4896 y(fi)174 5130 y Fo(#)33 b Fj(Step)38 b(5)32 b Fo(|)g(Add)h
(fallbac)m(k)h(default)f(route)f(with)i(h)m(uge)f(metric.)174
5251 y(#)g(If)g(a)f(pro)m(xy)i(ARP)e(serv)m(er)j(is)e(presen)m(t)h(on)f
(the)g(in)m(terface,)g(w)m(e)h(will)f(b)s(e)174 5371
y(#)g(able)g(to)f(talk)h(to)f(all)h(the)g(In)m(ternet)h(without)f
(further)g(con\014guration.)174 5492 y(#)g(Do)f(not)g(mak)m(e)i(this)f
(step)h(on)e(router)h(or)f(if)h(the)g(device)h(is)f(not)f(ARP)m(able.)
174 5612 y(#)h(b)s(ecause)h(dead)f(nexthop)h(detection)f(do)s(es)h(not)
e(w)m(ork)h(on)g(them.)p eop end
%%Page: 60 60
TeXDict begin 60 59 bop 174 324 a Fo(60)2486 b Fg(IP)33
b(Command)h(Reference)174 631 y Fk(if)52 b([)g($fwd)g(-eq)g(0)g(];)f
(then)277 751 y(if)h([)f($noarp)i(-eq)f(0)g(];)f(then)379
872 y(ip)h(ro)g(append)h(default)g(dev)f($dev)g(metric)h(30000)g(scope)
f(global)277 992 y(elif)g([)g("$peer")h(!=)f("")f(];)h(then)379
1112 y(if)g(ping)h(-q)e(-c)h(2)g(-w)f(4)h($peer)h(;)e(then)482
1233 y(ip)h(ro)g(append)g(default)i(via)e($peer)g(dev)g($dev)h(metric)f
(30001)379 1353 y(fi)277 1474 y(fi)277 1594 y(RestartRDISC)174
1714 y(fi)174 1955 y(exit)h(0)174 2183 y Fo(#)33 b(End)g(of)g
Fj(MAIN\(\))p eop end
%%Trailer

userdict /end-hook known{end-hook}if
%%EOF

Anon7 - 2021