WebCore:
authorkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Dec 2004 22:53:05 +0000 (22:53 +0000)
committerkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Dec 2004 22:53:05 +0000 (22:53 +0000)
        Reviewed by me

        Roll out some recent changes by Chris that caused a performance regression.
        Fix is in hand, but it is a little risky this close to a submission. So,
        we have decided to roll back the change with the regression and roll in
        the new code after we submit.

        * khtml/css/cssproperties.c:
        (hash_prop):
        (findProp):
        * khtml/css/cssvalues.c:
        (hash_val):
        (findValue):
        * khtml/misc/htmlattrs.c:
        (hash_attr):
        (findAttr):
        * khtml/misc/htmltags.c:
        (hash_tag):
        (findTag):
        * khtml/misc/loader.cpp:
        (CachedObject::~CachedObject):
        (CachedObject::setResponse):
        (CachedCSSStyleSheet::checkNotify):
        (Loader::servePendingRequests):
        (Loader::slotFinished):
        (Loader::slotReceivedResponse):
        (Cache::requestImage):
        (Cache::requestScript):
        * khtml/misc/loader.h:
        (khtml::CachedObject::CachedObject):
        (khtml::CachedObject::response):
        * kwq/KWQKJobClasses.h:
        * kwq/KWQKJobClasses.mm:
        (KIO::TransferJobPrivate::TransferJobPrivate):
        (KIO::TransferJobPrivate::~TransferJobPrivate):
        (KIO::TransferJob::TransferJob):
        (KIO::TransferJob::assembleResponseHeaders):
        (KIO::TransferJob::retrieveCharset):
        (KIO::TransferJob::emitResult):
        (KIO::TransferJob::emitReceivedResponse):
        * kwq/KWQLoader.h:
        * kwq/KWQLoader.mm:
        (KWQHeaderStringFromDictionary):
        (KWQCheckCacheObjectStatus):
        (KWQRetainResponse):
        (KWQReleaseResponse):
        (KWQIsResponseURLEqualToURL):
        (KWQResponseURL):
        (KWQResponseMIMEType):
        (KWQResponseTextEncodingName):
        (KWQResponseHeaderString):
        (KWQCacheObjectExpiresTime):
        (KWQLoader::KWQLoader):
        * kwq/KWQPixmap.h:
        * kwq/KWQPixmap.mm:
        (QPixmap::QPixmap):
        * kwq/KWQResourceLoader.mm:
        (-[KWQResourceLoader finishJobAndHandle]):
        (-[KWQResourceLoader cancel]):
        (-[KWQResourceLoader reportError]):
        (-[KWQResourceLoader finish]):
        * kwq/KWQSignal.h:
        * kwq/KWQSignal.mm:
        (KWQSignal::call):
        * kwq/KWQSlot.h:
        * kwq/KWQSlot.mm:
        (KWQSlot::KWQSlot):
        (KWQSlot::call):
        * kwq/WebCoreBridge.h:
        * kwq/WebCoreResourceLoader.h:

WebKit:

        Reviewed by me

        Roll out some recent changes by Chris that caused a performance regression.
        Fix is in hand, but it is a little risky this close to a submission. So,
        we have decided to roll back the change with the regression and roll in
        the new code after we submit.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge objectLoadedFromCacheWithURL:response:size:]):
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (-[WebSubresourceClient didFinishLoading]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _opened]):
        (-[WebFrame _internalLoadDelegate]):
        * WebView.subproj/WebFrameInternal.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8114 268f45cc-cd09-0410-ab3c-d52691b4dbfc

26 files changed:
WebCore/ChangeLog-2005-08-23
WebCore/khtml/css/cssproperties.c
WebCore/khtml/css/cssvalues.c
WebCore/khtml/misc/htmlattrs.c
WebCore/khtml/misc/htmltags.c
WebCore/khtml/misc/loader.cpp
WebCore/khtml/misc/loader.h
WebCore/kwq/KWQKJobClasses.h
WebCore/kwq/KWQKJobClasses.mm
WebCore/kwq/KWQLoader.h
WebCore/kwq/KWQLoader.mm
WebCore/kwq/KWQPixmap.h
WebCore/kwq/KWQPixmap.mm
WebCore/kwq/KWQResourceLoader.mm
WebCore/kwq/KWQSignal.h
WebCore/kwq/KWQSignal.mm
WebCore/kwq/KWQSlot.h
WebCore/kwq/KWQSlot.mm
WebCore/kwq/WebCoreBridge.h
WebCore/kwq/WebCoreResourceLoader.h
WebKit/ChangeLog
WebKit/WebCoreSupport.subproj/WebBridge.m
WebKit/WebCoreSupport.subproj/WebSubresourceClient.m
WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m
WebKit/WebView.subproj/WebFrame.m
WebKit/WebView.subproj/WebFrameInternal.h

index 4f4b94b90f72ea48a0ea19610613e6e8526f41b5..51fcb330c76408d8146346bb828caa52046c8a1d 100644 (file)
@@ -1,3 +1,76 @@
+2004-12-03  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by me
+
+        Roll out some recent changes by Chris that caused a performance regression.
+        Fix is in hand, but it is a little risky this close to a submission. So,
+        we have decided to roll back the change with the regression and roll in
+        the new code after we submit.
+
+        * khtml/css/cssproperties.c:
+        (hash_prop):
+        (findProp):
+        * khtml/css/cssvalues.c:
+        (hash_val):
+        (findValue):
+        * khtml/misc/htmlattrs.c:
+        (hash_attr):
+        (findAttr):
+        * khtml/misc/htmltags.c:
+        (hash_tag):
+        (findTag):
+        * khtml/misc/loader.cpp:
+        (CachedObject::~CachedObject):
+        (CachedObject::setResponse):
+        (CachedCSSStyleSheet::checkNotify):
+        (Loader::servePendingRequests):
+        (Loader::slotFinished):
+        (Loader::slotReceivedResponse):
+        (Cache::requestImage):
+        (Cache::requestScript):
+        * khtml/misc/loader.h:
+        (khtml::CachedObject::CachedObject):
+        (khtml::CachedObject::response):
+        * kwq/KWQKJobClasses.h:
+        * kwq/KWQKJobClasses.mm:
+        (KIO::TransferJobPrivate::TransferJobPrivate):
+        (KIO::TransferJobPrivate::~TransferJobPrivate):
+        (KIO::TransferJob::TransferJob):
+        (KIO::TransferJob::assembleResponseHeaders):
+        (KIO::TransferJob::retrieveCharset):
+        (KIO::TransferJob::emitResult):
+        (KIO::TransferJob::emitReceivedResponse):
+        * kwq/KWQLoader.h:
+        * kwq/KWQLoader.mm:
+        (KWQHeaderStringFromDictionary):
+        (KWQCheckCacheObjectStatus):
+        (KWQRetainResponse):
+        (KWQReleaseResponse):
+        (KWQIsResponseURLEqualToURL):
+        (KWQResponseURL):
+        (KWQResponseMIMEType):
+        (KWQResponseTextEncodingName):
+        (KWQResponseHeaderString):
+        (KWQCacheObjectExpiresTime):
+        (KWQLoader::KWQLoader):
+        * kwq/KWQPixmap.h:
+        * kwq/KWQPixmap.mm:
+        (QPixmap::QPixmap):
+        * kwq/KWQResourceLoader.mm:
+        (-[KWQResourceLoader finishJobAndHandle]):
+        (-[KWQResourceLoader cancel]):
+        (-[KWQResourceLoader reportError]):
+        (-[KWQResourceLoader finish]):
+        * kwq/KWQSignal.h:
+        * kwq/KWQSignal.mm:
+        (KWQSignal::call):
+        * kwq/KWQSlot.h:
+        * kwq/KWQSlot.mm:
+        (KWQSlot::KWQSlot):
+        (KWQSlot::call):
+        * kwq/WebCoreBridge.h:
+        * kwq/WebCoreResourceLoader.h:
+
 2004-12-03  John Sullivan  <sullivan@apple.com>
 
         Reviewed by Chris.
index 192244c9a97ae2b97951f3085230437e05f4415c..a9917d03e30a4c87200f9bcee9d4982d37124570 100644 (file)
@@ -1,13 +1,44 @@
-/* ANSI-C code produced by gperf version 2.7.2 */
+/* ANSI-C code produced by gperf version 3.0.1 */
 /* Command-line: gperf -a -L ANSI-C -E -C -c -o -t -k '*' -NfindProp -Hhash_prop -Wwordlist_prop -D -s 2 cssproperties.gperf  */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "cssproperties.gperf"
+
 /* This file is automatically generated from cssproperties.in by makeprop, do not edit */
 /* Copyright 1999 W. Bastian */
 #include "cssproperties.h"
+#line 6 "cssproperties.gperf"
 struct props {
     const char *name;
     int id;
 };
-/* maximum key range = 1493, duplicates = 0 */
+/* maximum key range = 514, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -21,100 +52,130 @@ hash_prop (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513,    0, 1513, 1513, 1513, 1513,
-      1513,    5, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513,   20,   40,   45,
-         0,    0,  305,   15,    0,    0,    0,   10,    0,   65,
-       430,    0,   35,   55,    0,   30,    0,   50,  115,  285,
-         0,  210,    0, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
-      1513, 1513, 1513, 1513, 1513, 1513
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517,   0, 517, 517, 517, 517,
+      517,   5, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517,   0,   0,   0,
+        0,   5, 135,  25,  15,   0,   5,  25,   0,   0,
+        0,   0,   0,  45,   0,  25,   0,  70,  40, 205,
+      110, 210,  15, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+      517, 517, 517, 517, 517, 517
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
-      case 32:
         hval += asso_values[(unsigned char)str[31]];
+      /*FALLTHROUGH*/
       case 31:
         hval += asso_values[(unsigned char)str[30]];
+      /*FALLTHROUGH*/
       case 30:
         hval += asso_values[(unsigned char)str[29]];
+      /*FALLTHROUGH*/
       case 29:
         hval += asso_values[(unsigned char)str[28]];
+      /*FALLTHROUGH*/
       case 28:
         hval += asso_values[(unsigned char)str[27]];
+      /*FALLTHROUGH*/
       case 27:
         hval += asso_values[(unsigned char)str[26]];
+      /*FALLTHROUGH*/
       case 26:
         hval += asso_values[(unsigned char)str[25]];
+      /*FALLTHROUGH*/
       case 25:
         hval += asso_values[(unsigned char)str[24]];
+      /*FALLTHROUGH*/
       case 24:
         hval += asso_values[(unsigned char)str[23]];
+      /*FALLTHROUGH*/
       case 23:
         hval += asso_values[(unsigned char)str[22]];
+      /*FALLTHROUGH*/
       case 22:
         hval += asso_values[(unsigned char)str[21]];
+      /*FALLTHROUGH*/
       case 21:
         hval += asso_values[(unsigned char)str[20]];
+      /*FALLTHROUGH*/
       case 20:
         hval += asso_values[(unsigned char)str[19]];
+      /*FALLTHROUGH*/
       case 19:
         hval += asso_values[(unsigned char)str[18]];
+      /*FALLTHROUGH*/
       case 18:
         hval += asso_values[(unsigned char)str[17]];
+      /*FALLTHROUGH*/
       case 17:
         hval += asso_values[(unsigned char)str[16]];
+      /*FALLTHROUGH*/
       case 16:
         hval += asso_values[(unsigned char)str[15]];
+      /*FALLTHROUGH*/
       case 15:
         hval += asso_values[(unsigned char)str[14]];
+      /*FALLTHROUGH*/
       case 14:
         hval += asso_values[(unsigned char)str[13]];
+      /*FALLTHROUGH*/
       case 13:
         hval += asso_values[(unsigned char)str[12]];
+      /*FALLTHROUGH*/
       case 12:
         hval += asso_values[(unsigned char)str[11]];
+      /*FALLTHROUGH*/
       case 11:
         hval += asso_values[(unsigned char)str[10]];
+      /*FALLTHROUGH*/
       case 10:
         hval += asso_values[(unsigned char)str[9]];
+      /*FALLTHROUGH*/
       case 9:
         hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
       case 8:
         hval += asso_values[(unsigned char)str[7]];
+      /*FALLTHROUGH*/
       case 7:
         hval += asso_values[(unsigned char)str[6]];
+      /*FALLTHROUGH*/
       case 6:
         hval += asso_values[(unsigned char)str[5]];
+      /*FALLTHROUGH*/
       case 5:
         hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
       case 4:
         hval += asso_values[(unsigned char)str[3]];
+      /*FALLTHROUGH*/
       case 3:
         hval += asso_values[(unsigned char)str[2]];
+      /*FALLTHROUGH*/
       case 2:
         hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -133,325 +194,382 @@ findProp (register const char *str, register unsigned int len)
       TOTAL_KEYWORDS = 157,
       MIN_WORD_LENGTH = 3,
       MAX_WORD_LENGTH = 32,
