(function (global, factory) {
  if (typeof define === "function" && define.amd) {
    define(["exports"], factory);
  } else if (typeof exports !== "undefined") {
    factory(exports);
  } else {
    var mod = {
      exports: {}
    };
    factory(mod.exports);
    global.mmdparserModule = mod.exports;
  }
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.CharsetEncoder = CharsetEncoder;
  _exports.MMDParser = void 0;
  _exports.Parser = Parser;

  /**
   * @author Takahiro / https://github.com/takahirox
   *
   * Simple CharsetEncoder.
   */
  function CharsetEncoder() {}
  /*
   * Converts from Shift_JIS Uint8Array data to Unicode strings.
   */


  CharsetEncoder.prototype.s2u = function (uint8Array) {
    var t = this.s2uTable;
    var str = '';
    var p = 0;

    while (p < uint8Array.length) {
      var key = uint8Array[p++];

      if (!(key >= 0x00 && key <= 0x7e || key >= 0xa1 && key <= 0xdf) && p < uint8Array.length) {
        key = key << 8 | uint8Array[p++];
      }

      if (t[key] === undefined) {
        console.error('unknown char code ' + key + '.');
        return str;
      }

      str += String.fromCharCode(t[key]);
    }

    return str;
  };

  CharsetEncoder.prototype.s2uTable = {
    0: 0,
    1: 1,
    2: 2,
    3: 3,
    4: 4,
    5: 5,
    6: 6,
    7: 7,
    8: 8,
    9: 9,
    10: 10,
    11: 11,
    12: 12,
    13: 13,
    14: 14,
    15: 15,
    16: 16,
    17: 17,
    18: 18,
    19: 19,
    20: 20,
    21: 21,
    22: 22,
    23: 23,
    24: 24,
    25: 25,
    26: 26,
    27: 27,
    28: 28,
    29: 29,
    30: 30,
    31: 31,
    32: 32,
    33: 33,
    34: 34,
    35: 35,
    36: 36,
    37: 37,
    38: 38,
    39: 39,
    40: 40,
    41: 41,
    42: 42,
    43: 43,
    44: 44,
    45: 45,
    46: 46,
    47: 47,
    48: 48,
    49: 49,
    50: 50,
    51: 51,
    52: 52,
    53: 53,
    54: 54,
    55: 55,
    56: 56,
    57: 57,
    58: 58,
    59: 59,
    60: 60,
    61: 61,
    62: 62,
    63: 63,
    64: 64,
    65: 65,
    66: 66,
    67: 67,
    68: 68,
    69: 69,
    70: 70,
    71: 71,
    72: 72,
    73: 73,
    74: 74,
    75: 75,
    76: 76,
    77: 77,
    78: 78,
    79: 79,
    80: 80,
    81: 81,
    82: 82,
    83: 83,
    84: 84,
    85: 85,
    86: 86,
    87: 87,
    88: 88,
    89: 89,
    90: 90,
    91: 91,
    92: 92,
    93: 93,
    94: 94,
    95: 95,
    96: 96,
    97: 97,
    98: 98,
    99: 99,
    100: 100,
    101: 101,
    102: 102,
    103: 103,
    104: 104,
    105: 105,
    106: 106,
    107: 107,
    108: 108,
    109: 109,
    110: 110,
    111: 111,
    112: 112,
    113: 113,
    114: 114,
    115: 115,
    116: 116,
    117: 117,
    118: 118,
    119: 119,
    120: 120,
    121: 121,
    122: 122,
    123: 123,
    124: 124,
    125: 125,
    126: 126,
    161: 65377,
    162: 65378,
    163: 65379,
    164: 65380,
    165: 65381,
    166: 65382,
    167: 65383,
    168: 65384,
    169: 65385,
    170: 65386,
    171: 65387,
    172: 65388,
    173: 65389,
    174: 65390,
    175: 65391,
    176: 65392,
    177: 65393,
    178: 65394,
    179: 65395,
    180: 65396,
    181: 65397,
    182: 65398,
    183: 65399,
    184: 65400,
    185: 65401,
    186: 65402,
    187: 65403,
    188: 65404,
    189: 65405,
    190: 65406,
    191: 65407,
    192: 65408,
    193: 65409,
    194: 65410,
    195: 65411,
    196: 65412,
    197: 65413,
    198: 65414,
    199: 65415,
    200: 65416,
    201: 65417,
    202: 65418,
    203: 65419,
    204: 65420,
    205: 65421,
    206: 65422,
    207: 65423,
    208: 65424,
    209: 65425,
    210: 65426,
    211: 65427,
    212: 65428,
    213: 65429,
    214: 65430,
    215: 65431,
    216: 65432,
    217: 65433,
    218: 65434,
    219: 65435,
    220: 65436,
    221: 65437,
    222: 65438,
    223: 65439,
    33088: 12288,
    33089: 12289,
    33090: 12290,
    33091: 65292,
    33092: 65294,
    33093: 12539,
    33094: 65306,
    33095: 65307,
    33096: 65311,
    33097: 65281,
    33098: 12443,
    33099: 12444,
    33100: 180,
    33101: 65344,
    33102: 168,
    33103: 65342,
    33104: 65507,
    33105: 65343,
    33106: 12541,
    33107: 12542,
    33108: 12445,
    33109: 12446,
    33110: 12291,
    33111: 20189,
    33112: 12293,
    33113: 12294,
    33114: 12295,
    33115: 12540,
    33116: 8213,
    33117: 8208,
    33118: 65295,
    33119: 65340,
    33120: 65374,
    33121: 8741,
    33122: 65372,
    33123: 8230,
    33124: 8229,
    33125: 8216,
    33126: 8217,
    33127: 8220,
    33128: 8221,
    33129: 65288,
    33130: 65289,
    33131: 12308,
    33132: 12309,
    33133: 65339,
    33134: 65341,
    33135: 65371,
    33136: 65373,
    33137: 12296,
    33138: 12297,
    33139: 12298,
    33140: 12299,
    33141: 12300,
    33142: 12301,
    33143: 12302,
    33144: 12303,
    33145: 12304,
    33146: 12305,
    33147: 65291,
    33148: 65293,
    33149: 177,
    33150: 215,
    33152: 247,
    33153: 65309,
    33154: 8800,
    33155: 65308,
    33156: 65310,
    33157: 8806,
    33158: 8807,
    33159: 8734,
    33160: 8756,
    33161: 9794,
    33162: 9792,
    33163: 176,
    33164: 8242,
    33165: 8243,
    33166: 8451,
    33167: 65509,
    33168: 65284,
    33169: 65504,
    33170: 65505,
    33171: 65285,
    33172: 65283,
    33173: 65286,
    33174: 65290,
    33175: 65312,
    33176: 167,
    33177: 9734,
    33178: 9733,
    33179: 9675,
    33180: 9679,
    33181: 9678,
    33182: 9671,
    33183: 9670,
    33184: 9633,
    33185: 9632,
    33186: 9651,
    33187: 9650,
    33188: 9661,
    33189: 9660,
    33190: 8251,
    33191: 12306,
    33192: 8594,
    33193: 8592,
    33194: 8593,
    33195: 8595,
    33196: 12307,
    33208: 8712,
    33209: 8715,
    33210: 8838,
    33211: 8839,
    33212: 8834,
    33213: 8835,
    33214: 8746,
    33215: 8745,
    33224: 8743,
    33225: 8744,
    33226: 65506,
    33227: 8658,
    33228: 8660,
    33229: 8704,
    33230: 8707,
    33242: 8736,
    33243: 8869,
    33244: 8978,
    33245: 8706,
    33246: 8711,
    33247: 8801,
    33248: 8786,
    33249: 8810,
    33250: 8811,
    33251: 8730,
    33252: 8765,
    33253: 8733,
    33254: 8757,
    33255: 8747,
    33256: 8748,
    33264: 8491,
    33265: 8240,
    33266: 9839,
    33267: 9837,
    33268: 9834,
    33269: 8224,
    33270: 8225,
    33271: 182,
    33276: 9711,
    33359: 65296,
    33360: 65297,
    33361: 65298,
    33362: 65299,
    33363: 65300,
    33364: 65301,
    33365: 65302,
    33366: 65303,
    33367: 65304,
    33368: 65305,
    33376: 65313,
    33377: 65314,
    33378: 65315,
    33379: 65316,
    33380: 65317,
    33381: 65318,
    33382: 65319,
    33383: 65320,
    33384: 65321,
    33385: 65322,
    33386: 65323,
    33387: 65324,
    33388: 65325,
    33389: 65326,
    33390: 65327,
    33391: 65328,
    33392: 65329,
    33393: 65330,
    33394: 65331,
    33395: 65332,
    33396: 65333,
    33397: 65334,
    33398: 65335,
    33399: 65336,
    33400: 65337,
    33401: 65338,
    33409: 65345,
    33410: 65346,
    33411: 65347,
    33412: 65348,
    33413: 65349,
    33414: 65350,
    33415: 65351,
    33416: 65352,
    33417: 65353,
    33418: 65354,
    33419: 65355,
    33420: 65356,
    33421: 65357,
    33422: 65358,
    33423: 65359,
    33424: 65360,
    33425: 65361,
    33426: 65362,
    33427: 65363,
    33428: 65364,
    33429: 65365,
    33430: 65366,
    33431: 65367,
    33432: 65368,
    33433: 65369,
    33434: 65370,
    33439: 12353,
    33440: 12354,
    33441: 12355,
    33442: 12356,
    33443: 12357,
    33444: 12358,
    33445: 12359,
    33446: 12360,
    33447: 12361,
    33448: 12362,
    33449: 12363,
    33450: 12364,
    33451: 12365,
    33452: 12366,
    33453: 12367,
    33454: 12368,
    33455: 12369,
    33456: 12370,
    33457: 12371,
    33458: 12372,
    33459: 12373,
    33460: 12374,
    33461: 12375,
    33462: 12376,
    33463: 12377,
    33464: 12378,
    33465: 12379,
    33466: 12380,
    33467: 12381,
    33468: 12382,
    33469: 12383,
    33470: 12384,
    33471: 12385,
    33472: 12386,
    33473: 12387,
    33474: 12388,
    33475: 12389,
    33476: 12390,
    33477: 12391,
    33478: 12392,
    33479: 12393,
    33480: 12394,
    33481: 12395,
    33482: 12396,
    33483: 12397,
    33484: 12398,
    33485: 12399,
    33486: 12400,
    33487: 12401,
    33488: 12402,
    33489: 12403,
    33490: 12404,
    33491: 12405,
    33492: 12406,
    33493: 12407,
    33494: 12408,
    33495: 12409,
    33496: 12410,
    33497: 12411,
    33498: 12412,
    33499: 12413,
    33500: 12414,
    33501: 12415,
    33502: 12416,
    33503: 12417,
    33504: 12418,
    33505: 12419,
    33506: 12420,
    33507: 12421,
    33508: 12422,
    33509: 12423,
    33510: 12424,
    33511: 12425,
    33512: 12426,
    33513: 12427,
    33514: 12428,
    33515: 12429,
    33516: 12430,
    33517: 12431,
    33518: 12432,
    33519: 12433,
    33520: 12434,
    33521: 12435,
    33600: 12449,
    33601: 12450,
    33602: 12451,
    33603: 12452,
    33604: 12453,
    33605: 12454,
    33606: 12455,
    33607: 12456,
    33608: 12457,
    33609: 12458,
    33610: 12459,
    33611: 12460,
    33612: 12461,
    33613: 12462,
    33614: 12463,
    33615: 12464,
    33616: 12465,
    33617: 12466,
    33618: 12467,
    33619: 12468,
    33620: 12469,
    33621: 12470,
    33622: 12471,
    33623: 12472,
    33624: 12473,
    33625: 12474,
    33626: 12475,
    33627: 12476,
    33628: 12477,
    33629: 12478,
    33630: 12479,
    33631: 12480,
    33632: 12481,
    33633: 12482,
    33634: 12483,
    33635: 12484,
    33636: 12485,
    33637: 12486,
    33638: 12487,
    33639: 12488,
    33640: 12489,
    33641: 12490,
    33642: 12491,
    33643: 12492,
    33644: 12493,
    33645: 12494,
    33646: 12495,
    33647: 12496,
    33648: 12497,
    33649: 12498,
    33650: 12499,
    33651: 12500,
    33652: 12501,
    33653: 12502,
    33654: 12503,
    33655: 12504,
    33656: 12505,
    33657: 12506,
    33658: 12507,
    33659: 12508,
    33660: 12509,
    33661: 12510,
    33662: 12511,
    33664: 12512,
    33665: 12513,
    33666: 12514,
    33667: 12515,
    33668: 12516,
    33669: 12517,
    33670: 12518,
    33671: 12519,
    33672: 12520,
    33673: 12521,
    33674: 12522,
    33675: 12523,
    33676: 12524,
    33677: 12525,
    33678: 12526,
    33679: 12527,
    33680: 12528,
    33681: 12529,
    33682: 12530,
    33683: 12531,
    33684: 12532,
    33685: 12533,
    33686: 12534,
    33695: 913,
    33696: 914,
    33697: 915,
    33698: 916,
    33699: 917,
    33700: 918,
    33701: 919,
    33702: 920,
    33703: 921,
    33704: 922,
    33705: 923,
    33706: 924,
    33707: 925,
    33708: 926,
    33709: 927,
    33710: 928,
    33711: 929,
    33712: 931,
    33713: 932,
    33714: 933,
    33715: 934,
    33716: 935,
    33717: 936,
    33718: 937,
    33727: 945,
    33728: 946,
    33729: 947,
    33730: 948,
    33731: 949,
    33732: 950,
    33733: 951,
    33734: 952,
    33735: 953,
    33736: 954,
    33737: 955,
    33738: 956,
    33739: 957,
    33740: 958,
    33741: 959,
    33742: 960,
    33743: 961,
    33744: 963,
    33745: 964,
    33746: 965,
    33747: 966,
    33748: 967,
    33749: 968,
    33750: 969,
    33856: 1040,
    33857: 1041,
    33858: 1042,
    33859: 1043,
    33860: 1044,
    33861: 1045,
    33862: 1025,
    33863: 1046,
    33864: 1047,
    33865: 1048,
    33866: 1049,
    33867: 1050,
    33868: 1051,
    33869: 1052,
    33870: 1053,
    33871: 1054,
    33872: 1055,
    33873: 1056,
    33874: 1057,
    33875: 1058,
    33876: 1059,
    33877: 1060,
    33878: 1061,
    33879: 1062,
    33880: 1063,
    33881: 1064,
    33882: 1065,
    33883: 1066,
    33884: 1067,
    33885: 1068,
    33886: 1069,
    33887: 1070,
    33888: 1071,
    33904: 1072,
    33905: 1073,
    33906: 1074,
    33907: 1075,
    33908: 1076,
    33909: 1077,
    33910: 1105,
    33911: 1078,
    33912: 1079,
    33913: 1080,
    33914: 1081,
    33915: 1082,
    33916: 1083,
    33917: 1084,
    33918: 1085,
    33920: 1086,
    33921: 1087,
    33922: 1088,
    33923: 1089,
    33924: 1090,
    33925: 1091,
    33926: 1092,
    33927: 1093,
    33928: 1094,
    33929: 1095,
    33930: 1096,
    33931: 1097,
    33932: 1098,
    33933: 1099,
    33934: 1100,
    33935: 1101,
    33936: 1102,
    33937: 1103,
    33951: 9472,
    33952: 9474,
    33953: 9484,
    33954: 9488,
    33955: 9496,
    33956: 9492,
    33957: 9500,
    33958: 9516,
    33959: 9508,
    33960: 9524,
    33961: 9532,
    33962: 9473,
    33963: 9475,
    33964: 9487,
    33965: 9491,
    33966: 9499,
    33967: 9495,
    33968: 9507,
    33969: 9523,
    33970: 9515,
    33971: 9531,
    33972: 9547,
    33973: 9504,
    33974: 9519,
    33975: 9512,
    33976: 9527,
    33977: 9535,
    33978: 9501,
    33979: 9520,
    33980: 9509,
    33981: 9528,
    33982: 9538,
    34624: 9312,
    34625: 9313,
    34626: 9314,
    34627: 9315,
    34628: 9316,
    34629: 9317,
    34630: 9318,
    34631: 9319,
    34632: 9320,
    34633: 9321,
    34634: 9322,
    34635: 9323,
    34636: 9324,
    34637: 9325,
    34638: 9326,
    34639: 9327,
    34640: 9328,
    34641: 9329,
    34642: 9330,
    34643: 9331,
    34644: 8544,
    34645: 8545,
    34646: 8546,
    34647: 8547,
    34648: 8548,
    34649: 8549,
    34650: 8550,
    34651: 8551,
    34652: 8552,
    34653: 8553,
    34655: 13129,
    34656: 13076,
    34657: 13090,
    34658: 13133,
    34659: 13080,
    34660: 13095,
    34661: 13059,
    34662: 13110,
    34663: 13137,
    34664: 13143,
    34665: 13069,
    34666: 13094,
    34667: 13091,
    34668: 13099,
    34669: 13130,
    34670: 13115,
    34671: 13212,
    34672: 13213,
    34673: 13214,
    34674: 13198,
    34675: 13199,
    34676: 13252,
    34677: 13217,
    34686: 13179,
    34688: 12317,
    34689: 12319,
    34690: 8470,
    34691: 13261,
    34692: 8481,
    34693: 12964,
    34694: 12965,
    34695: 12966,
    34696: 12967,
    34697: 12968,
    34698: 12849,
    34699: 12850,
    34700: 12857,
    34701: 13182,
    34702: 13181,
    34703: 13180,
    34704: 8786,
    34705: 8801,
    34706: 8747,
    34707: 8750,
    34708: 8721,
    34709: 8730,
    34710: 8869,
    34711: 8736,
    34712: 8735,
    34713: 8895,
    34714: 8757,
    34715: 8745,
    34716: 8746,
    34975: 20124,
    34976: 21782,
    34977: 23043,
    34978: 38463,
    34979: 21696,
    34980: 24859,
    34981: 25384,
    34982: 23030,
    34983: 36898,
    34984: 33909,
    34985: 33564,
    34986: 31312,
    34987: 24746,
    34988: 25569,
    34989: 28197,
    34990: 26093,
    34991: 33894,
    34992: 33446,
    34993: 39925,
    34994: 26771,
    34995: 22311,
    34996: 26017,
    34997: 25201,
    34998: 23451,
    34999: 22992,
    35000: 34427,
    35001: 39156,
    35002: 32098,
    35003: 32190,
    35004: 39822,
    35005: 25110,
    35006: 31903,
    35007: 34999,
    35008: 23433,
    35009: 24245,
    35010: 25353,
    35011: 26263,
    35012: 26696,
    35013: 38343,
    35014: 38797,
    35015: 26447,
    35016: 20197,
    35017: 20234,
    35018: 20301,
    35019: 20381,
    35020: 20553,
    35021: 22258,
    35022: 22839,
    35023: 22996,
    35024: 23041,
    35025: 23561,
    35026: 24799,
    35027: 24847,
    35028: 24944,
    35029: 26131,
    35030: 26885,
    35031: 28858,
    35032: 30031,
    35033: 30064,
    35034: 31227,
    35035: 32173,
    35036: 32239,
    35037: 32963,
    35038: 33806,
    35039: 34915,
    35040: 35586,
    35041: 36949,
    35042: 36986,
    35043: 21307,
    35044: 20117,
    35045: 20133,
    35046: 22495,
    35047: 32946,
    35048: 37057,
    35049: 30959,
    35050: 19968,
    35051: 22769,
    35052: 28322,
    35053: 36920,
    35054: 31282,
    35055: 33576,
    35056: 33419,
    35057: 39983,
    35058: 20801,
    35059: 21360,
    35060: 21693,
    35061: 21729,
    35062: 22240,
    35063: 23035,
    35064: 24341,
    35065: 39154,
    35066: 28139,
    35067: 32996,
    35068: 34093,
    35136: 38498,
    35137: 38512,
    35138: 38560,
    35139: 38907,
    35140: 21515,
    35141: 21491,
    35142: 23431,
    35143: 28879,
    35144: 32701,
    35145: 36802,
    35146: 38632,
    35147: 21359,
    35148: 40284,
    35149: 31418,
    35150: 19985,
    35151: 30867,
    35152: 33276,
    35153: 28198,
    35154: 22040,
    35155: 21764,
    35156: 27421,
    35157: 34074,
    35158: 39995,
    35159: 23013,
    35160: 21417,
    35161: 28006,
    35162: 29916,
    35163: 38287,
    35164: 22082,
    35165: 20113,
    35166: 36939,
    35167: 38642,
    35168: 33615,
    35169: 39180,
    35170: 21473,
    35171: 21942,
    35172: 23344,
    35173: 24433,
    35174: 26144,
    35175: 26355,
    35176: 26628,
    35177: 27704,
    35178: 27891,
    35179: 27945,
    35180: 29787,
    35181: 30408,
    35182: 31310,
    35183: 38964,
    35184: 33521,
    35185: 34907,
    35186: 35424,
    35187: 37613,
    35188: 28082,
    35189: 30123,
    35190: 30410,
    35191: 39365,
    35192: 24742,
    35193: 35585,
    35194: 36234,
    35195: 38322,
    35196: 27022,
    35197: 21421,
    35198: 20870,
    35200: 22290,
    35201: 22576,
    35202: 22852,
    35203: 23476,
    35204: 24310,
    35205: 24616,
    35206: 25513,
    35207: 25588,
    35208: 27839,
    35209: 28436,
    35210: 28814,
    35211: 28948,
    35212: 29017,
    35213: 29141,
    35214: 29503,
    35215: 32257,
    35216: 33398,
    35217: 33489,
    35218: 34199,
    35219: 36960,
    35220: 37467,
    35221: 40219,
    35222: 22633,
    35223: 26044,
    35224: 27738,
    35225: 29989,
    35226: 20985,
    35227: 22830,
    35228: 22885,
    35229: 24448,
    35230: 24540,
    35231: 25276,
    35232: 26106,
    35233: 27178,
    35234: 27431,
    35235: 27572,
    35236: 29579,
    35237: 32705,
    35238: 35158,
    35239: 40236,
    35240: 40206,
    35241: 40644,
    35242: 23713,
    35243: 27798,
    35244: 33659,
    35245: 20740,
    35246: 23627,
    35247: 25014,
    35248: 33222,
    35249: 26742,
    35250: 29281,
    35251: 20057,
    35252: 20474,
    35253: 21368,
    35254: 24681,
    35255: 28201,
    35256: 31311,
    35257: 38899,
    35258: 19979,
    35259: 21270,
    35260: 20206,
    35261: 20309,
    35262: 20285,
    35263: 20385,
    35264: 20339,
    35265: 21152,
    35266: 21487,
    35267: 22025,
    35268: 22799,
    35269: 23233,
    35270: 23478,
    35271: 23521,
    35272: 31185,
    35273: 26247,
    35274: 26524,
    35275: 26550,
    35276: 27468,
    35277: 27827,
    35278: 28779,
    35279: 29634,
    35280: 31117,
    35281: 31166,
    35282: 31292,
    35283: 31623,
    35284: 33457,
    35285: 33499,
    35286: 33540,
    35287: 33655,
    35288: 33775,
    35289: 33747,
    35290: 34662,
    35291: 35506,
    35292: 22057,
    35293: 36008,
    35294: 36838,
    35295: 36942,
    35296: 38686,
    35297: 34442,
    35298: 20420,
    35299: 23784,
    35300: 25105,
    35301: 29273,
    35302: 30011,
    35303: 33253,
    35304: 33469,
    35305: 34558,
    35306: 36032,
    35307: 38597,
    35308: 39187,
    35309: 39381,
    35310: 20171,
    35311: 20250,
    35312: 35299,
    35313: 22238,
    35314: 22602,
    35315: 22730,
    35316: 24315,
    35317: 24555,
    35318: 24618,
    35319: 24724,
    35320: 24674,
    35321: 25040,
    35322: 25106,
    35323: 25296,
    35324: 25913,
    35392: 39745,
    35393: 26214,
    35394: 26800,
    35395: 28023,
    35396: 28784,
    35397: 30028,
    35398: 30342,
    35399: 32117,
    35400: 33445,
    35401: 34809,
    35402: 38283,
    35403: 38542,
    35404: 35997,
    35405: 20977,
    35406: 21182,
    35407: 22806,
    35408: 21683,
    35409: 23475,
    35410: 23830,
    35411: 24936,
    35412: 27010,
    35413: 28079,
    35414: 30861,
    35415: 33995,
    35416: 34903,
    35417: 35442,
    35418: 37799,
    35419: 39608,
    35420: 28012,
    35421: 39336,
    35422: 34521,
    35423: 22435,
    35424: 26623,
    35425: 34510,
    35426: 37390,
    35427: 21123,
    35428: 22151,
    35429: 21508,
    35430: 24275,
    35431: 25313,
    35432: 25785,
    35433: 26684,
    35434: 26680,
    35435: 27579,
    35436: 29554,
    35437: 30906,
    35438: 31339,
    35439: 35226,
    35440: 35282,
    35441: 36203,
    35442: 36611,
    35443: 37101,
    35444: 38307,
    35445: 38548,
    35446: 38761,
    35447: 23398,
    35448: 23731,
    35449: 27005,
    35450: 38989,
    35451: 38990,
    35452: 25499,
    35453: 31520,
    35454: 27179,
    35456: 27263,
    35457: 26806,
    35458: 39949,
    35459: 28511,
    35460: 21106,
    35461: 21917,
    35462: 24688,
    35463: 25324,
    35464: 27963,
    35465: 28167,
    35466: 28369,
    35467: 33883,
    35468: 35088,
    35469: 36676,
    35470: 19988,
    35471: 39993,
    35472: 21494,
    35473: 26907,
    35474: 27194,
    35475: 38788,
    35476: 26666,
    35477: 20828,
    35478: 31427,
    35479: 33970,
    35480: 37340,
    35481: 37772,
    35482: 22107,
    35483: 40232,
    35484: 26658,
    35485: 33541,
    35486: 33841,
    35487: 31909,
    35488: 21000,
    35489: 33477,
    35490: 29926,
    35491: 20094,
    35492: 20355,
    35493: 20896,
    35494: 23506,
    35495: 21002,
    35496: 21208,
    35497: 21223,
    35498: 24059,
    35499: 21914,
    35500: 22570,
    35501: 23014,
    35502: 23436,
    35503: 23448,
    35504: 23515,
    35505: 24178,
    35506: 24185,
    35507: 24739,
    35508: 24863,
    35509: 24931,
    35510: 25022,
    35511: 25563,
    35512: 25954,
    35513: 26577,
    35514: 26707,
    35515: 26874,
    35516: 27454,
    35517: 27475,
    35518: 27735,
    35519: 28450,
    35520: 28567,
    35521: 28485,
    35522: 29872,
    35523: 29976,
    35524: 30435,
    35525: 30475,
    35526: 31487,
    35527: 31649,
    35528: 31777,
    35529: 32233,
    35530: 32566,
    35531: 32752,
    35532: 32925,
    35533: 33382,
    35534: 33694,
    35535: 35251,
    35536: 35532,
    35537: 36011,
    35538: 36996,
    35539: 37969,
    35540: 38291,
    35541: 38289,
    35542: 38306,
    35543: 38501,
    35544: 38867,
    35545: 39208,
    35546: 33304,
    35547: 20024,
    35548: 21547,
    35549: 23736,
    35550: 24012,
    35551: 29609,
    35552: 30284,
    35553: 30524,
    35554: 23721,
    35555: 32747,
    35556: 36107,
    35557: 38593,
    35558: 38929,
    35559: 38996,
    35560: 39000,
    35561: 20225,
    35562: 20238,
    35563: 21361,
    35564: 21916,
    35565: 22120,
    35566: 22522,
    35567: 22855,
    35568: 23305,
    35569: 23492,
    35570: 23696,
    35571: 24076,
    35572: 24190,
    35573: 24524,
    35574: 25582,
    35575: 26426,
    35576: 26071,
    35577: 26082,
    35578: 26399,
    35579: 26827,
    35580: 26820,
    35648: 27231,
    35649: 24112,
    35650: 27589,
    35651: 27671,
    35652: 27773,
    35653: 30079,
    35654: 31048,
    35655: 23395,
    35656: 31232,
    35657: 32000,
    35658: 24509,
    35659: 35215,
    35660: 35352,
    35661: 36020,
    35662: 36215,
    35663: 36556,
    35664: 36637,
    35665: 39138,
    35666: 39438,
    35667: 39740,
    35668: 20096,
    35669: 20605,
    35670: 20736,
    35671: 22931,
    35672: 23452,
    35673: 25135,
    35674: 25216,
    35675: 25836,
    35676: 27450,
    35677: 29344,
    35678: 30097,
    35679: 31047,
    35680: 32681,
    35681: 34811,
    35682: 35516,
    35683: 35696,
    35684: 25516,
    35685: 33738,
    35686: 38816,
    35687: 21513,
    35688: 21507,
    35689: 21931,
    35690: 26708,
    35691: 27224,
    35692: 35440,
    35693: 30759,
    35694: 26485,
    35695: 40653,
    35696: 21364,
    35697: 23458,
    35698: 33050,
    35699: 34384,
    35700: 36870,
    35701: 19992,
    35702: 20037,
    35703: 20167,
    35704: 20241,
    35705: 21450,
    35706: 21560,
    35707: 23470,
    35708: 24339,
    35709: 24613,
    35710: 25937,
    35712: 26429,
    35713: 27714,
    35714: 27762,
    35715: 27875,
    35716: 28792,
    35717: 29699,
    35718: 31350,
    35719: 31406,
    35720: 31496,
    35721: 32026,
    35722: 31998,
    35723: 32102,
    35724: 26087,
    35725: 29275,
    35726: 21435,
    35727: 23621,
    35728: 24040,
    35729: 25298,
    35730: 25312,
    35731: 25369,
    35732: 28192,
    35733: 34394,
    35734: 35377,
    35735: 36317,
    35736: 37624,
    35737: 28417,
    35738: 31142,
    35739: 39770,
    35740: 20136,
    35741: 20139,
    35742: 20140,
    35743: 20379,
    35744: 20384,
    35745: 20689,
    35746: 20807,
    35747: 31478,
    35748: 20849,
    35749: 20982,
    35750: 21332,
    35751: 21281,
    35752: 21375,
    35753: 21483,
    35754: 21932,
    35755: 22659,
    35756: 23777,
    35757: 24375,
    35758: 24394,
    35759: 24623,
    35760: 24656,
    35761: 24685,
    35762: 25375,
    35763: 25945,
    35764: 27211,
    35765: 27841,
    35766: 29378,
    35767: 29421,
    35768: 30703,
    35769: 33016,
    35770: 33029,
    35771: 33288,
    35772: 34126,
    35773: 37111,
    35774: 37857,
    35775: 38911,
    35776: 39255,
    35777: 39514,
    35778: 20208,
    35779: 20957,
    35780: 23597,
    35781: 26241,
    35782: 26989,
    35783: 23616,
    35784: 26354,
    35785: 26997,
    35786: 29577,
    35787: 26704,
    35788: 31873,
    35789: 20677,
    35790: 21220,
    35791: 22343,
    35792: 24062,
    35793: 37670,
    35794: 26020,
    35795: 27427,
    35796: 27453,
    35797: 29748,
    35798: 31105,
    35799: 31165,
    35800: 31563,
    35801: 32202,
    35802: 33465,
    35803: 33740,
    35804: 34943,
    35805: 35167,
    35806: 35641,
    35807: 36817,
    35808: 37329,
    35809: 21535,
    35810: 37504,
    35811: 20061,
    35812: 20534,
    35813: 21477,
    35814: 21306,
    35815: 29399,
    35816: 29590,
    35817: 30697,
    35818: 33510,
    35819: 36527,
    35820: 39366,
    35821: 39368,
    35822: 39378,
    35823: 20855,
    35824: 24858,
    35825: 34398,
    35826: 21936,
    35827: 31354,
    35828: 20598,
    35829: 23507,
    35830: 36935,
    35831: 38533,
    35832: 20018,
    35833: 27355,
    35834: 37351,
    35835: 23633,
    35836: 23624,
    35904: 25496,
    35905: 31391,
    35906: 27795,
    35907: 38772,
    35908: 36705,
    35909: 31402,
    35910: 29066,
    35911: 38536,
    35912: 31874,
    35913: 26647,
    35914: 32368,
    35915: 26705,
    35916: 37740,
    35917: 21234,
    35918: 21531,
    35919: 34219,
    35920: 35347,
    35921: 32676,
    35922: 36557,
    35923: 37089,
    35924: 21350,
    35925: 34952,
    35926: 31041,
    35927: 20418,
    35928: 20670,
    35929: 21009,
    35930: 20804,
    35931: 21843,
    35932: 22317,
    35933: 29674,
    35934: 22411,
    35935: 22865,
    35936: 24418,
    35937: 24452,
    35938: 24693,
    35939: 24950,
    35940: 24935,
    35941: 25001,
    35942: 25522,
    35943: 25658,
    35944: 25964,
    35945: 26223,
    35946: 26690,
    35947: 28179,
    35948: 30054,
    35949: 31293,
    35950: 31995,
    35951: 32076,
    35952: 32153,
    35953: 32331,
    35954: 32619,
    35955: 33550,
    35956: 33610,
    35957: 34509,
    35958: 35336,
    35959: 35427,
    35960: 35686,
    35961: 36605,
    35962: 38938,
    35963: 40335,
    35964: 33464,
    35965: 36814,
    35966: 39912,
    35968: 21127,
    35969: 25119,
    35970: 25731,
    35971: 28608,
    35972: 38553,
    35973: 26689,
    35974: 20625,
    35975: 27424,
    35976: 27770,
    35977: 28500,
    35978: 31348,
    35979: 32080,
    35980: 34880,
    35981: 35363,
    35982: 26376,
    35983: 20214,
    35984: 20537,
    35985: 20518,
    35986: 20581,
    35987: 20860,
    35988: 21048,
    35989: 21091,
    35990: 21927,
    35991: 22287,
    35992: 22533,
    35993: 23244,
    35994: 24314,
    35995: 25010,
    35996: 25080,
    35997: 25331,
    35998: 25458,
    35999: 26908,
    36000: 27177,
    36001: 29309,
    36002: 29356,
    36003: 29486,
    36004: 30740,
    36005: 30831,
    36006: 32121,
    36007: 30476,
    36008: 32937,
    36009: 35211,
    36010: 35609,
    36011: 36066,
    36012: 36562,
    36013: 36963,
    36014: 37749,
    36015: 38522,
    36016: 38997,
    36017: 39443,
    36018: 40568,
    36019: 20803,
    36020: 21407,
    36021: 21427,
    36022: 24187,
    36023: 24358,
    36024: 28187,
    36025: 28304,
    36026: 29572,
    36027: 29694,
    36028: 32067,
    36029: 33335,
    36030: 35328,
    36031: 35578,
    36032: 38480,
    36033: 20046,
    36034: 20491,
    36035: 21476,
    36036: 21628,
    36037: 22266,
    36038: 22993,
    36039: 23396,
    36040: 24049,
    36041: 24235,
    36042: 24359,
    36043: 25144,
    36044: 25925,
    36045: 26543,
    36046: 28246,
    36047: 29392,
    36048: 31946,
    36049: 34996,
    36050: 32929,
    36051: 32993,
    36052: 33776,
    36053: 34382,
    36054: 35463,
    36055: 36328,
    36056: 37431,
    36057: 38599,
    36058: 39015,
    36059: 40723,
    36060: 20116,
    36061: 20114,
    36062: 20237,
    36063: 21320,
    36064: 21577,
    36065: 21566,
    36066: 23087,
    36067: 24460,
    36068: 24481,
    36069: 24735,
    36070: 26791,
    36071: 27278,
    36072: 29786,
    36073: 30849,
    36074: 35486,
    36075: 35492,
    36076: 35703,
    36077: 37264,
    36078: 20062,
    36079: 39881,
    36080: 20132,
    36081: 20348,
    36082: 20399,
    36083: 20505,
    36084: 20502,
    36085: 20809,
    36086: 20844,
    36087: 21151,
    36088: 21177,
    36089: 21246,
    36090: 21402,
    36091: 21475,
    36092: 21521,
    36160: 21518,
    36161: 21897,
    36162: 22353,
    36163: 22434,
    36164: 22909,
    36165: 23380,
    36166: 23389,
    36167: 23439,
    36168: 24037,
    36169: 24039,
    36170: 24055,
    36171: 24184,
    36172: 24195,
    36173: 24218,
    36174: 24247,
    36175: 24344,
    36176: 24658,
    36177: 24908,
    36178: 25239,
    36179: 25304,
    36180: 25511,
    36181: 25915,
    36182: 26114,
    36183: 26179,
    36184: 26356,
    36185: 26477,
    36186: 26657,
    36187: 26775,
    36188: 27083,
    36189: 27743,
    36190: 27946,
    36191: 28009,
    36192: 28207,
    36193: 28317,
    36194: 30002,
    36195: 30343,
    36196: 30828,
    36197: 31295,
    36198: 31968,
    36199: 32005,
    36200: 32024,
    36201: 32094,
    36202: 32177,
    36203: 32789,
    36204: 32771,
    36205: 32943,
    36206: 32945,
    36207: 33108,
    36208: 33167,
    36209: 33322,
    36210: 33618,
    36211: 34892,
    36212: 34913,
    36213: 35611,
    36214: 36002,
    36215: 36092,
    36216: 37066,
    36217: 37237,
    36218: 37489,
    36219: 30783,
    36220: 37628,
    36221: 38308,
    36222: 38477,
    36224: 38917,
    36225: 39321,
    36226: 39640,
    36227: 40251,
    36228: 21083,
    36229: 21163,
    36230: 21495,
    36231: 21512,
    36232: 22741,
    36233: 25335,
    36234: 28640,
    36235: 35946,
    36236: 36703,
    36237: 40633,
    36238: 20811,
    36239: 21051,
    36240: 21578,
    36241: 22269,
    36242: 31296,
    36243: 37239,
    36244: 40288,
    36245: 40658,
    36246: 29508,
    36247: 28425,
    36248: 33136,
    36249: 29969,
    36250: 24573,
    36251: 24794,
    36252: 39592,
    36253: 29403,
    36254: 36796,
    36255: 27492,
    36256: 38915,
    36257: 20170,
    36258: 22256,
    36259: 22372,
    36260: 22718,
    36261: 23130,
    36262: 24680,
    36263: 25031,
    36264: 26127,
    36265: 26118,
    36266: 26681,
    36267: 26801,
    36268: 28151,
    36269: 30165,
    36270: 32058,
    36271: 33390,
    36272: 39746,
    36273: 20123,
    36274: 20304,
    36275: 21449,
    36276: 21766,
    36277: 23919,
    36278: 24038,
    36279: 24046,
    36280: 26619,
    36281: 27801,
    36282: 29811,
    36283: 30722,
    36284: 35408,
    36285: 37782,
    36286: 35039,
    36287: 22352,
    36288: 24231,
    36289: 25387,
    36290: 20661,
    36291: 20652,
    36292: 20877,
    36293: 26368,
    36294: 21705,
    36295: 22622,
    36296: 22971,
    36297: 23472,
    36298: 24425,
    36299: 25165,
    36300: 25505,
    36301: 26685,
    36302: 27507,
    36303: 28168,
    36304: 28797,
    36305: 37319,
    36306: 29312,
    36307: 30741,
    36308: 30758,
    36309: 31085,
    36310: 25998,
    36311: 32048,
    36312: 33756,
    36313: 35009,
    36314: 36617,
    36315: 38555,
    36316: 21092,
    36317: 22312,
    36318: 26448,
    36319: 32618,
    36320: 36001,
    36321: 20916,
    36322: 22338,
    36323: 38442,
    36324: 22586,
    36325: 27018,
    36326: 32948,
    36327: 21682,
    36328: 23822,
    36329: 22524,
    36330: 30869,
    36331: 40442,
    36332: 20316,
    36333: 21066,
    36334: 21643,
    36335: 25662,
    36336: 26152,
    36337: 26388,
    36338: 26613,
    36339: 31364,
    36340: 31574,
    36341: 32034,
    36342: 37679,
    36343: 26716,
    36344: 39853,
    36345: 31545,
    36346: 21273,
    36347: 20874,
    36348: 21047,
    36416: 23519,
    36417: 25334,
    36418: 25774,
    36419: 25830,
    36420: 26413,
    36421: 27578,
    36422: 34217,
    36423: 38609,
    36424: 30352,
    36425: 39894,
    36426: 25420,
    36427: 37638,
    36428: 39851,
    36429: 30399,
    36430: 26194,
    36431: 19977,
    36432: 20632,
    36433: 21442,
    36434: 23665,
    36435: 24808,
    36436: 25746,
    36437: 25955,
    36438: 26719,
    36439: 29158,
    36440: 29642,
    36441: 29987,
    36442: 31639,
    36443: 32386,
    36444: 34453,
    36445: 35715,
    36446: 36059,
    36447: 37240,
    36448: 39184,
    36449: 26028,
    36450: 26283,
    36451: 27531,
    36452: 20181,
    36453: 20180,
    36454: 20282,
    36455: 20351,
    36456: 21050,
    36457: 21496,
    36458: 21490,
    36459: 21987,
    36460: 22235,
    36461: 22763,
    36462: 22987,
    36463: 22985,
    36464: 23039,
    36465: 23376,
    36466: 23629,
    36467: 24066,
    36468: 24107,
    36469: 24535,
    36470: 24605,
    36471: 25351,
    36472: 25903,
    36473: 23388,
    36474: 26031,
    36475: 26045,
    36476: 26088,
    36477: 26525,
    36478: 27490,
    36480: 27515,
    36481: 27663,
    36482: 29509,
    36483: 31049,
    36484: 31169,
    36485: 31992,
    36486: 32025,
    36487: 32043,
    36488: 32930,
    36489: 33026,
    36490: 33267,
    36491: 35222,
    36492: 35422,
    36493: 35433,
    36494: 35430,
    36495: 35468,
    36496: 35566,
    36497: 36039,
    36498: 36060,
    36499: 38604,
    36500: 39164,
    36501: 27503,
    36502: 20107,
    36503: 20284,
    36504: 20365,
    36505: 20816,
    36506: 23383,
    36507: 23546,
    36508: 24904,
    36509: 25345,
    36510: 26178,
    36511: 27425,
    36512: 28363,
    36513: 27835,
    36514: 29246,
    36515: 29885,
    36516: 30164,
    36517: 30913,
    36518: 31034,
    36519: 32780,
    36520: 32819,
    36521: 33258,
    36522: 33940,
    36523: 36766,
    36524: 27728,
    36525: 40575,
    36526: 24335,
    36527: 35672,
    36528: 40235,
    36529: 31482,
    36530: 36600,
    36531: 23437,
    36532: 38635,
    36533: 19971,
    36534: 21489,
    36535: 22519,
    36536: 22833,
    36537: 23241,
    36538: 23460,
    36539: 24713,
    36540: 28287,
    36541: 28422,
    36542: 30142,
    36543: 36074,
    36544: 23455,
    36545: 34048,
    36546: 31712,
    36547: 20594,
    36548: 26612,
    36549: 33437,
    36550: 23649,
    36551: 34122,
    36552: 32286,
    36553: 33294,
    36554: 20889,
    36555: 23556,
    36556: 25448,
    36557: 36198,
    36558: 26012,
    36559: 29038,
    36560: 31038,
    36561: 32023,
    36562: 32773,
    36563: 35613,
    36564: 36554,
    36565: 36974,
    36566: 34503,
    36567: 37034,
    36568: 20511,
    36569: 21242,
    36570: 23610,
    36571: 26451,
    36572: 28796,
    36573: 29237,
    36574: 37196,
    36575: 37320,
    36576: 37675,
    36577: 33509,
    36578: 23490,
    36579: 24369,
    36580: 24825,
    36581: 20027,
    36582: 21462,
    36583: 23432,
    36584: 25163,
    36585: 26417,
    36586: 27530,
    36587: 29417,
    36588: 29664,
    36589: 31278,
    36590: 33131,
    36591: 36259,
    36592: 37202,
    36593: 39318,
    36594: 20754,
    36595: 21463,
    36596: 21610,
    36597: 23551,
    36598: 25480,
    36599: 27193,
    36600: 32172,
    36601: 38656,
    36602: 22234,
    36603: 21454,
    36604: 21608,
    36672: 23447,
    36673: 23601,
    36674: 24030,
    36675: 20462,
    36676: 24833,
    36677: 25342,
    36678: 27954,
    36679: 31168,
    36680: 31179,
    36681: 32066,
    36682: 32333,
    36683: 32722,
    36684: 33261,
    36685: 33311,
    36686: 33936,
    36687: 34886,
    36688: 35186,
    36689: 35728,
    36690: 36468,
    36691: 36655,
    36692: 36913,
    36693: 37195,
    36694: 37228,
    36695: 38598,
    36696: 37276,
    36697: 20160,
    36698: 20303,
    36699: 20805,
    36700: 21313,
    36701: 24467,
    36702: 25102,
    36703: 26580,
    36704: 27713,
    36705: 28171,
    36706: 29539,
    36707: 32294,
    36708: 37325,
    36709: 37507,
    36710: 21460,
    36711: 22809,
    36712: 23487,
    36713: 28113,
    36714: 31069,
    36715: 32302,
    36716: 31899,
    36717: 22654,
    36718: 29087,
    36719: 20986,
    36720: 34899,
    36721: 36848,
    36722: 20426,
    36723: 23803,
    36724: 26149,
    36725: 30636,
    36726: 31459,
    36727: 33308,
    36728: 39423,
    36729: 20934,
    36730: 24490,
    36731: 26092,
    36732: 26991,
    36733: 27529,
    36734: 28147,
    36736: 28310,
    36737: 28516,
    36738: 30462,
    36739: 32020,
    36740: 24033,
    36741: 36981,
    36742: 37255,
    36743: 38918,
    36744: 20966,
    36745: 21021,
    36746: 25152,
    36747: 26257,
    36748: 26329,
    36749: 28186,
    36750: 24246,
    36751: 32210,
    36752: 32626,
    36753: 26360,
    36754: 34223,
    36755: 34295,
    36756: 35576,
    36757: 21161,
    36758: 21465,
    36759: 22899,
    36760: 24207,
    36761: 24464,
    36762: 24661,
    36763: 37604,
    36764: 38500,
    36765: 20663,
    36766: 20767,
    36767: 21213,
    36768: 21280,
    36769: 21319,
    36770: 21484,
    36771: 21736,
    36772: 21830,
    36773: 21809,
    36774: 22039,
    36775: 22888,
    36776: 22974,
    36777: 23100,
    36778: 23477,
    36779: 23558,
    36780: 23567,
    36781: 23569,
    36782: 23578,
    36783: 24196,
    36784: 24202,
    36785: 24288,
    36786: 24432,
    36787: 25215,
    36788: 25220,
    36789: 25307,
    36790: 25484,
    36791: 25463,
    36792: 26119,
    36793: 26124,
    36794: 26157,
    36795: 26230,
    36796: 26494,
    36797: 26786,
    36798: 27167,
    36799: 27189,
    36800: 27836,
    36801: 28040,
    36802: 28169,
    36803: 28248,
    36804: 28988,
    36805: 28966,
    36806: 29031,
    36807: 30151,
    36808: 30465,
    36809: 30813,
    36810: 30977,
    36811: 31077,
    36812: 31216,
    36813: 31456,
    36814: 31505,
    36815: 31911,
    36816: 32057,
    36817: 32918,
    36818: 33750,
    36819: 33931,
    36820: 34121,
    36821: 34909,
    36822: 35059,
    36823: 35359,
    36824: 35388,
    36825: 35412,
    36826: 35443,
    36827: 35937,
    36828: 36062,
    36829: 37284,
    36830: 37478,
    36831: 37758,
    36832: 37912,
    36833: 38556,
    36834: 38808,
    36835: 19978,
    36836: 19976,
    36837: 19998,
    36838: 20055,
    36839: 20887,
    36840: 21104,
    36841: 22478,
    36842: 22580,
    36843: 22732,
    36844: 23330,
    36845: 24120,
    36846: 24773,
    36847: 25854,
    36848: 26465,
    36849: 26454,
    36850: 27972,
    36851: 29366,
    36852: 30067,
    36853: 31331,
    36854: 33976,
    36855: 35698,
    36856: 37304,
    36857: 37664,
    36858: 22065,
    36859: 22516,
    36860: 39166,
    36928: 25325,
    36929: 26893,
    36930: 27542,
    36931: 29165,
    36932: 32340,
    36933: 32887,
    36934: 33394,
    36935: 35302,
    36936: 39135,
    36937: 34645,
    36938: 36785,
    36939: 23611,
    36940: 20280,
    36941: 20449,
    36942: 20405,
    36943: 21767,
    36944: 23072,
    36945: 23517,
    36946: 23529,
    36947: 24515,
    36948: 24910,
    36949: 25391,
    36950: 26032,
    36951: 26187,
    36952: 26862,
    36953: 27035,
    36954: 28024,
    36955: 28145,
    36956: 30003,
    36957: 30137,
    36958: 30495,
    36959: 31070,
    36960: 31206,
    36961: 32051,
    36962: 33251,
    36963: 33455,
    36964: 34218,
    36965: 35242,
    36966: 35386,
    36967: 36523,
    36968: 36763,
    36969: 36914,
    36970: 37341,
    36971: 38663,
    36972: 20154,
    36973: 20161,
    36974: 20995,
    36975: 22645,
    36976: 22764,
    36977: 23563,
    36978: 29978,
    36979: 23613,
    36980: 33102,
    36981: 35338,
    36982: 36805,
    36983: 38499,
    36984: 38765,
    36985: 31525,
    36986: 35535,
    36987: 38920,
    36988: 37218,
    36989: 22259,
    36990: 21416,
    36992: 36887,
    36993: 21561,
    36994: 22402,
    36995: 24101,
    36996: 25512,
    36997: 27700,
    36998: 28810,
    36999: 30561,
    37000: 31883,
    37001: 32736,
    37002: 34928,
    37003: 36930,
    37004: 37204,
    37005: 37648,
    37006: 37656,
    37007: 38543,
    37008: 29790,
    37009: 39620,
    37010: 23815,
    37011: 23913,
    37012: 25968,
    37013: 26530,
    37014: 36264,
    37015: 38619,
    37016: 25454,
    37017: 26441,
    37018: 26905,
    37019: 33733,
    37020: 38935,
    37021: 38592,
    37022: 35070,
    37023: 28548,
    37024: 25722,
    37025: 23544,
    37026: 19990,
    37027: 28716,
    37028: 30045,
    37029: 26159,
    37030: 20932,
    37031: 21046,
    37032: 21218,
    37033: 22995,
    37034: 24449,
    37035: 24615,
    37036: 25104,
    37037: 25919,
    37038: 25972,
    37039: 26143,
    37040: 26228,
    37041: 26866,
    37042: 26646,
    37043: 27491,
    37044: 28165,
    37045: 29298,
    37046: 29983,
    37047: 30427,
    37048: 31934,
    37049: 32854,
    37050: 22768,
    37051: 35069,
    37052: 35199,
    37053: 35488,
    37054: 35475,
    37055: 35531,
    37056: 36893,
    37057: 37266,
    37058: 38738,
    37059: 38745,
    37060: 25993,
    37061: 31246,
    37062: 33030,
    37063: 38587,
    37064: 24109,
    37065: 24796,
    37066: 25114,
    37067: 26021,
    37068: 26132,
    37069: 26512,
    37070: 30707,
    37071: 31309,
    37072: 31821,
    37073: 32318,
    37074: 33034,
    37075: 36012,
    37076: 36196,
    37077: 36321,
    37078: 36447,
    37079: 30889,
    37080: 20999,
    37081: 25305,
    37082: 25509,
    37083: 25666,
    37084: 25240,
    37085: 35373,
    37086: 31363,
    37087: 31680,
    37088: 35500,
    37089: 38634,
    37090: 32118,
    37091: 33292,
    37092: 34633,
    37093: 20185,
    37094: 20808,
    37095: 21315,
    37096: 21344,
    37097: 23459,
    37098: 23554,
    37099: 23574,
    37100: 24029,
    37101: 25126,
    37102: 25159,
    37103: 25776,
    37104: 26643,
    37105: 26676,
    37106: 27849,
    37107: 27973,
    37108: 27927,
    37109: 26579,
    37110: 28508,
    37111: 29006,
    37112: 29053,
    37113: 26059,
    37114: 31359,
    37115: 31661,
    37116: 32218,
    37184: 32330,
    37185: 32680,
    37186: 33146,
    37187: 33307,
    37188: 33337,
    37189: 34214,
    37190: 35438,
    37191: 36046,
    37192: 36341,
    37193: 36984,
    37194: 36983,
    37195: 37549,
    37196: 37521,
    37197: 38275,
    37198: 39854,
    37199: 21069,
    37200: 21892,
    37201: 28472,
    37202: 28982,
    37203: 20840,
    37204: 31109,
    37205: 32341,
    37206: 33203,
    37207: 31950,
    37208: 22092,
    37209: 22609,
    37210: 23720,
    37211: 25514,
    37212: 26366,
    37213: 26365,
    37214: 26970,
    37215: 29401,
    37216: 30095,
    37217: 30094,
    37218: 30990,
    37219: 31062,
    37220: 31199,
    37221: 31895,
    37222: 32032,
    37223: 32068,
    37224: 34311,
    37225: 35380,
    37226: 38459,
    37227: 36961,
    37228: 40736,
    37229: 20711,
    37230: 21109,
    37231: 21452,
    37232: 21474,
    37233: 20489,
    37234: 21930,
    37235: 22766,
    37236: 22863,
    37237: 29245,
    37238: 23435,
    37239: 23652,
    37240: 21277,
    37241: 24803,
    37242: 24819,
    37243: 25436,
    37244: 25475,
    37245: 25407,
    37246: 25531,
    37248: 25805,
    37249: 26089,
    37250: 26361,
    37251: 24035,
    37252: 27085,
    37253: 27133,
    37254: 28437,
    37255: 29157,
    37256: 20105,
    37257: 30185,
    37258: 30456,
    37259: 31379,
    37260: 31967,
    37261: 32207,
    37262: 32156,
    37263: 32865,
    37264: 33609,
    37265: 33624,
    37266: 33900,
    37267: 33980,
    37268: 34299,
    37269: 35013,
    37270: 36208,
    37271: 36865,
    37272: 36973,
    37273: 37783,
    37274: 38684,
    37275: 39442,
    37276: 20687,
    37277: 22679,
    37278: 24974,
    37279: 33235,
    37280: 34101,
    37281: 36104,
    37282: 36896,
    37283: 20419,
    37284: 20596,
    37285: 21063,
    37286: 21363,
    37287: 24687,
    37288: 25417,
    37289: 26463,
    37290: 28204,
    37291: 36275,
    37292: 36895,
    37293: 20439,
    37294: 23646,
    37295: 36042,
    37296: 26063,
    37297: 32154,
    37298: 21330,
    37299: 34966,
    37300: 20854,
    37301: 25539,
    37302: 23384,
    37303: 23403,
    37304: 23562,
    37305: 25613,
    37306: 26449,
    37307: 36956,
    37308: 20182,
    37309: 22810,
    37310: 22826,
    37311: 27760,
    37312: 35409,
    37313: 21822,
    37314: 22549,
    37315: 22949,
    37316: 24816,
    37317: 25171,
    37318: 26561,
    37319: 33333,
    37320: 26965,
    37321: 38464,
    37322: 39364,
    37323: 39464,
    37324: 20307,
    37325: 22534,
    37326: 23550,
    37327: 32784,
    37328: 23729,
    37329: 24111,
    37330: 24453,
    37331: 24608,
    37332: 24907,
    37333: 25140,
    37334: 26367,
    37335: 27888,
    37336: 28382,
    37337: 32974,
    37338: 33151,
    37339: 33492,
    37340: 34955,
    37341: 36024,
    37342: 36864,
    37343: 36910,
    37344: 38538,
    37345: 40667,
    37346: 39899,
    37347: 20195,
    37348: 21488,
    37349: 22823,
    37350: 31532,
    37351: 37261,
    37352: 38988,
    37353: 40441,
    37354: 28381,
    37355: 28711,
    37356: 21331,
    37357: 21828,
    37358: 23429,
    37359: 25176,
    37360: 25246,
    37361: 25299,
    37362: 27810,
    37363: 28655,
    37364: 29730,
    37365: 35351,
    37366: 37944,
    37367: 28609,
    37368: 35582,
    37369: 33592,
    37370: 20967,
    37371: 34552,
    37372: 21482,
    37440: 21481,
    37441: 20294,
    37442: 36948,
    37443: 36784,
    37444: 22890,
    37445: 33073,
    37446: 24061,
    37447: 31466,
    37448: 36799,
    37449: 26842,
    37450: 35895,
    37451: 29432,
    37452: 40008,
    37453: 27197,
    37454: 35504,
    37455: 20025,
    37456: 21336,
    37457: 22022,
    37458: 22374,
    37459: 25285,
    37460: 25506,
    37461: 26086,
    37462: 27470,
    37463: 28129,
    37464: 28251,
    37465: 28845,
    37466: 30701,
    37467: 31471,
    37468: 31658,
    37469: 32187,
    37470: 32829,
    37471: 32966,
    37472: 34507,
    37473: 35477,
    37474: 37723,
    37475: 22243,
    37476: 22727,
    37477: 24382,
    37478: 26029,
    37479: 26262,
    37480: 27264,
    37481: 27573,
    37482: 30007,
    37483: 35527,
    37484: 20516,
    37485: 30693,
    37486: 22320,
    37487: 24347,
    37488: 24677,
    37489: 26234,
    37490: 27744,
    37491: 30196,
    37492: 31258,
    37493: 32622,
    37494: 33268,
    37495: 34584,
    37496: 36933,
    37497: 39347,
    37498: 31689,
    37499: 30044,
    37500: 31481,
    37501: 31569,
    37502: 33988,
    37504: 36880,
    37505: 31209,
    37506: 31378,
    37507: 33590,
    37508: 23265,
    37509: 30528,
    37510: 20013,
    37511: 20210,
    37512: 23449,
    37513: 24544,
    37514: 25277,
    37515: 26172,
    37516: 26609,
    37517: 27880,
    37518: 34411,
    37519: 34935,
    37520: 35387,
    37521: 37198,
    37522: 37619,
    37523: 39376,
    37524: 27159,
    37525: 28710,
    37526: 29482,
    37527: 33511,
    37528: 33879,
    37529: 36015,
    37530: 19969,
    37531: 20806,
    37532: 20939,
    37533: 21899,
    37534: 23541,
    37535: 24086,
    37536: 24115,
    37537: 24193,
    37538: 24340,
    37539: 24373,
    37540: 24427,
    37541: 24500,
    37542: 25074,
    37543: 25361,
    37544: 26274,
    37545: 26397,
    37546: 28526,
    37547: 29266,
    37548: 30010,
    37549: 30522,
    37550: 32884,
    37551: 33081,
    37552: 33144,
    37553: 34678,
    37554: 35519,
    37555: 35548,
    37556: 36229,
    37557: 36339,
    37558: 37530,
    37559: 38263,
    37560: 38914,
    37561: 40165,
    37562: 21189,
    37563: 25431,
    37564: 30452,
    37565: 26389,
    37566: 27784,
    37567: 29645,
    37568: 36035,
    37569: 37806,
    37570: 38515,
    37571: 27941,
    37572: 22684,
    37573: 26894,
    37574: 27084,
    37575: 36861,
    37576: 37786,
    37577: 30171,
    37578: 36890,
    37579: 22618,
    37580: 26626,
    37581: 25524,
    37582: 27131,
    37583: 20291,
    37584: 28460,
    37585: 26584,
    37586: 36795,
    37587: 34086,
    37588: 32180,
    37589: 37716,
    37590: 26943,
    37591: 28528,
    37592: 22378,
    37593: 22775,
    37594: 23340,
    37595: 32044,
    37596: 29226,
    37597: 21514,
    37598: 37347,
    37599: 40372,
    37600: 20141,
    37601: 20302,
    37602: 20572,
    37603: 20597,
    37604: 21059,
    37605: 35998,
    37606: 21576,
    37607: 22564,
    37608: 23450,
    37609: 24093,
    37610: 24213,
    37611: 24237,
    37612: 24311,
    37613: 24351,
    37614: 24716,
    37615: 25269,
    37616: 25402,
    37617: 25552,
    37618: 26799,
    37619: 27712,
    37620: 30855,
    37621: 31118,
    37622: 31243,
    37623: 32224,
    37624: 33351,
    37625: 35330,
    37626: 35558,
    37627: 36420,
    37628: 36883,
    37696: 37048,
    37697: 37165,
    37698: 37336,
    37699: 40718,
    37700: 27877,
    37701: 25688,
    37702: 25826,
    37703: 25973,
    37704: 28404,
    37705: 30340,
    37706: 31515,
    37707: 36969,
    37708: 37841,
    37709: 28346,
    37710: 21746,
    37711: 24505,
    37712: 25764,
    37713: 36685,
    37714: 36845,
    37715: 37444,
    37716: 20856,
    37717: 22635,
    37718: 22825,
    37719: 23637,
    37720: 24215,
    37721: 28155,
    37722: 32399,
    37723: 29980,
    37724: 36028,
    37725: 36578,
    37726: 39003,
    37727: 28857,
    37728: 20253,
    37729: 27583,
    37730: 28593,
    37731: 30000,
    37732: 38651,
    37733: 20814,
    37734: 21520,
    37735: 22581,
    37736: 22615,
    37737: 22956,
    37738: 23648,
    37739: 24466,
    37740: 26007,
    37741: 26460,
    37742: 28193,
    37743: 30331,
    37744: 33759,
    37745: 36077,
    37746: 36884,
    37747: 37117,
    37748: 37709,
    37749: 30757,
    37750: 30778,
    37751: 21162,
    37752: 24230,
    37753: 22303,
    37754: 22900,
    37755: 24594,
    37756: 20498,
    37757: 20826,
    37758: 20908,
    37760: 20941,
    37761: 20992,
    37762: 21776,
    37763: 22612,
    37764: 22616,
    37765: 22871,
    37766: 23445,
    37767: 23798,
    37768: 23947,
    37769: 24764,
    37770: 25237,
    37771: 25645,
    37772: 26481,
    37773: 26691,
    37774: 26812,
    37775: 26847,
    37776: 30423,
    37777: 28120,
    37778: 28271,
    37779: 28059,
    37780: 28783,
    37781: 29128,
    37782: 24403,
    37783: 30168,
    37784: 31095,
    37785: 31561,
    37786: 31572,
    37787: 31570,
    37788: 31958,
    37789: 32113,
    37790: 21040,
    37791: 33891,
    37792: 34153,
    37793: 34276,
    37794: 35342,
    37795: 35588,
    37796: 35910,
    37797: 36367,
    37798: 36867,
    37799: 36879,
    37800: 37913,
    37801: 38518,
    37802: 38957,
    37803: 39472,
    37804: 38360,
    37805: 20685,
    37806: 21205,
    37807: 21516,
    37808: 22530,
    37809: 23566,
    37810: 24999,
    37811: 25758,
    37812: 27934,
    37813: 30643,
    37814: 31461,
    37815: 33012,
    37816: 33796,
    37817: 36947,
    37818: 37509,
    37819: 23776,
    37820: 40199,
    37821: 21311,
    37822: 24471,
    37823: 24499,
    37824: 28060,
    37825: 29305,
    37826: 30563,
    37827: 31167,
    37828: 31716,
    37829: 27602,
    37830: 29420,
    37831: 35501,
    37832: 26627,
    37833: 27233,
    37834: 20984,
    37835: 31361,
    37836: 26932,
    37837: 23626,
    37838: 40182,
    37839: 33515,
    37840: 23493,
    37841: 37193,
    37842: 28702,
    37843: 22136,
    37844: 23663,
    37845: 24775,
    37846: 25958,
    37847: 27788,
    37848: 35930,
    37849: 36929,
    37850: 38931,
    37851: 21585,
    37852: 26311,
    37853: 37389,
    37854: 22856,
    37855: 37027,
    37856: 20869,
    37857: 20045,
    37858: 20970,
    37859: 34201,
    37860: 35598,
    37861: 28760,
    37862: 25466,
    37863: 37707,
    37864: 26978,
    37865: 39348,
    37866: 32260,
    37867: 30071,
    37868: 21335,
    37869: 26976,
    37870: 36575,
    37871: 38627,
    37872: 27741,
    37873: 20108,
    37874: 23612,
    37875: 24336,
    37876: 36841,
    37877: 21250,
    37878: 36049,
    37879: 32905,
    37880: 34425,
    37881: 24319,
    37882: 26085,
    37883: 20083,
    37884: 20837,
    37952: 22914,
    37953: 23615,
    37954: 38894,
    37955: 20219,
    37956: 22922,
    37957: 24525,
    37958: 35469,
    37959: 28641,
    37960: 31152,
    37961: 31074,
    37962: 23527,
    37963: 33905,
    37964: 29483,
    37965: 29105,
    37966: 24180,
    37967: 24565,
    37968: 25467,
    37969: 25754,
    37970: 29123,
    37971: 31896,
    37972: 20035,
    37973: 24316,
    37974: 20043,
    37975: 22492,
    37976: 22178,
    37977: 24745,
    37978: 28611,
    37979: 32013,
    37980: 33021,
    37981: 33075,
    37982: 33215,
    37983: 36786,
    37984: 35223,
    37985: 34468,
    37986: 24052,
    37987: 25226,
    37988: 25773,
    37989: 35207,
    37990: 26487,
    37991: 27874,
    37992: 27966,
    37993: 29750,
    37994: 30772,
    37995: 23110,
    37996: 32629,
    37997: 33453,
    37998: 39340,
    37999: 20467,
    38000: 24259,
    38001: 25309,
    38002: 25490,
    38003: 25943,
    38004: 26479,
    38005: 30403,
    38006: 29260,
    38007: 32972,
    38008: 32954,
    38009: 36649,
    38010: 37197,
    38011: 20493,
    38012: 22521,
    38013: 23186,
    38014: 26757,
    38016: 26995,
    38017: 29028,
    38018: 29437,
    38019: 36023,
    38020: 22770,
    38021: 36064,
    38022: 38506,
    38023: 36889,
    38024: 34687,
    38025: 31204,
    38026: 30695,
    38027: 33833,
    38028: 20271,
    38029: 21093,
    38030: 21338,
    38031: 25293,
    38032: 26575,
    38033: 27850,
    38034: 30333,
    38035: 31636,
    38036: 31893,
    38037: 33334,
    38038: 34180,
    38039: 36843,
    38040: 26333,
    38041: 28448,
    38042: 29190,
    38043: 32283,
    38044: 33707,
    38045: 39361,
    38046: 40614,
    38047: 20989,
    38048: 31665,
    38049: 30834,
    38050: 31672,
    38051: 32903,
    38052: 31560,
    38053: 27368,
    38054: 24161,
    38055: 32908,
    38056: 30033,
    38057: 30048,
    38058: 20843,
    38059: 37474,
    38060: 28300,
    38061: 30330,
    38062: 37271,
    38063: 39658,
    38064: 20240,
    38065: 32624,
    38066: 25244,
    38067: 31567,
    38068: 38309,
    38069: 40169,
    38070: 22138,
    38071: 22617,
    38072: 34532,
    38073: 38588,
    38074: 20276,
    38075: 21028,
    38076: 21322,
    38077: 21453,
    38078: 21467,
    38079: 24070,
    38080: 25644,
    38081: 26001,
    38082: 26495,
    38083: 27710,
    38084: 27726,
    38085: 29256,
    38086: 29359,
    38087: 29677,
    38088: 30036,
    38089: 32321,
    38090: 33324,
    38091: 34281,
    38092: 36009,
    38093: 31684,
    38094: 37318,
    38095: 29033,
    38096: 38930,
    38097: 39151,
    38098: 25405,
    38099: 26217,
    38100: 30058,
    38101: 30436,
    38102: 30928,
    38103: 34115,
    38104: 34542,
    38105: 21290,
    38106: 21329,
    38107: 21542,
    38108: 22915,
    38109: 24199,
    38110: 24444,
    38111: 24754,
    38112: 25161,
    38113: 25209,
    38114: 25259,
    38115: 26000,
    38116: 27604,
    38117: 27852,
    38118: 30130,
    38119: 30382,
    38120: 30865,
    38121: 31192,
    38122: 32203,
    38123: 32631,
    38124: 32933,
    38125: 34987,
    38126: 35513,
    38127: 36027,
    38128: 36991,
    38129: 38750,
    38130: 39131,
    38131: 27147,
    38132: 31800,
    38133: 20633,
    38134: 23614,
    38135: 24494,
    38136: 26503,
    38137: 27608,
    38138: 29749,
    38139: 30473,
    38140: 32654,
    38208: 40763,
    38209: 26570,
    38210: 31255,
    38211: 21305,
    38212: 30091,
    38213: 39661,
    38214: 24422,
    38215: 33181,
    38216: 33777,
    38217: 32920,
    38218: 24380,
    38219: 24517,
    38220: 30050,
    38221: 31558,
    38222: 36924,
    38223: 26727,
    38224: 23019,
    38225: 23195,
    38226: 32016,
    38227: 30334,
    38228: 35628,
    38229: 20469,
    38230: 24426,
    38231: 27161,
    38232: 27703,
    38233: 28418,
    38234: 29922,
    38235: 31080,
    38236: 34920,
    38237: 35413,
    38238: 35961,
    38239: 24287,
    38240: 25551,
    38241: 30149,
    38242: 31186,
    38243: 33495,
    38244: 37672,
    38245: 37618,
    38246: 33948,
    38247: 34541,
    38248: 39981,
    38249: 21697,
    38250: 24428,
    38251: 25996,
    38252: 27996,
    38253: 28693,
    38254: 36007,
    38255: 36051,
    38256: 38971,
    38257: 25935,
    38258: 29942,
    38259: 19981,
    38260: 20184,
    38261: 22496,
    38262: 22827,
    38263: 23142,
    38264: 23500,
    38265: 20904,
    38266: 24067,
    38267: 24220,
    38268: 24598,
    38269: 25206,
    38270: 25975,
    38272: 26023,
    38273: 26222,
    38274: 28014,
    38275: 29238,
    38276: 31526,
    38277: 33104,
    38278: 33178,
    38279: 33433,
    38280: 35676,
    38281: 36000,
    38282: 36070,
    38283: 36212,
    38284: 38428,
    38285: 38468,
    38286: 20398,
    38287: 25771,
    38288: 27494,
    38289: 33310,
    38290: 33889,
    38291: 34154,
    38292: 37096,
    38293: 23553,
    38294: 26963,
    38295: 39080,
    38296: 33914,
    38297: 34135,
    38298: 20239,
    38299: 21103,
    38300: 24489,
    38301: 24133,
    38302: 26381,
    38303: 31119,
    38304: 33145,
    38305: 35079,
    38306: 35206,
    38307: 28149,
    38308: 24343,
    38309: 25173,
    38310: 27832,
    38311: 20175,
    38312: 29289,
    38313: 39826,
    38314: 20998,
    38315: 21563,
    38316: 22132,
    38317: 22707,
    38318: 24996,
    38319: 25198,
    38320: 28954,
    38321: 22894,
    38322: 31881,
    38323: 31966,
    38324: 32027,
    38325: 38640,
    38326: 25991,
    38327: 32862,
    38328: 19993,
    38329: 20341,
    38330: 20853,
    38331: 22592,
    38332: 24163,
    38333: 24179,
    38334: 24330,
    38335: 26564,
    38336: 20006,
    38337: 34109,
    38338: 38281,
    38339: 38491,
    38340: 31859,
    38341: 38913,
    38342: 20731,
    38343: 22721,
    38344: 30294,
    38345: 30887,
    38346: 21029,
    38347: 30629,
    38348: 34065,
    38349: 31622,
    38350: 20559,
    38351: 22793,
    38352: 29255,
    38353: 31687,
    38354: 32232,
    38355: 36794,
    38356: 36820,
    38357: 36941,
    38358: 20415,
    38359: 21193,
    38360: 23081,
    38361: 24321,
    38362: 38829,
    38363: 20445,
    38364: 33303,
    38365: 37610,
    38366: 22275,
    38367: 25429,
    38368: 27497,
    38369: 29995,
    38370: 35036,
    38371: 36628,
    38372: 31298,
    38373: 21215,
    38374: 22675,
    38375: 24917,
    38376: 25098,
    38377: 26286,
    38378: 27597,
    38379: 31807,
    38380: 33769,
    38381: 20515,
    38382: 20472,
    38383: 21253,
    38384: 21574,
    38385: 22577,
    38386: 22857,
    38387: 23453,
    38388: 23792,
    38389: 23791,
    38390: 23849,
    38391: 24214,
    38392: 25265,
    38393: 25447,
    38394: 25918,
    38395: 26041,
    38396: 26379,
    38464: 27861,
    38465: 27873,
    38466: 28921,
    38467: 30770,
    38468: 32299,
    38469: 32990,
    38470: 33459,
    38471: 33804,
    38472: 34028,
    38473: 34562,
    38474: 35090,
    38475: 35370,
    38476: 35914,
    38477: 37030,
    38478: 37586,
    38479: 39165,
    38480: 40179,
    38481: 40300,
    38482: 20047,
    38483: 20129,
    38484: 20621,
    38485: 21078,
    38486: 22346,
    38487: 22952,
    38488: 24125,
    38489: 24536,
    38490: 24537,
    38491: 25151,
    38492: 26292,
    38493: 26395,
    38494: 26576,
    38495: 26834,
    38496: 20882,
    38497: 32033,
    38498: 32938,
    38499: 33192,
    38500: 35584,
    38501: 35980,
    38502: 36031,
    38503: 37502,
    38504: 38450,
    38505: 21536,
    38506: 38956,
    38507: 21271,
    38508: 20693,
    38509: 21340,
    38510: 22696,
    38511: 25778,
    38512: 26420,
    38513: 29287,
    38514: 30566,
    38515: 31302,
    38516: 37350,
    38517: 21187,
    38518: 27809,
    38519: 27526,
    38520: 22528,
    38521: 24140,
    38522: 22868,
    38523: 26412,
    38524: 32763,
    38525: 20961,
    38526: 30406,
    38528: 25705,
    38529: 30952,
    38530: 39764,
    38531: 40635,
    38532: 22475,
    38533: 22969,
    38534: 26151,
    38535: 26522,
    38536: 27598,
    38537: 21737,
    38538: 27097,
    38539: 24149,
    38540: 33180,
    38541: 26517,
    38542: 39850,
    38543: 26622,
    38544: 40018,
    38545: 26717,
    38546: 20134,
    38547: 20451,
    38548: 21448,
    38549: 25273,
    38550: 26411,
    38551: 27819,
    38552: 36804,
    38553: 20397,
    38554: 32365,
    38555: 40639,
    38556: 19975,
    38557: 24930,
    38558: 28288,
    38559: 28459,
    38560: 34067,
    38561: 21619,
    38562: 26410,
    38563: 39749,
    38564: 24051,
    38565: 31637,
    38566: 23724,
    38567: 23494,
    38568: 34588,
    38569: 28234,
    38570: 34001,
    38571: 31252,
    38572: 33032,
    38573: 22937,
    38574: 31885,
    38575: 27665,
    38576: 30496,
    38577: 21209,
    38578: 22818,
    38579: 28961,
    38580: 29279,
    38581: 30683,
    38582: 38695,
    38583: 40289,
    38584: 26891,
    38585: 23167,
    38586: 23064,
    38587: 20901,
    38588: 21517,
    38589: 21629,
    38590: 26126,
    38591: 30431,
    38592: 36855,
    38593: 37528,
    38594: 40180,
    38595: 23018,
    38596: 29277,
    38597: 28357,
    38598: 20813,
    38599: 26825,
    38600: 32191,
    38601: 32236,
    38602: 38754,
    38603: 40634,
    38604: 25720,
    38605: 27169,
    38606: 33538,
    38607: 22916,
    38608: 23391,
    38609: 27611,
    38610: 29467,
    38611: 30450,
    38612: 32178,
    38613: 32791,
    38614: 33945,
    38615: 20786,
    38616: 26408,
    38617: 40665,
    38618: 30446,
    38619: 26466,
    38620: 21247,
    38621: 39173,
    38622: 23588,
    38623: 25147,
    38624: 31870,
    38625: 36016,
    38626: 21839,
    38627: 24758,
    38628: 32011,
    38629: 38272,
    38630: 21249,
    38631: 20063,
    38632: 20918,
    38633: 22812,
    38634: 29242,
    38635: 32822,
    38636: 37326,
    38637: 24357,
    38638: 30690,
    38639: 21380,
    38640: 24441,
    38641: 32004,
    38642: 34220,
    38643: 35379,
    38644: 36493,
    38645: 38742,
    38646: 26611,
    38647: 34222,
    38648: 37971,
    38649: 24841,
    38650: 24840,
    38651: 27833,
    38652: 30290,
    38720: 35565,
    38721: 36664,
    38722: 21807,
    38723: 20305,
    38724: 20778,
    38725: 21191,
    38726: 21451,
    38727: 23461,
    38728: 24189,
    38729: 24736,
    38730: 24962,
    38731: 25558,
    38732: 26377,
    38733: 26586,
    38734: 28263,
    38735: 28044,
    38736: 29494,
    38737: 29495,
    38738: 30001,
    38739: 31056,
    38740: 35029,
    38741: 35480,
    38742: 36938,
    38743: 37009,
    38744: 37109,
    38745: 38596,
    38746: 34701,
    38747: 22805,
    38748: 20104,
    38749: 20313,
    38750: 19982,
    38751: 35465,
    38752: 36671,
    38753: 38928,
    38754: 20653,
    38755: 24188,
    38756: 22934,
    38757: 23481,
    38758: 24248,
    38759: 25562,
    38760: 25594,
    38761: 25793,
    38762: 26332,
    38763: 26954,
    38764: 27096,
    38765: 27915,
    38766: 28342,
    38767: 29076,
    38768: 29992,
    38769: 31407,
    38770: 32650,
    38771: 32768,
    38772: 33865,
    38773: 33993,
    38774: 35201,
    38775: 35617,
    38776: 36362,
    38777: 36965,
    38778: 38525,
    38779: 39178,
    38780: 24958,
    38781: 25233,
    38782: 27442,
    38784: 27779,
    38785: 28020,
    38786: 32716,
    38787: 32764,
    38788: 28096,
    38789: 32645,
    38790: 34746,
    38791: 35064,
    38792: 26469,
    38793: 33713,
    38794: 38972,
    38795: 38647,
    38796: 27931,
    38797: 32097,
    38798: 33853,
    38799: 37226,
    38800: 20081,
    38801: 21365,
    38802: 23888,
    38803: 27396,
    38804: 28651,
    38805: 34253,
    38806: 34349,
    38807: 35239,
    38808: 21033,
    38809: 21519,
    38810: 23653,
    38811: 26446,
    38812: 26792,
    38813: 29702,
    38814: 29827,
    38815: 30178,
    38816: 35023,
    38817: 35041,
    38818: 37324,
    38819: 38626,
    38820: 38520,
    38821: 24459,
    38822: 29575,
    38823: 31435,
    38824: 33870,
    38825: 25504,
    38826: 30053,
    38827: 21129,
    38828: 27969,
    38829: 28316,
    38830: 29705,
    38831: 30041,
    38832: 30827,
    38833: 31890,
    38834: 38534,
    38835: 31452,
    38836: 40845,
    38837: 20406,
    38838: 24942,
    38839: 26053,
    38840: 34396,
    38841: 20102,
    38842: 20142,
    38843: 20698,
    38844: 20001,
    38845: 20940,
    38846: 23534,
    38847: 26009,
    38848: 26753,
    38849: 28092,
    38850: 29471,
    38851: 30274,
    38852: 30637,
    38853: 31260,
    38854: 31975,
    38855: 33391,
    38856: 35538,
    38857: 36988,
    38858: 37327,
    38859: 38517,
    38860: 38936,
    38861: 21147,
    38862: 32209,
    38863: 20523,
    38864: 21400,
    38865: 26519,
    38866: 28107,
    38867: 29136,
    38868: 29747,
    38869: 33256,
    38870: 36650,
    38871: 38563,
    38872: 40023,
    38873: 40607,
    38874: 29792,
    38875: 22593,
    38876: 28057,
    38877: 32047,
    38878: 39006,
    38879: 20196,
    38880: 20278,
    38881: 20363,
    38882: 20919,
    38883: 21169,
    38884: 23994,
    38885: 24604,
    38886: 29618,
    38887: 31036,
    38888: 33491,
    38889: 37428,
    38890: 38583,
    38891: 38646,
    38892: 38666,
    38893: 40599,
    38894: 40802,
    38895: 26278,
    38896: 27508,
    38897: 21015,
    38898: 21155,
    38899: 28872,
    38900: 35010,
    38901: 24265,
    38902: 24651,
    38903: 24976,
    38904: 28451,
    38905: 29001,
    38906: 31806,
    38907: 32244,
    38908: 32879,
    38976: 34030,
    38977: 36899,
    38978: 37676,
    38979: 21570,
    38980: 39791,
    38981: 27347,
    38982: 28809,
    38983: 36034,
    38984: 36335,
    38985: 38706,
    38986: 21172,
    38987: 23105,
    38988: 24266,
    38989: 24324,
    38990: 26391,
    38991: 27004,
    38992: 27028,
    38993: 28010,
    38994: 28431,
    38995: 29282,
    38996: 29436,
    38997: 31725,
    38998: 32769,
    38999: 32894,
    39000: 34635,
    39001: 37070,
    39002: 20845,
    39003: 40595,
    39004: 31108,
    39005: 32907,
    39006: 37682,
    39007: 35542,
    39008: 20525,
    39009: 21644,
    39010: 35441,
    39011: 27498,
    39012: 36036,
    39013: 33031,
    39014: 24785,
    39015: 26528,
    39016: 40434,
    39017: 20121,
    39018: 20120,
    39019: 39952,
    39020: 35435,
    39021: 34241,
    39022: 34152,
    39023: 26880,
    39024: 28286,
    39025: 30871,
    39026: 33109,
    39071: 24332,
    39072: 19984,
    39073: 19989,
    39074: 20010,
    39075: 20017,
    39076: 20022,
    39077: 20028,
    39078: 20031,
    39079: 20034,
    39080: 20054,
    39081: 20056,
    39082: 20098,
    39083: 20101,
    39084: 35947,
    39085: 20106,
    39086: 33298,
    39087: 24333,
    39088: 20110,
    39089: 20126,
    39090: 20127,
    39091: 20128,
    39092: 20130,
    39093: 20144,
    39094: 20147,
    39095: 20150,
    39096: 20174,
    39097: 20173,
    39098: 20164,
    39099: 20166,
    39100: 20162,
    39101: 20183,
    39102: 20190,
    39103: 20205,
    39104: 20191,
    39105: 20215,
    39106: 20233,
    39107: 20314,
    39108: 20272,
    39109: 20315,
    39110: 20317,
    39111: 20311,
    39112: 20295,
    39113: 20342,
    39114: 20360,
    39115: 20367,
    39116: 20376,
    39117: 20347,
    39118: 20329,
    39119: 20336,
    39120: 20369,
    39121: 20335,
    39122: 20358,
    39123: 20374,
    39124: 20760,
    39125: 20436,
    39126: 20447,
    39127: 20430,
    39128: 20440,
    39129: 20443,
    39130: 20433,
    39131: 20442,
    39132: 20432,
    39133: 20452,
    39134: 20453,
    39135: 20506,
    39136: 20520,
    39137: 20500,
    39138: 20522,
    39139: 20517,
    39140: 20485,
    39141: 20252,
    39142: 20470,
    39143: 20513,
    39144: 20521,
    39145: 20524,
    39146: 20478,
    39147: 20463,
    39148: 20497,
    39149: 20486,
    39150: 20547,
    39151: 20551,
    39152: 26371,
    39153: 20565,
    39154: 20560,
    39155: 20552,
    39156: 20570,
    39157: 20566,
    39158: 20588,
    39159: 20600,
    39160: 20608,
    39161: 20634,
    39162: 20613,
    39163: 20660,
    39164: 20658,
    39232: 20681,
    39233: 20682,
    39234: 20659,
    39235: 20674,
    39236: 20694,
    39237: 20702,
    39238: 20709,
    39239: 20717,
    39240: 20707,
    39241: 20718,
    39242: 20729,
    39243: 20725,
    39244: 20745,
    39245: 20737,
    39246: 20738,
    39247: 20758,
    39248: 20757,
    39249: 20756,
    39250: 20762,
    39251: 20769,
    39252: 20794,
    39253: 20791,
    39254: 20796,
    39255: 20795,
    39256: 20799,
    39257: 20800,
    39258: 20818,
    39259: 20812,
    39260: 20820,
    39261: 20834,
    39262: 31480,
    39263: 20841,
    39264: 20842,
    39265: 20846,
    39266: 20864,
    39267: 20866,
    39268: 22232,
    39269: 20876,
    39270: 20873,
    39271: 20879,
    39272: 20881,
    39273: 20883,
    39274: 20885,
    39275: 20886,
    39276: 20900,
    39277: 20902,
    39278: 20898,
    39279: 20905,
    39280: 20906,
    39281: 20907,
    39282: 20915,
    39283: 20913,
    39284: 20914,
    39285: 20912,
    39286: 20917,
    39287: 20925,
    39288: 20933,
    39289: 20937,
    39290: 20955,
    39291: 20960,
    39292: 34389,
    39293: 20969,
    39294: 20973,
    39296: 20976,
    39297: 20981,
    39298: 20990,
    39299: 20996,
    39300: 21003,
    39301: 21012,
    39302: 21006,
    39303: 21031,
    39304: 21034,
    39305: 21038,
    39306: 21043,
    39307: 21049,
    39308: 21071,
    39309: 21060,
    39310: 21067,
    39311: 21068,
    39312: 21086,
    39313: 21076,
    39314: 21098,
    39315: 21108,
    39316: 21097,
    39317: 21107,
    39318: 21119,
    39319: 21117,
    39320: 21133,
    39321: 21140,
    39322: 21138,
    39323: 21105,
    39324: 21128,
    39325: 21137,
    39326: 36776,
    39327: 36775,
    39328: 21164,
    39329: 21165,
    39330: 21180,
    39331: 21173,
    39332: 21185,
    39333: 21197,
    39334: 21207,
    39335: 21214,
    39336: 21219,
    39337: 21222,
    39338: 39149,
    39339: 21216,
    39340: 21235,
    39341: 21237,
    39342: 21240,
    39343: 21241,
    39344: 21254,
    39345: 21256,
    39346: 30008,
    39347: 21261,
    39348: 21264,
    39349: 21263,
    39350: 21269,
    39351: 21274,
    39352: 21283,
    39353: 21295,
    39354: 21297,
    39355: 21299,
    39356: 21304,
    39357: 21312,
    39358: 21318,
    39359: 21317,
    39360: 19991,
    39361: 21321,
    39362: 21325,
    39363: 20950,
    39364: 21342,
    39365: 21353,
    39366: 21358,
    39367: 22808,
    39368: 21371,
    39369: 21367,
    39370: 21378,
    39371: 21398,
    39372: 21408,
    39373: 21414,
    39374: 21413,
    39375: 21422,
    39376: 21424,
    39377: 21430,
    39378: 21443,
    39379: 31762,
    39380: 38617,
    39381: 21471,
    39382: 26364,
    39383: 29166,
    39384: 21486,
    39385: 21480,
    39386: 21485,
    39387: 21498,
    39388: 21505,
    39389: 21565,
    39390: 21568,
    39391: 21548,
    39392: 21549,
    39393: 21564,
    39394: 21550,
    39395: 21558,
    39396: 21545,
    39397: 21533,
    39398: 21582,
    39399: 21647,
    39400: 21621,
    39401: 21646,
    39402: 21599,
    39403: 21617,
    39404: 21623,
    39405: 21616,
    39406: 21650,
    39407: 21627,
    39408: 21632,
    39409: 21622,
    39410: 21636,
    39411: 21648,
    39412: 21638,
    39413: 21703,
    39414: 21666,
    39415: 21688,
    39416: 21669,
    39417: 21676,
    39418: 21700,
    39419: 21704,
    39420: 21672,
    39488: 21675,
    39489: 21698,
    39490: 21668,
    39491: 21694,
    39492: 21692,
    39493: 21720,
    39494: 21733,
    39495: 21734,
    39496: 21775,
    39497: 21780,
    39498: 21757,
    39499: 21742,
    39500: 21741,
    39501: 21754,
    39502: 21730,
    39503: 21817,
    39504: 21824,
    39505: 21859,
    39506: 21836,
    39507: 21806,
    39508: 21852,
    39509: 21829,
    39510: 21846,
    39511: 21847,
    39512: 21816,
    39513: 21811,
    39514: 21853,
    39515: 21913,
    39516: 21888,
    39517: 21679,
    39518: 21898,
    39519: 21919,
    39520: 21883,
    39521: 21886,
    39522: 21912,
    39523: 21918,
    39524: 21934,
    39525: 21884,
    39526: 21891,
    39527: 21929,
    39528: 21895,
    39529: 21928,
    39530: 21978,
    39531: 21957,
    39532: 21983,
    39533: 21956,
    39534: 21980,
    39535: 21988,
    39536: 21972,
    39537: 22036,
    39538: 22007,
    39539: 22038,
    39540: 22014,
    39541: 22013,
    39542: 22043,
    39543: 22009,
    39544: 22094,
    39545: 22096,
    39546: 29151,
    39547: 22068,
    39548: 22070,
    39549: 22066,
    39550: 22072,
    39552: 22123,
    39553: 22116,
    39554: 22063,
    39555: 22124,
    39556: 22122,
    39557: 22150,
    39558: 22144,
    39559: 22154,
    39560: 22176,
    39561: 22164,
    39562: 22159,
    39563: 22181,
    39564: 22190,
    39565: 22198,
    39566: 22196,
    39567: 22210,
    39568: 22204,
    39569: 22209,
    39570: 22211,
    39571: 22208,
    39572: 22216,
    39573: 22222,
    39574: 22225,
    39575: 22227,
    39576: 22231,
    39577: 22254,
    39578: 22265,
    39579: 22272,
    39580: 22271,
    39581: 22276,
    39582: 22281,
    39583: 22280,
    39584: 22283,
    39585: 22285,
    39586: 22291,
    39587: 22296,
    39588: 22294,
    39589: 21959,
    39590: 22300,
    39591: 22310,
    39592: 22327,
    39593: 22328,
    39594: 22350,
    39595: 22331,
    39596: 22336,
    39597: 22351,
    39598: 22377,
    39599: 22464,
    39600: 22408,
    39601: 22369,
    39602: 22399,
    39603: 22409,
    39604: 22419,
    39605: 22432,
    39606: 22451,
    39607: 22436,
    39608: 22442,
    39609: 22448,
    39610: 22467,
    39611: 22470,
    39612: 22484,
    39613: 22482,
    39614: 22483,
    39615: 22538,
    39616: 22486,
    39617: 22499,
    39618: 22539,
    39619: 22553,
    39620: 22557,
    39621: 22642,
    39622: 22561,
    39623: 22626,
    39624: 22603,
    39625: 22640,
    39626: 27584,
    39627: 22610,
    39628: 22589,
    39629: 22649,
    39630: 22661,
    39631: 22713,
    39632: 22687,
    39633: 22699,
    39634: 22714,
    39635: 22750,
    39636: 22715,
    39637: 22712,
    39638: 22702,
    39639: 22725,
    39640: 22739,
    39641: 22737,
    39642: 22743,
    39643: 22745,
    39644: 22744,
    39645: 22757,
    39646: 22748,
    39647: 22756,
    39648: 22751,
    39649: 22767,
    39650: 22778,
    39651: 22777,
    39652: 22779,
    39653: 22780,
    39654: 22781,
    39655: 22786,
    39656: 22794,
    39657: 22800,
    39658: 22811,
    39659: 26790,
    39660: 22821,
    39661: 22828,
    39662: 22829,
    39663: 22834,
    39664: 22840,
    39665: 22846,
    39666: 31442,
    39667: 22869,
    39668: 22864,
    39669: 22862,
    39670: 22874,
    39671: 22872,
    39672: 22882,
    39673: 22880,
    39674: 22887,
    39675: 22892,
    39676: 22889,
    39744: 22904,
    39745: 22913,
    39746: 22941,
    39747: 20318,
    39748: 20395,
    39749: 22947,
    39750: 22962,
    39751: 22982,
    39752: 23016,
    39753: 23004,
    39754: 22925,
    39755: 23001,
    39756: 23002,
    39757: 23077,
    39758: 23071,
    39759: 23057,
    39760: 23068,
    39761: 23049,
    39762: 23066,
    39763: 23104,
    39764: 23148,
    39765: 23113,
    39766: 23093,
    39767: 23094,
    39768: 23138,
    39769: 23146,
    39770: 23194,
    39771: 23228,
    39772: 23230,
    39773: 23243,
    39774: 23234,
    39775: 23229,
    39776: 23267,
    39777: 23255,
    39778: 23270,
    39779: 23273,
    39780: 23254,
    39781: 23290,
    39782: 23291,
    39783: 23308,
    39784: 23307,
    39785: 23318,
    39786: 23346,
    39787: 23248,
    39788: 23338,
    39789: 23350,
    39790: 23358,
    39791: 23363,
    39792: 23365,
    39793: 23360,
    39794: 23377,
    39795: 23381,
    39796: 23386,
    39797: 23387,
    39798: 23397,
    39799: 23401,
    39800: 23408,
    39801: 23411,
    39802: 23413,
    39803: 23416,
    39804: 25992,
    39805: 23418,
    39806: 23424,
    39808: 23427,
    39809: 23462,
    39810: 23480,
    39811: 23491,
    39812: 23495,
    39813: 23497,
    39814: 23508,
    39815: 23504,
    39816: 23524,
    39817: 23526,
    39818: 23522,
    39819: 23518,
    39820: 23525,
    39821: 23531,
    39822: 23536,
    39823: 23542,
    39824: 23539,
    39825: 23557,
    39826: 23559,
    39827: 23560,
    39828: 23565,
    39829: 23571,
    39830: 23584,
    39831: 23586,
    39832: 23592,
    39833: 23608,
    39834: 23609,
    39835: 23617,
    39836: 23622,
    39837: 23630,
    39838: 23635,
    39839: 23632,
    39840: 23631,
    39841: 23409,
    39842: 23660,
    39843: 23662,
    39844: 20066,
    39845: 23670,
    39846: 23673,
    39847: 23692,
    39848: 23697,
    39849: 23700,
    39850: 22939,
    39851: 23723,
    39852: 23739,
    39853: 23734,
    39854: 23740,
    39855: 23735,
    39856: 23749,
    39857: 23742,
    39858: 23751,
    39859: 23769,
    39860: 23785,
    39861: 23805,
    39862: 23802,
    39863: 23789,
    39864: 23948,
    39865: 23786,
    39866: 23819,
    39867: 23829,
    39868: 23831,
    39869: 23900,
    39870: 23839,
    39871: 23835,
    39872: 23825,
    39873: 23828,
    39874: 23842,
    39875: 23834,
    39876: 23833,
    39877: 23832,
    39878: 23884,
    39879: 23890,
    39880: 23886,
    39881: 23883,
    39882: 23916,
    39883: 23923,
    39884: 23926,
    39885: 23943,
    39886: 23940,
    39887: 23938,
    39888: 23970,
    39889: 23965,
    39890: 23980,
    39891: 23982,
    39892: 23997,
    39893: 23952,
    39894: 23991,
    39895: 23996,
    39896: 24009,
    39897: 24013,
    39898: 24019,
    39899: 24018,
    39900: 24022,
    39901: 24027,
    39902: 24043,
    39903: 24050,
    39904: 24053,
    39905: 24075,
    39906: 24090,
    39907: 24089,
    39908: 24081,
    39909: 24091,
    39910: 24118,
    39911: 24119,
    39912: 24132,
    39913: 24131,
    39914: 24128,
    39915: 24142,
    39916: 24151,
    39917: 24148,
    39918: 24159,
    39919: 24162,
    39920: 24164,
    39921: 24135,
    39922: 24181,
    39923: 24182,
    39924: 24186,
    39925: 40636,
    39926: 24191,
    39927: 24224,
    39928: 24257,
    39929: 24258,
    39930: 24264,
    39931: 24272,
    39932: 24271,
    40000: 24278,
    40001: 24291,
    40002: 24285,
    40003: 24282,
    40004: 24283,
    40005: 24290,
    40006: 24289,
    40007: 24296,
    40008: 24297,
    40009: 24300,
    40010: 24305,
    40011: 24307,
    40012: 24304,
    40013: 24308,
    40014: 24312,
    40015: 24318,
    40016: 24323,
    40017: 24329,
    40018: 24413,
    40019: 24412,
    40020: 24331,
    40021: 24337,
    40022: 24342,
    40023: 24361,
    40024: 24365,
    40025: 24376,
    40026: 24385,
    40027: 24392,
    40028: 24396,
    40029: 24398,
    40030: 24367,
    40031: 24401,
    40032: 24406,
    40033: 24407,
    40034: 24409,
    40035: 24417,
    40036: 24429,
    40037: 24435,
    40038: 24439,
    40039: 24451,
    40040: 24450,
    40041: 24447,
    40042: 24458,
    40043: 24456,
    40044: 24465,
    40045: 24455,
    40046: 24478,
    40047: 24473,
    40048: 24472,
    40049: 24480,
    40050: 24488,
    40051: 24493,
    40052: 24508,
    40053: 24534,
    40054: 24571,
    40055: 24548,
    40056: 24568,
    40057: 24561,
    40058: 24541,
    40059: 24755,
    40060: 24575,
    40061: 24609,
    40062: 24672,
    40064: 24601,
    40065: 24592,
    40066: 24617,
    40067: 24590,
    40068: 24625,
    40069: 24603,
    40070: 24597,
    40071: 24619,
    40072: 24614,
    40073: 24591,
    40074: 24634,
    40075: 24666,
    40076: 24641,
    40077: 24682,
    40078: 24695,
    40079: 24671,
    40080: 24650,
    40081: 24646,
    40082: 24653,
    40083: 24675,
    40084: 24643,
    40085: 24676,
    40086: 24642,
    40087: 24684,
    40088: 24683,
    40089: 24665,
    40090: 24705,
    40091: 24717,
    40092: 24807,
    40093: 24707,
    40094: 24730,
    40095: 24708,
    40096: 24731,
    40097: 24726,
    40098: 24727,
    40099: 24722,
    40100: 24743,
    40101: 24715,
    40102: 24801,
    40103: 24760,
    40104: 24800,
    40105: 24787,
    40106: 24756,
    40107: 24560,
    40108: 24765,
    40109: 24774,
    40110: 24757,
    40111: 24792,
    40112: 24909,
    40113: 24853,
    40114: 24838,
    40115: 24822,
    40116: 24823,
    40117: 24832,
    40118: 24820,
    40119: 24826,
    40120: 24835,
    40121: 24865,
    40122: 24827,
    40123: 24817,
    40124: 24845,
    40125: 24846,
    40126: 24903,
    40127: 24894,
    40128: 24872,
    40129: 24871,
    40130: 24906,
    40131: 24895,
    40132: 24892,
    40133: 24876,
    40134: 24884,
    40135: 24893,
    40136: 24898,
    40137: 24900,
    40138: 24947,
    40139: 24951,
    40140: 24920,
    40141: 24921,
    40142: 24922,
    40143: 24939,
    40144: 24948,
    40145: 24943,
    40146: 24933,
    40147: 24945,
    40148: 24927,
    40149: 24925,
    40150: 24915,
    40151: 24949,
    40152: 24985,
    40153: 24982,
    40154: 24967,
    40155: 25004,
    40156: 24980,
    40157: 24986,
    40158: 24970,
    40159: 24977,
    40160: 25003,
    40161: 25006,
    40162: 25036,
    40163: 25034,
    40164: 25033,
    40165: 25079,
    40166: 25032,
    40167: 25027,
    40168: 25030,
    40169: 25018,
    40170: 25035,
    40171: 32633,
    40172: 25037,
    40173: 25062,
    40174: 25059,
    40175: 25078,
    40176: 25082,
    40177: 25076,
    40178: 25087,
    40179: 25085,
    40180: 25084,
    40181: 25086,
    40182: 25088,
    40183: 25096,
    40184: 25097,
    40185: 25101,
    40186: 25100,
    40187: 25108,
    40188: 25115,
    40256: 25118,
    40257: 25121,
    40258: 25130,
    40259: 25134,
    40260: 25136,
    40261: 25138,
    40262: 25139,
    40263: 25153,
    40264: 25166,
    40265: 25182,
    40266: 25187,
    40267: 25179,
    40268: 25184,
    40269: 25192,
    40270: 25212,
    40271: 25218,
    40272: 25225,
    40273: 25214,
    40274: 25234,
    40275: 25235,
    40276: 25238,
    40277: 25300,
    40278: 25219,
    40279: 25236,
    40280: 25303,
    40281: 25297,
    40282: 25275,
    40283: 25295,
    40284: 25343,
    40285: 25286,
    40286: 25812,
    40287: 25288,
    40288: 25308,
    40289: 25292,
    40290: 25290,
    40291: 25282,
    40292: 25287,
    40293: 25243,
    40294: 25289,
    40295: 25356,
    40296: 25326,
    40297: 25329,
    40298: 25383,
    40299: 25346,
    40300: 25352,
    40301: 25327,
    40302: 25333,
    40303: 25424,
    40304: 25406,
    40305: 25421,
    40306: 25628,
    40307: 25423,
    40308: 25494,
    40309: 25486,
    40310: 25472,
    40311: 25515,
    40312: 25462,
    40313: 25507,
    40314: 25487,
    40315: 25481,
    40316: 25503,
    40317: 25525,
    40318: 25451,
    40320: 25449,
    40321: 25534,
    40322: 25577,
    40323: 25536,
    40324: 25542,
    40325: 25571,
    40326: 25545,
    40327: 25554,
    40328: 25590,
    40329: 25540,
    40330: 25622,
    40331: 25652,
    40332: 25606,
    40333: 25619,
    40334: 25638,
    40335: 25654,
    40336: 25885,
    40337: 25623,
    40338: 25640,
    40339: 25615,
    40340: 25703,
    40341: 25711,
    40342: 25718,
    40343: 25678,
    40344: 25898,
    40345: 25749,
    40346: 25747,
    40347: 25765,
    40348: 25769,
    40349: 25736,
    40350: 25788,
    40351: 25818,
    40352: 25810,
    40353: 25797,
    40354: 25799,
    40355: 25787,
    40356: 25816,
    40357: 25794,
    40358: 25841,
    40359: 25831,
    40360: 33289,
    40361: 25824,
    40362: 25825,
    40363: 25260,
    40364: 25827,
    40365: 25839,
    40366: 25900,
    40367: 25846,
    40368: 25844,
    40369: 25842,
    40370: 25850,
    40371: 25856,
    40372: 25853,
    40373: 25880,
    40374: 25884,
    40375: 25861,
    40376: 25892,
    40377: 25891,
    40378: 25899,
    40379: 25908,
    40380: 25909,
    40381: 25911,
    40382: 25910,
    40383: 25912,
    40384: 30027,
    40385: 25928,
    40386: 25942,
    40387: 25941,
    40388: 25933,
    40389: 25944,
    40390: 25950,
    40391: 25949,
    40392: 25970,
    40393: 25976,
    40394: 25986,
    40395: 25987,
    40396: 35722,
    40397: 26011,
    40398: 26015,
    40399: 26027,
    40400: 26039,
    40401: 26051,
    40402: 26054,
    40403: 26049,
    40404: 26052,
    40405: 26060,
    40406: 26066,
    40407: 26075,
    40408: 26073,
    40409: 26080,
    40410: 26081,
    40411: 26097,
    40412: 26482,
    40413: 26122,
    40414: 26115,
    40415: 26107,
    40416: 26483,
    40417: 26165,
    40418: 26166,
    40419: 26164,
    40420: 26140,
    40421: 26191,
    40422: 26180,
    40423: 26185,
    40424: 26177,
    40425: 26206,
    40426: 26205,
    40427: 26212,
    40428: 26215,
    40429: 26216,
    40430: 26207,
    40431: 26210,
    40432: 26224,
    40433: 26243,
    40434: 26248,
    40435: 26254,
    40436: 26249,
    40437: 26244,
    40438: 26264,
    40439: 26269,
    40440: 26305,
    40441: 26297,
    40442: 26313,
    40443: 26302,
    40444: 26300,
    40512: 26308,
    40513: 26296,
    40514: 26326,
    40515: 26330,
    40516: 26336,
    40517: 26175,
    40518: 26342,
    40519: 26345,
    40520: 26352,
    40521: 26357,
    40522: 26359,
    40523: 26383,
    40524: 26390,
    40525: 26398,
    40526: 26406,
    40527: 26407,
    40528: 38712,
    40529: 26414,
    40530: 26431,
    40531: 26422,
    40532: 26433,
    40533: 26424,
    40534: 26423,
    40535: 26438,
    40536: 26462,
    40537: 26464,
    40538: 26457,
    40539: 26467,
    40540: 26468,
    40541: 26505,
    40542: 26480,
    40543: 26537,
    40544: 26492,
    40545: 26474,
    40546: 26508,
    40547: 26507,
    40548: 26534,
    40549: 26529,
    40550: 26501,
    40551: 26551,
    40552: 26607,
    40553: 26548,
    40554: 26604,
    40555: 26547,
    40556: 26601,
    40557: 26552,
    40558: 26596,
    40559: 26590,
    40560: 26589,
    40561: 26594,
    40562: 26606,
    40563: 26553,
    40564: 26574,
    40565: 26566,
    40566: 26599,
    40567: 27292,
    40568: 26654,
    40569: 26694,
    40570: 26665,
    40571: 26688,
    40572: 26701,
    40573: 26674,
    40574: 26702,
    40576: 26803,
    40577: 26667,
    40578: 26713,
    40579: 26723,
    40580: 26743,
    40581: 26751,
    40582: 26783,
    40583: 26767,
    40584: 26797,
    40585: 26772,
    40586: 26781,
    40587: 26779,
    40588: 26755,
    40589: 27310,
    40590: 26809,
    40591: 26740,
    40592: 26805,
    40593: 26784,
    40594: 26810,
    40595: 26895,
    40596: 26765,
    40597: 26750,
    40598: 26881,
    40599: 26826,
    40600: 26888,
    40601: 26840,
    40602: 26914,
    40603: 26918,
    40604: 26849,
    40605: 26892,
    40606: 26829,
    40607: 26836,
    40608: 26855,
    40609: 26837,
    40610: 26934,
    40611: 26898,
    40612: 26884,
    40613: 26839,
    40614: 26851,
    40615: 26917,
    40616: 26873,
    40617: 26848,
    40618: 26863,
    40619: 26920,
    40620: 26922,
    40621: 26906,
    40622: 26915,
    40623: 26913,
    40624: 26822,
    40625: 27001,
    40626: 26999,
    40627: 26972,
    40628: 27000,
    40629: 26987,
    40630: 26964,
    40631: 27006,
    40632: 26990,
    40633: 26937,
    40634: 26996,
    40635: 26941,
    40636: 26969,
    40637: 26928,
    40638: 26977,
    40639: 26974,
    40640: 26973,
    40641: 27009,
    40642: 26986,
    40643: 27058,
    40644: 27054,
    40645: 27088,
    40646: 27071,
    40647: 27073,
    40648: 27091,
    40649: 27070,
    40650: 27086,
    40651: 23528,
    40652: 27082,
    40653: 27101,
    40654: 27067,
    40655: 27075,
    40656: 27047,
    40657: 27182,
    40658: 27025,
    40659: 27040,
    40660: 27036,
    40661: 27029,
    40662: 27060,
    40663: 27102,
    40664: 27112,
    40665: 27138,
    40666: 27163,
    40667: 27135,
    40668: 27402,
    40669: 27129,
    40670: 27122,
    40671: 27111,
    40672: 27141,
    40673: 27057,
    40674: 27166,
    40675: 27117,
    40676: 27156,
    40677: 27115,
    40678: 27146,
    40679: 27154,
    40680: 27329,
    40681: 27171,
    40682: 27155,
    40683: 27204,
    40684: 27148,
    40685: 27250,
    40686: 27190,
    40687: 27256,
    40688: 27207,
    40689: 27234,
    40690: 27225,
    40691: 27238,
    40692: 27208,
    40693: 27192,
    40694: 27170,
    40695: 27280,
    40696: 27277,
    40697: 27296,
    40698: 27268,
    40699: 27298,
    40700: 27299,
    40768: 27287,
    40769: 34327,
    40770: 27323,
    40771: 27331,
    40772: 27330,
    40773: 27320,
    40774: 27315,
    40775: 27308,
    40776: 27358,
    40777: 27345,
    40778: 27359,
    40779: 27306,
    40780: 27354,
    40781: 27370,
    40782: 27387,
    40783: 27397,
    40784: 34326,
    40785: 27386,
    40786: 27410,
    40787: 27414,
    40788: 39729,
    40789: 27423,
    40790: 27448,
    40791: 27447,
    40792: 30428,
    40793: 27449,
    40794: 39150,
    40795: 27463,
    40796: 27459,
    40797: 27465,
    40798: 27472,
    40799: 27481,
    40800: 27476,
    40801: 27483,
    40802: 27487,
    40803: 27489,
    40804: 27512,
    40805: 27513,
    40806: 27519,
    40807: 27520,
    40808: 27524,
    40809: 27523,
    40810: 27533,
    40811: 27544,
    40812: 27541,
    40813: 27550,
    40814: 27556,
    40815: 27562,
    40816: 27563,
    40817: 27567,
    40818: 27570,
    40819: 27569,
    40820: 27571,
    40821: 27575,
    40822: 27580,
    40823: 27590,
    40824: 27595,
    40825: 27603,
    40826: 27615,
    40827: 27628,
    40828: 27627,
    40829: 27635,
    40830: 27631,
    40832: 40638,
    40833: 27656,
    40834: 27667,
    40835: 27668,
    40836: 27675,
    40837: 27684,
    40838: 27683,
    40839: 27742,
    40840: 27733,
    40841: 27746,
    40842: 27754,
    40843: 27778,
    40844: 27789,
    40845: 27802,
    40846: 27777,
    40847: 27803,
    40848: 27774,
    40849: 27752,
    40850: 27763,
    40851: 27794,
    40852: 27792,
    40853: 27844,
    40854: 27889,
    40855: 27859,
    40856: 27837,
    40857: 27863,
    40858: 27845,
    40859: 27869,
    40860: 27822,
    40861: 27825,
    40862: 27838,
    40863: 27834,
    40864: 27867,
    40865: 27887,
    40866: 27865,
    40867: 27882,
    40868: 27935,
    40869: 34893,
    40870: 27958,
    40871: 27947,
    40872: 27965,
    40873: 27960,
    40874: 27929,
    40875: 27957,
    40876: 27955,
    40877: 27922,
    40878: 27916,
    40879: 28003,
    40880: 28051,
    40881: 28004,
    40882: 27994,
    40883: 28025,
    40884: 27993,
    40885: 28046,
    40886: 28053,
    40887: 28644,
    40888: 28037,
    40889: 28153,
    40890: 28181,
    40891: 28170,
    40892: 28085,
    40893: 28103,
    40894: 28134,
    40895: 28088,
    40896: 28102,
    40897: 28140,
    40898: 28126,
    40899: 28108,
    40900: 28136,
    40901: 28114,
    40902: 28101,
    40903: 28154,
    40904: 28121,
    40905: 28132,
    40906: 28117,
    40907: 28138,
    40908: 28142,
    40909: 28205,
    40910: 28270,
    40911: 28206,
    40912: 28185,
    40913: 28274,
    40914: 28255,
    40915: 28222,
    40916: 28195,
    40917: 28267,
    40918: 28203,
    40919: 28278,
    40920: 28237,
    40921: 28191,
    40922: 28227,
    40923: 28218,
    40924: 28238,
    40925: 28196,
    40926: 28415,
    40927: 28189,
    40928: 28216,
    40929: 28290,
    40930: 28330,
    40931: 28312,
    40932: 28361,
    40933: 28343,
    40934: 28371,
    40935: 28349,
    40936: 28335,
    40937: 28356,
    40938: 28338,
    40939: 28372,
    40940: 28373,
    40941: 28303,
    40942: 28325,
    40943: 28354,
    40944: 28319,
    40945: 28481,
    40946: 28433,
    40947: 28748,
    40948: 28396,
    40949: 28408,
    40950: 28414,
    40951: 28479,
    40952: 28402,
    40953: 28465,
    40954: 28399,
    40955: 28466,
    40956: 28364,
    57408: 28478,
    57409: 28435,
    57410: 28407,
    57411: 28550,
    57412: 28538,
    57413: 28536,
    57414: 28545,
    57415: 28544,
    57416: 28527,
    57417: 28507,
    57418: 28659,
    57419: 28525,
    57420: 28546,
    57421: 28540,
    57422: 28504,
    57423: 28558,
    57424: 28561,
    57425: 28610,
    57426: 28518,
    57427: 28595,
    57428: 28579,
    57429: 28577,
    57430: 28580,
    57431: 28601,
    57432: 28614,
    57433: 28586,
    57434: 28639,
    57435: 28629,
    57436: 28652,
    57437: 28628,
    57438: 28632,
    57439: 28657,
    57440: 28654,
    57441: 28635,
    57442: 28681,
    57443: 28683,
    57444: 28666,
    57445: 28689,
    57446: 28673,
    57447: 28687,
    57448: 28670,
    57449: 28699,
    57450: 28698,
    57451: 28532,
    57452: 28701,
    57453: 28696,
    57454: 28703,
    57455: 28720,
    57456: 28734,
    57457: 28722,
    57458: 28753,
    57459: 28771,
    57460: 28825,
    57461: 28818,
    57462: 28847,
    57463: 28913,
    57464: 28844,
    57465: 28856,
    57466: 28851,
    57467: 28846,
    57468: 28895,
    57469: 28875,
    57470: 28893,
    57472: 28889,
    57473: 28937,
    57474: 28925,
    57475: 28956,
    57476: 28953,
    57477: 29029,
    57478: 29013,
    57479: 29064,
    57480: 29030,
    57481: 29026,
    57482: 29004,
    57483: 29014,
    57484: 29036,
    57485: 29071,
    57486: 29179,
    57487: 29060,
    57488: 29077,
    57489: 29096,
    57490: 29100,
    57491: 29143,
    57492: 29113,
    57493: 29118,
    57494: 29138,
    57495: 29129,
    57496: 29140,
    57497: 29134,
    57498: 29152,
    57499: 29164,
    57500: 29159,
    57501: 29173,
    57502: 29180,
    57503: 29177,
    57504: 29183,
    57505: 29197,
    57506: 29200,
    57507: 29211,
    57508: 29224,
    57509: 29229,
    57510: 29228,
    57511: 29232,
    57512: 29234,
    57513: 29243,
    57514: 29244,
    57515: 29247,
    57516: 29248,
    57517: 29254,
    57518: 29259,
    57519: 29272,
    57520: 29300,
    57521: 29310,
    57522: 29314,
    57523: 29313,
    57524: 29319,
    57525: 29330,
    57526: 29334,
    57527: 29346,
    57528: 29351,
    57529: 29369,
    57530: 29362,
    57531: 29379,
    57532: 29382,
    57533: 29380,
    57534: 29390,
    57535: 29394,
    57536: 29410,
    57537: 29408,
    57538: 29409,
    57539: 29433,
    57540: 29431,
    57541: 20495,
    57542: 29463,
    57543: 29450,
    57544: 29468,
    57545: 29462,
    57546: 29469,
    57547: 29492,
    57548: 29487,
    57549: 29481,
    57550: 29477,
    57551: 29502,
    57552: 29518,
    57553: 29519,
    57554: 40664,
    57555: 29527,
    57556: 29546,
    57557: 29544,
    57558: 29552,
    57559: 29560,
    57560: 29557,
    57561: 29563,
    57562: 29562,
    57563: 29640,
    57564: 29619,
    57565: 29646,
    57566: 29627,
    57567: 29632,
    57568: 29669,
    57569: 29678,
    57570: 29662,
    57571: 29858,
    57572: 29701,
    57573: 29807,
    57574: 29733,
    57575: 29688,
    57576: 29746,
    57577: 29754,
    57578: 29781,
    57579: 29759,
    57580: 29791,
    57581: 29785,
    57582: 29761,
    57583: 29788,
    57584: 29801,
    57585: 29808,
    57586: 29795,
    57587: 29802,
    57588: 29814,
    57589: 29822,
    57590: 29835,
    57591: 29854,
    57592: 29863,
    57593: 29898,
    57594: 29903,
    57595: 29908,
    57596: 29681,
    57664: 29920,
    57665: 29923,
    57666: 29927,
    57667: 29929,
    57668: 29934,
    57669: 29938,
    57670: 29936,
    57671: 29937,
    57672: 29944,
    57673: 29943,
    57674: 29956,
    57675: 29955,
    57676: 29957,
    57677: 29964,
    57678: 29966,
    57679: 29965,
    57680: 29973,
    57681: 29971,
    57682: 29982,
    57683: 29990,
    57684: 29996,
    57685: 30012,
    57686: 30020,
    57687: 30029,
    57688: 30026,
    57689: 30025,
    57690: 30043,
    57691: 30022,
    57692: 30042,
    57693: 30057,
    57694: 30052,
    57695: 30055,
    57696: 30059,
    57697: 30061,
    57698: 30072,
    57699: 30070,
    57700: 30086,
    57701: 30087,
    57702: 30068,
    57703: 30090,
    57704: 30089,
    57705: 30082,
    57706: 30100,
    57707: 30106,
    57708: 30109,
    57709: 30117,
    57710: 30115,
    57711: 30146,
    57712: 30131,
    57713: 30147,
    57714: 30133,
    57715: 30141,
    57716: 30136,
    57717: 30140,
    57718: 30129,
    57719: 30157,
    57720: 30154,
    57721: 30162,
    57722: 30169,
    57723: 30179,
    57724: 30174,
    57725: 30206,
    57726: 30207,
    57728: 30204,
    57729: 30209,
    57730: 30192,
    57731: 30202,
    57732: 30194,
    57733: 30195,
    57734: 30219,
    57735: 30221,
    57736: 30217,
    57737: 30239,
    57738: 30247,
    57739: 30240,
    57740: 30241,
    57741: 30242,
    57742: 30244,
    57743: 30260,
    57744: 30256,
    57745: 30267,
    57746: 30279,
    57747: 30280,
    57748: 30278,
    57749: 30300,
    57750: 30296,
    57751: 30305,
    57752: 30306,
    57753: 30312,
    57754: 30313,
    57755: 30314,
    57756: 30311,
    57757: 30316,
    57758: 30320,
    57759: 30322,
    57760: 30326,
    57761: 30328,
    57762: 30332,
    57763: 30336,
    57764: 30339,
    57765: 30344,
    57766: 30347,
    57767: 30350,
    57768: 30358,
    57769: 30355,
    57770: 30361,
    57771: 30362,
    57772: 30384,
    57773: 30388,
    57774: 30392,
    57775: 30393,
    57776: 30394,
    57777: 30402,
    57778: 30413,
    57779: 30422,
    57780: 30418,
    57781: 30430,
    57782: 30433,
    57783: 30437,
    57784: 30439,
    57785: 30442,
    57786: 34351,
    57787: 30459,
    57788: 30472,
    57789: 30471,
    57790: 30468,
    57791: 30505,
    57792: 30500,
    57793: 30494,
    57794: 30501,
    57795: 30502,
    57796: 30491,
    57797: 30519,
    57798: 30520,
    57799: 30535,
    57800: 30554,
    57801: 30568,
    57802: 30571,
    57803: 30555,
    57804: 30565,
    57805: 30591,
    57806: 30590,
    57807: 30585,
    57808: 30606,
    57809: 30603,
    57810: 30609,
    57811: 30624,
    57812: 30622,
    57813: 30640,
    57814: 30646,
    57815: 30649,
    57816: 30655,
    57817: 30652,
    57818: 30653,
    57819: 30651,
    57820: 30663,
    57821: 30669,
    57822: 30679,
    57823: 30682,
    57824: 30684,
    57825: 30691,
    57826: 30702,
    57827: 30716,
    57828: 30732,
    57829: 30738,
    57830: 31014,
    57831: 30752,
    57832: 31018,
    57833: 30789,
    57834: 30862,
    57835: 30836,
    57836: 30854,
    57837: 30844,
    57838: 30874,
    57839: 30860,
    57840: 30883,
    57841: 30901,
    57842: 30890,
    57843: 30895,
    57844: 30929,
    57845: 30918,
    57846: 30923,
    57847: 30932,
    57848: 30910,
    57849: 30908,
    57850: 30917,
    57851: 30922,
    57852: 30956,
    57920: 30951,
    57921: 30938,
    57922: 30973,
    57923: 30964,
    57924: 30983,
    57925: 30994,
    57926: 30993,
    57927: 31001,
    57928: 31020,
    57929: 31019,
    57930: 31040,
    57931: 31072,
    57932: 31063,
    57933: 31071,
    57934: 31066,
    57935: 31061,
    57936: 31059,
    57937: 31098,
    57938: 31103,
    57939: 31114,
    57940: 31133,
    57941: 31143,
    57942: 40779,
    57943: 31146,
    57944: 31150,
    57945: 31155,
    57946: 31161,
    57947: 31162,
    57948: 31177,
    57949: 31189,
    57950: 31207,
    57951: 31212,
    57952: 31201,
    57953: 31203,
    57954: 31240,
    57955: 31245,
    57956: 31256,
    57957: 31257,
    57958: 31264,
    57959: 31263,
    57960: 31104,
    57961: 31281,
    57962: 31291,
    57963: 31294,
    57964: 31287,
    57965: 31299,
    57966: 31319,
    57967: 31305,
    57968: 31329,
    57969: 31330,
    57970: 31337,
    57971: 40861,
    57972: 31344,
    57973: 31353,
    57974: 31357,
    57975: 31368,
    57976: 31383,
    57977: 31381,
    57978: 31384,
    57979: 31382,
    57980: 31401,
    57981: 31432,
    57982: 31408,
    57984: 31414,
    57985: 31429,
    57986: 31428,
    57987: 31423,
    57988: 36995,
    57989: 31431,
    57990: 31434,
    57991: 31437,
    57992: 31439,
    57993: 31445,
    57994: 31443,
    57995: 31449,
    57996: 31450,
    57997: 31453,
    57998: 31457,
    57999: 31458,
    58000: 31462,
    58001: 31469,
    58002: 31472,
    58003: 31490,
    58004: 31503,
    58005: 31498,
    58006: 31494,
    58007: 31539,
    58008: 31512,
    58009: 31513,
    58010: 31518,
    58011: 31541,
    58012: 31528,
    58013: 31542,
    58014: 31568,
    58015: 31610,
    58016: 31492,
    58017: 31565,
    58018: 31499,
    58019: 31564,
    58020: 31557,
    58021: 31605,
    58022: 31589,
    58023: 31604,
    58024: 31591,
    58025: 31600,
    58026: 31601,
    58027: 31596,
    58028: 31598,
    58029: 31645,
    58030: 31640,
    58031: 31647,
    58032: 31629,
    58033: 31644,
    58034: 31642,
    58035: 31627,
    58036: 31634,
    58037: 31631,
    58038: 31581,
    58039: 31641,
    58040: 31691,
    58041: 31681,
    58042: 31692,
    58043: 31695,
    58044: 31668,
    58045: 31686,
    58046: 31709,
    58047: 31721,
    58048: 31761,
    58049: 31764,
    58050: 31718,
    58051: 31717,
    58052: 31840,
    58053: 31744,
    58054: 31751,
    58055: 31763,
    58056: 31731,
    58057: 31735,
    58058: 31767,
    58059: 31757,
    58060: 31734,
    58061: 31779,
    58062: 31783,
    58063: 31786,
    58064: 31775,
    58065: 31799,
    58066: 31787,
    58067: 31805,
    58068: 31820,
    58069: 31811,
    58070: 31828,
    58071: 31823,
    58072: 31808,
    58073: 31824,
    58074: 31832,
    58075: 31839,
    58076: 31844,
    58077: 31830,
    58078: 31845,
    58079: 31852,
    58080: 31861,
    58081: 31875,
    58082: 31888,
    58083: 31908,
    58084: 31917,
    58085: 31906,
    58086: 31915,
    58087: 31905,
    58088: 31912,
    58089: 31923,
    58090: 31922,
    58091: 31921,
    58092: 31918,
    58093: 31929,
    58094: 31933,
    58095: 31936,
    58096: 31941,
    58097: 31938,
    58098: 31960,
    58099: 31954,
    58100: 31964,
    58101: 31970,
    58102: 39739,
    58103: 31983,
    58104: 31986,
    58105: 31988,
    58106: 31990,
    58107: 31994,
    58108: 32006,
    58176: 32002,
    58177: 32028,
    58178: 32021,
    58179: 32010,
    58180: 32069,
    58181: 32075,
    58182: 32046,
    58183: 32050,
    58184: 32063,
    58185: 32053,
    58186: 32070,
    58187: 32115,
    58188: 32086,
    58189: 32078,
    58190: 32114,
    58191: 32104,
    58192: 32110,
    58193: 32079,
    58194: 32099,
    58195: 32147,
    58196: 32137,
    58197: 32091,
    58198: 32143,
    58199: 32125,
    58200: 32155,
    58201: 32186,
    58202: 32174,
    58203: 32163,
    58204: 32181,
    58205: 32199,
    58206: 32189,
    58207: 32171,
    58208: 32317,
    58209: 32162,
    58210: 32175,
    58211: 32220,
    58212: 32184,
    58213: 32159,
    58214: 32176,
    58215: 32216,
    58216: 32221,
    58217: 32228,
    58218: 32222,
    58219: 32251,
    58220: 32242,
    58221: 32225,
    58222: 32261,
    58223: 32266,
    58224: 32291,
    58225: 32289,
    58226: 32274,
    58227: 32305,
    58228: 32287,
    58229: 32265,
    58230: 32267,
    58231: 32290,
    58232: 32326,
    58233: 32358,
    58234: 32315,
    58235: 32309,
    58236: 32313,
    58237: 32323,
    58238: 32311,
    58240: 32306,
    58241: 32314,
    58242: 32359,
    58243: 32349,
    58244: 32342,
    58245: 32350,
    58246: 32345,
    58247: 32346,
    58248: 32377,
    58249: 32362,
    58250: 32361,
    58251: 32380,
    58252: 32379,
    58253: 32387,
    58254: 32213,
    58255: 32381,
    58256: 36782,
    58257: 32383,
    58258: 32392,
    58259: 32393,
    58260: 32396,
    58261: 32402,
    58262: 32400,
    58263: 32403,
    58264: 32404,
    58265: 32406,
    58266: 32398,
    58267: 32411,
    58268: 32412,
    58269: 32568,
    58270: 32570,
    58271: 32581,
    58272: 32588,
    58273: 32589,
    58274: 32590,
    58275: 32592,
    58276: 32593,
    58277: 32597,
    58278: 32596,
    58279: 32600,
    58280: 32607,
    58281: 32608,
    58282: 32616,
    58283: 32617,
    58284: 32615,
    58285: 32632,
    58286: 32642,
    58287: 32646,
    58288: 32643,
    58289: 32648,
    58290: 32647,
    58291: 32652,
    58292: 32660,
    58293: 32670,
    58294: 32669,
    58295: 32666,
    58296: 32675,
    58297: 32687,
    58298: 32690,
    58299: 32697,
    58300: 32686,
    58301: 32694,
    58302: 32696,
    58303: 35697,
    58304: 32709,
    58305: 32710,
    58306: 32714,
    58307: 32725,
    58308: 32724,
    58309: 32737,
    58310: 32742,
    58311: 32745,
    58312: 32755,
    58313: 32761,
    58314: 39132,
    58315: 32774,
    58316: 32772,
    58317: 32779,
    58318: 32786,
    58319: 32792,
    58320: 32793,
    58321: 32796,
    58322: 32801,
    58323: 32808,
    58324: 32831,
    58325: 32827,
    58326: 32842,
    58327: 32838,
    58328: 32850,
    58329: 32856,
    58330: 32858,
    58331: 32863,
    58332: 32866,
    58333: 32872,
    58334: 32883,
    58335: 32882,
    58336: 32880,
    58337: 32886,
    58338: 32889,
    58339: 32893,
    58340: 32895,
    58341: 32900,
    58342: 32902,
    58343: 32901,
    58344: 32923,
    58345: 32915,
    58346: 32922,
    58347: 32941,
    58348: 20880,
    58349: 32940,
    58350: 32987,
    58351: 32997,
    58352: 32985,
    58353: 32989,
    58354: 32964,
    58355: 32986,
    58356: 32982,
    58357: 33033,
    58358: 33007,
    58359: 33009,
    58360: 33051,
    58361: 33065,
    58362: 33059,
    58363: 33071,
    58364: 33099,
    58432: 38539,
    58433: 33094,
    58434: 33086,
    58435: 33107,
    58436: 33105,
    58437: 33020,
    58438: 33137,
    58439: 33134,
    58440: 33125,
    58441: 33126,
    58442: 33140,
    58443: 33155,
    58444: 33160,
    58445: 33162,
    58446: 33152,
    58447: 33154,
    58448: 33184,
    58449: 33173,
    58450: 33188,
    58451: 33187,
    58452: 33119,
    58453: 33171,
    58454: 33193,
    58455: 33200,
    58456: 33205,
    58457: 33214,
    58458: 33208,
    58459: 33213,
    58460: 33216,
    58461: 33218,
    58462: 33210,
    58463: 33225,
    58464: 33229,
    58465: 33233,
    58466: 33241,
    58467: 33240,
    58468: 33224,
    58469: 33242,
    58470: 33247,
    58471: 33248,
    58472: 33255,
    58473: 33274,
    58474: 33275,
    58475: 33278,
    58476: 33281,
    58477: 33282,
    58478: 33285,
    58479: 33287,
    58480: 33290,
    58481: 33293,
    58482: 33296,
    58483: 33302,
    58484: 33321,
    58485: 33323,
    58486: 33336,
    58487: 33331,
    58488: 33344,
    58489: 33369,
    58490: 33368,
    58491: 33373,
    58492: 33370,
    58493: 33375,
    58494: 33380,
    58496: 33378,
    58497: 33384,
    58498: 33386,
    58499: 33387,
    58500: 33326,
    58501: 33393,
    58502: 33399,
    58503: 33400,
    58504: 33406,
    58505: 33421,
    58506: 33426,
    58507: 33451,
    58508: 33439,
    58509: 33467,
    58510: 33452,
    58511: 33505,
    58512: 33507,
    58513: 33503,
    58514: 33490,
    58515: 33524,
    58516: 33523,
    58517: 33530,
    58518: 33683,
    58519: 33539,
    58520: 33531,
    58521: 33529,
    58522: 33502,
    58523: 33542,
    58524: 33500,
    58525: 33545,
    58526: 33497,
    58527: 33589,
    58528: 33588,
    58529: 33558,
    58530: 33586,
    58531: 33585,
    58532: 33600,
    58533: 33593,
    58534: 33616,
    58535: 33605,
    58536: 33583,
    58537: 33579,
    58538: 33559,
    58539: 33560,
    58540: 33669,
    58541: 33690,
    58542: 33706,
    58543: 33695,
    58544: 33698,
    58545: 33686,
    58546: 33571,
    58547: 33678,
    58548: 33671,
    58549: 33674,
    58550: 33660,
    58551: 33717,
    58552: 33651,
    58553: 33653,
    58554: 33696,
    58555: 33673,
    58556: 33704,
    58557: 33780,
    58558: 33811,
    58559: 33771,
    58560: 33742,
    58561: 33789,
    58562: 33795,
    58563: 33752,
    58564: 33803,
    58565: 33729,
    58566: 33783,
    58567: 33799,
    58568: 33760,
    58569: 33778,
    58570: 33805,
    58571: 33826,
    58572: 33824,
    58573: 33725,
    58574: 33848,
    58575: 34054,
    58576: 33787,
    58577: 33901,
    58578: 33834,
    58579: 33852,
    58580: 34138,
    58581: 33924,
    58582: 33911,
    58583: 33899,
    58584: 33965,
    58585: 33902,
    58586: 33922,
    58587: 33897,
    58588: 33862,
    58589: 33836,
    58590: 33903,
    58591: 33913,
    58592: 33845,
    58593: 33994,
    58594: 33890,
    58595: 33977,
    58596: 33983,
    58597: 33951,
    58598: 34009,
    58599: 33997,
    58600: 33979,
    58601: 34010,
    58602: 34000,
    58603: 33985,
    58604: 33990,
    58605: 34006,
    58606: 33953,
    58607: 34081,
    58608: 34047,
    58609: 34036,
    58610: 34071,
    58611: 34072,
    58612: 34092,
    58613: 34079,
    58614: 34069,
    58615: 34068,
    58616: 34044,
    58617: 34112,
    58618: 34147,
    58619: 34136,
    58620: 34120,
    58688: 34113,
    58689: 34306,
    58690: 34123,
    58691: 34133,
    58692: 34176,
    58693: 34212,
    58694: 34184,
    58695: 34193,
    58696: 34186,
    58697: 34216,
    58698: 34157,
    58699: 34196,
    58700: 34203,
    58701: 34282,
    58702: 34183,
    58703: 34204,
    58704: 34167,
    58705: 34174,
    58706: 34192,
    58707: 34249,
    58708: 34234,
    58709: 34255,
    58710: 34233,
    58711: 34256,
    58712: 34261,
    58713: 34269,
    58714: 34277,
    58715: 34268,
    58716: 34297,
    58717: 34314,
    58718: 34323,
    58719: 34315,
    58720: 34302,
    58721: 34298,
    58722: 34310,
    58723: 34338,
    58724: 34330,
    58725: 34352,
    58726: 34367,
    58727: 34381,
    58728: 20053,
    58729: 34388,
    58730: 34399,
    58731: 34407,
    58732: 34417,
    58733: 34451,
    58734: 34467,
    58735: 34473,
    58736: 34474,
    58737: 34443,
    58738: 34444,
    58739: 34486,
    58740: 34479,
    58741: 34500,
    58742: 34502,
    58743: 34480,
    58744: 34505,
    58745: 34851,
    58746: 34475,
    58747: 34516,
    58748: 34526,
    58749: 34537,
    58750: 34540,
    58752: 34527,
    58753: 34523,
    58754: 34543,
    58755: 34578,
    58756: 34566,
    58757: 34568,
    58758: 34560,
    58759: 34563,
    58760: 34555,
    58761: 34577,
    58762: 34569,
    58763: 34573,
    58764: 34553,
    58765: 34570,
    58766: 34612,
    58767: 34623,
    58768: 34615,
    58769: 34619,
    58770: 34597,
    58771: 34601,
    58772: 34586,
    58773: 34656,
    58774: 34655,
    58775: 34680,
    58776: 34636,
    58777: 34638,
    58778: 34676,
    58779: 34647,
    58780: 34664,
    58781: 34670,
    58782: 34649,
    58783: 34643,
    58784: 34659,
    58785: 34666,
    58786: 34821,
    58787: 34722,
    58788: 34719,
    58789: 34690,
    58790: 34735,
    58791: 34763,
    58792: 34749,
    58793: 34752,
    58794: 34768,
    58795: 38614,
    58796: 34731,
    58797: 34756,
    58798: 34739,
    58799: 34759,
    58800: 34758,
    58801: 34747,
    58802: 34799,
    58803: 34802,
    58804: 34784,
    58805: 34831,
    58806: 34829,
    58807: 34814,
    58808: 34806,
    58809: 34807,
    58810: 34830,
    58811: 34770,
    58812: 34833,
    58813: 34838,
    58814: 34837,
    58815: 34850,
    58816: 34849,
    58817: 34865,
    58818: 34870,
    58819: 34873,
    58820: 34855,
    58821: 34875,
    58822: 34884,
    58823: 34882,
    58824: 34898,
    58825: 34905,
    58826: 34910,
    58827: 34914,
    58828: 34923,
    58829: 34945,
    58830: 34942,
    58831: 34974,
    58832: 34933,
    58833: 34941,
    58834: 34997,
    58835: 34930,
    58836: 34946,
    58837: 34967,
    58838: 34962,
    58839: 34990,
    58840: 34969,
    58841: 34978,
    58842: 34957,
    58843: 34980,
    58844: 34992,
    58845: 35007,
    58846: 34993,
    58847: 35011,
    58848: 35012,
    58849: 35028,
    58850: 35032,
    58851: 35033,
    58852: 35037,
    58853: 35065,
    58854: 35074,
    58855: 35068,
    58856: 35060,
    58857: 35048,
    58858: 35058,
    58859: 35076,
    58860: 35084,
    58861: 35082,
    58862: 35091,
    58863: 35139,
    58864: 35102,
    58865: 35109,
    58866: 35114,
    58867: 35115,
    58868: 35137,
    58869: 35140,
    58870: 35131,
    58871: 35126,
    58872: 35128,
    58873: 35148,
    58874: 35101,
    58875: 35168,
    58876: 35166,
    58944: 35174,
    58945: 35172,
    58946: 35181,
    58947: 35178,
    58948: 35183,
    58949: 35188,
    58950: 35191,
    58951: 35198,
    58952: 35203,
    58953: 35208,
    58954: 35210,
    58955: 35219,
    58956: 35224,
    58957: 35233,
    58958: 35241,
    58959: 35238,
    58960: 35244,
    58961: 35247,
    58962: 35250,
    58963: 35258,
    58964: 35261,
    58965: 35263,
    58966: 35264,
    58967: 35290,
    58968: 35292,
    58969: 35293,
    58970: 35303,
    58971: 35316,
    58972: 35320,
    58973: 35331,
    58974: 35350,
    58975: 35344,
    58976: 35340,
    58977: 35355,
    58978: 35357,
    58979: 35365,
    58980: 35382,
    58981: 35393,
    58982: 35419,
    58983: 35410,
    58984: 35398,
    58985: 35400,
    58986: 35452,
    58987: 35437,
    58988: 35436,
    58989: 35426,
    58990: 35461,
    58991: 35458,
    58992: 35460,
    58993: 35496,
    58994: 35489,
    58995: 35473,
    58996: 35493,
    58997: 35494,
    58998: 35482,
    58999: 35491,
    59000: 35524,
    59001: 35533,
    59002: 35522,
    59003: 35546,
    59004: 35563,
    59005: 35571,
    59006: 35559,
    59008: 35556,
    59009: 35569,
    59010: 35604,
    59011: 35552,
    59012: 35554,
    59013: 35575,
    59014: 35550,
    59015: 35547,
    59016: 35596,
    59017: 35591,
    59018: 35610,
    59019: 35553,
    59020: 35606,
    59021: 35600,
    59022: 35607,
    59023: 35616,
    59024: 35635,
    59025: 38827,
    59026: 35622,
    59027: 35627,
    59028: 35646,
    59029: 35624,
    59030: 35649,
    59031: 35660,
    59032: 35663,
    59033: 35662,
    59034: 35657,
    59035: 35670,
    59036: 35675,
    59037: 35674,
    59038: 35691,
    59039: 35679,
    59040: 35692,
    59041: 35695,
    59042: 35700,
    59043: 35709,
    59044: 35712,
    59045: 35724,
    59046: 35726,
    59047: 35730,
    59048: 35731,
    59049: 35734,
    59050: 35737,
    59051: 35738,
    59052: 35898,
    59053: 35905,
    59054: 35903,
    59055: 35912,
    59056: 35916,
    59057: 35918,
    59058: 35920,
    59059: 35925,
    59060: 35938,
    59061: 35948,
    59062: 35960,
    59063: 35962,
    59064: 35970,
    59065: 35977,
    59066: 35973,
    59067: 35978,
    59068: 35981,
    59069: 35982,
    59070: 35988,
    59071: 35964,
    59072: 35992,
    59073: 25117,
    59074: 36013,
    59075: 36010,
    59076: 36029,
    59077: 36018,
    59078: 36019,
    59079: 36014,
    59080: 36022,
    59081: 36040,
    59082: 36033,
    59083: 36068,
    59084: 36067,
    59085: 36058,
    59086: 36093,
    59087: 36090,
    59088: 36091,
    59089: 36100,
    59090: 36101,
    59091: 36106,
    59092: 36103,
    59093: 36111,
    59094: 36109,
    59095: 36112,
    59096: 40782,
    59097: 36115,
    59098: 36045,
    59099: 36116,
    59100: 36118,
    59101: 36199,
    59102: 36205,
    59103: 36209,
    59104: 36211,
    59105: 36225,
    59106: 36249,
    59107: 36290,
    59108: 36286,
    59109: 36282,
    59110: 36303,
    59111: 36314,
    59112: 36310,
    59113: 36300,
    59114: 36315,
    59115: 36299,
    59116: 36330,
    59117: 36331,
    59118: 36319,
    59119: 36323,
    59120: 36348,
    59121: 36360,
    59122: 36361,
    59123: 36351,
    59124: 36381,
    59125: 36382,
    59126: 36368,
    59127: 36383,
    59128: 36418,
    59129: 36405,
    59130: 36400,
    59131: 36404,
    59132: 36426,
    59200: 36423,
    59201: 36425,
    59202: 36428,
    59203: 36432,
    59204: 36424,
    59205: 36441,
    59206: 36452,
    59207: 36448,
    59208: 36394,
    59209: 36451,
    59210: 36437,
    59211: 36470,
    59212: 36466,
    59213: 36476,
    59214: 36481,
    59215: 36487,
    59216: 36485,
    59217: 36484,
    59218: 36491,
    59219: 36490,
    59220: 36499,
    59221: 36497,
    59222: 36500,
    59223: 36505,
    59224: 36522,
    59225: 36513,
    59226: 36524,
    59227: 36528,
    59228: 36550,
    59229: 36529,
    59230: 36542,
    59231: 36549,
    59232: 36552,
    59233: 36555,
    59234: 36571,
    59235: 36579,
    59236: 36604,
    59237: 36603,
    59238: 36587,
    59239: 36606,
    59240: 36618,
    59241: 36613,
    59242: 36629,
    59243: 36626,
    59244: 36633,
    59245: 36627,
    59246: 36636,
    59247: 36639,
    59248: 36635,
    59249: 36620,
    59250: 36646,
    59251: 36659,
    59252: 36667,
    59253: 36665,
    59254: 36677,
    59255: 36674,
    59256: 36670,
    59257: 36684,
    59258: 36681,
    59259: 36678,
    59260: 36686,
    59261: 36695,
    59262: 36700,
    59264: 36706,
    59265: 36707,
    59266: 36708,
    59267: 36764,
    59268: 36767,
    59269: 36771,
    59270: 36781,
    59271: 36783,
    59272: 36791,
    59273: 36826,
    59274: 36837,
    59275: 36834,
    59276: 36842,
    59277: 36847,
    59278: 36999,
    59279: 36852,
    59280: 36869,
    59281: 36857,
    59282: 36858,
    59283: 36881,
    59284: 36885,
    59285: 36897,
    59286: 36877,
    59287: 36894,
    59288: 36886,
    59289: 36875,
    59290: 36903,
    59291: 36918,
    59292: 36917,
    59293: 36921,
    59294: 36856,
    59295: 36943,
    59296: 36944,
    59297: 36945,
    59298: 36946,
    59299: 36878,
    59300: 36937,
    59301: 36926,
    59302: 36950,
    59303: 36952,
    59304: 36958,
    59305: 36968,
    59306: 36975,
    59307: 36982,
    59308: 38568,
    59309: 36978,
    59310: 36994,
    59311: 36989,
    59312: 36993,
    59313: 36992,
    59314: 37002,
    59315: 37001,
    59316: 37007,
    59317: 37032,
    59318: 37039,
    59319: 37041,
    59320: 37045,
    59321: 37090,
    59322: 37092,
    59323: 25160,
    59324: 37083,
    59325: 37122,
    59326: 37138,
    59327: 37145,
    59328: 37170,
    59329: 37168,
    59330: 37194,
    59331: 37206,
    59332: 37208,
    59333: 37219,
    59334: 37221,
    59335: 37225,
    59336: 37235,
    59337: 37234,
    59338: 37259,
    59339: 37257,
    59340: 37250,
    59341: 37282,
    59342: 37291,
    59343: 37295,
    59344: 37290,
    59345: 37301,
    59346: 37300,
    59347: 37306,
    59348: 37312,
    59349: 37313,
    59350: 37321,
    59351: 37323,
    59352: 37328,
    59353: 37334,
    59354: 37343,
    59355: 37345,
    59356: 37339,
    59357: 37372,
    59358: 37365,
    59359: 37366,
    59360: 37406,
    59361: 37375,
    59362: 37396,
    59363: 37420,
    59364: 37397,
    59365: 37393,
    59366: 37470,
    59367: 37463,
    59368: 37445,
    59369: 37449,
    59370: 37476,
    59371: 37448,
    59372: 37525,
    59373: 37439,
    59374: 37451,
    59375: 37456,
    59376: 37532,
    59377: 37526,
    59378: 37523,
    59379: 37531,
    59380: 37466,
    59381: 37583,
    59382: 37561,
    59383: 37559,
    59384: 37609,
    59385: 37647,
    59386: 37626,
    59387: 37700,
    59388: 37678,
    59456: 37657,
    59457: 37666,
    59458: 37658,
    59459: 37667,
    59460: 37690,
    59461: 37685,
    59462: 37691,
    59463: 37724,
    59464: 37728,
    59465: 37756,
    59466: 37742,
    59467: 37718,
    59468: 37808,
    59469: 37804,
    59470: 37805,
    59471: 37780,
    59472: 37817,
    59473: 37846,
    59474: 37847,
    59475: 37864,
    59476: 37861,
    59477: 37848,
    59478: 37827,
    59479: 37853,
    59480: 37840,
    59481: 37832,
    59482: 37860,
    59483: 37914,
    59484: 37908,
    59485: 37907,
    59486: 37891,
    59487: 37895,
    59488: 37904,
    59489: 37942,
    59490: 37931,
    59491: 37941,
    59492: 37921,
    59493: 37946,
    59494: 37953,
    59495: 37970,
    59496: 37956,
    59497: 37979,
    59498: 37984,
    59499: 37986,
    59500: 37982,
    59501: 37994,
    59502: 37417,
    59503: 38000,
    59504: 38005,
    59505: 38007,
    59506: 38013,
    59507: 37978,
    59508: 38012,
    59509: 38014,
    59510: 38017,
    59511: 38015,
    59512: 38274,
    59513: 38279,
    59514: 38282,
    59515: 38292,
    59516: 38294,
    59517: 38296,
    59518: 38297,
    59520: 38304,
    59521: 38312,
    59522: 38311,
    59523: 38317,
    59524: 38332,
    59525: 38331,
    59526: 38329,
    59527: 38334,
    59528: 38346,
    59529: 28662,
    59530: 38339,
    59531: 38349,
    59532: 38348,
    59533: 38357,
    59534: 38356,
    59535: 38358,
    59536: 38364,
    59537: 38369,
    59538: 38373,
    59539: 38370,
    59540: 38433,
    59541: 38440,
    59542: 38446,
    59543: 38447,
    59544: 38466,
    59545: 38476,
    59546: 38479,
    59547: 38475,
    59548: 38519,
    59549: 38492,
    59550: 38494,
    59551: 38493,
    59552: 38495,
    59553: 38502,
    59554: 38514,
    59555: 38508,
    59556: 38541,
    59557: 38552,
    59558: 38549,
    59559: 38551,
    59560: 38570,
    59561: 38567,
    59562: 38577,
    59563: 38578,
    59564: 38576,
    59565: 38580,
    59566: 38582,
    59567: 38584,
    59568: 38585,
    59569: 38606,
    59570: 38603,
    59571: 38601,
    59572: 38605,
    59573: 35149,
    59574: 38620,
    59575: 38669,
    59576: 38613,
    59577: 38649,
    59578: 38660,
    59579: 38662,
    59580: 38664,
    59581: 38675,
    59582: 38670,
    59583: 38673,
    59584: 38671,
    59585: 38678,
    59586: 38681,
    59587: 38692,
    59588: 38698,
    59589: 38704,
    59590: 38713,
    59591: 38717,
    59592: 38718,
    59593: 38724,
    59594: 38726,
    59595: 38728,
    59596: 38722,
    59597: 38729,
    59598: 38748,
    59599: 38752,
    59600: 38756,
    59601: 38758,
    59602: 38760,
    59603: 21202,
    59604: 38763,
    59605: 38769,
    59606: 38777,
    59607: 38789,
    59608: 38780,
    59609: 38785,
    59610: 38778,
    59611: 38790,
    59612: 38795,
    59613: 38799,
    59614: 38800,
    59615: 38812,
    59616: 38824,
    59617: 38822,
    59618: 38819,
    59619: 38835,
    59620: 38836,
    59621: 38851,
    59622: 38854,
    59623: 38856,
    59624: 38859,
    59625: 38876,
    59626: 38893,
    59627: 40783,
    59628: 38898,
    59629: 31455,
    59630: 38902,
    59631: 38901,
    59632: 38927,
    59633: 38924,
    59634: 38968,
    59635: 38948,
    59636: 38945,
    59637: 38967,
    59638: 38973,
    59639: 38982,
    59640: 38991,
    59641: 38987,
    59642: 39019,
    59643: 39023,
    59644: 39024,
    59712: 39025,
    59713: 39028,
    59714: 39027,
    59715: 39082,
    59716: 39087,
    59717: 39089,
    59718: 39094,
    59719: 39108,
    59720: 39107,
    59721: 39110,
    59722: 39145,
    59723: 39147,
    59724: 39171,
    59725: 39177,
    59726: 39186,
    59727: 39188,
    59728: 39192,
    59729: 39201,
    59730: 39197,
    59731: 39198,
    59732: 39204,
    59733: 39200,
    59734: 39212,
    59735: 39214,
    59736: 39229,
    59737: 39230,
    59738: 39234,
    59739: 39241,
    59740: 39237,
    59741: 39248,
    59742: 39243,
    59743: 39249,
    59744: 39250,
    59745: 39244,
    59746: 39253,
    59747: 39319,
    59748: 39320,
    59749: 39333,
    59750: 39341,
    59751: 39342,
    59752: 39356,
    59753: 39391,
    59754: 39387,
    59755: 39389,
    59756: 39384,
    59757: 39377,
    59758: 39405,
    59759: 39406,
    59760: 39409,
    59761: 39410,
    59762: 39419,
    59763: 39416,
    59764: 39425,
    59765: 39439,
    59766: 39429,
    59767: 39394,
    59768: 39449,
    59769: 39467,
    59770: 39479,
    59771: 39493,
    59772: 39490,
    59773: 39488,
    59774: 39491,
    59776: 39486,
    59777: 39509,
    59778: 39501,
    59779: 39515,
    59780: 39511,
    59781: 39519,
    59782: 39522,
    59783: 39525,
    59784: 39524,
    59785: 39529,
    59786: 39531,
    59787: 39530,
    59788: 39597,
    59789: 39600,
    59790: 39612,
    59791: 39616,
    59792: 39631,
    59793: 39633,
    59794: 39635,
    59795: 39636,
    59796: 39646,
    59797: 39647,
    59798: 39650,
    59799: 39651,
    59800: 39654,
    59801: 39663,
    59802: 39659,
    59803: 39662,
    59804: 39668,
    59805: 39665,
    59806: 39671,
    59807: 39675,
    59808: 39686,
    59809: 39704,
    59810: 39706,
    59811: 39711,
    59812: 39714,
    59813: 39715,
    59814: 39717,
    59815: 39719,
    59816: 39720,
    59817: 39721,
    59818: 39722,
    59819: 39726,
    59820: 39727,
    59821: 39730,
    59822: 39748,
    59823: 39747,
    59824: 39759,
    59825: 39757,
    59826: 39758,
    59827: 39761,
    59828: 39768,
    59829: 39796,
    59830: 39827,
    59831: 39811,
    59832: 39825,
    59833: 39830,
    59834: 39831,
    59835: 39839,
    59836: 39840,
    59837: 39848,
    59838: 39860,
    59839: 39872,
    59840: 39882,
    59841: 39865,
    59842: 39878,
    59843: 39887,
    59844: 39889,
    59845: 39890,
    59846: 39907,
    59847: 39906,
    59848: 39908,
    59849: 39892,
    59850: 39905,
    59851: 39994,
    59852: 39922,
    59853: 39921,
    59854: 39920,
    59855: 39957,
    59856: 39956,
    59857: 39945,
    59858: 39955,
    59859: 39948,
    59860: 39942,
    59861: 39944,
    59862: 39954,
    59863: 39946,
    59864: 39940,
    59865: 39982,
    59866: 39963,
    59867: 39973,
    59868: 39972,
    59869: 39969,
    59870: 39984,
    59871: 40007,
    59872: 39986,
    59873: 40006,
    59874: 39998,
    59875: 40026,
    59876: 40032,
    59877: 40039,
    59878: 40054,
    59879: 40056,
    59880: 40167,
    59881: 40172,
    59882: 40176,
    59883: 40201,
    59884: 40200,
    59885: 40171,
    59886: 40195,
    59887: 40198,
    59888: 40234,
    59889: 40230,
    59890: 40367,
    59891: 40227,
    59892: 40223,
    59893: 40260,
    59894: 40213,
    59895: 40210,
    59896: 40257,
    59897: 40255,
    59898: 40254,
    59899: 40262,
    59900: 40264,
    59968: 40285,
    59969: 40286,
    59970: 40292,
    59971: 40273,
    59972: 40272,
    59973: 40281,
    59974: 40306,
    59975: 40329,
    59976: 40327,
    59977: 40363,
    59978: 40303,
    59979: 40314,
    59980: 40346,
    59981: 40356,
    59982: 40361,
    59983: 40370,
    59984: 40388,
    59985: 40385,
    59986: 40379,
    59987: 40376,
    59988: 40378,
    59989: 40390,
    59990: 40399,
    59991: 40386,
    59992: 40409,
    59993: 40403,
    59994: 40440,
    59995: 40422,
    59996: 40429,
    59997: 40431,
    59998: 40445,
    59999: 40474,
    60000: 40475,
    60001: 40478,
    60002: 40565,
    60003: 40569,
    60004: 40573,
    60005: 40577,
    60006: 40584,
    60007: 40587,
    60008: 40588,
    60009: 40594,
    60010: 40597,
    60011: 40593,
    60012: 40605,
    60013: 40613,
    60014: 40617,
    60015: 40632,
    60016: 40618,
    60017: 40621,
    60018: 38753,
    60019: 40652,
    60020: 40654,
    60021: 40655,
    60022: 40656,
    60023: 40660,
    60024: 40668,
    60025: 40670,
    60026: 40669,
    60027: 40672,
    60028: 40677,
    60029: 40680,
    60030: 40687,
    60032: 40692,
    60033: 40694,
    60034: 40695,
    60035: 40697,
    60036: 40699,
    60037: 40700,
    60038: 40701,
    60039: 40711,
    60040: 40712,
    60041: 30391,
    60042: 40725,
    60043: 40737,
    60044: 40748,
    60045: 40766,
    60046: 40778,
    60047: 40786,
    60048: 40788,
    60049: 40803,
    60050: 40799,
    60051: 40800,
    60052: 40801,
    60053: 40806,
    60054: 40807,
    60055: 40812,
    60056: 40810,
    60057: 40823,
    60058: 40818,
    60059: 40822,
    60060: 40853,
    60061: 40860,
    60062: 40864,
    60063: 22575,
    60064: 27079,
    60065: 36953,
    60066: 29796,
    60067: 20956,
    60068: 29081,
    60736: 32394,
    60737: 35100,
    60738: 37704,
    60739: 37512,
    60740: 34012,
    60741: 20425,
    60742: 28859,
    60743: 26161,
    60744: 26824,
    60745: 37625,
    60746: 26363,
    60747: 24389,
    60748: 20008,
    60749: 20193,
    60750: 20220,
    60751: 20224,
    60752: 20227,
    60753: 20281,
    60754: 20310,
    60755: 20370,
    60756: 20362,
    60757: 20378,
    60758: 20372,
    60759: 20429,
    60760: 20544,
    60761: 20514,
    60762: 20479,
    60763: 20510,
    60764: 20550,
    60765: 20592,
    60766: 20546,
    60767: 20628,
    60768: 20724,
    60769: 20696,
    60770: 20810,
    60771: 20836,
    60772: 20893,
    60773: 20926,
    60774: 20972,
    60775: 21013,
    60776: 21148,
    60777: 21158,
    60778: 21184,
    60779: 21211,
    60780: 21248,
    60781: 21255,
    60782: 21284,
    60783: 21362,
    60784: 21395,
    60785: 21426,
    60786: 21469,
    60787: 64014,
    60788: 21660,
    60789: 21642,
    60790: 21673,
    60791: 21759,
    60792: 21894,
    60793: 22361,
    60794: 22373,
    60795: 22444,
    60796: 22472,
    60797: 22471,
    60798: 64015,
    60800: 64016,
    60801: 22686,
    60802: 22706,
    60803: 22795,
    60804: 22867,
    60805: 22875,
    60806: 22877,
    60807: 22883,
    60808: 22948,
    60809: 22970,
    60810: 23382,
    60811: 23488,
    60812: 29999,
    60813: 23512,
    60814: 23532,
    60815: 23582,
    60816: 23718,
    60817: 23738,
    60818: 23797,
    60819: 23847,
    60820: 23891,
    60821: 64017,
    60822: 23874,
    60823: 23917,
    60824: 23992,
    60825: 23993,
    60826: 24016,
    60827: 24353,
    60828: 24372,
    60829: 24423,
    60830: 24503,
    60831: 24542,
    60832: 24669,
    60833: 24709,
    60834: 24714,
    60835: 24798,
    60836: 24789,
    60837: 24864,
    60838: 24818,
    60839: 24849,
    60840: 24887,
    60841: 24880,
    60842: 24984,
    60843: 25107,
    60844: 25254,
    60845: 25589,
    60846: 25696,
    60847: 25757,
    60848: 25806,
    60849: 25934,
    60850: 26112,
    60851: 26133,
    60852: 26171,
    60853: 26121,
    60854: 26158,
    60855: 26142,
    60856: 26148,
    60857: 26213,
    60858: 26199,
    60859: 26201,
    60860: 64018,
    60861: 26227,
    60862: 26265,
    60863: 26272,
    60864: 26290,
    60865: 26303,
    60866: 26362,
    60867: 26382,
    60868: 63785,
    60869: 26470,
    60870: 26555,
    60871: 26706,
    60872: 26560,
    60873: 26625,
    60874: 26692,
    60875: 26831,
    60876: 64019,
    60877: 26984,
    60878: 64020,
    60879: 27032,
    60880: 27106,
    60881: 27184,
    60882: 27243,
    60883: 27206,
    60884: 27251,
    60885: 27262,
    60886: 27362,
    60887: 27364,
    60888: 27606,
    60889: 27711,
    60890: 27740,
    60891: 27782,
    60892: 27759,
    60893: 27866,
    60894: 27908,
    60895: 28039,
    60896: 28015,
    60897: 28054,
    60898: 28076,
    60899: 28111,
    60900: 28152,
    60901: 28146,
    60902: 28156,
    60903: 28217,
    60904: 28252,
    60905: 28199,
    60906: 28220,
    60907: 28351,
    60908: 28552,
    60909: 28597,
    60910: 28661,
    60911: 28677,
    60912: 28679,
    60913: 28712,
    60914: 28805,
    60915: 28843,
    60916: 28943,
    60917: 28932,
    60918: 29020,
    60919: 28998,
    60920: 28999,
    60921: 64021,
    60922: 29121,
    60923: 29182,
    60924: 29361,
    60992: 29374,
    60993: 29476,
    60994: 64022,
    60995: 29559,
    60996: 29629,
    60997: 29641,
    60998: 29654,
    60999: 29667,
    61000: 29650,
    61001: 29703,
    61002: 29685,
    61003: 29734,
    61004: 29738,
    61005: 29737,
    61006: 29742,
    61007: 29794,
    61008: 29833,
    61009: 29855,
    61010: 29953,
    61011: 30063,
    61012: 30338,
    61013: 30364,
    61014: 30366,
    61015: 30363,
    61016: 30374,
    61017: 64023,
    61018: 30534,
    61019: 21167,
    61020: 30753,
    61021: 30798,
    61022: 30820,
    61023: 30842,
    61024: 31024,
    61025: 64024,
    61026: 64025,
    61027: 64026,
    61028: 31124,
    61029: 64027,
    61030: 31131,
    61031: 31441,
    61032: 31463,
    61033: 64028,
    61034: 31467,
    61035: 31646,
    61036: 64029,
    61037: 32072,
    61038: 32092,
    61039: 32183,
    61040: 32160,
    61041: 32214,
    61042: 32338,
    61043: 32583,
    61044: 32673,
    61045: 64030,
    61046: 33537,
    61047: 33634,
    61048: 33663,
    61049: 33735,
    61050: 33782,
    61051: 33864,
    61052: 33972,
    61053: 34131,
    61054: 34137,
    61056: 34155,
    61057: 64031,
    61058: 34224,
    61059: 64032,
    61060: 64033,
    61061: 34823,
    61062: 35061,
    61063: 35346,
    61064: 35383,
    61065: 35449,
    61066: 35495,
    61067: 35518,
    61068: 35551,
    61069: 64034,
    61070: 35574,
    61071: 35667,
    61072: 35711,
    61073: 36080,
    61074: 36084,
    61075: 36114,
    61076: 36214,
    61077: 64035,
    61078: 36559,
    61079: 64036,
    61080: 64037,
    61081: 36967,
    61082: 37086,
    61083: 64038,
    61084: 37141,
    61085: 37159,
    61086: 37338,
    61087: 37335,
    61088: 37342,
    61089: 37357,
    61090: 37358,
    61091: 37348,
    61092: 37349,
    61093: 37382,
    61094: 37392,
    61095: 37386,
    61096: 37434,
    61097: 37440,
    61098: 37436,
    61099: 37454,
    61100: 37465,
    61101: 37457,
    61102: 37433,
    61103: 37479,
    61104: 37543,
    61105: 37495,
    61106: 37496,
    61107: 37607,
    61108: 37591,
    61109: 37593,
    61110: 37584,
    61111: 64039,
    61112: 37589,
    61113: 37600,
    61114: 37587,
    61115: 37669,
    61116: 37665,
    61117: 37627,
    61118: 64040,
    61119: 37662,
    61120: 37631,
    61121: 37661,
    61122: 37634,
    61123: 37744,
    61124: 37719,
    61125: 37796,
    61126: 37830,
    61127: 37854,
    61128: 37880,
    61129: 37937,
    61130: 37957,
    61131: 37960,
    61132: 38290,
    61133: 63964,
    61134: 64041,
    61135: 38557,
    61136: 38575,
    61137: 38707,
    61138: 38715,
    61139: 38723,
    61140: 38733,
    61141: 38735,
    61142: 38737,
    61143: 38741,
    61144: 38999,
    61145: 39013,
    61146: 64042,
    61147: 64043,
    61148: 39207,
    61149: 64044,
    61150: 39326,
    61151: 39502,
    61152: 39641,
    61153: 39644,
    61154: 39797,
    61155: 39794,
    61156: 39823,
    61157: 39857,
    61158: 39867,
    61159: 39936,
    61160: 40304,
    61161: 40299,
    61162: 64045,
    61163: 40473,
    61164: 40657,
    61167: 8560,
    61168: 8561,
    61169: 8562,
    61170: 8563,
    61171: 8564,
    61172: 8565,
    61173: 8566,
    61174: 8567,
    61175: 8568,
    61176: 8569,
    61177: 65506,
    61178: 65508,
    61179: 65287,
    61180: 65282,
    61504: 57344,
    61505: 57345,
    61506: 57346,
    61507: 57347,
    61508: 57348,
    61509: 57349,
    61510: 57350,
    61511: 57351,
    61512: 57352,
    61513: 57353,
    61514: 57354,
    61515: 57355,
    61516: 57356,
    61517: 57357,
    61518: 57358,
    61519: 57359,
    61520: 57360,
    61521: 57361,
    61522: 57362,
    61523: 57363,
    61524: 57364,
    61525: 57365,
    61526: 57366,
    61527: 57367,
    61528: 57368,
    61529: 57369,
    61530: 57370,
    61531: 57371,
    61532: 57372,
    61533: 57373,
    61534: 57374,
    61535: 57375,
    61536: 57376,
    61537: 57377,
    61538: 57378,
    61539: 57379,
    61540: 57380,
    61541: 57381,
    61542: 57382,
    61543: 57383,
    61544: 57384,
    61545: 57385,
    61546: 57386,
    61547: 57387,
    61548: 57388,
    61549: 57389,
    61550: 57390,
    61551: 57391,
    61552: 57392,
    61553: 57393,
    61554: 57394,
    61555: 57395,
    61556: 57396,
    61557: 57397,
    61558: 57398,
    61559: 57399,
    61560: 57400,
    61561: 57401,
    61562: 57402,
    61563: 57403,
    61564: 57404,
    61565: 57405,
    61566: 57406,
    61568: 57407,
    61569: 57408,
    61570: 57409,
    61571: 57410,
    61572: 57411,
    61573: 57412,
    61574: 57413,
    61575: 57414,
    61576: 57415,
    61577: 57416,
    61578: 57417,
    61579: 57418,
    61580: 57419,
    61581: 57420,
    61582: 57421,
    61583: 57422,
    61584: 57423,
    61585: 57424,
    61586: 57425,
    61587: 57426,
    61588: 57427,
    61589: 57428,
    61590: 57429,
    61591: 57430,
    61592: 57431,
    61593: 57432,
    61594: 57433,
    61595: 57434,
    61596: 57435,
    61597: 57436,
    61598: 57437,
    61599: 57438,
    61600: 57439,
    61601: 57440,
    61602: 57441,
    61603: 57442,
    61604: 57443,
    61605: 57444,
    61606: 57445,
    61607: 57446,
    61608: 57447,
    61609: 57448,
    61610: 57449,
    61611: 57450,
    61612: 57451,
    61613: 57452,
    61614: 57453,
    61615: 57454,
    61616: 57455,
    61617: 57456,
    61618: 57457,
    61619: 57458,
    61620: 57459,
    61621: 57460,
    61622: 57461,
    61623: 57462,
    61624: 57463,
    61625: 57464,
    61626: 57465,
    61627: 57466,
    61628: 57467,
    61629: 57468,
    61630: 57469,
    61631: 57470,
    61632: 57471,
    61633: 57472,
    61634: 57473,
    61635: 57474,
    61636: 57475,
    61637: 57476,
    61638: 57477,
    61639: 57478,
    61640: 57479,
    61641: 57480,
    61642: 57481,
    61643: 57482,
    61644: 57483,
    61645: 57484,
    61646: 57485,
    61647: 57486,
    61648: 57487,
    61649: 57488,
    61650: 57489,
    61651: 57490,
    61652: 57491,
    61653: 57492,
    61654: 57493,
    61655: 57494,
    61656: 57495,
    61657: 57496,
    61658: 57497,
    61659: 57498,
    61660: 57499,
    61661: 57500,
    61662: 57501,
    61663: 57502,
    61664: 57503,
    61665: 57504,
    61666: 57505,
    61667: 57506,
    61668: 57507,
    61669: 57508,
    61670: 57509,
    61671: 57510,
    61672: 57511,
    61673: 57512,
    61674: 57513,
    61675: 57514,
    61676: 57515,
    61677: 57516,
    61678: 57517,
    61679: 57518,
    61680: 57519,
    61681: 57520,
    61682: 57521,
    61683: 57522,
    61684: 57523,
    61685: 57524,
    61686: 57525,
    61687: 57526,
    61688: 57527,
    61689: 57528,
    61690: 57529,
    61691: 57530,
    61692: 57531,
    61760: 57532,
    61761: 57533,
    61762: 57534,
    61763: 57535,
    61764: 57536,
    61765: 57537,
    61766: 57538,
    61767: 57539,
    61768: 57540,
    61769: 57541,
    61770: 57542,
    61771: 57543,
    61772: 57544,
    61773: 57545,
    61774: 57546,
    61775: 57547,
    61776: 57548,
    61777: 57549,
    61778: 57550,
    61779: 57551,
    61780: 57552,
    61781: 57553,
    61782: 57554,
    61783: 57555,
    61784: 57556,
    61785: 57557,
    61786: 57558,
    61787: 57559,
    61788: 57560,
    61789: 57561,
    61790: 57562,
    61791: 57563,
    61792: 57564,
    61793: 57565,
    61794: 57566,
    61795: 57567,
    61796: 57568,
    61797: 57569,
    61798: 57570,
    61799: 57571,
    61800: 57572,
    61801: 57573,
    61802: 57574,
    61803: 57575,
    61804: 57576,
    61805: 57577,
    61806: 57578,
    61807: 57579,
    61808: 57580,
    61809: 57581,
    61810: 57582,
    61811: 57583,
    61812: 57584,
    61813: 57585,
    61814: 57586,
    61815: 57587,
    61816: 57588,
    61817: 57589,
    61818: 57590,
    61819: 57591,
    61820: 57592,
    61821: 57593,
    61822: 57594,
    61824: 57595,
    61825: 57596,
    61826: 57597,
    61827: 57598,
    61828: 57599,
    61829: 57600,
    61830: 57601,
    61831: 57602,
    61832: 57603,
    61833: 57604,
    61834: 57605,
    61835: 57606,
    61836: 57607,
    61837: 57608,
    61838: 57609,
    61839: 57610,
    61840: 57611,
    61841: 57612,
    61842: 57613,
    61843: 57614,
    61844: 57615,
    61845: 57616,
    61846: 57617,
    61847: 57618,
    61848: 57619,
    61849: 57620,
    61850: 57621,
    61851: 57622,
    61852: 57623,
    61853: 57624,
    61854: 57625,
    61855: 57626,
    61856: 57627,
    61857: 57628,
    61858: 57629,
    61859: 57630,
    61860: 57631,
    61861: 57632,
    61862: 57633,
    61863: 57634,
    61864: 57635,
    61865: 57636,
    61866: 57637,
    61867: 57638,
    61868: 57639,
    61869: 57640,
    61870: 57641,
    61871: 57642,
    61872: 57643,
    61873: 57644,
    61874: 57645,
    61875: 57646,
    61876: 57647,
    61877: 57648,
    61878: 57649,
    61879: 57650,
    61880: 57651,
    61881: 57652,
    61882: 57653,
    61883: 57654,
    61884: 57655,
    61885: 57656,
    61886: 57657,
    61887: 57658,
    61888: 57659,
    61889: 57660,
    61890: 57661,
    61891: 57662,
    61892: 57663,
    61893: 57664,
    61894: 57665,
    61895: 57666,
    61896: 57667,
    61897: 57668,
    61898: 57669,
    61899: 57670,
    61900: 57671,
    61901: 57672,
    61902: 57673,
    61903: 57674,
    61904: 57675,
    61905: 57676,
    61906: 57677,
    61907: 57678,
    61908: 57679,
    61909: 57680,
    61910: 57681,
    61911: 57682,
    61912: 57683,
    61913: 57684,
    61914: 57685,
    61915: 57686,
    61916: 57687,
    61917: 57688,
    61918: 57689,
    61919: 57690,
    61920: 57691,
    61921: 57692,
    61922: 57693,
    61923: 57694,
    61924: 57695,
    61925: 57696,
    61926: 57697,
    61927: 57698,
    61928: 57699,
    61929: 57700,
    61930: 57701,
    61931: 57702,
    61932: 57703,
    61933: 57704,
    61934: 57705,
    61935: 57706,
    61936: 57707,
    61937: 57708,
    61938: 57709,
    61939: 57710,
    61940: 57711,
    61941: 57712,
    61942: 57713,
    61943: 57714,
    61944: 57715,
    61945: 57716,
    61946: 57717,
    61947: 57718,
    61948: 57719,
    62016: 57720,
    62017: 57721,
    62018: 57722,
    62019: 57723,
    62020: 57724,
    62021: 57725,
    62022: 57726,
    62023: 57727,
    62024: 57728,
    62025: 57729,
    62026: 57730,
    62027: 57731,
    62028: 57732,
    62029: 57733,
    62030: 57734,
    62031: 57735,
    62032: 57736,
    62033: 57737,
    62034: 57738,
    62035: 57739,
    62036: 57740,
    62037: 57741,
    62038: 57742,
    62039: 57743,
    62040: 57744,
    62041: 57745,
    62042: 57746,
    62043: 57747,
    62044: 57748,
    62045: 57749,
    62046: 57750,
    62047: 57751,
    62048: 57752,
    62049: 57753,
    62050: 57754,
    62051: 57755,
    62052: 57756,
    62053: 57757,
    62054: 57758,
    62055: 57759,
    62056: 57760,
    62057: 57761,
    62058: 57762,
    62059: 57763,
    62060: 57764,
    62061: 57765,
    62062: 57766,
    62063: 57767,
    62064: 57768,
    62065: 57769,
    62066: 57770,
    62067: 57771,
    62068: 57772,
    62069: 57773,
    62070: 57774,
    62071: 57775,
    62072: 57776,
    62073: 57777,
    62074: 57778,
    62075: 57779,
    62076: 57780,
    62077: 57781,
    62078: 57782,
    62080: 57783,
    62081: 57784,
    62082: 57785,
    62083: 57786,
    62084: 57787,
    62085: 57788,
    62086: 57789,
    62087: 57790,
    62088: 57791,
    62089: 57792,
    62090: 57793,
    62091: 57794,
    62092: 57795,
    62093: 57796,
    62094: 57797,
    62095: 57798,
    62096: 57799,
    62097: 57800,
    62098: 57801,
    62099: 57802,
    62100: 57803,
    62101: 57804,
    62102: 57805,
    62103: 57806,
    62104: 57807,
    62105: 57808,
    62106: 57809,
    62107: 57810,
    62108: 57811,
    62109: 57812,
    62110: 57813,
    62111: 57814,
    62112: 57815,
    62113: 57816,
    62114: 57817,
    62115: 57818,
    62116: 57819,
    62117: 57820,
    62118: 57821,
    62119: 57822,
    62120: 57823,
    62121: 57824,
    62122: 57825,
    62123: 57826,
    62124: 57827,
    62125: 57828,
    62126: 57829,
    62127: 57830,
    62128: 57831,
    62129: 57832,
    62130: 57833,
    62131: 57834,
    62132: 57835,
    62133: 57836,
    62134: 57837,
    62135: 57838,
    62136: 57839,
    62137: 57840,
    62138: 57841,
    62139: 57842,
    62140: 57843,
    62141: 57844,
    62142: 57845,
    62143: 57846,
    62144: 57847,
    62145: 57848,
    62146: 57849,
    62147: 57850,
    62148: 57851,
    62149: 57852,
    62150: 57853,
    62151: 57854,
    62152: 57855,
    62153: 57856,
    62154: 57857,
    62155: 57858,
    62156: 57859,
    62157: 57860,
    62158: 57861,
    62159: 57862,
    62160: 57863,
    62161: 57864,
    62162: 57865,
    62163: 57866,
    62164: 57867,
    62165: 57868,
    62166: 57869,
    62167: 57870,
    62168: 57871,
    62169: 57872,
    62170: 57873,
    62171: 57874,
    62172: 57875,
    62173: 57876,
    62174: 57877,
    62175: 57878,
    62176: 57879,
    62177: 57880,
    62178: 57881,
    62179: 57882,
    62180: 57883,
    62181: 57884,
    62182: 57885,
    62183: 57886,
    62184: 57887,
    62185: 57888,
    62186: 57889,
    62187: 57890,
    62188: 57891,
    62189: 57892,
    62190: 57893,
    62191: 57894,
    62192: 57895,
    62193: 57896,
    62194: 57897,
    62195: 57898,
    62196: 57899,
    62197: 57900,
    62198: 57901,
    62199: 57902,
    62200: 57903,
    62201: 57904,
    62202: 57905,
    62203: 57906,
    62204: 57907,
    62272: 57908,
    62273: 57909,
    62274: 57910,
    62275: 57911,
    62276: 57912,
    62277: 57913,
    62278: 57914,
    62279: 57915,
    62280: 57916,
    62281: 57917,
    62282: 57918,
    62283: 57919,
    62284: 57920,
    62285: 57921,
    62286: 57922,
    62287: 57923,
    62288: 57924,
    62289: 57925,
    62290: 57926,
    62291: 57927,
    62292: 57928,
    62293: 57929,
    62294: 57930,
    62295: 57931,
    62296: 57932,
    62297: 57933,
    62298: 57934,
    62299: 57935,
    62300: 57936,
    62301: 57937,
    62302: 57938,
    62303: 57939,
    62304: 57940,
    62305: 57941,
    62306: 57942,
    62307: 57943,
    62308: 57944,
    62309: 57945,
    62310: 57946,
    62311: 57947,
    62312: 57948,
    62313: 57949,
    62314: 57950,
    62315: 57951,
    62316: 57952,
    62317: 57953,
    62318: 57954,
    62319: 57955,
    62320: 57956,
    62321: 57957,
    62322: 57958,
    62323: 57959,
    62324: 57960,
    62325: 57961,
    62326: 57962,
    62327: 57963,
    62328: 57964,
    62329: 57965,
    62330: 57966,
    62331: 57967,
    62332: 57968,
    62333: 57969,
    62334: 57970,
    62336: 57971,
    62337: 57972,
    62338: 57973,
    62339: 57974,
    62340: 57975,
    62341: 57976,
    62342: 57977,
    62343: 57978,
    62344: 57979,
    62345: 57980,
    62346: 57981,
    62347: 57982,
    62348: 57983,
    62349: 57984,
    62350: 57985,
    62351: 57986,
    62352: 57987,
    62353: 57988,
    62354: 57989,
    62355: 57990,
    62356: 57991,
    62357: 57992,
    62358: 57993,
    62359: 57994,
    62360: 57995,
    62361: 57996,
    62362: 57997,
    62363: 57998,
    62364: 57999,
    62365: 58000,
    62366: 58001,
    62367: 58002,
    62368: 58003,
    62369: 58004,
    62370: 58005,
    62371: 58006,
    62372: 58007,
    62373: 58008,
    62374: 58009,
    62375: 58010,
    62376: 58011,
    62377: 58012,
    62378: 58013,
    62379: 58014,
    62380: 58015,
    62381: 58016,
    62382: 58017,
    62383: 58018,
    62384: 58019,
    62385: 58020,
    62386: 58021,
    62387: 58022,
    62388: 58023,
    62389: 58024,
    62390: 58025,
    62391: 58026,
    62392: 58027,
    62393: 58028,
    62394: 58029,
    62395: 58030,
    62396: 58031,
    62397: 58032,
    62398: 58033,
    62399: 58034,
    62400: 58035,
    62401: 58036,
    62402: 58037,
    62403: 58038,
    62404: 58039,
    62405: 58040,
    62406: 58041,
    62407: 58042,
    62408: 58043,
    62409: 58044,
    62410: 58045,
    62411: 58046,
    62412: 58047,
    62413: 58048,
    62414: 58049,
    62415: 58050,
    62416: 58051,
    62417: 58052,
    62418: 58053,
    62419: 58054,
    62420: 58055,
    62421: 58056,
    62422: 58057,
    62423: 58058,
    62424: 58059,
    62425: 58060,
    62426: 58061,
    62427: 58062,
    62428: 58063,
    62429: 58064,
    62430: 58065,
    62431: 58066,
    62432: 58067,
    62433: 58068,
    62434: 58069,
    62435: 58070,
    62436: 58071,
    62437: 58072,
    62438: 58073,
    62439: 58074,
    62440: 58075,
    62441: 58076,
    62442: 58077,
    62443: 58078,
    62444: 58079,
    62445: 58080,
    62446: 58081,
    62447: 58082,
    62448: 58083,
    62449: 58084,
    62450: 58085,
    62451: 58086,
    62452: 58087,
    62453: 58088,
    62454: 58089,
    62455: 58090,
    62456: 58091,
    62457: 58092,
    62458: 58093,
    62459: 58094,
    62460: 58095,
    62528: 58096,
    62529: 58097,
    62530: 58098,
    62531: 58099,
    62532: 58100,
    62533: 58101,
    62534: 58102,
    62535: 58103,
    62536: 58104,
    62537: 58105,
    62538: 58106,
    62539: 58107,
    62540: 58108,
    62541: 58109,
    62542: 58110,
    62543: 58111,
    62544: 58112,
    62545: 58113,
    62546: 58114,
    62547: 58115,
    62548: 58116,
    62549: 58117,
    62550: 58118,
    62551: 58119,
    62552: 58120,
    62553: 58121,
    62554: 58122,
    62555: 58123,
    62556: 58124,
    62557: 58125,
    62558: 58126,
    62559: 58127,
    62560: 58128,
    62561: 58129,
    62562: 58130,
    62563: 58131,
    62564: 58132,
    62565: 58133,
    62566: 58134,
    62567: 58135,
    62568: 58136,
    62569: 58137,
    62570: 58138,
    62571: 58139,
    62572: 58140,
    62573: 58141,
    62574: 58142,
    62575: 58143,
    62576: 58144,
    62577: 58145,
    62578: 58146,
    62579: 58147,
    62580: 58148,
    62581: 58149,
    62582: 58150,
    62583: 58151,
    62584: 58152,
    62585: 58153,
    62586: 58154,
    62587: 58155,
    62588: 58156,
    62589: 58157,
    62590: 58158,
    62592: 58159,
    62593: 58160,
    62594: 58161,
    62595: 58162,
    62596: 58163,
    62597: 58164,
    62598: 58165,
    62599: 58166,
    62600: 58167,
    62601: 58168,
    62602: 58169,
    62603: 58170,
    62604: 58171,
    62605: 58172,
    62606: 58173,
    62607: 58174,
    62608: 58175,
    62609: 58176,
    62610: 58177,
    62611: 58178,
    62612: 58179,
    62613: 58180,
    62614: 58181,
    62615: 58182,
    62616: 58183,
    62617: 58184,
    62618: 58185,
    62619: 58186,
    62620: 58187,
    62621: 58188,
    62622: 58189,
    62623: 58190,
    62624: 58191,
    62625: 58192,
    62626: 58193,
    62627: 58194,
    62628: 58195,
    62629: 58196,
    62630: 58197,
    62631: 58198,
    62632: 58199,
    62633: 58200,
    62634: 58201,
    62635: 58202,
    62636: 58203,
    62637: 58204,
    62638: 58205,
    62639: 58206,
    62640: 58207,
    62641: 58208,
    62642: 58209,
    62643: 58210,
    62644: 58211,
    62645: 58212,
    62646: 58213,
    62647: 58214,
    62648: 58215,
    62649: 58216,
    62650: 58217,
    62651: 58218,
    62652: 58219,
    62653: 58220,
    62654: 58221,
    62655: 58222,
    62656: 58223,
    62657: 58224,
    62658: 58225,
    62659: 58226,
    62660: 58227,
    62661: 58228,
    62662: 58229,
    62663: 58230,
    62664: 58231,
    62665: 58232,
    62666: 58233,
    62667: 58234,
    62668: 58235,
    62669: 58236,
    62670: 58237,
    62671: 58238,
    62672: 58239,
    62673: 58240,
    62674: 58241,
    62675: 58242,
    62676: 58243,
    62677: 58244,
    62678: 58245,
    62679: 58246,
    62680: 58247,
    62681: 58248,
    62682: 58249,
    62683: 58250,
    62684: 58251,
    62685: 58252,
    62686: 58253,
    62687: 58254,
    62688: 58255,
    62689: 58256,
    62690: 58257,
    62691: 58258,
    62692: 58259,
    62693: 58260,
    62694: 58261,
    62695: 58262,
    62696: 58263,
    62697: 58264,
    62698: 58265,
    62699: 58266,
    62700: 58267,
    62701: 58268,
    62702: 58269,
    62703: 58270,
    62704: 58271,
    62705: 58272,
    62706: 58273,
    62707: 58274,
    62708: 58275,
    62709: 58276,
    62710: 58277,
    62711: 58278,
    62712: 58279,
    62713: 58280,
    62714: 58281,
    62715: 58282,
    62716: 58283,
    62784: 58284,
    62785: 58285,
    62786: 58286,
    62787: 58287,
    62788: 58288,
    62789: 58289,
    62790: 58290,
    62791: 58291,
    62792: 58292,
    62793: 58293,
    62794: 58294,
    62795: 58295,
    62796: 58296,
    62797: 58297,
    62798: 58298,
    62799: 58299,
    62800: 58300,
    62801: 58301,
    62802: 58302,
    62803: 58303,
    62804: 58304,
    62805: 58305,
    62806: 58306,
    62807: 58307,
    62808: 58308,
    62809: 58309,
    62810: 58310,
    62811: 58311,
    62812: 58312,
    62813: 58313,
    62814: 58314,
    62815: 58315,
    62816: 58316,
    62817: 58317,
    62818: 58318,
    62819: 58319,
    62820: 58320,
    62821: 58321,
    62822: 58322,
    62823: 58323,
    62824: 58324,
    62825: 58325,
    62826: 58326,
    62827: 58327,
    62828: 58328,
    62829: 58329,
    62830: 58330,
    62831: 58331,
    62832: 58332,
    62833: 58333,
    62834: 58334,
    62835: 58335,
    62836: 58336,
    62837: 58337,
    62838: 58338,
    62839: 58339,
    62840: 58340,
    62841: 58341,
    62842: 58342,
    62843: 58343,
    62844: 58344,
    62845: 58345,
    62846: 58346,
    62848: 58347,
    62849: 58348,
    62850: 58349,
    62851: 58350,
    62852: 58351,
    62853: 58352,
    62854: 58353,
    62855: 58354,
    62856: 58355,
    62857: 58356,
    62858: 58357,
    62859: 58358,
    62860: 58359,
    62861: 58360,
    62862: 58361,
    62863: 58362,
    62864: 58363,
    62865: 58364,
    62866: 58365,
    62867: 58366,
    62868: 58367,
    62869: 58368,
    62870: 58369,
    62871: 58370,
    62872: 58371,
    62873: 58372,
    62874: 58373,
    62875: 58374,
    62876: 58375,
    62877: 58376,
    62878: 58377,
    62879: 58378,
    62880: 58379,
    62881: 58380,
    62882: 58381,
    62883: 58382,
    62884: 58383,
    62885: 58384,
    62886: 58385,
    62887: 58386,
    62888: 58387,
    62889: 58388,
    62890: 58389,
    62891: 58390,
    62892: 58391,
    62893: 58392,
    62894: 58393,
    62895: 58394,
    62896: 58395,
    62897: 58396,
    62898: 58397,
    62899: 58398,
    62900: 58399,
    62901: 58400,
    62902: 58401,
    62903: 58402,
    62904: 58403,
    62905: 58404,
    62906: 58405,
    62907: 58406,
    62908: 58407,
    62909: 58408,
    62910: 58409,
    62911: 58410,
    62912: 58411,
    62913: 58412,
    62914: 58413,
    62915: 58414,
    62916: 58415,
    62917: 58416,
    62918: 58417,
    62919: 58418,
    62920: 58419,
    62921: 58420,
    62922: 58421,
    62923: 58422,
    62924: 58423,
    62925: 58424,
    62926: 58425,
    62927: 58426,
    62928: 58427,
    62929: 58428,
    62930: 58429,
    62931: 58430,
    62932: 58431,
    62933: 58432,
    62934: 58433,
    62935: 58434,
    62936: 58435,
    62937: 58436,
    62938: 58437,
    62939: 58438,
    62940: 58439,
    62941: 58440,
    62942: 58441,
    62943: 58442,
    62944: 58443,
    62945: 58444,
    62946: 58445,
    62947: 58446,
    62948: 58447,
    62949: 58448,
    62950: 58449,
    62951: 58450,
    62952: 58451,
    62953: 58452,
    62954: 58453,
    62955: 58454,
    62956: 58455,
    62957: 58456,
    62958: 58457,
    62959: 58458,
    62960: 58459,
    62961: 58460,
    62962: 58461,
    62963: 58462,
    62964: 58463,
    62965: 58464,
    62966: 58465,
    62967: 58466,
    62968: 58467,
    62969: 58468,
    62970: 58469,
    62971: 58470,
    62972: 58471,
    63040: 58472,
    63041: 58473,
    63042: 58474,
    63043: 58475,
    63044: 58476,
    63045: 58477,
    63046: 58478,
    63047: 58479,
    63048: 58480,
    63049: 58481,
    63050: 58482,
    63051: 58483,
    63052: 58484,
    63053: 58485,
    63054: 58486,
    63055: 58487,
    63056: 58488,
    63057: 58489,
    63058: 58490,
    63059: 58491,
    63060: 58492,
    63061: 58493,
    63062: 58494,
    63063: 58495,
    63064: 58496,
    63065: 58497,
    63066: 58498,
    63067: 58499,
    63068: 58500,
    63069: 58501,
    63070: 58502,
    63071: 58503,
    63072: 58504,
    63073: 58505,
    63074: 58506,
    63075: 58507,
    63076: 58508,
    63077: 58509,
    63078: 58510,
    63079: 58511,
    63080: 58512,
    63081: 58513,
    63082: 58514,
    63083: 58515,
    63084: 58516,
    63085: 58517,
    63086: 58518,
    63087: 58519,
    63088: 58520,
    63089: 58521,
    63090: 58522,
    63091: 58523,
    63092: 58524,
    63093: 58525,
    63094: 58526,
    63095: 58527,
    63096: 58528,
    63097: 58529,
    63098: 58530,
    63099: 58531,
    63100: 58532,
    63101: 58533,
    63102: 58534,
    63104: 58535,
    63105: 58536,
    63106: 58537,
    63107: 58538,
    63108: 58539,
    63109: 58540,
    63110: 58541,
    63111: 58542,
    63112: 58543,
    63113: 58544,
    63114: 58545,
    63115: 58546,
    63116: 58547,
    63117: 58548,
    63118: 58549,
    63119: 58550,
    63120: 58551,
    63121: 58552,
    63122: 58553,
    63123: 58554,
    63124: 58555,
    63125: 58556,
    63126: 58557,
    63127: 58558,
    63128: 58559,
    63129: 58560,
    63130: 58561,
    63131: 58562,
    63132: 58563,
    63133: 58564,
    63134: 58565,
    63135: 58566,
    63136: 58567,
    63137: 58568,
    63138: 58569,
    63139: 58570,
    63140: 58571,
    63141: 58572,
    63142: 58573,
    63143: 58574,
    63144: 58575,
    63145: 58576,
    63146: 58577,
    63147: 58578,
    63148: 58579,
    63149: 58580,
    63150: 58581,
    63151: 58582,
    63152: 58583,
    63153: 58584,
    63154: 58585,
    63155: 58586,
    63156: 58587,
    63157: 58588,
    63158: 58589,
    63159: 58590,
    63160: 58591,
    63161: 58592,
    63162: 58593,
    63163: 58594,
    63164: 58595,
    63165: 58596,
    63166: 58597,
    63167: 58598,
    63168: 58599,
    63169: 58600,
    63170: 58601,
    63171: 58602,
    63172: 58603,
    63173: 58604,
    63174: 58605,
    63175: 58606,
    63176: 58607,
    63177: 58608,
    63178: 58609,
    63179: 58610,
    63180: 58611,
    63181: 58612,
    63182: 58613,
    63183: 58614,
    63184: 58615,
    63185: 58616,
    63186: 58617,
    63187: 58618,
    63188: 58619,
    63189: 58620,
    63190: 58621,
    63191: 58622,
    63192: 58623,
    63193: 58624,
    63194: 58625,
    63195: 58626,
    63196: 58627,
    63197: 58628,
    63198: 58629,
    63199: 58630,
    63200: 58631,
    63201: 58632,
    63202: 58633,
    63203: 58634,
    63204: 58635,
    63205: 58636,
    63206: 58637,
    63207: 58638,
    63208: 58639,
    63209: 58640,
    63210: 58641,
    63211: 58642,
    63212: 58643,
    63213: 58644,
    63214: 58645,
    63215: 58646,
    63216: 58647,
    63217: 58648,
    63218: 58649,
    63219: 58650,
    63220: 58651,
    63221: 58652,
    63222: 58653,
    63223: 58654,
    63224: 58655,
    63225: 58656,
    63226: 58657,
    63227: 58658,
    63228: 58659,
    63296: 58660,
    63297: 58661,
    63298: 58662,
    63299: 58663,
    63300: 58664,
    63301: 58665,
    63302: 58666,
    63303: 58667,
    63304: 58668,
    63305: 58669,
    63306: 58670,
    63307: 58671,
    63308: 58672,
    63309: 58673,
    63310: 58674,
    63311: 58675,
    63312: 58676,
    63313: 58677,
    63314: 58678,
    63315: 58679,
    63316: 58680,
    63317: 58681,
    63318: 58682,
    63319: 58683,
    63320: 58684,
    63321: 58685,
    63322: 58686,
    63323: 58687,
    63324: 58688,
    63325: 58689,
    63326: 58690,
    63327: 58691,
    63328: 58692,
    63329: 58693,
    63330: 58694,
    63331: 58695,
    63332: 58696,
    63333: 58697,
    63334: 58698,
    63335: 58699,
    63336: 58700,
    63337: 58701,
    63338: 58702,
    63339: 58703,
    63340: 58704,
    63341: 58705,
    63342: 58706,
    63343: 58707,
    63344: 58708,
    63345: 58709,
    63346: 58710,
    63347: 58711,
    63348: 58712,
    63349: 58713,
    63350: 58714,
    63351: 58715,
    63352: 58716,
    63353: 58717,
    63354: 58718,
    63355: 58719,
    63356: 58720,
    63357: 58721,
    63358: 58722,
    63360: 58723,
    63361: 58724,
    63362: 58725,
    63363: 58726,
    63364: 58727,
    63365: 58728,
    63366: 58729,
    63367: 58730,
    63368: 58731,
    63369: 58732,
    63370: 58733,
    63371: 58734,
    63372: 58735,
    63373: 58736,
    63374: 58737,
    63375: 58738,
    63376: 58739,
    63377: 58740,
    63378: 58741,
    63379: 58742,
    63380: 58743,
    63381: 58744,
    63382: 58745,
    63383: 58746,
    63384: 58747,
    63385: 58748,
    63386: 58749,
    63387: 58750,
    63388: 58751,
    63389: 58752,
    63390: 58753,
    63391: 58754,
    63392: 58755,
    63393: 58756,
    63394: 58757,
    63395: 58758,
    63396: 58759,
    63397: 58760,
    63398: 58761,
    63399: 58762,
    63400: 58763,
    63401: 58764,
    63402: 58765,
    63403: 58766,
    63404: 58767,
    63405: 58768,
    63406: 58769,
    63407: 58770,
    63408: 58771,
    63409: 58772,
    63410: 58773,
    63411: 58774,
    63412: 58775,
    63413: 58776,
    63414: 58777,
    63415: 58778,
    63416: 58779,
    63417: 58780,
    63418: 58781,
    63419: 58782,
    63420: 58783,
    63421: 58784,
    63422: 58785,
    63423: 58786,
    63424: 58787,
    63425: 58788,
    63426: 58789,
    63427: 58790,
    63428: 58791,
    63429: 58792,
    63430: 58793,
    63431: 58794,
    63432: 58795,
    63433: 58796,
    63434: 58797,
    63435: 58798,
    63436: 58799,
    63437: 58800,
    63438: 58801,
    63439: 58802,
    63440: 58803,
    63441: 58804,
    63442: 58805,
    63443: 58806,
    63444: 58807,
    63445: 58808,
    63446: 58809,
    63447: 58810,
    63448: 58811,
    63449: 58812,
    63450: 58813,
    63451: 58814,
    63452: 58815,
    63453: 58816,
    63454: 58817,
    63455: 58818,
    63456: 58819,
    63457: 58820,
    63458: 58821,
    63459: 58822,
    63460: 58823,
    63461: 58824,
    63462: 58825,
    63463: 58826,
    63464: 58827,
    63465: 58828,
    63466: 58829,
    63467: 58830,
    63468: 58831,
    63469: 58832,
    63470: 58833,
    63471: 58834,
    63472: 58835,
    63473: 58836,
    63474: 58837,
    63475: 58838,
    63476: 58839,
    63477: 58840,
    63478: 58841,
    63479: 58842,
    63480: 58843,
    63481: 58844,
    63482: 58845,
    63483: 58846,
    63484: 58847,
    63552: 58848,
    63553: 58849,
    63554: 58850,
    63555: 58851,
    63556: 58852,
    63557: 58853,
    63558: 58854,
    63559: 58855,
    63560: 58856,
    63561: 58857,
    63562: 58858,
    63563: 58859,
    63564: 58860,
    63565: 58861,
    63566: 58862,
    63567: 58863,
    63568: 58864,
    63569: 58865,
    63570: 58866,
    63571: 58867,
    63572: 58868,
    63573: 58869,
    63574: 58870,
    63575: 58871,
    63576: 58872,
    63577: 58873,
    63578: 58874,
    63579: 58875,
    63580: 58876,
    63581: 58877,
    63582: 58878,
    63583: 58879,
    63584: 58880,
    63585: 58881,
    63586: 58882,
    63587: 58883,
    63588: 58884,
    63589: 58885,
    63590: 58886,
    63591: 58887,
    63592: 58888,
    63593: 58889,
    63594: 58890,
    63595: 58891,
    63596: 58892,
    63597: 58893,
    63598: 58894,
    63599: 58895,
    63600: 58896,
    63601: 58897,
    63602: 58898,
    63603: 58899,
    63604: 58900,
    63605: 58901,
    63606: 58902,
    63607: 58903,
    63608: 58904,
    63609: 58905,
    63610: 58906,
    63611: 58907,
    63612: 58908,
    63613: 58909,
    63614: 58910,
    63616: 58911,
    63617: 58912,
    63618: 58913,
    63619: 58914,
    63620: 58915,
    63621: 58916,
    63622: 58917,
    63623: 58918,
    63624: 58919,
    63625: 58920,
    63626: 58921,
    63627: 58922,
    63628: 58923,
    63629: 58924,
    63630: 58925,
    63631: 58926,
    63632: 58927,
    63633: 58928,
    63634: 58929,
    63635: 58930,
    63636: 58931,
    63637: 58932,
    63638: 58933,
    63639: 58934,
    63640: 58935,
    63641: 58936,
    63642: 58937,
    63643: 58938,
    63644: 58939,
    63645: 58940,
    63646: 58941,
    63647: 58942,
    63648: 58943,
    63649: 58944,
    63650: 58945,
    63651: 58946,
    63652: 58947,
    63653: 58948,
    63654: 58949,
    63655: 58950,
    63656: 58951,
    63657: 58952,
    63658: 58953,
    63659: 58954,
    63660: 58955,
    63661: 58956,
    63662: 58957,
    63663: 58958,
    63664: 58959,
    63665: 58960,
    63666: 58961,
    63667: 58962,
    63668: 58963,
    63669: 58964,
    63670: 58965,
    63671: 58966,
    63672: 58967,
    63673: 58968,
    63674: 58969,
    63675: 58970,
    63676: 58971,
    63677: 58972,
    63678: 58973,
    63679: 58974,
    63680: 58975,
    63681: 58976,
    63682: 58977,
    63683: 58978,
    63684: 58979,
    63685: 58980,
    63686: 58981,
    63687: 58982,
    63688: 58983,
    63689: 58984,
    63690: 58985,
    63691: 58986,
    63692: 58987,
    63693: 58988,
    63694: 58989,
    63695: 58990,
    63696: 58991,
    63697: 58992,
    63698: 58993,
    63699: 58994,
    63700: 58995,
    63701: 58996,
    63702: 58997,
    63703: 58998,
    63704: 58999,
    63705: 59000,
    63706: 59001,
    63707: 59002,
    63708: 59003,
    63709: 59004,
    63710: 59005,
    63711: 59006,
    63712: 59007,
    63713: 59008,
    63714: 59009,
    63715: 59010,
    63716: 59011,
    63717: 59012,
    63718: 59013,
    63719: 59014,
    63720: 59015,
    63721: 59016,
    63722: 59017,
    63723: 59018,
    63724: 59019,
    63725: 59020,
    63726: 59021,
    63727: 59022,
    63728: 59023,
    63729: 59024,
    63730: 59025,
    63731: 59026,
    63732: 59027,
    63733: 59028,
    63734: 59029,
    63735: 59030,
    63736: 59031,
    63737: 59032,
    63738: 59033,
    63739: 59034,
    63740: 59035,
    64064: 8560,
    64065: 8561,
    64066: 8562,
    64067: 8563,
    64068: 8564,
    64069: 8565,
    64070: 8566,
    64071: 8567,
    64072: 8568,
    64073: 8569,
    64074: 8544,
    64075: 8545,
    64076: 8546,
    64077: 8547,
    64078: 8548,
    64079: 8549,
    64080: 8550,
    64081: 8551,
    64082: 8552,
    64083: 8553,
    64084: 65506,
    64085: 65508,
    64086: 65287,
    64087: 65282,
    64088: 12849,
    64089: 8470,
    64090: 8481,
    64091: 8757,
    64092: 32394,
    64093: 35100,
    64094: 37704,
    64095: 37512,
    64096: 34012,
    64097: 20425,
    64098: 28859,
    64099: 26161,
    64100: 26824,
    64101: 37625,
    64102: 26363,
    64103: 24389,
    64104: 20008,
    64105: 20193,
    64106: 20220,
    64107: 20224,
    64108: 20227,
    64109: 20281,
    64110: 20310,
    64111: 20370,
    64112: 20362,
    64113: 20378,
    64114: 20372,
    64115: 20429,
    64116: 20544,
    64117: 20514,
    64118: 20479,
    64119: 20510,
    64120: 20550,
    64121: 20592,
    64122: 20546,
    64123: 20628,
    64124: 20724,
    64125: 20696,
    64126: 20810,
    64128: 20836,
    64129: 20893,
    64130: 20926,
    64131: 20972,
    64132: 21013,
    64133: 21148,
    64134: 21158,
    64135: 21184,
    64136: 21211,
    64137: 21248,
    64138: 21255,
    64139: 21284,
    64140: 21362,
    64141: 21395,
    64142: 21426,
    64143: 21469,
    64144: 64014,
    64145: 21660,
    64146: 21642,
    64147: 21673,
    64148: 21759,
    64149: 21894,
    64150: 22361,
    64151: 22373,
    64152: 22444,
    64153: 22472,
    64154: 22471,
    64155: 64015,
    64156: 64016,
    64157: 22686,
    64158: 22706,
    64159: 22795,
    64160: 22867,
    64161: 22875,
    64162: 22877,
    64163: 22883,
    64164: 22948,
    64165: 22970,
    64166: 23382,
    64167: 23488,
    64168: 29999,
    64169: 23512,
    64170: 23532,
    64171: 23582,
    64172: 23718,
    64173: 23738,
    64174: 23797,
    64175: 23847,
    64176: 23891,
    64177: 64017,
    64178: 23874,
    64179: 23917,
    64180: 23992,
    64181: 23993,
    64182: 24016,
    64183: 24353,
    64184: 24372,
    64185: 24423,
    64186: 24503,
    64187: 24542,
    64188: 24669,
    64189: 24709,
    64190: 24714,
    64191: 24798,
    64192: 24789,
    64193: 24864,
    64194: 24818,
    64195: 24849,
    64196: 24887,
    64197: 24880,
    64198: 24984,
    64199: 25107,
    64200: 25254,
    64201: 25589,
    64202: 25696,
    64203: 25757,
    64204: 25806,
    64205: 25934,
    64206: 26112,
    64207: 26133,
    64208: 26171,
    64209: 26121,
    64210: 26158,
    64211: 26142,
    64212: 26148,
    64213: 26213,
    64214: 26199,
    64215: 26201,
    64216: 64018,
    64217: 26227,
    64218: 26265,
    64219: 26272,
    64220: 26290,
    64221: 26303,
    64222: 26362,
    64223: 26382,
    64224: 63785,
    64225: 26470,
    64226: 26555,
    64227: 26706,
    64228: 26560,
    64229: 26625,
    64230: 26692,
    64231: 26831,
    64232: 64019,
    64233: 26984,
    64234: 64020,
    64235: 27032,
    64236: 27106,
    64237: 27184,
    64238: 27243,
    64239: 27206,
    64240: 27251,
    64241: 27262,
    64242: 27362,
    64243: 27364,
    64244: 27606,
    64245: 27711,
    64246: 27740,
    64247: 27782,
    64248: 27759,
    64249: 27866,
    64250: 27908,
    64251: 28039,
    64252: 28015,
    64320: 28054,
    64321: 28076,
    64322: 28111,
    64323: 28152,
    64324: 28146,
    64325: 28156,
    64326: 28217,
    64327: 28252,
    64328: 28199,
    64329: 28220,
    64330: 28351,
    64331: 28552,
    64332: 28597,
    64333: 28661,
    64334: 28677,
    64335: 28679,
    64336: 28712,
    64337: 28805,
    64338: 28843,
    64339: 28943,
    64340: 28932,
    64341: 29020,
    64342: 28998,
    64343: 28999,
    64344: 64021,
    64345: 29121,
    64346: 29182,
    64347: 29361,
    64348: 29374,
    64349: 29476,
    64350: 64022,
    64351: 29559,
    64352: 29629,
    64353: 29641,
    64354: 29654,
    64355: 29667,
    64356: 29650,
    64357: 29703,
    64358: 29685,
    64359: 29734,
    64360: 29738,
    64361: 29737,
    64362: 29742,
    64363: 29794,
    64364: 29833,
    64365: 29855,
    64366: 29953,
    64367: 30063,
    64368: 30338,
    64369: 30364,
    64370: 30366,
    64371: 30363,
    64372: 30374,
    64373: 64023,
    64374: 30534,
    64375: 21167,
    64376: 30753,
    64377: 30798,
    64378: 30820,
    64379: 30842,
    64380: 31024,
    64381: 64024,
    64382: 64025,
    64384: 64026,
    64385: 31124,
    64386: 64027,
    64387: 31131,
    64388: 31441,
    64389: 31463,
    64390: 64028,
    64391: 31467,
    64392: 31646,
    64393: 64029,
    64394: 32072,
    64395: 32092,
    64396: 32183,
    64397: 32160,
    64398: 32214,
    64399: 32338,
    64400: 32583,
    64401: 32673,
    64402: 64030,
    64403: 33537,
    64404: 33634,
    64405: 33663,
    64406: 33735,
    64407: 33782,
    64408: 33864,
    64409: 33972,
    64410: 34131,
    64411: 34137,
    64412: 34155,
    64413: 64031,
    64414: 34224,
    64415: 64032,
    64416: 64033,
    64417: 34823,
    64418: 35061,
    64419: 35346,
    64420: 35383,
    64421: 35449,
    64422: 35495,
    64423: 35518,
    64424: 35551,
    64425: 64034,
    64426: 35574,
    64427: 35667,
    64428: 35711,
    64429: 36080,
    64430: 36084,
    64431: 36114,
    64432: 36214,
    64433: 64035,
    64434: 36559,
    64435: 64036,
    64436: 64037,
    64437: 36967,
    64438: 37086,
    64439: 64038,
    64440: 37141,
    64441: 37159,
    64442: 37338,
    64443: 37335,
    64444: 37342,
    64445: 37357,
    64446: 37358,
    64447: 37348,
    64448: 37349,
    64449: 37382,
    64450: 37392,
    64451: 37386,
    64452: 37434,
    64453: 37440,
    64454: 37436,
    64455: 37454,
    64456: 37465,
    64457: 37457,
    64458: 37433,
    64459: 37479,
    64460: 37543,
    64461: 37495,
    64462: 37496,
    64463: 37607,
    64464: 37591,
    64465: 37593,
    64466: 37584,
    64467: 64039,
    64468: 37589,
    64469: 37600,
    64470: 37587,
    64471: 37669,
    64472: 37665,
    64473: 37627,
    64474: 64040,
    64475: 37662,
    64476: 37631,
    64477: 37661,
    64478: 37634,
    64479: 37744,
    64480: 37719,
    64481: 37796,
    64482: 37830,
    64483: 37854,
    64484: 37880,
    64485: 37937,
    64486: 37957,
    64487: 37960,
    64488: 38290,
    64489: 63964,
    64490: 64041,
    64491: 38557,
    64492: 38575,
    64493: 38707,
    64494: 38715,
    64495: 38723,
    64496: 38733,
    64497: 38735,
    64498: 38737,
    64499: 38741,
    64500: 38999,
    64501: 39013,
    64502: 64042,
    64503: 64043,
    64504: 39207,
    64505: 64044,
    64506: 39326,
    64507: 39502,
    64508: 39641,
    64576: 39644,
    64577: 39797,
    64578: 39794,
    64579: 39823,
    64580: 39857,
    64581: 39867,
    64582: 39936,
    64583: 40304,
    64584: 40299,
    64585: 64045,
    64586: 40473,
    64587: 40657
  };
  /**
   * @author takahiro / https://github.com/takahirox
   */

  function DataViewEx(buffer, littleEndian) {
    this.dv = new DataView(buffer);
    this.offset = 0;
    this.littleEndian = littleEndian !== undefined ? littleEndian : true;
    this.encoder = new CharsetEncoder();
  }

  DataViewEx.prototype = {
    constructor: DataViewEx,
    getInt8: function getInt8() {
      var value = this.dv.getInt8(this.offset);
      this.offset += 1;
      return value;
    },
    getInt8Array: function getInt8Array(size) {
      var a = [];

      for (var i = 0; i < size; i++) {
        a.push(this.getInt8());
      }

      return a;
    },
    getUint8: function getUint8() {
      var value = this.dv.getUint8(this.offset);
      this.offset += 1;
      return value;
    },
    getUint8Array: function getUint8Array(size) {
      var a = [];

      for (var i = 0; i < size; i++) {
        a.push(this.getUint8());
      }

      return a;
    },
    getInt16: function getInt16() {
      var value = this.dv.getInt16(this.offset, this.littleEndian);
      this.offset += 2;
      return value;
    },
    getInt16Array: function getInt16Array(size) {
      var a = [];

      for (var i = 0; i < size; i++) {
        a.push(this.getInt16());
      }

      return a;
    },
    getUint16: function getUint16() {
      var value = this.dv.getUint16(this.offset, this.littleEndian);
      this.offset += 2;
      return value;
    },
    getUint16Array: function getUint16Array(size) {
      var a = [];

      for (var i = 0; i < size; i++) {
        a.push(this.getUint16());
      }

      return a;
    },
    getInt32: function getInt32() {
      var value = this.dv.getInt32(this.offset, this.littleEndian);
      this.offset += 4;
      return value;
    },
    getInt32Array: function getInt32Array(size) {
      var a = [];

      for (var i = 0; i < size; i++) {
        a.push(this.getInt32());
      }

      return a;
    },
    getUint32: function getUint32() {
      var value = this.dv.getUint32(this.offset, this.littleEndian);
      this.offset += 4;
      return value;
    },
    getUint32Array: function getUint32Array(size) {
      var a = [];

      for (var i = 0; i < size; i++) {
        a.push(this.getUint32());
      }

      return a;
    },
    getFloat32: function getFloat32() {
      var value = this.dv.getFloat32(this.offset, this.littleEndian);
      this.offset += 4;
      return value;
    },
    getFloat32Array: function getFloat32Array(size) {
      var a = [];

      for (var i = 0; i < size; i++) {
        a.push(this.getFloat32());
      }

      return a;
    },
    getFloat64: function getFloat64() {
      var value = this.dv.getFloat64(this.offset, this.littleEndian);
      this.offset += 8;
      return value;
    },
    getFloat64Array: function getFloat64Array(size) {
      var a = [];

      for (var i = 0; i < size; i++) {
        a.push(this.getFloat64());
      }

      return a;
    },
    getIndex: function getIndex(type, isUnsigned) {
      switch (type) {
        case 1:
          return isUnsigned === true ? this.getUint8() : this.getInt8();

        case 2:
          return isUnsigned === true ? this.getUint16() : this.getInt16();

        case 4:
          return this.getInt32();
        // No Uint32

        default:
          throw 'unknown number type ' + type + ' exception.';
      }
    },
    getIndexArray: function getIndexArray(type, size, isUnsigned) {
      var a = [];

      for (var i = 0; i < size; i++) {
        a.push(this.getIndex(type, isUnsigned));
      }

      return a;
    },
    getChars: function getChars(size) {
      var str = '';

      while (size > 0) {
        var value = this.getUint8();
        size--;

        if (value === 0) {
          break;
        }

        str += String.fromCharCode(value);
      }

      while (size > 0) {
        this.getUint8();
        size--;
      }

      return str;
    },
    getSjisStringsAsUnicode: function getSjisStringsAsUnicode(size) {
      var a = [];

      while (size > 0) {
        var value = this.getUint8();
        size--;

        if (value === 0) {
          break;
        }

        a.push(value);
      }

      while (size > 0) {
        this.getUint8();
        size--;
      }

      return this.encoder.s2u(new Uint8Array(a));
    },
    getUnicodeStrings: function getUnicodeStrings(size) {
      var str = '';

      while (size > 0) {
        var value = this.getUint16();
        size -= 2;

        if (value === 0) {
          break;
        }

        str += String.fromCharCode(value);
      }

      while (size > 0) {
        this.getUint8();
        size--;
      }

      return str;
    },
    getTextBuffer: function getTextBuffer() {
      var size = this.getUint32();
      return this.getUnicodeStrings(size);
    }
  };
  /**
   * @author takahiro / https://github.com/takahirox
   */

  function DataCreationHelper() {}

  DataCreationHelper.prototype = {
    constructor: DataCreationHelper,
    leftToRightVector3: function leftToRightVector3(v) {
      v[2] = -v[2];
    },
    leftToRightQuaternion: function leftToRightQuaternion(q) {
      q[0] = -q[0];
      q[1] = -q[1];
    },
    leftToRightEuler: function leftToRightEuler(r) {
      r[0] = -r[0];
      r[1] = -r[1];
    },
    leftToRightIndexOrder: function leftToRightIndexOrder(p) {
      var tmp = p[2];
      p[2] = p[0];
      p[0] = tmp;
    },
    leftToRightVector3Range: function leftToRightVector3Range(v1, v2) {
      var tmp = -v2[2];
      v2[2] = -v1[2];
      v1[2] = tmp;
    },
    leftToRightEulerRange: function leftToRightEulerRange(r1, r2) {
      var tmp1 = -r2[0];
      var tmp2 = -r2[1];
      r2[0] = -r1[0];
      r2[1] = -r1[1];
      r1[0] = tmp1;
      r1[1] = tmp2;
    }
  };
  /**
   * @author takahiro / https://github.com/takahirox
   */

  function Parser() {}

  Parser.prototype.parsePmd = function (buffer, leftToRight) {
    var pmd = {};
    var dv = new DataViewEx(buffer);
    pmd.metadata = {};
    pmd.metadata.format = 'pmd';
    pmd.metadata.coordinateSystem = 'left';

    var parseHeader = function parseHeader() {
      var metadata = pmd.metadata;
      metadata.magic = dv.getChars(3);

      if (metadata.magic !== 'Pmd') {
        throw 'PMD file magic is not Pmd, but ' + metadata.magic;
      }

      metadata.version = dv.getFloat32();
      metadata.modelName = dv.getSjisStringsAsUnicode(20);
      metadata.comment = dv.getSjisStringsAsUnicode(256);
    };

    var parseVertices = function parseVertices() {
      var parseVertex = function parseVertex() {
        var p = {};
        p.position = dv.getFloat32Array(3);
        p.normal = dv.getFloat32Array(3);
        p.uv = dv.getFloat32Array(2);
        p.skinIndices = dv.getUint16Array(2);
        p.skinWeights = [dv.getUint8() / 100];
        p.skinWeights.push(1.0 - p.skinWeights[0]);
        p.edgeFlag = dv.getUint8();
        return p;
      };

      var metadata = pmd.metadata;
      metadata.vertexCount = dv.getUint32();
      pmd.vertices = [];

      for (var i = 0; i < metadata.vertexCount; i++) {
        pmd.vertices.push(parseVertex());
      }
    };

    var parseFaces = function parseFaces() {
      var parseFace = function parseFace() {
        var p = {};
        p.indices = dv.getUint16Array(3);
        return p;
      };

      var metadata = pmd.metadata;
      metadata.faceCount = dv.getUint32() / 3;
      pmd.faces = [];

      for (var i = 0; i < metadata.faceCount; i++) {
        pmd.faces.push(parseFace());
      }
    };

    var parseMaterials = function parseMaterials() {
      var parseMaterial = function parseMaterial() {
        var p = {};
        p.diffuse = dv.getFloat32Array(4);
        p.shininess = dv.getFloat32();
        p.specular = dv.getFloat32Array(3);
        p.ambient = dv.getFloat32Array(3);
        p.toonIndex = dv.getInt8();
        p.edgeFlag = dv.getUint8();
        p.faceCount = dv.getUint32() / 3;
        p.fileName = dv.getSjisStringsAsUnicode(20);
        return p;
      };

      var metadata = pmd.metadata;
      metadata.materialCount = dv.getUint32();
      pmd.materials = [];

      for (var i = 0; i < metadata.materialCount; i++) {
        pmd.materials.push(parseMaterial());
      }
    };

    var parseBones = function parseBones() {
      var parseBone = function parseBone() {
        var p = {};
        p.name = dv.getSjisStringsAsUnicode(20);
        p.parentIndex = dv.getInt16();
        p.tailIndex = dv.getInt16();
        p.type = dv.getUint8();
        p.ikIndex = dv.getInt16();
        p.position = dv.getFloat32Array(3);
        return p;
      };

      var metadata = pmd.metadata;
      metadata.boneCount = dv.getUint16();
      pmd.bones = [];

      for (var i = 0; i < metadata.boneCount; i++) {
        pmd.bones.push(parseBone());
      }
    };

    var parseIks = function parseIks() {
      var parseIk = function parseIk() {
        var p = {};
        p.target = dv.getUint16();
        p.effector = dv.getUint16();
        p.linkCount = dv.getUint8();
        p.iteration = dv.getUint16();
        p.maxAngle = dv.getFloat32();
        p.links = [];

        for (var i = 0; i < p.linkCount; i++) {
          var link = {};
          link.index = dv.getUint16();
          p.links.push(link);
        }

        return p;
      };

      var metadata = pmd.metadata;
      metadata.ikCount = dv.getUint16();
      pmd.iks = [];

      for (var i = 0; i < metadata.ikCount; i++) {
        pmd.iks.push(parseIk());
      }
    };

    var parseMorphs = function parseMorphs() {
      var parseMorph = function parseMorph() {
        var p = {};
        p.name = dv.getSjisStringsAsUnicode(20);
        p.elementCount = dv.getUint32();
        p.type = dv.getUint8();
        p.elements = [];

        for (var i = 0; i < p.elementCount; i++) {
          p.elements.push({
            index: dv.getUint32(),
            position: dv.getFloat32Array(3)
          });
        }

        return p;
      };

      var metadata = pmd.metadata;
      metadata.morphCount = dv.getUint16();
      pmd.morphs = [];

      for (var i = 0; i < metadata.morphCount; i++) {
        pmd.morphs.push(parseMorph());
      }
    };

    var parseMorphFrames = function parseMorphFrames() {
      var parseMorphFrame = function parseMorphFrame() {
        var p = {};
        p.index = dv.getUint16();
        return p;
      };

      var metadata = pmd.metadata;
      metadata.morphFrameCount = dv.getUint8();
      pmd.morphFrames = [];

      for (var i = 0; i < metadata.morphFrameCount; i++) {
        pmd.morphFrames.push(parseMorphFrame());
      }
    };

    var parseBoneFrameNames = function parseBoneFrameNames() {
      var parseBoneFrameName = function parseBoneFrameName() {
        var p = {};
        p.name = dv.getSjisStringsAsUnicode(50);
        return p;
      };

      var metadata = pmd.metadata;
      metadata.boneFrameNameCount = dv.getUint8();
      pmd.boneFrameNames = [];

      for (var i = 0; i < metadata.boneFrameNameCount; i++) {
        pmd.boneFrameNames.push(parseBoneFrameName());
      }
    };

    var parseBoneFrames = function parseBoneFrames() {
      var parseBoneFrame = function parseBoneFrame() {
        var p = {};
        p.boneIndex = dv.getInt16();
        p.frameIndex = dv.getUint8();
        return p;
      };

      var metadata = pmd.metadata;
      metadata.boneFrameCount = dv.getUint32();
      pmd.boneFrames = [];

      for (var i = 0; i < metadata.boneFrameCount; i++) {
        pmd.boneFrames.push(parseBoneFrame());
      }
    };

    var parseEnglishHeader = function parseEnglishHeader() {
      var metadata = pmd.metadata;
      metadata.englishCompatibility = dv.getUint8();

      if (metadata.englishCompatibility > 0) {
        metadata.englishModelName = dv.getSjisStringsAsUnicode(20);
        metadata.englishComment = dv.getSjisStringsAsUnicode(256);
      }
    };

    var parseEnglishBoneNames = function parseEnglishBoneNames() {
      var parseEnglishBoneName = function parseEnglishBoneName() {
        var p = {};
        p.name = dv.getSjisStringsAsUnicode(20);
        return p;
      };

      var metadata = pmd.metadata;

      if (metadata.englishCompatibility === 0) {
        return;
      }

      pmd.englishBoneNames = [];

      for (var i = 0; i < metadata.boneCount; i++) {
        pmd.englishBoneNames.push(parseEnglishBoneName());
      }
    };

    var parseEnglishMorphNames = function parseEnglishMorphNames() {
      var parseEnglishMorphName = function parseEnglishMorphName() {
        var p = {};
        p.name = dv.getSjisStringsAsUnicode(20);
        return p;
      };

      var metadata = pmd.metadata;

      if (metadata.englishCompatibility === 0) {
        return;
      }

      pmd.englishMorphNames = [];

      for (var i = 0; i < metadata.morphCount - 1; i++) {
        pmd.englishMorphNames.push(parseEnglishMorphName());
      }
    };

    var parseEnglishBoneFrameNames = function parseEnglishBoneFrameNames() {
      var parseEnglishBoneFrameName = function parseEnglishBoneFrameName() {
        var p = {};
        p.name = dv.getSjisStringsAsUnicode(50);
        return p;
      };

      var metadata = pmd.metadata;

      if (metadata.englishCompatibility === 0) {
        return;
      }

      pmd.englishBoneFrameNames = [];

      for (var i = 0; i < metadata.boneFrameNameCount; i++) {
        pmd.englishBoneFrameNames.push(parseEnglishBoneFrameName());
      }
    };

    var parseToonTextures = function parseToonTextures() {
      var parseToonTexture = function parseToonTexture() {
        var p = {};
        p.fileName = dv.getSjisStringsAsUnicode(100);
        return p;
      };

      pmd.toonTextures = [];

      for (var i = 0; i < 10; i++) {
        pmd.toonTextures.push(parseToonTexture());
      }
    };

    var parseRigidBodies = function parseRigidBodies() {
      var parseRigidBody = function parseRigidBody() {
        var p = {};
        p.name = dv.getSjisStringsAsUnicode(20);
        p.boneIndex = dv.getInt16();
        p.groupIndex = dv.getUint8();
        p.groupTarget = dv.getUint16();
        p.shapeType = dv.getUint8();
        p.width = dv.getFloat32();
        p.height = dv.getFloat32();
        p.depth = dv.getFloat32();
        p.position = dv.getFloat32Array(3);
        p.rotation = dv.getFloat32Array(3);
        p.weight = dv.getFloat32();
        p.positionDamping = dv.getFloat32();
        p.rotationDamping = dv.getFloat32();
        p.restitution = dv.getFloat32();
        p.friction = dv.getFloat32();
        p.type = dv.getUint8();
        return p;
      };

      var metadata = pmd.metadata;
      metadata.rigidBodyCount = dv.getUint32();
      pmd.rigidBodies = [];

      for (var i = 0; i < metadata.rigidBodyCount; i++) {
        pmd.rigidBodies.push(parseRigidBody());
      }
    };

    var parseConstraints = function parseConstraints() {
      var parseConstraint = function parseConstraint() {
        var p = {};
        p.name = dv.getSjisStringsAsUnicode(20);
        p.rigidBodyIndex1 = dv.getUint32();
        p.rigidBodyIndex2 = dv.getUint32();
        p.position = dv.getFloat32Array(3);
        p.rotation = dv.getFloat32Array(3);
        p.translationLimitation1 = dv.getFloat32Array(3);
        p.translationLimitation2 = dv.getFloat32Array(3);
        p.rotationLimitation1 = dv.getFloat32Array(3);
        p.rotationLimitation2 = dv.getFloat32Array(3);
        p.springPosition = dv.getFloat32Array(3);
        p.springRotation = dv.getFloat32Array(3);
        return p;
      };

      var metadata = pmd.metadata;
      metadata.constraintCount = dv.getUint32();
      pmd.constraints = [];

      for (var i = 0; i < metadata.constraintCount; i++) {
        pmd.constraints.push(parseConstraint());
      }
    };

    parseHeader();
    parseVertices();
    parseFaces();
    parseMaterials();
    parseBones();
    parseIks();
    parseMorphs();
    parseMorphFrames();
    parseBoneFrameNames();
    parseBoneFrames();
    parseEnglishHeader();
    parseEnglishBoneNames();
    parseEnglishMorphNames();
    parseEnglishBoneFrameNames();
    parseToonTextures();
    parseRigidBodies();
    parseConstraints();
    if (leftToRight === true) this.leftToRightModel(pmd); // console.log( pmd ); // for console debug

    return pmd;
  };

  Parser.prototype.parsePmx = function (buffer, leftToRight) {
    var pmx = {};
    var dv = new DataViewEx(buffer);
    pmx.metadata = {};
    pmx.metadata.format = 'pmx';
    pmx.metadata.coordinateSystem = 'left';

    var parseHeader = function parseHeader() {
      var metadata = pmx.metadata;
      metadata.magic = dv.getChars(4); // Note: don't remove the last blank space.

      if (metadata.magic !== 'PMX ') {
        throw 'PMX file magic is not PMX , but ' + metadata.magic;
      }

      metadata.version = dv.getFloat32();

      if (metadata.version !== 2.0 && metadata.version !== 2.1) {
        throw 'PMX version ' + metadata.version + ' is not supported.';
      }

      metadata.headerSize = dv.getUint8();
      metadata.encoding = dv.getUint8();
      metadata.additionalUvNum = dv.getUint8();
      metadata.vertexIndexSize = dv.getUint8();
      metadata.textureIndexSize = dv.getUint8();
      metadata.materialIndexSize = dv.getUint8();
      metadata.boneIndexSize = dv.getUint8();
      metadata.morphIndexSize = dv.getUint8();
      metadata.rigidBodyIndexSize = dv.getUint8();
      metadata.modelName = dv.getTextBuffer();
      metadata.englishModelName = dv.getTextBuffer();
      metadata.comment = dv.getTextBuffer();
      metadata.englishComment = dv.getTextBuffer();
    };

    var parseVertices = function parseVertices() {
      var parseVertex = function parseVertex() {
        var p = {};
        p.position = dv.getFloat32Array(3);
        p.normal = dv.getFloat32Array(3);
        p.uv = dv.getFloat32Array(2);
        p.auvs = [];

        for (var i = 0; i < pmx.metadata.additionalUvNum; i++) {
          p.auvs.push(dv.getFloat32Array(4));
        }

        p.type = dv.getUint8();
        var indexSize = metadata.boneIndexSize;

        if (p.type === 0) {
          // BDEF1
          p.skinIndices = dv.getIndexArray(indexSize, 1);
          p.skinWeights = [1.0];
        } else if (p.type === 1) {
          // BDEF2
          p.skinIndices = dv.getIndexArray(indexSize, 2);
          p.skinWeights = dv.getFloat32Array(1);
          p.skinWeights.push(1.0 - p.skinWeights[0]);
        } else if (p.type === 2) {
          // BDEF4
          p.skinIndices = dv.getIndexArray(indexSize, 4);
          p.skinWeights = dv.getFloat32Array(4);
        } else if (p.type === 3) {
          // SDEF
          p.skinIndices = dv.getIndexArray(indexSize, 2);
          p.skinWeights = dv.getFloat32Array(1);
          p.skinWeights.push(1.0 - p.skinWeights[0]);
          p.skinC = dv.getFloat32Array(3);
          p.skinR0 = dv.getFloat32Array(3);
          p.skinR1 = dv.getFloat32Array(3); // SDEF is not supported yet and is handled as BDEF2 so far.
          // TODO: SDEF support

          p.type = 1;
        } else {
          throw 'unsupport bone type ' + p.type + ' exception.';
        }

        p.edgeRatio = dv.getFloat32();
        return p;
      };

      var metadata = pmx.metadata;
      metadata.vertexCount = dv.getUint32();
      pmx.vertices = [];

      for (var i = 0; i < metadata.vertexCount; i++) {
        pmx.vertices.push(parseVertex());
      }
    };

    var parseFaces = function parseFaces() {
      var parseFace = function parseFace() {
        var p = {};
        p.indices = dv.getIndexArray(metadata.vertexIndexSize, 3, true);
        return p;
      };

      var metadata = pmx.metadata;
      metadata.faceCount = dv.getUint32() / 3;
      pmx.faces = [];

      for (var i = 0; i < metadata.faceCount; i++) {
        pmx.faces.push(parseFace());
      }
    };

    var parseTextures = function parseTextures() {
      var parseTexture = function parseTexture() {
        return dv.getTextBuffer();
      };

      var metadata = pmx.metadata;
      metadata.textureCount = dv.getUint32();
      pmx.textures = [];

      for (var i = 0; i < metadata.textureCount; i++) {
        pmx.textures.push(parseTexture());
      }
    };

    var parseMaterials = function parseMaterials() {
      var parseMaterial = function parseMaterial() {
        var p = {};
        p.name = dv.getTextBuffer();
        p.englishName = dv.getTextBuffer();
        p.diffuse = dv.getFloat32Array(4);
        p.specular = dv.getFloat32Array(3);
        p.shininess = dv.getFloat32();
        p.ambient = dv.getFloat32Array(3);
        p.flag = dv.getUint8();
        p.edgeColor = dv.getFloat32Array(4);
        p.edgeSize = dv.getFloat32();
        p.textureIndex = dv.getIndex(pmx.metadata.textureIndexSize);
        p.envTextureIndex = dv.getIndex(pmx.metadata.textureIndexSize);
        p.envFlag = dv.getUint8();
        p.toonFlag = dv.getUint8();

        if (p.toonFlag === 0) {
          p.toonIndex = dv.getIndex(pmx.metadata.textureIndexSize);
        } else if (p.toonFlag === 1) {
          p.toonIndex = dv.getInt8();
        } else {
          throw 'unknown toon flag ' + p.toonFlag + ' exception.';
        }

        p.comment = dv.getTextBuffer();
        p.faceCount = dv.getUint32() / 3;
        return p;
      };

      var metadata = pmx.metadata;
      metadata.materialCount = dv.getUint32();
      pmx.materials = [];

      for (var i = 0; i < metadata.materialCount; i++) {
        pmx.materials.push(parseMaterial());
      }
    };

    var parseBones = function parseBones() {
      var parseBone = function parseBone() {
        var p = {};
        p.name = dv.getTextBuffer();
        p.englishName = dv.getTextBuffer();
        p.position = dv.getFloat32Array(3);
        p.parentIndex = dv.getIndex(pmx.metadata.boneIndexSize);
        p.transformationClass = dv.getUint32();
        p.flag = dv.getUint16();

        if (p.flag & 0x1) {
          p.connectIndex = dv.getIndex(pmx.metadata.boneIndexSize);
        } else {
          p.offsetPosition = dv.getFloat32Array(3);
        }

        if (p.flag & 0x100 || p.flag & 0x200) {
          // Note: I don't think Grant is an appropriate name
          //       but I found that some English translated MMD tools use this term
          //       so I've named it Grant so far.
          //       I'd rename to more appropriate name from Grant later.
          var grant = {};
          grant.isLocal = (p.flag & 0x80) !== 0 ? true : false;
          grant.affectRotation = (p.flag & 0x100) !== 0 ? true : false;
          grant.affectPosition = (p.flag & 0x200) !== 0 ? true : false;
          grant.parentIndex = dv.getIndex(pmx.metadata.boneIndexSize);
          grant.ratio = dv.getFloat32();
          p.grant = grant;
        }

        if (p.flag & 0x400) {
          p.fixAxis = dv.getFloat32Array(3);
        }

        if (p.flag & 0x800) {
          p.localXVector = dv.getFloat32Array(3);
          p.localZVector = dv.getFloat32Array(3);
        }

        if (p.flag & 0x2000) {
          p.key = dv.getUint32();
        }

        if (p.flag & 0x20) {
          var ik = {};
          ik.effector = dv.getIndex(pmx.metadata.boneIndexSize);
          ik.target = null;
          ik.iteration = dv.getUint32();
          ik.maxAngle = dv.getFloat32();
          ik.linkCount = dv.getUint32();
          ik.links = [];

          for (var i = 0; i < ik.linkCount; i++) {
            var link = {};
            link.index = dv.getIndex(pmx.metadata.boneIndexSize);
            link.angleLimitation = dv.getUint8();

            if (link.angleLimitation === 1) {
              link.lowerLimitationAngle = dv.getFloat32Array(3);
              link.upperLimitationAngle = dv.getFloat32Array(3);
            }

            ik.links.push(link);
          }

          p.ik = ik;
        }

        return p;
      };

      var metadata = pmx.metadata;
      metadata.boneCount = dv.getUint32();
      pmx.bones = [];

      for (var i = 0; i < metadata.boneCount; i++) {
        pmx.bones.push(parseBone());
      }
    };

    var parseMorphs = function parseMorphs() {
      var parseMorph = function parseMorph() {
        var p = {};
        p.name = dv.getTextBuffer();
        p.englishName = dv.getTextBuffer();
        p.panel = dv.getUint8();
        p.type = dv.getUint8();
        p.elementCount = dv.getUint32();
        p.elements = [];

        for (var i = 0; i < p.elementCount; i++) {
          if (p.type === 0) {
            // group morph
            var m = {};
            m.index = dv.getIndex(pmx.metadata.morphIndexSize);
            m.ratio = dv.getFloat32();
            p.elements.push(m);
          } else if (p.type === 1) {
            // vertex morph
            var m = {};
            m.index = dv.getIndex(pmx.metadata.vertexIndexSize, true);
            m.position = dv.getFloat32Array(3);
            p.elements.push(m);
          } else if (p.type === 2) {
            // bone morph
            var m = {};
            m.index = dv.getIndex(pmx.metadata.boneIndexSize);
            m.position = dv.getFloat32Array(3);
            m.rotation = dv.getFloat32Array(4);
            p.elements.push(m);
          } else if (p.type === 3) {
            // uv morph
            var m = {};
            m.index = dv.getIndex(pmx.metadata.vertexIndexSize, true);
            m.uv = dv.getFloat32Array(4);
            p.elements.push(m);
          } else if (p.type === 4) {// additional uv1
            // TODO: implement
          } else if (p.type === 5) {// additional uv2
            // TODO: implement
          } else if (p.type === 6) {// additional uv3
            // TODO: implement
          } else if (p.type === 7) {// additional uv4
            // TODO: implement
          } else if (p.type === 8) {
            // material morph
            var m = {};
            m.index = dv.getIndex(pmx.metadata.materialIndexSize);
            m.type = dv.getUint8();
            m.diffuse = dv.getFloat32Array(4);
            m.specular = dv.getFloat32Array(3);
            m.shininess = dv.getFloat32();
            m.ambient = dv.getFloat32Array(3);
            m.edgeColor = dv.getFloat32Array(4);
            m.edgeSize = dv.getFloat32();
            m.textureColor = dv.getFloat32Array(4);
            m.sphereTextureColor = dv.getFloat32Array(4);
            m.toonColor = dv.getFloat32Array(4);
            p.elements.push(m);
          }
        }

        return p;
      };

      var metadata = pmx.metadata;
      metadata.morphCount = dv.getUint32();
      pmx.morphs = [];

      for (var i = 0; i < metadata.morphCount; i++) {
        pmx.morphs.push(parseMorph());
      }
    };

    var parseFrames = function parseFrames() {
      var parseFrame = function parseFrame() {
        var p = {};
        p.name = dv.getTextBuffer();
        p.englishName = dv.getTextBuffer();
        p.type = dv.getUint8();
        p.elementCount = dv.getUint32();
        p.elements = [];

        for (var i = 0; i < p.elementCount; i++) {
          var e = {};
          e.target = dv.getUint8();
          e.index = e.target === 0 ? dv.getIndex(pmx.metadata.boneIndexSize) : dv.getIndex(pmx.metadata.morphIndexSize);
          p.elements.push(e);
        }

        return p;
      };

      var metadata = pmx.metadata;
      metadata.frameCount = dv.getUint32();
      pmx.frames = [];

      for (var i = 0; i < metadata.frameCount; i++) {
        pmx.frames.push(parseFrame());
      }
    };

    var parseRigidBodies = function parseRigidBodies() {
      var parseRigidBody = function parseRigidBody() {
        var p = {};
        p.name = dv.getTextBuffer();
        p.englishName = dv.getTextBuffer();
        p.boneIndex = dv.getIndex(pmx.metadata.boneIndexSize);
        p.groupIndex = dv.getUint8();
        p.groupTarget = dv.getUint16();
        p.shapeType = dv.getUint8();
        p.width = dv.getFloat32();
        p.height = dv.getFloat32();
        p.depth = dv.getFloat32();
        p.position = dv.getFloat32Array(3);
        p.rotation = dv.getFloat32Array(3);
        p.weight = dv.getFloat32();
        p.positionDamping = dv.getFloat32();
        p.rotationDamping = dv.getFloat32();
        p.restitution = dv.getFloat32();
        p.friction = dv.getFloat32();
        p.type = dv.getUint8();
        return p;
      };

      var metadata = pmx.metadata;
      metadata.rigidBodyCount = dv.getUint32();
      pmx.rigidBodies = [];

      for (var i = 0; i < metadata.rigidBodyCount; i++) {
        pmx.rigidBodies.push(parseRigidBody());
      }
    };

    var parseConstraints = function parseConstraints() {
      var parseConstraint = function parseConstraint() {
        var p = {};
        p.name = dv.getTextBuffer();
        p.englishName = dv.getTextBuffer();
        p.type = dv.getUint8();
        p.rigidBodyIndex1 = dv.getIndex(pmx.metadata.rigidBodyIndexSize);
        p.rigidBodyIndex2 = dv.getIndex(pmx.metadata.rigidBodyIndexSize);
        p.position = dv.getFloat32Array(3);
        p.rotation = dv.getFloat32Array(3);
        p.translationLimitation1 = dv.getFloat32Array(3);
        p.translationLimitation2 = dv.getFloat32Array(3);
        p.rotationLimitation1 = dv.getFloat32Array(3);
        p.rotationLimitation2 = dv.getFloat32Array(3);
        p.springPosition = dv.getFloat32Array(3);
        p.springRotation = dv.getFloat32Array(3);
        return p;
      };

      var metadata = pmx.metadata;
      metadata.constraintCount = dv.getUint32();
      pmx.constraints = [];

      for (var i = 0; i < metadata.constraintCount; i++) {
        pmx.constraints.push(parseConstraint());
      }
    };

    parseHeader();
    parseVertices();
    parseFaces();
    parseTextures();
    parseMaterials();
    parseBones();
    parseMorphs();
    parseFrames();
    parseRigidBodies();
    parseConstraints();
    if (leftToRight === true) this.leftToRightModel(pmx); // console.log( pmx ); // for console debug

    return pmx;
  };

  Parser.prototype.parseVmd = function (buffer, leftToRight) {
    var vmd = {};
    var dv = new DataViewEx(buffer);
    vmd.metadata = {};
    vmd.metadata.coordinateSystem = 'left';

    var parseHeader = function parseHeader() {
      var metadata = vmd.metadata;
      metadata.magic = dv.getChars(30);

      if (metadata.magic !== 'Vocaloid Motion Data 0002') {
        throw 'VMD file magic is not Vocaloid Motion Data 0002, but ' + metadata.magic;
      }

      metadata.name = dv.getSjisStringsAsUnicode(20);
    };

    var parseMotions = function parseMotions() {
      var parseMotion = function parseMotion() {
        var p = {};
        p.boneName = dv.getSjisStringsAsUnicode(15);
        p.frameNum = dv.getUint32();
        p.position = dv.getFloat32Array(3);
        p.rotation = dv.getFloat32Array(4);
        p.interpolation = dv.getUint8Array(64);
        return p;
      };

      var metadata = vmd.metadata;
      metadata.motionCount = dv.getUint32();
      vmd.motions = [];

      for (var i = 0; i < metadata.motionCount; i++) {
        vmd.motions.push(parseMotion());
      }
    };

    var parseMorphs = function parseMorphs() {
      var parseMorph = function parseMorph() {
        var p = {};
        p.morphName = dv.getSjisStringsAsUnicode(15);
        p.frameNum = dv.getUint32();
        p.weight = dv.getFloat32();
        return p;
      };

      var metadata = vmd.metadata;
      metadata.morphCount = dv.getUint32();
      vmd.morphs = [];

      for (var i = 0; i < metadata.morphCount; i++) {
        vmd.morphs.push(parseMorph());
      }
    };

    var parseCameras = function parseCameras() {
      var parseCamera = function parseCamera() {
        var p = {};
        p.frameNum = dv.getUint32();
        p.distance = dv.getFloat32();
        p.position = dv.getFloat32Array(3);
        p.rotation = dv.getFloat32Array(3);
        p.interpolation = dv.getUint8Array(24);
        p.fov = dv.getUint32();
        p.perspective = dv.getUint8();
        return p;
      };

      var metadata = vmd.metadata;
      metadata.cameraCount = dv.getUint32();
      vmd.cameras = [];

      for (var i = 0; i < metadata.cameraCount; i++) {
        vmd.cameras.push(parseCamera());
      }
    };

    parseHeader();
    parseMotions();
    parseMorphs();
    parseCameras();
    if (leftToRight === true) this.leftToRightVmd(vmd); // console.log( vmd ); // for console debug

    return vmd;
  };

  Parser.prototype.parseVpd = function (text, leftToRight) {
    var vpd = {};
    vpd.metadata = {};
    vpd.metadata.coordinateSystem = 'left';
    vpd.bones = [];
    var commentPatternG = /\/\/\w*(\r|\n|\r\n)/g;
    var newlinePattern = /\r|\n|\r\n/;
    var lines = text.replace(commentPatternG, '').split(newlinePattern);

    function throwError() {
      throw 'the file seems not vpd file.';
    }

    function checkMagic() {
      if (lines[0] !== 'Vocaloid Pose Data file') {
        throwError();
      }
    }

    function parseHeader() {
      if (lines.length < 4) {
        throwError();
      }

      vpd.metadata.parentFile = lines[2];
      vpd.metadata.boneCount = parseInt(lines[3]);
    }

    function parseBones() {
      var boneHeaderPattern = /^\s*(Bone[0-9]+)\s*\{\s*(.*)$/;
      var boneVectorPattern = /^\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*;/;
      var boneQuaternionPattern = /^\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*;/;
      var boneFooterPattern = /^\s*}/;
      var bones = vpd.bones;
      var n = null;
      var v = null;
      var q = null;

      for (var i = 4; i < lines.length; i++) {
        var line = lines[i];
        var result;
        result = line.match(boneHeaderPattern);

        if (result !== null) {
          if (n !== null) {
            throwError();
          }

          n = result[2];
        }

        result = line.match(boneVectorPattern);

        if (result !== null) {
          if (v !== null) {
            throwError();
          }

          v = [parseFloat(result[1]), parseFloat(result[2]), parseFloat(result[3])];
        }

        result = line.match(boneQuaternionPattern);

        if (result !== null) {
          if (q !== null) {
            throwError();
          }

          q = [parseFloat(result[1]), parseFloat(result[2]), parseFloat(result[3]), parseFloat(result[4])];
        }

        result = line.match(boneFooterPattern);

        if (result !== null) {
          if (n === null || v === null || q === null) {
            throwError();
          }

          bones.push({
            name: n,
            translation: v,
            quaternion: q
          });
          n = null;
          v = null;
          q = null;
        }
      }

      if (n !== null || v !== null || q !== null) {
        throwError();
      }
    }

    checkMagic();
    parseHeader();
    parseBones();
    if (leftToRight === true) this.leftToRightVpd(vpd); // console.log( vpd );  // for console debug

    return vpd;
  };

  Parser.prototype.mergeVmds = function (vmds) {
    var v = {};
    v.metadata = {};
    v.metadata.name = vmds[0].metadata.name;
    v.metadata.coordinateSystem = vmds[0].metadata.coordinateSystem;
    v.metadata.motionCount = 0;
    v.metadata.morphCount = 0;
    v.metadata.cameraCount = 0;
    v.motions = [];
    v.morphs = [];
    v.cameras = [];

    for (var i = 0; i < vmds.length; i++) {
      var v2 = vmds[i];
      v.metadata.motionCount += v2.metadata.motionCount;
      v.metadata.morphCount += v2.metadata.morphCount;
      v.metadata.cameraCount += v2.metadata.cameraCount;

      for (var j = 0; j < v2.metadata.motionCount; j++) {
        v.motions.push(v2.motions[j]);
      }

      for (var j = 0; j < v2.metadata.morphCount; j++) {
        v.morphs.push(v2.morphs[j]);
      }

      for (var j = 0; j < v2.metadata.cameraCount; j++) {
        v.cameras.push(v2.cameras[j]);
      }
    }

    return v;
  };

  Parser.prototype.leftToRightModel = function (model) {
    if (model.metadata.coordinateSystem === 'right') {
      return;
    }

    model.metadata.coordinateSystem = 'right';
    var helper = new DataCreationHelper();

    for (var i = 0; i < model.metadata.vertexCount; i++) {
      helper.leftToRightVector3(model.vertices[i].position);
      helper.leftToRightVector3(model.vertices[i].normal);
    }

    for (var i = 0; i < model.metadata.faceCount; i++) {
      helper.leftToRightIndexOrder(model.faces[i].indices);
    }

    for (var i = 0; i < model.metadata.boneCount; i++) {
      helper.leftToRightVector3(model.bones[i].position);
    } // TODO: support other morph for PMX


    for (var i = 0; i < model.metadata.morphCount; i++) {
      var m = model.morphs[i];

      if (model.metadata.format === 'pmx' && m.type !== 1) {
        // TODO: implement
        continue;
      }

      for (var j = 0; j < m.elements.length; j++) {
        helper.leftToRightVector3(m.elements[j].position);
      }
    }

    for (var i = 0; i < model.metadata.rigidBodyCount; i++) {
      helper.leftToRightVector3(model.rigidBodies[i].position);
      helper.leftToRightEuler(model.rigidBodies[i].rotation);
    }

    for (var i = 0; i < model.metadata.constraintCount; i++) {
      helper.leftToRightVector3(model.constraints[i].position);
      helper.leftToRightEuler(model.constraints[i].rotation);
      helper.leftToRightVector3Range(model.constraints[i].translationLimitation1, model.constraints[i].translationLimitation2);
      helper.leftToRightEulerRange(model.constraints[i].rotationLimitation1, model.constraints[i].rotationLimitation2);
    }
  };

  Parser.prototype.leftToRightVmd = function (vmd) {
    if (vmd.metadata.coordinateSystem === 'right') {
      return;
    }

    vmd.metadata.coordinateSystem = 'right';
    var helper = new DataCreationHelper();

    for (var i = 0; i < vmd.metadata.motionCount; i++) {
      helper.leftToRightVector3(vmd.motions[i].position);
      helper.leftToRightQuaternion(vmd.motions[i].rotation);
    }

    for (var i = 0; i < vmd.metadata.cameraCount; i++) {
      helper.leftToRightVector3(vmd.cameras[i].position);
      helper.leftToRightEuler(vmd.cameras[i].rotation);
    }
  };

  Parser.prototype.leftToRightVpd = function (vpd) {
    if (vpd.metadata.coordinateSystem === 'right') {
      return;
    }

    vpd.metadata.coordinateSystem = 'right';
    var helper = new DataCreationHelper();

    for (var i = 0; i < vpd.bones.length; i++) {
      helper.leftToRightVector3(vpd.bones[i].translation);
      helper.leftToRightQuaternion(vpd.bones[i].quaternion);
    }
  };

  var MMDParser = {
    CharsetEncoder: CharsetEncoder,
    Parser: Parser
  };
  _exports.MMDParser = MMDParser;
});