//  World Haplogroup & Haplo-I Subclade Predictor Beta v0.92c - April 25, 2008
//  Jim Cullen - Concept & JavaScript coding of Bootstrap WGD prediction algorithm.
//  Ken Nordtvedt - Research on modal haplotypes of population varieties within haplogroup 'I'

//  Generic Variables
var i,j,k,l,m,n;  //  Looping variables
var w,x,y,z,iy;  //  Generic numeric variables
var tmp,tmp2,tmp3;  //  Numeric temps
var rnd;  //  Random temp
var NUM = 0;  //  Number of non-blinded (usable) markers in the haplotype
var Mode = 0;  //  Haplogroup or I-Subclade mode
var Zn=0;  //  Mode indep array size
var Trials = 0;  //  Number of blinded bootstrap trials to perform
var Tol = 0.09;  //  Tolerance of WGD per marker
var TotPts = 0;  //  Total points across haplogroups or I-subclades
var Mrks = new Array(67);  //  User's entered haplotype, size 67
var Cnt = 0;  //  Number of selected markers in 1'st 3 panels
var Cnt2 = 0;  //  Number of selected markers in all four panels
var Cnts = 0;  //  Mode indep marker count
var MrkLst = new Array(67);  //  User's marker list index
var MrkTmp = new Array(67);  //  Temp array init to MrkLst at Cnt or Cnt2

var CMrks = new Array(67);  //  Array holding configurable markers
var CRpts = new Array(67);  //  Array holding custom-ordered marker repeat data
var CCnt = 0;  //  Size of the configurable marker list
var MrkStr = "";  //  User marker input string
var ValM = 0;

//  The following arrays must be large enough to hold all Haplogoups or all I-Subclades
var HpPts = new Array(90);  //  array
var SrtHi = new Array(90);  //  Sorting array - marker index
var SrtHs = new Array(90);  //  Sorting array - WGD scores

//  Raw GD pre-calculation array for haplogroup & subclade mode
// var Hgd = new Array(85);
// var Igd = new Array(56);
// for (i=0;i<85;i++){Hgd[i]= new Array(37);}
// for (i=0;i<56;i++){Igd[i]= new Array(67);}

var IStat = 0;  //  Haplo-'I' status
var tmp = 0.0; var tmp2 = 0.0;  //  Generic numeric holding variables
var hap = ""; var hap1=""; var hap2 = "";  //  Generic string holding variables
var msg1 = ""; var msg2 = "";  //  Generic string holding variables
var str=""; var str1=""; var str2="";
var xm=0; nm=0;

