Add ScriptType column to attributes.inc table

Intermediate step towards "normalization".

Change-Id: I4fe38654901114ab47dbc4641c01d2c3f57f8984
Reviewed-on: https://pdfium-review.googlesource.com/c/46870
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index 25c3f69..4d706f9 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -227,8 +227,9 @@
     return CJS_Result::Failure(JSMessage::kParamError);
 
   WideString expression = runtime->ToWideString(params[0]);
-  XFA_Attribute attr = XFA_GetAttributeByName(expression.AsStringView());
-  if (attr != XFA_Attribute::Unknown && HasAttribute(attr))
+  Optional<XFA_ATTRIBUTEINFO> attr =
+      XFA_GetAttributeByName(expression.AsStringView());
+  if (attr.has_value() && HasAttribute(attr.value().attribute))
     return CJS_Result::Success(runtime->NewBoolean(true));
 
   bool bParent = params.size() < 2 || runtime->ToBoolean(params[1]);
@@ -238,7 +239,7 @@
   if (!bHas && bParent && GetXFANode()->GetParent()) {
     // Also check on the parent.
     auto* jsnode = GetXFANode()->GetParent()->JSObject();
-    bHas = jsnode->HasAttribute(attr) ||
+    bHas = jsnode->HasAttribute(attr.value().attribute) ||
            !!jsnode->GetOrCreateProperty<CXFA_Node>(iIndex, eType);
   }
   return CJS_Result::Success(runtime->NewBoolean(bHas));
diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp
index 0ad03af..9e8188d 100644
--- a/fxjs/xfa/cjx_object.cpp
+++ b/fxjs/xfa/cjx_object.cpp
@@ -255,12 +255,11 @@
 void CJX_Object::SetAttribute(const WideStringView& wsAttr,
                               const WideStringView& wsValue,
                               bool bNotify) {
-  XFA_Attribute attr = XFA_GetAttributeByName(wsValue);
-  if (attr != XFA_Attribute::Unknown) {
-    SetAttribute(attr, wsValue, bNotify);
+  Optional<XFA_ATTRIBUTEINFO> attr = XFA_GetAttributeByName(wsValue);
+  if (!attr.has_value()) {
+    SetAttribute(attr.value().attribute, wsValue, bNotify);
     return;
   }
-
   void* pKey = GetMapKey_Custom(wsAttr);
   SetMapModuleString(pKey, wsValue);
 }
@@ -313,9 +312,9 @@
 
 Optional<WideString> CJX_Object::TryAttribute(const WideStringView& wsAttr,
                                               bool bUseDefault) {
-  XFA_Attribute attr = XFA_GetAttributeByName(wsAttr);
-  if (attr != XFA_Attribute::Unknown)
-    return TryAttribute(attr, bUseDefault);
+  Optional<XFA_ATTRIBUTEINFO> attr = XFA_GetAttributeByName(wsAttr);
+  if (attr.has_value())
+    return TryAttribute(attr.value().attribute, bUseDefault);
 
   void* pKey = GetMapKey_Custom(wsAttr);
   WideStringView wsValueC;
diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h
index 56548b2..56c30ef 100644
--- a/fxjs/xfa/cjx_object.h
+++ b/fxjs/xfa/cjx_object.h
@@ -279,6 +279,11 @@
                                                    bool bSetting,
                                                    XFA_Attribute eAttribute);
 
+struct XFA_ATTRIBUTEINFO {
+  XFA_Attribute attribute;
+  XFA_ScriptType eValueType;
+};
+
 struct XFA_SCRIPTATTRIBUTEINFO {
   XFA_Attribute attribute;
   XFA_ScriptType eValueType;
diff --git a/xfa/fxfa/fxfa_basic.h b/xfa/fxfa/fxfa_basic.h
index edc112c..430aed3 100644
--- a/xfa/fxfa/fxfa_basic.h
+++ b/xfa/fxfa/fxfa_basic.h
@@ -105,7 +105,7 @@
 enum class XFA_Attribute : int16_t {
   Unknown = -1,
 #undef ATTR____
-#define ATTR____(a, b, c) c,
+#define ATTR____(a, b, c, d) c,
 #include "xfa/fxfa/parser/attributes.inc"
 #undef ATTR____
 };
diff --git a/xfa/fxfa/fxfa_basic_unittest.cpp b/xfa/fxfa/fxfa_basic_unittest.cpp
index 4bc1364..d2a49cc 100644
--- a/xfa/fxfa/fxfa_basic_unittest.cpp
+++ b/xfa/fxfa/fxfa_basic_unittest.cpp
@@ -9,7 +9,7 @@
 
 TEST(FXFABasic, AttrHashMatchesString) {
 #undef ATTR____
-#define ATTR____(a, b, c) EXPECT_EQ(a, FX_HashCode_GetAsIfW(b, false));
+#define ATTR____(a, b, c, d) EXPECT_EQ(a, FX_HashCode_GetAsIfW(b, false));
 #include "xfa/fxfa/parser/attributes.inc"
 #undef ATTR____
 }
@@ -17,8 +17,8 @@
 TEST(FXFABasic, AttrHashOrder) {
   uint32_t so_far = 0;
 #undef ATTR____
-#define ATTR____(a, b, c) \
-  EXPECT_LT(so_far, a);   \
+#define ATTR____(a, b, c, d) \
+  EXPECT_LT(so_far, a);      \
   so_far = a;
 #include "xfa/fxfa/parser/attributes.inc"
 #undef ATTR____
diff --git a/xfa/fxfa/parser/attributes.inc b/xfa/fxfa/parser/attributes.inc
index 381204e..7cc28e4 100644
--- a/xfa/fxfa/parser/attributes.inc
+++ b/xfa/fxfa/parser/attributes.inc
@@ -4,315 +4,315 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-ATTR____(0x00000068u, "h", H)
-ATTR____(0x00000077u, "w", W)
-ATTR____(0x00000078u, "x", X)
-ATTR____(0x00000079u, "y", Y)
-ATTR____(0x00020146u, "db", Db)
-ATTR____(0x00021aedu, "id", Id)
-ATTR____(0x000234a1u, "ns", Ns)
-ATTR____(0x00025363u, "to", To)
-ATTR____(0x00cb0ac9u, "lineThrough", LineThrough)
-ATTR____(0x02282c73u, "hAlign", HAlign)
-ATTR____(0x02c1c7f1u, "typeface", Typeface)
-ATTR____(0x03106c3au, "beforeTarget", BeforeTarget)
-ATTR____(0x031b19c1u, "name", Name)
-ATTR____(0x03848b3fu, "next", Next)
-ATTR____(0x043e349bu, "dataRowCount", DataRowCount)
-ATTR____(0x05518c25u, "break", Break)
-ATTR____(0x05ce6195u, "vScrollPolicy", VScrollPolicy)
-ATTR____(0x066c1ae9u, "validationsEnabled", ValidationsEnabled)
-ATTR____(0x08c74ae9u, "fontHorizontalScale", FontHorizontalScale)
-ATTR____(0x08d4f1c7u, "textIndent", TextIndent)
-ATTR____(0x097be91bu, "content", Content)
-ATTR____(0x097c1c65u, "context", Context)
-ATTR____(0x09876578u, "trayOut", TrayOut)
-ATTR____(0x09f9d0f9u, "all", All)
-ATTR____(0x0a2e3514u, "cap", Cap)
-ATTR____(0x0b3543a6u, "max", Max)
-ATTR____(0x0b356ca4u, "min", Min)
-ATTR____(0x0bb8df5du, "ref", Ref)
-ATTR____(0x0bb8f3dfu, "rid", Rid)
-ATTR____(0x0c080cd3u, "url", Url)
-ATTR____(0x0c0811edu, "use", Use)
-ATTR____(0x0cfea02eu, "leftInset", LeftInset)
-ATTR____(0x0d843798u, "fullText", FullText)
-ATTR____(0x0f23332fu, "errorText", ErrorText)
-ATTR____(0x0fb67185u, "recordsBefore", RecordsBefore)
-ATTR____(0x1026c59du, "widows", Widows)
-ATTR____(0x1059ec18u, "level", Level)
-ATTR____(0x1356caf8u, "bottomInset", BottomInset)
-ATTR____(0x13a08bdbu, "overflowTarget", OverflowTarget)
-ATTR____(0x1414d431u, "allowMacro", AllowMacro)
-ATTR____(0x14a32d52u, "pagePosition", PagePosition)
-ATTR____(0x14d04502u, "title", Title)
-ATTR____(0x1517dfa1u, "columnWidths", ColumnWidths)
-ATTR____(0x169134a1u, "overflowLeader", OverflowLeader)
-ATTR____(0x1abbd7e0u, "dataNode", DataNode)
-ATTR____(0x1b6d1cf5u, "reenter", Reenter)
-ATTR____(0x1b8dce3eu, "action", Action)
-ATTR____(0x1e459b8fu, "nonRepudiation", NonRepudiation)
-ATTR____(0x1e6ffa9au, "prevContentType", PrevContentType)
-ATTR____(0x1ec8ab2cu, "rate", Rate)
-ATTR____(0x1ee2d24du, "instanceIndex", InstanceIndex)
-ATTR____(0x1ef3a64au, "allowRichText", AllowRichText)
-ATTR____(0x2038c9b2u, "role", Role)
-ATTR____(0x20914367u, "overflowTrailer", OverflowTrailer)
-ATTR____(0x21d5dfcbu, "currentRecordNumber", CurrentRecordNumber)
-ATTR____(0x226ca8f1u, "operation", Operation)
-ATTR____(0x24d85167u, "timeout", Timeout)
-ATTR____(0x25764436u, "topInset", TopInset)
-ATTR____(0x25839852u, "access", Access)
-ATTR____(0x25a3c206u, "soapFaultString", SoapFaultString)
-ATTR____(0x268b7ec1u, "commandType", CommandType)
-ATTR____(0x28dee6e9u, "format", Format)
-ATTR____(0x28e17e91u, "dataPrep", DataPrep)
-ATTR____(0x292b88feu, "widgetData", WidgetData)
-ATTR____(0x29418bb7u, "abbr", Abbr)
-ATTR____(0x2a82d99cu, "marginRight", MarginRight)
-ATTR____(0x2b5df51eu, "dataDescription", DataDescription)
-ATTR____(0x2bb3f470u, "encipherOnly", EncipherOnly)
-ATTR____(0x2cd79033u, "kerningMode", KerningMode)
-ATTR____(0x2d574d58u, "this", ThisValue)
-ATTR____(0x2e00c007u, "newContentType", NewContentType)
-ATTR____(0x2ee7678fu, "rotate", Rotate)
-ATTR____(0x2f105f72u, "wordCharacterCount", WordCharacterCount)
-ATTR____(0x2f16a382u, "type", Type)
-ATTR____(0x312af044u, "recordsAfter", RecordsAfter)
-ATTR____(0x34ae103cu, "reserve", Reserve)
-ATTR____(0x3650557eu, "textLocation", TextLocation)
-ATTR____(0x392ae445u, "platform", Platform)
-ATTR____(0x39cdb0a2u, "priority", Priority)
-ATTR____(0x3a0273a6u, "underline", Underline)
-ATTR____(0x3b1ddd06u, "fillColor", FillColor)
-ATTR____(0x3b582286u, "moduleWidth", ModuleWidth)
-ATTR____(0x3d123c26u, "hyphenate", Hyphenate)
-ATTR____(0x3e7af94fu, "listen", Listen)
-ATTR____(0x4156ee3fu, "delimiter", Delimiter)
-ATTR____(0x42fed1fdu, "contentType", ContentType)
-ATTR____(0x453eaf38u, "startNew", StartNew)
-ATTR____(0x4570500fu, "modifier", Modifier)
-ATTR____(0x45a6daf8u, "eofAction", EofAction)
-ATTR____(0x47cfa43au, "allowNeutral", AllowNeutral)
-ATTR____(0x47d03490u, "connection", Connection)
-ATTR____(0x4873c601u, "baselineShift", BaselineShift)
-ATTR____(0x4b319767u, "overlinePeriod", OverlinePeriod)
-ATTR____(0x4b8bc840u, "fracDigits", FracDigits)
-ATTR____(0x4df15659u, "nodes", Nodes)
-ATTR____(0x4ef3d02cu, "orientation", Orientation)
-ATTR____(0x4fdc3454u, "timeStamp", TimeStamp)
-ATTR____(0x50d1a9d1u, "model", Model)
-ATTR____(0x50e2e33bu, "selEnd", SelEnd)
-ATTR____(0x52666f1cu, "printCheckDigit", PrintCheckDigit)
-ATTR____(0x534729c9u, "marginLeft", MarginLeft)
-ATTR____(0x5392ea58u, "stroke", Stroke)
-ATTR____(0x5404d6dfu, "moduleHeight", ModuleHeight)
-ATTR____(0x54c399e3u, "formattedValue", FormattedValue)
-ATTR____(0x54fa722cu, "transferEncoding", TransferEncoding)
-ATTR____(0x552d9ad5u, "usage", Usage)
-ATTR____(0x570ce835u, "presence", Presence)
-ATTR____(0x5739d1ffu, "radixOffset", RadixOffset)
-ATTR____(0x577682acu, "preserve", Preserve)
-ATTR____(0x57de87c2u, "prevText", PrevText)
-ATTR____(0x58be2870u, "aliasNode", AliasNode)
-ATTR____(0x5a32e493u, "multiLine", MultiLine)
-ATTR____(0x5a3b375du, "borderColor", BorderColor)
-ATTR____(0x5a50e9e6u, "version", Version)
-ATTR____(0x5ab23b6cu, "startChar", StartChar)
-ATTR____(0x5b707a35u, "scriptTest", ScriptTest)
-ATTR____(0x5c054755u, "startAngle", StartAngle)
-ATTR____(0x5e936ed6u, "fontColor", FontColor)
-ATTR____(0x5ec958c0u, "cursorType", CursorType)
-ATTR____(0x5f760b50u, "digitalSignature", DigitalSignature)
-ATTR____(0x60a61eddu, "codeType", CodeType)
-ATTR____(0x60d4c8b1u, "output", Output)
-ATTR____(0x64110ab5u, "bookendTrailer", BookendTrailer)
-ATTR____(0x65e30c67u, "imagingBBox", ImagingBBox)
-ATTR____(0x66539c48u, "excludeInitialCap", ExcludeInitialCap)
-ATTR____(0x66642f8fu, "force", Force)
-ATTR____(0x66cb1eedu, "variation", Variation)
-ATTR____(0x6826c408u, "parentSubform", ParentSubform)
-ATTR____(0x69aa2292u, "crlSign", CrlSign)
-ATTR____(0x6a3405ddu, "previous", Previous)
-ATTR____(0x6a95c976u, "pushCharacterCount", PushCharacterCount)
-ATTR____(0x6aab37cbu, "isDefined", IsDefined)
-ATTR____(0x6b6ddcfbu, "nullTest", NullTest)
-ATTR____(0x6c0d9600u, "currentValue", CurrentValue)
-ATTR____(0x6cfa828au, "runAt", RunAt)
-ATTR____(0x6ea04e0au, "soapFaultCode", SoapFaultCode)
-ATTR____(0x6f544d49u, "count", Count)
-ATTR____(0x6f6556cfu, "newText", NewText)
-ATTR____(0x731e0665u, "spaceBelow", SpaceBelow)
-ATTR____(0x74788f8bu, "sweepAngle", SweepAngle)
-ATTR____(0x7717cbc4u, "language", Language)
-ATTR____(0x78a8d6cfu, "classAll", ClassAll)
-ATTR____(0x78bff531u, "numberOfCells", NumberOfCells)
-ATTR____(0x79543055u, "letterSpacing", LetterSpacing)
-ATTR____(0x79975f2bu, "lockType", LockType)
-ATTR____(0x79b67434u, "mandatoryMessage", MandatoryMessage)
-ATTR____(0x7a0cc471u, "passwordChar", PasswordChar)
-ATTR____(0x7a7cc341u, "vAlign", VAlign)
-ATTR____(0x7b29630au, "sourceBelow", SourceBelow)
-ATTR____(0x7b95e661u, "inverted", Inverted)
-ATTR____(0x7c2fd80bu, "mark", Mark)
-ATTR____(0x7c2ff6aeu, "maxH", MaxH)
-ATTR____(0x7c2ff6bdu, "maxW", MaxW)
-ATTR____(0x7c732a66u, "truncate", Truncate)
-ATTR____(0x7d02356cu, "minH", MinH)
-ATTR____(0x7d02357bu, "minW", MinW)
-ATTR____(0x7d0b5fcau, "initial", Initial)
-ATTR____(0x7d9fd7c5u, "mode", Mode)
-ATTR____(0x7e7e845eu, "layout", Layout)
-ATTR____(0x7f6fd3d7u, "server", Server)
-ATTR____(0x824f21b7u, "embedPDF", EmbedPDF)
-ATTR____(0x8340ea66u, "oddOrEven", OddOrEven)
-ATTR____(0x836d4d7cu, "tabDefault", TabDefault)
-ATTR____(0x846599f8u, "transient", Transient)
-ATTR____(0x85fd6fafu, "mandatory", Mandatory)
-ATTR____(0x86698963u, "appType", AppType)
-ATTR____(0x8855805fu, "contains", Contains)
-ATTR____(0x891f4606u, "change", Change)
-ATTR____(0x8a692521u, "rightInset", RightInset)
-ATTR____(0x8af2e657u, "maxChars", MaxChars)
-ATTR____(0x8b90e1f2u, "open", Open)
-ATTR____(0x8c99377eu, "relation", Relation)
-ATTR____(0x8d181d61u, "wideNarrowRatio", WideNarrowRatio)
-ATTR____(0x8e1c2921u, "relevant", Relevant)
-ATTR____(0x8e29d794u, "signatureType", SignatureType)
-ATTR____(0x8ec6204cu, "lineThroughPeriod", LineThroughPeriod)
-ATTR____(0x8ed182d1u, "shape", Shape)
-ATTR____(0x8fa01790u, "tabStops", TabStops)
-ATTR____(0x8fa3c19eu, "shift", Shift)
-ATTR____(0x8fc36c0au, "outputBelow", OutputBelow)
-ATTR____(0x9041d4b0u, "short", Short)
-ATTR____(0x907c7719u, "fontVerticalScale", FontVerticalScale)
-ATTR____(0x942643f0u, "savedValue", SavedValue)
-ATTR____(0x94446dccu, "thickness", Thickness)
-ATTR____(0x94ff9e8du, "calculationsEnabled", CalculationsEnabled)
-ATTR____(0x957fa006u, "commitOn", CommitOn)
-ATTR____(0x964fb42eu, "formatMessage", FormatMessage)
-ATTR____(0x982bd892u, "remainCharacterCount", RemainCharacterCount)
-ATTR____(0x98fd4d81u, "keyAgreement", KeyAgreement)
-ATTR____(0x99800d7au, "errorCorrectionLevel", ErrorCorrectionLevel)
-ATTR____(0x9a63da3du, "upsMode", UpsMode)
-ATTR____(0x9cc17d75u, "mergeMode", MergeMode)
-ATTR____(0x9d833d75u, "circular", Circular)
-ATTR____(0x9d8ee204u, "psName", PsName)
-ATTR____(0x9dcc3ab3u, "trailer", Trailer)
-ATTR____(0x9f3e9510u, "instanceManager", InstanceManager)
-ATTR____(0xa021b738u, "stateless", Stateless)
-ATTR____(0xa03cf627u, "rawValue", RawValue)
-ATTR____(0xa0933954u, "unicodeRange", UnicodeRange)
-ATTR____(0xa1b0d2f5u, "executeType", ExecuteType)
-ATTR____(0xa25a883du, "duplexImposition", DuplexImposition)
-ATTR____(0xa42ca1b7u, "trayIn", TrayIn)
-ATTR____(0xa433f001u, "bindingNode", BindingNode)
-ATTR____(0xa52682bdu, "{default}", DefaultValue)
-ATTR____(0xa5340ff5u, "bofAction", BofAction)
-ATTR____(0xa5b410cfu, "save", Save)
-ATTR____(0xa60dd202u, "length", Length)
-ATTR____(0xa6118c89u, "targetType", TargetType)
-ATTR____(0xa66404cbu, "keyEncipherment", KeyEncipherment)
-ATTR____(0xa6710262u, "credentialServerPolicy", CredentialServerPolicy)
-ATTR____(0xa686975bu, "size", Size)
-ATTR____(0xa85e74f3u, "initialNumber", InitialNumber)
-ATTR____(0xa9d9b2e1u, "keyDown", keyDown)
-ATTR____(0xabef37e3u, "slope", Slope)
-ATTR____(0xabfa6c4fu, "cSpace", CSpace)
-ATTR____(0xac06e2b0u, "colSpan", ColSpan)
-ATTR____(0xacb4823fu, "isContainer", IsContainer)
-ATTR____(0xadc4c77bu, "binding", Binding)
-ATTR____(0xaf754613u, "checksum", Checksum)
-ATTR____(0xb045fbc5u, "charEncoding", CharEncoding)
-ATTR____(0xb0e5485du, "bind", Bind)
-ATTR____(0xb12128b7u, "textEntry", TextEntry)
-ATTR____(0xb2c80857u, "className", ClassName)
-ATTR____(0xb373a862u, "archive", Archive)
-ATTR____(0xb598a1f7u, "uuid", Uuid)
-ATTR____(0xb5e49bf2u, "posture", Posture)
-ATTR____(0xb6b44172u, "after", After)
-ATTR____(0xb716467bu, "orphans", Orphans)
-ATTR____(0xbc0c4695u, "qualifiedName", QualifiedName)
-ATTR____(0xbc254332u, "usehref", Usehref)
-ATTR____(0xbc8fa350u, "locale", Locale)
-ATTR____(0xbcd44940u, "currentPage", CurrentPage)
-ATTR____(0xbd6e1d88u, "weight", Weight)
-ATTR____(0xbd96a0e9u, "underlinePeriod", UnderlinePeriod)
-ATTR____(0xbde9abdau, "data", Data)
-ATTR____(0xbe52dfbfu, "desc", Desc)
-ATTR____(0xbe9ba472u, "numbered", Numbered)
-ATTR____(0xbfc89db2u, "selStart", selStart)
-ATTR____(0xc035c6b1u, "dataColumnCount", DataColumnCount)
-ATTR____(0xc0ec9fa4u, "overline", Overline)
-ATTR____(0xc2ba0923u, "urlPolicy", UrlPolicy)
-ATTR____(0xc2bd40fdu, "anchorType", AnchorType)
-ATTR____(0xc32a5812u, "commitKey", CommitKey)
-ATTR____(0xc39a88bdu, "labelRef", LabelRef)
-ATTR____(0xc3c1442fu, "bookendLeader", BookendLeader)
-ATTR____(0xc4547a08u, "maxLength", MaxLength)
-ATTR____(0xc4fed09bu, "accessKey", AccessKey)
-ATTR____(0xc5762157u, "cursorLocation", CursorLocation)
-ATTR____(0xc860f30au, "delayedOpen", DelayedOpen)
-ATTR____(0xc8da4da7u, "target", Target)
-ATTR____(0xca5dc27cu, "dataEncipherment", DataEncipherment)
-ATTR____(0xcabfa3d0u, "validationMessage", ValidationMessage)
-ATTR____(0xcad6d8cau, "parent", Parent)
-ATTR____(0xcb150479u, "afterTarget", AfterTarget)
-ATTR____(0xcbcaf66du, "leader", Leader)
-ATTR____(0xcca7897eu, "picker", Picker)
-ATTR____(0xcd7f7b54u, "from", From)
-ATTR____(0xcea5e62cu, "baseProfile", BaseProfile)
-ATTR____(0xd171b240u, "aspect", Aspect)
-ATTR____(0xd3c84d25u, "rowColumnRatio", RowColumnRatio)
-ATTR____(0xd4b01921u, "lineHeight", LineHeight)
-ATTR____(0xd4cc53f8u, "highlight", Highlight)
-ATTR____(0xd50f903au, "valueRef", ValueRef)
-ATTR____(0xd52482e0u, "maxEntries", MaxEntries)
-ATTR____(0xd5679c78u, "index", Index)
-ATTR____(0xd57c513cu, "dataLength", DataLength)
-ATTR____(0xd592b920u, "numPages", NumPages)
-ATTR____(0xd6128d8du, "activity", Activity)
-ATTR____(0xd6a39990u, "input", Input)
-ATTR____(0xd6e27f1du, "value", Value)
-ATTR____(0xd70798c2u, "blankOrNotBlank", BlankOrNotBlank)
-ATTR____(0xd861f8afu, "addRevocationInfo", AddRevocationInfo)
-ATTR____(0xd8624e04u, "cancelAction", cancelAction)
-ATTR____(0xd8f982bfu, "genericFamily", GenericFamily)
-ATTR____(0xd996fa9bu, "hand", Hand)
-ATTR____(0xdb55fec5u, "href", Href)
-ATTR____(0xdb5b4bceu, "classIndex", ClassIndex)
-ATTR____(0xdc75676cu, "textEncoding", TextEncoding)
-ATTR____(0xdcecd663u, "editValue", EditValue)
-ATTR____(0xde7f92bau, "leadDigits", LeadDigits)
-ATTR____(0xe07e5061u, "selectedIndex", SelectedIndex)
-ATTR____(0xe11a2cbcu, "permissions", Permissions)
-ATTR____(0xe18b5659u, "spaceAbove", SpaceAbove)
-ATTR____(0xe1a26b56u, "codeBase", CodeBase)
-ATTR____(0xe349d044u, "stock", Stock)
-ATTR____(0xe372ae97u, "isNull", IsNull)
-ATTR____(0xe4989adfu, "somExpression", SomExpression)
-ATTR____(0xe4c3a5e5u, "restoreState", RestoreState)
-ATTR____(0xe5c96d6au, "excludeAllCaps", ExcludeAllCaps)
-ATTR____(0xe64b1129u, "formatTest", FormatTest)
-ATTR____(0xe6f99487u, "hScrollPolicy", HScrollPolicy)
-ATTR____(0xe8dddf50u, "join", Join)
-ATTR____(0xe8f118a8u, "keyCertSign", KeyCertSign)
-ATTR____(0xe948b9a8u, "radius", Radius)
-ATTR____(0xe996b2feu, "sourceAbove", SourceAbove)
-ATTR____(0xea7090a0u, "override", Override)
-ATTR____(0xeb091003u, "classId", ClassId)
-ATTR____(0xeb511b54u, "disable", Disable)
-ATTR____(0xeda9017au, "scope", Scope)
-ATTR____(0xf197844du, "match", Match)
-ATTR____(0xf2009339u, "placement", Placement)
-ATTR____(0xf4ffce73u, "before", Before)
-ATTR____(0xf531b059u, "writingScript", WritingScript)
-ATTR____(0xf575ca75u, "endChar", EndChar)
-ATTR____(0xf65e34beu, "borderWidth", BorderWidth)
-ATTR____(0xf6b47749u, "lock", Lock)
-ATTR____(0xf6b4afb0u, "long", Long)
-ATTR____(0xf6b59543u, "intact", Intact)
-ATTR____(0xf889e747u, "xdpContent", XdpContent)
-ATTR____(0xfcef86b5u, "ready", Ready)
-ATTR____(0xfe612a5bu, "oneOfChild", OneOfChild)
-ATTR____(0xfea53ec6u, "decipherOnly", DecipherOnly)
+ATTR____(0x00000068u, "h", H, Basic)
+ATTR____(0x00000077u, "w", W, Basic)
+ATTR____(0x00000078u, "x", X, Basic)
+ATTR____(0x00000079u, "y", Y, Basic)
+ATTR____(0x00020146u, "db", Db, Basic)
+ATTR____(0x00021aedu, "id", Id, Basic)
+ATTR____(0x000234a1u, "ns", Ns, Basic)
+ATTR____(0x00025363u, "to", To, Basic)
+ATTR____(0x00cb0ac9u, "lineThrough", LineThrough, Basic)
+ATTR____(0x02282c73u, "hAlign", HAlign, Basic)
+ATTR____(0x02c1c7f1u, "typeface", Typeface, Basic)
+ATTR____(0x03106c3au, "beforeTarget", BeforeTarget, Basic)
+ATTR____(0x031b19c1u, "name", Name, Basic)
+ATTR____(0x03848b3fu, "next", Next, Basic)
+ATTR____(0x043e349bu, "dataRowCount", DataRowCount, Basic)
+ATTR____(0x05518c25u, "break", Break, Basic)
+ATTR____(0x05ce6195u, "vScrollPolicy", VScrollPolicy, Basic)
+ATTR____(0x066c1ae9u, "validationsEnabled", ValidationsEnabled, Basic)
+ATTR____(0x08c74ae9u, "fontHorizontalScale", FontHorizontalScale, Basic)
+ATTR____(0x08d4f1c7u, "textIndent", TextIndent, Basic)
+ATTR____(0x097be91bu, "content", Content, Basic)
+ATTR____(0x097c1c65u, "context", Context, Object)
+ATTR____(0x09876578u, "trayOut", TrayOut, Basic)
+ATTR____(0x09f9d0f9u, "all", All, Object)
+ATTR____(0x0a2e3514u, "cap", Cap, Basic)
+ATTR____(0x0b3543a6u, "max", Max, Basic)
+ATTR____(0x0b356ca4u, "min", Min, Basic)
+ATTR____(0x0bb8df5du, "ref", Ref, Basic)
+ATTR____(0x0bb8f3dfu, "rid", Rid, Basic)
+ATTR____(0x0c080cd3u, "url", Url, Basic)
+ATTR____(0x0c0811edu, "use", Use, Basic)
+ATTR____(0x0cfea02eu, "leftInset", LeftInset, Basic)
+ATTR____(0x0d843798u, "fullText", FullText, Basic)
+ATTR____(0x0f23332fu, "errorText", ErrorText, Basic)
+ATTR____(0x0fb67185u, "recordsBefore", RecordsBefore, Basic)
+ATTR____(0x1026c59du, "widows", Widows, Basic)
+ATTR____(0x1059ec18u, "level", Level, Basic)
+ATTR____(0x1356caf8u, "bottomInset", BottomInset, Basic)
+ATTR____(0x13a08bdbu, "overflowTarget", OverflowTarget, Basic)
+ATTR____(0x1414d431u, "allowMacro", AllowMacro, Basic)
+ATTR____(0x14a32d52u, "pagePosition", PagePosition, Basic)
+ATTR____(0x14d04502u, "title", Title, Basic)
+ATTR____(0x1517dfa1u, "columnWidths", ColumnWidths, Basic)
+ATTR____(0x169134a1u, "overflowLeader", OverflowLeader, Basic)
+ATTR____(0x1abbd7e0u, "dataNode", DataNode, Object)
+ATTR____(0x1b6d1cf5u, "reenter", Reenter, Basic)
+ATTR____(0x1b8dce3eu, "action", Action, Basic)
+ATTR____(0x1e459b8fu, "nonRepudiation", NonRepudiation, Basic)
+ATTR____(0x1e6ffa9au, "prevContentType", PrevContentType, Basic)
+ATTR____(0x1ec8ab2cu, "rate", Rate, Basic)
+ATTR____(0x1ee2d24du, "instanceIndex", InstanceIndex, Basic)
+ATTR____(0x1ef3a64au, "allowRichText", AllowRichText, Basic)
+ATTR____(0x2038c9b2u, "role", Role, Basic)
+ATTR____(0x20914367u, "overflowTrailer", OverflowTrailer, Basic)
+ATTR____(0x21d5dfcbu, "currentRecordNumber", CurrentRecordNumber, Basic)
+ATTR____(0x226ca8f1u, "operation", Operation, Basic)
+ATTR____(0x24d85167u, "timeout", Timeout, Basic)
+ATTR____(0x25764436u, "topInset", TopInset, Basic)
+ATTR____(0x25839852u, "access", Access, Basic)
+ATTR____(0x25a3c206u, "soapFaultString", SoapFaultString, Basic)
+ATTR____(0x268b7ec1u, "commandType", CommandType, Basic)
+ATTR____(0x28dee6e9u, "format", Format, Basic)
+ATTR____(0x28e17e91u, "dataPrep", DataPrep, Basic)
+ATTR____(0x292b88feu, "widgetData", WidgetData, Basic)
+ATTR____(0x29418bb7u, "abbr", Abbr, Basic)
+ATTR____(0x2a82d99cu, "marginRight", MarginRight, Basic)
+ATTR____(0x2b5df51eu, "dataDescription", DataDescription, Basic)
+ATTR____(0x2bb3f470u, "encipherOnly", EncipherOnly, Basic)
+ATTR____(0x2cd79033u, "kerningMode", KerningMode, Basic)
+ATTR____(0x2d574d58u, "this", ThisValue, Object)
+ATTR____(0x2e00c007u, "newContentType", NewContentType, Basic)
+ATTR____(0x2ee7678fu, "rotate", Rotate, Basic)
+ATTR____(0x2f105f72u, "wordCharacterCount", WordCharacterCount, Basic)
+ATTR____(0x2f16a382u, "type", Type, Basic)
+ATTR____(0x312af044u, "recordsAfter", RecordsAfter, Basic)
+ATTR____(0x34ae103cu, "reserve", Reserve, Basic)
+ATTR____(0x3650557eu, "textLocation", TextLocation, Basic)
+ATTR____(0x392ae445u, "platform", Platform, Basic)
+ATTR____(0x39cdb0a2u, "priority", Priority, Basic)
+ATTR____(0x3a0273a6u, "underline", Underline, Basic)
+ATTR____(0x3b1ddd06u, "fillColor", FillColor, Basic)
+ATTR____(0x3b582286u, "moduleWidth", ModuleWidth, Basic)
+ATTR____(0x3d123c26u, "hyphenate", Hyphenate, Basic)
+ATTR____(0x3e7af94fu, "listen", Listen, Basic)
+ATTR____(0x4156ee3fu, "delimiter", Delimiter, Basic)
+ATTR____(0x42fed1fdu, "contentType", ContentType, Basic)
+ATTR____(0x453eaf38u, "startNew", StartNew, Basic)
+ATTR____(0x4570500fu, "modifier", Modifier, Basic)
+ATTR____(0x45a6daf8u, "eofAction", EofAction, Basic)
+ATTR____(0x47cfa43au, "allowNeutral", AllowNeutral, Basic)
+ATTR____(0x47d03490u, "connection", Connection, Basic)
+ATTR____(0x4873c601u, "baselineShift", BaselineShift, Basic)
+ATTR____(0x4b319767u, "overlinePeriod", OverlinePeriod, Basic)
+ATTR____(0x4b8bc840u, "fracDigits", FracDigits, Basic)
+ATTR____(0x4df15659u, "nodes", Nodes, Object)
+ATTR____(0x4ef3d02cu, "orientation", Orientation, Basic)
+ATTR____(0x4fdc3454u, "timeStamp", TimeStamp, Basic)
+ATTR____(0x50d1a9d1u, "model", Model, Object)
+ATTR____(0x50e2e33bu, "selEnd", SelEnd, Basic)
+ATTR____(0x52666f1cu, "printCheckDigit", PrintCheckDigit, Basic)
+ATTR____(0x534729c9u, "marginLeft", MarginLeft, Basic)
+ATTR____(0x5392ea58u, "stroke", Stroke, Basic)
+ATTR____(0x5404d6dfu, "moduleHeight", ModuleHeight, Basic)
+ATTR____(0x54c399e3u, "formattedValue", FormattedValue, Basic)
+ATTR____(0x54fa722cu, "transferEncoding", TransferEncoding, Basic)
+ATTR____(0x552d9ad5u, "usage", Usage, Basic)
+ATTR____(0x570ce835u, "presence", Presence, Basic)
+ATTR____(0x5739d1ffu, "radixOffset", RadixOffset, Basic)
+ATTR____(0x577682acu, "preserve", Preserve, Basic)
+ATTR____(0x57de87c2u, "prevText", PrevText, Basic)
+ATTR____(0x58be2870u, "aliasNode", AliasNode, Object)
+ATTR____(0x5a32e493u, "multiLine", MultiLine, Basic)
+ATTR____(0x5a3b375du, "borderColor", BorderColor, Basic)
+ATTR____(0x5a50e9e6u, "version", Version, Basic)
+ATTR____(0x5ab23b6cu, "startChar", StartChar, Basic)
+ATTR____(0x5b707a35u, "scriptTest", ScriptTest, Basic)
+ATTR____(0x5c054755u, "startAngle", StartAngle, Basic)
+ATTR____(0x5e936ed6u, "fontColor", FontColor, Basic)
+ATTR____(0x5ec958c0u, "cursorType", CursorType, Basic)
+ATTR____(0x5f760b50u, "digitalSignature", DigitalSignature, Basic)
+ATTR____(0x60a61eddu, "codeType", CodeType, Basic)
+ATTR____(0x60d4c8b1u, "output", Output, Basic)
+ATTR____(0x64110ab5u, "bookendTrailer", BookendTrailer, Basic)
+ATTR____(0x65e30c67u, "imagingBBox", ImagingBBox, Basic)
+ATTR____(0x66539c48u, "excludeInitialCap", ExcludeInitialCap, Basic)
+ATTR____(0x66642f8fu, "force", Force, Basic)
+ATTR____(0x66cb1eedu, "variation", Variation, Basic)
+ATTR____(0x6826c408u, "parentSubform", ParentSubform, Basic)
+ATTR____(0x69aa2292u, "crlSign", CrlSign, Basic)
+ATTR____(0x6a3405ddu, "previous", Previous, Basic)
+ATTR____(0x6a95c976u, "pushCharacterCount", PushCharacterCount, Basic)
+ATTR____(0x6aab37cbu, "isDefined", IsDefined, Basic)
+ATTR____(0x6b6ddcfbu, "nullTest", NullTest, Basic)
+ATTR____(0x6c0d9600u, "currentValue", CurrentValue, Basic)
+ATTR____(0x6cfa828au, "runAt", RunAt, Basic)
+ATTR____(0x6ea04e0au, "soapFaultCode", SoapFaultCode, Basic)
+ATTR____(0x6f544d49u, "count", Count, Basic)
+ATTR____(0x6f6556cfu, "newText", NewText, Basic)
+ATTR____(0x731e0665u, "spaceBelow", SpaceBelow, Basic)
+ATTR____(0x74788f8bu, "sweepAngle", SweepAngle, Basic)
+ATTR____(0x7717cbc4u, "language", Language, Basic)
+ATTR____(0x78a8d6cfu, "classAll", ClassAll, Object)
+ATTR____(0x78bff531u, "numberOfCells", NumberOfCells, Basic)
+ATTR____(0x79543055u, "letterSpacing", LetterSpacing, Basic)
+ATTR____(0x79975f2bu, "lockType", LockType, Basic)
+ATTR____(0x79b67434u, "mandatoryMessage", MandatoryMessage, Basic)
+ATTR____(0x7a0cc471u, "passwordChar", PasswordChar, Basic)
+ATTR____(0x7a7cc341u, "vAlign", VAlign, Basic)
+ATTR____(0x7b29630au, "sourceBelow", SourceBelow, Basic)
+ATTR____(0x7b95e661u, "inverted", Inverted, Basic)
+ATTR____(0x7c2fd80bu, "mark", Mark, Basic)
+ATTR____(0x7c2ff6aeu, "maxH", MaxH, Basic)
+ATTR____(0x7c2ff6bdu, "maxW", MaxW, Basic)
+ATTR____(0x7c732a66u, "truncate", Truncate, Basic)
+ATTR____(0x7d02356cu, "minH", MinH, Basic)
+ATTR____(0x7d02357bu, "minW", MinW, Basic)
+ATTR____(0x7d0b5fcau, "initial", Initial, Basic)
+ATTR____(0x7d9fd7c5u, "mode", Mode, Basic)
+ATTR____(0x7e7e845eu, "layout", Layout, Basic)
+ATTR____(0x7f6fd3d7u, "server", Server, Basic)
+ATTR____(0x824f21b7u, "embedPDF", EmbedPDF, Basic)
+ATTR____(0x8340ea66u, "oddOrEven", OddOrEven, Basic)
+ATTR____(0x836d4d7cu, "tabDefault", TabDefault, Basic)
+ATTR____(0x846599f8u, "transient", Transient, Basic)
+ATTR____(0x85fd6fafu, "mandatory", Mandatory, Basic)
+ATTR____(0x86698963u, "appType", AppType, Basic)
+ATTR____(0x8855805fu, "contains", Contains, Basic)
+ATTR____(0x891f4606u, "change", Change, Basic)
+ATTR____(0x8a692521u, "rightInset", RightInset, Basic)
+ATTR____(0x8af2e657u, "maxChars", MaxChars, Basic)
+ATTR____(0x8b90e1f2u, "open", Open, Basic)
+ATTR____(0x8c99377eu, "relation", Relation, Basic)
+ATTR____(0x8d181d61u, "wideNarrowRatio", WideNarrowRatio, Basic)
+ATTR____(0x8e1c2921u, "relevant", Relevant, Basic)
+ATTR____(0x8e29d794u, "signatureType", SignatureType, Basic)
+ATTR____(0x8ec6204cu, "lineThroughPeriod", LineThroughPeriod, Basic)
+ATTR____(0x8ed182d1u, "shape", Shape, Basic)
+ATTR____(0x8fa01790u, "tabStops", TabStops, Basic)
+ATTR____(0x8fa3c19eu, "shift", Shift, Basic)
+ATTR____(0x8fc36c0au, "outputBelow", OutputBelow, Basic)
+ATTR____(0x9041d4b0u, "short", Short, Basic)
+ATTR____(0x907c7719u, "fontVerticalScale", FontVerticalScale, Basic)
+ATTR____(0x942643f0u, "savedValue", SavedValue, Basic)
+ATTR____(0x94446dccu, "thickness", Thickness, Basic)
+ATTR____(0x94ff9e8du, "calculationsEnabled", CalculationsEnabled, Basic)
+ATTR____(0x957fa006u, "commitOn", CommitOn, Basic)
+ATTR____(0x964fb42eu, "formatMessage", FormatMessage, Basic)
+ATTR____(0x982bd892u, "remainCharacterCount", RemainCharacterCount, Basic)
+ATTR____(0x98fd4d81u, "keyAgreement", KeyAgreement, Basic)
+ATTR____(0x99800d7au, "errorCorrectionLevel", ErrorCorrectionLevel, Basic)
+ATTR____(0x9a63da3du, "upsMode", UpsMode, Basic)
+ATTR____(0x9cc17d75u, "mergeMode", MergeMode, Basic)
+ATTR____(0x9d833d75u, "circular", Circular, Basic)
+ATTR____(0x9d8ee204u, "psName", PsName, Basic)
+ATTR____(0x9dcc3ab3u, "trailer", Trailer, Basic)
+ATTR____(0x9f3e9510u, "instanceManager", InstanceManager, Object)
+ATTR____(0xa021b738u, "stateless", Stateless, Basic)
+ATTR____(0xa03cf627u, "rawValue", RawValue, Basic)
+ATTR____(0xa0933954u, "unicodeRange", UnicodeRange, Basic)
+ATTR____(0xa1b0d2f5u, "executeType", ExecuteType, Basic)
+ATTR____(0xa25a883du, "duplexImposition", DuplexImposition, Basic)
+ATTR____(0xa42ca1b7u, "trayIn", TrayIn, Basic)
+ATTR____(0xa433f001u, "bindingNode", BindingNode, Basic)
+ATTR____(0xa52682bdu, "{default}", DefaultValue, Basic)
+ATTR____(0xa5340ff5u, "bofAction", BofAction, Basic)
+ATTR____(0xa5b410cfu, "save", Save, Basic)
+ATTR____(0xa60dd202u, "length", Length, Basic)
+ATTR____(0xa6118c89u, "targetType", TargetType, Basic)
+ATTR____(0xa66404cbu, "keyEncipherment", KeyEncipherment, Basic)
+ATTR____(0xa6710262u, "credentialServerPolicy", CredentialServerPolicy, Basic)
+ATTR____(0xa686975bu, "size", Size, Basic)
+ATTR____(0xa85e74f3u, "initialNumber", InitialNumber, Basic)
+ATTR____(0xa9d9b2e1u, "keyDown", keyDown, Basic)
+ATTR____(0xabef37e3u, "slope", Slope, Basic)
+ATTR____(0xabfa6c4fu, "cSpace", CSpace, Basic)
+ATTR____(0xac06e2b0u, "colSpan", ColSpan, Basic)
+ATTR____(0xacb4823fu, "isContainer", IsContainer, Basic)
+ATTR____(0xadc4c77bu, "binding", Binding, Basic)
+ATTR____(0xaf754613u, "checksum", Checksum, Basic)
+ATTR____(0xb045fbc5u, "charEncoding", CharEncoding, Basic)
+ATTR____(0xb0e5485du, "bind", Bind, Basic)
+ATTR____(0xb12128b7u, "textEntry", TextEntry, Basic)
+ATTR____(0xb2c80857u, "className", ClassName, Basic)
+ATTR____(0xb373a862u, "archive", Archive, Basic)
+ATTR____(0xb598a1f7u, "uuid", Uuid, Basic)
+ATTR____(0xb5e49bf2u, "posture", Posture, Basic)
+ATTR____(0xb6b44172u, "after", After, Basic)
+ATTR____(0xb716467bu, "orphans", Orphans, Basic)
+ATTR____(0xbc0c4695u, "qualifiedName", QualifiedName, Basic)
+ATTR____(0xbc254332u, "usehref", Usehref, Basic)
+ATTR____(0xbc8fa350u, "locale", Locale, Basic)
+ATTR____(0xbcd44940u, "currentPage", CurrentPage, Basic)
+ATTR____(0xbd6e1d88u, "weight", Weight, Basic)
+ATTR____(0xbd96a0e9u, "underlinePeriod", UnderlinePeriod, Basic)
+ATTR____(0xbde9abdau, "data", Data, Basic)
+ATTR____(0xbe52dfbfu, "desc", Desc, Basic)
+ATTR____(0xbe9ba472u, "numbered", Numbered, Basic)
+ATTR____(0xbfc89db2u, "selStart", selStart, Basic)
+ATTR____(0xc035c6b1u, "dataColumnCount", DataColumnCount, Basic)
+ATTR____(0xc0ec9fa4u, "overline", Overline, Basic)
+ATTR____(0xc2ba0923u, "urlPolicy", UrlPolicy, Basic)
+ATTR____(0xc2bd40fdu, "anchorType", AnchorType, Basic)
+ATTR____(0xc32a5812u, "commitKey", CommitKey, Basic)
+ATTR____(0xc39a88bdu, "labelRef", LabelRef, Basic)
+ATTR____(0xc3c1442fu, "bookendLeader", BookendLeader, Basic)
+ATTR____(0xc4547a08u, "maxLength", MaxLength, Basic)
+ATTR____(0xc4fed09bu, "accessKey", AccessKey, Basic)
+ATTR____(0xc5762157u, "cursorLocation", CursorLocation, Basic)
+ATTR____(0xc860f30au, "delayedOpen", DelayedOpen, Basic)
+ATTR____(0xc8da4da7u, "target", Target, Basic)
+ATTR____(0xca5dc27cu, "dataEncipherment", DataEncipherment, Basic)
+ATTR____(0xcabfa3d0u, "validationMessage", ValidationMessage, Basic)
+ATTR____(0xcad6d8cau, "parent", Parent, Object)
+ATTR____(0xcb150479u, "afterTarget", AfterTarget, Basic)
+ATTR____(0xcbcaf66du, "leader", Leader, Basic)
+ATTR____(0xcca7897eu, "picker", Picker, Basic)
+ATTR____(0xcd7f7b54u, "from", From, Basic)
+ATTR____(0xcea5e62cu, "baseProfile", BaseProfile, Basic)
+ATTR____(0xd171b240u, "aspect", Aspect, Basic)
+ATTR____(0xd3c84d25u, "rowColumnRatio", RowColumnRatio, Basic)
+ATTR____(0xd4b01921u, "lineHeight", LineHeight, Basic)
+ATTR____(0xd4cc53f8u, "highlight", Highlight, Basic)
+ATTR____(0xd50f903au, "valueRef", ValueRef, Basic)
+ATTR____(0xd52482e0u, "maxEntries", MaxEntries, Basic)
+ATTR____(0xd5679c78u, "index", Index, Basic)
+ATTR____(0xd57c513cu, "dataLength", DataLength, Basic)
+ATTR____(0xd592b920u, "numPages", NumPages, Basic)
+ATTR____(0xd6128d8du, "activity", Activity, Basic)
+ATTR____(0xd6a39990u, "input", Input, Basic)
+ATTR____(0xd6e27f1du, "value", Value, Basic)
+ATTR____(0xd70798c2u, "blankOrNotBlank", BlankOrNotBlank, Basic)
+ATTR____(0xd861f8afu, "addRevocationInfo", AddRevocationInfo, Basic)
+ATTR____(0xd8624e04u, "cancelAction", cancelAction, Basic)
+ATTR____(0xd8f982bfu, "genericFamily", GenericFamily, Basic)
+ATTR____(0xd996fa9bu, "hand", Hand, Basic)
+ATTR____(0xdb55fec5u, "href", Href, Basic)
+ATTR____(0xdb5b4bceu, "classIndex", ClassIndex, Basic)
+ATTR____(0xdc75676cu, "textEncoding", TextEncoding, Basic)
+ATTR____(0xdcecd663u, "editValue", EditValue, Basic)
+ATTR____(0xde7f92bau, "leadDigits", LeadDigits, Basic)
+ATTR____(0xe07e5061u, "selectedIndex", SelectedIndex, Basic)
+ATTR____(0xe11a2cbcu, "permissions", Permissions, Basic)
+ATTR____(0xe18b5659u, "spaceAbove", SpaceAbove, Basic)
+ATTR____(0xe1a26b56u, "codeBase", CodeBase, Basic)
+ATTR____(0xe349d044u, "stock", Stock, Basic)
+ATTR____(0xe372ae97u, "isNull", IsNull, Basic)
+ATTR____(0xe4989adfu, "somExpression", SomExpression, Basic)
+ATTR____(0xe4c3a5e5u, "restoreState", RestoreState, Basic)
+ATTR____(0xe5c96d6au, "excludeAllCaps", ExcludeAllCaps, Basic)
+ATTR____(0xe64b1129u, "formatTest", FormatTest, Basic)
+ATTR____(0xe6f99487u, "hScrollPolicy", HScrollPolicy, Basic)
+ATTR____(0xe8dddf50u, "join", Join, Basic)
+ATTR____(0xe8f118a8u, "keyCertSign", KeyCertSign, Basic)
+ATTR____(0xe948b9a8u, "radius", Radius, Basic)
+ATTR____(0xe996b2feu, "sourceAbove", SourceAbove, Basic)
+ATTR____(0xea7090a0u, "override", Override, Basic)
+ATTR____(0xeb091003u, "classId", ClassId, Basic)
+ATTR____(0xeb511b54u, "disable", Disable, Basic)
+ATTR____(0xeda9017au, "scope", Scope, Basic)
+ATTR____(0xf197844du, "match", Match, Basic)
+ATTR____(0xf2009339u, "placement", Placement, Basic)
+ATTR____(0xf4ffce73u, "before", Before, Basic)
+ATTR____(0xf531b059u, "writingScript", WritingScript, Basic)
+ATTR____(0xf575ca75u, "endChar", EndChar, Basic)
+ATTR____(0xf65e34beu, "borderWidth", BorderWidth, Basic)
+ATTR____(0xf6b47749u, "lock", Lock, Basic)
+ATTR____(0xf6b4afb0u, "long", Long, Basic)
+ATTR____(0xf6b59543u, "intact", Intact, Basic)
+ATTR____(0xf889e747u, "xdpContent", XdpContent, Basic)
+ATTR____(0xfcef86b5u, "ready", Ready, Basic)
+ATTR____(0xfe612a5bu, "oneOfChild", OneOfChild, Object)
+ATTR____(0xfea53ec6u, "decipherOnly", DecipherOnly, Basic)
diff --git a/xfa/fxfa/parser/cxfa_document_parser.cpp b/xfa/fxfa/parser/cxfa_document_parser.cpp
index 5157020..5824504 100644
--- a/xfa/fxfa/parser/cxfa_document_parser.cpp
+++ b/xfa/fxfa/parser/cxfa_document_parser.cpp
@@ -800,17 +800,17 @@
           if (wsAttrName.EqualsASCII("nil") && it.second.EqualsASCII("true"))
             IsNeedValue = false;
 
-          XFA_Attribute attr =
+          Optional<XFA_ATTRIBUTEINFO> attr =
               XFA_GetAttributeByName(wsAttrName.AsStringView());
-          if (attr == XFA_Attribute::Unknown)
+          if (!attr.has_value())
             continue;
 
-          if (!bUseAttribute && attr != XFA_Attribute::Name &&
-              attr != XFA_Attribute::Save) {
+          if (!bUseAttribute && attr.value().attribute != XFA_Attribute::Name &&
+              attr.value().attribute != XFA_Attribute::Save) {
             continue;
           }
-          pXFAChild->JSObject()->SetAttribute(attr, it.second.AsStringView(),
-                                              false);
+          pXFAChild->JSObject()->SetAttribute(attr.value().attribute,
+                                              it.second.AsStringView(), false);
         }
         pXFANode->InsertChild(pXFAChild, nullptr);
         if (eType == XFA_Element::Validate || eType == XFA_Element::Locale) {
diff --git a/xfa/fxfa/parser/xfa_basic_data.cpp b/xfa/fxfa/parser/xfa_basic_data.cpp
index b6fdfc9..2042fb5 100644
--- a/xfa/fxfa/parser/xfa_basic_data.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data.cpp
@@ -169,12 +169,13 @@
 struct AttributeRecord {
   uint32_t hash;  // Hashed as wide string.
   XFA_Attribute attribute;
+  XFA_ScriptType script_type;
   const char* name;
 };
 
 const AttributeRecord g_AttributeTable[] = {
 #undef ATTR____
-#define ATTR____(a, b, c) {a, XFA_Attribute::c, b},
+#define ATTR____(a, b, c, d) {a, XFA_Attribute::c, XFA_ScriptType::d, b},
 #include "xfa/fxfa/parser/attributes.inc"
 #undef ATTR____
 };
@@ -6595,14 +6596,18 @@
       g_AttributeTable[static_cast<size_t>(attr)].name);
 }
 
-XFA_Attribute XFA_GetAttributeByName(const WideStringView& name) {
+Optional<XFA_ATTRIBUTEINFO> XFA_GetAttributeByName(const WideStringView& name) {
   uint32_t hash = FX_HashCode_GetW(name, false);
   auto* elem = std::lower_bound(
       std::begin(g_AttributeTable), std::end(g_AttributeTable), hash,
       [](const AttributeRecord& a, uint32_t hash) { return a.hash < hash; });
-  if (elem != std::end(g_AttributeTable) && name.EqualsASCII(elem->name))
-    return elem->attribute;
-  return XFA_Attribute::Unknown;
+  if (elem != std::end(g_AttributeTable) && name.EqualsASCII(elem->name)) {
+    XFA_ATTRIBUTEINFO result;
+    result.attribute = elem->attribute;
+    result.eValueType = elem->script_type;
+    return result;
+  }
+  return {};
 }
 
 ByteStringView XFA_AttributeValueToName(XFA_AttributeValue item) {
diff --git a/xfa/fxfa/parser/xfa_basic_data.h b/xfa/fxfa/parser/xfa_basic_data.h
index cb62714..5166ebe 100644
--- a/xfa/fxfa/parser/xfa_basic_data.h
+++ b/xfa/fxfa/parser/xfa_basic_data.h
@@ -17,7 +17,7 @@
 XFA_Element XFA_GetElementByName(const WideString& name);
 
 WideString XFA_AttributeToName(XFA_Attribute attr);
-XFA_Attribute XFA_GetAttributeByName(const WideStringView& name);
+Optional<XFA_ATTRIBUTEINFO> XFA_GetAttributeByName(const WideStringView& name);
 
 ByteStringView XFA_AttributeValueToName(XFA_AttributeValue item);
 Optional<XFA_AttributeValue> XFA_GetAttributeValueByName(
diff --git a/xfa/fxfa/parser/xfa_basic_data_unittest.cpp b/xfa/fxfa/parser/xfa_basic_data_unittest.cpp
index 3348e82..11d34f7 100644
--- a/xfa/fxfa/parser/xfa_basic_data_unittest.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data_unittest.cpp
@@ -7,19 +7,33 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 TEST(XFABasicDataTest, GetAttributeByName) {
-  EXPECT_EQ(XFA_Attribute::Unknown, XFA_GetAttributeByName(L""));
-  EXPECT_EQ(XFA_Attribute::Unknown, XFA_GetAttributeByName(L"nonesuch"));
-  EXPECT_EQ(XFA_Attribute::H, XFA_GetAttributeByName(L"h"));
-  EXPECT_EQ(XFA_Attribute::Short, XFA_GetAttributeByName(L"short"));
-  EXPECT_EQ(XFA_Attribute::DecipherOnly,
-            XFA_GetAttributeByName(L"decipherOnly"));
+  Optional<XFA_ATTRIBUTEINFO> result = XFA_GetAttributeByName(L"");
+  EXPECT_FALSE(result.has_value());
+
+  result = XFA_GetAttributeByName(L"nonesuch");
+  EXPECT_FALSE(result.has_value());
+
+  result = XFA_GetAttributeByName(L"h");
+  ASSERT_TRUE(result.has_value());
+  EXPECT_EQ(XFA_Attribute::H, result.value().attribute);
+
+  result = XFA_GetAttributeByName(L"short");
+  ASSERT_TRUE(result.has_value());
+  EXPECT_EQ(XFA_Attribute::Short, result.value().attribute);
+
+  result = XFA_GetAttributeByName(L"decipherOnly");
+  ASSERT_TRUE(result.has_value());
+  EXPECT_EQ(XFA_Attribute::DecipherOnly, result.value().attribute);
 }
 
 TEST(XFABasicDataTest, GetAttributeValueByName) {
-  EXPECT_FALSE(XFA_GetAttributeValueByName(L"").has_value());
-  EXPECT_FALSE(XFA_GetAttributeValueByName(L"nonesuch").has_value());
+  Optional<XFA_AttributeValue> result = XFA_GetAttributeValueByName(L"");
+  EXPECT_FALSE(result.has_value());
 
-  Optional<XFA_AttributeValue> result = XFA_GetAttributeValueByName(L"*");
+  result = XFA_GetAttributeValueByName(L"nonesuch");
+  EXPECT_FALSE(result.has_value());
+
+  result = XFA_GetAttributeValueByName(L"*");
   ASSERT_TRUE(result.has_value());
   EXPECT_EQ(XFA_AttributeValue::Asterisk, result.value());