
/*
 * Copyright 2006 The Android Open Source Project
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */


#include "SkTypes.h"
#ifndef SK_BUILD_FOR_UNIX
#ifdef SK_RELEASE
// This file was automatically generated.
// To change it, edit the file with the matching debug info.
// Then execute SkDisplayType::BuildCondensedInfo() to regenerate this file.

static const char gMathStrings[] = 
    "E\0"
    "LN10\0"
    "LN2\0"
    "LOG10E\0"
    "LOG2E\0"
    "PI\0"
    "SQRT1_2\0"
    "SQRT2\0"
    "abs\0"
    "acos\0"
    "asin\0"
    "atan\0"
    "atan2\0"
    "ceil\0"
    "cos\0"
    "exp\0"
    "floor\0"
    "log\0"
    "max\0"
    "min\0"
    "pow\0"
    "random\0"
    "round\0"
    "sin\0"
    "sqrt\0"
    "tan"
;

static const SkMemberInfo gMathInfo[] = {
    {0, -1, 67, 98},
    {2, -2, 67, 98},
    {7, -3, 67, 98},
    {11, -4, 67, 98},
    {18, -5, 67, 98},
    {24, -6, 67, 98},
    {27, -7, 67, 98},
    {35, -8, 67, 98},
    {41, -1, 66, 98},
    {45, -2, 66, 98},
    {50, -3, 66, 98},
    {55, -4, 66, 98},
    {60, -5, 66, 98},
    {66, -6, 66, 98},
    {71, -7, 66, 98},
    {75, -8, 66, 98},
    {79, -9, 66, 98},
    {85, -10, 66, 98},
    {89, -11, 66, 98},
    {93, -12, 66, 98},
    {97, -13, 66, 98},
    {101, -14, 66, 98},
    {108, -15, 66, 98},
    {114, -16, 66, 98},
    {118, -17, 66, 98},
    {123, -18, 66, 98}
};

static const char gAddStrings[] = 
    "inPlace\0"
    "offset\0"
    "use\0"
    "where"
;

static const SkMemberInfo gAddInfo[] = {
    {0, 4, 26, 1},
    {8, 8, 96, 1},
    {15, 12, 37, 1},
    {19, 16, 37, 1}
};

static const char gAddCircleStrings[] = 
    "\0"
    "radius\0"
    "x\0"
    "y"
;

static const SkMemberInfo gAddCircleInfo[] = {
    {0, 3, 18, 1},
    {1, 12, 98, 1},
    {8, 16, 98, 1},
    {10, 20, 98, 1}
};

static const char gUnknown1Strings[] = 
    "direction"
;

static const SkMemberInfo gUnknown1Info[] = {
    {0, 8, 75, 1}
};

static const char gAddOvalStrings[] = 
    ""
;

static const SkMemberInfo gAddOvalInfo[] = {
    {0, 6, 18, 5}
};

static const char gAddPathStrings[] = 
    "matrix\0"
    "path"
;

static const SkMemberInfo gAddPathInfo[] = {
    {0, 8, 65, 1},
    {7, 12, 74, 1}
};

static const char gAddRectangleStrings[] = 
    "\0"
    "bottom\0"
    "left\0"
    "right\0"
    "top"
;

static const SkMemberInfo gAddRectangleInfo[] = {
    {0, 3, 18, 1},
    {1, 24, 98, 1},
    {8, 12, 98, 1},
    {13, 20, 98, 1},
    {19, 16, 98, 1}
};

static const char gAddRoundRectStrings[] = 
    "\0"
    "rx\0"
    "ry"
;

static const SkMemberInfo gAddRoundRectInfo[] = {
    {0, 6, 18, 5},
    {1, 28, 98, 1},
    {4, 32, 98, 1}
};

static const char gUnknown2Strings[] = 
    "begin\0"
    "blend\0"
    "dur\0"
    "dynamic\0"
    "field\0"
    "formula\0"
    "from\0"
    "mirror\0"
    "repeat\0"
    "reset\0"
    "target\0"
    "to\0"
    "values"
;