//  Y-STR Marker Names
var MrkNm = new Array("393","390","19","391","385a","385b","426","388","439","389i","392","389ii","458","459a","459b","455","454","447","437","448","449","464a","464b","464c","464d","460","H4","YCAIIa","YCAIIb","456","607","576","570","CDYa","CDYb","442","438","531","578","395a","395b","590","537","641","472","406","511","425","413a","413b","557","594","436","490","534","450","444","481","520","446","617","568","487","572","640","492","565");
//  Y-STR MIN Repeats
var MinR = new Array(6,14,7,4,5,6,7,4,4,9,4,24,12,3,2,4,3,13,12,11,20,7,7,7,7,7,7,11,17,1,1,1,1,1,15,1,6,8,7,12,12,6,8,7,5,7,7,8,14,14,12,8,8,8,11,6,8,17,16,8,9,8,10,8,8,9,9);
// Y-STR MAX Repeats
var MaxR = new Array(20,30,22,16,27,26,18,21,19,19,22,35,23,14,13,16,26,35,27,25,41,22,22,22,22,13,14,25,26,40,40,40,40,44,50,40,25,14,10,18,19,9,13,11,9,14,13,15,25,27,22,13,16,16,20,10,24,31,24,24,16,14,15,13,14,15,14);
//  Marker Utilization Array - puts all control here; 576,570,CDYa,b automatic. 1=Used, 0=Not Used
var Util = new Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
//  Mutation Rate-based Weights
var MutF = new Array(1,0.6,0.8,0.6,0.6,0.6,1.5,1.4,0.6,0.7,0.8,0.7,0.5,0.9,0.9,1.4,1.6,0.6,0.8,0.7,0.5,0.6,0.6,0.6,0.6,0.7,0.6,0.9,0.9,0.5,0.6,0.5,0.5,0.5,0.5,0.7,1.1,1.7,2.4,1.6,1.6,2.8,1.3,2.8,3.5,0.9,0.9,2.4,0.7,0.7,0.5,1.5,1.8,1.9,0.4,2.1,0.6,0.5,0.8,0.6,1.2,1.5,1,0.8,1.3,2.1,1.2);
//  Score Assignment Array - Collapsed Haplo-I, Haplo-Q Subhaplogroups or clusters
var Asgn = new Array(0,0,0,0,0,0,0,7,7,7,7,7,7,13,14,15,15,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86);
//  Definitions of the major Haplogroups and select Sub-Haplogroups
var Hn = 87;  //  REMEMBER TO UPDATE ASGN ARRAY & GD PRECALC ARRAY ALSO!!!
var ITop = 17; //  Highest Haplo Mode clade in 'I'
var HpGrp = new Array(Hn);
var HNams = new Array("I-M253","I-M253-AS(gen)","I-M253-AS5","I-M253-AS9b","I-M253-T2","I-M253-N","I-M253-uN2","I-P37.2","I-P37.2*-Dinaric","I-P37.2*-IslesA","I-P37.2*-Isles","I-P37.2*-Western","I-M26-Sardinian","I-S24","Ix-S23","I-S31*","I-S31*-B","I-S31*-C","G , G2","G , G5","A&B","E3a","E3b","E3b-M35*","E3b-M78","E3b-V12","E3b-V13","E3b-V22","E3b-M183","E3b-M34","H","J","J1-M267","J2-M172","J2-M410-1b","J2-M67","J2-M92","J2-M102","J2-M205","F","Fx","K2 (T)","L , L1","L , L2","L , L3","N","N3a1-Finn","N-E.Europe","N-Germanic","N-Baltic","O","Q-M242-Main","Q-Cluster1","Q-M242-Group1","Q-M242-Group2","Q-M242-Group3,4","Q-M242-Group5","Q-M3","R1a","R1a-Norse","R1a1-English","R1a-Jewish","R1a-Polish","R1b","R1b-Frisian","R1b-S21-Scottish","R1b-S21-Scottish2","R1b-IrishIII","R1b-N.Irish","R1b-S.Irish","R1b-M222 (NW Irish)","R1b-Irish/Continental","R1b-E.Europe","R1b-C.Europe","R1b-North/South 1","R1b-North/South 2","R1b-S29-Frisian2","R1b-Frisian3","R1b-Frisian4","R1b-Ub","R1b-S26","R1b-S21*","R1b-S28","R1b-Leinster","R2-M124-Cluster-A","R2-M124-Cluster-B","R2-M124-Cluster-C");
//  Modal Haplotypes of Haplogroups & Subhaplogroups & select subclades
//  I1a-M253
HpGrp[0] = new Array(13,22,14,10,13,14,11,14,11,12,11,28,15,8,9,8,11,23,16,20,28,12,14,15,16,10,10,19,21,14,14,0,0,0,0,12,10);
//  I1a-M253-AS(gen)
HpGrp[1] = new Array(13,22,14,10,13,14,11,14,11,12,11,28,15,8,9,8,11,23,16,20,28,12,14,15,16,10,11,19,21,14,14,0,0,0,0,12,10);
//  I1a-M253-AS5
HpGrp[2] = new Array(14,22,14,10,13,13,11,16,11,12,11,28,15,8,9,8,11,22,16,20,28,12,14,15,15,10,10,19,21,14,14,0,0,0,0,12,10);
//  I1a-M253-AS9b
HpGrp[3] = new Array(13,22,16,10,13,14,11,14,11,12,11,28,16,8,9,8,11,23,16,20,29.5,12,14,15,15,10,11,19,21,14,14,0,0,0,0,11,10);
//  I1a-M253-T2
HpGrp[4] = new Array(13,23,14,10,13,14,11,14,11,12,11,28,15,7,9,8,11,23,16,20,28,12,14,15,16,10,10,19,21,14,14,0,0,0,0,12,10);
//  I1a-M253-N
HpGrp[5] = new Array(13,23,14,10,14,14,11,14,11,12,11,28,15,8,9,8,11,23,16,20,28,12,14,15,16,10,10,19,21,14,14,0,0,0,0,12,10);
//  I1a-M253-uN2
HpGrp[6] = new Array(13,23,14,10,14,15,11,14,11,12,11,28,15,8,9,8,11,23,16,20,29,11,14,14,16,10,10,19,21,14,14,0,0,0,0,12,10);
//  I1b-P37.2
HpGrp[7] = new Array(13,24,15,11,12,15,11,13,12,14,11,30,18,8,10,11,11,25,15,20,29,12,14,14,15,10,10,21,21,14,13,0,0,0,0,12,10);
//  I1b-P37.2-Dinaric
HpGrp[8] = new Array(13,24,16,11,14,15,11,13,13,13,11,31,17,8,10,11,11,25,15,20,32,12,14,15,15,10,10,21,21,15,12,0,0,0,0,11,10);
//  I1b-P37.2-IslesA
HpGrp[9] = new Array(13,23.5,15,11,12,16,11,13,11,13,11,30,18,8,10,11,12,24,14,20,30,12,14,14,15,10,10,19,21,17,13,0,0,0,0,12,10);
//  I1b-P37.2-Isles
HpGrp[10] = new Array(13,24,15,11,12,15.5,11,13,11,14,11,30,17,8,10,11,11,25,25,20,28,12,12,14,14,10,10,21,21,17.5,13,0,0,0,0,12,10);
//  I1b-P37.2-Western
HpGrp[11] = new Array(13,23,15,10,12,15,11,15,12,14,11,30,18.5,8,9,11,11,26,14,18,29,11,14,14,15,10,10,21,21,14,10,0,0,0,0,12,10);
//  I1b-M26-Sardinian
HpGrp[12] = new Array(13,23,16,10,12,12,11,13,12,13,11,28,17,8,10,11,11,25,15,21,30,11,14,14,15,10,11,11,21,14,12,0,0,0,0,12,10);
//  I1c
HpGrp[13] = new Array(15,23,15,10,15,15,11,13,11,13,12,30,15,8,10,11,11,25,14,20,27,11,14,14,15,11,10,19,21,14,14,0,0,0,0,12,10);
//  I(x)
HpGrp[14] = new Array(13,25,16,11,13,16,11,13,11,12,11,28,16,8,10,10,12,25,15,19,28,14,14,15,15,10,9,19,19,14,14,0,0,0,0,12,10);
//  I-S31*-A
HpGrp[15] = new Array(13,23,15,10,12,14,11,13,12,12,11,29,17,10,10,11,11,25,15,21,29,11,15,16,16,9,10,19,21,16,14,0,0,0,0,12,10);
//  I-S31*-B
HpGrp[16] = new Array(14,24,15,10,12,13,11,13,11,13,11,30,19,8,8,11,11,24,15,20,32,11,15,16,16,11,10,19,21,17,13,0,0,0,0,12,10);
//  I-S31*-C
HpGrp[17] = new Array(12,22,15.5,10,12,14,11,13,11,12,11,29,17,8,10,11,11,26,15,20,26,11,15,16,16,10,10,21,21,15,13,0,0,0,0,11,10);
//  G2
HpGrp[18] = new Array(14,22,15,10,14,14,11,13,11,12,11,29,16,9,9,11,11,23,16,21,30,12,13,13,14,10,11,20,20,15,13,0,0,0,0,11,10);
//  G5
HpGrp[19] = new Array(13,23,15,10,13,16,11,12,11,14,11,32,18,8,9,11,11,24,16,21,28,13,14,15,15,10,11,20,20,17,16,0,0,0,0,12,10);
//  A&B
HpGrp[20] = new Array(13,21,15,11,11,12,12,11,12,13,11,29,16,8,9,9,11,23,15,21,34,10,11,15,16,10,11,21,21,14,14,0,0,0,0,11,10);
//  E3a
HpGrp[21] = new Array(13,21,15,10,16,17,11,12,12,13,11,32,16,8,10,11,11,24,14,21,31,13,16,16,18,11,11,19,19,15,14,0,0,0,0,11,11);
//  E3b
HpGrp[22] = new Array(13,24,13,10,16,18,11,12,12,13,11,30,17,9,9,11,11,26,14,20,32,14,16,16,17,9,11,19,22,15,13,0,0,0,0,12,10);
//  E3b-M35*
HpGrp[23] = new Array(13,24,13,10,16,17,11,12,12,14,11,30,16,9,9,11,11,26,14,20,33,16,16,17,17,11,11,21,22,16,12,0,0,0,0,12,10);
//  E3b-M78
HpGrp[24] = new Array(13,24,13,10,16,18,11,12,12,13,11,30,15,9,9,11,11,26,14,20,32,14,16,16,17,9,11,19,21,17,12,0,0,0,0,11,10);
//  E3b-V12
HpGrp[25] = new Array(13,23,13,10,16,16,11,12,12,13,11,30,17,9,9,11,11,25,14,20,34,13,15,15,17,10,11,19,22,16,12,0,0,0,0,13,10);
//  E3b-V13
HpGrp[26] = new Array(13,24,13,10,16,18,11,12,12,13,11,30,15,9,9,11,11,26,14,20,32,14,16,17,17,9,11,19,21,17,12,0,0,0,0,11,10);
//  E3b-V22
HpGrp[27] = new Array(13,24,14,10,17,19,11,12,12,13,11,30,16,9,9,11,11,25,14,20,33,14,16,16,18,11,11,19,22,15,12,0,0,0,0,11,10);
//  E3b-M183
HpGrp[28] = new Array(13,24,13,9,13,14,11,12,10,14,11,30,18,9,9,11,12,23,14,20,32,14,16,16,17,11,11,19,22,16,13,0,0,0,0,12,10);
//  E3b-M34
HpGrp[29] = new Array(13,24,13,10,17,18,11,12,12,13,11,31,16,9,9,11,11,26,14,20,32,14,15,16,17,10,10,19,22,15,13,0,0,0,0,13,10);
//  H
HpGrp[30] = new Array(13,22,15,10,11,17,11,12,11,13,11,29,17,9,9,11,11,25,14,19,31,12,12,14,15,11,11,19,21,16,11,0,0,0,0,12,9);
//  J
HpGrp[31] = new Array(12,23,14,10,13,17,11,15,11,13,11,29,16,8,9,11,11,26,15,20,29,13,13,15,16,10,10,19,22,15,14,0,0,0,0,11,9);
//  J-M267
HpGrp[32] = new Array(12,23,14,10,13,18,11,16,11,13,11,30,17,8,9,11,11,26,14,20,26,12,14,16,17,11,10,22,22,15,14,0,0,0,0,12,10);
//  J-M172
HpGrp[33] = new Array(12,23,14,10,13,17,11,15,12,13,11,29,16,8,9,11,11,26,15,21,29,12,13,15,16,10,10,19,22,15,14,0,0,0,0,11,9);
//  J-M410-1b
HpGrp[34] = new Array(12,25,14,10,14,16,11,15,11,14,11,30,16,9,9,11,11,25,16,20,30,13,15,15,18,10,10,21,22,15,13,0,0,0,0,10,10);
//  J-M67
HpGrp[35] = new Array(12,23,14,10,13,16,11,15,11,13,11,30,15,9,9,11,11,26,15,20,29,12,13,15,16,10,10,19,22,15,13,0,0,0,0,12,9);
//  J-M92
HpGrp[36] = new Array(12,22,14,10,14,15,11,15,12,14,11,31,15,9,9,11,11,26,15,20,29,13,13,15,16,10,10,19,22,15,12,0,0,0,0,12,9);
//  J-M102
HpGrp[37]= new Array(12,24,15,10,14,17,11,15,12,12,11,28,16,8,9,11,11,28,16,19,29,13,15,15,18,11,10,19,20,13,14,0,0,0,0,11,9);
//  J-M205
HpGrp[38] = new Array(12,24,15,10,16,18,11,15,12,12,11,28,17,8,9,11,12,25,14,19,30,14,15,15,17,11,10,19,20,14,15,17,17,35,41,11,9);
//  F
HpGrp[39] = new Array(14,23,14,10,13,13,11,12,13,14,11,31,17,8,9,11,11,23,15,19,30,12,12,15,16,10,10,17,17,15,13,0,0,0,0,11,11);
//  Fx
HpGrp[40] = new Array(14,22,16,10,11,13,11,12,12,14,11,31,16,9,9,11,11,22,16,21,31,12,12,12,13,10,10,20,20,15,15,0,0,0,0,11,10);
//  K2
HpGrp[41] = new Array(13,23,13,10,14,16,11,12,11,14,13,30,18,9,9,11,13,26,15,19,34,11,13,16,16,10,10,23,24,16,14,0,0,0,0,11,9);
//  L1
HpGrp[42]= new Array(11,22,14,10,13,18,11,12,13,12,14,28,15,9,9,11,12,23,15,19,28,14,14,15,16,11,11,19,19,16,14,0,0,0,0,11,10);
//  L2
HpGrp[43] = new Array(12,23,14,10,16,18,11,12,11,14,15,30,15,9,9,11,12,25,16,19,32,14,15,15,17,10,10,19,21,16,14,0,0,0,0,11,10);
//  L3
HpGrp[44] = new Array(12,22,15,10,9,16,11,12,12,13,14,29,19,9,9,11,12,25,16,19,26,15,15,16,16,11,9,19,21,15,14,0,0,0,0,11,10);
//  N
HpGrp[45] = new Array(14,23,14,11,11,13,11,12,10,14,14,30,17,9,9,11,12,25,14,19,28,14,14,15,15,11,11,18,20,14,15,0,0,0,0,12,10);
//  N3a1-Finn
HpGrp[46] = new Array(14,24,14,11,11,13,11,12,10,14,14,30,17,10,10,11,12,25,14,19,30,13,13,14,14,11,11,18,20,14,15,0,0,0,0,12,10);
//  N-E.Eur
HpGrp[47] = new Array(14,22,13,11,11,13,11,12,10,14,14,30,17,9,9,11,12,26,14,19,29,14,14,15,15,11,11,18,20,14,15,0,0,0,0,14,10);
//  N-Germ
HpGrp[48] = new Array(14,23,15,11,11,14,11,12,10,13,14,29,17,9,9,11,12,25,14,19,28,14,14,15,15,11,11,18,20,15,15,0,0,0,0,14,10);
//  N-Baltic
HpGrp[49] = new Array(14,24,14,11,11,13,11,12,10,14,14,30,17,10,10,11,12,25,14,19,30,12,12,14,14,11,11,18,20,14,15,0,0,0,0,12,10);
//  O
HpGrp[50] = new Array(12,23,15,10,12,13,11,12,12,12,13,28,17,9,9,11,11,24,14,20,31,12,13,15,15,11,12,19,23,14,15,0,0,0,0,11,10);
//  Q-M242-Main
HpGrp[51] = new Array(13,25,13,10,13,16,12,12,12,13,14,30,15,9,9,11,11,25,14,19,30,14,14,14,17,11,10,19,23,17,14,18,17,33,36,11,11);
//  Q-Cluster1
HpGrp[52] = new Array(13,23,13,10,14,16,12,12,12,13,14,29,17,9,9,11,11,26,14,19,29,14,14,16,16,10,11,19,23,15,14,18,17,33,38,11,11);
//  Q-M242-Group1
HpGrp[53] = new Array(13,23,13,10,13,21,12,12,12,12,14,28,18,9,10,11,12,27,15,19,29,14,15,15,16,10,11,19,22,17,15,17,20,33,36,12,12);
//  Q-M242-Group2
HpGrp[54] = new Array(13,23,13,10,13,17,12,12,12,12,12,29,16,9,9,11,11,25,14,19,30,13,14,14,15,10,10,19,20,16,13,19,17,33,36,11,11);
//  Q-M242-Group3,4
HpGrp[55] = new Array(13,22,13,10,14,16,12,12,12,13,15,29,17,9,9,11,11,25,14,19,29,14,15,15,16,10,9,19,19,15,14,17,16,33,38,12,11);
//  Q-M242-Group5
HpGrp[56] = new Array(13,24,14,10,14,16,12,13,12,13,14,31,15,8,9,11,11,27,13,19,29,14,14,16,16,10,10,19,23,15,14,19,16,32,41,11,11);
//  Q-M3
HpGrp[57] = new Array(13,23,13,10,15,17,12,12,12,13,14,31,14,9,9,11,10,26,14,21,31,13,19,19,20,10,11,19,23,15,16,18,20,36,38,12,11);
//  R1a
HpGrp[58] = new Array(13,25,15,10,11,14,12,12,10,13,11,30,15,9,10,11,11,23,14,20,32,12,15,15,16,11,11,19,23,16,16,0,0,0,0,12,11);
//  R1a-Norse
HpGrp[59] = new Array(13,25,15,11,11,14,12,12,10,14,11,31,15,9,10,11,11,23,14,20,31,12,15,15,16,11,12,19,21,16,16,0,0,0,0,12,11);
//  R1a1-English
HpGrp[60] = new Array(13,25,15,10,11,14,12,10,10,13,11,30,15,9,10,11,11,25,14,19,32,12,14,14,17,11,11,19,23,15,16,0,0,0,0,13,11);
//  R1a-Jewish
HpGrp[61] = new Array(13,25,16,10,11,14,12,12,10,13,11,30,14,9,10,11,11,24,14,20,31,12,12,15,16,11,11,19,23,14,16,0,0,0,0,14,11);
//  R1a1-Polish
HpGrp[62] = new Array(13,25,17,10,10,14,12,12,10,13,11,30,16,9,10,11,11,23,14,20,32,12,15,16,16,11,11,19,23,16,17,0,0,0,0,13,11);
//  R1b-M343
HpGrp[63] = new Array(13,24,14,11,11,14,12,12,12,13,13,29,17,9,10,11,11,25,15,19,29,15,15,17,17,11,11,19,23,15,15,0,0,0,0,12,12);
//  R1b-S21*-Frisian
HpGrp[64] = new Array(13,23,14,11,11,14,12,12,12,13,13,29,17,9,10,11,11,24,15,19,29,15,16,17,18,11,11,19,23,16,15,0,0,0,0,13,12);
//  R1b-S21*-Scot
HpGrp[65] = new Array(13,24,14,10,11,14,12,12,12,13,13,30,18,9,10,11,11,25,15,19,30,15,15,17,17,11,13,19,24,15,15,0,0,0,0,12,12);
//  R1b-S21*-Scot2
HpGrp[66] = new Array(13,24,14,10,11,15,12,12,12,13,13,30,20,9,10,11,11,25,15,19,30,15,15,16,17,11,12,19,24,15,15,0,0,0,0,12,12);
//  R1b-IrishIII
HpGrp[67] = new Array(13,24,14,11,11,14,12,12,11,13,13,29,17,8,9,11,11,25,15,19,29,13,13,15,17,11,11,19,23,15,15,0,0,0,0,12,12);
//  R1b-North Irish
HpGrp[68] = new Array(13,25,14,11,11,13,12,12,12,13,14,29,17,9,10,11,11,25,15,18,30,15,16,16,17,11,11,19,23,17,16,0,0,0,0,12,12);
//  R1b-South Irish
HpGrp[69] = new Array(13,24,14,10,11,15,12,12,11,13,13,29,17,9,10,11,11,24,15,19,29,15,15,17,17,11,11,19,23,15,15,0,0,0,0,13,12);
//  R1b-M222-NWIrish
HpGrp[70] = new Array(13,25,14,11,11,13,12,12,12,13,14,29,17,9,10,11,11,25,15,18,30,15,16,16,17,11,11,19,23,17,16,0,0,0,0,12,12);
//  R1b-Irish Cont
HpGrp[71] = new Array(13,24,14,10,12,15,13,12,12,13,13,29,17,9,10,11,11,25,15,19,29,15,15,16,18,10.5,11,19,23,15,15,0,0,0,0,12,12);
//  R1b-E Eur
HpGrp[72] = new Array(12,24,14,11,11,14,12,12,12,13,13,30,16,9,10,11,11,25,15,19,29,14,15,16,18,11,11,19,23,15,15,0,0,0,0,12,12);
//  R1b-C.Eur
HpGrp[73] = new Array(13,24,15,11,11,14,12,12,11,13,13,29,17,9,9,11,11,25,15,17,28,15,15,17,17,11,11,19,23,15,15,0,0,0,0,12,12);
//  R1b-N.S. 1
HpGrp[74] = new Array(13,24,14,11,11,14,12,12,12,13,13,29,17,9,10,11,11,25,14,18,29,15,15,16,17,11,10,19,23,16,15,0,0,0,0,12,12);
//  R1b-N.S. 2
HpGrp[75] = new Array(13,24,14,11,11,14,12,12,12,14,13,30,17,9,10,11,11,25,14,18,29,15,15,17,17,10,10,19,23,16,15,0,0,0,0,12,12);
//  R1b-S29-Frisian2
HpGrp[76] = new Array(13,23,14,11,11,15,12,12,12,13,13,29,17,9,10,11,11,25,14,19,29,15,15,17,18,11,11,19,22,16,14,16,17,37,40,12,12);
//  R1b-Frisian3
HpGrp[77] = new Array(13,23,14,11,11,14,12,12,11,13,13,29,17,9,10,11,11,24,15,19,29,15,16,17,18,11,10,19,23,16,15,0,0,0,0,13,12);
//  R1b-Frisian4
HpGrp[78] = new Array(13,23,14,11,11,14,12,12,11,13,13,28,16,9,10,11,11,25,15,19,29,15,15,16,18,11,12,21,23,15,15,0,0,0,0,12,12);
//  R1b-Ub
HpGrp[79] = new Array(13,24,14,10,11,14,12,12,12,13,13,29,17,9,9,11,11,25,15,19,30,15,15,16,17,11,11,19,22,15,15,0,0,0,0,12,12);
//  R1b-S26
HpGrp[80] = new Array(13,24,14,11,11,14,12,12,12,13,13,29,17,9,9,11,11,25,15,19,29,15,16,16,17,10,11,19,23,16,16,17,17,37,38,12,12);
//  R1b-S21*
HpGrp[81] = new Array(13,23,14,11,11,14,12,12,12,13,13,29,18,9,10,11,11,24,15,19,29,15,16,17,18,11,11,19,23,17,15,17,17,37,38,13,12);
//  R1b-S28
HpGrp[82] = new Array(13,24,14,11,11,14,12,12,12,13,13,29,17,9,10,11,11,25,15,19,30,15,15,16,17,11,11,19,23,16,15,19,17,36,38,12,12);
//  R1b-Leinster: B9NW4
HpGrp[83] = new Array(13,24,14,11,11,14,12,12,12,14,13,30,17,9,10,11,11,25,15,18,30,15,15,17,17,11,11,19,23,16,15,18,18,39,40,11,12);
//  R2-M124-ClusterA-YCAIIa,b=16,21 temp
HpGrp[84] = new Array(14,23,14,10,13,21,12,12,11,15,10,30,15,9,9,11,11,27,16,19,32,12,12,14,14,11,11,16,21,15,14,0,0,0,0,11,11);
//  R2-M124-ClusterB-YCAIIa,b=20,20
HpGrp[85] = new Array(14,23,14,10,13,20,12,12,11,14,10,29,16,9,9,11,11,25,14,19,33,12,12,15,16,10,10,20,20,15,15,0,0,0,0,12,11);
//  R2-M124-ClusterC-DYS459a,b=8,9
HpGrp[86] = new Array(14,23,14,10,13,20,12,12,10,13,10,31,17,8,9,11,11,28,16,19,33,12,13,14,16,10,10,19,21,15,15,0,0,0,0,12,11);



