Implement -khtml-user-select and add support for the property -khtml-user-drag ...
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 28 May 2004 19:33:46 +0000 (19:33 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 28 May 2004 19:33:46 +0000 (19:33 +0000)
need to wire it up).

        Reviewed by rjw

        * khtml/css/cssparser.cpp:
        (CSSParser::parseValue):
        * khtml/css/cssproperties.c:
        (hash_prop):
        (findProp):
        * khtml/css/cssproperties.h:
        * khtml/css/cssproperties.in:
        * khtml/css/cssstyleselector.cpp:
        (khtml::CSSStyleSelector::applyProperty):
        * khtml/css/cssvalues.c:
        (hash_val):
        (findValue):
        * khtml/css/cssvalues.h:
        * khtml/css/cssvalues.in:
        * khtml/khtml_part.cpp:
        (KHTMLPart::handleMousePressEventDoubleClick):
        (KHTMLPart::handleMousePressEventTripleClick):
        (KHTMLPart::handleMousePressEventSingleClick):
        (KHTMLPart::handleMouseMoveEventSelection):
        * khtml/rendering/render_canvas.cpp:
        (RenderCanvas::setSelection):
        * khtml/rendering/render_object.cpp:
        (RenderObject::shouldSelect):
        * khtml/rendering/render_object.h:
        * khtml/rendering/render_style.cpp:
        (userSelect):
        (StyleCSS3NonInheritedData::operator==):
        (RenderStyle::diff):
        * khtml/rendering/render_style.h:
        (khtml::):
        (khtml::RenderStyle::userDrag):
        (khtml::RenderStyle::userSelect):
        (khtml::RenderStyle::setUserDrag):
        (khtml::RenderStyle::setUserSelect):
        (khtml::RenderStyle::initialUserDrag):
        (khtml::RenderStyle::initialUserSelect):

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

15 files changed:
WebCore/ChangeLog-2005-08-23
WebCore/khtml/css/cssparser.cpp
WebCore/khtml/css/cssproperties.c
WebCore/khtml/css/cssproperties.h
WebCore/khtml/css/cssproperties.in
WebCore/khtml/css/cssstyleselector.cpp
WebCore/khtml/css/cssvalues.c
WebCore/khtml/css/cssvalues.h
WebCore/khtml/css/cssvalues.in
WebCore/khtml/khtml_part.cpp
WebCore/khtml/rendering/render_canvas.cpp
WebCore/khtml/rendering/render_object.cpp
WebCore/khtml/rendering/render_object.h
WebCore/khtml/rendering/render_style.cpp
WebCore/khtml/rendering/render_style.h

index bece94ee8054df88c6f53d3be54c96f1a3bc058e..435ef6cf35db72f4b3038bc0315b36be2b4bde20 100644 (file)
@@ -1,3 +1,47 @@
+2004-05-28  David Hyatt  <hyatt@apple.com>
+
+       Implement -khtml-user-select and add support for the property -khtml-user-drag (although someone will still
+       need to wire it up).
+       
+        Reviewed by rjw
+
+        * khtml/css/cssparser.cpp:
+        (CSSParser::parseValue):
+        * khtml/css/cssproperties.c:
+        (hash_prop):
+        (findProp):
+        * khtml/css/cssproperties.h:
+        * khtml/css/cssproperties.in:
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyProperty):
+        * khtml/css/cssvalues.c:
+        (hash_val):
+        (findValue):
+        * khtml/css/cssvalues.h:
+        * khtml/css/cssvalues.in:
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::handleMousePressEventDoubleClick):
+        (KHTMLPart::handleMousePressEventTripleClick):
+        (KHTMLPart::handleMousePressEventSingleClick):
+        (KHTMLPart::handleMouseMoveEventSelection):
+        * khtml/rendering/render_canvas.cpp:
+        (RenderCanvas::setSelection):
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::shouldSelect):
+        * khtml/rendering/render_object.h:
+        * khtml/rendering/render_style.cpp:
+        (userSelect):
+        (StyleCSS3NonInheritedData::operator==):
+        (RenderStyle::diff):
+        * khtml/rendering/render_style.h:
+        (khtml::):
+        (khtml::RenderStyle::userDrag):
+        (khtml::RenderStyle::userSelect):
+        (khtml::RenderStyle::setUserDrag):
+        (khtml::RenderStyle::setUserSelect):
+        (khtml::RenderStyle::initialUserDrag):
+        (khtml::RenderStyle::initialUserSelect):
+
 2004-05-28  John Louch  <set EMAIL_ADDRESS environment variable>
        added addArc and clip path routines.
 
index c0a66b803f44b1911a9c5f257d1304279b37f82c..83bd99267e7af486d424d3674ab5a9827c637c75 100644 (file)
@@ -1090,10 +1090,18 @@ bool CSSParser::parseValue( int propId, bool important )
         else
             valid_primitive = validUnit(value, FTime|FInteger|FNonNeg, strict);
         break;
+    case CSS_PROP__KHTML_USER_DRAG: // auto | none | element
+        if (id == CSS_VAL_AUTO || id == CSS_VAL_NONE || id == CSS_VAL_ELEMENT)
+            valid_primitive = true;
+        break;
     case CSS_PROP__KHTML_USER_MODIFY:  // read-only | read-write
         if (id == CSS_VAL_READ_ONLY || id == CSS_VAL_READ_WRITE)
             valid_primitive = true;
-            break;
+        break;
+    case CSS_PROP__KHTML_USER_SELECT: // auto | none
+        if (id == CSS_VAL_AUTO || id == CSS_VAL_NONE)
+            valid_primitive = true;
+        break;
     // End of CSS3 properties
 
 #if APPLE_CHANGES
index be5c8ae383ec9a1e8c410e5560cc8494574ec777..315550f5247eeaa68475c9f1d995054fe6276d52 100644 (file)
@@ -7,7 +7,7 @@ struct props {
     const char *name;
     int id;
 };