static const SkMemberInfo gUnknown2Info[] = {
    {0, 4, 71, 1},
    {6, 8, 119, 98},
    {12, 16, 71, 1},
    {16, -1, 67, 26},
    {24, 20, 108, 1},
    {30, 24, 40, 1},
    {38, 28, 40, 1},
    {43, -2, 67, 26},
    {50, 32, 98, 1},
    {57, -3, 67, 26},
    {63, 36, 40, 1},
    {70, 40, 40, 1},
    {73, -4, 67, 40}
};

static const char gAnimateFieldStrings[] = 
    ""
;

static const SkMemberInfo gAnimateFieldInfo[] = {
    {0, 8, 18, 13}
};

static const char gApplyStrings[] = 
    "animator\0"
    "begin\0"
    "dontDraw\0"
    "dynamicScope\0"
    "interval\0"
    "mode\0"
    "pickup\0"
    "restore\0"
    "scope\0"
    "step\0"
    "steps\0"
    "time\0"
    "transition"
;

static const SkMemberInfo gApplyInfo[] = {
    {0, -1, 67, 10},
    {9, 4, 71, 1},
    {15, 8, 26, 1},
    {24, 12, 108, 1},
    {37, 16, 71, 1},
    {46, 20, 13, 1},
    {51, 24, 26, 1},
    {58, 28, 26, 1},
    {66, 32, 37, 1},
    {72, -2, 67, 96},
    {77, 36, 96, 1},
    {83, -3, 67, 71},
    {88, 40, 14, 1}
};

static const char gUnknown3Strings[] = 
    "x\0"
    "y"
;

static const SkMemberInfo gUnknown3Info[] = {
    {0, 36, 98, 1},
    {2, 40, 98, 1}
};

static const char gBitmapStrings[] = 
    "\0"
    "erase\0"
    "format\0"
    "height\0"
    "rowBytes\0"
    "width"
;

static const SkMemberInfo gDrawBitmapInfo[] = {
    {0, 11, 18, 2},
    {1, -1, 67, 15},
    {7, 44, 21, 1},
    {14, 48, 96, 1},
    {21, 52, 96, 1},
    {30, 56, 96, 1}
};

static const char gBitmapShaderStrings[] = 
    "\0"
    "filterType\0"
    "image"
;

static const SkMemberInfo gDrawBitmapShaderInfo[] = {
    {0, 66, 18, 2},
    {1, 16, 47, 1},
    {12, 20, 17, 1}
};

static const char gBlurStrings[] = 
    "blurStyle\0"
    "radius"
;

static const SkMemberInfo gDrawBlurInfo[] = {
    {0, 12, 63, 1},
    {10, 8, 98, 1}
};

static const char gBoundsStrings[] = 
    "\0"
    "inval"
;

static const SkMemberInfo gDisplayBoundsInfo[] = {
    {0, 57, 18, 7},
    {1, 32, 26, 1}
};

static const char gClipStrings[] = 
    "path\0"
    "rectangle"
;

static const SkMemberInfo gDrawClipInfo[] = {
    {0, 8, 74, 1},
    {5, 4, 91, 1}
};

static const char gColorStrings[] = 
    "alpha\0"
    "blue\0"
    "color\0"
    "green\0"
    "hue\0"
    "red\0"
    "saturation\0"
    "value"
;

static const SkMemberInfo gDrawColorInfo[] = {
    {0, -1, 67, 98},
    {6, -2, 67, 98},
    {11, 8, 15, 1},
    {17, -3, 67, 98},
    {23, -4, 67, 98},
    {27, -5, 67, 98},
    {31, -6, 67, 98},
    {42, -7, 67, 98}
};

static const char gCubicToStrings[] = 
    "x1\0"
    "x2\0"
    "x3\0"
    "y1\0"
    "y2\0"
    "y3"
;

static const SkMemberInfo gCubicToInfo[] = {
    {0, 8, 98, 1},
    {3, 16, 98, 1},
    {6, 24, 98, 1},
    {9, 12, 98, 1},
    {12, 20, 98, 1},
    {15, 28, 98, 1}
};

static const char gDashStrings[] = 
    "intervals\0"
    "phase"
;

static const SkMemberInfo gDashInfo[] = {
    {0, 8, 119, 98},
    {10, 16, 98, 1}
};

static const char gDataStrings[] = 
    "\0"
    "name"
;

static const SkMemberInfo gDataInfo[] = {
    {0, 32, 18, 3},
    {1, 16, 108, 1}
};

static const char gDiscreteStrings[] = 
    "deviation\0"
    "segLength"
;

static const SkMemberInfo gDiscreteInfo[] = {
    {0, 8, 98, 1},
    {10, 12, 98, 1}
};

static const char gDrawToStrings[] = 
    "drawOnce\0"
    "use"
;

static const SkMemberInfo gDrawToInfo[] = {
    {0, 36, 26, 1},
    {9, 40, 19, 1}
};

static const char gEmbossStrings[] = 
    "ambient\0"
    "direction\0"
    "radius\0"
    "specular"
;

static const SkMemberInfo gDrawEmbossInfo[] = {
    {0, -1, 67, 98},
    {8, 8, 119, 98},
    {18, 16, 98, 1},
    {25, -2, 67, 98}
};

static const char gEventStrings[] = 
    "code\0"
    "disable\0"
    "key\0"
    "keys\0"
    "kind\0"
    "target\0"
    "x\0"
    "y"
;

static const SkMemberInfo gDisplayEventInfo[] = {
    {0, 4, 43, 1},
    {5, 8, 26, 1},
    {13, -1, 67, 108},
    {17, -2, 67, 108},
    {22, 12, 44, 1},
    {27, 16, 108, 1},
    {34, 20, 98, 1},
    {36, 24, 98, 1}
};

static const char gFromPathStrings[] = 
    "mode\0"
    "offset\0"
    "path"
;

static const SkMemberInfo gFromPathInfo[] = {
    {0, 8, 49, 1},
    {5, 12, 98, 1},
    {12, 16, 74, 1}
};

static const char gUnknown4Strings[] = 
    "\0"
    "offsets\0"
    "unitMapper"
;

static const SkMemberInfo gUnknown4Info[] = {
    {0, 66, 18, 2},
    {1, 16, 119, 98},
    {9, 24, 108, 1}
};

static const char gGStrings[] = 
    "condition\0"
    "enableCondition"
;

static const SkMemberInfo gGInfo[] = {
    {0, 4, 40, 1},
    {10, 8, 40, 1}
};

static const char gHitClearStrings[] = 
    "targets"
;

static const SkMemberInfo gHitClearInfo[] = {
    {0, 4, 119, 36}
};

static const char gHitTestStrings[] = 
    "bullets\0"
    "hits\0"
    "targets\0"
    "value"
;

static const SkMemberInfo gHitTestInfo[] = {
    {0, 4, 119, 36},
    {8, 12, 119, 96},
    {13, 20, 119, 36},
    {21, 28, 26, 1}
};

static const char gImageStrings[] = 
    "\0"
    "base64\0"
    "src"
;

static const SkMemberInfo gImageInfo[] = {
    {0, 11, 18, 2},
    {1, 44, 16, 2},
    {8, 52, 108, 1}
};

static const char gIncludeStrings[] = 
    "src"
;

static const SkMemberInfo gIncludeInfo[] = {
    {0, 4, 108, 1}
};

static const char gInputStrings[] = 
    "s32\0"
    "scalar\0"
    "string"
;

static const SkMemberInfo gInputInfo[] = {
    {0, 4, 96, 1},
    {4, 8, 98, 1},
    {11, 12, 108, 1}
};

static const char gLineStrings[] = 
    "x1\0"
    "x2\0"
    "y1\0"
    "y2"
;

static const SkMemberInfo gLineInfo[] = {
    {0, 12, 98, 1},
    {3, 16, 98, 1},
    {6, 20, 98, 1},
    {9, 24, 98, 1}
};

static const char gLineToStrings[] = 
    "x\0"
    "y"
;