var Sn = 57;  //  REMEMBER TO UPDATE GD PRECALC ARRAY ALSO!!!
var ISub = new Array(Sn);  //  Haplo-I Subclade Modal Array
var SNams = new Array("I-M253-ASgen","I-M253-AS1","I-M253-AS1H","I-M253-AS8","I-M253-AS2","I-M253-AS3","I-M253-AS4","I-M253-AS5","I-M253-AS6","I-M253-AS7E","I-M253-AS9a","I-M253-AS10","I-M253-AS13","I-M253-1313","I-M253-EE","I-M253-P","I-M253-T2","I-M253-ML","I-L22-Bothnia","I-M253-T13","I-L22-N","I-M253-ND","I-L22-NuN-14","I-L22-uN1","I-L22-uN2","I-L22-uN2a","I-M253-uN-1315","I-M423-Din-S","I-M423-Din-N","I-M423-Isles-A","I-M423-Isles-B","I-I-M423-Isles-C","I-M423-Isles-Ca","I-M423-Isles-D","I-P37.2*-West","I-P37.2*-French","I-M26*-A","I-M26-B","I-M26-C","I-M223-Root1","I-M223-Root2","I-M223-Root3","I-M223-Cont1","I-M223-Cont1a","I-M223-Cont2a","I-M223-Cont2b","I-M223-Cont2c","I-P78-Cont3a","I-M284-Isles/Sc","I-M284-Isles/E","I-S23-A","I-S23-A-RecLOH","I-S23-B","I-S23-C","I-S31*-A","I-S31*-B","I-S31*-C");