-/* maximum key range = 1258, duplicates = 0 */
+/* maximum key range = 1432, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -21,32 +21,32 @@ hash_prop (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263,    0, 1263, 1263, 1263, 1263,
-      1263,    0, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263,   15,   10,    0,
-         0,    0,  270,   50,    0,    0,    0,   10,    0,   10,
-       410,    0,   60,   50,    0,   30,    0,    5,   15,  260,
-       220,  190,   25, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
-      1263, 1263, 1263, 1263, 1263, 1263
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437,    0, 1437, 1437, 1437, 1437,
+      1437,    0, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437,   15,   10,    0,
+         0,    0,   15,  170,    0,    0,    0,   10,    0,   85,
+       390,    0,   60,   25,    0,   65,    0,   10,   10,  205,
+        80,  295,   10, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+      1437, 1437, 1437, 1437, 1437, 1437
     };
   register int hval = len;
 
@@ -130,278 +130,297 @@ findProp (register const char *str, register unsigned int len)
 {
   enum
     {
-      TOTAL_KEYWORDS = 132,
+      TOTAL_KEYWORDS = 134,
       MIN_WORD_LENGTH = 3,
       MAX_WORD_LENGTH = 32,
       MIN_HASH_VALUE = 5,
-      MAX_HASH_VALUE = 1262
+      MAX_HASH_VALUE = 1436
     };
 
   static const struct props wordlist_prop[] =
     {
       {"color", CSS_PROP_COLOR},
       {"border", CSS_PROP_BORDER},
+      {"left", CSS_PROP_LEFT},
       {"clear", CSS_PROP_CLEAR},
       {"border-color", CSS_PROP_BORDER_COLOR},
-      {"bottom", CSS_PROP_BOTTOM},
-      {"cursor", CSS_PROP_CURSOR},
-      {"border-bottom", CSS_PROP_BORDER_BOTTOM},
-      {"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
-      {"right", CSS_PROP_RIGHT},
-      {"height", CSS_PROP_HEIGHT},
-      {"size", CSS_PROP_SIZE},
+      {"float", CSS_PROP_FLOAT},
+      {"border-left", CSS_PROP_BORDER_LEFT},
+      {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
       {"top", CSS_PROP_TOP},
       {"clip", CSS_PROP_CLIP},
-      {"border-right", CSS_PROP_BORDER_RIGHT},
-      {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
+      {"size", CSS_PROP_SIZE},
       {"border-top", CSS_PROP_BORDER_TOP},
+      {"cursor", CSS_PROP_CURSOR},
       {"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
+      {"bottom", CSS_PROP_BOTTOM},
       {"quotes", CSS_PROP_QUOTES},
+      {"border-bottom", CSS_PROP_BORDER_BOTTOM},
+      {"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
       {"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
-      {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
-      {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
-      {"page", CSS_PROP_PAGE},
+      {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
       {"border-collapse", CSS_PROP_BORDER_COLLAPSE},
-      {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
-      {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
-      {"border-style", CSS_PROP_BORDER_STYLE},
-      {"table-layout", CSS_PROP_TABLE_LAYOUT},
-      {"visibility", CSS_PROP_VISIBILITY},
-      {"list-style", CSS_PROP_LIST_STYLE},
+      {"right", CSS_PROP_RIGHT},
+      {"height", CSS_PROP_HEIGHT},
+      {"border-right", CSS_PROP_BORDER_RIGHT},
+      {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
       {"width", CSS_PROP_WIDTH},
-      {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
-      {"opacity", CSS_PROP_OPACITY},
-      {"left", CSS_PROP_LEFT},
       {"border-width", CSS_PROP_BORDER_WIDTH},
-      {"float", CSS_PROP_FLOAT},
-      {"border-left", CSS_PROP_BORDER_LEFT},
-      {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
-      {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
-      {"empty-cells", CSS_PROP_EMPTY_CELLS},
-      {"display", CSS_PROP_DISPLAY},
-      {"max-height", CSS_PROP_MAX_HEIGHT},
-      {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
-      {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
-      {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
-      {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
-      {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
-      {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
+      {"overflow", CSS_PROP_OVERFLOW},
+      {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
+      {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
+      {"page", CSS_PROP_PAGE},
+      {"-khtml-user-select", CSS_PROP__KHTML_USER_SELECT},
+      {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
       {"-khtml-box-pack", CSS_PROP__KHTML_BOX_PACK},
+      {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
+      {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
+      {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
+      {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
+      {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
       {"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
-      {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
       {"white-space", CSS_PROP_WHITE_SPACE},
+      {"table-layout", CSS_PROP_TABLE_LAYOUT},
+      {"max-height", CSS_PROP_MAX_HEIGHT},
+      {"-khtml-user-drag", CSS_PROP__KHTML_USER_DRAG},
+      {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
+      {"text-shadow", CSS_PROP_TEXT_SHADOW},
+      {"opacity", CSS_PROP_OPACITY},
+      {"border-style", CSS_PROP_BORDER_STYLE},
+      {"visibility", CSS_PROP_VISIBILITY},
+      {"max-width", CSS_PROP_MAX_WIDTH},
       {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
-      {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
       {"direction", CSS_PROP_DIRECTION},
+      {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
+      {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
       {"outline", CSS_PROP_OUTLINE},
+      {"font", CSS_PROP_FONT},
       {"outline-color", CSS_PROP_OUTLINE_COLOR},
+      {"-khtml-flow-mode", CSS_PROP__KHTML_FLOW_MODE},
       {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
-      {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
+      {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
+      {"list-style", CSS_PROP_LIST_STYLE},
+      {"display", CSS_PROP_DISPLAY},
+      {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
+      {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
       {"counter-reset", CSS_PROP_COUNTER_RESET},
-      {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
-      {"line-height", CSS_PROP_LINE_HEIGHT},
-      {"min-height", CSS_PROP_MIN_HEIGHT},
-      {"margin", CSS_PROP_MARGIN},
+      {"widows", CSS_PROP_WIDOWS},
+      {"font-stretch", CSS_PROP_FONT_STRETCH},
+      {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
+      {"z-index", CSS_PROP_Z_INDEX},
+      {"font-size", CSS_PROP_FONT_SIZE},
+      {"text-decoration", CSS_PROP_TEXT_DECORATION},
+      {"text-decoration-color", CSS_PROP_TEXT_DECORATION_COLOR},
+      {"outline-offset", CSS_PROP_OUTLINE_OFFSET},
+      {"empty-cells", CSS_PROP_EMPTY_CELLS},
       {"position", CSS_PROP_POSITION},
-      {"background", CSS_PROP_BACKGROUND},
-      {"max-width", CSS_PROP_MAX_WIDTH},
-      {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
-      {"background-color", CSS_PROP_BACKGROUND_COLOR},
-      {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
-      {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
-      {"vertical-align", CSS_PROP_VERTICAL_ALIGN},
       {"orphans", CSS_PROP_ORPHANS},
+      {"-khtml-box-flex-group", CSS_PROP__KHTML_BOX_FLEX_GROUP},
       {"caption-side", CSS_PROP_CAPTION_SIDE},
-      {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
-      {"text-shadow", CSS_PROP_TEXT_SHADOW},
-      {"padding", CSS_PROP_PADDING},
+      {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
+      {"line-height", CSS_PROP_LINE_HEIGHT},
       {"-khtml-user-modify", CSS_PROP__KHTML_USER_MODIFY},
-      {"margin-right", CSS_PROP_MARGIN_RIGHT},
-      {"overflow", CSS_PROP_OVERFLOW},
-      {"margin-top", CSS_PROP_MARGIN_TOP},
-      {"widows", CSS_PROP_WIDOWS},
-      {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
-      {"padding-bottom", CSS_PROP_PADDING_BOTTOM},
-      {"-khtml-flow-mode", CSS_PROP__KHTML_FLOW_MODE},
-      {"letter-spacing", CSS_PROP_LETTER_SPACING},
-      {"border-spacing", CSS_PROP_BORDER_SPACING},
-      {"background-image", CSS_PROP_BACKGROUND_IMAGE},
+      {"font-size-adjust", CSS_PROP_FONT_SIZE_ADJUST},
+      {"-khtml-box-orient", CSS_PROP__KHTML_BOX_ORIENT},
+      {"-khtml-box-direction", CSS_PROP__KHTML_BOX_DIRECTION},
+      {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
+      {"vertical-align", CSS_PROP_VERTICAL_ALIGN},
+      {"background", CSS_PROP_BACKGROUND},
+      {"outline-width", CSS_PROP_OUTLINE_WIDTH},
+      {"background-color", CSS_PROP_BACKGROUND_COLOR},
+      {"padding", CSS_PROP_PADDING},
+      {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
+      {"min-height", CSS_PROP_MIN_HEIGHT},
+      {"-khtml-box-lines", CSS_PROP__KHTML_BOX_LINES},
+      {"padding-left", CSS_PROP_PADDING_LEFT},
+      {"text-transform", CSS_PROP_TEXT_TRANSFORM},
+      {"text-align", CSS_PROP_TEXT_ALIGN},
+      {"margin", CSS_PROP_MARGIN},
+      {"margin-left", CSS_PROP_MARGIN_LEFT},
+      {"min-width", CSS_PROP_MIN_WIDTH},
       {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
+      {"-apple-line-clamp", CSS_PROP__APPLE_LINE_CLAMP},
       {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
-      {"padding-right", CSS_PROP_PADDING_RIGHT},
       {"padding-top", CSS_PROP_PADDING_TOP},
+      {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
+      {"letter-spacing", CSS_PROP_LETTER_SPACING},
+      {"border-spacing", CSS_PROP_BORDER_SPACING},
+      {"margin-top", CSS_PROP_MARGIN_TOP},
+      {"padding-bottom", CSS_PROP_PADDING_BOTTOM},
       {"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
-      {"-apple-line-clamp", CSS_PROP__APPLE_LINE_CLAMP},
+      {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
       {"outline-style", CSS_PROP_OUTLINE_STYLE},
-      {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
-      {"text-decoration", CSS_PROP_TEXT_DECORATION},
-      {"z-index", CSS_PROP_Z_INDEX},
-      {"text-decoration-color", CSS_PROP_TEXT_DECORATION_COLOR},
-      {"-khtml-box-orient", CSS_PROP__KHTML_BOX_ORIENT},
-      {"-khtml-box-direction", CSS_PROP__KHTML_BOX_DIRECTION},
-      {"font", CSS_PROP_FONT},
-      {"outline-width", CSS_PROP_OUTLINE_WIDTH},
-      {"min-width", CSS_PROP_MIN_WIDTH},
-      {"text-align", CSS_PROP_TEXT_ALIGN},
-      {"-khtml-box-lines", CSS_PROP__KHTML_BOX_LINES},
-      {"font-stretch", CSS_PROP_FONT_STRETCH},
+      {"font-style", CSS_PROP_FONT_STYLE},
       {"-khtml-box-align", CSS_PROP__KHTML_BOX_ALIGN},
-      {"font-size", CSS_PROP_FONT_SIZE},
-      {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
-      {"margin-left", CSS_PROP_MARGIN_LEFT},
-      {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
-      {"font-size-adjust", CSS_PROP_FONT_SIZE_ADJUST},
-      {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
-      {"padding-left", CSS_PROP_PADDING_LEFT},
       {"content", CSS_PROP_CONTENT},
+      {"font-weight", CSS_PROP_FONT_WEIGHT},
+      {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
+      {"padding-right", CSS_PROP_PADDING_RIGHT},
+      {"font-family", CSS_PROP_FONT_FAMILY},
+      {"margin-right", CSS_PROP_MARGIN_RIGHT},
+      {"font-variant", CSS_PROP_FONT_VARIANT},
+      {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
+      {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
+      {"text-indent", CSS_PROP_TEXT_INDENT},
+      {"background-image", CSS_PROP_BACKGROUND_IMAGE},
       {"word-spacing", CSS_PROP_WORD_SPACING},
-      {"-khtml-box-flex-group", CSS_PROP__KHTML_BOX_FLEX_GROUP},
-      {"font-style", CSS_PROP_FONT_STYLE},
+      {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
       {"-khtml-binding", CSS_PROP__KHTML_BINDING},
       {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
-      {"text-transform", CSS_PROP_TEXT_TRANSFORM},
       {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
-      {"outline-offset", CSS_PROP_OUTLINE_OFFSET},
-      {"font-weight", CSS_PROP_FONT_WEIGHT},
       {"background-position", CSS_PROP_BACKGROUND_POSITION},
-      {"text-indent", CSS_PROP_TEXT_INDENT},
-      {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
-      {"font-variant", CSS_PROP_FONT_VARIANT},
-      {"font-family", CSS_PROP_FONT_FAMILY},
-      {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
       {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X},
-      {"counter-increment", CSS_PROP_COUNTER_INCREMENT}
+      {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
+      {"counter-increment", CSS_PROP_COUNTER_INCREMENT},
+      {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y}
     };
 
   static const short lookup[] =
     {
        -1,  -1,  -1,  -1,  -1,   0,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,   1,  -1,  -1,  -1,
-        2,  -1,   3,  -1,  -1,  -1,   4,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,   5,  -1,   6,  -1,  -1,  -1,  -1,  -1,   7,
-       -1,  -1,  -1,  -1,  -1,   8,   9,  -1,  -1,  10,
-       -1,  -1,  -1,  11,  12,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  13,  -1,  -1,  -1,  -1,  -1,  14,  -1,
-       15,  -1,  -1,  -1,  -1,  -1,  16,  -1,  -1,  -1,
-       -1,  17,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  18,  -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,  20,  21,
-       22,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,   1,  -1,  -1,   2,
+        3,  -1,   4,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,   5,   6,  -1,  -1,  -1,
+       -1,  -1,   7,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,   8,   9,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  10,
+       11,  12,  -1,  -1,  -1,  -1,  13,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  14,  -1,  -1,  -1,  -1,  15,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  16,  -1,
+       -1,  -1,  -1,  -1,  17,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  18,  -1,  -1,  -1,
+       19,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  20,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  21,  22,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  23,  -1,  -1,  -1,  -1,  -1,  24,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       25,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  26,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  27,  -1,
+       -1,  -1,  -1,  -1,  28,  -1,  -1,  29,  -1,  30,
+       -1,  -1,  -1,  31,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  32,  -1,  33,  -1,  -1,  -1,  -1,
+       -1,  34,  -1,  -1,  -1,  35,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  36,  -1,  -1,  -1,  37,  -1,  -1,  38,
+       -1,  39,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  40,  41,  -1,  -1,
+       42,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  43,  -1,  -1,  -1,  44,  45,  46,  -1,  -1,
+       -1,  -1,  47,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       48,  -1,  -1,  -1,  49,  -1,  -1,  50,  -1,  51,
+       -1,  -1,  52,  53,  -1,  -1,  -1,  54,  -1,  55,
+       -1,  -1,  -1,  56,  -1,  -1,  57,  -1,  -1,  -1,
+       -1,  -1,  58,  -1,  -1,  -1,  59,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  60,  -1,  -1,  -1,  -1,
+       -1,  -1,  61,  -1,  -1,  -1,  62,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  63,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  64,  -1,
+       -1,  65,  66,  -1,  67,  -1,  -1,  68,  -1,  69,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       70,  -1,  -1,  -1,  -1,  -1,  71,  -1,  -1,  72,
+       -1,  -1,  -1,  -1,  -1,  -1,  73,  -1,  -1,  -1,
+       -1,  -1,  -1,  74,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  75,  -1,  -1,
+       -1,  76,  77,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  78,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  79,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  80,  -1,  -1,  81,  -1,  -1,  -1,
+       -1,  -1,  82,  -1,  -1,  83,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       84,  -1,  -1,  -1,  85,  86,  -1,  -1,  87,  -1,
+       -1,  88,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  89,  -1,  90,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  91,  92,  -1,  -1,  -1,
+       -1,  -1,  93,  -1,  94,  95,  96,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  97,  -1,  -1,  98,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  99,  -1,  -1,
+       -1,  -1, 100,  -1,  -1, 101, 102,  -1,  -1,  -1,
+       -1, 103,  -1,  -1, 104,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1, 105,  -1,  -1,  -1,  -1,  -1,
+      106,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1, 107,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1, 108,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 109,  -1,
+       -1,  -1,  -1, 110,  -1, 111, 112,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 113,  -1,  -1,
+       -1, 114,  -1,  -1,  -1, 115,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 116,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 117,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1, 118,  -1,  -1,  -1,  -1, 119,  -1,  -1,
+       -1,  -1,  -1,  -1, 120,  -1,  -1,  -1,  -1,  -1,
+      121,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 122,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       23,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 123,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 124,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       24,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  25,  -1,  -1,  -1,  -1,  26,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  27,  -1,  -1,  -1,  -1,
-       28,  -1,  -1,  -1,  -1,  29,  -1,  -1,  -1,  30,
-       -1,  -1,  31,  -1,  32,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  33,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       34,  35,  -1,  -1,  -1,  -1,  -1,  36,  37,  -1,
-       -1,  38,  39,  -1,  -1,  40,  41,  -1,  -1,  42,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 125,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  43,  -1,
-       44,  45,  -1,  -1,  -1,  -1,  46,  -1,  -1,  -1,
-       47,  48,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       49,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  50,  -1,  -1,  -1,
-       -1,  -1,  51,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  52,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  53,
-       -1,  -1,  54,  -1,  -1,  -1,  -1,  -1,  55,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  56,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  57,  58,  -1,
-       -1,  59,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  60,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       61,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  62,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  63,  -1,
-       64,  -1,  -1,  -1,  65,  66,  67,  68,  69,  70,
-       -1,  -1,  71,  -1,  -1,  -1,  -1,  72,  -1,  -1,
-       -1,  -1,  -1,  -1,  73,  -1,  74,  -1,  -1,  -1,
-       -1,  -1,  75,  76,  -1,  -1,  -1,  77,  -1,  -1,
-       -1,  -1,  -1,  78,  -1,  79,  80,  81,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  82,
-       -1,  -1,  -1,  -1,  -1,  -1,  83,  -1,  -1,  84,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  85,
-       -1,  86,  87,  -1,  -1,  88,  -1,  -1,  89,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  90,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  91,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  92,  93,  -1,
-       -1,  -1,  -1,  -1,  -1,  94,  -1,  -1,  -1,  -1,
-       95,  -1,  96,  -1,  -1,  -1,  97,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  98,  -1,  -1,
-       99,  -1,  -1,  -1, 100,  -1,  -1,  -1, 101, 102,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 103, 104,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1, 105,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1, 106,  -1,  -1, 107,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 108,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 109,  -1,  -1, 110,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 126,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1, 111,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 112,  -1,  -1, 113,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1, 114,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1, 115,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 127,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 128,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 129,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 116,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      117,  -1,  -1,  -1, 118,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 119,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 120,
-       -1, 121,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 122,
-       -1, 123,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 124,
+       -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,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1, 131,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1, 125,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1, 126,  -1,  -1,
+       -1,  -1, 132,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1, 127,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 128,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1, 129,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -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, 131
+       -1,  -1,  -1,  -1,  -1,  -1, 133
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -495,7 +514,6 @@ static const char * const propertyList[] = {
 "-khtml-marquee-repetition", 
 "-khtml-marquee-speed", 
 "-khtml-marquee-style", 
-"-khtml-user-modify", 
 "max-height", 
 "max-width", 
 "min-height", 
@@ -528,6 +546,9 @@ static const char * const propertyList[] = {
 "text-transform", 
 "top", 
 "unicode-bidi", 
+"-khtml-user-drag", 
+"-khtml-user-modify", 
+"-khtml-user-select", 
 "vertical-align", 
 "visibility", 
 "white-space", 
index f2c90c13c7d7a0bc88a74e950d95028a6e855be0..6df9757ed3bdbabf6a57bfe2fb2da60dca2191aa 100644 (file)
 #define CSS_PROP__KHTML_MARQUEE_REPETITION 68
 #define CSS_PROP__KHTML_MARQUEE_SPEED 69
 #define CSS_PROP__KHTML_MARQUEE_STYLE 70
-#define CSS_PROP__KHTML_USER_MODIFY 71
-#define CSS_PROP_MAX_HEIGHT 72
-#define CSS_PROP_MAX_WIDTH 73
-#define CSS_PROP_MIN_HEIGHT 74
-#define CSS_PROP_MIN_WIDTH 75
-#define CSS_PROP_OPACITY 76
-#define CSS_PROP_ORPHANS 77
-#define CSS_PROP_OUTLINE_COLOR 78
-#define CSS_PROP_OUTLINE_OFFSET 79
-#define CSS_PROP_OUTLINE_STYLE 80
-#define CSS_PROP_OUTLINE_WIDTH 81
-#define CSS_PROP_OVERFLOW 82
-#define CSS_PROP_PADDING_TOP 83
-#define CSS_PROP_PADDING_RIGHT 84
-#define CSS_PROP_PADDING_BOTTOM 85
-#define CSS_PROP_PADDING_LEFT 86
-#define CSS_PROP_PAGE 87
-#define CSS_PROP_PAGE_BREAK_AFTER 88
-#define CSS_PROP_PAGE_BREAK_BEFORE 89
-#define CSS_PROP_PAGE_BREAK_INSIDE 90
-#define CSS_PROP_POSITION 91
-#define CSS_PROP_QUOTES 92
-#define CSS_PROP_RIGHT 93
-#define CSS_PROP_SIZE 94
-#define CSS_PROP_TABLE_LAYOUT 95
-#define CSS_PROP_TEXT_ALIGN 96
-#define CSS_PROP_TEXT_DECORATION 97
-#define CSS_PROP_TEXT_DECORATION_COLOR 98
-#define CSS_PROP_TEXT_INDENT 99
-#define CSS_PROP_TEXT_SHADOW 100
-#define CSS_PROP_TEXT_TRANSFORM 101
-#define CSS_PROP_TOP 102
-#define CSS_PROP_UNICODE_BIDI 103
-#define CSS_PROP_VERTICAL_ALIGN 104
-#define CSS_PROP_VISIBILITY 105
-#define CSS_PROP_WHITE_SPACE 106
-#define CSS_PROP_WIDOWS 107
-#define CSS_PROP_WIDTH 108
-#define CSS_PROP_WORD_SPACING 109
-#define CSS_PROP_Z_INDEX 110
-#define CSS_PROP_BACKGROUND 111
-#define CSS_PROP_BORDER 112
-#define CSS_PROP_BORDER_COLOR 113
-#define CSS_PROP_BORDER_STYLE 114
-#define CSS_PROP_BORDER_TOP 115
-#define CSS_PROP_BORDER_RIGHT 116
-#define CSS_PROP_BORDER_BOTTOM 117
-#define CSS_PROP_BORDER_LEFT 118
-#define CSS_PROP_BORDER_WIDTH 119
-#define CSS_PROP_FONT 120
-#define CSS_PROP_LIST_STYLE 121
-#define CSS_PROP_MARGIN 122
-#define CSS_PROP_OUTLINE 123
-#define CSS_PROP_PADDING 124
-#define CSS_PROP_SCROLLBAR_FACE_COLOR 125
-#define CSS_PROP_SCROLLBAR_SHADOW_COLOR 126
-#define CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR 127
-#define CSS_PROP_SCROLLBAR_3DLIGHT_COLOR 128
-#define CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR 129
-#define CSS_PROP_SCROLLBAR_TRACK_COLOR 130
-#define CSS_PROP_SCROLLBAR_ARROW_COLOR 131
-#define CSS_PROP__KHTML_FLOW_MODE 132
+#define CSS_PROP_MAX_HEIGHT 71
+#define CSS_PROP_MAX_WIDTH 72
+#define CSS_PROP_MIN_HEIGHT 73
+#define CSS_PROP_MIN_WIDTH 74
+#define CSS_PROP_OPACITY 75
+#define CSS_PROP_ORPHANS 76
+#define CSS_PROP_OUTLINE_COLOR 77
+#define CSS_PROP_OUTLINE_OFFSET 78
+#define CSS_PROP_OUTLINE_STYLE 79
+#define CSS_PROP_OUTLINE_WIDTH 80
+#define CSS_PROP_OVERFLOW 81
+#define CSS_PROP_PADDING_TOP 82
+#define CSS_PROP_PADDING_RIGHT 83
+#define CSS_PROP_PADDING_BOTTOM 84
+#define CSS_PROP_PADDING_LEFT 85
+#define CSS_PROP_PAGE 86
+#define CSS_PROP_PAGE_BREAK_AFTER 87
+#define CSS_PROP_PAGE_BREAK_BEFORE 88
+#define CSS_PROP_PAGE_BREAK_INSIDE 89
+#define CSS_PROP_POSITION 90
+#define CSS_PROP_QUOTES 91
+#define CSS_PROP_RIGHT 92
+#define CSS_PROP_SIZE 93
+#define CSS_PROP_TABLE_LAYOUT 94
+#define CSS_PROP_TEXT_ALIGN 95
+#define CSS_PROP_TEXT_DECORATION 96
+#define CSS_PROP_TEXT_DECORATION_COLOR 97
+#define CSS_PROP_TEXT_INDENT 98
+#define CSS_PROP_TEXT_SHADOW 99
+#define CSS_PROP_TEXT_TRANSFORM 100
+#define CSS_PROP_TOP 101
+#define CSS_PROP_UNICODE_BIDI 102
+#define CSS_PROP__KHTML_USER_DRAG 103
+#define CSS_PROP__KHTML_USER_MODIFY 104
+#define CSS_PROP__KHTML_USER_SELECT 105
+#define CSS_PROP_VERTICAL_ALIGN 106
+#define CSS_PROP_VISIBILITY 107
+#define CSS_PROP_WHITE_SPACE 108
+#define CSS_PROP_WIDOWS 109
+#define CSS_PROP_WIDTH 110
+#define CSS_PROP_WORD_SPACING 111
+#define CSS_PROP_Z_INDEX 112
+#define CSS_PROP_BACKGROUND 113
+#define CSS_PROP_BORDER 114
+#define CSS_PROP_BORDER_COLOR 115
+#define CSS_PROP_BORDER_STYLE 116
+#define CSS_PROP_BORDER_TOP 117
+#define CSS_PROP_BORDER_RIGHT 118
+#define CSS_PROP_BORDER_BOTTOM 119
+#define CSS_PROP_BORDER_LEFT 120
+#define CSS_PROP_BORDER_WIDTH 121
+#define CSS_PROP_FONT 122
+#define CSS_PROP_LIST_STYLE 123
+#define CSS_PROP_MARGIN 124
+#define CSS_PROP_OUTLINE 125
+#define CSS_PROP_PADDING 126
+#define CSS_PROP_SCROLLBAR_FACE_COLOR 127
+#define CSS_PROP_SCROLLBAR_SHADOW_COLOR 128
+#define CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR 129
+#define CSS_PROP_SCROLLBAR_3DLIGHT_COLOR 130
+#define CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR 131
+#define CSS_PROP_SCROLLBAR_TRACK_COLOR 132
+#define CSS_PROP_SCROLLBAR_ARROW_COLOR 133
+#define CSS_PROP__KHTML_FLOW_MODE 134
 
 #define CSS_PROP_MAX CSS_PROP_Z_INDEX
-#define CSS_PROP_TOTAL 133
+#define CSS_PROP_TOTAL 135
 #endif
 
index 336fe1d9fd022abd425970652e007024875bdf54..a450648299254ac39f0f475e53a04b70c4fe6421 100644 (file)
@@ -82,7 +82,6 @@ margin-left
 -khtml-marquee-repetition
 -khtml-marquee-speed
 -khtml-marquee-style
--khtml-user-modify
 max-height
 max-width
 min-height
@@ -115,6 +114,9 @@ text-shadow
 text-transform
 top
 unicode-bidi
+-khtml-user-drag
+-khtml-user-modify
+-khtml-user-select
 vertical-align
 visibility
 white-space
index 64bfdf61033d29043c48eeefe69306a812d6b650..16248fa4ae95f813b7037025bb84f070d701f5b2 100644 (file)
@@ -3542,6 +3542,22 @@ void CSSStyleSelector::applyProperty( int id, DOM::CSSValueImpl *value )
         }
         break;
     }
+    case CSS_PROP__KHTML_USER_DRAG: {
+        HANDLE_INHERIT_AND_INITIAL(userDrag, UserDrag)      
+        if (!primitiveValue || !primitiveValue->getIdent())
+            return;
+        switch (primitiveValue->getIdent()) {
+            case CSS_VAL_AUTO:
+                style->setUserDrag(DRAG_AUTO);
+                break;
+            case CSS_VAL_NONE:
+                style->setUserDrag(DRAG_NONE);
+                break;
+            default:
+                style->setUserDrag(DRAG_ELEMENT);
+        }
+        break;
+    }
     case CSS_PROP__KHTML_USER_MODIFY: {
         HANDLE_INHERIT_AND_INITIAL(userModify, UserModify)      
         if (!primitiveValue || !primitiveValue->getIdent())
@@ -3549,6 +3565,13 @@ void CSSStyleSelector::applyProperty( int id, DOM::CSSValueImpl *value )
         style->setUserModify(EUserModify(primitiveValue->getIdent() - CSS_VAL_READ_ONLY));
         break;
     }
+    case CSS_PROP__KHTML_USER_SELECT: {
+        HANDLE_INHERIT_AND_INITIAL(userSelect, UserSelect)      
+        if (!primitiveValue || !primitiveValue->getIdent())
+            return;
+        style->setUserSelect(primitiveValue->getIdent() == CSS_VAL_AUTO);
+        break;
+    }
         
 #if APPLE_CHANGES
     // Apple-specific changes.  Do not merge these properties into KHTML.
index fd6e5b46c99730910f78b13a21e9cc3e45b19e90..8ae895a39dc32b692164d69528015343a11719f4 100644 (file)
@@ -7,7 +7,7 @@ struct css_value {
     const char *name;
     int id;
 };
-/* maximum key range = 1609, duplicates = 1 */
+/* maximum key range = 3149, duplicates = 1 */
 
 #ifdef __GNUC__
 __inline