-      MIN_HASH_VALUE = 20,
-      MAX_HASH_VALUE = 1512
+      MIN_HASH_VALUE = 3,
+      MAX_HASH_VALUE = 516
     };
 
   static const struct props wordlist_prop[] =
     {
-      {"right", CSS_PROP_RIGHT},
-      {"height", CSS_PROP_HEIGHT},
-      {"size", CSS_PROP_SIZE},
+#line 134 "cssproperties.gperf"
       {"top", CSS_PROP_TOP},
-      {"border", CSS_PROP_BORDER},
+#line 46 "cssproperties.gperf"
+      {"clip", CSS_PROP_CLIP},
+#line 47 "cssproperties.gperf"
       {"color", CSS_PROP_COLOR},
-      {"border-right", CSS_PROP_BORDER_RIGHT},
+#line 35 "cssproperties.gperf"
+      {"bottom", CSS_PROP_BOTTOM},
+#line 45 "cssproperties.gperf"
       {"clear", CSS_PROP_CLEAR},
-      {"page", CSS_PROP_PAGE},
-      {"clip", CSS_PROP_CLIP},
+#line 148 "cssproperties.gperf"
+      {"border", CSS_PROP_BORDER},
+#line 48 "cssproperties.gperf"
+      {"content", CSS_PROP_CONTENT},
+#line 52 "cssproperties.gperf"
+      {"direction", CSS_PROP_DIRECTION},
+#line 151 "cssproperties.gperf"
       {"border-top", CSS_PROP_BORDER_TOP},
+#line 149 "cssproperties.gperf"
       {"border-color", CSS_PROP_BORDER_COLOR},
-      {"max-height", CSS_PROP_MAX_HEIGHT},
-      {"bottom", CSS_PROP_BOTTOM},
-      {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
-      {"cursor", CSS_PROP_CURSOR},
-      {"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
-      {"quotes", CSS_PROP_QUOTES},
+#line 153 "cssproperties.gperf"
       {"border-bottom", CSS_PROP_BORDER_BOTTOM},
-      {"border-collapse", CSS_PROP_BORDER_COLLAPSE},
-      {"-khtml-user-drag", CSS_PROP__KHTML_USER_DRAG},
+#line 23 "cssproperties.gperf"
+      {"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
+#line 25 "cssproperties.gperf"
       {"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
-      {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
-      {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
-      {"-khtml-box-pack", CSS_PROP__KHTML_BOX_PACK},
-      {"-apple-text-size-adjust", CSS_PROP__APPLE_TEXT_SIZE_ADJUST},
-      {"-khtml-user-select", CSS_PROP__KHTML_USER_SELECT},
-      {"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
-      {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
-      {"list-style", CSS_PROP_LIST_STYLE},
-      {"width", CSS_PROP_WIDTH},
-      {"border-style", CSS_PROP_BORDER_STYLE},
-      {"display", CSS_PROP_DISPLAY},
-      {"left", CSS_PROP_LEFT},
-      {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
-      {"opacity", CSS_PROP_OPACITY},
-      {"float", CSS_PROP_FLOAT},
-      {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
-      {"border-width", CSS_PROP_BORDER_WIDTH},
-      {"text-shadow", CSS_PROP_TEXT_SHADOW},
-      {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
-      {"table-layout", CSS_PROP_TABLE_LAYOUT},
-      {"border-left", CSS_PROP_BORDER_LEFT},
-      {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
-      {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
-      {"max-width", CSS_PROP_MAX_WIDTH},
-      {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
-      {"empty-cells", CSS_PROP_EMPTY_CELLS},
-      {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
-      {"visibility", CSS_PROP_VISIBILITY},
-      {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
-      {"white-space", CSS_PROP_WHITE_SPACE},
-      {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
-      {"z-index", CSS_PROP_Z_INDEX},
-      {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
-      {"line-height", CSS_PROP_LINE_HEIGHT},
-      {"text-align", CSS_PROP_TEXT_ALIGN},
-      {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
-      {"direction", CSS_PROP_DIRECTION},
-      {"outline", CSS_PROP_OUTLINE},
-      {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
-      {"position", CSS_PROP_POSITION},
-      {"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
-      {"padding", CSS_PROP_PADDING},
-      {"text-decoration", CSS_PROP_TEXT_DECORATION},
-      {"text-line-through", CSS_PROP_TEXT_LINE_THROUGH},
-      {"min-height", CSS_PROP_MIN_HEIGHT},
-      {"orphans", CSS_PROP_ORPHANS},
-      {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
-      {"padding-right", CSS_PROP_PADDING_RIGHT},
-      {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
+#line 65 "cssproperties.gperf"
+      {"-apple-line-clamp", CSS_PROP__APPLE_LINE_CLAMP},
+#line 158 "cssproperties.gperf"
       {"margin", CSS_PROP_MARGIN},
-      {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
-      {"outline-color", CSS_PROP_OUTLINE_COLOR},
-      {"-khtml-box-flex-group", CSS_PROP__KHTML_BOX_FLEX_GROUP},
-      {"padding-top", CSS_PROP_PADDING_TOP},
-      {"margin-right", CSS_PROP_MARGIN_RIGHT},
-      {"text-overline", CSS_PROP_TEXT_OVERLINE},
-      {"-khtml-box-orient", CSS_PROP__KHTML_BOX_ORIENT},
-      {"text-line-through-color", CSS_PROP_TEXT_LINE_THROUGH_COLOR},
-      {"counter-reset", CSS_PROP_COUNTER_RESET},
-      {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
-      {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
-      {"caption-side", CSS_PROP_CAPTION_SIDE},
+#line 160 "cssproperties.gperf"
+      {"padding", CSS_PROP_PADDING},
+#line 106 "cssproperties.gperf"
+      {"position", CSS_PROP_POSITION},
+#line 102 "cssproperties.gperf"
+      {"page", CSS_PROP_PAGE},
+#line 70 "cssproperties.gperf"
       {"margin-top", CSS_PROP_MARGIN_TOP},
-      {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
-      {"text-line-through-mode", CSS_PROP_TEXT_LINE_THROUGH_MODE},
-      {"letter-spacing", CSS_PROP_LETTER_SPACING},
-      {"-khtml-box-lines", CSS_PROP__KHTML_BOX_LINES},
-      {"-khtml-line-break", CSS_PROP__KHTML_LINE_BREAK},
-      {"-khtml-box-align", CSS_PROP__KHTML_BOX_ALIGN},
-      {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
-      {"widows", CSS_PROP_WIDOWS},
-      {"text-overline-color", CSS_PROP_TEXT_OVERLINE_COLOR},
-      {"-khtml-box-direction", CSS_PROP__KHTML_BOX_DIRECTION},
-      {"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
+#line 97 "cssproperties.gperf"
+      {"padding-top", CSS_PROP_PADDING_TOP},
+#line 72 "cssproperties.gperf"
+      {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
+#line 99 "cssproperties.gperf"
       {"padding-bottom", CSS_PROP_PADDING_BOTTOM},
-      {"background", CSS_PROP_BACKGROUND},
-      {"text-overline-mode", CSS_PROP_TEXT_OVERLINE_MODE},
+#line 44 "cssproperties.gperf"
+      {"caption-side", CSS_PROP_CAPTION_SIDE},
+#line 108 "cssproperties.gperf"
+      {"right", CSS_PROP_RIGHT},
+#line 91 "cssproperties.gperf"
+      {"orphans", CSS_PROP_ORPHANS},
+#line 109 "cssproperties.gperf"
+      {"size", CSS_PROP_SIZE},
+#line 19 "cssproperties.gperf"
+      {"border-collapse", CSS_PROP_BORDER_COLLAPSE},
+#line 152 "cssproperties.gperf"
+      {"border-right", CSS_PROP_BORDER_RIGHT},
+#line 24 "cssproperties.gperf"
+      {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
+#line 62 "cssproperties.gperf"
+      {"height", CSS_PROP_HEIGHT},
+#line 20 "cssproperties.gperf"
       {"border-spacing", CSS_PROP_BORDER_SPACING},
-      {"word-wrap", CSS_PROP_WORD_WRAP},
-      {"-khtml-padding-start", CSS_PROP__KHTML_PADDING_START},
-      {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
-      {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
+#line 87 "cssproperties.gperf"
+      {"min-height", CSS_PROP_MIN_HEIGHT},
+#line 166 "cssproperties.gperf"
+      {"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
+#line 64 "cssproperties.gperf"
+      {"letter-spacing", CSS_PROP_LETTER_SPACING},
+#line 66 "cssproperties.gperf"
+      {"line-height", CSS_PROP_LINE_HEIGHT},
+#line 71 "cssproperties.gperf"
+      {"margin-right", CSS_PROP_MARGIN_RIGHT},
+#line 98 "cssproperties.gperf"
+      {"padding-right", CSS_PROP_PADDING_RIGHT},
+#line 18 "cssproperties.gperf"
+      {"-khtml-binding", CSS_PROP__KHTML_BINDING},
+#line 159 "cssproperties.gperf"
+      {"outline", CSS_PROP_OUTLINE},
+#line 139 "cssproperties.gperf"
       {"vertical-align", CSS_PROP_VERTICAL_ALIGN},
+#line 89 "cssproperties.gperf"
+      {"-khtml-nbsp-mode", CSS_PROP__KHTML_NBSP_MODE},
+#line 135 "cssproperties.gperf"
+      {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
+#line 92 "cssproperties.gperf"
+      {"outline-color", CSS_PROP_OUTLINE_COLOR},
+#line 74 "cssproperties.gperf"
+      {"-khtml-line-break", CSS_PROP__KHTML_LINE_BREAK},
+#line 164 "cssproperties.gperf"
+      {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
+#line 133 "cssproperties.gperf"
       {"-apple-dashboard-region", CSS_PROP__APPLE_DASHBOARD_REGION},
-      {"background-color", CSS_PROP_BACKGROUND_COLOR},
+#line 51 "cssproperties.gperf"
+      {"cursor", CSS_PROP_CURSOR},
+#line 49 "cssproperties.gperf"
+      {"counter-increment", CSS_PROP_COUNTER_INCREMENT},
+#line 105 "cssproperties.gperf"
+      {"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
+#line 78 "cssproperties.gperf"
       {"-khtml-margin-start", CSS_PROP__KHTML_MARGIN_START},
-      {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
-      {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
-      {"-khtml-nbsp-mode", CSS_PROP__KHTML_NBSP_MODE},
-      {"-apple-line-clamp", CSS_PROP__APPLE_LINE_CLAMP},
-      {"overflow", CSS_PROP_OVERFLOW},
-      {"text-overflow", CSS_PROP_TEXT_OVERFLOW},
-      {"background-image", CSS_PROP_BACKGROUND_IMAGE},
-      {"outline-style", CSS_PROP_OUTLINE_STYLE},
-      {"font", CSS_PROP_FONT},
-      {"-khtml-user-modify", CSS_PROP__KHTML_USER_MODIFY},
-      {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
+#line 101 "cssproperties.gperf"
+      {"-khtml-padding-start", CSS_PROP__KHTML_PADDING_START},
+#line 75 "cssproperties.gperf"
       {"-khtml-margin-collapse", CSS_PROP__KHTML_MARGIN_COLLAPSE},
-      {"text-line-through-style", CSS_PROP_TEXT_LINE_THROUGH_STYLE},
-      {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
-      {"font-size", CSS_PROP_FONT_SIZE},
-      {"outline-width", CSS_PROP_OUTLINE_WIDTH},
-      {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
-      {"min-width", CSS_PROP_MIN_WIDTH},
+#line 76 "cssproperties.gperf"
       {"-khtml-margin-top-collapse", CSS_PROP__KHTML_MARGIN_TOP_COLLAPSE},
-      {"text-line-through-width", CSS_PROP_TEXT_LINE_THROUGH_WIDTH},
-      {"text-overline-style", CSS_PROP_TEXT_OVERLINE_STYLE},
-      {"padding-left", CSS_PROP_PADDING_LEFT},
-      {"font-stretch", CSS_PROP_FONT_STRETCH},
-      {"margin-left", CSS_PROP_MARGIN_LEFT},
-      {"text-overline-width", CSS_PROP_TEXT_OVERLINE_WIDTH},
-      {"text-transform", CSS_PROP_TEXT_TRANSFORM},
+#line 50 "cssproperties.gperf"
+      {"counter-reset", CSS_PROP_COUNTER_RESET},
+#line 77 "cssproperties.gperf"
       {"-khtml-margin-bottom-collapse", CSS_PROP__KHTML_MARGIN_BOTTOM_COLLAPSE},
+#line 147 "cssproperties.gperf"
+      {"background", CSS_PROP_BACKGROUND},
+#line 113 "cssproperties.gperf"
       {"text-indent", CSS_PROP_TEXT_INDENT},
-      {"word-spacing", CSS_PROP_WORD_SPACING},
+#line 112 "cssproperties.gperf"
+      {"text-decoration", CSS_PROP_TEXT_DECORATION},
+#line 11 "cssproperties.gperf"
+      {"background-color", CSS_PROP_BACKGROUND_COLOR},
+#line 146 "cssproperties.gperf"
+      {"z-index", CSS_PROP_Z_INDEX},
+#line 156 "cssproperties.gperf"
+      {"font", CSS_PROP_FONT},
+#line 55 "cssproperties.gperf"
+      {"float", CSS_PROP_FLOAT},
+#line 63 "cssproperties.gperf"
+      {"left", CSS_PROP_LEFT},
+#line 163 "cssproperties.gperf"
+      {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
+#line 13 "cssproperties.gperf"
+      {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
+#line 111 "cssproperties.gperf"
+      {"text-align", CSS_PROP_TEXT_ALIGN},
+#line 107 "cssproperties.gperf"
+      {"quotes", CSS_PROP_QUOTES},
+#line 154 "cssproperties.gperf"
+      {"border-left", CSS_PROP_BORDER_LEFT},
+#line 21 "cssproperties.gperf"
+      {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
+#line 14 "cssproperties.gperf"
+      {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
+#line 26 "cssproperties.gperf"
+      {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
+#line 15 "cssproperties.gperf"
+      {"background-position", CSS_PROP_BACKGROUND_POSITION},
+#line 12 "cssproperties.gperf"
+      {"background-image", CSS_PROP_BACKGROUND_IMAGE},
+#line 22 "cssproperties.gperf"
       {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
-      {"content", CSS_PROP_CONTENT},
+#line 42 "cssproperties.gperf"
+      {"-khtml-box-orient", CSS_PROP__KHTML_BOX_ORIENT},
+#line 37 "cssproperties.gperf"
+      {"-khtml-box-direction", CSS_PROP__KHTML_BOX_DIRECTION},
+#line 73 "cssproperties.gperf"
+      {"margin-left", CSS_PROP_MARGIN_LEFT},
+#line 100 "cssproperties.gperf"
+      {"padding-left", CSS_PROP_PADDING_LEFT},
+#line 120 "cssproperties.gperf"
+      {"text-overline", CSS_PROP_TEXT_OVERLINE},
+#line 79 "cssproperties.gperf"
+      {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
+#line 85 "cssproperties.gperf"
+      {"max-height", CSS_PROP_MAX_HEIGHT},
+#line 136 "cssproperties.gperf"
+      {"-khtml-user-drag", CSS_PROP__KHTML_USER_DRAG},
+#line 121 "cssproperties.gperf"
+      {"text-overline-color", CSS_PROP_TEXT_OVERLINE_COLOR},
+#line 161 "cssproperties.gperf"
+      {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
+#line 60 "cssproperties.gperf"
+      {"font-variant", CSS_PROP_FONT_VARIANT},
+#line 122 "cssproperties.gperf"
+      {"text-overline-mode", CSS_PROP_TEXT_OVERLINE_MODE},
+#line 57 "cssproperties.gperf"
+      {"font-size", CSS_PROP_FONT_SIZE},
+#line 43 "cssproperties.gperf"
+      {"-khtml-box-pack", CSS_PROP__KHTML_BOX_PACK},
+#line 36 "cssproperties.gperf"
+      {"-khtml-box-align", CSS_PROP__KHTML_BOX_ALIGN},
+#line 58 "cssproperties.gperf"
+      {"font-stretch", CSS_PROP_FONT_STRETCH},
+#line 138 "cssproperties.gperf"
+      {"-khtml-user-select", CSS_PROP__KHTML_USER_SELECT},
+#line 80 "cssproperties.gperf"
+      {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
+#line 40 "cssproperties.gperf"
+      {"-khtml-box-lines", CSS_PROP__KHTML_BOX_LINES},
+#line 81 "cssproperties.gperf"
+      {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
+#line 82 "cssproperties.gperf"
+      {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
+#line 127 "cssproperties.gperf"
       {"text-underline", CSS_PROP_TEXT_UNDERLINE},
+#line 128 "cssproperties.gperf"
       {"text-underline-color", CSS_PROP_TEXT_UNDERLINE_COLOR},
-      {"font-style", CSS_PROP_FONT_STYLE},
+#line 103 "cssproperties.gperf"
+      {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
+#line 90 "cssproperties.gperf"
+      {"opacity", CSS_PROP_OPACITY},
+#line 129 "cssproperties.gperf"
       {"text-underline-mode", CSS_PROP_TEXT_UNDERLINE_MODE},
-      {"-khtml-binding", CSS_PROP__KHTML_BINDING},
-      {"font-weight", CSS_PROP_FONT_WEIGHT},
-      {"background-position", CSS_PROP_BACKGROUND_POSITION},
+#line 83 "cssproperties.gperf"
+      {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
+#line 104 "cssproperties.gperf"
+      {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
+#line 143 "cssproperties.gperf"
+      {"width", CSS_PROP_WIDTH},
+#line 88 "cssproperties.gperf"
+      {"min-width", CSS_PROP_MIN_WIDTH},
+#line 155 "cssproperties.gperf"
+      {"border-width", CSS_PROP_BORDER_WIDTH},
+#line 31 "cssproperties.gperf"
+      {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
+#line 53 "cssproperties.gperf"
+      {"display", CSS_PROP_DISPLAY},
+#line 33 "cssproperties.gperf"
+      {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
+#line 167 "cssproperties.gperf"
+      {"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
+#line 54 "cssproperties.gperf"
+      {"empty-cells", CSS_PROP_EMPTY_CELLS},
+#line 150 "cssproperties.gperf"
+      {"border-style", CSS_PROP_BORDER_STYLE},
+#line 27 "cssproperties.gperf"
+      {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
+#line 114 "cssproperties.gperf"
+      {"text-line-through", CSS_PROP_TEXT_LINE_THROUGH},
+#line 29 "cssproperties.gperf"
+      {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
+#line 141 "cssproperties.gperf"
+      {"white-space", CSS_PROP_WHITE_SPACE},
+#line 145 "cssproperties.gperf"
+      {"word-spacing", CSS_PROP_WORD_SPACING},
+#line 115 "cssproperties.gperf"
+      {"text-line-through-color", CSS_PROP_TEXT_LINE_THROUGH_COLOR},
+#line 41 "cssproperties.gperf"
+      {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
+#line 116 "cssproperties.gperf"
+      {"text-line-through-mode", CSS_PROP_TEXT_LINE_THROUGH_MODE},
+#line 157 "cssproperties.gperf"
+      {"list-style", CSS_PROP_LIST_STYLE},
+#line 16 "cssproperties.gperf"
       {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X},
+#line 32 "cssproperties.gperf"
+      {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
+#line 140 "cssproperties.gperf"
+      {"visibility", CSS_PROP_VISIBILITY},
+#line 132 "cssproperties.gperf"
+      {"-apple-text-size-adjust", CSS_PROP__APPLE_TEXT_SIZE_ADJUST},
+#line 126 "cssproperties.gperf"
+      {"text-transform", CSS_PROP_TEXT_TRANSFORM},
+#line 162 "cssproperties.gperf"
+      {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
+#line 110 "cssproperties.gperf"
+      {"table-layout", CSS_PROP_TABLE_LAYOUT},
+#line 28 "cssproperties.gperf"
+      {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
+#line 95 "cssproperties.gperf"
+      {"outline-width", CSS_PROP_OUTLINE_WIDTH},
+#line 68 "cssproperties.gperf"
+      {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
+#line 67 "cssproperties.gperf"
+      {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
+#line 165 "cssproperties.gperf"
+      {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
+#line 94 "cssproperties.gperf"
+      {"outline-style", CSS_PROP_OUTLINE_STYLE},
+#line 86 "cssproperties.gperf"
+      {"max-width", CSS_PROP_MAX_WIDTH},
+#line 125 "cssproperties.gperf"
+      {"text-shadow", CSS_PROP_TEXT_SHADOW},
+#line 17 "cssproperties.gperf"
+      {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
+#line 34 "cssproperties.gperf"
+      {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
+#line 59 "cssproperties.gperf"
+      {"font-style", CSS_PROP_FONT_STYLE},
+#line 93 "cssproperties.gperf"
       {"outline-offset", CSS_PROP_OUTLINE_OFFSET},
-      {"text-underline-style", CSS_PROP_TEXT_UNDERLINE_STYLE},
-      {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
-      {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
+#line 96 "cssproperties.gperf"
+      {"overflow", CSS_PROP_OVERFLOW},
+#line 61 "cssproperties.gperf"
+      {"font-weight", CSS_PROP_FONT_WEIGHT},
+#line 30 "cssproperties.gperf"
+      {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
+#line 124 "cssproperties.gperf"
+      {"text-overline-width", CSS_PROP_TEXT_OVERLINE_WIDTH},
+#line 38 "cssproperties.gperf"
+      {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
+#line 144 "cssproperties.gperf"
+      {"word-wrap", CSS_PROP_WORD_WRAP},
+#line 123 "cssproperties.gperf"
+      {"text-overline-style", CSS_PROP_TEXT_OVERLINE_STYLE},
+#line 84 "cssproperties.gperf"
+      {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
+#line 131 "cssproperties.gperf"
       {"text-underline-width", CSS_PROP_TEXT_UNDERLINE_WIDTH},
-      {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
-      {"font-variant", CSS_PROP_FONT_VARIANT},
-      {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
+#line 142 "cssproperties.gperf"
+      {"widows", CSS_PROP_WIDOWS},
+#line 130 "cssproperties.gperf"
+      {"text-underline-style", CSS_PROP_TEXT_UNDERLINE_STYLE},
+#line 118 "cssproperties.gperf"
+      {"text-line-through-width", CSS_PROP_TEXT_LINE_THROUGH_WIDTH},
+#line 56 "cssproperties.gperf"
       {"font-family", CSS_PROP_FONT_FAMILY},
-      {"counter-increment", CSS_PROP_COUNTER_INCREMENT}
+#line 69 "cssproperties.gperf"
+      {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
+#line 137 "cssproperties.gperf"
+      {"-khtml-user-modify", CSS_PROP__KHTML_USER_MODIFY},
+#line 117 "cssproperties.gperf"
+      {"text-line-through-style", CSS_PROP_TEXT_LINE_THROUGH_STYLE},
+#line 119 "cssproperties.gperf"
+      {"text-overflow", CSS_PROP_TEXT_OVERFLOW},
+#line 39 "cssproperties.gperf"
+      {"-khtml-box-flex-group", CSS_PROP__KHTML_BOX_FLEX_GROUP}
     };
 
   static const short lookup[] =
     {
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-        0,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,   2,  -1,  -1,  -1,   3,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,   4,  -1,  -1,  -1,
-        5,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,   6,  -1,  -1,
-        7,  -1,  -1,  -1,   8,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,   9,  10,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  11,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       12,  13,  -1,  -1,  -1,  -1,  -1,  -1,  14,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  15,  -1,  -1,  -1,  -1,  16,  -1,  -1,  -1,
-       -1,  17,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  18,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  19,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  20,  -1,  -1,  21,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  22,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  23,  -1,  -1,  -1,  -1,
-       24,  -1,  -1,  25,  -1,  -1,  -1,  -1,  26,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  27,  -1,  -1,  28,
-       29,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       30,  -1,  31,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  32,  -1,  -1,  -1,  -1,  -1,  -1,  33,
-       -1,  -1,  -1,  34,  -1,  -1,  -1,  35,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       36,  37,  -1,  -1,  -1,  -1,  -1,  38,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  39,  -1,  -1,  -1,
-       40,  -1,  41,  -1,  -1,  -1,  42,  -1,  43,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  44,  -1,  -1,  45,
-       -1,  -1,  -1,  -1,  -1,  -1,  46,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  47,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  48,  49,  -1,  50,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  51,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  52,  -1,  53,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  54,
-       -1,  -1,  -1,  -1,  -1,  -1,  55,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  56,  -1,  -1,  -1,  -1,
-       -1,  57,  -1,  -1,  58,  -1,  -1,  59,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  60,  61,  -1,  -1,  62,  63,  -1,  -1,
-       64,  -1,  65,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       66,  -1,  67,  -1,  -1,  68,  -1,  -1,  69,  -1,
-       70,  -1,  -1,  -1,  -1,  -1,  71,  72,  73,  -1,
-       -1,  74,  -1,  -1,  -1,  -1,  75,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  76,  77,  -1,
-       -1,  -1,  78,  79,  -1,  -1,  -1,  -1,  80,  -1,
-       81,  82,  83,  -1,  -1,  84,  -1,  85,  -1,  -1,
-       -1,  -1,  86,  -1,  -1,  -1,  -1,  -1,  -1,  87,
-       -1,  88,  89,  -1,  -1,  -1,  90,  -1,  -1,  -1,
-       -1,  -1,  91,  -1,  -1,  -1,  92,  -1,  -1,  93,
-       94,  -1,  -1,  -1,  -1,  -1,  -1,  95,  -1,  96,
-       97,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  98,  99,
-       -1,  -1,  -1,  -1, 100,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 101,  -1, 102, 103,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 104,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 105,  -1,
-       -1, 106,  -1,  -1, 107,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1, 108,  -1,  -1,  -1,  -1,  -1,  -1, 109,
-       -1, 110,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1, 111,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 112,  -1,  -1,  -1,  -1, 113,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 114,  -1,  -1,  -1,
-       -1,  -1,  -1, 115,  -1,  -1,  -1,  -1,  -1, 116,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 117,  -1, 118,  -1, 119, 120,  -1,
-       -1,  -1,  -1,  -1, 121,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 122,  -1,  -1,  -1, 123,  -1,
-       -1,  -1,  -1,  -1, 124,  -1,  -1,  -1,  -1, 125,
-       -1,  -1,  -1,  -1,  -1,  -1, 126,  -1,  -1,  -1,
-       -1,  -1,  -1, 127, 128,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1, 129,  -1,  -1,
-       -1,  -1, 130,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 131,  -1,  -1, 132,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 133,  -1,  -1,  -1,  -1, 134,
-       -1, 135, 136,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      137,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1, 138,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 139,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 140,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 141,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 142,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 143,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 144,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 145,  -1, 146,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 147,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      148,  -1, 149,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1, 150,  -1,  -1,  -1, 151,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 152,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1, 153,  -1,  -1,  -1, 154,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 155,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1, 156
+       -1,  -1,  -1,   0,   1,   2,   3,  -1,  -1,  -1,
+        4,   5,   6,  -1,   7,   8,  -1,   9,  10,  -1,
+       -1,  11,  -1,  -1,  12,  -1,  -1,  13,  -1,  -1,
+       -1,  14,  15,  16,  17,  18,  19,  -1,  20,  21,
+       -1,  -1,  22,  -1,  -1,  23,  -1,  24,  -1,  25,
+       26,  -1,  -1,  -1,  -1,  -1,  -1,  27,  -1,  -1,
+       -1,  -1,  -1,  28,  -1,  -1,  29,  -1,  -1,  30,
+       31,  32,  -1,  -1,  33,  -1,  34,  35,  36,  37,
+       -1,  -1,  38,  -1,  39,  -1,  40,  41,  42,  -1,
+       -1,  -1,  43,  44,  -1,  -1,  -1,  -1,  45,  -1,
+       -1,  46,  47,  -1,  -1,  -1,  -1,  48,  -1,  49,
+       50,  -1,  -1,  -1,  -1,  -1,  -1,  51,  -1,  -1,
+       -1,  52,  -1,  53,  54,  -1,  -1,  -1,  -1,  -1,
+       55,  56,  -1,  -1,  -1,  57,  58,  59,  -1,  60,
+       61,  -1,  -1,  -1,  62,  63,  -1,  64,  -1,  -1,
+       65,  66,  -1,  -1,  -1,  -1,  67,  68,  -1,  -1,
+       -1,  69,  70,  -1,  71,  -1,  72,  -1,  -1,  -1,
+       73,  -1,  74,  -1,  -1,  75,  76,  77,  78,  79,
+       80,  81,  -1,  -1,  82,  83,  -1,  84,  85,  86,
+       87,  88,  89,  90,  91,  -1,  92,  -1,  -1,  93,
+       94,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  95,
+       -1,  -1,  -1,  -1,  -1,  96,  97,  98,  -1,  99,
+      100,  -1, 101,  -1,  -1, 102,  -1,  -1,  -1, 103,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 104,  -1,  -1,
+       -1, 105, 106,  -1, 107,  -1,  -1,  -1,  -1,  -1,
+       -1, 108,  -1,  -1,  -1,  -1, 109, 110,  -1,  -1,
+       -1, 111, 112,  -1, 113,  -1, 114, 115, 116, 117,
+       -1,  -1, 118,  -1,  -1, 119, 120,  -1,  -1,  -1,
+       -1,  -1,  -1, 121,  -1, 122,  -1,  -1, 123, 124,
+       -1,  -1, 125,  -1,  -1,  -1,  -1, 126,  -1,  -1,
+       -1,  -1,  -1, 127,  -1,  -1,  -1,  -1, 128, 129,
+       -1, 130,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 131,  -1,  -1,  -1,  -1,  -1,  -1, 132,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 133,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 134,  -1,  -1,  -1,  -1, 135,  -1,  -1,  -1,
+       -1,  -1, 136,  -1,  -1, 137,  -1,  -1,  -1, 138,
+       -1,  -1,  -1, 139,  -1,  -1, 140,  -1,  -1,  -1,
+       -1,  -1, 141,  -1, 142,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 143,  -1,  -1,  -1, 144,
+       -1,  -1,  -1,  -1, 145, 146,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 147,  -1,  -1,  -1,  -1,
+       -1, 148,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 149,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 150,  -1,
+       -1, 151,  -1,  -1,  -1, 152,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 153,  -1,  -1,  -1,  -1, 154,  -1,
+       -1,  -1,  -1, 155,  -1,  -1, 156
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -473,6 +591,8 @@ findProp (register const char *str, register unsigned int len)
     }
   return 0;
 }
+#line 168 "cssproperties.gperf"
+
 static const char * const propertyList[] = {
 "",
 "background-color", 
index b48406ebb9bc5f02f5e65cdeeefd99a31c75e9cc..2f8082051b6c43f85a2e697d0760cff22f4e36cf 100644 (file)
@@ -1,13 +1,44 @@
-/* ANSI-C code produced by gperf version 2.7.2 */
+/* ANSI-C code produced by gperf version 3.0.1 */
 /* Command-line: gperf -L ANSI-C -E -C -n -o -t -k '*' -NfindValue -Hhash_val -Wwordlist_value -D cssvalues.gperf  */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "cssvalues.gperf"
+
 /* This file is automatically generated from cssvalues.in by makevalues, do not edit */
 /* Copyright 1999 W. Bastian */
 #include "cssvalues.h"
+#line 6 "cssvalues.gperf"
 struct css_value {
     const char *name;
     int id;
 };
-/* maximum key range = 2888, duplicates = 1 */
+/* maximum key range = 3201, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -21,80 +52,100 @@ hash_val (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888,   15, 2888, 2888,    0,    5,
-        10,   15,   20,   25,   30,   35,   40,    0, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888,    0,   28,    3,
-       400,  300,  160,  463,   56,   35,   10,  425,    0,   13,
-        55,    5,    8,   90,   65,   10,    0,  465,  258,  405,
-       450,   80,  250, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
-      2888, 2888, 2888, 2888, 2888, 2888
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201,  200,  490, 3201,    0,    0,
+       115,  110,   95,   70,   65,   60,   25,   20, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201,   60,  265,    5,
+       360,    0,   68,  475,  460,    5,  440,  160,   20,   95,
+        10,   35,  150,  153,    5,   20,    0,   25,    8,    8,
+         3,   68,    5, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
+      3201, 3201, 3201, 3201, 3201, 3201, 3201
     };
   register int hval = 0;
 
   switch (len)
     {
       default:
-      case 22:
         hval += asso_values[(unsigned char)str[21]];
+      /*FALLTHROUGH*/
       case 21:
         hval += asso_values[(unsigned char)str[20]];
+      /*FALLTHROUGH*/
       case 20:
         hval += asso_values[(unsigned char)str[19]];
+      /*FALLTHROUGH*/
       case 19:
         hval += asso_values[(unsigned char)str[18]];
+      /*FALLTHROUGH*/
       case 18:
         hval += asso_values[(unsigned char)str[17]];
+      /*FALLTHROUGH*/
       case 17:
         hval += asso_values[(unsigned char)str[16]];
+      /*FALLTHROUGH*/
       case 16:
         hval += asso_values[(unsigned char)str[15]];
+      /*FALLTHROUGH*/
       case 15:
         hval += asso_values[(unsigned char)str[14]];
+      /*FALLTHROUGH*/
       case 14:
         hval += asso_values[(unsigned char)str[13]];
+      /*FALLTHROUGH*/
       case 13:
         hval += asso_values[(unsigned char)str[12]];
+      /*FALLTHROUGH*/
       case 12:
         hval += asso_values[(unsigned char)str[11]];
+      /*FALLTHROUGH*/
       case 11:
         hval += asso_values[(unsigned char)str[10]];
+      /*FALLTHROUGH*/
       case 10:
         hval += asso_values[(unsigned char)str[9]];
+      /*FALLTHROUGH*/
       case 9:
         hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
       case 8:
         hval += asso_values[(unsigned char)str[7]];
+      /*FALLTHROUGH*/
       case 7:
         hval += asso_values[(unsigned char)str[6]];
+      /*FALLTHROUGH*/
       case 6:
         hval += asso_values[(unsigned char)str[5]];
+      /*FALLTHROUGH*/
       case 5:
         hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
       case 4:
         hval += asso_values[(unsigned char)str[3]];
+      /*FALLTHROUGH*/
       case 3:
-        hval += asso_values[(unsigned char)str[2]];
+        hval += asso_values[(unsigned char)str[2]+1];
+      /*FALLTHROUGH*/
       case 2:
         hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -114,647 +165,878 @@ findValue (register const char *str, register unsigned int len)
       MIN_WORD_LENGTH = 2,
       MAX_WORD_LENGTH = 22,
       MIN_HASH_VALUE = 0,
-      MAX_HASH_VALUE = 2887
+      MAX_HASH_VALUE = 3200
     };
 
   static const struct css_value wordlist_value[] =
     {
-      {"900", CSS_VAL_900},
+#line 36 "cssvalues.gperf"
       {"100", CSS_VAL_100},
-      {"200", CSS_VAL_200},
-      {"top", CSS_VAL_TOP},
-      {"300", CSS_VAL_300},
-      {"400", CSS_VAL_400},
-      {"small", CSS_VAL_SMALL},
-      {"500", CSS_VAL_500},
-      {"600", CSS_VAL_600},
-      {"compact", CSS_VAL_COMPACT},
-      {"700", CSS_VAL_700},
+#line 83 "cssvalues.gperf"
+      {"red", CSS_VAL_RED},
+#line 247 "cssvalues.gperf"
+      {"end", CSS_VAL_END},
+#line 15 "cssvalues.gperf"
+      {"inset", CSS_VAL_INSET},
+#line 55 "cssvalues.gperf"
+      {"wider", CSS_VAL_WIDER},
+#line 44 "cssvalues.gperf"
+      {"900", CSS_VAL_900},
+#line 43 "cssvalues.gperf"
       {"800", CSS_VAL_800},
-      {"clip", CSS_VAL_CLIP},
-      {"static", CSS_VAL_STATIC},
-      {"bottom", CSS_VAL_BOTTOM},
-      {"small-caps", CSS_VAL_SMALL_CAPS},
+#line 220 "cssvalues.gperf"
+      {"invert", CSS_VAL_INVERT},
+#line 11 "cssvalues.gperf"
+      {"inherit", CSS_VAL_INHERIT},
+#line 77 "cssvalues.gperf"
+      {"lime", CSS_VAL_LIME},
+#line 248 "cssvalues.gperf"
+      {"reverse", CSS_VAL_REVERSE},
+#line 197 "cssvalues.gperf"
       {"ltr", CSS_VAL_LTR},
+#line 136 "cssvalues.gperf"
+      {"center", CSS_VAL_CENTER},
+#line 222 "cssvalues.gperf"
+      {"level", CSS_VAL_LEVEL},
+#line 126 "cssvalues.gperf"
+      {"sub", CSS_VAL_SUB},
+#line 144 "cssvalues.gperf"
+      {"circle", CSS_VAL_CIRCLE},
+#line 42 "cssvalues.gperf"
+      {"700", CSS_VAL_700},
+#line 225 "cssvalues.gperf"
+      {"lower", CSS_VAL_LOWER},
+#line 41 "cssvalues.gperf"
+      {"600", CSS_VAL_600},
+#line 194 "cssvalues.gperf"
+      {"text", CSS_VAL_TEXT},
+#line 40 "cssvalues.gperf"
+      {"500", CSS_VAL_500},
+#line 243 "cssvalues.gperf"
+      {"underline", CSS_VAL_UNDERLINE},
+#line 276 "cssvalues.gperf"
+      {"wave", CSS_VAL_WAVE},
+#line 13 "cssvalues.gperf"
+      {"none", CSS_VAL_NONE},
+#line 67 "cssvalues.gperf"
+      {"cursive", CSS_VAL_CURSIVE},
+#line 169 "cssvalues.gperf"
+      {"table", CSS_VAL_TABLE},
+#line 269 "cssvalues.gperf"
+      {"intrinsic", CSS_VAL_INTRINSIC},
+#line 39 "cssvalues.gperf"
+      {"400", CSS_VAL_400},
+#line 198 "cssvalues.gperf"
       {"rtl", CSS_VAL_RTL},
-      {"italic", CSS_VAL_ITALIC},
-      {"start", CSS_VAL_START},
-      {"crop", CSS_VAL_CROP},
+#line 18 "cssvalues.gperf"
+      {"outset", CSS_VAL_OUTSET},
+#line 38 "cssvalues.gperf"
+      {"300", CSS_VAL_300},
+#line 65 "cssvalues.gperf"
+      {"serif", CSS_VAL_SERIF},
+#line 37 "cssvalues.gperf"
+      {"200", CSS_VAL_200},
+#line 250 "cssvalues.gperf"
+      {"vertical", CSS_VAL_VERTICAL},
+#line 237 "cssvalues.gperf"
       {"scroll", CSS_VAL_SCROLL},
-      {"both", CSS_VAL_BOTH},
-      {"cross", CSS_VAL_CROSS},
+#line 163 "cssvalues.gperf"
+      {"inline", CSS_VAL_INLINE},
+#line 261 "cssvalues.gperf"
+      {"fast", CSS_VAL_FAST},
+#line 84 "cssvalues.gperf"
+      {"silver", CSS_VAL_SILVER},
+#line 185 "cssvalues.gperf"
+      {"move", CSS_VAL_MOVE},
+#line 56 "cssvalues.gperf"
+      {"narrower", CSS_VAL_NARROWER},
+#line 181 "cssvalues.gperf"
+      {"auto", CSS_VAL_AUTO},
+#line 79 "cssvalues.gperf"
+      {"navy", CSS_VAL_NAVY},
+#line 201 "cssvalues.gperf"
+      {"lowercase", CSS_VAL_LOWERCASE},
+#line 233 "cssvalues.gperf"
+      {"overline", CSS_VAL_OVERLINE},
+#line 25 "cssvalues.gperf"
+      {"menu", CSS_VAL_MENU},
+#line 108 "cssvalues.gperf"
+      {"menutext", CSS_VAL_MENUTEXT},
+#line 156 "cssvalues.gperf"
+      {"armenian", CSS_VAL_ARMENIAN},
+#line 227 "cssvalues.gperf"
+      {"mix", CSS_VAL_MIX},
+#line 24 "cssvalues.gperf"
       {"icon", CSS_VAL_ICON},
-      {"caption", CSS_VAL_CAPTION},
+#line 236 "cssvalues.gperf"
+      {"relative", CSS_VAL_RELATIVE},
+#line 258 "cssvalues.gperf"
+      {"up", CSS_VAL_UP},
+#line 264 "cssvalues.gperf"
+      {"alternate", CSS_VAL_ALTERNATE},
+#line 130 "cssvalues.gperf"
+      {"top", CSS_VAL_TOP},
+#line 268 "cssvalues.gperf"
+      {"element", CSS_VAL_ELEMENT},
+#line 277 "cssvalues.gperf"
+      {"continuous", CSS_VAL_CONTINUOUS},
+#line 260 "cssvalues.gperf"
+      {"slow", CSS_VAL_SLOW},
+#line 214 "cssvalues.gperf"
+      {"cross", CSS_VAL_CROSS},
+#line 127 "cssvalues.gperf"
+      {"super", CSS_VAL_SUPER},
+#line 120 "cssvalues.gperf"
+      {"repeat", CSS_VAL_REPEAT},
+#line 48 "cssvalues.gperf"
+      {"medium", CSS_VAL_MEDIUM},
+#line 235 "cssvalues.gperf"
+      {"pre", CSS_VAL_PRE},
+#line 87 "cssvalues.gperf"
+      {"yellow", CSS_VAL_YELLOW},
+#line 206 "cssvalues.gperf"
+      {"always", CSS_VAL_ALWAYS},
+#line 32 "cssvalues.gperf"
       {"normal", CSS_VAL_NORMAL},
+#line 145 "cssvalues.gperf"
+      {"square", CSS_VAL_SQUARE},
+#line 186 "cssvalues.gperf"
+      {"e-resize", CSS_VAL_E_RESIZE},
+#line 78 "cssvalues.gperf"
       {"maroon", CSS_VAL_MAROON},
-      {"small-caption", CSS_VAL_SMALL_CAPTION},
-      {"thin", CSS_VAL_THIN},
-      {"initial", CSS_VAL_INITIAL},
-      {"fast", CSS_VAL_FAST},
-      {"scrollbar", CSS_VAL_SCROLLBAR},
+#line 193 "cssvalues.gperf"
+      {"w-resize", CSS_VAL_W_RESIZE},
+#line 189 "cssvalues.gperf"
+      {"n-resize", CSS_VAL_N_RESIZE},
+#line 230 "cssvalues.gperf"
+      {"nowrap", CSS_VAL_NOWRAP},
+#line 232 "cssvalues.gperf"
+      {"overlay", CSS_VAL_OVERLAY},
+#line 167 "cssvalues.gperf"
+      {"compact", CSS_VAL_COMPACT},
+#line 23 "cssvalues.gperf"
+      {"caption", CSS_VAL_CAPTION},
+#line 192 "cssvalues.gperf"
+      {"s-resize", CSS_VAL_S_RESIZE},
+#line 99 "cssvalues.gperf"
+      {"captiontext", CSS_VAL_CAPTIONTEXT},
+#line 234 "cssvalues.gperf"
       {"portrait", CSS_VAL_PORTRAIT},
-      {"crosshair", CSS_VAL_CROSSHAIR},
-      {"intrinsic", CSS_VAL_INTRINSIC},
+#line 166 "cssvalues.gperf"
+      {"run-in", CSS_VAL_RUN_IN},
+#line 71 "cssvalues.gperf"
+      {"aqua", CSS_VAL_AQUA},
+#line 85 "cssvalues.gperf"
       {"teal", CSS_VAL_TEAL},
+#line 246 "cssvalues.gperf"
+      {"start", CSS_VAL_START},
+#line 73 "cssvalues.gperf"
+      {"blue", CSS_VAL_BLUE},
+#line 240 "cssvalues.gperf"
+      {"static", CSS_VAL_STATIC},
+#line 238 "cssvalues.gperf"
+      {"separate", CSS_VAL_SEPARATE},
+#line 29 "cssvalues.gperf"
+      {"italic", CSS_VAL_ITALIC},
+#line 202 "cssvalues.gperf"
+      {"visible", CSS_VAL_VISIBLE},
+#line 213 "cssvalues.gperf"
+      {"crop", CSS_VAL_CROP},
+#line 68 "cssvalues.gperf"
       {"fantasy", CSS_VAL_FANTASY},
-      {"space", CSS_VAL_SPACE},
-      {"collapse", CSS_VAL_COLLAPSE},
-      {"table", CSS_VAL_TABLE},
-      {"lime", CSS_VAL_LIME},
-      {"help", CSS_VAL_HELP},
-      {"pre", CSS_VAL_PRE},
-      {"smaller", CSS_VAL_SMALLER},
-      {"navy", CSS_VAL_NAVY},
+#line 199 "cssvalues.gperf"
+      {"capitalize", CSS_VAL_CAPITALIZE},
+#line 272 "cssvalues.gperf"
       {"ellipsis", CSS_VAL_ELLIPSIS},
-      {"monospace", CSS_VAL_MONOSPACE},
-      {"inset", CSS_VAL_INSET},
-      {"circle", CSS_VAL_CIRCLE},
+#line 165 "cssvalues.gperf"
       {"list-item", CSS_VAL_LIST_ITEM},
-      {"min-intrinsic", CSS_VAL_MIN_INTRINSIC},
-      {"none", CSS_VAL_NONE},
-      {"slow", CSS_VAL_SLOW},
-      {"bold", CSS_VAL_BOLD},
-      {"stretch", CSS_VAL_STRETCH},
-      {"wait", CSS_VAL_WAIT},
-      {"disc", CSS_VAL_DISC},
-      {"table-caption", CSS_VAL_TABLE_CAPTION},
-      {"solid", CSS_VAL_SOLID},
-      {"black", CSS_VAL_BLACK},
-      {"left", CSS_VAL_LEFT},
-      {"block", CSS_VAL_BLOCK},
-      {"pointer", CSS_VAL_POINTER},
-      {"auto", CSS_VAL_AUTO},
-      {"horizontal", CSS_VAL_HORIZONTAL},
-      {"up", CSS_VAL_UP},
-      {"show", CSS_VAL_SHOW},
-      {"inline", CSS_VAL_INLINE},
-      {"x-small", CSS_VAL_X_SMALL},
-      {"always", CSS_VAL_ALWAYS},
-      {"mix", CSS_VAL_MIX},
-      {"sub", CSS_VAL_SUB},
-      {"hand", CSS_VAL_HAND},
-      {"thick", CSS_VAL_THICK},
-      {"armenian", CSS_VAL_ARMENIAN},
-      {"nowrap", CSS_VAL_NOWRAP},
-      {"blink", CSS_VAL_BLINK},
-      {"inherit", CSS_VAL_INHERIT},
-      {"aqua", CSS_VAL_AQUA},
-      {"transparent", CSS_VAL_TRANSPARENT},
-      {"serif", CSS_VAL_SERIF},
-      {"move", CSS_VAL_MOVE},
-      {"above", CSS_VAL_ABOVE},
-      {"status-bar", CSS_VAL_STATUS_BAR},
-      {"olive", CSS_VAL_OLIVE},
-      {"gray", CSS_VAL_GRAY},
-      {"right", CSS_VAL_RIGHT},
-      {"capitalize", CSS_VAL_CAPITALIZE},
+#line 177 "cssvalues.gperf"
       {"table-cell", CSS_VAL_TABLE_CELL},
-      {"sans-serif", CSS_VAL_SANS_SERIF},
-      {"vertical", CSS_VAL_VERTICAL},
-      {"visible", CSS_VAL_VISIBLE},
-      {"silver", CSS_VAL_SILVER},
-      {"repeat", CSS_VAL_REPEAT},
-      {"hiragana", CSS_VAL_HIRAGANA},
-      {"infinite", CSS_VAL_INFINITE},
-      {"separate", CSS_VAL_SEPARATE},
-      {"run-in", CSS_VAL_RUN_IN},
-      {"avoid", CSS_VAL_AVOID},
-      {"activecaption", CSS_VAL_ACTIVECAPTION},
-      {"overlay", CSS_VAL_OVERLAY},
-      {"invert", CSS_VAL_INVERT},
-      {"alternate", CSS_VAL_ALTERNATE},
-      {"center", CSS_VAL_CENTER},
+#line 174 "cssvalues.gperf"
+      {"table-row", CSS_VAL_TABLE_ROW},
+#line 226 "cssvalues.gperf"
+      {"marquee", CSS_VAL_MARQUEE},
+#line 152 "cssvalues.gperf"
+      {"lower-latin", CSS_VAL_LOWER_LATIN},
+#line 124 "cssvalues.gperf"
       {"baseline", CSS_VAL_BASELINE},
-      {"fuchsia", CSS_VAL_FUCHSIA},
+#line 98 "cssvalues.gperf"
+      {"buttontext", CSS_VAL_BUTTONTEXT},
+#line 82 "cssvalues.gperf"
+      {"purple", CSS_VAL_PURPLE},
+#line 92 "cssvalues.gperf"
+      {"activecaption", CSS_VAL_ACTIVECAPTION},
+#line 143 "cssvalues.gperf"
+      {"disc", CSS_VAL_DISC},
+#line 142 "cssvalues.gperf"
+      {"inside", CSS_VAL_INSIDE},
+#line 203 "cssvalues.gperf"
+      {"collapse", CSS_VAL_COLLAPSE},
+#line 254 "cssvalues.gperf"
+      {"multiple", CSS_VAL_MULTIPLE},
+#line 46 "cssvalues.gperf"
+      {"x-small", CSS_VAL_X_SMALL},
+#line 270 "cssvalues.gperf"
+      {"min-intrinsic", CSS_VAL_MIN_INTRINSIC},
+#line 208 "cssvalues.gperf"
       {"below", CSS_VAL_BELOW},
-      {"slide", CSS_VAL_SLIDE},
-      {"no-repeat", CSS_VAL_NO_REPEAT},
-      {"text", CSS_VAL_TEXT},
-      {"decimal", CSS_VAL_DECIMAL},
-      {"end", CSS_VAL_END},
-      {"ahead", CSS_VAL_AHEAD},
-      {"justify", CSS_VAL_JUSTIFY},
-      {"red", CSS_VAL_RED},
-      {"repeat-y", CSS_VAL_REPEAT_Y},
-      {"lower", CSS_VAL_LOWER},
-      {"landscape", CSS_VAL_LANDSCAPE},
-      {"text-top", CSS_VAL_TEXT_TOP},
-      {"outset", CSS_VAL_OUTSET},
-      {"yellow", CSS_VAL_YELLOW},
-      {"hide", CSS_VAL_HIDE},
-      {"inactivecaption", CSS_VAL_INACTIVECAPTION},
-      {"blue", CSS_VAL_BLUE},
-      {"white", CSS_VAL_WHITE},
-      {"bolder", CSS_VAL_BOLDER},
+#line 205 "cssvalues.gperf"
       {"absolute", CSS_VAL_ABSOLUTE},
-      {"text-bottom", CSS_VAL_TEXT_BOTTOM},
-      {"table-row", CSS_VAL_TABLE_ROW},
-      {"multiple", CSS_VAL_MULTIPLE},
-      {"inline-table", CSS_VAL_INLINE_TABLE},
-      {"large", CSS_VAL_LARGE},
-      {"menu", CSS_VAL_MENU},
-      {"inside", CSS_VAL_INSIDE},
-      {"purple", CSS_VAL_PURPLE},
-      {"super", CSS_VAL_SUPER},
-      {"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
-      {"lower-alpha", CSS_VAL_LOWER_ALPHA},
-      {"captiontext", CSS_VAL_CAPTIONTEXT},
-      {"level", CSS_VAL_LEVEL},
-      {"single", CSS_VAL_SINGLE},
+#line 259 "cssvalues.gperf"
       {"down", CSS_VAL_DOWN},
+#line 251 "cssvalues.gperf"
+      {"inline-axis", CSS_VAL_INLINE_AXIS},
+#line 200 "cssvalues.gperf"
+      {"uppercase", CSS_VAL_UPPERCASE},
+#line 47 "cssvalues.gperf"
+      {"small", CSS_VAL_SMALL},
+#line 121 "cssvalues.gperf"
+      {"repeat-x", CSS_VAL_REPEAT_X},
+#line 224 "cssvalues.gperf"
       {"loud", CSS_VAL_LOUD},
-      {"lower-latin", CSS_VAL_LOWER_LATIN},
+#line 53 "cssvalues.gperf"
+      {"smaller", CSS_VAL_SMALLER},
+#line 66 "cssvalues.gperf"
+      {"sans-serif", CSS_VAL_SANS_SERIF},
+#line 69 "cssvalues.gperf"
+      {"monospace", CSS_VAL_MONOSPACE},
+#line 280 "cssvalues.gperf"
+      {"space", CSS_VAL_SPACE},
+#line 109 "cssvalues.gperf"
+      {"scrollbar", CSS_VAL_SCROLLBAR},
+#line 115 "cssvalues.gperf"
+      {"window", CSS_VAL_WINDOW},
+#line 128 "cssvalues.gperf"
+      {"text-top", CSS_VAL_TEXT_TOP},
+#line 117 "cssvalues.gperf"
+      {"windowtext", CSS_VAL_WINDOWTEXT},
+#line 131 "cssvalues.gperf"
+      {"bottom", CSS_VAL_BOTTOM},
+#line 215 "cssvalues.gperf"
+      {"embed", CSS_VAL_EMBED},
+#line 218 "cssvalues.gperf"
+      {"hide", CSS_VAL_HIDE},
+#line 148 "cssvalues.gperf"
+      {"lower-roman", CSS_VAL_LOWER_ROMAN},
+#line 141 "cssvalues.gperf"
+      {"outside", CSS_VAL_OUTSIDE},
+#line 176 "cssvalues.gperf"
       {"table-column", CSS_VAL_TABLE_COLUMN},
-      {"dot-dash", CSS_VAL_DOT_DASH},
-      {"orange", CSS_VAL_ORANGE},
+#line 155 "cssvalues.gperf"
+      {"hebrew", CSS_VAL_HEBREW},
+#line 125 "cssvalues.gperf"
+      {"middle", CSS_VAL_MIDDLE},
+#line 204 "cssvalues.gperf"
+      {"above", CSS_VAL_ABOVE},
+#line 17 "cssvalues.gperf"
+      {"ridge", CSS_VAL_RIDGE},
+#line 122 "cssvalues.gperf"
+      {"repeat-y", CSS_VAL_REPEAT_Y},
+#line 95 "cssvalues.gperf"
+      {"buttonface", CSS_VAL_BUTTONFACE},
+#line 134 "cssvalues.gperf"
+      {"left", CSS_VAL_LEFT},
+#line 216 "cssvalues.gperf"
+      {"fixed", CSS_VAL_FIXED},
+#line 80 "cssvalues.gperf"
+      {"olive", CSS_VAL_OLIVE},
+#line 245 "cssvalues.gperf"
+      {"stretch", CSS_VAL_STRETCH},
+#line 195 "cssvalues.gperf"
+      {"wait", CSS_VAL_WAIT},
+#line 262 "cssvalues.gperf"
+      {"infinite", CSS_VAL_INFINITE},
+#line 21 "cssvalues.gperf"
+      {"solid", CSS_VAL_SOLID},
+#line 88 "cssvalues.gperf"
+      {"transparent", CSS_VAL_TRANSPARENT},
+#line 107 "cssvalues.gperf"
+      {"infotext", CSS_VAL_INFOTEXT},
+#line 187 "cssvalues.gperf"
+      {"ne-resize", CSS_VAL_NE_RESIZE},
+#line 12 "cssvalues.gperf"
+      {"initial", CSS_VAL_INITIAL},
+#line 188 "cssvalues.gperf"
+      {"nw-resize", CSS_VAL_NW_RESIZE},
+#line 190 "cssvalues.gperf"
+      {"se-resize", CSS_VAL_SE_RESIZE},
+#line 178 "cssvalues.gperf"
+      {"table-caption", CSS_VAL_TABLE_CAPTION},
+#line 191 "cssvalues.gperf"
+      {"sw-resize", CSS_VAL_SW_RESIZE},
+#line 253 "cssvalues.gperf"
+      {"single", CSS_VAL_SINGLE},
+#line 76 "cssvalues.gperf"
+      {"green", CSS_VAL_GREEN},
+#line 265 "cssvalues.gperf"
+      {"unfurl", CSS_VAL_UNFURL},
+#line 104 "cssvalues.gperf"
+      {"inactivecaption", CSS_VAL_INACTIVECAPTION},
+#line 105 "cssvalues.gperf"
+      {"inactivecaptiontext", CSS_VAL_INACTIVECAPTIONTEXT},
+#line 49 "cssvalues.gperf"
+      {"large", CSS_VAL_LARGE},
+#line 255 "cssvalues.gperf"
+      {"forwards", CSS_VAL_FORWARDS},
+#line 30 "cssvalues.gperf"
+      {"oblique", CSS_VAL_OBLIQUE},
+#line 54 "cssvalues.gperf"
       {"larger", CSS_VAL_LARGER},
+#line 207 "cssvalues.gperf"
+      {"avoid", CSS_VAL_AVOID},
+#line 160 "cssvalues.gperf"
       {"katakana", CSS_VAL_KATAKANA},
+#line 164 "cssvalues.gperf"
+      {"block", CSS_VAL_BLOCK},
+#line 137 "cssvalues.gperf"
+      {"justify", CSS_VAL_JUSTIFY},
+#line 212 "cssvalues.gperf"
+      {"close-quote", CSS_VAL_CLOSE_QUOTE},
+#line 271 "cssvalues.gperf"
+      {"clip", CSS_VAL_CLIP},
+#line 118 "cssvalues.gperf"
       {"grey", CSS_VAL_GREY},
-      {"discard", CSS_VAL_DISCARD},
-      {"lighter", CSS_VAL_LIGHTER},
-      {"read-only", CSS_VAL_READ_ONLY},
-      {"oblique", CSS_VAL_OBLIQUE},
-      {"upper-alpha", CSS_VAL_UPPER_ALPHA},
-      {"lower-roman", CSS_VAL_LOWER_ROMAN},
-      {"square", CSS_VAL_SQUARE},
-      {"xx-small", CSS_VAL_XX_SMALL},
+#line 154 "cssvalues.gperf"
       {"upper-latin", CSS_VAL_UPPER_LATIN},
-      {"inline-block", CSS_VAL_INLINE_BLOCK},
-      {"relative", CSS_VAL_RELATIVE},
-      {"narrower", CSS_VAL_NARROWER},
-      {"wave", CSS_VAL_WAVE},
-      {"element", CSS_VAL_ELEMENT},
-      {"block-axis", CSS_VAL_BLOCK_AXIS},
-      {"higher", CSS_VAL_HIGHER},
-      {"-khtml-left", CSS_VAL__KHTML_LEFT},
-      {"s-resize", CSS_VAL_S_RESIZE},
-      {"inline-axis", CSS_VAL_INLINE_AXIS},
-      {"-khtml-auto", CSS_VAL__KHTML_AUTO},
-      {"upper-roman", CSS_VAL_UPPER_ROMAN},
-      {"infotext", CSS_VAL_INFOTEXT},
-      {"-khtml-box", CSS_VAL__KHTML_BOX},
-      {"buttonface", CSS_VAL_BUTTONFACE},
-      {"overline", CSS_VAL_OVERLINE},
-      {"n-resize", CSS_VAL_N_RESIZE},
-      {"-khtml-body", CSS_VAL__KHTML_BODY},
-      {"-khtml-link", CSS_VAL__KHTML_LINK},
-      {"embed", CSS_VAL_EMBED},
-      {"-khtml-nowrap", CSS_VAL__KHTML_NOWRAP},
-      {"katakana-iroha", CSS_VAL_KATAKANA_IROHA},
-      {"lowercase", CSS_VAL_LOWERCASE},
+#line 239 "cssvalues.gperf"
+      {"show", CSS_VAL_SHOW},
+#line 184 "cssvalues.gperf"
+      {"pointer", CSS_VAL_POINTER},
+#line 249 "cssvalues.gperf"
+      {"horizontal", CSS_VAL_HORIZONTAL},
+#line 170 "cssvalues.gperf"
+      {"inline-table", CSS_VAL_INLINE_TABLE},
+#line 16 "cssvalues.gperf"
       {"groove", CSS_VAL_GROOVE},
-      {"continuous", CSS_VAL_CONTINUOUS},
-      {"dotted", CSS_VAL_DOTTED},
-      {"forwards", CSS_VAL_FORWARDS},
-      {"cursive", CSS_VAL_CURSIVE},
-      {"repeat-x", CSS_VAL_REPEAT_X},
-      {"-khtml-right", CSS_VAL__KHTML_RIGHT},
-      {"middle", CSS_VAL_MIDDLE},
-      {"hebrew", CSS_VAL_HEBREW},
-      {"uppercase", CSS_VAL_UPPERCASE},
-      {"highlight", CSS_VAL_HIGHLIGHT},
-      {"dashed", CSS_VAL_DASHED},
-      {"green", CSS_VAL_GREEN},
-      {"close-quote", CSS_VAL_CLOSE_QUOTE},
+#line 231 "cssvalues.gperf"
+      {"open-quote", CSS_VAL_OPEN_QUOTE},
+#line 116 "cssvalues.gperf"
+      {"windowframe", CSS_VAL_WINDOWFRAME},
+#line 119 "cssvalues.gperf"
+      {"-khtml-text", CSS_VAL__KHTML_TEXT},
+#line 22 "cssvalues.gperf"
       {"double", CSS_VAL_DOUBLE},
-      {"wider", CSS_VAL_WIDER},
-      {"unfurl", CSS_VAL_UNFURL},
-      {"outside", CSS_VAL_OUTSIDE},
-      {"medium", CSS_VAL_MEDIUM},
-      {"marquee", CSS_VAL_MARQUEE},
+#line 129 "cssvalues.gperf"
+      {"text-bottom", CSS_VAL_TEXT_BOTTOM},
+#line 140 "cssvalues.gperf"
+      {"-khtml-center", CSS_VAL__KHTML_CENTER},
+#line 196 "cssvalues.gperf"
+      {"help", CSS_VAL_HELP},
+#line 221 "cssvalues.gperf"
+      {"landscape", CSS_VAL_LANDSCAPE},
+#line 45 "cssvalues.gperf"
+      {"xx-small", CSS_VAL_XX_SMALL},
+#line 72 "cssvalues.gperf"
+      {"black", CSS_VAL_BLACK},
+#line 182 "cssvalues.gperf"
+      {"crosshair", CSS_VAL_CROSSHAIR},
+#line 149 "cssvalues.gperf"
+      {"upper-roman", CSS_VAL_UPPER_ROMAN},
+#line 123 "cssvalues.gperf"
+      {"no-repeat", CSS_VAL_NO_REPEAT},
+#line 33 "cssvalues.gperf"
+      {"bold", CSS_VAL_BOLD},
+#line 34 "cssvalues.gperf"
+      {"bolder", CSS_VAL_BOLDER},
+#line 138 "cssvalues.gperf"
+      {"-khtml-left", CSS_VAL__KHTML_LEFT},
+#line 91 "cssvalues.gperf"
+      {"activeborder", CSS_VAL_ACTIVEBORDER},
+#line 19 "cssvalues.gperf"
+      {"dotted", CSS_VAL_DOTTED},
+#line 211 "cssvalues.gperf"
+      {"both", CSS_VAL_BOTH},
+#line 81 "cssvalues.gperf"
+      {"orange", CSS_VAL_ORANGE},
+#line 273 "cssvalues.gperf"
+      {"discard", CSS_VAL_DISCARD},
+#line 133 "cssvalues.gperf"
+      {"-khtml-auto", CSS_VAL__KHTML_AUTO},
+#line 93 "cssvalues.gperf"
       {"appworkspace", CSS_VAL_APPWORKSPACE},
-      {"open-quote", CSS_VAL_OPEN_QUOTE},
+#line 168 "cssvalues.gperf"
+      {"inline-block", CSS_VAL_INLINE_BLOCK},
+#line 75 "cssvalues.gperf"
+      {"gray", CSS_VAL_GRAY},
+#line 100 "cssvalues.gperf"
+      {"graytext", CSS_VAL_GRAYTEXT},
+#line 59 "cssvalues.gperf"
+      {"condensed", CSS_VAL_CONDENSED},
+#line 14 "cssvalues.gperf"
       {"hidden", CSS_VAL_HIDDEN},
-      {"-khtml-center", CSS_VAL__KHTML_CENTER},
-      {"ridge", CSS_VAL_RIDGE},
-      {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
-      {"-khtml-text", CSS_VAL__KHTML_TEXT},
-      {"e-resize", CSS_VAL_E_RESIZE},
-      {"se-resize", CSS_VAL_SE_RESIZE},
+#line 50 "cssvalues.gperf"
       {"x-large", CSS_VAL_X_LARGE},
-      {"reverse", CSS_VAL_REVERSE},
-      {"buttontext", CSS_VAL_BUTTONTEXT},
-      {"window", CSS_VAL_WINDOW},
-      {"dot-dot-dash", CSS_VAL_DOT_DOT_DASH},
-      {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
+#line 263 "cssvalues.gperf"
+      {"slide", CSS_VAL_SLIDE},
+#line 267 "cssvalues.gperf"
+      {"read-write", CSS_VAL_READ_WRITE},
+#line 31 "cssvalues.gperf"
+      {"small-caps", CSS_VAL_SMALL_CAPS},
+#line 28 "cssvalues.gperf"
+      {"status-bar", CSS_VAL_STATUS_BAR},
+#line 89 "cssvalues.gperf"
+      {"-khtml-link", CSS_VAL__KHTML_LINK},
+#line 27 "cssvalues.gperf"
+      {"small-caption", CSS_VAL_SMALL_CAPTION},
+#line 252 "cssvalues.gperf"
+      {"block-axis", CSS_VAL_BLOCK_AXIS},
+#line 209 "cssvalues.gperf"
+      {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
+#line 210 "cssvalues.gperf"
+      {"blink", CSS_VAL_BLINK},
+#line 146 "cssvalues.gperf"
+      {"decimal", CSS_VAL_DECIMAL},
+#line 150 "cssvalues.gperf"
+      {"lower-greek", CSS_VAL_LOWER_GREEK},
+#line 86 "cssvalues.gperf"
+      {"white", CSS_VAL_WHITE},
+#line 242 "cssvalues.gperf"
+      {"thin", CSS_VAL_THIN},
+#line 217 "cssvalues.gperf"
+      {"hand", CSS_VAL_HAND},
+#line 135 "cssvalues.gperf"
+      {"right", CSS_VAL_RIGHT},
+#line 183 "cssvalues.gperf"
       {"default", CSS_VAL_DEFAULT},
-      {"ne-resize", CSS_VAL_NE_RESIZE},
-      {"backwards", CSS_VAL_BACKWARDS},
-      {"fixed", CSS_VAL_FIXED},
-      {"graytext", CSS_VAL_GRAYTEXT},
-      {"w-resize", CSS_VAL_W_RESIZE},
-      {"georgian", CSS_VAL_GEORGIAN},
-      {"sw-resize", CSS_VAL_SW_RESIZE},
-      {"buttonshadow", CSS_VAL_BUTTONSHADOW},
-      {"nw-resize", CSS_VAL_NW_RESIZE},
-      {"activeborder", CSS_VAL_ACTIVEBORDER},
-      {"-khtml-inline-box", CSS_VAL__KHTML_INLINE_BOX},
-      {"line-through", CSS_VAL_LINE_THROUGH},
-      {"condensed", CSS_VAL_CONDENSED},
-      {"inactivecaptiontext", CSS_VAL_INACTIVECAPTIONTEXT},
+#line 62 "cssvalues.gperf"
+      {"expanded", CSS_VAL_EXPANDED},
+#line 244 "cssvalues.gperf"
+      {"-khtml-nowrap", CSS_VAL__KHTML_NOWRAP},
+#line 35 "cssvalues.gperf"
+      {"lighter", CSS_VAL_LIGHTER},
+#line 90 "cssvalues.gperf"
+      {"-khtml-activelink", CSS_VAL__KHTML_ACTIVELINK},
+#line 266 "cssvalues.gperf"
+      {"read-only", CSS_VAL_READ_ONLY},
+#line 103 "cssvalues.gperf"
       {"inactiveborder", CSS_VAL_INACTIVEBORDER},
-      {"menutext", CSS_VAL_MENUTEXT},
+#line 111 "cssvalues.gperf"
       {"threedface", CSS_VAL_THREEDFACE},
-      {"read-write", CSS_VAL_READ_WRITE},
+#line 179 "cssvalues.gperf"
+      {"-khtml-box", CSS_VAL__KHTML_BOX},
+#line 74 "cssvalues.gperf"
+      {"fuchsia", CSS_VAL_FUCHSIA},
+#line 257 "cssvalues.gperf"
+      {"ahead", CSS_VAL_AHEAD},
+#line 151 "cssvalues.gperf"
+      {"lower-alpha", CSS_VAL_LOWER_ALPHA},
+#line 228 "cssvalues.gperf"
+      {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
+#line 60 "cssvalues.gperf"
+      {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
+#line 51 "cssvalues.gperf"
+      {"xx-large", CSS_VAL_XX_LARGE},
+#line 241 "cssvalues.gperf"
+      {"thick", CSS_VAL_THICK},
+#line 58 "cssvalues.gperf"
+      {"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
+#line 57 "cssvalues.gperf"
+      {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
+#line 229 "cssvalues.gperf"
+      {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
+#line 159 "cssvalues.gperf"
+      {"hiragana", CSS_VAL_HIRAGANA},
+#line 26 "cssvalues.gperf"
       {"message-box", CSS_VAL_MESSAGE_BOX},
-      {"skip-white-space", CSS_VAL_SKIP_WHITE_SPACE},
-      {"-khtml-activelink", CSS_VAL__KHTML_ACTIVELINK},
-      {"after-white-space", CSS_VAL_AFTER_WHITE_SPACE},
-      {"underline", CSS_VAL_UNDERLINE},
+#line 279 "cssvalues.gperf"
       {"break-word", CSS_VAL_BREAK_WORD},
-      {"buttonhighlight", CSS_VAL_BUTTONHIGHLIGHT},
-      {"xx-large", CSS_VAL_XX_LARGE},
-      {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
+#line 61 "cssvalues.gperf"
+      {"semi-expanded", CSS_VAL_SEMI_EXPANDED},
+#line 157 "cssvalues.gperf"
+      {"georgian", CSS_VAL_GEORGIAN},
+#line 171 "cssvalues.gperf"
       {"table-row-group", CSS_VAL_TABLE_ROW_GROUP},
-      {"windowframe", CSS_VAL_WINDOWFRAME},
+#line 180 "cssvalues.gperf"
+      {"-khtml-inline-box", CSS_VAL__KHTML_INLINE_BOX},
+#line 63 "cssvalues.gperf"
+      {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
+#line 20 "cssvalues.gperf"
+      {"dashed", CSS_VAL_DASHED},
+#line 281 "cssvalues.gperf"
+      {"after-white-space", CSS_VAL_AFTER_WHITE_SPACE},
+#line 64 "cssvalues.gperf"
+      {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
+#line 153 "cssvalues.gperf"
+      {"upper-alpha", CSS_VAL_UPPER_ALPHA},
+#line 256 "cssvalues.gperf"
+      {"backwards", CSS_VAL_BACKWARDS},
+#line 97 "cssvalues.gperf"
+      {"buttonshadow", CSS_VAL_BUTTONSHADOW},
+#line 173 "cssvalues.gperf"
       {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
-      {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
+#line 162 "cssvalues.gperf"
+      {"katakana-iroha", CSS_VAL_KATAKANA_IROHA},
+#line 175 "cssvalues.gperf"
       {"table-column-group", CSS_VAL_TABLE_COLUMN_GROUP},
+#line 219 "cssvalues.gperf"
+      {"higher", CSS_VAL_HIGHER},
+#line 70 "cssvalues.gperf"
+      {"-khtml-body", CSS_VAL__KHTML_BODY},
+#line 52 "cssvalues.gperf"
+      {"-khtml-xxx-large", CSS_VAL__KHTML_XXX_LARGE},
+#line 274 "cssvalues.gperf"
+      {"dot-dash", CSS_VAL_DOT_DASH},
+#line 139 "cssvalues.gperf"
+      {"-khtml-right", CSS_VAL__KHTML_RIGHT},
+#line 223 "cssvalues.gperf"
+      {"line-through", CSS_VAL_LINE_THROUGH},
+#line 94 "cssvalues.gperf"
       {"background", CSS_VAL_BACKGROUND},
-      {"expanded", CSS_VAL_EXPANDED},
-      {"highlighttext", CSS_VAL_HIGHLIGHTTEXT},
-      {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
+#line 114 "cssvalues.gperf"
       {"threedshadow", CSS_VAL_THREEDSHADOW},
-      {"windowtext", CSS_VAL_WINDOWTEXT},
-      {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
+#line 278 "cssvalues.gperf"
+      {"skip-white-space", CSS_VAL_SKIP_WHITE_SPACE},
+#line 161 "cssvalues.gperf"
+      {"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
+#line 106 "cssvalues.gperf"
       {"infobackground", CSS_VAL_INFOBACKGROUND},
-      {"threedhighlight", CSS_VAL_THREEDHIGHLIGHT},
-      {"semi-expanded", CSS_VAL_SEMI_EXPANDED},
-      {"lower-greek", CSS_VAL_LOWER_GREEK},
-      {"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
-      {"-khtml-baseline-middle", CSS_VAL__KHTML_BASELINE_MIDDLE},
-      {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
+#line 172 "cssvalues.gperf"
       {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
-      {"threedlightshadow", CSS_VAL_THREEDLIGHTSHADOW},
+#line 132 "cssvalues.gperf"
+      {"-khtml-baseline-middle", CSS_VAL__KHTML_BASELINE_MIDDLE},
+#line 275 "cssvalues.gperf"
+      {"dot-dot-dash", CSS_VAL_DOT_DOT_DASH},
+#line 158 "cssvalues.gperf"
+      {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
+#line 147 "cssvalues.gperf"
       {"decimal-leading-zero", CSS_VAL_DECIMAL_LEADING_ZERO},
-      {"-khtml-xxx-large", CSS_VAL__KHTML_XXX_LARGE},
-      {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
-      {"threeddarkshadow", CSS_VAL_THREEDDARKSHADOW}
+#line 101 "cssvalues.gperf"
+      {"highlight", CSS_VAL_HIGHLIGHT},
+#line 102 "cssvalues.gperf"
+      {"highlighttext", CSS_VAL_HIGHLIGHTTEXT},
+#line 110 "cssvalues.gperf"
+      {"threeddarkshadow", CSS_VAL_THREEDDARKSHADOW},
+#line 96 "cssvalues.gperf"
+      {"buttonhighlight", CSS_VAL_BUTTONHIGHLIGHT},
+#line 113 "cssvalues.gperf"
+      {"threedlightshadow", CSS_VAL_THREEDLIGHTSHADOW},
+#line 112 "cssvalues.gperf"
+      {"threedhighlight", CSS_VAL_THREEDHIGHLIGHT}
     };
 
   static const short lookup[] =
     {
-         0,   -1,   -1,   -1,   -1,    1,   -1,   -1,
-        -1,   -1,    2,   -1,   -1,    3,   -1,    4,
-        -1,   -1,   -1,   -1,    5,   -1,   -1,    6,
-        -1,    7,   -1,   -1,   -1,   -1,    8,   -1,
-         9,   -1,   -1,   10,   -1,   -1,   -1,   -1,
-        11,   -1,   -1,   -1,   -1,   -1,   12,   -1,
-        13,   -1,   -1,   14,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   15,   -1,   -1,   -1,   -1,
-        -1, -338, -255,   -2,   -1,   -1,   -1,   -1,
-        -1,   18,   -1,   19,   -1,   -1,   -1,   -1,
-        -1,   20,   -1,   21,   -1,   -1,   -1,   -1,
-        -1,   22,   -1,   -1,   -1,   23,   -1,   -1,
-        -1,   -1,   24,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   25,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   26,   -1,   -1,   -1,   -1,   27,
-        28,   -1,   29,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        30,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   31,   -1,   -1,   -1,   -1,   -1,
-        32,   -1,   33,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   34,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   35,   -1,   -1,
-        -1,   -1,   -1,   -1,   36,   -1,   -1,   -1,
-        -1,   37,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   38,   -1,   -1,   -1,   -1,   39,   -1,
-        40,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   41,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   42,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   43,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   44,   -1,   -1,   -1,
-        -1,   45,   -1,   -1,   -1,   -1,   46,   47,
-        48,   -1,   -1,   -1,   -1,   -1,   49,   -1,
-        50,   -1,   -1,   51,   -1,   -1,   -1,   52,
-        -1,   -1,   -1,   -1,   53,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   54,   55,   -1,   -1,   -1,   -1,   -1,
-        56,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        57,   58,   59,   -1,   -1,   -1,   -1,   -1,
-        60,   -1,   -1,   -1,   61,   62,   -1,   -1,
-        -1,   -1,   -1,   -1,   63,   -1,   64,   65,
-        -1,   66,   -1,   -1,   67,   -1,   -1,   -1,
-        68,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        69,   -1,   -1,   -1,   -1,   -1,   -1,   70,
-        -1,   -1,   71,   -1,   -1,   -1,   -1,   72,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   73,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   74,
-        -1,   -1,   -1,   75,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   76,   -1,   -1,   -1,   -1,   77,
-        -1,   -1,   78,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   79,   -1,   -1,   80,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   81,   -1,   -1,   -1,   -1,   -1,
-        82,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   83,
-        -1,   84,   -1,   -1,   -1,   -1,   85,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        86,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   87,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   88,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   89,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   90,   91,   -1,   -1,
-        -1,   -1,   92,   -1,   93,   -1,   -1,   -1,
-        -1,   94,   95,   96,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   97,   -1,   -1,   -1,   -1,
-        -1,   -1,   98,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   99,   -1,   -1,   -1,  100,   -1,
-        -1,   -1,   -1,   -1,  101,   -1,   -1,   -1,
-        -1,  102,   -1,   -1,   -1,   -1,   -1,   -1,
-       103,   -1,   -1,  104,   -1,   -1,   -1,   -1,
-       105,  106,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  107,   -1,   -1,   -1,   -1,   -1,
-        -1,  108,   -1,   -1,  109,   -1,  110,  111,
-        -1,   -1,   -1,  112,  113,   -1,   -1,   -1,
-       114,   -1,   -1,   -1,   -1,  115,   -1,   -1,
-       116,   -1,   -1,   -1,   -1,   -1,   -1,  117,
-       118,   -1,  119,   -1,  120,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  121,  122,
-       123,  124,   -1,   -1,  125,   -1,  126,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       127,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       128,   -1,  129,   -1,   -1,  130,   -1,  131,
-        -1,   -1,   -1,   -1,  132,   -1,   -1,   -1,
-        -1,  133,   -1,  134,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  135,   -1,
-       136,   -1,  137,   -1,   -1,   -1,  138,   -1,
-       139,   -1,  140,   -1,   -1,   -1,   -1,  141,
-        -1,  142,   -1,   -1,   -1,   -1,  143,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       144,   -1,   -1,   -1,  145,   -1,  146,   -1,
-       147,   -1,   -1,   -1,   -1,  148,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  149,   -1,   -1,  150,   -1,   -1,   -1,
-        -1,  151,   -1,   -1,   -1,   -1,   -1,  152,
-       153,   -1,   -1,  154,   -1,  155,   -1,   -1,
-       156,   -1,  157,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  158,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  159,
-        -1,   -1,   -1,   -1,  160,   -1,  161,   -1,
-       162,   -1,   -1,  163,   -1,   -1,   -1,   -1,
-       164,   -1,   -1,  165,   -1,   -1,   -1,  166,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       167,  168,   -1,   -1,   -1,   -1,  169,   -1,
-        -1,   -1,  170,   -1,   -1,   -1,   -1,  171,
-        -1,   -1,   -1,   -1,   -1,  172,   -1,  173,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       174,   -1,  175,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  176,   -1,
-        -1,   -1,   -1,   -1,   -1,  177,   -1,  178,
-        -1,  179,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  180,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  181,   -1,   -1,   -1,   -1,   -1,   -1,
-       182,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       183,   -1,  184,   -1,   -1,   -1,   -1,   -1,
-        -1,  185,   -1,   -1,   -1,   -1,  186,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       187,   -1,  188,   -1,   -1,   -1,   -1,  189,
-        -1,   -1,   -1,   -1,  190,   -1,   -1,   -1,
-        -1,   -1,  191,   -1,   -1,   -1,   -1,  192,
-        -1,   -1,   -1,   -1,  193,   -1,  194,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  195,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  196,   -1,   -1,   -1,   -1,  197,   -1,
-        -1,   -1,   -1,   -1,   -1,  198,   -1,   -1,
-        -1,   -1,  199,   -1,   -1,   -1,   -1,  200,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  201,   -1,   -1,   -1,   -1,   -1,
-        -1,  202,   -1,   -1,   -1,  203,   -1,   -1,
-        -1,   -1,   -1,  204,   -1,   -1,  205,  206,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  207,
-        -1,   -1,   -1,   -1,  208,   -1,   -1,   -1,
-        -1,   -1,  209,  210,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  211,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  212,   -1,   -1,
-        -1,   -1,  213,   -1,   -1,   -1,   -1,  214,
-        -1,  215,  216,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  217,   -1,
-        -1,   -1,   -1,   -1,   -1,  218,   -1,   -1,
-        -1,   -1,  219,   -1,   -1,   -1,   -1,   -1,
-       220,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  221,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  222,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  223,   -1,   -1,   -1,
-        -1,   -1,  224,   -1,   -1,   -1,  225,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  226,   -1,   -1,
-        -1,   -1,   -1,  227,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  228,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  229,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  230,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       231,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  232,   -1,
-        -1,   -1,   -1,   -1,   -1,  233,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  234,
-       235,  236,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  237,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  238,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  239,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       240,   -1,   -1,  241,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  242,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  243,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  244,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  245,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  246,
-        -1,   -1,   -1,  247,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  248,   -1,  249,   -1,   -1,
-        -1,  250,   -1,   -1,   -1,  251,   -1,   -1,
-        -1,  252,  253,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  254,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  255,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  257,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  258,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  259,  260,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  261,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  262,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  263,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  264,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  265,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  266,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  267,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  268,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  269,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  270
+        0,  -1,  -1,  -1,  -1,   1,  -1,  -1,  -1,  -1,
+        2,  -1,  -1,  -1,  -1,   3,  -1,  -1,   4,  -1,
+        5,  -1,  -1,  -1,  -1,   6,  -1,  -1,   7,  -1,
+        8,  -1,  -1,  -1,  -1,   9,  -1,  -1,  10,  -1,
+       11,  -1,  -1,  -1,  -1,  12,  -1,  -1,  13,  -1,
+       14,  -1,  -1,  -1,  -1,  15,  -1,  -1,  -1,  -1,
+       16,  -1,  -1,  17,  -1,  18,  -1,  -1,  19,  -1,
+       20,  -1,  -1,  -1,  -1,  21,  22,  -1,  -1,  -1,
+       23,  -1,  -1,  24,  -1,  25,  -1,  -1,  -1,  -1,
+       26,  -1,  -1,  -1,  -1,  27,  -1,  -1,  -1,  -1,
+       28,  -1,  -1,  -1,  -1,  29,  -1,  -1,  -1,  -1,
+       30,  -1,  -1,  31,  -1,  32,  -1,  -1,  33,  -1,
+       34,  -1,  -1,  -1,  -1,  35,  -1,  -1,  36,  -1,
+       -1,  -1,  -1,  37,  -1,  -1,  -1,  -1,  38,  -1,
+       -1,  -1,  -1,  39,  -1,  40,  41,  -1,  42,  -1,
+       -1,  43,  -1,  -1,  -1,  44,  -1,  -1,  45,  -1,
+       46,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  47,  -1,
+       48,  -1,  -1,  49,  -1,  50,  -1,  -1,  -1,  -1,
+       51,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  52,  -1,
+       -1,  -1,  -1,  53,  -1,  54,  -1,  -1,  55,  -1,
+       56,  -1,  -1,  57,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  58,  -1,
+       59,  -1,  -1,  60,  -1,  -1,  61,  -1,  -1,  -1,
+       -1,  62,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       63,  -1,  -1,  -1,  -1,  -1,  64,  -1,  -1,  -1,
+       65,  -1,  -1,  -1,  -1,  66,  -1,  -1,  67,  -1,
+       68,  -1,  -1,  69,  70,  71,  -1,  -1,  72,  -1,
+       73,  74,  -1,  -1,  -1,  75,  -1,  -1,  -1,  -1,
+       76,  77,  -1,  -1,  -1,  78,  -1,  -1,  -1,  -1,
+       79,  -1,  -1,  80,  -1,  81,  -1,  -1,  82,  -1,
+       83,  -1,  -1,  84,  -1,  -1,  -1,  -1,  -1,  -1,
+       85,  86,  -1,  87,  -1,  88,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  89,  -1,  -1,  -1,  -1,
+       90,  -1,  -1,  91,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  92,  -1,  -1,  -1,  -1,  93,  -1,
+       94,  -1,  -1,  95,  -1,  96,  -1,  -1,  97,  -1,
+       98,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       99,  -1,  -1,  -1,  -1, 100,  -1,  -1,  -1,  -1,
+      101,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 102,  -1,
+      103,  -1,  -1, 104,  -1, 105,  -1,  -1, 106,  -1,
+       -1,  -1,  -1, 107,  -1,  -1,  -1,  -1, 108,  -1,
+      109, 110,  -1, 111,  -1, 112,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 113,  -1, 114,  -1,  -1,  -1,  -1,
+      115,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      116, 117,  -1, 118, 119, 120,  -1,  -1,  -1,  -1,
+      121,  -1,  -1,  -1,  -1, 122,  -1,  -1, 123,  -1,
+      124,  -1,  -1,  -1,  -1, 125,  -1,  -1, 126,  -1,
+      127,  -1,  -1, 128,  -1, 129, 130,  -1,  -1,  -1,
+       -1,  -1,  -1, 131,  -1, 132,  -1,  -1,  -1,  -1,
+       -1, 133,  -1, 134,  -1, 135,  -1,  -1, 136,  -1,
+      137,  -1,  -1,  -1,  -1, 138,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 139,  -1,  -1, 140,  -1,
+       -1,  -1,  -1,  -1,  -1, 141,  -1,  -1,  -1,  -1,
+      142,  -1,  -1, 143,  -1, 144,  -1,  -1,  -1,  -1,
+      145,  -1,  -1, 146,  -1, 147,  -1,  -1, 148,  -1,
+      149,  -1,  -1, 150,  -1,  -1, 151,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 152, 153,  -1, 154,  -1,
+      155,  -1,  -1, 156,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 157,  -1,  -1,  -1,  -1,
+      158,  -1,  -1,  -1,  -1,  -1, 159,  -1, 160,  -1,
+       -1,  -1,  -1,  -1,  -1, 161, 162,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 163,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 164,  -1,
+      165,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      166,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      167,  -1,  -1, 168,  -1,  -1, 169,  -1,  -1, 170,
+       -1,  -1,  -1, 171,  -1,  -1,  -1,  -1, 172,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 173,  -1,
+      174,  -1,  -1,  -1,  -1, 175,  -1,  -1,  -1,  -1,
+      176, 177,  -1,  -1,  -1, 178,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      179,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 180,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      181,  -1,  -1,  -1,  -1, 182,  -1,  -1,  -1,  -1,
+      183,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 184,  -1,
+       -1,  -1,  -1, 185,  -1,  -1,  -1,  -1,  -1,  -1,
+      186,  -1,  -1,  -1,  -1, 187,  -1,  -1,  -1,  -1,
+      188,  -1,  -1,  -1,  -1, 189,  -1,  -1,  -1,  -1,
+      190,  -1,  -1,  -1,  -1,  -1, 191,  -1,  -1,  -1,
+      192,  -1,  -1, 193,  -1,  -1, 194,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 195,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 196,  -1,  -1, 197,  -1,
+      198,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 199,  -1,
+       -1,  -1,  -1,  -1,  -1, 200,  -1,  -1,  -1,  -1,
+      201,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 202,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 203,  -1,  -1, 204,  -1,
+       -1,  -1,  -1, 205,  -1, 206,  -1,  -1,  -1,  -1,
+      207,  -1,  -1, 208,  -1,  -1,  -1,  -1, 209,  -1,
+      210,  -1,  -1,  -1,  -1, 211,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      212,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      213,  -1,  -1,  -1,  -1,  -1, 214,  -1, 215,  -1,
+      216,  -1,  -1, 217,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 218,  -1,  -1,  -1,  -1, 219,  -1,
+       -1,  -1,  -1, 220,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 221,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 222,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 223,  -1,
+       -1,  -1,  -1, 224,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 225,  -1,
+       -1,  -1,  -1,  -1,  -1, 226,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 227,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 228,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 229,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 230,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 231,  -1,  -1,  -1,  -1,  -1,  -1,
+      232,  -1,  -1, 233,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 234,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 235,  -1,
+      236,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 237,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 238,  -1,  -1, 239,  -1,  -1,  -1,
+      240,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 241,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 242,  -1,
+       -1,  -1,  -1, 243,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 244,  -1,
+       -1,  -1,  -1, 245,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 246,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      247,  -1,  -1,  -1,  -1, 248,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      249,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 250,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 251,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      252,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 253,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      254,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 255,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 256,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 257,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 258,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 259,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      260,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      261,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 262,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 263,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 264,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 265,  -1,  -1, 266,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 267,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      268,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 269,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      270
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -772,25 +1054,12 @@ findValue (register const char *str, register unsigned int len)
               if (*str == *s && !strcmp (str + 1, s + 1))
                 return &wordlist_value[index];
             }
-          else if (index < -TOTAL_KEYWORDS)
-            {
-              register int offset = - 1 - TOTAL_KEYWORDS - index;
-              register const struct css_value *wordptr = &wordlist_value[TOTAL_KEYWORDS + lookup[offset]];
-              register const struct css_value *wordendptr = wordptr + -lookup[offset + 1];
-
-              while (wordptr < wordendptr)
-                {
-                  register const char *s = wordptr->name;
-
-                  if (*str == *s && !strcmp (str + 1, s + 1))
-                    return wordptr;
-                  wordptr++;
-                }
-            }
         }
     }
   return 0;
 }
+#line 282 "cssvalues.gperf"
+
 static const char * const valueList[] = {
 "",
 "inherit", 
index 9f07241b1e343f76e40feb2123117cba16cae062..3f9faae470cdc3fcca346f30b2a946f9bfc73dff 100644 (file)
@@ -1,14 +1,45 @@
-/* ANSI-C code produced by gperf version 2.7.2 */
+/* ANSI-C code produced by gperf version 3.0.1 */
 /* Command-line: gperf -c -a -L ANSI-C -D -E -C -o -t -k '*' -NfindAttr -Hhash_attr -Wwordlist_attr -s 2 htmlattrs.gperf  */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "htmlattrs.gperf"
+
 /* This file is automatically generated from
 #htmlattrs.in by makeattrs, do not edit */
 /* Copyright 1999 Lars Knoll */
 #include "htmlattrs.h"
+#line 7 "htmlattrs.gperf"
 struct attrs {
     const char *name;
     int id;
 };
-/* maximum key range = 1379, duplicates = 1 */
+/* maximum key range = 705, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -22,66 +53,79 @@ hash_attr (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382,   10, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382,   30,  170,   10,
-        45,    0,  120,   55,  100,    0,    0,   90,   30,  360,
-         0,    0,    0,    0,  215,    5,    0,   65,   20,   35,
-        25,   15,    0, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
-      1382, 1382, 1382, 1382, 1382, 1382
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708,  10,  10, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708,  10,  25,   5,
+        0,   5,  60,  40, 140,  30, 135, 210,  15,  35,
+       90,   0,   0,   0,   0,   0,   0,  85, 150, 225,
+       70,  10,  20, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
+      708, 708, 708, 708, 708, 708, 708
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
-      case 15:
         hval += asso_values[(unsigned char)str[14]];
+      /*FALLTHROUGH*/
       case 14:
         hval += asso_values[(unsigned char)str[13]];
+      /*FALLTHROUGH*/
       case 13:
         hval += asso_values[(unsigned char)str[12]];
+      /*FALLTHROUGH*/
       case 12:
         hval += asso_values[(unsigned char)str[11]];
+      /*FALLTHROUGH*/
       case 11:
         hval += asso_values[(unsigned char)str[10]];
+      /*FALLTHROUGH*/
       case 10:
         hval += asso_values[(unsigned char)str[9]];
+      /*FALLTHROUGH*/
       case 9:
         hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
       case 8:
         hval += asso_values[(unsigned char)str[7]];
+      /*FALLTHROUGH*/
       case 7:
         hval += asso_values[(unsigned char)str[6]];
+      /*FALLTHROUGH*/
       case 6:
         hval += asso_values[(unsigned char)str[5]];
+      /*FALLTHROUGH*/
       case 5:
         hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
       case 4:
         hval += asso_values[(unsigned char)str[3]];
+      /*FALLTHROUGH*/
       case 3:
         hval += asso_values[(unsigned char)str[2]];
+      /*FALLTHROUGH*/
       case 2:
-        hval += asso_values[(unsigned char)str[1]];
+        hval += asso_values[(unsigned char)str[1]+1];
+      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -101,369 +145,448 @@ findAttr (register const char *str, register unsigned int len)
       MIN_WORD_LENGTH = 2,
       MAX_WORD_LENGTH = 15,
       MIN_HASH_VALUE = 3,
-      MAX_HASH_VALUE = 1381
+      MAX_HASH_VALUE = 707
     };
 
   static const struct attrs wordlist_attr[] =
     {
+#line 177 "htmlattrs.gperf"
       {"top", ATTR_TOP},
-      {"size", ATTR_SIZE},
-      {"cite", ATTR_CITE},
-      {"content", ATTR_CONTENT},
-      {"type", ATTR_TYPE},
+#line 118 "htmlattrs.gperf"
+      {"ondrop", ATTR_ONDROP},
+#line 167 "htmlattrs.gperf"
+      {"src", ATTR_SRC},
+#line 159 "htmlattrs.gperf"
       {"scope", ATTR_SCOPE},
-      {"text", ATTR_TEXT},
-      {"oncopy", ATTR_ONCOPY},
-      {"enctype", ATTR_ENCTYPE},
+#line 52 "htmlattrs.gperf"
+      {"coords", ATTR_COORDS},
+#line 119 "htmlattrs.gperf"
+      {"onerror", ATTR_ONERROR},
+#line 42 "htmlattrs.gperf"
+      {"code", ATTR_CODE},
+#line 132 "htmlattrs.gperf"
+      {"onreset", ATTR_ONRESET},
+#line 84 "htmlattrs.gperf"
       {"loop", ATTR_LOOP},
-      {"title", ATTR_TITLE},
-      {"span", ATTR_SPAN},
+#line 109 "htmlattrs.gperf"
+      {"oncopy", ATTR_ONCOPY},
+#line 131 "htmlattrs.gperf"
       {"onpaste", ATTR_ONPASTE},
-      {"action", ATTR_ACTION},
-      {"id", ATTR_ID},
+#line 46 "htmlattrs.gperf"
       {"cols", ATTR_COLS},
-      {"onselect", ATTR_ONSELECT},
-      {"style", ATTR_STYLE},
+#line 45 "htmlattrs.gperf"
+      {"color", ATTR_COLOR},
+#line 14 "htmlattrs.gperf"
       {"accept", ATTR_ACCEPT},
-      {"code", ATTR_CODE},
-      {"nosave", ATTR_NOSAVE},
+#line 180 "htmlattrs.gperf"
+      {"type", ATTR_TYPE},
+#line 125 "htmlattrs.gperf"
+      {"onload", ATTR_ONLOAD},
+#line 60 "htmlattrs.gperf"
+      {"enctype", ATTR_ENCTYPE},
+#line 44 "htmlattrs.gperf"
+      {"codetype", ATTR_CODETYPE},
+#line 28 "htmlattrs.gperf"
+      {"border", ATTR_BORDER},
+#line 73 "htmlattrs.gperf"
+      {"id", ATTR_ID},
+#line 136 "htmlattrs.gperf"
+      {"onselect", ATTR_ONSELECT},
+#line 53 "htmlattrs.gperf"
+      {"data", ATTR_DATA},
+#line 150 "htmlattrs.gperf"
+      {"prompt", ATTR_PROMPT},
+#line 101 "htmlattrs.gperf"
+      {"onabort", ATTR_ONABORT},
+#line 134 "htmlattrs.gperf"
+      {"onscroll", ATTR_ONSCROLL},
+#line 12 "htmlattrs.gperf"
+      {"abbr", ATTR_ABBR},
+#line 19 "htmlattrs.gperf"
       {"alt", ATTR_ALT},
+#line 32 "htmlattrs.gperf"
+      {"char", ATTR_CHAR},
+#line 164 "htmlattrs.gperf"
+      {"shape", ATTR_SHAPE},
+#line 137 "htmlattrs.gperf"
+      {"onselectstart", ATTR_ONSELECTSTART},
+#line 23 "htmlattrs.gperf"
       {"axis", ATTR_AXIS},
-      {"plain", ATTR_PLAIN},
-      {"vspace", ATTR_VSPACE},
-      {"oninput", ATTR_ONINPUT},
-      {"codetype", ATTR_CODETYPE},
-      {"oncut", ATTR_ONCUT},
-      {"colspan", ATTR_COLSPAN},
+#line 39 "htmlattrs.gperf"
       {"class", ATTR_CLASS},
-      {"z-index", ATTR_Z_INDEX},
-      {"selected", ATTR_SELECTED},
+#line 112 "htmlattrs.gperf"
+      {"ondrag", ATTR_ONDRAG},
+#line 35 "htmlattrs.gperf"
+      {"charset", ATTR_CHARSET},
+#line 43 "htmlattrs.gperf"
+      {"codebase", ATTR_CODEBASE},
+#line 41 "htmlattrs.gperf"
+      {"clear", ATTR_CLEAR},
+#line 29 "htmlattrs.gperf"
+      {"bordercolor", ATTR_BORDERCOLOR},
+#line 48 "htmlattrs.gperf"
+      {"compact", ATTR_COMPACT},
+#line 62 "htmlattrs.gperf"
+      {"for", ATTR_FOR},
+#line 133 "htmlattrs.gperf"
+      {"onresize", ATTR_ONRESIZE},
+#line 117 "htmlattrs.gperf"
+      {"ondragstart", ATTR_ONDRAGSTART},
+#line 174 "htmlattrs.gperf"
+      {"target", ATTR_TARGET},
+#line 152 "htmlattrs.gperf"
+      {"rel", ATTR_REL},
+#line 75 "htmlattrs.gperf"
+      {"ismap", ATTR_ISMAP},
+#line 161 "htmlattrs.gperf"
+      {"scrolldelay", ATTR_SCROLLDELAY},
+#line 49 "htmlattrs.gperf"
+      {"composite", ATTR_COMPOSITE},
+#line 142 "htmlattrs.gperf"
       {"pagey", ATTR_PAGEY},
-      {"data", ATTR_DATA},
-      {"onload", ATTR_ONLOAD},
-      {"pagex", ATTR_PAGEX},
-      {"lang", ATTR_LANG},
-      {"align", ATTR_ALIGN},
-      {"link", ATTR_LINK},
-      {"keytype", ATTR_KEYTYPE},
+#line 40 "htmlattrs.gperf"
       {"classid", ATTR_CLASSID},
-      {"shape", ATTR_SHAPE},
-      {"valign", ATTR_VALIGN},
-      {"vlink", ATTR_VLINK},
-      {"onclick", ATTR_ONCLICK},
-      {"value", ATTR_VALUE},
-      {"hspace", ATTR_HSPACE},
-      {"longdesc", ATTR_LONGDESC},
-      {"left", ATTR_LEFT},
-      {"alink", ATTR_ALINK},
-      {"autosave", ATTR_AUTOSAVE},
+#line 77 "htmlattrs.gperf"
+      {"label", ATTR_LABEL},
+#line 110 "htmlattrs.gperf"
+      {"oncut", ATTR_ONCUT},
+#line 163 "htmlattrs.gperf"
+      {"selected", ATTR_SELECTED},
+#line 61 "htmlattrs.gperf"
       {"face", ATTR_FACE},
-      {"valuetype", ATTR_VALUETYPE},
-      {"accesskey", ATTR_ACCESSKEY},
-      {"onkeyup", ATTR_ONKEYUP},
-      {"onunload", ATTR_ONUNLOAD},
-      {"cellspacing", ATTR_CELLSPACING},
-      {"width", ATTR_WIDTH},
-      {"object", ATTR_OBJECT},
-      {"noshade", ATTR_NOSHADE},
-      {"onkeydown", ATTR_ONKEYDOWN},
-      {"hidden", ATTR_HIDDEN},
-      {"unknown", ATTR_UNKNOWN},
-      {"onchange", ATTR_ONCHANGE},
-      {"http-equiv", ATTR_HTTP_EQUIV},
-      {"onfocus", ATTR_ONFOCUS},
-      {"onreset", ATTR_ONRESET},
-      {"noresize", ATTR_NORESIZE},
-      {"onresize", ATTR_ONRESIZE},
-      {"src", ATTR_SRC},
-      {"rev", ATTR_REV},
-      {"precision", ATTR_PRECISION},
-      {"pluginpage", ATTR_PLUGINPAGE},
-      {"version", ATTR_VERSION},
-      {"rel", ATTR_REL},
-      {"visibility", ATTR_VISIBILITY},
-      {"pluginspage", ATTR_PLUGINSPAGE},
+#line 169 "htmlattrs.gperf"
       {"start", ATTR_START},
-      {"cellpadding", ATTR_CELLPADDING},
-      {"rows", ATTR_ROWS},
-      {"color", ATTR_COLOR},
-      {"height", ATTR_HEIGHT},
-      {"checked", ATTR_CHECKED},
-      {"dir", ATTR_DIR},
-      {"challenge", ATTR_CHALLENGE},
-      {"label", ATTR_LABEL},
-      {"ondrop", ATTR_ONDROP},
-      {"codebase", ATTR_CODEBASE},
-      {"standby", ATTR_STANDBY},
-      {"language", ATTR_LANGUAGE},
-      {"tabindex", ATTR_TABINDEX},
-      {"direction", ATTR_DIRECTION},
-      {"coords", ATTR_COORDS},
-      {"wrap", ATTR_WRAP},
-      {"nowrap", ATTR_NOWRAP},
-      {"clear", ATTR_CLEAR},
-      {"rowspan", ATTR_ROWSPAN},
-      {"onscroll", ATTR_ONSCROLL},
-      {"contenteditable", ATTR_CONTENTEDITABLE},
-      {"target", ATTR_TARGET},
-      {"onselectstart", ATTR_ONSELECTSTART},
-      {"rules", ATTR_RULES},
-      {"results", ATTR_RESULTS},
-      {"disabled", ATTR_DISABLED},
+#line 55 "htmlattrs.gperf"
       {"declare", ATTR_DECLARE},
-      {"for", ATTR_FOR},
+#line 166 "htmlattrs.gperf"
+      {"span", ATTR_SPAN},
+#line 54 "htmlattrs.gperf"
+      {"datetime", ATTR_DATETIME},
+#line 179 "htmlattrs.gperf"
       {"truespeed", ATTR_TRUESPEED},
-      {"onkeypress", ATTR_ONKEYPRESS},
-      {"readonly", ATTR_READONLY},
-      {"ondrag", ATTR_ONDRAG},
-      {"scrolling", ATTR_SCROLLING},
-      {"char", ATTR_CHAR},
-      {"min", ATTR_MIN},
-      {"charset", ATTR_CHARSET},
-      {"onsearch", ATTR_ONSEARCH},
+#line 173 "htmlattrs.gperf"
+      {"tableborder", ATTR_TABLEBORDER},
+#line 89 "htmlattrs.gperf"
+      {"mayscript", ATTR_MAYSCRIPT},
+#line 63 "htmlattrs.gperf"
+      {"frame", ATTR_FRAME},
+#line 149 "htmlattrs.gperf"
       {"profile", ATTR_PROFILE},
-      {"archive", ATTR_ARCHIVE},
-      {"composite", ATTR_COMPOSITE},
+#line 170 "htmlattrs.gperf"
+      {"style", ATTR_STYLE},
+#line 102 "htmlattrs.gperf"
+      {"onbeforecopy", ATTR_ONBEFORECOPY},
+#line 104 "htmlattrs.gperf"
+      {"onbeforepaste", ATTR_ONBEFOREPASTE},
+#line 47 "htmlattrs.gperf"
+      {"colspan", ATTR_COLSPAN},
+#line 56 "htmlattrs.gperf"
       {"defer", ATTR_DEFER},
-      {"name", ATTR_NAME},
-      {"ondblclick", ATTR_ONDBLCLICK},
-      {"ondragend", ATTR_ONDRAGEND},
-      {"ismap", ATTR_ISMAP},
-      {"headers", ATTR_HEADERS},
-      {"compact", ATTR_COMPACT},
+#line 105 "htmlattrs.gperf"
+      {"onblur", ATTR_ONBLUR},
+#line 87 "htmlattrs.gperf"
       {"max", ATTR_MAX},
-      {"scrolldelay", ATTR_SCROLLDELAY},
-      {"onabort", ATTR_ONABORT},
-      {"accept-charset", ATTR_ACCEPT_CHARSET},
-      {"ondragleave", ATTR_ONDRAGLEAVE},
-      {"href", ATTR_HREF},
+#line 175 "htmlattrs.gperf"
+      {"text", ATTR_TEXT},
+#line 37 "htmlattrs.gperf"
+      {"cellborder", ATTR_CELLBORDER},
+#line 16 "htmlattrs.gperf"
+      {"action", ATTR_ACTION},
+#line 57 "htmlattrs.gperf"
+      {"dir", ATTR_DIR},
+#line 80 "htmlattrs.gperf"
+      {"left", ATTR_LEFT},
+#line 90 "htmlattrs.gperf"
       {"media", ATTR_MEDIA},
-      {"nohref", ATTR_NOHREF},
-      {"datetime", ATTR_DATETIME},
+#line 182 "htmlattrs.gperf"
       {"usemap", ATTR_USEMAP},
-      {"pluginurl", ATTR_PLUGINURL},
-      {"placeholder", ATTR_PLACEHOLDER},
-      {"oversrc", ATTR_OVERSRC},
-      {"oncontextmenu", ATTR_ONCONTEXTMENU},
+#line 141 "htmlattrs.gperf"
+      {"pagex", ATTR_PAGEX},
+#line 38 "htmlattrs.gperf"
+      {"cite", ATTR_CITE},
+#line 64 "htmlattrs.gperf"
+      {"frameborder", ATTR_FRAMEBORDER},
+#line 113 "htmlattrs.gperf"
+      {"ondragend", ATTR_ONDRAGEND},
+#line 100 "htmlattrs.gperf"
+      {"object", ATTR_OBJECT},
+#line 120 "htmlattrs.gperf"
+      {"onfocus", ATTR_ONFOCUS},
+#line 96 "htmlattrs.gperf"
+      {"noresize", ATTR_NORESIZE},
+#line 94 "htmlattrs.gperf"
+      {"name", ATTR_NAME},
+#line 176 "htmlattrs.gperf"
+      {"title", ATTR_TITLE},
+#line 114 "htmlattrs.gperf"
+      {"ondragenter", ATTR_ONDRAGENTER},
+#line 83 "htmlattrs.gperf"
+      {"longdesc", ATTR_LONGDESC},
+#line 165 "htmlattrs.gperf"
+      {"size", ATTR_SIZE},
+#line 70 "htmlattrs.gperf"
+      {"hspace", ATTR_HSPACE},
+#line 153 "htmlattrs.gperf"
+      {"results", ATTR_RESULTS},
+#line 135 "htmlattrs.gperf"
+      {"onsearch", ATTR_ONSEARCH},
+#line 148 "htmlattrs.gperf"
+      {"precision", ATTR_PRECISION},
+#line 144 "htmlattrs.gperf"
+      {"plain", ATTR_PLAIN},
+#line 34 "htmlattrs.gperf"
+      {"charoff", ATTR_CHAROFF},
+#line 78 "htmlattrs.gperf"
+      {"lang", ATTR_LANG},
+#line 157 "htmlattrs.gperf"
+      {"rules", ATTR_RULES},
+#line 189 "htmlattrs.gperf"
+      {"vspace", ATTR_VSPACE},
+#line 138 "htmlattrs.gperf"
+      {"onsubmit", ATTR_ONSUBMIT},
+#line 158 "htmlattrs.gperf"
       {"scheme", ATTR_SCHEME},
-      {"onblur", ATTR_ONBLUR},
+#line 26 "htmlattrs.gperf"
       {"bgcolor", ATTR_BGCOLOR},
-      {"multiple", ATTR_MULTIPLE},
-      {"html", ATTR_HTML},
+#line 151 "htmlattrs.gperf"
+      {"readonly", ATTR_READONLY},
+#line 103 "htmlattrs.gperf"
+      {"onbeforecut", ATTR_ONBEFORECUT},
+#line 50 "htmlattrs.gperf"
+      {"content", ATTR_CONTENT},
+#line 59 "htmlattrs.gperf"
+      {"disabled", ATTR_DISABLED},
+#line 162 "htmlattrs.gperf"
+      {"scrolling", ATTR_SCROLLING},
+#line 13 "htmlattrs.gperf"
+      {"accept-charset", ATTR_ACCEPT_CHARSET},
+#line 74 "htmlattrs.gperf"
+      {"incremental", ATTR_INCREMENTAL},
+#line 139 "htmlattrs.gperf"
+      {"onunload", ATTR_ONUNLOAD},
+#line 68 "htmlattrs.gperf"
+      {"href", ATTR_HREF},
+#line 17 "htmlattrs.gperf"
+      {"align", ATTR_ALIGN},
+#line 121 "htmlattrs.gperf"
+      {"oninput", ATTR_ONINPUT},
+#line 154 "htmlattrs.gperf"
+      {"rev", ATTR_REV},
+#line 178 "htmlattrs.gperf"
+      {"topmargin", ATTR_TOPMARGIN},
+#line 116 "htmlattrs.gperf"
+      {"ondragover", ATTR_ONDRAGOVER},
+#line 27 "htmlattrs.gperf"
+      {"bgproperties", ATTR_BGPROPERTIES},
+#line 130 "htmlattrs.gperf"
       {"onmouseup", ATTR_ONMOUSEUP},
+#line 128 "htmlattrs.gperf"
       {"onmouseout", ATTR_ONMOUSEOUT},
+#line 65 "htmlattrs.gperf"
+      {"headers", ATTR_HEADERS},
+#line 33 "htmlattrs.gperf"
+      {"challenge", ATTR_CHALLENGE},
+#line 143 "htmlattrs.gperf"
+      {"placeholder", ATTR_PLACEHOLDER},
+#line 168 "htmlattrs.gperf"
+      {"standby", ATTR_STANDBY},
+#line 155 "htmlattrs.gperf"
+      {"rows", ATTR_ROWS},
+#line 192 "htmlattrs.gperf"
+      {"z-index", ATTR_Z_INDEX},
+#line 21 "htmlattrs.gperf"
       {"autocomplete", ATTR_AUTOCOMPLETE},
+#line 191 "htmlattrs.gperf"
+      {"wrap", ATTR_WRAP},
+#line 123 "htmlattrs.gperf"
+      {"onkeypress", ATTR_ONKEYPRESS},
+#line 91 "htmlattrs.gperf"
       {"method", ATTR_METHOD},
-      {"onmousedown", ATTR_ONMOUSEDOWN},
-      {"onbeforecopy", ATTR_ONBEFORECOPY},
-      {"behavior", ATTR_BEHAVIOR},
-      {"onbeforepaste", ATTR_ONBEFOREPASTE},
+#line 140 "htmlattrs.gperf"
+      {"oversrc", ATTR_OVERSRC},
+#line 115 "htmlattrs.gperf"
+      {"ondragleave", ATTR_ONDRAGLEAVE},
+#line 171 "htmlattrs.gperf"
+      {"summary", ATTR_SUMMARY},
+#line 98 "htmlattrs.gperf"
+      {"noshade", ATTR_NOSHADE},
+#line 172 "htmlattrs.gperf"
+      {"tabindex", ATTR_TABINDEX},
+#line 15 "htmlattrs.gperf"
+      {"accesskey", ATTR_ACCESSKEY},
+#line 93 "htmlattrs.gperf"
+      {"multiple", ATTR_MULTIPLE},
+#line 97 "htmlattrs.gperf"
+      {"nosave", ATTR_NOSAVE},
+#line 160 "htmlattrs.gperf"
+      {"scrollamount", ATTR_SCROLLAMOUNT},
+#line 92 "htmlattrs.gperf"
+      {"min", ATTR_MIN},
+#line 36 "htmlattrs.gperf"
+      {"checked", ATTR_CHECKED},
+#line 107 "htmlattrs.gperf"
+      {"onclick", ATTR_ONCLICK},
+#line 58 "htmlattrs.gperf"
+      {"direction", ATTR_DIRECTION},
+#line 30 "htmlattrs.gperf"
+      {"cellpadding", ATTR_CELLPADDING},
+#line 71 "htmlattrs.gperf"
+      {"html", ATTR_HTML},
+#line 31 "htmlattrs.gperf"
+      {"cellspacing", ATTR_CELLSPACING},
+#line 184 "htmlattrs.gperf"
+      {"value", ATTR_VALUE},
+#line 129 "htmlattrs.gperf"
+      {"onmouseover", ATTR_ONMOUSEOVER},
+#line 51 "htmlattrs.gperf"
+      {"contenteditable", ATTR_CONTENTEDITABLE},
+#line 106 "htmlattrs.gperf"
+      {"onchange", ATTR_ONCHANGE},
+#line 95 "htmlattrs.gperf"
+      {"nohref", ATTR_NOHREF},
+#line 76 "htmlattrs.gperf"
+      {"keytype", ATTR_KEYTYPE},
+#line 185 "htmlattrs.gperf"
+      {"valuetype", ATTR_VALUETYPE},
+#line 111 "htmlattrs.gperf"
+      {"ondblclick", ATTR_ONDBLCLICK},
+#line 124 "htmlattrs.gperf"
+      {"onkeyup", ATTR_ONKEYUP},
+#line 79 "htmlattrs.gperf"
+      {"language", ATTR_LANGUAGE},
+#line 127 "htmlattrs.gperf"
+      {"onmousemove", ATTR_ONMOUSEMOVE},
+#line 99 "htmlattrs.gperf"
+      {"nowrap", ATTR_NOWRAP},
+#line 156 "htmlattrs.gperf"
+      {"rowspan", ATTR_ROWSPAN},
+#line 22 "htmlattrs.gperf"
+      {"autosave", ATTR_AUTOSAVE},
+#line 186 "htmlattrs.gperf"
+      {"version", ATTR_VERSION},
+#line 145 "htmlattrs.gperf"
+      {"pluginpage", ATTR_PLUGINPAGE},
+#line 146 "htmlattrs.gperf"
+      {"pluginspage", ATTR_PLUGINSPAGE},
+#line 20 "htmlattrs.gperf"
+      {"archive", ATTR_ARCHIVE},
+#line 81 "htmlattrs.gperf"
+      {"leftmargin", ATTR_LEFTMARGIN},
+#line 183 "htmlattrs.gperf"
+      {"valign", ATTR_VALIGN},
+#line 69 "htmlattrs.gperf"
       {"hreflang", ATTR_HREFLANG},
-      {"ondragenter", ATTR_ONDRAGENTER},
-      {"prompt", ATTR_PROMPT},
-      {"abbr", ATTR_ABBR},
-      {"ondragover", ATTR_ONDRAGOVER},
-      {"onbeforecut", ATTR_ONBEFORECUT},
-      {"charoff", ATTR_CHAROFF},
-      {"ondragstart", ATTR_ONDRAGSTART},
-      {"onsubmit", ATTR_ONSUBMIT},
+#line 67 "htmlattrs.gperf"
+      {"hidden", ATTR_HIDDEN},
+#line 18 "htmlattrs.gperf"
+      {"alink", ATTR_ALINK},
+#line 147 "htmlattrs.gperf"
+      {"pluginurl", ATTR_PLUGINURL},
+#line 108 "htmlattrs.gperf"
+      {"oncontextmenu", ATTR_ONCONTEXTMENU},
+#line 66 "htmlattrs.gperf"
+      {"height", ATTR_HEIGHT},
+#line 25 "htmlattrs.gperf"
+      {"behavior", ATTR_BEHAVIOR},
+#line 88 "htmlattrs.gperf"
       {"maxlength", ATTR_MAXLENGTH},
-      {"mayscript", ATTR_MAYSCRIPT},
-      {"border", ATTR_BORDER},
-      {"onerror", ATTR_ONERROR},
-      {"incremental", ATTR_INCREMENTAL},
-      {"topmargin", ATTR_TOPMARGIN},
-      {"bgproperties", ATTR_BGPROPERTIES},
-      {"onmouseover", ATTR_ONMOUSEOVER},
+#line 187 "htmlattrs.gperf"
+      {"visibility", ATTR_VISIBILITY},
+#line 126 "htmlattrs.gperf"
+      {"onmousedown", ATTR_ONMOUSEDOWN},
+#line 82 "htmlattrs.gperf"
+      {"link", ATTR_LINK},
+#line 24 "htmlattrs.gperf"
       {"background", ATTR_BACKGROUND},
-      {"cellborder", ATTR_CELLBORDER},
-      {"frame", ATTR_FRAME},
-      {"scrollamount", ATTR_SCROLLAMOUNT},
-      {"leftmargin", ATTR_LEFTMARGIN},
-      {"onmousemove", ATTR_ONMOUSEMOVE},
-      {"marginwidth", ATTR_MARGINWIDTH},
-      {"tableborder", ATTR_TABLEBORDER},
-      {"bordercolor", ATTR_BORDERCOLOR},
+#line 190 "htmlattrs.gperf"
+      {"width", ATTR_WIDTH},
+#line 72 "htmlattrs.gperf"
+      {"http-equiv", ATTR_HTTP_EQUIV},
+#line 188 "htmlattrs.gperf"
+      {"vlink", ATTR_VLINK},
+#line 122 "htmlattrs.gperf"
+      {"onkeydown", ATTR_ONKEYDOWN},
+#line 85 "htmlattrs.gperf"
       {"marginheight", ATTR_MARGINHEIGHT},
-      {"summary", ATTR_SUMMARY},
-      {"frameborder", ATTR_FRAMEBORDER}
+#line 86 "htmlattrs.gperf"
+      {"marginwidth", ATTR_MARGINWIDTH},
+#line 181 "htmlattrs.gperf"
+      {"unknown", ATTR_UNKNOWN}
     };
 
   static const short lookup[] =
     {
-        -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
-        -1,    1,   -1,   -1,   -1,   -1,    2,   -1,
-        -1,    3,   -1,    4,    5,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,    6,   -1,    7,
-         8,   -1,    9,   10,   -1,   -1,   -1,   11,
-        -1,   -1,   12,   -1,   -1,   -1,   13,   14,
-        -1,   15,   -1,   -1,   -1,   16,   -1,   17,
-        18,   -1,   -1,   19,   -1,   20,   -1,   21,
-        22,   23,   -1,   -1,   -1,   -1,   -1,   24,
-        25,   -1,   -1,   -1,   -1,   -1,   26,   -1,
-        27,   -1,   28,   -1,   -1,   29,   -1,   30,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   31,   -1,   -1,   -1,   -1,   -1,
-        -1,   32,   -1,   -1,   -1,   33,   -1,   34,
-        -1,   -1,   -1,   35,   -1,   -1,   -1,   36,
-        37,   -1,   -1,   -1,   38,   -1,   -1,   39,
-        -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   41,   42,   -1,   -1,
-        -1,   43,   -1,   44,   -1,   -1,   45,   46,
-        -1,   47,   48,   49,   -1,   -1,   50,   -1,
-        -1,   -1,   -1,   -1,   51,   -1,   -1,   -1,
-        -1,   52,   -1,   -1,   -1,   -1,   53,   -1,
-        -1,   54,   55,   -1,   -1,   56,   -1,   -1,
-        -1,   57,   58,   59,   -1,   -1,   -1,   -1,
-        -1,   -1,   60,   -1,   61,   62,   -1,   -1,
-        -1,   -1,   -1,   63,   -1,   64,   -1,   65,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   66, -411, -114,   -2,   -1,
-        -1,   69,   -1,   -1,   -1,   -1,   70,   71,
-        -1,   -1,   -1,   -1,   -1,   72,   -1,   73,
-        74,   -1,   75,   76,   -1,   -1,   -1,   77,
-        78,   -1,   -1,   79,   80,   81,   82,   83,
-        84,   85,   86,   -1,   87,   -1,   -1,   -1,
-        88,   89,   -1,   -1,   -1,   -1,   90,   91,
-        -1,   92,   -1,   -1,   93,   -1,   94,   -1,
-        -1,   -1,   95,   -1,   96,   -1,   -1,   -1,
-        -1,   -1,   97,   -1,   98,   -1,   -1,   -1,
-        -1,   -1,   99,   -1,  100,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       101,   -1,   -1,   -1,   -1,   -1,   -1,  102,
-        -1,   -1,   -1,   -1,   -1,  103,   -1,   -1,
-        -1,  104,  105,  106,  107,   -1,   -1,  108,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  109,
-        -1,   -1,  110,   -1,   -1,   -1,   -1,  111,
-        -1,   -1,   -1,  112,   -1,   -1,   -1,  113,
-       114,   -1,   -1,   -1,  115,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  116,   -1,
-       117,  118,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  119,  120,   -1,   -1,   -1,  121,
-       122,   -1,  123,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  124,  125,   -1,   -1,  126,  127,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  128,   -1,  129,   -1,   -1,  130,
-       131,  132,   -1,  133,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  134,   -1,   -1,  135,   -1,  136,
-       137,  138,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  139,   -1,   -1,   -1,   -1,  140,  141,
-        -1,   -1,   -1,   -1,   -1,  142,  143,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       144,  145,   -1,  146,   -1,   -1,   -1,  147,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  148,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  149,  150,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  151,   -1,   -1,   -1,   -1,  152,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  153,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  154,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  155,  156,  157,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  158,   -1,   -1,   -1,  159,   -1,
-       160,  161,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  162,   -1,   -1,   -1,
-        -1,   -1,   -1,  163,  164,   -1,   -1,   -1,
-       165,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  166,   -1,   -1,
-       167,   -1,   -1,   -1,  168,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  169,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  170,   -1,   -1,
-        -1,   -1,  171,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  172,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  173,  174,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  175,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  176,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  177,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  178,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  179,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  180
+       -1,  -1,  -1,   0,  -1,  -1,   1,  -1,   2,  -1,
+        3,   4,   5,  -1,   6,  -1,  -1,   7,  -1,   8,
+       -1,   9,  10,  -1,  11,  12,  13,  -1,  -1,  14,
+       -1,  15,  16,  17,  -1,  -1,  18,  19,  20,  21,
+       -1,  22,  23,  24,  25,  -1,  -1,  -1,  26,  27,
+       28,  -1,  -1,  29,  30,  31,  32,  33,  34,  -1,
+       35,  36,  37,  38,  -1,  -1,  -1,  -1,  39,  -1,
+       -1,  40,  -1,  -1,  -1,  -1,  41,  -1,  42,  -1,
+       43,  44,  -1,  -1,  45,  46,  -1,  47,  -1,  -1,
+       48,  -1,  -1,  -1,  -1,  49,  -1,  -1,  50,  51,
+       52,  -1,  53,  -1,  54,  -1,  -1,  -1,  55,  56,
+       -1,  57,  -1,  -1,  58,  59,  -1,  60,  -1,  -1,
+       61,  -1,  62,  63,  -1,  -1,  -1,  64,  -1,  -1,
+       65,  66,  -1,  67,  68,  69,  70,  -1,  71,  72,
+       73,  74,  -1,  -1,  -1,  75,  -1,  -1,  -1,  76,
+       -1,  77,  -1,  -1,  78,  -1,  79,  80,  81,  82,
+       83,  84,  -1,  85,  86,  -1,  87,  88,  89,  90,
+       91,  -1,  92,  -1,  93,  94,  95,  -1,  -1,  -1,
+       -1,  -1,  -1,  96,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  97,  98,  99,  -1,  -1, 100, 101, 102, 103,
+       -1,  -1,  -1,  -1, 104,  -1, 105,  -1, 106, 107,
+      108,  -1, 109, 110, 111, 112,  -1, 113,  -1, 114,
+      115,  -1, 116,  -1, 117,  -1, 118, 119,  -1, 120,
+       -1,  -1, 121,  -1,  -1,  -1,  -1, 122,  -1, 123,
+      124, 125, 126,  -1,  -1,  -1, 127, 128,  -1,  -1,
+       -1,  -1, 129, 130, 131,  -1,  -1,  -1, 132,  -1,
+       -1, 133, 134, 135,  -1,  -1,  -1, 136,  -1,  -1,
+       -1,  -1, 137,  -1, 138,  -1, 139,  -1,  -1, 140,
+       -1, 141,  -1,  -1,  -1, 142,  -1,  -1,  -1,  -1,
+       -1, 143,  -1,  -1,  -1, 144,  -1,  -1, 145,  -1,
+       -1, 146, 147,  -1, 148,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 149,  -1, 150, 151,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 152,  -1,  -1,  -1,
+       -1, 153, 154, 155,  -1,  -1,  -1, 156,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 157, 158, 159,  -1,  -1,
+      160,  -1,  -1,  -1,  -1,  -1, 161,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 162,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 163,  -1,  -1,  -1,
+      164,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 165,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 166,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 167,  -1,  -1,  -1,
+       -1,  -1,  -1, 168,  -1,  -1,  -1,  -1,  -1, 169,
+       -1,  -1,  -1,  -1,  -1, 170,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 171,  -1,  -1, 172,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      173,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 174,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 175,  -1,  -1,  -1,  -1,
+      176,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 177,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 178,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 179,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 180
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -481,25 +604,12 @@ findAttr (register const char *str, register unsigned int len)
               if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
                 return &wordlist_attr[index];
             }
-          else if (index < -TOTAL_KEYWORDS)
-            {
-              register int offset = - 1 - TOTAL_KEYWORDS - index;
-              register const struct attrs *wordptr = &wordlist_attr[TOTAL_KEYWORDS + lookup[offset]];
-              register const struct attrs *wordendptr = wordptr + -lookup[offset + 1];
-
-              while (wordptr < wordendptr)
-                {
-                  register const char *s = wordptr->name;
-
-                  if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
-                    return wordptr;
-                  wordptr++;
-                }
-            }
         }
     }
   return 0;
 }
+#line 193 "htmlattrs.gperf"
+
 
 
 static const char * const attrList[] = {
index 175e79881ac5fc178b4c100cabc15f17332a5ba3..e7b6ff1bf7322789cd5c5944c7869546ff3dd9d0 100644 (file)
@@ -1,13 +1,44 @@
-/* ANSI-C code produced by gperf version 2.7.2 */
+/* ANSI-C code produced by gperf version 3.0.1 */
 /* Command-line: gperf -a -L ANSI-C -D -E -C -l -o -t -k '*' -NfindTag -Hhash_tag -Wwordlist_tag htmltags.gperf  */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "htmltags.gperf"
+
 /* This file is automatically generated from htmltags.in by maketags, do not edit */
 /* Copyright 1999 Lars Knoll */
 #include "htmltags.h"
+#line 6 "htmltags.gperf"
 struct tags {
     const char *name;
     int id;
 };
-/* maximum key range = 305, duplicates = 1 */
+/* maximum key range = 365, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -21,56 +52,64 @@ hash_tag (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306,  30,
-       35,  40,  15,  25,  10, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306,   0,   5,  30,
-       35,   0, 105,   5,  47,  10,   0,  25,  45,  30,
-       15,   0, 100,  25,   5,  30,   0,  87,  90,   0,
-       20, 115, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
-      306, 306, 306, 306, 306, 306
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+       60,  55,  50,  45,  40,   5, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366,  15,  10,  35,
+       10,   5,  10,  10,  50,  40, 115,  30,   5,  15,
+       30,  55,   5,  85,  20,   0,   0,  65,  55,  35,
+       95,  70, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+      366, 366, 366, 366, 366, 366, 366
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
-      case 10:
         hval += asso_values[(unsigned char)str[9]];
+      /*FALLTHROUGH*/
       case 9:
         hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
       case 8:
         hval += asso_values[(unsigned char)str[7]];
+      /*FALLTHROUGH*/
       case 7:
         hval += asso_values[(unsigned char)str[6]];
+      /*FALLTHROUGH*/
       case 6:
         hval += asso_values[(unsigned char)str[5]];
+      /*FALLTHROUGH*/
       case 5:
         hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
       case 4:
         hval += asso_values[(unsigned char)str[3]];
+      /*FALLTHROUGH*/
       case 3:
         hval += asso_values[(unsigned char)str[2]];
+      /*FALLTHROUGH*/
       case 2:
-        hval += asso_values[(unsigned char)str[1]];
+        hval += asso_values[(unsigned char)str[1]+1];
+      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -90,170 +129,273 @@ findTag (register const char *str, register unsigned int len)
       MIN_WORD_LENGTH = 1,
       MAX_WORD_LENGTH = 10,
       MIN_HASH_VALUE = 1,
-      MAX_HASH_VALUE = 305
+      MAX_HASH_VALUE = 365
     };
 
   static const unsigned char lengthtable[] =
     {
-       1,  2,  1,  2,  4,  1,  2,  3,  4,  3,  1,  4,  1,  2,
-       8,  4,  2,  2,  4,  6,  3,  4,  2,  3,  2,  5,  3,  2,
-       5,  6,  2,  3,  2,  5,  6,  2,  3,  4,  2,  2,  5,  6,
-       3,  2,  2,  3,  2,  4,  5,  1,  2,  7,  3,  4,  5,  1,
-       6,  6,  3,  5,  6,  6,  7,  4,  3,  4,  7,  6,  3,  2,
-       4,  3,  5,  7,  4,  5,  4,  3,  7,  5,  6,  3,  4,  5,
-       7,  8,  4,  6,  5,  6,  8,  6,  7,  8,  5,  8,  9,  7,
-       5,  3, 10,  8,  6,  8,  8
+       1,  2,  1,  2,  1,  2,  3,  1,  2,  2,  3,  4,  3,  4,
+       5,  2,  4,  5,  1,  2,  4,  3,  4,  5,  2,  3,  4,  2,
+       8,  4,  5,  6,  7,  3,  5,  1,  2,  3,  4,  5,  2,  3,
+       5,  6,  2,  3,  6,  2,  3,  4,  1,  7,  3,  4,  2,  3,
+       2,  3,  4,  2,  5,  6,  2,  8,  6,  2,  5,  6,  2,  4,
+       5,  8,  5,  3,  4,  3,  4,  8,  3,  5,  6,  6,  7,  8,
+       4,  6,  6,  8,  5,  5,  7,  3,  4,  6,  7,  8,  7,  9,
+       7,  7,  6,  6,  6,  8, 10
     };
   static const struct tags wordlist_tag[] =
     {
-      {"a", ID_A},
-      {"tt", ID_TT},
-      {"b", ID_B},
-      {"tr", ID_TR},
-      {"area", ID_AREA},
-      {"i", ID_I},
-      {"br", ID_BR},
-      {"wbr", ID_WBR},
-      {"abbr", ID_ABBR},
-      {"big", ID_BIG},
-      {"q", ID_Q},
-      {"nobr", ID_NOBR},
+#line 87 "htmltags.gperf"
       {"s", ID_S},
-      {"em", ID_EM},
-      {"textarea", ID_TEXTAREA},
-      {"meta", ID_META},
-      {"dt", ID_DT},
+#line 106 "htmltags.gperf"
+      {"tr", ID_TR},
+#line 82 "htmltags.gperf"
+      {"p", ID_P},
+#line 100 "htmltags.gperf"
       {"td", ID_TD},
+#line 17 "htmltags.gperf"
+      {"b", ID_B},
+#line 24 "htmltags.gperf"
+      {"br", ID_BR},
+#line 85 "htmltags.gperf"
+      {"pre", ID_PRE},
+#line 11 "htmltags.gperf"
+      {"a", ID_A},
+#line 33 "htmltags.gperf"
+      {"dd", ID_DD},
+#line 38 "htmltags.gperf"
+      {"dl", ID_DL},
+#line 34 "htmltags.gperf"
+      {"del", ID_DEL},
+#line 18 "htmltags.gperf"
       {"base", ID_BASE},
-      {"object", ID_OBJECT},
-      {"bdo", ID_BDO},
-      {"cite", ID_CITE},
-      {"ol", ID_OL},
-      {"img", ID_IMG},
+#line 69 "htmltags.gperf"
+      {"map", ID_MAP},
+#line 88 "htmltags.gperf"
+      {"samp", ID_SAMP},
+#line 98 "htmltags.gperf"
+      {"table", ID_TABLE},
+#line 40 "htmltags.gperf"
+      {"em", ID_EM},
+#line 16 "htmltags.gperf"
+      {"area", ID_AREA},
+#line 64 "htmltags.gperf"
+      {"label", ID_LABEL},
+#line 56 "htmltags.gperf"
+      {"i", ID_I},
+#line 103 "htmltags.gperf"
       {"th", ID_TH},
-      {"image", ID_IMG},
-      {"dir", ID_DIR},
+#line 72 "htmltags.gperf"
+      {"meta", ID_META},
+#line 31 "htmltags.gperf"
+      {"col", ID_COL},
+#line 43 "htmltags.gperf"
+      {"font", ID_FONT},
+#line 45 "htmltags.gperf"
+      {"frame", ID_FRAME},
+#line 54 "htmltags.gperf"
       {"hr", ID_HR},
-      {"table", ID_TABLE},
-      {"center", ID_CENTER},
-      {"li", ID_LI},
-      {"ins", ID_INS},
+#line 35 "htmltags.gperf"
+      {"dfn", ID_DFN},
+#line 44 "htmltags.gperf"
+      {"form", ID_FORM},
+#line 52 "htmltags.gperf"
       {"h6", ID_H6},
-      {"title", ID_TITLE},
-      {"strong", ID_STRONG},
-      {"h4", ID_H4},
-      {"kbd", ID_KBD},
+#line 46 "htmltags.gperf"
+      {"frameset", ID_FRAMESET},
+#line 30 "htmltags.gperf"
       {"code", ID_CODE},
-      {"dd", ID_DD},
-      {"h5", ID_H5},
+#line 91 "htmltags.gperf"
+      {"small", ID_SMALL},
+#line 90 "htmltags.gperf"
+      {"select", ID_SELECT},
+#line 14 "htmltags.gperf"
+      {"address", ID_ADDRESS},
+#line 97 "htmltags.gperf"
+      {"sup", ID_SUP},
+#line 41 "htmltags.gperf"
       {"embed", ID_EMBED},
-      {"strike", ID_STRIKE},
-      {"col", ID_COL},
-      {"h1", ID_H1},
-      {"dl", ID_DL},
-      {"del", ID_DEL},
-      {"h2", ID_H2},
-      {"head", ID_HEAD},
-      {"thead", ID_THEAD},
+#line 108 "htmltags.gperf"
       {"u", ID_U},
-      {"h3", ID_H3},
-      {"noembed", ID_NOEMBED},
-      {"var", ID_VAR},
-      {"link", ID_LINK},
-      {"label", ID_LABEL},
-      {"p", ID_P},
-      {"anchor", ID_A},
-      {"legend", ID_LEGEND},
-      {"pre", ID_PRE},
-      {"tfoot", ID_TFOOT},
-      {"select", ID_SELECT},
-      {"button", ID_BUTTON},
-      {"listing", ID_PRE},
-      {"font", ID_FONT},
+#line 107 "htmltags.gperf"
+      {"tt", ID_TT},
+#line 96 "htmltags.gperf"
       {"sub", ID_SUB},
-      {"html", ID_HTML},
-      {"isindex", ID_ISINDEX},
-      {"option", ID_OPTION},
-      {"map", ID_MAP},
-      {"ul", ID_UL},
-      {"menu", ID_MENU},
-      {"div", ID_DIV},
+#line 73 "htmltags.gperf"
+      {"nobr", ID_NOBR},
+#line 83 "htmltags.gperf"
       {"param", ID_PARAM},
-      {"address", ID_ADDRESS},
-      {"form", ID_FORM},
-      {"frame", ID_FRAME},
-      {"span", ID_SPAN},
-      {"xmp", ID_XMP},
-      {"marquee", ID_MARQUEE},
-      {"small", ID_SMALL},
-      {"iframe", ID_IFRAME},
-      {"dfn", ID_DFN},
+#line 79 "htmltags.gperf"
+      {"ol", ID_OL},
+#line 20 "htmltags.gperf"
+      {"bdo", ID_BDO},
+#line 104 "htmltags.gperf"
+      {"thead", ID_THEAD},
+#line 66 "htmltags.gperf"
+      {"legend", ID_LEGEND},
+#line 39 "htmltags.gperf"
+      {"dt", ID_DT},
+#line 62 "htmltags.gperf"
+      {"kbd", ID_KBD},
+#line 89 "htmltags.gperf"
+      {"script", ID_SCRIPT},
+#line 109 "htmltags.gperf"
+      {"ul", ID_UL},
+#line 58 "htmltags.gperf"
+      {"img", ID_IMG},
+#line 12 "htmltags.gperf"
+      {"abbr", ID_ABBR},
+#line 86 "htmltags.gperf"
+      {"q", ID_Q},
+#line 74 "htmltags.gperf"
+      {"noembed", ID_NOEMBED},
+#line 110 "htmltags.gperf"
+      {"var", ID_VAR},
+#line 53 "htmltags.gperf"
+      {"head", ID_HEAD},
+#line 51 "htmltags.gperf"
+      {"h5", ID_H5},
+#line 111 "htmltags.gperf"
+      {"wbr", ID_WBR},
+#line 50 "htmltags.gperf"
+      {"h4", ID_H4},
+#line 60 "htmltags.gperf"
+      {"ins", ID_INS},
+#line 23 "htmltags.gperf"
       {"body", ID_BODY},
-      {"tbody", ID_TBODY},
-      {"caption", ID_CAPTION},
-      {"basefont", ID_BASEFONT},
-      {"samp", ID_SAMP},
-      {"keygen", ID_KEYGEN},
+#line 49 "htmltags.gperf"
+      {"h3", ID_H3},
+#line 114 "htmltags.gperf"
+      {"image", ID_IMG},
+#line 28 "htmltags.gperf"
+      {"center", ID_CENTER},
+#line 48 "htmltags.gperf"
+      {"h2", ID_H2},
+#line 75 "htmltags.gperf"
+      {"noframes", ID_NOFRAMES},
+#line 57 "htmltags.gperf"
+      {"iframe", ID_IFRAME},
+#line 47 "htmltags.gperf"
+      {"h1", ID_H1},
+#line 65 "htmltags.gperf"
       {"layer", ID_LAYER},
+#line 15 "htmltags.gperf"
+      {"applet", ID_APPLET},
+#line 67 "htmltags.gperf"
+      {"li", ID_LI},
+#line 71 "htmltags.gperf"
+      {"menu", ID_MENU},
+#line 102 "htmltags.gperf"
+      {"tfoot", ID_TFOOT},
+#line 19 "htmltags.gperf"
+      {"basefont", ID_BASEFONT},
+#line 105 "htmltags.gperf"
+      {"title", ID_TITLE},
+#line 112 "htmltags.gperf"
+      {"xmp", ID_XMP},
+#line 92 "htmltags.gperf"
+      {"span", ID_SPAN},
+#line 21 "htmltags.gperf"
+      {"big", ID_BIG},
+#line 55 "htmltags.gperf"
+      {"html", ID_HTML},
+#line 76 "htmltags.gperf"
+      {"noscript", ID_NOSCRIPT},
+#line 36 "htmltags.gperf"
+      {"dir", ID_DIR},
+#line 95 "htmltags.gperf"
+      {"style", ID_STYLE},
+#line 26 "htmltags.gperf"
       {"canvas", ID_CANVAS},
-      {"frameset", ID_FRAMESET},
-      {"script", ID_SCRIPT},
+#line 25 "htmltags.gperf"
+      {"button", ID_BUTTON},
+#line 77 "htmltags.gperf"
       {"nolayer", ID_NOLAYER},
-      {"noframes", ID_NOFRAMES},
-      {"style", ID_STYLE},
-      {"noscript", ID_NOSCRIPT},
-      {"plaintext", ID_PLAINTEXT},
-      {"acronym", ID_ACRONYM},
-      {"input", ID_INPUT},
-      {"sup", ID_SUP},
-      {"blockquote", ID_BLOCKQUOTE},
+#line 42 "htmltags.gperf"
       {"fieldset", ID_FIELDSET},
-      {"applet", ID_APPLET},
+#line 29 "htmltags.gperf"
+      {"cite", ID_CITE},
+#line 63 "htmltags.gperf"
+      {"keygen", ID_KEYGEN},
+#line 93 "htmltags.gperf"
+      {"strike", ID_STRIKE},
+#line 101 "htmltags.gperf"
+      {"textarea", ID_TEXTAREA},
+#line 59 "htmltags.gperf"
+      {"input", ID_INPUT},
+#line 99 "htmltags.gperf"
+      {"tbody", ID_TBODY},
+#line 27 "htmltags.gperf"
+      {"caption", ID_CAPTION},
+#line 37 "htmltags.gperf"
+      {"div", ID_DIV},
+#line 68 "htmltags.gperf"
+      {"link", ID_LINK},
+#line 94 "htmltags.gperf"
+      {"strong", ID_STRONG},
+#line 115 "htmltags.gperf"
+      {"listing", ID_PRE},
+#line 32 "htmltags.gperf"
       {"colgroup", ID_COLGROUP},
-      {"optgroup", ID_OPTGROUP}
+#line 70 "htmltags.gperf"
+      {"marquee", ID_MARQUEE},
+#line 84 "htmltags.gperf"
+      {"plaintext", ID_PLAINTEXT},
+#line 13 "htmltags.gperf"
+      {"acronym", ID_ACRONYM},
+#line 61 "htmltags.gperf"
+      {"isindex", ID_ISINDEX},
+#line 113 "htmltags.gperf"
+      {"anchor", ID_A},
+#line 78 "htmltags.gperf"
+      {"object", ID_OBJECT},
+#line 81 "htmltags.gperf"
+      {"option", ID_OPTION},
+#line 80 "htmltags.gperf"
+      {"optgroup", ID_OPTGROUP},
+#line 22 "htmltags.gperf"
+      {"blockquote", ID_BLOCKQUOTE}
     };
 
-  static const short lookup[] =
+  static const signed char lookup[] =
     {
-        -1,    0,    1,   -1,   -1,   -1,    2,    3,
-        -1,    4,   -1,    5,    6,    7,   -1,   -1,
-        -1,   -1,   -1,    8,   -1,   -1,   -1,    9,
-        -1,   -1,   10,   -1,   -1,   11,   -1,   12,
-        13,   14,   15,   -1,   -1, -151,   -1,   18,
-        -1,   19,   -1,   20,   21,  -89,   -2,   22,
-        23,   24,   25,   -1,   -1,   26,   27,   28,
-        29,   30,   31,   32,   33,   34,   -1,   -1,
-        35,   -1,   -1,   -1,   36,   37,   -1,   -1,
-        38,   -1,   39,   40,   41,   -1,   42,   43,
-        -1,   -1,   44,   45,   46,   -1,   47,   48,
-        49,   50,   -1,   -1,   51,   -1,   -1,   -1,
-        -1,   -1,   52,   53,   54,   55,   -1,   56,
-        -1,   -1,   57,   -1,   58,   -1,   59,   60,
-        -1,   61,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   62,   -1,   63,   64,   65,   66,
-        -1,   -1,   -1,   67,   -1,   68,   69,   -1,
-        70,   -1,   71,   -1,   72,   -1,   73,   -1,
-        74,   75,   -1,   -1,   -1,   76,   -1,   -1,
-        -1,   77,   78,   79,   80,   -1,   81,   82,
-        83,   -1,   84,   85,   86,   -1,   87,   -1,
-        -1,   -1,   88,   89,   -1,   -1,   -1,   -1,
-        -1,   -1,   90,   -1,   -1,   91,   -1,   -1,
-        -1,   -1,   -1,   92,   -1,   -1,   -1,   -1,
-        -1,   93,   -1,   94,   -1,   -1,   95,   96,
-        -1,   -1,   97,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   98,   -1,   -1,   99,   -1,   -1,   -1,
-        -1,   -1,   -1,  100,   -1,   -1,   -1,   -1,
-        -1,  101,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  102,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       103,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  104
+       -1,   0,   1,  -1,  -1,  -1,   2,   3,  -1,  -1,
+       -1,   4,   5,   6,  -1,  -1,   7,   8,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,   9,  10,  11,
+       -1,  -1,  -1,  12,  13,  14,  -1,  15,  -1,  16,
+       17,  18,  19,  -1,  20,  -1,  -1,  -1,  21,  22,
+       23,  -1,  24,  25,  26,  -1,  -1,  27,  28,  29,
+       30,  31,  32,  33,  -1,  34,  35,  36,  37,  38,
+       39,  -1,  40,  41,  -1,  42,  43,  44,  45,  -1,
+       -1,  46,  47,  48,  49,  -1,  50,  51,  52,  53,
+       -1,  -1,  54,  55,  -1,  -1,  -1,  56,  57,  58,
+       -1,  -1,  59,  -1,  -1,  60,  61,  62,  63,  -1,
+       -1,  64,  65,  -1,  -1,  66,  -1,  -1,  -1,  -1,
+       -1,  67,  68,  -1,  69,  70,  -1,  -1,  71,  -1,
+       72,  -1,  -1,  73,  74,  -1,  -1,  -1,  75,  76,
+       -1,  -1,  -1,  77,  -1,  -1,  -1,  -1,  78,  -1,
+       79,  80,  -1,  -1,  -1,  -1,  81,  82,  83,  84,
+       -1,  85,  -1,  -1,  -1,  -1,  86,  -1,  87,  -1,
+       88,  -1,  -1,  -1,  -1,  89,  -1,  -1,  -1,  -1,
+       -1,  -1,  90,  91,  92,  -1,  93,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  94,  95,  -1,
+       -1,  -1,  96,  -1,  97,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  98,  -1,  -1,  -1,  -1,  99,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 100,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 101,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 102,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1, 103,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 104
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -274,30 +416,12 @@ findTag (register const char *str, register unsigned int len)
                     return &wordlist_tag[index];
                 }
             }
-          else if (index < -TOTAL_KEYWORDS)
-            {
-              register int offset = - 1 - TOTAL_KEYWORDS - index;
-              register const unsigned char *lengthptr = &lengthtable[TOTAL_KEYWORDS + lookup[offset]];
-              register const struct tags *wordptr = &wordlist_tag[TOTAL_KEYWORDS + lookup[offset]];
-              register const struct tags *wordendptr = wordptr + -lookup[offset + 1];
-
-              while (wordptr < wordendptr)
-                {
-                  if (len == *lengthptr)
-                    {
-                      register const char *s = wordptr->name;
-
-                      if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
-                        return wordptr;
-                    }
-                  lengthptr++;
-                  wordptr++;
-                }
-            }
         }
     }
   return 0;
 }
+#line 116 "htmltags.gperf"
+
 
 
 static const char * const tagList[] = {
index ff1d2dbc4cb809d7e1a60aa59b549483d0e68e14..2168446d82b09ef8743647cd3ece1875bb13c8d4 100644 (file)
@@ -4,7 +4,7 @@
     Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
     Copyright (C) 2001 Dirk Mueller (mueller@kde.org)
     Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
-    Copyright (C) 2004 Apple Computer, Inc.
+    Copyright (C) 2003 Apple Computer, Inc.
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
@@ -89,8 +89,7 @@ CachedObject::~CachedObject()
     Cache::removeFromLRUList(this);
     m_deleted = true;
 #if APPLE_CHANGES
-    setResponse(0);
-    setAllData(0);
+    KWQReleaseResponse(m_response);
 #endif
 }
 
@@ -135,6 +134,17 @@ bool CachedObject::isExpired() const
     return (difftime(now, m_expireDate) >= 0);
 }
 
+#if APPLE_CHANGES
+
+void CachedObject::setResponse(void *response)
+{
+    KWQRetainResponse(response);
+    KWQReleaseResponse(m_response);
+    m_response = response;
+}
+
+#endif
+
 void CachedObject::setRequest(Request *_request)
 {
     if ( _request && !m_request )
@@ -242,8 +252,8 @@ void CachedCSSStyleSheet::checkNotify()
 
     CachedObjectClientWalker w(m_clients);
     while (CachedObjectClient *c = w.next()) {
-        if (m_response && !KWQIsResponseURLEqualToURL(m_response, m_url))
-            c->setStyleSheet(DOMString(KWQResponseURL(m_response)), m_sheet);
+        if (m_response && !KWQIsResponseURLEqualToURL(m_response,m_url))
+            c->setStyleSheet(DOMString (KWQResponseURL(m_response)), m_sheet);
         else
             c->setStyleSheet(m_url, m_sheet);
     }
@@ -1416,16 +1426,12 @@ void Loader::servePendingRequests()
          job->addMetaData("cross-domain", "true");
   }
 
-#if APPLE_CHANGES
-  connect( job, SIGNAL( result( KIO::Job *, NSData *) ), this, SLOT( slotFinished( KIO::Job *, NSData *) ) );
-#else
   connect( job, SIGNAL( result( KIO::Job * ) ), this, SLOT( slotFinished( KIO::Job * ) ) );
-#endif
-  
+
 #if APPLE_CHANGES
   connect( job, SIGNAL( data( KIO::Job*, const char *, int)),
            SLOT( slotData( KIO::Job*, const char *, int)));
-  connect( job, SIGNAL( receivedResponse( KIO::Job *, NSURLResponse *)), SLOT( slotReceivedResponse( KIO::Job *, NSURLResponse *)) );
+  connect( job, SIGNAL( receivedResponse( KIO::Job *, void *)), SLOT( slotReceivedResponse( KIO::Job *, void *)) );
 
   if (KWQServeRequest(this, req, job))
       m_requestsLoading.insert(job, req);
@@ -1440,11 +1446,7 @@ void Loader::servePendingRequests()
 #endif // APPLE_CHANGES
 }
 
-#if APPLE_CHANGES
-void Loader::slotFinished( KIO::Job* job, NSData *allData)
-#else
 void Loader::slotFinished( KIO::Job* job )
-#endif
 {
   Request *r = m_requestsLoading.take( job );
   KIO::TransferJob* j = static_cast<KIO::TransferJob*>(job);
@@ -1461,9 +1463,6 @@ void Loader::slotFinished( KIO::Job* job )
   else
   {
       r->object->data(r->m_buffer, true);
-#if APPLE_CHANGES
-      r->object->setAllData(allData);
-#endif 
       emit requestDone( r->m_docLoader, r->object );
 #if !APPLE_CHANGES
       time_t expireDate = j->queryMetaData("expire-date").toLong();
@@ -1489,8 +1488,7 @@ kdDebug(6060) << "Loader::slotFinished, url = " << j->url().url() << " expires "
 }
 
 #if APPLE_CHANGES
-
-void Loader::slotReceivedResponse(KIO::Job* job, NSURLResponse *response)
+void Loader::slotReceivedResponse(KIO::Job* job, void *response)
 {
     Request *r = m_requestsLoading[job];
     ASSERT(r);
@@ -1498,7 +1496,6 @@ void Loader::slotReceivedResponse(KIO::Job* job, NSURLResponse *response)
     r->object->setResponse(response);
     r->object->setExpireDate(KWQCacheObjectExpiresTime(r->m_docLoader, response), false);
 }
-
 #endif
 
 #if APPLE_CHANGES
@@ -1695,6 +1692,7 @@ CachedImage *Cache::requestImage( DocLoader* dl, const KURL & url, bool reload,
     }
 #endif
 
+
     CachedObject *o = 0;
     if (!reload)
         o = cache->find(url.url());
@@ -1891,8 +1889,7 @@ CachedScript *Cache::requestScript( DocLoader* dl, const DOM::DOMString &url, bo
 #endif
         return 0;
     }
-    
-    
+
 #ifdef CACHE_DEBUG
     if( o->status() == CachedObject::Pending )
         kdDebug( 6060 ) << "Cache: loading in progress: " << kurl.url() << endl;
index a80c652198cb2d215ea845359ebb61f371897560..00c7c811ff4368c379f7ed69c6d26a5c82660522 100644 (file)
@@ -3,7 +3,7 @@
 
     Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
     Copyright (C) 2001 Dirk Mueller <mueller@kde.org>
-    Copyright (C) 2004 Apple Computer, Inc.
+    Copyright (C) 2003 Apple Computer, Inc.
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
@@ -68,17 +68,7 @@ namespace DOM
 };
 
 #if APPLE_CHANGES
-
 class KWQLoader;
-
-#if __OBJC__
-@class NSData;
-@class NSURLResponse;
-#else
-class NSData;
-class NSURLResponse;
-#endif
-
 #endif
 
 namespace khtml
@@ -141,7 +131,6 @@ namespace khtml
            m_request = 0;
 #if APPLE_CHANGES
         m_response = 0;
-        m_allData = 0;
 #endif            
            m_expireDate = _expireDate;
         m_deleted = false;
@@ -191,12 +180,9 @@ namespace khtml
         void setRequest(Request *_request);
 
 #if APPLE_CHANGES
-        NSURLResponse *response() const { return m_response; }
-        void setResponse(NSURLResponse *response);
-        NSData *allData() const { return m_allData; }
-        void setAllData (NSData *data);
+        void *response() { return m_response; }
+        void setResponse (void *response);
 #endif
-
         bool canDelete() const { return (m_clients.count() == 0 && !m_request); }
 
        void setExpireDate(time_t _expireDate, bool changeHttpCache);
@@ -221,8 +207,7 @@ namespace khtml
         QString m_accept;
         Request *m_request;
 #if APPLE_CHANGES
-        NSURLResponse *m_response;
-        NSData *m_allData;
+        void *m_response;
 #endif
        Type m_type;
        Status m_status;
@@ -523,12 +508,11 @@ protected:
        void requestFailed( khtml::DocLoader* dl, khtml::CachedObject *obj );
 
     protected slots:
+       void slotFinished( KIO::Job * );
 #if APPLE_CHANGES
-        void slotFinished( KIO::Job * , NSData *allData);
        void slotData( KIO::Job *, const char *data, int size );
-        void slotReceivedResponse ( KIO::Job *, NSURLResponse *response );
+        void slotReceivedResponse ( KIO::Job *, void *response );
 #else
-        void slotFinished( KIO::Job * );
        void slotData( KIO::Job *, const QByteArray & );
 #endif
 
@@ -557,7 +541,7 @@ protected:
         * before using it.
         */
        static void init();
-        
+
        /**
         * Ask the cache for some url. Will return a cachedObject, and
         * load the requested data in case it's not cahced
index 388b91339d50ea0b3a381a864a558e7a4de7dcd8..fe5664f6d1aad69ddbb0c113e0ec828cf4d9e3aa 100644 (file)
 
 #ifdef __OBJC__
 @class KWQResourceLoader;
-@class NSData;
-@class NSURLResponse;
 #else
 class KWQResourceLoader;
-class NSData;
-class NSURLResponse;
 #endif
 
 namespace khtml {
@@ -77,8 +73,8 @@ public:
 
     void emitData(const char *, int);
     void emitRedirection(const KURL &);
-    void emitResult(NSData *);
-    void emitReceivedResponse(NSURLResponse *);
+    void emitResult();
+    void emitReceivedResponse(void *);
 
     khtml::FormData postData() const;
     QString method() const;
index bbfa81b58767cf253d5fef7e429bea3b74f72313..3049360be6c70bbce8fe9ef75cffefb8cb006322 100644 (file)
@@ -52,7 +52,7 @@ public:
        , URL(kurl)
        , loader(nil)
        , method("GET")
-       , response(nil)
+       , response(0)
         , assembledResponseHeaders(true)
         , retrievedCharset(true)
     {
@@ -65,7 +65,7 @@ public:
        , loader(nil)
        , method("POST")
        , postData(_postData)
-       , response(nil)
+       , response(0)
        , assembledResponseHeaders(true)
         , retrievedCharset(true)
     {
@@ -73,7 +73,7 @@ public:
 
     ~TransferJobPrivate()
     {
-       KWQRelease(response);
+       KWQReleaseResponse(response);
         KWQRelease(metaData);
         KWQRelease(loader);
     }
@@ -85,7 +85,7 @@ public:
     QString method;
     FormData postData;
 
-    NSURLResponse *response;
+    void *response;
     bool assembledResponseHeaders;
     bool retrievedCharset;
     QString responseHeaders;
@@ -95,8 +95,8 @@ TransferJob::TransferJob(const KURL &url, bool reload)
     : d(new TransferJobPrivate(url)),
       m_data(this, SIGNAL(data(KIO::Job*, const char*, int))),
       m_redirection(this, SIGNAL(redirection(KIO::Job*, const KURL&))),
-      m_result(this, SIGNAL(result(KIO::Job*, NSData *))),
-      m_receivedResponse(this, SIGNAL(receivedResponse(KIO::Job*, NSURLResponse *)))
+      m_result(this, SIGNAL(result(KIO::Job*))),
+      m_receivedResponse(this, SIGNAL(receivedResponse(KIO::Job*, void *)))
 {
 }
 
@@ -104,8 +104,8 @@ TransferJob::TransferJob(const KURL &url, const FormData &postData)
     : d(new TransferJobPrivate(url, postData)),
       m_data(this, SIGNAL(data(KIO::Job*, const char*, int))),
       m_redirection(this, SIGNAL(redirection(KIO::Job*, const KURL&))),
-      m_result(this, SIGNAL(result(KIO::Job*, NSData *))),
-      m_receivedResponse(this, SIGNAL(receivedResponse(KIO::Job*, NSURLResponse *)))
+      m_result(this, SIGNAL(result(KIO::Job*))),
+      m_receivedResponse(this, SIGNAL(receivedResponse(KIO::Job*, void *)))
 {
 }
 
@@ -142,11 +142,7 @@ QString TransferJob::errorText() const
 void TransferJob::assembleResponseHeaders() const
 {
     if (!d->assembledResponseHeaders) {
-        if ([d->response isKindOfClass:[NSHTTPURLResponse class]]) {
-            NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)d->response;
-            NSDictionary *headers = [httpResponse allHeaderFields];
-            d->responseHeaders = QString::fromNSString(KWQHeaderStringFromDictionary(headers, [httpResponse statusCode]));
-        }
+       d->responseHeaders = QString::fromNSString((NSString *)KWQResponseHeaderString(d->response));
        d->assembledResponseHeaders = true;
     }
 }
@@ -154,7 +150,7 @@ void TransferJob::assembleResponseHeaders() const
 void TransferJob::retrieveCharset() const
 {
     if (!d->retrievedCharset) {
-        NSString *charset = [d->response textEncodingName];
+        NSString *charset = (NSString *)KWQResponseTextEncodingName(d->response);
         if (charset) {
             [d->metaData setObject:charset forKey:@"charset"];
         }
@@ -230,17 +226,17 @@ void TransferJob::emitRedirection(const KURL &url)
     m_redirection.call(this, url);
 }
 
-void TransferJob::emitResult(NSData *allData)
+void TransferJob::emitResult()
 {
-    m_result.call(this, allData);
+    m_result.call(this);
 }
 
-void TransferJob::emitReceivedResponse(NSURLResponse *response)
+void TransferJob::emitReceivedResponse(void *response)
 {
     d->assembledResponseHeaders = false;
     d->retrievedCharset = false;
     d->response = response;
-    KWQRetain(d->response);
+    KWQRetainResponse(d->response);
 
     m_receivedResponse.call(this, response);
 }
index 694212ad0131baa7780a5a658706c551961c5740..5893ee2dd1cc4cf17a2931a06d2d342360ba6719 100644 (file)
 #include "KWQCString.h"
 #include "KWQSignal.h"
 
-#if __OBJC__
-@class NSDictionary;
-@class NSString;
-@class NSURLResponse;
-#else
-class NSDictionary;
-class NSString;
-class NSURLResponse;
-#endif
-
 namespace khtml {
     class CachedObject;
     class DocLoader;
@@ -58,12 +48,15 @@ QByteArray KWQServeSynchronousRequest(khtml::Loader *, khtml::DocLoader *, KIO::
 
 void KWQCheckCacheObjectStatus(khtml::DocLoader *, khtml::CachedObject *);
 bool KWQCheckIfReloading(khtml::DocLoader *loader);
-bool KWQIsResponseURLEqualToURL(NSURLResponse *response, const DOM::DOMString &m_url);
-QString KWQResponseURL(NSURLResponse *response);
-NSString *KWQResponseMIMEType(NSURLResponse *response);
+void KWQRetainResponse(void *response);
+void KWQReleaseResponse(void *response);
+bool KWQIsResponseURLEqualToURL(void *response, const DOM::DOMString &m_url);
+QString KWQResponseURL(void *response);
+void *KWQResponseMIMEType(void *response);
+void *KWQResponseTextEncodingName(void *response);
+void *KWQResponseHeaderString(void *response);
 int KWQNumberOfPendingOrLoadingRequests(khtml::DocLoader *dl);
-time_t KWQCacheObjectExpiresTime(khtml::DocLoader *docLoader, NSURLResponse *response);
-NSString *KWQHeaderStringFromDictionary(NSDictionary *headers, int statusCode);
+time_t KWQCacheObjectExpiresTime(khtml::DocLoader *docLoader, void *response);
 
 class KWQLoader
 {
index ce17807b2e4c6e503cb096e97680ff5986e89e48..c5f9cba0e48c2397632e7aee14e8c7aa0a0472ab 100644 (file)
@@ -139,7 +139,7 @@ bool KWQServeRequest(Loader *loader, DocLoader *docLoader, TransferJob *job)
     return true;
 }
 
-NSString *KWQHeaderStringFromDictionary(NSDictionary *headers, int statusCode)
+static NSString *KWQHeaderStringFromDictionary(NSDictionary *headers, int statusCode)
 {
     NSMutableString *headerString = [[NSMutableString alloc] init];
     [headerString appendString:[NSString stringWithFormat:@"HTTP/1.0 %d OK\n", statusCode]];
@@ -246,20 +246,35 @@ void KWQCheckCacheObjectStatus(DocLoader *loader, CachedObject *cachedObject)
 
     if (!part->haveToldBridgeAboutLoad(urlString)) {
        WebCoreBridge *bridge = part->bridge();
+       CachedImage *cachedImage = dynamic_cast<CachedImage *>(cachedObject);
 
        KWQ_BLOCK_EXCEPTIONS;
        [bridge objectLoadedFromCacheWithURL:KURL(cachedObject->url().string()).getNSURL()
-                                    response:(NSURLResponse *)cachedObject->response()
-                                        data:(NSData *)cachedObject->allData()];
+               response:(id)cachedObject->response()
+               size:cachedImage ? cachedImage->dataSize() : cachedObject->size()];
        KWQ_UNBLOCK_EXCEPTIONS;
 
        part->didTellBridgeAboutLoad(urlString);
     }
 }
 
+void KWQRetainResponse(void *response)
+{
+    // There's no way a retain can raise
+    KWQRetain((id)response);
+}
+
+void KWQReleaseResponse(void *response)
+{
+    // A release could raise if it deallocs.
+    KWQ_BLOCK_EXCEPTIONS;
+    KWQRelease((id)response);
+    KWQ_UNBLOCK_EXCEPTIONS;
+}
+
 #define LOCAL_STRING_BUFFER_SIZE 1024
 
-bool KWQIsResponseURLEqualToURL(NSURLResponse *response, const DOM::DOMString &m_url)
+bool KWQIsResponseURLEqualToURL(void *response, const DOM::DOMString &m_url)
 {
     unichar _buffer[LOCAL_STRING_BUFFER_SIZE];
     unichar *urlStringCharacters;
@@ -290,7 +305,7 @@ bool KWQIsResponseURLEqualToURL(NSURLResponse *response, const DOM::DOMString &m
     return ret;
 }
 
-QString KWQResponseURL(NSURLResponse *response)
+QString KWQResponseURL(void *response)
 {
     KWQ_BLOCK_EXCEPTIONS;
 
@@ -306,7 +321,7 @@ QString KWQResponseURL(NSURLResponse *response)
     return NULL;
 }
 
-NSString *KWQResponseMIMEType(NSURLResponse *response)
+void *KWQResponseMIMEType(void *response)
 {
     KWQ_BLOCK_EXCEPTIONS;
     return [(NSURLResponse *)response MIMEType];
@@ -315,7 +330,32 @@ NSString *KWQResponseMIMEType(NSURLResponse *response)
     return NULL;
 }
 
-time_t KWQCacheObjectExpiresTime(khtml::DocLoader *docLoader, NSURLResponse *response)
+void *KWQResponseTextEncodingName(void *response)
+{
+    KWQ_BLOCK_EXCEPTIONS;
+    return [(NSURLResponse *)response textEncodingName];
+    KWQ_UNBLOCK_EXCEPTIONS;
+
+    return NULL;
+}
+
+void *KWQResponseHeaderString(void *response)
+{
+    KWQ_BLOCK_EXCEPTIONS;
+    NSURLResponse *nsResponse = (NSURLResponse *)response;
+    if ([nsResponse isKindOfClass:[NSHTTPURLResponse class]]) {
+       NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)nsResponse;
+       NSDictionary *headers = [httpResponse allHeaderFields];
+
+       return KWQHeaderStringFromDictionary(headers, [httpResponse statusCode]);
+    }
+
+    KWQ_UNBLOCK_EXCEPTIONS;
+
+    return NULL;
+}
+
+time_t KWQCacheObjectExpiresTime(khtml::DocLoader *docLoader, void *response)
 {
     KWQ_BLOCK_EXCEPTIONS;
     
@@ -334,27 +374,3 @@ KWQLoader::KWQLoader(Loader *loader)
     , _requestFailed(loader, SIGNAL(requestFailed(khtml::DocLoader *, khtml::CachedObject *)))
 {
 }
-
-namespace khtml {
-    
-void CachedObject::setResponse(NSURLResponse *response)
-{
-    KWQRetain(response);
-    KWQ_BLOCK_EXCEPTIONS;
-    KWQRelease(m_response);
-    KWQ_UNBLOCK_EXCEPTIONS;
-
-    m_response = response;
-}
-
-void CachedObject::setAllData(NSData *allData)
-{
-    KWQRetain(allData);
-    KWQ_BLOCK_EXCEPTIONS;
-    KWQRelease(m_allData);
-    KWQ_UNBLOCK_EXCEPTIONS;
-
-    m_allData = allData;
-}
-
-} // namespace
index e4f6f3e469437a06c14429f063be43be310d7253..30094df3f525a45af53acbd67c7971bd5638ef25 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -53,13 +53,13 @@ QPixmap *KWQLoadPixmap(const char *name);
 class QPixmap : public QPaintDevice, public Qt {
 public:
     QPixmap();
-    QPixmap(NSString *MIMEType);
+    QPixmap(void *MIMEType);
     QPixmap(const QSize&);
     QPixmap(const QByteArray&);
-    QPixmap(const QByteArray&, NSString *MIMEType);
+    QPixmap(const QByteArray&, void *MIMEType);
     QPixmap(int, int);
-    //QPixmap(WebCoreImageRendererPtr);
     QPixmap(const QPixmap &);
+    QPixmap(WebCoreImageRendererPtr);
     ~QPixmap();
     
     bool isNull() const;
index cf94aa24ebd935e7b66c3fb2013cd40e5ad36df7..de228cf407e8654fa381e93a0cf69c3eac4c688b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -43,53 +43,50 @@ bool canRenderImageType(const QString &type)
 QPixmap::QPixmap()
 {
     imageRenderer = nil;
-    MIMEType = nil;
+    MIMEType = 0;
     needCopyOnWrite = false;
 }
 
-#if 0
-
 QPixmap::QPixmap(WebCoreImageRendererPtr r)
 {
     imageRenderer = KWQRetain(r);
-    MIMEType = nil;
+    MIMEType = 0;
     needCopyOnWrite = false;
 }
 
-#endif
 
-QPixmap::QPixmap(NSString *MIME)
+QPixmap::QPixmap(void *MIME)
 {
     imageRenderer = nil;
-    MIMEType = KWQRetainNSRelease([MIME copy]);
+    MIMEType = (NSString *)[((NSString *)MIME) copy];
     needCopyOnWrite = false;
 }
 
 QPixmap::QPixmap(const QSize &sz)
 {
     imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithSize:NSMakeSize(sz.width(), sz.height())]);
-    MIMEType = nil;
+    MIMEType = 0;
     needCopyOnWrite = false;
 }
 
 QPixmap::QPixmap(const QByteArray &bytes)
 {
     imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithBytes:bytes.data() length:bytes.size()]);
-    MIMEType = nil;
+    MIMEType = 0;
     needCopyOnWrite = false;
 }
 
-QPixmap::QPixmap(const QByteArray &bytes, NSString *MIME)
+QPixmap::QPixmap(const QByteArray &bytes, void *MIME)
 {
-    MIMEType = KWQRetainNSRelease([MIME copy]);
-    imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithBytes:bytes.data() length:bytes.size() MIMEType:MIMEType]);
+    MIMEType = (NSString *)[((NSString *)MIME) copy];
+    imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithBytes:bytes.data() length:bytes.size() MIMEType:(NSString *)MIMEType]);
     needCopyOnWrite = false;
 }
 
 QPixmap::QPixmap(int w, int h)
 {
     imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithSize:NSMakeSize(w, h)]);
-    MIMEType = nil;
+    MIMEType = 0;
     needCopyOnWrite = false;
 }
 
index 2ff977fe9a92519de4c120b14b60235c08fc79fe..75f12a5988f8deb78b82e0da47c8295140c0cd7d 100644 (file)
@@ -82,7 +82,7 @@ using KIO::TransferJob;
     [handle release];
 }
 
-- (void)finishJobAndHandle:(NSData *)data
+- (void)finishJobAndHandle
 {
     TransferJob *job = _job;
     id <WebCoreResourceHandle> handle = _handle;
@@ -90,7 +90,7 @@ using KIO::TransferJob;
     _handle = nil;
 
     if (job) {
-        job->emitResult(data);
+        job->emitResult();
     }
     delete job;
     [handle release];
@@ -101,21 +101,21 @@ using KIO::TransferJob;
     if (_job) {
         _job->setError(1);
     }
-    [self finishJobAndHandle:nil];
+    [self finishJobAndHandle];
 }
 
 - (void)reportError
 {
     ASSERT(_job);
     _job->setError(1);
-    [self finishJobAndHandle:nil];
+    [self finishJobAndHandle];
 }
 
-- (void)finishWithData:(NSData *)data
+- (void)finish
 {
     ASSERT(_job);
     ASSERT(_handle);
-    [self finishJobAndHandle:data];
+    [self finishJobAndHandle];
 }
 
 @end
index 9b59c9184c8d1947c382eeaa2590075e4aa925a9..bdf56c73c6a05b9a0d137a26e68b8f36433ff68a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -45,8 +45,7 @@ public:
     void call(khtml::DocLoader *, khtml::CachedObject *) const;
     void call(KIO::Job *, const char *data, int size) const;
     void call(KIO::Job *, const KURL &) const;
-    void call(KIO::Job *, NSData *) const;
-    void call(KIO::Job *, NSURLResponse *) const;
+    void call(KIO::Job *, void *) const;
     
 private:
     // forbid copying and assignment
index 2ed63df4d65c0707c55d98a0efdc50c61dff1bb2..8b6196efc757ee8232c7e497218320f70ca5806d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -173,7 +173,7 @@ void KWQSignal::call(Job *j, const KURL &u) const
     }
 }
 
-void KWQSignal::call(Job *j, NSData *d) const
+void KWQSignal::call(Job *j, void *d) const
 {
     if (!_object->_signalsBlocked) {
         KWQObjectSenderScope senderScope(_object);
@@ -185,14 +185,3 @@ void KWQSignal::call(Job *j, NSData *d) const
     }
 }
 
-void KWQSignal::call(Job *j, NSURLResponse *r) const
-{
-    if (!_object->_signalsBlocked) {
-        KWQObjectSenderScope senderScope(_object);
-        QValueList<KWQSlot> copiedSlots(_slots);
-        QValueListConstIterator<KWQSlot> end = copiedSlots.end();
-        for (QValueListConstIterator<KWQSlot> it = copiedSlots.begin(); it != end; ++it) {
-            (*it).call(j, r);
-        }
-    }
-}
index 855dc5039a7506076e860bd80909938c87f9b713..3e79b3c72ffcf003cdc5ea244446d03100db86b0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
 
 #include "KWQGuardedPtr.h"
 
-#if __OBJC__
-@class NSData;
-@class NSURLResponse;
-#else
-class NSData;
-class NSURLResponse;
-#endif
-
 class QString;
 class KURL;
 
@@ -67,8 +59,7 @@ public:
     void call(khtml::DocLoader *, khtml::CachedObject *) const;
     void call(KIO::Job *, const char *, int) const;
     void call(KIO::Job *, const KURL &) const;
-    void call(KIO::Job *, NSData *) const;
-    void call(KIO::Job *, NSURLResponse *) const;
+    void call(KIO::Job *, void *) const;
 
     friend bool operator==(const KWQSlot &, const KWQSlot &);
 
index d89bed83373cdb0e2bba8f9aeb06eca5d177197b..0b06bb475c761fb55965c2ebceb11eb48f61c53a 100644 (file)
@@ -83,7 +83,7 @@ enum FunctionNumber {
     slotFinished_KHTMLPart,
     slotFinished_Loader,
     slotFinished_XMLHttpRequest,
-    slotReceivedResponse,
+    slotReceivedResponse
 };
 
 KWQSlot::KWQSlot(QObject *object, const char *member)
@@ -148,17 +148,16 @@ KWQSlot::KWQSlot(QObject *object, const char *member)
        } else {
            m_function = slotRedirection_XMLHttpRequest;
        }
-    } else if (KWQNamesMatch(member, SLOT(slotFinished(KIO::Job *, NSData *)))) {
-       ASSERT(dynamic_cast<khtml::Loader *>(object));
-       m_function = slotFinished_Loader;        
     } else if (KWQNamesMatch(member, SLOT(slotFinished(KIO::Job *)))) {
-       ASSERT(dynamic_cast<KHTMLPart *>(object) || dynamic_cast<XMLHttpRequestQObject *>(object));
-       if (dynamic_cast<KHTMLPart *>(object)) {
+       ASSERT(dynamic_cast<khtml::Loader *>(object) || dynamic_cast<KHTMLPart *>(object) || dynamic_cast<XMLHttpRequestQObject *>(object));
+       if (dynamic_cast<khtml::Loader *>(object)) {
+           m_function = slotFinished_Loader;
+       } else if (dynamic_cast<KHTMLPart *>(object)) {
            m_function = slotFinished_KHTMLPart;
        } else {
            m_function = slotFinished_XMLHttpRequest;
        }
-    } else if (KWQNamesMatch(member, SLOT(slotReceivedResponse(KIO::Job *, NSURLResponse *)))) {
+    } else if (KWQNamesMatch(member, SLOT(slotReceivedResponse(KIO::Job *, void *)))) {
        ASSERT(dynamic_cast<khtml::Loader *>(object));
        m_function = slotReceivedResponse;
     } else {
@@ -273,6 +272,9 @@ void KWQSlot::call(Job *job) const
         case slotFinished_KHTMLPart:
             static_cast<KHTMLPart *>(m_object.pointer())->slotFinished(job);
             return;
+        case slotFinished_Loader:
+            static_cast<Loader *>(m_object.pointer())->slotFinished(job);
+            return;
         case slotFinished_XMLHttpRequest:
             static_cast<XMLHttpRequestQObject *>(m_object.pointer())->slotFinished(job);
             return;
@@ -317,22 +319,7 @@ void KWQSlot::call(Job *job, const KURL &url) const
     call();
 }
 
-void KWQSlot::call(KIO::Job *job, NSData *allData) const
-{
-    if (m_object.isNull()) {
-        return;
-    }
-    
-    switch (m_function) {
-        case slotFinished_Loader:
-            static_cast<Loader *>(m_object.pointer())->slotFinished(job, allData);
-            return;
-    }
-    
-    call();
-}
-
-void KWQSlot::call(KIO::Job *job, NSURLResponse *response) const
+void KWQSlot::call(KIO::Job *job, void *response) const
 {
     if (m_object.isNull()) {
         return;
@@ -343,7 +330,7 @@ void KWQSlot::call(KIO::Job *job, NSURLResponse *response) const
            static_cast<Loader *>(m_object.pointer())->slotReceivedResponse(job, response);
            return;
     }
-    
+
     call();
 }
 
index df672bdae21c0cd92d507c860bf33dd2120a1fdc..d609a7bf37c308cf27fec7d56b22d181997c49fd 100644 (file)
@@ -446,7 +446,7 @@ typedef enum {
 
 - (id <WebCoreResourceHandle>)startLoadingResource:(id <WebCoreResourceLoader>)loader withURL:(NSURL *)URL customHeaders:(NSDictionary *)customHeaders;
 - (id <WebCoreResourceHandle>)startLoadingResource:(id <WebCoreResourceLoader>)loader withURL:(NSURL *)URL customHeaders:(NSDictionary *)customHeaders postData:(NSArray *)data;
-- (void)objectLoadedFromCacheWithURL:(NSURL *)URL response:(NSURLResponse *)response data:(NSData *)data;
+- (void)objectLoadedFromCacheWithURL:(NSURL *)URL response:(id)response size:(unsigned)bytes;
 
 - (NSData *)syncLoadResourceWithURL:(NSURL *)URL customHeaders:(NSDictionary *)requestHeaders postData:(NSArray *)postData finalURL:(NSURL **)finalNSURL responseHeaders:(NSDictionary **)responseHeaderDict statusCode:(int *)statusCode;
 
index a6c9242051ce904925370e8b0efcc60cb10c7a43..42f3ba39bba0cd53d1bd6ad03d9e7a4c87a017bd 100644 (file)
@@ -32,9 +32,9 @@
 
 - (void)addData:(NSData *)data;
 
-// Either finishWithData:, reportError, or cancel must be called before the
+// Either finish, reportError, or cancel must be called before the
 // loader is released, but never more than one.
-- (void)finishWithData:(NSData *)data;
+- (void)finish;
 - (void)reportError;
 - (void)cancel;
 
index 1c8dfe35a7baad071d5906ef22478bb0a51f9f39..d52be1e3bd3d24dbb063f328495d94c41274e67f 100644 (file)
@@ -1,3 +1,22 @@
+2004-12-03  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by me
+
+        Roll out some recent changes by Chris that caused a performance regression.
+        Fix is in hand, but it is a little risky this close to a submission. So,
+        we have decided to roll back the change with the regression and roll in
+        the new code after we submit.
+
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge objectLoadedFromCacheWithURL:response:size:]):
+        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
+        * WebCoreSupport.subproj/WebSubresourceClient.m:
+        (-[WebSubresourceClient didFinishLoading]):
+        * WebView.subproj/WebFrame.m:
+        (-[WebFrame _opened]):
+        (-[WebFrame _internalLoadDelegate]):
+        * WebView.subproj/WebFrameInternal.h:
+
 2004-12-02  Richard Williamson   <rjw@apple.com>
 
        Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images
index 4c80482ad29dfa9e0f324e9fc81826fa13d590aa..918447ac647899160487f0d0915ad06f1596bd16 100644 (file)
 #import <WebKit/WebBasePluginPackage.h>
 #import <WebKit/WebBaseResourceHandleDelegate.h>
 #import <WebKit/WebDataSourcePrivate.h>
+#import <WebKit/WebDefaultResourceLoadDelegate.h>
 #import <WebKit/WebDefaultUIDelegate.h>
 #import <WebKit/WebEditingDelegate.h>
 #import <WebKit/WebFileButton.h>
 #import <WebKit/WebFormDelegate.h>
-#import <WebKit/WebFrameInternal.h>
 #import <WebKit/WebFrameLoadDelegate.h>
+#import <WebKit/WebFramePrivate.h>
 #import <WebKit/WebFrameViewInternal.h>
 #import <WebKit/WebHistoryItemPrivate.h>
 #import <WebKit/WebHTMLRepresentationPrivate.h>
@@ -40,7 +41,7 @@
 #import <WebKit/WebPluginViewFactoryPrivate.h>
 #import <WebKit/WebNetscapePluginDocumentView.h>
 #import <WebKit/WebPreferencesPrivate.h>
-#import <WebKit/WebResource.h>
+#import <WebKit/WebResourceLoadDelegate.h>
 #import <WebKit/WebSubresourceClient.h>
 #import <WebKit/WebViewInternal.h>
 #import <WebKit/WebViewPrivate.h>
@@ -442,18 +443,42 @@ NSString *WebPluginContainerKey =   @"WebPluginContainer";
                                         forDataSource:[self dataSource]];
 }
 
-- (void)objectLoadedFromCacheWithURL:(NSURL *)URL response:(NSURLResponse *)response data:(NSData *)data
+- (void)objectLoadedFromCacheWithURL:(NSURL *)URL response: response size:(unsigned)bytes
 {
-    WebResource *resource = [[WebResource alloc] initWithData:data
-                                                          URL:URL
-                                                     MIMEType:[response MIMEType]
-                                             textEncodingName:[response textEncodingName]
-                                                    frameName:nil];
-    ASSERT(resource != nil);
-    [[self dataSource] addSubresource:resource];
-    [resource release];
+    ASSERT(_frame != nil);
+    ASSERT(response != nil);
+
+    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL];
+    WebView *wv = [_frame webView];
+    id delegate = [wv resourceLoadDelegate];
+    id sharedDelegate = [WebDefaultResourceLoadDelegate sharedResourceLoadDelegate];
+    id identifier;
+    WebResourceDelegateImplementationCache implementations = [wv _resourceLoadDelegateImplementations];
     
-    [_frame _sendResourceLoadDelegateMessagesForURL:URL response:response length:[data length]];    
+    // No chance for delegate to modify request, so we don't send a willSendRequest:redirectResponse: message.
+    if (implementations.delegateImplementsIdentifierForRequest)
+        identifier = [delegate webView:wv identifierForInitialRequest: request fromDataSource: [self dataSource]];
+    else
+        identifier = [sharedDelegate webView:wv identifierForInitialRequest:request fromDataSource:[self dataSource]];
+    
+    if (implementations.delegateImplementsDidReceiveResponse)
+        [delegate webView:wv resource: identifier didReceiveResponse: response fromDataSource: [self dataSource]];
+    else
+        [sharedDelegate webView:wv resource: identifier didReceiveResponse: response fromDataSource: [self dataSource]];
+
+    if (implementations.delegateImplementsDidReceiveContentLength)
+        [delegate webView:wv resource: identifier didReceiveContentLength: bytes fromDataSource: [self dataSource]];
+    else
+        [sharedDelegate webView:wv resource: identifier didReceiveContentLength: bytes fromDataSource: [self dataSource]];
+
+    if (implementations.delegateImplementsDidFinishLoadingFromDataSource)
+        [delegate webView:wv resource: identifier didFinishLoadingFromDataSource: [self dataSource]];
+    else
+        [sharedDelegate webView:wv resource: identifier didFinishLoadingFromDataSource: [self dataSource]];
+    
+    [[_frame webView] _finishedLoadingResourceFromDataSource:[self dataSource]];
+
+    [request release];
 }
 
 - (NSData *)syncLoadResourceWithURL:(NSURL *)URL customHeaders:(NSDictionary *)requestHeaders postData:(NSArray *)postData finalURL:(NSURL **)finalURL responseHeaders:(NSDictionary **)responseHeaderDict statusCode:(int *)statusCode
@@ -504,7 +529,7 @@ NSString *WebPluginContainerKey =   @"WebPluginContainer";
     }
 
     // notify the delegates
-    [self objectLoadedFromCacheWithURL:URL response:response data:result];
+    [self objectLoadedFromCacheWithURL:URL response:response size:[result length]];
 
     return result;
 }
index d78e79cb7abbcc6c7b093e344a29a25c49bbba35..e0de2b93f920a776d88bf0852039e224afbbe0aa 100644 (file)
     // Calling _removeSubresourceClient will likely result in a call to release, so we must retain.
     [self retain];
     
-    [loader finishWithData:[self resourceData]];
+    [loader finish];
     
     [dataSource _removeSubresourceClient:self];
     
index d78e79cb7abbcc6c7b093e344a29a25c49bbba35..e0de2b93f920a776d88bf0852039e224afbbe0aa 100644 (file)
     // Calling _removeSubresourceClient will likely result in a call to release, so we must retain.
     [self retain];
     
-    [loader finishWithData:[self resourceData]];
+    [loader finish];
     
     [dataSource _removeSubresourceClient:self];
     
index 19f9794e4bffac4d361a82b0e5f0cc7978ded03b..e345a50c2025f3fde89a27c8e0247e88f29c3e38 100644 (file)
@@ -11,7 +11,6 @@
 #import <WebKit/WebBridge.h>
 #import <WebKit/WebDataProtocol.h>
 #import <WebKit/WebDataSourcePrivate.h>
-#import <WebKit/WebDefaultResourceLoadDelegate.h>
 #import <WebKit/WebDefaultUIDelegate.h>
 #import <WebKit/WebDocumentInternal.h>
 #import <WebKit/WebFrameLoadDelegate.h>
@@ -32,7 +31,6 @@
 #import <WebKit/WebPlugin.h>
 #import <WebKit/WebPluginController.h>
 #import <WebKit/WebPluginDocumentView.h>
-#import <WebKit/WebResourceLoadDelegate.h>
 #import <WebKit/WebResourcePrivate.h>
 #import <WebKit/WebViewInternal.h>
 #import <WebKit/WebUIDelegate.h>
@@ -1003,9 +1001,9 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
         int i, count = [responses count];
         for (i = 0; i < count; i++){
             response = [responses objectAtIndex: i];
-            [self _sendResourceLoadDelegateMessagesForURL:[response URL]
-                                                 response:response
-                                                   length:[response expectedContentLength]];
+            [_private->bridge objectLoadedFromCacheWithURL:[response URL]
+                    response: response
+                    size: [response expectedContentLength]];
         }
         
         // Release the resources kept in the page cache.  They will be
@@ -2509,44 +2507,6 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
     return _private->internalLoadDelegate;
 }
 
-- (void)_sendResourceLoadDelegateMessagesForURL:(NSURL *)URL response:(NSURLResponse *)response length:(unsigned)length
-{
-    ASSERT(response != nil);
-    
-    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL];
-    WebView *wv = [self webView];
-    id delegate = [wv resourceLoadDelegate];
-    id sharedDelegate = [WebDefaultResourceLoadDelegate sharedResourceLoadDelegate];
-    id identifier;
-    WebResourceDelegateImplementationCache implementations = [wv _resourceLoadDelegateImplementations];
-    WebDataSource *dataSource = [self dataSource];
-    
-    // No chance for delegate to modify request, so we don't send a willSendRequest:redirectResponse: message.
-    if (implementations.delegateImplementsIdentifierForRequest)
-        identifier = [delegate webView:wv identifierForInitialRequest: request fromDataSource:dataSource];
-    else
-        identifier = [sharedDelegate webView:wv identifierForInitialRequest:request fromDataSource:dataSource];
-    
-    if (implementations.delegateImplementsDidReceiveResponse)
-        [delegate webView:wv resource: identifier didReceiveResponse: response fromDataSource:dataSource];
-    else
-        [sharedDelegate webView:wv resource: identifier didReceiveResponse: response fromDataSource:dataSource];
-    
-    if (implementations.delegateImplementsDidReceiveContentLength)
-        [delegate webView:wv resource: identifier didReceiveContentLength:length fromDataSource:dataSource];
-    else
-        [sharedDelegate webView:wv resource: identifier didReceiveContentLength:length fromDataSource:dataSource];
-    
-    if (implementations.delegateImplementsDidFinishLoadingFromDataSource)
-        [delegate webView:wv resource: identifier didFinishLoadingFromDataSource:dataSource];
-    else
-        [sharedDelegate webView:wv resource: identifier didFinishLoadingFromDataSource:dataSource];
-    
-    [wv _finishedLoadingResourceFromDataSource:dataSource];
-    
-    [request release];
-}
-
 @end
 
 @implementation WebFormState : NSObject
index 6b7188ff0383b48f72d03a9a54b6e52394680a36..9581bed4b9a4fff892c66517cf9c5d782fd757c6 100644 (file)
@@ -7,7 +7,6 @@
 - (void)_updateDrawsBackground;
 - (void)_setInternalLoadDelegate:(id)internalLoadDelegate;
 - (id)_internalLoadDelegate;
-- (void)_sendResourceLoadDelegateMessagesForURL:(NSURL *)URL response:(NSURLResponse *)response length:(unsigned)length;
 
 @end