summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2003-05-07 13:37:10 +0000
committerBruno Haible <bruno@clisp.org>2003-05-07 13:37:10 +0000
commit688065cbc948f74819c4c9b93f0e9b0d78ed4dfc (patch)
tree06f94c03fa41c0795d379910a04ea2be40ccb436
parentc4b3453ac315891fd9809c58eaea71e98247195b (diff)
downloadgperf-688065cbc948f74819c4c9b93f0e9b0d78ed4dfc.tar.gz
Documentation regenerated for 3.0.
-rw-r--r--doc/gperf.dvibin84964 -> 104136 bytes
-rw-r--r--doc/gperf.pdfbin0 -> 234439 bytes
-rw-r--r--doc/gperf.ps3565
3 files changed, 1992 insertions, 1573 deletions
diff --git a/doc/gperf.dvi b/doc/gperf.dvi
index 82beb8d..1ef26a6 100644
--- a/doc/gperf.dvi
+++ b/doc/gperf.dvi
Binary files differ
diff --git a/doc/gperf.pdf b/doc/gperf.pdf
new file mode 100644
index 0000000..74d1225
--- /dev/null
+++ b/doc/gperf.pdf
Binary files differ
diff --git a/doc/gperf.ps b/doc/gperf.ps
index aa7f31e..f3fc7c1 100644
--- a/doc/gperf.ps
+++ b/doc/gperf.ps
@@ -1,15 +1,15 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: ../../doc/gperf.dvi
-%%Pages: 28
+%%Title: gperf.dvi
+%%Pages: 32
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D600 -o ../../doc/gperf.ps ../../doc/gperf.dvi
+%DVIPSCommandLine: dvips -D600 -o gperf.ps gperf.dvi
%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2000.09.26:1257
+%DVIPSSource: TeX output 2003.05.07:1528
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -68,7 +68,7 @@ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
%%EndProcSet
-TeXDict begin 39158280 55380996 1000 600 600 (../../doc/gperf.dvi)
+TeXDict begin 39158280 55380996 1000 600 600 (gperf.dvi)
@start
%DVIPSBitmapFont: Fa cmbxti10 14.4 1
/Fa 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A
@@ -77,47 +77,77 @@ EA0FE0121271912B>46 D E
%DVIPSBitmapFont: Fb cmti9 9 1
/Fb 1 47 df<121C127F12FFA412FE12380808778718>46 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmtt9 9 16
-/Fc 16 126 df<000F1470486C13F8383FC001EA7FE0140315F038FFF00700F914E0A214
+%DVIPSBitmapFont: Fc cmtt9 9 29
+/Fc 29 126 df<000F1470486C13F8383FC001EA7FE0140315F038FFF00700F914E0A214
0F15C0A2141F00FF1480387FE03F1500A26C485A381F807E380F00FEC75AA213015CA213
035C13075CA2130F5C131F5CA2133F91C7FCA24913F090387E01F89038FE03FC9038FC07
FEA212019038F80FFF0003149F13F0A2120713E0A2000F14FF9038C007FE121F1380EC03
-FC000FEB01F86CC712F0203A7DB327>37 D<007FB512F8B612FCA46C14F81E067C7E27>
-95 D<3803FFC0000F13F04813FC4813FF811380EC1FC0381F000F000480C71207A2EB0F
-FF137F0003B5FC120F5A383FFC07EA7FC0130012FE5AA46C130F007F131FEBC0FF6CB612
-806C15C07E000313F1C69038807F8022207C9F27>97 D<EB0FFF017F13C048B512E04814
-F05A380FF807EA1FE0393FC003E0903880008048C8FC127EA212FE5AA67E127EA2007F14
-F0393F8001F813C0381FE003390FF80FF06CB5FC6C14E06C14C06C6C1300EB0FF81D207B
-9F27>99 D<EC3FF04A7EA3143F1401A9EB0FE1EB7FFD48B5FC5A5A380FF83F381FE00F38
-3FC007EB8003EA7F00007E1301A212FE5AA67E007E1303A2127F6C1307EB800F381FE01F
-380FF03F6CB612C06C15E06C13FD38007FF9D91FE013C0232E7EAD27>I<EB0FF8EB3FFE
-90B51280000314C04814E0390FFC0FF0391FE003F8EBC001D83F8013FC48C7FC127E157E
-12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D137E6C7E01F013FE390FFC07FC6CB5
-FC000114F86C14F0013F13C0903807FE001F207D9F27>I<EA7FE0487EA3127F1203A914
-7F9038F1FFC001F713F090B5FC8114C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C7
-13F0A36C018313E0242E7FAD27>104 D<130F497E497EA46D5A6DC7FC90C8FCA7383FFF
-80487FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D2F7BAE27>I<387FE07F39FFF1
-FFC001F713F090B5FC6C80000313C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C713
-F0A36C018313E024207F9F27>110 D<EB1FE0EB7FF83801FFFE487F481480390FF03FC0
-391FC00FE0393F8007F0EB00034814F8007E1301A248EB00FCA76C1301007E14F8A2007F
-1303393F8007F0A2391FE01FE0390FF03FC06CB512806C14006C5B38007FF8EB1FE01E20
-7C9F27>I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5FC39007FFE1F14F89138
+FC000FEB01F86CC712F0203A7DB327>37 D<007FB512F8B612FCA46C14F81E067C9927>
+45 D<1278B612FE15FFA315FE39FC0001FCEC03F8EC07F0007814E0C7120FEC1FC01580
+143FEC7F00147E14FE5C13015C13035C13075CA2495AA3495AA3133F91C7FCA55B137EA9
+133C20307DAE27>55 D<007FB512F8B612FCA46C14F81E067C7E27>95
+D<3803FFC0000F13F04813FC4813FF811380EC1FC0381F000F000480C71207A2EB0FFF13
+7F0003B5FC120F5A383FFC07EA7FC0130012FE5AA46C130F007F131FEBC0FF6CB612806C
+15C07E000313F1C69038807F8022207C9F27>97 D<EA7FE0487EA3127F1203A914FF01F3
+13C090B512F08181EC81FE49C67E49EB3F8049131F16C049130FA216E01507A6150F16C0
+7F151F6DEB3F80157F6DEBFF009038FF83FEECFFFC5D5D01F313C02601E0FEC7FC232E7F
+AD27>I<EB0FFF017F13C048B512E04814F05A380FF807EA1FE0393FC003E09038800080
+48C8FC127EA212FE5AA67E127EA2007F14F0393F8001F813C0381FE003390FF80FF06CB5
+FC6C14E06C14C06C6C1300EB0FF81D207B9F27>I<EC3FF04A7EA3143F1401A9EB0FE1EB
+7FFD48B5FC5A5A380FF83F381FE00F383FC007EB8003EA7F00007E1301A212FE5AA67E00
+7E1303A2127F6C1307EB800F381FE01F380FF03F6CB612C06C15E06C13FD38007FF9D91F
+E013C0232E7EAD27>I<EB0FF8EB3FFE90B51280000314C04814E0390FFC0FF0391FE003
+F8EBC001D83F8013FC48C7FC127E157E12FEB612FEA415FC00FCC8FC7E127E127F6C143C
+6D137E6C7E01F013FE390FFC07FC6CB5FC000114F86C14F0013F13C0903807FE001F207D
+9F27>I<EC1FF0ECFFF84913FC4913FE5BEB0FF014C0011F137CEC8000A6007FB512F0B6
+12F8A36C14F039001F8000B3A4003FB512C04814E0A36C14C01F2E7EAD27>I<153F9039
+1FC0FF80D97FF313C048B612E05A4814EF390FF07F873A1FC01FC3C0EDC000EB800F4848
+6C7EA66C6C485AEBC01FA2390FF07F8090B5C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5
+FC15E015F84814FE4880EB8001007EC7EA3F80007C140F00FC15C0481407A46C140F007C
+1580007F143F6C6CEB7F009038F807FF6CB55A000714F86C5CC614C0D90FFCC7FC23337E
+A027>I<EA7FE0487EA3127F1203A9147F9038F1FFC001F713F090B5FC8114C1EC01FCEB
+FE005B5BA25BB03A7FFF83FFE0B500C713F0A36C018313E0242E7FAD27>I<130F497E49
+7EA46D5A6DC7FC90C8FCA7383FFF80487FA37EEA000FB3A4007FB512F0B6FC15F815F07E
+1D2F7BAE27>I<EA7FE07F12FF127FA21201A991383FFFC04A13E0A36E13C0913803F800
+4A5A4A5A4A5A4A5A02FFC7FCEBF1FEEBF3FCEBF7F8EBFFFC8080143F496C7E496C7E01F8
+7FEBF0076E7E6E7E816E7E157E3A7FFFC1FFF002C313F8B512E36C13C316F0252E80AD27
+>107 D<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA36C14F81E2E7CAD27>I<39
+7F07C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A0FFC7FF1F89038F03FC001E0138001
+C01300A3EB803EB03A7FF0FFC3FF486C01E3138001F913E701F813E36C4801C313002920
+819F27>I<387FE07F39FFF1FFC001F713F090B5FC6C80000313C1EC01FCEBFE005B5BA2
+5BB03A7FFF83FFE0B500C713F0A36C018313E024207F9F27>I<EB1FE0EB7FF83801FFFE
+487F481480390FF03FC0391FC00FE0393F8007F0EB00034814F8007E1301A248EB00FCA7
+6C1301007E14F8A2007F1303393F8007F0A2391FE01FE0390FF03FC06CB512806C14006C
+5B38007FF8EB1FE01E207C9F27>I<387FE0FFD8FFF313C090B512F0816C800003EB81FE
+49C67E49EB3F8049131F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6DEB
+FF009038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC91C8FCAC387FFF80B57EA36C5B2331
+7F9F27>I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5FC39007FFE1F14F89138
F00F809138E002004AC7FC5CA291C8FCA2137EAD007FB57EB67EA36C5C22207E9F27>
114 D<9038FFF3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC07806C90C7FCEA7F80
13FC383FFFF06C13FC000713FF00011480D8000F13C09038003FE014070078EB03F000FC
1301A27E14036CEB07E0EBE01F90B512C01580150000FB13FC38707FF01C207B9F27>I<
133C137EA8007FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA415FE6D13FC1483EC
-FFF86D13F06D13E0010313C0010013001F297EA827>I<3A7FFE07FFE000FF15F06D5A49
-7E007F15E03A0F80001F00A36D5B0007143EA414F0EBC1F83903E3FC7CA4EBE79EA20001
-1478A301F713F8A2EBFF0F6C5CA3EBFE0790387C03E024207F9F27>119
-D<EC07F8EC3FFC14FF130315F8903807FE00EB0FF05C5CB0131FEB7F80EA3FFFB5C7FC5B
-A27F003F7FEA007FEB1FC0130FB08080EB07FE903803FFF815FC1300143FEC07F81E3A7C
-B327>123 D<EA7F80EAFFF013FC13FF7E00017F38003FC0131F130FB080EB07F8ECFFF0
-6D13FC7FA25B4913F0ECF800EB0FE05CB0131F133F48B45A007F90C7FCB5FC13FC13F0EA
-7F801E3A7CB327>125 D E
+FFF86D13F06D13E0010313C0010013001F297EA827>I<397FE01FF8486C487EA3007F13
+1F00031300B21401A21403EBFC0F6CB612E016F07EEB3FFE90390FF87FE024207F9F27>
+I<3A7FFE07FFE000FF15F06D5A497E007F15E03A0F80001F00A36D5B0007143EA414F0EB
+C1F83903E3FC7CA4EBE79EA200011478A301F713F8A2EBFF0F6C5CA3EBFE0790387C03E0
+24207F9F27>119 D<393FFC1FFF486C5A168016006C487E3901F807E06C6C485A4A5A01
+7E90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F497E143EEB3E3FEB7E1F90387C0F
+8001F87F00016D7E3803F0033A7FFE1FFF80A2B54813C06C486C1380A222207E9F27>I<
+3A7FFC0FFF80486C4813C0A36C486C13803A07E000F800000313015D13F00001130301F8
+5B1200A26D485A137CA290387E0F80133EA2011F90C7FC5CA2130F149E14BE130714FC13
+03A25C1301A25CA213035CA213075C1208EA3E0F007F5B131FD87E7FC8FCEA7FFE6C5A5B
+6C5AEA07C022317E9F27>I<001FB512FE4814FFA490380001FEEC03FCEC07F8EC0FF000
+1EEB1FE0C7EA3FC0EC7F80ECFF00495A495A495AEB1FE0495A495A49C7FC485A4848131E
+4848133F485A485A485A485AB7FCA46C14FE20207E9F27>I<EC07F8EC3FFC14FF130315
+F8903807FE00EB0FF05C5CB0131FEB7F80EA3FFFB5C7FC5BA27F003F7FEA007FEB1FC013
+0FB08080EB07FE903803FFF815FC1300143FEC07F81E3A7CB327>I<EA7F80EAFFF013FC
+13FF7E00017F38003FC0131F130FB080EB07F8ECFFF06D13FC7FA25B4913F0ECF800EB0F
+E05CB0131F133F48B45A007F90C7FCB5FC13FC13F0EA7F801E3A7CB327>125
+D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmr9 9 48
-/Fd 48 123 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C
+%DVIPSBitmapFont: Fd cmr9 9 47
+/Fd 47 123 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C
121C5A5A126009177AB315>39 D<123C127EB4FCA21380A2127F123D1201A412031300A2
5A1206120E120C121C5A5A126009177A8715>44 D<EB0FE0EB7FFCEBF83E3903E00F8039
07C007C0EB8003000F14E0391F0001F0A24814F8A2003E1300007E14FCA500FE14FEB200
@@ -136,38 +166,34 @@ A214031407A2140F141FA2143F147F146F14CF1301EB038F140F1307130E130C131C1338
C000A94A7E0107B51280A321337EB226>I<000C14C0380FC00F90B5128015005C5C14F0
14C0D80C18C7FC90C8FCA9EB0FC0EB7FF8EBF07C380FC03F9038001F80EC0FC0120E000C
EB07E0A2C713F01403A215F8A41218127E12FEA315F0140712F8006014E01270EC0FC06C
-131F003C14806CEB7F00380F80FE3807FFF8000113E038003F801D347CB126>I<14FE90
-3807FF80011F13E090383F00F0017C13703901F801F8EBF003EA03E01207EA0FC0EC01F0
-4848C7FCA248C8FCA35A127EEB07F0EB1FFC38FE381F9038700F809038E007C039FFC003
-E0018013F0EC01F8130015FC1400A24814FEA5127EA4127F6C14FCA26C1301018013F800
-0F14F0EBC0030007EB07E03903E00FC03901F81F806CB51200EB3FFCEB0FE01F347DB126
->I<1230123C003FB6FCA34814FEA215FC0070C7123800601430157015E04814C01401EC
-0380C7EA07001406140E5C141814385CA25CA2495A1303A3495AA2130FA3131F91C7FCA2
-5BA55BA9131C20347CB126>I<EB0FE0EB7FFC90B5FC3903F01F803907C007C0390F0003
-E0000EEB01F0001E1300001C14F8003C1478A3123EA2003F14F86D13F0EBC001D81FF013
-E09038F803C0390FFE07803907FF0F006C13DE6C13F87EEB3FFE8001F713C0D803E313E0
-D8078013F0390F007FF8001E131F003EEB07FC003C1303481301EC007E12F848143EA215
-1EA37E153C1278007C14787E6C14F0390F8003E03907F01FC00001B5120038007FFCEB1F
-E01F347DB126>I<EB0FE0EB7FF8EBFFFE3803F83F3907E00F80390FC007C0D81F8013E0
-EC03F0EA3F0048EB01F8127EA200FE14FC1400A415FEA5007E1301A2127F7E1403EA1F80
-000F13073807C00E3803E01C3801F03838007FF090381FC0FC90C7FC1401A215F8A215F0
-1403001F14E0383F800715C0140FEC1F809038003F00001C137E381F01FC380FFFF00003
-13C0C690C7FC1F347DB126>I<15E0A34A7EA24A7EA34A7EA3EC0DFE140CA2EC187FA34A
-6C7EA202707FEC601FA202E07FECC00FA2D901807F1507A249486C7EA301066D7EA2010E
-80010FB5FCA249800118C77EA24981163FA2496E7EA3496E7EA20001821607487ED81FF0
-4A7ED8FFFE49B512E0A333367DB53A>65 D<B7FC16E016F83A03FC0003FE0001EC00FFEE
-7F80EE3FC0161F17E0160F17F0A617E0161F17C0EE3F80EE7F0016FEED03FC90B612F05E
-9039FC0007FCED00FEEE3F80EE1FC0EE0FE017F0160717F8160317FCA617F81607A2EE0F
-F0EE1FE0163FEE7FC00003913803FF00B75A16F816C02E337DB236>I<DA03FE130C9139
-3FFF801C91B512E0903A03FE01F83C903A0FF0003C7CD91FC0EB0EFCD97F80130701FEC7
-120348481401000315005B4848157C485A173C485A171C123F5B007F160CA390C9FC4816
-00AB7E6D150CA3123F7F001F161C17186C7E17386C6C15306C6C15706D15E012016C6CEC
-01C0D97F80EB0380D91FC0EB0F00D90FF0131ED903FE13FC0100B512F0023F13C0DA03FE
-C7FC2E377CB437>I<B77E16F016FE3A01FE0001FF00009138003FC0EE0FE0707E707E70
-7E707E177E177FEF3F80A2EF1FC0A3EF0FE0A418F0AA18E0A3171F18C0A21880173F1800
-5F17FE5F4C5AEE07F04C5AEE3FC000014AB45AB748C7FC16F8168034337EB23B>I<B812
-80A3D803FCC7FC0001151FEE07C01603A21601A21600A41760150CA31700A2151CA2153C
-15FC90B5FCA3EBFC00153C151CA2150CA592C8FCAB487EB512FEA32B337DB232>70
+131F003C14806CEB7F00380F80FE3807FFF8000113E038003F801D347CB126>I<123012
+3C003FB6FCA34814FEA215FC0070C7123800601430157015E04814C01401EC0380C7EA07
+001406140E5C141814385CA25CA2495A1303A3495AA2130FA3131F91C7FCA25BA55BA913
+1C20347CB126>55 D<EB0FE0EB7FFC90B5FC3903F01F803907C007C0390F0003E0000EEB
+01F0001E1300001C14F8003C1478A3123EA2003F14F86D13F0EBC001D81FF013E09038F8
+03C0390FFE07803907FF0F006C13DE6C13F87EEB3FFE8001F713C0D803E313E0D8078013
+F0390F007FF8001E131F003EEB07FC003C1303481301EC007E12F848143EA2151EA37E15
+3C1278007C14787E6C14F0390F8003E03907F01FC00001B5120038007FFCEB1FE01F347D
+B126>I<EB0FE0EB7FF8EBFFFE3803F83F3907E00F80390FC007C0D81F8013E0EC03F0EA
+3F0048EB01F8127EA200FE14FC1400A415FEA5007E1301A2127F7E1403EA1F80000F1307
+3807C00E3803E01C3801F03838007FF090381FC0FC90C7FC1401A215F8A215F01403001F
+14E0383F800715C0140FEC1F809038003F00001C137E381F01FC380FFFF0000313C0C690
+C7FC1F347DB126>I<15E0A34A7EA24A7EA34A7EA3EC0DFE140CA2EC187FA34A6C7EA202
+707FEC601FA202E07FECC00FA2D901807F1507A249486C7EA301066D7EA2010E80010FB5
+FCA249800118C77EA24981163FA2496E7EA3496E7EA20001821607487ED81FF04A7ED8FF
+FE49B512E0A333367DB53A>65 D<B7FC16E016F83A03FC0003FE0001EC00FFEE7F80EE3F
+C0161F17E0160F17F0A617E0161F17C0EE3F80EE7F0016FEED03FC90B612F05E9039FC00
+07FCED00FEEE3F80EE1FC0EE0FE017F0160717F8160317FCA617F81607A2EE0FF0EE1FE0
+163FEE7FC00003913803FF00B75A16F816C02E337DB236>I<DA03FE130C91393FFF801C
+91B512E0903A03FE01F83C903A0FF0003C7CD91FC0EB0EFCD97F80130701FEC712034848
+1401000315005B4848157C485A173C485A171C123F5B007F160CA390C9FC481600AB7E6D
+150CA3123F7F001F161C17186C7E17386C6C15306C6C15706D15E012016C6CEC01C0D97F
+80EB0380D91FC0EB0F00D90FF0131ED903FE13FC0100B512F0023F13C0DA03FEC7FC2E37
+7CB437>I<B77E16F016FE3A01FE0001FF00009138003FC0EE0FE0707E707E707E707E17
+7E177FEF3F80A2EF1FC0A3EF0FE0A418F0AA18E0A3171F18C0A21880173F18005F17FE5F
+4C5AEE07F04C5AEE3FC000014AB45AB748C7FC16F8168034337EB23B>I<B81280A3D803
+FCC7FC0001151FEE07C01603A21601A21600A41760150CA31700A2151CA2153C15FC90B5
+FCA3EBFC00153C151CA2150CA592C8FCAB487EB512FEA32B337DB232>70
D<B512FEA3000113006C5AB3B3A7487EB512FEA317337EB21C>73
D<017FB5FCA39038003FE0EC1FC0B3B1127EB4FCA4EC3F805A0060140000705B6C13FE6C
485A380F03F03803FFC0C690C7FC20357DB227>I<B500FE903807FFF8A3000190C70001
@@ -326,103 +352,145 @@ B3A3EE0F80EE1FC0A66EEB3F800103147F6E13FF902601FF031300EDFFFE6D5C6E5B6E5B
A7167FA216FFA26D5B6D1307DAE01F13FF6DB712807F7F6D143F0101D9FC1F1300902600
7FF0C8FC312C7FAA34>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmtt12 13.14 5
-/Fi 5 118 df<EC3FFF49B512E0010714F8011F8049805B90B7FC48EBE001481300485A
+%DVIPSBitmapFont: Fi cmtt12 13.14 9
+/Fi 9 118 df<EC3FFF49B512E0010714F8011F8049805B90B7FC48EBE001481300485A
EA0FF8496D5A4848147C93C7FC485A5B127F90CAFCA35A5AA97E7EA27F123F6D141F6DEC
3F80121F6C7E01FC147F6C6CECFF006C6C6C5A6C9038F00FFE91B55A6C6C5C6D5C6D5C01
-071480010149C7FC9038003FF0293278B038>99 D<EEFFC0277FFFC00713F8B5D8E01F13
-FC037F13FE92B5FC02E114FF14E36C01E713813A000FEFFC019139FFF000FE4B137C0380
-130092C8FCA25C5CA25CA25CA45CB2007FB67EB77E82A35E6C5D30307CAF38>114
-D<903907FF80F0017FEBF1F848B512FD000714FF5A5A5AEBFC00D87FE0131F0180130F48
-C71207481403A5007FEC01F001C090C7FCEA3FF013FE381FFFF86CEBFFC0000314F8C614
-FF013F1480010714E0D9003F13F0020013F8ED0FFC1503003CEC01FE007E140000FE15FF
-167F7EA37F6D14FF16FE01F013036DEB07FC01FF137F91B512F816F016E04815C0D8FC3F
-1400010F13FCD8780113E0283278B038>I<EB01E0497E1307AB003FB712804816C0B8FC
-A46C1680260007F0C8FCB3A4EE03E0EE07F0A66E130F17E06D6C131F6EEB3FC0903901FF
-81FF92B512806D15006E5B6E5B6E13F002075B020190C7FC2C3D7DBB38>I<D83FFE9038
-03FFE0486C497FB55BA36C806C80C66CEB0007B3A9160FA2161F163F6E137F6D6C13FFDA
-F007EBFFE091B712F06D16F87F6D14E76D02C713F00100020313E0DA3FF8C8FC35307FAE
-38>I E
+071480010149C7FC9038003FF0293278B038>99 D<ED1FFF4B7F5DA38181ED003FACEC7F
+80903803FFF0010F13FC013F13FF4914BF90B7FC5A48EBC07F48EB000FD80FFC7F497F48
+487F497F485A167F485A163F90C8FCA25A5AA97E6C157FA36D14FF123F6D5B6C7E5D6C6C
+5B01FC5B6C6C133F2603FFC0B6FC6C90B712806C03BF13C06D143F6D13FC6D01F8148001
+07D9E01F1300010090C9FC32447CC238>I<EC3FE0903801FFFC010713FF011F14C04980
+498090B67E489038E03FFC4890380007FE48481301D80FF86D7E49804848158049143F00
+3F16C049141F127F90C8FC17E0160F5A90B7FCA617C048CAFC7E7EA27FA26C7EEE07C06C
+6CEC0FE07F6C7ED807FE141F6DEC3FC06C01C013FF6CD9FC0713806C90B612006D5C6D5C
+010F5C010314E001001480DA1FFCC7FC2B327AB038>I<14F0497E497E497EA46D5A6D5A
+6D5A91C8FCAB383FFFFC487FB5FCA37E7EC7FCB3AF007FB612F0B712F816FCA316F86C15
+F0264476C338>105 D<ED7FC03A3FFE01FFF8267FFF0713FEB5001F7F4A805C6C90B67E
+6CECC07F3B007FFE001FE002F8130F4A805C16075C5CA391C7FCB3A6273FFFFE03B512E0
+486D4814F0B6008F14F8A36C020714F06C496C14E035307FAF38>110
+D<EEFFC0277FFFC00713F8B5D8E01F13FC037F13FE92B5FC02E114FF14E36C01E713813A
+000FEFFC019139FFF000FE4B137C0380130092C8FCA25C5CA25CA25CA45CB2007FB67EB7
+7E82A35E6C5D30307CAF38>114 D<903907FF80F0017FEBF1F848B512FD000714FF5A5A
+5AEBFC00D87FE0131F0180130F48C71207481403A5007FEC01F001C090C7FCEA3FF013FE
+381FFFF86CEBFFC0000314F8C614FF013F1480010714E0D9003F13F0020013F8ED0FFC15
+03003CEC01FE007E140000FE15FF167F7EA37F6D14FF16FE01F013036DEB07FC01FF137F
+91B512F816F016E04815C0D8FC3F1400010F13FCD8780113E0283278B038>I<EB01E049
+7E1307AB003FB712804816C0B8FCA46C1680260007F0C8FCB3A4EE03E0EE07F0A66E130F
+17E06D6C131F6EEB3FC0903901FF81FF92B512806D15006E5B6E5B6E13F002075B020190
+C7FC2C3D7DBB38>I<D83FFE903803FFE0486C497FB55BA36C806C80C66CEB0007B3A916
+0FA2161F163F6E137F6D6C13FFDAF007EBFFE091B712F06D16F87F6D14E76D02C713F001
+00020313E0DA3FF8C8FC35307FAE38>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmbx12 13.14 28
-/Fj 28 122 df<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0
-1010778F22>46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B200
-7FB712E0A52B4777C63D>49 D<ECFFF80107EBFF80013F14F090B612FC4881480101EBFF
-802707F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87FF06D13F86D15FC6D7F00
-FF16FE6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFFFCA24B13F817F05D17E0
-4B13C017804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07FC4A5A4A5A4B131FEC3F
-804AC7FC14FE4948143E495AEB07E0495A4948147E49C8FC017E15FE90B7FC4816FC5A5A
-5A5A5A5AB8FC17F8A430477AC63D>I<EC3FFE0103B512E0010F14FC013F14FF90267FE0
-1F7F9026FF000713E0D801FC6D7FD803F07F486C6D7FD80FFE817F486D80167FA3805C16
-FF7E91C75B6C5A6C5AD80020495B90C75C5D5F4B5B5F031F90C7FCED3FFC4AB45A49B512
-E0168016E016FC90C7EA3FFF030713C06F7F6F7F6F7F83707E83A2701380A318C0EA07E0
-EA1FF8487E487EA2B5FCA31880A25E491600127F494A5A6C485D01E05B001F4A5BD80FFC
-495B2707FFC03F13C06C90B65AC64BC7FC013F14F8010714E09026007FFEC8FC32487BC6
-3D>I<EE01F8A24C7EA34C7EA24C7EA34C7FA24C7FA34C7FA293B57EA34B8016F3030380
-16E316E103078016C0030F805E83031F814C7E4B81153E83037E81037C7F03FC815D8302
-01824B7F0203825D830207824B7F020F825D84021F8392B8FC4A83A34A83027CC8120F02
-FC835C840101844A810103845C840107844A81010F845C85011F85496C82B600C091B712
-F0A5544D7CCC5D>65 D<93261FFF80EB01C00307B500F81303033F02FE13074AB7EA800F
-0207EEE01F021F903AFE007FF83F027F01E0903807FC7F91B5C73801FEFF010301FCEC00
-7F4901F0814901C0150F4949814990C97E494882495A48498248197F5C48193F5C48191F
-5C48190FA2485BA21A075AA391CDFCA2B5FCAD7EA280F207C0A27EA36C7F1A0F6C1A8080
-6C191F6E18006C61806C197E6C6D177C6D6C17FC6D6C4C5A6D6D4B5A6D6D4B5A6D01F0ED
-1FC06D01FC4B5A010001FF03FFC7FC6E01E0EB07FE021F01FEEB3FFC020790B612F00201
-16C0DA003F92C8FC030714F8DB001F13804A4D79CB59>67 D<B912F0F0FF8019F019FC19
-FFD8001F902680000114C0DD001F7F060713F806017F726C7E737E737F737F737F858773
-7F8587A2747EA38786A21C80A51CC0A586A462A51C80A51C00A26263A2631AFF63616361
-4F5B634F5B073F90C7FC4F5A4F5A06035B061F5B4DB512C0BBC8FC19FC19F0198006F0C9
-FC524B7CCA5E>I<BB12C0A486D8000F01E0C77E18071801F0007F193F191F190F190786
-1903A31901A3EF0F80A2737EA497C7FC171FA2173F177F17FF160392B6FCA5EDE0031600
-177F173F171FA2050FEC0F80A3F21F00A494C8FC621A3EA21A7EA31AFE6219011903A219
-07190FF13FF819FF1803183FBBFCA262A3494A7CC951>I<BBFCA41A80D8001F01C0C7FC
-181F18038484197F193F191F1AC0190FA31907A4171FF103E0A496C7FCA25FA25F5F5E16
-0792B6FCA5EDC0071601828383A283A794C9FCB1B8FCA5434A7CC94D>I<B712FEA5D800
-0FEBE000B3B3B3ABB712FEA5274B7DCA2E>73 D<B700F8027FB512F0A5D8001F01C0C9EB
-C00074C7FCF101FE4F5A4F5AF10FE04F5A4F5A4FC8FCF001FE4E5A4E5AF00FE04E5A4E5A
-4EC9FCEF01FE4D5A4D5AEF0FE04D5A4D5A4DCAFCEE01FE16034C7E4C7F5E4C7F93B57E03
-C18015C303C780DBCFE77FDBDFC37FEDFF8104017F4B6C804B7F4B6D7F03E0814B6D7F83
-85717F717F83857180727F8486727F8486727F727F84867280737F8587737F87B700F801
-0FB612FCA5564B7CCA60>75 D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFF27
-03FC00077F486C6D7F486C6D7F6E7E83707EA3707E6C90C7FC6C5A6C5AC9FCA4ED1FFF02
-1FB5FC49B6FC130F013FEBC03F9038FFFE00000313F04813C04890C7FC485A485AA2485A
-A2485AA4167FA26D14FF007F15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C9038
-E07F076C9038FFFE0300014A7ED8003F9038F0007F0103018090C7FC37337CB13C>97
-D<91380FFF8091B512F8010314FF010F158090263FFE0013C0D97FF8EB1FE0D9FFE0EB3F
-F04849EB7FF8484913FF4890C7FC5A5B121F5B003FED7FF0EE3FE0007FED1FC093C7FC5B
-A212FFAC127F7FA2123FA26D153E121F6D157E6C167C6C6D14FC6C16F86C6D13036C01F0
-EB07F0D97FFCEB1FE06DB4EBFFC0010F90B5120001035C010014F0020F13802F337CB137
->99 D<EF1FF0EE3FFFA51600177FB3A2EC0FFF91B512E0010314F8010F14FE013FEB01FF
-903A7FF8003FFFD9FFE0130F48497F48497F4890C77E4881485AA2485AA3127F5BA212FF
-AC127FA37F123FA2121F7F000F5D6C6C5C5E6C6D5B6C01E0497F6C6D017FEBFFE090393F
-FE03FE6DB512F801075C010114C09027001FFC00EBC0003B4D7CCB44>I<EC0FFF91B512
-F0010314FC010F14FF90263FFE077F90267FF0007F4948EB3FE04801806D7E48824890C7
-6C7E4848140783485A003F6F7EA3485A701380A312FFA290B8FCA401F8CAFCA5127FA27F
-A2123FA26C6CED0F80A2000F161F6C6C16006E5C6C6D147E6C6D5C6C6D495AD97FFCEB07
-F0903A1FFF803FE06D90B55A010392C7FCD9007F13FC020713C031337DB138>I<ED7FE0
-913807FFFC021F7F027F7F902601FFE0138049018113C0902607FE0113E049485A14F813
-1FEB3FF0A26F13C0EB7FE06F1380EE3E0093C7FCADB77EA526007FF0C8FCB3B3A2003FB5
-12F8A52B4D7DCC26>I<DA7FFCEB0FF00103B538807FF8011F9138F1FFFC4991B512FE90
-267FF01F13F32701FFC007138348EB0001A248486DEBC1FC000FEEE0F849027F1300A200
-1F82A8000F5EA26D14FF00075E6C6C495BA26CD9C00790C7FC6C9038F01FFC4890B55A5E
-D803C314809026C07FFCC8FC000790CAFCA47FA27F13FC90B612FCEEFFC06C16F817FE6C
-8218806C17C06D16E00003B812F0120FD81FFCC7000F13F8D83FF0140049153F4848ED1F
-FC00FF160F491507A56D150F007F17F86D151F6C6CED3FF06C6CED7FE0D80FFE913801FF
-C06C6C6C010713806C01F8017F1300C690B612FC013F15F001071580D9003F01F0C7FC37
-487DB03D>I<13FCEA03FF487F487FA2487FA66C5BA26C5B6C90C7FCEA00FC90C8FCACEB
-7FC0B5FCA512037EB3B3B61280A5194D7BCC22>105 D<EB7FC0B5FCA512037EB3B3B3AA
-B61280A5194C7BCB22>108 D<90287FC001FFE0EC7FF8B5010F01FC0103B5FC033F6D01
-0F804B6D6C4814E0DBFE079026C03F817F9126C3F0019138FC007F0003D9C7E0DAE1F880
-6CDA8000D9F1E06D7E02CFC7EBF3C002DE91267FF780131F02FC03FFC77FA24A5DA24A5D
-A34A5DB3A9B6D8C03FB5D8F00FB512FCA55E317BB067>I<903A7FC001FFC0B5010F13F8
-033F13FE4B7F9126C1FE077F9126C3F0037F00039038C7C0016CD9CF8080150002DE7F02
-FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B317BB044>I<913807FF80027F13F80103
-B6FC010F15C090261FFE017F903A7FF0003FF8D9FFC0EB0FFC48496D7E4890C76C7E4817
-804980000F17C048486E13E0A2003F17F049157FA2007F17F8A400FF17FCAB007F17F8A3
-6C6CEDFFF0A3001F17E06D5C000F17C06C6C4A13806C17006C6D495A6C01E0EB1FFC6D6C
-495A903A3FFE01FFF0010FB612C0010392C7FCD9007F13F80207138036337DB13D>I<90
-39FF803FE0B5EBFFF8028113FE02837FDA87E11380EC8F830003D99F0713C06C139E14BC
-A214F8A24A6C13806F13004A6C5A93C7FCA45CB3A7B612E0A52A317CB032>114
+%DVIPSBitmapFont: Fj cmbx12 13.14 37
+/Fj 37 122 df<B7FCAA200A7F9C29>45 D<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7F
+FEA2EA3FFCEA1FF8EA07E01010778F22>I<15F014011407141F147FEB03FF137FB6FCA3
+13FC1380C7FCB3B3B2007FB712E0A52B4777C63D>49 D<ECFFF80107EBFF80013F14F090
+B612FC4881480101EBFF802707F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87F
+F06D13F86D15FC6D7F00FF16FE6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFF
+FCA24B13F817F05D17E04B13C017804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07
+FC4A5A4A5A4B131FEC3F804AC7FC14FE4948143E495AEB07E0495A4948147E49C8FC017E
+15FE90B7FC4816FC5A5A5A5A5A5AB8FC17F8A430477AC63D>I<EC3FFE0103B512E0010F
+14FC013F14FF90267FE01F7F9026FF000713E0D801FC6D7FD803F07F486C6D7FD80FFE81
+7F486D80167FA3805C16FF7E91C75B6C5A6C5AD80020495B90C75C5D5F4B5B5F031F90C7
+FCED3FFC4AB45A49B512E0168016E016FC90C7EA3FFF030713C06F7F6F7F6F7F83707E83
+A2701380A318C0EA07E0EA1FF8487E487EA2B5FCA31880A25E491600127F494A5A6C485D
+01E05B001F4A5BD80FFC495B2707FFC03F13C06C90B65AC64BC7FC013F14F8010714E090
+26007FFEC8FC32487BC63D>I<EE07E0160FA2161F163F167F16FFA25D5D5DA25D5D5DA2
+157D15FDEC01F915F1EC03E11407EC0FC1EC1F811501143F147E14FC14F8EB01F01303EB
+07E014C0EB0F80131FEB3F00133E5B13FC485A485A5B1207485A485A90C7FC123E127E5A
+B912FCA5C80003EBE000AD023FB612FCA536487DC73D>I<EE01F8A24C7EA34C7EA24C7E
+A34C7FA24C7FA34C7FA293B57EA34B8016F303038016E316E103078016C0030F805E8303
+1F814C7E4B81153E83037E81037C7F03FC815D830201824B7F0203825D830207824B7F02
+0F825D84021F8392B8FC4A83A34A83027CC8120F02FC835C840101844A810103845C8401
+07844A81010F845C85011F85496C82B600C091B712F0A5544D7CCC5D>65
+D<93261FFF80EB01C00307B500F81303033F02FE13074AB7EA800F0207EEE01F021F903A
+FE007FF83F027F01E0903807FC7F91B5C73801FEFF010301FCEC007F4901F0814901C015
+0F4949814990C97E494882495A48498248197F5C48193F5C48191F5C48190FA2485BA21A
+075AA391CDFCA2B5FCAD7EA280F207C0A27EA36C7F1A0F6C1A80806C191F6E18006C6180
+6C197E6C6D177C6D6C17FC6D6C4C5A6D6D4B5A6D6D4B5A6D01F0ED1FC06D01FC4B5A0100
+01FF03FFC7FC6E01E0EB07FE021F01FEEB3FFC020790B612F0020116C0DA003F92C8FC03
+0714F8DB001F13804A4D79CB59>67 D<B912F0F0FF8019F019FC19FFD8001F9026800001
+14C0DD001F7F060713F806017F726C7E737E737F737F737F8587737F8587A2747EA38786
+A21C80A51CC0A586A462A51C80A51C00A26263A2631AFF636163614F5B634F5B073F90C7
+FC4F5A4F5A06035B061F5B4DB512C0BBC8FC19FC19F0198006F0C9FC524B7CCA5E>I<BB
+12C0A486D8000F01E0C77E18071801F0007F193F191F190F1907861903A31901A3EF0F80
+A2737EA497C7FC171FA2173F177F17FF160392B6FCA5EDE0031600177F173F171FA2050F
+EC0F80A3F21F00A494C8FC621A3EA21A7EA31AFE6219011903A21907190FF13FF819FF18
+03183FBBFCA262A3494A7CC951>I<BBFCA41A80D8001F01C0C7FC181F18038484197F19
+3F191F1AC0190FA31907A4171FF103E0A496C7FCA25FA25F5F5E160792B6FCA5EDC00716
+01828383A283A794C9FCB1B8FCA5434A7CC94D>I<93261FFF80EB01C00307B500F81303
+033F02FE13074AB7EA800F0207EEE01F021F903AFE007FF83F027F01E0903807FC7F91B5
+C73801FEFF010301FCEC007F4901F0814901C0150F4949814990C97E494882495A484982
+48197F5C48193F5C48191F5C48190FA2485BA21A075AA391CEFCA2B5FCAD7E050FB712C0
+80A37E94C7001FEBC000807EA27E807E807E806C7F7E6D7E6D7E6D7F6D01E05D6D6D5D6D
+13FC010001FF4AB5FC6E01E0EB07F9021F01FFEB3FF0020791B5EAE07F0201EEC01FDA00
+3FED0007030702F81301DB001F018090C8FC524D79CB60>I<B712FEA5D8000FEBE000B3
+B3B3ABB712FEA5274B7DCA2E>73 D<B700F8027FB512F0A5D8001F01C0C9EBC00074C7FC
+F101FE4F5A4F5AF10FE04F5A4F5A4FC8FCF001FE4E5A4E5AF00FE04E5A4E5A4EC9FCEF01
+FE4D5A4D5AEF0FE04D5A4D5A4DCAFCEE01FE16034C7E4C7F5E4C7F93B57E03C18015C303
+C780DBCFE77FDBDFC37FEDFF8104017F4B6C804B7F4B6D7F03E0814B6D7F8385717F717F
+83857180727F8486727F8486727F727F84867280737F8587737F87B700F8010FB612FCA5
+564B7CCA60>75 D<B600E092B612FC8181A281D8001F6D9239001FE0006F705A82A28202
+BF7F029F7FA2028F7F02877F02837F8214810280806F7F6F7F83816F7F6F7F6F7F83816F
+80707F707F8482707F707F707FA2707F7014807113C019E0837113F07113F87113FC19FE
+837113FF71148F7213CF1AEF847213FF8484A284848485A2858585A285858585497EB600
+F8167F1A3F1A1F1A0FA2564B7BCA60>78 D<B700F8023FB512F8A5D8001F01C0C9380FE0
+00745AB3B3AD6D180F63811A1F6D96C7FC626D7F1A7E6D7F6D606E6C4B5A6E6CED07F06E
+6C4B5A6E01C0EC3FC06E01F049B45A020101FF011F90C8FC6E91B55A033F15F8030715E0
+030092C9FC040713F0554C7CCA5E>85 D<B7D8E007B791B612C0A5D8003F0180C7000101
+FCC9387F80006F7070C7FC6D70183EA26F70167E6D71177C876F1BFC6D715F6F831E016D
+656F4B6D14036D65876F92B515076D656F4A8007F3160F6E647001036E141F6E04E194C8
+FCA27001076E5C6E04C0163E8770010F177E6E4C6C157C70011F814F6C15FC6E637049ED
+C0016E033E6D5D1CE070017E16036E037C6D5D7001FC15F04E6D14076E63DCFF01EEF80F
+6F4A6D5DA20583EEFC1F6F4A6D92C9FC1CFE05C75F6F4A6D143E05EF16FF4E6E137E6F19
+7C05FF17FC6F91C86C5BA36F496F5BA24D816F61A26F496F5BA370486F5BA370486F90CA
+FCA24D81041F5FA27048167C7A4C7ECA7F>87 D<ECFFFC010FEBFFC0017F14F090B612FC
+489038803FFF2703FC00077F486C6D7F486C6D7F6E7E83707EA3707E6C90C7FC6C5A6C5A
+C9FCA4ED1FFF021FB5FC49B6FC130F013FEBC03F9038FFFE00000313F04813C04890C7FC
+485A485AA2485AA2485AA4167FA26D14FF007F15EF6D01017F6C6C903907CFFF806C6CD9
+0F8F13FE6C9038E07F076C9038FFFE0300014A7ED8003F9038F0007F0103018090C7FC37
+337CB13C>97 D<91380FFF8091B512F8010314FF010F158090263FFE0013C0D97FF8EB1F
+E0D9FFE0EB3FF04849EB7FF8484913FF4890C7FC5A5B121F5B003FED7FF0EE3FE0007FED
+1FC093C7FC5BA212FFAC127F7FA2123FA26D153E121F6D157E6C167C6C6D14FC6C16F86C
+6D13036C01F0EB07F0D97FFCEB1FE06DB4EBFFC0010F90B5120001035C010014F0020F13
+802F337CB137>99 D<EF1FF0EE3FFFA51600177FB3A2EC0FFF91B512E0010314F8010F14
+FE013FEB01FF903A7FF8003FFFD9FFE0130F48497F48497F4890C77E4881485AA2485AA3
+127F5BA212FFAC127FA37F123FA2121F7F000F5D6C6C5C5E6C6D5B6C01E0497F6C6D017F
+EBFFE090393FFE03FE6DB512F801075C010114C09027001FFC00EBC0003B4D7CCB44>I<
+EC0FFF91B512F0010314FC010F14FF90263FFE077F90267FF0007F4948EB3FE04801806D
+7E48824890C76C7E4848140783485A003F6F7EA3485A701380A312FFA290B8FCA401F8CA
+FCA5127FA27FA2123FA26C6CED0F80A2000F161F6C6C16006E5C6C6D147E6C6D5C6C6D49
+5AD97FFCEB07F0903A1FFF803FE06D90B55A010392C7FCD9007F13FC020713C031337DB1
+38>I<ED7FE0913807FFFC021F7F027F7F902601FFE0138049018113C0902607FE0113E0
+49485A14F8131FEB3FF0A26F13C0EB7FE06F1380EE3E0093C7FCADB77EA526007FF0C8FC
+B3B3A2003FB512F8A52B4D7DCC26>I<DA7FFCEB0FF00103B538807FF8011F9138F1FFFC
+4991B512FE90267FF01F13F32701FFC007138348EB0001A248486DEBC1FC000FEEE0F849
+027F1300A2001F82A8000F5EA26D14FF00075E6C6C495BA26CD9C00790C7FC6C9038F01F
+FC4890B55A5ED803C314809026C07FFCC8FC000790CAFCA47FA27F13FC90B612FCEEFFC0
+6C16F817FE6C8218806C17C06D16E00003B812F0120FD81FFCC7000F13F8D83FF0140049
+153F4848ED1FFC00FF160F491507A56D150F007F17F86D151F6C6CED3FF06C6CED7FE0D8
+0FFE913801FFC06C6C6C010713806C01F8017F1300C690B612FC013F15F001071580D900
+3F01F0C7FC37487DB03D>I<EB7FC0B5FCA512037EB3A2923801FFC0030F13F8033F13FE
+4B7F9126C1FE077F9126C3F0037F9138C7C001DACF8080150002DE7F02FC81A25CA25CA3
+5CB3A9B6D8C07FEBFFE0A53B4C7BCB44>I<13FCEA03FF487F487FA2487FA66C5BA26C5B
+6C90C7FCEA00FC90C8FCACEB7FC0B5FCA512037EB3B3B61280A5194D7BCC22>I<EB7FC0
+B5FCA512037EB3B3B3AAB61280A5194C7BCB22>108 D<90287FC001FFE0EC7FF8B5010F
+01FC0103B5FC033F6D010F804B6D6C4814E0DBFE079026C03F817F9126C3F0019138FC00
+7F0003D9C7E0DAE1F8806CDA8000D9F1E06D7E02CFC7EBF3C002DE91267FF780131F02FC
+03FFC77FA24A5DA24A5DA34A5DB3A9B6D8C03FB5D8F00FB512FCA55E317BB067>I<903A
+7FC001FFC0B5010F13F8033F13FE4B7F9126C1FE077F9126C3F0037F00039038C7C0016C
+D9CF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B317BB044>I<91
+3807FF80027F13F80103B6FC010F15C090261FFE017F903A7FF0003FF8D9FFC0EB0FFC48
+496D7E4890C76C7E4817804980000F17C048486E13E0A2003F17F049157FA2007F17F8A4
+00FF17FCAB007F17F8A36C6CEDFFF0A3001F17E06D5C000F17C06C6C4A13806C17006C6D
+495A6C01E0EB1FFC6D6C495A903A3FFE01FFF0010FB612C0010392C7FCD9007F13F80207
+138036337DB13D>I<90397FC00FFFB5017F13F002C1B512FC02C714FF9126CFF80F7F91
+26FFC00313E0000391C77F6C01FC6E7E4A6E7E5C4A6E7E848319808319C0A47113E0AC4D
+13C0A319805FA219004D5A804D5A6E4A5A6E4A5A02FF495BDB80075B9126EFF01F5B02E7
+B548C7FC02E314F802E014E0DB0FFEC8FC92CAFCAFB612C0A53B467CB044>I<9039FF80
+3FE0B5EBFFF8028113FE02837FDA87E11380EC8F830003D99F0713C06C139E14BCA214F8
+A24A6C13806F13004A6C5A93C7FCA45CB3A7B612E0A52A317CB032>114
D<90390FFF8070017FEBF1F048B6FC1207380FFC01391FE0003F4848130F491307127F90
C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFFC015F06C14FC6C14FF6C15806C
15C06C15E0C615F0013F14F8010714FCEB007F14019138003FFE150F0078140700F81403
@@ -432,17 +500,20 @@ A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1FE001FFEBFFC091B51280D8FC7F
1FFE01F0010F1303903907FF87E06DEBFFC06D14806D6C1300EC0FFC26467EC430>I<D9
7FE0EC3FF0B5EC7FFFA5000315016C81B3AB5EA25EA25E7E6EEB0F7F017F021E7F6E017C
EBFFE090393FFE01F86DB512F0010714E0010114C09027003FFE00EBC0003B327BB044>
-I<B60081B500FC90387FFFF0A500019026E000030180903803FC006E715A6C6F5E6E6F13
-03017F61A26E496D1307013F616E6F130F011F4A5EA26E6F131F6D4A93C7FCDD9FFC5B6D
-D9801F153E170F03C06E137E6D023F157C93383E07FFDBE07E15FC6DDA7C035C03F01581
-6D02FC5D4C7E03F815C3DA7FF95E9226FDF00013E7DA3FFF5E4C137F19FF6E5F4C7FA26E
-496D90C8FCA26E5E93C7120FA26E486E5AA202015E4B1403A26E486E5A54317EAF59>
-119 D<007FB500C090387FFFE0A5C601F0C73803F8006E5D017F5E6E1407013F5E6E140F
-011F5E6E141FA26D6D91C7FC5F6D153E6F137E6D157C6F13FC6D5DEDF0016D5DEDF80302
-7F5C15FC1607DA3FFE5B160F021F5CEDFF1F6E91C8FC16BF6E13BE16FE6E5BA36E5BA26E
-5BA26F5AA26F5AA26F5AA393C9FC5D153E157E157CD81F8013FC486C5B387FE001D8FFF0
-5B14035D14074A5A49485A007F49CAFCEBC07E383F81FC6CB45A6C5B6C13C0C648CBFC3B
-467EAF41>121 D E
+I<B66C90B512C0A5000101E0C73807F0006E5D6C5F6E140F017F5E80171F013F93C7FC6E
+5C011F153E6E147E6D157C6F13FC6D5DEDC001A26D01E05B16036D5DEDF0076D5DEDF80F
+027F5CEDFC1F023F91C8FC15FE5E021F133EEDFF7E6E137C16FC6E5BA26E5BA36E5BA26E
+5BA26F5AA26FC9FCA23A317DAF41>I<B60081B500FC90387FFFF0A500019026E0000301
+80903803FC006E715A6C6F5E6E6F1303017F61A26E496D1307013F616E6F130F011F4A5E
+A26E6F131F6D4A93C7FCDD9FFC5B6DD9801F153E170F03C06E137E6D023F157C93383E07
+FFDBE07E15FC6DDA7C035C03F015816D02FC5D4C7E03F815C3DA7FF95E9226FDF00013E7
+DA3FFF5E4C137F19FF6E5F4C7FA26E496D90C8FCA26E5E93C7120FA26E486E5AA202015E
+4B1403A26E486E5A54317EAF59>I<007FB500C090387FFFE0A5C601F0C73803F8006E5D
+017F5E6E1407013F5E6E140F011F5E6E141FA26D6D91C7FC5F6D153E6F137E6D157C6F13
+FC6D5DEDF0016D5DEDF803027F5C15FC1607DA3FFE5B160F021F5CEDFF1F6E91C8FC16BF
+6E13BE16FE6E5BA36E5BA26E5BA26F5AA26F5AA26F5AA393C9FC5D153E157E157CD81F80
+13FC486C5B387FE001D8FFF05B14035D14074A5A49485A007F49CAFCEBC07E383F81FC6C
+B45A6C5B6C13C0C648CBFC3B467EAF41>121 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fk cmtt12 14.4 5
/Fk 5 115 df<EC1FF891B57E010314E0010F14F84980017F8090B7FC48D9F80F1380DA
@@ -673,8 +744,8 @@ C092B5380007FC04FCEB03F84CEB01F004E090C7FC5E5E93C9FC5DA25DA25DA25DA25DA4
5DB3A6003FB712F84882B8FC83A35F7E6C5E3F3F7BBE4A>114 D
E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmtt10 10.95 84
-/Fn 84 126 df<00101304007C131F00FEEB3F80A26C137FA248133FB2007E1400007C7F
+%DVIPSBitmapFont: Fn cmtt10 10.95 86
+/Fn 86 127 df<00101304007C131F00FEEB3F80A26C137FA248133FB2007E1400007C7F
003C131E00101304191C75B830>34 D<903907C007C0A2496C487EA8011F131FA202C05B
A3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F90B512
FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA229387D
@@ -814,117 +885,122 @@ D87F80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C
6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>I<
007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA2821780163F
A6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB0387F
-FFC0B57EA46C5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C812603F8017F91
-38003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93C7
-FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFF
-F8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>82
-D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E484813
-7F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C
-14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07
-F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B5128016
-0000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA4
-3AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<
-3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C
-6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038
-007FFCEC1FF02F3980B730>I<D87FFE90380FFFC0B54913E06E5AA24A7E6C486D13C0D8
-07F0903801FC00A26D130300035DA46C6C495AA46C6C495AA46D131F6D5CA3EC803F013F
-5CA46D6C48C7FCA490380FE0FEA401075B14F1A301035BA314FB01015BA314FFA26D5BA4
-6E5A6E5A2B397EB730>I<D83FFC903801FFE0486C4913F000FF16F8A2007F16F06C486D
-13E0D81FC09038001FC0000F1680A76D143F00071600A7000390380F803E9039F01FC07E
-EC3FE0A3EC7FF0A2147D0001157CA29039F8FDF8FCA314F8A300005D01F913FCA2ECF07C
-A201FD137DA2017D5CECE03DA3017F133FA2ECC01FA2013F5CA2EC800F6D486C5A2D397F
-B730>I<D87FFF90381FFFC0B56C4813E0A46C496C13C0D803F8903803F8006D1307A26C
-6C495AA26C6C5C151F6D5CEC803F013F5CECC07F011F91C7FCA290380FE0FEA214F10107
-5BA2903803FBF8A201015B14FF6D5BA26E5AA36E5AB1903803FFF8497F497FA26D5B6D5B
-2B387EB730>89 D<001FB612FC4815FE5AA490C7EA03FCED07F816F0150FED1FE016C015
-3FED7F80003E1500C85A4A5A5D14034A5A5D140F4A5A5D143F4A5A92C7FC5C495A5C1303
-495A5C130F495A5C133F495A91C8FC5B4848147C4914FE1203485A5B120F485A5B123F48
-5A90B6FCB7FCA46C15FC27387CB730>I<127CA212FEA27EA26C7EA26C7EA26C7EA26C7E
-A26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA2130180A2
-6D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2
-ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>92
-D<007FB612F0A2B712F8A36C15F0A225077B7D30>95 D<1338137CEA01FE12031207EA0F
-FC13F0EA1FE013C0EA3F8013005A127EA212FE5AA5EAFFC013E013F0127FA2123FA2EA1F
-E0EA07C00F1D70BE30>I<EB7FF80003B5FC4814C04880488048809038E01FFC9038C003
-FE14016E7E6C487F6CC77FC8123FA491B5FC130F137F48B6FC12075A48EB803F383FF800
-EA7FE0138048C7FC5AA4157F7E6C6C13FFEBC003263FF01FEBFF8090B712C07E6C14EF00
-0314876CD9FE01138026003FE0C8FC2A2A7BA830>I<EA3FFC487E12FFA2127F123F1200
-AAEC03FE91381FFF80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13804A137F
-4AEB3FC091C7121F17E049140FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F80
-6E13FFDAF00313009138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC90380003FC2C
-3980B730>I<ECFFE0010713FC011F7F017F7F90B612804815C048EB807F3907FC003F48
-5A485A49EB1F804848EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC07C06DEB
-0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B011F13F801
-075B01011380232A7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF87
-4913E790B6FC5A5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25A
-A25AA87E6C140FA27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712
-E06C16F06C14F76D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713
-E0011F13F8017F7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F
-484814F0491307127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB
-03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00
-010713F8010013C0252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5FC491387
-903803FE079138FC03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C15C02600
-07F0C7FCB3A9003FB512FE4880B71280A26C15006C5C25397DB830>I<D903FC13FF9026
-1FFF8713C04913DF90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7FCA2497F
-001F8149133FA56D137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15C001DF5B
-D9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE0001FFE0180
-130148C8127F007E8100FE168048151FA56C153F007FED7F006D5C6C6C495A01F013076C
-B4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730>I<EA3F
-FC487E12FFA2127F123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA29138FE07
-FCECF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500
-FE14FEA26C01FC14FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5AA2EB00E0
-91C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C02339
-7AB830>I<EC01C0EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F04814F8A47E
-EB0003B3B3A5EC07F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C14005C6C5B00
-0F13F0000313C01D4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14C017E0A2
-17C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A5A01FD7F
-90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E6F7E3B7F
-FFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>I<387FFFF8B57EA47EEA
-0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8
-FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC
-01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C0107138032
-2881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C9038FE07FC
-C6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500
-FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8497F90B5
-7E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F
-15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB
-1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E00101
-90C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B612FC6C81
-6CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F17E049140FA217F01607A8
-160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495C
-6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A730>I<ED
-07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF6C9038FFFC3FD8001F13E09238
-801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A28
-7EA730>114 D<90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880
-A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038
-000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF
-0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830>I<EB0780497E131FA9
-003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FCA5ECE003010FEB07F814
-F09138FC1FF06DB512E06D14C016806D14009038007FFCEC1FF026337EB130>I<D83FFC
-EB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A41501A2150315076D130F
-903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF8010001C0C7FC2F2880A630
->I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D13
-0700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2EC
-E0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3F
-FFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157E
-A56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3
-017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81
-FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8
-EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380F
-E3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80
-B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0
-B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151F
-D91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9EC
-FDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EB
-C3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815
-FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A
-4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E4890C7127F485A485A48
-5A485A485A48B7FCB8FCA46C15FE28277DA630>I<ED3FF0913803FFF8140F5C147F16F0
-9138FFF00092C7FC495A5CB3A21303495A133F383FFFF0B55A5C91C8FC14C080003F7F38
-003FF813076D7E1301B3A2806D7E15F091387FFFF016F8141F8014039138003FF025477B
-BE30>I<EA7FE0EAFFFE6D7E8014F07EC66C7E13076D7E1301B3A2806D7E15E091387FFF
-E06E13F8801407141F5C4A13E09138FFE00092C7FC495A5CB3A21303495A137F387FFFF0
-B5FC14C05C49C8FCEA7FE025477BBE30>125 D E
+FFC0B57EA46C5B29387EB730>I<90383FFFE048B512FC000714FF4815804815C04815E0
+EBF80001E0133F4848EB1FF049130F90C71207A44815F8481403B3A8147E14FE6CEBFF07
+6C15F0EC7F87A2EC3FC7018013CF9038C01FFFD83FE014E0EBF80F90B6FC6C15C06C1580
+6C1500000114FCD8003F7FEB00016E7EA21680157F16C0153F16E0151F16F0150FED07E0
+25467BB830>I<003FB57E4814F0B612FC15FF6C816C812603F8017F9138003FF0151F6F
+7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F800
+7FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F06C
+496C13E06C49EB7FC0C9EA1F002E397FB730>I<90390FF803C0D97FFF13E048B512C748
+14F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37EED07C0
+6C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF01031480D9
+003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F07F6DEB
+0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD8780113
+80253A7BB830>I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7FCB3
+B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813FEA46C496C13
+FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC800390393FE00FF8
+90391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730>I<D87FFE90
+380FFFC0B54913E06E5AA24A7E6C486D13C0D807F0903801FC00A26D130300035DA46C6C
+495AA46C6C495AA46D131F6D5CA3EC803F013F5CA46D6C48C7FCA490380FE0FEA401075B
+14F1A301035BA314FB01015BA314FFA26D5BA46E5A6E5A2B397EB730>I<D83FFC903801
+FFE0486C4913F000FF16F8A2007F16F06C486D13E0D81FC09038001FC0000F1680A76D14
+3F00071600A7000390380F803E9039F01FC07EEC3FE0A3EC7FF0A2147D0001157CA29039
+F8FDF8FCA314F8A300005D01F913FCA2ECF07CA201FD137DA2017D5CECE03DA3017F133F
+A2ECC01FA2013F5CA2EC800F6D486C5A2D397FB730>I<D87FFF90381FFFC0B56C4813E0
+A46C496C13C0D803F8903803F8006D1307A26C6C495AA26C6C5C151F6D5CEC803F013F5C
+ECC07F011F91C7FCA290380FE0FEA214F101075BA2903803FBF8A201015B14FF6D5BA26E
+5AA36E5AB1903803FFF8497F497FA26D5B6D5B2B387EB730>89 D<001FB612FC4815FE5A
+A490C7EA03FCED07F816F0150FED1FE016C0153FED7F80003E1500C85A4A5A5D14034A5A
+5D140F4A5A5D143F4A5A92C7FC5C495A5C1303495A5C130F495A5C133F495A91C8FC5B48
+48147C4914FE1203485A5B120F485A5B123F485A90B6FCB7FCA46C15FC27387CB730>I<
+127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7EA2
+6D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7E
+A26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01
+F0150025477BBE30>92 D<007FB612F0A2B712F8A36C15F0A225077B7D30>95
+D<1338137CEA01FE12031207EA0FFC13F0EA1FE013C0EA3F8013005A127EA212FE5AA5EA
+FFC013E013F0127FA2123FA2EA1FE0EA07C00F1D70BE30>I<EB7FF80003B5FC4814C048
+80488048809038E01FFC9038C003FE14016E7E6C487F6CC77FC8123FA491B5FC130F137F
+48B6FC12075A48EB803F383FF800EA7FE0138048C7FC5AA4157F7E6C6C13FFEBC003263F
+F01FEBFF8090B712C07E6C14EF000314876CD9FE01138026003FE0C8FC2A2A7BA830>I<
+EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82EC
+FE079138F001FF4A6C13804A137F4AEB3FC091C7121F17E049140FA217F01607A8160FA2
+17E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E7F
+13C0D93C1F90C7FC90380003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F90B612
+804815C048EB807F3907FC003F485A485A49EB1F804848EB0F004990C7FC127F90C9FCA2
+5A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF80
+6C90B5FCC615006D5B011F13F801075B01011380232A7AA830>I<913801FFE04A7F5CA2
+8080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F4913
+1F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F39
+0FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D907FCC8
+FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A07FC00
+7FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516F0
+48C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C
+90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>I<EDFF80020713E0
+021F13F05C4A13F891B5FC491387903803FE079138FC03F0903907F800C04A1300A8003F
+B612C04815E0B7FCA36C15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15006C5C
+25397DB830>I<D903FC13FF90261FFF8713C04913DF90B712E05A5A2607FE07138F903A
+F801FE07C048486C6CC7FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C6C485A
+EBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C048
+15F0488148813A3FE0001FFE0180130148C8127F007E8100FE168048151FA56C153F007F
+ED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F13
+FC010113C02B3E7DA730>I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380FFF8002
+3F13E091B57E90B67EA29138FE07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3A2
+3B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730>I<14
+E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB6
+12C04815E0B7FCA27E6C15C023397AB830>I<EC01C0EC07F0A2EC0FF8A3EC07F0A2EC01
+C091C7FCA990B512F04814F8A47EEB0003B3B3A5EC07F0A2123C007EEB0FE0B4131FEC3F
+C0147F90B512806C14005C6C5B000F13F0000313C01D4E7CB830>I<EA7FF8487EA4127F
+1200AB0203B512804A14C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5A
+EC0FF84A5A4A5A4A5A4A5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D
+7E6F7E826F7E15076F7E6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D38
+7FB730>I<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>
+I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE
+07EB03F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548
+018F13C0A46C486C01071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF
+90B57E90B67E7E6C9038FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B
+3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4
+FC010F13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB
+0FF0A24848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303
+003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15
+006C6C13FC6D5B010F13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F
+13E000FF90B57E90B612FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7
+121F17E049140FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF003
+13009138FC0FFE91B55A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57E
+A26C5B6C5B2C3C80A730>I<ED07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF
+6C9038FFFC3FD8001F13E09238801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB5
+12FC4880B7FCA26C5C6C5C2A287EA730>114 D<90381FFC1E48B5129F000714FF5A5A5A
+387FF007EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14
+E0000114F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F15
+1F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A
+79A830>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8
+ED01FCA5ECE003010FEB07F814F09138FC1FF06DB512E06D14C016806D14009038007FFC
+EC1FF026337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F000014
+00B3A41501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F8
+7FF8010001C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C49
+6C13803B01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F01
+1F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA3
+6E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D8
+07E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8
+A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F80
+0F802D277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137F
+EC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C49
+7F81903803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E13
+7F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>
+I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014
+076D5C137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0
+157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C14
+7EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B
+3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF8000
+3E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A49
+48133E4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>I<ED3F
+F0913803FFF8140F5C147F16F09138FFF00092C7FC495A5CB3A21303495A133F383FFFF0
+B55A5C91C8FC14C080003F7F38003FF813076D7E1301B3A2806D7E15F091387FFFF016F8
+141F8014039138003FF025477BBE30>I<EA7FE0EAFFFE6D7E8014F07EC66C7E13076D7E
+1301B3A2806D7E15E091387FFFE06E13F8801407141F5C4A13E09138FFE00092C7FC495A
+5CB3A21303495A137F387FFFF0B5FC14C05C49C8FCEA7FE025477BBE30>125
+D<017C133848B4137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713
+C0486C1380D87C0113003838007C1F0C78B730>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fo cmsl10 10.95 35
/Fo 35 123 df<EEFF80030F13F092383FC0789238FE001CDA03F8130E4A48133FDA1FE0
@@ -1044,8 +1120,8 @@ A26E5AA25DA26E5A5DA24AC9FC5C140E141E141C5C121C003F5B5A485B495A130300FE5B
D9FF0013C0485A48481303485A4848EB078049130F4848131F003F143F397F8001FFB712
00A227277EA628>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fp cmbx12 17.28 48
-/Fp 48 122 df<B812C0AD2A0D7EA636>45 D<16F04B7E1507151F153FEC01FF1407147F
+%DVIPSBitmapFont: Fp cmbx12 17.28 47
+/Fp 47 122 df<B812C0AD2A0D7EA636>45 D<16F04B7E1507151F153FEC01FF1407147F
010FB5FCB7FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49
D<913801FFF8021FEBFFC091B612F8010315FF010F16C0013F8290267FFC0114F89027FF
E0003F7F4890C7000F7F48486E7FD807F86E148048486E14C048486E14E048486F13F001
@@ -1083,137 +1159,128 @@ A35AA35C48913801FFE0030F13FE033F6D7E4B14E092B612F89126E1FE037FB53AE3F000
E01AC01A801A00A248606161616101E0C9123F01804C5A48CA485A4D90C7FC60007E4C5A
17074D5A4D5A4D5A485F4D5A17FF4C90C8FCC9485A5F4C5A160F4C5A5F163F4C5A16FF5F
5D94C9FC5D5D5E150FA24B5AA2153FA24B5AA215FFA34A5BA25CA35CA44A5BA45CA65CAD
-6E5BA26E5BDA03FECAFC6E5A456377E051>I<92383FFF800203B512FC021FECFF80027F
-15E049B712F849D9F0077F010F90C76C7ED91FFCEC1FFFD93FF06E7F494802037F494882
-717F484980854890C9127FA24884183FA25A80A380806E157F6E5E14FE6E7E6F4A5A6C14
-F003FC495B03FF495B6C1580DCE0075B6CDBF80F90C7FC9338FE1FFE6C9238FF7FF84D5A
-6D16C06D5E6D4BC8FC6D6F7E6D16E00101826D16FC023F814A8149B87E01078349839026
-3FFE3F8190267FFC0F819026FFF003814849C6FC48496D804849131F4890C70007801601
-48486E1580003F163F49150F007F7014C0491501717E8400FF835B8484A384A21A80A27F
-007F1900607F003F606D160F001F606D4C5A6C6D153F6C6D4B5A6C01F04B5A6C01FC0203
-5B6C01FF021F5B6D9027F001FFFEC7FC6D90B65A010F16F001035E010093C8FC020F14F8
-DA007F90C9FC426079DD51>I<F00FE04E7EA24E7EA34E7EA24E7EA34D7FA24D80A24D80
-A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E04038217F80407
-6D80A24D7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E4C825E03016F7F
-A24C800303845E03076F80A24C80030F845E031F6F80A24C81033F845E037F707F93B9FC
-A292BA7EA24A85A203FCC912070203865D020771805D86020F864B82021F865D87023F86
-4B83027F8692CBFC874A864A840101875C496C728090381FFFC0B700E092B812FEA66F64
-7BE37A>65 D<BB12F0F2FF801BF81BFEF3FFC088D800010280C7000114F8DF003F7F080F
-13FF74807480867480757FA2757FA28987A289A965A26365A2515BA298B55A505C505C50
-91C7FC505B505B087F13F00703B512C096B6C8FC93B812F81BC01BF8F3FF801CE00480C8
-001F13F8080713FE08016D7E7480757F757F757F89757F89871E80871EC0A41EE087A663
-A21EC0A3631E80A2511400A2515B515B6398B55A505C08075C081F5C97B6C7FCBD5A1CF8
-1CE099C8FC1BF898C9FC63627AE173>I<4DB5ED03C0057F02F014070407B600FE140F04
-7FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A
-02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B54882
-490280824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84A24891
-CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C
-7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D
-6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E
-02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648C8FC03
-0117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375>I<BB12E0F2FF80
-1BF01BFE757E1CF0D800010280C7000780DF007F13FE080F6D7E0801807480093F7F090F
-13FC757F757F877580767F8A88767F8A888AA2767FA28A881F80A37614C0A41FE0A5881F
-F0B05214E0A51FC0A4521480A31F006466A2525BA2525BA2525B666499B55A515C5191C7
-FC515B515B515B097F5B50B512C008075C083F91C8FC0707B512FCBD12F01CC051C9FC1B
-F81B8008E0CAFC6C627AE17C>I<BD12FCA488A2D8000102C0C71201F1000F1A01F2007F
-1B3F1B0F1B07757EA28787A288A3F43F80A31C1FA3197EA3F40FC0A499C7FC19FEA31801
-A218031807181F18FF93B6FCA6EEC000181F180718031801A21800A21D7E197EA21DFCA6
-96C812011DF8A31C03A3F407F0A31C0FA21C1F1C3F1DE01C7F1CFF63631B0F093F13C098
-B5FC1A0797B6FCBEFCA31D80A35F617AE06A>I<4DB5ED03C0057F02F014070407B600FE
-140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807
-FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291
-B54882490280824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84
-A24891CD127FA25A4A1A3F5AA348491A1FA44899C8FCA25CA3B5FCB07E071FB812F880A3
-7EA296C70001ECC000A26C7FA37E807EA26C80A26C80A26C807F6D7F816D7F7F6D7F6D6D
-5F6D14C06D6E5E6E7F6E01FC5E020F01FF5E6E02C0ED7FEF020102F8EDFFC76E02FF0207
-1383033F02FC013F1301030F91B638FC007F03014D131F6F6C04E01307040704801301DC
-007F02F8CAFC050191CBFC6D6677E37F>71 D<B96C90B91280A6D8000102C0C9000102C0
-C7FCB3B3A293BBFCA604C0C91201B3B3A6B96C90B91280A671627AE17E>I<B912E0A6C7
-02E0C7FCB3B3B3B3AEB912E0A633627CE13C>I<B96C020FB612FCA6D8000102C0CA003F
-EBF0000A0390C7FC525A525AF41FF0525A525A525A090390C8FC515AF30FF8515A515A51
-5A50485A5090C9FC505AF20FF8505A505A505A4F485A4F90CAFCF107FC4F5A4F5A4F5A4F
-5A4E485A4E90CBFCF007FC4E5A4E7E4E7E18FF4D7F4D805F4D804D804D8094B6FC04C181
-DCC3FE809326C7FC7F7F9338CFF83F9326DFF01F7FDCFFE0814D6C804D7EDCFE00814C6D
-804C7F4C6D804C824C6E7F85737F8873808588738085738088747F86747F897480868974
-8086748089757F87757F8A7580878A7580090F14FCB96C010FB8FCA670627AE17E>75
-D<B912F8A6D8000102C0CBFCB3B3B1F307E0A5F30FC0A61B1FA31B3F1C80A21B7FA21BFF
-A262A262625013006262624FB5FC1907191F4EB6FCBDFC63A553627AE161>I<B700E004
-0FB7128082828282A2D800016EDC000101FCC7FC719338001FC08383A28302FD808302FC
-80816F7F6F806F8084816F806F806F8084707F8270807080857080827080708085717F83
-718071807180868371807180727F8672808472807280877280847280737F877314808573
-14C07314E01CF07314F8857314FC7413FE7413FF1D9F867414DF7414FF86A286868787A2
-87878787A28787888888A288888890261FFFC084B712F8881D7F1D3F1D1F775A71627AE1
-7E>78 D<BB7E1AFCF2FFC01BF81BFE757ED800010280C7001F80070114F0736C7F081F7F
-747F747F7414807414C0A27414E0A21DF0A27513F8A41DFCA91DF8A498B512F0A21DE0A2
-5014C01D8062501400505B505B087F5B4FB512E0071F5C93B9C7FC1BFC1BF01B8008F0C8
-FC04C0CCFCB3B3A2B97EA65E627AE16E>80 D<BA12F8F1FFE01AFEF2FFC01BF01BFED800
-010280C76C7F070714C0070014F0747F081F7F747F747F7480A2748089A37480A389A865
-A3505CA265A2505C9AC9FC505B505B505B087F5B4FB55A0707148096B548CAFC93B812F8
-1BC050CBFC621AFF932680000314C0DE007F7F071F13F8737F737F737F73808885888688
-A2747FA688A688A676140FF71F80A374801F3F86771400745E746E5BB96E6E5B746E485A
-75EBFE07091F90B55A090715E009015DCF003F91C7FC0A0013FC71647AE178>82
-D<DBFFFCEC01E0020FD9FFE01303027F02FC130749B7130F0107EEC01F011F16F049D9C0
-07EBF83F4948C7383FFE7FD9FFF8020FB5FC4801E014014849804849153F91C97E484882
-001F834982003F83845B007F187FA2193FA200FF181FA27F190FA27FA26D17078080806C
-01F893C7FC80ECFF8015F86CECFFC016FC6CEDFFE017FE6CEEFFE018F86C17FE6C717E6C
-846C846D17F86D836D836D8313036D18806D6C17C0020F17E01401DA000F16F015000407
-15F8EE007F1703050014FC183F84060713FE84A2007C8300FC83A2197FA3193F7EA31AFC
-7EA27F1AF86D177F7F1AF06D17FF6D18E06D5E01FF18C06E4B138002E04B130002F84B5A
-02FFED3FFC01CF01E0ECFFF8018301FF010F5B010191B65A6D6C5E48011F93C7FC480103
-15FC48D9003F14E048020149C8FC476677E35A>I<001FBEFCA64849C79126E0000F1480
-02E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181FA400
-7E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>I<B96C023F
-B612FEA6D8000102C0CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C018065701703
-80525A6E7F6E4F5A70171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC033F01E04B5A
-6F6DED1FFC6F01FCED7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7C9FC041F5E
-040716F8040016C0050F4ACAFCDD003F13C06F647AE17C>I<913803FFFE027FEBFFF001
-03B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801017F486D6D7F717E
-486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207B7FC
-147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B4813F85A5C485B5A
-5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF806C01FED90FE114FF
-6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302F001011400D9001F
-90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF80047F14
-F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02007F
-03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA44F13
-F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C495B91
-26F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C7001F91
-C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E0103
-9039FE001FFF4901F8010113804901E0010713C04901804913E0017F90C7FC49484A13F0
-A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE7EA2
-80A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC1FC0
-6D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D020F
-1580020102FCC7FCDA000F13C03E437BC148>I<F17FF8050FB5FCA6EF000F8484B3A892
-380FFF804AB512F8020F14FE023FECFF8391B712E301039138807FF3499039F8000FFB01
-1F01E00103B5FC494913004990C87E49488148498148834A815A485BA2485BA25AA3485B
-A4B5FCAE7EA46C7FA37EA26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D6C6C010380
-6D6D49806D01F0D91FF7EBFFFE6D9039FE01FFE7010190B612876D6CECFE07021F14F802
-0314E09127003FFE00ECC0004F657BE35A>I<92380FFFC04AB512FC020FECFF80023F15
-E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F4948
-6E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA41A00
-02C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17016D
-6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D6C90
-B55A021F15F8020715E0020092C8FC030713F041437CC14A>I<EE3FFC0307B51280033F
-14C04AB612F0020715F84A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF4913F0
-5B4913E0A24913C0A27013FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6D800
-1F01C0C8FCB3B3B0007FB612FCA638657CE431>I<F107F8DB7FFEEC3FFE020FB5D8F001
-B5FC027FDAFE03148049B7128F49DCDFFD13C0010FD9F00FEBFFC149D9800114014990C7
-EBFC0349486E6C7E4948EC3FFF48496E018113800780130048F0C03E97C7FC48496E7FA3
-4884A96C60A36C6D4A5BA26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D485BDBF00F5B
-4990B612C060D97C7F4AC9FCD9FC0F14F09126007FFECAFC92CCFC1201A47FA27F8014F0
-91B77E18FE6CEFFFC019F06D17FC19FF6D846D846D846D84013F8490BAFC0003854801E0
-C712014890C9000F7F484816014848EE007F4848717E8512FF5B85A56D5F007F616D173F
-003F616D177F6C6C4D5A6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D01F8
-011F5B011F90B712F8010717E0010094C8FC020F15F0DA003F01FCC9FC4A607CC151>I<
-903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267FE07F
-7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC825D
-A25DA25DA45DB3B2B7D8F007B71280A651647BE35A>I<EB0FE0EB3FF8497E48B5FCA248
-80A24880A76C5CA26C91C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80007FB5FCA6
-C6FC7F7FB3B3AEB712C0A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3A90503B612
-80A6DD003FEB8000DE0FFCC7FCF01FF04E5AF0FFC04D5B4D90C8FCEF07FC4D5AEF3FF04D
-5A4D5A4C90C9FC4C5AEE0FFC4C5A4C5AEE7FC04C7E03837F03877F158F039F7F03BF7F92
-B5FC838403FC804B7E03F0804B6C7F4B6C7F1580707F707F707FA270807080717FA2717F
-717F717FA2717F717F83867180727F95B57EB7D8E00FECFFF0A64C647BE355>107
+6E5BA26E5BDA03FECAFC6E5A456377E051>I<F00FE04E7EA24E7EA34E7EA24E7EA34D7F
+A24D80A24D80A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E04
+038217F804076D80A24D7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E4C
+825E03016F7FA24C800303845E03076F80A24C80030F845E031F6F80A24C81033F845E03
+7F707F93B9FCA292BA7EA24A85A203FCC912070203865D020771805D86020F864B82021F
+865D87023F864B83027F8692CBFC874A864A840101875C496C728090381FFFC0B700E092
+B812FEA66F647BE37A>65 D<BB12F0F2FF801BF81BFEF3FFC088D800010280C7000114F8
+DF003F7F080F13FF74807480867480757FA2757FA28987A289A965A26365A2515BA298B5
+5A505C505C5091C7FC505B505B087F13F00703B512C096B6C8FC93B812F81BC01BF8F3FF
+801CE00480C8001F13F8080713FE08016D7E7480757F757F757F89757F89871E80871EC0
+A41EE087A663A21EC0A3631E80A2511400A2515B515B6398B55A505C08075C081F5C97B6
+C7FCBD5A1CF81CE099C8FC1BF898C9FC63627AE173>I<4DB5ED03C0057F02F014070407
+B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6
+C73807FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01
+F08291B54882490280824991CB7E49498449498449498449865D49498490B5FC484A84A2
+484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27E
+A2F50FC0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A
+7F6D6D4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F
+01FFEE07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F
+91B648C8FC030117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375>I<
+BB12E0F2FF801BF01BFE757E1CF0D800010280C7000780DF007F13FE080F6D7E08018074
+80093F7F090F13FC757F757F877580767F8A88767F8A888AA2767FA28A881F80A37614C0
+A41FE0A5881FF0B05214E0A51FC0A4521480A31F006466A2525BA2525BA2525B666499B5
+5A515C5191C7FC515B515B515B097F5B50B512C008075C083F91C8FC0707B512FCBD12F0
+1CC051C9FC1BF81B8008E0CAFC6C627AE17C>I<BD12FCA488A2D8000102C0C71201F100
+0F1A01F2007F1B3F1B0F1B07757EA28787A288A3F43F80A31C1FA3197EA3F40FC0A499C7
+FC19FEA31801A218031807181F18FF93B6FCA6EEC000181F180718031801A21800A21D7E
+197EA21DFCA696C812011DF8A31C03A3F407F0A31C0FA21C1F1C3F1DE01C7F1CFF63631B
+0F093F13C098B5FC1A0797B6FCBEFCA31D80A35F617AE06A>I<4DB5ED03C0057F02F014
+070407B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13
+FF92B6C73807FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16
+074A01F08291B54882490280824991CB7E49498449498449498449865D49498490B5FC48
+4A84A2484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C8FCA25CA3B5FCB07E07
+1FB812F880A37EA296C70001ECC000A26C7FA37E807EA26C80A26C80A26C807F6D7F816D
+7F7F6D7F6D6D5F6D14C06D6E5E6E7F6E01FC5E020F01FF5E6E02C0ED7FEF020102F8EDFF
+C76E02FF02071383033F02FC013F1301030F91B638FC007F03014D131F6F6C04E0130704
+0704801301DC007F02F8CAFC050191CBFC6D6677E37F>71 D<B96C90B91280A6D8000102
+C0C9000102C0C7FCB3B3A293BBFCA604C0C91201B3B3A6B96C90B91280A671627AE17E>
+I<B912E0A6C702E0C7FCB3B3B3B3AEB912E0A633627CE13C>I<B96C020FB612FCA6D800
+0102C0CA003FEBF0000A0390C7FC525A525AF41FF0525A525A525A090390C8FC515AF30F
+F8515A515A515A50485A5090C9FC505AF20FF8505A505A505A4F485A4F90CAFCF107FC4F
+5A4F5A4F5A4F5A4E485A4E90CBFCF007FC4E5A4E7E4E7E18FF4D7F4D805F4D804D804D80
+94B6FC04C181DCC3FE809326C7FC7F7F9338CFF83F9326DFF01F7FDCFFE0814D6C804D7E
+DCFE00814C6D804C7F4C6D804C824C6E7F85737F8873808588738085738088747F86747F
+8974808689748086748089757F87757F8A7580878A7580090F14FCB96C010FB8FCA67062
+7AE17E>75 D<B912F8A6D8000102C0CBFCB3B3B1F307E0A5F30FC0A61B1FA31B3F1C80A2
+1B7FA21BFFA262A262625013006262624FB5FC1907191F4EB6FCBDFC63A553627AE161>
+I<B700E0040FB7128082828282A2D800016EDC000101FCC7FC719338001FC08383A28302
+FD808302FC80816F7F6F806F8084816F806F806F8084707F827080708085708082708070
+8085717F83718071807180868371807180727F8672808472807280877280847280737F87
+731480857314C07314E01CF07314F8857314FC7413FE7413FF1D9F867414DF7414FF86A2
+86868787A287878787A28787888888A288888890261FFFC084B712F8881D7F1D3F1D1F77
+5A71627AE17E>78 D<BB7E1AFCF2FFC01BF81BFE757ED800010280C7001F80070114F073
+6C7F081F7F747F747F7414807414C0A27414E0A21DF0A27513F8A41DFCA91DF8A498B512
+F0A21DE0A25014C01D8062501400505B505B087F5B4FB512E0071F5C93B9C7FC1BFC1BF0
+1B8008F0C8FC04C0CCFCB3B3A2B97EA65E627AE16E>80 D<BA12F8F1FFE01AFEF2FFC01B
+F01BFED800010280C76C7F070714C0070014F0747F081F7F747F747F7480A2748089A374
+80A389A865A3505CA265A2505C9AC9FC505B505B505B087F5B4FB55A0707148096B548CA
+FC93B812F81BC050CBFC621AFF932680000314C0DE007F7F071F13F8737F737F737F7380
+8885888688A2747FA688A688A676140FF71F80A374801F3F86771400745E746E5BB96E6E
+5B746E485A75EBFE07091F90B55A090715E009015DCF003F91C7FC0A0013FC71647AE178
+>82 D<DBFFFCEC01E0020FD9FFE01303027F02FC130749B7130F0107EEC01F011F16F049
+D9C007EBF83F4948C7383FFE7FD9FFF8020FB5FC4801E014014849804849153F91C97E48
+4882001F834982003F83845B007F187FA2193FA200FF181FA27F190FA27FA26D17078080
+806C01F893C7FC80ECFF8015F86CECFFC016FC6CEDFFE017FE6CEEFFE018F86C17FE6C71
+7E6C846C846D17F86D836D836D8313036D18806D6C17C0020F17E01401DA000F16F01500
+040715F8EE007F1703050014FC183F84060713FE84A2007C8300FC83A2197FA3193F7EA3
+1AFC7EA27F1AF86D177F7F1AF06D17FF6D18E06D5E01FF18C06E4B138002E04B130002F8
+4B5A02FFED3FFC01CF01E0ECFFF8018301FF010F5B010191B65A6D6C5E48011F93C7FC48
+010315FC48D9003F14E048020149C8FC476677E35A>I<001FBEFCA64849C79126E0000F
+148002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181F
+A4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>I<B96C
+023FB612FEA6D8000102C0CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C01806570
+170380525A6E7F6E4F5A70171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC033F01E0
+4B5A6F6DED1FFC6F01FCED7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7C9FC04
+1F5E040716F8040016C0050F4ACAFCDD003F13C06F647AE17C>I<913803FFFE027FEBFF
+F00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801017F486D6D7F
+717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207
+B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B4813F85A5C48
+5B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF806C01FED90FE1
+14FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302F001011400D9
+001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF8004
+7F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02
+007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA4
+4F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C49
+5B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C700
+1F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E
+01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F90C7FC49484A
+13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE
+7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC
+1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D
+020F1580020102FCC7FCDA000F13C03E437BC148>I<F17FF8050FB5FCA6EF000F8484B3
+A892380FFF804AB512F8020F14FE023FECFF8391B712E301039138807FF3499039F8000F
+FB011F01E00103B5FC494913004990C87E49488148498148834A815A485BA2485BA25AA3
+485BA4B5FCAE7EA46C7FA37EA26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D6C6C01
+03806D6D49806D01F0D91FF7EBFFFE6D9039FE01FFE7010190B612876D6CECFE07021F14
+F8020314E09127003FFE00ECC0004F657BE35A>I<92380FFFC04AB512FC020FECFF8002
+3F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F
+49486E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA4
+1A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17
+016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D
+6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A>I<EE3FFC0307B51280
+033F14C04AB612F0020715F84A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF49
+13F05B4913E0A24913C0A27013FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6
+D8001F01C0C8FCB3B3B0007FB612FCA638657CE431>I<F107F8DB7FFEEC3FFE020FB5D8
+F001B5FC027FDAFE03148049B7128F49DCDFFD13C0010FD9F00FEBFFC149D98001140149
+90C7EBFC0349486E6C7E4948EC3FFF48496E018113800780130048F0C03E97C7FC48496E
+7FA34884A96C60A36C6D4A5BA26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D485BDBF0
+0F5B4990B612C060D97C7F4AC9FCD9FC0F14F09126007FFECAFC92CCFC1201A47FA27F80
+14F091B77E18FE6CEFFFC019F06D17FC19FF6D846D846D846D84013F8490BAFC00038548
+01E0C712014890C9000F7F484816014848EE007F4848717E8512FF5B85A56D5F007F616D
+173F003F616D177F6C6C4D5A6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D
+01F8011F5B011F90B712F8010717E0010094C8FC020F15F0DA003F01FCC9FC4A607CC151
+>I<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267F
+E07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC
+825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>I<EB0FE0EB3FF8497E48B5FC
+A24880A24880A76C5CA26C91C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80007FB5
+FCA6C6FC7F7FB3B3AEB712C0A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3A90503
+B61280A6DD003FEB8000DE0FFCC7FCF01FF04E5AF0FFC04D5B4D90C8FCEF07FC4D5AEF3F
+F04D5A4D5A4C90C9FC4C5AEE0FFC4C5A4C5AEE7FC04C7E03837F03877F158F039F7F03BF
+7F92B5FC838403FC804B7E03F0804B6C7F4B6C7F1580707F707F707FA270807080717FA2
+717F717F717FA2717F717F83867180727F95B57EB7D8E00FECFFF0A64C647BE355>107
D<903807FF80B6FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>I<902607FF80D91F
FFEEFFF8B691B500F00207EBFF80040702FC023F14E0041F02FF91B612F84C6F48819326
7FE07F6D4801037F922781FE001F9027E00FF0007FC6DA83F86D9026F01FC06D7F6DD987
@@ -1536,8 +1603,8 @@ A26F5AA26F5AA26F5AA26F5AA35E150F5E151F93C9FC5DD81FC0133E486C137E486C137C
486C13FC5D14015D14034A5A6C48485A49485A263FC07FCAFCEB81FE6CB45A6C13F00003
5BC690CBFC404D7DB447>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fs cmr10 10.95 86
-/Fs 86 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
+%DVIPSBitmapFont: Fs cmr10 10.95 85
+/Fs 85 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
D<EC03FE91383FFF809138FE03E0903903F800F0D90FE013384948137C90393F8001FE90
@@ -1547,264 +1614,262 @@ EB1FC0EB3F80EB7F005B5B150148481300AEB7FCA3D801FCC7FCB3AE486C497EB5D8F87F
13FCA32E407EBF33>I<DA03FE49B4FC91273FFF801F13C0913BFE03E07F01F0903C03F0
00F1FC0078D90FE0D97FF0131C49484948133E4948484913FF494848495A5B491500A248
485C03016E5A0300153896C7FCAA197FBBFCA3D801FCC738FE00018485B3AC486C496CEC
-FF80B5D8F87FD9FC3F13FEA347407EBF4C>I<121EEA7F80EAFFC0A9EA7F80ACEA3F00AC
-121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33
-D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F391E600F30000013
-00A401E01370491360A3000114E04913C00003130101001380481303000EEB070048130E
-0018130C0038131C003013181C1C7DBE2D>I<4B6C130C4B6C131EA20307143EA24C133C
-A2030F147CA293C71278A24B14F8A2031E5CA2033E1301A2033C5CA3037C1303A203785C
-A203F81307A24B5CA20201140F007FBAFCBB1280A26C1900C72707C0003EC8FC4B133CA3
-020F147CA292C71278A24A14F8A2021E5CA3023E1301007FBAFCBB1280A26C1900C727F8
-0007C0C8FC4A5CA20101140FA24A91C9FCA301035CA24A131EA20107143EA24A133CA201
-0F147CA291C71278A34914F8A2011E5CA2013E1301A2013C5CA201186D5A41517BBE4C>
-I<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD8
-1F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E0092
-C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F1303
-01007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A5130000FC
-158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280
-D93FFEC7FCEB0FF8EB00E0A422497BC32D>I<EC0F80EC7FE0ECF870903803E038010713
-3CECC01CEB0F80011F131E150EA2EB3F00A55D1480A25D157815705D6D6C5A14C1ECC380
-02C7CAFC02EE91387FFFFCEB0FEC14FC4A020713C06D48913801FE006E5DEF00F06D7E01
-074B5A496C5D011D1503D939FF4A5A017093C7FC496D5B0001017F140E496C6C131E0003
-6E131C2607801F143C000F6E5B001F6D6C1370263F000714F0486E485ADA03FE5B913801
-FF03486D495A0487C8FCED7FCFED3FFE6F4814386D5C150F007F6E6C14786D6D6C147000
-3F4A6C14F06D496C6C13E0001F91393E3FC0016C6C903AFC1FF003C03D07FC07F007FC1F
-800001B5D8C001B512006C6C90C7EA7FFCD90FF8EC0FF03E437CC047>38
-D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A
-120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB03801307EB0F00131E13
-3E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12
-FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F13787F133E
-131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E121E7E6C
-7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A61303
-14F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B48
-5A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<EB03C0A2805CA600F0140F00FC14
-3F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC03900FDBF00EB3FFCEB0FF0EB
-03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3C3FC39FF03C0FF00FE147F00
-FC143F00F0140F00001400A6805CA220277AC32D>I<121EEA7F8012FF13C0A213E0A312
-7FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C798919>
-44 D<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>
-I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C157CA2157815F8A25D14
-01A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147CA2147814F8A25C1301
-A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA2137813F8A25B1201A25B12
-03A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA2127812F8A25A1260225B7B
-C32D>I<EB01FE90380FFFC090383F03F090387C00F849137C48487F48487F4848EB0F80
-A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FCB3A26C15F8A56C6CEB
-07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E6C6C5B017C5B90383F
-03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C013031307131F137FEA07FFB5FC13
-9FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90383FFF8090B512E039
-03F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC05AED3FE01270B4FC6D
-EB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16004A5A5D4A5A4A5A5D
-4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E133C5B4914E0485A485A
-485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC90383FFF809038F80F
-E03901E003F839078001FCD80F007F000E6D7E001E1580D81F80137F486C14C07FA27F5B
-A2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038
-000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A2120C123F487E487EA316
-E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC3903F80FF0C6B55A01
-3F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE1401A21403EC077E14
-06140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B120148
-5A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<
-00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE
-90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813C0A216
-E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F80123C
-6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC
-2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E017EEB1FC049133F48
-48137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA3485AA214FE903887FF80
-39FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914C0A2ED1FE0A34914F0
-A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C6C137E6C6C5B6C6C48
-5A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238123C123F90B612FCA3
-16F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC8127015F0
-4A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A3130F5CA2
-131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF8090387C07E09038F001
-F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4123FA26DEB0F807F6C
-6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D
-13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F800313C048487E4890
-38007FE0003E143F007E141F007CEC0FF01507481403A31501A46C15E0007C1403A2007E
-15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86CB512E0011F1380D903
-FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048486C7E48486C7E4848
-137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0A516F0A5127F153FA3
-6C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F90387E0F1FD91FFE13E0EB
-07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A5A5D49485AEB800739
-1E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F
-80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779
-A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A412
-7F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619>I<00
-7FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0A26C18E03C167BA147>61
-D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381FEA34AC6
-7EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA24981913880
-0001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA2017882170F13
-FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 D<B712FCEEFF8017F000
-01903980000FF86C6CC7EA03FE707E701380EF7FC0EF3FE0A2EF1FF0A218F8A3170F171F
-A318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0FF8EE7FE091B6C7FC17E091C7EA07
-FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F18FC1707A218FEA718FC170FA2EF
-1FF818F0173FEF7FE0EFFFC00403138048486C90380FFE00B85A17E094C7FC373E7DBD40
->I<DB3FF01306912603FFFE130E020F9038FF801E913A3FF007E03E9139FF8000F8D903
-FEC7EA7C7ED907F8EC1EFE4948140FD93FE0140749481403495A91C81201484815001203
-4848167E5B000F173EA24848161EA2123F5B180E127FA349160012FFAC127F7F180EA212
-3FA27F001F171E181C6C7EA20007173C6D16386C6C1678000117706C6C16F06EEC01E06D
-6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E902600FF8013F891393FF007F0
-020FB512C0020391C7FC9138003FF037427BBF42>I<B712FCEEFF8017E000019039C000
-1FF86C6C48EB03FEEE00FF717E717EEF0FE084717E717E170184717EA21980187F19C0A3
-F03FE0A519F0AB19E0A5F07FC0A21980A218FF19004D5AA24D5A6017074D5A4D5AEF7FC0
-4DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E7DBD45>I<B912E0A300019038C0
-00016C6C48EB001FEF0FF01703A217011700A31870A418381638A41800A21678A216F815
-01150791B5FCA3EC8007150115001678A21638A2180EA3181C93C7FCA4183C1838A21878
-A318F8EF01F0A21707170F173F48486CEB03FFB912E0A3373E7DBD3E>I<B91280A30001
-9038C000036C6C48EB007FEF1FC0170F1707A21703A31701A4EF00E0A21638A31800A316
-78A216F81501150791B5FCA3EC8007150115001678A21638A693C8FCAF3801FFE0B612F0
-A3333E7DBD3B>I<DB3FE0130C912603FFFE131C021F9038FF803C913A7FF00FC07C9139
-FF0001F0D903FC90380078FC4948143DD91FE0141F4948140F4948140701FF15034890C8
-FC491501485A000716005B000F177C5B001F173CA2485AA2181C127FA25B95C7FC12FFAB
-041FB512F0127FA26D9139000FFE00EF03FC123FA27F121FA26C7EA212077F12036C7E7F
-6C7F6D6C14076D7E6D6C140FD907F8141ED903FEEC3C7C902600FF80EBF83C913A7FF007
-F01C021FB5EAC00C020391C8FC9138003FF03C427BBF47>I<B6D8C01FB512F8A3000101
-E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3A92601FFE0EC3FFCB6D8C0
-1FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3FC0B3B3B2EBFFF0B612F0A31C3E7E
-BD21>I<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F80EAFFC0A44A5A1380D8
-7F005B007C130700385C003C495A6C495A6C495A2603E07EC7FC3800FFF8EB3FC026407C
-BD2F>I<B600C090387FFFFCA3000101E0C7000F138026007F80913807FE0018F818E060
-4D5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC163E5E5E4B5A4B5AED07804B7E151F4B
-7E4B7E15FF913881EFF8913883C7FCEC878791388F03FE91389E01FF14BCDAF8007F4A6D
-7E5C4A6D7E4A6D7EA2707E707EA2707E707EA2707F717E84173F717E717EA2717E848419
-802601FFE04A13C0B600C090B6FCA3403E7DBD47>I<B612F8A3000101E0C9FC38007F80
-B3B0EF0380A517071800A45FA35FA25F5F5F4C5A160748486C133FB8FCA3313E7DBD39>
-I<B500C093B512C0A300016D4BEBE000D8007F1880D977F0ED03BFA3D973F8ED073FA3D9
-71FC150EA2D970FE151CA3027F1538A36E6C1470A36E6C14E0A26E6CEB01C0A36E6CEB03
-80A36E6CEB0700A26E6C130EA36E6C5BA3037F5BA26F6C5AA36F6C5AA392380FE1C0A392
-3807F380A26FB4C7FCA36F5AA213F8486C6D5AD807FFEFFFE0B500F80178017FEBFFC0A3
-4A3E7CBD53>I<B56C91B512F88080D8007F030713006EEC01FC6E6E5A1870EB77FCEB73
-FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E7E6E7FA26F7E6F7EA26F7E
-6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE0FF8A2EE07FCEE03FEA2EE
-01FF7013F0A2177F173FA2171F170FA2170701F81503487ED807FF1501B500F81400A218
-703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F8091397E0007E04948EB03F8D907F0
-EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E00018349150300038348486F7E
-A248486F7EA2001F188049167F003F18C0A3007F18E049163FA300FF18F0AC007F18E06D
-167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A00035F6D150700015F6C6C4B
-5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03F8D9007FEB0FE091391FC0
-3F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8EEFF8017E000019039C0003F
-F86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0A218F8A818F0A2EF3FE0A218
-C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280C9FCB3A73801FFE0B612C0A3
-353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091397F000FE0D901FCEB03F8D907F0
-EB00FE4948147F49486E7E49486E7E49C86C7E498248486F7E49150300038348486F7EA2
-000F834981001F1880A24848EE7FC0A3007F18E0A249163FA200FF18F0AC007F18E0A26D
-167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F805B6C6C90393FE003FCED70
-706C6C496C485A6C6C48486C485A017FD9800E5BD93F819038061FC0D91FC19038073F80
-D90FE14AC7FCD907F1EB03FE902601FDC013F8903A007EE007E091271FF03FC013180207
-B5FC9139007FE1E0DB0001143883711378A2706C13F0EFFF0318FFA27113E0A37113C071
-1380711300715AEF01F83D527BBF47>I<B712C016FCEEFF800001D9C00013E06C6C48EB
-1FF0EE07FCEE01FE707E84717EA2717EA284A760177F606017FF95C7FCEE01FCEE07F8EE
-1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC0707E707E83160383160183A3
-83A484A4F0C004190EA28218E0057F131E2601FFE0161CB600C0EB3FF094381FF8380507
-1370CA3801FFE09438003F803F407DBD43>I<D907FC131890391FFF8038017FEBE07839
-01FC03F83A03F0007CF8D807C0133F4848130F001F140748C7FC003E1403007E1401A200
-7C140012FC1678A46C1538A27EA26C6C14007F7FEA3FF8EBFF806C13F86CEBFF806C14F0
-6C14FC6C14FF6C15C0013F14E0010714F0EB007F020713F89138007FFC150FED07FE1503
-1501ED00FFA200E0157FA3163FA27EA3163E7E167E6C157C6C15FC6C15F86D13016DEB03
-F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE00D8E00713F839C0007FC028427B
-BF33>I<003FB91280A3903AF0007FE001018090393FC0003F48C7ED1FC0007E1707127C
-00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>
-I<B600C090B512F8A3000101E0C70007130026007F80EC01FC715A1870B3B3A4013F16F0
-6E5DA21701011F5E80010F15036E4A5A010793C7FC6D6C5C6D6C141E6D6C5C027F14F86E
-6C485A91390FF00FE00203B51280020049C8FCED1FF03D407DBD44>I<B691380FFFFEA3
-000301E0020113E06C01809138007F806CEF3F00017F163E181C6E153C013F1638A26E15
-78011F1670A26D6C5DA26E140101075EA26E140301035EA26D6C4AC7FCA2806D150EA26F
-131E027F141CA26F133C023F1438A26E6C5BA26F13F0020F5CA2EDF80102075CA26E6C48
-5AA2EDFE07020191C8FCA26F5A6E130EA2ED7F9CA216DCED3FF8A36F5AA36F5AA26F5AA3
-6F5A3F407EBD44>I<B500FE017FB5D88007B5FCA3000301C0010101E0C713F86C90C849
-EC3FE07148EC0F807E7215006E143F017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C
-60A2933801C3FC6E18F001076104037F6E0281140101036104077F17006D6C4D5AA2040E
-EB7F806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003C0161E023F171C047814F0DB
-E070010F133C021F173804F014F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80
-EB01FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FCA24B81037C153EA20378151E
-0338151C58407EBD5D>I<007FB5D8C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC
-1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D13F04C5ADA7FC05B023F1303
-6F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C5A913801FF7016F06E5B6F5A
-A26F7E6F7EA28282153FED3BFEED71FF15F103E07F913801C07F0203804B6C7EEC07004A
-6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F130149486E7E4A6E7E130749C8
-6C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B512FEA33F3E7EBD44>I<B66C
-0103B51280A3000101F0C8EBF8006C6C48ED3FC0725A013F041EC7FC6D7E606D6C15386D
-6C1578606D6C5D6E14016D5E6D6D1303606E6C49C8FC6E6C5B170E6E6C131E171C6E6C5B
-6E6C137817706E6C13F06F5B6E13016EEB83C05FED7FC7DB3FE7C9FC16EFED1FFE5E150F
-6F5AB3A4ED1FFC020FB512FCA3413E7FBD44>I<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA4
-0E5B77C319>91 D<486C13C00003130101001380481303000EEB070048130E0018130C00
-38131C003013180070133800601330A300E01370481360A400CFEB678039FFC07FE001E0
-13F0A3007F133FA2003F131F01C013E0390F0007801C1C73BE2D>I<EAFFFCA4EA003CB3
-B3B3B3ABEAFFFCA40E5B7FC319>I<EA0180120313005A120E5A12181238123012701260
-A312E05AA412CFEAFFC013E0A3127FA2123F13C0EA0F000B1C7ABE19>96
-D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF07F6E7EA3157F6C
-5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0485A485A
-A248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC00E13CF3A07F03C
-0FFE3A01FFF807FC3A003FC001F0292A7DA82D>I<EA01FC12FFA3120712031201B1EC03
-FC91381FFF8091387C07E09039FDE001F09039FFC000FC4A137E91C77E49158049141F17
-C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5C6E13FE
-9039F3C001F89039F1E003F09039E0780FC09026C03FFFC7FCC7EA07F82D407EBE33>I<
-49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B121FA248
-48EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C1307
-6C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828
->I<ED01FC15FFA3150715031501B114FF010713E190381F80F990387E003D49131FD803
-F81307485A49130348481301121F123F5B127FA290C7FCA25AAA7E7FA2123FA26C7E000F
-14037F000714076C6C497E6C6C497ED8007C017913F890383F01F190380FFFC1903A01FE
-01FC002D407DBE33>I<EB01FE90380FFFC090383F03F09038FC01F848486C7E4848137E
-48487F000F158049131F001F15C04848130FA2127F16E090C7FCA25AA290B6FCA290C9FC
-A67EA27F123F16E06C7E1501000F15C06C6C13036DEB07806C6C1400C66C131E017E5B90
-381F80F8903807FFE0010090C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C903807E0
-7E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C1500AEB6FCA3C648C7FCB3AE48
-7E007F13FFA320407EBF1C>I<167C903903F801FF903A1FFF078F8090397E0FDE1F9038
-F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00
-075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA2
-7F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E14004815
-7E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017F
-C7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FFA3120712031201B1EC01FE9138
-07FFC091381E07E091387803F09138E001F8D9FDC07F148001FF6D7E91C7FCA25BA25BB3
-A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8
-FCACEA01FC127FA3120712031201B3AC487EB512F0A3143E7DBD1A>I<1478EB01FEA2EB
-03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14
-FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C>I<EA01FC
-12FFA3120712031201B292B51280A392383FFC0016E0168093C7FC153C5D5D4A5AEC07C0
-4A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E1401816E
-7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01FC12FFA3
-120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701F801FE14FF00FF902707FFC0
-0313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9C06D487F
-000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F8
-7FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E091387803F0
-00079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8
-F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F4848EB0F
-804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C
-15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D800
-7EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381F
-FF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F49EC3F805BEE1FC0
-17E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001
-F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733
->I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E4848EB0FFC
-150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C13
-0F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512
-F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB
-1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901
-FFF8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E7E6D1300
-EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF8
-00E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E01F0038E0
-FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207001FB512C0
-B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F8700EB07FE
-EB01F81B397EB723>I<D801FC14FE00FF147FA3000714030003140100011400B3A51501
-A31503120015076DEB06FF017E010E13806D4913FC90381FC078903807FFE00100903880
-FE002E297DA733>I<B539E00FFFE0A32707FE000313006C48EB00FC5E00015D7F00005D
-A26D13016D5CA26D6C485AA2ECC007011F91C7FCA290380FE00EA2ECF01E0107131CA26D
-6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B287EA630
->I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C486D48EB3F806C4817006D010F141E
-00016F131C15076D163C00004A6C1338A2017F5E4B7E151DD93F805DED3DFC1538D91FC0
-4A5AED78FE9238707E03D90FE0017F5BEDE03F02F0140701070387C7FC9138F1C01F02F9
-148F010315CE9138FB800F02FF14DE6D15FCED00076D5DA24A1303027E5CA2027C130102
-3C5C023813003D287EA642>I<B539F01FFFE0A30003D9C00F1300C690388007F8D97F00
-13E002805BD93FC05B011F49C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF
-6E5A6E5A81141F814A7E81147BECF1FC903801E1FEECC0FF01037F49486C7ED90F007F01
-1E6D7E013E130F496D7E01FC80486C80000F4A7EB539803FFFF8A32D277FA630>I<B539
-E00FFFE0A32707FE000313006C48EB01FC6F5A00015D7F00005DA2017F495AA2EC800301
-3F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF83C01031338A26D6C5AA2ECFEF001
-005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C143C1438A2147800181370127EB45B
-A2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA07E02B3A7EA630>I<001FB61280
-A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F5D4AC7FC
-C6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B4848130712074914
-00485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>I<BE12C0A25A0280
-985B>124 D E
+FF80B5D8F87FD9FC3F13FEA347407EBF4C>I<001E130F397F803FC000FF137F01C013E0
+A201E013F0A3007F133F391E600F3000001300A401E01370491360A3000114E04913C000
+03130101001380481303000EEB070048130E0018130C0038131C003013181C1C7DBE2D>
+34 D<4B6C130C4B6C131EA20307143EA24C133CA2030F147CA293C71278A24B14F8A203
+1E5CA2033E1301A2033C5CA3037C1303A203785CA203F81307A24B5CA20201140F007FBA
+FCBB1280A26C1900C72707C0003EC8FC4B133CA3020F147CA292C71278A24A14F8A2021E
+5CA3023E1301007FBAFCBB1280A26C1900C727F80007C0C8FC4A5CA20101140FA24A91C9
+FCA301035CA24A131EA20107143EA24A133CA2010F147CA291C71278A34914F8A2011E5C
+A2013E1301A2013C5CA201186D5A41517BBE4C>I<14E0A4EB07FC90383FFF8090B512E0
+3901F8E3F03903E0E0FCD807C0133CD80F807FD81F007F003E80003C1580007C140316C0
+0078141F00F8143F157FA47EED3F806CEC0E0092C7FC127F138013C0EA3FF013FEEA1FFF
+6C13FC6C13FF6C14C06C806C6C13F8011F7F130301007FECE7FF14E102E01380157F153F
+ED1FC0A2003E140F127FD8FF801307A5130000FC158000F0140F1270007815005D6C141E
+153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280D93FFEC7FCEB0FF8EB00E0A422497BC3
+2D>I<EC0F80EC7FE0ECF870903803E0380107133CECC01CEB0F80011F131E150EA2EB3F
+00A55D1480A25D157815705D6D6C5A14C1ECC38002C7CAFC02EE91387FFFFCEB0FEC14FC
+4A020713C06D48913801FE006E5DEF00F06D7E01074B5A496C5D011D1503D939FF4A5A01
+7093C7FC496D5B0001017F140E496C6C131E00036E131C2607801F143C000F6E5B001F6D
+6C1370263F000714F0486E485ADA03FE5B913801FF03486D495A0487C8FCED7FCFED3FFE
+6F4814386D5C150F007F6E6C14786D6D6C1470003F4A6C14F06D496C6C13E0001F91393E
+3FC0016C6C903AFC1FF003C03D07FC07F007FC1F800001B5D8C001B512006C6C90C7EA7F
+FCD90FF8EC0FF03E437CC047>38 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A4
+13E013C0A312011380120313005A120E5A1218123812300B1C79BE19>I<1430147014E0
+EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F
+90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A2
+6C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C3
+23>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA214
+80130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B
+133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<
+EB03C0A2805CA600F0140F00FC143F00FE147F00FF14FF393FC3C3FC390FE187F03903F1
+8FC03900FDBF00EB3FFCEB0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F039
+3FC3C3FC39FF03C0FF00FE147F00FC143F00F0140F00001400A6805CA220277AC32D>I<
+121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A12
+0E5A1218123812300B1C798919>44 D<B512FEA617067F961E>I<121EEA7F80A2EAFFC0
+A4EA7F80A2EA1E000A0A798919>I<ED0180ED03C01507A21680150FA216005DA2151E15
+3EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2141E143E
+A2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2131E133E
+A25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2121E123EA2123C
+127CA2127812F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F03F090387C00F8
+49137C48487F48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0A290C712034815
+F8A64815FCB3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315
+006C6C133E6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C0
+13031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>
+I<EB07FC90383FFF8090B512E03903F01FF83907C007FC390F0001FE001E6D7E001C1580
+003CEC7FC05AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F
+168015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C7
+1270133E133C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D
+>I<EB07FC90383FFF809038F80FE03901E003F839078001FCD80F007F000E6D7E001E15
+80D81F80137F486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E0
+4A5A023FC7FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153F
+A216F0A2120C123F487E487EA316E0A249137F6CC713C01278EDFF807E6C4913006C495A
+3907C007FC3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2
+157EA215FE1401A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB07
+00A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00
+AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092
+C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E090387001F8496C7E49137E49
+7F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12
+FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6
+B55A013F90C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F
+000780133E017EEB1FC049133F4848137F12035B12074848EB3F80ED1F00001F91C7FC5B
+A2123FA3485AA214FE903887FF8039FF8F07E090389C01F09038B800FC01B0137E13F049
+7F16804914C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A200
+07EC7F006C6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903FCC7FC243F7CBC
+2D>I<1238123C123F90B612FCA316F85A16F016E00078C712010070EC03C0ED07801600
+5D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8
+A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC
+90381FFF8090387C07E09038F001F83901E0007C48487F48487F48C7FCED0F80121E16C0
+003E1407A4123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6C
+EBF3E06CEBFF806C91C7FC133F6D13C06D7F013F13F801787F48486C7E3903E01FFF4848
+6C1380260F800313C048487E489038007FE0003E143F007E141F007CEC0FF01507481403
+A31501A46C15E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C133ED807F05B39
+01FC03F86CB512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C090
+38FC03F048486C7E48486C7E4848137C000F147E4848137F81003F15805B007F15C0A215
+1F12FF16E0A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13DF000313013900
+F8039F90387E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD80F801400487E48
+6C13FEA24A5A5D49485AEB8007391E000FE0001F495A260FC07FC7FC3803FFFE6C13F838
+003FC0243F7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2
+EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7
+FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A3120313005A1206120E120C
+121C5A1230A20A3979A619>I<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0
+A26C18E03C167BA147>61 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC
+15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA34948
+6D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C153FA2013C82
+0138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>
+65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF7FC0EF3FE0
+A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0FF8EE
+7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F18FC
+1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C90380FFE00
+B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF801E913A3F
+F007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE0140749481403
+495A91C812014848150012034848167E5B000F173EA24848161EA2123F5B180E127FA349
+160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D16386C6C167800
+0117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E90
+2600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF42>I<B712
+FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084717E717E17
+0184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF19004D5AA2
+4D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E7DBD
+45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A31870A41838
+1638A41800A21678A216F81501150791B5FCA3EC8007150115001678A21638A2180EA318
+1C93C7FCA4183C1838A21878A318F8EF01F0A21707170F173F48486CEB03FFB912E0A337
+3E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707A21703A31701
+A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115001678A21638
+A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE131C021F9038
+FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91FE0141F494814
+0F4948140701FF15034890C8FC491501485A000716005B000F177C5B001F173CA2485AA2
+181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC123FA27F121F
+A26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED903FEEC3C7C90
+2600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF03C427BBF47>
+I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120F
+B3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3FC0B3
+B3B2EBFFF0B612F0A31C3E7EBD21>I<011FB512FCA3D9000713006E5A1401B3B3A6123F
+EA7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07E
+C7FC3800FFF8EB3FC026407CBD2F>I<B600C090387FFFFCA3000101E0C7000F13802600
+7F80913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC163E5E5E
+4B5A4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FCEC878791388F03FE91
+389E01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA2707E707EA2707F717E84
+173F717E717EA2717E848419802601FFE04A13C0B600C090B6FCA3403E7DBD47>I<B612
+F8A3000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA25F5F5F4C5A16074848
+6C133FB8FCA3313E7DBD39>I<B500C093B512C0A300016D4BEBE000D8007F1880D977F0
+ED03BFA3D973F8ED073FA3D971FC150EA2D970FE151CA3027F1538A36E6C1470A36E6C14
+E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A26E6C130EA36E6C5BA3037F5BA26F6C5A
+A36F6C5AA392380FE1C0A3923807F380A26FB4C7FCA36F5AA213F8486C6D5AD807FFEFFF
+E0B500F80178017FEBFFC0A34A3E7CBD53>I<B56C91B512F88080D8007F030713006EEC
+01FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E7EA2
+6E7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0
+EE0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503487E
+D807FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F809139
+7E0007E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F7E00
+018349150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E04916
+3FA300FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C4B5A
+00035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB
+03F8D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B712F8
+EEFF8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF1FF0
+A218F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC0280
+C9FCB3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091397F
+000FE0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E498248486F
+7E49150300038348486F7EA2000F834981001F1880A24848EE7FC0A3007F18E0A249163F
+A200FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007DA0F
+805B6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A017FD9800E5BD93F8190
+38061FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FDC013F8903A007EE0
+07E091271FF03FC013180207B5FC9139007FE1E0DB0001143883711378A2706C13F0EFFF
+0318FFA27113E0A37113C0711380711300715AEF01F83D527BBF47>I<B712C016FCEEFF
+800001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F6060
+17FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE1FC0
+707E707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FFE0161CB6
+00C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>I<D907FC1318
+90391FFF8038017FEBE0783901FC03F83A03F0007CF8D807C0133F4848130F001F140748
+C7FC003E1403007E1401A2007C140012FC1678A46C1538A27EA26C6C14007F7FEA3FF8EB
+FF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F020713F8
+9138007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C157C
+6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE00D8
+E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0007FE001018090393FC000
+3F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E
+0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C70007130026007F80EC01
+FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D6C5C
+6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF03D40
+7DBD44>I<B691380FFFFEA3000301E0020113E06C01809138007F806CEF3F00017F163E
+181C6E153C013F1638A26E1578011F1670A26D6C5DA26E140101075EA26E140301035EA2
+6D6C4AC7FCA2806D150EA26F131E027F141CA26F133C023F1438A26E6C5BA26F13F0020F
+5CA2EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A6E130EA2ED7F9CA216DCED
+3FF8A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE017FB5D88007B5FCA3000301
+C0010101E0C713F86C90C849EC3FE07148EC0F807E7215006E143F017F190E84A26D6C60
+A24D7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F001076104037F6E02811401010361
+04077F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1FE003
+C0161E023F171C047814F0DBE070010F133C021F173804F014F84C1307DA0FF05EA2DBF1
+C0EB03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA26E5FA24B157F020094C8FC
+A24B81037C153EA20378151E0338151C58407EBD5D>I<007FB5D8C003B512E0A3C649C7
+EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D
+13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C
+5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71FF15F103E07F913801
+C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F13
+0149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B5
+12FEA33F3E7EBD44>I<B66C0103B51280A3000101F0C8EBF8006C6C48ED3FC0725A013F
+041EC7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D6D1303606E6C49C8FC6E6C
+5B170E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E13016EEB83C05FED7FC7DB
+3FE7C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3413E7FBD44>I<EAFFFCA4
+EAF000B3B3B3B3ABEAFFFCA40E5B77C319>91 D<486C13C0000313010100138048130300
+0EEB070048130E0018130C0038131C003013180070133800601330A300E01370481360A4
+00CFEB678039FFC07FE001E013F0A3007F133FA2003F131F01C013E0390F0007801C1C73
+BE2D>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>I<EA0180120313005A120E
+5A12181238123012701260A312E05AA412CFEAFFC013E0A3127FA2123F13C0EA0F000B1C
+7ABE19>96 D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF07F6E
+7EA3157F6C5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8EA0F
+E0485A485AA248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC00E13
+CF3A07F03C0FFE3A01FFF807FC3A003FC001F0292A7DA82D>I<EA01FC12FFA312071203
+1201B1EC03FC91381FFF8091387C07E09039FDE001F09039FFC000FC4A137E91C77E4915
+8049141F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F17C06D1580EE3F00
+6D5C6E13FE9039F3C001F89039F1E003F09039E0780FC09026C03FFFC7FCC7EA07F82D40
+7EBE33>I<49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A
+5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F140316
+806C6C13076C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC
+222A7DA828>I<ED01FC15FFA3150715031501B114FF010713E190381F80F990387E003D
+49131FD803F81307485A49130348481301121F123F5B127FA290C7FCA25AAA7E7FA2123F
+A26C7E000F14037F000714076C6C497E6C6C497ED8007C017913F890383F01F190380FFF
+C1903A01FE01FC002D407DBE33>I<EB01FE90380FFFC090383F03F09038FC01F848486C
+7E4848137E48487F000F158049131F001F15C04848130FA2127F16E090C7FCA25AA290B6
+FCA290C9FCA67EA27F123F16E06C7E1501000F15C06C6C13036DEB07806C6C1400C66C13
+1E017E5B90381F80F8903807FFE0010090C7FC232A7EA828>I<EC1FC0EC7FF8903801F8
+3C903807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C1500AEB6FCA3C648
+C7FCB3AE487E007F13FFA320407EBF1C>I<167C903903F801FF903A1FFF078F8090397E
+0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F14
+7E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC12
+0EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE00
+3E140048157E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0
+D800FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FFA3120712031201B1
+EC01FE913807FFC091381E07E091387803F09138E001F8D9FDC07F148001FF6D7E91C7FC
+A25BA25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5A
+A2EA01E0C8FCACEA01FC127FA3120712031201B3AC487EB512F0A3143E7DBD1A>I<1478
+EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F
+38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C
+>I<EA01FC12FFA3120712031201B292B51280A392383FFC0016E0168093C7FC153C5D5D
+4A5AEC07C04A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C
+7E1401816E7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A32B3F7EBE30>I<EA
+01FC12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701F801FE14FF00FF
+902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603
+F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CEC
+FF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E0
+91387803F000079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A648
+6C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F813
+1F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA4
+4815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6C
+EB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC
+00FF90381FFF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F49EC3F
+805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13
+FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A3
+2D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E
+4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E
+15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD
+4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C10003
+1381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<9038
+3FC0603901FFF8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E
+7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB
+001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3
+E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207
+001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F
+8700EB07FEEB01F81B397EB723>I<D801FC14FE00FF147FA30007140300031401000114
+00B3A51501A31503120015076DEB06FF017E010E13806D4913FC90381FC078903807FFE0
+0100903880FE002E297DA733>I<B539E00FFFE0A32707FE000313006C48EB00FC5E0001
+5D7F00005DA26D13016D5CA26D6C485AA2ECC007011F91C7FCA290380FE00EA2ECF01E01
+07131CA26D6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A36E5AA26EC8FCA3140E
+2B287EA630>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C486D48EB3F806C481700
+6D010F141E00016F131C15076D163C00004A6C1338A2017F5E4B7E151DD93F805DED3DFC
+1538D91FC04A5AED78FE9238707E03D90FE0017F5BEDE03F02F0140701070387C7FC9138
+F1C01F02F9148F010315CE9138FB800F02FF14DE6D15FCED00076D5DA24A1303027E5CA2
+027C1301023C5C023813003D287EA642>I<B539F01FFFE0A30003D9C00F1300C6903880
+07F8D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF01E6D6C5A01035B6D6C5A
+6E5AEB00FF6E5A6E5A81141F814A7E81147BECF1FC903801E1FEECC0FF01037F49486C7E
+D90F007F011E6D7E013E130F496D7E01FC80486C80000F4A7EB539803FFFF8A32D277FA6
+30>I<B539E00FFFE0A32707FE000313006C48EB01FC6F5A00015D7F00005DA2017F495A
+A2EC8003013F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF83C01031338A26D6C5A
+A2ECFEF001005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C143C1438A21478001813
+70127EB45BA2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA07E02B3A7EA630>I<
+001FB61280A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A14
+7F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B484813
+071207491400485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>I<BE12
+C0A25A0280985B>124 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ft cmtt12 20.736 5
/Ft 5 115 df<923807FFC0033F13FC4AB67E020715E0021F15F8027F8191B8FC010383
@@ -1844,29 +1909,32 @@ EF3FF8261FFFFC0103B5FC4801FF011F14E048037F14F8B60081B612FE038381038F16C0
A27EA27E000713F36C13E3C61383EB00031407A215E0A3140FA215C0141FA2EC3F80A214
7F15005C5C1301495A5C1307495A495A133F495A495A4890C7FC485A485A485A5B6C5AEA
01801C3A72F736>39 D<137F3801FFC0000713F0487F487F487F487FA2B61280A96C1400
-A26C5B6C5B6C5B6C5B000113C06C6CC7FC1919729836>46 D<92380FFFE04AB67E020F15
-F0027F15FE49B87E4917E0010F17F8013F8349D9C01F14FF9027FFFC0001814801E06D6C
-80480180021F804890C86C8048486F8048486F8001FF6F804801C06E8002F081486D1880
-6E816E18C0B5821BE06E81A37214F0A56C5BA36C5B6C5B6C5B000313C0C690C9FC90CA15
-E060A34E14C0A21B80601B0060626295B55A5F624D5C624D5C4D91C7FC614D5B4D13F04D
-5B6194B55A4C49C8FC4C5B4C5B4C13E04C5B604C90C9FCEE7FFC4C5A4B5B4B5B4B0180EC
-0FF04B90C8FC4B5A4B5A4B48ED1FE0EDFFE04A5B4A5B4A90C9FC4A48163F4A5ADA3FF017
-C05D4A48167F4A5A4990CA12FFD903FC160749BAFC5B4919805B5B90BBFC5A5A5A5A481A
-005A5ABCFCA462A44C7176F061>50 D<EA03FCA2487E7F14C0ECFFF092BA12C0A45AA31C
-801C0063A2486263636363A26398C7FC48616249CAEA0FF801F0171F494D5A4F5A49604F
-5A007F4D90C8FC60494C5A4E5A614E5A4E5A48CA127F4E5A4D5B96C9FCCA485A4D5A170F
-4D5A60173F4D5A6017FF4C5BA25E4C90CAFCA24C5A161FA24C5AA2167FA24C5AA25DA24B
-5BA25DA25DA25F5DA25DA35DA392B5FCA25FA25CA45CA75CAD6E5CA26E91CBFCA26E5BED
-3FF8ED0FE0527775F461>55 D<96267FFFE01670063FB6ED01F80503B700F01403053F04
-FC14074CB96C130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F03
-C09039003FFF814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA12
-1F4A02F8834A02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A85494A
-85495C8A4991CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E07
-5DA2795A489BC9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8000302F8C7FCA3
-6C80A36C80A27E817E817E817F6D80827F6D806D806D80826D6E606D806E80021F6E5F6E
-02F05F6E806E02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6FDAFFE0021F13
-8703039226FF8003B51201030093B6EAFC00043F4E133F040706E0131F04014E1307DC00
-3F4CC71201050304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75F798>71
+A26C5B6C5B6C5B6C5B000113C06C6CC7FC1919729836>46 D<EE3FFF0307B512F8033F14
+FF4AB712E0020716F8021F16FE4AD9F8077F91B5D8C00014C04991C7003F7F4901FC020F
+7F49496E7F49496E7F49496E7F49496E7F4B81498590B5C96C7FA24849707FA24886A248
+864A824886A34886A448864A82A4481B80A8B51AC0B3AA6C1B80A86C1B006E5EA46C62A3
+6C62A36C6D4C5BA36C62A26C6D4C5BA26C6E4B5B6D616F92B5FC6D96C7FC6D6D4A5B6D6D
+4A5B6D6D4A5B6D6D4A5B6D01FF023F5B6D02C090B55A6ED9F8075C021F90B648C8FC0207
+16F8020116E06E6C1580030702F8C9FCDB003F90CAFC527379F061>48
+D<923801FFFE033FEBFFF84AB7FC020F16E0023F16F84A16FE49B97E49DA003F80010F01
+F0010714F04901800101804948C880D97FF86F7F02E081496C834801FC6F148014FF486E
+6E14C08181481AE081A96C5C1BC06C4A5C6C5C6D90C815806D5AD90FF85D90CA15006260
+6295B55A4D5C624D5C4D5C4D91C7FC4D13FC4D5B4CB512E0047F1480037FB548C8FC92B6
+12F818C018F8F0FF806F15F092C7003F13FC050713FF050114C071807213F8727F727F86
+7214801BC07214E01BF0A27214F81BFCA37214FEA31BFFEBFF80000313E0487F001F13FC
+487FA2487FA2B67EA31BFEA3601BFCA292C8FC6C1AF84A5D4A18F06C494B14E05C6C01C0
+4B14C06C90C915804E14006C6D4B5B6C01F092B55A6C01FC4A5C27007FFFC001075C6D01
+FE013F14C0010F90B85A6D4DC7FC010117F8D9003F16E0020F93C8FC020015F0030749C9
+FC507378F061>51 D<96267FFFE01670063FB6ED01F80503B700F01403053F04FC14074C
+B96C130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F03C0903900
+3FFF814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA121F4A02F8
+834A02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A85494A85495C8A
+4991CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E075DA2795A
+489BC9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8000302F8C7FCA36C80A36C
+80A27E817E817E817F6D80827F6D806D806D80826D6E606D806E80021F6E5F6E02F05F6E
+806E02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6FDAFFE0021F1387030392
+26FF8003B51201030093B6EAFC00043F4E133F040706E0131F04014E1307DC003F4CC712
+01050304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75F798>71
D<BA00E0030FB8FCA8C7003F0280CC003FEBC000E503FCC7FCB3B3B3B3A46E1C0768A283
6E1C0F68A26E1C1F7162A26E1C3F714F5A806E525A71606F6D97C8FC6F505A7118076F6D
4E5A6F6EEF3FF86F6E4D5A6F6EEE01FF6F02F84C5B6F02FE041F5B043F6D6C037F90C9FC
@@ -1923,13 +1991,13 @@ a4
%%EndSetup
%%Page: 1 1
1 0 bop 150 1318 a Fu(User's)65 b(Guide)h(to)e Ft(gperf)f
-Fu(2.7.2)p 150 1423 3600 34 v 2005 1519 a Fs(The)30 b(GNU)h(P)m(erfect)
-h(Hash)e(F)-8 b(unction)30 b(Generator)2430 1627 y(Edition)f(2.7.2,)j
-(26)f(Septem)m(b)s(er)f(2000)150 5068 y Fr(Douglas)46
-b(C.)f(Sc)l(hmidt)p 150 5141 3600 17 v eop
+Fu(3.0)p 150 1423 3600 34 v 2005 1519 a Fs(The)30 b(GNU)h(P)m(erfect)h
+(Hash)e(F)-8 b(unction)30 b(Generator)2792 1627 y(Edition)e(3.0,)k(7)f
+(Ma)m(y)g(2003)150 4958 y Fr(Douglas)46 b(C.)f(Sc)l(hmidt)150
+5091 y(Bruno)f(Haible)p 150 5141 3600 17 v eop
%%Page: 2 2
2 1 bop 150 4152 a Fs(Cop)m(yrigh)m(t)602 4149 y(c)577
-4152 y Fq(\015)30 b Fs(1989-2000)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)
+4152 y Fq(\015)30 b Fs(1989-2003)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)
-8 b(oundation,)31 b(Inc.)150 4286 y(P)m(ermission)f(is)i(gran)m(ted)h
(to)f(mak)m(e)i(and)d(distribute)f(v)m(erbatim)i(copies)g(of)g(this)f
(man)m(ual)h(pro)m(vided)f(the)150 4396 y(cop)m(yrigh)m(t)g(notice)f
@@ -2433,33 +2501,30 @@ b(.)57 b(If)35 b(this)h(is)f(what)h(y)m(ou)h(w)m(an)m(t)g(to)g(do,)h
8 9 bop 150 -116 a Fs(Con)m(tributors)29 b(to)i(GNU)g
Fn(gperf)e Fs(Utilit)m(y)2137 b(8)150 299 y Fp(Con)l(tributors)51
b(to)i(GNU)h Fm(gperf)f Fp(Utilit)l(y)225 533 y Fq(\017)60
-b Fs(The)27 b(GNU)i Fn(gperf)d Fs(p)s(erfect)i(hash)e(function)h
-(generator)i(utilit)m(y)d(w)m(as)i(originally)d(written)i(in)f(GNU)330
-643 y(C)p Fn(++)34 b Fs(b)m(y)g(Douglas)h(C.)g(Sc)m(hmidt.)52
-b(It)34 b(is)g(no)m(w)h(also)f(a)m(v)-5 b(ailable)34
-b(in)f(a)i(highly-p)s(ortable)d(\\old-st)m(yle")330 752
-y(C)37 b(v)m(ersion.)60 b(The)37 b(general)g(idea)f(for)h(the)g(p)s
-(erfect)g(hash)g(function)e(generator)k(w)m(as)e(inspired)d(b)m(y)330
-862 y(Keith)42 b(Bostic's)h(algorithm)f(written)f(in)h(C,)g(and)g
-(distributed)e(to)j(net.sources)g(around)f(1984.)330
-971 y(The)37 b(curren)m(t)g(program)g(is)f(a)i(hea)m(vily)e(mo)s
-(di\014ed,)h(enhanced,)i(and)e(extended)g(implemen)m(tation)330
-1081 y(of)h(Keith's)f(basic)h(idea,)h(created)g(at)g(the)f(Univ)m
-(ersit)m(y)g(of)g(California,)f(Irvine.)63 b(Bugs,)40
-b(patc)m(hes,)330 1191 y(and)32 b(suggestions)h(should)e(b)s(e)i(rep)s
-(orted)f(to)i(b)s(oth)e Fn(<bug-gnu-utils@gnu.org>)27
-b Fs(and)32 b Fn(<gperf-)330 1300 y(bugs@lists.sourceforge.n)o(et>)p
-Fs(.)225 1435 y Fq(\017)60 b Fs(Sp)s(ecial)31 b(thanks)i(is)f(extended)
-h(to)h(Mic)m(hael)f(Tiemann)f(and)h(Doug)h(Lea,)g(for)f(pro)m(viding)e
-(a)j(useful)330 1544 y(compiler,)29 b(and)h(for)g(giving)f(me)i(a)g
-(forum)e(to)i(exhibit)e(m)m(y)h(creation.)330 1679 y(In)22
-b(addition,)g(Adam)h(de)f(Bo)s(or)h(and)f(Nels)h(Olson)e(pro)m(vided)g
-(man)m(y)i(tips)e(and)h(insigh)m(ts)f(that)i(greatly)330
-1788 y(help)s(ed)28 b(impro)m(v)m(e)j(the)f(qualit)m(y)g(and)g
-(functionalit)m(y)e(of)j Fn(gperf)p Fs(.)225 1923 y Fq(\017)60
-b Fs(A)27 b(testsuite)h(w)m(as)f(added)g(b)m(y)g(Bruno)g(Haible.)38
-b(He)28 b(also)f(rewrote)h(the)f(output)g(routines)f(for)h(b)s(etter)
-330 2032 y(reliabilit)m(y)-8 b(.)p eop
+b Fs(The)45 b(GNU)h Fn(gperf)d Fs(p)s(erfect)j(hash)e(function)g
+(generator)j(utilit)m(y)c(w)m(as)j(written)e(in)g(GNU)i(C)p
+Fn(++)330 643 y Fs(b)m(y)e(Douglas)h(C.)g(Sc)m(hmidt.)82
+b(The)44 b(general)h(idea)f(for)g(the)h(p)s(erfect)g(hash)e(function)h
+(generator)330 752 y(w)m(as)34 b(inspired)c(b)m(y)j(Keith)f(Bostic's)j
+(algorithm)d(written)g(in)g(C,)h(and)g(distributed)d(to)k(net.sources)
+330 862 y(around)42 b(1984.)79 b(The)42 b(curren)m(t)g(program)h(is)f
+(a)h(hea)m(vily)f(mo)s(di\014ed,)h(enhanced,)j(and)c(extended)330
+971 y(implemen)m(tation)36 b(of)h(Keith's)f(basic)h(idea,)h(created)g
+(at)g(the)f(Univ)m(ersit)m(y)f(of)i(California,)e(Irvine.)330
+1081 y(Bugs,)31 b(patc)m(hes,)g(and)f(suggestions)g(should)f(b)s(e)g
+(rep)s(orted)h(to)h Fn(<bug-gnu-gperf@gnu.org>)p Fs(.)225
+1215 y Fq(\017)60 b Fs(Sp)s(ecial)31 b(thanks)i(is)f(extended)h(to)h
+(Mic)m(hael)f(Tiemann)f(and)h(Doug)h(Lea,)g(for)f(pro)m(viding)e(a)j
+(useful)330 1325 y(compiler,)29 b(and)h(for)g(giving)f(me)i(a)g(forum)e
+(to)i(exhibit)e(m)m(y)h(creation.)330 1460 y(In)22 b(addition,)g(Adam)h
+(de)f(Bo)s(or)h(and)f(Nels)h(Olson)e(pro)m(vided)g(man)m(y)i(tips)e
+(and)h(insigh)m(ts)f(that)i(greatly)330 1569 y(help)s(ed)28
+b(impro)m(v)m(e)j(the)f(qualit)m(y)g(and)g(functionalit)m(y)e(of)j
+Fn(gperf)p Fs(.)225 1704 y Fq(\017)60 b Fs(Bruno)26 b(Haible)g
+(enhanced)h(and)f(optimized)g(the)h(searc)m(h)h(algorithm.)39
+b(He)27 b(also)g(rewrote)h(the)f(input)330 1813 y(routines)i(and)h(the)
+h(output)f(routines)f(for)h(b)s(etter)g(reliabilit)m(y)-8
+b(,)28 b(and)i(added)g(a)h(testsuite.)p eop
%%Page: 9 11
9 10 bop 150 -116 a Fs(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2591
b(9)150 299 y Fp(1)80 b(In)l(tro)t(duction)275 533 y
@@ -2468,10 +2533,10 @@ Fn(gperf)31 b Fs(is)i(a)g(p)s(erfect)h(hash)e(function)g(generator)j
Fo(n)f Fs(elemen)m(t)150 643 y(user-sp)s(eci\014ed)j(k)m(eyw)m(ord)j
(set)g Fo(W)49 b Fs(in)m(to)38 b(a)f(p)s(erfect)h(hash)e(function)g
Fo(F)p Fs(.)i Fo(F)44 b Fs(uniquely)35 b(maps)i(k)m(eyw)m(ords)150
-752 y(in)k Fo(W)54 b Fs(on)m(to)43 b(the)f(range)h(0..)p
-Fo(k)p Fs(,)j(where)c Fo(k)47 b Fn(>)p Fs(=)42 b Fo(n)p
-Fs(.)75 b(If)42 b Fo(k)47 b Fs(=)42 b Fo(n)g Fs(then)f
-Fo(F)49 b Fs(is)41 b(a)i Fl(minimal)53 b Fs(p)s(erfect)42
+752 y(in)d Fo(W)47 b Fs(on)m(to)36 b(the)f(range)g(0..)p
+Fo(k)p Fs(,)j(where)c Fo(k)40 b Fn(>)p Fs(=)35 b Fo(n-1)p
+Fs(.)54 b(If)35 b Fo(k)40 b Fs(=)35 b Fo(n-1)42 b Fs(then)35
+b Fo(F)42 b Fs(is)34 b(a)h Fl(minimal)46 b Fs(p)s(erfect)35
b(hash)150 862 y(function.)67 b Fn(gperf)39 b Fs(generates)i(a)f(0..)p
Fo(k)46 b Fs(elemen)m(t)40 b(static)g(lo)s(okup)f(table)g(and)g(a)i
(pair)d(of)i(C)f(functions.)150 971 y(These)34 b(functions)f(determine)
@@ -2482,15 +2547,17 @@ Fs(o)s(ccurs)c(in)f Fo(W)p Fs(,)i(using)d(at)k(most)150
(k)m(eyw)m(ord)g(recognizer)h(for)e(lexical)g(analyzers)g(in)g(sev)m
(eral)150 1325 y(pro)s(duction)29 b(and)h(researc)m(h)h(compilers)e
(and)i(language)g(pro)s(cessing)e(to)s(ols,)i(including)c(GNU)32
-b(C,)e(GNU)150 1435 y(C)p Fn(++)p Fs(,)49 b(GNU)d(P)m(ascal,)k(GNU)c
-(Mo)s(dula)e(3,)50 b(and)45 b(GNU)h(inden)m(t.)85 b(Complete)45
-b(C)p Fn(++)g Fs(source)g(co)s(de)h(for)150 1544 y Fn(gperf)25
-b Fs(is)g(a)m(v)-5 b(ailable)26 b(via)g(anon)m(ymous)g(ftp)g(from)g
-Fn(ftp://ftp.gnu.org/pub/gn)o(u/gp)o(erf/)o Fs(.)34 b(A)26
-b(pap)s(er)150 1654 y(describing)33 b Fn(gperf)p Fs('s)i(design)f(and)h
-(implemen)m(tation)f(in)h(greater)i(detail)d(is)h(a)m(v)-5
-b(ailable)35 b(in)f(the)i(Second)150 1763 y(USENIX)30
-b(C)p Fn(++)f Fs(Conference)i(pro)s(ceedings.)p eop
+b(C,)e(GNU)150 1435 y(C)p Fn(++)p Fs(,)24 b(GNU)f(Ja)m(v)-5
+b(a,)26 b(GNU)d(P)m(ascal,)i(GNU)f(Mo)s(dula)e(3,)j(and)d(GNU)h(inden)m
+(t.)37 b(Complete)23 b(C)p Fn(++)f Fs(source)h(co)s(de)150
+1544 y(for)42 b Fn(gperf)f Fs(is)g(a)m(v)-5 b(ailable)41
+b(from)h Fn(http://ftp.gnu.org/pub/g)o(nu/g)o(perf)o(/)p
+Fs(.)70 b(A)42 b(pap)s(er)f(describing)150 1654 y Fn(gperf)p
+Fs('s)d(design)h(and)g(implemen)m(tation)g(in)f(greater)j(detail)e(is)g
+(a)m(v)-5 b(ailable)39 b(in)g(the)h(Second)f(USENIX)150
+1763 y(C)p Fn(++)29 b Fs(Conference)g(pro)s(ceedings)g(or)h(from)f
+Fn(http://www.cs.wustl.edu)o(/~sc)o(hmid)o(t/r)o(esum)o(e.ht)o(ml)p
+Fs(.)p eop
%%Page: 10 12
10 11 bop 150 -116 a Fs(Chapter)30 b(2:)41 b(Static)31
b(searc)m(h)g(structures)e(and)h(GNU)h Fn(gperf)1425
@@ -2501,31 +2568,31 @@ Fs(is)24 b(an)g(Abstract)h(Data)i(T)m(yp)s(e)c(with)h(certain)g
Fl(initialize)p Fs(,)g Fl(insert)p Fs(,)f(and)f Fl(r)-5
b(etrieve)p Fs(.)42 b(Conceptually)-8 b(,)30 b(all)g(insertions)f(o)s
(ccur)h(b)s(efore)h(an)m(y)g(retriev)-5 b(als.)150 752
-y(In)37 b(practice,)k Fn(gperf)c Fs(generates)j(a)e Fn(static)f
-Fs(arra)m(y)h(con)m(taining)g(searc)m(h)h(set)g(k)m(eyw)m(ords)f(and)g
-(an)m(y)g(as-)150 862 y(so)s(ciated)33 b(attributes)g(sp)s(eci\014ed)e
-(b)m(y)i(the)h(user.)48 b(Th)m(us,)33 b(there)g(is)f(essen)m(tially)h
-(no)g(execution-time)g(cost)150 971 y(for)k(the)g(insertions.)58
-b(It)37 b(is)f(a)h(useful)f(data)h(structure)g(for)f(represen)m(ting)g
-Fl(static)k(se)-5 b(ar)g(ch)40 b(sets)p Fs(.)61 b(Static)150
-1081 y(searc)m(h)33 b(sets)g(o)s(ccur)f(frequen)m(tly)g(in)f(soft)m(w)m
-(are)j(system)f(applications.)45 b(T)m(ypical)32 b(static)h(searc)m(h)g
-(sets)g(in-)150 1191 y(clude)27 b(compiler)g(reserv)m(ed)i(w)m(ords,)f
-(assem)m(bler)g(instruction)e(op)s(co)s(des,)j(and)f(built-in)d(shell)i
-(in)m(terpreter)150 1300 y(commands.)39 b(Searc)m(h)28
-b(set)g(mem)m(b)s(ers,)f(called)g Fo(k)m(eyw)m(ords)p
-Fs(,)h(are)g(inserted)e(in)m(to)h(the)h(structure)f(only)f(once,)150
-1410 y(usually)i(during)g(program)i(initialization,)e(and)i(are)g(not)h
-(generally)f(mo)s(di\014ed)e(at)j(run-time.)275 1544
-y(Numerous)c(static)h(searc)m(h)h(structure)e(implemen)m(tations)f
-(exist,)j(e.g.,)g(arra)m(ys,)g(link)m(ed)e(lists,)g(binary)150
-1654 y(searc)m(h)45 b(trees,)j(digital)42 b(searc)m(h)j(tries,)i(and)c
-(hash)g(tables.)82 b(Di\013eren)m(t)44 b(approac)m(hes)h(o\013er)f
-(trade-o\013s)150 1763 y(b)s(et)m(w)m(een)e(space)h(utilization)c(and)j
-(searc)m(h)g(time)f(e\016ciency)-8 b(.)76 b(F)-8 b(or)42
-b(example,)j(an)c Fo(n)h Fs(elemen)m(t)g(sorted)150 1873
-y(arra)m(y)e(is)f(space)i(e\016cien)m(t,)h(though)e(the)g(a)m(v)m
-(erage-case)k(time)39 b(complexit)m(y)h(for)g(retriev)-5
+y(In)20 b(practice,)k Fn(gperf)19 b Fs(generates)k(a)e
+Fl(static)27 b Fs(arra)m(y)22 b(con)m(taining)e(searc)m(h)i(set)f(k)m
+(eyw)m(ords)h(and)e(an)m(y)h(asso)s(ciated)150 862 y(attributes)36
+b(sp)s(eci\014ed)f(b)m(y)i(the)f(user.)59 b(Th)m(us,)37
+b(there)g(is)f(essen)m(tially)f(no)i(execution-time)g(cost)g(for)g(the)
+150 971 y(insertions.)h(It)27 b(is)f(a)h(useful)f(data)h(structure)g
+(for)g(represen)m(ting)f Fl(static)k(se)-5 b(ar)g(ch)32
+b(sets)p Fs(.)40 b(Static)27 b(searc)m(h)h(sets)150 1081
+y(o)s(ccur)c(frequen)m(tly)g(in)f(soft)m(w)m(are)j(system)e
+(applications.)37 b(T)m(ypical)23 b(static)i(searc)m(h)g(sets)g
+(include)d(compiler)150 1191 y(reserv)m(ed)42 b(w)m(ords,)j(assem)m
+(bler)d(instruction)e(op)s(co)s(des,)45 b(and)c(built-in)e(shell)i(in)m
+(terpreter)g(commands.)150 1300 y(Searc)m(h)h(set)g(mem)m(b)s(ers,)h
+(called)e Fo(k)m(eyw)m(ords)p Fs(,)k(are)c(inserted)g(in)m(to)g(the)h
+(structure)f(only)f(once,)45 b(usually)150 1410 y(during)28
+b(program)i(initialization,)e(and)i(are)g(not)h(generally)f(mo)s
+(di\014ed)e(at)j(run-time.)275 1544 y(Numerous)c(static)h(searc)m(h)h
+(structure)e(implemen)m(tations)f(exist,)j(e.g.,)g(arra)m(ys,)g(link)m
+(ed)e(lists,)g(binary)150 1654 y(searc)m(h)45 b(trees,)j(digital)42
+b(searc)m(h)j(tries,)i(and)c(hash)g(tables.)82 b(Di\013eren)m(t)44
+b(approac)m(hes)h(o\013er)f(trade-o\013s)150 1763 y(b)s(et)m(w)m(een)e
+(space)h(utilization)c(and)j(searc)m(h)g(time)f(e\016ciency)-8
+b(.)76 b(F)-8 b(or)42 b(example,)j(an)c Fo(n)h Fs(elemen)m(t)g(sorted)
+150 1873 y(arra)m(y)e(is)f(space)i(e\016cien)m(t,)h(though)e(the)g(a)m
+(v)m(erage-case)k(time)39 b(complexit)m(y)h(for)g(retriev)-5
b(al)39 b(op)s(erations)150 1983 y(using)30 b(binary)f(searc)m(h)j(is)e
(prop)s(ortional)f(to)i(log)h Fo(n)p Fs(.)42 b(Con)m(v)m(ersely)-8
b(,)32 b(hash)e(table)h(implemen)m(tations)f(often)150
@@ -2574,699 +2641,1023 @@ Fs(,)25 b(if)c(it)g(subsequen)m(tly)150 4214 y(receiv)m(es)j(hea)m(vy)g
(drudgery)f(asso)s(ciated)i(with)d(constructing)150 4324
y(time-)37 b(and)g(space-e\016cien)m(t)i(searc)m(h)e(structures)g(b)m
(y)g(hand.)61 b(It)37 b(has)g(pro)m(v)m(en)h(a)f(useful)f(and)g
-(practical)150 4433 y(to)s(ol)42 b(for)g(serious)f(programming)g(pro)5
-b(jects.)76 b(Output)41 b(from)h Fn(gperf)e Fs(is)h(curren)m(tly)g
-(used)h(in)f(sev)m(eral)150 4543 y(pro)s(duction)32 b(and)h(researc)m
-(h)h(compilers,)f(including)d(GNU)k(C,)g(GNU)g(C)p Fn(++)p
-Fs(,)g(GNU)g(P)m(ascal,)h(and)e(GNU)150 4653 y(Mo)s(dula)27
-b(3.)40 b(The)28 b(latter)h(t)m(w)m(o)g(compilers)e(are)h(not)h(y)m(et)
-g(part)f(of)g(the)h(o\016cial)e(GNU)i(distribution.)36
-b(Eac)m(h)150 4762 y(compiler)h(utilizes)f Fn(gperf)h
-Fs(to)i(automatically)g(generate)h(static)f(searc)m(h)g(structures)e
-(that)i(e\016cien)m(tly)150 4872 y(iden)m(tify)29 b(their)g(resp)s
-(ectiv)m(e)i(reserv)m(ed)f(k)m(eyw)m(ords.)p eop
+(practical)150 4433 y(to)s(ol)28 b(for)g(serious)f(programming)g(pro)5
+b(jects.)40 b(Output)27 b(from)h Fn(gperf)e Fs(is)h(curren)m(tly)h
+(used)f(in)g(sev)m(eral)h(pro-)150 4543 y(duction)d(and)f(researc)m(h)j
+(compilers,)e(including)d(GNU)k(C,)g(GNU)g(C)p Fn(++)p
+Fs(,)g(GNU)g(Ja)m(v)-5 b(a,)28 b(GNU)e(P)m(ascal,)i(and)150
+4653 y(GNU)38 b(Mo)s(dula)e(3.)63 b(The)36 b(latter)i(t)m(w)m(o)h
+(compilers)d(are)h(not)h(y)m(et)h(part)e(of)g(the)h(o\016cial)f(GNU)h
+(distribu-)150 4762 y(tion.)50 b(Eac)m(h)34 b(compiler)e(utilizes)g
+Fn(gperf)g Fs(to)i(automatically)f(generate)i(static)f(searc)m(h)g
+(structures)f(that)150 4872 y(e\016cien)m(tly)d(iden)m(tify)f(their)g
+(resp)s(ectiv)m(e)i(reserv)m(ed)f(k)m(eyw)m(ords.)p eop
%%Page: 11 13
11 12 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(11)150
299 y Fp(3)80 b(High-Lev)l(el)54 b(Description)f(of)h(GNU)g
-Fm(gperf)275 604 y Fs(The)42 b(p)s(erfect)g(hash)g(function)f
-(generator)j Fn(gperf)d Fs(reads)h(a)h(set)g(of)f(\\k)m(eyw)m(ords")i
-(from)e(a)h Fo(k)m(ey\014le)150 714 y Fs(\(or)34 b(from)g(the)g
-(standard)f(input)f(b)m(y)i(default\).)51 b(It)34 b(attempts)h(to)f
-(deriv)m(e)g(a)g(p)s(erfect)g(hashing)e(function)150
-824 y(that)37 b(recognizes)h(a)f(mem)m(b)s(er)f(of)h(the)g
-Fo(static)g(k)m(eyw)m(ord)g(set)j Fs(with)35 b(at)j(most)f(a)g(single)e
-(prob)s(e)h(in)m(to)h(the)150 933 y(lo)s(okup)25 b(table.)40
-b(If)26 b Fn(gperf)f Fs(succeeds)i(in)f(generating)h(suc)m(h)f(a)h
-(function)e(it)i(pro)s(duces)e(a)i(pair)f(of)g(C)h(source)150
-1043 y(co)s(de)39 b(routines)f(that)i(p)s(erform)d(hashing)h(and)g
-(table)h(lo)s(okup)e(recognition.)67 b(All)37 b(generated)j(C)f(co)s
-(de)150 1152 y(is)e(directed)g(to)h(the)g(standard)f(output.)62
-b(Command-line)36 b(options)h(describ)s(ed)e(b)s(elo)m(w)i(allo)m(w)g
-(y)m(ou)h(to)150 1262 y(mo)s(dify)29 b(the)h(input)f(and)g(output)h
-(format)h(to)g Fn(gperf)p Fs(.)275 1420 y(By)23 b(default,)h
-Fn(gperf)e Fs(attempts)i(to)g(pro)s(duce)e(time-e\016cien)m(t)i(co)s
-(de,)h(with)d(less)h(emphasis)e(on)i(e\016cien)m(t)150
-1530 y(space)31 b(utilization.)39 b(Ho)m(w)m(ev)m(er,)33
-b(sev)m(eral)d(options)g(exist)g(that)h(p)s(ermit)e(trading-o\013)h
-(execution)h(time)f(for)150 1639 y(storage)j(space)f(and)g(vice)f(v)m
-(ersa.)46 b(In)31 b(particular,)f(expanding)g(the)i(generated)h(table)f
-(size)f(pro)s(duces)g(a)150 1749 y(sparse)26 b(searc)m(h)g(structure,)h
-(generally)e(yielding)e(faster)k(searc)m(hes.)40 b(Con)m(v)m(ersely)-8
-b(,)27 b(y)m(ou)g(can)f(direct)f Fn(gperf)150 1859 y
+Fm(gperf)275 539 y Fs(The)29 b(p)s(erfect)h(hash)g(function)f
+(generator)i Fn(gperf)e Fs(reads)h(a)h(set)g(of)f(\\k)m(eyw)m(ords")i
+(from)d(an)i(input)d(\014le)150 648 y(\(or)34 b(from)g(the)g(standard)f
+(input)f(b)m(y)i(default\).)51 b(It)34 b(attempts)h(to)f(deriv)m(e)g(a)
+g(p)s(erfect)g(hashing)e(function)150 758 y(that)37 b(recognizes)h(a)f
+(mem)m(b)s(er)f(of)h(the)g Fo(static)g(k)m(eyw)m(ord)g(set)j
+Fs(with)35 b(at)j(most)f(a)g(single)e(prob)s(e)h(in)m(to)h(the)150
+867 y(lo)s(okup)25 b(table.)40 b(If)26 b Fn(gperf)f Fs(succeeds)i(in)f
+(generating)h(suc)m(h)f(a)h(function)e(it)i(pro)s(duces)e(a)i(pair)f
+(of)g(C)h(source)150 977 y(co)s(de)39 b(routines)f(that)i(p)s(erform)d
+(hashing)h(and)g(table)h(lo)s(okup)e(recognition.)67
+b(All)37 b(generated)j(C)f(co)s(de)150 1086 y(is)e(directed)g(to)h(the)
+g(standard)f(output.)62 b(Command-line)36 b(options)h(describ)s(ed)e(b)
+s(elo)m(w)i(allo)m(w)g(y)m(ou)h(to)150 1196 y(mo)s(dify)29
+b(the)h(input)f(and)g(output)h(format)h(to)g Fn(gperf)p
+Fs(.)275 1332 y(By)23 b(default,)h Fn(gperf)e Fs(attempts)i(to)g(pro)s
+(duce)e(time-e\016cien)m(t)i(co)s(de,)h(with)d(less)h(emphasis)e(on)i
+(e\016cien)m(t)150 1442 y(space)31 b(utilization.)39
+b(Ho)m(w)m(ev)m(er,)33 b(sev)m(eral)d(options)g(exist)g(that)h(p)s
+(ermit)e(trading-o\013)h(execution)h(time)f(for)150 1552
+y(storage)j(space)f(and)g(vice)f(v)m(ersa.)46 b(In)31
+b(particular,)f(expanding)g(the)i(generated)h(table)f(size)f(pro)s
+(duces)g(a)150 1661 y(sparse)26 b(searc)m(h)g(structure,)h(generally)e
+(yielding)e(faster)k(searc)m(hes.)40 b(Con)m(v)m(ersely)-8
+b(,)27 b(y)m(ou)g(can)f(direct)f Fn(gperf)150 1771 y
Fs(to)c(utilize)e(a)i(C)f Fn(switch)f Fs(statemen)m(t)k(sc)m(heme)e
(that)g(minimizes)d(data)j(space)g(storage)h(size.)38
-b(F)-8 b(urthermore,)150 1968 y(using)39 b(a)h(C)g Fn(switch)e
+b(F)-8 b(urthermore,)150 1880 y(using)39 b(a)h(C)g Fn(switch)e
Fs(ma)m(y)i(actually)g(sp)s(eed)f(up)g(the)h(k)m(eyw)m(ord)h(retriev)-5
-b(al)39 b(time)h(somewhat.)70 b(Actual)150 2078 y(results)29
+b(al)39 b(time)h(somewhat.)70 b(Actual)150 1990 y(results)29
b(dep)s(end)g(on)h(y)m(our)g(C)g(compiler,)g(of)g(course.)275
-2236 y(In)h(general,)i Fn(gperf)e Fs(assigns)h(v)-5 b(alues)32
-b(to)h(the)g(c)m(haracters)g(it)f(is)g(using)f(for)h(hashing)f(un)m
-(til)g(some)h(set)150 2346 y(of)42 b(v)-5 b(alues)42
+2126 y(In)44 b(general,)49 b Fn(gperf)44 b Fs(assigns)g(v)-5
+b(alues)45 b(to)h(the)f(b)m(ytes)h(it)f(is)f(using)g(for)h(hashing)e
+(un)m(til)h(some)h(set)150 2236 y(of)d(v)-5 b(alues)42
b(giv)m(es)g(eac)m(h)i(k)m(eyw)m(ord)e(a)h(unique)d(v)-5
b(alue.)76 b(A)42 b(helpful)d(heuristic)i(is)g(that)i(the)f(larger)g
-(the)150 2455 y(hash)36 b(v)-5 b(alue)36 b(range,)j(the)e(easier)g(it)f
+(the)150 2345 y(hash)36 b(v)-5 b(alue)36 b(range,)j(the)e(easier)g(it)f
(is)g(for)g Fn(gperf)f Fs(to)j(\014nd)d(and)h(generate)i(a)f(p)s
-(erfect)g(hash)f(function.)150 2565 y(Exp)s(erimen)m(tation)29
+(erfect)g(hash)f(function.)150 2455 y(Exp)s(erimen)m(tation)29
b(is)g(the)i(k)m(ey)g(to)g(getting)g(the)g(most)g(from)e
-Fn(gperf)p Fs(.)150 2882 y Fr(3.1)68 b(Input)44 b(F)-11
-b(ormat)46 b(to)f Fk(gperf)275 3098 y Fs(Y)-8 b(ou)36
-b(can)h(con)m(trol)f(the)h(input)d(k)m(ey\014le)i(format)h(b)m(y)f(v)-5
-b(arying)35 b(certain)i(command-line)d(argumen)m(ts,)150
-3208 y(in)c(particular)g(the)i(`)p Fn(-t)p Fs(')f(option.)44
-b(The)31 b(input's)f(app)s(earance)i(is)f(similar)e(to)j(GNU)g
-(utilities)d Fn(flex)i Fs(and)150 3317 y Fn(bison)e Fs(\(or)i(UNIX)f
-(utilities)e Fn(lex)i Fs(and)f Fn(yacc)p Fs(\).)40 b(Here's)31
-b(an)g(outline)e(of)h(the)h(general)f(format:)390 3470
-y Fn(declarations)390 3573 y(\045\045)390 3677 y(keywords)390
-3781 y(\045\045)390 3885 y(functions)275 4036 y Fl(Unlike)36
-b Fn(flex)29 b Fs(or)h Fn(bison)p Fs(,)f(all)g(sections)h(of)g
-Fn(gperf)p Fs('s)f(input)f(are)i(optional.)40 b(The)29
-b(follo)m(wing)g(sections)150 4146 y(describ)s(e)g(the)h(input)f
-(format)h(for)h(eac)m(h)g(section.)150 4417 y Fj(3.1.1)63
-b Fi(struct)41 b Fj(Declarations)g(and)g(C)g(Co)s(de)g(Inclusion)275
-4634 y Fs(The)20 b(k)m(eyw)m(ord)h(input)e(\014le)h(optionally)g(con)m
-(tains)h(a)g(section)g(for)g(including)c(arbitrary)j(C)g(declarations)
-150 4743 y(and)k(de\014nitions,)g(as)h(w)m(ell)e(as)i(pro)m(visions)e
-(for)i(pro)m(viding)d(a)j(user-supplied)d Fn(struct)p
-Fs(.)37 b(If)24 b(the)h(`)p Fn(-t)p Fs(')f(option)150
-4853 y Fl(is)39 b Fs(enabled,)31 b(y)m(ou)g Fl(must)41
-b Fs(pro)m(vide)30 b(a)i(C)f Fn(struct)e Fs(as)j(the)f(last)h(comp)s
-(onen)m(t)f(in)f(the)i(declaration)f(section)150 4963
-y(from)23 b(the)h(k)m(ey\014le)f(\014le.)37 b(The)23
-b(\014rst)g(\014eld)f(in)g(this)g(struct)i(m)m(ust)f(b)s(e)g(a)h
-Fn(char)29 b(*)23 b Fs(or)h Fn(const)k(char)i(*)23 b
-Fs(iden)m(ti\014er)150 5072 y(called)d(`)p Fn(name)p
-Fs(',)i(although)e(it)g(is)f(p)s(ossible)f(to)j(mo)s(dify)e(this)g
-(\014eld's)g(name)i(with)e(the)i(`)p Fn(-K)p Fs(')f(option)g(describ)s
-(ed)150 5182 y(b)s(elo)m(w.)275 5340 y(Here)30 b(is)g(a)h(simple)d
-(example,)i(using)f(mon)m(ths)h(of)h(the)f(y)m(ear)i(and)d(their)h
-(attributes)g(as)g(input:)p eop
+Fn(gperf)p Fs(.)150 2717 y Fr(3.1)68 b(Input)44 b(F)-11
+b(ormat)46 b(to)f Fk(gperf)275 2911 y Fs(Y)-8 b(ou)38
+b(can)g(con)m(trol)h(the)f(input)e(\014le)h(format)h(b)m(y)g(v)-5
+b(arying)37 b(certain)g(command-line)g(argumen)m(ts,)j(in)150
+3021 y(particular)d(the)i(`)p Fn(-t)p Fs(')g(option.)65
+b(The)38 b(input's)f(app)s(earance)i(is)f(similar)e(to)j(GNU)h
+(utilities)c Fn(flex)i Fs(and)150 3131 y Fn(bison)29
+b Fs(\(or)i(UNIX)f(utilities)e Fn(lex)i Fs(and)f Fn(yacc)p
+Fs(\).)40 b(Here's)31 b(an)g(outline)e(of)h(the)h(general)f(format:)390
+3261 y Fn(declarations)390 3365 y(\045\045)390 3469 y(keywords)390
+3572 y(\045\045)390 3676 y(functions)275 3806 y Fl(Unlike)41
+b Fn(flex)35 b Fs(or)g Fn(bison)p Fs(,)h(the)g(declarations)e(section)i
+(and)f(the)h(functions)e(section)i(are)g(optional.)150
+3915 y(The)30 b(follo)m(wing)f(sections)h(describ)s(e)f(the)h(input)f
+(format)i(for)f(eac)m(h)h(section.)275 4051 y(It)h(is)f(p)s(ossible)f
+(to)j(omit)f(the)h(declaration)f(section)g(en)m(tirely)-8
+b(,)33 b(if)e(the)i(`)p Fn(-t)p Fs(')f(option)g(is)f(not)i(giv)m(en.)47
+b(In)150 4161 y(this)29 b(case)j(the)e(input)f(\014le)g(b)s(egins)g
+(directly)g(with)g(the)i(\014rst)e(k)m(eyw)m(ord)i(line,)e(e.g.:)390
+4292 y Fn(january)390 4395 y(february)390 4499 y(march)390
+4603 y(april)390 4707 y(...)150 4926 y Fj(3.1.1)63 b(Declarations)275
+5121 y Fs(The)33 b(k)m(eyw)m(ord)i(input)e(\014le)g(optionally)g(con)m
+(tains)i(a)g(section)f(for)g(including)d(arbitrary)j(C)g(declara-)150
+5230 y(tions)c(and)f(de\014nitions,)f Fn(gperf)h Fs(declarations)h
+(that)h(act)g(lik)m(e)f(command-line)f(options,)h(as)g(w)m(ell)g(as)g
+(for)150 5340 y(pro)m(viding)e(a)j(user-supplied)c Fn(struct)p
+Fs(.)p eop
%%Page: 12 14
12 13 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
-b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(12)390
-299 y Fn(struct)46 b(months)g({)i(char)e(*name;)g(int)h(number;)f(int)h
-(days;)f(int)h(leap_days;)e(};)390 403 y(\045\045)390
-506 y(january,)141 b(1,)47 b(31,)g(31)390 610 y(february,)93
-b(2,)47 b(28,)g(29)390 714 y(march,)237 b(3,)47 b(31,)g(31)390
-818 y(april,)237 b(4,)47 b(30,)g(30)390 922 y(may,)333
-b(5,)47 b(31,)g(31)390 1025 y(june,)285 b(6,)47 b(30,)g(30)390
-1129 y(july,)285 b(7,)47 b(31,)g(31)390 1233 y(august,)189
-b(8,)47 b(31,)g(31)390 1337 y(september,)e(9,)i(30,)g(30)390
-1440 y(october,)93 b(10,)47 b(31,)g(31)390 1544 y(november,)e(11,)i
-(30,)g(30)390 1648 y(december,)e(12,)i(31,)g(31)275 1782
+b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(12)150
+299 y Fj(3.1.1.1)63 b(User-supplied)43 b Fi(struct)275
+487 y Fs(If)24 b(the)h(`)p Fn(-t)p Fs(')f(option)g(\(or,)j(equiv)-5
+b(alen)m(tly)d(,)25 b(the)g(`)p Fn(\045struct-type)p
+Fs(')d(declaration\))i Fl(is)32 b Fs(enabled,)25 b(y)m(ou)g
+Fl(must)150 597 y Fs(pro)m(vide)36 b(a)g(C)h Fn(struct)d
+Fs(as)j(the)g(last)f(comp)s(onen)m(t)h(in)e(the)i(declaration)f
+(section)g(from)g(the)h(input)e(\014le.)150 706 y(The)26
+b(\014rst)f(\014eld)g(in)g(this)g(struct)h(m)m(ust)g(b)s(e)g(of)g(t)m
+(yp)s(e)g Fn(char)j(*)d Fs(or)g Fn(const)j(char)h(*)25
+b Fs(if)g(the)i(`)p Fn(-P)p Fs(')f(option)f(is)h(not)150
+816 y(giv)m(en,)k(or)h(of)f(t)m(yp)s(e)g Fn(int)g Fs(if)f(the)h(option)
+g(`)p Fn(-P)p Fs(')g(\(or,)h(equiv)-5 b(alen)m(tly)d(,)29
+b(the)i(`)p Fn(\045pic)p Fs(')e(declaration\))h(is)g(enabled.)150
+926 y(This)k(\014rst)g(\014eld)g(m)m(ust)i(b)s(e)e(called)h(`)p
+Fn(name)p Fs(',)h(although)f(it)g(is)g(p)s(ossible)e(to)j(mo)s(dify)d
+(its)i(name)h(with)e(the)150 1035 y(`)p Fn(-K)p Fs(')c(option)g(\(or,)h
+(equiv)-5 b(alen)m(tly)d(,)30 b(the)g(`)p Fn(\045define)f(slot-name)p
+Fs(')f(declaration\))i(describ)s(ed)f(b)s(elo)m(w.)275
+1165 y(Here)h(is)g(a)h(simple)d(example,)i(using)f(mon)m(ths)h(of)h
+(the)f(y)m(ear)i(and)d(their)h(attributes)g(as)g(input:)390
+1290 y Fn(struct)46 b(months)g({)i(char)e(*name;)g(int)h(number;)f(int)
+h(days;)f(int)h(leap_days;)e(};)390 1393 y(\045\045)390
+1497 y(january,)141 b(1,)47 b(31,)g(31)390 1601 y(february,)93
+b(2,)47 b(28,)g(29)390 1705 y(march,)237 b(3,)47 b(31,)g(31)390
+1809 y(april,)237 b(4,)47 b(30,)g(30)390 1912 y(may,)333
+b(5,)47 b(31,)g(31)390 2016 y(june,)285 b(6,)47 b(30,)g(30)390
+2120 y(july,)285 b(7,)47 b(31,)g(31)390 2224 y(august,)189
+b(8,)47 b(31,)g(31)390 2327 y(september,)e(9,)i(30,)g(30)390
+2431 y(october,)93 b(10,)47 b(31,)g(31)390 2535 y(november,)e(11,)i
+(30,)g(30)390 2639 y(december,)e(12,)i(31,)g(31)275 2762
y Fs(Separating)24 b(the)h Fn(struct)f Fs(declaration)g(from)h(the)g
(list)f(of)h(k)m(eyw)m(ords)h(and)e(other)h(\014elds)f(are)h(a)h(pair)e
-(of)150 1892 y(consecutiv)m(e)32 b(p)s(ercen)m(t)g(signs,)e(`)p
+(of)150 2871 y(consecutiv)m(e)32 b(p)s(ercen)m(t)g(signs,)e(`)p
Fn(\045\045)p Fs(',)i(app)s(earing)e(left)h(justi\014ed)e(in)h(the)i
-(\014rst)e(column,)h(as)g(in)f(the)i(UNIX)150 2002 y(utilit)m(y)d
-Fn(lex)p Fs(.)275 2143 y(Using)c(a)h(syn)m(tax)h(similar)c(to)k(GNU)f
-(utilities)e Fn(flex)h Fs(and)g Fn(bison)p Fs(,)h(it)f(is)g(p)s
-(ossible)f(to)i(directly)f(include)150 2253 y(C)k(source)h(text)g(and)f
-(commen)m(ts)h(v)m(erbatim)f(in)m(to)h(the)f(generated)i(output)e
-(\014le.)39 b(This)28 b(is)g(accomplished)150 2362 y(b)m(y)37
-b(enclosing)f(the)i(region)f(inside)d(left-justi\014ed)i(surrounding)e
-(`)p Fn(\045{)p Fs(',)39 b(`)p Fn(\045})p Fs(')e(pairs.)60
-b(Here)38 b(is)e(an)h(input)150 2472 y(fragmen)m(t)31
+(\014rst)e(column,)h(as)g(in)f(the)i(UNIX)150 2981 y(utilit)m(y)d
+Fn(lex)p Fs(.)150 3192 y Fj(3.1.1.2)63 b(Gp)s(erf)42
+b(Declarations)275 3381 y Fs(The)31 b(declaration)h(section)h(can)f
+(con)m(tain)h Fn(gperf)d Fs(declarations.)46 b(They)32
+b(in\015uence)f(the)h(w)m(a)m(y)h Fn(gperf)150 3490 y
+Fs(w)m(orks,)43 b(lik)m(e)d(command)h(line)e(options)h(do.)72
+b(In)40 b(fact,)k(ev)m(ery)e(suc)m(h)e(declaration)g(is)g(equiv)-5
+b(alen)m(t)40 b(to)i(a)150 3600 y(command)30 b(line)f(option.)40
+b(There)30 b(are)h(three)f(forms)g(of)h(declarations:)199
+3730 y(1.)61 b(Declarations)31 b(without)e(argumen)m(t,)i(lik)m(e)f(`)p
+Fn(\045compare-lengths)p Fs('.)199 3860 y(2.)61 b(Declarations)31
+b(with)e(an)h(argumen)m(t,)h(lik)m(e)f(`)p Fn(\045switch=)p
+Fo(coun)m(t)r Fs('.)199 3990 y(3.)61 b(Declarations)112
+b(of)g(names)g(of)g(en)m(tities)g(in)e(the)i(output)g(\014le,)131
+b(lik)m(e)112 b(`)p Fn(\045define)330 4100 y(lookup-function-name)25
+b Fo(name)5 b Fs('.)275 4251 y(When)35 b(a)h(declaration)f(is)g(giv)m
+(en)g(b)s(oth)g(in)g(the)g(input)f(\014le)h(and)g(as)h(a)g(command)f
+(line)f(option,)j(the)150 4360 y(command-line)29 b(option's)h(v)-5
+b(alue)30 b(prev)-5 b(ails.)275 4490 y(The)29 b(follo)m(wing)g
+Fn(gperf)g Fs(declarations)h(are)h(a)m(v)-5 b(ailable.)150
+4641 y(`)p Fn(\045delimiters=)p Fo(delimiter-lis)o(t)r
+Fs(')630 4751 y(Allo)m(ws)28 b(y)m(ou)h(to)g(pro)m(vide)f(a)h(string)f
+(con)m(taining)g(delimiters)f(used)g(to)j(separate)g(k)m(eyw)m(ords)630
+4860 y(from)k(their)g(attributes.)53 b(The)34 b(default)f(is)h
+Fn(")p Fs(,)p Fn(")p Fs(.)53 b(This)33 b(option)h(is)f(essen)m(tial)i
+(if)e(y)m(ou)i(w)m(an)m(t)630 4970 y(to)c(use)f(k)m(eyw)m(ords)h(that)g
+(ha)m(v)m(e)g(em)m(b)s(edded)f(commas)h(or)f(newlines.)150
+5121 y(`)p Fn(\045struct-type)p Fs(')630 5230 y(Allo)m(ws)g(y)m(ou)g
+(to)i(include)c(a)j Fn(struct)d Fs(t)m(yp)s(e)j(declaration)f(for)g
+(generated)i(co)s(de;)f(see)g(ab)s(o)m(v)m(e)630 5340
+y(for)f(an)g(example.)p eop
+%%Page: 13 15
+13 14 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
+b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(13)150
+299 y(`)p Fn(\045ignore-case)p Fs(')630 408 y(Consider)42
+b(upp)s(er)g(and)i(lo)m(w)m(er)g(case)h(ASCI)s(I)e(c)m(haracters)i(as)f
+(equiv)-5 b(alen)m(t.)81 b(The)44 b(string)630 518 y(comparison)27
+b(will)f(use)i(a)h(case)g(insigni\014can)m(t)d(c)m(haracter)k
+(comparison.)39 b(Note)29 b(that)g(lo)s(cale)630 628
+y(dep)s(enden)m(t)g(case)j(mappings)c(are)j(ignored.)150
+783 y(`)p Fn(\045language=)p Fo(language-name)5 b Fs(')630
+892 y(Instructs)33 b Fn(gperf)f Fs(to)i(generate)h(co)s(de)f(in)e(the)i
+(language)g(sp)s(eci\014ed)d(b)m(y)j(the)g(option's)f(ar-)630
+1002 y(gumen)m(t.)41 b(Languages)31 b(handled)e(are)i(curren)m(tly:)630
+1157 y(`)p Fn(KR-C)p Fs(')238 b(Old-st)m(yle)25 b(K&R)h(C.)g(This)e
+(language)j(is)f(understo)s(o)s(d)e(b)m(y)i(old-st)m(yle)g(C)g(com-)
+1110 1267 y(pilers)c(and)i(ANSI)f(C)h(compilers,)g(but)g(ANSI)f(C)h
+(compilers)f(ma)m(y)h(\015ag)h(w)m(arn-)1110 1377 y(ings)k(\(or)i(ev)m
+(en)g(errors\))f(b)s(ecause)h(of)f(lac)m(king)g(`)p Fn(const)p
+Fs('.)630 1532 y(`)p Fn(C)p Fs(')382 b(Common)23 b(C.)f(This)g
+(language)h(is)f(understo)s(o)s(d)f(b)m(y)i(ANSI)g(C)f(compilers,)i
+(and)1110 1641 y(also)29 b(b)m(y)f(old-st)m(yle)g(C)h(compilers,)e(pro)
+m(vided)g(that)j(y)m(ou)f Fn(#define)f(const)f Fs(to)1110
+1751 y(empt)m(y)k(for)f(compilers)f(whic)m(h)g(don't)h(kno)m(w)h(ab)s
+(out)f(this)f(k)m(eyw)m(ord.)630 1906 y(`)p Fn(ANSI-C)p
+Fs(')142 b(ANSI)39 b(C.)h(This)d(language)j(is)f(understo)s(o)s(d)f(b)m
+(y)h(ANSI)g(C)h(compilers)e(and)1110 2016 y(C)p Fn(++)29
+b Fs(compilers.)630 2171 y(`)p Fn(C++)p Fs(')286 b(C)p
+Fn(++)p Fs(.)40 b(This)28 b(language)j(is)f(understo)s(o)s(d)e(b)m(y)i
+(C)p Fn(++)g Fs(compilers.)630 2326 y(The)g(default)f(is)h(C.)150
+2482 y(`)p Fn(\045define)f(slot-name)e Fo(name)5 b Fs(')630
+2591 y(This)64 b(declaration)i(is)f(only)g(useful)f(when)h(option)g(`)p
+Fn(-t)p Fs(')h(\(or,)76 b(equiv)-5 b(alen)m(tly)d(,)74
+b(the)630 2701 y(`)p Fn(\045struct-type)p Fs(')27 b(declaration\))j
+(has)g(b)s(een)g(giv)m(en.)40 b(By)31 b(default,)e(the)h(program)g
+(assumes)630 2810 y(the)48 b(structure)g(comp)s(onen)m(t)h(iden)m
+(ti\014er)d(for)i(the)g(k)m(eyw)m(ord)h(is)e(`)p Fn(name)p
+Fs('.)94 b(This)46 b(option)630 2920 y(allo)m(ws)e(an)g(arbitrary)f(c)m
+(hoice)i(of)g(iden)m(ti\014er)d(for)j(this)e(comp)s(onen)m(t,)48
+b(although)c(it)g(still)630 3029 y(m)m(ust)30 b(o)s(ccur)g(as)h(the)g
+(\014rst)e(\014eld)g(in)g(y)m(our)i(supplied)c Fn(struct)p
+Fs(.)150 3185 y(`)p Fn(\045define)i(initializer-suffix)c
+Fo(initializers)t Fs(')630 3294 y(This)64 b(declaration)i(is)f(only)g
+(useful)f(when)h(option)g(`)p Fn(-t)p Fs(')h(\(or,)76
+b(equiv)-5 b(alen)m(tly)d(,)74 b(the)630 3404 y(`)p Fn(\045struct-type)
+p Fs(')33 b(declaration\))j(has)f(b)s(een)g(giv)m(en.)57
+b(It)36 b(p)s(ermits)e(to)j(sp)s(ecify)d(initializers)630
+3513 y(for)44 b(the)g(structure)g(mem)m(b)s(ers)f(follo)m(wing)f
+Fo(slot-name)50 b Fs(in)42 b(empt)m(y)j(hash)e(table)h(en)m(tries.)630
+3623 y(The)e(list)e(of)j(initializers)38 b(should)i(start)j(with)e(a)h
+(comma.)77 b(By)42 b(default,)j(the)d(emitted)630 3733
+y(co)s(de)31 b(will)c(zero-initialize)i(structure)h(mem)m(b)s(ers)g
+(follo)m(wing)f Fo(slot-name)p Fs(.)150 3888 y(`)p Fn(\045define)g
+(hash-function-name)c Fo(name)5 b Fs(')630 3998 y(Allo)m(ws)29
+b(y)m(ou)h(to)g(sp)s(ecify)f(the)h(name)g(for)f(the)h(generated)h(hash)
+e(function.)39 b(Default)30 b(name)630 4107 y(is)f(`)p
+Fn(hash)p Fs('.)40 b(This)29 b(option)h(p)s(ermits)e(the)j(use)f(of)h
+(t)m(w)m(o)g(hash)f(tables)g(in)f(the)i(same)g(\014le.)150
+4262 y(`)p Fn(\045define)e(lookup-function-name)24 b
+Fo(name)5 b Fs(')630 4372 y(Allo)m(ws)41 b(y)m(ou)h(to)h(sp)s(ecify)d
+(the)j(name)f(for)f(the)h(generated)h(lo)s(okup)e(function.)74
+b(Default)630 4482 y(name)28 b(is)f(`)p Fn(in_word_set)p
+Fs('.)37 b(This)26 b(option)h(p)s(ermits)f(m)m(ultiple)g(generated)i
+(hash)f(functions)630 4591 y(to)k(b)s(e)f(used)f(in)g(the)i(same)g
+(application.)150 4746 y(`)p Fn(\045define)e(class-name)e
+Fo(name)5 b Fs(')630 4856 y(This)65 b(option)i(is)f(only)h(useful)e
+(when)i(option)f(`)p Fn(-L)30 b(C++)p Fs(')67 b(\(or,)77
+b(equiv)-5 b(alen)m(tly)d(,)76 b(the)630 4966 y(`)p Fn
+(\045language=C++)p Fs(')43 b(declaration\))i(has)h(b)s(een)f(giv)m
+(en.)87 b(It)46 b(allo)m(ws)f(y)m(ou)h(to)g(sp)s(ecify)f(the)630
+5075 y(name)30 b(of)h(generated)g(C)p Fn(++)f Fs(class.)40
+b(Default)31 b(name)f(is)g Fn(Perfect_Hash)p Fs(.)150
+5230 y(`)p Fn(\0457bit)p Fs(')190 b(This)35 b(option)i(sp)s(eci\014es)f
+(that)h(all)f(strings)g(that)i(will)c(b)s(e)j(passed)f(as)i(argumen)m
+(ts)f(to)h(the)630 5340 y(generated)e(hash)e(function)f(and)i(the)g
+(generated)g(lo)s(okup)f(function)f(will)f(solely)i(consist)p
+eop
+%%Page: 14 16
+14 15 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
+b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(14)630
+299 y(of)33 b(7-bit)g(ASCI)s(I)f(c)m(haracters)j(\(b)m(ytes)f(in)e(the)
+h(range)h(0..127\).)51 b(\(Note)35 b(that)f(the)g(ANSI)e(C)630
+408 y(functions)e Fn(isalnum)g Fs(and)i Fn(isgraph)e
+Fs(do)i Fl(not)41 b Fs(guaran)m(tee)33 b(that)g(a)f(b)m(yte)h(is)e(in)f
+(this)h(range.)630 518 y(Only)e(an)h(explicit)f(test)i(lik)m(e)f(`)p
+Fn(c)g(>=)g('A')f(&&)h(c)g(<=)g('Z')p Fs(')f(guaran)m(tees)j(this.\))
+150 682 y(`)p Fn(\045compare-lengths)p Fs(')630 792 y(Compare)40
+b(k)m(eyw)m(ord)g(lengths)f(b)s(efore)g(trying)g(a)i(string)d
+(comparison.)69 b(This)38 b(option)h(is)630 902 y(mandatory)32
+b(for)h(binary)d(comparisons)i(\(see)h(Section)g(3.3)g([Binary)f
+(Strings],)g(page)h(18\).)630 1011 y(It)g(also)g(migh)m(t)g(cut)g(do)m
+(wn)f(on)h(the)g(n)m(um)m(b)s(er)f(of)h(string)f(comparisons)g(made)h
+(during)e(the)630 1121 y(lo)s(okup,)i(since)g(k)m(eyw)m(ords)g(with)f
+(di\013eren)m(t)h(lengths)g(are)g(nev)m(er)h(compared)f(via)g
+Fn(strcmp)p Fs(.)630 1230 y(Ho)m(w)m(ev)m(er,)e(using)c(`)p
+Fn(\045compare-lengths)p Fs(')d(migh)m(t)k(greatly)h(increase)f(the)h
+(size)f(of)h(the)f(gen-)630 1340 y(erated)j(C)f(co)s(de)h(if)e(the)i
+(lo)s(okup)e(table)i(range)f(is)g(large)g(\(whic)m(h)g(implies)e(that)j
+(the)f(switc)m(h)630 1450 y(option)23 b(`)p Fn(-S)p Fs(')h(or)g(`)p
+Fn(\045switch)p Fs(')f(is)g(not)h(enabled\),)h(since)e(the)h(length)g
+(table)f(con)m(tains)i(as)f(man)m(y)630 1559 y(elemen)m(ts)31
+b(as)f(there)h(are)g(en)m(tries)f(in)f(the)h(lo)s(okup)f(table.)150
+1724 y(`)p Fn(\045compare-strncmp)p Fs(')630 1833 y(Generates)22
+b(C)f(co)s(de)g(that)h(uses)e(the)i Fn(strncmp)d Fs(function)g(to)j(p)s
+(erform)e(string)g(comparisons.)630 1943 y(The)30 b(default)f(action)i
+(is)f(to)h(use)f Fn(strcmp)p Fs(.)150 2107 y(`)p Fn
+(\045readonly-tables)p Fs(')630 2217 y(Mak)m(es)41 b(the)f(con)m(ten)m
+(ts)h(of)f(all)f(generated)h(lo)s(okup)e(tables)i(constan)m(t,)j(i.e.,)
+g(\\readonly".)630 2326 y(Man)m(y)31 b(compilers)e(can)i(generate)h
+(more)e(e\016cien)m(t)h(co)s(de)g(for)f(this)g(b)m(y)g(putting)f(the)i
+(tables)630 2436 y(in)e(readonly)h(memory)-8 b(.)150
+2600 y(`)p Fn(\045enum)p Fs(')190 b(De\014ne)31 b(constan)m(t)g(v)-5
+b(alues)30 b(using)f(an)h(en)m(um)g(lo)s(cal)g(to)h(the)g(lo)s(okup)e
+(function)g(rather)h(than)630 2710 y(with)36 b(#de\014nes.)60
+b(This)35 b(also)i(means)h(that)f(di\013eren)m(t)g(lo)s(okup)f
+(functions)g(can)h(reside)f(in)630 2819 y(the)31 b(same)f(\014le.)40
+b(Thanks)29 b(to)j(James)e(Clark)f Fn(<jjc@ai.mit.edu>)p
+Fs(.)150 2984 y(`)p Fn(\045includes)p Fs(')630 3093 y(Include)g(the)i
+(necessary)h(system)f(include)e(\014le,)h Fn(<string.h>)p
+Fs(,)f(at)i(the)g(b)s(eginning)e(of)i(the)630 3203 y(co)s(de.)39
+b(By)27 b(default,)f(this)f(is)g(not)h(done;)i(the)e(user)f(m)m(ust)h
+(include)e(this)g(header)i(\014le)f(himself)630 3313
+y(to)31 b(allo)m(w)f(compilation)f(of)h(the)h(co)s(de.)150
+3477 y(`)p Fn(\045global-table)p Fs(')630 3587 y(Generate)38
+b(the)f(static)g(table)f(of)h(k)m(eyw)m(ords)g(as)g(a)g(static)g
+(global)f(v)-5 b(ariable,)37 b(rather)f(than)630 3696
+y(hiding)28 b(it)i(inside)e(of)i(the)h(lo)s(okup)e(function)g(\(whic)m
+(h)g(is)h(the)g(default)g(b)s(eha)m(vior\).)150 3861
+y(`)p Fn(\045pic)p Fs(')238 b(Optimize)40 b(the)h(generated)h(table)f
+(for)g(inclusion)d(in)i(shared)g(libraries.)70 b(This)39
+b(reduces)630 3970 y(the)c(startup)g(time)g(of)g(programs)g(using)f(a)i
+(shared)e(library)f(con)m(taining)i(the)g(generated)630
+4080 y(co)s(de.)j(If)21 b(the)h(`)p Fn(\045struct-type)p
+Fs(')d(declaration)j(\(or,)i(equiv)-5 b(alen)m(tly)d(,)23
+b(the)f(option)f(`)p Fn(-t)p Fs('\))h(is)f(also)630 4189
+y(giv)m(en,)31 b(the)g(\014rst)e(\014eld)h(of)g(the)h(user-de\014ned)e
+(struct)i(m)m(ust)f(b)s(e)g(of)h(t)m(yp)s(e)g(`)p Fn(int)p
+Fs(',)f(not)h(`)p Fn(char)630 4299 y(*)p Fs(',)h(b)s(ecause)f(it)h
+(will)c(con)m(tain)k(o\013sets)h(in)m(to)e(the)h(string)e(p)s(o)s(ol)h
+(instead)f(of)i(actual)g(strings.)630 4408 y(T)-8 b(o)33
+b(con)m(v)m(ert)h(suc)m(h)f(an)f(o\013set)i(to)f(a)g(string,)g(y)m(ou)g
+(can)g(use)f(the)h(expression)e(`)p Fn(stringpool)630
+4518 y(+)f Fo(o)5 b Fs(',)34 b(where)f Fo(o)38 b Fs(is)32
+b(the)h(o\013set.)50 b(The)32 b(string)g(p)s(o)s(ol)g(name)h(can)g(b)s
+(e)g(c)m(hanged)g(through)g(the)630 4628 y(`)p Fn(\045define)c
+(string-pool-name)p Fs(')d(declaration.)150 4792 y(`)p
+Fn(\045define)j(string-pool-name)d Fo(name)5 b Fs(')630
+4902 y(Allo)m(ws)40 b(y)m(ou)h(to)h(sp)s(ecify)e(the)h(name)g(of)g(the)
+g(generated)h(string)e(p)s(o)s(ol)g(created)i(b)m(y)f(the)630
+5011 y(declaration)46 b(`)p Fn(\045pic)p Fs(')g(\(or,)51
+b(equiv)-5 b(alen)m(tly)d(,)50 b(the)d(option)e(`)p Fn(-P)p
+Fs('\).)90 b(The)46 b(default)f(name)i(is)630 5121 y(`)p
+Fn(stringpool)p Fs('.)38 b(This)28 b(declaration)h(p)s(ermits)f(the)i
+(use)g(of)g(t)m(w)m(o)h(hash)e(tables)g(in)g(the)h(same)630
+5230 y(\014le,)38 b(with)d(`)p Fn(\045pic)p Fs(')h(and)g(ev)m(en)h
+(when)f(the)h(`)p Fn(\045global-table)p Fs(')c(declaration)j(\(or,)j
+(equiv)-5 b(a-)630 5340 y(len)m(tly)d(,)30 b(the)h(option)f(`)p
+Fn(-G)p Fs('\))g(is)g(giv)m(en.)p eop
+%%Page: 15 17
+15 16 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
+b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(15)150
+299 y(`)p Fn(\045null-strings)p Fs(')630 408 y(Use)39
+b(NULL)g(strings)e(instead)i(of)f(empt)m(y)i(strings)d(for)i(empt)m(y)g
+(k)m(eyw)m(ord)g(table)g(en)m(tries.)630 518 y(This)e(reduces)h(the)h
+(startup)g(time)f(of)h(programs)g(using)e(a)i(shared)f(library)e(con)m
+(taining)630 628 y(the)29 b(generated)g(co)s(de)g(\(but)f(not)g(as)h(m)
+m(uc)m(h)g(as)f(the)h(declaration)f(`)p Fn(\045pic)p
+Fs('\),)h(at)g(the)f(exp)s(ense)630 737 y(of)j(one)f(more)h
+(test-and-branc)m(h)g(instruction)d(at)j(run)e(time.)150
+913 y(`)p Fn(\045define)g(word-array-name)d Fo(name)5
+b Fs(')630 1022 y(Allo)m(ws)39 b(y)m(ou)h(to)h(sp)s(ecify)e(the)h(name)
+g(for)f(the)i(generated)g(arra)m(y)f(con)m(taining)g(the)g(hash)630
+1132 y(table.)105 b(Default)52 b(name)f(is)g(`)p Fn(wordlist)p
+Fs('.)103 b(This)50 b(option)h(p)s(ermits)f(the)i(use)g(of)g(t)m(w)m(o)
+630 1241 y(hash)37 b(tables)g(in)g(the)h(same)g(\014le,)h(ev)m(en)f
+(when)f(the)h(option)f(`)p Fn(-G)p Fs(')h(\(or,)i(equiv)-5
+b(alen)m(tly)d(,)39 b(the)630 1351 y(`)p Fn(\045global-table)p
+Fs(')27 b(declaration\))k(is)e(giv)m(en.)150 1526 y(`)p
+Fn(\045switch=)p Fo(coun)m(t)r Fs(')630 1636 y(Causes)35
+b(the)h(generated)h(C)e(co)s(de)h(to)h(use)e(a)h Fn(switch)e
+Fs(statemen)m(t)k(sc)m(heme,)g(rather)d(than)630 1746
+y(an)j(arra)m(y)g(lo)s(okup)f(table.)63 b(This)36 b(can)i(lead)g(to)g
+(a)h(reduction)e(in)f(b)s(oth)h(time)h(and)f(space)630
+1855 y(requiremen)m(ts)42 b(for)i(some)f(input)f(\014les.)79
+b(The)43 b(argumen)m(t)h(to)g(this)e(option)h(determines)630
+1965 y(ho)m(w)33 b(man)m(y)f Fn(switch)f Fs(statemen)m(ts)k(are)e
+(generated.)49 b(A)32 b(v)-5 b(alue)33 b(of)f(1)i(generates)g(1)f
+Fn(switch)630 2074 y Fs(con)m(taining)23 b(all)e(the)j(elemen)m(ts,)h
+(a)e(v)-5 b(alue)22 b(of)i(2)f(generates)h(2)g(tables)e(with)g(1/2)i
+(the)g(elemen)m(ts)630 2184 y(in)37 b(eac)m(h)i Fn(switch)p
+Fs(,)g(etc.)65 b(This)36 b(is)h(useful)g(since)g(man)m(y)i(C)e
+(compilers)g(cannot)i(correctly)630 2294 y(generate)29
+b(co)s(de)f(for)f(large)g Fn(switch)f Fs(statemen)m(ts.)41
+b(This)26 b(option)h(w)m(as)h(inspired)c(in)i(part)h(b)m(y)630
+2403 y(Keith)j(Bostic's)h(original)d(C)i(program.)150
+2579 y(`)p Fn(\045omit-struct-type)p Fs(')630 2688 y(Prev)m(en)m(ts)f
+(the)e(transfer)h(of)f(the)h(t)m(yp)s(e)g(declaration)f(to)i(the)f
+(output)f(\014le.)39 b(Use)28 b(this)e(option)630 2798
+y(if)j(the)i(t)m(yp)s(e)f(is)g(already)g(de\014ned)f(elsewhere.)150
+3054 y Fj(3.1.1.3)63 b(C)41 b(Co)s(de)g(Inclusion)275
+3262 y Fs(Using)25 b(a)h(syn)m(tax)h(similar)c(to)k(GNU)f(utilities)e
+Fn(flex)h Fs(and)g Fn(bison)p Fs(,)h(it)f(is)g(p)s(ossible)f(to)i
+(directly)f(include)150 3372 y(C)k(source)h(text)g(and)f(commen)m(ts)h
+(v)m(erbatim)f(in)m(to)h(the)f(generated)i(output)e(\014le.)39
+b(This)28 b(is)g(accomplished)150 3482 y(b)m(y)37 b(enclosing)f(the)i
+(region)f(inside)d(left-justi\014ed)i(surrounding)e(`)p
+Fn(\045{)p Fs(',)39 b(`)p Fn(\045})p Fs(')e(pairs.)60
+b(Here)38 b(is)e(an)h(input)150 3591 y(fragmen)m(t)31
b(based)f(on)g(the)h(previous)e(example)h(that)h(illustrates)d(this)i
-(feature:)390 2608 y Fn(\045{)390 2711 y(#include)46
-b(<assert.h>)390 2815 y(/*)h(This)g(section)f(of)h(code)f(is)i
+(feature:)390 3736 y Fn(\045{)390 3840 y(#include)46
+b(<assert.h>)390 3944 y(/*)h(This)g(section)f(of)h(code)f(is)i
(inserted)d(directly)h(into)g(the)h(output.)f(*/)390
-2919 y(int)h(return_month_days)c(\(struct)j(months)g(*months,)f(int)i
-(is_leap_year\);)390 3023 y(\045})390 3126 y(struct)f(months)g({)i
+4047 y(int)h(return_month_days)c(\(struct)j(months)g(*months,)f(int)i
+(is_leap_year\);)390 4151 y(\045})390 4255 y(struct)f(months)g({)i
(char)e(*name;)g(int)h(number;)f(int)h(days;)f(int)h(leap_days;)e(};)
-390 3230 y(\045\045)390 3334 y(january,)141 b(1,)47 b(31,)g(31)390
-3438 y(february,)93 b(2,)47 b(28,)g(29)390 3542 y(march,)237
-b(3,)47 b(31,)g(31)390 3645 y(...)275 3780 y Fs(It)40
-b(is)g(p)s(ossible)e(to)j(omit)g(the)f(declaration)h(section)f(en)m
-(tirely)-8 b(.)71 b(In)40 b(this)g(case)h(the)g(k)m(ey\014le)f(b)s
-(egins)150 3889 y(directly)29 b(with)g(the)i(\014rst)e(k)m(eyw)m(ord)i
-(line,)e(e.g.:)390 4025 y Fn(january,)141 b(1,)47 b(31,)g(31)390
-4129 y(february,)93 b(2,)47 b(28,)g(29)390 4233 y(march,)237
-b(3,)47 b(31,)g(31)390 4336 y(april,)237 b(4,)47 b(30,)g(30)390
-4440 y(...)150 4670 y Fj(3.1.2)63 b(F)-10 b(ormat)40
-b(for)h(Keyw)m(ord)f(En)m(tries)275 4870 y Fs(The)20
-b(second)g(k)m(ey\014le)h(format)g(section)f(con)m(tains)h(lines)e(of)i
-(k)m(eyw)m(ords)f(and)g(an)m(y)h(asso)s(ciated)g(attributes)150
-4979 y(y)m(ou)34 b(migh)m(t)g(supply)-8 b(.)49 b(A)34
-b(line)e(b)s(eginning)g(with)g(`)p Fn(#)p Fs(')i(in)f(the)h(\014rst)f
-(column)g(is)g(considered)f(a)j(commen)m(t.)150 5089
-y(Ev)m(erything)30 b(follo)m(wing)f(the)h(`)p Fn(#)p
-Fs(')h(is)e(ignored,)h(up)f(to)i(and)f(including)d(the)j(follo)m(wing)f
-(newline.)275 5230 y(The)i(\014rst)g(\014eld)f(of)i(eac)m(h)g
-(non-commen)m(t)h(line)d(is)g(alw)m(a)m(ys)j(the)e(k)m(ey)i(itself.)43
-b(It)32 b(can)g(b)s(e)f(giv)m(en)g(in)g(t)m(w)m(o)150
-5340 y(w)m(a)m(ys:)54 b(as)37 b(a)g(simple)d(name,)k(i.e.,)h(without)c
-(surrounding)f(string)h(quotation)i(marks,)h(or)e(as)h(a)g(string)p
+390 4359 y(\045\045)390 4462 y(january,)141 b(1,)47 b(31,)g(31)390
+4566 y(february,)93 b(2,)47 b(28,)g(29)390 4670 y(march,)237
+b(3,)47 b(31,)g(31)390 4774 y(...)150 5022 y Fj(3.1.2)63
+b(F)-10 b(ormat)40 b(for)h(Keyw)m(ord)f(En)m(tries)275
+5230 y Fs(The)33 b(second)i(input)d(\014le)i(format)h(section)f(con)m
+(tains)h(lines)d(of)j(k)m(eyw)m(ords)g(and)e(an)m(y)i(asso)s(ciated)g
+(at-)150 5340 y(tributes)i(y)m(ou)i(migh)m(t)f(supply)-8
+b(.)63 b(A)39 b(line)d(b)s(eginning)g(with)h(`)p Fn(#)p
+Fs(')i(in)e(the)i(\014rst)f(column)f(is)g(considered)h(a)p
eop
-%%Page: 13 15
-13 14 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
-b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(13)150
-299 y(enclosed)40 b(in)f(double-quotes,)k(in)c(C)h(syn)m(tax,)j(p)s
-(ossibly)38 b(with)h(bac)m(kslash)h(escap)s(es)g(lik)m(e)g
-Fn(\\")g Fs(or)g Fn(\\234)150 408 y Fs(or)d Fn(\\xa8)p
-Fs(.)60 b(In)37 b(either)f(case,)41 b(it)36 b(m)m(ust)h(start)h(righ)m
-(t)f(at)h(the)f(b)s(eginning)e(of)i(the)g(line,)h(without)e(leading)150
-518 y(whitespace.)57 b(In)35 b(this)g(con)m(text,)k(a)e(\\\014eld")e
+%%Page: 16 18
+16 17 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
+b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(16)150
+299 y(commen)m(t.)53 b(Ev)m(erything)33 b(follo)m(wing)f(the)j(`)p
+Fn(#)p Fs(')f(is)f(ignored,)h(up)f(to)i(and)e(including)e(the)j(follo)m
+(wing)e(new-)150 408 y(line.)55 b(A)36 b(line)f(b)s(eginning)e(with)h
+(`)p Fn(\045)p Fs(')i(in)f(the)h(\014rst)f(column)f(is)h(an)h(option)f
+(declaration)h(and)f(m)m(ust)h(not)150 518 y(o)s(ccur)30
+b(within)e(the)j(k)m(eyw)m(ords)f(section.)275 698 y(The)36
+b(\014rst)g(\014eld)f(of)i(eac)m(h)g(non-commen)m(t)h(line)d(is)h(alw)m
+(a)m(ys)h(the)g(k)m(eyw)m(ord)g(itself.)58 b(It)37 b(can)g(b)s(e)f(giv)
+m(en)150 807 y(in)e(t)m(w)m(o)i(w)m(a)m(ys:)51 b(as)35
+b(a)g(simple)e(name,)k(i.e.,)f(without)e(surrounding)e(string)i
+(quotation)h(marks,)h(or)f(as)h(a)150 917 y(string)h(enclosed)g(in)f
+(double-quotes,)j(in)d(C)i(syn)m(tax,)i(p)s(ossibly)35
+b(with)h(bac)m(kslash)h(escap)s(es)h(lik)m(e)f Fn(\\")g
+Fs(or)150 1027 y Fn(\\234)23 b Fs(or)i Fn(\\xa8)p Fs(.)37
+b(In)24 b(either)g(case,)j(it)d(m)m(ust)g(start)h(righ)m(t)f(at)h(the)g
+(b)s(eginning)c(of)k(the)g(line,)f(without)f(leading)150
+1136 y(whitespace.)57 b(In)35 b(this)g(con)m(text,)k(a)e(\\\014eld")e
(is)g(considered)g(to)h(extend)g(up)f(to,)j(but)d(not)h(include,)g(the)
-150 628 y(\014rst)i(blank,)h(comma,)j(or)c(newline.)63
+150 1246 y(\014rst)i(blank,)h(comma,)j(or)c(newline.)63
b(Here)39 b(is)e(a)i(simple)e(example)h(tak)m(en)h(from)f(a)h(partial)f
-(list)f(of)h(C)150 737 y(reserv)m(ed)31 b(w)m(ords:)390
-865 y Fn(#)47 b(These)g(are)g(a)g(few)g(C)h(reserved)d(words,)h(see)h
-(the)g(c.gperf)f(file)390 969 y(#)h(for)g(a)h(complete)d(list)i(of)g
-(ANSI)g(C)g(reserved)f(words.)390 1073 y(unsigned)390
-1177 y(sizeof)390 1280 y(switch)390 1384 y(signed)390
-1488 y(if)390 1592 y(default)390 1696 y(for)390 1799
-y(while)390 1903 y(return)275 2030 y Fs(Note)38 b(that)f(unlik)m(e)e
+(list)f(of)h(C)150 1355 y(reserv)m(ed)31 b(w)m(ords:)390
+1529 y Fn(#)47 b(These)g(are)g(a)g(few)g(C)h(reserved)d(words,)h(see)h
+(the)g(c.gperf)f(file)390 1633 y(#)h(for)g(a)h(complete)d(list)i(of)g
+(ANSI)g(C)g(reserved)f(words.)390 1737 y(unsigned)390
+1841 y(sizeof)390 1944 y(switch)390 2048 y(signed)390
+2152 y(if)390 2256 y(default)390 2360 y(for)390 2463
+y(while)390 2567 y(return)275 2740 y Fs(Note)38 b(that)f(unlik)m(e)e
Fn(flex)h Fs(or)h Fn(bison)e Fs(the)j(\014rst)e(`)p Fn(\045\045)p
Fs(')g(mark)m(er)i(ma)m(y)f(b)s(e)f(elided)f(if)h(the)h(declaration)150
-2140 y(section)31 b(is)e(empt)m(y)-8 b(.)275 2274 y(Additional)26
+2849 y(section)31 b(is)e(empt)m(y)-8 b(.)275 3029 y(Additional)26
b(\014elds)h(ma)m(y)i(optionally)e(follo)m(w)h(the)h(leading)e(k)m(eyw)
m(ord.)41 b(Fields)27 b(should)f(b)s(e)i(separated)150
-2383 y(b)m(y)g(commas,)i(and)d(terminate)i(at)g(the)f(end)g(of)g(line.)
+3139 y(b)m(y)g(commas,)i(and)d(terminate)i(at)g(the)f(end)g(of)g(line.)
39 b(What)29 b(these)f(\014elds)f(mean)h(is)g(en)m(tirely)f(up)g(to)i
-(y)m(ou;)150 2493 y(they)k(are)h(used)e(to)i(initialize)c(the)k(elemen)
+(y)m(ou;)150 3248 y(they)k(are)h(used)e(to)i(initialize)c(the)k(elemen)
m(ts)f(of)g(the)h(user-de\014ned)d Fn(struct)h Fs(pro)m(vided)f(b)m(y)i
-(y)m(ou)h(in)e(the)150 2602 y(declaration)k(section.)59
-b(If)36 b(the)g(`)p Fn(-t)p Fs(')g(option)g(is)f Fl(not)46
-b Fs(enabled)35 b(these)i(\014elds)e(are)i(simply)d(ignored.)57
-b(All)150 2712 y(previous)29 b(examples)h(except)h(the)g(last)f(one)h
-(con)m(tain)f(k)m(eyw)m(ord)h(attributes.)150 2934 y
-Fj(3.1.3)63 b(Including)41 b(Additional)g(C)g(F)-10 b(unctions)275
-3127 y Fs(The)30 b(optional)g(third)f(section)i(also)g(corresp)s(onds)e
-(closely)h(with)g(con)m(v)m(en)m(tions)i(found)d(in)h
-Fn(flex)g Fs(and)150 3236 y Fn(bison)p Fs(.)36 b(All)21
+(y)m(ou)h(in)e(the)150 3358 y(declaration)38 b(section.)66
+b(If)39 b(the)g(`)p Fn(-t)p Fs(')f(option)g(\(or,)k(equiv)-5
+b(alen)m(tly)d(,)40 b(the)f(`)p Fn(\045struct-type)p
+Fs(')d(declaration\))150 3468 y(is)f Fl(not)45 b Fs(enabled)35
+b(these)h(\014elds)f(are)h(simply)d(ignored.)57 b(All)34
+b(previous)h(examples)g(except)i(the)f(last)g(one)150
+3577 y(con)m(tain)31 b(k)m(eyw)m(ord)g(attributes.)150
+3892 y Fj(3.1.3)63 b(Including)41 b(Additional)g(C)g(F)-10
+b(unctions)275 4130 y Fs(The)30 b(optional)g(third)f(section)i(also)g
+(corresp)s(onds)e(closely)h(with)g(con)m(v)m(en)m(tions)i(found)d(in)h
+Fn(flex)g Fs(and)150 4239 y Fn(bison)p Fs(.)36 b(All)21
b(text)i(in)e(this)f(section,)k(starting)e(at)h(the)f(\014nal)e(`)p
Fn(\045\045)p Fs(')i(and)f(extending)h(to)g(the)g(end)g(of)g(the)g
-(input)150 3346 y(\014le,)30 b(is)g(included)f(v)m(erbatim)h(in)m(to)h
+(input)150 4349 y(\014le,)30 b(is)g(included)f(v)m(erbatim)h(in)m(to)h
(the)g(generated)h(output)f(\014le.)41 b(Naturally)-8
b(,)31 b(it)f(is)g(y)m(our)h(resp)s(onsibilit)m(y)150
-3455 y(to)g(ensure)f(that)h(the)f(co)s(de)h(con)m(tained)f(in)g(this)f
-(section)h(is)g(v)-5 b(alid)28 b(C.)150 3711 y Fr(3.2)68
-b(Output)45 b(F)-11 b(ormat)45 b(for)g(Generated)h(C)f(Co)t(de)g(with)g
-Fk(gperf)275 3903 y Fs(Sev)m(eral)27 b(options)g(con)m(trol)h(ho)m(w)f
-(the)h(generated)h(C)e(co)s(de)h(app)s(ears)e(on)i(the)g(standard)e
-(output.)40 b(Tw)m(o)150 4013 y(C)22 b(function)f(are)h(generated.)39
+4459 y(to)g(ensure)f(that)h(the)f(co)s(de)h(con)m(tained)f(in)g(this)f
+(section)h(is)g(v)-5 b(alid)28 b(C.)150 4773 y Fj(3.1.4)63
+b(Where)41 b(to)g(place)f(directiv)m(es)g(for)h(GNU)h
+Fi(indent)p Fj(.)275 5011 y Fs(If)26 b(y)m(ou)i(w)m(an)m(t)g(to)g(in)m
+(v)m(ok)m(e)g(GNU)g Fn(indent)e Fs(on)h(a)g Fn(gperf)f
+Fs(input)g(\014le,)h(y)m(ou)g(will)e(see)j(that)g(GNU)g
+Fn(indent)150 5121 y Fs(do)s(esn't)33 b(understand)e(the)i(`)p
+Fn(\045\045)p Fs(',)h(`)p Fn(\045{)p Fs(')e(and)h(`)p
+Fn(\045})p Fs(')g(directiv)m(es)f(that)h(con)m(trol)h
+Fn(gperf)p Fs('s)d(in)m(terpretation)i(of)150 5230 y(the)23
+b(input)e(\014le.)37 b(Therefore)23 b(y)m(ou)g(ha)m(v)m(e)h(to)g
+(insert)e(some)h(directiv)m(es)f(for)h(GNU)h Fn(indent)p
+Fs(.)36 b(More)24 b(precisely)-8 b(,)150 5340 y(assuming)29
+b(the)i(most)f(general)h(input)d(\014le)i(structure)p
+eop
+%%Page: 17 19
+17 18 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
+b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(17)390
+299 y Fn(declarations)44 b(part)j(1)390 403 y(\045{)390
+506 y(verbatim)f(code)390 610 y(\045})390 714 y(declarations)e(part)j
+(2)390 818 y(\045\045)390 922 y(keywords)390 1025 y(\045\045)390
+1129 y(functions)150 1263 y Fs(y)m(ou)31 b(w)m(ould)e(insert)g(`)p
+Fn(*INDENT-OFF*)p Fs(')f(and)h(`)p Fn(*INDENT-ON*)p Fs(')f(commen)m(ts)
+k(as)e(follo)m(ws:)390 1397 y Fn(/*)47 b(*INDENT-OFF*)e(*/)390
+1501 y(declarations)f(part)j(1)390 1605 y(\045{)390 1709
+y(/*)g(*INDENT-ON*)e(*/)390 1812 y(verbatim)h(code)390
+1916 y(/*)h(*INDENT-OFF*)e(*/)390 2020 y(\045})390 2124
+y(declarations)f(part)j(2)390 2227 y(\045\045)390 2331
+y(keywords)390 2435 y(\045\045)390 2539 y(/*)g(*INDENT-ON*)e(*/)390
+2643 y(functions)150 2906 y Fr(3.2)68 b(Output)45 b(F)-11
+b(ormat)45 b(for)g(Generated)h(C)f(Co)t(de)g(with)g Fk(gperf)275
+3105 y Fs(Sev)m(eral)27 b(options)g(con)m(trol)h(ho)m(w)f(the)h
+(generated)h(C)e(co)s(de)h(app)s(ears)e(on)i(the)g(standard)e(output.)
+40 b(Tw)m(o)150 3215 y(C)22 b(function)f(are)h(generated.)39
b(They)22 b(are)h(called)e Fn(hash)g Fs(and)h Fn(in_word_set)p
-Fs(,)f(although)g(y)m(ou)i(ma)m(y)g(mo)s(dify)150 4122
+Fs(,)f(although)g(y)m(ou)i(ma)m(y)g(mo)s(dify)150 3324
y(their)31 b(names)h(with)f(a)h(command-line)f(option.)45
b(Both)33 b(functions)e(require)g(t)m(w)m(o)i(argumen)m(ts,)g(a)g
-(string,)150 4232 y Fn(char)c(*)43 b Fo(str)p Fs(,)j(and)d(a)g(length)g
+(string,)150 3434 y Fn(char)c(*)43 b Fo(str)p Fs(,)j(and)d(a)g(length)g
(parameter,)k Fn(int)42 b Fo(len)p Fs(.)78 b(Their)42
b(default)g(function)g(protot)m(yp)s(es)h(are)h(as)150
-4341 y(follo)m(ws:)3525 4573 y(F)-8 b(unction)-3725 b
+3543 y(follo)m(ws:)3525 3796 y(F)-8 b(unction)-3725 b
Fh(unsigned)41 b(int)e Fg(hash)44 b Ff(\()p Fn(const)30
b(char)f(*)h Fo(str)p Fn(,)g(unsigned)e(int)h Fo(len)p
-Ff(\))390 4682 y Fs(By)35 b(default,)g(the)f(generated)i
+Ff(\))390 3905 y Fs(By)35 b(default,)g(the)f(generated)i
Fn(hash)d Fs(function)g(returns)g(an)i(in)m(teger)g(v)-5
-b(alue)33 b(created)j(b)m(y)e(adding)390 4792 y Fo(len)c
-Fs(to)h(sev)m(eral)g(user-sp)s(eci\014ed)e Fo(str)37
-b Fs(k)m(ey)31 b(p)s(ositions)e(indexed)g(in)m(to)i(an)f
-Fo(asso)s(ciated)h(v)-5 b(alues)34 b Fs(table)390 4902
-y(stored)j(in)f(a)i(lo)s(cal)f(static)h(arra)m(y)-8 b(.)62
-b(The)37 b(asso)s(ciated)h(v)-5 b(alues)37 b(table)g(is)f(constructed)i
-(in)m(ternally)390 5011 y(b)m(y)30 b Fn(gperf)e Fs(and)h(later)h
-(output)g(as)g(a)g(static)g(lo)s(cal)g(C)f(arra)m(y)h(called)f(`)p
-Fn(hash_table)p Fs(';)f(its)i(meaning)390 5121 y(and)j(prop)s(erties)e
-(are)j(describ)s(ed)d(b)s(elo)m(w)i(\(see)h(Chapter)f(7)h([Implemen)m
-(tation],)g(page)g(23\).)50 b(The)390 5230 y(relev)-5
-b(an)m(t)22 b(k)m(ey)h(p)s(ositions)d(are)i(sp)s(eci\014ed)e(via)i(the)
-g(`)p Fn(-k)p Fs(')g(option)f(when)g(running)e Fn(gperf)p
-Fs(,)k(as)f(detailed)390 5340 y(in)29 b(the)i Fl(Options)38
-b Fs(section)31 b(b)s(elo)m(w\(see)g(Chapter)e(4)i([Options],)f(page)h
-(15\).)p eop
-%%Page: 14 16
-14 15 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
-b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(14)3525
-299 y(F)-8 b(unction)-3725 b Fg(in)p 253 299 35 5 v 41
-w(w)m(ord)p 542 299 V 41 w(set)44 b Ff(\()p Fn(const)30
+b(alue)33 b(created)j(b)m(y)e(adding)390 4015 y Fo(len)27
+b Fs(to)h(sev)m(eral)g(user-sp)s(eci\014ed)d Fo(str)34
+b Fs(b)m(yte)28 b(p)s(ositions)e(indexed)g(in)m(to)h(an)g
+Fo(asso)s(ciated)h(v)-5 b(alues)31 b Fs(table)390 4124
+y(stored)d(in)f(a)h(lo)s(cal)g(static)g(arra)m(y)-8 b(.)41
+b(The)28 b(asso)s(ciated)g(v)-5 b(alues)28 b(table)g(is)f(constructed)h
+(in)m(ternally)e(b)m(y)390 4234 y Fn(gperf)34 b Fs(and)g(later)h
+(output)f(as)i(a)f(static)h(lo)s(cal)e(C)g(arra)m(y)i(called)e(`)p
+Fn(hash_table)p Fs('.)52 b(The)35 b(relev)-5 b(an)m(t)390
+4344 y(selected)27 b(p)s(ositions)e(\(i.e.)40 b(indices)25
+b(in)m(to)i Fo(str)7 b Fs(\))26 b(are)h(sp)s(eci\014ed)e(via)i(the)g(`)
+p Fn(-k)p Fs(')g(option)f(when)g(running)390 4453 y Fn(gperf)p
+Fs(,)j(as)i(detailed)e(in)g(the)i Fl(Options)39 b Fs(section)30
+b(b)s(elo)m(w)g(\(see)h(Chapter)f(4)h([Options],)e(page)i(19\).)3525
+4705 y(F)-8 b(unction)-3725 b Fg(in)p 253 4705 35 5 v
+41 w(w)m(ord)p 542 4705 V 41 w(set)44 b Ff(\()p Fn(const)30
b(char)f(*)h Fo(str)p Fn(,)g(unsigned)e(int)h Fo(len)p
-Ff(\))390 408 y Fs(If)43 b Fo(str)49 b Fs(is)42 b(in)g(the)h(k)m(eyw)m
-(ord)g(set,)k(returns)42 b(a)h(p)s(oin)m(ter)f(to)i(that)g(k)m(eyw)m
-(ord.)79 b(More)43 b(exactly)-8 b(,)48 b(if)390 518 y(the)34
-b(option)f(`)p Fn(-t)p Fs(')h(w)m(as)g(giv)m(en,)g(it)g(returns)e(a)i
-(p)s(oin)m(ter)f(to)h(the)g(matc)m(hing)g(k)m(eyw)m(ord's)g(structure.)
-390 628 y(Otherwise)29 b(it)h(returns)f Fn(NULL)p Fs(.)275
-812 y(If)c(the)i(option)f(`)p Fn(-c)p Fs(')g(is)f(not)i(used,)f
-Fo(str)33 b Fs(m)m(ust)26 b(b)s(e)g(a)h(NUL)f(terminated)g(string)f(of)
-i(exactly)g(length)f Fo(len)p Fs(.)150 922 y(If)k(`)p
-Fn(-c)p Fs(')g(is)f(used,)g Fo(str)37 b Fs(m)m(ust)30
-b(simply)d(b)s(e)j(an)g(arra)m(y)g(of)g Fo(len)g Fs(c)m(haracters)h
-(and)f(do)s(es)f(not)i(need)f(to)g(b)s(e)g(NUL)150 1031
-y(terminated.)275 1166 y(The)f(co)s(de)i(generated)g(for)g(these)f(t)m
-(w)m(o)i(functions)d(is)g(a\013ected)j(b)m(y)f(the)f(follo)m(wing)f
-(options:)150 1325 y(`)p Fn(-t)p Fs(')150 1435 y(`)p
-Fn(--struct-type)p Fs(')630 1544 y(Mak)m(e)j(use)e(of)h(the)f
-(user-de\014ned)f Fn(struct)p Fs(.)150 1704 y(`)p Fn(-S)h
-Fo(total-switc)m(h-statemen)m(ts)t Fs(')150 1813 y(`)p
-Fn(--switch=)p Fo(total-switc)m(h-statemen)m(ts)t Fs(')630
-1923 y(Generate)22 b(1)f(or)g(more)g(C)f Fn(switch)f
+Ff(\))390 4815 y Fs(If)k Fo(str)41 b Fs(is)32 b(in)h(the)h(k)m(eyw)m
+(ord)g(set,)i(returns)c(a)j(p)s(oin)m(ter)e(to)h(that)h(k)m(eyw)m(ord.)
+51 b(More)35 b(exactly)-8 b(,)36 b(if)d(the)390 4924
+y(option)d(`)p Fn(-t)p Fs(')h(\(or,)g(equiv)-5 b(alen)m(tly)d(,)30
+b(the)h(`)p Fn(\045struct-type)p Fs(')d(declaration\))i(w)m(as)h(giv)m
+(en,)g(it)f(returns)g(a)390 5034 y(p)s(oin)m(ter)f(to)i(the)g(matc)m
+(hing)g(k)m(eyw)m(ord's)f(structure.)41 b(Otherwise)29
+b(it)h(returns)f Fn(NULL)p Fs(.)275 5230 y(If)39 b(the)i(option)e(`)p
+Fn(-c)p Fs(')h(\(or,)j(equiv)-5 b(alen)m(tly)d(,)42 b(the)f(`)p
+Fn(\045compare-strncmp)p Fs(')36 b(declaration\))k(is)f(not)h(used,)150
+5340 y Fo(str)k Fs(m)m(ust)37 b(b)s(e)f(a)i(NUL)f(terminated)g(string)f
+(of)i(exactly)g(length)e Fo(len)p Fs(.)61 b(If)37 b(`)p
+Fn(-c)p Fs(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)39 b(the)p
+eop
+%%Page: 18 20
+18 19 bop 150 -116 a Fs(Chapter)30 b(3:)41 b(High-Lev)m(el)30
+b(Description)g(of)g(GNU)h Fn(gperf)1520 b Fs(18)150
+299 y(`)p Fn(\045compare-strncmp)p Fs(')22 b(declaration\))k(is)f
+(used,)h Fo(str)32 b Fs(m)m(ust)26 b(simply)e(b)s(e)h(an)h(arra)m(y)g
+(of)g Fo(len)f Fs(b)m(ytes)i(and)e(do)s(es)150 408 y(not)31
+b(need)f(to)h(b)s(e)f(NUL)g(terminated.)275 543 y(The)f(co)s(de)i
+(generated)g(for)g(these)f(t)m(w)m(o)i(functions)d(is)g(a\013ected)j(b)
+m(y)f(the)f(follo)m(wing)f(options:)150 702 y(`)p Fn(-t)p
+Fs(')150 812 y(`)p Fn(--struct-type)p Fs(')630 922 y(Mak)m(e)j(use)e
+(of)h(the)f(user-de\014ned)f Fn(struct)p Fs(.)150 1081
+y(`)p Fn(-S)h Fo(total-switc)m(h-statemen)m(ts)t Fs(')150
+1191 y(`)p Fn(--switch=)p Fo(total-switc)m(h-statemen)m(ts)t
+Fs(')630 1300 y(Generate)22 b(1)f(or)g(more)g(C)f Fn(switch)f
Fs(statemen)m(t)j(rather)f(than)f(use)h(a)g(large,)i(\(and)d(p)s(oten)m
-(tially)630 2032 y(sparse\))j(static)g(arra)m(y)-8 b(.)40
+(tially)630 1410 y(sparse\))j(static)g(arra)m(y)-8 b(.)40
b(Although)22 b(the)h(exact)h(time)f(and)f(space)i(sa)m(vings)f(of)g
-(this)f(approac)m(h)630 2142 y(v)-5 b(ary)32 b(according)f(to)i(y)m
+(this)f(approac)m(h)630 1519 y(v)-5 b(ary)32 b(according)f(to)i(y)m
(our)e(C)g(compiler's)g(degree)h(of)g(optimization,)f(this)f(metho)s(d)
-i(often)630 2252 y(results)d(in)g(smaller)g(and)h(faster)h(co)s(de.)275
-2411 y(If)d(the)i(`)p Fn(-t)p Fs(')f(and)f(`)p Fn(-S)p
-Fs(')h(options)g(are)g(omitted,)h(the)f(default)g(action)g(is)f(to)i
-(generate)h(a)e Fn(char)h(*)e Fs(arra)m(y)150 2521 y(con)m(taining)35
-b(the)h(k)m(eys,)h(together)g(with)d(additional)g(n)m(ull)f(strings)i
-(used)f(for)h(padding)f(the)i(arra)m(y)-8 b(.)57 b(By)150
-2630 y(exp)s(erimen)m(ting)27 b(with)g(the)h(v)-5 b(arious)28
-b(input)e(and)i(output)g(options,)g(and)g(timing)f(the)h(resulting)f(C)
-g(co)s(de,)150 2740 y(y)m(ou)k(can)f(determine)g(the)g(b)s(est)g
-(option)g(c)m(hoices)h(for)f(di\013eren)m(t)g(k)m(eyw)m(ord)h(set)g(c)m
-(haracteristics.)150 2997 y Fr(3.3)68 b(Use)46 b(of)f(NUL)g(c)l
-(haracters)275 3190 y Fs(By)30 b(default,)g(the)g(co)s(de)g(generated)i
-(b)m(y)e Fn(gperf)e Fs(op)s(erates)j(on)f(zero)h(terminated)f(strings,)
-f(the)h(usual)150 3299 y(represen)m(tation)40 b(of)f(strings)g(in)f(C.)
-i(This)d(means)j(that)g(the)g(k)m(eyw)m(ords)g(in)e(the)i(input)e
-(\014le)g(m)m(ust)i(not)150 3409 y(con)m(tain)f(NUL)f(c)m(haracters,)43
-b(and)37 b(the)i Fo(str)45 b Fs(argumen)m(t)39 b(passed)f(to)h
-Fn(hash)e Fs(or)i Fn(in_word_set)c Fs(m)m(ust)k(b)s(e)150
-3518 y(NUL)30 b(terminated)g(and)g(ha)m(v)m(e)i(exactly)f(length)f
-Fo(len)p Fs(.)275 3653 y(If)f(option)g(`)p Fn(-c)p Fs(')h(is)f(used,)h
-(then)f(the)h Fo(str)37 b Fs(argumen)m(t)30 b(do)s(es)g(not)g(need)f
-(to)i(b)s(e)e(NUL)h(terminated.)40 b(The)150 3763 y(co)s(de)i
-(generated)h(b)m(y)f Fn(gperf)e Fs(will)f(only)i(access)j(the)e
-(\014rst)f Fo(len)p Fs(,)j(not)e Fo(len)p Fn(+)p Fo(1)p
-Fs(,)i(b)m(ytes)f(starting)e(at)i Fo(str)p Fs(.)150 3872
-y(Ho)m(w)m(ev)m(er,)33 b(the)d(k)m(eyw)m(ords)h(in)e(the)i(input)d
-(\014le)h(still)g(m)m(ust)h(not)h(con)m(tain)f(NUL)h(c)m(haracters.)275
-4007 y(If)26 b(option)h(`)p Fn(-l)p Fs(')g(is)f(used,)i(then)f(the)g
-(hash)g(table)g(p)s(erforms)f(binary)f(comparison.)39
-b(The)27 b(k)m(eyw)m(ords)g(in)150 4116 y(the)33 b(input)f(\014le)g(ma)
-m(y)i(con)m(tain)f(NUL)h(c)m(haracters,)h(written)e(in)f(string)g(syn)m
-(tax)i(as)f Fn(\\000)f Fs(or)h Fn(\\x00)p Fs(,)h(and)150
-4226 y(the)28 b(co)s(de)h(generated)g(b)m(y)f Fn(gperf)e
-Fs(will)g(treat)j(NUL)f(lik)m(e)g(an)m(y)g(other)h(c)m(haracter.)41
-b(Also,)29 b(in)e(this)g(case)i(the)150 4335 y(`)p Fn(-c)p
-Fs(')h(option)g(is)g(ignored.)p eop
-%%Page: 15 17
-15 16 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
-b Fn(gperf)2433 b Fs(15)150 299 y Fp(4)80 b(In)l(v)l(oking)53
-b Fm(gperf)275 522 y Fs(There)30 b(are)i Fl(many)40 b
-Fs(options)31 b(to)h Fn(gperf)p Fs(.)41 b(They)31 b(w)m(ere)h(added)e
-(to)i(mak)m(e)g(the)g(program)f(more)g(con)m(v)m(e-)150
-632 y(nien)m(t)g(for)f(use)h(with)f(real)h(applications.)41
-b(\\On-line")30 b(help)g(is)g(readily)g(a)m(v)-5 b(ailable)30
-b(via)h(the)g(`)p Fn(-h)p Fs(')g(option.)150 742 y(Here)g(is)e(the)i
-(complete)g(list)e(of)h(options.)150 993 y Fr(4.1)68
-b(Options)45 b(that)h(a\013ect)g(In)l(terpretation)h(of)e(the)g(Input)g
-(File)150 1206 y Fs(`)p Fn(-e)30 b Fo(k)m(eyw)m(ord-delimiter-list)r
-Fs(')150 1315 y(`)p Fn(--delimiters=)p Fo(k)m(eyw)m(ord-delimiter-list)
-r Fs(')630 1425 y(Allo)m(ws)g(the)h(user)f(to)h(pro)m(vide)f(a)h
-(string)f(con)m(taining)g(delimiters)f(used)h(to)h(separate)h(k)m(ey-)
-630 1535 y(w)m(ords)k(from)h(their)f(attributes.)60 b(The)37
-b(default)f(is)g Fn(")p Fs(,)p Fn(\\)p Fs(n)p Fn(")p
-Fs(.)60 b(This)35 b(option)h(is)g(essen)m(tial)h(if)630
-1644 y(y)m(ou)26 b(w)m(an)m(t)g(to)h(use)e(k)m(eyw)m(ords)h(that)g(ha)m
-(v)m(e)h(em)m(b)s(edded)d(commas)i(or)g(newlines.)37
-b(One)25 b(useful)630 1754 y(tric)m(k)30 b(is)g(to)h(use)f(-e'T)-8
-b(AB',)32 b(where)e(T)-8 b(AB)31 b(is)f(the)g(literal)f(tab)i(c)m
-(haracter.)150 1909 y(`)p Fn(-t)p Fs(')150 2019 y(`)p
-Fn(--struct-type)p Fs(')630 2128 y(Allo)m(ws)f(y)m(ou)i(to)g(include)d
+i(often)630 1629 y(results)d(in)g(smaller)g(and)h(faster)h(co)s(de.)275
+1788 y(If)c(the)h(`)p Fn(-t)p Fs(')g(and)f(`)p Fn(-S)p
+Fs(')g(options)h(\(or,)g(equiv)-5 b(alen)m(tly)d(,)28
+b(the)g(`)p Fn(\045struct-type)p Fs(')d(and)i(`)p Fn(\045switch)p
+Fs(')g(declara-)150 1898 y(tions\))e(are)g(omitted,)h(the)f(default)f
+(action)h(is)f(to)i(generate)g(a)g Fn(char)j(*)24 b Fs(arra)m(y)i(con)m
+(taining)e(the)h(k)m(eyw)m(ords,)150 2007 y(together)32
+b(with)d(additional)g(empt)m(y)i(strings)e(used)h(for)g(padding)f(the)h
+(arra)m(y)-8 b(.)43 b(By)30 b(exp)s(erimen)m(ting)f(with)150
+2117 y(the)i(v)-5 b(arious)31 b(input)e(and)h(output)h(options,)g(and)g
+(timing)e(the)j(resulting)d(C)i(co)s(de,)h(y)m(ou)f(can)h(determine)150
+2227 y(the)f(b)s(est)f(option)f(c)m(hoices)i(for)g(di\013eren)m(t)e(k)m
+(eyw)m(ord)i(set)g(c)m(haracteristics.)150 2484 y Fr(3.3)68
+b(Use)46 b(of)f(NUL)g(b)l(ytes)275 2677 y Fs(By)30 b(default,)g(the)g
+(co)s(de)g(generated)i(b)m(y)e Fn(gperf)e Fs(op)s(erates)j(on)f(zero)h
+(terminated)f(strings,)f(the)h(usual)150 2786 y(represen)m(tation)40
+b(of)f(strings)g(in)f(C.)i(This)d(means)j(that)g(the)g(k)m(eyw)m(ords)g
+(in)e(the)i(input)e(\014le)g(m)m(ust)i(not)150 2896 y(con)m(tain)c(NUL)
+g(b)m(ytes,)i(and)e(the)g Fo(str)42 b Fs(argumen)m(t)36
+b(passed)g(to)g Fn(hash)f Fs(or)h Fn(in_word_set)d Fs(m)m(ust)j(b)s(e)f
+(NUL)150 3005 y(terminated)30 b(and)g(ha)m(v)m(e)h(exactly)g(length)f
+Fo(len)p Fs(.)275 3140 y(If)35 b(option)h(`)p Fn(-c)p
+Fs(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)37 b(the)f(`)p
+Fn(\045compare-strncmp)p Fs(')c(declaration\))k(is)f(used,)i(then)f
+(the)150 3249 y Fo(str)e Fs(argumen)m(t)29 b(do)s(es)e(not)h(need)g(to)
+h(b)s(e)e(NUL)h(terminated.)40 b(The)27 b(co)s(de)h(generated)h(b)m(y)f
+Fn(gperf)f Fs(will)e(only)150 3359 y(access)k(the)f(\014rst)g
+Fo(len)p Fs(,)f(not)i Fo(len)p Fn(+)p Fo(1)p Fs(,)e(b)m(ytes)i
+(starting)f(at)g Fo(str)p Fs(.)40 b(Ho)m(w)m(ev)m(er,)31
+b(the)d(k)m(eyw)m(ords)g(in)f(the)h(input)e(\014le)150
+3469 y(still)i(m)m(ust)j(not)f(con)m(tain)h(NUL)f(b)m(ytes.)275
+3603 y(If)35 b(option)h(`)p Fn(-l)p Fs(')g(\(or,)i(equiv)-5
+b(alen)m(tly)d(,)37 b(the)f(`)p Fn(\045compare-lengths)p
+Fs(')c(declaration\))k(is)f(used,)i(then)f(the)150 3713
+y(hash)c(table)h(p)s(erforms)e(binary)g(comparison.)46
+b(The)33 b(k)m(eyw)m(ords)g(in)e(the)i(input)e(\014le)g(ma)m(y)j(con)m
+(tain)f(NUL)150 3822 y(b)m(ytes,)46 b(written)40 b(in)h(string)g(syn)m
+(tax)h(as)g Fn(\\000)f Fs(or)h Fn(\\x00)p Fs(,)i(and)d(the)h(co)s(de)g
+(generated)h(b)m(y)f Fn(gperf)f Fs(will)150 3932 y(treat)i(NUL)e(lik)m
+(e)g(an)m(y)h(other)g(b)m(yte.)75 b(Also,)44 b(in)c(this)g(case)j(the)f
+(`)p Fn(-c)p Fs(')f(option)g(\(or,)k(equiv)-5 b(alen)m(tly)d(,)44
+b(the)150 4042 y(`)p Fn(\045compare-strncmp)p Fs(')26
+b(declaration\))31 b(is)e(ignored.)p eop
+%%Page: 19 21
+19 20 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
+b Fn(gperf)2433 b Fs(19)150 299 y Fp(4)80 b(In)l(v)l(oking)53
+b Fm(gperf)275 542 y Fs(There)35 b(are)i Fl(many)46 b
+Fs(options)35 b(to)j Fn(gperf)p Fs(.)57 b(They)36 b(w)m(ere)h(added)e
+(to)j(mak)m(e)f(the)g(program)f(more)g(con-)150 651 y(v)m(enien)m(t)e
+(for)f(use)g(with)f(real)h(applications.)47 b(\\On-line")32
+b(help)g(is)g(readily)g(a)m(v)-5 b(ailable)33 b(via)g(the)g(`)p
+Fn(--help)p Fs(')150 761 y(option.)40 b(Here)31 b(is)e(the)i(complete)g
+(list)e(of)h(options.)150 1025 y Fr(4.1)68 b(Sp)t(ecifying)45
+b(the)g(Lo)t(cation)h(of)f(the)g(Output)g(File)150 1247
+y Fs(`)p Fn(--output-file=)p Fo(\014le)5 b Fs(')630 1357
+y(Allo)m(ws)29 b(y)m(ou)i(to)g(sp)s(ecify)e(the)i(name)f(of)h(the)f
+(\014le)g(to)h(whic)m(h)e(the)i(output)f(is)f(written)g(to.)275
+1521 y(The)g(results)h(are)g(written)g(to)h(standard)e(output)h(if)g
+(no)g(output)g(\014le)f(is)h(sp)s(eci\014ed)f(or)h(if)f(it)h(is)g(`)p
+Fn(-)p Fs('.)150 1785 y Fr(4.2)68 b(Options)45 b(that)h(a\013ect)g(In)l
+(terpretation)h(of)e(the)g(Input)g(File)275 1981 y Fs(These)d(options)g
+(are)h(also)f(a)m(v)-5 b(ailable)42 b(as)h(declarations)f(in)f(the)i
+(input)e(\014le)g(\(see)j(Section)e(3.1.1.2)150 2090
+y([Gp)s(erf)30 b(Declarations],)h(page)g(12\).)150 2254
+y(`)p Fn(-e)f Fo(k)m(eyw)m(ord-delimiter-list)r Fs(')150
+2364 y(`)p Fn(--delimiters=)p Fo(k)m(eyw)m(ord-delimiter-list)r
+Fs(')630 2473 y(Allo)m(ws)e(y)m(ou)h(to)g(pro)m(vide)f(a)h(string)f
+(con)m(taining)g(delimiters)f(used)g(to)j(separate)g(k)m(eyw)m(ords)630
+2583 y(from)k(their)g(attributes.)53 b(The)34 b(default)f(is)h
+Fn(")p Fs(,)p Fn(")p Fs(.)53 b(This)33 b(option)h(is)f(essen)m(tial)i
+(if)e(y)m(ou)i(w)m(an)m(t)630 2692 y(to)f(use)e(k)m(eyw)m(ords)h(that)h
+(ha)m(v)m(e)g(em)m(b)s(edded)e(commas)h(or)g(newlines.)46
+b(One)33 b(useful)e(tric)m(k)i(is)630 2802 y(to)e(use)f(-e'T)-8
+b(AB',)33 b(where)c(T)-8 b(AB)31 b(is)f(the)g(literal)f(tab)i(c)m
+(haracter.)150 2964 y(`)p Fn(-t)p Fs(')150 3074 y(`)p
+Fn(--struct-type)p Fs(')630 3183 y(Allo)m(ws)f(y)m(ou)i(to)g(include)d
(a)i Fn(struct)f Fs(t)m(yp)s(e)h(declaration)g(for)g(generated)h(co)s
-(de.)44 b(An)m(y)31 b(text)630 2238 y(b)s(efore)43 b(a)i(pair)d(of)i
+(de.)44 b(An)m(y)31 b(text)630 3293 y(b)s(efore)43 b(a)i(pair)d(of)i
(consecutiv)m(e)h(`)p Fn(\045\045)p Fs(')e(is)g(considered)g(part)g(of)
-h(the)g(t)m(yp)s(e)g(declaration.)630 2347 y(Keyw)m(ords)39
+h(the)g(t)m(yp)s(e)g(declaration.)630 3403 y(Keyw)m(ords)39
b(and)g(additional)e(\014elds)h(ma)m(y)j(follo)m(w)d(this,)j(one)f
-(group)f(of)h(\014elds)e(p)s(er)g(line.)630 2457 y(A)31
+(group)f(of)h(\014elds)e(p)s(er)g(line.)630 3512 y(A)31
b(set)g(of)g(examples)f(for)g(generating)h(p)s(erfect)f(hash)g(tables)h
-(and)f(functions)f(for)h(Ada,)h(C,)630 2566 y(C)p Fn(++)p
+(and)f(functions)f(for)h(Ada,)h(C,)630 3622 y(C)p Fn(++)p
Fs(,)24 b(P)m(ascal,)i(Mo)s(dula)c(2,)k(Mo)s(dula)c(3)i(and)f(Ja)m(v)-5
b(aScript)23 b(reserv)m(ed)g(w)m(ords)g(are)h(distributed)630
-2676 y(with)29 b(this)g(release.)150 2927 y Fr(4.2)68
-b(Options)45 b(to)h(sp)t(ecify)f(the)g(Language)h(for)f(the)g(Output)f
-(Co)t(de)150 3140 y Fs(`)p Fn(-L)30 b Fo(generated-language-name)5
-b Fs(')150 3250 y(`)p Fn(--language=)p Fo(generated-language-name)g
-Fs(')630 3359 y(Instructs)33 b Fn(gperf)f Fs(to)i(generate)h(co)s(de)f
-(in)e(the)i(language)g(sp)s(eci\014ed)d(b)m(y)j(the)g(option's)f(ar-)
-630 3469 y(gumen)m(t.)41 b(Languages)31 b(handled)e(are)i(curren)m
-(tly:)630 3624 y(`)p Fn(KR-C)p Fs(')238 b(Old-st)m(yle)25
-b(K&R)h(C.)g(This)e(language)j(is)f(understo)s(o)s(d)e(b)m(y)i(old-st)m
-(yle)g(C)g(com-)1110 3734 y(pilers)c(and)i(ANSI)f(C)h(compilers,)g(but)
-g(ANSI)f(C)h(compilers)f(ma)m(y)h(\015ag)h(w)m(arn-)1110
-3843 y(ings)k(\(or)i(ev)m(en)g(errors\))f(b)s(ecause)h(of)f(lac)m(king)
-g(`)p Fn(const)p Fs('.)630 3999 y(`)p Fn(C)p Fs(')382
-b(Common)23 b(C.)f(This)g(language)h(is)f(understo)s(o)s(d)f(b)m(y)i
-(ANSI)g(C)f(compilers,)i(and)1110 4108 y(also)29 b(b)m(y)f(old-st)m
-(yle)g(C)h(compilers,)e(pro)m(vided)g(that)j(y)m(ou)f
-Fn(#define)f(const)f Fs(to)1110 4218 y(empt)m(y)k(for)f(compilers)f
-(whic)m(h)g(don't)h(kno)m(w)h(ab)s(out)f(this)f(k)m(eyw)m(ord.)630
-4373 y(`)p Fn(ANSI-C)p Fs(')142 b(ANSI)39 b(C.)h(This)d(language)j(is)f
-(understo)s(o)s(d)f(b)m(y)h(ANSI)g(C)h(compilers)e(and)1110
-4482 y(C)p Fn(++)29 b Fs(compilers.)630 4638 y(`)p Fn(C++)p
-Fs(')286 b(C)p Fn(++)p Fs(.)40 b(This)28 b(language)j(is)f(understo)s
-(o)s(d)e(b)m(y)i(C)p Fn(++)g Fs(compilers.)630 4793 y(The)g(default)f
-(is)h(C.)150 4948 y(`)p Fn(-a)p Fs(')334 b(This)32 b(option)h(is)f
-(supp)s(orted)g(for)h(compatibilit)m(y)f(with)g(previous)g(releases)i
-(of)g Fn(gperf)p Fs(.)49 b(It)630 5058 y(do)s(es)30 b(not)h(do)f(an)m
-(ything.)150 5213 y(`)p Fn(-g)p Fs(')334 b(This)32 b(option)h(is)f
+3731 y(with)29 b(this)g(release.)150 3894 y(`)p Fn(--ignore-case)p
+Fs(')630 4003 y(Consider)42 b(upp)s(er)g(and)i(lo)m(w)m(er)g(case)h
+(ASCI)s(I)e(c)m(haracters)i(as)f(equiv)-5 b(alen)m(t.)81
+b(The)44 b(string)630 4113 y(comparison)27 b(will)f(use)i(a)h(case)g
+(insigni\014can)m(t)d(c)m(haracter)k(comparison.)39 b(Note)29
+b(that)g(lo)s(cale)630 4222 y(dep)s(enden)m(t)e(case)i(mappings)e(are)h
+(ignored.)39 b(This)27 b(option)g(is)h(therefore)g(not)h(suitable)d(if)
+i(a)630 4332 y(prop)s(erly)k(in)m(ternationalized)h(or)h(lo)s(cale)g(a)
+m(w)m(are)i(case)f(mapping)e(should)f(b)s(e)i(used.)52
+b(\(F)-8 b(or)630 4442 y(example,)30 b(in)e(a)h(T)-8
+b(urkish)28 b(lo)s(cale,)h(the)h(upp)s(er)d(case)k(equiv)-5
+b(alen)m(t)28 b(of)i(the)g(lo)m(w)m(ercase)g(ASCI)s(I)630
+4551 y(letter)41 b(`)p Fn(i)p Fs(')h(is)e(the)h(non-ASCI)s(I)e(c)m
+(haracter)k(`)p Fn(capital)29 b(i)h(with)f(dot)g(above)p
+Fs('.\))72 b(F)-8 b(or)42 b(this)630 4661 y(case,)d(it)c(is)g(b)s
+(etter)i(to)f(apply)f(an)h(upp)s(ercase)f(or)h(lo)m(w)m(ercase)h(con)m
+(v)m(ersion)g(on)f(the)g(string)630 4770 y(b)s(efore)30
+b(passing)f(it)h(to)h(the)g Fn(gperf)e Fs(generated)i(function.)150
+5035 y Fr(4.3)68 b(Options)45 b(to)h(sp)t(ecify)f(the)g(Language)h(for)
+f(the)g(Output)f(Co)t(de)275 5230 y Fs(These)e(options)g(are)h(also)f
+(a)m(v)-5 b(ailable)42 b(as)h(declarations)f(in)f(the)i(input)e(\014le)
+g(\(see)j(Section)e(3.1.1.2)150 5340 y([Gp)s(erf)30 b(Declarations],)h
+(page)g(12\).)p eop
+%%Page: 20 22
+20 21 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
+b Fn(gperf)2433 b Fs(20)150 299 y(`)p Fn(-L)30 b Fo
+(generated-language-name)5 b Fs(')150 408 y(`)p Fn(--language=)p
+Fo(generated-language-name)g Fs(')630 518 y(Instructs)33
+b Fn(gperf)f Fs(to)i(generate)h(co)s(de)f(in)e(the)i(language)g(sp)s
+(eci\014ed)d(b)m(y)j(the)g(option's)f(ar-)630 628 y(gumen)m(t.)41
+b(Languages)31 b(handled)e(are)i(curren)m(tly:)630 798
+y(`)p Fn(KR-C)p Fs(')238 b(Old-st)m(yle)25 b(K&R)h(C.)g(This)e
+(language)j(is)f(understo)s(o)s(d)e(b)m(y)i(old-st)m(yle)g(C)g(com-)
+1110 907 y(pilers)c(and)i(ANSI)f(C)h(compilers,)g(but)g(ANSI)f(C)h
+(compilers)f(ma)m(y)h(\015ag)h(w)m(arn-)1110 1017 y(ings)k(\(or)i(ev)m
+(en)g(errors\))f(b)s(ecause)h(of)f(lac)m(king)g(`)p Fn(const)p
+Fs('.)630 1187 y(`)p Fn(C)p Fs(')382 b(Common)23 b(C.)f(This)g
+(language)h(is)f(understo)s(o)s(d)f(b)m(y)i(ANSI)g(C)f(compilers,)i
+(and)1110 1296 y(also)29 b(b)m(y)f(old-st)m(yle)g(C)h(compilers,)e(pro)
+m(vided)g(that)j(y)m(ou)f Fn(#define)f(const)f Fs(to)1110
+1406 y(empt)m(y)k(for)f(compilers)f(whic)m(h)g(don't)h(kno)m(w)h(ab)s
+(out)f(this)f(k)m(eyw)m(ord.)630 1576 y(`)p Fn(ANSI-C)p
+Fs(')142 b(ANSI)39 b(C.)h(This)d(language)j(is)f(understo)s(o)s(d)f(b)m
+(y)h(ANSI)g(C)h(compilers)e(and)1110 1685 y(C)p Fn(++)29
+b Fs(compilers.)630 1855 y(`)p Fn(C++)p Fs(')286 b(C)p
+Fn(++)p Fs(.)40 b(This)28 b(language)j(is)f(understo)s(o)s(d)e(b)m(y)i
+(C)p Fn(++)g Fs(compilers.)630 2025 y(The)g(default)f(is)h(C.)150
+2195 y(`)p Fn(-a)p Fs(')334 b(This)32 b(option)h(is)f(supp)s(orted)g
+(for)h(compatibilit)m(y)f(with)g(previous)g(releases)i(of)g
+Fn(gperf)p Fs(.)49 b(It)630 2305 y(do)s(es)30 b(not)h(do)f(an)m
+(ything.)150 2475 y(`)p Fn(-g)p Fs(')334 b(This)32 b(option)h(is)f
(supp)s(orted)g(for)h(compatibilit)m(y)f(with)g(previous)g(releases)i
-(of)g Fn(gperf)p Fs(.)49 b(It)630 5322 y(do)s(es)30 b(not)h(do)f(an)m
-(ything.)p eop
-%%Page: 16 18
-16 17 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
-b Fn(gperf)2433 b Fs(16)150 299 y Fr(4.3)68 b(Options)45
-b(for)g(\014ne)g(tuning)g(Details)i(in)e(the)g(Output)f(Co)t(de)150
-588 y Fs(`)p Fn(-K)30 b Fo(k)m(ey-name)5 b Fs(')150 698
-y(`)p Fn(--slot-name=)p Fo(k)m(ey-name)g Fs(')630 808
-y(This)37 b(option)i(is)f(only)g(useful)f(when)h(option)h(`)p
-Fn(-t)p Fs(')g(has)g(b)s(een)f(giv)m(en.)67 b(By)39 b(default,)i(the)
-630 917 y(program)30 b(assumes)g(the)h(structure)f(comp)s(onen)m(t)h
-(iden)m(ti\014er)d(for)i(the)h(k)m(eyw)m(ord)g(is)e(`)p
-Fn(name)p Fs('.)630 1027 y(This)23 b(option)g(allo)m(ws)h(an)g
-(arbitrary)g(c)m(hoice)h(of)f(iden)m(ti\014er)f(for)h(this)f(comp)s
-(onen)m(t,)k(although)630 1136 y(it)j(still)e(m)m(ust)i(o)s(ccur)h(as)f
-(the)h(\014rst)e(\014eld)g(in)g(y)m(our)i(supplied)c
-Fn(struct)p Fs(.)150 1344 y(`)p Fn(-F)j Fo(initializers)t
-Fs(')150 1453 y(`)p Fn(--initializer-suffix=)p Fo(in)o(iti)o(ali)o
-(zers)t Fs(')630 1563 y(This)23 b(option)g(is)h(only)f(useful)g(when)g
-(option)h(`)p Fn(-t)p Fs(')h(has)f(b)s(een)f(giv)m(en.)39
-b(It)25 b(p)s(ermits)d(to)j(sp)s(ecify)630 1673 y(initializers)k(for)j
-(the)h(structure)e(mem)m(b)s(ers)h(follo)m(wing)e Fo(k)m(ey)k(name)j
-Fs(in)31 b(empt)m(y)i(hash)e(table)630 1782 y(en)m(tries.)73
-b(The)40 b(list)g(of)h(initializers)d(should)h(start)j(with)d(a)j
-(comma.)73 b(By)42 b(default,)h(the)630 1892 y(emitted)30
-b(co)s(de)h(will)d(zero-initialize)h(structure)g(mem)m(b)s(ers)h(follo)
-m(wing)f Fo(k)m(ey)i(name)p Fs(.)150 2099 y(`)p Fn(-H)f
-Fo(hash-function-name)5 b Fs(')150 2209 y(`)p Fn(--hash-fn-name=)p
-Fo(hash-function-name)g Fs(')630 2318 y(Allo)m(ws)29
-b(y)m(ou)h(to)g(sp)s(ecify)f(the)h(name)g(for)f(the)h(generated)h(hash)
-e(function.)39 b(Default)30 b(name)630 2428 y(is)f(`)p
-Fn(hash)p Fs('.)40 b(This)29 b(option)h(p)s(ermits)e(the)j(use)f(of)h
-(t)m(w)m(o)g(hash)f(tables)g(in)f(the)i(same)g(\014le.)150
-2635 y(`)p Fn(-N)f Fo(lo)s(okup-function-name)5 b Fs(')150
-2745 y(`)p Fn(--lookup-fn-name=)p Fo(lo)s(okup-fun)o(ction-name)g
-Fs(')630 2855 y(Allo)m(ws)41 b(y)m(ou)h(to)h(sp)s(ecify)d(the)j(name)f
-(for)f(the)h(generated)h(lo)s(okup)e(function.)74 b(Default)630
-2964 y(name)33 b(is)e(`)p Fn(in_word_set)p Fs('.)45 b(This)31
-b(option)h(p)s(ermits)f(completely)h(automatic)i(generation)630
-3074 y(of)24 b(p)s(erfect)h(hash)e(functions,)h(esp)s(ecially)f(when)g
-(m)m(ultiple)f(generated)j(hash)f(functions)f(are)630
-3183 y(used)30 b(in)f(the)h(same)h(application.)150 3391
-y(`)p Fn(-Z)f Fo(class-name)5 b Fs(')150 3500 y(`)p Fn(--class-name=)p
-Fo(class-name)g Fs(')630 3610 y(This)32 b(option)h(is)f(only)h(useful)f
-(when)h(option)g(`)p Fn(-L)d(C++)p Fs(')i(has)i(b)s(een)f(giv)m(en.)50
-b(It)34 b(allo)m(ws)f(y)m(ou)630 3720 y(to)e(sp)s(ecify)e(the)i(name)f
-(of)h(generated)g(C)p Fn(++)e Fs(class.)41 b(Default)30
-b(name)h(is)e Fn(Perfect_Hash)p Fs(.)150 3927 y(`)p Fn(-7)p
-Fs(')150 4037 y(`)p Fn(--seven-bit)p Fs(')630 4146 y(This)35
-b(option)i(sp)s(eci\014es)f(that)h(all)f(strings)g(that)i(will)c(b)s(e)
-j(passed)f(as)i(argumen)m(ts)f(to)h(the)630 4256 y(generated)e(hash)e
-(function)f(and)i(the)g(generated)g(lo)s(okup)f(function)f(will)f
-(solely)i(consist)630 4365 y(of)26 b(7-bit)f(ASCI)s(I)f(c)m(haracters)i
-(\(c)m(haracters)i(in)c(the)h(range)h(0..127\).)42 b(\(Note)27
-b(that)f(the)f(ANSI)630 4475 y(C)30 b(functions)f Fn(isalnum)g
-Fs(and)h Fn(isgraph)e Fs(do)j Fl(not)40 b Fs(guaran)m(tee)32
-b(that)f(a)g(c)m(haracter)h(is)e(in)f(this)630 4585 y(range.)44
-b(Only)30 b(an)h(explicit)f(test)i(lik)m(e)e(`)p Fn(c)h(>=)e('A')h(&&)g
-(c)g(<=)f('Z')p Fs(')i(guaran)m(tees)i(this.\))43 b(This)630
-4694 y(w)m(as)g(the)f(default)g(in)f(v)m(ersions)h(of)g
-Fn(gperf)f Fs(earlier)g(than)i(2.7;)49 b(no)m(w)43 b(the)f(default)g
-(is)f(to)630 4804 y(assume)30 b(8-bit)g(c)m(haracters.)150
-5011 y(`)p Fn(-c)p Fs(')150 5121 y(`)p Fn(--compare-strncmp)p
-Fs(')630 5230 y(Generates)22 b(C)f(co)s(de)g(that)h(uses)e(the)i
+(of)g Fn(gperf)p Fs(.)49 b(It)630 2584 y(do)s(es)30 b(not)h(do)f(an)m
+(ything.)150 2868 y Fr(4.4)68 b(Options)45 b(for)g(\014ne)g(tuning)g
+(Details)i(in)e(the)g(Output)f(Co)t(de)275 3071 y Fs(Most)21
+b(of)g(these)g(options)f(are)h(also)g(a)m(v)-5 b(ailable)20
+b(as)h(declarations)f(in)g(the)h(input)d(\014le)i(\(see)i(Section)e
+(3.1.1.2)150 3181 y([Gp)s(erf)30 b(Declarations],)h(page)g(12\).)150
+3356 y(`)p Fn(-K)f Fo(slot-name)5 b Fs(')150 3466 y(`)p
+Fn(--slot-name=)p Fo(slot-name)g Fs(')630 3575 y(This)20
+b(option)h(is)g(only)f(useful)g(when)h(option)g(`)p Fn(-t)p
+Fs(')g(\(or,)j(equiv)-5 b(alen)m(tly)d(,)23 b(the)f(`)p
+Fn(\045struct-type)p Fs(')630 3685 y(declaration\))39
+b(has)g(b)s(een)f(giv)m(en.)66 b(By)39 b(default,)i(the)e(program)g
+(assumes)f(the)h(structure)630 3795 y(comp)s(onen)m(t)28
+b(iden)m(ti\014er)f(for)h(the)g(k)m(eyw)m(ord)g(is)g(`)p
+Fn(name)p Fs('.)39 b(This)26 b(option)i(allo)m(ws)f(an)h(arbitrary)630
+3904 y(c)m(hoice)k(of)g(iden)m(ti\014er)e(for)h(this)g(comp)s(onen)m
+(t,)h(although)f(it)g(still)e(m)m(ust)j(o)s(ccur)f(as)h(the)g(\014rst)
+630 4014 y(\014eld)d(in)g(y)m(our)h(supplied)d Fn(struct)p
+Fs(.)150 4184 y(`)p Fn(-F)j Fo(initializers)t Fs(')150
+4293 y(`)p Fn(--initializer-suffix=)p Fo(in)o(iti)o(ali)o(zers)t
+Fs(')630 4403 y(This)20 b(option)h(is)g(only)f(useful)g(when)h(option)g
+(`)p Fn(-t)p Fs(')g(\(or,)j(equiv)-5 b(alen)m(tly)d(,)23
+b(the)f(`)p Fn(\045struct-type)p Fs(')630 4512 y(declaration\))32
+b(has)h(b)s(een)e(giv)m(en.)48 b(It)32 b(p)s(ermits)f(to)i(sp)s(ecify)e
+(initializers)e(for)k(the)f(structure)630 4622 y(mem)m(b)s(ers)23
+b(follo)m(wing)f Fo(slot-name)29 b Fs(in)22 b(empt)m(y)i(hash)f(table)g
+(en)m(tries.)38 b(The)23 b(list)f(of)i(initializers)630
+4732 y(should)36 b(start)j(with)f(a)g(comma.)66 b(By)39
+b(default,)h(the)f(emitted)f(co)s(de)h(will)c(zero-initialize)630
+4841 y(structure)30 b(mem)m(b)s(ers)f(follo)m(wing)g
+Fo(slot-name)p Fs(.)150 5011 y(`)p Fn(-H)h Fo(hash-function-name)5
+b Fs(')150 5121 y(`)p Fn(--hash-function-name=)p Fo(hash-fu)o
+(nction-name)g Fs(')630 5230 y(Allo)m(ws)29 b(y)m(ou)h(to)g(sp)s(ecify)
+f(the)h(name)g(for)f(the)h(generated)h(hash)e(function.)39
+b(Default)30 b(name)630 5340 y(is)f(`)p Fn(hash)p Fs('.)40
+b(This)29 b(option)h(p)s(ermits)e(the)j(use)f(of)h(t)m(w)m(o)g(hash)f
+(tables)g(in)f(the)i(same)g(\014le.)p eop
+%%Page: 21 23
+21 22 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
+b Fn(gperf)2433 b Fs(21)150 299 y(`)p Fn(-N)30 b Fo(lo)s
+(okup-function-name)5 b Fs(')150 408 y(`)p Fn(--lookup-function-name=)p
+Fo(l)o(o)s(okup-fu)o(nction-name)g Fs(')630 518 y(Allo)m(ws)41
+b(y)m(ou)h(to)h(sp)s(ecify)d(the)j(name)f(for)f(the)h(generated)h(lo)s
+(okup)e(function.)74 b(Default)630 628 y(name)28 b(is)f(`)p
+Fn(in_word_set)p Fs('.)37 b(This)26 b(option)h(p)s(ermits)f(m)m
+(ultiple)g(generated)i(hash)f(functions)630 737 y(to)k(b)s(e)f(used)f
+(in)g(the)i(same)g(application.)150 938 y(`)p Fn(-Z)f
+Fo(class-name)5 b Fs(')150 1048 y(`)p Fn(--class-name=)p
+Fo(class-name)g Fs(')630 1157 y(This)65 b(option)i(is)f(only)h(useful)e
+(when)i(option)f(`)p Fn(-L)30 b(C++)p Fs(')67 b(\(or,)77
+b(equiv)-5 b(alen)m(tly)d(,)76 b(the)630 1267 y(`)p Fn
+(\045language=C++)p Fs(')43 b(declaration\))i(has)h(b)s(een)f(giv)m
+(en.)87 b(It)46 b(allo)m(ws)f(y)m(ou)h(to)g(sp)s(ecify)f(the)630
+1377 y(name)30 b(of)h(generated)g(C)p Fn(++)f Fs(class.)40
+b(Default)31 b(name)f(is)g Fn(Perfect_Hash)p Fs(.)150
+1577 y(`)p Fn(-7)p Fs(')150 1687 y(`)p Fn(--seven-bit)p
+Fs(')630 1797 y(This)35 b(option)i(sp)s(eci\014es)f(that)h(all)f
+(strings)g(that)i(will)c(b)s(e)j(passed)f(as)i(argumen)m(ts)f(to)h(the)
+630 1906 y(generated)e(hash)e(function)f(and)i(the)g(generated)g(lo)s
+(okup)f(function)f(will)f(solely)i(consist)630 2016 y(of)f(7-bit)g
+(ASCI)s(I)f(c)m(haracters)j(\(b)m(ytes)f(in)e(the)h(range)h(0..127\).)
+51 b(\(Note)35 b(that)f(the)g(ANSI)e(C)630 2125 y(functions)e
+Fn(isalnum)g Fs(and)i Fn(isgraph)e Fs(do)i Fl(not)41
+b Fs(guaran)m(tee)33 b(that)g(a)f(b)m(yte)h(is)e(in)f(this)h(range.)630
+2235 y(Only)25 b(an)h(explicit)f(test)j(lik)m(e)d(`)p
+Fn(c)31 b(>=)f('A')f(&&)h(c)g(<=)g('Z')p Fs(')25 b(guaran)m(tees)j
+(this.\))39 b(This)25 b(w)m(as)i(the)630 2345 y(default)f(in)g(v)m
+(ersions)g(of)h Fn(gperf)e Fs(earlier)h(than)g(2.7;)k(no)m(w)d(the)g
+(default)f(is)f(to)j(supp)s(ort)d(8-bit)630 2454 y(and)30
+b(m)m(ultib)m(yte)f(c)m(haracters.)150 2655 y(`)p Fn(-l)p
+Fs(')150 2765 y(`)p Fn(--compare-lengths)p Fs(')630 2874
+y(Compare)40 b(k)m(eyw)m(ord)g(lengths)f(b)s(efore)g(trying)g(a)i
+(string)d(comparison.)69 b(This)38 b(option)h(is)630
+2984 y(mandatory)32 b(for)h(binary)d(comparisons)i(\(see)h(Section)g
+(3.3)g([Binary)f(Strings],)g(page)h(18\).)630 3093 y(It)g(also)g(migh)m
+(t)g(cut)g(do)m(wn)f(on)h(the)g(n)m(um)m(b)s(er)f(of)h(string)f
+(comparisons)g(made)h(during)e(the)630 3203 y(lo)s(okup,)i(since)g(k)m
+(eyw)m(ords)g(with)f(di\013eren)m(t)h(lengths)g(are)g(nev)m(er)h
+(compared)f(via)g Fn(strcmp)p Fs(.)630 3313 y(Ho)m(w)m(ev)m(er,)k
+(using)32 b(`)p Fn(-l)p Fs(')h(migh)m(t)g(greatly)h(increase)g(the)g
+(size)f(of)h(the)f(generated)i(C)e(co)s(de)h(if)630 3422
+y(the)k(lo)s(okup)f(table)g(range)i(is)e(large)h(\(whic)m(h)f(implies)e
+(that)j(the)g(switc)m(h)g(option)f(`)p Fn(-S)p Fs(')h(or)630
+3532 y(`)p Fn(\045switch)p Fs(')29 b(is)h(not)h(enabled\),)g(since)f
+(the)h(length)f(table)h(con)m(tains)g(as)g(man)m(y)g(elemen)m(ts)g(as)
+630 3641 y(there)g(are)f(en)m(tries)h(in)e(the)h(lo)s(okup)f(table.)150
+3842 y(`)p Fn(-c)p Fs(')150 3952 y(`)p Fn(--compare-strncmp)p
+Fs(')630 4061 y(Generates)22 b(C)f(co)s(de)g(that)h(uses)e(the)i
Fn(strncmp)d Fs(function)g(to)j(p)s(erform)e(string)g(comparisons.)630
-5340 y(The)30 b(default)f(action)i(is)f(to)h(use)f Fn(strcmp)p
-Fs(.)p eop
-%%Page: 17 19
-17 18 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
-b Fn(gperf)2433 b Fs(17)150 299 y(`)p Fn(-C)p Fs(')150
-408 y(`)p Fn(--readonly-tables)p Fs(')630 518 y(Mak)m(es)41
-b(the)f(con)m(ten)m(ts)h(of)f(all)f(generated)h(lo)s(okup)e(tables)i
-(constan)m(t,)j(i.e.,)g(\\readonly".)630 628 y(Man)m(y)31
-b(compilers)e(can)i(generate)h(more)e(e\016cien)m(t)h(co)s(de)g(for)f
-(this)g(b)m(y)g(putting)f(the)i(tables)630 737 y(in)e(readonly)h
-(memory)-8 b(.)150 916 y(`)p Fn(-E)p Fs(')150 1026 y(`)p
-Fn(--enum)p Fs(')142 b(De\014ne)31 b(constan)m(t)g(v)-5
-b(alues)30 b(using)f(an)h(en)m(um)g(lo)s(cal)g(to)h(the)g(lo)s(okup)e
-(function)g(rather)h(than)630 1135 y(with)36 b(#de\014nes.)60
-b(This)35 b(also)i(means)h(that)f(di\013eren)m(t)g(lo)s(okup)f
-(functions)g(can)h(reside)f(in)630 1245 y(the)31 b(same)f(\014le.)40
-b(Thanks)29 b(to)j(James)e(Clark)f Fn(<jjc@ai.mit.edu>)p
-Fs(.)150 1424 y(`)p Fn(-I)p Fs(')150 1534 y(`)p Fn(--includes)p
-Fs(')630 1643 y(Include)g(the)i(necessary)h(system)f(include)e(\014le,)
-h Fn(<string.h>)p Fs(,)f(at)i(the)g(b)s(eginning)e(of)i(the)630
-1753 y(co)s(de.)39 b(By)27 b(default,)f(this)f(is)g(not)h(done;)i(the)e
-(user)f(m)m(ust)h(include)e(this)g(header)i(\014le)f(himself)630
-1862 y(to)31 b(allo)m(w)f(compilation)f(of)h(the)h(co)s(de.)150
-2041 y(`)p Fn(-G)p Fs(')150 2151 y(`)p Fn(--global)p
-Fs(')630 2260 y(Generate)38 b(the)f(static)g(table)f(of)h(k)m(eyw)m
+4171 y(The)30 b(default)f(action)i(is)f(to)h(use)f Fn(strcmp)p
+Fs(.)150 4372 y(`)p Fn(-C)p Fs(')150 4482 y(`)p Fn(--readonly-tables)p
+Fs(')630 4591 y(Mak)m(es)41 b(the)f(con)m(ten)m(ts)h(of)f(all)f
+(generated)h(lo)s(okup)e(tables)i(constan)m(t,)j(i.e.,)g(\\readonly".)
+630 4701 y(Man)m(y)31 b(compilers)e(can)i(generate)h(more)e(e\016cien)m
+(t)h(co)s(de)g(for)f(this)g(b)m(y)g(putting)f(the)i(tables)630
+4810 y(in)e(readonly)h(memory)-8 b(.)150 5011 y(`)p Fn(-E)p
+Fs(')150 5121 y(`)p Fn(--enum)p Fs(')142 b(De\014ne)31
+b(constan)m(t)g(v)-5 b(alues)30 b(using)f(an)h(en)m(um)g(lo)s(cal)g(to)
+h(the)g(lo)s(okup)e(function)g(rather)h(than)630 5230
+y(with)36 b(#de\014nes.)60 b(This)35 b(also)i(means)h(that)f
+(di\013eren)m(t)g(lo)s(okup)f(functions)g(can)h(reside)f(in)630
+5340 y(the)31 b(same)f(\014le.)40 b(Thanks)29 b(to)j(James)e(Clark)f
+Fn(<jjc@ai.mit.edu>)p Fs(.)p eop
+%%Page: 22 24
+22 23 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
+b Fn(gperf)2433 b Fs(22)150 299 y(`)p Fn(-I)p Fs(')150
+408 y(`)p Fn(--includes)p Fs(')630 518 y(Include)29 b(the)i(necessary)h
+(system)f(include)e(\014le,)h Fn(<string.h>)p Fs(,)f(at)i(the)g(b)s
+(eginning)e(of)i(the)630 628 y(co)s(de.)39 b(By)27 b(default,)f(this)f
+(is)g(not)h(done;)i(the)e(user)f(m)m(ust)h(include)e(this)g(header)i
+(\014le)f(himself)630 737 y(to)31 b(allo)m(w)f(compilation)f(of)h(the)h
+(co)s(de.)150 883 y(`)p Fn(-G)p Fs(')150 993 y(`)p Fn(--global-table)p
+Fs(')630 1103 y(Generate)38 b(the)f(static)g(table)f(of)h(k)m(eyw)m
(ords)g(as)g(a)g(static)g(global)f(v)-5 b(ariable,)37
-b(rather)f(than)630 2370 y(hiding)28 b(it)i(inside)e(of)i(the)h(lo)s
+b(rather)f(than)630 1212 y(hiding)28 b(it)i(inside)e(of)i(the)h(lo)s
(okup)e(function)g(\(whic)m(h)g(is)h(the)g(default)g(b)s(eha)m(vior\).)
-150 2549 y(`)p Fn(-W)g Fo(hash-table-arra)m(y-name)5
-b Fs(')150 2659 y(`)p Fn(--word-array-name=)p Fo(hash-table-arra)m
-(y-name)g Fs(')630 2768 y(Allo)m(ws)39 b(y)m(ou)h(to)h(sp)s(ecify)e
+150 1358 y(`)p Fn(-P)p Fs(')150 1468 y(`)p Fn(--pic)p
+Fs(')190 b(Optimize)40 b(the)h(generated)h(table)f(for)g(inclusion)d
+(in)i(shared)g(libraries.)70 b(This)39 b(reduces)630
+1577 y(the)c(startup)g(time)g(of)g(programs)g(using)f(a)i(shared)e
+(library)f(con)m(taining)i(the)g(generated)630 1687 y(co)s(de.)j(If)21
+b(the)h(option)g(`)p Fn(-t)p Fs(')f(\(or,)k(equiv)-5
+b(alen)m(tly)d(,)22 b(the)g(`)p Fn(\045struct-type)p
+Fs(')d(declaration\))j(is)f(also)630 1797 y(giv)m(en,)31
+b(the)g(\014rst)e(\014eld)h(of)g(the)h(user-de\014ned)e(struct)i(m)m
+(ust)f(b)s(e)g(of)h(t)m(yp)s(e)g(`)p Fn(int)p Fs(',)f(not)h(`)p
+Fn(char)630 1906 y(*)p Fs(',)h(b)s(ecause)f(it)h(will)c(con)m(tain)k
+(o\013sets)h(in)m(to)e(the)h(string)e(p)s(o)s(ol)h(instead)f(of)i
+(actual)g(strings.)630 2016 y(T)-8 b(o)33 b(con)m(v)m(ert)h(suc)m(h)f
+(an)f(o\013set)i(to)f(a)g(string,)g(y)m(ou)g(can)g(use)f(the)h
+(expression)e(`)p Fn(stringpool)630 2125 y(+)f Fo(o)5
+b Fs(',)34 b(where)f Fo(o)38 b Fs(is)32 b(the)h(o\013set.)50
+b(The)32 b(string)g(p)s(o)s(ol)g(name)h(can)g(b)s(e)g(c)m(hanged)g
+(through)g(the)630 2235 y(option)d(`)p Fn(--string-pool-name)p
+Fs('.)150 2381 y(`)p Fn(-Q)g Fo(string-p)s(o)s(ol-name)5
+b Fs(')150 2491 y(`)p Fn(--string-pool-name=)p Fo(string-p)r(o)s
+(ol-name)g Fs(')630 2600 y(Allo)m(ws)30 b(y)m(ou)i(to)g(sp)s(ecify)e
+(the)h(name)h(of)f(the)h(generated)g(string)e(p)s(o)s(ol)g(created)i(b)
+m(y)f(option)630 2710 y(`)p Fn(-P)p Fs('.)38 b(The)21
+b(default)f(name)i(is)e(`)p Fn(stringpool)p Fs('.)36
+b(This)19 b(option)i(p)s(ermits)f(the)h(use)g(of)h(t)m(w)m(o)h(hash)630
+2819 y(tables)h(in)e(the)i(same)g(\014le,)h(with)d(`)p
+Fn(-P)p Fs(')i(and)f(ev)m(en)h(when)f(the)h(option)f(`)p
+Fn(-G)p Fs(')h(\(or,)i(equiv)-5 b(alen)m(tly)d(,)630
+2929 y(the)31 b(`)p Fn(\045global-table)p Fs(')c(declaration\))j(is)g
+(giv)m(en.)150 3075 y(`)p Fn(--null-strings)p Fs(')630
+3185 y(Use)39 b(NULL)g(strings)e(instead)i(of)f(empt)m(y)i(strings)d
+(for)i(empt)m(y)g(k)m(eyw)m(ord)g(table)g(en)m(tries.)630
+3294 y(This)e(reduces)h(the)h(startup)g(time)f(of)h(programs)g(using)e
+(a)i(shared)f(library)e(con)m(taining)630 3404 y(the)41
+b(generated)g(co)s(de)g(\(but)f(not)h(as)f(m)m(uc)m(h)h(as)g(option)f
+(`)p Fn(-P)p Fs('\),)j(at)e(the)g(exp)s(ense)f(of)h(one)630
+3513 y(more)31 b(test-and-branc)m(h)f(instruction)f(at)i(run)e(time.)
+150 3660 y(`)p Fn(-W)h Fo(hash-table-arra)m(y-name)5
+b Fs(')150 3769 y(`)p Fn(--word-array-name=)p Fo(hash-table-arra)m
+(y-name)g Fs(')630 3879 y(Allo)m(ws)39 b(y)m(ou)h(to)h(sp)s(ecify)e
(the)h(name)g(for)f(the)i(generated)g(arra)m(y)f(con)m(taining)g(the)g
-(hash)630 2878 y(table.)61 b(Default)37 b(name)g(is)f(`)p
-Fn(wordlist)p Fs('.)60 b(This)35 b(option)i(p)s(ermits)e(the)i(use)g
-(of)g(t)m(w)m(o)i(hash)630 2987 y(tables)30 b(in)f(the)i(same)g
-(\014le,)e(ev)m(en)i(when)f(the)g(option)g(`)p Fn(-G)p
-Fs(')g(is)g(giv)m(en.)150 3166 y(`)p Fn(-S)g Fo(total-switc)m
-(h-statemen)m(ts)t Fs(')150 3276 y(`)p Fn(--switch=)p
-Fo(total-switc)m(h-statemen)m(ts)t Fs(')630 3386 y(Causes)35
-b(the)h(generated)h(C)e(co)s(de)h(to)h(use)e(a)h Fn(switch)e
-Fs(statemen)m(t)k(sc)m(heme,)g(rather)d(than)630 3495
-y(an)j(arra)m(y)g(lo)s(okup)f(table.)63 b(This)36 b(can)i(lead)g(to)g
-(a)h(reduction)e(in)f(b)s(oth)h(time)h(and)f(space)630
-3605 y(requiremen)m(ts)f(for)g(some)h(k)m(ey\014les.)60
-b(The)36 b(argumen)m(t)h(to)h(this)d(option)h(determines)g(ho)m(w)630
-3714 y(man)m(y)c Fn(switch)f Fs(statemen)m(ts)j(are)e(generated.)47
-b(A)32 b(v)-5 b(alue)32 b(of)g(1)h(generates)g(1)g Fn(switch)d
-Fs(con-)630 3824 y(taining)h(all)h(the)h(elemen)m(ts,)g(a)g(v)-5
-b(alue)32 b(of)h(2)g(generates)h(2)f(tables)g(with)e(1/2)j(the)f
-(elemen)m(ts)630 3933 y(in)k(eac)m(h)i Fn(switch)p Fs(,)g(etc.)65
-b(This)36 b(is)h(useful)g(since)g(man)m(y)i(C)e(compilers)g(cannot)i
-(correctly)630 4043 y(generate)29 b(co)s(de)f(for)f(large)g
-Fn(switch)f Fs(statemen)m(ts.)41 b(This)26 b(option)h(w)m(as)h
-(inspired)c(in)i(part)h(b)m(y)630 4153 y(Keith)j(Bostic's)h(original)d
-(C)i(program.)150 4332 y(`)p Fn(-T)p Fs(')150 4441 y(`)p
-Fn(--omit-struct-type)p Fs(')630 4551 y(Prev)m(en)m(ts)f(the)e
-(transfer)h(of)f(the)h(t)m(yp)s(e)g(declaration)f(to)i(the)f(output)f
-(\014le.)39 b(Use)28 b(this)e(option)630 4660 y(if)j(the)i(t)m(yp)s(e)f
-(is)g(already)g(de\014ned)f(elsewhere.)150 4839 y(`)p
-Fn(-p)p Fs(')334 b(This)32 b(option)h(is)f(supp)s(orted)g(for)h
-(compatibilit)m(y)f(with)g(previous)g(releases)i(of)g
-Fn(gperf)p Fs(.)49 b(It)630 4949 y(do)s(es)30 b(not)h(do)f(an)m
-(ything.)150 5255 y Fr(4.4)68 b(Options)45 b(for)g(c)l(hanging)h(the)f
-(Algorithms)h(emplo)l(y)l(ed)g(b)l(y)f Fk(gperf)p eop
-%%Page: 18 20
-18 19 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
-b Fn(gperf)2433 b Fs(18)150 299 y(`)p Fn(-k)30 b Fo(k)m(eys)t
-Fs(')150 408 y(`)p Fn(--key-positions=)p Fo(k)m(eys)t
-Fs(')630 518 y(Allo)m(ws)25 b(selection)i(of)f(the)h(c)m(haracter)h(k)m
-(ey)f(p)s(ositions)d(used)h(in)g(the)i(k)m(eyw)m(ords')g(hash)f(func-)
-630 628 y(tion.)51 b(The)33 b(allo)m(w)m(able)g(c)m(hoices)i(range)f(b)
-s(et)m(w)m(een)h(1-126,)i(inclusiv)m(e.)48 b(The)34 b(p)s(ositions)e
-(are)630 737 y(separated)d(b)m(y)f(commas,)i(e.g.,)g(`)p
-Fn(-k)g(9,4,13,14)p Fs(';)d(ranges)i(ma)m(y)g(b)s(e)f(used,)g(e.g.,)i
-(`)p Fn(-k)g(2-7)p Fs(';)630 847 y(and)41 b(p)s(ositions)f(ma)m(y)i(o)s
-(ccur)f(in)g(an)m(y)h(order.)74 b(F)-8 b(urthermore,)45
-b(the)c(meta-c)m(haracter)k('*')630 956 y(causes)35 b(the)h(generated)g
-(hash)e(function)g(to)i(consider)e Fe(all)h Fs(c)m(haracter)i(p)s
-(ositions)c(in)h(eac)m(h)630 1066 y(k)m(ey)-8 b(,)28
-b(whereas)e('$')h(instructs)e(the)h(hash)f(function)g(to)i(use)e(the)h
-(\\\014nal)g(c)m(haracter")i(of)e(a)g(k)m(ey)630 1176
-y(\(this)g(is)g(the)h(only)f(w)m(a)m(y)i(to)g(use)e(a)h(c)m(haracter)i
-(p)s(osition)c(greater)j(than)f(126,)i(inciden)m(tally\).)630
-1346 y(F)-8 b(or)37 b(instance,)g(the)f(option)g(`)p
-Fn(-k)30 b(1,2,4,6-10,'$')p Fs(')i(generates)38 b(a)e(hash)g(function)e
-(that)630 1456 y(considers)g(p)s(ositions)f(1,2,4,6,7,8,9,10,)42
-b(plus)33 b(the)i(last)g(c)m(haracter)i(in)d(eac)m(h)i(k)m(ey)g(\(whic)
-m(h)630 1565 y(ma)m(y)24 b(di\013er)e(for)h(eac)m(h)i(k)m(ey)-8
-b(,)26 b(ob)m(viously\).)38 b(Keys)23 b(with)f(length)h(less)f(than)i
-(the)f(indicated)f(k)m(ey)630 1675 y(p)s(ositions)33
-b(w)m(ork)i(prop)s(erly)-8 b(,)34 b(since)g(selected)i(k)m(ey)f(p)s
-(ositions)e(exceeding)i(the)g(k)m(ey)h(length)630 1784
-y(are)31 b(simply)d(not)i(referenced)h(in)e(the)h(hash)g(function.)150
-2016 y(`)p Fn(-l)p Fs(')150 2125 y(`)p Fn(--compare-strlen)p
-Fs(')630 2235 y(Compare)i(k)m(ey)h(lengths)f(b)s(efore)g(trying)f(a)i
-(string)e(comparison.)46 b(This)31 b(migh)m(t)h(cut)g(do)m(wn)630
-2345 y(on)g(the)g(n)m(um)m(b)s(er)e(of)i(string)f(comparisons)g(made)h
-(during)d(the)k(lo)s(okup,)e(since)g(k)m(eys)h(with)630
-2454 y(di\013eren)m(t)38 b(lengths)g(are)h(nev)m(er)g(compared)g(via)f
-Fn(strcmp)p Fs(.)64 b(Ho)m(w)m(ev)m(er,)43 b(using)38
-b(`)p Fn(-l)p Fs(')g(migh)m(t)630 2564 y(greatly)f(increase)f(the)h
-(size)g(of)f(the)h(generated)h(C)e(co)s(de)h(if)e(the)i(lo)s(okup)e
-(table)i(range)g(is)630 2673 y(large)25 b(\(whic)m(h)e(implies)f(that)j
-(the)g(switc)m(h)f(option)g(`)p Fn(-S)p Fs(')h(is)f(not)g(enabled\),)i
-(since)e(the)h(length)630 2783 y(table)31 b(con)m(tains)h(as)g(man)m(y)
-g(elemen)m(ts)g(as)f(there)h(are)g(en)m(tries)f(in)g(the)g(lo)s(okup)g
-(table.)44 b(This)630 2892 y(option)34 b(is)g(mandatory)g(for)g(binary)
-f(comparisons)h(\(see)h(Section)f(3.3)i([Binary)e(Strings],)630
-3002 y(page)d(14\).)150 3233 y(`)p Fn(-D)p Fs(')150 3343
-y(`)p Fn(--duplicates)p Fs(')630 3453 y(Handle)j(k)m(eyw)m(ords)h
-(whose)f(k)m(ey)i(p)s(osition)d(sets)i(hash)f(to)h(duplicate)e(v)-5
-b(alues.)53 b(Duplicate)630 3562 y(hash)30 b(v)-5 b(alues)29
-b(o)s(ccur)i(for)f(t)m(w)m(o)h(reasons:)705 3733 y Fq(\017)60
-b Fs(Since)42 b Fn(gperf)g Fs(do)s(es)h(not)g(bac)m(ktrac)m(k)j(it)c
-(is)h(p)s(ossible)d(for)j(it)g(to)h(pro)s(cess)f(all)f(y)m(our)810
-3842 y(input)23 b(k)m(eyw)m(ords)j(without)e(\014nding)f(a)i(unique)e
-(mapping)h(for)h(eac)m(h)h(w)m(ord.)39 b(Ho)m(w)m(ev)m(er,)810
-3952 y(frequen)m(tly)28 b(only)h(a)h(v)m(ery)f(small)f(n)m(um)m(b)s(er)
-g(of)h(duplicates)f(o)s(ccur,)i(and)e(the)i(ma)5 b(jorit)m(y)810
-4061 y(of)31 b(k)m(eys)g(still)d(require)h(one)i(prob)s(e)e(in)m(to)h
-(the)h(table.)705 4232 y Fq(\017)60 b Fs(Sometimes)35
-b(a)h(set)g(of)f(k)m(eys)h(ma)m(y)g(ha)m(v)m(e)h(the)f(same)f(names,)i
-(but)e(p)s(ossess)f(di\013eren)m(t)810 4341 y(attributes.)86
-b(With)45 b(the)g(-D)i(option)e Fn(gperf)f Fs(treats)i(all)f(these)h(k)
-m(eys)g(as)f(part)h(of)810 4451 y(an)37 b(equiv)-5 b(alence)36
-b(class)g(and)g(generates)j(a)e(p)s(erfect)f(hash)g(function)g(with)f
-(m)m(ultiple)810 4561 y(comparisons)26 b(for)g(duplicate)f(k)m(eys.)40
-b(It)26 b(is)g(up)f(to)j(y)m(ou)e(to)i(completely)e(disam)m(biguate)810
-4670 y(the)36 b(k)m(eyw)m(ords)f(b)m(y)g(mo)s(difying)e(the)j
-(generated)g(C)f(co)s(de.)56 b(Ho)m(w)m(ev)m(er,)39 b
-Fn(gperf)33 b Fs(helps)810 4780 y(y)m(ou)e(out)f(b)m(y)h(organizing)e
-(the)i(output.)630 5011 y(Option)i(`)p Fn(-D)p Fs(')i(is)f(extremely)g
-(useful)f(for)i(certain)f(large)h(or)g(highly)d(redundan)m(t)h(k)m(eyw)
-m(ord)630 5121 y(sets,)e(e.g.,)h(assem)m(bler)e(instruction)e(op)s(co)s
-(des.)41 b(Using)30 b(this)f(option)h(usually)e(means)i(that)630
-5230 y(the)d(generated)h(hash)f(function)f(is)g(no)h(longer)g(p)s
-(erfect.)39 b(On)26 b(the)i(other)f(hand,)g(it)g(p)s(ermits)630
-5340 y Fn(gperf)i Fs(to)i(w)m(ork)g(on)f(k)m(eyw)m(ord)h(sets)f(that)h
-(it)f(otherwise)g(could)g(not)g(handle.)p eop
-%%Page: 19 21
-19 20 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
-b Fn(gperf)2433 b Fs(19)150 299 y(`)p Fn(-f)30 b Fo(iteration-amoun)m
-(t)r Fs(')150 408 y(`)p Fn(--fast=)p Fo(iteration-amoun)m(t)r
-Fs(')630 518 y(Generate)d(the)e(p)s(erfect)g(hash)g(function)f
-(\\fast".)40 b(This)24 b(decreases)i Fn(gperf)p Fs('s)e(running)e(time)
-630 628 y(at)27 b(the)f(cost)h(of)f(minimizing)c(generated)27
-b(table-size.)39 b(The)25 b(iteration)h(amoun)m(t)g(represen)m(ts)630
-737 y(the)32 b(n)m(um)m(b)s(er)e(of)i(times)f(to)h(iterate)h(when)d
-(resolving)h(a)h(collision.)42 b(`0')32 b(means)g(iterate)g(b)m(y)630
-847 y(the)40 b(n)m(um)m(b)s(er)e(of)i(k)m(eyw)m(ords.)70
-b(This)37 b(option)j(is)e(probably)g(most)j(useful)d(when)g(used)h(in)
-630 956 y(conjunction)29 b(with)g(options)h(`)p Fn(-D)p
-Fs(')g(and/or)h(`)p Fn(-S)p Fs(')f(for)g Fl(lar)-5 b(ge)38
-b Fs(k)m(eyw)m(ord)31 b(sets.)150 1154 y(`)p Fn(-i)f
-Fo(initial-v)-5 b(alue)5 b Fs(')150 1263 y(`)p Fn(--initial-asso=)p
-Fo(initial)o(-v)-5 b(alue)5 b Fs(')630 1373 y(Pro)m(vides)28
-b(an)g(initial)d Fo(v)-5 b(alue)33 b Fs(for)28 b(the)g(asso)s(ciate)h
-(v)-5 b(alues)28 b(arra)m(y)-8 b(.)41 b(Default)28 b(is)f(0.)41
-b(Increasing)630 1482 y(the)30 b(initial)d(v)-5 b(alue)30
+(hash)630 3988 y(table.)105 b(Default)52 b(name)f(is)g(`)p
+Fn(wordlist)p Fs('.)103 b(This)50 b(option)h(p)s(ermits)f(the)i(use)g
+(of)g(t)m(w)m(o)630 4098 y(hash)37 b(tables)g(in)g(the)h(same)g
+(\014le,)h(ev)m(en)f(when)f(the)h(option)f(`)p Fn(-G)p
+Fs(')h(\(or,)i(equiv)-5 b(alen)m(tly)d(,)39 b(the)630
+4208 y(`)p Fn(\045global-table)p Fs(')27 b(declaration\))k(is)e(giv)m
+(en.)150 4354 y(`)p Fn(-S)h Fo(total-switc)m(h-statemen)m(ts)t
+Fs(')150 4463 y(`)p Fn(--switch=)p Fo(total-switc)m(h-statemen)m(ts)t
+Fs(')630 4573 y(Causes)35 b(the)h(generated)h(C)e(co)s(de)h(to)h(use)e
+(a)h Fn(switch)e Fs(statemen)m(t)k(sc)m(heme,)g(rather)d(than)630
+4682 y(an)j(arra)m(y)g(lo)s(okup)f(table.)63 b(This)36
+b(can)i(lead)g(to)g(a)h(reduction)e(in)f(b)s(oth)h(time)h(and)f(space)
+630 4792 y(requiremen)m(ts)42 b(for)i(some)f(input)f(\014les.)79
+b(The)43 b(argumen)m(t)h(to)g(this)e(option)h(determines)630
+4902 y(ho)m(w)33 b(man)m(y)f Fn(switch)f Fs(statemen)m(ts)k(are)e
+(generated.)49 b(A)32 b(v)-5 b(alue)33 b(of)f(1)i(generates)g(1)f
+Fn(switch)630 5011 y Fs(con)m(taining)23 b(all)e(the)j(elemen)m(ts,)h
+(a)e(v)-5 b(alue)22 b(of)i(2)f(generates)h(2)g(tables)e(with)g(1/2)i
+(the)g(elemen)m(ts)630 5121 y(in)37 b(eac)m(h)i Fn(switch)p
+Fs(,)g(etc.)65 b(This)36 b(is)h(useful)g(since)g(man)m(y)i(C)e
+(compilers)g(cannot)i(correctly)630 5230 y(generate)29
+b(co)s(de)f(for)f(large)g Fn(switch)f Fs(statemen)m(ts.)41
+b(This)26 b(option)h(w)m(as)h(inspired)c(in)i(part)h(b)m(y)630
+5340 y(Keith)j(Bostic's)h(original)d(C)i(program.)p eop
+%%Page: 23 25
+23 24 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
+b Fn(gperf)2433 b Fs(23)150 299 y(`)p Fn(-T)p Fs(')150
+408 y(`)p Fn(--omit-struct-type)p Fs(')630 518 y(Prev)m(en)m(ts)29
+b(the)e(transfer)h(of)f(the)h(t)m(yp)s(e)g(declaration)f(to)i(the)f
+(output)f(\014le.)39 b(Use)28 b(this)e(option)630 628
+y(if)j(the)i(t)m(yp)s(e)f(is)g(already)g(de\014ned)f(elsewhere.)150
+795 y(`)p Fn(-p)p Fs(')334 b(This)32 b(option)h(is)f(supp)s(orted)g
+(for)h(compatibilit)m(y)f(with)g(previous)g(releases)i(of)g
+Fn(gperf)p Fs(.)49 b(It)630 905 y(do)s(es)30 b(not)h(do)f(an)m(ything.)
+150 1182 y Fr(4.5)68 b(Options)45 b(for)g(c)l(hanging)h(the)f
+(Algorithms)h(emplo)l(y)l(ed)g(b)l(y)f Fk(gperf)150 1412
+y Fs(`)p Fn(-k)30 b Fo(selected-b)m(yte-p)s(ositions)t
+Fs(')150 1521 y(`)p Fn(--key-positions=)p Fo(selected-b)m(yte-p)s
+(ositions)t Fs(')630 1631 y(Allo)m(ws)c(selection)h(of)g(the)g(b)m(yte)
+h(p)s(ositions)d(used)h(in)g(the)h(k)m(eyw)m(ords')h(hash)e(function.)
+38 b(The)630 1740 y(allo)m(w)m(able)21 b(c)m(hoices)i(range)f(b)s(et)m
+(w)m(een)h(1-255,)j(inclusiv)m(e.)35 b(The)22 b(p)s(ositions)d(are)k
+(separated)f(b)m(y)630 1850 y(commas,)27 b(e.g.,)i(`)p
+Fn(-k)h(9,4,13,14)p Fs(';)25 b(ranges)h(ma)m(y)g(b)s(e)f(used,)h(e.g.,)
+i(`)p Fn(-k)i(2-7)p Fs(';)d(and)e(p)s(ositions)630 1960
+y(ma)m(y)c(o)s(ccur)f(in)g(an)m(y)h(order.)37 b(F)-8
+b(urthermore,)22 b(the)f(wildcard)d('*')j(causes)g(the)g(generated)h
+(hash)630 2069 y(function)36 b(to)i(consider)f Fe(all)h
+Fs(b)m(yte)g(p)s(ositions)d(in)h(eac)m(h)j(k)m(eyw)m(ord,)h(whereas)d
+('$')h(instructs)630 2179 y(the)31 b(hash)g(function)e(to)j(use)f(the)g
+(\\\014nal)g(b)m(yte")h(of)f(a)h(k)m(eyw)m(ord)f(\(this)f(is)h(the)g
+(only)f(w)m(a)m(y)i(to)630 2288 y(use)e(a)h(b)m(yte)g(p)s(osition)d
+(greater)k(than)e(255,)i(inciden)m(tally\).)630 2427
+y(F)-8 b(or)37 b(instance,)g(the)f(option)g(`)p Fn(-k)30
+b(1,2,4,6-10,'$')p Fs(')i(generates)38 b(a)e(hash)g(function)e(that)630
+2536 y(considers)g(p)s(ositions)f(1,2,4,6,7,8,9,10,)42
+b(plus)33 b(the)j(last)f(b)m(yte)g(in)f(eac)m(h)i(k)m(eyw)m(ord)g
+(\(whic)m(h)630 2646 y(ma)m(y)j(b)s(e)f(at)i(a)f(di\013eren)m(t)f(p)s
+(osition)f(for)h(eac)m(h)i(k)m(eyw)m(ord,)h(ob)m(viously\).)65
+b(Keyw)m(ords)38 b(with)630 2756 y(length)29 b(less)g(than)g(the)g
+(indicated)f(b)m(yte)j(p)s(ositions)c(w)m(ork)i(prop)s(erly)-8
+b(,)29 b(since)f(selected)i(b)m(yte)630 2865 y(p)s(ositions)j
+(exceeding)i(the)h(k)m(eyw)m(ord)f(length)f(are)i(simply)c(not)k
+(referenced)f(in)e(the)j(hash)630 2975 y(function.)630
+3113 y(This)27 b(option)i(is)f(not)h(normally)e(needed)i(since)f(v)m
+(ersion)g(2.8)j(of)e Fn(gperf)p Fs(;)f(the)h(default)f(b)m(yte)630
+3223 y(p)s(ositions)34 b(are)i(computed)f(dep)s(ending)e(on)j(the)f(k)m
+(eyw)m(ord)h(set,)i(through)d(a)h(searc)m(h)g(that)630
+3332 y(minimizes)28 b(the)i(n)m(um)m(b)s(er)f(of)i(b)m(yte)g(p)s
+(ositions.)150 3500 y(`)p Fn(-D)p Fs(')150 3609 y(`)p
+Fn(--duplicates)p Fs(')630 3719 y(Handle)g(k)m(eyw)m(ords)i(whose)f
+(selected)h(b)m(yte)f(sets)h(hash)e(to)i(duplicate)e(v)-5
+b(alues.)45 b(Duplicate)630 3829 y(hash)33 b(v)-5 b(alues)33
+b(can)i(o)s(ccur)e(if)g(a)h(set)h(of)f(k)m(eyw)m(ords)g(has)g(the)g
+(same)g(names,)h(but)e(p)s(ossesses)630 3938 y(di\013eren)m(t)e
+(attributes,)g(or)g(if)g(the)g(selected)h(b)m(yte)g(p)s(ositions)d(are)
+j(not)f(w)m(ell)f(c)m(hosen.)44 b(With)630 4048 y(the)36
+b(-D)g(option)f Fn(gperf)f Fs(treats)j(all)d(these)j(k)m(eyw)m(ords)e
+(as)h(part)g(of)g(an)f(equiv)-5 b(alence)35 b(class)630
+4157 y(and)c(generates)i(a)f(p)s(erfect)g(hash)f(function)f(with)h(m)m
+(ultiple)e(comparisons)i(for)g(duplicate)630 4267 y(k)m(eyw)m(ords.)38
+b(It)21 b(is)e(up)h(to)h(y)m(ou)g(to)h(completely)e(disam)m(biguate)g
+(the)h(k)m(eyw)m(ords)g(b)m(y)g(mo)s(difying)630 4377
+y(the)28 b(generated)g(C)f(co)s(de.)40 b(Ho)m(w)m(ev)m(er,)30
+b Fn(gperf)c Fs(helps)g(y)m(ou)h(out)h(b)m(y)f(organizing)g(the)g
+(output.)630 4515 y(Using)k(this)g(option)g(usually)f(means)i(that)g
+(the)g(generated)h(hash)e(function)g(is)g(no)g(longer)630
+4625 y(p)s(erfect.)48 b(On)31 b(the)i(other)g(hand,)g(it)f(p)s(ermits)f
+Fn(gperf)g Fs(to)i(w)m(ork)g(on)g(k)m(eyw)m(ord)g(sets)g(that)g(it)630
+4734 y(otherwise)d(could)f(not)i(handle.)150 4902 y(`)p
+Fn(-m)f Fo(iterations)t Fs(')150 5011 y(`)p Fn(--multiple-iterations=)p
+Fo(i)o(terations)t Fs(')630 5121 y(P)m(erform)24 b(m)m(ultiple)e(c)m
+(hoices)j(of)f(the)h(`)p Fn(-i)p Fs(')f(and)g(`)p Fn(-j)p
+Fs(')g(v)-5 b(alues,)25 b(and)e(c)m(ho)s(ose)j(the)e(b)s(est)g
+(results.)630 5230 y(This)33 b(increases)i(the)g(running)d(time)i(b)m
+(y)h(a)g(factor)h(of)f Fo(iterations)j Fs(but)c(do)s(es)g(a)i(go)s(o)s
+(d)e(job)630 5340 y(minimizing)27 b(the)j(generated)i(table)e(size.)p
+eop
+%%Page: 24 26
+24 25 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
+b Fn(gperf)2433 b Fs(24)150 299 y(`)p Fn(-i)30 b Fo(initial-v)-5
+b(alue)5 b Fs(')150 408 y(`)p Fn(--initial-asso=)p Fo(initial)o(-v)-5
+b(alue)5 b Fs(')630 518 y(Pro)m(vides)28 b(an)g(initial)d
+Fo(v)-5 b(alue)33 b Fs(for)28 b(the)g(asso)s(ciate)h(v)-5
+b(alues)28 b(arra)m(y)-8 b(.)41 b(Default)28 b(is)f(0.)41
+b(Increasing)630 628 y(the)30 b(initial)d(v)-5 b(alue)30
b(helps)e(in\015ate)h(the)h(\014nal)f(table)h(size,)g(p)s(ossibly)d
-(leading)i(to)h(more)g(time)630 1592 y(e\016cien)m(t)e(k)m(eyw)m(ord)f
+(leading)i(to)h(more)g(time)630 737 y(e\016cien)m(t)e(k)m(eyw)m(ord)f
(lo)s(okups.)38 b(Note)29 b(that)e(this)f(option)h(is)f(not)h
-(particularly)e(useful)g(when)630 1702 y(`)p Fn(-S)p
-Fs(')30 b(is)g(used.)40 b(Also,)30 b(`)p Fn(-i)p Fs(')g(is)g(o)m(v)m
-(erridden)f(when)g(the)i(`)p Fn(-r)p Fs(')f(option)g(is)g(used.)150
-1899 y(`)p Fn(-j)g Fo(jump-v)-5 b(alue)5 b Fs(')150 2008
-y(`)p Fn(--jump=)p Fo(jump-v)-5 b(alue)5 b Fs(')630 2118
-y(A\013ects)25 b(the)f(\\jump)f(v)-5 b(alue",)26 b(i.e.,)f(ho)m(w)f
-(far)g(to)h(adv)-5 b(ance)24 b(the)g(asso)s(ciated)h(c)m(haracter)g(v)
--5 b(alue)630 2228 y(up)s(on)29 b(collisions.)39 b Fo(Jump-v)-5
+(particularly)e(useful)g(when)630 847 y(`)p Fn(-S)p Fs(')j(\(or,)i
+(equiv)-5 b(alen)m(tly)d(,)28 b(`)p Fn(\045switch)p Fs('\))f(is)h
+(used.)39 b(Also,)29 b(`)p Fn(-i)p Fs(')f(is)f(o)m(v)m(erridden)h(when)
+f(the)i(`)p Fn(-r)p Fs(')630 956 y(option)h(is)f(used.)150
+1150 y(`)p Fn(-j)h Fo(jump-v)-5 b(alue)5 b Fs(')150 1260
+y(`)p Fn(--jump=)p Fo(jump-v)-5 b(alue)5 b Fs(')630 1369
+y(A\013ects)41 b(the)f(\\jump)f(v)-5 b(alue",)43 b(i.e.,)g(ho)m(w)d
+(far)g(to)g(adv)-5 b(ance)41 b(the)f(asso)s(ciated)h(b)m(yte)f(v)-5
+b(alue)630 1479 y(up)s(on)29 b(collisions.)39 b Fo(Jump-v)-5
b(alue)34 b Fs(is)29 b(rounded)g(up)h(to)h(an)f(o)s(dd)g(n)m(um)m(b)s
-(er,)f(the)i(default)f(is)f(5.)630 2337 y(If)h(the)g
+(er,)f(the)i(default)f(is)f(5.)630 1588 y(If)h(the)g
Fo(jump-v)-5 b(alue)34 b Fs(is)c(0)g Fn(gperf)f Fs(jumps)g(b)m(y)h
-(random)g(amoun)m(ts.)150 2534 y(`)p Fn(-n)p Fs(')150
-2644 y(`)p Fn(--no-strlen)p Fs(')630 2754 y(Instructs)c(the)i
+(random)g(amoun)m(ts.)150 1782 y(`)p Fn(-n)p Fs(')150
+1892 y(`)p Fn(--no-strlen)p Fs(')630 2001 y(Instructs)c(the)i
(generator)g(not)f(to)h(include)d(the)j(length)e(of)h(a)h(k)m(eyw)m
-(ord)g(when)e(computing)630 2863 y(its)40 b(hash)g(v)-5
+(ord)g(when)e(computing)630 2111 y(its)40 b(hash)g(v)-5
b(alue.)71 b(This)39 b(ma)m(y)i(sa)m(v)m(e)h(a)f(few)f(assem)m(bly)g
-(instructions)f(in)g(the)i(generated)630 2973 y(lo)s(okup)29
-b(table.)150 3170 y(`)p Fn(-o)p Fs(')150 3280 y(`)p Fn
-(--occurrence-sort)p Fs(')630 3389 y(Reorders)43 b(the)h(k)m(eyw)m
-(ords)g(b)m(y)f(sorting)g(the)h(k)m(eyw)m(ords)g(so)g(that)g(frequen)m
-(tly)f(o)s(ccuring)630 3499 y(k)m(ey)34 b(p)s(osition)e(set)h(comp)s
-(onen)m(ts)h(app)s(ear)f(\014rst.)48 b(A)34 b(second)f(reordering)f
-(pass)h(follo)m(ws)g(so)630 3608 y(that)43 b(k)m(eys)g(with)e
-(\\already)i(determined)e(v)-5 b(alues")42 b(are)h(placed)e(to)m(w)m
-(ards)j(the)e(fron)m(t)h(of)630 3718 y(the)c(k)m(eylist.)67
-b(This)37 b(ma)m(y)j(decrease)g(the)f(time)g(required)e(to)j(generate)g
-(a)g(p)s(erfect)f(hash)630 3828 y(function)33 b(for)h(man)m(y)g(k)m
-(eyw)m(ord)h(sets,)h(and)d(also)i(pro)s(duce)e(more)h(minimal)e(p)s
-(erfect)i(hash)630 3937 y(functions.)68 b(The)39 b(reason)h(for)g(this)
-f(is)f(that)j(the)f(reordering)f(helps)f(prune)g(the)i(searc)m(h)630
-4047 y(time)28 b(b)m(y)h(handling)d(inevitable)h(collisions)f(early)i
-(in)f(the)i(searc)m(h)g(pro)s(cess.)40 b(On)28 b(the)h(other)630
-4156 y(hand,)i(if)f(the)i(n)m(um)m(b)s(er)e(of)i(k)m(eyw)m(ords)g(is)e
-Fl(very)40 b Fs(large)31 b(using)f(`)p Fn(-o)p Fs(')i(ma)m(y)g
-Fl(incr)-5 b(e)g(ase)39 b Fn(gperf)p Fs('s)630 4266 y(execution)34
-b(time,)h(since)e(collisions)f(will)f(b)s(egin)i(earlier)g(and)g(con)m
-(tin)m(ue)h(throughout)g(the)630 4376 y(remainder)f(of)h(k)m(eyw)m(ord)
-h(pro)s(cessing.)51 b(See)35 b(Cic)m(helli's)d(pap)s(er)h(from)h(the)g
-(Jan)m(uary)g(1980)630 4485 y(Comm)m(unications)29 b(of)h(the)h(A)m(CM)
-g(for)f(details.)150 4682 y(`)p Fn(-r)p Fs(')150 4792
-y(`)p Fn(--random)p Fs(')630 4902 y(Utilizes)37 b(randomness)h(to)h
-(initialize)c(the)k(asso)s(ciated)g(v)-5 b(alues)37 b(table.)65
-b(This)37 b(frequen)m(tly)630 5011 y(generates)23 b(solutions)c(faster)
-j(than)f(using)f(deterministic)f(initialization)f(\(whic)m(h)i(starts)i
-(all)630 5121 y(asso)s(ciated)27 b(v)-5 b(alues)27 b(at)g(0\).)40
+(instructions)f(in)g(the)i(generated)630 2221 y(lo)s(okup)29
+b(table.)150 2414 y(`)p Fn(-r)p Fs(')150 2524 y(`)p Fn(--random)p
+Fs(')630 2633 y(Utilizes)37 b(randomness)h(to)h(initialize)c(the)k
+(asso)s(ciated)g(v)-5 b(alues)37 b(table.)65 b(This)37
+b(frequen)m(tly)630 2743 y(generates)23 b(solutions)c(faster)j(than)f
+(using)f(deterministic)f(initialization)f(\(whic)m(h)i(starts)i(all)630
+2853 y(asso)s(ciated)27 b(v)-5 b(alues)27 b(at)g(0\).)40
b(F)-8 b(urthermore,)28 b(using)e(the)h(randomization)e(option)i
-(generally)630 5230 y(increases)33 b(the)h(size)f(of)g(the)h(table.)50
-b(If)33 b Fn(gperf)f Fs(has)h(di\016cultly)d(with)i(a)i(certain)f(k)m
-(eyw)m(ord)630 5340 y(set)e(try)f(using)f(`)p Fn(-r)p
-Fs(')h(or)h(`)p Fn(-D)p Fs('.)p eop
-%%Page: 20 22
-20 21 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
-b Fn(gperf)2433 b Fs(20)150 299 y(`)p Fn(-s)30 b Fo(size-m)m(ultiple)5
-b Fs(')150 408 y(`)p Fn(--size-multiple=)p Fo(size-m)m(ultipl)o(e)g
-Fs(')630 518 y(A\013ects)40 b(the)e(size)g(of)h(the)f(generated)i(hash)
-d(table.)65 b(The)38 b(n)m(umeric)f(argumen)m(t)i(for)f(this)630
-628 y(option)32 b(indicates)f(\\ho)m(w)i(man)m(y)g(times)f(larger)g(or)
-g(smaller")g(the)g(maxim)m(um)f(asso)s(ciated)630 737
-y(v)-5 b(alue)23 b(range)h(should)d(b)s(e,)j(in)e(relationship)f(to)j
-(the)g(n)m(um)m(b)s(er)e(of)h(k)m(eys.)40 b(If)22 b(the)i
-Fo(size-m)m(ultiple)630 847 y Fs(is)31 b(negativ)m(e)j(the)e(maxim)m
-(um)g(asso)s(ciated)g(v)-5 b(alue)32 b(is)g(calculated)g(b)m(y)g
-Fl(dividing)41 b Fs(it)31 b(in)m(to)i(the)630 956 y(total)k(n)m(um)m(b)
-s(er)e(of)h(k)m(eys.)59 b(F)-8 b(or)37 b(example,)h(a)f(v)-5
-b(alue)35 b(of)i(3)f(means)g(\\allo)m(w)h(the)f(maxim)m(um)630
-1066 y(asso)s(ciated)31 b(v)-5 b(alue)30 b(to)h(b)s(e)f(ab)s(out)g(3)g
-(times)g(larger)g(than)h(the)f(n)m(um)m(b)s(er)f(of)i(input)d(k)m
-(eys".)630 1200 y(Con)m(v)m(ersely)-8 b(,)42 b(a)e(v)-5
-b(alue)39 b(of)g(-3)h(means)g(\\allo)m(w)f(the)h(maxim)m(um)e(asso)s
-(ciated)i(v)-5 b(alue)38 b(to)j(b)s(e)630 1310 y(ab)s(out)f(3)g(times)f
-(smaller)f(than)i(the)g(n)m(um)m(b)s(er)f(of)h(input)d(k)m(eys".)71
-b(Negativ)m(e)41 b(v)-5 b(alues)40 b(are)630 1420 y(useful)i(for)i
-(limiting)d(the)j(o)m(v)m(erall)h(size)f(of)g(the)g(generated)h(hash)f
-(table,)j(though)d(this)630 1529 y(usually)28 b(increases)i(the)h(n)m
-(um)m(b)s(er)e(of)h(duplicate)f(hash)h(v)-5 b(alues.)630
-1664 y(If)33 b(`generate)j(switc)m(h')e(option)f(`)p
-Fn(-S)p Fs(')h(is)f Fl(not)43 b Fs(enabled,)34 b(the)g(maxim)m(um)f
-(asso)s(ciated)h(v)-5 b(alue)630 1773 y(in\015uences)22
-b(the)j(static)f(arra)m(y)h(table)f(size,)h(and)f(a)g(larger)g(table)g
-(should)e(decrease)j(the)f(time)630 1883 y(required)29
-b(for)h(an)g(unsuccessful)e(searc)m(h,)j(at)g(the)g(exp)s(ense)f(of)g
-(extra)i(table)e(space.)630 2017 y(The)35 b(default)f(v)-5
-b(alue)35 b(is)f(1,)j(th)m(us)e(the)h(default)e(maxim)m(um)g(asso)s
-(ciated)i(v)-5 b(alue)35 b(ab)s(out)g(the)630 2127 y(same)25
-b(size)f(as)h(the)f(n)m(um)m(b)s(er)g(of)g(k)m(eys)h(\(for)g
-(e\016ciency)-8 b(,)26 b(the)f(maxim)m(um)e(asso)s(ciated)i(v)-5
-b(alue)24 b(is)630 2237 y(alw)m(a)m(ys)k(rounded)e(up)h(to)h(a)g(p)s(o)
-m(w)m(er)g(of)g(2\).)40 b(The)27 b(actual)h(table)g(size)g(ma)m(y)g(v)
--5 b(ary)27 b(somewhat,)630 2346 y(since)21 b(this)g(tec)m(hnique)h(is)
-f(essen)m(tially)f(a)j(heuristic.)36 b(In)21 b(particular,)h(setting)g
-(this)f(v)-5 b(alue)21 b(to)s(o)630 2456 y(high)32 b(slo)m(ws)i(do)m
-(wn)f Fn(gperf)p Fs('s)f(run)m(time,)i(since)f(it)g(m)m(ust)h(searc)m
-(h)g(through)f(a)h(m)m(uc)m(h)g(larger)630 2565 y(range)f(of)h(v)-5
-b(alues.)48 b(Judicious)30 b(use)j(of)g(the)h(`)p Fn(-f)p
-Fs(')f(option)f(helps)g(alleviate)h(this)e(o)m(v)m(erhead,)630
-2675 y(ho)m(w)m(ev)m(er.)150 2932 y Fr(4.5)68 b(Informativ)l(e)47
-b(Output)150 3150 y Fs(`)p Fn(-h)p Fs(')150 3259 y(`)p
+(generally)630 2962 y(increases)j(the)h(size)f(of)g(the)h(table.)150
+3156 y(`)p Fn(-s)f Fo(size-m)m(ultiple)5 b Fs(')150 3266
+y(`)p Fn(--size-multiple=)p Fo(size-m)m(ultipl)o(e)g
+Fs(')630 3375 y(A\013ects)40 b(the)e(size)g(of)h(the)f(generated)i
+(hash)d(table.)65 b(The)38 b(n)m(umeric)f(argumen)m(t)i(for)f(this)630
+3485 y(option)32 b(indicates)f(\\ho)m(w)i(man)m(y)g(times)f(larger)g
+(or)g(smaller")g(the)g(maxim)m(um)f(asso)s(ciated)630
+3594 y(v)-5 b(alue)37 b(range)h(should)d(b)s(e,)k(in)d(relationship)f
+(to)j(the)f(n)m(um)m(b)s(er)g(of)g(k)m(eyw)m(ords.)62
+b(It)38 b(can)g(b)s(e)630 3704 y(written)f(as)i(an)f(in)m(teger,)k(a)c
+(\015oating-p)s(oin)m(t)g(n)m(um)m(b)s(er)f(or)i(a)f(fraction.)65
+b(F)-8 b(or)39 b(example,)i(a)630 3814 y(v)-5 b(alue)39
+b(of)g(3)h(means)f(\\allo)m(w)g(the)h(maxim)m(um)e(asso)s(ciated)h(v)-5
+b(alue)39 b(to)h(b)s(e)f(ab)s(out)g(3)g(times)630 3923
+y(larger)32 b(than)h(the)g(n)m(um)m(b)s(er)e(of)i(input)e(k)m(eyw)m
+(ords".)49 b(Con)m(v)m(ersely)-8 b(,)34 b(a)f(v)-5 b(alue)32
+b(of)h(1/3)h(means)630 4033 y(\\allo)m(w)41 b(the)g(maxim)m(um)e(asso)s
+(ciated)j(v)-5 b(alue)40 b(to)i(b)s(e)e(ab)s(out)g(3)h(times)g(smaller)
+e(than)i(the)630 4142 y(n)m(um)m(b)s(er)33 b(of)i(input)e(k)m(eyw)m
+(ords".)55 b(V)-8 b(alues)34 b(smaller)g(than)g(1)h(are)g(useful)e(for)
+i(limiting)d(the)630 4252 y(o)m(v)m(erall)d(size)f(of)h(the)f
+(generated)i(hash)e(table,)h(though)f(the)g(option)g(`)p
+Fn(-m)p Fs(')h(is)e(b)s(etter)i(at)g(this)630 4361 y(purp)s(ose.)630
+4513 y(If)44 b(`generate)h(switc)m(h')f(option)g(`)p
+Fn(-S)p Fs(')g(\(or,)k(equiv)-5 b(alen)m(tly)d(,)46 b(`)p
+Fn(\045switch)p Fs('\))d(is)g Fl(not)54 b Fs(enabled,)630
+4623 y(the)45 b(maxim)m(um)g(asso)s(ciated)g(v)-5 b(alue)45
+b(in\015uences)f(the)h(static)h(arra)m(y)g(table)f(size,)k(and)c(a)630
+4732 y(larger)26 b(table)g(should)e(decrease)j(the)f(time)g(required)e
+(for)i(an)f(unsuccessful)f(searc)m(h,)k(at)f(the)630
+4842 y(exp)s(ense)j(of)g(extra)i(table)e(space.)630 4994
+y(The)35 b(default)f(v)-5 b(alue)35 b(is)f(1,)j(th)m(us)e(the)h
+(default)e(maxim)m(um)g(asso)s(ciated)i(v)-5 b(alue)35
+b(ab)s(out)g(the)630 5103 y(same)h(size)f(as)g(the)h(n)m(um)m(b)s(er)e
+(of)h(k)m(eyw)m(ords)h(\(for)g(e\016ciency)-8 b(,)37
+b(the)e(maxim)m(um)f(asso)s(ciated)630 5213 y(v)-5 b(alue)35
+b(is)g(alw)m(a)m(ys)h(rounded)e(up)g(to)i(a)g(p)s(o)m(w)m(er)g(of)f
+(2\).)57 b(The)35 b(actual)h(table)g(size)f(ma)m(y)h(v)-5
+b(ary)630 5322 y(somewhat,)31 b(since)f(this)f(tec)m(hnique)h(is)g
+(essen)m(tially)f(a)i(heuristic.)p eop
+%%Page: 25 27
+25 26 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(In)m(v)m(oking)30
+b Fn(gperf)2433 b Fs(25)150 299 y Fr(4.6)68 b(Informativ)l(e)47
+b(Output)150 516 y Fs(`)p Fn(-h)p Fs(')150 626 y(`)p
Fn(--help)p Fs(')142 b(Prin)m(ts)23 b(a)h(short)f(summary)g(on)h(the)g
(meaning)f(of)h(eac)m(h)h(program)e(option.)38 b(Ab)s(orts)23
-b(further)630 3369 y(program)30 b(execution.)150 3528
-y(`)p Fn(-v)p Fs(')150 3638 y(`)p Fn(--version)p Fs(')630
-3748 y(Prin)m(ts)f(out)i(the)f(curren)m(t)h(v)m(ersion)e(n)m(um)m(b)s
-(er.)150 3907 y(`)p Fn(-d)p Fs(')150 4017 y(`)p Fn(--debug)p
+b(further)630 736 y(program)30 b(execution.)150 895 y(`)p
+Fn(-v)p Fs(')150 1005 y(`)p Fn(--version)p Fs(')630 1114
+y(Prin)m(ts)f(out)i(the)f(curren)m(t)h(v)m(ersion)e(n)m(um)m(b)s(er.)
+150 1274 y(`)p Fn(-d)p Fs(')150 1383 y(`)p Fn(--debug)p
Fs(')94 b(Enables)27 b(the)i(debugging)e(option.)39 b(This)27
b(pro)s(duces)g(v)m(erb)s(ose)i(diagnostics)e(to)i(\\standard)630
-4126 y(error")i(when)g Fn(gperf)f Fs(is)g(executing.)44
+1493 y(error")i(when)g Fn(gperf)f Fs(is)g(executing.)44
b(It)32 b(is)e(useful)g(b)s(oth)h(for)g(main)m(taining)f(the)h(program)
-630 4236 y(and)f(for)h(determining)e(whether)h(a)h(giv)m(en)g(set)g(of)
+630 1602 y(and)f(for)h(determining)e(whether)h(a)h(giv)m(en)g(set)g(of)
g(options)f(is)g(actually)h(sp)s(eeding)e(up)h(the)630
-4345 y(searc)m(h)41 b(for)e(a)h(solution.)68 b(Some)40
+1712 y(searc)m(h)41 b(for)e(a)h(solution.)68 b(Some)40
b(useful)e(information)g(is)h(dump)s(ed)f(at)i(the)g(end)g(of)g(the)630
-4455 y(program)30 b(when)g(the)g(`)p Fn(-d)p Fs(')g(option)g(is)g
+1822 y(program)30 b(when)g(the)g(`)p Fn(-d)p Fs(')g(option)g(is)g
(enabled.)p eop
-%%Page: 21 23
-21 22 bop 150 -116 a Fs(Chapter)30 b(5:)41 b(Kno)m(wn)30
-b(Bugs)g(and)g(Limitations)e(with)h Fn(gperf)1397 b Fs(21)150
+%%Page: 26 28
+26 27 bop 150 -116 a Fs(Chapter)30 b(5:)41 b(Kno)m(wn)30
+b(Bugs)g(and)g(Limitations)e(with)h Fn(gperf)1397 b Fs(26)150
299 y Fp(5)80 b(Kno)l(wn)53 b(Bugs)f(and)i(Limitations)h(with)e
Fm(gperf)275 533 y Fs(The)29 b(follo)m(wing)g(are)i(some)g(limitations)
d(with)h(the)h(curren)m(t)h(release)f(of)h Fn(gperf)p
@@ -3281,50 +3672,32 @@ b(Sev)m(eral)41 b(recen)m(t)h(enhancemen)m(ts)g(no)m(w)e(enable)330
(h)h(larger)f(k)m(eyw)m(ord)h(sets)g(\(o)m(v)m(er)i(15,000)g(k)m(eyw)m
(ords\).)48 b(When)330 1106 y(pro)s(cessing)29 b(large)i(k)m(eyw)m(ord)
f(sets)h(it)f(helps)f(greatly)i(to)g(ha)m(v)m(e)g(o)m(v)m(er)h(8)f
-(megs)g(of)f(RAM.)330 1240 y(Ho)m(w)m(ev)m(er,)k(since)c
-Fn(gperf)g Fs(do)s(es)g(not)i(bac)m(ktrac)m(k)h(no)e(guaran)m(teed)h
-(solution)e(o)s(ccurs)g(on)h(ev)m(ery)h(run.)330 1350
-y(On)26 b(the)h(other)g(hand,)f(it)h(is)e(usually)g(easy)i(to)h(obtain)
-e(a)h(solution)e(b)m(y)i(v)-5 b(arying)26 b(the)h(option)f(param-)330
-1460 y(eters.)52 b(In)33 b(particular,)g(try)h(the)g(`)p
-Fn(-r)p Fs(')g(option,)g(and)f(also)h(try)g(c)m(hanging)g(the)g
-(default)f(argumen)m(ts)330 1569 y(to)38 b(the)f(`)p
-Fn(-s)p Fs(')h(and)e(`)p Fn(-j)p Fs(')h(options.)61 b(T)-8
-b(o)38 b Fl(guar)-5 b(ante)g(e)45 b Fs(a)38 b(solution,)g(use)f(the)g
-(`)p Fn(-D)p Fs(')h(and)e(`)p Fn(-S)p Fs(')h(options,)330
-1679 y(although)27 b(the)h(\014nal)e(results)g(are)i(not)g(lik)m(ely)e
-(to)i(b)s(e)f(a)h Fl(p)-5 b(erfe)g(ct)37 b Fs(hash)27
-b(function)f(an)m(ymore!)40 b(Finally)-8 b(,)330 1788
-y(use)32 b(the)g(`)p Fn(-f)p Fs(')g(option)f(if)g(y)m(ou)h(w)m(an)m(t)h
-Fn(gperf)d Fs(to)j(generate)g(the)f(p)s(erfect)g(hash)f(function)g
-Fl(fast)p Fs(,)i(with)330 1898 y(less)d(emphasis)f(on)h(making)g(it)f
-(minimal.)225 2032 y Fq(\017)60 b Fs(The)43 b(size)h(of)g(the)g
+(megs)g(of)f(RAM.)225 1240 y Fq(\017)60 b Fs(The)43 b(size)h(of)g(the)g
(generate)h(static)g(k)m(eyw)m(ord)f(arra)m(y)g(can)g(get)h
Fl(extr)-5 b(emely)53 b Fs(large)44 b(if)f(the)h(input)330
-2142 y(k)m(eyw)m(ord)d(\014le)e(is)g(large)i(or)f(if)f(the)i(k)m(eyw)m
+1350 y(k)m(eyw)m(ord)d(\014le)e(is)g(large)i(or)f(if)f(the)i(k)m(eyw)m
(ords)f(are)h(quite)f(similar.)67 b(This)39 b(tends)h(to)h(slo)m(w)e
-(do)m(wn)330 2252 y(the)c(compilation)e(of)i(the)f(generated)i(C)e(co)s
+(do)m(wn)330 1460 y(the)c(compilation)e(of)i(the)f(generated)i(C)e(co)s
(de,)i(and)e Fl(gr)-5 b(e)g(atly)44 b Fs(in\015ates)34
b(the)h(ob)5 b(ject)35 b(co)s(de)g(size.)53 b(If)330
-2361 y(this)39 b(situation)g(o)s(ccurs,)j(consider)d(using)f(the)i(`)p
+1569 y(this)39 b(situation)g(o)s(ccurs,)j(consider)d(using)f(the)i(`)p
Fn(-S)p Fs(')g(option)f(to)i(reduce)e(data)i(size,)h(p)s(oten)m(tially)
-330 2471 y(increasing)g(k)m(eyw)m(ord)i(recognition)f(time)g(a)h
+330 1679 y(increasing)g(k)m(eyw)m(ord)i(recognition)f(time)g(a)h
(negligible)e(amoun)m(t.)80 b(Since)43 b(man)m(y)g(C)h(compilers)330
-2580 y(cannot)33 b(correctly)g(generated)h(co)s(de)f(for)f(large)h
-(switc)m(h)f(statemen)m(ts)j(it)d(is)g(imp)s(ortan)m(t)f(to)j(qualify)
-330 2690 y(the)40 b Fo(-S)46 b Fs(option)39 b(with)g(an)h(appropriate)f
-(n)m(umerical)g(argumen)m(t)h(that)h(con)m(trols)g(the)f(n)m(um)m(b)s
-(er)f(of)330 2800 y(switc)m(h)30 b(statemen)m(ts)i(generated.)225
-2934 y Fq(\017)60 b Fs(The)31 b(maxim)m(um)f(n)m(um)m(b)s(er)f(of)j(k)m
-(ey)f(p)s(ositions)f(selected)h(for)g(a)g(giv)m(en)h(k)m(ey)f(has)g(an)
-g(arbitrary)f(limit)330 3044 y(of)40 b(126.)69 b(This)38
-b(restriction)h(should)e(b)s(e)i(remo)m(v)m(ed,)k(and)c(if)g(an)m(y)m
-(one)i(considers)d(this)h(a)h(problem)330 3153 y(write)30
-b(me)g(and)g(let)g(me)h(kno)m(w)f(so)h(I)f(can)g(remo)m(v)m(e)i(the)f
-(constrain)m(t.)p eop
-%%Page: 22 24
-22 23 bop 150 -116 a Fs(Chapter)30 b(6:)41 b(Things)28
-b(Still)g(Left)j(to)g(Do)2133 b(22)150 299 y Fp(6)80
+1788 y(cannot)37 b(correctly)h(generate)g(co)s(de)f(for)g(large)g
+(switc)m(h)f(statemen)m(ts)j(it)d(is)g(imp)s(ortan)m(t)g(to)i(qualify)
+330 1898 y(the)i Fo(-S)46 b Fs(option)39 b(with)g(an)h(appropriate)f(n)
+m(umerical)g(argumen)m(t)h(that)h(con)m(trols)g(the)f(n)m(um)m(b)s(er)f
+(of)330 2007 y(switc)m(h)30 b(statemen)m(ts)i(generated.)225
+2142 y Fq(\017)60 b Fs(The)35 b(maxim)m(um)f(n)m(um)m(b)s(er)g(of)i
+(selected)g(b)m(yte)g(p)s(ositions)d(has)i(an)h(arbitrary)e(limit)f(of)
+j(255.)57 b(This)330 2252 y(restriction)27 b(should)f(b)s(e)h(remo)m(v)
+m(ed,)j(and)d(if)g(an)m(y)m(one)i(considers)e(this)g(a)h(problem)e
+(write)i(me)g(and)f(let)330 2361 y(me)j(kno)m(w)h(so)f(I)h(can)f(remo)m
+(v)m(e)i(the)f(constrain)m(t.)p eop
+%%Page: 27 29
+27 28 bop 150 -116 a Fs(Chapter)30 b(6:)41 b(Things)28
+b(Still)g(Left)j(to)g(Do)2133 b(27)150 299 y Fp(6)80
b(Things)54 b(Still)i(Left)d(to)g(Do)275 533 y Fs(It)24
b(should)e(b)s(e)i(\\relativ)m(ely")h(easy)g(to)g(replace)f(the)h
(curren)m(t)f(p)s(erfect)g(hash)g(function)f(algorithm)g(with)150
@@ -3332,56 +3705,27 @@ b(should)e(b)s(e)i(\\relativ)m(ely")h(easy)g(to)g(replace)f(the)h
(hash)e(mo)s(dule)g(is)g(essen)m(tial)h(indep)s(enden)m(t)e(from)i
(other)150 752 y(program)c(mo)s(dules.)39 b(Additional)28
b(w)m(orth)m(while)h(impro)m(v)m(emen)m(ts)i(include:)225
-887 y Fq(\017)60 b Fs(Mak)m(e)38 b(the)e(algorithm)f(more)h(robust.)58
-b(A)m(t)37 b(presen)m(t,)h(the)e(program)g(halts)f(with)g(an)h(error)g
-(diag-)330 996 y(nostic)k(if)g(it)g(can't)i(\014nd)d(a)i(direct)f
-(solution)g(and)g(the)h(`)p Fn(-D)p Fs(')f(option)h(is)e(not)i
-(enabled.)71 b(A)41 b(more)330 1106 y(comprehensiv)m(e,)c(alb)s(eit)d
-(computationally)g(exp)s(ensiv)m(e,)j(approac)m(h)f(w)m(ould)e(emplo)m
-(y)i(bac)m(ktrac)m(k-)330 1215 y(ing)28 b(or)g(enable)g(alternativ)m(e)
-i(options)d(and)h(retry)-8 b(.)41 b(It's)29 b(not)g(clear)f(ho)m(w)h
-(helpful)d(this)h(w)m(ould)h(b)s(e,)g(in)330 1325 y(general,)j(since)e
-(most)i(searc)m(h)g(sets)g(are)g(rather)f(small)f(in)g(practice.)225
-1460 y Fq(\017)60 b Fs(Another)34 b(useful)e(extension)h(in)m(v)m(olv)m
+887 y Fq(\017)60 b Fs(Another)34 b(useful)e(extension)h(in)m(v)m(olv)m
(es)h(mo)s(difying)d(the)j(program)f(to)i(generate)g(\\minimal")d(p)s
-(er-)330 1569 y(fect)42 b(hash)f(functions)e(\(under)i(certain)g
+(er-)330 996 y(fect)42 b(hash)f(functions)e(\(under)i(certain)g
(circumstances,)j(the)d(curren)m(t)g(v)m(ersion)g(can)g(b)s(e)g(rather)
-330 1679 y(extra)m(v)-5 b(agan)m(t)37 b(in)32 b(the)i(generated)h
-(table)e(size\).)51 b(Again,)35 b(this)d(is)h(mostly)h(of)f
-(theoretical)i(in)m(terest,)330 1788 y(since)f(a)h(sparse)f(table)g
-(often)h(pro)s(duces)f(faster)g(lo)s(okups,)h(and)f(use)g(of)h(the)f(`)
-p Fn(-S)p Fs(')h Fn(switch)d Fs(option)330 1898 y(can)27
-b(minimize)e(the)i(data)h(size,)g(at)f(the)h(exp)s(ense)e(of)h(sligh)m
-(tly)f(longer)g(lo)s(okups)g(\(note)i(that)g(the)f(gcc)330
-2007 y(compiler)35 b(generally)g(pro)s(duces)g(go)s(o)s(d)h(co)s(de)g
-(for)g Fn(switch)f Fs(statemen)m(ts,)k(reducing)c(the)h(need)g(for)330
-2117 y(more)31 b(complex)f(sc)m(hemes\).)225 2252 y Fq(\017)60
-b Fs(In)27 b(addition)f(to)j(impro)m(ving)d(the)i(algorithm,)g(it)f(w)m
-(ould)g(also)h(b)s(e)f(useful)f(to)j(generate)g(a)f(C)p
-Fn(++)f Fs(class)330 2361 y(or)j(Ada)h(pac)m(k)-5 b(age)32
-b(as)f(the)f(co)s(de)h(output,)f(in)f(addition)g(to)i(the)g(curren)m(t)
-f(C)g(routines.)p eop
-%%Page: 23 25
-23 24 bop 150 -116 a Fs(Chapter)30 b(7:)41 b(Implemen)m(tation)29
-b(Details)i(of)f(GNU)h Fn(gperf)1499 b Fs(23)150 299
-y Fp(7)80 b(Implemen)l(tation)52 b(Details)j(of)f(GNU)g
-Fm(gperf)275 533 y Fs(A)27 b(pap)s(er)f(describing)f(the)j(high-lev)m
-(el)e(description)f(of)j(the)f(data)h(structures)f(and)g(algorithms)f
-(used)150 643 y(to)e(implemen)m(t)d Fn(gperf)h Fs(will)e(so)s(on)j(b)s
-(e)f(a)m(v)-5 b(ailable.)38 b(This)21 b(pap)s(er)h(is)g(useful)f(not)j
-(only)e(from)g(a)i(main)m(tenance)150 752 y(and)30 b(enhancemen)m(t)h
-(p)s(ersp)s(ectiv)m(e,)f(but)f(also)h(b)s(ecause)h(they)f(demonstrate)h
-(sev)m(eral)g(clev)m(er)g(and)f(useful)150 862 y(programming)e(tec)m
-(hniques,)i(e.g.,)h(`Iteration)f(Num)m(b)s(er')f(b)s(o)s(olean)g(arra)m
-(ys,)h(double)e(hashing,)h(a)h(\\safe")150 971 y(and)i(e\016cien)m(t)g
-(metho)s(d)g(for)g(reading)g(arbitrarily)d(long)j(input)f(from)g(a)i
-(\014le,)f(and)g(a)h(pro)m(v)-5 b(ably)31 b(optimal)150
-1081 y(algorithm)g(for)i(sim)m(ultaneously)d(determining)g(b)s(oth)i
-(the)g(minim)m(um)e(and)i(maxim)m(um)f(elemen)m(ts)h(in)g(a)150
-1191 y(list.)p eop
-%%Page: 24 26
-24 25 bop 150 -116 a Fs(Chapter)30 b(8:)41 b(Bibliograph)m(y)2533
-b(24)150 299 y Fp(8)80 b(Bibliograph)l(y)275 533 y Fs([1])22
+330 1106 y(extra)m(v)-5 b(agan)m(t)39 b(in)c(the)i(generated)g(table)f
+(size\).)59 b(This)35 b(is)g(mostly)h(of)h(theoretical)f(in)m(terest,)j
+(since)330 1215 y(a)g(sparse)f(table)g(often)h(pro)s(duces)e(faster)i
+(lo)s(okups,)g(and)f(use)g(of)h(the)g(`)p Fn(-S)p Fs(')f
+Fn(switch)f Fs(option)h(can)330 1325 y(minimize)e(the)j(data)g(size,)i
+(at)e(the)g(exp)s(ense)f(of)h(sligh)m(tly)e(longer)h(lo)s(okups)f
+(\(note)j(that)f(the)g(gcc)330 1435 y(compiler)c(generally)g(pro)s
+(duces)g(go)s(o)s(d)h(co)s(de)g(for)g Fn(switch)f Fs(statemen)m(ts,)k
+(reducing)c(the)h(need)g(for)330 1544 y(more)31 b(complex)f(sc)m
+(hemes\).)225 1679 y Fq(\017)60 b Fs(In)38 b(addition)f(to)j(impro)m
+(ving)d(the)j(algorithm,)g(it)e(w)m(ould)g(also)h(b)s(e)g(useful)e(to)i
+(generate)i(an)e(Ada)330 1788 y(pac)m(k)-5 b(age)32 b(as)f(the)g(co)s
+(de)f(output,)g(in)f(addition)g(to)i(the)g(curren)m(t)f(C)g(and)g(C)p
+Fn(++)f Fs(routines.)p eop
+%%Page: 28 30
+28 29 bop 150 -116 a Fs(Chapter)30 b(7:)41 b(Bibliograph)m(y)2533
+b(28)150 299 y Fp(7)80 b(Bibliograph)l(y)275 533 y Fs([1])22
b(Chang,)h(C.C.:)36 b Fl(A)24 b(Scheme)h(for)g(Constructing)h(Or)-5
b(der)g(e)g(d)26 b(Minimal)f(Perfe)-5 b(ct)24 b(Hashing)h(F)-7
b(unctions)150 643 y Fs(Information)29 b(Sciences)h(39\(1986\),)k
@@ -3417,26 +3761,30 @@ b(of)h(the)h(A)m(CM,)g(28,)h(5\(Decem)m(b)s(er)g(1985\),)g(523-532)275
2486 y([9])f(Sc)m(hmidt,)e(Douglas)h(C.)g Fl(GPERF:)i(A)g(Perfe)-5
b(ct)32 b(Hash)h(F)-7 b(unction)33 b(Gener)-5 b(ator)42
b Fs(Second)30 b(USENIX)150 2595 y(C)p Fn(++)f Fs(Conference)i(Pro)s
-(ceedings,)f(April)e(1990.)275 2730 y([10])c(Seb)s(esta,)h(R.W.)e(and)g
-(T)-8 b(a)m(ylor,)25 b(M.A.)f Fl(Minimal)i(Perfe)-5 b(ct)26
-b(Hash)g(F)-7 b(unctions)27 b(for)g(R)-5 b(eserve)g(d)27
-b(Wor)-5 b(d)150 2839 y(Lists)38 b Fs(SIGPLAN)30 b(Notices,)i(20,)f
-(12\(Septem)m(b)s(er)g(1985\),)i(47-53.)275 2974 y([11])43
+(ceedings,)f(April)e(1990.)275 2730 y([10])42 b(Sc)m(hmidt,)h(Douglas)e
+(C.)g Fl(GPERF:)i(A)e(Perfe)-5 b(ct)43 b(Hash)g(F)-7
+b(unction)43 b(Gener)-5 b(ator)53 b Fs(C)p Fn(++)40 b
+Fs(Rep)s(ort,)150 2839 y(SIGS)29 b(10)j(10)f(\(No)m(v)m(em)m(b)s
+(er/Decem)m(b)s(er)i(1998\).)275 2974 y([11])24 b(Seb)s(esta,)h(R.W.)e
+(and)g(T)-8 b(a)m(ylor,)25 b(M.A.)f Fl(Minimal)i(Perfe)-5
+b(ct)26 b(Hash)g(F)-7 b(unctions)27 b(for)g(R)-5 b(eserve)g(d)27
+b(Wor)-5 b(d)150 3083 y(Lists)38 b Fs(SIGPLAN)30 b(Notices,)i(20,)f
+(12\(Septem)m(b)s(er)g(1985\),)i(47-53.)275 3218 y([12])43
b(Sprugnoli,)f(R.)g Fl(Perfe)-5 b(ct)43 b(Hashing)h(F)-7
b(unctions:)64 b(A)43 b(Single)g(Pr)-5 b(ob)g(e)44 b(R)-5
-b(etrieving)44 b(Metho)-5 b(d)44 b(for)150 3083 y(Static)33
+b(etrieving)44 b(Metho)-5 b(d)44 b(for)150 3328 y(Static)33
b(Sets)38 b Fs(Comm)m(unications)29 b(of)i(the)f(A)m(CM,)i(20)f(11\(No)
-m(v)m(em)m(b)s(er)i(1977\),)f(841-850.)275 3218 y([12])27
+m(v)m(em)m(b)s(er)i(1977\),)f(841-850.)275 3462 y([13])27
b(Stallman,)f(Ric)m(hard)f(M.)i Fl(Using)h(and)i(Porting)f(GNU)g(CC)39
b Fs(F)-8 b(ree)28 b(Soft)m(w)m(are)f(F)-8 b(oundation,)27
-b(1988.)275 3352 y([13])k(Stroustrup,)e(Bjarne)i Fl(The)h(C)p
+b(1988.)275 3597 y([14])k(Stroustrup,)e(Bjarne)i Fl(The)h(C)p
Fn(++)g Fl(Pr)-5 b(o)g(gr)g(amming)36 b(L)-5 b(anguage.)40
-b Fs(Addison-W)-8 b(esley)g(,)31 b(1986.)275 3487 y([14])g(Tiemann,)e
+b Fs(Addison-W)-8 b(esley)g(,)31 b(1986.)275 3731 y([15])g(Tiemann,)e
(Mic)m(hael)i(D.)g Fl(User's)h(Guide)h(to)g(GNU)f(C)p
Fn(++)e Fs(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)30
b(1989.)p eop
-%%Page: 25 27
-25 26 bop 150 -116 a Fs(Concept)31 b(Index)2927 b(25)150
+%%Page: 29 31
+29 30 bop 150 -116 a Fs(Concept)31 b(Index)2927 b(29)150
299 y Fp(Concept)52 b(Index)150 642 y Fr(\045)150 777
y Fd(`)p Fc(\045\045)p Fd(')12 b Fb(.)i(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
@@ -3444,67 +3792,127 @@ f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
b Fd(12)150 874 y(`)p Fc(\045{)p Fd(')12 b Fb(.)i(.)e(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
-b Fd(12)150 972 y(`)p Fc(\045})p Fd(')12 b Fb(.)i(.)e(.)g(.)h(.)f(.)g
+b Fd(15)150 972 y(`)p Fc(\045})p Fd(')12 b Fb(.)i(.)e(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
-b Fd(12)150 1250 y Fr(A)150 1384 y Fd(Arra)n(y)25 b(name)18
-b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44
-b Fd(17)150 1675 y Fr(B)150 1809 y Fd(Bugs)9 b Fb(.)k(.)g(.)f(.)g(.)g
+b Fd(15)150 1069 y(`)p Fc(\0457bit)p Fd(')8 b Fb(.)14
+b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)33 b Fd(13)150 1167 y(`)p Fc(\045compare-lengths)p
+Fd(')10 b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)36
+b Fd(14)150 1264 y(`)p Fc(\045compare-strncmp)p Fd(')10
+b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)36 b Fd(14)150
+1361 y(`)p Fc(\045define)28 b(class-name)p Fd(')14 b
+Fb(.)g(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fd(13)150 1459 y(`)p
+Fc(\045define)28 b(hash-function-name)p Fd(')c Fb(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46
+b Fd(13)150 1556 y(`)p Fc(\045define)28 b(initializer-suffix)p
+Fd(')c Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+46 b Fd(13)150 1654 y(`)p Fc(\045define)28 b(lookup-function-name)p
+Fd(')18 b Fb(.)e(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43
+b Fd(13)150 1751 y(`)p Fc(\045define)28 b(slot-name)p
+Fd(')15 b Fb(.)g(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fd(13)150
+1849 y(`)p Fc(\045define)28 b(string-pool-name)p Fd(')f
+Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)49 b Fd(14)150 1946 y(`)p Fc(\045define)28 b(word-array-name)p
+Fd(')7 b Fb(.)15 b(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)32 b Fd(15)150 2044 y(`)p Fc(\045delimiters)p
+Fd(')17 b Fb(.)f(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43
+b Fd(12)150 2141 y(`)p Fc(\045enum)p Fd(')8 b Fb(.)14
+b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)33 b Fd(14)150 2239 y(`)p Fc(\045global-table)p
+Fd(')14 b Fb(.)i(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40
+b Fd(14)150 2336 y(`)p Fc(\045ignore-case)p Fd(')16 b
+Fb(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)41
+b Fd(13)150 2434 y(`)p Fc(\045includes)p Fd(')23 b Fb(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46
+b Fd(14)150 2531 y(`)p Fc(\045language)p Fd(')23 b Fb(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46
+b Fd(13)150 2629 y(`)p Fc(\045null-strings)p Fd(')14
+b Fb(.)i(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b
+Fd(15)150 2726 y(`)p Fc(\045omit-struct-type)p Fd(')9
+b Fb(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fd(15)150 2824
+y(`)p Fc(\045pic)p Fd(')9 b Fb(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b
+Fd(14)150 2921 y(`)p Fc(\045readonly-tables)p Fd(')10
+b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)36 b Fd(14)150
+3019 y(`)p Fc(\045struct-type)p Fd(')16 b Fb(.)g(.)c(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)41 b Fd(12)150 3116 y(`)p Fc(\045switch)p
+Fd(')25 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)49 b Fd(15)150 3394 y Fr(A)150 3528 y Fd(Arra)n(y)25
+b(name)18 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)44 b Fd(22)150 3819 y Fr(B)150 3953 y Fd(Bugs)9
+b Fb(.)k(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)35 b Fd(8)150 4243 y Fr(C)150
+4378 y Fd(Class)27 b(name)10 b Fb(.)i(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fd(21)2025 642 y Fr(D)2025
+764 y Fd(Declaration)27 b(section)d Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)49 b Fd(11)2025 855 y(Delimiters)9 b Fb(.)j(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
-(.)35 b Fd(8)150 2100 y Fr(C)150 2235 y Fd(Class)27 b(name)10
-b Fb(.)i(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
-h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35
-b Fd(16)150 2513 y Fr(D)150 2647 y Fd(Declaration)27
-b(section)d Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49
-b Fd(11)150 2745 y(Delimiters)9 b Fb(.)k(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fd(15)150 2842
-y(Duplicates)24 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)h(.)f(.)g(.)49 b Fd(18)150 3133 y Fr(F)150 3267 y
-Fd(F)-6 b(ormat)23 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49 b Fd(11)150 3365 y(F)-6
-b(unctions)25 b(section)18 b Fb(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
-h(.)43 b Fd(11)2025 642 y Fr(H)2025 764 y Fc(hash)13
-b Fb(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
-h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)g(.)h(.)f(.)g(.)h(.)38 b Fd(13)2025 855 y(hash)25
-b(table)9 b Fb(.)k(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fd(19)2025
+946 y(Duplicates)23 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)49 b Fd(23)2025 1203 y Fr(F)2025
+1325 y Fd(F)-6 b(ormat)22 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fd(11)2025
+1416 y(F)-6 b(unctions)25 b(section)18 b Fb(.)13 b(.)f(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)44 b Fd(11)2025 1660 y Fr(H)2025 1781
+y Fc(hash)13 b Fb(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 b Fd(17)2025 1873
+y(hash)25 b(table)9 b Fb(.)k(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)34 b Fd(17)2025 2117 y Fr(I)2025
+2238 y Fc(in_word_set)23 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)46 b Fd(17)2025 2330 y(Initializers)25
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)34 b Fd(13)2025 1100 y Fr(I)2025 1222 y Fc(in_word_set)23
-b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46
-b Fd(14)2025 1313 y(Initializers)25 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fd(16)2025 1557
-y Fr(J)2025 1679 y Fd(Jump)24 b(v)l(alue)6 b Fb(.)13
-b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32
-b Fd(19)2025 1936 y Fr(K)2025 2058 y Fd(Keyw)n(ords)25
+49 b Fd(20)2025 2573 y Fr(J)2025 2695 y Fd(Jump)24 b(v)l(alue)6
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+32 b Fd(24)2025 2952 y Fr(K)2025 3073 y Fd(Keyw)n(ords)25
b(section)16 b Fb(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42
-b Fd(11)2025 2315 y Fr(M)2025 2437 y Fd(Minimal)26 b(p)r(erfect)g(hash)
+b Fd(11)2025 3330 y Fr(M)2025 3452 y Fd(Minimal)26 b(p)r(erfect)g(hash)
g(functions)c Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)48 b Fd(10)2025 2694 y Fr(N)2025 2816 y Fd(NUL)9
+(.)g(.)48 b Fd(10)2025 3708 y Fr(N)2025 3830 y Fd(NUL)9
b Fb(.)j(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)35 b Fd(14)2025 3060 y Fr(S)2025
-3182 y Fd(Slot)26 b(name)13 b Fb(.)e(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+(.)h(.)f(.)g(.)h(.)f(.)35 b Fd(18)2025 4074 y Fr(S)2025
+4195 y Fd(Slot)26 b(name)13 b Fb(.)e(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fd(16)2025 3274 y(Static)26
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fd(20)2025 4287 y(Static)26
b(searc)n(h)g(structure)20 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46
-b Fd(10)2025 3365 y Fc(switch)22 b Fb(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)
+b Fd(10)2025 4378 y Fc(switch)22 b Fb(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fd(14,)27 b(17)p
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fd(18,)27 b(22)p
eop
-%%Page: -1 28
--1 27 bop 3725 -116 a Fs(i)150 299 y Fp(T)-13 b(able)54
+%%Page: -1 32
+-1 31 bop 3725 -116 a Fs(i)150 299 y Fp(T)-13 b(able)54
b(of)g(Con)l(ten)l(ts)150 641 y Fr(GNU)45 b(GENERAL)g(PUBLIC)g(LICENSE)
31 b Fa(.)19 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)75 b
Fr(1)449 778 y Fs(Pream)m(ble)16 b Fl(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g
@@ -3529,45 +3937,56 @@ Fk(gperf)21 b Fa(.)c(.)i(.)h(.)f(.)h(.)65 b Fr(11)449
2296 y Fs(3.1)92 b(Input)29 b(F)-8 b(ormat)32 b(to)f
Fn(gperf)23 b Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)54 b Fs(11)748 2405 y(3.1.1)93 b Fn(struct)28
-b Fs(Declarations)j(and)f(C)g(Co)s(de)g(Inclusion)25
-b Fl(.)15 b(.)g(.)g(.)g(.)g(.)57 b Fs(11)748 2515 y(3.1.2)93
-b(F)-8 b(ormat)31 b(for)f(Keyw)m(ord)g(En)m(tries)17
-b Fl(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)46 b Fs(12)748 2624 y(3.1.3)93 b(Including)27
-b(Additional)h(C)i(F)-8 b(unctions)19 b Fl(.)c(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b Fs(13)449 2734 y(3.2)92
-b(Output)29 b(F)-8 b(ormat)32 b(for)e(Generated)h(C)f(Co)s(de)g(with)f
-Fn(gperf)23 b Fl(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)52
-b Fs(13)449 2844 y(3.3)92 b(Use)31 b(of)f(NUL)h(c)m(haracters)11
-b Fl(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-40 b Fs(14)150 3086 y Fr(4)135 b(In)l(v)l(oking)45 b
-Fk(gperf)16 b Fa(.)i(.)h(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)61
-b Fr(15)449 3223 y Fs(4.1)92 b(Options)29 b(that)i(a\013ect)h(In)m
-(terpretation)e(of)h(the)f(Input)f(File)e Fl(.)15 b(.)g(.)g(.)g(.)g(.)g
-(.)57 b Fs(15)449 3333 y(4.2)92 b(Options)29 b(to)i(sp)s(ecify)e(the)i
-(Language)g(for)f(the)h(Output)e(Co)s(de)14 b Fl(.)g(.)h(.)g(.)g(.)43
-b Fs(15)449 3442 y(4.3)92 b(Options)29 b(for)h(\014ne)g(tuning)f
-(Details)h(in)f(the)i(Output)e(Co)s(de)23 b Fl(.)15 b(.)g(.)g(.)g(.)g
-(.)g(.)53 b Fs(16)449 3552 y(4.4)92 b(Options)29 b(for)h(c)m(hanging)g
-(the)h(Algorithms)e(emplo)m(y)m(ed)h(b)m(y)h Fn(gperf)21
-b Fl(.)14 b(.)50 b Fs(17)449 3661 y(4.5)92 b(Informativ)m(e)30
+g(.)g(.)54 b Fs(11)748 2405 y(3.1.1)93 b(Declarations)9
+b Fl(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)39 b Fs(11)1047 2515 y(3.1.1.1)93 b(User-supplied)28
+b Fn(struct)10 b Fl(.)j(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)39 b Fs(12)1047 2624 y(3.1.1.2)93
+b(Gp)s(erf)30 b(Declarations)18 b Fl(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)47 b Fs(12)1047
+2734 y(3.1.1.3)93 b(C)30 b(Co)s(de)g(Inclusion)d Fl(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)59 b Fs(15)748 2844 y(3.1.2)93 b(F)-8 b(ormat)31
+b(for)f(Keyw)m(ord)g(En)m(tries)17 b Fl(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b Fs(15)748
+2953 y(3.1.3)93 b(Including)27 b(Additional)h(C)i(F)-8
+b(unctions)19 b Fl(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)49 b Fs(16)748 3063 y(3.1.4)93 b(Where)30 b(to)h(place)g
+(directiv)m(es)e(for)i(GNU)g Fn(indent)p Fs(.)17 b Fl(.)c(.)i(.)g(.)g
+(.)g(.)46 b Fs(16)449 3172 y(3.2)92 b(Output)29 b(F)-8
+b(ormat)32 b(for)e(Generated)h(C)f(Co)s(de)g(with)f Fn(gperf)23
+b Fl(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)52 b Fs(17)449
+3282 y(3.3)92 b(Use)31 b(of)f(NUL)h(b)m(ytes)22 b Fl(.)16
+b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
+f(.)g(.)51 b Fs(18)150 3524 y Fr(4)135 b(In)l(v)l(oking)45
+b Fk(gperf)16 b Fa(.)i(.)h(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)61
+b Fr(19)449 3661 y Fs(4.1)92 b(Sp)s(ecifying)28 b(the)i(Lo)s(cation)h
+(of)f(the)h(Output)e(File)19 b Fl(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)49 b Fs(19)449 3771 y(4.2)92 b(Options)29
+b(that)i(a\013ect)h(In)m(terpretation)e(of)h(the)f(Input)f(File)e
+Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)57 b Fs(19)449 3880 y(4.3)92
+b(Options)29 b(to)i(sp)s(ecify)e(the)i(Language)g(for)f(the)h(Output)e
+(Co)s(de)14 b Fl(.)g(.)h(.)g(.)g(.)43 b Fs(19)449 3990
+y(4.4)92 b(Options)29 b(for)h(\014ne)g(tuning)f(Details)h(in)f(the)i
+(Output)e(Co)s(de)23 b Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)53
+b Fs(20)449 4100 y(4.5)92 b(Options)29 b(for)h(c)m(hanging)g(the)h
+(Algorithms)e(emplo)m(y)m(ed)h(b)m(y)h Fn(gperf)21 b
+Fl(.)14 b(.)50 b Fs(23)449 4209 y(4.6)92 b(Informativ)m(e)30
b(Output)d Fl(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)58 b Fs(20)150 3904 y Fr(5)135 b(Kno)l(wn)45
+(.)g(.)g(.)g(.)g(.)58 b Fs(25)150 4452 y Fr(5)135 b(Kno)l(wn)45
b(Bugs)f(and)h(Limitations)i(with)e Fk(gperf)32 b Fa(.)19
-b(.)g(.)79 b Fr(21)150 4174 y(6)135 b(Things)44 b(Still)i(Left)g(to)f
+b(.)g(.)79 b Fr(26)150 4721 y(6)135 b(Things)44 b(Still)i(Left)g(to)f
(Do)23 b Fa(.)d(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
-(.)f(.)g(.)h(.)f(.)68 b Fr(22)150 4443 y(7)135 b(Implemen)l(tation)47
-b(Details)g(of)e(GNU)g Fk(gperf)37 b Fa(.)19 b(.)g(.)h(.)f(.)84
-b Fr(23)150 4713 y(8)135 b(Bibliograph)l(y)38 b Fa(.)19
-b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
-(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)82 b Fr(24)150
-4983 y(Concept)45 b(Index)21 b Fa(.)e(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
-f(.)h(.)f(.)h(.)65 b Fr(25)p eop
+(.)f(.)g(.)h(.)f(.)68 b Fr(27)150 4991 y(7)135 b(Bibliograph)l(y)38
+b Fa(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)82
+b Fr(28)150 5261 y(Concept)45 b(Index)21 b Fa(.)e(.)g(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
+f(.)g(.)h(.)f(.)h(.)f(.)h(.)65 b Fr(29)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if