/* libs/graphics/animator/SkCondensedRelease.cpp
**
** Copyright 2006, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License"); 
** you may not use this file except in compliance with the License. 
** You may obtain a copy of the License at 
**
**     http://www.apache.org/licenses/LICENSE-2.0 
**
** Unless required by applicable law or agreed to in writing, software 
** distributed under the License is distributed on an "AS IS" BASIS, 
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
** See the License for the specific language governing permissions and 
** limitations under the License.
*/

#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

