Skip to content

Instantly share code, notes, and snippets.

@Flexi23
Last active January 22, 2017 14:43
Show Gist options
  • Save Flexi23/43266257d97f9df249839168390d7159 to your computer and use it in GitHub Desktop.
Save Flexi23/43266257d97f9df249839168390d7159 to your computer and use it in GitHub Desktop.
the static triangle indices of the hd face model's 1347 vertices
// https://msdn.microsoft.com/en-us/library/microsoft.kinect.kinectsensor.aspx
// https://msdn.microsoft.com/en-us/library/microsoft.kinect.bodyframereader.aspx
// https://msdn.microsoft.com/en-us/library/microsoft.kinect.body.aspx
// https://msdn.microsoft.com/en-us/library/microsoft.kinect.face.highdefinitionfaceframesource.aspx
// https://msdn.microsoft.com/en-us/library/microsoft.kinect.face.facemodel.aspx
// https://msdn.microsoft.com/en-us/library/microsoft.kinect.face.facealignment.aspx
// In C#, you obtain a face mesh with 1347 xyz vertices like
// var vertices = currentFaceModel.CalculateVerticesForAlignment(currentFaceAlignment);
// this array gets serialized to JSON and sent over WebSockets to a Javascript callback function
// the triangle vertices index array is a static resource to connect the dots
var kinectv2HDFaceMeshTriangleIndices = [47,1223,1224,372,1228,1229,46,1180,1181,1309,1310,410,371,1185,1186,512,1226,1227,49,61,388,425,1221,1222,427,426,411,370,369,359,513,1183,1184,1183,513,42,1313,1314,1180,514,515,379,424,1178,1179,534,63,399,423,422,68,368,403,404,516,517,402,517,516,60,66,76,386,1317,1318,399,367,366,356,398,67,421,302,303,73,518,519,376,519,518,62,76,81,385,1320,76,66,300,301,351,366,365,355,81,89,313,432,82,71,301,307,84,304,96,73,415,414,458,365,190,225,519,520,375,520,519,70,1320,1321,81,109,110,95,305,112,96,465,466,305,100,415,88,520,521,272,521,520,75,1321,1322,89,433,90,82,482,111,259,434,97,90,136,186,259,437,291,114,278,437,115,553,463,124,1122,1123,1323,311,312,116,118,132,93,147,159,468,436,278,438,542,140,139,1124,1125,1123,485,264,263,296,93,132,293,292,148,184,161,152,175,540,541,163,164,139,320,262,156,169,292,293,162,257,152,164,334,175,394,395,166,171,172,169,294,293,149,1079,1080,162,175,334,199,189,334,164,26,294,173,32,15,166,271,270,165,191,155,144,170,293,294,258,257,162,1078,1079,161,212,199,334,24,258,183,192,294,26,19,191,166,1128,1129,1126,192,193,171,1080,1081,183,194,195,346,348,209,194,339,340,164,183,1081,1082,17,193,192,191,202,165,317,182,204,206,321,322,346,195,208,194,219,217,349,229,209,222,223,201,31,321,206,167,216,23,22,202,191,202,215,179,216,167,318,204,318,203,182,207,216,208,195,217,209,228,219,1076,1077,298,234,212,189,216,207,20,1072,215,202,1130,1131,1127,219,226,227,233,226,219,229,236,228,235,243,234,235,221,201,227,226,223,1133,1131,1130,236,240,233,233,235,223,240,243,235,239,231,232,246,281,239,247,250,248,445,295,282,499,252,251,500,253,252,500,501,254,502,255,254,503,256,255,505,178,337,359,369,368,379,515,516,516,515,58,388,61,63,61,1316,1317,21,206,193,193,206,181,171,181,180,168,158,146,158,157,486,262,296,145,110,109,151,147,134,492,494,159,147,160,159,494,319,168,160,269,464,303,266,267,100,409,410,47,465,304,303,1311,1312,1223,1310,1311,47,58,515,514,239,255,256,254,255,239,253,254,281,252,253,249,251,252,248,246,247,249,1171,1172,86,1171,261,108,1168,107,150,288,122,100,289,279,288,289,101,88,1316,61,49,11,120,258,258,120,119,543,125,140,176,163,140,338,339,163,213,222,200,224,227,222,227,224,218,496,497,443,29,30,282,307,308,92,309,105,92,492,134,283,148,284,285,286,173,149,173,286,25,264,523,130,523,522,143,1136,1137,1134,298,184,151,189,340,201,314,135,151,315,196,135,260,151,152,136,111,96,111,482,73,482,481,74,298,135,196,479,86,1172,264,117,309,270,271,522,1129,1128,1137,299,479,1173,296,301,300,301,296,262,117,310,105,311,310,117,312,311,130,1125,1124,1135,186,315,314,306,203,318,322,323,180,20,207,321,321,207,182,182,317,323,199,325,341,326,325,199,234,327,326,243,328,327,328,243,240,242,240,236,236,229,230,230,229,349,232,231,336,256,337,336,504,337,256,454,200,339,200,201,340,538,539,342,539,540,175,1078,184,298,1076,220,329,10,9,355,9,8,356,357,356,8,33,6,358,6,5,359,360,359,5,1187,3,361,1230,2,362,2,34,405,363,405,34,372,362,405,375,272,190,376,375,365,377,376,366,378,402,403,379,378,368,380,379,369,381,1184,1185,1228,372,382,407,382,372,512,382,407,511,407,383,262,483,308,263,309,308,318,167,395,32,395,167,431,71,398,1318,1319,66,399,66,387,518,517,401,517,518,377,402,377,367,403,367,357,404,357,7,405,363,373,406,373,383,418,273,426,100,267,268,44,1308,1309,421,67,68,425,50,411,1138,1120,1121,291,437,290,278,436,279,278,289,290,124,138,551,497,498,251,250,445,444,28,443,282,443,251,444,435,290,88,114,291,453,415,268,87,268,464,269,267,465,464,266,466,465,159,160,146,472,438,115,115,114,474,481,482,94,484,263,483,394,393,131,393,394,144,155,485,484,145,132,487,487,132,118,94,259,314,147,133,118,297,283,134,119,488,152,1169,490,107,108,490,1169,491,284,148,148,292,493,169,494,493,169,172,495,172,180,319,27,344,497,344,345,498,345,208,499,208,218,500,224,501,500,224,213,502,454,503,502,454,338,504,338,176,505,320,306,131,131,393,483,146,486,508,486,156,145,468,508,487,485,155,165,270,523,264,156,486,157,177,214,335,336,337,178,364,374,373,363,1,0,383,373,374,510,383,384,509,384,532,384,374,530,374,364,529,364,0,531,39,510,509,40,509,533,80,75,385,75,70,386,386,70,62,387,62,401,401,60,534,60,58,388,389,388,58,1182,42,390,1225,1226,512,43,512,511,408,511,510,392,409,408,392,416,410,38,44,416,392,39,40,41,48,44,38,40,528,1224,1225,43,391,43,408,125,506,505,174,138,540,540,138,124,124,463,542,463,102,543,178,505,506,506,125,543,535,544,507,177,178,154,142,128,536,177,460,462,537,462,460,536,460,154,544,543,102,154,506,544,128,141,537,477,476,461,476,129,126,478,477,127,477,478,548,141,128,547,552,551,472,473,474,553,102,463,553,475,474,114,129,475,459,545,554,475,129,476,546,476,477,547,128,142,546,142,507,545,554,553,474,507,102,554,557,556,1236,561,560,1231,558,555,1193,567,1329,1330,562,559,1188,573,572,1233,564,563,575,579,578,1238,581,567,568,570,569,583,574,571,1190,1191,1192,587,577,1333,1334,586,585,598,580,577,1195,603,602,601,600,589,605,609,608,607,618,617,616,619,621,620,624,623,622,626,1337,1338,633,632,631,627,636,635,642,641,640,646,645,644,647,649,648,625,622,650,653,652,1339,638,630,637,634,631,659,651,650,661,664,663,652,658,637,666,672,643,640,676,675,674,660,659,678,647,644,680,681,682,649,653,1340,1341,690,689,688,692,672,673,694,672,692,697,696,675,681,680,698,699,700,682,683,1341,1342,702,664,653,706,689,705,708,702,683,715,707,705,719,718,717,735,734,718,738,737,736,1344,1142,1139,743,742,741,747,746,745,754,753,734,757,756,755,1144,1141,1140,761,760,759,764,763,744,767,766,765,773,772,771,779,755,756,781,758,755,791,790,767,792,774,771,782,755,779,797,796,795,802,801,766,1085,774,792,779,806,805,808,807,782,26,13,801,32,798,795,811,810,809,813,795,796,790,817,802,819,818,792,1086,773,774,821,808,794,24,16,818,817,18,26,19,15,795,1147,1148,1145,817,790,799,1084,792,818,824,820,803,826,820,824,828,781,782,818,16,1082,17,18,817,813,814,809,832,831,830,836,835,834,803,804,838,824,825,839,841,826,827,849,848,847,31,21,836,851,14,23,22,19,813,829,809,810,852,830,854,833,830,852,838,858,839,827,824,840,1088,861,860,865,864,808,852,23,20,1072,22,829,1150,1145,1148,840,839,866,868,859,840,842,827,859,872,864,865,872,850,847,866,849,850,1133,1132,1150,869,859,868,868,867,850,874,868,872,880,879,878,884,879,880,886,888,887,890,893,892,896,895,894,898,896,897,898,899,900,902,901,900,904,902,903,908,907,906,583,608,609,598,617,618,618,620,910,575,603,604,1336,1337,626,21,17,822,822,799,835,786,783,763,691,914,772,747,916,915,918,916,747,923,642,643,927,926,697,929,582,579,937,556,557,694,924,643,578,1331,1332,568,1330,1331,910,588,586,880,881,905,900,885,880,899,888,885,897,887,888,894,893,887,884,885,888,1161,671,668,1161,1162,713,946,696,697,947,696,946,947,949,675,605,589,1335,11,24,819,819,793,724,951,757,758,953,952,758,954,953,781,956,955,848,957,956,849,866,839,858,496,28,958,29,891,892,667,666,665,961,960,665,915,943,942,765,766,945,944,945,766,801,13,25,762,964,963,965,963,966,1153,1154,1151,860,968,772,808,864,847,969,690,772,970,969,968,914,972,771,715,693,673,707,673,640,706,640,641,860,861,971,979,1159,1160,762,759,961,812,965,967,1146,1153,1152,639,1158,1159,764,741,638,658,667,786,964,961,703,723,963,964,740,966,963,1143,1151,1154,716,705,969,20,31,837,837,834,833,833,834,816,805,806,985,863,821,805,865,821,863,873,865,877,883,882,874,882,875,869,869,875,871,871,870,841,878,988,989,905,881,989,907,904,905,955,954,828,848,828,807,990,985,806,991,806,779,1086,1087,860,10,678,659,9,659,631,632,7,8,33,607,608,6,608,583,569,4,5,1187,1188,559,1230,1231,560,2,560,993,994,1,34,561,995,993,680,660,679,644,634,660,645,633,634,617,609,610,598,584,609,585,570,584,571,562,1189,1232,1233,572,996,995,561,573,997,996,997,999,998,786,667,960,759,1000,960,854,797,798,32,14,851,663,636,627,627,1338,1339,601,602,623,646,648,621,619,616,645,616,610,633,610,607,632,607,33,7,993,995,1001,995,996,998,931,581,582,697,676,1002,1328,1329,567,635,606,605,579,582,568,1155,1139,1142,720,1005,949,735,947,948,735,719,949,736,737,1006,1007,1006,1008,1009,1008,1010,959,958,894,889,887,893,28,30,892,958,892,893,1005,674,675,676,677,950,1002,950,923,928,1002,924,927,928,694,748,745,911,1015,1017,734,1017,1018,718,718,1018,1019,973,688,689,760,1020,1000,797,854,980,1020,760,796,814,796,760,763,1022,1021,1021,746,743,689,690,969,747,917,743,742,743,917,724,793,771,1163,1164,770,713,1162,1163,943,915,765,765,915,916,791,768,916,27,496,959,823,959,895,804,895,896,838,896,898,957,858,898,957,901,902,955,956,902,955,904,907,954,907,908,980,786,1000,911,745,1022,913,1022,763,745,746,1021,761,812,809,812,761,762,1026,989,988,989,1026,909,594,595,1327,1032,994,1001,994,1032,0,998,1034,1033,999,1035,1034,1035,1037,1036,1034,1036,1038,1033,1038,1039,1032,1039,531,1041,1040,1035,1040,1043,1037,700,661,650,682,650,622,622,623,648,623,602,621,621,602,603,620,603,575,563,588,910,1192,1193,555,1235,1044,573,1044,1045,997,1045,1041,999,1046,1041,1045,1046,937,565,1047,1046,566,1046,1047,1040,1042,1047,1003,1047,1042,1043,1236,556,1044,556,937,1045,952,953,908,1011,990,991,1009,991,780,780,756,736,736,756,757,739,757,951,909,1050,1048,1048,1051,951,1054,1053,1052,1026,1055,1050,1053,1054,1056,1026,1027,1058,1059,1056,1055,1056,1054,1050,1051,1052,1049,1050,1054,1051,1057,1056,1059,1061,977,978,1062,978,1023,1064,1028,977,1061,1066,1065,1060,1065,1066,1006,1017,1015,737,1018,1017,1018,737,738,1049,1067,738,1068,1014,717,1063,1023,1014,1069,1063,1068,1063,1069,1070,1062,1070,1066,1057,1066,1070,1053,1070,1069,1067,1068,1019,1052,1069,1067,52,428,427,1308,44,48,57,429,428,427,428,275,1073,275,428,429,65,455,581,597,594,1004,597,581,597,596,595,1004,1074,1013,596,597,1013,350,349,1076,349,348,1077,348,347,1078,347,346,1079,346,345,1080,345,344,1081,1081,344,27,1083,1082,27,823,804,1084,804,803,1085,803,820,1086,820,826,1087,826,841,1088,841,870,1089,730,729,1091,732,730,1090,751,750,1094,775,778,1095,845,844,1098,749,863,862,776,777,870,871,875,728,863,749,876,731,728,875,733,883,877,883,733,731,750,925,1099,729,775,1096,844,975,843,778,845,1097,844,971,861,970,971,844,716,970,845,778,775,715,715,775,729,693,729,730,732,695,692,927,925,750,751,946,926,946,751,986,986,751,1093,1088,1089,975,843,975,1089,948,986,984,695,732,925,925,732,1092,987,752,862,846,1089,870,843,846,1097,846,777,1095,777,776,1096,776,728,1091,728,731,1090,731,733,1092,733,876,1099,876,749,1094,749,752,1093,752,987,1100,241,121,1103,244,241,1104,211,137,1106,153,187,1109,316,210,1110,137,211,325,153,230,350,230,153,121,326,327,238,237,121,241,327,328,244,241,244,328,137,238,1112,121,153,1108,197,1110,210,187,316,1111,220,196,197,315,330,197,330,315,186,185,186,136,136,112,113,112,305,332,305,466,467,123,265,266,122,288,333,288,279,343,188,211,1107,1075,329,210,265,467,466,238,244,1105,341,188,287,188,341,325,350,1075,316,197,330,1111,330,185,1109,185,331,1108,331,113,1103,113,332,1104,332,467,1105,467,265,1112,265,123,1106,123,333,1107,333,343,1113,138,174,550,472,471,439,551,550,471,441,198,436,287,188,1113,198,343,279,471,470,441,343,198,1114,198,441,1115,442,174,539,538,287,440,174,442,549,440,287,1114,550,549,470,442,440,1116,441,470,469,469,470,549,440,1115,469,1008,1015,1016,1016,1117,1071,983,753,754,1101,984,986,1102,983,984,1015,753,983,985,990,992,990,1011,1012,1011,1010,1071,1102,1117,1016,1100,987,992,1101,992,1012,1012,1071,1117,180,323,317,1118,157,158,524,157,1118,324,317,205,203,306,525,168,319,525,1118,525,306,319,180,324,799,790,791,830,831,855,835,799,800,748,912,919,816,834,835,832,816,815,800,791,918,981,855,831,785,784,783,787,788,911,913,783,784,788,789,912,920,919,912,856,980,854,856,982,1119,800,919,920,785,786,980,920,982,981,855,981,982,789,1119,982,788,787,1119,784,785,1119,1323,1123,89,1124,1122,116,1123,1125,313,1128,1127,190,1126,1129,271,1130,1126,179,1127,1131,225,1132,1130,215,1131,1133,10,1136,1135,143,1134,1137,521,1129,1136,522,1137,1128,272,1125,1134,80,1135,1124,312,1138,1121,97,1343,1139,701,1143,1140,662,1146,1145,810,1148,1147,698,1149,1148,679,1145,1150,853,1133,1149,678,1150,1132,1072,1152,1151,700,1154,1153,967,1147,1152,699,1153,1146,811,1144,1154,966,1151,1143,661,1139,1155,708,1155,1142,721,1157,630,638,1158,638,741,1159,741,742,742,942,1161,942,943,1162,1162,943,962,962,945,1164,945,944,1165,944,25,1166,25,286,1167,286,285,1168,285,284,1169,1170,1169,284,491,283,1171,283,297,1172,1173,1172,297,1174,1173,93,1175,1174,300,1178,423,59,1314,1315,49,1180,49,389,389,45,1182,45,514,1183,1183,514,380,1184,380,370,1185,370,360,360,4,1187,4,569,1188,1189,1188,569,1190,1189,570,1191,1190,585,586,588,1192,588,563,1193,1194,1193,563,1195,1334,1335,1196,1195,589,12,1166,1167,1164,1165,769,1165,1166,12,1221,424,51,1312,1313,46,1223,46,390,390,42,1225,42,513,1226,1226,513,381,381,371,1228,1228,371,361,361,3,1230,3,559,1231,1232,1231,559,562,571,1233,1234,1233,571,574,587,1235,587,555,1236,1237,1236,555,1238,1332,1333,1239,1238,577,353,299,1174,273,274,425,674,939,940,613,978,977,720,934,935,1005,935,939,720,717,1014,934,1014,1023,614,1023,978,458,414,413,452,453,291,420,452,435,453,64,126,64,456,461,127,461,456,280,127,457,642,922,941,950,938,921,923,921,922,938,950,677,670,669,1262,711,714,1263,726,725,724,714,670,1261,691,670,714,688,669,670,711,972,914,727,724,972,727,711,1264,671,1203,1202,1203,671,713,1204,713,712,1205,712,770,974,973,641,669,688,973,1259,974,941,669,974,1259,1200,639,979,1201,979,668,1258,941,922,1258,1200,1201,1201,1202,1262,1202,1203,1261,1203,1204,1263,1204,1205,1264,1205,1206,1265,302,74,449,479,299,1211,450,451,87,269,302,354,414,87,451,490,108,1215,260,488,489,1216,1215,1273,488,119,106,107,490,1216,1217,1216,1272,725,726,35,446,106,119,150,107,1217,120,11,35,12,150,1218,1266,726,727,1267,35,726,1206,770,769,769,12,1208,1218,1217,1274,1208,1218,1275,1265,1206,1207,1207,1208,1267,1213,1214,261,108,261,1214,447,448,110,95,110,448,74,481,480,481,95,85,86,479,1212,1212,1211,1269,1213,1212,1268,1214,1213,1270,1215,1214,1276,449,480,1268,480,85,1270,85,448,1276,448,447,1273,447,489,1272,489,106,1274,106,446,1275,446,35,1267,976,977,1028,1210,1211,299,1211,1210,1271,354,449,1269,274,1220,1221,413,451,1255,451,450,1257,450,354,1271,1178,424,56,423,1178,1177,1220,56,424,277,1219,1220,1209,1210,353,1257,1271,1210,1255,1257,1209,1219,277,1279,53,1282,1219,1219,1282,56,629,1157,1158,932,931,929,931,932,615,1260,922,921,938,1248,1256,1248,938,940,639,1200,1199,1260,1199,1200,593,580,1196,930,579,1239,1240,1239,580,933,929,930,1284,933,936,1286,1248,1242,1256,1198,1199,630,1157,1156,1289,1156,590,1156,1157,629,936,930,1240,1286,936,1241,629,1199,1198,1198,1256,1248,590,1198,1241,1290,593,1197,593,1290,1241,1024,1030,1025,1030,1024,1292,976,1029,1244,1283,932,933,1247,1293,1285,1285,615,932,1024,612,1293,615,612,1074,1074,612,1024,1242,940,939,1243,939,935,934,614,1246,614,613,1247,613,976,1245,1284,1242,1243,1283,1243,1246,612,615,1285,1247,1245,1292,1245,1244,1291,1251,456,64,453,452,1252,1253,457,456,1073,455,527,276,275,1073,1251,1252,1294,1253,1251,1295,65,37,527,1254,36,457,1254,1253,1296,419,412,273,420,413,1250,276,419,418,452,420,1249,1249,1250,1277,1278,1294,1252,412,277,274,412,419,1278,1250,1255,1279,277,412,1277,419,276,1294,276,526,1295,526,527,1296,527,37,1297,55,69,422,1177,56,1282,1176,53,353,53,1176,1281,657,656,1300,656,657,665,703,685,686,703,665,657,655,635,636,721,709,702,592,600,606,1287,628,591,637,630,591,611,606,635,1287,1300,656,666,637,628,1197,1196,600,1288,592,611,591,1156,1289,1289,1197,592,611,655,1300,655,654,1299,397,77,431,77,91,432,397,72,1306,78,84,92,69,72,421,78,1306,1298,84,78,79,72,397,430,1280,1298,69,54,352,351,1176,1175,352,55,1177,1281,1281,1176,54,54,79,1298,72,69,1298,78,396,1305,57,52,1308,1308,52,417,417,411,1310,411,50,1311,50,1222,1312,1222,51,1313,51,1179,1314,1179,59,1315,59,68,1316,1316,68,67,67,398,1318,398,71,1319,71,82,1320,82,90,1321,90,97,1322,97,1121,1323,1324,1323,1121,1328,1327,1031,1003,566,1329,1329,566,565,1330,565,557,1331,557,1237,1332,1237,558,1333,558,1194,1334,1194,564,1336,1335,564,576,604,1337,1337,604,601,1338,601,624,1340,1339,624,1340,625,651,1341,651,662,662,1140,1343,1140,1141,1344,721,1142,1344,722,1141,1144,1301,686,685,1301,1346,710,1345,1346,709,704,686,710,740,723,710,685,657,1299,663,684,654,664,687,684,687,664,702,1299,654,684,1302,684,687,1345,1344,1141,722,710,1346,1301,687,709,1326,104,116,433,98,103,1122,1324,1325,103,1120,1138,91,77,1303,105,310,99,104,1326,1304,310,311,104,396,92,105,77,397,1305,91,98,433,1305,396,83,83,99,1304,1324,1120,103,98,1326,1325,1304,1326,98,1224,391,47,1229,362,372,1181,390,46,410,416,1309,1186,361,371,1227,382,512,388,389,49,1222,50,425,411,417,427,359,360,370,1184,381,513,42,1182,1183,1180,46,1313,379,380,514,1179,51,424,399,400,534,68,59,423,404,358,368,402,378,516,60,401,517,386,387,66,399,63,1317,356,357,367,421,430,398,73,74,302,376,377,518,62,70,519,385,386,76,66,1319,1320,351,352,300,355,356,366,313,385,81,71,431,432,84,351,301,73,303,304,458,88,415,225,355,365,375,376,519,70,75,520,81,76,1320,95,94,109,96,304,305,305,304,465,88,101,100,272,375,520,75,80,521,89,81,1321,82,432,433,259,94,482,90,433,434,259,111,136,114,115,437,115,438,278,124,552,553,1323,1324,1122,116,104,311,93,297,118,468,133,147,438,439,436,139,541,542,1123,1122,1124,263,484,485,132,145,296,148,149,293,152,151,184,541,139,175,139,140,163,156,524,320,293,170,169,152,161,162,175,139,164,166,144,394,169,170,171,149,173,294,162,161,1079,199,342,175,164,340,189,173,13,26,166,395,32,165,179,271,144,166,191,294,192,170,162,183,258,161,184,1078,334,189,212,183,16,24,26,18,192,166,15,19,1126,1127,1128,171,170,192,183,162,1080,346,347,194,194,347,348,164,163,339,1082,16,183,192,18,17,165,155,191,204,205,317,322,181,206,208,345,346,217,195,194,209,348,349,201,200,222,206,21,31,23,14,167,191,19,22,179,165,202,318,204,216,203,205,204,216,204,182,217,218,208,219,194,209,298,220,1076,189,221,234,20,23,216,202,22,1072,1127,1126,1130,227,217,219,219,228,233,228,209,229,234,221,235,201,223,235,223,222,227,1130,1132,1133,233,228,236,223,226,233,235,233,240,232,245,239,239,245,246,248,249,247,282,444,445,251,498,499,252,499,500,254,253,500,254,501,502,255,502,503,337,504,505,368,358,359,516,378,379,58,60,516,63,534,388,1317,63,61,193,17,21,181,171,193,180,172,171,146,160,168,486,146,158,145,156,262,151,260,110,492,493,147,147,493,494,494,495,160,160,495,319,303,302,269,100,122,266,47,391,409,303,464,465,1223,47,1311,47,410,1310,514,45,58,256,231,239,239,281,254,281,249,253,249,248,252,248,444,251,249,281,246,86,261,1171,108,1170,1171,150,1167,1168,100,101,288,288,101,289,88,290,289,49,1315,1316,258,24,11,119,257,258,140,542,543,140,125,176,163,176,338,200,454,213,222,213,224,218,217,227,443,28,496,282,295,29,92,84,307,92,308,309,283,491,492,285,149,148,149,285,286,25,13,173,130,117,264,143,130,523,1134,1135,1136,151,135,298,201,221,189,151,109,314,135,314,315,152,488,260,96,112,136,73,96,111,74,73,482,196,220,298,1172,1173,479,309,263,264,522,523,270,1137,1136,1129,1173,1174,299,300,93,296,262,307,301,105,309,117,117,130,311,130,143,312,1135,1134,1125,314,259,186,318,131,306,180,181,322,321,31,20,182,322,321,323,322,182,341,342,199,199,212,326,326,212,234,327,234,243,240,242,328,236,237,242,230,237,236,349,350,230,336,335,232,336,231,256,256,503,504,339,338,454,340,339,200,342,341,538,175,342,539,298,1077,1078,329,1075,1076,355,225,10,356,355,9,8,7,357,358,404,33,359,358,6,5,4,360,361,1186,1187,362,1229,1230,405,362,2,34,1,363,405,406,372,190,365,375,365,366,376,366,367,377,403,368,378,368,369,379,369,370,380,1185,371,381,382,1227,1228,372,406,407,407,511,512,383,510,511,308,307,262,308,483,263,395,394,318,167,14,32,398,430,431,66,399,1318,387,400,399,401,62,518,377,402,517,367,403,402,357,404,403,7,33,404,373,406,405,383,407,406,426,427,418,268,415,100,1309,416,44,68,422,421,411,426,425,290,435,291,279,289,278,290,437,278,551,552,124,251,443,497,444,248,250,282,30,28,444,282,443,88,458,435,453,459,114,87,414,415,269,87,268,464,268,267,465,267,266,146,468,159,115,473,472,474,473,115,94,95,481,483,393,484,131,318,394,144,484,393,484,144,155,487,508,145,118,133,487,314,109,94,118,134,147,134,118,297,152,257,119,107,1168,1169,1169,1170,108,148,492,491,493,492,148,493,292,169,495,494,169,319,495,172,497,496,27,498,497,344,499,498,345,500,499,208,500,218,224,502,501,224,502,213,454,504,503,454,505,504,338,131,262,320,483,262,131,508,468,146,145,508,486,487,133,468,165,270,485,264,485,270,157,524,156,335,336,177,178,177,336,373,363,364,0,364,363,374,384,383,384,509,510,532,533,509,530,532,384,529,530,374,531,529,364,509,40,39,533,528,40,385,313,80,386,385,75,62,387,386,401,400,387,534,400,401,388,534,60,58,45,389,390,1181,1182,512,43,1225,511,408,43,510,39,408,408,39,392,410,409,392,416,392,38,40,38,392,44,38,41,528,41,38,43,391,1224,408,409,391,505,176,125,540,539,174,124,541,540,542,541,124,543,542,463,506,154,178,543,544,506,507,142,535,154,460,177,536,535,142,462,214,177,460,536,537,154,535,536,102,507,544,544,535,154,537,536,128,461,127,477,126,461,476,127,280,478,548,547,477,547,548,141,472,473,552,553,552,473,553,554,102,114,459,475,459,126,129,475,129,545,546,545,129,547,546,476,546,547,128,545,546,142,474,475,554,554,545,507,1236,1237,557,1231,1232,561,1193,1194,558,1330,568,567,1188,1189,562,1233,1234,573,575,576,564,1238,1239,579,568,582,581,583,584,570,1190,1191,574,587,574,1191,1334,1195,577,598,599,586,1195,1196,580,601,604,603,605,606,600,607,610,609,616,619,618,620,618,619,622,625,624,1338,627,626,631,634,633,635,626,627,640,643,642,644,647,646,648,646,647,650,651,625,1339,1340,653,637,658,638,659,660,634,661,662,651,652,653,664,666,667,658,640,673,672,674,677,676,678,679,660,680,681,647,649,647,681,1341,683,653,688,691,690,673,693,692,692,695,694,675,676,697,698,699,681,682,681,699,1342,701,683,653,683,702,705,707,706,683,701,708,705,716,715,717,720,719,718,719,735,736,739,738,1139,1343,1344,741,744,743,745,748,747,734,735,754,755,758,757,1140,1143,1144,759,762,761,744,741,764,765,768,767,771,774,773,756,780,779,755,782,781,767,768,791,771,793,792,779,794,782,795,798,797,766,767,802,792,1084,1085,805,794,779,782,794,808,801,802,26,795,15,32,809,812,811,796,814,813,802,767,790,792,793,819,774,1085,1086,794,805,821,818,819,24,26,802,817,795,813,19,1145,1146,1147,799,822,817,818,1083,1084,803,825,824,824,827,826,782,807,828,1082,1083,818,817,822,17,809,829,813,830,833,832,834,837,836,838,825,803,839,840,824,827,842,841,847,850,849,836,837,31,23,852,851,813,829,22,810,853,829,854,851,852,852,857,833,839,825,838,840,859,827,860,1087,1088,808,821,865,20,857,852,829,853,1072,1148,1149,1150,866,867,840,840,867,868,859,869,842,865,873,872,847,864,872,850,867,866,1150,1149,1133,868,874,869,850,872,868,872,873,874,878,881,880,880,885,884,887,889,886,892,891,890,894,897,896,897,899,898,900,901,898,900,903,902,903,905,904,906,909,908,609,584,583,618,599,598,910,599,618,604,576,575,626,605,1336,822,836,21,835,836,822,763,764,786,772,690,691,915,917,747,747,748,918,643,924,923,697,928,927,579,930,929,557,565,937,643,672,694,1332,1238,578,1331,578,568,586,599,910,905,903,880,880,903,900,885,900,899,888,899,897,887,897,894,888,886,884,668,1160,1161,713,671,1161,697,926,946,946,948,947,675,696,947,1335,1336,605,819,725,11,724,725,819,758,952,951,758,781,953,781,828,954,848,849,956,849,866,957,858,957,866,958,959,496,892,30,29,665,960,667,665,703,961,942,917,915,945,962,765,766,801,944,25,944,801,963,965,762,966,967,965,1151,1152,1153,772,773,860,847,807,808,772,968,969,968,971,970,771,772,914,673,707,715,640,706,707,641,973,706,971,968,860,1160,668,979,961,964,762,967,811,812,1152,1147,1146,1159,979,639,638,658,764,786,764,658,703,704,964,964,704,723,963,723,740,1154,1144,1143,969,970,716,837,857,20,833,857,837,816,832,833,985,862,805,805,862,863,863,877,865,877,883,873,874,873,883,869,874,882,871,842,869,841,842,871,989,881,878,989,906,905,905,906,907,828,848,955,807,847,848,806,991,990,779,780,991,860,773,1086,659,9,10,631,8,9,8,631,632,608,6,33,583,5,6,5,583,569,559,3,1187,560,2,1230,993,34,2,34,993,994,993,560,561,679,698,680,660,680,644,634,644,645,610,616,617,609,617,598,584,598,585,1189,1190,571,572,561,1232,561,572,996,996,572,573,998,996,997,960,1000,786,960,961,759,798,851,854,851,798,32,627,652,663,1339,652,627,623,624,601,621,619,646,645,646,619,633,645,616,632,633,610,7,632,607,1001,994,993,998,1001,995,582,929,931,1002,928,697,567,594,1328,605,626,635,568,578,579,949,719,720,948,754,735,949,947,735,1006,1007,736,1008,1009,1007,1010,1011,1009,894,895,959,893,890,889,892,958,28,893,894,958,675,949,1005,950,1002,676,923,924,1002,924,694,928,694,695,927,911,912,748,734,753,1015,718,734,1017,1019,717,718,689,706,973,1000,759,760,980,1020,797,796,797,1020,760,761,814,1021,744,763,743,744,1021,969,705,689,743,746,747,917,942,742,771,972,724,770,712,1163,1163,712,713,765,962,943,916,768,765,916,918,791,959,823,27,895,804,823,896,838,804,898,858,838,898,901,957,902,956,957,902,904,955,907,954,955,908,953,954,1000,1020,980,1022,913,911,763,783,913,1021,1022,745,809,814,761,762,965,812,988,1027,1026,909,906,989,1327,1328,594,1001,1033,1032,0,1,994,1033,1001,998,1034,998,999,1036,1034,1035,1038,1033,1034,1039,1032,1033,531,0,1032,1035,999,1041,1037,1035,1040,650,682,700,622,649,682,648,649,622,621,648,623,603,620,621,575,910,620,910,575,563,555,587,1192,573,1234,1235,997,573,1044,999,997,1045,1045,937,1046,565,566,1046,566,1003,1047,1040,1041,1046,1003,1031,1042,1043,1040,1047,1044,1235,1236,1045,1044,556,908,1048,952,991,1009,1011,780,1007,1009,736,1007,780,757,739,736,951,1049,739,1048,908,909,951,952,1048,1052,1051,1054,1050,909,1026,1056,1057,1053,1058,1055,1026,1055,1058,1059,1050,1055,1056,1049,951,1051,1051,1048,1050,1059,1060,1057,978,1062,1061,1023,1063,1062,977,1061,1064,1065,1064,1061,1066,1057,1060,1015,1008,1006,1017,1006,737,738,1019,1018,738,739,1049,717,1019,1068,1014,1068,1063,1068,1067,1069,1070,1062,1063,1066,1061,1062,1070,1053,1057,1069,1052,1053,1019,738,1067,1067,1049,1052,427,417,52,48,1307,1308,428,52,57,275,418,427,428,455,1073,455,428,429,594,567,581,581,931,1004,595,594,597,1013,597,1004,1013,1025,596,1076,1075,350,1077,1076,349,1078,1077,348,1079,1078,347,1080,1079,346,1081,1080,345,27,1082,1081,27,823,1083,1084,1083,823,1085,1084,804,1086,1085,803,1087,1086,820,1088,1087,826,1089,1088,841,1091,1090,730,1090,1092,732,1094,1093,751,1095,1096,775,1098,1097,845,862,752,749,870,871,776,728,776,871,876,877,863,875,882,731,877,876,733,731,882,883,1099,1094,750,1096,1091,729,843,1098,844,1097,1095,778,861,975,844,844,845,970,845,778,716,715,716,778,729,693,715,730,692,693,692,730,732,750,926,927,926,750,751,986,948,946,1093,1100,986,975,861,1088,1089,846,843,984,754,948,925,927,695,1092,1099,925,862,985,987,870,777,846,1097,1098,843,1095,1097,846,1096,1095,777,1091,1096,776,1090,1091,728,1092,1090,731,1099,1092,733,1094,1099,876,1093,1094,749,1100,1093,752,1103,1104,241,1104,1105,244,1106,1107,211,1109,1108,153,1110,1111,316,325,326,137,350,187,153,121,237,230,238,137,326,241,242,237,244,238,327,328,242,241,1112,1106,137,1108,1103,121,210,329,197,1111,1109,187,197,329,220,197,196,315,186,185,330,136,331,185,113,331,136,332,113,112,467,332,305,266,122,123,333,123,122,343,333,288,1107,1113,188,210,316,1075,466,266,265,1105,1112,238,287,538,341,325,211,188,316,187,350,1111,1110,197,1109,1111,330,1108,1109,185,1103,1108,331,1104,1103,113,1105,1104,332,1112,1105,467,1106,1112,265,1107,1106,123,1113,1107,333,550,551,138,439,438,472,471,472,551,436,439,441,1113,1114,287,279,436,198,441,439,471,1114,1113,343,1115,1114,198,539,538,442,440,442,538,549,550,174,1114,1115,440,470,471,550,1116,549,442,469,1115,441,549,1116,469,469,1116,440,1016,1010,1008,1071,1010,1016,754,984,983,986,1100,1101,984,1101,1102,983,1016,1015,992,987,985,1012,992,990,1071,1012,1011,1016,983,1102,992,1101,1100,1012,1102,1101,1117,1102,1012,317,324,180,158,168,1118,1118,320,524,205,203,324,525,324,203,525,1118,168,306,320,1118,324,525,319,791,800,799,855,854,830,800,815,835,919,918,748,835,815,816,815,981,832,918,919,800,831,832,981,783,786,785,911,913,787,784,787,913,912,911,788,912,789,920,854,855,856,1119,785,856,920,815,800,980,856,785,981,815,920,982,856,855,982,920,789,1119,789,788,1119,787,784,89,1322,1323,116,312,1124,313,89,1123,190,272,1128,271,179,1126,179,215,1130,225,190,1127,215,1072,1132,10,225,1131,143,522,1136,521,80,1134,522,271,1129,272,521,1137,80,313,1125,312,143,1135,97,434,1138,701,1342,1343,662,661,1143,810,811,1146,698,679,1148,679,678,1149,853,810,1145,678,10,1133,1072,853,1150,700,699,1152,967,966,1154,699,698,1147,811,967,1153,966,740,1144,661,700,1151,708,701,1139,721,708,1155,638,1158,1157,741,1159,1158,742,1160,1159,1161,1160,742,1162,1161,942,962,1163,1162,1164,1163,962,1165,1164,945,1166,1165,944,1167,1166,25,1168,1167,286,1169,1168,285,284,491,1170,1171,1170,491,1172,1171,283,297,93,1173,93,300,1174,300,352,1175,59,1179,1178,49,1180,1314,389,1181,1180,1182,1181,389,1183,1182,45,380,1184,1183,370,1185,1184,360,1186,1185,1187,1186,360,1188,1187,4,569,570,1189,570,585,1190,585,586,1191,1192,1191,586,1193,1192,588,563,564,1194,1335,589,1195,589,600,1196,1167,150,12,769,770,1164,12,769,1165,51,1222,1221,46,1223,1312,390,1224,1223,1225,1224,390,1226,1225,42,381,1227,1226,1228,1227,381,361,1229,1228,1230,1229,361,1231,1230,3,559,562,1232,1233,1232,562,571,574,1234,1235,1234,574,1236,1235,587,555,558,1237,1333,577,1238,577,580,1239,1174,1175,353,425,426,273,940,677,674,977,976,613,935,1005,720,939,674,1005,1014,934,720,1023,614,934,978,613,614,413,420,458,291,435,452,435,458,420,126,459,453,461,126,64,456,457,127,457,36,280,941,641,642,921,923,950,922,642,923,677,940,938,1262,1261,670,1263,1264,711,724,727,726,1261,1263,714,714,914,691,670,691,688,914,714,711,972,711,727,1264,1265,727,1202,668,671,713,1204,1203,712,1205,1204,770,1206,1205,641,941,974,973,974,669,941,1258,1259,1259,1262,669,979,1201,1200,668,1202,1201,922,1260,1258,1201,1259,1258,1262,1259,1201,1261,1262,1202,1263,1261,1203,1264,1263,1204,1265,1264,1205,449,354,302,1211,1212,479,87,269,450,354,450,269,451,413,414,1215,1216,490,489,447,260,1273,1272,1216,106,489,488,1216,1217,107,1272,1274,1217,35,11,725,119,120,446,1217,1218,150,35,446,120,1218,1208,12,727,1265,1266,726,1266,1267,769,1207,1206,1208,1207,769,1274,1275,1218,1275,1267,1208,1207,1266,1265,1267,1266,1207,261,86,1213,1214,1215,108,110,260,447,448,85,95,480,449,74,85,480,481,1212,1213,86,1269,1268,1212,1268,1270,1213,1270,1276,1214,1276,1273,1215,1268,1269,449,1270,1268,480,1276,1270,85,1273,1276,448,1272,1273,447,1274,1272,489,1275,1274,106,1267,1275,446,1028,1029,976,299,353,1210,1271,1269,1211,1269,1271,354,1221,425,274,1255,1250,413,1257,1255,451,1271,1257,450,56,1177,1178,1177,55,423,424,1221,1220,1220,274,277,353,53,1209,1210,1209,1257,1209,1279,1255,1279,1209,1219,1219,1209,53,56,1220,1219,1158,639,629,929,933,932,615,1004,931,921,1256,1260,1256,921,938,940,1242,1248,1199,629,639,1200,1258,1260,1196,1197,593,1239,1240,930,580,593,1240,930,936,933,936,1286,1284,1242,1284,1286,1199,1260,1256,1156,591,630,590,1290,1289,629,590,1156,1240,1241,936,1241,1198,1286,1198,590,629,1248,1286,1198,1241,1290,590,1197,1289,1290,1241,1240,593,1025,1013,1024,1292,1291,1030,1244,1245,976,933,1284,1283,1285,1246,1247,932,1283,1285,1293,1292,1024,1074,1004,615,1024,1013,1074,939,1243,1242,935,1246,1243,1246,935,934,1247,1246,614,1245,1247,613,1243,1283,1284,1246,1285,1283,1285,1293,612,1292,1293,1247,1291,1292,1245,64,1252,1251,1252,64,453,456,1251,1253,527,526,1073,1073,526,276,1294,1295,1251,1295,1296,1253,527,455,65,457,1253,1254,1296,1297,1254,273,418,419,1250,1249,420,418,275,276,1249,1252,452,1277,1278,1249,1252,1249,1278,274,273,412,1278,1277,412,1279,1277,1250,1277,1279,277,1294,1278,419,1295,1294,276,1296,1295,526,1297,1296,527,422,423,55,1282,1281,1177,353,1175,1176,1281,1282,53,1300,1299,657,665,666,656,686,704,703,657,685,703,636,654,655,702,708,721,606,611,592,591,1288,1287,591,628,637,635,655,611,656,628,1287,628,656,666,600,592,1197,611,1287,1288,1289,1288,591,592,1288,1289,1300,1287,611,1299,1300,655,431,430,397,432,431,77,1306,1305,397,92,396,78,421,422,69,1298,79,78,79,351,84,430,421,72,69,55,1280,351,79,54,352,54,1176,1281,1280,55,54,1280,1281,1298,1280,54,1298,1306,72,1305,1306,78,1308,1307,57,417,1309,1308,1310,1309,417,1311,1310,411,1312,1311,50,1313,1312,1222,1314,1313,51,1315,1314,1179,1316,1315,59,67,1317,1316,1318,1317,67,1319,1318,398,1320,1319,71,1321,1320,82,1322,1321,90,1323,1322,97,1121,1120,1324,1031,1003,1328,1329,1328,1003,565,1330,1329,557,1331,1330,1237,1332,1331,558,1333,1332,1194,1334,1333,564,1335,1334,564,576,1336,1337,1336,576,601,1338,1337,624,1339,1338,624,625,1340,651,1341,1340,662,1342,1341,1343,1342,662,1344,1343,1140,1344,1345,721,1144,740,722,685,1302,1301,710,686,1301,709,721,1345,710,723,704,710,722,740,1299,1302,685,654,636,663,684,663,664,702,709,687,684,1302,1299,687,1301,1302,1141,722,1345,1346,1345,722,709,1346,1301,116,1325,1326,103,434,433,1325,116,1122,1138,434,103,1303,1304,91,99,83,105,1304,99,104,104,99,310,105,83,396,1305,1303,77,433,432,91,83,1303,1305,1304,1303,83,103,1325,1324,1325,103,98,98,91,1304];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment