UNPKG

htmol

Version:

NEXT-GENERATION MOLECULAR DYNAMICS WEB VISUALIZATION

516 lines (496 loc) 21.9 kB
/* This file is part of HTMoL: Copyright (C) 2014 Dr. Mauricio Carrillo-Tripp http://tripplab.com Developers: v1.0 Leonardo Alvarez-Rivera, Francisco Javier Becerra-Toledo, Adan Vega-Ramirez v2.0 Javier Garcia-Vieyra v3.0 Omar Israel Lara-Ramirez, Eduardo González-Zavala, Emmanuel Quijas-Valades, Julio Cesar González-Vázquez v3.5 Leonardo Alvarez-Rivera */ var identify=false,center=false,distance=false,nameatom=false,numberatom=false,detailsatom=false,angle=false,alfabeta=false; var AXIS; var ALFA={ 'GLY':[-16, -18, -18, -29, -41, -51, -67, -85, -105, -64, -42, -37, -30, -33, -26, -21, -17], 'ALA':[18, 20, 23, 25, 32, 40, 45, 45, 62, 58, 51, 45, 48, 43, 37, 30, 32], 'VAL':[1, 1, 5, 9, 0, -2, -9, 10, -5, 4, -5, -3, -8, -11, -1, 0, -7, -7], 'LEU':[17, 19, 22, 28, 23, 29, 37, 37, 51, 48, 54, 59, 41, 36, 34, 28, 15], 'ILE':[-21, -19, -15, -5, 0, 2, 10, 9, 17, 12, 8, 12, 6, 6, 16, 18, 9], 'SER':[-23, -16, -18, -13, -20, -25, -27, -31, -51, -41, -47, -43, -35, -34, -38, -34, -36], 'THR':[-13, -21, -16, -16, -14, -11, -7, -14, -28, -30, -33, -30, -20, -17, -18, -12, -8], 'ASP':[16, 20, 18, 14, 23, 22, 19, 26, -1, -5, -26, -35, -21, -6, -3, -1, 1], 'GLU':[19, 24, 31, 35, 39, 36, 36, 45, 52, 40, 14, -17, -13, -14, -10, -7, -2], 'ASN':[2, 3, -2, -6, -6, -9, -16, -22, -44, -29, -24, -13, 0, -2, -4, -5, 3], 'GLN':[7, 9, 6, 0, 7, 0, -3, 10, 23, 35, 29, 23, 16, 10, 0, 0, 1], 'LYS':[25, 24, 22, 18, 14, 16, 16, 25, 28, 37, 44, 54, 49, 44, 39, 44, 47], 'HIS':[14, 0, -7, -6, -14, -6, -2, 1, 2, 21, 24, 25, 27, 25, 19, 25, 31], 'ARG':[1, -5, -19, -25, -16, -16, -7, -4, -1, -1, 3, 6, 0, 0, -6, 8, 0], 'PHE':[0, 7, 17, 23, 23, 18, 29, 26, 32, 40, 34, 28, 12, 3, 15, 6, 4], 'TYR':[-8, -9, -10, -18, -13, -13, -31, -26, -15, -24, -18, -23, -28, -19, 16, -18, -23], 'TRP':[8, 18, 11, 9, 2, 26, 37, 29, 30, 17, -1, 12, 13, 11, 31, 13, 2], 'CYS':[-77, 71, -74, -74, -67, -60, -71, -61, -47, -46, -56, -58, -67, -70, -71, -80, -81], 'MET':[2, -12, -9, -1, 0, 21, 33, 25, 34, 41, 39, 44, 29, 15, 4, -2, -11], 'PRO':[0, -6, -7, -6, -15, -22, -35, -47, -68, -179, -95, -72, -53, -37, -28, -22, -11] }; var Sheet={ 'GLY':[19, 27, 27, 37, 44, 40, 36, -8, -36, -13, 17, 33, 44, 41, 30, 23, 26], 'ALA':[-11, -7, -6, -10, -12, -25, -32, -33, -37, -33, -24, -21, -15, -19, -24, -24, -26], 'VAL':[-12, -12, -13, -19, -10, 12, 48, 64, 81, 73, 42, 9, -7, -16, -16, -14, -4], 'LEU':[-24, -21, -32, -30, -40, -32, -3, 11, 23, 21, -4, -27, -37, -36, -38, -27, -30], 'ILE':[-21, -23, -27, 3, 8, 16, 38, 63, 67, 58, 25, 9, -16, -21, -22, -24, 11], 'SER':[39, 32, 39, 34, 24, 17, 2, -6, -15, -4, 24, 38, 33, 35, 38, 31, 24], 'THR':[16, 5, 19, 18, 14, 15, 15, 36, 33, 21, 5, 14, 11, 29, 32, 40, 37], 'ASP':[-7, -11, 0, -5, -2, -26, -56, -88, -105, -64, -29, -10, 9, 0, 4, -7, -16], 'GLU':[-17, -12, -18, -30, -21, -16, -32, -33, -44, -50, -42, -27, -16, -4, -13, -6, -3], 'ASN':[0, 10, 17, 20, 7, 1, -33, -83, -65, -18, -4, 7, 15, 20, 24, 25, 19], 'GLN':[12, 11, 9, 5, 0, -3, -5, -4, -8, -45, -37,-27, -16, -5, 0, 14, 19], 'LYS':[-20, -19, -8, -9, -17, -12, -41, -33, -32, -46, -48, -36, -37, -51, -43, -44, -43], 'HIS':[9, 4, -8, -2, -8, 0, -16, -19, -16, -5, 5, 9, 8, -4, 0, 12, 26], 'ARG':[4, 12, 11, 1, 15, 11, 11, 24, 10, 6, 25, 5, -7, -9, 0, 4, 1], 'PHE':[-30, -31, -39, -38, -34, -28, 10, 32, 39, 32, 13, 0, 2, -12, -18, -41, -13], 'TYR':[16, 14, 22, 18, 22, 18, 37, 41, 48, 30, 12, 5, 13, 22, 26, 20, 24], 'TRP':[-21, -26, -50, -39, 12, 28, 39, 46, 43, 22, 0, 10, 7, 8, 33, 27], 'CYS':[9, 19, -9, -40, -28, -29, -19, 17, 43, 38, 25, 3, -8, -5, 1, 8, -28], 'MET':[-18, -39, -58, -69, -34, 9, 12, 15, 32, -4, -25, -45, -52, -39, -61, -46, -36], 'PRO':[14, 6, 0, 15, 9, -8, -40, -71, -100, -78, -34, -6, -6, 2, 5, 7, 14] }; var Turns={ 'GLY':[0, -3, -3, -3, -1, 8, 21, 65, 95, 56, 20, 4, -9, -4, 0, 1, -4], 'ALA':[-7, -11, -15, -14, -19, -19, -19, -19, -33, -31, -30, -26, -33, -25, -16, -9, -11], 'VAL':[7, 10, 13, 13, 9, 0, -27, -45, -70, -53, -28, 1, 15, 13, 11, 16, 10], 'LEU':[0, -1, 0, -4, 4, -4, -29, -40, -62, -58, -45, -36, -13, -9, -5, -6, 6], 'ILE':[31, 31, 30, 3, -4, -11, -37, -58, -68, -55, -24, -15, 6, 9, 1, 0, 0], 'SER':[-9, -9, -13, -12, 0, 9, 20, 30, 49, 35, 18, 4, 3, 0, 1, 4, 10 ], 'THR':[0, 14, 0, 1, 2, 0, -3, -13, -1, 9, 22, 14, 8, -6, -7, -19, -19], 'ASP':[-7, -8, -14, -7, -17, -2, 16, 23, 53, 41, 40, 34, 11, 6, 1, 6, 9], 'GLU':[-4, -12, -14, -11, -20, -19, -11, -19, -20, -5, 13, 31, 22, 15, 17, 11, 5], 'LYS':[-7, -8, -12, -8, 0, -4, 11, 0, -3, -5, -10, -26, -20, -9, -7, -12, -15], 'HIS':[-17, -1, 12, 7, 18, 6, 13, 11, 9, -13, -23, -27, -28, -17, -16, -12, -9], 'ARG':[-2, -2, 8, 20, 3, 6, 0, -12, -4, -1, -20, -7, 7, 6, -8, 0], 'PHE':[20, 13, 8, 3, 1, 3, -32, -46, -57, -60, -38, -23, -11, 6, 0, 20, 5], 'TYR':[-3, -1, -6, 2, -4, -1, -1, -8, -22, -1, 7, 15, 14, 0, -4, 1, 1], 'TRP':[7, 1, 20, 16, 20, -31, -53, -55, -61, -47, -12, -9, -16, -13, -32, -34, -20], 'CYS':[48, 37, 60, 79, 68, 64, 64, 32, 3, 6, 23, 41, 54, 54, 50, 50, 76], 'MET':[10, 34, 41, 40, 21, -23, -37, -31, -53, -33, -18, -11, 5, 11, 30, 30, 32], 'PRO':[-8, 1, 6, -4, 7, 23, 52, 78, 105, 158, 88, 56, 44, 27, 20, 13, 0 ] }; var LstAminoacid=[ "GLY", "ALA", "VAL", "LEU", "ILE", "SER", "THR", "GLU", "ASN", "GLN", "LYS", "HIS", "ARG", "PHE", "TYR", "TRP", "CYS", "MET", "ASP", "PRO" ] var LstAtoms=[ "C", "H", "O", "PB", "TI", "N", "S", "P" ] var LstViews={ "Front":{name:"FrontView"}, "Left":{name:"LeftView"}, "Right":{name:"RightView"}, "Up":{name:"UpView"}, "Down":{name:"DownView"}, "Back":{name:"BackView"} } function AsignaColor(atom) { // switch (atom.Element) { case 'H': atom.ColorName="white"; atom.ColorRGB=[1.0, 1.0, 1.0, 1.0]; //Es blanco break; case 'C': atom.ColorName="cyan"; atom.ColorRGB=[0.25,0.75,0.75,1.0]; //Es cyan break; case 'O': atom.ColorName="red"; atom.ColorRGB=[1.0, 0.0, 0.0, 1.0]; //Es rojo break; case 'N': atom.ColorName="blue"; atom.ColorRGB=[0.0, 0.0, 1.0, 1.0]; //Es azul break; case 'S': atom.ColorName="yellow"; atom.ColorRGB=[1.0, 1.0, 0.0, 1.0]; //es amarillo break; default: atom.ColorName="default"; atom.ColorRGB=[1.0, 1.0, 1.0, 1.0]; //Es blanco } //console.log("HTMoL3: assigned color is "+atom.ColorName+" for atom "+atom.NameAtom+" of type "+atom.Element); } var LstColors=[ "yellow", "red", "orange", "blue", "green", "purple", "pink", "gray", "brown", "white" ]; //lista de colores var white= [1.0, 1.0, 1.0, 1.0]; var red= [1.0, 0.0, 0.0, 1.0]; var green= [0.0, 1.0, 0.0, 1.0]; var blue= [0.0, 1.0, 0.0, 1.0]; var yellow= [1.0, 1.0, 0.0, 1.0]; var AtomsBonds={ 'N':['CA','CD','H1','H2','H3'], 'CA':['C','CB','HA'], 'CG':['CD','CB','CD1','CD2','OD','HG'], 'NE':['CD','CZ'], 'C':['O'], 'CA':['N','C','CB'], 'CB':['CA'], 'CG1':['CB','CD1'], 'CG1A':['CB'], 'CG1B':['CB'], 'CG2':['CB'], 'CD':['CG'], 'CD':['CE'], 'CD1':['CE1'], 'CD2':['CE2'], 'CD1':['CG1','CG'], 'CD2':['CG'], 'CE3':['CD2','CZ3'], 'CE':['CD'], 'CE1':['ND1','CD1','CZ'], 'CE2':['CD2','CZ'], 'CG2':['CB'], 'CZ':['CE1','CE2'], 'CZ':['NE'], 'CZ2':['CE2','CH2'], 'CZ3':['CH2'], 'H':['N'], 'HA':['CA'], 'HA1':['CA'], 'HA2':['CA'], 'HA3':['CA'], 'HB':['CB'], 'HB1':['CB'], 'HB2':['CB'], 'HB3':['CB'], 'HG':['SG','CG','OG'], 'HG1':['CG','OG1'], 'HG2':['CG','OG2'], 'HG3':['CG','OG3'], 'HD1':['CD','CD1'], 'HD2':['CD','CD2'], 'HD3':['CD','CD3'], 'HE':['NE'], 'HE1':['CE','CE1','NE1'], 'HE2':['CE','CE2','NE2'], 'HE3':['CE','CE3','NE3'], 'HH11':['NH1'], 'HH12':['NH1'], 'HH21':['NH2'], 'HH22':['NH2'], 'HB':['CB'], 'HB1':['CB'], 'HB2':['CB'], 'HB3':['CB'], 'HG':['SG','OG'], 'HG1':['CG','OG1'], 'HG2':['CG','OG2'], 'HG3':['CG&','OG3'], 'HG11':['CG1'], 'HG12':['CG1'], 'HG13':['CG1'], 'HG14':['CG1'], 'HG21':['CG2'], 'HG22':['CG2'], 'HG23':['CG2'], 'HG24':['CG2'], 'HG11':['CG1'], 'HG12':['CG1'], 'HG13':['CG1'], 'HG21':['CG2'], 'HG22':['CG2'], 'HG23':['CG2'], 'HG31':['CG3'], 'HG32':['CG3'], 'HG33':['CG3'], 'HD1':['CD'], 'HD2':['CD'], 'HD21':['ND2'], 'HD22':['ND2'], 'HD3':['CD'], 'HD11':['CD1','ND1'], 'HD12':['CD1','ND1'], 'HD13':['CD1','ND1'], 'HD14':['CD1','ND1'], 'HD21':['CD2','ND2'], 'HD22':['CD2','ND2'], 'HD23':['CD2','ND2'], 'HD24':['CD2','ND2'], 'HE':['NE'], 'HE21':['NE2'], 'HE22':['NE2'], 'HH':['OH'], 'HH1':['CH1'], 'HH2':['CH2'], 'HH2':['CH3'], 'HH11':['NH1'], 'HH12':['NH1'], 'HH21':['NH2'], 'HH22':['NH2'], 'HZ':['CZ'], 'HZ1':['NZ','CZ1'], 'HZ2':['NZ','CZ2'], 'HZ3':['NZ','CZ3'], 'HOP3':['OP3'], 'H1\'':['C1\''], 'H1\'\'':['C1\''], 'H1\'\'\'':['C1\''], 'H2\'':['C2\''], 'H2\'\'':['C2\''], 'H2\'\'\'':['C2\''], 'H3\'':['C3\''], 'H3\'\'':['C3\''], 'H3\'\'\'':['C3\''], 'H4\'':['C4\''], 'H4\'\'':['C4\''], 'H4\'\'\'':['C4\''], 'H5\'':['C5\''], 'H5\'\'':['C5\''], 'H5\'\'\'':['C5\''], 'H6\'':['C6\''], 'H6\'\'':['C6\''], 'H6\'\'\'':['C6\''], 'H7\'':['C7\''], 'H7\'\'':['C7\''], 'H7\'\'\'':['C7\''], 'H8\'':['C8\''], 'H8\'\'':['C8\''], 'H8\'\'\'':['C8\''], 'H1':['C1','N1'], 'H11':['C1','N1'], 'H12':['C1','N1'], 'H13':['C1','N1'], 'H21':['C2','N2'], 'H22':['C2','N2'], 'H23':['C2','N2'], 'H31':['C3','N3'], 'H32':['C3','N3'], 'H33':['C3','N3'], 'H41':['C4','N4'], 'H42':['C4','N4'], 'H43':['C4','N4'], 'H51':['C5','N5'], 'H52':['C5','N5'], 'H53':['C5','N5'], 'H61':['C6','N6'], 'H62':['C6','N6'], 'H63':['C6','N6'], 'H71':['C7','N7'], 'H72':['C7','N7'], 'H73':['C7','N7'], 'H81':['C8','N8'], 'H82':['C8','N8'], 'H83':['C8','N8'], 'H2':['C2','N2'], 'H3':['C3','N3'], 'H4':['C4','N4'], 'H5':['C5','N5'], 'H6':['C6','N6'], 'H7':['C7','N7'], 'H8':['C8','N8'], 'HO2\'':['O2\''], 'HO2\'\'':['O2\''], 'HO2\'\'\'':['O2\''], 'OD1':['CG'], 'ND1':['CG','CE1'], 'ND2':['CG','CE2'], 'ND1':['CG'], 'ND2':['CG'], 'NE1':['CD','CE2','CD1'], 'NE2':['CD','CE1','CD2'], 'NE':['CD','CD'], 'NE2':['CE1','CD2'], 'NH1':['CZ'], 'NH2':['CZ'], 'NH1':['CZ'], 'NH2':['CZ'], 'NZ':['CE'], 'O':['C'], 'OH':['CZ'], 'OD1':['CG'], 'OD2':['CG'], 'OXT':['C','HO'], 'OE1':['CD'], 'OE2':['CD'], 'OG':['CB'], 'OG1':['CB'], 'SG':['CB'], 'SD':['CE','CG'], 'P':['OP1','OP2','OP3','O5\''], 'C5\'':['C4\'','O5\''], 'O4\'':['C4\'','C1\''], 'C3\'':['C4\'','O3\'','C2\''], 'C2\'':['O2\'','C1\''], 'N9':['C1\'','C4','C8'], 'N7':['C8','C5'], 'C5':['C4','C6'], 'N6':['C6','C6\''], 'N5':['C5','C5\''], 'N4':['C4','C4\'','C1','C2','C3','C5'], 'N3':['C4','C2','C3','C3\''], 'N2':['C2','C2\''], 'N1':['C1','C2','C6','C1\'','C39'], 'O1':['C1','H1','HO1'], 'O2':['C2'], 'O3':['C3'], 'O4':['C4'], 'O5':['C5'], //Aqui empiezan lo enlaces del CLR(Cholesterol) y Todos los enlaces de Carbono 'C':['O','OXT','CA'], 'C1':['C2','C10','H11','H12'], 'C2':['C3','H21','H22'], 'C3':['C4','O1','H3','O5'], 'C4':['C5','H41','H42'], 'C5':['C6','C10'], 'C6':['C7','H6','O7'], 'C7':['C8','H71','H72'], 'C8':['C9','C14','H8'], 'C9':['C10','C11','H9'], 'C10':['C19','C11'], 'C11':['C12','H111','H112'], 'C12':['C13','H121','H122','011','C1','C23'], 'C13':['C14','C17','C18','O14','C32','C11'], 'C14':['C15','H14'], 'C15':['C16','H151','H152','O14','O16','C17'], 'C16':['C17','H161','H162'], 'C17':['C20','H17'], 'C18':['H181','H182','H183','C17','C19'], 'C19':['H191','H192','H193'], 'C20':['C21','C22','H20','C19'], 'C21':['H211','H212','H213'], 'C22':['C23','H221','H222','C21','C24'], 'C23':['C24','H231','H232'], 'C24':['C25','H241','H242'], 'C25':['C26','C27','H25'], 'C26':['H261','H262','H263'], 'C27':['H271','H272','H273','C26','C28'], 'C28':['C35'], 'C29':['C28','C30'], 'C30':['C33'], 'C31':['C30','C32'], 'C32':['O33'], 'C34':['O33','O35','C36','C45','C23'], 'C36':['C8'], 'C37':['C36','C38'], 'C39':['C40','C38'], 'C41':['C40','C42'], 'C43':['C42','C44'], 'C45':['C44','C46'], 'C47':['C46','C48'], 'C49':['C50','C48'], 'C58':['C59','C45'], 'C59':['C60','C53'], 'C61':['C60','C2'], //Aqui Empiezan los enlaces de AMB(L-2-AMINO-4-METHOXY-CIS-BUT-3-ENOIC ACID) 'CB':['CG','CA','HB'], 'OD':['CE'], 'CE':['HE3','HE2','HE1'], //Aqui empiezan los enlaces de POP(PYROPHOSPHATE 2- ) 'P1':['O1','O2','O3','O'], 'P2':['O4','O5','O6'], 'O':['P2'], 'O2':['HO2'], 'O5':['HO5','HAG'], //Aqui Empiezan Los Enlaces de POPC(1-palmitoyl-2-oleoylphosphatidylcholine) 'P8':['O7','O9','O10','O11'], 'CA1':['C31','CA2'], //Aqui empiezan los enlaces de AMB?? 'HAJ':['N1'], 'HAK':['N1'], 'HAL':['N1'], 'HAZ':['O16'], 'O16':['C40'], 'O17':['C41','C37'], 'HAA':['O15'], 'O15':['C38'], 'O14':['C37','C11'], 'O7':['C9','C5'], 'O12':['C36'], 'O13':['C36'], 'HAH':['O6'], 'O6':['C5'], 'O4':['C31','C1'], 'O9':['C1'], 'HAI':['O8'], 'O8':['C7'], 'HAF':['O22'], 'O22':['C61'], 'HAE':['O21'], 'O21':['C60'], 'HAD':['O19'], 'O19':['C45'], 'HAC':['O10'], 'O10':['C23'], 'HAB':['O11'], 'O11':['C29','C12'] } var indicesSphere= [ 0,17,1,17,18,1,1,18,2,18,19,2,2,19,3,19,20,3,3,20,4,20,21,4,4,21,5,21,22,5,5,22,6,22,23,6,6,23,7,23,24,7,7,24,8,24,25,8,8,25,9,25,26,9,9,26,10,26,27,10,10,27,11,27,28,11,11, 28,12,28,29,12,12,29,13,29,30,13,13,30,14,30,31,14,14,31,15,31,32,15,15,32,16,32,33,16,17,34,18,34,35,18,18,35,19,35,36,19,19,36,20,36,37,20,20,37,21,37,38,21,21,38,22,38,39, 22,22,39,23,39,40,23,23,40,24,40,41,24,24,41,25,41,42,25,25,42,26,42,43,26,26,43,27,43,44,27,27,44,28,44,45,28,28,45,29,45,46,29,29,46,30,46,47,30,30,47,31,47,48,31,31,48,32, 48,49,32,32,49,33,49,50,33,34,51,35,51,52,35,35,52,36,52,53,36,36,53,37,53,54,37,37,54,38,54,55,38,38,55,39,55,56,39,39,56,40,56,57,40,40,57,41,57,58,41,41,58,42,58,59,42,42, 59,43,59,60,43,43,60,44,60,61,44,44,61,45,61,62,45,45,62,46,62,63,46,46,63,47,63,64,47,47,64,48,64,65,48,48,65,49,65,66,49,49,66,50,66,67,50,51,68,52,68,69,52,52,69,53,69,70, 53,53,70,54,70,71,54,54,71,55,71,72,55,55,72,56,72,73,56,56,73,57,73,74,57,57,74,58,74,75,58,58,75,59,75,76,59,59,76,60,76,77,60,60,77,61,77,78,61,61,78,62,78,79,62,62,79,63, 79,80,63,63,80,64,80,81,64,64,81,65,81,82,65,65,82,66,82,83,66,66,83,67,83,84,67,68,85,69,85,86,69,69,86,70,86,87,70,70,87,71,87,88,71,71,88,72,88,89,72,72,89,73,89,90,73,73, 90,74,90,91,74,74,91,75,91,92,75,75,92,76,92,93,76,76,93,77,93,94,77,77,94,78,94,95,78,78,95,79,95,96,79,79,96,80,96,97,80,80,97,81,97,98,81,81,98,82,98,99,82,82,99,83,99,100, 83,83,100,84,100,101,84,85,102,86,102,103,86,86,103,87,103,104,87,87,104,88,104,105,88,88,105,89,105,106,89,89,106,90,106,107,90,90,107,91,107,108,91,91,108,92,108,109,92,92, 109,93,109,110,93,93,110,94,110,111,94,94,111,95,111,112,95,95,112,96,112,113,96,96,113,97,113,114,97,97,114,98,114,115,98,98,115,99,115,116,99,99,116,100,116,117,100,100,117, 101,117,118,101,102,119,103,119,120,103,103,120,104,120,121,104,104,121,105,121,122,105,105,122,106,122,123,106,106,123,107,123,124,107,107,124,108,124,125,108,108,125,109,125, 126,109,109,126,110,126,127,110,110,127,111,127,128,111,111,128,112,128,129,112,112,129,113,129,130,113,113,130,114,130,131,114,114,131,115,131,132,115,115,132,116,132,133,116, 116,133,117,133,134,117,117,134,118,134,135,118,119,136,120,136,137,120,120,137,121,137,138,121,121,138,122,138,139,122,122,139,123,139,140,123,123,140,124,140,141,124,124,141, 125,141,142,125,125,142,126,142,143,126,126,143,127,143,144,127,127,144,128,144,145,128,128,145,129,145,146,129,129,146,130,146,147,130,130,147,131,147,148,131,131,148,132,148, 149,132,132,149,133,149,150,133,133,150,134,150,151,134,134,151,135,151,152,135,136,153,137,153,154,137,137,154,138,154,155,138,138,155,139,155,156,139,139,156,140,156,157,140, 140,157,141,157,158,141,141,158,142,158,159,142,142,159,143,159,160,143,143,160,144,160,161,144,144,161,145,161,162,145,145,162,146,162,163,146,146,163,147,163,164,147,147,164, 148,164,165,148,148,165,149,165,166,149,149,166,150,166,167,150,150,167,151,167,168,151,151,168,152,168,169,152,153,170,154,170,171,154,154,171,155,171,172,155,155,172,156,172, 173,156,156,173,157,173,174,157,157,174,158,174,175,158,158,175,159,175,176,159,159,176,160,176,177,160,160,177,161,177,178,161,161,178,162,178,179,162,162,179,163,179,180,163, 163,180,164,180,181,164,164,181,165,181,182,165,165,182,166,182,183,166,166,183,167,183,184,167,167,184,168,184,185,168,168,185,169,185,186,169,170,187,171,187,188,171,171,188, 172,188,189,172,172,189,173,189,190,173,173,190,174,190,191,174,174,191,175,191,192,175,175,192,176,192,193,176,176,193,177,193,194,177,177,194,178,194,195,178,178,195,179,195, 196,179,179,196,180,196,197,180,180,197,181,197,198,181,181,198,182,198,199,182,182,199,183,199,200,183,183,200,184,200,201,184,184,201,185,201,202,185,185,202,186,202,203,186, 187,204,188,204,205,188,188,205,189,205,206,189,189,206,190,206,207,190,190,207,191,207,208,191,191,208,192,208,209,192,192,209,193,209,210,193,193,210,194,210,211,194,194,211, 195,211,212,195,195,212,196,212,213,196,196,213,197,213,214,197,197,214,198,214,215,198,198,215,199,215,216,199,199,216,200,216,217,200,200,217,201,217,218,201,201,218,202,218, 219,202,202,219,203,219,220,203,204,221,205,221,222,205,205,222,206,222,223,206,206,223,207,223,224,207,207,224,208,224,225,208,208,225,209,225,226,209,209,226,210,226,227,210, 210,227,211,227,228,211,211,228,212,228,229,212,212,229,213,229,230,213,213,230,214,230,231,214,214,231,215,231,232,215,215,232,216,232,233,216,216,233,217,233,234,217,217,234, 218,234,235,218,218,235,219,235,236,219,219,236,220,236,237,220,221,238,222,238,239,222,222,239,223,239,240,223,223,240,224,240,241,224,224,241,225,241,242,225,225,242,226,242, 243,226,226,243,227,243,244,227,227,244,228,244,245,228,228,245,229,245,246,229,229,246,230,246,247,230,230,247,231,247,248,231,231,248,232,248,249,232,232,249,233,249,250,233, 233,250,234,250,251,234,234,251,235,251,252,235,235,252,236,252,253,236,236,253,237,253,254,237,238,255,239,255,256,239,239,256,240,256,257,240,240,257,241,257,258,241,241,258, 242,258,259,242,242,259,243,259,260,243,243,260,244,260,261,244,244,261,245,261,262,245,245,262,246,262,263,246,246,263,247,263,264,247,247,264,248,264,265,248,248,265,249,265, 266,249,249,266,250,266,267,250,250,267,251,267,268,251,251,268,252,268,269,252,252,269,253,269,270,253,253,270,254,270,271,254,255,272,256,272,273,256,256,273,257,273,274,257, 257,274,258,274,275,258,258,275,259,275,276,259,259,276,260,276,277,260,260,277,261,277,278,261,261,278,262,278,279,262,262,279,263,279,280,263,263,280,264,280,281,264,264,281, 265,281,282,265,265,282,266,282,283,266,266,283,267,283,284,267,267,284,268,284,285,268,268,285,269,285,286,269,269,286,270,286,287,270,270,287,271,287,288,271 ];