static const SkMemberInfo gLineToInfo[] = {
    {0, 8, 98, 1},
    {2, 12, 98, 1}
};

static const char gLinearGradientStrings[] = 
    "\0"
    "points"
;

static const SkMemberInfo gLinearGradientInfo[] = {
    {0, 26, 18, 3},
    {1, 48, 77, 4}
};

static const char gMatrixStrings[] = 
    "matrix\0"
    "perspectX\0"
    "perspectY\0"
    "rotate\0"
    "scale\0"
    "scaleX\0"
    "scaleY\0"
    "skewX\0"
    "skewY\0"
    "translate\0"
    "translateX\0"
    "translateY"
;

static const SkMemberInfo gDrawMatrixInfo[] = {
    {0, 4, 119, 98},
    {7, -1, 67, 98},
    {17, -2, 67, 98},
    {27, -3, 67, 98},
    {34, -4, 67, 98},
    {40, -5, 67, 98},
    {47, -6, 67, 98},
    {54, -7, 67, 98},
    {60, -8, 67, 98},
    {66, -9, 67, 77},
    {76, -10, 67, 98},
    {87, -11, 67, 98}
};

static const char gMoveStrings[] = 
    ""
;

static const SkMemberInfo gMoveInfo[] = {
    {0, 1, 18, 4}
};

static const char gMoveToStrings[] = 
    "x\0"
    "y"
;

static const SkMemberInfo gMoveToInfo[] = {
    {0, 8, 98, 1},
    {2, 12, 98, 1}
};

static const char gMovieStrings[] = 
    "src"
;

static const SkMemberInfo gMovieInfo[] = {
    {0, 4, 108, 1}
};

static const char gOvalStrings[] = 
    ""
;

static const SkMemberInfo gOvalInfo[] = {
    {0, 57, 18, 7}
};

static const char gPaintStrings[] = 
    "antiAlias\0"
    "ascent\0"
    "color\0"
    "descent\0"
    "filterType\0"
    "linearText\0"
    "maskFilter\0"
    "measureText\0"
    "pathEffect\0"
    "shader\0"
    "strikeThru\0"
    "stroke\0"
    "strokeCap\0"
    "strokeJoin\0"
    "strokeMiter\0"
    "strokeWidth\0"
    "style\0"
    "textAlign\0"
    "textScaleX\0"
    "textSize\0"
    "textSkewX\0"
    "textTracking\0"
    "typeface\0"
    "underline\0"
    "xfermode"
;

static const SkMemberInfo gDrawPaintInfo[] = {
    {0, 4, 26, 1},
    {10, -1, 67, 98},
    {17, 8, 31, 1},
    {23, -2, 67, 98},
    {31, 12, 47, 1},
    {42, 16, 26, 1},
    {53, 20, 62, 1},
    {64, -1, 66, 98},
    {76, 24, 76, 1},
    {87, 28, 102, 1},
    {94, 32, 26, 1},
    {105, 36, 26, 1},
    {112, 40, 27, 1},
    {122, 44, 58, 1},
    {133, 48, 98, 1},
    {145, 52, 98, 1},
    {157, 56, 109, 1},
    {163, 60, 9, 1},
    {173, 64, 98, 1},
    {184, 68, 98, 1},
    {193, 72, 98, 1},
    {203, 76, 98, 1},
    {216, 80, 120, 1},
    {225, 84, 26, 1},
    {235, 88, 121, 1}
};

static const char gPathStrings[] = 
    "d\0"
    "fillType\0"
    "length"
;

static const SkMemberInfo gDrawPathInfo[] = {
    {0, 32, 108, 1},
    {2, -1, 67, 46},
    {11, -2, 67, 98}
};

static const char gUnknown5Strings[] = 
    "x\0"
    "y\0"
    "z"
;

static const SkMemberInfo gUnknown5Info[] = {
    {0, 0, 98, 1},
    {2, 4, 98, 1},
    {4, 8, 98, 1}
};

static const char gPointStrings[] = 
    "x\0"
    "y"
;

static const SkMemberInfo gDrawPointInfo[] = {
    {0, 4, 98, 1},
    {2, 8, 98, 1}
};