//  I1a-AS(gen)
ISub[0] = new Array(13,22,14,10,13,14,11,14,11,12,11,28,15,8,9,8,11,23,16,20,28,12,14,15,16,10,11,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,23,25,15,10,12,12,16,8,13,25,20,13,13,11,12,11,11,12,11);


//  I1a-AS1
ISub[1] = new Array(13,22,14,10,13,14,11,14,11,12,11,28,15,8,9,8,11,22,16,20,26,12,14,15,15,11,9,19,21,15,15,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,22,25,15,10,12,12,16,8,13,26,20,13,13,11,12,11,11,12,11);
//  I1a-AS1H
ISub[2] = new Array(13,22,14,10,13,13,11,14,12,12,11,27,15,8,9,8,11,22,16,20,26,12,14,15,15,11,9,19,21,15,15,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,22,25,15,10,12,12,16,8,13,25,20,13,13,11,12,11,11,12,11);
//  I1a-AS8
ISub[3] = new Array(13,22,14,10,13,14,11,14,11,12,11,28,15,8,9,8,11,22,16,20,26,12,14,16,17,11,9,19,21,15,15,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,10,12,22,24,15,10,12,12,15,8,13.5,26,20,13,13,11,12,11,11,12,11);


//  I1a-AS2
ISub[4] = new Array(13,22,14,10,13,14,11,16,11,12,11,28,15,8,9,8,11,23,16,20,29,12,14,15,16,11,10,19,21,15,14,0,0,0,0,12,10,11,8,15,15,8,11,11,8,9,9,12,23,25,15,10,12,13,16,8,13,25,20,14,13,11,12,11,11,12,11);
//  I1a-AS3
ISub[5] = new Array(13,22,14,10,13,14,11,14,11,12,11,28,14,8,9,8,11,24,16,20,30,12,15,16,16,10,10,19,21,14,14,0,0,0,0,13,10,11,8,15,15,8,11,10,8,9,9,12,22,25,16,10,12,12,14,8,13,24,21,13,13,11,12,11,11,12,11);
//  I1a-AS4
ISub[6] = new Array(13,22,15,10,13,14,11,14,11,12,11,28,15,8,9,8,11,23,16,20,29,12,13,14,15,9,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,23,25,15,10,12,12,16,8,13,25,20,14,13,11,12,11,11,12,11);
//  I1a-AS5
ISub[7] = new Array(14,22,14,10,13,13,11,16,11,12,11,28,15,8,9,8,11,22,16,20,28,12,14,15,15,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,22,25,15,10,12,12,15,8,13,25,20,13,13,11,12,10,11,12,11);
//  I1a-AS6
ISub[8] = new Array(14,22,14,10,13,13.5,11,14,11,12,11,28,15,8,9,8,11,22,16,20,28,14,14,15,15,10,10,19,21,14,13,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,22,25,15,10,12,12,16,8,13,25,20,13,13,11,12,11,11,12,11);
//  I1a-AS7E
ISub[9] = new Array(13,22,14,10,14,15,11,14,11,12,12,28,16,8,9,8,11,23,16,20,28,12,14,16,16,9,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,23,23,16,10,12,12,17,8,13,25,20,13,13,11,12,11,11,12,11);
//  I1a-AS9a
ISub[10] = new Array(13,22,15,10,13,14,11,14,11,12,11,28,16,8,9,8,11,23,16,20,29,12,14,15,15,10,10,19,21,14,14,0,0,0,0,11,10,11,8,15,15,8,11,10,8,9,9,12,22,24,15,10,12,12,16,8,13,25,20,13,13,11,12,11,11,12,11);
//  I1a-AS10
ISub[11] = new Array(13,22,14,10,13,14,11,14,11,13,11,29,15,8,9,8,11,23,16,20,28,12,14,15,16,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,22,25,15,10,12,12,16,8,13,25,20,14,13,11,13,10,11,12,11);
//  I1a-AS13
ISub[12] = new Array(13,22,15,10,13,14,11,14,11,12,11,28.5,14,8,9,8,11,23,16,21,29.5,12,14,15,16,10,10,19,21,13,14,0,0,0,0,12,10,11,8,15,15,8,12,10,8,9,9,12,22,25,16,10,12,12,16,8,13,26,20,13,13,11,12,11,11,12,11);
//  I1a-1313
ISub[13] = new Array(13,22,14,10,13,14,11,14,11,12,11,29,15,8,9,8,11,23,16,20,28,12,14,15,16,11,10,19,21,14,13,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,23,25,16,10,12,12,16,8,13,25,20,13,13,11,13,11,11,12,11);


//  I1a-EE
ISub[14] = new Array(13,22,14,10,13,14,10,14,11,12,11,29,15,8,9,8,11,22,16,20,28,12,14,14,15,10.5,10,19,21,14,14,0,0,0,0,13,10,11,8,15,15,8,11,10,8,9,9,12,23,25,15,10,12,12,17,8,14,25,20,13,13,11,12,11,11,12,11);


//  I1a-P
ISub[15] = new Array(13,22,14,11,14,14,11,14,11,12,12,28,15,8,9,8,11,24,16,20,28,12,14,15,16,10,11,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,23,25,16,10,12,12,17,8,13,25,20,14,13,11,12,11,11,12,11);

//  I1a-T2
ISub[16] = new Array(13,23,14,10,13,14,11,14,11,12,11,28,15,7,9,8,11,23,16,20,28,12,14,15,16,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,12,10,8,8,9,12,23,25,16,10,12,12,16,8,13,27,20,13,12,11,12,11,11,12,11);
//  I1a-ML
ISub[17] = new Array(13,22,14,10,12,14,11,14,11,12,11,28,15,8,9,8,11,24,16,20,29,12,14,15,16,10,10,19,21,14,14,0,0,0,0,11,10,11,8,14,15,8,11,10,8,9,10,12,23,25,15,10,12,12,16,8,13,25,20,13,13,11,12,11,11,12,11);


