reSIProcate/stack  9694
HeaderHash.cxx
Go to the documentation of this file.
00001 /* C++ code produced by gperf version 3.0.4 */
00002 /* Command-line: gperf -C -D -E -L C++ -t -k '*' --compare-strncmp --ignore-case -Z HeaderHash HeaderHash.gperf  */
00003 
00004 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
00005       && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
00006       && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
00007       && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
00008       && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
00009       && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
00010       && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
00011       && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
00012       && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
00013       && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
00014       && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
00015       && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
00016       && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
00017       && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
00018       && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
00019       && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
00020       && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
00021       && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
00022       && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
00023       && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
00024       && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
00025       && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
00026       && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
00027 /* The character set is not based on ISO-646.  */
00028 #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
00029 #endif
00030 
00031 #line 1 "HeaderHash.gperf"
00032 
00033 #include <string.h>
00034 #include <ctype.h>
00035 #include "resip/stack/HeaderTypes.hxx"
00036 
00037 namespace resip
00038 {
00039 using namespace std;
00040 #line 10 "HeaderHash.gperf"
00041 struct headers { const char *name; Headers::Type type; };
00042 /* maximum key range = 430, duplicates = 0 */
00043 
00044 #ifndef GPERF_DOWNCASE
00045 #define GPERF_DOWNCASE 1
00046 static unsigned char gperf_downcase[256] =
00047   {
00048       0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
00049      15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
00050      30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
00051      45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
00052      60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
00053     107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
00054     122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
00055     105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
00056     120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
00057     135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
00058     150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
00059     165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
00060     180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
00061     195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
00062     210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
00063     225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
00064     240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
00065     255
00066   };
00067 #endif
00068 
00069 #ifndef GPERF_CASE_STRNCMP
00070 #define GPERF_CASE_STRNCMP 1
00071 static int
00072 gperf_case_strncmp (register const char *s1, register const char *s2, register unsigned int n)
00073 {
00074   for (; n > 0;)
00075     {
00076       unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
00077       unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
00078       if (c1 != 0 && c1 == c2)
00079         {
00080           n--;
00081           continue;
00082         }
00083       return (int)c1 - (int)c2;
00084     }
00085   return 0;
00086 }
00087 #endif
00088 
00089 class HeaderHash
00090 {
00091 private:
00092   static inline unsigned int hash (const char *str, unsigned int len);
00093 public:
00094   static const struct headers *in_word_set (const char *str, unsigned int len);
00095 };
00096 
00097 inline unsigned int
00098 HeaderHash::hash (register const char *str, register unsigned int len)
00099 {
00100   static const unsigned short asso_values[] =
00101     {
00102       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00103       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00104       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00105       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00106       431, 431, 431, 431, 431,   0, 431, 431, 431, 431,
00107       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00108       431, 431, 431, 431, 431,   0,  55,  15,   0,  30,
00109        35,  10,   5,  25,   5,  70,  40,  75,   0,   5,
00110         0,  25,  10,  50,   0,  10,  45,   0,  60,  20,
00111        50, 431, 431, 431, 431, 431, 431,   0,  55,  15,
00112         0,  30,  35,  10,   5,  25,   5,  70,  40,  75,
00113         0,   5,   0,  25,  10,  50,   0,  10,  45,   0,
00114        60,  20,  50, 431, 431, 431, 431, 431, 431, 431,
00115       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00116       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00117       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00118       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00119       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00120       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00121       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00122       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00123       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00124       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00125       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00126       431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
00127       431, 431, 431, 431, 431, 431
00128     };
00129   register int hval = len;
00130 
00131   switch (hval)
00132     {
00133       default:
00134         hval += asso_values[(unsigned char)str[24]];
00135       /*FALLTHROUGH*/
00136       case 24:
00137         hval += asso_values[(unsigned char)str[23]];
00138       /*FALLTHROUGH*/
00139       case 23:
00140         hval += asso_values[(unsigned char)str[22]];
00141       /*FALLTHROUGH*/
00142       case 22:
00143         hval += asso_values[(unsigned char)str[21]];
00144       /*FALLTHROUGH*/
00145       case 21:
00146         hval += asso_values[(unsigned char)str[20]];
00147       /*FALLTHROUGH*/
00148       case 20:
00149         hval += asso_values[(unsigned char)str[19]];
00150       /*FALLTHROUGH*/
00151       case 19:
00152         hval += asso_values[(unsigned char)str[18]];
00153       /*FALLTHROUGH*/
00154       case 18:
00155         hval += asso_values[(unsigned char)str[17]];
00156       /*FALLTHROUGH*/
00157       case 17:
00158         hval += asso_values[(unsigned char)str[16]];
00159       /*FALLTHROUGH*/
00160       case 16:
00161         hval += asso_values[(unsigned char)str[15]];
00162       /*FALLTHROUGH*/
00163       case 15:
00164         hval += asso_values[(unsigned char)str[14]];
00165       /*FALLTHROUGH*/
00166       case 14:
00167         hval += asso_values[(unsigned char)str[13]];
00168       /*FALLTHROUGH*/
00169       case 13:
00170         hval += asso_values[(unsigned char)str[12]];
00171       /*FALLTHROUGH*/
00172       case 12:
00173         hval += asso_values[(unsigned char)str[11]];
00174       /*FALLTHROUGH*/
00175       case 11:
00176         hval += asso_values[(unsigned char)str[10]];
00177       /*FALLTHROUGH*/
00178       case 10:
00179         hval += asso_values[(unsigned char)str[9]];
00180       /*FALLTHROUGH*/
00181       case 9:
00182         hval += asso_values[(unsigned char)str[8]];
00183       /*FALLTHROUGH*/
00184       case 8:
00185         hval += asso_values[(unsigned char)str[7]];
00186       /*FALLTHROUGH*/
00187       case 7:
00188         hval += asso_values[(unsigned char)str[6]];
00189       /*FALLTHROUGH*/
00190       case 6:
00191         hval += asso_values[(unsigned char)str[5]];
00192       /*FALLTHROUGH*/
00193       case 5:
00194         hval += asso_values[(unsigned char)str[4]];
00195       /*FALLTHROUGH*/
00196       case 4:
00197         hval += asso_values[(unsigned char)str[3]];
00198       /*FALLTHROUGH*/
00199       case 3:
00200         hval += asso_values[(unsigned char)str[2]];
00201       /*FALLTHROUGH*/
00202       case 2:
00203         hval += asso_values[(unsigned char)str[1]];
00204       /*FALLTHROUGH*/
00205       case 1:
00206         hval += asso_values[(unsigned char)str[0]];
00207         break;
00208     }
00209   return hval;
00210 }
00211 
00212 const struct headers *
00213 HeaderHash::in_word_set (register const char *str, register unsigned int len)
00214 {
00215   enum
00216     {
00217       TOTAL_KEYWORDS = 101,
00218       MIN_WORD_LENGTH = 1,
00219       MAX_WORD_LENGTH = 25,
00220       MIN_HASH_VALUE = 1,
00221       MAX_HASH_VALUE = 430
00222     };
00223 
00224   static const struct headers wordlist[] =
00225     {
00226 #line 20 "HeaderHash.gperf"
00227       {"t", Headers::To},
00228 #line 26 "HeaderHash.gperf"
00229       {"o", Headers::Event},
00230 #line 36 "HeaderHash.gperf"
00231       {"to", Headers::To},
00232 #line 92 "HeaderHash.gperf"
00233       {"path", Headers::Path},
00234 #line 22 "HeaderHash.gperf"
00235       {"r", Headers::ReferTo},
00236 #line 16 "HeaderHash.gperf"
00237       {"c", Headers::ContentType},
00238 #line 25 "HeaderHash.gperf"
00239       {"y", Headers::Identity},
00240 #line 12 "HeaderHash.gperf"
00241       {"i", Headers::CallID},
00242 #line 14 "HeaderHash.gperf"
00243       {"e", Headers::ContentEncoding},
00244 #line 52 "HeaderHash.gperf"
00245       {"date", Headers::Date},
00246 #line 17 "HeaderHash.gperf"
00247       {"f", Headers::From},
00248 #line 86 "HeaderHash.gperf"
00249       {"join", Headers::Join},
00250 #line 15 "HeaderHash.gperf"
00251       {"l", Headers::ContentLength},
00252 #line 29 "HeaderHash.gperf"
00253       {"contact", Headers::Contact},
00254 #line 21 "HeaderHash.gperf"
00255       {"v", Headers::Via},
00256 #line 18 "HeaderHash.gperf"
00257       {"s", Headers::Subject},
00258 #line 76 "HeaderHash.gperf"
00259       {"warning", Headers::Warning},
00260 #line 23 "HeaderHash.gperf"
00261       {"b", Headers::ReferredBy},
00262 #line 34 "HeaderHash.gperf"
00263       {"route", Headers::Route},
00264 #line 24 "HeaderHash.gperf"
00265       {"x", Headers::SessionExpires},
00266 #line 83 "HeaderHash.gperf"
00267       {"hide", Headers::UNKNOWN},
00268 #line 38 "HeaderHash.gperf"
00269       {"accept", Headers::Accept},
00270 #line 19 "HeaderHash.gperf"
00271       {"k", Headers::Supported},
00272 #line 37 "HeaderHash.gperf"
00273       {"via", Headers::Via},
00274 #line 13 "HeaderHash.gperf"
00275       {"m", Headers::Contact},
00276 #line 47 "HeaderHash.gperf"
00277       {"content-id", Headers::ContentId},
00278 #line 43 "HeaderHash.gperf"
00279       {"allow", Headers::Allow},
00280 #line 95 "HeaderHash.gperf"
00281       {"rack", Headers::RAck},
00282 #line 96 "HeaderHash.gperf"
00283       {"reason", Headers::Reason},
00284 #line 58 "HeaderHash.gperf"
00285       {"priority", Headers::Priority},
00286 #line 84 "HeaderHash.gperf"
00287       {"identity", Headers::Identity},
00288 #line 39 "HeaderHash.gperf"
00289       {"accept-contact", Headers::AcceptContact},
00290 #line 82 "HeaderHash.gperf"
00291       {"event", Headers::Event},
00292 #line 50 "HeaderHash.gperf"
00293       {"content-type", Headers::ContentType},
00294 #line 63 "HeaderHash.gperf"
00295       {"reply-to", Headers::ReplyTo},
00296 #line 70 "HeaderHash.gperf"
00297       {"supported", Headers::Supported},
00298 #line 81 "HeaderHash.gperf"
00299       {"encryption", Headers::UNKNOWN},
00300 #line 103 "HeaderHash.gperf"
00301       {"rseq", Headers::RSeq},
00302 #line 94 "HeaderHash.gperf"
00303       {"privacy", Headers::Privacy},
00304 #line 68 "HeaderHash.gperf"
00305       {"sip-etag", Headers::SIPETag},
00306 #line 27 "HeaderHash.gperf"
00307       {"cseq", Headers::CSeq},
00308 #line 74 "HeaderHash.gperf"
00309       {"unsupported", Headers::Unsupported},
00310 #line 28 "HeaderHash.gperf"
00311       {"call-id", Headers::CallID},
00312 #line 97 "HeaderHash.gperf"
00313       {"refer-to",Headers::ReferTo},
00314 #line 32 "HeaderHash.gperf"
00315       {"from", Headers::From},
00316 #line 77 "HeaderHash.gperf"
00317       {"www-authenticate",Headers::WWWAuthenticate},
00318 #line 62 "HeaderHash.gperf"
00319       {"record-route", Headers::RecordRoute},
00320 #line 100 "HeaderHash.gperf"
00321       {"reject-contact", Headers::RejectContact},
00322 #line 53 "HeaderHash.gperf"
00323       {"error-info", Headers::ErrorInfo},
00324 #line 54 "HeaderHash.gperf"
00325       {"in-reply-to", Headers::InReplyTo},
00326 #line 57 "HeaderHash.gperf"
00327       {"organization", Headers::Organization},
00328 #line 93 "HeaderHash.gperf"
00329       {"target-dialog", Headers::TargetDialog},
00330 #line 64 "HeaderHash.gperf"
00331       {"require", Headers::Require},
00332 #line 79 "HeaderHash.gperf"
00333       {"authorization", Headers::Authorization},
00334 #line 30 "HeaderHash.gperf"
00335       {"content-length", Headers::ContentLength},
00336 #line 75 "HeaderHash.gperf"
00337       {"user-agent", Headers::UserAgent},
00338 #line 48 "HeaderHash.gperf"
00339       {"content-encoding", Headers::ContentEncoding},
00340 #line 42 "HeaderHash.gperf"
00341       {"alert-info",Headers::AlertInfo},
00342 #line 65 "HeaderHash.gperf"
00343       {"retry-after", Headers::RetryAfter},
00344 #line 40 "HeaderHash.gperf"
00345       {"accept-encoding", Headers::AcceptEncoding},
00346 #line 49 "HeaderHash.gperf"
00347       {"content-language", Headers::ContentLanguage},
00348 #line 45 "HeaderHash.gperf"
00349       {"call-info", Headers::CallInfo},
00350 #line 35 "HeaderHash.gperf"
00351       {"subject", Headers::Subject},
00352 #line 41 "HeaderHash.gperf"
00353       {"accept-language", Headers::AcceptLanguage},
00354 #line 85 "HeaderHash.gperf"
00355       {"identity-info", Headers::IdentityInfo},
00356 #line 67 "HeaderHash.gperf"
00357       {"server", Headers::Server},
00358 #line 99 "HeaderHash.gperf"
00359       {"replaces",Headers::Replaces},
00360 #line 109 "HeaderHash.gperf"
00361       {"min-se", Headers::MinSE},
00362 #line 112 "HeaderHash.gperf"
00363       {"history-info", Headers::HistoryInfo},
00364 #line 89 "HeaderHash.gperf"
00365       {"p-called-party-id", Headers::PCalledPartyId},
00366 #line 44 "HeaderHash.gperf"
00367       {"authentication-info", Headers::AuthenticationInfo},
00368 #line 72 "HeaderHash.gperf"
00369       {"answer-mode", Headers::AnswerMode},
00370 #line 31 "HeaderHash.gperf"
00371       {"expires", Headers::Expires},
00372 #line 111 "HeaderHash.gperf"
00373       {"remote-party-id", Headers::RemotePartyId},
00374 #line 59 "HeaderHash.gperf"
00375       {"proxy-authenticate", Headers::ProxyAuthenticate},
00376 #line 66 "HeaderHash.gperf"
00377       {"flow-timer", Headers::FlowTimer},
00378 #line 88 "HeaderHash.gperf"
00379       {"p-associated-uri", Headers::PAssociatedUri},
00380 #line 110 "HeaderHash.gperf"
00381       {"refer-sub", Headers::ReferSub},
00382 #line 98 "HeaderHash.gperf"
00383       {"referred-by",Headers::ReferredBy},
00384 #line 69 "HeaderHash.gperf"
00385       {"sip-if-match", Headers::SIPIfMatch},
00386 #line 61 "HeaderHash.gperf"
00387       {"proxy-require", Headers::ProxyRequire},
00388 #line 60 "HeaderHash.gperf"
00389       {"proxy-authorization", Headers::ProxyAuthorization},
00390 #line 80 "HeaderHash.gperf"
00391       {"allow-events", Headers::AllowEvents},
00392 #line 46 "HeaderHash.gperf"
00393       {"content-disposition", Headers::ContentDisposition},
00394 #line 33 "HeaderHash.gperf"
00395       {"max-forwards", Headers::MaxForwards},
00396 #line 71 "HeaderHash.gperf"
00397       {"timestamp", Headers::Timestamp},
00398 #line 107 "HeaderHash.gperf"
00399       {"service-route", Headers::ServiceRoute},
00400 #line 91 "HeaderHash.gperf"
00401       {"p-preferred-identity", Headers::PPreferredIdentity},
00402 #line 104 "HeaderHash.gperf"
00403       {"security-client", Headers::SecurityClient},
00404 #line 90 "HeaderHash.gperf"
00405       {"p-media-authorization", Headers::PMediaAuthorization},
00406 #line 87 "HeaderHash.gperf"
00407       {"p-asserted-identity", Headers::PAssertedIdentity},
00408 #line 51 "HeaderHash.gperf"
00409       {"content-transfer-encoding", Headers::ContentTransferEncoding},
00410 #line 73 "HeaderHash.gperf"
00411       {"priv-answer-mode", Headers::PrivAnswerMode},
00412 #line 102 "HeaderHash.gperf"
00413       {"response-key", Headers::UNKNOWN},
00414 #line 55 "HeaderHash.gperf"
00415       {"min-expires", Headers::MinExpires},
00416 #line 106 "HeaderHash.gperf"
00417       {"security-verify", Headers::SecurityVerify},
00418 #line 78 "HeaderHash.gperf"
00419       {"subscription-state",Headers::SubscriptionState},
00420 #line 105 "HeaderHash.gperf"
00421       {"security-server", Headers::SecurityServer},
00422 #line 101 "HeaderHash.gperf"
00423       {"request-disposition", Headers::RequestDisposition},
00424 #line 56 "HeaderHash.gperf"
00425       {"mime-version", Headers::MIMEVersion},
00426 #line 108 "HeaderHash.gperf"
00427       {"session-expires", Headers::SessionExpires}
00428     };
00429 
00430   static const signed char lookup[] =
00431     {
00432        -1,   0,  -1,  -1,  -1,  -1,   1,   2,  -1,   3,
00433        -1,   4,  -1,  -1,  -1,  -1,   5,  -1,  -1,  -1,
00434        -1,   6,  -1,  -1,  -1,  -1,   7,  -1,  -1,  -1,
00435        -1,   8,  -1,  -1,   9,  -1,  10,  -1,  -1,  11,
00436        -1,  12,  13,  -1,  -1,  -1,  14,  -1,  -1,  -1,
00437        -1,  15,  16,  -1,  -1,  -1,  17,  -1,  -1,  -1,
00438        18,  19,  -1,  -1,  20,  -1,  21,  -1,  -1,  -1,
00439        -1,  22,  -1,  23,  -1,  -1,  24,  -1,  -1,  -1,
00440        -1,  -1,  -1,  -1,  -1,  25,  -1,  -1,  -1,  -1,
00441        26,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  27,
00442        -1,  28,  -1,  29,  -1,  -1,  -1,  -1,  30,  31,
00443        32,  -1,  33,  34,  35,  36,  -1,  -1,  -1,  37,
00444        -1,  -1,  38,  39,  40,  -1,  41,  42,  43,  44,
00445        -1,  45,  -1,  -1,  -1,  -1,  -1,  46,  -1,  47,
00446        48,  49,  50,  51,  -1,  -1,  -1,  52,  53,  54,
00447        55,  56,  -1,  -1,  -1,  57,  58,  -1,  -1,  -1,
00448        59,  -1,  -1,  -1,  -1,  -1,  60,  -1,  -1,  61,
00449        -1,  -1,  62,  -1,  -1,  63,  -1,  -1,  64,  -1,
00450        -1,  65,  -1,  66,  -1,  -1,  67,  -1,  -1,  -1,
00451        -1,  -1,  68,  -1,  -1,  -1,  -1,  69,  -1,  70,
00452        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00453        -1,  71,  72,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00454        73,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  74,  -1,
00455        75,  -1,  -1,  -1,  -1,  -1,  76,  -1,  -1,  77,
00456        -1,  78,  79,  -1,  -1,  -1,  -1,  -1,  80,  81,
00457        -1,  -1,  82,  -1,  83,  -1,  -1,  84,  -1,  -1,
00458        -1,  -1,  -1,  -1,  85,  -1,  -1,  -1,  -1,  -1,
00459        -1,  -1,  -1,  86,  -1,  87,  -1,  -1,  -1,  -1,
00460        -1,  -1,  -1,  -1,  -1,  88,  89,  -1,  -1,  90,
00461        -1,  -1,  -1,  -1,  -1,  91,  92,  -1,  -1,  -1,
00462        -1,  -1,  -1,  -1,  -1,  -1,  -1,  93,  -1,  -1,
00463        -1,  -1,  -1,  -1,  -1,  -1,  94,  -1,  -1,  -1,
00464        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00465        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00466        95,  -1,  -1,  96,  -1,  -1,  -1,  -1,  -1,  -1,
00467        97,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  98,
00468        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00469        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00470        -1,  -1,  99,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00471        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00472        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00473        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00474        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
00475       100
00476     };
00477 
00478   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
00479     {
00480       register int key = hash (str, len);
00481 
00482       if (key <= MAX_HASH_VALUE && key >= 0)
00483         {
00484           register int index = lookup[key];
00485 
00486           if (index >= 0)
00487             {
00488               register const char *s = wordlist[index].name;
00489 
00490               if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0')
00491                 return &wordlist[index];
00492             }
00493         }
00494     }
00495   return 0;
00496 }
00497 #line 113 "HeaderHash.gperf"
00498 
00499 }