static const char gPolyToPolyStrings[] = 
    "destination\0"
    "source"
;

static const SkMemberInfo gPolyToPolyInfo[] = {
    {0, 12, 80, 1},
    {12, 8, 80, 1}
};

static const char gPolygonStrings[] = 
    ""
;

static const SkMemberInfo gPolygonInfo[] = {
    {0, 47, 18, 1}
};

static const char gPolylineStrings[] = 
    "points"
;

static const SkMemberInfo gPolylineInfo[] = {
    {0, 56, 119, 98}
};

static const char gPostStrings[] = 
    "delay\0"
    "initialized\0"
    "mode\0"
    "sink\0"
    "target\0"
    "type"
;

static const SkMemberInfo gPostInfo[] = {
    {0, 4, 71, 1},
    {6, 8, 26, 1},
    {18, 12, 45, 1},
    {23, -1, 67, 108},
    {28, -2, 67, 108},
    {35, -3, 67, 108}
};

static const char gQuadToStrings[] = 
    "x1\0"
    "x2\0"
    "y1\0"
    "y2"
;

static const SkMemberInfo gQuadToInfo[] = {
    {0, 8, 98, 1},
    {3, 16, 98, 1},
    {6, 12, 98, 1},
    {9, 20, 98, 1}
};

static const char gRCubicToStrings[] = 
    ""
;

static const SkMemberInfo gRCubicToInfo[] = {
    {0, 18, 18, 6}
};

static const char gRLineToStrings[] = 
    ""
;

static const SkMemberInfo gRLineToInfo[] = {
    {0, 34, 18, 2}
};

static const char gRMoveToStrings[] = 
    ""
;

static const SkMemberInfo gRMoveToInfo[] = {
    {0, 38, 18, 2}
};

static const char gRQuadToStrings[] = 
    ""
;

static const SkMemberInfo gRQuadToInfo[] = {
    {0, 49, 18, 4}
};

static const char gRadialGradientStrings[] = 
    "\0"
    "center\0"
    "radius"
;

static const SkMemberInfo gRadialGradientInfo[] = {
    {0, 26, 18, 3},
    {1, 48, 77, 2},
    {8, 56, 98, 1}
};

static const char gRandomStrings[] = 
    "blend\0"
    "max\0"
    "min\0"
    "random\0"
    "seed"
;

static const SkMemberInfo gDisplayRandomInfo[] = {
    {0, 4, 98, 1},
    {6, 12, 98, 1},
    {10, 8, 98, 1},
    {14, 1, 67, 98},
    {21, -2, 67, 96}
};

static const char gRectToRectStrings[] = 
    "destination\0"
    "source"
;

static const SkMemberInfo gRectToRectInfo[] = {
    {0, 12, 91, 1},
    {12, 8, 91, 1}
};

static const char gRectangleStrings[] = 
    "bottom\0"
    "height\0"
    "left\0"
    "needsRedraw\0"
    "right\0"
    "top\0"
    "width"
;

static const SkMemberInfo gRectangleInfo[] = {
    {0, 24, 98, 1},
    {7, -1, 67, 98},
    {14, 12, 98, 1},
    {19, -2, 67, 26},
    {31, 20, 98, 1},
    {37, 16, 98, 1},
    {41, -3, 67, 98}
};

static const char gRemoveStrings[] = 
    "offset\0"
    "where"
;

static const SkMemberInfo gRemoveInfo[] = {
    {0, 8, 96, 1},
    {7, 16, 37, 1}
};

static const char gReplaceStrings[] = 
    ""
;

static const SkMemberInfo gReplaceInfo[] = {
    {0, 1, 18, 4}
};

static const char gRotateStrings[] = 
    "center\0"
    "degrees"
;

static const SkMemberInfo gRotateInfo[] = {
    {0, 12, 77, 2},
    {7, 8, 98, 1}
};

static const char gRoundRectStrings[] = 
    "\0"
    "rx\0"
    "ry"
;

static const SkMemberInfo gRoundRectInfo[] = {
    {0, 57, 18, 7},
    {1, 32, 98, 1},
    {4, 36, 98, 1}
};

static const char gS32Strings[] = 
    "value"
;

static const SkMemberInfo gS32Info[] = {
    {0, 4, 96, 1}
};

static const char gScalarStrings[] = 
    "value"
;

static const SkMemberInfo gScalarInfo[] = {
    {0, 4, 98, 1}
};

static const char gScaleStrings[] = 
    "center\0"
    "x\0"
    "y"
;

static const SkMemberInfo gScaleInfo[] = {
    {0, 16, 77, 2},
    {7, 8, 98, 1},
    {9, 12, 98, 1}
};

static const char gSetStrings[] = 
    "begin\0"
    "dur\0"
    "dynamic\0"
    "field\0"
    "formula\0"
    "reset\0"
    "target\0"
    "to"
;

static const SkMemberInfo gSetInfo[] = {
    {0, 4, 71, 1},
    {6, 16, 71, 1},
    {10, -1, 67, 26},
    {18, 20, 108, 1},
    {24, 24, 40, 1},
    {32, -3, 67, 26},
    {38, 36, 40, 1},
    {45, 40, 40, 1}
};

static const char gShaderStrings[] = 
    "matrix\0"
    "tileMode"
;

static const SkMemberInfo gShaderInfo[] = {
    {0, 8, 65, 1},
    {7, 12, 116, 1}
};

static const char gSkewStrings[] = 
    "center\0"
    "x\0"
    "y"
;

static const SkMemberInfo gSkewInfo[] = {
    {0, 16, 77, 2},
    {7, 8, 98, 1},
    {9, 12, 98, 1}
};

static const char g3D_CameraStrings[] = 
    "axis\0"
    "hackHeight\0"
    "hackWidth\0"
    "location\0"
    "observer\0"
    "patch\0"
    "zenith"
;

static const SkMemberInfo g3D_CameraInfo[] = {
    {0, 24, 106, 3},
    {5, 8, 98, 1},
    {16, 4, 98, 1},
    {26, 12, 106, 3},
    {35, 48, 106, 3},
    {44, 96, 105, 1},
    {50, 36, 106, 3}
};

static const char g3D_PatchStrings[] = 
    "origin\0"
    "rotateDegrees\0"
    "u\0"
    "v"
;

static const SkMemberInfo g3D_PatchInfo[] = {
    {0, 28, 106, 3},
    {7, -1, 66, 98},
    {21, 4, 106, 3},
    {23, 16, 106, 3}
};

static const char gUnknown6Strings[] = 
    "x\0"
    "y\0"
    "z"
;

static const SkMemberInfo gUnknown6Info[] = {
    {0, 0, 98, 1},
    {2, 4, 98, 1},
    {4, 8, 98, 1}
};

static const char gSnapshotStrings[] = 
    "filename\0"
    "quality\0"
    "sequence\0"
    "type"
;

static const SkMemberInfo gSnapshotInfo[] = {
    {0, 4, 108, 1},
    {9, 8, 98, 1},
    {17, 12, 26, 1},
    {26, 16, 20, 1}
};

static const char gStringStrings[] = 
    "length\0"
    "slice\0"
    "value"
;

static const SkMemberInfo gStringInfo[] = {
    {0, -1, 67, 96},
    {7, -1, 66, 108},
    {13, 4, 108, 1}
};

static const char gTextStrings[] = 
    "length\0"
    "text\0"
    "x\0"
    "y"
;

static const SkMemberInfo gTextInfo[] = {
    {0, -1, 67, 96},
    {7, 12, 108, 1},
    {12, 16, 98, 1},
    {14, 20, 98, 1}
};

static const char gTextBoxStrings[] = 
    "\0"
    "mode\0"
    "spacingAdd\0"
    "spacingAlign\0"
    "spacingMul\0"
    "text"
;

static const SkMemberInfo gTextBoxInfo[] = {
    {0, 57, 18, 7},
    {1, 44, 113, 1},
    {6, 40, 98, 1},
    {17, 48, 112, 1},
    {30, 36, 98, 1},
    {41, 32, 108, 1}
};