//  I1a-Bothnia
ISub[18] = new Array(13,23,14,10,14,14,11,14,10,12,11,28,15,8,9,8,11,23,16,20,28.5,12,14,15,15,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,9,12,21,24,15,10,12,12,17,8,13,25,20,13,13,11,12,11,11,12,11);
//  I1a-T13
ISub[19] = new Array(13,23,14,10,13,14,11,14,11,12,11,28,15,8,9,8,11,23,16,20,28.5,12,14,15,16,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,10,12,22,25,15,10,12,12,16,8,13,25,20,13,13,11,12,11,11,12,11);


//  I1a-N
ISub[20] = new Array(13,23,14,10,14,14,11,14,11,12,11,28,15,8,9,8,11,23,16,20,28,12,14,15,16,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,10,12,23,25,15,10,12,12,16,8,13,25,20,13,13,11,12,11,11,12,11);
//  I1a-N-D
ISub[21] = new Array(13,23,14,10,14,14,11,14,12,12,11,28,15,8,9,8,11,23,16,20,28,12,14,15,16,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,10,12,23,25,15,10,12,12,16,8,13,25,19,13,13,11,12,11,11,12,11);
//  I1a-NuN-14
ISub[22] = new Array(13,23,14,10,14,15,11,14,11,12,11,29,15,8,9,8,11,23,16,20,28,12,14,14,16,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,10,12,23,15,15,10,12,12,17,8,12,26,20,13,14,11,12,11,11,12,11);


//  I1a-uN1
ISub[23] = new Array(13,23,14,10,14,15,11,14,11,12,11,28,15,8,9,8,11,23,16,20,28,12,14,15,16,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,10,12,23,25,15,10,12,12,17.5,8,13,25.5,20,13,13,11,12,11,11,12,11);
//  I1a-uN2
ISub[24] = new Array(13,23,14,10,14,15,11,14,11,12,11,28,15,8,9,8,11,23,16,20,29,11,14,14,16,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,10,12,23,24,15,10,12,12,16,8,13,25,20,13,13,11,12,11,11,12,11);
//  I1a-uN2a
ISub[25] = new Array(13,23,14,10,14,15,11,14,11,12,11,28,15,8,9,8,11,23,16,20,29,11,14,14,16,10,10,19,21,14,14,0,0,0,0,12,9,11,8,15,15,8,11,10,8,9,10,12,23,25,15,10,12,12,16,8,13,26,20,13,13,11,12,11,11,12,11);
//  I1a-uN-13-15
ISub[26] = new Array(13,23,14,10,13,15,11,14,11.5,12,11,28,16,8,9,8,11,22,16,20,29,12,14,14,16,10,10,19,21,14,14,0,0,0,0,12,10,11,8,15,15,8,11,10,8,9,10,12,23,25,15,10,12,12,17,8,13,24,20,12.5,13,11,12,11,11,12,11);


//  I-M423-Din-S
ISub[27] = new Array(13,24,16,11,14,15,11,13,13,13,11,31,17,8,10,11,11,25,15,19,30,12,14,15,15,10,10,21,21,15,12,0,0,0,0,11,10,11,8,15,15,7,12,10,8,11,9,12,22,22,16,10,12,12,12,7,10,30,21,13,14,10,13,11,11,12,9);
//  I-M423-Din-N
ISub[28] = new Array(13,24,16,11,14,15,11,13,13,13,11,31,17,8,10,11,11,25,15,20,32,12,14,15,15,10,10,21,21,15,12,0,0,0,0,11,10,11,8,15,15,7,12,10,8,11,9,12,22,22,16,10,12,12,12,7,10,30,21,13,14,10,13,11,11,12,9);


//  I-M423-Isles-A
ISub[29] = new Array(13,23.5,15,11,12,16,11,13,11,13,11,30,18,8,10,11,12,24,14,20,30,12,14,14,15,10,10,19,21,17,13,0,0,0,0,12,10,11,8,15,16,7,11,10,8,13,11,12,22,22,17,10,12,12,15,8,12,24,20,13,12,10,13,10,11,12,11);
//  I-M423-Isles-B
ISub[30] = new Array(13,24,16,11,12,15,11,13,11,13,11,30,17,8,9.5,11,11,25,15,20,28,12,12,14,15,10,10,21,21,17,13,0,0,0,0,11,10,11,8,15,16,7,12,10,8,12,10,12,22,22,15,10,12,12,15,8,11,26,20,13,12,10,13,10,11,12,11);
//  I-M423-Isles-C
ISub[31] = new Array(13,24,15,11,12,16,11,13,11,14,12,32,17,8,10,11,11,25,15,20,28,11,12,14,14,10,10,21,21,18,13,0,0,0,0,13,10,11,8,15,16,7,11,10,8,13,10,12,22,23,15,10,12,12,17,8,10,22,20,14,12,10,13,11,11,12,11);
//  I-M423-Isles-Ca
ISub[32] = new Array(13,24,15,11,12,16,11,13,11,14,11,30,17,8,10,11,11,25,15,20,28,12,12,14,14,10,10,21,21,18,13,0,0,0,0,13,10,11,8,15,16,7,11,10,8,13,10,12,22,23,15,10,12,12,17,8,10,22,20,13,12,10,13,11,11,12,11);
//  I-M423-Isles-D
ISub[33] = new Array(13,24,15,10,11,15,11,13,10,14,11,31,17,8,10,11,11,25,115,20,29,12,12,14,14,10,10,21,21,17,13,0,0,0,0,12,10,11,8,15,16,7,11,10,8,12,10,12,22,23,16,10,12,12,15,8,11,22,20,13,12,10,13,10,11,12,11);


//  I-P37.2*-West
ISub[34] = new Array(13,23,15,10,12,15,11,15,12,14,11,30,18.5,8,9,11,11,26,14,18,29,11,14,14,15,10,10,21,21,14,10,0,0,0,0,12,10,11,8,16,17,8,11,10,8,12,10,12,21,21,17,10,12,12,16,8,14,27,20,11,14,12,13,10,11,12,11);


//  I-P37.2*-French
ISub[35] = new Array(13,23,15,11,11,14,11,9,12,14,11,30,17,9,9,11,12,24,16,20,32,12,14,14,17,10,10,21,21,14,13,0,0,0,0,12.5,10,11,8,15,16,8,8,10,8,10,9,12,20,21,17,10,12,12,14,8,12,26,19,13,15,11,15,11,11,12,11);


//  I1b1a-A
ISub[36] = new Array(13,23,16,10,12,12,11,13,11,13,11,28,17,8,10,11,11,25,15,21,29,11,14,14,15,10.5,11,11,21,14,12,0,0,0,0,13,10,11,8,16,16,8,11.5,10,8,11,7,12,21,21,15,11,12,12,13,8,12,22,20,13,13,10,13,11,12,12,11);
//  I1b1a-B  DYS447 25*27 to 26
ISub[37] = new Array(13,23,16,10,12,12,11,13,12,14,11,29,17,8,10,11,11,26,15,21,30,11,14,14,15,10.5,11,11,21,14,12,0,0,0,0,12,10,11,8,16,16,8,11.5,10,8,11,7,12,21,21,15,11,12,12,13,8,12,22,20,13,13,10,13,11,12,12,11);
//  I1b1a-C
ISub[38] = new Array(13,23,16,10.5,12,13,11,13,12,13,11,28,17,8,9,11,11,24,15,20,29.5,11,14,14,15,10,11,11,21,14,12,0,0,0,0,12,10,11,8,16,16,8,11.5,10,8,11,7,12,21,21,15,11,12,12,13,8,12,22,20,13,13,10,13,11,12,12,11);


//  I1b2a-Root1
ISub[39] = new Array(14,23,15,10,15,15,11,13,11,14,12,31,15,8,10,11,11,25.5,15,20,28,11,15,15,15,11,10,19,19,17,16,0,0,0,0,12,10,11,8,15,16,8,11,10,8,11,9,12,21,22,15,11,12,12,16,9,13,26,21,9,13,12,13,11,12,13,11);
//  I1b2a-Root2  DYS449 26;29 to 27.5
ISub[40] = new Array(14,23,16,11,15,16,11,13,12,13,12,29,15,8,10,11,11,26,15,20,27.5,11,13,14,15,10,10,19,19,16.5,18,0,0,0,0,12,10,12,8,15,16,8,11,10,8,11,9,12,21,22,15,11,12,12,16,9,14,25,22,9,13,12,13,11,12,13,11);
//  I1b2a-Root3
ISub[41] = new Array(14,23,16,10,15,15,11,13,11,13,12,29,15,8,10,11,11,26,15,20,28.5,11,13,15,15,11,10,19,19,16,18,0,0,0,0,12,8,11,8,15,16,8,11,10,8,11,9,12,21,21,15,11,12,12,17,9,13,25,22,8,13,12,14,11,12,13,11);


