%!PS-Adobe-2.0 %%BeginResource: font lsunr00 %!PS-AdobeFont-1.1: LucidaSansUnicode00 0.9 %%CreationDate: 1994 Jun 04 09:53:35 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((C) 1991, 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((C) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 00) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode00 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 100 /0064 put dup 101 /0065 put dup 102 /0066 put dup 103 /0067 put dup 104 /0068 put dup 105 /0069 put dup 106 /006a put dup 107 /006b put dup 108 /006c put dup 109 /006d put dup 110 /006e put dup 111 /006f put dup 112 /0070 put dup 113 /0071 put dup 114 /0072 put dup 115 /0073 put dup 116 /0074 put dup 117 /0075 put dup 118 /0076 put dup 119 /0077 put dup 120 /0078 put dup 121 /0079 put dup 122 /007a put dup 123 /007b put dup 124 /007c put dup 125 /007d put dup 126 /007e put dup 163 /00a3 put dup 167 /00a7 put dup 169 /00a9 put dup 173 /00ad put dup 174 /00ae put dup 176 /00b0 put dup 177 /00b1 put dup 180 /00b4 put dup 181 /00b5 put dup 182 /00b6 put dup 185 /00b9 put dup 186 /00ba put dup 188 /00bc put dup 189 /00bd put dup 191 /00bf put dup 198 /00c6 put dup 215 /00d7 put dup 223 /00df put dup 231 /00e7 put dup 233 /00e9 put dup 237 /00ed put dup 239 /00ef put dup 241 /00f1 put dup 247 /00f7 put dup 252 /00fc put dup 32 /0020 put dup 33 /0021 put dup 34 /0022 put dup 35 /0023 put dup 36 /0024 put dup 37 /0025 put dup 38 /0026 put dup 40 /0028 put dup 41 /0029 put dup 42 /002a put dup 43 /002b put dup 44 /002c put dup 45 /002d put dup 46 /002e put dup 47 /002f put dup 48 /0030 put dup 49 /0031 put dup 50 /0032 put dup 51 /0033 put dup 52 /0034 put dup 53 /0035 put dup 54 /0036 put dup 55 /0037 put dup 56 /0038 put dup 57 /0039 put dup 58 /003a put dup 59 /003b put dup 60 /003c put dup 61 /003d put dup 62 /003e put dup 63 /003f put dup 65 /0041 put dup 66 /0042 put dup 67 /0043 put dup 68 /0044 put dup 69 /0045 put dup 70 /0046 put dup 71 /0047 put dup 72 /0048 put dup 73 /0049 put dup 74 /004a put dup 75 /004b put dup 76 /004c put dup 77 /004d put dup 78 /004e put dup 79 /004f put dup 80 /0050 put dup 81 /0051 put dup 82 /0052 put dup 83 /0053 put dup 84 /0054 put dup 85 /0055 put dup 86 /0056 put dup 87 /0057 put dup 88 /0058 put dup 89 /0059 put dup 90 /005a put dup 91 /005b put dup 92 /005c put dup 93 /005d put dup 95 /005f put dup 96 /0060 put dup 97 /0061 put dup 98 /0062 put dup 99 /0063 put readonly def /FontBBox{-90 -211 977 1005}readonly def %/UniqueID 5054500 def currentdict end currentfile eexec AF9D569DD6A39B9A08931526FD86DA1F3D52F6A6E9A3C2A341616BA8AD4A6BBA6A84F4F691C60D 64B463C6D1B3A432634AAC416FAE1067039D940A82A692DB189D5719DA649D309E36853E1F767A 0DF1C424DA3E9D8E6B45B659E31B0A03BB7747FB2945268D0805A130347C7455FA73121BA001A8 5BFFF1847B8FBAE1B61BA76AB61D750F7BCDB1EE8E4B4E95657E783B2230A68A5A62E9E39EA352 7B3E832C6BF769697C2B18F29596B8A56AC9532224A452AE7A77A33DC5D437BAD5B4C1B9DD7680 FE4456B59A798F584F7913B3A790F3E5F9559505B80A36CDE0A4D46A595E942D798E6F6311B3E3 613059010E0C594BA804C9FA8EED254427D021628C6A59FA5C10314D3143AA329B9E1E767CADFB B864C70BE2EB0FA96FBDCC2EB1B44783431EE1CDCADC68DF65C29B4AB7C198BAA625A3736F6240 46E72FAE8F379B391393A007E9F796065FC622322C782111E2EE7B73FC09C5852F35A75CA296FB ADBC77E83C2378DAE017DC93437EDA4E1473D256C7AA433FAFF90BFF104C39847FB6076D559B8A 4D05AC2A35837CF7949567F37638F1FF869CA022F28979DC7AA611BCACFFE95AA23CBFB86C9719 BBD5738FB6D86326F1B0A84EFA79C80BDC618F42DFAB8B232211332E1D793A6C4CA71DE2D7DBE1 5806FB210EA36FCE5FA253B9C507225A5581765AA21DB9E1739AA6063F3F7F11D72E65C3F9A83E 71C8DFC9B9E13C0CCA25836D4233D10595ED053201C745C989878BC0457410C29FED3273550E0E C93F30B6E5994D0DE950C82E70299AB82D97B0EC11EE5CFD3A5311B0B9623C7CF73BCCE4D33436 655812E9BC69045B581B2BACE84DEBD480A8652676ABDB2976168954DCD745B42F92F25CC2A4B0 58AF8D1F0BFFC280B7FECF0593655FEDBE41135D72874467035351F424E92C9E4F628501066322 AE5896C2CC8C5AD9EE9C4E2076DF548DEF8A6ADAAEC8F05CBBB8882BE5DEBB3976FDD20539F0ED C5F331CADFFF8B1E1ACC3E0DE2DE0628766105E7EE97E55E66E2585DD7412749CCA828C3CB355F 716E5F447857D298C1383EDD389C2C09F3094A09F90652D5913EEBBFB16547FF31DBB8C0F43480 6C96524DB4F2D96F6A32856DC62FB350D208B4462521EA9578695E7F8A31FDAFC065535AB32B28 4F808767213AD4B89C02E59E3F2BD114BC411E4A9B58F97102E7ACB9310EE2AD2EAEE87E1702E4 3E00854C35156E731478402285AB23B0049A74381C2355F35511C7D966B2EE653CD8A3D7D6505E 80A4BD2C96B451354DD9323C30C9894A60CE614D0B091D3A03A5EDA4BB127F255FF706AD6E6827 9123CEF7396D89B5E5A968B4A4C0F4B0C227D1EE676801922A3CE24F2602569AF11ED43F17E2F4 6669AEBD1F6B9E53C76043E1CD9DACDBB3B6B87F949372C03E9A5C80FABBF2E7767880B7064D05 AE2D717B6A189D0C9F8DBC981EBEFD9A031C7592EFA0C08FD8BCD2FA1210881D95D6ECD9E72096 5ACE2A9462EB9C3504315CFE8C6B5362B833CE52BC726DCB3450CEB73E42E667B9D86D0F985A35 CAFF807F4DFAF156AFDCB999DBA61476BF4CCE49C6D8A8B7D2A3FC07EE8346E30F68FEF7774273 6E55BA23311F85C7FAD9D9AA1EB17E14C45033BEE8D3093AEE9E706133FA94413F30F723568255 498A071D76C10D12536425A7185DB60BDECAF6BFD0BE58F418D0E62FDA7B846BDD490EA7CEAD05 E1BB9A4DF66E13758858B80F6C7216D8D606E92BC93576A1FB3604D9FBD78656FDF64328AD9466 3CFABAB19A0636518FF61E62591661FBFD264B90156E24941177A42A0E5315F6168A93B96E27DF 2E7451F382C2C83241AC2B5F52A2C9453D3E207EBBEB3881FF237E9135E1D9191E1FBE5E606C60 43726A6783CD4414D26F8F95B260FAE60262DE148545079C80C962D5D7BDE2A77A814CDD4ED901 D28D4D5C4324DF7F7AA6B832B6F5E0E129F471A12373F0D97037FD695F921E0CAD8963372E8DC7 F3AA5E004E1F5980BA9825774BB2DD511B6A9D5A0C7E7885E39E3B5497EF466C52B7DD4CF4AD74 6E62FE4B1E082811AA45D6483725D0EE18C9C6BB988C036913682EAC4645EF90AD5FC24BC78778 DDDD48EC8F1E64525AB9B1EFE0CDFABCC6A17BDACC1B3B1929FB2FA1DB85991FFE1B92B7999C99 1BD3AC17B8A44E11DD954BEBFF002A0562EEDBC507DD0FF13ABADBC8E5676F5F951D1B32B725DE FB33219FF4DAE8298887E415434BE4012D1A294F807CF53248AA137591B532B573F41732216B12 685CB4B612B782E010644CB813A31AC4A25038A17FA0872E515BB2C119DEE59829927FBE20902D 18CF2F33E18DC0AC2108789FA1D1F61553184FC185A3BC3BA6985449149A08E4484F33EA950C18 B0148B6DA2EF0E2F1BE218CBEDFD4A4E9A53235840A8E8DD1A757D8F48DE07C687E5F35EF237DB EA582FFC92EAC5A8E4D9C1F048B037FDE46770B073B161333AD5E0DC09187DD0D9FF2CAFEFDCBD 00F3FF4642B63703F6B4CA2A479BE5145E3EA90359F4BE67F1EF0EC07F997A7A63797EAC98E3D0 C64F1EBEC99C7C436EF655ACF76DE5201A5B3F5CF58F0116008DF241D370E616E8FF10BC551606 F041FF641B4C8FA9274BC3FDE69602B2BD58D1428B119607AB28B30393C0BE4E33E5EE1059C9BC 1AC92B4AD1C7D1C71FB44429D8F8042F0A7ADEDE040F13D0C13F9BD92D3BE4E77E446DC8D57FCF C704F6EB8D438EFA72F74835DC24E853B3B1178904F0484AED543B57FC8ABFFF4253AFA2C93C66 C2144FF1777A1E3A40D1D023BCBE24557DAE5D76DAE6FC7063E11A5DD52B0060501E84AE0E66ED 7522828C15045CE72B548B59A3D7DFC3CF6779B4A6D4891B95CD4C6613C9390DD953FA58FE97D8 A545177EC9EDB59770B4B67111A1FEA9E74A61B360D9C19100440F8A69386EC3878C732DA58580 3A177AEFF85BFB5D112C37ADF7604BAB387F08243B2FEC24DAF9F95BB75A678DAA7AB277D933AC 0362E4DD5E6E4194DE873932EC10013B68CD0D1CF5298816E6B195372FAE49A5F9F722C30EDDBB 088E0F1F7D8A5D6386B8E3219125A8ED2A4D534761DEC9DA916FF875E13E309F2F2C925F28ED5E B792A290F05B7732D217A1CF9577C0107889C456924AB91BFB728E4C4A0E70412DA721CA4B1A30 189BE4414AEE3AB1943C0349ED437C91796EB8616D3CCBE148CD21B0DF7ED5720F18496100119C 2995490D7B60C994E93D874AB352A813604AA9A83D9388F758B7F479F9F6EFDBA983FA6DA07E7D 4F80E64E68634D9D811F3A0088BA46040577B89C7E147CF96C4A999CA1899799FA56F401645A97 DFF68155332EE3F23F3865B6DE715F1AB687A696878C9821E029E3D867BDC50322A0C90081E3B4 3BA1E889C277DEDA5ECB0CBE16F8FD562B82F22DA851CA5AC51EF3051382E9706A2F6F14CE6897 4292ECA605ACCBAB5071ED68BB05BDDE20C04E0007A8EF46D69FA79540C53E34C29F3CB68E9329 8472F6D89EF77A28A18B334278836F65E88255F1FD3A3D031A22BBC607E7BDEB1D00AF60D5E024 7E971B8965728CB1CAD6B5853F4F66448031312AFF8E56B01BB8D50F3A1060A18ADB1FA8F84C69 399BE117B98430CF63288BA1950ABE0CEC051B66A7EBCC7A3FC793589A4C52EDBD1A71ABE49916 10496FC6C346C376D3B061B00BE7B4A659D21A2C0FFD3FBEE485EDB7BEE599E5248DC5FCD89632 61BE192134BFF9C9709E76A567A0F7B5773870EEBE07E3630175BFD8C5520B2AAF6DD2D7C3FAEF 2E3F52318A7AD6E05847D76ED22D021BFDAAB041B16F2AE08FF86DE08FD998D61DE2D0EA477E46 6E963EE5EB69F69E30113F0D65683C37CDA865CF92EC5FFA54DBB6798738D38DD7898BC7C26AF6 939EFF47B1A3DEE6B5E38505EE05A0F671EF8917A434D92EBDD8F6820ED3A2F24199D47745D393 9259A5D856E1AA9EBA0292EEFAFF75F709ADCDA0D6453C3550DB28BFA22549BD2A282E8B9F2367 FCF20AACF9E7B725D0ED0498695F3A2DD76389BE8A99B603CFB0FEE3C5642BD02670108226BA9B A90B90B1D660C552307E3D388661A20C5F42C3CFF5D0E0F6DA69792E8FB4C83AB821D0F7D80F23 93BCAACBBE56E8095466F7BF8B0504B72734DEF119DC32DD63F1BCA3A66A5F6DB5BC221F4927C2 B08601F89D71E754481CD1B3B8E5EC8E9A22F5AD8CF45039FB8912A2E4EBC638743D7614BCB41A 49D162291E70BD656EF7F54BCA72BFC633984F1B15B4145F13D08B255B77A357C15B8A5DB04C3A 95827DAD0B0A302577C12F66389E4E40040EB52AD36552A592C47614A9035E7CDC4BDA55645F8F 72F10287EB7682F17034B836B44F111B786B8A6A47023EC1C950A4B0636C28E1753781C9C0B206 5DE58A47D2E7B1AD71D8DBD36E72DE625B5F52B9DB0F9679FC4B61005A112E9AA717504C71CC0F F50CE8E96DFE3AF6613CD4A3B4645ECC5F495E3DFBC1EC17575457EF39A0D4709221F2F1E14FAD ACF7FA5CCF662DD341477170FB291B706D76CE78C3CC90CD36A45BD04704DFB2B251CD9B1B69E6 B9DB3E9739DE8B2CD9DE63E61ABCB8581AD13493468EE995EE668DBE6AF6809F9529595D67DA56 DC7335876F36499EBB7226FDB9876A7D0D43159E77F0AE36B55033A11156C3F757FBBA38177D24 88EFD1BD9D8F69ABDD365989CEFD521F60BC9005D8C40942B43FC6DB8088842BE8A7B567420A80 9AC76E7BA77D5EFC8D9A2FCDD1A565EB580207A250621E27E51685A0C650323B4D2101810F6C89 E5D312BAEDAD3097F87C6064BA138681D3192C219ADA66AD2B0C679C8B00078597B2DE46F5A040 91F8C34813C07AC64B2F5FBF0EF52B16AA1EE9B9ADE71108DC9D47D587585A933CAA161CE586AC E30BA582A5CE8728991B10AE2012C2291B7DCEAF72E0299FF49F5ED495773656908F04F697ADF9 32AA61E6D90A87BB0F0311AF737E9F72C501CF1AB4DDF4392FB9F3E71F859D45F32EDF329F4856 C12ED2DB6FA3631B3731D5FB2DB79E193BB8BE75B85722E6CD85C35C05C2998BC6B854BFF76A39 B1A51ABD3304ED453AA413E6F6329B651FD13C0751886DE4553E0B79441FFECB81839626868715 0DF0FBBD53F7861647CAC9C633B9FF63BCB644D124F2420A7FE6EE7EFED293C9D53983617F2500 6CDF86C74694A20569BBC5DE7616333432C0FD525029E612858F5BF27D1FE06931A5AD37675162 2AE14BA10E2702CB896CC5A5164A287AE3771036AB2EC7F50B20576E73C151580E0D0884277FBE 9D2FBC52DDC0EC22A07138C692108A6C637ACA40D1881027E23BECFF6C54A50DAF7A79B5CB4BDF AE35CD587F46B14B3A89A50487F8A6E20EE48099B44F459E48D65FB393D2874E4BF7544FC325F5 B04FDFC0ABF2D6B8B6870A617D344AE093C4412007061670E6913B5581A0EE53B3D8C2D75E9560 101D4C217EC44BE71F866F0F40D1DC7296ED313ECBFF60CA3A05D45E51E32D9E75ED31F1905DC0 4F4AF2A29600172249D0B8B5B42D99A546A9C45704A35711637ABD7A64BF4D417564ED0BBBC7F2 093F6C7F87A770F6B6A655DCBC13FB4CC24FAEC848549CE2415301BF6BF234405946330E2964AF A37702223D1466A780720F39FE966AC1023866246F7E25BE2A1E0C009708DB2724E13770A8817D 6F27A095BED4C33648173F0DD8C627F405ABD3CA636EF8A9E77CC67D20E51721CA655704BFEC27 564A69E6193E5E3AB1814FBD3BE29D72836BF85C85F4555FDF3908E6BED58E0927BA45AD4434F8 D15C510FA5CD1311F7DBB20CAACE0D88535C58309CC82CA5E6ABA2E0DCC4503149E52572A0F8C6 7ECE6B8145C85E5F211F341AC1450EEF4D1102CA184DABD5CF00049F7BE76FA793893F2873A237 FEFE245F059AC85956B5A603DB8871BCF4DF3665364525E7B539A6A4F2C59473908121FEA5DA8F F5E4A4FBAE0C602130400E1D9D1185703F20895806C2DFE6E47408347CAEF151C730783FB6BA38 9EDEA18F865240ED604D0B6F5850CD18FEB63AD0A3ED46A933DE64C9571C7F15393AA81577A0BA 6A227ACA16DB43307E76C10FC630E6550079E7E5609FACF8DD84376AC186DE2E1CF84847C4E2D8 C58385EFCA099E81B6435D8DFA6775BFD76C527DA6CE32B6326944FB6970D2787190CB0572AB6C 531EA63DD1F6BD5F7732CC7BC7751DB30874EBD006978CBDE960BFBBD8C2D115C26E7CCBA2C802 131AAABC284699B18989BE8D548F30389BB0DED8FC122A1433EA61D074415882143D865E28A9D7 8E59E47EC5EF1E2C5151279BFF1D77ACAB907F7DE9514A71B21C129480FE708B9AEA442EB1DDC5 59574095F57BB3750DA4521BD298A19CBABAC650FEA7D9DDD40DFA7999D0CC79DCACD517E391E9 2EC65FE3A64CB5BDE1A203E53D73C994D53215EDA4EF8BD06658AA94EDE4DB65719A0903035679 B7E08BFA7C40E9AFC3ECC0A243C79D920B2F87C75430F2490362FAF9FF23E3880E7ADA9F3DB155 6E00470C2FBB131F539600D21238CACD785964F533C80A39605C9AAFA6438B11F72D9148455E9D 88A43178089337070A47297BE223B93CA175DAC0EA3CACA4A9BB07954449A1F9A8F5DC084602A6 2DB0D098D3EB9D967CEC1B247134B47DC120C03B66FD26FE2647C48433BB994310137C95B02FD9 54B450FF00B194F0C5A0A8623B1101B5F32589CE81BB1EE3045F4C78AD26A9C5868AFF70DF6179 F2A72599892518A45C54689AFDD92A5E21F47CFF3AA8636F82B33D9716DE11C3297C403B5E2708 D9AAA7DADDB484F6719DB1A07F42C0BF6532352BBB529478F0F08AA86E554A2C8ACB4D261C0358 CDC56FB9FB160F9CE9C7DDD0CDEAACD1FC38D9066AA1B50E26079452FA515EBB70F3F5EFE3DBE9 791161BC643D1BB3147C9A0B0563EA94F930201780DC3E97164C369C62D75F4BA3FCB116215771 0C7B87C4A42BAD8EE7AD49877F9AB41BBE69730A4FA1F83F4DF48F40AA6E8891D61F1E2F5B5AB7 6E85BCDB7DB8A8D7F3E1C5628A51246896D923DE53B1B297CC8E37E0C46A6B42F616CFCF17B74E DDA896D6075C4D60166F05F30DE0CF48A3BA092A0D2A694D01457C46089B7F573CA6A7499BDE06 098699CF1F28CF849D2716140669C98949A551A227BDDB5594F205BFB0F0379CCDC1B53472C335 7834C37292EF98DF1A5B42F2E8EC82381AEBFF1CD435499D35A59EB295CF563A574FEB6F8CFD09 D9C2E2138F486226EF089654BA218706E643BCA601DA71B7A2670A15B25523D7925D1E7BEC264B 9D5D47F30A9D36CEE25E5CBE2DB3D6E1566AE8067DA2718ACC991B618578F490DFB3B2F9F2E482 3CC80AB2B8BF562A6E5212A2A2F2604C0894D1DBE14FE9D7222E7F3AFD49D5B2344BB34CCB0007 0246A8A3A04DB4866BD9823E0C21C8C226BCBAEB92372AB547B8FCFAAF03AEDD70D2207840D6DD 0F833F8C19DB2CA2BA4F271712E2C617E84F34CC15078F9A8972E17B8CDDB1D059C53F7E34F975 1DD035E00F744D2EE8178B33B6E684E6D55186C9F2FE95F9964FB13CB7D83968F06BA14A62BB43 18A5830514BC532CE55995E1CD3C939ABAB0D211B1BFA806A353E325A73BF75601E817265F6B08 A43BCD7AE47648436A1B5285823F234601924C473B761B1C057D4C174BA653D5B0E7186B99577C 2F353E7AF1CC395EAE45B1595CA37FF9328AC2EFA8560952054F76A72D7CD91AA018B85EE553AA 532C2BCBCD412F349DFF5C37A1339AAD0F4957DCD5EC6833060E93914447483B2A2D9041621980 83838093C798878E5D558F7B51A9626F982115EEDC2039E3C583F264EAB8321AB228868F221E8F 4F9EFE1E760903FE51F98AB321D1347CFF719F4EC83B91E010961CA4F26B7BB7D4C769FD636A4A 1931EBB2668FD9FD1DADBDB6DC61AAD03C0077AAA035608BB2F6855593CDD133AC28523C100D99 C98A26C29C0A610AA270C03375AC0B9E7F7F265612B34C4DA3EE925B6BC8A98257986AD2AB4BAB B31D5E387984D102043BCD2F908573DF0D5BA1C1A59FBF2411A820DA0A6E69D1C19096580701B6 D8E814BFFC91F8068DE5D1A8C601010A53393AE554E003AE1592FA5FE0609961DCEF7D944F5857 64F66C20281424DC4BDED24291DEB386AE9C3DB43133E91401F528017AFAA530EB2736D3B6CE7B CB1E0C5A6DD5690AEF3465BA0836D2A68D6F3C5958843F4299B8B2728116952F62815C71B483F7 631338CE3FD626CC22C9256AC95D88B2F4659864B022A0BA75127BD9F4876E0251A2E707FA37E4 D5D5AEAA0EEDB18F5584B9FFDC9386C46D1D19B0419EDD812FB9FD83D531248CD1F6A4DB702135 9C13D1629EB05CEB121CDA5944020CAF186AF94EEE6EFF48023EDFE205E749942482DE061BC86F 58FB8289435ECE461AB84B09D342138561C2B4B2496022DD57C8253CE557FCEE1905C16A01F5B8 BA4E7F7D5006D434CF962ECE76E5C269A7243C826C0B7CCB5CB36088AA99BF3F3A7377A76779B6 9ECEA4A83BD4713D12BF424373B399EC0A99CF5D8AF7D5A86A390A80AEA33CBBB202E0A8BBB72B 1D685B2ED32EBA11840D0C9CE80F61BF2228924DC196B9C40F81D124044BE6DF12564AA1EBF652 41AF0DAEA563735BA4E8151F3C9820273E79DD4E10E5989BD0F291DA773C3DAC91FDBBFF6EDE1A 5D5FAC03DBABB5C2E97BFEECC08B2701C72ED14C9CA5040B9FC61A08800C5137DC617398405004 BC3FE46672BBE3342CEB1F9750CD7F4E057E098ACFA0A441C460886FD630EBF90A327DCC2E2635 9DF000FD24E56CC30E31BBAF1391B89504712D09C867D7E68A965E57F854507D7294C9671F38FA 9B768EAAD52137CEA03A35C82BCCFAE056DFC1214ED21EC9F5DD4555C642C2FF167EEA4EA07CF6 A97BB9042097B1AFBFB6FE69E09C2C419E6AC38372B92590ACD39A83C84EF9AA7DF861950F5354 046E90AF64F28B6D38CE89D602CEF86B1A47DE38E31AB242864D7BAC0EE07878CC2F30A23FFE05 B055E4EB475BE2035B6F3FE1573FFDE9A7960CE3180AD3FBDA2BA62215BD4C964DF7FA9B7D8A0F B32A8C36B1678E7297212BA6B5B72B1B0B9ED8C5F9390984240B3C77A137D4EE6ABFD66FD2BDFD 57CD46185487419C70C2754008A24C064D506D8FEE86DC8FA6B5AED30C3662766B8E4C7A0E205B EF87BFB1DDF81B236AD601F4C1B25DB98B211C1BD85BB8026F6EF5EB14901240787EB10779A7DF C70E02E2066E516BE60C726BA4E0CAE1C327A762BD30800C7F584E2796AB6A0E80AC5500498962 52B1AE178A2FD57E0A72758E794E455E1C78696634C09077DBE2233BB4FE9FD3C428506105F32A 68A9DE914C10D7D3562F0E70C12963E7FA5EAA2AC08A384995139D4EFF7AC6A1425929DA25DA7E 11E40FA431C268CC157D3A2E7420923D546B22C8CA59ACE87633D5D6FB804A1569BAE93C004668 A1EEE0DE42DD0A78FEA435A7D9C84A95952F78E626AABCCFF3752171730177C9AC44378EA69012 2F1364640C4F200D885A85737080FB67E7D1BE9614D4A5A2F538C137E92FFD914CF587F03084ED 745B868102E34FB9BC2380012264F1DE610B218B84448BCDAEA37C9627A6F8B94406D069BDE191 1E23A4AF49D64233A965F0253ED2071E61FD937A1B1B501A43021C580EDF1A1E92D27ACE0605D7 3A868177423EBB55F178963EA9A4FF3F9F11DC1F4F938E36B04DBEC953F585A9180DF530906CDD 046D5758F792BF3AEC670EFC402596BAF8F4A3052B9C586A3E17302922D66E6FFD813480D83D4F 7245224718D31E2006A72DBBB1CE84901F69F07C5EF3554CB22A979BEDDA37E0B2E635707937F4 526896CA654964ADFE8CEAEB0DC5AC4A039B7C4C641CE8C8D9908E9BE1BD78C77E272F9811895E 4F8DCF94CBC0B826AFE5C1692937737713CA4F7A5FB901FD7DB797B0DD9C6EA4F82FEE8E843C0D 799B552E44193298AFEE0BBBE7CA2F6759C891331B5C97AD2DFB0E2CC1BF99589B7E4619A715F8 AB5C88BDAA1032D90B4CC5A2B4CEE7470E56E86D4B58F74CBF8D519739BE55381B75B3C8FF1F39 45D5669B0C9F068551C7CF0F5C227F4401EB8FDC9105233154943A10C479AC9826D6366B03A775 2CA00488AA04CDAF8B1E0DF8CBACB678A26415414D1F15D0F46FDC5A379D5EFC53DB57CD66AC73 D274626739D9260F078EAA529693B112392FC5DC3F025DCCE34858856D61A86355F8A74427B073 3B6AC1C2A32B1D3FFD6402798AA093391253CC3D65595148994485CD6A74271FE71093552BD0E0 6E4BD8A55685FF784C530D186B923AEFE16250F3330789BF632F9A1AE789ECD4F8DD6055C3E7E5 40F0193CA768EE69C37B8E51C4CEC1D1A7B12ECF6F65DA9EADC0B3B77D22084CA3E48CF0BB2E48 37DA5D58F4F2795BFF4F62C2F520AE173A098E6F1E5ADCBD2BB3A1D26363F8F645B809A8AD40B7 EA90DE4A9A26BE11FA203A55B144161881665D6D1D74263AB371C31FC70F9D8AFD287C0B87BD65 DE2B3DA8E13669ABF4501ACE58D9CA150F30B23388AE9BFD053976B223E9B37D226200AF4D7697 840FFA9EBC087A72EBB45D3D1FB5EA3E3E882BEB4F9B702DCF69DA879D72BEF2377FAB6094314A 0673364D4165950458321F9190989C00595C4AB4AE76C246D26B088F29965200103D17C6104BB6 E95802B4068C0D24F610532AAA2267D6A36183A5CDAB42140ECE4E0A8EDAFAB4BDF8EC6D706CE0 562235124F1564DF380549FD931F3FF4616F24E9FEDFB3C757570E60D56D1F3568E575A35A9E5A F59CA70D9D0CF142A3F50A396807EBCD83E58AF06A4EA165730CDDA6E363B2B1F0B060645782F3 70E717D38A3BF1552AB327AE0F9A155E15925A64D0AE25D00C5FF977BF824955926D8CD2072C8E 41591597E6907300DEB999F06449CF393A8C0A04EC6A9430BDA18F680E6B9CE7A438320224C47C FF64783FFF47F55CFD836B93163BE2C4D9E16C0D38E0249FB1AF2E6D951C89302C7163031AB84A F4A2ABD01EF9AE342F5284390AE12EEB1FFFD93B281162F01AC4C4FE90A4E5A53D27802A647496 94138C6D66079312FC04FCA387A5939556C12130FB04FB892EEC36C7470EEEC2739378F96B6392 2668A33A7F868518F380DC0E91CE2C90484DA50B6954FD6AE5B7A10578932220D075042D762CEE 4AEEE034A4637CDBF7298069DD2FE8D74265ABD5E4BCEAB81425516A38442053CD3AF67E80A50A E9213D7B4AC2C62E22A73DF69F8BD5E0C6AC8C688DA644EF6E20210919ADD9D69FDB4D5DA26B06 10E8DB9748BA445FF931E3146E5937EBADE4C7FC61303004AC549C1900F5CF8E1AB0D63F13CD7C 5EB22E21E9FFC31AEDDCEAEB76CB869253111EF1CFB6D8162DA3E59D77F44000B96386C046861D B1FA14BCB2C07B5B373312468AD8D73BB483429A22A27BBB62FD087A0F8FBBE23CE21F3F49EDE5 F0A329993AD337C393F1332BD534750579A3E72D194B04EBC430594D4E181AF8FA60618E1502F9 3172E26B55E5AAE989BBCC48374E8C6906A34BFCE114C2B2B4ACEF9BD7F8CD81A44F855F15CA88 BE8A56AD1BF77EFAA5BC81C97B8F29F878F9091D651D5903E3F60D25EA1D97B6025FDBE181246F 05262E430FD57ADE69286353EDCB572069E25BCA99F3FE8744ED8297D933BD7B5F5687BC5DF1FB 584B8207EEDB38FC95BC6036342B012CDBDCE4F565B6D6DAE2EDA1B4F40B054DE50043D7AC9C3A C0DD32F1AC2D38D0230231C17D2EA583F5740A47CCFD0FAB920FE1A49914C663D8CCAA9B1C0672 055483B762DFF0493E0D46643BA4458DAF364512A3C72ED1AF38DD00FFE18592E96DF318B7C96A 2FE3543688CF50562159576FC9D051B6BFCD32A80FDD537F2A88DD9061CCBF832819F09570308A 10065010DB72AE096D02A61092961094C1E383712FBBB58FB322ABCD0CFE77B98D9C584AD5C9DF 53EDB81949D310679E2D28A2D8B347434BF71445EB9F9F1A2C61B6BC16EEC4C1522AE46C5E9984 1206FFEBC27388D4952FE629644F6AB7733C457CF939C324DF0C4FFBC5E7BECF655B1F09670D17 421CFE6C9A0FF4C4D7342E8CA177A602E7FB93DCD456151A8208C332541869298A0EA29A787931 906B0EF099CA32F975496AB342130F34C92CC5A863029E030B66D3626C88F4887CF5A8A92AA750 E5660AD03EA55D69EDF466D4AEE45067D5496FF91F26BCDA766476CFDE111F227FC7ACF6FBE1F3 22038A92031650E9B813AF16A37B4095F039DF57791D3F8242C2C409B37D045001C74BB740E2BA 0D29CE658C65510AFB0D899C651DFC01752F9425D5B152436B04D5DF36DF03F11E141FE994BB0C B0B7E37D5ED5981FF91DC25335A480ACDB25C48C20EE40F66F5B482A626A4D0DD2689D862F302C E5421DED7429235723092734BC73D00F56419927120414CF8659CD1F964128BB6FC105A7E090F1 A2093CDB77BD1C04C723E0F1C5F60BE70AAE29BF0713F86C58DE426819D22390DC1D985F2FF86C 08EF83F2E9AFB3A62EF4958945FE270950418D0B26206545CCD081E4DD18C9661BC8CBB4C2AD15 1F71D6BDFD16F8FC0E239DA5D19E8C2DC980C367B7EA589A5278901D913600A2AE6728589CA00C 44957816D98775D86D9F11C086A95601730EC4DAB3306ACAA840599A785E4AEC4C0B45D14800C8 0EA12E04F69836CA05D79543A7D7043DDE89BD573A8A937E27DDB89267C30731E20402901F9042 675860C2C1EEA408F35561E73301F5DD52591A59FFC7684A1FB9228A3CCD6D321FBAFD05718411 DCDC2ABB7A588C8FB14D916993B5FBC01409652E5818F2211C86FC21FE154B464206B642B12564 A6F4A8F4FD5ABB6F48E959FD1BDB8C413B2D6E12EE5286A805117A97E3829DC83F431AAE03A6A9 3C97DD6640E4EAE56AFB44C1892D3E531FBBC7C1ECEE90583A72F6CFD618CC01E0DE8733D38568 2600AF19FA2E08FF0C29EAFBE912C289E57F0C315AE24445F1A5AB2F492FA7A38A4886FC0035A2 7E793BEA877210F272D16771C90B5BD86267F889D3A25546DA863A100005511CED9C95A1E2AACE E762E6501DF03F146719D3581365260811105609E56239B54D7AD1F0AAB6C7C168C7DCCF3CB30D 06080F32E815CFE2784FAAC58AEAE4F22D72CFCA289BE03F9B2DFD27FB1E2D27572A7400303398 47AD06137695C113E8C2DFC0BAB9A3ACD2A856D9E7927FEAAE009B6F0CB84F76A488CFD5205AF1 DC4313B6E4179B1370695509FEE3E64A9AC425A043E434ADED0E5985B293669D09968D0AA231E1 B2F617CDE5DF2A681B2054EC1FE239E95EE1A11823F73713F9CD4AF03E13A78C2442B6AF16360B 01E8CE7DAD91717567BEAC799962F00A3509E24E4C4882124006B252F9A4C88071629A9C2B7104 6483958A3D0FEC7F0A48FFD5E98F3C49B0FF8BFDF5824DA3605980B4D72A8902ABB0E0F52636A1 06605CB90404E57B49596690E4B0591751D5630148B140AD0D2EA236764B131CE42AC418D3EA2E 2DFD09FF17D979E54C6194DEE059501718A14F86ADE2E231842ABAB8A6634C0C31C3C125048D6A 0E96A2BD785D51591B79E2022D49F2EC9BD874FC2FD52A7DCF644F124215C7B9D3DBE9919BF9D2 138F0C75AC93F48C7F125973BBC8EEEE34502A62986FB8CAAA8242E499A85E43387264D3982838 791590583BC2D74F1D1E3A4F4723457077D8E538BEB749D35F44F37B86A26C90951CD56A0E5086 74E42A1EC33FA88A47C248B2D9783D4D788082B89368D73F2EA3131A0C78DF9CB707A0F65F3AC9 3CC6E81866BBA0D87902E04CB3DDE252CF76344C2A2EE70C9260BA8C4DEA508D5B267A9E852C75 79C062478C9F224D6CD544047E6643753F6B9D387EFF69E37E8EB61E6C50BF6CC93845070FAA36 72EFFDF8F0EFC7EEE9D42594D1786BC7F3280FCADE5027ABFDB83E6E8A72C457BD6B2739D263F3 27C5E0BD130514D98A5FC840558E85017D289816B13C0BA1FCC6ACEB5DDCA6B7F4EE30D1D7E617 3D9B14A16F330E9D32BE3CE1B92F18D2878A2C3CCD52B2103B082454C60724EC75B08D187E01D9 EE3286D69B9EAD4D8D35AA8BAE3639B7E36556E1BC86143C1BABD3D05B4CFBD918C4171B3CDA77 A1C49679016AB674530416738945967896E405A3A7A451F43B14E7BB3BED0CE014188779610F21 E869A79245AEEDF2D01CFBEA80B9295AF35A7085E4019F499820420BC15E5D3D8450AC979E4499 A894699D154648A74C6443EA53C851E67F80721930FE61C346207F2715F3E20418A9F58E4C12CE 9ADFE14DE865DB21085783B011BF1CCB2C3335A55B61DF50486A9465BA7BA85373E10F7AC3202C 15806C98F7A8215A89DA4424D4B16A5E352AFFA05A58E5A6B0ACED834D87E7EACDEDD65CBF741C 9EBEFDB86AC1975BB61AE096239597DD08156D26E218A61C1B69C71953447BB7CA6C055F2637E0 B2E320C1EDD20B7B4E43DEB395DA221CC17F237B81098232567F591977CBAC8678870E1A1850D5 C019E56069F11037B2C983E61BDB9778C50BBC9FFC6CC1CACAEB4FD3B4CC131BEEDB3C486D68E0 69303A06E1653DF35D6421F93F05DFE32BB953E0EF723CAFBED7DD829B2D469CDC9F6FC1FB6F89 4BBD9785FB48F1A89DC2E1208192BB44E7F3DE2D632830894A57B950C7112D76AE978454E0D666 3F97E8FC2225293977FB65D46A5A64B2BD75DD681D4B5AA39202CE5E6846B872482765F1086FE4 6200918A34A9C0375CA555FF25C70F075530965858942F0BEBC9CCDFA2515D198479BCE058BC5A 98E014F017D5239CFA21C5801B13619642DB5DD9A2A16FAF1C7348135BC59E31450FE5824201C3 99E397C49DFAF1E8ED16054FE187A136E5A838976A48A1AD1AFF50776E953287C5C026CF2070AB 8DF13E926E668353197C0DAAFB3BCD64D391E8DA10AA80C798A914D219D0AC05A00D4FED72885F 408293D9E9D952E47CB8CA81F3797350D50EC0B74E526825DABD3D7DBDFBAF7AF4781D11C82D54 05AA18F1BD75F7FC6C2B135F34EB3B29599B7600912F23680F5190B6D9B06D619B26F1D086D122 51305AABC2BF2282FAEE69718201523BC2877A640EF5FE8A68E1358BC8C0A185C304D9986A6E31 FFFCCB726D2BA189FBCA9C699994DC51F65653BBFBE170C39203C4BCEA90E07FC0F45D0E788D45 09948A4AEF90C62CB4D5126AA30D655A817288039460D3E8A0450B6F3860727224957DEACEBA94 86994D34743A32EBDD7D0E20A3E318F5288B5AE38428D3071D5DA2D3D612F23617AC4CD5EE84BC 8BCF391C4AA0B721FA25AFE0705091FDC0ED96094B19CE0C8716F70EEC15579C95E4754C394895 EBD7D83FA8B9DD8B7134E6989D3B51C47600F053EBC134795BAB7C2B7121698284E9313C442E65 C1821476436FED31A80A8220F02B781A3D19BE6E483699F7E809B1AAA0FA13DABDE873C7DA491C 02499F9275DE49A900DC3D624FD28F4F1F88654CECDE505D7E3E449DABB1417FC03F3E0EF42F71 0F952C7DA729B45BDAC3F766F512984FF02A178D289954D7FEEFDFD6571A8A36EC673504F0D737 FD41CD8384B06842BC686EC6B4F3B47E4BA7532649FD57373EBA8FFAC961981C381F2B1C731709 A9F210E7928F13185B3D0195965330D0F4DD1CD09E008DA25C067735261E4CC2C66D3FB1822E44 7C2E3C15E815DEB88D2DE9390B179D4EDFEA55E78AB2B0CF12FEB75967D857A604075FD20ADDF2 8BCF12C46347463A7BCFF3ED8ADF441ECB3F17F799B3ACDE848CCA5B920A2087EAED1302C2F000 CB9396EB83598F891ACD25763F567BA9E5F3C4916C62D8DC5FB3EE188F40EABA66F51AD59F7256 DC4977C9408808781A5B790AA26FE9E3EB1118D535A76E6445DC5EC4554A4C1A06FD082C8C1D4D 29B3CD4F77CFA9356E7F055EA5062151B272CB8A036DD5F891E4DE82FBC877D9816F4AC9EA007E D58201808D17C5B7C0780161607EE88B6640780D23870D34892956B561B0C1910F3B1CC8261FC4 17C49A520D7AEB3239B7DB86BC800FD1014AAAAE84DA78F2FABDA841E82F102913C89687FB94D4 3112FFCFAD37D49D2532F9DC3506F54CEBF3D3D5AB4F32D96A801CDCEDC7D9002019EC48DFEFFD 62F7879D0C9FB2CEF3BFF219A397877377AA2B970ACAB8361CDDBC1F38C5F7D9397E2272751DA2 CD98CC97479CEC135A2496048FD8050FFA680BAE058CA5264E738D1699826FB12A96A6D328CC03 19F501CF5AAC51A62E6F587FB2DD98881D69FED686B64D92FFC5B1AC2C957EE5F86CC9E5BFAE3E 73E6507C5809A576A59268341EB5E3F863A69F0C805A98696A5D764E714C478B544F0095BCB352 7D00C34A67EFE6D156EBA4AF22AD493F7EE841A8489818047663C145DC04BEE4F472544C9A2018 2147E184BFC894362E366A757B586FCF92248DDF8B29BEE94B4444400B1764EAEF6CC8110F1371 D34CC38A939748CBE0226C110DB1C67EC241F07953B61C683642706930266E07309655962648F2 5E981598930F3EE4EC0F75614F777742D6CC0AEE86D7D5111D11D5077297B5358425E660A296D8 3832D37985D710E0F9EDA67875EDA4B75457A9573E3DFFE441029ABE0494EBCDC90C789186F0B2 97F90ACA2D3BE84610AF07E347FB7694FA4E216A2386CBD1EBE70967A82014E8503E2E97AAC71D 60DAE00B786A95B8428F7726BA74BB3752F56894D4813D0434D0026F1703DCB3631D69082B5D74 46AF8B5660688DD97DDB83540E2A69D4F994FD94413CA5AB52325439224E0906128187180E42E9 7324CC2AEB60E5B327CA998AFA49854A59841C5C50E4159242BEC79D2E5BDF9373CCC510B3FC38 204BB02BF88DF702FE5F2CD11123C390C6EEA79F7F1C4A294A9137926957D70C47D7EED1047079 ECCD09C2BDB154A95A4F5BFC6CB708409E3E1A0DDB421F3E26BDBC0126212425D68F3218DA415C 0B03792A561B6B6E02D84C83534866A8B4397D485FA947E66839BA118BE6475A8EF384E597B99A C24B83ABC9890BDBC7946F07C43535A9C0C53C6BBEBD25E85D7DBF87394FDAE324BD1CB4288B89 31D3BF747EB89B356B3A11F07585EFA4E4349A40B409AE651D68E611122D21D9DE3425EA845568 43A0E9D638B1C24E55992D6EB5D7A36A8035B9AAF0D8D71FAB9A3C20BFE5FC381E6E353C8529AD 44920C2B8A1D4DCC09FA6DDAC7C540D24FB55D8EB38C883431FF49DC1DA22445A6CB438E6DED85 699290D3EEF81BCBA53D977C0B32B2E478CEEB7126FA359D4EA3C8EF1D0F6C3AF075B2E94FCD5A ACD0531FF179735D94672A55C1D1FFC3842BB13CCC3E4C81B706A6830A1E502E954BA2F6D57CB7 777CAE7EBE73ED1FEFB88F4E27DE15A052185CF9DEEEE665F38703AA7AF90B0971628BDF8BB1FB 21A30C3CAF7495425150F6E53A58F11BB6CDF949066CAC1352B7460D33FDB76287A7C55C9123AE 5A2773E720509A9F3D391553BED505C28E8A68EAB0C4231BA858934FDD38C725D340F21FE656D0 002F6571A99FCD9AF5150DA9B55D796F9F30F4D10A7E82DF3B55462BE4EEE3F22D484275D60F04 D3B1C83AAC019C0C46B68A1A3357A65A22A36CF319F53637DA1AEC7C0AA003E75491C0CA77BB7A DD734E0BB7AA3A30ED0E228080FF71B952DD328D938638738697F06831826400DB73D6E2B260FF 00EB6130B3868D3C204EFB65A2F00CF5BB2CE4B464E5EED55E7CE33A1702D272069C2B291212AE 0F7A0D3BB7B82DC5FF2565E40B0963FFB9ABDE6DFE0A5EE3BBA96A3CD74D4E9035849C7ED677F6 84319FBEBA5A5B1B2B9230994B2EB643B9F395096B46A7BDE84230662B72077FC96409F1B237BE CF8CD53F27F690B101799B9FEC896A52609FB368DDEDF466AB17CED2E756D2A9026D4D26E303A2 CA619F746C281A9A6AEA0E08CD0D1A7AD1F9CF7C6EC91A35AFCD6A1F59815A702558305398B0A1 4A5AD71B085B9B10325C732D229A9C98D8AB35E99B31CCC4DB44852E5BA6DCBE8F759F54B3C10C BC761C1E576A38A788BF5CF46D68F8427E2ADB16E23A8744039F78F637BEC3D8F6D239185E9381 82475AC85FB8112CA4806D13455EE4A903CE5C7C7D5A8BF0949D70740ED6EFD38866D4645028C0 5F16836C9EE77E775626BD67AD61EF9F6D7B72680564715641E460E09A741F30777FF1CAFC8B43 664F96D15E4F218B04D462C8D8AA91B55765927B41CCF8B79F89D4C95FE5A6B55E943516C8C674 0F43D3681FF8962A0ABC7BAC47B06DA27FE8B1FBA3039595F52CA33845C1A7966308C006D6F828 108603B42229012F5366B77C654AA8CF6980FAA68A1796A1C9DD3C8C01D144CE40C669634B2FF2 946907DF407A2C5F577D3785623CAEA75F5D18E2B3B91D595CE8BAC2EC742ED54F17D4F912E115 4A6866A5E3DD49EE48B407FAF34441502C6AAEE95DC123EA266C27F6924A44263AD1238FBC0C88 22114FFD6FC5A178F22D993639DFDE16B1652881F7A015AC88722193BFDF10DC1C372916234F11 591016A8B5C2055934EF10C079DC83BBCF396DD19C7E9E112F94A871ACCE631683A8C886E4E10F 218A7AD93B0F4F83B8418C0984EC0EFC3ACE47E7583F801D1B514FE3FCB6D4ABE5B6C3783F3026 502212E265243963F6F57656ED205CEC6A8881F37B1FCFD2BBFC09D1608CA43EEE74229369A215 1A916D40B2650E823BFAFFB9338BB43369CD38F0A351E320DB42BD62A6B1A53E0AF4E0BA92DA1B D5DCE62194D041500173E02835DC3C5A43467258A4340C1B6DB48B612D54110D70FBC038E947F1 80ECCB983D2204567BC2E256C6AE46CE9C13E6B576E2C9FA5A00840A61D078C80C1C7405A6CB66 BC23CBAF1C5CDDE62CD32A84D587BB2B3828B088C56831E6C073AA50AB4CF27FC74547554C491C DAC152BF20AE1E14E31A7EB4C45A11DFBA32CC6B4D47488B950A43B12AB7DF7BFF07005FB64503 D00EBB085706EF3AA04110C671306F763273E16BC75323AEE529DF5EED8CD07BED8A635376AA88 602674B619B086C8B46339FCC077399CDE9F054D50AB2EDC80BC73DE4332CA8F8FF3D4A2B2D461 3BD0B29C7DF001FD3B7CBB4666DA2175252E7E55910DFE6706CF744CB7C24CCE4CFD4F35D0E0DB FA1C336240743562FD040687693DC43397B012390833FF786416BE97C2B8E16897C3EF5765C988 7CA6DD1A3A5B2CD07507AD852A7D694F2FB9E1B8EF8D0581EE6C80094FFD048A1623048C4D4DAC AEC1303516A43F08736C003246885184E73D8C0312242C33F33C5FDD86B4B952F86B8008FAB05B 38C697BAD2F87115E88C90B3F70E53BF6CF95E50A39FB028681746DA3431DA246E7423E8F400E5 659141F09EA274219F1D99EEDC203B1D8B9696F66EE89643B6412ED2C3F41CB9385C30EA9332A4 5CB359E2739612D7FCECA55C2BFDC4230E5CF89E7021F4220C22B6913F69ACC5F65D7374214EB5 1EB691C53D0B1F590F458A4D4A385D7826659C77EA21504A7EFB22758ECA0497D059437D70CD94 05DE2EA6BC506686D07434C6024273B49C009169E31F4B719429CBABC11473EB70F07DC2372D11 BB2C146DFA378825C0F2857BBE54EFFFB74FEACEAF15ED6DA597FFDE9377697C0E472B7500B9C1 6097BC50F38651D40CE96C50C9A6236860A8BF8F469F83162324B5296C50D430BD211D8BD0E4EF 0101D6F67DA8C348861E85B35A2A4992D6A4930AD1D26C6BC5CBB999F83C727D5CE551B98C9043 D10A648D8FCD959C9D1F83812CDA60FFA8F8C3F88FE8536CC3FABAF59C5C174580B98D38971623 6284CB20F900D8B793D37EF566A87963445862BA4EFA880102C87F608F0CE734212B0324FB2D2A 083AFC582CA20B744DC01BE3862057D746811E95687D06388705421C1B8DB69218A2A706D3CBA7 8A449B344AF0F64DEBB4FEEAAD2C873A42B2A934F93C0BEF487B33DB2570723194651C204F1201 56E09CEA13151E7E49703A3124DF500E780CBC62DF36502D2E6F5C57CFD1210850A2D35AA40A55 603D3E56591E33E7722A282D6A8E1674495E12E348954B7CD0F4A4E4DAC080824795188D8A478B 243EC611CE5901A9BBEB76EB041AD162619EDF1D3D83ED07F1152401D2D5A03E6C784D6514EB89 6ABA990FFAE09BF057B912A27DD2092CBF5157C904DA4B566114A37A7D9AD0C0D717EFB6C4AECF EDA8D6971897E7D0FB1E685AE00CFA46F11B4820B31EE99098EAA2505E531BD1B07F41D550FEE1 16F49073A12E482E9194C3C5D914AA944EB0A857AE2B5647A2C9519AABEE5ED6F356852C5F14DD 0852271FDDAA5F229AA7151D9ECFBC4861D5E89AB66747272FB6B8D49ED0709EEE054CD07BB917 606BB005B6B2FA4B114536EB0708C08B5D7CCF46EC19038D93EC063DC3DBF39B25EB301B4CAED5 05AC18AE74A0AE4494AE38736B19FC4E6B10227CB30940BF72A4704066D1D02626EF650C112A7F 8B8EF4074748BC08CB9DF80A0393793BED309D6DF2DE1F3D8765D992044122AB317749A3F96D1C E8CC520555B4C2352A4FC4D92947B60F13B9D5B7A5B47AEF0363A31CD9D35DC0F34A051E369400 D2AB68DA7BE1F1A374084B5522A6BF862579AC6F9F45D1F29E7CED5041DF262CEC4D529CCDF8A8 3A18572D65E59582F8D75236897347892D9FD0DEA75BABD0C31AF5D690394B228E835EBC6A5F05 AF40BBC6B35F8EB3C9F76AE440CB1A2E88A4F27510F67CBFC15DC29D82BF07796F6D8F793C34B5 D308D8764E9EED3EDF5D328FB1955CDD0719BEC23077A5080A88E9C95C705AFCF13C85DC533B77 6A15AE7DBC452BD2A75451CD7FE36C2B24B9044DFD9784D6B55D79BD164EDBDF735E6C486C9C9F C5A3462212B66C2E8B3C1DC01357B02DFCB8AC883E7EC27F519001E5E8397D81BE41EBA7BEB413 5A36C4E9DDD08D27C9A5B9AEF67090AC69F122DA5DF10A086ED8EA0C0A8D8060ABC76E7878AFD4 7444B134EDA8D78E2271374C7510658B16A9C5C4833581BB7EF970F9A6A4F09B238EFE5A8B433E A5162C9851F74F75EEBB1A4D57B0EA29FABFAF4D2D7D8AA8BC4132BCFC9F0EC7E841288BD234E0 6F910BCB4456C7ADE4182C459D3D366E2CF72BC6A633E830DFD85900C3696A11D2C6B79A822880 F3560DF7B51A37FC186C48BB55F1B91DFC8622D193C48438CADD95022B3269A389C2E60C9C2800 82C096FDDA6DA3FE1BF8369F4FBB5AF739485B83BA055AEC9DB88C23DB6C5F751966D482434721 91E85857517308281CB32C386755A1159B1ADD7181405CA3D686ACF18566BBE1860CC3D4DD979A D6125C6A796D9C5B9B19D03E01DC7C0502F8F7E330A87F8AB8DCA128F914DBE36434DCA8B164DE 558C9F3A7B39C07135CDBAF5C6A6AA5B21972EE56521C7C21456BF9D462BD8EC6F838A006ED0A2 84EB344C819791B014BCE095A6558B5294506EEFE6D51C935165FA4D0344498941A5E42116BD4E C9B9F72F4AA2FF794981FA5C9F5FDE59F62427BF17BB7F0B2AE94786CA197383A6965214895558 6540A4DC1071767E23310C3BD9877835098912B16EC2AC50EADF2035EB7A4BA2F48F028414ECBE 0352BD409792DC1B9780A10BEF8357130C201917FF4956437DCD2E35CD0B5629AA37EF7DBD6E9D 057CBE21442DB22F3B9CE9064289CC8A3882A6934C1C7C3542739E1D56848CDD2D03701578FEA9 AE283D393AAFB58D5A93A16B5FEF33772AA47EBCD4A33B06A2CEC3B45C553B5A63B1A33EC16FEA A152B1D248C207924A12FD27D871175591D93E23EF5108534FC75C455311EE8E3F2AB408A2FAAD 738DAB33BF98A3396CC6D5C3816B65E58D8EDC18C72CDB15540F6D62926F496FF4107A52154233 FD73427D3C00C4455A67705300681ACD21931C665E9462BCC800D25A31A6BE61519FA3487E6721 6BB21B579396CEB620B65FEE8FDC9CAB02CC5D5C8CFF9A284274A26F7C5BCEEC6834176F63A1A2 7A674025A61FDA661584C04D5C80F4DAF73A5362F67FB8064D5079406EC0D115A79F292C893EC6 0BC24FF533153275E178AEEE1D0C2C84D28D23DF028FD364FB2F9C13141098CAFF49C322A9D8AE D0E5F195FDB307B0D27D89EA917346AA73BCC436120E711FD36092AD7CBBFEFEA3C6F371D0D29E AA047229A12836CC4F3E1FE539338D4FA9E15E2CA242B768FB35A7E76756DC1EF247E49FD40438 19F917F93DA4D40156E3AB93E5580B56BEBBC1899C2E3BB68CDC5B70642788FA475E1F0C71A532 739F4EB3C85FFDAE230FE92143B8FF8DFC928F9F72B97701C2A5844BEA5D263FF3DFB11AF92B65 E5846A68EC81F9EF7DDEE362121AAC5DF1B0C29C6C32247ECB52A9725F65BDCCFFD0EE535C8C77 A02E44E274988827C05FF6C78112BA5AE29DD7AF086ACDEF0372B198E0303A257386315392DEC5 7C0BBF78A04AA1FF28F927FF6B0AC8A76A22B56CA963B779E2081CF3925391C9027AB0C5533EAE 1B22843F0AC72C2964456B56D8BEED6A3C76D6A675488C43471401ED4502351451C1CA0A46E380 D41E370D2BC703ED34B8682FAD0E9EA71E4A5CEF5890795E2B5B09FECC763FBB40B6B2E8D07383 CDD0B084612AD2266A4083DCC3A159426D3420B81B1041C5EE4120C925C1A952EE6DFD759908E8 E1CC882C12DEC431C4F66EC3B5F3CCAC728208F1F841E477A276ACA2F42AB5399F762B9C70E728 39D284531908AC8EE939BD049BBBA6BAF1C536E40DDA2412FD9A6EECAC2600C49E10092E73B91B 670AE675217BA39A808ABB34E535F5CF9A202417CA625121DFD6F4434155BA437EA16D0B6B05CC BB3B161785B3856136A5288C4D14F406361CEB32410BBC3252ED6497690D49A3A89C40A16F66AC 8F9D80411BCE174F5D57BC07968164BCA4AFF626B6F675BE9F438B461D2A35EE1C1F559096BB04 2E174AACC03CE5C68667F8A59D2B2B7DEA85040EDF8F3175A14BA3596064EDC67058EAE7F60BEE 1759694129264973E259053A70FDFC27E708A8A1D40B451061101C6DEA814F7C9318067E561132 B57DCB9C67F7DAB6C5FAFB9DF7B6B53D45B8D43F66469DE6831A40A5DA32A33D5FDF9A3F266A34 6E4A2E9D52F68599DB0138C3B08436C0DBA0A553F6133672860345B77353BF9EFA3FCC80E49D8D F84F85F1A99F23BF470A9314DA381370BEC348A37EE4517D3372D33E528F137A787CA9956E9BBC C8446E71CFBDC6D92B241AEA8A62B77F40A630F5E72F623C18C9B499DCF511FF19C40E53768925 8C9C933CACD974680F6E443BBF3CF00356A498C63A56F68843FE5BEF635A4A671874A33133D525 E632A10F62A36120E5BB9C2216FE80DDAE94CB7540669FD0BC404D361BFD34EA879E50A44D4071 949AFC3CB4A4E4181CC30DF9DF63A6A30B38EAFDF30158A1CB45F2E433FA4DC62763B6CEB411E2 442124F95DF503C4FBAEEBAE7681532B9E5936716F6D585F51B9871321D5B7FA5BF4704B0A536E 78D00372CADBFA191E5E3CE0AEEACE1D6586E9D11A0FE37C9824977FF1E6F95019930510137ADC C4A4F4C4ABDF76CBD32FB977534DB8F49EF673AC29C1A559A1EEC69F0EE5A42A24D20327CFCD0A BC278473031C3F2CBB34BA6E424D990AEC6C756293821C5D439D4C8F54319C4BEF22EE740DE2E9 3BDF51B15FAC6E469A01C1B5C5690D16F9754A8A3094E751FCE11000F991C566C7C1B8CBE772EC 80B2A751F829A4058A28110013AF4A3DF7DD7124DFF0F728A25EF78F78EF33A97373DE68D38DCF D1E29CBF549011A71ED451B1E7EDA255A14975FF44F1CB448B71B09E82E8DD5EF75716A6E32620 658D229108B8209287C2CAD6346F0E8BBF1EB99BFE8952C4080AFCB21F58DCDE2E73B02428D2DF 7B29C43DC1DF324A73F480685198F8006C996958AFFF6A55B459DB50FF2A33EF43E31923518FEC 28598D092D8205300026E04907332830823CDE60D062E0BA04CE7C801775012B4835AEA56FBA80 21097BA760632CF097A0D4B94B5BDCBC2E61EFAECC791FD7202B00E678D6B76F891B918F63D494 72BC7C5EEF4BAA30ECC71B5DF6315A71095F9E769DD0887C4314AEA236A8EADD9DB780411C0733 7E337744BDA802DE4906C3F98E644C638E4C86D5F2A7B2C17DACB10DEFBEDF030A580AC847C0AA 56D4D4B30B513BBDC1105978412EC2C36DA5E4F1EACDAE3426DD48898DF1DF0B0BB91C3343B487 14EDAC8BAA025AFD729DEB9FC96432DDC0D782D226726368B516E8F266855D7D02472D605AB245 084B55FA61A0CAD04FCFA9623DDCBE109B2AFBB69955809E2989B5453793032D1EF7D7D8BD4E10 1456DE181A8D7DA06EFE2644F184928270400D29EA969154136D1E810386835E2A3161A3074BDA 1DDA9B028910927B84B44C52DA2E3F0CC9033A1ED31743FF1D04D281DF1D62735083E0AABED00D C0090B1453FA60E5D16AFB16A02DC028A418F357951710B45948D06CE7BDD0BECBF3BC2B9CE44B 6E47DE415A655F6D78DFC36995DF01D28BB52F750FE557FD2A82E36C7B6D9CEE9DE4326D69E261 74FCF2D3F78C7F68EED0374D80929FBB08419C9D2D7F55D1AF8C3639DCADA1C7DFEFB7CC17D807 3614A1084659277FF822BA6DABC3371D600A14120DADCE7A1F29257ADEA32DE6186D1E2FB54ED4 B9BEC1F268B90656B224757015C35355841698967587305949A7158490FCE4F1BCCC2A83DA26D0 F1D7A9912F8462722A58F5D0A7A4DB48F527B1AC5763E6B45A41830E1ADCB09E0F336CB97CF239 9513DFE02BA8334B6A7EC74C0F3B0BCC61382B69D062304DF98B09F1E13291C97274CA134CFF86 CC2A823BB8A1BEA31B8A25F843B15273D0F1BEB8C18B3A2E2027334A27B5EFC4CB0068C79E5CFB AEE391D8BE2C4CA0F8A630710AB09C18C0DFEDE175ECAF12063631E9B25C6C9FBC3D49873002DE 6262BCEE73E4716DC30D610EE5402597F514903E5EEDD8A75E5A6FA117A21144AB5B338C1D4B35 9210169EA0726B14D99E48834DB5D15691FD9095FBE699C46C7E6EF3790F6005C05561E053800A B8E261C17CDF355646A1BF29414D666FAA5C1EC43903DD04678CD1B5097513C0C69EDCFA5D71F1 D3E540EDD11D4B72ECA6C590A57A41EF5CDBB09DEB1FDD6C823E10EAB9E6B9EF02F4045696D615 AF4E01796C2856F376F42940CFE098D303C741D0257EC3CBD7FF2D33ABAFE8DCEBFAE575ADDE66 CAE813A0451E5825AD0234D045630711BBC3853D130544E0B0E787218107450078D6F380303DA4 DE2A39A9A689AC4337D255477A7D0ECFB746E129F779D1F45F86F7F0E141923AD062E6FFC4134B 6B15B2811DDE5902AD397044466318B4356DACB9C6DF0CA786D3D81EAB52975D5C6E34D32B28CB 608D91A4833D5D35A777AB115290A4BFC8EBD24846736B0997FF9D5DC471AC673984AC8E8BA510 95442EF37C5791C650C3A50A2907E0447A6513359D001FBF3EEB4720167AE69D2A6E2F8D068DCA BDCF141A61A956AF4BE6DF3EA929843344F2E38951B9EE4D38D2E51A195842E61436C77E7D953C AB3FB8144AFDC371B0DDE968AB88493C15585570F7DE881A1724C0CB6E8A3433E6E85320ADC362 734A1C81C1EF9CEF1B863A803F96B5F1F61A05D61B9992E99BE5A52A58 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr03 %!PS-AdobeFont-1.1: LucidaSansUnicode03 0.9 %%CreationDate: 1994 Jun 04 09:58:17 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 03) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode03 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 148 /0394 put dup 154 /039a put dup 166 /03a6 put dup 173 /03ad put dup 177 /03b1 put dup 178 /03b2 put dup 180 /03b4 put dup 181 /03b5 put dup 183 /03b7 put dup 186 /03ba put dup 187 /03bb put dup 188 /03bc put dup 192 /03c0 put dup 193 /03c1 put dup 195 /03c3 put dup 196 /03c4 put dup 199 /03c7 put dup 204 /03cc put readonly def /FontBBox{-615 -440 726 1024}readonly def %/UniqueID 5054503 def currentdict end currentfile eexec E98AC76D0B9811AF896A7D2786CFE5F8CE68EC0023DC2681A7AF04C897A42BE5FCFE91943239A1 3AEB5296C6852464267094E08A45F9BE1C443CDAE11667C6CF7AB42711A6CCF9077E8A2D8CBC30 9D38A0BE6B8A865AA6D108DC56579ABCEA85FD25326DB34A8A3B77A5424AE4100C2EB6804EA369 AE0896E47334E66BEF4DCFA3CE9DCF8BA26773A39C77A33652D76918EA4BC304D746DEA74382B2 CD2A6283142BD4605E129465DA84867CDB60E18F858C99578A3DD3BACCE03A8A6990C27D045C3F D9C8550A2552A64F9F431169CC4AC1B9B275DD9E6D5F3DF5C70E8F657DA036CF63E714A17DA9FA AF96888F242FF964672AB6D9CC68989DB538723337304795EE327BAB72CEBBFAB6A376093EC250 7E6CC4E11275DB4AD7283811195AE1AF7C8235D220FAB9F10C43D291F873D989F30F3E2BD37AFF E5D4DB432C168C065D446F0B3D58981E981E9FE5CB773EE40AB01241EA403188FEF5B1AAE43FAE 7DFBDE6A367FC7D6F418E569D7CC7B3D20FCBF2687397122164A647041D12714798560ABEB8867 B266991761555A15A26569EB0FBD0137EAA54C1EE6010F0793B0896AE1CDCAFDA76DFFD032108D FBE81D02FF87E094C0012FDF048557854A7951C19C117397A81FD4C8F2D32D5AD9EB1E49580125 3BB1516DFADDB20EB7142443A1A133A5474EC8EA29103BE5554C41ECAFF76786FCD0FEE4971FCB 646F02BC421A7E4D1E5E0010A9079D17364753074ACD18630A5C6ECA43EC7C53C4B1A5DD0BEE88 9201FC8DFD39CD0C81863BD765FE7C8CA2A69D992034D8B8B9C3486D26DA6AADB594B6EE99959A 445C809D1D3EBA95FF9429FB957EAF9B9C7E3D814B25CAC10658218FE2993828ABD4C0A7650362 981E23E95B851A8CFA68B80D4DF911F9BF21343BD3E61DCFA86F20E96219FA1B9713677BE05602 A6EF36F450877DABB0E42F2DC22538C31B680915A634C6D34464C3EFFCD75E60B73428ABA3832A F9426BDC82D30589727058692220D02B5D64DA3F8F06BB80D08B77A455702FA9F2A3822698E02C DBAB8BF4E63E39D377C60853E3B8F7B12AF04BEB45AB27036BBDCF6C58A80E3B3A61563E026C72 4CD6E7C407B7404F301E7B1AB0EB210E41CD5148396089023AE9401C80831E627EDABFD4E30E18 EAE2DE1884D7A3813D343CD12F9B13D935199CD744F53273DE6FCF7B0F6105BEA2176D26B9E3BE 794AB2120BF13BDA3E056EF6D06F8E219B54E3FED9A7CD767C428375E40351E73663A739B3E77D FA3F36125473E7FA6FBF4A99A69AE1DBB03CFC5C71D2D941A15C1DA9C399EC307DA5D75C8B02FB 448BA23DB70233E83964B29CDD5101B404F505D6C8462A37DC5DA7AFF8145444ACD627E8933F24 7EE0163AB6CF596E882A8B123A102953DB3D0394840A2977DE544DA405D8299B2AD3253C188EEA F07D57FCA1FB375B9BBD397E1A500DB415964E518B2E2FF27A3480B58E320EE8AD0B76BAA2635F 3632B6AFC2358A3A332B773848742A11E957ABB886B3CFFA93999A478821EDA9FDD823EC8818B7 2BC26EF0ECDD2EE498D92638D2BC8E19A283C571CA8C886A8F8E647DEC4D6424FE9CCA8308390F 78F361486C56B9C039B14F76EC5BCD8472F4E6FF566368D5FB7A55FA0E887E9CADC5044391FFA2 21C598CC9E2CED7907F736F0EB8F12348D64EBCA0672BB8F1E651BBE785A09A34223663975B48F 90481DBA40982C8857DA5EFF13E9F5BCFADE13F02C4C5D4308CB09D6588A7BA7A2E1A4774701CD 65C7274D0E2F92AA0CA4A2FFE596733E61BD589D9B5E84835254D8F22DABCCCCE8D4760E13BC4D 6E85BCE03DFE296055EAC95B3523018DF17E8166ED03A23E1A7EEA0AF8C65F219A8F5D7C6F3253 7160E12174798BFB8AF179C70A8E43C167E1DDF34E47F46543CCB7991B65A2FFC11F4917964CDD C539C2E51E503998401540F23FD6A52F81F6792F2B97EABE2A74B9F58FF2C891E320DEE3ABD153 FA43F9B456414F8207600AE3DB5283BA7A0F18FC16C58766C58EC1AD813E77BEBAF90FD8D6F55B 25615FE74761320733B58B545D584826E81F2849E1875490F15B774A3A863A20BE5A2EFEEC6F9D 337E5133329C0D4E8FB4758FF97DF0C97127FBB5F4C768439C8B9F7DF2BF3EA516C268FDA3A305 BC2485ADB785E24A4BEE9AA3E7C82D3994C19249A3AD713FDC5B5C981A18E3D35AF4CE2A349C22 E8923619B85E3D3E4B314A1BA051A506824368F4CAAE420FCF9CBAD8B9AB38463229750C31FD8E B4042D8174F9C94830855B547B95210E59A601A076BEDBF121DFCF34440F65E46365871F3BDDFF 74232CA8267CE9864E4C4CF8D3A0AE94E57FBB2335AA4EF757CE11F554D8BE69EAD58004BE02A3 B6B8CE3F5C5CD23013BD57D15D447512FF69A9CD5914A73144D71F06550E93695F0F6CDE77C1F2 59AB5BCAE03478C9B172B792B16EBAC0F44F97C39FBA333F9BAC6123506028FA93F2ED96F88F81 8A3EAD11809C5A5F4FBBB62C25C9C5B68B82C1C9734DF1989B00553BBCDED535F6224E2F74E18A 29CE4568C3A6B0CF980AA1F7CA1F396D2DF27D4A6C8B9E104B5CEE96CC4CB4399EB2D17269B64B F50A3A0576EA17F41207717A2367094EC5D35DFEBA9D1E0AEEE710FA0E2297C91AD8D002E6C0A6 FD46D5D123BA55B2595D9AE0C0C730966B1BBE3F464379167D8A7B817782DA4EAD919BE0BD1D8C 61FDA8124098009B17BD4F4A0C189ED085CED24F05A10ECB9D96F2CDED8B5D8F10A4BA62D33F94 FF1FEBC20C9E64A7DB41218FEDFBCF94DA4F16CFAAAC9ADB9D24DC1958BA67D52F9625126D3F34 4C7AE7634B21608049D7D30D302E95726FA7CC91B445FCFE464D6E1D79389404F0A28F8DF0D27B AEA1C69B435B2CBC979580A2175B43F0CB739E86D778EFFB25D9C316903B82274ED9AB9E1ECBD4 03EA7EE377A11A8EC6A8F9599879878C704B25D4A5523F759D09FE3655FEFAFD834F9AA8C75C07 4697A890A38839FFBD754AD936EF8088D20629BCC0A9DDAFD5400D0C596391640FCF4A8F5A1155 A383F32ADB70FD8E5AFA66484B1B6895B6F2A7859537C2088DEFF14169DAFFDF1E0ABDDC646682 324828259958699EB1B21B7638E3CBFECDB9544F3BE2F00636906BC83568FE854E62D5BD752A38 084421CEC5E659D7A9BDE211E643950843A0159D6834A2258933F8C001C67B073E9C9BF7D8EB68 BF061B1966866465C8F7E1D2DC98F39F3A9A0096D62314636CED9B4E2E09225760A78B1C58A1C8 2BF342F7940F6FC838F4618898C313CCE6311DAFBA75B344143736C7EAE29D4DBAA4B56BB3781D D2DCC86BE5A4C4DE100BA03E4B133A239B7F6C3ACD1C4B4FC59CACE546E74591C12BF7497F908E BBFE7160563BB47FEEB502E3B5B21EF579E375BF8B29ED72640EEBD2BB10FA2B1C30ED5EB0A089 46EDCDDD233DBB94E95FB0012CF8BF944B683DBB52C90A08E5D53B2197FD4FBE9AEEF3245D6B9A 295445C148C20C597CB2F705512F3EBE2CA9A63E1B479A49DF54AA5F052283ED369865676C7470 1D7F3D4745944506AB5B2FB450300BC1AE7B0F9B0A3F1BC5499A53962C4143455DB5B3C554FADB AA6FE569A1321DC010E5484EFEC85CD8CE23C89C87D1AA2982880C56109F596DCA8258FFE48384 1B2672711BA606DA73552081C55D0DCA31460F3C81D4A8EBC7C55A487F2C08A986403E209E52B1 A38AB94F399D667720959DC10F9675BBBCA8BE368C3DBE8A3C82224DA3B977B0ECC13EA85F775C 1BAA1EDCD9E1C52E2169A10098B56C74E2597E5BBCDC693E27BD947033700DFFBA4D2BE22C8C0A CB0D4CB909EBFBEFD2F66FD53157E4BD02E8D027A060BFB1452FCDF79ED71245F021D29A21D16A 8D8F2D0B53DE50B6E98715D2042E2C46B7C3D77640170993596EB481FE6A6DCFB6FF046147C68E 241E62DD123B598D408FDA25A5FF8553B44FF1620FABA4610F905C7EEB946CD6A09D5EA961FDB7 9AD3EBF9836DEB52B4E93C4F1A1C89140272C4955908203C803C5803161AFB2C9B3510CE607F9E 2BB8AF8BD19B38D38F7942446DA9A92770333F8FDEA61394C4C1110CD91E95D3C4FAA33841D79D F1CA42B0115ECDED6CFDD92D36A2EEC3A2904C354206B987EBA4AD69DD6B5C7A45B96106593C15 F89796CB639575DAD7D277E09D347A4159EC19A8D881E6EE3E9093B51E9D9B1CAA1F0809EDC2EE 206F733C1B11C4292F75D0F37B25706AAE5E7900726478DAE756A7F59B4D0580D2FBC839D6F31E 086CF751F1017CD84AEFDA2D318835DFB74C02B01FB151D72C4A84D0BB976A2C35ECEC00CFB83D EBD59C29F54F229E087C1C6E6D7F72F32685E2AF4D4353499C399F2438D18FF0E011A0532CE68F F5B644C3D68754CA5BA2D48E0E23C80EC34F43468281AA347664D916F56E97B9F0E17A894DE514 9800C5C7B78EDE6A882D5180EF9F51ADA5E3B511B07A89CE1680963DC3848182BDFAF361D9A893 830547B3FCD4E412838E214A872EEA88FDE6298B15BB69FF9627EB37C27F89071F9DA74F4D6C06 37669C6C09BB543518AF798DC1B1A10E2D53D24C3A5B1A485D6B8179DDDEDC7B82D610766BC80F A1B2C3D3A4FEA53933A6FF83E85DBABA6F5EB94FC23EE28BA710427842803E0F375331FA1EC106 8C396CCE31A8D68B1A7A0EC87CC082A501F711E93B9FE3DFFDD8906566B7B25A260D1C64D6746F 80A2D323058BDA6BD4122F0C04B39A4FA271E7B75A1D8FF82782540193902C88CBD99E55B33245 069BDA735E4991447209892CA9BCF5802D44A09BE99EA64ED4EA1FA39B7AE10D8B47ECEDA33D80 F8BB0684F289746D5D2DCCCE59D4E6F48D8F7EAA81129BC47BAD6E74F4ED9B3032156B302AD7E5 C2F79E5A0A9DC77FB986BB46F4039152EF22331FB70C5AC047EC864F5EA5EBFDE11B5EC4081CD5 FCDAF37B47C5CC8AEC7CBF21939F89C998AD080B530E969D39607B30B5E4474206902CDED411E1 261FA85AA8CADAAFE9C8D0CA713066ACBCF385F4CD377194D26BBD5918096A3ED2C287A058725D BCEF5D6D2A0EA6300BEEF77AE3C6CC068649D077A38CA6884BA08B9523E51DBE0DE61CF651B7F1 27C93CF9A756A521276CDF6ED0FA7F4F559BEC19DD8252CB5409CD25F20D73D53375CA25DE2CAE C1D980C6C0B99D20E3713741A86003237A291A0815FA13865649B802C08B28312C61A95910F8EE BB51351AD5D919FB238D9BCB5C0653A14258C6899E22FF0FAE8B81804F3112C598D1C2F8860063 C751F39CF1B7ACF3DE9E9B6F6FCFA55A59D5516C173C90B491ABBC65EB3D93B416597F22825D32 22D9E6F5F7B993127288D3ABB7E966C9F2FA0E0A7A5B794D72FCEB0CCBE9A201041FE2338BF9BE 6241012E1E255327CCDF5FD1B0AF10626DC35C269A6E5EBCC697761374898384AF1B00BDF33A88 E7B9628C9A44435BCA110B57227D9BC9D8BF6C2F205A62E189E683E50EFD1F09C38E62B4B12426 2982074470A4CE35EA939B558BFD24593996AB198A669393B749AED33991D833F85DA040A04379 57CE47FE19E30AD150D7EBF3D9FB521ECB0D3C1DD75D45C180619E0131BF9636AD108C6F7F0F73 0937E3C8A4F788EE09F3E4A23078A79F386A7F638286AC0045F9D52E8D5AAFB1D4EE7BAE0B27EB 6FEBE7D6336241930DC406A45F261FBACAF975B7C4EA25E3751FD1806332CEA37442F99EB2BF69 C87C649F93C5EF9DB13584690078CF7BCA17543DA5F867C550FB219C8581F3DA4DB0BE951C4932 D3B65056CFC178183EA34389B3D28661979F1328A326783AC6CD34144EBB33CDDD58EE8A9A7DAC E4AC91FE1532310F9B36B17F3CC79E6878488AB43045BC5B95397CE872D1429ACCCA5D99953C63 028959839EFEC3F0A8E3052E4EB41E673F0FA73B9F82261CB6965C621ADD6DD858D7B2A8415C11 BD9C51FF31D1F90332E076977C6461288A644D66ABD8E295AECEA2F37DAFC4F096FC0AF34938A9 2C1E5D94A438319FEC694EE5E4ED1AE5C1FA82DDDA55C394C73CE39F18137370ADE011C4FF7213 95A444A57EFCBA18 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr04 %!PS-AdobeFont-1.1: LucidaSansUnicode04 0.9 %%CreationDate: 1994 Jun 04 09:58:28 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 04) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode04 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 57 /0439 put dup 74 /044a put dup 76 /044c put dup 79 /044f put dup 81 /0451 put readonly def /FontBBox{-90 -211 1024 940}readonly def %/UniqueID 5054504 def currentdict end currentfile eexec B947A691BCC86A8714868C4E8EAA6693E50213672FA40A24C1BFEB6B454C65D97FE3C8875CB7FF DB41FCDA8653D373718784E1CA8C2E52026C505028CDB223EDE069E4FBEE2F9866016FCF3C439B BB0802FAB586D7AFD17C75C2C867DC859619612A4199CCFFD6C8BFADBAAD892A6C666D828BC33F 4F4247E844052898BE31C94D164ED8D032C6F943D6ED98C08911A23F5A44886EF9C56C418B6902 CF632ABE9998ED7354C01793652E9AFF38B16675570C3F14DD18F4E0EA8F81EBA3B5A2EA1A6A75 2852B45D9DA70764044BA4537DB8B3E88BFED459F70BDD5F881C906573D7E01AA459D103FD3D95 D2C0D6CFC9AA56C9706482A513FCF9B41E612B7F6A70EB084A6F9D7BA73BC196B39EAC357B521B E3232A0CEC9DDF61F6A57661275C3E20359577BC2124313A4BD33BB79B2760F11A0CA7BF9AA8E6 83EC1146B0B2074D70789306AFDE9BC65D8998C6C6B28D89E7CF52E057C9E40738983F55D859CD 0D719713B944F82DB6F8364CE44A194C0B4E6E987C2A392DAAC78285ED9C29C1DF8F23842C6AD7 F2C362923E2E3C896F4759020EEE519DD5BE0603F7ADE8A7908B806799345CC450EF767993D072 238A614D5DBE33015C181CD4377871A633824D0DEABDA62756476A2E12BAF3A891001FFB69FEFB D921533AE16743B926BDDFF77BEE342CD2AE8AEDCBCA8F90A10779CC9BF24974B4956DA4895299 542E68FD9F5134EB2855709D7F684998BF878869A32DB0C6BBBE28B5AF1C1007AD68807513BDC5 583819F8A5C8FA338B6CEE5D696B0BE6AD4C132E8CD0F3A0FA8DBB22BEB7F21AC6EA9D2CE4BA7E F4A1D55FA87B7A57DF56D478B444FA969F3CA003267F1B45E69BE9210906D363A62731EEF97540 E5372A27983ADC774AD984B795695D3B164AC04CDF48FDD5697A3F855E53189B795887549A79DC 69AE4EE9B7DFC5732BEE8F9FDAD6008C6EC06BA5695492152EFB8C2A2BAD3D44EEC08617AE17EC B22CEFB1122BF202A212F998882C2F653D56F2D0737FFCF84E0D52DE3CFA539954AE718331109A 30267B8CF12669EB05BA116D01F8F01472F466D26400B7CC841BBE94EFF2C95B36C695AA91FE51 E2B1DD43A459E31E01017DB6D44ABA40FDECBA6FAAFF5D2E83219DEA8777A845F6E4F586E73B42 FB7116974F95E2BC2FDF85FD5C561AC5582BE899C9E85FDA05D02898659522A38B4F497F16F534 CB8E4EED100844CF77E70A0C9C6C18C99124155AF1BC7F67952DADF6FB324B9F70859BBFA5D191 D51D024897422139DD5CB41591085BCB8A9655A43A7BDD93D78C55859F075E58B5DCAC83BB00CB 815BE032EE24398C06F8F578B49CD897740A4DA7E6DA7DD7508EDEBBE1CC0AAFBE06F570987512 0A1B016A82C5E1C27E48B4CDD5F2884A5AC18AB5536A145A7A83EB4AAA9971865EB69EFAE5EA41 5A9CEBF4DD21A7C173D5BC38DB8E5C2A6EE01B504A3FA492A889B67F9E27298149153FE446F040 B7E2C781059C65967C51E23B261136557B76D675A79A006AD83F9E0A531C6EC6BAFFF9B02788A8 35AD5EA6C7F8CC684C252AA2E7CD05C0ED81B8BCA7D4C9A0485DE412915310EF3F8303F5F4E222 769DABE6CC59CBA5036F3B6B1881971217CBDAEB1ADDA602EECECA4EEC033A1485FC32A9F34C57 994BE283205ECFE0B241FC56D225AC40984DEA53961B7D43BC47F7D4011AEDB3E3D824881173B0 6107D6C34915364BA13D09B64F088504766072E48BECB0258F002BCB476AF40B5565393CEA08D8 0B86330541D0015DCFF19A3FF11DD0DEA1E164295C22677DCCA2E69987C4DB4273ACD833F1E8A2 90C7C7E83154E97FBDB5B28103DD17BC8187A0F82B0BEE9031F45A869161510B16EC14EEE4A90E 4B0CFF0722D40B3A54EB15AA16C4A9EB4747B76F3EB24093BCD34AB43651603328086709CAB4CA DC987A0F15AEE2EB086532438092DA0DB860C994D5E3892618A1D6D536BD6E1267C1B79D2B038E C3EAC72BF37A07F8338FF4ED00A2C096F2C6DB26E71F13E023D25D3F3E547AB07E837DE246E0FA 73356D30EB9E8C83D2A08745B3A238D1FB9F18CA32E2CDC93884D4B1F87854BBE7593C45B8F7AE BC916EC39500AAC2522595A0593F2B95ACE4EFD4A016D6D6D1172AC47EA3C92AE915608F20F0BE A10E875F9DDF6E0EFA32C3EE7965F34AB6CB670453DFE936D4D1CD77E44A1E01B81749EE49A4FC 7759CB1E0D30CC814E6AB9B51FF675A22577A3DD8025E04CCEA149E717FBCC8C424196B35D1924 3C562D1FAE2E2DF182ADD0AA15FBABCAE89D91A363D3691CD9E2C6EC022C34C1D5A6F0EDD6189B 59561647A60F07E60202401959224E551F14C940667AE193924A0A83F4F85D071AF94C79056CAA B4BF0453F2EFE718C7925B7D150F810156BC31CDBD19548B4365E214CC8DE2357368A8429A9D80 6C2CF8AB10BB393455B8EC83DAD41021DD2C3C8BBD19F7F086C7D4AB0E773F9624CDFA6FE0BCA5 1A581C845241710AE04EA754034710C1ACE81F3693F17A4144C886ACAA69D797DC781402C297AB 5D83D4CF37794E7186404A8597FA96FF43DDA263AE1E5BB13132DBC7A899B7E29136D8ADA59BE2 F9FF6DB733B428A2D4BC94024D03210C67A9DD92FFFCF7DD20DE16564FFD28F5BBAD8FC6FFB08B 8EA5C8183331931769777C502E4DD4348DBF937560C37168C6FB31D04483E204D23C51F74BA204 8409709D3B387CF7ADC611C68BB8DCC51ABAF46F4557D9A7D39472775F17F7D57FE5BE656B7178 54306B9D35A6ADBEA90A4CB0B4196045B01BCC454395C6DCCD91DF342E853E390D0A060A587673 6A7713D1BBB7EBF6BD15680DBD6996E69BE0A25DE4358BAA6FFFF20AB9FAAD1F62A773A51FBB25 9DCD63271013026CC59090452EFD867D24C4B87B30C8B338408836B68D9F5BA5444C5AB5075D38 1A8FE2FC68F3E307710A68163554EBE7002D15D5E5A8DD662195CFF998B7826FB58345A0C932B5 E3505C5A7174A649668910C3493DC2BDD0635275431DDD1304699B371FE983FAB90976279ACA40 6777877762511873E042A65E5F0D3CD63B692D22364A208B555EA28963348D2C2DE3BD025E54DF 656FC7749C9406325C809B36EF3CF9BFE641783D6B82DCFCF63482D2E82BB4DB6599D1771B6DF4 FCFB7803B5853A371CAFF56A1A6F7060AAED31347807AC7D0114BD90CFBDF64C0A0BE6D2A18883 CB9577A8480062E6849942CFAF4290F2BEFCD4B7A212F88B6ED02A82F4134C66609096E11258E4 6E9EC209B58597889F3B86F66D5678CD1F0A0260BA8305EE6B038842FC4244767E615E15626773 1006379D908D8048E94ADB70CEB5E6762763E8744D8CBE771B01BF51EAEEF378EFC38233FCE953 1ACC4F8FEB18E3164C7C834F7A253C0EA5CDD0A541A0E8A263EC6CE7810D311D45C018CF88579A 60864FAB0D4D6E8DE5D2D77639AA944DF27C99067D4FBAA626BD61B36F4DC0CFEFC52DD1EE665E FD87E73F791D95BF9368072D720A8E7069C9C9FA65D22B0C401115D19458883F4B37E631D6B532 8C7E5A10B6E3F9407FB6AB8DB7D25BD0D682B197EE8C55663AA50B6B20DA99B489F8BF5F091949 16DDF7781E5E437C208BD4C68F2DA4B4913C69DE358E9E8750F8AE45D8F0958F30FB7AC997B253 C255CDB46054EE7CE90EE8C3B0379EDE79009F6952DD0C29A682813B283A18E11ABA75DDB8985F F81377EF1420C3F93832DA217576D9871815CF0FAAD815FAA4B8D93862E0F7FE9424A40186E933 81DE8FAC067BFED22ED9A8D6794FD76B97270E30ECECB34C4CCEC5C8681BDD66DE14679A85468D 2C7952A33C265FB2650B1D8DC32E867A98354E21F5E644688285315034BEA5C8981C9B36502C87 4A3F87B5BF5BD1E3241B4056D848F46BE457752DAB938CBA20A7A8643C99E8A0719D9FF7422FC9 1F25BDC284D1F0664C6EA1900938848BCCFEBF2BC4A0E37DE2DB48C5311F7BB5FCE22C3948F8C1 AB83B98945A1FD7F8812CBCF8852F20D26B70D94D04E4C3B3593BE0716B016630E43C349B56F9F C17A9D19172C4E1220F97A7B350DD592CE9E8DD5481A3A0733B95C58241B333586198F375F1F7A FCB84E33878056472D0153459A5AAEB4F264AE38CEF24CEBA2A32970E642820E9708B137180739 0755DB1F6E830A73DF803365B93F815A330E307828F3FFE89B1051EF80466E3F2BC7C5D703D5AB 10F0411C20E72745A13167759657C8F68457BE6C9EAEFAF4C689839179432E36200EC7C492EF2F 76AF90BBF8333DE26D91EC67F32425B3655D2AB080D6F62AE8CF99002BDA6D369529CA0110265A E93FAA293D3E5CE6121C899FA575DAFAA8293DD6BEB7F8F5356B7076B38EF4E4DB70F004EB1FCF F2501A24FC75A3BAACA7E6D0706FDEB788C4FDFCA642536036F90E65F6BD876DB2519DF5085C17 E5474B454FECA74BF0F3684698585397E3E04847A1700307B25D00A2543C5F5AC662798C2BCEA5 1A56A0D92E1D376E01898FAF604AE6C3861592CE3CCAD063C628E15C2F459A6399556F582DB160 0C8C1C55FA94E64AE5754715B007AFE6E024AD0E96218E777E90794820DCE4FF8C0F936EDF0C55 2808CB0DFDA4EAD0F1FB144651891982DF671D9EDF47798A24AA5F0B33E9CF63AD8AD4F3440CE3 76B4C47499FC93F8277F3D22457B98F956C39C53D177F0CCBBB529A36055AA4EEC626A7EEED64D 646ED1FD0C3685CF4E2DE42693E7E212343B83FD75AC33DEFB9D16A1771D6D3622998E556C0AB7 F2D811339E89330348FBA8AE94EAD8B18BAE18CA3683225EBED1A4DF9EDD2FCCC34E74822966D1 D5F71D2346AB76CC3D0AAFFA3E3D57CEC007C9D892C5A82809976719F964186D3279D79B4B5AC1 F0333EBB8742D25644A962D02EC011FDFD7455120BF41418D4FD6313066DBFE5A0BEEDC59ECA8F 8D1FEE9199848433A584EB5347173D726A521859A91EDA4E2D73EE7E8C51339B86305C63E35E86 B4FF303B8B1075999B68513497249C62ECA2736FF6958EC66FB78AFA10532913ED98C1E13420FE 18C9884E3DA3ADAEBEB2AFFC5800668A2AE2752BD30945BD58C75EB522F869CD640B1BBD982833 F92EE830EBB96507F4762E3138243417FD2C4738FFB542D1B2A29CDBCCF9F3CEDF879CEA7CAAC2 570C352F4E4CF19D069FBE80F9AB796AF8F419EFAB203B930625C4FA2435D0760067D328A5641D 834A56E35ACDB03751B97727E4553057FBD08C1236E45C424368A7B1550A4ED7A5E6270190C60D F2E025A2E24392AC419DD2FCC5D85696A0B2468E1995C3AFDAE38058FA85E54DCFFCF687707847 39FC137FDF9D6BDB97E38642A6E6DBAE8B2E599069634AFA5FCB9DFD01A00F7174EBEACA58E0A3 29B88239CD746022D2B10A8BC3CC15CE973353C01D98D8B2D5AC9253CA5ACA59AF6324B5C69A7D A13E28170A4077709CE7B4B77B407898085D371E0F9207BB42ED043D8579D57F81156EE847D962 FBD8412ABEEA9B941AFC7B39A51391D02695C8FA95C775F8CA84DD46B2A28D1735C2C5228FF7B9 29AE385AA61818C2E9568A4F23F8E890583E7DDAAC4F48875429CAC2D54714D179355590FA42D8 160CEBDCF44BC348271FBDD219EB95D1153075C82383339334D05F741D7CF5F12F85DCE3A25BAD 6D518F3B13A0DEE4DB2CDEE3D284A8DF2F7B1C9D07E8D7F9D47D6BD6088591A9E089EA2BEF5B83 CAAB3EC766B469DF9640DFBB4C32E505EE2A01EBF2E7155729D1B9E205711A74010C6BAC48F73A 4CCDB21FD55BBA48ACF5E5126CE38ADAAD6DBF3EA6297C56EC9CCB98766DA4C76DD8542BDD1596 BBD288C262E48A15C27690644918944E039E9012C08E62A63495BC5C6E82285885A2E830DE725F A7C746BCD0F333AA0DACB4D044CF8DA68EB5A1DD7B657715562D0D3F3F94F0B642C06BAF360191 193F6ED4ED5F781AA5AE2DC7E9A6B73B182092BD5ABA6AF79E638152F7747E5938ED28D9C7D894 A5762C519DD6620CECC58B2D583D38B63584172CCE9E4D5B3737422ABB778B2B85E9F6C80D3CF5 FCBEE03C2C66613A8C5FFD6E5C2A4377472AAB0F1B93E7564657CEF1BA61C10849686BA4176116 FEA3C5F3F89C492C1CEAA310E9A8578B7C5439355A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr20 %!PS-AdobeFont-1.1: LucidaSansUnicode20 0.9 %%CreationDate: 1994 Jun 04 10:00:12 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 20) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode20 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 19 /2013 put dup 20 /2014 put dup 24 /2018 put dup 25 /2019 put dup 32 /2020 put dup 33 /2021 put dup 34 /2022 put readonly def /FontBBox{-615 -440 726 1024}readonly def %/UniqueID 5054520 def currentdict end currentfile eexec B43A59C23D31312E42BFF7A8FFD888C8118609E66724952B45D5A38971EEAF7AEAD27731404947 E5D485EF2185B7B28FEE76585E49D85250EB800DB5DBEF09999B470F9167BB8A81B88DCF399612 0C5E5C13C786349E7F44E018DDA185A7327A13F55575F00A7B68BA5390314FFC1BE676564A478B 1A253C30B407F07FEC8E3E3C46BC787775A409E084B26786F0856006E38AEB9E71FD27672DD999 15E5FF51153CD2575D5A841791BBB0DAC82FC347B4323CDA6FA02627CF6F313D71FC7B56A6F4AB 9D45D4EBBA4FF9F13323865378F1240393DF17083189EA6A560B78F670F31187E21DD2282A40C4 EC215B6E053C952A419363825F8074AA1F2791D599B236931ECA38548DF42AF21A0B93299C7A6B CD562A5D47894A3F2BB10DE3513E0101686157DCCFE12025B2F62AB48BC56966D41430446797CB 34EAD92D70125D12FD83DD10713076729FC32F58FCE51BAAA5865AD74B16825913B821284679E5 9C71C2DAF711C0E0D4E82BD5FCAD13D14E69C0C9E8DCE7F05D2A5B1F4B724498D405664EDC7CCB CCDA84490522BB752CB6BB095A3AFA53A75A04E8B6446C38CE1F543231B8E7A462CC128403A30A 1553F8AD4952935A99E6781121623F4DCA70C680758A89F19FA860DDB7A02B71B4265E4EFE5CFF F0871888F3C17034282B2250FA41A8529AD3CB49FC2F94FEDDFBED06ADB863F82168180A185578 755D4D43CBDF4D1FA47B05871CDF84694574CB0634E35C47C9B4BF695B573F8DE08A555F0A2DF2 2774590AA572463F9E2FB1510BBCA5E8F6ADC8217855D4F1D5C837C3CDBC31E1CB6F52CC6D0D65 05E59AD73924E4EB1B37E9C433BF0ADAC35CE1832DACF7FE538E921DA937CE895F565305535EB8 17575E443932C9896F7D11431F8ED21EEED56E490E157FF33BAD34EEBF76042168A86077AAF03B A2173A795A37E0BCE53179C645E8C12C0FCBE7C33CC1AF08C58567B83B602E468A8E635F0811B7 6F8E4318EAF2CC3C5DF01FD2A95662F00029F54AC7C8FC2B999CB46D6AE8D3FB1DC657C6E961C9 F870BC5692211F2C244EF9CCF84C65D013425D119F60FD2131271C5FC6CBFFCAE54064DE267BBF 3E03F44C47BD24364273AE3D94C9C818825440FEA0E06CCCAB1CE6C411628FD565E8C78B039371 F4F6618EDF8BBB15197285A8379DD1DE9B0AE8C580C44EC9A7A74DC4A4496A4868355BD28FD537 38C81C8060FC059EBABC9B8F14F65C347E47EBB861DFED01318BF955010A0ED66DAC569E6794F4 3425476951FA9D84A48D7F9075B0A197936EBABE6B9D3513B542E1646A0D32995AAE08FD77921C 79F575F40B8E813B330F1AA029FE6439D7505B9DC9210D43BA9CE32E3A14EF467C870B182ED37C 654DAEF47A595E363AD0BB939085DCEC7155829BBE1E1A47F1F2A4F3432E34EC91C1C85514D35E ACE265943CD46A79D4226BAB3BF354A04F0E182B759835B9FE8F76F505057869CAE56BA3350712 EB5103078544D804DFEA9DDAB528DD4939273645933425C0F64F7AC4E5D3B01D5D76CD95C65756 B48FF39634475BA737AFADF17FBF3CD5AD0E88F6356CF06EED43EFEF9B5433EB1600D38D203D51 A1099E2E20641DBAEC087D771323611E50B960C1B20EC7B1BC71697768A088D806400AB4CECC04 67AEE799328421391BA370FF34C617F15105260632A8C0F4B22E792247E390B1F564C6FE227B85 5A962A6E06E6F565D8D54F9887042237617FB78CCE75B0AEE938B1FF3F0362D6BC139C871D1BFF B8AA0877F9D3F0DB55ECEE0AFE6871E01F204332718A0EFC66EF197523FCAF46898F32C1B324C6 DFF22FD9BDB4DA9D95D5D2208CA9D67C6C13B3A3BCAE8AABF40EB224AB9CBA55204458FC526DD3 8380F3F432EE69266C02ED0086DC8D6053AB3D3330D436B04DBAD95818B0A5025CEF13C378A9D7 2B6C775ACB4833AD3570D1E76BD359A5A8EC9C4F0938F7240A1B663AA366A4FCF3C102DFB0FC07 994E668F503A0E28CBD1CFC49041562DA2249B608712EFC10C9A35E0FD9B346864E6AF644F07BE 325FC4E08F81E9E8A6DE438D3ED64F05A57D3693F770C2E139ACEAB73366F56A94422EB50F6670 9032FAB1F7ED83D150A8D26B45D8B59BF720D04C4E283A647065EC0CC0D55D9FD7C6502EE3DBE3 E785F49966E1099CE4596EA2F1CAFD038E882F05CD9628F74A9A09A5DE677704A12CD82A95BF7F 01A5147536FFC7EEABA0D288DF1A9C9B639350A266C42500696B7E925174AE15CDD011119E8288 7EDF23F0AC7EEA78E38104C00BACCED03A7785D88FEA2B4A3EC5DA4ED2D0357EEB43C4278CAEAB 5BE44EC6C777B67FF30140A391A66CF1B47778BC0D9BF6804E78DAEAFCF1C3F67760C94ACDC930 94E68CC33121CAB7A1FA79E8E14276CC001A8D31333FC78721C8368034B418756A9EB23D1F7104 43326DF928CFB2E1F9246CCF09F5D21537213B798D2B72893A8285EDCD48509C022EDB3E0943A8 AAE2FF11AD8B6EC442F30DE19215EC6BCED82C345467DF50276F8123BC061EB2ADAFA6CDECD1C5 5C529BD9B1ECE353EE7A58BDFFEA47EC30FF94FDEB0E465B7A45EC795797DE00F78E180B73B3A6 F5B3F35BD80882003053F618940DB675D846095F63E90CC77B5022E963CC39915CF3B95F8F5A45 4419ABFDAE6087C4EAB799A8A5F1CD7A234A2407A2C08DF813227CCE6DA56F6D1B081278C6E046 96CD90F917C7AEEEA3032A1A13993079F3C41DCA1FF2B300BEE78A8D9512736DE4DF75CEBDDC58 33F8D1555590AC92FBA63E2D59B80EE8DEC88CF78435CB4CA57D702DD144893C3279DADF5C6164 70EA7FFF87FE66F510ADE5B32019709CE6D9BBEA02F2BA243975E7800839D904DC09C2306A292B B812F8CC973D40810ECA109BDE38961FC2678BC1CD377E2FEEB43E2072B38621801D5ADA0A92A6 5F37C7FA277ABBBF372D08B834C737DDFD16B51190DD3043040B9C060A1828742BCF814CA98EA3 77DB2DAA1B027BDE291293D8CFC3DC73A75BBB4BDE3CD80FDA05E46A2CE0B003663A2003FAE55B 0535A681672F7D8FC966834DEC4DFE56D3286FF86C10630F9EB91BB731A9C2AFDDD4F1554C4728 4D68FE4A486EEDE086A565929B97FF763B31B5CE48678860215F768CEE265E157F1A44C3092FD0 48239B140F2F8801D05B76FC9EB969BB6EBA6D472F1C016B94012127975E20FE911529090CCCEF 4C980611502E8641568824AA0F18FC3CBC5C2C46DF4A310A1961427A7785EDC75D0DC93FD03C26 43FFE864A91F4F285FFFB5C74803081A71AD441522F4C5DDDEB96BF5A7080BDB57A22AE8DD9310 02D940551006B0863C4274D0090A9C2EA9516F291F4A833772CE2F0CCF7A92AE08BC02CDA5B434 3D8E61C1F1ED39A3614BFE3BBD2BE7C9C3A64F1F7FFDAFF51D3FA0357F672316BA9810A620911C 06393D472F8BFAEF9AC09A031C3A1A33816A77A6C5EA88AF4D4303EC449982D05ACA3481807F2F 0775C87DA047792078D7FD735623D86C37274CB49235A22D01AF43791078E4AE92AADB3EF71EBB 7C96F303E70F1E3F7569471C6A0FC9B9C59E4DC141FBE2752F6717F4A7C8CB5D47EDE806D835D2 8F48927CA3A3C38B1E5310A47943668646946991FD87BDF723BA535A587EC98F9CC86A15F3AF79 625C5E9A1570412BD515DBC288A9DC3E4194A2031707D47E54A1FFB73099356BBF4C67A22A71BE AB39619759800E4F9F4B558457CFD32E456D546BD2542B3F493A2FEB432FC1511587E4F5C0BCE6 3BD4CA268846F13233A6D3E22CD92BD8E19627B71EAC34CB56125C86CB4168194ED4E45FC6B759 5887FCEA79676EADACAC6F0A35B30B63E61C51DC92E4FD960EAA2105ADE6C4E551FB59E0381ED8 90AD55857073689ADAAFFD1D27AF7E9BCCD8078D62E2299E35EE4255817A3E7CBF4C142AC2F10F A5486FCB20EA7E6281F6FB7F91DF0A48B0547EE2133AC09C1E0700039CDA77281121975D84864B FB24A6F6E05F5E801FF02B04A8FAE6F682E7C9A705B0A6CAFD3A84698528921856038137A3D111 30602F28D61D26533FAC142D5A6F0D7C918D16BF3C1CA65109ABBED3BD897C8BFA4490545552D4 B15F6264FFF4B02CD60970D6D8F35A18295A2AEBAC056F768F29526958DC1E717FD5D6504E303D 1C36802BFAEC578F5E3F0D1BE9FF5B65B3AF6DD63FBE07432BD1EE72BD24C27C5CCAC3B95FECA0 AEDCB55933140D1041DE9F2AFA2ED9F3D4BE5D7D0C7F325AE26CB1FECC40CCD6A4085515A11F62 26 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr21 %!PS-AdobeFont-1.1: LucidaSansUnicode21 0.9 %%CreationDate: 1994 Jun 04 10:04:24 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 21) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode21 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 144 /2190 put dup 145 /2191 put dup 146 /2192 put dup 147 /2193 put dup 34 /2122 put dup 49 /2131 put readonly def /FontBBox{-30 -325 1384 883}readonly def %/UniqueID 5054521 def currentdict end currentfile eexec 8CECFA711B4939E41CA045BB7E8765272CCE317ABEAF2B07E70D992D651C41DC23B029563922C0 95FE85170451329EEA8C7BF7A2726EDA9D9C6D097F0F7FB11AE93E80BF8DFEB2012E3B9F49A227 13E573A8BAB0BD7AA774AFAA41B97C6C70A3BF84A0B468C41B70D35F1310A4BCF2B97287E2FBF9 4A30663A4DBB485672BB54D8FEAEFDE594B3B73220D0C873C546C40B5138841E9803A47402513E 8FF4F9343A0E92A13A04C27921E3EAAB23C355AB06A42C0BC5CEF70BAF6D687B5C79B5360DD42D B2C878AC8DF4228BB74DD81C6FEFF53A36279510E983BDCD1A8145830308160030F770C3DE994A 4DE01ACD31F1D76E3094B43F3316267B62B6D653546469CBD35DC8B1541372AACED3750E498938 970666D8B36D41627069EF1511128034B8A364FACEF8068FB8A2F7F3209E5A769AF14C3E7F044F 6892F9009EEACF40CA1AEC6F322861CD38A8CE6A110A5C348EC2CB376E5110065918A03C02835B E3E89B986010D70284A334D6725965CD86C1F4937315B5BFA1D7E584988077138480F1B72F2870 2477850CB729C71006FBA750B4989EC757A808D51431556B673A084E350A74279AB2E9C638F7D5 B6BE1D50118747D01A6F3250CB9F204E3B03CC46DEC9821867B2334D2593522BE05CD30CA6B75D DE85222B64269B1DA310838E5962A391BC8197808B9D11B877A50D431C25870F7043983E965CF5 0F5BA07DA4DD39F97069868D506F035C0DE343F7F5C12587B2B05CE2ADE6822C6C0739A54D5DAC 415135137E8341C4D37F7D4534BD8FCE1DEBBAA3C378C9C9CC083F3A892EB7E44144F118680E0B 2A94BE914FAED74B80747D013961C682A0C3A3F55AE7496F7A15786BB0AEA5B1079668EAED2527 9F744F8FD112A6C33DF4E1500520910769D69C8F4D659322035993A3CD70CAA65F9DAF1485DA40 CBD374802317B409FB464C03C8A46831DE7B04E924B9D8F5C5239CF99DFB7176B2A01C1A31AF6A D7EE0115C6CF9EB2AEC83901795A91D4563F32399E1AEB65ADE7B8248571668410AC1D86F71918 70B0FF9C844CB7E6352B01A2C169E37513CF7C37D131B042AE6584F1ECC680AF5AEFC74D2C3309 12C36CBA7D88E4D44C77EBD7377674DBCD9FADA92577843CB5B1C0CCCA0A9CC3BE2A8F4CFEE1DD ECA543A7967806B9F65C5337403864168AD5EED97FF91EA2A00BC4480D96D09080029CF4BE6975 B34B40182DA9DE77D82BBAE0007448F08DD19A443C3EDB130AA1E36D2DE61D809BB3508EB12237 E460F68508290E1DF4E45B652B0A2EA82DED7F3A5A05E9F6FE3CD1E8FE988B7258E81A243DA0A9 B677C368D33AA67DCD8BED50A86331179CD2A6AF65E164A925258D5DD67704B2F3D7B3A9797DB4 E5092122646EF94DE3FDB3548D60702ECE17FCEFAA298D9825EFB4CB96C20E5AE933A4F9E7FD4A D8BB4FFA426366AA9EC6DD84689F24BD858212C0D745D674D513DC4C07C37D9733ECE1D7F7059B EEEFBEA12DB1F8F21F6DB88EA763511B1CB80089383350F0EEF474F70276C7B44D075B21862115 1C4C8CE0303FDC81D848F74CFA94CB2D2F61FB99B92DFBC6CECC15955A790C62B3DA7654CB95FC 9EB2544F05AB69475FC405C3F0F1E80EEA5F82EE0B3E47937556C7E14CFEF5A58ECD7B975E519F CA80763297F483FE24B96F09BB0C6ACE0753EF674B62B6F7C2A301BC1F8C7D2A84CB9DBC68AFF0 7ED80EDB570861D23430D1A30653E5580B9B9902AAD063F04A700E801964927CF9943A074D8FAE A48CB417EF69C589EF625E46A55472A0A2B3CF9C7CAC86764E06ADFDBA7AC08812B171C4ED089F 3FD3086F97D6B96299E47EC1BC98C8320ADF7DAA7D384A128693DEC73675CD0C185BB260668E38 9A35204FA0838F70D1AE5DC74957D9EA2E2C3088D660580C20D51B212B6CC83D9003260FA4873E 0B88A4DA8EEC5AF1DBAE1C0D1454746F9014753E3CAA9C8AF20D97E949D8685D5D9130BF1A9F79 57569B17DBAB5AF2F08737E9A046C0BBAA1238D2A72504B9131401B96606AC9230CACF736151D7 E1F79E7E4F42F625AB66F02FDA6C31C497B1C2A2A0C4DAA420B59D647495B306723195DBF74F72 FEA3B0BD8C2A16E95B442FDF0B39CF601FAE4BB5AC9C85C1042A6C54C44B60B3A44D741E788165 2126A8235FB58650ADCBB265C349F5A93543A4F765C97225C9566D7C4DCCC6779E05D9827F8C00 D78D582BBC77E25C3A170C469A268B483BC3153D851FFED8A1911B6864655255515363D8DBFFB8 0C02180CB399D92C242F0F450766B5D7D29F59B5D7B47633C87A1B46EB3322715BE04BDB99E126 650DF431A9E8DF486C8C63F5F0D26DC24B9DED300D3107A814E4A01BE93CCB3694A99887C4F1A3 46DFEE064D27CA5D5899AD2F8B3915E304C8A4121A26C1B7B8B81B9841982F6ACCD03F249A138E 0F836D0F533153FCC8B3B4CEF39802D66A0EF0CE76F8E2C03D880FC4F44C1FDEDF0C50971507C0 7202C26CB4C0C1EBAE4AF043F2893D4B15B183B5B60DA901252BC6DE8D8DBCD54B418C088D7D07 3084C0809EA621F31EC5DE23374C5A4AFC2AAABE30A0CD14CF07914839804BC88A7340BED9C24E 48B93770745A08B2FD64AF52D5194D57FDCFF6ADCCB3A553343FFB2F82212E5152EC91D9F19F93 7839782E3A8FEED1128568C5D39AEF3638592F8321A7513B6C361D56EAD81E2ADC3DACE11B7B50 73EA40B36A9E042BDFE78E30EC5059549BF9D1BD29722E6FE3E3CDF81029F81E66C887B55A6E3A 96826166A1FD6D27B7B3B5D72046373492434088F7634CB45301F885909D249C2680E5B1AF7F1A 5C1A7997730E94D8A0C643937B284C0FE0EA447965A8942E882C20833C9EEA28D063C6B5C52F06 D9580E5387B9C87945B1990EF0537A00BDE28C42C08321C0730A04AB9A0DB8435F250E10FBD8F1 B70FF91E4B795BB353AB3DA14F7FD8B61AD2AF4CEF5775B16BEFF8E3198558F77036CEE8F21556 BB24BB44437966855114167168A2F45CB4CE1CC31FA04E39FE5F4F07A21D878DD4D833F2905E4A 541F26B1599463BAE2BACEDDA6A25569E27003BD478232E627892502ACAAEF3E61B56139542D1C 6D6A6B3873EEC2EF0BA2CB21AA0148F449697C43D3CE159B01827618C1E9A835186C2EEEFF0EBD C22D9250307D280706754476A9B24E141B88294CC88634E1690C5482E5232EC7F174256999DF02 FE1FAFA59C4369C41B8E9BA66699575035718309DC3409EF68CF0768E8A2AE0E5BBA760F3EB926 DD09D37641808114AA91761DBDF3D2BC64A42DABD5010465BD47597A69B1F88DB579B7A47563B4 9BA22E69D7294A81042FC2A57781D8FBB5E87E77539498BEFAFD98E3C1C761EE5E7B635AE93BCD E9479904AB3B3BB64EDB0C80CC2B04BD9295E208340BF65D55353BF8472EBC77 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr22 %!PS-AdobeFont-1.1: LucidaSansUnicode22 0.9 %%CreationDate: 1994 Jun 04 10:23:13 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 22) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode22 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 100 /2264 put dup 102 /2266 put dup 103 /2267 put dup 130 /2282 put dup 131 /2283 put dup 134 /2286 put dup 135 /2287 put dup 41 /2229 put dup 42 /222a put dup 43 /222b put dup 67 /2243 put dup 96 /2260 put dup 97 /2261 put dup 23 /2217 put dup 25 /2219 put dup 26 /221a put dup 29 /221d put dup 30 /221e put dup 2 /2202 put dup 5 /2205 put dup 7 /2207 put readonly def /FontBBox{84 -166 1060 898}readonly def %/UniqueID 5054522 def currentdict end currentfile eexec EC18885AF58F29AEFACAEEA59037C942D5A3FAB833BA43EA181148D28AB4B88B44CA4ACA1F92DC 003EAE53A624731252861B743FB223E6A26B5EA4CA4237504F6A6CCA326B9405AB85D95ADAAE82 22B5F340DF4D35E0A2CB80190E539D9C09EC6DE84EDF6E6DC6E40089958D58B17EC7357C0EB84A 61C5A04AB034973BD320598296F9A79CA937F8946E59DDE543CC946C528E3106DEBF61B81D7A8A 69AC62FC23908A8A656B8518CB8FDAF8A2B57C3C7D4B644754586A739AFE94AAA7B685E0B09EF2 C30BFEE0F183A420766F0BE21197DEF2C56A4BA47A2AC88C0687DCBA5494D19D543C8D7F43E8F8 67EF76E2E818ED425C61EB7D3EB50B1174995ACA71352D8218D3734BDE02F4A95E232BD4AD9845 09AAC48D0F388BD9ED89E3DB5276D12DB11621AD67DEB0F7CF2046A95D6147BD77893BD999663C 6BB6206F86C9E5BF1B7296EA35C677788DD9627D6385B6903C83B27CB461AB230B86435838C33F A32A0B5DF678E7A5414A11E4BCFF1098BA6A3A6C70AEC03193BF8E08C1F703E2B0470B171CC9C9 CFBBC16B532F551E32A6EBB545F8F16B4DFD5945ABF67BAD9AED02092F99DABD828C674A246A3B 50B6CFEC2542399D397121C09D60CD1F679CB805E385F3D63FCEC624B93BDA066709C669C50BD3 261D4A143B81F83AC3AD4052FA424782F1C8985A783C1BDAB4303948E6BA2C6F1645D1AAEF161F AA605149EBCE77F37B904041DCA83C92CC102FEA932313FCF28C23DA1D3F876F612EA30006CC36 B9376696E6D3C74AC6D5E39653C03434CEB58C958FFE72BE74DCFD7921BD8D29CB9B5D9462CB1E 6CA793A7E2A7F1ABA296877AD19BAB0AA44F0916866DAAEEB3DD86474882FD901F4FE785121720 80BB24A21D83C909FFD3ACBED7C3F97E8D434B4B3DBCC83A954037319D24198CC1B14695178CFB 18CC1F530CAEF7C5C845403B52E2A5CE0B7F158B8C4904B2EAEC08C9BA7AD693405E918356E7D5 1E87E2857B18EABB71256596245BFB5D3F3E547AB1355106CD33AEADDCC870BEEC170FAED7884C 82DB23EB4B99C4E856B81773093BF2B625D38475AFDCFCD02468EB11B035E4950C2E909EF0AC96 2C6C41D25D43C5653AE66D718013E922561CB88101CCA5E70905BC6D48B80C177F552BDC9BB31E D51DED3C0D40BC161A86C06F8FADC8449AA647EA6A83D9A5AB66E8CC4B5C705375CFE9AA94C1C5 6AC04BE22C68860DC51566D69AA649F97B43E557EE45E73B23EE06F851860CE6C29CFFFC95F561 165AFF73E18A9DE0A1660754A311DAF53146BBB751053D424E32E8600B50303AD1A7D9E663580A BB54114C9BF9E2850BCF12B5428A4CB8E458B16BEB43751E68BE952B34A8064CEF61452FF56537 EF56D18A3A3A3081029B7027600A1DC1199772F97102E7FB28DBF3A941729599B0F24A565C1BCB 62FEC5ED752428920BC1C60C08ECD8EB86AEF841364B00168456006B406FE14F1D4F338B142CFC 42BA7DDCCC92233212EC5B35E205372291B4FCA126E5FE8F6D4C8A37017DE0463D7261E98813E5 8B1FBF38993879ED183A30C569DB75D9644B0C6D237F76D760C3D77C7569FF8A1CCD752AD9FC87 3078022F6A3B1D749DB363097597C2CEF08CF19BBBBA4DC2AEEAC4312E9851639DF6FA9E2893B4 3366E631AC15951644702A58B7FF164C8D4137052A3CE699438B9B5FE2228DFD6B0931C6149B18 6B9F57F9D780BAA7835331B10EC5D837B9257044B3CCF8AE4590B23796C7A712C6F188E20DFA22 1ADDDC895EBEF28DDC6FE7C1086AB26B878DA3A1ABEF1E7EAD344CD7CBFA752F7C274E8E9C970D 744186961EE5717BD0F50B67144FD576F6B668CA608436053ECBE116CDE462509A48DA90D66105 ADE07641CCE083FDD6F161CDD59145E8514CC0BF34FB77B657A287EFF963E63DE600FB15BA6A17 87E63D3208F5BB859E650092902715185D69A11C6F73DE088D60DBBB98E70ED4B7C5D4CA9B2AAB BA91E81E20CBF4716D603416B399B856C46729D4AA83330CB528859DC68CD028CAEBF9FBBCCB5D 50CCF2D3323000855669842544A61CA55FC4209AF3D6187100C47F2681D3BB823F09D3DEDDFD89 C87B17BE0B0A0D14E75370C6D2CAB809BBE932E6718945D6933EBB8A24FD507906BC651216119E CEC5B916BCA6459AED96417AEEEFEBC4E71D76DC5B17A37B8945A83946E64B21AF0D42282B0E25 A3DDC555E709C80C5C8CDC5E1AD62B89A7CC1E1AEC962FEED653010E2FEF56EB5A14F810AEFE27 16F0A27E7EDC63A7D2E1C6AD410E22E35C8C923EFC2554355092DDA8113F6D9D5B5BEF54C824A5 1D7F5CA2CCD4321F9C3A6EC8320F9A577610C902B70B6B0EE5BD381D9A7C6B722BB55EA06DFB77 DCFE84A0397C8FB3BA4917521A88B43F9F12F81571C39ABE049D54405B96D0BBFFFDEDD0E90C3D D6B26D82D797C6B31B7FEC4BB0B51B2E8357C5CA8A6181536CC13498F7EF383B98281756F3D25D 6961D477191F00452FE9EBAB94EFCE0C958A415B7A8B0AEF3F072A3DAC3B6F1BC974CE0DC92A08 00EF65EDABF91DDCE2931A6B6CDB9B46E106EEBB1017E487E4AC078243A8441422FD61BE99A8F1 022CA7C9B86AC24E4101F46614E20749FA065C9F9EF8AB8D45DCB5632F7E5579A4EB5C44588E0E AB91E0FA25868A585ED5364804118B2EEADD52301644AB6AF821BD6E5A78E3BD4701D7211B4929 1EB22DA0301F61F69379F1319ECF14C6ADCF574657B6BA459E6FE012A1C6CF198250A7A9BBA055 06215E6558DEC8CFAF5F342975B444F98782CC674EF5E03DFDF803C5645F303E229448E57E3891 37A4703A784AE802B6D730C82E7A5981DC29B586174FB22E854CBBE4C359D27BEAAA684866AECC 6F33F9C1E0CDB2F97E32F7DE1C74CBE941D21EBB079CCAD9F45BB6C976331CCB1AE84BD12DDD0C 0245E24C556BD9DF805DDEAB76BB5B82A148CDFB8C17F97B70114107A41812EE10D16366444BFF E6EC7BB9FE286ACF78FC1C50369FA2E0E9BB26BEBD3112F8715651DDC05482809C0348B8834AD5 F8594197582B9FA1318E4908A108A08BF0163B419D0B20BEC4402E2B1E96F18552DD6FE45B9759 FCB8EE6A64B9D901173B3BB5D36EA3074C8065D37A7B0E01884A59841C5C208D924D8436AE36B5 F7EE7EBBD690EAB5AE9897B43B6F46549B6B41CFC6A5EFEB53A6E1EF8D9DF28E78D3186158D4D6 1C10AAB0C85FB5A9CC43535D2E458090AA80AA75F39B0AD1C02E3C103269E8A40E60832AA2B160 B78BF08BF2DB06C8D55C768055DB5F52D1F24A2599EF1F412DB23121BC8BABC1933CD43B0A5908 77246FD36AB18D0F0452325E5F1FD495499C754D3EFD68D948DE856774E476660F91577FA68756 CF17936C23246504495C072341C8AF8E7E4BAA8A5D7CAD373D9599F52A4D88C2F5DEB65A2B9C5B 6914C569F8CFF9164725C261EEC2AAE3C88A26BFE1B6327DF1EEF827562BBF37E8106729B5CCCF C0F1011864574E4D0E5B3CEA70B562F03BDDA49B107521F192D36ABC6ADA755456175EC9ABBBE1 E550C412239EC97662338E92253BBFC7D142570A6F22E212C8DECAC66B4AAAD9DF4BB681BCA16B 29B7FA623C47FF37905F923C0143AE479FADC0E27E8FA15B461509D847F02876975C6B3B33F490 A4820F9C43D3F0115C6157211CFF4B13696BE005FD45481C9E496B078389E01815B78C9402841C 45B721355653E4B64C5F226D114DC02ACCDE11E588DF5A7889B8670F1C9F40A5DB89A7C8E901A2 8EBFD43B24A5DB9B2F864C6A45F9DD7DA926DA86DBE5E2EC9FA04004862A5903F6A5F372303738 B42D7FC4A35941157DB85F26C8D11099545E57B0AAA49DE793C778B8E75F45CF566B54BD1DDD7D 17E3621418F09A96A4EA2D20AE83D88E45C0B083E0CB9F3D5FB7D704581BE82E3D242B3EA6A7A9 29B3B8AF7F5D20CD8303E7EE1CDD637E3DBDFA0B876A2E7B7106AB66779F1ECE9AB75E4C2083C7 C97B246EF9B67937CFE4DA2FD95A5E12D019AEB10A8B1F609F2426F53CE3A6573B8A13392D762B B2A97FF2B9ACD94ACBEA9A46D6F0F2C464145BC6AC740A19DCE03904FB928F29053493D4CA10E1 351458BCE3B003C4BD38C891559E363DB4F6189F4925E314F77E7900DB5285C87EF4E2C55B9A12 CBDA6762604F98B6D2209BC928DDDA85C5B5AB12876AE7D6864E8A242EB1251D6FD05F8F088A80 FCF304F598F9FB6AD997C8A5481BF577FA4F61B2B742FAF0BC932E886A961B060E6320C3D49D62 7C04EB0295A7DF9F8AF5F2BA6FB64AB76F685781460B35B7C510E3867DC0DC41179A1E8BC5BDB9 5DC54721AA06B8C2119A8617674BD10F0687B07D56DFD63AAD41DF660F600DFCD91DC80645C4F1 3FAA4A6C4B240863F6508A81EDF8B867C948EB7D3A7753A4731AF75F0C05DE4680CE216E04C8FC 49BC1CF193589EA6A33C25BC5B7155D4E34A43B49A8C37733AFDD714774E9E70FC22B40D6C9192 D073E2E9731FA2B80ADE7D40ADC5FE1ACC52952159137FA5B30A7EA95C39A5B6CA9F6F1B3598B2 90EC820457E11DB827E3D458C2E682BC1FB6B5E74817246B4FB47DF7DE1CDB835A849078BF71A9 7711EB1F74791E797B3E73FCDAB725C5898D5188BAE77432AC20087EF62211EAFBA46B91B295E0 8FD9D4C98C1331E4A1D7206A60F03EFD2E8925ACD1082FDDA8B2B6980B960C9D03BC754AB0FFF3 EB6E92F8A6D41954CCC7A6598CCA897057141F0ADDFED6F802994D00EFC0771E4B5CC79CED9844 E2CF890AC9F70AA4567102ABCC67C084AB818076D3134089E623CDB5CEF16E6AC89A1EC34BBC2D ACF87E3D7EDBC5A2FE1774FE6B5BB78FC53425D364919E8F086D07ED1ECA919F003A1C5C05B914 02086AC63F3546A34F2F99C88140F4C51096B72169B413043C366BA7BA2E5D1DE570FC1EC6CBDF 03658EE0AB3C1144FE15F8E89FF354E00261483F366BBA154DAF5E6D910F1D40F7DB4BBCF8D82F 4BEAB925EA8B0F5761B1517A2BFDD400E6B6B9605034688A7148596AA8F25B97772979B49AF56D 28B10146125B19AFC56881CA4BD579D649D104CF443E94B186FBFA0F29538D8AAC4EA3C1774A7A 64226D033869F1D821E98B9C9C1393FF35EC9A962BB8BFD3D8D062C086234D6F14D9AE028C2957 5114905FA35B368C44BFA14DE4E73A4D6C1A119B79A6E3EBB915C9D48D3FAEC3EF31B7AE39217A 21B66FBA853E750000D395A9BE87E78CD91F390C5919766CF31E45EFE678577ADB5931CF5553AF 54F9A0E9BE0428EACD715F7D20C3D75D20810C4C0D96BB10C14B557C201B954841501341827C1A 30DA27C34A5A4CAEAFF4A3ABA566249EB82BFB367EF41635B2E27133C0BC4BF6EE280401B00B48 87EE78B50E524A9526E442E2EB566F3ACABF1C60C65F60075C434367C67DA4AE42B1462BBB0AE3 9C83123BEB32327FA66C18409CAEA447B8F504FBFB2CA2EB0448691CBC3C1826AD55697611E310 BA84B3133D1240BA430B08010BBB0DD02A84FECA352324CBCC9AE188CD9213C2D513745D868C4A 6A0C995D7B455034DDC41A8ED06752805DE487375C69DD746D7F8940101EA49871A4B28AD792A5 69E76930C32568A9ECA82892B44E111ED0806BDFFF59EDD79B5BB11F82CB7EA201524E6D6D8343 C3EF568F33A450F8A25128218CEB810B4D4566547F2F0A0640D7F4C8623945E5755BB7B6B48272 96AF202D9F4B17A2B4CD03D961B5728C04E275E037E49FE8A29A89972D0061055357A40DFB5019 D0959C44E231D6AB8C6FCC8E24F5291E4B9C082AB5F7D58CCF25 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsunr25 %!PS-AdobeFont-1.1: LucidaSansUnicode25 0.9 %%CreationDate: 1994 Jun 04 10:42:59 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (0.9) readonly def /Notice ((c) 1993 Bigelow & Holmes Inc. Pat. Des. 289,420. All rights reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All rights reserved.) readonly def /FullName (Lucida Sans Unicode 25) readonly def /FamilyName (LucidaSansUnicode) readonly def /Weight (Normal) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSansUnicode25 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 161 /25a1 put dup 202 /25ca put dup 203 /25cb put dup 230 /25e6 put readonly def /FontBBox{-26 -236 1026 815}readonly def %/UniqueID 5054525 def currentdict end currentfile eexec 8A630409A330FC5FE1ED7CD3C975467DE475D113569CAA8B923FA3C5A4A5DBA1B426534896777D FEC0CD780FDE4F4A4B37CBF69BAFE9D7B1674F09E7B60ECB1F741B6EDD9AF78B9450C77EB98488 7838A9B1EFEC7714CB963DC0D2D7FC90DF439E7B2FD67B771E742DC7E7DB927415569E8F7DC363 784A57FC7AC7182B65E2B2B985E0344DA414383767D69F0072B82FF65429A625F418B9554E3934 A06F03727E3C9839A4E576E2351D0253B74FAC9084AF6E67133A5537926A8C80589A37F8ADA04B 5C2AC1126AA5CCBF23226508D011D14D13C6FFAC13BC42FFC82A696C06889B21F1453BDA33C3AC FF81DDCE02738FAE387DF215DFF6FF74471B4EB78EA8C9F24AD655490C27E6059414A56A52A9FA E82AC778F1210142A0F9051E5AE4B9E361B1FB91CA17F95CE918651919C7A235BECD1E676D582D 643C13D5912E896FAC77994450E36EB321BDB157BC6DB7FBD0EE4B0C1A420C2645ED9595D2D21E F387557875DF6A9D774DAF42CA703FAA6377C62B435A83666621A7C4E578421D8C68899952954B E992C6F613EC3AF8C2F4EC93A4AC5D7860448117BA2B6A968239B7DCC4036B4B1FBAECC17CAB89 BAAAC5D4362C3CE32E00409A6AB9B231767C1A27514E9AAD74C32EB9F6C0DBB6F839A28BCBF862 D183D1247828DA457DAC59A0CC0CA4153457F0DF3B5D6FCC06BCBB0B5919DA74CEB11DDF706F15 B342B26D610DA0137ADF11F3BDDB3189C9DA0F0E870986F86C61CCE3AE60F771B65DD2E920BD6A 5094FD2A12AB3A59052BAF45248C006D431F5B04C9071F925A7F52C1271E7FD3A7F9B60FAFAD56 8D8CEA6BE39066D98313C932A77140F1658FAD3B32F7418CA0FDF48BDF17F3AE6F095D34C707C4 9F50C3DFC3148BEB942A63A5619B94218BA5C1F63F66ADE29E1396CCF7CF7CA97788D73D4671D7 BB0CAE1B8E13CE410F2172B2445CFEC734F53A6EF3D3412C37908D22E3E80C817EAC0955CE2752 E9B2327A08895A254ED18976E194E85CFF852770A56665EBAC4EAF1F6808F6288AA2776F813D6D F089F25B21698D10A5C00522210F606F890760441B0871F31A4C0718527B68541A0314D67354BB 834F4FCD365DB2379468671DF697122B66E999BBA6B2A5A6D95E26FEB0E6AA3B4590D5B0C8F4F7 AF1CB7FDB904F10E8817F7045238C813053CB2096EE5DAC923CC9AB2DB9FAE17B2BA08CA49DB7D 71ED0072A402793C51EE08DC09FC9C27F2E15254CCF9FEDB998F0E3B12C60BAE7CBC550A59BEF7 CDE1159E1D6FA72E0026BE03299D851776F57069E9178CA0C53CBF939792BCA7CE52A3A90CA729 91180F917F1E21FFDC2E306595ECD95BE6323E539FC73511C7FE237C873A60B4B4E06C49C39C1C D1CEB9EDAB2891F30BBE64EE95C27487325C07F8F83B2C0CF8B394C3D0ADA55E4B4541A917B23C 6181480F95544F2DBCE9F22F40DC467F300234CCBFD55A919A7B4D7EF74D0C60E83F2627BD5471 97A31EF7AB8E8C27A2EC8CC90B846212BB79CFBA9DD702DD627CFB9FABF73790BBF5AA82450017 4E144A95706851EA88D454A80554853D7EDA089C97BD99805AD58EA333836351E1A6FFBF3F270E E36B9A8A5C98FB53B9B77AF49F3330416708C3F8C9623899CAA72E8812C963AFB98FBDB4596F18 32EE5FF6F6AC53B618EFDA664A090C1778C5D340CC2425184EF1AF9C6A7BC52167584CF057F737 006496131A33D19C40B00B4A728904CCF6669F1AC17E354B71B9D6BFB322CFC1DD2E3D66C97FA5 7886ED6A5455AB1AE8D51393C52D017C5586EB16FAD517AA4F76B7F0E3913C235A5986A767FDBD BF04B397E7150F9CB9EE84BC53E65CEF2E4CF91C0C819D7A4860E35092E3EBF647B323331C5497 A980FA0E95D21A0AB2D89ABF677FBBBE1811983D6BE163609EFA447878A6B9ED22479CEF8C9D19 E8683D22DDA81461371B0D4A2F993B9ED149E14BBACAD0AED92C0B180E46DBB02F8F658A470ABB 3688C09C52006DE3A6264E0F33E92B1C6F69FE0148CB284DF2283638D396E5F8C8C7FB2A531350 F49ED6E90498D2C30B6D48BE680B04C6CBAF4B2F92347AE886270B5753D12FE54A8CB0EA003022 0143DA37757BCB85E0664D61384FAB84DDDA0468702C397BA2A52098181BCC26ECF597DE542CB8 B1A0F199032BA329EF8185D97C9B536BEBDB7A9588D9EE830804F0245FF142D4BCBFA74E1D2AC6 BFB24ADE82B947BFCF2AE083638301E0D52D0838548B9B935B52BC5F3B2FD8AEDA7AC6A0F44803 0CB7E258BDA85320A3D6D3EACB188956D3FC231708134DE6EBE2A296EB0F07AF58E5FC366472B5 03FA40D0156FCA4320BC906DB75250AF4C55B9DF5410EF3ED0DE8A7DAA82A8762F456BBF97BC78 3849A1C9E1E9A7EF154084EDFB53FAB120D5F4A68AD4D83442E7F6ED51F251793E1F5D7504C874 388E61CA7F9120C55228EBE6EE837BA371361407776E82796F5CAE390FB05E2FF92984F15170EB 89296050D3B5CA30D0ADCD59B9D666643FB69C43B2818F03F0BF529A5E68FD043DB7DEE7EA3C34 0FDAF3598037C8C0F8657F16EAD01930DFB8A633572D6DAC96CC22EABF4361A4EA443E55102E45 C2A7443BC2DB4883B1BFAA58343FAAA48E347109B9F5D306E450E0423320763CAC8F4B48177C85 11F6703A383803215E520AF7CA6C449C4906FCE3695117888844DEA4A505372010A0E130FDF705 A37E1DBC59691D785D37D40E737AC708881A603BC0D97730526138BF428D951AA75579D159E612 F847418C23DD120FBAB2CBBFEDF9BC3B972CD59132C313D84F5CE45B0740BA7ED8086165203068 689FE81C9CB701D205C815A8E4BF2C341D264017ED02602ACD5F6576CA7606E51B3EB22CF7AFCC 3C466B69801149AF48A8E012CC75559041B984640EC5F8043A14D70ED3AF1AF7395213E13AA79E A3BFE238CDA1C40BCD49A006252ABC5B19EFDD78BCDB02987FAE 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsi %!PS-AdobeFont-1.1: LucidaSans-Italic 1.001 %%CreationDate: 1993 Aug 11 21:10:09 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (1.001) readonly def /Notice ((c) 1992 Bigelow & Holmes Inc. Pat. Des. 289,421. All rights reserved.) readonly def /Notice ((c) 1992 by Y&Y Inc. All Rights Reserved.) readonly def /FullName (Lucida Sans Italic) readonly def /FamilyName (LucidaSans) readonly def /Weight (Normal) readonly def /ItalicAngle -11.3 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSans-Italic 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 54 /Aditi put dup 39 /Alessio put dup 41 /Ali put dup 43 /Alois put dup 173 /Ammar put dup 47 /Andre put dup 49 /Andrzej put dup 51 /Angelika put dup 53 /Anton put dup 55 /Ari put dup 33 /Arne put dup 59 /Art put dup 61 /Ayman put dup 63 /Barry put dup 65 /Bent put dup 67 /Blair put dup 69 /Bonnie put dup 71 /Brian put dup 73 /Burkhard put dup 75 /Castor put dup 77 /Charles put dup 79 /Chi put dup 81 /Christian put dup 83 /Christoph put dup 85 /Chuck put dup 87 /Clovis put dup 96 /Curt put dup 89 /Cyrus put dup 234 /Glen put dup 189 /Heinz put dup 56 /Jacqueline put dup 57 /Jagannatha put dup 58 /Jan put dup 60 /Jason put dup 32 /Jeff put dup 62 /Jerzy put dup 34 /Jim put dup 64 /Jiri put dup 36 /Joe put dup 66 /Joel put dup 38 /Johan put dup 68 /John put dup 40 /Johnnie put dup 70 /Jon put dup 42 /Jonas put dup 72 /Jonathan put dup 44 /Jorgen put dup 74 /Jose put dup 46 /Josh put dup 76 /Juan put dup 48 /Justin put dup 78 /Kamal put dup 50 /Karl put dup 80 /Karlheinz put dup 52 /Kaspar put dup 82 /Kees put dup 84 /Keith put dup 86 /Kenchi put dup 88 /Kettleson put dup 90 /Kieran put dup 92 /Koen put dup 98 /Lalu put dup 100 /Leon put dup 102 /Louis put dup 104 /Luc put dup 106 /Lunjin put dup 110 /Malka put dup 112 /Manuel put dup 108 /Marcy put dup 114 /Mariusz put dup 116 /Martin put dup 118 /Masahiro put dup 120 /Matt put dup 122 /Maurizio put dup 126 /Michael put dup 177 /Murad put dup 91 /Robert put dup 93 /Robin put dup 95 /Rod put dup 97 /Roger put dup 99 /Ron put dup 101 /Rudi put dup 103 /Russell put dup 105 /Sam put dup 107 /Sami put dup 109 /Sanjay put dup 111 /Saroj put dup 113 /Saul put dup 115 /Saulius put dup 117 /Scott put dup 119 /Sean put dup 121 /Sebastian put dup 215 /Wilfred put dup 45 /Will put readonly def /FontBBox{-250 -211 1099 967}readonly def %/UniqueID 5029007 def currentdict end currentfile eexec AE40F8585C2492B57FC8C19373E315912C0135F3613C38B98FEFD06419749A2EF936D049568E91 2C3B4814601E6F1C68E63168C5EFE4A12F1C972A88E59D27C31A2A9C0BA365B6FE3266DE7CD0F1 1D5F0698C11E8C1D4F1056410F924EFF7F265CD09F63373FFF21407562BFA055B1BFA359C5890A 384338F55437BCB13EF47EA2FEB34874DAE99A2A8CDF087F076588CEF4F5F52D27F99CA2FCACC3 B00B2DAB26EBD6CCED97C1076E2E38C1C7179AF884D34E5981F3B13BFBED7B35D318515DCB2A38 02E5402628ABCA3D4BC1F4808D32312ACCEBEC95EEAC23DBDFC3788D91B5D781933BA1E7A9E7BF 693D5DA7A9281F1C6A7C34E8D6A8145895DE4B6AFA59BC2F66198E226DC29A066BA02F4739FEF4 FC344E81EDB55226B5E16AF7282FAE761F3D9F253D76D6442D5CC7CA3043F7B37D5A34A905ADAF 242097EEDA53782431445078C0B35090520B01B437F01D891573DF402A427CECEC5386F1603BEF 05EEB7DD5FB545BE8042FDC2656F47C7ABD12DF9DBA59693E4F9A554FE067AD8157D2BF1EFB7B9 1C54F92B27DB8FE4AF1572A8E3131A5FC251FC8F3D5918C30B18337CF3CEB9AAC264E467F9C4E1 3BDF64763DF9650B0F6A3FF6092F2241B1DD69076E3878B875564E5EA253BBA208DEAF32B48D82 CA70B0D8FE5181B29362D1603FCD82116B2FCC77931D0E121CDC23CA762E8C9EF47EF6780EC5AB D9CB39BF6BA8F4D191F9AAB5965691C4346624EF1559E151378A8EC69A126FE29F5BFEF6162653 B55AA546E4779E7E60288C059D2DD6FAE507F6E01DB910D52D10EEA2762D59A01C2F1FA458466C 07AA5A0980968990E18D71F0AA71BBD17CEEAFF025A16913D1BA4D5974D6258BA0D1F934656B65 19A3AD2375DA469B27BC108F919BE01C833BB6CC59AFFA34F976382579EC5253B4610F9143318C 050160C7002E29656B29874C5BC27700C912C7B00C1F62458775BEAF10C5A2858456FD04C5B6E5 B790085D9F584195CC9BE74E7DEBDC57D5084C3CF8168D7B194D57EED9F72AFE24EB78A7CED489 AB96EE6F2CE148C3C8CBC466AA2B35B36842CB48476D303A7717C4369F803A4FF311D53F1A0044 B5A3B423AB2D6F361D233CED47B79D579DC4BBF97AE7E6849CE72B35CA881B4680F073C4942FB1 04B110CD36C12B7FAFB9F8F03EF419A1A5CFAD1D28F13EF057C795F53737018583F52474008775 5141099E0C46D3A7F65540A05DEFF5A0A1C68096CC39FA13354863897E93F98B98E2C53A693C2D 57AF95936FA23B61A55E26214D5B2337C4488BD6DC93DDA298FD77A80625C917D9D432EC1AE92F DF42E184BCC2400C51465244F338DAD00BF384DC5910AE26F964CBB75F091609E73A3A96D8D07D BBC4DB58148E2064C50B5EBDA56DFDA7679C10EDC505D6816B86241997582D77385E0AFD164AE4 5333A18BC4FB8CF818CEF97158CED9628B78B6C28BE08E747739F924A7CC9C9EC72FD12FD5BCF3 2D200E0FAF7D7C8F007C84EB868C2118F0A159DF0435C4F9E432F5F7DB3766CEB23939415E3709 B1E5E14996C0B7123EC993739ACBCF6B28BE7628D11843B2AAD85AED50C9D82B5151EABE73505F 3A1C103B7F02C0429A32F3376C13863C347BC07472F6CB82B39EA37525A46B95F9387E654F8076 EEFDB79193E97C16A69EF102ED96F180F44586ECB46F45611BB4FA173B4C8DE27E2C4AC2BD3E91 8441E44FF42D13F9C119778806FFE56B8ACBDD4537C981571639C5D9D5522C822DE5F29B426B83 74E02DE01D2A2B30281676D4593C5356214C5C6D3FC679395E0A838A447B2BC803218F97AA6C92 EE62D3600680CC93187A2D8DC3D7616F4928CBC3E8C42BC5536D00A0F1D3FB114EEB9DA1B5FD89 50EF78BB34E7AAAAC3AD105D960B3AA743CB487AE7D000E14C5BD14A2250AF406174ADF67A0BE6 7D62771A8D6283F574F314FCE1FB41B80275B825066BF711A982E58E8F34657DB15E29B20B5EEF 6EE8ED0BAB63458DAAB556CFFE712851DA37303784F656309ECAAA93185643264ED4B7B6E05829 67E94B9311A2636F0D6F18BF83E5FE28C81DADA7046E5D485B6A9754F679F2851C5C3F4071153F C25F09DB849C09E9CC34A96E0DDE7BF692895D4B6678A1FBA8DF90522086D5C64715DE5FC26F16 B954EDB7C3A0A72F1278341A1018286562228E2EEA26EE8EE340CB332B43CA68C65A2D57FEB45D 0BF8EC6092219E7EF9CC649834D297EAF3B5FB00F2F83399311AC5FABC8761A13575B0C4D917BA 0AA75C78AC3AB78AFC746CFD5FEB2B91073F2FD8D4C2A3A490C94BED5131622DA474A860B312AC 4675661BDF91D076228D148270253325F12147C5A7FB25FAD15732E43004A70F095EE3AD448D9E 336CF44C4D55CFC772C92E15CEEC2F56A002A6E1670ABBB074DBE0CA55BE5D1FE65F5A9FF90E1A F4A4B5455B9F3A82502C4D860468B7E7E91A77FC043C44E19211A96D8EDDEDE29FAAF156AF6C71 CA2D0D26A7AA68A2A0864BC236E3B410485D7CF2A51C3FD22A147E3E44E723CCE629A3E67F5321 6BF328C2BE130CF9C05260E4E5FBE73D9C2032BEA5AEE7B0ABCFD2F6D9874B77D3B61AFDB4B300 55A0033C9EC86962E50CEF67EDEEA31C093B3A429D9AC37D58056FB739B64FD22BEAF7955D1A12 4E1F5F81C2FCDD89432C15ED61285B1D300C10714167D1D4DF9C7B0646BD825805B7E6F21ED4A2 06974B556EE6306C84FCB475F4F242C440A41B67B543BFCC178DEF4E58B739ADF0E14D4D0137B4 F48BC39918599A70DF1F0DE49F6527D25ED35B5901B2EACB584E8F29DE5CCE15AC1E31D4A14F43 CB2BE1150D22AD419EED486AABCEAC25F01BFDFDBAE2E3E4C899B3291897A638B4420960CF7AC2 F08236D1D7747AF87A207081CACBF00A0994C2F98EB90AA3F4211EEED6A0425C6BC0CA31DBC6C9 DE03E02A5AA192F0187C822AE022AB776CB891E95BB90BB89C07D34A38911A34BA591D78B7DE83 6BDC01BA45F0A66D735E317B06AF7EE6E817E98FB776EBEAEE6B8AD56FF5DE1134B7EF55D87F21 057F1248CD06932F6DC349D2E9B1DE0B81E300625E370770C548B89FDA0AA4F8B7373426A4C8BC 200F54CF2A587DD11ECF76E2E324591FCA3817DAA9B3FE117C826F5B53F24C722F766F73903C58 A81A2067F7A3E8544B64E26BFBAA0AF6FB10EE8D4E99C49CAB1B397E0AFFA566B007330EE54DAB AF0C044E8FF8CBCFBD70A372C5050F02AAEE6E2A648771A199A8290BAF6ED4AD485DACFA5A4937 CCCA8B4D03FE96D7CBC7C60E6E95B53BDA2597C66168D3564D1BC6617033688510AAE0F6DBB16E 192CBE34F5E0364233AD2A2D0043703A48EE02E2B4576645BEAF3D44622983407461F2E700F3DD 51DD10BF742D645F22700223960637361E88D79EA8EC0084F5F20D0BA3EB94A7B5EEDDE499A39C 1D621945DFB5937A31BEEDB0E2DE8395EAEEEC4A912825EE2D30E06A351862C9F02711D38F63C7 4BAD03D267BCA956F029F2BD396A577000AAB31B00B004D7DD5F6102D7FE0BB8443AD768BD6051 CBB0F6C74FE866A2628789EB0E2044F2EA6F0D1686BCF0BB7F245AA757A20EFD93268FC1E140DA 35E759443BFEB681CA8B10244B4E395F3E9A151A5A3D74293E5EC0A2C2D2DF37132705FED78742 8C5E876F567D1CB77F7338F70B3FE5AD1F7D9D6AE6AEDED983B638C5B1F6284BBB8911387C2CBE 51B92657EC57F3F28F9F71BFE582DE883F2F24A3E1BE90D5DB001E7B69968AA2B8564940A2B3C8 3EECE73D1DF1A51672429FC169488D329D8AE41E0D7E557F6678C6E36EB1877DA3B7AAB89EDDF1 54AF743BB2FB8F4EA0AF7E8761F3EEF6794FE66A5494E74F7428EC2D47149F05B8E3CC934C46B3 8739D1BEA64A39C4AF8CC42187FAE682546468FE3C68521D074555FE83FB96B018489EB12C7437 9EB97E53BE86318E53494DA7F214B9EEF02B1843DEE3D3B7FD4F94986F310FAAD236BF55E7137F 8B35712AD6C103FFC59F05AC12629D2CB39940395C9683B49D80D0548A17D45A422F9BC0F02112 DE3AB03E5CC55DF670637BE7E4F0ECEC9B324CC26C16DA89550D80C609134B14E9C5575662A309 783794C673B64C3C62932C64D9D9F560CCBDB7BB6DDB1A0D67A6C1D09AB7BD60348F91107F65A1 3EC3149656CDA201356CC2AEB313A97E203C8037C9D5C5A70A50DBEB91E8E4B54EF9BF8DCCC033 23F8AAE82CB2B60737C52832DA384B02AD2A1D80EEB88AB6ACED1B44AE582B9CAB881E44AF4392 D29F81A30B430463A0D48D26ADD6D7896EADE1C0E82DA83E28F414BB24086566EBA2BAFF475CFA 123D905A8A307E135DAAC8735B833005EE356EE627C6B3544DFED3D62F25E88429C244288ECB83 6733096E71F85E602FB5A77E7807381D0F3805E29716B21D21AFA3BDE43C3EAE43D33082F2F14F 72CABDFA02022D3146A2AB88719998C6EF1984A5891EA63E47C995F5C484D8F3854A79AF856F57 54E9DBBE35668176F67FB1ACB5238423D2E1396E7A4241574033C78F342D11F97D8CA238312129 0D467F2A371BA35E52024740F82CD91A23525EF0597B06A1CE57C7D568B25A96EA0E62756F5E07 1A63F9D2C22E1C3806B2F150A57E5ECAF61A999E3573E613F94591FC4B0B8F4BDBC7D2619E800D A2CD525EA0B722CC25C26C740265774CAB6C3CF110C6A1C7BB9F0A2EA2D03CC8C483DFBBEEE0AE 831A31706F790C0F695B926C89081ED62B5D5E1F02F405DC455751D87BF06CC05147D56CDB03E2 16E4EF39CA3E976F786DEDB9CB0FFC98E3B115E4BFF4BD63C2BF6D577971ED3FD5525448558DCF C4D40E681C9FBBD650712C69FA78EEDFF970ABA0BDB69E33A8DDF3A08BC0E4DB8909A2DDB35096 4FA94F03284532ACE8C62E8E0C5FC06EF66266944FBE4C6C239CB66A4445BF6E50E1221F8C9BA3 2F11E198D306F31DFF8C9CAA5AEEAAB08B30F0ECBCE3CC3329AA58B1F165F151362BE3646EF3BE 6120E2B618135127192D4CBC77CBD03A83F6717133B61DA06E2118AEF126FCEDA71A426B6801C6 C70AE8192EA70C6276EE360B9D89388C37D075644A5009E4450B3E6F88697DE0C0A2E6A1FE58A0 72422BD671FA241FE11788AE83F63AF4114D06702D251FEC634E562CE367948521FBA53344D5D6 18B0A9A2C5E013F8C790BD5DE8AD289DE859768CB488D06F45DB114FE12B2BA3FCD88099F955CE 2A3ED377192307CECB2E7227DB751776DAA54BA17F5E7137E1AA1F1B6DFFE782F715FF29E0C370 76BFF950438DC7B7222A67238157D769C27F48CD9E39AFC1B0AAE6E670E20E982506FA564ACD52 9D108F72E9A615C61907F00F6DC9B3FED3D99380B99242A53027A154891DB04C3ED328DC4B188D 9080BDB06D9513098D1C8A69D844320CD494DA7DCA8FE6B008D0DF6B3121599E951AE22A9EE37F DEA7A4092509F1743505DAD2B07E1DAB21D84038115C10B5EACCC9C96C62A111AEA09B3259BDA6 20202DED8FC1BBE20A8CB09E7C77055A9D0BD7D5F39B8F065B290900603EA23896CE2E7438E6CF 63BB8435EFA37FA35A2588519FC79533D3A1C1B376EC7BBE92388C3F3248C5239C4D21730DBAD6 65A7785867BB355EDAC969FED613A52354E97501D56909BAFA0F87258B068CAF0907464B498861 1D3E7E80E645F7AEA5DCBA04CE122C7A47007A73E725DE31C475A57988CE41BE7D1FE972A589F8 D9CDE0977492E07457698B8E9E184A70EE761583058AC50884A880936F001D53D182CF9605E588 92910AB45E3C752B6D266CAF22397BAFF1591976B6DEA208495EF675876E92ACFBEC1887245048 30F05659B2E73E8E049647F4F28F529684085CB30EE66FA5929774E49C15875493F661B77F0C4D 6391EFE5A0D384BFCB2FC1820130E2E519C3715CFF2AC4B8A74E81C368C55FB5782ADB9BF9644E 2FD416320DD3C6CBEC64A992B3FB79991E62F129D5187763E7C7D8473F963F43F0D70A8EB508B4 970A1572835201AE91F48B7FC35D0D12E7015CBD6DE0677D715E0BF94F1F9D3242F8600EB2B4A9 590BA94CE6D342D9342057E69E0B71175B475F9F9FC8CDF962690867B6B962989D94B7CE670CFE 23D28E1197AD6C118DAE3CA2BF62FFBF5A6D03C7E1D85199908F9DAB1709E1A3FA4C1D18535AE9 5306E0641C9C328886C72C91B49B498202C8B72EDD5C7F5DDF178584A24E6A89DC9EF5437EBED1 CFD46ACFAB9678F27F4BB80279CDB62D9A23761E70ACF40ABEB38BB3242FBC012B8AD563073BC3 240C6AE167A56B084DABE9096EF07C38BA3E6D380E2A1D1CDED670305CF0EA1D070E5FB8574D30 8598EEBFB0C6FC907E25108902BBAD331F177EC95717078B97EDFF258F55793FAB9EDDC508FFC4 719F491D791F5D8487FD5A31992A1E6E4DF7C82AA1BEF383C2F74ED7163AB6DE334D48A11520BE 2B47FA5C0B07FCEE735F63CCAA25507A78971012EC943DC2D1607B3F44DE13882DF23070BC066F F74646DF196E1688D7350D7672F93691FD5950AD7ECE2FBD6D4B1CD777C88DFFCB90B57F9C829B A0C9F061F7DCC650CEA49D70B440B84276E432FE47D7D4D67C241F8097469638E4F5076A65FF5A 15FBE8690B4F6788E843753F6D961043BD8C7908EC2A2EB795AD2955DDB8CD9B6A8BCB3C2BC673 0A24CBCC79F15D44A6AD0CA0856E661EB07890BD79E93FCAF93AF80BD1BDF915B799C9118DE981 496A963B4A9498E11893F19446FD9AAE7E4B4FACA51601F5C54D46E7DA49750FE88F420E9D7325 DEB5A6B091469240AD0DB4537A46E71595FF598BDE54972860305F59F593CBCB7B0B26130CCE19 E0B553E8D52B1953AA0E463D49A01B3B2B588044D423418A58665DC05B5AAFC47E264985934F03 C358035E5E4DADDE030060BC07E7F0526FBEEE7FBD26CA50111E8BE27FC021214AA7BC8518E51D 93934E23270DBEED1246F623EF50C9B12A3A79FD2425DDAA17B4375FBC51A1FD8A7A456441C5F5 C8DCE1A112C00058434E3250B841ACCFFFE4EE5CE4E8DCAD1DA76C39CA24EEF79A2297B70D6AEC 75B3179FBFA7A4D90B4522A0F4243D14FFBD028961211739790B55947C4DC63F0DB959A3AFC7C5 65D672D80422330AAB64D51993BCD2A34FDD8B1848F5C400BF5236188C683BCFE47412108B59EF 41B7465B020FFA6A9BE53269B4F8AB5FE2A9373C3AC12A740EFD72228AC156A999C6079687FE52 19BA162C917DE80869339BC76A9D7DEF6224AAB13F1E17BB4FBE9722B94DC84256529932A33391 D085A85A4DECAB06978B9166F075B51DACD371F172D428081AE1826645F9A461C257A46BAEC29D D6848025FB7C6F027D67A89EB217AA9879DCE693729D36171F815C3C6967F8DDD4A0EBDCDABA1B AE3C7901A071501004DAA11EBF4E6B20242EB6C4932403A6FBC9C190C8BB789CB3C3F2DB0CEC69 1FA2A1632F625FC6A1E91CDD863CE75338CE56B6F8863D77FC57B211D413F75B2F7C16F5392015 C33B55B49BA91C9EBDD5AECBF97D80FFF1B84488FB259623C858B14BB3D78215185A866576F34A 0E259D58C750992B67B0900001AE2CB8184419C9BEEA52ED099057805F53B7FBAFE7BF2FFCB3F9 7571A88C794B5AF35DF67BCB66CC21536AD69F860DA40C66AA8F6DC6E52A9C0CF052BAB6708EA0 0ACEBE8A2D3FDD21CEE891EE4B905F72845B3BAE8591A20D99EC177C44528F56A09111A498160D 9EFF65D62BDFD201B608B578E9E052EC257CBE33662040ADF68209F5E7876E1BFB861E21405F5D 5D3A2F684C07F20223E26B289CC7256B10D699637E5A15F409ADE71779032310DB5FB5C98CE037 89EAFF598241368500C76315D8E3FBE028F587237B1A4E71BF0B52C181AAE9B88754ABBE054185 A035D118630FF66EB5A48C47949779276B5AC20699F3A33ACB5F9510263670B25A7E3E92666F3C 0EE6AFF2CCC733780A0D98569B4E08254D9D88DEDAC4F50EB1FE9CBF8588E301FED58E36336167 7F47386A37B86186D0A0A4627C2BD0C956DF9C0C9209F3275BCD65869D14B94943DCB3A2FA8B5B D7434CC1265F7CDA7D86300A5E033AD24468ACC1809460A8DC4231B5409909F865C6CAF7A2D998 3BC3ED0BD15585A43C6598D8D3103547170067B51D0638150669DB52C1E371B6391D2311E5265C 6FDF27951111A7524A304E865898634CB768EE72B812A99DFDEBA1C284A0FC95442921B8DC7280 2EF144335923FE114747EB3CF24FC652DA97A25C2C92ACCFDD15E82144500A6BC1B2F79FF4F722 E06450D2E6335839962111DCBDB1094FA2D3E817EABAD4DB131F01E453ED5CCB794316E5D259E2 7A0625D1B5827706503B0F67BF168DEA99FFC9AD1C6CBBBAC271BF0B92745C422F9BA22A2D2F36 A0964C052062EC7AF373244D8A49F60EB8C2881906FCC197BC9510125DC61628C8C1B29BBE00DD 343075F33AD0AEF24F32B0F2EDF873401A60CE8A8B6176ACB9C1A395C8861BA36322DC7DC85796 6C8C77F815477C820716F965B1E1F0AE5129A01DF4507E0E04B5168FA3566AF291F084CB65D0FC E86EDE9EC19EFA7CF75C9749CF4B5BE79083E8FB7508A51C5800D546FB14D4D8B5191C598BA5B4 82E8A0C17F77CE96EDA3179A4A5613C9235758699EF8E2B4682F920A70CEF54FDF59101C5135EC 3FEC9998660F8D9620B755F45A6A9FF807519A5548EE4BB55CBA5FE6D407499AD47707606DDDE6 32D7AD1A58FC63F97357F4F5C63E4622BF4017B0CD757D554390F27123D17494630A756CA2F1A1 A872F8C09BA62F76E5910578DCD4AB4B0DF33F6BF4DB1237EF65E5FA97C593C90728B12FB17407 FD681A44EF78E14918E7B0530705A1B8F27495B3029252DA7A3934F7209D8BA8442FAC0EA0C03D 08623347C4B17B249B91E3FB30FF88DFB190AA14276D7A878D6711BB273FD611E15D13541CEB1B B6B059985449B7A63C8C425A57AF00293AE85AB3FCA9B709FA60C55EB6AAA639EBCEF4847DA4EB F28A235000471D355202F948B24C9283FD0C9C9E3AAF88735E3769B7D60A9410B61C9D62AA5425 9E43AAC9208A794D56886F983EB006ECB5084CDC8295D1EC0F52B12AD4BDDC14E672450D2BB481 420AF2E5836683F31FB7ABEEB5FFE9D5E1AE551D3A6E123ABBB141BF313E5D4ECAF00A12C441AF E36DE60877FDAE8D255DD1F8BB0C0DEBAF10EDAB4CD2C79B4ED1CDE61E57D12B389C541A8A1823 53637D9C1A48CE343C88CB15AC45CC54EE6895C685F89691D09AC4216FDDAD8549D164E8BCF101 1C2D97B3F1DEA3D7C0EE3049860A949D8A558553D5E8FB358C8D2F31A1DF90BAC093E7AB45DCAB 9E9D4A36B5ADE3C696921C3545E6BD29587068B57A79DACD07C50610EEF8D16BF0CDDB6CB0F459 8EE921AE8764247A771F63A3E8F39B072DF066C1229948CCD60B26C2FA9FC8467F09762BCD38BC 3C5A17EBF085DF652CDBC0386E5F8F908C6EEB9E8B35FCF8BF69177FE9002592F93733D3502725 1035E29E2E4A2C17FF86B5E884ECF851CE8D1CF2E667D9F9FA62EA5C29858EE46647F77FEBD6B6 071C827470A97888B53EDF69920EE368044F9DCDEAD7D40D21D44A90C44CEBA90B64D800B6F083 5EB84A3D66BE4F6B1B173B8AF1D0CFE9D11FA65CA2AE847EFEF063BC4400D508C49C220BE19F9B 14A6E76E2D65E54DE811D104FBC001508ED53A71E6965FEB07423F4846BA0F0C70518D2D9377C6 FAB46993572179E9A0D75EA6F67C5B7FEDF1B756C882DF1010549DA4B6519E9CA28C56053BAD1A 9EF5D0428F2CF9355320B70ECFEE125C9B752E2D30C6E259F9A44FD44BB45CE8F66C3AB6C27DC6 E2A8919A2214220E0E5ADCF6C885966647797B9AEDFDDDDA5726F45F407034327F70C388B6EBA3 5227ED48CC572516A3FF067B4F7707DB59CAE2B37663CFBA1E7128B43A2F1BBC209BBA10D71D53 14A31B03E68F68A9A97F32C14205D4E998359039CD08D21B0B4A01FA2CB7FA8B28DB40F23B1301 2D1664F42D084CD6D49588BF294EECB7C2CF18B65106BC49DA160DB79A63A9A7194C9F2F79F2A4 F97EFA10698F291334E8B4F74C9D948F557C25C4FBC798ADA8A53B9B0E6DD4BA50968F5A5707A3 A6428BC7CC56704534463F5031272BB5C08DD6F4033FD1B5E1A395316AD330599EDC4E021EB125 7BF081AC55857A913DFCAF39F66A1ED2289A57AB6CDE8A2F56D11157569484BF6EF26B04C7CA9F C821FC46B9F13CA07AC0D90FAD8AC2866BA8DA0D67B908A01387E54F9F9DDEF25F50A1DD65717A 3533023CE04038271DAC6CB401D3F692266712D3E380970368A34962C60646B12D129745C961F1 F6E17FA854630F7FFA9E030A0C2D6001692E71495AD7492FD65912BBE636050F85DE19D51F2722 E8FEA3C931541C9C370626163C528C1A3C0E587C7275806D08892C2618D0CB66B6AB37EB96EE34 26274E9E4A036C57AE33B1C7D50BC5E2BA42BE0F14D32F02F77375087BEA2D3D44366E13F9CDB2 096459878D802A151789E54C21E09FDC98C6A3567B7F6EF03E7E67228998E1F893ADCD0EE49F95 22FFBA193A8BC1D5A2A43FA75300C4C72A1E388A792586B3716979DB9679BD3779EC4D9F427F18 E4017D87C0B8C44460FE64C1A591875E589CB9A4818341FE9FF1E515F6D510685338514684D90B A40FD68AA77BE2F5D5536772A6232B386CEE391C88D1796CD076A2133474F9B1506B446F61D138 E5CE584D113BDE06EAE89D82F1AF25B78891766CB386332EFC60A57352BC96B42905C0072DDC23 61F20E89BA1DF2EFC1C18FB071CF04396A45293E44FE656A19F3AE3A5635560763D03B6039EAC4 605AC30D4E3B1A68AC6CD68B00D694399B9527F13D81099DA664919A3D15C3E6DEF460134A1736 B1FD53DDBD20C248D0832074C2A22802B7405EB6D33D864D97B78252BEAE3BF9BA5DDFC4CA077D 806289B7ACCCA239E6603C7D2BA41B7DC820F86D1F8530604D7E3F8A1239081D7FBF9FF9C2D9ED 4D672417853364CAF9F010CF08E4E060038A67E70EC743AB7FD3BFD62E7C209B0281F592700E1E CD0B18F65DF4947D24B2D9FA6C645348495864F66008BFE85089E6442856D0DFF9B27648A793B2 22E98EF332692C08FFB08A7AFCF9EE4DC33343F8FC0B2BF5F59EA5FF484EEC4D0903A7DE30447B F6159C922C3691A97C2308CC2B32683A72B3CB14023E76410345781F0949E918D47481630EB60F 891D13EA3AA81DA60DA50E67D0DD63E6823DC1375FC60738B633996A10B16BAC8CBF574732679C B238B9BB0C1507515558A5E1419A17DAF43BEA11E31A9F10AA8DF17DD9BD9EFEC13EF6F6D1B47E CE37F8D45D2817B5CAECBE38D45BDE09604146FDA57CC7E0814AC69558F170A7AC2F8DA6A5C7DF 485C1E16BB96C3E1DA2EBC5D76630A99A007AEB8F680F2A10182EE55A0ECBD17267F6A0E4AB5D5 4E062DDDA4DEE9506528043578853DE1CE8ACDE68938EFFE8283419D9A779BBC39221379BA2767 DE78BFECCEA814269A456AEC28CADA35B7A1F5DF89D57F9FE64B2818EFEDB506B1CBDE22F9E706 54A84DF0C0124124646EBAF633E054D704305B2723EE6848011985DCC11CB1DA81ABEB7CD5450E 31C218B45C3556B7D1DCD47D4BEA4E3FFC5930037B2664ECCFAD1204D8CDD7289BFA1B2F4BC59E B586883A9E8757EBB0525A53EB83996963ED8DF4760CC16B542BB7C60FE6C0F3A18E18B26EFFC6 CB96792CF2C2113E04C8E64335082EDB3FBD78DE0F1D61B55EBABDFD44786416F0AF593379728C FF15973618B201D872628100BA908908A978EF091A126505221F6C52E7096CFCF13710DA707347 308943095A0222411C858DC7BAA314EC1107CF9C7C699EE623981946E79B70177FE70BEEC2624A 928FBAF73B1CC7D65A6E76387EF3812177BA0914BAEBCC99564A2A26710129E23899D8822DF447 06AFECAAD63168BC96BB879D418D3A26C214E4F26E186ED9B645F9023013086767A5276DCE1B81 031D6F08055D5898C6C1DF53CF9695F0B1DDAAB78BB824B2EDCB8D726B2F477289C16AB9E85013 1E1E23221929D95E17F4011D2126D783C1363403D650D426D642AF6928AC7A017E2D36A60CE6E9 7EC189432627B4BB14B94E2F46D4ADA823DFD6093F9ECC8F01FE148E59C11AAA4417EBC801B0C8 D8B380A4922D9AA366BA64BEAC25DE3BB50E5EEFC4E0AA8E8D6E7D664FE249F01058D5CAAA8C3C AAC732A1507B9F84AE531A3F5A6CA32C812EC23E31F3F491F21835F655ADFD42E6387D03C500B1 D924D99572BC8F362BDB56FB6962800DDEBA947659674DB719E4CA9CA2CA8BB36E28CBECFB9EF8 16EC9B0AB6B464B959DFFD30F564E6C7480B72A5BE58B2B1527BF6967F08F929D98378B2D18AB6 2A73010C9FF49CAEF7C76CAA65695F1FEDFCE05A487CBE6CA689F4B095BDBA432E349816190CE4 BD03D7246F73B5A6BCA12E262BCCBA77E25C3A19241202EF50A600D21D16E8CFFA05EBB85E65B0 E3AE69730D4D3EF79A0525BFAD3659DDEC3F536BFF0EEA6693A683BF9259E098B1CB8EC38B1DC6 AD3B20DDBB88E1863ED1DF64A2452977A1C70CFAE0AC206977526D2EF4885561EDE9C0642D6524 12A2BCFF8B37DBA2D31079C4AC6B9CF26518BABF3639D9169FACEC29E42DA1F0AE2EE290FC0F35 149E0EC8807C70C4EBAFB12CA44B7DE7D95608DDBAFAEB476E98836E317187715C1F07C3719EB2 0560EB5B241932106C464D074EBF0B4B6EC4E86CAB3C00357D406EA833652D729D32069140817E F7F906E8650CAE88FABE5545CFE266F4966FCFD8F83DEED5C086876952F0D024108B42E06D4DB0 89EF77802BB2DEC90966D331F6E34D92675DAB18FA3334DF9918806BE5058BA582F35B2D742EDC F4FF8BA830F0C86148C235788EFC15400E08ADC57D6ECE093E1F7711590DA9D30017B730774052 6937D9A8A4756ACCB0A6BD2888CE2295658A9B534B88EE43DF464BA3AF64CE2504814D2B065B85 0DC705049E0B346D007B43AFC18028D4E9539EBC7CD14737CC1B7F10F2CB000A7F219DF60B449A 12D21E16E8789B7B8F67C354574B6CB5E0B6B612D9C5D5B0AE7D87342AB404E967494718582FA7 D32CE4D6A81A1C9EAF3EAB6060DFBA250685BABE46B4FF3BCC701AFA8A868F7029B38F3568834A 8C34EB0E6DF3D67334FD0E4838075286331AB693179C65BA5087988383D3D5EC5E0AE7BDC99BFB C358BA2AA274A4521E286CC6052A5C477696C5578D5608267CCB164694974BE93AE7E35F389F2B AC6B7980E61C29B1DD2D15B42195E795B00D2B89E6C4BEC4379413B11B939A1528C56006ECC994 7E4F14E3D60F7400FEE32D77798FF6383B3319C6F92E494BF73A90083F986CE5F2105C0E801027 57AFBBFFAF368A20EBBCC6516B79682D8B70A23D8DF3A2BBE4EE081D4ADF70847F95DDAEC10B35 13B069B9A6E50FDE25E3458050F568625F680D3DAB2FCD3B7007109358EF6428756F742C90118F E443EFD7E6D879CD082F73B0B95E230C06C67DA5CC8DB4792EB274FD596DCE8C966F84B54FCB14 8B57141947461BCC69A012B50DE3667F6DD9F0FC7706525BF5EABB07164BB07B9C973B5D31D0A2 2CC99E37697A6D14B6F4EE4745329EAC6A5DE7BCEF1B10DEEB46DA4AE14BB82CBABC31040987E1 74EA49EE6F543DBDA0063B6C1042EB379F610DB5C0D4263CFC08A9C5604B7FE2345E775EFF6BC3 5C581500BCFFD98E23665B2115CFE33A184BBE1DB4EF955F409074512F61A37827DB751757E284 A23C89932BA251ECCEE545B6DDC98246970B17C12FC7F9237E6D00E8187F7F45E048307688EE64 2FA6CABEA56C1D8C1FB31E0B0B95D7DAFC1BE2E90F933A44AF03E94BA2DCE76D358C2D7A2216C5 E95788A6BDC9350135621D59F52FC74BC96D94F93E6E63123B4F56326413974495E822DE96FC05 315EFDDFEB919FB2A36BFD8580D6A21D11515EC7835082359F3D0B2F79901FD6CC2AC41E2D7B9C 412A49C9D7B8FD6EFA11517821643349EE9FDD5A6F4D55F440CB7284726C6DD45E84049F8931CD 570388CDD6DD5F7AA0323533EEA3DA70FF0AA8BC42F3B129D0AFEDFD840FBAF2CBC35FF45B8656 BDDAC912ADA0A3C2EE447684AD4A0DADF205A419E583D57D352B30356D611E5E8B67538E2AB612 787177B8C8CAE9A3F63E58913E026E2BDBCD9CDF272AB9B181BE3CD650AFAF3FB9D6E07D32F915 4852862C3F7DB6748FC834C868619A4E7823733CA044DBE48F642944A087FAC70432D01392A52A 3FA0D1C54EBA4662AC8DE38827B17CF644C2987ED7E57D436E4A88B29A1C91F454A4637CA5424D 11B82D1137D58867A9BA363CA0E07C005DFEB038136D4FDFD5AF85F48E58E50D2AAEDC886A4B22 CE2DBFBFD24F4A05A3A9FCA87A95A871BF8D6237C8C63E618FA4DBC9E15ABB677EB7F1706B1C9B 125D4F5E39A168A989FC53D34F45C24A52292627E11F64A7BE21E5A61D4D8F8C9F7DC3B0E139FA 1E7EACB8BE224E679A29DD3B44FB9B29220EDEE3FF41E88D15C914E9E2EA6FBD1D409753D69FB3 ABF266FA7991E82B74C7C73BA7DEA82B0A0CFBD6291B4DFFA1D68306D24B50906A3EE87A0C3A17 3ED5A1F983138E7BD4381E1B21AEC00F72873F4EA6C622118F37619F6A451DBC52D2BA704DA804 17298BB1CD70A5FE38163F83ED96C2D5EC1CF2DC8CFDC9C1A8C2EC735ABBC1851C1A3270714B88 ED8E2FB5A0469A18EB27C0B191169E37D71D62D6FE06E23B18B4DFC93F8E220DFEC3B57F34657B 0BCEB41F10C0DECED95960DD664C499BC607614D97C60CD7794807F2D509B6589EE4241E4349C9 33A94C3F1E58FC40D320CFC31153BCB12F7CAE903D829E8B2300F41DE6D21B5BCED26673042B60 3403B1918E2A57662FA77A21D16EAB58C3C81243EBC05D6922C843EAADC9DA99B83AE09FA329F6 A6F0B5BA44AB4C1FE88B63BFA4D629EE411CB1EF26ABAA16264204637182774F1AB200C7E20057 17E5168F766E790C248C4A38B93F5F9B5C07E612D72077C36688A597DAE740D04171E33FF960E4 4C1E795C1C813E39BE2C0365341D1EC946BD30DC8BCBED7F9B4AFED3283B263155414CAF138365 2C1935E75541A553121B7FEE8293ACCAC906EBABB343B875E4774387FD8DE4557830B2A8CFA3C8 4B734F4AD5094754B96AB12E977DDC29F8E43697F737E52A6D9DD9A2D8840906B4ABE9C246F684 10C38B404FA6251A2E8A31E2126D11929B73ABBC01ACE04A84FF25A8F7F1AE3A9C8FC04C2FF867 5A41EB0453373722415563EC07A9DF738F7E8E9423DB8A09DC6714472982ED98165984C99F885C 9E9941F2A64D10BF1936C749019845FE5C5DEDF1C057837AE0C6BEE3072C0ECC044B5A33D4AEF5 3506438F750804B696AAD17897036057E77A0BD7E02F2918CE13A48FED56C55FA447B0F32F47C5 2AA0F53F03F6334E6C484AF42F265EAD25088232BC109B4AA86A475BC11FB22FEE50F92FB4C4B5 01DBBE211228D5C14ABA48B56E59A34C813016D43817AF1B707D09BBCA2B20F3B3C90058EF7E56 DDD4004F8754EBF0A16DBA018F8195FFBFD5668D4D21E7B6AF279A08A17D081811D2C34DA41E91 3399F6F3B4BE23879972BBA56C65F6612606DD000A6C857F8F283E6008281E5D18828EBC6BCA53 29977E4C792E468DEDA9BC087DD8B4FCC6D9279BCC069B5B7544585FB305EA3516268FFE6A3F91 CB25909A61EF71B0016EF040365D193CCA29409EAD1AF569DC290514A10980B94D6E8C609728B4 A35E97299E3DD1EC28764A71AEDD26C6D76F5276139EF13F052403F529713702E5B1089BAA4390 78F4D5B1B2FA80FE3CB11B14BC466434BA54F839B8A9C887B769FB59463D0D50DAF8C71FA0A9F4 0E73AF18FB6C7312FD51D0EB70027ED4A546232410E7D29A156A2291E29F6137FB42525BEFC6DB 3049AFAF2357A8ED9CED95CF7E33FE3845883E35632507F3BEE56533E42DF08FA0183CDCCE22CA 7E06D568D08D161560D106E22E9C9576ABE08ECA90A62510C2811D7CC28730D2BE9A1642052647 394F4CD2A4A93ACC984C954F0E8C57670C08CF0D21D46E08925ACE4665D9D724EDC75EE0392322 E9381632D8C287BCEF09E84D42E3BC345DEB24C2AD0C68FF094E07D32685866270DC457391BF08 15A73D64540C28A7BC178F9A8EEBFF4C4478924B72FE21D51ACE32EF43C0D3628AE353B74FC36A 7267FC679DCB875BDFC77821233B30F41A6E1EFDBCAEE3B4319BBE29D253624E48201DD2EA2498 34F67D2F111BF268942F6842939365C8E2BC3330F0243CD1AC7C5B62B7F0A2FBFCD0965AA10627 73634020A2C7C364CDC14EA24B500CBF4A8C79B01D6DF55DB738CBE3B978111D65DB99A78CD0AE 43619F2E28BD444DEB85A7B585B19C594940C45870E21D4B1B110028A4F3A60C951A0884D57E28 D5E26E0E928619000D5CFF442D019097C45DB01BE693F6528A00120A14845923BCB81F27BBEEBC 15A9FF9124371E485BF4AA8B51B2DA49DE8C2E5F4F1D909B2731B2B14B287D921949115891AFDC 2E9424E11D6A6E01800002B41B60F7AF908FFA016E775C82582A4C15F47F941ABA8889891F9441 F2C850A29185D4B2B68CCF46C38ADFBF046CB7BCF9B610379E95CD8D2F68ACB47107225ACDC6B1 2DD0A72F291E27199399F916370B1F7D6F4EC7D0109EEABE3191393C7D6446F86F10EEAD7F9D79 B5AB0C053768EDBE0E0F211F306507510E589686D29D226E55D9F07696A144BB4A6400647A8743 ED136D3C5DA6B183D0AF2B565D9D9C345EAE5B63BABA6867BED519CFD46CE594AF18AB49DA423F 0C781EAC2BFCA83F4B11B431C1DFF69E12287098A487BA099786DE0906EB2806278912B958D9D0 CC168D6246251F550445413478B8A460A24FA8D80A0924253985753DA56A30920BB237E4521C2A 78B4E79A256EB66A4B2061F4B71B421D85223FCC8DB4FED0C3A4C4918FDEDC558C57850A62917A 0E57EA5C771D64A137E17D12F1C5EC08FDB94D1232B090127259DF02581C2584754EEA872D88EE 7E583D13C54D278DCB5D6AAC44F68E76186133A3EAC6AC3D22FFDE29D0EE251495A96DD973AA89 867C6BF4A1B71B0956F32CA07D796A19A2B64CAEAC3B04AEE03E943B6FE66EE9840DDC086E8C80 A0849F14992530B74EE8C58CA3F4E765A7A097D98D45DC90C48A3F6262E9999BC34EBF07D5DBE8 7185B7CC1BE34DB8D09856E84A5B9B30C01CAD5E72034433045BBC57DE1DB1186BA78C08B6B224 07FA803CFFF1CAB082856810D5639AF9E8653470B3FC95E1CF8FD80DBBB597FEA6A4E3CF584AFB 4A88D02C1EA61B65FB0CC7A96EF09AD692D035EEF27EB3BF2967364A42DF2D7565C61400B0E338 168B81E69C07FCD2CE5B20526A707F36786C0C6D53B7E4567D41DF6435B4DCF13256B7E802441E 4C86A0A329EA7293B1A5FA8D532FD0F529A2CA7CBF0F667C784826A1891E8FB93564158B14EB52 7AFD02156785CB4089DCAA8056EC101F85FCA80333A89AD17EB94C100BDD0552006139C9496EDD FFE06E4D10C1258BC6912C5889D3D9108622BE978F52E855729C691DAFCB358169154A78659CEE C855C995B334280BF279955835BD13DF6AD0066702C7B2A7804A223947A5F8528F0E2A962F76FF 2B41655FCEFD02F3F6F8D848D60B65399746806A9A4E671F62FD3A46A8766E6F94422B84E9E3CC 3F1ECFF2C86FD88EAB7C5665743F5F7E26F34864C701B57625A79CDCD1BAA2A43F482FAE42F9B9 4BDBAA91ADCE7780AD209D2C19994574B9BBB132169B488E6BA22ED05C971D2CC5A9A0262844B2 1698BA297412019CD7F6C796944202C89B7D7B188DCEB11C91F90F0A338F62F636B759924BD999 B488C61DDAECC4B68E0104D51C9B8E38354AAA61EBB5B53A10F5798C3E755662C2F92523CE4710 14B322D56181A39DB9073EF5CF6C99028C66A48DCD259DA4A9CA17375AC33C1AA56235BF1A57E7 B3872799CCF1AE0534C5EC3AAA96128DAC5592C6A3AEF6AC4EC77F1CBFE1F7CBEAED6935913164 C7CBAAE272A953ECFD2F9B95E63968190066A66DE5F87CDBB126AB5B806DB3E8F0665952D051A3 DF91F4BBC261BAB836F921DFB0E6132283C40B9BE25DBA4DB5E9561658D735F4E7C635BA312C55 A499A10352BAEA349607623649CBBD0AEEF6DFD9F436CA20A9A887A13C8B1E40064BC2B5E8F788 887C4D1B853C40D74E4E759D417421FFFF7B2ABFF74E70FF8446E268C784BE7BF93CF20D3B085B B4136068A30E1471895FD2345E05BB57D5C32F1EE6C3A288D1BFECA8276D35139876240E36DAA2 99C18AB7A45DEEBC470F8DAFCE5884FA632F11845C1B28A3B39D820CD09B24ABE6BDF342A90D1B E453764A959A0766C1F1B6F72579977F6BAF22C2620C22D16E52C78220AED5E5B0F977E69BB95C A44F67FCFBA74F292773BBF4590773FAFC9632855223B640F8B5F3B991685215F92F1751EBA738 5C09B7CAA12A617A4BA5497747AF13918DDD1AD89085AA3510443E8CD9B799F325AE43863E7F02 CBEEC80A79A785DA41FAD2572E57A19F9A8DDBD1A12004F41158077B0B9D67E9CC4F9F10C29502 50C74CEDA126664FC366E6C8E5D6C8DA0E935D68DAC7BEFFB648FC6215145ABA587DCC95F2A0BC 5E187C70FB879E6F75FEFB9FF1A09D4BE80EB65AF18BD7CF9ECA28F44E49BE391D4A95633B1329 06A003D3879D1DA13717502851178B791137E3B8D7954BFB34E55B27FB430027D6A836C5773184 C9384BC708991D81665F7D94803EE28BA76CD43DA908B279C772A4249E88DFC85A10849607DF1B CA4D481614518C59017B1079ABDD1FF4A5FDAF8053A6225CED3FBE6F61A3404C797A61DD6845B4 261B7BADCD7FBA647562514F72C0B2EF4077DA86BA5A71E192B2F4E7D9CDFDC1BC990F4A295CED BE13590B98608C1B1A5F8E2A1690A4153B9304F5A32C764E0B05BA8CFE4907E39E33D69C4C424E 6BE32F2C298286EC2C7EE5D6C1B825DE78BA87F2E4FD59985FEFA23933832A4E61A21617B519B2 9360D57CCC21A685DD415048A06C2C8F34A3C98498CF74CDEFD3E5A595140F52F02B47A34202E9 2C07EF8E790186E56920F5967BFDE5DD6E2462DDCE6ADB38FCC059E189F8DA70A8687940CF9D80 98FFAD9D7929487A9191C250ECFF0A90012E0FE9F902F78A2C146ED6E5420C00DD89F7415F2573 3B5146D271A89598EEA4005DB32FD27DFA0E293423E4D433DD78A31910988D75F2726B3B8A7719 EBD40A889AB7E38216F1301D6FB53363240E1A07C2ADE47B26D4B6B438FA69786A582C72855A76 77E6C51555F39F3EFB53C79905BCDB3CD88D3A5801F971BC8809BF73D384B53C1E03D65CC34039 2A7A564270526CBD6F9FBA7871BDDE6D9BE23C38D5E53B51CFE4EF588E519148ECA0649AAC1E1A 2606EFFB8EC97C9E64D46E9BB5DAE9BB73CFA6A9CCA578DB26ACEEB662D020F9D2F163B877AE89 746A4B63040082385DF1C5BEC77350F9F5EA41F5941C90EAB5700820C0C29AB8371180F30BF009 5D7CEF5446D549D0931961B246DA8F1C3535F8967D64FD070B625904D7D7DD6E31B9E410CF3D5B DBB7B6D6473771B85F8E2924CA2F4D8DDFB2DB3D3E4CD46FC27C65F7058E8F908DAFA540BF2726 A5A1A66DE298D6EB770FDD4C2EB07F3C81F190712C2C5253379D518A931097A96866C1D73AF6D3 587202857D0A83D2A526D281B42AD8A29E5084228C527AAC631E85E9FBE26AB60F14D94FEF2E3B 9A24EFF6DB66998C5E2D36966A11AF147CD293723A5F2F34625F6AC2C4FB51D0F851AA5B4B54CA E1C8002ECE653890BBC684E4D4EF528BF815BA9B3DAC3A6EF34EE74BCEBD75F35F370363879C6A F67E849750D4953A880081DA1B64582E8D790C288B65DC1B69BBCB0630C77ABFDE5A40E0630D90 F542F09AAAAFD8BFC57BCB9BBED422602DE45CB377C2E634B47AA83CFAAA35E3C869C0819E6E0E 1CA918941B15F66E9552672110FACBB538E8FB8A7CE8AEB2FF61EA94E098B89062FE76EF53C6E8 2CCDA0E8A19BCA2B33F4671BD38C0DE622522CE84ACC4114473F10554F8B13AF6E50A8F7443EFD AFEF23430F4C2AFC9188ED069E25647C5D89D657E5C570A27A4EE5981E1D9D317CC90F5B25695E 9E1B914773FD447A91E76E5E87E6613127CA54E8AFA17052094F6467438B369C8549E5A0A59B04 D32B5A0B02FAB315F25CD4C7E16FCFF78544D88D983EF7C49AE1DDD72275759ADAFF6F206B563A 5912AA256CFCB35CE30CAFCFA481301F6A25F673A8B90E9795B2981601BA88400DD247AF468011 8C698A366B875A8631AF3A5B4CEA30F1B98870C096B0285AD22D2AE0C3E7C2600BBE9DB96A9A40 96BCB3275481F63EC41789444E088A98C3564F22C7CC1D5D343EE6E3494E46C99B1546AD0FC7A6 561C239B5D233450A80A13F4DB163FED87BFD98FAEBA9178CFABD4B5828EE864403949429940E9 BF97455B4B10F6FD8720930BE10E639F7173B460F56701B5D4AC799A794C9CA075D34829B98461 0FA438749B33EB9FEC2BBC2A2D354DCAED8F46CDB103EF0F64670EB7FE92FFFD4734BCC9F5B68E CBCB0BFF982FC7558774F9814B00802B4147A50F96E52FD1E107E1BBC7CD878D9BB194A3280DE8 0D3BEF8FD0CE0FBEE8919B8E6A9C8A45FA2DD71197AB8F15E122B6D96347181D1363A190CAC8FD 84EDEBE0752BD3EB0312C7EC7864E68CD0962B3AC5B919CA24A3F3B75729AC6578254974D749E0 9E460263EFF0F666129514DA59329972C02FBC41C2965D3F2C7AD1B834D210EAAB5FE5B50DF9C6 E16A3DD52EB2A3E703364958B977060CCEF91334232C9E71E27C03A1DE128CFB721881902A1C27 5FF14F0FD65AEA05A3A58241E874E6222596AB117144C5255EA57322E49F07A7DE465C39DF690A 6A9836B10E035928E05AD103954B6BAFCEC520D364A7E4FFA27EDB5299F47ADD3009FF45463D38 8A3C8571B21DC64DD8CF7028BDFEB4F66D105BACD33DB5E8A00363B47B9D348AA1611C059205EA 3B5897658160F069213875205D4979EA1A1F93F196A322B6ACFA8545EBA221B363A4F6C32C5FC5 FCB4E4DB0E2D103AAE01AC84FF8B1BF81D05CEDCA5A356981AED6A5F4A5978ED737CEE2B686275 2612B63BB055641ADE4F9DFCE2BE94F9B593BA495A1351626702E648B62E781885ED4770A45940 FB25E5C4DCF2CA34BCE72693C063D1F130D728D7D04729E8005CB872D264AB8EE6D125962DD6BD 27C0BD80247AE1DF710BFA28C8A5E32CD34E45D60AF37EACBF49682A1A76B15ED787E1E6371B5D D56DB046DC21B5DD9463996A4D805135A4971B8C187AAD32C422087D8FB8B46B5B472BDAA9AAE6 85C6C08431BE762313E443A37812D19F535AA285DBA7041997EA73498D5630D24F727335289DAC BDAB419E8B044E45D08B45B24134B5BAC9CF14D48DE6AB4705607E8B7ACFA9772C1F4E86A35383 FC11C4AA84A7C734915A2A5EE0C630268C6DC794DD6164C9D28C33E6208266D51ECD5FAC58C455 ABE4DD2E28AE428BBA827C18F347127E07E9E14BDF6FF4555E4E6C79697073F5D01927422FB534 7E854223D6932003F6F7F2B6BE4FBBAA65F2AF984012ADBDFE1DD4AEA80E3CD859BBF018084B8C 0E6D3E4B81B9F2023F818BFCAB27AB55D3930F03EDDF80D2274FB6BDCBD888ABEE7B9C3AACA6A7 70FEB66CF346D7545537531AC4FA6DE2AE0B5F0751CB10EDCC047527117F0974A8E0E48413155F B8E15D487942B6AEB71989CD74C88AC77809E1415C14A5BD4776A2593692BAFB9D3F8B398D9C0E 1DF346BB9A75915575B2ED1F1EAE8BA4DE510ED7F5E795314D5E5FEA572DDE48FC742F6318CD26 4DEF0C83C92032465C5209ACC826D2CC9507097A18679C44329E25C87D98AC7A007B4795FA3F14 E93993E927358E2E5142E7FB9CB2E62C0AA0C494768014DC0FCF8BFA1B299CB788B74A660CC404 F661DCF070C900E4E418C0ECEF6BB7A7572C2A632A9FB4F18C963FAD73B5A0C863ACF3203489D1 EDE5AFF38D67FEDE75F17AFE06F9130700BD092A55129DA2CED26CF10C5C088FCF82B192AF54FB BE884D701A15D71F21099303F9204D0CEE6CE1CD4491FB5B0285EC589C17079AA6599ED30377F6 7538636C92BD6D49B53C1671DDA036FB4A9251BDDDF41383F818F332AED33E010C642605051FB6 5F1E68DDB634644026B08ECE7608AF5AD2F648E32B6DC1ED202F02E12B31E008790FF62B097F9C C871A36A23737F8DB0EACCC75740CEDD89EBF1D1619BC558D35FC49FACF0C4696F577674879B35 DA2342F894FBC85F7EE7F4796B680D12ECD8E344D5FBA7F5E56FE4D5C138309CABC4871D81134E C07D9825556F78F74C9239BAC7365767761577FDF31609C5C884CD95571410856CB2A87CE42BD8 9F92B8AFADFEB5BA618BA10396AC6B31A4E87C2B89B521FA100D8622F39C80190749C5E9C26F9D 1040F6B90D2D380BED092EEA62D6BBD648B1021719799FCF210C5EF3BAE4D44C4D798D6529238B 5BA06D3C9F9AE5367CBB81993C19F9286E690DE1345FFDDAFF9FE36E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lsd %!PS-AdobeFont-1.1: LucidaSans-Demi 1.001 %%CreationDate: 1993 Aug 11 21:10:03 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (1.001) readonly def /Notice ((c) 1992 Bigelow & Holmes Inc. All rights reserved. ) readonly def /Notice ((c) 1992 by Y&Y Inc. All Rights Reserved.) readonly def /FullName (Lucida Sans Demibold) readonly def /FamilyName (LucidaSans) readonly def /Weight (Demibold) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaSans-Demi 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 54 /Aditi put dup 39 /Alessio put dup 41 /Ali put dup 47 /Andre put dup 49 /Andrzej put dup 51 /Angelika put dup 53 /Anton put dup 55 /Ari put dup 65 /Bent put dup 67 /Blair put dup 69 /Bonnie put dup 71 /Brian put dup 73 /Burkhard put dup 75 /Castor put dup 77 /Charles put dup 79 /Chi put dup 81 /Christian put dup 83 /Christoph put dup 85 /Chuck put dup 87 /Clovis put dup 89 /Cyrus put dup 189 /Heinz put dup 56 /Jacqueline put dup 57 /Jagannatha put dup 58 /Jan put dup 32 /Jeff put dup 66 /Joel put dup 38 /Johan put dup 68 /John put dup 40 /Johnnie put dup 70 /Jon put dup 72 /Jonathan put dup 44 /Jorgen put dup 74 /Jose put dup 46 /Josh put dup 76 /Juan put dup 48 /Justin put dup 78 /Kamal put dup 50 /Karl put dup 80 /Karlheinz put dup 52 /Kaspar put dup 82 /Kees put dup 84 /Keith put dup 86 /Kenchi put dup 88 /Kettleson put dup 90 /Kieran put dup 98 /Lalu put dup 100 /Leon put dup 102 /Louis put dup 104 /Luc put dup 106 /Lunjin put dup 110 /Malka put dup 112 /Manuel put dup 108 /Marcy put dup 114 /Mariusz put dup 116 /Martin put dup 118 /Masahiro put dup 120 /Matt put dup 122 /Maurizio put dup 121 /Sebastian put dup 97 /Roger put dup 99 /Ron put dup 101 /Rudi put dup 103 /Russell put dup 45 /Will put dup 105 /Sam put dup 107 /Sami put dup 109 /Sanjay put dup 111 /Saroj put dup 113 /Saul put dup 115 /Saulius put dup 117 /Scott put dup 119 /Sean put readonly def /FontBBox{-309 -205 1151 967}readonly def %/UniqueID 5029006 def currentdict end currentfile eexec AE40F8585C2492B57FC8C19373E315912C02C4E404DE7D857CFC574863562CE335405BDCD8F11F 96FF6E8F1C7B7081B95AEE4E19EF19E210EB377985E3A9C4049662C57E12D3250AA62F97535698 C97032B09BB86FAED093CD2338831E8859F00CB0C108EB8E6EF582C1A64E00289B62C4DD3C7ABE 9D68E37629997DAA1BD0F494A609A153E01C0FC558EC2510717C5F3C0D1704E13894839A500B55 234B67E33C3EE5A6E7E905C23EECF0D7320E431F93A893DD533D15A7D941B043EA7698B0BAAC30 D437917A0AB35CB6E43354D38151D2BCAB7D2B5C7EB260C888CD713A2960FB2E510299FADCF020 C4A535A0791F9B9DA4A3D25C989EB20DD198AAF09029DE3109374D40071EB6255A9B872322B00C EE340A09F572634C77960BD50BFCC684BA77A4D15CEB51519C9728E8A3D90555B3EAF8C342A020 6282A97EDAA25BB74F1AE6F862477A7AEAF1A2743843460B3EA6653A0E7348D33FEEDBDED3D45D 85CF2AA51168B0647C1DE8B3C9A78C2EA43726659F3E8EDBC6A899F644DC2932A855CF3F64B115 B46D556E5D9985D389F7F250B017F690E2D057D6C651FD591D0186F44E4E72137572BB6C02B816 DD19473CAF196D22DD8C2CDC3EAB84CAA908B1895059B7CF29D716DE195A6561EDE1D69FBB65D7 CC82A9A4661DF15F693EE6E383D7B8204B693A7B0660686A66F634FB881D0DCB0309DCC421EFC2 F0AEACC7EBDC0D36B4B23BE86EC1BF92CA08E7F7FE75A9573149F4DF5B0FF2E3F1B7152EE18AA4 4C79B6B5B8ADF21B9D463241D00B8D0B1E4C53E374EAECD2370C762B7B6BEFF36ADA6C616B9395 16561AB36577ED5709D2AB556D6828CFE3312375F8352709005A1AB5889D6EE142AFA34C135FF6 A16327F64BA637F66BBEA267A0CF74E93C5FA0BC0025041987825AFB1AE5BBA228C40BC35EAE0B 620B9E90510DBD9762195207113830727F293787D784CC8B3096AAE08DAA086D3F2D02742EACB3 7D210FD447B489559EF0641DAD182D275B4CFA7311FA695AFBC9B689CBE20DEC441EBD2D6CA829 F3C9D7A5F0BD06082A0348E70A97A463340BFE7B8A183D6E01735C49361731501A6BE18C334DED 5FDD2E20E0DC11010983CA608F9A6AF1E2C5887707CD4E1EB02F38BDE030DD8E0DB7D9B39470D9 993CB97420EED3C2238E2D9C5558794D1EA89D7DD24C8E426BA238743695FA0908AFB11012C071 2ECFD83A269452B1DBE37E142A6A45E05E4D3FBFEDA1B8D3B3A8D165F24B8ECC37EAF5F56DAAF2 2FB1E178D15C742CB146B41265017FD85A6EB653C0F69DE9EE0D5C488D1E9FCD5516F6B8721DCB DF10E9A94F678124D6668A291B25A3E898923040749ED3458B9DDD204B196470F18DB90B3B0B0B 62F4979942FAA9F1FC00D98E345560CEA1D8C89CF7BC141ED12696AB78BC44B2483E3B5FDD8F8A 257B81175F5ECADB194647FD147826560D21CC2C1E619079C5E03D47E85014CE98E7AA57F32B97 0F7211D7FA44C26FC12A0BD6F12604B8F3EEBD1DCB0E8959857A5EB5FBAEF277ECD1AC6B564658 A547C9306B51C96E76D46D4878C5B0CA4ED3EA9800F9797A4B5D18D91244C74DAC07C659F3656D 2C2D9B3CC8B2F6FAFA22E74782D61492462936DCABA1363C51EBF7EEE92BA72A7A8E27C733D488 C9363C086AAA51C07577851640AA5232FD80E70934CEF2CE74F5158DA22C7411989672133BEE50 558A852537938BED9A34115416DB0E62A0CF53C5857C7280605EDB2DFAFE3B15A82F64A2C541BF 83903E3381468B8EB372547B548AE62E16131D0E4ACBF1575E3F609835D9DF46FED02D58C0C3E1 804DA0DFB55F6335B910691A3F5E3709B83F3B9FA35771DA4266BD8ABA9FE7F42F5A877D6A4457 BFC547DB8988CA6E77E04FF7845E90E7B72CCADE8A5A14E594E27BBB993E4F73FF91CFE0306C23 A8E6B352A0DFFCBFF83E4D9E6F7C0F05EC7EEE1DA737E4E1B5B70243083FF2EAE5F5F88AE7F040 E7D8CF58D7AD5A2B25B626B4B5525377CA40EA542236128AA40E592421D0D871A37C34FB45DBD6 A45451B15298530EA0E1DC851C212BA010685A92B1F805547CC57D62DD2D7CD4156C420D073AEB CF0CDBFECAA3AFFCA3F1B1B4F817DE41535B77504E891DF0CB42AEE39CA3E37E1B5F787D467CB7 306304950015AA42A53A340AD1D7CD32F2C0D2A7EA8A7297BD0FAB1B2FD027D0FCEF35DC8A32BC DEDCA3F3702008ABC82389A0F12F70859E5F4126A88CA4FAC548C2515A46A3FCFC3E958575CCF2 30858E0465CF6D43D41973057077BF986E4DCB3078CC14096CE6279C919082DC237A9610589B29 E9DC232CA680CC17DB5C545BE9418CBF16AE837E02681BFC873CF630D9044524A9F4373DF78A7E EC5881CECB664A92123639D62758235DF94C854A740A4D38859C9386E1431C5152331D71AE0812 CB23884FAEFD580C53552DB1D51BE03559E7129A8642AA14132AED38CC4357259257698DD96624 76589CD1AF7D72A53A8BA78A6E2737AADE9D3D880140C3907D1C20F6819A0F6465686B6D30A4F5 04E0488F5C8CE701D2096B45BF447743BB1D981E52C65BF78CB8F4D4BB5E1E4B0E3F48CFB19D29 9A4210F36A2FD8557AE2AA0477683FDAC64590A3E6ADEB3E3C24DEE4ED90D8A3EFBC3ADB61346B 6E167CD20F60FD028CF251CBEAF221F423505126973808297125312ADE2F0337C0079BA876BE4F 94D9F38EE5165BA3BF025C012EF13CC89451C63D943AA2D0C40083036AAE18197E87AEAA4E6A4C 678BD07DC68D87C2B18A5BF0B371789D216183C02DCAE89A8BF26C15B6A3ACB23F406D77AD9869 B02E9DA376F0F2299767CAB7DCD0D8330D96A43A1D70EEBD80362872616E3176C3B6CA44B5A8BC 9C0171B08FDCC575ED942B90C55470C69C3DDB7FC6CDBDCE4911418054C7C723F1CAC9646CACCD 23F594B344129B30F7569104989A986099901CB110CC535E57D6AA8CA80FE75C4A208A7B5E39F4 019D8D8A515C0AAF8AEC711A55C6C0DAA0F17C34C3066683AD4AA6A7D3EC57F20D32E15EDCA57D 61FCC7C8F8AD61260B574593CDDC128AD465C59A785983857898D437017360192FF44E19998358 6453672475B760A3F8F6003D3EFA6D22505EE7A12ACBDBEA47B63E5E3540968AEE5B6E7FA8774F B5410F44F9090E880D2B6E7E7E6A7D1D4D717B144D8A7E4DB66CDD5998BE26621B9F4D7C719223 B7A5AF8EB116AA03C6AF30FE61E32A62B4969B4429D0D101889F1BDE8EEF0662FC4D64C06665DB D474E811F87D31BF576271A7A3E52F7990BD79E96C3B4A936E2B1FBFFD2D31509CF7F5BC739F4B 7C0216B5AE0FD8AD25FCE86B33A4D22B2D616C96AE155DBDCD095A77AF84EDC4B7979B078C563F 8588CD016B3C08695D31C8EAF1D497C01A9737F6C1AA4626BA952175B6B898FA389E9493A8DF87 8D4A1C38C0CAEA89B225567AABA00DAA5B6F3E038C0F3198E8B5CCA6302646EB464F062D4BBC8F A8446418626319018C9C8CA08B1C42D0714AE74E49CB33A09CCFCF7A208D1B7212C255AE7701E4 E01D7E5EDACC772C8DE238B4DCE0C3D6A1C7D55FA9819A3570718A6732AD4746A71DACEF94E459 0269025736DB98D2F053305C27D30D50DBACD697EA875932778F2A544C9460A942DE2DDA61AAB2 109FF6363A5EE7E6E336394B882557F7E13F3D740ABFB291290AA5585922FDC27873A8B29525DB ECFE5A994BCC926A5A4B34C49210279F8763281A5D91816D974BC5F22847D68DCB911D265F7B02 FBAADB2E96FB0E46DBA70031B7D7A4BB32711C127FEB546F52C1FA36C7993D40EE93C0D4915B12 FEB19EA6972A3651FDD1DB039B1507600477877D43AF8F23B4D41284F50621DE3902A3BFE3BDAE B057C127605869A6FF573334D00AC079DECA898EC5E7C28CB76B23A617DCA022313B449518FA4E 3556B2335E4A45A8C61121293C3BAA23BE8ACFC53658B3617458168B3F5FDC321715AF886021E4 AF9187E2FF6CCC09AF7FDD019556DF58061AC74581BADCA856650460E5B45C9DCCE4B4CCD18DE6 5AE71D2B3D4F472FD56B46DE9126E08DA99B91A758BD9A94E28A8D951262F220111C3301972A7F 49CA8615AA7E7BA61171300F8E66A9BA949FAC666EAA23720CA825DE4D0F6A9ABFFF233187791C E57E3EFC5FDE95D277D13CA6112D5934D6E27C07B614971D3AD7FD74CF08B4CAC94F1DE512019B CF2400998F207B27277C42562C7EAADE4D090D8261C818DDDC65F65CC793E5A479F1E03E3942DE EEDBEA85B103FE2BC309C6B16D87804C85900E39F51E96276D9BC9F62825D42D1EAEE49694D61F AD59AD71A3EA6E53CB0C06E7916F0FA7A3BC0DA39E224ADF4F23EF2A15A4E0A56D9E38D4D7454E CDF3E8D010A6950975E1967E54F4C63018731DDCCF5F6DA12B4D2AD4A228473E49F6EC799D1967 B7F333ABB650B2B573F24B755BB71607D20FE142C5653358714EDEEB94D1862B435C877C80C1DF 7B02B148E8800CA3A1957207854011A7EA1AE2B831F2ACE4D56F9A2CECCAA4BDA65C6CF8CA936A 05FB76383900D5CF4CF85DA2F2D4E0E10C43B2FE280CC15C75349B170E87909E7113C3AE32E62B 584D7D350D1097EB7161C2DDA01D1CE66B622D041228C3A93F6FD48048ED070EAA88B5AE5751B1 9034DB79FBD58D16639930CDC92B93F439EF6E900FCEDE677D1CA321B93FEC8C22B6563A069710 54DBF7D60967EEF580203D0D4294A16C912B06252B97ADBBEA61CC04F9305A249E88B95ECD4AF7 1F6331BB6DDBB4608CA1548E270CB79FD972293B9EF8DB393898198E0ECAE14C92293506C39170 5CB3B0526B95E3BE6B8D3323D30D1A8933CC0C558C70D22736BEDDEFD0E5DE972D2BF42EE9E340 0F64CA97D4AF620384797F9E17BB831776A38A03E6C719917AAD65B3FE3850EAE611B9ABF47678 D750C0E55CDFCF90E7902A8AD5F0CFBA8125F9C35A49BF4332CC5BB1AF7E6601046E9DB0AFB3B0 F047A17F1E3346F5B3C4E4817A6E75753A3A66FF2F6226B57788DC7C5FE3352A6DE50E7E44723E B4268EB179EB916BCB57F3C7330323B554C5DF750B5B84563DB7248137E312AF17D2BFCFED3E7F 09323553E04E4049B05E4F8C546D198FCF51CAF6D3ED424FC973C3391D9B190E1ECAFF617B6E26 B1F2638FB32391EC52B27D0C353B9E7085B810276FA4728E699E50BB54274130A2B290F8B2E49F 5DCDF560B56DE2A43B41ECB94FD8F4238771D8B55712DD101FAB9A58E4319E58200776583C35D6 0EF2D7181170411BD45A5C2967D7F19487E8C2B17A5483E90316EE7F6ADE0C11AB7355BC66E021 2BCD832EE4AD4DDDC4AD33DB5358CA406876B077CD8D4CB77D1DDFEED860DA562615F51A54F596 C474DF3C2D253EEB1E9B85352211F2F627927893E9F59E70CD59B2163E35D0C72AEB17EE83CF1E F47FD6ACCAC3667E5E297DEE0E7F88644054E99E90DAFF89448641620EB4D165D629A9B59A0561 A144A1CDA31FA7C64E9003B9F66C880793D1A968FDA68159508B61D90C52DA56A5EFBB937D03EC C3F56B7C4E58CC65ABA31D9EFA6F49D3739ED898D2B2FD941180BAB89F6BEBFA09F2AAA3F543B8 447C15E372EC5683C81B987D492F6FEE10317F2C5FD884F813C4E281B5A7D120C24D1C7844CDAA 5CFA497E5760A150E0D22A548AAB3DDFD13429A2CE12526162A66C45B38824E56D4CD47B6FBBD3 3D66795ACC5DCCD1AB9BA0C3D6E2AC6A8E0D14DBB9F693CAC9F3FF65BCB714253A607DC2B25B15 1A7B07690DEB14C2829AE2D043812BDB6881EDBF658C21FBB5DAC05326BD8683B2506ACF3B637E 055E94B6141C24EA1BD6CD7437CB2713700EE829254EF783A926E2768B06545FE263663F79CA3F D4E9C750BA92F6CB2CC44B03D679750FD68524246F4C63CAA44F8C0976EC39F782131014D136FB 96E441F9DF8DA9BE84D7A59497AF90656B9F308BE1B909E51AFE8396CD977B2BD9D6B1D248C594 4B3F0DF9042614F333B91C3511DCBFBD6DEB5D5F323B7F021DB863F63DE2DC9A1774CB6598DF80 011AEBDEAC09EFA9E1644FA39165747C88C8EA6B4AF1897B34E805BE0F0F89FE2B9F71F4236058 E5FEA48B32CECA6C5C4DABD7A2EDE43E477CB3760628DCD2B64E03ECBD3D28D9A13445ACC39C3E 540D0185230D1E89750D1C3DFB6DE4DC9A258156FB559870A29F057121419228AC452A0907E683 74F58C6DAB6DFD46FD4B7B7417A3539F5F2DD26F8FDD1723B6C4030D86C352190716EB980791CF 2426A868B756255AC3CE719D37C81D8BEECC143B623880C1AC8530698369322B6309C672FAF6F6 0C8BB5E787447A61E79877B8405C652A5A71F85B222F724EB406A8E5451B8AB3448121430B4ED3 34299EBF820709C1519E35803396B3DC845302F716DECFF7B34E53E60EEB0C30AFD9862749DA7C 335475A5D432D4161BEEA5D72A3772B499539CB672E9ECB32CE919DB201E20EFF2555B71B569BF CF8B902564763EE7D559D5AA9870837679E4718BE751759A9BACCC51A9061196BE327510BA4865 ECD5B2A3593234E0E6D198DB19D2EA74A437BA555CD8FE70BA380B852858881E83A44FDC32FCEC 52BE9A0EE93ED500F8BD0C660D0894034FAA09B92BA8517CD3D294D16EA7F0D038BFF2B744FFE1 2817B83C7F0DE337F0527433A982B6B43569C18D8D882BC722603FD1A9BABDB464230FA2B0C9E9 13A47D30EDF69AEB8D6737658718321A34A8D5CD33FDABDBE65A9E9DEDCA6F80ECF455DFC6A80E 28687F23D4ECD8D8FF396567EFA09929F748CE124D08360CE3637BCDD08D1A9D54EFA80EE56CA6 43360FEFA5E987845150CCDBC23E5EFE2E3E2F571C1CD5F838EB1884BC39387CF19A0B4CAB69F6 829987C0FB8634BF8F8424E649F9CFCD769E96A040B1CC46EBBA3B17886302C2C98D02ACF9ECC2 0D6495C1A80E2018B1267BDE4D82C9AEC7E284BB825E6E500F85E5554E9E55E7657947879BD719 81582946A1D6F0D70B878B5E280E49C23D3C5F176E43E1878F82210FD465F347B37041FA8FC749 20A45B3D73E71EF44F50CECFA9590BA94CE6D34CCD4FC878DCBCAF0CF713F4AF5F54FBFF508C42 DC97117CC92442E180E4B2307A2FF364E89BC538501A2E3526C77EC08E8B211DDF42042633C978 8EDD3A24389AA1690ED0715F531173163A95E36E87554924FCE4879941C50214A485A26C04960D FBD7A03B9AFCE70866723375086C6DDCB249AE3EEA17CB1BCEA611FF44364DAE6371AC79652C50 0EDC774B75B790B204C9479F3CE3030F6288D1E2C2F9F083F990F217DD42AEB8A95933E7A318D7 CF6656D9C57DEBDEAFF6D532CF206F4BFBA0EC53913CE7D9E2BC72F5BECDC0CCB313131688D769 12FE09419536C188F34C840608A17BA22DC57A7DE9B758E05C3800A8BCA77F95C0842094377A16 B80DACDAD77A3B65651CDF7F7C4550F1214DC47D6E88C006AC5D5066C3AEB2012F2E0C39A055FB BF174FAAC6A9A28D2434E03874446E15DCE7ACE5D7BE7050390186125F0435D4024DF4B5C25B16 719B3240ECE2B00C53EF9091E1043313BC83FB1128F19DD592BDC748E1172069E61AE8A05B6FA2 73CD67F68AA8F783E90D042C630811A8A71C0E22A6142B17D6C2F443F27ACF59C6F4474014DCC7 FE9257ECA7B4C46470DAC7540C34A03B7FC1AA96D6B48179D28A0BFDDC35BBAF155BBB5DD8D40C 2F3CFA7719E0BC7832EED6A37702223D1466A8B4FAB31D2D91AFEA30194B9DC756EA0931A28D92 8B68C0E09F7940A1BFB8817CEBBB0A5A4E65CD9170014C9577F321AD444420BC7522D91672DD1E E7517AB30B7DFF7436C75999DBAB0F7B3A7D452173F9FC066EA136998AB8D3A46AF5CB99ADE3EF F0213AD487A7C50A07E25B5363F2C3E47B79961BC58B4FBC206F8C17D4897A26101714848ECF2C D7219D372F38188AE6657CA5A9D5140B832533226677A992CBD205BD8A7EEB8618B6D2DCE91AF1 8401EBF19DB900BCAB2C7146A0832A3AED3755B8906C9A0AC65CE2FE44E3DF2F68A75FD285A1DE 60FC073205DE3B4BA9ACB0E06C29D5818F55A9DD737F2069BAABC52FD9B3F386127B9DC32B24FE 9F39921778FFFC702300C1FC92E3809379FAD3189B34D98EC371F9FAD6763C81B424B0E8339934 9282C1204BA70499E24CE718B2010FC17458D8208492EE56F9DE924FD848705969B622BB0F2481 6BD0FF48BF235DD71BD6F61C38B6294AEE8676AFCD9B8564E36EA6A95C4876872B94C615DC0994 D522CEEC5B7CA9ECFE9DA4A70613537A1FFDDCB26A909A0C8512796F70FCE357472476F30C9D7C AA718917065C69D2EC1EA9620982EB4B869035E7183A71A910212F18BBCEB054B9BC7419E45ECF 2E0C600F865B44538AEA23950B5E4010BD45921CA12C0C1968C65EB900ECE26C5AF8D29D31346E A2CA571A9E40938D85D4483DD894907ACD68738986D864190CE11362E7C50346473639BF4BEF9B 81160FDEEA602FCE03FA4ED3FC5CEEBD50F3576CDCD4F21408A2D80E265D5D607CF00CF15388F2 C6EC9A1B47C77DCAE2E4F2F978508923FB4AF9CE6C8BD1941F66866465D9826879918CD49BBB89 9A0B12CDA6A069B9944666479515F2B7E39F94202D4B369FAA1887EF5BF5304E8C2B2BF291D6B1 4E656EEBD98A422438DC43124E73DED0C86F71F98AC1DEC79E65C71AE390A9D7BA0A2A5AE8EDD5 5D22DF7FEC889A8953ABC0B0BB9898FAC1CD7B25263F7AB9DE276B20203ED2F2F43E7D52E442EA 02EA9BD77721C48D819AF6A522481180B75C940780AEF72D451D556A9B6781C45369984390B393 A873A2E0ABAA5D91DF10A1A29E7AF13F74FC678716FAAD7523B721B2B9C0C46C358887D0A7F655 40E317B0F9B6359CB0C7FD951F28FD77D33160CF072D79559B31687A19AE294FE3CE1E9D30B083 F955672E43D601A8FED9C7FB8C735C681B612B327D3806794D061C3C95AF819B08515A2D60E536 D3DAB7BF64E37758CC9209777C62677547E065E20B74175EA87DD3836D107D867805AA0D7A913C E8201BF1BB8AA51657E08999788761B3C5747F40511D58798397D64512FFC2BE814C776B9EBB54 9E4F5A3CBE75D920B2BE77CC141D1D26ACDD762BAD54CA7C37EA9BB718059948E6DD2C404BA4F5 08AB7634D7F7CD84A3C6A1881026AF15EE46DCB249436A9EC02E96D88AB19180FC2D01742ED7F0 2D7684B698AD17273CFA4164688C5B411D9E43DCA5806223040AF23ED0534A1E9D922380EEA882 A5B861CADBE7637EFD6064E56107BD6237EBEEB8DA25B11BDF0A02569374B70F09818E9A8A0F6E F9267967EB87CFB403D57215869D265E58194178AD151C0F774C726A2619B08515D3FF9D9ECDF1 4A7A40F43A154D499086B62D82BA643A2742C2F9420D73D7137C20C5C9F9CBAB60278E6909F8C9 AD368E6CA36624FDDE2E1F9DC3A76681FDC202A09CCD9FA7904BD49F29C645AE4B4BDE9433D44A D304FA982F5BD914F42A77EE7C4338435F8312EBDE34BF5F8D805ED362C6A99440A641DDB01CB0 CAB5E911A0E5A2935F340AE81B91592BED1B4272CC03247B1F27AB2E9B23CF77D3DD021B907460 F8A877545C42AC468B68586F0066342AC40F497397DE037EC5F5C517146A72CFEFEC3675C88146 52AA1A648DD3194BE106291289E0A0170FE7C1F0616A12E78E8FE112B7B2F60A623F49836F3FC8 CFE47E820E9911C19AB297882D2311F41D76452CC9DD6F6F95B0520BA3EB394C15189F9DE9573B 85C09AF740EA834A5EEE27A0400F1E3A6B5F86D0C69F8FA26C7BDE10DABAAB8F7B3EB7071A72D0 A21D82F17485DA6AD12BE8668D39CE0B6A4BC7B59A9D8D6A47A15F62D2B41283E9F23C35D2865E 10BFB2603A607E5246775F67A41E2EEC5683A709D02C92F4D021E07649C4C60A5F0E98D44CD83E A34297942AEC4D397C4672E5ED5E1FB1CC51F3B6CC7E8FD0128D7935B05872A6B8D76F5154BB3F 17A4EB5BA0437DF785A63009C1D8084FAA7EB5145E5BDD31E9984DCC2ED1711A2FCA3725445AE8 C78BB1C692F2FCAD9556C68E7C9196541B9A4F2465D16B4205E345D096E8E5B172CDB1E784B228 0D22A28813998F653A4D47B5346C636D7C22CEBF2DBF433A8790FAE8989A18C674BDB566FFAA7A CCDF631AE4B1B2C876E45B911CF9F4B9D7BFCDD2684553B1CC0F3BEC3624E44F023BA223E83EF1 40D0E6D506E11ADB79C0DCDEED41894073B75A931D0DF6AA89078910D35E6F65B956AD74F939A4 B30DA755CC42918F3E6B748F066E891F0A158DDB4FFDEAACC6E71A9AE04DDBAF899F796A80F6DC 02703C64BC7E021BC292A9684305D59CEB84F579B0BDB215E4FE8399DD885C8337A6ED127AB50F E2B562EAFD20C841E7E5DD1DF6993F4E60B59C6FB2B8660ED942D360C5DC9D48A9ED8D9A08BB4B 8F7D51AA81D0F6B5C63E3633EB4A8DD8EE07E99ED5A455B6D5021D91C154AA57807357D477BF2D 626D54E365DED3AA67230CD8FE70C51E3EBBEF88FC014AD287EE77170EA9E47828271235BAA930 087CD8749F3528C7C60AF3EFA55DA68C6D3B166ECC7B0A88E4077EB2C93BC5894EF84D9BACB493 203015DA8CD9EF106CFD123E8057AEEA2454C9651D312E4F6CB7CD12BDC1DBB475A1DC725A21DB FB24F55AC85BA2F07531B23ECC411FB2B0DA6B7379F3BDED7DF2F412A016E9905865ABA4274EE3 1D932014FFD8836B8CD636568CF0BD2A7B7D4F51D716BCDC50D56936A297C0E7807674BCDA480A 1DD90412EDFEB4F18016E5A5EBEF885D3D33E2D925831343B0CDD184AD9D9779F0F50805894776 3DBFE9EED1AFE3FF0DE7D8691104B4155821FCEFF8D0BA9F35DE1C39B063394E2F76B0245555AD 78965B301411E1D93B5D7C2284848B3CA29776059D9AA4CD2AEE88CC0007376C6EDEADA2DD1CA3 F5293EE8E2C9B0F1A8F5EE9D009C63589CD0A7003B7911C254B780C8545203165601845624AA95 2519CB7F1A1CC004B84458A19C7EE68FB249930A268BA05F34C08FA72BA4E4E6919EE667DC762D F206E8BD03D6A1996887DE81640A2BCEA4052FCAECEA52900A9296A4A399F7ED0C3D7D3852A897 9F339D42D32911E6E119BCA337B7F09F2BC74BDE2B71113C439397481A8A5AB3EEE1EF9A2DD798 E9CA52E836034C536C07CD377259B9B72FE7FE68A1FCB8D4707B223AA693CCEED0AB7D97FDF90D 84DEE522697C071AE0EF306ACBC192AB9A9FA397E6CCB97F42FBA37818A844FA045AD2BCE7AD5F 0731590C7A26AB951EF94059198AEEDBDD869096FEDF9EA55D22C23EB6E4ABDD469B3155CB9451 04C51EA9717EC395B7BB64E2E4AF5D31AB85876028BC78E0CD3BDBDE214CE56F5687B3009DAB8B 0AC6D75B13752782F56C590AC4FAAEB6DA1462988BD69173190F7A486077BB49CBF5FFF612B0C9 57474F5401B8B1E8F240EC3F20808DCA2F9F2D810A07498297DA66D9AF329991DAC432BAB46C01 F1B17BF8DC6FFF54F40397026ED09977520A41BEB1411F9334E8CAA93E5CBEE598A88A01B25601 8E529F173153A67AACDE4A8296BFCC5B88E6E20B29D083889C18B4D38418B12F8F3514FC95130C 58A0891AAF8A9C4457603EC6FFD26F0E1B957E783D4F309F4B654980C22D29CB8646C104621282 BB301829676E5F3D07F090E172F9A74E9E36103D3E7FD4D7AF0F6AFABCB9A21250BD6E07A1AB03 66719B2AE6B8B98B6782AC722DCCD0DDE69FE9E39293130A206E9CFD64184A589C4893C03375B7 D7094CAA426EB2DA5FF79C2DE45F5893EE2AEA388A2AADBAE87FF70B629F304AB0D81D41F44352 1FC0BCB558119C9FECF5C9EA1A876A0A06610CCD279BCCF198AA606A2F4554880BB1BE38A91B55 48D503EE76A3ADA011EF1B31F25B3A6FFC1A6C6544431CD1E1DCC06789C88584FD1878D3F5F565 3B6FBB4B5B4795779F976252E9F3F09A482F9C8DF00B5EDAD6F0BDCB811E622A4FAC70FC0D6F6E 37625FC077D143C6AF7E76280B45F241C2FB62951447F84012AD8401C0BB7B794709B48BA3FEA5 D85AB7D9875320A13BE8934E8FBC8B353DCE93A16979FE3A97D0E9A8B5D1F7DF52C6C18F60AC87 C8B17DC80235023652ECA4275A901D9468AA7766128FA157DD051060A62CA5EE8235E79CD8D5D2 B651066E2D8481A717EC08FF985BCC2B4B5D4BAD6408B0557285903F26BB6698710CEF6102230D 042EEFD6069623A5003CCBB8B71F6FCA85A88347DD13459AEB84EB4802ED2ED98D02494CC9CEE7 FF5FF87319C591C72CBC3F43DC7DEE2BCD0E96DF6EE42949CAC9A7B7CFEAB55D3473DFC3724105 81D8C7CE893A1C374D933FC9CFDF462481D98FCA27085AFDCE8CF359E127DCC1EED7B558FC6980 813EFE260620D7A7BAD331651C09B2C7F5EA13A7D095368B1453C7E14E6F6F4C99CEA3F3F51256 77A448D040F2D496616C86D2F6774F2307163FF9C0AB8AC88B20A6023E60A2C8B63E1BCB6F59A4 2D24C107DEF5875E7EA1062646DAC43CCE029F56E91A49B0BC6873D1796DDF7A0117ECC41DD4DC 792B5B97077E2AB5492876A547074A73D404CBA4B5C0FA1938349B7C156FEA5952AF7DAB0002CF 84A92D63E38C0ECAF31FAA2B2A033A3D382C3A4416F554E4E00100D122B2D75AF0BE42C42C7B1B 4E515B81F4EE8D3F9C39796A63506223415C2A55FFA26EB9E28ED5EBCDC5D2E83A3B27DFC8B6BA 8DE74DAEC630AE7BB6DDB12A42C1F666A05EB18665EFC68FCE7DE3820485FE9159E35EB35E2932 62FCF5712BFFEDBC974E5990BAD0D64D820564F54324323B31ACF948B3A27F4AC397A958864268 5F86D44EA685BE3CBF1DC01C293397B8E3E457F619D8B6A85E75D838219CCBABADF23C0E4434A7 787DC52DB315BAE832819F2973F11C045A4662F51256BE3967C3231CF42AC7DD045786B27E377A A42DAA473A697EFE962CEBF368F10E0F3AC73EBDDBA259ED770D8E43F8B39175BCFACFD1E31DB3 88950902A66926774EFA8EDF9649BD8AAC64702EA9ACF5717B5C91B4C150EA2A98CD128235B6D2 645FED4EB709C91D4F71F2E3B6B971A378A7B3499773293D47B59AE87AA1F3220CCC3022066508 5965385DE8031B42CBB2A2A0FCB9A038AE2BB898991A476373CE559ADF3263F47D6C103112A5CC E3EDA9EEE4C24079F0EC6F88E9AD54D1629606C97F6EF26ED0225718AFAEAF1A21C712315C03C6 9B019D238C17AB4FDD0A52E840E28C6D83D6DBC7F04051CD5F8A61654B3037FDD8388C222A55EA 4A423F99635EBE452DB660388127204288A88BA9E08B6C31F92960CB9B7557CD754A3400D48F1F 33EB9C6E820BA19A66FAD15A086EEDCEC0386DDE30E8FD98B3A63EAD8AA52656EAEBF9D3995C08 083CB2901C8C04E8CDDFA28F89FA371822652E71531782D1388AE97BC059278DCB3DF5D175DB21 FC34D07B6D3DD38F44E6BA13133D6E2D54033C4A77F0A4B282069477761F5DE689F4EA7F734BB4 5C0C3AD0198A5C9F9AB087A38A0F47BB85CFCA1DA6E818ACB5B1D9B322EA1A67681427A2E92A5A 72E27208D406D2F24CD583EB914DB7615EA17B0F471DE94AB404502DA4CC394ECE88024B6AE998 CC7FF2D1383E183DD4562ED30BCC8BB6ECE442449BBD57E546AE5E6993E2993A9E0E49784366D2 6A0D3A301F81AD2413F564C4F36F7F8CB3F01E1BC0609F9B6CA4051E30485865768C9CDFFCBC7E 8E5A91904F43024638C4D70994F32D75845F9F865E9037491E7AA0877ACEDA00AED81E74122F94 BB270ADAB594F5055D2B856F9615F1EDF02AE54BEFF75D33F53589F82AA67139C454ECD8077C8F 53509A3151A7EF94E80BF03F881A0553D321B41CEF83350CE9B40F8CD187D37F9B0C0D7537D498 BBF7ECE55A8F58FBECCCD0A67EB9D86889EAC4E61CD90C40992344C0D79FD1C8ED6D7272B48406 81B99C5A06266FD81B0904D89F1CE6CD26D9844358263E5385CAD345FFD28000BD449B1391BEAF FEB2E5EE56A63637690F48105EE0102E398868DE9D2CB1246234605FB2A5165085370E4EF4481A DD0BC5214BAB5055AEF44E54A56E884F96CD9DEB53F44D2BB3D29839F3780655909B8F5968B491 83E5D0978A1D3EF4A15D97EA1D3F1B16FFCEAE52E18F34BA676F2D478A5CE9EF0EBFFA5E0E8DBA AF563359E5B0E1FA0A861DAF2F664F78B338999DE20CBA9DD87A91C7FD06E12F3FDDA8EA27F945 DEA14960910D04FDE66293A8BFDECBCA8F5D1267CCD28B5161C89CEAFCE617CE08496BB3DE963D 34AF77B9BF7533C46F910A673D6DBC905C11D166B26809AF418B3A8CC243E92F7680B1B02A56F3 355FB37EBD6F1CF721BB8B55199F04707C9947CF0747A124D6136C18091F700C1DAD3F30CADD8C AB54C79ACFDFD261A443C3221174F869DC157F61E198A69E6267C9B48E78E907CE5FE7FD4B53EB 9189094E0EC33829F7C27C6AE1CC732C3D191D522CDFAAD023A181FD7B5694F0A65FCC20F51570 95EA8DB3323E2DD26FC06CDCE01EB98A5ABCF0DF84F3A14DD67EDC748193627EB51C8F6692D45D C830F3EF7C823BE662184B79F6B523D75ABB3E83F0BD78369669A26728BE6B6709A835C3299A54 25D05DDCA7CB954F4B325CB2E5E6C28C50C59EB0163915521956EED1A2B2DB82B22F7A1B9E9CC9 F40044CED31C72E9E85B0244EAEE92EE90CBB3A8620A53F805E9A20A6A0FBD52DE2E75ADDBEB97 3C3A794EF204C634F464E0725FD33E8146D31A976D305EEFEEF70DACCA2BE227A1689BF53D61AB CA013B235A2E921FAE0BE489107B223E99209B7CAC5355A33F2F8C04996D075E18007DAA3C1319 EA66E669C4198838FAAC9903B074510749D671308C9BCE1D173D6C296AF100581E501106717F9C 59E3A29537A16D376D9BA8DA51C3FCAB70B0D0F61445AC05758F1B579DCF0B5CAC6738FC4C47E3 6F5A3A27AC9F19045BE6B3D5482E2D30962C3141E12AC96D59E6D43448F85D1999A39827C3DF8A 933571A6585DB257603471CE0C77950F8A7D3C25FD60888A26F6CD77281BFC5F4A72394ACCB7C6 A9894B6015226109D1B043004363DCB6CBE56449917861747F1828E6DB19F835E328524A69464B 60DE76F08CA1FEBA7DD75D78778CF64F0050E225DB6A44C785592459BF38CC075ED97583AF0E17 EC67B74D752E580533F98000A39CAA0A3DEEA46B89D864E22115A084F97B5B0D3A050AB3ADD338 080096BE5A156EA956947EA2B1BE6C357BB1901DE7FCDF02D78B647E1FEC144FF3C8A7711A894A 1E7D849A60E0860EBB256E15C5C995951308CF30F1A87E8D3E678421B7537199E27270B4755DB5 536CACC90C4772CE0CAAE1780BC54ABE0C3BF2627B64451DEEB875362F3B47E95577A80CEA03B3 C6284BD3623306A66907C6EE6F4E16617783DDFE3AB55448F80A97E8D5CE6B73493B8426DD163B 96978D8052FFCFF0B0CD91F1D366FFF67514F92F6B1FEE64C3C023EF905C2830BA7BB7CDDD8532 F18CD1BC5EEDD4E57FCF043625483C58AFFFE5EE5159F1707BA49760CF3D6900B2A6C9B64EED82 ADA8F0B96D7BD624A1AD4B3DF0118E86B98B46D72A0744FC895ED2248618E6A349C51A44A89C6C BEC27E525FEA388BF4A52D963AD520CF9A768B8E1BC6345EB434013BD9FCF6FC5A309CF7953DF4 E6A92DF3FBEF92FB1A4A7FC4AACA0B95F070E908AAAF4738227375A3FEA047E3B4823BA8FA26A1 F497936F94ACBF1920E2C18099F154F2D74E50A5FA623B2048920B7E0AF9446EED9C8D4B737AAD 85515672B6AF1543E5AF733C178FF90B89B6EB1E92162EAA240B158A78652680F3509F9C1BB21D EE46DD3B39A2D17029BC29E260AB570B29B02624F152F6D56DD4F2FE3DBB352A3CFC4AC0534F45 E31ABEB8C099BC8B7B829F6C7D2DA0C2B9D58E22A8A8BF73D9EB1CA278086FC1FAF212EFA755D2 96C938CB7EE5AA4E007EADC88E7205FA0874D44B769CA1E0D757968A39FCF4F553C14DCD9B34FC 5246D3595625943439F4F876FB6A52EBFA06056850F5C92D434FE017FB3D4B0E9022B2CD28C3EB 95F084EE99911CE955B5B93196BCBB65C2699A0C942A998F785A59B43C8F8DD87BBA6107854FDD 70B3763161AC79C7CFF4FA36EACDDABEA6F5CE84567AF95E389F9C2CE9E972B540391F167369AB CECA3C3D9967D41DDE6F455445D686B3B8223C6E8727BE334A73EFD62477DA3D89DE65F3EBF81C 4DACFC5CB89587AC9267B8670AAEC340FBD51971A3323B17978E110745B84C5E6FCD74E132BFE2 19BA1D812A645002FE8827DDEE54546099B47E82F3935006F0B44E174B675CAF24A8FA4CE10017 0F34E1914F3222DD851F0A874650A14866DD1EFEC6A2D97969F4E3DAB9D449AC50B5E4524BB5AB 96932237FA7896A5284F85E592B01D20C761D35BA83B4945F5608F30A77A84D918B6847516F96C F351874BF52EFFF38ACCE88174634AB0338A377E99BC3136A0600362EDFF0E1D42F8C5F984ADF4 AEA2463EC1B3DAE2A6CF86CCC2AA846C7EF31653605619C7D0573D27F914DBE344E5C11B697154 347E09F54C4108A1D71FA878E4B07D35FE056DFBA2D7B99C8F01134CEEAD849AAD3AF0CB60505D 519AFC82A4BF5B342575B774D88173F1BCF2D914026D3413FF187F9C8FCE3709CF0F7E9A793483 876A4FD3F0A29DD8DB7F470E88DFEC249A91BACCAA65AE26EFBC9CBD550A935741A5501021B9AE 064596C775BE5967FDFD3FC595EC5CEC2F185EDCF11492E76C8EB22CF5C91BB63E9AE2649D8A5B CC7A47943E40E3B473EB5E792919F03F09688B71ABC0B0E2CF64E1DD286236360F7EC828CECDE7 64CBEDB243828139AC4C72378B3EAE67D43CDCFB95DFE17DDEB6C2354FB8C52ADC0A666C40E2A0 4FBCD8C01936F04F1A983B68462205765CC6E782A2F459C040958CD16D8AACA06E1A7BF14BA6FF D570675A54E431B2D2CE78D008F082693123D18E1C3D27171DE5940F63C3FA5480E80B5727F684 EBC48DEF479E345D2C9003481AE5A7FE20A1EB0CB422FD2BA07A3208901CA8D782DA95F0A6DE2C CA3DE689C498A10CB8E5AF0A2203C5C147BC17BA14B4C59A34B9351321EFB281494423D0B784E1 622E2F3EE7591A23113B3B90D34D824549B3A0B513B8BFBAADA9E1C4879251BCA93E6C40A8731D 19B411F1FA3C3F3BCEB63F5B9B8E868D4F0B966AA867EB2D4C301FE6A1D35159B4B7BAF8227D6F F7A86BBD70178E4EF798799F4B43E296A889120BE0828EC211A38BF5A5AAC3C00494B0AEE6ADC1 B8FF56733A3FAF015E6BA38FA59DB63FB3C9BA355E5F2A555903E4A22F2D1F26AA89C21A623DC0 F0D8AD654C3FBC752FF21C16321F5027B4353F6C12FD340D272C2D4F30ECC9B58DC4A42F71B954 B2764E077E0CEF1FDEBA5A6A8FE14F3AF0122C0918DAF87B157BE507BBB50DA1F208534607D906 D45CA3444CE68FCCE04739262BA5B3B0DC0FAEADD86FC94FF14548C98592F91F89948A173B76B0 8D2F3F845DD251F09AFE656F69D115157309D537E4F663CAFFDA726A5C62DF8EDE1EEC7916F86E CEF600BA02901BC5A56086478A867024C58A4D8A631736FEA04F09C9DCB4B3EEF89A0C5767B3EB 8B0C2E5D08974638E79EB2CFDB509E0948BC42E1A9A29DDB09BD44BF28186C3C5AD4629D7B1396 610782E464BC4EC12B2C484F01250BCBBECCEE474F25DA98AC82583467B62D51689EE98AD2FCB1 AA13D44BC1CEE4CFEF34D37FB8789AF5BFA59D05D15449332B46347A7CD1F0791D48BD563BA6A0 876C8B00496E3947C0ECF78782945109BD9306030CBF511C2B4FC1E28868EED9E2039002C98F20 43828EBEC486919082BE71A7CA278361D0EB9DD7E21AE9CA80EFA147DCE160ACCD39924F45A821 D89721CEAC542ECD09E76ADD11FB1710804C63B1268FBC89CEFD28314D9D3AFC26FAA897B3B7E8 C882C4125D3DF9A67E2DE27A0245D4FD9075DE5D7FCBC8E48125D8BEC3972FFE5F8ADEFF1258C7 5506691E5DA81359C24A978EAE086E7E885D8151A515F15A475FDB038946F7D369644279C2186D ACD69FFD922EEB5397F5C3196548CE35D6E35C4DE6D95BE566665E4E0EE11EA43CFB9D0133B5E9 D2A6656AE1861C158AAA97C48DD426205842BBDFAA90DA4D5EB11EF29C24898D9FE9B29B2AB913 2A774418F0190C3D0FA29755168BFB149E0066DFD3BAD7FC405B28A27B2DFB2A356CF6F86ABFC2 18C7E164F6F0D6D4CBE011E77EE8A045A1D1134E115D730D944CF34248C1020E15955661DFB6A1 687CB54FAD1AD759B7EB209E6A78B4F3B4F049258E799B6FF7243B26B573D2B26AFCBC36324E2E 9AAF7206D3680EFE913A6E9F4CC8CC7FE5FDBE60D262D378A123D8BA928CDD6651999854F3ACF5 126C00179347DBDB34954378AE5A08A690A98413115809C95A6142A662DDB89BA25B6026064A6B A7D85963FB4D10C0BA1BCF3E73CD597D99C4CA47CEF4692A0EA5DC89C2A92DE5630EF15819840F 10FD394BA987AE798BE15A61AC464345E203B06A3ADD25E1607F9C750887F5E7ED7F2A12109914 542CD396392738C7B7A7DAF58A7823414D648CDA083CAF2133CBC0318CB11464411F85B8FC813B 4D07757D3989E1E5E063F2D8E07E50BCF85811766CD79210C6AAFAF085C74BFA3DA37B45386A6D C83DDCFE3DDBA6B3F999F91406D35374E60CF88F2920208C1D2A162CCA6B27984D905F3C271524 1FBA18949B6684E3433019D3C8B45E454C18485E54A74D196AAF9636E85D179E1B5F0544D09BE1 8855F32091CFE26A425F114C556B995935F821D811E0E5CCF779764DE6EC47256481B25EDCB409 E7A1FD2D72D6B5DD56EC9D4474CD5A9660972D366649D840986AACAA04765435F4EFA7C513A10B 1B67FBB112BBD10490B0BDCF5E5BD4F80787E43895D4EAFC807CF18103A4EE315EC4B71BBB6022 FEB88DE20D8C7E0244B95015DDD03CB93417A691CED38B37C27BD1C510EC50E2D82C5ABD32D24C 29C30888A2E889D0EFC93945681CA613478CBBB222810C4E4478915E598628BAD3A8E31402C1F3 4653671CAFFAA244053AB7174E8576085F90019E0DE486014A115F88DD9DB9B10E91F129DD5A6D 00AA208459CFC5A7A2BD1095DF24BE5DCBCDE96D79E90871084AE04C1DA8DC2459FA0E191FBFFD EA46B20240E40B6467A2455C72427B119BBB07C5725B823C112E734A09D07970748F0D0D969B75 1BAF2451D346FC2C56122EDDB88287B1042B9F24C933F541492D0683DE0B0325AAE667521F66A3 27C863F4AF7F4A937F7BEA60B5299FA5D170F9413A2E6EF5EF70484C0D861EE719126A942E0262 52279876430581F0AF1841719DA6E4D8C3B932837FBDAA3FE08C18E1C89AF300E3AD7DF34FB439 9BE9A757C830E18699450B98B49EED738C09084CA5E06DEF86BC58359DD0D203FFB11EFEB043E3 7B184DA9B71C1AB17A9709FFD273432A34B3D924CB2F29BF5DF84596AD447A049E3A451131D660 57FA9D4C24BF824D43DADBA7D1B2926C9CA62D8AA8C29FB2D00B0EAB7322873FA5F9E2963EF721 6BEDB2D97548F6C40E233B25CB3785258D0E7FC096ACBC0FABACC39DE29BC0E770474A541D87AF 69D3B8E9BFF00AF11DAF9DE908EF674079C7975D7443F30FE21E02B73FF15FD44C619EAA8B9BAA 889266458C136A3A92E7979EB53A04EB00 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%BeginResource: font lbtr %!PS-AdobeFont-1.1: LucidaTypewriter 1.001 %%CreationDate: 1994 Nov 12 10:47:10 % Lucida is a registered trademark of Bigelow & Holmes Inc. % NOTE: This is a partial font in Adobe Type 1 format. % The complete font in fully hinted ATM compatible form is available from Y&Y % (508) 371-3286 USA, email: tech-help@YandY.com, http://www.YandY.com 11 dict begin /FontInfo 9 dict dup begin /version (1.001) readonly def /Notice ((c) 1993, 1994 Bigelow & Homes Inc. Pat. Des. 289,422. All Rights Reserved.) readonly def /Notice ((c) 1994 Y&Y Inc. All Rights Reserved.) readonly def /FullName (Lucida Typewriter) readonly def /FamilyName (LucidaTypewriter) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /FontName /LucidaTypewriter 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 54 /Aditi put dup 35 /Ahmed put dup 37 /Alasdair put dup 39 /Alessio put dup 41 /Ali put dup 43 /Alois put dup 173 /Ammar put dup 47 /Andre put dup 49 /Andrzej put dup 51 /Angelika put dup 53 /Anton put dup 55 /Ari put dup 33 /Arne put dup 59 /Art put dup 61 /Ayman put dup 63 /Barry put dup 65 /Bent put dup 67 /Blair put dup 69 /Bonnie put dup 71 /Brian put dup 73 /Burkhard put dup 75 /Castor put dup 77 /Charles put dup 79 /Chi put dup 81 /Christian put dup 83 /Christoph put dup 85 /Chuck put dup 87 /Clovis put dup 96 /Curt put dup 89 /Cyrus put dup 187 /Don put dup 255 /George put dup 189 /Heinz put dup 179 /Hong put dup 178 /Ivan put dup 56 /Jacqueline put dup 57 /Jagannatha put dup 58 /Jan put dup 60 /Jason put dup 32 /Jeff put dup 62 /Jerzy put dup 34 /Jim put dup 64 /Jiri put dup 36 /Joe put dup 66 /Joel put dup 38 /Johan put dup 68 /John put dup 40 /Johnnie put dup 70 /Jon put dup 42 /Jonas put dup 72 /Jonathan put dup 44 /Jorgen put dup 74 /Jose put dup 46 /Josh put dup 76 /Juan put dup 48 /Justin put dup 78 /Kamal put dup 50 /Karl put dup 80 /Karlheinz put dup 52 /Kaspar put dup 82 /Kees put dup 84 /Keith put dup 86 /Kenchi put dup 252 /Kendall put dup 88 /Kettleson put dup 90 /Kieran put dup 92 /Koen put dup 94 /Kristian put dup 98 /Lalu put dup 100 /Leon put dup 102 /Louis put dup 104 /Luc put dup 106 /Lunjin put dup 110 /Malka put dup 112 /Manuel put dup 108 /Marcy put dup 114 /Mariusz put dup 116 /Martin put dup 118 /Masahiro put dup 120 /Matt put dup 122 /Maurizio put dup 124 /Max put dup 126 /Michael put dup 177 /Murad put dup 91 /Robert put dup 93 /Robin put dup 95 /Rod put dup 97 /Roger put dup 99 /Ron put dup 101 /Rudi put dup 103 /Russell put dup 105 /Sam put dup 107 /Sami put dup 109 /Sanjay put dup 111 /Saroj put dup 113 /Saul put dup 115 /Saulius put dup 117 /Scott put dup 119 /Sean put dup 121 /Sebastian put dup 123 /Shuichi put dup 125 /Stan put dup 163 /Stefan put dup 171 /Surendar put dup 188 /Vladimir put dup 45 /Will put dup 247 /Waldo put dup 215 /Wilfred put readonly def /FontBBox{0 -211 743 940}readonly def %/UniqueID 5054489 def currentdict end currentfile eexec AD776B2EBF901A49F071BF30E3DCFAC47FA0F916EC503FFC9EFF58A2E5E6ABC78B442C3E49096A 372F9AAE7622C3ECBD02783028DD91D32C0749B44F46D712056235A4901EE1E3989B3DC1451624 40AF8B496D8B010216C5D0E3D6D7F34AED88500CEE93E2A4889C2FC011056B0222BA09F5697B86 A1350BEA78ACFDFDB589C8D82923F5F8AD8C1480A7D7EE8ABF2004A86A75BE914F200B220B02DC E0C7FDAF4B89502B119D1FBD3035453DDB3DC564DD8289E85D637884AFEAAF7C6FF38A32C70EF5 C1B638CB40003001895712A251C27020F3B8D9166E77E2A69E1FF83886E0BE4327AC9142301CA3 F4DB60613570C39367B465BD2E11A593DC63EDCC1810C1F5EDBF099DE46A7BC166F52311BE4A2C DFFAB7110560972AD364AE5170A11FEF4E1FC57E896F7B0FE2389F3BE19EB48DB67AC766314064 174EF2E1412F25E41CF45CB6990732C755064FABE454F1B1D5EA703331A09A7A9AF323557024F3 7B24CB30C52216514E014870A174249B7B1C05638083915C9B633E3FA00DBA2DCCAD433B078A91 E405EFD2CF75CEB10E524FD95A2BBFF9EEDDFE3016F6C2D3E901B81B723E4F422A0B1442A0E63C CC52A0E72EDB5035D945A2FA1441886E56D2B10A7B5950BAB79A9653CD37F0AF255B3850E1ADE0 9CFF282133A2E30770C76618F58007FC51C72485EA377798C5C8A00DAB46815939973C8FDEBBC3 7B5C966BEFCE797755B7E73A5E55CC69BDAB56C7E658C86B8FF147630B6D222993D3AC6AD4542C 078835BECCF377ECA61A10F66C41ED8379C2FCC2A5380AC1CCA64D05CB08109D76CB1901D00BD5 4761978C3481B305877CEBCD436944FB66AF914A1C8D2D125DB01ACAFDA9A8F71BA3CC83FB11B1 6ACFFDE43513DF984167288E886247E02501210DD81ED939D5D18EE3EB3644D5EF61D2BE58B7C8 106045C8A3684AABBF8EA6EEE01208F99F865E297A03B426EB16D44B34467735A1FECECEA719CB F2E24F2A15395A18EC4F6A3990D9EAC78BF523D5911AF11C3EAC620D859B0B642984658A94897D 4BA3F1F622F2DFB6861BC85CEED6172393058E882721A9B3D2E00437CF7FB8DA4D1EC8CB1217E1 697149B23FB1BAE92A7E0FEDA0374AF59FF5CD141426C498D2749C85FA6E6E2DD07EE3FFDCEE86 DC3F0225A5EF81DAB98FA26C89B1B020F884D485893B5EFD6019A149D82925F3DD9694A1058065 EE57C94BD63E5DCEF57F5C3C850419EAC7C4BC2FB81A7D0BC322CB0F88943A6F507A2FE460EEEF A17DBA7B0E7493890299AE86ACE258EE4C7EBC2C9713406E365A5B30FB045AE0163723667C9322 B05319D528C8C67AAEF79A6C34459311764B75BC63AB5165F831F1857F6B1D6801E39931FAD9F8 8B61B304696763D30C0B58313D31CC287EED59C97397E8C0A748426DB6C0B7C4CA57A43E7E27A9 A123734DC7EA137F307B9C9074B908E53E60F99E98CA0DE14A5D61967727709E1CB009EC9CD98E 9D796CF35B7B1FF2536FF8CD9E1C24B7CDC0E89DC29BEB398CB420DEC645001D90D59C7A5B5E33 20425FCCFAA23ED880C41BB82A8CADDCB8B5BDB1D57F414F380BBC00B6A8B9591B25AEEEC69B64 D671A078F39369EDA9E5C9FED9D179AC25F37A4E4D1E438B180B24D851812E407B242F932D9D07 EE2E42BAF2FE9EFD338345C15F1C8329E91644DB1EA96E6F45871D8EAFF292286D7A70281381F5 82CF13F5F987F423463C2DB96A23D3D9CEF5B4636A092BA8FC7C97AB42BADB4DE493C0B0A54C81 82650C094D0B4591A2891949270492240334842911DFD640AEB2B5CB036BEEF59CEAAE37AEEB4F 4CB45AAEDEBE062358058A0D697972BB11E9F30ECBEAE599E404C7BC4C93FC3C2A604CF7F9183A 96962D3D0F03FEBF8D7A171E9537EDB0F8769AD1A442BBEE6F003B87F9EC0C4DCAB4C1BE74EF54 73FAD92638E347980505361CA70D6A28EB18E83ACCBC73C481D4B81F62EC2FB250696E436A8788 2728E8E960E09A330121492079CD349F5C8FDF0CE6824495FB17A3A97D7C031F9E8B50D10234D3 C02792AF0C0BBAB393968B49EDF5BD4F84D83DDB9500A9EAE7EEDDA7CEDFC2A6B3B71F885487B3 31028361BDA2334E83820C7E73A67B200F8E08B742DC3BFFF6E363AA1EA72DB7CEA77826A5D024 68C8B19EFF5F8ADEFF5235AE6AA50F43C5F2EB56AFA58470FB2CE038D35DF1FDB5135B8CAA9F3E F27BACD9D828623636044D161009F558132A6B6DF4AE9CA3EA9DCF94D961D7CB962C4EA67E887F B9D7A3C5F91166D41C8427A1E0C8BA49C21E968D52B92BD7E7B1F5B1800A27F3F7321E3D200B77 98D3F4B0AC1A396BE11D0C919F55CD8AF1406321E8EEF169B785AB38BA5AA61A5EB09A9F312697 92D98DE98AE49A1308A5706738125DE51C98AA3AFBBB10124FFCE47F72BA6A1E5D96FB5BD8F989 D1AB41DA7C2C71FD1C02CE697C81A0512182ECA66EC14CC8E473378FA9EB3927BC9EA91B1BBA8E 0C70BA78B1F7DB3124246AA9E4E349421623DC408D756578B11218BE2D6B613186D1D094179200 8960A7F1B266D7C4DABF9081725EF2E5806AE27E5D8E81CC7B98C9CDF8D319208DD7A75C2B0B1A 7C13DE5CA9912EF40371D9F415840ED99AC446E1EC958001243B0C39641846EE67E79217DC6AF3 02891C024119B55AE58D14B28B68225733BFDA7BC4D54EC2EC58AEF027BD34EDDDE2336EA8B34C 63EAACC4D255340CEB8166FBDA86587E207C06C6F804C366822435388ADD4BDCA7E345DA3C3912 16C19BD9F424C5C5596E3D1BF1C6601D5967942070320981295BECA7EACAA9017B29EE70538768 5DAA8B31D815A53E446EEEB107B369B824C97D5730A4D28ADDB131FA243225A69DB5CC61C9CB21 018510F1930F3AF2AE3987D5110BED80CD8B6BF24998AC07DFB9C648B0BDE300DA8853FCBC3C4E C47181B1665670E4809D03B0FEC298D1E22937C45159BF0E1C3278D727E40CD00A3DAB814D16C0 453C20F343C8767778E20C3E12A9C0F30CF38F782C91B678FA8B73FAF9AB8337EBC636E05518DA 74C57B6696BAF384BC34CF1F50DC361C2E745A9906DD87BB93310DAEA23BCD0AA967E8C062EE03 F573B67C6DBA52C3C78E4A6BC9A879A97924F26EA053CB90F1AE4968BEB209B7496B99E7102390 4591EA1246F12A2B401C36C3D585A3C3E42E95316D7B3BB95509256DBECBFCFA8182EE874AA624 B74C146E164A7509867514349FC6ED41A0EA7375C81E58CAE6AFC5524E4506458FDFF6B6F94A50 18BB41CB3BFFA90AC6A605B372714552AC2CABD4BBB9400485A50E1122F69011BEFD2EA53EF4B5 4DF3481CDB4F97F8BBB549612C3EEF4E860143EB2FAD42E5B9D5913E53DAE0B3468B191C8ED4E2 4B5E8CED287E7012FA0D16B8019EB890D9A8BAA01629B0CEA69402973EFDC1618CA995505606DE DD18D0474B4E08F7FFE947C323A138F944A950734A4586FE82A08B7C2967E67BC975B875A2AAE5 05935906A0484CC6C2478EF1EC03E885D86CEBBE5101101C11B7B8165E132D2B427B8583BCFC89 85A7BBD5B56D12F8C11796232B430613A8B4540BF45C97B6067A74BBFBF64851305257D1BEC901 238A7303E12BA887117301DF80559342A4B551F8189E9DDBC5251D2D384831269A092ED1971292 2396105767405896450A1F07F6B660F4BFD98369836EC514D418E4ACD93095A6AA2C44D0912217 F48B92A5D7CA170A6293B0A4139BBBB39131E2B6F5CCFACB550AD74DCD4D466AD9AF69A409D09F 5ACE8C98851C20E19E4D44B1DB30905B9BE08AC52E0A1548793C591CE0E29DD2B102756822B36C 6E4BC505003DEE549BBAA843BA5EFF252F0A5E4CF14D1EA86F46ADDB6EF52427E0B6E2861583D0 885196B68E53D9B72793100CBAF160F7ABAD3A8E2887D078E7F78FDB1437F0A58A20C7E300ABA8 031E30B35D34628DF6E8A9689F2C5A779D51D6B673F38730E2C28CD4822168D037138B5DFA7A66 4318B681D41864AF487BDAC6E635996D21C5EF1D16BE5CAF809C6E34AA787121164292ACFFA289 15A115A11700B26B0BECD9B05A4CE538438BF67209443B4ADAB5BBC40F9F354A90CE53F0C24AC1 F2C37FBB9022B23FC9111E292ABA30410005355D49B56D38F4C33C37F8A891A88B2F51957420EA E5D22618FEFFB7C1A6436E75E4E6F4F8B3B847D4CA12D3D925A3F1F66EB6D87B19A53042FC860D 2A57D2B2967F001F6B56DABED79E82D33107FAD1F46172D4EF1A52FFBAB95A33180B0AEBECB34B BFA4DD57AD85FCC81833CECA2A9D4667923A57CF8CEA991565051E3BD29DC4CAAF8B8DFBF3A76C 8EDAD02C5F5EEEC19D462EB48758B2440329F43A38CC21D68D26FC54179ECF102F15AD9AB1DA75 046419CD4B0FE0BB79C77A72CB9583EB321C978C8F68A3568C52CF0A85C938A8065D18DFAC5C2B FDC4659C10A237F09B924DDE6B6E09EFB77C158F9DC22E6310ACAB98218FFB6D547ED3D5590541 AD5862078A9CB34C2BB08B4C3E620E0802E99DD0572B36E7B7B9DB269FBAD73F7A49F711E2F790 2C0F15494D642FD63010E3F1B5240ED79B617A655D5FBBB5EACD66B85F02C54023640DF5150BF9 88B62D82E068EA4E35824FA098321F86B68DFDEEB8F575B85AA76ACFD6FE55B40D2B141DCC1B65 DDDAAA3E790F6B0B491E80DE0277D25D48DEAB2D8E48A004C36665468CBE3BA496C57596AB679D C80E9F744FBE8041D3AD6F077CF65B0612F180E8403CB8D58BDF46FA5615F5BAE1AFE3959FD4A3 EB1743ACC7DE83ABB701E949613BA573A67B4E9C816348078B2F857609582E5F144BE599EE4B15 85A08F81174FFDBCD8AC2258B7FF161EB3A1849054B66934DD76DE536680E3AA92EAF1985D5B56 C68B693A3EC10AB0FFB2B88609E8870670D2AACBA8B20E9FC5ECA607D3D90167453BB172484A55 141AD585EF5173AEF115B5BD89B653246AF9C2FE922A8F56B78E797C497318FCACD97E8F33627F 579C8D1254166906EB06F96DD5003DB43878316E2EC4109E8FCBFA4B978AA15701BB16D633C2B6 502F6566AA3869B9C94AB303617C3787C7CC6CBA808FE9C4E67725672D654E075657CD646E26A5 82C68B47CE90C154A51CA289747585668A5A2D4D73D97E730FDA8F9B648B685B409A742AEAFAA2 A818D0897970766B186FAB6836899A1091CD3B9503533334293ED15CF42143C13CE2D05A6EAA2E D1D12A3DAF28F9178B9448E4EC2A8FF6CADBFBEEE028AEC622D3CBA1118E92C98C4B303F8588A2 3012067D2E1481E68B4ADCD6594737FB2206763B5023A0148BA31A165DE5384C63480CAF82E59C 28A133A775A6E7E3A5A17CB8D9D6A3C9F3E638F67CE5D58926932DA3A9DEA6ED2CB7B5BBF07C6E CA417769D07B64A534906E5CB96DEC73E8093209CD2A85120F6E3216B5171B4BA67F2538785907 BF3B8A912CD7E6362E528AC47FC14F2832924FB512259CCE6B650AC1730C5E531AA826D86CB8A9 D9AD673294D4F1D3CFDF738BE5BC6C9401A164C6E7850794ED6587D592F44D409855639AB72C01 6C55878BCBE20DEC3D4C15B0C0D47EEE44D6A4E91AA1C297D25A44378636BE4EB6517BD486DE12 950F53AF60D94F28419AE67BC2316E26BA82ADA180577C6CE2A56FDF0C1EA9B9CA2EF55A95125F D667870226ED5D780A34EB34F468460EBFB8152024F200E40C6D42D5C5513E163C02B82C42FBF2 E4433B60344D3EBEA637C78F734FF3321E743437F5AD1B92429B46ABBDE8E115AEE2904B3F3FE2 369679466A59EC0433FDB261E8B2F227CEA66E4C57DF67F92284F0332A4F4E46431F282EF59975 C430121C5E833A8174095118BCF0CEC899EBA8313C3690E85225F5212ECE4BB82902B0C662D78C 37747BE77B81F47C24F088F5F94A18BA923E54DDF65B9DDF5E9D64E4D8B086BB808CA791A0E8DC 2DBBA31CD58D21489EB64B11560AF93796A8E1E206DC7C15F4310FE985E47A929F76A6BC154FF4 2C07B6F96E03F1D6BEB10A0E053C8C7DF0692929D1B62A3074DCAC64B1A6821FD25F6B434BB016 E3CB58286848D04B8E743C400D477FA5F2130352AB8932CBFDFB9FB5C6C6A6EE9DDBA6DC41589A 89D5F223DEBECC40BBFE5CB5E5DA18A511450C6A679D10FBF99F6A391B11189B921246FDF6F552 5083A1361F6B232E1F5A25F5E1D0DFDB1B812BA87143407C8ECABC78E5C7AA0531293AC7909A8F 7E27C5A87099723739C93CC4F955995D664D4D043D5F4B27028D336A03313A6BFD8A4E1F4023DE 1AA5A0F7EFAAC52FF9378BB890ED9B29F50DBBB920676A54FDAD07963E2846D3733B7417BA5334 5F57F1372E89F4020DC6A0AB9035328B0DF0DF71110C2A452D2702488A229B54FEE6845814C21F 764007C8E119CF84454F608C91E1797DB85D9B8210BA1F7A7CD12B2A8AD55DAA18CF2042F4857E D37C2ACDB63984DABCCC6BDF6A119C464C7D6EC30CB2E4620948B1B7BEA3A2DD88B15EFA953B3B 69C2A624A0CAEAEF17915ED4389D1217080B7F7D91887E055A86A6B287490DAD12D6165A0243A7 A64587BD329E130F8E522D6570E59A33595672C7110FA2B8DDA2EC48F45671492804DAE5DB40A5 42E21C27D2A5F2C37F00E871C3087613F11C6249EB926A0463D0486C5D5919A0A6A556D27A6AC6 0E6065AE76BCCFCC3525732DF91F7C0F24A09A8C2053C231348BAEEB93395AD4DF4AF7A99DB0CA 9CB512D3D71496A74CD776A68E38B90673300A297F6A244CCD0341112F42CB9955DA3980C15BD9 68A2B0DDACE0A835ECCEF41E8CF4EDCB493B59882F812BC4D85694E508FC0CAA2AFDE8C0B21F2E A861F1620F6D01DFAF25B3ED11A7753395F97FBCBBD1E3AECC00B5940A6651BBFAB3556F720081 8AB5744975F71644FD46B060CF74147238B6ADC1E9FAFCBB3C2D2A3F92FD4C141C520978A992EF 90B23EE6178602D2ADCD143E49C6BD72D24C3581F7F1A76E9122B4D8C9DFA3FA94D3CABE5F84DC BDD90ED86A2E6D8C63EF7177AE85AEDE1A594DBC3C249A7B108AFCC6C75A502EE3CA0E733808AE ED05CD0B95431DF8AFCBE86D9EA04971A1ADC6558B5B82E5BC3F98AF6DC4401B04A4D39335C7D8 13DA80152ACDBF6498B99B3E314D18981340A1117D206368E4F2BE11F46911B33BD6FE35B0109E 5B294F59D3F025FEA5C2834ACFF2BE105AB95BAF201BC50A4D98B85C970AF3E39E0B05D15DF28D 0A18E82FCC16D85BAC813A9501A10F4CDFD022905FA5B10C8763361BFC4CB0FCE8654062C0002D AADE193096D10973533795666EEE0AE8B7BC76D60B1713769DAB8AEAFE36A6E6786DCF15A1A890 7C4DF6D252A5CCE68B28B6F564060A53FCC5E39E97FF61DCDA09DB31BAC530C8F5B999B1FC4E36 A2906088897488081D74802A693DED16DCF651F62C15EDD2BC721619F848EBDCF226DFC535A526 C3247E225CB344AAAFE6A954E89B8330A9F5B05961B5A7D362CCD2268D993EDCEBFD46C2944C91 7F004CD27CAC0F142366D8F2419CA77C36770355CAB1C3BBAEDBD7F4D0150C4BEA551AAE4CF898 E5962B6579F5B13A3CAD2EC25AD7AA6015D07028BE165BD40F27A9B33FD805B8F42326CF94589B 29249E4859A8D0F306E3BCB3A7EC3298904B0CC87E913B90149C765A43CC39144D523D6B26A509 E00236093EE99B3513AC69DC5A2941F1E48A71B213559621E5BE6A641D943FE3A13FFD796F2BB1 A6C452A24E4B9864FBD9A9B5331DFBC5DCAAFF5EC6232F15E9412BC2230E8394F5C0F92244FE91 8043D83E3790475F6B35673F695244CB303D708E8E92731C657D81C7A28EB491FD849179BD0886 E72E47F1B4C34B465B4B0A212D57DD804C7CDF5814B1E6B87C9ACB9C74E1EAD3C4B8889EA4F25A 0CE27AF6F91593F0DA3F55C15C9EC3CDA8D6BEB60FA0D8CFDD2C34C1B0143C36A80B3F77E9E4CA CD42068746943063788129B9B10DD969706035C3FB7971E9A56EF6FB3A0B4ADD1D977E014E1417 ED81B819435C8D8002AF809C6A252FCF5F17BFBC747BB7E604C9328F353016B85A69F468164401 67563700E8EF94313BBFCEC58B3FA6C89C0F79AAA61537DCE0B489ADF40540989FB040E2FFC535 0B85D9C011A94B7A806482E02C1038F47D392BE62F7A192CA4659D8F0A17F1D53DBE33A6749125 CB64549F2DF8FC0283E48713E166A6401D1DB6193DA6F4DFA2AA7430EBFDE3DB993A6C8B58132F 3D57AB5E466566ABB13D5C29BA2262F3F6F574D275CDCD653E1F8F824F516B1C688CE97C14FF3E BAB81F8FBF0A6F64648BBE7F5AD5C331614E5CFF13CEA871D865F4F788E4ADE8984BD939AB33E5 17121276461DD3125F3B56CA87900CB449B6497FA6D4F5FB859038374D5BE0AD2A34B1ACC9479D 5530AE8EF469891C174F8860837F7A22F72590CB8309079CDE324BC60787EC690F901A69FAE187 2B6D4D4576F06F5CC37495D0C72A45AD47D2F6CD216FAE7981E4859B5845FBCFCB61829A6BC8A8 E7A9A0F53C020767B5AABE20CFBF2504BE5BC7D32DE9B56BB1F0C48330635D3E72E4913CB1BE01 28C6BD47FEBED891A3FAD8BBD5F916B466E974F9CB2B3129B29DF1F5FBC7B2BF2AB8B2769C12E0 435ED3208EB20E9657200806391492BB1E5899EE594DDAD170A0A61BB6A1D0581D685C80CC2F9C 5E5AF62ADFAB656A33D22F7A572FD25DEBBFEC4B36242F8D77D18A0CBDE2FA03CB8E9394B9CD88 D63CAB57E79081650E58E4BCD0E5A878CE4621251A287C64035BBEAA80881D504C75032F89280B FBFC4991241167BEBA653AF5EAE9B1A3280A58B9C4C59B2FC47659FD1F42D37DB5470E46D2ACB5 62A1D0DA3F4EC9DBEC40635018A141152BDC88F33E79C6DA6DD616BF689E052C0464B62A1E61A3 E58CC805DEE666FE4B4F0096D6D682384A2E95FFD0B542AEF848E1B54056BAEECE36F0C62099F0 4E0AEBC007352614E0349A18A2614FD3998C9907BBDB681C74DC3A24E5C002EB64AEFF55CB6EDB 44CA80E99DF02F8A7B1016824AD38FE7264BDAC41E848CC7B7B38B0C50FE417455BE9AE00F0F8F 79B0A5F492C89CDD1D18F6FAC750437A96608C131AAF7A9C5BC0D3110CCBC25B19C7F1E3906C27 8935A398909D2EE97723CE0207E9CB29807CB9F8ADFA813900D190DD0CC8E3CA457E8CD392441B B800B2B30D034ED66518D487F4F3C33DE3FAC0F88D9A6A597379C2500A6954EF80302912AC116A 74A520C2E40AAC299B78F63879F31E2A8429B13DAF83428B12DB5AEEE33E1150A0FF4174DCCBF3 9610D0BB68DDEE4AC044123B208F3D37A5CA6A646DBB821975DA03DEDBC42714949104033A4C31 0FE6BF0B70F922EFF8C51CA42B1CE7FC496B43E2DDB4B20AE6373972105DFA5843E9A64F63342E 36B154E1575BA26998878A96CBC9A34B2E07188D6E1E8E69FA557DB604BCFFAE3675E237D97F5D EF4C8D2257AD409B239F1D9519F9B718C27B998D69EC2B5321F97AFEDD8F7466E64F45A0843594 7B35221BDF77146E4E33F08935C37F0FFD44D506D8382536365FB3972C455A6EAF0761A03A85EC EC2E8D0FD1FBF0BD829F18874C7C25D8F0ED087F9859136919DD52AC3AE08A7D848E5EB11CEB54 2BF71B537DFA59D6E081574AF536813DF6D9B8B31B83BFD52DDEC2D7D833621EE2608619F0A61F CAFF7EC32F2B0727B24937644F40DE81F6D86FC17A3417392B04448A5EC54C0B0BB1B60F38767A 508ECB5B30113246F3A3066310BE7A115CD9D35EF4133A4110B10D62EF3077CBBC8A3C64E5566C 19BBA49AD10E1D5D11BD5A31DC8ED59EE62CC19143533502D580237950FE90B7ED3803F662A522 A3DF2BD026CEAE7D614EB0EB2D29681934DCF9AB2E6124A18FEFA62F2F478B87E2764C59C2EFF8 946D326860363543F0392CB582F6AB173AF2FF031E77C939597381F724D242E49D323CF0BD1023 74B67D028C331B64DB4642946C72E82092A4890A5491130E312ED47DCB238161CFCF412BF7738E 81B3AABB3CA492B716F92BC684615519BB513526C06FD5BAB6F196807D675DA47A7AD0216B7BB1 35C9EFBA46313A9A7D3E40A5B7E6436114846D1032A163305534DDD10DFBBABB912B1E18882A47 5154FD2A0FB33F1E4AA97827FAAD01CD51F62E492AFCF3B870B5B90AF7CE345F99D07F134A790D 312A7FF00B01DF37741A5E2B98DC2CCEE6BAB34978374CF1CE2F83F03ABA437790E0BA33A0124C 2C8F4A13F3F0D00383141A952242B2129A0B96A45B1CC13255B3118991293700BDDB4E29BC913D 0A3B44D9E5F7FCE6D153EF4FF3824FA229F841EF6DE46E113C9B602A298868AFDD1825CEB017DD D59F67ABD724D8ECC9261BF90C413BB4818D060CE5FE0B0EA9CBB65850E5FA181E9713FDA06800 FFE7C53D9EB62B222ABD8E12EB6E149CCA7713C5639ED530A30DD12D69E271782458E53CC14DB7 5B053E7D61DE9E231A78C2391DC18EE092A5F76CD61AE5B7894B78CD378E0FBF8056701D4990DE 1EF0F36E918D98CD907F624E654836F18A579C7BFB23DE3AA9D59229C3FB1A4B857D9EFBD289AD 0FFC27B6EB42148E7AF8A802C99B14ACE59B52A111DBEC97EC5BFB0F970C9B27AD6231D66F1744 74207E935CD40B5D3787D85B46D4C33AFF9DD5029A0172118C624DA5307F9FA33C256FDA460479 205650A52F5591A14027695126E5AE946A7BAF34835CAC37560EA030B3DD2B06A6DFFA0D02F634 E344CDB5260D84FC6338DAD799DAF44C46E4C4DA1854160E76FBCC0916A3EBDE474E358E9E8B32 8F1223DF95A0F1F8CCF619FBA607F0276C5373C293BC4C4D653893B83F3583D9BA549F8D229DB9 44D7B4B835F97197608BEB526AFD58416980C3C8ACA1080C09797DA0A24B185C793636A15FB82C E003906B613CA3D16DF1D7C51033480123FCED0205AE45BE3DBD332DB88D0BDCBB4DB845AC13A4 215B94ECFFA4D4E88B4BC5093770D5DB8FD7B87E8E4FA0E58F651270701EE92A3B287644F56B40 97237BAD7453C25D29B293ACDD4A295284480A3E19DD134E77498E16512ECB44D77EB24D6C35EC 4586D9B73B2F60FA1F758FA86378485C37D595ECE1B0FD80D64CEE30B7F5A51A724E72E18A9B22 AECA8129067304660294A309E9797F8BBE2402581F43D8636648EE6675C4D30A8B50DFE587FC41 E5C04B4430C58AD44F57C8F6AAFD4750AEAE51BD4715838D8BFE522C6F17ACAE809C3C39F50D72 CBADA2547CD9D0DE80980C53D9ED68E73214037B8A8E365BB3DDF7350A2D1B9AF3ED802436D1EC 75C60C3617995E3AB7B8469915D80285E99BEAB6BB88A9B5A388D7D7CB950E7DBC168885FC5173 4FAD3CABD91109104F52525316943C6E16ACD17CAE128D81C0D98357B0B806ACB460A5E7F5F7B2 385060402CAE0CDAF70188977249C809CD4C6B133ED8447B926E1A30D4FCD0968FD3FD45B50F6E BA94E72E87D4BC7ADA4DCC3D6DA0F31517EA9DD89F6751F707980CA84CF406F7A786AD8E4377D7 5506A96F7293999800C1A59CD813F18398A4094D7426E250BD21F87DC58C094BC00A567541BDE3 D17E1BB01C4AAD986D1E79CC4B29234A28A6A323C0FB98B530012E523AFDA4915851952149B238 CCA18B8F974BAF6CCB738D05B6BB1FCB0825FC1920C4E3AE8A1DB3B7C02991A543AFC9D38DDC1A 563793DEC85BF313F6CC40A1C8BBC09580E54EA3CF1E399F8EDB969290A3203D86D67327E567F8 ED390542AABB07A0DA177C3C6B44F5BFBEFB181DBCD1753C6712A6D7835A64B36922173FEEAE67 735FB82A09CBF309246D104DF7B14AD6A6A87DF431004EE72FE7887929F4DB593B0A113F176409 E69892A4EC6CF250F984F2CC2904C788FC7FB9B164B7C3AAF3B9BF5EB17108C52EED49E5E43D16 F94ABBF85F784008958557FF8DA38DC55BB43D6F8671BD2764A9F276C2A039FE5179D23455BD55 539DEA38921C66C7E19EE407CFA868E9CEC0694D756EBD5B9EBDFE6D18D5E9E33433C886B24CA0 B0F131746FA8FFD23D427828A4998D0776549AB2B4F5B610F07AED694655A7152740A275DE60AC BD7811F31203F32D071761E74D0B34BBD8158DC1282ED895F803B7FD689D429C9A2C32B30E098A A790D6247386B89F03310DE4665C3AE77665D885E456B655846956CA33E3A702F79A9695CE7510 329536FB24143DB109D0E858CB20B3056078F0C151419BF06BBB871F925ECC7B4131E54A935645 D4E00EF0EA720ED493E6731508EFF11B81D9A4DDDBBAC935DFDD1B798BA0E34B0D5695233933E7 8C0C9C1DAB44C7BEE45543C3C310C452FCE97964D2B635C5433318FA367D20DDB9DC8CDCEFE0B1 1DDBBA2D7A7010375EE581C7FFE97F89BB91E3FF1624F0EF5FE27CF9A027BC8D1939F91D88A873 5861127EB0CFD88300D3B821DDE0B54B62762466790A949B2DB6372C75732E87F54CE4F05325D2 0643A2F8388DE10E1C4CBFDA85A70F7551CC8A8F088FD46483446E0BE03BDE1B5F2B23D9B99EEF D4641BD0EE2AE3310B0CC0AE418D0C6797840CC5BFC4F54F0D6AF8DC1AAF3DF297D3955ABAC771 214ED10BC9E88A4CEFBE6E07EDF9F7A2F52C144086C13071F24CE826D468098707090EBC28BBCE 12E0AED14488B547A70EB783D97C98CEBF55858B924F0DB6754B3CF833EBB5EC487046A6C3BAE3 AF59F61B699782A6109E0D7544846F4383C849A917ED1750A8F5813F552C231A3E5954F57C8EF4 D02BC790A6DC865F77B78D920D274C2276F9DE3887540C460B1A6029419B9EE6B88FE29204CD4F 62321824A8B72FEF463400CA6A83C2CF8E161C76058CEBB021216ED92B4D889A9CEAE5619E0CE7 DE0B6927577AF0DC385FDD45EB6F116778E91BC1EBB2B6027FC5D39F8A233D27BF581DB38D31F4 20AF47E77AFC2D67A7FE90A10F0D6AF0816BEB7CE905FF00E5C2DA7CEC75EFC3A170495999AFCB 7A9781375C03C495FC9CDD90F9783CFF0926D795F155CE64AF0817726FCBE7BFF6566FA1A1DED6 D4D6C2395E7DC3DDE9484A2FFFE1C67EDD9D8741E17D526079ADA966C5F17105235C7A5E09B82D 1752B97568029925A6E25DD461063227613F02B66AC5DDE9B4018E253263CFB3EEB717BCE0F8FD 36B0EDF5D82D2DB2DF28F72B13D148F741379D7C31443DD9C452B3F5A8889C93F15957064DA4C8 BD8D3032D94A3133695934D299CA4303797B6A49932A1B672A72DDE67106E2BE984CE7E6BAAD36 396AE3EBAFBC268105DCC191E2773ACCBD92A3D32EAF57721C0EF3E34744AE1ADFD9C56669A08C C7E95C1908D43B569D82CFD4CBD7A41D841D10C107E00CE93F033C7449B78660FBF82D157601F6 A9C721C3FC1264A86363B5A151F63C8B646E2D7E5D44C3DD46CBAE571FF53A9F4064540768148C B69B9752D1E99EACDE8BD201373708BF20C689BDE479A0D11DEDA4243E6D0ECD265294C079C7BF 427F12C737CE72238894FAF3571DC588143F2C86EABF4512C63672D5211514D72120ED97AE70E2 FE4291903259BA3521EF94C9D13C5A614AAC9BF14514761F5D3678F4F96DD8B0A20AC00EBB9A43 235A571280B34341E5761EEA38808C7485C6B9D15B72BA4A0281A517FD2E5E660EF9EB5BEEBD43 2D537F8E3E2FD2BC8D221CB3C6E578B1627EF869CAE922CC154B38D2239A7FBC8D85727C1D533D C71E873CF062F0DB2AD29763A482B6A601EFCC9BF9214E9B270BD9633BAD41C2308A02B94E860E 9B74808796488497C3658F3F33CC29EB099CE42B134AB7A5E168013C64F056375DC95FFFCE9AAA 7813C498FF43DDA22D5186F6E7B3AAEA39A72A5C0EEB95A0CB79539FF14FD409F7D357FB06629C D99C5F277996778C7FD19E776CDC015FB37A29AABFF21ACF0BB36A0F8F7D6758F4AFA31FE61F95 10905BE91866BCF1B92CC5638BF90CEDE72FB7F46FB1892F4F4E965DE76D6162C515195A39FBF5 1A7299F01D20021720B8046FF10A5D5185B217BE8B62874281AF2007EAEA8C41911DB195B8C3E1 BF0E466CE3F398A111A03958BAF0707BBF153C1E4F966E4645795126C6912828923BB3952C5099 C0FF6855AFAB944B776511C96B77A9E0459FC52749F0AD982077A227792126507426736F2965AC BEDCD7938A0E27351E5CBBEC3E331BC2568679E1823DBDCFDE6E46E999604924084D583696F05E D161CF7CAE7A56A31A7EB0BDF8F5883A5825597227619EE45655F15CADDD3100604877F7221866 A27520BA9F4C72A5B7A1B45549C599BECDA8D24BF7504ED6032981AD5EB25E7DCEF6B0E7295F01 0C881F0B0B28C39CBF0708B8F96AFF3A0193AED2DFD8AC7E6F4D85F2EE21971A670C010857737D 4D3C1CC4D1EA8FEEA7756D34FA95B2BE2A27E5864A4183F75861F2EA00D050F04D6C48113EDD40 75A78C5C64E41B437AB8FD6E12C5A25ECA76816702CEEC2B3FE8DE398A130CC49330BDEFB0D76D 047E035448A59484D48D18EFC534328A8556858D4B45CC05377B8140598AFA383939E4A7F73561 68C7B016D012C37B405D4523A1DB884F005A2572A039847C7C065B8B92DDC9BC1E803692A39CC0 0A49CDF0AD24168154D03BFD56E1EADFE29E556B52FD11CF838378E4E4FEAD5243456648DBED06 2A47FA57542E137A9E035569D068F08E43DC4031D85925DEC164FF91F8C207692E8DADBAED305D D38FB4952C61F50F9E4E4CBDE408A16801732F3EFD6F2D600CFAD6F691BD36279AD251D991F24D 18DA3168749E8469A9A39F2106B98701956F265C3DA4081278A3366118DAC644DD5B4B5DBCF7B6 EF6AB84D9C41350B18320C0FFEE0B5C26AEAE1A6028093337FDB82EC40105175175CC19A7884A0 B07DC34C349177DD4BCDC16323E36197073F1D6447BAA0A45F0DE7453E6891AF0FE2D21C26D9BE 37454F2F83F6E974DFBB014511275360A9FDBF6CB77510C92A45C0C1FF6A004F854FDD323CA4EA 45EF334B4BD189F1131FFA7B4C7FBE315DD788FF2D89DC3804ACC9D689816A22E39BA45AA98AAD 6971FFD22B5CF38794385EA00AE18FEA562E0AD2688CF6176E1FF4CF8910ABE1C4E98F59750C26 9858AD2B32E717C29D97878953F729AE13B3403F997593542639DEEACE7BB88D45B6C4FCDBBAFA 3B18BC0F085B25A87B16BBD084EE088FDBF6D62F4E65052E374F2DC012DF690E23C6A00A5E8760 B2B2A213FA8D0B31E08070741FD2D8752274CD71B1CF566890113EA34518457B1778DC1CA38345 78502A62CF4CF563252B3ECF554D477283CBE6AA7A434A279AB71B2CF20765F5B197592C681FE4 6ABC6115B49D776B1CD457A3335FB3B61B4258EB77327688686072B7906B2D8016C5FB12A626D7 E8B2590CDF574F3A410D75FDECE4BE7DDBAD69EDA08F44B73D6F7C92B97C67201FA2AD698D058C EB7AE6C88B699207669D68FAEBAC5E75905B9688707B199F516E944056C2CBE773CC95BCE59D82 AA93DF52227D477CC2345EA8F1A2CB96A00D186F3A02C30FC0330EDACC404ABCCE86F0462784B9 7C1F55A03C4ED89C79C0BD3A0AF3B19259963CE966F654D7D4EF9B9093B27526E5C09A084F3C9F DDF3C8F261A5720DFEE14B6B198D8F0CEA0CCCC7B70CE185F0B65B0B4E5CE79898A8E3DBEBF65E A2A7F82EFD92AA7EB65AABAC5A3CEE49070E78D5C591409756EB4A706DE5192D13083C4A10BBCE 3A818990406945A4036CAB65E3F53A54E6992866E130F01DBADC1F15751256DFCB408DCC671CA0 731A01A6457CB40B4A04BBB0BF77C8B655ABD484705AD31CBB88CDDC3C599B35B86D3C4BB8B8E6 7751A095E43C9B9228C58A920E48D679DEAA88DEEC58F7B5573DE4D7C7288BA9F0A5899D1E6588 557ECAA123CF7D504406BB03F580FE02A2E88FA32F9A824B5A895CE8EB1BC271FF2702FA463454 717D37672DF5C7F78561F889EB0E57984A96E1430B26E27BAEFFA17AAB5FB94A890AF8FB57AEF2 4FE880121E0B31708F1AE9B09DBE64B26A5EBFBE42A4BBC0C3ADEC0A14CF7496AA53263D4889B0 929645EC2B8C5144A4D76FDEDE6345B1407F990C5D7644B21C0D827AEA7D4E8D4D17311099A703 689B2F68A9EFE15696C589BC02FAC8F5CD6FF68964EB222EE012E28A490614BA93405E4F2798EA 0E8A8B5EED8D7C554737ECD26CCFF16F50C8AF2373E8688DCC297269C2836E4FED50EABA465EF6 908DF9F55DA80A501E0165DBEE8E3F9FCE4F6B9C31AD5505E71AD3D7FFE6EAA9D764B965FC163A B0ABF7DFEE391546EB78C79466886C7393D4036FA247E9C4DEC84FE72D4B5AFC6D7FE58714C70A AC3799C4B419D3701267915677FBD571073B70D68F141651A59ABF8B6483E216F90117879A34CA 43BFA857B831DFE321C2FAFB887131B607D2B9AE7F0290705C254716161DB40AA383006A8B74A5 767DEDEF5D60711B5A9E45D63A6EBDB15740AA04BAAE078FAD7FDCB9D26AE3DBB66ECBD9D7E641 D064B881BF5190FB31EECBF3659036FC145D8BF0DFB325A78F0B3723ED8DD2A967BF916A90A92C 32292F3330D3F1FA1F31CD6AF9373D12A1EDFA00EE7A4859BB6F6D4D6F6F7F944ACDE744E3D6DD CD646F83539F983B1C70BD94E1FF6CD3E072F06DF4193676388C95A3E4E3D07ECD40FB6928AC52 CBCCF63B71B47DF4567E19E0840D6452494EC3883F6144E5791853B0EBF93D6DDDF15B3C8AA14D 8A20E191DE9ABEB1ADF7B19B3B688961F0B86E215451E4DD52BA655B00D1495BF08660AA5CE7F7 134698F4C73B97103D1074220946455466FDC08FFC63A1C97D60E0B931E94A6A559BAF54574696 D5F5460FB18B3213144F42F1AA8D5FEC8361A6E401A82454C897403E82DEED2B65E6E50CC603DC 34BEF5E2EF0F2FC24421E5DF012640D1C6E5C87F2CC8A3997362E27463CE29C903A5B32863321C 55B8540DC3DDAB6892FF114F3EF72647A3525119AED1A65DBC779358C5AF9F3AEDB5AE85085CF8 9F55C71EE44D229C122DE658C83290BD82FC39F044163EB56F841A9E568D50493B535837415A12 7D618BE80156E1AF95AC39BE234ACA11CFE3744A8AF714724C04359EC8729BBEA07EB8908FC41D 4E5D045D2261A9E20C66A161F98584A2FD1AA56473A0287082ABF956B6F34C0AC3D6139C00020C A13C7CDC60F1F1778CAB99930BF104139967B728C75120BB7FC3625513C7F992CAE757EEAC275B 7172522F0E178F4EB6F862080D0494FCC5F159DA45FEDD5C7A19064BF1EC59531E973A9846C5A2 F8BD12B34B0152021D6C41F7226BE7DD8876AEFE003A4DD181EC983284F8855F9535318246A668 196BACDC3A71CCBB1BDA4547168F0624CB896CF96E7629EC8D1BD11530E5E8D5568D77D9DCAC00 ADB7021BD4BF6FC3E1F178C51E67781337D7D3AC1A09ECA650B8278FF569501CBB021B2C8C9ED1 C9A23380D3CA67ED0E27A41929FD835DB776103C8CBE4498470C2ADA09AAD19EA5D781C3D5132E 8C343AFC91E36ABD78327AF6A4F589F146E702BBF6A6C3EA6F720B5052FA18E4BCCDD1A7B8C7A0 E654A9883396E6442EDCF3ECB05C55B0895C130ECD3B9544A3FAEB5ADA3F5CE8C5FF342D2DA291 2E9FA59276DB5418BC5B065FCE1ABD42FF3238894BF00C86C52030258449D995943259F600B1BB 8F63809E2D84425DB00AF60E9E8AE791E5ACB6D3E5C7FC9023144DF022F86FFFB37D30899ED2D9 FA1A5CA5E442170A2BF817985767EEA87C4F57B8E19681F607EBAA22860C8C549738FE95D85F4D 2027CF0F99F31985FC568EAF856FFFC056B118EAAF09E8982C0DFE550FDD8652F3D94CA70DE411 00C17F820E4A7A2217619B20FC0303AF62BFF042764382147169272BE9769043C3D41F9A246A01 C4C63FC7DC2FD62306EE813196D620F584B007BCA0286A39E296B210F64F684CFB2F9CCCA5B74E 950D35A1F18B19A26940674DF66392255091A6A6ECE640DD8142F5CBEF4A7810FD8175C9833539 A34A911E0BDF64DBFFC534EE22CA6229D62B7A95DCACC46D3989BCC85749B248523AD44ABFE05B E796126E6745E1DD1653FB938612FCF0C877566CA9F686823F4D069234EC7E3826D0080C32615A 88423A09651A9F3EE6A9DCC95646FB0E7E24C7C3372C6D6CDF1375CB4EB1440FE95C5C7FE435B7 290E78ABCC143A9C015B410A8555271833A466D49AC0611340731580BD29F73A2DCDBCBAA6E07B 643DCF9B18613A6652B655A2167CBB1CCB0FA71534BB0759873FF5B4CDEE677AFA1059E1F4519E EFC1BEF079A9C04D13842F516B096D3D281533502C4023E13C25C59C662340A45B6874B5C9F08A 08BE03B7C35FE00ED31BBFC5119463F2FB1165D22F117A04F27FCB5F0949BFAD0E882703755454 B629821B7EB4B048FBBC21E1390620EDFDE83B894FFB434632EB7B4B21647D4C9660E7213902E3 E2B6AF6181D797F2551513F3529E6C7679712CBF72F2437CD4685E117AD8C2D61A28132170427D 398392C7A27EBA6C244C6BD7700969004D52395FFCE11000B07A7093714F781E353BBC152F2EA5 B275818DA2E9FD5C04F63B23EF722257EAB81FB2AB97C5B8BF455B2AFE648C895A6D38BE154683 831704144F5D8FD68BBC0A96165E27F262804140E34A7C7361CDCDD5F14BA4A45EB7BDFFFF91BD 7429BFC9775BAD532BD4DAB6F7FFE85CBD60FA6D0B138CE116058504803D0F449ACA8C380A7829 A0ED3623A5EE64BB34A345A8720C7B57B1A7C18560A5E56A5DC8C553B58A73762FB04036217CD6 081F8227F61556BE59FF02C0DEA3639D44A6C3C97F921CA96752FB9B9D28597873AE2AE2C38D46 A2AF40DBC3DB23A297503A5579998B0DB6B93D1AA1ED3BF5BCC480D0CD9688135FDD40A3E487B9 A4005AAED374C2E9E036BAAB288AC862726F3FAB60D38B5BB135799A3BE5F4470903445D3A66C8 24256158426369C70439148F4701DDC2F6F6F77559DE968F0305C42B43E665F7E8DCC6D72F055F 038616F9C030A9AF1A06E6036E72640D11962CD4A622A9DCD07C8EBAF060BEB846F25C1ED28835 C28059C5C1FD4987CDBAC09780B5AC782964DBBEC7F776B5DB51B44E3817BFF658D2DC37C4291F E1778D7B964E22AFC5EDDBB03538567378B7F62E806422EAD35C9F6F82046E7E79BFD6FAF3E7E0 A52C63DD5E8C0A838B3969022987DCB7377E15BAC7B1525EA24C666E0C69508881C204BB515233 C9B6FFB3F0B4EE37D12EDE6E192B1A17A7F6699FD6C1E87F03C2D8AC0B9DEC767234A2E7C32016 D3AD9A8015F489BEDA95EC6400EA9DB2CB8626FA253A718FF13FF0E013A172E06C3E5591C15715 C60C30795CAAAB098B52CE441EB71F2063ABBE3DD3558B7F07DB17F49C24A7861589ECD8E825EC 797ABE3521B5924F53045230CF94C34F5BD6F197E008F3BC38401B3AA6BAA7EFF54F1F926677CC FC0E77D5EA05B218213737DB84C21AA724E05F37896667FA8EF4E3899727DDD936BE2F8E64ADBA CA74032C2FF23805D1E6029E7B305F0CD7259865D7271444A5886B5C76CE0DF62429164E844F2E 95880B6BECDBB0BD005229964442A20AE582DF5F3735885E217E4C399535B965047A892BE0985F 6C1EA35B95457414038746316BC93CF4C776AA50650E617A6F0DCC586D3F4CBC19F6043DD04915 F0CE9EA31EFF2F8D36268A044EF15BCA63FC5AE91D7DB0879FE5AA9A3D51BDA3160658ECEFC447 CD2C9A848D1DB4BB48D277EC154B52297EBD188B2B7ABA0E4B840831E1B9B647AF654E1BB08D0A 64446A3BB49FB7F19E8FD8E9084C8B8C93924EFDFD9A9458A4F3B4F1D948B123681DEE542CA97D 6A5857A3E47622A6C6B2EC09768705223894BD7867242D819277C5DB24DCCE8DA6062199482923 4F17F56BB1A0C2A2E099BEAA6D94942AF9706FA6A1D0C67560BD1E3861F8FFD465CE6C48AEC2C1 F762BFD3D4A68B8B25D0FFAE02376B34DC1BAD9B39DAD6FAB6491002A1E6796BE978DC1DC62EA3 9D708671DC9CFE4F757CCCE4DD7F1B0ED59EBF5EF3DCE61C4AA16DD6411B68E8A9CE4FF6AD85E6 F98CE16CE25A8405801669678204CDB7305BD7A29469C539BE2348B8AC412DC95EACA3012D3D96 A3BA334FF4E16EDB9115B83AFD66192142423BDA32D8A76277A763C373217BE75370C5813FD53D E7DCE0807C087DDE87E029F0211CA9F1B1A67E72D7922388A6C84B3C6E3D44B192B0B7588A7DED 100C04F87780F070DDFEF41C90EFC0E0BB8F3692F7D360BA180E1D4579FC1AC671454E413A8613 F40F9CDA8AEFEC06CE40F1DF6FAEBFAEB57AAF73898F869C6BD165B9A3A60C5942A48292B5805E 01897F3DC17253668A774D13E23C5D5D90BB6B8F60E89875B353A8FE0D03ECEC140EBB2B3BE613 907F32DE8F445CFDC60272E5EBC753BC2ED4CBEC34588879870277190FCFBEAAA6D81759C2CE36 6CE0EED2B8915F93BD1ABBA0613DD9E2EE93633EF81F4B36C29F4A24847104ACEC56CA46416884 462AE9C21D1A21D20125B71DC52D38989FBAF0A0A6EC1068E7C963B2B6894326A5E70AE420214F EDAB638988110066D741B301760451CEA275988C2270532D4A78712F28922011D564F12928B4BB 9484657DC0F2378F07A139C75843624CE599A261AFC6192D58F89F36556AFE32531138FA46B505 54898E65B82883BE97CC02B92B7C7D1979F799720345EE930BE3CBC3BA01CDC2311147AA768202 A59BD84F601A5FBF6F882DA51E7644D7B734D89555FFDECED4BD2B14DB3D3C57E0403680796446 3DC5C9D6427B591A00A82E2EE4DB81D533D52857A250E579F9C9D45109F06862E64564B5E18615 4B6AFF5AA065792AAD0D38340C26A0B7C7E4DC7F054A850C0BA6EC8F66535E5CE1758160CF83B3 CD1D0F7EFDA4B0D11E679C74386C2234505F7FB083578BE4D43C4922330EEFE114DAF7C58C0AB8 7E4F6C6511A1B311FB9FC645FD7199015B5491584D2E135C573206A96EC49B6F0BD7428755A69C 9D1DAE3978F70CF6F2B518C74B81908258509FC96282AAB0DEE885CD5D66B5A91BBBF74B08142A 827DA25A4F0FBC4E1BDB4952556B04F32DB3A8CE6873DA2EE081E81DC1D3C429BD76E62986CCBE D21F956E4F45F869E0E00FBFD1B17011439E6E0196C8A7726A96186634E51951B5DC1CC4F96850 9AF5DB930D892EA290C70EDCC65DD905D6AF9221AF3C6EE64E01FC3A37EB358A759DDE53CDDC74 B6937F1DA36B00174481A40AD8B6E9BA2F9BA1A15D80C560BF4A3CAB972DD12B2890C3BDEB06EB FE05BAB7E2BCDAFC641643B67D553AD78D5CC498B43A458C06E9A428307498EB76BD7096F2DEBD 2905AB09BC0E748239D90663C26A3FAA9347C32D44BEEA2DDECCA24825DD2A154E8A82282F4122 96D11C6E0CA8F28CCD52A3E0A9B442838BD6FE90A931C8A462A97759CC9EE21B47C44B2032E5B4 083750CA3483E688F67FBE91EAC9199D49963060712314618A725457FB71945C535BCD330A9D8D 850EA0EB723BE0A00F2C3A8E6C80660F59A84DE34A52F00725C945521ACFFFCE8FA1CBC2CA9F9C C98AB2987C636CFB83DB46B4B3A7F1CF4EECF6E08A3B94229B54CB34272829C4BC264E303DFA2B 170D5E7A66A7EE3C463502D5425AB0739F1DFF5FE9B751975E4379569580B641C7296DFEA54E7A 99A9478583A0D8DE565575DB2CD00B35D2BF82A5597F4134CD3F7A201C80DA9AF49EB8D9D049C2 5869843331F140753DAAF303592715A35751B4597F458F5BD9A894D8E2173E03C85853515E3D71 CDB51E7000279E462386A1DBAC817073DDD29CB89F211CD5FCEB9657C107041E605DDBBB7275F8 B084FBB48A233D826F9D3079F56BEA088092B8156B4C38ECCBAE22EDF9135E5E2DE147EAF1D562 2735F9FC9C5124149AEE31FD4B35CBBD848E81605EF9B89C0E116E4394195122D3F5D28A60CCD3 19A85D7EF24CFEA5AA946B8EE737786DFD5A6B2C1100F3F2DCABDEBC012CBC19AD314198536720 37233DA6D3B6AB83458179190D11FC866BD3343C9CB85381BBFE2226D612BCE91D13226F4AA348 C48D5F05D927518E5587BF7EEAE0B2E40F6D2F5847B25832970681DCDDE5A3DAB4E305DC7CCF1D 817F07975F4575D97355347E3AA2DA7A8B230B81673ABF1052EEE2F524D5330975E811FC32AF0F E8538EF37B67EDE2F2D521F45AEE885D379835E820C8EFFDDD7E3E381BF267E32E9E6DC40A1D36 D0068A698B970C492B79D5AE4C645286631FF56704053F81474FD546FC9498CDE9176F7483F9F1 7FF8654B0EAFC6352FF7070D969C8F7005389B7F465EF1B6C0A1329A2B18F577586CF4B9427D48 886B0AC61575474C87A37340B7EFC0090F3E489505EF51BA12B1394144F3895AABC6916DFA5C6A 4E8D07D3E351853A2E0370688E5E6000F5B751AFB8821C4C25DE80A9640ECC48B99E05C94E4932 D120A4893E85CC91CDFB5A7218C972A482914E5401ACFE7BFF59B4D8D5E5F563AEAE5E34B052A7 2ED5ED7854C32C20C933D68992DEAAD311F6DE5C03DD24B878F536560A2F43E5FC70452A39C7B0 AE56A0A559607EDC991BE7F571857A7F55FEDC84C679B9BE89401F504805BDDCC9CAA625B2111B C4815AC79A78AAEA643466199721879697A341639ED003B5FA52331D3A2AE25D8F20EACCBAF791 D62421A00937BFDDF444EB59D2F460AAFDF8BE9F82D5FD1D48F6712B908E5FA81345A567C18705 6944C722C55A0D418ABB1BC622EEC5D416F6F52BC188DD51405215AD6B75B04DBF4BC6D85F0618 FA111126E41351C3F7B0667F8FC08ED06342B2DB6201A1A63AB018B2FE5FD760366A9A420F56A6 C61B835F9AB9F385A81430F867146C8B01784534CC959126389D1CAFE10E3AF40DBE594B6B9219 8F50D9759E60519DE8AB4CC0224ED624A3AA9FC95AAFD676706448A9F05BF008095121314FD044 A3A350ABFD1CCCD5EB18DBD2EA71C3DB2F37066021E39F4E77CB1B155D05CE1FA00C8A59FF39A3 A16891235A599F95F9A62E6EE47839135A0750A2CB528F11EC47F0D4D3BA828501C9B76FDFE178 21F11814DEFDE3AB561ADA314060D7112BC8BF02E92793A3D864B83AEA78F8D49DF9AB07AC0762 229534C0288FBC00662E53035A037B1C9745195CFAB54D22032A16E7AE0B971CAC5A67FF0EDE11 E265B88805314BC7563CF177BABB367618A27734611D7B662DA407911EF2FEC47D74C482F7DF82 3960081466CECBF4BA94FC5AC8C9F91AC151FB1ECB78BA5D5607A1D59D34C18C83000F8507AB1F 1C44347FCA2BC27087A28F0F3B24BDD8E7A0DDCF782CBCED5DDA4565308E10062145895A9C437C CAED86458890311EDCDE2109233BF9ABCEF0535080D7C5A76D6E3BCE8210C7E89FB95E63CD8A76 FEA978AF5000DFE7C0E659B902503758736C6DB295B9368EE50F5F8CF3E200456B5B2087219150 294871F7B980800E59A5DE5973AB9ED52F7DBC7C433FD0E099D3E3EEF6DF7D77E40D1C8B34C117 588ADBBD7A29AB4805A87C13CE93A65854DFDA87321ECF7D34E72C193365B632B455F8A2916BD1 E63441A633D144C254E3FD89FE2884840146B4C992A07BE6A0FCEEB6AE9B0234D234645D73C064 EAFEDA1EB7A9DE6661D31226A6F54BC9510DF6F64F7200CEC5EAF90357716E7C246D47C04E0906 98C5F6AC446DC6107E6342FE8B746C0FFA058FBBCA0730CFB20A367ED10661670C1618A4D467DC 2A7E87894DE0D5392B3F0DE6582901693C28568D2253D514A3FACD1B063B02A5F8A19C1D6DFBAE CC79435F694E914014DEFC5553A5984993154997E63768DD7BC462BDF6D1A8B28DF568B22FF460 087163AEEC37F0BDDBBA4C30322AD71922AC802DD491207E6A6C255F50EEB0C492EC86AFED9040 B068671FE4A1E66AF15D3D976C7267F3EEE19462487772087ABF36700B4821D2DB5193BBEFCE82 BF67F7034972A708E93C55E0F7A52EAEE47E68FDC6F1BC49B9370F28DAE122D13CB2CBCB55933F A27291003E862FB0C7E20A0F979DFD8BA918322F6CD597809F9E05DD210F7996F314B65F54FD7B F453F15CCBEB2CD5E53535261E696EB73F2698D1159076D0EAE35FFB1FB53F98808ED2325B2CC7 9D90772C15273EE50294AC931626EC573BED7CCE2D713328962528EE0F00FADB1C1ED8B302F24A 40F9A22D1D6411EC669670ADF93C4C67D8520109FDE9F64CB0382842C88845267528F57AB7E408 9EDE614E79799D08D3D01378AE9D42D7601D821C9C5BFB77EEFF37B634D2698BDC11CB60192B6B 4FFDEE834EDEA99CCCB760D3E7548E6810FE300596C246AE56DCC6BA8132AE3779ECD5ECFA6963 F9B5C4B9AD8B6C480BB184FE31EF0F8DD3ADAA96AFBFA250FCBFEB529239AD2A524B3C8AA1C2C2 7ED016E8EE24B355BA84D1D0AC6AF00B0A230578609A3F09639D2CA7175710FE9D455A58A6982B 7B7FCA52BB5490FBAA064D1C506C9598D88B5CB330C97F434BD1EF060ADC21B9F6ED9FB7A7E604 20FA1B481881C73B1DEEDA0A7E197B8D38EEE68CD8D442D083772FE2BA1F1C07A57D5B67BD8230 80BF438089A4D6C311D421F5F16C35B3207649CC0433AEE4987E3AB5698D55309B5F5C8B95332C 77157E3309EDB4954613428AE9DA6686799ABCE483FCFA8C060F0614995E01FD14A6189AB61A0F 7AC9465BE297F053E85AAD0EFD921502269D01FA6D5ADAD672F3D48C5D4EDEEA65E53E03A24AA9 E78660AFF7942E7F23E3754582CB2976FB65997FF35582FF83FE9BF43CE5CA20AE5EB62CA819D9 B63ABE39EA3A13AC163F64A55B4E840B12FEED5BF447E3CA1FD61E6FB51D6F7B3176F697491217 306EC21CC462AEFA069C9432AFAFDE4D586D5EF8DD4E49882CD701C4F4FBDBF42E370AE7F332AB E22DDB2FA70D17B0E053BD6332A1B51840A6C18760A46EDB9C8933039C8B724FBA4C4D62B98876 71F94505D1242067281063F91A7DE032FCE95DA4B54C32B46B762CC927667306101A7186DA78BB BFF306C62708B92D76D2225B1FACC18157268623387B5D80FF9E394E3DB68D5404AE3CAF3A8654 7704EEE75E7BCBC9A96610D96E96C0CEC85785FC7D54BF035D0E03E6B1ACE9691D7DD71B607B9D C37DC020E9B5D4216AA991C5022AC52A4637FCA79DC21DC1FCBD5BA4B28B591F69CEFD0D99E35F C568550A5E11B32BD59BE83149B82FC840C99267AA84AF41FC56D1C4F7F6365B65DBED15163D55 9A95630AF5005C7FEF23EE87208AAE88AB3CA22FEAF682088FB1F2F78027FDED141D161183FD67 5E16ECE34A9664C1373C2793C35080519D0BBE2D9B98BEF67D2716B4036A25274B4370AD209164 BEAC0BFFBCC3F6B2956AEF76143644485280FD50462B63F324A992F3A5B187321107BEC7A301C0 4338312EA32DCABA2C13A6ADA387B668A45743B4D7C02F2BFFC69F49AFB429434EA529B04EB8B7 4596D90FE74AE32F57CEC0433922B00236C189FFCD8A1FDD896CCC957DFA2EEABB23BD8E5A428F FDC06F4F75C3222DC161472687547B173F632D15BACE92A07A0A71DCCE2B8EB739EFFEA173E57C 4DF651FA936221DABBDB3B8AE5C30D595C33DCFC485EF2721743A6957E26A79A97EFD24BE5AC7F D6792166AD1F09A8590F5871E74B2215E9012BF05DC89BEF6A2FFBA06BC619A08B14D6679877A1 10165E943223B0DDC672C591F26D6C865B78B59703C3C977FFD605CB241C35FA1FD928A4A4F11C 052EA00B2FC0CEAD4BD9041899EE135DE98A260518AC927508ADD78D7A6D8049C88B42241D25CA 5DF0550706C3671B2DB3D848C3B94CC77D7FC2D157E37B8D4780B6B7F3B04502F3167D8D5B99A4 6B63151FA7FC1FE52BD66ACF20DB58A7A092623E63FF6F7C7D0001AB09059A5CB6D79504900589 A349E8D19E76F6FBEA194D18CB6526691C7B66E219092FCB73A4F7807E6BFD82510687A50BFA3C EEB4F8818B11A8B9F7B71676C5B44078996994DA808DC39D3CB6A66B476FA2ED6390B7181A591D 171DE548152A5CC5B71F5F9DCED5B648AEF57E2B3644909577EA607E49C8D0105DB7FC57FA1A2D E0105EADBF35AA385C972F9CF07D379454FBFB1EAC4B573498C10B2E98C3FB6F1483A123237B96 0BAA3A3CDC0E9327F0FCABF72E8AC7DB04E22CDAA0F6EE108564565AEAC4A4DA8328F30AA878DD B35D6AB16FC49D928066ED24C583434447AFBE2E4D22848A516862207480EAF650624943925E0C 351A6407ABE0BF04E36C87BE715B11FE53B8A13AB4669B7B2238D0B295D60028D1111A5AFE23AC E77C59415C466042B93790A8055FD8C39B262848BBCEE84DA425462871EA73BFC927DC4DAF9336 E13B1BC99887E8C1D8721311B5396209A634F3A1F91D51EB7B28F0A827A50688ED60370F6BF3EC A867BB995B125BAB4203DE9E26DFC0D3D8E91D3E749AA0407C6A74C86E98FDF8A314B201E1EE0C 98015360074379F70367DE7CEE75864C9789533ECEBE1323C12261A8622C5666C932177CFDCACD 2D494F1741EC983E51CE4E3A63AE6FD282DA64A32CC3B2F55549080C7A190BFDD2C2393C675DE4 90C79A325DCC04D14E0445C218AAFA0E54A305A889DBE613D4F28FB08253892A0D673908479B87 E9D8E13F467B7F9EBCD8E5E16D7CD3358C71CECCD08C6B8ACA8525657D37560BF2221F91258EF4 E6B70118BD1CB1F4EB421C4C32C76437340EA398E22351CEA31D250E46F946D44D97C2B3DE06F8 D8003381600E2E2C28AFBADC25DC94224AFAD0D7D951609BB2478C476085C01AA601F3AFFED544 F251D5A49BD263D64F4FEFB0803F162BD5FE1082FA2949BA8987AFFA1D9A7A4EF28BFCAFFD3311 0E1A1A2A22C76734DF6CC30E3C4662DFAFB32DF55DB12D138148435A6F7ADB4ACC4F4124EF772A A63D5F65490E9763FFD66C6153F5B0FEF1A307D6A9753102CE51DA88E2EF7275FFFD2A7B4F81E9 DF549938193AB7A58D5C237D669ACF27DFA35744F7622F8D54B5B54AA31D9403841D4C5D193D87 E60622E18C2D7E333AD4CB2DB27DEE813D9902D17DD0F2D3BDC8B340DFE9C8D34B993CC2CC91BD 47B4861809902E11197967922FC625989AC6F4BA0D48166F3F4B6C6C47D3B9A932F3D47A8613F3 6329406BF5ADEE519002394FB288D3A8AC3DCD5C37270AC7F5C5CDE46BE5C2A103FD468FEBC0F5 180143DB4312076FB062CE88DC373B5F120C591B9C09B9E3E1B26F52A48339AE70F729BA02977A B60666637D9FF9287DB4CC52BD5C7B2D4F038E5C927B97B54F611396E2211514A8684A02D5DB1F DE728DB58AE1BB7253740349771118D2D33211D2ED7BBEB97BB4776666F6A2AC7B54A1E2DB79D2 A9DE31745745CB39BDEE3E7CF425C27F86CFA89F825A09F9C7027E8DF7A773497690F328D22FF5 A5CB2821623A570C29D03081E9DCE770F3E7F5B7377A1BC3F52B383EA0CB1C1BDC00E67AE90F72 9DC77450407C0A9D0ECB2CE16C91CC3C7D487457800654F86BA7A8E26A25B78204CC7F58BBF69C 5C406BA012563A4379506C28A39538F9A5D57BD197443A02A9D3C67149D654FF12FC6E05612981 7F7236BF90FA626FB91D49C48D824248EABD764EB3C20634D56BDC2E170A814567D278F7AFB96B F6AEF216C0B42AAF85AE299752C50E6D2963FA5DB384FD110868D43DA804FDB9D0CA26BBC8CD72 EFAC451FBAF4BB0B44C675DD4E0B4AD8D6149DAE44DC4EC36942CE1876C8602E3F97CD6E18BD0B 5BCCF7B1773619FC8AC3B3D4958F71E5D2C631C6B17EEE7ADCBA30CA0E30B538249113223FA987 4D4B294563B9F42D9D259374F28A8D8A654F26D7BFD8667CCBC43F75B61C2F5CF8D7E06642E93D 76554642B7666B7905D6859F79DC080CB5574D03A072DB0D47AB82461DF6638C77234A3F97428F D2FC973687786BCF1D2F65AABAF55C257914247AEA0B3AF17A867C0CF1E5A6883D68680343CC5F 3604DC8E1E7A9DAB9CFA316A14D4CF7A3A60CA56E947AE632762B2303C0EDAF9B3AA206191730D 18B522FCD29D036AA4E6540F6A0DA836638A2EACE334B232199F61B357B10F4322A1F58F249101 CB1399E5E60483F12A6008F8FFB52709F34136D93902FE367A01419F79A4D4DEDBBAE63741526D 3D9EB7BFB4332C1775E2F0A05A4D7B203C2816F30081A67440D09D1FF94DDB3B7BB91B63703581 A696ECEB393963FA9199AB61A3F449061E048FA2C1F91897C5A60A4D30D0C276DE88EA143BA4FC 545FFC8F0B0950A38AAD126D73DA6BBDBDB480C3AFF4D2C7657A33652D5728E1866DB82B8F1A8A 72235DAB477C38ECFCCD0CDBB77D30A0436FDDC1D70426C0C5B408A4ADD039CC2B5750B7BB5E07 CC56039DB7FF3298151718E167CD482E88AE498B2D89C79C572FCE5ECEA3BBFE5603FD7AF6F4DF 2C06BD8EF8501B52E8CBFB5481CA45CBAE44D87D455DFB6F030FBC0938EDFF80592B68390452F2 42584D9C529BBAA2615F9A493BDB3C4BCD99422B69FB658ADA813AE39E447151F9312A005AB210 D9FFB508C7A036BFA34C7264CFC1B92929C7CD892CD8BE48D388545B8CE7A79F70D0F1B852625D F331D75342E9EC57219DE4E61BFFEB066D82DC6256892E89B25BCE034F7F6FF09D7DC8ABBC8739 3B70FDAB372D2FDFC51902A6E7FBE5DF3F41A91DAFA35D9A99A18DCD9E9D9050CA9D6FD417C9B8 DE3C0648F8458BA2E0ABCEE10E759C97F019D1A1C8E1CC9EC8A6680C2566F42E478EB1F5706435 16EBAF85E4F9E972BA3FA6D20B8BD1734229563A1ADA6D4D1857257EB760050F4FD997090653CA 7771430101EEE3BCA1EA8E5F230F1B54E25A50458A1F7EBC35AEC36A88E4E345EF4CD9F97978EC E8F3C53ABD56FD3DB6C71206DEB0058509F24D0EB4C68BCFAD5A773EFD04F5472984000960F67E 261B9152A176B230EB447633653ED0CBD3F50B214773DB454E89625BE27B7B75C93330E1F782BE EA101988B04AEF3601BA7FE868F614035647349D97F9F1AA598FD808885D91F5E24FE348015E46 D80FCC9E62 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %!PS-Adobe-2.0 %%Version: 0.1 %%Creator: troff, Plan 9 edition %%Pages: (atend) %%EndComments % % Version 3.3.2 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Version 3.3.2 drawing procedures for dpost. Automatically pulled in when % needed. % /inpath false def /savematrix matrix def /Dl { inpath {neg lineto pop pop} {newpath neg moveto neg lineto stroke} ifelse } bind def /De { /y1 exch 2 div def /x1 exch 2 div def /savematrix savematrix currentmatrix def neg exch x1 add exch translate x1 y1 scale 0 0 1 0 360 inpath {1 0 moveto arc savematrix setmatrix} {newpath arc savematrix setmatrix stroke} ifelse } bind def /Da { /dy2 exch def /dx2 exch def /dy1 exch def /dx1 exch def dy1 add neg exch dx1 add exch dx1 dx1 mul dy1 dy1 mul add sqrt dy1 dx1 neg atan dy2 neg dx2 atan inpath {arc} {newpath arc stroke} ifelse } bind def /DA { /dy2 exch def /dx2 exch def /dy1 exch def /dx1 exch def dy1 add neg exch dx1 add exch dx1 dx1 mul dy1 dy1 mul add sqrt dy1 dx1 neg atan dy2 neg dx2 atan inpath {arcn} {newpath arcn stroke} ifelse } bind def /Ds { /y2 exch def /x2 exch def /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 5 x1 mul add 6 div y0 5 y1 mul add -6 div x2 5 x1 mul add 6 div y2 5 y1 mul add -6 div x1 x2 add 2 div y1 y2 add -2 div inpath {curveto} {newpath x0 x1 add 2 div y0 y1 add -2 div moveto curveto stroke} ifelse } bind def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark % % Encoding vector and redefinition of findfont for the ISO Latin1 standard. % The 18 characters missing from ROM based fonts on older printers are noted % below. % /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar % missing /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree % missing /plusminus % missing /twosuperior % missing /threesuperior % missing /acute /mu % missing /paragraph /periodcentered /cedilla /onesuperior % missing /ordmasculine /guillemotright /onequarter % missing /onehalf % missing /threequarters % missing /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth % missing /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply % missing /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute % missing /Thorn % missing /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth % missing /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide % missing /oslash /ugrave /uacute /ucircumflex /udieresis /yacute % missing /thorn % missing /ydieresis ] def /NewFontDirectory FontDirectory maxlength dict def % % Apparently no guarantee findfont is defined in systemdict so the obvious % % systemdict /findfont get exec % % can generate an error. So far the only exception is a VT600 (version 48.0). % userdict /@RealFindfont known not { userdict begin /@RealFindfont systemdict begin /findfont load end def end } if /findfont { dup NewFontDirectory exch known not { dup %dup systemdict /findfont get exec % not always in systemdict dup userdict /@RealFindfont get exec dup /Encoding get StandardEncoding eq { dup length dict begin {1 index /FID ne {def}{pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /DummyFontName exch definefont } if NewFontDirectory 3 1 roll put } if NewFontDirectory exch get } bind def %%Patch from lp %%EndPatch from lp setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 12 /LucidaSans-Demi f (Plan 9) 2228 1220 w (from Bell) 2644 1220 w (Labs) 3243 1220 w 10 /LucidaSans-Italic f (Rob Pike) 2674 1480 w (Dave Presotto) 2544 1620 w (Sean Dorward) 2535 1760 w (Bob Flandrena) 2530 1900 w (Ken Thompson) 2523 2040 w (Howard Trickey) 2497 2180 w (Phil Winterbottom) 2443 2320 w 10 /LucidaSansUnicode00 f (Bell Laboratories) 2476 2520 w (Murray Hill, New Jersey 07974) 2146 2660 w (USA) 2784 2800 w 10 /LucidaSans-Demi f (Motivation) 720 3400 w 10 /LucidaSansUnicode00 f (By) 720 3556 w (the) 864 3556 w (mid) 1053 3556 w (1980) 1272 3556 w 10 /LucidaSansUnicode20 f (\031) 1524 3556 w 10 /LucidaSansUnicode00 f (s,) 1556 3556 w (the) 1673 3556 w (trend) 1862 3556 w (in) 2155 3556 w (computing) 2280 3556 w (was) 2834 3556 w (away) 3051 3556 w (from) 3324 3556 w (large) 3590 3556 w (centralized) 3868 3556 w (time-shared) 4439 3556 w (computers) 720 3676 w (towards) 1292 3676 w (networks) 1734 3676 w (of) 2234 3676 w (smaller,) 2388 3676 w (personal) 2830 3676 w (machines,) 3304 3676 w (typically) 3851 3676 w (UNIX) 4304 3676 w 10 /LucidaSansUnicode20 f (\030) 4595 3676 w 10 /LucidaSansUnicode00 f (worksta\255) 4627 3676 w (tions) 720 3796 w 10 /LucidaSansUnicode20 f (\031) 960 3796 w 10 /LucidaSansUnicode00 f (.) 992 3796 w (People) 1097 3796 w (had) 1458 3796 w (grown) 1679 3796 w (weary) 2023 3796 w (of) 2345 3796 w (overloaded,) 2484 3796 w (bureaucratic) 3095 3796 w (timesharing) 3740 3796 w (machines) 4359 3796 w (and) 4860 3796 w (were) 720 3916 w (eager) 990 3916 w (to) 1300 3916 w (move) 1438 3916 w (to) 1740 3916 w (small,) 1878 3916 w (self-maintained) 2207 3916 w (systems,) 3019 3916 w (even) 3482 3916 w (if) 3748 3916 w (that) 3854 3916 w (meant) 4085 3916 w (a) 4428 3916 w (net) 4523 3916 w (loss) 4718 3916 w (in) 4949 3916 w (computing) 720 4036 w (power.) 1273 4036 w (As) 1668 4036 w (microcomputers) 1821 4036 w (became) 2644 4036 w (faster,) 3051 4036 w (even) 3393 4036 w (that) 3652 4036 w (loss) 3876 4036 w (was) 4101 4036 w (recovered,) 4317 4036 w (and) 4860 4036 w (this style of computing remains popular today.) 720 4156 w (In) 970 4312 w (the) 1097 4312 w (rush) 1288 4312 w (to) 1540 4312 w (personal) 1674 4312 w (workstations,) 2128 4312 w (though,) 2816 4312 w (some) 3230 4312 w (of) 3527 4312 w (their) 3661 4312 w (weaknesses) 3922 4312 w (were) 4531 4312 w (over\255) 4797 4312 w (looked.) 720 4432 w (First,) 1154 4432 w (the) 1440 4432 w (operating) 1637 4432 w (system) 2145 4432 w (they) 2527 4432 w (run,) 2776 4432 w (UNIX,) 3015 4432 w (is) 3324 4432 w (itself) 3446 4432 w (an) 3727 4432 w (old) 3886 4432 w (timesharing) 4081 4432 w (system) 4700 4432 w (and) 720 4552 w (has) 954 4552 w (had) 1176 4552 w (trouble) 1410 4552 w (adapting) 1813 4552 w (to) 2293 4552 w (ideas) 2445 4552 w (born) 2753 4552 w (after) 3034 4552 w (it.) 3314 4552 w (Graphics) 3498 4552 w (and) 3976 4552 w (networking) 4210 4552 w (were) 4810 4552 w (added) 720 4672 w (to) 1057 4672 w (UNIX) 1192 4672 w (well) 1464 4672 w (into) 1692 4672 w (its) 1918 4672 w (lifetime) 2072 4672 w (and) 2475 4672 w (remain) 2692 4672 w (poorly) 3065 4672 w (integrated) 3409 4672 w (and) 3944 4672 w (difficult) 4161 4672 w (to) 4571 4672 w (admin\255) 4705 4672 w (ister.) 720 4792 w (More) 1040 4792 w (important,) 1326 4792 w (the) 1878 4792 w (early) 2075 4792 w (focus) 2351 4792 w (on) 2656 4792 w (having) 2822 4792 w (private) 3187 4792 w (machines) 3563 4792 w (made) 4065 4792 w (it) 4375 4792 w (difficult) 4484 4792 w (for) 4901 4792 w (networks) 720 4912 w (of) 1198 4912 w (machines) 1330 4912 w (to) 1823 4912 w (serve) 1955 4912 w (as) 2245 4912 w (seamlessly) 2385 4912 w (as) 2942 4912 w (the) 3082 4912 w (old) 3271 4912 w (monolithic) 3458 4912 w (timesharing) 4006 4912 w (systems.) 4617 4912 w (Timesharing) 720 5032 w (centralized) 1360 5032 w (the) 1933 5032 w (management) 2125 5032 w (and) 2793 5032 w (amortization) 3010 5032 w (of) 3664 5032 w (costs) 3800 5032 w (and) 4089 5032 w (resources;) 4307 5032 w (per\255) 4847 5032 w (sonal) 720 5152 w (computing) 1017 5152 w (fractured,) 1576 5152 w (democratized,) 2090 5152 w (and) 2823 5152 w (ultimately) 3042 5152 w (amplified) 3560 5152 w (administrative) 4052 5152 w (prob\255) 4779 5152 w (lems.) 720 5272 w (The) 1082 5272 w (choice) 1332 5272 w (of) 1711 5272 w (an) 1879 5272 w (old) 2066 5272 w (timesharing) 2289 5272 w (operating) 2936 5272 w (system) 3472 5272 w (to) 3882 5272 w (run) 4050 5272 w (those) 4285 5272 w (personal) 4622 5272 w (machines made it difficult to bind things together smoothly.) 720 5392 w (Plan) 970 5548 w (9) 1209 5548 w (began) 1310 5548 w (in) 1646 5548 w (the) 1775 5548 w (late) 1968 5548 w (1980) 2183 5548 w 10 /LucidaSansUnicode20 f (\031) 2435 5548 w 10 /LucidaSansUnicode00 f (s) 2467 5548 w (as) 2556 5548 w (an) 2700 5548 w (attempt) 2855 5548 w (to) 3271 5548 w (have) 3407 5548 w (it) 3670 5548 w (both) 3774 5548 w (ways:) 4035 5548 w (to) 4340 5548 w (build) 4476 5548 w (a) 4760 5548 w (sys\255) 4853 5548 w (tem) 720 5668 w (that) 949 5668 w (was) 1183 5668 w (centrally) 1408 5668 w (administered) 1862 5668 w (and) 2539 5668 w (cost-effective) 2761 5668 w (using) 3472 5668 w (cheap) 3780 5668 w (modern) 4109 5668 w (microcom\255) 4527 5668 w (puters) 720 5788 w (as) 1070 5788 w (its) 1216 5788 w (computing) 1373 5788 w (elements.) 1933 5788 w (The) 2477 5788 w (idea) 2698 5788 w (was) 2941 5788 w (to) 3164 5788 w (build) 3302 5788 w (a) 3588 5788 w (time-sharing) 3684 5788 w (system) 4360 5788 w (out) 4741 5788 w (of) 4942 5788 w (workstations,) 720 5908 w (but) 1426 5908 w (in) 1642 5908 w (a) 1787 5908 w (novel) 1895 5908 w (way.) 2208 5908 w (Different) 2509 5908 w (computers) 2992 5908 w (would) 3560 5908 w (handle) 3905 5908 w (different) 4285 5908 w (tasks:) 4756 5908 w (small,) 720 6028 w (cheap) 1048 6028 w (machines) 1375 6028 w (in) 1874 6028 w (people) 2005 6028 w 10 /LucidaSansUnicode20 f (\031) 2333 6028 w 10 /LucidaSansUnicode00 f (s) 2365 6028 w (offices) 2456 6028 w (would) 2818 6028 w (serve) 3150 6028 w (as) 3446 6028 w (terminals) 3592 6028 w (providing) 4085 6028 w (access) 4587 6028 w (to) 4942 6028 w (large,) 720 6148 w (central,) 1028 6148 w (shared) 1424 6148 w (resources) 1785 6148 w (such) 2288 6148 w (as) 2547 6148 w (computing) 2686 6148 w (servers) 3239 6148 w (and) 3620 6148 w (file) 3833 6148 w (servers.) 4017 6148 w (For) 4462 6148 w (the cen\255) 4651 6148 w (tral) 720 6268 w (machines,) 937 6268 w (the) 1484 6268 w (coming) 1695 6268 w (wave) 2109 6268 w (of) 2405 6268 w (shared-memory) 2559 6268 w (multiprocessors) 3397 6268 w (seemed) 4230 6268 w (obvious) 4661 6268 w (candidates.) 720 6388 w (The) 1365 6388 w (philosophy) 1604 6388 w (is) 2195 6388 w (much) 2333 6388 w (like) 2659 6388 w (that) 2889 6388 w (of) 3138 6388 w (the) 3294 6388 w (Cambridge) 3507 6388 w (Distributed) 4096 6388 w (System) 4697 6388 w ([NeHe82].) 720 6508 w (The) 1269 6508 w (early) 1483 6508 w (catch) 1749 6508 w (phrase) 2038 6508 w (was) 2399 6508 w (to) 2615 6508 w (build) 2746 6508 w (a) 3025 6508 w (UNIX) 3113 6508 w (out) 3381 6508 w (of) 3574 6508 w (a) 3705 6508 w (lot) 3793 6508 w (of) 3953 6508 w (little) 4084 6508 w (systems,) 4334 6508 w (not) 4791 6508 w (a) 4985 6508 w (system out of a lot of little UNIXes.) 720 6628 w 8 /S1 f (__________________) 720 6980 w 8 /LucidaSansUnicode00 f (Appeared) 720 7080 w (in) 1118 7080 w (a) 1217 7080 w (slightly) 1287 7080 w (different) 1595 7080 w (form) 1957 7080 w (in) 2169 7080 w 8 /LucidaSans-Italic f (Computing) 2268 7080 w (Systems,) 2719 7080 w 8 /LucidaSansUnicode00 f (Vol) 3083 7080 w (8) 3233 7080 w (#3,) 3309 7080 w (Summer) 3461 7080 w (1995,) 3806 7080 w (pp.) 4058 7080 w (221-254.) 4210 7080 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 /LucidaSansUnicode00 f (\255 2 \255) 2783 480 w (The) 970 840 w (problems) 1206 840 w (with) 1718 840 w (UNIX) 1978 840 w (were) 2268 840 w (too) 2553 840 w (deep) 2767 840 w (to) 3060 840 w (fix,) 3213 840 w (but) 3427 840 w (some) 3645 840 w (of) 3962 840 w (its) 4116 840 w (ideas) 4289 840 w (could) 4599 840 w (be) 4921 840 w (brought) 720 960 w (along.) 1158 960 w (The) 1541 960 w (best) 1772 960 w (was) 2029 960 w (its) 2262 960 w (use) 2429 960 w (of) 2648 960 w (the) 2796 960 w (file) 3000 960 w (system) 3200 960 w (to) 3589 960 w (coordinate) 3736 960 w (naming) 4301 960 w (of) 4713 960 w (and) 4860 960 w (access) 720 1080 w (to) 1077 1080 w (resources,) 1217 1080 w (even) 1761 1080 w (those,) 2029 1080 w (such) 2370 1080 w (as) 2638 1080 w (devices,) 2786 1080 w (not) 3218 1080 w (traditionally) 3420 1080 w (treated) 4041 1080 w (as) 4428 1080 w (files.) 4576 1080 w (For) 4884 1080 w (Plan) 720 1200 w (9,) 958 1200 w (we) 1089 1200 w (adopted) 1258 1200 w (this) 1692 1200 w (idea) 1907 1200 w (by) 2146 1200 w (designing) 2297 1200 w (a) 2809 1200 w (network-level) 2900 1200 w (protocol,) 3608 1200 w (called) 4080 1200 w (9P,) 4399 1200 w (to) 4585 1200 w (enable) 4719 1200 w (machines) 720 1320 w (to) 1215 1320 w (access) 1349 1320 w (files) 1700 1320 w (on) 1938 1320 w (remote) 2097 1320 w (systems.) 2477 1320 w (Above) 2968 1320 w (this,) 3305 1320 w (we) 3553 1320 w (built) 3723 1320 w (a) 3980 1320 w (naming) 4072 1320 w (system) 4472 1320 w (that) 4849 1320 w (lets) 720 1440 w (people) 934 1440 w (and) 1303 1440 w (their) 1524 1440 w (computing) 1790 1440 w (agents) 2351 1440 w (build) 2715 1440 w (customized) 3002 1440 w (views) 3603 1440 w (of) 3909 1440 w (the) 4048 1440 w (resources) 4244 1440 w (in) 4754 1440 w (the) 4885 1440 w (network.) 720 1560 w (This is) 1208 1560 w (where) 1558 1560 w (Plan) 1883 1560 w (9) 2117 1560 w (first) 2213 1560 w (began) 2441 1560 w (to) 2772 1560 w (look) 2903 1560 w (different:) 3145 1560 w (a) 3628 1560 w (Plan) 3716 1560 w (9) 3950 1560 w (user) 4046 1560 w (builds) 4289 1560 w (a) 4619 1560 w (private) 4707 1560 w (computing) 720 1680 w (environment) 1274 1680 w (and) 1919 1680 w (recreates) 2133 1680 w (it) 2611 1680 w (wherever) 2711 1680 w (desired,) 3186 1680 w (rather) 3610 1680 w (than) 3935 1680 w (doing) 4184 1680 w (all) 4494 1680 w (comput\255) 4640 1680 w (ing) 720 1800 w (on) 911 1800 w (a) 1072 1800 w (private) 1165 1800 w (machine.) 1536 1800 w (It) 2046 1800 w (soon) 2150 1800 w (became) 2423 1800 w (clear) 2835 1800 w (that) 3105 1800 w (this) 3334 1800 w (model) 3551 1800 w (was) 3892 1800 w (richer) 4114 1800 w (than) 4433 1800 w (we) 4688 1800 w (had) 4860 1800 w (foreseen,) 720 1920 w (and) 1229 1920 w (the) 1466 1920 w (ideas) 1678 1920 w (of) 1989 1920 w (per-process) 2144 1920 w (name) 2793 1920 w (spaces) 3116 1920 w (and) 3499 1920 w (file-system-like) 3735 1920 w (resources) 4570 1920 w (were extended throughout the system) 720 2040 w 10 /LucidaSansUnicode20 f (\024) 2574 2040 w 10 /LucidaSansUnicode00 f (to processes, graphics, even the network itself.) 2674 2040 w (By) 970 2196 w (1989) 1123 2196 w (the) 1418 2196 w (system) 1616 2196 w (had) 1999 2196 w (become) 2223 2196 w (solid) 2647 2196 w (enough) 2924 2196 w (that) 3333 2196 w (some) 3568 2196 w (of) 3873 2196 w (us) 4015 2196 w (began) 4172 2196 w (using) 4514 2196 w (it) 4824 2196 w (as) 4934 2196 w (our) 720 2316 w (exclusive) 923 2316 w (computing) 1409 2316 w (environment.) 1968 2316 w (This) 2682 2316 w (meant) 2926 2316 w (bringing) 3268 2316 w (along) 3717 2316 w (many) 4024 2316 w (of) 4324 2316 w (the) 4460 2316 w (services) 4653 2316 w (and) 720 2436 w (applications) 934 2436 w (we) 1553 2436 w (had) 1720 2436 w (used) 1934 2436 w (on) 2200 2436 w (UNIX.) 2357 2436 w (We) 2690 2436 w (used) 2866 2436 w (this) 3132 2436 w (opportunity) 3345 2436 w (to) 3948 2436 w (revisit) 4081 2436 w (many) 4411 2436 w (issues,) 4708 2436 w (not) 720 2556 w (just) 920 2556 w (kernel-resident) 1140 2556 w (ones,) 1935 2556 w (that) 2237 2556 w (we) 2468 2556 w (felt) 2641 2556 w (UNIX) 2840 2556 w (addressed) 3115 2556 w (badly.) 3654 2556 w (Plan) 4019 2556 w (9) 4259 2556 w (has) 4361 2556 w (new) 4568 2556 w (com\255) 4802 2556 w (pilers,) 720 2676 w (languages,) 1064 2676 w (libraries,) 1633 2676 w (window) 2102 2676 w (systems,) 2515 2676 w (and) 2982 2676 w (many) 3206 2676 w (new) 3512 2676 w (applications.) 3751 2676 w (Many) 4444 2676 w (of) 4743 2676 w (the) 4885 2676 w (old tools were dropped, while those brought along have been polished or rewritten.) 720 2796 w (Why) 970 2952 w (be) 1216 2952 w (so) 1381 2952 w (all-encompassing?) 1539 2952 w (The) 2526 2952 w (distinction) 2754 2952 w (between) 3312 2952 w (operating) 3766 2952 w (system,) 4279 2952 w (library,) 4698 2952 w (and) 720 3072 w (application) 935 3072 w (is) 1504 3072 w (important) 1619 3072 w (to) 2132 3072 w (the) 2265 3072 w (operating) 2455 3072 w (system) 2956 3072 w (researcher) 3331 3072 w (but) 3876 3072 w (uninteresting) 4073 3072 w (to) 4753 3072 w (the) 4885 3072 w (user.) 720 3192 w (What) 1032 3192 w (matters) 1310 3192 w (is) 1718 3192 w (clean) 1836 3192 w (functionality.) 2127 3192 w (By) 2832 3192 w (building) 2980 3192 w (a) 3417 3192 w (complete) 3510 3192 w (new) 3994 3192 w (system,) 4227 3192 w (we) 4638 3192 w (were) 4810 3192 w (able) 720 3312 w (to) 962 3312 w (solve) 1099 3312 w (problems) 1387 3312 w (where) 1883 3312 w (we) 2214 3312 w (thought) 2386 3312 w (they) 2808 3312 w (should) 3054 3312 w (be) 3421 3312 w (solved.) 3579 3312 w (For) 3993 3312 w (example,) 4187 3312 w (there) 4670 3312 w (is) 4960 3312 w (no) 720 3432 w (real) 886 3432 w 10 /LucidaSansUnicode20 f (\030) 1110 3432 w 10 /LucidaSansUnicode00 f (tty) 1142 3432 w (driver) 1311 3432 w 10 /LucidaSansUnicode20 f (\031) 1593 3432 w 10 /LucidaSansUnicode00 f (in) 1668 3432 w (the) 1802 3432 w (kernel;) 2000 3432 w (that) 2377 3432 w (is) 2611 3432 w (the) 2734 3432 w (job) 2932 3432 w (of) 3129 3432 w (the) 3270 3432 w (window) 3469 3432 w (system.) 3882 3432 w (In) 4330 3432 w (the) 4465 3432 w (modern) 4664 3432 w (world,) 720 3552 w (multi-vendor) 1062 3552 w (and) 1743 3552 w (multi-architecture) 1961 3552 w (computing) 2885 3552 w (are) 3443 3552 w (essential,) 3633 3552 w (yet) 4129 3552 w (the) 4312 3552 w (usual) 4505 3552 w (com\255) 4802 3552 w (pilers) 720 3672 w (and) 1028 3672 w (tools) 1247 3672 w (assume) 1525 3672 w (the) 1932 3672 w (program) 2126 3672 w (is) 2581 3672 w (being) 2700 3672 w (built) 3011 3672 w (to) 3270 3672 w (run) 3407 3672 w (locally;) 3611 3672 w (we) 3988 3672 w (needed) 4161 3672 w (to) 4557 3672 w (rethink) 4695 3672 w (these) 720 3792 w (issues.) 1028 3792 w (Most) 1438 3792 w (important,) 1719 3792 w (though,) 2275 3792 w (the) 2699 3792 w (test) 2900 3792 w (of) 3126 3792 w (a) 3269 3792 w (system) 3369 3792 w (is) 3754 3792 w (the) 3879 3792 w (computing) 4079 3792 w (environ\255) 4644 3792 w (ment) 720 3912 w (it) 1023 3912 w (provides.) 1144 3912 w (Producing) 1679 3912 w (a) 2220 3912 w (more) 2330 3912 w (efficient) 2636 3912 w (way) 3085 3912 w (to) 3324 3912 w (run) 3477 3912 w (the) 3698 3912 w (old) 3909 3912 w (UNIX) 4118 3912 w (warhorses) 4409 3912 w (is) 4960 3912 w (empty) 720 4032 w (engineering;) 1056 4032 w (we) 1700 4032 w (were) 1868 4032 w (more) 2133 4032 w (interested) 2419 4032 w (in) 2942 4032 w (whether) 3068 4032 w (the) 3494 4032 w (new) 3684 4032 w (ideas) 3914 4032 w (suggested) 4202 4032 w (by) 4736 4032 w (the) 4885 4032 w (architecture) 720 4152 w (of) 1331 4152 w (the) 1462 4152 w (underlying) 1650 4152 w (system) 2201 4152 w (encourage) 2574 4152 w (a) 3113 4152 w (more) 3202 4152 w (effective) 3487 4152 w (way) 3932 4152 w (of) 4150 4152 w (working.) 4282 4152 w (Thus,) 4770 4152 w (although) 720 4272 w (Plan) 1184 4272 w (9) 1419 4272 w (provides) 1516 4272 w (an) 1966 4272 w (emulation) 2117 4272 w (environment) 2635 4272 w (for) 3280 4272 w (running) 3453 4272 w (POSIX) 3867 4272 w (commands,) 4179 4272 w (it) 4773 4272 w (is) 4872 4272 w (a) 4985 4272 w (backwater) 720 4392 w (of) 1268 4392 w (the) 1421 4392 w (system.) 1631 4392 w (The) 2090 4392 w (vast) 2326 4392 w (majority) 2576 4392 w (of) 3029 4392 w (system) 3182 4392 w (software) 3577 4392 w (is) 4047 4392 w (developed) 4183 4392 w (in) 4738 4392 w (the) 4885 4392 w 10 /LucidaSansUnicode20 f (\030) 720 4512 w 10 /LucidaSansUnicode00 f (native) 752 4512 w 10 /LucidaSansUnicode20 f (\031) 1043 4512 w 10 /LucidaSansUnicode00 f (Plan 9 environment.) 1107 4512 w (There) 970 4668 w (are) 1285 4668 w (benefits) 1474 4668 w (to) 1902 4668 w (having) 2037 4668 w (an) 2396 4668 w (all-new) 2550 4668 w (system.) 2953 4668 w (First,) 3394 4668 w (our) 3675 4668 w (laboratory) 3876 4668 w (has) 4408 4668 w (a) 4614 4668 w (history) 4707 4668 w (of) 720 4788 w (building) 856 4788 w (experimental) 1293 4788 w (peripheral) 1968 4788 w (boards.) 2500 4788 w (To) 2935 4788 w (make) 3096 4788 w (it) 3395 4788 w (easy) 3498 4788 w (to) 3749 4788 w (write) 3884 4788 w (device) 4161 4788 w (drivers,) 4505 4788 w (we) 4907 4788 w (want) 720 4908 w (a) 987 4908 w (system) 1078 4908 w (that) 1454 4908 w (is) 1681 4908 w (available) 1797 4908 w (in) 2257 4908 w (source) 2385 4908 w (form) 2744 4908 w (\(no) 3013 4908 w (longer) 3206 4908 w (guaranteed) 3554 4908 w (with) 4140 4908 w (UNIX,) 4382 4908 w (even) 4686 4908 w (in) 4949 4908 w (the) 720 5028 w (laboratory) 928 5028 w (in) 1476 5028 w (which) 1620 5028 w (it) 1954 5028 w (was) 2073 5028 w (born\).) 2309 5028 w (Also,) 2686 5028 w (we) 2981 5028 w (want) 3167 5028 w (to) 3451 5028 w (redistribute) 3602 5028 w (our) 4220 5028 w (work,) 4437 5028 w (which) 4759 5028 w (means) 720 5148 w (the) 1077 5148 w (software) 1272 5148 w (must) 1727 5148 w (be) 2010 5148 w (locally) 2169 5148 w (produced.) 2515 5148 w (For) 3079 5148 w (example,) 3275 5148 w (we) 3760 5148 w (could) 3933 5148 w (have) 4240 5148 w (used) 4506 5148 w (some) 4779 5148 w (vendors) 720 5268 w 10 /LucidaSansUnicode20 f (\031) 1106 5268 w 10 /LucidaSansUnicode00 f (C) 1192 5268 w (compilers) 1315 5268 w (for) 1843 5268 w (our) 2036 5268 w (system,) 2254 5268 w (but) 2680 5268 w (even) 2895 5268 w (had) 3174 5268 w (we) 3407 5268 w (overcome) 3593 5268 w (the) 4117 5268 w (problems) 4325 5268 w (with) 4835 5268 w (cross-compilation, we would have difficulty redistributing the result.) 720 5388 w (This) 970 5544 w (paper) 1211 5544 w (serves) 1526 5544 w (as) 1870 5544 w (an) 2013 5544 w (overview) 2167 5544 w (of) 2628 5544 w (the) 2763 5544 w (system.) 2955 5544 w (It) 3396 5544 w (discusses) 3499 5544 w (the) 4001 5544 w (architecture) 4193 5544 w (from) 4808 5544 w (the) 720 5664 w (lowest) 916 5664 w (building) 1268 5664 w (blocks) 1708 5664 w (to) 2062 5664 w (the) 2200 5664 w (computing) 2395 5664 w (environment) 2955 5664 w (seen) 3606 5664 w (by) 3871 5664 w (users.) 4026 5664 w (It) 4391 5664 w (also) 4497 5664 w (serves) 4733 5664 w (as) 720 5784 w (an) 860 5784 w (introduction) 1011 5784 w (to) 1640 5784 w (the) 1772 5784 w (rest) 1961 5784 w (of) 2180 5784 w (the) 2312 5784 w (Plan) 2501 5784 w (9) 2736 5784 w (Programmer) 2833 5784 w 10 /LucidaSansUnicode20 f (\031) 3431 5784 w 10 /LucidaSansUnicode00 f (s) 3463 5784 w (Manual,) 3548 5784 w (which) 3964 5784 w (it) 4280 5784 w (accompanies.) 4381 5784 w (More detail about topics in this paper can be found elsewhere in the manual.) 720 5904 w 10 /LucidaSans-Demi f (Design) 720 6144 w 10 /LucidaSansUnicode00 f (The) 970 6300 w (view) 1193 6300 w (of) 1449 6300 w (the) 1589 6300 w (system) 1786 6300 w (is) 2168 6300 w (built) 2290 6300 w (upon) 2552 6300 w (three) 2842 6300 w (principles.) 3136 6300 w (First,) 3716 6300 w (resources) 4003 6300 w (are) 4516 6300 w (named) 4711 6300 w (and) 720 6420 w (accessed) 942 6420 w (like) 1418 6420 w (files) 1632 6420 w (in) 1876 6420 w (a) 2009 6420 w (hierarchical) 2106 6420 w (file) 2709 6420 w (system.) 2901 6420 w (Second,) 3346 6420 w (there) 3766 6420 w (is) 4059 6420 w (a) 4180 6420 w (standard) 4276 6420 w (proto\255) 4744 6420 w (col,) 720 6540 w (called) 928 6540 w (9P,) 1246 6540 w (for) 1431 6540 w (accessing) 1605 6540 w (these) 2109 6540 w (resources.) 2407 6540 w (Third,) 2977 6540 w (the) 3303 6540 w (disjoint) 3494 6540 w (hierarchies) 3892 6540 w (provided) 4461 6540 w (by) 4925 6540 w (different) 720 6660 w (services) 1180 6660 w (are) 1609 6660 w (joined) 1803 6660 w (together) 2146 6660 w (into) 2600 6660 w (a) 2831 6660 w (single) 2927 6660 w (private) 3257 6660 w (hierarchical) 3631 6660 w (file) 4233 6660 w (name) 4425 6660 w (space.) 4732 6660 w (The) 720 6780 w (unusual) 950 6780 w (properties) 1382 6780 w (of) 1929 6780 w (Plan) 2076 6780 w (9) 2327 6780 w (stem) 2440 6780 w (from) 2727 6780 w (the) 3009 6780 w (consistent,) 3214 6780 w (aggressive) 3793 6780 w (application) 4358 6780 w (of) 4942 6780 w (these principles.) 720 6900 w (A) 970 7056 w (large) 1086 7056 w (Plan) 1376 7056 w (9) 1624 7056 w (installation) 1734 7056 w (has) 2317 7056 w (a) 2532 7056 w (number) 2634 7056 w (of) 3058 7056 w (computers) 3203 7056 w (networked) 3765 7056 w (together,) 4324 7056 w (each) 4816 7056 w (providing) 720 7176 w (a) 1226 7176 w (particular) 1325 7176 w (class) 1832 7176 w (of) 2113 7176 w (service.) 2255 7176 w (Shared) 2698 7176 w (multiprocessor) 3072 7176 w (servers) 3841 7176 w (provide) 4232 7176 w (comput\255) 4640 7176 w (ing) 720 7296 w (cycles;) 920 7296 w (other) 1289 7296 w (large) 1593 7296 w (machines) 1883 7296 w (offer) 2389 7296 w (file) 2668 7296 w (storage.) 2866 7296 w (These) 3341 7296 w (machines) 3677 7296 w (are) 4184 7296 w (located) 4384 7296 w (in) 4784 7296 w (an) 4923 7296 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 10 /LucidaSansUnicode00 f (\255 3 \255) 2783 480 w (air-conditioned) 720 840 w (machine) 1551 840 w (room) 2033 840 w (and) 2363 840 w (are) 2617 840 w (connected) 2843 840 w (by) 3415 840 w (high-performance) 3603 840 w (networks.) 4565 840 w (Lower) 720 960 w (bandwidth) 1057 960 w (networks) 1617 960 w (such) 2109 960 w (as) 2384 960 w (Ethernet) 2539 960 w (or) 2993 960 w (ISDN) 3144 960 w (connect) 3425 960 w (these) 3854 960 w (servers) 4165 960 w (to) 4563 960 w (office-) 4711 960 w (and) 720 1080 w (home-resident) 941 1080 w (workstations) 1707 1080 w (or) 2368 1080 w (PCs,) 2511 1080 w (called) 2758 1080 w (terminals) 3081 1080 w (in) 3574 1080 w (Plan) 3705 1080 w (9) 3946 1080 w (terminology.) 4049 1080 w (Figure) 4736 1080 w (1 shows the arrangement.) 720 1200 w 1928 3118 1928 2880 Dl 1928 2879 2354 2879 Dl 2355 2879 2355 3117 Dl 2355 3118 1929 3118 Dl 1928 2998 1841 2998 Dl 2581 3118 2581 2880 Dl 2581 2879 3007 2879 Dl 3008 2879 3008 3117 Dl 3008 3118 2582 3118 Dl 2581 3118 2581 2880 Dl 2581 2879 3007 2879 Dl 3008 2879 3008 3117 Dl 3008 3118 2582 3118 Dl 3234 3118 3234 2880 Dl 3234 2879 3660 2879 Dl 3661 2879 3661 3117 Dl 3661 3118 3235 3118 Dl 2142 3118 2142 3281 Dl 3448 3118 3448 3281 Dl 2795 3118 2795 3281 Dl 2111 3118 2111 3281 Dl 2173 3118 2173 3281 Dl 2764 3118 2764 3281 Dl 2826 3118 2826 3281 Dl 3416 3118 3416 3281 Dl 3479 3118 3479 3281 Dl 2029 3312 4859 3312 Dl 2029 3344 4859 3344 Dl 3661 2998 3817 2998 Dl 3818 2829 3818 3086 Dl 3818 2829 150 -84 150 84 Da 4119 2829 -150 84 -150 -84 Da 4119 2829 4119 3086 Dl 3818 3086 150 -84 150 84 Da (CPU) 2046 3018 w (CPU) 2699 3018 w 1928 3118 1928 2880 Dl 1928 2879 2354 2879 Dl 2355 2879 2355 3117 Dl 2355 3118 1929 3118 Dl 900 3118 900 2880 Dl 900 2879 1326 2879 Dl 1326 2879 1326 3117 Dl 1326 3118 900 3118 Dl (File) 1029 3018 w 1113 3118 1113 3274 Dl 969 3362 969 3619 Dl 969 3362 150 -84 150 84 Da 1270 3362 -150 84 -150 -84 Da 1270 3362 1270 3619 Dl 969 3619 150 -84 150 84 Da (File) 3364 3018 w 900 2503 4778 2503 Dl 1113 2879 1113 2503 Dl 2142 2879 2142 2503 Dl 2795 2879 2795 2503 Dl 3448 2879 3448 2503 Dl 4564 2503 4564 2879 Dl 4351 3118 4351 2880 Dl 4351 2879 4777 2879 Dl 4778 2879 4778 3117 Dl 4778 3118 4352 3118 Dl (Internet) 4670 1682 w (Gateway) 4362 3018 w 4402 2503 4402 2127 Dl 4188 2126 4188 1888 Dl 4188 1887 4614 1887 Dl 4615 1887 4615 2125 Dl 4615 2126 4189 2126 Dl (Gateway) 4200 2027 w 4402 1887 4402 1700 Dl 3534 1362 3534 1662 Dl 3446 1424 3621 1424 Dl 3446 1487 3621 1487 Dl 2990 1475 2990 1775 Dl 2902 1538 3077 1538 Dl 2902 1601 3077 1601 Dl 2361 1469 2361 1769 Dl 2273 1531 2448 1531 Dl 2273 1594 2448 1594 Dl 1759 1561 313 313 De (Term) 1790 1581 w 1527 2503 1527 2208 Dl 1370 2051 313 313 De (Term) 1401 2071 w 1941 2208 1941 2503 Dl 2355 2503 2355 2208 Dl 1784 2051 313 313 De (Term) 1815 2071 w 2198 2051 313 313 De (Term) 2229 2071 w 4860 3280 2030 3280 Dl 4778 2998 4859 2998 Dl 4860 2998 4860 1718 Dl 4875 1781 4860 1719 Dl 4844 1781 4859 1719 Dl 4564 3118 4564 3281 Dl 4596 3118 4596 3281 Dl 4533 3118 4533 3281 Dl (Ethernet) 3622 2466 w (Fiber Network) 3081 3452 w 4402 1699 4400 1671 Dl 4399 1671 4391 1643 Dl 4389 1643 4375 1615 Dl 4375 1615 4355 1588 Dl 4354 1588 4295 1534 Dl 4296 1532 4214 1478 Dl 4213 1478 4163 1454 Dl 4163 1454 4107 1436 Dl 4106 1436 4044 1424 Dl 4044 1423 3975 1417 Dl 3975 1416 3901 1416 Dl 3900 1416 3819 1421 Dl 3818 1421 3731 1431 Dl 3731 1431 3638 1447 Dl 3637 1448 2902 1599 Dl 2902 1601 2738 1629 Dl 2737 1629 2592 1641 Dl 2592 1642 2466 1639 Dl 2466 1638 2410 1631 Dl 2409 1629 2358 1617 Dl 2359 1618 2191 1576 Dl 2190 1575 2126 1565 Dl 2125 1565 2074 1562 Dl 1841 2998 1841 3490 Dl 1326 2998 1652 2998 Dl 1653 2998 1653 3490 Dl 1452 3830 1452 3491 Dl 1452 3491 2073 3491 Dl 2073 3491 2073 3830 Dl 2073 3830 1452 3830 Dl 1483 3799 1483 3523 Dl 1483 3522 2041 3522 Dl 2041 3522 2041 3798 Dl 2041 3799 1483 3799 Dl (Datakit) 1589 3680 w 2073 3660 2327 3660 Dl 2327 3660 2327 4001 Dl 2170 4159 313 313 De (Term) 2201 4179 w 1969 3830 1969 4002 Dl 1812 4159 313 313 De (Term) 1843 4179 w 1599 3830 1599 4008 Dl 1436 4165 313 313 De (Term) 1467 4185 w 8 /LucidaSans-Italic f (Figure) 900 4546 w (1.) 1177 4546 w (Structure) 1285 4546 w (of) 1679 4546 w (a) 1787 4546 w (large) 1868 4546 w (Plan) 2101 4546 w (9) 2301 4546 w (installation.) 2383 4546 w 8 /LucidaSansUnicode00 f (CPU) 2902 4546 w (servers) 3088 4546 w (and) 3400 4546 w (file) 3577 4546 w (servers) 3731 4546 w (share) 4044 4546 w (fast) 4290 4546 w (local-area) 4468 4546 w (networks,) 900 4656 w (while) 1320 4656 w (terminals) 1561 4656 w (use) 1962 4656 w (slower) 2136 4656 w (wider-area) 2427 4656 w (networks) 2890 4656 w (such) 3284 4656 w (as) 3503 4656 w (Ethernet,) 3625 4656 w (Datakit,) 4014 4656 w (or) 4354 4656 w (telephone) 4473 4656 w (lines) 900 4766 w (to) 1113 4766 w (connect) 1223 4766 w (to) 1560 4766 w (them.) 1670 4766 w (Gateway) 1952 4766 w (machines,) 2308 4766 w (which) 2733 4766 w (are) 2990 4766 w (just) 3143 4766 w (CPU) 3319 4766 w (servers) 3504 4766 w (connected) 3815 4766 w (to) 4248 4766 w (multiple) 4359 4766 w (net\255) 4709 4766 w (works,) 900 4886 w (allow) 1183 4886 w (machines) 1410 4886 w (on) 1804 4886 w (one) 1929 4886 w (network) 2099 4886 w (to) 2440 4886 w (see) 2545 4886 w (another.) 2702 4886 w 10 /LucidaSansUnicode00 f (The) 970 5162 w (modern) 1200 5162 w (style) 1625 5162 w (of) 1900 5162 w (computing) 2048 5162 w (offers) 2618 5162 w (each) 2951 5162 w (user) 3225 5162 w (a) 3485 5162 w (dedicated) 3590 5162 w (workstation) 4113 5162 w (or) 4732 5162 w (PC.) 4884 5162 w (Plan) 720 5282 w (9) 957 5282 w 10 /LucidaSansUnicode20 f (\031) 1020 5282 w 10 /LucidaSansUnicode00 f (s) 1052 5282 w (approach) 1139 5282 w (is) 1626 5282 w (different.) 1741 5282 w (The) 2258 5282 w (various) 2474 5282 w (machines) 2860 5282 w (with) 3354 5282 w (screens,) 3594 5282 w (keyboards,) 4029 5282 w (and) 4596 5282 w (mice) 4811 5282 w (all) 720 5402 w (provide) 866 5402 w (access) 1264 5402 w (to) 1612 5402 w (the) 1743 5402 w (resources) 1931 5402 w (of) 2434 5402 w (the) 2565 5402 w (network,) 2753 5402 w (so) 3210 5402 w (they) 3355 5402 w (are) 3596 5402 w (functionally) 3782 5402 w (equivalent,) 4382 5402 w (in) 4949 5402 w (the) 720 5522 w (manner) 914 5522 w (of) 1322 5522 w (the) 1459 5522 w (terminals) 1653 5522 w (attached) 2145 5522 w (to) 2600 5522 w (old) 2737 5522 w (timesharing) 2929 5522 w (systems.) 3545 5522 w (When) 4038 5522 w (someone) 4342 5522 w (uses) 4820 5522 w (the) 720 5642 w (system,) 922 5642 w (though,) 1341 5642 w (the) 1766 5642 w (terminal) 1968 5642 w (is) 2417 5642 w (temporarily) 2544 5642 w (personalized) 3148 5642 w (by) 3818 5642 w (that) 3980 5642 w (user.) 4219 5642 w (Instead) 4541 5642 w (of) 4942 5642 w (customizing) 720 5762 w (the) 1356 5762 w (hardware,) 1553 5762 w (Plan) 2077 5762 w (9) 2320 5762 w (offers) 2425 5762 w (the) 2750 5762 w (ability) 2947 5762 w (to) 3283 5762 w (customize) 3422 5762 w (one) 3960 5762 w 10 /LucidaSansUnicode20 f (\031) 4139 5762 w 10 /LucidaSansUnicode00 f (s) 4171 5762 w (view) 4263 5762 w (of) 4518 5762 w (the) 4657 5762 w (sys\255) 4853 5762 w (tem) 720 5882 w (provided) 943 5882 w (by) 1408 5882 w (the) 1560 5882 w (software.) 1752 5882 w (That) 2268 5882 w (customization) 2522 5882 w (is) 3245 5882 w (accomplished) 3363 5882 w (by) 4065 5882 w (giving) 4218 5882 w (local,) 4552 5882 w (per\255) 4847 5882 w (sonal) 720 6002 w (names) 1011 6002 w (for) 1361 6002 w (the) 1533 6002 w (publicly) 1721 6002 w (visible) 2132 6002 w (resources) 2474 6002 w (in) 2977 6002 w (the) 3101 6002 w (network.) 3289 6002 w (Plan) 3778 6002 w (9) 4012 6002 w (provides) 4108 6002 w (the) 4557 6002 w (mech\255) 4745 6002 w (anism) 720 6122 w (to) 1059 6122 w (assemble) 1207 6122 w (a) 1711 6122 w (personal) 1816 6122 w (view) 2284 6122 w (of) 2548 6122 w (the) 2696 6122 w (public) 2901 6122 w (space) 3248 6122 w (with) 3574 6122 w (local) 3829 6122 w (names) 4104 6122 w (for) 4471 6122 w (globally) 4660 6122 w (accessible) 720 6242 w (resources.) 1255 6242 w (Since) 1832 6242 w (the) 2127 6242 w (most) 2325 6242 w (important) 2610 6242 w (resources) 3131 6242 w (of) 3644 6242 w (the) 3784 6242 w (network) 3981 6242 w (are) 4415 6242 w (files,) 4609 6242 w (the) 4885 6242 w (model of that view is file-oriented.) 720 6362 w (The) 970 6518 w (client) 1194 6518 w 10 /LucidaSansUnicode20 f (\031) 1458 6518 w 10 /LucidaSansUnicode00 f (s) 1490 6518 w (local) 1584 6518 w (name) 1852 6518 w (space) 2161 6518 w (provides) 2480 6518 w (a) 2939 6518 w (way) 3038 6518 w (to) 3266 6518 w (customize) 3408 6518 w (the) 3949 6518 w (user) 4148 6518 w 10 /LucidaSansUnicode20 f (\031) 4358 6518 w 10 /LucidaSansUnicode00 f (s) 4390 6518 w (view) 4485 6518 w (of) 4743 6518 w (the) 4885 6518 w (network.) 720 6638 w (The) 1213 6638 w (services) 1431 6638 w (available) 1855 6638 w (in) 2315 6638 w (the) 2443 6638 w (network) 2635 6638 w (all) 3064 6638 w (export) 3214 6638 w (file) 3570 6638 w (hierarchies.) 3758 6638 w (Those) 4391 6638 w (impor\255) 4720 6638 w (tant) 720 6758 w (to) 944 6758 w (the) 1075 6758 w (user) 1263 6758 w (are) 1506 6758 w (gathered) 1691 6758 w (together) 2156 6758 w (into) 2601 6758 w (a) 2823 6758 w (custom) 2911 6758 w (name) 3299 6758 w (space;) 3598 6758 w (those) 3939 6758 w (of) 4240 6758 w (no) 4372 6758 w (immediate) 4529 6758 w (interest) 720 6878 w (are) 1130 6878 w (ignored.) 1323 6878 w (This) 1802 6878 w (is) 2048 6878 w (a) 2169 6878 w (different) 2265 6878 w (style) 2724 6878 w (of) 2990 6878 w (use) 3129 6878 w (from) 3339 6878 w (the) 3612 6878 w (idea) 3808 6878 w (of) 4051 6878 w (a) 4189 6878 w 10 /LucidaSansUnicode20 f (\030) 4284 6878 w 10 /LucidaSansUnicode00 f (uniform) 4316 6878 w (global) 4741 6878 w (name) 720 6998 w (space) 1019 6998 w 10 /LucidaSansUnicode20 f (\031) 1295 6998 w 10 /LucidaSansUnicode00 f (.) 1327 6998 w (In) 1424 6998 w (Plan) 1548 6998 w (9,) 1782 6998 w (there) 1910 6998 w (are) 2196 6998 w (known) 2382 6998 w (names) 2736 6998 w (for) 3087 6998 w (services) 3260 6998 w (and) 3681 6998 w (uniform) 3895 6998 w (names) 4314 6998 w (for) 4665 6998 w (files) 4838 6998 w (exported) 720 7118 w (by) 1202 7118 w (those) 1361 7118 w (services,) 1672 7118 w (but) 2134 7118 w (the) 2339 7118 w (view) 2537 7118 w (is) 2794 7118 w (entirely) 2917 7118 w (local.) 3322 7118 w (As) 3654 7118 w (an) 3817 7118 w (analogy,) 3977 7118 w (consider) 4428 7118 w (the) 4885 7118 w (difference) 720 7238 w (between) 1263 7238 w (the) 1725 7238 w (phrase) 1935 7238 w 10 /LucidaSansUnicode20 f (\030) 2318 7238 w 10 /LucidaSansUnicode00 f (my) 2350 7238 w (house) 2550 7238 w 10 /LucidaSansUnicode20 f (\031) 2842 7238 w 10 /LucidaSansUnicode00 f (and) 2929 7238 w (the) 3164 7238 w (precise) 3374 7238 w (address) 3776 7238 w (of) 4212 7238 w (the) 4366 7238 w (speaker) 4577 7238 w 10 /LucidaSansUnicode20 f (\031) 4957 7238 w 10 /LucidaSansUnicode00 f (s) 4989 7238 w cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 10 /LucidaSansUnicode00 f (\255 4 \255) 2783 480 w (home.) 720 840 w (The) 1105 840 w (latter) 1335 840 w (may) 1639 840 w (be) 1887 840 w (used) 2054 840 w (by) 2334 840 w (anyone) 2497 840 w (but) 2893 840 w (the) 3103 840 w (former) 3306 840 w (is) 3683 840 w (easier) 3811 840 w (to) 4147 840 w (say) 4293 840 w (and) 4499 840 w (makes) 4727 840 w (sense) 720 960 w (when) 1037 960 w (spoken.) 1335 960 w (It) 1791 960 w (also) 1898 960 w (changes) 2135 960 w (meaning) 2575 960 w (depending) 3035 960 w (on) 3592 960 w (who) 3756 960 w (says) 3998 960 w (it,) 4249 960 w (yet) 4389 960 w (that) 4576 960 w (does) 4809 960 w (not) 720 1080 w (cause) 928 1080 w (confusion.) 1251 1080 w (Similarly,) 1839 1080 w (in) 2330 1080 w (Plan) 2469 1080 w (9) 2718 1080 w (the) 2829 1080 w (name) 3032 1080 w 10 /LucidaTypewriter f (/dev/cons) 3346 1080 w 10 /LucidaSansUnicode00 f (always) 4042 1080 w (refers) 4409 1080 w (to) 4739 1080 w (the) 4885 1080 w (user) 720 1200 w 10 /LucidaSansUnicode20 f (\031) 930 1200 w 10 /LucidaSansUnicode00 f (s) 962 1200 w (terminal) 1055 1200 w (and) 1499 1200 w 10 /LucidaTypewriter f (/bin/date) 1721 1200 w 10 /LucidaSansUnicode00 f (the) 2411 1200 w (correct) 2608 1200 w (version) 2988 1200 w (of) 3383 1200 w (the) 3524 1200 w (date) 3722 1200 w (command) 3976 1200 w (to) 4497 1200 w (run,) 4638 1200 w (but) 4878 1200 w (which) 720 1320 w (files) 1035 1320 w (those) 1271 1320 w (names) 1572 1320 w (represent) 1923 1320 w (depends) 2419 1320 w (on) 2866 1320 w (circumstances) 3022 1320 w (such) 3745 1320 w (as) 4004 1320 w (the) 4143 1320 w (architecture) 4331 1320 w (of) 4942 1320 w (the) 720 1440 w (machine) 920 1440 w (executing) 1373 1440 w 10 /LucidaTypewriter f (date) 1894 1440 w 10 /LucidaSansUnicode00 f (.) 2182 1440 w (Plan) 2292 1440 w (9,) 2539 1440 w (then,) 2680 1440 w (has) 2975 1440 w (local) 3189 1440 w (name) 3460 1440 w (spaces) 3772 1440 w (that) 4145 1440 w (obey) 4382 1440 w (globally) 4660 1440 w (understood) 720 1560 w (conventions;) 1315 1560 w (it) 1969 1560 w (is) 2073 1560 w (the) 2191 1560 w (conventions) 2384 1560 w (that) 3006 1560 w (guarantee) 3235 1560 w (sane) 3759 1560 w (behavior) 4020 1560 w (in) 4476 1560 w (the) 4604 1560 w (pres\255) 4796 1560 w (ence of local names.) 720 1680 w (The) 970 1836 w (9P) 1195 1836 w (protocol) 1357 1836 w (is) 1805 1836 w (structured) 1929 1836 w (as) 2474 1836 w (a) 2624 1836 w (set) 2723 1836 w (of) 2911 1836 w (transactions) 3053 1836 w (that) 3689 1836 w (send) 3924 1836 w (a) 4200 1836 w (request) 4299 1836 w (from) 4709 1836 w (a) 4985 1836 w (client) 720 1956 w (to) 1028 1956 w (a) 1170 1956 w (\(local) 1269 1956 w (or) 1571 1956 w (remote\)) 1717 1956 w (server) 2137 1956 w (and) 2477 1956 w (return) 2700 1956 w (the) 3042 1956 w (result.) 3240 1956 w (9P) 3623 1956 w (controls) 3784 1956 w (file) 4220 1956 w (systems,) 4414 1956 w (not) 4880 1956 w (just) 720 2076 w (files:) 941 2076 w (it) 1216 2076 w (includes) 1323 2076 w (procedures) 1767 2076 w (to) 2353 2076 w (resolve) 2493 2076 w (file) 2881 2076 w (names) 3074 2076 w (and) 3433 2076 w (traverse) 3655 2076 w (the) 4086 2076 w (name) 4283 2076 w (hierarchy) 4591 2076 w (of) 720 2196 w (the) 854 2196 w (file) 1045 2196 w (system) 1232 2196 w (provided) 1608 2196 w (by) 2072 2196 w (the) 2223 2196 w (server.) 2414 2196 w (On) 2810 2196 w (the) 2985 2196 w (other) 3175 2196 w (hand,) 3467 2196 w (the) 3776 2196 w (client) 3966 2196 w 10 /LucidaSansUnicode20 f (\031) 4230 2196 w 10 /LucidaSansUnicode00 f (s) 4262 2196 w (name) 4348 2196 w (space) 4649 2196 w (is) 4960 2196 w (held) 720 2316 w (by) 975 2316 w (the) 1135 2316 w (client) 1335 2316 w (system) 1644 2316 w (alone,) 2029 2316 w (not) 2369 2316 w (on) 2574 2316 w (or) 2742 2316 w (with) 2889 2316 w (the) 3139 2316 w (server,) 3339 2316 w (a) 3713 2316 w (distinction) 3814 2316 w (from) 4371 2316 w (systems) 4649 2316 w (such) 720 2436 w (as) 989 2436 w (Sprite) 1138 2436 w ([OCDNW88].) 1461 2436 w (Also,) 2142 2436 w (file) 2427 2436 w (access) 2621 2436 w (is) 2979 2436 w (at) 3102 2436 w (the) 3236 2436 w (level) 3433 2436 w (of) 3697 2436 w (bytes,) 3837 2436 w (not) 4170 2436 w (blocks,) 4372 2436 w (which) 4759 2436 w (distinguishes) 720 2556 w (9P) 1408 2556 w (from) 1570 2556 w (protocols) 1846 2556 w (like) 2345 2556 w (NFS) 2561 2556 w (and) 2787 2556 w (RFS.) 3011 2556 w (A) 3290 2556 w (paper) 3403 2556 w (by) 3725 2556 w (Welch) 3884 2556 w (compares) 4212 2556 w (Sprite,) 4728 2556 w (NFS, and Plan 9) 720 2676 w 10 /LucidaSansUnicode20 f (\031) 1474 2676 w 10 /LucidaSansUnicode00 f (s network file system structures [Welc94].) 1506 2676 w (This) 970 2832 w (approach) 1214 2832 w (was) 1704 2832 w (designed) 1926 2832 w (with) 2407 2832 w (traditional) 2651 2832 w (files) 3188 2832 w (in) 3429 2832 w (mind,) 3560 2832 w (but) 3879 2832 w (can) 4081 2832 w (be) 4289 2832 w (extended) 4448 2832 w (to) 4942 2832 w (many) 720 2952 w (other) 1026 2952 w (resources.) 1327 2952 w (Plan) 1905 2952 w (9) 2150 2952 w (services) 2256 2952 w (that) 2686 2952 w (export) 2920 2952 w (file) 3282 2952 w (hierarchies) 3476 2952 w (include) 4052 2952 w (I/O) 4447 2952 w (devices,) 4650 2952 w (backup) 720 3072 w (services,) 1112 3072 w (the) 1571 3072 w (window) 1766 3072 w (system,) 2175 3072 w (network) 2587 3072 w (interfaces,) 3020 3072 w (and) 3568 3072 w (many) 3789 3072 w (others.) 4092 3072 w (One) 4505 3072 w (exam\255) 4742 3072 w (ple) 720 3192 w (is) 906 3192 w (the) 1024 3192 w (process) 1217 3192 w (file) 1629 3192 w (system,) 1818 3192 w 10 /LucidaTypewriter f (/proc) 2228 3192 w 10 /LucidaSansUnicode00 f (,) 2588 3192 w (which) 2658 3192 w (provides) 2976 3192 w (a) 3429 3192 w (clean) 3521 3192 w (way) 3811 3192 w (to) 4032 3192 w (examine) 4167 3192 w (and) 4616 3192 w (con\255) 4833 3192 w (trol) 720 3312 w (running) 923 3312 w (processes.) 1338 3312 w (Precursor) 1918 3312 w (systems) 2413 3312 w (had) 2840 3312 w (a) 3056 3312 w (similar) 3147 3312 w (idea) 3510 3312 w ([Kill84],) 3749 3312 w (but) 4161 3312 w (Plan) 4359 3312 w (9) 4596 3312 w (pushes) 4695 3312 w (the) 720 3432 w (file) 918 3432 w (metaphor) 1112 3432 w (much) 1623 3432 w (further) 1934 3432 w ([PPTTW93].) 2313 3432 w (The) 2934 3432 w (file) 3158 3432 w (system) 3352 3432 w (model) 3735 3432 w (is) 4080 3432 w (well-understood,) 4202 3432 w (both) 720 3552 w (by) 984 3552 w (system) 1140 3552 w (builders) 1522 3552 w (and) 1958 3552 w (general) 2180 3552 w (users,) 2583 3552 w (so) 2918 3552 w (services) 3072 3552 w (that) 3501 3552 w (present) 3734 3552 w (file-like) 4142 3552 w (interfaces) 4565 3552 w (are) 720 3672 w (easy) 918 3672 w (to) 1178 3672 w (build,) 1322 3672 w (easy) 1645 3672 w (to) 1904 3672 w (understand,) 2047 3672 w (and) 2676 3672 w (easy) 2901 3672 w (to) 3160 3672 w (use.) 3303 3672 w (Files) 3581 3672 w (come) 3845 3672 w (with) 4151 3672 w (agreed-upon) 4401 3672 w (rules) 720 3792 w (for) 1006 3792 w (protection,) 1192 3792 w (naming,) 1769 3792 w (and) 2211 3792 w (access) 2439 3792 w (both) 2802 3792 w (local) 3073 3792 w (and) 3346 3792 w (remote,) 3574 3792 w (so) 3998 3792 w (services) 4158 3792 w (built) 4593 3792 w (this) 4861 3792 w (way) 720 3912 w (are) 968 3912 w (ready-made) 1184 3912 w (for) 1840 3912 w (a) 2042 3912 w (distributed) 2160 3912 w (system.) 2754 3912 w (\(This) 3221 3912 w (is) 3522 3912 w (a) 3665 3912 w (distinction) 3783 3912 w (from) 4357 3912 w 10 /LucidaSansUnicode20 f (\030) 4652 3912 w 10 /LucidaSansUnicode00 f (object-) 4684 3912 w (oriented) 720 4032 w 10 /LucidaSansUnicode20 f (\031) 1125 4032 w 10 /LucidaSansUnicode00 f (models,) 1209 4032 w (where) 1646 4032 w (these) 1990 4032 w (issues) 2304 4032 w (must) 2656 4032 w (be) 2951 4032 w (faced) 3122 4032 w (anew) 3436 4032 w (for) 3738 4032 w (every) 3929 4032 w (class) 4238 4032 w (of) 4527 4032 w (object.\)) 4677 4032 w (Examples in the sections that follow illustrate these ideas in action.) 720 4152 w 10 /LucidaSans-Demi f (The Command-level View) 720 4392 w 10 /LucidaSansUnicode00 f (Plan) 970 4548 w (9) 1209 4548 w (is) 1310 4548 w (meant) 1428 4548 w (to) 1769 4548 w (be) 1905 4548 w (used) 2062 4548 w (from) 2332 4548 w (a) 2602 4548 w (machine) 2695 4548 w (with) 3141 4548 w (a) 3384 4548 w (screen) 3477 4548 w (running) 3832 4548 w (the) 4251 4548 w (window) 4445 4548 w (sys\255) 4853 4548 w (tem.) 720 4668 w (It) 1019 4668 w (has) 1134 4668 w (no) 1351 4668 w (notion) 1523 4668 w (of) 1884 4668 w 10 /LucidaSansUnicode20 f (\030) 2030 4668 w 10 /LucidaSansUnicode00 f (teletype) 2062 4668 w 10 /LucidaSansUnicode20 f (\031) 2448 4668 w 10 /LucidaSansUnicode00 f (in) 2528 4668 w (the) 2667 4668 w (UNIX) 2870 4668 w (sense.) 3153 4668 w (The) 3541 4668 w (keyboard) 3770 4668 w (handling) 4267 4668 w (of) 4739 4668 w (the) 4885 4668 w (bare) 720 4788 w (system) 975 4788 w (is) 1355 4788 w (rudimentary,) 1475 4788 w (but) 2138 4788 w (once) 2340 4788 w (the) 2610 4788 w (window) 2805 4788 w (system,) 3215 4788 w (8\275) 3628 4788 w ([Pike91],) 3812 4788 w (is) 4275 4788 w (running,) 4396 4788 w (text) 4849 4788 w (can) 720 4908 w (be) 921 4908 w (edited) 1073 4908 w (with) 1410 4908 w 10 /LucidaSansUnicode20 f (\030) 1648 4908 w 10 /LucidaSansUnicode00 f (cut) 1680 4908 w (and) 1863 4908 w (paste) 2076 4908 w 10 /LucidaSansUnicode20 f (\031) 2338 4908 w 10 /LucidaSansUnicode00 f (operations) 2403 4908 w (from) 2952 4908 w (a) 3217 4908 w (pop-up) 3305 4908 w (menu, copied between win\255) 3708 4908 w (dows,) 720 5028 w (and) 1045 5028 w (so) 1266 5028 w (on.) 1419 5028 w (8\275) 1648 5028 w (permits) 1833 5028 w (editing) 2245 5028 w (text) 2625 5028 w (from) 2858 5028 w (the) 3132 5028 w (past,) 3329 5028 w (not) 3609 5028 w (just) 3811 5028 w (on) 4033 5028 w (the) 4198 5028 w (current) 4395 5028 w (input) 4787 5028 w (line.) 720 5148 w (The) 1000 5148 w (text-editing) 1220 5148 w (capabilities) 1846 5148 w (of) 2432 5148 w (8\275) 2569 5148 w (are) 2751 5148 w (strong) 2942 5148 w (enough) 3295 5148 w (to) 3699 5148 w (displace) 3836 5148 w (special) 4272 5148 w (features) 4645 5148 w (such) 720 5268 w (as) 983 5268 w (history) 1126 5268 w (in) 1496 5268 w (the) 1624 5268 w (shell,) 1816 5268 w (paging) 2112 5268 w (and) 2482 5268 w (scrolling,) 2699 5268 w (and) 3183 5268 w (mail) 3400 5268 w (editors.) 3643 5268 w (8\275) 4082 5268 w (windows) 4262 5268 w (do) 4719 5268 w (not) 4880 5268 w (support) 720 5388 w (cursor) 1135 5388 w (addressing) 1479 5388 w (and,) 2048 5388 w (except) 2296 5388 w (for) 2656 5388 w (one) 2831 5388 w (terminal) 3046 5388 w (emulator) 3484 5388 w (to) 3954 5388 w (simplify) 4088 5388 w (connecting) 4507 5388 w (to traditional systems, there is no cursor-addressing software in Plan 9.) 720 5508 w (Each) 970 5664 w (window) 1228 5664 w (is) 1633 5664 w (created) 1749 5664 w (in) 2144 5664 w (a) 2272 5664 w (separate) 2364 5664 w (name) 2815 5664 w (space.) 3118 5664 w (Adjustments) 3495 5664 w (made) 4143 5664 w (to) 4447 5664 w (the) 4582 5664 w (name) 4774 5664 w (space) 720 5784 w (in) 1039 5784 w (a) 1173 5784 w (window) 1271 5784 w (do) 1682 5784 w (not) 1848 5784 w (affect) 2050 5784 w (other) 2365 5784 w (windows) 2664 5784 w (or) 3126 5784 w (programs,) 3270 5784 w (making) 3811 5784 w (it) 4212 5784 w (safe) 4320 5784 w (to) 4561 5784 w (experi\255) 4701 5784 w (ment) 720 5904 w (with) 1013 5904 w (local) 1263 5904 w (modifications) 1533 5904 w (to) 2236 5904 w (the) 2379 5904 w (name) 2579 5904 w (space,) 2890 5904 w (for) 3243 5904 w (example) 3427 5904 w (to) 3885 5904 w (substitute) 4029 5904 w (files) 4560 5904 w (from) 4808 5904 w (the) 720 6024 w (dump) 909 6024 w (file) 1223 6024 w (system) 1407 6024 w (when) 1780 6024 w (debugging.) 2070 6024 w (Once) 2688 6024 w (the) 2968 6024 w (debugging) 3156 6024 w (is) 3710 6024 w (done,) 3823 6024 w (the) 4130 6024 w (window) 4318 6024 w (can) 4720 6024 w (be) 4921 6024 w (deleted) 720 6144 w (and) 1115 6144 w (all) 1330 6144 w (trace) 1478 6144 w (of) 1753 6144 w (the) 1886 6144 w (experimental) 2076 6144 w (apparatus) 2749 6144 w (is) 3266 6144 w (gone.) 3382 6144 w (Similar) 3723 6144 w (arguments) 4089 6144 w (apply) 4644 6144 w (to) 4942 6144 w (the) 720 6264 w (private) 913 6264 w (space) 1284 6264 w (each) 1598 6264 w (window) 1860 6264 w (has) 2267 6264 w (for) 2473 6264 w (environment) 2650 6264 w (variables,) 3298 6264 w (notes) 3798 6264 w (\(analogous) 4102 6264 w (to) 4670 6264 w (UNIX) 4805 6264 w (signals\), etc.) 720 6384 w (Each) 970 6540 w (window) 1241 6540 w (is) 1660 6540 w (created) 1790 6540 w (running) 2199 6540 w (an) 2629 6540 w (application,) 2796 6540 w (such) 3412 6540 w (as) 3688 6540 w (the) 3844 6540 w (shell,) 4049 6540 w (with) 4358 6540 w (standard) 4613 6540 w (input) 720 6660 w (and) 1009 6660 w (output) 1225 6660 w (connected) 1583 6660 w (to) 2118 6660 w (the) 2252 6660 w (editable) 2443 6660 w (text) 2867 6660 w (of) 3094 6660 w (the) 3228 6660 w (window.) 3419 6660 w (Each) 3888 6660 w (window) 4146 6660 w (also) 4551 6660 w (has) 4782 6660 w (a) 4985 6660 w (private) 720 6780 w (bitmap) 1107 6780 w (and) 1501 6780 w (multiplexed) 1735 6780 w (access) 2367 6780 w (to) 2737 6780 w (the) 2890 6780 w (keyboard,) 3100 6780 w (mouse,) 3636 6780 w (and) 4046 6780 w (other) 4281 6780 w (graphical) 4593 6780 w (resources) 720 6900 w (through) 1235 6900 w (files) 1667 6900 w (like) 1914 6900 w 10 /LucidaTypewriter f (/dev/mouse) 2131 6900 w 10 /LucidaSansUnicode00 f (,) 2851 6900 w 10 /LucidaTypewriter f (/dev/bitblt) 2928 6900 w 10 /LucidaSansUnicode00 f (,) 3720 6900 w (and) 3796 6900 w 10 /LucidaTypewriter f (/dev/cons) 4020 6900 w 10 /LucidaSansUnicode00 f (\(analo\255) 4712 6900 w (gous) 720 7020 w (to) 990 7020 w (UNIX) 1122 7020 w 10 /LucidaSansUnicode20 f (\031) 1357 7020 w 10 /LucidaSansUnicode00 f (s) 1389 7020 w 10 /LucidaTypewriter f (/dev/tty) 1474 7020 w 10 /LucidaSansUnicode00 f (\).) 2050 7020 w (These) 2181 7020 w (files) 2503 7020 w (are) 2739 7020 w (provided) 2925 7020 w (by) 3387 7020 w (8\275,) 3536 7020 w (which) 3745 7020 w (is) 4060 7020 w (implemented) 4174 7020 w (as) 4845 7020 w (a) 4985 7020 w (file) 720 7140 w (server.) 904 7140 w (Unlike) 1298 7140 w (X) 1634 7140 w (windows,) 1730 7140 w (where a new application typically creates a new window to) 2215 7140 w (run) 720 7260 w (in,) 939 7260 w (an) 1116 7260 w (8\275) 1287 7260 w (graphics) 1484 7260 w (application) 1952 7260 w (usually) 2540 7260 w (runs) 2934 7260 w (in) 3204 7260 w (the) 3349 7260 w (window) 3558 7260 w (where) 3981 7260 w (it) 4327 7260 w (starts.) 4448 7260 w (It) 4839 7260 w (is) 4960 7260 w cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 10 /LucidaSansUnicode00 f (\255 5 \255) 2783 480 w (possible) 720 840 w (and) 1157 840 w (efficient) 1371 840 w (for) 1799 840 w (an) 1972 840 w (application) 2123 840 w (to) 2691 840 w (create) 2823 840 w (a) 3152 840 w (new) 3240 840 w (window,) 3468 840 w (but) 3902 840 w (that) 4097 840 w (is) 4321 840 w (not) 4434 840 w (the) 4627 840 w (style) 4815 840 w (of) 720 960 w (the) 859 960 w (system.) 1055 960 w (Again) 1500 960 w (contrasting) 1818 960 w (to) 2407 960 w (X,) 2546 960 w (in) 2682 960 w (which) 2814 960 w (a) 3137 960 w (remote) 3234 960 w (application) 3620 960 w (makes) 4196 960 w (a) 4551 960 w (network) 4648 960 w (call) 720 1080 w (to) 919 1080 w (the) 1051 1080 w (X) 1240 1080 w (server) 1337 1080 w (to) 1668 1080 w (start) 1800 1080 w (running,) 2055 1080 w (a) 2501 1080 w (remote) 2590 1080 w (8\275) 2968 1080 w (application) 3145 1080 w (sees) 3713 1080 w (the) 3961 1080 w 10 /LucidaTypewriter f (mouse) 4150 1080 w 10 /LucidaSansUnicode00 f (,) 4510 1080 w 10 /LucidaTypewriter f (bitblt) 4576 1080 w 10 /LucidaSansUnicode00 f (,) 5008 1080 w (and) 720 1200 w 10 /LucidaTypewriter f (cons) 935 1200 w 10 /LucidaSansUnicode00 f (files) 1258 1200 w (for) 1495 1200 w (the) 1669 1200 w (window) 1859 1200 w (as) 2263 1200 w (usual) 2404 1200 w (in) 2698 1200 w 10 /LucidaTypewriter f (/dev) 2824 1200 w 10 /LucidaSansUnicode00 f (;) 3112 1200 w (it) 3179 1200 w (does) 3280 1200 w (not) 3546 1200 w (know) 3741 1200 w (whether) 4034 1200 w (the) 4460 1200 w (files) 4650 1200 w (are) 4888 1200 w (local.) 720 1320 w (It) 1056 1320 w (just) 1168 1320 w (reads) 1394 1320 w (and) 1706 1320 w (writes) 1932 1320 w (them) 2269 1320 w (to) 2563 1320 w (control) 2707 1320 w (the) 3095 1320 w (window;) 3296 1320 w (the) 3743 1320 w (network) 3944 1320 w (connection) 4382 1320 w (is) 4960 1320 w (already there and multiplexed.) 720 1440 w (The) 970 1596 w (intended) 1186 1596 w (style) 1649 1596 w (of) 1909 1596 w (use) 2042 1596 w (is) 2246 1596 w (to) 2361 1596 w (run) 2494 1596 w (interactive) 2694 1596 w (applications) 3234 1596 w (such) 3854 1596 w (as) 4115 1596 w (the) 4257 1596 w (window) 4448 1596 w (sys\255) 4853 1596 w (tem) 720 1716 w (and) 950 1716 w (text) 1174 1716 w (editor) 1408 1716 w (on) 1738 1716 w (the) 1904 1716 w (terminal) 2102 1716 w (and) 2547 1716 w (to) 2770 1716 w (run) 2911 1716 w (computation-) 3119 1716 w (or) 3831 1716 w (file-intensive) 3976 1716 w (applica\255) 4662 1716 w (tions) 720 1836 w (on) 1018 1836 w (remote) 1199 1836 w (servers.) 1601 1836 w (Different) 2071 1836 w (windows) 2559 1836 w (may) 3038 1836 w (be) 3297 1836 w (running) 3475 1836 w (programs) 3914 1836 w (on) 4440 1836 w (different) 4622 1836 w (machines) 720 1956 w (over) 1219 1956 w (different) 1469 1956 w (networks,) 1927 1956 w (but) 2442 1956 w (by) 2644 1956 w (making) 2799 1956 w (the) 3198 1956 w (name) 3393 1956 w (space) 3699 1956 w (equivalent) 4015 1956 w (in) 4556 1956 w (all) 4687 1956 w (win\255) 4839 1956 w (dows,) 720 2076 w (this) 1056 2076 w (is) 1287 2076 w (transparent:) 1419 2076 w (the) 2063 2076 w (same) 2270 2076 w (commands) 2577 2076 w (and) 3158 2076 w (resources) 3391 2076 w (are) 3914 2076 w (available,) 4119 2076 w (with) 4627 2076 w (the) 4885 2076 w (same names, wherever the computation is performed.) 720 2196 w (The) 970 2352 w (command) 1186 2352 w (set) 1699 2352 w (of) 1878 2352 w (Plan) 2011 2352 w (9) 2247 2352 w (is) 2346 2352 w (similar) 2462 2352 w (to) 2825 2352 w (that) 2959 2352 w (of) 3186 2352 w (UNIX.) 3320 2352 w (The) 3655 2352 w (commands) 3872 2352 w (fall) 4437 2352 w (into) 4623 2352 w (sev\255) 4848 2352 w (eral) 720 2472 w (broad) 944 2472 w (classes.) 1270 2472 w (Some) 1721 2472 w (are) 2028 2472 w (new) 2223 2472 w (programs) 2461 2472 w (for) 2971 2472 w (old) 3153 2472 w (jobs:) 3349 2472 w (programs) 3629 2472 w (like) 4138 2472 w 10 /LucidaTypewriter f (ls) 4352 2472 w 10 /LucidaSansUnicode00 f (,) 4496 2472 w 10 /LucidaTypewriter f (cat) 4570 2472 w 10 /LucidaSansUnicode00 f (,) 4786 2472 w (and) 4860 2472 w 10 /LucidaTypewriter f (who) 720 2592 w 10 /LucidaSansUnicode00 f (have) 968 2592 w (familiar) 1226 2592 w (names) 1627 2592 w (and) 1977 2592 w (functions) 2190 2592 w (but) 2675 2592 w (are) 2870 2592 w (new,) 3055 2592 w (simpler) 3315 2592 w (implementations.) 3710 2592 w 10 /LucidaTypewriter f (Who) 4620 2592 w 10 /LucidaSansUnicode00 f (,) 4836 2592 w (for) 4901 2592 w (example,) 720 2712 w (is) 1215 2712 w (a) 1345 2712 w (shell) 1450 2712 w (script,) 1727 2712 w (while) 2081 2712 w 10 /LucidaTypewriter f (ps) 2384 2712 w 10 /LucidaSansUnicode00 f (is) 2578 2712 w (just) 2708 2712 w (95) 2937 2712 w (lines) 3112 2712 w (of) 3388 2712 w (C) 3535 2712 w (code.) 3653 2712 w (Some) 3997 2712 w (commands) 4310 2712 w (are) 4888 2712 w (essentially) 720 2832 w (the) 1268 2832 w (same) 1464 2832 w (as) 1760 2832 w (their) 1908 2832 w (UNIX) 2175 2832 w (ancestors:) 2452 2832 w 10 /LucidaTypewriter f (awk) 2991 2832 w 10 /LucidaSansUnicode00 f (,) 3207 2832 w 10 /LucidaTypewriter f (troff) 3281 2832 w 10 /LucidaSansUnicode00 f (,) 3641 2832 w (and) 3715 2832 w (others) 3937 2832 w (have) 4287 2832 w (been) 4554 2832 w (con\255) 4833 2832 w (verted) 720 2952 w (to) 1063 2952 w (ANSI) 1199 2952 w (C) 1463 2952 w (and) 1570 2952 w (extended) 1788 2952 w (to) 2280 2952 w (handle) 2415 2952 w (Unicode,) 2779 2952 w (but) 3239 2952 w (are) 3438 2952 w (still) 3627 2952 w (the) 3839 2952 w (familiar) 4031 2952 w (tools.) 4436 2952 w (Some) 4776 2952 w (are) 720 3072 w (entirely) 930 3072 w (new) 1350 3072 w (programs) 1603 3072 w (for) 2128 3072 w (old) 2325 3072 w (niches:) 2536 3072 w (the) 2937 3072 w (shell) 3151 3072 w 10 /LucidaTypewriter f (rc) 3437 3072 w 10 /LucidaSansUnicode00 f (,) 3581 3072 w (text) 3672 3072 w (editor) 3922 3072 w 10 /LucidaTypewriter f (sam) 4268 3072 w 10 /LucidaSansUnicode00 f (,) 4484 3072 w (debugger) 4575 3072 w 10 /LucidaTypewriter f (acid) 720 3192 w 10 /LucidaSansUnicode00 f (,) 1008 3192 w (and) 1074 3192 w (others) 1287 3192 w (displace) 1628 3192 w (the) 2058 3192 w (better-known) 2246 3192 w (UNIX) 2947 3192 w (tools) 3215 3192 w (with) 3487 3192 w (similar) 3725 3192 w (jobs.) 4085 3192 w (Finally,) 4387 3192 w (about) 4762 3192 w (half the commands are new.) 720 3312 w (Compatibility) 970 3468 w (was) 1657 3468 w (not) 1881 3468 w (a) 2082 3468 w (requirement) 2178 3468 w (for) 2815 3468 w (the) 2995 3468 w (system.) 3191 3468 w (Where) 3636 3468 w (the) 3978 3468 w (old) 4174 3468 w (commands) 4368 3468 w (or) 4938 3468 w (notation seemed good enough, we kept them.) 720 3588 w (When they didn) 3026 3588 w 10 /LucidaSansUnicode20 f (\031) 3780 3588 w 10 /LucidaSansUnicode00 f (t, we replaced them.) 3812 3588 w 10 /LucidaSans-Demi f (The File Server) 720 3828 w 10 /LucidaSansUnicode00 f (A) 970 3984 w (central) 1078 3984 w (file) 1448 3984 w (server) 1638 3984 w (stores) 1974 3984 w (permanent) 2310 3984 w (files) 2874 3984 w (and) 3115 3984 w (presents) 3334 3984 w (them) 3790 3984 w (to) 4077 3984 w (the) 4214 3984 w (network) 4408 3984 w (as) 4839 3984 w (a) 4985 3984 w (file) 720 4104 w (hierarchy) 918 4104 w (exported) 1414 4104 w (using) 1899 4104 w (9P.) 2212 4104 w (The) 2441 4104 w (server) 2669 4104 w (is) 3013 4104 w (a) 3140 4104 w (stand-alone) 3242 4104 w (system,) 3878 4104 w (accessible) 4297 4104 w (only) 4836 4104 w (over) 720 4224 w (the) 978 4224 w (network,) 1181 4224 w (designed) 1653 4224 w (to) 2143 4224 w (do) 2289 4224 w (its) 2461 4224 w (one) 2626 4224 w (job) 2853 4224 w (well.) 3055 4224 w (It) 3359 4224 w (runs) 3474 4224 w (no) 3739 4224 w (user) 3911 4224 w (processes,) 4170 4224 w (only) 4732 4224 w (a) 4985 4224 w (fixed) 720 4344 w (set) 1005 4344 w (of) 1188 4344 w (routines) 1325 4344 w (compiled) 1763 4344 w (into) 2247 4344 w (the) 2475 4344 w (boot) 2669 4344 w (image.) 2930 4344 w (Rather) 3328 4344 w (than) 3681 4344 w (a) 3936 4344 w (set) 4030 4344 w (of) 4213 4344 w (disks) 4350 4344 w (or) 4641 4344 w (sepa\255) 4782 4344 w (rate) 720 4464 w (file) 949 4464 w (systems,) 1140 4464 w (the) 1603 4464 w (main) 1798 4464 w (hierarchy) 2077 4464 w (exported) 2566 4464 w (by) 3044 4464 w (the) 3200 4464 w (server) 3396 4464 w (is) 3734 4464 w (a) 3855 4464 w (single) 3951 4464 w (tree,) 4281 4464 w (represent\255) 4544 4464 w (ing) 720 4584 w (files) 913 4584 w (on) 1155 4584 w (many) 1318 4584 w (disks.) 1620 4584 w (That) 1976 4584 w (hierarchy) 2233 4584 w (is) 2722 4584 w (shared) 2842 4584 w (by) 3210 4584 w (many) 3365 4584 w (users) 3667 4584 w (over) 3968 4584 w (a) 4218 4584 w (wide) 4313 4584 w (area) 4577 4584 w (on) 4823 4584 w (a) 4985 4584 w (variety of networks.) 720 4704 w (Other) 1744 4704 w (file) 2051 4704 w (trees) 2235 4704 w (exported) 2509 4704 w (by) 2980 4704 w (the) 3128 4704 w (server) 3316 4704 w (include) 3646 4704 w (special-purpose) 4031 4704 w (sys\255) 4853 4704 w (tems such as temporary storage and, as explained below, a backup service.) 720 4824 w (The file server has three levels of storage.) 970 4980 w (The) 3074 4980 w (central) 3288 4980 w (server) 3652 4980 w (in) 3982 4980 w (our) 4106 4980 w (installation) 4303 4980 w (has) 4872 4980 w (about) 720 5100 w (100) 1031 5100 w (megabytes) 1253 5100 w (of) 1811 5100 w (memory) 1942 5100 w (buffers,) 2371 5100 w (27) 2783 5100 w (gigabytes) 2942 5100 w (of) 3442 5100 w (magnetic disks, and 350 giga\255) 3573 5100 w (bytes) 720 5220 w (of) 1017 5220 w (bulk) 1153 5220 w (storage) 1403 5220 w (in) 1804 5220 w (a) 1933 5220 w (write-once-read-many) 2026 5220 w (\(WORM\)) 3185 5220 w (jukebox.) 3602 5220 w (The) 4095 5220 w (disk) 4314 5220 w (is) 4553 5220 w (a) 4671 5220 w (cache) 4765 5220 w (for) 720 5340 w (the) 905 5340 w (WORM) 1106 5340 w (and) 1465 5340 w (the) 1691 5340 w (memory) 1892 5340 w (is) 2333 5340 w (a) 2458 5340 w (cache) 2558 5340 w (for) 2878 5340 w (the) 3062 5340 w (disk;) 3262 5340 w (each) 3540 5340 w (is) 3809 5340 w (much) 3934 5340 w (faster,) 4247 5340 w (and) 4601 5340 w (sees) 4826 5340 w (about an order of magnitude more traffic, than the level) 720 5460 w (it) 3478 5460 w (caches.) 3577 5460 w (The) 4000 5460 w (addressable) 4214 5460 w (data) 4830 5460 w (in) 720 5580 w (the) 856 5580 w (file) 1056 5580 w (system) 1252 5580 w (can) 1637 5580 w (be) 1850 5580 w (larger) 2014 5580 w (than) 2343 5580 w (the) 2604 5580 w (size) 2804 5580 w (of) 3041 5580 w (the) 3183 5580 w (magnetic) 3382 5580 w (disks,) 3871 5580 w (because) 4199 5580 w (they) 4637 5580 w (are) 4888 5580 w (only a cache; our main file server has about 40 gigabytes of active storage.) 720 5700 w (The) 970 5856 w (most) 1192 5856 w (unusual) 1475 5856 w (feature) 1899 5856 w (of) 2284 5856 w (the) 2423 5856 w (file) 2619 5856 w (server) 2811 5856 w (comes) 3149 5856 w (from) 3502 5856 w (its) 3775 5856 w (use) 3933 5856 w (of) 4143 5856 w (a) 4282 5856 w (WORM) 4378 5856 w (device) 4733 5856 w (for) 720 5976 w (stable) 901 5976 w (storage.) 1234 5976 w (Every) 1703 5976 w (morning) 2000 5976 w (at) 2452 5976 w (5) 2586 5976 w (o) 2691 5976 w 10 /LucidaSansUnicode20 f (\031) 2752 5976 w 10 /LucidaSansUnicode00 f (clock,) 2784 5976 w (a) 3108 5976 w 10 /LucidaSans-Italic f (dump) 3205 5976 w 10 /LucidaSansUnicode00 f (of) 3524 5976 w (the) 3664 5976 w (file) 3861 5976 w (system) 4053 5976 w (occurs) 4434 5976 w (auto\255) 4792 5976 w (matically.) 720 6096 w (The) 1265 6096 w (file) 1497 6096 w (system) 1699 6096 w (is) 2090 6096 w (frozen) 2221 6096 w (and) 2586 6096 w (all) 2817 6096 w (blocks) 2981 6096 w (modified) 3345 6096 w (since) 3827 6096 w (the) 4127 6096 w (last) 4333 6096 w (dump) 4556 6096 w (are) 4888 6096 w (queued) 720 6216 w (to) 1116 6216 w (be) 1248 6216 w (written) 1401 6216 w (to) 1774 6216 w (the) 1906 6216 w (WORM.) 2095 6216 w (Once) 2506 6216 w (the) 2787 6216 w (blocks) 2976 6216 w (are) 3323 6216 w (queued,) 3509 6216 w (service) 3937 6216 w (is) 4307 6216 w (restored) 4421 6216 w (and) 4860 6216 w (the) 720 6336 w (read-only) 916 6336 w (root) 1434 6336 w (of) 1675 6336 w (the) 1814 6336 w (dumped) 2010 6336 w (file) 2451 6336 w (system) 2643 6336 w (appears) 3024 6336 w (in) 3449 6336 w (a) 3581 6336 w (hierarchy) 3677 6336 w (of) 4167 6336 w (all) 4306 6336 w (dumps) 4461 6336 w (ever) 4835 6336 w (taken,) 720 6456 w (named) 1069 6456 w (by) 1447 6456 w (its) 1611 6456 w (date.) 1777 6456 w (For) 2101 6456 w (example,) 2306 6456 w (the) 2800 6456 w (directory) 3004 6456 w 10 /LucidaTypewriter f (/n/dump/1995/0315) 3484 6456 w 10 /LucidaSansUnicode00 f (is) 4757 6456 w (the) 4885 6456 w (root) 720 6576 w (directory) 971 6576 w (of) 1453 6576 w (an) 1602 6576 w (image) 1770 6576 w (of) 2116 6576 w (the) 2265 6576 w (file) 2471 6576 w (system) 2673 6576 w (as) 3065 6576 w (it) 3223 6576 w (appeared) 3341 6576 w (in) 3845 6576 w (the) 3988 6576 w (early) 4195 6576 w (morning) 4480 6576 w (of) 4942 6576 w (March) 720 6696 w (15,) 1059 6696 w (1995.) 1261 6696 w (It) 1621 6696 w (takes) 1731 6696 w (a) 2032 6696 w (few) 2131 6696 w (minutes) 2345 6696 w (to) 2779 6696 w (queue) 2921 6696 w (the) 3264 6696 w (blocks,) 3463 6696 w (but) 3852 6696 w (the) 4057 6696 w (process) 4255 6696 w (to) 4672 6696 w (copy) 4813 6696 w (blocks to the WORM, which runs in the background, may take hours.) 720 6816 w (There) 970 6972 w (are) 1289 6972 w (two) 1482 6972 w (ways) 1698 6972 w (the) 1974 6972 w (dump) 2170 6972 w (file) 2492 6972 w (system) 2684 6972 w (is) 3065 6972 w (used.) 3186 6972 w (The) 3523 6972 w (first) 3745 6972 w (is) 3981 6972 w (by) 4102 6972 w (the) 4259 6972 w (users) 4456 6972 w (them\255) 4759 6972 w (selves,) 720 7092 w (who) 1081 7092 w (can) 1315 7092 w (browse) 1517 7092 w (the) 1900 7092 w (dump) 2089 7092 w (file) 2403 7092 w (system) 2587 7092 w (directly) 2960 7092 w (or) 3351 7092 w (attach) 3486 7092 w (pieces) 3816 7092 w (of) 4155 7092 w (it) 4286 7092 w (to) 4385 7092 w (their) 4516 7092 w (name) 4774 7092 w (space.) 720 7212 w (For) 1097 7212 w (example,) 1291 7212 w (to) 1774 7212 w (track) 1910 7212 w (down) 2190 7212 w (a) 2491 7212 w (bug,) 2584 7212 w (it) 2841 7212 w (is) 2945 7212 w (straightforward) 3063 7212 w (to) 3850 7212 w (try) 3986 7212 w (the) 4154 7212 w (compiler) 4347 7212 w (from) 4808 7212 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Page: 6 6 /saveobj save def mark 6 pagesetup 10 /LucidaSansUnicode00 f (\255 6 \255) 2783 480 w (three) 720 840 w (months) 1009 840 w (ago) 1412 840 w (or) 1627 840 w (to) 1766 840 w (link) 1901 840 w (a) 2116 840 w (program) 2208 840 w (with) 2661 840 w (yesterday) 2903 840 w 10 /LucidaSansUnicode20 f (\031) 3366 840 w 10 /LucidaSansUnicode00 f (s) 3398 840 w (library.) 3486 840 w (With) 3897 840 w (daily) 4148 840 w (snapshots) 4413 840 w (of) 4942 840 w (all) 720 960 w (files,) 882 960 w (it) 1165 960 w (is) 1280 960 w (easy) 1409 960 w (to) 1672 960 w (find) 1819 960 w (when) 2059 960 w (a) 2365 960 w (particular) 2469 960 w (change) 2981 960 w (was) 3378 960 w (made) 3611 960 w (or) 3928 960 w (what) 4080 960 w (changes) 4361 960 w (were) 4810 960 w (made) 720 1080 w (on) 1022 1080 w (a) 1180 1080 w (particular) 1270 1080 w (date.) 1768 1080 w (People) 2078 1080 w (feel) 2432 1080 w (free) 2644 1080 w (to) 2868 1080 w (make) 3000 1080 w (large) 3296 1080 w (speculative) 3573 1080 w (changes) 4148 1080 w (to) 4581 1080 w (files) 4713 1080 w (in) 4949 1080 w (the) 720 1200 w (knowledge) 918 1200 w (that) 1485 1200 w (they) 1719 1200 w (can) 1969 1200 w (be) 2180 1200 w (backed) 2342 1200 w (out) 2731 1200 w (with) 2934 1200 w (a) 3182 1200 w (single) 3281 1200 w (copy) 3614 1200 w (command.) 3885 1200 w (There) 4471 1200 w (is) 4793 1200 w (no) 4917 1200 w (backup) 720 1320 w (system) 1119 1320 w (as) 1506 1320 w (such;) 1658 1320 w (instead,) 1962 1320 w (because) 2393 1320 w (the) 2833 1320 w (dump) 3034 1320 w (is) 3361 1320 w (in) 3487 1320 w (the) 3624 1320 w (file) 3825 1320 w (name) 4022 1320 w (space,) 4334 1320 w (backup) 4688 1320 w (problems can be solved with standard tools such as) 720 1440 w 10 /LucidaTypewriter f (cp) 3267 1440 w 10 /LucidaSansUnicode00 f (,) 3411 1440 w 10 /LucidaTypewriter f (ls) 3475 1440 w 10 /LucidaSansUnicode00 f (,) 3619 1440 w 10 /LucidaTypewriter f (grep) 3683 1440 w 10 /LucidaSansUnicode00 f (, and) 3971 1440 w 10 /LucidaTypewriter f (diff) 4247 1440 w 10 /LucidaSansUnicode00 f (.) 4535 1440 w (The) 970 1596 w (other) 1189 1596 w (\(very) 1484 1596 w (rare\)) 1757 1596 w (use) 2022 1596 w (is) 2230 1596 w (complete) 2349 1596 w (system) 2834 1596 w (backup.) 3213 1596 w (In) 3668 1596 w (the) 3798 1596 w (event) 3992 1596 w (of) 4294 1596 w (disaster,) 4431 1596 w (the) 4885 1596 w (active) 720 1716 w (file) 1042 1716 w (system) 1235 1716 w (can) 1616 1716 w (be) 1825 1716 w (initialized) 1985 1716 w (from) 2501 1716 w (any) 2774 1716 w (dump) 2984 1716 w (by) 3306 1716 w (clearing) 3462 1716 w (the) 3888 1716 w (disk) 4084 1716 w (cache) 4326 1716 w (and) 4642 1716 w (set\255) 4863 1716 w (ting the root of the active file system to be a copy of the dumped root.) 720 1836 w (Although) 4218 1836 w (easy) 4695 1836 w (to) 4942 1836 w (do,) 720 1956 w (this) 914 1956 w (is) 1131 1956 w (not) 1249 1956 w (to) 1447 1956 w (be) 1583 1956 w (taken) 1740 1956 w (lightly:) 2046 1956 w (besides) 2415 1956 w (losing) 2821 1956 w (any) 3152 1956 w (change) 3358 1956 w (made) 3743 1956 w (after) 4047 1956 w (the) 4310 1956 w (date) 4502 1956 w (of) 4750 1956 w (the) 4885 1956 w (dump,) 720 2076 w (this) 1069 2076 w (recovery) 1284 2076 w (method) 1730 2076 w (results) 2138 2076 w (in) 2501 2076 w (a) 2628 2076 w (very) 2719 2076 w (slow) 2956 2076 w (system.) 3210 2076 w (The) 3650 2076 w (cache) 3868 2076 w (must) 4180 2076 w (be) 4460 2076 w (reloaded) 4616 2076 w (from) 720 2196 w (WORM,) 1000 2196 w (which) 1393 2196 w (is) 1722 2196 w (much) 1850 2196 w (slower) 2166 2196 w (than) 2529 2196 w (magnetic) 2793 2196 w (disks.) 3286 2196 w (The) 3650 2196 w (file) 3879 2196 w (system) 4077 2196 w (takes) 4464 2196 w (a) 4768 2196 w (few) 4870 2196 w (days to reload the working set and regain its full performance.) 720 2316 w (Access) 970 2472 w (permissions) 1334 2472 w (of) 1956 2472 w (files) 2089 2472 w (in) 2326 2472 w (the) 2452 2472 w (dump) 2642 2472 w (are) 2958 2472 w (the) 3145 2472 w (same) 3335 2472 w (as) 3625 2472 w (they) 3766 2472 w (were) 4009 2472 w (when) 4275 2472 w (the) 4568 2472 w (dump) 4759 2472 w (was) 720 2592 w (made.) 949 2592 w (Normal) 1326 2592 w (utilities) 1725 2592 w (have) 2130 2592 w (normal) 2401 2592 w (permissions) 2788 2592 w (in) 3420 2592 w (the) 3556 2592 w (dump) 3756 2592 w (without) 4082 2592 w (any) 4492 2592 w (special) 4706 2592 w (arrangement.) 720 2712 w (The) 1440 2712 w (dump) 1657 2712 w (file) 1975 2712 w (system) 2163 2712 w (is) 2540 2712 w (read-only,) 2657 2712 w (though,) 3203 2712 w (which) 3618 2712 w (means) 3936 2712 w (that) 4290 2712 w (files) 4518 2712 w (in) 4757 2712 w (the) 4885 2712 w (dump) 720 2832 w (cannot) 1037 2832 w (be) 1401 2832 w (written) 1556 2832 w (regardless) 1930 2832 w (of) 2470 2832 w (their) 2603 2832 w (permission) 2863 2832 w (bits;) 3434 2832 w (in) 3681 2832 w (fact,) 3807 2832 w (since) 4054 2832 w (directories) 4338 2832 w (are) 4888 2832 w (part of the read-only structure, even the permissions cannot be changed.) 720 2952 w (Once) 970 3108 w (a) 1271 3108 w (file) 1380 3108 w (is) 1585 3108 w (written) 1719 3108 w (to) 2113 3108 w (WORM,) 2266 3108 w (it) 2666 3108 w (cannot) 2787 3108 w (be) 3170 3108 w (removed,) 3344 3108 w (so) 3853 3108 w (our) 4020 3108 w (users) 4239 3108 w (never) 4555 3108 w (see) 4877 3108 w 10 /LucidaSansUnicode20 f (\030\030) 720 3228 w 10 /LucidaSansUnicode00 f (please) 784 3228 w (clean) 1143 3228 w (up) 1445 3228 w (your) 1619 3228 w (files) 1883 3228 w 10 /LucidaSansUnicode20 f (\031\031) 2085 3228 w 10 /LucidaSansUnicode00 f (messages) 2197 3228 w (and) 2720 3228 w (there) 2948 3228 w (is) 3248 3228 w (no) 3376 3228 w 10 /LucidaTypewriter f (df) 3547 3228 w 10 /LucidaSansUnicode00 f (command.) 3739 3228 w (We) 4329 3228 w (regard) 4519 3228 w (the) 4885 3228 w (WORM) 720 3348 w (jukebox) 1072 3348 w (as) 1502 3348 w (an) 1647 3348 w (unlimited) 1803 3348 w (resource.) 2302 3348 w (The) 2824 3348 w (only) 3044 3348 w (issue) 3287 3348 w (is) 3576 3348 w (how) 3696 3348 w (long) 3936 3348 w (it) 4190 3348 w (will) 4296 3348 w (take) 4500 3348 w (to) 4746 3348 w (fill.) 4884 3348 w (Our) 720 3468 w (WORM) 942 3468 w (has) 1296 3468 w (served) 1505 3468 w (a) 1865 3468 w (community) 1961 3468 w (of) 2542 3468 w (about) 2681 3468 w (50) 3000 3468 w (users) 3167 3468 w (for) 3469 3468 w (five) 3649 3468 w (years) 3864 3468 w (and) 4159 3468 w (has) 4379 3468 w (absorbed) 4587 3468 w (daily) 720 3588 w (dumps,) 987 3588 w (consuming) 1390 3588 w (a) 1962 3588 w (total) 2056 3588 w (of) 2314 3588 w (65%) 2451 3588 w (of) 2683 3588 w (the) 2820 3588 w (storage) 3014 3588 w (in) 3416 3588 w (the) 3546 3588 w (jukebox.) 3741 3588 w (In) 4236 3588 w (that) 4367 3588 w (time,) 4598 3588 w (the) 4885 3588 w (manufacturer) 720 3708 w (has) 1434 3708 w (improved) 1664 3708 w (the) 2184 3708 w (technology,) 2401 3708 w (doubling) 3028 3708 w (the) 3521 3708 w (capacity) 3738 3708 w (of) 4192 3708 w (the) 4351 3708 w (individual) 4567 3708 w (disks.) 720 3828 w (If) 1072 3828 w (we) 1174 3828 w (were) 1343 3828 w (to) 1609 3828 w (upgrade) 1744 3828 w (to) 2183 3828 w (the) 2318 3828 w (new) 2510 3828 w (media,) 2742 3828 w (we) 3107 3828 w (would) 3277 3828 w (have) 3606 3828 w (more) 3868 3828 w (free) 4156 3828 w (space) 4383 3828 w (than) 4696 3828 w (in) 4949 3828 w (the original empty jukebox.) 720 3948 w (Technology has created storage faster than we can use it.) 2127 3948 w 10 /LucidaSans-Demi f (Unusual file servers) 720 4188 w 10 /LucidaSansUnicode00 f (Plan) 970 4344 w (9) 1224 4344 w (is) 1340 4344 w (characterized) 1473 4344 w (by) 2181 4344 w (a) 2350 4344 w (variety) 2459 4344 w (of) 2835 4344 w (servers) 2987 4344 w (that) 3389 4344 w (offer) 3634 4344 w (a) 3920 4344 w (file-like) 4029 4344 w (interface) 4464 4344 w (to) 4942 4344 w (unusual) 720 4464 w (services.) 1138 4464 w (Many) 1624 4464 w (of) 1914 4464 w (these) 2047 4464 w (are) 2344 4464 w (implemented) 2530 4464 w (by) 3201 4464 w (user-level) 3350 4464 w (processes,) 3874 4464 w (although) 4421 4464 w (the) 4885 4464 w (distinction) 720 4584 w (is) 1267 4584 w (unimportant) 1383 4584 w (to) 2021 4584 w (their) 2155 4584 w (clients;) 2416 4584 w (whether) 2799 4584 w (a) 3226 4584 w (service) 3317 4584 w (is) 3689 4584 w (provided) 3805 4584 w (by) 4270 4584 w (the) 4422 4584 w (kernel,) 4614 4584 w (a) 4985 4584 w (user) 720 4704 w (process,) 966 4704 w (or) 1408 4704 w (a) 1546 4704 w (remote) 1637 4704 w (server) 2017 4704 w (is) 2350 4704 w (irrelevant) 2466 4704 w (to) 2960 4704 w (the) 3094 4704 w (way) 3285 4704 w (it) 3505 4704 w (is) 3607 4704 w (used.) 3723 4704 w (There) 4055 4704 w (are) 4369 4704 w (dozens) 4557 4704 w (of) 4942 4704 w (such servers; in this section we present three representative ones.) 720 4824 w (Perhaps) 970 4980 w (the) 1393 4980 w (most) 1588 4980 w (remarkable) 1870 4980 w (file) 2457 4980 w (server) 2649 4980 w (in) 2987 4980 w (Plan) 3119 4980 w (9) 3361 4980 w (is) 3465 4980 w (8\275,) 3586 4980 w (the) 3802 4980 w (window) 3998 4980 w (system.) 4408 4980 w (It) 4853 4980 w (is) 4960 4980 w (discussed) 720 5100 w (at) 1237 5100 w (length) 1369 5100 w (elsewhere) 1717 5100 w ([Pike91],) 2241 5100 w (but) 2703 5100 w (deserves) 2905 5100 w (a) 3371 5100 w (brief) 3466 5100 w (explanation) 3732 5100 w (here.) 4342 5100 w (8\275) 4660 5100 w (pro\255) 4842 5100 w (vides) 720 5220 w (two) 1017 5220 w (interfaces:) 1238 5220 w (to) 1791 5220 w (the) 1935 5220 w (user) 2136 5220 w (seated) 2393 5220 w (at) 2758 5220 w (the) 2897 5220 w (terminal,) 3099 5220 w (it) 3580 5220 w (offers) 3693 5220 w (a) 4023 5220 w (traditional) 4125 5220 w (style) 4670 5220 w (of) 4942 5220 w (interaction) 720 5340 w (with) 1303 5340 w (multiple) 1571 5340 w (windows,) 2032 5340 w (each) 2546 5340 w (running) 2832 5340 w (an) 3274 5340 w (application,) 3453 5340 w (all) 4081 5340 w (controlled) 4256 5340 w (by) 4808 5340 w (a) 4985 5340 w (mouse) 720 5460 w (and) 1092 5460 w (keyboard.) 1321 5460 w (To) 1883 5460 w (the) 2056 5460 w (client) 2261 5460 w (programs,) 2575 5460 w (the) 3124 5460 w (view) 3329 5460 w (is) 3593 5460 w (also) 3723 5460 w (fairly) 3969 5460 w (traditional:) 4262 5460 w (pro\255) 4842 5460 w (grams) 720 5580 w (running) 1056 5580 w (in) 1470 5580 w (a) 1595 5580 w (window) 1684 5580 w (see) 2086 5580 w (a) 2282 5580 w (set) 2370 5580 w (of) 2547 5580 w (files) 2678 5580 w (in) 2913 5580 w 10 /LucidaTypewriter f (/dev) 3037 5580 w 10 /LucidaSansUnicode00 f (with) 3358 5580 w (names) 3596 5580 w (like) 3946 5580 w 10 /LucidaTypewriter f (mouse) 4151 5580 w 10 /LucidaSansUnicode00 f (,) 4511 5580 w 10 /LucidaTypewriter f (screen) 4576 5580 w 10 /LucidaSansUnicode00 f (,) 5008 5580 w (and) 720 5700 w 10 /LucidaTypewriter f (cons) 941 5700 w 10 /LucidaSansUnicode00 f (.) 1229 5700 w (Programs) 1334 5700 w (that) 1834 5700 w (want) 2066 5700 w (to) 2338 5700 w (print) 2477 5700 w (text) 2750 5700 w (to) 2982 5700 w (their) 3121 5700 w (window) 3387 5700 w (write) 3798 5700 w (to) 4080 5700 w 10 /LucidaTypewriter f (/dev/cons) 4220 5700 w 10 /LucidaSansUnicode00 f (;) 4868 5700 w (to) 4942 5700 w (read) 720 5820 w (the) 970 5820 w (mouse,) 1160 5820 w (they) 1550 5820 w (read) 1792 5820 w 10 /LucidaTypewriter f (/dev/mouse) 2042 5820 w 10 /LucidaSansUnicode00 f (.) 2762 5820 w (In) 2861 5820 w (the) 2987 5820 w (Plan) 3177 5820 w (9) 3413 5820 w (style,) 3510 5820 w (bitmap) 3801 5820 w (graphics) 4175 5820 w (is) 4623 5820 w (imple\255) 4737 5820 w (mented) 720 5940 w (by) 1123 5940 w (providing) 1274 5940 w (a) 1772 5940 w (file) 1863 5940 w 10 /LucidaTypewriter f (/dev/bitblt) 2050 5940 w 10 /LucidaSansUnicode00 f (on) 2878 5940 w (which) 3037 5940 w (clients) 3354 5940 w (write) 3705 5940 w (encoded) 3981 5940 w (messages) 4430 5940 w (to) 4942 5940 w (execute) 720 6060 w (graphical) 1139 6060 w (operations) 1626 6060 w (such) 2182 6060 w (as) 2448 6060 w 10 /LucidaTypewriter f (bitblt) 2594 6060 w 10 /LucidaSansUnicode00 f (\(RasterOp\).) 3066 6060 w (What) 3680 6060 w (is) 3960 6060 w (unusual) 4080 6060 w (is) 4503 6060 w (how) 4622 6060 w (this) 4861 6060 w (is) 720 6180 w (done:) 836 6180 w (8\275) 1146 6180 w (is) 1325 6180 w (a) 1441 6180 w (file) 1532 6180 w (server,) 1719 6180 w (serving) 2084 6180 w (the) 2473 6180 w (files) 2664 6180 w (in) 2902 6180 w 10 /LucidaTypewriter f (/dev) 3029 6180 w 10 /LucidaSansUnicode00 f (to) 3354 6180 w (the) 3489 6180 w (clients) 3681 6180 w (running) 4033 6180 w (in) 4450 6180 w (each) 4578 6180 w (win\255) 4839 6180 w (dow.) 720 6300 w (Although) 1018 6300 w (every) 1495 6300 w (window) 1785 6300 w (looks) 2187 6300 w (the same to its client, each window has a distinct set) 2480 6300 w (of) 720 6420 w (files) 857 6420 w (in) 1098 6420 w 10 /LucidaTypewriter f (/dev) 1228 6420 w 10 /LucidaSansUnicode00 f (.) 1516 6420 w (8\275) 1619 6420 w (multiplexes) 1802 6420 w (its) 2408 6420 w (clients) 2565 6420 w 10 /LucidaSansUnicode20 f (\031) 2880 6420 w 10 /LucidaSansUnicode00 f (access) 2952 6420 w (to) 3307 6420 w (the) 3445 6420 w (resources) 3640 6420 w (of) 4150 6420 w (the) 4288 6420 w (terminal) 4483 6420 w (by) 4925 6420 w (serving) 720 6540 w (multiple) 1112 6540 w (sets) 1549 6540 w (of) 1783 6540 w (files.) 1919 6540 w (Each) 2223 6540 w (client) 2483 6540 w (is) 2785 6540 w (given) 2903 6540 w (a) 3202 6540 w (private) 3295 6540 w (name) 3666 6540 w (space) 3970 6540 w (with) 4284 6540 w (a) 4527 6540 w 10 /LucidaSans-Italic f (different) 4620 6540 w 10 /LucidaSansUnicode00 f (set) 720 6660 w (of) 897 6660 w (files) 1028 6660 w (that) 1264 6660 w (behave) 1489 6660 w (the) 1867 6660 w (same) 2056 6660 w (as) 2345 6660 w (in) 2485 6660 w (all) 2610 6660 w (other) 2757 6660 w (windows.) 3048 6660 w (There) 3566 6660 w (are) 3878 6660 w (many) 4064 6660 w (advantages) 4360 6660 w (to) 4942 6660 w (this) 720 6780 w (structure.) 992 6780 w (One) 1587 6780 w (is) 1876 6780 w (that) 2049 6780 w (8\275) 2333 6780 w (serves) 2569 6780 w (the) 2969 6780 w (same) 3217 6780 w (files) 3565 6780 w (it) 3860 6780 w (needs) 4019 6780 w (for) 4400 6780 w (its) 4631 6780 w (own) 4840 6780 w (implementation) 720 6900 w 10 /LucidaSansUnicode20 f (\024) 1482 6900 w 10 /LucidaSansUnicode00 f (it) 1582 6900 w (multiplexes) 1700 6900 w (its) 2318 6900 w (own) 2487 6900 w (interface) 2739 6900 w 10 /LucidaSansUnicode20 f (\024) 3163 6900 w 10 /LucidaSansUnicode00 f (so) 3263 6900 w (it) 3427 6900 w (may) 3546 6900 w (be) 3799 6900 w (run,) 3971 6900 w (recursively,) 4221 6900 w (as) 4826 6900 w (a) 4985 6900 w (client) 720 7020 w (of) 1054 7020 w (itself.) 1222 7020 w (Also,) 1595 7020 w (consider) 1907 7020 w (the) 2391 7020 w (implementation) 2616 7020 w (of) 3448 7020 w 10 /LucidaTypewriter f (/dev/tty) 3616 7020 w 10 /LucidaSansUnicode00 f (in) 4262 7020 w (UNIX,) 4423 7020 w (which) 4759 7020 w (requires) 720 7140 w (special) 1171 7140 w (code) 1557 7140 w (in) 1840 7140 w (the) 1983 7140 w (kernel) 2190 7140 w (to) 2544 7140 w (redirect) 2694 7140 w 10 /LucidaTypewriter f (open) 3120 7140 w 10 /LucidaSansUnicode00 f (calls) 3460 7140 w (to) 3727 7140 w (the) 3877 7140 w (appropriate) 4084 7140 w (device.) 4701 7140 w (Instead,) 720 7260 w (in) 1144 7260 w (8\275) 1274 7260 w (the) 1456 7260 w (equivalent) 1650 7260 w (service) 2190 7260 w (falls) 2565 7260 w (out) 2805 7260 w (automatically:) 3004 7260 w (8\275) 3720 7260 w (serves) 3902 7260 w 10 /LucidaTypewriter f (/dev/cons) 4248 7260 w 10 /LucidaSansUnicode00 f (as) 4934 7260 w cleartomark showpage saveobj restore %%EndPage: 6 6 %%Page: 7 7 /saveobj save def mark 7 pagesetup 10 /LucidaSansUnicode00 f (\255 7 \255) 2783 480 w (its) 720 840 w (basic) 871 840 w (function;) 1155 840 w (there) 1623 840 w (is) 1910 840 w (nothing) 2025 840 w (extra) 2435 840 w (to) 2720 840 w (do.) 2853 840 w (When) 3076 840 w (a) 3377 840 w (program) 3467 840 w (wants) 3918 840 w (to) 4235 840 w (read) 4368 840 w (from) 4618 840 w (the) 4885 840 w (keyboard,) 720 960 w (it) 1245 960 w (opens) 1355 960 w 10 /LucidaTypewriter f (/dev/cons) 1692 960 w 10 /LucidaSansUnicode00 f (,) 2340 960 w (but) 2416 960 w (it) 2622 960 w (is) 2732 960 w (a) 2856 960 w (private) 2955 960 w (file,) 3332 960 w (not) 3559 960 w (a) 3763 960 w (shared) 3862 960 w (one) 4234 960 w (with) 4457 960 w (special) 4706 960 w (properties.) 720 1080 w (Again,) 1318 1080 w (local) 1663 1080 w (name) 1924 1080 w (spaces) 2226 1080 w (make) 2589 1080 w (this) 2887 1080 w (possible;) 3102 1080 w (conventions) 3574 1080 w (about) 4195 1080 w (the) 4510 1080 w (consis\255) 4702 1080 w (tency of the files within them make it natural.) 720 1200 w (8\275 has a unique) 970 1356 w (feature) 1799 1356 w (made) 2176 1356 w (possible) 2476 1356 w (by) 2912 1356 w (its) 3060 1356 w (design.) 3210 1356 w (Because) 3630 1356 w (it) 4052 1356 w (is) 4151 1356 w (implemented) 4264 1356 w (as) 4934 1356 w (a) 720 1476 w (file) 813 1476 w (server,) 1002 1476 w (it) 1369 1476 w (has) 1473 1476 w (the) 1679 1476 w (power) 1872 1476 w (to) 2207 1476 w (postpone) 2342 1476 w (answering) 2833 1476 w (read) 3365 1476 w (requests) 3617 1476 w (for) 4071 1476 w (a) 4247 1476 w (particular) 4339 1476 w (win\255) 4839 1476 w (dow.) 720 1596 w (This) 1026 1596 w (behavior) 1272 1596 w (is) 1732 1596 w (toggled) 1853 1596 w (by) 2264 1596 w (a) 2420 1596 w (reserved) 2516 1596 w (key) 2974 1596 w (on) 3182 1596 w (the) 3347 1596 w (keyboard.) 3544 1596 w (Toggling) 4099 1596 w (once) 4571 1596 w (sus\255) 4843 1596 w (pends) 720 1716 w (client) 1080 1716 w (reads) 1409 1716 w (from) 1740 1716 w (the) 2037 1716 w (window;) 2257 1716 w (toggling) 2723 1716 w (again) 3191 1716 w (resumes) 3518 1716 w (normal) 3992 1716 w (reads,) 4397 1716 w (which) 4759 1716 w (absorb) 720 1836 w (whatever) 1088 1836 w (text) 1558 1836 w (has) 1783 1836 w (been) 1985 1836 w (prepared,) 2256 1836 w (one) 2760 1836 w (line) 2973 1836 w (at) 3183 1836 w (a) 3309 1836 w (time.) 3398 1836 w (This) 3711 1836 w (allows) 3950 1836 w (the) 4287 1836 w (user) 4477 1836 w (to) 4722 1836 w (edit) 4855 1836 w (multi-line) 720 1956 w (input) 1243 1956 w (text) 1535 1956 w (on) 1765 1956 w (the) 1927 1956 w (screen) 2121 1956 w (before) 2477 1956 w (the) 2830 1956 w (application) 3024 1956 w (sees) 3597 1956 w (it,) 3850 1956 w (obviating) 3986 1956 w (the) 4474 1956 w (need) 4667 1956 w (to) 4942 1956 w (invoke) 720 2076 w (a) 1081 2076 w (separate) 1179 2076 w (editor) 1636 2076 w (to) 1966 2076 w (prepare) 2107 2076 w (text) 2525 2076 w (such) 2759 2076 w (as) 3028 2076 w (mail) 3177 2076 w (messages.) 3426 2076 w (A) 4008 2076 w (related) 4121 2076 w (property) 4502 2076 w (is) 4960 2076 w (that) 720 2196 w (reads) 944 2196 w (are) 1243 2196 w (answered) 1428 2196 w (directly) 1922 2196 w (from) 2313 2196 w (the) 2578 2196 w (data) 2766 2196 w (structure) 3009 2196 w (defining) 3480 2196 w (the) 3913 2196 w (text on the display:) 4101 2196 w (text) 720 2316 w (may) 944 2316 w (be) 1177 2316 w (edited) 1329 2316 w (until) 1666 2316 w (its) 1918 2316 w (final) 2068 2316 w (newline) 2313 2316 w (makes) 2717 2316 w (the) 3063 2316 w (prepared) 3251 2316 w (line) 3722 2316 w (of) 3931 2316 w (text) 4062 2316 w (readable) 4286 2316 w (by) 4737 2316 w (the) 4885 2316 w (client.) 720 2436 w (Even) 1083 2436 w (then,) 1342 2436 w (until) 1625 2436 w (the) 1878 2436 w (line) 2067 2436 w (is) 2277 2436 w (read,) 2391 2436 w (the) 2672 2436 w (text) 2861 2436 w (the) 3086 2436 w (client) 3275 2436 w (will) 3573 2436 w (read) 3771 2436 w (can) 4020 2436 w (be) 4222 2436 w (changed.) 4375 2436 w (For) 4884 2436 w (example, after typing) 720 2556 w 9 /LucidaTypewriter f (%) 920 2726 w (make) 1050 2726 w (rm) 920 2836 w (*) 1115 2836 w 10 /LucidaSansUnicode00 f (to) 720 3016 w (the) 860 3016 w (shell,) 1057 3016 w (the) 1358 3016 w (user) 1555 3016 w (can) 1807 3016 w (backspace) 2017 3016 w (over) 2562 3016 w (the) 2814 3016 w (final) 3012 3016 w (newline) 3267 3016 w (at) 3681 3016 w (any) 3816 3016 w (time) 4028 3016 w (until) 4286 3016 w 10 /LucidaTypewriter f (make) 4548 3016 w 10 /LucidaSansUnicode00 f (fin\255) 4879 3016 w (ishes,) 720 3136 w (holding) 1043 3136 w (off) 1453 3136 w (execution) 1630 3136 w (of) 2146 3136 w (the) 2285 3136 w 10 /LucidaTypewriter f (rm) 2481 3136 w 10 /LucidaSansUnicode00 f (command,) 2666 3136 w (or) 3217 3136 w (even) 3360 3136 w (point) 3627 3136 w (with) 3920 3136 w (the) 4166 3136 w (mouse) 4362 3136 w (before) 4726 3136 w (the) 720 3256 w 10 /LucidaTypewriter f (rm) 907 3256 w 10 /LucidaSansUnicode00 f (and type another command to be executed first.) 1083 3256 w (There is no) 970 3412 w 10 /LucidaTypewriter f (ftp) 1547 3412 w 10 /LucidaSansUnicode00 f (command in Plan 9.) 1795 3412 w (Instead,) 2821 3412 w (a) 3239 3412 w (user-level) 3327 3412 w (file) 3850 3412 w (server) 4034 3412 w (called) 4364 3412 w 10 /LucidaTypewriter f (ftpfs) 4680 3412 w 10 /LucidaSansUnicode00 f (dials) 720 3532 w (the) 989 3532 w (FTP) 1186 3532 w (site,) 1400 3532 w (logs) 1647 3532 w (in) 1892 3532 w (on) 2025 3532 w (behalf) 2190 3532 w (of) 2534 3532 w (the) 2674 3532 w (user,) 2870 3532 w (and) 3153 3532 w (uses) 3374 3532 w (the) 3635 3532 w (FTP) 3831 3532 w (protocol) 4044 3532 w (to) 4489 3532 w (examine) 4628 3532 w (files) 720 3652 w (in) 971 3652 w (the) 1111 3652 w (remote) 1315 3652 w (directory.) 1708 3652 w (To) 2252 3652 w (the) 2425 3652 w (local) 2629 3652 w (user,) 2903 3652 w (it) 3194 3652 w (offers) 3309 3652 w (a) 3641 3652 w (file) 3745 3652 w (hierarchy,) 3945 3652 w (attached) 4476 3652 w (to) 4942 3652 w 10 /LucidaTypewriter f (/n/ftp) 720 3772 w 10 /LucidaSansUnicode00 f (in) 1210 3772 w (the) 1359 3772 w (local) 1572 3772 w (name) 1855 3772 w (space,) 2178 3772 w (mirroring) 2543 3772 w (the) 3059 3772 w (contents) 3271 3772 w (of) 3745 3772 w (the) 3900 3772 w (FTP) 4112 3772 w (site.) 4341 3772 w (In) 4635 3772 w (other) 4783 3772 w (words,) 720 3892 w (it) 1093 3892 w (translates) 1207 3892 w (the) 1729 3892 w (FTP) 1932 3892 w (protocol) 2152 3892 w (into) 2604 3892 w (9P) 2841 3892 w (to) 3007 3892 w (offer) 3153 3892 w (Plan) 3433 3892 w (9) 3682 3892 w (access) 3793 3892 w (to) 4156 3892 w (FTP) 4302 3892 w (sites.) 4522 3892 w (The) 4859 3892 w (implementation) 720 4012 w (is) 1518 4012 w (tricky;) 1634 4012 w 10 /LucidaTypewriter f (ftpfs) 1970 4012 w 10 /LucidaSansUnicode00 f (must) 2366 4012 w (do) 2645 4012 w (some) 2805 4012 w (sophisticated) 3102 4012 w (caching) 3783 4012 w (for) 4191 4012 w (efficiency) 4365 4012 w (and) 4860 4012 w (use) 720 4132 w (heuristics) 929 4132 w (to) 1438 4132 w (decode) 1576 4132 w (remote) 1966 4132 w (directory) 2350 4132 w (information.) 2821 4132 w (But) 3492 4132 w (the) 3689 4132 w (result) 3885 4132 w (is) 4202 4132 w (worthwhile:) 4323 4132 w (all) 4927 4132 w (the) 720 4252 w (local) 917 4252 w (file) 1184 4252 w (management) 1377 4252 w (tools) 2050 4252 w (such) 2331 4252 w (as) 2599 4252 w 10 /LucidaTypewriter f (cp) 2747 4252 w 10 /LucidaSansUnicode00 f (,) 2891 4252 w 10 /LucidaTypewriter f (grep) 2964 4252 w 10 /LucidaSansUnicode00 f (,) 3252 4252 w 10 /LucidaTypewriter f (diff) 3325 4252 w 10 /LucidaSansUnicode00 f (,) 3613 4252 w (and) 3686 4252 w (of) 3907 4252 w (course) 4046 4252 w 10 /LucidaTypewriter f (ls) 4409 4252 w 10 /LucidaSansUnicode00 f (are) 4594 4252 w (avail\255) 4787 4252 w (able) 720 4372 w (to) 964 4372 w (FTP-served) 1103 4372 w (files) 1693 4372 w (exactly) 1936 4372 w (as) 2318 4372 w (if) 2466 4372 w (they) 2574 4372 w (were) 2823 4372 w (local) 3095 4372 w (files.) 3362 4372 w (Other) 3670 4372 w (systems) 3986 4372 w (such) 4419 4372 w (as) 4687 4372 w (Jade) 4835 4372 w (and) 720 4492 w (Prospero) 936 4492 w (have) 1400 4492 w (exploited) 1660 4492 w (the) 2150 4492 w (same) 2340 4492 w (opportunity) 2630 4492 w ([Rao81,) 3233 4492 w (Neu92],) 3638 4492 w (but) 4056 4492 w (because) 4253 4492 w (of) 4682 4492 w (local) 4815 4492 w (name) 720 4612 w (spaces) 1032 4612 w (and) 1405 4612 w (the) 1631 4612 w (simplicity) 1832 4612 w (of) 2341 4612 w (implementing) 2485 4612 w (9P,) 3202 4612 w (this) 3398 4612 w (approach) 3623 4612 w (fits) 4120 4612 w (more) 4320 4612 w (naturally) 4618 4612 w (into Plan 9 than into other environments.) 720 4732 w (One) 970 4888 w (server,) 1214 4888 w 10 /LucidaTypewriter f (exportfs) 1591 4888 w 10 /LucidaSansUnicode00 f (,) 2167 4888 w (is) 2247 4888 w (a) 2375 4888 w (user) 2478 4888 w (process) 2736 4888 w (that) 3159 4888 w (takes) 3399 4888 w (a) 3705 4888 w (portion) 3809 4888 w (of) 4212 4888 w (its) 4359 4888 w (own) 4525 4888 w (name) 4774 4888 w (space) 720 5008 w (and) 1037 5008 w (makes) 1258 5008 w (it) 1612 5008 w (available) 1719 5008 w (to) 2183 5008 w (other) 2322 5008 w (processes) 2620 5008 w (by) 3141 5008 w (translating) 3296 5008 w (9P) 3856 5008 w (requests) 4014 5008 w (into) 4471 5008 w (system) 4700 5008 w (calls) 720 5128 w (to) 976 5128 w (the) 1115 5128 w (Plan) 1311 5128 w (9) 1553 5128 w (kernel.) 1657 5128 w (The) 2064 5128 w (file) 2286 5128 w (hierarchy) 2478 5128 w (it) 2968 5128 w (exports) 3075 5128 w (may) 3486 5128 w (contain) 3727 5128 w (files) 4125 5128 w (from) 4368 5128 w (multiple) 4642 5128 w (servers.) 720 5248 w 10 /LucidaTypewriter f (Exportfs) 1167 5248 w 10 /LucidaSansUnicode00 f (is) 1778 5248 w (usually) 1893 5248 w (run) 2268 5248 w (as) 2468 5248 w (a) 2608 5248 w (remote) 2697 5248 w (server) 3075 5248 w (started) 3406 5248 w (by) 3780 5248 w (a) 3929 5248 w (local) 4018 5248 w (program,) 4277 5248 w (either) 4759 5248 w 10 /LucidaTypewriter f (import) 720 5368 w 10 /LucidaSansUnicode00 f (or) 1222 5368 w 10 /LucidaTypewriter f (cpu) 1394 5368 w 10 /LucidaSansUnicode00 f (.) 1610 5368 w 10 /LucidaTypewriter f (Import) 1744 5368 w 10 /LucidaSansUnicode00 f (makes) 2246 5368 w (a) 2629 5368 w (network) 2754 5368 w (call) 3216 5368 w (to) 3450 5368 w (the) 3618 5368 w (remote) 3843 5368 w (machine,) 4257 5368 w (starts) 4768 5368 w 10 /LucidaTypewriter f (exportfs) 720 5488 w 10 /LucidaSansUnicode00 f (there, and attaches its 9P connection to the local name space.) 1328 5488 w (For example,) 4399 5488 w 9 /LucidaTypewriter f (import) 920 5658 w (helix) 1375 5658 w (/net) 1765 5658 w 10 /LucidaSansUnicode00 f (makes) 720 5838 w (Helix) 1073 5838 w 10 /LucidaSansUnicode20 f (\031) 1322 5838 w 10 /LucidaSansUnicode00 f (s) 1354 5838 w (network) 1445 5838 w (interfaces) 1877 5838 w (visible) 2393 5838 w (in) 2743 5838 w (the) 2875 5838 w (local) 3071 5838 w 10 /LucidaTypewriter f (/net) 3337 5838 w 10 /LucidaSansUnicode00 f (directory.) 3666 5838 w (Helix) 4202 5838 w (is) 4492 5838 w (a) 4613 5838 w (central) 4709 5838 w (server) 720 5958 w (and) 1054 5958 w (has) 1271 5958 w (many) 1476 5958 w (network) 1775 5958 w (interfaces,) 2204 5958 w (so) 2748 5958 w (this) 2897 5958 w (permits) 3113 5958 w (a) 3520 5958 w (machine) 3612 5958 w (with) 4057 5958 w (one) 4299 5958 w (network) 4514 5958 w (to) 4942 5958 w (access) 720 6078 w (to) 1078 6078 w (any) 1219 6078 w (of) 1431 6078 w (Helix) 1572 6078 w 10 /LucidaSansUnicode20 f (\031) 1821 6078 w 10 /LucidaSansUnicode00 f (s) 1853 6078 w (networks.) 1948 6078 w (After) 2499 6078 w (such) 2783 6078 w (an) 3053 6078 w (import,) 3214 6078 w (the) 3614 6078 w (local) 3813 6078 w (machine) 4082 6078 w (may) 4534 6078 w (make) 4778 6078 w (calls on any of the networks connected to Helix.) 720 6198 w (Another example is) 3121 6198 w 9 /LucidaTypewriter f (import) 920 6368 w (helix) 1375 6368 w (/proc) 1765 6368 w 10 /LucidaSansUnicode00 f (which makes Helix) 720 6548 w 10 /LucidaSansUnicode20 f (\031) 1627 6548 w 10 /LucidaSansUnicode00 f (s processes) 1659 6548 w (visible) 2256 6548 w (in) 2598 6548 w (the) 2722 6548 w (local) 2910 6548 w 10 /LucidaTypewriter f (/proc) 3168 6548 w 10 /LucidaSansUnicode00 f (,) 3528 6548 w (permitting) 3593 6548 w (local) 4135 6548 w (debuggers) 4393 6548 w (to) 4942 6548 w (examine remote processes.) 720 6668 w (The) 970 6824 w 10 /LucidaTypewriter f (cpu) 1185 6824 w 10 /LucidaSansUnicode00 f (command) 1435 6824 w (connects) 1947 6824 w (the) 2412 6824 w (local) 2602 6824 w (terminal) 2862 6824 w (to) 3299 6824 w (a) 3432 6824 w (remote) 3522 6824 w (CPU) 3901 6824 w (server.) 4129 6824 w (It) 4525 6824 w (works) 4626 6824 w (in) 4949 6824 w (the) 720 6944 w (opposite) 916 6944 w (direction) 1378 6944 w (to) 1848 6944 w 10 /LucidaTypewriter f (import) 1987 6944 w 10 /LucidaSansUnicode00 f (:) 2419 6944 w (after) 2492 6944 w (calling) 2759 6944 w (the) 3117 6944 w (server,) 3313 6944 w (it) 3683 6944 w (starts) 3790 6944 w (a) 4103 6944 w 10 /LucidaSans-Italic f (local) 4198 6944 w 10 /LucidaTypewriter f (exportfs) 4464 6944 w 10 /LucidaSansUnicode00 f (and) 720 7064 w (mounts) 946 7064 w (it) 1358 7064 w (in) 1470 7064 w (the) 1607 7064 w (name) 1808 7064 w (space) 2120 7064 w (of) 2442 7064 w (a) 2586 7064 w (process,) 2687 7064 w (typically) 3139 7064 w (a) 3582 7064 w (newly) 3683 7064 w (created) 4005 7064 w (shell,) 4410 7064 w (on) 4715 7064 w (the) 4885 7064 w (server.) 720 7184 w (It) 1134 7184 w (then) 1253 7184 w (rearranges) 1523 7184 w (the) 2096 7184 w (name) 2304 7184 w (space) 2622 7184 w (to) 2950 7184 w (make) 3100 7184 w (local) 3414 7184 w (device) 3691 7184 w (files) 4050 7184 w (\(such) 4304 7184 w (as) 4615 7184 w (those) 4773 7184 w (served) 720 7304 w (by) 1089 7304 w (the) 1254 7304 w (terminal) 1459 7304 w 10 /LucidaSansUnicode20 f (\031) 1861 7304 w 10 /LucidaSansUnicode00 f (s) 1893 7304 w (window) 1994 7304 w (system\)) 2413 7304 w (visible) 2836 7304 w (in) 3195 7304 w (the) 3337 7304 w (server) 3543 7304 w 10 /LucidaSansUnicode20 f (\031) 3840 7304 w 10 /LucidaSansUnicode00 f (s) 3872 7304 w 10 /LucidaTypewriter f (/dev) 3974 7304 w 10 /LucidaSansUnicode00 f (directory.) 4313 7304 w (The) 4859 7304 w cleartomark showpage saveobj restore %%EndPage: 7 7 %%Page: 8 8 /saveobj save def mark 8 pagesetup 10 /LucidaSansUnicode00 f (\255 8 \255) 2783 480 w (effect) 720 840 w (of) 1039 840 w (running) 1182 840 w (a) 1607 840 w 10 /LucidaTypewriter f (cpu) 1707 840 w 10 /LucidaSansUnicode00 f (command) 1968 840 w (is) 2491 840 w (therefore) 2616 840 w (to) 3108 840 w (start) 3251 840 w (a) 3517 840 w (shell) 3616 840 w (on) 3887 840 w (a) 4054 840 w (fast) 4153 840 w (machine,) 4377 840 w (one) 4861 840 w (more) 720 960 w (tightly) 1014 960 w (coupled) 1365 960 w (to) 1793 960 w (the) 1934 960 w (file) 2132 960 w (server,) 2326 960 w (with) 2699 960 w (a) 2948 960 w (name) 3047 960 w (space) 3357 960 w (analogous) 3677 960 w (to) 4219 960 w (the) 4361 960 w (local) 4560 960 w (one.) 4829 960 w (All) 720 1080 w (local) 882 1080 w (device) 1142 1080 w (files) 1484 1080 w (are) 1721 1080 w (visible) 1907 1080 w (remotely,) 2250 1080 w (so) 2741 1080 w (remote) 2887 1080 w (applications) 3265 1080 w (have) 3884 1080 w (full) 4143 1080 w (access) 4334 1080 w (to) 4683 1080 w (local) 4815 1080 w (services) 720 1200 w (such) 1156 1200 w (as) 1431 1200 w (bitmap) 1586 1200 w (graphics,) 1975 1200 w 10 /LucidaTypewriter f (/dev/cons) 2470 1200 w 10 /LucidaSansUnicode00 f (,) 3118 1200 w (and) 3200 1200 w (so) 3430 1200 w (on.) 3592 1200 w (This) 3829 1200 w (is) 4084 1200 w (not) 4214 1200 w (the) 4424 1200 w (same) 4629 1200 w (as) 4934 1200 w 10 /LucidaTypewriter f (rlogin) 720 1320 w 10 /LucidaSansUnicode00 f (,) 1152 1320 w (which) 1220 1320 w (does) 1537 1320 w (nothing) 1804 1320 w (to) 2215 1320 w (reproduce) 2349 1320 w (the) 2879 1320 w (local) 3069 1320 w (name) 3329 1320 w (space) 3630 1320 w (on) 3941 1320 w (the) 4099 1320 w (remote) 4289 1320 w (system,) 4668 1320 w (nor) 720 1440 w (is) 929 1440 w (it) 1054 1440 w (the) 1165 1440 w (same) 1365 1440 w (as) 1665 1440 w (file) 1816 1440 w (sharing) 2012 1440 w (with,) 2419 1440 w (say,) 2701 1440 w (NFS,) 2937 1440 w (which) 3197 1440 w (can) 3524 1440 w (achieve) 3738 1440 w (some) 4145 1440 w (name) 4452 1440 w (space) 4764 1440 w (equivalence) 720 1560 w (but) 1334 1560 w (not) 1539 1560 w (the) 1742 1560 w (combination) 1940 1560 w (of) 2586 1560 w (access) 2727 1560 w (to) 3085 1560 w (local) 3226 1560 w (hardware) 3494 1560 w (devices,) 3987 1560 w (remote) 4420 1560 w (files,) 4806 1560 w (and) 720 1680 w (remote) 945 1680 w (CPU) 1334 1680 w (resources.) 1572 1680 w (The) 2151 1680 w 10 /LucidaTypewriter f (cpu) 2377 1680 w 10 /LucidaSansUnicode00 f (command) 2638 1680 w (is) 3162 1680 w (a) 3288 1680 w (uniquely) 3389 1680 w (transparent) 3850 1680 w (mechanism.) 4456 1680 w (For) 720 1800 w (example,) 911 1800 w (it) 1391 1800 w (is) 1492 1800 w (reasonable) 1607 1800 w (to) 2171 1800 w (start) 2304 1800 w (a) 2560 1800 w (window) 2650 1800 w (system) 3054 1800 w (in) 3429 1800 w (a) 3555 1800 w (window) 3645 1800 w (running) 4049 1800 w (a) 4463 1800 w 10 /LucidaTypewriter f (cpu) 4552 1800 w 10 /LucidaSansUnicode00 f (com\255) 4802 1800 w (mand; all windows created there automatically start processes on the CPU server.) 720 1920 w 10 /LucidaSans-Demi f (Configurability and administration) 720 2160 w 10 /LucidaSansUnicode00 f (The) 970 2316 w (uniform) 1191 2316 w (interconnection) 1616 2316 w (of) 2413 2316 w (components) 2551 2316 w (in) 3188 2316 w (Plan) 3319 2316 w (9) 3560 2316 w (makes) 3663 2316 w (it) 4016 2316 w (possible) 4122 2316 w (to) 4566 2316 w (config\255) 4705 2316 w (ure) 720 2436 w (a) 933 2436 w (Plan) 1042 2436 w (9) 1297 2436 w (installation) 1414 2436 w (many) 2004 2436 w (different) 2320 2436 w (ways.) 2792 2436 w (A) 3145 2436 w (single) 3268 2436 w (laptop) 3611 2436 w (PC) 3973 2436 w (can) 4151 2436 w (function) 4372 2436 w (as) 4826 2436 w (a) 4985 2436 w (stand-alone) 720 2556 w (Plan) 1350 2556 w (9) 1592 2556 w (system;) 1696 2556 w (at) 2110 2556 w (the) 2244 2556 w (other) 2441 2556 w (extreme,) 2740 2556 w (our) 3214 2556 w (setup) 3420 2556 w (has) 3731 2556 w (central) 3941 2556 w (multiprocessor) 4314 2556 w (CPU) 720 2676 w (servers) 947 2676 w (and) 1329 2676 w (file) 1543 2676 w (servers) 1728 2676 w (and) 2110 2676 w (scores) 2324 2676 w (of) 2669 2676 w (terminals) 2800 2676 w (ranging) 3286 2676 w (from) 3692 2676 w (small) 3957 2676 w (PCs) 4247 2676 w (to) 4455 2676 w (high-end) 4586 2676 w (graphics) 720 2796 w (workstations.) 1167 2796 w (It) 1885 2796 w (is) 1985 2796 w (such) 2099 2796 w (large) 2359 2796 w (installations) 2636 2796 w (that) 3257 2796 w (best) 3482 2796 w (represent) 3723 2796 w (how) 4220 2796 w (Plan) 4454 2796 w (9) 4689 2796 w (oper\255) 4786 2796 w (ates.) 720 2916 w (The) 970 3072 w (system) 1193 3072 w (software) 1575 3072 w (is) 2032 3072 w (portable) 2154 3072 w (and) 2601 3072 w (the) 2823 3072 w (same) 3020 3072 w (operating) 3317 3072 w (system) 3825 3072 w (runs) 4207 3072 w (on) 4465 3072 w (all) 4630 3072 w (hard\255) 4786 3072 w (ware.) 720 3192 w (Except) 1046 3192 w (for) 1401 3192 w (performance,) 1573 3192 w (the) 2254 3192 w (appearance) 2442 3192 w (of) 3032 3192 w (the) 3163 3192 w (system) 3351 3192 w (on,) 3724 3192 w (say,) 3912 3192 w (an SGI workstation) 4135 3192 w (is) 720 3312 w (the) 833 3312 w (same) 1021 3312 w (as) 1309 3312 w (on) 1448 3312 w (a) 1604 3312 w (laptop.) 1692 3312 w (Since) 2097 3312 w (computing) 2382 3312 w (and) 2935 3312 w (file) 3148 3312 w (services) 3332 3312 w (are) 3752 3312 w (centralized,) 3937 3312 w (and) 4538 3312 w (termi\255) 4751 3312 w (nals) 720 3432 w (have) 953 3432 w (no) 1214 3432 w (permanent) 1373 3432 w (file) 1934 3432 w (storage,) 2120 3432 w (all) 2550 3432 w (terminals) 2698 3432 w (are) 3186 3432 w (functionally) 3373 3432 w (identical.) 3974 3432 w (In) 4484 3432 w (this) 4610 3432 w (way,) 4824 3432 w (Plan 9 has one of the good properties of) 720 3552 w (old) 2716 3552 w (timesharing) 2902 3552 w (systems,) 3512 3552 w (where) 3968 3552 w (a) 4293 3552 w (user) 4381 3552 w (could) 4624 3552 w (sit) 4923 3552 w (in) 720 3672 w (front) 853 3672 w (of) 1132 3672 w (any) 1271 3672 w (machine) 1481 3672 w (and) 1930 3672 w (see) 2151 3672 w (the) 2355 3672 w (same) 2551 3672 w (system.) 2847 3672 w (In) 3292 3672 w (the) 3424 3672 w (modern) 3620 3672 w (workstation) 4037 3672 w (commu\255) 4647 3672 w (nity, machines tend to be owned by people who customize) 720 3792 w (them) 3606 3792 w (by) 3887 3792 w (storing) 4035 3792 w (private) 4411 3792 w (infor\255) 4777 3792 w (mation) 720 3912 w (on) 1093 3912 w (local) 1252 3912 w (disk.) 1513 3912 w (We) 1814 3912 w (reject) 1992 3912 w (this) 2299 3912 w (style) 2514 3912 w (of) 2775 3912 w (use,) 2909 3912 w (although) 3146 3912 w (the) 3612 3912 w (system) 3802 3912 w (itself) 4177 3912 w (can) 4451 3912 w (be) 4654 3912 w (used) 4808 3912 w (this) 720 4032 w (way.) 936 4032 w (In) 1221 4032 w (our) 1349 4032 w (group,) 1551 4032 w (we) 1910 4032 w (have) 2081 4032 w (a) 2344 4032 w (laboratory) 2437 4032 w (with) 2970 4032 w (many) 3213 4032 w (public-access) 3513 4032 w (machines) 4221 4032 w 10 /LucidaSansUnicode20 f (\024) 4680 4032 w 10 /LucidaSansUnicode00 f (a) 4780 4032 w (ter\255) 4873 4032 w (minal room) 720 4152 w 10 /LucidaSansUnicode20 f (\024) 1276 4152 w 10 /LucidaSansUnicode00 f (and a user may sit down at any one of them and work.) 1376 4152 w (Central) 970 4308 w (file) 1365 4308 w (servers) 1562 4308 w (centralize) 1956 4308 w (not) 2475 4308 w (just) 2681 4308 w (the) 2907 4308 w (files,) 3108 4308 w (but) 3388 4308 w (also) 3596 4308 w (their) 3838 4308 w (administration) 4109 4308 w (and) 4860 4308 w (maintenance.) 720 4428 w (In) 1460 4428 w (fact,) 1609 4428 w (one) 1879 4428 w (server) 2115 4428 w (is) 2469 4428 w (the) 2606 4428 w (main) 2818 4428 w (server,) 3114 4428 w (holding) 3500 4428 w (all) 3925 4428 w (system) 4095 4428 w (files;) 4492 4428 w (other) 4783 4428 w (servers) 720 4548 w (provide) 1104 4548 w (extra) 1505 4548 w (storage) 1791 4548 w (or) 2190 4548 w (are) 2328 4548 w (available) 2516 4548 w (for) 2975 4548 w (debugging) 3150 4548 w (and) 3707 4548 w (other) 3924 4548 w (special) 4218 4548 w (uses,) 4589 4548 w (but) 4878 4548 w (the) 720 4668 w (system) 914 4668 w (software) 1293 4668 w (resides) 1747 4668 w (on) 2133 4668 w (one) 2295 4668 w (machine.) 2513 4668 w (This) 3023 4668 w (means) 3266 4668 w (that) 3621 4668 w (each) 3850 4668 w (program) 4112 4668 w (has) 4566 4668 w (a) 4772 4668 w (sin\255) 4865 4668 w (gle) 720 4788 w (copy) 913 4788 w (of) 1186 4788 w (the) 1330 4788 w (binary) 1531 4788 w (for) 1879 4788 w (each) 2064 4788 w (architecture,) 2334 4788 w (so) 2990 4788 w (it) 3149 4788 w (is) 3262 4788 w (trivial) 3389 4788 w (to) 3708 4788 w (install) 3853 4788 w (updates) 4192 4788 w (and) 4626 4788 w (bug) 4853 4788 w (fixes.) 720 4908 w (There) 1069 4908 w (is) 1398 4908 w (also) 1529 4908 w (a) 1776 4908 w (single) 1882 4908 w (user) 2222 4908 w (database;) 2483 4908 w (there) 3001 4908 w (is) 3304 4908 w (no) 3435 4908 w (need) 3609 4908 w (to) 3897 4908 w (synchronize) 4046 4908 w (distinct) 4681 4908 w 10 /LucidaTypewriter f (/etc/passwd) 720 5028 w 10 /LucidaSansUnicode00 f (files.) 1561 5028 w (On) 1876 5028 w (the) 2065 5028 w (other) 2269 5028 w (hand,) 2575 5028 w (depending) 2898 5028 w (on) 3464 5028 w (a) 3637 5028 w (single) 3742 5028 w (central) 4081 5028 w (server) 4462 5028 w (does) 4809 5028 w (limit the size of an installation.) 720 5148 w (Another) 970 5304 w (example) 1393 5304 w (of) 1841 5304 w (the) 1974 5304 w (power) 2164 5304 w (of) 2497 5304 w (centralized) 2631 5304 w (file) 3203 5304 w (service) 3390 5304 w (is) 3762 5304 w (the) 3878 5304 w (way) 4069 5304 w (Plan) 4289 5304 w (9) 4526 5304 w (adminis\255) 4625 5304 w (ters) 720 5424 w (network) 950 5424 w (information.) 1387 5424 w (On) 2063 5424 w (the) 2248 5424 w (central) 2448 5424 w (server) 2824 5424 w (there) 3166 5424 w (is) 3463 5424 w (a) 3588 5424 w (directory,) 3688 5424 w 10 /LucidaTypewriter f (/lib/ndb) 4196 5424 w 10 /LucidaSansUnicode00 f (,) 4772 5424 w (that) 4849 5424 w (contains) 720 5544 w (all) 1176 5544 w (the) 1337 5544 w (information) 1540 5544 w (necessary) 2155 5544 w (to) 2678 5544 w (administer) 2824 5544 w (the) 3388 5544 w (local) 3591 5544 w (Ethernet) 3864 5544 w (and) 4317 5544 w (other) 4546 5544 w (net\255) 4852 5544 w (works.) 720 5664 w (All) 1108 5664 w (the) 1271 5664 w (machines) 1462 5664 w (use) 1957 5664 w (the) 2162 5664 w (same) 2353 5664 w (database) 2644 5664 w (to) 3114 5664 w (talk) 3247 5664 w (to) 3461 5664 w (the) 3594 5664 w (network;) 3784 5664 w (there) 4243 5664 w (is) 4530 5664 w (no) 4645 5664 w (need) 4803 5664 w (to) 720 5784 w (manage) 863 5784 w (a) 1291 5784 w (distributed) 1391 5784 w (naming) 1968 5784 w (system) 2377 5784 w (or) 2763 5784 w (keep) 2911 5784 w (parallel) 3190 5784 w (files) 3593 5784 w (up) 3841 5784 w (to) 4012 5784 w (date.) 4156 5784 w (To) 4477 5784 w (install) 4647 5784 w (a) 4985 5784 w (new) 720 5904 w (machine) 959 5904 w (on) 1411 5904 w (the) 1578 5904 w (local) 1777 5904 w (Ethernet,) 2046 5904 w (choose) 2527 5904 w (a) 2912 5904 w (name) 3010 5904 w (and) 3319 5904 w (IP) 3542 5904 w (address) 3669 5904 w (and) 4092 5904 w (add) 4315 5904 w (these) 4539 5904 w (to) 4844 5904 w (a) 4985 5904 w (single) 720 6024 w (file) 1055 6024 w (in) 1252 6024 w 10 /LucidaTypewriter f (/lib/ndb) 1389 6024 w 10 /LucidaSansUnicode00 f (;) 1965 6024 w (all) 2043 6024 w (the) 2202 6024 w (machines) 2403 6024 w (in) 2908 6024 w (the) 3046 6024 w (installation) 3248 6024 w (will) 3831 6024 w (be) 4042 6024 w (able) 4208 6024 w (to) 4458 6024 w (talk) 4603 6024 w (to) 4829 6024 w (it) 4974 6024 w (immediately.) 720 6144 w (To) 1418 6144 w (start) 1584 6144 w (running,) 1847 6144 w (plug) 2301 6144 w (the) 2559 6144 w (machine) 2756 6144 w (into) 3206 6144 w (the) 3437 6144 w (network,) 3634 6144 w (turn) 4100 6144 w (it) 4344 6144 w (on,) 4452 6144 w (and) 4649 6144 w (use) 4871 6144 w (BOOTP and TFTP to load the kernel.) 720 6264 w (All else is automatic.) 2518 6264 w (Finally,) 970 6420 w (the) 1352 6420 w (automated) 1547 6420 w (dump) 2106 6420 w (file) 2427 6420 w (system) 2618 6420 w (frees) 2998 6420 w (all) 3279 6420 w (users) 3432 6420 w (from) 3733 6420 w (the) 4005 6420 w (need) 4201 6420 w (to) 4479 6420 w (maintain) 4618 6420 w (their) 720 6540 w (systems,) 991 6540 w (while) 1460 6540 w (providing) 1759 6540 w (easy) 2267 6540 w (access) 2527 6540 w (to) 2887 6540 w (backup) 3030 6540 w (files) 3427 6540 w (without) 3674 6540 w (tapes,) 4084 6540 w (special) 4423 6540 w (com\255) 4802 6540 w (mands,) 720 6660 w (or) 1114 6660 w (the) 1254 6660 w (involvement) 1447 6660 w (of) 2074 6660 w (support) 2210 6660 w (staff.) 2626 6660 w (It) 2945 6660 w (is) 3049 6660 w (difficult) 3168 6660 w (to) 3581 6660 w (overstate) 3718 6660 w (the) 4203 6660 w (improvement) 4397 6660 w (in lifestyle afforded by this service.) 720 6780 w (Plan) 970 6936 w (9) 1224 6936 w (runs) 1340 6936 w (on) 1609 6936 w (a) 1786 6936 w (variety) 1895 6936 w (of) 2271 6936 w (hardware) 2423 6936 w (without) 2927 6936 w (constraining) 3346 6936 w (how) 4002 6936 w (to) 4256 6936 w (configure) 4408 6936 w (an) 4923 6936 w (installation.) 720 7056 w (In) 1366 7056 w (our) 1503 7056 w (laboratory,) 1713 7056 w (we) 2286 7056 w (chose) 2465 7056 w (to) 2792 7056 w (use) 2936 7056 w (central) 3151 7056 w (servers) 3527 7056 w (because) 3920 7056 w (they) 4359 7056 w (amortize) 4611 7056 w (costs) 720 7176 w (and) 1005 7176 w (administration.) 1219 7176 w (A) 2021 7176 w (sign) 2124 7176 w (that) 2362 7176 w (this) 2587 7176 w (is) 2801 7176 w (a) 2916 7176 w (good) 3006 7176 w (decision) 3288 7176 w (is) 3725 7176 w (that) 3840 7176 w (our) 4066 7176 w (cheap) 4265 7176 w (terminals) 4587 7176 w (remain) 720 7296 w (comfortable) 1095 7296 w (places) 1718 7296 w (to) 2062 7296 w (work) 2199 7296 w (for) 2475 7296 w (about) 2653 7296 w (five) 2970 7296 w (years,) 3183 7296 w (much) 3509 7296 w (longer) 3816 7296 w (than) 4166 7296 w (workstations) 4420 7296 w cleartomark showpage saveobj restore %%EndPage: 8 8 %%Page: 9 9 /saveobj save def mark 9 pagesetup 10 /LucidaSansUnicode00 f (\255 9 \255) 2783 480 w (that) 720 840 w (must) 950 840 w (provide) 1232 840 w (the) 1636 840 w (complete) 1830 840 w (computing) 2315 840 w (environment.) 2874 840 w (We) 3588 840 w (do,) 3770 840 w (however,) 3966 840 w (upgrade) 4443 840 w (the) 4885 840 w (central) 720 960 w (machines,) 1087 960 w (so) 1614 960 w (the) 1762 960 w (computation) 1952 960 w (available) 2598 960 w (from) 3056 960 w (even) 3323 960 w (old) 3584 960 w (Plan) 3772 960 w (9) 4008 960 w (terminals) 4106 960 w (improves) 4594 960 w (with) 720 1080 w (time.) 961 1080 w (The) 1276 1080 w (money) 1493 1080 w (saved) 1853 1080 w (by) 2166 1080 w (avoiding) 2317 1080 w (regular) 2766 1080 w (upgrades) 3149 1080 w (of) 3639 1080 w (terminals) 3774 1080 w (is) 4264 1080 w (instead) 4381 1080 w (spent) 4771 1080 w (on) 720 1200 w (the) 894 1200 w (newest,) 1100 1200 w (fastest) 1522 1200 w (multiprocessor) 1897 1200 w (servers.) 2674 1200 w (We) 3137 1200 w (estimate) 3330 1200 w (this) 3794 1200 w (costs) 4023 1200 w (about) 4324 1200 w (half) 4652 1200 w (the) 4885 1200 w (money) 720 1320 w (of) 1119 1320 w (networked) 1292 1320 w (workstations) 1878 1320 w (yet) 2573 1320 w (provides) 2793 1320 w (general) 3285 1320 w (access) 3722 1320 w (to) 4113 1320 w (more) 4287 1320 w (powerful) 4614 1320 w (machines.) 720 1440 w 10 /LucidaSans-Demi f (C Programming) 720 1680 w 10 /LucidaSansUnicode00 f (Plan) 970 1836 w (9) 1208 1836 w (utilities) 1309 1836 w (are) 1706 1836 w (written) 1896 1836 w (in) 2273 1836 w (several) 2402 1836 w (languages.) 2780 1836 w (Some) 3376 1836 w (are) 3678 1836 w (scripts) 3868 1836 w (for) 4229 1836 w (the) 4406 1836 w (shell,) 4599 1836 w 10 /LucidaTypewriter f (rc) 4896 1836 w 10 /LucidaSansUnicode00 f ([Duff90];) 720 1956 w (a) 1190 1956 w (handful) 1280 1956 w (are) 1685 1956 w (written) 1872 1956 w (in) 2246 1956 w (a) 2372 1956 w (new) 2462 1956 w (C-like) 2692 1956 w (concurrent) 3025 1956 w (language) 3583 1956 w (called) 4060 1956 w (Alef) 4377 1956 w ([Wint95],) 4602 1956 w (described) 720 2076 w (below.) 1229 2076 w (The) 1615 2076 w (great) 1832 2076 w (majority,) 2119 2076 w (though,) 2586 2076 w (are) 3001 2076 w (written) 3190 2076 w (in) 3566 2076 w (a) 3694 2076 w (dialect) 3786 2076 w (of) 4143 2076 w (ANSI) 4278 2076 w (C) 4541 2076 w ([ANSIC].) 4647 2076 w (Of) 720 2196 w (these,) 874 2196 w (most) 1207 2196 w (are) 1488 2196 w (entirely) 1679 2196 w (new) 2080 2196 w (programs,) 2314 2196 w (but) 2852 2196 w (some) 3052 2196 w (originate) 3351 2196 w (in) 3821 2196 w (pre-ANSI) 3950 2196 w (C) 4432 2196 w (code) 4539 2196 w (from) 4808 2196 w (our) 720 2316 w (research) 922 2316 w (UNIX) 1373 2316 w (system) 1646 2316 w ([UNIX85].) 2024 2316 w (These) 2553 2316 w (have) 2880 2316 w (been) 3144 2316 w (updated) 3420 2316 w (to) 3858 2316 w (ANSI) 3995 2316 w (C) 4260 2316 w (and) 4368 2316 w (reworked) 4587 2316 w (for portability and cleanliness.) 720 2436 w (The) 970 2592 w (Plan) 1184 2592 w (9) 1418 2592 w (C) 1514 2592 w (dialect) 1616 2592 w (has) 1970 2592 w (some) 2172 2592 w (minor) 2467 2592 w (extensions,) 2787 2592 w (described) 3379 2592 w (elsewhere) 3886 2592 w ([Pike95],) 4404 2592 w (and) 4860 2592 w (a) 720 2712 w (few) 819 2712 w (major) 1032 2712 w (restrictions.) 1355 2712 w (The) 2008 2712 w (most) 2232 2712 w (important) 2517 2712 w (restriction) 3038 2712 w (is) 3576 2712 w (that) 3699 2712 w (the) 3933 2712 w (compiler) 4131 2712 w (demands) 4597 2712 w (that) 720 2832 w (all) 960 2832 w (function) 1122 2832 w (definitions) 1572 2832 w (have) 2137 2832 w (ANSI) 2411 2832 w (prototypes) 2686 2832 w (and) 3257 2832 w (all) 3486 2832 w (function) 3648 2832 w (calls) 4098 2832 w (appear) 4362 2832 w (in) 4744 2832 w (the) 4885 2832 w (scope) 720 2952 w (of) 1052 2952 w (a) 1200 2952 w (prototyped) 1305 2952 w (declaration) 1889 2952 w (of) 2478 2952 w (the) 2626 2952 w (function.) 2831 2952 w (As) 3345 2952 w (a) 3514 2952 w (stylistic) 3618 2952 w (rule,) 4033 2952 w (the) 4302 2952 w (prototyped) 4506 2952 w (declaration is placed in) 720 3072 w (a) 1876 3072 w (header) 1964 3072 w (file) 2330 3072 w (included) 2514 3072 w (by) 2962 3072 w (all) 3110 3072 w (files) 3256 3072 w (that) 3491 3072 w (call) 3715 3072 w (the) 3912 3072 w (function.) 4100 3072 w (Each) 4598 3072 w (sys\255) 4853 3072 w (tem) 720 3192 w (library) 959 3192 w (has) 1322 3192 w (an) 1543 3192 w (associated) 1713 3192 w (header) 2275 3192 w (file,) 2661 3192 w (declaring) 2897 3192 w (all) 3398 3192 w (functions) 3564 3192 w (in) 4069 3192 w (that) 4213 3192 w (library.) 4457 3192 w (For) 4884 3192 w (example,) 720 3312 w (the) 1226 3312 w (standard) 1442 3312 w (Plan) 1931 3312 w (9) 2194 3312 w (library) 2319 3312 w (is) 2691 3312 w (called) 2833 3312 w 10 /LucidaTypewriter f (libc) 3178 3312 w 10 /LucidaSansUnicode00 f (,) 3466 3312 w (so) 3560 3312 w (all) 3734 3312 w (C) 3909 3312 w (source) 4040 3312 w (files) 4424 3312 w (include) 4688 3312 w 10 /LucidaTypewriter f () 720 3432 w 10 /LucidaSansUnicode00 f (.) 1296 3432 w (These) 1400 3432 w (rules) 1727 3432 w (guarantee) 2005 3432 w (that) 2530 3432 w (all) 2760 3432 w (functions) 2912 3432 w (are) 3403 3432 w (called) 3594 3432 w (with) 3916 3432 w (arguments) 4160 3432 w (having) 4718 3432 w (the expected types ) 720 3552 w 10 /LucidaSansUnicode20 f (\024) 1673 3552 w 10 /LucidaSansUnicode00 f (something that was not true with pre-ANSI C programs.) 1805 3552 w (Another) 970 3708 w (restriction) 1391 3708 w (is) 1919 3708 w (that) 2032 3708 w (the) 2256 3708 w (C) 2444 3708 w (compilers) 2547 3708 w (accept) 3055 3708 w (only) 3402 3708 w (a) 3640 3708 w (subset) 3729 3708 w (of) 4083 3708 w (the) 4215 3708 w (preprocessor) 4404 3708 w (directives) 720 3828 w (required) 1220 3828 w (by) 1666 3828 w (ANSI.) 1816 3828 w (The) 2141 3828 w (main) 2357 3828 w (omission) 2631 3828 w (is) 3102 3828 w 10 /LucidaTypewriter f (#if) 3216 3828 w 10 /LucidaSansUnicode00 f (,) 3432 3828 w (since) 3498 3828 w (we) 3781 3828 w (believe) 3948 3828 w (it) 4323 3828 w (is) 4423 3828 w (never) 4537 3828 w (nec\255) 4838 3828 w (essary) 720 3948 w (and) 1089 3948 w (often) 1333 3948 w (abused.) 1650 3948 w (Also,) 2128 3948 w (its) 2434 3948 w (effect) 2615 3948 w (is) 2953 3948 w (better) 3097 3948 w (achieved) 3451 3948 w (by) 3939 3948 w (other) 4118 3948 w (means.) 4439 3948 w (For) 4884 3948 w (instance,) 720 4068 w (an) 1188 4068 w 10 /LucidaTypewriter f (#if) 1338 4068 w 10 /LucidaSansUnicode00 f (used) 1587 4068 w (to) 1852 4068 w (toggle) 1983 4068 w (a feature at compile time can be written as a regular) 2323 4068 w 10 /LucidaTypewriter f (if) 4896 4068 w 10 /LucidaSansUnicode00 f (statement,) 720 4188 w (relying) 1278 4188 w (on) 1652 4188 w (compile-time) 1818 4188 w (constant) 2516 4188 w (folding) 2975 4188 w (and) 3361 4188 w (dead) 3584 4188 w (code) 3864 4188 w (elimination) 4138 4188 w (to) 4723 4188 w (dis\255) 4864 4188 w (card object code.) 720 4308 w (Conditional) 970 4464 w (compilation,) 1565 4464 w (even) 2205 4464 w (with) 2469 4464 w 10 /LucidaTypewriter f (#ifdef) 2712 4464 w 10 /LucidaSansUnicode00 f (,) 3144 4464 w (is) 3214 4464 w (used) 3332 4464 w (sparingly) 3602 4464 w (in) 4084 4464 w (Plan) 4213 4464 w (9.) 4452 4464 w (The) 4617 4464 w (only) 4836 4464 w (architecture-dependent) 720 4584 w 10 /LucidaTypewriter f (#ifdefs) 1913 4584 w 10 /LucidaSansUnicode00 f (in) 2456 4584 w (the) 2586 4584 w (system) 2780 4584 w (are) 3159 4584 w (in) 3350 4584 w (low-level) 3480 4584 w (routines) 3965 4584 w (in) 4402 4584 w (the) 4531 4584 w (graph\255) 4724 4584 w (ics) 720 4704 w (library.) 900 4704 w (Instead,) 1323 4704 w (we) 1757 4704 w (avoid) 1939 4704 w (such) 2248 4704 w (dependencies) 2523 4704 w (or,) 3240 4704 w (when) 3423 4704 w (necessary,) 3729 4704 w (isolate) 4285 4704 w (them) 4652 4704 w (in) 4949 4704 w (separate) 720 4824 w (source) 1171 4824 w (files) 1530 4824 w (or) 1768 4824 w (libraries.) 1906 4824 w (Besides) 2400 4824 w (making) 2800 4824 w (code) 3195 4824 w (hard) 3462 4824 w (to) 3719 4824 w (read,) 3853 4824 w 10 /LucidaTypewriter f (#ifdefs) 4136 4824 w 10 /LucidaSansUnicode00 f (make) 4676 4824 w (it) 4974 4824 w (impossible) 720 4944 w (to) 1278 4944 w (know) 1409 4944 w (what) 1700 4944 w (source) 1964 4944 w (is) 2319 4944 w (compiled) 2432 4944 w (into) 2910 4944 w (the) 3133 4944 w (binary) 3322 4944 w (or) 3658 4944 w (whether) 3794 4944 w (source) 4219 4944 w (protected) 4575 4944 w (by them will compile or work properly.) 720 5064 w (They make it harder to maintain software.) 2662 5064 w (The) 970 5220 w (standard) 1214 5220 w (Plan) 1704 5220 w (9) 1968 5220 w (library) 2094 5220 w (overlaps) 2467 5220 w (much) 2938 5220 w (of) 3269 5220 w (ANSI) 3430 5220 w (C) 3719 5220 w (and) 3851 5220 w (POSIX) 4094 5220 w ([POSIX],) 4437 5220 w (but) 4878 5220 w (diverges) 720 5340 w (when) 1168 5340 w (appropriate) 1463 5340 w (to) 2065 5340 w (Plan) 2201 5340 w (9) 2440 5340 w 10 /LucidaSansUnicode20 f (\031) 2503 5340 w 10 /LucidaSansUnicode00 f (s) 2535 5340 w (goals) 2624 5340 w (or) 2920 5340 w (implementation.) 3060 5340 w (When) 3924 5340 w (the) 4228 5340 w (semantics) 4420 5340 w (of) 4942 5340 w (a) 720 5460 w (function) 818 5460 w (change,) 1262 5460 w (we) 1686 5460 w (also) 1863 5460 w (change) 2103 5460 w (the) 2495 5460 w (name.) 2694 5460 w (For) 3068 5460 w (instance,) 3268 5460 w (instead) 3747 5460 w (of) 4144 5460 w (UNIX) 4286 5460 w 10 /LucidaSansUnicode20 f (\031) 4521 5460 w 10 /LucidaSansUnicode00 f (s) 4553 5460 w 10 /LucidaTypewriter f (creat) 4648 5460 w 10 /LucidaSansUnicode00 f (,) 5008 5460 w (Plan) 720 5580 w (9) 959 5580 w (has) 1060 5580 w (a) 1266 5580 w 10 /LucidaTypewriter f (create) 1359 5580 w 10 /LucidaSansUnicode00 f (function) 1828 5580 w (that) 2266 5580 w (takes) 2494 5580 w (three) 2788 5580 w (arguments,) 3077 5580 w (the) 3665 5580 w (original) 3857 5580 w (two) 4262 5580 w (plus) 4474 5580 w (a) 4716 5580 w (third) 4808 5580 w (that,) 720 5700 w (like) 981 5700 w (the) 1191 5700 w (second) 1384 5700 w (argument) 1766 5700 w (of) 2272 5700 w 10 /LucidaTypewriter f (open) 2408 5700 w 10 /LucidaSansUnicode00 f (,) 2696 5700 w (defines) 2766 5700 w (whether) 3158 5700 w (the) 3587 5700 w (returned) 3781 5700 w (file) 4238 5700 w (descriptor) 4428 5700 w (is) 4960 5700 w (to) 720 5820 w (be) 853 5820 w (opened) 1007 5820 w (for) 1403 5820 w (reading,) 1577 5820 w (writing,) 2012 5820 w (or) 2416 5820 w (both.) 2552 5820 w (This) 2873 5820 w (design) 3112 5820 w (was) 3469 5820 w (forced) 3686 5820 w (by) 4029 5820 w (the) 4178 5820 w (way) 4367 5820 w (9P) 4585 5820 w (imple\255) 4737 5820 w (ments) 720 5940 w (creation,) 1056 5940 w (but) 1517 5940 w (it) 1716 5940 w (also) 1819 5940 w (simplifies) 2052 5940 w (the) 2556 5940 w (common) 2748 5940 w (use) 3206 5940 w (of) 3412 5940 w 10 /LucidaTypewriter f (create) 3548 5940 w 10 /LucidaSansUnicode00 f (to) 4018 5940 w (initialize) 4154 5940 w (a) 4604 5940 w (tempo\255) 4697 5940 w (rary file.) 720 6060 w (Another departure from ANSI C is that) 970 6216 w (Plan) 2855 6216 w (9) 3089 6216 w (uses) 3185 6216 w (a) 3438 6216 w (16-bit) 3526 6216 w (character) 3872 6216 w (set) 4354 6216 w (called) 4531 6216 w (Uni\255) 4847 6216 w (code) 720 6336 w ([ISO10646,) 992 6336 w (Unicode].) 1574 6336 w (Although) 2103 6336 w (we) 2588 6336 w (stopped) 2761 6336 w (short) 3195 6336 w (of) 3487 6336 w (full) 3625 6336 w (internationalization,) 3822 6336 w (Plan) 4839 6336 w (9) 720 6456 w (treats) 819 6456 w (the) 1133 6456 w (representation) 1325 6456 w (of) 2069 6456 w (all) 2204 6456 w (major) 2354 6456 w (languages) 2671 6456 w (uniformly) 3202 6456 w (throughout) 3705 6456 w (all) 4289 6456 w (its) 4439 6456 w (software.) 4593 6456 w (To) 720 6576 w (simplify) 891 6576 w (the) 1321 6576 w (exchange) 1523 6576 w (of) 2034 6576 w (text) 2178 6576 w (between) 2415 6576 w (programs,) 2868 6576 w (the) 3413 6576 w (characters) 3614 6576 w (are) 4160 6576 w (packed) 4358 6576 w (into) 4750 6576 w (a) 4985 6576 w (byte) 720 6696 w (stream) 997 6696 w (by) 1399 6696 w (an) 1583 6696 w (encoding) 1769 6696 w (we) 2284 6696 w (designed,) 2486 6696 w (called) 3030 6696 w (UTF-8,) 3383 6696 w (which) 3792 6696 w (is) 4143 6696 w (now) 4293 6696 w (becoming) 4563 6696 w (accepted) 720 6816 w (as) 1203 6816 w (a) 1360 6816 w (standard) 1466 6816 w ([FSSUTF].) 1943 6816 w (It) 2471 6816 w (has) 2587 6816 w (several) 2805 6816 w (attractive) 3195 6816 w (properties,) 3695 6816 w (including) 4275 6816 w (byte-) 4774 6816 w (order independence, backwards compatibility with ASCII, and ease of implementation.) 720 6936 w cleartomark showpage saveobj restore %%EndPage: 9 9 %%Page: 10 10 /saveobj save def mark 10 pagesetup 10 /LucidaSansUnicode00 f (\255 10 \255) 2752 480 w (There) 970 840 w (are) 1299 840 w (many) 1502 840 w (problems) 1815 840 w (in) 2323 840 w (adapting) 2465 840 w (existing) 2942 840 w (software) 3380 840 w (to) 3846 840 w (a) 3995 840 w (large) 4101 840 w (character) 4395 840 w (set) 4896 840 w (with) 720 960 w (an) 973 960 w (encoding) 1138 960 w (that) 1632 960 w (represents) 1870 960 w (characters) 2431 960 w (with) 2978 960 w (a) 3230 960 w (variable) 3332 960 w (number) 3759 960 w (of) 4183 960 w (bytes.) 4328 960 w (ANSI) 4698 960 w (C) 4971 960 w (addresses) 720 1080 w (some) 1241 1080 w (of) 1536 1080 w (the) 1668 1080 w (issues) 1857 1080 w (but) 2191 1080 w (falls) 2387 1080 w (short) 2622 1080 w (of) 2908 1080 w (solving) 3040 1080 w (them) 3420 1080 w (all.) 3702 1080 w (It) 3913 1080 w (does) 4013 1080 w (not) 4278 1080 w (pick) 4472 1080 w (a) 4708 1080 w (char\255) 4798 1080 w (acter) 720 1200 w (set) 1003 1200 w (encoding) 1190 1200 w (and) 1679 1200 w (does) 1902 1200 w (not) 2176 1200 w (define) 2379 1200 w (all) 2725 1200 w (the) 2881 1200 w (necessary) 3078 1200 w (I/O) 3595 1200 w (library) 3797 1200 w (routines.) 4149 1200 w (Further\255) 4654 1200 w (more,) 720 1320 w (the) 1046 1320 w (functions) 1244 1320 w (it) 1739 1320 w 10 /LucidaSans-Italic f (does) 1849 1320 w 10 /LucidaSansUnicode00 f (define) 2113 1320 w (have) 2460 1320 w (engineering) 2729 1320 w (problems.) 3350 1320 w (Since) 3915 1320 w (the) 4211 1320 w (standard) 4410 1320 w (left) 4881 1320 w (too) 720 1440 w (many) 918 1440 w (problems) 1219 1440 w (unsolved,) 1715 1440 w (we) 2222 1440 w (decided) 2394 1440 w (to) 2814 1440 w (build) 2951 1440 w (our) 3236 1440 w (own) 3439 1440 w (interface.) 3677 1440 w (A) 4203 1440 w (separate) 4310 1440 w (paper) 4762 1440 w (has the details [Pike93].) 720 1560 w (A) 970 1716 w (small) 1082 1716 w (class) 1382 1716 w (of) 1663 1716 w (Plan) 1805 1716 w (9) 2050 1716 w (programs) 2157 1716 w (do) 2668 1716 w (not) 2836 1716 w (follow) 3040 1716 w (the) 3378 1716 w (conventions) 3577 1716 w (discussed) 4205 1716 w (in) 4726 1716 w (this) 4861 1716 w (section.) 720 1836 w (These) 1180 1836 w (are) 1516 1836 w (programs) 1716 1836 w (imported) 2231 1836 w (from) 2722 1836 w (and) 3002 1836 w (maintained) 3230 1836 w (by) 3819 1836 w (the) 3982 1836 w (UNIX) 4185 1836 w (community;) 4468 1836 w 10 /LucidaTypewriter f (tex) 720 1956 w 10 /LucidaSansUnicode00 f (is) 984 1956 w (a) 1112 1956 w (representative) 1216 1956 w (example.) 1957 1956 w (To) 2483 1956 w (avoid) 2656 1956 w (reconverting) 2965 1956 w (such) 3624 1956 w (programs) 3899 1956 w (every) 4415 1956 w (time) 4721 1956 w (a) 4985 1956 w (new) 720 2076 w (version) 958 2076 w (is) 1353 2076 w (released,) 1476 2076 w (we) 1958 2076 w (built) 2134 2076 w (a) 2397 2076 w (porting) 2495 2076 w (environment,) 2892 2076 w (called) 3577 2076 w (the) 3902 2076 w (ANSI) 4099 2076 w (C/POSIX) 4367 2076 w (Envi\255) 4810 2076 w (ronment,) 720 2196 w (or) 1222 2196 w (APE) 1382 2196 w ([Tric95].) 1618 2196 w (APE) 2116 2196 w (comprises) 2352 2196 w (separate) 2906 2196 w (include) 3378 2196 w (files,) 3788 2196 w (libraries,) 4080 2196 w (and) 4564 2196 w (com\255) 4802 2196 w (mands,) 720 2316 w (conforming) 1111 2316 w (as) 1705 2316 w (much) 1846 2316 w (as) 2149 2316 w (possible) 2290 2316 w (to) 2727 2316 w (the) 2859 2316 w (strict) 3048 2316 w (ANSI) 3328 2316 w (C) 3588 2316 w (and) 3691 2316 w (base-level) 3905 2316 w (POSIX) 4444 2316 w (speci\255) 4757 2316 w (fications.) 720 2436 w (To) 1234 2436 w (port) 1397 2436 w (network-based) 1638 2436 w (software) 2415 2436 w (such) 2869 2436 w (as) 3134 2436 w (X) 3279 2436 w (Windows,) 3381 2436 w (it) 3881 2436 w (was) 3986 2436 w (necessary) 4208 2436 w (to) 4722 2436 w (add) 4859 2436 w (some extensions to those specifications, such as the BSD networking functions.) 720 2556 w 10 /LucidaSans-Demi f (Portability and Compilation) 720 2796 w 10 /LucidaSansUnicode00 f (Plan) 970 2952 w (9) 1207 2952 w (is) 1307 2952 w (portable) 1424 2952 w (across) 1866 2952 w (a) 2213 2952 w (variety) 2305 2952 w (of) 2664 2952 w (processor) 2799 2952 w (architectures.) 3312 2952 w (Within) 4042 2952 w (a) 4384 2952 w (single) 4476 2952 w (com\255) 4802 2952 w (puting) 720 3072 w (session,) 1079 3072 w (it) 1516 3072 w (is) 1626 3072 w (common) 1750 3072 w (to) 2215 3072 w (use) 2357 3072 w (several) 2569 3072 w (architectures:) 2952 3072 w (perhaps) 3656 3072 w (the) 4090 3072 w (window) 4288 3072 w (system) 4700 3072 w (running) 720 3192 w (on) 1138 3192 w (an) 1299 3192 w (Intel) 1454 3192 w (processor) 1705 3192 w (connected) 2219 3192 w (to) 2756 3192 w (a) 2892 3192 w (MIPS-based) 2985 3192 w (CPU) 3593 3192 w (server) 3824 3192 w (with) 4160 3192 w (files) 4404 3192 w (resident) 4645 3192 w (on) 720 3312 w (a) 876 3312 w (SPARC) 964 3312 w (system.) 1307 3312 w (For this heterogeneity to be transparent, there must be conventions) 1743 3312 w (about) 720 3432 w (data) 1039 3432 w (interchange) 1290 3432 w (between) 1905 3432 w (programs;) 2354 3432 w (for) 2895 3432 w (software) 3076 3432 w (maintenance) 3533 3432 w (to) 4193 3432 w (be) 4333 3432 w (straightfor\255) 4494 3432 w (ward, there must be conventions about cross-architecture compilation.) 720 3552 w (To) 970 3708 w (avoid) 1144 3708 w (byte) 1454 3708 w (order) 1712 3708 w (problems,) 2024 3708 w (data) 2563 3708 w (is) 2823 3708 w (communicated) 2953 3708 w (between) 3716 3708 w (programs) 4174 3708 w (as) 4692 3708 w (text) 4849 3708 w (whenever) 720 3828 w (practical.) 1241 3828 w (Sometimes,) 1775 3828 w (though,) 2396 3828 w (the) 2833 3828 w (amount) 3047 3828 w (of) 3476 3828 w (data) 3633 3828 w (is) 3902 3828 w (high) 4040 3828 w (enough) 4313 3828 w (that) 4736 3828 w (a) 4985 3828 w (binary) 720 3948 w (format) 1071 3948 w (is) 1444 3948 w (necessary;) 1574 3948 w (such) 2131 3948 w (data) 2407 3948 w (is) 2667 3948 w (communicated) 2797 3948 w (as) 3560 3948 w (a) 3716 3948 w (byte) 3821 3948 w (stream) 4079 3948 w (with) 4462 3948 w (a) 4717 3948 w (pre-) 4822 3948 w (defined) 720 4068 w (encoding) 1134 4068 w (for) 1628 4068 w (multi-byte) 1815 4068 w (values.) 2379 4068 w (In) 2796 4068 w (the) 2934 4068 w (rare) 3136 4068 w (cases) 3376 4068 w (where) 3687 4068 w (a) 4026 4068 w (format) 4128 4068 w (is) 4499 4068 w (complex) 4626 4068 w (enough to be defined by a data structure, the structure) 720 4188 w (is) 3432 4188 w (never) 3545 4188 w (communicated) 3845 4188 w (as) 4591 4188 w (a) 4730 4188 w (unit;) 4818 4188 w (instead,) 720 4308 w (it) 1140 4308 w (is) 1240 4308 w (decomposed) 1354 4308 w (into) 2006 4308 w (individual) 2229 4308 w (fields,) 2736 4308 w (encoded) 3067 4308 w (as) 3513 4308 w (an) 3653 4308 w (ordered) 3804 4308 w (byte) 4219 4308 w (stream,) 4461 4308 w (and) 4860 4308 w (then) 720 4428 w (reassembled) 979 4428 w (by) 1635 4428 w (the) 1792 4428 w (recipient.) 1989 4428 w (These) 2520 4428 w (conventions) 2851 4428 w (affect) 3478 4428 w (data) 3794 4428 w (ranging) 4047 4428 w (from) 4463 4428 w (kernel) 4738 4428 w (or) 720 4548 w (application) 867 4548 w (program) 1446 4548 w (state) 1907 4548 w (information) 2188 4548 w (to) 2800 4548 w (object) 2943 4548 w (file) 3286 4548 w (intermediates) 3482 4548 w (generated) 4192 4548 w (by) 4725 4548 w (the) 4885 4548 w (compiler.) 720 4668 w (Programs,) 970 4824 w (including) 1494 4824 w (the) 1976 4824 w (kernel,) 2164 4824 w (often) 2531 4824 w (present) 2817 4824 w (their) 3216 4824 w (data) 3474 4824 w (through) 3717 4824 w (a) 4137 4824 w (file) 4225 4824 w (system) 4409 4824 w (inter\255) 4782 4824 w (face,) 720 4944 w (an) 986 4944 w (access) 1138 4944 w (mechanism) 1488 4944 w (that) 2075 4944 w (is) 2301 4944 w (inherently) 2416 4944 w (portable.) 2937 4944 w (For) 3441 4944 w (example,) 3632 4944 w (the) 4112 4944 w (system) 4302 4944 w (clock) 4676 4944 w (is) 4960 4944 w (represented) 720 5064 w (by) 1350 5064 w (a) 1513 5064 w (decimal) 1616 5064 w (number) 2040 5064 w (in) 2466 5064 w (the) 2606 5064 w (file) 2810 5064 w 10 /LucidaTypewriter f (/dev/time) 3010 5064 w 10 /LucidaSansUnicode00 f (;) 3658 5064 w (the) 3739 5064 w 10 /LucidaTypewriter f (time) 3943 5064 w 10 /LucidaSansUnicode00 f (library) 4280 5064 w (function) 4639 5064 w (\(there) 720 5184 w (is) 1040 5184 w (no) 1155 5184 w 10 /LucidaTypewriter f (time) 1313 5184 w 10 /LucidaSansUnicode00 f (system) 1636 5184 w (call\)) 2011 5184 w (reads) 2243 5184 w (the) 2544 5184 w (file) 2734 5184 w (and) 2919 5184 w (converts) 3133 5184 w (it) 3578 5184 w (to) 3678 5184 w (binary.) 3810 5184 w (Similarly,) 4210 5184 w (instead) 4687 5184 w (of) 720 5304 w (encoding) 862 5304 w (the) 1352 5304 w (state) 1551 5304 w (of) 1831 5304 w (an) 1974 5304 w (application) 2136 5304 w (process) 2715 5304 w (in) 3134 5304 w (a) 3270 5304 w (series) 3370 5304 w (of) 3699 5304 w (flags) 3842 5304 w (and) 4121 5304 w (bits) 4346 5304 w (in) 4571 5304 w (private) 4707 5304 w (memory,) 720 5424 w (the) 1187 5424 w (kernel) 1381 5424 w (presents) 1722 5424 w (a) 2178 5424 w (text) 2272 5424 w (string) 2501 5424 w (in) 2821 5424 w (the) 2950 5424 w (file) 3143 5424 w (named) 3332 5424 w 10 /LucidaTypewriter f (status) 3699 5424 w 10 /LucidaSansUnicode00 f (in) 4169 5424 w (the) 4298 5424 w 10 /LucidaTypewriter f (/proc) 4491 5424 w 10 /LucidaSansUnicode00 f (file) 4889 5424 w (system) 720 5544 w (associated) 1106 5544 w (with) 1661 5544 w (each) 1912 5544 w (process.) 2182 5544 w (The) 2666 5544 w (Plan) 2893 5544 w (9) 3140 5544 w 10 /LucidaTypewriter f (ps) 3249 5544 w 10 /LucidaSansUnicode00 f (command) 3439 5544 w (is) 3964 5544 w (trivial:) 4091 5544 w (it) 4442 5544 w (prints) 4555 5544 w (the) 4885 5544 w (contents of the desired status files after some minor reformatting; moreover, after) 720 5664 w 9 /LucidaTypewriter f (import) 920 5834 w (helix) 1375 5834 w (/proc) 1765 5834 w 10 /LucidaSansUnicode00 f (a local) 720 6014 w 10 /LucidaTypewriter f (ps) 1064 6014 w 10 /LucidaSansUnicode00 f (command reports on the status of Helix) 1240 6014 w 10 /LucidaSansUnicode20 f (\031) 3178 6014 w 10 /LucidaSansUnicode00 f (s processes.) 3210 6014 w (Each) 970 6170 w (supported) 1245 6170 w (architecture) 1795 6170 w (has) 2426 6170 w (its) 2647 6170 w (own) 2818 6170 w (compilers) 3072 6170 w (and) 3600 6170 w (loader.) 3834 6170 w (The) 4257 6170 w (C) 4492 6170 w (and) 4615 6170 w (Alef) 4849 6170 w (compilers) 720 6290 w (produce) 1230 6290 w (intermediate) 1663 6290 w (files) 2312 6290 w (that) 2549 6290 w (are) 2775 6290 w (portably) 2962 6290 w (encoded;) 3398 6290 w (the) 3877 6290 w (contents) 4067 6290 w (are) 4519 6290 w (unique) 4706 6290 w (to) 720 6410 w (the) 856 6410 w (target) 1049 6410 w (architecture) 1375 6410 w (but) 1991 6410 w (the) 2191 6410 w (format) 2384 6410 w (of) 2746 6410 w (the) 2882 6410 w (file) 3075 6410 w (is) 3264 6410 w (independent) 3382 6410 w (of) 4029 6410 w (compiling) 4166 6410 w (proces\255) 4684 6410 w (sor) 720 6530 w (type.) 913 6530 w (When) 1225 6530 w (a) 1531 6530 w (compiler) 1626 6530 w (for) 2089 6530 w (a) 2268 6530 w (given) 2363 6530 w (architecture) 2663 6530 w (is) 3280 6530 w (compiled) 3399 6530 w (on) 3883 6530 w (another) 4045 6530 w (type) 4458 6530 w (of) 4705 6530 w (pro\255) 4842 6530 w (cessor) 720 6650 w (and) 1080 6650 w (then) 1309 6650 w (used) 1575 6650 w (to) 1856 6650 w (compile) 2003 6650 w (a) 2434 6650 w (program) 2538 6650 w (there,) 3003 6650 w (the) 3336 6650 w (intermediate) 3540 6650 w (produced) 4203 6650 w (on) 4712 6650 w (the) 4885 6650 w (new) 720 6770 w (architecture) 975 6770 w (is) 1613 6770 w (identical) 1753 6770 w (to) 2223 6770 w (the) 2380 6770 w (intermediate) 2594 6770 w (produced) 3267 6770 w (on) 3786 6770 w (the) 3968 6770 w (native) 4182 6770 w (processor.) 4532 6770 w (From the compiler) 720 6890 w 10 /LucidaSansUnicode20 f (\031) 1611 6890 w 10 /LucidaSansUnicode00 f (s point of view, every compilation is a cross-compilation.) 1643 6890 w (Although) 970 7046 w (each) 1467 7046 w (architecture) 1744 7046 w 10 /LucidaSansUnicode20 f (\031) 2322 7046 w 10 /LucidaSansUnicode00 f (s) 2354 7046 w (loader) 2458 7046 w (accepts) 2816 7046 w (only) 3233 7046 w (intermediate) 3490 7046 w (files) 4157 7046 w (produced) 4412 7046 w (by) 4925 7046 w (compilers) 720 7166 w (for) 1230 7166 w (that) 1405 7166 w (architecture,) 1632 7166 w (such) 2278 7166 w (files) 2540 7166 w (could) 2778 7166 w (have) 3080 7166 w (been) 3341 7166 w (generated) 3613 7166 w (by) 4136 7166 w (a) 4286 7166 w (compiler) 4376 7166 w (exe\255) 4834 7166 w (cuting) 720 7286 w (on) 1057 7286 w (any) 1214 7286 w (type) 1417 7286 w (of) 1659 7286 w (processor.) 1791 7286 w (For) 2365 7286 w (instance,) 2555 7286 w (it) 3024 7286 w (is) 3124 7286 w (possible) 3239 7286 w (to) 3677 7286 w (run) 3810 7286 w (the) 4010 7286 w (MIPS) 4200 7286 w (compiler) 4459 7286 w (on) 4917 7286 w cleartomark showpage saveobj restore %%EndPage: 10 10 %%Page: 11 11 /saveobj save def mark 11 pagesetup 10 /LucidaSansUnicode00 f (\255 11 \255) 2752 480 w (a 486, then use the MIPS loader on a SPARC to produce a MIPS executable.) 720 840 w (Since) 970 996 w (Plan) 1261 996 w (9) 1501 996 w (runs) 1603 996 w (on) 1858 996 w (a) 2020 996 w (variety) 2114 996 w (of) 2475 996 w (architectures,) 2612 996 w (even) 3312 996 w (in) 3577 996 w (a) 3707 996 w (single) 3801 996 w (installation,) 4129 996 w (distin\255) 4736 996 w (guishing) 720 1116 w (the) 1189 1116 w (compilers) 1394 1116 w (and) 1918 1116 w (intermediate) 2147 1116 w (names) 2810 1116 w (simplifies) 3176 1116 w (multi-architecture) 3692 1116 w (develop\255) 4627 1116 w (ment) 720 1236 w (from) 1006 1236 w (a) 1276 1236 w (single) 1369 1236 w (source) 1696 1236 w (tree.) 2056 1236 w (The) 2348 1236 w (compilers) 2567 1236 w (and) 3079 1236 w (the) 3297 1236 w (loader) 3490 1236 w (for) 3833 1236 w (each) 4010 1236 w (architecture) 4272 1236 w (are) 4888 1236 w (uniquely) 720 1356 w (named;) 1177 1356 w (there) 1580 1356 w (is) 1874 1356 w (no) 1996 1356 w 10 /LucidaTypewriter f (cc) 2161 1356 w 10 /LucidaSansUnicode00 f (command.) 2347 1356 w (The) 2931 1356 w (names) 3154 1356 w (are) 3513 1356 w (derived) 3707 1356 w (by) 4108 1356 w (concatenating) 4264 1356 w (a) 4985 1356 w (code) 720 1476 w (letter) 1004 1476 w (associated) 1313 1476 w (with) 1875 1476 w (the) 2133 1476 w (target) 2341 1476 w (architecture) 2682 1476 w (with) 3313 1476 w (the) 3571 1476 w (name) 3780 1476 w (of) 4100 1476 w (the) 4252 1476 w (compiler) 4461 1476 w (or) 4938 1476 w (loader.) 720 1596 w (For) 1123 1596 w (example,) 1313 1596 w (the) 1792 1596 w (letter) 1981 1596 w 10 /LucidaSansUnicode20 f (\030) 2271 1596 w 10 /LucidaSansUnicode00 f (8) 2303 1596 w 10 /LucidaSansUnicode20 f (\031) 2366 1596 w 10 /LucidaSansUnicode00 f (is) 2432 1596 w (the) 2546 1596 w (code) 2735 1596 w (letter) 3000 1596 w (for) 3289 1596 w (Intel) 3461 1596 w 10 /LucidaSans-Italic f (x) 3707 1596 w 10 /LucidaSansUnicode00 f (86) 3761 1596 w (processors;) 3920 1596 w (the) 4512 1596 w (C) 4700 1596 w (com\255) 4802 1596 w (piler) 720 1716 w (is) 984 1716 w (named) 1110 1716 w 10 /LucidaTypewriter f (8c) 1485 1716 w 10 /LucidaSansUnicode00 f (,) 1629 1716 w (the) 1707 1716 w (Alef) 1908 1716 w (compiler) 2145 1716 w 10 /LucidaTypewriter f (8al) 2614 1716 w 10 /LucidaSansUnicode00 f (,) 2830 1716 w (and) 2908 1716 w (the) 3134 1716 w (loader) 3335 1716 w (is) 3686 1716 w (called) 3812 1716 w 10 /LucidaTypewriter f (8l) 4141 1716 w 10 /LucidaSansUnicode00 f (.) 4285 1716 w (Similarly,) 4395 1716 w (the) 4885 1716 w (compiler intermediate files are suffixed) 720 1836 w 10 /LucidaTypewriter f (.8) 2667 1836 w 10 /LucidaSansUnicode00 f (, not) 2811 1836 w 10 /LucidaTypewriter f (.o) 3067 1836 w 10 /LucidaSansUnicode00 f (.) 3211 1836 w (The) 970 1992 w (Plan) 1192 1992 w (9) 1434 1992 w (build) 1538 1992 w (program) 1825 1992 w 10 /LucidaTypewriter f (mk) 2282 1992 w 10 /LucidaSansUnicode00 f (,) 2426 1992 w (a) 2499 1992 w (relative) 2595 1992 w (of) 2991 1992 w 10 /LucidaTypewriter f (make) 3130 1992 w 10 /LucidaSansUnicode00 f (,) 3418 1992 w (reads) 3491 1992 w (the) 3798 1992 w (names) 3994 1992 w (of) 4353 1992 w (the) 4493 1992 w (current) 4690 1992 w (and) 720 2112 w (target) 934 2112 w (architectures) 1256 2112 w (from) 1919 2112 w (environment) 2185 2112 w (variables) 2830 2112 w (called) 3294 2112 w 10 /LucidaTypewriter f ($cputype) 3610 2112 w 10 /LucidaSansUnicode00 f (and) 4219 2112 w 10 /LucidaTypewriter f ($objtype) 4432 2112 w 10 /LucidaSansUnicode00 f (.) 5008 2112 w (By) 720 2232 w (default) 876 2232 w (the) 1261 2232 w (current) 1462 2232 w (processor) 1858 2232 w (is) 2380 2232 w (the) 2506 2232 w (target,) 2707 2232 w (but) 3073 2232 w (setting) 3281 2232 w 10 /LucidaTypewriter f ($objtype) 3661 2232 w 10 /LucidaSansUnicode00 f (to) 4283 2232 w (the) 4427 2232 w (name) 4629 2232 w (of) 4942 2232 w (another architecture before invoking) 720 2352 w 10 /LucidaTypewriter f (mk) 2529 2352 w 10 /LucidaSansUnicode00 f (results in a cross-build:) 2705 2352 w 9 /LucidaTypewriter f (%) 920 2522 w (objtype=sparc) 1050 2522 w (mk) 1960 2522 w 10 /LucidaSansUnicode00 f (builds) 720 2702 w (a) 1057 2702 w (program) 1152 2702 w (for) 1608 2702 w (the) 1787 2702 w (SPARC) 1982 2702 w (architecture) 2332 2702 w (regardless) 2950 2702 w (of) 3495 2702 w (the) 3633 2702 w (executing) 3829 2702 w (machine.) 4346 2702 w (The) 4859 2702 w (value) 720 2822 w (of) 1026 2822 w 10 /LucidaTypewriter f ($objtype) 1176 2822 w 10 /LucidaSansUnicode00 f (selects) 1804 2822 w (a) 2187 2822 w (file) 2294 2822 w (of) 2497 2822 w (architecture-dependent) 2646 2822 w (variable) 3851 2822 w (definitions) 4282 2822 w (that) 4849 2822 w (configures) 720 2942 w (the) 1284 2942 w (build) 1491 2942 w (to) 1789 2942 w (use) 1939 2942 w (the) 2160 2942 w (appropriate) 2367 2942 w (compilers) 2983 2942 w (and) 3509 2942 w (loader.) 3742 2942 w (Although) 4164 2942 w (simple-) 4661 2942 w (minded,) 720 3062 w (this) 1156 3062 w (technique) 1373 3062 w (works) 1889 3062 w (well) 2215 3062 w (in) 2444 3062 w (practice:) 2573 3062 w (all) 3026 3062 w (applications) 3177 3062 w (in) 3800 3062 w (Plan) 3929 3062 w (9) 4168 3062 w (are) 4269 3062 w (built) 4459 3062 w (from) 4716 3062 w (a) 4985 3062 w (single) 720 3182 w (source) 1044 3182 w (tree) 1401 3182 w (and) 1626 3182 w (it) 1841 3182 w (is) 1942 3182 w (possible) 2057 3182 w (to) 2496 3182 w (build) 2630 3182 w (the) 2912 3182 w (various) 3103 3182 w (architectures) 3490 3182 w (in) 4155 3182 w (parallel) 4282 3182 w (without) 4675 3182 w (conflict.) 720 3302 w 10 /LucidaSans-Demi f (Parallel programming) 720 3542 w 10 /LucidaSansUnicode00 f (Plan) 970 3698 w (9) 1214 3698 w 10 /LucidaSansUnicode20 f (\031) 1277 3698 w 10 /LucidaSansUnicode00 f (s) 1309 3698 w (support) 1403 3698 w (for) 1824 3698 w (parallel) 2006 3698 w (programming) 2406 3698 w (has) 3111 3698 w (two) 3322 3698 w (aspects.) 3540 3698 w (First,) 4011 3698 w (the) 4298 3698 w (kernel) 4496 3698 w (pro\255) 4842 3698 w (vides) 720 3818 w (a) 1006 3818 w (simple) 1096 3818 w (process) 1452 3818 w (model) 1861 3818 w (and) 2198 3818 w (a) 2413 3818 w (few) 2502 3818 w (carefully) 2706 3818 w (designed) 3152 3818 w (system) 3628 3818 w (calls) 4002 3818 w (for) 4251 3818 w (synchroniza\255) 4424 3818 w (tion) 720 3938 w (and) 957 3938 w (sharing.) 1185 3938 w (Second,) 1659 3938 w (a) 2086 3938 w (new) 2189 3938 w (parallel) 2432 3938 w (programming) 2837 3938 w (language) 3547 3938 w (called) 4039 3938 w (Alef) 4371 3938 w (supports) 4611 3938 w (concurrent) 720 4058 w (programming.) 1279 4058 w (Although) 2040 4058 w (it) 2519 4058 w (is) 2620 4058 w (possible) 2735 4058 w (to) 3173 4058 w (write) 3306 4058 w (parallel) 3581 4058 w (programs) 3973 4058 w (in) 4475 4058 w (C,) 4600 4058 w (Alef) 4735 4058 w (is) 4960 4058 w (the parallel language of choice.) 720 4178 w (There) 970 4334 w (is) 1287 4334 w (a) 1406 4334 w (trend) 1500 4334 w (in) 1798 4334 w (new) 1928 4334 w (operating) 2162 4334 w (systems) 2667 4334 w (to) 3097 4334 w (implement) 3234 4334 w (two) 3791 4334 w (classes) 4005 4334 w (of) 4389 4334 w (processes:) 4527 4334 w (normal) 720 4454 w (UNIX-style) 1102 4454 w (processes) 1661 4454 w (and) 2183 4454 w (light-weight) 2404 4454 w (kernel) 3044 4454 w (threads.) 3386 4454 w (Instead,) 3855 4454 w (Plan) 4280 4454 w (9) 4521 4454 w (provides) 4624 4454 w (a) 720 4574 w (single) 813 4574 w (class) 1140 4574 w (of) 1415 4574 w (process) 1552 4574 w (but) 1965 4574 w (allows) 2166 4574 w (fine) 2507 4574 w (control) 2730 4574 w (of) 3111 4574 w (the) 3248 4574 w (sharing) 3442 4574 w (of) 3843 4574 w (a) 3980 4574 w (process) 4074 4574 w 10 /LucidaSansUnicode20 f (\031) 4448 4574 w 10 /LucidaSansUnicode00 f (s) 4480 4574 w (resources) 4570 4574 w (such) 720 4694 w (as) 982 4694 w (memory) 1124 4694 w (and) 1556 4694 w (file) 1772 4694 w (descriptors.) 1959 4694 w (A) 2603 4694 w (single) 2708 4694 w (class) 3033 4694 w (of) 3305 4694 w (process) 3438 4694 w (is) 3847 4694 w (a) 3962 4694 w (feasible) 4052 4694 w (approach) 4463 4694 w (in) 4949 4694 w (Plan) 720 4814 w (9) 962 4814 w (because) 1066 4814 w (the) 1501 4814 w (kernel) 1697 4814 w (has) 2040 4814 w (an) 2249 4814 w (efficient) 2407 4814 w (system) 2842 4814 w (call) 3223 4814 w (interface) 3428 4814 w (and) 3893 4814 w (cheap) 4114 4814 w (process) 4443 4814 w (cre\255) 4859 4814 w (ation and scheduling.) 720 4934 w (Parallel) 970 5090 w (programs) 1354 5090 w (have) 1856 5090 w (three) 2117 5090 w (basic) 2405 5090 w (requirements:) 2690 5090 w (management) 3405 5090 w (of) 4072 5090 w (resources) 4206 5090 w (shared) 4712 5090 w (between) 720 5210 w (processes,) 1172 5210 w (an) 1730 5210 w (interface) 1891 5210 w (to) 2359 5210 w (the) 2501 5210 w (scheduler,) 2700 5210 w (and) 3247 5210 w (fine-grain) 3471 5210 w (process) 4006 5210 w (synchroniza\255) 4424 5210 w (tion) 720 5330 w (using) 952 5330 w (spin) 1261 5330 w (locks.) 1509 5330 w (On) 1866 5330 w (Plan) 2049 5330 w (9,) 2293 5330 w (new) 2431 5330 w (processes) 2669 5330 w (are) 3193 5330 w (created) 3388 5330 w (using) 3790 5330 w (the) 4099 5330 w 10 /LucidaTypewriter f (rfork) 4297 5330 w 10 /LucidaSansUnicode00 f (system) 4700 5330 w (call.) 720 5450 w 10 /LucidaTypewriter f (Rfork) 998 5450 w 10 /LucidaSansUnicode00 f (takes) 1407 5450 w (a) 1713 5450 w (single) 1817 5450 w (argument,) 2155 5450 w (a) 2704 5450 w (bit) 2808 5450 w (vector) 2986 5450 w (that) 3333 5450 w (specifies) 3573 5450 w (which) 4045 5450 w (of) 4375 5450 w (the) 4522 5450 w (parent) 4726 5450 w (process) 720 5570 w 10 /LucidaSansUnicode20 f (\031) 1094 5570 w 10 /LucidaSansUnicode00 f (s) 1126 5570 w (resources) 1243 5570 w (should) 1779 5570 w (be) 2173 5570 w (shared,) 2358 5570 w (copied,) 2784 5570 w (or) 3205 5570 w (created) 3373 5570 w (anew) 3798 5570 w (in) 4114 5570 w (the) 4272 5570 w (child.) 4494 5570 w (The) 4859 5570 w (resources) 720 5690 w (controlled) 1254 5690 w (by) 1808 5690 w 10 /LucidaTypewriter f (rfork) 1987 5690 w 10 /LucidaSansUnicode00 f (include) 2411 5690 w (the) 2827 5690 w (name) 3046 5690 w (space,) 3376 5690 w (the) 3747 5690 w (environment,) 3965 5690 w (the) 4671 5690 w (file) 4889 5690 w (descriptor) 720 5810 w (table,) 1247 5810 w (memory) 1553 5810 w (segments,) 1983 5810 w (and) 2517 5810 w (notes) 2731 5810 w (\(Plan) 3032 5810 w (9) 3300 5810 w 10 /LucidaSansUnicode20 f (\031) 3363 5810 w 10 /LucidaSansUnicode00 f (s) 3395 5810 w (analog) 3480 5810 w (of) 3838 5810 w (UNIX) 3970 5810 w (signals\).) 4240 5810 w (One) 4711 5810 w (of) 4942 5810 w (the) 720 5930 w (bits) 914 5930 w (controls) 1133 5930 w (whether) 1565 5930 w (the) 1995 5930 w 10 /LucidaTypewriter f (rfork) 2189 5930 w 10 /LucidaSansUnicode00 f (call) 2588 5930 w (will) 2791 5930 w (create) 2994 5930 w (a) 3328 5930 w (new) 3421 5930 w (process;) 3654 5930 w (if) 4098 5930 w (the) 4202 5930 w (bit) 4395 5930 w (is) 4562 5930 w (off,) 4680 5930 w (the) 4885 5930 w (resulting modification) 720 6050 w (to) 1821 6050 w (the) 1952 6050 w (resources) 2140 6050 w (occurs) 2643 6050 w (in) 2993 6050 w (the) 3117 6050 w (process) 3305 6050 w (making) 3712 6050 w (the) 4104 6050 w (call.) 4292 6050 w (For) 4553 6050 w (exam\255) 4742 6050 w (ple,) 720 6170 w (a) 936 6170 w (process) 1027 6170 w (calls) 1437 6170 w 10 /LucidaTypewriter f (rfork\(RFNAMEG\)) 1688 6170 w 10 /LucidaSansUnicode00 f (to) 2732 6170 w (disconnect) 2866 6170 w (its) 3425 6170 w (name) 3578 6170 w (space) 3880 6170 w (from) 4192 6170 w (its) 4459 6170 w (parent) 4611 6170 w 10 /LucidaSansUnicode20 f (\031) 4925 6170 w 10 /LucidaSansUnicode00 f (s.) 4957 6170 w (Alef) 720 6290 w (uses) 953 6290 w (a) 1215 6290 w (fine-grained) 1312 6290 w (fork) 1964 6290 w (in) 2203 6290 w (which) 2336 6290 w (all) 2659 6290 w (the) 2814 6290 w (resources,) 3011 6290 w (including) 3555 6290 w (memory,) 4046 6290 w (are) 4517 6290 w (shared) 4712 6290 w (between parent and child, analogous to creating a kernel thread in many systems.) 720 6410 w (An) 970 6566 w (indication) 1134 6566 w (that) 1645 6566 w 10 /LucidaTypewriter f (rfork) 1869 6566 w 10 /LucidaSansUnicode00 f (is) 2262 6566 w (the) 2375 6566 w (right) 2563 6566 w (model) 2827 6566 w (is) 3162 6566 w (the) 3276 6566 w (variety) 3465 6566 w (of) 3821 6566 w (ways) 3953 6566 w (it) 4222 6566 w (is) 4322 6566 w (used.) 4436 6566 w (Other) 4766 6566 w (than) 720 6686 w (the) 972 6686 w (canonical) 1163 6686 w (use) 1653 6686 w (in) 1857 6686 w (the) 1983 6686 w (library) 2173 6686 w (routine) 2518 6686 w 10 /LucidaTypewriter f (fork) 2901 6686 w 10 /LucidaSansUnicode00 f (,) 3189 6686 w (it) 3256 6686 w (is) 3357 6686 w (hard) 3472 6686 w (to) 3728 6686 w (find) 3861 6686 w (two) 4087 6686 w (calls) 4297 6686 w (to) 4547 6686 w 10 /LucidaTypewriter f (rfork) 4680 6686 w 10 /LucidaSansUnicode00 f (with) 720 6806 w (the) 968 6806 w (same) 1166 6806 w (bits) 1464 6806 w (set;) 1687 6806 w (programs) 1906 6806 w (use) 2416 6806 w (it) 2628 6806 w (to) 2737 6806 w (create) 2878 6806 w (many) 3217 6806 w (different) 3523 6806 w (forms) 3985 6806 w (of) 4312 6806 w (sharing) 4454 6806 w (and) 4860 6806 w (resource) 720 6926 w (allocation.) 1181 6926 w (A) 1756 6926 w (system) 1867 6926 w (with) 2248 6926 w (just) 2494 6926 w (two) 2715 6926 w (types) 2931 6926 w (of) 3231 6926 w (processes) 3370 6926 w 10 /LucidaSansUnicode20 f (\024) 3851 6926 w 10 /LucidaSansUnicode00 f (regular) 3951 6926 w (processes) 4338 6926 w (and) 4860 6926 w (threads) 720 7046 w 10 /LucidaSansUnicode20 f (\024) 1085 7046 w 10 /LucidaSansUnicode00 f (could not handle this variety.) 1185 7046 w cleartomark showpage saveobj restore %%EndPage: 11 11 %%Page: 12 12 /saveobj save def mark 12 pagesetup 10 /LucidaSansUnicode00 f (\255 12 \255) 2752 480 w (There) 970 840 w (are) 1287 840 w (two) 1478 840 w (ways) 1693 840 w (to) 1968 840 w (share) 2106 840 w (memory.) 2411 840 w (First,) 2911 840 w (a) 3195 840 w (flag) 3290 840 w (to) 3513 840 w 10 /LucidaTypewriter f (rfork) 3651 840 w 10 /LucidaSansUnicode00 f (causes) 4051 840 w (all) 4417 840 w (the) 4570 840 w (mem\255) 4765 840 w (ory) 720 960 w (segments) 907 960 w (of) 1408 960 w (the) 1539 960 w (parent) 1727 960 w (to) 2074 960 w (be) 2205 960 w (shared with the child \(except the stack, which is forked) 2357 960 w (copy-on-write) 720 1080 w (regardless\).) 1474 1080 w (Alternatively,) 2124 1080 w (a) 2808 1080 w (new) 2911 1080 w (segment) 3154 1080 w (of) 3619 1080 w (memory) 3765 1080 w (may) 4209 1080 w (be) 4457 1080 w (attached) 4624 1080 w (using) 720 1200 w (the) 1024 1200 w 10 /LucidaTypewriter f (segattach) 1217 1200 w 10 /LucidaSansUnicode00 f (system) 1903 1200 w (call;) 2281 1200 w (such) 2515 1200 w (a) 2779 1200 w (segment) 2872 1200 w (will) 3326 1200 w (always) 3527 1200 w (be) 3883 1200 w (shared) 4039 1200 w (between) 4404 1200 w (par\255) 4848 1200 w (ent and child.) 720 1320 w (The) 970 1476 w 10 /LucidaTypewriter f (rendezvous) 1192 1476 w 10 /LucidaSansUnicode00 f (system) 1953 1476 w (call) 2334 1476 w (provides) 2539 1476 w (a) 2996 1476 w (way) 3092 1476 w (for) 3317 1476 w (processes) 3497 1476 w (to) 4019 1476 w (synchronize.) 4159 1476 w (Alef) 4849 1476 w (uses) 720 1596 w (it) 995 1596 w (to) 1116 1596 w (implement) 1269 1596 w (communication) 1842 1596 w (channels,) 2642 1596 w (queuing) 3156 1596 w (locks,) 3606 1596 w (multiple) 3942 1596 w (reader/writer) 4394 1596 w (locks,) 720 1716 w (and) 1049 1716 w (the) 1276 1716 w (sleep) 1478 1716 w (and) 1780 1716 w (wakeup) 2007 1716 w (mechanism.) 2426 1716 w 10 /LucidaTypewriter f (Rendezvous) 3090 1716 w 10 /LucidaSansUnicode00 f (takes) 3858 1716 w (two) 4163 1716 w (arguments,) 4386 1716 w (a) 4985 1716 w (tag) 720 1836 w (and) 915 1836 w (a) 1136 1836 w (value.) 1232 1836 w (When) 1591 1836 w (a) 1897 1836 w (process) 1992 1836 w (calls) 2406 1836 w 10 /LucidaTypewriter f (rendezvous) 2661 1836 w 10 /LucidaSansUnicode00 f (with) 3421 1836 w (a) 3666 1836 w (tag) 3761 1836 w (it) 3955 1836 w (sleeps) 4061 1836 w (until) 4407 1836 w (another) 4666 1836 w (process) 720 1956 w (presents) 1131 1956 w (a) 1585 1956 w (matching) 1677 1956 w (tag.) 2165 1956 w (When) 2420 1956 w (a) 2723 1956 w (pair) 2815 1956 w (of) 3040 1956 w (tags) 3175 1956 w (match,) 3418 1956 w (the) 3786 1956 w (values) 3979 1956 w (are) 4322 1956 w (exchanged) 4512 1956 w (between) 720 2076 w (the) 1164 2076 w (two) 1356 2076 w (processes) 1568 2076 w (and) 2086 2076 w (both) 2303 2076 w 10 /LucidaTypewriter f (rendezvous) 2563 2076 w 10 /LucidaSansUnicode00 f (calls) 3319 2076 w (return.) 3570 2076 w (This) 3969 2076 w (primitive) 4210 2076 w (is) 4675 2076 w (suffi\255) 4791 2076 w (cient to implement the full set of synchronization routines.) 720 2196 w (Finally,) 970 2352 w (spin) 1352 2352 w (locks) 1597 2352 w (are) 1887 2352 w (provided) 2079 2352 w (by) 2547 2352 w (an) 2702 2352 w (architecture-dependent) 2859 2352 w (library) 4053 2352 w (at) 4403 2352 w (user) 4535 2352 w (level.) 4786 2352 w (Most) 720 2472 w (processors) 991 2472 w (provide) 1554 2472 w (atomic) 1955 2472 w (test) 2317 2472 w (and) 2534 2472 w (set) 2750 2472 w (instructions) 2930 2472 w (that) 3539 2472 w (can) 3765 2472 w (be) 3968 2472 w (used) 4122 2472 w (to) 4389 2472 w (implement) 4522 2472 w (locks.) 720 2592 w (A) 1073 2592 w (notable) 1182 2592 w (exception) 1585 2592 w (is) 2101 2592 w (the) 2221 2592 w (MIPS) 2416 2592 w (R3000,) 2680 2592 w (so) 3067 2592 w (the) 3219 2592 w (SGI) 3414 2592 w (Power) 3609 2592 w (series) 3939 2592 w (multiprocessors) 4263 2592 w (have) 720 2712 w (special) 979 2712 w (lock) 1347 2712 w (hardware) 1580 2712 w (on) 2064 2712 w (the) 2221 2712 w (bus.) 2410 2712 w (User) 2684 2712 w (processes) 2935 2712 w (gain) 3450 2712 w (access) 3691 2712 w (to) 4039 2712 w (the) 4170 2712 w (lock) 4358 2712 w (hardware) 4590 2712 w (by) 720 2832 w (mapping) 881 2832 w (pages) 1354 2832 w (of) 1687 2832 w (hardware) 1831 2832 w (locks) 2327 2832 w (into) 2623 2832 w (their) 2858 2832 w (address) 3129 2832 w (space) 3555 2832 w (using) 3877 2832 w (the) 4190 2832 w 10 /LucidaTypewriter f (segattach) 4392 2832 w 10 /LucidaSansUnicode00 f (system call.) 720 2952 w (A) 970 3108 w (Plan) 1078 3108 w (9) 1318 3108 w (process) 1420 3108 w (in) 1833 3108 w (a) 1963 3108 w (system) 2057 3108 w (call) 2437 3108 w (will) 2641 3108 w (block) 2845 3108 w (regardless) 3147 3108 w (of) 3692 3108 w (its) 3830 3108 w 10 /LucidaSansUnicode20 f (\030) 3987 3108 w 10 /LucidaSansUnicode00 f (weight) 4019 3108 w 10 /LucidaSansUnicode20 f (\031) 4342 3108 w 10 /LucidaSansUnicode00 f (.) 4374 3108 w (This) 4478 3108 w (means) 4723 3108 w (that) 720 3228 w (when) 949 3228 w (a) 1244 3228 w (program) 1337 3228 w (wishes) 1791 3228 w (to) 2155 3228 w (read) 2291 3228 w (from) 2544 3228 w (a) 2814 3228 w (slow) 2907 3228 w (device) 3163 3228 w (without) 3508 3228 w (blocking) 3910 3228 w (the) 4362 3228 w (entire) 4554 3228 w (cal\255) 4872 3228 w (culation,) 720 3348 w (it) 1176 3348 w (must) 1280 3348 w (fork) 1562 3348 w (a) 1798 3348 w (process) 1892 3348 w (to) 2305 3348 w (do) 2442 3348 w (the) 2605 3348 w (read) 2799 3348 w (for) 3053 3348 w (it.) 3231 3348 w (The) 3400 3348 w (solution) 3620 3348 w (is) 4051 3348 w (to) 4170 3348 w (start) 4307 3348 w (a) 4567 3348 w (satellite) 4661 3348 w (process) 720 3468 w (that) 1132 3468 w (does) 1361 3468 w (the) 1630 3468 w (I/O) 1823 3468 w (and) 2021 3468 w (delivers) 2239 3468 w (the) 2654 3468 w (answer) 2847 3468 w (to) 3227 3468 w (the) 3363 3468 w (main) 3556 3468 w (program) 3833 3468 w (through) 4287 3468 w (shared) 4712 3468 w (memory) 720 3588 w (or) 1168 3588 w (perhaps) 1322 3588 w (a) 1765 3588 w (pipe.) 1872 3588 w (This) 2199 3588 w (sounds) 2457 3588 w (onerous) 2860 3588 w (but) 3307 3588 w (works) 3522 3588 w (easily) 3863 3588 w (and) 4188 3588 w (efficiently) 4421 3588 w (in) 4949 3588 w (practice;) 720 3708 w (in) 1174 3708 w (fact,) 1304 3708 w (most) 1555 3708 w (interactive) 1836 3708 w (Plan) 2380 3708 w (9) 2619 3708 w (applications,) 2720 3708 w (even) 3375 3708 w (relatively) 3639 3708 w (ordinary) 4113 3708 w (ones) 4555 3708 w (writ\255) 4823 3708 w (ten in C, such as the text editor Sam [Pike87], run as multiprocess programs.) 720 3828 w (The) 970 3984 w (kernel) 1197 3984 w (support) 1546 3984 w (for) 1971 3984 w (parallel) 2157 3984 w (programming) 2561 3984 w (in) 3270 3984 w (Plan) 3408 3984 w (9) 3656 3984 w (is) 3766 3984 w (a) 3893 3984 w (few) 3995 3984 w (hundred) 4212 3984 w (lines) 4668 3984 w (of) 4942 3984 w (portable) 720 4104 w (code;) 1160 4104 w (a) 1458 4104 w (handful) 1548 4104 w (of) 1953 4104 w (simple) 2086 4104 w (primitives) 2442 4104 w (enable) 2957 4104 w (the) 3313 4104 w (problems) 3503 4104 w (to) 3995 4104 w (be) 4128 4104 w (handled) 4282 4104 w (cleanly) 4706 4104 w (at) 720 4224 w (user) 848 4224 w (level.) 1095 4224 w (Although) 1418 4224 w (the) 1899 4224 w (primitives) 2091 4224 w (work) 2608 4224 w (fine) 2882 4224 w (from) 3103 4224 w (C,) 3372 4224 w (they) 3510 4224 w (are) 3754 4224 w (particularly) 3943 4224 w (expressive) 4524 4224 w (from) 720 4344 w (within) 985 4344 w (Alef.) 1314 4344 w (The) 1602 4344 w (creation) 1816 4344 w (and) 2241 4344 w (management of slave I/O processes can be written in) 2454 4344 w (a) 720 4464 w (few) 808 4464 w (lines) 1011 4464 w (of) 1271 4464 w (Alef,) 1403 4464 w (providing) 1660 4464 w (the) 2156 4464 w (foundation) 2345 4464 w (for) 2908 4464 w (a) 3081 4464 w (consistent) 3170 4464 w (means) 3701 4464 w (of) 4052 4464 w (multiplexing) 4184 4464 w (data) 4830 4464 w (flows) 720 4584 w (between) 1010 4584 w (arbitrary) 1452 4584 w (processes.) 1901 4584 w (Moreover,) 2481 4584 w (implementing) 3002 4584 w (it) 3707 4584 w (in) 3807 4584 w (a) 3932 4584 w (language) 4021 4584 w (rather) 4498 4584 w (than) 4824 4584 w (in the kernel ensures consistent semantics between all devices and provides a) 720 4704 w (more) 4543 4704 w (gen\255) 4827 4704 w (eral) 720 4824 w (multiplexing) 950 4824 w (primitive.) 1610 4824 w (Compare) 2151 4824 w (this) 2637 4824 w (to) 2864 4824 w (the) 3010 4824 w (UNIX) 3213 4824 w 10 /LucidaTypewriter f (select) 3496 4824 w 10 /LucidaSansUnicode00 f (system) 3976 4824 w (call:) 4364 4824 w 10 /LucidaTypewriter f (select) 4608 4824 w 10 /LucidaSansUnicode00 f (applies) 720 4944 w (only) 1104 4944 w (to) 1346 4944 w (a) 1482 4944 w (restricted) 1575 4944 w (set) 2075 4944 w (of) 2257 4944 w (devices,) 2393 4944 w (legislates) 2821 4944 w (a) 3314 4944 w (style) 3407 4944 w (of) 3670 4944 w (multiprogramming) 3806 4944 w (in) 4756 4944 w (the) 4885 4944 w (kernel, does not extend across networks, is difficult to implement, and is hard to use.) 720 5064 w (Another) 970 5220 w (reason) 1395 5220 w (parallel) 1758 5220 w (programming) 2152 5220 w (is) 2851 5220 w (important) 2968 5220 w (in) 3483 5220 w (Plan) 3612 5220 w (9) 3851 5220 w (is) 3952 5220 w (that) 4070 5220 w (multi-threaded) 4299 5220 w (user-level) 720 5340 w (file) 1255 5340 w (servers) 1451 5340 w (are) 1844 5340 w (the) 2041 5340 w (preferred) 2241 5340 w (way) 2739 5340 w (to) 2967 5340 w (implement) 3109 5340 w (services.) 3671 5340 w (Examples) 4166 5340 w (of) 4672 5340 w (such) 4814 5340 w (servers) 720 5460 w (include) 1101 5460 w (the) 1486 5460 w (programming) 1674 5460 w (environment) 2369 5460 w (Acme) 3013 5460 w ([Pike94],) 3315 5460 w (the) 3770 5460 w (name) 3958 5460 w (space) 4258 5460 w (exporting) 4568 5460 w (tool) 720 5580 w 10 /LucidaTypewriter f (exportfs) 951 5580 w 10 /LucidaSansUnicode00 f ([PPTTW93],) 1570 5580 w (the) 2159 5580 w (HTTP) 2357 5580 w (daemon,) 2655 5580 w (and) 3120 5580 w (the) 3343 5580 w (network) 3541 5580 w (name) 3976 5580 w (servers) 4284 5580 w 10 /LucidaTypewriter f (cs) 4674 5580 w 10 /LucidaSansUnicode00 f (and) 4860 5580 w 10 /LucidaTypewriter f (dns) 720 5700 w 10 /LucidaSansUnicode00 f ([PrWi93].) 974 5700 w (Complex) 1479 5700 w (applications) 1949 5700 w (such) 2572 5700 w (as) 2836 5700 w (Acme) 2980 5700 w (prove) 3287 5700 w (that) 3598 5700 w (careful) 3827 5700 w (operating) 4196 5700 w (system) 4700 5700 w (support) 720 5820 w (can) 1136 5820 w (reduce) 1342 5820 w (the) 1709 5820 w (difficulty) 1902 5820 w (of) 2366 5820 w (writing) 2502 5820 w (multi-threaded) 2877 5820 w (applications) 3656 5820 w (without) 4279 5820 w (moving) 4681 5820 w (threading and synchronization primitives into the kernel.) 720 5940 w 10 /LucidaSans-Demi f (Implementation of Name Spaces) 720 6180 w 10 /LucidaSansUnicode00 f (User) 970 6336 w (processes) 1237 6336 w (construct) 1769 6336 w (name) 2273 6336 w (spaces) 2590 6336 w (using) 2968 6336 w (three) 3285 6336 w (system) 3588 6336 w (calls:) 3979 6336 w 10 /LucidaTypewriter f (mount) 4277 6336 w 10 /LucidaSansUnicode00 f (,) 4637 6336 w 10 /LucidaTypewriter f (bind) 4720 6336 w 10 /LucidaSansUnicode00 f (,) 5008 6336 w (and) 720 6456 w 10 /LucidaTypewriter f (unmount) 946 6456 w 10 /LucidaSansUnicode00 f (.) 1450 6456 w (The) 1560 6456 w 10 /LucidaTypewriter f (mount) 1787 6456 w 10 /LucidaSansUnicode00 f (system) 2193 6456 w (call) 2579 6456 w (attaches) 2789 6456 w (a) 3239 6456 w (tree) 3340 6456 w (served) 3576 6456 w (by) 3941 6456 w (a) 4102 6456 w (file) 4203 6456 w (server) 4400 6456 w (to) 4742 6456 w (the) 4885 6456 w (current) 720 6576 w (name) 1109 6576 w (space.) 1414 6576 w (Before) 1793 6576 w (calling) 2141 6576 w 10 /LucidaTypewriter f (mount) 2497 6576 w 10 /LucidaSansUnicode00 f (,) 2857 6576 w (the) 2928 6576 w (client) 3122 6576 w (must) 3425 6576 w (\(by) 3707 6576 w (outside) 3894 6576 w (means\)) 4293 6576 w (acquire) 4683 6576 w (a) 720 6696 w (connection) 815 6696 w (to) 1386 6696 w (the) 1523 6696 w (server) 1717 6696 w (in) 2053 6696 w (the) 2183 6696 w (form) 2377 6696 w (of) 2648 6696 w (a) 2785 6696 w (file) 2879 6696 w (descriptor) 3069 6696 w (that) 3601 6696 w (may) 3831 6696 w (be) 4070 6696 w (written) 4228 6696 w (and) 4606 6696 w (read) 4825 6696 w (to transmit 9P messages.) 720 6816 w (That file descriptor represents a pipe or network connection.) 2008 6816 w (The) 970 6972 w 10 /LucidaTypewriter f (mount) 1193 6972 w 10 /LucidaSansUnicode00 f (call) 1595 6972 w (attaches) 1801 6972 w (a) 2247 6972 w (new) 2344 6972 w (hierarchy) 2581 6972 w (to) 3072 6972 w (the) 3212 6972 w (existing) 3409 6972 w (name) 3838 6972 w (space.) 4146 6972 w (The) 4528 6972 w 10 /LucidaTypewriter f (bind) 4752 6972 w 10 /LucidaSansUnicode00 f (system) 720 7092 w (call,) 1094 7092 w (on) 1324 7092 w (the) 1481 7092 w (other) 1670 7092 w (hand,) 1961 7092 w (duplicates) 2269 7092 w (some) 2799 7092 w (piece) 3094 7092 w (of) 3382 7092 w (existing) 3513 7092 w (name) 3933 7092 w (space) 4232 7092 w (at) 4541 7092 w (another) 4666 7092 w (point in the name space.) 720 7212 w (The) 1984 7212 w 10 /LucidaTypewriter f (unmount) 2197 7212 w 10 /LucidaSansUnicode00 f (system call allows components to be removed.) 2733 7212 w cleartomark showpage saveobj restore %%EndPage: 12 12 %%Page: 13 13 /saveobj save def mark 13 pagesetup 10 /LucidaSansUnicode00 f (\255 13 \255) 2752 480 w (Using) 970 840 w (either) 1277 840 w 10 /LucidaTypewriter f (bind) 1592 840 w 10 /LucidaSansUnicode00 f (or) 1914 840 w 10 /LucidaTypewriter f (mount) 2050 840 w 10 /LucidaSansUnicode00 f (,) 2410 840 w (multiple) 2476 840 w (directories) 2908 840 w (may) 3457 840 w (be) 3691 840 w (stacked) 3844 840 w (at) 4249 840 w (a) 4375 840 w (single) 4464 840 w (point) 4788 840 w (in) 720 960 w (the) 848 960 w (name) 1040 960 w (space.) 1343 960 w (In) 1719 960 w (Plan) 1846 960 w (9) 2083 960 w (terminology,) 2182 960 w (this) 2833 960 w (is) 3048 960 w (a) 3164 960 w 10 /LucidaSans-Italic f (union) 3255 960 w 10 /LucidaSansUnicode00 f (directory) 3563 960 w (and) 4030 960 w (behaves) 4246 960 w (like) 4677 960 w (the) 4885 960 w (concatenation) 720 1080 w (of) 1455 1080 w (the) 1609 1080 w (constituent) 1820 1080 w (directories.) 2421 1080 w (A) 3056 1080 w (flag) 3181 1080 w (argument) 3420 1080 w (to) 3944 1080 w 10 /LucidaTypewriter f (bind) 4098 1080 w 10 /LucidaSansUnicode00 f (and) 4443 1080 w 10 /LucidaTypewriter f (mount) 4680 1080 w 10 /LucidaSansUnicode00 f (specifies) 720 1200 w (the) 1190 1200 w (position) 1392 1200 w (of) 1832 1200 w (a) 1977 1200 w (new) 2079 1200 w (directory) 2321 1200 w (in) 2799 1200 w (the) 2937 1200 w (union,) 3139 1200 w (permitting) 3494 1200 w (new) 4050 1200 w (elements) 4291 1200 w (to) 4777 1200 w (be) 4921 1200 w (added either at the front or rear of the union or to replace it) 720 1320 w (entirely.) 3676 1320 w (When) 4135 1320 w (a) 4434 1320 w (file) 4522 1320 w (lookup) 4706 1320 w (is) 720 1440 w (performed) 838 1440 w (in) 1387 1440 w (a) 1515 1440 w (union) 1607 1440 w (directory,) 1920 1440 w (each) 2420 1440 w (component) 2681 1440 w (of) 3264 1440 w (the) 3399 1440 w (union) 3591 1440 w (is) 3904 1440 w (searched) 4021 1440 w (in) 4493 1440 w (turn) 4621 1440 w (and) 4860 1440 w (the) 720 1560 w (first) 916 1560 w (match) 1152 1560 w (taken;) 1491 1560 w (likewise,) 1832 1560 w (when) 2290 1560 w (a) 2588 1560 w (union) 2684 1560 w (directory) 3001 1560 w (is) 3473 1560 w (read,) 3594 1560 w (the) 3882 1560 w (contents) 4078 1560 w (of) 4536 1560 w (each) 4676 1560 w (of) 4942 1560 w (the) 720 1680 w (component) 913 1680 w (directories) 1497 1680 w (is) 2050 1680 w (read) 2168 1680 w (in) 2420 1680 w (turn.) 2548 1680 w (Union) 2851 1680 w (directories) 3171 1680 w (are) 3723 1680 w (one) 3912 1680 w (of) 4128 1680 w (the) 4263 1680 w (most) 4455 1680 w (widely) 4734 1680 w (used) 720 1800 w (organizational) 1010 1800 w (features) 1763 1800 w (of) 2216 1800 w (the) 2372 1800 w (Plan) 2585 1800 w (9) 2844 1800 w (name) 2965 1800 w (space.) 3289 1800 w (For) 3687 1800 w (instance,) 3901 1800 w (the) 4395 1800 w (directory) 4609 1800 w 10 /LucidaTypewriter f (/bin) 720 1920 w 10 /LucidaSansUnicode00 f (is) 1063 1920 w (built) 1198 1920 w (as) 1473 1920 w (a) 1633 1920 w (union) 1742 1920 w (of) 2072 1920 w 10 /LucidaTypewriter f (/$cputype/bin) 2224 1920 w 10 /LucidaSansUnicode00 f (\(program) 3214 1920 w (binaries\),) 3717 1920 w 10 /LucidaTypewriter f (/rc/bin) 4222 1920 w 10 /LucidaSansUnicode00 f (\(shell) 4780 1920 w (scripts\),) 720 2040 w (and) 1153 2040 w (perhaps) 1378 2040 w (more) 1814 2040 w (directories) 2110 2040 w (provided) 2670 2040 w (by) 3143 2040 w (the) 3304 2040 w (user.) 3505 2040 w (This) 3825 2040 w (construction) 4076 2040 w (makes) 4727 2040 w (the shell) 720 2160 w 10 /LucidaTypewriter f ($PATH) 1166 2160 w 10 /LucidaSansUnicode00 f (variable unnecessary.) 1558 2160 w (One) 970 2316 w (question) 1206 2316 w (raised) 1667 2316 w (by) 2002 2316 w (union) 2157 2316 w (directories) 2473 2316 w (is) 3028 2316 w (which) 3148 2316 w (element) 3470 2316 w (of) 3900 2316 w (the) 4039 2316 w (union) 4235 2316 w (receives) 4552 2316 w (a) 4985 2316 w (newly) 720 2436 w (created) 1029 2436 w (file.) 1421 2436 w (After) 1669 2436 w (several) 1942 2436 w (designs,) 2315 2436 w (we) 2754 2436 w (decided) 2920 2436 w (on) 3334 2436 w (the) 3490 2436 w (following.) 3678 2436 w (By default, direc\255) 4222 2436 w (tories) 720 2556 w (in) 1028 2556 w (unions) 1152 2556 w (do) 1512 2556 w (not) 1670 2556 w (accept) 1864 2556 w (new) 2211 2556 w (files,) 2440 2556 w (although) 2708 2556 w (the) 3172 2556 w 10 /LucidaTypewriter f (create) 3361 2556 w 10 /LucidaSansUnicode00 f (system) 3827 2556 w (call) 4201 2556 w (applied) 4399 2556 w (to) 4791 2556 w (an) 4923 2556 w (existing) 720 2676 w (file) 1143 2676 w (succeeds) 1330 2676 w (normally.) 1807 2676 w (When) 2329 2676 w (a) 2631 2676 w (directory) 2722 2676 w (is) 3189 2676 w (added) 3305 2676 w (to) 3641 2676 w (the) 3775 2676 w (union,) 3966 2676 w (a) 4310 2676 w (flag) 4401 2676 w (to) 4619 2676 w 10 /LucidaTypewriter f (bind) 4752 2676 w 10 /LucidaSansUnicode00 f (or) 720 2796 w 10 /LucidaTypewriter f (mount) 866 2796 w 10 /LucidaSansUnicode00 f (enables) 1270 2796 w (create) 1686 2796 w (permission) 2026 2796 w (\(a) 2606 2796 w (property) 2738 2796 w (of) 3197 2796 w (the) 3340 2796 w (name) 3540 2796 w (space\)) 3851 2796 w (in) 4205 2796 w (that) 4341 2796 w (directory.) 4577 2796 w (When) 720 2916 w (a) 1026 2916 w (file) 1121 2916 w (is) 1311 2916 w (being) 1430 2916 w (created) 1741 2916 w (with) 2139 2916 w (a) 2383 2916 w (new) 2477 2916 w (name) 2711 2916 w (in) 3016 2916 w (a) 3146 2916 w (union,) 3240 2916 w (it) 3587 2916 w (is) 3692 2916 w (created) 3811 2916 w (in) 4209 2916 w (the) 4339 2916 w (first) 4533 2916 w (direc\255) 4767 2916 w (tory) 720 3036 w (of) 950 3036 w (the) 1087 3036 w (union) 1281 3036 w (with) 1596 3036 w (create) 1840 3036 w (permission;) 2175 3036 w (if) 2782 3036 w (that) 2887 3036 w (creation) 3117 3036 w (fails,) 3548 3036 w (the) 3820 3036 w (entire) 4014 3036 w 10 /LucidaTypewriter f (create) 4335 3036 w 10 /LucidaSansUnicode00 f (fails.) 4807 3036 w (This) 720 3156 w (scheme) 960 3156 w (enables) 1364 3156 w (the) 1770 3156 w (common) 1959 3156 w (use) 2414 3156 w (of) 2617 3156 w (placing) 2749 3156 w (a) 3134 3156 w (private) 3223 3156 w (directory) 3590 3156 w (anywhere) 4055 3156 w (in) 4550 3156 w (a) 4675 3156 w (union) 4764 3156 w (of public ones, while allowing creation only in the private directory.) 720 3276 w (By convention, kernel device) 970 3432 w (file) 2383 3432 w (systems) 2567 3432 w (are) 2991 3432 w (bound) 3176 3432 w (into) 3520 3432 w (the) 3742 3432 w 10 /LucidaTypewriter f (/dev) 3930 3432 w 10 /LucidaSansUnicode00 f (directory,) 4251 3432 w (but) 4747 3432 w (to) 4942 3432 w (bootstrap) 720 3552 w (the) 1232 3552 w (name) 1430 3552 w (space) 1739 3552 w (building) 2058 3552 w (process) 2500 3552 w (it) 2917 3552 w (is) 3025 3552 w (necessary) 3147 3552 w (to) 3664 3552 w (have) 3804 3552 w (a) 4071 3552 w (notation) 4168 3552 w (that) 4614 3552 w (per\255) 4847 3552 w (mits) 720 3672 w (direct) 967 3672 w (access) 1281 3672 w (to) 1633 3672 w (the) 1768 3672 w (devices) 1960 3672 w (without) 2355 3672 w (an) 2757 3672 w (existing) 2911 3672 w (name) 3335 3672 w (space.) 3638 3672 w (The) 4016 3672 w (root) 4235 3672 w (directory) 4473 3672 w (of) 4942 3672 w (the) 720 3792 w (tree) 923 3792 w (served) 1161 3792 w (by) 1528 3792 w (a) 1691 3792 w (device) 1794 3792 w (driver) 2149 3792 w (can) 2479 3792 w (be) 2694 3792 w (accessed) 2860 3792 w (using) 3341 3792 w (the) 3654 3792 w (syntax) 3856 3792 w 10 /LucidaTypewriter f (#) 4221 3792 w 10 /LucidaSans-Italic f (c) 4293 3792 w 10 /LucidaSansUnicode00 f (,) 4343 3792 w (where) 4422 3792 w 10 /LucidaSans-Italic f (c) 4761 3792 w 10 /LucidaSansUnicode00 f (is) 4858 3792 w (a) 4985 3792 w (unique) 720 3912 w (character) 1106 3912 w (\(typically) 1607 3912 w (a) 2089 3912 w (letter\)) 2196 3912 w (identifying) 2537 3912 w (the) 3107 3912 w 10 /LucidaSans-Italic f (type) 3314 3912 w 10 /LucidaSansUnicode00 f (of) 3573 3912 w (the) 3724 3912 w (device.) 3932 3912 w (Simple) 4356 3912 w (device) 4733 3912 w (drivers) 720 4032 w (serve) 1094 4032 w (a) 1391 4032 w (single) 1487 4032 w (level) 1817 4032 w (directory) 2080 4032 w (containing) 2552 4032 w (a) 3102 4032 w (few) 3197 4032 w (files.) 3407 4032 w (As) 3713 4032 w (an) 3873 4032 w (example,) 4030 4032 w (each) 4515 4032 w (serial) 4779 4032 w (port is represented by a data and a control file:) 720 4152 w 9 /LucidaTypewriter f (%) 920 4322 w (bind) 1050 4322 w (-a) 1375 4322 w ('#t') 1570 4322 w (/dev) 1895 4322 w (%) 920 4432 w (cd) 1050 4432 w (/dev) 1245 4432 w (%) 920 4542 w (ls) 1050 4542 w (-l) 1245 4542 w (eia*) 1440 4542 w (--rw-rw-rw-) 920 4652 w (t) 1700 4652 w (0) 1830 4652 w (bootes) 1960 4652 w (bootes) 2415 4652 w (0) 2870 4652 w (Feb) 3000 4652 w (24) 3260 4652 w (21:14) 3455 4652 w (eia1) 3845 4652 w (--rw-rw-rw-) 920 4762 w (t) 1700 4762 w (0) 1830 4762 w (bootes) 1960 4762 w (bootes) 2415 4762 w (0) 2870 4762 w (Feb) 3000 4762 w (24) 3260 4762 w (21:14) 3455 4762 w (eia1ctl) 3845 4762 w (--rw-rw-rw-) 920 4872 w (t) 1700 4872 w (0) 1830 4872 w (bootes) 1960 4872 w (bootes) 2415 4872 w (0) 2870 4872 w (Feb) 3000 4872 w (24) 3260 4872 w (21:14) 3455 4872 w (eia2) 3845 4872 w (--rw-rw-rw-) 920 4982 w (t) 1700 4982 w (0) 1830 4982 w (bootes) 1960 4982 w (bootes) 2415 4982 w (0) 2870 4982 w (Feb) 3000 4982 w (24) 3260 4982 w (21:14) 3455 4982 w (eia2ctl) 3845 4982 w 10 /LucidaSansUnicode00 f (The) 720 5162 w 10 /LucidaTypewriter f (bind) 943 5162 w 10 /LucidaSansUnicode00 f (program) 1273 5162 w (is) 1732 5162 w (an) 1855 5162 w (encapsulation) 2015 5162 w (of) 2731 5162 w (the) 2872 5162 w 10 /LucidaTypewriter f (bind) 3070 5162 w 10 /LucidaSansUnicode00 f (system) 3401 5162 w (call;) 3784 5162 w (its) 4023 5162 w 10 /LucidaTypewriter f (-a) 4183 5162 w 10 /LucidaSansUnicode00 f (flag) 4370 5162 w (positions) 4596 5162 w (the) 720 5282 w (new) 913 5282 w (directory) 1146 5282 w (at) 1615 5282 w (the) 1745 5282 w (end) 1938 5282 w (of) 2157 5282 w (the) 2292 5282 w (union.) 2484 5282 w (The) 2861 5282 w (data) 3079 5282 w (files) 3326 5282 w 10 /LucidaTypewriter f (eia1) 3565 5282 w 10 /LucidaSansUnicode00 f (and) 3890 5282 w 10 /LucidaTypewriter f (eia2) 4107 5282 w 10 /LucidaSansUnicode00 f (may) 4432 5282 w (be) 4669 5282 w (read) 4825 5282 w (and) 720 5402 w (written) 938 5402 w (to) 1315 5402 w (communicate) 1451 5402 w (over) 2139 5402 w (the) 2387 5402 w (serial) 2580 5402 w (line.) 2879 5402 w (Instead) 3157 5402 w (of) 3548 5402 w (using) 3684 5402 w (special) 3989 5402 w (operations) 4362 5402 w (on) 4917 5402 w (these) 720 5522 w (files) 1054 5522 w (to) 1328 5522 w (control) 1498 5522 w (the) 1912 5522 w (devices,) 2139 5522 w (commands) 2601 5522 w (written) 3202 5522 w (to) 3613 5522 w (the) 3783 5522 w (files) 4010 5522 w 10 /LucidaTypewriter f (eia1ctl) 4284 5522 w 10 /LucidaSansUnicode00 f (and) 4860 5522 w 10 /LucidaTypewriter f (eia2ctl) 720 5642 w 10 /LucidaSansUnicode00 f (control) 1257 5642 w (the) 1632 5642 w (corresponding) 1820 5642 w (device;) 2556 5642 w (for) 2928 5642 w (example,) 3100 5642 w (writing) 3579 5642 w (the) 3950 5642 w (text) 4139 5642 w (string) 4364 5642 w 10 /LucidaTypewriter f (b1200) 4680 5642 w 10 /LucidaSansUnicode00 f (to) 720 5762 w 10 /LucidaTypewriter f (/dev/eia1ctl) 851 5762 w 10 /LucidaSansUnicode00 f (sets) 1748 5762 w (the) 1976 5762 w (speed) 2164 5762 w (of) 2486 5762 w (that) 2617 5762 w (line) 2841 5762 w (to) 3050 5762 w (1200) 3181 5762 w (baud.) 3466 5762 w (Compare) 3806 5762 w (this to the UNIX) 4277 5762 w 10 /LucidaTypewriter f (ioctl) 720 5882 w 10 /LucidaSansUnicode00 f (system) 1121 5882 w (call:) 1502 5882 w (in) 1739 5882 w (Plan) 1871 5882 w (9,) 2113 5882 w (devices) 2249 5882 w (are) 2649 5882 w (controlled) 2843 5882 w (by) 3375 5882 w (textual) 3532 5882 w (messages,) 3911 5882 w (free) 4460 5882 w (of) 4692 5882 w (byte) 4832 5882 w (order) 720 6002 w (problems,) 1016 6002 w (with) 1539 6002 w (clear) 1778 6002 w (semantics) 2044 6002 w (for) 2562 6002 w (reading) 2734 6002 w (and) 3135 6002 w (writing.) 3348 6002 w (It) 3782 6002 w (is) 3881 6002 w (common) 3994 6002 w (to) 4448 6002 w (configure) 4579 6002 w (or debug devices using shell scripts.) 720 6122 w (It) 970 6278 w (is) 1099 6278 w (the) 1242 6278 w (universal) 1460 6278 w (use) 1960 6278 w (of) 2192 6278 w (the) 2353 6278 w (9P) 2571 6278 w (protocol) 2752 6278 w (that) 3219 6278 w (connects) 3473 6278 w (Plan) 3968 6278 w (9) 4233 6278 w 10 /LucidaSansUnicode20 f (\031) 4296 6278 w 10 /LucidaSansUnicode00 f (s) 4328 6278 w (components) 4443 6278 w (together) 720 6398 w (to) 1167 6398 w (form) 1300 6398 w (a) 1567 6398 w (distributed) 1657 6398 w (system.) 2223 6398 w (Rather) 2662 6398 w (than) 3011 6398 w (inventing) 3262 6398 w (a) 3748 6398 w (unique) 3837 6398 w (protocol) 4205 6398 w (for) 4643 6398 w (each) 4816 6398 w (service) 720 6518 w (such) 1110 6518 w (as) 1390 6518 w 10 /LucidaTypewriter f (rlogin) 1550 6518 w 10 /LucidaSansUnicode00 f (,) 1982 6518 w (FTP,) 2068 6518 w (TFTP,) 2327 6518 w (and) 2649 6518 w (X) 2884 6518 w (windows,) 3002 6518 w (Plan) 3509 6518 w (9) 3765 6518 w (implements) 3883 6518 w (services) 4507 6518 w (in) 4949 6518 w (terms) 720 6638 w (of) 1031 6638 w (operations) 1162 6638 w (on) 1711 6638 w (file) 1867 6638 w (objects,) 2051 6638 w (and) 2465 6638 w (then) 2678 6638 w (uses) 2928 6638 w (a single, well-documented protocol to) 3181 6638 w (exchange) 720 6758 w (information) 1224 6758 w (between) 1830 6758 w (computers.) 2276 6758 w (Unlike) 2894 6758 w (NFS,) 3236 6758 w (9P) 3489 6758 w (treats) 3646 6758 w (files) 3962 6758 w (as) 4204 6758 w (a) 4350 6758 w (sequence) 4445 6758 w (of) 4942 6758 w (bytes) 720 6878 w (rather) 1018 6878 w (than) 1349 6878 w (blocks.) 1604 6878 w (Also) 2020 6878 w (unlike) 2269 6878 w (NFS,) 2604 6878 w (9P) 2857 6878 w (is) 3014 6878 w (stateful:) 3133 6878 w (clients) 3568 6878 w (perform) 3922 6878 w (remote) 4353 6878 w (proce\255) 4735 6878 w (dure) 720 6998 w (calls) 982 6998 w (to) 1237 6998 w (establish) 1375 6998 w (pointers) 1848 6998 w (to) 2288 6998 w (objects) 2426 6998 w (in) 2815 6998 w (the) 2946 6998 w (remote) 3141 6998 w (file) 3525 6998 w (server.) 3716 6998 w (These) 4118 6998 w (pointers) 4447 6998 w (are) 4888 6998 w (called) 720 7118 w (file) 1042 7118 w (identifiers) 1232 7118 w (or) 1761 7118 w 10 /LucidaSans-Italic f (fids) 1902 7118 w 10 /LucidaSansUnicode00 f (.) 2079 7118 w (All) 2181 7118 w (operations) 2346 7118 w (on) 2900 7118 w (files) 3061 7118 w (supply) 3301 7118 w (a) 3659 7118 w (fid) 3752 7118 w (to) 3919 7118 w (identify) 4055 7118 w (an) 4458 7118 w (object) 4613 7118 w (in) 4949 7118 w (the remote file system.) 720 7238 w cleartomark showpage saveobj restore %%EndPage: 13 13 %%Page: 14 14 /saveobj save def mark 14 pagesetup 10 /LucidaSansUnicode00 f (\255 14 \255) 2752 480 w (The) 970 840 w (9P) 1185 840 w (protocol) 1337 840 w (defines) 1775 840 w (17) 2163 840 w (messages,) 2323 840 w (providing) 2865 840 w (means) 3362 840 w (to) 3714 840 w (authenticate) 3847 840 w (users,) 4481 840 w (navi\255) 4809 840 w (gate) 720 960 w (fids) 972 960 w (around) 1194 960 w (a) 1580 960 w (file) 1677 960 w (system) 1869 960 w (hierarchy,) 2250 960 w (copy) 2772 960 w (fids,) 3040 960 w (perform) 3293 960 w (I/O,) 3726 960 w (change) 3959 960 w (file) 4348 960 w (attributes,) 4540 960 w (and) 720 1080 w (create) 983 1080 w (and) 1362 1080 w (delete) 1626 1080 w (files.) 2007 1080 w (Its) 2357 1080 w (complete) 2558 1080 w (specification) 3088 1080 w (is) 3783 1080 w (in) 3947 1080 w (Section) 4122 1080 w (5) 4556 1080 w (of) 4703 1080 w (the) 4885 1080 w (Programmer) 720 1200 w 10 /LucidaSansUnicode20 f (\031) 1318 1200 w 10 /LucidaSansUnicode00 f (s) 1350 1200 w (Manual) 1438 1200 w ([9man].) 1824 1200 w (Here) 2264 1200 w (is) 2528 1200 w (the) 2645 1200 w (procedure) 2837 1200 w (to) 3367 1200 w (gain) 3501 1200 w (access) 3745 1200 w (to) 4096 1200 w (the) 4230 1200 w (name) 4421 1200 w (hierar\255) 4723 1200 w (chy) 720 1320 w (supplied) 927 1320 w (by) 1385 1320 w (a) 1542 1320 w (server.) 1639 1320 w (A) 2042 1320 w (file) 2153 1320 w (server) 2346 1320 w (connection) 2685 1320 w (is) 3259 1320 w (established) 3381 1320 w (via) 3975 1320 w (a) 4153 1320 w (pipe) 4250 1320 w (or) 4503 1320 w (network) 4648 1320 w (connection.) 720 1440 w (An) 1361 1440 w (initial) 1537 1440 w 10 /LucidaTypewriter f (session) 1852 1440 w 10 /LucidaSansUnicode00 f (message) 2401 1440 w (performs) 2870 1440 w (a) 3357 1440 w (bilateral) 3456 1440 w (authentication) 3894 1440 w (between) 4633 1440 w (client) 720 1560 w (and) 1024 1560 w (server.) 1244 1560 w (An) 1645 1560 w 10 /LucidaTypewriter f (attach) 1816 1560 w 10 /LucidaSansUnicode00 f (message) 2288 1560 w (then) 2752 1560 w (connects) 3009 1560 w (a) 3480 1560 w (fid) 3575 1560 w (suggested) 3744 1560 w (by) 4285 1560 w (the) 4441 1560 w (client) 4637 1560 w (to) 4942 1560 w (the) 720 1680 w (root) 915 1680 w (of) 1155 1680 w (the) 1292 1680 w (server) 1486 1680 w (file) 1822 1680 w (tree.) 2012 1680 w (The) 2305 1680 w 10 /LucidaTypewriter f (attach) 2525 1680 w 10 /LucidaSansUnicode00 f (message) 2996 1680 w (includes) 3459 1680 w (the) 3901 1680 w (identity) 4095 1680 w (of) 4499 1680 w (the) 4636 1680 w (user) 4830 1680 w (performing the attach; henceforth all fids derived from the) 720 1800 w (root) 3603 1800 w (fid) 3836 1800 w (will) 3998 1800 w (have) 4195 1800 w (permissions) 4453 1800 w (associated) 720 1920 w (with) 1267 1920 w (that) 1510 1920 w (user.) 1738 1920 w (Multiple) 2049 1920 w (users) 2477 1920 w (may) 2775 1920 w (share) 3012 1920 w (the) 3314 1920 w (connection,) 3506 1920 w (but) 4107 1920 w (each) 4306 1920 w (must) 4567 1920 w (per\255) 4847 1920 w (form an attach to establish his or her identity.) 720 2040 w (The) 970 2196 w 10 /LucidaTypewriter f (walk) 1186 2196 w 10 /LucidaSansUnicode00 f (message) 1509 2196 w (moves) 1969 2196 w (a) 2318 2196 w (fid) 2409 2196 w (through) 2574 2196 w (a) 2997 2196 w (single) 3088 2196 w (level) 3413 2196 w (of) 3671 2196 w (the) 3805 2196 w (file) 3996 2196 w (system) 4183 2196 w (hierarchy.) 4559 2196 w (The) 720 2316 w 10 /LucidaTypewriter f (clone) 947 2316 w 10 /LucidaSansUnicode00 f (message) 1353 2316 w (takes) 1823 2316 w (an) 2126 2316 w (established) 2289 2316 w (fid) 2887 2316 w (and) 3062 2316 w (produces) 3288 2316 w (a) 3782 2316 w (copy) 3883 2316 w (that) 4156 2316 w (points) 4393 2316 w (to) 4742 2316 w (the) 4885 2316 w (same) 720 2436 w (file) 1009 2436 w (as) 1194 2436 w (the) 1334 2436 w (original.) 1523 2436 w (Its) 1989 2436 w (purpose) 2141 2436 w (is) 2573 2436 w (to) 2688 2436 w (enable) 2821 2436 w (walking) 3177 2436 w (to) 3584 2436 w (a) 3717 2436 w (file) 3807 2436 w (in) 3993 2436 w (a) 4119 2436 w (directory) 4209 2436 w (without) 4675 2436 w (losing) 720 2556 w (the) 1057 2556 w (fid) 1255 2556 w (on) 1427 2556 w (the) 1593 2556 w (directory.) 1791 2556 w (The) 2329 2556 w 10 /LucidaTypewriter f (open) 2553 2556 w 10 /LucidaSansUnicode00 f (message) 2884 2556 w (locks) 3351 2556 w (a) 3644 2556 w (fid) 3742 2556 w (to) 3913 2556 w (a) 4053 2556 w (specific) 4150 2556 w (file) 4559 2556 w (in) 4752 2556 w (the) 4885 2556 w (hierarchy,) 720 2676 w (checks) 1257 2676 w (access) 1642 2676 w (permissions,) 2013 2676 w (and) 2688 2676 w (prepares) 2924 2676 w (the) 3406 2676 w (fid) 3617 2676 w (for) 3802 2676 w (I/O.) 3997 2676 w (The) 4277 2676 w 10 /LucidaTypewriter f (read) 4515 2676 w 10 /LucidaSansUnicode00 f (and) 4860 2676 w 10 /LucidaTypewriter f (write) 720 2796 w 10 /LucidaSansUnicode00 f (messages) 1114 2796 w (allow) 1623 2796 w (I/O) 1908 2796 w (at) 2102 2796 w (arbitrary) 2228 2796 w (offsets) 2676 2796 w (in) 3039 2796 w (the) 3163 2796 w (file;) 3351 2796 w (the) 3567 2796 w (maximum) 3755 2796 w (size) 4274 2796 w (transferred) 4500 2796 w (is) 720 2916 w (defined) 837 2916 w (by) 1240 2916 w (the) 1392 2916 w (protocol.) 1584 2916 w (The) 2089 2916 w 10 /LucidaTypewriter f (clunk) 2307 2916 w 10 /LucidaSansUnicode00 f (message) 2704 2916 w (indicates) 3165 2916 w (the) 3635 2916 w (client) 3828 2916 w (has) 4130 2916 w (no) 4336 2916 w (further) 4497 2916 w (use) 4871 2916 w (for) 720 3036 w (a) 892 3036 w (fid.) 980 3036 w (The) 1206 3036 w 10 /LucidaTypewriter f (remove) 1420 3036 w 10 /LucidaSansUnicode00 f (message) 1885 3036 w (behaves) 2342 3036 w (like) 2770 3036 w 10 /LucidaTypewriter f (clunk) 2975 3036 w 10 /LucidaSansUnicode00 f (but) 3368 3036 w (causes) 3563 3036 w (the) 3922 3036 w (file) 4110 3036 w (associated with) 4294 3036 w (the fid to be removed and any associated resources on the server to be deallocated.) 720 3156 w (9P) 970 3312 w (has) 1126 3312 w (two) 1332 3312 w (forms:) 1545 3312 w (RPC) 1898 3312 w (messages) 2123 3312 w (sent) 2636 3312 w (on) 2880 3312 w (a) 3042 3312 w (pipe) 3136 3312 w (or) 3386 3312 w (network) 3527 3312 w (connection) 3958 3312 w (and) 4529 3312 w (a) 4748 3312 w (pro\255) 4842 3312 w (cedural) 720 3432 w (interface) 1114 3432 w (within) 1575 3432 w (the) 1908 3432 w (kernel.) 2100 3432 w (Since) 2503 3432 w (kernel) 2792 3432 w (device) 3131 3432 w (drivers) 3474 3432 w (are) 3843 3432 w (directly) 4031 3432 w (addressable,) 4425 3432 w (there) 720 3552 w (is) 1009 3552 w (no) 1126 3552 w (need) 1286 3552 w (to) 1560 3552 w (pass) 1695 3552 w (messages) 1952 3552 w (to) 2464 3552 w (communicate) 2599 3552 w (with) 3286 3552 w (them;) 3528 3552 w (instead) 3846 3552 w (each) 4237 3552 w (9P) 4499 3552 w (transac\255) 4655 3552 w (tion) 720 3672 w (is) 942 3672 w (implemented) 1055 3672 w (by) 1725 3672 w (a) 1873 3672 w (direct) 1961 3672 w (procedure) 2271 3672 w (call.) 2798 3672 w (For) 3059 3672 w (each) 3248 3672 w (fid,) 3505 3672 w (the) 3699 3672 w (kernel) 3887 3672 w (maintains) 4222 3672 w (a local) 4728 3672 w (representation) 720 3792 w (in) 1464 3792 w (a) 1593 3792 w (data) 1686 3792 w (structure) 1934 3792 w (called) 2410 3792 w (a) 2731 3792 w 10 /LucidaSans-Italic f (channel) 2824 3792 w 10 /LucidaSansUnicode00 f (,) 3203 3792 w (so) 3273 3792 w (all) 3423 3792 w (operations) 3574 3792 w (on) 4128 3792 w (files) 4289 3792 w (performed) 4529 3792 w (by) 720 3912 w (the) 879 3912 w (kernel) 1077 3912 w (involve) 1422 3912 w (a) 1806 3912 w (channel) 1904 3912 w (connected) 2324 3912 w (to) 2866 3912 w (that) 3007 3912 w (fid.) 3241 3912 w (The) 3477 3912 w (simplest) 3701 3912 w (example) 4153 3912 w (is) 4609 3912 w (a) 4732 3912 w (user) 4830 3912 w (process) 720 4032 w 10 /LucidaSansUnicode20 f (\031) 1094 4032 w 10 /LucidaSansUnicode00 f (s) 1126 4032 w (file) 1222 4032 w (descriptors,) 1418 4032 w (which) 2039 4032 w (are) 2365 4032 w (indexes) 2562 4032 w (into) 2985 4032 w (an) 3219 4032 w (array) 3381 4032 w (of) 3670 4032 w (channels.) 3813 4032 w (A) 4350 4032 w (table) 4464 4032 w (in) 4749 4032 w (the) 4885 4032 w (kernel) 720 4152 w (provides) 1056 4152 w (a) 1506 4152 w (list) 1595 4152 w (of) 1775 4152 w (entry) 1907 4152 w (points) 2189 4152 w (corresponding) 2525 4152 w (one) 3261 4152 w (to) 3473 4152 w (one) 3604 4152 w (with) 3816 4152 w (the) 4054 4152 w (9P) 4242 4152 w (messages) 4393 4152 w (for) 4901 4152 w (each) 720 4272 w (device.) 977 4272 w (A) 1381 4272 w (system) 1484 4272 w (call) 1858 4272 w (such) 2056 4272 w (as) 2316 4272 w 10 /LucidaTypewriter f (read) 2456 4272 w 10 /LucidaSansUnicode00 f (from) 2778 4272 w (the) 3044 4272 w (user) 3233 4272 w (translates) 3477 4272 w (into) 3985 4272 w (one) 4208 4272 w (or) 4421 4272 w (more) 4557 4272 w (pro\255) 4842 4272 w (cedure) 720 4392 w (calls) 1099 4392 w (through) 1364 4392 w (that) 1801 4392 w (table,) 2042 4392 w (indexed) 2364 4392 w (by) 2804 4392 w (the) 2969 4392 w (type) 3174 4392 w (character) 3431 4392 w (stored) 3929 4392 w (in) 4287 4392 w (the) 4427 4392 w (channel:) 4631 4392 w 10 /LucidaTypewriter f (procread) 720 4512 w 10 /LucidaSansUnicode00 f (,) 1296 4512 w 10 /LucidaTypewriter f (eiaread) 1376 4512 w 10 /LucidaSansUnicode00 f (,) 1880 4512 w (etc.) 1960 4512 w (Each) 2216 4512 w (call) 2486 4512 w (takes) 2698 4512 w (at) 3003 4512 w (least) 3143 4512 w (one) 3419 4512 w (channel) 3646 4512 w (as) 4071 4512 w (an) 4225 4512 w (argument.) 4390 4512 w (A) 4971 4512 w (special) 720 4632 w (kernel) 1102 4632 w (driver,) 1451 4632 w (called) 1812 4632 w (the) 2142 4632 w 10 /LucidaSans-Italic f (mount) 2344 4632 w 10 /LucidaSansUnicode00 f (driver,) 2703 4632 w (translates) 3064 4632 w (procedure) 3585 4632 w (calls) 4126 4632 w (to) 4388 4632 w (messages,) 4533 4632 w (that) 720 4752 w (is,) 959 4752 w (it) 1119 4752 w (converts) 1233 4752 w (local) 1692 4752 w (procedure) 1965 4752 w (calls) 2507 4752 w (to) 2770 4752 w (remote) 2916 4752 w (ones.) 3309 4752 w (In) 3652 4752 w (effect,) 3792 4752 w (this) 4147 4752 w (special) 4375 4752 w (driver) 4758 4752 w (becomes) 720 4872 w (a) 1190 4872 w (local) 1284 4872 w (proxy) 1548 4872 w (for) 1865 4872 w (the) 2043 4872 w (files) 2237 4872 w (served) 2478 4872 w (by) 2836 4872 w (a) 2990 4872 w (remote) 3084 4872 w (file) 3467 4872 w (server.) 3657 4872 w (The) 4057 4872 w (channel) 4276 4872 w (pointer) 4691 4872 w (in the local call is translated to the associated fid in the transmitted message.) 720 4992 w (The) 970 5148 w (mount) 1185 5148 w (driver) 1534 5148 w (is) 1850 5148 w (the) 1964 5148 w (sole) 2153 5148 w (RPC) 2384 5148 w (mechanism) 2605 5148 w (employed) 3191 5148 w (by) 3698 5148 w (the) 3847 5148 w (system.) 4036 5148 w (The) 4474 5148 w (seman\255) 4690 5148 w (tics) 720 5268 w (of) 923 5268 w (the) 1056 5268 w (supplied) 1246 5268 w (files,) 1697 5268 w (rather) 1966 5268 w (than) 2293 5268 w (the) 2544 5268 w (operations) 2734 5268 w (performed) 3285 5268 w (upon) 3831 5268 w (them,) 4114 5268 w (create) 4429 5268 w (a) 4759 5268 w (par\255) 4848 5268 w (ticular) 720 5388 w (service) 1075 5388 w (such) 1462 5388 w (as) 1739 5388 w (the) 1896 5388 w 10 /LucidaTypewriter f (cpu) 2103 5388 w 10 /LucidaSansUnicode00 f (command.) 2371 5388 w (The) 2965 5388 w (mount) 3198 5388 w (driver) 3565 5388 w (demultiplexes) 3899 5388 w (protocol) 4636 5388 w (messages) 720 5508 w (between) 1231 5508 w (clients) 1674 5508 w (sharing) 2025 5508 w (a) 2423 5508 w (communication) 2514 5508 w (channel) 3296 5508 w (with) 3709 5508 w (a) 3950 5508 w (file) 4041 5508 w (server.) 4228 5508 w (For) 4625 5508 w (each) 4816 5508 w (outgoing) 720 5628 w (RPC) 1202 5628 w (message,) 1435 5628 w (the) 1937 5628 w (mount) 2138 5628 w (driver) 2499 5628 w (allocates) 2827 5628 w (a) 3297 5628 w (buffer) 3398 5628 w (labeled) 3740 5628 w (by) 4138 5628 w (a) 4300 5628 w (small) 4402 5628 w (unique) 4706 5628 w (integer,) 720 5748 w (called) 1128 5748 w (a) 1444 5748 w 10 /LucidaSans-Italic f (tag) 1532 5748 w 10 /LucidaSansUnicode00 f (.) 1692 5748 w (The) 1789 5748 w (reply to the RPC is labeled with the same tag, which is used by) 2003 5748 w (the mount driver to match the reply with the request.) 720 5868 w (The) 970 6024 w (kernel) 1209 6024 w (representation) 1569 6024 w (of) 2334 6024 w (the) 2490 6024 w (name) 2703 6024 w (space) 3027 6024 w (is) 3361 6024 w (called) 3499 6024 w (the) 3841 6024 w 10 /LucidaSans-Italic f (mount) 4055 6024 w (table) 4426 6024 w 10 /LucidaSansUnicode00 f (,) 4668 6024 w (which) 4759 6024 w (stores) 720 6144 w (a) 1050 6144 w (list of bindings between channels.) 1138 6144 w (Each entry in the mount table contains a pair) 2862 6144 w (of) 720 6264 w (channels:) 857 6264 w (a) 1356 6264 w 10 /LucidaSans-Italic f (from) 1450 6264 w 10 /LucidaSansUnicode00 f (channel) 1725 6264 w (and) 2141 6264 w (a) 2360 6264 w 10 /LucidaSans-Italic f (to) 2454 6264 w 10 /LucidaSansUnicode00 f (channel.) 2589 6264 w (Every) 3070 6264 w (time) 3365 6264 w (a) 3620 6264 w (walk) 3715 6264 w (succeeds) 3974 6264 w (in) 4455 6264 w (moving) 4586 6264 w (a) 4985 6264 w (channel) 720 6384 w (to) 1141 6384 w (a) 1283 6384 w (new) 1382 6384 w (location) 1621 6384 w (in) 2050 6384 w (the) 2185 6384 w (name) 2384 6384 w (space,) 2694 6384 w (the) 3046 6384 w (mount) 3245 6384 w (table) 3604 6384 w (is) 3888 6384 w (consulted) 4012 6384 w (to) 4528 6384 w (see) 4670 6384 w (if) 4876 6384 w (a) 4985 6384 w 10 /LucidaSansUnicode20 f (\030) 720 6504 w 10 /LucidaSansUnicode00 f (from) 752 6504 w 10 /LucidaSansUnicode20 f (\031) 984 6504 w 10 /LucidaSansUnicode00 f (channel) 1058 6504 w (matches) 1477 6504 w (the) 1924 6504 w (new) 2121 6504 w (name;) 2358 6504 w (if) 2698 6504 w (so) 2806 6504 w (the) 2960 6504 w 10 /LucidaSansUnicode20 f (\030) 3157 6504 w 10 /LucidaSansUnicode00 f (to) 3189 6504 w 10 /LucidaSansUnicode20 f (\031) 3287 6504 w 10 /LucidaSansUnicode00 f (channel) 3361 6504 w (is) 3781 6504 w (cloned) 3904 6504 w (and) 4269 6504 w (substituted) 4492 6504 w (for) 720 6624 w (the) 893 6624 w (original.) 1082 6624 w (Union) 1548 6624 w (directories) 1865 6624 w (are) 2414 6624 w (implemented) 2600 6624 w (by) 3271 6624 w (converting) 3420 6624 w (the) 3967 6624 w 10 /LucidaSansUnicode20 f (\030) 4156 6624 w 10 /LucidaSansUnicode00 f (to) 4188 6624 w 10 /LucidaSansUnicode20 f (\031) 4286 6624 w 10 /LucidaSansUnicode00 f (channel) 4352 6624 w (into) 4763 6624 w (a) 4985 6624 w (list) 720 6744 w (of) 903 6744 w (channels:) 1038 6744 w (a) 1535 6744 w (successful) 1627 6744 w (walk) 2165 6744 w (to) 2421 6744 w (a) 2556 6744 w (union) 2649 6744 w (directory) 2963 6744 w (returns) 3432 6744 w (a) 3820 6744 w 10 /LucidaSansUnicode20 f (\030) 3913 6744 w 10 /LucidaSansUnicode00 f (to) 3945 6744 w 10 /LucidaSansUnicode20 f (\031) 4043 6744 w 10 /LucidaSansUnicode00 f (channel) 4113 6744 w (that) 4528 6744 w (forms) 4757 6744 w (the) 720 6864 w (head) 912 6864 w (of) 1184 6864 w (a) 1318 6864 w (list) 1409 6864 w (of) 1591 6864 w (channels,) 1725 6864 w (each) 2221 6864 w (representing) 2481 6864 w (a) 3133 6864 w (component) 3224 6864 w (directory) 3806 6864 w (of) 4273 6864 w (the) 4407 6864 w (union.) 4598 6864 w (If) 4974 6864 w (a) 720 6984 w (walk) 812 6984 w (fails) 1068 6984 w (to) 1307 6984 w (find) 1443 6984 w (a) 1672 6984 w (file) 1765 6984 w (in) 1954 6984 w (the) 2083 6984 w (first) 2276 6984 w (directory) 2509 6984 w (of) 2978 6984 w (the) 3114 6984 w (union,) 3307 6984 w (the) 3653 6984 w (list) 3846 6984 w (is) 4030 6984 w (followed,) 4148 6984 w (the) 4631 6984 w (next) 4824 6984 w (component cloned, and walk tried on that directory.) 720 7104 w cleartomark showpage saveobj restore %%EndPage: 14 14 %%Page: 15 15 /saveobj save def mark 15 pagesetup 10 /LucidaSansUnicode00 f (\255 15 \255) 2752 480 w (Each file in Plan 9 is uniquely) 970 840 w (identified) 2418 840 w (by) 2912 840 w (a) 3060 840 w (set) 3148 840 w (of) 3325 840 w (integers:) 3456 840 w (the) 3915 840 w (type) 4103 840 w (of) 4344 840 w (the) 4475 840 w (channel) 4663 840 w (\(used) 720 960 w (as) 1019 960 w (the) 1159 960 w (index) 1348 960 w (of) 1653 960 w (the) 1785 960 w (function) 1974 960 w (call) 2409 960 w (table\),) 2607 960 w (the) 2946 960 w (server) 3135 960 w (or) 3465 960 w (device) 3600 960 w (number) 3940 960 w (distinguishing) 4350 960 w (the) 720 1080 w (server) 908 1080 w (from) 1238 1080 w (others) 1503 1080 w (of) 1844 1080 w (the) 1975 1080 w (same) 2163 1080 w (type) 2452 1080 w (\(decided) 2694 1080 w (locally) 3142 1080 w (by) 3482 1080 w (the) 3631 1080 w (driver\),) 3820 1080 w (and) 4201 1080 w (a) 4415 1080 w 10 /LucidaSans-Italic f (qid) 4504 1080 w 10 /LucidaSansUnicode00 f (formed) 4689 1080 w (from) 720 1200 w (two) 1001 1200 w (32-bit) 1225 1200 w (numbers) 1587 1200 w (called) 2064 1200 w 10 /LucidaSans-Italic f (path) 2395 1200 w 10 /LucidaSansUnicode00 f (and) 2665 1200 w 10 /LucidaSans-Italic f (version) 2893 1200 w 10 /LucidaSansUnicode00 f (.) 3245 1200 w (The) 3357 1200 w (path) 3586 1200 w (is) 3851 1200 w (a) 3979 1200 w (unique) 4082 1200 w (file) 4464 1200 w (number) 4663 1200 w (assigned) 720 1320 w (by) 1188 1320 w (a) 1342 1320 w (device) 1436 1320 w (driver) 1782 1320 w (or) 2103 1320 w (file) 2244 1320 w (server) 2434 1320 w (when) 2770 1320 w (a) 3066 1320 w (file) 3160 1320 w (is) 3350 1320 w (created.) 3469 1320 w (The) 3931 1320 w (version) 4151 1320 w (number) 4543 1320 w (is) 4960 1320 w (updated) 720 1440 w (whenever) 1160 1440 w (the) 1663 1440 w (file) 1859 1440 w (is) 2051 1440 w (modified;) 2172 1440 w (as) 2675 1440 w (described) 2821 1440 w (in) 3334 1440 w (the) 3465 1440 w (next) 3660 1440 w (section,) 3916 1440 w (it) 4335 1440 w (can) 4441 1440 w (be) 4649 1440 w (used) 4808 1440 w (to maintain cache coherency between clients and servers.) 720 1560 w (The) 970 1716 w (type) 1191 1716 w (and) 1439 1716 w (device) 1660 1716 w (number) 2008 1716 w (are) 2426 1716 w (analogous) 2619 1716 w (to) 3158 1716 w (UNIX) 3297 1716 w (major) 3573 1716 w (and) 3894 1716 w (minor) 4115 1716 w (device) 4442 1716 w (num\255) 4790 1716 w (bers;) 720 1836 w (the) 998 1836 w (qid) 1188 1836 w (is) 1378 1836 w (analogous) 1493 1836 w (to) 2026 1836 w (the) 2159 1836 w (i-number.) 2349 1836 w (The) 2912 1836 w (device) 3128 1836 w (and) 3470 1836 w (type) 3685 1836 w (connect) 3928 1836 w (the) 4342 1836 w (channel) 4531 1836 w (to) 4942 1836 w (a device driver and the) 720 1956 w (qid) 1860 1956 w (identifies) 2048 1956 w (the) 2530 1956 w (file) 2718 1956 w (within) 2902 1956 w (that) 3231 1956 w (device.) 3455 1956 w (If) 3827 1956 w (the) 3926 1956 w (file) 4114 1956 w (recovered) 4298 1956 w (from) 4808 1956 w (a) 720 2076 w (walk) 813 2076 w (has) 1070 2076 w (the) 1276 2076 w (same) 1469 2076 w (type,) 1762 2076 w (device,) 2040 2076 w (and) 2417 2076 w (qid) 2635 2076 w (path) 2827 2076 w (as) 3081 2076 w (an) 3224 2076 w (entry) 3378 2076 w (in) 3663 2076 w (the) 3791 2076 w (mount) 3983 2076 w (table,) 4335 2076 w (they) 4644 2076 w (are) 4888 2076 w (the) 720 2196 w (same) 910 2196 w (file) 1200 2196 w (and) 1387 2196 w (the) 1603 2196 w (corresponding) 1794 2196 w (substitution) 2533 2196 w (from) 3150 2196 w (the) 3418 2196 w (mount) 3609 2196 w (table) 3960 2196 w (is) 4236 2196 w (made.) 4352 2196 w (This) 4719 2196 w (is) 4960 2196 w (how the name space is implemented.) 720 2316 w 10 /LucidaSans-Demi f (File Caching) 720 2556 w 10 /LucidaSansUnicode00 f (The) 970 2712 w (9P) 1201 2712 w (protocol) 1369 2712 w (has) 1823 2712 w (no) 2041 2712 w (explicit) 2214 2712 w (support) 2619 2712 w (for) 3047 2712 w (caching) 3236 2712 w (files) 3658 2712 w (on) 3910 2712 w (a) 4083 2712 w (client.) 4188 2712 w (The) 4566 2712 w (large) 4797 2712 w (memory) 720 2832 w (of) 1151 2832 w (the) 1284 2832 w (central) 1474 2832 w (file) 1840 2832 w (server) 2026 2832 w (acts) 2358 2832 w (as) 2587 2832 w (a) 2728 2832 w (shared) 2818 2832 w (cache) 3181 2832 w (for) 3491 2832 w (all) 3665 2832 w (its) 3813 2832 w (clients,) 3964 2832 w (which) 4345 2832 w (reduces) 4660 2832 w (the) 720 2952 w (total) 917 2952 w (amount) 1179 2952 w (of) 1592 2952 w (memory) 1733 2952 w (needed) 2172 2952 w (across) 2571 2952 w (all) 2924 2952 w (machines) 3080 2952 w (in) 3582 2952 w (the) 3716 2952 w (network.) 3914 2952 w (Nonetheless,) 4413 2952 w (there) 720 3072 w (are) 1005 3072 w (sound) 1190 3072 w (reasons) 1522 3072 w (to) 1932 3072 w (cache) 2063 3072 w (files on the client, such as a slow connection to the file) 2371 3072 w (server.) 720 3192 w (The) 970 3348 w (version) 1188 3348 w (field) 1577 3348 w (of) 1828 3348 w (the) 1963 3348 w (qid) 2155 3348 w (is) 2347 3348 w (changed) 2464 3348 w (whenever) 2912 3348 w (the) 3411 3348 w (file) 3603 3348 w (is) 3791 3348 w (modified,) 3908 3348 w (which) 4408 3348 w (makes) 4727 3348 w (it) 720 3468 w (possible) 826 3468 w (to) 1269 3468 w (do) 1407 3468 w (some) 1571 3468 w (weakly) 1872 3468 w (coherent) 2239 3468 w (forms) 2705 3468 w (of) 3027 3468 w (caching.) 3164 3468 w (The) 3639 3468 w (most) 3859 3468 w (important) 4140 3468 w (is) 4657 3468 w (client) 4776 3468 w (caching) 720 3588 w (of) 1135 3588 w (text) 1276 3588 w (and) 1510 3588 w (data) 1733 3588 w (segments) 1986 3588 w (of) 2497 3588 w (executable) 2638 3588 w (files.) 3207 3588 w (When) 3516 3588 w (a) 3825 3588 w (process) 3923 3588 w 10 /LucidaTypewriter f (execs) 4340 3588 w 10 /LucidaSansUnicode00 f (a) 4743 3588 w (pro\255) 4842 3588 w (gram,) 720 3708 w (the) 1043 3708 w (file) 1238 3708 w (is) 1429 3708 w (re-opened) 1549 3708 w (and) 2105 3708 w (the) 2325 3708 w (qid) 2520 3708 w 10 /LucidaSansUnicode20 f (\031) 2675 3708 w 10 /LucidaSansUnicode00 f (s) 2707 3708 w (version) 2798 3708 w (is) 3189 3708 w (compared) 3308 3708 w (with) 3830 3708 w (that) 4074 3708 w (in) 4304 3708 w (the) 4434 3708 w (cache;) 4628 3708 w (if) 4974 3708 w (they) 720 3828 w (match,) 962 3828 w (the) 1327 3828 w (local) 1517 3828 w (copy) 1777 3828 w (is) 2039 3828 w (used.) 2154 3828 w (The) 2485 3828 w (same) 2701 3828 w (method) 2991 3828 w (can) 3398 3828 w (be) 3601 3828 w (used) 3755 3828 w (to) 4022 3828 w (build) 4155 3828 w (a) 4436 3828 w (local) 4527 3828 w (cach\255) 4788 3828 w (ing) 720 3948 w (file) 922 3948 w (server.) 1122 3948 w (This) 1532 3948 w (user-level) 1786 3948 w (server) 2325 3948 w (interposes) 2671 3948 w (on) 3227 3948 w (the) 3398 3948 w (9P) 3601 3948 w (connection) 3767 3948 w (to) 4347 3948 w (the) 4493 3948 w (remote) 4696 3948 w (server) 720 4068 w (and) 1066 4068 w (monitors) 1295 4068 w (the) 1779 4068 w (traffic,) 1983 4068 w (copying) 2351 4068 w (data) 2780 4068 w (to) 3039 4068 w (a) 3186 4068 w (local) 3290 4068 w (disk.) 3564 4068 w (When) 3878 4068 w (it) 4193 4068 w (sees) 4308 4068 w (a) 4572 4068 w (read) 4677 4068 w (of) 4942 4068 w (known) 720 4188 w (data,) 1086 4188 w (it) 1374 4188 w (answers) 1486 4188 w (directly,) 1925 4188 w (while) 2361 4188 w (writes) 2660 4188 w (are) 2997 4188 w (passed) 3195 4188 w (on) 3580 4188 w (immediately) 3748 4188 w 10 /LucidaSansUnicode20 f (\024) 4340 4188 w 10 /LucidaSansUnicode00 f (the) 4440 4188 w (cache) 4640 4188 w (is) 4960 4188 w (write-through) 720 4308 w 10 /LucidaSansUnicode20 f (\024) 1405 4308 w 10 /LucidaSansUnicode00 f (to) 1505 4308 w (keep) 1637 4308 w (the) 1904 4308 w (central) 2093 4308 w (copy) 2458 4308 w (up) 2719 4308 w (to) 2878 4308 w (date.) 3010 4308 w (This) 3319 4308 w (is) 3558 4308 w (transparent) 3673 4308 w (to) 4268 4308 w (processes) 4401 4308 w (on) 4917 4308 w (the) 720 4428 w (terminal) 916 4428 w (and) 1359 4428 w (requires) 1580 4428 w (no) 2020 4428 w (change) 2184 4428 w (to) 2573 4428 w (9P;) 2712 4428 w (it) 2902 4428 w (works) 3008 4428 w (well) 3336 4428 w (on) 3567 4428 w (home) 3730 4428 w (machines) 4042 4428 w (connected) 4541 4428 w (over) 720 4548 w (serial) 980 4548 w (lines.) 1291 4548 w (A) 1632 4548 w (similar) 1751 4548 w (method) 2128 4548 w (can) 2550 4548 w (be) 2768 4548 w (applied) 2937 4548 w (to) 3345 4548 w (build) 3493 4548 w (a) 3790 4548 w (general) 3896 4548 w (client) 4308 4548 w (cache) 4623 4548 w (in) 4949 4548 w (unused local memory, but this has not been done in Plan 9.) 720 4668 w 10 /LucidaSans-Demi f (Networks and Communication Devices) 720 4908 w 10 /LucidaSansUnicode00 f (Network) 970 5064 w (interfaces) 1424 5064 w (are) 1949 5064 w (kernel-resident) 2151 5064 w (file) 2956 5064 w (systems,) 3157 5064 w (analogous) 3630 5064 w (to) 4178 5064 w (the) 4326 5064 w (EIA) 4531 5064 w (device) 4733 5064 w (described) 720 5184 w (earlier.) 1237 5184 w (Call) 1652 5184 w (setup) 1878 5184 w (and) 2191 5184 w (shutdown) 2415 5184 w (are) 2934 5184 w (achieved) 3129 5184 w (by) 3596 5184 w (writing) 3754 5184 w (text) 4134 5184 w (strings) 4368 5184 w (to) 4744 5184 w (the) 4885 5184 w (control) 720 5304 w (file) 1101 5304 w (associated) 1292 5304 w (with) 1841 5304 w (the) 2086 5304 w (device;) 2281 5304 w (information) 2660 5304 w (is) 3267 5304 w (sent) 3387 5304 w (and) 3633 5304 w (received) 3853 5304 w (by) 4297 5304 w (reading) 4452 5304 w (and) 4860 5304 w (writing) 720 5424 w (the) 1098 5424 w (data) 1294 5424 w (file.) 1545 5424 w (The) 1801 5424 w (structure) 2023 5424 w (and) 2502 5424 w (semantics) 2723 5424 w (of) 3249 5424 w (the) 3387 5424 w (devices) 3582 5424 w (is) 3980 5424 w (common) 4100 5424 w (to) 4561 5424 w (all) 4699 5424 w (net\255) 4852 5424 w (works) 720 5544 w (so,) 1052 5544 w (other) 1240 5544 w (than) 1542 5544 w (a) 1803 5544 w (file) 1903 5544 w (name) 2099 5544 w (substitution,) 2410 5544 w (the) 3068 5544 w (same) 3268 5544 w (procedure) 3568 5544 w (makes) 4107 5544 w (a) 4465 5544 w (call) 4565 5544 w (using) 4774 5544 w (TCP over Ethernet as URP over Datakit [Fra80].) 720 5664 w (This example illustrates the structure of the TCP device:) 970 5820 w 9 /LucidaTypewriter f (%) 920 5990 w (ls) 1050 5990 w (-lp) 1245 5990 w (/net/tcp) 1505 5990 w (d-r-xr-xr-x) 920 6100 w (I) 1700 6100 w (0) 1830 6100 w (bootes) 1960 6100 w (bootes) 2415 6100 w (0) 2870 6100 w (Feb) 3000 6100 w (23) 3260 6100 w (20:20) 3455 6100 w (0) 3845 6100 w (d-r-xr-xr-x) 920 6210 w (I) 1700 6210 w (0) 1830 6210 w (bootes) 1960 6210 w (bootes) 2415 6210 w (0) 2870 6210 w (Feb) 3000 6210 w (23) 3260 6210 w (20:20) 3455 6210 w (1) 3845 6210 w (--rw-rw-rw-) 920 6320 w (I) 1700 6320 w (0) 1830 6320 w (bootes) 1960 6320 w (bootes) 2415 6320 w (0) 2870 6320 w (Feb) 3000 6320 w (23) 3260 6320 w (20:20) 3455 6320 w (clone) 3845 6320 w (%) 920 6430 w (ls) 1050 6430 w (-lp) 1245 6430 w (/net/tcp/0) 1505 6430 w (--rw-rw----) 920 6540 w (I) 1700 6540 w (0) 1830 6540 w (rob) 1960 6540 w (bootes) 2415 6540 w (0) 2870 6540 w (Feb) 3000 6540 w (23) 3260 6540 w (20:20) 3455 6540 w (ctl) 3845 6540 w (--rw-rw----) 920 6650 w (I) 1700 6650 w (0) 1830 6650 w (rob) 1960 6650 w (bootes) 2415 6650 w (0) 2870 6650 w (Feb) 3000 6650 w (23) 3260 6650 w (20:20) 3455 6650 w (data) 3845 6650 w (--rw-rw----) 920 6760 w (I) 1700 6760 w (0) 1830 6760 w (rob) 1960 6760 w (bootes) 2415 6760 w (0) 2870 6760 w (Feb) 3000 6760 w (23) 3260 6760 w (20:20) 3455 6760 w (listen) 3845 6760 w (--r--r--r--) 920 6870 w (I) 1700 6870 w (0) 1830 6870 w (bootes) 1960 6870 w (bootes) 2415 6870 w (0) 2870 6870 w (Feb) 3000 6870 w (23) 3260 6870 w (20:20) 3455 6870 w (local) 3845 6870 w (--r--r--r--) 920 6980 w (I) 1700 6980 w (0) 1830 6980 w (bootes) 1960 6980 w (bootes) 2415 6980 w (0) 2870 6980 w (Feb) 3000 6980 w (23) 3260 6980 w (20:20) 3455 6980 w (remote) 3845 6980 w (--r--r--r--) 920 7090 w (I) 1700 7090 w (0) 1830 7090 w (bootes) 1960 7090 w (bootes) 2415 7090 w (0) 2870 7090 w (Feb) 3000 7090 w (23) 3260 7090 w (20:20) 3455 7090 w (status) 3845 7090 w (%) 920 7200 w cleartomark showpage saveobj restore %%EndPage: 15 15 %%Page: 16 16 /saveobj save def mark 16 pagesetup 10 /LucidaSansUnicode00 f (\255 16 \255) 2752 480 w (The) 720 840 w (top) 941 840 w (directory,) 1142 840 w 10 /LucidaTypewriter f (/net/tcp) 1645 840 w 10 /LucidaSansUnicode00 f (,) 2221 840 w (contains) 2293 840 w (a) 2741 840 w 10 /LucidaTypewriter f (clone) 2837 840 w 10 /LucidaSansUnicode00 f (file) 3238 840 w (and) 3430 840 w (a) 3651 840 w (directory) 3747 840 w (for) 4219 840 w (each) 4399 840 w (connec\255) 4664 840 w (tion,) 720 960 w (numbered) 976 960 w 10 /LucidaTypewriter f (0) 1507 960 w 10 /LucidaSansUnicode00 f (to) 1614 960 w 10 /LucidaSans-Italic f (n) 1747 960 w 10 /LucidaSansUnicode00 f (.) 1809 960 w (Each) 1908 960 w (connection) 2165 960 w (directory) 2732 960 w (corresponds) 3198 960 w (to) 3834 960 w (an) 3967 960 w (TCP/IP) 4118 960 w (connection.) 4476 960 w (Opening) 720 1080 w 10 /LucidaTypewriter f (clone) 1164 1080 w 10 /LucidaSansUnicode00 f (reserves an unused connection and) 1556 1080 w (returns) 3306 1080 w (its) 3689 1080 w (control) 3839 1080 w (file.) 4214 1080 w (Reading) 4462 1080 w (the) 4885 1080 w (control) 720 1200 w (file returns the textual connection number, so the user process can construct the) 1095 1200 w (full) 720 1320 w (name) 939 1320 w (of) 1267 1320 w (the) 1427 1320 w (newly) 1644 1320 w (allocated) 1982 1320 w (connection) 2481 1320 w (directory.) 3076 1320 w (The) 3634 1320 w 10 /LucidaTypewriter f (local) 3878 1320 w 10 /LucidaSansUnicode00 f (,) 4238 1320 w 10 /LucidaTypewriter f (remote) 4333 1320 w 10 /LucidaSansUnicode00 f (,) 4765 1320 w (and) 4860 1320 w 10 /LucidaTypewriter f (status) 720 1440 w 10 /LucidaSansUnicode00 f (files) 1194 1440 w (are) 1438 1440 w (diagnostic;) 1632 1440 w (for) 2206 1440 w (example,) 2387 1440 w 10 /LucidaTypewriter f (remote) 2873 1440 w 10 /LucidaSansUnicode00 f (contains) 3346 1440 w (the) 3795 1440 w (address) 3991 1440 w (\(for) 4412 1440 w (TCP,) 4625 1440 w (the) 4885 1440 w (IP address and port number\) of the remote side.) 720 1560 w (A) 970 1716 w (call) 1076 1716 w (is) 1277 1716 w (initiated) 1394 1716 w (by) 1828 1716 w (writing) 1980 1716 w (a) 2354 1716 w (connect) 2446 1716 w (message) 2863 1716 w (with) 3325 1716 w (a) 3568 1716 w (network-specific) 3661 1716 w (address) 4516 1716 w (as) 4934 1716 w (its) 720 1836 w (argument;) 875 1836 w (for) 1412 1836 w (example,) 1588 1836 w (to) 2070 1836 w (open) 2205 1836 w (a) 2484 1836 w (Telnet) 2576 1836 w (session) 2916 1836 w (\(port) 3314 1836 w (23\)) 3586 1836 w (to) 3782 1836 w (a) 3917 1836 w (remote) 4009 1836 w (machine) 4390 1836 w (with) 4835 1836 w (IP address 135.104.9.52, the string is:) 720 1956 w 9 /LucidaTypewriter f (connect) 920 2126 w (135.104.9.52!23) 1440 2126 w 10 /LucidaSansUnicode00 f (The) 720 2306 w (write) 937 2306 w (to) 1213 2306 w (the) 1347 2306 w (control) 1538 2306 w (file) 1916 2306 w (blocks) 2103 2306 w (until) 2452 2306 w (the) 2707 2306 w (connection) 2898 2306 w (is) 3466 2306 w (established;) 3582 2306 w (if) 4203 2306 w (the) 4306 2306 w (destination) 4498 2306 w (is) 720 2426 w (unreachable,) 859 2426 w (the) 1541 2426 w (write) 1754 2426 w (returns) 2052 2426 w (an) 2460 2426 w (error.) 2635 2426 w (Once) 2997 2426 w (the) 3302 2426 w (connection) 3515 2426 w (is) 4105 2426 w (established,) 4243 2426 w (the) 4885 2426 w 10 /LucidaTypewriter f (telnet) 720 2546 w 10 /LucidaSansUnicode00 f (application) 1197 2546 w (reads) 1776 2546 w (and) 2087 2546 w (writes) 2312 2546 w (the) 2648 2546 w 10 /LucidaTypewriter f (data) 2849 2546 w 10 /LucidaSansUnicode00 f (file) 3183 2546 w (to) 3380 2546 w (talk) 3524 2546 w (to) 3749 2546 w (the) 3893 2546 w (remote) 4094 2546 w (Telnet) 4484 2546 w (dae\255) 4833 2546 w (mon.) 720 2666 w (On the other end, the Telnet daemon would start by writing) 1032 2666 w 9 /LucidaTypewriter f (announce) 920 2836 w (23) 1505 2836 w 10 /LucidaSansUnicode00 f (to) 720 3016 w (its) 855 3016 w (control) 1010 3016 w (file) 1390 3016 w (to) 1579 3016 w (indicate) 1715 3016 w (its) 2135 3016 w (willingness) 2290 3016 w (to) 2865 3016 w (receive) 3001 3016 w (calls) 3380 3016 w (to) 3633 3016 w (this) 3769 3016 w (port.) 3986 3016 w (Such) 4290 3016 w (a) 4557 3016 w (daemon) 4650 3016 w (is called a) 720 3136 w 10 /LucidaSans-Italic f (listener) 1234 3136 w 10 /LucidaSansUnicode00 f (in Plan 9.) 1627 3136 w (A) 970 3292 w (uniform) 1083 3292 w (structure) 1512 3292 w (for) 1994 3292 w (network) 2177 3292 w (devices) 2613 3292 w (cannot) 3015 3292 w (hide) 3387 3292 w (all) 3641 3292 w (the) 3799 3292 w (details) 3999 3292 w (of) 4364 3292 w (addressing) 4507 3292 w (and) 720 3412 w (communication) 943 3412 w (for) 1732 3412 w (dissimilar) 1914 3412 w (networks.) 2427 3412 w (For) 2977 3412 w (example,) 3175 3412 w (Datakit) 3662 3412 w (uses) 4050 3412 w (textual,) 4312 3412 w (hierar\255) 4723 3412 w (chical) 720 3532 w (addresses) 1031 3532 w (unlike) 1552 3532 w (IP) 1882 3532 w 10 /LucidaSansUnicode20 f (\031) 1966 3532 w 10 /LucidaSansUnicode00 f (s) 1998 3532 w (32-bit) 2083 3532 w (addresses,) 2430 3532 w (so) 2983 3532 w (an) 3129 3532 w (application) 3280 3532 w (given) 3848 3532 w (a) 4144 3532 w (control) 4234 3532 w (file) 4611 3532 w (must) 4797 3532 w (still) 720 3652 w (know) 947 3652 w (what) 1257 3652 w (network) 1540 3652 w (it) 1984 3652 w (represents.) 2102 3652 w (Rather) 2732 3652 w (than) 3098 3652 w (make) 3366 3652 w (every) 3680 3652 w (application) 3989 3652 w (know) 4575 3652 w (the) 4885 3652 w (addressing) 720 3772 w (of) 1300 3772 w (every) 1445 3772 w (network,) 1749 3772 w (Plan) 2220 3772 w (9) 2468 3772 w (hides) 2578 3772 w (these) 2886 3772 w (details) 3195 3772 w (in) 3562 3772 w (a) 3701 3772 w 10 /LucidaSans-Italic f (connection) 3804 3772 w (server) 4372 3772 w 10 /LucidaSansUnicode00 f (,) 4677 3772 w (called) 4757 3772 w 10 /LucidaTypewriter f (cs) 720 3892 w 10 /LucidaSansUnicode00 f (.) 864 3892 w 10 /LucidaTypewriter f (Cs) 965 3892 w 10 /LucidaSansUnicode00 f (is) 1146 3892 w (a) 1263 3892 w (file) 1355 3892 w (system) 1543 3892 w (mounted) 1920 3892 w (in) 2391 3892 w (a) 2519 3892 w (known) 2611 3892 w (place.) 2968 3892 w (It) 3323 3892 w (supplies) 3426 3892 w (a) 3867 3892 w (single) 3959 3892 w (control) 4284 3892 w (file) 4662 3892 w (that) 4849 3892 w (an) 720 4012 w (application) 885 4012 w (uses) 1467 4012 w (to) 1735 4012 w (discover) 1881 4012 w (how) 2333 4012 w (to) 2581 4012 w (connect) 2728 4012 w (to) 3157 4012 w (a) 3304 4012 w (host.) 3408 4012 w (The) 3732 4012 w (application) 3962 4012 w (writes) 4545 4012 w (the) 4885 4012 w (symbolic) 720 4132 w (address) 1201 4132 w (and) 1633 4132 w (service) 1865 4132 w (name) 2253 4132 w (for) 2571 4132 w (the) 2762 4132 w (connection) 2969 4132 w (it) 3553 4132 w (wishes) 3671 4132 w (to) 4049 4132 w (make,) 4198 4132 w (and) 4543 4132 w (reads) 4774 4132 w (back) 720 4252 w (the) 985 4252 w (name) 1178 4252 w (of) 1482 4252 w (the) 1618 4252 w 10 /LucidaTypewriter f (clone) 1811 4252 w 10 /LucidaSansUnicode00 f (file) 2209 4252 w (to) 2398 4252 w (open) 2534 4252 w (and) 2814 4252 w (the) 3032 4252 w (address) 3225 4252 w (to) 3644 4252 w (present) 3781 4252 w (to) 4186 4252 w (it.) 4323 4252 w (If) 4492 4252 w (there) 4597 4252 w (are) 4888 4252 w (multiple) 720 4372 w (networks) 1163 4372 w (between) 1651 4372 w (the) 2103 4372 w (machines,) 2303 4372 w 10 /LucidaTypewriter f (cs) 2839 4372 w 10 /LucidaSansUnicode00 f (presents) 3028 4372 w (a) 3490 4372 w (list) 3590 4372 w (of) 3781 4372 w (possible) 3924 4372 w (networks) 4372 4372 w (and) 4860 4372 w (addresses) 720 4492 w (to) 1240 4492 w (be) 1371 4492 w (tried) 1523 4492 w (in) 1782 4492 w (sequence;) 1906 4492 w (it) 2428 4492 w (uses) 2527 4492 w (heuristics) 2780 4492 w (to) 3282 4492 w (decide) 3414 4492 w (the) 3766 4492 w (order.) 3955 4492 w (For) 4315 4492 w (instance,) 4505 4492 w (it) 4974 4492 w (presents the highest-bandwidth choice first.) 720 4612 w (A) 970 4768 w (single) 1080 4768 w (library) 1411 4768 w (function) 1763 4768 w (called) 2206 4768 w 10 /LucidaTypewriter f (dial) 2531 4768 w 10 /LucidaSansUnicode00 f (talks) 2861 4768 w (to) 3133 4768 w 10 /LucidaTypewriter f (cs) 3273 4768 w 10 /LucidaSansUnicode00 f (to) 3459 4768 w (establish) 3599 4768 w (the) 4074 4768 w (connection.) 4271 4768 w (An) 4909 4768 w (application) 720 4888 w (that) 1293 4888 w (uses) 1523 4888 w 10 /LucidaTypewriter f (dial) 1781 4888 w 10 /LucidaSansUnicode00 f (needs) 2107 4888 w (no) 2433 4888 w (changes,) 2594 4888 w (not) 3063 4888 w (even) 3261 4888 w (recompilation,) 3525 4888 w (to) 4262 4888 w (adapt) 4398 4888 w (to) 4709 4888 w (new) 4845 4888 w (networks; the interface to) 720 5008 w 10 /LucidaTypewriter f (cs) 2000 5008 w 10 /LucidaSansUnicode00 f (hides the details.) 2176 5008 w (The) 970 5164 w (uniform) 1185 5164 w (structure) 1604 5164 w (for) 2076 5164 w (networks) 2249 5164 w (in) 2726 5164 w (Plan) 2851 5164 w (9) 3086 5164 w (makes) 3183 5164 w (the) 3531 5164 w 10 /LucidaTypewriter f (import) 3721 5164 w 10 /LucidaSansUnicode00 f (command) 4188 5164 w (all) 4701 5164 w (that) 4849 5164 w (is needed to construct gateways.) 720 5284 w 10 /LucidaSans-Demi f (Kernel structure for networks) 720 5524 w 10 /LucidaSansUnicode00 f (The) 970 5680 w (kernel) 1214 5680 w (plumbing) 1579 5680 w (used) 2105 5680 w (to) 2400 5680 w (build) 2561 5680 w (Plan) 2870 5680 w (9) 3134 5680 w (communications) 3260 5680 w (channels) 4121 5680 w (is) 4613 5680 w (called) 4757 5680 w 10 /LucidaSans-Italic f (streams) 720 5800 w 10 /LucidaSansUnicode00 f ([Rit84][Presotto].) 1155 5800 w (A) 2049 5800 w (stream) 2162 5800 w (is) 2539 5800 w (a) 2663 5800 w (bidirectional) 2761 5800 w (channel) 3409 5800 w (connecting) 3829 5800 w (a) 4405 5800 w (physical) 4503 5800 w (or) 4938 5800 w (pseudo-device to a user process.) 720 5920 w (The user process inserts) 2402 5920 w (and) 3623 5920 w (removes) 3836 5920 w (data) 4279 5920 w (at) 4522 5920 w (one) 4647 5920 w (end) 4859 5920 w (of) 720 6040 w (the) 851 6040 w (stream;) 1039 6040 w (a) 1437 6040 w (kernel) 1525 6040 w (process) 1860 6040 w (acting) 2267 6040 w (on) 2596 6040 w (behalf of a device operates at the other end.) 2752 6040 w (A) 4971 6040 w (stream) 720 6160 w (comprises) 1122 6160 w (a) 1688 6160 w (linear) 1813 6160 w (list) 2155 6160 w (of) 2371 6160 w 10 /LucidaSans-Italic f (processing) 2539 6160 w (modules) 3128 6160 w 10 /LucidaSansUnicode00 f (.) 3532 6160 w (Each) 3666 6160 w (module) 3958 6160 w (has) 4392 6160 w (both) 4630 6160 w (an) 4923 6160 w (upstream) 720 6280 w (\(toward) 1214 6280 w (the) 1616 6280 w (process\)) 1806 6280 w (and) 2248 6280 w (downstream) 2463 6280 w (\(toward) 3094 6280 w (the) 3496 6280 w (device\)) 3686 6280 w 10 /LucidaSans-Italic f (put) 4061 6280 w (routine) 4257 6280 w 10 /LucidaSansUnicode00 f (.) 4606 6280 w (Calling) 4705 6280 w (the) 720 6400 w (put) 913 6400 w (routine) 1113 6400 w (of) 1499 6400 w (the) 1636 6400 w (module) 1830 6400 w (on) 2233 6400 w (either) 2395 6400 w (end) 2715 6400 w (of) 2935 6400 w (the) 3072 6400 w (stream) 3266 6400 w (inserts) 3638 6400 w (data) 4004 6400 w (into) 4253 6400 w (the) 4481 6400 w (stream.) 4675 6400 w (Each) 720 6520 w (module) 984 6520 w (calls) 1390 6520 w (the) 1647 6520 w (succeeding) 1844 6520 w (one) 2429 6520 w (to) 2650 6520 w (send) 2790 6520 w (data) 3064 6520 w (up) 3316 6520 w (or) 3483 6520 w (down) 3627 6520 w (the) 3932 6520 w (stream.) 4129 6520 w (Like) 4568 6520 w (UNIX) 4805 6520 w (streams [Rit84], Plan 9 streams can be dynamically configured.) 720 6640 w cleartomark showpage saveobj restore %%EndPage: 16 16 %%Page: 17 17 /saveobj save def mark 17 pagesetup 10 /LucidaSansUnicode00 f (\255 17 \255) 2752 480 w 10 /LucidaSans-Demi f (The IL Protocol) 720 840 w 10 /LucidaSansUnicode00 f (The) 970 996 w (9P) 1193 996 w (protocol) 1353 996 w (must) 1800 996 w (run) 2086 996 w (above) 2294 996 w (a) 2624 996 w (reliable) 2722 996 w (transport) 3123 996 w (protocol) 3614 996 w (with) 4061 996 w (delimited) 4309 996 w (mes\255) 4807 996 w (sages.) 720 1116 w (9P) 1121 1116 w (has) 1301 1116 w (no) 1531 1116 w (mechanism) 1716 1116 w (to) 2330 1116 w (recover) 2490 1116 w (from) 2910 1116 w (transmission) 3204 1116 w (errors) 3888 1116 w (and) 4241 1116 w (the) 4483 1116 w (system) 4700 1116 w (assumes) 720 1236 w (that) 1175 1236 w (each) 1403 1236 w (read) 1664 1236 w (from) 1916 1236 w (a) 2185 1236 w (communication) 2277 1236 w (channel) 3060 1236 w (will) 3474 1236 w (return) 3675 1236 w (a) 4011 1236 w (single) 4103 1236 w (9P) 4429 1236 w (message;) 4584 1236 w (it) 720 1356 w (does) 821 1356 w (not) 1087 1356 w (parse) 1282 1356 w (the) 1583 1356 w (data) 1773 1356 w (stream) 2018 1356 w (to) 2386 1356 w (discover) 2518 1356 w (message) 2956 1356 w (boundaries.) 3414 1356 w (Pipes) 4055 1356 w (and) 4343 1356 w (some) 4557 1356 w (net\255) 4852 1356 w (work) 720 1476 w (protocols) 993 1476 w (already) 1484 1476 w (have) 1871 1476 w (these) 2132 1476 w (properties) 2430 1476 w (but) 2964 1476 w (the) 3162 1476 w (standard) 3354 1476 w (IP) 3818 1476 w (protocols) 3939 1476 w (do) 4431 1476 w (not.) 4592 1476 w (TCP) 4853 1476 w (does) 720 1596 w (not) 985 1596 w (delimit) 1179 1596 w (messages,) 1549 1596 w (while) 2090 1596 w (UDP) 2377 1596 w ([RFC768]) 2610 1596 w (does) 3085 1596 w (not) 3350 1596 w (provide) 3544 1596 w (reliable) 3943 1596 w (in-order) 4334 1596 w (deliv\255) 4778 1596 w (ery.) 720 1716 w (We) 970 1872 w (designed) 1146 1872 w (a) 1622 1872 w (new) 1711 1872 w (protocol,) 1940 1872 w (called) 2410 1872 w (IL) 2727 1872 w (\(Internet) 2844 1872 w (Link\),) 3292 1872 w (to) 3594 1872 w (transmit) 3727 1872 w (9P) 4167 1872 w (messages) 4320 1872 w (over) 4830 1872 w (IP.) 720 1992 w (It) 912 1992 w (is) 1022 1992 w (a) 1146 1992 w (connection-based) 1245 1992 w (protocol) 2167 1992 w (that) 2615 1992 w (provides) 2850 1992 w (reliable) 3310 1992 w (transmission) 3712 1992 w (of) 4378 1992 w (sequenced) 4520 1992 w (messages) 720 2112 w (between) 1244 2112 w (machines.) 1700 2112 w (Since) 2272 2112 w (a) 2573 2112 w (process) 2677 2112 w (can) 3100 2112 w (have) 3318 2112 w (only) 3593 2112 w (a) 3847 2112 w (single) 3952 2112 w (outstanding) 4291 2112 w (9P) 4922 2112 w (request,) 720 2232 w (there) 1163 2232 w (is) 1460 2232 w (no) 1585 2232 w (need) 1753 2232 w (for) 2035 2232 w (flow) 2218 2232 w (control) 2466 2232 w (in) 2852 2232 w (IL.) 2987 2232 w (Like) 3177 2232 w (TCP,) 3417 2232 w (IL) 3680 2232 w (has) 3806 2232 w (adaptive) 4018 2232 w (timeouts:) 4472 2232 w (it) 4974 2232 w (scales) 720 2352 w (acknowledge) 1052 2352 w (and) 1721 2352 w (retransmission) 1940 2352 w (times) 2698 2352 w (to) 3003 2352 w (match) 3140 2352 w (the) 3477 2352 w (network) 3671 2352 w (speed.) 4102 2352 w (This) 4494 2352 w (allows) 4738 2352 w (the) 720 2472 w (protocol) 915 2472 w (to) 1359 2472 w (perform) 1497 2472 w (well) 1929 2472 w (on) 2160 2472 w (both) 2323 2472 w (the) 2586 2472 w (Internet) 2781 2472 w (and) 3201 2472 w (on) 3421 2472 w (local) 3584 2472 w (Ethernets.) 3848 2472 w (Also,) 4407 2472 w (IL) 4688 2472 w (does) 4809 2472 w (no) 720 2592 w (blind) 902 2592 w (retransmission,) 1207 2592 w (to) 2017 2592 w (avoid) 2174 2592 w (adding) 2494 2592 w (to) 2888 2592 w (the) 3046 2592 w (congestion) 3261 2592 w (of) 3853 2592 w (busy) 4011 2592 w (networks.) 4299 2592 w (Full) 4866 2592 w (details are in another paper [PrWi95].) 720 2712 w (In) 970 2868 w (Plan) 1102 2868 w (9,) 1344 2868 w (the) 1480 2868 w (implementation) 1676 2868 w (of) 2479 2868 w (IL) 2618 2868 w (is) 2741 2868 w (smaller) 2862 2868 w (and) 3257 2868 w (faster) 3479 2868 w (than) 3798 2868 w (TCP.) 4056 2868 w (IL) 4349 2868 w (is) 4473 2868 w (our) 4595 2868 w (main) 4801 2868 w (Internet transport protocol.) 720 2988 w 10 /LucidaSans-Demi f (Overview of authentication) 720 3228 w 10 /LucidaSansUnicode00 f (Authentication) 970 3384 w (establishes) 1728 3384 w (the) 2317 3384 w (identity) 2521 3384 w (of) 2935 3384 w (a) 3082 3384 w (user) 3186 3384 w (accessing) 3445 3384 w (a) 3962 3384 w (resource.) 4066 3384 w (The) 4599 3384 w (user) 4830 3384 w (requesting) 720 3504 w (the) 1276 3504 w (resource) 1468 3504 w (is) 1923 3504 w (called) 2039 3504 w (the) 2358 3504 w 10 /LucidaSans-Italic f (client) 2549 3504 w 10 /LucidaSansUnicode00 f (and) 2846 3504 w (the) 3062 3504 w (user) 3253 3504 w (granting) 3499 3504 w (access) 3945 3504 w (to) 4296 3504 w (the) 4430 3504 w (resource) 4621 3504 w (is) 720 3624 w (called) 836 3624 w (the) 1155 3624 w 10 /LucidaSans-Italic f (server) 1346 3624 w 10 /LucidaSansUnicode00 f (.) 1651 3624 w (This) 1751 3624 w (is) 1992 3624 w (usually) 2108 3624 w (done) 2484 3624 w (under) 2762 3624 w (the) 3083 3624 w (auspices) 3275 3624 w (of) 3730 3624 w (a) 3865 3624 w (9P) 3957 3624 w (attach) 4112 3624 w (message.) 4446 3624 w (A) 4971 3624 w (user) 720 3744 w (may) 975 3744 w (be) 1220 3744 w (a) 1384 3744 w (client) 1484 3744 w (in) 1793 3744 w (one) 1929 3744 w (authentication) 2153 3744 w (exchange) 2893 3744 w (and) 3403 3744 w (a) 3628 3744 w (server) 3728 3744 w (in) 4070 3744 w (another.) 4206 3744 w (Servers) 4689 3744 w (always) 720 3864 w (act) 1077 3864 w (on) 1258 3864 w (behalf) 1419 3864 w (of) 1759 3864 w (some) 1895 3864 w (user,) 2194 3864 w (either) 2474 3864 w (a) 2793 3864 w (normal) 2886 3864 w (client) 3265 3864 w (or) 3567 3864 w (some) 3707 3864 w (administrative) 4007 3864 w (entity,) 4735 3864 w (so authentication is defined to be between users, not machines.) 720 3984 w (Each) 970 4140 w (Plan) 1225 4140 w (9) 1459 4140 w (user) 1555 4140 w (has) 1798 4140 w (an) 1999 4140 w (associated) 2149 4140 w (DES) 2691 4140 w ([NBS77]) 2908 4140 w (authentication) 3320 4140 w (key;) 4049 4140 w (the) 4281 4140 w (user) 4470 4140 w 10 /LucidaSansUnicode20 f (\031) 4680 4140 w 10 /LucidaSansUnicode00 f (s) 4712 4140 w (iden\255) 4797 4140 w (tity) 720 4260 w (is) 915 4260 w (verified) 1035 4260 w (by) 1438 4260 w (the) 1593 4260 w (ability) 1788 4260 w (to) 2122 4260 w (encrypt) 2260 4260 w (and) 2662 4260 w (decrypt) 2882 4260 w (special) 3285 4260 w (messages) 3659 4260 w (called) 4173 4260 w (challenges.) 4495 4260 w (Since) 720 4380 w (knowledge) 1005 4380 w (of) 1562 4380 w (a) 1693 4380 w (user) 1781 4380 w 10 /LucidaSansUnicode20 f (\031) 1991 4380 w 10 /LucidaSansUnicode00 f (s) 2023 4380 w (key) 2107 4380 w (gives) 2306 4380 w (access) 2589 4380 w (to) 2937 4380 w (that) 3068 4380 w (user) 3292 4380 w 10 /LucidaSansUnicode20 f (\031) 3502 4380 w 10 /LucidaSansUnicode00 f (s) 3534 4380 w (resources,) 3618 4380 w (the) 4153 4380 w (Plan) 4341 4380 w (9) 4576 4380 w (authen\255) 4673 4380 w (tication protocols never transmit a message containing a cleartext key.) 720 4500 w (Authentication) 970 4656 w (is) 1718 4656 w (bilateral:) 1838 4656 w (at) 2304 4656 w (the) 2436 4656 w (end) 2631 4656 w (of) 2852 4656 w (the) 2990 4656 w (authentication) 3185 4656 w (exchange,) 3920 4656 w (each) 4457 4656 w (side) 4721 4656 w (is) 4960 4656 w (convinced) 720 4776 w (of) 1244 4776 w (the) 1378 4776 w (other) 1569 4776 w 10 /LucidaSansUnicode20 f (\031) 1826 4776 w 10 /LucidaSansUnicode00 f (s) 1858 4776 w (identity.) 1945 4776 w (Every) 2410 4776 w (machine) 2701 4776 w (begins) 3145 4776 w (the) 3504 4776 w (exchange) 3695 4776 w (with) 4196 4776 w (a) 4437 4776 w (DES) 4528 4776 w (key) 4747 4776 w (in) 4949 4776 w (memory.) 720 4896 w (In) 1216 4896 w (the) 1343 4896 w (case) 1535 4896 w (of) 1785 4896 w (CPU) 1920 4896 w (and) 2150 4896 w (file) 2367 4896 w (servers,) 2555 4896 w (the) 2972 4896 w (key,) 3164 4896 w (user) 3399 4896 w (name,) 3646 4896 w (and) 3981 4896 w (domain) 4198 4896 w (name) 4598 4896 w (for) 4901 4896 w (the) 720 5016 w (server) 920 5016 w (are) 1262 5016 w (read) 1459 5016 w (from) 1719 5016 w (permanent) 1996 5016 w (storage,) 2566 5016 w (usually) 3006 5016 w (non-volatile) 3390 5016 w (RAM.) 4025 5016 w (In) 4351 5016 w (the) 4486 5016 w (case) 4685 5016 w (of) 4942 5016 w (terminals,) 720 5136 w (the) 1241 5136 w (key) 1432 5136 w (is) 1634 5136 w (derived) 1750 5136 w (from) 2146 5136 w (a) 2414 5136 w (password) 2505 5136 w (typed) 3003 5136 w (by) 3310 5136 w (the) 3461 5136 w (user) 3652 5136 w (at) 3898 5136 w (boot) 4026 5136 w (time.) 4284 5136 w (A) 4600 5136 w (special) 4706 5136 w (machine,) 720 5256 w (known) 1197 5256 w (as) 1553 5256 w (the) 1695 5256 w 10 /LucidaSans-Italic f (authentication) 1886 5256 w (server) 2624 5256 w 10 /LucidaSansUnicode00 f (,) 2929 5256 w (maintains) 2997 5256 w (a) 3506 5256 w (database) 3597 5256 w (of) 4068 5256 w (keys) 4202 5256 w (for) 4455 5256 w (all) 4630 5256 w (users) 4779 5256 w (in its administrative domain and participates in the authentication protocols.) 720 5376 w (The) 970 5532 w (authentication) 1197 5532 w (protocol) 1938 5532 w (is) 2388 5532 w (as) 2515 5532 w (follows:) 2668 5532 w (after) 3092 5532 w (exchanging) 3365 5532 w (challenges,) 3974 5532 w (one) 4566 5532 w (party) 4792 5532 w (contacts) 720 5652 w (the) 1166 5652 w (authentication) 1362 5652 w (server) 2098 5652 w (to) 2436 5652 w (create) 2575 5652 w (permission-granting) 2912 5652 w 10 /LucidaSans-Italic f (tickets) 3957 5652 w 10 /LucidaSansUnicode00 f (encrypted) 4313 5652 w (with) 4835 5652 w (each) 720 5772 w (party) 983 5772 w 10 /LucidaSansUnicode20 f (\031) 1231 5772 w 10 /LucidaSansUnicode00 f (s) 1263 5772 w (secret) 1353 5772 w (key) 1685 5772 w (and) 1891 5772 w (containing) 2111 5772 w (a) 2661 5772 w (new) 2756 5772 w (conversation) 2991 5772 w (key.) 3649 5772 w (Each) 3919 5772 w (party) 4181 5772 w (decrypts) 4469 5772 w (its) 4923 5772 w (own ticket and uses the conversation key to encrypt the other party) 720 5892 w 10 /LucidaSansUnicode20 f (\031) 3999 5892 w 10 /LucidaSansUnicode00 f (s challenge.) 4031 5892 w (This) 970 6048 w (structure) 1215 6048 w (is) 1693 6048 w (somewhat) 1813 6048 w (like) 2345 6048 w (Kerberos) 2557 6048 w ([MBSS87],) 3031 6048 w (but) 3547 6048 w (avoids) 3749 6048 w (its) 4100 6048 w (reliance) 4258 6048 w (on) 4678 6048 w (syn\255) 4842 6048 w (chronized) 720 6168 w (clocks.) 1250 6168 w (Also) 1663 6168 w (unlike) 1921 6168 w (Kerberos,) 2265 6168 w (Plan) 2778 6168 w (9) 3026 6168 w (authentication) 3136 6168 w (supports) 3878 6168 w (a) 4354 6168 w 10 /LucidaSansUnicode20 f (\030) 4456 6168 w 10 /LucidaSansUnicode00 f (speaks) 4488 6168 w (for) 4869 6168 w 10 /LucidaSansUnicode20 f (\031) 5008 6168 w 10 /LucidaSansUnicode00 f (relation) 720 6288 w ([LABW91]) 1130 6288 w (that) 1628 6288 w (enables) 1859 6288 w (one) 2271 6288 w (user) 2490 6288 w (to) 2740 6288 w (have) 2878 6288 w (the) 3144 6288 w (authority) 3340 6288 w (of) 3817 6288 w (another;) 3956 6288 w (this) 4403 6288 w (is) 4623 6288 w (how) 4744 6288 w (a) 4985 6288 w (CPU server runs processes on behalf of its clients.) 720 6408 w (Plan) 970 6564 w (9) 1215 6564 w 10 /LucidaSansUnicode20 f (\031) 1278 6564 w 10 /LucidaSansUnicode00 f (s) 1310 6564 w (authentication) 1405 6564 w (structure) 2144 6564 w (builds) 2626 6564 w (secure) 2967 6564 w (services) 3328 6564 w (rather) 3759 6564 w (than) 4095 6564 w (depending) 4356 6564 w (on) 4917 6564 w (firewalls.) 720 6684 w (Whereas) 1230 6684 w (firewalls) 1679 6684 w (require) 2125 6684 w (special) 2515 6684 w (code) 2891 6684 w (for) 3164 6684 w (every) 3345 6684 w (service) 3644 6684 w (penetrating) 4021 6684 w (the) 4622 6684 w (wall,) 4818 6684 w (the) 720 6804 w (Plan) 909 6804 w (9) 1144 6804 w (approach) 1241 6804 w (permits) 1726 6804 w (authentication) 2131 6804 w (to) 2861 6804 w (be) 2994 6804 w (done) 3148 6804 w (in) 3425 6804 w (a) 3551 6804 w (single) 3641 6804 w (place) 3965 6804 w 10 /LucidaSansUnicode20 f (\024) 4219 6804 w 10 /LucidaSansUnicode00 f (9P) 4319 6804 w 10 /LucidaSansUnicode20 f (\024) 4437 6804 w 10 /LucidaSansUnicode00 f (for) 4537 6804 w (all) 4711 6804 w (ser\255) 4859 6804 w (vices.) 720 6924 w (For example, the) 1055 6924 w 10 /LucidaTypewriter f (cpu) 1907 6924 w 10 /LucidaSansUnicode00 f (command works securely across the Internet.) 2155 6924 w cleartomark showpage saveobj restore %%EndPage: 17 17 %%Page: 18 18 /saveobj save def mark 18 pagesetup 10 /LucidaSansUnicode00 f (\255 18 \255) 2752 480 w 10 /LucidaSans-Demi f (Authenticating external connections) 720 840 w 10 /LucidaSansUnicode00 f (The) 970 996 w (regular) 1196 996 w (Plan) 1587 996 w (9) 1833 996 w (authentication) 1941 996 w (protocol) 2681 996 w (is) 3130 996 w (not) 3255 996 w (suitable) 3460 996 w (for) 3887 996 w (text-based) 4071 996 w (services) 4653 996 w (such) 720 1116 w (as) 983 1116 w (Telnet) 1126 1116 w (or) 1466 1116 w (FTP.) 1605 1116 w (In) 1877 1116 w (such) 2004 1116 w (cases,) 2266 1116 w (Plan) 2598 1116 w (9) 2835 1116 w (users) 2934 1116 w (authenticate) 3231 1116 w (with) 3866 1116 w (hand-held) 4107 1116 w (DES) 4653 1116 w (cal\255) 4872 1116 w (culators) 720 1236 w (called) 1143 1236 w 10 /LucidaSans-Italic f (authenticators) 1462 1236 w 10 /LucidaSansUnicode00 f (.) 2170 1236 w (The) 2270 1236 w (authenticator) 2487 1236 w (holds) 3168 1236 w (a) 3470 1236 w (key) 3562 1236 w (for) 3765 1236 w (the) 3941 1236 w (user,) 4133 1236 w (distinct) 4412 1236 w (from) 4808 1236 w (the) 720 1356 w (user) 910 1356 w 10 /LucidaSansUnicode20 f (\031) 1120 1356 w 10 /LucidaSansUnicode00 f (s) 1152 1356 w (normal) 1238 1356 w (authentication) 1614 1356 w (key.) 2344 1356 w (The) 2609 1356 w (user) 2825 1356 w 10 /LucidaSansUnicode20 f (\030) 3070 1356 w 10 /LucidaSansUnicode00 f (logs) 3102 1356 w (on) 3340 1356 w 10 /LucidaSansUnicode20 f (\031) 3463 1356 w 10 /LucidaSansUnicode00 f (to) 3530 1356 w (the) 3662 1356 w (authenticator) 3851 1356 w (using) 4530 1356 w (a) 4830 1356 w (4-) 4919 1356 w (digit) 720 1476 w (PIN.) 987 1476 w (A) 1256 1476 w (correct) 1373 1476 w (PIN) 1759 1476 w (enables) 1965 1476 w (the) 2385 1476 w (authenticator) 2588 1476 w (for) 3281 1476 w (a) 3468 1476 w (challenge/response) 3571 1476 w (exchange) 4575 1476 w (with) 720 1596 w (the) 976 1596 w (server.) 1182 1596 w (Since) 1594 1596 w (a) 1897 1596 w (correct) 2003 1596 w (challenge/response) 2392 1596 w (exchange) 3399 1596 w (is) 3915 1596 w (valid) 4046 1596 w (only) 4325 1596 w (once) 4580 1596 w (and) 4860 1596 w (keys are never sent over) 720 1716 w (the) 1933 1716 w (network,) 2121 1716 w (this) 2578 1716 w (procedure) 2790 1716 w (is) 3317 1716 w (not) 3430 1716 w (susceptible) 3623 1716 w (to) 4204 1716 w (replay) 4335 1716 w (attacks,) 4664 1716 w (yet is compatible with protocols like Telnet and FTP.) 720 1836 w 10 /LucidaSans-Demi f (Special users) 720 2076 w 10 /LucidaSansUnicode00 f (Plan) 970 2232 w (9) 1206 2232 w (has) 1304 2232 w (no) 1507 2232 w (super-user.) 1666 2232 w (Each) 2307 2232 w (server) 2565 2232 w (is) 2898 2232 w (responsible) 3014 2232 w (for) 3612 2232 w (maintaining) 3787 2232 w (its) 4398 2232 w (own) 4551 2232 w (secu\255) 4787 2232 w (rity,) 720 2352 w (usually) 948 2352 w (permitting) 1325 2352 w (access) 1871 2352 w (only) 2223 2352 w (from) 2464 2352 w (the) 2733 2352 w (console,) 2925 2352 w (which) 3365 2352 w (is) 3683 2352 w (protected) 3800 2352 w (by) 4302 2352 w (a) 4454 2352 w (password.) 4546 2352 w (For example, file servers have a unique administrative user called) 720 2472 w 10 /LucidaTypewriter f (adm) 3936 2472 w 10 /LucidaSansUnicode00 f (,) 4152 2472 w (with) 4217 2472 w (special) 4455 2472 w (priv\255) 4822 2472 w (ileges) 720 2592 w (that) 1041 2592 w (apply) 1270 2592 w (only) 1570 2592 w (to) 1812 2592 w (commands) 1948 2592 w (typed) 2515 2592 w (at) 2824 2592 w (the) 2954 2592 w (server) 3147 2592 w 10 /LucidaSansUnicode20 f (\031) 3444 2592 w 10 /LucidaSansUnicode00 f (s) 3476 2592 w (physical) 3565 2592 w (console.) 3995 2592 w (These) 4468 2592 w (privi\255) 4793 2592 w (leges) 720 2712 w (concern) 1010 2712 w (the) 1430 2712 w (day-to-day) 1621 2712 w (maintenance) 2211 2712 w (of) 2865 2712 w (the) 2999 2712 w (server,) 3190 2712 w (such) 3555 2712 w (as) 3817 2712 w (adding) 3959 2712 w (new) 4330 2712 w (users) 4562 2712 w (and) 4860 2712 w (configuring) 720 2832 w (disks) 1331 2832 w (and) 1636 2832 w (networks.) 1869 2832 w (The) 2428 2832 w (privileges) 2661 2832 w (do) 3181 2832 w 10 /LucidaSans-Italic f (not) 3357 2832 w 10 /LucidaSansUnicode00 f (include) 3566 2832 w (the) 3970 2832 w (ability) 4177 2832 w (to) 4523 2832 w (modify,) 4673 2832 w (examine,) 720 2952 w (or) 1207 2952 w (change) 1352 2952 w (the) 1743 2952 w (permissions) 1941 2952 w (of) 2571 2952 w (any) 2712 2952 w (files.) 2924 2952 w (If) 3233 2952 w (a) 3342 2952 w (file) 3440 2952 w (is) 3634 2952 w (read-protected) 3758 2952 w (by) 4540 2952 w (a) 4699 2952 w (user,) 4798 2952 w (only that user may grant access to others.) 720 3072 w (CPU) 970 3228 w (servers) 1218 3228 w (have) 1622 3228 w (an) 1903 3228 w (equivalent) 2076 3228 w (user) 2633 3228 w (name) 2899 3228 w (that) 3221 3228 w (allows) 3468 3228 w (administrative) 3826 3228 w (access) 4571 3228 w (to) 4942 3228 w (resources) 720 3348 w (on) 1227 3348 w (that) 1387 3348 w (server) 1615 3348 w (such) 1949 3348 w (as) 2212 3348 w (the) 2355 3348 w (control) 2546 3348 w (files) 2924 3348 w (of) 3162 3348 w (user) 3296 3348 w (processes.) 3542 3348 w (Such) 4123 3348 w (permission) 4388 3348 w (is) 4960 3348 w (necessary, for example, to) 720 3468 w (kill) 2038 3468 w (rogue) 2216 3468 w (processes,) 2531 3468 w (but) 3077 3468 w (does) 3272 3468 w (not) 3536 3468 w (extend) 3729 3468 w (beyond) 4097 3468 w (that) 4487 3468 w (server.) 4711 3468 w (On) 720 3588 w (the) 893 3588 w (other) 1081 3588 w (hand,) 1371 3588 w (by) 1678 3588 w (means) 1826 3588 w (of a key held in protected non-volatile RAM, the identity of) 2176 3588 w (the) 720 3708 w (administrative) 932 3708 w (user) 1678 3708 w (is) 1945 3708 w (proven) 2082 3708 w (to) 2474 3708 w (the) 2629 3708 w (authentication) 2841 3708 w (server.) 3593 3708 w (This) 4011 3708 w (allows) 4274 3708 w (the) 4634 3708 w (CPU) 4847 3708 w (server) 720 3828 w (to) 1063 3828 w (authenticate) 1206 3828 w (remote) 1850 3828 w (users,) 2239 3828 w (both) 2577 3828 w (for) 2845 3828 w (access) 3029 3828 w (to) 3389 3828 w (the) 3532 3828 w (server) 3732 3828 w (itself) 4074 3828 w (and) 4358 3828 w (when) 4583 3828 w (the) 4885 3828 w (CPU server is acting as a proxy on their behalf.) 720 3948 w (Finally,) 970 4104 w (a) 1351 4104 w (special) 1445 4104 w (user) 1818 4104 w (called) 2067 4104 w 10 /LucidaTypewriter f (none) 2389 4104 w 10 /LucidaSansUnicode00 f (has) 2716 4104 w (no) 2923 4104 w (password) 3085 4104 w (and) 3586 4104 w (is) 3806 4104 w (always) 3926 4104 w (allowed) 4285 4104 w (to) 4695 4104 w (con\255) 4833 4104 w (nect;) 720 4224 w (anyone) 999 4224 w (may) 1387 4224 w (claim) 1627 4224 w (to) 1924 4224 w (be) 2062 4224 w 10 /LucidaTypewriter f (none) 2221 4224 w 10 /LucidaSansUnicode00 f (.) 2509 4224 w 10 /LucidaTypewriter f (None) 2613 4224 w 10 /LucidaSansUnicode00 f (has) 2941 4224 w (restricted) 3149 4224 w (permissions;) 3651 4224 w (for) 4310 4224 w (example,) 4489 4224 w (it) 4974 4224 w (is not allowed to examine dump files and can read only world-readable files.) 720 4344 w (The) 970 4500 w (idea) 1197 4500 w (behind) 1446 4500 w 10 /LucidaTypewriter f (none) 1828 4500 w 10 /LucidaSansUnicode00 f (is) 2163 4500 w (analogous) 2290 4500 w (to) 2835 4500 w (the) 2980 4500 w (anonymous) 3182 4500 w (user) 3788 4500 w (in) 4045 4500 w (FTP) 4183 4500 w (services.) 4402 4500 w (On) 4900 4500 w (Plan) 720 4620 w (9,) 958 4620 w (guest) 1090 4620 w (FTP) 1395 4620 w (servers) 1604 4620 w (are) 1988 4620 w (further) 2176 4620 w (confined) 2548 4620 w (within) 3005 4620 w (a) 3337 4620 w (special) 3428 4620 w (restricted) 3798 4620 w (name) 4296 4620 w (space.) 4598 4620 w (It) 4974 4620 w (disconnects) 720 4740 w (guest) 1349 4740 w (users) 1672 4740 w (from) 1988 4740 w (system) 2275 4740 w (programs,) 2670 4740 w (such) 3224 4740 w (as) 3505 4740 w (the) 3666 4740 w (contents) 3876 4740 w (of) 4348 4740 w 10 /LucidaTypewriter f (/bin) 4502 4740 w 10 /LucidaSansUnicode00 f (,) 4790 4740 w (but) 4878 4740 w (makes) 720 4860 w (it) 1073 4860 w (possible) 1179 4860 w (to) 1622 4860 w (make) 1760 4860 w (local) 2062 4860 w (files) 2327 4860 w (available) 2569 4860 w (to) 3031 4860 w (guests) 3168 4860 w (by) 3526 4860 w (binding) 3680 4860 w (them) 4089 4860 w (explicitly) 4376 4860 w (into) 4851 4860 w (the) 720 4980 w (space.) 914 4980 w (A) 1293 4980 w (restricted) 1401 4980 w (name) 1902 4980 w (space) 2207 4980 w (is) 2522 4980 w (more) 2641 4980 w (secure) 2931 4980 w (than) 3287 4980 w (the) 3542 4980 w (usual) 3736 4980 w (technique) 4034 4980 w (of) 4551 4980 w (export\255) 4688 4980 w (ing an ad hoc directory tree; the result is a kind of cage around untrusted users.) 720 5100 w 10 /LucidaSans-Demi f (The cpu command and proxied authentication) 720 5340 w 10 /LucidaSansUnicode00 f (When) 970 5496 w (a) 1278 5496 w (call) 1375 5496 w (is) 1581 5496 w (made) 1703 5496 w (to) 2013 5496 w (a) 2154 5496 w (CPU) 2252 5496 w (server) 2488 5496 w (for) 2828 5496 w (a) 3010 5496 w (user,) 3108 5496 w (say) 3393 5496 w (Peter,) 3594 5496 w (the) 3914 5496 w (intent) 4112 5496 w (is) 4438 5496 w (that) 4561 5496 w (Peter) 4795 5496 w (wishes) 720 5616 w (to) 1092 5616 w (run) 1236 5616 w (processes) 1447 5616 w (with) 1973 5616 w (his) 2223 5616 w (own) 2410 5616 w (authority.) 2655 5616 w (To) 3200 5616 w (implement) 3369 5616 w (this) 3932 5616 w (property,) 4156 5616 w (the) 4647 5616 w (CPU) 4847 5616 w (server does) 720 5736 w (the) 1313 5736 w (following) 1501 5736 w (when) 1981 5736 w (the) 2271 5736 w (call) 2459 5736 w (is) 2656 5736 w (received.) 2769 5736 w (First,) 3270 5736 w (the) 3547 5736 w (listener) 3735 5736 w (forks) 4129 5736 w (off) 4410 5736 w (a) 4578 5736 w (process) 4666 5736 w (to) 720 5856 w (handle) 853 5856 w (the) 1215 5856 w (call.) 1405 5856 w (This) 1668 5856 w (process) 1908 5856 w (changes) 2317 5856 w (to) 2751 5856 w (the) 2884 5856 w (user) 3074 5856 w 10 /LucidaTypewriter f (none) 3319 5856 w 10 /LucidaSansUnicode00 f (to) 3642 5856 w (avoid) 3775 5856 w (giving) 4070 5856 w (away) 4401 5856 w (permis\255) 4674 5856 w (sions) 720 5976 w (if) 1019 5976 w (it) 1130 5976 w (is) 1241 5976 w (compromised.) 1366 5976 w (It) 2137 5976 w (then) 2248 5976 w (performs) 2511 5976 w (the) 3000 5976 w (authentication) 3201 5976 w (protocol) 3942 5976 w (to) 4392 5976 w (verify) 4536 5976 w (that) 4849 5976 w (the) 720 6096 w (calling) 914 6096 w (user) 1270 6096 w (really) 1519 6096 w (is) 1820 6096 w (Peter,) 1938 6096 w (and) 2253 6096 w (to) 2471 6096 w (prove) 2607 6096 w (to) 2918 6096 w (Peter) 3054 6096 w (that) 3337 6096 w (the) 3566 6096 w (machine) 3759 6096 w (is) 4205 6096 w (itself) 4323 6096 w (trustwor\255) 4600 6096 w (thy.) 720 6216 w (Finally,) 971 6216 w (it) 1350 6216 w (reattaches) 1453 6216 w (to) 1991 6216 w (all) 2126 6216 w (relevant) 2276 6216 w (file) 2701 6216 w (servers) 2889 6216 w (using) 3274 6216 w (the) 3577 6216 w (authentication) 3769 6216 w (protocol) 4501 6216 w (to) 4942 6216 w (identify) 720 6336 w (itself) 1123 6336 w (as) 1400 6336 w (Peter.) 1543 6336 w (In) 1889 6336 w (this) 2017 6336 w (case,) 2233 6336 w (the) 2515 6336 w (CPU) 2707 6336 w (server) 2937 6336 w (is) 3271 6336 w (a) 3388 6336 w (client) 3480 6336 w (of) 3781 6336 w (the) 3916 6336 w (file) 4108 6336 w (server) 4296 6336 w (and) 4630 6336 w (per\255) 4847 6336 w (forms) 720 6456 w (the) 1039 6456 w (client) 1230 6456 w (portion) 1530 6456 w (of) 1920 6456 w (the) 2054 6456 w (authentication) 2245 6456 w (exchange) 2976 6456 w (on) 3477 6456 w (behalf) 3636 6456 w (of) 3974 6456 w (Peter.) 4109 6456 w (The) 4455 6456 w (authen\255) 4673 6456 w (tication) 720 6576 w (server) 1127 6576 w (will) 1469 6576 w (give) 1678 6576 w (the) 1922 6576 w (process) 2122 6576 w (tickets) 2541 6576 w (to) 2905 6576 w (accomplish) 3048 6576 w (this) 3638 6576 w (only) 3862 6576 w (if) 4111 6576 w (the) 4222 6576 w (CPU) 4422 6576 w (server) 4660 6576 w 10 /LucidaSansUnicode20 f (\031) 4957 6576 w 10 /LucidaSansUnicode00 f (s) 4989 6576 w (administrative user name is allowed to) 720 6696 w 10 /LucidaSans-Italic f (speak for) 2625 6696 w 10 /LucidaSansUnicode00 f (Peter.) 3114 6696 w (The) 970 6852 w 10 /LucidaSans-Italic f (speaks for) 1183 6852 w 10 /LucidaSansUnicode00 f (relation [LABW91] is kept in a table on the authentication server.) 1721 6852 w (To) 4916 6852 w (simplify) 720 6972 w (the) 1136 6972 w (management) 1324 6972 w (of) 1988 6972 w (users) 2119 6972 w (computing) 2413 6972 w (in) 2966 6972 w (different) 3090 6972 w (authentication domains, it also) 3541 6972 w (contains) 720 7092 w (mappings) 1172 7092 w (between) 1694 7092 w (user) 2145 7092 w (names) 2399 7092 w (in) 2761 7092 w (different) 2897 7092 w (domains,) 3360 7092 w (for) 3851 7092 w (example) 4035 7092 w (saying) 4493 7092 w (that) 4849 7092 w (user) 720 7212 w 10 /LucidaTypewriter f (rtm) 962 7212 w 10 /LucidaSansUnicode00 f (in one domain is the same person as user) 1210 7212 w 10 /LucidaTypewriter f (rtmorris) 3271 7212 w 10 /LucidaSansUnicode00 f (in another.) 3879 7212 w cleartomark showpage saveobj restore %%EndPage: 18 18 %%Page: 19 19 /saveobj save def mark 19 pagesetup 10 /LucidaSansUnicode00 f (\255 19 \255) 2752 480 w 10 /LucidaSans-Demi f (File Permissions) 720 840 w 10 /LucidaSansUnicode00 f (One) 970 996 w (of) 1201 996 w (the) 1334 996 w (advantages) 1524 996 w (of) 2108 996 w (constructing) 2242 996 w (services) 2884 996 w (as) 3307 996 w (file) 3449 996 w (systems) 3636 996 w (is) 4063 996 w (that) 4179 996 w (the) 4406 996 w (solutions) 4597 996 w (to) 720 1116 w (ownership) 856 1116 w (and) 1396 1116 w (permission) 1614 1116 w (problems) 2188 1116 w (fall) 2683 1116 w (out) 2870 1116 w (naturally.) 3067 1116 w (As) 3590 1116 w (in) 3747 1116 w (UNIX,) 3875 1116 w (each) 4179 1116 w (file) 4440 1116 w (or) 4628 1116 w (direc\255) 4767 1116 w (tory) 720 1236 w (has) 952 1236 w (separate) 1161 1236 w (read,) 1616 1236 w (write,) 1905 1236 w (and) 2219 1236 w (execute/search) 2441 1236 w (permissions) 3231 1236 w (for) 3860 1236 w (the) 4041 1236 w (file) 4238 1236 w 10 /LucidaSansUnicode20 f (\031) 4389 1236 w 10 /LucidaSansUnicode00 f (s) 4421 1236 w (owner,) 4514 1236 w (the) 4885 1236 w (file) 720 1356 w 10 /LucidaSansUnicode20 f (\031) 871 1356 w 10 /LucidaSansUnicode00 f (s group, and anyone else.) 903 1356 w (The idea of group is unusual: any user name is potentially) 2219 1356 w (a) 720 1476 w (group) 816 1476 w (name.) 1146 1476 w (A) 1517 1476 w (group) 1627 1476 w (is) 1957 1476 w (just) 2078 1476 w (a) 2299 1476 w (user) 2395 1476 w (with) 2646 1476 w (a) 2893 1476 w (list) 2990 1476 w (of) 3178 1476 w (other) 3318 1476 w (users) 3617 1476 w (in) 3920 1476 w (the) 4053 1476 w (group.) 4250 1476 w (Conven\255) 4645 1476 w (tions) 720 1596 w (make) 994 1596 w (the) 1290 1596 w (distinction:) 1479 1596 w (most) 2056 1596 w (people) 2332 1596 w (have) 2694 1596 w (user) 2953 1596 w (names) 3197 1596 w (without) 3548 1596 w (group) 3947 1596 w (members,) 4269 1596 w (while) 4787 1596 w (groups) 720 1716 w (have) 1093 1716 w (long) 1352 1716 w (lists) 1600 1716 w (of) 1831 1716 w (attached) 1963 1716 w (names.) 2413 1716 w (For) 2828 1716 w (example,) 3018 1716 w (the) 3497 1716 w 10 /LucidaTypewriter f (sys) 3686 1716 w 10 /LucidaSansUnicode00 f (group) 3936 1716 w (traditionally) 4259 1716 w (has) 4872 1716 w (all) 720 1836 w (the) 879 1836 w (system) 1079 1836 w (programmers,) 1464 1836 w (and) 2198 1836 w (system) 2423 1836 w (files) 2808 1836 w (are) 3055 1836 w (accessible) 3252 1836 w (by) 3789 1836 w (group) 3949 1836 w 10 /LucidaTypewriter f (sys) 4283 1836 w 10 /LucidaSansUnicode00 f (.) 4499 1836 w (Consider) 4608 1836 w (the following two lines of a user database stored on a server:) 720 1956 w 9 /LucidaTypewriter f (pjw:pjw:) 920 2126 w (sys::pjw,ken,philw,presotto) 920 2236 w 10 /LucidaSansUnicode00 f (The) 720 2416 w (first) 937 2416 w (establishes) 1168 2416 w (user) 1744 2416 w 10 /LucidaTypewriter f (pjw) 1990 2416 w 10 /LucidaSansUnicode00 f (as) 2242 2416 w (a) 2384 2416 w (regular) 2475 2416 w (user.) 2857 2416 w (The) 3167 2416 w (second) 3384 2416 w (establishes) 3765 2416 w (user) 4342 2416 w 10 /LucidaTypewriter f (sys) 4589 2416 w 10 /LucidaSansUnicode00 f (as) 4842 2416 w (a) 4985 2416 w (group) 720 2536 w (and) 1045 2536 w (lists) 1261 2536 w (four) 1494 2536 w (users) 1731 2536 w (who) 2028 2536 w (are) 2264 2536 w 10 /LucidaSans-Italic f (members) 2452 2536 w 10 /LucidaSansUnicode00 f (of) 2938 2536 w (that) 3072 2536 w (group.) 3299 2536 w (The) 3688 2536 w (empty) 3905 2536 w (colon-separated) 4241 2536 w (field) 720 2656 w (is) 972 2656 w (space) 1090 2656 w (for) 1404 2656 w (a) 1581 2656 w (user) 1674 2656 w (to) 1922 2656 w (be) 2058 2656 w (named) 2215 2656 w (as) 2582 2656 w (the) 2726 2656 w 10 /LucidaSans-Italic f (group) 2919 2656 w (leader) 3246 2656 w 10 /LucidaSansUnicode00 f (.) 3551 2656 w (If) 3653 2656 w (a) 3757 2656 w (group) 3850 2656 w (has) 4177 2656 w (a) 4384 2656 w (leader,) 4478 2656 w (that) 4849 2656 w (user) 720 2776 w (has) 972 2776 w (special) 1182 2776 w (permissions) 1558 2776 w (for) 2187 2776 w (the) 2368 2776 w (group,) 2565 2776 w (such) 2928 2776 w (as) 3196 2776 w (freedom) 3344 2776 w (to) 3793 2776 w (change) 3932 2776 w (the) 4321 2776 w (group) 4517 2776 w (per\255) 4847 2776 w (missions) 720 2896 w (of) 1189 2896 w (files) 1329 2896 w (in) 1573 2896 w (that) 1706 2896 w (group.) 1939 2896 w (If) 2334 2896 w (no) 2442 2896 w (leader) 2607 2896 w (is) 2949 2896 w (specified,) 3071 2896 w (each) 3580 2896 w (member) 3846 2896 w (of) 4290 2896 w (the) 4430 2896 w (group) 4628 2896 w (is) 4960 2896 w (considered) 720 3016 w (equal,) 1294 3016 w (as) 1631 3016 w (if) 1777 3016 w (each) 1883 3016 w (were) 2147 3016 w (the) 2417 3016 w (leader.) 2612 3016 w (In) 3016 3016 w (our) 3147 3016 w (example,) 3351 3016 w (only) 3836 3016 w 10 /LucidaTypewriter f (pjw) 4080 3016 w 10 /LucidaSansUnicode00 f (can) 4336 3016 w (add) 4544 3016 w (mem\255) 4765 3016 w (bers to his group, but all of) 720 3136 w 10 /LucidaTypewriter f (sys) 2089 3136 w 10 /LucidaSansUnicode20 f (\031) 2305 3136 w 10 /LucidaSansUnicode00 f (s members are equal partners in that group.) 2337 3136 w (Regular files are owned by the user that creates them.) 970 3292 w (The group name is inherited) 3661 3292 w (from) 720 3412 w (the) 1002 3412 w (directory) 1207 3412 w (holding) 1688 3412 w (the) 2106 3412 w (new) 2311 3412 w (file.) 2556 3412 w (Device) 2821 3412 w (files) 3190 3412 w (are) 3442 3412 w (treated) 3644 3412 w (specially:) 4038 3412 w (the) 4534 3412 w (kernel) 4738 3412 w (may) 720 3532 w (arrange) 960 3532 w (the) 1372 3532 w (ownership) 1567 3532 w (and) 2109 3532 w (permissions) 2329 3532 w (of) 2956 3532 w (a) 3094 3532 w (file) 3189 3532 w (appropriate) 3381 3532 w (to) 3986 3532 w (the) 4125 3532 w (user) 4321 3532 w (accessing) 4572 3532 w (the file.) 720 3652 w (A) 970 3808 w (good) 1076 3808 w (example) 1360 3808 w (of) 1810 3808 w (the) 1945 3808 w (generality) 2137 3808 w (this) 2654 3808 w (offers) 2871 3808 w (is) 3192 3808 w (process) 3310 3808 w (files,) 3722 3808 w (which) 3994 3808 w (are) 4313 3808 w (owned) 4503 3808 w (and) 4860 3808 w (read-protected) 720 3928 w (by) 1506 3928 w (the) 1669 3928 w (owner) 1872 3928 w (of) 2217 3928 w (the) 2363 3928 w (process.) 2566 3928 w (If) 3052 3928 w (the) 3166 3928 w (owner) 3369 3928 w (wants) 3714 3928 w (to) 4044 3928 w (let) 4190 3928 w (someone) 4360 3928 w (else) 4848 3928 w (access) 720 4048 w (the) 1080 4048 w (memory) 1280 4048 w (of) 1721 4048 w (a) 1864 4048 w (process,) 1964 4048 w (for) 2415 4048 w (example) 2599 4048 w (to) 3057 4048 w (let) 3200 4048 w (the) 3367 4048 w (author) 3567 4048 w (of) 3930 4048 w (a) 4073 4048 w (program) 4173 4048 w (debug) 4634 4048 w (a) 4985 4048 w (broken image, the standard) 720 4168 w 10 /LucidaTypewriter f (chmod) 2098 4168 w 10 /LucidaSansUnicode00 f (command applied to the process files does the job.) 2490 4168 w (Another) 970 4324 w (unusual) 1402 4324 w (application) 1829 4324 w (of) 2407 4324 w (file) 2549 4324 w (permissions) 2744 4324 w (is) 3375 4324 w (the) 3499 4324 w (dump) 3698 4324 w (file) 4023 4324 w (system,) 4218 4324 w (which) 4634 4324 w (is) 4960 4324 w (not) 720 4444 w (only) 913 4444 w (served) 1150 4444 w (by) 1502 4444 w (the) 1650 4444 w (same) 1838 4444 w (file) 2126 4444 w (server) 2310 4444 w (as) 2640 4444 w (the) 2779 4444 w (original) 2967 4444 w (data,) 3368 4444 w (but represented by the same) 3643 4444 w (user) 720 4564 w (database.) 968 4564 w (Files) 1505 4564 w (in) 1762 4564 w (the) 1891 4564 w (dump) 2085 4564 w (are) 2405 4564 w (therefore) 2596 4564 w (given) 3082 4564 w (identical) 3382 4564 w (protection) 3832 4564 w (as) 4369 4564 w (files) 4514 4564 w (in) 4755 4564 w (the) 4885 4564 w (regular) 720 4684 w (file) 1102 4684 w (system;) 1288 4684 w (if) 1695 4684 w (a) 1796 4684 w (file) 1886 4684 w (is) 2072 4684 w (owned) 2187 4684 w (by) 2541 4684 w 10 /LucidaTypewriter f (pjw) 2691 4684 w 10 /LucidaSansUnicode00 f (and) 2942 4684 w (read-protected,) 3157 4684 w (once) 3962 4684 w (it) 4227 4684 w (is) 4328 4684 w (in) 4443 4684 w (the) 4569 4684 w (dump) 4759 4684 w (file) 720 4804 w (system) 911 4804 w (it) 1291 4804 w (is) 1397 4804 w (still) 1517 4804 w (owned) 1733 4804 w (by) 2093 4804 w 10 /LucidaTypewriter f (pjw) 2249 4804 w 10 /LucidaSansUnicode00 f (and) 2506 4804 w (read-protected.) 2727 4804 w (Also,) 3570 4804 w (since) 3853 4804 w (the) 4143 4804 w (dump) 4339 4804 w (file) 4661 4804 w (sys\255) 4853 4804 w (tem) 720 4924 w (is) 947 4924 w (immutable,) 1068 4924 w (the) 1658 4924 w (file) 1854 4924 w (cannot) 2046 4924 w (be) 2415 4924 w (changed;) 2575 4924 w (it) 3059 4924 w (is) 3166 4924 w (read-protected) 3287 4924 w (forever.) 4066 4924 w (Drawbacks) 4514 4924 w (are) 720 5044 w (that) 915 5044 w (if) 1149 5044 w (the) 1258 5044 w (file) 1456 5044 w (is) 1650 5044 w (readable) 1773 5044 w (but) 2234 5044 w (should) 2439 5044 w (have) 2810 5044 w (been) 3078 5044 w (read-protected,) 3358 5044 w (it) 4172 5044 w (is) 4282 5044 w (readable) 4406 5044 w (for\255) 4868 5044 w (ever, and that user names are hard to re-use.) 720 5164 w 10 /LucidaSans-Demi f (Performance) 720 5404 w 10 /LucidaSansUnicode00 f (As) 970 5560 w (a) 1137 5560 w (simple) 1239 5560 w (measure) 1607 5560 w (of) 2069 5560 w (the) 2215 5560 w (performance) 2418 5560 w (of) 3082 5560 w (the) 3228 5560 w (Plan) 3431 5560 w (9) 3680 5560 w (kernel,) 3791 5560 w (we) 4173 5560 w (compared) 4354 5560 w (the) 4885 5560 w (time) 720 5680 w (to) 976 5680 w (do) 1115 5680 w (some) 1280 5680 w (simple) 1582 5680 w (operations) 1944 5680 w (on) 2501 5680 w (Plan) 2664 5680 w (9) 2905 5680 w (and) 3008 5680 w (on) 3228 5680 w (SGI) 3391 5680 w 10 /LucidaSansUnicode20 f (\031) 3546 5680 w 10 /LucidaSansUnicode00 f (s) 3578 5680 w (IRIX) 3669 5680 w (Release) 3893 5680 w (5.3) 4299 5680 w (running) 4497 5680 w (on) 4917 5680 w (an) 720 5800 w (SGI) 886 5800 w (Challenge) 1090 5800 w (M) 1620 5800 w (with) 1756 5800 w (a) 2011 5800 w (100MHz) 2116 5800 w (MIPS) 2572 5800 w (R4400) 2846 5800 w (and) 3211 5800 w (a) 3441 5800 w (1-megabyte) 3546 5800 w (secondary) 4191 5800 w (cache.) 4733 5800 w (The test program was written in Alef, compiled with the same compiler, and run on iden\255) 720 5920 w (tical hardware, so the only variables are the operating system and libraries.) 720 6040 w (The) 970 6196 w (program) 1208 6196 w (tests) 1681 6196 w (the) 1970 6196 w (time) 2182 6196 w (to) 2455 6196 w (do) 2611 6196 w (a) 2793 6196 w (context) 2906 6196 w (switch) 3329 6196 w (\() 3694 6196 w 10 /LucidaTypewriter f (rendezvous) 3727 6196 w 10 /LucidaSansUnicode00 f (on) 4505 6196 w (Plan) 4686 6196 w (9,) 4945 6196 w 10 /LucidaTypewriter f (blockproc) 720 6316 w 10 /LucidaSansUnicode00 f (on) 1410 6316 w (IRIX\);) 1575 6316 w (a) 1866 6316 w (trivial) 1963 6316 w (system) 2277 6316 w (call) 2659 6316 w (\() 2865 6316 w 10 /LucidaTypewriter f (rfork\(0\)) 2898 6316 w 10 /LucidaSansUnicode00 f (and) 3516 6316 w 10 /LucidaTypewriter f (nap\(0\)) 3738 6316 w 10 /LucidaSansUnicode00 f (\);) 4170 6316 w (and) 4277 6316 w (lightweight) 4498 6316 w (fork) 720 6436 w (\() 965 6436 w 10 /LucidaTypewriter f (rfork\(RFPROC\)) 998 6436 w 10 /LucidaSansUnicode00 f (and) 1982 6436 w 10 /LucidaTypewriter f (sproc\(PR_SFDS|PR_SADDR\)) 2210 6436 w 10 /LucidaSansUnicode00 f (\).) 3866 6436 w (It) 4011 6436 w (also) 4126 6436 w (measures) 4371 6436 w (the) 4885 6436 w (time) 720 6556 w (to) 968 6556 w (send) 1099 6556 w (a) 1364 6556 w (byte) 1452 6556 w (on) 1693 6556 w (a) 1849 6556 w (pipe) 1937 6556 w (from) 2181 6556 w (one) 2446 6556 w (process) 2658 6556 w (to) 3065 6556 w (another) 3196 6556 w (and) 3603 6556 w (the) 3816 6556 w (throughput) 4004 6556 w (on) 4586 6556 w (a pipe) 4742 6556 w (between two processes.) 720 6676 w (The results appear in Table 1.) 1943 6676 w cleartomark showpage saveobj restore %%EndPage: 19 19 %%Page: 20 20 /saveobj save def mark 20 pagesetup 10 /LucidaSansUnicode00 f (\255 20 \255) 2752 480 w 10 /S f (_) 1733 800 w (_____________________________________________) 1777 800 w 10 /LucidaSansUnicode00 f (Test) 2052 920 w (Plan 9) 2818 920 w (IRIX) 3598 920 w 10 /S f (_) 1733 940 w (_____________________________________________) 1777 940 w 10 /LucidaSansUnicode00 f (Context switch) 1783 1060 w (39 \265s) 2868 1060 w (150 \265s) 3529 1060 w (System call) 1783 1180 w (6 \265s) 2931 1180 w (36 \265s) 3592 1180 w (Light fork) 1783 1300 w (1300 \265s) 2742 1300 w (2200 \265s) 3466 1300 w (Pipe latency) 1783 1420 w (110 \265s) 2805 1420 w (200 \265s) 3529 1420 w (Pipe bandwidth) 1783 1540 w (11678 KB/s) 2679 1540 w (14545 KB/s) 3403 1540 w 10 /S f (_) 1733 1560 w (_____________________________________________) 1777 1560 w (\347) 1733 1560 w (\347) 1733 1500 w (\347) 1733 1400 w (\347) 1733 1300 w (\347) 1733 1200 w (\347) 1733 1100 w (\347) 1733 1000 w (\347) 1733 900 w (\347) 4027 1560 w (\347) 4027 1500 w (\347) 4027 1400 w (\347) 4027 1300 w (\347) 4027 1200 w (\347) 4027 1100 w (\347) 4027 1000 w (\347) 4027 900 w 10 /LucidaSans-Italic f (Table 1.) 2025 1740 w (Performance comparison.) 2482 1740 w 10 /LucidaSansUnicode00 f (Although) 720 1896 w (the) 1203 1896 w (Plan) 1397 1896 w (9) 1637 1896 w (times) 1739 1896 w (are) 2044 1896 w (not) 2235 1896 w (spectacular,) 2434 1896 w (they) 3056 1896 w (show) 3302 1896 w (that) 3592 1896 w (the) 3822 1896 w (kernel) 4016 1896 w (is) 4357 1896 w (competitive) 4476 1896 w (with commercial systems.) 720 2016 w 10 /LucidaSans-Demi f (Discussion) 720 2256 w 10 /LucidaSansUnicode00 f (Plan) 970 2412 w (9) 1213 2412 w (has) 1318 2412 w (a) 1528 2412 w (relatively) 1625 2412 w (conventional) 2103 2412 w (kernel;) 2762 2412 w (the) 3138 2412 w (system) 3336 2412 w 10 /LucidaSansUnicode20 f (\031) 3676 2412 w 10 /LucidaSansUnicode00 f (s) 3708 2412 w (novelty) 3802 2412 w (lies) 4194 2412 w (in) 4402 2412 w (the) 4536 2412 w (pieces) 4734 2412 w (outside) 720 2532 w (the) 1123 2532 w (kernel) 1322 2532 w (and) 1668 2532 w (the) 1892 2532 w (way) 2090 2532 w (they) 2317 2532 w (interact.) 2567 2532 w (When) 3042 2532 w (building) 3351 2532 w (Plan) 3793 2532 w (9,) 4037 2532 w (we) 4175 2532 w (considered) 4351 2532 w (all) 4927 2532 w (aspects) 720 2652 w (of) 1134 2652 w (the) 1282 2652 w (system) 1487 2652 w (together,) 1877 2652 w (solving) 2371 2652 w (problems) 2767 2652 w (where) 3275 2652 w (the) 3618 2652 w (solution) 3824 2652 w (fit) 4267 2652 w (best.) 4421 2652 w (Some\255) 4743 2652 w (times) 720 2772 w (the) 1022 2772 w (solution) 1213 2772 w (spanned) 1641 2772 w (many) 2089 2772 w (components.) 2387 2772 w (An) 3083 2772 w (example) 3249 2772 w (is) 3697 2772 w (the) 3812 2772 w (problem) 4002 2772 w (of) 4443 2772 w (heteroge\255) 4576 2772 w (neous) 720 2892 w (instruction) 1067 2892 w (architectures,) 1645 2892 w (which) 2362 2892 w (is) 2699 2892 w (addressed) 2835 2892 w (by) 3390 2892 w (the) 3561 2892 w (compilers) 3772 2892 w (\(different) 4302 2892 w (code) 4809 2892 w (characters,) 720 3012 w (portable) 1301 3012 w (object) 1755 3012 w (code\),) 2102 3012 w (the) 2447 3012 w (environment) 2651 3012 w (\() 3311 3012 w 10 /LucidaTypewriter f ($cputype) 3344 3012 w 10 /LucidaSansUnicode00 f (and) 3968 3012 w 10 /LucidaTypewriter f ($objtype) 4196 3012 w 10 /LucidaSansUnicode00 f (\),) 4772 3012 w (the) 4885 3012 w (name) 720 3132 w (space) 1029 3132 w (\(binding) 1348 3132 w (in) 1794 3132 w 10 /LucidaTypewriter f (/bin) 1928 3132 w 10 /LucidaSansUnicode00 f (\),) 2216 3132 w (and) 2324 3132 w (other) 2547 3132 w (components.) 2847 3132 w (Sometimes) 3551 3132 w (many) 4124 3132 w (issues) 4430 3132 w (could) 4774 3132 w (be) 720 3252 w (solved) 879 3252 w (in) 1231 3252 w (a) 1362 3252 w (single) 1457 3252 w (place.) 1786 3252 w (The) 2144 3252 w (best) 2365 3252 w (example) 2612 3252 w (is) 3065 3252 w (9P,) 3185 3252 w (which) 3375 3252 w (centralizes) 3696 3252 w (naming,) 4259 3252 w (access,) 4693 3252 w (and) 720 3372 w (authentication.) 942 3372 w (9P) 1743 3372 w (is) 1903 3372 w (really) 2025 3372 w (the) 2329 3372 w (core) 2526 3372 w (of) 2777 3372 w (the) 2917 3372 w (system;) 3114 3372 w (it) 3528 3372 w (is) 3636 3372 w (fair) 3758 3372 w (to) 3962 3372 w (say) 4102 3372 w (that) 4302 3372 w (the) 4535 3372 w (Plan) 4733 3372 w (9) 4977 3372 w (kernel is primarily a 9P multiplexer.) 720 3492 w (Plan) 970 3648 w (9) 1212 3648 w 10 /LucidaSansUnicode20 f (\031) 1275 3648 w 10 /LucidaSansUnicode00 f (s) 1307 3648 w (focus) 1399 3648 w (on) 1702 3648 w (files) 1866 3648 w (and) 2109 3648 w (naming) 2330 3648 w (is) 2735 3648 w (central) 2857 3648 w (to) 3230 3648 w (its) 3370 3648 w (expressiveness.) 3529 3648 w (Particularly) 4371 3648 w (in) 4949 3648 w (distributed) 720 3768 w (computing,) 1288 3768 w (the) 1877 3768 w (way) 2068 3768 w (things) 2288 3768 w (are) 2627 3768 w (named) 2815 3768 w (has) 3180 3768 w (profound) 3384 3768 w (influence) 3870 3768 w (on) 4350 3768 w (the) 4509 3768 w (system) 4700 3768 w ([Nee89].) 720 3888 w (The) 1199 3888 w (combination) 1417 3888 w (of) 2057 3888 w (local) 2192 3888 w (name) 2454 3888 w (spaces) 2757 3888 w (and) 3122 3888 w (global) 3340 3888 w (conventions) 3677 3888 w (to) 4299 3888 w (interconnect) 4435 3888 w (networked) 720 4008 w (resources) 1273 4008 w (avoids) 1785 4008 w (the) 2138 4008 w (difficulty) 2335 4008 w (of) 2803 4008 w (maintaining) 2943 4008 w (a) 3560 4008 w (global) 3657 4008 w (uniform) 3998 4008 w (name) 4425 4008 w (space,) 4732 4008 w (while) 720 4128 w (naming) 1011 4128 w (everything) 1412 4128 w (like) 1959 4128 w (a) 2169 4128 w (file) 2262 4128 w (makes) 2451 4128 w (the) 2803 4128 w (system) 2997 4128 w (easy) 3376 4128 w (to) 3629 4128 w (understand,) 3766 4128 w (even) 4389 4128 w (for) 4654 4128 w (nov\255) 4832 4128 w (ices.) 720 4248 w (Consider) 1005 4248 w (the) 1471 4248 w (dump) 1659 4248 w (file) 1973 4248 w (system,) 2157 4248 w (which) 2562 4248 w (is) 2876 4248 w (trivial) 2989 4248 w (to) 3294 4248 w (use) 3425 4248 w (for) 3627 4248 w (anyone) 3799 4248 w (familiar) 4180 4248 w (with) 4581 4248 w (hier\255) 4819 4248 w (archical) 720 4368 w (file) 1138 4368 w (systems.) 1334 4368 w (At) 1834 4368 w (a) 1985 4368 w (deeper) 2085 4368 w (level,) 2465 4368 w (building) 2764 4368 w (all) 3209 4368 w (the) 3368 4368 w (resources) 3569 4368 w (above) 4085 4368 w (a) 4418 4368 w (single) 4519 4368 w (uni\255) 4854 4368 w (form) 720 4488 w (interface) 998 4488 w (makes) 1468 4488 w (interoperability) 1827 4488 w (easy.) 2613 4488 w (Once) 2937 4488 w (a) 3230 4488 w (resource) 3331 4488 w (exports) 3795 4488 w (a) 4210 4488 w (9P) 4310 4488 w (interface,) 4473 4488 w (it) 4974 4488 w (can) 720 4608 w (combine) 931 4608 w (transparently) 1390 4608 w (with) 2075 4608 w (any) 2324 4608 w (other) 2537 4608 w (part) 2838 4608 w (of) 3078 4608 w (the) 3220 4608 w (system) 3419 4608 w (to) 3803 4608 w (build) 3945 4608 w (unusual) 4235 4608 w (applica\255) 4662 4608 w (tions;) 720 4728 w (the) 1043 4728 w (details) 1249 4728 w (are) 1620 4728 w (hidden.) 1823 4728 w (This) 2272 4728 w (may) 2527 4728 w (sound) 2777 4728 w (object-oriented,) 3126 4728 w (but) 3969 4728 w (there) 4181 4728 w (are) 4483 4728 w (distinc\255) 4685 4728 w (tions.) 720 4848 w (First,) 1064 4848 w (9P) 1348 4848 w (defines) 1506 4848 w (a) 1900 4848 w (fixed) 1995 4848 w (set) 2281 4848 w (of) 2465 4848 w 10 /LucidaSansUnicode20 f (\030) 2603 4848 w 10 /LucidaSansUnicode00 f (methods) 2635 4848 w 10 /LucidaSansUnicode20 f (\031) 3058 4848 w 10 /LucidaSansUnicode00 f (;) 3090 4848 w (it) 3162 4848 w (is) 3268 4848 w (not) 3388 4848 w (an) 3588 4848 w (extensible) 3746 4848 w (protocol.) 4287 4848 w (More) 4796 4848 w (important,) 720 4968 w (files) 1296 4968 w (are) 1563 4968 w (well-defined) 1780 4968 w (and) 2460 4968 w (well-understood) 2705 4968 w (and) 3576 4968 w (come) 3821 4968 w (prepackaged) 4147 4968 w (with) 4835 4968 w (familiar) 720 5088 w (methods) 1127 5088 w (of) 1589 5088 w (access,) 1726 5088 w (protection,) 2112 5088 w (naming,) 2681 5088 w (and) 3115 5088 w (networking.) 3334 5088 w (Objects,) 3982 5088 w (despite) 4420 5088 w (their) 4815 5088 w (generality,) 720 5208 w (do) 1266 5208 w (not) 1425 5208 w (come) 1620 5208 w (with) 1916 5208 w (these) 2156 5208 w (attributes) 2453 5208 w (defined.) 2956 5208 w (By) 3421 5208 w (reducing) 3566 5208 w 10 /LucidaSansUnicode20 f (\030) 4027 5208 w 10 /LucidaSansUnicode00 f (object) 4059 5208 w 10 /LucidaSansUnicode20 f (\031) 4357 5208 w 10 /LucidaSansUnicode00 f (to) 4424 5208 w 10 /LucidaSansUnicode20 f (\030) 4557 5208 w 10 /LucidaSansUnicode00 f (file) 4589 5208 w 10 /LucidaSansUnicode20 f (\031) 4740 5208 w 10 /LucidaSansUnicode00 f (,) 4772 5208 w (Plan) 4839 5208 w (9 gets some technology for free.) 720 5328 w (Nonetheless,) 970 5484 w (it) 1635 5484 w (is) 1739 5484 w (possible) 1857 5484 w (to) 2299 5484 w (push) 2436 5484 w (the) 2713 5484 w (idea) 2907 5484 w (of) 3149 5484 w (file-based) 3286 5484 w (computing) 3822 5484 w (too) 4381 5484 w (far.) 4579 5484 w (Con\255) 4815 5484 w (verting) 720 5604 w (every) 1096 5604 w (resource) 1390 5604 w (in) 1846 5604 w (the) 1974 5604 w (system) 2166 5604 w (into) 2543 5604 w (a) 2769 5604 w (file) 2861 5604 w (system) 3049 5604 w (is) 3425 5604 w (a) 3541 5604 w (kind) 3632 5604 w (of) 3880 5604 w (metaphor,) 4014 5604 w (and) 4550 5604 w (meta\255) 4766 5604 w (phors) 720 5724 w (can) 1036 5724 w (be) 1242 5724 w (abused.) 1399 5724 w (A) 1851 5724 w (good) 1958 5724 w (example) 2243 5724 w (of) 2694 5724 w (restraint) 2830 5724 w (is) 3277 5724 w 10 /LucidaTypewriter f (/proc) 3395 5724 w 10 /LucidaSansUnicode00 f (,) 3755 5724 w (which) 3825 5724 w (is) 4144 5724 w (only) 4262 5724 w (a) 4504 5724 w (view) 4597 5724 w (of) 4849 5724 w (a) 4985 5724 w (process,) 720 5844 w (not) 1172 5844 w (a) 1378 5844 w (representation.) 1479 5844 w (To) 2296 5844 w (run) 2465 5844 w (processes,) 2675 5844 w (the) 3233 5844 w (usual) 3433 5844 w 10 /LucidaTypewriter f (fork) 3737 5844 w 10 /LucidaSansUnicode00 f (and) 4070 5844 w 10 /LucidaTypewriter f (exec) 4295 5844 w 10 /LucidaSansUnicode00 f (calls) 4628 5844 w (are) 4888 5844 w (still necessary, rather than doing something like) 720 5964 w 9 /LucidaTypewriter f (cp) 920 6134 w (/bin/date) 1115 6134 w (/proc/clone/mem) 1765 6134 w 10 /LucidaSansUnicode00 f (The) 720 6314 w (problem) 940 6314 w (with) 1385 6314 w (such) 1629 6314 w (examples) 1894 6314 w (is) 2397 6314 w (that) 2516 6314 w (they) 2746 6314 w (require) 2992 6314 w (the) 3379 6314 w (server) 3574 6314 w (to) 3911 6314 w (do) 4049 6314 w (things) 4213 6314 w (not) 4556 6314 w (under) 4756 6314 w (its) 720 6434 w (control.) 884 6434 w (The) 1337 6434 w (ability) 1565 6434 w (to) 1906 6434 w (assign) 2051 6434 w (meaning) 2408 6434 w (to) 2874 6434 w (a) 3019 6434 w (command) 3121 6434 w (like) 3646 6434 w (this) 3865 6434 w (does) 4090 6434 w (not) 4367 6434 w (imply) 4573 6434 w (the) 4885 6434 w (meaning will fall naturally out of) 720 6554 w (the) 2326 6554 w (structure) 2514 6554 w (of) 2985 6554 w (answering) 3116 6554 w (the) 3644 6554 w (9P) 3832 6554 w (requests) 3983 6554 w (it) 4433 6554 w (generates.) 4532 6554 w (As) 720 6674 w (a) 886 6674 w (related) 987 6674 w (example,) 1370 6674 w (Plan) 1861 6674 w (9) 2108 6674 w (does) 2217 6674 w (not) 2494 6674 w (put) 2700 6674 w (machine) 2907 6674 w 10 /LucidaSansUnicode20 f (\031) 3315 6674 w 10 /LucidaSansUnicode00 f (s) 3347 6674 w (network) 3443 6674 w (names) 3880 6674 w (in) 4242 6674 w (the) 4378 6674 w (file) 4578 6674 w (name) 4774 6674 w (space.) 720 6794 w (The) 1096 6794 w (network) 1313 6794 w (interfaces) 1741 6794 w (provide) 2252 6794 w (a) 2653 6794 w (very) 2744 6794 w (different) 2982 6794 w (model) 3437 6794 w (of) 3776 6794 w (naming,) 3911 6794 w (because) 4343 6794 w (using) 4774 6794 w 10 /LucidaTypewriter f (open) 720 6914 w 10 /LucidaSansUnicode00 f (,) 1008 6914 w 10 /LucidaTypewriter f (create) 1087 6914 w 10 /LucidaSansUnicode00 f (,) 1519 6914 w 10 /LucidaTypewriter f (read) 1598 6914 w 10 /LucidaSansUnicode00 f (,) 1886 6914 w (and) 1965 6914 w 10 /LucidaTypewriter f (write) 2192 6914 w 10 /LucidaSansUnicode00 f (on) 2599 6914 w (such) 2769 6914 w (files) 3042 6914 w (would) 3291 6914 w (not) 3629 6914 w (offer) 3835 6914 w (a) 4113 6914 w (suitable) 4214 6914 w (place) 4642 6914 w (to) 4942 6914 w (encode all the details of call setup for an arbitrary network.) 720 7034 w (This) 3667 7034 w (does) 3905 7034 w (not) 4169 7034 w (mean) 4362 7034 w (that) 4661 7034 w (the) 4885 7034 w (network) 720 7154 w (interface) 1147 7154 w (cannot) 1606 7154 w (be) 1969 7154 w (file-like,) 2123 7154 w (just) 2571 7154 w (that) 2786 7154 w (it) 3012 7154 w (must) 3113 7154 w (have) 3390 7154 w (a) 3649 7154 w (more) 3738 7154 w (tightly) 4023 7154 w (defined) 4365 7154 w (struc\255) 4765 7154 w (ture.) 720 7274 w cleartomark showpage saveobj restore %%EndPage: 20 20 %%Page: 21 21 /saveobj save def mark 21 pagesetup 10 /LucidaSansUnicode00 f (\255 21 \255) 2752 480 w (What) 970 840 w (would) 1243 840 w (we) 1568 840 w (do) 1735 840 w (differently) 1893 840 w (next) 2426 840 w (time?) 2676 840 w (Some) 2999 840 w (elements) 3297 840 w (of) 3771 840 w (the) 3903 840 w (implementation) 4092 840 w (are) 4888 840 w (unsatisfactory.) 720 960 w (Using) 1501 960 w (streams) 1810 960 w (to) 2229 960 w (implement) 2362 960 w (network) 2915 960 w (interfaces) 3342 960 w (in) 3852 960 w (the) 3978 960 w (kernel) 4168 960 w (allows) 4505 960 w (pro\255) 4842 960 w (tocols) 720 1080 w (to) 1052 1080 w (be) 1192 1080 w (connected) 1353 1080 w (together) 1894 1080 w (dynamically,) 2348 1080 w (such) 2992 1080 w (as) 3260 1080 w (to) 3409 1080 w (attach) 3550 1080 w (the) 3890 1080 w (same) 4088 1080 w (TTY) 4386 1080 w (driver) 4617 1080 w (to) 4942 1080 w (TCP,) 720 1200 w (URP,) 983 1200 w (and) 1246 1200 w (IL) 1470 1200 w (connections,) 1596 1200 w (but) 2255 1200 w (Plan) 2461 1200 w (9) 2706 1200 w (makes) 2812 1200 w (no) 3168 1200 w (use) 3334 1200 w (of) 3546 1200 w (this) 3687 1200 w (configurability.) 3909 1200 w (\(It) 4715 1200 w (was) 4857 1200 w (exploited,) 720 1320 w (however,) 1265 1320 w (in) 1760 1320 w (the) 1909 1320 w (research) 2123 1320 w (UNIX) 2595 1320 w (system) 2889 1320 w (for) 3288 1320 w (which) 3486 1320 w (streams) 3826 1320 w (were) 4269 1320 w (invented.\)) 4558 1320 w (Replacing streams by static I/O queues would simplify the code and make it faster.) 720 1440 w (Although) 970 1596 w (the) 1453 1596 w (main) 1647 1596 w (Plan) 1925 1596 w (9) 2165 1596 w (kernel) 2267 1596 w (is) 2609 1596 w (portable) 2729 1596 w (across) 3174 1596 w (many) 3524 1596 w (machines,) 3826 1596 w (the) 4357 1596 w (file) 4552 1596 w (server) 4743 1596 w (is) 720 1716 w (implemented) 834 1716 w (separately.) 1505 1716 w (This) 2098 1716 w (has) 2337 1716 w (caused) 2539 1716 w (several) 2910 1716 w (problems:) 3283 1716 w (drivers) 3805 1716 w (that) 4171 1716 w (must) 4395 1716 w (be) 4671 1716 w (writ\255) 4823 1716 w (ten) 720 1836 w (twice,) 910 1836 w (bugs) 1227 1836 w (that) 1501 1836 w (must) 1728 1836 w (be) 2007 1836 w (fixed) 2162 1836 w (twice,) 2444 1836 w (and) 2762 1836 w (weaker) 2978 1836 w (portability) 3357 1836 w (of) 3889 1836 w (the) 4023 1836 w (file) 4214 1836 w (system) 4401 1836 w (code.) 4777 1836 w (The) 720 1956 w (solution) 935 1956 w (is) 1360 1956 w (easy:) 1473 1956 w (the) 1752 1956 w (file) 1940 1956 w (server) 2124 1956 w (kernel) 2454 1956 w (should) 2789 1956 w (be) 3150 1956 w (maintained) 3302 1956 w (as) 3876 1956 w (a) 4015 1956 w (variant) 4103 1956 w (of) 4467 1956 w (the) 4598 1956 w (regu\255) 4786 1956 w (lar) 720 2076 w (operating) 885 2076 w (system,) 1391 2076 w (with) 1803 2076 w (no) 2048 2076 w (user) 2212 2076 w (processes) 2463 2076 w (and) 2985 2076 w (special) 3206 2076 w (compiled-in) 3581 2076 w (kernel) 4216 2076 w (processes) 4559 2076 w (to) 720 2196 w (implement) 852 2196 w (file) 1404 2196 w (service.) 1589 2196 w (Another) 2023 2196 w (improvement) 2444 2196 w (to) 3120 2196 w (the) 3251 2196 w (file) 3439 2196 w (system) 3623 2196 w (would) 3996 2196 w (be) 4321 2196 w (a) 4473 2196 w (change) 4561 2196 w (of) 4942 2196 w (internal) 720 2316 w (structure.) 1136 2316 w (The) 1683 2316 w (WORM) 1909 2316 w (jukebox) 2267 2316 w (is) 2703 2316 w (the) 2828 2316 w (least) 3028 2316 w (reliable) 3301 2316 w (piece) 3704 2316 w (of) 4005 2316 w (the) 4149 2316 w (hardware,) 4350 2316 w (but) 4878 2316 w (because) 720 2436 w (it) 1159 2436 w (holds) 1270 2436 w (the) 1581 2436 w (metadata) 1781 2436 w (of) 2277 2436 w (the) 2420 2436 w (file) 2620 2436 w (system,) 2815 2436 w (it) 3231 2436 w (must) 3341 2436 w (be) 3628 2436 w (present) 3791 2436 w (in) 4201 2436 w (order) 4336 2436 w (to) 4642 2436 w (serve) 4784 2436 w (files.) 720 2556 w (The) 1024 2556 w (system) 1243 2556 w (could) 1621 2556 w (be) 1925 2556 w (restructured) 2082 2556 w (so) 2719 2556 w (the) 2870 2556 w (WORM) 3064 2556 w (is) 3416 2556 w (a) 3535 2556 w (backup) 3629 2556 w (device) 4020 2556 w (only,) 4366 2556 w (with) 4641 2556 w (the) 4885 2556 w (file) 720 2676 w (system) 922 2676 w (proper) 1313 2676 w (residing) 1689 2676 w (on) 2133 2676 w (magnetic) 2307 2676 w (disks.) 2803 2676 w (This) 3170 2676 w (would) 3426 2676 w (require) 3768 2676 w (no) 4166 2676 w (change) 4339 2676 w (to) 4737 2676 w (the) 4885 2676 w (external interface.) 720 2796 w (Although) 970 2952 w (Plan) 1461 2952 w (9) 1709 2952 w (has) 1819 2952 w (per-process) 2034 2952 w (name) 2673 2952 w (spaces,) 2986 2952 w (it) 3392 2952 w (has) 3505 2952 w (no) 3721 2952 w (mechanism) 3892 2952 w (to) 4492 2952 w (give) 4638 2952 w (the) 4885 2952 w (description) 720 3072 w (of) 1304 3072 w (a) 1443 3072 w (process) 1539 3072 w 10 /LucidaSansUnicode20 f (\031) 1913 3072 w 10 /LucidaSansUnicode00 f (s) 1945 3072 w (name) 2037 3072 w (space) 2344 3072 w (to) 2661 3072 w (another) 2800 3072 w (process) 3215 3072 w (except) 3630 3072 w (by) 3995 3072 w (direct) 4151 3072 w (inheritance.) 4468 3072 w (The) 720 3192 w 10 /LucidaTypewriter f (cpu) 960 3192 w 10 /LucidaSansUnicode00 f (command,) 1235 3192 w (for) 1804 3192 w (example,) 2002 3192 w (cannot) 2506 3192 w (in) 2893 3192 w (general) 3043 3192 w (reproduce) 3463 3192 w (the) 4016 3192 w (terminal) 4230 3192 w 10 /LucidaSansUnicode20 f (\031) 4632 3192 w 10 /LucidaSansUnicode00 f (s) 4664 3192 w (name) 4774 3192 w (space;) 720 3312 w (it) 1065 3312 w (can) 1168 3312 w (only) 1373 3312 w (re-interpret) 1614 3312 w (the) 2228 3312 w (user) 2420 3312 w 10 /LucidaSansUnicode20 f (\031) 2630 3312 w 10 /LucidaSansUnicode00 f (s) 2662 3312 w (login) 2749 3312 w (profile) 3028 3312 w (and) 3380 3312 w (make) 3596 3312 w (substitutions) 3894 3312 w (for) 4562 3312 w (things) 4737 3312 w (like) 720 3432 w (the) 928 3432 w (name) 1119 3432 w (of) 1422 3432 w (the) 1557 3432 w (binary) 1749 3432 w (directory) 2088 3432 w (to) 2556 3432 w (load.) 2691 3432 w (This) 3000 3432 w (misses) 3242 3432 w (any) 3610 3432 w (local) 3816 3432 w (modifications) 4078 3432 w (made) 4773 3432 w (before) 720 3552 w (running) 1068 3552 w 10 /LucidaTypewriter f (cpu) 1482 3552 w 10 /LucidaSansUnicode00 f (.) 1698 3552 w (It) 1796 3552 w (should) 1895 3552 w (instead) 2256 3552 w (be) 2642 3552 w (possible) 2794 3552 w (to) 3230 3552 w (capture) 3361 3552 w (the) 3759 3552 w (terminal) 3947 3552 w 10 /LucidaSansUnicode20 f (\031) 4349 3552 w 10 /LucidaSansUnicode00 f (s) 4381 3552 w (name) 4465 3552 w (space) 4764 3552 w (and transmit its description to a remote process.) 720 3672 w (Despite) 970 3828 w (these) 1385 3828 w (problems,) 1695 3828 w (Plan) 2232 3828 w (9) 2481 3828 w (works) 2592 3828 w (well.) 2928 3828 w (It) 3231 3828 w (has) 3345 3828 w (matured) 3562 3828 w (into) 4018 3828 w (the) 4256 3828 w (system) 4460 3828 w (that) 4849 3828 w (supports) 720 3948 w (our) 1182 3948 w (research,) 1379 3948 w (rather) 1857 3948 w (than) 2182 3948 w (being) 2431 3948 w (the) 2736 3948 w (subject) 2924 3948 w (of the research itself.) 3307 3948 w (Experimental) 4404 3948 w (new) 720 4068 w (work) 964 4068 w (includes) 1250 4068 w (developing) 1702 4068 w (interfaces) 2284 4068 w (to) 2808 4068 w (faster) 2955 4068 w (networks,) 3282 4068 w (file) 3807 4068 w (caching) 4008 4068 w (in) 4430 4068 w (the) 4571 4068 w (client) 4776 4068 w (kernel,) 720 4188 w (encapsulating) 1106 4188 w (and) 1832 4188 w (exporting) 2064 4188 w (name) 2588 4188 w (spaces,) 2905 4188 w (and) 3315 4188 w (the) 3546 4188 w (ability) 3752 4188 w (to) 4097 4188 w (re-establish) 4246 4188 w (the) 4885 4188 w (client) 720 4308 w (state) 1020 4308 w (after) 1292 4308 w (a) 1554 4308 w (server) 1645 4308 w (crash.) 1978 4308 w (Attention) 2338 4308 w (is) 2824 4308 w (now) 2940 4308 w (focusing) 3176 4308 w (on) 3627 4308 w (using) 3787 4308 w (the) 4090 4308 w (system) 4282 4308 w (to) 4659 4308 w (build) 4794 4308 w (distributed applications.) 720 4428 w (One) 970 4584 w (reason) 1207 4584 w (for) 1574 4584 w (Plan) 1754 4584 w (9) 1996 4584 w 10 /LucidaSansUnicode20 f (\031) 2059 4584 w 10 /LucidaSansUnicode00 f (s) 2091 4584 w (success) 2183 4584 w (is) 2597 4584 w (that) 2718 4584 w (we) 2951 4584 w (use) 3126 4584 w (it) 3337 4584 w (for) 3445 4584 w (our) 3626 4584 w (daily) 3832 4584 w (work,) 4102 4584 w (not) 4413 4584 w (just) 4615 4584 w (as) 4837 4584 w (a) 4985 4584 w (research) 720 4704 w (tool.) 1173 4704 w (Active) 1464 4704 w (use) 1797 4704 w (forces) 2005 4704 w (us) 2341 4704 w (to) 2493 4704 w (address) 2630 4704 w (shortcomings) 3049 4704 w (as) 3749 4704 w (they) 3894 4704 w (arise) 4140 4704 w (and) 4411 4704 w (to) 4630 4704 w (adapt) 4767 4704 w (the) 720 4824 w (system) 911 4824 w (to) 1287 4824 w (solve) 1421 4824 w (our) 1706 4824 w (problems.) 1907 4824 w (Through) 2465 4824 w (this) 2915 4824 w (process,) 3131 4824 w (Plan) 3574 4824 w (9) 3812 4824 w (has) 3912 4824 w (become) 4117 4824 w (a) 4534 4824 w (comfort\255) 4626 4824 w (able,) 720 4944 w (productive) 1011 4944 w (programming) 1581 4944 w (environment,) 2298 4944 w (as) 2996 4944 w (well) 3157 4944 w (as) 3403 4944 w (a) 3564 4944 w (vehicle) 3674 4944 w (for) 4064 4944 w (further) 4258 4944 w (systems) 4649 4944 w (research.) 720 5064 w 10 /LucidaSans-Demi f (References) 720 5304 w 9 /LucidaSansUnicode00 f ([9man]) 720 5440 w 9 /LucidaSans-Italic f (Plan) 1125 5440 w (9) 1343 5440 w (Programmer's) 1429 5440 w (Manual,) 2089 5440 w (Volume) 2470 5440 w (1,) 2826 5440 w 9 /LucidaSansUnicode00 f (AT&T) 2941 5440 w (Bell) 3209 5440 w (Laboratories,) 3392 5440 w (Murray) 3994 5440 w (Hill,) 4327 5440 w (NJ,) 4530 5440 w (1995.) 4683 5440 w ([ANSIC]) 720 5576 w 9 /LucidaSans-Italic f (American) 1125 5576 w (National) 1573 5576 w (Standard) 1972 5576 w (for) 2404 5576 w (Information) 2561 5576 w (Systems) 3106 5576 w 9 /LucidaSansUnicode20 f (\023) 3489 5576 w 9 /LucidaSans-Italic f (Programming) 3563 5576 w (Language) 4197 5576 w (C) 4657 5576 w 9 /LucidaSansUnicode00 f (,) 4718 5576 w (Amer\255) 4777 5576 w (ican) 1125 5676 w (National) 1332 5676 w (Standards) 1724 5676 w (Institute,) 2188 5676 w (Inc.,) 2605 5676 w (New) 2820 5676 w (York,) 3035 5676 w (1990.) 3293 5676 w ([Duff90]) 720 5812 w (Tom) 1125 5812 w (Duff,) 1350 5812 w 9 /LucidaSansUnicode20 f (\030\030) 1598 5812 w 9 /LucidaSansUnicode00 f (Rc) 1656 5812 w (-) 1788 5812 w (A) 1869 5812 w (Shell) 1960 5812 w (for) 2196 5812 w (Plan) 2350 5812 w (9) 2561 5812 w (and) 2647 5812 w (UNIX) 2839 5812 w (systems) 3080 5812 w 9 /LucidaSansUnicode20 f (\031\031) 3432 5812 w 9 /LucidaSansUnicode00 f (,) 3490 5812 w 9 /LucidaSans-Italic f (Proc.) 3548 5812 w (of) 3797 5812 w (the) 3912 5812 w (Summer) 4080 5812 w (1990) 4475 5812 w (UKUUG) 4733 5812 w (Conf.,) 1125 5912 w 9 /LucidaSansUnicode00 f (London,) 1414 5912 w (July,) 1799 5912 w (1990,) 2014 5912 w (pp.) 2300 5912 w (21-33,) 2472 5912 w (reprinted,) 2810 5912 w (in) 3271 5912 w (a) 3382 5912 w (different) 3461 5912 w (form,) 3865 5912 w (in) 4132 5912 w (this) 4243 5912 w (volume.) 4433 5912 w ([Fra80]) 720 6048 w (A.G.) 1125 6048 w (Fraser,) 1346 6048 w 9 /LucidaSansUnicode20 f (\030\030) 1680 6048 w 9 /LucidaSansUnicode00 f (Datakit) 1738 6048 w 9 /LucidaSansUnicode20 f (\023) 2086 6048 w 9 /LucidaSansUnicode00 f (A) 2167 6048 w (Modular) 2265 6048 w (Network) 2659 6048 w (for) 3058 6048 w (Synchronous) 3220 6048 w (and) 3816 6048 w (Asynchronous) 4016 6048 w (Traffic) 4671 6048 w 9 /LucidaSansUnicode20 f (\031\031) 4953 6048 w 9 /LucidaSansUnicode00 f (,) 5011 6048 w 9 /LucidaSans-Italic f (Proc.) 1125 6148 w (Int.) 1374 6148 w (Conf.) 1548 6148 w (on) 1808 6148 w (Commun.,) 1944 6148 w 9 /LucidaSansUnicode00 f (June) 2423 6148 w (1980,) 2642 6148 w (Boston,) 2928 6148 w (MA.) 3283 6148 w ([FSSUTF]) 720 6284 w 9 /LucidaSans-Italic f (File) 1125 6284 w (System) 1374 6284 w (Safe) 1784 6284 w (UCS) 2071 6284 w (Transformation) 2344 6284 w (Format) 3132 6284 w (\(FSS-UTF\),) 3549 6284 w 9 /LucidaSansUnicode00 f (X/Open) 4112 6284 w (Preliminary) 4551 6284 w (Specification,) 1125 6384 w (1993.) 1755 6384 w (ISO) 2088 6384 w (designation) 2280 6384 w (is) 2838 6384 w (ISO/IEC) 2957 6384 w (JTC1/SC2/WG2) 3334 6384 w (N) 4048 6384 w (1036,) 4162 6384 w (dated) 4466 6384 w (1994-) 4760 6384 w (08-01.) 1125 6484 w ([ISO10646]) 720 6620 w (ISO/IEC) 1250 6620 w (DIS) 1620 6620 w (10646-1:1993) 1803 6620 w 9 /LucidaSans-Italic f (Information) 2494 6620 w (technology) 3050 6620 w 9 /LucidaSansUnicode20 f (\023) 3562 6620 w 9 /LucidaSans-Italic f (Universal) 3647 6620 w (Multiple-Octet) 4096 6620 w (Coded) 4770 6620 w (Character) 1125 6720 w (Set) 1594 6720 w (\(UCS\)) 1755 6720 w 9 /LucidaSansUnicode20 f (\024) 2017 6720 w 9 /LucidaSans-Italic f (Part) 2136 6720 w (1:) 2349 6720 w (Architecture) 2464 6720 w (and) 3033 6720 w (Basic) 3228 6720 w (Multilingual) 3480 6720 w (Plane.) 4026 6720 w 9 /LucidaSansUnicode00 f ([Kill84]) 720 6856 w (T.J.) 1125 6856 w (Killian,) 1300 6856 w 9 /LucidaSansUnicode20 f (\030\030) 1630 6856 w 9 /LucidaSansUnicode00 f (Processes) 1688 6856 w (as) 2146 6856 w (Files) 2274 6856 w 9 /LucidaSansUnicode20 f (\031\031) 2471 6856 w 9 /LucidaSansUnicode00 f (,) 2529 6856 w 9 /LucidaSans-Italic f (USENIX) 2590 6856 w (Summer) 2933 6856 w (1984) 3330 6856 w (Conf.) 3590 6856 w (Proc.,) 3854 6856 w 9 /LucidaSansUnicode00 f (June) 4136 6856 w (1984,) 4359 6856 w (Salt) 4649 6856 w (Lake) 4840 6856 w (City,) 1125 6956 w (UT.) 1351 6956 w ([LABW91]) 720 7092 w (Butler) 1163 7092 w (Lampson,) 1447 7092 w (Mart\355n) 1902 7092 w (Abadi,) 2211 7092 w (Michael) 2522 7092 w (Burrows,) 2883 7092 w (and) 3294 7092 w (Edward) 3488 7092 w (Wobber,) 3838 7092 w 9 /LucidaSansUnicode20 f (\030\030) 4231 7092 w 9 /LucidaSansUnicode00 f (Authentication) 4289 7092 w (in) 4958 7092 w (Distributed) 1125 7192 w (Systems:) 1660 7192 w (Theory) 2090 7192 w (and) 2438 7192 w (Practice) 2647 7192 w 9 /LucidaSansUnicode20 f (\031\031) 2985 7192 w 9 /LucidaSansUnicode00 f (,) 3043 7192 w 9 /LucidaSans-Italic f (Proc.) 3118 7192 w (13th) 3384 7192 w (ACM) 3634 7192 w (Symp.) 3878 7192 w (on) 4191 7192 w (Op.) 4343 7192 w (Sys.) 4542 7192 w (Princ.,) 4760 7192 w 9 /LucidaSansUnicode00 f (Asilomar,) 1125 7292 w (1991,) 1569 7292 w (pp.) 1855 7292 w (165-182.) 2027 7292 w cleartomark showpage saveobj restore %%EndPage: 21 21 %%Page: 22 22 /saveobj save def mark 22 pagesetup 9 /LucidaSansUnicode00 f (\255 22 \255) 2764 470 w ([MBSS87]) 720 820 w (S.) 1153 820 w (P.) 1263 820 w (Miller,) 1374 820 w (B.) 1677 820 w (C.) 1790 820 w (Neumann,) 1914 820 w (J.) 2395 820 w (I.) 2485 820 w (Schiller,) 2573 820 w (and) 2951 820 w (J.) 3147 820 w (H.) 3237 820 w (Saltzer,) 3366 820 w 9 /LucidaSansUnicode20 f (\030\030) 3724 820 w 9 /LucidaSansUnicode00 f (Kerberos) 3782 820 w (Authentication) 4206 820 w (and) 4877 820 w (Authorization) 1125 920 w (System) 1750 920 w 9 /LucidaSansUnicode20 f (\031\031) 2059 920 w 9 /LucidaSansUnicode00 f (,) 2117 920 w (Massachusetts) 2175 920 w (Institute) 2839 920 w (of) 3227 920 w (Technology,) 3344 920 w (1987.) 3906 920 w ([NBS77]) 720 1056 w (National) 1125 1056 w (Bureau) 1556 1056 w (of) 1926 1056 w (Standards) 2083 1056 w (\(U.S.\),) 2587 1056 w 9 /LucidaSans-Italic f (Federal) 2914 1056 w (Information) 3307 1056 w (Processing) 3892 1056 w (Standard) 4425 1056 w (46,) 4897 1056 w 9 /LucidaSansUnicode00 f (National) 1125 1156 w (Technical) 1517 1156 w (Information) 1959 1156 w (Service,) 2499 1156 w (Springfield,) 2862 1156 w (VA,) 3393 1156 w (1977.) 3572 1156 w ([Nee89]) 720 1292 w (R.) 1125 1292 w (Needham,) 1240 1292 w 9 /LucidaSansUnicode20 f (\030\030) 1712 1292 w 9 /LucidaSansUnicode00 f (Names) 1770 1292 w 9 /LucidaSansUnicode20 f (\031\031) 2067 1292 w 9 /LucidaSansUnicode00 f (,) 2125 1292 w (in) 2183 1292 w 9 /LucidaSans-Italic f (Distributed) 2294 1292 w (systems,) 2811 1292 w 9 /LucidaSansUnicode00 f (S.) 3217 1292 w (Mullender,) 3324 1292 w (ed.,) 3817 1292 w (Addison) 4011 1292 w (Wesley,) 4399 1292 w (1989) 4753 1292 w ([NeHe82]) 720 1428 w (R.M.) 1196 1428 w (Needham) 1456 1428 w (and) 1939 1428 w (A.J.) 2171 1428 w (Herbert,) 2388 1428 w 9 /LucidaSans-Italic f (The) 2817 1428 w (Cambridge) 3046 1428 w (Distributed) 3597 1428 w (Computing) 4154 1428 w (System,) 4701 1428 w 9 /LucidaSansUnicode00 f (Addison-Wesley,) 1125 1528 w (London,) 1890 1528 w (1982) 2275 1528 w ([Neu92]) 720 1664 w (B.) 1125 1664 w (Clifford) 1248 1664 w (Neuman,) 1619 1664 w 9 /LucidaSansUnicode20 f (\030\030) 2053 1664 w 9 /LucidaSansUnicode00 f (The) 2111 1664 w (Prospero) 2316 1664 w (File) 2745 1664 w (System) 2938 1664 w 9 /LucidaSansUnicode20 f (\031\031) 3247 1664 w 9 /LucidaSansUnicode00 f (,) 3305 1664 w 9 /LucidaSans-Italic f (USENIX) 3376 1664 w (File) 3729 1664 w (Systems) 3920 1664 w (Workshop) 4316 1664 w (Proc.,) 4791 1664 w 9 /LucidaSansUnicode00 f (Ann) 1125 1764 w (Arbor,) 1328 1764 w (1992,) 1634 1764 w (pp.) 1920 1764 w (13-28.) 2092 1764 w ([OCDNW88]) 720 1900 w (John) 1282 1900 w (Ousterhout,) 1522 1900 w (Andrew) 2088 1900 w (Cherenson,) 2464 1900 w (Fred) 3006 1900 w (Douglis,) 3244 1900 w (Mike) 3651 1900 w (Nelson,) 3901 1900 w (and) 4275 1900 w (Brent) 4483 1900 w (Welch,) 4756 1900 w 9 /LucidaSansUnicode20 f (\030\030) 1125 2000 w 9 /LucidaSansUnicode00 f (The) 1183 2000 w (Sprite) 1375 2000 w (Network) 1656 2000 w (Operating) 2048 2000 w (System) 2512 2000 w 9 /LucidaSansUnicode20 f (\031\031) 2821 2000 w 9 /LucidaSansUnicode00 f (,) 2879 2000 w 9 /LucidaSans-Italic f (IEEE) 2937 2000 w (Computer,) 3142 2000 w 9 /LucidaSansUnicode00 f (21\(2\),) 3632 2000 w (23-38,) 3921 2000 w (Feb.) 4259 2000 w (1988.) 4473 2000 w ([Pike87]) 720 2136 w (Rob) 1125 2136 w (Pike,) 1323 2136 w 9 /LucidaSansUnicode20 f (\030\030) 1559 2136 w 9 /LucidaSansUnicode00 f (The) 1617 2136 w (Text) 1809 2136 w (Editor) 2033 2136 w 9 /LucidaTypewriter f (sam) 2320 2136 w 9 /LucidaSansUnicode20 f (\031\031) 2515 2136 w 9 /LucidaSansUnicode00 f (,) 2573 2136 w 9 /LucidaSans-Italic f (Software) 2632 2136 w (-) 3047 2136 w (Practice) 3134 2136 w (and) 3512 2136 w (Experience,) 3708 2136 w 9 /LucidaSansUnicode00 f (Nov) 4235 2136 w (1987,) 4434 2136 w 9 /LucidaSans-Demi f (17) 4721 2136 w 9 /LucidaSansUnicode00 f (\(11\),) 4837 2136 w (pp.) 1125 2236 w (813-845;) 1297 2236 w (reprinted) 1749 2236 w (in) 2181 2236 w (this) 2292 2236 w (volume.) 2482 2236 w ([Pike91]) 720 2372 w (Rob) 1125 2372 w (Pike,) 1325 2372 w 9 /LucidaSansUnicode20 f (\030\030) 1563 2372 w 9 /LucidaSansUnicode00 f (8\275,) 1621 2372 w (the) 1810 2372 w (Plan) 1980 2372 w (9) 2193 2372 w (Window) 2282 2372 w (System) 2654 2372 w 9 /LucidaSansUnicode20 f (\031\031) 2963 2372 w 9 /LucidaSansUnicode00 f (,) 3021 2372 w 9 /LucidaSans-Italic f (USENIX) 3082 2372 w (Summer) 3425 2372 w (Conf.) 3822 2372 w (Proc.,) 4085 2372 w 9 /LucidaSansUnicode00 f (Nashville,) 4366 2372 w (June,) 4821 2372 w (1991,) 1125 2472 w (pp.) 1411 2472 w (257-265,) 1583 2472 w (reprinted) 2035 2472 w (in) 2467 2472 w (this) 2578 2472 w (volume.) 2768 2472 w ([Pike93]) 720 2608 w (Rob) 1125 2608 w (Pike) 1344 2608 w (and) 1572 2608 w (Ken) 1785 2608 w (Thompson,) 2000 2608 w 9 /LucidaSansUnicode20 f (\030\030) 2545 2608 w 9 /LucidaSansUnicode00 f (Hello) 2603 2608 w (World) 2877 2608 w (or) 3179 2608 w 9 /LucidaSansUnicode03 f (\232\261\273\267\274\255\301\261) 3321 2608 w (\272\314\303\274\265) 3830 2608 w 9 /LucidaSansUnicode00 f (or) 4150 2608 w save 4265 2608 m currentpoint translate 10 10 scale ptsize dup scale 24 24 true [24 0 0 -24 0 22] {<00000000000002000001f000007fc00007c0001c000060000000000000000000000000000000000000000800001000001000001000001000000c000007fff001fff0000000000000>} imagemask restore save 4360 2608 m currentpoint translate 10 10 scale ptsize dup scale 24 24 true [24 0 0 -24 0 22] {<000000001800000c00001c0000180000380000300000600000600000c0000080000180000300000270000798000e18000c1802181806180c0c300c18700c70600fe0600780000000>} imagemask restore save 4455 2608 m currentpoint translate 10 10 scale ptsize dup scale 24 24 true [24 0 0 -24 0 22] {<0000000800000c00000c00000c01e00c0ff818303c1800601800801800001000003000003000003100003100003210003220003220001430001c1ffe1c07fc0c0000080000000000>} imagemask restore save 4550 2608 m currentpoint translate 10 10 scale ptsize dup scale 24 24 true [24 0 0 -24 0 22] {<01800000c00000c00000800001860021bf003fe0001980000100000100000300000303c0021c3002701802c00c07000c07000c0600180000380000700000e0000380001c00000000>} imagemask restore save 4645 2608 m currentpoint translate 10 10 scale ptsize dup scale 24 24 true [24 0 0 -24 0 22] {<0000003001801800601c006018006018004018004030204e301ffc300c403000402000406000406400406400606400606c0060680fe028307038407c3840ee183fc6100f00000000>} imagemask restore save 4763 2608 m currentpoint translate 10 10 scale ptsize dup scale 24 24 true [24 0 0 -24 0 22] {<071c70061860061860061860061860061860061860061866ffffff061860061860061860061860061860061860061fe006186006186006000006000006000006000c07fffe060000>} imagemask restore save 4858 2608 m currentpoint translate 10 10 scale ptsize dup scale 24 24 true [24 0 0 -24 0 22] {<0800300ffff80c18300c18300c18300ffff00c18300c18300c18300ffff00c743000e20001c1800300e00ee1ff38c19ec0c18600c18000c18000c1800181800181800301800c0180>} imagemask restore 9 /LucidaSansUnicode20 f (\031\031) 4953 2608 w 9 /LucidaSansUnicode00 f (,) 5011 2608 w 9 /LucidaSans-Italic f (USENIX) 1125 2708 w (Winter) 1465 2708 w (Conf.) 1781 2708 w (Proc.,) 2041 2708 w 9 /LucidaSansUnicode00 f (San) 2319 2708 w (Diego,) 2503 2708 w (1993,) 2816 2708 w (pp.) 3102 2708 w (43-50,) 3274 2708 w (reprinted) 3612 2708 w (in) 4044 2708 w (this) 4155 2708 w (volume.) 4345 2708 w ([Pike94]) 720 2844 w (Rob) 1125 2844 w (Pike,) 1332 2844 w 9 /LucidaSansUnicode20 f (\030\030) 1577 2844 w 9 /LucidaSansUnicode00 f (Acme:) 1635 2844 w (A) 1945 2844 w (User) 2046 2844 w (Interface) 2280 2844 w (for) 2700 2844 w (Programmers) 2864 2844 w 9 /LucidaSansUnicode20 f (\031\031) 3450 2844 w 9 /LucidaSansUnicode00 f (,) 3508 2844 w 9 /LucidaSans-Italic f (USENIX) 3576 2844 w (Proc.) 3926 2844 w (of) 4185 2844 w (the) 4309 2844 w (Winter) 4486 2844 w (1994) 4812 2844 w (Conf.,) 1125 2944 w 9 /LucidaSansUnicode00 f (San) 1414 2944 w (Francisco,) 1598 2944 w (CA,) 2067 2944 w ([Pike95]) 720 3080 w (Rob) 1125 3080 w (Pike,) 1325 3080 w 9 /LucidaSansUnicode20 f (\030\030) 1563 3080 w 9 /LucidaSansUnicode00 f (How) 1621 3080 w (to) 1844 3080 w (Use) 1964 3080 w (the) 2154 3080 w (Plan) 2325 3080 w (9) 2539 3080 w (C) 2628 3080 w (Compiler) 2722 3080 w 9 /LucidaSansUnicode20 f (\031\031) 3119 3080 w 9 /LucidaSansUnicode00 f (,) 3177 3080 w 9 /LucidaSans-Italic f (Plan) 3238 3080 w (9) 3459 3080 w (Programmer's) 3548 3080 w (Manual,) 4211 3080 w (Volume) 4595 3080 w (2,) 4954 3080 w 9 /LucidaSansUnicode00 f (AT&T) 1125 3180 w (Bell) 1393 3180 w (Laboratories,) 1576 3180 w (Murray) 2178 3180 w (Hill,) 2511 3180 w (NJ,) 2714 3180 w (1995.) 2867 3180 w ([POSIX]) 720 3316 w 9 /LucidaSans-Italic f (Information) 1125 3316 w (Technology) 1693 3316 w 9 /LucidaSansUnicode20 f (\024) 2187 3316 w 9 /LucidaSans-Italic f (Portable) 2277 3316 w (Operating) 2693 3316 w (System) 3187 3316 w (Interface) 3549 3316 w (\(POSIX\)) 3990 3316 w (Part) 4356 3316 w (1:) 4592 3316 w (System) 4730 3316 w (Application) 1125 3416 w (Program) 1645 3416 w (Interface) 2057 3416 w (\(API\)) 2475 3416 w ([C) 2704 3416 w (Language],) 2824 3416 w 9 /LucidaSansUnicode00 f (IEEE,) 3342 3416 w (New) 3573 3416 w (York,) 3788 3416 w (1990.) 4046 3416 w ([PPTTW93]) 720 3552 w (Rob) 1215 3552 w (Pike,) 1414 3552 w (Dave) 1652 3552 w (Presotto,) 1898 3552 w (Ken) 2317 3552 w (Thompson,) 2513 3552 w (Howard) 3039 3552 w (Trickey,) 3405 3552 w (and) 3780 3552 w (Phil) 3974 3552 w (Winterbottom,) 4163 3552 w 9 /LucidaSansUnicode20 f (\030\030) 4819 3552 w 9 /LucidaSansUnicode00 f (The) 4877 3552 w (Use) 1125 3652 w (of) 1325 3652 w (Name) 1455 3652 w (Spaces) 1748 3652 w (in) 2088 3652 w (Plan) 2212 3652 w (9) 2436 3652 w 9 /LucidaSansUnicode20 f (\031\031) 2493 3652 w 9 /LucidaSansUnicode00 f (,) 2551 3652 w 9 /LucidaSans-Italic f (Op.) 2622 3652 w (Sys.) 2818 3652 w (Rev.,) 3033 3652 w 9 /LucidaSansUnicode00 f (Vol.) 3287 3652 w (27,) 3497 3652 w (No.) 3681 3652 w (2,) 3873 3652 w (April) 4000 3652 w (1993,) 4249 3652 w (pp.) 4547 3652 w (72-76,) 4731 3652 w (reprinted) 1125 3752 w (in) 1557 3752 w (this) 1668 3752 w (volume.) 1858 3752 w ([Presotto]Dave) 720 3888 w (Presotto,) 1391 3888 w 9 /LucidaSansUnicode20 f (\030\030) 1816 3888 w 9 /LucidaSansUnicode00 f (Multiprocessor) 1874 3888 w (Streams) 2558 3888 w (for) 2944 3888 w (Plan) 3106 3888 w (9) 3326 3888 w 9 /LucidaSansUnicode20 f (\031\031) 3383 3888 w 9 /LucidaSansUnicode00 f (,) 3441 3888 w 9 /LucidaSans-Italic f (UKUUG) 3508 3888 w (Summer) 3853 3888 w (1990) 4256 3888 w (Conf.) 4522 3888 w (Proc.,) 4791 3888 w 9 /LucidaSansUnicode00 f (July) 1125 3988 w (1990,) 1311 3988 w (pp.) 1597 3988 w (11-19.) 1769 3988 w ([PrWi93]) 720 4124 w (Dave) 1125 4124 w (Presotto) 1372 4124 w (and) 1763 4124 w (Phil) 1958 4124 w (Winterbottom,) 2148 4124 w 9 /LucidaSansUnicode20 f (\030\030) 2806 4124 w 9 /LucidaSansUnicode00 f (The) 2864 4124 w (Organization) 3060 4124 w (of) 3659 4124 w (Networks) 3780 4124 w (in) 4222 4124 w (Plan) 4337 4124 w (9) 4552 4124 w 9 /LucidaSansUnicode20 f (\031\031) 4609 4124 w 9 /LucidaSansUnicode00 f (,) 4667 4124 w 9 /LucidaSans-Italic f (USENIX) 4729 4124 w (Proc.) 1125 4224 w (of) 1374 4224 w (the) 1488 4224 w (Winter) 1655 4224 w (1993) 1971 4224 w (Conf.,) 2228 4224 w 9 /LucidaSansUnicode00 f (San) 2517 4224 w (Diego,) 2701 4224 w (CA,) 3014 4224 w (pp.) 3196 4224 w (43-50,) 3368 4224 w (reprinted) 3706 4224 w (in) 4138 4224 w (this) 4249 4224 w (volume.) 4439 4224 w ([PrWi95]) 720 4360 w (Dave) 1125 4360 w (Presotto) 1378 4360 w (and) 1775 4360 w (Phil) 1977 4360 w (Winterbottom,) 2174 4360 w 9 /LucidaSansUnicode20 f (\030\030) 2838 4360 w 9 /LucidaSansUnicode00 f (The) 2896 4360 w (IL) 3098 4360 w (Protocol) 3211 4360 w 9 /LucidaSansUnicode20 f (\031\031) 3568 4360 w 9 /LucidaSansUnicode00 f (,) 3626 4360 w 9 /LucidaSans-Italic f (Plan) 3694 4360 w (9) 3922 4360 w (Programmer's) 4018 4360 w (Manual,) 4688 4360 w (Volume) 1125 4460 w (2,) 1481 4460 w 9 /LucidaSansUnicode00 f (AT&T) 1596 4460 w (Bell) 1864 4460 w (Laboratories,) 2047 4460 w (Murray) 2649 4460 w (Hill,) 2982 4460 w (NJ,) 3185 4460 w (1995.) 3338 4460 w ([RFC768]) 720 4596 w (J.) 1198 4596 w (Postel,) 1335 4596 w (RFC768,) 1704 4596 w 9 /LucidaSans-Italic f (User) 2152 4596 w (Datagram) 2429 4596 w (Protocol,) 2957 4596 w (DARPA) 3419 4596 w (Internet) 3799 4596 w (Program) 4224 4596 w (Protocol) 4687 4596 w (Specification,) 1125 4696 w 9 /LucidaSansUnicode00 f (August) 1734 4696 w (1980.) 2072 4696 w ([RFC793]) 720 4832 w (RFC793,) 1152 4832 w 9 /LucidaSans-Italic f (Transmission) 1553 4832 w (Control) 2171 4832 w (Protocol,) 2527 4832 w (DARPA) 2943 4832 w (Internet) 3277 4832 w (Program) 3656 4832 w (Protocol) 4073 4832 w (Specification,) 4460 4832 w 9 /LucidaSansUnicode00 f (September) 1125 4932 w (1981.) 1621 4932 w ([Rao91]) 720 5068 w (Herman) 1125 5068 w (Chung-Hwa) 1500 5068 w (Rao,) 2055 5068 w 9 /LucidaSans-Italic f (The) 2277 5068 w (Jade) 2468 5068 w (File) 2694 5068 w (System,) 2874 5068 w 9 /LucidaSansUnicode00 f (\(Ph.) 3244 5068 w (D.) 3440 5068 w (Dissertation\),) 3568 5068 w (Dept.) 4184 5068 w (of) 4452 5068 w (Comp.) 4571 5068 w (Sci,) 4890 5068 w (University) 1125 5168 w (of) 1584 5168 w (Arizona,) 1701 5168 w (TR) 2096 5168 w (91-18.) 2239 5168 w ([Rit84]) 720 5304 w (D.M.) 1125 5304 w (Ritchie,) 1397 5304 w 9 /LucidaSansUnicode20 f (\030\030) 1789 5304 w 9 /LucidaSansUnicode00 f (A) 1847 5304 w (Stream) 1978 5304 w (Input-Output) 2351 5304 w (System) 3006 5304 w 9 /LucidaSansUnicode20 f (\031\031) 3315 5304 w 9 /LucidaSansUnicode00 f (,) 3373 5304 w 9 /LucidaSans-Italic f (AT&T) 3472 5304 w (Bell) 3779 5304 w (Laboratories) 4002 5304 w (Technical) 4627 5304 w (Journal,) 1125 5404 w 9 /LucidaSans-Demi f (63) 1507 5404 w 9 /LucidaSansUnicode00 f (\(8\),) 1623 5404 w (October,) 1798 5404 w (1984.) 2204 5404 w ([Tric95]) 720 5540 w (Howard) 1125 5540 w (Trickey,) 1499 5540 w 9 /LucidaSansUnicode20 f (\030\030) 1882 5540 w 9 /LucidaSansUnicode00 f (APE) 1940 5540 w 9 /LucidaSansUnicode20 f (\024) 2140 5540 w 9 /LucidaSansUnicode00 f (The) 2269 5540 w (ANSI/POSIX) 2471 5540 w (Environment) 3015 5540 w 9 /LucidaSansUnicode20 f (\031\031) 3564 5540 w 9 /LucidaSansUnicode00 f (,) 3622 5540 w 9 /LucidaSans-Italic f (Plan) 3691 5540 w (9) 3920 5540 w (Programmer's) 4017 5540 w (Manual,) 4688 5540 w (Volume) 1125 5640 w (2,) 1481 5640 w 9 /LucidaSansUnicode00 f (AT&T) 1596 5640 w (Bell) 1864 5640 w (Laboratories,) 2047 5640 w (Murray) 2649 5640 w (Hill,) 2982 5640 w (NJ,) 3185 5640 w (1995.) 3338 5640 w ([Unicode]) 720 5776 w 9 /LucidaSans-Italic f (The) 1132 5776 w (Unicode) 1349 5776 w (Standard,) 1749 5776 w (Worldwide) 2239 5776 w (Character) 2751 5776 w (Encoding,) 3249 5776 w (Version) 3730 5776 w (1.0,) 4118 5776 w (Volume) 4348 5776 w (1,) 4733 5776 w 9 /LucidaSansUnicode00 f (The) 4877 5776 w (Unicode) 1125 5876 w (Consortium,) 1506 5876 w (Addison) 2074 5876 w (Wesley,) 2462 5876 w (New) 2816 5876 w (York,) 3031 5876 w (1991.) 3289 5876 w ([UNIX85]) 720 6012 w 9 /LucidaSans-Italic f (UNIX) 1125 6012 w (Time-Sharing) 1391 6012 w (System) 2058 6012 w (Programmer's) 2423 6012 w (Manual,) 3109 6012 w (Research) 3516 6012 w (Version,) 3967 6012 w (Eighth) 4381 6012 w (Edition,) 4713 6012 w (Volume) 1125 6112 w (1.) 1481 6112 w 9 /LucidaSansUnicode00 f (AT&T) 1625 6112 w (Bell) 1893 6112 w (Laboratories,) 2076 6112 w (Murray) 2678 6112 w (Hill,) 3011 6112 w (NJ,) 3214 6112 w (1985.) 3367 6112 w ([Welc94]) 720 6248 w (Brent) 1125 6248 w (Welch,) 1408 6248 w 9 /LucidaSansUnicode20 f (\030\030) 1747 6248 w 9 /LucidaSansUnicode00 f (A) 1805 6248 w (Comparison) 1922 6248 w (of) 2505 6248 w (Three) 2648 6248 w (Distributed) 2954 6248 w (File) 3499 6248 w (System) 3706 6248 w (Architectures:) 4071 6248 w (Vnode,) 4734 6248 w (Sprite,) 1125 6348 w (and) 1435 6348 w (Plan) 1627 6348 w (9) 1838 6348 w 9 /LucidaSansUnicode20 f (\031\031) 1895 6348 w 9 /LucidaSansUnicode00 f (,) 1953 6348 w 9 /LucidaSans-Italic f (Computing) 2011 6348 w (Systems,) 2518 6348 w 9 /LucidaSansUnicode00 f (7\(2\),) 2930 6348 w (pp.) 3162 6348 w (175-199,) 3334 6348 w (Spring,) 3786 6348 w (1994.) 4125 6348 w ([Wint95]) 720 6484 w (Phil) 1125 6484 w (Winterbottom,) 1329 6484 w 9 /LucidaSansUnicode20 f (\030\030) 2000 6484 w 9 /LucidaSansUnicode00 f (Alef) 2058 6484 w (Language) 2276 6484 w (Reference) 2745 6484 w (Manual) 3221 6484 w 9 /LucidaSansUnicode20 f (\031\031) 3536 6484 w 9 /LucidaSansUnicode00 f (,) 3594 6484 w 9 /LucidaSans-Italic f (Plan) 3670 6484 w (9) 3906 6484 w (Programmer's) 4010 6484 w (Manual,) 4688 6484 w (Volume) 1125 6584 w (2,) 1481 6584 w 9 /LucidaSansUnicode00 f (AT&T) 1596 6584 w (Bell) 1864 6584 w (Laboratories,) 2047 6584 w (Murray) 2649 6584 w (Hill,) 2982 6584 w (NJ,) 3185 6584 w (1995.) 3338 6584 w cleartomark showpage saveobj restore %%EndPage: 22 22 %%Trailer done %%Pages: 22