static const char gTextOnPathStrings[] = 
    "offset\0"
    "path\0"
    "text"
;

static const SkMemberInfo gTextOnPathInfo[] = {
    {0, 12, 98, 1},
    {7, 16, 74, 1},
    {12, 20, 110, 1}
};

static const char gTextToPathStrings[] = 
    "path\0"
    "text"
;

static const SkMemberInfo gTextToPathInfo[] = {
    {0, 4, 74, 1},
    {5, 8, 110, 1}
};

static const char gTranslateStrings[] = 
    "x\0"
    "y"
;

static const SkMemberInfo gTranslateInfo[] = {
    {0, 8, 98, 1},
    {2, 12, 98, 1}
};

static const char gTypedArrayStrings[] = 
    "length\0"
    "values"
;

static const SkMemberInfo gTypedArrayInfo[] = {
    {0, -1, 67, 96},
    {7, 4, 119, 0}
};

static const char gTypefaceStrings[] = 
    "fontName"
;

static const SkMemberInfo gTypefaceInfo[] = {
    {0, 8, 108, 1}
};

static const SkMemberInfo* const gInfoTables[] = {
    gMathInfo,
    gAddInfo,
    gAddCircleInfo,
    gUnknown1Info,
    gAddOvalInfo,
    gAddPathInfo,
    gAddRectangleInfo,
    gAddRoundRectInfo,
    gUnknown2Info,
    gAnimateFieldInfo,
    gApplyInfo,
    gUnknown3Info,
    gDrawBitmapInfo,
    gDrawBitmapShaderInfo,
    gDrawBlurInfo,
    gDisplayBoundsInfo,
    gDrawClipInfo,
    gDrawColorInfo,
    gCubicToInfo,
    gDashInfo,
    gDataInfo,
    gDiscreteInfo,
    gDrawToInfo,
    gDrawEmbossInfo,
    gDisplayEventInfo,
    gFromPathInfo,
    gUnknown4Info,
    gGInfo,
    gHitClearInfo,
    gHitTestInfo,
    gImageInfo,
    gIncludeInfo,
    gInputInfo,
    gLineInfo,
    gLineToInfo,
    gLinearGradientInfo,
    gDrawMatrixInfo,
    gMoveInfo,
    gMoveToInfo,
    gMovieInfo,
    gOvalInfo,
    gDrawPaintInfo,
    gDrawPathInfo,
    gUnknown5Info,
    gDrawPointInfo,
    gPolyToPolyInfo,
    gPolygonInfo,
    gPolylineInfo,
    gPostInfo,
    gQuadToInfo,
    gRCubicToInfo,
    gRLineToInfo,
    gRMoveToInfo,
    gRQuadToInfo,
    gRadialGradientInfo,
    gDisplayRandomInfo,
    gRectToRectInfo,
    gRectangleInfo,
    gRemoveInfo,
    gReplaceInfo,
    gRotateInfo,
    gRoundRectInfo,
    gS32Info,
    gScalarInfo,
    gScaleInfo,
    gSetInfo,
    gShaderInfo,
    gSkewInfo,
    g3D_CameraInfo,
    g3D_PatchInfo,
    gUnknown6Info,
    gSnapshotInfo,
    gStringInfo,
    gTextInfo,
    gTextBoxInfo,
    gTextOnPathInfo,
    gTextToPathInfo,
    gTranslateInfo,
    gTypedArrayInfo,
    gTypefaceInfo,
};

static const unsigned char gInfoCounts[] = {
    26,4,4,1,1,2,5,3,13,1,13,2,6,3,2,2,2,8,6,
    2,2,2,2,4,8,3,3,2,1,4,3,1,3,4,2,2,12,1,2,
    1,1,25,3,3,2,2,1,1,6,4,1,1,1,1,3,5,2,7,2,
    1,2,3,1,1,3,8,2,3,7,4,3,4,3,4,6,3,2,2,2,
    1
};