//  I1b2a-Cont1
ISub[42] = new Array(14.5,23,15,10,15,15,11,13,11,14,12,31.5,15,8,10,11,11,25,14,20,27,11,14,14,15,11,9,19,21,14,14,0,0,0,0,12,10,11,8,15,16,8,11,10,8,10,9,12,21,22,15,11,12,12,13,9,13,27,20,11,13,12,12,11,12,12,11);
//  I1b2a-Cont1a
ISub[43] = new Array(15,23,15,10,15,15,11,13,12,13,12,31,16,8,10,11,11,24,14,20,28,11,12,14,15,11,9,19,21,14,14,0,0,0,0,12,10,11,8,15,16,8,11,10,8,10,9,12,22,22,15,11,12,12,13.5,9,13,27,20,11,13,12,12,11,12,12,11);
//  I1b2a-Cont2a
ISub[44] = new Array(14.5,23,15,10,15,15,11,13,11,13.5,12,31.5,15,8,10,11,11,25,14,20,27,11,14,14,15,11,10,19,21,15,14,0,0,0,0,12,10,11,8,15,16,8,11,10,8,10,9,12,21,22,15,11,12,12,14,9,14,27,20,11,13,12,12,11,12,12,11);
//  I1b2a-Cont2b
ISub[45] = new Array(14,23,15,10,14,15,11,13,11,13,12,31,15,8,10,11,11,25,14,20,27,11,14,14,15,11,10,19,21,15,14,0,0,0,0,12,10,11,8.5,15,16,8,11,10,8,10,9,12,21,22,15,12,12,12,14,9,14,27,20,11,13,12,12,11,13,12,11);
//  I1b2a-Cont2c
ISub[46] = new Array(14,23,14,10,14,16,11,13,11,14,12,31,16,8,10,11,11,24,14,20,29,11,11,14,15,11,10,21,21,14,15,0,0,0,0,12,10,11,8,15,16,8,12,10,8,9,9,12,22,22,16,11,12,12,16,9,13,24,21,10,13,12,13,11,12,12,11);


//  I1b2a3-Cont3a
ISub[47] = new Array(15,23,15,10,16,17,11,13,11,13,12,29,16,8,9,11,11,24,14,20,27,14,15,16,16,11,10,19,21,14,16,0,0,0,0,12,10,11,8,15,15,8,11,10,8,10,9,12,21,22,15,11,12,12,13,9,13,27,20,10,13,12,13,11,12,12,11);


//  I1b2a1-Isles/Sc
ISub[48] = new Array(15,24,15,10,15,16,11,13,11,13,12,29,16,8,9,11,11,26,15,20,28,11,11,14,15,11,10,19,21,14,14,0,0,0,0,12,10,11,8,15,16,8,12,10,8,10,9,-1,19,21,16,11,12,12,18,9,14,25,20,10,13,11,13,11,11,12,11);
//  I1b2a1-Isles/E
ISub[49] = new Array(14.5,23,15.5,10,14,14,11,13,10,13,12,30,16,8,10,11,11,25.5,15,20,30,11,15,15,15,11,10.5,19,21,14,14,0,0,0,0,12,10,11,8,15,16,8,11.5,10,8,10,9,-1,19,22,16,11,12,12,18,9,13.5,25,20,10,13,13,13,11,11,12,11);

//  I1b2*-A
ISub[50] = new Array(13,25,16,11,13,16,11,13,11,12,11,28,16,8,10,10,12,24,15,19,28,14,14,15,15,10,9,19,19,14,14,0,0,0,0,11,10,11,8,15,16,8,11,10,8,11,9,12,21,22,15,11,12,12,16,8,13,23,21,11,13,12,14,11,12,12,11);
//  I1b2*-A-RecLOH
ISub[51] = new Array(13,25,16,11,13,16,11,13,11,12,11,28,16,10,10,10,12,24,15,19,28,14,14,14,14,10,9,19,19,14,14,0,0,0,0,11,10,11,8,15,16,8,11,10,8,11,9,12,21,22,15,11,12,12,16,8,13,23,21,11,13,12,14,11,12,12,11);
//  I1b2*-B
ISub[52] = new Array(13,24,16,11,13,16,11,13,11,12,11,28,16,8,10,10,12,25,15,21,28,14,14,15,15,10,9,19,19,14,14,0,0,0,0,12,10,11,8,15,16,8,11,10,8,11,9,12,21,22,15,11,12,12,14,8,13,23,21,11,13,12,14,11,12,12,11);
//  I1b2*-C
ISub[53] = new Array(13,25,15,11,13,16,11,13,11,12,11,28,16,8,10,10,12,25,15,20,28,14,14,15,15,10,9,19,19,14,14,0,0,0,0,12,10,11,8,15,16,8,11,10,8,11,9,12,21,22,15,11,12,12,15,8,13,23,21,11,13,12,14,11,12,12,11);

//  I-S31*-A
ISub[54] = new Array(13,23,15,11,12,14,11,13,13,12,11,29,18,10,10,11,11,25,15,21,30,11,15,16,16,9.5,10,19,19,17,14,0,0,0,0,12,10,11,8,16,16,8,11,11,8,10,9,12,20,21,15,11,12,13,16,8,12,25,20,11,13,11,13,11,12,12,11);
//  I-S31*-B
ISub[55] = new Array(14,24,15,10,12,13,11,13,11,13,11,30,19,8,8,11,11,24,15,20,32,11,15,16,16,11,10,19,21,17,13,0,0,0,0,12,10,12,8,16,16,8,12,10,8,10,9,12,21,21,16,11,12,13,14,8,13,25,20,12,13,11,13,11,12,12,11);
//  I-S31*-C
ISub[56] = new Array(12,22,15.5,10,12,14,11,13,11,12,11,29,17,8,10,11,11,26,15,20,26,11,15,16,16,10,10,21,21,15,13,0,0,0,0,11,10,11,8,16,16,8,11,10,8,10,10,12,20,21,14,11,12,13,16,8,12,25,20,10,13,11,13,11,12,12,11);