@@ -21,32 +21,32 @@ hash_val (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609,   25, 1609, 1609,    0,   10,
-        15,   20,   25,   30,   35,   45,    5,    0, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609,    0,   73,  242,
-        15,    4,   30,  250,  145,   65,    0,  215,    0,  153,
-        40,    5,  200,  120,  135,   10,    0,  154,  113,  201,
-       190,  234,  144, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
-      1609, 1609, 1609, 1609, 1609, 1609
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149,   15, 3149, 3149,    0,    5,
+        10,   15,   20,   25,   30,   35,   40,    0, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149,    0,  163,  355,
+        60,  215,  510,  315,  270,   35,    0,  505,    0,    3,
+        55,   45,  165,  135,  280,   10,    0,  375,   28,    6,
+       505,  110,  178, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149,
+      3149, 3149, 3149, 3149, 3149, 3149
     };
   register int hval = 0;
 
@@ -110,460 +110,586 @@ findValue (register const char *str, register unsigned int len)
 {
   enum
     {
-      TOTAL_KEYWORDS = 257,
+      TOTAL_KEYWORDS = 258,
       MIN_WORD_LENGTH = 2,
       MAX_WORD_LENGTH = 22,
       MIN_HASH_VALUE = 0,
-      MAX_HASH_VALUE = 1608
+      MAX_HASH_VALUE = 3148
     };
 
   static const struct css_value wordlist_value[] =
     {
       {"900", CSS_VAL_900},
-      {"teal", CSS_VAL_TEAL},
-      {"800", CSS_VAL_800},
       {"100", CSS_VAL_100},
       {"200", CSS_VAL_200},
+      {"small", CSS_VAL_SMALL},
       {"300", CSS_VAL_300},
       {"400", CSS_VAL_400},
       {"500", CSS_VAL_500},
-      {"left", CSS_VAL_LEFT},
       {"600", CSS_VAL_600},
-      {"dotted", CSS_VAL_DOTTED},
-      {"fast", CSS_VAL_FAST},
       {"700", CSS_VAL_700},
-      {"end", CSS_VAL_END},
-      {"table", CSS_VAL_TABLE},
-      {"none", CSS_VAL_NONE},
-      {"bold", CSS_VAL_BOLD},
-      {"slide", CSS_VAL_SLIDE},
+      {"800", CSS_VAL_800},
+      {"wait", CSS_VAL_WAIT},
+      {"slow", CSS_VAL_SLOW},
+      {"always", CSS_VAL_ALWAYS},
       {"solid", CSS_VAL_SOLID},
-      {"inset", CSS_VAL_INSET},
-      {"level", CSS_VAL_LEVEL},
-      {"ltr", CSS_VAL_LTR},
-      {"rtl", CSS_VAL_RTL},
-      {"start", CSS_VAL_START},
-      {"red", CSS_VAL_RED},
-      {"auto", CSS_VAL_AUTO},
-      {"small", CSS_VAL_SMALL},
-      {"ahead", CSS_VAL_AHEAD},
-      {"outset", CSS_VAL_OUTSET},
-      {"loud", CSS_VAL_LOUD},
-      {"alternate", CSS_VAL_ALTERNATE},
-      {"olive", CSS_VAL_OLIVE},
-      {"dashed", CSS_VAL_DASHED},
-      {"text", CSS_VAL_TEXT},
-      {"above", CSS_VAL_ABOVE},
-      {"baseline", CSS_VAL_BASELINE},
+      {"initial", CSS_VAL_INITIAL},
+      {"down", CSS_VAL_DOWN},
       {"avoid", CSS_VAL_AVOID},
-      {"inside", CSS_VAL_INSIDE},
-      {"hand", CSS_VAL_HAND},
-      {"default", CSS_VAL_DEFAULT},
+      {"navy", CSS_VAL_NAVY},
+      {"window", CSS_VAL_WINDOW},
       {"top", CSS_VAL_TOP},
-      {"inline", CSS_VAL_INLINE},
-      {"slow", CSS_VAL_SLOW},
+      {"teal", CSS_VAL_TEAL},
       {"lime", CSS_VAL_LIME},
-      {"both", CSS_VAL_BOTH},
-      {"hide", CSS_VAL_HIDE},
-      {"blue", CSS_VAL_BLUE},
-      {"bolder", CSS_VAL_BOLDER},
-      {"initial", CSS_VAL_INITIAL},
       {"bottom", CSS_VAL_BOTTOM},
-      {"sub", CSS_VAL_SUB},
-      {"serif", CSS_VAL_SERIF},
-      {"absolute", CSS_VAL_ABSOLUTE},
-      {"embed", CSS_VAL_EMBED},
-      {"thin", CSS_VAL_THIN},
-      {"double", CSS_VAL_DOUBLE},
-      {"middle", CSS_VAL_MIDDLE},
-      {"outside", CSS_VAL_OUTSIDE},
-      {"down", CSS_VAL_DOWN},
-      {"wait", CSS_VAL_WAIT},
-      {"aqua", CSS_VAL_AQUA},
+      {"bold", CSS_VAL_BOLD},
+      {"ltr", CSS_VAL_LTR},
+      {"rtl", CSS_VAL_RTL},
+      {"start", CSS_VAL_START},
       {"move", CSS_VAL_MOVE},
-      {"below", CSS_VAL_BELOW},
-      {"hidden", CSS_VAL_HIDDEN},
-      {"smaller", CSS_VAL_SMALLER},
-      {"fixed", CSS_VAL_FIXED},
-      {"infinite", CSS_VAL_INFINITE},
-      {"fantasy", CSS_VAL_FANTASY},
-      {"inline-table", CSS_VAL_INLINE_TABLE},
-      {"static", CSS_VAL_STATIC},
-      {"relative", CSS_VAL_RELATIVE},
       {"list-item", CSS_VAL_LIST_ITEM},
-      {"silver", CSS_VAL_SILVER},
-      {"sans-serif", CSS_VAL_SANS_SERIF},
-      {"visible", CSS_VAL_VISIBLE},
-      {"disc", CSS_VAL_DISC},
+      {"inset", CSS_VAL_INSET},
+      {"slide", CSS_VAL_SLIDE},
+      {"olive", CSS_VAL_OLIVE},
+      {"end", CSS_VAL_END},
+      {"show", CSS_VAL_SHOW},
+      {"thin", CSS_VAL_THIN},
+      {"none", CSS_VAL_NONE},
+      {"middle", CSS_VAL_MIDDLE},
+      {"yellow", CSS_VAL_YELLOW},
+      {"table", CSS_VAL_TABLE},
+      {"dotted", CSS_VAL_DOTTED},
       {"normal", CSS_VAL_NORMAL},
-      {"infotext", CSS_VAL_INFOTEXT},
+      {"hand", CSS_VAL_HAND},
+      {"inline", CSS_VAL_INLINE},
+      {"static", CSS_VAL_STATIC},
+      {"inside", CSS_VAL_INSIDE},
+      {"auto", CSS_VAL_AUTO},
+      {"italic", CSS_VAL_ITALIC},
       {"maroon", CSS_VAL_MAROON},
-      {"pre", CSS_VAL_PRE},
-      {"repeat", CSS_VAL_REPEAT},
-      {"lower", CSS_VAL_LOWER},
-      {"table-cell", CSS_VAL_TABLE_CELL},
-      {"help", CSS_VAL_HELP},
-      {"menu", CSS_VAL_MENU},
+      {"below", CSS_VAL_BELOW},
+      {"above", CSS_VAL_ABOVE},
+      {"level", CSS_VAL_LEVEL},
+      {"disc", CSS_VAL_DISC},
+      {"both", CSS_VAL_BOTH},
+      {"loud", CSS_VAL_LOUD},
+      {"visible", CSS_VAL_VISIBLE},
       {"icon", CSS_VAL_ICON},
-      {"separate", CSS_VAL_SEPARATE},
+      {"smaller", CSS_VAL_SMALLER},
+      {"aqua", CSS_VAL_AQUA},
+      {"fast", CSS_VAL_FAST},
+      {"white", CSS_VAL_WHITE},
+      {"x-small", CSS_VAL_X_SMALL},
       {"up", CSS_VAL_UP},
+      {"mix", CSS_VAL_MIX},
+      {"ahead", CSS_VAL_AHEAD},
+      {"lower", CSS_VAL_LOWER},
+      {"sub", CSS_VAL_SUB},
+      {"nowrap", CSS_VAL_NOWRAP},
+      {"red", CSS_VAL_RED},
+      {"small-caps", CSS_VAL_SMALL_CAPS},
+      {"silver", CSS_VAL_SILVER},
+      {"hide", CSS_VAL_HIDE},
+      {"wider", CSS_VAL_WIDER},
       {"invert", CSS_VAL_INVERT},
-      {"show", CSS_VAL_SHOW},
-      {"overline", CSS_VAL_OVERLINE},
+      {"dashed", CSS_VAL_DASHED},
       {"single", CSS_VAL_SINGLE},
-      {"italic", CSS_VAL_ITALIC},
-      {"condensed", CSS_VAL_CONDENSED},
-      {"x-small", CSS_VAL_X_SMALL},
-      {"navy", CSS_VAL_NAVY},
-      {"large", CSS_VAL_LARGE},
-      {"e-resize", CSS_VAL_E_RESIZE},
+      {"armenian", CSS_VAL_ARMENIAN},
+      {"outset", CSS_VAL_OUTSET},
+      {"menu", CSS_VAL_MENU},
+      {"help", CSS_VAL_HELP},
+      {"lower-latin", CSS_VAL_LOWER_LATIN},
+      {"caption", CSS_VAL_CAPTION},
+      {"embed", CSS_VAL_EMBED},
+      {"pre", CSS_VAL_PRE},
+      {"decimal", CSS_VAL_DECIMAL},
+      {"overlay", CSS_VAL_OVERLAY},
+      {"small-caption", CSS_VAL_SMALL_CAPTION},
+      {"fantasy", CSS_VAL_FANTASY},
       {"scroll", CSS_VAL_SCROLL},
-      {"blink", CSS_VAL_BLINK},
-      {"s-resize", CSS_VAL_S_RESIZE},
-      {"se-resize", CSS_VAL_SE_RESIZE},
+      {"medium", CSS_VAL_MEDIUM},
+      {"baseline", CSS_VAL_BASELINE},
+      {"hidden", CSS_VAL_HIDDEN},
       {"cross", CSS_VAL_CROSS},
-      {"reverse", CSS_VAL_REVERSE},
-      {"status-bar", CSS_VAL_STATUS_BAR},
-      {"mix", CSS_VAL_MIX},
-      {"no-repeat", CSS_VAL_NO_REPEAT},
-      {"white", CSS_VAL_WHITE},
-      {"wider", CSS_VAL_WIDER},
-      {"oblique", CSS_VAL_OBLIQUE},
-      {"square", CSS_VAL_SQUARE},
-      {"text-top", CSS_VAL_TEXT_TOP},
-      {"center", CSS_VAL_CENTER},
-      {"n-resize", CSS_VAL_N_RESIZE},
-      {"ne-resize", CSS_VAL_NE_RESIZE},
-      {"green", CSS_VAL_GREEN},
-      {"orange", CSS_VAL_ORANGE},
-      {"armenian", CSS_VAL_ARMENIAN},
+      {"element", CSS_VAL_ELEMENT},
+      {"gray", CSS_VAL_GRAY},
+      {"text", CSS_VAL_TEXT},
       {"table-row", CSS_VAL_TABLE_ROW},
-      {"yellow", CSS_VAL_YELLOW},
-      {"always", CSS_VAL_ALWAYS},
-      {"pointer", CSS_VAL_POINTER},
-      {"inherit", CSS_VAL_INHERIT},
-      {"text-bottom", CSS_VAL_TEXT_BOTTOM},
-      {"underline", CSS_VAL_UNDERLINE},
+      {"left", CSS_VAL_LEFT},
+      {"outside", CSS_VAL_OUTSIDE},
+      {"blue", CSS_VAL_BLUE},
+      {"blink", CSS_VAL_BLINK},
+      {"bolder", CSS_VAL_BOLDER},
+      {"alternate", CSS_VAL_ALTERNATE},
+      {"relative", CSS_VAL_RELATIVE},
       {"read-only", CSS_VAL_READ_ONLY},
-      {"run-in", CSS_VAL_RUN_IN},
+      {"inline-table", CSS_VAL_INLINE_TABLE},
       {"collapse", CSS_VAL_COLLAPSE},
-      {"buttontext", CSS_VAL_BUTTONTEXT},
-      {"expanded", CSS_VAL_EXPANDED},
-      {"ridge", CSS_VAL_RIDGE},
-      {"katakana", CSS_VAL_KATAKANA},
-      {"lower-latin", CSS_VAL_LOWER_LATIN},
-      {"decimal", CSS_VAL_DECIMAL},
-      {"overlay", CSS_VAL_OVERLAY},
-      {"justify", CSS_VAL_JUSTIFY},
-      {"super", CSS_VAL_SUPER},
-      {"inline-axis", CSS_VAL_INLINE_AXIS},
+      {"multiple", CSS_VAL_MULTIPLE},
+      {"pointer", CSS_VAL_POINTER},
+      {"portrait", CSS_VAL_PORTRAIT},
+      {"absolute", CSS_VAL_ABSOLUTE},
+      {"large", CSS_VAL_LARGE},
+      {"run-in", CSS_VAL_RUN_IN},
+      {"crop", CSS_VAL_CROP},
+      {"status-bar", CSS_VAL_STATUS_BAR},
+      {"double", CSS_VAL_DOUBLE},
       {"landscape", CSS_VAL_LANDSCAPE},
-      {"groove", CSS_VAL_GROOVE},
-      {"unfurl", CSS_VAL_UNFURL},
-      {"larger", CSS_VAL_LARGER},
-      {"window", CSS_VAL_WINDOW},
-      {"black", CSS_VAL_BLACK},
-      {"forwards", CSS_VAL_FORWARDS},
-      {"block", CSS_VAL_BLOCK},
-      {"stretch", CSS_VAL_STRETCH},
+      {"overline", CSS_VAL_OVERLINE},
+      {"repeat", CSS_VAL_REPEAT},
+      {"separate", CSS_VAL_SEPARATE},
+      {"inherit", CSS_VAL_INHERIT},
+      {"monospace", CSS_VAL_MONOSPACE},
+      {"right", CSS_VAL_RIGHT},
+      {"ridge", CSS_VAL_RIDGE},
       {"horizontal", CSS_VAL_HORIZONTAL},
-      {"portrait", CSS_VAL_PORTRAIT},
-      {"medium", CSS_VAL_MEDIUM},
-      {"menutext", CSS_VAL_MENUTEXT},
-      {"buttonface", CSS_VAL_BUTTONFACE},
-      {"caption", CSS_VAL_CAPTION},
-      {"open-quote", CSS_VAL_OPEN_QUOTE},
-      {"repeat-x", CSS_VAL_REPEAT_X},
+      {"orange", CSS_VAL_ORANGE},
       {"vertical", CSS_VAL_VERTICAL},
-      {"hebrew", CSS_VAL_HEBREW},
-      {"transparent", CSS_VAL_TRANSPARENT},
-      {"xx-small", CSS_VAL_XX_SMALL},
-      {"close-quote", CSS_VAL_CLOSE_QUOTE},
-      {"marquee", CSS_VAL_MARQUEE},
-      {"multiple", CSS_VAL_MULTIPLE},
-      {"threedface", CSS_VAL_THREEDFACE},
-      {"nowrap", CSS_VAL_NOWRAP},
-      {"crop", CSS_VAL_CROP},
-      {"read-write", CSS_VAL_READ_WRITE},
+      {"grey", CSS_VAL_GREY},
+      {"compact", CSS_VAL_COMPACT},
+      {"windowtext", CSS_VAL_WINDOWTEXT},
+      {"groove", CSS_VAL_GROOVE},
+      {"infinite", CSS_VAL_INFINITE},
+      {"lower-roman", CSS_VAL_LOWER_ROMAN},
+      {"text-top", CSS_VAL_TEXT_TOP},
       {"w-resize", CSS_VAL_W_RESIZE},
-      {"right", CSS_VAL_RIGHT},
-      {"-khtml-left", CSS_VAL__KHTML_LEFT},
+      {"hiragana", CSS_VAL_HIRAGANA},
+      {"s-resize", CSS_VAL_S_RESIZE},
+      {"inline-axis", CSS_VAL_INLINE_AXIS},
+      {"table-cell", CSS_VAL_TABLE_CELL},
       {"sw-resize", CSS_VAL_SW_RESIZE},
-      {"lighter", CSS_VAL_LIGHTER},
-      {"scrollbar", CSS_VAL_SCROLLBAR},
-      {"lowercase", CSS_VAL_LOWERCASE},
+      {"oblique", CSS_VAL_OBLIQUE},
+      {"capitalize", CSS_VAL_CAPITALIZE},
+      {"no-repeat", CSS_VAL_NO_REPEAT},
+      {"text-bottom", CSS_VAL_TEXT_BOTTOM},
+      {"lower-alpha", CSS_VAL_LOWER_ALPHA},
       {"repeat-y", CSS_VAL_REPEAT_Y},
-      {"x-large", CSS_VAL_X_LARGE},
-      {"gray", CSS_VAL_GRAY},
-      {"grey", CSS_VAL_GREY},
-      {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
+      {"n-resize", CSS_VAL_N_RESIZE},
       {"nw-resize", CSS_VAL_NW_RESIZE},
-      {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
-      {"hiragana", CSS_VAL_HIRAGANA},
-      {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
-      {"small-caps", CSS_VAL_SMALL_CAPS},
-      {"fuchsia", CSS_VAL_FUCHSIA},
+      {"square", CSS_VAL_SQUARE},
+      {"black", CSS_VAL_BLACK},
       {"buttonshadow", CSS_VAL_BUTTONSHADOW},
+      {"xx-small", CSS_VAL_XX_SMALL},
+      {"justify", CSS_VAL_JUSTIFY},
+      {"super", CSS_VAL_SUPER},
       {"table-caption", CSS_VAL_TABLE_CAPTION},
+      {"serif", CSS_VAL_SERIF},
+      {"transparent", CSS_VAL_TRANSPARENT},
+      {"katakana", CSS_VAL_KATAKANA},
+      {"block", CSS_VAL_BLOCK},
+      {"condensed", CSS_VAL_CONDENSED},
+      {"green", CSS_VAL_GREEN},
+      {"larger", CSS_VAL_LARGER},
+      {"read-write", CSS_VAL_READ_WRITE},
+      {"lighter", CSS_VAL_LIGHTER},
+      {"center", CSS_VAL_CENTER},
+      {"lowercase", CSS_VAL_LOWERCASE},
+      {"stretch", CSS_VAL_STRETCH},
+      {"scrollbar", CSS_VAL_SCROLLBAR},
+      {"sans-serif", CSS_VAL_SANS_SERIF},
+      {"hebrew", CSS_VAL_HEBREW},
+      {"default", CSS_VAL_DEFAULT},
       {"narrower", CSS_VAL_NARROWER},
-      {"monospace", CSS_VAL_MONOSPACE},
+      {"e-resize", CSS_VAL_E_RESIZE},
       {"thick", CSS_VAL_THICK},
-      {"threedshadow", CSS_VAL_THREEDSHADOW},
-      {"circle", CSS_VAL_CIRCLE},
-      {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
+      {"se-resize", CSS_VAL_SE_RESIZE},
+      {"-khtml-body", CSS_VAL__KHTML_BODY},
+      {"forwards", CSS_VAL_FORWARDS},
       {"purple", CSS_VAL_PURPLE},
+      {"windowframe", CSS_VAL_WINDOWFRAME},
+      {"ne-resize", CSS_VAL_NE_RESIZE},
+      {"marquee", CSS_VAL_MARQUEE},
       {"table-column", CSS_VAL_TABLE_COLUMN},
-      {"lower-roman", CSS_VAL_LOWER_ROMAN},
-      {"lower-alpha", CSS_VAL_LOWER_ALPHA},
-      {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
-      {"capitalize", CSS_VAL_CAPITALIZE},
-      {"windowtext", CSS_VAL_WINDOWTEXT},
       {"-khtml-auto", CSS_VAL__KHTML_AUTO},
+      {"circle", CSS_VAL_CIRCLE},
+      {"reverse", CSS_VAL_REVERSE},
+      {"georgian", CSS_VAL_GEORGIAN},
+      {"open-quote", CSS_VAL_OPEN_QUOTE},
+      {"expanded", CSS_VAL_EXPANDED},
+      {"crosshair", CSS_VAL_CROSSHAIR},
+      {"activecaption", CSS_VAL_ACTIVECAPTION},
+      {"underline", CSS_VAL_UNDERLINE},
       {"cursive", CSS_VAL_CURSIVE},
-      {"message-box", CSS_VAL_MESSAGE_BOX},
-      {"semi-expanded", CSS_VAL_SEMI_EXPANDED},
-      {"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
-      {"small-caption", CSS_VAL_SMALL_CAPTION},
-      {"higher", CSS_VAL_HIGHER},
+      {"upper-latin", CSS_VAL_UPPER_LATIN},
+      {"fixed", CSS_VAL_FIXED},
+      {"x-large", CSS_VAL_X_LARGE},
+      {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
+      {"buttontext", CSS_VAL_BUTTONTEXT},
+      {"-khtml-nowrap", CSS_VAL__KHTML_NOWRAP},
+      {"infotext", CSS_VAL_INFOTEXT},
+      {"menutext", CSS_VAL_MENUTEXT},
       {"captiontext", CSS_VAL_CAPTIONTEXT},
-      {"crosshair", CSS_VAL_CROSSHAIR},
-      {"georgian", CSS_VAL_GEORGIAN},
-      {"-khtml-text", CSS_VAL__KHTML_TEXT},
-      {"inline-block", CSS_VAL_INLINE_BLOCK},
-      {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
-      {"activeborder", CSS_VAL_ACTIVEBORDER},
-      {"xx-large", CSS_VAL_XX_LARGE},
+      {"inactivecaption", CSS_VAL_INACTIVECAPTION},
+      {"backwards", CSS_VAL_BACKWARDS},
+      {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
+      {"higher", CSS_VAL_HIGHER},
+      {"repeat-x", CSS_VAL_REPEAT_X},
+      {"-khtml-link", CSS_VAL__KHTML_LINK},
+      {"close-quote", CSS_VAL_CLOSE_QUOTE},
       {"graytext", CSS_VAL_GRAYTEXT},
-      {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
-      {"upper-latin", CSS_VAL_UPPER_LATIN},
-      {"block-axis", CSS_VAL_BLOCK_AXIS},
+      {"threedshadow", CSS_VAL_THREEDSHADOW},
+      {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
+      {"inline-block", CSS_VAL_INLINE_BLOCK},
+      {"message-box", CSS_VAL_MESSAGE_BOX},
+      {"highlight", CSS_VAL_HIGHLIGHT},
       {"-khtml-box", CSS_VAL__KHTML_BOX},
-      {"compact", CSS_VAL_COMPACT},
+      {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
+      {"-khtml-text", CSS_VAL__KHTML_TEXT},
+      {"-khtml-left", CSS_VAL__KHTML_LEFT},
+      {"semi-expanded", CSS_VAL_SEMI_EXPANDED},
+      {"fuchsia", CSS_VAL_FUCHSIA},
+      {"unfurl", CSS_VAL_UNFURL},
+      {"upper-roman", CSS_VAL_UPPER_ROMAN},
+      {"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
+      {"block-axis", CSS_VAL_BLOCK_AXIS},
+      {"upper-alpha", CSS_VAL_UPPER_ALPHA},
+      {"activeborder", CSS_VAL_ACTIVEBORDER},
+      {"-khtml-right", CSS_VAL__KHTML_RIGHT},
       {"katakana-iroha", CSS_VAL_KATAKANA_IROHA},
-      {"windowframe", CSS_VAL_WINDOWFRAME},
-      {"-khtml-link", CSS_VAL__KHTML_LINK},
-      {"-khtml-body", CSS_VAL__KHTML_BODY},
-      {"backwards", CSS_VAL_BACKWARDS},
+      {"buttonface", CSS_VAL_BUTTONFACE},
+      {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
       {"inactiveborder", CSS_VAL_INACTIVEBORDER},
       {"uppercase", CSS_VAL_UPPERCASE},
+      {"xx-large", CSS_VAL_XX_LARGE},
       {"line-through", CSS_VAL_LINE_THROUGH},
-      {"activecaption", CSS_VAL_ACTIVECAPTION},
-      {"lower-greek", CSS_VAL_LOWER_GREEK},
-      {"-khtml-center", CSS_VAL__KHTML_CENTER},
-      {"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
       {"-khtml-baseline-middle", CSS_VAL__KHTML_BASELINE_MIDDLE},
-      {"threeddarkshadow", CSS_VAL_THREEDDARKSHADOW},
-      {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
-      {"upper-roman", CSS_VAL_UPPER_ROMAN},
-      {"upper-alpha", CSS_VAL_UPPER_ALPHA},
-      {"highlight", CSS_VAL_HIGHLIGHT},
+      {"appworkspace", CSS_VAL_APPWORKSPACE},
+      {"table-row-group", CSS_VAL_TABLE_ROW_GROUP},
+      {"-khtml-center", CSS_VAL__KHTML_CENTER},
       {"-khtml-inline-box", CSS_VAL__KHTML_INLINE_BOX},
-      {"inactivecaption", CSS_VAL_INACTIVECAPTION},
-      {"background", CSS_VAL_BACKGROUND},
+      {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
+      {"-khtml-activelink", CSS_VAL__KHTML_ACTIVELINK},
       {"threedlightshadow", CSS_VAL_THREEDLIGHTSHADOW},
-      {"-khtml-nowrap", CSS_VAL__KHTML_NOWRAP},
-      {"-khtml-right", CSS_VAL__KHTML_RIGHT},
-      {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
+      {"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
+      {"lower-greek", CSS_VAL_LOWER_GREEK},
       {"decimal-leading-zero", CSS_VAL_DECIMAL_LEADING_ZERO},
-      {"table-row-group", CSS_VAL_TABLE_ROW_GROUP},
-      {"highlighttext", CSS_VAL_HIGHLIGHTTEXT},
-      {"infobackground", CSS_VAL_INFOBACKGROUND},
       {"inactivecaptiontext", CSS_VAL_INACTIVECAPTIONTEXT},
-      {"-khtml-activelink", CSS_VAL__KHTML_ACTIVELINK},
+      {"threedface", CSS_VAL_THREEDFACE},
       {"buttonhighlight", CSS_VAL_BUTTONHIGHLIGHT},
-      {"threedhighlight", CSS_VAL_THREEDHIGHLIGHT},
-      {"appworkspace", CSS_VAL_APPWORKSPACE},
+      {"background", CSS_VAL_BACKGROUND},
+      {"highlighttext", CSS_VAL_HIGHLIGHTTEXT},
+      {"threeddarkshadow", CSS_VAL_THREEDDARKSHADOW},
+      {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
       {"table-column-group", CSS_VAL_TABLE_COLUMN_GROUP},
-      {"-khtml-xxx-large", CSS_VAL__KHTML_XXX_LARGE},
-      {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC}
+      {"threedhighlight", CSS_VAL_THREEDHIGHLIGHT},
+      {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
+      {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
+      {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
+      {"infobackground", CSS_VAL_INFOBACKGROUND},
+      {"-khtml-xxx-large", CSS_VAL__KHTML_XXX_LARGE}
     };
 
   static const short lookup[] =
     {
-         0,   -1,   -1,   -1,    1,    2,   -1,   -1,
-        -1,   -1,    3,   -1,   -1,   -1,   -1,    4,
+         0,   -1,   -1,   -1,   -1,    1,   -1,   -1,
+        -1,   -1,    2,   -1,   -1,    3,   -1,    4,
         -1,   -1,   -1,   -1,    5,   -1,   -1,   -1,
         -1,    6,   -1,   -1,   -1,   -1,    7,   -1,
-        -1,   -1,    8,    9,   -1,   -1,   -1,   10,
-        11,   -1,   -1,   -1,   -1,   12,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   13,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   14,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   15,   -1,   -1,   -1,   16,   17,   18,
-        -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,   20,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1, -394,
-      -236,   -2,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   23,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   24,   -1,   -1,   -1,   -1,   25,
-        -1,   -1,   -1,   26,   27,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   28,   29,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   30,
-        -1,   -1,   -1,   31,   -1,   32,   -1,   -1,
-        -1,   -1,   33,   34,   35,   -1,   36,   37,
-        38,   -1,   -1,   39,   -1,   40,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
-        42,   -1,   -1,   -1,   -1,   -1,   43,   44,
-        -1,   -1,   -1,   -1,   -1,   45,   -1,   46,
-        47,   -1,   -1,   48,   49,   50,   -1,   -1,
-        -1,   -1,   -1,   -1,   51,   -1,   52,   -1,
-        -1,   53,   54,   55,   56,   57,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   58,   -1,   -1,
-        -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   60,   61,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   62,   63,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   64,   -1,
-        65,   -1,   -1,   -1,   -1,   66,   -1,   -1,
-        -1,   -1,   67,   -1,   68,   69,   -1,   -1,
-        -1,   70,   71,   -1,   -1,   -1,   -1,   72,
-        -1,   73,   74,   -1,   75,   76,   77,   -1,
-        -1,   -1,   78,   79,   -1,   -1,   -1,   80,
-        -1,   81,   -1,   -1,   82,   83,   -1,   84,
-        85,   86,   87,   -1,   -1,   88,   -1,   -1,
-        -1,   89,   -1,   -1,   -1,   -1,   90,   -1,
-        -1,   91,   -1,   -1,   92,   -1,   -1,   93,
-        -1,   -1,   94,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   95,   -1,   96,   -1,   97,
-        98,   99,   -1,   -1,   -1,  100,   -1,   -1,
-        -1,  101,  102,   -1,   -1,  103,   -1,  104,
-       105,   -1,   -1,   -1,   -1,  106,   -1,  107,
-        -1,   -1,   -1,   -1,  108,  109,   -1,  110,
-       111,  112,   -1,  113,   -1,   -1,   -1,  114,
-        -1,  115,  116,   -1,   -1,  117,   -1,   -1,
-        -1,   -1,   -1,  118,  119,  120,   -1,   -1,
-        -1,  121,   -1,   -1,   -1,   -1,  122,  123,
-        -1,  124,  125,  126,   -1,  127,   -1,   -1,
-        -1,   -1,  128,   -1,  129,  130,  131,   -1,
-        -1,   -1,   -1,  132,   -1,   -1,   -1,  133,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  134,   -1,  135,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  136,
-       137,   -1,   -1,   -1,   -1,   -1,   -1,  138,
-       139,  140,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  141,   -1,   -1,  142,
-        -1,   -1,  143,  144,   -1,   -1,   -1,  145,
-       146,   -1,   -1,  147,  148,   -1,   -1,   -1,
-       149,  150,   -1,   -1,  151,   -1,   -1,   -1,
-       152,   -1,   -1,   -1,   -1,  153,  154,  155,
-        -1,   -1,  156,   -1,  157,   -1,   -1,   -1,
-       158,  159,  160,   -1,   -1,   -1,   -1,   -1,
-       161,   -1,   -1,  162,   -1,  163,  164,   -1,
-       165,   -1,   -1,   -1,  166,   -1,   -1,   -1,
-        -1,   -1,   -1,  167,   -1,  168,  169,  170,
-       171,  172,  173,   -1,  174,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  175,   -1,   -1,   -1,  176,
-        -1,   -1,   -1,  177,  178,   -1,   -1,   -1,
-       179,   -1,   -1,  180,   -1,   -1,   -1,  181,
-       182,   -1,   -1,   -1,   -1,   -1,  183,   -1,
-       184,   -1,   -1,   -1,   -1,   -1,  185,  186,
-        -1,   -1,   -1,  187,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  188,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  189,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       190,  191,   -1,   -1,   -1,  192,   -1,   -1,
-       193,   -1,   -1,   -1,   -1,   -1,   -1,  194,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  195,   -1,   -1,   -1,  196,
-       197,  198,  199,  200,  201,  202,   -1,   -1,
+        -1,   -1,   -1,    8,   -1,   -1,   -1,   -1,
+         9,   10,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   11,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   12,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   13,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        14,   -1,   -1,   -1,   -1,   -1,   15,   -1,
+        16,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   17,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   18,
+        -1,   -1,   19,   -1,   -1,   -1,   -1,   20,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   21,   -1,   -1,
+        22,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   23,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+      -540, -234,   -2,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   26,   27,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   28,   -1,   29,   -1,   -1,   -1,   -1,
+        30,   -1,   -1,   31,   -1,   -1,   -1,   -1,
+        -1,   -1,   32,   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,
+        34,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   35,   -1,   -1,   36,   -1,   -1,
+        37,   -1,   38,   -1,   39,   -1,   -1,   40,
+        -1,   41,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   42,   -1,   -1,   -1,   -1,
+        43,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   45,   -1,   -1,   -1,
+        -1,   46,   -1,   -1,   47,   48,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   49,   -1,   -1,   -1,   -1,
+        -1,   -1,   50,   -1,   51,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   52,   -1,
+        53,   -1,   -1,   -1,   -1,   -1,   54,   -1,
+        -1,   -1,   55,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   56,   -1,   57,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        58,   -1,   -1,   -1,   -1,   -1,   59,   -1,
+        -1,   -1,   -1,   -1,   -1,   60,   -1,   -1,
+        -1,   -1,   -1,   -1,   61,   -1,   -1,   62,
+        -1,   63,   64,   -1,   65,   -1,   -1,   66,
+        -1,   -1,   -1,   67,   -1,   -1,   68,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        69,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   70,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   71,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   72,   -1,   73,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   74,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   75,   -1,   76,   -1,   -1,
+        77,   -1,   78,   79,   -1,   -1,   -1,   80,
+        81,   -1,   -1,   -1,   82,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   83,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   84,   -1,
+        -1,   -1,   -1,   85,   -1,   86,   -1,   -1,
+        -1,   -1,   87,   88,   -1,   89,   -1,   90,
+        -1,   -1,   -1,   -1,   91,   -1,   -1,   92,
+        -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        94,   -1,   -1,   -1,   95,   96,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   97,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   98,   -1,   -1,   -1,   -1,   99,   -1,
+        -1,   -1,   -1,  100,   -1,  101,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  102,   -1,   -1,
+        -1,   -1,   -1,   -1,  103,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  104,   -1,  105,   -1,
+        -1,  106,   -1,  107,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  108,   -1,   -1,
+       109,   -1,  110,   -1,   -1,   -1,   -1,  111,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  112,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  113,   -1,   -1,
+        -1,   -1,  114,   -1,  115,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  116,   -1,  117,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  118,   -1,   -1,
+        -1,   -1,  119,   -1,   -1,  120,   -1,   -1,
+        -1,   -1,   -1,   -1,  121,   -1,   -1,   -1,
+        -1,  122,   -1,   -1,  123,   -1,  124,   -1,
+        -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
+       126,   -1,   -1,  127,   -1,   -1,   -1,  128,
+       129,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  130,   -1,   -1,   -1,
+       131,  132,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  133,  134,   -1,   -1,  135,   -1,
+       136,   -1,   -1,  137,  138,   -1,   -1,   -1,
+       139,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  140,
+        -1,   -1,   -1,   -1,   -1,   -1,  141,  142,
+        -1,   -1,   -1,   -1,  143,   -1,   -1,   -1,
+       144,   -1,   -1,  145,   -1,   -1,   -1,   -1,
+        -1,  146,   -1,   -1,   -1,   -1,   -1,  147,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  148,
+        -1,   -1,   -1,   -1,   -1,  149,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  150,   -1,
+       151,   -1,   -1,   -1,   -1,  152,   -1,   -1,
+       153,   -1,  154,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  155,   -1,   -1,   -1,
+        -1,  156,   -1,   -1,  157,   -1,  158,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       159,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  160,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  161,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  162,   -1,   -1,   -1,   -1,
+       163,   -1,   -1,   -1,   -1,   -1,  164,   -1,
+        -1,   -1,  165,   -1,   -1,  166,   -1,   -1,
+        -1,   -1,   -1,   -1,  167,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  168,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       169,  170,   -1,  171,   -1,  172,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  173,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  174,   -1,   -1,   -1,   -1,  175,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       176,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  177,
+        -1,   -1,  178,   -1,   -1,   -1,   -1,  179,
+        -1,   -1,  180,   -1,  181,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       182,   -1,   -1,  183,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  184,   -1,   -1,   -1,
+        -1,  185,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  186,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  187,   -1,   -1,
+       188,   -1,  189,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  190,   -1,   -1,   -1,   -1,   -1,
+        -1,  191,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  192,   -1,   -1,
+        -1,   -1,  193,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  194,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  195,  196,
+        -1,   -1,   -1,   -1,   -1,  197,   -1,   -1,
+       198,   -1,   -1,   -1,   -1,   -1,   -1,  199,
+        -1,   -1,  200,  201,  202,   -1,   -1,   -1,
         -1,  203,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  204,   -1,   -1,   -1,
-       205,   -1,  206,  207,   -1,  208,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  209,   -1,   -1,
+        -1,   -1,   -1,  204,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  205,   -1,   -1,   -1,   -1,
+        -1,   -1,  206,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  207,   -1,   -1,   -1,   -1,   -1,  208,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  209,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,  210,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  211,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  212,
-        -1,   -1,  213,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  214,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  215,  216,
-        -1,  217,   -1,   -1,   -1,   -1,   -1,  218,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  219,   -1,   -1,  220,   -1,   -1,
-        -1,  221,   -1,   -1,   -1,   -1,   -1,   -1,
+       211,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  212,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  213,   -1,   -1,   -1,  214,   -1,   -1,
+       215,   -1,   -1,   -1,   -1,  216,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  217,   -1,  218,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  219,   -1,   -1,  220,   -1,
+       221,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -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,  223,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  222,   -1,   -1,   -1,   -1,
-        -1,   -1,  223,  224,   -1,   -1,   -1,   -1,
-       225,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  224,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  225,   -1,  226,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  227,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  226,   -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,  229,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       227,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       228,   -1,  229,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,  230,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -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,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  232,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  233,   -1,   -1,   -1,
-        -1,   -1,  234,  235,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  236,
-        -1,  237,   -1,   -1,   -1,   -1,  238,   -1,
         -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,  231,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  232,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -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,  234,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  235,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       236,   -1,   -1,  237,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  238,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -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,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,  241,   -1,   -1,   -1,   -1,
-       242,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  243,   -1,
+        -1,   -1,   -1,   -1,  239,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  244,   -1,
+        -1,   -1,   -1,  240,   -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,   -1,
+        -1,   -1,   -1,   -1,   -1,  241,   -1,   -1,
+        -1,   -1,   -1,  242,   -1,   -1,   -1,   -1,
+       243,   -1,  244,   -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,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,  246,   -1,   -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,  247,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,  248,   -1,   -1,
-        -1,   -1,   -1,  249,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -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,  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,   -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,  249,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       252,   -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,   -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,  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,  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,   -1,   -1,   -1,   -1,
@@ -573,6 +699,23 @@ findValue (register const char *str, register unsigned int len)
         -1,   -1,   -1,   -1,   -1,   -1,   -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,  253,   -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,  255,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
@@ -581,7 +724,57 @@ findValue (register const char *str, register unsigned int len)
         -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,  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,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -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
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -877,6 +1070,7 @@ static const char * const valueList[] = {
 "unfurl", 
 "read-only", 
 "read-write", 
+"element", 
     0
 };
 DOMString getValueName(unsigned short id)
index 7abf9f537bfb51cf906a2e31cb4a35a57b83b778..4dbd5c92a282b8b273721c3eb6c99322ca7abe9a 100644 (file)
@@ -266,7 +266,8 @@ DOM::DOMString getValueName(unsigned short id);
 #define CSS_VAL_UNFURL 255
 #define CSS_VAL_READ_ONLY 256
 #define CSS_VAL_READ_WRITE 257
+#define CSS_VAL_ELEMENT 258
 
-#define CSS_VAL_TOTAL 258
+#define CSS_VAL_TOTAL 259
 #endif
 
index f9c91d77c19d9bf442b2dfd35c34eefec89b8f71..b3746f2d86c528acdaa84f97906ea7ea2ad58d47 100644 (file)
@@ -376,3 +376,8 @@ unfurl
 #
 read-only
 read-write
+
+#
+# CSS_PROP__KHTML_USER_DRAG
+#
+element
index 617c4a09134c1814dc1c0a8dec0637e8cec5468d..f5107a50810c7730f3b09a6a23341b2004d71e3f 100644 (file)
@@ -4340,7 +4340,8 @@ void KHTMLPart::handleMousePressEventDoubleClick(khtml::MousePressEvent *event)
 
     Selection selection;
 
-    if (mouse->button() == LeftButton && !innerNode.isNull() && innerNode.handle()->renderer()) {
+    if (mouse->button() == LeftButton && !innerNode.isNull() && innerNode.handle()->renderer() &&
+        innerNode.handle()->renderer()->shouldSelect()) {
         Position pos(innerNode.handle()->positionForCoordinates(event->x(), event->y()));
         if (pos.node() && (pos.node()->nodeType() == Node::TEXT_NODE || pos.node()->nodeType() == Node::CDATA_SECTION_NODE)) {
             selection.moveTo(pos);
@@ -4364,7 +4365,8 @@ void KHTMLPart::handleMousePressEventTripleClick(khtml::MousePressEvent *event)
     
     Selection selection;
     
-    if (mouse->button() == LeftButton && !innerNode.isNull() && innerNode.handle()->renderer()) {
+    if (mouse->button() == LeftButton && !innerNode.isNull() && innerNode.handle()->renderer() &&
+        innerNode.handle()->renderer()->shouldSelect()) {
         Position pos(innerNode.handle()->positionForCoordinates(event->x(), event->y()));
         if (pos.node() && (pos.node()->nodeType() == Node::TEXT_NODE || pos.node()->nodeType() == Node::CDATA_SECTION_NODE)) {
             selection.moveTo(pos);
@@ -4389,7 +4391,8 @@ void KHTMLPart::handleMousePressEventSingleClick(khtml::MousePressEvent *event)
     if (mouse->button() == LeftButton) {
         Selection sel;
 
-        if (!innerNode.isNull() && innerNode.handle()->renderer()) {
+        if (!innerNode.isNull() && innerNode.handle()->renderer() &&
+            innerNode.handle()->renderer()->shouldSelect()) {
             bool extendSelection = mouse->state() & ShiftButton;
 
             // Don't restart the selection when the mouse is pressed on an
@@ -4601,7 +4604,8 @@ void KHTMLPart::handleMouseMoveEventSelection(khtml::MouseMoveEvent *event)
     QMouseEvent *mouse = event->qmouseEvent();
     DOM::Node innerNode = event->innerNode();
 
-    if (mouse->state() != LeftButton || !innerNode.handle() || !innerNode.handle()->renderer())
+    if (mouse->state() != LeftButton || !innerNode.handle() || !innerNode.handle()->renderer() ||
+        !innerNode.handle()->renderer()->shouldSelect())
        return;
 
     // handle making selection
index 8d27d1095bfdadb341567cb281c9a689fd916a43..eca83aa0a7412b106d0c82a9b551406242dfafcd 100644 (file)
@@ -379,7 +379,7 @@ void RenderCanvas::setSelection(RenderObject *s, int sp, RenderObject *e, int ep
     while (os && os != oldEnd)
     {
         RenderObject* no;
-        if ( !(no = os->firstChild()) ){
+        if (!(no = os->firstChild())) {
             if ( !(no = os->nextSibling()) )
             {
                 no = os->parent();
@@ -425,10 +425,11 @@ void RenderCanvas::setSelection(RenderObject *s, int sp, RenderObject *e, int ep
     
     while (o && o!=e)
     {
-        o->setSelectionState(SelectionInside);
+        if (o->style()->userSelect())
+            o->setSelectionState(SelectionInside);
 //      kdDebug( 6040 ) << "setting selected " << o << ", " << o->isText() << endl;
-        RenderObject* no;
-        if ( !(no = o->firstChild()) )
+        RenderObject* no = 0;
+        if (!(no = o->firstChild()))
             if ( !(no = o->nextSibling()) )
             {
                 no = o->parent();
@@ -444,9 +445,13 @@ void RenderCanvas::setSelection(RenderObject *s, int sp, RenderObject *e, int ep
             
         o=no;
     }
-    s->setSelectionState(SelectionStart);
-    e->setSelectionState(SelectionEnd);
-    if(s == e) s->setSelectionState(SelectionBoth);
+    
+    if (s->style()->userSelect())
+        s->setSelectionState(SelectionStart);
+    if (e->style()->userSelect())
+        e->setSelectionState(SelectionEnd);
+    if (s == e && s->style()->userSelect())
+        s->setSelectionState(SelectionBoth);
 
 #if APPLE_CHANGES
     if (!m_view)
index 00d8d53533628398888a1d65b6e04e1f12f76f17..76baed1ab7c164793ab1f8caabc3aa99906496d9 100644 (file)
@@ -1322,6 +1322,17 @@ void RenderObject::dump(QTextStream *stream, QString ind) const
 }
 #endif
 
+bool RenderObject::shouldSelect() const
+{
+    const RenderObject* curr = this;
+    while (curr) {
+        if (!curr->style()->userSelect())
+            return false;
+        curr = curr->parent();
+    }
+    return true;
+}
+
 void RenderObject::selectionStartEnd(int& spos, int& epos)
 {
     if (parent())
index 3c31c0cec7416c89d9bbbc950873cc98ab8d7357..29a8fac107d615c2df62d74002a4e6c02522dcf4 100644 (file)
@@ -686,6 +686,7 @@ public:
 
     virtual SelectionState selectionState() const { return SelectionNone;}
     virtual void setSelectionState(SelectionState) {}
+    bool shouldSelect() const;
 
     /**
      * Returns the content coordinates of the caret within this render object.
index 934affa265be886fee205e198fe994fb021cc85c..c5c0cce61304e2506850778001282a92eecd6fe9 100644 (file)
@@ -185,7 +185,9 @@ StyleCSS3NonInheritedData::StyleCSS3NonInheritedData()
 #if APPLE_CHANGES
 lineClamp(RenderStyle::initialLineClamp()),
 #endif
-opacity(RenderStyle::initialOpacity())
+opacity(RenderStyle::initialOpacity()),
+userDrag(RenderStyle::initialUserDrag()),
+userSelect(RenderStyle::initialUserSelect())
 #ifndef KHTML_NO_XBL
 , bindingURI(0)
 #endif
@@ -197,7 +199,8 @@ StyleCSS3NonInheritedData::StyleCSS3NonInheritedData(const StyleCSS3NonInherited
 #if APPLE_CHANGES
 lineClamp(o.lineClamp),
 #endif
-opacity(o.opacity), flexibleBox(o.flexibleBox), marquee(o.marquee)
+opacity(o.opacity), flexibleBox(o.flexibleBox), marquee(o.marquee),
+userDrag(o.userDrag), userSelect(o.userSelect)
 {
 #ifndef KHTML_NO_XBL
     bindingURI = o.bindingURI ? o.bindingURI->copy() : 0;
@@ -225,7 +228,8 @@ bool StyleCSS3NonInheritedData::bindingsEquivalent(const StyleCSS3NonInheritedDa
 
 bool StyleCSS3NonInheritedData::operator==(const StyleCSS3NonInheritedData& o) const
 {
-    return opacity == o.opacity && flexibleBox == o.flexibleBox && marquee == o.marquee
+    return opacity == o.opacity && flexibleBox == o.flexibleBox && marquee == o.marquee &&
+           userDrag == o.userDrag && userSelect == o.userSelect
 #ifndef KHTML_NO_XBL
            && bindingsEquivalent(o)
 #endif
@@ -644,6 +648,8 @@ RenderStyle::Diff RenderStyle::diff( const RenderStyle *other ) const
         css3NonInheritedData->opacity != other->css3NonInheritedData->opacity ||
         !css3InheritedData->shadowDataEquivalent(*other->css3InheritedData.get()) ||
         css3InheritedData->userModify != other->css3InheritedData->userModify ||
+        css3NonInheritedData->userSelect != other->css3NonInheritedData->userSelect ||
+        css3NonInheritedData->userDrag != other->css3NonInheritedData->userDrag ||
         !(visual->palette == other->visual->palette)
        )
         return Visible;
index 86cff44314fb4b0c76029aae2f425ee91ea0cdcb..edd10b828e3516904f8c7357e338940324ec4621 100644 (file)
@@ -527,6 +527,12 @@ enum EUserModify {
     READ_ONLY, READ_WRITE
 };
 
+// CSS3 User Drag Values
+
+enum EUserDrag {
+    DRAG_AUTO, DRAG_NONE, DRAG_ELEMENT
+};
+
 // This struct is for rarely used non-inherited CSS3 properties.  By grouping them together,
 // we save space, and only allocate this object when someone actually uses
 // a non-inherited CSS3 property.
@@ -552,6 +558,9 @@ public:
     float opacity;         // Whether or not we're transparent.
     DataRef<StyleFlexibleBoxData> flexibleBox; // Flexible box properties 
     DataRef<StyleMarqueeData> marquee; // Marquee properties
+    EUserDrag userDrag : 2; // Whether or not a drag can be initiated by this element.
+    bool userSelect : 1;  // Whether or not the element is selectable.
+
 #ifndef KHTML_NO_XBL
     BindingURI* bindingURI; // The XBL binding URI list.
 #endif
@@ -1084,6 +1093,8 @@ public:
     EMarqueeBehavior marqueeBehavior() { return css3NonInheritedData->marquee->behavior; }
     EMarqueeDirection marqueeDirection() { return css3NonInheritedData->marquee->direction; }
     EUserModify userModify() const { return css3InheritedData->userModify; }
+    EUserDrag userDrag() const { return css3NonInheritedData->userDrag; }
+    bool userSelect() const { return css3NonInheritedData->userSelect; }
     // End CSS3 Getters
 
 #if APPLE_CHANGES
@@ -1261,6 +1272,8 @@ public:
     void setMarqueeBehavior(EMarqueeBehavior b) { SET_VAR(css3NonInheritedData.access()->marquee, behavior, b); }
     void setMarqueeLoopCount(int i) { SET_VAR(css3NonInheritedData.access()->marquee, loops, i); }
     void setUserModify(EUserModify u) { SET_VAR(css3InheritedData, userModify, u); }
+    void setUserDrag(EUserDrag d) { SET_VAR(css3NonInheritedData, userDrag, d); }
+    void setUserSelect(bool b) { SET_VAR(css3NonInheritedData, userSelect, b); }
     // End CSS3 Setters
    
 #if APPLE_CHANGES
@@ -1364,6 +1377,9 @@ public:
     static EMarqueeBehavior initialMarqueeBehavior() { return MSCROLL; }
     static EMarqueeDirection initialMarqueeDirection() { return MAUTO; }
     static EUserModify initialUserModify() { return READ_ONLY; }
+    static EUserDrag initialUserDrag() { return DRAG_AUTO; }
+    static bool initialUserSelect() { return true; }
+
 #if APPLE_CHANGES
     // Keep these at the end.
     static int initialLineClamp() { return -1; }