static const unsigned char gTypeIDs[] = {
    1, // Math
    2, // Add
    3, // AddCircle
    4, // Unknown1
    5, // AddOval
    6, // AddPath
    7, // AddRectangle
    8, // AddRoundRect
    10, // Unknown2
    11, // AnimateField
    12, // Apply
    17, // Unknown3
    19, // Bitmap
    22, // BitmapShader
    23, // Blur
    25, // Bounds
    29, // Clip
    31, // Color
    32, // CubicTo
    33, // Dash
    34, // Data
    35, // Discrete
    38, // DrawTo
    41, // Emboss
    42, // Event
    48, // FromPath
    51, // Unknown4
    52, // G
    53, // HitClear
    54, // HitTest
    55, // Image
    56, // Include
    57, // Input
    59, // Line
    60, // LineTo
    61, // LinearGradient
    65, // Matrix
    68, // Move
    69, // MoveTo
    70, // Movie
    72, // Oval
    73, // Paint
    74, // Path
    77, // Unknown5
    78, // Point
    79, // PolyToPoly
    80, // Polygon
    81, // Polyline
    82, // Post
    83, // QuadTo
    84, // RCubicTo
    85, // RLineTo
    86, // RMoveTo
    87, // RQuadTo
    88, // RadialGradient
    89, // Random
    90, // RectToRect
    91, // Rectangle
    92, // Remove
    93, // Replace
    94, // Rotate
    95, // RoundRect
    96, // S32
    98, // Scalar
    99, // Scale
    101, // Set
    102, // Shader
    103, // Skew
    104, // 3D_Camera
    105, // 3D_Patch
    106, // Unknown6
    107, // Snapshot
    108, // String
    110, // Text
    111, // TextBox
    114, // TextOnPath
    115, // TextToPath
    117, // Translate
    119, // TypedArray
    120, // Typeface
    
};

static const int kTypeIDs = 80;

static const char* const gInfoNames[] = {
    gMathStrings,
    gAddStrings,
    gAddCircleStrings,
    gUnknown1Strings,
    gAddOvalStrings,
    gAddPathStrings,
    gAddRectangleStrings,
    gAddRoundRectStrings,
    gUnknown2Strings,
    gAnimateFieldStrings,
    gApplyStrings,
    gUnknown3Strings,
    gBitmapStrings,
    gBitmapShaderStrings,
    gBlurStrings,
    gBoundsStrings,
    gClipStrings,
    gColorStrings,
    gCubicToStrings,
    gDashStrings,
    gDataStrings,
    gDiscreteStrings,
    gDrawToStrings,
    gEmbossStrings,
    gEventStrings,
    gFromPathStrings,
    gUnknown4Strings,
    gGStrings,
    gHitClearStrings,
    gHitTestStrings,
    gImageStrings,
    gIncludeStrings,
    gInputStrings,
    gLineStrings,
    gLineToStrings,
    gLinearGradientStrings,
    gMatrixStrings,
    gMoveStrings,
    gMoveToStrings,
    gMovieStrings,
    gOvalStrings,
    gPaintStrings,
    gPathStrings,
    gUnknown5Strings,
    gPointStrings,
    gPolyToPolyStrings,
    gPolygonStrings,
    gPolylineStrings,
    gPostStrings,
    gQuadToStrings,
    gRCubicToStrings,
    gRLineToStrings,
    gRMoveToStrings,
    gRQuadToStrings,
    gRadialGradientStrings,
    gRandomStrings,
    gRectToRectStrings,
    gRectangleStrings,
    gRemoveStrings,
    gReplaceStrings,
    gRotateStrings,
    gRoundRectStrings,
    gS32Strings,
    gScalarStrings,
    gScaleStrings,
    gSetStrings,
    gShaderStrings,
    gSkewStrings,
    g3D_CameraStrings,
    g3D_PatchStrings,
    gUnknown6Strings,
    gSnapshotStrings,
    gStringStrings,
    gTextStrings,
    gTextBoxStrings,
    gTextOnPathStrings,
    gTextToPathStrings,
    gTranslateStrings,
    gTypedArrayStrings,
    gTypefaceStrings
};
#endif
#endif

